tucnak-4.04/0000755000175000017500000000000012561153001007721 500000000000000tucnak-4.04/AUTHORS0000644000175000017500000000321312474424475010733 00000000000000Ladislav Vaiz, OK1ZIA Milos Zimmermann, OK1MZM - D_W database - Testing Michak Karas, OM4AA - Slovak translation - UTF-8 support - RPMs for FC - TOP10 in statistics Marco Fillipi, IW3IKN - Optional Exchange Sjoerd Cuijk, PE2SVN - Mandrake packages Florian Evers, DB1FLO - Gentoo ebuild file for tucnak1 Martin Douda, OK3MAD - Title page template - WIN32 consultations David Quental, CT1DRB - Portuguese translation Joop Stakenborg, PG4I - Debian maintainer (currently unmaintained) Jerome Simonato, F0FLO - French translation of wiki Dave Gilligan, G1OGY - Taclog C_W conversion script share/tac2tuc.pl Stephane Fillod, F8CFE - French translation of Tucnak Thomas Beierlein, DL1JBE - Gentoo maintainer for tucnak2 - Arguments --without-XXX in configure.in Olaf Wessels, DL5YBZ - Winkey fixes Lucian Langa YO6PLB - Fedora packages Leonardo Hoet LU9JMG - Castellano translation Hannes Jochriem DK1HJ - German translation of Tucnak - German translation of wiki Petr Parzek, OK1IRG - WIN32 and DSP consultations Bartek SP5QWB - Polish translation Franck Rousseau, F4CIB - New countries in tucnakdw Vittorio Vallero, IK1RAC - Italian translation tucnak-4.04/config.sub0000644000175000017500000010532712416731447011650 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-04-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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 2 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: tucnak-4.04/data/0000755000175000017500000000000012561153000010631 500000000000000tucnak-4.04/data/tucnakvexcagcw0000644000175000017500000000000611277513163013522 00000000000000A B C tucnak-4.04/data/cor2inc.pl0000755000175000017500000000277311277513163012476 00000000000000#!/usr/bin/perl -w use Fcntl 'SEEK_SET'; @INFILES=("tucnakcor"); $OUTFILE="../src/cordata.inc"; $OUTH="../src/cordata.h"; $PREFIX="cor"; open GD, ">$OUTFILE" or die "Can't open file $OUTFILE"; print GD "/* Automatically generated by cor2inc.pl */\n\n"; $hh="/* Automatically generated by corinc.pl */\n\n"; for $filename (@INFILES){ open (FD, $filename) or die; sysseek(FD, 0, 2); $len=sysseek(FD, 0, 1); sysseek(FD, 0, 0); sysread(FD, $icon, $len); close(FD); $ident=$filename; $ident=~s/\..*//; $items=$len/5; print GD "const struct cpoint $PREFIX"."_$ident"."[COR_ITEMS] = {\n "; $hh.=sprintf "#define COR_ITEMS %d\n\n", $items; $hh.=sprintf "extern const struct cpoint $PREFIX"."_$ident"."[COR_ITEMS];\n"; $line=""; for ($i=0; $i<$len; $i+=5){ $w=unpack ("C", substr($icon, $i+0, 1))+256*unpack ("C", substr($icon, $i+1, 1)); $h=unpack ("C", substr($icon, $i+2, 1))+256*unpack ("C", substr($icon, $i+3, 1)); $t=unpack ("C", substr($icon, $i+4, 1)); $line.=sprintf "{%u,%u,%d}", $w, $h, $t; if ($i<$len-5) { $line.=","; if (length($line)>70) { print GD $line."\n "; $line=""; } } } print GD $line; print GD "\n};\n\n"; } close GD; #print $hh; $oldh=`cat $OUTH`; if (!$oldh or $hh ne $oldh){ print "new header\n"; open FD, ">$OUTH" or die; print FD $hh; close FD; }else{ print "same header\n"; } tucnak-4.04/data/tucnak64.png0000644000175000017500000001233711277513163012741 00000000000000PNG  IHDR@@iqgAMA7IDATx՛yt]ŝ?U޷Jzzkx & 66;6=t&'dItN7LzlIICt& L6x*,'-wJ'ؖ w=z_[,>dF۶#/ b1Ph}1\o 'R5xOW׏`$ `u_2Fնt\z{-*J'Fjt:'2[c74L&8o7Ʃ.ETT*`2fZFZZ?qLH$8bqF551mZkNM\%;@,|ԒHզ:!',)%Bjjj6u*{o^ޡ/GB t@~%<;h{;V΋bUUߜ2ꅗM&33vlNw2ֿn~͉'?u4eIg]ma{h[j5η7Q7u樂X"ˡ Hnʧmx7D/A}ŭFTv PN~ vw2m}yPak{ U -KY C6KmGTv1P`E~zu9N=p{XW5MG+o3w+SDuew;#r\<߇P?R cצkTv<[ţxn[ȫtۭG/$DUfテx7h84=ь[;7݅w e&lOF B 2yd\>#+">nGZbmRxt@%4Z:@R)MiTT\*Pa#ʿ'r 1\fa#˔(W*hmcmԤE'AV ,ˊ(5=@h>r,Y8|' T6HHA3dH$ڿ2=gMR啊˲K2e[ňbgtJ$D""50pL@X|XA e!2Aѭ,a1Vx<i~Ya]&-r]?Za@)RZ `4j8,Wפӟ8_ JdԘX|F0J?sjpLZH!"WV5"-Cř={6_>eaWBM8[__ ,t:, ˲BJooG#hR.?t:h#[oF~}QʗI$ c@4҆s5}Q*tal I_{9s&UUaK,A)͓O>Ŝs6m N ڼeZI<#gOr:x,F>P4iYtǨJ$D"1kDfKy^zzt0~{to^e~֧i&۴˫_eW.eޥsI&m!B)ERa,Zt9H$v' T*5QkZZZ7Ass3|u蠫c {&1(u]^jSp8CRf5T\osfH{BP*ZA[ba`E"̄X,_~0a"B/^mg`Bm6p6hc^]W׭cŴttv G ~*W ̙ >YFg [_1y\G,rz0TP\.Lt]mU_` ?`۶meONuu56g-X Dѭ-MB2$aP /lm!-q&IƳ5,M6WC{{;[lf?~Bɓ'ټy3W\q@ -=y[)N I`[JC,\.̳iMŤ ?RZ[1R58yu^uJJ)H*3>4X:P  )Q~'PUObW lC.E)ũSظu>LMM-JܴFfNuB0mdXzŨMS(eY’5(ˬZ+@IiUe۶2+,bӦM3e5d2YTp=%'F6I؎Äqc"L`YA6 3}l%;V*Zu+ HG=@%ZK$D} tMoNk(w*1xG[[g͚5֦qq+o^ DZHCC'WTL383yS)U S@/XݎF&8۶9x`?>͌(GOQEXI̫Ī9vjENèii!'~mKcq^nZqG@)5tQ:F)Jv1/6UUVkԱH%8E!30{~:(VD#$-cz:r|g[ir\%yJkM F!RJ%cT%֭[Tav;/>8uh庯j,ve16"V:0D\b|  !(zCًH5Swg* 'N6FHa A0$=5,Fk`'P9_Ε*Ji@H|UJyxQ@ƣG6~Ոo~bMVx,TLJBaOAb j 9v(V*[} 㭓jU*J=ҫma 6QDi2c Lǚ4o%NR`mI6g^H)9|/e򯀣&|0rUc*(1:h L$% 6==TK*KǶ?{ Eo矣)%^k^:9C=[lE@UL? /!'a|, 5DHæB#>\.K&g}lgwO{|zc2 }}~׺o~oW^;ҷR68N͎l۞"5 A5Ki燻@U rVjdTcQ줰7qMG;v A+]%9ZY5GJU  R?a~^C Hjk_V5(+{ }Gt?oW7<^1`#Y ۟6am\fz4k.meMێ(oC ANfR@}sWxȁ.wdHBduދwl8XUGQ+Gd$}Զ1t}U=k'@ܷ2'|h2܎#SWa g~vAtOjwu`Ec*Ҋ$  fS7'6vkl=6k)]JǺSsOa!5]=ngo 8~ʿ/yUƸk3͉D>4TfI#ҙx'ʆ7c-BMs|*2`=W/.RU;{6_~P MvB{ Xş;IENDB`tucnak-4.04/data/xfer32.png0000644000175000017500000000325512132501146012377 00000000000000PNG  IHDR szz pHYs  tIME ")LIDATXW1d$IW3z.$ am gM qBH`CI`f+)ŕ&w ̝}'hvnwjx08  {fFcx 0"hcjUr.0 @lG\/6oشX5`gJkmQz"" 0'feet]4wEAD+C{ 1Fi":Yf.cEę]&ZP-fP/!`1/ XKр0sWkY߮js} p.O:r\ $[fq=h$li_j"CtVs- UD9+Bm TԀ79w<צ6D (v.E3pNL{wkGKa.cf23 (ev35cfG 8"H-=rJg2 H X7df>es_?i$:pt8@rF9045X4I-%˼&h.hc~rn^wi'k_j]1|8kζKQE$s{هfm&4Teק. 3s1s)N0n·Gy_.Wu$:[jiO Y4IS4 7;:3ssr&2Kخk,9gB~qNvfqV,5Rl*Z-z{a.""cx6w`Wp8RJRKen E"\)",9K1crJS)ݔUmtnXU JNIj),sjYr-0$S)P^z^WoI!F\IENDB`tucnak-4.04/data/update_deb.sh0000755000175000017500000000112212043477054013215 00000000000000#!/bin/sh echo "*** This is upgrade script for Tucnak" echo "*** Please follow instructions bellow" echo "" cmd="sudo LANG= LC_ALL= dpkg -i '$1' '$2'" echo $cmd $cmd if test x"$?" = x"0" ; then echo "*** Seems OK. Please restart Tucnak" exit 0 else echo "*** sudo returns $?, falling to su" fi echo su -p -c dpkg -i "$1" "$2" root su -p -c 'LANG= LC_ALL= dpkg -i "$1" "$2"' root if test x"$?" = x"0" ; then echo "*** Seems OK. Please restart Tucnak" exit 0 else echo "*** su returns $?, giving up" echo "*** Please run as root: dpkg -i '$1' '$2'" exit 1 fi tucnak-4.04/data/tucnakcw0000644000175000017500000001733512010407131012320 00000000000000OL4K JO70TQ 20120707 CEHIJKLMN OK2VZK JN89SS 20120707 E OK2MEU JN89RX 20120707 CE OL4N JO60VR 20120707 C OK2UYZ JN89XX 20120707 E OL9W JN99CL 20120707 CEGHIJKLM OK2KOE JN89SV 20120707 CE OK2EZ JN99BS 20120707 C OK2OAS JN89DO 20120707 CEK OK1ASA JN79SR 20120707 C OK2PGO JN89GF 20120707 C OK2RSC JN89QE 20120707 CEG OK2RSC JN89QH 20120707 CEG OK7CM JO70KK 20120707 EG OK1EM JO70DP 20120707 CEGIJKLMN OK2KG JN89JI 20120707 CE OK1KCR JN79VS 20120707 C OK2KYZ JO80NB 20120707 CEGHIJK OK2KOJ JN89DL 20120707 C OK1KNC JO60IH 20120707 C OK1KNF JN69MJ 20120707 E OK1JHM JO70CO 20120707 CLMNOP OK2BUC JN99BN 20120707 C OK1ZVP JO60LJ 20120707 K OK2KEA JN89EJ 20120707 CEG OK2KZB JN99AK 20120707 CE OK2BHL/P JN88WX 20120707 E OK2BEN JN79XN 20120707 C OK1DJS JO70FB 20120707 C OK1OPT JN69NX 20120707 CEG OK1VAM/P JO60LJ 20120707 K OK7ST JO70DP 20120707 E OK2VG JN99DN 20120707 CEGK OK2PWY JO80HB 20120707 K OK2PHB JN89QU 20120707 E OK1CJH JO70UF 20120707 CEI OK1FAN JO70AD 20120707 CE OK2KJU JN89SJ 20120707 CE OK1AIG JO70NN 20120707 E OK2MAJ JN89SG 20120707 C OK1FC JN79CP 20120707 C OK1DEU JO80DD 20120707 G OK1UDQ JO70NO 20120707 C OK1KIR JO60PM 20120707 GHIJKL OK1VEC JN69NX 20120707 K OK2KPD JO80UB 20120707 E OK2QI JO80OC 20120707 IJLM OK2DGB JN79RL 20120707 G OK2AQ JN89FV 20120707 K OK1XFJ JN69GX 20120707 C OK2PCE JN88JU 20120707 C OK1RCA JN69QJ 20120707 C OK2RDI JN88WX 20120707 CE OK1KDO JN69KK 20120707 C OK1VUB JO70KK 20120707 C OK1VEI JN69JJ 20120707 GHLM OK2BPR JN99FU 20120707 KLM OK1DPO JO70CH 20120707 CEG OK1KOB JO70UK 20120707 C OK2VX JO80JB 20120707 C OK2OHA JN89SO 20120707 CEG OK1VUF JO70DP 20120707 E OK2BFF JO80HB 20120707 LM OK2VZ JN89SM 20120707 CE OK2RTI JN89FL 20120707 C OK2SJJ JN89FL 20120707 E OL5Z JN89AR 20120707 C OK5K JN89VP 20120707 EGK OK1VM JO60VR 20120707 IJKL OK5XT JO70UK 20120707 C OK1DPX JN79AQ 20120707 C OK1JDJ JO70AQ 20120707 C OK2KPS JN89WH 20120707 C OK1OAZ JO70FC 20120707 C OK1KTW JN89IW 20120707 CEG OK2TKE JN89JJ 20120707 C OK5T JO70BK 20120707 C OK1DKX JN79GB 20120707 G OK1AV JO70BN 20120707 C OK2UFU JN79VL 20120707 C OK1KJO JO60OK 20120707 C OL1B JO80IB 20120707 CEG OK2SUK JN89TO 20120707 EG OL1C JO60UQ 20120707 CE OK1MAC JN79IO 20120707 GH OK5Z JN89AK 20120707 CEGHIJKL OK2PNQ JN99EL 20120707 EGH OK5AJA JO70EQ 20120707 CE OK2VLT JN99CS 20120707 C OK1KEL JO70OP 20120707 C OK1STJ JN69WI 20120707 C OK2SEX JN99CV 20120707 C OK2BLH JN89EC 20120707 CQ OK1KJV JO60UA 20120707 CE OK2BS JN89LW 20120707 CEG OK1KEO JN79GS 20120707 C OK1KPA JN79US 20120707 CEGHKLM OK1KEP JO70OR 20120707 CEG OK1FHA JO60RA 20120707 EG OK6TT JO80CI 20120707 C OK1KPB JN79AP 20120707 C OK1XBF JN69MJ 20120707 C OK2KLD JN89PU 20120707 C OK2ZTK JN89QP 20120707 GH OK1LX JN69IO 20120707 C OK1KUO JO80FF 20120707 CEGHI OK1NWD JN69UJ 20120707 E OK1FHI JO70GS 20120707 C OK1GHZ JN79JT 20120707 C OK1KPI JN69XJ 20120707 CEG OK2KGB JN79QJ 20120707 C OK1RF JN79KM 20120707 C OK1KKD JO60WD 20120707 EGHIJKL OK2TAS JN99BN 20120707 C OK1KUW JN69KT 20120707 C OK1UFF JO60XR 20120707 CEGHKL OK1VVP JN79DO 20120707 C OL7C JO60JJ 20120707 C OL1Z JN88AU 20120707 CE OK1KKI JN79NF 20120707 CE OK6R JN79OW 20120707 C OK1WT JO60RA 20120707 C OK1FMY JO70FA 20120707 E OK1KFB JN79BC 20120707 E OK6T JO80BJ 20120707 C OK1CVX JO60WA 20120707 C OK1AKE JO70AM 20120707 CE OL7G JN78DR 20120707 C OK2KLS JN89PR 20120707 C OK1KKL JO70PO 20120707 CEGHIJKLMN OK4DL JN89CX 20120707 C OK1OHK JO80EG 20120707 CE OK1UFL JO70SQ 20120707 IJKLMN OK2HPI JN89UE 20120707 K OK1XHD JN79IW 20120707 C OK1KFH JN69VN 20120707 C OL2C JN88JX 20120707 CG OL7M JO80FG 20120707 E OK1AKL JO70FA 20120707 C OK1IEI JO70EC 20120707 CEGHK OK1KAD JO60KI 20120707 CEG OK1WGW JO60WP 20120707 CE OL7Q JN99FN 20120707 EHKM OK2SAR JN89LX 20120707 CEG OL2J JN79TI 20120707 C OK2BMJ JN89VC 20120707 C OK1CD JO70FC 20120707 C OK2KWS JN89PV 20120707 CE OK2ILA JN89LD 20120707 E OK2BRX JN89QU 20120707 C OK1ROZ JN69VP 20120707 C OK2A JO60JJ 20120707 EGK OK6PS JN89SV 20120707 CE OK1KQI JO80CH 20120707 C OK1MBT JO70CO 20120707 CMNOP OK2C JN99AJ 20120707 CEGHIJKLM OK1KVR JO70UO 20120707 C OK1DRX JN79DW 20120707 CE OK2RVM JN79XS 20120707 CE OK7N JN69WR 20120707 C OK1VRF JN69OK 20120707 E OK7O JN69OU 20120707 C OK2G JN99BK 20120707 CE OK1VBN JN79HA 20120707 E OK1JKT JO60RN 20120707 K OK1CR JN69HT 20120707 C OK1KLH JN79EF 20120707 C OK1JAH JN79OQ 20120707 C OK1UGI JN69QV 20120707 C OK2RAS JN99FP 20120707 C OK2M JN69UN 20120707 CEGHIJKLMN OK1KLL JN79IW 20120707 CEG OK1NH JN69UH 20120707 C OK1IA JO70UP 20120707 EGHIJKLM OK2IGL JN89LD 20120707 C OK1CZ JO70EC 20120707 CEG OK2VNQ JN99EL 20120707 CE OK1AIY/P JO60LJ 20120707 GHIJLMN OK1KLU JO60EG 20120707 CE OK1VHF JO70EB 20120707 CEKL OK1YA JN79IO 20120707 IJL OK2BSP JN99AK 20120707 CE OK2FKF JN89KL 20120707 C OK2KCN JN89OI 20120707 C OK2YT JN88JX 20120707 E OK1VRY JN79FP 20120707 C OK2IRE JN99IM 20120707 C OK1FDY JO70AQ 20120707 C OK2SRO JN89SM 20120707 CE OK1MHW JN79VS 20120707 E OK7RA JO60LJ 20120707 LM OK7RB JO60RB 20120707 GLM OK2PVF JN99JQ 20120707 C OK2BDA JN99EU 20120707 CE OK2TT JO80IA 20120707 JK OK1RKS JO70FB 20120707 E S59GS JN75NP 20120707 CEG OK1TF JN89AR 20120707 C OK2TX JN89UD 20120707 C OK1DDA JO60HE 20120707 C OK1DSZ JN69RI 20120707 C OK2JI JN89MW 20120707 EG OK1TI JO70DP 20120707 CG OK2JK JN89HE 20120707 C OL3Y JN69JJ 20120707 C OK1KMG JN89IW 20120707 CEG OK2UDE JN89JS 20120707 E OL3Z JN79FX 20120707 CEG OK1VSJ JN69IS 20120707 C OK1KHA JO80BJ 20120707 C OK1AMD JO70ND 20120707 C OK2VJC JN99CM 20120707 LM OK1BMW JO70EI 20120707 CE OK1ARO JN79LS 20120707 CE OK1FEN JO70NA 20120707 CEGJK OL4A JO60RN 20120707 C OK2HBR JN89PP 20120707 CE OK1RAR JN79CX 20120707 C OK1KMP JO70SM 20120707 C OK2MZL JN89SN 20120707 CE OK1KHI JN69JJ 20120707 E OK1KRY JN69ER 20120707 EGK OK2KYJ JN89QQ 20120707 CEG OK1KCB JN79GB 20120707 CE OK5AMA JO70EQ 20120707 CE OK1KHK JO70WE 20120707 C OK2KYK JN89NB 20120707 C OK1KHL JO80AC 20120707 C OK2DEY JN99EU 20120707 CE OK2OAJ JN99BU 20120707 C OK1IBB JN69MJ 20120707 E OK2SSJ JN89WW 20120707 CE tucnak-4.04/data/sortdw.pl0000755000175000017500000000124411277513163012451 00000000000000#!/usr/bin/perl -w open(F, "tucnakdw") or die; open(G, ">tucnakdw.tmp") or die; while ($s=){ $s=~s/[\r\n]+//; if ($s=~/^#/) { print G "$s\n"; next; } if ($s=~/^\s*$/) { print G "$s\n"; next; } print G "$s\n"; $s=; $s=~s/[\r\n]+//; die "empty second line" if (!defined($s)); @a=split(/\s+/, $s); %a=(); foreach $a (@a) {$a{$a}=1;} @a=sort(keys(%a)); $s=join(" ", @a); print G "$s\n"; $s=; #can be empty string if (defined($s)){ $s=~s/[\r\n]+//; print G "$s\n"; } } close(F); close(G); rename("tucnakdw.tmp", "tucnakdw"); tucnak-4.04/data/listdir.pl0000755000175000017500000000611011277513163012576 00000000000000#!/usr/bin/perl -w open(FD,">index.html") or die; print FD " OK1ZIA - Provozak cervenec 2005

Logs



\n"; open(LS,"ls|") or die; $i=0; while($d=){ chomp($d); next if ! -d $d; next if ! -f "$d/desc"; $desc=`cat \"$d/desc\"`; @desc=split /\s+/,$desc,3; if ($i % 2){ print FD "\n"; }else{ print FD "\n"; } print FD ""; print FD ""; print FD "\n"; $i++; } close(LS); print FD "
DATE   CALL   CTEST  
".qh($desc[0])." ".qh($desc[1])." ".qh($desc[2])."

Created by listdir.pl, part of TUCNAK ver. 1.23

\"Valid  \"Viewable 



\n"; sub qh{ my ($s)=@_; return "" if !defined($s); $s=~s/\&/&/g; $s=~s/\"/"/g; $s=~s/\'/'/g; $s=~s/\/>/g; return $s; } sub qu #taken from URI:Escape.pm, sub uri_escape { my($text, $patn) = @_; if (!defined(%escapes)){ # Build a char->hex map for (0..255) { $escapes{chr($_)} = sprintf("%%%02X", $_); } } return undef unless defined $text; if (defined $patn){ unless (exists $subst{$patn}) { # Because we can't compile the regex we fake it with a cached sub (my $tmp = $patn) =~ s,/,\\/,g; eval "\$subst{\$patn} = sub {\$_[0] =~ s/([$tmp])/\$escapes{\$1} || _fail_hi(\$1)/ge; }"; Carp::croak("uri_escape: $@") if $@; } &{$subst{$patn}}($text); } else { # Default unsafe characters. RFC 2732 ^(uric - reserved) $text =~ s/([^A-Za-z0-9\-_.!~*'()])/$escapes{$1} || _fail_hi($1)/ge; } $text; } tucnak-4.04/data/_4o.txt0000644000175000017500000000142111277513163012006 0000000000000019.2206 43.5167 19.2398 43.4689 19.3112 43.4310 19.3277 43.4190 19.4595 43.3891 19.4870 43.3751 19.5529 43.3052 19.5694 43.2512 19.6106 43.2292 19.6243 43.2292 19.6655 43.1872 19.6902 43.1831 19.7177 43.1831 19.7314 43.1711 19.7452 43.1872 19.7617 43.1852 19.7864 43.1571 19.7754 43.1451 19.8221 43.1090 19.8386 43.1130 19.8441 43.1010 19.8550 43.0930 19.8907 43.1050 19.9594 43.1110 19.9731 43.1210 19.9841 43.1150 19.9951 43.0829 20.1407 43.0107 20.1654 42.9986 20.3220 42.9544 20.3302 42.9383 20.3714 42.9303 20.3796 42.9021 20.3577 42.8438 20.3192 42.8297 20.3055 42.8176 20.3055 42.7954 20.2560 42.7571 20.0967 42.7853 20.0555 42.7773 20.0446 42.7591 20.0528 42.7188 20.0748 42.7168 20.1105 42.6905 20.1324 42.6764 20.0775 42.6198 20.0885 42.5956 20.0940 42.5854 20.0830 42.5591 tucnak-4.04/data/tucnakvexcusaca0000644000175000017500000000034011336204050013662 00000000000000AB AL ALB ALT AR AZ BC CA CO CT DC DE FL GA IA ID IL IN KS KY LA LAB MA MAN MB MD ME MI MN MO MS MT NB NC ND NE NF NH NJ NM NS NV NWT NY OH OK ON OR PA PEI PQ QC QU RI SC SD SK TN TX UT VA VT WA WI WV WY YT YU tucnak-4.04/data/svnversion.c0000644000175000017500000000000011765360475013144 00000000000000tucnak-4.04/data/tucnakvexcokres0000644000175000017500000000122511277513163013730 00000000000000APA APB APC APD APE APF APG APH API APJ BBN BBE BKD BKO BKH BME BMB BNY BPZ BPV BPB BRA CBU CCK CJH CPE CPI CPR CST CTA DDO DCH DKV DKL DPM DPJ DPS DRO DSO DTA ECL EDE ECH EJA ELI ELT ELO EMO ETE EUL FHB FHK FCR FJI FNA FPA FRK FSE FSV FTR FUO GBL GBM GBV GBR GHO GJI GKR GPR GTR GUH GVY GZL GZN GZS HBR HFM HJE HKA HNJ HOL HOP HOS HPR HSU HVS BAA BAB BAC BAD BAE MAL PEZ SEN TRN DST GAL HLO PIE SEA SKA TNC BAN ILA MYJ NMV PAR PBY PRI PUC NIT KOM LVC NZA SAL TOP ZMO ZIL BYT CAD DKU KNM LMI MAR NAM RUZ TTE TVR BBY BRE DET KRU LUC POL REV RSO VKR ZVO ZAR ZIH BST KEA KEB KEC KED KEO GEL MIC ROZ SOB SNV TRE PRE BAR HUM KEZ LEV POP SAB SNI SLU STR SVI VRT MED tucnak-4.04/data/Makefile.am0000644000175000017500000000117512521702506012620 00000000000000datarootdir = @datarootdir@ bin_PROGRAMS = svnversion EXTRA_DIST = $(share_DATA) _4o.txt \ cor2inc.pl coradd.pl home32.png \ icon2inc.pl index.html listdir.pl \ key32.png \ mast.png norec.png play.png \ record.png sortdw.pl sun.png tucnakcor \ tucnak.png tucnak23.png tucnak64.png \ tucnakv.png tucnakv64.png \ update_deb.sh update_eee.sh usaca.txt \ xfer32.png \ zoomin32.png zoomout32.png sharedir = $(datadir)/tucnak share_DATA = cty.dat titlpage.html \ tucnakcw tucnakdw tucnaknames tucnakrc \ tucnakvexcagcw tucnakvexcokres tucnakvexcrsgbdc \ tucnakvexcusaca tucnakwiz svnversion$(EXEEXT): (cd ..; ./svnver.sh) tucnak-4.04/data/index.html0000644000175000017500000000274311277513163012571 00000000000000 OK1ZIA - Provozak cervenec 2005

Logs



DATE   CALL   CTEST  

Created by listdir.pl, part of TUCNAK ver. 1.23

Valid HTML 4.01!  Viewable with any browser 



tucnak-4.04/data/tucnak23.png0000644000175000017500000000047711560173730012733 00000000000000PNG  IHDRHG?sRGBbKGD pHYs  tIMEi;^IDATHǽTA0evd81`( m",z6U_b9N"ʑ}6 KC[imS݌,?)Y^9׼ /$G@Nm)#?iH;6E-!om:į٧8g^ k5 H޼"m{vAU4: ɿԃښZD̅OhYK"VT; x48tIvsź =6 ү=(Yǻw`ڜɈO#…qZT[i(XN[U;D8x(444`ժUXr%Ng2Q(*G9 !"sIW[gw>&޵OU4cm)_w\חZDCE8---شi! oߎ$>䃆~/c2ܤ5,zN''<7B yK@U] "3DUEo^B0glذabZ< (4 M!<6 'Yܤ@ _e!{Aq'eZ3sJJq+ELV٧ `Fi{_}"h6HȞaXgb\]Y4lr:V V?ӚW5|m5VTby])fJj$YŹ7UUǡp-="`s" sjYVx|%XTĢ '_] INe (* }Xt)dY,ː$ ,OX @MӠi0* TƊ2G9t!sT] hbPŢx#TU=u FNyqЊ()d0*`łp8@ dSFu<q&fD AO9@9ytwg 1D\rT lqiRBA03 7% cax.EcƢuArIIŊLvWnGQy(?&q\ڠq0ՠ?{M7ٹu 9:W<> Ӭ˲ѰsX0Ӟc߿Бyޟ&Y&ui]~Ip;O@9gpJa>+Aֳ?$ݖ?ŏ&vuο8\+V/ʹ<3V 5y~Z,1ЃGCeT஗g,tɟ\+VEjg'5Pe3؞m „{?[p_6D&J"XrmmmlH^+rE?WIENDB`tucnak-4.04/data/icon2inc.pl0000755000175000017500000000275012132501146012623 00000000000000#!/usr/bin/perl -w use Fcntl 'SEEK_SET'; @INFILES=("home32.png", "key32.png", "mast.png", "norec.png", "play.png", "record.png", "sun.png", "tucnak.png", "tucnak23.png", "tucnak64.png", "tucnakv.png", "tucnakv64.png", "xfer32.png", "zoomin32.png", "zoomout32.png"); $OUTFILE="../src/icons.inc"; $OUTH="../src/icons.h"; $PREFIX="icon"; open GD, ">$OUTFILE" or die "Can't open file $OUTFILE"; print GD "/* Automatically generated by png2inc.pl */\n\n"; $h="/* Automatically generated by png2inc.pl */\n\n"; for $filename (@INFILES){ open (FD, $filename) or die; sysseek(FD, 0, 2); $len=sysseek(FD, 0, 1); sysseek(FD, 0, 0); sysread(FD, $icon, $len); close(FD); $ident=$filename; $ident=~s/\..*//; print GD "const unsigned char $PREFIX"."_$ident"."[$len] = {\n "; $h.=sprintf "extern const unsigned char $PREFIX"."_$ident"."[$len];\n"; for ($i=0; $i<$len; $i++){ # if ($i % 16==0){ # printf GD "\n /* 0x%02x %d */\n ", $i/16, $i/16; # } printf GD "0x%02x", unpack ("C", substr($icon, $i, 1)); if ($i!=$len-1) { print GD ", "; if ($i % 8==7) { print GD "\n "; } } } print GD "\n};\n\n"; } close GD; #print $h; $oldh=`cat $OUTH`; if (!$oldh or $h ne $oldh){ print "new header\n"; open FD, ">$OUTH" or die; print FD $h; close FD; }else{ print "same header\n"; } tucnak-4.04/data/tucnakvexcrsgbdc0000644000175000017500000000056511277513163014057 00000000000000AB AL BA BB BD BH BL BM BN BR BS BT CA CB CF CH CM CO CR CT CV CW DA DD DE DG DH DL DN DT DY EC EH EL EN EX FK FY GL GS GU GY HA HD HG HP HR HS HU HX IG IM IP IV JE KA KT KW KY LA LD LE LL LN LP LS LU ME MK ML MR NE NG NL NN NP NR NW OL OX PA PE PH PL PO PR RG RH RM SA SD SE SG SK SL SM SN SO SP SR SS ST SW SY TA TD TF TN TQ TR TS TW UB WA WC WD WF WL WN WR WS WV YO ZE tucnak-4.04/data/key32.png0000644000175000017500000000206312132501146012217 00000000000000PNG  IHDR  pHYs  tIME IDATHoUϝcNR@DA.\hSI}8&5;Ρ;}DOt:3ē3o|s)W8:2\4 $W~N\$RQU@R|&$[Wf˗n \3tLf^[o!!/{FPZK--?d  BYP0EtFw]H%I 5d< 6 0t 3t8W6 z w}Znn "RiF 뚦i!G>uVbQEQ,WFvnݳ[`#(IENDB`tucnak-4.04/data/tucnakcor0000644000175000017500000467761311277513163012532 00000000000000  " & + . 1 6 ; D G J J N [ ^ ^ [ [ Y X Y [ Y V X ` b j o l l |    x  s r ! n ( i / h < ^ H Z R R \ O f J i A q A s C { C } E { F { H H C < @ < 7 6 7 7 - * ' # #                          " ' ) 9 = @ @ G M R Y Y [ ^ u z | t r k h \ Y T O L E B = 3 ' ' * * ' % ' "        "  #  %  ' , 1 1 4 < @ C F M P Z a a ^ ^ c d h i m m s u s  u  r  p  u  u x | ' | 9 C G O R Y e e h r u = ^ 5 R 0 F ) , ( )  +  )  ) ( & &  &  $  $ $ & # ! ! $ & ( . . + ( & & ) ( & $ # ! # $ # $ ( & $ $ $ $ & $ !   ! ! # + # ! # + 2 5 7 5 0 5 7 8 7 5 2 - - ) ( & ( ( & & # & # ! ! $ $ & ) ( + 2 2 3 2 } . y 0 y 2 v 5 v 2 t 8 l 7 j : i : l < j = l = j ? l ? q A o B o D o F t F q G q G o I o K o I o I q F t I t N s N q P q Q t P y F G } B D < 8 B K } N { Q v Q q L g I X I P Q ? V . X ( X  V  U # S ( P ) P ( N ) L & P $ P  G  I  G  F  G  G I  G  B  F D B D F G Q V  I K N G I N G ? < 7 7 8 7 3 7 2 3 2 2 3 7 8 = 5 0 2 0 . ) ) &   u ` R  C  B  8  , ! % !  $  !  #  $ & 0 3 5 2 - . 0 0 2 2 3 7 A A D F F I G I z L q P M X 0 Z Z  N N Q ] e o x } ~ ~ ~ j g b ^ ] ` ^ E & !                         | r d Z P ; / "    } e P A < 2 $        } l d X V I ? &       $ ( . 2 3 Y7 H< 8G N ] }               z p b P 7 / %                w m w v o c ] ] X Y h ] Y V X T" Q# J" I" B E D 3 . + 0* 0* +' $# * 7 A J Y h n r p z } ! ' 1 5 = = B D N N S X [ S N N Q O N O ; : : 1 . ,&" )5;,?8QB[JgXvQyS|QyBt@h0h$e!^X[^`^^cecbch rw{~~w|rsqmqfm^jMlCl<o7m4h%eh j l m r q orqryyy|{|{|{wrlllhjlmooooqtvy||}vsrqoslocXbFcAb<^5].V)QOQ SX]jhjljjhjhjlhwbk]\^JbE`B^C[BY9[4`/`%`"[XTLJLNOIIEEDGBBu@s@i=_8\6W1K1A&-$#   w m ` [ V N ; 8 1 ) & $ "     z x r n c U M *    s qf gM XA K; A4 ., !, #  "     z m ` ` c ^ ` a ` [ Wy Mb 8[ 8P /L .D 'B *< ,( '# * * ) * $ $ , 3 6 ; > = 9 ,   | t k ^ T 9 4 "   R I   q g U R vM qF lC ^9 X* X! T I D @ : 5 3 5 0 . & !  v r o b ] T N B ? = @ L O Q X S J E @ ; 6 0 &        }xwukid__}aw_m__ZUYOYHWEY>U2U/R*T%RW%Z*W,\1\6\6Z9Z;_EcCf-p-rz}|    ydK2-~p^G6.)}rhK6'/11216EJU^aafinzrsrgrisusxwzw{xx|}}}z{zzxx}x}{{{zvxvsvx|vxsukwiuazd}gkxslkgdfigfg_ZUX_]ZXUSNID>775599::<77>A?CAFDIFFAADA??AFFFAC??><><972/0/-/24-0//*(-/005??CDC}D|Aw>u9n7n5m/n+p%p sruuuspprsrpswzurru|zuppux|$&!$),+&"         !""!    ~|~|~|yywmo{ywrrw tqqjg^]YX Yb c cb]TO L LSVXYY]]c"^$]"Y$Y!X!VSSIIILJGGDEI"G"D!B=6!5&5)8);&;'?&?)D.E,J)I,I.L.O,O0I0I1N8L8J8J=L?N?OBQDOEL@I?E6B6B8@6;6;;??;?6;38.=5@6D:E:I3B.@,D+B'B,I8N=T@S@V;V5O1O.L.J&I$L!I!GEOSQQ V Y[Y[]bgmoorvvy{{{wvv{|}}|xwwuswurcTTYZ\^_aca^^ca^\Z\\dZZYWWTTRPMKJJHFEEHJRRMJJCA;6177921/**%"      ! # !! !257><9952/%!&+% asv{z{~}yvxxsniegllieeddb_VPNI:%0.$@!B@GJOR``aprzz&+07?KN_jo{          %1\ pimk\ Z R J H C ; 77;7 4-, *'%   ' '%*-, - ( * , 1 2779 < CC@AFFJMPRTWWY\^chiruupnxzz||  |z| zw s p r      !')..06;BIJQSV]^]^lq|  $.237< B ?CAABAF?LAS>V9X5[2_+_*Z&[ ``bb] ]%`*]4S?LAGAAFAD?FA\DaGdLdUg[lbxenns}}~%~6C~RTRQTTW[\\`fktyywteea[WWWVTRV|}vqe]UI?DKK NNI IFADA:0-0 2<:320235!2&.(3+.. +& !!$&$((+(0)3&2&+$)+.&#!!&!##(#)-.-+0=DBIIKIKUUSUVVXXVX[]_]]``b``bonllnoloqqossvvysqq#>@AE@A@;;92279@@ACFHJKHMPPUUY\Z\ZZYZUTTWURRUYZYZ^fhdcc_acdinrpswxwwsszz|}}zz|~~ywwz~mkjhhkjjea\TGGE4.*'vvsnqpgkpqnnllidagiifffb_]URN?<74/0<99:<<>>ACAA?>550              !% }zx|wuusppnkkhhfhknssww}z||w~w{yvrtrwvwy~{trqmmjhcbchlmleb^`[Y[^][]YX[^gjmtvy|{`SNGIGEDJIDGEGE?=;853158:=@@@?@D@@BBEE=661"      ')')8EJJOu]fo_q\r;4/'#%"     & g[NLKG<+$  #(//029::79<:70/+(*-*&&#!tw~!t[#R%M%G(C(>*;*8&6&)2"5549 >AHIIPaa]\gifbdzbddWaP\FZ?W7U/N/K0N+H%CC942/-+(&  ~yvvmbXED=65+)"|nmdZECA6% }tj3)#!&*-7::<HNX]ilu~syz\VL1$  snkgXPKA7*  ~|{wqlc^[TGG= 30+  '.6CRWcmpoyy|wshYK9-% $#{&v&d+_(P)A$ dG lO y^ c j t w y | ~ |    ' @ R! T# R U U! Z! k) A j i o t   8 c h       # !   0, U a k p  $ / > V R H ^ ^ \ V Q O R Q M E > = 6 @ G O V ^ h k p z          ! - 0 3 8 : : < < = F G U V V K I F ? = D D L L L X ` j s t y { {  &+)+'',38:866688:;@?DBDGGIT^e^`chjqojgbcjlrr| %'(,//--17<@@CJFJHA>EM O O P R O PURTUUWYU Y2\:\DcIcDdDfHfIiIhKiMmPuZ !$'$$+,+,11.058:BJQTTQQTV[``]SOVVYY[[gcglotvrmmmoqrrqqrw{  %(**047597<CHMPXaabikqsx}    $$'11669;=>@JM}O}QzOxOuTuRxTzV}`}a{h}ruontnunwnzn~lniikbdgnpupnkgabaa_ZZXZZ\]]__abiiiggfgid]a\\XUXZXZ WZ]_#_$\&a)a)b+d-f2g5l2l2n7p7s?qDsQkSaU]VZSZSXVX]X_X]W_UiPjMnKqHxA{:y?x?y9}42/-/*&&*+229<9:>DCA?CDDIHFD F I HIHIMMKMNR"R"M%N#P%R,R,N-P-R/R2U2Z4Z1]1d2f6b7f9f;g;i9g6iFps#2Fg)t,+:JOX`mov wttw%-2@FHMU^hw  !!".I[]^my~|{yr{hy]rXmOmGmBj;h.e"emlhgcb[YXYXYVY^^VsTmOkIcI^EZBP?O391-,%.656=;::;?@=8550+)+"!{i[VL":)3,+:J^chlrqttyy~{|||| !%((+&*?DKNPSWzUyS~P~P|KNzRzUuStZo]obfgfkck`lWqTpLqJqHB96.*%"    } zvsnkgklkiiik i%i'f,g6Z>WTRtNuKwM|I~MMIKIDC?>995-*                     ',.55?LX[]bjjhhchghcgjjgjsmrjponomqiqdrcvO~A;76;<9AAHHEC<~;~;{7{6|2|'~qlgd]XPPPPQNNIFILKF=2-&&$!$&$$!     uprptw!$(-38=???AB IS$X)[2`2b5d7d=`=_B_A]BZGXL[X]]__bbbgbsZtXyUNIIKLIKLLGIBB87732 5520")*+;293;3E:J<J=R?PARBYGcLkQkSpUwZz]]Z]_`Z]_b  #(%"(**,6;9E PWYZda\YY\cfinsspmmf h d dcchm!r&r'w+w,|.0330}1z3x:}E@;86'""&$&+56:@DEOJE@BEIID;;@IONLLQNLQTX^ejrrroqow{|~~~yohhlmrw  !   %! % ( &% %!/"0&/'2'2)4+2+2.7.7395>3A6?8A8D6C5F3F.I3K3D8F;K:K6M6N8N:P8U=U@RDKEIGFIDG:L:JAD=9;9@4?4@7B5D2D2G4I9G9J4O0N-Q+Q-T-Y*[&[%^`^] ]]^] ^`b ehejjllomqtvw{{{yy~rj[OE=:1)"~~|{lhccggegllmjjlmttw{wy|yv|rzqzowmsonrmvkykwild`OXAQ7N2S-S,T'T'V#TVYXONQLI=1+q$V?:03 3 -|\@9'{}kzZrSrNmIkFkFh>i>_<^9_9\7\9T7U5P2K/H/E-C*;-,*&   t#V-Q+U%X&X%Z([-U/Q5G7=>8>7A7I5N0W+].b-n!v     $/6;BGLMRRQWVWY\ahmmpu                          ) ) % %      z u k d k m x |        $ ' * ' ) w|rk`wVrRnLnGi@dC\ERGMMJWM[O[Z`Zc^o_yfwrw|vkd\XWW__agkq{NNRRPNPPUXWZXZ]_bbdfbf}iylyq{uuqqnlnkigfgfgda_a\ZZXSPPN^ V V T S Q N D D D @ B @ ? : 6 5 5 6 6 : ; ; : 6 5 3 1 3 . , . 1 3 0 + . ' ' "                                                    ~ } y t t q o q s q o j i ` _ ] _ ] ` e i n i g i e e b ` ` ] _ X K L G B ? A ? ? < 3 2 . 0 - }. u- p& f h# r) r. z0 |2 2 2 5 7 : B D G K P N Q S S X ` ] ] Z ] _ _ b ` d i j l n o o n o l v t y y } { y ~ ~ }                                                                                   ! ! $ & $ " $ & ) + , , 0 . 0 0 3 1 5 3 5 6 : ; = : ; = ? @ B D E G I N S T X Y ^ ~|{wwtrttvtvv{!"!$$&"&&)&&$$"$&w+p)p&h$`$Q)O)L&E,>.>186.6*;"E"Q TVVVTVQNLGDEED ;=6$,')*))&*"*./8=B@BELL V [ c c\ \ck r z  !!                    ~ y z u t r t w t y z z       Xj Vm Sm So No Ip Bp ?r ?t :u :w 8u 5y 3y 5u 1u 1t .t 1p +o ,o 0o .m +m )o 'p )k 'h $j $f !f h f e c ` ` ^ \ Y Y [ W V T R J H  H G  E  C E M O Q Q H L M !L H G "E &G 'G 'H )J +E .J .L 3Q 8O :M 6J 5L 3J 3H 6H ;J ;M ?O IT LW NV QV QW Y^ ^\ ][ VV YV ^W bY ]` ]c Yf Vk !#$,&6:@DIN T Y[YTTSV[`b!`$Y$Y([)[+`0`3^7`8b<Y8T5N&L(J&I&E$B$=$8&8+6-:.;2;330&2&70A0D+D&?!35:0+ $&!R' Q% R% V$ W" V R O M M" J% G H G G Q T V ^ ` f k t  % 9 G H L J ^ c ^ \ Y |T yL tJ oE h@ \8 [6 W9 O8 O6 T3 T. Q%                      # & - 0 8 < ? I N U Z b j o s t s t y| ~| u u t p o f f k t u w u w u u y z u p c a ^  ` "^ ,` 2^ 9c >e >f  A ~A {F wF wE yF {E |> {4 w6 v6 v7 r9 t6 v4 r2 q2 q9 m; m< j> lA jA hC g@ h< h7 m4 l2 j, m( l% h( g( e' c" c% b% `( ^( ]' ], X* X O% N% O J J I G I L L G @ @ ? ? @ D D B @ ? = ; : : 5 6 ; : 5 3 6 3 6 8 6 5 1 3 0 , + , + ' ) & '" ,( 01 +6 "7 / , ( %                                                                                                                                 ~ ~ y } ~    ~ } } y y v v v s t q n q o n j j j g j i j n n s l i g g d d i  l l g g j g g b b [ [ )` ,` 0b 3` 8b 8` 5_ 3Z 6Z =[ B` Td Yd ^i cg eg je lg mi lj ll yn |q s s q s q s q o o l i i j j i i g b b e l j l n o x      ~ ~ } x y x ~                                                                                     % & ( + + / 0 - * - 0 0 - * & & # % # ! !   # # !                      " #  "  #  ' !*  / * / * / 4 2 4 4 6 7 7 > > @ @ C F                       # # ' ' ( , - / < @ A A E J K O W U T R U W Z ^ _ a d c f f i m k n n m k i m n p r u s u x z | |    }                  $ $ ) % ' / 1 4 4 8           ~ v o m e b ` e j j o t v w y     ~ { w t q o l r t { | |          | w s h h k i k h i h f h c d _  \ Z \ (Y *W *P +R /K 7H AK DO IO KM PR UU ZZ \Z b\ ga kc lh ph si zf }f d c _ _ ^ ^ a _ a ^ _ \ \ Y ^ \ \ _ c a ^ Z W W P  K  J H F C "C $A )> 3> 6@ 6A 9C @E EC LH LM JO BW 3i .i *n | } |                              { q l d ] U M K I F D > 5 2 ( %                     6 G H C H O M T M }O }M xL |J }H |E zE xH sG rC s@ p@ n9 s4 w8 x4 |6 |4 z/ x/ x* w* w' u% s n n k f h k m p s u u p r n n p n k f d c _ ^ \ ^ \ Y W T W W Y Y Y W W R O K M H F E C E @ > ; 7 6 , / / * ( % # # % # " "               qojhc``[VIGB@5510!!"!      "'+'+&"!&.8@IT]^^bghmqvq}xrsrkifa_^ZYZ R P O K H HHAA@@>>97642-,,((('%% #          !!         ~ sn d glsvvy    yy}                      "%*%"%'**% %(,1/,'*,*(*(*--,/-244797<;>@@AARRT\__cdc_ZWUY_ccdkwktilhjdj_cc]cY_X^TdYd`c`dhijmlmtnvmvpwsvrynwkyi|i~fddhdmpppzz|urwpkda_WWY\acdffmmhdd\c^\\YUTPMFFCAE@;<74622422679967997966142424--,*(''#%#              "   "%'*'( * * ' (,-22 6 67 9 7 9 99>ACFE FHJMOO RUW\ Za c frux*#            #'**=z9s4p1n3d6c4^'Z%TOOT WWaddinrrsnnmmkic_a__^\Y^YU\_\YWTWU URMM'T'Y1Z6^8c6f3f3m6p9r;u=|=z     , 9 E P T W W Z m p s u w |        & ( ) ( !                        } z w r p m i c \ Z W T R P O H F @ < ; 7 6 4 1 , - * * %               D I M M P| \w aq kY nJ u; )     rkf^ZPRP@72* ~xd]uBk:i5W)P(I&M(9&7$C$9#   !/5<CNf}+   vifaSC<0(#rhb~[zVySuLtEh:a1Y+T'O$LMQQVVRQTRVRVYVY+W,^;tJ~Y^hq !&+-05.-( ) ) ( $ $ (+(9+?+D.H-N-U0d<k?qIuQv '/@JZan  ! {0 n? kL kQ kT be al \q Wt P{ K| I I H D   | | z  k 2 c Y;];b;g8j4m1r.v,{)~%"   %*/5:?FKPW\aglqx} " ',16=%E,J/O3T6Y9^=c@hCmGrJwMzRVY\`aackot|!.38=BGLSX]bglqv{ $).27<AFKPUZ]bglq v{#(-27;@EJOTY\afkpuz               | w p k f a \"Y#T%O'H(C*>,9-4//1*2%6 79;< >@ACEFHJKMOPRTUWYZ\^_acdfhkk}nxpsrlsgubw]xXzS|N}ID?:52 '+6:@DLQV[`ejoty|{~~yyttqrlhc^J:,+)3":LV[i{!"+)+0558=@?;::;=656.,%1-39?OBPEZI^IcOkTmVs^^YVYXYXY[bcghlmee"h.j;mBmGmOrXy]{hyr|{~ym^][I."!!  wh^UMHF@2-%wtt wvom`XOJ:+t,g)F2#~z}wztwpsknhkch`d[aW^TYOULRHOCK>F9@,6  ~{xsojeb]ZUSF{?v=u8l3l.f+\WN IFA>:72/+&#  zwopokjecccec[^\YWY~VcEY;LLJLJLTTVSLNLJLuJpGoGeEeGaJRLROTeVQW\^cuwy||||ytoje`[VQLEGDDDBBBB@@@???===GN Q O'V,]Vl[qcojopltj|llrvvvrvtt~  *-599>?CDIKIM~M|IwMuKtNTR>W6Z,g'f%i ikiiiklkgknsv z}    "%*.69BqHqJpLqTlWk`kcgfbf]oZoStUuRzNzKP|P~S~UyWzSPNKD?*&+((%! zupkhfe ca`\ Y%V(R-Q2L5H9C>@A;D8H3K.N*R%U Z]bfil qux{}{vqkf_ZURPMHC?>:50+&  ~ytojc^YTOJE                 $ & 3 : L P S X _ e l o {       } w m d c _ ^ \ \ \ Z T O J K < 2 , ( %                    ' * , - 4 9 < A E H J K K O K M O P M O# K' F* E2 J6 K9 KE ZT _T dU iU nU sU xU U U U T T T T R R R R P U \ _ h h k d 'k 6s @ 3 , , 1 1 6 ? D G ` c e                   ! !!9)M8P:W:g@s=EJOTY^cjoty~  &+05:>?CHMPRUZ_fkqv{}{xuql ifb]ZU R%N*K.H3D8A;>@9C5H2L-Q(R%V Y\`a cefhkpuzywuc^\WQeVOTLRJRGaEeGeGoJpLuJLNLSVTTLJLJLLD@:6+' 25:?D}I|NzSxXw]ubsgrlpsnxk}khfdca_^\ZYWUTRPOMKJHFECA@>< ;976 2%1*//-4,9*>(C'H%O#T"Y \ a f k p w |              zupkfa\YTOJE@;72-(#{vq lgb]ZUPKFA<72.)$ {vqlgb]XSLGB=83.!|tokcaa`^YLGB=63ypf^xWuWp^l\i^b`_`NcHcAa4h jmjko o kmkuz|ywq`YSNGB;5.)&$$!"!!   \ ` e j o p k m j j r                                   | w t m m h ` [ [ W W T R B @ @ > ; 8 1 , ) "                                     $ + 2 7 < B B I L V{ Xs Vk [f `b _] `Z b\ gb lb n] tZ tR xP yK }I I H M K M R R K D 5 / + %                       " # 1 2 4 6 4 7 ; ; 9 ; <w @r Fo Oq Ww Z{ _w cy fy dt fq dm fb f` f] hY fT iN fE h? i; h0 n. z6 6 5 1 . + ) . 5 = ; ? ; ; : ; ? B @ @ ? ? ; 8 5 3 0 . + ' &  "  !    & .@GEDGbhlvtv{!&7:DMSW]buzz}} $   $) ): 'J "` )` /` 4` 9` @` G` M` T` [` a` h` o` u` z` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `  ` ` ` ` &` -` 3` :` A` F` L` U` [` b` i` o` v` }` ` ` ` ` ` ` ` ` ` ` ` ` ` ` b h m t y ~                            # * / 4 ; @ E J P U Z a f k r w |                     # ( / 5 : A F M R X ] d i p u {                             $ ) . 4 9 @ E L Q T Y ` e k p w |                             ! & - 2 7 : = A B G K G B ? A ? ? < 3 2 . 0 - }. u- p& f h# r) r. z0 |2 2 2 5 7 : B D G K N P L K K P V [ ` g l s x ~                             | }# }( }/ 6 ; A J K M P R T U W Y _ f k r w }                                             ',.55?LX[]bjjhhchghcgjjgjsmrjponomqiqdrcvO~A;76;<9AAHHEC<~;~;{7{6|2|'~qlgd]XPPPPQNNIFILKF=2-&&$!$&$$!     ~ttvrvvvrl|ltjpljoco[qVl,]'V O QNG===???@@@BBBBDDDGEs=g@W:P:M89)!! !                  e c ` G D ? 6 1 1 , , 3 @ 6s 'k d k h h _ \ U P R R R R T T T T U U U xU sU nU iU dU _T ZT KE K9 J6 E2 F* K' O# M P O M K O K K J H E A < 9 4 - , * '                    % ( , 2 < K J O T Z \ \ \ ^ _ c d m w }       { o l e _ X S P L : 3 & $                                          z u n k h d _ \ W T P K H C @ ; 7 2 / , ' # ~ z w w w y y y y  ~ w w j ` a f h{ py |o ~l tb pU mQ |8 |. r p e \                          ! & + 0 6 ; @ G L Q X ] b h m r y ~                              % + 0 5 < A F M R W ] b g n s x                               % * / 6 ; @ G L Q W \ a h m r y ~                                 # ( - 2 7 < A F I L P U Z ] Q N N Z  Z X 0 P M L q I z G I F F D A A 7 3 2 2 0 0 . - 2 5 3 0 & $ #  !  $  !  ! %  ,  8  B  C  R  `  u  & ) ) . 0 2 0 5 = 8 7 3 2 2 3 2 7 3 7 8 7 7 < ? G N I G N K I V  Q G F D B D F B  G  I  G G  F  G  I  G  P  P $ L & N ) P ( P ) S ( U # V  X  X ( V . Q ? I P I X L g Q q Q v N { K } B 8 < D B G } F P y Q t P q N q N s I t F t I q I o K o I o G o G q F q F t D o B o A o ? q ? l = j = l < j : l : i 7 j 8 l 2 t 5 v 2 v 0 y . y 2 } 3 2 2 + ( ) & $ $ ! ! # & # & & ( ( & ( ) - - 2 5 7 8 7 5 0 5 7 5 2 + # ! # + # ! !   ! $ & $ $ $ $ & ( $ # $ # ! # $ & ( ) & & ( + . . ( & $ ! ! # & $ $ $  &  &  & ( ) )  +  )  ( ) , 0 F 5 R = ^ 2 c = ^ 2 c  k  z  |  |              u r h e e Y R O G C 9 ' |  |  x  u  u  p  r  u  s  u  s  m  m  i  h  d  c  ^  ^  a  a  Z  P  M  F  C  @  <  4  1  1  ,  '  %  #  "       " ' % ' * * ' ' 3 = B E L O T Y \ h k r t |                              z u ^ [ Y Y R M G @ @ = 9 ) ' "                                                        #  #  '  *  -  7  7  6  7  <  @  <  C  H { H { F } E { C s C q A i A f J \ O R R H Z < ^ / h ( i ! n  r  s  x                  | l l o j b ` X V Y [ Y X Y [ [ ^ ^ [ N J J G D ; 6 1 . + & "                            } w r k f _ Y W U T R P M K J A ; 6 }/ }( }# |                             ~ x s l g ` [ V P K K L P N Q S S X ` ] ] Z ] _ _ b ` d i j l n o o n o l v t y y } { y ~ ~ }                                                                                   ! ! $ & $ " $ & ) + , , 0 . 0 0 3 1 5 3 5 6 : ; = : ; = ? @ B D E G I N S T X Y ^ V V T S Q N D D D @ B @ ? : 6 5 5 6 6 : ; ; : 6 5 3 1 3 . , . 1 3 0 + . ' ' "                                                    ~ } y t t q o q s q o j i ` _ ] _ ] ` e i j g i e e b ` ` ] _ X K G B A = : 7 2 - & !                             | w p k e ` Y T Q L E @ 9 4 . ) $                             { u p i d ] X R M F A : 5 / ( #                 zvqnifa\ X S P K F ? 9 4 - ( !      ! " " $ & ' ' ) + , , . 0 8 ? D I O T Y ` e l q v ~   { v o h c ] X Q L 0                           ! & * / 2 7 < > D F K \ k n                      " ' . 3 8 @ O c               # F P X b e e g s &} &~ )} .} 0 3 8 @ y     | { | {                % / 7 P b p z             } ] N G < 87 H3 Y2 . ( $         & ? I V X d l }      $ 2 < A P e }      " / ; P Z d r |                                       !  &  E  ^  `  ]  ^  b  g  j  ~ ~    ~ } x o e ] Z U P L I F A < 7 2 - ( #                                 ~ y r m h a \ W Q L G @ ; 6 / * %                               x s n g b ] W R M F A < 5 0 + %                              ~ y r m h b ] X Q L G @ ; 6 0 + & !                              | w r k f a Z U P J E @ ; 4 / * #                            ~ y t m h b ` ` ` ` ` ` ` ` ` ` [ V O J E @ : 5 0 + $         zup i#d'_(Y,T/O2H4C7>;7<2@-C'E"HKMP TWY\_adhimpruxz}ytnlg`[UPKD?83-(#        | u p k e `" Y$ T' M+ H, B. @+ 9' 3$ .! '            #,6PWadikmrr{sz  &8BJ`jotw             &((&(++/--/-/--+*&(%#%&-//-0479:>ADFC<>>v9v4u4s5k7i<d>bAaH_IaKdNfRiUkZk]iaibggfkblan\pXuUxPxM}KIHHFDCCDINSXXWZ]abbadginpsvz  %).169=BEJMQVY^aejmruy~   $+05<AFKQV]bglsx}  ""$$%%%')*.148;=>;63. *'"#(-149<AE J ORWZ_cfmrw|          ! '$ .' 3+ 9. @, B+ H' M$ T" Y ` e k p u |       #(-38?DKPU[`glnty}zxurpmihda_\YWTP MKHE"C'@-<2;77>4C2H/O,T(Y'_#d ipuz        $ + 0 5 : @ E J O V [ ` ` ` ` ` }` v` o` i` b` [` U` L` F` A` :` 3` -` &` ` ` `  ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` z` u` o` h` a` [` T` M` G` @` 9` 4` /` )` "` 'J ): $)   $  }}zzub]WSMD:7&!{vtvlhbGDEGIJILLJGGEBD?:;;:8110+,+)'|z} ||xwsia_YUOJHEA>;9664422/*#" }tj}ix`u_s`ubpepgmjkohsfxcy\sUqKeC`A_@_<[9X6N4K-G(G#B"      ~ yyr o jhh`VHCB=*%$ O R M K O O P U U Z Z O P O K M P O R R U W Y \ ^ ^ a d f f h i m m p p r p r z z u u                   z u k k n n h f d c d d a a _ a a \ Z Z U P P U T U U O M M J K H H C  C  F H F H M #R &T +R /T <Y Ac Hh Mh Rp Ur Xu ax gx p} n s u x {                              % 8 9} ;x >u Gu Os Rp Wr \p `u ow pr un uk rf uf yc zc zY |\ ~Y ^ ^ Z W T R U P R P O O H K P T W \ _ d h k n u z                             zr k c\\ cc [ V L LEB@B=8/.**")&*)')$,6= ;DEEDGLNQVTVVV T"Q"E*;.686>1>.E,L&O)Q)`$h$p&p)w+&$"$$&&)&&"&).5;BGNSY`qwy|zukmko o kjmjh a4cAcH`N`_^b\i^lWpWu^xfpy36=BGLY^`\YVzRwMrJmGhCc@^=Y9T6O3J/E,=%61,'"  }xqlga\WPKF?:5/*%   "~%{)v,r.m1j4g8b;];Y;Q4I/I.G.B';$; ;?==;8:36?B@63018;665310"!"!"!  xwuuxzxssmkn}sr}szrxp{m{mshuiuizfUvEsFpEnAn<:@5C2F/H*K&O!RUWZ^ acfimprux|ytojc^YS N IB=81.+!&"!&)+.0 36 8 ; ? @ D G I L N Q T V Y ] ^ b e g j l o r t w { | | w r m h c ^ Y T P O v |                                      % 0 ? H M S W Z Z d k q s u s x x z { { z x v u q p n i g g i d i g f g i k k n p s v z { }           ! ! ) - 0 2 3 5 7 8 : < = < = ? A B D F B D D B D B A A ? B D G I K L L L K K I G D A = < : 8 0 0 ( ! #                     ) 1 C H H T [ ^ a \ e p r |. |8 mQ pU tb ~l |o py h{ f a ` j w w ~  y y y y w w w z ~ # ' , / 2 7 ; @ C H O O P R P U R T W Z ^ ^ ~Y |\ zY zc yc uf rf uk un pr ow `u \p Wr Rp Os Gu >u ;x 9} 8 %                              { x u s n p} gx ax Xu Ur Rp Mh Hh Ac <Y /T +R &T #R M H F C @ @ > > 7 7 6 4 4 2 4 / * / *  / !*  '  #  " # "                      ! # #   ! ! # % # & & * - 0 0 - * - 0 / + + ( & %                                                                                     ~ x y x } ~ ~      x o n l j l e b b g i i j e ` [ U P K F ? : 5 . ) $                    { w w t q q m l o v { | y w y y v v {                             | } | *n .i 3i BW JO LM LH EC @E 9C 6@ >4 B/ B- >* >% B > > G L J L H J J R W T L L W [ [ ` a f k o o p u u y u~ zy y { t j g d ` U U L K D B A ? < 8 3 2 . - - + ) + (                           ! . 2 3 8 : 8 : A B G X ] i j y { v x {                                    " 6 C C A F H K K O R U Y _ c h n w                                                       & 0 ? L V Y h q v v y {                   $ ) . 5 : ? F K P U [ ` e j i i l o o q s q s q s s |q yn ll lj mi lg je eg cg ^i Yd Td B` =[ 6Z 3Z 5_ 8` 8b 3` 0b ,` )` [ [ b b g g j g g l  l i d d g g i l s n n j i j g j j j n o q n q t s v v v y y } } ~    ~ } y ~ ~                                                                                                                                 % ( , / "7 +6 01 ,( '" & ) ' + , + , 0 3 1 5 6 8 6 3 6 3 5 : ; 6 5 : : ; = ? @ B D D @ ? ? @ @ G L L I G I J J O N% O% X X* ], ]' ^( `( b% c% c" e' g( h( l% m( j, l2 m4 h7 h< g@ hC jA lA j> m< m; q9 q2 r2 v4 t6 r9 v7 v6 w6 {4 |> {E yF wE wF {F ~A A > ; @ F H F F K O O P T Y ^ c h m r w | | { w t r o l j g e b ^ ] Y V T Q N L I G D @ ? ; 8 6 30 .+)&"!!&+.18=B I NSY^cjoty|xurpmifca^ ZWURO!K&H*F/C2@5<:;>7C4F1K-N-P,N,R%R#P%N"M"RRNMKMMIHI H I FDFHIDDC?ACD>:9<922+*&&*/-/2}4y9x?y?{:xAqHnKjMiP_U]W_X]XVXSXSZVZU]SaQkDs?q7s7p2n2l5l2g-f+d)b)a&a$\#__]Z WZXZXUX\\a]digfggiiiba__]]\ZZXZZ_aabagknpupngdbkiin~lznwnuntnonruh}a{`}V}TzRxTuOuOxQzO}M}J@>=;96611'$$    {pg_WPI?2%  }zsuqklpnqu|{wztxj{g{cqYnTlTlLkGnBp@p6n5n"q!x!{        { z x x x v z x x { { V R M H H E H  G J R T V W [ Y Y \ ^ ` ` c e f h !f $f $j 'h )k 'p )o +m .m 0o ,o +o 1p .t 1t 1u 5u 3y 5y 8u :w :u ?t ?r Bp Ip No So Sm Vm Xj ]o `t hy j o v v y y w y | { v o l m q q t w w {               { y v v q h Y V L ? 0 &                                     y w u w u u f a [ Y Y V C E F J M W \ _ f n s zz y u w u w t h h k j j j k k j f c a \ \ Y Y R R V Y Y [ a f u u w u w y                                                                              w n h c _ Y U R O K K H F A C C        } x ~   ~ ~  9 ] q } t t i ` ` S Q S S S U S P N L  K I G F "D 'B .A 3= 8< >: B? GD JI ON RQ WV [Z `_ eb hg mj po us yx ~{                             & ( - - 7 = B F K P S P N P S U b e d e o x ~                                   " % * - 9 > M c k x z x x |     v v n n d S P L G F D D ? = < 8 ) & #                             & & ' ' , 0 1 3 5 6 : = JL Vb Xn ]x ` e j l m o q t v w y { |       y r r ^ ] X V" O# L( T* X- S6 XA VO YT [Z Y^ ^m ]p Qw N} E @ 6 . $    } | w u u r n m h c a i s s p p u        | z w u p n n m a Z W T O O R U Y ^ a n r z                       00Gm y                        % ( 2 5 > D F I K M U ] d l q { { x x z v x x x z {         {x!q!n"n5p6p@nBkGlLlTnTqY{c{gxjzt{wu|qnplkqusz}  %2?IPW_gp{}xsqkibaaXPMHC<795740**(%  {wrqqrrqommmrvtolgcg[[YYVVOS]``[VTQQTTQJB:850.11,+,+$$'$! uZmPiMhKiIfIfHdDcDcI\D\:Y2U YWUUTRUPO R P O O M E>AHJFJC@@<71--//,('% |rrljcbgjoqjhc`^e^TIGGDBD?@;:886668:83,''+)+&      { { y t s j ` X L L L D D = ? F I K V V U G F = < < : : 8 3 0 - !                                                             z p k h ^ V O G @ 6 = > E M Q R O Q V \ ^ ^ H R V > / $                                     p k a U R P N M} Kx Iw Hr Fk Cf Aa A\ ?U 

= = C H L L T W R J J H L J L G > > B >% >* B- B/ >4 8@ 6@ 3> )> $A "C C F H  J  K P W W Z ^ a c _ \ \ ^ Y \ \ _ ^ a _ a ^ ^ _ _ c d }f zf si ph lh kc ga b\ \Z ZZ UU PR KM IO DO AK 7H /K +R *P *W (Y \ Z  \ _ d c h f h i h k i k h h s w |          | | { t r l o q t w { ~     y w v t o j j e ` b e m o v ~               y m G00                      z r n a ^ Y U R O O T W Z a m n n p u w z |        u p p s s i a c h m n r u u w | }    $ . 6 @ E N} Qw ]p ^m Y^ [Z YT VO XA S6 X- T* L( O# V" X ] ^ r r y   >: C7 C0 H- G$ H L J G H H H G E J J V V [ [ \ [ Y [ Y V W Vy \p am `f a` e[ oW tW y\ |[ T G 4 1 ) "                                & ) ) . 0 . 0 5z 7q  ? H P Z a d n u { {                " " # % # # % ( * / / , 6 7 ; > @ E C E F H M K O R W W Y Y Y W W T W Y \ ^ \ ^ _ c d f k n p n n r p u u s p m k h f k n n s u% w' w* x* x/ z/ |4 |6 x4 w8 s4 n9 p@ s@ rC sG xH zE |E }H |J xL }M }O M T M O H C H G 6 = B E C G E G G M Q Y \ a m                                  # & ) 8 < = ? D D F G L P S d n n v v     | x x z x k c M > 9 - * % "                                   ~ x o e d e b U S P N P S P K F B = 7 - - ( &                             ~{ yx us po mj hg eb `_ [Z WV RQ ON JI GD B? >:          " " % ( ( ( * * ' ' , - , ,~ ,y ,w ,r *l (g (` '[ %V %O #J "D "?  8 3 , , ; Ys !&+05:?DJOTY^chmrw|      $ ) 0 5 ; @ E L Q V ] b ` V T  X [ *e 5c <] \^ bb f` n` s] z` c c h c c ` b ^ ^ g m m o m o t y       ~ ~                        } u s q l i g f i i k l f d f b _% Z& Z< WA WD WH XM XU XW UZ Rk Np Sv S S Z _ i n x z { v f U R I ? : 5 2 2 4 7 7 0 + + * % ( % %    %  % " " $ ) ) * / 4 9 = B C E E G H L Q V c e f h k r u y z                                % * 0 5 : A A > : < > : 9 - * ( * % ! # %| &z &r *p +m *k +f *a (^ *^ +^ *W 2T  ; 9 @ B @ @ = 6 , * *           # % ( ( * ' # # "                             } z x v a \ W R I C < 7 - / - * %                                                 | { y w v t q o m l j e ` ]x Xn Vb JL = : 6 5 3 1 0 , ' ' & &                       m a \ Y Q M G G E G C E B = 6 4 1 / ' % ) $ $                  }    | | z x u s u r p n m i k m n n k m i f f c d a _ ^ Z W U R T U W O K J E A A @ < / - , ( ' ' # #                         { { u n d a Z P H ? > 9 2 2 + + ( %               &  '(( ,--167 6!1&,(#2"::>? H#F%I"N"P'S'Z*Z*]/\;]C]FfCi@l>uCzEzHJPUOHE<<91,%"/9>OTRU Z c kr"s/x69CEJORWVRTRTRTWRR&T.Y6eEt[r|#-0<DRdiq}(+03):4=;FBIGGLI\GuBFIIGB==BINSX[`beglnqsx~ "#1;@JKMPWcis         ' ) . 6 B G L O Q T [ Y [ ^ g j o r w y { { |                                                                           ! #  %  ( * + - 2  0  4  5  7  7  < > A A D H K M N U W Z _ b f f g k l q u x {                                         " ) , 1 8 ; > @ @ B R T W W [ [ ` h m m t w |                                   r j j m k p o j e ` \ a ^ [ T H H C 1 )                     # ! ( 0 0 8 7 5 3 2 . - ) & #                             }  { {   { z x x s u s q k d Z Z W S M H ? 0 %               z z y t w t r t u z y ~                       | v o j hy `t ]o Xj Yf ]c ]` bY ^W YV VV ][ ^\ Y^ QW QV NV LW IT ?O ;M ;J 6H 3H 3J 5L 6J :M 8O 3Q .L .J +E )J 'H 'G &G "E G H !L M L H Q Q O M E  C  E  G H E H H M R V R R Y Y \ \ a c f j k k j j j k h h c a c ^ a }^ z` x^ p^ m\ f^ a\ ^^ Z^ TY PY Mc dj kk do Rj Mj Fh f >e 9c 2^ ,` "^  ` ^ a c p u z y u u w u w u t k f f o p t u u ~| y| t s t s o j b Z U N I ? < 8 0 - & #                                            z u o j e ^ Y T M J H G 9 %  t k f ` ^ V T Q G G H G J% M" M O R V W" V$ Q$ M% L) E) E. C* @. 4/ 13 .6 *3 /  . ) / . 1 / 3 3 6 3 3 . ' '       } q p l f b ]" ]% Z' X) X, U. R4 R; K= I@ CE  < : > A A : 5 0 * %                                z y u r k h f e c V Q L H G E E C B = 9 4 / * ) ) $ " "  %  %   % % ( % * + + 0 7 7 4 2 2 5 : ? I R U f v { z x n i _ Z S S Sv Np Rk UZ XW XU XM WH WD WA Z< Z& _% b f d f l k i i f g i l q s u }                        ~ ~       y t o m o m m g ^ ] [ V T Q I ? , !     "%$%'.1139>OTety ((}(w(r(m(f(a(\(U(P(K(E(@(;(4(/(*(#(((((-8= LL LDDDDDDDDDDDDDDD?:5)  {vojebXUUL=<=2.) !&+035<==BFGNQSVZ`dlosvyy~~||zz|ztkhe`VQLE@;4.)$ {vaIA:5-&TRRLLHL JLHHGL"J*E*@1>69866.Mp  !(0<NPQNPUX]`beegljsy{~  $%*=BCHV`hh j ory y ~    " #B(G-G4K6N9X<[@_A_C`KeUq\scyfxhskomjpgpeubs`u_x`}ijt} "#*/2244669;>AEHJOUY_aiswx| |}z'|)+,+0118:;;:?DBEGGJLLIJIG@.&     !  " & ' + . 0 3 5 8 ; ? ? @ @ B ? ; : ; ; ? ; = 5 . ) + . 1 5 6 z6 n. h0 i; h? fE iN fT hY f] f` fb dm fq dt fy cy _w Z{ Ww Oq Fo @r <w ; 9 ; ; 7 4 6 4 2 1 # "                       % + / 5 D K R R M K M H I }I yK xP tR tZ n] lb gb b\ `Z _] `b [f Vk Xs V{ L I B B < 7 2 + $                  { x u q l k g f f b _ Z W U N M K H D A A >  <  7  7  5  4  0 2 - + *  (  % # !                                                                           | { { y w r o j g ^ [ Y [ T Q O L G B 6 . ) '          sicWPMKJ@;1#" ~xsqnlgeb`[XSNIB==BGIIFuB\G\Bh=k8h5h0f0f-f#^\\cee afeajjkkktpojkjffefcacea``cca\zLwHuEu;p3t,o$o rrom khfea`^[YWTp|~        ).7:?Pgnqx~$).5:?EJOV[`glqv| !(-27>CHNSHD>94+(%!      "#""'"   ~#*14>CKRZahnrw      ! ! &  + . 1 6 : @  G  I N O S V Y ] ` ` m q r | |                  ! & D W U X# W& X* aC aR fW nZ u_ xg }i p }                                               " % ' * / / .% /) // 49 8C 9C ;H ;L BQ HQ OV QV Re Th Vk Vy W V Y [ Y [ \ [ [ V V J J E G H H H G J L H G$ H- C0 C7 >: 8< 3= .A 'B "D F G I  K L N P S U S S S Q S ` ` i t t } q ] 9  ~ ~   ~ x } t n F < ) ( #           ~ { w q l! c+ VL X~ Y} h} {        h c [ V Q L G B = 8 3 . ' "                   t o i j d _ [ V S N K G A < 8 z3 u0 r. k) h( c& _# Z! U! U R T# R! @ '               | ~ | y w t j c y^ lO dG ]> Z9 S1 Q1 K) G% < : 0 &                } q i g b ] X U M D 0 &                           { o ] @ 3 $ ! ! $    ui_^R;/"%'%zttokhffjmmjpuwz|zxtxytlieZXZX]Z]ZUF8538782..-((++)(--788330-)((&      #$)-0788:72 2 @ G O T V [ [ f k u u y   ~ w |r ur st rr nr mj ie fe dc aa Z` Wc Pe O` M^ @C >9 ;3 <' 9 ; 7 / / , ' #                % ( ( ( * / 2 ; ; C H c f h m n m p n r s w | |                                ) 1 6   { h} Y} X~ VL c+ l! q w { ~           # ( ) < F n t }         SX_dipuz  %*16;BGLQW\ahhhhhhhhhhh hhhh#h(h/h2h4m4t4y4~44444444444444444444444444 4444$4)4.434:4?4D4K4P4U4[4`4e4j4q4v4{4444444444444444449@EKRYcmrx    $ $ ) + . 0 0 3 5 3 5 5 : = @ D S V X ` e j r w ~                                     # % & % % + x- _9 [A [F ZI VK SI QP KS I\ Fa ?f 41*#~   "'""#"      !%(+49>DHSCEZdmn|")+56=DEXbmvvy~  &(+-/249C%C+H0N/K/N7U?WFZP\Waddzbdbfig\]aaPIIHA >945"5)26&8&;*>*C(G(M%R%[#t!~wt!#&&*-*(+/07:<97::920//(#  $+<GKLN[g &-5:AIav{ $).4;@ELQV`ehktz|zz||~~yyvsold`ZVSQNGFB==<530+&! ).2=<=LUUXbejov{  )5:?DDDDDDDDDDDDDDDLL L= 8-((((((#(*(/(4(;(@(E(K(P(U(\(a(f(m(r(w(}( yteTO>9311.'%$%"    ! , ? I Q T V [ ] ^ ^ b ` c c h c c z` s] n` f` bb \^ <] 5c *e [  X T V ` b ] V Q L E @ ; 5 0 ) $       |wrmhc^YTOJD?:50+&! sY; , , ' "           zsnhc^YWMH/((%"    } yx gSKF D"A#='=,815606+6$66666666666664444444444446666~6y6r6m6f6a6\6V6Q6J6E6>69636.6'6"6666 6666666666666666666666211v7lA_MHPHWC\9\*^#^^UOKFCCFFECFJKHCCACpmcWRC6. ' +03= GGT[^clqw{|~  *7AKPXgkns))$$1LV\yz~suli]XNH<::7-*&#!)37<AF KPSX]bejt} %6ACACCHKJFCEFFCCFKOU^^^#\*\9WCPHMHA_7l1v1266666666666666666666666 6666"6'6.63696>6E6J6Q6V6\6a6f6m6r6y6~66644444444444466666666666666$6+6015,8'=#="A DFKS gx y }   "%((/HMWY^chnsz          " ' , 3  8 "? "D #J %O %V '[ (` (g *l ,r ,w ,y ,~ , - , ' ' * * ( ( ( % " "                                 ~ w r j e ` X V S D @ = : 5 5 3 5 3 0 0 . + ) $ $     xrmcYRKE@944444444444444444{4v4q4j4e4`4[4U4P4K4D4?4:434.4)4$4444 44444444444444444444444444~4y4t4m4h4h2h/h(h#hhhh hhhhhhhhhha\WQLGB;61*%  zupid_XSNHC>72-(! |vqlg`[VOJE?:5.)$~xqngP?:7.)        ~|p|p  $$)) "%#'/4;\r_qfou]b`cow||     !'.05?DED@DEJIJGDDB?=830 . , ) & $&#* <? FHMPSS&])].a)f!innsppl lq xz "$')36:;=?BELQVXX]^`cegjloqrvy|}znlpuzxxsqsp plq&u+025975?DKNPUXZ]binsx}xvndb_\USPMIH>994{4z({%}#}%&*-+-+**&&#!#!#%#%%(&%&**029?DIPUZ_fkpv{ "%',4489@CBCGJOQJGGHGJHJJQTWY[^`aefh kmor r$o,o3t;pEuHuLw\zacc``aecacfeffjkjoptkkkjjaefae ec\\^f#f-f0h0h5k8h=\B\GLIGGBI;F4=):30+(}qidRD<0-#|r[Et6e.Y&TRRWTRTRTRVWROJEC9x6s/r"kc Z U RTO>9/"%,19<<EHOUPJHEzCz>u@lCiFfC];]/\*]*Z'Z'S"P"N%I#F H?>:":#2,(1&6!7 614<@ F HFJEA@74441-" " "%"      "%" " "-14447@AEJFHF @ <41--,( ('  '*.4EGGT\aejjkhhjkm~zwwy~~|zz}}|zzsswwxwsprnidca_ccdhf^ZYZYURRUWTTUZYZZZ_^aiimrrussw&w0|3z:s?wBxFwGwK|N}NNSS`lyy!$&&,6=@@BENSTSX^egjmrvw*4@HJKJR^\_\cmkmu  &++--0++-/--0<CCCDF)M,N=ZB\EaObSi]lhxecejltvy~wtoj`JB8&  zs{rrmkidaWP6,#   ~{ysjlgeeb`]XUPNQPN<0(!  pM6.86691>*@*E"JLGHHL JLHLLRRTQJJHJGHGGJQOJGCBC@9844,'%" {vpkf_ZUPID?9220/(%!qqomhc^XSNIB=83,'" u]OJJE8)')'      "166=EEBB@@D@?@@@=:851358;=?EGEGDIJDEGIGNS`{|yvtmjg^[XY][]^[Y[`^belmlhcbchjmmqrt{~ywvwrtrvy{w~w||z}wwssnkhfhhkknppsuuw|xz} %!              055>?AACA>><<:99<0/47<?NRU]_bfffiigadddddddddddd dddd"d)d.d3d8d?dDdIdOdTdYd^dedjdogoloqovo}ooooooooooooooooomoqq!%(/0220**&%&(%%#%#!#!#&&**+-+-*&}%}#{%z({4499>HIMPSU\_bdnvx}xsnib]ZXUPNKD?579520+&uql ppsqsxxzuplnz}|yvrqoljgec`^]XXVQLEB?=;:63)'$" z xq llppsnn!i)f.a)]&]SSPMH F? <*#&$& ) , . 0 38=?BDDGJIJED@DED?50.'!     ||woc`bu]dillnnqpkgpqnsvv "',38=BINSX^chmoooooooooooooooo}ovoqologododjded^dYdTdOdIdDd?d8d3d.d)d"dddd ddddddddddd} -/4AJOTchnruz|} ")*6;==9=@GGJLQMO\ajkoppmfkkp|~~".0|6z8wBzNwOuXuXrw[`aeheepokjokom&DDXb]]__bil+f7WdUiXoXtP7!72,*7*;KPY_c!/4:.:=9S:h:y/%    !#&(*+//200445:9<<?ADCFD KKHI H H!K!K#H#I&I(M-N+P/R-X4S9K7I9F:>:9?5D4F/H*K%P%R!R PR!W!X \\]afg!i!nlgbbfid b dkllkikkdikigfigiigpsuuvz}~yvtljecehx]lSiObEaB\=Z,N)MFDCCC<0--/-++0--++&  umkmc\_\^RJKJH@4*wvrmjge^XSTSNEB@@=6,&&$!yyl`SSNNN}K|GwFwBx?w:s3z0|&wwssurrmiia^_Z\YUUPPMHKJHFCA@@97229;;@A@EA@>#qqsyvvssoqqolonllnob``b``]]_][XVXXVVUSUUKIKIIBD=0+-.-)#(##!&!!#&.+$)&+&2)3(0(+$(&$!! &+. .+3.(2&5!32023:<20 -0:ADAFII NNK KD?IU]eqv}|VRTVWWW[aeetwyytkf`\\[WTTQRT~RC~6~%}e[WRLGEB=1.'$    {vpfb7b9d9f4v7x9x7{5}7<}<uCgMdRZRSUMWNXMX>\<b>b:p/s/v*z*}&(#((* (4FKad./`ajt~$'6>HW^chmrw| $+05:?DKPUZ_dinsx{{}~~ !(-28=BINUZ`ejqv}  %(,/26; >AEH#K*P/T6W;ZA^FaMdRiYm_pdskwpzw}| $+06=BINT [ ` g m r y    " & + . 0 . , , + ) ' ' & $ " " !        ! ( - 4 9 ? F K P S X\afinqvz|wrmfc_ZWROJ E A<941-(#"' *.36;>=;841.*)'%%%$$""  }xslgb]VQKFA<50+$   ~yurmjea^YVQMJEB=961.)%  zvspnigdabba]ZWXXSNIDCCDFHHI}KxMuHqCq9p5n0l+i*f-b-a/_5\7Z4X4R-P/N+M-I(I&H#K#K!H!H I HKKD FCDA?<<9:544002//+*(&#!    %/:y:h9S:=:.4/!c_YPK*;*72,7!7PXtXoUiWdf7l+ib__]]bXDD&mokojkope               # ( - 2 8 = B I N S Z _ d j o t y       x s m h a Z W P K C C A A @ @ > ( "    ( / 2 < R U \ a i n r } , 2 4 9 6 < ; @ A F H M K A @ @ E A < ;;>A&@,A3E=E@>@4D2G4LCOFSM[P[O]J`K`P`Wcagaj^m^qfqmrsw|~~{wrh cbcec^^`^[X^e!h$h0t@yB|QySvQgX[JQB?8;,5) "& , . 1 : : ; O N O Q N N S [ X S N N D B = = 5 1 '} !z p r n h Y J A 7 * # ' $* +* 0 0 + . 3 D E" B" I# J" Q T X V Y ] h Y X ] ] c o v w m w  { | { |     y @ 8 3} 0} .~ )} &s &g e e b X P F #          {yyxvvtts|qwqromnfnal\lVjQjMqEs@x9{8;@@HGEEBBC;4) u u4x>u@sCnEiHdK_OZRUUPYK\F^Aa<d7h2k-n(r#swz} ~ytoje`[VQ L G B = 8 3 . ) "! $ ' + . 1 5 8 ; ? B E I L O S V Y ] ` c g j m q t w { ~    } x s n i d ^ Y T O J E @ 9 4 / * %                             ! # & }* x- s0 n4 g7 b: ]> XA QD LH GK BM <P 7S 2W -Z &] !a d g k n p s v z }                             % , 3 8 > C E L O Y ` c m r t z | z |  ! & 8 F U b n v x x y              , 6 A H M _ n    & ( - . - + - 3 = D G G L ] b d _ e g o q v       O o      ~         ~ v e l l e b ` [ Y Y ` ` `% [* S1 X< TP [k Qn Lx Xz S G L N Q D ; 8 1 + & $ $ & ) 1 8 ; N V [ ` m w                        $#&-1A1K6W8\=_@i@sBuBGDEEIIONLJLTX[`"`%`/[4Y9[B^C`BbE^J]\bkhwljhjhjjljhj]XSQ OQV)].^5b<cAbFcXloosrqvs|}|yvtqoooomljhlllrw{|{|{|yyyrqroq r m l j h eh%m4o7l<lCjMm^j^gaca`W`P`K]J[O[PSMOFLCG4D2@4@>=E3E,A&@A>; ; < A E @ @ A K M H F A @ ; < 6 9 4 2} ,r n i a \ U R < 2 / (      " ( > @ @ A A C C K P W Z a h m s x     y t o j d _ Z S N I B = 8 2 - ( #                     c O @ 8 3 . ' "                      n k \ K F D > < 7 2 / * & !                             0 L Q X ] c h o v { ~ v q l e ` Y T O I D ? 8 0 . + & "      y r m g ` [TNIB=60+$ }|zwwpskpdm_iYdRaM^FZAW;T6P/K*H#EA>; 62/,(%  }vqje`ZUNIB=82-(! ~~}{{noqt %*/49CEMRWiNN"P0P8X?X@ZDXL_O_TbQgQnOpXlYi]p]q]sbseqgqhugvg{egjlhjhjotv{ywwtrvvwywv   $'.1=BEGLRW[eehea`w[XrXuOuNwBz8w6z0|."~~|pkkfmppokja\OMQLJGG@=9==;6*)" }|zurnhcTOJA4/- }} {{{yyyyxvvvtttssqoonbxixinnkogydyZ~UNIHKKDAA:959744:<>>?ACA:744:<?> ?>><">-:/<1>4:6<7?9?<I@IAFFFJAOAR?T9W5\/m&n(m+p-p0s2u4|4-00252475722+%!#&#!## !#!&##((##%(! !  "$'.5:=DIJQTVVXYVL2J2J4E2LCL_DX@Z?X8X0P"PNNiWRMEC94/*% tqonebx  ).225223<:IXgqq"#'-1149>CHMRY^chnnrx|}&,03@@DILLJJLLLLLLLL"L'L.L3L:L?LDLILNLSLXL^LcOcOhOmOrNvL~LLLLNNLLJJIILNLLJJIDEJLOSVVSXY]YXVVTQJID=:5.'$"   !!(%##((##&!#! ##!#&#!%+22757425200-|4u4s2p0p-m+n(m&\/W5T9R?OAJAFFAF@I<I9?7?6<4:1>/<-:"><>> ?>?<:447:ACA?>><:447959:AADKKHIN~UyZydognkinixbx[lUgLdGdDaA\?FADAFGALAS?]4`*]%] bb``[ Z&_*_+[2X5V9S>LAF?BAAA?CB < 732.$  |ql^]^]VSQJIB;60..)'!|wssmmc^UWTTPOKKKJHE<<><997642//,'##"  " "      &)35=BJITVY`etvy"#%*124;7AACEFJHEKFAAMRY\\ZZU O&R&Z+W/\0a<h>m?n?rCuDuDrFsDuCwAz<s:u:|772/((&&00KNXZ\ZXXURRUSU\filxx{ .8888::BGNT[bhov|  *((#(}&z*v*s/p/b:b>\<X>XMWNUMRSRZMdCg<u<}75}7{9x7x4v9f9d7bbfpv {vwywvvrtwwy{vtojhjhljgeg{gvhugqeqbs]s]q]pYiXlOpQnQgTbO_L_LCE2J4J2L2VY]YXSVVSOLJEDIJJLLNLIIJJLLNNLLLLL~NvOrOmOhOcLcL^LXLSLNLILDL?L:L3L.L'L"LLLLLLLJJLLID@@30,&                  $())--5<GKKFFIIKI K L PSQNSVZ[]_``elqtstvsvx{y}}{{~  "##""'*21479<FHMRRPPRRRKJKOPMFFKRY^chkmp       !!(7=ABFIIF G I SZ d ggiedde"e$d+g)j&l$q"s~"&~,~.10+'$!         " "  "##',//246799<><<EHJKKKOPTTWU^cmmssw|}|xrnnhc^YRMHC>9411-'#"qqgXI:<322522.)         r p sw z|z|  ||zzxnpuurihc^\YWWTRPMJFFA@C C <977 2 1 , * ( -,-*% ' '   %' *,- 47;7 7 ; C H J R Z\kmi p\1%           {oj_NK?70+&   &,0355;=GLQQSLIIINTY[`cghjhmmoqvw~{~~~~wtmc`\[WT[\^^\\YRMJ=9961,%      #&*}-4z9x9u<u:p>n>k7g2b7a:\?]C]DZHWISRMUMZHaSgUnUuPzNPRRMHDFF<<9:>>AA>?::7KKSU]aadbdb_a_babdg illsx{   %,14;BGL Q RRQOT"[ \\[[[`ekrw| $).3:?DIPUZ_djoty"',38=BGLQV[`ehkory~ #(.38=BGLQV[`glqv{  %*/6;@EJOTY_dinsx}       " ' , 1 6 ; ~@ ~G }L }Q }V {[ {` {e yl yq xv x{ x v v v t t s s s q q q o o n v }                          % * / 4 9 @ E J O T Y ^ d i n s x }  ~ { w t q m j g c ` ] Y V S O L I E B ? ; 8 5 1 . + ' $ !  " ) . 3 8 = B G LQV[`ejoty~ }zwsr#n(k-h2d7a<^A\FYKUPRUOZK_HdEiCn@s>u4x uu )4;CBBEEGH@@;{8x9s@qEjMjQlVl\nanfomqrqws|ttvvxyy{xsnid_ZUPKD?:50+$ |wrmhc^WH>6'$~tja`/.daKF4( |vohb[TNGB::8888. {xxlif\USURRUXXZ\ZXNK00&&((/277:|:u<sAzCwDuFsDrDuCu?r?n>m<h0a/\+W&Z&R OUZZ\\YRMAAFKEHJFECAA7;421*%#"yvte`YVTIJB=53)&   !$'+01.,~&~"~"s$q&l)j+g$d"eeddeig g dZ S I GFIIFBA=7(! !             I R  " 4 9 T ^ k t |     , 9 = > ; 6 3 , $ $ * ) *# *( '< ,B *D 'L .P /[ 8b 8y M W [ ` a ` ^ c ` ` m z           "  # , , !4 .; AA KM Xf gs q                   * M U c n r x z                            " $ $ & + 1 8 ; D Q N L Gz Sx Xn Lk QP [< T1 X* S% [ ` ` ` Y Y [ ` b e l l e v ~         ~      o O     v q o g e _ d b ] L G G D = 3 - + - . - ( &      n _ M H A 6 ,              y x x v n b U F 8 & !| z | z t r m c ` Y O L E C > 8 3 , %                     y r k e ^ W Q J C = 6 / ) "                         { u n g a Z S M F ? 9 2 + %           C^p~-2Kdy    |}z-r-pCfEc;_9Z6Z6\1\,\*W%ZW"U'U-U1W6Y;Z@\F^K_P_UaUfUkUrUwU|UUUUUUUUUUUUUUUUUUUUUUUUUU UUUU$U)U0U5U:U@UEUJUOUVU[U`WgWmWrWyW~WWWWWWWUUUUUUUUUUUUUZ_dkpuz          & + 2! 7$ <& C' H) N) P1 P6 P= PD PI PO PV P] Pc Pj Pq Pw P~ P P P P P P P P P P P P P P P P P P P P P P P P P% P( P( W( ]( d( k( q( x( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( %( ,( 3( 9( @( G( M( T( [( a( h( o( u( |( ( ( ( ( / 4 9 ? F M S Z _ d k q v {                     } z v s p n k g d a ] !Z &W -S 2P 7M <K BH GD LA Q> X: ]7 b4 g0 n- s* x& }# !                                                       } v n o o q q q s s s t t v v v{ xv xq xl ye y` {[ {V {Q }L }G }@ ~; ~6 1 , ' "        }xsnid_YTOJE@;6/*%  {vqlg`[VQLGB=83.(# ~yrokhe`[VQLGB=83,'"ytojd_ZUPID?:3.)$ |wrke`[[[\ \"[TOQR R QLGB;41,%   {xsll igdbab_a_bdbdaa]USKKDA7/*##    ")*,/469>CGHJHHHLMOMMJMQROLOTW[^accwrumzlzggeb][VQIG@~?;:630.)'&"~zywzyttrprtprptwwwttmWRJEJCW%R*T/R2U>UEYHWOYUY_Zm_w_}a__dikuwx}       & 0 6 ; @ E J S X Q O L @ = ? B N T ] b o r v     ! & . 0 5 3 5 : @ D I! T* X9 XC ^F lM qR vU g q                  % + 2 9 ? F M S Z a g n u {                         " ) / 6 = C J Q W ^ e k r y             { v q k d _ Z S M F ? 9 4 / ( ( ( ( ( ( |( u( o( h( a( [( T( M( G( @( 9( 3( ,( %( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( x( q( k( d( ]( W( P% P P P P P P P P P P P P P P P P P P P P P P P P P~ Pw Pq Pj Pc P] PV PO PI PD P= P6 P1 P) P) N' H& C$ <! 7 2 + &         zupkd_ZUUUUUUUUUUUUUWWWWWWWW~WyWrWmWgU`U[UVUOUJUEU@U:U5U0U)U$UUUU UUUUUUUUUUUUUUUUUUUUUUUUUU|UwUrUkUfUaP_K_F^@\;Z6Y1W-U'U"UW #%,-/26;@EKPRPTUTRKJMOR R'P'T.U,Y/U3T1O4K6O6P6R8O=K=H9F9H@JBFEEHCL@H;J9H6J2H1M'O#M%Q"TQQR WYVYVRMLRTWW[\^`hhkoorpuz~{{}}y{xvsvtstqle``_][ZVSNQSPL K I KIIFFKKG<5--))($                  zzrpa``ROJG@!B$@0.:%INPV_bddeeillgeinsxxvy}~{vvw{{{yvvroomgb][Y[ Y VQQSOE!G!I$L&I.J.L1O5O;V@V@S=T8N,I'B+B,D.@3B:I:E6D5@.=386;;???;;;6@6B8B6E6I?L@OEQDOBN?L?J=J8L8N8I1I0O0O,L.I.I,J)E,D.?)?&;';&8)5)5&6!=BD!G"N'`3o8DThloy~ #(-7?FSZZadkpuv  %,1699=JMRY\\^^\[TW[\`cmtw~~~~{~wvqommhjhgc`[YTNIIILSQQLG=;5530,&   pmkhc^YRKFFMPOKJKRRRPPRRMHF<97412*'""##"  zuprookhh`^\[WWTRLMRVYVY WRQQ"T%Q#M'O1M2H6J9H;J@HCLEHFEJBH@F9H9K=O=R8P6O6K6O4T1U3Y/U,T.P'R'R OMJKRTUTPRPPTPHA>AA;<@CHPPWW\^adhiprxsnid_ZZD:9#!    {z{vsnida\WPKFA<72/(# %+&!%/2599<>752! ! ! # !      "%**/1297716;ACJJMRRJHEEFHJJKMPRTTWWYZZd\\Z\^ac^^aca_^\ZYTTcruwsuwwx|}}|    !#9:DZZ_dinsxrpihda^\WWPPHC@<;AA>AHPTPPKE@;62/-,%# xuppuz|urruzwsprsrppsu#z%}%%%%%%%%%%%%%%%%(-27799<:9:?INPID'A.A3?6?;:=9@7G9O4T2[/]-b-m+r-{0|244:?DHMNNMMI|HtDqAgIYRVUSWIR@U:]6b1d0d)d&gb_ bdbZNNNNNNPPPPPPPPPPNNNNNSUXZ]_XUZ_gfgifdgklsxkgd}aziukwsuvxx|vsvxvz{{{}xx}zx{z}z}}|x{xzwxwusisgrsrzrnifaa^UJE61211/'6Khr}).6CJEJRWmttwwwtprptrprttyzwyz~"&').036:;~?@GIQV[]begzgzlumwrcca^[WTOLORQMJMMOMLHHHJHGC>964/,*)"    ##*/7ADK7::?>AA>>:9<<FFDHMRRPzNuPnUgUaSZHUMRMISHWDZC]?]:\7a2b7g>k>n:p<u9u9x4z-*}&#    vupkdaZZSF?7-(# {vqlg`[VQLG@;61,&! |xuur s%p+p/n5m7n9n>uAwD|C}DC??500/-(*//0-42/-/0/279<><>??CAFFFA??ADAAFFIDFAC?A>77<::995577>DINNNNNPPPPPPPPPPNNNNNNZbdb_ bgd&d)d0b1]6U:R@WIUSRVIYAgDqHtI|MMNNMHD?:4420|-{+r-m-b/]2[4T9O7G9@:=?;?6A3A.D'IPNI?:9:<99772-(%%%%%%%%%%%%%%%%%}#zuG"I"EDGGJLIIISSVX!Y!Y$]"^$c"]]YYXVSLL O T]bcc b YX Y]^gjqqtw rrwy{oryy|~|~|~    !""!         "&+,)$!&$|x| !&,16;@GLQV[`glqv{~yolhTDo8`3N'G"\ި wtzޕ1ރuޣ6|ރ Kއާު2* ߢ-<8%D&N<ZC7Xߧ߶߲ߌD߭߫~ "*6J;<>COT\b\UT5PgOM@;;9p9246 EcWkz/xiZFRdC[+".3=J TB^er{yqw qoot~hWJAMTf\iZUWcUh &;]q~2>5!Dv=h-DX_e 4>671('/*##x&<#(%*-2449>DD2?I92+*#%2+6/12,45CHPWZZXHZW]s]aaipqszvv"s:vEDLrv}{}:AKHa3;.%ayrr=KUe2Of| .T{2ASnM Nx$15BY057-$H$_)u)$t[cwzkaez $(-NedQNb~{HH_dZ_fnn} EJ]b`~ (#2?P}??XW\ks}pbWWbZ]WDP%%16=@@=;808Z6b.p.*,1//6 ;8*;;>B@*CHJRTWYv[aY7\!Y[kt~zy|z utt-|qzrtwwyuz|=|Q^|z|yokkpkf`gY\ceehhefjk#r(zy<wJjTfdfsjrk}khhfjmfc1cLa][mkkmru%  K_{}{zfwfptpohe^\\'`9fJfahhmptr|||of[WRHGHH<GXHgGyC~@{>~, $'O/r8r=xCdMYT^\\^_`|`YTTW\mwzrh`)[.VIOS@J>J;Q;g@|HEGG@*'%%* .&.+*0*D3q69916; 94>3BEGMGTC^ChHjLuMLQRVTY`5a[^`cjow1z<r#)2ADDXelt{||sa^OHF>MOC9 (UYU\dn  " #1>@EJMORTRTY^\YZ^ikrsx|     &,;;NTNNTYT Y X `bTIT'Y+V.b,j+l){')+03~:;:=;??;35:=ISSNNSTVY^]YX[`bbeghhgcb cg hhjml o oqvy{~~#<INNSZagabWRU_bu{k %$$33.3/;*.6;BEJ^t   !!#%(/4#725G9L:7-(#%&%%&0552/-/-*y(&~#l!e!SND50 .$   ~~zkfRC1'%,) ~wqlhgecec`]TO@86,++'+.0531 8 =@ @;3"1%3*8.@*B,B1?;?T=Y3M,G);!6)!$,)! $&&""!zpp s]US:"2'0$(" (*#     |vhmb^bvvrecj|^uluys{fTcS_Ycgcy_~cniida\Z\T~PlKoKHCA>;|7211,*-#""%%'-4441469> ACE>AXAk>k;b@P9(6-, (#>NK<?7?*  + FHH924?R_b_bk{xsqvvtoljib`]][LKKKNSUS ND ?=:8 01..-+)(*1,$##   )>C>,*;@@ELMME)9GO831.GRL@,3LW\a`^QV~OyRc~u~|te`aweokkmam^e[\YWRYE`Hf@a@\6`"jmppmkfccf`^\YWYYVOGGMOJG>CL63488O8T4T1L,H*;'C3%$ $"$  $);LMG)/.}_PHM]]N5-#HM\U/#RZX&pgk{gjfb_o\cMHImCT>,< 99:?CHxMyNtMdKQI8MMKMNU|W\WZasf db]gU Ap(!5 t T~tYj^XOB:J658=f=Y:F3@Z@'CHYms &+Auf9c=5 dwkd8YO9w@ߵ ?d7p ߈߽7 $'dw*7k0 ;aV @J-6 9| ^C,3,6=NV[[^bbcmy ~C~hH;1>T2 +0 9906-N<>?CCjAQHmKeMhNMIMSW\(aupu }*ct}|}0sQNNiy - 5 g"| `)Y*O)D 5kdhs)/131..)r*i.f8|BR\\ahjh;eQeYmrotu||~]Ye9HlaC24!:(_(z(}u x58=?DFIN.LMIOFHD;A9=V8j0~)##$DAPg]`bb_VPL5!! ((#\(x#(&+-3&$&.56?X`ho$|((!  #!)-.F5d8DKU V3VW_di!lIlsx#7}AxPyc^_d~oe3`gb|`_`b~Cs"; +="H~vqs$ % C /  ) ]    # ( / 9* >E @U >r ; (   &B|~~ !+99DHFNfg{xsx{}"*-6; <>*JfJzKU^acfhkmkims5rIrbxi|t} (RYZY\p|0@  +;DL]y$&57:M?=?BGGDDDJBeDu@=861!$ 3U`dA7+$&-.FD::KZ]_bt *29>>CKW}ETbh!U.@L^|}} -25|:k5a7\:PPCL7A1P*N#D&?FF<)78.{]ZILFsGFD82+(5K2[@g>nCy 7KYcmx0;S|/?Fkp lqpx"%(p,i-i-p1i7n<@CFCHFCCHO_chkp z\|k|}}   + = I P Z e !;!\!!!!!!!","6"G"L"L"Q"l"5w"3"0"+"$"" """"""""# ###D#I#W#d##########$3$=$E$T$[$h$$$$$$$$$$$$$$ % %% 0% 5%3%#%"#%$&%!8%"D%N%b% j%n%i%l%%%%%%&&&&1&9&<&R& h& w& &&&&&&&&B&L&N&L&J&L&L&J&?&:&=&B&J&Q&Q&S&X'['X)'V,'I.'6+'00')0'):'&='+N'0w'.~'+r')c'&`'"e'$j'"q'!v')'.'0'0'3'5'6v'8y':'=';';'?(E(G%(G+(@M(BR(@](=g(:z(;(I(L(L(I(E(?(=(:(8(6(.(.(,)&')$4)C)\)y)) ) ) ))**(*5*B*P*Z*]*l*********************++ + ++#+(+-+ 4+<+/+/+1P+;+D+E+N,T5,TL,SV,Ge,Do,6,5,',$,",!,,, , , , ,, , , ,-!-H-b-k- s- }--------...8.=.G.W.p.....//)/0/:/F/d/}/////00 000#0*010F0O0K0O0^0i0|000000000000000000011101Q1^1o1y1 1 111111111112*2:2>2A2N2k2}22222222222 22!2!2$2"3$3+3+3+63&T3$3)3+3'3'3+3.41$4104054.I4+Q4&V4"i4$n4+v43414.4.464541415. 5'5' 5$#565;5E5R5d5k55555555 5 6 66,656J6V6m666666666677#777<7?7H7Z7s7777777778$8,8,848H8^8m8w8|8y8z8888888888888888 99$9-9B9K9`9wj9p9n9r9p9f9Y9U9Y9U9T9K9H9E9F :H:K":M9:PF:OZ:Jp:H:C:A:A:J:M;M ;J;C ;<;-:%;1;?;B;Q;"o;;;;;";<"&<#*<*+</(<1%<4<7<<<< <>#<@!<E <J<O <P<F7<>A<;N<>X<>a<9p<2v<2Z</_<*k<%f<#X<"W<p< <<v<<<<<<<<<<<<<<< < << $=J=Q=V=[=h=e= j=u========== >>>>>>)>->?>Q>j>>>>>>>>>>>>>"?(?,?4?4?9?>?!>>$>+>+>&q>"q>>> >>>>>>>>>l>g>P>5>0><>>>>>>>>>F>->B>Q>n>>>>>>>>>>>>j>x>>>>>>|>|>x>u>u>r>r>s>r>n>m>i>i>f>f>a>W>T>R>P>K>H>F>F>C>E#?HR?Ec?<\?6?-?(?'>%> >#? 9?@?n?u?m? ???ߩ??????? @@????!@]@w@ߟ@ߩ@ߔ@ߺ@@ A@A-AZAgAZA4A+A9AXAAAAAfAqAlA߂AߏAߣA߼AAAAA{AxAsBs'Bo;BnfBi߄Bg߶BbBeBdB]CPNCK߰CG߿CD߹C?CB2DBPD?aD:pD7fD5|D5ߥD0D)'E)YE(߈E#ߤE$E#E-F0FF5F ߵιH_gKߠٻH8'+{ޞ˾ZG}΁QVn\pcihlmxrorpmkmpppmjc\[W[^` \1W6O8LHGLBC=$93*388G6`1e1j3k8m9y@@>8/.)$   pcG>"'')GOOHBCG}(Ё (#2$3%='?,:.-1)338 = BBq==9;8;31,3@1O4p43,$K-~U($05=??M=/:".)"׿ʿտٿ)yKq S$FAzAAAAAAA.B1B'BBBAAAAAbAIAKAAA2A AA@A AA@@@ A0A*AAA/AA#A-A/A5AFA~ځl`?2pkjrm=) )@;'I% Mav$*4BJ^corjaCBE;@VVey+?Vgv{xgeSA<BQyjVL~၎yrthShDk:y~$1@IV`o{w~~wc\TG;;>@Rq\UaRfHjHtUonrutuz||slz~ぱ:KbnqdIDIeiPLF5+   h\Y[uecYHB;qu!  (-.+# *@G R [YRB#$)035'5G0a-m$y##()+..07o2#    oX {sW]]KWf{䁢*2^zx|xxacrukdWOHJH9恿 !&&/0IZZUIMFMW\U\]MX\ikuu{a\F?>54%聊 />BLQ\r{w}rorkhmok[Q@1 0AIZly{~{so_LKND:55=3.-!+..( a\^R%^$h$u"""}unia9>>CDHNP WX1W6U;WAXJWTUURUPYRcNMHC}?m?cCUCEF<D4F-C(C">99]XXPGADPIQPG=.-5FD<? F NU_[_n qjolt{v{tb]ぷm$5&fZkkx>r]ID@3k, N:DQ+5DJ(Tu]`b`]|p_Y|YO_dn|xd}<uw@0,BNXj-3L큊DqhSB?=L;3,))?+n+' jz@umi]dajcdir+|:GTh{9T (((( ( (((((((((() )))) ) ))((((((((((x(p(m(r(p(i(h(h(f(h)d(f(a(\(^(\(Y(Z)_)i)m")s'),).)1)9)h)|)|)y)~)~)z)t)m)V)`)f)p)))))))))))))z)y)y)t)~))))))))))))))))))))))))))))))))))))))))))))))))))!)")+),)+)')))$)!)))))))&)))!)")')))+).)+)')')"))))))))))))))))))))))*!*'*.*0&*.0*=7*D:*GG*EL*DN*GP*GS*OV*Q`*Vb*[g*^j*^s*]x*^y*h}*l*m*j*l*o****************************************************************************************************** ****!*/*2*/*+*-*0*4*2*5*5*7*7*:*:*D*D*D*A*?*>*>*A*C*C*F*H*H*K*R*U*R*K*I*K*M*N*S*X*]*a*b*d*f*i*n*k*_*a*f*l*l*p*z******************************************~*~**~*}*}*x* v*s* o* o* s*t*s*o*l* `*,Z*4X*3U*4V*9P*>L*GK*JK*JP*LS*OQ*MP*OK*OG*MF*LI*HG*BK*BI*@D*CG*HG*GD*HB*L=*O?*VD*W7*Y5*[5*W:*c3*`0*c+*a)*^)*\&*^*f*e*t*r*t*t *w*w*w *z*z*)))y *z *))))))))))))))))))))))))))))))))) )))))))))))#y)!r)$t))k)0e)7c)7`)AW)KT)SR)SO)LQ)KO)NO)QM)UO)ZL)ZJ)]G)]L)bC)l@)tE)tG)tJ)vM)O)M)Q)V)T)V)Q)V)V)V)R)R)V)V)V)W)[)\)^)a)[)`)a)a)c)c)k)p)r)t)r)z)|)|)))))))))))))))))))))))) ))))))))))))) ) )#)()*)()-)/)4)4)6)4)7)6)6)7)6)4)1)1)1)-)-)')*)-)*)*)-)1)2)2)4)1)/)2)6)4)7)4)7)4)7)4)7)7)4)/)-)-)1)2)4)4)6);)<)>)A)F)F)K)O)P)R)U)T)P)R)R*U*W*U*P*R*U *W *Z *Z*\*Z*^*^*a*a*d*d*f*f*h*d*h*h*d*h!*h#*i$*h(*d)*c(*a(*a+*c+*d.*_-*c0*d8*f5*d2*h2*h3*k.*4(7(9(9(7(9(7(2(2(4(7(:(>(A(D(C(>(9(9(:(<(<(>(>(A(>(<(:(:(<(:(9(:(?(?(A(A(~C({F(|I(~I({K(wM({I(wD(wC(vF(oF(oI(jK(lI(jH(hD(cD(bA(bD([H(TH(TF(IH(EF(BI(?I(?R(@R(EX(B](?_(@f(If(Tk(Ti(Yl([k(Yl([n(]n([s(Tx(S(O(J(?(;(8(5(5(1(0u(&n($n($q(u(z(z({((((((($(.()()("((!((!(!((((((((o'x'''''''''''''''|'y'v'e'`'^'L'J'E'?'@':'6':'6'5'0'+'''"''''$' &' +' .'0'0'.','+'.'0'3'6'8';':';'@'I'J'D';' 6',.'>+'K&'R!'T'R'O"'J!'H"'F!'H'K'U'Y'^ 'w '' '''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & & & &&&&&&&)&+&,&.&8&?&@&?&B&G&O&S&X&^&`&^&^&b&g&l&t&&&&&&&&&&' '''''' '' ' ' '''''#'*'/ '2 '7'9'9'9'>'D)'H+'D1'HI'IJ'MJ'PL'KJ'HQ'Cl'Cq'Ft'Aq'9r'5m'2l'(o'h'l'm'l'j' h' g'j'l'j'g'c'c'g'e'g'g'l'm'l'q'r'|''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((( (((((((((%(&(%(2(4('t"'l)'`.'[1'U3'F6':5'76'71'-3'(6'5';' :';'8'5'8':';'='@'D'D'B'B'G'I'I'I'N'N'O'J'L'S'O'L'J'L'Q'N'J'I'J'L'N'L'N'T'Y']']'^'c'g']'X'V'V']'e'|b'zb'yg'rm'kv'hy'['O'M'G'9'4','"' '''' ''''''''''''''(((((+(5(>(P(a(d(i(p(s(s(v({((((((((((((((((((((((((((((((((((((((((((((( (( ( ( {( z(p(%g(1g(>i(Tg(^l(^i(ak(ka(w](|_(|b(b(d(g(d(d(f(i(i(k(n(i(k(g(i(X( R(H(#A()9(.-(<(D(L (`(j'o'n'l'l'o' & &&&&&&&&&&&&&}&|&&&&&|&z&|&&}&z&|&z&|&z&w&w&x&}&x&u&r&p&n&k&m&k&i&h&k&n&m&i&h&i&n&k&m&h&|f&zf&uc&ma&i^&c_&Y^&Ua&Ta&W^&Z\&Y\&>c&6d&4h&2i&2k&/m&-p&1p&/r&/s&2u&6w&<u&@r&Aw&@x&Az&A}&C}&E&H&F&F&C&<&<&>&<&6&9&6&-&-&(&"&%& &"&%&"&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''' ' ' ' ''''''''C$9 $/ $$$$$"$%$1$8$9$9$9$9$8$ 8$/$ 8$;$=$=$=$@$@$C$C$B$E$C$G$H$J$M$G$@$=$G$J$L$T$V$\$\$W$W$Y$[$\$^$\$^$W$W$R$R$T$W$`$`$\$\$[$[$Q$R$Y$Y$`$c$e$a$^$^$a$j$k$m$h$a$e$f$m$r$u$w$y$z$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}$y$s$n$n$i$e$]$`$b$i$n$s$x$$$}${${$$$$$$$${$x$t$t$q$o$l$e$b$]$Z$_$]$Z$V$Q$S$Q$P$Q$P$Q$I$=$=$3$-$+$&$$$&$!$!$$$$ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$|$z$w$t$u$u$p$e$c$[$W$C$=$>$>$E$G$L$R$^$^$[$^$a$c$a$`$^$Y$W$[$c$u$r$t%p$f%c%c$Y$T$L$C$=$;$9$;$B%G%J%M%O%M%J%G%@%;$8$4$6$3$1$1$1%;%@ %C%M %R%T%V%Y%T%R%M%B%C%B%@%@%; %4 %1 %/ %1%3%/%.%, %* %'%*%*%,%;#%E#%O)%M+%L3%L.%H)%G(%C&%>&%C)%6(%.(%*+%*.%*2%42%93%@7%=8%43%33%38%>=%E?%J<%MA%J=%EA%=A%9?%6<%3<%/8%$8%$B%%G%,P%;_%>`%E`%Le%Ve%Og%Mj%Wt%Tt%Vx%Y{%Vy%V}%`%a%f%c%`%k%m%o%z%%%%%%%%%%%%%|%w%r%r%w%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&p &t&t&u&t#&u%&y*&y-&w(&p#&c"&[%&L"&G&C&B&@ &;#&8*&4,&1*&1-&)-&',&%-&/&1&/&2&/&/&-&/&-&2&6&4&6&4&4&2&4&6&4&9&<&>&>&A&C&E&E&H&F&K&F&C&@&<&>&@&@&C&E&H&F&H&O&P&R&R&R&}P&{O&zO&pP&nR&iR&bT&bP&aP&\R&]T&ZR&XT&XY&WY&WW&SW&RU&PW&NU&MW&IU&KW&IY&IZ&MY&RY&W\&_Y&k\&qZ&u\&zZ&Z&x_&p_&ka&Z_&Zf&Xd&Uf&Ri&Ni&Nm&Km&Kn&Cs&Ar&<u&:u&<w&9u&0w&2z&0z&-z&+}&%& &&&& &&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&y&y&r&r&o&m&g&b&]&Y&Y&T&V&T&Q&N&L&J&D&B&D&@&?&=&;&8&5&1&3|&.}&.|&1z&0u&&w&z&z& }&z&|&x&|&z&|&|&}&&&& &"""""""""""""|"u"s"w"x"""""""""""}"|"|"""""""""""""""""""""""""""##"#""""|"z"z#|#"## # ##### ################!#&#&# ### # ###&#(#-#0#4#0#/#*#+#*#+#/#2#4#2#0#2#7#<#A#A#?#D#H#M#S#U#Z#a#a#d#f#f#b#a#Z#X#U#W#U#R#N#P#U#_#d#k#k#i#f#_#]#N#S# U# \# ]# ]# \# Z# _# _# ]# W#& K#" K#+ :#) :#" :#' 7#1 5#6 2#8 -#6 (#5 %#6 ##B #I #I #L #J "Q "T "T "X "[ "[ "Q "N #N #O #V #Y #] #` #^ #] #[ #V #L #E #@ #: 2#1 9#+ D#$ \#' _#+ a#1 a#6 \#5 W#8 Z#6 a#. b#0 g#, b#" b# d# g# i# b# a#f#l#q#u#x#x#u#{########################################x#x#u#w#s#p#m#h#a#R#E#6$/$$$ $($- $; $@$C$I D @ ? @ ? = ? ; : 8 6 6 8 : ; ; @ E I O O Q S T S N N G D @ = ; ; : ; : 0 , . . 3 0 , ) ' ' & $ $ & & & !                 $-.8:??DUeedeeinoos{~     }xxssi[ZSQPLGD=:7522.++)(&)$   }$u-p5f?cFaDTNMUFZ;g,y*%#(-2/67 ;AA H,M(O*T*c9n<s>x;z6}621,'""   (*((%'*-/11//,%#*(-*1266;;>A>7762/;;;>AAFJFFJMOMORZ^dkrzz||xrnkhd_ZURUW^dhihd_YWzUwUx^wdxkwnxux}}|uzsrmmkhd_^Z_achckakaf^aZYYYYaUZM^O_MaHiA^>^<_>cCcEhCi@f;f<i@i@nAp>s;s;u7u7m4n4r1s2x1z/x-s*w(u%u#s'z#xz"||z|zxxsrnkikhffccaddiihifdhfikiimpsxikpsx|zupnmnrs}n{n}rsrqsoplpgmgpgrbpbrgsnxjxn|qs}x}}tslnligeg}d}b}dz`z]|_][ZXQSVZ}VzXxXuKuGx?|?8757<=}<z7x2z.|+|))&$#$#!#$}|    ~|~||ywuttwwtjhecVVRLQROHGBB@>4*%$$"         }zvq!g&X'W)Z,Z.X,U.U1S.U,R+S+H,C.C0?.>0>.>,C,:,70*1565:=DE@?:==ISVYY^`bchggjlmghlotrtjllor{yqqmTE8853 }||z}|zpH2+/0,2'I(M,M-N2b6d9iAvEHP^aaikmnmmwz    %)'$ "%**13:/]1c/o/q)o'j"jr)q.w.y*w,w*'*,,13@;;>CEJQ[[\`!^(a*a*`-`-a5cAa:a>`?[C[DWDQFLRERGUGUHXJWLRLRMUO]OWRURRVH\A^?`A`XW]WaYfYzOMMHCHORRTORROJJHEGHHM TT"\)e1t4w3y4|4464/%$/8B@BC91*1==ER\`eeefeacceeca^ef h j m m y& ~$ |& ~( - - + - - - + $ ! ! # ( 8 = U ] ` b j n }                    & - ? : : < < = I L U!`!j!v!v!s!v!{!y!x!x!{"!'!6!;!>!E!U!n!T!P!T!T!U!Z!Z!\!\!Z!Z!W!R!M!K!M!J!H!K!F!H!H!E!A!@!>!>!A!C!A!H!H!M!T!W!c!m!n!m!k!m!h!h!^!^!a!a!i!r!s!r!}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!!!!!!! !/!2!C!H!O!Z!d"k"m!"p)"u;"u?"zL"T"V"^"c"e"h"q"q"o"b"^"["X"V"Y"]"`"c"h"h"q"t"v"o"o"q"o"t"|t"xr"wr"rt"pt"rv"ky"m~"p|"w~"y"{"~"p"r"w"z"|"x"z"s"n"r"w"}""""""""""""w"p"n"k"h"i"k"m"k"m"r"r"z"z""""""""""""""""""""""""""""z"r"m"k"m"n"r"u"w"x"u"s"r"s"x""z"u"s"p"s"p"r"w""""""""""""    " "    ! $ ) ) + + 1 B ? @ B I Q V X X V T T ^ ^ Y [ b h g h o                                   & + 0 2 7 > ? < C H C D K k q u x x }                                                        ' ' ) . 3 4 4 8 ; > C E E @ ; ; B E > @ C B E E H H Q J| Hy Jv Jm Mh Mg Rg [e ^g ac ^c [^ Y] [] ^X ^Y aV `V \T \S cT aT `V aS eT fQ fQ jT kX kY mT mL kJ tL wO tN |N T X V T Q S S O L L I O Y X T N L I D B E D B @ D G O T V S O G G I                  ' ' &   " ' + . 1 5 5 8 ; ? ? : : + $   $ $ ) , 1 5 6 : : ; ; B G J N T V ]                  | t p m m h a ` a a ^ ^ [ [ V Q O T Q M C @ 9 "         & & 4 < D R f v {                    } x v q n n q s n %n /p 4n 9d @b Cb Oa R\ TZ WZ \Z hb wf zi n p v v u s u z                & ) ( - 2 5 8 3 7 7 : < A A ? =} Fk La NU KP LK QC Q9 Z4 U/ U( X& [ _ d l o q q x                             9 > E J _ f i r x |                                               ' , 1 / 1 3 4 3 9 ; = C H L W o w w y | u u w | z z | ~                                                     ! & ( * * + ( & ( / 0 5 < : 5 2 + 9 7 9 < F M R U W a i k q s q l l g i p } } { g b ] [ ] [ X V V X S O O N I L N J I G E D B @ = : ; ? ; 8 5 0 5 6 : ? @ @ B B ? = 6 3 + + ) + !                                             " " '              % * ( &      ! # !  # # & & ! # % & ( %# # % * + 2 7 5 0 - % %                                                          ! ! # # % & ( * * - - 0 0 2 0 2 2 7 4 7 9 < < 9 : 9 7 5 7 9 : > > < > A A D H H K K I I K K M K M N H H C C D C > A ? > > < ? < > C C > 2 &  !                                   e e c ^ W W Y Y [ W W T W R O Q O L H G G G B G H Q R Q L M H J H H| By >{ 9v 3t *m $j g g e h j l j j h j m q m l m l q m o m o m t t t o m h }e {c u` q` l] d] Z[ X` R^ P^ I[ I^ F` >e :l 9{ :| 7{ 5v 4{ /w /v +{ * * & &{ &y %y !~   | ~                   "=BGJ``ejjmmoopyz  )05B!S2X:]Gd]gxeiiot{~   "%(-47PY_/d/r9>FFJMPT\a\ZWYTTK@@A4/*#      $ & . 1 0 3 1 1 5 5 8 ; = = = = : : = @ D D G J L O vY U` Lm :w 3 0 #&(+.7?DB=AGLX[[elvyy}&57:<<?<>"<'>,?7?<DMIUPpUknquz}zxuvxxzxzv{{$$&,166IX^{ 00//5 ? C CFPXfi'f/g3b9b>_HdJfQf[nh}pruw~hJ4/'%"  xkd\PNH22/(  y u r p m k [ W T J H B 4 %       } s f $] +H 5? ;7 =0 E0 N/ Q* S! Q L S S Y [ g j m t t w |                         { { y y | | ~ y { q q t v r r q h h g c ` [ T T N J E : 1 0 1 3 5 1 . & &       # % % & ( & (&&*/2459740-995>:DCDFHKFDC??>A?><>?><799?|C}DF}HxDrFnDhHiKhKfMdKcM^MYKTDJKFMCK>N;S7U2U,Z,_(a*]'_"d%f"i i fgkknlps x ux ~ x sg__[SNIDA"B$A)=):,7/0/&4$3#86998=;@@ E EHGHORRVY\^afjmruwyytojf y { g V x L p = ^  } | w w r n h h h d _ \ W R K H F > > ; 4 / , * ' %                ) , 0 3 5=@EEJL"Q&V$]$^$glmh ^ [ X Y X T V T X V Y X X V Q Q V S L J N L J J E I X X Y ] ` b ` ^ ] Qr Ok Ic ?Y =U 8P 0P .H ,F ,H &E &C 'C ,A 0< +6 )7 '4 "* ( "% "                 ! & ) , 3 ; D G Gy Jq Lj Oe Q_ XQ ]B ^B `? e! e h e ^ Y T N L I D = ; ; 8 1 . , , + ) $ ' + + . , ) + ) ' + ) ) $ & " !     !   ! ! ! " " $ $ ' '~ )~ +| +y 'w 0k 1e 3c 5a 6^ :a =` @^ @a Ea I\ GY EY GV GY JV NW N\ Q\ O^ N\ O` S\ TY XV VR [M VH VJ TG OE QJ SH QJ NG LG JC NB OE QB Q> S@ V8 T3 X/ V. Y, ]. b. `, b* c' b% b$ ^$ ` b" b c e h g g e c c ^ b ^ ` b b e c ` [ [ X Y X T T L J J I I I L L O Q O S T S S T V X X V X [ ] [ ` ` [ ] [ [ [ Y [ Y [ Y [ [ X X V Q T Q S T T V V Y [ ] ` ^ ^ b b ` ` ^ ` b b c e g j j l l m m m j l m o q r t r t v v w w v w w r t r t q t r w v v t v v t q o q o q v w | ~          |                                                          z u v u q g d b a _ ] \ X S R R N P N N K H D ? ? D D F D D F H H M N N P U X U Z \ S P N P M K M R X ] a a g g d d b f i l n k n q u x             z {  { } { x x s u p s p !q #{ !{ #} ! # # * + ( * - / - / 2 4 5 4 5 4} 5} 7x :x >z ?x C Mz Mu Pq Up Wf Zg \i Xg Xk Zk \n ]n dx gx g k l s u u s{ uv sk pU lM lC kA k? i5 l/ u2 {7 9 5 7 7 5 7 < A D I M P R \ a d l p n u                                       $ 3 4 > G M [ \ c \ T Q J E > @ M R ^ c o z             ~ z w u m p p k c ^ V V Y [ ^ [ e j r               ) 3 = A F D F "D $D $K 'N *Z /g 1i 6t ; = @ L L O M Q R V V W W [ [ \ a f j f2 fR ah ew ex c c f j r p k j j k j j ` Y T T Q L H E C G M HCM HJH@963''$1 3;@E'N)N)Q'g vwwy      */4>A K M Xfnv}   )$)*./1/68 .39;@CuEhQWRLMEECB68hiimsu&x*u&rihiik#m-n0n5r5u7u?xDuWpXnUkUiWdWi]hbdZ\W^M\F_D\?W5W/P&KOKEC@ACA ><979<A<<66;(   |{{~c[SV]beb`^][]^qqc][VJJNVeyxsqsoosyvsolgigd`ZVVSQK#A/?93F(Z z OwUROO^dcfdfdfdc^fh                                                             % * / / 6# 7. 4= 6F @N CI HI CK AP EQ FV JX JZ EU ;P 9L 7L 4U 7V 9[ 6n 7s 9v Ax Hs Kt M{ T} Uv \y Zt \q _o ds hn mn nl re ue ug rg no iq fv ^s \~ Wy U{ U T M~ Jy Ey 7 6 1 4 / 1 7 4 2 - * ( ' , ,s /i /V 2P /Q '_ #` (b *d (j %y % "   ~ o i l v t { }                               % # % # % " ' 1 1 ( ( "                              "   ~ v o n l j j d ` ` [# V, VA [T `Z b_ gc gi on xu {} }        ~ ~               &+5=8;B@BLOOLED@83..                  ' * % #            % ( 2 6 9;9;$7'4'6+4+6,@6CDCJENEYA`<`7]9[7]EgHgPy          ~e y[ tT {R {W ~` c ^ ^ [ Y W ` W R G G H G O ~L }O {G x@ t> tB s> q> qE tL xJ tT oO tR tQ sO sL l> o@ o= l= j> i9 g= _; d@ iE jJ nM `C Z; Q4 S4 Q1 P/ G/ A3 ?/ .3 * * ) , '                                                 t o h f \ \ V O M G E > = 9 . '/ '4 C T Y ^ ^ W [ Y W R R M B ; , , * * ) % % ) ) ' "                  l l f f b X W R K M > : 9 9 A C > ? > H S d l p v { x u l b \ U H 4 / - + - + * / - * ( (                          ~  j ^ Q E B @ I L X V O N N S ] ` ` ` c g r r w |   ~ | v v q e Y Q J E B B I V ^ ^ ` ^ b b ^ ` ] ^ Y X Y V Q N I = 1 $   ! $ . ? B G D 8 ) ! "     vqn k \ N K I I H F D F K I F I M K N R U Z \_a\ZXWNKMNNMHFA?<?? <775450/002400--+*-&&#%##            "   ! + 1 3 6 8 5 8 8 ; @ B I L Y g g e b ^ c b b e b g e h h h g g c [ [ X V O N L J J I I G @ ; = : : 5 3 8 5 + $ ' &             !  " & " ! & $ ) 0 0 &                            ||{|vrrog e b ` ^ ] [ Y Y YTT SOJ I E B ? ; ; D DJOQSTQSX```^]YXTTQSQNLNLE=;86=@@DGEJLLOQSVVXbhjhlmtvvrgb`X`^bzhxo|owqxoutu{nmnwzuma\UTTRTRJ@>AEHPRTPYY\\^cipw|}           |umh_cdddc_^YY URWURROOKHFHEFCA<@>>>A@><<>@>><> > 7 6722,('(%%"% #%&(-/ 4754"5%9'5(4'4*7,5/72545726/<4>2C/E/F2E4A9A:EA<?<>7<;<2>4?2?/A-?-C/C*?'?*A#?#?%C'C"D%H"DD >>9"7#:77:>CH NRXXX\bdgilnppnpppqquuz}}""%*,,,/169;>=>B@@CEJOQV[Y^`c{fyf{mypsrtuqulyl~b`VUPLFB?ANLF<<72.   uhok`RMLQQLJ;;>>9;89 8 = 6 ;9;94*" ) 37:=?BGKLLIILLNILLQKKIKLL PUdjx}{}{{zzvxuxqplp}p}nniidgiddbXXSSPR]PNPNPNPIKFFNPPM_]Z\]da__]SKIHK<:?<-*&#!  # xql_XSF.-2 C HMRSilz~yrpjhc``^a` `/cB`O\RRRHCC9B686/>uz    !3<<8320.-)#    ~|upruu}wzzqnlgd\WPFA><72424542(|uwyypaQLG''. 88//1 > J M#R+V4V5V7O>JIG_Cp9s3,*)*}}vp nd\PMNM 7"2%"* .,31BHM[acfkku~rtqhg`^[VTV]^[XTLJE61563+" &253:875335:==AFGGIINSQNPUVZ|[mPRLKIMFJBJ=;:7570/+1&'!  }}sjigji`dd[ZQQLQNKGAFBA:820.)&#    ~|ryrj`TG;896699434316611,.441146;B@CELOJB@=~;w;pCjCeG\BY9T4M)LC1${ v q ibXHNMPZWMC>FI>:% }snbNMH5/- *((%!    ymjgc[Jr@oBm=j8e6Y+Y&Y"`cb bYVVXV[][V[Y[Yu[hYdXYXFN>I4B/@%DB? :3.+!!"",05=EGE@DDDINOY}[}`gjjjmljb`bmywlNLSKGK<7:#rvttry{{~||ytw|      |ueh J#L(J5QDQSY\YaRb[gcdefhiesou|%%,89;GJLHJLOTW`e\etutuyy~|yyuyzwwtrormojheca`c`ccffjkmrhfjuz~  &))AA??BBI`glvyy~    ';>@EJMPYhmnssw&)+;B@LO`j&vKbgsqssx}tos ~~yo m"j"]%]%X(Q,N*N(L4J4G7E>@>;E8K+R+T.U0W3\5_:f3i!m'w'z6w=x?wBw@uBrLrSsLxD|6|'x&sxxw xzx z }|      urrmphcada_^^^a^WKKMME;71'*9KRTTPKE><997922667;9>RW^YYWTPUPJHHCER4#"#"#%"*644;7;>FFORRY\Z^fikk ruxzz}           !"$&)+).3;:?;:=858:??GGEGO]bjrytjh cc`bec&e&j'g&c$b'`,b.^1`1c3`:^:e;^:^:]@YDVEXGVETJOJJQJVGYD^IcGeEh=m?jDlGhJgXgYe`ghjmjbb^^~[~LGGEGILLLIE@?@BEINOQ*T2Q#STSSXhlo#{?{Nak{ 6RQapu   |wpja!W(e((%#! !&*(&**-*+/2~/t0p4p5t7:>A??DHNNPg}!.Vqxtck_cfad\rVuTrTzJEE@w@_=_;f;^9\4_3d6i4z83|1u*r$w''$ xsxz      zp ic \ ZPPYRRPWFC@977@>74/*''11/,,%#rcwd~_dYWYROMPR\Yadac^ZK>@;7;9>@4(2/42>H>7--/,*-,/99@<2297 2 -,-#2$747>>AJTWZ\ckikfddk#r$z&|(u.|.0.(!$$!#+-057:BDB?<?BGGIIINIIGGIBIPNGFB|FwBuDpAr=k=d8^5^.P+R&P&T$T#K#P!T#ZZWTP$A+>-;+9(;&9+729=ENZLkNsSQS[q}~'~xsoiZQB BBLLIKIBA2& $&&$$!  5; GBB0.,'+&!   |zppokmmprtutpojB?63"8"@,V;S=X>Y=Q>E658,=&C BB98=@CGHEHLO[[^^ehecehjokkhkui f fp_b"d'Z)\%S$D F"A'>':)<)4*7,2/0/*3&1#3%4 9=@C@ =;>==@=B=>;9643116@=>>@BBCBB E EEH61*)'"$*''""{|ymjee`^QB       x"l)f)a'_"fbdklinpv}}zzvuunq n g fn x {  G@>;q;`>PBKCDEAOAW<W:W7^8a0f3^NTZW[^Nk)kea[TOwJmJpGoGkHk=\>`;a8Y8W;[4M6T4V3V3Q3G4M3E11,'< 6 4 9 9 <z Ci AZ CS FA F2 J- K& F% K F E F K O M F E E O E A @ A < A A > @ > C E @ < 9 9 > ; ; 9 7 ; 7 ; ; 7 6~ 4y 4q 1v /v 4h 2c /b *j 'h (c 'V (O 'D #G #E %= "5 "+ + 0 0 . ' ' $ ) 3 5 : 5 : ; 6 ' & , 1 + ' 8 G J T J J L J @ 8 1 0 3 . 0 . 3 5 ; @ ? D E O Q T ] l o y        | ~   y e [ Pv Kc F^ AJ A@ B6 G. I N U [ i nv~}|`^X^K^BY<O39$92;<;7 964 41227;9;<CMMFMOPOOFwMr<r;r2r'uu y#*2299><AA<>9-"wwywwoe`^[OG              * 3 9 9 1 4 / * ' , . 1 3 8 4 % "  * , > B C Q V e ~   } x r n m k d c c i ph n^ mY iW iR fW _R ^H ZC \> Z9 Z6 ^3 _* c% a" ^ R O P W \ Y R H C < q r w y w                            } } { z z v s p l _ _ _ b b a Z Z S R R S S X X Z \ W U S R N P P M M H D ? 4 4| 0{ 0v -v +j (h &` !^ X [ T Q J D D = : 5 : : . + & " " ! & "     zwuskffkfhmmxpfd__c^YMKHEA>AE|A{<t;v>t@tErJoAlCj@e@eC`AbH`FYJ]J`O]MYP[UOTSWOWLZJZIUBTDP6K6P3P1T1Z.^,\$dcnihi| f afhmn^hmaikkfhdimffaac_cadZY\\R^ZWY_TWTYY^Zc^_WYc^^afnhnmnuw}  |z}| ws u s p m h k i k i r r h d a\^ _ c i p) w. w1 s3 r, k' m6 k: m= mJ kL pT p[ s` p` rh sj rr uq sy u| w| w w p r p u n n w w z x | }  } z } }      } }                                          # ( ( - - 0 4 ( -  % 7 : C ? A I K N N R S X U W a a X Z a b i n s s x z                                     wl^ X ^V``cc`b^^bbeehechee`bglwoorvvyyrtyt|~xvvtsjjgigoqolljeed`][[ZZVVQPLKF<853+($#!!!             %2:HNUilq  ),..*1;@E JRVV![#f+c-j-m-p0o.k0h7m<k?oBkFkFoImItKuIuIzKwLyPwPtUo[o[r`obpdyeueyjwjlnnqqss{}t}w~tutw~yzyzymjoppyzztrtw|~~~jrytkha\R[Y      !!($&23.0- ."(#( 2'$'#((,$-(-+,)*+*<,I/G1?1F78734:45-7-3/31+1#,-,-("''%#%%'(("',(%%',,/119<;;4222;9|;m7R9H>B;R<W<V>W>[;\9`<a<c@f>j>p@p@mAuCwHrJwF~A@FFCAFHCC;;>;<@CJMJEAC@<><99<AFMRUUTRMEOPUWW\ZWUTOMJMRMJFEA>61-/-14 2 479796642(4)6$7$9!9&;#;0A7FKJLKIJNKQMQMNOPOSPST_WdUeTjToUtYsZiYQZQ\_aei`^qdsdodnhlheibwZ|ZzUzSpXuS|Q|LG}B|BwB?<2035-(7?D383(##   $&&)+,.3368;=?@OOLLOSTTXYX``chjmeccgjhlmovtotv {y#$!!$$-7708:=5.35==B?)+.3.38:?=AGIIASNZSVXbbQS[__`dgiossxqqvyx{y"** 1 /;>AH MO U%T!W%a*h-p0n/n-d4d4Z5W4\7a4f5k5f:d7a<Y9Y:T<R?KAMD@H>IACPDPDTKKKRMRNJN>S7U;R@SFUEWJXH\M_MaZbYf^fficknlipmqksr\OUT^d{m}wznniadcpknwz|         ! " ' & , . 8 : @ E I S Y ^ e c q B A B D F F B 8 7 7 8 : G G G K L K D A ? 8 : = 8 : = A ? = = = 5 : : < A B G P N P I Iy N U Zu Xa [f [a ]a `= `; bE b. i; i, j6 eV ec _ _ ` b e g j l o s s t# y }!                              | u p r y u ~ r | p m [ ^ J B ; 1 ' % . "   ' " $      t i ` _ ` g }                                       '                                                            } x s i g ~i }b {_ }Z \ a a d i _ K g l s k k q n _ M 9 5 / ( { x v t l j ` ` ` d e d g d _ _ b n v y x { }  ~               !                                        { y         | { { j y  y ^ N I }0 x+ x1 v1 v: t' q o q' o1 n j j& i e$ b! ` [ Z1 V+ Q U X Q S U V [ Z [gb[`dlnnoqliedgeilottovtxxqnljglsrxmvhnfoas^qRlHlMiTidg_bc`kbr]}_```d_][Z[ZQSUVVQKIGGD==?AGLLxPnSpVkZ^ZTXMQHNUNJIKFEFAKFK;G9F4D9B6F/G1I*S<P,KG#D AA:3.)$%).$ #!)-.07LUPILQPBAAGA82..20.#&37DDAB?~=v8t2g-g)n+t-(+~(l!ltx       }xnl&]+])U+F(7!5AGgld`UKN LG? <::2-!-$$!   ytoruoW\Ypzytje`^VROJ[`eQQjmozjoohhe`Y^^cpyuoheroumhaajomh[T\Ym~k|tVTCJGJECE=;381'%%"%,3613EE=;43)~~|zzwzzwwutrrmkotu|~ zyz"yu*o/wur ropoptppojhjkjc fhfa``c$e6c4a"\[YWRMJ"GHJOT[ \[V[\\`[[\^ccaacec^[[YWWVQVVTRMCEHCBBCEGGGJLGECCBB@C@B"=%@ @>; 634==>>B@;84;@B@>>=98;;68=;41/..131.*)'),11}1{.z*}%q$s$p'l*u,s*l)g)a%b%N$I"I"RSZZadqvfRFK_MKRUnZ Z MD0+ 2 DI A & %*<+(/>I]MARWC5/2/:+*%#%%!(549A<I5*&2ANRMR\_dpu{xvibadWRXbgg_RKIKNFNNK4  &{}}}{z{zvuqqx  }xvsqppllkibggiggikfa_a]_]|Z\X\yXjUeXZWSgRePwMoIeKrR{RSW__aa]_]]XSUSRPMNMMKIKIFtFvCt?v9:<<>>:<:557742y/y//+y-v*q(r&o c+m-g-b+`-]0^4V4S9S<I:D7I2I2D0I0D/B0@2:/;/.-)+.+6(6%=&5(1*+-&+!('++((!%$#)!$%#!#           &'DILTOD8!.8X`b j oceovy~~wg`VVYgovye[I=0+@DB=DD856D;8,! xxrihdaamPZ\}_YY__UE>7@@<6167@O@EZTcaMJP^fZOKUUHA>A--( -2412@CW{YyWPJ>1(  ||'%~/ {yvrrwvqqrq ojootwtqmvvyyvqtytvqvtvyrqlsmmlljlhhgoeoeyb~chghee]]XTTOTQSSJDBEDBD@@BEJT[be`[``]~XGEBGQS]xVZQSNXL_LXOQLPB`@s?{={@g?]B]EU?Q:I=IBPGQJPLKI7E8@?D7I3J$JD?0?.?)8#=!DINNJJGEBB::3 5 3550.10!00070U,=)B,N+['d)t&+.,+'++&$&{'s'_!j!i!b$]'U!SN!Q)Q'8&3':)?,70.+)'' &!!     !+3:AD72+)3!    $+7?BBP[[UXejjo{}y}vqssdGGBBA803-#!  $#)&   ))087?<?<<:53&   })2<=<7-.30:-.+}.57B:}=z:x<w?x?xDwAw8p:n?rApBsLIPXdeigjdqjjot~x|yyslng_zd|jq}q|tw[pSmVkUiAf=c=a5a:a<a:_:YGZPaQaUaS^UZQYSWVY]_lav^nW_USWQYNULTFP=OBOLMLMAHAH<K=M<O-K)F)C(>AA!E&J$R(U$OJHMFA@ >74/-/6**14*'(-.4.6+40-5(2*8-</I2K7B457<;:9=;D@BAD<L<g9V9L6L/Q2X4U7V4Z6_9gAnMvMx@qE~CC>o7j2[-X,Z-],b-g,j-l1l-o*o*`%d(q,y,,y's%iXZdNKQZ ] X U[ b g}d]eni`SQ IFF?< <+ ) . +32+)-)(!((-3<?SUZty""(#%,-166;9EHHKRRZ\_dhs|          " ' %#',/699 C@ CFORUUUR R OA@CH&K$PU_acd!c$f&d+f,d3_5U0_+a'UP"P&@);.7+<+;&6"4)1),,,0-1,6(3"1%5"668;= BBGGLOOSVTX[Y ]^`]bjq wi \_PM P NW]db(7:?j?:BADGGKIKIF=<7773-}+(# xpkf^Ycm_M1'476##~yql`L7|utmtujYOLG/,),"   9ELQClx}}pk]llssbUUbdU:&!&%ye;yu to)m)k.k$m!o"rppr trooppfhkmfe[WMC>8/*% "$aWT2*(-41")4=HO\ffhpruyy||;~@@91/',-D7! 0GBLZQ??F===FKD:8z=r7r?p?m<p8o3WMB@=&>3=A4K6V1N.X%`$d"_`UU ` iXUI<8A<BB25!  ~u`EE9'zif]PMKMKI9597>C<><:79sK5NRPMKKKHC?AFIMNNPMPWUUXafiqsxwveuclgfbbc\Q]J_D_;W?SISBKGHX2t&#&&%(+--&%#!rme]TL@=,, &,& ( ! # ! % & + - 4 4 7 7 : ? F H M N M K M P U a b g i i n p s u v { } }} } w w p f h n m z z                           k W Y R E > < " % "    ' %  , -  #                                        " % ' ' ) / 3 4 8 8 8x ;x ;q =t 9 = 9 9 4 4 1 *       #     # ' 1 7 ; < A J K M R W W P W Y \ h x | | m k w          6q+5U_q'",,%.)4%8*;%@)C$BCEV[ [ack tutz~|wwpa575&  %[L1+)          r r k P C 9 ; 2 , / ,                              !  !       # #  ! # $ & $ $ & $ $ #    & & ) - . - 0 - 3 5} 7 ? < 5 3 5 3 . 2 5 = ? D B B D I L L S Uy Px N~ B B A D In Ge Dd =` :l 8l :Q 8Q :I 8G 2: 8D <D ?7 D B z+p+w++++++p+f+c+f+\+R+F+@+1+ +**********+(+4+9+T+P+T+P+;+6+'+ +"+++++***************x*j*G*D*V*S*F*:*+***)))))|)y)~))h)xc)wQ)rG)m1)m )n )p")s')zG)J)W)Y)j)o)))))))))))))***-*3*:*7*`*[*b*i*}*************** *  ++++*+4+J+W+!a+$\+$h+,+,+++++0+1+5+6+=+@+D+J,S&,T.,h`,qg,rc,r[,tY,tl,c,~[,J,?,@,$,&,,,, ,,,,++++),1,',B,O,`,^,N,X,l,o,~,v,y,r,o,l,b,c,T,[,],X,O,[,V,[,Q,S,L,G,;,;,B,?,,$,@,=,B,:,.,",',&,,+,,,++,, ,, ,,+++++++++++s+f+c+i+f+R+T+A+7+4+%++***********]*N*L*+*&*0*$* *)))))))))))))))))))))))) ) ))))))))))))))))|)`)Q)G)9)1)1)R)M)\)!`) Y) @)')) )( ((((!(!(%(%(%(()+")-8)01)2B)5M)9M)9m)7z)9)<t)>h)C`)H^)IW)M[)ME)I*)M)N(S(Z(Z(W(X(Z(\(](](S}(R_(UW(SA(N2(K4(F(:':'<':'0'+'%'''''o'l'g't''''{'h'w''''''''''''v'y'e'Q'.'''&&&&&&&&&&&'&''&&&&&&&&&|&{&q&h'c'`$']"'^!'c'j'q&v&{&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&m&W&R&O&J&A&J&^&W&>&1&'&&,&7&6&&&&&%%% &%%%%%%%%%%%%%%%%y%n%g%U%d%t%%~%%%%%n%F%<%7%$%!%%%$$$%$$$$$$$$$$$$$$$~$~$u$$m$c$`$j$h$`$^$V$L$L$C$J$H$\$^$Q$p$t$o$~$$$$$$$$$w$"$$$###########l#g#-# #+#-##|#{#w #w"{"{"~"y"t"w"t"t"q"q"o"m"l"g"h"e"c"]~"Ym"Yg"V^"]"[!X!S!T"S"O""OI"NJ"L@"J@"I5"E8"E3"G'"I,"L'"J"G"G!"E""="0"0!3!3!.!,!,!)!$!&!&!)!+!.!.!0!.!5!3!5!:!8!:!:!5!0!0!.!+!'!'!$!&!$!!!!!!!!"" " ! !"!! ! !!! !!! !!!!!!!!!!!!!!! ! ! !!!!!!!!!!!"&"$""!! """'"."1"?";""""""!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!!n!c!d!J!>!4!6!*!! !   8  ttzpjfcYamwyp`Wayzkunia^YWUOCA; < 7$ -& ( : F K X ~           {   x }           y x x~ yn xg oq ly d `} _s `` eZ iG lK qI ~b l q l s q y { v l b ` _ ] U S L B B 8 A : 8 3 7   ! l+ t     2 ( &  + ! - N o j n }     j d Z   #'(#"#(2L9,E FEHFHFEFA@n6_2W6H6C1D,:(:'D,d,s*zZH?9%   (HA\_]kkxxnq{}slkX   ygchwv~r~~g bbhgw#v(/6;>@APUUW_~dvdmhtfyikrms`wTxLr1fGZSFX9V,G   }vg`ZSF?:+3[Vb |   *<SZ_\aadlqsnu]MFHCHNDCyCuItUu_zaydugtsrkpkrvp}momokrmookkjhjmmmkjhecefffccfa}cvescneicXeXjWz#~%+2&-*29&%2-4%#{+ &1:p1VJB831*% OM<FJEHC7'# ~N?03-.:BNLNSV`jg x    xty    "$%')'$%'$$) */3"48"9;-@,;1=7C4G#J#J-M2J;LHTM[H`WhWj^kumxpxptpt~h_WP TaYPZ_(^5R7Y8W?aIdNaVU]P`Yj^sJ{Udnmdms^d_ZC% "'47E@AT#Y,h4i<xHpPpTuWm\harcifhfss*prrs w |zzxzvx0x+|-}BD?)}p hcaaUPM@@7#ff4$ " ,6GMBJEG~@n4eCjEgJbHbMZEV>S.V)Z,]*[$X?-(%-$35*5,:*842O2^.k(z$$(++ zr|kM@;/8 i7s?:i?5f?5\?3Y?2\?.J?)H?(@?)6?&1?$(? ??????  ?????????>>>>>>>>> ??>>>> >>#>.>3>3>5>8>8>5>:>=><>:>Ds>=e>Dl>Ge>Gi>N`>Sg>Xs>[q>bx>bo>e`>dy>e{>l>o>t>>j>_>5>==B='=<<<<<<R<?<9<<<;;;;;;;;;;v;c;?;=;X;g;m;m;I;E;;;); ;:::::::::::::::::::::::::::::::::::x:_:>:4:":%:2:7: (:#: >: C:H:R:T:P:Y:m: s: |:::::,|:1i:6F:;:>:@9A9@y9(G9+9!9 9 9888888888 8 888888888888"8#8"8(8686898784828/8/9*9'9,919191!9/9-)9#9#999 9#399_9@e9> 9;87878281u81h86R8;J8;T8;W8>\8<h86t8;z8H8K8H8J8H8A8C8A(9C79AS9C]9H<9M9R8Y8\8_h8aM8a.8d8d7f7f7ik7mM7u77z6w6p6n6d7Z7Z7Y 7U7U6R6P6O6P6R6R6Jr6Jm6A]67T61^6-m6-o6/g62e61q6162w676764616-61616'6 66m66666 6666666666y6r6o6b6X6[6X6Q6D6066$6"6666665555555556 65555555555555555555555555555555555555555555x5r5h5^5W5Y5T5P595-554444444444444444444_4)443 33333333333~333w3y3a3B3.3$3 3"3333322222222222222222{2}2v2n2Z2U2R2Z2p2 2222 22"k2 f2 v2_2 A2>252+2"+22271719191C1C1H1H1H1F1<1'1 111111111 11"1-12r17r1C]1<Q1;D1A,1A1C1J1M0U0Z0_0_0h|0kZ0kO0h;0i/0n0r/w/x/|//////j/}G/&//....}.z /x/w/z.}.....z.H.@.;.=.C.=.;.H.R.\.a.t.|.k.W..---]->--,,,,y,T,Y,q,y,,,y,j,e,],Y,`,X,Y,xI,u3,i:,dG,_l,^,\,^b,dB,h8,s,,w1,xB,T,Q,X,T,V,?,:,1,@,L,O,L,1,",,,,,,++++z+33333333333 3 3333333 3'3%333%3)3.363638393@3=3@3C3C3B3B3E3E3H3L3Q3O3Q3[3T3V3R3R3W3^3^3`3c3e3e3p3r3m3o3o3r3u3w3y3t3w3y3~333333333333333333333333333333333333333333333333333333333333334 444$4(4)4-40484<4=4K4N4[4d4j4v4x4{444444444444 444444444444$4&4(4+4+4(4+4+4.40434<4A4B5G5K 5P5S5X5[5] 5]'5d25g45j75n65s95t;5vA5y>5{A5~E5}K5M5P5U5W5W5a5d5m5r5555555555555%5(5- 67 6A6H6O6T6_!6d&6n56z@6|I6J6Q6Q6]6`6b6h6t666666666666 666"6"6&6"6!6!6!6$6$6'6+6,6,6.636568686?6?6@6@6L6]6h6q6t6{6|666666666666666666666666666666 6 6 77 77767 7* 7/707/ 72 79&7?*7D07H>7K?7R27X97Z77aF7_I7_K7fI7f<7k57l07q+7s%7x!7!7*707074707/7(7/7&7777 7776677 77#7*7-7&7-7779797:7?7>7>777>727+7 7 777 7 777666666 66666 6$6*6,6.6/6668616*m6/L68166)6306/36,06)16+6"56666636,6 ,6.6&66666565 6 6 6!6 "6!6"6"6 66555555555555555555 555555555$5'5%5 5 5$5%5'5*5/565858565656585654535.5.5*5%555 555 5 5u5r5n5d5a5f5m5 m5'r5.k51r54k58r5;m5Bi5Cm5Br5Cs5Gr5Hs5Lr5Rx5Tr5Yr5Ym5Vf5Wa5\c5Y^5RU5T<5V65T*5Q 5Q5R5[4\4`4^4`4h4o4u445 555'5-525>5C5K5T5W5\5d5k5n5r5z55555555555555555555555 5 5 565556#6$6(6)6567"6B'6D36F:6I:6FB6KI6QG6SI6QS6SS6_]6bq6dt6d|6j6q6t6x666666666667*757R7Z7g7 v77#7/7172717-8-84*86686E82\84`84f82m81j818284~8482828282868682868786828684869/9-8'8"8"99 9 9(9 +9'(92(9979;=96K91Q9/_91l9,}9,9#9%9(9*9*9'9(9*9/9296929/9-9*9'9'9%:':#:%:( :%':#*:%/:,,:21:4,:2,:/':4':1:2:9:<:C%:A(:@#:<%:;*:;/:91:>@:;J:>J:AF:C<:F>:J7:K7:M>:PF:UU:UW:WT:YW:WY:Yr:R:M:M:J:J:H:F:C:E:C:@:<:@:>:<:;:9:9:;:<:>:C:E:F;E;E;H;H!;E$;C);>,;<8;7?;2?;/D;,?;*B;*S;'^;(h;*m;'q;#|; |; q;e;S;L;D;?;:;$;!;; ;; ;;;;;);5;h;l; l; t;;;;; ;;;;;;;;;;;;;";%;"; ;'<% <" <<<<+<7<C<F<K<H< I<"U< \<i<n<u<q< u<< <<"<%<(<1<4<><<<9}<<{<<s<Cg<Aa<CR<>R<7Z<6S<;N<>P<AN<@K<<K<9D<95<;2<@/<C5<M><FF<FM<T?<d?<fP<dS<aP<dX<hW<u]<x<<<<<<<<<<<<<<<<<<<<=*=3=/=3=/= 6= G=R=V=c=p=y=!y=$="===&=&="='=& >) >,>00>,A>)B>'=>!I>&N>&Q>L>L>Q>_>_>d>g>o>"x>&}>,>,>3>3>0>.>+>)>&>!>>>>> >>>>>>>}>{>{>t>x>>y>q>o>g>q>x>v>{>y>~>y>v>l>j>x>y>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?????"??%?/?4?;?Y>T>J>C>9>/>,>#>v>j>j>e>g>d>Z>Z>N>L>D>.>3>+>&>>==================u=e=[=R=J=G=;=E=M=yR=oR=P6=L8=G3=K1=N'=L%=F$=?=5=2=.<(<-<3=5=2<#<<<<<<<<<<<t<j<f<E< <<<< =====}== =l=I"=7"= = =$= $=)=/=3=6=6=;=;=1=6=>=B=O=c=j=m= w======#=%=+=+=/=4=9=<=F=I=S=W=\=]=\=b=f=g=k=k=n=q=s=v={=z={======================================>>>8>B>L>Z>d>i>n>j>i>y>}>>>}>}>x>}>}>x>y>t>q>l>n>l>n>q>y>}>}>v>s>x>n>s>o> q>v>~>$~>,>1>=>L>M>O>R>R>O>L>H?L?J?L"?J-?R6?YF?^H?eT?jR?kW?oW?rO?~E??C?E?F?F?J?^?a?f?d?n?m?m?n?r?s?u?u?u?s@r@s@s@n@p$@h@f@c@a"@h@m!@n.@p3@r5@u0@x0@w3@|=@xE@sL@iY@a^@^]@Zb@^l@_t@m@n@s@x@x{@wy@xt@}t@|y@}@@@}@x@z@}@@@@@@@@@@@@@@@@@@@A@@@@@@@@|@r@m@h@_@^@a@pA+A5A5A2AAA>ACAHANAZAZAXAaA]AiAkAlAqAzAAAAAAAAAAAAABBBBB B)B%BBB9B=B@BJBOBVB\BeBYBWBwaBspBrtBnrBhBmBBBBBBBBBBBBBBBBBBBBBBBBBBBB C CCCC!C+C+C0C.C2C7CD,AD36D64D3>D3FD1HD0ED1JD:mD=uDIwDBzDDD?zDIDODXD`DgDgDhDmEmElEjEmEq?Er5Er)Ev&E{E~E!E)E$E"E'E'E3E1E~8E?E=EEEQENEOELEEEDE|EEv?ErEErBEqlEoEhE[ETETEYEbEgEjEjFmFvFv%F{#F~(F(FF FFF FFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE-E(E+E*E#EEEEEEEvEgE+NE7IEAQEKTENEEH3EF"E?E<E9 E>EDDDD>D>D9D5D?DADHDMDRDSDWDZDNDKDKDIxDIaDCEDC9DC,DD#DD>DDEDMaDKkDMsDK|DMDNDNDSDWDZD_D\D\DUDPDRDWDW EUEUEPEN$EM'EN6ER@ESBEU:EX=E\:Eb+Ed$Eg!EiEgEdEdDdDgDgDiDiDlDlDfDlEf5E]=E\OEUTESJERNERVENTEN[EKcEHbEFrEFECEDEDEAEAEFECE?E>E:E<ENEPFRFRFRF]0Ff?CFFCD?A<52*!!*497:DIHCD?ASdƺպ.6GGLHuVkRfH_R\eXkUoUzSzRpNtN|NNWURNCۻCA?7*#(#2(=/G2I>B:F:K7I4P-L-Q%B AZl o!v*v-x/t/e2j2q4s4}2~/**&(*+279:<?>x:q:j>qCyDvCgCdHoHyIyMNUoN[NXRbUdWgXqUWXZ\\\lünülqqxzz{}{}{}{ļɼͼ׼ɼ #/2-'   ,>@T^cc_daZwzxkaWa_n^O@*    %''ؼ*ռ'˼).,.1g1e/g)%$%"%i'd,`*V'V$P$X V]VGG K$G$K'I)I,N,V.Z/N3N1U1_4A/=/8174:689(6!464ʻ3ǻ1ʻ4޻3ݻ1ϻ/ӻ1.,**%"   !   ݻٻֻ޻ֻԻػ޻ػǻ  "%%*6HLHJRRTVV\YQOO~Y^`^acmmop|J1պ˺úź˺RU}{qp}u_RM/-?HݹڹǹPF7F/F-F&F%F?FKF FFEEEEEEEEEEE#E$E#E#EE#E&~E)mE)eE+`E+hE0QE3'E7 E?DBDDDLDLDNDLDIDIzDIkDKkDLDIaDK%DLDLCICLCGCKCLCSCQCNCLCNCPCKCICFCBCBCBCFCICKCNCVyCUbCV?CX)C_BbBeBdBbB_BQBLBDBBB?B=B7wB2tB0yB.B0B0B)B#B!BBB BBBBBBBBBBBBBBBBBBBBRB>B1B/B)BBBA A AAA+A5A<A<ABA?}A-MA$/A&A(A(A(@-@.@.[@0E@36@<@?@A@:?8?<?5?5?8?7s?%2%2#2 2#2* 2/241519191:1H1H1K1I1P1M1M1R1U1Z1]1]1_1a1_1a1d1b1f1g1f1a1\1Z1Z1n1x1{1}111111111111122 22222 2!2&242<2A2D2?2A2X2b2n2u2z2222222222222 2)2/242;2E2G2O2Q2T2[2^2\2c2e2f2h2h2m2m2o2o2p2r2y2~2z2z22222223333~1|1~1|11{1{1y1t1m1o1r1v1y1y1{1w1w1{111~1111111111~1{1|11{1{1~1|1~1111111|1{1y1w1y1w1y1~1y1w1v1v1t1t1l1m1r1r1r1q1l1g1e1b1c1b1`1[1]1`1c1j1l1h1m1q1q1m1q1r~1q|1oy1lw1qv1vq1yl1yj1wm1tm1rq1qr1qm1tj1th1oo1jr1ol1jj1ch1je1mh1oe1oc1re1tc1t^1r`1t]1rY1q^1q]1q[1o[1lb1jb1g^1e`1c]1eY1cY1^[1`X1^T1`T1cX1eV1hX1qV1oT1gT1gO1jO1hL1hJ1eN1bL1`O1`L1]L1^J1`I1]D1VE1XG1[G1[L1YJ1YL1VN1VI1SI1TO1XS1TT1TS1OV1JV1N[1NY1QY1VV1VY1Y[1V^1O^1Qb1Vc1Xc1Xe1[g1Xj1Th1Sl1Qj1Ol1Lm1Jg1Ig1Eg1El1Bh1=h1;l1?q1?v1:j18l18j15l15q13r10l1.m1.r1&m1$o1$r1!t1l1j1l1t1v1y1w1|1111111 w1 v1v1y11111~1 1 1 1 ~1 |1 {1 y1 g1 g1 j1 {1 |1 y1 v1 m1 j1 b1 e1 b1 ^1 ^1 [1 ^1 X1 X1 ]1 ]1 ^1 ]1 b1 g1 c1 `1 `1 ]1 Y1 [1 [1 X1 T1 Q1 T1 S1 V1 X1 V1 ]1 ^1 Y1 [1 V1 X1 X1 [1 ]1 ]1 `1 c1 `1 `1 b1 `1 b1 ]1 ^1 h1 j1 l1 o1 m1 r1 r1 q1 r1 {1 w1 w1 o1 m1 m1 h1 e1 `1 ]1 ^1 b1 j1 r1 v1 m1 m1 l1 e1 e1 `1 ^1 b1 c1 h1 e1 ^1 ]1 [1 [1 V1 S1 T1 X1 X1 V1 T1 X1 [1 ]1 ^1} `1 b1} e1 g1 m1 m1} l1z m1z h1x g1w h1s h1r l1n h1k h1i l1d l1f q1f t1p w1r |1s |1s 1u ~1x 1| 1| 1 1 1 1u 1r 1u 1u 1z 1} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1} 1| 1| 1} 1} 1| 1x 1s 1s 1w 1w 1} 1} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 !2 #2 2 2 *2 (2 *2 -2 /2 -2 -2 +2 -2 *2 02 22 02 &2 &2 02 /2 22 :2 <2 A2 92 <2 >2 >2 ?2 A2 C2 D2 F2 F2 P2 P2 X2 Z2 \2 ]2 b2 a2 d2 d2 g2 g2 k2 p2 q2 p2 s2 v2 {2 2 2 2 2 2 2 2 2 2 2 2 222222222$20282B2N2S2T2X2]2g2o2v2{2222v2q2q2k2k2U2I2?272%20000000000000000z0x0{0{000000000}0}00{0{0x0x0s0u0v0v0u0u0p0v1s1q0l0i0g0g0d0d0b1a0a0_0\0Z1S0R0R0N0M0K0H0D0C0<0:0504000(0&0&0!0(0&0#0 000!00!00 0!0#0&1 1 11111 11110000000000000000 0 0000000000000000000000000000000000000000000000000000100011111 1111000010000011 1 1111111111111111111 1111$1$1'101616151315161:1=1=1B1B1E1G1I1G1N1Q1^1`1c1r1y1{1~1.../ //////////#/$/0/3/=/B/G/D/=/=/A/A/D/L/L/P/V/]/_/`/g/j/o/q/t/x/{//////////////////////////////////{/s/t/q/v/{/}y/zy/}s/{s/xn/xd/q[/pZ/p`/nb/pg/po/bt/ay/a/b/d/b/d/f/d/a/a/]/Z/W/U/S/R/N~/M/N/H/D/>q/>n/Ai/<d/:g/9e/9`/5[/7V/7Q/4N/2L/2S/-P/+P/&Q/%P/!Q/ V/%[/&Z/([/&b/(d/*g/(t//~///2/4/5~/7/:/</>/</>/?/>/9/7/7/:/?/?/</A/?/C/C/F/K/M/P/W/\/\/_/f/f/i/l/k/l/q/p/s/s/z/z0z0z 0{ 0 000000}0"0"0'0%0"0 0"0'0#0%0(0,02040604060;0<0C0E0H0H0M0M0R0f0i0k0n0x0}00000000.----(-7-:-:->-C-F-H-K.P .R.N).H/.C1.C6.?8.HJ.MM.NT.N[.N\.K^.Kc.Nk.Ro.No.Np.Mp.Ny.Hp.It.S.W.Z.].d.f.i.u.q.u.s.u.x.v......... . . . . . . . . . . . . . . . . . . . . . .... .. . ... ......".$.&.&.$.&.$.!.".$.&.+.+.&/&/!/././ //////$/&$/0/1#/0&/0(/5$/:&/?-/?./=3/:5/65/57/::/=:/=?/B=/EA/E /K /P /W /_ .h .m .u .w .| .} . . . . . . . . . . . . . . . . . . .: -; -= -@ -= -: -; -? -D -G -J -J -G -G -L -I -S -V -X -Y -[ -X -V -T -N -D -J -Q -X -[ -^ -c -c -e -c -c -g -e .c .b -b .b .[ -V -X .[ .b .c .j .o .r .t .t .o .y .y $. . . . . . . . . . . . . . . . . . . . . . . . . . . . ". $. ). ,. *. .. *. *. .. /. 1. 4. 4. ;. >. B. B. @. B. C. C. R. O. O. V. Y. [. W. W. Y. [. \. `. e. `. ^. W. V. Q. Y. [. W. [. \. \. ^. a. ^. ^. e. h. j. o. r. z. y. u. r. t. y. z. ~. |. z. |. |. z. w. p. m. o. u. w. y. w. r. t. o. p. z. . . z. z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .( .* .- .+ .& .% .! .% .( .0 .0 .7 .4 .2 .- .- .& .* .4 .5 .9 .> .A .A .D .D .D .F .I .H .M .K .M .P .R .P .M .M .H .H .I .I .K .P .U .S .S .W .W .Z .U .S .P .R .S .U .X .Z .\ .\ ._ ._ ._ .a .b .f .d .a .f .i .i .l .n .n .u .u .v .x .v .s .s .n .p .u .z .x .q .q .u .v .z .{ .} .{ .z .x .v .u .l .p .l .i .i .i .n .s .x .v .v .u .q .p .p .n .i .d .a .a .] .\ .\ ._ .f .d .f .g .f .g .i .i .n .p .q .q .s .v .z .z . . . . . . . . . . . . . . . . . . . . . . . / / / / / / / / / / / . . . . . . . . . . . . . . / . / . . / / / /k.*i7*k7*m7*k8*m<*m=*n=*mA*pD*sD*sF*sG*rF*nK*fD*kL*nP*nL*rP*rN*sP*wN*xP*zP*|Q*zQ*xS*wX*xZ*uZ*w_*rZ*r]*n[*nZ*pZ*pV*kX*m_*m]*m_*p`*r`*pb*p`*n`*rd*re*sd*sg*wg*wi*xi*zg*wd*xd*|e*zd*wb*xb*z`*|b*}_*}b*b*b*b*_*`*]*]*]*_*`*]*_*`*`*d*d*e*g*i*i*g*j*l*o*i*i*j*l*}l*o*n*o*o*q*q*t*s*o*}t*}q*zt*}v*}y*xv*wx*wy*x{*u{*wy*ux*sy*py*ry*s~*r*s*s*w*x*|*|~*}~*}**z*****~**********}*|*x*w*r*p*r*u*r*p*r*p*p*n*p*i*h*d*d*_*\*\*_*^*^*a*d*_*_*c*a*a*f*c*d*h*k*n*s*u*u*x*x*z**}*z*w*s*u*r*m*m*p*r*h*f*c*d*d*f*m*n*i*k*c*c*f*c*d*c*a*^*\*Y*Y*W*W*U*W*W*J*F*E*E*F*E*A*7*7*2*/*/*,*'*"* *#* *"*%*'*#*"* *********** ** **********************++ + ++++++ +,+-+ (+ '+ #+ "+ ++++++++++++"+"+++ + +#+%+#+%+'+' +-+1 +2+2 +6 +; +< +; +9 +6+;+@+E +K"+P+R+T+U+T+U+U +_+a+^+Z +Z"+\#+R"+T%+U%+U'+U(+R%+R(+O'+P'+P#+O"+M#+F#+J(+J-+J2+M2+K7+M7+T6+Y6+^>+^C+_E+\C+W7+T7+W;+T9+M9+W>+\H+ZO+\T+^U+_\+c_+cc+da+c^+a\+aZ+a\+d^+hZ+h^+i_+hc+dd+fh+dh+cd+cf+ck+fr+fm+hk+ip+hr+fz+ax+_u+_w+h+i+i+m+p+k+k+h+h+i+h+i+k+n+k+h+r+r+s+u+|++++}++|+|+z+x+w+x+|+++++++++++++++}+|+z+|+++++++++++++,,, , ,,,,,,,",&,$,",.,1,0,6,8,8,:,=,=,@,B,J,I,D,B,=,;,5,5,;,?,G,I,O,S,X,Y,[,[,^,],`,^,`,Y,],],X,S,J,O,Q,V,O,I,?,:,B,G,N,T,V, S, N, L, L, S, X, [, ^, `, c, j, v, w, l, e, Y, Y,X,[,^,^,^,b,`,`,`,c,b,`,`,b,`,b,b,e,g,e,h,l,o,v,|,{,,,,,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-- - --- --------%-%-#-(-#-#-!- -!-&-(-%----------- -#-#-!-#-&-/-0-5-/-4-<->-:-:-<-A-I-K-K-R-U-W-S-Z-X-X-]-b-k-f-d-i-k-l-l-n-s-}---- - - - - - - - - - - - - - - - - - - - - - - - -! -& -! - -! - -& -) -+ -0 -3 -6 -8 -? -= -: -: -: -= -= -: -= -= -; -3 -5 -8 -: -|whVG@=4'$ "$)""%.1@COT^fk c h k j p o peu z ~ z|zzzo###&%#&%%((&!|m ^#h%j%t&u(e2j5t5~7z<<::99<>>AAAA?AA::y9w7m4h5e9e/`-W2R0O4R7R7M9O7G9E>EC=?CAGCEDGIVC@D>HEKHM=R>P=P9P3N.M/M'M$N)P$PM PPSRNPRRNKIIIKWXX\\X\__aa]\_bfd_\aaddb fggl i"ff$d%a.d*f*i3kEiLgYg\gmg|i~kwsxxzsunapOu@s9s1u/v;v1{6{>>CGWjomp~zukmohec`^\TJBBT^OEJC>@966131.,*)'$ $   qkqz{  $%/'48;;>9=@E>89B8/,$,.11@C6/966,"%*$   $,19>;BEMOTQRQ\^`kpjou~uv $&)-=INU[]_biejng`djgn} %#*112299AAEMMY_cffxrux|")0?Q$+)"+0:@EGJLG860:636ee`meSOjvozzxxsqqppnuuqkggdbbglggqftfa_]\]\ZWRSPNIHDoFgN^PTN[KYIbDgCmAjCbCX?Y?`<^:N9O7V<e<g5Y(Q&=*O+G+@(@ .#.)00'"  !#&(&#!!    xrurpphfcc__c__Y\OKHH@%%# "    {nKLG=G+()   ++:BGGQ]bqx~zyrojjfkmmkhc`^WTW\\\WQLHB>=;9;@EJLQQMLJHB;>;84/11.)"      zsu~s}p}nqkibbdbyd{dxanfbdXi[gXgUfUdVaU_P\K]K_NbNfLiGlDfGbFbI]D]:a=a:a8_:_3]2]Z X ZXWUS P NKKKMHHDC?><<>ADCDCC>:942020-(++%%&&##!%|#u%o!p k!jjfaa^^YVR#T%O!O H!EEB@= ;46//**)!3#;*E*B#,#'%.(10M0O4O4L5H7E5E0@- *((( & * +-//04459"5$9'9.:*?3A;CBA4>,>)<%>$5 7 9:>A?:AADFFIKMNUXWU]"\%]/_$_Z]Z]]\\Z\ZZZ\_abdabggklgilnnkgg%i*g*i3k1k$n$n'p)v)xz}/6=;889=MQ`uw|yymc`[aTGEBC66$*9@JLQQYWMQamtp~u|yjLEECB>=@>BC@@;9>83/'"$"..*,%$%"      $ ".@E>@> C BC/ )  "*,.,**)'""% $$)$$ ""$ %')**.**)'%$ " ,./ /1631". /.,"3'1/4,6%9,888L4V8[6a3c3h1f/h.f,k)o4w41333,,114386898;>@@CEGEGLOVTVWTTWWVORVTVTVY\\^aeceffcjkkmooprrpruww||   |y~  #!)##+27KI3+ # "%--#,-44<EE@KTYYZ^cinnzrnhd\^kswu}rnmf_RRF}EYhkpf~d}f}_{^{UyZvWt\v_xa{m}m~h~&,8:@EJ}JvOvNsNsQ_6S1P3A&<&2--& $!       ++0:JNOQOX]]bc`ecjh|ryytwe~`^\YTTTWROJHEB=1.)$       !#! !&&+07<CUXZafabgn}vkbXUIP}KMuKpKCxC}DCA<x9q:g<d<]9X7U5H2N4P7\5_0a+]+Z+R*W(W*Z*_(_!P!A9/+&-07FIHA<7>ADFFIIKZ_ZP \z zvngabPIC%~wmmt~ymeXQSJE?=3155?=B?=31$    }umdc\Z_^ZUPFA/-,%         "%,/99<AMPY\WZZ\  4 7:75&!!##!#*(r&p#r#a!a!Z#R&T*T+Y*Z+d-h/i-c0^/R4J5J4P7K:K7H9C5E4--*-%+"+(*-/0/0 0424045599ACCHHKMRRPRSRRUW#Z'Z*]*]>fJfOiYpavfkpuicirmicad_JC@A<41(%%(2;KMPR^ci|}"$*,,'',$ $'))3,,4;LRY`ehorporrtwtuwwyyzyyzzzyzpoomomoomjesekkkeheckZo\kUoMrKtHpHoEkFhOfK^M\J^>f4k"o okh^\YWWY`mu|~|ur t| "%12/,/*"(@/"#     !$$&$&2--&$#!!&#$$&##$(++-++.-.2353775788::<DFDADBDFGILPPLNNQSUXZ[]_]Z[[_``einigijlggjlnoqt}}y{vyxy{{}}~    s n T P M E @ > K R E > ; 6 1 * ' # #      ' / 9 E U Z _ f m z z  ? ? ? < : < : 5 +    ! % - 7 > ? ? ,**//131/.,33/1=>=>~@xBsCeJ[RUaShUkQoQyPzQ~SS[[bdgjilq{     #%,((-2*14ACEHEPTROMORTPRURYYUW^\^afhfkpwx}}}e[YOMRW`m`WML>8;@BLMJRTQR[fmp~yph`[\YQGEEOTQMEGLLLE;}8w9p8i;_;\8Y8U3O3K1F1;/7,4.1.-/'* /,'"%%'(%-%1%4%6)9*;'<'C*6"-"*"*,((((((((}(}((((((((,,,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, `/ l/ o/ l/ q/ x/ }/ / / / / / / / / / / / / / / / / / / / / / /~ /w /v /t /l /h /c /b /] /V /; x/, v/ q/ l/ l/ n/ j/ e/b/_/V/V/U/Q/L/F/D/A/=/7/8/3/3/0/+/(/&/&/#/&/$///// ///../............. .. . . . . . . . . . . . . ." .& .) .+ ., .: .@ .B .J .V .c /e /m /t / / !/ &/ +/ -/ 3/ 2/ 7/ 4; 47 47 46 46 41 4( 4" ~4 }4 x4 q4 l4 j4 d4 ]4 [4 U4 Q4 =4 04 +4 !4 !4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3' 3/ 3< 3> 3F 3M 3R 3R 3U 3R 3J 3C 3@ 4@ 4C 4E 4F 4E 4F 4E 4E )4M 24R 54\ 34a -4_ 54^ 74a ?4d ?4i L4m N4i `4m b4k d4m e4n e4m i4h i4h j4k n4h s4d s4a {4a 4^ 4^ 4_ 4\ 4\ 4_ 4Z 4Z 4Y 4U 4O 4/!7)*7'/7'77)>7.A7,C7)C7$A7<7<7>7C7D7H7N7X7f7g7d7l7g7g7n7s7s7q7u7v7x7vs7{z7{{7v{7u{7s7lx7ku7is7gu7l{7k}7i}7f{7fv7bq7au7_u7_p7]n7_v7Zu7Zn7Xq7Wn7Un7Us7Rs7Pk7Nq7Kn7Ki7Fp7Dl7Ff7Ck7Ak7Af7>i7?d7>_7?\7:_79\79]77\79W7<X7<S7-X70S70P7-N7*P7%H7!M7M7I7H7C7I7F7C7F7 F7I7 I7 K7I7 F7F7F7C7D7K7F7I7H7I7I7A7C7?7?7>727&7%7!7!777777 7 777777777|7q7m 7m 7j7g7c7^6Q6?636+66 6 7 7 7 7 7 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 w6 g6 ]6 Y6 ]6 X6 T6 V6 T6 [6 Y6 T6 S6 L6 J6 J6 I6 G6 E6 =6 86 56 36 36 66 56 56 36 86 56 66 B6 D6 ;6 36 !6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 }5 |5 5 }5 w5 u5 w5 s5 r5 s5 x5 z5 z5 w5 u5 k5 h5 a5 _5 a5 _5 U5 T5 W5 U5 _5 c5z m5x u5s x5s |5m |5m x5k x5k z5i x5c z5_ s5c m5c u5c s5d u5f u5h r5d p5f m5d m5d f5i i5i f5h a5f c5a \5c Y5a W5c T5^ R5\ C5Y >5U <5T @5P @5P <5P ;5R 95P 75O 65J <5E ;5E 95F 75E 45A 75A 45@ 45@ 15< /5; *5% 5# 5 5 5 5 5 5 5 5 5 5 4 4# 4% 4( 4( 4* 4/ 41 46 4; 4< 4> 4@ 4C 4C 4E 4H 4K 4M 4O 4T 4U 4Z 4\ 4_ 4a 4d 4h 4k 4n 4w 4z 4| 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ~4 {4 {4 y4 o4 n4 n4 t4 i4 j4 e4 b4 _4 [4 X4 Q4 Q4 S4 V4 ]4 [4} X4| X4} V4| U4u Q4w G4u F4s F4s D4u B4x A4| :4r #4s #4w (4x (4w 4u 4m 4h 4i 4m 4n 4n 4r 4r 4k 4k 4h 4d 4d 4d 4a 3h 3h 3k 3i 4h 4h 4k 4k 4n 4n 3i 3h 3h 3d 3f 3d 3c 3_ 3_ 3\ 3^ 3Z 3\ 3^ 3a 3d 3h 3i 3k 3k 3m 3k 3i 3_ 3W 3U 3T 3R 3F 3C 3C 3A 37 31 31 34 37 37 3; 3> 3@ 3H 3F ~3E ~3E z3F z3J 3M w3J j3K h3J f3H h3F f3H c3H `3K \3H [3H Y3F Y3F W3H V3F T3H T3K R3C M3@ G3C B3A @3A =3F =3J 63K /3F *3C %3@ $3A 3C "3K "3R 3Z %3d 3k "3m .3n ,3n %3r '3s *3p .3r 33r 83m ;3n >3r =3r >3s C3r E3p G3p B3m @3n C3n H3p M3r T3u R3x Y3| [3 a3 c3 h3 f3 h3 o3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 $4 -4 B4 X4 d4 s4 v4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 "5 #5 %5 #5 %5 (5 *5 5 5 55 5%5,5'-5)651>55F5L\5[h5hm5qm5yh5i5d5d5i5i5m5u5|5555555555555555}5w5x5~w5{w5||5{}5w5|5|5o5e5^5[5[5^5e5j5m5r5{5~55666)61686;6J6c6o6v6y6y6|66 6&6C6W6Z6b6v666666666666666666666666666666666666666 6666677777777!7#7&7+7 -707+7&7%7!7#777777666%7,7179 74737/!7s777777v7`7X7U8Q8K8B*8B 8<%8:)8:68:98=>8=B8<Q8:Q88M87L83J82O83R8:T8:[85[8+e8(8(8+888D8S8K8A8=85808)8&8888 88888888888888888888888888888888888888888888y8o8f8a8O8>868)8887y7m7f7`7e7k7t7u7z77777z7p7b7W7M7?7*7 77 7 777 7776666666z6r6t6o7j7f 7^7\7T(7R!7L7J7O 7Q7Q6M6Q6R6T6V6V6R6M6H6C6968646,6.6.61696@6H6O6T6V6[6^6f6p6u6z6~666666666666666666666666667777%7(707<7?777:757:7?7D7!M7+U73W7NU7[_7nd7a7\7P7N7N7U7S7U7X7Z7f7k7n7q7u79 =!>/>+B+C*B#E&H/H+L+L%O#O/L2O2R9L7M<O9O:L>J>HCHFOFQHOCR:V9Q2Q-W2W+W*Y+[0\>[AW:R>QCRUQXMXHNEN@R@X9a8]3\4Z4\6\6U8\8R;X;U9R;N9F4<3719393>/?.<1214451/3(6(4#6#6&9 GLMSJcBlB`B]@^BXEVENCOENGL                BM9K6R/K.H*H'A%@ 621- *%"%'.(12=;>@BKBMs}qyxtqqnijd_b]`dZV[XXQNIG3:<DKGIUQSF?7:B=?::7::B=AGILILQV]`b]ZXVX]est~|{w~{|{~~{|trrlrvtmhee`^eljloqvt{y{|yw{wvroqmomlghee`XY^eghjmgorrttywry{~|}}zp{m|myk|iydwdyf|c|adpnpsuz|}}~z~wcwhothkmprokkc`^\W[[WTy``cNfJhLjJhOjVpNuQwYwcwtutrpkea^QR[`hkotuwuyw|zwuwwpprtuyyzz|y|z|wjlechhcc[^^YYT`YTT[[SETNI?TY]X[`b^gqrotw|{jgtE~@w:a.a+h)k$k'o)p.t+=@DE)1,,;6681&$$!&$)x q& k= iT k` le n k i f _ ] \ Xt P` FT AG >3 9! < : 50-/-25>DFKIHMMKHFDp?@A(D'F-I#N1N@RJ]MiknipuqsuW'-c + !  x |faH>9'%69T|f v    q n W R \ f 1 H ^    t ` E 1        1 c ` Y Y \ Y V W T V V Q R& Rg Qx J J = 6 1 / *v *i $W  &       | w g X  }^- #    '@> $F"')*,)**},./w*'$%${%e$U*L,D*7469&=I=L=?@I=X@VEeBQEHH-JJM J MMR Q RQ0R5RDOPTQRdHMMQQTajcnaVVVY\`acfhfhokrooejjje\`#[V#VAYTTTVZ[dWx[w[TLpLxOJE>@CC@BGEGL[^cjkjjc`cjttom k! h f e c a \ Y OL L Q Q T M" T& R. Q+ M3 Q? RO WE YL YD ^I \Q [b ^V `Y [r ^v \ `~ ` ar er e a ` ^ [ Y ^ c c V Y V T Q M H GV HK LN R V , D=D=Ycmo(   #Pfk_sv{   CE`ew~wmahy|[J8)%zuuzui}NxXsSiUdf_\]a_k\sba__abbabdkli$g3iOinqpnkllgadbodea[aE] WRRPM8FEC^CT?VAHI/IMKDDINMIpFqA}As<u700+%&% 63;=BHTYeu`a WWO9 1) $ %>^a^ckw~#*-59>?AFFF F!F&N$b5i5n)q-u:z2}?{N{[vdtgsi "'<JZWki@2~dg_DX_` US+"%49=9438;CwG^BE=>9;3M3,3 )/81=MTermaOM4, * ),, l}zxnk P AC -/>D/ "-"0"9"S%l)u.u3f.*)'*.//*$" %'//,,)*`$`{yNE=^0,'";LLX^S[[ggv{o]V8') 3@LOH33     $  ,38694)9>>9)*%..>CCHHCGVTLHT^YammwrwtyuyprVOJ9331/).*'%"jy~ ~ sV[jed_[VUGGFA<50zrkj jfj7~:BNX[diegeltnjgeZUXvUsUsXqVoZodldjbj_iVeQ`K_L_P[PXAXBV?Q0P0P5L+F)D0D+B+=&<<BFG#L$IKLQQ[]`djlqy&7?FGLPSX]]dbgglXPYIVAX<V<JIINGSB]E_JVJ]Eb@b=eBgBlGeEoJ`LbJjLlNbOZO]S_SVTXTNOLTKXPV3T=LFJDESDSBNBV?Z=S;`8_6b1`8Q;N=GBBD8E7G8G3G0I-O2T.V0V3~tpw>@668B>99GOR[\}Y{VxTnJgHaCW3a)aflpu uqklppqqqvz '/3>~HHFC??<:744-+00{4z9{:?DIHucc`\JHECBB@>@>=96631.,.)),,/1434|6|6x8x8u9u;n>p>nCpEwGxH|LrJnLmMnLhMfOaQhThVmWnYkYn\n^panak`h^^a^eZeafchajcmkohtftau^uZwZwYyZyYzZ|ZWdc\_^WW^^cadachhhmprwx~{ywyvtqql`SQVTVXYVXX[]^bgq{~lf_WMD?:0*%  #&++499:AFIIMU\az   uni]ZXUKHFIIKPSPNPUUWRRMIDA::0u2p0p5h0a/a/_2_2\7^9\7ZAYCRDTDPAO9K9H?EDCHEFFFKCODPHOHKMKNJMHPHRESEWJZK]J]HaEgHkFpKxO{MMOPWYWRUWTWWTMKOKKHFJFMPMPOFHEA>6446211/24-62477<O\_fnuw|                                                    H C  C  H  D  C  ?  <  4  0  (  &                   |  t  e  `  X  N  J  8  6  1  0  3  1  5  3  6  5  8  :  =  E  E  D  D  B  E  J  I  J  Q  e  e  j  h  m  r  t  r  q  h  g  t  y  {  {                                           &  +  4  4  9  ?  ?  D  F  H g7p7q7i7k7g7i7i7d7g7}a7vW7pS7kW7fU7aZ7XS7KX7DS7?a7:f75g74d77Z75X70b7(l7*q7&s7%q77777 77777777}77777|7r7[7E7871{7){7x7u7u7k7 i7p7777777x7u7s7v7xu7s{7d7Zz72f7#g7n7q7q77777 7727;7>7@7C7>7474747272717,7/7/8*8(7%77 8888 8  888888 8"828@8K 8K8F8F8K7H7F7A8>8<8@7>7E7H7K7K7M7O7M7O7P7c7m7u7777777777777'717:7?7B 8B8D8D7E7G7J7L8J8E8E$8D$8B 8?=8;J81Y8+\8&c8"m8u888888 888'h8;\8NV8XW8eM8qL8B8@8,8"8888 888 8 888  8 8 8%8+8+8+7*77 77!7/7472757D7A7C7D7H7H7M7M7N7S7Z7Z7_7\7p7s7p7q7s7q7v7777777}7}7}7z7q777777777777777777777777777777 7 77777%7)71767B7B7@7;78747374737/7/7/74787373767/7%77 777777777777777777777777777777b7a7d7f7d7g7g7 :': :%:#:: :999999999999s9j9g9et9bn9Xg9X`9X]9][9dd9jd9le9ge9gj9il9nj9ns9nv9s{9x}9{v9~t9x9}}9~99999999999999999999: ::: :c:_:m:n:p:w::::::::: :::::::::::w:s:p:n:k:f:c:it;mw;dl;Zc;UY;OS;OG;MB;HD;EI;FO;KV;OY;Pb;Yh;\o;cq;k~;m{;kw;ht;<<<<<<<<<<<<<<<<<<<=<<<<<<<<<<<<<<<<<<<@@@@@@@@@@@@@z@u@r@j@kAj AfA[A^AaAhAmArAwA|@@@@@@?????@ @@@+@.@5@:@L@S@ S@X@O@N@J@#I@ ;@0@@@? ? ?? @@ @?????EEFF0F&B&B&C&C&C&E}&Bs&=&8s&3n&3d&6M&6>&3<&1@&,,&),&"%$%*"&,&.&/%&1&41&>9&BF&EP&HA&O*&Q&Q%M%L%M%J%J%L%J%H%H%L%Jt%LV%HD%C?%B7%E&%J%J%G%C%B%=$=$9$6$4$3$1$.$)$ $$$p$\$L$E$`$V$[$p$r$ `$h$ $$$$$$$ $ $$$ $ $$$$ %%%!%8%N%]%b%%%%%%%%%% &&&/&4&P&P&a&f&&&&&&&' '''&&&&&&&X%&%#%S%)%%$$$$$$[$c$6$9$ $%$4$=$G$`$u$C$t>$r$m#j#h$$f.$f$h#h#f#f#e#c#`#^#`#\#^$`E$^m$[p$^B$\$\#W $QH$R$T$Q#O.$H\$Cr$B$@$G$M$L$M %M#%QG%TU%V}%W%^&a&c%k%t%z%%%&&-&1&E&E&/&<&/&2&&&&%%%%%%%%%}%%j%X%ACO+W5_RZTPJEq>b<M<*;>CKPZ_UlnbXbbLK !&(&&Dy~hTBB6 ((1C,I*U'W-d(d'q(z/u/16x667<z9<@AEACEKMOPTTY\ZW\^^_cadccfhvivkxknu||wxzz}}/9BQu  }xrnnpmnrnnkkccfc_^^YUUZZYUTOMMKC>94'% #5Idqtyqo{qlqlGBB82)5KSVgd=)&   !yc^`QLQJHYVac[MOC434.%$   //'")    uxki]l_XK>5(!# ,B+.,. 0 )+,,)&!!   ~fRfhH1  .@HOemmyoc[=*6B84,.@M\fy(-(0)-8DUV]]:+5+(27Feg~d&lx{]dsyxn{!"&")+'(03&A"W'd,c0Z1K8@3R1^0m36:=?DGIIzLiJ}LNJLNXVONNTV[bhmlebhqo&q'y;wNyV~m !Wqx 6Y  eM>,    {ukkPPHCC4+ ~woj^`O60& ssTJ4-~vy{yvlmyqnrVrIo5l-h)h8c:S^[]``bb`[TTLLNO NL GIEI!G$GDD?;856883 3..<,Ao  7W{d:lo9>96 3899@CL9H^@d>h;P;7819;@JLyMlQ_a_cXh_pAripxpoje a(`"aa``\YWQRTQLJLLRYac`a#e+cNYLTSOGLPGFG)GGJMTp[b\s\``cjhjha^\Y VYWRQRQTTqVp>@>>EGJGE@=;989;=>HQTTWWV}RRmQhRTWRWK\7^7e_ek^u`^`^`aeehjkoommuuyurrpuu:w6|N@Ogbh;E.$0$bv75~utrpjmthwe`f8fa^\\W'T"R0Q"O"O TOHMLHGHJ, #_ph ~zzmw\w9t<t*o,kywwty|~u*w1z%"(E>hm =IT;E|1|wurphkrkkjOo@t%u,o  7W{d:lowuz +U]t[[V=< M[ejup[Y."C\o!5byQF~rm[CC5?=&~+2FnqqL5D?sv}o-5IlBLd9b9]#9Z+9Z79]A9V=9S<9V79U09L&9I9B 9=9782828)8&8&8#88 88888!8&8(858<8?8B8I8L9V 9Z 9_9b9b9             $  !        $ "                            L[`beegjlooqssqnqy{~},t;qAlClJiYeZbkbr_uUSSPKD?<=<8<p7h:c8W<E?ABCBJDJL6L%PPQ QLKKN     } v q l n q l l d b a a ] _ i g i i l p u x }            I[$?Y$<Y$<\$7W$5T$7T$7R$5R$4R$4W$/[$/\$*Y$Y$W$R$Q$Q$O$M$M$Q$M$L$J$ G$ H$ L$ M$ M$Q$Q$Q$R$T$R$T$O$Q$M$M$J$J$E$G$J$L$G$J$H$J$G$G$E$B$C$B$;$>$=$9$9$=$@$@$>$;$8$4$4$6$6$9$9$;$=$~9$|8$6$3$1$.$1$.$,$)$)$%$$$'$)$*$.$.$.$1$/$3$6$8$8$8$>$>$>$;$;$>$>$9$8$9$8$;$>$;$9$@$B$C$@$C$ C$!G$%C$&E$*E$-G$0E$2E$5C$9G$:H$?J$CJ$CL$FO$KO$KT$MV$KV$MY$I[$>$@$@$>$9$8$8$;$=$>$**********************++++*++++++++ +"+"++++"+"+#+"+(+-+,+/+1+4+6+6+4+1+1+4+9+<+>+E+O+T+W+Z+\+^+_+Y+M+J+J+M+M+H+J+H+H+C+C+A+>+;+<+7+7+{2+}(+x,+y/+t/+y1+y2+q1+o-+j,+b,+`'+]'+Z#+X%+X*+Z*+_*+`*+V-+U'+Q#+L#+K"+K+L +N +L+L+K+I+=+:+:*8*8+0*3*3*0*.*.*0*0*5*3*3*2*2*0*.*0*0*&*#*#*$*#*!************!*******!**#*$*&*&*$*&*+*-*-*0*3*8*:t*As*Fv*Pv*Vs*[n*eq*vn*{s*{t*s*n*q*s*s*t*}*~****************************************** 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 H2 I2 H2 K2 I2 H2 K2 D2 D2 A2 D2 D2 :2 >2 <2 <2 92 72 <2 <2 72 52 22 22 52 A2 <2 >2 A2 D2 D2 F2 I2 H2 I2 1 1 1 1 1 1 1 1 1 1 1 t1 h1 b1 Y1 S1 L1 G1 G1 J1 X1 y1 1 2 2 2 2 2} 2s 2n 2n 2h 2f 2h 2i 2m 2i 2n 2m 2i 2k {2m 2r 2u 2u 2| 2| 2 2 2 2 2 2_ 2^ 2\ 2T 2O z2P z2R v2h z2h {2d {2f 2f 2c 2d 2_ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 }2 {2 v2 s2 2 2 {2 {2 }2 2 2 2 2 2 2 2 2 2 2 2 2 2 2" 2" 2 2{ 2x !2u !2n 2g 2f 2d 2b 2a 2_ 2_ 2\ 2X 1W 1U 1U 1S 1R 1P 1M 1F 1H 1F 1< 1: 1: 17 14 14 10 10 15 1< 1< 1C 1C 1F 1F 1S 1U 1W 1X 1Z 1_ 1b 1d 1f 1l 1l 2g 1g 2k 2l 2p 2p 2s 2u 2x 2 2} 2                          ) ) % %      z u k d k m x |        $ ' * ' ) w|rk`wVrRnLnGi@dC\ERGMMJWM[O[Z`Zc^o_yfwrw|vkd\XWW__agkq{NNRRPNPPUXWZXZ]_bbdfbf}iylyq{uuqqnlnkigfgfgda_a\ZZXSPPNy}y !&+))003155'&'"&)!   ((%(>@CFF JO MHEC>;;7972,((,/2;>CFEHHEHHCACAA9229479;@>;>A@7z6s4p2h-f1c-_-\,\,_,h(i'c#dkrsxx|| nkca c ^^UMJC<;7;@AEEA<>@AA<></*'-2792% tnljdb[XKA2&       &! $)))$*-4>>CMPY \ PPTYW\_cfmnruzzz           !!$&)#$#$)-23032277FFBFQPGAA:FGSVSQPGFBFLQQLQSXXV]X[]`beeijlilnooqsqtooqsty##%(* 14@!C"A&A'E&E=J@HEJGKIJLFIELHSMSMTFX@jA~HFHFHKJHFEEHFHHA;7969;9<971 9<7 97/!/+2-606<9D7I7S7U;R9W;Z9_9l7q2}64//(%*-4;;447;;74;C@;667>CFHFCAFJJH@;64'   }#i"a"_ g aZ ] P*>(5%-'+(%%%' % ' ,----1111-//,-/-,*,*,-/,*,,(*'(*,/6{9667;;{4t({(w(t%q(m,o-l,g*e(h(e%h"b#["Y#T([(X'T QL"D B?= 6:60.+&&"!            "%#x{ifflpgd|XzKyFyCy9y0wzy z ~%+7Fdi{(( ("N("k('u('(&()(+(0(,(0(6(5)3)8C);T)=H);*);)D(V(Y(X(N(J(J(D(?(=(@(@(;(6(8(8(1(0q(,g(,S(&?()<('0(& ()(''&'''&'+{'1c'3Q'5N'8G'BI'B8'D?'DI'JQ'OO'TI'T6'Y5'Y&'['']"']'Y'V'S'SD'QG'NB'IG'E='E6'G6'G.'E.'@'?';':8'16'$I'!?'?':'5'&'&' ''&&&&&& & & '&  ' "' .' ='@'I'Q'`'o't''v'l'l'{''''''''' w'''m'c'X'J'e'''''''''''''''''' '''( (((          | { w v q v w o q o h bX J B = 8 5 3. +) ' $ "''5;;851=61&                                                                      !u &h 'k ,d .f )m 'm &x ! ) ) . ;z Dd Gf J_ Nd Sc YW `R bK `K ]J ]F gA mE lO cO cT [Z Qm Oh Jh Bx @ : = O O Q O I O Y gs [ Q Q X [ e j mx tw oz e [ S X Q Q J = ; = B N N Q N I I D I I O ^ h m q q l o o q y y v w w t q j b o o m q { y t t ~   } | x u x     4C979D<4-((-&#|     ""    # # ( - - 2 5 : = A Q V ] ] X X e s v                     }     ~ v o j e d Z U }U X }Z uQ nV iS fL fF fB iA i= i5 h- i! r+ s- w$ z( }(                                                                " !    **************************z*t*o*k*h*\*Y*V*C*>*9*6*'*$** ************** * **s*e*i*s********{*t*n*]*[*N*N*Q*Q*B*0*-***)))})v)p)p)q)u)v)u)q)q)i)])X)Z)U~)Py)K|)Fr)Co)>h)5`)5Y)2T)-9)(*)%)!(((((((((*(0(2(4(7(<(:(C(C)F )H)N")S1)\>)bG)gJ)c)y))))))))))))))))))*** *2*7*D*G*L*'N**V*4_*6b*Hj*Ty*`*f*j*m*t*w****************''''''' (( ((( ( (((((((%(&(((*(*(+(/(0(2(2(5(:(<(A(A(9(A(>(>(C(R(R(W(S(U(R(P(P(S(P(_(_(](|W(tH(eD(aF(^R(WU(WZ(VW(CW(C](BZ(>](6](,d(%p()d(1](=\(>W(=P(1A('<(A(H(N(X( W( ]( X(X(i(q(u(u(v(x(((((((((}(p(g(f(f(b(g(g(a(b(a(](b(b(](_(](Z(F(4(*(4(M(U(U( R(K(C(C(:('9(1>(=K(BH(CA(CI(>P(CU(YR(\N(aC(hA(tD(U(\(\(W(K(N(N(D(:(7(9(7(0(+(&(%(&(%(((( ( (( ((((' ((('''''''''''''''''''''''''''''''('''''(((''''''''''''''''('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                                                                4 7 5 0 0 - ( &  & 0 4 **************************z*t*o*k*h*\*Y*V*C*>*9*6*'*$** ************** * **s*e*i*s********{*t*n*]*[*N*N*Q*Q*B*0*-***)))})v)p)p)q)u)v)u)q)q)i)])X)Z)U~)Py)K|)Fr)Co)>h)5`)5Y)2T)-9)(*)%)!(((((((((*(0(2(4(7(<(:(C(C)F )H)N")S1)\>)bG)gJ)c)y))))))))))))))))))*** *2*7*D*G*L*'N**V*4_*6b*Hj*Ty*`*f*j*m*t*w****************g(d(d(a(b(_(\(P(H(I(N(P(Z(Z(U(U(X(](_(a(_(b(d(d(g(i(g(''''''' (( ((( ( (((((((%(&(((*(*(+(/(0(2(2(5(:(<(A(A(9(A(>(>(C(R(R(W(S(U(R(P(P(S(P(_(_(](|W(tH(eD(aF(^R(WU(WZ(VW(CW(C](BZ(>](6](,d(%p()d(1](=\(>W(=P(1A('<(A(H(N(X( W( ]( X(X(i(q(u(u(v(x(((((((((}(p(g(f(f(b(g(g(a(b(a(](b(b(](_(](Z(F(4(*(4(M(U(U( R(K(C(C(:('9(1>(=K(BH(CA(CI(>P(CU(YR(\N(aC(hA(tD(U(\(\(W(K(N(N(D(:(7(9(7(0(+(&(%(&(%(((( ( (( ((((' ((('''''''''''''''''''''''''''''''('''''(((''''''''''''''''('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a#p###########$ $$$$$$"$"$%$.$.$)$'$%$"$$$$ $$$###########~####y#t#j#^#Y#M#G#@#=#>#>#=#=#>#=#9#9#>#;#3#)########### ##### #### # #"#"#%#*#1#3#6#8#=#B#J#Q#V#[#`#a# "'*6; = = @ L( W2 \G fU ml kt fv e~ f a ^ ^ a fs fq ^n \g Y` [] YU OD M7 J2 E( C ; 4/)$                } v q l o v }                ! ' , 0 3 8 = = G J O Q N T [ X Y Y ] c b ^ b ^ ^ c c e l l m j h b ^ [ ] [ Y X V T T S Q L L @ 8 8 6!5 5 1 0 ) $ $                                 !           4C979D<4-((-&#|     ""   VTJE@?;66;#;(8.531..-,+'-&    ~ywttuy||~ #"&,(6.8&568;=? EIVX_blpuplifgfdffb]ZXUX\!Y!Y"W3T+VYWOOLJG@ECGE C@>=/)''%    $'5: @"D"J'N%S'V,^,g/m/o,l*l'v%q'l*c)^']%[$V Q [IND@?:8?@BEEGLLIGGD??3,,').8[{wrVN?;?8.&'+8:6:;60+)&)'"" ""%),=@TYY\`hot|;@B86&'++)+.5:6@@ENNBIDEBELEO]bj{ #/4:CKPC?<72*!!#~yohbc^`YYQLSSzJ~I6~5|:z:zufh"j'h0e5f)e'c'\\!i``i o}"'5=NSY`clry     #"%#   &+/+449(4/444C7H7O>ZD_?U<K5A9;:,<-<4?/F1<(:790-- %  re[XY[]]YTVTOJ@60+tob[]dixttqqnnnl_beggigigbZUVUQLKGB?==A==::8::2.++())()($##!#).0277<==??BADGIIQPIQbgillost}  }xonnq~tonljjnstx0 - 0*?/?=GQD[GfFmIoKwL~QV_`d_dbZ[bgqv{~}voniedilg~gwe|b|ZwSyPwNrPhLfKaL[NMPGLGF=D,?"0"',12612#6$7$<C#HH#MUYhf c^U#K!H)C&C);$6)/!((*'( %%"  #!#&!     !#(()-25835=DINIF:20.++$#$#&)02.(#)&-.0+3-.5737.55-)).&)&#$!-.&         #'zxwuux} @ C C E M P R _ c k n p s n r s u z |  }                          s r n h W Y W T T R O U T J C C @ ; 4 2 2 4 C F > < 9 7 ; @`[_bnt}v~nd`_`&5BB:3.'!I$T&]-]-`.b-o(r-v&w&{){()++.|2{0v3t5m2g0[-T-Y([J#G&3+3}~ }xt6oEsLoVoYxevpszsvvtnlooqoztmtflTiOlOnRoOnBtsoqtt{x~  },&,!wYKA1,'" ysje_VQGD:. $ ## #-28?FDGU]djs} 2@HTZh !")urusurpnuiqhbfbfihnismvnpprrsrp^\WOKKMKE@/,%"#(-2@CEMOMMU^_^8;BLOV{Xv[lY]YN]=`(jr khmW\OL84*/B@GMH LO[WO>!1#% -59940&#8Ya QORCC1/=L`\pkrt h$`+^A[L[sX}QO@8   3>E J [f    jYM=4 nlp|rhhc]VTS O4L>DM=R.Y'ffmt &07ALSgo{-7>R\s $08ITY`j| %7<FM]aiq}}|xwspmcZRJF@@A A94 7'9/6=9G6J2V/V-L,M(Y,^-c/k-t'y#u#|~      # ( 7 3 5 A G I L S ] l l d g t }             } v s g d ` b _ _ ] Z S S P!K D : - ( !          $ ) 0 : B L P Q X [ ] ] ` _ d e q v {          ~ } g ` ` g g Q K F D ? 2 0 2 & !     z z t#o't,p,e%[,G/G1O6E4=7,6'2"27>> < >EHPZamnsux||}lg]XXKF</% yjbYTI6,$ r_WO>2}qneNI=0$ #(.8ILGAGAINKFF|:z<}A|FwKrQmPiQfK^S\P_F^BYBUAW-M#KCA C>77762-(%   #'*/249;>CEEKP!Y+W?aA_PhFkNsNzBx<x7z57AAKG?==B=G<32++#  zpc`&a.T=LG@J8O"OS S]bgm|{sfg\Zdaix}vxsuz  &*/59>}AzK{SuX{]q_ibaiblXzRIHIANSdnv}lxfdffaZRIF?><:0-%!   zusig\Zdaix}vxsuz  &*/59>}AzK{SuX{]q_ibaiblXzRIHIANSdnv}lxfdffaZRIF?><:0-%!   zusi&#(#*#-#/#0#7#:#Fx#Iq#Mb#MP#WC#aA#g9#k5#l*#p%#u&#!#!#&#&## ##"""""""""v"o"b"g"j"g"`"`"zX"q["aO"PO"HI"C;"+5"%:":"3"=";"1"!""&"!""";"T"l"t""""v"j"e"`"]"T"b"h"v""""r"c"Q"@"1"""""""8"8"."%5"2+"?."F8"I@"UI"aI"lS"xQ"Y"Y"b"b"]"I"@"E"V"X"T""""")",",""!!!!!!!!!!'!6!C!M!T!V!V!W!a!h!|!!!!!!!!!!!!!!!!!!!!!!! !|!!!!!0|!5_!=T!AA!?/!8!- - 0 : = = ? K I L Z ] _t `~ _ Z U Q K G B < : 5 B !FT!Dc!=x!2!)!!!!!! !!!!!!!!!!!!!!!!!!!z!p!h!`![!\![!W!T!H!@!;!6!/!*!"!!!!!!!!!!!"""1"5"5"0"""$"5"S"^"`"O"T"b"o"y"""""""""#&#-#&#(#z-#p*#i>#_H#ZH#PU#Nb#Iz#:#7#2#/#0#/#+#*#&#  z(Z3F?9A/K#QSVVZ`dgiglosvysoosqsxyeVNJJV[]cqq^][]^`beb]VS[c~{{|   (;66<<A<979<>A CA@CEKOKP&W/W5\?_D\F^M\WdZhbi]dWiWkUnUpXuWxDu?u7r5n5n0m-k#iihiru&x*u&smiihinsuzz| %&&(++/7?HPXagkqu} $)+)++,066;=DLQV]bb`]]bg{mzovqko_qWyR|MwFv?v7{5{-~& ~tm`TNILD;0.+&"                                   u n f c  h h d ^ c  f %c (\ +U 0U 2a 4i 5u 9u ?s An Ac Ha H^ MU RR XP XT ]U _P bO fH iA n@ n; u6 s* q" n s s s u s v q n k i l i i k p p q n i b ] Z X U U S} S{ Xy Zv Zl \l bj dd fd kb k` nZ u[ zZ Z X [ _ _ V U Q Z V S K B < 5 : < ? B B G K N V [ ` j q v }                               } s l i j j  n q s v n $j $` %_ %U )N ,L /D 1< 8< =: B8 G3 H0 J& O) R. [0 [. [$ \ ^ a f h k p w y |                                        y y | ~  z o e ^ T L E @ 8 6 3 '                # ( - 2 3 3 7 7 5 7 < < B G L N P U Z _ d g j n o s t y y {                                                               # ' ( , - 4 7 ; C H R Y \ W P O R ^ a" c% _* ^3 Z6 Z9 \> ZC ^H _R fW iR iW mY n^ ph i c c d k m n r x }   ~ e V Q C B > , *  " % 4 8 3 1 . , ' * / 4 1 9 9 3 *                   $ / 6 B j y       6 I L V ] e+ g- j7 v< yB K V Q P 8 2                   # ( / 4 : ? C I M P P \ d k p s v z z }              u ^ $\ .a J ` e o r ~ w 6  ; B 9    E O T ` m  t t    & + . 3 3 5 7 3 + ) + . 8 : B D ?7 <D 8D 2: 8G :I 8Q :Q 8l :l =` Dd Ge In D A B B N~ Px Uy S L L I D B B D ? = 5 2 . 3 5 3 5 < ? 7 5} 3 - 0 - . - ) & &    # $ $ & $ $ & $ # !  # #       !  !                                   , / , 2 ; 9 C P k r r                )+1L[%  &575apww|~ztutk ca[[ VECBC$@);%8*4%.),%,'"q_U5+q6         w k m |  |  x  h  \  Y  W  P W W R  M K  J  A < ; 7 1 ' #     #       * 1 4 4 9 9 = 9 =t ;q ;x 8x 8 8 4 3 / ) ' ' % "                                              #  - ,  % '    " % " < > E R Y W k                           z z m n h f p w w } }} } { v u s p n i i g b a U P M K M N M H F ? : 7 7 4 4 - + & % ! ! (  &, &,,=@LT]emr!#%&--+(%&&#&2tHXKGSBSIW?_;_D]J\QbcfblgucvexwsqifaXUUWPMPNNMIFA?CHKKKMPRNK59s7:<><C>7959IKMKMP]fiz'9EE`u~  !52BB<A8<IUX i `UU`"_$d%`.X1N6V4K=A>3=&@BMWo3p8m<p?r?r7z=8:DKF===F??QZLBG0 !7D-,'/19@~@|;|yyurphff\OH=4)"14-(*2TWa$" %*/8>CMW[efmkhfppoortr ppro"m!k$k.m)o)tu y;ey%&!&:UdbUUbssll]kp}}xlCQLE9   ",),/GLOYjutmtu|7L`lqy~##674'1M_mcY^fkpx #(+-}3777<=FIKIKGGDAB?:?j:7(bd]W N PMP_ \i 8/;@Mk|rz ++($$(z.k2^2O84:*5,5*3-$(%-?X[$]*Z,V)S.V>ZEbMbHgJjEeCn4~@GEJBMG6, " $4ff#7@@MPUaachp })?D}B|-x+x0zvxzz|w s rrps*fsfhciar\hWmTuPpHp<x4i,h#YTA@E74'" %CZ_d^smdmnd{UsJj^`Y]PVUNaId?a8W7Y5R(^_ZPYa TPW_h~tptppxmxkuj^hW`W[HTMLHJ;M2J-J#G#C4=7;1@,;-98"43"/*) $$'%$')'%$"    yt x    xgj`VSNLNB:.-30?N~ #'7CHEJF<MO %*138BJVp1:1& +{#%4-2%&92*-&2+~%#zjWeXcXeicnescva}fccfffecehjkmmmjhjkkoomrkomomp}rvpkrktsugydzau_tUuIyCCDNHCHFM]unsqldaa\_ZS<*    |bV[3+:?FSZ`gv}   ,G9VFXZSfGr1xLwTs`rmkifyhtdmdv_~WUUPA@>;6/(#vwghb bg~~r~vwhcgy   Xkls}{qnxxkk]_\AH(  % 9?HZ*z,s,d'D(:,:1D6C6H2W6_@nAFEFHFHEFE 9,2L(#"#('#   Z  d j     } n j o N - ! +  & ( 2     t l+ !   7 3 8 : A 8 B B L S U ] _ ` b l v { y q s l q l ~b qI lK iG eZ `` _s `} d ly oq xg yn x~ x y           } x   {            ~ X K F  : ( -& 7$ < ; ACOUWY^ainukzyaW`pywmaYcfjpztt 8     !!*!6!4!>!J!d!c!n!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!""""";"?"1"."'""" "!!"$"&"!"!!!!!!!!! ! ! !!!!!!!!!!!!!!! !!! !!! ! !!!" ! ! """!!!!!!!$!&!$!'!'!+!.!0!0!5!:!:!8!:!5!3!5!.!0!.!.!+!)!&!&!$!)!,!,!.!3!3!0!0"="E""G!"G"J"L'"I,"G'"E3"E8"I5"J@"L@"NJ"OI"O""S"T"S!X![!]"V^"Yg"Ym"]~"c"e"h"g"l"m"o"q"q"t"t"w"t"y"~"{"{"w"w #{#|##-#+# #-#g#l############$$"$w$$$$$$$$$~$o$t$p$Q$^$\$H$J$C$L$L$V$^$`$h$j$`$c$m$$u$~$~$$$$$$$$$$$$$$$$%$$$%%!%$%7%<%F%n%%%%%~%%t%d%U%g%n%y%%%%%%%%%%%%%%%%% &%%%&&&&6&7&,&&'&1&>&W&^&J&A&J&O&R&W&m&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&{&v&q&j'c'^!']"'`$'c'h'q&{&|&&&&&&&&&&''&'&&&&&&&&&&&''.'Q'e'y'v''''''''''''w'h'{''''t'g'l'o'''''%'+'0':'<':':'F(K4(N2(SA(UW(R_(S}(](](\(Z(X(W(Z(Z(S(N(M)I*)ME)M[)IW)H^)C`)>h)<t)9)7z)9m)9M)5M)2B)01)-8)+")()%(%(%(!(!(((( (( ))') @) Y)!`)\)M)R)1)1)9)G)Q)`)|)))))))))))))))) ) ))))))))))))))))))))))))) *$*0*&*+*L*N*]************+%+4+7+A+T+R+f+i+c+f+s++++++++++++, ,, ,,,++,,,+,&,',",.,:,B,=,@,$,,?,B,;,;,G,L,S,Q,[,V,[,O,X,],[,T,c,b,l,o,r,y,v,~,o,l,X,N,^,`,O,B,',1,),++++,,, ,,,,&,$,@,?,J,~[,c,tl,tY,r[,rc,qg,h`,T.,S&,J,D+@+=+6+5+1+0+++++,+,+$h+$\+!a+W+J+4+*++++  + ***************}*i*b*[*`*7*:*3*-****))))))))))))o)j)Y)W)J)zG)s')p")n )m )m1)rG)wQ)xc)h))~)y)|))))))**+*:*F*S*V*D*G*j*x****************++++"+ +'+6+;+P+T+P+T+9+4+(++********** +1+@+F+R+\+f+c+f+p++++++w+p+z+++++,,,,,",1,L,O,L,@,1,:,?,V,T,X,Q,T,xB,w1,s,,h8,dB,^b,\,^,_l,dG,i:,u3,xI,Y,X,`,Y,],e,j,y,,,y,q,Y,T,y,,,,,->-]----.W.k.|.t.a.\.R.H.;.=.C.=.;.@.H.z.....}.z.w/x/z /}...../&/}G/j//////|/x/w/r/n0i/0h;0kO0kZ0h|0_0_0Z0U0M0J1C1A1A,1;D1<Q1C]17r12r1-1"11 111111111 1'1<1F1H1H1H1C1C19191717122"+2+252>2 A2_2 v2 f2"k22 2222 2p2Z2R2U2Z2n2v2}2{2222222222222222223333"3 3$3.3B3a3y3w333~33333333333 334)4_444444444444444444445-595P5T5Y5W5^5h5r5x55555555555555555555555555555555555555555555 6655555555566666"6$6606D6Q6X6[6X6b6o6r6y6666666666 66666m66 6'61616-6164676762w6161q62e6/g6-o6-m61^67T6A]6Jm6Jr6R6R6P6O6P6R6U6U7Y 7Z7Z7d7n6p6w6z6u77mM7ik7f7f7d7d8a.8aM8_h8\8Y8R8M9H<9C]9AS9C79A(9C8A8H8J8H8K8H8;z86t8<h8>\8;W8;T8;J86R81h81u8287878;8> 9@e99_9#39 999#9#9-)9/91!91919,9'9*9/9/8284878986868(8"8#8"888888888888 8 8888888888 9 9!9+9(G9@y9A9@9>:;:6F:1i:,|::::: |: s:m:Y:P:T:R:H: C: >:#: (:7:2:%:":4:>:_:x:::::::::::::::::::::::::::::::::::: ;);;;E;I;m;m;g;X;=;?;c;v;;;;;;;;;;;<<9<?<R<<<<<<<'=B===5>_>j>>t>o>l>e{>dy>e`>bo>bx>[q>Xs>Sg>N`>Gi>Ge>Dl>=e>Ds>:><>=>:>5>8>8>5>3>3>.>#>> >>>>>? ?>>>>>>>>>????????  ?????? ?$(?&1?)6?(@?)H?.J?2\?3Y?5\?5f?:i?7s?8?5?5?<?8?:?A@?@<@36@0E@.[@.@-@(@(A(A&A$/A-MA?}ABA<A<A5A+AAA A AABB)B/B1B>BRBBBBBBBBBBBBBBBBBBBB BBB!B#B)B0B0B.B0yB2tB7wB=B?BBBDBLBQB_BbBdBeBbB_BX)CV?CUbCVyCNCKCICFCBCBCBCFCICKCPCNCLCNCQCSCLCKCGCLCICLCLDK%DIaDLDKkDIkDIzDIDLDNDLDLDDDBD?D7 E3'E0QE+hE+`E)eE)mE&~E#EE#E#E$E#EEEEEEEEEEEEF FKF?F%F&F-F/F7FPFǹڹݹH?-/MR_u}pq{}UR˺źú˺պ1Jp|ommca^`^YO~OQY\VVTRRJHLH6*%%"  ǻػ޻ػԻֻ޻ֻٻݻ   !     "%**,.1/ӻ1ϻ3ݻ4޻1ʻ3ǻ4ʻ646!9(684:17/8/=4A1_1U3N/N.Z,V,N)I'I$K$G KGGV] V$X$P'V*V,`'d%i"%$%)/g1e1g.,.)'˼*ռ'ؼ'%    *@O^n_aWakxzwZad_cc^T@>,   '-2/# ɼ׼ͼɼļ{}{}{}{zzxqqlnülü\\\ZXWUXqWgUdRbNXN[UoNMIyHyHoCdCgDvCy>q:j:q>x?<:972+*(&**/2~4}4s2q2j/e/t-x*v!v olZ A%B-Q-L4P7I:K:F>B2I/G(=#2#(*7?ACCۻNRUWNNN|NtRpSzUzUoXk\e_RfHkRuVHLGG6.պƺdSA?DCHID:794*!!*25<A?DCFFC?>97*  չйڹڹιǹ¹ɹ߹۹uιs¹kPFfE?ECEFEAEAEDEDECEFEFrEHbEKcEN[ENTERVERNESJEUTE\OE]=Ef5ElEfDlDlDiDiDgDgDdDdDdEgEiEg!Ed$Eb+E\:EX=EU:ESBER@EN6EM'EN$EPEUEUEW EWDRDPDUD\D\D_DZDWDSDNDNDMDK|DMsDKkDMaDDEDD>DD#DC,DC9DCEDIaDIxDKDKDNDZDWDSDRDMDHDAD?D5D9D>D>DDDDD>E9 E<E?EF"EH3ENEEKTEAQE7IE+NEgEvEEEEEEE#E*E+E(E-EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFF FFF FF(F~(F{#Fv%FvFmFjFjEgEbEYETETE[EhEoEqlErBErEEv?E|EEDEEELEOENEQEEE=E?E~8E1E3E'E'E"E$E)E!E~E{Ev&Er)Er5Eq?EmEjElEmEmEhDgDgD`DXDODID?zDDDBzDIwD=uD:mD1JD0ED1HD3FD3>D64D36D,AD+>D'4D$%D&D'D)D$D& D$D& D& D'C'D&C"C"DCCCCCCCCC C CCCCCCCCCxCCCCsC}CsCqCgCSCUC[CPCICNCVCZC[C`C`CVCLCFC?C2CAAA2A5A5A+ApAa@^@_@h@m@r@|@@@@@@@@@A@@@@@@@@@@@@@@@@@@}@z@x@}@@@}@|y@}t@xt@wy@x{@x@s@n@m@_t@^l@Zb@^]@a^@iY@sL@xE@|=@w3@x0@u0@r5@p3@n.@m!@h@a"@c@f@h@p$@n@s@s@r@s@u?u?u?s?r?n?m?m?n?d?f?a?^?J?F?F?E?C?>?7?2?%?%?*?(?*?'?#? ? ??????????????? ???? ????????|?p?U?A?A?K?R?a?s?p?i?i?m?x?w?z?????????????~?t?o?g?g?Z?I?8?.?)?&?)?+?)?)?&????? ?????????????|?????? ????? ? ???? ? |?w?p?p?x??|?x?s?^?R?K?M?J?A?@?6?/?,?,?6?7?O>R>R>O>M>L>=>1>,>$~>~>v> q>o>s>n>x>s>v>}>}>y>q>n>l>n>l>q>t>y>x>}>}>x>}>}>>>}>y>i>j>n>i>d>Z>L>B>8>>>>====================================={=z={=v=s=q=n=k=k=g=f=b=\=]=\=W=S=I=F=<=9=4=/=+=+=%=#====== w=m=j=c=O=B=>=6=1=;=;=6=6=3=/=)= $=$= = =7"=I"=l= ==}===== =<<<<<<<<<<<<<<<<<<< <<<< <%<*</<6<;<@<E<L<Q<V<\<a<f<j<t<<<<<<<<<<<#<2<5=3=-<(<.<2=5=?=F$=L%=N'=K1=G3=L8=P6=oR=yR=M=E=;=G=J=R=[=e=u===================>&>+>3>.>D>L>N>Z>Z>d>g>e>j>j>v>#>,>/>9>C>J>T>Y>a>u?w?w?z#?|,?6?A?@?@?;?@?T?\?p?z????????????????????????? @ @@@ @@?? ?@@"@'@,@6@;@B@G@L@S@Y'@]8@b;@eD@gJ@gX@bl@b|@^@X@X@`@e|@g@h@e@c@e@j@lw@ol@rV@|J@5@|+@y @t@v?q?o?l?g?e?c?`?^?[?Y?V?V?T?L?D?B???:?6?5?1?0?$?"?????????? ???????????????}?p?k?d?d? ^? ^?P?M?K?A?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>y>x>j>l>v>y>~>y>{>v>x>q>g>o>q>y>>x>t>{>{>}>>>>>>> >>>>>!>&>)>+>.>0>3>3>,>,>&}>"x>o>g>d>_>_>Q>L>L>&Q>&N>!I>'=>)B>,A>00>,>) >& >'="=&=&==="=$=!y=y=p=c=V=R= G= 6=/=3=/=3=*==<<<<<<<<<<<<<<<<<<<x<u]<hW<dX<aP<dS<fP<d?<T?<FM<FF<M><C5<@/<;2<95<9D<<K<@K<AN<>P<;N<6S<7Z<>R<CR<Aa<Cg<<s<<{<9}<<<><4<1<(<%<"<< << u<q<u<n<i< \<"U< I<H<K<F<C<7<+<<<<" <% <'< ;";%;";;;;;;;;;;;;; ;;;;; t; l;l;h;5;);;;;; ;; ;;!;$;:;?;D;L;S;e; q; |;#|;'q;*m;(h;'^;*S;*B;,?;/D;2?;7?;<8;>,;C);E$;H!;H;E;E;F;E:C:>:<:;:9:9:;:<:>:@:<:@:C:E:C:F:H:J:J:M:M:R:Yr:WY:YW:WT:UW:UU:PF:M>:K7:J7:F>:C<:AF:>J:;J:>@:91:;/:;*:<%:@#:A(:C%:<:9:2:1:4':/':2,:4,:21:,,:%/:#*:%':( :%:#:':%:'9'9*9-9/9296929/9*9(9'9*9*9(9%9#9,9,}91l9/_91Q96K9;=99792(9'(9 +9(9 9 99"9"8'8-8/96948682868786828686828282828484~828181j82m84f84`82\86E86684*8-8-8172717/7#77 v7g7Z7R757*776666666666x6t6q6j6d|6dt6bq6_]6SS6QS6SI6QG6KI6FB6I:6F:6D36B'67"656)6(6$6#665556 5 5 55555555555555555555555z5r5n5k5d5\5W5T5K5C5>525-5'555 554u4o4h4`4^4`4\4[4R5Q5Q 5T*5V65T<5RU5Y^5\c5Wa5Vf5Ym5Yr5Tr5Rx5Lr5Hs5Gr5Cs5Br5Cm5Bi5;m58r54k51r5.k5'r5 m5m5f5a5d5n5r5u5 5 555 555%5*5.5.535456585656565858565/5*5'5%5$5 5 5%5'5$555555555 55555555555555555556 6"6"6!6 "6!6 6 6 65656666&6.6 ,6,6366666"56+6)16,06/363066)6816/L6*m6168666/6.6,6*6$6 66666 666666677 7 777 7 7+727>777>7>7?7:7979777-7&7-7*7#77 7776677 7777&7/7(7/707470707*7!7x!7s%7q+7l07k57f<7fI7_K7_I7aF7Z77X97R27K?7H>7D07?*79&72 7/ 707/7* 7 77677 77 7 6 666666666666666666666666666666|6{6t6q6h6]6L6@6@6?6?686865636.6,6,6+6'6$6$6!6!6!6"6&6"6"666 666666666666t6h6b6`6]6Q6Q6J6|I6z@6n56d&6_!6T6O6H6A67 6- 6(5%5555555555555r5m5d5a5W5W5U5P5M5}K5~E5{A5y>5vA5t;5s95n65j75g45d25]'5] 5[5X5S5P5K 5G5B5A4<43404.4+4+4(4+4+4(4&4$444444444444 444444444444{4x4v4j4d4[4N4K4=4<48404-4)4(4$444 443333333333333333333333333333333333333333333333333333333333333~3y3w3t3y3w3u3r3o3o3m3r3p3e3e3c3`3^3^3W3R3R3V3T3[3Q3O3Q3L3H3E3E3B3B3C3C3@3=3@393836363.3)3%333%3'3 3333333 3 33333333333 3 3 3333332222233333.31383936363B3B3>3G3G3L3J3@3>3B3 @3B3@3B3@3(E3-C33E35J38H3=G3DE3IC3NB3S@3X>3]=3d;3i93n83t63v33{13~,3'313333393B3G3M3[3\3m3m3k3m3o3w333333333333333333344344444#4!4$4$4!4$4$4&4#4$4&4(4+4.4042474<484?4 B4D4 G4I4I4N4L4P4K4L4P4 Q4"N4#I4'I4-N41N46V4;Z4E]4JZ4T_4Y_4de4dl4hn4in4mj4pl4ug4|j4o4x444444444444444444444q4j4]4Z4V4L4?4:404)4(4$444 433333333333333333~3p3j3f3c3a3V3G3=363*3%3'3 3 3 3 33333333333323 3 3322222$2'2,202325282?2@2?2B2J2N2N2L2G2G2J}2Jx2Gn2Ii2Od2Q\2SZ2TU2SK2VK2YP2]N2^H2bC2]>2^22]%2Y!2[2Y2Y 2^2`1^1^1c1g1o1t1w111111111111111111 1 1 111111 1 111111!1%{1({1+1/~1214~15{17w1Fl1Ig1Pc1Sg1Sl1]o1ag1dX1gY1lc1nX1vY1S1L1N1J1?1=1:16161?1;1B1B1=151+1+1'1111111 11100000000000000|0r0n0d0R0J0F0A0C0>0<090'00 0////////////v/e/[/Q/K/G/7/3/3/(///........./ /(/{$/q/n!/g-/\./W+/U&/N(/H!/F/D/D/?/?/9//./.*.#..... ..................................t.`.W.~M.vG.v>.r=.m/.g).e$.`.[.V .X.b-c-e-l-w--{-f-W-~<-|5-~+-~--,,,,,,,,,,{,r,],T,Q,t8,g.,`,,^",Y,V ,V,Y+Y+O+L+L+L+G+G+I+Ez+Bn+6W+3F+3>+8'+= +6+5 +6+8*6*;*;*=*@*B*E*I*E*G*G*Eg*OU*YK*[?*^7*b3*g3*g-*h+*o.*y+*.*&*!***)))))))))))y)o)o)f)Y)T)C)') ))))(((((((((((((k(\(X(U(N(<(4(&(( (('''''''''''''' ' ''''''''' '!'%~'2V'4L'5G'5)'7 ':'D&F&K&P&W&\&_&\&S&?&:&4i&&a& c&_&\&T&M& A&E&@&<&7&<&C&E&J&E&O&Y&c&h&i&d&d&R&C&;&2& &&| &y&r&m&m&q%t%v%~%%{%{%%%~%%%}%v%o%g%X%~Q%F%$%%% %$$$$$$$$$$$$$w$j$^$V$V$Q$T$R$@$=$6$3$)$$$$$$$############s#q#n#i#\#U#K#A#-#*#*#&####~#y#v#t#o #l #h#e"^"c"c"b"]"Y"V"S"S"Y"["Y"S"S"Q"O"Q"V"T"T"Sv"Im"Bq"?q";e"6^"5O"5D"18"11"..",'"."5":"="="="B!B!G!L!Q!V!Y!]!]!b!g!j!l!t!t!t!t!o!l!h!b!`!^!Y!X!S!X!X!T!V![![!]![z!^r!`k!^a!]_!]Y!`U!^P!cJ!jH!oF!w@!|>!~6!2!2!6!6!-!%! !!!!!                        x t n e Z Q P N A 8 . $       ~pmkpookf[TTJGGHC>96.*"  & +27>CIPW]agpu{zvqkaZRH<5-&   %')))%',/6;>BC E BB=;999;61/,*'%"$ vy{rl c ]SOE=:6,+)    ""s%k%\ UT^ahhhWRHFJ E"E$M$P%R'H*>/@1<8;=2='9'4-1(,1*4%1'*,'/1 ,'$$$)**$$*.36;88>EJRV[^afmrzxoe]XPLD80$~ywwyytzotmkkcmWoOoLjGh=f3f'eca``^\YWV^^YTWWYYRQRQMzEv@{9z9p@gB_>U;K@K@A=9=09-9#8884684431/.,,,*%""$$~wrqmebhbYQEB:;=3+.)$       $.6@DEE?6.${unkggbaa]ZSPPNwIuDzCDFDA><52-****#     xppmif_TJA@<2*(}yyogd_XVLDB:2)))!~|trmka`[[`aYWMJGBEEGLE81,),'%    !!!#*}-v7u9s9q4l4b/]/U/M0A+<&7!<4+!+!&#%%#   #%-/ 00/005992/(%%+--((#  {tmc[SNIGDLNE=3+&    ~|wvww{{{{|zw}zwm|\{TtPoOhOcO]KXJQHJFEFBO=Y:^1a+\$U!MF@> ;72/,*2<CPT\cfhfni^chkhmw|umd _ YRK!F$A!><< AEEA<97441/ *(%#! '.5::;B@=3351)00. + ' & "      zpmkfh~d^^\^}Y}UyOvKvFqCq@i>g@d<]>XEVHXKU^QaGfDnFpFs8x3($#   #&#yra^\YRMGB=9664/*'" "z$w*u.r4n8m=h>h;c;^@ZC\CYHTLTMMRFWEYE[CW>V6T2V/[-\'^"cafhf jhfkkkkottwz~~yxqd]XPIFA82-& ~wpmf\\WQMLC=8/.)$ |1|11111111111111222  22%272?2I2U2k2k2q2q2v2222{2v2o2g2]2X2T2S2N2B28202$222222222 2 2 2 2 2 2 2 2 2 2 2 2 {2 v2 s2 p2 q2 p2 k2 g2 g2 d2 d2 a2 b2 ]2 \2 Z2 X2 P2 P2 F2 F2 D2 C2 A2 ?2 >2 >2 <2 92 A2 <2 :2 22 /2 02 &2 &2 02 22 02 *2 -2 +2 -2 -2 /2 -2 *2 (2 *2 2 2 #2 !2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1} 1} 1w 1w 1s 1s 1x 1| 1} 1} 1| 1| 1} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1} 1z 1u 1u 1r 1u 1 1 1 1| 1| 1x 1u ~1s 1s |1r |1p w1f t1f q1d l1i l1k h1n h1r l1s h1w h1x g1z h1z m1} l1 m1 m1 g1} e1 b1} `1 ^1 ]1 [1 X1 T1 V1 X1 X1 T1 S1 V1 [1 [1 ]1 ^1 e1 h1 c1 b1 ^1 `1 e1 e1 l1 m1 m1 v1 r1 j1 b1 ^1 ]1 `1 e1 h1 m1 m1 o1 w1 w1 {1 r1 q1 r1 r1 m1 o1 l1 j1 h1 ^1 ]1 b1 `1 b1 `1 `1 c1 `1 ]1 ]1 [1 X1 X1 V1 [1 Y1 ^1 ]1 V1 X1 V1 S1 T1 Q1 T1 X1 [1 [1 Y1 ]1 `1 `1 c1 g1 b1 ]1 ^1 ]1 ]1 X1 X1 ^1 [1 ^1 ^1 b1 e1 b1 j1 m1 v1 y1 |1 {1 j1 g1 g1 y1 {1 |1 ~1 1 1 1~11111y1v1 v1 w1111111|1w1y1v1t1l1j1l1!t1$r1$o1&m1.r1.m10l13r15q15l18j18l1:j1?v1?q1;l1=h1Bh1El1Eg1Ig1Jg1Lm1Ol1Qj1Sl1Th1Xj1[g1Xe1Xc1Vc1Qb1O^1V^1Y[1VY1VV1QY1NY1N[1JV1OV1TS1TT1XS1TO1SI1VI1VN1YL1YJ1[L1[G1XG1VE1]D1`I1^J1]L1`L1`O1bL1eN1hJ1hL1jO1gO1gT1oT1qV1hX1eV1cX1`T1^T1`X1^[1cY1eY1c]1e`1g^1jb1lb1o[1q[1q]1q^1rY1t]1r`1t^1tc1re1oc1oe1mh1je1ch1jj1ol1jr1oo1th1tj1qm1qr1rq1tm1wm1yj1yl1vq1qv1lw1oy1q|1r~1q1m1q1q1m1h1l1j1c1`1]1[1`1b1c1b1e1g1l1q1r1r1r1m1l1t1t1v1v1w1y1~1y1w1y1w1y1{1|1111111~1|1~1{1{11|1{1~1111111111~111{1w1w1{1y1y1v1r1o1m1t1y1{1{11|1~1|1|1{1y1r1c1`1^1Q1N1G1I1G1E1B1B1=1=1:161513151616101'1$1$1111 1111111111111111111 1 1110000010000111 1111110001000000000000000000000000000000000000000000000000000 0 00000000000000000111 11111 1 1&1#0!0 00!00!000 0#0&0(0!0&0&0(0004050:0<0C0D0H0K0M0N0R0R0S0Z1\0_0a0a0b1d0d0g0g0i0l0q0s1v1p0u0u0v0v0u0s0x0x0{0{00}0}000000000{0{0x0z00000000000000000000000000000000000000011 1 111111111!1&1,10111:161;1?1?1B1B1 E1 D1J1T1X1[1]1'e1)j1%j1'm1/j16o1=r1Bq1Ct1Gv1G{1J1L|1M~1J1M1M1R1T1Q1M1H1G1E1C1B1@1>1918191818161613131/1,1.1,1/1/111.112.2,2.2*2*2, 2) 2.2>2E2J2Q 2T 2`2h2k!2k*2h/2h22h92j<2k?2jD2mI2j]2p_2rg2uk2up2~z2x2v2z2v2{2{2z2{22222222222222222222222222222222222222222222333 3 3 3333222222z2z2~2y2r2p2o2o2m2m2h2h2f2e2c2\2^2[2T2Q2O2G2E2;242/2)2 2222222222222z2u2n2b2X2A2?2D2A2<242&2!2 22222 222111111111111}1{1x1n1Z1Z1\1a1f1g1f1b1d1a1_1a1_1]1]1Z1U1R1M1M1P1I1K1H1H1:191915141/2* 2#2 2#2%2%22  22221111111111111|1|15O"0S"&S"L"D"B"E"N"O" [" ^"^"h"h"b"^"]"h"t""""""""""""""""""#"# #######&#/#4#F#K#K#U#W#\#|Z#w]#r_#dk#cn#\q#Z{#W#P#M#J#C#C#A#;#*#'######}#u#k#k#n####### $J$a$f$o$y$$$$t$s$t$d$d$]$S$Q%Q%I%KD%ID%B=%3<%2=%.P%_%q%v%v%~%%%%%%&&&H&p&&&&&&'''"')'.'5'='D'J'Q'Y'`'h'o'v'|''''''''''''|'w't'r (h>(^X(T(T(V(Y(Y(B(9(M)M)Q%)\>)h[)pz)z)))))* *&*I*Q*j**********++ +*+1+<+>+E+\+s+}+++++++&+.+7+B+N+P+S+[+i+t+++++++,,$,~;,T,{`,r,y,,,,,,,,,,-2->-U-]-d-l-g-l-x------ ---'-,-2-4-2-,--.2 .6.9.<$.>*.C9.@G.AW.>^.>e.Af.Em.Ep.Ar.Cz.9.;.4.7.6.2.4.;.;.7.;.E.P.U.Z._.h.x.z.......f.M.C.;.4...)......-----{-i-W-M-&--?->-\-U-X-\-$_-)b-.f-3i-6k-;n-@q-Eu-Jx-N{-S-X-]-`-e-j-o-t-w-l-e-c-b-X.V .[.`.e$.g).m/.r=.v>.vG.~M.W.`.t.................................. .....#.*././.9/?/?/D/D/F/H!/N(/U&/W+/\./g-/n!/q/{$/(/ //.........//(/3/3/7/G/K/Q/[/e/v///////////// 00'090<0>0C0A0F0J0R0d0n0r0|00000000000000011 1111111'1+1+151=1B1B1;1?16161:1=1?1J1N1L1S1vY1nX1lc1gY1dX1ag1]o1Sl1Sg1Pc1Ig1Fl17w15{14~121/~1+1({1%{1!111111 1 111111 1 1 111111111111111111w1t1o1g1c1^1^1`1^2Y 2Y2[2Y!2]%2^22]>2bC2^H2]N2YP2VK2SK2TU2SZ2Q\2Od2Ii2Gn2Jx2J}2G2G2L2N2N2J2B2?2@2?282523202,2'2$2222223 3 33233333333333 3 3 3 3'3%3*363=3G3V3a3c3f3j3p3~333333333333333333 444$4(4)404:4?4L4V4Z4]4j4q444444444444444444444x4o4|j4ug4pl4mj4in4hn4dl4de4Y_4T_4JZ4E]4;Z46V41N4-N4'I4#I4"N4 Q4P4L4K4P4L4N4I4I4 G4D4 B4?484<4742404.4+4(4&4$4#4&4$4$4!4$4$4!4#444444344333333333333333333w3o3m3k3m3m3\3[3M3G3B393333313'3~,3{13v33t63n83i93d;3]=3X>3S@3NB3IC3DE3=G38H35J33E3-C3(E3@3B3@3B3 @3B3>3@3J3L3G3G3>3B3B36363938313.3333332222233333 3 3 33332222222222222222222222222222222222222222222{2z2{2{2v2z2v2x2~z2up2uk2rg2p_2j]2mI2jD2k?2j<2h92h22h/2k*2k!2h2`2T 2Q 2J2E2>2.2) 2, 2*2*2.2,2.212.111/1/1,1.1,1/1313161618181918191>1@1B1C1E1G1H1M1Q1T1R1M1M1J1M~1L|1J1G{1Gv1Ct1Bq1=r16o1/j1'm1%j1)j1'e1]1[1X1T1J1 D1 E1B1B1?1?1;161:11101,1&1!111111111 1 11100000000000000000000000000000}0x0n0k0i0f0R0M0M0H0H0E0C0<0;06040604020,0(0%0#0'0"0 0"0%0'0"0"0}000000 0{ 0z 0z0z0z/s/s/p/q/l/k/l/i/f/f/_/\/\/W/P/M/K/F/C/C/?/A/</?/?/:/7/7/9/>/?/>/</>/</:/7/5~/4/2////~/(t/*g/(d/&b/([/&Z/%[/ V/!Q/%P/&Q/+P/-P/2S/2L/4N/7Q/7V/5[/9`/9e/:g/<d/Ai/>n/>q/D/H/N/M/N~/R/S/U/W/Z/]/a/a/d/f/d/b/d/b/a/ay/bt/po/pg/nb/p`/pZ/q[/xd/xn/{s/}s/zy/}y/{/v/q/t/s/{//////////////////////////////////{/x/t/q/o/j/g/`/_/]/V/P/L/L/D/A/A/=/=/D/G/B/=/3/0/$/#////////// //..........v.x.u.s.u.q.u.i.f.d.].Z.W.S.It.Hp.Ny.Mp.Np.No.Ro.Nk.Kc.K^.N\.N[.NT.MM.HJ.?8.C6.C1.H/.N).R.P .K.H-F-C->-:-:-7-(-----....... .$.*.8.;.C.O.R.V.m.k.o.t.w..~.....y.u.y.~...........././ ///!/)/3/7/=/=/D/F/S/Q/Q/S/Z/g/i/g/i/o/j/j/q/t/y/}////~////////////////////////////////////////~///~/{/w/t/v/v/l/j/l/m/l/j/h/e/e/c/b/c/h/j/m/t/t/m/o/l/j/o/r/q/t/r/q/m/m/h/c/b/c/c/b/Y/]~/[}/]{/[y/]t/^v/^{/c/c/c{/`v/bt/cq/^s/[q/[j/Xi/Vl/Xe/TX/NL/LI/OG/JG/J?/L=/N=/Q3/N+/J+/I)/E+/E./J2/L5/I8/G /; /9 /4 /1 /- /% /% /# / / / / #/ &/ +/ )/ +/ )/ ./ 0/ 0/ 2/ 2/ 3/ 7/ :/ 8/ :/ :/ 5/ 7/ 3/ 3/ A/ L/ N/ Q/ V/ X/ `/ l/ n/ l/ n/ i/ j/ j/ o/ o/ t/ y/ /x /l /e /` /` /d /g ~/j x/n t/o q/s `/o U/s L/o B/q ?/t ?/v .9 .5 .4 .* .& .- .- .2 .4 .7 .0 .0 .( .% .! .% .& .+ .- .* .( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z. z. . . z. p. o. t. r. w. y. w. u. o. m. p. w. z. |. |. z. |. ~. z. y. t. r. u. y. z. r. o. j. h. e. ^. ^. a. ^. \. \. [. W. [. Y. Q. V. W. ^. `. e. `. \. [. Y. W. W. [. Y. V. O. O. R. C. C. B. @. B. B. >. ;. 4. 4. 1. /. .. *. *. .. *. ,. ). $. ". . . . . . . . . . . . . . . . . . . . . . . . . . . .y $.y .o .t .t .r .o .j .c .b .[ .X .V -[ -b .b .b -c .e .g -c -c -e -c -c -^ -[ -X -Q -J -D -N -T -V -X -[ -Y -X -V -S -I -L -G -G -J -J -G -D -? -; -: -= -@ -= -; -: -8 -5 -3 -; -= -= -: -= -= -: -: -: -= -? -8 -6 -3 -0 -+ -) -& - -! - -! -& -! - - - - - - - - - - - - - - - - - - - - - - - - ----}-s-n-l-l-k-i-d-f-k-b-]-X-X-Z-S-W-U-R-K-K-I-A-<-:-:->-<-4-/-5-0-/-&-#-!-#-#- -----------%-(-&-!- -!-#-#-(-#-%-%-------- --- - ---,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,,,,,,,{,|,v,o,l,h,e,g,e,b,b,`,b,`,`,b,c,`,`,`,b,^,^,^,[,X, Y, Y, e, l, w, v, j, c, `, ^, [, X, S, L, L, N, S,V,T,N,G,B,:,?,I,O,V,Q,O,J,S,X,],],Y,`,^,`,],^,[,[,Y,X,S,O,I,G,?,;,5,5,;,=,B,D,I,J,B,@,=,=,:,8,8,6,0,1,.,",$,&,",,,,,,, , ,,,,++++++++++++|+z+|+}+++++++++++++++|+x+w+x+z+|+|++}++++|+u+s+r+r+h+k+n+k+i+h+i+h+h+k+k+p+m+i+i+h+_w+_u+ax+fz+hr+ip+hk+fm+fr+ck+cf+cd+dh+fh+dd+hc+i_+h^+hZ+d^+a\+aZ+a\+c^+da+cc+c_+_\+^U+\T+ZO+\H+W>+M9+T9+W;+T7+W7+\C+_E+^C+^>+Y6+T6+M7+K7+M2+J2+J-+J(+F#+M#+O"+P#+P'+O'+R(+R%+U(+U'+U%+T%+R"+\#+Z"+Z +^+a+_+U +U+T+U+T+R+P+K"+E +@+;+6+9 +; +< +; +6 +2 +2+1 +-+' +'+%+#+%+#+ + +++"+"++++++++++++ + "+ #+ '+ (+-+,+ ++++++ + +++********************* ** ********** *"*#*'*%*"* *#* *"*'*,*/*/*2*7*7*A*E*F*E*E*F*J*W*W*U*W*W*Y*Y*\*^*a*c*d*c*f*c*c*k*i*n*m*f*d*d*c*f*h*r*p*m*m*r*u*s*w*z*}**z*x*x*u*u*s*n*k*h*d*c*f*a*a*c*_*_*d*a*^*^*_*\*\*_*d*d*h*i*p*n*p*p*r*p*r*u*r*p*r*w*x*|*}**********~*****z**}*}~*|~*|*x*w*s*s*r*s~*ry*py*sy*ux*wy*u{*x{*wy*wx*xv*}y*}v*zt*}q*}t*o*s*t*q*q*o*o*n*o*}l*l*j*i*i*o*l*j*g*i*i*g*e*d*d*`*`*_*]*`*_*]*]*]*`*_*b*b*b*}b*}_*|b*z`*xb*wb*zd*|e*xd*wd*zg*xi*wi*wg*sg*sd*re*rd*n`*p`*pb*r`*p`*m_*m]*m_*kX*pV*pZ*nZ*n[*r]*rZ*w_*uZ*xZ*wX*xS*zQ*|Q*zP*xP*wN*sP*rN*rP*nL*nP*kL*fD*nK*rF*sG*sF*sD*pD*mA*n=*m=*m<*k8*m7*k7*i7*k.*i7*i+*n)*p&*u#*w*r*r*n*p)s)u)u)p)r)x)})z))))))))))))))))))))))))))))))))))))))))))))))|)p)j)f)`)[)R)M) L) =) ;) 8) 6) 1) ,) ')! ')" %) ) ) ) ) ) ) ) ( ( ( (((((((((((((((((((}(z(x(u(v(q(i(g(g(a(](Z(X(N(K(M(C(C(?(:(5(/(&((((((((((''(''''''''''''''''''''''''''''''''|'z'u's'p'n'h'd'a'T'R'P'M'J'J'C'A'C'F'H'F'K'M'K'F'F'M'R'T'Z'^'d'k'm's'z''|v'xh'ug'sc'n`'hY'fT'dS'aL'aI'cD'a@'i;'i6'i3'd.'a&'_&'a"'d'f'n's'u!'x'z' ' '' ' ''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & & & & & & & & & & & & & & & & &! && &, &, &1 &3 &: &; &@ &B &I &L &O &X &[ &] &` &j &l &q &m &l &h &l &m s&j k&m ^&h M&c C&c @&[ 7&[ 2&T ,&S '&Q %&V "&Y &] &` "&g %&l ,&q /&v -&y 1&| /&~ '& '& ,& (& '& & & & & (& 1& 4& -& ,& /& 2& 7& ;& >& A& J& O& R& U& W& U& Y& Y& c& f& i& n& p& s& u& x& x& }& & & & && &( &- &4 &7 &2 &2 &5 &9 &: &A &A &C &H &N &b &d &n &p &v & & & & & & & & & & & & & & & & & & & |& s& s& r& p& k& h& c& _& _& ^& _& Z& Y& Y& \& \& Z& U& W& W& R& O& J& J& E& A& >& 9& 7& 4& /&$ ,&$ (& #&' &' & & & & & & & & & & % % % % % % % % % % % % % % % % % % % % %% %' %) %* %* %/ %4 %9 %> %J %Q %Q %[ %Y %W %M %J %J %O %T %[ %\ %^ %c %e %f %m %p %m %k %m %t %w % %| {%| t%y o%w i%r d%r `%m [%m V%j V%j Q%a S%a N%Y K%W B%[ 5%^ 2%` (%c $%c %e %a %` %c %f %e %j %o %t $u $o $j $j $h $c $c $\ $R $Q $H $G $C $C $@ $@ $> $= $; $6 $8 $4 $4 $3 t$/ p$/ k$ a$ \$ R$ M$ H$ B$ @$ 4$ 3$ 9$ 8$ /$ *$ '$ $ $ $ $ $ $ $ $ $ $ $ # # # # # # # # # # # # # # # # # # # # # # {# q# l# d# ]# W# M# K# P# P# N# :# (# &# !# # # # " " " " " " " " " " " " " " " " " " " " " " " " " " " " o" l" o" h" e" c" ^" [" V" Q" L" E" =" :" 3" 0" ." &" &" " " " " ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! }! m! d! ^! Y! U! R! J! C! >!) @!/ @!4 >!3 9!/ 4!* %!. !1 !3 !8 !6 9 9 @ B @ @ G R Y ` f p p u r a [ Y \ a e |   t  g  [  U  D  5  )                                | u ` W T W R W Y V T Q L H E = 8 4 ' $     & + 2 3 7 : = ? D F G F = A : : : 8 : ? I K L P Z ] ` _ ` e g j n ~                                                  # # " # , / 7 E J H K J K O T Z Z \ p s r $u )z %} $ ) 1 4 B G J R T T ^ ^ \ ^ f f f c ^ Y T M H E B = 8 3 / . "                   x u u s p f b ] Z S H > 4 &              !"$'0:=GNSY]]]YYy]wewltq`t[rIoDlBq@v:v1{,w!w|"$)+.38:BEIVX^YQGBGGJBEBDD:88?= 6 0)  !(/459<DKMS_gklux{ $+1@@:?S]cehm  !/:FKPX k { "'*349=CELMRRR \\*`.f/j4kCkTm[r\uY|W~\^[\WVYROQWY[fzymffp~(r.m7j=eIh]clhqftkvtyt}k}e[@43;HLhjmo|   & ) 8 A G K I A - ( ( 2 <  A P E_ Yn ro sy r~ n i c ^ Y Z \ \ \ Z!\!U!P!K!K!O1!R2!U;!\F!aK!ch!nn!px!xz!|x!z!p!r!i!p!r!!!!!!!!!!!! !!!!!!&!+!.!.!1 "0".",'".."11"18"5D"5O"%%~%v%v%q%_%.P%2=%3<%B=%ID%KD%I%Q%Q%S$]$d$d$t$s$t$$$$y$o$f$a$J$ $######n#k#k#u#}######'#*#;#A#C#C#J#M#P#W#Z{#\q#cn#dk#r_#w]#|Z#\#W#U#K#K#F#4#/#&####### ##"#"""""""""""""""""t"h"]"^"b"h"h"^" ^" ["O"N"E"B"D"L"&S"0S"5O"6^";e"?q"Bq"Im"Sv"T"T"V"Q"O"Q"S"S"Y"["Y"S"S"V"Y"]"b"c"c"^"e"h#l #o #t#v#y#~####&#*#*#-#A#K#U#\#i#n#q#s#############$$$$$$)$3$6$=$@$R$T$Q$V$V$^$j$w$$$$$$$$$$$$$$ %%%$%F%~Q%X%g%o%v%}%%%~%%%{%{%%~%v%t%q%m&m&r&y&| && &2&;&C&R&d&d&i&h&c&Y&O&E&J&E&C&<&7&<&@&E& A&M&T&\&_& c&&a&4i&:&?&S&\&_&\&W&P&K&F&D&:'7 '5)'5G'4L'2V'%~'!' ''''''''' ' '''''''''''''''( ((&(4(<(N(U(X(\(k(((((((((((((())) )')C)T)Y)f)o)o)y))))))))))))**!*&*.*y+*o.*h+*g-*g3*b3*^7*[?*YK*OU*Eg*G*G*E*I*E*B*@*=*;*;*6*8*6+5 +6+= +8'+3>+3F+6W+Bn+Ez+I+G+G+L+L+L+O+Y+Y+V,V ,Y,^",`,,g.,t8,Q,T,],r,{,,,,,,,,,,,-~-~+-|5-~<-W-f-{--w-t-o-j-e-`-]-X-S-N{-Jx-Eu-@q-;n-6k-3i-.f-)b-$_-\-X-U-\->-?--&-M-W-i-{------.....)...4.;.C.M.f.......z.x.h._.Z.U.P.E.;.7.;.;.4.2.6.7.4.;.9.Cz.Ar.Ep.Em.Af.>e.>^.AW.@G.C9.>*.<$.9.6.2 .-.,-2-4-2-,-'--- ------x-l-g-l-d-]-U->-2--,,,,,,,,,y,r,{`,T,~;,$,,,++++++t+i+[+S+P+N+B+7+.+&+++++++}+s+\+E+>+<+1+*+ +++*********j*Q*I*&* **))))z)pz)h[)\>)Q%)M)M)9(B(Y(Y(V(T(T(^X(h>(r (t'w'|''''''''''''|'v'o'h'`'Y'Q'J'D'='5'.')'"''''&&&&&p&H&&&&%%%%Q{^eh{m{rxz{z{qlgdaXKH?94/0-!     (038DKLQUijiqooonnlooiied``dgggedddedd%e%jnl y&-457::DIP_}'%(,((1//6477<@@CMRRYWWWZ\}PsObJiHdJWMWMSPPRPURUPOIPCRCUDR9W0a0a-a+Z(a!hca^_\RTUYUUMJPORHMHH@@EC<772|1w/v-t1q-o/j,j/h2b,c,`*^-]1S2S*V*S-S/O-N2B(L(D,B,@*B(@#G II E#@'?':%="= @="55. '#!%(*/ 14479<AEEA< <>A!F$K!RY_ d mu|wmhkhc^infhfc\TPC<2*,/27 ;>@F!M$U+\1a:^=YBOEFJFQHXJ]KcOhOoOtP{T|\mwz}wz|{{{{wwvw|~    &+3=ENLDGINS[cmt{  #((--+%%(/299500/00/ -%#   %##%!&!++4!<&7+<0A/M/U/]4b4l9q9s7u-v*}#!!!    %',),18ELGEEBGJMWYa`[[`akmrt|~!)))2:BDLVX_dgoyy}(*2<@AJT_fimppx     #****-25<>ADFDCDzIuNwPPSZ]aabggknu{$.6?EED@6.$       $).+3=;:BEQYbhbemqrw~$$""%*,,,./13448648889#9-=0=9@A@K;K>UB_@g9p9z@{EvMzQRQRYYWWTY^^VWY\^``acef'f3h=jGoLoOmWkcmkottzyywwy~$08DLPX]eoxzrmfa^[VRJE>88;63.*$$**)$$$',1 /,''*%1*4,11(4-9'='=28;1</@*>'H%R$P$M"E EJFHRWhhha^T U%\%k"s"    )+,6:=EOS ] clr{y v$"%'*,/16;999;=BBE C B>;6/,'%)))'%   &-5<HRZakqvz{upga]WPIC>72+&   "*.69>CHGGJTT[fkoopkmp~      $ . 8 A N P Q Z e n t x                         !!!! !%!-!6!6!2!2!~6!|>!w@!oF!jH!cJ!^P!`U!]Y!]_!^a!`k!^r![z!]![![!V!T!X!X!S!X!Y!^!`!b!h!l!o!t!t!t!t!l!j!g!b!]!]!Y!V!Q!L!G!B!B!="="=":"5"."0"1 ".!.!+!&!!!!!! !!!!!!!!!!!!r!p!i!r!p!z!|x!xz!px!nn!ch!aK!\F!U;!R2!O1!K!K!P!U!\!Z!\ \ \ Z Y ^ c i n r~ sy ro Yn E_ P  A < 2 ( ( - A I K G A 8 ) &    |omjhLH;34@[}e}kytvttkqflh]cIh=e7j.m(r~pffmyzf[YWQORYVW\[^~\VT|L~LJGB=911,% {uqib_XNH>7*& |vlc[VOID=60,&" |snkcZRHA;2,% ||wtohhjoruto}kxfyexao^jWgV_Q[QZRVLSJNLGJ?G8E2B-=(;!61131 .*%'"   zwoh`TME8,% '.8>HQW^^``achmty~ }vsld\UM >5/            rhbXNE86. '#( -25:=FLQQLQSXXV]X[]`beeijlilnooqsqtooqsty}y !&+))003155'&'"&)!   ((%(>@CFF JO MHEC>;;7972,((,/2;>CFEHHEHHCACAA9229479;@>;>A@7z6s4p2h-f1c-_-\,\,_,h(i'c#dkrsxx|| nkca c ^^UMJC<;7;@AEEA<>@AA<></*'-2792% ~vg`XLD<-${voje_ZUNID=83-(# |wrkfa[VQJE@94/)$$$     %*/6;@GMR|Vw\waufpjkoer^wR~HB;4*" ~|yurmhea\YVQ{(((((')0)3)5 )@)E )G)G)D)@)=')B))I/)G3)G;)NR)D[)=[);a)Bc)=j)8p)6z)5|)?z)Dw)Ew)Iw)J~)Qz)Vw)Tu)St)Tr)[k)^j)`c)c`)g`)j[)r\)w^){\)\)W)V)W)Y)\)e)j)j)m)u)z))))))))))))))))))))))))))))))************))): *K *P*\*d)i)l)p)s)v)x)x){)))))))))**********))** ** * *** ****** ))))))))%)))*)3)3)1)8)8)B)E)H)H)G)G)O)O)R)[)^)^)^)c)h)j)j)o)t)u)u)p)o)k)j)k)k)m)u)z)|)z)~)~)))))))))))))))~)k)[)O)L)H)H)B)C)B) >) >)9)9)6)6)4)/).),)$)#$)!)$)().)0)5)D)D)F)I)K)N)N)P)Q)Q(V(V(X([([(`(b(j(j(s(t(x(x({(}((((((((((((((((((((((((((((((((((((((((((((((((((((())))(((((((((((((((((((( (((((("(#('(*(*(*(-(/(/(2(/(*(*(((((%(%( (((((z(p(#i("i( g(b("Z(#X("U(%M(-D(1D(9?(<9(C7(E4(K4(M0(M*(R/(R2(Z2(a7(c5(_0(c2(n<(}:(9(}7(|/(/(-(*(((}*(w#(u(}((((( ( ( (((''''''''''(''(((((((((&(/(5(:(?(C(C(M(K(N(X(Z(](a(g(g(i(q(v(u(x(z(}((((((((((((((((((( ( ( ( ( ) ) ) ) ) ) )" %)! ') ') ,) 1) 6) 8) ;) =) L)M)R)[)`)f)j)p)|))))))))))))))))))))))))))))))))))))))))))))))z)})x)r)p)u)u)s)p)n*r*r*w*u#*p&*n)*i+*i7*k.*h3*h2*d2*f5*d8*c0*_-*d.*c+*a+*a(*c(*d)*h(*i$*h#*h!*d*h*h*d*h*f*f*d*d*a*a*^*^*Z*\*Z*Z *W *U *R*P*U*W*U*R*R)P)T)U)R)P)O)K)F)F)A)>)<);)6)4)4)2)1)-)-)/)4)7)7)4)7)4)7)4)7)4)6)2)/)1)4)2)2)1)-)*)*)-)*)')-)-)1)1)1)4)6)7)6)6)7)4)6)4)4)/)-)()*)()#) ) ))))))))))))) ))))))))))))))))))))))))|)|)z)r)t)r)p)k)c)c)a)a)`)[)a)^)\)[)W)V)V)V)R)R)V)V)V)Q)V)T)V)Q)M)O)vM)tJ)tG)tE)l@)bC)]L)]G)ZJ)ZL)UO)QM)NO)KO)LQ)SO)SR)KT)AW)7`)7c)0e))k)$t)!r)#y))))))))))) ))))))))))))))))))))))))))))))))))z *y *)))z*z*w *w*w*t *t*r*t*e*f*^*\&*^)*a)*c+*`0*c3*W:*[5*Y5*W7*VD*O?*L=*HB*GD*HG*CG*@D*BI*BK*HG*LI*MF*OG*OK*MP*OQ*LS*JP*JK*GK*>L*9P*4V*3U*4X*,Z* `*l*o*s*t* s* o* o*s* v*x*}*}*~**~*~******************************************z*p*l*l*f*a*_*k*n*i*f*d*b*a*]*X*S*N*M*K*I*K*R*U*R*K*H*H*F*C*C*A*>*>*?*A*D*D*D*:*:*7*7*5*5*2*4*0*-*+*/*2*/*!**** ******************************************************************************************************o*l*j*m*l*h}*^y*]x*^s*^j*[g*Vb*Q`*OV*GS*GP*DN*EL*GG*D:*=7*.0*0&*.*'*!**)))))))))))))))))))))")')')+).)+)))')")!)))&)))))))!)$)))')+),)+)")!))))))))))))))))))))))))))))))))))))))))))))))))))~)t)y)y)z)))))))))))))p)f)`)V)m)t)z)~)~)y)|)|)h)9)1).),)s')m")i)_)Z)Y(\(^(\(a(f(d(h)f(h(h(i(p(r(m(p(x((((((((((() ) )))) ))((((((((( ( (((((((((((!(!((!(("()()(.($((((((({(z(z(u($q($n(&n(0u(1(5(5(8(;(?(J(O(S(Tx([s(]n([n(Yl([k(Yl(Ti(Tk(If(@f(?_(B](EX(@R(?R(?I(BI(EF(IH(TF(TH([H(bD(bA(cD(hD(jH(lI(jK(oI(oF(vF(wC(wD({I(wM({K(~I(|I({F(~C(A(A(?(?(:(9(:(<(:(:(<(>(A(>(>(<(<(:(9(9(>(C(D(A(>(:(7(4(2(2(7(9(7(9(9(7(4(5(4(-(+(&(&( (!(&(&(!( ((( ( ( ( ( ( ( ( ( ( ( (( (+'0'F'K'N'M(M (P(P(U(X(a (q&(z2(2(5(7(?(F(N(S(X(d(i(k(u(z(}((((((((((((((((((((((((((((((((())) )))))) )%)))3)=)>)C)E)G)J)M)R)zT)q`)pe)qj)pr)xt)}z)y)u)r)k)k)h)h)o)o)p)r)y)~))))))))))))))))))))))))))))))))))))))))*****)))))))){)x)x)v)s)p)l)i)d)\*P*K *: *)))************)))))))))))))))))))))))))))))z)u)m)j)j)e)\)Y)W)V)W)\){\)w^)r\)j[)g`)c`)`c)^j)[k)Tr)St)Tu)Vw)Qz)J~)Iw)Ew)Dw)?z)5|)6z)8p)=j)Bc);a)=[)D[)NR)G;)G3)I/)B))=')@)D)G)G)E )@)5 )3)0)')(((((''!')'3'#5' D'#J''Q'(O''G''D'(D'/D'2G'6G'9N'AS'FV'RX'R^'Re'Yj'\t'd'i'm'k'd'^'Z'T'R'M'F'F'K'M'K'F'H'F'C'A'C'J'J'M'P'R'T'a'd'h'n'p's'u'z'|''''''''''''''''''''''''''''''''''''(( ( ( (((((}(u(w#(}*(((*(-(/(|/(}7(9(}:(n<(c2(_0(c5(a7(Z2(R2(R/(M*(M0(K4(E4(C7(<9(9?(1D(-D(%M("U(#X("Z(b( g("i(#i(p(z((((( (%(%(((((*(*(/(2(/(/(-(*(*(*('(#("(((((( ((((((((((((((((((((())))((((((((((((((((((((((((((((((((((((((((((((((((((((}({(x(x(t(s(j(j(b(`([([(X(V(V(Q(Q)P)N)N)K)I)F)D)D)5)0).)()$)!)#$)$),).)/)4)6)6)9)9) >) >)B)C)B)H)H)L)O)[)k)~)))))))))))))))~)~)z)|)z)u)m)k)k)j)k)o)p)u)u)t)o)j)j)h)c)^)^)^)[)R)O)O)G)G)H)H)E)B)8)8)1)3)3)*)))%)))))))) )***** *** * ** ***))******)))))))))))))))))))))))))))))))))))))))~)y)r)p)o)o)h)h)k)k)r)u)y)}z)xt)pr)qj)pe)q`)zT)R)M)J)G)E)C)>)=)3)))%) )))))")$)')*)1)1)9)9)8)9)8)8);)9)>);)B)>);)8)3)4);)@)>)6)3)6)=)@)@)C)C)%@)'9))6)'1),,)9')>*)@/)B.)E)J )M )Y)c(m(u(y(((((((((((((((((((((()($($()()(0x(3d(2Z(-U(+S((X($X(M(I(C( C(A(>(7(/(&(#(((((( ((( ' '''''''' ' '' ''''''''''''''''''''''''~'|'w'l'l'o'r'r't'r'w'v'|'' ' ''''!'&')'-~'3y'8~'<~'<'A'D'G'L'P'V'`'g'j'o'q'y'''''''''''''w'j'b'^'Y'Q'N'L'J'E'D'@'@'=';'8'='B'J'G'D'?';':'5'1')'&'&'!'!'!'''')))) ))))((((((((((((((((((((((((((((((((}(z(u(k(i(d(X(S(N(F(?(7(5(2(z2(q&(a (X(U(P(P(M (M(N'K'F'0'+' (( ( ( ( ( ( ( ( ( ( ( ((( (!(&(&(!( (&(&(+(-(4(5(4(2(%(&(%((((((((( (((('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''|'r'q'l'm'l'g'g'e'g'c'c'g'j'l'j' g' h'j'l'm'l'h'(o'2l'5m'9r'Aq'Ft'Cq'Cl'HQ'KJ'PL'MJ'IJ'HI'D1'H+'D)'>'9'9'9'7'2 '/ '*'#''''' ' ' '' '''''' ''&&&&&&&&&t&l&g&b&^&^&`&^&X&S&O&G&B&?&@&?&8&.&,&+&)&&&&&&& & & & &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''' ''w '^ 'Y'U'K'H'F!'H"'J!'O"'R'T'R!'K&'>+',.' 6';'D'J'I'@';':';'8'6'3'0'.'+','.'0'0' .' +' &'$''''"'''+'0'5'6':'6':'@'?'E'J'L'^'`'e'v'y'|'''''''''''''''x'o'd'U'K'B'?'?'B'B'A'F'K'K'N'P'K'K'D'D'A':'7'3'<|'=v'Br'Nw'Q~'V'[~'b'g|'i|'j'q'qw'tr'oo'qh'oe'te'ye'}c'c'`']'['S'E'D';'5'1'.'+')'&'"'!'$'!'!'''''''' ' ' ' ''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&"&%&"& &%&"&(&-&-&6&9&6&<&>&<&<&C&F&F&H&E&C}&A}&Az&@x&Aw&@r&<u&6w&2u&/s&/r&1p&-p&/m&2k&2i&4h&6d&>c&Y\&Z\&W^&Ta&Ua&Y^&c_&i^&ma&uc&zf&|f&h&m&k&n&i&h&i&m&n&k&h&i&k&m&k&n&p&r&u&x&}&x&w&w&z&|&z&|&z&}&&|&z&|&&&&&|&}&&&&&&&&&&&&& & &&&&"&&&,&5&6&:&:&:&;&;&@&D&I&G&I&N&O&T&V&c&h&l&r&y&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&!&&&*&4&5&<&C&M&N&S&\&_&a&g&l&q&z&{&&&&&&&&&&z&w&w&u&h&f&c&c&a&a&^&_&Z&^&\&c&h&n&r&r&p&p&r&s&w&z&&&& &&&$&3&9&=&B&E&E&H&L&M&L&J&M&V&[&`&f&k&p&m&f&a&[&\&f&j&m&w&z&~&}&|&x&z&}&}&&|&|&&&z&|&x&x&w&w&r&i&h&h&f&f&a&a&^&T&T&M&M&K&J&C&2&1&*&(&*&-&/& ,& (&*&(&(&"&!"&#%&$%&("&)&(&#&$&)&2&?&B &? &?&:&8&="&?"&A'&A1&L2&Q1&_/&e(&i-&o/&v7&7&2&7&4&<&;&;&>&E&H&K&K&M&P&R&U&\&_&a&c&i&w&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&' '''''''!'!'!'&'&')'1'5':';'?'D'G'J'B'='8';'='@'@'D'E'J'L'N'Q'Y'^'b'j'w'''''''''''''y'q'o'j'g'`'V'P'L'G'D'A'<'<~'8~'3y'-~')'&'!'''' ' ''|'v'w'r't'r'r'o'l'l'w'|'~'''''''''''''''''''''''' '' ' '''''''' ' '(( ((((((#(&(/(7(>(A( C(C(I(M($X((X(+S(-U(2Z(3d(0x()()($($()((((((((((((((((((((((y(u(m(c(Y)M )J )E)B.)@/)>*)9'),,)'1))6)'9)%@)C)C)@)@)=)6)3)6)>)@);)4)3)8);)>)B);)>)9);)8)8)9)8)9)9)1)1)*)')$)"))))'!'!'$'!'"'&')'+'.'1'5';'D'E'S'[']'`'c'}c'ye'te'oe'qh'oo'tr'qw'q'j'i|'g|'b'[~'V'Q~'Nw'Br'=v'<|'3'7':'A'D'D'K'K'P'N'K'K'F'A'B'B'?'?'B'K'U'd'o'l'l'n'o'j'`(L (D(<(.-()9(#A(H( R(X(i(g(k(i(n(k(i(i(f(d(d(g(d(b(|b(|_(w](ka(ak(^i(^l(Tg(>i(1g(%g(p( z( {( ( (( ((((((((((((((((((((((((((((((((((((((((((((({(v(s(s(p(i(d(a(P(>(5(+((((((''''''''''''' '''' '"','4'9'G'M'O'['hy'kv'rm'yg'zb'|b'e']'V'V'X']'g'c'^']']'Y'T'N'L'N'L'J'I'J'N'Q'L'J'L'O'S'L'J'O'N'N'I'I'I'G'B'B'D'D'@'=';':'8'5'8';' :';'5'(6'-3'71'76':5'F6'U3'[1'`.'l)'t"'' &&&&}&|&|&z&|&x&|&z& }&z&z&&w&0u&1z&.|&.}&3|&1&5&8&;&=&?&@&D&B&D&J&L&N&Q&T&V&T&Y&Y&]&b&g&m&o&r&r&y&y&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&& &&&& &%&+}&-z&0z&2z&0w&9u&<w&:u&<u&Ar&Cs&Kn&Km&Nm&Ni&Ri&Uf&Xd&Zf&Z_&ka&p_&x_&Z&zZ&u\&qZ&k\&_Y&W\&RY&MY&IZ&IY&KW&IU&MW&NU&PW&RU&SW&WW&WY&XY&XT&ZR&]T&\R&aP&bP&bT&iR&nR&pP&zO&{O&}P&R&R&R&P&O&H&F&H&E&C&@&@&>&<&@&C&F&K&F&H&E&E&C&A&>&>&<&9&4&6&4&2&4&4&6&4&6&2&-&/&-&/&/&2&/&1&/&%-&',&)-&1-&1*&4,&8*&;#&@ &B&C&G&L"&[%&c"&p#&w(&y-&y*&u%&t#&u&t&t&p &&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%w%r%r%w%|%%%%%%%%%%%%%z%o%m%k%`%c%f%a%`%V}%Vy%Y{%Vx%Tt%Wt%Mj%Og%Ve%Le%E`%>`%;_%,P%%G%$B%$8%/8%3<%6<%9?%=A%EA%J=%MA%J<%E?%>=%38%33%43%=8%@7%93%42%*2%*.%*+%.(%6(%C)%>&%C&%G(%H)%L.%L3%M+%O)%E#%;#%,%*%*%'%* %, %.%/%3%1%/ %1 %4 %; %@%@%B%C%B%M%R%T%Y%V%T%R%M %C%@ %;%1%1$1$3$6$4$8$;$@%G%J%M%O%M%J%G%B%;$9$;$=$C$L$T$Y$c$c%f%p$t%r$u$c$[$W$Y$^$`$a$c$a$^$[$^$^$R$L$G$E$>$>$=$C$W$[$c$e$p$u$u$t$w$z$|$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $$$$!$!$&$$$&$+$-$3$=$=$I$Q$P$Q$P$Q$S$Q$V$Z$]$_$Z$]$b$e$l$o$q$t$t$x${$$$$$$$${${$}$$$x$s$n$i$b$`$]$e$i$n$n$s$y$}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$~$z$y$w$u$r$m$f$e$a$h$m$k$j$a$^$^$a$e$c$`$Y$Y$R$Q$[$[$\$\$`$`$W$T$R$R$W$W$^$\$^$\$[$Y$W$W$\$\$V$T$L$J$G$=$@$G$M$J$H$G$C$E$B$C$C$@$@$=$=$=$;$ 8$/$ 8$8$9$9$9$9$8$1$%$"$$$$$/ $9 $A$F$K$R$U$Y $^ $^$c$_$Y$W $Z'$R*$M,$R3$c.$s,$,$.$,$1$4$4$6$6$8$G$H$J$L$M$O$T$R$V$Y$Y$\$c$e$c$h$f$a$`$a$^$^$`$a$c$e$a$ a$ h$k$r$ w$ w$ z$ y$ z$ y$" |$. |$8 ~$= ~$@ $E |$S z$X z$^ u$g u$h y$h |$] $] $^ $] $` $b $` $Y $[ $X $V $T $Q $Q $S $Y $` $o $| $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ % % % % % % %! %% $%- .%0 -%4 (%: &%< (%> $%I #%R &%X #%a +%f )%g 0%l 3%l 5%i 5%i 7%p G%z P%z Z% ]% d% g% l% v% }% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % & & & & & & & & & & & & & & & & &' &' & #&$ (&$ ,& /& 4& 7& 9& >& A& E& J& J& O& R& W& W& U& Z& \& \& Y& Y& Z& _& ^& _& _& c& h& k& p& r& s& s& |& & & & & & & & & & & & & & & & & & &v &p &n &d &b &N &H &C &A &A &: &9 &5 &2 &2 &7 &4 &- &( && & & & & & }& x& x& u& s& p& n& i& f& c& Y& Y& U& W& U& R& O& J& A& >& ;& 7& 2& /& ,& -& 4& 1& (& & & & & '& (& ,& '&~ '&| /&y 1&v -&q /&l ,&g %&` "&] &Y &V "&Q %&S '&T ,&[ 2&[ 7&c @&c C&h M&m ^&j k&m s&l &h &l &m &q &l &j &` &] &[ &X &O &L &I &B &@ &; &: &3 &1 &, &, && &! & & & & & & & & & & & & & & & & & &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''' ' '' ' 'z'x'u!'s'n'f'd'a"'_&'a&'d.'i3'i6'i;'a@'cD'aI'aL'dS'fT'hY'n`'sc'ug'xh'|v''z's'm'i'd'\t'Yj'Re'R^'RX'FV'AS'9N'6G'2G'/D'(D''D''G'(O''Q'#J' D'#5'3')'!'''''' ''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&w&i&c&a&_&\&U&R&P&M&K&K&H&E&>&;&;&<&4&7&2&7&v7&o/&i-&e(&_/&Q1&L2&A1&A'&?"&="&8&:&?&? &B &?&2&)&$&#&(&)&("&$%&#%&!"&"&(&(&*& (& ,&/&-&*&(&*&1&2&C&J&K&M&M&T&T&^&a&a&f&f&h&h&i&r&w&w&x&x&|&z&&&|&|&&}&}&z&x&|&}&~&z&w&m&j&f&\&[&a&f&m&p&k&f&`&[&V&M&J&L&M&L&H&E&E&B&=&9&3&$&&& &&&&z&w&s&r&p&p&r&r&n&h&c&\&^&Z&_&^&a&a&c&c&f&h&u&w&w&z&&&&&&&&&&{&z&q&l&g&a&_&\&S&N&M&C&<&5&4&*&&&!&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&y&r&l&h&c&V&T&O&N&I&G&I&D&@&;&;&:&:&:&6&5&,&&&"&&&& &I T V X [ X X Y ] ] [ ] ]    | { w y   y | ~ y | ~ | 0q <q [t _ d q x ~    | y w w {                           ~ t n j e& `0 bA iH iN jS j] ja gd bb Id Dk <s (z $ ( . : ? L Q [ e t }               - 44 >= FO iW c m                              #  '! )# ,$ ,( '( !+ 8 D "I 'L 'P $X $e i i n t ){ .{ 6 : ? @ I J O N N Q V Y ] ] ^ e j m m q r l b [ S N E @ = 3 0 , ) , + 0 . ' ' ' "                % ( / 2 6 < C F M K M O R U W Z d h i i k h i p u              & . : G ] gz tw z                   # ( / 4 9 ? D I P U Z a f p s u u x                   " . / 3 8 = B E H M T Y ^ c f f f ^ \ ^ ^ T T R J G B 4 1 )} $z %u )r $s p \ Z Z T O K J K H J E 7 / , # " # #                                                  ~ n j g e ` _ ` ] Z P L K I ? : 8 : : : A = F G F D ? = : 7 3 2 + &       $ ' 4 8 = E H L Q T V Y W R W T W ` u |                | u p j e f j h c c \ \ Y~ Wz [t \t ^h \j Yh Wc Ya W` Q^ OW LT MO GL EC GB M= R; Y8 [6 `/ c/ k) t* t1 r4 u4 z1 z/ * ) % " "                                  (  +  2  5  N  P  S  U  d  g  o  ~                         ! ! ! ! ! ! %! *! 1! 1! 7!} 7! @! F!} H!x F!u J!q U!u Z!x ^!x d! s!x }!u }!k }!d !d !a !f !i !k !d !d !b !f !f !d !b !b !a !] !Z !X !R !U !S !W !Z !] !] !b "U "R "P "R "M "K "K "P !"S +"R 1"N 8"P ="S @"R I"U J"W J"S Q"W T"W V"U Y"S X"P ["M b"S j"X l"] j"d m"k q"u t" r" m" l" g" c" `" b" b" g" c" g" e" e" h" l" r" r" t" o" l" o" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "{ "z "z "z "} " "x "z "u #q #p #q #n #n #q #p #s 7#v :#z :#} >#} F# K# N#x a#u n#v #z #x #v #v #x # # #x #z #x #z #x # #} #z #x #{ #} # # #} #} # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # $ $ $ $ $ $ $ $ $ $ $ '$ *$ /$ 8$ 9$ 3$ 4$ @$ B$ H$ M$ R$ \$ a$/ k$/ p$3 t$4 $4 $8 $6 $; $= $> $@ $@ $C $C $G $H $Q $R $\ $c $c $h $j $j $o $u $t $o %j %e %f %c %` %a %e %c %c $%` (%^ 2%[ 5%W B%Y K%a N%a S%j Q%j V%m V%m [%r `%r d%w i%y o%| t%| {% %w %t %m %k %m %p %m %f %e %c %^ %\ %[ %T %O %J %J %M %W %Y %[ %Q %Q %J %> %9 %4 %/ %* %* %) %' %% % % % % % % % % % % % % % % % % % % % % % % & & & & & & & & & & & % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % }% v% l% g% d% ]%z Z%z P%p G%i 7%i 5%l 5%l 3%g 0%f )%a +%X #%R &%I #%> $%< (%: &%4 (%0 -%- .%% $%! % % % % % % % % $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $| $o $` $Y $S $Q $Q $T $V $X $[ $Y $` $b $` $] $^ $] $] $h |$h y$g u$^ u$X z$S z$E |$@ $= ~$8 ~$. |$" |$ y$ z$ y$ z$ w$ w$r$k$ h$ a$a$e$c$a$`$^$^$a$`$a$f$h$c$e$c$\$Y$Y$V$R$T$O$M$L$J$H$G$8$6$6$4$4$1$,$)$,$,$*$'$%$%$$$$$$$$ $ $ $ $! $' $3 $8 $; $B $D $D $= $= $D $E $E #= #= #E #E #? #6 #. #) #' #& # # # ######## # # # # # # # # # # # # # # # # #! #! #, #0 #3 #; #? #= #@ #B #E #I #Q #V #] #` #^ #` #e #j #l #h #j #l #o #v #o #o #w #w #r #o #{ # # # # # # # # # # # $ $ $ $ $ $ $ $ $ "$ $ $ $ $ $ $ $ $ $ # # # # # # # # # # # # # # # # # # # # # z# u# s# l# i# \# S# N# D# 4# %# # # # # # # # # #! ## #& #( #& #- #0 #7 #9 #< #? #> #: #9 #: #7 "5 #5 #2 #2 "0 #/ #+ "( "% "% "( "( "+ "( "* "/ "/ "2 "4 "5 "C "H "I "H "I "K "N "P "U "R "M "K "I "I "F "F "C "C "C "? "? "? "D "D "C "? "? "? "D "F "C "D "D "F "H "K "M "N "P "R "R "W "W "] "_ "g "b "W "U "X "W "M "M "I "H "D "> ": y"7 r"4 r"2 o"/ r"+ r"* o"! l" j" l" m" o" v" y" |" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " {" y" v" m" q" m" l" j" h" g" e" j" l" m" " " "~ " "y "t "q "h "g "c "c "` "^ "X "V "S "S "S "N "I "G "= "; "8 "6 "3 "0 ". "+ ". ". "+ "$ "! " " " " " " " " " " """""""""""""""""""""""""""""""""""""w"r"p"s"p"s"u"z""x"s"r"s"u"x"w"u"r"n"m"k"m"r"z""""""""""""""""""""""""""""z"z"r"r"m"k"m"k"i"h"k"n"p"w""""""""""""}"w"r"n"s"z"x"|"z"w"r"p"~"{"y"w~"p|"m~"ky"rv"pt"rt"wr"xr"|t"t"o"q"o"o"v"t"q"h"h"c"`"]"Y"V"X"["^"b"o"q"q"h"e"c"^"V"T"zL"u?"u;"p)"m!"k"d"Z!O!H!C!2!/! !!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}!r!s!r!i!a!a!^!^!h!h!m!k!m!n!m!c!W!T!M!H!H!A!C!A!>!>!@!A!E!H!H!F!K!H!J!M!K!M!R!W!Z!Z!\!\!Z!Z!U!T!T!P!T!n!U!E!>!;!6!'!{"!x!x!y!{!v!s!v!v!j!`!U!L I = < < : : ? - &                     } n j b ` ] U = 8 ( # ! ! $ + - - - + - - ~( |& ~$ y& m m j h f e^aceeccaefeee`\RE==1*19CB@B8/$%/46444|3y4w1t)e"\T TMHHGEHJJORROTRROHCHMMzOfYaY]WXWA`?`A^H\RVURWR]OUORMRLWLXJUHUGRGREFLDQDWC[?[>`:aAa5c-a-`*`*a(a!^`\[[QJEC>;;@31,,*'w*w,y*w.q.r)jj"o'q)o/c/]1:/31**%" $')%    zwmmnmkiaa^PHEAv9i6d2b-N,M(M'I,2/02+Hpz|}z||} 3588ETmqqy{rolljtrtolhgmljgghcb`^YYVSI==:?@ED=:565*170:,C,>,>.>0?.C0C.H,S+R+U,S.U1U.X,Z.Z,W)X'g&q!vz}         "$$%*4>@BBGHORQLRVVcehjtwwttuwy||~|~    |$}#!#$#$&))+|.|2z7x<z=}<7578??|GxKuXuXxVzZ}VSQXZ[]_]|`zdzb}d}g}egilnlst}x}s}qn|jxnxgsbrbpgrgpgmlpopqssr}r{n}nsrnmnpuz|xspkixspmiikifhdfihiiddaccffhkiknrsxxz|z|"|z#x'z#s%u(u*w-s/x1z2x1s4r4n7m7u;u;s>sAp@n@i<i;f@fCiEhCc>c<_>^A^HiMaO_M^UZYaYYZY^aafakckch_a^Zd_khmmsruz|}x}xuwnxkwdx^wUzUWY_dhihd^WURUZ_dhknrx||zzrkd^ZROMOMJFFJFAA>;;;/2677>A>;;6621*-(*#%,//11/-*'%((*(   ""',12}6z6x;s>n<c9T*O*M(H,A A;7 6/2-(#%*,y;gFZMUTNaDcFf?p5u-}$   $)&()++.2257:=DGLPQSZ[issxx}     ~{soonieedeeUD??:8.-$                ! & & & $ $ & ' ' ) , 0 3 . . , 0 : ; : ; ; = @ D G N N S T S Q O O I E @ ; ; : 8 6 6 8 : ; ? = ? @ ? @ D I """""""""""""""""""""""""" " " " " " " " " " "! "$ "+ ". ". "+ ". "0 "3 "6 "8 "; "= "G "I "N "S "S "S "V "X "^ "` "c "c "g "h "q "t "y " "~ " " " " m" l" j" e" g" h" j" l" m" q" m" v" y" {" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " |" y" v" o" m" l" j"! l"* o"+ r"/ r"2 o"4 r"7 r": y"> "D "H "I "M "M "W "X "U "W "b "g "_ "] "W "W "R "R "P "N "M "K "H "F "D "D "C "F "D "? "? "? "C "D "D "? "? "? "C "C "C "F "F "I "I "K "M "R "U "P "N "K "I "H "I "H "C "5 "4 "2 "/ "/ "* "( "+ "( "( "% "% "( "+ "/ #0 #2 "2 #5 #5 #7 ": #9 #: #> #? #< #9 #7 #0 #- #& #( #& ## #! # # # # # # # # # # %# 4# D# N# S# \# i# l# s# u# z# # # # # # # # # # # # # # # # # # # # # # $ $ $ $ $ $ $ $ $ "$ $ $ $ $ $ $ $ $ $ # # # # # # # # # #{ #o #r #w #w #o #o #v #o #l #j #h #l #j #e #` #^ #` #] #V #Q #I #E #B #@ #= #? #; #3 #0 #, #! #! # # # # # # # # # # # # # # # # # ######## # # #& #' #) #. #6 #? #E #E #= #= #E #E $D $= $= $D $D $B $; $8 $3 $' $! $ $ $ $ $$$$$$$$%$%$'$*$,$,$)$,$.$,$s,$c.$R3$M,$R*$Z'$W $Y$_$c$^$^ $Y $U$R$K$F$A$@$; $- $($ $$$/$6$E#R#a#h#m#p#s#w#u#x#x########################################{#u#x#x#u#q#l#f# a# b# i# g# d#" b#, b#0 g#. b#6 a#8 Z#5 W#6 \#1 a#+ a#' _#$ \#+ D#1 9#: 2#@ #E #L #V #[ #] #^ #` #] #Y #V #O #N #N #Q "[ "[ "X "T "T "Q "J "L #I #I #B #6 ##5 %#6 (#8 -#6 2#1 5#' 7#" :#) :#+ :#" K#& K# W# ]# _# _# Z# \# ]# ]# \# U#S#N#]#_#f#i#k#k#d#_#U#P#N#R#U#W#U#X#Z#a#b#f#f#d#a#a#Z#U#S#M#H#D#?#A#A#<#7#2#0#2#4#2#/#+#*#+#*#/#0#4#0#-#(#&### # ### #&#&#!################ ##### # ###"|#z#z"|"""""#"##""""""""""""""""""""""""""|"|"}"""""""""""x"w"s"u"|"""""""""""""" " " " " " " " " " " # # # !# &# (# :# N# P# P# K# M# W# ]# d# l# q# {# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #} #} # # #} #{ #x #z #} # #x #z #x #z #x # # #x #v #v #x #z #v #u n#x a# N# K#} F#} >#z :#v :#s 7#p #q #n #n #q #p #q #u #z "x " "} "z "z "z "{ " " " " " " " " " " " " " "                           )  5  D  U  [  g  t  | e a \ Y [ a r u p p f ` Y R G @ @ B @ 9 9 6 8 !3 !1 !. !* %!/ 4!3 9!4 >!/ @!) @! >! C! J! R! U! Y! ^! d! m! }! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! " " " " &" &" ." 0" 3" :" =" E" L" Q" V" [" ^" c" e" h" o" t" r" r" l" h" e" e" g" c" g" b" b" `" c" g" l" m" r"u t"k q"d m"] j"X l"S j"M b"P ["S X"U Y"W V"W T"S Q"W J"U J"R I"S @"P ="N 8"R 1"S +"P !"K "K "M "R "P "R "U "b "] !] !Z !W !S !U !R !X !Z !] !a !b !b !d !f !f !b !d !d !k !i !f !a !d !d !k }!u }!x }! s!x d!x ^!u Z!q U!u J!x F!} H! F! @!} 7! 7! 1! 1! *! %! ! ! ! ! ! !                        ~  o  g  d  U  S  P  N  5  2  +  (                                 " " % ) * / 1 z4 z4 u1 r* t) t/ k/ c6 `8 [; Y= RB MC GL EO GT MW L^ O` Qa Wc Yh Wj Yh \t ^t \z [~ W Y \ \ c c h j f e j p u |                 $ ' ' & ) , '% &( )/ 'C ,D 5I ;H @D DD OH QI OI SM TR SW XZ X] ]_ ba cb vf {d ~f g i g p z }                     t m j g c Y$ ?) .1 &9 > G V Y \ ^ a c j o r w z |                           ! ' , 3 : ? E L Q X ^~ c| h~ q~ v~ |                      | z ~      & + 2 7 > C I P U \ b g n u z                              $ 2 2 8 < )< 15 /5 15 =2 @2 H2 R7 f7 j= t= z? |D zF uD oG jK jQ fQ tV ~[ [ _ b e i o n j i e i j l o n j j b _ Z X Z ] ] i s y       !   $ ( $ & . 8 : B G L U [ _ g y t o l i l# l' g- e- b/ V6 S9 P> NA KF NJ NK NM XJ bJ iH lF vE yC E F J J K M O T Y c k m n w z                             !$&0158??8 8 :? @ BJ"J'O'Q2S4V1X2[@]ObYcwgehhghjhjljbcjjq tvqw!{,v1v:q@lBoDrIt[q`ltew]wYyY]]]YSNG=:0'$"!               & 4 > H S Z ] b f a Z U P I D ? 9 4 / ( #                 z w z t g ] G : . &            u p i h k i i h d Z W U R O M K M F C < 6 2 / ( %                  " ' ' ' . 0 + , ) , 0 3 = @ E N S [ b l r q m m j e ^ ] ] Y V Q N N O J I @ ? :{ 6{ .t )n i i e X $P $L 'I 'D "8 + ( !( '$ ,# ,! ) '#                              m c W O i= F4 > 4 -               } t e [ Q L ? : . (z $s (k <d Db Id ba g] jS jN jH iA i0 b& ` e j n t ~                         { w w y |      ~ x q dt _q [q <| 0~ | y ~ | y   y w { |    ] ] [ ] ] Y X X [ X V T I G G O S V T O G D @ B D E B D I L N T X Y O I L L O S S Q T V X T N N |O tL wJ tL kT mY mX kT kQ jQ fT fS eV aT `T aS cT \V \V `Y aX ^] ^] [^ Yc [c ^g ae ^g [g Rh Mm Mv Jy J| H J Q H H E E B C @ > E B ; ; @ E E C > ; 8 4 4 3 . ) ' '                                                        } x x u q k K D C H C < ? > 7 2 0 + &                                   o h g h b [ Y ^ ^ T T V X X V Q I B @ ? B 1 + + ) ) $ !    " "     #(*,/29;AJJKJFJEFJMPRY_admmmsz|zuriaZWRPRP H A<42 764,' $$*).3 1./16;;963/*%"$" '*331.,14}8x8q8j;j@l@sC{HLRV[``a`chmmkmpuuw|~ %,2;AHRZckns| "&,06=DIOV[clv| &*7>HNX_biqu{ %,119=BGJ~L|LTV~\|WuYr\m[kTkCj4f/`.\*\R RRMLEC=943*'"  { kXPKF:/!  mhec]S?:@@1+$ {xulkkikidbd__aaa|_u_mbdb__ZbTaP]J]CZ>S;N9N7S6W1W,Z(a#_"]XXX _d i iikqvxuuspsqnnkfdgbbdknuvxzvvv}qvqssqxlsivdq]s_u[qZsVuVuNqKuFv?v7u0s)q#spqvx!$&)&)2:AGNV]binv}  !(*/59>>?><>~<w>pDoKpKkNjNeP^RWZT\W\`_^f\lWqYq\v`xk{m}r}u}|{xvuussqsqsux    !+-38?DFLPU]djqv}~yy{{}vnib]VNGA:2)&)&$!xvqpsq#s)u0v7v?uFqKuNuVsVqZu[s_q]vdsixlsqqsqvv}vvzxvunkdbbgdfknnqspsuuxvqkiii d _X XX]_"a#Z(W,W1S6N7N9S;Z>]C]JaPbT_Zb_bd_m_ua|aa__dbdikikkg_SMKD<954/(!  ) 0 6=?88:DDBEBJGGBGQY^XVIEB@:,' xp|f{cvcw^tUtJr>m6VT TV]eor|{{qqoliiqtqqnlieZSQND=85($!~ ~~|vtvlmrv{~zz|                      ! & & $ )) $. &5 !< !B D D F F G G I I K K L L N U Z _ e s { ~                               # - 6 U \ a d h h p w x | |                                 $ 5 ; G O S T S X g l o v              !!&!)/8<B?L>Q>mP{NNk{ ,668>ET^achuz~z{vrmlvtv|~~~ !$(58=DNQSZeilnqqtqiiloqq{{|roe]VTT Vm6r>tJtUw^vc{c|fpx ',:@B:83.+)$"|ww!qvtq jjcbjljhjhghhegcwbY]O[@X2V1S4Q2O'J'J"B@ ? :8 8 ??8510&$!                            z w n m k c Y T O M K J J F E C E yF vH lJ iJ bM XK NJ NF NA K> N9 P6 S/ V- b- e' g# l l i l o t y g _ [ U L G B : 8 . & $ ( $   !     y s i ] ] Z X Z _ b j j n o l j i e i j n o i e b _ [ [ V ~Q tQ fK jG jD oF uD z? |= z= t7 j7 f2 R2 H2 @5 =5 15 /< 1< )8 2 2 $                                z u n g b \ U P I C > 7 2 + &    ~ z |                       ~ |~ v~ q| h~ c ^ X Q L E ? : 3 , ' !               $)/49@EJQV[afkrw| #(-38=DINUZ_ejov{$-<DLX`gv~tnljdb[XKA2&       &! $)))$*-4>>CMPY \ PPTYW\_cfmnruzzz           !!$&)#$#$)-23032277FFBFQPGAA:FGSVSQPGFBFLF=:52-( # '.68ENXbhr            /5 >MU\dlsv }~ytmhca``^^WQH>8.' %,8EMT`howz   "'%*.1 3116;!=(B-E2G8J?LGJNLSRVQZQ[V_Wg^jaoexfykxo}turojhhotw||~|wuupmkmmhc`a``[VRLHC{@s@l;j8j8q8x4}1,.133*' "$"%*/369;;61/.13 .)*$$ ',46 724< A HPRPRWZairuz|zsmmmda_YRPMJFEJFJKJJA;92/,*(#  {{yy~}vqjd]UPLFD?83-+!    xusqsqssuuvx{}|}u}r{mxkv`q\qYlWf\_^\`\WZTRWP^NeNjKkKpDo>p<w>~<>?>>95/*(!  |zuhca^TE>866,   x sld]UP!I%A(:+42+7%: :7: ?CFKNSX_dikqux{yqgc`b`^^Y[XSLGD@=;88865 . .)  "%),}1z6z=}BE}LxQwVzTQQRVY^|`uekhkhskrppwmyu~pif^\TKE<4/*(" yyywyyxyqwit_oZjVeSaL^DWBRALBEB@F;G6F/G*L*S'Q"KG?8 . # "" ""$$$      %(4455: ? ?A?HCCIMMPSPNDHNNSPPXX\\_]]\]Z]\_a]\WNN\dpz}}zppqlkklnplppnpssuuxzzz{{    "//.3@=C83319@BGECHW[`e \e `aYWL%6,,1'4@JT\^ehotwrrorokheRLGGJJJGC=*  $)*./148=EHHQ{VY\aehmruy|~ "*4;B~HwRr^oejkfpau\wVwR|MG@;6/*%     $$$$$""" "  # .8?G"K'Q*S*L/G6F;G@FEBLBRAWB^DaLeSjVoZt_wiyqyxywyyy "(*/4<EKT\^fi~pyuwmppkrhshkek`u^|YVRQQTVzQwLxE}B=}6z1z,})%"  ) . .56888;=@DGLSX[Y^^`b`cgqy{xuqkid_XSNKFC?: 7:: 7%2++4(:%A!IPU]dl sx  {kN{NmPQ>L>B?8<)/&!!!               v o l g X S T S O G ; 5 $             ,08;BIQQQQQQQQQQQQQV[gwuyp{h^UOJHEA<<4122-*%}xqgid``]]XUQI70+! wkfjf\\R94/             D l s v y               | x u i W K F A "                        # #   # ' , 2 4 C C E J P W Z _ h k i u w w z |                                                        '),.6;:;BEILQT[]^^`chmqvyy{|~}~}{xsqjllnjgnnje]]ZXQLFKLPSSVX_`[VNN PPKL K+N/L/I2D7D<A?DDBIFP:S:U8X:b3f7f<d=fDfGbNfZi[u[}`_lty{}{zzxligfaXRNPMMIFCA><9975000-+ 40"/-2/:9>;?ADCKKMRKWP_UaZfbzknps{xgb_]ZWRKH?<:752+%! ""$0?Ow{wc]YTJCJMLZT{VX[ehlojjggeeb` `boqrv~/49R\\fjfkw !+07IQUX]]``digqx}%*-2214<<AEHJOU^{hypwug[VQQQQQQQQQQQQQIB;80,                         | | x w p h h d a \ U 6 - #                               ~ { s e _ Z U N L L K K I I G G F F D D B < !5 !. &) $ ) $ & & !                               | z w r o j c a ^ \ Y V G > 9 1 &) .$ ? Y c g j m t                   } z p g i g f d ~f {b va c_ b] ]Z XW XR SM TI SI OH QD OD DH @I ;D 5C ,/ '( )% & ' , ) & ' ' $                                        | x r i f _ J E > 9                             x q q o l d _& [( X/ U4 U9 ZC QK QP LU Ka Nk L} F = ? A A < : 7 7 3 8 5 2 - ( ) &              z u s u v v p n i f zb wZ hZ \Z W\ Ta Rb Ob Cd @n 9p 4n /n %s q n n q v x }                      { v f R D < 4 & &       " 9 @ C M Q T O Q V [ [ ^ ^ a a ` a h m m p t |                    ] V T N J G B ; ; : : 6 5 1 , ) $ $   $ + : : ? ? ; 8 5 5 1 . + ' "   & ' '                2/7,<-A/F,K(K%P%P'P-N-M/N1P1S6U1Z-]*_#d i i#i%l*l/p,s1v*u#z"z {{xx v x z }     "$'*.331/1.,*))'" "' - 6 799<"@"<'9*4.-/'3"6;@@GLRVY ^"\'[-V/T2V6W>[CYEWERFMMLTHTCYC\@Z;^;c>h=h8m4n.r*u$w"z "'*/4669=BGMRY\WRHC@961".'13:LTYXY^ejw|wyvjg]TVNTONQNNLNJzDn@kBbN_L\L_IXLZI]E_B]?X;K;D8>8:19+<)?0F3F+K+M)N$M!HA>70/*# !%+257:<?HKRWZ]_bgx{spnkbzZfUaP_KWMRKKDC?A>;:92/68CBEELMWRhQuEC@;93.  $)./8=CLMQW\\fmpw~ &-28AFIPX]dqxy~~zwttokkkkfhjf hfac^"Y VRLG@@;63"/'.-*4'9"<"@<99 7 6 -' ""'))*,.1/133.*'$""ysnjjb[SQKGA?70.&  "$))146389>@>631/44|6z6r4m8e/W3Q3L6L4E68 &.07?AGKQS[bjjnsy""     }z x v x x{{z z"u#v*s1p,l/l*i%i#i d _#]*Z-U1S6P1N1M/N-P-P'P%K%K(F,A/<-7,2//-0"4+ -/4:?DIMSZ\_afknsvxuqnquzvx}}vvqnlg`VLB?:5)      -0005799<>ACFIMMPNRXafgilxzz{}}xvzuqnquxvsnkfa_\ZSMID?:4/-  ) , 0 3 5=@EEJL"Q&V$]$^$glmh ^ [ X Y X T V T X V Y X X V Q Q V S L J N L J J E I X X Y ] ` b ` ^ ] Qr Ok Ic ?Y =U 8P 0P .H ,F ,H &E &C 'C ,A 0< +6 )7 '4 "* ( "% "                 ! & ) , 3 ; D G Gy Jq Lj Oe Q_ XQ ]B ^B `? e! e h e ^ Y T N L I D = ; ; 8 1 . , , + ) $ ' + + . , ) + ) ' + ) ) $ & " !     !   ! ! ! " " $ $ ' '~ )~ +| +y 'w 0k 1e 3c 5a 6^ :a =` @^ @a Ea I\ GY EY GV GY JV NW N\ Q\ O^ N\ O` S\ TY XV VR [M VH VJ TG OE QJ SH QJ NG LG JC NB OE QB Q> S@ V8 T3 X/ V. Y, ]. b. `, b* c' b% b$ ^$ ` b" b c e h g g e c c ^ b ^ ` b b e c ` [ [ X Y X T T L J J I I I L L O Q O S T S S T V X X V X [ ] [ ` ` [ ] [ [ [ Y [ Y [ Y [ [ X X V Q T Q S T T V V Y [ ] ` ^ ^ b b ` ` ^ ` b b c e g j j l l m m m j l m o q r t r t v v w w v w w r t r t q t r w v v t v v t q o q o q v w | ~          |                                                          z u v u q g d b a _ ] \ X S R R N P N N K H D ? ? D D F D D F H H M N N P U X U Z \ S P N  P  M K M R X ] a a  g g d d b f i l n k n q u x               z  {   { } { x x s u p s p !q #{ !{ #} ! # # * + ( * - / - / 2 4 5 4 5 4} 5} 7x :x >z ?x C Mz Mu Pq Up Wf Zg \i Xg Xk Zk \n ]n dx gx g k l s u u s{ uv sk pU lM lC kA k? i5 l/ u2 {7 9 5 7 7 5 7 < A D I M P R \ a d l p n u                                       $ 3 4 > G M [ \ c \ T Q J E > @ M R ^ c o z             ~ z w u m p p k c ^ V V  Y [ ^ [ e j r                 )  3 = A F D  F "D $D $K 'N *Z /g 1i 6t ; = @ L L O M Q R V V W W [ [ \ a f j f2 fR ah ew ex c c f j r p k j j k j j ` Y T T Q L H E C G M HCM HJH@963''$1 3;@E'N)N)Q'g vwwy      */4>A K M Xfnv}   )$)*./1/684E6L3L3Q/W8e4m6r6z4|4/136>@>983641))$"       )5:?BLV`glnqvv}{ytl_}`u[i[fZbNfGfDd=f<f7b3X:U8S:P:IFDB?D<A7D2D/I/L+N KLKP PNNV[`_XVSSPLKFLQXZ]]ejnngjnlljqsx{}~}o{[ySvUqPrIyG~DGKKG<2-(# ~~~|wmWH|;{||wthgb[[X{SSSNV?V4V!e jlj^[YOSQSN|OySvXy[rcS`S[NVNOJGJ@G:I8J6N3N1L1Q,T'T&N'B'@$?&6$8"5630. . ' &" !   ^ /e 6m < U h m                   ~ | z z | w u u | y w w o W L H C = ; 9 3 4 3 1 / 1 , ' ' ' ' ' ' ' ' ' % % % ' ) / 6 > T T V |V uW pW iY cY \[ W[ P[ J\ C\ <^ 7^ /h xk sm lo gp br [u Vw Qy Kz F| A : 5 0 - &                                              # z$ u( o) h- a. [2 V3 O7 H8 B< == 6A /D *F $I L P S U X [ _ b e g j n q t v y }          { u n g a Z X W S R P M K I H D C A > < : 7 5 4 2 / - + ( ( - 4 : ? F K R X# ]' d* k, p/ v2 }6 7 ; > @ C F J K O R U W Z ^ a c f i m n r       * *3 E,LWO\TaXe]j`octhyl|otw{~ #(-2<GKKG~DyGrIqPvUyS{[o}~}|~{yyvqmhc`^^][TQLIEB;:;6.,)'                                                       | z w w u i k h _ Z W P J E C C 4 2 , ' #   # #                          " A F K W i u x |             y v s l D                            m h Um <e 6^ /          " # % ( , 1 1 7 6 9 7 $; )7 17 69 6< 5< 1@ ,M 8O ;M ?O BR DU IZ L\ O_ Lc Jh Lh Im Ep Gr Gw ?| =z 3| 1 8 8 : = ? 6 5 3 0 . , ) '                           !" & ' ..036"5$8&6$?'@'B&N'T,T1Q1L3N6N8J:I@GGJOJVN[N`ScS[rXySvOyN|SQSOY[^jlje V!V4V?SNSSX{[[bghtw||{|;HWmw|~~~{wtol|hyct`o]jXeTaO\LWE,3  * *     r n m i f c a ^ Z W U R O K J F C @ > ; 7 6 2 }/ v, p* k' d# ] X R K F ? : 4 - ( %                                | w r m h c ] X T N I B = 8 0 & $ !                              % ' * , / 4 ; > > F H K R W \ _ d h h h n r w w | }      ' ) , . 0 3 5 6 ? = : 8 8| 1z 3| =w ?r Gp Gm Eh Ih Lc J_ L\ OZ LU IR DO BM ?O ;M 8@ ,< 1< 59 67 67 1; )7 $9 6 7 1 1 , ( % # "                                                           % % - 0 5 7 2 + * % # #  % ( & % # ! & & # #  ! # !      & ( * %                     {vuspl ifb_!Z&X&W+U0P5N5M:I?FFDLFQIXK_MeNlPnWq]sdtkxqyx{~ $*39@GMT[ahou|~  '-4;AHOU\cipw}         $ ) ) . 0 5 : ? D D I N S X X ] ^ ` b c b c b c e g g l r r w w v w y {                                               0w 3m :` LY UO vL J G D D @ = : : = = = = ; 8 5 5 1 1 3 0 1 . & $       #*/4A@@KTTYWZ\a\TPMJFF>r9d/_/YP74-(%"   ~{toiiegxd]]GX:S2B!50)  zypoommjje``JGB="       * 0 0 > C C > < ? < > > ? A > C D C C H H N M K M K K I I K K H H D A A > < > > : 9 7 5 7 9 : 9 < < 9 7 4 7 2 2 0 2 0 0 - - * * ( & % # # ! !          |uoha[TMG@93,% xqkd]WPN M K I H F& D, C3 A: >? <E :L 9S 7V 0[ *^ %c g j o r w {                         ~ |   ~ y !y %{ & & & *{ *v +w /{ /v 4{ 5| 7{ :l 9e :` >^ F[ I^ I^ P` R[ X] Z] d` l` qc ue {h }m o t t t m o m o m q l m l m q m j h j j l j h e g g j m $t *v 3{ 9y >| B H H J H M L Q R Q H G B G G G H L O Q O R W T W W [ Y Y W W ^ c e e                                 !  & 0 0 *                                                         { y w v w w r r l g g e c b c b c b ` ^ ] X X S N I D D ? : 5 0 . ) ) $            (/22HNP\dkx  "%'/4Jffjkpppty~~ #(()..38==BDKPV]b  '%.,42;7B>HEOJVP\Uc\jcphwn~uz# $&(!)').+5-;.B0I2O3V5]7b8h8o:v<|=?ABDFGGIKLNPQSUUVXZ[] _`b!d(d/e5g<iCjIlPeN_MXKQILFFD?F:I5M5N0P+U&W&X!Z_bf ilpsuv{~wurph}[nQfJfHd>_9b3b/g'fifXPF C C ?5//00 {^XI661,&$${{vzxzxxvuxz}zuqnkUPpIUDM?<?7>,<'>"<?<<:75&}yyvle[[XLGA=BD?7.+(&#fjotyywurmjfa^\YVRROHGH E E@@;=8996#8$3&40/7/:,=)A)B$A"DINS[__gsx ~  x u xsplnkkg f i"i%f"d'_*](a,_,Z2U7U;S>NCKFMJKTDYK^McMdKfMhKiKhHnDrFxD}HF}D|C?997<>?><>?A>??CDFKHFDCD:>599-0479542/*&& ( & ( & % % #     & & . 1 5 3 1 0 1 : E J N T T [ ` c g h h q r r v t q q { y ~ | | y y { {                           | w t t m j g [ Y S S L! Q* S/ Q0 N0 E7 =? ;H 5] +f $s }                                                              % 4 B H J T W [ k m p r u y w w u u t r r p p o o m m k k j j h f j m p $t 'w ,z 1~ 6 : ? B E I L O Q T X [ b g m r y ~                                  # & ) . 2 5 : = A F ~I {N tP |Q S U V X Z [ [ ] _ ` b d d e g i j l n n o q s t v x x y { &} +~ 2 7 < A F K N S X Z a g n u {        } y v t q n j g e b _ [ X U S P L I F $D *A /= 6< =8 B7 H3 O2 V. [- a) h( o$ u# z                                               & - 0 5 :| Az Fy Kw Qu Vr [p bo gm lk sh x^ /^ 7\ <\ C[ J[ P[ WY \Y cW iW pV uV |T T > 6 / ) ' % % % ' ' ' ' ' ' ' ' ' " "                                               ! + ) + + 3 6 = ? B B @ @ ? : 6 5 0 5 8 ; ? ; : = @ B D E G I J N L I N O O S X V V X [ ] [ ] b g} {} p i g l l q s q k i a W U R M F < 9 7 9 + 2 5 : < 5 0 / ( & ( + * * ( & !                                             { w r o j g c ^ %[ *V 0S 7L 9E :? <: >3 A, C& D F H I K MNPW]dkqx %,39@GMT[ahou|}wpic\UOHA;4-'  ~|uoha[TMG@93*$ ~{yxxqtksdq]nWlPjIiCg<e5d/d(b!`_] [ZXVUUSQPNLKIGGFDBA?=<|:v8o8h7b5]3V2O0I.B-;+5).)'(!&$# z~uwnphjcc\\UVPOJHEB>;742.,'%  b]VPKDB==83..)((# ~~ytpppkjffy                     $ $ & ( ) + - 0 0 2 5 5 3 < < = A A < : : < = D I K L N P Q U [ _ ` d e g i i n s y ~                               ! $ & 0 8 = B I N T X ] c h m r w |                                % ( ( + - / 2 4 5 7 : < > A C D H I K M P R S W X Z X S N K F A < 7~ 2} +{ &y x x v t s q o n n l j i g e d d b ` _ ] [ [ Z X V U S Q P |N tI {F ~A = : 5 2 . ) & #                                    ~ y r m g b [ X T Q O L I E B ? :~ 6z 1w ,t 'p $m j f h j j k k m m o o p p r r t u u w w y N K G D A A A A ? A F I N U Z ] ` d g g l n o o n s t y ~                            ~ y s n i i i g d ` _ ] Z U S N             |  |  z  k 2 c : m A m D n Q S V x g {                                                              ~ y t s n o o n l g g d ` ] Z U N I F A ? A A A A D G K N K G D < < 3 3 2 0 . - + & $                      2 c = ^ L p V x S Q D n A m : m 2 c                                     z x s s n i b a Z X a a W U X S R N N K I A ? C : 7 %  - ( 4 0 - - ( ( #                                          } }      } } z }  } | x z w w n n u p r p w w w| u| sy uq rr sj rh p` s` p[ pT kL mJ m= k: m6 k' r, s3 w1 w. p) i c _ ^ \ad h r r i k i k h m p s u s w| }z|  }wunmnhnfa^^cYW_^cZ^YYTWT_YWZ^R\\YZdac_caaffmidhfkkiamh^nmhf a f|ihinc$d,\.^1Z1T3P6P6KDPBTIUJZLZOWSWOT[UYP]M`O]JYJ`FbH`AeCe@j@lCoArJtEt@v>t;{<|AEA>AEHKMY^c__dfpxmmhfkffksuwz    " & ! " " & + . : :  5  :  = D D J Q T [ X !^ &` (h +j -v 0v 0{ 4| 4 ? D H M M P P N R S U W \ Z X X S S R R S Z Z a b b _ _ _ l p s v z z { } }                            w y w r q Y E ? @ = E E L L T T Y `  Y )O ,E 6? ;5 @: B6 G8 HG LI QG VI W; Y3 W, [' c+ f3 u, , 0 = = 3 0 $      rc\RJ<*(-' 7<@9 7Tx  ) @ O Y e l r t                   $ + -! .# 3& 7# :& ?7 DA IN QW Sf Qp Sx S} Q N Q S V [ _ _ ` ` X Q P L G :^ 8a $r `  B > T O E    9 B ;  6 w ~ r o e ` J .a $\ ^ u              } z z v s p k d \ P P M I C ? : 4 / ( #                   2 8 P Q V K yB v< j7 g- e+ ] V L I 6       y j B 6 / $       wqjb]`^ ]Y[XTVSOOLGGB B=;86"6%5"1(3,6-1,0,,1)4)6";&<+7+;.@)P&P"Ua'_+U0_5d3f,d+f&c$d!ca_UPK$H&C@AOR R UUUROFC@ C9 96/,'#%' "           |shd_\ZRRKHHE9;661-,%#(""ytZUS?<3-((!()-)+23 + . )+ <<?FF IQS`ine]d} g b[ U X ]ZQKNdZX%i's,y,,y(q%d*`*o-o1l-l,j-g,b-],Z-X2[7j>oCCE~@qMxMvAn9g6_4Z7V4U2X/Q6L9L9V<g<LAD@B;D9=;:7<457B2K/I-<*8(2-5406+4.-.'(*41**6/-/47>@ AFMHJOU$R(J$E&A!A>C(F)K)O-M<K=H<HAMAMLOLOBP=TFULYNWQUSW_^nav_lY]WVYSZQ^UaSaUaQZPYG_:a:a<a:a5c=f=iAkUmVpSw[|t}qq|jzd_gnlsyy|x~tojjqdjgiedXPIsLpBrAn?p:w8wAxDx?w?x<z:}=:B75}.+.-:03.-7<=<2)}   &35:<<?<?780))   &)#$  !#-308ABBGGdssqv}y}{ojjeXU[[PBB?7+$    !3)+27DA:3+!    ! !&' ')+.0,7)?':&3'8)Q!QN!S'U$]!b!i!j'_'s&{$&++'+,.+&)t'd+[,N)B,=0U07000!1.05535 3 ::BBEGJJNNID=!8#?)?.?0DJJ$I3D7@?E8I7LKJPGQBP=I:I?QEUB]?]@g={?{@sB`LPOQLXL_NXQSVZ]xSQGBEGX]~``[`eb[TJEB@@DBDEBDJSSQTOTTX]]eehghcb~eyeogohhljllmmlsrqvytvqvtytqvyyvvmqtwtoojoq rqqvwrrvy{ ~/%'||  (1>JPyW{YWC@2142- (--A>AHUUKOZf^PJMacTZE@O@7616<@@7>EU__YY_}\ZPmaadhirxx !,8;D658DD=BD@+0=I[eyvogYVV`gw~~yvoec o jb`X8.!8DOTLID'&           #!#%!$#)%$(!(++('+!-&*+(1&5%=(6+6+.-)/./;2:0@/B0D0I2D2I7I:D<I9S4S4V0^-]+`-b-g+m c&o(r*q-v+y///y2y47755:<:>><<:9?vCtFvFtIKIKMMNMPRSUSX]]_]aa__WSRR{KrIeMoPwReSgWZXUeXj\yX\Z]|_]a_afkiggiggbikllppqsvx}  xqquvz{z{}}}{&  4KNNFNKIKR_ggbXRWdabivx{upd_\RMRNA2&*5I<A945(!%%#%*+:/2/5CWRAM]I>/(+<* % & AI D 2+0D M ZZnURKM_KFRfvqdaZZS"R"I$I%N%b)a)g*l,s*u'l$p$s%q*}.z1{1}1,)')*.131../14;=86;;89=>>@B@;48;@B>>==436; >@@ =%B"@C@BBCCEGLJGGGECBBCHECMRTVVQVWWY[[^cecaacc^\[[`\\[V[\[ TOJHGJ"MRWY[\a"c4e6c$``afhfc jkjhjopptpoporr uwo/u*yz"yz ~|utokmrrtuwwzzwzz|~~)34;=EE3163,%"%%'183;=ECEJGJCTV|t~kmY\T[hmojaahmuorehouypc^^Y`ehhoojzomjQQe`[JORV^`ejtyzpY\Wouroty   !$$!--2:: <?G LNKU`dlgGA!5(7+F)U+]&]lnx }      xt!l(l+~(-+t)n-g2g8t=v?~BADD73&#.02..28AGAABPQLIPUL70.-)!# $.)$%).3:AAD G#KP,S<I*G1F/B6D9F4G9K;KFFAFEIKNJNUQHXMZTZ^VkSpPnLxLGA?==DGGIKQVVUSQZ[Z[]_d```_]}br`kbcg_idiTlMlHqRs^oanfvhxmsrlgjlnqxxtvottoliegdeilqonnld`[bg[Z [ V U S Q X U Q V+ Z1 [ ` b! e$ i j& j n o1 q' o q t' v: v1 x1 x+ }0 I N ^ y  y j { { |         y {                                        !               ~  } { x y v n b _ _ d g d e d ` ` ` j l t v x { ( / 5 9 M _ n q k k s l g K _ i d a a \ }Z {_ }b ~i g i s x }                                                            '                                       } g ` _ ` i t      $ " '   " . % ' 1 ; B J ^ [ m p | r ~ u y r p u |                              }! y t# s s o l j g e b ` _ _ ec eV j6 i, i; b. bE `; `= ]a [a [f Xa Zu U N Iy I P N P G B A < : : 5 = = = ? A = : 8 = : 8 ? A D K L K G G G : 8 7 7 8 B F F D B A B : 8 . + ) + 3 7 5 3 3 . + &    t  t m ` T >  B ` $r 8a :^ G L P Q X ` ` _ _ [ V S Q N Q S} Sx Qp Sf QW IN DA ?7 :& 7# 3& .# -! + $                   t r l e Y O @ )   xT 79@<7 gF+ kw`f^TVHCe=h.c B }ka:W4k/!v + trjgb]XSNID=83.)"  xndfda\RPMH'{v wv{'HMPR\adfdnx  ").38=DINSX]bgjrt  +v!/4k:Wak}  B.c=hCeVH^T`fkw +Fg '-(*<JR\cr     $ 0 3 = = 0 , u, f3 c+ [' W, Y3 W; VI QG LI HG G8 B6 @: ;5 6? ,E )O  Y ` Y T T L L E E = @ ? E Y q c e ^ Y S I E @ : 8 . , & ' " !          |zwnkpcdainnz}w{md^TUO\srqkpmliknicfff^bYaZ_M\MXHWJUESFR@U;S7N>NJMRKRKKDTDPCPIAH>D@AM?K<R:T9Y<Y7a:d5f5k4f7a4\5W4Z4d-d/n0n-p*h%a!W%T UO MHA>; / 1**"y{xyvqqxssoigd`__[SQbbXVSZNSAIIGA=?:83.3.+)?B==53.5=:8077-$$!!$#y{v totvomlhjgccemjhc``XYXTTSOLLOO@?=;8633.,+)&&$   ##(383D?7(-5302<?wB|B}BG|L|QuSpXzSzU|ZwZibhehldndods^qi`ae\_ZQYQZiYsUtToTjUeWdT_PSOSOPMNMQKQJNKIJLFKA7;0;#9&9!7$6$4)2(466979742 4 1-/-16>AEFJMRMJMOTUWZ\WWUPOEMRTUURMFA<99<><@CAEJMJC@<;>;;CCHFACFF@AF~JwHrCwAu@m@p>p>j@f<c<a9`;\>[>W<V<W;R>B9H7R;m9|;2224;;<911/,,'%%(,'"(('%%#%''"(-,-,1#1+/3-3-7454:73781F1?/G,I*<*+,)-+-(,$(('#'$ 2#("( .-0.32&$(!!      Y[R\ahktyrj~~~|wtrtzzyppojmyzyz~ywtu~t}w}t{ssqqnnljjweyeudybp`o[r[oUoPtPwLyKwIzIuKuItImFoFkBk?o<k7m0h.k0o-p-m-j+c#f![VVR JE@;1*..,)  qliUNH:2%             !!!#$(+358<FKLPQVVZZ[[]`deejlloqogigjjstvvx~|tytryyvvroowlgb`eehceheebb^^b`cc``V ^ X^l w        y o l ] T Q O E D ? @ ; 5 3 . 0 . 3 0 1 8 @ J L J J T J G 8 ' + 1 , & ' 6  ; : 5 :  5  3  ) $ ' ' . 0 0 + "+ "5 %= #E #G 'D (O 'V (c 'h *j /b 2c 4h /v 1v 4q 4y 6~ 7 ; ; 7 ; 7 9 ; ; > 9 9 < @ E C > @ > A A < A @ A E O E E F M O K F E F K F% K& J- F2 FA CS AZ Ci <z 9 9 4 6 ; 7 4 - , ( ' #                                          { { }    { }l xd xZ }U ~K A > : 2 * - - !                             : 8 #5 -1 /3 73 :: <; ?8 F; H: K; N? X; \8 \0 _, a. b) a' b" d" f g g l l $ 8 @ G V Y Y X Y Y T X S Q N G ? : 6 3 . 3 ; G L O L Q V Y c m v            % ' % % * 3 3 6 8 6 4 , ) ' ' * / / 4 8 8 9 ; = B H O T Y ` e k p u w( u+ w0 y2 z: A C M W \ _ i l q u } } s k a X X a _ \ d g f k n z                         ' 3 6 8 @ E L T ^ e o z  ~ | y y                                        | y w p k h f a ^ \ [$ [. [0 R. O) J& H0 G3 B8 =: 8< 1< /D ,L )N %U %_ $` $j n v s q  n j j i l s }                               } v q j ` [ V N K G B B ? < : 5 < B K S V Z Q U V _ _ [ X Z zZ u[ nZ k` kb fd dd bj \l Zl Zb \Z \N ]F Z? W< U: W0 Z( X W R P N K F F A ? : : 9 4 4 / * ( & # #                                     y t p  o &m &j +k -a &V %T &T &L #C > @ @ > 9 6 4  1 %4 %, &$ % # ( + 0 - * % % % * + & !   # & ( + - - / * + * ( ( - / / / 9 : : : 7 :} <u >k ?g >_ <\ ?U CR CI D> F7 H/ H& H K H H I I M N M K H H I F H I I H ? : 5 -r (j &e &] &[ -V +N /E += %;  @ : ;7221 446 97;<;2$939<OBYK^X^`^}|~vni [ U N I G. B6 A@ AJ F^ Kc Pv [ e y   ~ |                             ! - - * 2 : > A ~K }U xZ xd }l {    } { { y y t s o n j g d _ Z U P N L G B < < 7 5 7 7 3 3 2 - ( #                             z n k f ] R N K A ? 2 - &                                 ~ t l c [ O L J I ? 5 + !        wmc^UOKJ@;POPOMFMMC<;9;@JKOU^cmw       ! + 5 ? I J L O [ c l t ~                                 & - 2 ? A K N R ] f g d \ _ a X X a k s } } u q l i _ \ W M C A z: y2 w0 u+ w( u p k e ` Y T O H B = ; 9 8 8 4 / / * ' ' ) , 4 6 8 6 3 3 * % % ' %            v m c Y V Q L O L G ; 3 . + 0 0 *) *& 1 1 4 6 6 8 ; ;>@@=@GMTV[`ehmrtwzy~|shaZWP-9><AA<>992-GO[^`eowwyww"-22*#yu ur'r2r;r<wMFOPWZahs|~yzwtrmhe`[VTMG@=;;;;9999999z9r9i9^;BBEG     $ $ ' % $ " % , , / 8 8 > > = B J R T Q V  Y W O R Q 'O *V ,\ -f /e 1m ,k *o %k  j m o #t %t *u *w (y %~ '| ( % "     % % ( ' % #         # " # ' , * 1 1 4 9 > E J K K K K P P O O T U Z _ a f d i k m w w |   } z || | y u t m k f e f e c e k j j o p m k k p m k j h f ^ \ Y Q M J E E E > 6 / ' $ "                                        z s s { { v u u s n l l i f b ] W P H H C ? < 9                w m e ] S O J ? 3 , "       "$,.)))$$),135@JOTX]chjmqtwy ) @ B N ` c c m j j g h c b ^ [ ] l o c ] ] X V S S E B  ;  ; @ B ; ? :  @ %; += /E +N -V &[ &] &e (j -r 5 : ? H I I H F I H H K M N M I I H H K H H& H/ F7 D> CI CR ?U <\ >_ ?g >k <u :} 7 : : : 9 / / / - ( ( * + * / - - + ( & #   ! & + * % % % * - 0 + ( # % &$ %, %4  1 4 6 9 > @ @ > #C &L &T %T &V -a +k &j &m  o p t y                                     # # & ( * / 4 4 9 : : ? A F F K N P R W X Z( W0 U: W< Z? ]F \N \Z Zb Zl Zv Xy S{ S} U U X Z ] b i n q p p k i i l i k n q v s u s s s n q" s* u6 n; n@ iA fH bO _P ]U XT XP RR MU H^ Ha Ac An ?s 9u 5u 4i 2a 0U +U (\ %c  f c ^ d h  h c f n u                                    "&+.0;DLINT`mt~ ~&{-{5v7v?wF|MyRqWo_qkovmzg{b]]`bb]VQLD=;660,++)+)$ }uqkgaXPH?7/++(&&% |zzusnihOwHgEg7]9[7]<`A`EYENCJCD@66,4+6+4'7';$9;96 2 ( %              # % * '                     ..38@DELOOLB@B;8=5+&              ~ ~        } {} xu on gi gc b_ `Z [T VA V, [# ` ` d j j l n o v ~   "                              " ( ( 1 1 ' " % # % # %                                     } { t v l i o ~   " % %y (j *d (b #` '_ /Q 2P /V /i ,s , ' ( * - 2 4 7 9 6 1 / 4 1 6 7 Ey Jy M~ T U U{ Wy \~ ^s fv iq no rg ug ue re nl mn hn ds _o \q Zt \y Uv T} M{ Kt Hs Ax 9v 7s 6n 9[ 7V 4U 7L 9L ;P EU JZ JX FV EQ AP CK HI CI @N 6F 4= 7. 6# / / * %                                                                 ~ t r j e \ V Q M @ @ ; @ 6 )     !#(/4:>AFKPW\glv{{       ',113E4M3G3Q3V4V6T4M;[8W8Y;a>`=\HkGkGoJpJmOwT[aekk)^NW[TZ^Nf3a0^8W7W:W<OAEACDBK>P;`;q>@GEBB;9^9i9r9z999999;;;;=@@>;; 8 6 6 4 1 1 *& *) 0 0 + . 3 6 : ? G N Q S X T Y Y X Y Y V G @ 8 $ l l g g f d" b" a' b) a. _, \0 \8 X; N? K; H: F; ?8 <; :: 73 /3 -1 #5  8 : ? ; B @  ;  ; B E S S V X ] ] c o l ] [ ^ b c h g j j m c c ` N B @ )  ywtqmjhc]XTOJ@531,)$$))).,.136:@EEJJGJNzOrN_QPLHOAN;L9I>I7B2B,E'E"NLNJ NJJLLGEBD5:;;88:;@BGLJLQQ]b]YYXQONLxNtNsLoLiVjX][_b[gZhVhSjPlGvA{F{BB~=75+(#     ~ywtmhe\[YVTV^`ehjmkaWVRLEB@B>3,'    "&' +.38;?@(D.G3I3L:O?TBVKVQVZX]VjLiLoNsNtLxNOQXYY]b]QQLJLGB@;:88;;:5DBEGLLJJNJ NLNE"E'B,B2I7I>L9N;OALHQPN_OrNzJGJJEE@:631.,$" |srkhaTPKE@;/,'"sog]ZSUU]]SK?:5& gff]XUS"HD"<)<.41&5&8 =?BEGEELOSXYbchjmqrww !&-04:>CHHKIKaknnsv{  ',3>B@BELRVWakmjhe`^VTVY[\ehmtwy~     #(+57~=B{B{FvAlGjPhShVgZb[[_X]VZVQVKTBO?L:I3G3D.@(?;83.+' &"     |uo j e a a J=;66441/  ""$$&&"  z}x g                       # ' * 4 ; K P R T Z _ a c h i i m x z                                      { { s q p n l f i l l n s u u v { { s s z                                        " $ ' / 6 > E E E J M Q Y \ ^ f h j k m p k k m p o j j k e c e f e f k m t u y | || z }   | w w m k i d f a _ Z U T O O P P K K K K J E > 9 4 1 1 * , ' # " #         # % ' ( % %     " % ( '| %~ (y *w *u %t #t o m  j %k *o ,k 1m /e -f ,\ *V 'O Q R O W  Y V Q T R J B = > > 8 8 / , , % " $ % ' $ $      FLNP``ggdeiloxxts``boqsq|sxqutr}n~i~\YYdmid_\^ZYYachhd^OHE@9'%"         "',/269<@FH J"R%R*O/T6U6\9a<a<d@hAiCdJhKkMpTpWwZw\z_ud|hmnswz     " , 3 ? J O S ] e m w                9 < ? C H H P W ] b f l n p q s { {                                      z x m i i h c a _ Z T R P K ; 4 * ' #                           ) 6 @ ; @ @ M Q V \ e j r t ~              ~e y[ tT {R {W ~` c ^ ^ [ Y W ` W R G G H G O ~L }O {G x@ t> tB s> q> qE tL xJ tT oO tR tQ sO sL l> o@ o= l= j> i9 g= _; d@ iE jJ nM `C Z; Q4 S4 Q1 P/ G/ A3 ?/ .3 * *    # . 0 - - 5 2 2 5 8 = < ? = 8s 8n 5d 5N 3F .< .7 +0 (/ !#                  r ` S G : . !   !$.28 :<DFF%).149;CEMQRY\kkmmmoow|~ #02377<AAFFD<:8 2.$!  ! . : G S ` r                  !# (/ +0 .7 .< 3F 5N 5d 8n 8s = ? < = 8 5 2 2 5 - - 0 . #    * ) , '                                                 t o h f f f h h f c f a ` ` ^ c c h o p t p o o p p p m k h h f h e{ fx es fg aa ^b \b W_ VM OI LK LD O? O9 L/ G/ C2 C5 =7 9: 49 /< .9 '5 '- $& $! $ ' $ $ " $ $         ' % ) , . , ' ) . / 3 4 ; = ; 9 9 8 ;~ =y 9t 8r 9o ;j 8g 3h 1e 3b /] 1[ 4X 1V /L ,I .? *; ,3 ,1 .' ,$ ) , , ) % $ $ %+ 4 7 > < > ? A C F F M I M N  I  H I H I H I I R '] %b 'g .g 9d @d EX GZ LK OI VM W_ \b ^b aa fg es fx e{ h f h h k m p p p o o p t p o h c c ^ ` ` a f c f h h f f f \ \ V O M G E > = 9 . '/ '4  C T Y ^ ^ W [  Y  W R R M B ; , , *  *  )  %  %  ) ) ' "                     l l f f b X W R K M > : 9 9 A C > ? > H S d l p v { x u l b \ U H 4 / - +            |umh_cdddc_^YY URWURROOKHFHEFCA<@>>>A@><<>@>><> > 7 6722,('(%%"% #%&(-/ 4754"5%9'5(4'4*7,5/72545726/<4>2C/E/F2E4A9A:EA<?<>7<;<2>4?2?/A-?-C/C*?'?*A#?#?%C'C"D%H"DD >>9"7#:77:>CH NRXXX\bdgilnppnpppqquuz}}}}} #%,/299122W^impuxx $%%$ $ % ) , , ) ,$ .' ,1 ,3 *; .? ,I /L 1V 4X 1[ /] 3b 1e 3h 8g ;j 9o 8r 9t =y ;~ 8 9 9 ; = ; 4 3 / . ) ' , . , ) % '         $ $ " $ $ ' $ $! $& '- '5 .9 /< 49 9: =7 C5 C2 G/ L/ O9 O? LD LK GZ EX @d 9d .g 'g %b '] R I I H I H I  H  I N M I M F F C A ? > < > 7 4 + - + * / - * ( (                          ~  j ^ Q E B @ I L X V O N N S ] ` ` ` c g r r w |   ~ | v v q e Y Q J E B B I V ^ ^ ` ^ b b ^ ` ] ^ Y X Y V Q N I = 1 $   ! $ . ? B G D 8 ) ! "     vqn k \ N K I I H F D F K I F I M K N R U Z \_a\ZXWNKMNNMHFA?<?? <775450/002400--+*-&&#%##             "      !  + 1  3  6 8 5 8 8 ; @ B I L Y g g e b ^ c b b e b g e h h h g g c [ [ X V O N L J J I I G @ ; = : : 5 3 8 5 + $ ' &             !  " & " ! & $ ) 0 0 &                            ||{|vrrog e b ` ^ ] [ Y Y YTT SOJ I E B ? ; ; D DJOQSTQSX```^]YXTTQSQNLNLE=;86=@@DGEJLLOQSVVXbhjhlmtvvrgb`X`^bzhxo|owqxoutu{nmnwzuma\UTTRTRJ@>AEHPRTPYY\\^cipw|}22/%#     %''), /49;>EJMRR RW[\``ejkmo"p(t-u4y;zAuErHoOoPoRoTtPuPyU~Y~_|h~n~u|~|woommmkk\YRQMEC;941.)%%$ xxupmi^W2<AABDDBA<77:?:=DKSQNQSQQX__`degginoqsx}}{yvqlijlsy} $(-2.-+)+.38778<???AFKLLN}Q{Vy[{`yd~g~ilqty~~ysjotvtssqtxvv}{vojnllstvxqleddgid_][[XZ[`dllnssvy{        "%'9@EHO^dhhcaYYZ^\_dimdYY~\~i}ntrqusxq|sqob``stxxoliedgg``PNLFAA<77320# |~u~n|h~_~YyUuPtPoToRoPoOrHuEzAy;u4t-p(o"mkje``\[WRR [ \ ` aem o u ~zrpkeca^\Y^`c{fyf{mypsrtuqulyl~b`VUPLFB?ANLF<""%*,,,/169;>=>B@@CEJOQV[Y\^acekprz~u o m ea` \ [ R RMJE>;94/, )''%     #%/2221992/,%# }}}  !$(+|0z3u7o8m:f<`A\FYKWPTQTUOVM[O`OeMeLgLgJeCi>n;q6s1v,{..)" $''))%$$*14;@CGHMT[^ehkptz~    !(.025<?BDFDFGIIKKNPSUVUSSZ_gjsy~~ytqlig~d~`y[{VyQ{N}LLKFA???<87783.+)+-.2-($ }ysljilqvy{}}xsqonigged`__XQQSQNQSKD=:?:77<ABDDBAA<<832.)!  !).238<<<72.   uhok`RMLQQLJ;;>>9;89 8 = 6 ;9;94*" ) 37:=?BGKLLIILLNILLQKKIKLL PUdjx}{}{{zzvxuxqplp}p}nniidgiddbXXSSPR]PNPNPNPIKFFNPUWXZagipsuvxzz{}   $$$$ '*/6=BHMT\^"^'^,^-^-e-h,m-t*u'     $-078AFKPX[[]_digddelqxvtsllnjov{}vvxtqsstvtojg_ZSSUVUSPNKKIIGFDFDB?<520.(!    ~ztpkhe^[TMHGC@;41*$$%))''$ ").{.v,s1q6n;i>eCgJgLeLeM`O[OVMUOQTPTKWFYA\<`:f8m7o3u0z+|($!  OJUTWY\\^^\^^h\k\t_p_matfoiukukmnorjukwoxr}ommprtz~zkmpww&5:?KS]]UUSZ]gos"',/;@EKPTahkrs|zwsnmhd|_u\zZwWwTpMpKkJhCdAi@h<d<a9a6\6U/T*O%R"R JHF@<962/,'"           {yvssnlld`[ZXPKFA870-$     '*u-t1t1p6m9f;f;j<k>f@f@eC`H`HaMcO^PWOJcfikmrw}|zwx| !$35@D?DJIJXbcchmttrw~   %0<??A?ACFHMP]_dffg d gx}z  "&&$$""  /14466;= J a a e jou|   wwpmkz~ztrpmm}oxrwoukrjnokmkuiufoat_m_p\t\k^h\^^^\\WYUTOJK>C>>C;C<@@3@,>)@<<;766 99996764,*%###%#%(*}(x,p-\/K1?2:/4/-4#697;;>FFMPPRTUY^_cdfdca_Z^\^|Yv\oY^TVOTJSENFGE@F=H1K5M0O.O+M!OU\\ WUUPMORTTU\\^ccPPM_]Z\ipkd\XPNSSNKDHFP W U MK?A>:?? M#P%X-\,p(x*}(%#%###%*,467699996 67;<<@>)@,@3<@;C>CC>K>OJPWO^McHaH`C`@e@f>f<k;j;f9f6m1p1t-t,m-h-e-^,^'^"^^\TMHB=6/*' $$$$   }{zzxvuspigaZXWUP$&+058:=BBAA==??BBFFIILPQV[]`ejosttx{  "##%*/ 1-(*-4;> @">%E'K%O OKMU \^fkmruupnz}| "#**'**"#"%'(-167622//-/679<@AEHJOM!O+O.M0K5H1F=E@FGENJSOTTVY^\oYv^|\^Z_acdfdc_^YUTRPPMFF>;;7964#/-/42:1?/K-\%X#P M??:>A?K M U WPFHDKNSSNPX\dkpi\]da__]SKIHK<:?<-*&#!  # xql_XSF.-2 C HMRSilz~yrpjhc``^a` `/cB`O\RRRHCC9B686/>uz    !3<<8320.-)#    ~|upruu}wzzqnlgd\WPFA><72424542(|uwyypaQLG''. 88//1 > J M#R+V4V5V7O>JIG_Cp9s3,*)*}}vp nd\PMNM 7"2%"* .,31BHM[acfkku~rtqhg`^[VTV]^[XTLJE61563+" &253:875335:==AFGGIINSQNPUVZ|[mPRLKIMFJBJ=;:7570/+1&'! (+..+&(     "#*-2!7"()') ) ),,1355310101331068::65356::@EGILOSTS}Y{[}]}cgjmvvy}wx{v|qnjjeedegejitx}{}y{nioqsijd[ZZVZZ_`ZZ[SLNKNQSXigii`_`nnln l(b-d/[4[5S9V>S?ZC]?iAiFdFiClCtAxA}?}?CAFHFMRSWX\\abfglsv{#%,,/11''*/47>@779@CFWPRRYPP Z \c ipz      zxsx $''$w*r1u3|84z6i3d4_9\;^;f=_@_@wEEJTzTrVu\radcfk_rcphtrr|pomjhkjhkkojhecehe^^[[OLHEHGC@=89BBC =&8,65>E=Q>Y=X;S,V"@"836?BQ^`eejmy|{""''*$"')*16HEEE B BCBB@>>=@6113469;>=B=@==>;=@ C@=94 3%1#3&/*/0,2*7)4)<':'>"A F$D%S)\'Z"db_p f fiu{{vlg\WPKFA>:4/(#!{vsnnkaKIKHHC>:40-&! wwrqmjhcbYXSOLEEGEB?=8 5&1&.4)<"<D"HSUX]ff g dgffd_]PMHFCA?A??<0%   ~wrttmhccbXJIJD?D@53$!| xwz|}xuwrrmpphihidda_^YYPMHJMOUZ^_\\ZYTORA<4(    { xn f g nqnuuvzz}}vpnilkdb"f'_)a)f"lx rcwd~_dYWYROMPR\Yadac^ZK>@;7;9>@4(2/42>H>7--/,*-,/99@<2297 2 -,-#2$747>>AJTWZ\ckikfddk#r$z&|(u.|.0.(!$$!#+-057:BDB?<?BGGIIINIIGGIBIPNGFB|FwBuDpAr=k=d8^5^.P+R&P&T$T#K#P!T#ZZWTP$A+>-;+9(;&9+729=ENZLkNsSQS[q}~'~xsoiZQB BBLLIKIBA2& $&&$$!  5; GBB0.,'+&!   |zppokmmprtutpojkhjmopr|trphrcccfpwrmkifc"#'%#" xqoqqsvv l jgUV XUdbi#_%`(`/i4e<t@}FJOUY\_dmmsuxz| (4<AROTYZ\\_^ZUOMJHMPYY^_addihihppmrrwuxwpfccc^\\UTTROMPUUW\ \UOJHEA@<976/-//226761-('%"#"**'**#" |}znpuurmkf^ \UMK O%O'K%E"> @>;4-*(- 1/*%##"  Qapu   |wpja!W(e((%#! !&*(&**-*+/2~/t0p4p5t7:>A??DHNNPg}!.Vqx{vslgfba\\XWSRMFHFAC??}A}AxCtClFiFdAi?iC]?Z>S9V5S4[/[-d(b lnlnn`_`iigiXSQNKNLS[ZZ`_ZZVZZNLFA?::5358A<AABDDIFIGD=7-+ (    |z h``WR Q RQYD]K^K`IcNgNhIlKlFtBt?w=y?{?{B~=AGFIINSUZ[_bedeejjn|q{vwxy}vvmjgc]}[}Y{S}VoVgViTdQ`S_Q[QVSVTUVKYD 6Q R QRW`` hz|     (+-7=DGIFIDDBAA<A8535::?AFLNZ[djisqoin{y}{}xtijegeb_[ZUSNIIFGA~={B{?y?w=t?tBlFlKhIgNcN`I^K]KYD[B[AY=[7X2Y-X)V#Y$`bcbgjh jllqqtttw{yrooj``\YQHHEGC@=84'%"O`j&vKbgsqssx}tos ~~yo m"j"]%]%X(Q,N*N(L4J4G7E>@>;E8K+R+T.U0W3\5_:f3i!m'w'z6w=x?wBw@uBrLrSsLxD|6|'x&sxxw xzx z }|      urrmphcada_^^^a^WKKMME;71'*9KRTTPKE><997922667;9>RW^YYWTPUPJHHCER4#"#"#%"*644;7;>FFORRY\Z^fikk ruxzz}           !"$&)+).3;:?;:=858:??GGEGO]bjrytjh cc`bec&e&j'g&c$b'`,b.^1`1c3`:^:e;^:^:]@YDVEXGVETJOJJQJVGYD^IcGeEh=m?jDlGhJgXgYe`ghjmjbb^^~[~LGGEGILLLIE@?@BEINOQ*T2Q#STSSXhlo#{?{Nak{"%'48=@CGEHHQY\``joory{wtttqqlljh jgbcb`Y$V#X)Y-X2[7Y=[A[BYDVKTUSVQVQ[S_Q`TdViVgVoS}TSOLIGE@::65356::8601331010135531,,)) ) ')"(!72-*# "    |zxusmmd_\YUOJF@}<t4e/i(`%`#_ibdU XVUg j lvvsqqoq x"#%'#"{xttsoje`][VQPLIIFFBB??==AABB=:850+&$ }}sjigji`dd[ZQQLQNKGAFBA:820.)&#    ~|ryrj`TG;896699434316611,.441146;B;83.)'  zvvnaZRMFFHH/(%  |{tqywhgc^VTO#()).578<=AADDI?870&#!$)& (*5+:/A2=7?<DAFDDFAH=F3M3N+S)X)]#d!f$k$x !(2DGGNQKBBKSSZZUSZUXUVXUK X]]`go v'),,4>BEHH{GvHsOq[t\t\ncqencic_f[hVcVcNcKfGeBe?f:f2`3[(YW[\[W^^`^[ac^\WWW^^`jkprrwrromhe\etutuyy~|yyuyzwwtrormojheca`c`ccffjkmrhfjuz~~~      &))AA??BBI`glvyy~    ';>@EJMPYhmnssw&)+;B@LOTV^cghwyqt{|  %(/HHFFMRZanvvz  ').38;B@CELOJB@=~;w;pCjCeG\BY9T4M)LC1${ v q ibXHNMPZWMC>FI>:% }snbNMH5/- *((%!    ymjgc[Jr@oBm=j8e6Y+Y&Y"`cb bYVVXV[][V[Y[Yu[hYdXYXFN>I4B/@%DB? :3.+!"",05=EGE@DDDINOY}[}`gjjjmljb`bmywlNLSKGK<7:#rvttry{{~||ytw|      |ueh J#L(J5QDQSY\YaRb[gcdefhiesou|%%,89;GJLHJLOTW`ehmorrwrrpkj`^^WWW\^ca[^`^^W[\[WY[(`3f2f:e?eBfGcKcNcVhVf[c_ciencq\n\t[tOqHsGvH{HEB>4,,)' vog`]] XKUXVUXUZSUZZSSKBBKQNGGD2(! xk$f$d!]#X)S)N+M3F3H=FADDAF<D7?2=/A+:*5 (&)$!#&078?IDDAA=<875.))(#*//5:?ADHIHKNSX]_afkkkpssvz"$*,,'',$ $'))3,,4;LRY`ehorporrtwtuwwyyzz|$&"!&,05:JNOQOX]]bc`ecjh|ryytwe~`^\YTTTWROJHEB=1.)$       !#! !&&+07<CUXZafabgn}vkbXUIP}KMuKpKCxC}DCA<x9q:g<d<]9X7U5H2N4P7\5_0a+]+Z+R*W(W*Z*_(_!P!A9/+&-07FIHA<7>ADFFIIKZ_ZP \z zvngabPIC%~wmmt~ymeXQSJE?=3155?=B?=31$    }umdc\Z_^ZUPFA/-,%         "%,/99<AMPY\WZZ\  4 7:75*zyyzzzyzpoomomoomjesekkkeheckZo\kUoMrKtHpHoEkFhOfK^M\J^>f4k"o okh^\YWWY`mu|~|ur t| "%12/,/*"(@/"#     !$$&$&2--&$#!!&#$$&##$(++-++.-.2353775788::<DFDADBDFGILPPLNNQSUXZ[]_]Z[[_``einigijlggjlnoqt}}y{vyxy{{}}~    # "%--#,-44<EE@KTYYZ^cinnzrnhd\^kswu}rnmf_RRF}EYhkpf~d}f}_{^{UyZvWt\v_xa{m}m~h~&,8:@EJ}JvOvNsNsQ_6S1P3A&<&2--& $!       ++050,&!"&$|z*&!!##!#*(r&p#r#a!a!Z#R&T*T+Y*Z+d-h/i-c0^/R4J5J4P7K:K7H9C5E4--*-%+"+(*-/0/0 0424045599ACCHHKMRRPRSRRUW#Z'Z*]*]>fJfOiYpavfkpuicirmicad_JC@A<41(%%(2;KMPR^ci|}zvsspkkkfa_]XSNKHIHDA?:5//* "  yvl g'i*g,b*_.X9P@IBA6.15.5..$(%)$% ,.46;=CEHLMMMOTVVW[aa^aa jkpuzz+:BGGQ]bqx~zyrojjfkmmkhc`^WTW\\\WQLHB>=;9;@EJLQQMLJHB;>;84/11.)"     zsu~s}p}nqkibbdbyd{dxanfbdXi[gXgUfUdVaU_P\K]K_NbNfLiGlDfGbFbI]D]:a=a:a8_:_3]2]Z X ZXWUS P NKKKMHHDC?><<>ADCDCC>:942020-(++%%&&##!%|#u%o!p k!jjfaa^^YVR#T%O!O H!EEB@= ;46//**)!3#;*E*B#,#'%.(10M0O4O4L5H7E5E0@- *((( & * +-//04459"5$9'9.:*?3A;CBA4>,>)<%>$5 7 9:>A?:AADFFIKMNUXWU]"\%]/_$_Z]Z]]\\Z\ZZZ\_abdabggklgilnnkgg%i*g*i3k1k$n$n'p)v)xz}/6=;889=MQ`uw|yymc`[aTGEBC66$*9@JLQQYWMQamtp~u|yjLEECB>=@>BC@@;9>83/'"$"..*,%$%"      $ ".@E>@> C BC/ )   "*,.,**)'""% $$)$$ ""$ %')**.**)'%$ " ,./ /1631". /.,"3'1/4,6%9,888L4V8[6a3c3h1f/h.f,k)o4w41333,,114386898;>@@CEGEGLOVTVWTTWWVORVTVTVY\\^aeceffcjkkmooprrpruww||   |y~  #!)##+27KI3+zzupkja a^aa[WVVTOMMMLHEC=;64.,% $)%$(...5156.BA@I9P.X*_,b*g'i glv y " ~vrqob`` beeggjjolhe[XVT{LZJMJCTY]cw{w?O0$""#*/07>AHM!N$M)K+F+F3?0<)9+:1>8D8K;X;]?_B]EZIXL_I\L_LbNkBn@zDJNLNNQNOTNVT]gjvyw|wje^YXYTL:31.'1"69@CHRW\^ary#&#   #$(38xFsFpDnGfQaU^XKVHXE]>d<g@i>q@qCvFvKyO}U}Y^\^^~dhfkmpz       " & ' +.00)1533=@B;:::6"5= @"=%=':'?#@ EI I#G(@*B,@,B(D(L2B-N/O-S*S*V2S1S-]*^,`,c2b/h,j/j-o1q-t/v1w2|77<CE@@HHMHROPJMUUYUTR\_^acha!Z(a+a-a0W0R9UDRCPCOIUPURRPPPMSMWJWHdJiObPs\}ZWWWYRRMC@@<7746//1((,(%'}_PID::754-&yl nje%d%dedddegggd``deiioolnnoooqijiUQLKD830(     !-0/49?HKXadglq{zz{rxm{h{e^O{HHE=841/.*)$  *=CGJJJJGGLRehkororrwtohe^\TJ@41',,%6LWYa `e \e`[WHCEGB@91338C=@3.//"    {{zzzxuusspnpplpnlkklqppz}}zpd\NNW\]a_\]Z]\]]_\\XXPPSNNHDNPSPMMICCH?A?? : 5544(%       @Ҁ ; 6 8 : = @ @ = 6 5 3 1 3 0 3 0 + "    # 1 1 2 1 - , / / 2 7 9 A M K K J M P T xT wT zT xY nd id dk Zr Or Fr @p <r 6r -w x w u } "{)l,j.e8eD`EbI`J]L]QbNgOj[nYs[q]obqqerbo]qZoUqPvF<:23.-(&)(+2537335:<AAFFLPXUUPIGBAD::<:5035<BKVxyvy{{xtqovyqgbdZ[XUSKGA<20()(--))(.+))+(  !#59>HNRaluzppjotuzwz~|~| .9;=JORw[~ch~to~khhehfjjea^^Yekpprrurwz||~pz~~007BQ[Z]_nnqqty          9972*  %"#%*-1769<@;>>CAC@CTUTOMMPPRZZ\Zacc_YUZcr~|y}uwrmhea^YVOLHMLOJHWh      !$((+(###(!#z#x|}z usrn r w| }zpnkkhipnhfhkccfknkknfhpx$}$x.z2}.88550377.5238<BFDA=72-+)+252+&#$&-22&##(($)+-$ & $     ! " Ѐ& $',,)""'+,3.18868=@@BB@@EOQOIDBEEIJOXbehjg^^[[XNJOSSSVXclmmhcVY^`ccjecejqw|{wwtv{wvtqrwouqmqhqct\w[{WJC=JJMJMMRTQHLOT[fmjeWMG=/1,,)'$$%'/38989>4B>;994.11664631.*)"    snaXRS]lbWNK<9::4/242% ! +9?M WX R H 075 + !(-- 0&0*2->/Z-l+-/04<4/0d2_0P0I4C0?/:/9799?CA:<97252#0*/5-2+/%*!+% #! !((+/ 5 < F IK!U#]*_2_5]5\5Z2Z*S&S*X-X:b7b<f?gHiKpSndikdkX}NS\}dninnkqksquxxulqfsWvRzR}MM]flg]df_\KHIx7q/p(n&n klnsnidk nsu}  {v pqx  {zvklquxx            y`SVTNJG : ; 8 3.00'3'=IQTSNI'@*?.I*]*`.e/m/g,^.X/E*6*0',,&,/3$4!9@;99 =C EJ Q QV W T938:9;;5@0H1H8L:J1C0C,L!RW[\`!^'[,[0W3V:VDWEW8^0a$j)k.p3p0m+m'y5y=t:zJyOz[|^|N|;~8;EJQSX[`hmlg]VTJLONIILJNIJD@66|1|,'0=86.1+.;;8',)13:1..)!rhhmmefjrywpkjjfefhptuyy| x}||pwuxs^\UY___khmimus}}zssifa^WTMOPE9#<#C(<+A-A-F0H2K2H.E.@+>./5#8":=B?"B#IL"KFIGKLQSUSQQUUPNVZ]``ddg iedeegjlonovy}}~~}}~~vx ytig[ZPFLLKIDDAB573 30 ('7$;#9*, (# !& "#  !$#-+3..3??<<5#     wu yo~|tpE>>CQLB;8  ',*--21/26246477{A_CaCkFpEuJ{JzMzR\zdvnia^TJHHEEJOUUZ_a_\\^acpruupzkzip^aT9R*Wdhhhdinrwwz}|xsmkr|@wsnsssu|zrpmhfchdfmkprkhhmpusurkfZRE>6,* {yx{tvongnggidb_]_d_`[Z]XQVUXXSPQKNFGBGIF?:7+587FNNGL50+$!  !          !#(-).03027502+(($#   #&!|}} w srkksnnkhkkimknmnuupkhfcmnrr||spniih^ZZWUTWYZ\^afmkd_ayauZMP|TzUuYp\eYeUkTpRoKfOcR[O^J^F`EYFVAVAO>O>L<J;B<E>B>GCEFLHJTRE@;9;6>6@1H6C'</;)7,6'6 1, %#  #'*(,,*(%""'#"  """%(,//499<;77;>AEEHHMOTZ\YMKHKPUYr%@GJQcyaemry~tohWMJG813/.)'%  zvngb\UKMRMHHD9227AD\}\xfufm\hZdMd5c%^ _(^/_7_<^<\<R7P/M(M#P OKMOTTWZTM KMPRPMKKHCCACC@;7672422/11*%        # qohmb`[^YSVQVVNJ:655::,'+{+{$~"{{y}} yyxx o otooled_d`]ZZVSPNLNLIIKIIBDGIGDA<:?A::252.-0552}0--+}-z(s(p$u#|}if#a$^!W!PMJFC<<PWYT;79<;-'#    '*142% #('6<74--%%""    }{~vytqsqgdUU[SQLIFD=35=<2.+-(!~|ztp||ywzzw|w~zwumuaw^w\|V|\~\WRJCHC@B==@>~@yMwOrGk=k8h3j/m.p3r4t9t6t1w3w;w=|84HRTOM`ea``ejpyy|z| ()))##!028<=50=NQQV[g`iiSLGKIGGQS]gq!$$&)0:20.03...- 38DL d,i7iCj>tM}c}h{fxksktmtxsxs|vy}{vvxtsvppmmffdmnw}wwsu}   C6(%"    # ;A@EHCE;     ~xvqqogged` b g_X7--(  '*'#%(2266;;>JR^dkpw}||r|upnzpmmokjaG^/\^akڿmܿmnnppxƿ}xfafpsz}ƿտտڿڿпϿʿſſʿտ))%**     ޿Կȿ}x}{z}}sgnxxs}z} {xxpqvuvndkgifXPKPMNC9504>? : 2   # ?7(&'*&/':&<)A)R0F8ADFJS[g]kcqlmmlggccc]^bcegljhjhmqwwvÿʿпϿ˿ƿ  )36Mcft 032#!%& (* *+*&*-252445577>.H2R(W\ \\]]\]ZWNKMNRRNMIHKHFHFD>4~0z&y%p!j*f-a0a2e7Y7O:Q>GAEA><.787@4E4Q0O/H*G(B08217$:9:ٿ9ʿ:տ:Ϳ0440542/-/--4\9?FINRRSSX\_]Z_dilվq̾vǾ{ɾоӾx˾s̾pݾqv{{{#}!˾վվ~hYSXjom]Y]orѾǾվѾؾ־   4<DUZXD45?_{Կ  ޿޿"/;JYmtuw  y"y$'$''  2INij`` g ][PI: 2 +  "$')'*.,1/,13,*.;=;9..w1m/e1Y/Y,c,`1E8 9Q`jtwy|gR:0! վݾ Cп9BE9EH$H(M-M0E2Q5M5Q7M8O7V8Y:[<Y=QBYU]]bgvxvtsqqqonjiljgijllnqqxvt!x~5D~.Qqot}ylxs}yxl~}tv"'1CUx 38==,+  ,33:??NX[`bXcjhlqqlrrw~(49ADINZ]U_xuvnnzngablu}~ 48>C@O\t|}xx }{&v+x0v2x=vDoDjllyiijijljggieii ` _ b%]-[;[FX>VYU_VhXhUsU[[_]V]`_``b``bdbd]d``"_&`.ZIXNULVQUXUTSTQ^P^PcLcLhImI~DBDFDB<33785322320(052F2\-z0g.i-x+&&      =VQR`cz$&3.2#!# -3:FISdiivyxjs !#(-055"3"513;3F5M8O8K5C8F:C7782=;AU=@<F=T<P8c<f=rAxADGKNPSQLIFIKLNLXZ[[b_bbed`beeii ibdeeieebb``"b']&d.b1_0b?_:`BbGgGjNlInNnSqSsYjbi]gmdjbmeqdt]m]eZjN8I$GIAB:800-03300-.-.)-)|)p$h!k!ffchfO PJC E @@92 -( "   (*'@AFH97>4/1,""* ", -7> FFAJ P TMP \Z _ h sx|x}|us}!#!!&&&#&.(($(.20-##+)!!. 2 8:<)?=BXF`KLSUSSPLIIF?:78<=?KQSXbdjjl no&n0q(t}{}}}~5sS_lZnU{SxQ{NvA) !$!# #!!#! ##$#&(& ( ($ )+.2238:?%=/5389<9<>?6?*BADIDD'K*Q6UHVJUMVQZLUEV;Z@Z=Z4X4X.V'U'U Q QQUX`,_/[,['Z*[9[1_=]@_QZVZ[[Y][[e`c`Wb^dY`GbLdEgJgYg\ghdc_mZjX^XfVeUePeP^N^LcKcIhB^=^:r=|<<:72|+y#ff\ao!$&&&-27?AGDD G FD+F7DFFQF_DxAA72( #6Em}  &=GOLNS]~  (/>KIPfgnqsknsx{}svd]SK2&!-%~~| z|~-|5y>zCwKt\uft{propopruuu,u@rBpJrMtGuJwHwTtowkyoyuuuw|||zwzy|  |&z!u.u!t#p7r<t:u:yDuDuIteoleoat^j[jWnWsTsVyO~QYhkjhf\OOWYWTJ991434.14;1//3/*'$    '.))4.$%'% "    )) ',)/ 3368 8;@LVWTV^ry%((279KMHJMTRWYZimpufnimwanafc^Y\fh_ca\WPPHH;21''~"FW^}   $$$..;BO`my~~zutupruyw#y*z*z/w0w7r:uApIpUr\rdt_u_tfuktsyuwzzzuwy~~z~~|~~|~~z||"y$|'y.y6r>uHtVr[w^wo|rz||poy~wwrpmkhjojo ot tz~~|p|  $00==B:ABVQLAB<<0.3<?BKSPIQbx~~junrjplrojnker`h_eZcQaU[Q^V[[YZW_YbVlWo[vWyMoLiEgEqEsBtE~HHRMMROJ=>C@B@9;@;83/)%'**'',.3.{)~'t)q*t*s*n,d1e3b3[4Z3S/V,X)d$i"qv     "x%x'~$%%"$"%% %)*,/36;BGGHOWY^akmpruzz~42<KipuwskaifmmskkcUYR\ORMOAAE@EJOOZ@2/   %*2967H1' *-(,FRT\a!swa\ TZ T U ZWY mp}zwr$)r(d$^$Z$WR9!*$#+53 8 72-.0022288=BB=ABBDDADBDGyKlLqKtKxNtPxPtSvUnUgeKoGxIU_`gnqsyy{toZVUBLNV[VVPGSZQUNUbl{    "     %  49 EKT \ cffZn  ~xvvtqvv{}y&}+{.x0v+l.o5i@g@e8e"de ijqoonjiige``_]```]ZV V NNLGFDAABA:::788757:8::77323+)$$($),+++3.:285B7D7O5S5X3[5`5c3c3j2j2^+S)@(;&=)E(S)T-`(j)t(w)$$)&!!!!!  {~w|mjtyl`G j r~   / AIRxz|upmjTQGGE>8=>=68BBCB>BECEHJLOOLOTVVO'T*T,O,O4W3[9^6h;p4C[[^^rpwty~w|w~ !##!(+--35:=ABB?BFGKIADFIGKI GF#B&?3:K8q:{888:853235322..-&((+})v&     *27;A-#  #,26EAA  ~| z y uo j1[CWER>J942311*,**',,), )$"  }lbZ[SUX]_SQ?:52.28 : ?558< 85+-&&# "$ %*)) /31//,*,*)$""$$''%%$""  ! !:=FGPN?FD32#!  wt[RLGB/,.*))Gprfjk\TQG>6;;1)$g_MfsvRKFC>0+  hbTBSYrthl +7W_g{{xs nidaXPMKFKH?944-#  qii\]WMKFD<<-!  299-/*!#          vmle]VNLSQ?:1030,)  x n mnf^ iiupur__fkx  !'68@DNNVYemryw{mc^TJQQB,||yyvromm ooqrttqqmmortqvvmjjhhegge^][[XSQNJGIGNOST[][YTTSQNJJLJLIIGEBEB?@;=:6;==:;330.,1x3n,|,p)n)z'|&$""!xk ^ YUJOKUZWO<FHFF>EAHJ;1%  }xwrrnkiZKEEC@>941-//*  ',,414,*,''#1/77;7<PUYadsz}}{xqe[I?:=GKIB=?AFGKZ]_t][[VXVUID< <7(74377H3I3M3N0M+X&_!p}  $8L`mzz~&7ALKPSX[Z[Z]ZPN]dq}yuppm=.'$$ }%z#s%n,p%nkiki gg bgg*b1_2Z9XASMURSUP^FdDhDnAn<z2 ukf_Zccadiz    #%/+ %  ! "+'.3, .3600;D@ 6(6(:*5-0/)2+9!<$<,?5I.M=R@PBUBUIXGXJ\N_ObSgQiVg`kYkQnQsVuVvSzT{QVSOSNGGDB@;D?@@:=6;:35@?;:D81.118:531&,,',).+0.,.)+'+&"!""'!),&$""!"'+. &  $!!!!'&!   $"$$%')*)') * ,,.113466==@BBEJJLOQRVQRWWVWY[[YY^a`aecej m&t1t;zO|Sg{ 0DNU[l{tmb]]he[YOQOTVYQSVXQSO OT[] ^eejh l o hmlotrv{y"~#'(*,,/146474479;>AJKOPTROPROKFEHOPTWWYZ\dhhkmnpruswusuuwx|}}tw~~   "+3;ySwY~``gglmtroolmlmljh ee^AYF[MYN[SYXXbTuSxOnGZIaJfOxVXTOSQOLIGBDGLQQVXYX [[e%h8g;^C^H^M]O]VY\XfQjLuJuGEDDDDEGD==;:53.'',)$'.3,+'$""!        .038FLKS[Z`gdjnqoss}{~~wwswwrpnrpsppqwFwAmonmkmhfc_ZYPROHE><<96211/,**,/-*-,('" #%" ""     #'1>HHMKJOMOTUR\Z\WPMC>* ,9HJPRYY__cmpsszxzzfcps}}    ,1688?6:015;=@:BDIE?=53.6:=GLL=:GDX X LSNY^ c j hcbho|yqec]TT X"S'Q'Xb%^#c'e%h%j*c2b/l,o(y-t/o4q4v7j9m9l<c;q<w;4126;<<@~@rUeYm\lZq^r\w^va{^ZY\_adcdhhkimnruuwz||xwpnuw}|wwurpppmifhknpruusrrnkkhfcdhf_ZYZYPPOMKK@CKHJ H F E>E @66422122/1'%#%-1#/&/-,0'/#*"%"(#0(7(>%:#7"9 5"> A:4/*   #/5:?FHXWSC NF P SSMSMDRSSSXX]f_bnlagnqsllZSFD:970:CA:/*:I\S_bkvz{}snpqu]bbNRWUCWZ\gkusz}~}{yyqvvnsqniie`]][ZUXS[ZXSSUSNIF DB ? BAB?<820.0&++)(&&$!!$#$(-.322353530--+&#              %$"3GGC@>8/19EOTRTOQLT^cehkmoojk`[ajcoporpofce`ffprkppttu|z|mfhea[RY`efkma\MM|LRV`chhku||~zyt~r||zywpmmjfcccfkrw|y~~|~|wrrtttrmmkmm h mmjhh$ef&e-a.c2f2h?hFeDcGaV`Xa]ag^l\n\sYtWvW[YWVRRQOOJHGvGEEGEB>~=i>e>_=I;F9F8=9N4?1A/+'%"% $*,)/./3'+$#"# |mj\L@9;834>E[u~~rokhfj~|fw !.8B"K]n"g"[%U%G 8%.,5,A/A/F/U,`.d,g.n*n,{*)~*),*'%%"  " #"(-,41(22-16796147791%,(%,(1144,*# (  #6;6941*'#"  #1/9;}7{CxAuEsCv;v4u2u6s7q6{ xu#s%p2n/n6l7n>k<i6g6i;gAfFf6b9b@]<Z@X>X4U7P/R#M*I(C> : :7570--(%!!~xxqollj VK IB= ? < = <:: . ( ~wuyuttkkhecVRRMMEB>=B431)'" }zxgd]URSM><94&%!mTGB=830..0!   vyvoh^TEEBDB?Bu@p@k=h?d8a6Y8R5W5\0^.W.O)H+C.J1K3H6F6C6F0H,C)4$1/*/" }ld[UF=FIZXPQ[q{vvwof`cVaN\GO2J.C&F.M5MDRLRSTVT[W_^vn|} '2;CMYdks!015:0:B;O;S?`?o;:630!    ~mjJDB@=850! )0IQTX]Y]`lyxwidwcddaaddaddaZTKF@>;>;><2*(%'"        !!##%*4::4902MD>?HKKRRX]\XZz}{z}}  )//)*'    ~~}~x{uxxxuyqxqykvfxd}d}b}a}]vbs_x_yZ~XyXtUvSyUsPyMxKtMqHoHo<q:s>t<s7o:j9t(v&x#s%s*o+j/g-d0`/_+_*`*`([%_%_]_b__`ebdb` dejnoqt qojdd_`gjieib__]ZXXVUSQPSPNLNKIKNQLII=???=<=<877553..++($###$#!~{|{{w{ yw{wtootrqomlmeec[YSSQQNN L L JJGEE@??=:!:88;:863310,+.++)!'2)8&:"A&G+Q,`:eEjGj=],V&Z&l=nBtNsOlQnXt`~qt[vXsTtQvQv~ */455?0(% {he^TSNJB:5.++68830+$)03+)"   ~~}{xssstsqqsxxvxvtqoonttnnqossqooggijgddngglnjlgi}bb|Zz[xbzbx[w[uds`r`n_n]rZsXrZnXnSkUiViXhZf_f`fda_a`^e^e\`ZbWeWeRdRdU_U_M[JZJZFbFbA`CXCXA]AZ<[7V;P9P<L<L;K<I<N2P,U'Q"QV"V%X%Z%Z,](]%X [ i'j `__b`][SN F::7520.-)-22+0.237755200!(!&)-232-&!#!$))+0332($$#!.37870-.!!$$#!!#!#!#$  {tnolnje_]_]bZV.y*)'%s%b$Z'U1`.yV䀿VVZ`dgjjlsttg]ZZSLLPPQ[~eyjtlklfieiao`xWtQxMMQV^a^chmmjppoke^WMG;GGBC~=x9dMiOb>SCN;K9G6?8=9A=?9=;:9:8:67$$%%'$$'"$"$  "$')'$   "|wrmmkjfcW M JHB@;=94.*,  $ %$"$ ""         uppqqsplgkgdd_Za_]ZZXWXRHHHD??<7457>INPNRNPSWXZ_]gkn}lnuz}}” }}zzxs}kzf_\UMD94(&({vzslknfdda]]Z\XUNRPRSURSUXWUUXZWZXZ]\bafbgdinlnqpkusid_\__\_bid_abffZXWWb\Za_XUPSSRMNMHDA:<:/ 445 9 >>?<9475:??CKPSSNHFFAF? ?< 9#<%:%9 5 4&5#20/%/+5*:(:%?(F&A(>-?/F0A4A0>5>9:5545424/00--2-?2:9<?>A?AC?CCDCIIHCHAIAH?H>D>?<?9H9K5\?]DaDaFaadNkXkanZq_vau_kPlPsUxWsRuNuIlDiIa<b9k:k9i7b5]7\4d0b(a*a-_/]/]+Z+]&\%W*W&Z#Z U%S*R&R S WUSRRNM M#F&C&D#FDA&>(<(<%:#>CC5#4#9752 00/+- + %!  (+&#!    #+*00/0&%%##!#(/222-!   !#!&99720420400/020+&&%!    %(40*(24477499520-+(%(##(%*+# #+*04~/~5|5t4t+q(y!{~| ywvtq mj gej&h-g0e2h0l2m0q5l?lFjIlPG_+fl{ zxqllnpppk"i,b8aE\L\XWVSJREUIUIX@ZBSDSJKENBM;S;R:R3W8U8W:W;X3X+]f_!]&X'Z)U,W0S0P+U'S&U$S!Z"N&K)F,C.<0>0<,:)A&D!KI?:&4$479<:+"("&$!!%*0+&%&  !', 0, &    ( * * -4 5 2 4?K N II NKHK K D D K K M F C C F M PRWZ]_ Z_ b ] _ b bi l k l l g g k i f f b a b ] \ Z Z X R S P P M K I I C A ? 9 7 5 4 - + - + * & * ( * ( % % #       !              !                           # % % & ! # & * * 0 - 0 4 5 2 - / * ( &            } | z n i ^ W M A A F R Z J < @ q> eC c> `; Q< Q; L9 O7 G2 =* 1# +              } |   }   | } | } z s p r p m k n p r p u z } x n r r r r m m f h f k m} i{ f~ cx _v cs ^t Wx Rt Pt Ts Ts Oq On Yi Te Pi Ag Ae Fb J_ E_ M` Kb OX OU KU JZ H[ EX HU FS CU >S ;Q >Q AL @Q EQ KG CB AD @G >G ;? @= @? 1A -A ,= 2< ;8 @7 A2 @2 >2 <) 6+ 20 42 1. -( /) *# 1& 1( 4$ 4 1$ ,$ ( / - ( * / * , ' ( ( , * , / 1 / 1 - , * * 2 2 6 6 ; @ A C Km Z\ d[ dY f8 |1 )       $ , , }* |. s1 r4 r6 u9 u> k1 n, p u v u l a ] \ D 4 2 / #           | x s p n k d T M J O U ^ \ ^ d d ^ Y M K H J E C A @ < ; 9 < 9 4 - - ( % " "#   # ! # & % ( * / 5 2 C D K K S X U S W X \ Z ] g l l p k _ ] ] \ _ d n v   v v z x {        " % / 1 3 6 ; ; @ B @ > @ H L Q T T [ ^ ` a e e f e e f e f h j k o r u ~ ~ x q l l n l e Z Z P G F D A < . #                y w y |  u ` H 4 8 @ G H L Q M O ^ \ \ Y [ [ W T T Q M E > = > ; 9 8 8 6 1 , .             ݀  } x x u q n g d b \ W R K D > I 7 4 # ! #                                                 ~  ~ | | z z z y w w !t #w (t *p /o /m 0k -h 5j 5j 9h <f 9f <f 9e 7f 7f 5e 2a 2c 5a :\ 7` 4` 2\ 4^ 2[ /W -R /V *^ %[ #Y O M Q W [ \ c !c ` f c ` \ ^ c c k k m m j k m p r t u u r t t u y z z ~ |    | z u w r r t r p o j j f a \ \ ^ ` e f h j m o k m p t m m t u w t p r p r t r p p k j k j a e e a ` a ` a a e e f c a f yf rj vj tj qf oj gk `m Yo Vu St Tu Xy Yz ]t `u cp cm eo hw h| ^ ] Y Y ^ ^ [ [ [ X X V I J = ? = 3 6 5 $      " !             d Y T R U \ _ _ \ ^ۀ W T M M T W C ; y y |         ~ ~  ~ | y y t r t p o j f f h h e [ Y H G 9 9 9 6 4 . 8 1 , j% q, / 1 * j, j, n/ s/ j3 n6 n3 e4 e1 b/ ]1 ]3 Z8 Z9 X9 V= U6 U8 X4 V/ V. [) P, P, U/ S. P. N1 N1 I6 G8 F8 ?4 ?/ D) D' L$ P I I N" P U X X ? : : 7 5 2 . 3 3 - - 2 0 2 ) ( # $ # & $ ! #                      }   { z x _ Z \ Z X X R R M M I K D C D A ? < 9 4 2 0 / / + & * 0 %  g J J J I = G G  xpmdUOYZ^_dcfiswdcd_YPMMA1   !-<?SXX[b`bbotxvs{qg_[XUXZ__][ZXSSPPSPNKLNSXQPNPNF?==<0$ 7&U!T#\$_(_)c+h)h)k+r-s0s0n-f+d+_&\(W+^2r3320--.-+)-.023535:BB=3?FFLLQPLFBDBGDFBB ? =?:?ADAA??<<:!3.$0&5"3&3'7$8$365?7B3B3E8D8B5?8?<DASFVF[IbKbGVKXNYQYVTUQVNZL_O܀bVg]bT`O[JZJXDZ@bIlctmxt}|"1#7<AEFKORRUY2^K_NaZidklmskmnpnmrppmihkffhiffddcca_dhikmmiikhfinmnrn_a_YRFCC@76# vqqgUK?<2(!($&)+-03:=?DLNVZ_]VPQVQQLKNQPKNNK888݀853.z+z-&{+-++)+-+()(&|r}r{|}~}z{wzw{wxu{ovkvjshufq[k[gYf\fYd\a[_Y_WWVUQWMULRHNGKCK>D;C8F6D3I3N3P/U.U'b$a"a$d%d'f)g*i1i/i1p9d;b=d;i1u,%$  %)**./133466846963,**..1' ),*$,8)>)E.M1Q4V6\6h8m=r@r@kBfChBrBu@=9;8469>>43.)*..***..13//$! & ?LK? : :70-+(())& (# !!# ($$(-.-0.0758AA:2-05=BDBFGIILLNUV_`]ZVVXX[`dbb_ZVVLNVnqtx}vsvttxvtojnnqstqsttvxy}sxlsiS`I`A]*[ b`_`ddbZVUXUU[[[][_]XUSUSVVXZNIGFKKLNPQQSUVQPQLLPLFGKNKDIGAGKIKNSSPLGyFwBvAl=]?SDDLDNENDS?X6Z6X=V6V3X0U3X0Z5[0[e~}|}} }     xn*n6m;nOs_xhxmuxxuwuspmfd_\\ZUTPMH>>@<6("xifcdhhdd_a^WY\\WYY T UZZWWTPTRJHHFHFFJ KJFFCFEEHHJF>962/',# # "#    %"#%''21/,- 2472647/126467;>>AAA>@AA><>@CC@@@<;@<;7,'"#%*7CFHMUWWY\^\YZ_^_}^}a{avcshsinfjhdddai^iZlUxRxOyKxJyFxExHnJlJoKlJlMdK[ZNZK^KdNdSiUkUn[nVmUnSsZxVx[zXzU|V}UXUQKGGA7|wwy uy||~|~!!""&'$&''++58:8:~:|=~=w@r@mDuGuGzDzB|D~E~EDGINQOOQSX~^zjpohy^{YVEB61,)"      ݀ !+//79<><><7779:9<>?C?:77<<?:90+(%#%#%%}&(+}(&x%{%u(u(v*v-s-q*s*n-k/i0d/_/X-_/f*k+d(p%s&l+S-M0H97?+DF FIIR_lqpqqbvN6"ۀ )u8^@OBO@TBWHRLFMAQ>W;T4V*^#^ \YWWVTO'M-O-R'Q2M7L6HACE@KQ RTTVY \`e`^^Y\`aefkh``^\[YY\[YWVTVRTRQOMJEB>63.'{'x nd UPG$7%-.68=;=BCGEOTVRTVVWVY[`cjuuowkwctcw\zT|J@61qb__ZSMKA>-%  #):B~FK|`cl@o?s@v?x;t8v6v3y.} ""(*-2677;KW\afhhpw  | r n m h h$ d+ Z8 P= HB FE CS <^ /m t y |       ~ } x v x x t q s q j l i ` g l n o t v x x } } { { v l i e ` ] [ S U ] ] S D G N P N G D F D D D A B D B B! ?+ B4 IF SC SC Q? P9 P7 PC VH UI VH [D ]C [A ]> bA bD dD `F _N ]N ZK [K VI SS U] Pb Kk Bl =n =n Aq <q :u 8q 3p 8n 7n :l 8n -k )l $q z          ~ u y t ^* W= E> H; M= O@ O@ HC CH =J =Q 4Q /T 1Y .a /e .f *m ,r ,u 'u r u z          # $ #  # + 3 3 0 0 3 8 7 5 3 8 8 = ? ? N V V Z X }_ {] zU zU }P zP vN vN iP dU XX W] Mi >i 2l /n (v x } { v v l !l &d &] *V %Q #+ & !# & % / 2 4 2 7 : 7 9 5 9 < A H K N P P S W Z ] _ d s  w o j f e ` Y W Q O H J M Q M O M L H H E @ @ C B > 9 6 1 .            " , , * ) * 6 E E @ = C C G{ Ju Jq Hp Lk Og R_ Ya \d `i \n T M O Rz \x `s ep ka m\ wW uR tN yM yK |F ~D z? |5 2 + ( #    | | v r q r r m l m o r y | y q e b e b X V L &E &? (6 <3 =) D& B$ D! B A 8 -&&   & 5 ; @ E S X [ b l q r t u u~  y o k h c c ` ^ ` ^ T W T Q M G G H C @ > @ > C @ C @ > = = 9 ; 6 9 6 6 3 8 4 4 8 6 6 4 1 . / / 1 4 3 6 8 9 9 8 9 8 ; 9 9 8 8 6 4 6 4# ,+ '/ "2 0 > C D C C F I I I R S S \ _ i l k l p v { z z x q x z z } { z u s s x z x s p g _ Z R N M H H D ? < / ( ! # !        # ( - 2 : H U W W \ g n u v { u u q i g a b a Z X \ \ a i i g i k k l k g f n$ q* n, i3 g4 ]8 ]; WB UC PH NH ML KM HM CM AR ?R >V :Y <` 7a 0h -p !z ~       $ - 2 ? F ~I {K tP rS lV mV qZ o_ qd mg he mg ro tx e~ b [ Y X T J I @ @ ? 怞 .038:<888:7 8877&5'8+2.335,7,55785B2J3L2L0O-Y.]-^$]`VSNL I ID=63.$$$!   $(-.〲!&).03533:=DGIKKUXZ_it{~~}xtvttvvtsqqnnnoqljj n oojj"d,V;SAKHIMDP:K2C+C+;.6-4)4$2/%##+.20.053533025025722)toq$l(o-o0n2j3d2`.b+_+]+X)U+S&Q!K!G&F(?&<!:?0&     |pj`YY!\#V!LG!E!CCB@>!>!=;!;984.)) . $!# &&&$&).3AFGIIKKDDA A'=.?.?3A6BBAB?@?4=9:;:@=J:W7c8h8o5r7~53537?A?=?==GKLPUVbglqtvxy{|rmfeTMORVWRTY`jkmw~#c$e-g-h.l.m0m5r5v3w5y3|535<<88855330200-(## !  #// 49><92020-&  ogc#cހ    ##(&(+-)+.08:=DNQUSVZ]]`dbegjnt}     " ' % ( , 2 > O O E @ FKP T Y \ ^ ^ a u }   $+06:;;?@?BDOVbbeehmrwy|}}usswzuwspknrprpmmihdcdadkppa^^Z\YWYWURRURZWTRPRRPM MMRROPKJJJHHFJ#KOPO+J5F?CC>D>F@H<M;M<N;N;P<P>U@X>\<\<]>]Ab@f@n;q;v4z/v,v(q(p,n,k*l*k(i'k%l'l'p'v"}{"v#v%u#s"n#g"gfgknuxvzz}}     xlZSNFC?7-&!  ~y w#r#q*m,j/g/`4^9X7V@VHSMSMVOVPTRSZOhJkDm=n?nDpBs?r3p.nkikpnpursswzxzzwxz|}}||phZROOJFHHFHCCAA<<9664,'#  {yxvqqooolld[][XQQFDB833023502-&     ""''.@MQO==HHW^[cfcfjkpotyyru     $''**.,.1448;;@BBECCEGLLMOMQQRQRQOQTW\\\^ceackm ppp$t2y=|<~KL]blsnntt}vysxqx{ln]USSjlvyl`ULGNVXSNPV[b`elnsoyx %-29>EF<<4*-9AJAFHTU^_hnn}  &86'5;D@BS^STcott|    %&##*90<> 5  ! (&2A R P baSUb_UW_qls}!{!##).0}+..)&+.02<=?<??GIIGB?D F IILKPQQN LNP S SQSQ.U/V8Z9U@XJb^g^gRb6`beeeegjln{nqopxNvHyD}9y0s%sx{!}~%(%{lnqq~ltljicbbVXSIU?]=X_]]b`begebb"d,iIqVsgvlxytx{}r^}~   165$$'Bblrc^YT[h[O8 5LT $ "((-(%    .88^bt #4CIPa\fg */''.*.8=9>>BRaoh~kz~~~toy|~tjutfWHGcyw~|rrkz|uwzu|zttmo`LCGE=9;634;\\Rhfmrj[VJJ@@83,,)%= @  36 " "#'//*,-2966779<A@CvJlJfHUKNJIHCC(;4/-,/ 7 F HHFHJJK K0OHPRRZU_TbWdU\Y]ZXaWcZhKk+p%ps sihh^Y_ifhmsperOuNuTrjwnnzx|!}+>7yeYTT}G}@OLE.,5LXhlSGGS[h Z\:44 *>?Wfqzqv4>V"@Vo pt|zwzujjaO8=OVTG^e^H8HTh ym"\$c!mz PZn {vn!v)y,o,g"L"D&=&0)++++'),)+1=@INSSTIGNfOmQm]=YYToLwJOX[XY`elqv{y{`848>{`yMO`{tjjmm$h5b+[<YV`egntsl``V]oq[B5ukoy2KQD7VJ@6C=EVrreh|ojcaj|o`a\TGLG=49$*JB9MW^o    != S _o{02477:4+/v+j-e4j:N<=:>>?>?)A.DKKFH KKMKR SWW\Z]\-R]NvRSayf7kquzsdXUSHKUXXzXtXe]mgpi~uvppyx.:(8BNU[`[qv{v~[NPIBD==SSK DLXU%g*}*%'.E/LMMHJxE_B:>+6!43./<,#)),313>CEH JOY0\N[qWWVWW1WP[iaexhshe|fruyyUzT1ywwyyz|e]3#zwrrwwyzzz(Vo~~O})DG+)mA ; "   zdmfC<*'A/    }ye8(&7&`Cuqwkyl|xv  /Tk e J   fUDS;^]@68  % J   | ma d]I? n     4 R E    # / M ^ s       9 n$ $ ) 8. T2 J5 R7 m? D F K K N |P aX 'U %S V X [ ] [ V S X _ b d ` b f[ <V U V ] /b 0j Ss >x K{ >} -x s s Yt q t v y y Ft %t l e j l i g d [ V ] b b `] 6Z 9V )S /S $U Z ,_ *` 6b e j l n #o Nt ?x x { y q q v x { } C} y .{ | N   2 d i  o @ v M - 0 # > < *~ (} U{ M{ y px s o o q Dl qo Dn n l i d [ Z [ S [ b d g g Yi $v y t } ~ i R "  6 , ; } } v @y y x } } v } `y Py D{ Fy 8o _l yd e d d i e bj `t s q n n l i d i i d ` ] ] (_ .] A] o_ yb e] [ ] U P $P SK jF mA ^: w7 m0 y- o2 X8 ^= JA LB I K N Q S Q G B = 8 8 ? I N S V TV U U tV dU !P )I _F j? 8 0 . ) $ # M z T! O! ( & $   s t    ~_3 !      h k$ G) 5 < < S: 8 - # 2 l d 4  9Fvf\A   c V IS?    ( - $ H$ h x d! i J# *!      t : 3   &)Kq{`   9)C> $8'u]?MfqzF4+ Tj8~,y wutmmja[WTQQMLEGLG'B0@BEgJHGHHMYQOMMGB;631.,*'" regXYBDL1:6, mR9"]XXN) |w}}zuqqlpil-i-da$begtigffZbXdUWWXZ_XNMKIKIIAH2K4UW*MJFKHxHKNWX\XWSRP!MM'I"F1A1>'?>20/"-!07:9U9H/-*6(_*r*##($%$! ! ##(%\%;+*+++&L%L#b#F!0-! 87= X d U FLVUelv "7TfrfrmH'% ;E7>  "$6OXeOXQODV]]ly~w|y42>ISWpz;=6>=G^cj0-&8-8GyBw3t-rom$t.t?q3m:l5l-j-`B`V]`[]VKTQTIQKSSQbNiN{JGEEBD=;:8585311..+.,,))&$       #"#'2CC>%21;EHE9%( ,/#%76<>EPOds|zwi_dc\UdnnwuYZcWPC<>CWcis}zurppnkmpnkkdfac_^_^\\ZYTRTWTRPRPOPROPOTUMEJEFTHZJ\HaOdHhFkEhEmHxHJKHFEECE@;94/p*\(\'h'Z#OHOk "'-266*#d^ k W KK@7*KH@Mdsxkx $%/9@CCCA@9,'#$", ' +8NJ"b"h l`]VV[T;3VvwjNm|y{#-/97* #:7*%!/*!   +27>CH4~5:~?{Ax<x4{&}{mG~{"{6tXlt]][]XZX[UVU__ ][[Z!X[[ XUU[F]I[N[_ZbUXU>P>NDNRKXGXB]?fB<=7<&8&7+7<3D5M3I0P375(2#+*$ $#(2(5(0&2&?+M+R(W(d$\(N$D!H$2!!%%!    - 7 7 < C>FPRII] kg]\44M_bfbbZ]UUPFKSXUDC>95/+       *55+*!( #    qvrhb^bLB5&+')8Dttqo]S[V]`hqq^eo|w~&+!&    #(450??RXibM<2*ve`jjqq|{qgXQ=,)106==BD==^l~vq`JB:31DGNXJ33:,3?DG?108..)&&"~3|1|!~"|~~|ytpmmhca`^`f,yNyTz]zq~~yywwz|ywutrrwwtwz~ ~|zyyy||#|&~!~07-% &%*CHDHM]~\|U~P~9y*uttutm okjm7w\uqr}p}pptpu]m<h a0^?`R\_`q\d[d^K\A^7\2fkpoomokkotruyy~wqu]thu{trrht[rImDpTf5h@hBc+`$YTROMLHEECC@EG!G'O:J5H?OwO~RQTOQOVVTQOLE9; @(BCBH>K@S=S=I><>+9 8=JLOMQMJLtJ^GTGJEDE6C"CB@&>;9988643448$33.., .,),6*.,!*,)% $$ %D"G"X"[ e$w)|*)'~"$ "wYXNDGBBV^glom[O@8?Ocjtvq qc ] L1!++&!6DQvhT;+)6'     '.5@)  .L[h $$ *3X3\/M/A.9,H.X*b,p*q*x)u)d,W*I,5%"%-5DNWC5(  jg`"!,0.;B.&&+.31OX1=65;b`jrw|t|~l]^XIDJ=616@TYL;5ESX^llohcwy`mge``ghl|twrvy~ %%45*-AC0w~x{v|zxxzuppnnliigdfbba\XWSSPPU\XXSRNPPSXWUWZZ]_ffdbaa\ZXXbddgf_UXUURPNNIKHDA?<<74420-+&(#  #%(-4>AAIMNN KK I H?>>?? C DM0I2K9N7N0S7W+X0Z2]/d/d*a#b i!k ln qzs x4p%n(g*f4a0Z4W<M?KRMUKZSfWxPkNkMfIbFiHpFzCsCn?l5q-++&!!!&(/k5bC\HFD5A<DFCKAICD???:A(? <:#<*:0::74497M/7*P0d-g+a(_(Z(W&S+9-2(4&<&>&5+*(#!!#     %-<?I!M#S#WHAilksp sqndWP KF5 !   0FA?>  (-+  !(*>R\RI>5%      %**/4:AFDISS\asRKNMCC?<>:AADF:ACFIN\_iga]XPURUX\]g{kd_X~]gfiisq~l~g{bwbr]hXea`d[uVxV{]TTVSSQQOQSQVQSQSOQOOJGGLNLIJED@DD@B?@@=:;:866:?=::866::BINL@@ED@??==55110,+)'&$&,..,!'366631,+)'$!"         $ ) )    "  *$'.14@H8464*1;;48>CLRWGHOQO>1)%/169=CHO`[[LB>/)),9GHEGMTWcowtofY[OY[cormu   $$-.#((&0<8:8A?GVXSSA<$    !&<<FBFKGPSD7..2&#02 .#(.-.2()0.388==GGLNX`[GD:PQVXU[eVQSPV]j}~qt{sqt`XX[}X}[dqx{~}d}ex[w`wbz`xezgzjxqwouqsosyr}zsvy{|xrppxzpns}xx'z*|,}(|%} ('(#('(,"(*'"#%#   % #,1'6<EC*%EFMF<><9KJ<7( (<JJC@/(*67OHFJRUUTUKRJFC;461'#%;@FYRK@"7;CFKW^^YUPJ>@JJ>%7@MUYT^\dipmica d A; 9, Y f k miskwxppxnh\"J!C!A&K^iu!z++,,w0n08::w3h3a:n;d=h=n?r@pBzGwNQ}SwV}XuYnYY]YbOg<g7l6jEhJjMjPgTe\bcbh`i]x]|]^^|`ccubrgahahhmagngshwqsqmw\vTrTvOwOyJ|6|((%(1~@~H|RRW|W~_Z\~h^chnn^\kmpz|suux   !!),+&&"'$" $+ '    # !!&%&%&&"%"#+ +#1!6#;(:/!2'D$DIM RRSSUUX_b_ailpqlli n lfqs"p$g6g;l6l:dEgIfQkOlQlencn[qYqTuTuXs^seuhv]vg}h{m}yqqlmellrvtojbTLJS[TX]brr{~{qyv{|   !!(+(-- !*/572(-0<:>F>+/57:PU\dzznUUMKC<<C7:?DHdx{qs}u{{} |whVG@=4'$ "$)""%.1@COT^fk c h k j p o peu z ~ z|zzzo###&%#&%%((&!|m ^#h%j%t&u(e2j5t5~7z<<::99<>>AAAA?AA::y9w7m4h5e9e/`-W2R0O4R7R7M9O7G9E>EC=?CAGCEDGIVC@D>HEKHM=R>P=P9P3N.M/M'M$N)P$PM PPSRNPRRNKIIIKWXX\\X\__aa]\_bfd_\aaddb fggl i"ff$d%a.d*f*i3kEiLgYg\gmg|i~kwsxxzsunapOu@s9s1u/v;v1{6{>>CGWjomp~zukmohec`^\TJBBT^OEJC>@966131.,*)'$ $   qkqz{  $%/'48;;>9=@E>89B8/,$,.11@C6/966,"%*$   $,19>;BEMOTQRQ\^`kpjou~uv $&)-=INU[]_biejng`djgn} %#*112299AAEMMY_cffxrux|")0?Q$+)"+0:@EGJLG860:636ee`meSOjvozzxxsqqppnuuqkggdbbglggqftfa_]\]\ZWRSPNIHDoFgN^PTN[KYIbDgCmAjCbCX?Y?`<^:N9O7V<e<g5Y(Q&=*O+G+@(@ .#.)00'"  !#&(&#!!    xrurpphfcc__c__Y\OKHH@%%# "    {nKLG=G+()   قoa\^fejopwzzupnlb]ZMIIFDADHMXX\_ZZ]]WPMHHPSSKA<*! &+//4&5+5.0-/3(0(8#7..)$ &!( 338 :? D<5--$!&##$3BIBFDIGKLNVb]Z]ZVX`]_eg [ VSPF#I72:<>:A2C+C)I.M-R)WZ_bggkpqsvz{{   *,,/18868;@B@;61.*    t pj c Y WYTWORLMLB>@=;@GLMMR[cfhjt1؂.,))*,,*$"          ")/*/3*'*. "       ,/,*,11ӂ(-0>APbgqu,*11+R,R,Q3h5h=t?u@t;\=\DrErDjEjIyOSQSTXYY^`^]``^[[]]^`^^cceeqqhjlljccgmmjhlmomqqmqotyy&{&|!|{y{{{yyvvtqho^f]a^ahjottuw~ .L|P~XwPy[vPrLrP~nlvvb[odVQG:-.&  ~y{uqplf^\XGTCN4I,G%?=?;;??;:;;86;;:8;;=@BEGILTqSlTiTkXdX_[a]_]bb]bW^S]M]?[:]7]0^0b+c(c!g hlmorvww{y{|~~~{wvoqommghghhbYXQOQNJ IG GD @8*1-17,4+9):'/'0'4$-"(!&"# !" {te`jbTD)'5Eejq{~Ԃ"%(- /46!67>#A.H:H]C_@e<e;i<l@s@~<7y4x2q1s267;77<9;9746/,-9/>,>,@,F,Y*U(Y'u*'%k%H'H'>(<((*%(,*((*,--%# " ~xtjbZUPF.!  !#)#?(L&X+m.2022333200+-+-++(+$!)++++)+.03<553<B??<:8:==???88<=BABABFDA=DB=:878<F GFGI G!I&P2Q>UHUMXUbb߂omffkkf`kr ';Odm),+&!!,00++.11!utwwypefWYM;>#66 46861/*/63/3134/1/13348;;>;99;@E}LtJsLgOeMeQgQjVj\q\satcva{fyf~kjp݂  !!%(#(/SUMIFCFWZabkil i ip{ }lifggllppqux} "$!!$$&"     "$* ) 1 3= = B@EHGMRVV`hooruzzunmkfaZWYRRUWUUP KMJCA>>>CC>;1/,((*-,-/-&*)(($+<=GNX]e                  '%"*#,*/AHKJCFKMJMPWcfippsuw}xx}~}{}{ytog_dglnyxuvpla{h~f^~W{P{OPZ\\aYWYURMPHJHFECA<;@@1 ""#-12477979;<@~>~@xAv>qAnAd6[4Z,S%S"F?8))27520.{)v(l(q&s!neb`]ZQ ?857!:$8(8+<0A.G2I0P5Q5XI_L`LeLgKeIgPlQsjttxvsieggjotyxttvtqljndZQNA8&#}}~ytokha{`{WvMjQ`MUMA@7406+;(9=;3 13EMOGQRQLEu6a,Y$OQHCBCEHGHLWcot(:?BGLQUetqnjggjqsx $.13./)% $*,*,.34EHLR^fpor|   !0::52+- !  #** *%"#%(*%(*(*-1@FEFE<>r;^<Y/=19#'%%%"*(%%* -/-*,-479CHJJMKPPRURKRYYRO}OxKxEpHsMpZsZv^zd}hkkmprz}{sznsdmas_hH^A\5\/U&PMMKK<6621447><;;74|4y6y;|>CFJPRWWYU{WvTqPoPjOhOgPeMbO`P`O[FNC8>'<> EFJ U"\,^1f;pOjbb`f]gZdZaV_SWKKF><+8-7232758:7<7A5?5D0:.:-?.C0H0K.I+C&A#:#9&9#29< :<? ::>52& ~Q=0uςvx{z !5KF&!# (2AGSelt_|TRYVYTLJQJ@B98*" $.138HM`ehmt()&)37825AX q "''*,/(//14.;,2*6,F)E,W)R'P%Z'p"n"w"daWUKJPOKEC> 6 ,     #"-7CHF44FPRO\m        pf@7>>HH>//,'(129CMU961/,,}vvsiba]]\ZXUURRRUX]db_bdbbgkpv~{~zspykkyktitglfjd_bXbQ_V]UaIbFf8flpu˂,|2z>x;sHiOaZ_WRaKcHhHaF^H_K_UWYYdKpCx4(Cς#LR`` ffkjooz !)57?GF5&~zwtfa\aeyzzojja \RH#E&@+=(@(C҂uTJ<2' 6TZ     bb`f]gZdZaV_SWKKF><+8-7232758:7<7A5?5D0:.:-?.C0H0K.I+C&A#:#9&9#29< :<? ::>52& ~Q=0GӂB93//, % $',. 3669;@;8 / ) %*,//,     "%)/36=>CGHG u }  x zs zq xu xs us wl wn ns f} _} ^ ^ W U U R R ^ a _ d d m p uՂ  *-<>>669>@@EHKJRPUWZ_^_aYY_dhuwu|usuxz}}z|z|zwzxssmnmihhda_aZRRMKECEACA97142 ׂ    -05<KRPSfiqx}{usspifZHA:42--!   wwr|<؂;662(%}y}~vnjijnig``b`_[][_ddggjssvyyy{}{{xyvxvv}}}~~~  "%16;@<<+1ق(1!6/*,'. 13968=EOV`ckorpmj`\^^RB94361 / , %$%*)/!4(../.3+1IXӂ?W:X1S$R!SZ\__bii!n$s&v+x}    }z$x"sla_WXUSPPKIHA?:5202//-&(#004!?!K+N1M;S?S?PBN@UDUJWIXԂ~|~||ywtwvrwtt~qo~mutrymwyyz~wwwy{~|q݂gND;0"!    083))..168;ELNQTXmrvq ݂                     ނwwqmljgbYVQNOQQSTVTV[]`ceoy~~~wuuwuuppttoprroouz~x}}zzxx#߃%*7CFHMUWWY\^\YZ_^_}^}a{avcshsinfjhdddai^iZlUxRxOyKxJyFxExHnJlJoKlJlMdK[ZNZK^KdNdSiUkUn[nVmUnSsZxVx[zXzU|V}UXUQKGGA7|wwy uy||~|~!!""&'$&''++58:8:~:|=~=w@r@mDuGuGzDzB|D~E~EDGINQOOQSbb]YXESOQOLII L JG D?;:66#5$5)6+6050.80<0?5F8Q:SDQDS?X6Z6X=V6V3X0U3X0Z5[0[e~}xsrrpmi_OKJE@;;94*#SރX~^zjpohy^{YVEB61,)"        ! # & -2/2"7":? NSW_b"a'b/d3a8b;_@aGdLgLnRuWv[{\f}hzfxfpppwkyg|gkluuvvx} &$&((+-5778:<=ADBIINLPUVX[]_]__`bgjnqxxvsvttxvtojnnqstqsttvxy}sxlsiS`I`A]*[ b`_`ddbZVUXUU[[[][_]XUSUSVVXZNIGFKKLNPQQSUVQPQLLPLFGKNKDIGAGKIKNSSPLGyFwBvAl=]?SDDLDNENDSDQ:S8Q5F0?0<.850606+5)5$6#6:;?DG JL I ILOQOSEXY]bbS݃ !+//79<><><7779:9<>?C?:77<<?AA?AFHFIRX\_fnnnlnkqquvvvqqnlnk}lzlviqkpvnvg{ZWPIA>::#(+--/++&&*-*->M]di $$  %)**./133466846963,**..1' ),*$,8)>)E.M1Q4V6\6h8m=r@r@kBfChBrBu@=9;8469>>43.)*..***..13//$! & ?LK? : :70-+(())& (# !!# ($$(-.-0.0758AA:2-05=BDBFGIILLNUV_`]ZVVXX[`dbb_ZVVLNVnqtx}xxqnjgb`__]_][XVUPLNIIBDA=<:8775-+((&$& }xvvuulkgg|kypwppxfzf}hf{\v[uWnRgLdLaG_@b;a8d3b/a'b"_WSN? :7"2"/2-& # !   ?݃:90+(%#%#%%}&(+}(&x%{%u(u(v*v-s-q*s*n-k/i0d/_/X-_/f*k+d(p%s&l+S-M0H97?+DF FIIR_glnqv{{{  ::>AIPW{Zvgvnkpiqlvlzk}nlnqqvvvuqqknlnnnf_\XRIFHFA?AA?6D݃6<87608+6*6&---9:>CKMS UXZ\\d&f)i0k8p8q8u8x8853.z+z-&{+-++)+-+()(&|r}r{|}~}z{wzw{wxu{ovkvjshufq[k[gYf\fYd\a[_Y_WWVUQWMULRHNGKCK>D;C8F6Dۃ    $),16!;$>&C)H+H1H6H;HBHGHLHQHVH]HbHgHlHqHwH|HHHHHHHHHJJLMOQRVWY[[\\^aeefjkmooppppttwz|z||{wyyvvrmmhhb]YXQNJIINSY^chotvvvvvvvvvvvv{ #(--6&6*8+60876<6D3I3N3P/U.U'b$a"a$d%d'f)g*i1i/i1p9d;b=d;i1u,%$$ id]M>-*-*&&++/--+(#  {{{vqnlg_abdfiklnpqqqqqpp|pwpqplpgqbq]sXuSvNzI{D}?:61,)"  (-238DFGDFNPU`dgigijlnvy{!&).03533:=DGIKKUXZ_it{~~}xtvttvvtsqqnnnoqljj n oojj"d,V;SAKHIMDP:K2C+C+;.6-4)4$2/%##+.20.053533025025722)toq$l(o-o0n2j3d2`.b+_+]+X)U+S&Q!K!G&F(?&<!:?0&    |pj`YY!\#V!LG!E!CCB@>!>!=;!;984.)) . $!# &&&$&).3AFGIIKKDDA A'=.?.?3A6BBAB?@?4=9:;:@=J:W7c8h8o5r7~53537?A?=?==GKLPUVbglqtvxy{|rmfeTMORVWRTY`jkmw~{yvnljigigd`UPNFDGFD832-( ۃ )u8^@OBO@TBWHRLFMCMAQ>W;T4V*^#^ \YWWVTO'M-O-R'Q2M7L6HACE@KCAQ RTTVY \`e`^^Y\`aefkh``^\[YY\[YWVTVRTRQOMJEB>63.'{'x nd UPG$7%-.68=;=BCGEOTVRTVVWVY[`cjuuowkwctcw\zT|J@61qb__ZSMKA>-%  #):B~FK|`cl@o?s@v?x;t8v6v3y.} ""(*-2677;KW\afhhpw  | r n m h h$ d+ Z8 P= HB FE CS <^ /m t y |                                                                                          ~ } x v x x t q s q j l i ` g l n o t v x x } } { { v l i e ` ] [ S U ] ] S D G N P N G D F D D D A B D B B! ?+ B4 IF SC SC Q? P9 P7 PC VH UI VH [D ]C [A ]> bA bD dD `F _I _N ]N ZK [K VI SS U] Pb Kk Bl =n =n Aq <q :u 8q 3p 8n 7n :l 8n -k )l $q z                                                                  ~ u y t ^* W= E> H; M= O@ O@ HC CH =J =Q 4Q /T 1Y .a /e .f *m ,r ,u 'u r u z                         # $ #  # + 3 3 0 0 3 8 7 5 3 8 8 = ? ? N V V Z X }_ {] zU zU }P zP vN vN iP dU XX W] Mi >i 2l /n (v x } { v v l !l &d &] *V %Q #+ & !# & % / 2 4 2 7 : 7 9 5 9 < A H K N P P S W Z ] _ d s  w o j f e ` Y W Q O H J M Q M O M L H H E @ @ C B > 9 6 1 .                       " , , * ) * 6 E E @ = C C G{ Ju Jq Hp Lk Og R_ Ya \d `i \n T M O Rz \x `s ep ka m\ wW uR tN yM yK |F ~D z? |5 2 + ( #                        | | v r q r r m l m o r y |   y q e b e b X V L &E &? (6 <3 =) D& B$ D! B A 8 -&&   & 5 ; @ E S X [ b l q r t  u u~  y o k h c c ` ^ ` ^ T W T Q M G G H C @ > @ > C @ C @ > = = 9 ; 6 9 6 6 3 8 4 4 8 6 6 4 1 . / / 1 4 3 6 8 9 9 8 9 8 ; 9 9 8 8 6 4 6 4# ,+ '/ "2 0 > C D C C F I I I R S S \ _ i l k l p v      { z z x q x z z } { z u s s x z     x s p g _ Z R N M H H D ? < / ( ! # !          # ( - 2 : H U W W \ g n u v { u u q i g a b a Z X \ \ a i i g g i k k l k g f n$ q* n, i3 g4 ]8 ]; WB UC PH NH ML KM HM CM AR ?R >V :Y <` 7a 0h -p !z ~                                $ - 2 ? F ~I {K tP rS lV mV qZ o_ qd mg he mg ro tx e~ b [ Y X T J I @ @ G L S Y ^ e j q w |                            & + 0 - ( * & - 4 9 ? D K P W ] b i n u z              ~ } { y v t s q o n l j i g d %b ,` 1_ 8] >[ CZ JX OU VS [Q aP fN mL rK yG ~F D B A ? = = = = = = = = = = = = = = = = = = = = = $= += 2= 8= ?= F= L= S= Z= `= g= n= t= {= }= = = = = = = = = = B G N U [ b i j j j j j j j j j j j j j j j j j %j ,j 4j ;j Aj Fj Mj Uj \j aj dg hg r` wL G D A = 5 . $                           " ' ) . 6 ? D L L~ Ou [p lo vm wk vh {c c [ [ V W V V T T R T [ Y \ ^ f h j j m t w w |                       * + 0 4 9 : < ? M S W W W ] a d b i n l n u v v v z  z w p p k e ` T L G C C 4 / . , ) % "                            "  % %  $ $ ' ) ' ) % . . 1 1} 9f C_ CZ LR JP LP RN TP VP WN YP [M `M hH oF mF rC r? wA ~? A < ? < < 7 7 4 0 - / / / / - + / - - - + + ( % #         ! ! % # %       g J J J I = G G  xpmdUOYZ^_dcfiswdcd_YPMMA1   !-<?SXX[b`bbotxvs{qg_[XUXZ__][ZXSSPPSPNKLNSXQPNPNF?==<0$ 7&U!T#\$_(_)c+h)h)k+r-s0s0n-f+d+_&\(W+^2r3320--.-+)-.023535:BB=3?FFLLQPLFBDBGDFBB ? =?:?ADAA??<<:!3.$0&5"3&3'7$8$365?7B3B3E8D8B5?8?<DASFVF[IbKbGVKXNYQYVTUQVN[NbVg]bT`O[JZJXDZ@bIlctmxt}|"'1'#7<AEFKORRUY2^K_NaZidklmskmnpnmrppmihkffhiffddcca_dhikmmiikhfinmnrn_a_YRFCC@76# vqqgUK?<2(!($&)+-03:=?DLNVZ_]VPQVQQLKNQPKNNK88x8u8q8p0k)i&fd\\ZX USMKC>:9--(# {vvvvvvvvvvvvtohc^YSNIIJNQXY]bhhmmrvvyyw{||z|zwttppppoomkjfeea^\\[[YWVRQOMLJJHHHHHHHHHH|HwHqHlHgHbH]HVHQHLHGHBH;H6H1H+C)>&;$6!1,)$     @҃ ; 6 8 : = @ @ = 6 5 3 1 3 0 3 0 + "     # 1 1 2 1 - , / / 2 7 9 A M K K J M P T xT wT zT xY nd id dk Zr Or Fr @p <r 6r -w x w u }                          "{)l,j.e8eD`EbI`J]L]QbNgOj[nYs[q]obqqerbo]qZoUqPvF<:23.-(&)(+2537335:<AAFFLPXUUPIGBAD::<:5035<BKVxyvy{{xtqovyqgbdZ[XUSKGA<20()(--))(.+))+(  !#59>HNRaluzppjotuzwz~|~| .9;=JORw[~ch~to~khhehfjjea^^Yekpprrurwz||~pz~~007BQ[Z]_nnqqty          9972*  %"#%*-1769<@;>>CAC@CTUTOMMPPRZZ\Zacc_YUZcr~|y}uwrmhea^YVOLHMLOJHWh      !$((+(###(!#z#x|}z usrn r w| }zpnkkhipnhfhkccfknkknfhpx$}$x.z2}.88550377.5238<BFDA=72-+)+252+&#$&-22&##(($)+-$ & $     ! " $ $$$&$0$:$D$N$X$b$l$v$$$$$$$$$$$$$$$ $$ $'$4$>$H$R$\$f$p$z$$$$$$$$$$$$$$$$$$$.$8$B$I$S$]$g$q${$$$$$$$$$$$$$$$ $$$($2$<$F$P$Z$d$q$x$$$$$$$$$$$$$$$$$"$,$6$@$J$T$^$h$r$|$$$$$$$$$$$$$$$$$&$0$:$D$N$X$b$l$v$$$$$$$$$$$$$$$ $$ $*$4$;$H$R$\$f$p$z$$$$$$$$$$$$$$$$$$$.$8$B$L$T$]$h$t$~$$$$$$$$$$$$$$ $$$($2$<$F$P$Z$g$n$x$$$$$$$$$$$$$$$$$"$,$6$@$J$T$^$h$r$|$$$$$$$$$$$$$$$$$&$0$:$D$N$X$b$l$v$$$$$$$$$$+18?EJIID5!  *-1WY\^k| +0..::;GJL[g{jpOf;^1\,U"J FE> <>'C8FNO[P`O`MbPeOgOhPjPoTqWvU{YWWRPJFC>;|6y4y4|7;;<>7441266<KKMMPU&\/\5^AhHs_rbiahldn_lanZsMpHsEpKxOxO}RYYRKRURPPKMJJHC974-,*-/-* %%(*%"%%#'19/=<Y;^>r<EFEF@1-*(*(%*(%#"%** *#   !-+25::0!   |ropf^RLHE43.,*,*$ %)/.31.$ xsqjggjnqteUQLGB?:(tocWLHGHECBCHQY$a,u6ELQRQGOME3 13;=(9+;0674A@UM`MjQvM{W{`ahkoty~}}#&8ANQZdnjlqtvttxytojggeisvtxjtQsPlIgKeLgLeL`I_5X5Q0P2I.G0A+<(8$8!:758 ?QZ]`be!n&s(q(l)v.{02572)pjkf~fya{cvat\s\qVjQjQgMeLgJsLtE}@;99;>;;84331/1/4313/36/*/168646 6>#M;WYepywwtu!11.++00,0=Q~ &25>: :?< :<9#2&9#9#:&A+C.I0K0H.C-?.:0:5D5?7A7<8:7532728-<+F>KKSWV_ZaZd]g`f`dnuYahou~ !(278<ABGLPUVVX_dgi`boy~ #>zwns%u/x7z>xEzJ}JP}^zapsh|c~~}{xssstsqqsxxvxvtqoonttnnqossqooggijgddngglnjlgi}bb|Zz[xbzbx[w[uds`r`n_n]rZsXrZnXnSkUiViXhZf_f`fda_a`^e^e\`ZbWeWeRdRdU_U_M[JZJZFbFbA`CXCXA]AZ<[7V;P9P<L<L;K<I<N2P,U'Q"QV"V%X%Z%Z,](]%X [ i'j `__b`][SN F::7520.-)-22+0.237755200!(!&)-232-&!#!$))+0332($$#!.37870-.!!$$#!!#!#!#$  {tnolnje__]bZVVVZ`dgjjlsttg]ZZSLLPPQ[~eyjtlklfieiao`xWtQxMMQV^a^chmmjppoke^WMG;GGBC~=x9dMiOb>SCN;K9G6?8=9A=?9=;:9:8:683260C0T8L2L.J-G-E)G$O(L&O!VTMJGJHE@=94)* '%$$%%'$$'"$"$  "$')'$   "|wrmmkjfcW M JHB@=94.*,  $ %$"$ ""         uppqqsplgkgdd_Za_]ZZXWXRHHHD??<7457>INPNRNPSWXZ_]gkn}lnuz}}}}zzxs}kzf_\UMD94(&({vzslknfdda]]Z\XUNRPRSURSUXWUUXZWZXZ]\bafbgdinlnqpkusid_\__\_bid_abffZXWWb\Za_XUPSSRMNMHDA:<:/ 447 >>?<9475:??CKPSSNHFFAF? ?< 9#<%:%9 5 4&5#20/%/+5*:(:%?(F&A(>-?/F0A4A0>5>9:5545424/00--2-?2:9<?>A?AC?CCDCIIHCHAIAH?H>D>?<?9H9K5\?]DaDaFaadNkXkanZq_vau_kPlPsUxWsRuNuIlDiIa<b9k:k9i7b5]7\4d0b(a*a-_/]/]+Z+]&\%W*W&Z#Z U%S*R&R S WUSRRNM M#F&C&D#FDA&>(<(<%:#>CC5#4#9752 00/+- + %!  (+&#!    #+*00/0&%%##!#&/22-!   !#!&99720420400/020+&&%!    %(40*(24477499520-+(%(##(%*+# #+*04~/~5|5t4t+q(y!{~| ywvtq mj gej&h-g0e2h0l2m0q5l?lFjIlPGa+fl{ zxqllnpppk"i,b8aE\L\XWVSJREUIUIX@ZBSDSJKENBM;S;R:R3W8U8W:W;X3X+]f_!]&X'Z)U,W0S0P+U'S&U$S!Z"N&K)F,C.<0>0<,:)A&D!KI?:&4$479<:+"("&$!!%*0+&%&  !', 0, &     ( * * -4 5 2 4?K N II NKHK K D D K K M F C C F M PRWZ]_ Z_ b ] _ b bi l k l l g g k i f f b a b ] \ Z Z X R S P P M K I I C A ? 9 7 5 4 - + - + * & * ( * ( % %  #        !                        !                                      # % % & ! # & * * 0 - 0 4 5 2 - / * ( &                                      } | z n i ^ W M A A F R Z J < @ q> eC c> `9 Q; Q< Q; L9 O7 G2 =* 1# +                                                                     } |                      }   | } | } z s p r p m k n p r p u z } x n r r r r m m f h k m} i{ f~ cx _v cs ^t Wx Rt Pt Ts Ts Oq On Yi Te Pi Ag Ae Fb J_ E_ M` Kb OX OU KU JZ H[ EX HU FS CU >S ;Q >Q AL @Q EQ KG CB AD @G >G ;? @= @? 1A -A ,= 2< ;8 @7 A2 @2 >2 <) 6+ 20 42 1. -( /) *# 1& 1( 4$ 4 1$ ,$ ( / - ( * / * , ' ( ( , * , / 1 / 1 - , * * 2 2 6 6 ; @ A C Km Z\ d[ dY f8 |1 )             $ , , }* |. s1 r4 r6 u9 u> k1 n, p u               v u l a ] \ D 4 2 / #                                    | x s p n k d T M J O U ^ \ ^ d d ^ Y M K H J E C A @ < ; 9 < 9 4 - - ( % " "#   # ! # & % ( * / 5 2 C D K K S X U S W X \ Z ] g l l p k _ ] ] \ _ d n v                     v v z x {                                                                                         " % / 1 3 6 ; ; @ B @ > @ H L Q T T [ ^ ` a e e f e e f e f h j k o r u ~ ~ x q l l n l e Z Z P G F D A < . #                                                                                            y w y |         u ` H 4 8 @ G H L Q M O ^ \ \ Y [ [ W T T Q M E > = > ; 9 8 8 6 1 , .                                                                                         } x x u q n g d b \ W R K D > I 7 4 # ! #                                                                                                                           ~  ~ | | z z z y w w !t #w (t *p /o /m 0k -h 5j 5j 9h <f 9f <f 9e 7f 7f 5e 2a 2c 5a :\ 7` 4` 2\ 4^ 2[ /W -R /V *^ %[ #Y O M Q W [ \ c !c ` f c ` \ ^ c c k k m m j k m p r t u u r t t u y z z ~ |                         | z u w r r t r p o j j f a \ \ ^ ` e f h j m o k m p t m m t u w t p r p r t r p p k j k j a e e a ` a ` a a e e f c a f yf rj vj tj qf oj gk `m Yo Vu St Tu Xy Yz ]t `u cp cm eo hw h| ^ ] Y Y ^ ^ [ [ [ X X V I J = ? = 3 6 5 $      " !                          d Y T R U \ _ _ ^ W T M M T W C ; y y |                                  ~ ~  ~ | y y t r t p o j f f h h e [ Y H G 9 9 9 6 4 . 8 1 ,  j% q, / 1 * j, j, n/ s/ j3 n6 n3 e4 e1 b/ ]1 ]3 Z8 Z9 X9 V= U6 U8 X4 V/ V. [) P, P, U/ S. P. N1 N1 I6 G8 F8 ?4 ?/ D) D' L$ P I I N" P U X X ? : : 7 5 2 . 3 3 - - 2 0 2 ) ( # $ # & $ ! #                                                                                   }    { z x _ Z \ Z X X R R M M I K D C D A ? < 9 4 2 0 / / + & * 0 % # % ! !         # % ( + + - - - / + - / / / / - 0 4 7 7 < < ? < A ? A ~? wC rF rF mH oM hM `P [N YP WP VN TP RP LR JZ L_ Cf C} 9 1 1 . . % ) ' ) ' $ $  % %  "                          " % ) , . / 4 C C G L T ` e k p p w z    z v v v u n l n i b d a ] W W W S M ? < : 9 4 0 + *                     | w w t m j j h f ^ \ Y [ T R T T V V W V [ [ c c h {k vm wo vp lu [~ O L L D ? 6 . ) ' "                         $ . 5 = A D G L ` wg rg hj dj aj \j Uj Mj Fj Aj ;j 4j ,j %j j j j j j j j j j j j j j j j i b [ U N G B = = = = = = = = = = = }= {= t= n= g= `= Z= S= L= F= ?= 8= 2= += $= = = = = = = = = = = = = = = = = = = = ? A B D F G ~K yL rN mP fQ aS [U VX OZ J[ C] >_ 8` 1b ,d %g i j l n o q s t v y { } ~                z u n i b ] W P K D ? 9 4 - & * ( - 0 + &                            | w q j e ^ Y S L G @$σ'+,3.18868=@@BB@@EOQOIDBEEIJOXbehjg^^[[XNJOSSSVXclmmhcVY^`ccjecejqw|{wwtv{wvtqrwouqmqhqct\w[{WJC=JJMJMMRTQHLOT[fmjeWMG=/1,,)'$$%'/38989>4B>;994.11664631.*)"    snaXRS]lbWNK<9::4/242% ! +9?M WX R H 075 + !(-- 0&0*2->/Z-l+-/04<4/0d2_0P0I4C0?/:/9799?CA:<97252#0*/5-2+/%*!+% #! !((+/ 5 < F IK!U#]*_2_5]5\5Z2Z*S&S*X-X:b7b<f?gHiKpSndikdkX}NS\}dninnkqksquxxulqfsWvRzR}MM]flg]df_\KHIx7q/p(n&n klnsnidk nsu}  {v pqx  {zvklquxx            y`SVTNJG : ; 8 3.00'3'=IQTSNI'@*?.I*]*`.e/m/g,^.X/E*6*0',,&,/3$4!9@;99 =C EJ Q QV W T938:9;;5@0H1H8L:J1C0C,L!RW[\`!^'[,[0W3V:VDWEW8^0a$j)k.p3p0m+m'y5y=t:zJyOz[|^|N|;~8;EJQSX[`hmlg]VTJLONIILJNIJD@66|1|,'0=86.1+.;;860! $+|0}7fGmLOXYjJx7  yo e%d(I/B2F7<9=;BEBJ:K2R-U#\OKHEA;9;( ^OJ L#BYfpxpR# !'.5;BIOTY`gmt{ %+07<CIPW]dkqx %,16=CJQV[ahot| &-25322320(052F2\-z0g.i-x+&&      =VQR`cz$&3.2#!# -3:FISdiivyxjs !#(-055"3"513;3F5M8O8K5C8F:C7782=;AU=@<F=T<P8c<f=rAxADGKNPSQLIFIKLNLXZ[[b_bbed`beeii ibdeeieebb``"b']&d.b1_0b?_:`BbGgGjNlInNnSqSsYjbi]gmdjbmeqdt]m]eZjN8I$GIAB:800-03300-.-.)-)|)p$h!k!ffchfO PJC E @@92 -( "   (*'@AFH97>4/1,""* ", -7> FFAJ P TMP \Z _ h sx|x}|us}!#!!&&&#&.(($(.20-##+)!!. 2 8:<)?=BXF`KLSUSSPLIIF?:78<=?KQSXbdjjl no&n0q(t}{}}}~5sS_lZnU{SxQ{NvA) !$!# #!!#! ##$#&(& ( ($ )+.2238:?%=/5389<9<>?6?*BADIDD'K*Q6UHVJUMVQZLUEV;Z@Z=Z4X4X.V'U'U Q QQUX`,_/[,['Z*[9[1_=]@_QZVZ[[Y][[e`c`Wb^dY`GbLdEgJgYg\ghdc_mZjX^XfVeU[SePeP^N^LcKcIhB^=^:r=|<<:72|+y#ff\ao!$&&&-27?AGDD G FD+F7DFFQF_DxAA72( #6Em}  &=GOLNS]~  (/>KIPfgnqsknsx{}svd]SK2&!-%~~| z|~-|5y>zCwKt\uft{propopruuu,u@rBpJrMtGuJwHwTtowkyoyuuuw|||zwzy|  |&z!u.u!t#p7r<t:u:yDuDuIteoleoat^j[jWnWsTsVyO~QYhkjhf\OOWYWTJ991434.14;1//3/*'$    '.))4.$%'% "     ))  ',)/ 3368 8;@LVWTV^ry%((279KMHJMTRWYZimpufnimwanafc^Y\fh_ca\WPPHH;21''~"FW^}   $$$..;BO`my~~zutupruyw#y*z*z/w0w7r:uApIpUr\rdt_u_tfuktsyuwzzzuwy~~z~~|~~|~~z||"y$|'y.y6r>uHtVr[w^wo|rz||poy~wwrpmkhjojo ot tz~~|p|  $00==B:ABVQLAB<<0.3<?BKSPIQbx~~junrjplrojnker`h_eZcQaU[Q^V[[YZW_YbVlWo[vWyMoLiEgEqEsBtE~HHRMMROJ=>C@B@9;@;83/)%'**'',.3.{)~'t)q*t*s*n,d1e3b3[4Z3S/V,X)d$i"qv     "x%x'~$%%"$"%% %)*,/36;BGGHOWY^akmpruzz~42<KipuwskaifmmskkcUYR\ORMOAAE@EJOOZ@2/   %*2967H1' *-(,FRT\a!swa\ TZ T U ZWY mp}zwr$)r(d$^$Z$WR9!*$#+53 8 72-.0022288=BB=ABBDDADBDGyKlLqKtKxNtPxPtSvUnUgeKoGxIU_`gnqsyy{toZVUBLNV[VVPGSZQUNUbl{    "      %  49 EKT \ cffZn  ~xvvtqvv{}y&}+{.x0v+l.o5i@g@e8e"de ijqoonjiige``_]```]ZV V NNLGFDAABA:::788757:8::77323+)$$($),+++3.:285B7D7O5S5X3[5`5c3c3j2j2^+S)@(;&=)E(S)T-`(j)t(w)$$)&!!!!!  {~w|mjtyl`G j r~   / AIRxz|upmjTQGGE>8=>=68BBCB>BECEHJLOOLOTVVO'T*T,O,O4W3[9^6h;p4C[[^^rpwty~w|w~ !##!(+--35:=ABB?BFGKIADFIGKI GF#B&?3:K8q:{888:853235322..-&((+})v&     *27;A-#  #,26EAA  ~| z y uo j1[CWER>J942311*,**',,), )$"  }lbZ[SUX]_SQ?:52.28 : ?558< 85+-&&# "$ %*)) /31//,*,*)$""$$''%%$""   ! !:=FGPN?FD32#!  wt[RLGB/,.*))Gprfjk\TQG>6;;1)$g_MfsvRKFC>0+  hbTBSYrthl +7W_g{{xs nidaXPMKFKH?944-#  qii\]WMKFD<<-!  299-/*!#          vmle]VNLSQ?:1030,)  x n mnf^ iiupur__fkx  !'68@DNNVYemryw{mc^TJQQB,||yyvromm ooqrttqqmmortqvvmjjhhegge^][[XSQNJGIGNOST[][YTTSQNJJLJLIIGEBEB?@;=:6;==:;330.,1x3n,|,p)n)z'|&$""!xk ^ YUJOKUZWO<FHFF>EAHJ;1%  }xwrrpnkiZKEEC@>941-//*  ',,414,*,''#1/77;7<PUYadsz}}{xqe[I?:=GKIB=?AFGKZ]_t][[VXVUID< <7(74375A7H3I3M3N0M+X&_!p}  $8L`mzz~&7ALKPSX[Z[Z]ZPN]dq}yuppm=.'$$ }%z#s%n,p%nkiki gg bgg*b1_2Z9XASMURSUP^FdDhDnAn<z2 ukf_Zccadiz    #%/+ %   ! "+'.3, .3600;D@ 6(6(:*5-0/)2+9!<$<,?5I.M=R@PBUBUIXGXJ\N_ObSgQiVg`kYkQnQsVuVvSzT{QVSOSNGGDB@;D?@@:=6;:35@?;:D81.118:531&,,',).+0.,.)+'+&"!""'!),&$""!"'+. &  $!!!!'&!   $"$$%')*)') * ,,.113466==@BBEJJLOQRVQRWWVWY[[YY^a`aecej m&t1t;zO|Sg{ 0DNU[l{tmb]]he[YOQOTVYQSVXQSO OT[] ^eejh l o hmlotrv{y"~#'(*,,/146474479;>AJKOPTROPROKFEHOPTWWYZ\dhhkmnpruswusuuwx|}}tw~~   "+3;ySwY~``gglmtroolmlmljh ee^AYF[MYN[SYXXbTuSxOnGZIaJfOxVXTOSQOLIGBDGLQQVXYX [[e%h8g;^C^H^M]O]VY\XfQjLuJuGEDDDDEGD==;:53.'',)$'.3,+'$""!          .038FLKS[Z`gdjnqoss}{~~wwswwrpnrpsppqwFwAmonmkmhfc_ZYPROHE><<96211/,**,/-*-,('" #%" ""     #'1>HHMKJOMOTUR\Z\WPMC>* ,9HJPRYY__cmpsszxzzfcps}}    ,1688?6:015;=@:BDIE?=53.6:=GLL=:GDX X LSNY^ c j hcbho|yqec]TT X"S'Q'Xb%^#c'e%h%j*c2b/l,o(y-t/o4q4v7j9m9l<c;q<w;4126;<<@~@rUeYm\lZq^r\w^va{^ZY\_adcdhhkimnruuwz||xwpnuw}|wwurpppmifhknpruusrrnkkhfcdhf_ZYZYPPOMKK@CKHJ H F E>E @66422122/1'%#%-1#/&/-,0'/#*"%"(#0(7(>%:#7"9 5"> A:4/*   #/5:?FHXWSC NF P SSMSMDRSSSXX]f_bnlagnqsllZSFD:970:CA:/*:I\S_bkvz{}snpqu]bbNRWUCWZ\gkusz}~}{yyqvvnsqniie`]][ZUXS[ZXSSUSNIF DB ? BAB?<820.0&++)(&&$!!$#$(-.322353530--+&#              %$"3GGC@>8/19EOTRTOQLT^cehkmoojk`[ajcoporpofce`ffprkppttu|z|mfhea[RY`efkma\MM|LRV`chhku||~zyt~r||zywpmmjfcccfkrw|y~~|~|wrrtttrmmkmm h mmjhh$ef&e-a.c2f2h?hFeDcGaV`Xa]ag^l\n\sYtWvW[YWVRRQOOJHGvGEEGEB>~=i>e>_=I;F9F8=9N4?1A/+'%"% $*,)/./3'+$#"# |mj\L@9;834>E[u~~rokhfj~|fw !.8B"K]n"g"[%U%G 8%.,5,A/A/F/U,`.d,g.n*n,{*)~*),*'%%"  " #"(-,41(22-16796147791%,(%,(1144,*# (  #6;6941*'#"  #1/9;}7{CxAuEsCv;v4u2u6s7q6{ xu#s%p2n/n6l7n>k<i6g6i;gAfFf6b9b@]<Z@X>X4U7P/R#M*I(C> : :7570--(%!!~xxqollj VK IB= ? < = <:: . ( ~wuyuttkkhecVRRMMEB>=B431)'" }zxgd]URSM><94&%!mTGB=830..0!   vyvoh^TEEBDB?Bu@p@k=h?d8a6Y8R5W5\0^.W.O)H+C.J1K3H6F6C6F0H,C)4$1/*/" }ld[UF=FIZXPQ[q{vvwof`cVaN\GO2J.C&F.M5MDRLRSTVT[W_^vn|} '2;CMYdks!015:0:B;O;S?`?o;:630!    ~mjJDB@=850! )0IQTX]Y]`lyxwidwcddaaddaddaZTKF@>;>;><2*(%'"        !!##%*4::4902MD>?HKKRRX]\XZz}{z}}  )//)*'    ~~}~x{uxxxuyqxqykvfxd}d}b}a}]vbs_x_yZ~XyXtUvSyUsPyMxKtMqHoHo<q:s>t<s7o:j9t(v&x#s%s*o+j/g-d0`/_+_*`*`([%_%_]_b__`ebdb` dejnoqt qojdd_`gjieib__]ZXXVUSQPSPNLNKIKNQLII=???=<=<877553..++($###$#!~{|{{w{ yw{wtootrqomlmeec[YSSQQNN L L JJGEE@??=:!:88;:863310,+.++)!'2)8&:"A&G+Q,`:eEjGj=],V&Z&l=nBtNsOlQnXt`~qt[vXsTtQvQv~ */455?0(% {he^TSNJB:5.++68830+$)03+)"   ch|psza}^P}JzJxEz>x7u/s%nwz># ~yob`igd_XVVUPLGBA<872(! ~uohaYnu`dXUUMUHQ>P2I&G!I GFGF <878:=BD=ADFBABAB=<88???==:8:<??B<355<30.+)++++)!$+(++-+-+0023332202.+m&X(L#?#)!  !!&+,)mdO;' rk`fkkffmo)8?FS"S%Z,[4d6nAqAv>xA~@~>@<;97977421-#"" 1@@;<ACEFHJHPMRUYWYa\\ZP{O{P~W^~f{hlavpxuynlgd_goty{}{}~}xx}wusppifcWPMJMKFCJKHA/*,#*"%'                  e]XNG=<+$((*)-&/-,-*((,/1;>CC>>>ACJMKP UUWURRYWZafkmnuzzurooh`VVRMGHE@ B == 3 1 )*$"     "&$$!!$" }xuqppllggfil} {p i ilikbaZWFCFIMUS/(#(%!!  {g[LJG;::..0+ |k^\YW1-*  !5DIIJE?81+$$$$$$$$$$$v$l$b$X$N$D$:$0$&$$$$$$$$$$$$$$$$$|$r$h$^$T$J$@$6$,$"$$$$$$$$$$$$$$$$$x$n$g$Z$P$F$<$2$($$$ $$$$$$$$$$$$$$~$t$h$]$T$L$B$8$.$$$$$$$$$$$$$$$$$$$z$p$f$\$R$H$;$4$*$ $$ $$$$$$$$$$$$$$$v$l$b$X$N$D$:$0$&$$$$$$$$$$$$$$$$$|$r$h$^$T$J$@$6$,$"$$$$$$$$$$$$$$$$$x$q$d$Z$P$F$<$2$($$$ $$$$$$$$$$$$$$${$q$g$]$S$I$B$8$.$$$$$$$$$$$$$$$$$$$z$p$f$\$R$H$>$4$'$ $$ $$$$$$$$$$$$$$$v$l$b$X$N$D$:$0$&$$$ &',,'$$8̓',)13:1..)!rhhmmefjrywpkjjfefhptuyy| x}||pwuxs^\UY___khmimus}}zssifa^WTMOPE9#<#C(<+A-A-F0H2K2H.E.@+>./5#8":=B?"B#IL"KFIGKLQSUSQQUUPNVZ]``ddg iedeegjlonovy}}~~}}~~vx ytig[ZPFLLKIDDAB573 30 ('7$;#9*, (# !& "#  !$#-+3..3??<<5#     wu yo~|tpE>>CQLB;8  ',*--21/26246477{A_CaCkFpEuJ{JzMzR\zdvnia^TJHHEEJOUUZ_a_\\^acpruupzkzip^aT9R*Wdhhhdinrwwz}|xsmkr|@wsnsssu|zrpmhfchdfmkprkhhmpusurkfZRE>6,* {yx{tvongnggidb_]_d_`[Z]XQVUXXSPQKNFGBGIF?:7+587FNNGL50+$!  !          !#(-).03027502+(($#   #&!|}} w srkksnnkhkkimknmnuupkhfcmnrr||spniih^ZZWUTWYZ\^afmkd_ayauZMP|TzUuYp\eYeUkTpRoKfOcR[O^J^F`EYFVAVAO>O>L<J;B<E>B>GCEFLHJTRE@;9;6>6@1H6C'</;)7,6'6 1, %#  #'*(,,*(%""'#"  """%(,//499<;77;>AEEHHMOTZ\YMKHKPUYr%@GJQcyaemry~tohWMJG813/.)'%  zvngb\UKMRMHHD9227AD\}\xfufm\hZdMd5c%^ _(^/_7_<^<\<R7P/M(M#P OKMOTTWZTM KMPRPMKKHCCACC@;7672422/11*%          # qohmb`[^YSVQVVNJ:655::,'+{+{$~"{{y}} yyxx o otooled_d`]ZZVSPNLNLIIKIIBDGIGDA<:?A::252.-0552}0--+}-z(s(p$u#|}if#a$^!W!PMJFC<<PWYT;79<;-'#    '*142% #('6<74--%%""    }{~vytqsqgdUU[SQLIFD=35=<2.+-(!~|ztp||ywzzw|w~zwumuaw^w\|V|\~\WRJCHC@B==@>~@yMwOrGk=k8h3j/m.p3r4t9t6t1w3w;w=|84HRTOM`ea``ejpyy|z| ()))##!028<=50=NQQV[g`iiSLGKIGGQS]gq!$$&)0:20.03...- 38DL d,i7iCj>tM}c}h{fxksktmtxsxs|vy}{vvxtsvppmmffdmnw}wwsu}   C6(%"    # ;A@EHCE;     ~xvqqogged` b g_X7--(  '*'#%(2266;;>JR^dkpw}||r|upnzpmmokjaG^/\^akڿmܿmnnppxƿ}xfafpsz}ƿտտڿڿпϿʿſſʿտ))%**     ޿Կȿ}x}{z}}sgnxxs}z} {xxpqvuvndkgifXPKPMNC9504>? : 2   # ?7(&'*&/':&<)A)R0F8ADFJS[g]kcqlmmlggccc]^bcegljhjhmqwwvÿʿпϿ˿ƿ  )36Mcft 032#!%& (* *+*&*-252445577>.H2R(W\ \\]]\]ZWNKMNRRNMIHKHFHFD>4~0z&y%p!j*f-a0a2e7Y7O:Q>GAEA><.787@4E4Q0O/H*G(B08217$:9:ٿ9ʿ:տ:Ϳ0440542/-/--4\9?FINRRSSX\_]Z_dilվq̾vǾ{ɾоӾx˾s̾pݾqv{{{#}!˾վվ~hYSXjom]Y]orѾǾվѾؾ־   4<DUZXD45?_{Կ  ޿޿"/;JYmtuw  y"y$'$''  2INij`` g ][PI: 2 +  "$')'*.,1/,13,*.;=;9..w1m/e1Y/Y,c,`1E8 9Q`jtwy|gR:0! վݾ Cп9BE9EH$H(M-M0E2Q5M5Q7M8O7V8Y:[<Y=QBYU]]bgvxvtsqqqonjiljgijllnqqxvt!x~5D~.Qqot}ylxs}yxl~}tv"'1CUx 38==,+  ,33:??NX[`bXcjhlqqlrrw~(49ADINZ]U_xuvnnzngablu}~ 48>C@O\t|}xx }{&v+x0v2x=vDoDjllyiijijljggieii ` _ b%]-[;[FX>VYU_VhXhUsU[[_]V]`_``b``bdbd]d``"_&`.ZIXNULVQUXUTSTQ^P^PcLcLhImI~DBDFDB<337852-& |toha[VQJC=61,% xqkd]WPIC<70+% {tmg`YTOIB;5.'! #RpxpfY#B LJO ^(;9;AEHKO\U#R-K2J:EB;B9=7<2F/B(I%d eoy  x7jJXYLOGm7f0}+|$ !068         ~tpwt(r(o+m:q:t9v4t(  +/-*  NQ]oor q!q%m&g(X&O%N N         ? @ ? : = : : 5 6 , + ' ' $ !                     ) 1 6 ; ?  u⁦ l k i s s z | | y t q o m l o q o v {    x u| ~ | { y w r q o m l e c c j m t v m c ` ^ [ X V Y X N N L G E G G E D E G G J I J N Q O J J N N Q T S Q Y ^ ^ b e g j j o o q t v y |  t { ~                     ~ | { |   { { t j c ] b b g h j l g g m m o m o r q t t r m m j l q q t v v w y r t        ( - 0 9 D D C A C C > ? > : 9 0 / : : > ? > < : < A A ? > 7 -        ၄     l l k f d \ X W R N I F D H F ? 5 !   & ( * + / 0 5 7 < A D H K R S U Z \ _ b d l l s          l 'i 0f 1f 5b 8b Bf Gl Ln Lp Is Lx Nv Qq Sq Vl en hp lp yn |q p u p k g k g yf ja VX BZ =_ 5l &n &l '76799;<;>8@=ACFGHRKTE[AaFmOtTuUzT|Ez1m1`-\/^,O/@,9-8186476hmtojfc`[YWYW TVY[acfhE[ae^[\WWTE>;>E    ",1386643343386699====>9889964)'$$"$'*,*'"߁|wuppmd_acfimsmikmmpnmnprwVY]`geelljje`^^``YVSQOGGGGDBBELOVhmtvw~~wvtwtrrqorqmlhၶၢ:$;*;.;3:631.,.*+)*)'* , /,,)   $'+,,01353535588 68:$o[g[eV`Q`L^H^GY@[;^;^>jLmVlWmYo[ B܁B88;DJLNLJNOS]]ehllhgge]TTJDBDGIJNT`elt{|wyvywyoghc``XXT TO N I B1܁36;BLLLLJE;1HDAA?A?A?>>:952/0/((}+{-u/u/n2p2v4}9{:v:s>qCbHiHM H FAA?? >??54575 02/0/*+(++/4&(޺-ߺ2799<><:::<>AAFIKKNN M zxvusp n kffd]Z\\\XZ\ZݻZZWS޻SۻXۻWٻWֻXԻSػUѻSѻSϻSŻU»S»PRSSPPRPRUSRSRWUXW\XZXZX\ZZλ]̻]ֻ_ѻbѻa޻adۻfݻfbdffgiklpnllnݻpۻpquuvz\]\\Z\X\!](_-_2]2_7\7Z:\=ZA\BZDZGXIXNZNZVZ_XqU]WUWSWPSFS<R:S8S3U3U(W(U#SUXZ\]\tmoTD?=;;61&  !"+15;=5:6=BI`gtt        ߾ھؾݾݾؾ־վо̾ɾǾľwoǾƾľľ̾оѾվؾվ۾ݾھѾоǾ  ¾ǾоӾݾݾ߾    !/07?HHDHCHzIwCwIsIrNpMmNnWkRkUhSfNfDhAfAf>c4f*f(c+_aca ^^Z WWZ^ aacadfݾkоn¾pľprnpxww}վؾؾ }wcWTJC,Eanzpc@1*'߼ -#*,277>EWZakszýýȽҽǽ ۽ܽԽԽѽȽ½Ž"Á+,:@Iblmtvw{{|tmcV{GyBv?q=j:d1i0o&ot~  """--('%#       #(-66792*,,/-HFJHEEEFEC<9@<>CFJJHzKwPrPmUkWhYfWcW_^_aa^c_accd_c^c\fYfTmPiPfOfPcOZPWRUTUURTOTMWKYOZO\JWKYEWJRJTFR>Z;Z7a6d1i1n-p4n<xEzJzḰ  ~wwtpookj%h#e(a%`,^*\-[-[%\%^ \aahkkko rttuw~ˁ '>ECEJMMTYaaUE@;;7<<6/,//29>AJKUUOKC@CEJKOY\aahcYWY\dhnrsmppkfhdi|Zzayczf|i~nrszsynwurspkmskuksjufufpar\p^h`f\f\aaY`TeRhZjYjUfRhMjOkUmUoPoTpOtMtJuKyJ~J|FtFrAt>wCzC|@z@u;y4z4y7z9~;~77A9<92471/2/#          ́B́=52#  #(-0003)))(!     $-.0702377:77::FIKLIDD<=DDB:ˁ73300+!!!#&&+0.-$!      !!!#&##(3~573.37:58:<=:o:ˁlDeLeNeDdIbFbK]L]UZUZSUXQUPZLZK]G]F_<`:d3d)jjjgeejjgjejjgded`]]ZUP K?BAKK$S$PI!F&G(K(F$DA:#8+D-A+?$3$0(3)2+50538.)0$2&388(=A!D+F2D3G3G&LQU)V#SUX]#][] ` gigl jn oqv{{!x(sot&s)t0q5n0o:ʁ  $#&:<:GKNGLB07?BFGKB-$!)-038<LtVvQtQsSqSqFs=t<~#~ } }{y x v s qn ljijnqtxxvos~QˁXXbdqqv{~~yqvsvttsqlogebbdidgjgbb_]]XUUQPQNLGxGnDlGlPjSnUjZiZjZqZt[t[q_nbqd{evgqlsltiyieeiljlytotvx{{y{vo{le`b`[]X]]_[ZSPLPKIGINQā{}vsiggddaXUSSK957-%*9<>F27FIPSSPSHRW\]addnkqquxx}!ā<<NMHHKDFDHKKPWX\bbfglqsvuv{sisqqpxuu{vonpqssqolqftbs]tXxUxDxAv?vDtDs:o9s?sKsPnXlaid`\`XbXbU_N_K`IbKdFgHeCe7d0d-g+b+`4b:]AZ2[#Z VXUP U USU PK LKIIFFDB==A:878735-)-)+57:=BABFFAAKQSPIBADIPPQSQSPPKIPPGF?==<:8::785:=ABS__`_``bgieggjnqty{xx~}~}yynb_dgilx~{y~     &&*((%+-7(!!z"t*o*f/c6e>f@eE\J[O[C\H^G^@\>^9^6c1a)Y)Y"W VWVTڿOҿLϿHϿEʿB>@BGGJMRW[kptuſt˿pпpڿtڿyyz z" % ( ( "  % " ' ( % % # % zyomecVE;866@B/ )//'"%$ ')/148348;=CMLLQQRYWTTemmrru             q݁dd]F<D-&(-&0Pagplsq с            P -сO 4O 9K CK FM HO KM PJ OH JH CE >E 6F -J ,K -P (P -K сK M K J H H #E #@ @ > A J J K ́wppuxzzu|rz}|}vvsuz{ususqqsslnliklnpplliiggbaabfb]\]bga]]_gbdppssxxz{zzwsnhmsnpxunhkhf_YYTPMWZ^_\cad\UMO@<>9;79@FTZcirux$́}}wxwzzrhZYUY\d_YRPPHAA>;<692**12;7%*<FH@<--*%(%"     ") ))%$ '/$7 97-,-9;C"H$R"TYY_ca d c\ZRK@2-44;;>MAAFTTOPZ\a^\ f hdc^nx")$ʁ       23-($5!:$?#I$N$U&Z$[#i!s!}$&}&s#s(l+n)t+y-v3<x<<<78732-.-)-+)(&())-.+)$ oleev~{yol]]VULLG505΁2 !(*% (-29::2+472*   #&%(594:55:>HIFNSXZ\SRMyW{kl|p|sxsx||~yvjlmrqjggeheeccb^OLIJLQSQONGLQQNLQLGDGJOLD@:??I=;=3:8.0.,))$!!"' &! $!"$)"1$60=:>;>1B&;!6.**%    >CL\achefru   $"$&'+01018:;==??DB|DzDwGmI[NQSHQESBV@V=Y;c4g.h/g8l9 zussgd\XPM<:94   wmmw⁓~rjc[WVOOJxJnEZG7E/C&EB EJVY`cr&49IS\q߁troe^TINQvNeEQGLILVKYD`7g7qNwS|[_s~b^VQ I =686,)$! "$+,6?BNT]```]bb  ++.))0'&'$'&     u偢|uf^PKHJPZ^chu;с9FTrx|w}|ur}&]o|mN?3!zrmi_w\rWsKdCf<E7761799;;74/( qL L.)11 (,,112699<>>FJJ M PTW$Y1\/\'_"a)c'c.f3f*k/r)u w"u1x@xM}`\^YQJG9BOM`hekrrz|tmjaae[\WJTMC B| 2o#/PMAC219\<ӁZAYAYWZX\a_qc__f^\^acikkn zz8pokwhcYRtPyKkFRCJ@RAYC`Cc7V4W>c>hAzCyAjEfJzOOKHHECEEAA<HKPOTYWWRKKRTWWKO KWYWPRW^ aaacdiiccfhikimru|}#|+z.x!mFkDmXk]i`h[fbcsaiYgZsY{\yYTC4/-1--,      "'(,,--9><>CFJMOTTZ^_cfknx| "-2(,AMWhi|}|wwunmkinnifa^WWPPMOMF2,'% =8@=D8030@JT`q~ x{x#s/s9v<vHsRnKdUe\dbjfeuilg`ZUQPPFA=:77578}7v7kG]LbP_5I<??7=0=-D%I#FINPNIGD ?AFABA=A::8-)+))+-5:8:82+!((&  $$&$#/&%    %- 7A?5:*% yeVIEBE3.& p p|}xx&^OM6 ;11'ysZD(~|k@4)$    iX +      {#q$w(r-v.g-c-g)h-b.T0T2[5[:D?3X!]+dDntt%xAx\xgtqssqooqnll no ooqs3t"v$qGsLtwvwvjxpyt{e}B94," xiSM9!wh5)&"B[` hYB6&"&   z wz%,2267ACFKR\_fs|)|;ESw 2?as{xspznaiUdWd_aP^K\<\߁XWRNMIMHDD?2+#    -1/ 64ACcd^ c arzz}}mdc_RH6'   v q l e _XPXSXUKGB80&zkO,$ 9CQ V VRHLE%B(E+@7B<>PQRWSTWVXR\YaRdQkVn[x[W^Y^ffz}zz{ !z#x(v<u8u<uGu_qlksfs_\0ׁ&' }||wuww}xiYH61Z '.0LفIFBA=:870:72.$($2!:Ijogjjstqq y {~dK$  ~wpa`fcVTQHOGB9)%%334BT[jprw!z$~##(|..-##!&.0<BFLL*F&C%F%K%J(P(T%T(W%\#Z%U!YW TOTWWRMJKF H7 ,*%'"  %'#(127<9<;946121/--/,*%  {ywoom`[y~yy|~    %,179>AHKTUT~MyCy@w@t1q,m%o l jhb]gj#l,g%j*h*h1c,`'^,[(TNOV"X1V7T6T<S7Q6SAO>NAJALENETMTPNKIKSTQUSWVYVaOYO\QcQdNaGWI^G_E^G_LdJdLhGfGcDdGfGiJmNiTiYdYiYnXmVpYpYwYuSxOsNuJrLpGm?n:d5_3_3d0c0d.f'^,i0r0n.i0h5h6k6h=s@G|DE@:=BB@@EGNL?@GDEIJNOYYVQSSQNIE?BDIOOLNLNILLIJQSQTSSOQOLJII E DEB@@=;6300.'&'&&&""!               !+.,036;=BEEJJNLNIEB;:50,+))&&       !$)'1:=BGLQT]SQQGG?;8;:=:1835;1:8;=8??EV[]bejjhoolrqloj|ez`zcw^u`u^fYdSc[a[aY^[\VZXYVUXTTFSAJ9D6;95@1A1<,@)<&A'669@ CFORPH H J RTWUWZUWZZ cdiimkpif k i dda_WUTOMKHJPWdsrw|||z|}zxxrmk}m}p|mwm|d}dzczaw\u^rcscp\rWmUmRhR_PaO^PUUUTPUPUORMTKPHOEO;M;O9O1T#U"Z#c-d2f7dAfEiRnWwfipz}|zxuwrd_^aa^\YYUUZ\Y^Z\ZYPJHJAJECEC<>7741/,'922-(E@1((114274;77221/*"   {ysog`d`]UQQDB<57=732-)&##聹&).=:2-)$!    !&$&'+0.3505.3.5,3)3+<)I$L"Q[!d"b"["U$S'N0I1L0S1Z0_6g3_5[6`3S3N6N6Z;_:U;DBALBSI[V[[Y_V`S`OdQdTbVeQqSvVn]jYgXe```]l_wi   +**-*2%,#,#1,;FH@!@!<#;&<#<&@(FT_aks}zZA6*7CRTw2rWmijnjsg}gc^VQNJJGGD@@=30,,+,+,++13;\@MDHJ*L+Q&V&[ clorvvtr{~|w2Mp@o<m;h9m7j4m/h a\YV R VYafffOJHE9;8/$  ,.69>EG@@8%'$$/4/3,*  $'4>@;==CCGGGEHMT\ah\YWRLHEBB` jrrohYQOamtw|t yz| |    ypha`^TMGE;;961/**  "%",%1)4'7)7*2*9/H9J@PJ^R_V^[\`^f^j\jR^RcOcOpMp聛}wwwswsrsrs|_WPMJHJFCC@9 6 64 4 7 621, *(* *,*'%#%(*,-/1#,4(2'7*:,7*D%F"M M#N"]#s"u#v%}#%((%      }upqkpnalqpii k i f fX]]_adg_XPS I M RS W NM :4 0&   "  #%%-/1127277>CJRW^c_ "  }~  偩"& ~y&+=;@GBG5?|6k8y?~=LOJLOSYmohz^wcrqhyh|rwze~lrz~zwwtmkmtuyzztpr~|wyyrroruokjhjhca``\[[Y[[VQMMJ LQOMJJEEB@>CCGGB@94,.48;>>@ C CBC C*B7=76//,),1 42;<@:HCLIJNHNEHHSLPMWJbBg=_9N6H.N)M"--(&/4 2$7"9<7:DA"C"N%W%b)i)svn uu{%{''" %'/1/$""))%'%"""       }zqnvvzsnb]ilpxxsqvv}sxxqpkglpgdaSSP952/?>A5(!?DA52*&+&//7:H9+#5>054?>C>77A}C{7zDvCx?v0u9s4qCp?n9k?i5i>g<g5d7a/_2X-\#]%_#a(d&abffgg#igg n uvv nnpkinnsxxsx}vnqpssxusx{}}{}|{~~wovmjoy~vOD?;BI]hmgmlecVNG;)$$!&)      |xp}wrmmsYTMOJC>;@;6;CJWZUZZcfmiffc\dd\MP^RPOT\^_aca^h\fnu|}ur}}xrrxurinsum}}{zzxzx{nnklliknsvpnliigkidda]]\WUMNR_gf_b]\]]WZW)M$MK$D"D)N,U6N6K5F5H8M8K=CB?JALIBKGP?SDS@X=XBWEXGWNPNUSRYPYIQDVITM[HeFb?b<Y:Q9T2S0V2e0j/j0m5w2{0w/r+t0{/04504200*&(&%#~v hY^qrmqge{w|v{    ~wywvrq{~~|{{{|y|{ww{{tqomc]YVSQXSQJJND=;I?;313+'"$0.'"  xx}umhcc^WZUPUTKE;9%(   %9C>JUTY\Y^ahxrxz|~y|{wyvvrqljbe eb^][ [ Y SXY[YXY![!Y$V)Q)SN3Q6N?L?E3?5@+E'D$B$D';.8+8135580=,;,3+1)+..10155::=::=;B??DEGEGIGIILNJ}NrLnNhNdNWS2V(Y(Y]^]^] ^ elvvmtvoo{|{~~~vPQ[SAAKGKDB=57BKVULKLFFA75-(+)  &)(-$#       tworf!ea \a`V!V#Y&[#`%a(Y%V%R*M-Q-Y/^-T/R0R4^7c:k>k:f<aC^?Y:^5^2M9L7R9T:O<Q:C<BC;A9>;:89;9451<$<2'0./*0'0$/%-"0+(&!!# %%(*//+-5 479: :?IKI FD CC>:?ADD?C:9<>?CIKUSWWZZZWWUPMPNPNMKFC757542440/-**((%(&+**2/--+//459{9n>d<_9f9a5b/s-u/k+n-k0]0X/]+d+b&k%k&b%a&X&U(S%I&D%?%C#?#+ 0>0 %   %*       ##& #%&((+(*-/259v:w:{>wAwAtFwFjHvKvN|P|RUZ{a{finssvx} FMNzfskp}ia]]q\xUzSRPNMHHIMS\\WXX{Z]_bb_bdiknnidnvxvl{k}a}Z\UUlquxx{}'339BLC=>866;4*""GQ Yr  !!~|%/448=EGMQ[^aejkkrwz~~|ywrmkfjf`[\WRJV^`\f`YYLMG>B>;8;@@3'$$%3*14/*6,/$ $ zxWP& +CIPSbbgv{ xU?*!&+.5 2:397>7*:(8!:877522- .03.03388:<88<?A?BFGFFFIIFGGLQQIKIFFBB??Fjqosnq{qtn{jwlqoolgn`s]vSyYy`{]{V{OxN{E}I}B=630.1)!0$05:@50&""$  {}}xxyv,j;_=]DXEQDN:L8L0LLKIIKUSXXXVX]]n_h]^_WbU`ObEb,ed_]'X1[<VKQOKcAs=m<a=aARFKI>Q,Q%S U"Uggjvvlld_UQNKL LKIIKGFFBDDFGGIIGILQPSZX}ZxVqSSV(V XX[_`b__bb`u[w__[VZVXzbOo1{1{.4JJCG.~)}$x'y y{~~~  ~}{txyxyvvtoovvy{yyvvy{~}xsZH<<&(%(/FNazulb/  #',,12/129;@HJKKKOY^_^cc fnnkk m n#psx|!%(%/*-5H:7<HbPKdpu1TYp\Gw'id$a"U@JQ;=49">GG \ fwofRO@>*8M|  wf"ck#j""~%'',-267669;9;97996962/-*'""' ,- 2677<CCFEEEFHJMHEECCFFJOWYZ_kwzxunm)k2k5n-pu z|#=LUF7&IPSXSS20Sy#//<FJH|spif_YW|MaCRAJ<H769EKhMsTRFC<p6i4m4_*('(z*s(c(Y(\'\%T#^%m#pm__iuu  %(2212449>;2-4@FKPRRPOJA<9667<946;<EHC<!<)7&4)'!  &@QVLL3",13(Xbv {hjy{ ~|h,^1B6371<=@6A8A@EL@T7S6Y1`6^9YA]<v<9;94-*-122-/44<F`MORQW[Z[aycffkkhca Z?OFPMWIZPZWW{URH;2,/,_'K A(+9H%N*d,z*(('#" zpdZIF\ds}  "*-*(         3 88 =B=.,$$  "%1>C;B=HJOVLH>83%"399>GQQ\kkrwae^OVTahjry|~ &8##22(0V]jtn_]:5  ytx3-y)x$q(Ze#l&s.v-=F?DSlxyxPTTC}C67-{/y,vv qnlgd`_[Z[_]ZVVUQPIyISSUX]`eji j nll,g/b%_']"X UFGFB=727=ADDBBDLSS#Q*S,Q1V-V2Z;]7]C_E_Od\eYeOiTiMjMjTnPt_xaxkvnsne]XSKFB=<=BAp<_<\3P3;5,3"))--))(&)+&) -.-.;!r!}$## ZM9C_ hc / '   >*  ,F^ssP@99O^kkhnrfT@Rc}s\72>@4( (-Kkh_hfZK7*" ',1A9'%(CHZ^ccinssxzuz}}}s'1w 90405/5}DzIuDr/rsuxzxmuJkiknsw}phknzifppisځ 6RZ_daaix;mv{bY5JOD33z$w"pkfimnnrppzmpm>m-m(i'h*i1i;fHhUi^aZ^iYsO}K|JsCmA_>Z1F'@#1"2";'E#C EA 2"" %**-//-/2CKKMOTUZ\acddfiimnnr} ځ%wJohlkj\jke|`rXTxS|OkOxI@33}3s1},z'd'1),&',+,138858813::=::=?DsEsG}I{GvGsNyNqDjBeB]EXJXJ`L_LNJBSD`S]Z`[bZcgeexgxjjol{rqoqtt}qqtsvyv~wvrtwwy9с7::9755542+032=2L5B5:9=4[4b5^7e9m:m:^<Y<LA=DEAGCVFbHcHVIVKIHDC>722/-*&#!      {g]QGENSB) }|hfWRK<CC>KJ>MH4TTFA>H@<7"eSKKB.!)( .NZn %2 C#F&^0f4p5x479~ׁ/Ku}z   *YxWuJlRgBffbffklzpi]jjb1 =X|][qr{vmjjbXVLOr][LEB3' "b~ف(KbnqesuslkdkZnUnKkAk7i=kNiGiLg8b(dkpsx{}$) ؁  8=E9BJMHQRYYc`aOQajmopuecm~wtv~~{{~||{yyvvttrqoqoqqmlmmjhlmhghjhb```][]]XX]bb`^]XXSNNLJpLjNmNcSaQWLYL9J1L,O.X9X3O"J)IJNOV[]^`ccghljlmorqoooqqrrwwy{{|~ 8Q`YupgfZR+~~& 5>C_]buuklfWPdldI724?ZfD7## %#-#5_lu ' *   wvqeY?!   1JYgqrkhfdc"_ \.^8\;UWPTRaRjOoHoFjKMMMKEO'KFE$>H9H9M<R;c4T1[-Y,H-/1,24464/1%47>CKOOKORUWWUWY\{hxspuzwusussr|rxrwhsjrYpVp[p^n`mkkekmhudpdhfed`hadWfOf6d,h h,kpwwz|zkfk GR}^}`|f}k|rvsI<>DazF7 #Xvxtqol1dI[TPjL|FB=873(!b:   !! &!#+.)-+$ !#(($$(-00-+-.23:=??<78ADIKKQUUPQUZ`jqxx؁,@;BHfjky#     uz}xwun nic \ \d$h?kDkKhLfF_SYXUUU[JbHXES@=@)>:;?<G9I9B7F7K(N'I#)"=#PLGA37LNF 55<83 ) #  rpeWQL=4*/  "%*(*--24441279;<<}Au<d9d9Z;]>R>I<H@D>>E4H4F>J9H0O+O0UTZ\ahrw  -+29?>C:|CxN|N|WzPwXp]nfnlpinnknkbighnfdfdfhimkkkkimswz|||xx|}nlRUNXapxԁ 9LW[V9.1)4=B=EQrwwhyw|):S|t~tsi{v}s}qogeUF=B(-&))0DDPQFL:8$& $$(++5:INU[t/*9197@@HZ@>A\w~|{wvqlhb`^YYVQN}LKE;D#EEINQVVOLNLGGEEDEIJJQSQsOqLsLiJlJbGIBF?8?:;=;:8686.,))&""!!y`*s&W+K,M3a8}===?@BDIL L>JYNmQtQkSkS|TTXVXY]^bbcggb^~]t]h[j[^^WYJ[;X[`"bbcb^^`chg`YXVX[XTSQQS{Y^]^emvvwvqv{{qvnquekbdeXhSjFlDg:gFeN]ZSMJ#IJQV^YVYYXONIQVXVX]`^wXjYX[Q[J[=^"ej lq{5| 83J[&& ~ohh{~mjq| 50+IPipnflkzqz܁,?Nv~vqlJ;Lv{%(eJ6[[LN^{c{m{wgglo~+#%+|2{>y>wCwS{UFSWbx~{|yy{|{.wBt@r.q,rBvWtwz{r|\~Yp0803ALK`iv'>RAZ{|ywtrqolljhh]][YTSSOOLJIGIGLONLJDB??:?BE?@EB?:630,''""!!m"U!F !!',366;;yB`@[;`5t"eVB2!)+.',+a\\`"W&V$QO>$&&* ng$g.u5u56p;sBi=i:b=b;]+N+H6D;46:07003!0*,2$/!#" "$'$&+010,~.r3w5;@@;3j3b1]'j'X0T.O+S)O)=,0.6030"."01"8 DEG OSTVY[ Y[]]^blqqwrknmh_mh>2 v{qniXQA--&+<=IUbQFNLU`I=. + 0 :=..PQ]dgbZ  *1@ M kr|ku}ur7 75 97 FB sF L SL HP 9S 0V RV 4X b j o n l o 5q Mn q n g ] *U cQ N P X m] Vb Qe ;n jq s |v t v v q l e ` Qb Sl n s :v 8x x v q o l n o j j 1l Aj ae ai e i g e e g e e ` Z N mL MI 1G /I wI P P S ] O[ mV hU X y] ] _ ~b b ` _ ] Z U [ [ *X >U >Q 0P P #K -I KD AD aB k? _7 \3 ?7 b< n8 {< = < < 8 : : : 8 3 ( $       F&{yh]5X{E:'aPKMC6/ h'Tm6T"~zujfcccfjoyVjfya{YTT]TSQ2LLLRRVVTLHHHGGM[MiJvEvCg>`=-94884L.D.:*7)%  ",u,./Q/'114431*,*'E)W$WkoY;.$  snd bW<       >A\D7    CWsgf\_C|ovCH?{e0low+la0#%9]pSD% 4DHvA *?KxxuXvDzAz7v!sqnpsqxqvmuvqcn^khi{g{d_]ZWWPKFA?o:o7Q2:459?:;904$042/025u:\>T>@C9H#K#MNS WXRN I?9,9H5K4K0 42-%# %0T( &-* #!!"    $ 0'=B@O Q`bo v{ecYJJO81$ }ifWTaRrs^FH9* nql`{}{dLI:-( C>RR*J' {u{u}}lpgpniZf]inpbdZ_b\_XMRD970%! ><Wiqxi!!! ! !&&! !%&,&&( (((+/ //2579959:?DIKNSU]_afiifnlfBdRZkF|C>|CC?<:4245:<: <09D7e:b:g<LAAFiN\bdfnpssz{zpkfb\RnIQD:H8F2I HHKMSZ_XPWZ]_ddfgdfklnlkgnl nqnnknppqv}z} -}YMLO\oycaL6 )aI_l~{ ,*N8#8bnq`Z0-75$ "$"r)8.8.B49=C968=@8L'^4a\ar[[.YFG3'$   "/" pc^$E$('().#694B`hj;oopruy||^||~N  1+3+V`YrqbE=D6'   dwuuw|q_[ytN=GALyDu7turtuu~|u`wB|4yqE)f%aytc=A>9NCX_<wwmeGG'+D[qeo -    - 5 < : a              W u           a )  % # $ ( + + 0 3 p7 |8 7 3 3 . + - ++ G( `$ o q          & $   ^          n ^ i C ) 0 : : ,< B G K K G 1= h? N OU *X "Z -Z ZV P L I I L P K L TN Q U X Z [ ` b e i g e _ g =e Id V] S_ `Z y_ q] _ b ~d _ U S K B Z7 5'ہ;axxWA"1A^s|wx$$&,?@ehyuouuwt!o5h#h4a2^#\#T5JkJvOsJRvTVn\Zf]mzjROOLEHG@;9831//386 "/Lce[ e W^ k~ ~M9/," }gPUkN9%  wbD13}uZkUO-,Hp}!gN+eg      |imK2<WE4""  '%%),*'' %%q%i'g,d/P3Z1I3F4B8S8Z4Z6d6s9e;DB<EZELCAE:H0M5O<M]HxECE>BJQR@TVQLLQTVYVWTYe[Q[G`Qc<eDcPcUagcjeef{affmpvtuy}zz|zwwJuMu^zH~#| 4@>*% %*;AOAR9%'pɃpppppgpppEpppppppgppQprh ])E{hVB5a>TE'*,,et уY_ DI:O4r:[:+l$qJڃ4RpYrGhpN-55A(؃ (B(S({(((('(W(c(p(+(/+e4/e4B7:B7?:A?FAIFpMIMNpM SCSMNU SXU\X|_\Ya|_6dYa$g6dpσpppppipppOppp9ppppppplpppJppp$ppp pxppYppp:ppp у= u      [       C p $Ճ[/C16kAN7Jp{X!_J #Dvz僚JJ@ 8mw,`ay9SU7 A dv9dm {]frA2n-(uS%PuS%PPuPPP,PPPP?PPPMPh~σhQh X҃VO TQQG#J4I$IhJ҃I$O2S5S:O<VAXFOIOKNIGKELBK?K=L:X6]8`6g?{I~SV]]hoyrje]Vh уhhJ :Ӄ< h bԃbijqqy{y|yyxuswqrlpirgwgugrimiaeTiMgCg@e>g6g,i)g _]`b`[ZVUXZ]_`begjlq~~zxsqnfb_XPNKACAFHAFNRNPIIHK F MKP P%S*P-W/U;X<U;N9H9?;9<9@:C4@-@+F+F%KPTZZ_ dipuxz$bԃZ`hԃbhJ҃hhuh hvuӃhugՃhgՃi^tgՃgtsӃtttittt0t :Ӄ 9 < 9 : > ? > 5 7 4 452/0/4!AKUXZbkln$uvu 0Ӄ 4 C D C K I I D 5 2 5 4 4 / 2 / 9 > C C# D( D, H6 D; D> HC DK NT RZ ad lk gw Ww S} S N N K F ? ? : := gՃtg^׃$]`׃^^׃I]׃]^׃]]׃ !.0::ABQ&؃%^&؃t&B׃tj dփo \ U   H BB&؃u!t׃t(tttXt B׃BIB?  p n n r m )n ,u .w 1r 3p 9m ;i @a @^ B\ R^ WY aU oW |P O P T U W U O J F > < ; < E F E > > 7 6 7 < 9 > > ; 6 4 / , / 4 6 9 9 9 > C E $C (; +; 29 79 <@ ?@ D9 D6 L2 N2 X, ]* `, b1 d1 l7 q9 ~; > 9 ; 9 > > A @ C @ < < ; ; < > @ > A E C @ @ ; 9 ; 6 6 / - * ( ' ( ' % GڃFI GDD#8'8*72590A2H0T3U0\--)+)+#  !$SڃSK:)-AGGIUڃU^PڃPNLILAADIGKKNNLQSPGIFFKKDDSڃ   "%149;9{9x>yBvHvLyOxTy^qfqmgtez]~]_VZZPڃڃa+.056?@It ۃI K K MMPWZ_bdiksuvzB ۃt % ۃ  B % ۃ#    "  " ( * / 1 6 9 @ C C \ۃ d d f d d a a f d c d h h n p s s w s s x& s. w0 p7 n< hA kF fI dL aP dS ^X Yb Ze Yj Yt Ry K} H C C  b^܃[Y(Q-L3@38?$BQSZ_gl{;;@@E܃yqmlgbcjlh`]`]^I܃NONOJJTejlywmj.q/t/1189=>GOVht2܃/1/-*0MRX_dln{݃݃%q0݃r/r(v&w#|!|{v!t y~   (+4597009CFIUZaiqqjseNLGID@BEIL݃_]ZPKHA<7/(#  ݃{qpllv{p{l{g_F?:50{+v+r/o0h0c*`+`/]/]*Y(S+J&I#JONJ@B݃= ? B G IGD@=5330+)'܃                                         ܃                            | u r n h i m m i f d d ^ _ {\ {Z Y W Y |W wT yR R M K |J vE vJ lJ jA q9 m4 t2 q4 e1 e, g, m( o' j( e- b, ]" c b [ ` [ ^ ` c g g ^ ^ b g j m m e h m o m j j ` ` g b b܃ ] ^ e e g j j j e b l m h c c g o r q l r r o l j h h m v v t t | ~ v v v o l e c e m o r r m l c e l l} by `s Yn Ys To Qj Oi Xe N[ J] B[ @X BX IV JQ @L @F DD BD ?G =F ;A ;< @: @8 ?7 35 30 8) 5# ;! : 5 3                 QރQMHMe߃JFA94220+&(&#!  |yrpmfc\VMLLCBGG@9=44.,)%'  ߃  # yvoebXSGF A%=&5&(*27<AHCDID߃߃yrjge^[Y}VqTlS`OVLQB݃BITSOQQ.O/S4NONL&JLLPLLNLNE@835 3 .!          { v q o g b [ X U K B < 8 3 . + (      ܃  ރ    ރ  ݃  v p x ݃                  ރ # - . 7 I L Q [ ` o v                         H   ( %                             f}xwwsuppmimzhxcsZiPdEb@_7a4d1d-b,]%X#WSRMFC >957 5 2/05:>5+%  ߃   } y v q {   } x x k c Y T K C C < 6 / "                   % ' , * 4 2 4 4 9 @ A E E J H K O O M O M O U _ c f ߃               W Y W Y c h r p 9 QNLIMGGGa]Kigfe]cW^M^CT>Q9L9I5E4B5=&1-$!    urpkhifa\ZMF72,# PZZ_ fkli&i)s3u8v6{:z?x=u=qEpNqYs^v[x`z]}e{lrv{}xxxxzxuspqqnnif_]hhhfc[[WTRMLEB441/*'"mL"EL4;cpHmLkhhhhkkjkkh.,$jj^\#R#O)H0E787Yネ[V~[nV]`U[I\DV5Q2T)T#WVW RQTW Y [ ^`ea`cンcVNIB<732-&<IFNVU_䃖{j id [XSSNI:0-$fvsqf⃌lul?kf]\ZZWSPMICCA:95'$ &2<728 ~888 8888&8(8/8485848585828/8-8(~8(w8!o8m8c8`8a8f8j8m8z888888~8 y8 ~8 y8 k8a8V8B838$8 888 88777777777{7 l7 d7 \7 W7R7R7K7H7C7>77757972777!7#6%6+6-6D6P6W6Z6]6i6n6x6{666666666666|6h6B6B6I6X6w666666|6v6r6h6O6O6"B6@6;6?636$6665555$6, 636H6M6V6c6j6f6j6m66555555555~5t5M5J5G5B5B5H5G5B5B595=5956w56s5>p5Bw5H}5L5Q}5W5\5[5\5`5\5[5[5^5|55555555555555555555555555555 5 55552575:5B5D5I5L5L5F5=5<585)5#5555!5555 5555555555|5w5}5z5p5k5f5Y5T5J5A59515*5*5'5%5%5#555~5w5w5m5h 5f 5f5j5o5k 5a5W5V5V5[5[5`5a 5`5^4W4W4c4r4r4u4y4~44~4|4|44444444~4y4y4z4|444|4|444444444444444444444 4 4444 4 {4x4v4t4q4 x4 x4 t4o4l4i4e4e4g4#g4#b4$`4$]4+b4.b42`45Z48X48d43j48n4?q4Bl4Gl4Kj4S_4QV4NS4PN4LK4LF4SD4ZG4ZI4ZK4XL4ZN4dK4jB4i=4j<4n<4o34s34t24y.4x+4t+4s)4s$4x4t4o!4n!4o4n4q4n 4q4n3t3y3y3}333333333333333\3Q3H3@3;313333222222222{2p2F2A22{2s1n1l1g1g1b1b1`1_1`1]1]t1]o1`h1`^1bY1dO1eJ1dD1`=1`61V1S1L 1I1F0A0=08020+0(0#0!00x0u0n0i0a0_0W0T0T0P0K0E0>0<0;09010-0*0 0000000000////////////////////////y/g/b/_/U/Q/P/P/F/:/5/3/#////..................................|.r.r.k.c.|c.ye.ua.t`.r[.pY.oM.hC.a>.\B.[@.[;.W*.V).R,.O*.R".O.O.Q.V.V.Q.M .J .J.H.G.E.E.J.M-M-E-E-J-H-H-L-M-Q-O-Q-R-T-R-M-M-J-M-M-Q-R-R-M-L-O-R-Q-M-L-Q-Q-R{-Vv-W-Y-[-\z-^v-^u-Yu-Wq-^_-aP-hN-jI-oI-u?-|:-0---#----,,,,,,,,,,,,,,,,-----&-(-/-2-0---+---/-&(-8(-=&-B&-I--I0-G0-A+-:--32-34-54-A0-B2-A5-B7-F7-L2-X4-]2-`4-e0-i4-o7-{4-5-/-&----,,,, ,,,2,9,C,Y,d,z,,,,,,,,,,,,,,,,,!,$,),0,B,V,e{,tv,e,],D,@,?,3,3,:,=,?,=,?,?,@,D,B,D,E,G,I,I,G,I,J,N,O,T,X,V,X,[,Y,[,Y,[,],^,`,b,c,c,e,g,j,l,o,q,v,t,y,w,y,w,r,g,[,[,V,V,S,T,S,Q,O,O,L,L,N, T,V,X,^,b,l,l,o,l,l,h,j,l,r,y,{,y,|,~,,,,,,,,,,,,,,,,,,,,,,,,%v,-t,9g,Ce,Hg,P`,Rc,W],bT,pI,}I,G,L,J,O,O,T,V,],^,m,q,q,q,o,t,v,o,"h,1e,4j,8j,;m,Bo,Ht,Mt,Tw,j~,z,|,~,~,,~,|,w,W,Q,J,L,L,E,B,@,9,8,8,=,>,=,9,;,J,T,W,[,\,^,j,k,j,h,j,m,o,y,~,,,,,,,,,,,--- -----&-*-/-5-9-<->-D-_-a-f-l-q-{----------------------------. .....)...6.9.=.C.G.J.O.T.\.c.f.k.m.k.o.#r.$u..y.2.7.3.8.7.2.3...+.-.3.2.7.7.:.=.<.B/P&/S2/_G/q_/o/t/v/y/{/}/~////~//////////////////////////////(/F/O/R/U/W/^/a/d/d/a/c/i/h/d/f/n/r/r/u/w/w/s/x/w/u/w/u/x/z/}////000000000 0 0 0 00 0 0000|0}00|0}0z0w0s0u0s 0p 0h0d%0_'0^*0Z,0T*0K40A40<;09<07@01A0-E0'F0F0H0Y0 U0 H0*H04F0AH0KK0HO0JO0JR0TH0^H0_K0_P0\P0WP0TT0TU0ZU0WZ0O^0R_0^^0__0^d0da0pk0pf0i^0mZ0pY0xT0zO0E0E0H0H0M0K0H0F0A090>0<0H0M0J0A0A0C0C0M0P0M0T0P0M0H0F0J0H0M0J0O0P0W0\0\0Y0^0a0c0f0h0h0n0p0s0r0n0m0m0m0m0p0z0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000000 0000 0 0 00000000000000000'0'0&0"0!0"0!000000000000!0"0$0&0$0+0+0.0,0.00030505060;0?0@0G0E0G0I0L0O0T0T0O0Q0Q0L0J0S1V1V1Q1Q 1T 1V1`1c 1g1j 1o1q1q1l1l1j1g1g1e1]1[1T1Q1L1N1V1]!1[$1]&1['1X&1S&1N$1L'1L+1J,1J.1T.1T01S51V51X:1b61h=1q=1rD1{E1|D1?151315181:1;1=1?1?1:1:1E1D1I1L1G1J1L1L1I1~L1yJ1vN1rL1qL1tQ1rS1vX1wX1{T1V1X1]1`1e1l1m1o1o1h1c1e1h1j1|g1yj1{o1ro1qq1qr1vt1ww1y1{1{|1|~1111~1~1111111111111111111111111111111111111w1o1l1e1c1b1^1]1[1X1T1Q1N1O1N2I2G 2B2B2@2?2=2525 232. 2!22 2 111 12222111122 2 2 2 222222!2#222 2222"2'2&2!2#2%2"#2!*2!+2"-2.(2.+2)/2./26*28%2:&2;02;72::2;>2;C2:F25I25U21b2.g20k2)l2)p2)q2$u2s2u2q2s2u2v2x2z2{2,z2.}2323202)2'2'2,2.2)2!2!2!222222222222222222222222 2 2222"2&2,2.2.212525232,212626282:2;2@2@2;2;26282=2=2=2@2B2D2E2L2O2S2O2S2Q2S2X2V2Y2^2`2e2j2q2t2y2y2~2~222222222222222222222222222222222222222 2 2 22 2 22 2233 3 3 32333!3#3&3&3!333333"3%33$3 3%3*3+ 3+*3*,3*/30.37.3>*3?,3>63:83<=34E3:E3FL3AM39M32T30m34|37323032373:3537353-3(3(3*3-373>3?3C3?3?3>3>3?3C3I3N3U3W3Z3Z3]3a3k3k3n3n3u3u3q3p3u3v3x3x3z3{3}3333333}3z3z3333333333|3w3z33~33333333333333333333333333333333333333333}3}3333333333}3{3x3p3i4f 4i4g4f4d4b4d4f4d4a4a(4X&4Z)4_-4\04\24_74a74b?4fA4fF4dI4fN4bP4aN4_L4]G4\F4XG4SN4SS4XX4X[4S_4Ub4Ng4Me4Ki4Fi4Ae4>i4?j4Fl4Kn4Mq4Kv4Fy4D4A4H4N4P4N4M4H4D4A4?4<4<474242444542494>4F4K5N5M5M5I 5C5<49454/525455 57 59595<5:5<5D"5C"5>5957555254%52%5/ 5#5# 5 5"5!'565!<5%<5*@50A55@5565925:25D;5FA5NH5SW5SY5RY5NO5KM5IO5KT5FU5AY5:Y50a50i52i57d5:k5:n57r55u5-|5(z5(5%5#x5r5m5k5m5i5i5k5h5 d5c5Z5\5\5Y5U5T5T5O5O5P5R5U5U5\5a5^5\5Y5W5U5U5T5M5O5R5T5W5U5O5O5M5J5F5F5@5A5C5E5C5@5>5>5>56565952515/5-5-5,5*5'5#5#5"5 55555555555555555555#5%5%5"55 55555w5t5h5]4]4Y4S4J4E4D4?4=464&4444 5 555'54565;5>5J5T5Z5^5f5d5f5n5z5|5555555555555555555|5w6w 6s6s"6s)6n06m86i;6h@6iE6hI6fO6_Q6\V6Y]6O[6A`66j64q66y6%6%6666666"6#6*6*6/6/767J 7_7h7r7s 7|&7*7-7/70747<7:7<7?7D7A7H7M7P7 X7 \7W7W7U7W7U7"U7?I7NI7YH7gK7wN7~M7I7C7A7H7I7I7K7K7N7R7W7W7W7Z7X7]7Z7]7W7W7X7R7P7R7N7a7d7g7k7l7p7q7p7v7s7p7i7 g7l7x7{7u7d7\7X7\7Z7X7W7U7U7W7R7P7P7#U74Z75b79\7Hb7Nk7Nl7Hn7An7>p7Aq7Fq7Cx7F{7I}7K}7Kx7Ps7Ss7_u7dx7gx7l{7v{7777777777777777777777777777777{7u7n7]7X7R7R7S7S7M7P7N7H7<7<7:757*7*7(7&7&7!777888878888888888888888 8 8~8|"8r"8b*8X38V68X88V98X;8YE8]H8^J8`M8bO8gR8mT8mW8j[8j^8je8mj8qm8wp8wt8vu8rw8mz8c|8c8b8[~8V8S8O8Q8L8J8;86868383808'8'8)8'8$888 8 8 8888888888888888888888}8s8f8f8i8f8f8i9h9a9\8U8J9<97 94 9'9999 999 9 99 9 999#9$9(9)9)9&9$9#9$929=9K9U9{[9x`9ve9xj9q9}s9ts9ox9jy9l}9j9i9l9j9s9t9o9g9`9_9]9X9V9U9S9I9B9F9I9N9L9I9?9<9:9:9<9?9?9?9<9:97939.9)9(9&9!9!9#9&9(9+9-:) :$: : :::::::::: :%:(:*:':#::::::::::::: :#:(:2:6:7:7:4:6:;:A:H:J:F:H:E:K:O:P:P:T:P:T:P:P:T:Y:^:c:f:d:a:a:c:_:y_:uc:pc:Wm:Ti:Ln:Hm:Gr:Es:Bn:@m:Bx:8x:1s:;:@:9:.:':):1:C:G:J:V:Y:Y:Q:M:C:>:3:1:,:,:%:%:1:3:4:8:>:E:H:G:B:=:>:B:C:=:9:4:9:8:3:,:):):1:3:/:*:": : : : :::::::::::::::::::::;;;;;$;);3;6;:;?;D;G;L;L;O;T;u`;ng;_q;]w;Z{;W;S;S;P;I;A;<;5;/;+;(;%;#;;;; ;;;;;;;;;;;;;;;;;;;;;w;h;c;^;];];[;X;X;T;L;G;=;?;@;=;0;+;";;;$;;;;;<;;<<;;;;;;;n;d;_;E;9;/;;;;;;;;;;;;;;;;;;;;;;;;;;{;x;o;e;b;[;U;Q;P;N;G;B~;=t;8r;P::M:>@:<6:?/:<(:> :<:::<::99929494979792909-9+9-9092909+9 9q9g9_9[9[9]9V9U9L9K9G9F9<98929.9)9999!9&9.9295979293979792929-9)9&9&9999999 999888888888888888888888 8888888888€xsrwxxuu}}zxzCD D DDDDDCCDDDD D DDDDDD DDCCCCCC D DD D D D D D D DDDDDDDD D DDD DDDCCCCCCCCCCCCCCCCCCCCCCCDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CCCC C C}CxCtCvCsCqCvC!tC,yC+C.xC,oC)iC&iC'oC&nC&lC$lC"iC"gC!eC&eC$bCSCBC=CB9B-B4B6B9B1B,B(B/B1B/B/B,B*B(B*B'B"BBB#B'B'B|B#B#BBzBuBrBpBuBuBoBjB \BYB\BfBaBWBTBRBYBYBTBQBMBEB>B4B8B6B4B3B.B)BB BBBBB BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA{AvA{AA{AvAsAxAxuA{qAuAqAkA{iAlnAlkAokAsgAxiA}fAy\Av\AvWAqPAoPAi_AnNAlKAiKAeNAbWAbPA_NAbNAiHAbCAZNAZIA_DA`AA]AB>ADAAGAAKA2A$BCBJBOBEBJBRBYBYBmBrBBB BBBBBBBBBBBBB#B#B$B(B+B-B-B0B3B2B3B7B:B?BDBGBGBIB[BoBvBxB{B}BBB~B}BxBsBtBBBBBBBBBBBBBBBBBBBBBBBBBBBBCBBBBBCCCCC!C$C+CDC8C+CCC CCBBBBBBBBBBBBBBBBBB B"B1B/B%B#BB"C%B'B"CCBBBC CCC)CACKCXCVC[C`CdCgCnCqC`CZCZCvC{CyC}CCCCCCCCCCCCCCCCCCCCCCCCCCC}CvCtCtCyCCyC{C~C yCnC[CIC DEDKDODKDMDTDUDRD RD!OD!KDHD!FD%HD%MD+RD/OD+KD(JD(FD+FD7FDWD?YDCYDAUD>TD?MDNHDa@Dd@DfEDkHDpKDlEDg@Dp;D/D1D;D9D{>Du@DsADuCDzAD{HD}@DCDFDFDJDODUDWDMDJDFDFDKDED;D6D6D2D,D*D DDD D D DDDDDDDDDDDD D D"D"D#D%D'D(D'D'D%D#D%D'D#D'D#DDDDDDDD#D,D*D"D"DDDDDDDD"D"D%D%D D DDDDDDDDDDDD D D DDDDDD DDDCCCCCCCCCCCCCDD DD D D DDCCCCC CC$C)C*C%C)C,C)C,C/C.C4C3C6C4C3C4C8C4C1C/C1C/C.C,C.C.C*C)C'CC.C1C1C6C3C/C3C6C8C6C8C>CBCBCECOCVCcChC~CyCxCsCvCtCvCyCCCCCCCCCCCCCCCCCCC~CCwCwC~CCCrCkCfCeCjCfC\CWCRCRCRCVCVCaCcCeCfChCfCcCeCaC^CYCVCVCRCVCWC[CYCYCVCWCVCRCRCOCMCJCJCMCOCRCTCRCQCMCHCGCHDCDBD@DEDCDECCC@C>C=C=D8D4D/D/D3 D1 D4 D3D3D6D6 D8D9 D8D9D9D=D@D6D3D3 D1D/"D. D/D1D3D) D)'D"*D"'D 'D*D2D1D'D*D,D,D/D /D ,D /D 2D2D4D/D/D,D,D(D(D%D"DD D DDDD D(D-D(D*D1D6D7D6D7D9D9DCDJDJDHDHDPDMDEDCDFDFDCD@DAD@DAD@D@D@DFDODED@DEDJDFDADAD@D>D6D6D9DD>DEDJDMDRDPDODPDUDYDYD^D\D^DdDdDfDmDpDsDxD|D}|DvDuDvDzDzDvDsDsDsDuD}DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD}DxD{DvDuDsDqDbD_D]D_D]D\DXDNDPDRDRDXDWDUDRDRDMDMDIDHDFDIDIDDDDDMDMDFDCDAD?D5E+0E*1E(+E&1E&5E*3E(8E(=E&@E*BE*NE+SE4`E:bEE>E9E4E-E&EEEE EEEEEEEEEEEEEEEEE|E|EEEEE{EyEvE{EyEvEqEcEOENE)E'EEEEEEEEt9m9h9b9^9^9]9T9Q9O9Q9O9L9N9L9G9E9E9D9B9B9E9G9J9O9S9X9X9X9`9e9g9j9q9v9v9w9t9#8-8289878;8>8E8F8K8W8W8Z8Z8\8_8c8h8i8r88}8|8w8r8i8f8h8m8m8r8s8s8x8x8u8x88888888888888888888|8|8888888888888 88888888 8 8 88 88888999-9?9?9B9F9D9G9I9P9Q9X9X9Z9_9b9b9g9i9n9s9v9x9y9x9v9l9l9g9g9b9[9X9e9n9}9999999 9 9 99999999 9 9 999999999999999999999999}9}999999999999z9w9r9m9f9c9c9c9a9\9T9O9K9A9A9E9F9E9E9A9;969,9,9*9'9"9#9*9%9 9"9'9,9-96999;9<99979294999>9@9A9@9C9C9E9C9@9>9;9996929499999994979;9>9@9H9J9H9E9<9;949/9,9'999y9v9o9t9t9 o9 j9 j9 l9i9b9b9e9]9[9V9P9F9B9A9<929-9&9$9!99999 9 99999 999999999999 99%9%8888888%8>8E8{J8oM8gL8`M8XH8VE8SB8O98N68S18[38e.8l/8w/8|4888>855555555 5 5 5555555 5 55555555555555555555w5s5r5f5c5Y5T5W5W5 k5x555577%7*7/707474777?7S7g7g7n7x7777777777777777778888 8$8%8,81818;8>8B8O8Q8O8M8M8R8T8V8}V8}Y8\8t8|w8uw8py8n|8n8m8f8d8a8^8^8Z8Z8W8T8T8O8K8H8J8H8E8>86868*8#8888 88888888888899999!9$9)9.97989?9I9V9X9Z9`9d9i9q9t9v999999999999999y9s9n9l9j9j9e9`9_9]9_9]9_9]9`{9`t9_q9]i9Ug9Gg9?o9Bs9=q9:>:;:=:9:8:4:3:1:/:.:)|:": ::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::n:i:i:h:f:f:c:a:a:^:\:Y:U:>:4:1:'::::: : :: :: : ::::999 9 9 999999 9 9 99999999999999$9/9@9B9C9G9J9H9G9E9H}9J{9L{9Qx9Qt9Ov9Lv9Jt9Mq9Tl9^j9ag9`d9`b9cd9eb9j`9kb9o`9od9ti9wj9yi9wg9tg9rd9p`9wU9yG9|B9A9A9?9?9B9D9B9A9=9<9<939.9)9#9#99!9999999999888888888888888888888888888888888 88888 88z8w8u8t8t8 t8r8u8t8o8j8h8k8o8t8p8j8h8e8e8`8^8a8a8^8[8W8[8W8[8[8V8R8L8B888.8)8$888 8'8 '8/818;8;8986838.8/848686818'8$8888 8888 888887777777777777777777777777777788z8y7z7y7t7t7j7[7[7a7e7h7k7h7jv7fn7ha7eR7fN7fH7kA7m:7m27f*7e%7e 7o7;;;;;;;; <} <{<x<v<v<u<v<s;u;v;x;x;};z;{;{;};;;;;;;;;;;;;;[:V:Q:R:T:Q:O:J:G:C:B:@:=:;:8:9:8:4:6:9:;:;:9:9:;:;:=:>:;:=:>:C:E:H:L:J:M:Q:V:Y:[:[:~;;~;;~;y;w;w;u;r;r;o;j;m;k;j;f;h;f;e;k;k;h;f;h;j;m;o;u;y;y;z;y;~;~;ar;_v;Yy;Ww;Yt;Zr;Yq;Rq;Pr;Pw;Oy;O|;O;F;C;<;2;,; ;;w; q;e;b;^; ];];e;g;m;o;l;j;e;];T;O;I;G;B;=;:;6;+;);+;0;0;';$;$;;;;; ;;::::::::::::::::::::::::::::}:z:s:m:m:k:d:U:P:M:E:E:A:9:9:<:<:;:7:9:9:7:6:2:(:':%:(:":::::: : :::99999:: :::::%:%:(:,:1:6:F:J:J:Y:\:_:a:c:f:h:m:w:x:w:x:x:}:}::::::::::::::::: : : :::::::::::::::::::::::::::::; ;;;!;,;1;3;6;:;=;@;B;#?;2?;7:;>;;A:;E8;H3;K3;P0;T0;Y.;\0;^1;\6;\D;ZD;\J;YQ;PT;O];O`;Uc;Wc;Z`;\`;Zg;\j;Zm;\o;ao;ar;:::::;;;;;;;;!;&;.;1;8;?;E;G;J;J;N;Q;V;X;[;];e;e;l;t;;;;;;;;;;;|;z;z;};};s;r;p;p;k;_;\;Y;U;M;J;C;@;<;9;4;1;,;(;#; ; ;; ;#;%;';*;,;-;6;7;C;E;K;W;Z;^;f;k;};;;;;;|;y;o;[;E;:;+;';;;; ;;::::::::::::::::::: :: ::::::: : : ::::::::::::::::::: :n0A0A0F0H 0N0U/X/]/b/b/f/g/f/g/k/n/q/p/q/u/q/q/s/u/s/g/f/]/]/\/U/N/I/H/K/?/+/*/%/+/4/7/>/D/I/K/N/P/N/N/R/R/_/d/b/d/d/g/i/l/n/q/s/s/p/n/l/it/do/\q/Zo/Zq/Xq/Un/Wj/Ui/P`/SS/RL/SG/\I/_I/bD/aA/X8/\8/a=/f:/l0C0E0H0F0F0J0J0M0R0Z0\0Z0Z0^0a0c0d0u0u0s0p0r0p0s0w0u0w0w0u0p0h0d0a0_0\0U0T0W0U0T0R0M0O0H0H0F0A0>07010-0*0#0 000000"0#0#0%0'0'0*0(0'0"0"0%0'0(0(0#0#0'0H/H /F/H/D/D(/C+/HP/<Q/9P/>Q/?X/4e/-j/*o/!o/!x/ {/{/t/ v/t/t/t/x/{/x/t/o/o/o/n/o/l/j/l/g/`/]/[/V/P/N/N/P/Q/Q/P/N/L/B/ />/:/:/:/?.D/H/0000000000000000000000000000000000111 1 1111111111101101111111| 1y1y 1v 1t1o1j1e 1` 1^1`1c1`1[1Q"1O!1O1S1T1X1Y1X1Y1[ 1Y 1T 1Y1T0X0V0X0Y0[0X0V0T0X0b0g0h0h0l0o0v0y0{0~0{0{0~000000000000000000000000000000000000000000{0r0y0v0m0j0l0q0w0v0w0v0v0r0j0e0e0b0e0]0O0I0?03000.0)0"00000 000000 0 000000000000 0000$0+080?0E0L0L0I0D0?0?0B0B0E0D0J0N0O0S0Y0b0e0g0j0l0o0q0r0t0v0~00001111111"1,1.11131515101.131816181?1B1L1N1J1J1N1O1X1s[1mX1kS1iQ1iO1hO1dS1dL1aE1\B1TI1TO1WN1WS1T[1U]1R`1O`1M]1J]1J^1E]1CY1@[1<`14Y12]14b17e14g1,e1*g1(e1#c1 c1e1^1^1`1 c1 e1j1r1q1r1v1t1q1r1q1v1r1o1m1h1g1g1[1Y1X1V1X1[1Y1V1T1O1L1J1J1I1J1Q1O1N1N1L1sL1tJ1}I1~E1E1B1@1B1@1816161,1.1)1)1&1$111111 1 11100000011 111{1v1o1b1Q1=1.0-0-030<0=0A0B0F0G0L0P0V0_0b0b0b0b0L0I0K0K0Q0Q0V0V0Z0`0l0o0t0y|0x0w0s0s0u0u0u0s0s0s0p0m0m0m0s00000000z0u0n0k0Z0W0 W0P0K0F0 90 90>0>090404010/020407090907020-0(0(0#0000000000000000/0////////// / /////////////////////////////////////%/'/'/'/(/*/1/,/,/,//0609 0; 0>0A 0H 0P0T0U 0T#0U,0Y/0^/0_60a70f40h40h;0d;0f@0a>0^@0^E0ZF0aJ0cH0cJ0cK0aK0_O0_T0\U0\Y0YY0U\0R\0O_0Ka01d0'Z0#P0O0P0 W0*c0,h01m02u02040;0@0E0F0U0^0^0Z0Y0T0T0M0K0P0P0R0W0\0c0f0i0m0p000000|0r0u0w0}000000011 1 11111001//////////////////////////000000000000000000000u0f0c0d0c0^0\0\0^0d0h0i0u0x0|0|000000000000bw0Ys0Tp0Qr0Qu0Iw0Eu0@w03r0$u0!s0u0u0p0r0 n0 n0 m0f0c0Z0Y0T0R0O0K0K0H0C0<0/0,0,01060402020606070@0A0H0H0T0T0$W0'Y00^01a0Ji0Nh0Qi0Vk0Tm0[k0^m0cp0gr0gw0ex0bw0@A0;C0;F06E0.@0<020 /0-0*0*0"0 0000000000 0 0#0-0*0"000000 0000//////////////////////// ///0&00 06 0;0@ 0D 0D0J 0L#0G-0G40D40E70E;0D>0E@0@A0/////////~////////////0{/w0w0{0| 00000~0|0{0{0w0r0o0m0l0c0`0^0]0[0]0]0T0S 0Q 0O0S0N0O0N/N/J/G/?/8/6/3/0/0/./,/+/'/"/"//////!/+/0/3/5/D/O/^/e/j/o/{/|////////////...............///////...........................v.m.l.m.j.^.Y.V.S.T.N.L.L.?.:.;.0.+.+.,.).).&...... . . . ......|.u.r.j.f.f.c.c.f.f.a.a.^.^.^.`.e.e.a.a.^.[.Y.O.O.J.C.;.6.1.%.$.". .x.r .n .m.d-d-a-c-_-Y-U-R-T-P-R-P-J-E-A-A-F-K-R-Z-\-\-a-c-f-f-i-m-|-----... ......%.%.*...4.9.;.B.G.J.M.V.V.Y.[.Y.^.`.e.f.e.h.k.j.j.m.p.u.w.w.~. . . z. y.|..............!.'.1.5.3.5.:.=.B.B.G.G.D.E.D.E.B.@.?.?.=.:.:.8.6.5.5.1.1.8.;.?.?.B.E.E.J.N.L.S.V.Q.Q.Y.Y.^.^.c.j.m.m.v.t.wg6wc6zc6z`6[6]6`6b6e6l6r6w6|666666|6{6~6{6{6w6v6t6r6|q6wj6we6;;;;;;;&;(;*;+;0;<;F;H;N;P;R;Z;Z;W;H;C;A;<;/;;;;W%3Z"3b3i 3s2z2}22222223333 3 3 3333333"3'3*313336393=3>3B3B3B3G3L3J3O3Q3T3V3W3W3[3[3\3a3e3c3^3\3{[3u[3vT3uR3gH3gE3dB3_63S*3U'3W%3_3]2_2b2d2]2_2b2g2n2n2k2n2n2p2q22222222}2{2x2n2l2f 3a3_3ju5lk5lf5hc5h_5j^5rH5o@5q@5wH5{J5F5H5O5P5U5Z5_5\5\5Z5Z5c5f5h5h5d5h5f5h5r5r5s5p5u5z5|5x5u5n5k5h5h5h5k5n5~k5~i5{f5th5qk5tn5vm5wn5qu5qw5v|5v5q}5h}5jz5gw5ju5l =j%=g*=g1=b6=_6=[;=SJ=QR=NV=NY=F`=8c=2f=3j=2j=.m=0p=)r=(t=&y=#z=&z=&|=#=&=$=!=====~=t=#t=r=!o=o=!m=#c=!^=&^=)[=(V=+V=.M=2H=N4=U)=_=d=g=l ======================================y=w=u=r=o=m=k=j=k=p=t=t=u=z===== = = =>>>>>>>>#>$>)>0>0>3>5>8>:>?>F>F>G>N>S>e>q>n>i>g>j>n>s>s>v>v>n>j>i>g>d>b>Z>U>G>=><>8>8>3>.>(>$>$>>>>> > >>>>>======== = ===cb>`j>Ws>Rx>Qy>Q>R>Q>R>Q>R>Q>M>L>G>E>@>6>6>3>1>/>*>'>"> >>$>">%>*>*>,~>,x>.t>,o>1j>4d>;b>;_>@_>C]>GX>HX>JZ>QX>TZ>WX>\X>cb>>>>>>>>>>>>>>>>>>>>>>~>|>y>t>r>p>m>m>j>h?f>c>^>`>Y?M?L ?E ?= ?B?Q>T>Y>\>\>^>a>c>f>j>j>p>u>>>>>>>>>>>>>>>>>>>>>???'?(?-?4?7??;?9?7?6?1?/?*?*?'?%?"?"????????????? ?????t@q@o@l@e@b@Y@J@ I@B@0@.@.@1@.@.@)@!@@!@(@(@$@$@!@#@@@@@@@@@@@@@ !@ !@@ @@@!@'@+@+@,@3@8@8@5@?@B@D@I@I@L@N@N@Q@S@O@T@S@V@V@X@X@Y@[@`@^@`@`@b@c@c@e@g@l@o@m@r@r@v@t@y@w@y@{@~@@@@@@@@@@@@@@@@@@@@@~@z@|@|@z@w@w@u@u@r@o@o@k@k@o@m@p@r@p@m@k@h@e@e@c@`@a@^@`@^@[@Y@W@W@Y@Y@W@T@Q@T@V@VATAQAQAOAOAHAHALALAO AQ AOAMAJALAGAHAE AE%AC!AB!A@&AB(AB+AE*AJ+AH-AG+AE-AE/AG/AC2AB0AC4AB4A@0A@4AC9AE9AG:AGAL>AO>AO?AQ?AV9AW5AY7A^7Ae-Af%Ah%Aj!AjAm AoAmAoArAtA| A~AAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{@t@AA A'A%A'A%A#A"AAAAAAAAAAAA AA AA A A A A A A AAAAA$%A.%A5!A6!A6 A;A?A@AJAEA6 A. A'A"A!AAA AAA%A%A*A+A-A0A0A4A>ADAKASASAPAMAMANANA MA IA KAKAIAHAFADACA!AA!?A$CA'AA+DA,808-8+8-80858<8?~8?8?8C8F8K8S8U8S8fāfruwunkhfŁ #'(('"!.'0'3' ,')'"'$'#"'&'#)'!0'--------------.. ...'...9.;.>.O.O.T.T.V.Y.Y.R.T.M.J.H.G.H.H.C.B.=.4.,.*.%.%.)...1.4.6.8.;.B.H.J.R.^.t.... ....!...y.y.u.u.!t.&k.$j.(h.+`.3W.2T.-T.(Q.3Q.7T.8R.:O.?G.F=.B9.G1.D).B'.?).='.8%.<".:.<.8.=.?.D.F.D.F .K$.P .U.X.[._._.S .S.P.N.P-N-N-K-N-Q-V-Z-Z-]-_-`-j-n-q-q-y-{-~-----------------------------------------------------}q-vp-vl-sg-sk-tl-sl-ol-qi-of-e_-dZ-bX-b]-_]-X\-PU-GU-?H-5F--A-)>-(7-)---*-((-)&--&-0*-2*-3(--%-------!- (-%-#--- ----,,,,,,,,,,,,y,m,wO,mL,cB,`B,R6,M3,H+,G,,C,,=&,6,)+"++ +++++++++++|+u+u+r+p+n+s+s+p+m+z+}+}+++}+u+s+s+w+p+m+h+h+i+f+h+k+n+r+w+s+p+n+i+f+_+^+\+^+c+m+s+x+|+}++}+z+u+k+c+Y+J+E+E+C+;+A+A+2+-+,+'+,+%+ ++++++++++ +*********,,,,,,,,,,,,,,,,,,,,,,,,-3%-8%0<%2A%5G%5I%0N%3X%0_%-i%&t%!v%%%% % % % % % %%%%% %%%  & & &(&2&7&>&@&E&F&J&H&J&M&O&P&U&Y&Z&^&_&d&d&c&c&Z&Z&c&f&n&p&w&z&&&&z&t&k&f&c&T&R&O&E&>&6&3&,'.','%'' ' ''''' ' ''''''' ' '!'&' &' )'+'.':'@'L'O'S'b'g'j'm'o'o'l'j'b'`'`'c'm'{'y'{'''''''''''''}'x'n'f'a'Z'N(I(K(I&(I0(F5(4D(/D(-D(#((( (((( ((((!(((0(!>(&C(*N(0R(2X(5_(2i(*s(%x( x(!{(((((({(v(u(v(v(s(l(l(f(W(a(l(n(l(f(](b(n(u(x(p(f(d(a(b(f(d(a(b(](b(k(k(g(l(p(s(v(}(((((((((((((((y(m(c(O(L(I(E(?(?(@(G(?(:(6(6(:(:(5(3(8(8(1(+($(((((((((((((((((((((()))))');)9)B) C)@)B)H)R)R)V)W)^)f)k)m)m)p)o)f)^)V)V)a)c)kY)WV)OV)JY)HY)A^)7^)2\)-^),\) [)\)`)[)[)W)W)V)W)T)R)M)L)@)>)>);)9)8)4)/) ))))))))))))))) ) ))((((((((((((((((((((((((((((((( ( ((((}(}(z(s(l(f( b( a( ](%Z(-S(9A(@2(E0(K*(W(p's'x'|'}''''''''''''~'j''c'1h'?g'^Q'jO'jL'oI'rJ'tI'vJ'|I'~B'?':':';';':':'5'6'5':':'8'6'6'5'1'0''''''&&&&&&&&&&&&&&&& &#&*&4&4&:&?&?&M&U&Z&n&&&&&&&&&&&&&&&&&&&&&|&r&k&i&c&_&T&C&@&;&7&6&4&/&%& %&#& & & &"&$&) &3&>&B%E%`%h%p%w%w%w%y%%%%%%%%{%q%b%]%X%U%U%Q%N%F%F%?%?%<%:%8%:%:% 5%3%0%3%3%5%!3%#5%$2%)0%.2%-3%-8%0<%2A%5G%5I%0N%3X%0_%-i%&t%!v%%%% % % % % % %%%%% %%%  & & &(&2&7&>&@&E&F&J&H&J&M&O&P&U&Y&Z&^&_&d&d&c&c&Z&Z&c&f&n&p&w&z&&&&z&t&k&f&c&T&R&O&E&>&6&3&,'.','%'' ' ''''' ' ''''''' ' '!'&' &' )'+'.':'@'L'O'S'b'g'j'm'o'o'l'j'b'`'`'c'm'{'y'{'''''''''''''}'x'n'f'a'Z'N(I(K(I&(I0(F5(4D(/D(-D(#((( (((( ((((!(((0(!>(&C(*N(0R(2X(5_(2i(*s(%x( x(!{(((((({(v(u(v(v(s(l(l(f(W(a(l(n(l(f(](b(n(u(x(p(f(d(a(b(f(d(a(b(](b(k(k(g(l(p(s(v(}(((((((((((((((y(m(c(O(L(I(E(?(?(@(G(?(:(6(6(:(:(5(3(8(8(1(+($(((((((((((((((((((((()))))');)9)B) C)@)B)H)R)R)V)W)^)f)k)m)m)p)o)f)^)V)V)a)c)kY)WV)OV)JY)HY)A^)7^)2\)-^),\) [)\)`)[)[)W)W)V)W)T)R)M)L)@)>)>);)9)8)4)/) ))))))))))))))) ) ))((((((((((((((((((((((((((((((( ( ((((}(}(z(s(l(f( b( a( ](%Z(-S(9A(@2(E0(K*(W(p's'x'|'}''''''''''''~'j''c'1h'?g'^Q'jO'jL'oI'rJ'tI'vJ'|I'~B'?':':';';':':'5'6'5':':'8'6'6'5'1'0''''''&&&&&&&&&&&&&&&& &#&*&4&4&:&?&?&M&U&Z&n&&&&&&&&&&&&&&&&&&&&&|&r&k&i&c&_&T&C&@&;&7&6&4&/&%& %&#& & & &"&$&) &3&>&B%E%`%h%p%w%w%w%y%%%%%%%%{%q%b%]%X%U%U%Q%N%F%F%?%?%<%:%8%:%:% 5%3%0%3%3%5%!3%#5%$2%)0%.2%-3%%%%%%%%%%%%%}%y%v%t%t% s% j%j%e%e%b%b%d%j% i%%l%$n%$t% x% s%t%{%%%%% % % % % %%%%%%%%%%%%O&L&O&V&X&]&^&b&h&~&&&&&&&&&&&&&&&&&&&&&&w&r&o&q&o&h&e&b&b&^&Y&V&S&^&]&[&O&N&O&]@&X>&R>&N<&?<&76&:2&9/&9-&:-&9,&:(&<(&?(&C%&H%&R"&X&Z&]&]&_&] &d &u&{%%%%%%%%%%%%&&& &&&&&& &v(&s/&s2&k7&i<&g@&aA&]@&l\)j`)ga)ef)bk)`m)]k)Xk)Qp)Nr)Lu)Gu)Dz)8y)+z)) )))))))))))))))))))))))))))w)r)f)e)`)^)^)a)a) `) Y)V)W)!T)'T))R)+O),@)1=).4)+1)+$)+ )1)1)6)=)@)D )L,)Q,)V%)X')[')]*)`,)`/)c3)c;)g>)g@)`B)]E)YJ)TE)OH)NL)OO)LR)NV)TO)XO)[O)]M)gJ)gW)j[)j^)****&*)*0*3*5*:*A*B*D*G*K*N*L*D*F*B*D*8*7*8*3*.*-*-*(*$*&*#**!** * * * *** ****** * ** * * * ***f(b(\(Z(S(R(U(X(\(\(](_(a(b(d(f(i(i(f(f(d(d(g(l(q(u(u(x(u(u(x(z({(z(v(q(n(f(q(i(k(i(d(b(b(d(d(g(l(l(q(q(v(q(s(v(v(u(q(WM(SK(SH(WA(Z9(a2(b+(g&(g (d(f(l(s (u#(u((q0(l9(fA(XM(UM(PA(HA(F>(F<(M5(P/(P(M(P(X(\(_ (l(p(q (q (l(i(f(d(f (d&(]0(S?(NA(z(n(a(_(\'\'f'i'n'x'''''''}(x( ( ( (('''''''''(( (''''''''''''''''''''****************z*z******z*u*p*d*_*X*W*W*R*K*F*C*>*2***#* **** ****************************************************************{*v*m*j*[*S*N*L*J*I*E*=+1+'+!++ ++++ +++++ ++++(+-+2+4+9+6+;+@+F+P+T+Y+Y+F+C+K+R+W+c+n+}++++++++++++++++++++++++++, ,&,&,!,,",&,&,',,,1,8,;,B,G,D,I,O,Q,T,b,e,c,b,g,w,,,,,,,,,,,,,,,,,,,,,,,},n,c,_,^,_,k,x-#-/-5-?-M-P-P-Z-\-_-a-a-_-]-\-b-b-a-a-k-i-b-a-Z-\-\-]-]-_-a-d-f-i-k-s-u-u-x-s-q-n-n-p-p-n-s-x-z------"-&-"-&-'-'-"z-)v-)q-'l-.s-0{-3}-@-Gz-N}-Ox-Nu-Nq-Jk-Lg-Nf-Ok-Vq-^-c-g-l-r-w-~------------------------------------------------------------------ - ----!-(-+-0-9->-?-F-I-R.R .S.S.N.N.P.U.Z.b.l.p.n.k.a.\.X).U9.R;.P>.SC.SJ.PO.U[.Pe.Ph.Wo.Zw.b~.d|.g|.i|.kt.io.im.sh.ue.vf.xf.Y.T.M.H.E.C.@.B.%.... . . . . . ..--..........".".......----- -"-$-)-,-*-1-4-6-6-9-=->-B-B-E-G-C-C-J-M-O-Q-W-Y-W-[-\-a-h-j-j-h-k-m-k-k-h-m-r-w-z-y-o-k-k-p.r.t.y-z-y.z.------------------**+++<+@+K+^+d+f+h+k+m+w+z+|+}++++++++++++++++++++++++++++++++++,, ,,,,,,!,',6,;,G,L,Q,T,T,Y,c,g,l,l,o,t,v,v,{,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,w,r,l,h,V,N,B,@,=,6,.,),",, , , ,,!,(,-,0 ,. ,+,+,0+0+0,3,<+=+?,A,?+A+F+L+Q+Q+L+L+P+Q+P+L+N+Q+Z+Z+V+Z+]+g+i+i+b+`+bp+bn+bk+ld+yc+}^+}W+~T+}F+{A+v>+v;+s<+q;+e9+S1+I(+F+G+I+N +Q +N+K*L*Q*S*U*X*Q*P*S*Z*X*S*S*S*X*X*V~*Vx*Zs*Zo*]l*ei*vg*Z*P*F*B*B*=*7*.*$****** **))))))))))))))))))))))|)y)t)r)p)k)h)e)\)W)~V)yT)vQ)tL)vH){G)yC)vC)jC)_8)V4)V3)V1)],)b,)e))d%)`$)[)[)S)S )V")V*)Q.)S1)Q4)Q;)UJ)QR)SY)S[)U`)Uh)So)Ly)I)G)D)D)G)F)D)=)5)2)2)-)&))!))))))))) * ****#*)*.*A*]*b*b*e*l*q*s*t*t*v*{******************N,P+,N8,PQ,NV,Pl,Pv,Q,N,L,K,I,F,D,B,?,?{,.C.C.@.@.;.9.6.4.3.'.$."....... ...---z-w-w-y-z-z-y-r-p-u-w-z-z-~---------------------Q.R.V.V.W.V.W.V.Y.Y.W.V.V.`.O.L.M.J.;.;/8/=/;/6/4/1/)/"#/-/2/3/3/ -/(//////.... . ....... .".%.,.,././.1./.,./.1.1.6.;~.>|.Cu.Lz.Q..// ///////!/+/0<09040-0(0#0"0,0/0<0<0;0106000000000000000000000000000000000M0Q0R0W0^0e 1j1h1j1m!1m&1o)1o31~G1~T1g1l1m1r1w1{111111111111111111~1q1m1j1b1[1O1I1@1:111)1111 11000000|0z0w0u0p0k0j0j0h0f0a0^0Yn0Lc0HZ0CY0=O0;O03O0,K0'O0"M0F0F0H0K0R0W0Y0W0 O0H0E0A0@0<0>0;0C0J0M0R0W0^0_0i0s0u0x0|00000"0)030;0E0M051@1J1Q1Y1^1b1e1h1 v1 w1w1~111111|1v1l1g1`1T1J1D11101"1!1&1&1,1+10131518m37o33m33p37r33t30w3-r3.o3+k3&k3p3o3o3r3p3p3o3o3k3h3e3^3\3[3[3T3Q3R3O3M3Q3L3J3J3H3G3E39363834383;393=3;3838393@3E3@3>3>3@3C3L3M3M3O3Q3T3R3!T3#Y3&Y3-\3.c32`35a37e38f37h38m3........................ ...'.*.7.R.Y.^.f.h.k.r.r.m.r.............~.|.|.y.u.t.p.m.k.m.k.k.e.f.j.m.m.p.p.o.e.e.f.j.o.t.~.. .....!.$...6.:.=.;.?.I.L.X.b.l.t.y.................................. .......#.(./.0.2.4.9.C.H.K.K.P.S.a.b.b/a/W/U/P /P/M/P/S/S/X/b$/a)/b)/f+/i0/s0/z3/2/3/7/:/:/v/Cx/Hy/Tx/Wy/Y{/Y}/W}/U}/Y~/a/h/k/pt/po/rn/ri/|b/z]/]/Z/U/L/8/7/8/?/B/K/K/I/L/L/K/I/G/F/D/B/F/F/I/K/L/G/:/5/2/-/////.......// /// // / / //w/m/d/_/U/P/J/@/;/6// /* ////../// / // / ////....11111111~1|1~1111~1111111111~C0wA0qA0j90h40j20h10m/0o-0r,0r*0q'0h%0c%0^%0]%0`"0]0b0e0j0~0y0l0`0b/h/o/w//00 000000"0#0 0t#0v'0|(0~,0106060707090<0C0|C0[0[0^0[0]0]0Y0V0T0S0Q0O0O0Q0V0X0V0V0T0O0N0N0S0S0Q0N0N0D0D0D0B0B0B0?0=0@0@0B0B0;06060?0D0J0O0X0Y0[0N0L0N1J1L 1J1J1J1L1L'1N61LB1J[1GY1DS1DL1DI1D@1@51?01B)1@&1@1=0B0E0D0G0J0L0N0N02/////// ///////////////////////////////////%/'///2/2/H0E0A0>06 0-0,"0"0 00#0*0(0#0#0%0%0 000 0 0 00 0 00000000"0"000 00/00//////////////////// / / /////1/>0A0H0J0J0H0E1I1L1N1Q1T1b1111111111111111111111111~1h1]1Q1J1E1;1:1:1B1E12(24292Z2i2k2k2k2n2q2v2v2z2{222222222222222222333 3 3333333333}3}333322222222222222222{2n2_2]2b2a2Z2W2U2N2H2C2D2D29202(222222 2 2222111111111112 22 222 2 2 2222d4i4n4v4t4x4{4t4s4n4n4g4e4g4e4d4`~4]~4X{4V}4Sx4Pq4Ll4Lj4Sg4U_4[]4g`4yb4xe4xi4vj4vn4{j4yg4{e4~d4d4`4b4d4444444444444444444444444444444444444444444444444}4y4s4v4{4~4v4x4t4x4x4}4{4~4}4y4y4x4q4l4l4o4y4}4{4444444444q1o1q1v1{1y1y1q1q1q1c2c 2c 2^2X2T2T2X1V1X1S1Q1X1]1b1g1h1l1o1r1q1111111111111111111111111111111111111111112222222#2(2+2/222425292:2>2D2F2A2A29222!2222Z2S2 72(/2&(2(%2&2(2*2-201-1&1 1111 111112222+2 2222221111111 11!1!1%1&1*12171<1H1M1U1Z1a1d1i1g1l1q1v1z1111111111111111112221111112222222121z1s1q1l1f1b1\1X1U1R1R1P1P1U1\1a1d1k1p2p2q2v2z2{2{ 2 2 222!2%2(2/22272?2F2I2H2F2D2D2K2K2I2H2xF2kF2kA2b52a02]+2Z2W2R2R2P2M2I2A#2?+2<02:529:27C24D20C2/D2(F2!D2S2W2Z23'3)31313138393@3G3J3L3J3O3L3H3G3E3B3=38363/3,3*3)3"3333333 33 333 3333 3333333 3"3$3'3%3%3$333 33 3 3333332222222222222222222222222222222222222222222223333 3333333X2S2N2G2E2D2@2=2;2:2:26282=2626232121232526282;2?2@2D2G2I2L2N2S2S2S2V2X2X26.686 E6 S6O6N6J6J6@6@6B6;666+6$666666555555555555555 55 6!6o7w7666666666666666666666666666r6m6e6c6e6e6b6g6h6b6`6c6c6T6I6E6D6=6;6=6B6D6B6D6L6L6Q6V6 V6S6N6G6D6#?6+16-,60+60,60E6+O6-^60`65c65`6.[6.Q63E65=6836D'6I!6L!6P$6N16P56S:6SB6QJ6NN6FX6G^6KV6QN6UI6V;6]56`,6g+6g.6b;6j,6n+6666 666665556 6 65555555555555555555555555555555555555 5 5 5 5 5555 5 555555555555|5x5r5p5p5k5k5i5f5c5 Z5%R5%O5(K5(J5,C5-65//51/52,54'54#5<5>5>4E4C4A4C4P4U4W4Z4c4c4d4f4k4m4p4w4u4r4u4w4u4x4w4x4x4w4u4n4m4r4s4x4z~4}y4w}4u{4uv4py4nx4nv4ss4sn4wj4zi4ze4l4i4e4d4e4d4`4]4Z4V4U4P4I4G4D4G4F4?4<4:4:43434:48484<4<4A4B4F4I4K4P4P4N4I4L4K4F4G4D4=4747454-4)4(4(4$4-4.4-4&444!4}!4|4n4h 4i4i3h3d3h3m3p3s3u3x3w3x3333333333333333333333333333333333333333333333333333333333333333333333333333333333 3 4 4 4 44444444!4!4!4#4$4&4(4)4)4.4045484748484:4:4?4F4F4D4F4A4 =4 ?4G4 K4N4 N4K4K4X4X4P4N4L4Q4S4S4K4S4!S4$S4Q4N4L4G4B4D4"K4$L4$P4'S4&L4)Q4.Q4,I4)F4'A4'<4$:4$74!54!24!04&04!-4+4)4$(4!&4!!4"4!4$4! 4" 43333333!3&3"333)3+3.31363836383;3@3@3E3I3J3S3X3X3V3T3X3[3`3c3g3b3e3`|3bz3g~3j|3ez3bu3cr3ht3gk3hj3lf3l`3m^3l[3j[3jW3mR3qT3tR3tL3vH3tG3qM3mM3jH3jC3g@3l>3o83o)3q'3r'3v,3/313>3E3E3G3G3H3E3C3Q3V3`3a3`3f3333333333333333333334444.40424?4A4F4G4N4X4]4b4e4j4`4_4[4_4e4l4yt4qo4en4[e4X`4Dd4?g43g41e4+d4&g4"g4i4i4n4 q4v4x44444444444 444444444444444444444444444444445 5 55 555555555"5"5%5(52595<5 <5C5A5"H5$U5"U5!W5d5h5k5!p5"s5$s5&}5+5+5,5.5051565:5=5B5J5L5N5O5O5T5]5`5c5m5l5^5]5S6N)6G36B56==6;E68O61^6+h6)o666666666666 6 6 66 6 666666677`4^4] 5[5[45X95X>5TE5SY5Qp5Nz5Lz5Jw5Ii5Gf5D_5EU5BU5DR5BM5EA5D<5@;5B95B75E65E45G'5J"5J5N5Q5Q5S 5T5V5V4V4X4X4[4[4^4`4`44444455 55555'5'5(5,51525;5<5@5E5F5A5;5-5*5#55555 5 5554444444444\E_EfEkEpErEnEpEsEsEuEzEwExEzEzE}E}EEEEE|EEEEEEEEEEEEEEEEEEEEEF F F FFFFFFFFFFF F!F F!F#F%F%F&F*F*F/F0F4F9F9F?FAF?FMFPFNFCF>F:F:F7F(F&F&F%F&F%F#F|FzFxFsFu!Fs!Fs%Fw%Fz+F|-F|/F4F4F7F7F:FAFFFIFKFFFDF}AF}DFxFFwKFuIFuFFsFFsCFuAFwCFw>FxE9E7E4E1E/E,E1E1E,E*E*E'E%E#E"E EEEEEE E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE****************z*x+v +g+b+d+b +Z'+U1+W6+Z7+W<+X>+ZA+ZE+\F+ZH+_J+fR+f^+kp+ls+kw+f+f+a+a+d+g+f+d+d+f+k+q+s++++++++++,,&,),+,',",",,,3,6,E,O,Y,],{c,ze,t,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--,,,, ,,,,",)-/-. -* -)-*-.-.-1-8-=#-> -@ -L!-W&-W+-Y+-^(-c(-j%-t&-*-%-%-+-0-5-9->->-A-A-C-N-U-]-b-n-u-{----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,- --------,,,777777~7}7} 7y7v7t 7q 7o 7l 7j7g7`7]7Z7V 7S 7Q 7N7N7o7b2d2d2"d2Fd2d2d2d2d2+d2ed2d2d2d2d2Id2]d2d2d2d2d2.d2hd2d2d2d2d2Qd2sd2d2d2d2d2o;q;t>vAvH{F|C|@9469741/,*,-,-/1147;HJO~P~RU|W|U{T|R~O|JOyKvHvFqHoJtKtOrRtUrTqPrKqMmOqRoPoKlKjPhMgJcUbW`T^ObKbHcAbC^F[M[JYMVRXWTYSYX\T_VaOcOcLfJiLmJkJhJhIfGiEm?p=u:s:p5z.!"&!}zzxx~~{qoqvoj]XZNB=85520220.(&$$&&#!  ~|~|ywuuuwrttrrooommjfeecccaa`^^\\\`[YTVTOMLMROQMLJEEBB>=91/1),**,*)'% %$        |vtrrqoe^[YSQOLJGGIDDEDEGEEGEIJLNNLQNJIB=30,)!+0316$䀨&388..+  zyrvmrhofj`gVg9g/g,j$oomomol o l lhcXTIE=;33:;856338;66;@@?@=@BIILJJLTVYVTIB?8833530.0110,''$!{{}zxxvulnq}{zzxuuqluxzupigdb_addXWNHDD?<755}0z%w%snkd ^WUWPKHA<2(*(##%%(**--,*-112242477;9;EJOTZ_cc6ဏ5510161{0{,{+z)s)p&v"zqlkkdbZWSXZd_WWSSMDA?:50+% ##}zspmhddh{uvrmrlngnek`kOs?w=w;s1u+r$d'Z$\adhrw|   ".0056530.+'"nk|iu^fUdPZHWCR@J@C>@;9>/;,9FJP TRJJHOTaihd^WRPMJJORcr}qi[PIF<82) $&,,)3;=;;EE~D|GuGtLpOmNkJhLeLeNjOjTeTaS[V[[R]Q`M^>b8g,o%m"qorv t|~}zqkga\SMIHDA>:5*%  4<><5220+((+0244~2w4v5y5w<r>qChDgAcDbH]KYRSPOUEWD]@_;f.+'" )16>Q\^ehjo}|usmhfa^ZYWRMJF@ @>;4!&0 3:<BILQV_gtvtqlb_ZZUQPLGD=<52+(! wttmha`YLGB;8/*)" yvvtnqllnlnjjlnqstx~}vxtvtvvq}szqpqknbqXnSqFs5G#OM HJHGHQQWccfehefcfccYYV~T{VtTmWhVhTqRqQqMlHh@g@g9b4]9T;T9S6N3J4G16/6.,1&.")!''" ""%'%**/4@EEJC8831BHORRThkorwrww}zskik}zzzrpmhd_afff_ZTRKC<2,-241,'t t py|ww|~|zuuroopmjfffa``fkprokjyy|qpoeq[nViTdWd[`[]^XYXOSMPONYP\SaPjFwBFDBA==?zByBtIjLjNfK\D\GYFT?RBQ?HB$M)Q.[+^)j(e(V&RCEHB> @ 9;;>;=;88=@>OQVYRLGCEL>1/3.,)$ *//'$%'       }{usnlqszz}zussxx   yuwzwwuutmomhjhoh fefeca aa`\YYYY[a^achhfjkmmfmkfa^acc\YWWVYYWWVVWTWTQOV.\.c3f3h/o4m4k9j6e6e;\3V6TEM>LCMGLJGGEHCMC[@fBY@QBJEEHCJ=H;C=B;@B;B4L/V3^9`8a1`.Y*Y.R.M.J,G'E*B*@1B4>8/4,;1=/6%;'=$;>==@@>=41/,** ).,;BBEB@>988=;83,*)$"   ""      )) '" $'/1841*$ } {}" $xvv"p$q"uuxv {}zpplgdb dbdbba\%Z%\aa ]_bdggkpnpplinngdbda_b]_ZXWUSS]]XPMMPPSSRM HKFC$A$CH FD C >> A IHCA:/ 0 4 0/-+ %%("+*4)7,C/F3H;PBPCH@C4?4:;9C7G5M5G0G2C5B7=514.//(.%3&.(*%$!).,''! !     "1/36469683..438;B@;9;@=@>=4/*'"" $*""/4*,/6;@EEMH@CHGLJOLTQMJGB@=;B>CBERV\``^[V\^aaekmoujhtwuopwz|tofe^`eejjkw~~~tpywmfaacottw~yuty~~rokfe\JHMGC>=834==BC>C@=;9BGHGJC~C|>{EwEyBw>w=v=t8o9qCm@l9g8g;e>g>g@lElJoJmMqOqTyTtYv^o[m\maqewk~jehh~ou~|{|~w|r{pw|woomofhchah^c^ccbe`Y^VbVbR^MbM`C^E]L[VXYY^T`XfVjTeSeScOeS\O[OWLYNTLOJVGWD\DcBhBjEfJhImEjBoEyGzE~LSV]z]``ceoqrvrhh~j~q~|y|{yw|~{{vorrv{|y{wwqq lllqqmmoqljeb^Y[`]`Y]`cje[~XTNIJB=@?B?==::31.0588;;r8o=^;^8e5f1o0u''&&$$"""$','''+10136856:568::6:==EDDDEGEIGE@?@ELNQ]^bgb!`2[8X7O-I)B#??=;86+365650&$"!"&$&+3133,'$ (?FF IK!F'F.I8I?POXTVVPYU^Vb_bXeXgShSgXh[j`h`hdljjnmnosovjqjtqov{|{ %6>ACEJH<,  ->DRZdFiKkKq<x9z6x-zxv z{{-}46//'/1;{<qFlOl\qi  $'.+1,616B;=>?C;E@CICNELGNJERDT@V;T5LMMMQ&R,W6WBWDmQ~SSOOGB8.'" ##.7<PSVXXZ_] `diio$o6j=jElDnGjJjQgXjXi[j`n^nbo`tbtevg}TTVX^hmovwvw~{{~|~||{| %,4967;;EHMPUWYadfa\\ZYUJFA@AAFK%P%Z*x* }}|xusmmnmkmmmx}   <DMasx !!$$!!').1BIJNT[jmoromq$*=-8I_ g jy %*9KS]dk%*4EOTaje_hXmFu8~3-)($(#-222+-+)!#&.-.-0DII&K.FGBNBSDDI0K)Q#SPIB73530.2-.--0:BDPQVbiyupokkhc\\` ^ \ [\`e(j6k>jHhOf_cf^h^k`}^\[VY\acfrtww|~zutuy|"''5B]gq(~Ngotysty{}}yvx{{     # % ##*(**,/1269>@FFCC>96411-1 --*%"  ('((*,+*5/7142425696:-C#A ??<97 9%4"/44 52/ }sosx 4XYs_xs !'),386:;EIJON TT[b ` ^ ^bch e chjlrt|       ## #%# !  $$'* 1!33.)*'' ),/4%>&B(E2J7J4C5;7;9>:=:C9@7@5E:H?LCOFQHTITP`UfZo\z_|gsvuvz )-.5:=BFDAABINSXV]]bdeglggnvxv{}      % % ## "%"*%,$2 21--1,'* , ' , /1T U _  $/33>BEO[fjm "'+1358 BEB??;:=;BBDEIJ$O+N-Q3S5Q8XI^PhSrUtl~v~{y|{ "/6@MR\fks|&.68:;G^ejotw{|ywvy~    (%/*4CFRNx_gfd\bf_]_aabddgkillkiknnqnkggdffgkqx}{{vvxuqpxz} $/31/39=@>;938@@; 69 9=@BGY%[)\,j6y=~BGGLLMTTWY[[`^^[^`ccefece^`c^c`aceeh f c e [` ff!h-h3j5f:e=eBfFe ; 1#         $&'))$" ~~!!'))+03555668BBDEIEJIGIIINQTQLJNJ~OTTSOQ~SVX[]^]~^b~c}]{]}]{`x^t[v[s[t`q`tetgvhvl{o{ryoxlsltjqeq`obl`jbjeognhjhnlllgqelelbldmembl_h_l]l[gZeVbS^SXVVQSPSITGYG]IcKeFcFbFcDeDgGlIlGjFlFoLrNwN|K|GyIvGqFmBqBqAm?l=g?e?g=h=j=h8l<m:j7m8m<w=yB~D~?~B|=y=r7t7w:{8y5{5|7~7|55773{2~02.{.w-w&{(|&|$~&&#&&$!{~  퀸~~|zz|uwuuwyz~~|zrtomjjfa[[\\\YVTQOMMEC>>=;6/31.)"%*%$'$"|||mmhgh`Y]]b b mjmljb^][XTQNGGDDB8&&,.58:BDGJNJONEGGE@@:86=@?B@?BB@=@B1.306?;@DI}JzGnEi@gB_=X6W6R0N:K?K:H?I?DI:L4N0Q/N5S7]4e+q&t(w%{%&# #&%&#{vteb^][XVX^hcc{`hcjgrgwjqvyyvrt{~ !(+*?CKIUPXU\_kbngsnukvnu}{qnf_XRIDC><7/-+*+(/2440-/*%& % ## 9@GO   mpz{{rmcX!S#L!J!G(:(8&6(3)1)&-2:?AB<2+(5?BFGLLNPVVXUuSsQwNzNKKLIKIKIL|IzFxFwKzLxNrNnPiU^VAS/L'I*D*<,7*A*FFSSUXSLA+($08AGSXbgsyyts}tibZSIG?8.)&!~!()()(#JHC971-67;<@EHTUU^|_k_hZfWcUaW[WQ\L\HZCY.U.O*M%H%J$M$O)R)RHK P PRUYZ__Z^Z\^is x "$,.1.%" $.4>>@B@;6//11'  {zzxvxusllklkifbfgklnpsv{  z pki ikkdgd ifdkquuslkdl!'')'))+,,013010100.0,.351}.n0d.W1S0S,K+H,D,A.>+<+9)7+5)2'2'/+0)'')&''+&!!"!#!        rbEETJED??D1,,1"3".)!)$' &$&}}wpd_"W,R5O;O=R?W@YDPDKEKEOERBTDUQOXJ[H^J`H^F`@e<j2o-q'yy||~|y{~ww||||{wyw{|{{wvvqoqj~jvgthxetcb`SL+I#JIDD@88 5 51)'$!  )03:=<A?=<==?=5.-& "'+ 0 6BINONJLNQT`t##$? @ ? : = : : 5 6 , + ' ' $ !                     ) 1 6 ; ?  u⁦ l k i s s z | | y t q o m l o q o v {    x u| ~ | { y w r q o m l e c c j m t v m c ` ^ [ X V Y X N N L G E G G E D E G G J I J N Q O J J N N Q T S Q Y ^ ^ b e g j j o o q t v y |  t { ~                     ~ | { |   { { t j c ] b b g h j l g g m m o m o r q t t r m m j l q q t v v w y r t        ( - 0 9 D D C A C C > ? > : 9 0 / : : > ? > < : < A A ? > 7 -        ၄     l l k f d \ X W R N I F D H F ? 5 !   & ( * + / 0 5 7 < A D H K R S U Z \ _ b d l l s          l 'i 0f 1f 5b 8b Bf Gl Ln Lp Is Lx Nv Qq Sq Vl en hp lp yn |q p u p k g k g yf ja VX BZ =_ 5l &n &l '76799;<;>8@=ACFGHRKTE[AaFmOtTuUzT|Ez1m1`-\/^,O/@,9-8186476hmtojfc`[YWYW TVY[acfhE[ae^[\WWTE>;>E    ",1386643343386699====>9889964)'$$"$'*,*'"߁|wuppmd_acfimsmikmmpnmnprwVY]`geelljje`^^``YVSQOGGGGDBBELOVhmtvw~~wvtwtrrqorqmlhzwpddhkprsrikik|m}kmnszpxrwpumrmdpardsaz^_^POKOi}}zH偄O}O}HE}E|Ex<|7|2z6x7u4w"}  }xur"r2p9rJnMmTmPiZfZfHfAd<f2k-i%i-f,f/c/c7_4c@aM\O^T\Y\_ZaU_UiTkOfKkJkHsCmAr@CJMQY `k   z tyt p a^aYQR[aemtoo!k"k$u&y$y!w|~"z"!     "  #'(,147<>@JPU ^ dfu "$"%*/.8;>CGJEGCBGOOJJVTWzVxTzQxMwLxCs9i6d>a4d.i/h,d*a,\*Z,W1U6T6R;O=HJ@JA6>;;;7>7C2C/H1@/@,J(L'H(C(>';%3(3(/'. /466364.,** %"o2]ESR@Z@WJTLPJHDA@;;7591>.F._&fkr !DIQV|||yttml^[VTO;=;6, YRP<71      yrt~~~|{yvyvomjhgjtvtrogcbb`b`^^^ceeccglgcjjgbb^[YXXTSNQS[b[SOLJQ{QvTuYu[sYqTsOnNiQfSa]a^]`\cah]l]h\c_b\`\]_S][ZO\NWOSLZJZIRIKL>Q<S>S?]9e/q(v*w({&+*((/??:?DACHDA?:70-*(*++/-**+**/049<C<4/25>CHPSUak:$;*;.;3:631.,.*+)*)'* , /,,)   $'+,,01353535588 68:$o[g[eV`Q`L^H^GY@[;^;^>jLmVlWmYo[)聰*/8899EE>=JLMOQWY[[ch\T\accejjhkjmorpruwz~~ytmk`\YWOQ`mtytp^\^jjcYROVawz~utukhfeca[Y^VQMLQJLJ=CG@94.*)聦!)0583-(#!&$-..038<<AB?GAB<<75<B`eeiolo_UUPLIVnoodbgosi[]U=BI?5<AF.&   B܁B88;DJLNLJNOS]]ehllhgge]TTJDBDGIJNT`elt{|wyvywyoghc``XXT TO N I B1܁36;BLLLLJE;1            5780+)()(##!                     !!!!!$$!!#$&&)))+-+-0..337.-3<:-+$&(-))+)()++032.-02<=:88<DFQQSVSQSQVVUVXSPQPFDDDB?=:<87877583527770.+(&($#!           !!##!    !!#$()+.0527:775``_`_`Z[[ZVVVUSNKIGBABGLGBADFFIGKLNPQQSXVXZZVXVSUSSPQQVSPQNLLPPKGFIIKNPQPQUSSQUPNNIKFDFGKNKKKLNNQVSPPLNIGDGGBDFDDBABA??777<:8<==A?<=?=?ABDFDGILLPLIIFFGIIKKPNPNBBIGKPSUVUUQSZQQQSPPNQUVQKIKPQUUXVUSZX[[ZVZXX[]]`]]___VX]Z[`Z[__bbdeijjllniotqostyvvliggjeb``]]]`bebbdbbd` 傉            "# ,144664611,','#  rm c\+J=GFBK@N@PEXCbEgHoGqGsJvLGEELMR\cfomoru| %*1<CHMOOTkpw $.38EGN OV[-[2]5[=]QYZXlVqVvONOOJEIILLOOSS[XT V(T,S/N/I6I/L-Q,Q"TSNLID @?;6:EDB?;686@B@EIIEEN{OnXXXQX?X8V5V+T(V#NI E@60+zshihaYH9(% zuhWTTOOL{QxOsMqJnLjLiMeM`M_M]HXJKE?H:M7L-LY[afmr'"! .(0.:8BA:D1D.G$NU[ b e l nv{{~|unkhcca\ZUJFEE<921  "    "**/17<><><61**,*-,*--,11}6}7;EJUZ^^_mp| %**,1;<>AA@77@EFJJKR TTW ^^cdkrswz&|'}$+66??=;=?B??GDEGIJLGLIILNQ[[XX[``echcghjor    !(-4:CPUbn{zra\ZYUPPORMPOOJJE FCH)F/<3;@9L/J'M"LLJMLM W`a^WVTQQMROOOLJLQOMOQQQQQRTRVRRTRTRVVVWVVW~^{\x^s^o[o\lYi\g[b\_`]`ZfZr`w]|__d__`]]`ggdbiigjigd`gd]gb_[Z[XVZ PNLIIGLIG!N&S)U+Z-[-b2gKLLLPPUQZU_VdXi[n]s`xb}egjlnvtoqqstvxy{}~t x xttono s/`6S9D>:@3C0\-d)m+z().55872.+&! ~~~||||zzzyuroj f c`[Wj6eDhJmNmQkQmToXm^jchjcrcv`~afjfhaaWTLGG@>1.))%$  {zvuqkidb__ ]]W M C ?:54-+%! !!     !!(+497:<?DFAADMPSX\biknkgfklsuvz~|y{wtvwttv{{~|{rvvqqotv|~{{'~,{/{4w8q4j3h.h,e)c)^,[,V/V1T/O3N.L1J.E/B,5.0,.,')!)$ $"}nidcZZUTOJF<6%""%"}ysi)i.l.o3s8q=nBlCjCoGnHqJoJsQtOlHeC]=X9P4N/G*D*?'<%72+&#$),19@GGJLOORThWj[octfzkzk~mt~|ukfa\YYTQMGE@@=;1/.3466)%!"#)#1&6.4015/:,A/P1S6X8Z>_BbHnYth{mokjjoorw  ""#%%**/4266<>@>A<A>A@CEEC!E$E(J(J-F0K2M3J5H8J:K=JBODKFJITQWQYUZU^Ua[_ddedj_i_l\ncqat^vc{c_c^YRROPUWTPOMOORWZ_dkpuz $+05:@EJQV[`gjrty #*/49:9<:<<??CDAFFHI?C>>A?AFHMUWZ__dgkggkklklnkka^^YYUTWY\^_dhipsx}uzKM$K'I+K.N1P;ZEbSbb_gZhShIbCcAhFqKtSv\|]anqsquxz}}%(/<<A?A?!$,38EW[`huz#(/257:AKNyWhfelepeshvh{pzz}{}  .348=GOVVOG L TY^cc hkr w|~  ~zzyrkhe\WWTQOMEC@=;96/* {xvz!$&)&2258::AGKX[Z`dq}'*(*   ""#(-7;<J^aadhkprwx))+615@DGOV[`gmoty{w { "%38;=CECH\``jrtuy|zpm    z u p j e ` [ V O G@9 # # %&%*/-0442/(+*+-/7<>CDIRX_fnq{}unkvnugsbn_kU\PXIUCK*?+(! ~{trvyyvqjgwgrcj`hc{ch^XVX[]^betv{#&%&# #&{%w%t(q&e+]4S7N5Q/N0L4I:?D?I:H?K:K0N6R6W=XB_@gEiGnJzI}D@;?603.1B@=@BB?@B?@=68:@@EGGENOJNJGDB:85.,&&8BDDGGNQTX[]^bjlmjmb b ]]Y`hghmm|||"$'$%*%").13/6;=>>CEMMOQTVY\\\[[afjjmotrz|~~zywuuwu|zz|~~         ~{!$&&#&~&|$|&{(w&w-{..2~0{23775|5~7|7{5y5{8w:t7r7y=|=~B~?~DyBw=m<m8j7m:l<h8j=h=g=e?g?l=m?qAqBmBqFvGyI|G|KwNrNoLlFjFlGlIgGeDcDbFcFeFcK]IYGTGSISPVQXV^SbSeVgZl[l]h_l_mbmeldlbleqelgllhnhjgneobj`jbl`oeqjqltlsoxryo{l{hvgvet`t`q[t[s[v^t`x]{]}]{c}b~^]~^][XVSQ~OSTTOJ~NJLQTQNIIIGIJEIEDBB86655530+))'!!~~ "$))'&$               # 1 ;>CHRW^chhdhknnu}}  $,06@NQSTY]`mr||{~~wumkfZ#P0M4J7H?;D6K1R1U1\/]*k'p%q"qv{$'*/1489=@@@CCCEEJHJHHEGLMQRVVsWiWb[ZYX[P\LcKaFcD`Aa=^<^:^<\8^7\@=93/13/$ }zxpquxvv{{}xqkgffdggknqnnkikllikgddbaa_]_fb\dfgx_RNCF*4%/(      ~yvwy|{wtoje^G;:86.&|skf\RM@6/" {|y{v~l~UtSrPhI^8X5Q3S-Q+N$OJIEDBB;=:;??BE B8531+'" mjf[OEB>33/$      _ UT1 / , ' ,*',1--1 2$2%,"*"% # # %%               }{vxvngglgedb]]VXSNIBAADFB=:5.-) zvuvsg_|\zZoUfP`ITHTFQCO?L:H5E7@9@:C:=9>7;5;4C7J2J(E&B%>4/, )''*).3!3 1*'$$  !# %# ##           |trljhce h cb^^ ` b [TTN OJIE;:683,)'! s_xYsPpKnFlAi:74  xsos} /2 544"/%4 979<? ?#A-C6:69252414/7*5,+(*'((  "%*--1 -11469>CCFF@>9621/,**(*##% #       {{xvy}}{ytsytogN(~qg]B5'SD`NgNoFvIIGDGQUZXQPZZ_b`ge`ejlj g dde%y,}1}1,--*,-*,**16<><><71/**"    "  129<EEFJUZ\acchknu|~{{vnl e b [ UNG$D.D1A:8B.:(0. !"'"|yutuz~|wwtrfca\YV[\^`}^k^hcff_hOjHk>j6e(`\[\ ^ ` \\chkkopuyibVQPDB:0--.-2.03537BIP#S)Q0KDISDQ(SeRvqV!AI8I0K&KGILGIILN PZVX[Z[_bg]dg`dgijgiibdgg`]]`__d_|_w]r`fZ`Z`]\_[b\gYi\l[o^o^s\x^{W~VVWVVVRTRTRRVRTRQQQQQOMOQLJLOOORMQQTVW^a`WM LMJLLM"J'L/@93;/<)FHC FEJJOOPMROPPUYZ\arz{nbUPC:4-(!wywwp{ivZqWjWjOcMcH[KXJTJQHOAI;G7L/Q-S*S#TVTO NE:=EGEBBJJIDDEIINO~TtVnYZXQYAX7X&T[beghm!o#m$r&v)w({(|.388557<<?AFDGBDFBGGNILNPV[egbbgeljsoosxy{~}{ x%s*q/i4e4Z7X7S:P:LCBA?>:<7?5K+M#NRR\addlp}tkc[WROLH;4,) "  $%)),/348;@BBEHJOQ| |16|=|GuMxRwWs^uaskhfc^^F>97<AA9*%% %-'!(##&"(#)-+7398<<9A9B4K*N,S1g@iEjEt9x/,%     *6>@EJJRRWYZ^dnxz    #',',116466441, #"       "'+.18:=?GNOVbeg o t|    % '""#(*,,-P"%""%6<FJOTUZZcdin}"$$ ))!,',..0,5/B.E1J.L3N/O1T/V,V,[)^)c,e.h3h4j8q4w/{,{'~{{~|vtoqqvvr{|~{{vttwvtw{y|~zvuslkfgknkib\XSPMDAAFD?<:794+(!!    ! !! %+-45: ? C MW] ]__bdikquvz{  $%)).1>@GGLTWaahfjf~av`rcjcch^jXmToQmQkNmJmDh6ejW[` c fjoruyzzz||||~~~ !&+.27855.)z(m+d)\-C0@3>:9D6S/` sonott x xt~}{yxvtsqqotvnljg}exbs`n]i[dX_VZUUQPPLLKL2g-b-[+Z)U&S!NG&K0K8IAIV!qveRS(QQVY{[zhvh ehha^YWQOE>4/*' '1=BCLRWV[\`^m`b^`\QaJo?p5u5y0~$~!j``\TRTQEB=844' 僬   E像E#-79::<:55:5-z+p-k7k?cX`_[kGnGxMCGGOGHBGGOMootkjtt|$,8;>@GYhrtuyzz~ #&+03577:<BGL&N&V#Z[n nssqtv(.-07:550 "#'(*2CPUZ^chmu| !&)685?BDBBLNTVXXV^hlo| --7:?KNQPSVULGBDB!D%AF2N3R8U7]:a8f3n0v7}78<85058572277:=?=AKLNQXbb`bginnqtx}~~~"%}.y/}1~4{6s8o;o@s@{EVhjmp~ (+5BFGIPQV]`djnstx{}{}yxsnoqossy{~ #%" "(269<@@K^adfiu  +.38? E JOX]hj"j*e1c6j9m>mEoKoPvP|TRE;67FH>99447*>/A-F/M0M9F?ECAFCF>I9N7S7]>d@dAbAbEgEnJnRxW '448=BEQTRT\``j~!~$y0u5p5o?aJ\Q^``b^m`\[VWRLCB=1' '*/4>EOQWY^ahheh hv[zY{VQQOJHEBB@;843/,))%$  " ),4;HLORW[ckt}pldda\RRNM#K+?5<7>:A?CB:L:P7S7X4Z4e/i*q%s x{}~{yxsoosjlegbbge[VPNLINGGBFDBGDFA?<<755883|.{(w(v)r&m$o#m!hgeb[TX&X7YAXQYZVnTtO~NIIEDDIJJBBEGE=:ENO TVTS#S*Q-L/G7I;OAQHTJXJ[KcHcMjOjWqWvZ{iwpyww    rojhgchce``[XX[[QNLIILGLJIGEDG??B?=;=??66+$'}&|zwsrkdc^ ^WT TRKJJFE@77@AA><;1,**% |pm_^^ZUJE;76}1},}%yed d gjlje`eg`b_ZZPQXZUQGDGIvIoFgN`NSDNBGB.F&KIID0-.-.&#!)+-+222-#($()-~3u8mFhXe_ajTOE4*%kd]SK9*% y j g_I8- ztmh`YRLE=*$qmoromj[TNJIB1.)'!!$$!! xsaMD<     }xmmmkmnmmsux|}} x*Z*P%K%FAA@AFJUYZ\\afdaYWUPMHE;;7694,% |{||~|~{{~wvwvomh^XVT}Tvgtetbo`nbn^j`i[jXgXjQjJnGlDjEj=o6o$iid`] _ZXXVSP<7.## "'.8BGOOS~SmQWDWBW6R,Q&MMMLT5V;T@RDJEGNELCNCIE@C;>?;=6B611,.+'$  qil\lOqF{<;1/'//6}4{-{zv xzx-z6x9q<kKiKdFZRD>-   ,<HJE1僓1111111111111111111111 1121"2'2.23282?2D2I2O2T2Y2^2e2j2o2]ESR@Z@WJTLPJHDA@;;7591>.F._&fkr !DIQV|||yttml^[VTO;=;6, YRP<71-%' lj`_[UVgsyyqinl`]VLL[KIKA?DDID?=?A<:72.&&0+)-&###     ##!37<7BGGKIV[_dej``Z[_diben{{ytvobVQNVNKl     '+,'$!!$'}){5x={J{QLGJNVXYV]`bc~ghgc]]^bcgq{~~ollo ovy"o2j2e2^2Y2T2O2I2D2?28232.2'2"2121 111111111111111111111111E僊CA>6% {|{voqjtjqovosmnjnljhdh`j`h[gXhSgSeXbXb_^VYUVPTVOX?P8I.I'F!FK IFF?( $',3313+&$&"!"$&056563+68;=??B#I)O-X7[8`2b!gb^]QNLE@?@EGIEGEDDDE==:6::865:65863101+''','$"""$$&&''0u1o5f8e;^=^8o;r;8850.13::==?B?@=BJINTX[~ejc`]Y`]`[Y^bejlqommqqlllq qww{y|{vrrov{{~|wy{|y|~qj~h~hrvrqoec``]]zVSLE~GzEyBoEjImJhEfBjBhDcD\GWJVLONTLYOWO[S\OeScSeTeVjXfT`Y^XY[V]L^E`CbM^MbRbV^V`Ybeccc^h^hahcofomwow|{p|r~w|{|~u~ohhe~jwkqemam\o[v^tYyTqTqOmMoJlJlEg@g>e>g;g8l9m@qCo9t8v=w=w>yBwE{E|>~CCJGHGB9;=@C>CB==438=>CGMHJ\efkor~~ytuy~wttocaafmwypt~~~wkjjee`^efot|zwpouwthjuomkeaa^\V[^``\VREBC>B;=@BGJMQTLOJLGHC@HMEE@;6/,*4/""*$ ""'*/4=>@=@;9;@B;834..38696463/1"     ! ! '',.!)%$(*&.%3(.//4.517=5B2C0G5G5M7G9C:;?4C4H@PCPBH;F3C/7,4)+*("%%+ -/04 0 / :ACHIA > >C D FH CA$C$FKHM RSSPPMMPX]]SSUWXZ_]b_adbdgnnilppnpkggdb_]a a\Z%\%abbdbdb dglppz}{v xuuq"p$v"vx$ "}{}  $*1481/'$  "' ))         ""   "$)*,38;=889>@BEBB;,.)* *,/14=>@@==>;=$;'6%=/;14,8/4>1B*@*B'E,G.J.M.R*Y.Y1`8a9`3^/V4L;B@BB;C=H;J=HCEEBJ@QBY@fC[CMEHGGLJMGLCM>TEV6\3e;e6j6k9m4o4h/f3c3\.V.OQTWTWVVWWYYVWWY\cca^afkmfmmkjfhhca^a[YYYY\`aaa cefefh ohjhmomtuuwwzwuy     xxssuz}zzsqlnsu{}       '%$'//* $),.3/1>LECGLRYVQO>@=88;=;>;; 9 @>BHEC&R(V(e)j+^.[)Q$MB?HBQ?RFTGYD\K\NfLjIjBtBy?z==ABDFBFwPjSaP\NYPOSMXOXY]^`[d[dWiTnVq[oeqpy|yjkorpkf``afffjmpooruuz|~|ww|y p tt',142-,2<CKRTZ_fffa_dhmprzzz}kiksz}wwrwrokhTRROHB1388CJEE@4/**%'%""  "'!'")&.,16.6/G1J4N3S6T9T;]9b4g9g@h@lHqMqQqRhThVmWtT{V~TVYYccfcfehefccWQQHGHJ HM#O5G?>C9H;P8X@]@b@g9k8p;z=}BxGvMsOxa}hkjmmmhkmopmoprtty~|~ $/1=CJ`jmw  # (2 38:?LPVZ]_dl    %//,* -114766;@HK!O!O&R(Y(\$c#k$n(u#&#!&($)).3253 578::"<&<,?1A3A0D1I6L=LDPOISKVK[I^IbGgIjKgNgPoSoVrVtZV]]_bdbdbiiegeeeiigbb_bbdgig j n qtx{(}/y2vF^^cfkhas^uWsRwMxGu=|6|1 ||xWnRnJgEbEbAdAd@]>S7N7I9F>FCCA?E9F0M/M-F/A*>74499>HF76;ER|TvPoPoKmEm>j9c6e1j*j"h]XOJE ? 83.+  uifda^K@@<962(" "%# ~{yssoqonsxy}{}{xtsnjd`]VQPIGFB5+( ~pmjhVE@{@s;o8o6s4{1~/}.y%}"~~~}xtqnnigb`bbXQNLKA=?=:77227585058<8}7v7n0f3a8]:U7R8N3F2%A!DBDBGLUVSPQNK?:7-- |olh^VXXVTNLBBDB?586)&! |umhc^ZUPC2*('#" 055:70-.(vtqssnn [ZV#N&L&GB<:77530+&# ~zzyutrhYG@>;8,$|ttjktooMOGGBHGOGGCxMnGkG_[X`?c7k-k+p-z5:55:<::97-#EE ').14898;@HJQYahjkkz~ +2<BA?:2-)&)1(3&6(8(:!G!J#L!SXcmr{{|yutrj``\HCEC=;83%"  {w{ytomg`[VOGD@516+)) "')./34999=>EHLROROMQOOQ{Ry[}`{etjsoiwg~d]VSQU]]`id``ioqx  $(+ALSXUSSFFA*7*<,D*I*L'S/VAU^PiNnNrLxKzFwFxIzL|IKIKILKKNNzQwSsUuXVVPNLLGFB?5( ~zkkjhaYQJH@;89841.)' xwrpkhdaa^J<;7-(#""   *(*'GSV dejj o s"vy%%*,3646;BJQ[ehkmttkhc^[RQVVROOLHJORVWV\mowy"##-167;@UTHE@<;76-179CHJEA><9742/,*'#   ()()(!~!&).8?GISZbit}styysgbXSGA80$  xqoi``di`]]UQSV]~dwgoijset`{[}RyQ{OOQMORORLHE>=99943/.)'" }qd`Z[XKGA::8522&)&$!zvx{ */69;=@CEMOQTWW\ehkryzz~  ~| wrk hcc^Y T LGz僀  EGJLTY^mtuuy|}|} $().8BLX[`dgllstxszoxnslmnajWiPjCi;i6e1jjnlb`dgd}tqojdb][ZPNNIDA720))(#  #%*9@EH_~~|hWVW[^`cfkruz|~~)?BGOTX[][$##t`TQNLJNONIB60 + '" &-.5=?==<=?A<=:30) ! $')155 8 8@DDIJI#L+`Scbethxgtjvj~qoqvvw{{|{wyw{||||ww~{y|~||yyq'o-j2e<`@^F`H^J[HXJQODUBTEREOEKDKDP@Y?W=R;O5O,R"W_dpw}}&$&' $))!"."31,,1D??DEJTEEbr        !#!"!!&+''&)'')0+'/'2)2+5)7+9+<.>,A,D+H,K0S1S.W0d.n1}53.,0.001010310,,+))')''!ldklsuuqkdf idgdkk iik pz  {vspnlkgfbfiklkllsuxvxzz{  '11//6;@B@>>4.$ "%.1.,$"x s i^\Z^Z__ZYURPP K HRR)O)M$J$H%M%O*U.Y.ZC\H\LWQW[UaWcZf_h_k^|U@;761-##"ywom\VWVROJHLOORVVQR[^chkttmkhe[QJB;6463,*%%yvs"o j jedV SGOVVOG=843.  }{}zzph{hvesepelhfyWNKA:752/(#zuh`[WE83,$!?A?A<</(%}}zxuqsqna]\|SvKtFqAhCcIbShZh_gbbbSZEP;N1K.I+K'M$Kz6ე130+!),03=BIJNQLNNLJIEGEEGEDEDDIGGJLOQSY[^eoqrrtv|        $% %')*,**,)1/19=>BBEEJLMQORMLMOTVTY[`\\\^^`aaccceefjmmooorrttrwuuuwy|~|~  !#&&$$&(.02202558=BNZX]jovqoq{~~ *46;;<HMOOPU\_acc_ZTOJE;9;774242211-*,--**(%%##(*(2<AHKPWUW^d knsw%z%}0557<?DDHNWXdda_bdgipuzxulquuxzz{}qnluvxxz}{{!$'',0110.0353388?BITVYVTLJJLIIB@=@?@@;66;833658;:33;=EITXchll o l omomooj$g,g/g9gVj`ofrhvmyrz  +..883&$[][XTOGB?)~~|zurkfc`^[WVWh|~~_HE@9*%#  #())027ADINNPZ[]bdjoqt}dgd`blnjje1i6i;jCiPjWnalmnsoxszxtsllgd`[XLB8.)($ }|}|yuutm^YTLJGE  zu}xspihd_^\YWTUYY^^akknlklkkggkgd__ZWUMHFA?A>>C?IHFFADC??<<:<9:94/*# ytrjg`[VQJE@:50+$ zupkd_Zfiw}}tnjd`{ x sn l gebbU"N"I$B"ABA=7530+&$!"&'&+&     ~zwutrmk"h&h+m0p;kBkIjNhQcNaO\LYOTOQSMXG^GcLlJrBvCyB|B~>=3/.,'"uid _W#K%I#D&D(A(:-2-0*-(((  &#&*/5>AACAHKRUURRSXWZ\~drgqkexYzSxO{O{LLIDB6tg_VQLIB<: 30&!4;>@@ FJMRWYZ^afhmsu|}ojhe^\Q>61)  "'+.;f@_D]EWOUSPYR]KbHcDgAhDqCr>w<y5v5w4~24420+((+0225<><4   %*5:>ADHIMS\agkqz}~| tvro"q%m,o8g>bM^Q`R][[[VaSeTjTjOeNeLhLkJmNpOtLuG|G~DEE;;=;3),,&$ )28<FIP[iq}rcROJJMPRW^dhiaTOHJJR TPJF,9/;9>@;C>J@R@WCZHdPfUu^|ikn|wurnrrkhc\Z\\JEA@ACHHRTRRJHHE@@AEE<<94    !$&.",%,,02:6D9E@EEJFEPEUIcLfOrQxS^`ccgmooqwvrr|~ +Ieze{{vu"',./3=~>|ByBvCrBlJcL^GXGSMOQOTLYO\NaQcNhIjBk;k0p+m&h"hkmrtuwz~     &+&'&"!$&+0357=AB"A$B"I"NUbbe g ln s x{`djn}t}wifZWROOMOPTWUPORRY^c_cc{^vatcq\n_l_idjde_da[^UZUYUWQTQJIKFODJBK=J:H8J5M3K2F0J-J(E(E$C!EEC@A>A<A>@><6624/**%%#""  wroojjko{mthnYbH_BZ>X8S6P1A/:,5/01.4&6#1#)"!%)6643./1;=@@EGMQTYY\afku|~tmk~kzfzct[oWjThROOLJGG@91,)$#&+2%7'<*?*D/G4N9P=XC]HeOlQtJsJoHqGnCoCjBl=n8q3s.o.l)iisy}P-,,*(#"" '%    |to g ebVONG?=:81.+'"                 zxnd^ZYWRRJJE@>6* "'+.0356500."   |wrhda$\'Z$d+r1u;s=w?wOs`kekgnlnmrvr{uhddhmpsz}## %+05:?ADMSSWW_dZXSWZbdkklqzv"p&s)z){+{,{016101556BDIL{L{OxOzSxYkegqdr\~ZWXSRRUURKHACAA>5/*&#&  (((*--0-2(:(A&D#D%I#KW _diuuv{e{ez+I ~|rrvwqoomgcc`^xSrQfOcLUIPEFEEJ@E9E6D2:,0%,",.&$ !   49<<EEA@@EHHJRRTRHHCA@AEJ\\Z\chkrrnruw|#߃*49;;@EJKO_imprrsx}}|}} }     xn*n6m;nOs_xhxmu'&!$&)..156:;=@BGILQTXY^t}xxpssnmmihfacca_\UPOOMH<;;64* |ywwvtttlleb^"^%](]*`'`%g*o/q2q9j9m;m<m>o;q;t>vAvH{F|C|@9469741/,*,-,-/1147;HJO~P~RU|W|U{T|R~O|JOyKvHvFqHoJtKtOrRtUrTqPrKqMmOqRoPoKlKjPhMgJcUbW`T^ObKbHcAbC^F[M[JYMVRXWTYSYX\T_VaOcOcLfJiLmJkJhJhIfGiEm?p=u:s:p5z.!"&!}zzxxxuwuspmfd_\\ZUTPMH>>@<6("xifcdhhdd_a^WY\\WYY T UZZWWTPTRJHHFHFFJ KJFFCFEEHHJF>962/',# # "#    %"#%''21/,- 2472647/126467;>>AAA>@AA><>@CC@@@<;@<;7,'"#^__^tucnak-4.04/data/zoomin32.png0000644000175000017500000000404312055104352012744 00000000000000PNG  IHDR szzbKGD pHYs  tIME  !uIDATXý[lT>a3v/8[ <FM%R*PT+//$!JK FMƮdxf<3 3sfVb"Ѹ9[:k =jllád-[L۽{7Lӄ\.dbb2Oyk۶mO@ A6G_McВJx|n.ݑl>%2ȤgJE-[GZ[[.8s:tT*nߴip:42S*_P*3;K߼5bd$ KLAR22{v}Ϟ=oNOOk ZSS$}~&?a5) D)n~X^)SA^B@EݿydEC%sʕ+[9W@ z\>&rMT! թ@Տ?nz~eUUsޛv|Li#"^,BHjR:r&˭"8yi0D7LJ bF'jk\ҝeRqJݺU?^& }LK|F.| Gt ѣGbB{v1.J9 ۣ )SNU"aBxӉx"Dӧ?, rsuy\\)+irʣlNcn!YHTn1“hp!?}ygMbK RRn[* tLr-< ƅ7/v5Ν;I)]Б_3'Nxo쫯8s͒ ? \ q5+t &eK={ZooG Rx+4 #?<<|``iri!H,!Mۘ)T 8EjIslv9ZVA!\Q]T(PJ\.xW_-Kv]Rԩ׊+JJVvwwsމ?q=%b7PaXt]=[D:ڴi;k׬YR w9B#S`KKkg"d2E~s'wݿ+|&(88硉k5wFL&ΝXVVuH?c"!X(666vDg0#7%%%]G0\QJ_8@1D5533H̑ft]°BQJ_ }t8dsY^]R)M\@J\.WZ\h !B(@"4ͽ~y7H4G1N!j=5;TQIENDB`tucnak-4.04/data/zoomout32.png0000644000175000017500000000364212055104352013151 00000000000000PNG  IHDR szzbKGD pHYs  tIME  8_xv/IDATXý]lTϹsۻ .uB[chB% JjၗJK$J<@"Y8Dm,EMR . Z5 gwYc{wk{ܙ9}Apg~̙v^Z۷o O8N( 02yӧv"|>ѣ`Sap\_{x|o"ȗ'NpB&,p8<;00`]fMǮ]ܹsƦ'ziY?WOyAJbsO(R/9^'ONҡCUUUk_/JD))QC; i"Jv-{6oڴr2T.(g=Hta#DD%@\"BHARC_Y[[wr4ło744Ϧҟt%PIZPJ3(!!Sr+ [6?>G ({ RrԩUUU4\[ %( )0 TSȢD, )P$Yl6FWrc7nܘRR>7.߮onjKQ)t:GDRDTY]]u`I ---i^U6-Yjs2ռ^/( Nܼy_&&&FVZc;Z[[!zp~}mP, s0u]!DyOd^nRJaH$2ӈ%"[]P59UU';vD^ܓ/䇍RXFO-qr =NsOw$' ܳt-Ş|>7\* 8)jyANDžt" u)dݻ{97 Nih4y9d2{wn߾5@qAJeŢޙJq˖TYYwc@DǦH}}CJ1j'RB(kX0bsɹLv7l@V/R!0JF,DnOo*Elj (:CF,EGo&Bk x,z~!T\ZM[⛈ ӹ4Mㄯ¶쨥nMUxZIENDB`tucnak-4.04/data/tucnakwiz0000644000175000017500000001541512251300600012515 00000000000000[Region I Standard Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=ABCEGHIJKLMNOPQ [Region I Std test 59 expert] pexch= tttype=3 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=0 excused=0 excbonu=0 excmult=0 exccfm=0 exctype=0 excname= rstused=1 defrstr=1 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=CEGHIJKLMN [I. subregionalni zavod] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=CEGHIJKLMN [II. subregionalni zavod] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=CEGHIJKLMN [Microwave contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=GHIJKLMN [III. subregionalni zavod] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=CEGHIJKLMN [IARU Region I. VHF Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=C [IARU Region I. UHF Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=EGHIJKLMN [Marconi memorial/A1 Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=C [OK VHF Activity Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=1 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=4 total_method=1 bands=CEGHIJKLMN [FM pohar] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=4 total_method=1 bands=CEGHIJKLMN [OK Easter Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=CEGHIJKLMN [AGCW VHF/UHF Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=1 excbonu=0 excmult=0 exccfm=1 exctype=2 excname=AGCW rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=CE [RSGB M1-type Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=1 excbonu=0 excmult=1 exccfm=1 exctype=2 excname=RSGBDC rstused=1 defrstr=0 dxcbonu=0 dxcmult=1 qsop_method=12 total_method=2 bands=BC [RSGB M2-type Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=1 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=0 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=2 total_method=1 bands=ABCEG [RSGB M3-type Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=1 wwlcfm=1 excused=1 excbonu=0 excmult=1 exccfm=1 exctype=2 excname=RSGBDC rstused=1 defrstr=0 dxcbonu=0 dxcmult=1 qsop_method=12 total_method=2 bands=ACE [RSGB M4-type Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=1 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=0 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=1 qsop_method=2 total_method=2 bands=ABCEK [RSGB M5-type Contest] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=1 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=0 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=17 total_method=2 bands=ABCEK [SSB Liga] pexch= rstused=1 tttype=2 qsoused=0 wwlused=0 qsomult=1 qsoglob=0 qsop_method=1 wwlbonu=0 wwlmult=0 dxcbonu=0 dxcmult=0 excbonu=0 excmult=1 total_method=1 excused=1 exctype=2 excname=OKRES exccfm=0 defrstr=1 bands=V [CQ WW DX Contest] pexch= tttype=4 qsoused=0 qsomult=1 qsoglob=1 wwlused=0 wwlbonu=0 wwlmult=0 wwlcfm=0 excused=1 excbonu=0 excmult=1 exccfm=0 exctype=3 excname=WAZ rstused=1 defrstr=1 dxcbonu=0 dxcmult=1 qsop_method=13 total_method=3 bands=UVWXYZ [CQ WW WPX Contest] pexch= tttype=3 qsoused=1 qsomult=1 qsoglob=1 wwlused=0 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=0 exctype=0 excname= rstused=1 defrstr=1 dxcbonu=0 dxcmult=1 qsop_method=14 total_method=3 bands=UVWXYZ [UKSMG Summer Contest] pexch= tttype=4 qsoused=2 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 excused=1 excbonu=0 excmult=0 exccfm=0 exctype=1 excname=SUMMER excmult=1 rstused=1 defrstr=0 dxcmult=0 qsop_method=12 total_method=1 bands=A [ARRL VHF Contest] pexch= tttype=3 qsoused=0 qsomult=0 qsoglob=1 wwlused=3 wwlbonu=0 wwlmult=1 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=0 exctype=0 excname= rstused=0 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=15 total_method=4 bands=ABCDEFGHIJKLMNOPQ [ARRL Internat. DX Contest] pexch= tttype=2 qsoused=0 qsomult=3 qsoglob=1 wwlused=0 wwlbonu=0 wwlmult=0 wwlcfm=0 excused=1 excbonu=0 excmult=1 exccfm=0 exctype=2 excname=USACA rstused=1 defrstr=1 dxcbonu=0 dxcmult=0 qsop_method=2 total_method=3 bands=UVWXYZ [Championat de France THF] pexch= tttype=1 qsoused=1 qsomult=1 qsoglob=0 wwlused=1 wwlbonu=0 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=16 total_method=1 bands=CEGHIJKLMNOPQ [OK-OM DX Contest - OK stn.] pexch= rstused=1 tttype=3 qsoused=1 wwlused=0 qsomult=1 qsoglob=1 qsop_method=14 wwlbonu=0 wwlmult=0 dxcbonu=0 dxcmult=0 excbonu=0 excmult=1 total_method=3 excused=2 exctype=0 excname=OKRES exccfm=1 defrstr=1 bands=UVWXYZ [Nordic Activity Contest] pexch= tttype=1 qsoused=2 qsomult=1 qsomult_h=2 qsomult_i=3 qsomult_j=4 qsomult_k=5 qsomult_l=6 qsomult_m=7 qsomult_n=8 qsomult_o=9 qsomult_p=10 qsomult_q=11 qsoglob=0 wwlused=1 wwlbonu=500 wwlmult=0 wwlcfm=1 excused=0 excbonu=0 excmult=0 exccfm=1 exctype=0 excname= rstused=1 defrstr=0 dxcbonu=0 dxcmult=0 qsop_method=1 total_method=1 bands=ABCEGHIJKLKMNOPQZ tucnak-4.04/data/tucnakdw0000644000175000017500000003455612422666652012353 00000000000000# 1th row - The official prefix of the DXCC # 2nd row - The list of WWL in the DXCC (separated by a gap). # The first WWL is the most effective one or midlands # or Capital City of DXCC. # 3rd row - The most effective WWL from JN69UO # There is a free row between DXCC's # # The list of DXCC in 'tucnakdw.dat': # 1A 3A 4J 4L 4O 4U1I 4U1V 5B 9A 9H C3 CT3 CT CU DU DL E7 EA6 # EA8 EA9 EA EI ER ES EU F GD GI GJ GM GU GW G HB0 HB # HG HV IS IT9 I JW JX LA LX LY LZ OE OH0 OH OJ0 OK OM ON # OY OZ PA S5 SM SP SV5 SV9 SV TA T7 TF TK UA2 UR UA # YL YO YU Z3 ZA ZB # #F4CIB added K & VE 9Y PJ2 PJ4 YV(partially) IH9 1A JM75 JM76 3A JN33 JN33RR 4J LM29 LM38 LM39 LM48 LM49 LN20 LN21 LN30 LN31 LN40 LN41 LN50 4L LN01 LN02 LN03 LN11 LN12 LN13 LN21 LN22 LN31 LN32 4O JN91 JN92 JN93 KN02 KN03 4U1I JN36 4U1V JN88 4X KM70 KM71 KM72 KM73 KL79 5B KM64 KM65 KM74 KM75 9A JN64 JN65 JN72 JN73 JN74 JN75 JN76 JN82 JN83 JN84 JN85 JN86 JN92 JN94 JN95 JN85MM 9H JM75 JM76 9Y FK90 C3 JN02 CN IL37 IL38 IL47 IL48 IL49 IL57 IL58 IL59 IL69 IL79 IM50 IM51 IM52 IM53 IM60 IM61 IM62 IM63 IM64 IM65 IM70 IM71 IM72 IM73 IM74 IM75 IM80 IM81 IM82 IM83 IM84 IM85 IM92 IM93 IM94 CT3 IM12 IM13 CT IM56 IM57 IM58 IM59 IM66 IM67 IM68 IM69 IN50 IN51 IN52 IN60 IN61 CU HM49 HM58 HM59 HM68 HM69 HM76 HM77 # nejen pk04 DU PK04 DL JN37 JN38 JN39 JN47 JN48 JN49 JN57 JN58 JN59 JN67 JN68 JN69 JO20 JO21 JO30 JO31 JO32 JO33 JO34 JO40 JO41 JO42 JO43 JO44 JO50 JO51 JO52 JO53 JO54 JO60 JO61 JO62 JO63 JO64 JO70 JO71 JO72 JO73 JO74 JO31LE JO43WK E7 JN74 JN75 JN82 JN83 JN84 JN85 JN92 JN93 JN94 JN95 JN94IR EA6 JM08 JM09 JM19 JM29 JN10 JN20 EA8 IL18 IL27 IL28 IL38 IL39 IL28GD EA9 IM75 IM85 EA IM66 IM67 IM68 IM69 IM75 IM76 IM77 IM78 IM79 IM86 IM87 IM88 IM89 IM96 IM97 IM98 IM99 IN51 IN52 IN53 IN60 IN61 IN62 IN63 IN70 IN71 IN72 IN73 IN80 IN81 IN82 IN83 IN90 IN91 IN92 IN93 JM08 JM09 JN00 JN01 JN02 JN11 JN12 EI IO41 IO42 IO43 IO44 IO51 IO52 IO53 IO54 IO55 IO61 IO62 IO63 IO64 IO65 ER KN36 KN37 KN38 KN45 KN46 KN47 KN48 KN56 ES KO07 KO08 KO17 KO18 KO19 KO27 KO28 KO29 KO37 KO38 KO39 KO49 EU KO11 KO12 KO13 KO21 KO22 KO23 KO24 KO31 KO32 KO33 KO34 KO35 KO36 KO41 KO42 KO43 KO44 KO45 KO46 KO51 KO52 KO53 KO54 KO55 KO63 F IN77 IN78 IN86 IN87 IN88 IN92 IN93 IN94 IN95 IN96 IN97 IN98 IN99 JN02 JN03 JN04 JN05 JN06 JN07 JN08 JN09 JN12 JN13 JN14 JN15 JN16 JN17 JN18 JN19 JN23 JN24 JN25 JN26 JN27 JN28 JN29 JN32 JN33 JN34 JN35 JN36 JN37 JN38 JN39 JN48 JO00 JO01 JO10 JO11 JO20 JN38BO GD IO73 IO74 GI IO54 IO63 IO64 IO65 IO74 GJ IN89 GM IO57 IO65 IO66 IO67 IO68 IO74 IO75 IO76 IO77 IO78 IO84 IO85 IO86 IO87 IO88 IO89 IO95 IO97 IO99 IP90 GU IN89 IN89RL GW IO71 IO72 IO73 IO81 IO82 IO83 G IN79 IO70 IO71 IO80 IO81 IO82 IO83 IO84 IO85 IO90 IO91 IO92 IO93 IO94 IO95 JO00 JO01 JO02 JO03 JO01QD HB0 JN47 JN47SD HB JN35 JN36 JN37 JN45 JN46 JN47 JN56 JN47HD HA JN85 JN86 JN87 JN95 JN96 JN97 JN98 KN06 KN07 KN08 KN17 KN18 JN97RV HV JN61 IG9 JM56 IS JM48 JM49 JN40 JN41 IT9 JM67 JM68 JM76 JM77 JM78 I JM77 JM78 JM79 JM87 JM88 JM89 JM99 JN33 JN34 JN35 JN43 JN44 JN45 JN46 JN51 JN52 JN53 JN54 JN55 JN56 JN57 JN60 JN61 JN62 JN63 JN64 JN65 JN66 JN67 JN70 JN71 JN72 JN80 JN81 JN90 JN54XA JW JQ58 JQ59 JQ67 JQ68 JQ69 JQ76 JQ77 JQ78 JQ79 JQ86 JQ87 JQ88 JQ89 JQ97 JQ98 JQ99 KQ07 KQ08 KQ09 KQ17 KQ18 KQ19 KQ27 KQ29 KQ38 KQ39 KQ48 KQ58 JR70 JR80 JR90 KR00 KR10 KR20 KR30 KR40 KR50 KR60 KR80 # ? JX IQ51 K CM86 CM87 CM88 CM89 CM93 CM94 CM95 CM96 CM97 CM98 CM99 CN70 CN71 CN72 CN73 CN74 CN75 CN76 CN77 CN78 CN80 CN81 CN82 CN83 CN84 CN85 CN86 CN87 CN88 CN90 CN91 CN92 CN93 CN94 CN95 CN96 CN97 CN98 DL79 DL88 DL89 DL98 DL99 DM03 DM04 DM05 DM06 DM07 DM08 DM09 DM12 DM13 DM14 DM15 DM16 DM17 DM18 DM19 DM22 DM23 DM24 DM25 DM26 DM27 DM28 DM29 DM31 DM32 DM33 DM34 DM35 DM36 DM37 DM38 DM39 DM41 DM42 DM43 DM44 DM45 DM46 DM47 DM48 DM49 DM51 DM52 DM53 DM54 DM55 DM56 DM57 DM58 DM59 DM61 DM62 DM63 DM64 DM65 DM66 DM67 DM68 DM69 DM70 DM71 DM72 DM73 DM74 DM75 DM76 DM77 DM78 DM79 DM80 DM81 DM82 DM83 DM84 DM85 DM86 DM87 DM88 DM89 DM90 DM91 DM92 DM93 DM94 DM95 DM96 DM97 DM98 DM99 DN00 DN01 DN02 DN03 DN04 DN05 DN06 DN07 DN08 DN10 DN11 DN12 DN13 DN14 DN15 DN16 DN17 DN18 DN20 DN21 DN22 DN23 DN24 DN25 DN26 DN27 DN28 DN30 DN31 DN32 DN33 DN34 DN35 DN36 DN37 DN38 DN40 DN41 DN42 DN43 DN44 DN45 DN46 DN47 DN48 DN50 DN51 DN52 DN53 DN54 DN55 DN56 DN57 DN58 DN60 DN61 DN62 DN63 DN64 DN65 DN66 DN67 DN68 DN70 DN71 DN72 DN73 DN74 DN75 DN76 DN77 DN78 DN80 DN81 DN82 DN83 DN84 DN85 DN86 DN87 DN88 DN90 DN91 DN92 DN93 DN94 DN95 DN96 DN97 DN98 EL06 EL07 EL08 EL09 EL15 EL16 EL17 EL18 EL19 EL28 EL29 EL39 EL49 EL59 EL79 EL86 EL87 EL88 EL89 EL95 EL96 EL97 EL98 EL99 EM00 EM01 EM02 EM03 EM04 EM05 EM06 EM07 EM08 EM09 EM10 EM11 EM12 EM13 EM14 EM15 EM16 EM17 EM18 EM19 EM20 EM21 EM22 EM23 EM24 EM25 EM26 EM27 EM28 EM29 EM30 EM31 EM32 EM33 EM34 EM35 EM36 EM37 EM38 EM39 EM40 EM41 EM42 EM43 EM44 EM45 EM46 EM47 EM48 EM49 EM50 EM51 EM52 EM53 EM54 EM55 EM56 EM57 EM58 EM59 EM60 EM61 EM62 EM63 EM64 EM65 EM66 EM67 EM68 EM69 EM70 EM71 EM72 EM73 EM74 EM75 EM76 EM77 EM78 EM79 EM80 EM81 EM82 EM83 EM84 EM85 EM86 EM87 EM88 EM89 EM90 EM91 EM92 EM93 EM94 EM95 EM96 EM97 EM98 EM99 EN00 EN01 EN02 EN03 EN04 EN05 EN06 EN07 EN08 EN10 EN11 EN12 EN13 EN14 EN15 EN16 EN17 EN18 EN20 EN21 EN22 EN23 EN24 EN25 EN26 EN27 EN28 EN29 EN30 EN31 EN32 EN33 EN34 EN35 EN36 EN37 EN38 EN40 EN41 EN42 EN43 EN44 EN45 EN46 EN47 EN48 EN50 EN51 EN52 EN53 EN54 EN55 EN56 EN57 EN58 EN60 EN61 EN62 EN63 EN64 EN65 EN66 EN67 EN68 EN70 EN71 EN72 EN73 EN74 EN75 EN76 EN77 EN78 EN80 EN81 EN82 EN83 EN84 EN85 EN86 EN90 EN91 EN92 EN93 EN94 EN95 EN96 FM02 FM03 FM04 FM05 FM06 FM07 FM08 FM09 FM13 FM14 FM15 FM16 FM17 FM18 FM19 FM25 FM26 FM27 FM28 FM29 FM39 FN00 FN01 FN02 FN03 FN04 FN05 FN10 FN11 FN12 FN13 FN14 FN20 FN21 FN22 FN23 FN24 FN30 FN31 FN32 FN33 FN34 FN40 FN41 FN42 FN43 FN44 FN45 FN46 FN51 FN52 FN53 FN54 FN55 FN56 FN57 FN64 FN65 FN66 FN67 LA JO28 JO29 JO37 JO38 JO39 JO48 JO49 JO58 JO59 JO69 JP20 JP21 JP22 JP30 JP31 JP32 JP33 JP40 JP41 JP42 JP43 JP44 JP50 JP51 JP52 JP53 JP54 JP55 JP60 JP61 JP62 JP63 JP64 JP65 JP66 JP67 JP68 JP74 JP75 JP76 JP77 JP78 JP79 JP86 JP87 JP88 JP89 JP98 JP99 JQ90 KP08 KP09 KP18 KP19 KP28 KP29 KP39 KP48 KP49 KP59 KQ00 KQ10 KQ20 KQ21 KQ30 KQ31 KQ40 KQ50 LX JN29 JN39 JO20 JO30 JN29VX LY KO05 KO06 KO13 KO14 KO15 KO16 KO23 KO24 KO25 KO26 KO34 KO35 LZ KN11 KN12 KN13 KN14 KN21 KN22 KN23 KN31 KN32 KN33 KN34 KN43 OE JN46 JN47 JN56 JN57 JN66 JN67 JN68 JN76 JN77 JN78 JN86 JN87 JN88 JN88DC JN68PC # ? OH0 JP90 KP00 OH KO19 KO29 KP00 KP01 KP02 KP03 KP08 KP09 KP10 KP11 KP12 KP13 KP14 KP16 KP17 KP18 KP19 KP20 KP21 KP22 KP23 KP24 KP25 KP26 KP27 KP28 KP29 KP30 KP31 KP32 KP33 KP34 KP35 KP36 KP37 KP38 KP39 KP40 KP41 KP42 KP43 KP44 KP45 KP46 KP47 KP48 KP49 KP51 KP52 KP53 KP54 KP55 KQ30 # ? OJ0 JP90 OK JN68 JN69 JN78 JN79 JN88 JN89 JN98 JN99 JO60 JO70 JO71 JO80 JO90 JN89JM JO80IA OM JN87 JN88 JN89 JN97 JN98 JN99 KN08 KN09 KN18 KN19 JN98EP JN88RG ON JN29 JO10 JO11 JO20 JO21 JO30 JO20JU OY IP61 IP62 OZ JO44 JO45 JO46 JO47 JO54 JO55 JO56 JO57 JO64 JO65 JO66 JO74 JO75 PA JO11 JO20 JO21 JO22 JO23 JO30 JO31 JO32 JO33 JO21GV PJ2 FK52 PJ4 FK52 S5 JN65 JN66 JN75 JN76 JN86 JN76KO SM JO57 JO58 JO59 JO65 JO66 JO67 JO68 JO69 JO75 JO76 JO77 JO78 JO79 JO86 JO87 JO88 JO89 JO96 JO97 JO98 JO99 JP53 JP60 JP61 JP62 JP63 JP64 JP70 JP71 JP72 JP73 JP74 JP75 JP76 JP80 JP81 JP82 JP83 JP84 JP85 JP86 JP87 JP88 JP90 JP92 JP93 JP94 JP95 JP96 JP97 JP98 KP03 KP04 KP05 KP06 KP07 KP08 KP09 KP15 KP16 KP17 KP18 KP25 KP26 JO65TM SP JN89 JN99 JO70 JO71 JO72 JO73 JO74 JO80 JO81 JO82 JO83 JO84 JO90 JO91 JO92 JO93 JO94 KN09 KN19 KO00 KO01 KO02 KO03 KO04 KO10 KO11 KO12 KO13 KO14 KO20 JO90FB JO91QF SV5 KM35 KM36 KM45 KM46 SV9 KM15 KM24 KM25 KM34 KM35 SV JM99 KM06 KM07 KM08 KM09 KM16 KM17 KM18 KM19 KM26 KM27 KM28 KM29 KM36 KM37 KM38 KM39 KN00 KN01 KN10 KN11 KN20 KN21 KN30 KN31 TA KM27 KM28 KM29 KM35 KM36 KM37 KM38 KM39 KM46 KM47 KM48 KM49 KM56 KM57 KM58 KM59 KM64 KM65 KM66 KM67 KM68 KM69 KM74 KM75 KM76 KM77 KM78 KM79 KM85 KM86 KM87 KM88 KM89 KM96 KM97 KM98 KM99 KN20 KN30 KN31 KN32 KN40 KN41 KN50 KN51 KN60 KN61 KN62 KN70 KN71 KN72 KN80 KN81 KN90 KN91 LM06 LM07 LM08 LM09 LM17 LM18 LM19 LM26 LM27 LM28 LM29 LN00 LN01 LN10 LN11 LN20 KM69JX # ? T7 JN63 TF HP74 HP75 HP83 HP84 HP85 HP86 HP93 HP94 HP95 HP96 IP03 IP04 IP05 IP06 IP13 IP14 IP15 IP16 IP24 IP25 IP26 IP34 IP35 TK JN41 JN42 JN43 UA2 JO94 KO04 KO05 KO14 KO15 UR KN17 KN18 KN19 KN27 KN28 KN29 KN37 KN38 KN39 KN45 KN46 KN47 KN48 KN49 KN55 KN56 KN57 KN58 KN59 KN64 KN65 KN66 KN67 KN68 KN69 KN74 KN75 KN76 KN77 KN78 KN79 KN84 KN85 KN86 KN87 KN88 KN89 KN96 KN97 KN98 KN99 KO10 KO11 KO20 KO21 KO30 KO31 KO40 KO41 KO50 KO51 KO52 KO60 KO61 KO62 KO70 KO71 KO72 KO80 KO90 LN08 LN09 UA KN84 KN85 KN86 KN89 KN93 KN94 KN95 KN96 KN97 KN98 KN99 KO36 KO37 KO38 KO39 KO45 KO46 KO47 KO48 KO49 KO52 KO53 KO54 KO55 KO56 KO57 KO58 KO62 KO63 KO64 KO65 KO66 KO67 KO68 KO69 KO70 KO71 KO72 KO73 KO74 KO75 KO76 KO77 KO78 KO79 KO80 KO81 KO82 KO83 KO84 KO85 KO86 KO87 KO88 KO89 KO90 KO91 KO92 KO93 KO94 KO95 KO96 KO97 KO98 KO99 LN03 LN04 LN05 LN06 LN07 LN08 LN09 LN12 LN13 LN14 LN15 LN16 LN17 LN18 LN19 LN22 LN23 LN24 LN25 LN26 LN27 LN28 LN29 LN31 LN32 LN33 LN34 LN35 LN36 LN37 LN38 LN39 LN41 LN42 LN43 LN44 LN45 LN46 LN47 LN49 LO00 LO01 LO02 LO03 LO04 LO05 LO06 LO07 LO08 LO09 LO10 LO11 LO12 LO13 LO14 LO15 LO16 LO17 LO18 LO19 LO20 LO21 LO22 LO23 LO24 LO25 LO26 LO27 LO28 LO29 LO90 LO91 LO92 LO93 LO94 LO95 LO96 LO97 LO98 LO99 VE BP90 BP91 BP92 BP93 BP94 BP95 BP96 BP97 BP98 BP99 CN69 CN78 CN79 CN88 CN89 CN99 CO09 CO19 CO29 CO32 CO33 CO34 CO37 CO38 CO39 CO42 CO43 CO44 CO45 CO46 CO47 CO48 CO49 CO50 CO51 CO52 CO53 CO54 CO55 CO56 CO57 CO58 CO59 CO60 CO61 CO62 CO63 CO64 CO65 CO66 CO67 CO68 CO69 CO70 CO71 CO72 CO73 CO74 CO75 CO76 CO77 CO78 CO79 CO80 CO81 CO82 CO83 CO84 CO85 CO86 CO87 CO88 CO89 CO90 CO91 CO92 CO93 CO94 CO95 CO96 CO97 CO98 CO99 CP00 CP01 CP02 CP03 CP04 CP05 CP06 CP07 CP08 CP09 CP10 CP11 CP12 CP13 CP14 CP15 CP16 CP17 CP18 CP19 CP20 CP21 CP22 CP23 CP24 CP25 CP26 CP27 CP28 CP29 CP30 CP31 CP32 CP33 CP34 CP35 CP36 CP37 CP38 CP39 CP40 CP41 CP42 CP43 CP44 CP45 CP46 CP47 CP48 CP49 CP50 CP51 CP52 CP53 CP54 CP55 CP56 CP57 CP58 CP59 CP60 CP61 CP62 CP63 CP64 CP65 CP66 CP67 CP68 CP69 CP70 CP71 CP72 CP73 CP74 CP75 CP76 CP77 CP78 CP79 CP80 CP81 CP82 CP83 CP84 CP85 CP86 CP87 CP88 CP89 CP90 CP91 CP92 CP93 CP94 CP95 CP96 CP97 CP98 CP99 CQ40 CQ50 CQ60 CQ71 CQ72 CQ73 CQ74 CQ81 CQ82 CQ83 CQ84 CQ91 CQ92 CQ93 CQ94 DN09 DN19 DN29 DN39 DN49 DN59 DN69 DN79 DN89 DN99 DO00 DO01 DO02 DO03 DO04 DO05 DO06 DO07 DO08 DO09 DO10 DO11 DO12 DO13 DO14 DO15 DO16 DO17 DO18 DO19 DO20 DO21 DO22 DO23 DO24 DO25 DO26 DO27 DO28 DO29 DO30 DO31 DO32 DO33 DO34 DO35 DO36 DO37 DO38 DO39 DO40 DO41 DO42 DO43 DO44 DO45 DO46 DO47 DO48 DO49 DO50 DO51 DO52 DO53 DO54 DO55 DO56 DO57 DO58 DO59 DO60 DO61 DO62 DO63 DO64 DO65 DO66 DO67 DO68 DO69 DO70 DO71 DO72 DO73 DO74 DO75 DO76 DO77 DO78 DO79 DO80 DO81 DO82 DO83 DO84 DO85 DO86 DO87 DO88 DO89 DO90 DO91 DO92 DO93 DO94 DO95 DO96 DO97 DO98 DO99 DP00 DP01 DP02 DP03 DP04 DP05 DP06 DP07 DP08 DP09 DP10 DP11 DP12 DP13 DP14 DP15 DP16 DP17 DP18 DP19 DP20 DP21 DP22 DP23 DP24 DP25 DP26 DP27 DP28 DP29 DP30 DP31 DP32 DP33 DP34 DP35 DP36 DP37 DP38 DP39 DP40 DP41 DP42 DP43 DP44 DP45 DP46 DP47 DP48 DP49 DP50 DP51 DP52 DP53 DP54 DP55 DP56 DP57 DP58 DP59 DP60 DP61 DP62 DP63 DP64 DP65 DP66 DP67 DP68 DP69 DP70 DP71 DP72 DP73 DP74 DP75 DP76 DP77 DP78 DP79 DP80 DP81 DP82 DP83 DP84 DP85 DP86 DP87 DP88 DP89 DP90 DP91 DP92 DP93 DP94 DP95 DP96 DP97 DP98 DP99 DQ00 DQ01 DQ02 DQ03 DQ04 DQ10 DQ11 DQ12 DQ13 DQ14 DQ20 DQ21 DQ22 DQ23 DQ24 DQ30 DQ31 DQ32 DQ33 DQ34 DQ40 DQ41 DQ42 DQ43 DQ44 DQ50 DQ51 DQ52 DQ53 DQ54 DQ60 DQ61 DQ62 DQ63 DQ64 DQ70 DQ71 DQ72 DQ73 DQ74 DQ80 DQ81 DQ82 DQ83 DQ84 DQ90 DQ91 DQ92 DQ93 DQ94 EN09 EN19 EN28 EN29 EN38 EN39 EN48 EN49 EN58 EN59 EN68 EN69 EN76 EN77 EN78 EN79 EN82 EN83 EN85 EN86 EN87 EN88 EN89 EN92 EN93 EN94 EN95 EN96 EN97 EN98 EN99 EO00 EO01 EO02 EO03 EO04 EO05 EO06 EO07 EO08 EO09 EO10 EO11 EO12 EO13 EO14 EO15 EO16 EO17 EO18 EO19 EO20 EO21 EO22 EO23 EO24 EO25 EO26 EO27 EO28 EO29 EO30 EO31 EO32 EO33 EO34 EO35 EO36 EO37 EO38 EO40 EO41 EO42 EO43 EO44 EO45 EO46 EO47 EO50 EO51 EO52 EO53 EO54 EO55 EO56 EO57 EO60 EO61 EO62 EO63 EO64 EO65 EO66 EO70 EO71 EO72 EO73 EO74 EO75 EO80 EO81 EO82 EO83 EO84 EO85 EO90 EO91 EO92 EP00 EP01 EP02 EP03 EP04 EP05 EP06 EP07 EP08 EP09 EP10 EP11 EP12 EP13 EP14 EP15 EP16 EP17 EP18 EP19 EP20 EP21 EP22 EP23 EP24 EP25 EP26 EP27 EP28 EP29 EP30 EP31 EP32 EP33 EP34 EP35 EP36 EP37 EP38 EP39 EP40 EP41 EP42 EP43 EP44 EP45 EP46 EP47 EP48 EP49 EP50 EP51 EP52 EP53 EP54 EP55 EP56 EP57 EP58 EP59 EP60 EP61 EP62 EP63 EP64 EP65 EP66 EP67 EP68 EP69 EP70 EP71 EP72 EP73 EP74 EP75 EP76 EP77 EP78 EP79 EP80 EP81 EP82 EP83 EP84 EP85 EP86 EP87 EP88 EP89 EP90 EP91 EP92 EP93 EP94 EP95 EP96 EP97 EP98 EP99 EQ00 EQ01 EQ02 EQ03 EQ04 EQ10 EQ11 EQ12 EQ13 EQ14 EQ20 EQ21 EQ22 EQ23 EQ24 EQ30 EQ31 EQ32 EQ33 EQ34 EQ40 EQ41 EQ42 EQ43 EQ44 EQ50 EQ51 EQ52 EQ53 EQ54 EQ60 EQ61 EQ62 EQ63 EQ64 EQ70 EQ71 EQ72 EQ73 EQ74 EQ80 EQ81 EQ82 EQ83 EQ84 EQ90 EQ91 EQ92 EQ93 EQ94 FN02 FN03 FN04 FN05 FN06 FN07 FN08 FN09 FN13 FN14 FN15 FN16 FN17 FN18 FN19 FN24 FN25 FN26 FN27 FN28 FN29 FN34 FN35 FN36 FN37 FN38 FN39 FN44 FN45 FN46 FN47 FN48 FN49 FN56 FN57 FN58 FN59 FN65 FN66 FN67 FN68 FN69 FN73 FN74 FN75 FN76 FN77 FN78 FN79 FN84 FN85 FN86 FN89 FN94 FN95 FN96 FN99 FO01 FO02 FO03 FO04 FO05 FO09 FO10 FO11 FO12 FO13 FO14 FO15 FO17 FO18 FO19 FO20 FO21 FO22 FO24 FO25 FO26 FO27 FO28 FO29 FO30 FO31 FO32 FO33 FO34 FO35 FO36 FO37 FO38 FO39 FO40 FO41 FO42 FO43 FO44 FO45 FO46 FO47 FO48 FO49 FO50 FO51 FO52 FO53 FO54 FO55 FO56 FO57 FO58 FO59 FO61 FO62 FO63 FO64 FO65 FO66 FO67 FO68 FO69 FO70 FO71 FO72 FO73 FO74 FO75 FO76 FO77 FO84 FO85 FO86 FO87 FO96 FO97 FQ00 FQ01 FQ02 FQ10 FQ11 FQ12 FQ20 FQ21 FQ22 FQ30 FQ31 FQ40 FQ41 FQ50 FQ60 GN07 GN08 GN09 GN17 GN18 GN19 GN27 GN28 GN29 GN36 GN37 GN38 GN39 GO00 GO01 GO02 GO03 GO04 GO05 GO10 GO11 GO12 GO13 GO14 GO20 GO21 GO22 GO23 VO GN07 GN08 GN09 GN17 GN18 GN19 GN27 GN28 GN29 GN36 GN37 GN38 GN39 GO00 GO01 GO02 GO03 GO04 GO05 GO10 GO11 GO12 GO13 GO14 GO20 GO21 GO22 GO23 YL KO06 KO07 KO16 KO17 KO25 KO26 KO27 KO35 KO36 KO37 KO46 YO KN04 KN05 KN06 KN07 KN13 KN14 KN15 KN16 KN17 KN18 KN23 KN24 KN25 KN26 KN27 KN33 KN34 KN35 KN36 KN37 KN38 KN43 KN44 KN45 KN46 KN05PS YU JN93 JN94 JN95 JN96 KN02 KN03 KN04 KN05 KN06 KN12 KN13 KN14 KN04IQ YV FK80 Z3 KN00 KN01 KN02 KN11 KN12 ZA JM99 JN90 JN91 JN92 KM09 KN00 KN01 KN02 ZB IM76 ZC4: KM65 tucnak-4.04/data/tucnakv64.png0000644000175000017500000001166211277513163013127 00000000000000PNG  IHDR@@iqbKGDC pHYs  tIME  |?IDATxyl\uwyo gpER(JDKdYaRɶKuҤ8:M"E ZimRINرc%v/X(J"UCCry˽ I2iKA.@bgXmif7\/?o]lJ?{o;rcfۻN[RS:zJ,[o)'O~Iymur&HҀ:u :p,\|w@_v}ߍͼgL&N:|zfBQ|ݟ}I2tʖ_ׯ|w,9hv7O@MN@9<ۆbȧR>k{dӘ.{g%{wA)|"#[eW]48ܳpvxjh[W*B>߷H`B$  "zКZXe?y^r(ƠZZkjFf w~+#ۋ?2w[: ~!@>>ё۟(pr/g:;A$hB[>kx}/ՏoM/G'nGa /}>XҽG-Z V[ L%#핏=9MQsb1'gSh" O6C?=4(ց%muuș}bO+pcة5ce 5k\`v( X0Q[l2놅Di=Ə.a3ʘ4%"W_ ƭ(>09`2m dTGkGzk hݽy̆aҲ`BdK.2%>avv#ֳ1(M<].H-'nalX /?U leǃR/9)@}K@"0]+7\u&@H 5B'^~|vf 3 0@a?wt/:}I@u[7m}晧7_ )^m6$s*8I; FK%\-(h,fƵ+Z 0i<hĎmP]BQ<'2\pI(>N[5{u~{ 13goN-a6Uq 2$@{\8<,|B/[ely 81#Xum+A"08 !Bǩ? WuH4wA.+oJ2-QJ0=Ĕ6!}~(@.9ZfPolKS(˾ N@N:(#kl 3jI+J.8/ELkÔX)cm+FJ$J(:1X ŪTBU,֖Q8/R3U!noEfFN 8?\ 1Z~$1$1J"<` }k5jV!+BFD@5 0`&B aBJ 0  Lp/,SJ!k:::NpT7iRsyc>p_H+wa16l؀d2 &Lyi XB8FuuubӦP7)Ba8c~Eb!kyc\$6^qVJ#j B <(lcE 3zjju]`0帞D`fq"=b,`;chۼi#2!޵Bbp$p8l24ryUK^kƛ^ V&A.WqB.\ Ӵ.JdfwI)m۶ =0wBjbBs465!TUc|VBd q\tӍ$X,a`4 DrleY @:gD?Eou_Q8y @k 0ށD"Q-8EHE&D"% 6 +7w\0Bޏ1hM ADò RC(XuI _?(jiiphhhZX)O^} BTWĢƦ |xWd"B8ڲ,~7֝;!fb0:6<] B"AJ !G#cKq'5c¢E6|ݫ>^4o.{ظ@R%aR8sf??o?\vFz:}^J@ay t. 3ήB6MS,nU`v"^O~ ˖u¶mdYR)H)+{9k甞r>,R l|N  \;R )P8u, v4 QS#9=d<y+V<6<;oψX%6Yٳgg^466gΤw>J9\!d*C᜿iss!`+7BZcVE[ww7VFjbI[, @J` 104ipp\0R`( AGGHkB p˖.ŢFD"(R8]*ĉ*Hy^a^D@]SSSw(R)dYlہeYH9JO PNټa4 y?އcJgfj6X>ˇI E` DiZcw1 `~0jޱcGcǎ8Z"9e~Ə,<T.@y L oX-Ģ1(XԴ۷oǺX"CSS#4il6q9¯ >Vj\)oL)5BV Cr{G! kǡ\J-F߇Hdfqh"C!\rKH&|y'>;rJp)B  #ˁ OU8e3p=&2QzRQя=Zddfguughmdsx/.XF , s!H^Z =܃d4$c<@JrY"[,K`zs%>WٶSIÈB,)2}Uȫ11 3xmK@k vzB"*0V&\B|Atv:a(m0U\- )qr6KI{2(K8Di89(? TMA:Хw|"#@pP("eY82,BÇ!1yGR{0BLc!CM\Ji!*+"\GA@, ^2|Z5KiqVHG:G3M¡Cy>u[{]Ѯݾ*|M-E) P\(1rk+eW͵ŕB7܋}yǰ7f֪uJ97@FcUN"$kR p|UFDZEΠ,^۳?~e9rY?v)]ND?Ol4"!߄4|-sJkx0T1k+oybTW' L'wϰAsY2H#yJ~\z."4=V/v5w:*n')VRsDzǎY/f2ZV_Wh4`(҄\tz v6 96NNd0jug<{۱]MDx/Qtó)AS4ZONCÅg:ʫ0rm\ytl$! BL~ǰa}-uq FQCoxPTsD4yxd^|rjٽ)K~]?<=]r:c㬆3(o֦Dt΍5݋ECV0N)v ɦS0[PΝgmdTi$byG2s'u`+ %7w]~CM㒫"MM1068ǁaPʆkñcG6:ɴn3j{oѶRd:3̛0uz2 w ρ)2pcnDulYKL摛:]<Lz:t=;H%`2r M)A\E|@Ua,[N_pĂ&LerIFg^:[ә V}?l/7O~39d(E ê2HYǝ<>],^fIENDB`tucnak-4.04/data/update_eee.sh0000755000175000017500000000050612133241455013220 00000000000000#!/bin/sh echo "*** This is upgrade script for Tucnak" echo "*** Please follow instructions bellow" echo "" cd $HOME echo "tar xvzf '$2' tucnak/tucnak" tar xvzf '$2' tucnak/tucnak if test x"$?" = x"0" ; then echo "*** Seems OK. Please restart Tucnak" exit 0 else echo "*** tar returns $?, giving up" fi tucnak-4.04/data/titlpage.html0000644000175000017500000001572311277513163013275 00000000000000 $PCall - $TName

Contest log

Category: $PSectName
Sheet Nr. 1 of $NoOfPages Pg

Band: $PBand
WW-Locator: $PWWLo

Call used: $PCall
Contest: $TDate - $TName
Contest QTH: $PAddr1 $Paddr2
First operator name: $RName
Call: $RCall

Address: $RAddr1 $RAddr2 $RPoCo $RCity
Other operators: $MOpe1 $MOpe2
Transmitter: $TXEq
Output: $SPowe

Reciever: $RXEq
Preamp: $SPreamp

Antennas: $RAnte
AGL;ASL: $SAntH

Sum of QSO 's: $CQSOs
Average km/QSO $CAvg

Best DX - km : $CODXQRB
Call: $CODXCall Locator: $CODXLoc

Countries worked: $CDXCCs
Total sum of points: $CToSc
Declaration:
I hereby certify that this station was operated within the rules and spirit of the contest and within the terms of the license.
Date:
First op. signature:

Contest manager:
Call:
Locator:

Section:
Claimed score:

QSOs:
Correction:

Final score:

tucnak-4.04/data/home32.png0000644000175000017500000000146212055104352012363 00000000000000PNG  IHDR sbKGD̿ pHYs  tIME  IDATHYHTa8dQF\-eADKABԋEIdX>DEоGaYT(m36wTFAs1m==LַyY|U_Eu=1ĐB"פy-uW3р<pm(xG<1 ]%gɟ*g][껥z[_%=Fx1]n046ݛ'i6iv96'.`Ou˛ Tm2+o H(sM[4v)&ᔷrwj 9sHo$6p5׊Qjs|]~ xb*P2(]VvƛD6=pP鍊{HL* ѣ $k} ,&dʀ^oYtCu Z0bXVp(Fh@5 @z 9ĝ)[º%!0>SFnU!8:wﯯEygHcIENDB`tucnak-4.04/data/cty.dat0000644000175000017500000023303212026200621012043 00000000000000Sov Mil Order of Malta: 15: 28: EU: 41.90: -12.43: -1.0: 1A: 1A; Spratly Islands: 26: 50: AS: 9.88: -114.23: -8.0: 1S: 1S,9M0,BV9S,=9M4SLL; Monaco: 14: 27: EU: 43.73: -7.40: -1.0: 3A: 3A; Agalega & St. Brandon: 39: 53: AF: -10.45: -56.67: -4.0: 3B6: 3B6,3B7; Mauritius: 39: 53: AF: -20.35: -57.50: -4.0: 3B8: 3B8; Rodriguez Island: 39: 53: AF: -19.70: -63.42: -4.0: 3B9: 3B9; Equatorial Guinea: 36: 47: AF: 1.70: -10.33: -1.0: 3C: 3C; Annobon Island: 36: 52: AF: -1.43: -5.62: -1.0: 3C0: 3C0; Fiji: 32: 56: OC: -17.78: -177.92: -12.0: 3D2: 3D2; Conway Reef: 32: 56: OC: -22.00: -175.00: -12.0: 3D2/c: =3D2C; Rotuma Island: 32: 56: OC: -12.48: -177.08: -12.0: 3D2/r: =3D2RI; Swaziland: 38: 57: AF: -26.65: -31.48: -2.0: 3DA: 3DA; Tunisia: 33: 37: AF: 35.40: -9.32: -1.0: 3V: 3V,TS; Vietnam: 26: 49: AS: 15.80: -107.90: -7.0: 3W: 3W,XV; Guinea: 35: 46: AF: 11.00: 10.68: 0.0: 3X: 3X; Bouvet: 38: 67: AF: -54.42: -3.38: -1.0: 3Y/b: =3Y0E; Peter 1 Island: 12: 72: SA: -68.77: 90.58: 4.0: 3Y/p: =3Y0X; Azerbaijan: 21: 29: AS: 40.45: -47.37: -4.0: 4J: 4J,4K; Georgia: 21: 29: AS: 42.00: -45.00: -4.0: 4L: 4L,UF6V; Montenegro: 15: 28: EU: 42.50: -19.28: -1.0: 4O: 4O; Sri Lanka: 22: 41: AS: 7.60: -80.70: -5.5: 4S: 4P,4Q,4R,4S; ITU HQ: 14: 28: EU: 46.17: -6.05: -1.0: 4U1I: 4U0I,4U1I,4U2I,4U3I,4U4I,4U5I,4U6I,4U7I,4U8I,4U9I,=4U1WRC; United Nations HQ: 05: 08: NA: 40.75: 73.97: 5.0: 4U1U: 4U1U; Vienna Intl Ctr: 15: 28: EU: 48.20: -16.30: -1.0: *4U1V: 4U1V; Timor - Leste: 28: 54: OC: -8.80: -126.05: -9.0: 4W: 4W; Israel: 20: 39: AS: 31.32: -34.82: -2.0: 4X: 4X,4Z; Libya: 34: 38: AF: 27.20: -16.60: -2.0: 5A: 5A; Cyprus: 20: 39: AS: 35.00: -33.00: -2.0: 5B: 5B,C4,H2,P3; Tanzania: 37: 53: AF: -5.75: -33.92: -3.0: 5H: 5H,5I; Nigeria: 35: 46: AF: 9.87: -7.55: -1.0: 5N: 5N,5O; Madagascar: 39: 53: AF: -19.00: -46.58: -3.0: 5R: 5R,5S,6X; Mauritania: 35: 46: AF: 20.60: 10.50: 0.0: 5T: 5T; Niger: 35: 46: AF: 17.63: -9.43: -1.0: 5U: 5U; Togo: 35: 46: AF: 8.40: -1.28: 0.0: 5V: 5V; Samoa: 32: 62: OC: -13.93: 171.70: -13.0: 5W: 5W; Uganda: 37: 48: AF: 1.92: -32.60: -3.0: 5X: 5X; Kenya: 37: 48: AF: 0.32: -38.15: -3.0: 5Z: 5Y,5Z; Senegal: 35: 46: AF: 15.20: 14.63: 0.0: 6W: 6V,6W; Jamaica: 08: 11: NA: 18.20: 77.47: 5.0: 6Y: 6Y; Yemen: 21: 39: AS: 15.65: -48.12: -3.0: 7O: 7O; Lesotho: 38: 57: AF: -29.22: -27.88: -2.0: 7P: 7P; Malawi: 37: 53: AF: -14.00: -34.00: -2.0: 7Q: 7Q; Algeria: 33: 37: AF: 28.00: -2.00: -1.0: 7X: 7R,7T,7U,7V,7W,7X,7Y; Barbados: 08: 11: NA: 13.18: 59.53: 4.0: 8P: 8P; Maldives: 22: 41: AS: 4.15: -73.45: -5.0: 8Q: 8Q; Guyana: 09: 12: SA: 6.02: 59.45: 4.0: 8R: 8R; Croatia: 15: 28: EU: 45.18: -15.30: -1.0: 9A: 9A,=VERSION; Ghana: 35: 46: AF: 7.70: 1.57: 0.0: 9G: 9G; Malta: 15: 28: EU: 35.88: -14.42: -1.0: 9H: 9H; Zambia: 36: 53: AF: -14.22: -26.73: -2.0: 9J: 9I,9J; Kuwait: 21: 39: AS: 29.38: -47.38: -3.0: 9K: 9K,NLD; Sierra Leone: 35: 46: AF: 8.50: 13.25: 0.0: 9L: 9L; West Malaysia: 28: 54: AS: 3.95: -102.23: -8.0: 9M2: 9M2,9M4,9W2,9W4,=9M8DX/2; East Malaysia: 28: 54: OC: 2.68: -113.32: -8.0: 9M6: 9M6,9M8,9M9,9W6,9W8,=9M4SAB; Nepal: 22: 42: AS: 27.70: -85.33: -5.75: 9N: 9N; Dem. Rep. of the Congo: 36: 52: AF: -3.12: -23.03: -1.0: 9Q: 9O,9P,9Q,9R,9S,9T; Burundi: 36: 52: AF: -3.17: -29.78: -2.0: 9U: 9U; Singapore: 28: 54: AS: 1.37: -103.78: -8.0: 9V: 9V,S6; Rwanda: 36: 52: AF: -1.75: -29.82: -2.0: 9X: 9X; Trinidad & Tobago: 09: 11: SA: 10.38: 61.28: 4.0: 9Y: 9Y,9Z; Botswana: 38: 57: AF: -22.00: -24.00: -2.0: A2: 8O,A2; Tonga: 32: 62: OC: -21.22: 175.13: -13.0: A3: A3; Oman: 21: 39: AS: 23.60: -58.55: -4.0: A4: A4; Bhutan: 22: 41: AS: 27.40: -90.18: -6.0: A5: A5; United Arab Emirates: 21: 39: AS: 24.00: -54.00: -4.0: A6: A6; Qatar: 21: 39: AS: 25.25: -51.13: -3.0: A7: A7; Bahrain: 21: 39: AS: 26.03: -50.53: -3.0: A9: A9; Pakistan: 21: 41: AS: 30.00: -70.00: -5.0: AP: 6P,6Q,6R,6S,AP,AQ,AR,AS; Scarborough Reef: 27: 50: AS: 15.08: -117.72: -8.0: BS7: =BS7H; Taiwan: 24: 44: AS: 23.72: -120.88: -8.0: BV: BM,BN,BO,BP,BQ,BU,BV,BW,BX; Pratas Island: 24: 44: AS: 20.70: -116.70: -8.0: BV9P: BM9P,BN9P,BO9P,BP9P,BQ9P,BU9P,BV9P,BW9P,BX9P; China: 24: 44: AS: 36.00: -102.00: -8.0: BY: 3H,3H0(23)[42],3H9(23)[43],3I,3I0(23)[42],3I9(23)[43],3J,3J0(23)[42], 3J9(23)[43],3K,3K0(23)[42],3K9(23)[43],3L,3L0(23)[42],3L9(23)[43],3M, 3M0(23)[42],3M9(23)[43],3N,3N0(23)[42],3N9(23)[43],3O,3O0(23)[42], 3O9(23)[43],3P,3P0(23)[42],3P9(23)[43],3Q,3Q0(23)[42],3Q9(23)[43],3R, 3R0(23)[42],3R9(23)[43],3S,3S0(23)[42],3S9(23)[43],3T,3T0(23)[42], 3T9(23)[43],3U,3U0(23)[42],3U9(23)[43],B0(23)[42],B2,B3,B4,B5,B6,B7,B8, B9(23)[43],BA,BA0(23)[42],BA9(23)[43],BD,BD0(23)[42],BD9(23)[43],BG, BG0(23)[42],BG9(23)[43],BH,BH0(23)[42],BH9(23)[43],BI,BJ,BJ0(23)[42], BJ9(23)[43],BL,BL0(23)[42],BL9(23)[43],BT,BT0(23)[42],BT9(23)[43],BY, BY0(23)[42],BY9(23)[43],BZ,BZ0(23)[42],BZ9(23)[43],XS,XS0(23)[42], XS9(23)[43],B1,B2A[33],B2B[33],B2C[33],B2D[33],B2E[33],B2F[33],B2G[33], B2H[33],B2I[33],B2J[33],B2K[33],B2L[33],B2M[33],B2N[33],B2O[33],B2P[33], B3G(23)[33],B3H(23)[33],B3I(23)[33],B3J(23)[33],B3K(23)[33],B3L(23)[33], B6Q[43],B6R[43],B6S[43],B6T[43],B6U[43],B6V[43],B6W[43],B6X[43],B7A[43], B7B[43],B7C[43],B7D[43],B7E[43],B7F[43],B7G[43],B7H[43],B7Q[43],B7R[43], B7S[43],B7T[43],B7U[43],B7V[43],B7W[43],B7X[43],B8A[43],B8B[43],B8C[43], B8D[43],B8E[43],B8F[43],B8G[43],B8H[43],B8I[43],B8J[43],B8K[43],B8L[43], B8M[43],B8N[43],B8O[43],B8P[43],B8Q[43],B8R[43],B8S[43],B8T[43],B8U[43], B8V[43],B8W[43],B8X[43],B9A(24)[43],B9B(24)[43],B9C(24)[43],B9D(24)[43], B9E(24)[43],B9F(24)[43],B9S(23)[42],B9T(23)[42],B9U(23)[42],B9V(23)[42], B9W(23)[42],B9X(23)[42],BA2A[33],BA2B[33],BA2C[33],BA2D[33],BA2E[33], BA2F[33],BA2G[33],BA2H[33],BA2I[33],BA2J[33],BA2K[33],BA2L[33],BA2M[33], BA2N[33],BA2O[33],BA2P[33],BA3G(23)[33],BA3H(23)[33],BA3I(23)[33], BA3J(23)[33],BA3K(23)[33],BA3L(23)[33],BA6Q[43],BA6R[43],BA6S[43], BA6T[43],BA6U[43],BA6V[43],BA6W[43],BA6X[43],BA7A[43],BA7B[43],BA7C[43], BA7D[43],BA7E[43],BA7F[43],BA7G[43],BA7H[43],BA7Q[43],BA7R[43],BA7S[43], BA7T[43],BA7U[43],BA7V[43],BA7W[43],BA7X[43],BA8A[43],BA8B[43],BA8C[43], BA8D[43],BA8E[43],BA8F[43],BA8G[43],BA8H[43],BA8I[43],BA8J[43],BA8K[43], BA8L[43],BA8M[43],BA8N[43],BA8O[43],BA8P[43],BA8Q[43],BA8R[43],BA8S[43], BA8T[43],BA8U[43],BA8V[43],BA8W[43],BA8X[43],BA9A(24)[43],BA9B(24)[43], BA9C(24)[43],BA9D(24)[43],BA9E(24)[43],BA9F(24)[43],BA9S(23)[42], BA9T(23)[42],BA9U(23)[42],BA9V(23)[42],BA9W(23)[42],BA9X(23)[42],BD2A[33], BD2B[33],BD2C[33],BD2D[33],BD2E[33],BD2F[33],BD2G[33],BD2H[33],BD2I[33], BD2J[33],BD2K[33],BD2L[33],BD2M[33],BD2N[33],BD2O[33],BD2P[33], BD3G(23)[33],BD3H(23)[33],BD3I(23)[33],BD3J(23)[33],BD3K(23)[33], BD3L(23)[33],BD6Q[43],BD6R[43],BD6S[43],BD6T[43],BD6U[43],BD6V[43], BD6W[43],BD6X[43],BD7A[43],BD7B[43],BD7C[43],BD7D[43],BD7E[43],BD7F[43], BD7G[43],BD7H[43],BD7Q[43],BD7R[43],BD7S[43],BD7T[43],BD7U[43],BD7V[43], BD7W[43],BD7X[43],BD8A[43],BD8B[43],BD8C[43],BD8D[43],BD8E[43],BD8F[43], BD8G[43],BD8H[43],BD8I[43],BD8J[43],BD8K[43],BD8L[43],BD8M[43],BD8N[43], BD8O[43],BD8P[43],BD8Q[43],BD8R[43],BD8S[43],BD8T[43],BD8U[43],BD8V[43], BD8W[43],BD8X[43],BD9A(24)[43],BD9B(24)[43],BD9C(24)[43],BD9D(24)[43], BD9E(24)[43],BD9F(24)[43],BD9S(23)[42],BD9T(23)[42],BD9U(23)[42], BD9V(23)[42],BD9W(23)[42],BD9X(23)[42],BG2A[33],BG2B[33],BG2C[33], BG2D[33],BG2E[33],BG2F[33],BG2G[33],BG2H[33],BG2I[33],BG2J[33],BG2K[33], BG2L[33],BG2M[33],BG2N[33],BG2O[33],BG2P[33],BG3G(23)[33],BG3H(23)[33], BG3I(23)[33],BG3J(23)[33],BG3K(23)[33],BG3L(23)[33],BG6Q[43],BG6R[43], BG6S[43],BG6T[43],BG6U[43],BG6V[43],BG6W[43],BG6X[43],BG7A[43],BG7B[43], BG7C[43],BG7D[43],BG7E[43],BG7F[43],BG7G[43],BG7H[43],BG7Q[43],BG7R[43], BG7S[43],BG7T[43],BG7U[43],BG7V[43],BG7W[43],BG7X[43],BG8A[43],BG8B[43], BG8C[43],BG8D[43],BG8E[43],BG8F[43],BG8G[43],BG8H[43],BG8I[43],BG8J[43], BG8K[43],BG8L[43],BG8M[43],BG8N[43],BG8O[43],BG8P[43],BG8Q[43],BG8R[43], BG8S[43],BG8T[43],BG8U[43],BG8V[43],BG8W[43],BG8X[43],BG9A(24)[43], BG9B(24)[43],BG9C(24)[43],BG9D(24)[43],BG9E(24)[43],BG9F(24)[43], BG9S(23)[42],BG9T(23)[42],BG9U(23)[42],BG9V(23)[42],BG9W(23)[42], BG9X(23)[42],BH2A[33],BH2B[33],BH2C[33],BH2D[33],BH2E[33],BH2F[33], BH2G[33],BH2H[33],BH2I[33],BH2J[33],BH2K[33],BH2L[33],BH2M[33],BH2N[33], BH2O[33],BH2P[33],BH3G(23)[33],BH3H(23)[33],BH3I(23)[33],BH3J(23)[33], BH3K(23)[33],BH3L(23)[33],BH6Q[43],BH6R[43],BH6S[43],BH6T[43],BH6U[43], BH6V[43],BH6W[43],BH6X[43],BH7A[43],BH7B[43],BH7C[43],BH7D[43],BH7E[43], BH7F[43],BH7G[43],BH7H[43],BH7Q[43],BH7R[43],BH7S[43],BH7T[43],BH7U[43], BH7V[43],BH7W[43],BH7X[43],BH8A[43],BH8B[43],BH8C[43],BH8D[43],BH8E[43], BH8F[43],BH8G[43],BH8H[43],BH8I[43],BH8J[43],BH8K[43],BH8L[43],BH8M[43], BH8N[43],BH8O[43],BH8P[43],BH8Q[43],BH8R[43],BH8S[43],BH8T[43],BH8U[43], BH8V[43],BH8W[43],BH8X[43],BH9A(24)[43],BH9B(24)[43],BH9C(24)[43], BH9D(24)[43],BH9E(24)[43],BH9F(24)[43],BH9S(23)[42],BH9T(23)[42], BH9U(23)[42],BH9V(23)[42],BH9W(23)[42],BH9X(23)[42],BJ2A[33],BJ2B[33], BJ2C[33],BJ2D[33],BJ2E[33],BJ2F[33],BJ2G[33],BJ2H[33],BJ2I[33],BJ2J[33], BJ2K[33],BJ2L[33],BJ2M[33],BJ2N[33],BJ2O[33],BJ2P[33],BJ3G(23)[33], BJ3H(23)[33],BJ3I(23)[33],BJ3J(23)[33],BJ3K(23)[33],BJ3L(23)[33],BJ6Q[43], BJ6R[43],BJ6S[43],BJ6T[43],BJ6U[43],BJ6V[43],BJ6W[43],BJ6X[43],BJ7A[43], BJ7B[43],BJ7C[43],BJ7D[43],BJ7E[43],BJ7F[43],BJ7G[43],BJ7H[43],BJ7Q[43], BJ7R[43],BJ7S[43],BJ7T[43],BJ7U[43],BJ7V[43],BJ7W[43],BJ7X[43],BJ8A[43], BJ8B[43],BJ8C[43],BJ8D[43],BJ8E[43],BJ8F[43],BJ8G[43],BJ8H[43],BJ8I[43], BJ8J[43],BJ8K[43],BJ8L[43],BJ8M[43],BJ8N[43],BJ8O[43],BJ8P[43],BJ8Q[43], BJ8R[43],BJ8S[43],BJ8T[43],BJ8U[43],BJ8V[43],BJ8W[43],BJ8X[43], BJ9A(24)[43],BJ9B(24)[43],BJ9C(24)[43],BJ9D(24)[43],BJ9E(24)[43], BJ9F(24)[43],BJ9S(23)[42],BJ9T(23)[42],BJ9U(23)[42],BJ9V(23)[42], BJ9W(23)[42],BJ9X(23)[42],BL2A[33],BL2B[33],BL2C[33],BL2D[33],BL2E[33], BL2F[33],BL2G[33],BL2H[33],BL2I[33],BL2J[33],BL2K[33],BL2L[33],BL2M[33], BL2N[33],BL2O[33],BL2P[33],BL3G(23)[33],BL3H(23)[33],BL3I(23)[33], BL3J(23)[33],BL3K(23)[33],BL3L(23)[33],BL6Q[43],BL6R[43],BL6S[43], BL6T[43],BL6U[43],BL6V[43],BL6W[43],BL6X[43],BL7A[43],BL7B[43],BL7C[43], BL7D[43],BL7E[43],BL7F[43],BL7G[43],BL7H[43],BL7Q[43],BL7R[43],BL7S[43], BL7T[43],BL7U[43],BL7V[43],BL7W[43],BL7X[43],BL8A[43],BL8B[43],BL8C[43], BL8D[43],BL8E[43],BL8F[43],BL8G[43],BL8H[43],BL8I[43],BL8J[43],BL8K[43], BL8L[43],BL8M[43],BL8N[43],BL8O[43],BL8P[43],BL8Q[43],BL8R[43],BL8S[43], BL8T[43],BL8U[43],BL8V[43],BL8W[43],BL8X[43],BL9A(24)[43],BL9B(24)[43], BL9C(24)[43],BL9D(24)[43],BL9E(24)[43],BL9F(24)[43],BL9S(23)[42], BL9T(23)[42],BL9U(23)[42],BL9V(23)[42],BL9W(23)[42],BL9X(23)[42],BT2A[33], BT2B[33],BT2C[33],BT2D[33],BT2E[33],BT2F[33],BT2G[33],BT2H[33],BT2I[33], BT2J[33],BT2K[33],BT2L[33],BT2M[33],BT2N[33],BT2O[33],BT2P[33], BT3G(23)[33],BT3H(23)[33],BT3I(23)[33],BT3J(23)[33],BT3K(23)[33], BT3L(23)[33],BT6Q[43],BT6R[43],BT6S[43],BT6T[43],BT6U[43],BT6V[43], BT6W[43],BT6X[43],BT7A[43],BT7B[43],BT7C[43],BT7D[43],BT7E[43],BT7F[43], BT7G[43],BT7H[43],BT7Q[43],BT7R[43],BT7S[43],BT7T[43],BT7U[43],BT7V[43], BT7W[43],BT7X[43],BT8A[43],BT8B[43],BT8C[43],BT8D[43],BT8E[43],BT8F[43], BT8G[43],BT8H[43],BT8I[43],BT8J[43],BT8K[43],BT8L[43],BT8M[43],BT8N[43], BT8O[43],BT8P[43],BT8Q[43],BT8R[43],BT8S[43],BT8T[43],BT8U[43],BT8V[43], BT8W[43],BT8X[43],BT9A(24)[43],BT9B(24)[43],BT9C(24)[43],BT9D(24)[43], BT9E(24)[43],BT9F(24)[43],BT9S(23)[42],BT9T(23)[42],BT9U(23)[42], BT9V(23)[42],BT9W(23)[42],BT9X(23)[42],BY2A[33],BY2B[33],BY2C[33], BY2D[33],BY2E[33],BY2F[33],BY2G[33],BY2H[33],BY2I[33],BY2J[33],BY2K[33], BY2L[33],BY2M[33],BY2N[33],BY2O[33],BY2P[33],BY3G(23)[33],BY3H(23)[33], BY3I(23)[33],BY3J(23)[33],BY3K(23)[33],BY3L(23)[33],BY6Q[43],BY6R[43], BY6S[43],BY6T[43],BY6U[43],BY6V[43],BY6W[43],BY6X[43],BY7A[43],BY7B[43], BY7C[43],BY7D[43],BY7E[43],BY7F[43],BY7G[43],BY7H[43],BY7Q[43],BY7R[43], BY7S[43],BY7T[43],BY7U[43],BY7V[43],BY7W[43],BY7X[43],BY8A[43],BY8B[43], BY8C[43],BY8D[43],BY8E[43],BY8F[43],BY8G[43],BY8H[43],BY8I[43],BY8J[43], BY8K[43],BY8L[43],BY8M[43],BY8N[43],BY8O[43],BY8P[43],BY8Q[43],BY8R[43], BY8S[43],BY8T[43],BY8U[43],BY8V[43],BY8W[43],BY8X[43],BY9A(24)[43], BY9B(24)[43],BY9C(24)[43],BY9D(24)[43],BY9E(24)[43],BY9F(24)[43], BY9S(23)[42],BY9T(23)[42],BY9U(23)[42],BY9V(23)[42],BY9W(23)[42], BY9X(23)[42],BZ2A[33],BZ2B[33],BZ2C[33],BZ2D[33],BZ2E[33],BZ2F[33], BZ2G[33],BZ2H[33],BZ2I[33],BZ2J[33],BZ2K[33],BZ2L[33],BZ2M[33],BZ2N[33], BZ2O[33],BZ2P[33],BZ3G(23)[33],BZ3H(23)[33],BZ3I(23)[33],BZ3J(23)[33], BZ3K(23)[33],BZ3L(23)[33],BZ6Q[43],BZ6R[43],BZ6S[43],BZ6T[43],BZ6U[43], BZ6V[43],BZ6W[43],BZ6X[43],BZ7A[43],BZ7B[43],BZ7C[43],BZ7D[43],BZ7E[43], BZ7F[43],BZ7G[43],BZ7H[43],BZ7Q[43],BZ7R[43],BZ7S[43],BZ7T[43],BZ7U[43], BZ7V[43],BZ7W[43],BZ7X[43],BZ8A[43],BZ8B[43],BZ8C[43],BZ8D[43],BZ8E[43], BZ8F[43],BZ8G[43],BZ8H[43],BZ8I[43],BZ8J[43],BZ8K[43],BZ8L[43],BZ8M[43], BZ8N[43],BZ8O[43],BZ8P[43],BZ8Q[43],BZ8R[43],BZ8S[43],BZ8T[43],BZ8U[43], BZ8V[43],BZ8W[43],BZ8X[43],BZ9A(24)[43],BZ9B(24)[43],BZ9C(24)[43], BZ9D(24)[43],BZ9E(24)[43],BZ9F(24)[43],BZ9S(23)[42],BZ9T(23)[42], BZ9U(23)[42],BZ9V(23)[42],BZ9W(23)[42],BZ9X(23)[42],=BA7JS/9(23)[42], =BD5HSV/9(23)[43],=BG0GE/9; Nauru: 31: 65: OC: -0.52: -166.92: -12.0: C2: C2; Andorra: 14: 27: EU: 42.58: -1.62: -1.0: C3: C3; The Gambia: 35: 46: AF: 13.40: 16.38: 0.0: C5: C5; Bahamas: 08: 11: NA: 24.25: 76.00: 5.0: C6: C6; Mozambique: 37: 53: AF: -18.25: -35.00: -2.0: C9: C8,C9; Chile: 12: 14: SA: -30.00: 71.00: 4.0: CE: 3G,CA,CB,CC,CD,CE,XQ,XR,3G7[16],3G8[16],CA7[16],CA8[16],CB7[16],CB8[16], CC7[16],CC8[16],CD7[16],CD8[16],CE7[16],CE8[16],XQ7[16],XQ8[16],XR7[16], XR8[16]; San Felix & San Ambrosio: 12: 14: SA: -26.28: 80.07: 4.0: CE0X: 3G0X,CA0X,CB0X,CC0X,CD0X,CE0X,XQ0X,XR0X; Easter Island: 12: 63: SA: -27.10: 109.37: 6.0: CE0Y: 3G0,CA0,CB0,CC0,CD0,CE0,XQ0,XR0; Juan Fernandez Islands: 12: 14: SA: -33.60: 78.85: 4.0: CE0Z: 3G0Z,CA0Z,CB0Z,CC0Z,CD0Z,CE0Z,XQ0Z,XR0Z; Antarctica: 13: 74: SA: -90.00: 0.00: 0.0: CE9: 3Y[73],ANT(29)[69],AX0(39)[69],AY1Z[73],AY2Z[73],AY3Z[73],AY4Z[73], AY5Z[73],AY6Z[73],AY7Z[73],AY8Z[73],AY9Z[73],FT0Y(30)[70],FT1Y(30)[70], FT2Y(30)[70],FT4Y(30)[70],FT5Y(30)[70],FT8Y(30)[70],LU1Z[73],LU2Z[73], LU3Z[73],LU4Z[73],LU5Z[73],LU6Z[73],LU7Z[73],LU8Z[73],LU9Z[73], R1AN(29)[69],RI1AN(29)[69],VI0(39)[69],VK0(39)[69],ZL5(30)[71], ZM5(30)[71],ZS7(38)[67],=K9PET/KC4,=8J1RL(39)[67],=DP0GVN(38)[67], =DP0GVN/P(38)[67],=DP1POL(38)[67],=KC4AAA(39),=KC4AAC[73],=KC4USB(12), =KC4USV(30)[71],=R1ANR(38)[67],=RI1ANR(38)[67],=VK0BFG(29)[70], =VP8ADE/B[73],=VP8DLM[73],=VP8DMH[73],=VU3BPZ(38)[67],=VU3BPZ/P(39)[69]; Cuba: 08: 11: NA: 21.50: 80.00: 5.0: CM: CL,CM,CO,T4; Morocco: 33: 37: AF: 32.00: 5.00: 0.0: CN: 5C,5D,5E,5F,5G,CN; Bolivia: 10: 12: SA: -17.00: 65.00: 4.0: CP: CP,CP2[14],CP3[14],CP4[14],CP5[14],CP6[14],CP7[14]; Portugal: 14: 37: EU: 39.50: 8.00: 0.0: CT: CQ,CR,CS,CT; Madeira Islands: 33: 36: AF: 32.75: 16.95: 0.0: CT3: CQ2,CQ3,CQ9,CR3,CR9,CS3,CS9,CT3,CT9; Azores: 14: 36: EU: 38.70: 27.23: 1.0: CU: CQ1,CQ8,CR1,CR2,CR8,CS4,CS8,CT8,CU; Uruguay: 13: 14: SA: -33.00: 56.00: 3.0: CX: CV,CW,CX; Sable Island: 05: 09: NA: 43.93: 59.90: 4.0: CY0: CY0; St. Paul Island: 05: 09: NA: 47.00: 60.00: 4.0: CY9: CY9; Angola: 36: 52: AF: -12.50: -18.50: -1.0: D2: D2,D3; Cape Verde: 35: 46: AF: 16.00: 24.00: 1.0: D4: D4; Comoros: 39: 53: AF: -11.63: -43.30: -3.0: D6: D6; Fed. Rep. of Germany: 14: 28: EU: 51.00: -10.00: -1.0: DL: DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR; Philippines: 27: 50: OC: 13.00: -122.00: -8.0: DU: 4D,4E,4F,4G,4H,4I,DU,DV,DW,DX,DY,DZ; Eritrea: 37: 48: AF: 15.00: -39.00: -3.0: E3: E3; Palestine: 20: 39: AS: 31.28: -34.27: -2.0: E4: E4; North Cook Islands: 32: 62: OC: -10.02: 161.08: 10.0: E5/n: =E51AND,=E51WL[63]; South Cook Islands: 32: 63: OC: -21.90: 157.93: 10.0: E5/s: E5; Niue: 32: 62: OC: -19.03: 169.85: 11.0: E6: E6; Bosnia-Herzegovina: 15: 28: EU: 44.32: -17.57: -1.0: E7: E7; Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA: AM,AN,AO,EA,EB,EC,ED,EE,EF,EG,EH,=EA8CZT/1,=EA9JS/7; Balearic Islands: 14: 37: EU: 39.60: -2.95: -1.0: EA6: AM6,AN6,AO6,EA6,EB6,EC6,ED6,EE6,EF6,EG6,EH6,=EA7DUT/6; Canary Islands: 33: 36: AF: 28.10: 15.40: 0.0: EA8: AM8,AN8,AO8,EA8,EB8,EC8,ED8,EE8,EF8,EG8,EH8; Ceuta & Melilla: 33: 37: AF: 35.90: 5.27: -1.0: EA9: AM9,AN9,AO9,EA9,EB9,EC9,ED9,EE9,EF9,EG9,EH9; Ireland: 14: 27: EU: 53.13: 8.02: 0.0: EI: EI,EJ; Armenia: 21: 29: AS: 40.40: -44.90: -4.0: EK: EK; Liberia: 35: 46: AF: 6.50: 9.50: 0.0: EL: 5L,5M,6Z,A8,D5,EL; Iran: 21: 40: AS: 32.00: -53.00: -3.5: EP: 9B,9C,9D,EP,EQ; Moldova: 16: 29: EU: 47.00: -29.00: -2.0: ER: ER; Estonia: 15: 29: EU: 59.00: -25.00: -2.0: ES: ES; Ethiopia: 37: 48: AF: 9.00: -39.00: -3.0: ET: 9E,9F,ET; Belarus: 16: 29: EU: 54.00: -28.00: -2.0: EU: EU,EV,EW; Kyrgyzstan: 17: 30: AS: 41.70: -74.13: -6.0: EX: EX,EX2P[31],EX2Q[31],EX6P[31],EX6Q[31],EX7P[31],EX7Q[31],EX8P[31], EX8Q[31]; Tajikistan: 17: 30: AS: 38.82: -71.22: -5.0: EY: EY; Turkmenistan: 17: 30: AS: 38.00: -58.00: -5.0: EZ: EZ; France: 14: 27: EU: 46.00: -2.00: -1.0: F: F,HW,HX,HY,TH,TM,TP,TQ,TV; Guadeloupe: 08: 11: NA: 16.13: 61.67: 4.0: FG: FG; Mayotte: 39: 53: AF: -12.88: -45.15: -3.0: FH: FH; St. Barthelemy: 08: 11: NA: 17.90: 62.83: 4.0: FJ: FJ; New Caledonia: 32: 56: OC: -21.50: -165.50: -11.0: FK: FK; Chesterfield Islands: 30: 56: OC: -19.87: -158.32: -11.0: FK/c: =FK8IK/C; Martinique: 08: 11: NA: 14.70: 61.03: 4.0: FM: FM,=TO5A,=TO5K,=TO5T,=TO7A; French Polynesia: 32: 63: OC: -17.65: 149.40: 10.0: FO: FO; Austral Islands: 32: 63: OC: -23.37: 149.48: 10.0: FO/a: =TX0HF; Clipperton Island: 07: 10: NA: 10.28: 109.22: 8.0: FO/c: =TX5C; Marquesas Islands: 31: 63: OC: -8.92: 140.07: 9.5: FO/m: =TX5VT; St. Pierre & Miquelon: 05: 09: NA: 46.77: 56.20: 3.0: FP: FP; Reunion Island: 39: 53: AF: -21.12: -55.48: -4.0: FR: FR; Glorioso Islands: 39: 53: AF: -11.55: -47.28: -4.0: FR/g: FT5G; Juan de Nova, Europa: 39: 53: AF: -17.05: -42.72: -3.0: FR/j: FT5E,FT5J; Tromelin Island: 39: 53: AF: -15.88: -54.50: -4.0: FR/t: FT5T; St. Martin: 08: 11: NA: 18.08: 63.03: 4.0: FS: FS; Crozet Island: 39: 68: AF: -46.42: -51.75: -5.0: FT5W: FT0W,FT1W,FT2W,FT4W,FT5W,FT8W; Kerguelen Islands: 39: 68: AF: -49.00: -69.27: -5.0: FT5X: FT0X,FT1X,FT2X,FT4X,FT5X,FT8X; Amsterdam & St. Paul Is.: 39: 68: AF: -37.85: -77.53: -5.0: FT5Z: FT0Z,FT1Z,FT2Z,FT4Z,FT5Z,FT8Z; Wallis & Futuna Islands: 32: 62: OC: -13.30: 176.20: -12.0: FW: FW,TW; French Guiana: 09: 12: SA: 4.00: 53.00: 3.0: FY: FY; England: 14: 27: EU: 52.77: 1.47: 0.0: G: 2,G,M,ZH,ZI,ZJ,=2O0YYY/P; Isle of Man: 14: 27: EU: 54.20: 4.53: 0.0: GD: 2D,2T,GD,GT,MD,MT,=2O0YLX,=GB2WB,=GO0OUD,=MO1CLV; Northern Ireland: 14: 27: EU: 54.73: 6.68: 0.0: GI: 2I,2N,GI,GN,MI,MN,=2O0BAD,=2O0HBO,=2O0HRV,=2O0MFB,=2O0TWA,=2O0VEP,=2O0VGW, =2O0VIM,=2O0WAI,=2O0ZXM,=GB0CHW,=GB0REL,=GB150WCB,=GB1SPD,=GB2AD,=GB2LOL, =GB2PP,=GB2UAS,=GB4SPD,=GB5SPD,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF, =GO3SG,=GO4DOH,=GO4GID,=GO4GUH,=GO4LKG,=GO4NKB,=GO4ONL,=GO4OYM,=GO4SRQ, =GO4SZW,=GO6MTL,=GO7AXB,=GO7KMC,=GO8YYM,=MO0ALS,=MO0BDZ,=MO0CBH,=MO0IOU, =MO0IRZ,=MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE,=MO0LPO,=MO0MOD, =MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE,=MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0WDB, =MO0ZXZ,=MO3RLA,=MO6AOX,=MO6NIR,=MO6WAG,=MO6WDB,=MO6YDR; Jersey: 14: 27: EU: 49.22: 2.18: 0.0: GJ: 2H,2J,GH,GJ,MH,MJ,=GO8PVL,=MO0ASP; Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM: 2A,2M,2S,GA,GM,GS,MA,MM,MS,=2O0BSE,=2O0BZB,=2O0HJS,=2O0IMP,=2O0IOB, =2O0IVG,=2O0LIM,=2O0LJM,=2O0TOK,=2O1MIC,=2O1SJB,=GB0FFS,=GB0NHL,=GB1MAY, =GB1OL,=GB2AL,=GB2BHM,=GB2CHC,=GB2EPC,=GB2GNL,=GB2LBN,=GB2LK,=GB2LT, =GB2MOF,=GB2MSL,=GB2NCL,=GB2OWM,=GB2PG,=GB2VCB,=GB2YLS,=GB5AG,=GB5FHC, =GB80GD,=GM4WSB/P,=GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DEQ,=GO0GMN,=GO0OGN, =GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ,=GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP, =GO3HVK,=GO3JIJ,=GO3NIG,=GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS,=GO4CHX,=GO4CXM, =GO4DLG,=GO4EMX,=GO4FAM,=GO4FAU,=GO4JOJ,=GO4JPZ,=GO4JR,=GO4LYJ,=GO4MOX, =GO4MSL,=GO4PRB,=GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP,=GO6JRX,=GO6KON, =GO6LYJ,=GO7GAX,=GO7GDE,=GO7HUD,=GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB, =GO8TTD,=MO0BFF,=MO0CWJ,=MO0CYR,=MO0DBC,=MO0DNX,=MO0EPC,=MO0FMF,=MO0GXQ, =MO0HZT,=MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB,=MO0TSG,=MO0WKC, =MO0XXW,=MO0ZBH,=MO1AWV,=MO1HMV,=MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP, =MO3UVL,=MO3YHA,=MO3YMU,=MO3ZRF,=MO6BJJ,=MO6CCS,=MO6CHM,=MO6CRQ,=MO6DGZ, =MO6HUT,=MO6KAU,=MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW; Shetland and Fair Isle: 14: 27: EU: 60.50: 1.50: 0.0: *GM/s: 2Z,GZ,MZ,=2M0ZET,=2M1ANT,=2M1ASQ,=2M1ODL,=G0FBJ,=GB0BL,=GB0HFC,=GB0OS, =GB2ELH,=GB2ZET,=GB4SI,=GM0CXQ,=GM0CYJ,=GM0DJI,=GM0EKM,=GM0ILB,=GM0JDB, =GM0MZD,=GM0OMV,=GM0VFA,=GM1BYL,=GM1CBQ,=GM1KKI,=GM1MXN,=GM1ZNR,=GM3KLA, =GM3RFR,=GM3SJA,=GM3STU,=GM3UPU,=GM3WCH,=GM3WHT,=GM3XPQ,=GM3ZET,=GM3ZNM, =GM3ZXH,=GM4AGX,=GM4CAQ,=GM4DQD,=GM4ENK,=GM4FNA,=GM4FNE,=GM4GPN,=GM4GPP, =GM4GQD,=GM4GQM,=GM4IPK,=GM4JPI,=GM4KJQ,=GM4LBE,=GM4LER,=GM4PXG,=GM4SLV, =GM4SRU,=GM4SSA,=GM4SWU,=GM4WXQ,=GM4YEL,=GM4ZHL,=GM6RTO,=GM6VZB,=GM6WVI, =GM6YQA,=GM7AFE,=GM7GWW,=GM7RKD,=GM8LNH,=GM8MMA,=GM8YEC,=GS0GRC,=GS3ZET, =MA1FJM,=MM0LSM,=MM0XAU,=MM0ZAL,=MM0ZCG,=MM1FJM,=MM3ZET,=MM5PSL,=MM6ACW, =MM6SJK,=MO5PSL,=MS0ZCG,=MS0ZET; Guernsey: 14: 27: EU: 49.45: 2.58: 0.0: GU: 2P,2U,GP,GU,MP,MU,=2O0FER,=GO8FBO,=MO0FAL,=MO0KWD; Wales: 14: 27: EU: 52.28: 3.73: 0.0: GW: 2C,2W,2X,2Y,GC,GW,MC,MW,=2O0CDY,=2O0CGM,=2O0CJI,=2O0CVE,=2O0DAA,=2O0DUL, =2O0DVP,=2O0IDT,=2O0JBJ,=2O0OJA,=2O0RMR,=2O0RWF,=2O0TRR,=2O0UAA,=2O0WDS, =2O0ZJA,=2O12W,=GB0AD,=GB0AWS,=GB0HEL,=GB0PLB,=GB0RS,=GB1CDS,=GB2LSA, =GB2MOP,=GB2TD,=GB4BPL,=GB4EUL,=GB4MD,=GB4MDI,=GB4PAT,=GB4SDD,=GB5GEO, =GB6BLB,=GB6TS,=GB8CCC,=GB8MD,=GO0DIV,=GO0EZQ,=GO0EZY,=GO0JEQ,=GO0MNP, =GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI,=GO0PUP,=GO0SGR,=GO0VKW,=GO0VML,=GO0VSW, =GO0XJQ,=GO1DPL,=GO1IOT,=GO1JFV,=GO1MVL,=GO1PKM,=GO3UOF,=GO4BKG,=GO4BLE, =GO4CQZ,=GO4DTQ,=GO4GTI,=GO4JKR,=GO4JUN,=GO4JUW,=GO4MVA,=GO4NOO,=GO4OKR, =GO4OKT,=GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS,=GO6NKG,=GO6UKO,=GO7DWR, =GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK,=GO8IQC,=GO8JOY,=GO8OKR,=MO0AQZ,=MO0ATI, =MO0COE,=MO0CVT,=MO0EQL,=MO0EZQ,=MO0GXE,=MO0HCX,=MO0IBZ,=MO0IML,=MO0KLW, =MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ,=MO0MAU,=MO0MUM,=MO0MWZ,=MO0OWW,=MO0SGD, =MO0SGR,=MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA,=MO1CFN,=MO3DAO, =MO3DQB,=MO3GKI,=MO3OJA,=MO3PUU,=MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO, =MO6DVP,=MO6GWK,=MO6GWR,=MO6GWR/P,=MO6MAU,=MO6PAM,=MO6PLC,=MO6PUT,=MO6SEF, =MO6TBD,=MO6TBP,=MO6WLB; Solomon Islands: 28: 51: OC: -9.00: -160.00: -11.0: H4: H4; Temotu Province: 32: 51: OC: -10.72: -165.80: -11.0: H40: H40; Hungary: 15: 28: EU: 47.12: -19.28: -1.0: HA: HA,HG; Switzerland: 14: 28: EU: 46.87: -8.12: -1.0: HB: HB,HE; Liechtenstein: 14: 28: EU: 47.13: -9.57: -1.0: HB0: HB0,HE0; Ecuador: 10: 12: SA: -1.40: 78.40: 6.0: HC: HC,HD; Galapagos Islands: 10: 12: SA: -0.78: 91.03: 6.0: HC8: HC8,HD8; Haiti: 08: 11: NA: 19.02: 72.18: 5.0: HH: 4V,HH; Dominican Republic: 08: 11: NA: 19.13: 70.68: 4.0: HI: HI; Colombia: 09: 12: SA: 5.00: 74.00: 5.0: HK: 5J,5K,HJ,HK; San Andres & Providencia: 07: 11: NA: 12.55: 81.72: 5.0: HK0/a: 5J0,5K0,HJ0,HK0; Malpelo Island: 09: 12: SA: 3.98: 81.58: 5.0: HK0/m: 5J0M,5K0M,HJ0M,HK0M,=HK0TU; Republic of Korea: 25: 44: AS: 36.23: -127.90: -9.0: HL: 6K,6L,6M,6N,D7,D8,D9,DS,DT,HL,KL9K; Panama: 07: 11: NA: 9.00: 80.00: 5.0: HP: 3E,3F,H3,H8,H9,HO,HP; Honduras: 07: 11: NA: 15.00: 87.00: 6.0: HR: HQ,HR; Thailand: 26: 49: AS: 12.60: -99.70: -7.0: HS: E2,HS; Vatican City: 15: 28: EU: 41.90: -12.47: -1.0: HV: HV; Saudi Arabia: 21: 39: AS: 24.20: -43.83: -3.0: HZ: 7Z,8Z,HZ,=HZ1SBS/J; Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: I,=IZ1CLA/N,=4U1GSC,=I1YRL/GRA; African Italy: 33: 37: AF: 35.67: -12.67: -1.0: *IG9: IG9,IH9; Sardinia: 15: 28: EU: 40.15: -9.27: -1.0: IS: IM0,IS,IW0U,IW0V,IW0W,IW0X,IW0Y,IW0Z,=II0SB,=IQ0AH,=IQ0ID,=IQ0SS,=IY0GA; Sicily: 15: 28: EU: 37.50: -14.00: -1.0: *IT9: IB9,ID9,IE9,IF9,II9,IJ9,IO9,IQ9,IR9,IT9,IU9,IW9,IZ9; Djibouti: 37: 48: AF: 11.75: -42.35: -3.0: J2: J2; Grenada: 08: 11: NA: 12.13: 61.68: 4.0: J3: J3; Guinea-Bissau: 35: 46: AF: 12.02: 14.80: 0.0: J5: J5; St. Lucia: 08: 11: NA: 13.87: 61.00: 4.0: J6: J6; Dominica: 08: 11: NA: 15.43: 61.35: 4.0: J7: J7; St. Vincent: 08: 11: NA: 13.23: 61.20: 4.0: J8: J8; Japan: 25: 45: AS: 36.40: -138.38: -9.0: JA: 7J,7K,7L,7M,7N,8J,8K,8L,8M,8N,JA,JE,JF,JG,JH,JI,JJ,JK,JL,JM,JN,JO,JP,JQ, JR,JS; Minami Torishima: 27: 90: OC: 24.28: -153.97: -10.0: JD/m: =JD1/JF3CTR,=JD1/JG8NQJ,=JD1BMM,=JF3CTR/JD1,=JG8NQJ/JD1; Ogasawara: 27: 45: AS: 27.05: -142.20: -9.0: JD/o: JD1; Mongolia: 23: 32: AS: 46.77: -102.17: -7.0: JT: JT,JU,JV,JT2[33],JT3[33],JU2[33],JU3[33],JV2[33],JV3[33]; Svalbard: 40: 18: EU: 78.00: -16.00: -1.0: JW: JW; Bear Island: 40: 18: EU: 74.43: -19.08: -1.0: *JW/b: =JW2US; Jan Mayen: 40: 18: EU: 71.05: 8.28: 1.0: JX: JX; Jordan: 20: 39: AS: 31.18: -36.42: -2.0: JY: JY; United States: 05: 08: NA: 37.53: 91.67: 5.0: K: AA,AB,AC,AD,AE,AF,AG,AI,AJ,AK,K,N,W,=4U1WB(5)[8],=AA4DD(4)[8], =AA4YL(4)[8],=AB4GG(4)[8],=AB4IQ(4)[8],=AB9DU(5)[8],=AC4CA(4)[7], =AD1C(4)[7],=AD4EB(4)[8],=AD7MQ(4)[6],=AD8J(5)[8],=AE7AP(4)[6], =AE9F(3)[6],=AG3R(4)[8],=AG3V(4)[7],=AG4W(4)[8],=AJ4A(4)[8],=AJ4F(4)[7], =GO4AZM(5)[8],=K0COP(5)[8],=K0DQ(5)[8],=K0IP(3)[6],=K0JJ(3)[6], =K0LUZ(5)[8],=K0NW(3)[6],=K0TQ(4)[8],=K0TV(5)[8],=K0ZR(5)[8],=K1DW(4)[7], =K1GU(4)[8],=K1KD(4)[7],=K1LT(4)[8],=K1TN(4)[8],=K2HT(4)[7],=K2PO(3)[6], =K2RD(3)[6],=K2RP(3)[6],=K2UR(4)[8],=K3FIV(3)[6],=K3GP(4)[8],=K3IE(4)[8], =K3JWI(4)[8],=K3TD(4)[7],=K3USC(4)[8],=K3WA(4)[8],=K3WT(4)[7],=K3YP(4)[8], =K4AB(4)[8],=K4AMC(4)[8],=K4BP(4)[8],=K4BX(4)[8],=K4CWA(4)[8], =K4CWW(4)[8],=K4CX(4)[8],=K4DZR(4)[8],=K4EDI(4)[8],=K4EJQ(4)[8], =K4FT(4)[8],=K4FXN(4)[8],=K4HAL(4)[8],=K4IE(4)[8],=K4IQJ(4)[8], =K4IU(4)[7],=K4LTA(4)[8],=K4MCK(4)[8],=K4MGE(4)[8],=K4NO(4)[8], =K4PJ(4)[8],=K4RO(4)[8],=K4SPO(4)[8],=K4TD(4)[8],=K4WI(4)[8],=K4WW(4)[8], =K4XG(4)[8],=K4XU(3)[6],=K4ZGB(4)[8],=K5AUP(5)[8],=K5EK(5)[8],=K5KG(5)[8], =K5OA(3)[6],=K5RQ(5)[8],=K5RR(3)[6],=K5VIP(5)[8],=K5ZD(5)[8],=K6ND(5)[8], =K6NDV(5)[8],=K6PJ(4)[6],=K6RM(5)[8],=K6SXA(4)[7],=K6XT(4)[7], =K7ABV(4)[6],=K7BG(4)[6],=K7CS(5)[8],=K7IA(4)[7],=K7KAR(4)[6],=K7KU(4)[7], =K7OM(5)[8],=K7RB(4)[7],=K7RE(4)[7],=K7RSM(4)[7],=K7SCX(4)[7],=K7SV(5)[8], =K7TD(4)[7],=K7VU(4)[7],=K8AC(5)[8],=K8CN(5)[8],=K8GU(5)[8],=K8IA(3)[6], =K8JQ(5)[8],=K8LF(5)[8],=K8MN(5)[8],=K8NYG(5)[8],=K8PO(5)[8],=K8TE(4)[7], =K8WT(5)[8],=K8YC(5)[8],=K9AIH(5)[8],=K9BWI(4)[7],=K9CHP(5)[8], =K9DR(4)[7],=K9DU(4)[7],=K9FY(5)[8],=K9JF(3)[6],=K9JM(3)[6],=K9JWV(3)[6], =K9MBB(4)[7],=K9MWM(4)[7],=K9OM(5)[8],=K9RS(5)[8],=K9WZB(3)[6], =K9YC(3)[6],=KA3DRR(3)[6],=KA4OTB(4)[8],=KA4PKB(4)[8],=KA4R(4)[8], =KA8HDE(4)[7],=KA8Q(5)[8],=KB7FSC(4)[6],=KB7Q(4)[6],=KB7QOS(4)[7], =KB8V(5)[8],=KC4HW(4)[8],=KC4SAW(4)[8],=KC4WQ(4)[8],=KC6X(4)[7], =KC8GCR(5)[8],=KD4POJ(4)[7],=KD4SN(4)[8],=KD7DCR(4)[6],=KE1B(3)[6], =KE2VB(3)[6],=KE3D(4)[7],=KE4ETY(4)[8],=KE4KY(4)[8],=KE7X(4)[6], =KF6A(4)[8],=KG0F(3)[6],=KG4CUY(4)[8],=KG9JP(3)[6],=KH0WJ(5)[8], =KH2D(5)[8],=KH6GN(4)[8],=KH6OU(5)[8],=KI4EEY(4)[8],=KI4EZC(4)[8], =KI4SP(4)[8],=KI6DY(4)[7],=KI7MT(4)[6],=KJ4AOM(4)[8],=KJ4FDV(4)[8], =KK6MC(4)[7],=KK9A(5)[8],=KK9O(5)[8],=KL5Z(4)[7],=KL7FDQ(3)[6], =KL7QW(4)[7],=KL7WP(3)[6],=KL7WV(5)[8],=KM4DR(4)[7],=KM4JA(4)[8], =KM7W(4)[6],=KO4OL(4)[8],=KO4PU(4)[8],=KO4XJ(4)[8],=KO7X(4)[7], =KR2E(3)[6],=KR4F(4)[8],=KR7C(4)[7],=KS4L(4)[8],=KS4X(4)[8],=KS5A(3)[6], =KS7T(4)[6],=KT0P(5)[8],=KU1CW(4)[7],=KU1YL(4)[7],=KU4A(4)[8],=KU8E(5)[8], =KV1E(4)[7],=KX2P(4)[7],=KX9X(5)[8],=KY0W(3)[6],=KY4F(4)[8],=KZ2V(3)[6], =N0FW(4)[8],=N0RZT(4)[8],=N1CC(4)[7],=N1JM(3)[6],=N1WQ(4)[7],=N2BJ(4)[8], =N2IC(4)[7],=N2NS(3)[6],=N2OPW(4)[8],=N2WN(4)[8],=N3FAW(3)[6],=N3RC(4)[6], =N3ZZ(3)[6],=N4AAI(4)[8],=N4ARO(4)[8],=N4AU(4)[8],=N4BCB(4)[8], =N4DTF(4)[8],=N4DW(4)[8],=N4IJ(4)[7],=N4IR(4)[8],=N4JF(4)[8],=N4KG(4)[8], =N4KH(4)[8],=N4NM(4)[8],=N4NO(4)[8],=N4OGW(4)[8],=N4QS(4)[8],=N4TZ(4)[8], =N4UC(4)[8],=N4UPX(4)[7],=N4UW(4)[8],=N4VN(4)[8],=N4VV(4)[8],=N4ZI(4)[8], =N4ZZ(4)[8],=N5IE(5)[8],=N5KO(3)[6],=N5LZ(3)[6],=N6AR(5)[8],=N6FS(4)[8], =N7DR(4)[7],=N7EO(5)[8],=N7FLT(4)[6],=N7GVV(4)[8],=N7IP(4)[6],=N7IV(4)[7], =N7IX(4)[7],=N7KA(4)[7],=N7MZW(4)[7],=N7US(4)[8],=N8CL(5)[8],=N8HM(5)[8], =N8II(5)[8],=N8MPX(5)[8],=N8NA(5)[8],=N8PR(5)[8],=N8RA(5)[8],=N8WXQ(5)[8], =N9ADG(3)[6],=N9CM(5)[8],=N9DFD(5)[8],=N9HDE(4)[7],=N9MM(4)[7], =N9NC(5)[8],=N9UY(5)[8],=NA2U(3)[6],=NA4C(4)[8],=NA4K(4)[8],=NB4M(4)[8], =ND2T(3)[6],=ND4X(4)[8],=NE4M(4)[8],=NE8J(5)[8],=NG7A(5)[8],=NH6Z(3)[6], =NH7RO(4)[7],=NJ4I(4)[8],=NJ8J(5)[8],=NL7CQ(4)[7],=NN3V(3)[6], =NN4MM(4)[8],=NN7A(4)[7],=NO2D(4)[7],=NO9E(5)[8],=NP3D(5)[8],=NR7DX(4)[6], =NS2X(4)[8],=NS4X(4)[8],=NU4B(4)[8],=NV4B(4)[8],=NW8U(5)[8],=NX1P(3)[6], =NX9T(5)[8],=NY4JB(4)[8],=NY6DX(5)[8],=W0BR(5)[8],=W0IZ(4)[8], =W0JLC(5)[8],=W0PAN(3)[6],=W0PV(5)[8],=W0QQG(5)[8],=W0UCE(5)[8], =W0YK(3)[6],=W0YR(5)[8],=W1NN(4)[8],=W1RH(3)[6],=W1SRD(3)[6],=W1ZD(3)[6], =W2AJW(3)[6],=W2OO(4)[8],=W2UP(4)[7],=W2VJN(3)[6],=W2VKT(3)[6], =W3HDH(4)[8],=W3TUA(4)[7],=W4BCG(4)[8],=W4BCU(4)[8],=W4BK(4)[8], =W4CBX(4)[8],=W4DAN(4)[8],=W4DVG(4)[8],=W4EF(3)[6],=W4GHD(4)[8], =W4GKM(4)[8],=W4HOD(4)[8],=W4HZD(4)[8],=W4JHC(4)[7],=W4JSI(4)[8], =W4KW(4)[8],=W4LC(4)[8],=W4NBS(4)[8],=W4NI(4)[8],=W4NJK(3)[6],=W4NZ(4)[8], =W4PHS(4)[8],=W4PV(4)[8],=W4RK(4)[7],=W4RYW(4)[8],=W4UAL(4)[8], =W4UAT(3)[6],=W4UT(4)[8],=W5DQ(3)[6],=W5JBO(3)[6],=W5JR(5)[8],=W5MX(4)[8], =W5NZ(4)[8],=W5XB(5)[8],=W6AAN(5)[8],=W6DVS(5)[8],=W6GMT(4)[7], =W6IHG(5)[8],=W6KGP(4)[7],=W6LFB(4)[7],=W6NWS(5)[8],=W6SAI(4)[8], =W6UB(4)[8],=W6XR(5)[8],=W7DO(5)[8],=W7HJ(5)[8],=W7IY(5)[8],=W7RTX(4)[7], =W7WZ(5)[8],=W8AEF(3)[6],=W8AKS(5)[8],=W8BFX(3)[6],=W8FJ(5)[8], =W8FN(4)[7],=W8HGH(5)[8],=W8JI(5)[8],=W8OHT(5)[8],=W8WEJ(5)[8], =W8ZA(5)[8],=W9CF(3)[6],=W9DKC(5)[8],=W9GE(5)[8],=W9KB(5)[8],=W9LHG(4)[7], =W9NGA(3)[6],=W9UK(5)[8],=W9XQ(4)[7],=WA0WWW(3)[6],=WA1FCN(4)[8], =WA1PMA(3)[6],=WA1UJU(4)[8],=WA3C(4)[8],=WA4SM(4)[8],=WA5VGI(3)[6], =WA8KAN(5)[8],=WA8OJR(5)[8],=WA8QYJ(5)[8],=WA8ZBT(4)[7],=WB0POH(5)[8], =WB3JFS(3)[6],=WB4KDI(4)[8],=WB4YDL(4)[8],=WB4YDY(4)[8],=WB8BPU(5)[8], =WB8YQJ(3)[6],=WB8YYY(5)[8],=WB9KPT(4)[7],=WC7S(4)[7],=WE6EZ(4)[7], =WF4U(3)[6],=WF7T(4)[8],=WG7Y(4)[7],=WJ9B(3)[6],=WK5X(5)[8],=WL7OU(4)[7], =WO4O(4)[8],=WR5G(3)[6],=WS4Y(4)[7],=WS6K(4)[8],=WS9M(5)[8],=WT5L(5)[8], =WU9B(3)[6],=WW4R(4)[8],=WY7SS(4)[7],=WZ4F(4)[8]; Guantanamo Bay: 08: 11: NA: 20.00: 75.00: 5.0: KG4: KG4; Mariana Islands: 27: 64: OC: 15.18: -145.72: -10.0: KH0: AH0,KH0,NH0,WH0,=K0Y,=N2G; Baker & Howland Islands: 31: 61: OC: 0.00: 176.00: 12.0: KH1: AH1,KH1,NH1,WH1; Guam: 27: 64: OC: 13.37: -144.70: -10.0: KH2: AH2,KH2,NH2,WH2,=KG6DX; Johnston Island: 31: 61: OC: 16.72: 169.53: 10.0: KH3: AH3,KH3,NH3,WH3,=KJ6BZ; Midway Island: 31: 61: OC: 28.20: 177.37: 11.0: KH4: AH4,KH4,NH4,WH4; Palmyra & Jarvis Islands: 31: 61: OC: 5.87: 162.07: 11.0: KH5: AH5,KH5,NH5,WH5; Kingman Reef: 31: 61: OC: 6.40: 162.40: 11.0: KH5K: AH5K,KH5K,NH5K,WH5K; Hawaii: 31: 61: OC: 19.67: 155.57: 10.0: KH6: AH6,AH7,KH6,KH7,NH6,NH7,WH6,WH7,=K4XV,=KB6EGA,=N1C,=WB4JTT; Kure Island: 31: 61: OC: 29.00: 178.00: 10.0: KH7K: AH7K,KH7K,NH7K,WH7K; American Samoa: 32: 62: OC: -14.32: 170.78: 11.0: KH8: AH8,KH8,NH8,WH8; Swains Island: 32: 62: OC: -11.05: 171.25: 11.0: KH8/s: =NH8S; Wake Island: 31: 65: OC: 19.28: -166.63: -12.0: KH9: AH9,KH9,NH9,WH9; Alaska: 01: 01: NA: 63.87: 153.78: 8.0: KL: AL,KL,NL,WL,=K7P,=N7ZYS; Navassa Island: 08: 11: NA: 18.40: 75.00: 5.0: KP1: KP1,NP1,WP1; US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: KP2,NP2,WP2,=KV4BT,=KV4BW,=KV4CF,=KV4FZ,=N2A; Puerto Rico: 08: 11: NA: 18.18: 66.55: 4.0: KP4: KP3,KP4,NP3,NP4,WP3,WP4,=KB2OPM,=KC2TE,=KH2RU,=KP2Z,=KP4ES/L,=N2PGO,=W4L, =W4W; Desecheo Island: 08: 11: NA: 18.08: 67.88: 4.0: KP5: KP5,NP5,WP5; Norway: 14: 18: EU: 61.00: -9.00: -1.0: LA: LA,LB,LC,LD,LE,LF,LG,LH,LI,LJ,LK,LL,LM,LN; Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: AY,AZ,L1,L2,L3,L4,L5,L6,L7,L8,L9,LO,LP,LQ,LR,LS,LT,LU,LV,LW,AY0V[16], AY0W[16],AY0X[16],AY0Y[16],AY1V[16],AY1W[16],AY1X[16],AY1Y[16],AY2V[16], AY2W[16],AY2X[16],AY2Y[16],AY3V[16],AY3W[16],AY3X[16],AY3Y[16],AY4V[16], AY4W[16],AY4X[16],AY4Y[16],AY5V[16],AY5W[16],AY5X[16],AY5Y[16],AY6V[16], AY6W[16],AY6X[16],AY6Y[16],AY7V[16],AY7W[16],AY7X[16],AY7Y[16],AY8V[16], AY8W[16],AY8X[16],AY8Y[16],AY9V[16],AY9W[16],AY9X[16],AY9Y[16],AZ0V[16], AZ0W[16],AZ0X[16],AZ0Y[16],AZ1V[16],AZ1W[16],AZ1X[16],AZ1Y[16],AZ2V[16], AZ2W[16],AZ2X[16],AZ2Y[16],AZ3V[16],AZ3W[16],AZ3X[16],AZ3Y[16],AZ4V[16], AZ4W[16],AZ4X[16],AZ4Y[16],AZ5V[16],AZ5W[16],AZ5X[16],AZ5Y[16],AZ6V[16], AZ6W[16],AZ6X[16],AZ6Y[16],AZ7V[16],AZ7W[16],AZ7X[16],AZ7Y[16],AZ8V[16], AZ8W[16],AZ8X[16],AZ8Y[16],AZ9V[16],AZ9W[16],AZ9X[16],AZ9Y[16],L20V[16], L20W[16],L20X[16],L20Y[16],L21V[16],L21W[16],L21X[16],L21Y[16],L22V[16], L22W[16],L22X[16],L22Y[16],L23V[16],L23W[16],L23X[16],L23Y[16],L24V[16], L24W[16],L24X[16],L24Y[16],L25V[16],L25W[16],L25X[16],L25Y[16],L26V[16], L26W[16],L26X[16],L26Y[16],L27V[16],L27W[16],L27X[16],L27Y[16],L28V[16], L28W[16],L28X[16],L28Y[16],L29V[16],L29W[16],L29X[16],L29Y[16],L30V[16], L30W[16],L30X[16],L30Y[16],L31V[16],L31W[16],L31X[16],L31Y[16],L32V[16], L32W[16],L32X[16],L32Y[16],L33V[16],L33W[16],L33X[16],L33Y[16],L34V[16], L34W[16],L34X[16],L34Y[16],L35V[16],L35W[16],L35X[16],L35Y[16],L36V[16], L36W[16],L36X[16],L36Y[16],L37V[16],L37W[16],L37X[16],L37Y[16],L38V[16], L38W[16],L38X[16],L38Y[16],L39V[16],L39W[16],L39X[16],L39Y[16],L40V[16], L40W[16],L40X[16],L40Y[16],L41V[16],L41W[16],L41X[16],L41Y[16],L42V[16], L42W[16],L42X[16],L42Y[16],L43V[16],L43W[16],L43X[16],L43Y[16],L44V[16], L44W[16],L44X[16],L44Y[16],L45V[16],L45W[16],L45X[16],L45Y[16],L46V[16], L46W[16],L46X[16],L46Y[16],L47V[16],L47W[16],L47X[16],L47Y[16],L48V[16], L48W[16],L48X[16],L48Y[16],L49V[16],L49W[16],L49X[16],L49Y[16],L50V[16], L50W[16],L50X[16],L50Y[16],L51V[16],L51W[16],L51X[16],L51Y[16],L52V[16], L52W[16],L52X[16],L52Y[16],L53V[16],L53W[16],L53X[16],L53Y[16],L54V[16], L54W[16],L54X[16],L54Y[16],L55V[16],L55W[16],L55X[16],L55Y[16],L56V[16], L56W[16],L56X[16],L56Y[16],L57V[16],L57W[16],L57X[16],L57Y[16],L58V[16], L58W[16],L58X[16],L58Y[16],L59V[16],L59W[16],L59X[16],L59Y[16],L60V[16], L60W[16],L60X[16],L60Y[16],L61V[16],L61W[16],L61X[16],L61Y[16],L62V[16], L62W[16],L62X[16],L62Y[16],L63V[16],L63W[16],L63X[16],L63Y[16],L64V[16], L64W[16],L64X[16],L64Y[16],L65V[16],L65W[16],L65X[16],L65Y[16],L66V[16], L66W[16],L66X[16],L66Y[16],L67V[16],L67W[16],L67X[16],L67Y[16],L68V[16], L68W[16],L68X[16],L68Y[16],L69V[16],L69W[16],L69X[16],L69Y[16],L70V[16], L70W[16],L70X[16],L70Y[16],L71V[16],L71W[16],L71X[16],L71Y[16],L72V[16], L72W[16],L72X[16],L72Y[16],L73V[16],L73W[16],L73X[16],L73Y[16],L74V[16], L74W[16],L74X[16],L74Y[16],L75V[16],L75W[16],L75X[16],L75Y[16],L76V[16], L76W[16],L76X[16],L76Y[16],L77V[16],L77W[16],L77X[16],L77Y[16],L78V[16], L78W[16],L78X[16],L78Y[16],L79V[16],L79W[16],L79X[16],L79Y[16],L80V[16], L80W[16],L80X[16],L80Y[16],L81V[16],L81W[16],L81X[16],L81Y[16],L82V[16], L82W[16],L82X[16],L82Y[16],L83V[16],L83W[16],L83X[16],L83Y[16],L84V[16], L84W[16],L84X[16],L84Y[16],L85V[16],L85W[16],L85X[16],L85Y[16],L86V[16], L86W[16],L86X[16],L86Y[16],L87V[16],L87W[16],L87X[16],L87Y[16],L88V[16], L88W[16],L88X[16],L88Y[16],L89V[16],L89W[16],L89X[16],L89Y[16],L90V[16], L90W[16],L90X[16],L90Y[16],L91V[16],L91W[16],L91X[16],L91Y[16],L92V[16], L92W[16],L92X[16],L92Y[16],L93V[16],L93W[16],L93X[16],L93Y[16],L94V[16], L94W[16],L94X[16],L94Y[16],L95V[16],L95W[16],L95X[16],L95Y[16],L96V[16], L96W[16],L96X[16],L96Y[16],L97V[16],L97W[16],L97X[16],L97Y[16],L98V[16], L98W[16],L98X[16],L98Y[16],L99V[16],L99W[16],L99X[16],L99Y[16],LO0V[16], LO0W[16],LO0X[16],LO0Y[16],LO1V[16],LO1W[16],LO1X[16],LO1Y[16],LO2V[16], LO2W[16],LO2X[16],LO2Y[16],LO3V[16],LO3W[16],LO3X[16],LO3Y[16],LO4V[16], LO4W[16],LO4X[16],LO4Y[16],LO5V[16],LO5W[16],LO5X[16],LO5Y[16],LO6V[16], LO6W[16],LO6X[16],LO6Y[16],LO7V[16],LO7W[16],LO7X[16],LO7Y[16],LO8V[16], LO8W[16],LO8X[16],LO8Y[16],LO9V[16],LO9W[16],LO9X[16],LO9Y[16],LP0V[16], LP0W[16],LP0X[16],LP0Y[16],LP1V[16],LP1W[16],LP1X[16],LP1Y[16],LP2V[16], LP2W[16],LP2X[16],LP2Y[16],LP3V[16],LP3W[16],LP3X[16],LP3Y[16],LP4V[16], LP4W[16],LP4X[16],LP4Y[16],LP5V[16],LP5W[16],LP5X[16],LP5Y[16],LP6V[16], LP6W[16],LP6X[16],LP6Y[16],LP7V[16],LP7W[16],LP7X[16],LP7Y[16],LP8V[16], LP8W[16],LP8X[16],LP8Y[16],LP9V[16],LP9W[16],LP9X[16],LP9Y[16],LQ0V[16], LQ0W[16],LQ0X[16],LQ0Y[16],LQ1V[16],LQ1W[16],LQ1X[16],LQ1Y[16],LQ2V[16], LQ2W[16],LQ2X[16],LQ2Y[16],LQ3V[16],LQ3W[16],LQ3X[16],LQ3Y[16],LQ4V[16], LQ4W[16],LQ4X[16],LQ4Y[16],LQ5V[16],LQ5W[16],LQ5X[16],LQ5Y[16],LQ6V[16], LQ6W[16],LQ6X[16],LQ6Y[16],LQ7V[16],LQ7W[16],LQ7X[16],LQ7Y[16],LQ8V[16], LQ8W[16],LQ8X[16],LQ8Y[16],LQ9V[16],LQ9W[16],LQ9X[16],LQ9Y[16],LR0V[16], LR0W[16],LR0X[16],LR0Y[16],LR1V[16],LR1W[16],LR1X[16],LR1Y[16],LR2V[16], LR2W[16],LR2X[16],LR2Y[16],LR3V[16],LR3W[16],LR3X[16],LR3Y[16],LR4V[16], LR4W[16],LR4X[16],LR4Y[16],LR5V[16],LR5W[16],LR5X[16],LR5Y[16],LR6V[16], LR6W[16],LR6X[16],LR6Y[16],LR7V[16],LR7W[16],LR7X[16],LR7Y[16],LR8V[16], LR8W[16],LR8X[16],LR8Y[16],LR9V[16],LR9W[16],LR9X[16],LR9Y[16],LS0V[16], LS0W[16],LS0X[16],LS0Y[16],LS1V[16],LS1W[16],LS1X[16],LS1Y[16],LS2V[16], LS2W[16],LS2X[16],LS2Y[16],LS3V[16],LS3W[16],LS3X[16],LS3Y[16],LS4V[16], LS4W[16],LS4X[16],LS4Y[16],LS5V[16],LS5W[16],LS5X[16],LS5Y[16],LS6V[16], LS6W[16],LS6X[16],LS6Y[16],LS7V[16],LS7W[16],LS7X[16],LS7Y[16],LS8V[16], LS8W[16],LS8X[16],LS8Y[16],LS9V[16],LS9W[16],LS9X[16],LS9Y[16],LT0V[16], LT0W[16],LT0X[16],LT0Y[16],LT1V[16],LT1W[16],LT1X[16],LT1Y[16],LT2V[16], LT2W[16],LT2X[16],LT2Y[16],LT3V[16],LT3W[16],LT3X[16],LT3Y[16],LT4V[16], LT4W[16],LT4X[16],LT4Y[16],LT5V[16],LT5W[16],LT5X[16],LT5Y[16],LT6V[16], LT6W[16],LT6X[16],LT6Y[16],LT7V[16],LT7W[16],LT7X[16],LT7Y[16],LT8V[16], LT8W[16],LT8X[16],LT8Y[16],LT9V[16],LT9W[16],LT9X[16],LT9Y[16],LU0V[16], LU0W[16],LU0X[16],LU0Y[16],LU1V[16],LU1W[16],LU1X[16],LU1Y[16],LU2V[16], LU2W[16],LU2X[16],LU2Y[16],LU3V[16],LU3W[16],LU3X[16],LU3Y[16],LU4V[16], LU4W[16],LU4X[16],LU4Y[16],LU5V[16],LU5W[16],LU5X[16],LU5Y[16],LU6V[16], LU6W[16],LU6X[16],LU6Y[16],LU7V[16],LU7W[16],LU7X[16],LU7Y[16],LU8V[16], LU8W[16],LU8X[16],LU8Y[16],LU9V[16],LU9W[16],LU9X[16],LU9Y[16],LV0V[16], LV0W[16],LV0X[16],LV0Y[16],LV1V[16],LV1W[16],LV1X[16],LV1Y[16],LV2V[16], LV2W[16],LV2X[16],LV2Y[16],LV3V[16],LV3W[16],LV3X[16],LV3Y[16],LV4V[16], LV4W[16],LV4X[16],LV4Y[16],LV5V[16],LV5W[16],LV5X[16],LV5Y[16],LV6V[16], LV6W[16],LV6X[16],LV6Y[16],LV7V[16],LV7W[16],LV7X[16],LV7Y[16],LV8V[16], LV8W[16],LV8X[16],LV8Y[16],LV9V[16],LV9W[16],LV9X[16],LV9Y[16],LW0V[16], LW0W[16],LW0X[16],LW0Y[16],LW1V[16],LW1W[16],LW1X[16],LW1Y[16],LW2V[16], LW2W[16],LW2X[16],LW2Y[16],LW3V[16],LW3W[16],LW3X[16],LW3Y[16],LW4V[16], LW4W[16],LW4X[16],LW4Y[16],LW5V[16],LW5W[16],LW5X[16],LW5Y[16],LW6V[16], LW6W[16],LW6X[16],LW6Y[16],LW7V[16],LW7W[16],LW7X[16],LW7Y[16],LW8V[16], LW8W[16],LW8X[16],LW8Y[16],LW9V[16],LW9W[16],LW9X[16],LW9Y[16],=LU1DAR/D, =LU1DCB/D,=LU1EQ/D,=LU1FFF/F,=LU1HLH/D,=LU1QA/Q,=LU1VOF/D,=LU1WJY/W[16], =LU1XZ/H,=LU1YY/Y[16],=LU2DB/V[16],=LU2DJB/J,=LU2DVI/H,=LU2FLB/F, =LU2WA/W[16],=LU4DBT/D,=LU4DDL/V[16],=LU4DLL/D,=LU5DEM/W[16], =LU5DGI/W[16],=LU5DX/H,=LU5FES/F,=LU5FZ/GA,=LU5JU/J,=LU5YF/V[16],=LU6DM/D, =LU6EJJ/D,=LU6HBB/D,=LU6VAC/V[16],=LU7DOT/D,=LU7EO/D,=LU7HW/D, =LU8VER/V[16],=LU9JMG/J,=LW2EIY/H,=LW3DKO/D,=LW4EIN/D,=LW4HCL/D,=LW7EIY/H; Luxembourg: 14: 27: EU: 50.00: -6.00: -1.0: LX: LX; Lithuania: 15: 29: EU: 55.45: -23.63: -2.0: LY: LY; Bulgaria: 20: 28: EU: 42.83: -25.08: -2.0: LZ: LZ; Peru: 10: 12: SA: -10.00: 76.00: 5.0: OA: 4T,OA,OB,OC; Lebanon: 20: 39: AS: 33.83: -35.83: -2.0: OD: OD; Austria: 15: 28: EU: 47.33: -13.33: -1.0: OE: 4U1V,OE; Finland: 15: 18: EU: 63.78: -27.08: -2.0: OH: OF,OG,OH,OI,OJ; Aland Islands: 15: 18: EU: 60.13: -20.37: -2.0: OH0: OF0,OG0,OH0,OI0; Market Reef: 15: 18: EU: 60.00: -19.00: -2.0: OJ0: OJ0; Czech Republic: 15: 28: EU: 50.00: -16.00: -1.0: OK: OK,OL; Slovak Republic: 15: 28: EU: 49.00: -20.00: -1.0: OM: OM; Belgium: 14: 27: EU: 50.70: -4.85: -1.0: ON: ON,OO,OP,OQ,OR,OS,OT; Greenland: 40: 05: NA: 74.00: 42.78: 3.0: OX: OX,XP; Faroe Islands: 14: 18: EU: 62.07: 6.93: 0.0: OY: OW,OY; Denmark: 14: 18: EU: 56.00: -10.00: -1.0: OZ: 5P,5Q,OU,OV,OZ; Papua New Guinea: 28: 51: OC: -9.50: -147.12: -10.0: P2: P2; Aruba: 09: 11: SA: 12.53: 69.98: 4.0: P4: P4; DPR of Korea: 25: 44: AS: 39.78: -126.30: -9.0: P5: HM,P5,P6,P7,P8,P9; Netherlands: 14: 27: EU: 52.28: -5.47: -1.0: PA: PA,PB,PC,PD,PE,PF,PG,PH,PI,=PH4RTM/MILL; Curacao: 09: 11: SA: 12.17: 69.00: 4.0: PJ2: PJ2; Bonaire: 09: 11: SA: 12.20: 68.25: 4.0: PJ4: PJ4; Saba & St. Eustatius: 08: 11: NA: 17.57: 63.10: 4.0: PJ5: PJ5,PJ6; Sint Maarten: 08: 11: NA: 18.07: 63.07: 4.0: PJ7: PJ7; Brazil: 11: 12: SA: -10.00: 53.00: 3.0: PY: PP,PQ,PR,PS,PT,PU,PV,PW,PX,PY,ZV,ZW,ZX,ZY,ZZ,PP1[15],PP2[15],PP3[15], PP4[15],PP5[15],PP6[13],PP7[13],PQ2[13],PQ3[15],PQ4[15],PQ8[13],PR3[15], PR4[15],PR7[13],PR8[13],PS3[15],PS4[15],PS7[13],PS8[13],PT2[13],PT3[15], PT4[15],PT7[13],PT9[15],PU3[15],PU4[15],PV3[15],PV4[15],PW3[15],PW4[15], PX3[15],PX4[15],PY1[15],PY2[15],PY3[15],PY4[15],PY5[15],PY6[13],PY7[13], PY8[13],PY9[13],ZV3[15],ZV4[15],ZW3[15],ZW4[15],ZX3[15],ZX4[15],ZY3[15], ZY4[15],ZZ3[15],ZZ4[15]; Fernando de Noronha: 11: 13: SA: -3.85: 32.43: 2.0: PY0F: PP0F,PQ0F,PR0F,PS0F,PT0F,PU0F,PV0F,PW0F,PX0F,PY0F,PY0Z,ZV0F,ZW0F,ZX0F, ZY0F,ZY0R,ZY0Z,ZZ0F; St. Peter & St. Paul: 11: 13: SA: 0.00: 29.00: 2.0: PY0S: PP0S,PQ0S,PR0S,PS0S,PT0S,PU0S,PV0S,PW0S,PX0S,PY0S,ZV0S,ZW0S,ZX0S,ZY0S, ZZ0S; Trindade & Martim Vaz: 11: 15: SA: -20.50: 29.32: 2.0: PY0T: PP0M,PP0T,PQ0M,PQ0T,PR0M,PR0T,PS0M,PS0T,PT0M,PT0T,PU0M,PU0T,PV0M,PV0T, PW0M,PW0T,PX0M,PX0T,PY0M,PY0T,ZV0M,ZV0T,ZW0M,ZW0T,ZX0M,ZX0T,ZY0M,ZY0T, ZZ0M,ZZ0T; Suriname: 09: 12: SA: 4.00: 56.00: 3.0: PZ: PZ; Franz Josef Land: 40: 75: EU: 80.68: -49.92: -3.0: R1FJ: FJL,R1FJ,RI1FJ; Western Sahara: 33: 46: AF: 24.82: 13.85: 0.0: S0: S0; Bangladesh: 22: 41: AS: 24.12: -89.65: -6.0: S2: S2,S3; Slovenia: 15: 28: EU: 46.00: -14.00: -1.0: S5: S5; Seychelles: 39: 53: AF: -4.67: -55.47: -4.0: S7: S7; Sao Tome & Principe: 36: 47: AF: 0.22: -6.57: 0.0: S9: S9; Sweden: 14: 18: EU: 61.20: -14.57: -1.0: SM: 7S,8S,SA,SB,SC,SD,SE,SF,SG,SH,SI,SJ,SK,SL,SM; Poland: 15: 28: EU: 52.28: -18.67: -1.0: SP: 3Z,HF,SN,SO,SP,SQ,SR; Sudan: 34: 48: AF: 14.47: -28.62: -3.0: ST: 6T,6U,ST; Egypt: 34: 38: AF: 26.28: -28.60: -2.0: SU: 6A,6B,SS,SU; Greece: 20: 28: EU: 39.78: -21.78: -2.0: SV: J4,SV,SW,SX,SY,SZ; Mount Athos: 20: 28: EU: 40.00: -24.00: -2.0: SV/a: =SV2ASP/A; Dodecanese: 20: 28: EU: 36.17: -27.93: -2.0: SV5: J45,SV5,SW5,SX5,SY5,SZ5,=SV0XAN/5,=SV0XCA/5; Crete: 20: 28: EU: 35.23: -24.78: -2.0: SV9: J49,SV9,SW9,SX9,SY9,SZ9,=SV0XAI/9,=SV0XBN/9,=SV0XCC/9; Tuvalu: 31: 65: OC: -8.50: -179.20: -12.0: T2: T2; Western Kiribati: 31: 65: OC: 1.42: -173.00: -12.0: T30: T30; Central Kiribati: 31: 62: OC: -2.83: 171.72: -13.0: T31: T31; Eastern Kiribati: 31: 61: OC: 1.80: 157.35: -14.0: T32: T32; Banaba Island: 31: 65: OC: -0.88: -169.53: -12.0: T33: T33; Somalia: 37: 48: AF: 2.03: -45.35: -3.0: T5: 6O,T5; San Marino: 15: 28: EU: 43.95: -12.45: -1.0: T7: T7; Palau: 27: 64: OC: 7.45: -134.53: -9.0: T8: T8; Asiatic Turkey: 20: 39: AS: 39.18: -35.65: -2.0: TA: TA,TB,TC,YM,=TC50TRAC/18E,=TC50TRAC/18C,=TC50TRAC/28G,=TC50TRAC/29T, =TC50TRAC/38D,=TC50TRAC/38K; European Turkey: 20: 39: EU: 41.02: -28.97: -2.0: *TA1: TA1,TB1,TC1,YM1; Iceland: 40: 17: EU: 64.80: 18.73: 0.0: TF: TF; Guatemala: 07: 11: NA: 15.50: 90.30: 6.0: TG: TD,TG; Costa Rica: 07: 11: NA: 10.00: 84.00: 6.0: TI: TE,TI; Cocos Island: 07: 11: NA: 5.52: 87.05: 6.0: TI9: TE9,TI9; Cameroon: 36: 47: AF: 5.38: -11.87: -1.0: TJ: TJ; Corsica: 15: 28: EU: 42.00: -9.00: -1.0: TK: TK; Central African Republic: 36: 47: AF: 6.75: -20.33: -1.0: TL: TL; Republic of the Congo: 36: 52: AF: -1.02: -15.37: -1.0: TN: TN; Gabon: 36: 52: AF: -0.37: -11.73: -1.0: TR: TR; Chad: 36: 47: AF: 15.80: -18.17: -1.0: TT: TT; Cote d'Ivoire: 35: 46: AF: 7.58: 5.80: 0.0: TU: TU; Benin: 35: 46: AF: 9.87: -2.25: -1.0: TY: TY; Mali: 35: 46: AF: 18.00: 2.58: 0.0: TZ: TZ; European Russia: 16: 29: EU: 56.00: -37.00: -4.0: UA: R,U,R1N[19],R1O[19],R1P[20],R1Z[19],R4H[30],R4I[30],R4W[30],R8F(17)[30], R8G(17)[30],R8X(17)[19],R9F(17)[30],R9G(17)[30],R9X(17)[19],RA1N[19], RA1O[19],RA1P[20],RA1Z[19],RA4H[30],RA4I[30],RA4W[30],RA8F(17)[30], RA8G(17)[30],RA8X(17)[19],RA9F(17)[30],RA9G(17)[30],RA9X(17)[19],RC1N[19], RC1O[19],RC1P[20],RC1Z[19],RC4H[30],RC4I[30],RC4W[30],RC8F(17)[30], RC8G(17)[30],RC8X(17)[19],RC9F(17)[30],RC9G(17)[30],RC9X(17)[19],RD1N[19], RD1O[19],RD1P[20],RD1Z[19],RD4H[30],RD4I[30],RD4W[30],RD8F(17)[30], RD8G(17)[30],RD8X(17)[19],RD9F(17)[30],RD9G(17)[30],RD9X(17)[19],RF1N[19], RF1O[19],RF1P[20],RF1Z[19],RF4H[30],RF4I[30],RF4W[30],RF8F(17)[30], RF8G(17)[30],RF8X(17)[19],RF9F(17)[30],RF9G(17)[30],RF9X(17)[19],RG1N[19], RG1O[19],RG1P[20],RG1Z[19],RG4H[30],RG4I[30],RG4W[30],RG8F(17)[30], RG8G(17)[30],RG8X(17)[19],RG9F(17)[30],RG9G(17)[30],RG9X(17)[19],RI1N[19], RI1O[19],RI1P[20],RI1Z[19],RI4H[30],RI4I[30],RI4W[30],RI8F(17)[30], RI8G(17)[30],RI8X(17)[19],RI9F(17)[30],RI9G(17)[30],RI9X(17)[19],RJ1N[19], RJ1O[19],RJ1P[20],RJ1Z[19],RJ4H[30],RJ4I[30],RJ4W[30],RJ8F(17)[30], RJ8G(17)[30],RJ8X(17)[19],RJ9F(17)[30],RJ9G(17)[30],RJ9X(17)[19],RK1N[19], RK1O[19],RK1P[20],RK1Z[19],RK4H[30],RK4I[30],RK4W[30],RK8F(17)[30], RK8G(17)[30],RK8X(17)[19],RK9F(17)[30],RK9G(17)[30],RK9X(17)[19],RL1N[19], RL1O[19],RL1P[20],RL1Z[19],RL4H[30],RL4I[30],RL4W[30],RL8F(17)[30], RL8G(17)[30],RL8X(17)[19],RL9F(17)[30],RL9G(17)[30],RL9X(17)[19],RM1N[19], RM1O[19],RM1P[20],RM1Z[19],RM4H[30],RM4I[30],RM4W[30],RM8F(17)[30], RM8G(17)[30],RM8X(17)[19],RM9F(17)[30],RM9G(17)[30],RM9X(17)[19],RN1N[19], RN1O[19],RN1P[20],RN1Z[19],RN4H[30],RN4I[30],RN4W[30],RN8F(17)[30], RN8G(17)[30],RN8X(17)[19],RN9F(17)[30],RN9G(17)[30],RN9X(17)[19],RO1N[19], RO1O[19],RO1P[20],RO1Z[19],RO4H[30],RO4I[30],RO4W[30],RO8F(17)[30], RO8G(17)[30],RO8X(17)[19],RO9F(17)[30],RO9G(17)[30],RO9X(17)[19],RP1N[19], RP1O[19],RP1P[20],RP1Z[19],RP4H[30],RP4I[30],RP4W[30],RP8F(17)[30], RP8G(17)[30],RP8X(17)[19],RP9F(17)[30],RP9G(17)[30],RP9X(17)[19],RQ1N[19], RQ1O[19],RQ1P[20],RQ1Z[19],RQ4H[30],RQ4I[30],RQ4W[30],RQ8F(17)[30], RQ8G(17)[30],RQ8X(17)[19],RQ9F(17)[30],RQ9G(17)[30],RQ9X(17)[19],RR1N[19], RR1O[19],RR1P[20],RR1Z[19],RR4H[30],RR4I[30],RR4W[30],RR8F(17)[30], RR8G(17)[30],RR8X(17)[19],RR9F(17)[30],RR9G(17)[30],RR9X(17)[19],RT1N[19], RT1O[19],RT1P[20],RT1Z[19],RT4H[30],RT4I[30],RT4W[30],RT8F(17)[30], RT8G(17)[30],RT8X(17)[19],RT9F(17)[30],RT9G(17)[30],RT9X(17)[19],RU1N[19], RU1O[19],RU1P[20],RU1Z[19],RU4H[30],RU4I[30],RU4W[30],RU8F(17)[30], RU8G(17)[30],RU8X(17)[19],RU9F(17)[30],RU9G(17)[30],RU9X(17)[19],RV1N[19], RV1O[19],RV1P[20],RV1Z[19],RV4H[30],RV4I[30],RV4W[30],RV8F(17)[30], RV8G(17)[30],RV8X(17)[19],RV9F(17)[30],RV9G(17)[30],RV9X(17)[19],RW1N[19], RW1O[19],RW1P[20],RW1Z[19],RW4H[30],RW4I[30],RW4W[30],RW8F(17)[30], RW8G(17)[30],RW8X(17)[19],RW9F(17)[30],RW9G(17)[30],RW9X(17)[19],RX1N[19], RX1O[19],RX1P[20],RX1Z[19],RX4H[30],RX4I[30],RX4W[30],RX8F(17)[30], RX8G(17)[30],RX8X(17)[19],RX9F(17)[30],RX9G(17)[30],RX9X(17)[19],RY1N[19], RY1O[19],RY1P[20],RY1Z[19],RY4H[30],RY4I[30],RY4W[30],RY8F(17)[30], RY8G(17)[30],RY8X(17)[19],RY9F(17)[30],RY9G(17)[30],RY9X(17)[19],RZ1N[19], RZ1O[19],RZ1P[20],RZ1Z[19],RZ4H[30],RZ4I[30],RZ4W[30],RZ8F(17)[30], RZ8G(17)[30],RZ8X(17)[19],RZ9F(17)[30],RZ9G(17)[30],RZ9X(17)[19],U1N[19], U1O[19],U1P[20],U1Z[19],U4H[30],U4I[30],U4W[30],U8F(17)[30],U8G(17)[30], U8X(17)[19],U9F(17)[30],U9G(17)[30],U9X(17)[19],UA1N[19],UA1O[19], UA1P[20],UA1Z[19],UA4H[30],UA4I[30],UA4W[30],UA8F(17)[30],UA8G(17)[30], UA8X(17)[19],UA9F(17)[30],UA9G(17)[30],UA9X(17)[19],UB1N[19],UB1O[19], UB1P[20],UB1Z[19],UB4H[30],UB4I[30],UB4W[30],UB8F(17)[30],UB8G(17)[30], UB8X(17)[19],UB9F(17)[30],UB9G(17)[30],UB9X(17)[19],UC1N[19],UC1O[19], UC1P[20],UC1Z[19],UC4H[30],UC4I[30],UC4W[30],UC8F(17)[30],UC8G(17)[30], UC8X(17)[19],UC9F(17)[30],UC9G(17)[30],UC9X(17)[19],UD1N[19],UD1O[19], UD1P[20],UD1Z[19],UD4H[30],UD4I[30],UD4W[30],UD8F(17)[30],UD8G(17)[30], UD8X(17)[19],UD9F(17)[30],UD9G(17)[30],UD9X(17)[19],UE1N[19],UE1O[19], UE1P[20],UE1Z[19],UE4H[30],UE4I[30],UE4W[30],UE8F(17)[30],UE8G(17)[30], UE8X(17)[19],UE9F(17)[30],UE9G(17)[30],UE9X(17)[19],UF1N[19],UF1O[19], UF1P[20],UF1Z[19],UF4H[30],UF4I[30],UF4W[30],UF8F(17)[30],UF8G(17)[30], UF8X(17)[19],UF9F(17)[30],UF9G(17)[30],UF9X(17)[19],UG1N[19],UG1O[19], UG1P[20],UG1Z[19],UG4H[30],UG4I[30],UG4W[30],UG8F(17)[30],UG8G(17)[30], UG8X(17)[19],UG9F(17)[30],UG9G(17)[30],UG9X(17)[19],UH1N[19],UH1O[19], UH1P[20],UH1Z[19],UH4H[30],UH4I[30],UH4W[30],UH8F(17)[30],UH8G(17)[30], UH8X(17)[19],UH9F(17)[30],UH9G(17)[30],UH9X(17)[19],UI1N[19],UI1O[19], UI1P[20],UI1Z[19],UI4H[30],UI4I[30],UI4W[30],UI8F(17)[30],UI8G(17)[30], UI8X(17)[19],UI9F(17)[30],UI9G(17)[30],UI9X(17)[19],=R875R,=RD9CX/4/P, =RV9WKI/4/P,=RZ9HK/3/P; Kaliningrad: 15: 29: EU: 54.72: -20.52: -3.0: UA2: R2F,R2K,RA2,RC2F,RC2K,RD2F,RD2K,RF2F,RF2K,RG2F,RG2K,RI2F,RI2K,RJ2F,RJ2K, RK2F,RK2K,RL2F,RL2K,RM2F,RM2K,RN2F,RN2K,RO2F,RO2K,RP2F,RP2K,RQ2F,RQ2K, RR2F,RR2K,RT2F,RT2K,RU2F,RU2K,RV2F,RV2K,RW2F,RW2K,RX2F,RX2K,RY2F,RY2K, RZ2F,RZ2K,U2F,U2K,UA2,UB2,UC2,UD2,UE2,UF2,UG2,UH2,UI2,=R10RLHA/2,=R21GGGR, =R22GGGR,=R2MWO; Asiatic Russia: 17: 30: AS: 67.18: -104.00: -7.0: UA9: R0,R8(17)[30],R9,RA0,RA8(17)[30],RA9,RB0,RB8(17)[30],RB9,RC0,RC8(17)[30], RC9,RD0,RD8(17)[30],RD9,RE0,RE8(17)[30],RE9,RF0,RF8(17)[30],RF9,RG0, RG8(17)[30],RG9,RH0,RH8(17)[30],RH9,RI0,RI8(17)[30],RI9,RJ0,RJ8(17)[30], RJ9,RK0,RK8(17)[30],RK9,RL0,RL8(17)[30],RL9,RM0,RM8(17)[30],RM9,RN0, RN8(17)[30],RN9,RO0,RO8(17)[30],RO9,RP0,RP8(17)[30],RP9,RQ0,RQ8(17)[30], RQ9,RR0,RR8(17)[30],RR9,RS0,RS8(17)[30],RS9,RT0,RT8(17)[30],RT9,RU0, RU8(17)[30],RU9,RV0,RV8(17)[30],RV9,RW0,RW8(17)[30],RW9,RX0,RX8(17)[30], RX9,RY0,RY8(17)[30],RY9,RZ0,RZ8(17)[30],RZ9,U0,U8(17)[30],U9,UA0, UA8(17)[30],UA9,UB0,UB8(17)[30],UB9,UC0,UC8(17)[30],UC9,UD0,UD8(17)[30], UD9,UE0,UE8(17)[30],UE9,UF0,UF8(17)[30],UF9,UG0,UG8(17)[30],UG9,UH0, UH8(17)[30],UH9,UI0,UI8(17)[30],UI9,R0T(18)[32],R8H(18)[31],R8I(18)[31], R8O(18)[31],R8P(18)[31],R8S(16)[30],R8T(16)[30],R8U(18)[31],R8V(18)[31], R8W(16)[30],R8Y(18)[31],R8Z(18)[31],R9I(18)[31],R9M(17)[30],R9P(18)[31], R9S(16),R9T(16),R9V(18)[31],R9W(16),RA0T(18)[32],RA8H(18)[31], RA8I(18)[31],RA8O(18)[31],RA8P(18)[31],RA8S(16)[30],RA8T(16)[30], RA8U(18)[31],RA8V(18)[31],RA8W(16)[30],RA8Y(18)[31],RA8Z(18)[31], RA9I(18)[31],RA9M(17)[30],RA9P(18)[31],RA9S(16),RA9T(16),RA9V(18)[31], RA9W(16),RC0T(18)[32],RC8H(18)[31],RC8I(18)[31],RC8O(18)[31],RC8P(18)[31], RC8S(16)[30],RC8T(16)[30],RC8U(18)[31],RC8V(18)[31],RC8W(16)[30], RC8Y(18)[31],RC8Z(18)[31],RC9I(18)[31],RC9M(17)[30],RC9P(18)[31],RC9S(16), RC9T(16),RC9V(18)[31],RC9W(16),RD0T(18)[32],RD8H(18)[31],RD8I(18)[31], RD8O(18)[31],RD8P(18)[31],RD8S(16)[30],RD8T(16)[30],RD8U(18)[31], RD8V(18)[31],RD8W(16)[30],RD8Y(18)[31],RD8Z(18)[31],RD9I(18)[31], RD9M(17)[30],RD9P(18)[31],RD9S(16),RD9T(16),RD9V(18)[31],RD9W(16), RF0T(18)[32],RF8H(18)[31],RF8I(18)[31],RF8O(18)[31],RF8P(18)[31], RF8S(16)[30],RF8T(16)[30],RF8U(18)[31],RF8V(18)[31],RF8W(16)[30], RF8Y(18)[31],RF8Z(18)[31],RF9I(18)[31],RF9M(17)[30],RF9P(18)[31],RF9S(16), RF9T(16),RF9V(18)[31],RF9W(16),RG0T(18)[32],RG8H(18)[31],RG8I(18)[31], RG8O(18)[31],RG8P(18)[31],RG8S(16)[30],RG8T(16)[30],RG8U(18)[31], RG8V(18)[31],RG8W(16)[30],RG8Y(18)[31],RG8Z(18)[31],RG9I(18)[31], RG9M(17)[30],RG9P(18)[31],RG9S(16),RG9T(16),RG9V(18)[31],RG9W(16), RI0T(18)[32],RI8H(18)[31],RI8I(18)[31],RI8O(18)[31],RI8P(18)[31], RI8S(16)[30],RI8T(16)[30],RI8U(18)[31],RI8V(18)[31],RI8W(16)[30], RI8Y(18)[31],RI8Z(18)[31],RI9I(18)[31],RI9M(17)[30],RI9P(18)[31],RI9S(16), RI9T(16),RI9V(18)[31],RI9W(16),RJ0T(18)[32],RJ8H(18)[31],RJ8I(18)[31], RJ8O(18)[31],RJ8P(18)[31],RJ8S(16)[30],RJ8T(16)[30],RJ8U(18)[31], RJ8V(18)[31],RJ8W(16)[30],RJ8Y(18)[31],RJ8Z(18)[31],RJ9I(18)[31], RJ9M(17)[30],RJ9P(18)[31],RJ9S(16),RJ9T(16),RJ9V(18)[31],RJ9W(16), RK0T(18)[32],RK8H(18)[31],RK8I(18)[31],RK8O(18)[31],RK8P(18)[31], RK8S(16)[30],RK8T(16)[30],RK8U(18)[31],RK8V(18)[31],RK8W(16)[30], RK8Y(18)[31],RK8Z(18)[31],RK9I(18)[31],RK9M(17)[30],RK9P(18)[31],RK9S(16), RK9T(16),RK9V(18)[31],RK9W(16),RL0T(18)[32],RL8H(18)[31],RL8I(18)[31], RL8O(18)[31],RL8P(18)[31],RL8S(16)[30],RL8T(16)[30],RL8U(18)[31], RL8V(18)[31],RL8W(16)[30],RL8Y(18)[31],RL8Z(18)[31],RL9I(18)[31], RL9M(17)[30],RL9P(18)[31],RL9S(16),RL9T(16),RL9V(18)[31],RL9W(16), RM0T(18)[32],RM8H(18)[31],RM8I(18)[31],RM8O(18)[31],RM8P(18)[31], RM8S(16)[30],RM8T(16)[30],RM8U(18)[31],RM8V(18)[31],RM8W(16)[30], RM8Y(18)[31],RM8Z(18)[31],RM9I(18)[31],RM9M(17)[30],RM9P(18)[31],RM9S(16), RM9T(16),RM9V(18)[31],RM9W(16),RN0T(18)[32],RN8H(18)[31],RN8I(18)[31], RN8O(18)[31],RN8P(18)[31],RN8S(16)[30],RN8T(16)[30],RN8U(18)[31], RN8V(18)[31],RN8W(16)[30],RN8Y(18)[31],RN8Z(18)[31],RN9I(18)[31], RN9M(17)[30],RN9P(18)[31],RN9S(16),RN9T(16),RN9V(18)[31],RN9W(16), RO0T(18)[32],RO8H(18)[31],RO8I(18)[31],RO8O(18)[31],RO8P(18)[31], RO8S(16)[30],RO8T(16)[30],RO8U(18)[31],RO8V(18)[31],RO8W(16)[30], RO8Y(18)[31],RO8Z(18)[31],RO9I(18)[31],RO9M(17)[30],RO9P(18)[31],RO9S(16), RO9T(16),RO9V(18)[31],RO9W(16),RP0T(18)[32],RP8H(18)[31],RP8I(18)[31], RP8O(18)[31],RP8P(18)[31],RP8S(16)[30],RP8T(16)[30],RP8U(18)[31], RP8V(18)[31],RP8W(16)[30],RP8Y(18)[31],RP8Z(18)[31],RP9I(18)[31], RP9M(17)[30],RP9P(18)[31],RP9S(16),RP9T(16),RP9V(18)[31],RP9W(16), RQ0T(18)[32],RQ8H(18)[31],RQ8I(18)[31],RQ8O(18)[31],RQ8P(18)[31], RQ8S(16)[30],RQ8T(16)[30],RQ8U(18)[31],RQ8V(18)[31],RQ8W(16)[30], RQ8Y(18)[31],RQ8Z(18)[31],RQ9I(18)[31],RQ9M(17)[30],RQ9P(18)[31],RQ9S(16), RQ9T(16),RQ9V(18)[31],RQ9W(16),RR0T(18)[32],RR8H(18)[31],RR8I(18)[31], RR8O(18)[31],RR8P(18)[31],RR8S(16)[30],RR8T(16)[30],RR8U(18)[31], RR8V(18)[31],RR8W(16)[30],RR8Y(18)[31],RR8Z(18)[31],RR9I(18)[31], RR9M(17)[30],RR9P(18)[31],RR9S(16),RR9T(16),RR9V(18)[31],RR9W(16), RT0T(18)[32],RT8H(18)[31],RT8I(18)[31],RT8O(18)[31],RT8P(18)[31], RT8S(16)[30],RT8T(16)[30],RT8U(18)[31],RT8V(18)[31],RT8W(16)[30], RT8Y(18)[31],RT8Z(18)[31],RT9I(18)[31],RT9M(17)[30],RT9P(18)[31],RT9S(16), RT9T(16),RT9V(18)[31],RT9W(16),RU0T(18)[32],RU8H(18)[31],RU8I(18)[31], RU8O(18)[31],RU8P(18)[31],RU8S(16)[30],RU8T(16)[30],RU8U(18)[31], RU8V(18)[31],RU8W(16)[30],RU8Y(18)[31],RU8Z(18)[31],RU9I(18)[31], RU9M(17)[30],RU9P(18)[31],RU9S(16),RU9T(16),RU9V(18)[31],RU9W(16), RV0T(18)[32],RV8H(18)[31],RV8I(18)[31],RV8O(18)[31],RV8P(18)[31], RV8S(16)[30],RV8T(16)[30],RV8U(18)[31],RV8V(18)[31],RV8W(16)[30], RV8Y(18)[31],RV8Z(18)[31],RV9I(18)[31],RV9M(17)[30],RV9P(18)[31],RV9S(16), RV9T(16),RV9V(18)[31],RV9W(16),RW0T(18)[32],RW8H(18)[31],RW8I(18)[31], RW8O(18)[31],RW8P(18)[31],RW8S(16)[30],RW8T(16)[30],RW8U(18)[31], RW8V(18)[31],RW8W(16)[30],RW8Y(18)[31],RW8Z(18)[31],RW9I(18)[31], RW9M(17)[30],RW9P(18)[31],RW9S(16),RW9T(16),RW9V(18)[31],RW9W(16), RX0T(18)[32],RX8H(18)[31],RX8I(18)[31],RX8O(18)[31],RX8P(18)[31], RX8S(16)[30],RX8T(16)[30],RX8U(18)[31],RX8V(18)[31],RX8W(16)[30], RX8Y(18)[31],RX8Z(18)[31],RX9I(18)[31],RX9M(17)[30],RX9P(18)[31],RX9S(16), RX9T(16),RX9V(18)[31],RX9W(16),RY0T(18)[32],RY8H(18)[31],RY8I(18)[31], RY8O(18)[31],RY8P(18)[31],RY8S(16)[30],RY8T(16)[30],RY8U(18)[31], RY8V(18)[31],RY8W(16)[30],RY8Y(18)[31],RY8Z(18)[31],RY9I(18)[31], RY9M(17)[30],RY9P(18)[31],RY9S(16),RY9T(16),RY9V(18)[31],RY9W(16), RZ0T(18)[32],RZ8H(18)[31],RZ8I(18)[31],RZ8O(18)[31],RZ8P(18)[31], RZ8S(16)[30],RZ8T(16)[30],RZ8U(18)[31],RZ8V(18)[31],RZ8W(16)[30], RZ8Y(18)[31],RZ8Z(18)[31],RZ9I(18)[31],RZ9M(17)[30],RZ9P(18)[31],RZ9S(16), RZ9T(16),RZ9V(18)[31],RZ9W(16),U0T(18)[32],U8H(18)[31],U8I(18)[31], U8O(18)[31],U8P(18)[31],U8S(16)[30],U8T(16)[30],U8U(18)[31],U8V(18)[31], U8W(16)[30],U8Y(18)[31],U8Z(18)[31],U9I(18)[31],U9M(17)[30],U9P(18)[31], U9S(16),U9T(16),U9V(18)[31],U9W(16),UA0T(18)[32],UA8H(18)[31], UA8I(18)[31],UA8O(18)[31],UA8P(18)[31],UA8S(16)[30],UA8T(16)[30], UA8U(18)[31],UA8V(18)[31],UA8W(16)[30],UA8Y(18)[31],UA8Z(18)[31], UA9I(18)[31],UA9M(17)[30],UA9P(18)[31],UA9S(16),UA9T(16),UA9V(18)[31], UA9W(16),UB0T(18)[32],UB8H(18)[31],UB8I(18)[31],UB8O(18)[31],UB8P(18)[31], UB8S(16)[30],UB8T(16)[30],UB8U(18)[31],UB8V(18)[31],UB8W(16)[30], UB8Y(18)[31],UB8Z(18)[31],UB9I(18)[31],UB9M(17)[30],UB9P(18)[31],UB9S(16), UB9T(16),UB9V(18)[31],UB9W(16),UC0T(18)[32],UC8H(18)[31],UC8I(18)[31], UC8O(18)[31],UC8P(18)[31],UC8S(16)[30],UC8T(16)[30],UC8U(18)[31], UC8V(18)[31],UC8W(16)[30],UC8Y(18)[31],UC8Z(18)[31],UC9I(18)[31], UC9M(17)[30],UC9P(18)[31],UC9S(16),UC9T(16),UC9V(18)[31],UC9W(16), UD0T(18)[32],UD8H(18)[31],UD8I(18)[31],UD8O(18)[31],UD8P(18)[31], UD8S(16)[30],UD8T(16)[30],UD8U(18)[31],UD8V(18)[31],UD8W(16)[30], UD8Y(18)[31],UD8Z(18)[31],UD9I(18)[31],UD9M(17)[30],UD9P(18)[31],UD9S(16), UD9T(16),UD9V(18)[31],UD9W(16),UE0T(18)[32],UE8H(18)[31],UE8I(18)[31], UE8O(18)[31],UE8P(18)[31],UE8S(16)[30],UE8T(16)[30],UE8U(18)[31], UE8V(18)[31],UE8W(16)[30],UE8Y(18)[31],UE8Z(18)[31],UE9I(18)[31], UE9M(17)[30],UE9P(18)[31],UE9S(16),UE9T(16),UE9V(18)[31],UE9W(16), UF0T(18)[32],UF8H(18)[31],UF8I(18)[31],UF8O(18)[31],UF8P(18)[31], UF8S(16)[30],UF8T(16)[30],UF8U(18)[31],UF8V(18)[31],UF8W(16)[30], UF8Y(18)[31],UF8Z(18)[31],UF9I(18)[31],UF9M(17)[30],UF9P(18)[31],UF9S(16), UF9T(16),UF9V(18)[31],UF9W(16),UG0T(18)[32],UG8H(18)[31],UG8I(18)[31], UG8O(18)[31],UG8P(18)[31],UG8S(16)[30],UG8T(16)[30],UG8U(18)[31], UG8V(18)[31],UG8W(16)[30],UG8Y(18)[31],UG8Z(18)[31],UG9I(18)[31], UG9M(17)[30],UG9P(18)[31],UG9S(16),UG9T(16),UG9V(18)[31],UG9W(16), UH0T(18)[32],UH8H(18)[31],UH8I(18)[31],UH8O(18)[31],UH8P(18)[31], UH8S(16)[30],UH8T(16)[30],UH8U(18)[31],UH8V(18)[31],UH8W(16)[30], UH8Y(18)[31],UH8Z(18)[31],UH9I(18)[31],UH9M(17)[30],UH9P(18)[31],UH9S(16), UH9T(16),UH9V(18)[31],UH9W(16),UI0T(18)[32],UI8H(18)[31],UI8I(18)[31], UI8O(18)[31],UI8P(18)[31],UI8S(16)[30],UI8T(16)[30],UI8U(18)[31], UI8V(18)[31],UI8W(16)[30],UI8Y(18)[31],UI8Z(18)[31],UI9I(18)[31], UI9M(17)[30],UI9P(18)[31],UI9S(16),UI9T(16),UI9V(18)[31],UI9W(16), =RA/DL6XK,=RA/IK0PRH(19)[24],=RA/IK0PRH/P(19)[24],=RA/KE5JA(19)[34], =RA/UR5WT(18)[32],=RA/UT5IA(19)[23],=UE80C(19)[33]; Uzbekistan: 17: 30: AS: 41.40: -63.97: -5.0: UK: UJ,UK,UL,UM; Kazakhstan: 17: 30: AS: 48.17: -65.18: -5.0: UN: UN,UO,UP,UQ,UN0D[31],UN0F[31],UN0G[31],UN0J[31],UN0Q[31],UN0V[31], UN1D[31],UN1F[31],UN1G[31],UN1J[31],UN1Q[31],UN1V[31],UN2D[31],UN2F[31], UN2G[31],UN2J[31],UN2Q[31],UN2V[31],UN3D[31],UN3F[31],UN3G[31],UN3J[31], UN3Q[31],UN3V[31],UN4D[31],UN4F[31],UN4G[31],UN4J[31],UN4Q[31],UN4V[31], UN5D[31],UN5F[31],UN5G[31],UN5J[31],UN5Q[31],UN5V[31],UN6D[31],UN6F[31], UN6G[31],UN6J[31],UN6Q[31],UN6V[31],UN7D[31],UN7F[31],UN7G[31],UN7J[31], UN7Q[31],UN7V[31],UN8D[31],UN8F[31],UN8G[31],UN8J[31],UN8Q[31],UN8V[31], UN9D[31],UN9F[31],UN9G[31],UN9J[31],UN9Q[31],UN9V[31],UO0D[31],UO0F[31], UO0G[31],UO0J[31],UO0Q[31],UO0V[31],UO1D[31],UO1F[31],UO1G[31],UO1J[31], UO1Q[31],UO1V[31],UO2D[31],UO2F[31],UO2G[31],UO2J[31],UO2Q[31],UO2V[31], UO3D[31],UO3F[31],UO3G[31],UO3J[31],UO3Q[31],UO3V[31],UO4D[31],UO4F[31], UO4G[31],UO4J[31],UO4Q[31],UO4V[31],UO5D[31],UO5F[31],UO5G[31],UO5J[31], UO5Q[31],UO5V[31],UO6D[31],UO6F[31],UO6G[31],UO6J[31],UO6Q[31],UO6V[31], UO7D[31],UO7F[31],UO7G[31],UO7J[31],UO7Q[31],UO7V[31],UO8D[31],UO8F[31], UO8G[31],UO8J[31],UO8Q[31],UO8V[31],UO9D[31],UO9F[31],UO9G[31],UO9J[31], UO9Q[31],UO9V[31],UP0D[31],UP0F[31],UP0G[31],UP0J[31],UP0Q[31],UP0V[31], UP1D[31],UP1F[31],UP1G[31],UP1J[31],UP1Q[31],UP1V[31],UP2D[31],UP2F[31], UP2G[31],UP2J[31],UP2Q[31],UP2V[31],UP3D[31],UP3F[31],UP3G[31],UP3J[31], UP3Q[31],UP3V[31],UP4D[31],UP4F[31],UP4G[31],UP4J[31],UP4Q[31],UP4V[31], UP5D[31],UP5F[31],UP5G[31],UP5J[31],UP5Q[31],UP5V[31],UP6D[31],UP6F[31], UP6G[31],UP6J[31],UP6Q[31],UP6V[31],UP7D[31],UP7F[31],UP7G[31],UP7J[31], UP7Q[31],UP7V[31],UP8D[31],UP8F[31],UP8G[31],UP8J[31],UP8Q[31],UP8V[31], UP9D[31],UP9F[31],UP9G[31],UP9J[31],UP9Q[31],UP9V[31],UQ0D[31],UQ0F[31], UQ0G[31],UQ0J[31],UQ0Q[31],UQ0V[31],UQ1D[31],UQ1F[31],UQ1G[31],UQ1J[31], UQ1Q[31],UQ1V[31],UQ2D[31],UQ2F[31],UQ2G[31],UQ2J[31],UQ2Q[31],UQ2V[31], UQ3D[31],UQ3F[31],UQ3G[31],UQ3J[31],UQ3Q[31],UQ3V[31],UQ4D[31],UQ4F[31], UQ4G[31],UQ4J[31],UQ4Q[31],UQ4V[31],UQ5D[31],UQ5F[31],UQ5G[31],UQ5J[31], UQ5Q[31],UQ5V[31],UQ6D[31],UQ6F[31],UQ6G[31],UQ6J[31],UQ6Q[31],UQ6V[31], UQ7D[31],UQ7F[31],UQ7G[31],UQ7J[31],UQ7Q[31],UQ7V[31],UQ8D[31],UQ8F[31], UQ8G[31],UQ8J[31],UQ8Q[31],UQ8V[31],UQ9D[31],UQ9F[31],UQ9G[31],UQ9J[31], UQ9Q[31],UQ9V[31]; Ukraine: 16: 29: EU: 50.00: -30.00: -2.0: UR: EM,EN,EO,U5,UR,US,UT,UU,UV,UW,UX,UY,UZ; Antigua & Barbuda: 08: 11: NA: 17.07: 61.80: 4.0: V2: V2; Belize: 07: 11: NA: 16.97: 88.67: 6.0: V3: V3; St. Kitts & Nevis: 08: 11: NA: 17.37: 62.78: 4.0: V4: V4; Namibia: 38: 57: AF: -22.00: -17.00: -1.0: V5: V5; Micronesia: 27: 65: OC: 6.88: -158.20: -10.0: V6: V6; Marshall Islands: 31: 65: OC: 9.08: -167.33: -12.0: V7: V7; Brunei Darussalam: 28: 54: OC: 4.50: -114.60: -8.0: V8: V8; Canada: 05: 09: NA: 44.35: 78.75: 5.0: VE: CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,XL,XM,CF2[4],CG2[4],CH1,CH2(2),CI0(2)[4], CI1(1)[2],CI2,CJ2[4],CK2[4],CY1,CY2(2),CZ0(2)[4],CZ1(1)[2],CZ2,VA2[4], VB2[4],VC2[4],VD1,VD2(2),VE2[4],VF0(2)[4],VF1(1)[2],VF2,VG2[4],VO1,VO2(2), VX2[4],VY0(2)[4],VY1(1)[2],VY2,XJ1,XJ2(2),XK0(2)[4],XK1(1)[2],XK2,XL2[4], XM2[4],XN1,XN2(2),XO0(2)[4],XO1(1)[2],XO2,=VER20120918,=VA2PL(2)[4], =VE2AEJ(4)[4],=VE2CSI(2)[4],=VE2DXY(2)[4],=VE2EKA(2)[4],=VE2ENB(2)[4], =VE2EW(2)[4],=VE2FK[9],=VE2GSO(2)[4],=VE2HRI(2)[4],=VE2III(2)[4], =VE2IM(2)[4],=VE2TKH(2)[4],=VE2XB/3(4)[4],=VY0PW(4)[3]; Australia: 30: 59: OC: -23.70: -132.33: -10.0: VK: AX,VH,VI,VJ,VK,VL,VM,VN,VZ,AX4[55],VH4[55],VI4[55],VJ4[55],VK4[55], VL4[55],VM4[55],VN4[55],VZ4[55]; Heard Island: 39: 68: AF: -53.08: -73.50: -5.0: VK0H: =VK0IR; Macquarie Island: 30: 60: OC: -54.60: -158.88: -10.0: VK0M: =VK0TH; Cocos (Keeling) Islands: 29: 54: OC: -12.15: -96.82: -6.5: VK9C: AX9C,AX9Y,VH9C,VH9Y,VI9C,VI9Y,VJ9C,VJ9Y,VK9C,VK9Y,VL9C,VL9Y,VM9C,VM9Y, VN9C,VN9Y,VZ9C,VZ9Y,=VK9AA; Lord Howe Island: 30: 60: OC: -31.55: -159.08: -10.5: VK9L: AX9L,VH9L,VI9L,VJ9L,VK9L,VL9L,VM9L,VN9L,VZ9L,=VK9FLHI; Mellish Reef: 30: 56: OC: -17.40: -155.85: -10.0: VK9M: AX9M,VH9M,VI9M,VJ9M,VK9M,VL9M,VM9M,VN9M,VZ9M; Norfolk Island: 32: 60: OC: -29.03: -167.93: -11.5: VK9N: AX9,VH9,VI9,VJ9,VK9,VL9,VM9,VN9,VZ9; Willis Island: 30: 55: OC: -16.22: -150.02: -10.0: VK9W: AX9W,AX9Z,VH9W,VH9Z,VI9W,VI9Z,VJ9W,VJ9Z,VK9W,VK9Z,VL9W,VL9Z,VM9W,VM9Z, VN9W,VN9Z,VZ9W,VZ9Z; Christmas Island: 29: 54: OC: -10.48: -105.63: -7.0: VK9X: AX9X,VH9X,VI9X,VJ9X,VK9X,VL9X,VM9X,VN9X,VZ9X; Anguilla: 08: 11: NA: 18.23: 63.00: 4.0: VP2E: VP2E; Montserrat: 08: 11: NA: 16.75: 62.18: 4.0: VP2M: VP2M; British Virgin Islands: 08: 11: NA: 18.33: 64.75: 4.0: VP2V: VP2V; Turks & Caicos Islands: 08: 11: NA: 21.77: 71.75: 5.0: VP5: VP5,VQ5; Pitcairn Island: 32: 63: OC: -24.35: 128.32: 8.0: VP6: VP6; Ducie Island: 32: 63: OC: -24.70: 124.80: 8.0: VP6/d: =VP6DX; Falkland Islands: 13: 16: SA: -51.63: 58.72: 4.0: VP8: VP8; South Georgia Island: 13: 73: SA: -54.48: 37.08: 2.0: VP8/g: =VP8SGK; South Shetland Islands: 13: 73: SA: -62.08: 58.67: 4.0: VP8/h: CE9,XR9,=DT8A,=HF0POL,=RI1ANA,=RI1ANF,=RI1ANF/P; South Orkney Islands: 13: 73: SA: -60.60: 45.55: 3.0: VP8/o: =LU1ZA; South Sandwich Islands: 13: 73: SA: -58.43: 26.33: 2.0: VP8/s: =VP8THU; Bermuda: 05: 11: NA: 32.32: 64.73: 4.0: VP9: VP9; Chagos Islands: 39: 41: AF: -7.32: -72.42: -6.0: VQ9: VQ9; Hong Kong: 24: 44: AS: 22.28: -114.18: -8.0: VR: VR; India: 22: 41: AS: 22.50: -77.58: -5.5: VU: 8T,8U,8V,8W,8X,8Y,AT,AU,AV,AW,VT,VU,VV,VW; Andaman & Nicobar Is.: 26: 49: AS: 12.37: -92.78: -5.5: VU4: VU4; Lakshadweep Islands: 22: 41: AS: 11.23: -72.78: -5.5: VU7: VU7; Mexico: 06: 10: NA: 24.00: 102.00: 6.0: XE: 4A,4B,4C,6D,6E,6F,6G,6H,6I,6J,XA,XB,XC,XD,XE,XF,XG,XH,XI; Revillagigedo: 06: 10: NA: 18.77: 110.97: 7.0: XF4: 4A4,4B4,4C4,6D4,6E4,6F4,6G4,6H4,6I4,6J4,XA4,XB4,XC4,XD4,XE4,XF0,XF4,XG4, XH4,XI4; Burkina Faso: 35: 46: AF: 12.00: 2.00: 0.0: XT: XT; Cambodia: 26: 49: AS: 12.93: -105.13: -7.0: XU: XU; Laos: 26: 49: AS: 18.20: -104.55: -7.0: XW: XW; Macao: 24: 44: AS: 22.10: -113.50: -8.0: XX9: XX9; Myanmar: 26: 49: AS: 20.00: -96.37: -6.5: XZ: XY,XZ; Afghanistan: 21: 40: AS: 34.70: -65.80: -4.5: YA: T6,YA; Indonesia: 28: 51: OC: -7.30: -109.88: -7.0: YB: 7A,7B,7C,7D,7E,7F,7G,7H,7I,8A,8B,8C,8D,8E,8F,8G,8H,8I,JZ,PK,PL,PM,PN,PO, YB,YC,YD,YE,YF,YG,YH,YB0[54],YB1[54],YB2[54],YB3[54],YB4[54],YB5[54], YB6[54],YB7[54],YB8[54],YC0[54],YC1[54],YC2[54],YC3[54],YC4[54],YC5[54], YC6[54],YC7[54],YC8[54],YD0[54],YD1[54],YD2[54],YD3[54],YD4[54],YD5[54], YD6[54],YD7[54],YD8[54],YE0[54],YE1[54],YE2[54],YE3[54],YE4[54],YE5[54], YE6[54],YE7[54],YE8[54],YF0[54],YF1[54],YF2[54],YF3[54],YF4[54],YF5[54], YF6[54],YF7[54],YF8[54],YG0[54],YG1[54],YG2[54],YG3[54],YG4[54],YG5[54], YG6[54],YG7[54],YG8[54],YH0[54],YH1[54],YH2[54],YH3[54],YH4[54],YH5[54], YH6[54],YH7[54],YH8[54]; Iraq: 21: 39: AS: 33.92: -42.78: -3.0: YI: HN,YI; Vanuatu: 32: 56: OC: -17.67: -168.38: -11.0: YJ: YJ; Syria: 20: 39: AS: 35.38: -38.20: -2.0: YK: 6C,YK; Latvia: 15: 29: EU: 57.03: -24.65: -2.0: YL: YL; Nicaragua: 07: 11: NA: 12.88: 85.05: 6.0: YN: H6,H7,HT,YN; Romania: 20: 28: EU: 45.78: -24.70: -2.0: YO: YO,YP,YQ,YR; El Salvador: 07: 11: NA: 14.00: 89.00: 6.0: YS: HU,YS; Serbia: 15: 28: EU: 44.00: -21.00: -1.0: YU: 4N,YT,YU; Venezuela: 09: 12: SA: 8.00: 66.00: 4.5: YV: 4M,YV,YW,YX,YY; Aves Island: 08: 11: NA: 15.67: 63.60: 4.0: YV0: 4M0,YV0,YW0,YX0,YY0; Zimbabwe: 38: 53: AF: -18.00: -31.00: -2.0: Z2: Z2; Macedonia: 15: 28: EU: 41.60: -21.65: -1.0: Z3: Z3; Kosovo: 15: 28: EU: 42.67: -21.17: -1.0: *Z6: Z6,=YU8/IV3LAR; Republic of South Sudan: 34: 48: AF: 4.85: -31.60: -3.0: Z8: Z8; Albania: 15: 28: EU: 41.00: -20.00: -1.0: ZA: ZA; Gibraltar: 14: 37: EU: 36.15: 5.37: -1.0: ZB: ZB,ZG; UK Base Areas on Cyprus: 20: 39: AS: 35.32: -33.57: -2.0: ZC4: ZC4; St. Helena: 36: 66: AF: -15.97: 5.72: 0.0: ZD7: ZD7; Ascension Island: 36: 66: AF: -7.93: 14.37: 0.0: ZD8: ZD8; Tristan da Cunha & Gough: 38: 66: AF: -37.13: 12.30: 0.0: ZD9: ZD9; Cayman Islands: 08: 11: NA: 19.32: 81.22: 5.0: ZF: ZF; Tokelau Islands: 31: 62: OC: -9.40: 171.20: -13.0: ZK3: ZK3; New Zealand: 32: 60: OC: -41.83: -173.27: -12.0: ZL: ZK,ZL,ZM; Chatham Islands: 32: 60: OC: -43.85: 176.48: -12.75: ZL7: ZL7,ZM7; Kermadec Islands: 32: 60: OC: -29.25: 177.92: -12.0: ZL8: ZL8,ZM8; Auckland & Campbell Is.: 32: 60: OC: -50.73: -166.10: -12.0: ZL9: ZL9,ZM9; Paraguay: 11: 14: SA: -25.27: 57.67: 4.0: ZP: ZP; South Africa: 38: 57: AF: -29.07: -22.63: -2.0: ZS: H5,S4,S8,V9,ZR,ZS,ZT,ZU,=ZS1CT/L,=ZS1FRC/L,=ZS5ZLB/L; Pr. Edward & Marion Is.: 38: 57: AF: -46.88: -37.72: -3.0: ZS8: ZR8,ZS8,ZT8,ZU8; tucnak-4.04/data/coradd.pl0000755000175000017500000000067211277513163012367 00000000000000#!/usr/bin/perl -w use Data::Dumper; open(COR, ">>tucnakcor") or die; $t=128; while ($s=<>){ chomp($s); next if (length($s)==0); ($w,$h)=split /\s+/,$s; print Dumper($w,$h); next unless defined $w; next unless defined $h; $iw = int($w * 100); $ih = int($h * 100); print Dumper($iw, $ih); $bin=pack("ccccc", $ih % 256, $ih / 256, $iw % 256, $iw / 256, $t); $t=0; print COR $bin; } close(COR); tucnak-4.04/data/tucnaknames0000644000175000017500000012422512010414765013022 00000000000000OK1A Milan OK1AA Ludek OK1AAC Oldrich OK1AAF Rudolf OK1AAI Zdenek OK1AAM Petr OK1AAP Ales OK1AAU Frantisek OK1AAZ Josef OK1ABA Josef OK1ABF Vladimir OK1ABG Vaclav OK1ABR Antonin OK1ACE Vaclav OK1ACF Zdenek OK1ACK Jiri OK1ACO Jiri OK1ACP Lubos OK1ACS Vaclav OK1AD Ladislav OK1ADA Alena OK1ADM Vaclav OK1ADO Frantisek OK1ADR Juraj OK1ADT Pavel OK1ADY Jozef OK1AE Zdenek OK1AEB Karel OK1AEM Josef OK1AEU Martin OK1AEV Pavel OK1AEW Jaroslav OK1AEY Bozetech OK1AEZ Jiri OK1AFI Vladimir OK1AFJ Ervin OK1AFO Antonin OK1AFR Rostislav OK1AFU Jan OK1AFV Vladislav OK1AG Zdenek OK1AGC Ales OK1AGE Stanislav OK1AGM Josef OK1AGR Vlasta OK1AGS Miroslav OK1AHB Antonin OK1AHG Jan OK1AHJ Jaroslav OK1AHM Lubomir OK1AHO Pribin OK1AHV Beda OK1AHX Stanislav OK1AHY Oldrich OK1AI Lubomir OK1AIC Stanislav OK1AIG Miroslav OK1AIJ Karel OK1AIK Zdenek OK1AIL Miloslav OK1AIM Vaclav OK1AIT Jaromir OK1AIX Oldrich OK1AIY Pavel OK1AIZ Miloslav OK1AJ Petr OK1AJD Vladimir OK1AJJ Josef OK1AJL Josef OK1AJR Vaclav OK1AJU Jiri OK1AJY Stanislav OK1AK Vlastimil OK1AKF Cestmir OK1AKI Petr OK1AKJ Frantisek OK1AKM Radek OK1AKU Stepan OK1AL Karel OK1ALA Vaclav OK1ALB Jaroslav OK1ALG Vaclav OK1ALK Hana OK1ALL Vaclav OK1ALM Jaroslav OK1ALR Karel OK1ALU Bohumil OK1ALY Ivan OK1ALZ Josef OK1AMD Milos OK1AME Milan OK1AMF Frantisek OK1AMJ Jaroslav OK1AMO Vladimir OK1AMP Frantisek OK1AMT Pavel OK1AMU Jiri OK1AMY Alek OK1ANA Vaclav OK1ANJ Jindrich OK1ANM Stanislav OK1ANN Vladimir OK1ANO Josef OK1ANR Vaclav OK1ANS Ivan OK1ANT Vaclav OK1ANV Vaclav OK1ANY Josef OK1AO Adolf OK1AOF Ivo OK1AOT Adolf OK1AOU Jaroslav OK1AOV Jiri OK1AOZ Jiri OK1APB Lubos OK1APC Josef OK1APE Alois OK1APF Jiri OK1APG Jiri OK1API Josef OK1APR Jan OK1APS Jan OK1APT Miroslav OK1APU Mojmir OK1APV Antonin OK1APW Miroslav OK1APZ Emil OK1AQB Jan OK1AQL Jindrich OK1AQN Miroslav OK1AQO Josef OK1AQT Vladimir OK1AQW Zdenek OK1AR Zdenek OK1ARA Jiri OK1ARE Petr OK1ARI Jaroslava OK1ARN Jiri OK1ARO Bohumil OK1ARQ Josef OK1AS Ludovit OK1ASG Antonin OK1ASJ Jaroslav OK1ASK Jana OK1ASR Josef OK1AT Jiri OK1ATC Karel OK1ATI Jaroslav OK1ATL Petr OK1ATN Stanislav OK1ATP Jaroslav OK1ATR Dalibor OK1ATW Josef OK1ATX Jan OK1ATY Jaromir OK1AU Stanislav OK1AUB Vladislav OK1AUC Josef OK1AUE Miloslav OK1AUK Jozef OK1AUN Vaclav OK1AUO Tomas OK1AUP Vaclav OK1AUV Vladimir OK1AUX Bedrich OK1AUZ Zdenek OK1AVI Jiri OK1AVO Jaroslav OK1AVP Jan OK1AVR Jan OK1AVV Jiri OK1AVY Dobroslav OK1AW Pavel OK1AWC Miroslav OK1AWG Josef OK1AWH Bohuslav OK1AWJ Jaroslav OK1AWK Milos OK1AWO Stanislav OK1AWR Jiri OK1AWU Milos OK1AXA Ladislav OK1AXB Josef OK1AXG Bohumil OK1AXK Jan OK1AXL Josef OK1AXX Pavel OK1AY Josef OK1AYA Silvestr OK1AYB Vaclav OK1AYD Josef OK1AYE Jiri OK1AYF Vladimir OK1AYN Vladislav OK1AYR Jan OK1AYU Petr OK1AYV Frantisek OK1AYW Vaclav OK1AYY Jaroslav OK1AYZ Pavel OK1AZD Emil OK1AZR Bohdan OK1BA Karel OK1BAF Jan OK1BAH Jiri OK1BB Jaroslav OK1BC Robert OK1BET Miroslav OK1BF Roman OK1BI Jiri OK1BJH Josef OK1BKO Radek OK1BLU Milan OK1BN Petr OK1BO Mikulas OK1BPO Petr OK1BQT Vlastimil OK1BTW Jiri OK1BU Jindrich OK1BWF Ladislav OK1BYR Martin OK1BZ Jaroslav OK1CAG Milan OK1CAM Olga OK1CAP Ales OK1CAU Lubos OK1CAV Jiri OK1CB Jozef OK1CBB Jan OK1CBI Miloslav OK1CBM Michal OK1CBR Roman OK1CC Karel OK1CCK Zdenek OK1CCM Jan OK1CCS Josef OK1CD Karel OK1CDA Vladimir OK1CDE Petr OK1CDF Vladimir OK1CDG Milan OK1CDS Daniel OK1CDT Jakub OK1CDU Petr OK1CEI Vlastimil OK1CF Karel OK1CFK Frantisek OK1CGA Martin OK1CGQ Pavel OK1CH Jan OK1CHC Jiri OK1CHE Jiri OK1CHL Miroslav OK1CHM Jan OK1CI Josef OK1CID Stanislav OK1CIG Zdenek OK1CIS Jiri OK1CJ Jaroslav OK1CJB Jaroslav OK1CJH Jan OK1CJJ Jan OK1CJN Jiri OK1CJS Jaroslav OK1CJT Josef OK1CKF Frantisek OK1CKH Vladimir OK1CKV Vaclav OK1CLA Ludek OK1CLD Ondrej OK1CLO Ladislav OK1CLR Ludvik OK1CLT Libor OK1CLZ Zdenek OK1CMA Martin OK1CMD Lubos OK1CMJ Josef OK1CMQ Gabriel OK1CMU Petr OK1CMV Vaclav OK1CNM Jaroslav OK1CNN Vaclav OK1CO Jiri OK1COM Jan OK1COT Ondrej OK1CP Ivan OK1CPB Libor OK1CPR Radek OK1CPS Arnost OK1CPU Miloslav OK1CR Frantisek OK1CRM Pavol OK1CRS Pavel OK1CRX Katarina OK1CS Emil OK1CSS Stepan OK1CT Milos OK1CTA Tomas OK1CTB Bedrich OK1CTM Pavel OK1CTT Rostislav OK1CU Vitezslav OK1CUV Zdenek OK1CVC Vaclav OK1CVM Martina OK1CVP Vaclav OK1CW Vladimir OK1CYB Lenka OK1CYC Miroslav OK1DAE Petr OK1DAH Jan OK1DAI Antonin OK1DAK Vladimir OK1DAM Josef OK1DAR Jiri OK1DAU Jaroslav OK1DAV Oldrich OK1DBF Otakar OK1DBK Jan OK1DBL Alexander OK1DBQ Milan OK1DBS David OK1DBT Zdenek OK1DBU Ivan OK1DC Dusan OK1DCA Andre OK1DCB Frantisek OK1DCF Ladislav OK1DCI Jiri OK1DCK Ladislav OK1DCM Jiri OK1DCP Frantisek OK1DCS Vaclav OK1DCU Jaroslav OK1DCV Frantisek OK1DCX Vojtech OK1DDA Frantisek OK1DDB Jan OK1DDC Jindrich OK1DDD Karel OK1DDJ Karel OK1DDQ Jiri OK1DDV Vladimir OK1DDX Vaclav OK1DEC Josef OK1DEF Zdenek OK1DEK Jaromir OK1DEM Josef OK1DEP Radoslav OK1DEU Roman OK1DEZ Jiri OK1DF Frantisek OK1DFC Zdenek OK1DFE Eva OK1DFK Frantisek OK1DFR Pavel OK1DFT Antonin OK1DG Karel OK1DGT Zdenek OK1DGU Vladimir OK1DGV Milos OK1DGY Jindrich OK1DH Robert OK1DHA Jiri OK1DHJ Jan OK1DHN Vladimir OK1DHP Petr OK1DHR Hilbert OK1DHZ Karel OK1DIB Adolf OK1DID Vladimir OK1DIE Petr OK1DIK Karel OK1DIL Alois OK1DIN Pavel OK1DIP Miloslav OK1DIX Ladislav OK1DJD Josef OK1DJE Josef OK1DJL Josef OK1DJO Martin OK1DJS Jan OK1DJT Tomas OK1DJW Jiri OK1DKA Bohuslav OK1DKB Rudolf OK1DKK Jan OK1DKM Milos OK1DKO Karel OK1DKR Rudolf OK1DKU Vladimir OK1DKX Jaroslav OK1DLA Ludek OK1DLB Milos OK1DLS Miloslav OK1DLX Miroslav OK1DLY Ladislav OK1DLZ Lubos OK1DM Otakar OK1DMB Milos OK1DMD Helena OK1DMM Milos OK1DMP Milan OK1DMQ Drahomir OK1DMT Zdenek OK1DMW Milena OK1DMZ Jaroslav OK1DN Vaclav OK1DNJ Jaroslav OK1DNL Jiri OK1DNM Milan OK1DNQ Vlasta OK1DNS Michal OK1DNT Denis OK1DNU Bohuslav OK1DNV Vaclav OK1DNW Jaroslav OK1DNZ Pavel OK1DO Jiri OK1DOA Josef OK1DOB Otakar OK1DOF Petr OK1DOH Jan OK1DOL Libor OK1DOM Miroslav OK1DOR Antonin OK1DOS Zdenek OK1DOU Miloslav OK1DOW Vojta OK1DOY Zdenek OK1DOZ Bedrich OK1DP Petr OK1DPA Ladislav OK1DPF Petr OK1DPO Josef OK1DPQ Petr OK1DPR Ivan OK1DPU Jan OK1DPV Pavel OK1DPX Petr OK1DQA Martin OK1DQP Ales OK1DQR Frantisek OK1DQT Jiri OK1DR Jiri OK1DRD Miroslav OK1DRG Eduard OK1DRH Jiri OK1DRJ Jiri OK1DRQ Pavel OK1DRX Jiri OK1DRZ Rostislav OK1DS Leona OK1DSA Roman OK1DSD Daniel OK1DSF Karel OK1DSN Michal OK1DSP Bretislav OK1DSS Sieghard OK1DST Alexandr OK1DSX Jaroslav OK1DSZ Zdenek OK1DT Zdenek OK1DTM Josef OK1DTN Rudolf OK1DTP David OK1DTU Petr OK1DTX Vera OK1DUB Miroslav OK1DUG Petr OK1DUO Jaroslav OK1DUS Martin OK1DUT Jiri OK1DUV Jiri OK1DVA Olga OK1DVB Vaclav OK1DVG Vaclav OK1DVK Vojtech OK1DVN Vojtech OK1DVP Valdemar OK1DVU Stanislav OK1DVW Alois OK1DVX Ladislav OK1DVZ Zdenek OK1DWC Milan OK1DWD Jarmila OK1DWF Karel OK1DWJ Ales OK1DX Pavel OK1DXE Vaclav OK1DXF Rostislav OK1DXI Miloslav OK1DXJ Ludvik OK1DXK Jiri OK1DXL Jiri OK1DXM Jaromir OK1DXO Zbynek OK1DXR Pavel OK1DXT Antonin OK1DY Kamil OK1DYW Helena OK1DYX Marie OK1DZA Zdenka OK1DZG Jiri OK1DZH Helena OK1DZM Michal OK1DZR Ludek OK1EA Vlastimil OK1EC Radek OK1ED Jan OK1EE Martin OK1EG Vladimir OK1EK Frantisek OK1ELA Martin OK1EM Edvin OK1EO Jaroslav OK1EP Karel OK1EQ Petr OK1ES Josef OK1ET Petr OK1EV Jan OK1EVA Eva OK1EY Pavel OK1FA Jaroslav OK1FAC Lubos OK1FAG Jiri OK1FAH Josef OK1FAI Vaclav OK1FAK Svojmir OK1FAM Ludvik OK1FAN Frantisek OK1FAO Jiri OK1FAP Bohumil OK1FAT Miroslav OK1FAU Jaroslav OK1FAY Zdenek OK1FBE Vaclav OK1FBH Karel OK1FBI Ludek OK1FBL Josefa OK1FBO Karel OK1FBU Dusan OK1FBW Marcel OK1FCA Stanislav OK1FCB Jiri OK1FCF Jiri OK1FCJ Petr OK1FCK Petr OK1FCR Vladimir OK1FCS Vaclav OK1FCT Josef OK1FCX Radovan OK1FD Vaclav OK1FDC Frantisek OK1FDE Radoslav OK1FDH Pavel OK1FDN Frantisek OK1FDR Radim OK1FDS Dalibor OK1FDY Rudolf OK1FDZ Pavel OK1FED Josef OK1FEK Jaroslav OK1FEN Robert OK1FET Vladimir OK1FF Petr OK1FFE Josef OK1FFH Mojmir OK1FFP Jindrich OK1FFR Rudolf OK1FFS Petr OK1FFU Petr OK1FFV Jaromir OK1FFW Pavel OK1FFY Helena OK1FGA Josef OK1FGB Bohuslav OK1FGD Lubos OK1FGE Vladimir OK1FGF Jirina OK1FGH Miroslav OK1FGN Karel OK1FGS Karel OK1FGU Rudolf OK1FGY Josef OK1FGZ Ladislav OK1FHA Frantisek OK1FHD Josef OK1FHE Eduard OK1FHF Frantisek OK1FHG Petr OK1FHI Radek OK1FHP Frantisek OK1FHT Frantisek OK1FI Vaclav OK1FII Vladimir OK1FIK Vladislav OK1FIM Vlastimil OK1FIP Petr OK1FIR Vaclav OK1FIV Ivan OK1FIY Zdenek OK1FJB Jan OK1FJD David OK1FJJ Josef OK1FJK Jan OK1FJN Josef OK1FJP Jindrich OK1FJS Jaroslav OK1FJW Bohuslav OK1FJX Jindrich OK1FJY Pavel OK1FK Frantisek OK1FKD Josef OK1FKF Karel OK1FKH Jaroslav OK1FKL Karel OK1FKR Josef OK1FKV Petr OK1FL Josef OK1FLB Vladimir OK1FLC Michal OK1FLK Vladimir OK1FLR Ladislav OK1FLT Lubomir OK1FLX Martin OK1FLY Karel OK1FM Milan OK1FMD Martin OK1FMF Milan OK1FMG Vitezslav OK1FMJ Josef OK1FML Ladislav OK1FMM Milan OK1FMS Martin OK1FMU Jiri OK1FMW Ladislav OK1FMX Milan OK1FMY Milos OK1FNA Vladimir OK1FNI Miloslav OK1FNN Marek OK1FNS Zlata OK1FNT Tomas OK1FNV Jiri OK1FNX Vladimir OK1FOD Oldrich OK1FOG Jan OK1FOM Vaclav OK1FOU Jindrich OK1FOX Jiri OK1FP Frantisek OK1FPA Petr OK1FPD Petr OK1FPE Martin OK1FPG Jiri OK1FPL Liboslav OK1FPM Miroslav OK1FPQ Ladislav OK1FPR Milos OK1FPS Pavel OK1FQC Miroslav OK1FQT Karel OK1FR Frantisek OK1FRA Josef OK1FRE Frantisek OK1FRG Petr OK1FRI Ivo OK1FRJ Josef OK1FRN Martin OK1FRO Frantisek OK1FRT Ladislav OK1FRU Pavel OK1FRZ Vladimir OK1FSM Jiri OK1FST Stefan OK1FSX Tomas OK1FT Jiri OK1FTC Tomas OK1FTD Michael OK1FTG Karel OK1FTH Pavel OK1FTJ Jiri OK1FTK Antonin OK1FTM Jaroslav OK1FTS Jaroslav OK1FTV Vladimir OK1FTW Jiri OK1FUA Martin OK1FUK Kamil OK1FUU Michal OK1FUW Jaroslav OK1FV Vaclav OK1FVI Vitezslav OK1FVJ Jiri OK1FVN Jakub OK1FVS Vaclav OK1FVU Vladimir OK1FVV Vladimir OK1FWA Ladislav OK1FWF Frantisek OK1FWI Pavel OK1FWO Ondrej OK1FWQ Josef OK1FWS Jozef OK1FWT Frantisek OK1FWU Dana OK1FWW Miroslav OK1FXF Tomas OK1FXG Martin OK1FXK Vitezslav OK1FYY Vladimir OK1FZH Zdenek OK1FZJ Josef OK1FZK Zdenek OK1FZT Jan OK1GEO Jiri OK1GET David OK1GF Zdenek OK1GHZ Michal OK1GI Vojtech OK1GK Pavel OK1GKO Kurt OK1GLB Jiri OK1GM Petr OK1GMB Bohumil OK1GMR Milan OK1GP Gerhard OK1GPC Stanislav OK1GS Miroslav OK1GSB Jan OK1GT Jiri OK1GTH Tomas OK1GU Pavel OK1GV Miroslav OK1HAB Josef OK1HAI Alois OK1HAK Milan OK1HAL Jitka OK1HAN Frantisek OK1HAS Ludek OK1HAY Alois OK1HB Rudolf OK1HBB Jiri OK1HBJ Josef OK1HBM Miroslav OK1HBT Petr OK1HC Vlastimil OK1HCA Alois OK1HCC Vaclav OK1HCD Stanislav OK1HCF Otakar OK1HCG Karel OK1HCW Hana OK1HDF Dalibor OK1HDR Jan OK1HEH Eduard OK1HFE Jiri OK1HFP Frantisek OK1HGB Bedrich OK1HH Frantisek OK1HI Lukas OK1HIL Jan OK1HIR Jindriska OK1HJI Jiri OK1HJP Jaroslav OK1HJS Jaroslav OK1HJV Jaromir OK1HJZ Jiri OK1HK Rudolf OK1HKF Jaroslav OK1HKW Frantisek OK1HL Jaroslav OK1HLB Ladislav OK1HLE Jaroslav OK1HLS Ladislav OK1HMB Michal OK1HMD Martin OK1HMN Martin OK1HMO Michal OK1HMP Martin OK1HMV Michal OK1HOC Petr OK1HP Petr OK1HPP Petr OK1HPS Miroslav OK1HPX Petr OK1HRA Daniel OK1HSF Petr OK1HSJ Jan OK1HSL Stefan OK1HSV Stanislav OK1HT Petr OK1HTM Petra OK1HTP Hana OK1HTV Tomas OK1HWB Michal OK1HWI Milan OK1HWS Rudolf OK1HWU Jiri OK1HX Jaroslav OK1HXZ Petr OK1HYN Hynek OK1IA Jan OK1IAL Pavel OK1IAO Jaroslav OK1IAS Vaclav OK1IAT Josef OK1IAY Miroslav OK1IBB Frantisek OK1IBK Bohumil OK1IBL Vaclav OK1IBM Petr OK1IBQ Karel OK1IC Tomas OK1ICQ Tomas OK1ICW Michal OK1ID Daniel OK1IDP Zbynek OK1IDZ Zdenek OK1IE Jan OK1IEC Jiri OK1IEF Vitezslav OK1IEI Ivan OK1IES Emanuel OK1IF Milan OK1IFE Stanislav OK1IFT Martin OK1IFZ Frantisek OK1IGO Petr OK1IGZ Zdenek OK1IHB Darina OK1IHG Hana OK1IHR Robert OK1IHZ Zdenek OK1II Jan OK1IIJ Jan OK1IIK Ivana OK1IIN Alexej OK1IIV Ivo OK1IJC Milan OK1IJK Karel OK1IJS Josef OK1IJV Jaroslav OK1IK Vladimir OK1IKE Jiri OK1IKP Karel OK1IKQ Petr OK1IL Ivan OK1ILB Ladislav OK1IM Jiri OK1IMC Milan OK1IMV Vladislav OK1IN Petr OK1INE Miroslav OK1ING Pavel OK1INO David OK1INT Frantisek OK1IO Jiri OK1IOA Jaroslav OK1IOK Oldrich OK1IPE Eduard OK1IPS Pavel OK1IPT Josef OK1IPV Petr OK1IQN Karel OK1IRZ Jaroslav OK1ISC Ivo OK1ISH Stanislav OK1ISW Pavel OK1ITK Petr OK1IUO Alexandr OK1IUS Zdenek OK1IVF Vaclav OK1IVI Ivana OK1IVO Jan OK1IVP Vaclav OK1IVU Vladimir OK1IVW Vlastimil OK1IVZ Vladislav OK1IW Milan OK1IWI Jaromir OK1IWN Jan OK1IWP Alena OK1IWR Radek OK1IWS Wolfgang OK1IZK Eliska OK1JAE Jiri OK1JAF Frantisek OK1JAG Jaroslav OK1JAM Ladislav OK1JAX Pavel OK1JBO Bozena OK1JC Jan OK1JCF Pavel OK1JCI Jiri OK1JCQ Jaroslav OK1JDF Jiri OK1JDJ Jiri OK1JDR Jan OK1JDU Josef OK1JDZ Stanislav OK1JEE Bohumil OK1JEG Frantisek OK1JEK Zdenek OK1JFC Frantisek OK1JFF Petr OK1JFH Josef OK1JFP Pavel OK1JFR Jirka OK1JGM Miroslav OK1JH Jiri OK1JHF Josef OK1JHH Helena OK1JHM Milan OK1JHQ Jaroslav OK1JHU Jaroslav OK1JHV Jaroslav OK1JIA Jiri OK1JIC Jiri OK1JIG Jiri OK1JIM Jaroslav OK1JIR Jiri OK1JIX Josef OK1JJ Jiri OK1JJT Jana OK1JK Jan OK1JKA Adam OK1JKM Miloslav OK1JKN Bohuslav OK1JKP Petr OK1JKR Zdenek OK1JKT Karel OK1JKU Pavel OK1JLO Martin OK1JLX Alex OK1JLZ Vladimir OK1JM Jiri OK1JMB Miroslav OK1JMD Martin OK1JME Arnost OK1JMJ Miroslav OK1JMK Maxim OK1JMO Miroslav OK1JMP Petr OK1JMS Milan OK1JMW Pavel OK1JMZ Zdenek OK1JNB Jan OK1JNU Vaclav OK1JNW Lukas OK1JOL Jindrich OK1JON Jaromir OK1JOY Miroslav OK1JPB Petr OK1JPH Jiri OK1JPO Petr OK1JPP Petr OK1JQD Jaroslav OK1JQP Jaroslav OK1JR Stanislav OK1JRA Tomas OK1JRU Karel OK1JRZ Rudolf OK1JSA Stefan OK1JSF Jaromir OK1JSI Ivan OK1JSL Jaroslav OK1JST Jiri OK1JSV Stepan OK1JTA Jiri OK1JTC Jiri OK1JTH Josef OK1JTM Mikulas OK1JTV Tomas OK1JTZ Libor OK1JV Jiri OK1JVA Jiri OK1JVP Vilibald OK1JVS Vaclav OK1JVT Vaclav OK1JVU Marie OK1JVX Milan OK1JVY Jaroslav OK1JWV Vladimir OK1JX Marek OK1JXD Josef OK1JXU Petr OK1JXX Josef OK1JY Jaroslav OK1JYL Jana OK1JYT Jaroslav OK1JZ Jiri OK1JZI Jiri OK1JZN Zdenek OK1JZS Zdenek OK1JZV Zdenek OK1KA Josef OK1KBI DDM OK1KC Josef OK1KD Ivo OK1KF Vaclav OK1KH Otto OK1KI Milada OK1KIX Oldrich OK1KJ Miroslav OK1KK Roman OK1KKT Tanvald OK1KM Karel OK1KN Jaromir OK1KO Vladimir OK1KR Roman OK1KT Vratislav OK1KV Marek OK1KW Milan OK1KX Karel OK1KZ Pavel OK1LA Ladislav OK1LAH Ladislav OK1LAT Ivo OK1LBB Pavel OK1LBO Jaroslav OK1LCD Radka OK1LD Jiri OK1LDX Pavel OK1LEO Alice OK1LH Tomas OK1LL Ivan OK1LM Miloslav OK1LO Ladislav OK1LOL Michal OK1LPD Michal OK1LTV Libor OK1LU Josef OK1LUB Lubomir OK1LUK Lukas OK1LV Ladislav OK1LX Peter OK1LY Frantisek OK1LZ Zdenek OK1LZA Lucie OK1MA Jiri OK1MAF Ladislav OK1MAG Karel OK1MAJ Ondrej OK1MAM Vlastimil OK1MAQ Jan OK1MAS Rudolf OK1MAV Jaroslav OK1MAW Vladimir OK1MAY Josef OK1MBL Lubomir OK1MBR Rudolf OK1MBT Miroslav OK1MBU Zdenek OK1MBW Petr OK1MBZ Zdenek OK1MCN Karel OK1MCV Frantisek OK1MCW Martin OK1MD Mlados OK1MDA Jiri OK1MDE Miroslav OK1MDJ Jiri OK1MDK Josef OK1MDM Jan OK1MDX Stanislav OK1MEF Petr OK1MEH Miroslav OK1MEK Karel OK1MEP Pavel OK1MES Jiri OK1MFG Petr OK1MFH Martin OK1MFJ Jindrich OK1MFK Frantisek OK1MFL Lubomir OK1MFM Frantisek OK1MFS Frantisek OK1MGA Petr OK1MGO Jiri OK1MGQ Leos OK1MGS Milos OK1MGW Petr OK1MGX Vratislav OK1MHG Petr OK1MHN Hana OK1MHW Lukas OK1MHZ Miloslav OK1MCH Zdenek OK1MI Karel OK1MIC Lubor OK1MIE Miloslav OK1MIG Josef OK1MIK Jaroslav OK1MIN Pavel OK1MIQ Jan OK1MIU Bohumil OK1MJ Miroslav OK1MJA Jan OK1MJH Jaroslav OK1MJS Jaromir OK1MJV Jan OK1MJW Jan OK1MKA Vaclav OK1MKB Karel OK1MKD Josef OK1MKH Martin OK1MKJ Josef OK1MKL Pavel OK1MKU Karel OK1MKX Jaroslav OK1MKZ Zdenek OK1MLF Ladislav OK1MLG Ladislav OK1MLP Karel OK1MLX Pavel OK1MMI Petra OK1MMK Miroslav OK1MMU Miroslav OK1MMX Alexandr OK1MN Pavel OK1MNA Josef OK1MNC Josef OK1MNH Stanislav OK1MNI Miroslav OK1MNR Josef OK1MNV Jan OK1MNW Jindrich OK1MO Jiri OK1MOC Lubomir OK1MOD Jaroslav OK1MOS Jiri OK1MOW Ivan OK1MOY Otto OK1MP Milos OK1MPD Martin OK1MPF Martin OK1MPI Martin OK1MPO Petr OK1MPR Roman OK1MPU Miroslav OK1MPX Zbynek OK1MPY Petr OK1MQY Erhard OK1MR Milan OK1MRA Jiri OK1MRC Jan OK1MRE Rudolf OK1MRI Milos OK1MRL Roman OK1MRM Miroslav OK1MRN Radek OK1MRS Vladimir OK1MRZ Zdenek OK1MSB Bohuslav OK1MSD Jiri OK1MSJ Jiri OK1MSL Stanislav OK1MSP Stanislav OK1MSQ Josef OK1MSR Jiri OK1MST Jaroslav OK1MSV Jiri OK1MT Jan OK1MTA Vaclav OK1MTQ Miroslav OK1MTX Zdenek OK1MTZ Michal OK1MU Pavel OK1MUA Bretislav OK1MUC Frantisek OK1MUF Jan OK1MUK Karel OK1MV Marek OK1MVG Vit OK1MVJ Vojtech OK1MVK Vaclav OK1MVN Vratislav OK1MVP Vaclav OK1MVS Vaclav OK1MVV Vladimir OK1MVW Marie OK1MW Martin OK1MWA Vaclav OK1MWC Helena OK1MWW Jiri OK1MXM Jiri OK1MXX Frantisek OK1MY Pavel OK1MYL Dagmar OK1MYM Miroslav OK1MZ Milan OK1MZB Zdenek OK1MZM Milos OK1MZN Milos OK1MZO Jiri OK1MZT Zdenek OK1NAS Miroslav OK1NAT Michal OK1NAW Jaromir OK1ND Miroslav OK1NE Julius OK1NF Jan OK1NFA Jan OK1NG Jaromir OK1NGC Miroslav OK1NH Jaroslav OK1NHR Jan OK1NI Milan OK1NIK Karel OK1NIL Vaclav OK1NIP Ivan OK1NIT Vladimir OK1NJA Jana OK1NJB Michal OK1NJC Jiri OK1NJP Pavel OK1NL Milan OK1NMI Ivo OK1NMJ Jiri OK1NMP Miroslav OK1NMR Zdenek OK1NMW Jiri OK1NOC Jiri OK1NOP Josef OK1NOR Jindrich OK1NP Jan OK1NPA Petr OK1NPF Roman OK1NR Jan OK1NS Petr OK1NSX Jaroslav OK1NT Antonin OK1NU Jan OK1NUN Michael OK1NVJ Jiri OK1NVO Josef OK1NW Zdenek OK1NWD Petr OK1NZ Jaroslav OK1NZJ Zdenek OK1NZV Vera OK1OA Jiri OK1OAZ radioclub: OK1OB Stefan OK1OH Frantisek OK1OHK DDM OK1OK Zdenek OK1OS Otakar OK1OW Zdenka OK1OX Miroslav OK1PA Petr OK1PAA Josef OK1PAI Ivo OK1PBB Bohumil OK1PBO Pavel OK1PBP Pavel OK1PC Pavel OK1PD Josef OK1PF Petr OK1PFA Josef OK1PFE Petr OK1PFH Jan OK1PFM Petr OK1PGS Frantisek OK1PH Jindrich OK1PHM Petr OK1PHP Petr OK1PHU Pavel OK1PHX Petr OK1PHZ Petr OK1PI Ivan OK1PII Petr OK1PJB Jiri OK1PJP Pavel OK1PJX Pavel OK1PK Pavel OK1PL Jan OK1PLS Vladimir OK1PMA Pavel OK1PNA Michal OK1PO Otakar OK1POS Oldrich OK1POY Vaclav OK1PP Petr OK1PPJ Petr OK1PPT Petr OK1PR Ivan OK1PRI Pavel OK1PRR Petr OK1PSH Petr OK1PSY Vaclav OK1PTB Petr OK1PUJ Jan OK1PUK Michal OK1PUL Pavel OK1PUP Alena OK1PV Vojtech OK1PW Rudolf OK1QF Frantisek OK1QO Jan OK1QS Jiri OK1QT Jiri OK1QW Herbert OK1RA Slavomil OK1RAY Alois OK1RD Jaroslav OK1RF Jiri OK1RH Vaclav OK1RK David OK1RO Jan OK1RP Petr OK1RR Martin OK1RSM Rosomaci OK1RV Josef OK1RW Jiri OK1RY Jaroslav OK1RZ Rostislav OK1SA Bohumil OK1SAB Miroslav OK1SAO Petr OK1SAT Richard OK1SBV Vladimir OK1SC Jan OK1SCB Jan OK1SD Stanislav OK1SDE Dalibor OK1SEL Miroslav OK1SF Bedrich OK1SFR Pavel OK1SFT Frantisek OK1SFW Frantisek OK1SGI Michal OK1SHF Zdenek OK1SI Ivo OK1SIB Jan OK1SIT Bretislav OK1SJL Josef OK1SKD Karel OK1SKJ Jiri OK1SLM Libor OK1SLY Lubos OK1SMH Michaela OK1SMN Marian OK1SMU Jan OK1SMY Miroslav OK1SNE Jiri OK1SNR Stanislav OK1SOA Karel OK1SOX Milan OK1SP Julius OK1SPV Pavla OK1SPX Jindrich OK1SPY Jiri OK1SQK Karel OK1SQT Simona OK1SRD Josef OK1SRT Radek OK1ST Martin OK1STJ Pavel OK1STN Jiri OK1STO Pavel OK1STS Petr OK1STW Stanislav OK1STX Pavel OK1SVB Vladimir OK1SVF Stanislav OK1SVH Alena OK1SVV Vlastimil OK1SX Milan OK1SY Josef OK1SYM Tomas OK1SYN Jan OK1SZA Jan OK1TA Karel OK1TAI Karel OK1TAL Ladislav OK1TAM Svatoslav OK1TAN Antonin OK1TAO Otakar OK1TAV Pavel OK1TBA Vlastimil OK1TBT Tomas OK1TC Jaroslav OK1TCF Antonin OK1TCM Jakub OK1TCN Viktor OK1TD Jiri OK1TDD Antonin OK1TDE Emil OK1TDF Tomas OK1TDI Jiri OK1TDO Daniel OK1TDS Pavel OK1TDU David OK1TEB Pavel OK1TEH Matej OK1TEM Jarmila OK1TEP Tomas OK1TF Josef OK1TFD Frantisek OK1TFH Ivan OK1TGA Vaclav OK1TGI Igor OK1THA Petr OK1THK Jaroslav OK1THR Miloslav OK1THX Milan OK1TI Karel OK1TIC Jan OK1TIM Pavel OK1TIR Karel OK1TIZ Zdenek OK1TJC Josef OK1TJD Dimitrij OK1TJE Michal OK1TJH Jan OK1TJI Jiri OK1TJJ Jiri OK1TJO Tomas OK1TJT Jindrich OK1TKC Josef OK1TKM Leo OK1TKO Andrej OK1TKR Miroslav OK1TKZ Jan OK1TLB Vaclav OK1TLJ Jiri OK1TLT Tomas OK1TMI Milos OK1TMJ Michal OK1TML Michal OK1TMT Martina OK1TN Slavomir OK1TNM Rudolf OK1TO Otakar OK1TOT Ondrej OK1TOV Otakar OK1TOX Leo OK1TOZ Jan OK1TPC Josef OK1TPG Vladimir OK1TPI Jaroslav OK1TPK Peter OK1TPL Tomas OK1TPW Ivan OK1TQ Josef OK1TR Renata OK1TRA Jiri OK1TRD Libor OK1TRJ Michal OK1TRW Fedor OK1TTL Tomas OK1TTP Josef OK1TUD Jaroslav OK1TUK Jaroslav OK1TUV Ludovit OK1TVA Veronika OK1TVD Vladimir OK1TVK Jindrich OK1TVL Libor OK1TVM Vaclav OK1TVR Vilem OK1TXW Cenek OK1TY Zdenek OK1TYM Jiri OK1TYR Ivo OK1TZA Zdenek OK1TZD Petra OK1TZL Martin OK1TZW Martin OK1TZX Vladislav OK1UA Vlastimil OK1UAH Pavel OK1UBA Martin OK1UBB Bohumil OK1UBL Ladislav OK1UBO Jiri OK1UBP Pavel OK1UBR Frantisek OK1UDF Karel OK1UDJ Jiri OK1UDK Antonin OK1UDQ Miroslav OK1UDS Josef OK1UDX Stefan OK1UEA Miroslav OK1UEB Jiri OK1UEC Milan OK1UEH Ervin OK1UEI Aleksandar OK1UEK Ondrej OK1UEM Martin OK1UES Jaroslava OK1UFC Mira OK1UFE Vladimir OK1UFL Miloslav OK1UFM Roman OK1UG Pavel OK1UGA Martin OK1UGD Tomas OK1UGE Pavel OK1UGH Miroslav OK1UGI Jindrich OK1UGK Josef OK1UHQ Ladislav OK1UJA Ivana OK1UJB Josef OK1UJG Vlasta OK1UJL Svatoslav OK1UJP Jiri OK1UJQ Vladislav OK1UJX Jana OK1UKS Karel OK1UKV Jaroslav OK1UKZ Zdenek OK1ULE Leos OK1ULK Ivan OK1ULL Petr OK1ULU Ales OK1UMB Miroslav OK1UME Karel OK1UMI Eduarda OK1UML Lenka OK1UMR Marcela OK1UN Lubomir OK1UNG Arnost OK1UNZ Zdenek OK1UOM Stanislav OK1UOZ Pavel OK1UPB Pavel OK1UPE Petr OK1UPU Zdenek OK1UPZ Zdenek OK1UQM Miroslav OK1UQP Josef OK1URM Martin OK1URO Milan OK1URT Tomas OK1US Jiri OK1USJ Jitka OK1USK Jozef OK1USS Stanislav OK1USU Jiri OK1USW Ladislav OK1UTK Ladislav OK1UU Jan OK1UUK Eduard OK1UVE Vaclav OK1UVG Vaclav OK1UVJ Josef OK1UVU Miroslav OK1UWE Siegfried OK1UWW Karel OK1UX Vaclav OK1UXH Vlastislav OK1UXT Ivo OK1UYM Frantisek OK1UYR Martin OK1UZB Oskar OK1UZE Zdenek OK1UZR Zdenek OK1UZW Zdenek OK1VAK Vaclav OK1VAM Jan OK1VB Vaclav OK1VBD Vojtech OK1VBN Josef OK1VBQ Rudolf OK1VBS Pavel OK1VCB Tomas OK1VCF Tomas OK1VCO Jan OK1VCP Vitezslav OK1VD Vaclav OK1VDF Jaroslav OK1VDJ Bedrich OK1VDS Zdenek OK1VDX Stanislav OK1VEA Ludvik OK1VEC Jiri OK1VEH Bohumir OK1VEI Pavel OK1VEL Jaroslav OK1VEN Petr OK1VEY Svetozar OK1VFC Vitezslav OK1VGJ Jan OK1VGS Zdenek OK1VHF Milan OK1VHN Denis OK1VHQ Marcel OK1VHV Josef OK1VIB Milan OK1VIT Jiri OK1VIU Josef OK1VJB Josef OK1VJH Josef OK1VJL Jiri OK1VJU Eva OK1VJV Jaromir OK1VKC Josef OK1VKJ Josef OK1VKK Frantisek OK1VKL Jiri OK1VKQ Vaclav OK1VKX Dusan OK1VKZ Zdenek OK1VLA Vladimir OK1VLC Arnost OK1VLG Lubomir OK1VLK Oldrich OK1VLR Lubomir OK1VM Michal OK1VMF Vitezslav OK1VMK Miroslav OK1VNI Michal OK1VNT Jaromir OK1VOC Stanislav OK1VOF Alexandr OK1VOR Vladimir OK1VOT Miloslav OK1VOV Vaclav OK1VOZ Marie OK1VPD Josef OK1VPO Milos OK1VPR Jiri OK1VPS Jaroslava OK1VPT Ludvik OK1VPU Jaroslav OK1VPV Jaroslav OK1VPY Jan OK1VPZ Vladimir OK1VQC Milan OK1VR Jindra OK1VRF Vaclav OK1VRI Richard OK1VRL Zdenka OK1VRN August OK1VRV Vaclav OK1VRW Ludek OK1VRY Ludvik OK1VSA Alexandr OK1VSG Stanislav OK1VSL Ludek OK1VSV Sonja OK1VT Pavel OK1VTG Frantisek OK1VTJ Jiri OK1VTL Petr OK1VTO Frantisek OK1VTR Vladimir OK1VTV Roman OK1VU Vaclav OK1VUA Ottomar OK1VUB Bohumil OK1VUC Jan OK1VUM Miloslav OK1VVC Bohuslav OK1VVH Jaroslav OK1VVS Vladimir OK1VVV Jan OK1VW Jiri OK1VXB Ladislav OK1VXI Petr OK1VYC Frantisek OK1VYK Jiri OK1VYL Lotka OK1VYM Marie OK1VYP Jitka OK1VYR Vaclav OK1VZ Karel OK1VZA Otakar OK1VZL Otakar OK1VZP Zdenka OK1VZV Bohuslav OK1VZZ Zuzana OK1WA Oldrich OK1WAV Jaroslav OK1WCF Martin OK1WEN Vaclav OK1WF Jaroslav OK1WFE Josef OK1WGW Jaroslav OK1WIP Miroslav OK1WJA Petr OK1WJB Jaroslav OK1WJV Jaroslav OK1WJW Josef OK1WLH Josef OK1WLM Milan OK1WMB Vladimir OK1WMJ Jan OK1WMK Marek OK1WMR Michal OK1WMV Vaclav OK1WN Stanislav OK1WNB Jaroslav OK1WPM Petra OK1WQ Vladislav OK1WRA Matej OK1WRM Roman OK1WRZ Jan OK1WS Libor OK1WSL Josef OK1WT Vladimir OK1WU Jiri OK1WUA Boris OK1WVR Vaclav OK1WVS Vlastimil OK1WVV Jan OK1WWJ Pavel OK1WWV Petr OK1WXA Pavlina OK1WZ Josef OK1WZV Zbynek OK1XA Jakub OK1XAV Otakar OK1XBF Pavel OK1XBK Jiri OK1XC Josef OK1XDK David OK1XDN Daniel OK1XDR Jiri OK1XDY Josef OK1XE Emil OK1XEB Pavel OK1XEM Michal OK1XEN Martin OK1XET Pavel OK1XEV Vit OK1XEW Lukas OK1XFA Jaroslav OK1XFI Libor OK1XFJ Jan OK1XFL Bedrich OK1XFO Milan OK1XGA Jan OK1XGI Miroslav OK1XGL Petr OK1XGP Jan OK1XH Milan OK1XHD Josef OK1XHE Frantisek OK1XHI Zdenek OK1XHV Jan OK1XCH Jan OK1XIN Vaclav OK1XJ Jiri OK1XJB Viera OK1XJD Martin OK1XJF Jiri OK1XJL Josef OK1XJN Jaroslav OK1XJP Jiri OK1XKV Vladimir OK1XL Ladislav OK1XLS Milan OK1XMS Richard OK1XMV Stanislav OK1XNC Frantisek OK1XNG Vaclav OK1XNP Pavel OK1XO Josef OK1XOD Ales OK1XOE Tomas OK1XOR Karel OK1XOT Tomas OK1XOX Ales OK1XP Otakar OK1XPA Petr OK1XPB Pavel OK1XPF Miroslav OK1XPH Jiri OK1XPJ Petr OK1XPP Pavel OK1XQA Jaroslava OK1XQC Frantisek OK1XQD Vaclav OK1XR Jindrich OK1XRM Jaroslav OK1XS Roman OK1XSW Miroslav OK1XT Jiri OK1XTF Frantisek OK1XTM Miloslav OK1XTR Tomislav OK1XU Jan OK1XUB Jaroslav OK1XUJ Josef OK1XV Josef OK1XVW Vaclav OK1XW Viktor OK1XWW Julius OK1XX Jan OK1XXB Zdenek OK1XXL Petr OK1XY Ladislav OK1XYZ Oldrich OK1XZB Zdenek OK1XZS Zdenek OK1YA Premysl OK1YB Vera OK1YC Martin OK1YI Jan OK1YK Jaromir OK1YL Petra OK1YLB Jiri OK1YM Oldrich OK1YO Imrich OK1YX Pavel OK1YZN Ladislav OK1ZA Arnost OK1ZAD Jiri OK1ZAJ Pavel OK1ZAT Pavel OK1ZBD Karel OK1ZBK Karel OK1ZCJ Jaroslav OK1ZD Zdenek OK1ZDA Lubos OK1ZDE Zdenek OK1ZDT Zdenek OK1ZDX Jan OK1ZE Vaclav OK1ZED Jiri OK1ZES Zdenek OK1ZFP Frantisek OK1ZGA Vladimir OK1ZH Ladislav OK1ZHS Jan OK1ZHU Zdenek OK1ZHV Vojtech OK1ZJA Zdenek OK1ZJB Josef OK1ZJH Jiri OK1ZJJ Jana OK1ZJL Jiri OK1ZJN Jiri OK1ZJP Jakub OK1ZJV Jiri OK1ZK Jan OK1ZKJ Jaroslav OK1ZKL Ladislav OK1ZKN Jaroslav OK1ZKQ Vlastimil OK1ZLM Ladislav OK1ZMD Milan OK1ZMH Jan OK1ZMJ Jana OK1ZML Milan OK1ZMO Otto OK1ZMS Martin OK1ZMX Zdenek OK1ZN Jaromir OK1ZOR Otakar OK1ZOZ David OK1ZP Josef OK1ZPC Zdenek OK1ZPJ Zdenek OK1ZPT Petr OK1ZRA Zdenek OK1ZSR Juraj OK1ZSV Vladimir OK1ZTO Oldrich OK1ZUB Vojtech OK1ZVA Vlastimil OK1ZVL Vladimir OK1ZVP Petr OK1ZVS Vlastimil OK1ZW Marek OK1ZWF Jiri OK1ZX Jan OK1ZY Jan OK1ZZ Zbynek OK1ZZX Vladimir OK1ZZZ Karel OK2AB Rostislav OK2ABH Petr OK2ABU Zdenek OK2ACM Marek OK2ADI Petr OK2AF Milan OK2AIA Petr OK2AIS Ales OK2AJ Slavomir OK2ALP Ales OK2AM Miloslav OK2AN Vaclav OK2AOP Jiri OK2AQA Marcel OK2AR Jan OK2ARD Daniel OK2ARK Rudolf OK2ARM Josef OK2ARP Radomir OK2AT Vladimir OK2ATC Antonin OK2AVA Jiri OK2AZ Antonin OK2BA Jan OK2BAQ Jaroslav OK2BAT Jiri OK2BAV Jaroslav OK2BBA Jan OK2BBB Frantisek OK2BBD Zdenek OK2BBI Zdenka OK2BBJ Josef OK2BBR Vlastimil OK2BC Vilem OK2BCF Milan OK2BCI Lubomir OK2BCN Pravoslav OK2BCW Jaroslav OK2BDA Vilem OK2BDB Josef OK2BDF Jiri OK2BDR Jan OK2BDS Ludvik OK2BDU Milan OK2BDX Vladimir OK2BEA Miroslav OK2BEH Zdenek OK2BEJ Vlastimil OK2BEM Jan OK2BEN Lubos OK2BEO Ivan OK2BET Jaroslav OK2BEW Karel OK2BF Stanislav OK2BFH Jan OK2BFI Svatopluk OK2BFK Vladimir OK2BFN Tomas OK2BFU Milan OK2BFY Josef OK2BGA Vladimir OK2BGB Ludvik OK2BGK Frantisek OK2BGN Stanislav OK2BGO Antonin OK2BGW Ivo OK2BH Zdenek OK2BHD Zdenek OK2BHE Miloslav OK2BHK Ivan OK2BHL Jiri OK2BHM Erich OK2BHS Vaclav OK2BHZ Zbigniew OK2BIC Milan OK2BIJ Libor OK2BIK Jaroslav OK2BIQ Jan OK2BIT Ladislav OK2BIU Jan OK2BIW Vaclav OK2BIX Vladimir OK2BJ Slavomir OK2BJC Jan OK2BJG Ondrej OK2BJI Miloslav OK2BJJ Jan OK2BJK Jaroslav OK2BJM Josef OK2BJQ Rostislav OK2BJR Miloslav OK2BJS Jaromir OK2BJT Stefan OK2BJX Jan OK2BK Josef OK2BKA Cestmir OK2BKE Jiri OK2BKF Miloslav OK2BKJ Josef OK2BKL Miroslav OK2BKN Vladimir OK2BKP Antonin OK2BKQ Jan OK2BKU Ondrej OK2BL Bohumil OK2BLB Josef OK2BLD Ladislav OK2BLH Karel OK2BLO Josef OK2BLR Ladislav OK2BLS Zdenek OK2BMA Pavel OK2BMC Milan OK2BMD Lidmila OK2BME Pavel OK2BMI Milan OK2BMJ Milan OK2BMU Ivan OK2BMV Marek OK2BMZ Zdenka OK2BN Vladimir OK2BNA Magda OK2BNC Jiri OK2BND Jan OK2BNF Stanislav OK2BNG Jan OK2BNP Jaroslav OK2BNT Ladislav OK2BOB Bohumil OK2BOF Edvard OK2BOG Ladislav OK2BON Stepan OK2BOR Frantisek OK2BOS Karel OK2BOV Rudolf OK2BPA Miroslav OK2BPB Vit OK2BPG Josef OK2BPH Zdenek OK2BPI Jaroslav OK2BPK Josef OK2BPL Michal OK2BPN Jaroslav OK2BPR Eduard OK2BPV Stanislav OK2BPW Svatomir OK2BPX Antonin OK2BQ Frantisek OK2BQC Jaroslav OK2BQM Stanislav OK2BQR Frantisek OK2BQU Emil OK2BQY Jiri OK2BQZ Jaroslav OK2BRA Karel OK2BRD Jiri OK2BRJ Petr OK2BRO Ludek OK2BRQ Ivan OK2BRS Ivan OK2BRV Vaclav OK2BRW Dalibor OK2BRX Vojtech OK2BRY Milos OK2BRZ Pavel OK2BS Bohuslav OK2BSB Adolf OK2BSE Milan OK2BSH Miroslav OK2BSK Milan OK2BSL Ladislav OK2BSN Dalibor OK2BSO Petr OK2BSP Jaroslav OK2BSQ Jaroslav OK2BST Dusan OK2BSV Ladislav OK2BSY Petr OK2BTA Oldrich OK2BTB Miroslav OK2BTC Jaroslav OK2BTE Alois OK2BTI Jaroslav OK2BTJ Miroslav OK2BTK Petr OK2BTQ Jan OK2BTR Oldrich OK2BTS Josef OK2BTT Frantisek OK2BTU Karel OK2BTY Jiri OK2BTZ Antonin OK2BU Radek OK2BUD Alois OK2BUE Josef OK2BUH Miroslav OK2BUN Milan OK2BUP Jaroslav OK2BUS Jaroslav OK2BUT Jan OK2BUX Stanislav OK2BUZ Frantisek OK2BVA Ivan OK2BVB Milan OK2BVC Jan OK2BVE Josef OK2BVF Karel OK2BVS Jirina OK2BVT Petr OK2BVY Vaclav OK2BWC Zdenek OK2BWJ Petr OK2BWK Leopold OK2BWM Vlastimil OK2BWQ Ladislav OK2BWR Ladislav OK2BWT Jaroslav OK2BWU Svatoslav OK2BWZ Helena OK2BX Zdenek OK2BXA Josef OK2BXE Drahomir OK2BXF Michal OK2BXG Petr OK2BXM Miroslav OK2BXU Daniel OK2BXZ Petr OK2BYH Roman OK2BYW Milan OK2BZ Josef OK2BZE Milan OK2BZM Zdenek OK2BZQ Martin OK2BZW Karel OK2BZY Josef OK2BZZ Milada OK2CDI Vaclav OK2CDR Jan OK2CEU Bozena OK2CFM Martin OK2CHB Hugo OK2CHI Lenka OK2CHO Petr OK2CJM Marie OK2CKC Jindrich OK2CKJ Josef OK2CL Alois OK2CLL Karel OK2CLW Milan OK2CME Cestmir OK2CMW Milan OK2CMX Ondrej OK2CMZ Martin OK2CNI Pavel OK2COD Marian OK2COS Oldrich OK2CPD Josef OK2CPG Pavel OK2CPV Petr OK2CQR Petr OK2CR Roman OK2CRB Radomir OK2CRK Radoslav OK2CRT Petr OK2CSU Marian OK2CTS Jaromir OK2CV Vladimir OK2CVA Antonin OK2CVH Vladimir OK2DA Zdenek OK2DAB Jiri OK2DAJ Jiri OK2DAN Miroslav OK2DAS Karel OK2DCL Otto OK2DE Jiri OK2DEY Bronislav OK2DGF Josef OK2DGG Jitka OK2DJD Jiri OK2DL Marek OK2DRK Rudolf OK2DTF Drahomir OK2DTI Prokop OK2DV Dalibor OK2DVS Vilem OK2DW Antonin OK2DX Pavel OK2EA Vitezslav OK2EC Stepan OK2EI Jaroslav OK2EK Emil OK2EMH Vitezslav OK2ER Oldrich OK2EZ Martin OK2FA Petr OK2FB Pavel OK2FBY Miroslav OK2FC Alexandr OK2FEI Petr OK2FF Frantisek OK2FH Frantisek OK2FJ Frantisek OK2FJI Jiri OK2FKC Lubos OK2FKF Martin OK2FLI Frantisek OK2FM Frantisek OK2FPN Petr OK2FR Pavel OK2FRP Pavel OK2FSC Cestmir OK2FSE Frantisek OK2FUG Miroslav OK2FYM Ladislav OK2GA Stepan OK2GG Jaroslav OK2GJ Vladimir OK2GL Vincenc OK2GM Martin OK2GPS Jaroslav OK2GQG Jitka OK2GTI David OK2GU Augustin OK2GX Stanislav OK2HAP Milan OK2HAZ Michal OK2HBF Jiri OK2HBR Zdenek OK2HBY Kamil OK2HDL Antonin OK2HDQ Vladimir OK2HF Petr OK2HFC Stanislav OK2HH Jakub OK2HHF Frantisek OK2HI Karel OK2HIJ Jiri OK2HJ Jaroslav OK2HJJ Jaroslav OK2HJL Jan OK2HJO Josef OK2HJS Jiri OK2HKP Ivan OK2HL Jan OK2HME Bohumil OK2HMF Milan OK2HMS Milan OK2HPA Petr OK2HPH Vladimir OK2HPI Pavel OK2HRL Lukas OK2HSB Svatohor OK2HSR Robert OK2HW Vladimir OK2HWP Milan OK2HY Jiri OK2HZ Jaromir OK2IAW Josef OK2IBS Vladimir OK2IBT Petr OK2ICF Kvetoslava OK2ICP Petr OK2ID Tomas OK2IDW Drahoslav OK2IEA Petr OK2IEN Ludek OK2IGL Vojtech OK2IJF Jiri OK2IJH Jaroslav OK2IJL Jiri OK2IKL Ladislav OK2IKY Jaromir OK2IL Hubert OK2ILA Jan OK2ILD Zbynek OK2IM Martin OK2IMH Milan OK2IMO Jarmil OK2INI Martina OK2INW Vitezslav OK2IOV Vladimir OK2IOZ Zbynek OK2IPL Ladislav OK2IPP Pavel OK2IPW Adam OK2IPZ Petr OK2IQT Vladimir OK2IRE Miroslav OK2IRO Pavel OK2ISI Vera OK2ITI Michaela OK2IUH Zdenek OK2IVB Jiri OK2IVK Karel OK2IWO Ivo OK2IWU Ivana OK2IXO Oldrich OK2IZJ Jan OK2JA Vaclav OK2JAF Frantisek OK2JAJ Antonin OK2JBC Marie OK2JBI Jaromir OK2JC Jan OK2JCJ Jaroslav OK2JDH Dalibor OK2JES Jan OK2JEW Vlastimil OK2JEY Jiri OK2JFS Frantisek OK2JGD Jan OK2JGF Jan OK2JGI Jan OK2JGK Jaroslav OK2JHG Jiri OK2JHJ Jaroslav OK2JHR Jaromir OK2JI Jaroslav OK2JIQ Jiri OK2JJA Jan OK2JJQ Marek OK2JK Jan OK2JKN Premysl OK2JKO Jan OK2JKQ Petr OK2JMA Karel OK2JML Lubomir OK2JNB Jaroslav OK2JO Jiri OK2JOV Jaroslava OK2JOW Jiri OK2JOZ Emil OK2JP Jindrich OK2JPF Frantiska OK2JQR Frantisek OK2JRQ Jaroslav OK2JS Jan OK2JSO Jan OK2JT Jiri OK2JTF Jiri OK2JU Jaroslav OK2JUA Antonin OK2JUB Jaromir OK2JZR Jindrich OK2JZZ Zdenek OK2KE Jaroslav OK2KFU Josef OK2KG Jiri OK2KJ Josef OK2KOV Palackeho OK2KP Jiri OK2KR Stanislav OK2KV Vladimir OK2KY Frantisek OK2LA Jindrich OK2LC Lubomir OK2LDH Ludvik OK2LET Vitezslav OK2LF Frantisek OK2LI Jiri OK2LM Miroslav OK2LMJ Milos OK2LMK Lubomir OK2LMX Miroslav OK2LS Frantisek OK2LST Lubomir OK2LT Lubomir OK2LW Josef OK2LZ Vladimir OK2MA Marcel OK2MAJ Jana OK2MAP Dalibor OK2MBN Bohumir OK2MBO Zdenek OK2MBP Jiri OK2MCD Pavel OK2MCJ Radmila OK2MCL Lukas OK2MCT Miroslav OK2MDI Milan OK2MDK Miroslav OK2MDQ Milan OK2MDU Bohumil OK2ME Zdenek OK2MED Petr OK2MEU Miroslav OK2MFA Lubomir OK2MG Miroslav OK2MGB Jan OK2MHS Stanislav OK2MI Alexandr OK2MIC Jiri OK2MIG Milan OK2MII Bretislav OK2MIT Petr OK2MJF Michal OK2MJI Milan OK2MJY Jiri OK2MKS Michal OK2ML Milos OK2MMD David OK2MMG Milos OK2MMQ Jindrich OK2MMV Marie OK2MND Katerina OK2MNM Martin OK2MO Marcel OK2MOA Jan OK2MOO Miroslav OK2MPB Petr OK2MR Martin OK2MRP Adam OK2MRT Petr OK2MSS Karel OK2MSW Zdenek OK2MTM Tomas OK2MTV Vladimir OK2MTW Martin OK2MUF Michal OK2MV Marek OK2MVZ Vadim OK2MWK Karel OK2MXL Jaroslav OK2MZL Martin OK2MZR Milan OK2NA Pavel OK2NAJ Jiri OK2NB Petr OK2NCA Adam OK2NCZ Zdenek OK2NDT Stanislav OK2NET Petr OK2NID Miroslav OK2NJE Eduard OK2NM Zdenek OK2NMA Radek OK2NMZ Marek OK2NO Jaroslav OK2NPN Petr OK2NTA Roman OK2NZ Zdenek OK2OG Jaroslav OK2ON Radek OK2OP Frantisek OK2OR Rudolf OK2OT Jaromir OK2OU Arnost OK2PA Janus OK2PAD Zdenek OK2PAJ Vladimir OK2PAK Vladimir OK2PAL Pavel OK2PAS Josef OK2PAU Pavel OK2PAV Pavel OK2PAX Jaroslav OK2PBF Miloslav OK2PBG Ladislav OK2PBH Ladislav OK2PBK Radomir OK2PBL Jiri OK2PBR Vilibald OK2PBS Martin OK2PBT Vaclav OK2PBV Bretislav OK2PBW Petr OK2PCE Jan OK2PCL Rudolf OK2PCS Frantisek OK2PCU Jaroslav OK2PCY Josef OK2PDB Pavel OK2PDC Josef OK2PDE Jiri OK2PDH Karel OK2PDK Jan OK2PDU Josef OK2PDW Jan OK2PDY Frantisek OK2PE Karel OK2PEB Eduard OK2PEC Jaroslav OK2PEM Jiri OK2PER Josef OK2PET Petr OK2PEX Antonin OK2PEY Milos OK2PEZ Jan OK2PFA Bohumil OK2PFY Jiri OK2PGJ Jiri OK2PGT Antonin OK2PHC Zdenek OK2PHI Alois OK2PHK Peter OK2PHQ Jan OK2PIC Oldrich OK2PIM Dalibor OK2PIP Pavel OK2PIR Jiri OK2PIW Vasil OK2PIX Radek OK2PJ Jan OK2PJE Karel OK2PJF Frantisek OK2PJH Jan OK2PJJ Jan OK2PJM Jakub OK2PJO Josef OK2PJT Michal OK2PK Josef OK2PKH Bretislav OK2PKL Antonin OK2PKM Libor OK2PKO Vlastimil OK2PKS Gunter OK2PKT Roman OK2PKX Pavel OK2PKY Jiri OK2PLD Vladimir OK2PLH Zdenka OK2PLI Jitka OK2PLK Ludek OK2PLL Lev OK2PLV Leo OK2PM Karel OK2PMF Milan OK2PMG Miloslav OK2PMP Milan OK2PMS Jiri OK2PMT Petr OK2PMV Vaclav OK2PMX Petr OK2PNQ Tomas OK2PO Josef OK2POB Martin OK2POE Petr OK2POH Oldrich OK2POI Jiri OK2PPH Petr OK2PPK Pavel OK2PPM Petr OK2PPP Vladimir OK2PQH Vlastislav OK2PQP Rene OK2PQS Robert OK2PRM Rudolf OK2PRP Petr OK2PRQ Bohumil OK2PRW Radim OK2PS Pavel OK2PSA Pavel OK2PSB Petr OK2PSC Slavomir OK2PSE Pavel OK2PSJ Jan OK2PST Josef OK2PSV Stanislav OK2PTA Ondrej OK2PTC Libor OK2PTD Petr OK2PTH Miroslav OK2PTJ Jaroslav OK2PTK Milos OK2PTL Ludvik OK2PTM Antonin OK2PTP Vratislav OK2PTS Vaclav OK2PTT Jan OK2PTU Zdenek OK2PTZ Tomas OK2PUH Premysl OK2PUX Zdenek OK2PV Josef OK2PVC Jan OK2PVD Karel OK2PVF Rostislav OK2PVG Vitezslav OK2PVH Miroslav OK2PVL Pavel OK2PVO Vladislav OK2PVS Vlastimil OK2PVZ Pavel OK2PWA Petr OK2PWB Vaclav OK2PWD Josef OK2PWJ Petr OK2PWL Karel OK2PWM Premysl OK2PWX Jaroslav OK2PX Alois OK2PXD Zdenek OK2PXW Radek OK2PXX Otakar OK2PYA Robert OK2PYL Jaroslava OK2PZ Vojtech OK2PZF Zdenek OK2PZL Petr OK2PZO Vladimir OK2QA Rudolf OK2QX Jiri OK2RA Radek OK2RF Rene OK2RI Jiri OK2RL Richard OK2RN Leo OK2RP Roman OK2RPA ERA a.s. OK2RS Rudolf OK2RU Raimund OK2RX Vladimir OK2RZ Jiri OK2SA Josef OK2SAD Milan OK2SAI Henryk OK2SAQ Jaroslav OK2SAR Miroslav OK2SAU Jaroslav OK2SBX Jitka OK2SCS Karel OK2SDH Dagmar OK2SDX Frantisek OK2SET Emil OK2SEV Milan OK2SFI Josef OK2SFO Frantisek OK2SFP Jaroslav OK2SG Stanislav OK2SGC Jiri OK2SGW Zdenek OK2SHB Hugo OK2SHH Stepan OK2SI Jaroslav OK2SIA Miroslav OK2SIG Ondrej OK2SIN Jaromir OK2SIR Ivo OK2SJ Jiri OK2SJC Josef OK2SJF Marek OK2SJI Jiri OK2SJJ Jaroslav OK2SJK Karel OK2SJP Pavel OK2SJS Jan OK2SK Frantisek OK2SKI Rostislav OK2SKO Oto OK2SKP Petr OK2SKT Jiri OK2SLJ Jozef OK2SLS Karel OK2SMA Ludvik OK2SMI Josef OK2SMK Eduard OK2SML Lubomir OK2SMS Bohumil OK2SND Hana OK2SO Miloslav OK2SON Ondrej OK2SPA Antonin OK2SPD Petr OK2SPE Stefan OK2SPO Jan OK2SPQ Petr OK2SPS Petr OK2SPW Stanislav OK2SPZ Josef OK2SQR Eduard OK2SR Rudolf OK2SRI Radek OK2SRO Jan OK2SSD Josef OK2SSJ Jiri OK2STA Antonin OK2STD Jan OK2STF Jiri OK2STH Tomas OK2STK Josef OK2STM Milan OK2STP Jaroslav OK2STV Petr OK2SU Frantisek OK2SUA Karel OK2SUP Josef OK2SV Josef OK2SVL Jaroslav OK2SVM Stanislav OK2SVO Oldrich OK2SVP Vaclav OK2SWD Dusan OK2SY Miroslav OK2SYS Josef OK2SYZ Jan OK2SZ Zdenek OK2SZD Zbynek OK2SZL Svatopluk OK2TAB Josef OK2TAJ Alois OK2TAP Radek OK2TAR Viktor OK2TAS Pavel OK2TB Bedrich OK2TBC Kamil OK2TBE Tomas OK2TBS Lucie OK2TC Stanislav OK2TCJ Jan OK2TCS Ales OK2TCW Tomas OK2TDM Milan OK2TDR Richard OK2TEJ Radim OK2TEL Jiri OK2TEO Rostislav OK2TFO Frantisek OK2TGE Tomas OK2TGM Tomas OK2TIH Veronika OK2TIQ Oldrich OK2TIT Petr OK2TJG Jindrich OK2TJL Jiri OK2TJS Josef OK2TKE Bohumir OK2TKM Tomas OK2TM Miroslav OK2TMO Milan OK2TN Miroslav OK2TOD Oldrich OK2TOR Premysl OK2TPQ Tomas OK2TPS Vlastimil OK2TPU Petr OK2TQA Petr OK2TQI Josef OK2TRN Pavel OK2TRV Radovan OK2TRW Jiri OK2TRZ Radomir OK2TS Jaroslav OK2TSE Milan OK2TSF Tomas OK2TSL Lubomir OK2TSN Jiri OK2TSV Ladislav OK2TT Jan OK2TUH Jiri OK2TWM Martin OK2UA Jaroslava OK2UBW Pavel OK2UCB Karel OK2UCC Jiri OK2UCQ Milan OK2UDE Jan OK2UDP Bohumil OK2UEV Miroslav OK2UFB Rostislav OK2UFJ Miroslav OK2UFT Pavel OK2UFU Vladimir OK2UFX Josef OK2UFY Jan OK2UGG Jiri OK2UGS Miroslav OK2UHF Zdenek OK2UHG Miroslav OK2UHN Leos OK2UHP Petr OK2UIN Josef OK2UIZ Ivo OK2UJC Jan OK2UJS Josef OK2UKG Roman OK2UKQ Petr OK2ULP Ladislav OK2ULQ Petr OK2UM Jiri OK2UMD Karel OK2UMM Miroslav OK2UMP Martin OK2UNM Mieczyslaw OK2UNS Miloslav OK2UOK Vladimir OK2UPG Jaroslav OK2UPJ Petr OK2UPP Petr OK2UQ Emil OK2UQF Karel OK2UQL Gabriel OK2UQQ Radek OK2UR Milan OK2URD Vladimir OK2URF Jaroslav OK2USG Milan OK2USM Miroslav OK2UVR Radek OK2UVX Oldrich OK2UWD Emil OK2UWH Karel OK2UWJ Josef OK2UWQ Robert OK2UXO Vladimir OK2UYG Karel OK2UYU Jaromir OK2UYZ Miroslav OK2UZ Jindrich OK2UZD Zdenek OK2UZL Ludek OK2UZS Zdenek OK2UZX Josef OK2VA Miloslav OK2VAS Vaclav OK2VAZ Oskar OK2VBZ Radek OK2VCR Zdenek OK2VCT Jiri OK2VED Oldrich OK2VF Frantisek OK2VFR Petr OK2VGC Miloslav OK2VGD Vladimir OK2VGZ Jiri OK2VJD Tomas OK2VJQ Josef OK2VK Frantisek OK2VKF Jaroslav OK2VKK Karel OK2VLJ Rudolf OK2VLY Martin OK2VMC Antonin OK2VMG Jiri OK2VMJ Zdenek OK2VN Vladimir OK2VNA Rostislav OK2VNC Ivo OK2VND Ludvik OK2VNO Vladimir OK2VNQ Ludek OK2VOM Jiri OK2VOP Petr OK2VPA Vlastimil OK2VPI Josef OK2VPX Jan OK2VQF Peter OK2VQG Josef OK2VSF Ferdinand OK2VSJ Josef OK2VSO Oldrich OK2VSU Vaclav OK2VTD Josef OK2VTZ Danuse OK2VUH Josef OK2VVN Vilem OK2VWB Wieslaw OK2VWE Tomas OK2VWF Milan OK2VWM Milan OK2VWX Ivo OK2VX Ladislav OK2VXH Jindrich OK2VXJ Vlastimil OK2VXL Jan OK2VXV Bohuslav OK2VYG Alexandr OK2VYJ Antonin OK2VYM Radomir OK2VZ Veronika OK2VZE Miroslav OK2VZF Petr OK2VZK Vlastimil OK2WAZ Dominik OK2WB Jan OK2WD Emil OK2WDA Ivana OK2WDT Lukas OK2WED Petr OK2WFW Karel OK2WGR Petr OK2WH Vit OK2WHG Viktor OK2WHT Stanislav OK2WHV Vaclav OK2WI Nevenka OK2WID Zdenek OK2WK Antonin OK2WKF Vera OK2WKM Milan OK2WKW Karel OK2WM Karel OK2WMC Michal OK2WMW Radek OK2WN Ivan OK2WNR Richard OK2WO Josef OK2WPA Antonin OK2WTF Petr OK2WTM Petr OK2WTT Jiri OK2WVH Vaclav OK2WW Bernard OK2WWW Ondrej OK2WX Vladimir OK2WXZ Vaclav OK2WY Jiri OK2WYK Martin OK2WZN Rostislav OK2XAF Jaroslav OK2XAG Rudolf OK2XAP Antonin OK2XAS Alois OK2XCG Wladyslaw OK2XCO Borivoj OK2XDU Jiri OK2XFR Felix OK2XFU Milan OK2XHK Karel OK2XHR Jaroslav OK2XID Karel OK2XIT Jan OK2XKM Magda OK2XLB Marian OK2XMM Miroslav OK2XMT Milan OK2XMW Radim OK2XQG Ludmila OK2XRW Richard OK2GA Stepan OK2XSZ Zdenek OK2XTJ Jan OK2XUM Milan OK2XVM Vladimir OK2XVX Vladimir OK2XWH Martin OK2XY Pavel OK2XYN Ales OK2XZ Dusan OK2YJ Jaroslav OK2YN Josef OK2YP Vaclav OK2YT Radek OK2YZ Jaroslav OK2ZAA Zdenek OK2ZAE Jan OK2ZAK Antonin OK2ZAR Petr OK2ZAW Jan OK2ZAZ Jiri OK2ZBO Vera OK2ZC Ludek OK2ZCB Martin OK2ZD Zbynek OK2ZDL Jan OK2ZEJ Jakub OK2ZEL Emil OK2ZEO Roman OK2ZF Zdenek OK2ZFB Filip OK2ZI Karel OK2ZIL Jakub OK2ZIO Karel OK2ZKO Zdenek OK2ZLA Vladislav OK2ZLD Pavel OK2ZLK Zbynek OK2ZM Miroslav OK2ZMA Miroslav OK2ZMB Milan OK2ZMI Miroslav OK2ZN Petr OK2ZNE Eduard OK2ZNT Petr OK2ZOW Zbynek OK2ZPS Pavel OK2ZQ Alois OK2ZR Petr OK2ZS Jaroslav OK2ZT Jan OK2ZTU Martin OK2ZTV Jaroslav OK2ZTW Roman OK2ZU Vojtech OK2ZUZ Miloslav OK2ZV Vit OK2ZVN Ladislav OK2ZW Zdeno OK2ZYZ Petr OK2ZZJ Josef OK3AA Milan OK3BR Bohumil OK3C Ludek OK3CV Svatopluk OK3DHD Jan OK3DU Milan OK3FJ Jiri OK3JM Jan OK3JOZ Petr OK3KLM Michal OK3KT Karel OK3MAD Martin OK3MK Miroslav OK3MN Milan OK3MO Ota OK3MP Richard OK3MZ Miroslav OK3PJ Petr OK3PS Peter OK3RM Zdenek OK3SJ Josef OK3SM Oldrich OK3TT Tomas OK3VO Vojtech OK3WW Milos OK4AA Vladimir OK4AZ Ivan OK4BB Borivoj OK4DIG Jan OK4DL Ladislav OK4DZ David OK4FD Frantisek OK4JM Josef OK4JR Jaroslav OK4M Stanislav OK4MM Jaroslav OK4MT Milos OK4NCA Vaclav OK4PY Pavel OK4PZ Petr OK4RQ Pavel OK4TO Tomas OK4TP Tomas OK4TX Lukas OK4VSA Vit OK4ZW Zdenek OK5A Jiri OK5AA Pavel OK5AJA Vojtech OK5AMA Arnold OK5AR Marie OK5ATY Jarmila OK5AW Milos OK5DX Slavomir OK5E ERA a.s. OK5EPC Pavel OK5ET Martin OK5FS Frantisek OK5IB Ivan OK5IM Jiri OK5JM Jaroslav OK5JP Jiri OK5KL Lubos OK5KM Viktor OK5MAD Jan OK5MK Martin OK5MN Jan OK5NN Jiri OK5OK Jiri OK5OM Otakar OK5QZ Ales OK5RP Petr OK5RS Radek OK5RV Josef OK5TK Petr OK5TR Marek OK5TT Jan OK5TVR Tomas OK5US Jaromir OK5WW Jindrich OK5XM Jan OK5YL Zdenka OK5ZH Jan OK6AB Radek OK6AD Josef OK6AM Tomas OK6AR Zdenka OK6AZ Pavel OK6FK Filip OK6LEO Leos OK6MA Marek OK6MM Vaclav OK6PM Petr OK6PS Petr OK6VM Vaclav OK6WW Vaclav OK7AJ Antonin OK7AP Jiri OK7AR Alena OK7CM Antonin OK7CW Jiri OK7DM Jiri OK7DX Jan OK7FR Pavel OK7FSB Stanislav OK7FW Franta OK7GU Milan OK7IS Ivo OK7IW Iva OK7JP Josef OK7L Vaclav OK7LW Libor OK7MD Milan OK7MS Martin OK7MT Michal OK7OK Darius OK7PB Petr OK7PM Pavel OK7PP Pavel OK7PY Pavel OK7RA Jiri OK7RB Ludek OK7RJ Jiri OK7RP Roman OK7SS Tomas OK7ST Karel OK7TC Jaroslav OK7VE Pavel OK7WA Frantisek OK7WW Zdenek OK8ACS Tilo OK8AFF Joachim OK8APJ Torsten OK8AXA Libor OK8CC Wolf OK8CS Kamil OK8CW Pavel OK8DBD Wolfgang OK8DD Roman OK8DF Dietmar OK8DL Gerhard OK8EJT Davide OK8ENK John OK8FHP Zb. Jerzy OK8GA Stefan OK8HA Miklos OK8HIT Robert OK8JV Jens OK8LAW Zdzislaw OK8LHH Lucien OK8MRU Andrzey OK8MSE Milutin OK8OK Stanislav OK8PKM Boguslaw OK8RF Richard OK8SAX Dieter OK8TNA Jan OK8VI Frank OK8XB Steve OK8ZAG Ferdinand OK9AMR Miroslav OK9BAR Martina OK9BAU Miroslav OK9BVT Tomas OK9DAL Tomas OK9DAM Dagmar OK9FER Miroslav OK9FFZ Frantisek OK9FMH Filip OK9FSB Stanislav OK9GOG Martin OK9HAG Marek OK9HEL Vaclav OK9JAR Jaroslav OK9JL Jiri OK9JLJ Ludek OK9KKV Karel OK9MVM Daniel OK9PDK Josef OK9PJE Karel OK9SON Ondrej OK9SWL Martin OK9TVR Tomas OK9UKI Milan OK9VCH Josef OK9XPM Michal OK9ZJI Jakub OK9ZOB Lubos OL16B Karel OL5QRP Jaroslav tucnak-4.04/data/norec.png0000644000175000017500000000735111277513163012410 00000000000000PNG  IHDR00WbKGD pHYs  tIME$ǢvIDATh՚K\UzWuzƀm cE%Ho"6 ab,< "C& hPVda 2e@~TwUWWխ{9'{]dtUUq}|_]4{FV0 p}@_m8Fk1}^ Y| ~o |0$HBV *0 =% ^#d&$ܡw}$p]`ʾ9p~ oHh]oO(5`>0 $vp`R`6I3g裏[8=Bk D(*d*Ch sY֜9s_~_cCV v>,_kԜ]+ K&fv =mZ7 a.\R$Ix饗Rck;i΂xîɁм!ϸw PV5fʪT[ 4!a>Rq /@XD4M9un2!Wvg`w5`hXUb6@j 7Dv  !MK.uyh4|Wh4prpThtݟ-+0eYx.YjYwzB@d2b=Rnh L[sE&8.x뒦)=Gŋj5.FkAj >)98DI2K6Ҁ~nt@bjbzIw>4]& nΫؐ&X0|Aǎ9yz]}Zhpߧ8Hm4P(ӚRI&'YcP`8ӟ.n% EK|J~:\T;7^{ߣ|EP.%ZZ(p`mU 6Atv+330t!NS$a~~~29 L.HSV၃^YS,t]2HM&N"ՕfW)|1l̰2=80y@' Z=v8p3Mi៟aRacjY&' Cv]PI1$IxFغr%cQ/IpvvR"=bNC_Jf*f73 'չ9.uѧ)N HN#*ݦ5NbL>Os{6V E1DnJcv.i;1`ir*F~3^']X`ZE.B07Ip$xJ!1tJ%SSggYY(df#|?JB!vvv~#Ӥi ˿<\)1B0jevՌq]53C֧*}ƠBkMǜ?0 v(c11oJ\*J$ R}$P>DaHsb"Bn4J)y 'x",o]sJ6I:ѣwhie롄1c0RfBHI7IwޡX*| =0?ޏzJ^"(bx( #G81jQ&S^fggڻ` 4eT6($DU4Y.210!(!GAzLIv".x{KJ)|gdd5RJØRc>*J lkM\fe| *JR+R e Mʀ5qL5l҃@(" מE0^{-W[qǩW*gd.G\&c++(ufkMo/;ꑝ&AKYa9siJU1xafV<:ʕQJ%OqPJa!v:˥U Fk8S ׶ DV5v8xKETҔqѝNDQDU)F!}6`XdZeqtRӵï $AHJ1e yΊe;*\j5{K=cRRP8N㻻('IHJZZ$%r/eVÐm%rs٬u:,.j5ݦS c'Zx[?Z%QZm q0@} G~#+i;Ẕ!IɎR|r4 {?cH)u& | 5~ ! բf؞%77kp+wX'MmEuuY}> >McWJ՛}OEDQy$viC*kB[Ԥz3֜k d~(0fnlS(I<#)iV^P()fRDCJIhY\\TzHA+-qPq aOZj̰5Ny8#c&U6"USSJ~ m[L[E͚u0=={<N&Dę@̌O^bahJYE=U f&&KgϘ|L (^JH3@1Qh]9dbDŋ  JoU{vdPRVbxûw߿ϠTČ  Jkw&o3ȋ0(*i0,ZǷ 5@̇"L|<,i~Z >: 18gPxA3cc)) g@1 Kt'.ǀFe8w@,^"7D22poÿ<&z e F @8@ ~batG Y0ga`Tc3gaD@8_T\BBvÏ? dٙx ~}pg%T  $(x Dj.b8 9!b1|T2;99T 1>uD 8/^00113hj뀸>%vG'gސ`_{ -]Vv.D8}ԩDvێ ߿ge32EC : 9@qAUe9:A˷p)`Mv/P*zbÌpqq{-CϞ1D'3 2 ))I/3,7P(b &=MJFvZ?By`{@@ _>}fPUdS@ lΐܷw8Ç }vN.?bmmm+׮0 ?f _ '7oP >Bw@67/_EKTΜ;9Do`W^e8v8CPPM޽}?š/@ψ1888pg! &e;ógO*._ >_#='W12>s`05gf caL&f ^@,  {YXAg@ #3EK9}86"?vL\_QY忌u]KW.\N򿺱GW&P +@\{@63}g`˕f&Q`)5j0@~2,Z_v"X@G15$@!;2#: Vff#3y \L 1~v֧v211<{AJRn```8~(4>3'gB xjo3|%Ǡ lAj^)IqOfx.\8 w`DLQOo_2dg 6`S(24V˜mIf0<|a +Py m:p( ? LYP+ B+ de[wpq ߿@O# @b);Gzyf>10^ F@ *D@1~n[-Q/>E ˶7@ @ Hi3Ar_h>fBj)Z Ϭ}P^S#`&{Y: @u< \EAccD.Uw3|?F/^9w)og;}  (v6C$n>pSAtIPӟ,{Wk&"a( L:0{ @XIENDB`tucnak-4.04/data/Makefile.in0000644000175000017500000004756112561147620012646 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = svnversion$(EXEEXT) subdir = data DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sharedir)" PROGRAMS = $(bin_PROGRAMS) svnversion_SOURCES = svnversion.c svnversion_OBJECTS = svnversion.$(OBJEXT) svnversion_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = svnversion.c DIST_SOURCES = svnversion.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } DATA = $(share_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(share_DATA) _4o.txt \ cor2inc.pl coradd.pl home32.png \ icon2inc.pl index.html listdir.pl \ key32.png \ mast.png norec.png play.png \ record.png sortdw.pl sun.png tucnakcor \ tucnak.png tucnak23.png tucnak64.png \ tucnakv.png tucnakv64.png \ update_deb.sh update_eee.sh usaca.txt \ xfer32.png \ zoomin32.png zoomout32.png sharedir = $(datadir)/tucnak share_DATA = cty.dat titlpage.html \ tucnakcw tucnakdw tucnaknames tucnakrc \ tucnakvexcagcw tucnakvexcokres tucnakvexcrsgbdc \ tucnakvexcusaca tucnakwiz all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svnversion.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sharedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sharedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sharedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sharedir)" || exit $$?; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sharedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-shareDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-shareDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-shareDATA install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-shareDATA svnversion$(EXEEXT): (cd ..; ./svnver.sh) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/data/record.png0000644000175000017500000000521711277513163012557 00000000000000PNG  IHDR00WbKGD pHYs  tIME4*V# IDATh{]}?3s}ݻއmXC%(DQF-UJ桤DRJԒP9UJ#UmZظ12!A&aQ8`lp szƘ[G:sw{ \lvE27$9y$nֿKND-'c=96 JP]KaG' wcV'hHH >~AX?386֬^M1˾W N P7:C3M9"j9Rh-wػw/fgFO:] "rå+ΑcM/l$W_{?< pPRU U(+QsMDٳvv%t%ʳϒg9iu{L5i:t`B'c{. r?]oU-U4iN6ܱ߼FzLlncWӌ1R: t/ӭ;r zm/nIP&e7λo0GI+)&M 175襫Z-nF)ng3ko[#9!q\`bsӡ_H+ϻ$ d")6 ex| Y\hЙnu!! "H HE!daT7^WL1D[Km0IOv3|}-1QB @="aZ`=w+֌gy@#6\:jGƓZ/^6l}fc2^~Ad&H޲8bRu֓$5hMJ#UTJ)t>RFV8*_}rE_cbDG徝 4Kc-",Op+W ZdkL2:!PO I[\96ۯS.]OĺZ/6׿_glz1FU6H3ÆffLCR$6q(QfacZf&l3F)v̷X{+rY_ME/vNPOR3| La> >b Xm |hN\ x8JHn[/6~vbt\hM:r t\xCg" %C?◆BTF#s"+]ê#w[ܹg?{9o0V 1h="is V xۦk=6hYǮVjy= {wp` Eo̯A T+Dq/}0(' Zs6hkm@mi3&'YU.Ap$ /ƪQU5ȭCkמǶ~zh~]BaC,ޝ9](moy)3p1ݻ%P[ N =*i63к` DEQ%>g'^N^ g4Ziv|wH @taAXE|OA%XEm?'bYQ "FH-IˌKT^n0 D@Er(/2徽>bo¢(DgSO1Zp)­VF:$a\O$PWת }dl 7}TQND `^VmwHFf 9gȬHR&wj)^)$S]v3D?xcx83Yjh]RǚZ!|᪷C%R %H$5S6ee'>ξ3Q!)ȃ{~B55'5 4]1`r^[ORʉ 1+iBj 7JK\{h(}RyC1<_H.y?ӋՔM91$b9hJ&M E8밢\5$ZOjD~|ৄ7QJ]2FY26$ZDIN">FrP5k QՆNp/5 .:2 VvF%$H[ѴIX,s5"=R)d -`ch%Uzi?ȒB7=C:Lj18P7iʳb?B84+a[3՜XےM"atV \\_7>+ oXWܼ-J! k890W#b3Sўl;I˲|ŔEFn bR@q}ta()b!>_ޗK ʐ-mmE^1IE`Б B>{fg; b$J.: <~@U r@Cv!l]<?ǎ`cMNNhbE͢, D]NW<#zSa-.n[/X= kkkn7r2)377WtrUUUݻc3Z:#ǎb XrY I6S}~@Z6mpB@G@4:UQaY&hڴ%'mٌY yӦ~#먯bQ 888qW?CaA>(Lӄe иA䝊|!OTTT|&fg 2(c`R8HR8z8jkpE(e 0 nVC߷Yt@2e8+9d*BOD"-Y&lm A p:())]A>Pb;M1OQԦBVZ*h2X7 GZNٵ _Yv 0 e{{;sW-9OrgU-bJ[kD"JxV`Deet -2Mã1 CT*%y,;(}0 =MnϠ׃3W6$QB3 /nw=dr`ktRPAV? 1@ oagzZ;d ImD<%as浳S6 ^V"),*8022ޮonɿh!KáI_jNGԥx+=={3JvɖC+䑺*"lf6 fEE1-Ed%jIӏm͂vH+nXQBڿ 1VT>s?HƦ O[j]ћ+<۲楀Mteh86SƝJ7fIENDB`tucnak-4.04/data/mast.png0000644000175000017500000000051611650277003012235 00000000000000PNG  IHDR ,sRGBbKGD pHYs  tIME  q<IDAT8˭0 (xMǀ"ei*R}2DT,obBD4 <û ,G9L2G=:.\Ҭ$7yQX['80Խ.Jys=Z-pȼ9f`0M ^U`6۹4۹ǑBJٕQj[wW}7}LIENDB`tucnak-4.04/data/sun.png0000644000175000017500000000357611277513163012114 00000000000000PNG  IHDR! bKGD{ pHYs  tIME4h IDATxڭKW{o=5;vE62H(*,@Y6X쐲AHBF"2 DdA1xlgOtlW3Gc(!!`gX`uc[={BG}كKg{0݁V<{, ͅ(QD`x{VV>_9{z}8} T/9(;=vՀfhx(H5a#I!Na2MʕUw/\)ySՍC ʓyXAo-E &4Bh4 ,skm ^[?'C{@#=`q0=Dhucʀo,0߷DȞ_&}W>~|>X8z "|[:c0yEy>|Don_)TԁUgT"bÖ`5+ !/,[pW. fֱS9+&O>f"Q.ƉvJ LYBVwھ]UUv(Ɓn J$SwDȯF$ $myfע)juPgpTX3HS;}kHYR(($IF;+Zܱ:FSBΌbvՅ]/\ F%$ $2 HkI'3gZRFBK1ϽawUw޻y„s"BKyYzF #܆u\]SO_[6YW'@0Fa+gKza[;p5o_.jaz4=kj=U|^8v?I,I;l`sʪ T=ZU.v٢䳾ς1*n۫>9N`dmk}~KqyEq3rIܛ2gL> ~LA6A[#acKއp[|=)pZ-BTq L3e)O۰329O7ȳs]y|gϦ<=TR`7IW1#ݎ|Ӑϴn}7TM(&b6٭H>7#η[ў,i%BV6FᛯdI5E tIENDB`tucnak-4.04/leaks0000755000175000017500000000034511277513163010704 00000000000000#!/bin/bash rm -f config.log config.cache config.h aclocal automake automake doc/Makefile #automake etc/Makefile automake src/Makefile autoconf && ./configure --disable-sdltest --enable-pedantic --enable-leak-debug && make tucnak-4.04/pkg/0000755000175000017500000000000012561153000010501 500000000000000tucnak-4.04/pkg/Makefile.am0000644000175000017500000000010612412214635012461 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = tucnak.spec tucnak.spec.in tucnak-4.04/pkg/tucnak.spec0000644000175000017500000000236412561151303012573 00000000000000# Note that this is NOT a relocatable package %define ver 4.04 %define rel 1 %define prefix /usr Summary: VHF and microwave contest log Name: 4.04 Version: %ver Release: %rel License: GPL Group: Applications/Hamradio Source: tucnak-%{PACKAGE_VERSION}.tar.gz URL: http://tucnak.nagano.cz/ BuildRoot: /tmp/tucnak-%{PACKAGE_VERSION}-root # fill this by your name and email (then uncomment) #Packager: Mike Karas OM4AA Requires: glib %description Tucnak is a amaterur radio VHF and above contest logging program with some useful features as networking, cw keying, ssb voicer, sound recorder and more. User interface is based on Taclog. %prep %setup CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --sysconfdir=/etc --with-pkg=rpm make %install make DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) %config /etc/* %{prefix}/* %changelog * Tue Feb 14 2006 OM4AA - fixed legacy tag - updated to 1.24 * Wed Apr 13 2005 OK1ZIA - Packages for Mandrake made by PE2SVN * Mon Nov 22 2004 OM4AA - updated to version 1.16, for news in this version see ChangeLog * Tue Nov 11 2004 OM4AA - updated .spec file for tucnak2 (and newer) package name * Fri Dec 13 2002 OK1ZIA - created .spec file tucnak-4.04/pkg/Makefile.in0000644000175000017500000002724312561147621012512 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = pkg DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(srcdir)/tucnak.spec.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = tucnak.spec CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = tucnak.spec tucnak.spec.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pkg/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu pkg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tucnak.spec: $(top_builddir)/config.status $(srcdir)/tucnak.spec.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/pkg/tucnak.spec.in0000644000175000017500000000245312412213733013200 00000000000000# Note that this is NOT a relocatable package %define ver @PACKAGE_VERSION@ %define rel 1@RPM_RELEASE@ %define prefix /usr Summary: VHF and microwave contest log Name: @PACKAGE_VERSION@ Version: %ver Release: %rel License: GPL Group: Applications/Hamradio Source: @PACKAGE_NAME@-%{PACKAGE_VERSION}.tar.gz URL: http://tucnak.nagano.cz/ BuildRoot: /tmp/@PACKAGE_NAME@-%{PACKAGE_VERSION}-root # fill this by your name and email (then uncomment) #Packager: Mike Karas OM4AA Requires: glib %description Tucnak is a amaterur radio VHF and above contest logging program with some useful features as networking, cw keying, ssb voicer, sound recorder and more. User interface is based on Taclog. %prep %setup CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --sysconfdir=/etc --with-pkg=rpm make %install make DESTDIR=$RPM_BUILD_ROOT install %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) %config /etc/* %{prefix}/* %changelog * Tue Feb 14 2006 OM4AA - fixed legacy tag - updated to 1.24 * Wed Apr 13 2005 OK1ZIA - Packages for Mandrake made by PE2SVN * Mon Nov 22 2004 OM4AA - updated to version 1.16, for news in this version see ChangeLog * Tue Nov 11 2004 OM4AA - updated .spec file for tucnak2 (and newer) package name * Fri Dec 13 2002 OK1ZIA - created .spec file tucnak-4.04/install-sh0000755000175000017500000001273611277513163011672 00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 tucnak-4.04/doc/0000755000175000017500000000000012561153000010465 500000000000000tucnak-4.04/doc/Makefile.am0000644000175000017500000000066212412214753012455 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = $(docs_DATA) README.win32 docsdir = $(datadir)/tucnak/doc docs_DATA = NAVOD.pdf NAVOD.sxw nagup: rsync -atuvxz --progress --partial $(docs_DATA) ok1zia@nagano.cz::ok1zia/public_html/tucnak/ nagdown: rsync -atuvxz --progress --partial ok1zia@nagano.cz::ok1zia/public_html/tucnak/ . cygwin: mkdir -p $$DIR/doc (for file in $(docs_DATA); do \ cp $$file $$DIR/doc ; \ done ) tucnak-4.04/doc/NAVOD.sxw0000644000175000017500000002145711277513162012044 00000000000000PK|819mimetypeapplication/vnd.sun.xml.writerPK|8'Configurations2/accelerator/current.xmlPKPK|8 content.xml\IsW)C\%Q3RJlFvR94@#X!OS9\JsPUrGK  ؇1-"G]C]b*52|!!SE5.2FOx^ㇳD[-U& ]NNGgGoP&'I&1N9YZG7 I:8ɠW%rsh؛w+vsS(C1B oxzN;KbܜS䊅cܧoр:]Z&}_?GM5:SyOjzXHCv vr[C)+>1(۞t 㣡,=9#-ՌG.H2~ j|oA"kKna  Cl{zjԢuUFx0C ٢Wc(X# ] ~m!.Tܳ.  Ar#tK~ ܦHl;4c>r?܆d:Qk M"Z^fDž,:reU6H"_a2ߑm(&HKb@##3>fzi1hMl11kնDG'H1'}|Y4!_{MuC972)[1!Jib9*=kUaZ-_.TeX8&K(4r8w&":Jsuc:џkeTnZ‹ ?HIxɞD&Ɇp7"jBP[gއ&byG$Ȧ?d[25hC97=0S5@ZvJQuGk9o13hcKnߴOL6u Qҋc+K(Y*u:>hH^+o]c[[zMZ[f)Ta jKXL.=`sF/ ]F s,k"5j a[ņ?$)S_"eИX+vV`k0V5 cbWp_8Wb粢I<޼XCG*;m:bL|γ/|ڢ4`;T->_gǘj693~SDN\\j!໙]{cyuEb{izc,Ͳ#K #bnIu";cцF'c86&5lDk;8 ㈢z/)Eϣf83v)-K`'ӯ4Q07lnʥoG bYn$e))ܘc@#]@'V٦i0}22+ !9mTtyo`Vne~ߧ:^g͡ 8{e#7i4IgqM $-jdջ^ +I_> JړZ16(dVOcjaB)lPY8`7Oann:g=%Nw7z5jhAra} o4͵ ݁$}9.l,}gL9bgP+'koaޮrAtdK4Qr,b9DCJ3r*.202-,Ӯz}V펡"wO}6¨M.uQw:n~hAi"9AU_dQ$:&{v8M)pH-0S[HQwh;LsY?qQg;JZ@܁`J20颖E:]= M!J/޺eGsZ7%t%ep%Wz&T>?Ӝ3dUkب#]@Adp2dQ*%gX@a#mRsp+B=Ec@D6gtCȢqvM |7I1^I9<`b%vT32+ЛW;e b +ETRTޟ@?3Jk̫meyT 27.9*i҄T?]7G)ԝ={Eh zBC㿩B'Vb"&Q)HBmozm;%2FrXsI附XEatsG>!N B5 ˥+8J%l/K(` [AGv ꌕZf{ݎ6^*gTfw+0fE"|(G{TQٙ[b!:lSR sVv %%sO[[0aG`pQ?kŁPiSa~Ii c׃3Ei,ڦ uƷY)GRkRח@9thgpPғ,m?rӓz(\Jl'bl f2꤯"(?͸IOv=Y*7 {zӿR;;÷ ÒĆf_̌=~*7 '@Egcv5pԢRG;w3>W ]i*S(Y$:5V5-ܧݹˢ/lU6 ֈ"v>|ϳ(Eأӄ`؄yF dVΤ5E2AD_~.?7;avw3sA]l{,!t?ݼ .^_}O=ݒ?KX\@Ȼ O/]z~ L?j0|u3_Uggk.Ar+mN=h?ʭj~?/5gZ_7稶 ZVZ-A"nw.Ɓq4#GeŦ Q> W bNq [Lpϵ#LQ𸖈_ޖ-Ivצ5d(' aḎi2]#*Oz &2c-1q{J+e'J S`to̻"Tz?1N}UΚa$ߔDjH_i񯽫2& k.X4l x[váͰ;L!^VD!@?+9:l]&;>[6)n$K RC30_M 2]E*3GEJb[C@g3 ;8lCyq:D2Q eL..Foq\=VLa2}WsӻA߀#Z@ Uc`(J[OrAԙ 1D2NKpiY^d*v]5SyMIGTR2pI0 PVApDwωTڵ@njBW gP z#H$"+RLlQ&pkx9"Tw= % Aɉ'Ʋ4@֬A0nq$"UJJV{ wum3OApdH C65G@4fT0)YKIsb40eTs=8{X/n3 @SFlK?r,~ŸD7!󢇄uv0!X8w4N1YtcbZ[!_3hKX>PM%A&ȊjE2&I'lai!^Z#ZVK0$ YßEMm*ߣ+Pݮ8a[\eԙRHH3cQDWTڥN[#`(;=Qt16D|9m}'o?kC4=DJ(6ݒ]C׷ͪ2**[X翎Ƃ "k í9&@dlw̑2PlXH9hì a޿EuXy%4U*1Aj4㞺z$,6Vv+hO3t4A-Z :Z,Voe 'wh՝G)˦GGua0(#fYSKۡj< W.ƏdDG ~5ͯxyA[f J` ƌsH!6Ot|@i=H_H YS}h1ur/ r0'Nx|9n|q LEn;42q MCUpLO)1h̎/ PK  *PK|8:Oddmeta.xml OpenOffice.org 1.1.3 (Linux)2003-07-03T09:41:092008-07-23T17:39:452006-06-05T19:26:48cs-CZ61P1DT5H8M48SPK|8 settings.xmlX]{8_rvKyPuZwB'$lDo@XB^X1=\A(q)FϬy|[// uQHikyaЭ)uU} yL([jo֫{jґގ<*\tK¯7'DxTih [ooqV7 CMW.%/غ7Q1)jo{?n}7?}yj l|=u io2f4T+bݺhy8zYZ9إhjz-!enZo5mS%CPdRQڂE; bKǨh%Kx({ )D_@X D[ߟf{d`hOKN(<19[QXJw0tw'$JAw4./ cEi0H\(peٰn2F@bZGa-m K "b@_* 00vjX1EI Ng?fB Še9dpui2ē(ǖ+urkoc1IX~ D,qd#")jTؒU+}:A%PJŒyER(*8eptq `;=]6xD_LC_L94_z1Mϖ_oß-6]فeK[= pgncL=U8ͯX!4W WOCc8 ?7,iaϼwnѪoF\D=q FoVE kc:wF|Ža#Iխ"=b> ㈸"JOJ5y4SW1&Õ+`F}G& \h ^*޷G^%-W? &LEuxZMr6VV1C9Tg |01qC]@\@`F^f?Hk gFryBXeQ8b,+i%ۚшf%s);z |[MH:XÒ n;ƫޘyPK֓PK|8META-INF/manifest.xmlAk17z**T-A=b$V}caUЖZ-&{oBnVl(D] }iܲ){?ﳉX+g*kbx|y 5iUM҇%x>m_b#N@@%K.!ϙɔsCnwmJ q$URF1FeUh)5n\)cd08kZJ2e]eMҎ]TZT !N]JOU~g&fFs(^Kc2G|gn䝥xsX+1ඏgOt PKS2(:PK|819mimetypePK|8'DConfigurations2/accelerator/current.xmlPK|8 _ content.xmlPK|8  * styles.xmlPK|8:Oddmeta.xmlPK|8֓ 2settings.xmlPK|8S2(:META-INF/manifest.xmlPKj!tucnak-4.04/doc/NAVOD.pdf0000644000175000017500000070536711277513162012005 00000000000000%PDF-1.4 %äüöß 2 0 obj <> stream xˊlm㷏inBCv ldز% 5}l[lopotw^Ƿߒ?Go?[P>۫yI_&>Ƿ_&xRry}i ɼόרW83/7=2_~tmRy|F51z"6Cp#+nP_M.O91D蟏eM/A^WɒAܾʒ@^]ц+Q"lh ӯŽyCGZȫiI-`NrΟK#oB92NQbn(bpJMZHE#euVP- |+0*"O%g2a߾֟bzdh_"ʆ;@E,rڦ(It B܆/+wVBJA,Fp">H"Rb־aXnj3. MiޚeBw'k4ʀ\-ƨ). D&gfS&Y9_`wN" Ư)P}0;I߽t#+ѭOm C9( :9ϓE,sic9{@Fދlk\@S,_jߩST ȵJ؇uQi{?):vNEC, yCz%f(N6/ϪCE_ul}㋅ &;3{Ȭ}@26eũO[+˃1${\u3s: q.'j^Sls>f<ҹa}kcp(oQW88b3;9h\B=ŽM%t`SVkJ)TH 5f2l4%zl`DI=lThw`kjԌs]z QK(JrZ,!%v3y%-qztr *zzG;8ݙhMjJ$da8l3@i44 ę@ d rD:;*O2x2˭rêr}[׾sr␬d/LgnFf ܌C36ބeQn*Apk9\.+w*eE#L) D! 0*DZ P!h9кH=h0InމgnlAUKlOJ>Y0^Uq@y$F֒-gC=p<3h)?V}:HܶοhL60gOU #.0XU~aZ8 Lq%-Z4H5T;CMVLt"]z^r]J&&gh2jb,Jzd!K)9ꎤ8ic znkb7r&7aHP=[Nۿ6V: GbqAVnҥp"3c0^h|&2,&Cv9) FnK·6<n~~廃|KsK0"f9g)A=)2AJh> ; Vw.:A/EيXL@5{WC ar .,z[!pNpblz2hSijkJ0n2_a9Lgd4@P@d!RžgxcDh ).cZA`.t I8eÍpFcnc`CcAY.j wB,^68^DUqba*wyWb'5gK.Xs92|*D,{ʋG?Z`]Iူ>l0]Ly#MGc䁽{17p{R9æFYƆ9gG:${k>'*ܽ/7#El^A|WpٜרeIT1H6^[TE;4g%CO8wz/&E@a;vY& yaN&P{#@=E pͱ<`,1 Y9L_muhMf8} +4o989X+V갆U\VMؠ5oc]Ɇ$V Q1i6'g?\+ieIv8,ˁkb0bzFVi=iڱzEoЊ ]TXF۔(5Fo;c4y3ϸ3a#bޙchQ,{bkxƵ_w}G,ǕOZ**q pݴMuzY{/ WNnڑ('Vc14f5wwlo9It@aNO]NWS%D=z&^EY"_`v=hHBg,~Xo3阋h̺4Ƿ^ HK|{uZA!ި.PfT' 93-@6t@;[A3˻b3dlmH|ߚ]!Nf+OٍcUfx> Rpv8헧ʩ[+p)f'^r!BZBmR:#oDZ8w,++WbomrM43 u)XA),l⇥q=lD& ÙB܉E4, i7QNQvEP|-Ę9?HU=p1 ( R9J#@;D ~זNWf۰z_ W 7ֶ]8>.nt]8&꾾MRJV=u 8(;;}VU'\@=Bڋxl㩥Z Sv!vs> ~ہU`54-.hE'QOOJph^OܟY t?HdeVuH[_4,4Im{ "?y<"brsT endstream endobj 3 0 obj 4727 endobj 5 0 obj <> stream xSKkQI >6aUۅ1"t!BZh0"d:yf:BP|AzjkqۿsTw> endobj 8 0 obj <> stream x]Ak0s=,Q7eC? & I1k[!Mt=u~`{L0zrKX" 8yRetD%Z7] Nm/_c)Arϳ/fFKix"Buyb%lhBUE($;a%YJzht~ڀ]I=WCܩm endstream endobj 9 0 obj <> endobj 10 0 obj <> stream xsteo5vNl۶mĶJŬضmmT[wq~\k=c e5sGS #3/@UAAh rQP[ G tqvtw / n\ n Xy8x9\.ttX8Q9:yX[Z@ECGG  @jmQ= 6Xy;YĹhhmvNNj1Q_p)HY.rssebKYC1Z0:ݘjRH89Ӎ+?ŭ]ff?ݶupt_?sw'& kgw8YyY@g̊K{;E8:9:,L\8_W & `nm0ZZ;_hk7k/3_|7wtrE{  _`afepo*Xg-)`9<#L;tt6MQoX9_@G鿓:t&௝y?ڙz{k;ˎUGKI "v6d*i4Wv3'`tv*;Zs```?Iu+k3[/`?/$`hn` Psi]\Zw{fpnBafvy]T̴:[d{< cJp%7bߕf˂M\lC$ta&i v'QiӫrfiL?r삄y=|?M4t`b!VA D([B``^4+G/zEQ 9 _37Un ˔yO\$= )q'!WS֖fz'ݩG Hpd"2tW̃_CuxH)>6 ü!'d@ܚY6G(ThX}gcq¢}1X[c5c={r_dMK{7t5(L(՜ W3o7Xl蜵lS1܄.fZtʭ }.Kgib4^fj9fTYg!|v;"DTo<&J/T?&i5D)U tMN~u̚A݁.MY0m{LqQw@hQ*MC\:?$U6 VzSM Kj ʰB2EDnz гy*StncZ%5ώLGM gf ȏb1>c$Wٳ 8ϧl6c;h2k![-cҔߴz=}Tykak}'^JN#Nv&||9]߄MA1LЉsϤDB!3Eo8hX| ?R$qi?>Q.(2|}5u*Ѝd_z}rw%}242Rhx҂J×o"cC򭞻n[XuC{Kv;z~ڸõ w\7;KmwMWpg0'_K+sm~AI[J캡إ^UO=c>5gpnA29F%`r* 6=:c Ӥ.6{{+Mt`w@=~`P~ 2Q?~xZJg-t?5[rR..CFqxеgVҫ >zu}o3{ 0vi2&1u^OF,)EIb~W U9PO+ÙR&;$`dX)~A)E{kwp$Uҽ7хm$[^Sʤqnu9E`edR1?Y֌NߜU\mi\S,ih8H %2 }ZB ed{I;H_;^ ScǶi4)&%4QWD4/[|9-U'n?"T4qfiٚ,9-ca0A3tG4`bsûmnwy'̂C0Aϳ1w-+T8asѠ QjڰV9vi:?QIdJ/ys0Unkg3dG\mVۣ pGQ YX? oqnkT&l:+D{)ʵ.r-F' Cr/g9ȁ>mٔ/s{ VmC`Cjڡ-d^hUS05TfNS6<ϕ%Yg5 op[]m,(l $> lZձ{om=٨e(Ml/{C 3-0c3&oY}X1)Ԋ'5V|aEIܷ?MϠϣ)OSHGM>v`j+D7`iWђF޸UW\{°.4.}|NaB'!+_' xА Ү#>#;d " D[u 0o&=CHOe' y OL{ecXJZ-{hH&]qRcJc>ZrYIz ]b^4b& qg6)3'h qku-$r 휩RI{S_W<$̊& 51v} yK$:6GC>жk܇p {H>&Ǚ1!n֐t*.Uǿ@ɟ|DÉZel y,Fz04,ti*2\ݡ 7G7BMk_iOL3y8 M}lT:p kDT8}S9I8ggĆgω NI?jaj$Mh:͝xT'*',cQ퀘7zpS^0_ڼ&zcvjuiIbG,ñ+‘.7ךw~;9ܳ; _70aLlwSM.ٱQTʧY!N4ć &./E?gnbSrmu},J} .!JIjb7K$&FHMոj Z"AdFlVV@hw_A&o ^$iPt[%ŔHEb 24eEѺi$O^*O;':߻}WLd9[M-$)n-DD5geڜ6`3rӏ_H[^QFڒb2D*y|ueW6.CaWe, {2A5B%.l 3I}$R ֪4!15?bB>v̝6C__Nckh%R1Ĵ"M*sڇ;g={mkT&3N >BCP2GvL" s:Rn_e6H I,g4RA瑺?PzK'# 6^;]u$\L#0/~xKm{N57{l ͯg )t9 ]ա/HSp˜֑xEQ+NB X&M}A4k_'<6[-bx88#;*. .!:̎Wו4sWGZ[K F yHI} G M33( ywDǺFdYl}3q/)gX=ݶx TA &Wq3ub4+%c82-'0O`M n7,뉾ow 3o22T#廊,e;y[={E;Pr؄7Zku,:,@LiU!~'N:JȀ`֘]l)\ ;sċ.0Cg-a'w@tPz=y)opWE(tkڼN609"=TX9!Wyنd5KI?]}U<K^bzS#O~OO11L^)NiFJwR+˰_*9 ,d4|qI#CkJ}&kNEʳ^f;z,]WfMK .2܋ه"!rV|]6~ kLK>/zͰelVrQW(=mWꂉYu.掠|ӄ [ĉv?uT} /;~9_Fm 6^FZ2yl,-Eqpw A|in|'ȼz7_lj7a}.8]QVǘju,d!;Ԋ1t;F$ {~9H k8Ѣ  tBUiΛ3,CQe-Ʌ bp®lƿXHXQ0(~0F103ʣlz$֤I/gq4l&>RTq/Zێ"b>Jea§jgEC) 6)i ww: $7Y=&[k=pG@"ɆWHBDfB{2)vv!j:6>N6gD[e|_B@E`*LxN#Xo1!qPT`Mס }^aͩNCs'=,v> .ٓ 'ẔWx^ޢJ2񹤙Ĝ˳(eASaQQr+}vTMŗ$n+v0P;% eT),dhiH|u@ҥ`1QWӜe|Yie<)TrzO9TAg2\}$-\N:xkx]ȣS"ZRb%Ymz{}'qOjPyK#\w&9ܗCĎv~/ON/Rupm絖-ix.L-b1jOxۺz]>3U@Y Q;*׎Q>Ӣ" lD>沒Mslg7*5/0Be2zmϓ[ "aų[l(e[Afs#\a@̘鹬%?z;*fqF$&Xw/k(eK?8]1EkzZ,a.|Cp.u*.2L9U~gϘFtm3N7KVꦏbV$+F@7.̱Tn@U+*L|T"jD[iy/x])J#j~|}sK58}n3*qM^ldӴ6E8muZw..x.<]|f "-_; TX$*Cl(P^9I2j,043dMB͋.c I!aE:ܚsct}{vvt̀x q'7L'a2lD\ @9E mzIa2 }Ns5jPkΔKCOk?YZ5:2sS/[U8QeTNDw7ZIl7S[bNئ:j&hTS[T+N\ӠϘ;@/ZB_i #^Y%VK`O,3eu/GLGLocyWVqq5xEn8<[ M L/mFa^#W}gBMqrnO ~oOܹONF#饯$9<wH4(L|P![ E+>$~TܤWJNJ?w8 =q;Ъ0WX>ON#l-tנkv._ȗOA2lճ|$KC#X=!+!-'p{SIl?6qjUaxɲ0g@G_ـ9َØ\~ԑ vqH!w4$y ëg&lk$yCkP-M@6i8YAY!?x1Li%'g0 U4GC7j#c1:jy@ǝT$]{F8EKx @f=2_gR$A\?wn.L 7 J4޿bPmSPEBKImi:]t[8ǿ/QKLkCc.#(̮K?U9OGS3qkFY% xF uǢdGVz޶#*OrF٠v<{H~-\ٴiVӣOBGlm$vq*3H,!.kAVvFb&D5g(l:e SǓHlkS>jŋH~rwಚOE"waNpQ)Lࡂ$!i$B$=8Pdi)A6/>믶.>"|hQg1QU1;QrR٣S[r.$W/|ZH>C3 D`oaDzjm_[Ii ÆK&/b5D_>1QOy;"mm 8qnNn;9o9ZR[1(Yp곑Mj̴gaW][BùMqiF}]G0}%:Ƹp9\ uM u8S>3W|7 *:1ک٥lJ~|a=9(-ۿ^W\䣌qϔ!Cg.'/B@ OSeS8mAy3{;IQ8jo~Ui? 5/B9r =z[Ẃh2L]2gqxN}T/FEwUع:_P f'sFDW4=;6:5i4#a&S?"vwg"=͜aL3ҩ0LLagvBcn^Rhd8M3VQ#ލn?(6/D 3sC`:o{Ii@,$r4Hy}O$6Y黰b0UC'' ތIhyM@fNrz ahT0ސ뚘5hrCі_mbtP[,#tͅʯ e&* .Q'O_G6UDW{QeT5Z56$lfeVNPQS~l6Ż^@6~Л?,5^b,m (l4qo`k݇ΨS Sq qx'jrfy-)BcxǸwb 6KG fVC/ qx^mDZ'LE@`=t]%p&TzGؑNg=w]#:v 2bDm t<E V:<c* 77돗͉dz(P[ ܨ$+ Wfٴ7J;0=kHNz9aHK{e7 ;@ ͮ]xg;aR:?R:mV~8-oZ5TWf꽺ą\w ]cW2Vq-PDE,$C;6 o0"Ltevw \ԉ-)8A08׆_?md{N ƚg'% '~)܋w]6ОWG2G>xZ,%cEjэdFI: k;,l8x 9ĭ}nFG;nNo͞2@ t+8W= Bz -1+aUx`QG0+73WR*u6 7mU ;WU Nc52(G j*E}>oabr}9mk "Ǎ޾@P9rZyoo"0nH4JG8"273i'sČ8N!xTwFm1RƤBX Q=2X oQ(:7 ~󖙝bRhW>;>FkXμe?ۘ /\X`[LhP'{QB<[J'8CT1g#{9oi33qH r"𷏭 Jvϓ(xAN;˭U%R0Qtɒ JMY9$:eVg} !/oϭSQ3 W,{bYWPmˈioIo//PU1 )oC?-a$p].SVRMESMir/)]>( U$S](Z0}HEQM bʪ^P41puwCL(g:r~%'jH%uT$"*ɸ d0HZr8_2}=Y?xwC Q6>+!sk/j^B1;B,{ǯIEHV<&/'av &kF7_`u!}쒷iO6* Jdq2 kKTҝU\gq$^#MKj(A28:>=!A:ްP3Iz`~pe>zO̻8}NcβXdn4!dτz&W@UPBF8gv[,lWӏ|U-) r;DVS!r7l#Eg12> &Bzm=ƂI,G tӫbj^#zrвW(ffH#>K˰S?]j_.gwnE*O$Pl{m+8E&^ɵsCk']S|Ŝ9o}Ty[*υ1:_)|/אF!4Dm$\-yKL;|\6a/?dKBF/icu^(F {QW3OXkjϾ`7{76;Rzw\zb41ۿANjT^R+z!U[)JABx:$U}{ w@B [-x#i4;xj__fHvf T`hkh+|"Y)X4v:T +C:5ZbgS+g2C'U(!hgR^#6t.)|qr%nM#j+>ArxF;xz0eXX僧\@, ᫋ICEvیC- 5ŔPrnoEJ8EiaWNk0ݠw⻩̍}ܮ2> mZ+H!cS9p\dG:/\(~_ `yz(f֥"~*){.틶}g}Ld酐l&Au_ q{B0 #\DRQPB/{R$8Ia5=&RT=?>c#J\,**~' |ˏ'9؀̻Xk{EK1ފOeHФ&~i9B6)EOʸUMH}j' q0L6r8;`9kAat*o X?Qߥ!AGM[UɆ"X ~ jdꛏ=3Fc_9g|_lЬS![!؞~ >^}~TRNLIg;ⱩfHkn JixudgX>*K )Ut#$D#A |"*!*ɱ}Ҝ} 0 l~ ">\9 x7|"E OX3RvhkL毬>pZү6 ÖX8J#c9Y` (I!C{(fzرz잊_d!D~Uc'rPkD ~ESz}@.[#¿VjRH;E\2"tv[;cNjz{4([?>vC ipArCۍل˥)a#K"y{?T44Yp L!bÿP'QXvH[ퟦ 'sqmOW"$7w^ qlf XHV~XZuVt`ٞ`cHŽ[.ӓQs'գpk+ǫ0}0WM|[9Ѩ@1Iebr~qi}]gJ񀼑SQt_ 08N}Ԉcl"־N ΩU6(C?tl I^J8`F0<4!Y3ʋ|ȬX7 {^b) Ȓh|i y8\|Gޟy9RsPɄjWBP~^f&{hÏhY\^;$Wn-K0`wq $l/H 1ʺ~䱡;0_I.eWuG{D2~>:Y;* "/朷4i }(vZ7Dqh-ȟ[( NNV`r&.p>3*|SKm9k2+fxO!^CpVG+DMl\!;߽MmOe+i53J?i<ʜYF@dJ]ސʃ+>9#l59.\}ֹ h{Ϊ8wT@vKO<ʉ̑mx~j XG7tfХCaxV#zVMgڞ1MS]sF:-EPaˌL[d.h P7okr )02V|U\MX{Pvn .Z#!-UNa&M8%6X2.&t;$?д1 hflzq ~=ٖ-0mCGFrTzĮ|0gT-JU۠g*%g4zK'XS/gCS$TWAP!cE6a|4Z~鸘ن.Q򞔤Y_ S qF$OR ʪ@ٳ)!=`j@tl8B l$`¯g$/Ycb{ `7)wnQ]*{cIщ'cDI`,Cͪ<\«TXy}|ZBqXN[vh;]imoF ݬ긆+ᖝ;>8ꌗNb%d8&~0Yw8^-!'8kŦ4_9ͣ4HȈ{-{)iJ4Jxl5I5L'@ؿ-B̅QpHry23-6"T瘹;H>[+W җߐbKd@(:Q3j+;7I_%۾MaV+T$kb`S~ bٯ+Kݑ1WzuE`eL9d!ٟrzSN0ё!Z Im繳[RxMFkO|m1ªC1[Dϳ5'8UTmWP?(هmk},]NP 7Vx(u`J1׾X˻ΰXҖ[z C7saC.? @-:`VO}+yυ@#H lj$P۵4TQ?8Am9[@Ey%\MHmc)&jigi,w cl#SǛC۬IlK|QDbmv((~hmXjBʵ=()}sz:*c@BHZKexwkwD~9F>1,fpO>iPu_kbj)8H,FI' -%_|T0[ !7mC0#bMkXCfZ]Vr\t瀪`ќ~6#B r<iPQ4c̋~}]] _~wV]^O) ب0?)V AR}\$ dm˳w8J+\UMGL`5m(?lwh%ÿU!ڳm`SZMTJ!TR$qs}@r5( \+ޑq:?+YIp'Zy0o?wG04 |mVa!>XW q]{Sj9oYh.j{T݀VΏ@wqj#յ9oc%;ٲ|EdcP_~B;ga#'s_ߜ$|3]נR*tLN) [H>P|vK\"Y!NMN֒;AQR161/[VL!"vB{dQ#<9dAOd 0Ss9쩌JO#:R\#*|/ةiGkQn=!nj` <DTMz'=gL⣊㶦}-ȟ.^NQidr!pH>K!kإ8gU`b䯲.XDk O8}eYzI^%lֳD4!]\OQیzŀ`[(eU!OW|+}X5Ev/CݩV9~~y'Q=&/%1U'828 Md6+'=6t6xU3"J YTm |t *3ztP6<&yV[}OkfxvZy $EU`s!Pୖ#Py5y覴,OV% " 'cbUiYp֙BK, CED堣n񰣊 ?;rɫx3Dd G. aߝ*@_b!m*`P㆒ q^(DM#Gp-J#,ȹSLf Y3n,3_ή16m[tƱ㞑0jlGc!8>ɏg좆+ )*%]~f,93 =Ի20XRԜ .X9/^fo*R&9UîFgWN+6[{BjEהΛ(7{Y)%O@vޡۘ9i ~5h]*KbO]Ŷiy_FV,ӛT=+je~r8(r jx= 4Sl|;>wۺ "TTR[|$İEp:t@i 4:-e:m -HƭY*yZw/ZNPð:=RYhx Y S1o! (_tLc<ًա4mݏjtVXU< zFEFkw+ -*n=׬ S|O_2YKO>T"y.EQ!)ͷ;3hN@wzAQwX?q%l#/s`Q6x*Rע؁9Ì7\'FȈuG6Nҥ]} .2 };g".OeE!}VW^![+8+˝K g`}}Mxh}41@K񯑿fIf~1VT\9iԀc؟u_OņG{~bua"hM<^H?WEW,]&MWp¦PWN2F7>۪:el鐘;C܃b:i$%K J;Dlŗj: ?>:hY9pNc{EIĜuԠT:jghwCUMCiERZ C1Gì%*ި4zQ<[ =MԸy*cwVϚ PU"A.(dE(9eV gK|[ Kii3#Y  iLX3Ul{),brMc sL^)ĠOGcXJgzpiEr ]hFM^*vOGuå\e_& .Zdxz,n ? 4 >ܭGPi,xU&}5+h"Q++\pr\Wg/5:-wRo}~!X'x0X[*Ӱ~}aO'߿t;霵ne'UqhWVwٮ€ņ?Xtɦ،@,Ȕn}5|%E.`4)vdlS*ʙ-wżO6mryky"|kRpV A>R\iQ joh9ͦx}hDǣ L\r3cJP6iacQ*JLMŰ#i9cV,u/{>iJ,16ۂ&g%M'gd[w mZH:(DjrUo_ŕ#}m6fXH¬Q@*A: 4 á^/sDtosqyF\i =8IN #1b_6$GY6Cּ20u,I ?ymD1s`9V1S\ DF1~xA!^;p1\9QȃJ4u^qE۲ o#%)RF%En[bE]ʲ5SE؞#I 3}J aAh-)$"lu"9?r2;WشQ[ܞ|d=iȺ cX80y?pBɖ͎O0dw)jS恝BJũ>jn u܂#oٮatܵv@l]uǏyp׷l{!YQ͌obj mcv*`hS?)ͽE n|t֮`8&"cbcٍYpsÒ `O{ sʁ27!fXWg:=%qY̸Q1W";$6zo͵rWhg 80Og&R\6o/7/]Koć_ 3 )zU=-] ?rA%&j՚Plw:MѹXB8O$J0ل|6eF%F9,Λ%\㾆ϾvOBHAbL"BrZx1@=&;3hq*j^^ki<0~O3+*k>O&_ӟr>tvjP#xih yt{#e2Gfu/e\|~>p%7Iٞ2 T %:33H:\ ՟ʮ -ͣ޼9 U^tOBظw:_C<.YMJ.rQpvUgM48^`5Ey߿`;cP2P%-3c!)b4xղy'(@zXQk珀0ڎБO]63}pD]hx.]T(Mif%'T2 1j_hTdQf& _!&ɭCV,H'mܟ4p6$>*U=f; dH#)z0pgNH:yyuE*1XbNݶ#p?|jb>ǚgR@t}g` Rnc8uL!elt\@hn2щ0@CTKZ /ayl~ |t{:{Y*jdrKjJ1ee+<$V~o\_58sZ:5r~K(C&٫ 0i!S϶Qa[Oɦ8B a$ Ԗ=ElCdhhiZG(ϖ KEPo6\͔č\ zlj<Ρ42o'SIt8g9Moa3,T%D+2XVvKn^8Y=w5@RR.XCiAoQ V$:SXW$K'G>+`SM3rm]k꫺5G+gMRQK5xrm|p Il/s cF6ӄLC>f7״ɇ< cYFXX2޹XC#웚fSl+<nXJ1D׬N&ʼ\1Gsi^?`$ et꟢,d*Zڊ5VBf5hi^"g՜,up3M GebfdBRj٭?(ӭ bcJ Y*G88#R}~-8rSƷE~ut%phP0j]ieɘX Rbσlϑy#tli"C@KŔR^rK~_~Mt}RAm(zW*@cẂ8ް:hLE`m,(D;{%h~5ռ}P%h?_bw@ '7v !;E" ܄}N)9(cqvkЭ Z,=a?T.WgeF[3m ? ~!gy(q⭮h0LY159Cʦx7bC¡1S%[qsb}Rwry`u2Az`#tcځWK61'] Գgzow=&|:XӫKxR do=?a;'veu/|Ǎ l g4L}8+D-tըN,=VG?4ԚAM860ZP~qVN4zav{`)eF#sl[3#rAy:bKz˘" T0m\Q~%.`QYG S +e8-?Bsd~#<5t*NYp!BP!49jn { ȎUe8[LtfpaM  ')͋(CE0o~z.:lqTgNfIc9 6n\Sk߲ X*#rOũk54ұƷZyH >{t{XQgW揰\Bjz^H@wƻ`~jT߉h,n=h9<>%eO1dر. <˗&w(Us UfJq ̵ٌݱluC Qx_Y!b%*֫QhB^95Q96= z(0vPV]"Ȗ?o)%@AeȁɱOzL&8ް|\DW}U~~(͞?o k=}b[Z;6's /Zz Ӷ\G9&:sz,\Ԫ'lq9U~ųU*52S@ ƥ)kۋ_kbG]KITM m5MdN}aBPJĥㅌ~E(Q9$˺Pܭi$nJ GUJZn%,x}iUd?UJWco ͣ& c" fۧ® y؏&hܨDKe[܉U(QXW>OM*%N>/eh)Ɣ6@˙T-f(B4!UaA\=>V8`ͩSdpݩY?a̺$X_l?š/ = g@('8Pbmdw@l|?y@" )Kx ěJ]YLf :{dk򛁰Cx"n6{X [Ȩ 1s˝F)hp46qJB=-K9{W+#$f'k9KN9B4%-;yGCX;Nys5+"Tph”>< .m]HIQ-sA3IBK@A[ed^k0tjIB|*`F9OdzoYOu,:!?|`rJ#kx0g!B|AcU7,jmAc]O]kP`xuaP=qtHΒQi͍A G\)Cf!;f8i]TYO-rEU?NVwL4SL>'%P[.mB|O9Db W(;O,1ybzU.c1s@v4: J@b9 ª(J[EbՑjw󿸙DK="IuGAUZZiV3?0)/RxE%enTb芕#AcCse[*W0XYѼ8=̔Bcm2^y0a"_$G[s9,kR'GzuK~:orѷ,<FzjkbS0[]pen&ygy7$lyeƐx%k*u88̜ڠ \~_Po@&Yi'CXSEBZmK?~V*b7u L &9Im Xہ *k'fVI$_MA>5p,r tP@WAoUp'j|^w \)* ::%OwBdW'<~Nu|"!e=(9B;Oܕ F_VFi6Jv.-nT ʸ=EZ6Z]GRiA_lcZ֊] NG#")f~ܬ NaX-:Z#'KJR߀",d#Ȭ+8,uT|M..YJvSڄ0x:6mv7eo.k9 lZkJ[tz~l#d_V iy{(xϤjm!79#ao٤934Rtqq VyVn L[jI5P&Р44iܧp΃VyXBeNi \tB*ޟzUX&Q_'$Rz{q|Eyc?Ė7Z:[bc4 kw>!Xr&5oV ֒J •hn$d9p[vs~LTИB=k@36?6l[>Mvbtׁ5˄@UR$VGtZ?x& ^ ?^Jkij~!.bJ_~uG툗UGYT} jn,fOs1X旧FWydi">k=lvp%|Ut/§ptDڒ$m}(FOy3DvIݴAv Jۜ[/ w nl!2ۮҀB:'svS/ -FKPVGk42T_ N=;@IaiYD/Am_/YǨV(`k~@ > SY#kZ*K ȇQ@IXa PGwTui38*dzEm23m <$ *hwFT%A#+qL%A;me;f>\AsRR|kk4qaCKqM͋sUƄd&$U}Iziael3XѠAXV`/ fSn?B~ C݀F4S1\},ͪ%%&Bі<}AwD#>$g_Bbі8_Y;I2)$yYF簂MU1 P (KN|#E'PT)bZq54 +a8HM&4 u*#"POnWм g_j@O-p+=2zya VOajG N\'t\̥`|0B՚(ũբ36izSQhǎze-,og@F`z}Q2D;A։9smNuǖ\ k8[\<^[wsw0| , ˿J,vx2&/U< WzN m'[kkWīEUli+ǝwe 2YkbUFmIoj)059bTzRi )DT3)ZdQ@ޡmm$X\$9V Mǚb&]/ArN:'.^dɻgaJA- }++ޏ Lݖ\q3D\`4|16GYcr>\A` OK+8K:jkbŻ/}Jq|q)P3nλkr_p/1zJi׌^Zo8IJ]FB>JMW}b،j"u bZ \L7S-dy510v 釗 ԉݔHfY|^kZ5mo1Qց3d܎{Z>⃹&˯x̦7#^cWE p]?Lp$raInkK9ֿi:S"Zzӝ}+VNZ.!gڟ-(2zM?UӅFgifTԼQN"(l# xP:i-j2c ji. V4e䟰?tg{U^ga V(# D?U7@Ic_s&,@wV K\31Oaf{i8ő%9>k I<.6ֆkS MQ ƙ%R4>ʠ/rN9p6 C}YA$`x֕oFϽYXAcYzւUl3[/1GIܖ:X*FPrUEp|/σ4%1,(62hv>RdVNZϟPL3;4 g6$(,P(21;NY"dܴ _^&`nO%|šCgL̯HtY(z|W)'ݞK:/] Trryrj r삫X+3zQo nΗ3m"/JH=Dhpo~Tm5|)1quqqxVr͙*k;">Ⱦ!%Ch =֡Yf~4XݩN=܏\Tčށ֭GGE* L%$]$ #'9i3[zZI/.~;Z#zZ@vGUs0z wpڅ,$%P/HHW=!w$,KW+'+{&抰rhh * /#n5u`@eD|h~Ӻ+ӚЫ 1|^ur*fTw*RI՟ q0)ϚϭCcE%0Z {-G8e ]qUԭC`C&ʰ"0}LN//5 >-z#$A=uE_6NNW*řoXkFXkmχ4C4+s#|='X mu kl\2FC yFו(Eʎ~5>!ޭ*d8DH`C0vA 4 _&EhoO>\  GEMi H #l1᤭0sΒ:|ơXfd [c4k@ˌr|LSm:ReZ~h,s͢P(| +| /`-w4#q`ԤAyH &8vIqr |;B3Κ e] _x.X`nVż(9_QVTwn}~,VXvB4G "$ȸְhEi51i}Ƞ ɣ麯kܦ;>XEֽS#noҬS[,Ӎ)7a$k)cc;tMSm꫉j%9Fw]"aOg/H}8RMbhzӺY!~PpM*9Mm0Mc?_4Dbט2JSkǚ%zxi|pBJaJj}:gyƭbْ͠:OS-b(У\01ylN1=gH*o+Q`eYe %cCM=Vtbi$MtAm#qWӱFGƨzW?y7U\p^p_5z-Kga[ݩbL )`ʙ[/ICؒ{w^W Tb!P>x.-= o ]sqB+yuF#2B~3ZL14^#xtbfGAAj@!‚ؓDcSM e'U^:lxن1ZQlt`֥8R:t ([*+B1F&ÐDò!S$*+˹3.t1}OY$Yx"?Jƨ hq;Nslf=X^@Wsjyc~wUXjvxGO^GʠaY mIVuLqcdKnN+#Lq.RKɗߒ{P1 K_`PD`YP"$"$WH@0{e;r~FЬM ~B2Y&BOH`E) &t@YaVŸJ։F>X+$U;HNJ"H`hG1MeS32cg!W6*Sv]##T5ԣY"2|!z֠G.n\AfBy#mk2d%pT.-q,齞 *4pTK +jrMfBldҢey`nնBZ!GE%F>k*%o]IjWr@jyK58j4Yp}9têl%aF qY`z ,c̝PCχg9OqDDeo+sI~{ 1\ハRt(t_dr-~Ac$"ع=4AU}1joD4l:45θI{kN&L %: "vGQ~]I)Y"/+ D3k |5?TMCPՏ-L檸AO,xc:. V>т;v#ypt4m|j:p~G68Z>ӕyH<8.p}>zWQ{}hCL"4_׈*q"Pn7quTyT9ݺk;Ng}w-Ҁ_uwC1Or傞ѯ0OdzΖC2 ̰Hq#/D+:קGHj CFn٣ۤXڃfRRN C*}Q`g}irss).G`+KYQ+KfeR:ֆYƃ+# kPcbMx=}=!@-pI`gR $, Z8j4IuJ9N,ɯϲ·f*.gaQQJz -+:'J2)Ġp%zUwɩ)e[ JHXo4<2ޛMdY-;w aBrB_UQv˾C>=ec~XSER=dBkgWP 8jJw?v)a^vLz1DaZNi21 f_IDIJ1Ϭvt$'zo\wP0`HR nYbwb>:FG|Bd B3Ѳ7KE.bo";?{QU lo5<eA3+98g& >Z!ÝA@Z26o_ɒM >tgDۯc_ԡ>XQJEa T_3 fy\qN2u_iV4j4RzbO9_=_E;7\,GJ*SvQvti91Wfj:kh )m,^IbSSGd,Kʇ^I ۇALn"|Jʁ?i3;!{kݥHK^vwuo+yP\]/Ό>"&b QK=|x^F G7,[F  zY;,ZAɷ_g:\]lEə)㠭Boc8:s?f)Zk!70_&uD:{"uwX]Ct}R3ZqXGSrz˖>]赆o[ JbfhQ(nCz^g`v%F&{ְzdOW`:VAIN$u9Hw͵&^5ǵԂzrr2Ⱥm+n`Ez+>2Y*-kj֓mIKkep]QfUF9݂Fp|pcry7[| ZO7mn쩴sDkFgdD)X/.eʴRWqy¸>7 ZQKW3.Ie'Ҋsa50!1_zLsV)jN:_U`:K17즣crU؞唷;xyt*FYڼ8Y^߯94 a(ʂ BwD4ߛ _1i[4dfhYw槦H۬ވ"jKT`m3dɪ(&koz+ T UZ:P,:O"uԙitbԹ蝎~'Aa06H&F`κ)_o3 H/^M;?*Hu>} ü회Qpն_ycVc %B3PA'fIb<6@1AU5ImWYUmz@d7aB F.Vb .[:靕cA<‰łc;-7 ,5aY`C\]h+E:꣬y.}Rcc&B섕PF7Dbvtl0V|k3 `ͪH?TdP @}mv[IUGZ8{vq,$Z7RW?*DCOKV=djP1(>a2=:=o(R2>;tn܈"d)3G-+jZW.Z ϩx[3&'NG+oGx*>ɩڰ~ !QˤiN$/=%Nne!)V=J]Bj9nmsUZm4~VsPkR_(&p5}`76aD-V#a^ GZU;k@*BFƐG4haH chTbE5[*-) 4|pU^ua<9!nBa@P%G5k{ ˅5ת.+fX=(فj)v-O]ë'4# ޕcw3¸PoΣ72K[{-fr.PddUGr,O?'ChYFڵl\&X!ܯ64"?6?Wu阫ԃIw22/ȸmwvh@J{<1~KE vhC~rR 0PDhLYRV6Mgq8kfe pi3E$6f}yJ$tQV&Y%Xtjt]\5m.{sPs-5I{! v!ydz(||83> (NJtU0߷xB6EK;`TwGK2-sʡ~Y7( boJ4xJ-QB̒UAsh^"vPtFc I*4FiBY@!VJ>Oj+y+eIB* \#l⡝cuUFG"NaP[%߾+2=iγ(4 Y]?Z0f?wNQz |m57`Qd7%{͓8c ^n9b^ilG I q**X'UEnCYިvb@)G ;BGֈ9q%Z7 SEbg,FƘTMy6vP- 鐗1Ky#(FhxYkqWgahd`v-CH<:љM0&^{QG)9c"a3fG7 t[n@k|72H3ވ Or*QtmpM}eƚnbpF|+(XO""+Kh~ʾwO'.|ߨX(AP9f-R `) 4VN >\9n:[L8X 3"ʁ"o'U4Fv{_aWX.j6!%hpʀ0SFDm⽅vY]d6+%eF- lod,H%X?Hجt`:S ) 1 z(ֺLP2I< O6*aiO%ŝ)XH!\ֽpx\!>IZ@Σ:Y$d^]RK-AS˼Iayky0apg2NL*vcUwJ}Vb>'wMqSEveVԻ20eFDV9In)Qvf'7[ 6#mJhA.o\9Jim}%ѱ [3_94끕.&^u [ɐ{ uŪ+V3m%4VY)N1bЖf(_0 zfS& \yӁ΁,m(:HتV3YF+GCM:6\؊P?s|0 ddeV<C@y aƟ,EJ2..h4]m{أد9sVJA^>zDEMz;}[ɝ#APr@fw%^s&!kNL$΃Լ(*B׎IΣԵko`NnpM` $M 12^N[ 8GG&N ψvuqy~މ-iwD% xJenD Oebf60_cț7%#Ǽe@ڕbVN3N,+_%Ar8BKBea܄:ܾ3c8HA6͹r>3m{ܽrKqE*̲J>t4&|nnJd-E)$>QUIyM@F9Gz,xJF]?KAН_ǐdo L.K2.(:9 wxpˁiܭY7Xjz4MΖE/1 `FEvk-'su¦:M/p'?%؇} fKK楒'. 3rNCdWZ" n_0q>CA5uGU(A)w y꛱엚h?/(k!鴴٪xr M٨RJ@JG>ZfZ D\(V/@׳X=e \Wy4uoeH\SRŶ=VOX[rӬg3p Q8 ^2uNAw !XօI0i4u D\CrnkU0"J4i"\Ubg~i:,qd(9W (0YGWG"8S፩[}ïVz`bhgX$CqO$= GG߶>!~u{5 [S3Dht{d&"kLqT'(msXHEf=Ǽr O5~׎Q9( Zdt%O5%vS%Ѣ8F `0qy h:72轻ϴZh# bqӇZ)xaZ wvå}˷+FIc,IWjJGg))dMb854^2Q ګdO96یEjRLfEWۗ^Nh..s)eeWhiÏe4pdjȪIƗ,cj:Jwu\^"X>EBFir#c[Լ)PqlOQZLxV6:@UB?ZVBT%C]t Sd.zOĞt@QǗVwRzqw/z3нvIy ؏䞝goSc"_(GQ)ER~Pc8۪{yl+}Y^H(Ѽ(~pLFh]'e4|_/ZD&-.A CJds TOܓeBo(L&d=5O,Ƿo)xJG5z?_5$-VC 0o{qe_W*OkAr]l`ꙉŹ8KKaiz76e+4y ({RŔ\Pʼ\O”S6DPQo}$!X-[g!D\OFv4L(7@IA,Fi$DS닊}79FV#bwFI5__FԐSЖ¶?}?+Ȝ_&!<4xb =F;C'Us'! 21йmcX}ER~38S\m_*cĽ,}L-Hkf] Vz8N-@&3G@}lU; y uߎg>{ո2{OTs؃qu +4vizZXI0y=D,fR( ymZOYhI0 SMxXGaɆ.Қwj=ELy}`=faUU/&܄jnNpu[ m>Be=TJ|,a7hC ߩy3>Z[5/;;st"1Rҭ +|Q-LDĩ=׀b}X'_e iе3pD@mrkp87M[4ъURz%oɂ;KP64 lVB#Qһ12Y+;_ m A*d)'%X%F'd>W<:V3q:hg1mz ᏂE܏|¯ϳMn-g-hOvanp>]WyStS97[e> ̈́N ^q9<1ؠMP܊r C$->ۉӹro@].paz{ RrT6"C10YG5=eo[Mǹb8ǹ|qᚶ!!iF^wI^,bj4q @2Uuf(}4_RV34} n= [dRW<ڸH; j/ yߍjIobl C_Cr>iP ~(M,#gxN 䇎KON܎p0;pK$wW?m l{6 DůpcU9C&툰U>̹#7rUȱES\3OD^6F~L+t"~=E"8#gm% }UyBe,OW'䡰׎zɛdKmA!C? |baBőGC*!Y9_jC)Hr;k@ Uц#C]<='{KF}"=ƓHB(E+ZI4P,.kcmysNyut ӹ|e5_/#.jލ0#kt3Bq[c3!R>*4jMDAypp*ҌNPz_uATv:"tnah/4$+0aKAt_Ff Xw>HEY H۩ (o&ö;e0*ftJ尰2a% qT+P'VdRT "Z'{gKkXY~ U]w(;StnJ6|&9emߡq3{4oMyɪkc]_*D5Ӭ qRP jVKV9(Lͅ[Wi 2oMщ*Wrޅ痪pUS)얔A{=AG,~Lq ϴh1h(i H!7eUfmMqʯi#5,gLze~:.>j;!έ_zgFOc[  @C-&Plkmo=(9 gO=Y۬|auĉ|nt&d^{/#T4~H*=s<[ q$Yod.U0☡JoIc5UDOtmI h\S4[~sV+3ފ54.Er*?z2 3FD& fdGf iwn{/z `,LgQƧUO9!RSg Fˣxw+U~aYn'ު3 ~m,ԝ LiU6}FPEz6!w1Aᯊ8нJFi@61m=wo-sNc3 !cGL UЯ>_|7օrU'\9H/tjH~3m0̗a| ܤPar3㤵BUrn2F-S͝ov? t6n@.&D_TPIiC+6K錼 ?3ء`~Jm|r{ i̭ vGNyJ' %rStIƉ~&|2KGți{<įFPn3Ŗ*78݉h" #'h16p٭h= ѼKte5bi@[[sui)YΘﮘ!nY$"ijG(u 6K;caT(ģ/ 1)$&39@DlŖ|L4k"TsImD$} ˖]V  2 ȭlB'9s:OxAF0H$7Bua+1C x⵩6NO"RqTwRYgH}-C',u-M1c! $j}K}_nѻhȔ ZT8s9fOipvύCpɟy$d/yi8:}AlߊhFnSEPöެ1\J5@=01w|nyZS)K;AZ_@h FAmkD`Y#P8AsñRbwY3abGԏ3^ЄS@Ue>/smtA #! .27{~Ժ$Zc#,\K ĹQ@'cp>*ci6"ܺ|_<`:j]"ބ-Q9{Dgf@8p9LME{Y\?$CJK^׺2ooф^#5{S4 (Bk U:Yńiľ0mNi}햤A<%Jv j(& vJRes\^k ͆%EjQÖK (Kl]Ӆ8%F ӃP|VT${v֋OLleN^lS_Mgȏ#y3;#xt$TpI8RlʟX.2})5G|s='?70q -8wjb{p;Ir 1zWoϷ/Y<>,~:F4\ [O5:ъ̤gOG% \{Qu,hԕ <-ҍ| ~m_ ȪEZ#%'L $iKWht-fOĮMp̐%\ڕAvJ`-.j0uwYT'S : `d&V`+S ๵ݲ ގ#= 7$4*3"In5i-Q.3$N*&qJot$,"6fhVANW٠Ay/% sewg|hhs(' 8ˁDOj>qnq 'ْzؚ4u؟`ԔT]X(bM$ c܍}bnܙGgSWU)) ! Ҥ}U/zѱ`C. ZՏŽMtjV{7EQT X*[H0Q0dTLAD3dܼ[M zIJKՌ46}lv99(ܓ~ qcң ky䏍R@9du e_1X' J_&Y.\Wlq!?xRGӠI)DbV^ZUΎ@; RAQggL)Q܏,8D%P^y6徢/0LKxOOM,@f=+(~Lq7l(Ö(6Q=fPK>2c!?Ҏ"p_+tiZPёc$ bz4 lc 6k  '씜ɣcs]B%A8liX[K+uݬ۹*ARdOY+p_ے[,c?EKlR%wec)zq]&s\T"B#w0-Q2`@5qE V30͔Ъ2o"Y\q(}PD?X _C<Q&vpKt0 oWwwZbyn7$|_#xϫqh$#킜˷gzym_eU |K慮u{WYpq,=y \ riv"jl#ؐLj#~۠8k;z ƱOLd mHH^e %tCH`Lb~”;Ϙg=٥-\ۚiyNQH靡>G K,t_]Zv–@a7zߋSK!lf#:=v,,rq,# b;#[>z|-5u Th|Xz^< qAxfNd'G0V:_uZM&sSVO0&N ȝC1 ~T˜ 0h IK{ M uZ6)=mC켓C$3q٦n6J=6 kC[$<<#0=DQ Ua4 _(">_qWbsUD..}tiHzľ Ƥ#T̎{]{ļYal8@b =NK`CC#B@~QdzGE^ k߿AqZ$.00 5d@8e@C5X45<ϱpD4,G->M?WuDs {eG- 8fۚƐ!jMrņڵ6!G@|gGndH`"U;R-~C;f9cU}l[ώ围~_WM4Q$pbu&E:B[/{xy4 qW>V l˕;TwQV ^e*1:3<y]=[AAtaU?qe@N> 7`̩8|Ղx!nd Umx"`vb1J}e 8OxڼĠ8_-^Cֽ9.7[hlkaݹگ_3gTip73oK1?LK;!j䏺ʗtSBЪ|)Mr?\ 4˼TnmĹYJ㿘BZvҽ[h91Gvbxofgx{֗Wp͒_A*ǩqQsX. Mi3=Kdɠm"wrS)J|NX(drT/9(7x?j:R;B7 +quHs|+CR-Fp뮀vZ;[Oaj 1d, H<%wnk]Dc$ɥmL3E#YÙR+/[xˎGP ܢm8$,n36&ukXŜf!os߽r}aW'5R^v?y|u6S fuKB)D:bg+{ C>V U!Vѧ\# _L(Q/Qeqt׬$a]X΁6@5}(ˣ6 CC>(Y"R\Ev6~dpc*\i Ҩ1hDWJcYz7}A ̼V%:H K8BU9$xӅ \k> f4Ԉ?+ѭ$~4 ̚6Õsڞf\Jڸ3i:}g[[tđZKY3HN}OEGm6C_[; }= p>?䫬`FW}Z=r= (Fr`Mhyy34+g ~ ߒgJBrPZ$t/<(vJA]JUљe?1j)t>4ЉƩ9~Dwi)K l75d:*N5So{)'b}t~)m6 *t&`*xw`05a\я:(6'si2gH/RAa{%j4Hl.(bq83k BJ{A?!قٷV^nǴ }( ܆q7쏓6a$Q=٨*Pb#0i#$䙇{>(k?y̪[/C5l~uxZ8<صy Er녗$揬-߸DfuOSEiE0"(LHhW}[M% =@FL\8SbbFWlWpCkѵ8QeNĒanA52K=Q60)|Mux<grAcgzE_kwV'ěVR9R>Sε5$T|B#d1 E?-^!)} W[ !&zf}?!|ɢZgVɡC6/;r2=s*]ݬ;DWq TE*JڬN~`ly"(Sm0zax{G '{AB!Y4?8׀WqHy.JF^M$g~{_Y2+[#àJ.bZ qե=mKy??^s4ey.2 \gfʽ'`QQh33*pWtO?Xcx+>#4') whK$jQKNɯ)um/^moHG\`4*2p"'\9oнYf-aBGL2f !hK@H?CD}c}Ye+0Gs^‹.?lNpZ}:SbCHK@d^<.lw:oʼH==򷄁tY|> s1#ӻ6r-vĚcR8]k} M.'q1B}}AP#i;l)Y3=߰85]^j lx1}c8y2̇pY ~'%o\u7f`CYtP+Dy'C6#eD7d4ɟxޔ,Z{щL^r4=z\.`qCH0ƲnvAKeHBդOec3osJmE=J-[ѰFX%w<~|51U[G) 7=(PRnYP*MO-P!7l6]΃0-7my.i5Zwq]il1F]"!JW) ";d N7%%z#C j{T?kk_SVx>ԁT"`wa V2Э‰ NGHGbq~@ˆGVXm$ΏQnPa1+ U]ɛ :o Xx- p|鞖9 ZP;#=^5R6Xu>䡡SsO'߼ ߫B*pFJk**Kf S~9 V?r4q~6h [Y>57eVҀSB+O8r+_Y"n!E|ku?=Qm [ʘ@r1!-kru$am ),1y2FIQk>)D㵦%ğz]J^4="MK2bky~FtD)gUh Y-m"ų~0S#b򥲖ӱ-uZXi~6ܓՊfbKu(\c [cwqd!&>O]9nsdAJ IJ'7ީ/Jt= io%buqg;7XWgz3䢭;}NvWfz\Xhໆ{O3 hK&$G:s rVQbc8%U.g9F= '|[\cVpgI]uqZnhmȱ FLB Fnlm@8ȧ8\=KvNȒӈJh%u7(&Y'ry'b!+473iԒoBнjһ3zVW`HuoƼY S4+TB)K)'wEZA\M+NiC0y|+b/h#ВQaC9Ol(@yd/Zom@9_҂CǼK0CsxU*n~N)9Gé7z &^:C,"` G=]5sq-D?Ƚ붋-7Ig ǠǯBK"5@Żz&#{t?~sI=6c zzsKҴ qi}47xzݶ | 6%=di0c1}03Dn4 f\'g ?eXАBy`54NOJ kI8FХ4Jo6O0d˅χI! u-: {— R! %p+j=ZT.=q&\OH &KddV(v\RLڀ}[q%AK3]g{=Sw -~~g3mπM[oi \>/D3Ĉ-"&Dbא0Al&˶W陃&ֺ4 ލq7&n#x,U]2f CЖ`/j@D!޸<~\%a;_e5 "HȰoBE#}3p"4#Un# Sq0eƲ۠jo%6[6CW!XFǣ6$2Dmv pS:eѯ*/b$Ͷ&TaR=?ɮ< u:7Ov2E K"{2M`]3иIa)*XBx`}u G bcgYWK; E*CaUФ[?sG}}# kӾ\2y=֨>8w6Ym @s56"R*S8e>6k?PY_C#߻\aGL[J'c7gZ1(Rs(UDUl;fK&:l)b$}~vΘ]ox1Y Ǖ2iP!)rGĈ?EJ\jmee_9maDϔހ3~Y6,r6 jٮQ=!R+c:ď )(|Fm)bƑc̢djG`=."=8u Q7џXY\ Q䀂ht:E$ɏdS;\ YlG 5 Ty0a1ň:oK{rޠb߃kRL=fZbnS[:鳐?˕{Ԁbv@jIJL]}ːR7o\ht`~_OCG3bCثK DkmP6?3x;tÓwۭt2XrIiX6_']<^Gu9Ĵ@e`  S)TC8}f<4IJ6c^1xWL3hQeAZ|bT za֝i);׽kaX8YF' 禱4Gu0s4vWQpbH8a$ӊ%Ta7ܷvm>TBCt)PEL-y>4R{ZH=AGR(F8!5Dc8ֲ/-ݾuf+d2;vjblq'UwwڇэXo7k$<`Md {[qEUcuϛXQH]wP3g M)JdKjhhd̮ŗgMP,IoUg,v]hagl_Ou?cjFxaSor+h(<[B$};blߒeͪ"Tv&*3&²RF9ԣSb3C@ga秬A`3oZHQIҸg(B y'}1CE3Ņ7y]21_^^N~Bτ7QXhT z P=sΆ/E'b \+X׃Du T8zwWdb}EC^Pi-տlhPu,RE"q ɯ̔f nв& A1: 旈7``TPaڐAN;N_BñhȘw,I`Fӡ[\;MAx>N/ugP-pR`9HXt 7|wcq M̓d =Xzr.C+f}]qasކհy _2,Ș/fFtv76{03*WgnJ[B^(b|X^|_2yoS}ǃӏA|dxG$O7H+JpC,I$f/tڢP&CSj 1~J)NϻNTX'W2Scɀ+EO}hk W#TU͞3=)KqǺ(/qQ- uƺMtob}op0Ji~RG7V&U+]qFlcғ" ԯmd>3_輂 .*֓Se3iQ|5ٮ}ަՆMÒ#ȕua15CRM fc $SG@,`fVHv@W'P=l dnÕyS8^o ÀkކvRo6O؏\2w[Ea2fR30]Zk)  YPJJS0 v*ۘP[@@ulxNs]*1p[[;J,kW6f9djf7 ܜ_}8Hѫ;߱Rd[]sRAڧ9XN0N]vW.l8QQ(7c&X] }1L@2"V(Tأr-)F`>׆%1S._U'~ՁFϥޤ1_zTH[Ow;S46ˉ͌4sG5?掺-;zQmdIߝ!D`ɴ9@op6[lƿj-mcIbNwࣂv3=is:x<8  4HFe-OT'0/΀} Ev G ُKe!i.آ 8a=|PJI/.]]5icPЬ>:R,֪=K#HX1!' @É7Kk Rp2 J#ΌfKɬafZsH'#'iӶ Xy n~/5B"Tɑ|eºGLaLDBmQ#Rv1L0%.dZx;;ҌKkZZeKvA.s =aT&~eF\É͢%g]Esy UuPYVb>uplǖ~ɚ:7Smู8`zgm }ixQFa FU{QZc]PNXm(1)Hxb{q DdxlA /Ri]&!n^4HIbrE\e |@8_B $'vXMOLNTD D[JDXD ;&$#L;fs22,pe `,)iDhֈ."Py`A uJNrK5Pj'/wSϢgA) gGuG=&J_ 5{vr DŽ1b}OEegAG±&=^8hqwSфr8wM)br 'W@F/+ltZ ܎8]}ߓVbH[hS'֗ҰZLLdM\8ĵ,gq)`(Ehs70,gXN~zLH+QV%׼cڅYB,u*EF[LϖOXeஔ.Aڊ wV/B HֱGҷ s `'JjRB 5^mpoi\E^s^oy5 $-hǾmvf;@Rb/M7(.cE)[4~B wF]$5^\CXןJrv m,?g Gk@/@q7SeDoXbA3D'=a)MhnT/hasZ?ߕVvkӃ}z*~Gɮ@.SKB%ED -#\ݢnQ}L;uvg.M%H k9(-|Ttt* U =2c<[ŻP=Zco'U˹^ylR1C%=P,.& rEk)2sWu \1<2N 5Q;=mB,"5_2h{/6}`.81I^şVrj\"3\ALw"Iݐw>~):l=qK}9\4Q]PR㲐FvRL)tBg.Nf^=k55@&25L0\5!6j.;F3yg?l('-f$P)f-ĵN_rܖ }">5 UspUAvjŃ[>uxi(MY øMe*F GwO3M*0<%j16b0*M@Q:<׽ON =S)EcBy1E=,z f8n_ `ǜ> 9/19(>&d.8Z|56ȇpG.8{2";\pm$O`3xF>A{Sćbym8៊9q"Sܿ| Pr ""A@ov% cرc۶m۶ݱm۶¹5uYUMi+JŰ=o[~;t~:o^vqdH Ë/=in`@kdlְ;!9闗Rx1!FRBb+i=(ՎVtNI7{`̟1L ̑&5KKUey knB4y6[0νX~̐?1Gfe,y;&gwCFJrICJ!]+q(GYCi`IdcTa~?R2U'Oz5dT!o|w`2\ }0;A_yռ?ɺHo0(PeK#KJgfqFPN(M ޺aUЀe:չZ-fF(>/r FK$9+nai*€ A(|{MH-1 peiK)odo=BG Fulg~87$sþ3qLU1Go(Qskӽzzl2j)ӆ!2`zmAk,fbںz/tbvE > SfÌ[o<QU/c+M.Kk*n48zw8l=iouQ<_ Mt ;))p½O{FǸv08o^|l@^~qsoA̾$h3:hA+p|%&V9dj31r&n!\';79G("ժ-Y8eF̀uXCR}PͻqC8榔HkRUTק&L2I+cqyֽg(Fi8e%WC{VmE)]M:Ic _0wTċ~ќ#3ɑזv WZI{FhC7, )dG1ECʰZs!i QƋy2}uR!bfD*k#wXѹXrUia8Q-8'>%NJ}âq6BĮ?6 'N̬3[y<<)Ȑ//a}gWڑĨ|Uv6ۺF,r~u8.o}{D>Uґi42U5dTBX_ƅ׷ikEGX -Zo~kO\}.A ctfNѮ9@ا*$$je&FVWOH["v4s+1(5feshćły$;գg~0A.Ǜ:t=1 7`;2UDM6І:C?PG'+[!}r=Vmp{xXhS47\pC2$XN= PvB@ zf_R?:QG(_ɠVTHlJ8Q}*,_cBB#]*d 7?;+f#pa=D8H Ixw2:#hBMl M3Tj Uax{rBƮ ^E|Vأ=&3k*ѶJKbV:^-'T*@!/ û$Ԍy=콍:tZVf[_ȉuúLqN^N:?r|T{F8##eN!7 ^~{$QEZ8YBg B_K:)鰹-q*u(dNGFb2nh<4ޑaNΥi'y|ޅ/ݾAKom&OlglEUDB2#ڮ<ȓ`ykq5‡N*v>\)Vmy翮2_y<'1x\h35wAB/R)~ޭw)o8aq@sv[7x f.8X\a3ll;eXɸl.~|yh?c˗%"M]"]d迅%R1Pܐ {̊P 5ٶ-RO=J!ʑa]z/iH(%eM< 9ս#2UKÉEZDp S9fDA hE>SKUl\no_-zs0o?Z03I*ʍ _cTJuϩ5RsU^25 'bfFdzE>7' .P43;ddSW!|䳝a uVLsn+mL%ܑ Ln$RxܗvSVG]Ü+.sHyArc]x)hX}Ϊtڹݱ"ӽGsht'Z\nR—2AUߌ2VF:aѕ7'0bӴeP)/7q7sLߦ|zw' IP~{4^Cujm!&C4;X/$r LE @&VҰTƫZil1꼠TIY{^Uֶ1+'$5pL(En>?B0gZJ5CMX<6**.Lnj :j= 1e@On]/{WNnyABp蟲4udk > kf7mT ])p ܵuuF3q7iH7B^0! |tsȎQ _mc'O ?{NrWWp@8ə Ks8hکA$ 5ͭD&9n XɛdP$b#dHV28[OÏ0AbhUq|Iun1"1Rn~ ȼH9X /_ނwc`0A9-$'7J%M-n7U! _fpkցIpj Xߦfy-nR+@vޠjGқFXJxmd%dwP~ZL8Ӗ+ٓClѳͲjXrݙҭ2tSJlY䲪'>dNJV|$ w1O寳ؐT 1ؚO#01" q/Y0΀-4t.xaĥŕlkU)n…Ks܈H12EI_,\,0HW>͹P\}ᶆ| lOD>683Ƞ+C:3&exW3Z|ju񳱹\L JBja/%? #sԽ{1r?:"rb'9QqyNR1X+dskkcvvt!vTN1%:VB"j*ˮU` "?kOoBBr (.JCƀA?[7e]B˰_>;"ťTz۴FOw։m-{T"YI00RQ\ֻTo*8\f.N0}:Sq eIDg0}Op4 1/i(ECQ: ANb|110y0;U"'?Zo ,q :߿ܵضg^زZݰ' y%y2Md%_?H2'_d?7*-&̭Kǟ_I)JoA[`Z쐜js|^ltw^5 L6< SkH3|+˛_at*dCƊ)|bå &&FLI-0,_j<պui\yS7 ҵ2jV [ꍎEF7Zt#IԼ4KN!ePKdsGƵN0@ΑD):-UZCe/g4ugJ_P/ *5 :62ѕl,TZ{)6byLțfL*6ӥ='͖.Owx o/%iLd+Qd.H0=-LcDdL? Tq0|p8o4;9 3;@M+7- _l\5nzLJF"nk}T? ʞp,VU1zcѣR53\WKHq[_Y=p<>NB[+;Xw8$￯vrz3ғ< &JMw&޻%5Ͻ&(x6Ut9l7^䏻KU:aBPPDʘm0k|tS`l.BA /lVA AIYyg^hΝb;DxiR} k ]zZc99m^ϲe7}]CbrÉ^ê~k1KbmrW]Qܩ 675b8^(OOn KYy'.MMS"g8aY=DA~ */O2Mw6݆;0A?16yqCN\@1`RzC;RM\mGZ%g SۗrZƝ\ΫNh×؟hEx޿ Tu{Hy=0U wQ*nt]4%Ғa65=B.NDBvX j;4I?IW$^]O6D#, 9 ?cX?PIXGM:S"}AIW=WyUڵ˽$Oo_CWJeŰDKOcForfƒtߖ|aϘ$g'F#S1[vEF:Մ>YbmI'(ȯ=[]{5h\洈sƐ;iem.tnyG`jEOMV죛0p^PA񏕱W&bp?{&ݷq\<i[a0FN_L/xԶ!NQ?irRV}&WZvwVœ騾~ Cuҭ\7{1zݔšk<0m+"l?4\ZyɯK}(kQ5fTH︽y5yR! =G끏Ew9Um8|qnJ@mQYsƜ~ZtJnXv<}k*z:#UA6bj= q?"k s9lO3i4Bt?TDv4?1^Xm󡩽<$Lrn\uf: gH<3]ߋ5R6Dj)}eoxrBeR!#X[4(2.Y| viA~_לo!Q>n쟮o h%HVoQY+&~\eR!Hjt.gwkؔ᧪!-/pIC.IzRN0t_]8 p #Pe!doҏAVWyn~N#u0 J&nXG5 J`6M{;6 KK+M5v^պWܞ1)Wq'dl'3brwN^U:4UAS|zGFUuz݊* QؗRb.psE!6J]Ŵd`i~Bk3ŰF1Qy*lFiB11tFu677?&y*~_w9Gyq^BzPRΨ1D:p@K^~V2M]=7aP4ɣ Xh54Bj`ByhEK)DB/GngP..;f@%c  4ͻkI,”kiyO9cnAH">_2{9Bpdd8k ή܅Sc9AWe k=ZYmCj2R֛f}ϝAN-m y#=ɪ1HֈϢJ것8PWtZi05VHc+9`kP!$wO؍?n)[k! V]6pEQnbi~/wiӄ+wO;n/B=Vݽ =JrID0W/IB].&lT;,gѻՐf87&L'xMf?&U3J^b?Zi-awVyNѠhԗ—4f5Sg 4;72g_5PNq_!{[P=.$"WlP5 #g(Y<"O!B D8-kEF2%K5s694FJ [AkG7Z"W}օ: gi"yܩ#* A~A,k V`ry#1ɸ[=(Pj3J%GT6Z -dV8v YV> ~r)#R*Fec5jRUf,^`Ո>bO)ץt3O.$>F]]eY6j#{iTFu:jZv&:3RM<Իx1cFnȹSʰN}Tyֶ#ݎ.fK 9hO,5K-a6 |8QPRjd㲮p-N˜\hG{mKNE'NU Bܥ9Yct/OJx8oe) MoBj 0ŚLi0I0fl3P ?ͬI<'vkDKY k 3i:Weѫ_܈;8fts]*dD2.;5LFhrbp#*7gR(8bB1*ͧRq^ )~X85YDx^gbf% *>Q+2 0!LD=5 V/:q] /A*)rw1z ϣlN# T~SLVqO3qW=1I% wi *;ƦA(V|sM^P#w+Yc`䩀Zѣ!:x$k׋%}T|PQrם؊&Z/f(Lg"Lo_^ _D)k{ 2ce>K1!L_~w8`.9RyMpoxts܇Mh(*I,Y#j@O=[;e' d8A`T 2Ja+V-C>>_-Y%wrL2<u~fr1(V?,ՒQHr#x$2Y_+^\]$:#f&)<"Htd{:\ \;rkVEc{]|BEoeG-O &˱;fқǟϺqs}FAk[ %%^zj63hr9]!w 3,l݄W?@UV:ܪ#+* 'y9e6(֮uB+LJ'l-u E*_Dxo7qWrL쏣$Bո -IVb,t[*oŢ rJzyZ^wJ4e"ՌG/m?J? '­R"?Sx틞*T7V=RfU\t/D@/GVWEglT o1'̸ ~p:$ Z[>R""yP*>Q:;6cSJ.\-S?l_|r^M}%vB!ZhgFӅ<;h $^tU | jj_8F۞f!wQ#$v% )f62k?"qsGE].O]jFc$]9Cҋ#0tcw˜Ɂ?{ KO&d휋ٲ`+5X0HGPA7?5o-H*U]p[% ϟOȧQ 3&{g r0x";Cը}jkfrj;,㌌~>XD\̳݉=O HVaz:U!|K=kZ]/Y릳SJW] S;AREH(5b LNW1U ]?!9 #mZW#A|aѸ7lf^.2=DRS$ :-foT|^ў=O|@8 y(øwvS4]_; l`nlS, &T*#Zְ$MAyZO+ZvhE3q>ʓ9%Mo,,Ƽ1ޭl1 ؞$R J.}kT Ru'JQj!Ng 53J8`\`0Ĝ$UpzE%Nw`4XE4pE:LG9q חJՁ 2DNգ 7J [yտjÅer+ #5f Z5R, ,z3-^V7)Ywc:zҜUD1WC|Փ<5aE~qW?i/mFu:nAl]̅SX9y=ʽ&Oi/"kR_&M(%zD#D]F㯸?70ԟĄTICy"(h3HLêl"rbwѼ=OW<5`N&mvq;JBPG!"1s JNzN~+2QstU],lr[:qP{e&;S - ?Xի[;*mY忩fzF~h&+ߛۑ /X6H8x("CXb` 5eF> endobj 13 0 obj <> stream x]n8ཟBvQXO HYi@#WGt>R4uwϷ?oytnW/^}cZNy:Շo|v/yUjNi%]O| _sՖ㆔_cs^mzWmasM]ǧôڶcsS1疹EYY٘ w#rbNsmܳGn@?@?@?@?~_~_~_~_~_~_~_~_W~_W~_W~_W~_W~_W~_W~_W~_ᷚs~7~7~7~R~7~7~7~9w~w~w~w~w~w~w~tF8#Hg3ٶ l+ڲr Y,h6;сDt8. Pi|Fv +KdDTguNm-^F ̸>-AāNą,ua`ʼnALt&8eM<#art˄F{ǁN tޮLvqpvvΙK2=n=azf1OOg$@;<) bwW<}ynS~y.XG) 3,ud@ژ4͛rPvc1Kzp endstream endobj 14 0 obj <> endobj 15 0 obj <> endobj 16 0 obj <> stream x]n E|t&i$R^Cu.R 0v[ ̐Kmt޼ i<%zmϩ2,rdLc6- DWGe[x ٫Wĸ;@)Ku{dZ*u'Mh1[V/L`EU㋥%q;xOj55k'|Py|bMj7g T޽+ijm_uɅu'\ endstream endobj 17 0 obj <> endobj 18 0 obj <> stream xst$o5v:m۶ӱmNlN&L4I&mߣ[VW]{k9vU7)Phmof hg rQP[ G tqvt:1_@o;@`qrXх`h G!bmi S 3q@;G'{@/lggmvr4$=b4Q_p)H$],1 3+͉/ejtcI!`.hO7pplvޛvHݝ4݁2Uf tp020?Tvl`0s[[|]M<7wI `nm0ZZ;K/ ϵ@>sfƛ;:y\_C-*e`b01sXy<\<ۀ@MAI8X8A:_<3L m 7*H}fY{`%ҿ:t;N_?]&vU- `q3;ݿ0kWIk/ sP&խlN%@oM\6swq{{maG hg"">&bf'2.A1el$ ]֕BKR#]Ax{0hA.]%QN}]'WG_e@k)Ff0@^!sAds֥3:쌬- gR{zXJB6.-7YRHr|!f!Uk!_>Ar|'Y 8-ȆEN+H=k8'tlx4R:](}!&Jf*5҈0cxa D|1KewQOL܈ 01)zcpW1EaQc:9_XBK;XUߑՓw b9C'Xu-`ܲ"2|VRGL YTNڦ5|edE:ՔqKPHU\. ]?V˟֓,Ph#}$OٱrjW9>'̜ߍ&I^`KF _(4S/8$E7>I>n.'[Ex_GQg 4݃#P7`2'L&)iox-$-˼Ү#\Q x k[LڔW[('joaeӊfHu7H9&bV 5KZ0+f-Uq lӾ.hչiն\Nvyr(5luLWݲ|lACRqGHa/TL"#/L aQZpbXK@\ʁ /4U!M4)q:\hZ] x2%$nǵ UQClcR5M: o`0m3%>;00αsPTt:e^. ~`}:n943Fn[8X3w7Ք450ƀ1LȆ*m|X*"~ik'WRQ *ݙ>bCULX̻M'cWfbݽr8@W@Mh'e<a37VKhYS z|p щnh\2K_ D޹28<f =滖302VDgfEJn* Tk?~ k_2oXiJ7toZ&cj5qy.jM>segpYkYT|0\h a:l1u?= ^BY@1"(YXF3d5!  muVuf46j򋬪R JJkAN:G(QA,u~*Uh嵝~d{v b3P1D >TINtZGڡ$(ɸ8yBa/J D1Ts>L+@]0WwԆNfۢ|gf^0Olqj.Hf Pfe6^-uVL<=NـbR^ ~D/oZ-C}Jg'eÖ☖{!ND9ԘI9x7B4i/st\!iî\GrVJq$෴aӧV;Ei1gI"pw~hz<{㥮W,bRJu1H{HkSx*"~|##Y)HQ HQX'`;(/N/ؐm%Ϭ"}+krGJcx{ /me/[ҭ@ SY'g_d$'x򼫝`VB._Fd%LA58k&^)_LGw%A;;d"m }|dA wPMԌb-VͻD1=W%Yl y) ؾ?+X )EW[Uz33bBuzY^M<)HP3^1Hυ;, r˴TS!7q}&'=~‘ {M}}b67 e{9#-0."bqx*-!0w xvd֯_#&\2H&xPCv3 C 2~ y6d2U Xzc&WnaN.XD-/q+; N2M㑟k=#8?9mg]iBJ5;Dɗ]:SN t=#!&ce{C&xj slNnTr ݸ~6kMII ,^iQ3>EQ(9fg>Pw^jсhDxeC˽*w+Wq/Fw0G8$wDSmCC <[8ֶXGg@E)bq=#*>Yؐh;A3W[X*,XR n:ؙ{< Tj>[S?9&8_rJXudDo&\F&a_ k/NC$% Q\97U2YP̋L87 %Ĭ3u 7Ҿ)?xꔐ܉i]F2Lmlf0q ~5dʬN1ɥu@ViԮ(cix 78*5ꔄҎW@ao%&7^@i֍\leЗZ 9Q@\m(`h|q,jA8ł{'>Yhs;Ѽ"-(>E2>&ZOK?iEG/d'v״^ȁm>(fO;q>tQU *IqsBwufS߾Mfy>2#gAk}=|g:Ư~C/'rw,kFAv3qɲȩyHu 1=lIHBfS-οQ\a͇@bk/ vpnguplqQy]= aϜ¿, um.ߖ:T,ceο" "T h[J άV[ Qh(Tv{AZk# F,6^#XNk:z=MiE.">crk]r`'ۨu.1fewnGm#%VxBm"1h6|kMG e4CR7XGGpdY$TXATfvWq3{pɺ1:z6/i-'Hn8{&`s"V\yH'"=&ˌ̖<l V#x'\٬E Hθd ̛֜o# NÙ..Pm|}qYܧ%2μ27B'tp4,&Mvi)oe Aw>M6\f/"֑e!o4*ES(1qy0JtOLbjD3#V}0^,XðsbJe Irј~.bٙp 䱻 c B( kUof1"Y+6 ,WT3G }<9ձdof% 7W(mR J#Rnmȶ:'enݗGbo[l`8E%G0dY'* ꬃd Sp1$t-L\ےKHf|OugP>+T$𒉧6Oօt*yל; :+7[|K9 `h܎S8:BCj-S Ͼ¯ ϊub@ X{@$+T:Xkh%ް弜.Ū<م1.R:QGc^ug,qktb7frao&83.܎a=/}N8vOV^6yofl?(@b Q.Hg&w'A6X;L{ v<;qľQ9&%C& iB bSp~<7@%{+S),SMUyw6R:m_Oۯyip"-틿7Yu\M|s-ֶ)p_h" #"%5: (Xy8ե[@uxȚzϮ+1Ј+U_|;mnMڍ)4L{\g9aεw_#kE"zs~46hH_V9MnRJe3U&U LJٹJvF!vSjfْ;Ȓ˟Fh-I]p5ő@Z7=DV4|̦B~D6uˉ7A`<@T:[~bYN%K=Ie̦?ӡ,Ǭ藎my8uv=drge$$GA:a/n!5&=^yacee .WoT }^4`d972Do01 [Dw0֍k Tpz%G~[c=Vqnt\YyJ(TFh㮳~q_B m5(g i-;Am)k }i{b"Xw5[E @W_wTrVV$CkaPu諮ݒEQeHFH*<5w)vy ='^6fJzIIAPɨ4Yvb A6 n^5dtNt5wƨ6iG8a}Sw=?4K~QBSxtBHE4f!z<Ʈ'76r2mU# YdG%gd ?r=y9d0t]NʅϙF*9Oq=JzcqH\8""MwrVü$EƼ{k1'(2Xsϱ8U/WE09clZm ?xkQ ЈhP/LKd5{όͶ+"-*h.˩Aů?U1m 8An!zcd[0^X!W>Ҩb"I)׸hĻX"G*:424!+Yf35D]|@ZЬmjܴOާH߿2 n+^AXQZD п>"x)}_!w;p<SPk3v`zkИK ݥBJn~anAV5Le{-M]ioՕ:Q!#ȡ99~}r^y _UZtlR[YsU=$a3u#y6ig)=Z:>P!AGZkParaK;ჼ^Yn)D2y6TʲF| 1vPPϞ I Tg9C=/ϖ\i.SSJ؇/~D&gy_FB`dnIyz~ 9k?T]9BHX2@xܪàQ+ y憣(:n&t &a&o ?Rd&Co g:NΚ9șs/;]e"l7BVQ}WLEרWQ(zQlj(X.xre"ݽ}өA=Gr*bka+%I(!t8dX4w\FvdJT2R4{C#[GYOT1iFظ?-{6Fkma}H_#ڑ0wNq=(G/ro˜f~=} ۚwxķEV,.j"ػ$K;V神S1a[Vf6('r\@lhcc{Y2dA1ћ I=bp=iGа3;U0b1`Y^Rs_b?iێ{NRLuv٤uhuZ\H ʛil{Tcp礆|VaYcy_t.S%q~ 4i==+ɓ5  lهOurT XG^Chj5Zdp4l5v8)cJg#ɮ?>UP|7a(˞ 3jFDMhGs  ePY ?QGOzSЁ\xiC9K`RQpwM$k)ϹvTIK4N~ߑYjEzb&K -nSW@Ԥ ]@ȥѻUʽf^"czBH҃ pbP{ ֭FәRNvhwה3ҳ +R6&#*@yH$Wn$\Ѹs=){ArRE/RqB/jc0՞Arq:Ė!"۝nb>bŻWrEmvtw!bS06?HU1IM-E!r7 EnlN*qW|۫% 0 %ɓRKZ)ϢEnFL<$Ɉ]'U ői?~7uD.+ E+w+ epPAjh`~,Aba0qmv[ a-/vѠw}G'.>_V'MJ)'S]>-m9A_C¬ 35c}kMԮ粢۞5@E 㯬lL8Yl"c fA?+lǀ+,g1q3^.>x1/B:< (슅 XPMh"KJyz2ðe#v{8\]h,$2Yrl3SN829vu=;]GCm5Rr}U$B|_-9TF ?#oFqueb28Y˺S\fnDBc^[x콲{TzZXwmVHb-)U"&-EtK\j͖ ռUW B Yx/37`/tD-RMQ-0hfCŽ]Z}Vdwzb)pˢb 9zh*!ʾ3cǎxFt`."mok$fKk,ȶE'VT`Bjh cb/2։Hkمߔ8@:_HjkVECQ 1 $kzC7L?dXK| D*U#WEƎkmC.+?!ZFlU2qF'lnD;~R8F׆1)ҭOS )A'ȶ:WYGkWa.UY'H*&s3\ GlKel;T<3x"u$Y"U^L!2 JGQ Y}+h*~Lzz Bt5ae?&ȱ|C˹hR搡ĥryFivT)ڃK+\DO}CKX+Sp޲BL b=h\>nL[uu}86̽8%-3!bDE7gr#gyQn÷d2I$?WJ뀓dY0E9JL~$j z]B8eAGH=llSG7(lEDGW0i$fFLB:٘7aܯY+HG|]G6%φ"͏ud4Ax2ٻH+b@LD0Fw.i-pf|sQaTn+|U2l5l,6h(> VR6P"A;$ϏT4w2Mr-N^  3(i$ӧ*c(-ň{SEe ^+:oqӄ;bҟEJtƣ-SW)0\b‘Gēw/t’ PXH3<'~E0GbhHOlgNGc")fY8Bo`'X霔O!rXxm#Y\1!G)];0o<0Ɓl,pSSQ0+0Wr4p*B18WnJAfbBϏ_nb73\r/R锪:l7,h gQm햔P>gY$uo]RVK ZoHR$blRyz%O"pN{tY_!|w[bwp;+ArQvN(\^ B~iIWCD;pbQk$G2˒g}w럜B,1{|5s6gHkFuA0RL8tK &W#:Vo}tl$ӣR`loا&1-52Z!+>E/^ "9b^ {L sA=14~vWc58X2 `ԓD?\؞y|oLO|0$:$wÁ2>NFG"I2UmQ|'=煞 3B QRSPA;]Юd=k[? ˺viUMYF ]Tzo\lN6qNo/P_sXhgd8lF93R%7#=:ZNB5|}D˨B>r,z6OSw.L*k;pfel|/Z9 OD4-],^ KLA41fXVꝟ' K]ϛ%+t3f 5a~:cȯAE&׉b\<a0c.i(IRkHVDَ. 6tx2IIoj3 LmZoz5s==%Q*Jj_hgĪE@h`\ K@n){ =Y a^{Jg5WQg/gKQu`M^Gk5bo O1 `;}IE~/#D\ڊ PijU1o@/z_S')JqJ$iauAUyD.\}oKCfJJAW8Hd SE_jG͉Ճ(Ddɢ;R_th›4Z % XD*Zl&_Niyq [Ya>Y<7S/bO`-g;'KH)>͕ʭJ2"ֈק};)qYeZxSKH1Vy%Ft!0GEY&)1*` @R;fX2ݴ%p Q?;ZؠYퟬ0u| ZmB 48웉Z>Aodpz K}E AYdSFګ1АmwHν)3)F}vkgW saGdOֵau}5v"ܽz3x 苋{Sr7pa>EqtSQL 'a-YoJ}>?r@c_2}J6Wܸwv썧>oC##P`ωjM~a>0f$6t&ܸBP:n\C,4 %U<`O>A (C]kG?BU2N'Q-4;m{  LbAW"[ƢTP`k# 'k+і~NpЀٽ?vpȄYln}Ru~lMÉǜSm{(:fi(#%I=Z$Ok i,Xнkm>2_/RTz4pG(s~F߲#"%+[đ1a_lq/|eYp N"7Dl EvlKQR2[?:l{/L8ʀO8JHP*injczuxS[ez^"ʫq xv^CJ3 ^ak};jir2XDɜt3?#K \|# Y= .^'cӻwqAc1chW(g6^Aj )rTVxҼ&cy5eq#yuuVp_ΌV#-G,@(B}%"@E}RǾJm):K%Q'4r:[jjd=,秋Mt#wHՠc/H2$ޔZ`]ׯ9#}/U%9d.ף ;jL~/{QRgb.hⰎwi˕CIL3x"ݡyV>~3JY vC~Ub4,6I [ee-,( Qn#1o޳r9N /d[01WҤJ?."N{շstt$+B){M/Y1*GPrǃ}MRz,3& Prp$Oy eăطI Bsn}οɷU(S[UAUԜ 5bG{TO 䝃qƇgm"yb߭&Q2KCv' [I[xLg@70I6B `z ] 5??I3H@c0dLldP` 4طMR0f YGҊ-xFA5,B:{~: ߓUoh\cs1'~Ur ;q j.!'SCbGbOLDT$~Ru/o,SX lh7K\&L^N~ȸ<1Pi\$`.c]v.I $,"кKES!9Q6BHd@ ]eun9v#wI`<.~,ݙaVPQrEj r/Nz< I8J;}\_jpsy`qQ'_;cۡU@^GQ Rf Qq`˼e,\!ya9>W\3b /L>B A`2E={Р[O6jqQzrT ;Tjls=Π5z3  &mo >Cߋ EiC#M].A0/3^.qCkiw y,A۽ޘ[dyZdgQ3#ġ/P#aH?j]iBC͖Cǻ ^:"LhRC7r_KSBԒlDΌ'drmS[FtRٟg~N(2Kt!-4 $qmgCbK![u:Kly9.I 75v[AHZM 0#"CB ovÍԲU3 WZYMrN$Jh/PG(Zcd=DM 7HhY&='L'ń2Vu{T~])DHe%LӢr蘈[x# 2e)-_B+6ߐG B#cwMk9qOOk4G"k-Ptl?,m㐸o ^ 1o _+a`GgaZEhJx`ÃkT-i֘gSkdz58Dc7UZxoP)d7?u 5=.JQz ŗ-T]aF3 f8sw.r,ר;pjDp4#.&eq_c?ʓHG59zRVu #g`~'##HX{Ok#`~~Wz4"- YQbPwնtXrv0ʋ0%pHB~ O֤h[ӻ Ny5dr+A(c?%no "H^&jzJ^Gh{8ǹb}T>l31:J )oF8 HDD#^ vkpю0]a.|!o01?0lwc-2kAnvg@NI IޔДgKD^Pv \PKg (Isv1Z"),k0dF̫RGxvAB vFC-J/vNUotӕR >6):Cl`ORRrӡL먬D & >^+ېlCz*S_e)dk_{3!y39^r!ih43b¯uj}Bzj^f(O9$5_tBnqs<L:e۾_#4{'!(=kLZzZ Et%K51:Vh9\|\ |v\Wg|Чʥ*H_ڷ:7+=1dWcG*y߭K!t+w'*2}k1qF`v5pu)RѸz Y: 4B?'1$鄔wmŁUO'A@9LJ~%jˋb-ݵ#~CId ?rbRb&:q옓 T/ OLlؚFHDnu648qPjfNo83f V9qP04#l}ܴ^O=KeBwI)i9BYH6 ^x,}UT"%=lA!oX5@F./V-,o&-IO?0S=GMk ijH1̩{D0&} Pclj&UC3WL}g)>ÐNNhb69+ۏluY^'ƍTH?ףi[.ǗR,oM,׍7 L"jOߠ^2<cY*ǧ(Bi޹:^dAɁs ͗S}#y>Wd#^'+_N0s?_ ڔu$8y[qMۦ_6dK=p3dC^&l;6yMuW6(ExLPp\ \[9*O؛=f,Q-엤(>Ӣ"1kgh1f]ضKb(|R {O!j%.jC4r:^Z6{D*9p]l>o-6te!, zE4>hG}GI<1b%!ɚ:q#fu_Tbg_ӥVoh:l6esakܴti<ɧcU,cHo Y|XCuZߧ8_ \Z锹@\8r A²QCA"wd. 5:SC=[SNOZUT4S/q$=ģvXtU͂ieY<ٸ9 %|+VS$kcjĺI'UkC%ϔFFCS0i :JG?aUϤn+㔏rW2*^3^\C4.*< :F2 3G!#YM?4#;}k)tuTۇ>{PlE.o`4%,s$X[~yW T̬.H;A>#PERX56yB<^\b&;6 Bؾ΀qAwo>9,s :~S^`ۢˬY dpBvcS J.EkTShUr(Xrb*ߟeю -RF&7sh,N/GFxnXU8JIaрGgqQ3PN1f(kf5Ԭ?^N_ɂ1ipœ͞c>Db7,-@h:{~  {-w \{>xWW ˅;SJY3X;ɪކD[XƵr70EQ˫g1Ȯ QHS|.+&Qz}:׏lӄJxsRH a"}%IKj2k:jYh7ELԵ1zNJ(<ź\+b" 0x=BZߨ-%@$P`+b e-H>;xwx_6ƻBB-*NG -@axaA\4-VOjC]TaGP5t=E[ ">=uұ/d J.]6e~(" s:=[$sÌxb!N߃Ҫ9W.͘Պ}ًk!FPu";7Hq:e7UW^ry]9Za łWP6r OT%$~I$,;KZFz_@Rf{P,o cj 80TTF<Ӱ, V';S vɎ> }g ;goUq^x=0O>;17 UU) $aha=?mJ}fd[1UIZUe2%Y-ubkcrBWUQ([02BZ";!L4ʡ7-1raq|`ƋV#ZA ѵ0y2FEv]^f<|W{=04 ڢah/;7TZk;ۥj(ÈUH~I veϙŹd|$ ,9 } _|P!׎(D>mEoY 0MNY"/Qxm9Ke{vҐΠDq~ KVt\,@h :t&+e#s*a!I "HTcW`dQRDRa=|Ho)ڲ /#iSQbS zu!'TƊWW)+k!^%dN<:uM 3 "&Fl1[AN݌%~?HGJBz׆q[@<]yIFwYtU[)|j'(>1Y/NI62DEƝF8iW߸p7h-m$C3wSc&#[(V$LVW4u11ISG<.,Tw$:xq$$Ȏ@+GWO5ؗ9Z_Rx9Sqn0Ya|%CͶӼy Yͽn k.V4=]㒃ҝq"6j%.{g ʪ2d*/!]'z֗qpLCM e\ygNjQݜؙu6$.G\k]7]GJuS'y|]T/T)]ͅztؓA |țx-pG7HHAOQ-™AXfevd#"ߓKԽ$P 7R8Z &C1{ #wgճKA-]T4oZ#< `b7mַ8zJL ew8jwM<|ꀶBKaw`, ]<_LcʌphIPn Ë{JBtvv%IyԋUKZsCrr%^p`{^uW y3SNIZ_,tUs't0OV{?n_*J`7oqVsRu04>#hl"=z=YRP}?HM+("rŊ}8jn:<N(׋M왊fj[sְ?e _w%/=@ڥs$K7~Noy?J0aw鯮nwE-uY|`P?(ғL4? =jLʥbvNZ- (3b^(jNA 1X,j |J#b'n],rrF"Vq:mL<<2R4hˡ?t@ߙ57 g&L}|EaM ȝ;t9 !Q_^'Fz<_9 :9e E>Φ_S)AxhGsݽՏwoqt\ ?p}-㇐D[K ϲ_1d\7jAP؊Nto5/r;B@$~?wHpIT-6gOGSԖ`CmObO^oֺ<ɷ=w%FEkǓ8h`8>~MH|SU%V2gn{\=Xݒmfl;f!J3;FP-W5ڦ,qZI+!Κ`tϚ]sJg N 6 :Awj0c05 _oC /~})w\H6=Z@yR!i_i@Z8N &_:oEWؖ4('a͡l](n[/1-gI]2z>~E:nRL`\Ҁ,ha)mn {ߍLs t'"e&m93vLW?vuL&y2_#؏=K~3LJ"mMedݚ+SR(ԖTcx䖂hB:& #7'{wPdW:q6#b@n&}BX*Ud`8.${<|L^ʰ/r[!XPP8{'O,(|2E@fMXQUxT͗ $=V@E#ҏxeB`,R_DhXM,%<>ƉQ6*lsFlLGVէOǴVFcP) LJ,r@lG,'X,'A>PNan' ༣o% `u ^H))@Q$(3._=kS1j hv3YjثW8z \d3nưʋ@PohDgq _ָh& m-KcTqP{|ጛr2Uʍxn,]|j @J_ k*UVV BA#+,l┭J\7we'#Yyq`ufVPNMWibQٞرBxY6b`ˁX|&;[:RpQ@2i^ hxp0sZ \@K \֑ʯwcH u OߢcL@gg */^W^n?1N-59>D5@eڵyNnBoUz55g Z<^ZI0X9;4f!OtBdkSmfԬ5li [ h:f?Oۥ#N_o7{r>R̬rw5ْku7hE8ׯ%U5#jS,e=CL/]9w0nj OϫK~XY2沣XnUT<6qBA$'q[l<0Zr0~ ShHJpY7c?tϦِ -iP g%,1C<!FR@HMO'txȋ6H?7I.CSxblRJ9 }<9%An H -p D94Uc4``~[onzJb1Ya7@эj ,IB,#;kH/R~ٔ+xƬ {Sw&)?vqUS41RkqFz$A"ZL`o~|CτwiZV>lTڠᆅPNo0T;_ke*RR!yz ʗ:0Iĕ_YZua7?vu o# x_bE-0NJ Z\Vũ'tczCKKL航xek&?8^5w\@`S0Y;Rۘnֲ;j4pr?nnrV %;*(VZff@n5k-NC) 11]d0zNos8·~5l`i)ke\H^`UMb\'g}Ǻ7ENQnF//DK-/gO7`mz3% "bjmkudӾ#PHoa9+tHiދRLŒZaC̐ՒKj҅;Ef *qH,N{w@u"KC򝓩:u}"h8ܹ r!+ 7htc?@$?9#?u]b% @򿓪|ׯ %pW'ZHhDȯ jrkMC;=0 *]9qЯ"]|yTNyn9Cm'²v1J<&EYV^d;̰~k ѡ o*oPxo>SB6ݤG/I <*uD8IlG-S(^KdkN&9&t&X~4b*7poS\}u$ ByȮ{$)Kh $BɄI}a8p15QR[Of"N썀t&Bϱ=ܻ|& ^ x]<"v_#5Q!{|GYM:SCZ5`xtLx[ɷ-%an܆".| mv0K6U]Ax1PǿW+|Q8"V4m|ҁVTq'5  WX(C߅f9a9)CCP@ΛNFt;HnD\ئ*PK/'Tj#OMZ&N4;PNP/j0ᭂ ~CvG]~p_θt25B#SY PLX0iَ\q;>=Dr`W<W|4#e0Mw?~psv^s0*ZG$aIq m../wWY3X-wab [ng$7VR?}7Gk'Ī'yk;*̹S<IѥC/rg4hVl5T $*" c q:;\4A!oeĢ#*3gx_tH8j=$bXILaWz^Uϩ}pnD~:e'J 9cYӡξf³|$D7H:RC)I.pWgU" {39K~صR<(x ㍅PKצoU٤ Aٌ;d`}4cAZ>i~%wB`fJ萡h_d['.؇O;+ A(Sc\W",&fġB9n0JXqgXlWL/AL}>=i!V;!y> PB~vKh kpy gǏ}5t.K icwd{,vI<}>uCx:rϴ ysbo^4%=' ){re`PGt1"2ka5EϸF3N6:2Dl憟3SZ>:qt/.k9/3l̘QJ#N3ӓUDQnۜc(.o1DxpfK +/nqZ *(eņOurXަiA4bIj |~ze klDpK 3?"u7obUxr=D-]GWi59~Yx\0x >ۊ%֎zyP!SN- ~sX7b",ffl*   vUkl`+eoY\`i}B8OnK*2θ |$E+O\q^r -77Ϸyfhhc^8Oz8 ռTYӲ.0:kR0?L˥—?+`q۞/eheI9]xv4ױɀԷ}zTvO (ɕM3KmA{yYCBJwVOLTa1a`GNN_.~5DVd}#(7ԗ_caupȾ|?ʲJR|pJ#e[,a  9۹`ϫzڱ2z >(B[VG!Sy@]o# nRow.r,9]UP23u@]ߛ˨@n 0WZ7{1)Ϫ Jz1Ϝǩ,mQXɊo}G]vPF32eWI)Ϛ^Jj7*sjM='U.RUVN' L G\e\̞d/5;:s[j6)u"fkeMSl족xE&TI"+"DtKkPb&SyTX 2Ԕsԑ$$;& (\w<]vYͫ[h]]±ȸ ;Ӏ޴Ω eZqe:!T%ЩXJ^5&ĩ$qvQ1u/IOƱUs0˂2h|=TD@rw&ui`^-I5oqSf[ψu)PuVSC( M$qC!}aqI濡sV5F:xܘ81zppG!AM m*՗sڷ(j_LTem 0?hzD+0.Ukoe ssbF q5i`dP]{G>Nq1Xئ"a:1#9mtRQ%OŐ?篸P'%2lTxnY>jI { T5<{Ph(ʣbFQĶ|Չbi,3r H;YQcJu[Cc4JGjN~ ` y JIBgPw^@yrEy6hǾqT8j-鬆7hOӂyRr&s}獟98C:ӟb5oWy&]E5BY܀{?*r<&탣>rPDH$B"(at$˧a+Y^?YT-G.5!ymv rՀ8x%nO+WjeJ|! iA<㹖?9H2Cc澄))T>ҦTxJI={|2 KCz`7#3[ nŬ>vx3$Vf]vI傰нǍCAcJq{JA}6J Pb 7tU{V333FN2s4mW,)ۻh+܊a[v}j6`EŇ%ྟˉā 4S8Ӫ\MN\ϲ {5&RnGlC|4_:{-<'[CRʩ"^~ڎ .fv@ŻVGXQE^~(P'hV 0p&/0Y\vZb}7M4oA&OӍwyU]ɖ61j_-=rk0ܿ?a L_L伒 _ Juib +3صCaTT)ף:n*J^5o;YWĊ㟺oKx*$|ɦ̓VopИT^/ߡ ;*ƃUn8aHBS_ܤL !GQ#D~qmVfCZq@ǾTK/y kYM=/ .GkipcV_BQB؏e̩?l8uE֙K{wI k{DgYiXZtsAwtСa;-sJ* RYgvΓKJ?|[d+"FCӎkv]PrU8 A%a}.E 40*_#ʒ8WcЎ-eDw΄g\S @C'䥩;|׽]f}m}Y*c(SLB;?I(8uXdsׅ [Iz|ݒL~?-F6WƮ^䶛ct7*~ ig0D# #x&/3Hsf[M Zt^!I*ol&KR,¢}H)'39 ^Gh/~lyH7$"o=R DH0li(o$ȈoБt'M[7jRa#\vxQ-*Dvb"z;226Ugo?ުYNt P@X`Bp|!ϕ$chWؚ+wٽ4l'T-g7DiZ )oF~9>ԘEIgg>@-*XK˱w1zity&9?/}jLx)ΙSoa)]<)jr̭;g!Af (׭<˯+G?,ʃ Ռ%ci( y!, qї^AS*HIu<sLuXIWkYڅhx-d{bJP4㨂hp#uN.k痴cC$?#w~=~5TĶRu q!p֎=ې fW3sj}wPGvZC cp$Ľ_< 3u(Z)~ {O^MI8K/5ɐ9I#aLSfi.5,5"^ޢ֨W۞Uvq;o|i;,au,O$C-3/cTV1bQ'C2aQ8;V%-f_2df;{FLTY(݁|hz|u4.w+v=V2Fn)/Q"8]{+6ׅ o⋘EoW Hb2(d>k2 J8{0UMxIn1uw[~gc;vw0U־]#@{4=!dŹjV.</m 6TN!0Ob QPL\N` pͥP瑑)-K>!2L0d8]WFϕ0's3غ a6c̟ggԢ!T!whBZQE-V QBpNQ& X$P|[ Rs!EWp8kl8fJ| Y;͞Aϳ{|?'[$skEq"* e `1g2XDVwRH8v.k4n(* 6SjKk.8?K_,%d]6CGx9 hKB' ""uSQI(FmJ=o/A%4F^fɬd{ˆk#/U?1w1΀܏Rq_6nT20>$h'l¼D)~B{t%k}%v^32n?pv1/y%ph!ggax<`v60}9 s%;?c"vj3k\O0Y1fQ:;hO@ ϨTU\h18 uZ/~t&# lp9/ p$ZѴVGqV`.cQ" kuOKv]4YmJ&ÆB{Jmiu$Jh~pdW"ELjeN ZJO4(:99f-c.Z} ɛB$1X\Nvyq'$"!~92mgqPa ƚ'FdLG` hikL.gzSsR|(;9xY 0eL?rHmm'8rԒ'UPL+yPf)csIw@JlDzE om3WDV3gZT9띬(76(7Tfߘ,qΥ킛'`ht g~tnukU-ɝgZox9 a޻$`{&K.9%~ ><F$}Yx@xaVt2%Bvesqo9TULm(\3fQvT P[Cij$RSr߸I2GL!GOlDS ];+޵:4F PUQ Xh^Pud9J,|(O3LLӝc/ ~8bSsҹ?f`ERzgQŻzO^ uIkfg<9gSDecce& d! p Wcnm1@")&&MD,o{R`,C"i+ ܛ%=\*29;L. )M}0YhTC$w펜--oT9;702stz?jXy=xt^Y]KvnddGQ1B OIi-Z[kK~]?}ү;ڦ08hwibE  _8@~RzLj\~Y}djzz-\ RtuU#hhZWfk_dc]nTm"iyzgugoЪϏV+Ƴĩrv-^RX_ZExU<зG f { 2Ȟ:'.%Qmxj0v(zKqޜ[q`hGXbJA'"xAyˢ1(kRtdmx/A*L(2# c8vUJ<9[}9#E@Q?97{wE6(,kJ"]> RY7%Q dw+4(ZCi0!5MԵHF8}y?pTnx2%s+ݻ*xM5c)I#F Վr}r猡}KwGqx t]*su8#|A7`imGm2p_/;ڳit_to4jmsmڝkbvpy2̛M^Fx&ѓoTP Q.u#*q܃ɕ[r Ҽ{7؍:)t| T# N&jaĴKO1rϒDp< LF,@c֊:`ѝ P.ml6!|AM{gw: {4gpӺP5+>haxٲb63M=U24(V9w=sSZ†1vW'+Ve* *}m[U/\bw4E4yi2j<ʫS| lJiM6ܲ%Fr|:kʳB k+g;k8>m>UBfY67T+o˝ȊduƑ We(Nxx],}z6no{ 2R9cJXfZiBka t׺O% O0.tlZ!OF}=ܽ8σJ~ho[_C?3̲Q*sqKe3ix<ÒQʒOIE-PJ{JGTuZ3`d[h G}Q0Eo">؎ l;"Xy` aѤذGnRߞ VєxFDJmP,j#-!LTgQ|`;̓ 5Su1-ӹܽv \K>d7g^Pv\XUR_ b:kCyLCf̅`h0VY_K6/M 48{B NXwxZKa a#۷ U$ $P grs4:,Fb'J@B?+FUȀO-: ,M4CLOx)j4F)(;<7~^zv*ͳ`h[70? i*%XzqW/C'848mg,繚%ibFy?%h\V$:onSAPKzĝ9¿@Ь˾Z&vjsA[N,LZLt[%ukܥ}Qcxp بK;l%I5J{J̜]W%B,M{ANAtdmP(#c}@ Ϋec 7X 6'8لk؂\wLD&NAtr4>2R73o;?BOj eZvO\x=̲:?ف\?5ϔxHBg=E7< i삮!_Re.{Kc*:0(KI?2&7ѮsA^nqJp>[]|~?Zz,CCzw\t`x .dO˄Y-9=jjJim]K?qۆ4߉A"z)tRj/@Il$LMLcLRbdP֔KG"'\Sfx$ɞ IӓDu֨زqQ/5Fč>%@a9 }e_6T·@ X 좋nY}Pu [ݧpżFȨb[9Ob=:2,B6he(;$0ӊcsܵCqS<Ԩ81>?s?܎_k=8O2|99h(it4ߟ`}bSpG(j H ~`cZNzq2mG+ATŠO]Mi#Bnn5_-7S+-~orCޙBJe++޴&]KţG@u YdMe,Mt!v$h\PS"AZ.#)mV'UdޓTRdBp%w3g~'{$m;/m5Pk~]q"3:PnهhB6QgY Z_peQ唗5= XY٠ lc;p#Ir7nό8Iid+_HWlq8z3r1}ӕHS!bV\v  s \7]HN 3U4}o @4JKTT3n]YG|y/e=m?̔UB5;aDsR.1)Hia`]A&c2fÿ䳧Qh2SEAvHBNI8w&UCvS,_Bٛ(@n@HUoȥﳍ'\H!ލ;\yܤ]H*1&Ȭدj")=;09$(Y>QJƓ{4NT:?|e=7Ϸ ӷd/zMCbO`"R؊52b2Cu%: (@V <،r|*go8dCqvhjE7{6=FHj剀TȚ4 V¶3A1e?L/^y ]/!?u!BY(SJb`6qcǎ(ZvY@2c\F\K%6{\3<` ;41(t|\D.d'5x 5V|,(Ryl3] j M є+L5'x̀;'6<͗Ov&H(}_Boݜ8$톍rVsqDEVISM \r k;0T|&8y IILB飱c&1p{NBָDn*d'rjZ's[V՞޼K+S+w+˷ -)d8{M}00KZɫJ&]偮7i %Wm=QZM[k}MPh#Vbi5@ j;[?tfVӑlQbS,8:LQH[$JfοJAhY#1? SgrxJtt;.9ΚRAs Sqx+f&mW宍w;!e,H8je (4OE҈U{'ؐ4E:,9֭pE|0 IBSY luɴFW o3>ubb X54PՔ::gxN>%t H[̹!3bR4lһri_5f4%(G}׾beKYguX?6) ,XOfRQ+[ mư(!}jRR_^|zqdֲHgVJ#_"#s.O;,F1@+}-2j8zC7 vBPMBH%xFbQz]"y4dкS0 M>3K82S`d(?!.c* ۄbX Fn_eq1n!Uwoc $rl|d$>?A\Wcݖ5C/7 Ȍp͇zte)+iJ߸=԰k@ʗLd"kIy~D 4;\;.-7^9h:G.Kg^e@-G&Zjt7A}xi" i}cTDr@B,)y>=:,t-S7!y(:nc#?J/_&YԜt  eKo$"Ho8dxcbM5g d睟J>ݳz[+i͕.k4޶npbw]Cb*mURQz/;]%5YL*1:dB3T<L%(,zl[܉$iUr^pwpz^5@DMEI;ݫFVtN,&NjU VANRA4= ` K^T_ƕKi 5kQ W\[n>qN子ShG.^uiv@Z1R >CJP]GN w#j*e qbS$4K2W3%ȿ-Tpeb 3+;wI$U4~N2hj;+4&mlWE_r -.Xk- k@ q^z~w-&Y?gn2VJnw市YW^8/}x^SF+lA$ɋZPzx^IB yFr95}_W0z5%.6C]y\i2\%o_+D`p@%'{t9 ƶ*0I%ۅ]8 eCfor6CE hX Qy;Ky$# UO +FݘmiND8}CU+\r2#G9\912߉\H"}o3s+8s>w1 DDBYUB^pf+K2ݹagZ7Վ1Z3cEw`)8[E\`#&#7UyCnQH2l*Zyěz3aKTr!JXӉ`, Tɳ*oGwՒkbPX-v2rV\朥(5X!d4BUaD0?*5Ѥr4q1[l:I J48rJ-\֤$^&Ykߛh:,E/'\'X Б6 ǩGuQ}4p5 hG^A"%0*5°jH \eԉGxX%fbx]Y9 *%)eJɘ sw3nhMQEcA[ujaBC͙~ rq]"1_$ZApQs aY+n&+4|xV.8n6bE]duvEW<ދ5j4BItkk#p|/P;:#.>uz%Mƛ@-9\EK i:K5-=̲DRұGc@@BtiWCOˏ~rx(Vyaf|"1JRd6nNJn!j[XJ+aOazc؛5oKH6oŵC̐BxgWN1#5!]`y@R*' A}DR:28 s+E]Üy#&.!m/<2$DQ"+iv{k"yq[ ~sF=u𵉑*V᷋h ;l~8}4lNT Dz9h'Lfơ *L+=;>ÄYFeD5CnYw%xl⍝#*"/Q)_ց?tyȡ+"}X82KƤ4&jqΎ٢Rl:9>0*_(&bБB mMzEz 7O|'ƍ}'Mŝ0!dPs[^m'[, fuh&1DgğWkDv w@KKbۈLG5ݛZ[9i{JNITK M3<{eo&*#G 2R)Y]p[{\PJ*CdJI鿣瘠x]ݧj x- 4xmӭ5A@Ai:-$aR%UdZli8Un;&'Jײ~vٺ~^K[.,-H_:4B*dB֯1zv-\qIH'q%!sUjGfuȂXyI;TGiOff]ݲ|^<JBE~3 /=HI-Gvjg:L|z#sASP^ډ`Ex%֊H(ccI@v{wt..ȯl=\ 8g<\LfY׉Tij C2g_ddU-c/E/ߩ9Lo!*:0_D&UBw 3 -Ɓq5ؒ’wEQ/6X ՃKgt-iNb)>)S-yRQٷR3?Jwɖ# . Hn,ja4ymI+??fޯ4脕|HҭNx: U+_Y&-t_N$4# & -q I`𽕣n A"4ٞ%#oY 210 eΖ%3gy=a"z CK9?N$@̑:<v:a_A*ԩ4Q>\QvNx(_~?(܍Ŵf.ۺc/Ofo 3+g`OZ @(q0?x:ʣLGSB/;hf"EMvxpNICjK=YaZ҉ks@L˂+#8Ka),; ({LEŽ&`? H$Aq6<}7'Dzޒ,3?lQ8FUS+5y*"3y$)۾CP ԓNip9uGNnZ2nk9UPjKO@F.5u!9U8FMH|$1\Fe_s=]$iKE0SB@ڦMJup#m,ǝ6]k+ðI`Bz`t:>Kq3zTJ6󿔙}P+]I8`L-N>zqN9l/Nc '1/U,>NVe;8 ׻X :*-_̘r[Mr-PDy %~cZT1jlRjDwmӼRF~ͪm FCp'7H]5 M5o];F.7"޶T/=^/̈́IP'uԄSPx6Ϸ9}_f =e !:li(GȭܦvkhPxa~\wQs~lg47L|)$d /|}oP g)9s$Q}~R0U@٬$(Ns> ;gZxZ~cev5$4ZςS ͇|<An_[D+Ptc-wB N<[iE; h{_t:nv.+>ڋ3~xTrw#Y[S{f(@K 0i!DJ1³- ؛[ҵ>CVjZMeRy_~: O$_rTY[BMVc %ěQ[(9[)r?Pեp` y-њoߎ4s[x@b曜DKu16Ndd8l!"- 7WNDpNa>HeS{?0"7O H~ m~r]' $Da*&F;8 >K/<+v@@Je6C*¿Ǎ(E;^`3~ȡzwp<#_[mIbYl(W,B*Ι<>F\q|AL5A=O,Q>o6Ԡ{Y*~kcA)Hz{WA#{ zCu)%o+QZxF5q1yE6ܼ _;+N6ʒ=<6fw,~S1R[ s|U`J@ [2J<tJ*v$Gwm,nK7DlCt` afw;^ڸL01:k& ;bxq_Ps6=㐼p8z3u[8(T$*\a"gv^'<JC k5ACviJ:X1נgv:`Lu9ޖCGk>Кڡxhؠgr\^9#]2NC: WIhͩ_)Q"A4>=&U]* ~" s Bw1Rƒ%0bNjJQ5A#!4a5r&WHt헄xeka`̷ joǒ*A5+F!KKFNopA ;H$ʌa3eRϹN=D(/Pm ":R;zEp*wNW~ªK(2e+? A&Ұ iOi!x?-gҊr.܈ԝ֯ oCeۘğYY]m> "@-@Cq[SPr+6}% @ĂחR]/4 _x`0%P1~'5%2Ni.Lt@MzZUOLﹽ"HVj(8%@޻^Gd1*3$a=⒫],Dzp72=īWAy vGk VSQQXkN0#<!*Hw{3RYw|~*C'p!͝b^sgO>Ă}o0'{ͷRq&-SRMrol_rB"uKASW_) nyXۊvE!!I5dT%| qNVJLrFt.p\MHzGz@[vM!@qUi*SbPALpc6BA}ijBW1 \E-yQ^"kllfuZ&kkUER#iC F2;7 ˈ(un&꿞5 `Ħ E9Vc&sJ,7/]G*2rY_d̋E c0 vhnF(!4TI3WEx #\&z !*̴j җ9.TGA|D֟M=(@aa\:A=߷/J~sh0J4 %`Iܮuu @)!i]z(¹k>g ><[~ `tN=k[ aʋD‘l\alwT B|,.?-!>`6&*mE*ڰZZZzn>˹yĝ2ssHCȣp 6<4.SN!c4žhShc6ň;^5@)vT(?yB[k| @|4J0G#${6o`s+;$eibQ.w`M\ӭYUe'l ҅i"Bz3ȑb~/XюW`pZ]dWz'#MOt1fY KYACDlKhL5\8 T !s蛬@҂J?D n:->B@96i5q a©ƈgpw'_ti%<߆WyL*߁y2h9ryHaA$<`%َԏA^,,>t*=R&՚L kd-y~y@5V [shՋ =EY0Apv$ ·!V ~U6x'؋FUǴzrTD|3pn_\(Pt^_Y%]#B/ 7hsq+ןfK1pcPe4Ҟw( dN#c~8x@)* %!2?~CQ@%k'EUGɂC⡆̍AĪ[7 61}wmG|9^Ոb#H&E;Lp@>W|m>/Bd%(نEXYlKF 7^h/̇ Q"p~[RM|3>/-8y \p3k@q;X$'Z`%Dׯ./٦HlӘH+r}S3W؛tLpd6 Kh_4qI^Bm&nҬN2q2#dnk:ߺvlQ/yo%g%C9(0嘻g_w"eÅm]h+z6™KCXǺTIB׾2P%ѽarЧm'D@We([q172ij!N;G^_Sq54l'㒈NyC;R ygxЪ!r[K`R0@}¡& sN:*ٶRr5i"Gk|ar|tz#@T/) bp&^N߸oF_qfߵ铪nJ$ԁ#lyp ^1΋< 7u3Y0Ɋklӏ-BҌ:|p#͏9U1{ӒU7.#ӁT$'P[p HD\A+Y*O7A> T֥Ȗ|p>NQU|d,Af=jǎLuԑeHo=GˤSp?er`cᵆH^um@Ҟ 0K#HW \;Ją8)9=5KښT# +Z:"`g9q[>GԵ(!1BgO_x @J{zB+ "6H)UyV;zFn֡a>>ś8`,+fp1 l/c+Dyc4&]_8 mPڥ>e;k_c}MEwSBlUM^V Ǜ}sr$)vLP+]-nt/նIg*٫W1[r+`pg\jMiBPؒ9>::hVYu00cQ||ض4KSJ 4!sy@wK,V!-x&mGI)Q&PeโhN[z Xy'|*8伵qN`pxD|7?-w;;wbGFFhOBSnf2Qc0uH!Ŷ0bd8^PiUS)ŷ(H\#LCΠ1ph?4 3, w 2RɈ 9x"I~ Hz@{Qֺ-k6Z O; ͏N{/QAh" wD0.p-zQL%g])/#u6A y>+_]dƼї<«?I=(<5'-`b(ˑi/}NIǝ("w72zQ4r;1`IΫs7=(amD~Kr[miW:f6mŖqӂûB!)7$?*/r2ѫAO#sCs!xS9[5$q<`bD~ՏTI{sADvu+w RGk, Æ.L<*G((n2Jm@?=&OzsLWU6T\ QuR~F{0ej_SyQ]FjW@NNJ?|HOՓ]{4\RCƵ<._G'gb,FĊَTDz`a7 uO(t~ȞIޔ>+ ׿<%,fZKèڵO>i_wr居߯B#(аENh U8̽0_Ӧ 4m&yQ MȹFÔ>aqXSO}U 敕MyȔan&e9+ۚtj y$'MkOKR@N=Lcē-vxmݺ 8b=:)#'X\UlԸ6 vnyQIc-녋 Lu&_[4)Tz0x'\S67a39aGDIpd|>/B;9=DZFgakU5DR6M{)Hų+R.&( ]I5mQavQԊYISrw$ףxG3eh3`9KH8˼&bHiꨓIHQxo >tɴJ+E y_@' j?+rga: Ok,|䣒Ι̽eAX~J:/U lyuVß$.s3ن/%pc}vz.s1鶸h=.9@Rr$%[ƄG<ڇ$sN /r ClH+µ~] WGR{[td>Hy,ooɎ@IU_|Z!BG"G?)|ݢ\\~ʍXEbt#0O3X"vfI/d_$ <@62s6v9DI1ªb0Av\O0,cex hjJ0Ez@':ynҰQY3, 韠5b0hWi?AWȞ;'B D?iƣ 7S+ Z/i }B3H ޼:ձ[ԯ:t`dD:4ǰ'6 "|mtiJ {"_u`ߒX?:R,:ʽ,O'aPfq+U7۷Ѱx!1b߲ ҄"FI!% 2<=IX䌉WUEx iJ6R@K 4}ٓ;/ip]yuJ:, rFVbHxe?GY"c{os7.a۾̹ޟ+S\i!U n}Sl5t.#h:oq9)U7B{#6j b K 1J2\Nglh (kQ0?aXÝBN "|oo3s'a"ܽoKlٔ )zs>=j.Oԥ'>9+mF)QRۅꌐ7zC qn"9Uv4q&@'YٛǣZ!Vܚj8joi[:'3`UnSeь|X!VbfTyG~\=s iG 3<=7-#g XޏyQXYPTR\8F=v `ZW.w̗Yb>*óhrN&y}܉Y`ڔ^`1oxlW5uH B} V/{VaߐucP֒aN"`OHӔ1Z۽ҽSH٘$yt2!Yd!g f=z^zƽd\n$J82Iw2 yBSGH];dXJW(%PΞ?#9\uLxJRhQV36u kгsIrb1x'v M{ bu^Ķw^7χwŻRy8]`9 isd6\PhQ8xL^9 Q#^_/c~|% `Պ;ؗKp"Sa>m=.'w.4ٟ[(fgaTfJ 6hCjͱwFRe]Җn66(5¤(ͻ=lWم%p,$PҦ_fw]+=60^9iq9Y#_!(]Y`IQJhA֫;\of/x:tlkJKc}e/)b1zV?ܧb7@pU~!>B/v+sN~EN͒m6~ݲMr"\`6\ͤ\y,wMu?$a^An]Ch9S}DUWƂr$⯳q. fhrwh78Gn)B<_n1V鸄ҀahHa4~:q/tF=ke3rz~!6 M>՞`܈(80ֽ]CuXKq@ wIG2]jsߩhIk) i%Du5Fm"Rjt/i@fN6>u.7$yv܈ؚߞ^ "q ?%X-< Ax=JyqeA4~nMXSK9 q@x+1 bJ3T w)w]s|׽+]%kF#kUEI3,{t(i)~ޤx ~kSrnM-X ӌ|U[n˶HB.W}a:9fnȖp ^w |3Vo/|9`d+>oWKBjnV!U<Q3X Ƣ(>75uwFRwBϐ0_ێtq)>E^xEzp L(0hf\rv?k.q 9kfOvrrYh-cJ}TQB!/@z!q)u^e I iu˪aI-p$Tj@RAH CS8٫@pS:xn'GqgWD:ӛ/dҩI`_녾4W M)RV1uV_PK\V`Xv"5VE呫RPvdGKM)d@׆0ۢ}8w CmU$Jl^=2C'mySB$'18= E>th"9fD,6%4ÓBt*w4l=Q&\BǀwKߒPIXa*G!4{>'ߪXFMvX/ ͮ~' $08z_ L ~Ϥ2-!3c5GV*X@igVG 掠;#[~@Y98%;f&W3g Wh-Z{{M c3p!|plrJ5ZJRoPˢ$6@P`& \El`x5Ŧi3<ΛYS^q{EUE;{Ol?q6 UԜSD揑J^uNB K0tw-*t xlx:25h{qGfk pa~?p`ȥU?|mD  )e*uKlv @V IZ1MPT+~},Dʱ͔z03~I^:`ʠ2=kBMPqm܅6ʝN@hs5c(90,עyb[nvEUq4-gpV-uμŸg[e]JnH @mTbɽUmi!\tll58)֗DX"-:ҜB=Rw^f%RO z[ُ`xiGmsmd2RpA6!bjnuk`ekJg7>tDo:(P)^Mg;GcԮj{*Mb7VEG͘Qb1ޢ6SxsW8up߭e[O"-aKY"؀uޞ:jtCl՝amCv` 9aB`wAXWv;BFӎ9"yejBCȳPV Ù`+|XHghsҢP1ǗO ,?'kc /|3iC36FU\@?>x;O =ZJ%@v$(7zV<2 uk~_HXO2v]2i75NG!N$1FTRP7E>!&"HoeR~GKhO?h4lm5%}T~Cuw+< oI]ívۗR7#гQ9[X]ɵeƶi(Yɤ!"e_UQ9B쮥R.& gp7o:k;J#GsqȎ{O>4y?f=,hl-|(y1C#'3dL ;Ú>m<!e)v#Qзmv@oI|~Fgn3۸P|ʯItt$܏!p(wnU݌ǟʔ7gv|r5\l]sS > KP;h=Q<MSz1vrC٬g\93ى"-kGkpp.,dam$l>X3Y6laL.A7*f?rer+ '\lT2hE"F+gmu낂ws _hV*X$][ٴ"yWW.EhzKvH tT+VJ&} [\GQ[qNa ǙpX°_' Xhp!w#M=\(Ug>䨗L_a€頨(z:Dbi[p 3]^'~W@^xp_ܝovEį=*l& hNR>rx;q>k 4M^9\肮 o籼6{]HCЎdIL@{y6Jx>" )r F5 gHgT]:y;q0FKPDа5uNPc0ya_ L@*WF7z?;w1 |ZH\S K%nȢާ2 0r^o7zfHk"xB&"8-j%6I]yv>%vUHđb^n+ 3(SUS~\͉۸lo,cJnyn]6GbRHr~VAXI?~(>1#34uxDr5rr`웦f*KүJebU%pG KfqP8p9 4R!8Zٵj,g5ɠ9%YJZxцWAdF!* s-&ec!+6!.l%j0zFЁ≗?(:TI@Ʀ!%F5?FIC饉Ju]Ndq;'av$3p 7.p4Pqem`'rԹ rkb&L#S_?B`j7H}4^`%Jn"r Wcz!4Մ '5R<<獭xBߴ,f^*qxt E'aH^ѻi^5)j]+ ~P:^?+Ze? lD[,^`]7  $,@9`= ؐ*F{:~0WVˉfU]3ۤy24cx$5i9Cpm|W +c[.xk *EdQ/ް)곴oӊxC./R J^dDET*ydQe8ڸp3ud ȗi.YˑUJ|G妛zN+f4)"@t 12IaU6d^/5̖T$3dMEB<>dΣM~RFCPBQIp[.Q{]"qO?E lHmU^B=5 Pu49VvmKc@iڞH^QKĖ%:^FȲ>%hH-?}H5-f+GF5 Sެ~4¹8rޭ3r`utUH|e~tGS~ٺu IU.y<$il)*8ݛ,ݞTa}OռnRɝO6v%n/]b@,{5y$gdZ - }AG_ti||铔FZ;0e;ݬ~[jF+PR:J^a)T\;5!/+K; l tI59 #Ñn*kmrLhڲ;y̔lY | ;Fg!B:m\._Z Ǣ Wf^ "&FWٟdD$=pO -^ɽi.Ss1MXu".C &x02"%&\xz4Ipb`YҘ$Dr;X,[rd-GQo wϷ9;ĝn$w7i>%ն# *P(?ۏVU~3ix蟘yxtJDyb9ؠD{{E~c=@jek"fw BlZR=tcMqD Wmj)O_zhpulfDǡ龏ǫz^3SzP1]5iޙ2xAנ {bK_Cq#y@C]t endstream endobj 19 0 obj 69805 endobj 20 0 obj <> endobj 21 0 obj <> stream x]n8ཟBvQXO HYi@#WGt>R4uwϷ?oytnW/^}cZNy:Շo|v/yUjNi%]O| _sՖ㆔_cs^mzWmasM]ǧôڶcsS1疹EYY٘ w#rbNsmܳGn@?@?@?@?~_~_~_~_~_~_~_~_W~_W~_W~_W~_W~_W~_W~_W~_ᷚs~7~7~7~R~7~7~7~9w~w~w~w~w~w~w~tF8#Hg3ٶ l+ڲr Y,h6;сDt8. Pi|Fv +KdDTguNm-^F ̸>-AāNą,ua`ʼnALt&8eM<#art˄F{ǁN tޮLvqpvvΙK2=n=azf1OOg$@;<) bwW<}ynS~y.XG) 3,ud@ژ4͛rPvc1Kzp endstream endobj 22 0 obj <> endobj 23 0 obj <> endobj 24 0 obj <> stream x]PAj0{LA =C!mԒXЃ 3.?wmlouF WN1Y:zV%ܹ5I["mpx2~#dypFAcʹfuLmN7py%(܄ri:O{;QB>&aYh32mاsZ^%(5,7)r)l*1r9 endstream endobj 25 0 obj <> endobj 26 0 obj <> stream xctv*mN:v*mc'V8c۷̼s|֪y>gٵ>+ #3/@hgfl/ `k&jl KpQP]m 8 Msg=Պ9č][D,V ;/'/; y&pb^@K+W^oZ4ttL-C/nnhgn M^V.c33s44mm@[;Z@Jj4IgKruuebKYC1X0ڛ2դ7sg8Łb\w?) ?G4Nn2o 0w{Z1sH`c{3?GGf& h 01_?]]fƿ^yNom\.QQO 76e¿Pecߒ2*Y毋? '4q1\cp1s0 ;?J5,K=uq@cl?W|GQ2j/Lq9?Q$Ljj OBhoo T؛8yřۛ9$M̀5׿Q7v67m}{wJssOsS8kwӹ(?S:uR!vKC+IZ~3K3 \GMn4 `Y>y;@výLQNQ!f+8w=]^4bDⰹ4| O ֛MZ?H|DB*Z!h sodӣQ6Œkoa_FWڪ)$DFc:VpFp1CݒZ:FTˎ4t׺l-?dWjU#{/U|4}M+ 'Fpk:c 6QqOQS[\p53 3.ޅD΅+OcCTUnRUAlΕM njy175z✚Cz#:kfjI2 lnSl1%us1P~#+{خ֗5{&ozoLQ:ToSnӜl⦎/IJ晤]]xQorYԴr*92;5{%';>:?zM;›pfDx-F&$'=XWU[(G:GyƸ ﺲ˔\F$!3PoʒطX_ͯZWW1sl#0c:괡 ) gF-y/O#B >ҝyNJbWkVmJi<q^>~gK3Z{X,{C@P g q %`ȶV>2Һw7wzuT2GVo!vg7FUm|w^,t &eI.=ϿQ)A.Y^9^1=DaZ]૯yV0(QJAǬwLƳAF,C3+uFF D+ 7(TtӼX#V^.y}ܒ2"d9BE|(qxi+?({L?sR$cFCޫݞZg?e]j$5M@xc.,ꡈ?RˀB#틎X|tA$ kPǽ~bvB+V%ygR1tṛ-OPbd~DF'}B?2$9Wφ1}?5.Y]24<{*FCApgmј͙4zRp(Z`^s5Cp0i*VLC^N-iyb]VHxJyQC3?#Z&o>qlA˓f4̞P$@adH2_Ğʠᜐrι%0$4p*;/Gu1M_/y=#$DMEK?5nl TءR,Q]8hߦ/lo)Ƥ06b([XB9 _xf3vWH D"߉ =Lʽ틁o4jQ#PnٗC 7ocTS UVmy*8+Nת$ۜI _u?u7kŸzּ,8c!1nXEAA;J1 7Qhl51 WvGjwœ& ϕ# 낑ES>0;P8aCrc,N̾%T >Vg+?oߢ{+&Tdqw@,[t&He[ɭg;^lpIPkMyK?X n츌yٰϊ hUEWㇶaη?@ ř}O$O;8Pd&s28M mBPfKkG)#>ƺJ8~^dP阼8Kێ6N++,2}\6l=.Z-7"+ U;}sX7yug>FE*jߔeM_ֱ pȏGTŁ':kap8/ 0y^[+(S:$'{= &?{Nb+fzA-z7mt w;(v C¹E OwC [F&̐a|cyEJ%,:Y^cUn(Hd1D҂[(֜7&*YG{O#S"jE-5 MF/-κ[$m5b\rdT¥faE2h>˞!\̭8yZQޣ@LKsFxkV4*7~p) oި(J#sze6{/ݎRY[p|ne##>;11flzIAq/<uLKD_VS8F"FRtwnzאC|bʻ dcҕL H*5\o$'8[,]TۇL\ Rgpቕ6x8-r{秋/z/Emr̴-5i@ʾY@yzC?VvP3m8FGC(ٟHz. Zyӄ1T~{5La )$P+b~Z_⺫ K*⻷6 Cen)gψ f"<JQ?bFF[ B7IѶR4FR5QUCo5B/+}LAk<9m(+-@񤣞/Y<^ ܚʓ;ihF^$9bV;S]`Wҁ#ܑP LៗbW@ 1Z E|Vq=ޣ`lkv`k݃ii@Qix%5l$|C"aci诲L[.d=($3?đb+,?$F:9f >, %%24pI*;_ !]Yo#7b41 . x-D?}ҮK ݳL_p,!7UmsW85~ըx=[)8]B5q[S+/j98X1nBn/#nLvۅAsQz+&YÏJqQoإo Meh9DGCSSaq$Fm=\!" q(6<,-Xl.t# s^]oa_ۺ`@k(VۍY+}jS1[&U>RmsD㭉7m߼¬F8E0sn_s:i.?mmu2cMr<GduGU ~zp hd%KvAU7HF-lx7̴0y8yC~͍+~eJǚuZɮ X0v|\<u[DVځ…B;5M/aˣmwGT{]&wP5'Ή1Basf_e ٕ qtM%}vFM'f$[˷or AÃ*gܿ ~كDʌ>nPPK)-\*Ig&XͶ$7+AW$ɸAq2G:|xTI,Fw~w4}i#~iͲ%O9^x.6;S"3:vxQL/%FbY.][Id[*/t8(a6/ 8`-Pkp>C9u)?C;`\^T7WGV0 G gpS;h@䁣?dMYd*4['o!-}ZCf.SP*G>SJ 9VU2^]OC=d$8&cg~$OtǠ: XH JS V*;aS]Z 3tf$݋d'Lٻañ!u|"|uy:gu] .&U*_}|]g<#76 Խ?ǚ`ҸR&њC*^euDͼ`A1"=ܾ+-|l#HJN;HU_lwgʖ@v01ClyabċNb)GH^Ck땿MrY8KPSW%|dɒuSYW]_7`UG6Cybœ?75zJo+)DHը 1DBjq4+7>ӫ]qX@'g{\(N_}P(͇[(8:`_[g.enI,$lV f܏mR2)_&i03e|;+\) |Y6uHAPU02bw]S4?_I!$LdeH>Y3|b/o.= GP9KB3;3 _dJBu6B}s> "]՛**bW$44D:=Ltk 3l׼bױD\aݵύJ( Gx}Ͻ7jg?Jd?'fM O r@b*|6ÿy3F{Dq?⚐Z NEfI 1h;0dVX,sZ͍}}-.1]S{-B_:qvmkY X xj4T7)+A6B^"#89PPdrk0~ ^Wr _; 2֖%i"RIB"@chQP܁nc&{֌'w3?FpuB[Om4 Kj 4 s3] l3qݧoLP$ 9~. ❐J~ yzgfHBϘ#t~* T4``8,hsy̠^ /EAY5 &Wu fkᩕж pjQ6麵eȤ '8~ue"gwpsa[*u%$a_^+Q͜f0]CM|!KJà￟ K;;wf,:U*1cSA57mR)b*ۇ>,*NkZ乳M~+8bv|E^A\Ӌ2֟͝lFЙ`7ȗ]7Y1 Cn~,qtREm)&~~s}X95#do#\'dTw(;T?6)̋@xs.7x|H%sy@S*pj7w0 % {EMRm" }󞌷\Ii贔}W)2SmVD <j3/n7iyehx P &lZE 9HH>vӃ >{Ƹ } rI΋ĥun>7lCہu|UjX[:C=VH"w)_e@~⣙尕f60!fW8b(eܥz ^^˅jj0;3(Dُ+ r^HҔ.:\(CaMw"I4Ģ~vj&N#N-[]Q(;,O??CF-`o mx`.NX7v" dM®K x/> T&W2ʤakr$Bk'miOҁ ʾ]I_͎NIvq.й Sj)2F7z/ƙtŗÒRq*Nwi&sۋĴeg^ Z`Qĵd2pڞ7M9kiO K/QjrOMr `!xBA=bu.H&d$Y)bugb8]}:7h6߃ٺE/ \\,1䨌_8#m?(gM:uzA<\4#~&+cFDRaA<򋪍d4?NcH': ;|' %a K~|1#B+PfzRQ@Am,dWm  LZ0[k)](YN0K6%ۓpJyYA1k_: :8ӅQM S."=]9Mi搙 MhŠ`Eha!Hܪ|Lu4laRwLMU0[#$+GR9 'Qyqq|gsWMyx-2&ϔ"b "RI9Fl#} Jg73hLEQu AYc!L-Az @eeB:Lȴ6dmwJ{x۝.\<=7؎?/wK1}He3EVλVeS$etZ龃tvhp)m?nna&ED!1Ac]Bc Ƈ>bh|]z-wk#&K E` _G0Q+L!Y'2&rQomO۹r&1ƾDǰXIw}HHf?a*@PL'C g`dn5fXnMT{ jZ{sTp&#%2lT\lTkjxU5_ƒU>xk}5f*s$wGNօ)q^?ôZuZ _:hiQf&<@C@YVކL"Mټ;zdj##7ZvNY4:Tlw|-"e[ץA`RbS;ߠq3Ձ3R.a^i6)pkbDOG>P7*z1+^ QRM2>ݾ<؋;/5&-#[7qe_z|42[G3*L? ))ՊDz|Pvů:'JG_o[ _2>jOwSG0w>zd{Ep*s?q++Rc~p"VxUL[ TNYjU"sRR;1TAݿbU&?O*z\`_rʔm-]#bAy`+ h5VixR[2d ˁH =ڎvN?J9{˳zGPZrd~{x 2jm B"+>ؿy7kߡ[c~$q\J22bUCojj((j\V_\?Ai@؋fzU[]$7#DdqKC=A^]|]›hn:{Q8,>ƴr藾H S̏jHwe -Q|ځj}O!YaQx^%zaxU$O|pvoB_U[q{fqN#sr[a2\E,w~bb|rq"٬#rQ qԕKOBٞۅV2cDפ*cG]=Pv5,]&OTF0?5H{f;#EhĢt7 _~7cp1b{c|e#&;WR>HҴ V~LL̵;}f@^]aG\M x%bl!yN]hbʯkW;ꀍ4iS@TJ1d8On%keLUdgaм.':fB?`8Py_xfMJZO8Y!?Xq6갠E2"db.Čĩ0dapUtdV>/X_g2 tW6h]Sg고lfNC:I &PzWYvO&ۊ[\qc|ؠ-$Z=o!1_9"|HIHJ]@DzW{rMx0}` n JP0rU ٫J։%9;Mb|t5I*G4m\#Q0v򏗾so&9?i&Òʋ56Y0 Ŵħ/7rB;_ClcW(wOL[ֺ~gMmK ģ9"SlӅ0~[Q_ $+ Zr)j=(ٗلm#tIc:GCE'I8n P޷94Ҷs>EM *',J^O) (C=W .>ZI:Ǟs{hHfJ[y7bLf I&i*̀a=4%M#%'ܲ&RķM 2<& XbqYh$Y٫xIOΉSaVGŞc/edcef-TDT7;)"<%ICዮR: >FRm>h' lZ9 䠗e[?hjK; ϏX y=Uwݝ7$*Db ZLB]"p=FB'BEݳ֮z$zy, p%,N)zzmE8d AaW Qz(᫡R&߇eR~ Dfc83UN2ƤL> vPBj`QeD2HQM~"we{toǟ5m>א a '@R|ϕ0N:.`zCA+uNv(tvN,$ctz02u* br՞{36bqQ׃`|޽Wq+NLK"9h?4ŋ^yN~[رl`)A` Jdi:f'gR%yp&:JTLlյ @{SDlShAlT-;=J)4WF`خ`;AU=ep6ۏ뮦*Ij3&tp-~Dd[&=Ճk#^7dJ#g0YBFё'MI&j\™%]O~ Nx7a3dxg6첮<8dWNi~&Q ySB2QHt'#HP)54j?d49\Xqw'#qJ( )p9(t U]! ƕ^nįefg}E'l/}` ӂug4[1 j{pzүTP}~5XoK]U15O?!8\˥L ϋfǺ T[ `.B5dH5䌕޷;$Y>}gw$8-lָRx[5 9.eK! ^gBfM!cEh46i˯]?)Le)IɆywi/ W^UPЈ'j:ED↾/X'@^l x iV2ɿ:͕Gl+4ڮGjv U+/;{,[zNPChR 䧭G/e̫6pОSk#zU,$=G:ͫ|UtJh2|?xCNaۤЃU(w6gK,ϗm:=%u}pyv(lfFԇ%v VQKC A5h!bjwr '`@m8ޚX~+o9?e\8xւ)2[Z|dvZz;ҏԅ;G5!њ@?Z~{fqҐJ'58=J4B$A,(|R#/.qjnEC/ $"F}[5OE8-?z6B&iD{ӉsSts#%RﰉOj_4NU݂|[zb6qs,6o]n#jN\# z0I%{g&otCt#W]q!e o>\2)e_њB !po]_=nE_<Kk3-."2W|κ T 7bjK$}Gz8d {],T7w/>*ыsҶ(bI i-n>$WkL_H?i;υ+^O/5_ZS8$ U?(hВ/XO>)Lł3VdbPp-樘Z!CCn PQ[@'>2j̟Pd*vp2T+J  ݜd2 .}h^,s5o hmEĈybZrrR" QFss]N>o *,9r .1WP:X84wUEJTR;9~iMS3M%Ic-;qAϊZ p:쨑X/?S#CjAZ)p ^B8]bP͑<`!UNSDjɏIsuaASX76Y< !r7$ Vc*EZn\$*S=@p: q kALYj#K8l^\#?[b+ָN` xqㄟ4QEl1n`/tRJ0@`/ecb\)`q]"XRc)`ZN|UHز˸ 0MCl \R #=y_e~lȖJb#XRHBNhcBk.@ea` r^73_'*A{V\7Hoz(f(ЯTE!voN5㌯,)miN 8%{o)r^{llt |Y B" ݠr}n߇О.9Nm(F#1J[ԶuY:Z)e ty=v`#^nˏTi$O8uN7vc Vde|Ofk1dlEX-Y{[0v \0_UxeJqnYy,6C''8EVƽޗd1FIYUPn/[0JI-6W뚍Oi/CŏQ(nMS;$a_JK @Hua.sFg<A+h(Vgyf=3A$Bn "˶7MPҎyŬR輛o(oh!/`*o^+5W!_ytL:886ߙx-!m갛i$KTe}T9,VĝOݜT_%}{Xj(Re|"(_z(V_',6`lqXKSzI+E#5 nǸOM7[I}Qm ِD'm6+֢ԯtc" #fBn9mTI/pEi7K MjRŀ1Yxࠝ@短da>~.|:ps,pUzaC]4 -ڙF}`LӺ~yp |Vs)W5` S#{ =$$(d`1se%"83xYpDZ1% =ynq0 ge()7b:ӚF>崌;_Щ:X^:^hW5DH}LF@n`gC"q?c QLͩ0/ {=W: w(DJE,@nٲ,K'xdŅHBҺ^_b9=P b7%sTKDbc,7f0EwLH3lHD t34rz޹7^9dCX[!57+*qGo7{hKI5{؃#9=Gœ?9⛒a 5uǗ_5#V)(Ve^?jI\+Jwe̶ʸ'dHY5o*͵1t>yѵ[Ruh`>at $w`_"S^ ,uT$\L@mEOvs3 :(՞U>QFX<A;V'jA4je*49cmf_L_[X𖒓1Qp֨kg ?DɊεݿ+Wh'd~BW G7ps0=M{DJY#U).K'юplNv>IgH-Z4qF$=d,Ҳ6MJo,, DiCe{t#t̬VSw \bPk4g_ cʿy L $z¼haobHkw}僕8Yvy7+!PFB߾GzwR./;JЊA- iq  ZٽMBxz}9XW+*e.Bgq77_3-`ڢ͍KdBbt#>j˧ܼ؎֭B, NBloI"I)lrmDтvGx꿫5!JF;#M>F9GN9nI |ͮwhV,\͛zAp YN*~I'bچA_@u+7]GD]kR;,~Hz"G@*?VU.l"!a'VON]!sV z ^}_ N;ח"=:tE%Ď*9ɿA <D˸SjnS[=FyO%[-*SrɕDِ*8;$LfTxed ćxADvJFXFdwM铂m9mekqL8,KkLeu,=:&l /f8L?ضIibQqܰ>A'K ~9#O`<鯁I4X  U9#;]Yۉa盜]V8 xm%rlcOU(hE#.ŐZ,gؽD̜9i^uF 8aT'DÝM֙n]}0~MimƩ;魧 L"Uzsl//HCIoeN-6y[%T:ҒfD(XiFSmGA(kjF瑇88^)iuܠr['EbG/Mgѳd5GsD8q`% +P'a jJȦ'Pd^?…iޗGOa2?D(+%N:V.Kʆ j~<3u{6>q5U[c 9VX/No@y)*B=TÈ<֭pMZl$ 򚼨Ǭ\A%pٽF} ."pLO&2)$0\SfFot}#̤91#'3m19Z"}7S5'hӭ~]ѯػ}Ti5:ӌW,[>MF@ ϺdyCoPXGc("y_~y6SqPg^=ېm*NFv#i>.}986x.Trh[T!oGs*RfV0,3y(& Mf!'v ?[PrINBk \cc-o6;?lnfTr3xDh2Kɣ-5C};:U&:kZ~T$0|ƸyS3[; Wup-AZ ҥ#w7[1iG™蚓')v]*r"%sMKg~=gJqEq?:{G6nU( F11-&Tƽc?ݵ{PQ.խw_aGyĉ*ie uzJ&>x!7lL+D|\տ-Sn; UkOlYfb`{cfxܬMAA m{7 Mim&TG?dTYn̽TGGR{E`H(Zz-)r$^V}JH¿eo./ R|`0"M0ۭH80ytzD;y=IhxM2wLnHT`P݊o4lڰzLXYCi$"}E ;t)nQa[tVP%ENބ;?a ɿC>ʈoHS8c73wl+QU}5(&)vq#ok"(q^p=Y:vƪRMV tkqF_1 _-[& ;A[V37lM=Et[LZ{7_ku?,#/IbrPHZ\SHSzX{pCS,x(5 (I#(]gۆ=Bi^$uh^̸)*ᬯf8 r 5r Bl ]3|) @箕#CDxfMY2cE7."EQlK'O82 q$_OG xPuHy^Ϗ?ЅWʝ{$(w@=7)]5> sɬbXVd^jScWt$dLFm9wC4Xryr ꌛ??D@ `3JlD-j:ZY|YR@&/* ]=GElpqQlMi8ԩS k !"[Ϝ8)MG $G Np:<ĘD? fzGLZ'FPt\ J|2x$K-&W) ĴFm[H`_2K`gC Q3JMZ)CNCeݑSfsfm:!PƯ7V_{*M8gNׇ=_RߗfbJPc'k`V6i Gg yMQ34z][q~ʒ*uY'}bRʒؾ( ;b$._YǚiDu$&cT.f.72[{g!aRkL(nWܛ B$Q`TEw(4=''Ve#c@ߛaV2䓽7X62lx% ,ڛFA,nԻdJ{K|Xײ#/S,\OtSc X:oG)]Zn^QHY;gq2f}S' aYâq,:HıJ4 nYNQw8yb(%U%T̳ϙb,kH6*!Mqt'u8bXZJwvh_ N;'bl@嫧Nj>Fq}F人ӎQeY,bNw9 ?ϝ Æar$,p{F @0JuT̄zif vLT  Jl^ԙv* v큦NC Bp U!4 ُc-:E0Z`;36B͙y7kr1OE -^eqKid̀Á˚*@DR )eM[vS5iM'j0~yhb$20;NPs,Pxp Lc!:b;q@@|AC)xyKAƷkNak>u;\kھjzݵ`ț;qmQ:uLa]KG'|D?ԲSK.׈E݌k=U۱ n5V?/5_m²%ep7F3s8)@WZ)*aӯ#[{ "fQҐªek1@b]U+&26'Fazn1KZ59F/}8MT'.{{YIpuPap8@ӇOrcQUS9Z=m ?^D (6 MX2(?%S+Mg=:Mt>^Mp_Jي?g35*71A7v^XKn!bfNۺ#h0{y;u/9Pց-Lc݋)=xë[l[Y~6d#q,h$ZS7F~c3%Q 66b]vR|펋~#yRқ qE_A} 26DGs":bh o^btgEi49n^PaVK?xPюHs-:hwDt?qX]).r:CpyH폰Y"c >7kXNtS4 -w2dI^zٳ3F'wG-BTs KاBP6mO%y>=(gK.Yk6?m *Uy"O5WȄ񯍋 K Fb~y.xEk!5lȊP:vIP\&e ۉt{XRe(H*4f1^"sFK6n}] m6DD8,ߓY &W}&^ +q&D$EttU$gB#>`!<'!kɛs.4aԃB{Y:8gp?=ϫ tFjrTzA2ZNhDR< $3VZAzu%tiX tVCu&?g<%9ȆHNԹd'H;bU_Chs7ş4A +Tp6_#IZs=k=&58ͩNxt(b )'}-i|B{j…gXXJ'/1nIC? LO4O/rfI*q[vC{>>El|~FLE$Hp"lq05\eoV3פ\Q.nImXSDzK U^Bo0%H ;L"-)BAFf5Jif䶨AL:<SJux{)ӵ/#LkU4t-1-̪+8Xӳ0}L@Fm&URՌ(;v qȮBXhVfa7<;TeSH`fԡ5PƗ$Kۆj..cx j{?(_jݼwҎl 1FH_c$VG:{9i5~oZGA1WZK׬Qb~|,UFT*/^@6Iarx_Pa&ҽ8{JDgNДTmA! jGIr 9PNǵf@)mۮ rj?֨٫ߺ6b;8BfG>sv)!=2ݰ'KӂHߪqPpb >fƎaXhh[1Tb13rM%qg@[GGW˼_QP4gx[!Gˎ~tYuyB0yxevڞt[RI@b.)+fr aU K)u3IsVuTј)0}LMѝ_8ϐ +BzlLEA+ ە*! +uW{-7 R>aZ"6f ȆSe6i*F<2~$]O˭皆! FKGJJUs%Z"-ƝBMhO<8\p;jCnPAu E%P!d`coJ9 G aDZZqz>2<Ч8Qi>HN0Iz=цA|vA#?tE5RR$+U-٘Zbnm[n/Mz,ߍk\r\̝+y=Xi<|N[b~ (q'(!DNmoaP.WyNgig?|(]q>DM$ҶE\V zuQF|^ٺw;CI ǸB&. 8GՠhsdJ,QfW9!1|\iLC_ 'Bۢx>D251oMt"i*r2 tiE6Jk:]DR h> fvnH)^ND)Pg4֡kAߧH{a C`T_mA08ŝ@(3`+z=Dt`c ~D:M#,-׶;Y,"bRΐ25 -gmJ mJgD6!ҥ(K&8xX}q^vIV[xn`JgvҬlMƒkY*ǐaAT<}-%z&onuX |e)./->;yiku~-FT %$@a-FP8KާNe"Tv \21hs<+Z5X"5[g_4"վrZqɴh,1c |2ӶjZ̹!3eK 61+)MWd3fL6gMXb?KbTkOڐ(c%_z 汻}.V~ #:0dzVs t[Pbۀ r/R ߗHvM:sy I*VACWc ˧Kj_<5fۦm<# m%RH%ÒPV)!m藡'US4(&UyX<,公Exk@*gl~#;D9#cmSy9 銍OGf{e+<8nq:MVć7oܪa*TWVF̯ ;kelV"t]s8Ob{%0>rC蝝F ,qLgCbTk~,Ƚ~ԛ,V\=tV+;=*H϶]LEM1Kj IN?+αo8vKN`-ã|B|F"e&z^._N9}Ly;ڻƝ.YΎ(7/Z>01FI!DzNz2r&/#: }򭥅Gg :vII'b N˰*glkpO7౽] ƲN-bmS77)x3>οACeSt1$7 unBK$1^b*ukUV[$S^Kf~6ke鱭\#0TC =[R~4< Fj0D ,-!Y ACOѣ/áKf9R7mrQNM'iPn88Fl֠9"*rbA/S'f/*,0@hRREyW ,D ֥Y6&o)Ab?.KSݴ"=v\--"L2Sӫb;\j/|(F`jZ8eR f-Њo7IQːb|mc { i񹗆KwnC = К}g 1zXn'(2У`+qB*l K!1ud+Z؎v>(->hay%8q٨BAf:Gw:<ֻDHseR@F)F"uۋ5,H5Dv/[?]gZ!Ij8U:E#V5{$" NAzN٦|DW'&GUuÊjM;`;Wכ#κ}l.e'Oy(z^<*==5 l!@Uq$GֻxmDޟkVAN i!c-~gc?Fd9,XhtPqP@z-~:㱖n!<ƆgK̏*O$/;'t"0?mZJ8cU?WȽQ0 ᪨il|K{%zWDa߿T".M/TKnxlGbGR+UMXJYW.qº&-fR)ڢ9g1 #F[G% Q{H׎ _NwH?_|Tkߝ~dJ>E [< "mL~؛G2J~B:: jNа˳Xz>&&.|8T@ جU [ZDxg%|P<{>޶}zvF}q%ōæQc Qg b4ш]ME;VLR>:J]ϸλӮ!E  N}R痞j͵ prgZ)Fm4^@'Po>șABeVEƱHBӒ\[dRZHpb=tڒcw}BI^U WgJ<1k.!\w.cRR;HAv6?9rWOv@LEqSG?5m8Im7gIj)!s?~`#wSO=+H6c;&L]>\`dLt>xK/LKDS3,G;)>(CEMF#o,\>>oЇׇ/M 8;a[Bʧ$7t+G;H Z:pgscpd}%,->!|r*N dda5ZUL_dGRqmL{ 2WیѬ?rh ! 2'}ޕ;"aʢ; UDx¨}etjv3³d @bBNWdg #ar]]Snɾ_n^=8=UMѬBI4ޥ( D*tNWxhsmAߐ4{QFCfJ+YoH"ܑc@̓A 6XU`{0I3ltuG'jmͶo:߸̛0"@6lhۖ@OIS<&d=4UXGy3E5&I1CHaVdž orW0P:Oـ/4k-(ҙvl;H :%k"iruQizL~*xJͷb73J3ڨADZ+0n'Cgl.bw'G0{<1 !QkT˰G-i CRH2HL=XE&O?s1֬enUW5'D/F q[:tM{Cd w>cn5_Y륓  tc6Ť\=p5x"Aa9hKkxH IIn@>xH -bp+]0d.n;/!}̡)OmlaHM_a/Y#N; J ڃ@q*B.y1Ox[v:،SNSF]GDNG<{{@9'ܪ"q'F]!81 ps-ӣna6AZ'q*V'2mN ‡# \ @?3k׈CmSawBn(Cn!>q@2]-yAd&sii@ MN1@e>9%FI IWl`L NH澆iZN%gv~4Xw\B^Xd.lfy>Tgm_\iu('1@ђrȼ&WDe%ɼq_YbrUFDeYWS/*@N6sn2^bowL7۫_/o'w-:Ah|׬Ce^<C⠿WM؎9$0Y#B[Fݦd yzN=. d6Ziy{Y&ϴjl黫*sN M`Kw4|<2dj4pm _lCwPxfz<ϜLCM2n 6֢FVX9JM+=.Q.v.U3:DJr:Jn,dΐ ߒ,s}4R&i%4y^y8u(Z((J g(OdX,dg7j #w? nና V~Gj\$0 @BpT{8 \U[ J4|5$/#aBָ%:4  ܥlφ1( OCm$Or4F˛}"{ TFFEb^5ǴškѸ ߑnz16cN؃qSKRvbkc Bh ruNa%Gsֱ7a~K@%c?زnj4~4){ău:`IHwS0wdcވS(1I :uF)xźIh Me/ZUᜱ+ Hw bu_n/:tb){-WtTNMԭUpUcY#.<̛P􃪦}xv%FI<4a?)6)Uޔ+pgJ?7ss#7Lӝ`US eqžnQ2&2V8X*zu+TTsl.=WeNL*Z´8Sy1HGst_~Ⱦ1GoZNV~+hy;,_ͻ+??6ɤ-֩T'uK-RZ祇(m(,E՗h;fYuT v嗅1De5 eF xmIR`2rn/V)'EKhJt!Ϩ K2u)XFHI<+*+FOTF y.1約h+R.UG&֟L6@iA4Ԣ>eoSQ K(7e?$di bΙM|`ry&NM(H#ex. rygd|pQ f'PΒ"%e~6P"a?G bv#|/[Hk2D&͛U(]A[hET}5ޔ4 rN<;|3;˛b1cM0:OZ+iҐL3sԦeu7Kkfa|8ƞ"OoYOø8mhR:I./7Jظs ֍Z‡z5M [r.9(GV豫NG şTvT *;YO/&0+[{ ȫ8;]nuCDp;`۫v: [wr|j2qjn\k+C]6:C6cz'+L?嚯!Κ\ЍklWpM0%x^k;teuK|B9$F膆vc;Fqj{˷Qn g6mƀ`U5ǁ.^AqЋPw&DMcT҆yBI:ԭ?Y̓Y3w];tzaNJ^m I%b+$V9͏6wtHyak>RݧgB k#P!c%z_rvZ= 6ҌVSvaR y`h"p'.8Or>KqQz1CJeJ>pviPuA AGnyb@x¨iDJP3sS1N^ B\?_u媗Rr]| 6 ]:0^ KM#b0 z@ B{]Ak5RV G).Ds$1j%T f+aZA , j@<FL ΄?*c!-&K|'9ͤ_iRE]G9zܬz1w~e[]yʰ)(s#vx$_ysKl=HH7mCW(31m w툨=%?#nTA)S{[D4:'Y*v0Ԑbh*z52ɸrN#ಞNIl>ΨGؠK$A!G ' g Xnf7 F6Nahɣ֒_1x/}OÛ)n^k\'jmTJ\V迈*VfmEW[c4L{nո6`j ֯?޹_4zuWj!xȑ#Gb_t=f7zM 6VB>@ ުfœPщHHEbLq:HD  fOcn6n o")QJ+ ֐NiLΝDcـ#&}NōWt ;6G.ᒘqQ&`O\pSu-UX'D/\#Ptf=W$|ρX D8̾ƥ |66$O/wVJ&Z YgdX2L`pd-4}KڣehQ oӆ4 <&@C@i߱zqqfBg'nuL (ˏ̿Y`;7 !&H(H,/LmD=&X +NSԕԝ#uU kjiu W[LKHp29\a@L52A۴0w)ߗO!f5 r/WYW`#|p|C@uC"]vjoc|Wl__N4`b_QxS|Z 8zqs^A350}:gZy ATF!gUSb1I !3FO&s}9sYWQDQzÈ .WjO# 5rNP-_&˸(syN sĊc0SO΍c{{=lq(::-"j𱹗 ;0Qww57.Y4#^ʊ˹˘6 ᙯ w[Y7;0c㒊hp`f-.IGL=~Tjpɶ[2^dt^Zh`E-c qk Jottiv0!@n̑7X^Gn$/,6ݵ"K0#n]V2Y!nPcv>xm$眸t׾Jv60KOBOf+%NpUF^E 2PiKFߡs|ni%&}C!_#3ȋsu+>-7T߉v|nXw?cvLΚ4ì_B{z|0a htVd0◌OAoPD{N=~Bz*k-ff e$62r$au"igO e>wzy]C`mfRlUx1G7ε1qR( B'eLaw6 ޥ";9is!f߳tcSTCnF ikLg'""ap"#vlq~Pxg@Rn9u ߲H'Z{+w4OI=g&5e ub:hftچ3ߣ%f;^/t(̕!{!CүT\; ^=dR SN&h\]w%a Ro v`ԍ3R=+:߼É!oֿmǐ 4fY_|!jS%~U7@Y|QQ.O^Ԕ(Dt=e#_(j"]'MVL +"fwz -T7;Y["A<`幸1b >x>m={aBJ9 ճI4!&Jkۗ3PA? rvf+m5 a\הt&, t=`g|k hX`wxQ--x*$c"Sl&+@PJWO/ƃff<ݮ6p $?*#mٍ E0y/O8I-*^[4|_`>mg]^Xv`qbid2;.D߱$cWq.dkEHX#"qh>)fbS ]1thto7\(9i2]Jy}|`ㅬ3? ;.X! ܇˦B儣֯yiHAy$+(\t7Y+]Y m՟L<&*lKIg J9aKfCF3_d~Ayd ݣ)4xK8]SuuP}L5-G$'3/)H(ØagFBS~rW{. |$ )*w-[[p3]uH*\@_}ݶi9Hm2겂45!|=Ip<>6%'ks. qS}iD%0^sFd$K.nљ3jUX3|r NVorm1\lZJ7J$blܵ{2d5'8v̴~a6D'Ŗ*v" #U#ğ+B,\Xt.1F'"葉f[Ghw3h+W /ٽ||4`2oy#U`jig(ʡtPՓ*r95`e0n7F?@M8K@`}W0h1iߨq@CU l~JP|0o4qmEf b'OZ?/{qH=۪u6;Ri7ϻTME;'?<,^M?oy'2[{ttrkk7^-ęQ/=\-A-hKCA1o C՟(/r e=x3Yt杼:D30-^`HԇY}L! }pm&yâU9Zu18ϷI31``>B %}HlákT^R1)~+Nu3;`[C&7vQdN$z(mɩ#%, ggus{ƬTڴue ݯl_<{%H]("r#=Y?^ ;.\Du2?bGOJb[0Вa*Kߑ95' Eꩂ YAiڇ<m!o3_`b9MS6P`O!`abߛqUAǧVЗ;6I8-%Kf^8ؼz?L 6k.38/^a釲 Ҟ?} ֟l77*M N亁%֧T1n>Ѣ*Ŭ5˧x t^Z !nl9gXxQ_4LKx^5?PFھ[;MtSBԑck=KAo0ӡPUHs[9tA4;s,OnUK\G_F)%B~ >+ϋ33 !wEsZ }4~z׺$pr΢:]Gl'}jPp3I`}Ou3?rD:]l ІE{fd>Z\@T` t˹;*- e kFm;gxH05/!{bI!|$ b W8{Ҟ'gXI_\ފ-.[G-VVQo&8<,Mߍ: $3/~3DZKTX_҅"tS~?P'֔MkCD8Ȳi* }U*|+B G[N_{0jf|_[%}|HW~ؒ)=nǸvWݑXK 8klF!o[=g}m޲Yn.~h-f͛}88 q. BɵtLQ0^a,'sNajk#M9U=7c!!bWIH)-MQf ?-KsV#vs}jҍfJoiTZ~TNo=mg$饛 pxRG,p, CH3۳!NaԵaԵl?# L& t[ipf3X򿖘*J'1hȬ97vI 2#E*C(#ELH06 ۅ݂HZGτe u5HL@mE<=R窌]ZAm󱝜dȗB#=:$Ԃ9L5"gh뒕Q\>6s;6a o_&ˀ eOO_7 M >5Nz*{ZLc!;^UU [?!M8gŽC `Ѹ=NCt 0nݩM,i"2O)I(l/S +"⮁JsNsLFD ~(!4dM=M=b򐲉Ze.mRzm &68]^OF'N3j!y rDtԬiud捖tMm )K=[&GjkQEL Y"k1qy2)nai\4aA'J 0-:-q2Ћvڐ9%c+k*Ahg st2 `Rf~$%22ʖ[>Hj`;!9_/SĔ\V\ѕ(`c|͊'k@e:d)oѦfPNIhhACA *z̄8Oƽը|/8`\{M2P Srswں N I`s}A!l@fslcl1%GZ_^`v]}@׫7{ My`$s9pٛƊ4 Ll)βL.@# d8 \'qvi /tfEh2 PEe̗8ƨ=, h)/p]u_x!D B#6Ee^a@ڗO]=tD^Ϫ$WRZĺK"ZTrMGhy;{a ]P{/u!> 6ʼn<6~6a8SEm/_mؤn$ ̀Êgc>T< E>Q\7@|1\,(L^lR1$V0w9Բz(- ೹ic$ (QSmhz WLt/xNv5Hv(ekHW=fƽe]Fda?ԃ-;#BCEc*_P]HhqʺY{Lq҂VNOϯ8&6t` rDzA|`BLB`iեILR{UiYpeՀ 92;:fTNLru.% 2Ʀ/O~]r&}JogI݊;\lOa#l*O ~Io?O-@ w+Z:|@$îA%WFP}f0ZǠGQԤjNW0R2XK?$]p?n KDűHQDv&QA F\#Ji&O9Φpd|bPw鰙=&*^+rn ݹƊ[J)gR ˣk鑑zhqL+hW_(]Rb*l*."#}jZY6`{VOUQ8"Lumu՘L1_l'ѽ~<8X}u'#5EdJ+lUmg7q- {6̩^@=~<&$S'L -iz}a!b}Ic,W(=t?v'yz9 2^;ͼ >T@r~_uO}'Il\ғ;S"c;N%̦N%8n) 邩I&[.:TƲPP'ڨ6YQzÖaA *Ϩ/JR*Ul429?4sNW:$-冖 Np@aCj z;0ЅxM,j~oep<SG15AB0ۅ}Q/i^L2탘[aA4ٞ?\<xf`6PFiMAPb AwsH9̖kVNy>\(S?zɧ3f-#O}/ \VVG̅_ۃ_? 73r M.1tN7C@Hju~Z<;5G-{n5&L?y&R Gh_ sȢM 1ףة*!VĎ?`ph?b}ǒn$/<дZ`'%4|m+\.\sGcx#8VQω1oH69-FMפii;rOtl,mrmb=lRjTVTf7דij!ci_Io><_>'MsۂBy9RM,f,aڻJHrU4bb(K{ǀuFq 7_i OYZ?DX9VtDZ]w~P|@h x4{Ej@Y_˚RZaanpI~Q#% hz+ ^4?4A,bMNc 4QKJ-]Yg6Nm^tJ14eAื=jD{yqzAw9|?(jcHuz$υoqx]:lRcŵY'4٭?U;Hy;@z\~ CtՌ^ P~Kf$YvXm:7(Dѝi[БV߭vQK0hxd7ԝOIbXDuUYB:9ZmX= F4nʟ &z!#e_ݭ!D&)|[56PT3=g[QO x磡'nӷ4=uW.o[_g4dM~T 2NR;Of">\no$h2-+h,24T:0DKMmO&v zlzhsxGNMJK[1;aDsC`Gk:,6C;VGa7G)eI;vL3dniGָ 3*fm/op=GKjOk&goDq\2^Z娘kq\}jPΒ# ͣ؋$I??z|~ayrCOSP&3/F{PMuL! f9ϹPС}lhvМ_}QEZJY?o]hP;/K@nK` iҴw܀{f^(6]S:X6JQ ;Q cKRfjktw%U7Sp]8+Pk؜kM+Tɂ6f-(`1^2{!Ɉm5:%%80--GCvHou?.n\ 7)=j1Dj.<) tW׎[ df+JYl>Lϊupq)yo?GOwrc:9W+4z_@|lqL3W&m vO9#_U X–`7S0vJFWڨ36DjD妛Kl[,bX@>8@ϓ:rj$Ăh>d²hLc:,:WS`9KK2vNh0Azd~-Jꐖ0EXI)_*jk8V=#puu2+P )w` s/h] YGqfJz*de,,.\X@_$e(fFqIA^,Fɕ'ydJ\cEڪ煔kLs:raL4~YfV&X(}eCvN֧-[&7YԄ;^/:HJ1:PX6煽b p `_%$_ox& ,9RNW ΢{aN"XR:x,&&w꟪#Gwb<3N`5;3z?v(:ՅᠣΉ,O24XEAxO?1$T_l4#8Bm㱴J]{mҬۿNKMױ/" >yJ\/3f=nw#8NJIr`oTC8,K@CBZo$5)o߰$ O/O@x'&nh`חt(|1Dwj d`*]7>6&F!=IY$>[kD$SMoLSDC(i DIt'nm\J~)0-⒨ rÔn0JbylY+Sӌ]@IDoԖ \H  ͏ f Jb5Iq}pܟ]"mUX/G#򵲆hsiTYlƼkx) AZ|QB1UGKꩺ /xB9Y k*| ^ʐĴk0Yr1um&BVې}к3WO 6'z(Ӿi_cqCš^}hfL-_6(D@ok7|tc† x:9M;[co,)J[RZY8\αUK23_P֏4)WPNA韰?O9n'G- y б<*ݘsKS?`oQFSn+>wlS@i7izPBF :[=(+N5nlhp ^ Să@2}PbBөZ^A5V!S@!Vϡ;jGÌLL% d_D]2bZ<h,7zE2вȁ껉T#5T!ck6'g_,%'b9@M6ҼS!8 Uzs閉1\Ta;#O&Һ%|j(uhWrymfߢS,VkaR/tbQCt[&D+)d$5ˌ;a.|2o+[ݎ1Uه鴠qh7PTCiŤ[=)l8HӲAXc-E(PA2;e j7]?ppw hQ k_&^%G(r,;Weƌ:"[9: R09NHYA&,$-Ք-Uq(4ccRK/q9v m_UKNoPe?7E.FY0(\۔獐1r0_QR O&?Խ)?FdIt Y~)TK\PQ54qVC Zn~8F~\L5 .9K/(+h_c)A6j>FTo2sV8;|l#}]Ga"mK <3h]`om9e\CesRW?64GUep ^6(P=fE0MCz3 5 :"&X@"vM #Kg,a)iG1 #tN0`<tZ?hRY 窑ut#=E3mD9t[S *ox|ҵ}f0))@8#Wx%k@X> m K 9h볺P jD}ZKXC?1v>yG3WXilh*A1:Y$lC tk6sI\,mmcmIfKh{520/73׸V!0V~P`x5{5:|Z5o/E(>0u]!6x+(5s0} 8ñaڷ?I,E<$X^LsA>70v긅M ~MyY@+W,_: 沊H툀9rnl( X/o_2{ǽǁ6s'vI[FX~@RM D+A><ueq;Hd?lV_0P"S@|]^,zLLKCvo-ǢUe _Blu[y0.t/Y2!,Mb̶5yx_*#c$pu" buHCr-]hp-7%x$ޒ(Z~*ހ橺,9}E ̃j1Na?g9VN+ź:> Sw!1P5UבS &bK)y@ qńf;sA FSk]DgLॖ.l-UI<-V=0頗6`eg(ۍ|E>Κݤx?T}{k ʑ]l7-- -Dݞ(L\! 8fDTYS&rk+Pu}7n0.ozlKRپ͜v!DUw#b,/ "[SX5g:3dIA#z?.7&M6Hoeqrz`˳??t}H(0;NaDaQni70Ns f:d.*0RxFy7,VdSa4 $~e 6^GoQ3rmzĊVr~=+vs'yrt*LJɦX!kI6 x7U2حW$F\6ft5+׎} \~ZP8Ե~WZc6 HD ܢ,>]G2;T@s؀OɊqdM'' n_K }^YpP#MJBy c: U0{X V<]6~f Ԑ:ob z1|yY1C1GFaw*@J/n09WOwM5N#wg0*ЎF1`N{mT%4^[fy7p>j\ZYX|9ijDQ3`_vW!UHG*d#0T`-$bXKk*6F~X":d~&pOaKJ zENM*TS Su%Lߐ__wdCEֱhУOQ@<; Br .Rؑb[˲m Z-,OHNU8-'ޡ#/¶ڠQ1s6%\tԴKsxAak3;"!Hݢfxoge:dX7By_$uosݲi$^\KUfn@tU=eGfG8m6}j:(#r,O9hm:[s#G'=;eRme@#x۲A(2A.J!+\JpSY x{Ji9R`޷9oFo h/&#Gy,U`N{.mrKo0EZDZ#\Wu@cyo\9\-cMb줇y:WaIrAϟ&'-Qʧnp~' 8+|idjSGQa5U~-!p?+2(0Px^ ǨiU9L#^u2}oo3n%$Ii ׀Xߛ- Il1~/Eu`kGZ:>CAEM|: Sggx]XrIxw^G[e &V[eEQj$==EZMgfE0C_j}'\{Nsl{՞ڶ0遍.A 9$\+(Z)%P~?cel@@bm~ب>xvUůnU=D5}:l%Nِ^pa'ZhѸ!`mdW&a'aU5zFcڇ?&6x'2OJff (Nۺs0 ;ss +FZf,0aoR39rK\JVu69}܂vlrяc9hw DVլq.}جquCKb\@f/$<6pO~Yo!RnK]1躙[mo?jG$gyCz5 [*.cmUNu!@ Z$?L]w6b7jKf$ 8;‰::(~#VC!c<񗚦r]R.^Q孞nʁ'f;_ I21\Y˭ @3 *.̣O)x]ҤmȭF5sz'?֘D #j&O6r\}[-8悐Dzm"Q=N_%#Z£`D1 l'm`1iys O(菆NNoɐ&>$Jhn CXېy|AwG DugH,Z "R3{%P(֩:Rxo %NLz+i.y蕕Ok̩1n^& ^/YUI෧F-Y-%=AA'0~ӳgf}qs9X_d TqX5} mgj?ޟ (1#`(EP-^j¯gvHP8Yr6f6w?lǂ{=.s`1"kB9rNmEySB`j'cw4ªG#R _QH7A[fe @(PQn/.+6Rh{]x[DyA"Tm'k# x^uʣLBC{= i6g[lhk#t0+3.ր/G"tNGQUܻ,wkDLQyKeM Pi1a!x_꠼wAׇ^A6/_MQ_͜&~m5 &[E ,0WKex1e.u4HWS:BmMT`U)/k2Ar 'aѨIK -E``U#iXE ו:5ʧôbg_`"¹z6Al~]!HtrMT<%%8x:B%@aRWÝOLx1黇} rO,wh*3]|A.yV7SB G/ C|-ViʓTeιKGǫDYKʊ͇!{$<<ijtACKn3eK~fWFLŕH;^1/Z#/u=T6j7ZE/1p/++v(pj04cتիV CǤ+Mr%a皂: xEJuO'[Weu@=G1mJ83S>,l.eVD}3Ԗ>Z`>NTE> U4n"bه ZVNM>d~ -.7:O"c?D\W9Q/L' (Dl]t w蕝_-WƻcyFID$nCUzzlŠZzK`[;EkڮE2&I%,^OtR8ߩʷ6v:26+;*e8r`$fBP{Uӭ mi@LMPE2rؤ; " BC/}3 u9"ڒa[> -zHKDwjL7V%,\Rr6i4?.?X: \%SkZo&MBN%ͅN w6Q]߾!xyl$CtS,lU zNܳRnU~`6MPJ%ξeMں7&uFRcuǜ)(~n՛64o6r]'*ݾUC+ÿ;65qTACY6UDNaw`ǝZb1 a(<$?tllf/l㑖O@#.~s4 5cpHǪ-79Tnгv cv7;^W's¹`+GE0av;âOI?l~0x,OoJφx~ TaERF@:ѳQKB[9Zq"DN)5f>n?Nc _>t#BrߑLW_~8ϣĝӗ1XX":wO]>]O/ }=6j/m2ac.rHeiI(bE4-S v΂)~[Cx{^]L 9je-®4R枺jE2Ȑ(hB"iG(( zOİpMVb 4]A *׾r=$d2< [m"r *Ǵ&Fn ^L&#Ix8ͅ\UK=*;ko~V7 ~XؼXL!D-JBX"xUCT_\KE~i[Oi+)p?<*8ʤXR2 ܫ| ["I2d4t­)VM  2B`cѩ8 "d\ ,pm] 5.;DuQh)55?% '`g4eO;v.(y7N=*~:x_,'0|!ZE"4};ގ%wL\"r\Z*J|x(Hb6݉ lKm4äIV2CBkSfsHv`@lAzQB)%4)&v_w(^侔 ƣBOH爠^b_9.}r.K`)ʒ.Ads> r߰%g=՝1rk- tw^L>5d:jIŚ.]0FI f'B@F }<-FȖvNsc PELxhdt_efdܸ; ҈-8@ތj) ')1O)PA0N|So7hRn3  y}yIk6U]^dskTmXaM \2Bb|Ѩ2 0Ju ÊB$튮AvtQ@ʂğK[C+5jy ;"-V0^1" 7*f+_琀\|О \ KoSmf5!0U_|^~qM !_ -DҬ _*ϲ0RU tu$!aQBcɤr19vcӁ6>^⣸oxY3ai^댞 p"vA d6?/uqhCV PCTbwQ_5oK osE.xek8Ҏ:|B~Es[{V!Bh4m="@[$W;. rw_2dO>xMܴ'\ :A;O;BZXZ`*2ևy F4ta0xTE$}\qFMFlƝd{ܽV>DT kJi+yZ^]+ O6Rń85Oȋ{gpG0}SAL`*pA.~XpnvRD.D`D$eq/-.?$:i _:v2,mD&;\3!_ﶴwB^w5pWdӮXeQe{rGβUh5^?eɰ߯6DgS{69ͬs< sH`5R!d`m!:@Rֲ;0}%Nw3qzԂ<ÆC{8: ey|sx/xXt~DyPW?Q\UlفϪdo"%qũnǚm>KSJ3pk݅2ie>9s1ݜ5b5-c;*@p+<^T}l,"#5n8@v,o0Tlۆ*?x ƍ)g&G c@#Ook{;WяVi?,ZV+/dw"(Ew 9Pt{,E Og#ʜ1u &ʬMTW }j,JJj'#O\AFb`&V$I"6[~w*X`B%F)Li(UY,s!>3#naz<A$#.!ZFI Y߿D$>{H<%/ņ̺$7U^B&x.|ɫpΆTZAA얻[:tQ=bBAauJW)P`%ACc)@H0"- r{LA 6je࡭ղI?/xǝ^x}X ָ"Bt9 7@P%_-9ܘoޞ|ce36Xɛ]}WYJ&zR۟dD rs``s$aj+ɕϼVB+z!4N(YM%x*~jM缾Zx+HXU۲잊12MLؠ|Sa|cˆcܤGQѓӑj>\|.CP R#c=mXFX/ۛ@ )o>i֪kj|$_3FiT쎃 dkGq&e蒀A2`3KZF |4lHs(unϮ/aI6ldI]"ߢ_יF[demJbQJ7OgPSy%"zgP4:M(N)pDCx(oL@"1^ߩ&!COl-u{c><>)?hBD(tkRwχfd`)7kjo-8k:( q-!u:$G|vn W::$_Ĝż7;Re)Z`Xs5]?c~0gMk^oV)Q:R^;42'ԏ~ ׫CD*c Hrak7vۡB-Npx?6U?z{vd" -łz۸ꊦ J`C+/3#ja"u߁>(r_1p(P -&#Õ{vʄ|6ɜ J%:uS`ӹ1*\MFsK ՞甐n%ڟd#Td1B65vZ@4e̥ 6^hr-f kT xӝV7RGjg)yHf݋M+>O|Z^8ЫlV\)79Ĕa+o^3CzfL`lf[@EM,G {Xâˁm4jClo:P+ɔb882)N'[gW8ġ-^ 8(MF ۏ8!;O.aaǙk$<\'&XiWPf Sl繝1&3 ɅKԬڟ,證T%Ws<ɟ GZx:1aj^Ȯ;ŔǕxHF dž\UoB JXSYzHҽX.Fp;~FҢ*5I PvLNU&}y7H2|RfnF va+{)>Aa %ڟ9[S\$"// M-oBʁ?vTzʵIu,@T>p r QҜralhߖt# 5 yY.\q؈/xOOґ'7q&ema[`֢% vm\8R`PU-|NoⰐ$˗iw#|vZ\H|8 jUdӑ#PўIPӻrNv@;>IYܤ #kUz B+pނ1abAv5qY,u! 3<.Q@)n:M8~3Ry=%_{>O&fL{.*iMJvU5mf6͆#^|*0mR^00Duq۵nWBoD+d8wȘP/oiyjA9Dc71W "? \9R.k9f2W挘͝+r9K\1ə<˞+3??+|b?\E~=jLkfޫifhPэvi\h:X;w\6mn+:F $@/Nynb(-f9iNXр͸[c5pw|2yZN?xN/q)fÑelcCSN<TxVDQH{!Oa]Hf˕K$:i?jq7qw]RZ1ɖ_X,w=,~W%t2BǶU޼¨YiʗVt% zekO8~NU^z|yh%ͣ$g[8ն+Z=KMlr]_ZrP~EmV5@OwųhˬŒtzGaũߡ5wV*mJ5򻸙~i[XiaZX9p?ִ*{˄"ҞC5broDwGsBV>^rӲtoV'-"qa% Rӭ_̹?(g>iNz0W(A58LnVz*a4}(&fH4a ۗg-Kq&}ѭYq0tQ΁X{ghk83&l ;;}2$n_>|Ʉ7K7CY*r&RF`m\ƒᔹWCַ*L&OlUrpcl[>u+˚,[OJyY~>PDvE.e|$Sf񡜎2WK xI!!ńPG<S9RlVo] GoR'\Sɴ*5Rz3 {riU>lE(ڢ26qԐ&8ʪt}(x*}l{nlןvS~ݤ t\b ^P6*$guAY,w`{41h:gK~{Ph!< .C%h_8~RrFA3z桧B;Ϣϱu? Wk&3`AIved˵KUG>7dwB6bw} i\Q\_!8SqXlAɦH+ٕf\ TƋܩ~M Owگz_GEΧm O,>77O#ͱ0VInv!!#y ?|լG 斚ޑ|$;k{ߞZd F} s-R/Tyi@-KֺE.-,OY$fzmǕp%YΚ1XVOAr,8L3"dZD[zߊ2FɡswI4\h&YDh8!u//DJPcRL5Ԏ@Ur$z $ d=* ێiƙ;>WrS<8K닄  mq#G6*\Bsp.H]M3wyLpg5;',]P~|pz\7;_^?Go52Q?[9|ٻ>J fwU֜Oȭk6.?OvC ږffxs[9nNU+=Z^9wÊ9gϴM+-Q+6'[-1- 7}0W"n BZ6-o`D@e6؞#V޴Zv.,q~Qq tבei_ > endobj 29 0 obj <> stream x]n8ཟBvQXO HYi@#WGt>R4uwϷ?oytnW/^}cZNy:Շo|v/yUjNi%]O| _sՖ㆔_cs^mzWmasM]ǧôڶcsS1疹EYY٘ w#rbNsmܳGn@?@?@?@?~_~_~_~_~_~_~_~_W~_W~_W~_W~_W~_W~_W~_W~_ᷚs~7~7~7~R~7~7~7~9w~w~w~w~w~w~w~tF8#Hg3ٶ l+ڲr Y,h6;сDt8. Pi|Fv +KdDTguNm-^F ̸>-AāNą,ua`ʼnALt&8eM<#art˄F{ǁN tޮLvqpvvΙK2=n=azf1OOg$@;<) bwW<}ynS~y.XG) 3,ud@ژ4͛rPvc1Kzp endstream endobj 30 0 obj <> endobj 31 0 obj <> endobj 32 0 obj <> stream x]n <CٲTGIT'a Z߾8HC}Eyco9 ;3qUy7B&LjCM/K!7Faa}[!ly)o"(QU`K|pLjl]B9 .^U8m5(J*(J Jyj^J]OjĜsqG=m endstream endobj 33 0 obj <> endobj 34 0 obj <> endobj 35 0 obj <> endobj 1 0 obj <>/Contents 2 0 R>> endobj 4 0 obj <> endobj 36 0 obj <> endobj 37 0 obj < /Producer /CreationDate(D:20090622203408+02'00')>> endobj xref 0 38 0000000000 65535 f 0000230692 00000 n 0000000019 00000 n 0000004817 00000 n 0000230835 00000 n 0000004838 00000 n 0000005497 00000 n 0000005517 00000 n 0000005706 00000 n 0000005997 00000 n 0000006155 00000 n 0000084499 00000 n 0000084522 00000 n 0000084710 00000 n 0000085655 00000 n 0000086620 00000 n 0000086761 00000 n 0000087105 00000 n 0000087315 00000 n 0000157234 00000 n 0000157257 00000 n 0000157445 00000 n 0000158390 00000 n 0000159354 00000 n 0000159431 00000 n 0000159734 00000 n 0000159911 00000 n 0000227891 00000 n 0000227914 00000 n 0000228109 00000 n 0000229054 00000 n 0000230022 00000 n 0000230083 00000 n 0000230372 00000 n 0000230545 00000 n 0000230637 00000 n 0000230934 00000 n 0000231031 00000 n trailer < <442A5EB9C14504C06948933227CC9645> ] /DocChecksum /CA04AA2B2A0286945C8D860430B3F8B5 >> startxref 231218 %%EOF tucnak-4.04/doc/README.win320000644000175000017500000000032711277513162012244 00000000000000 !!!! Warning !!!! If you run Tucnak under Windows (cygwin version), tucnak MUST be copied in C:\TUCNAK. F.e. main Tucnak binary must be C:\TUCNAK\TUCNAK.EXE Then run TUCNAK.BAT !!!! Warning !!!! tucnak-4.04/doc/Makefile.in0000644000175000017500000003375412561147620012501 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(docsdir)" DATA = $(docs_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(docs_DATA) README.win32 docsdir = $(datadir)/tucnak/doc docs_DATA = NAVOD.pdf NAVOD.sxw all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-docsDATA: $(docs_DATA) @$(NORMAL_INSTALL) @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(docsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(docsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \ done uninstall-docsDATA: @$(NORMAL_UNINSTALL) @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(docsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-docsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-docsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-docsDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-docsDATA nagup: rsync -atuvxz --progress --partial $(docs_DATA) ok1zia@nagano.cz::ok1zia/public_html/tucnak/ nagdown: rsync -atuvxz --progress --partial ok1zia@nagano.cz::ok1zia/public_html/tucnak/ . cygwin: mkdir -p $$DIR/doc (for file in $(docs_DATA); do \ cp $$file $$DIR/doc ; \ done ) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/configure.ac0000644000175000017500000005764012534317032012151 00000000000000AC_INIT(tucnak, 4.04) AM_CONFIG_HEADER(config.h) AC_CONFIG_SRCDIR(src/main.c) AC_CANONICAL_TARGET AM_INIT_AUTOMAKE m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) dnl Determine default prefix test x$prefix = "xNONE" && prefix="$ac_default_prefix" if test -f "/etc/debian_version"; then echo "TIP: If following test fails, try to run: apt-get install libc6-dev" fi if test -f "/etc/SuSE-release"; then echo "TIP: If following test fails, try to run: yast -i gcc" fi dnl Locate required external software AC_PROG_CC tucnak_cc_ver=`$CC -dumpversion` # --disable-opt opt='-O2' AC_ARG_ENABLE(opt, [ --disable-opt Disable compiling optimisation (-O0)], disable_opt=yes,disable_opt=no ) if test x"$disable_opt" = x"yes"; then CFLAGS=`echo "$CFLAGS"|sed 's/-O2/-O0/'` opt='-O0' fi # check for package type pkg="bin" AC_ARG_WITH([pkg], [AS_HELP_STRING([--with-pkg], [Set package identifier for automatic update (default: bin)])], [ if test x"$with_pkg" != x""; then pkg="$with_pkg" fi ],[]) AC_DEFINE_UNQUOTED([PKG], ["$pkg"], [Package identifier for automatic update]) AC_MSG_CHECKING([whether linker supports -z now]) OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -z now" AC_LINK_IFELSE( [AC_LANG_PROGRAM([],[])], [tucnak_ld_z_now=yes], [tucnak_ld_z_now=no LDFLAGS=$OLDLDFLAGS]) AC_MSG_RESULT([$tucnak_ld_z_now]) AC_MSG_CHECKING([whether linker supports -rdynamic]) OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -rdynamic" AC_LINK_IFELSE( [AC_LANG_PROGRAM([],[])], [tucnak_ld_rdynamic=yes], [tucnak_ld_rdynamic=no LDFLAGS=$OLDLDFLAGS]) AC_MSG_RESULT([$tucnak_ld_rdynamic]) AC_MSG_CHECKING([whether linker supports -Wl,-Map]) tucnak_ld_wlmap=unchecked OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-Map,tucnak.map" AC_LINK_IFELSE( [AC_LANG_PROGRAM([],[])], [tucnak_ld_wlmap=yes], [tucnak_ld_wlmap=no LDFLAGS=$OLDLDFLAGS]) rm -f tucnak.map AC_MSG_RESULT([$tucnak_ld_wlmap]) AC_PROG_INSTALL dnl Check for system header files AC_HEADER_STDC AC_CHECK_HEADERS(arpa/inet.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h iconv.h inttypes.h libgen.h linux/ppdev.h locale.h math.h netdb.h netinet/in.h netinet/ip.h nl_types.h png.h process.h pty.h pwd.h regex.h signal.h stdarg.h stdint.h stdio.h time.h unistd.h sys/ioctl.h sys/kd.h sys/param.h sys/select.h sys/signal.h sys/socket.h sys/soundcard.h sys/stat.h sys/time.h sys/types.h sys/vfs.h sys/wait.h termios.h utime.h winsock2.h) AC_HEADER_TIME tucnak_libc_ver="" iprig_libc_ver="cross" if test "$cross_compiling" = yes; then iprig_libc_ver=`cat $TOPDIR/staging_dir_$target_cpu/uclibc_version` iprig_cc_ver=`cat $TOPDIR/staging_dir_$target_cpu/gcc_version` else AC_TRY_RUN([ #include #include #ifdef __CYGWIN__ #include #endif FILE *f; int main(void){ f=fopen("conftest.libc.out", "wt"); if (!f) return -1; #ifdef __GLIBC__ fprintf(f, "glibc %d.%d (%s)\n", __GLIBC__, __GLIBC_MINOR__, gnu_get_libc_version()); #endif #ifdef __CYGWIN__ fprintf(f, "cygwin %d.%d.%d, api %d.%d\n", CYGWIN_VERSION_DLL_MAJOR/1000, CYGWIN_VERSION_DLL_MAJOR%1000, CYGWIN_VERSION_DLL_MINOR, CYGWIN_VERSION_API_MAJOR, CYGWIN_VERSION_API_MINOR); #endif fclose(f); return 0; } ],[ tucnak_libc_ver=`cat conftest.libc.out`], []) rm -f conftest.libc.out fi AC_CHECK_LIB(m, sin, LIBM="-lm") AC_CHECK_LIB(m, cos, LIBM="-lm") AC_CHECK_LIB(m, tan, LIBM="-lm") AC_CHECK_LIB(m, acos, LIBM="-lm") AC_CHECK_LIB(m, round, LIBM="-lm") LIBS="$LIBS $LIBM" #AC_CHECK_LIB(ws2_32, [WSAStartup], [LIBS="$LIBS -lws2_32"]) if test "x$ac_cv_header_winsock2_h" = "xyes"; then LIBS="$LIBS -lws2_32" fi tucnak_mlibs="" tucnak_mdebs="" tucnak_mrpms="" tucnak_olibs="" tucnak_odebs="" tucnak_orpms="" # check for make AC_CHECK_PROG(HAVE_MAKE, make, [yes], [no]) if test x"$HAVE_MAKE" = x"no"; then tucnak_mlibs="$tucnak_mlibs make" tucnak_mdebs="$tucnak_mdebs make" tucnak_mrpms="$tucnak_mrpms make" fi # check for #pkg-config AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, [yes], [no]) if test x"$HAVE_PKGCONFIG" = x"no"; then tucnak_mlibs="$tucnak_mlibs pkg-config" tucnak_mdebs="$tucnak_mdebs pkg-config" tucnak_mrpms="$tucnak_mrpms pkg-config" fi # # check for libzia # tucnak_libzia_ver="" tucnak_libzia_settings="" AC_MSG_CHECKING([for libzia]) if test -d "../libzia"; then tucnak_libzia_ver="`bash ../libzia/bin/zia-config --version` in `readlink -f ../libzia/bin/zia-config`" tucnak_libzia_settings="../libzia/settings" LIBZIA_CFLAGS="`bash ../libzia/bin/zia-config --cflags2` -I`readlink -f ../libzia/include` -I`readlink -f ../libzia/include/unix`" LIBZIA_LIBS="-L`readlink -f ../libzia/src/.libs` -Wl,-Bstatic -lzia -Wl,-Bdynamic `bash ../libzia/bin/zia-config --libs2`" AC_MSG_RESULT([yes; static in ../libzia/src]) else tucnak_libzia_ver="`zia-config --version` `which zia-config`" tucnak_libzia_settings="`zia-config --prefix`/share/libzia/settings" LIBZIA_CFLAGS="`zia-config --cflags`" LIBZIA_LIBS=`zia-config --libs` AC_MSG_RESULT([yes; dynamic in `zia-config --prefix`]) fi echo "LIBZIA_CFLAGS='$LIBZIA_CFLAGS'" echo "LIBZIA_LIBS='$LIBZIA_LIBS'" # check for glib and gthreads tucnak_glib_ver="" PKG_CHECK_MODULES(GLIB, glib-2.0 > 2.0.0, [ AC_DEFINE([HAVE_GLIB], [1], [glib]) tucnak_glib="yes" tucnak_glib_ver=`$PKG_CONFIG --modversion 'glib-2.0 > 2.0.0'`], [ tucnak_mlibs="$tucnak_mlibs libglib2" tucnak_mdebs="$tucnak_mdebs libglib2.0-dev" tucnak_glib="no"]) if test x"$tucnak_glib" = x"yes"; then PKG_CHECK_MODULES(GTHREAD, gthread-2.0 > 2.0.0, AC_DEFINE([HAVE_GTHREAD2], [1], [gthread2]), AC_MSG_ERROR([glib is installed but gthread not ?])) fi dnl app_gtk_ver="" dnl PKG_CHECK_MODULES(GTK, dnl gtk+-2.0 > 2.0.0, dnl [ AC_DEFINE([HAVE_GTK], [], [gtk]) dnl app_gtk="yes" dnl app_gtk_ver=`$PKG_CONFIG --modversion 'gtk+-2.0 > 2.0.0'`], dnl [ app_mlibs="$app_mlibs libgtk2" dnl app_mdebs="$app_mdebs libgtk2.0-dev" dnl app_gtk="no"]) # AC_ARG_WITH([sdl], AS_HELP_STRING([--without-sdl], [Build without sdl library for graphics support (default: test)])) # tucnak_sdl="disabled" # # if test "x$with_sdl" != "xno"; then # # check for SDL # SDL_VERSION=1.2.0 # tucnak_sdl_ver=""; # AM_PATH_SDL($SDL_VERSION, # [ AC_DEFINE([HAVE_SDL], [1], [libSDL]) # tucnak_sdl="yes" # tucnak_sdl_ver=`sdl-config --version`], # [ tucnak_olibs="$tucnak_olibs libsdl" # tucnak_odebs="$tucnak_odebs libsdl-dev" # tucnak_sdl="no"] # ) # # #export PKG_CONFIG=/usr/bin/pkg-config #AC_ARG_WITH([png], AS_HELP_STRING([--without-png], [Build without PNG support (default: test)])) # #if test "x$with_png" != "xno"; then ## check for libpng #tucnak_libpng_ver="" #PKG_CHECK_MODULES(LIBPNG, libpng > 1.2.0, # [ AC_DEFINE([HAVE_LIBPNG], [1], [libpng]) # tucnak_libpng_ver=`pkg-config --modversion 'libpng > 1.2.0'` ], # [ tucnak_olibs="$tucnak_olibs libpng" # tucnak_odebs="$tucnak_odebs libpng12-dev"]) #fi # check for iconv # if test x"$tucnak_sdl" = x"yes"; then AC_MSG_CHECKING(for iconv_open()) save_LIBS="$LIBS" LIBS="$LIBS -liconv" ICONV_LIBS="" tucnak_iconv="no" AC_TRY_LINK( [ #ifdef HAVE_ICONV_H # include #endif ], [ iconv_open("fr", "to"); ], [ # ok #echo " __OK " AC_MSG_RESULT(yes; with -liconv) AC_DEFINE([HAVE_ICONV],[2],[iconv with -liconv]) ICONV_LIBS="-liconv" tucnak_iconv="libiconv" ], [ # failed #echo " __FAIL " LIBS="$save_LIBS" AC_TRY_LINK( [ #ifdef HAVE_ICONV_H # include #endif ], [ iconv_open("fr", "to"); ], [ #echo " __OK " AC_MSG_RESULT(yes) AC_DEFINE([HAVE_ICONV],[1],[iconv in libc]) ICONV_LIBS="" tucnak_iconv="libc" ], [ # failed #echo " __FAIL " AC_MSG_RESULT(no) tucnak_mlibs="$tucnak_mlibs libiconv" tucnak_mdebs="$tucnak_mdebs libc6-dev" tucnak_iconv="no" LIBS="$save_LIBS" ]) # ]) #else # tucnak_iconv="not needed" #fi AC_ARG_WITH([gpm], AS_HELP_STRING([--with-gpm], [Build without GPM support (default: without)])) tucnak_libgpm="disabled" if test "x$with_gpm" == "xyes"; then # check for libgpm tucnak_libgpm="no" tucnak_old_LIBS=$LIBS tucnak_libgpm_ver="" AC_CHECK_LIB(gpm, Gpm_Open) if ! test x"$LIBS" = x"$tucnak_old_LIBS"; then tucnak_libgpm="yes" AC_TRY_RUN([ #include #include FILE *f; int main(void){ int w; f=fopen("conftest.libgpm.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", Gpm_GetLibVersion(&w)); fclose(f); return 0; }], [ tucnak_libgpm_ver=`cat conftest.libgpm.out`], [ tucnak_olibs="$tucnak_olibs libgpmg1" tucnak_odebs="$tucnak_odebs libgpmg1-dev" tucnak_orpms="$tucnak_orpms gpm-devel"]) rm -f conftest.libgpm.out fi fi AC_ARG_WITH([sndfile], AS_HELP_STRING([--without-sndfile], [Build without sndfile library (default: test)])) tucnak_sndfile="disabled" if test "x$with_sndfile" != "xno"; then # check for libsndfile libsndfile_LIBS=$LIBS libsndfile_CFLAGS=$CFLAGS PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.2, [ AC_DEFINE_UNQUOTED([HAVE_SNDFILE], [1], [Set to 1 if you have libsndfile.]) AC_SUBST(SNDFILE_CFLAGS) AC_SUBST(SNDFILE_LIBS) tucnak_libsndfile_ver=`pkg-config --modversion 'sndfile >= 1.0.2'` tucnak_sndfile="yes" ], [ tucnak_olibs="$tucnak_mlibs libsndfile" tucnak_odebs="$tucnak_mdebs libsndfile-dev" tucnak_orpms="$tucnak_mrpms libsndfile-devel" tucnak_sndfile="no"]) fi AC_ARG_WITH([alsa], AS_HELP_STRING([--without-alsa], [Build without alsa library for audio i/o (default: test)])) tucnak_alsa="disabled" if test "x$with_alsa" != "xno"; then # check for alsa tucnak_alsa_ver="" AC_MSG_CHECKING(for alsa) AC_EGREP_CPP([AP_maGiC_VALUE], [ #include #if defined(SND_LIB_MAJOR) && defined(SND_LIB_MINOR) #if SND_LIB_MAJOR>0 || (SND_LIB_MAJOR==0 && SND_LIB_MINOR>=6) AP_maGiC_VALUE #endif #endif ],[ # have_alsa_final=yes ALSA_LIB="-lasound" AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_ALSA],[1], [Alsa installed]) tucnak_alsa="yes" AC_TRY_RUN([ #include #include FILE *f; int main(void){ f=fopen("conftest.alsa.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", SND_LIB_VERSION_STR); fclose(f); return 0; } ],[ tucnak_alsa_ver=`cat conftest.alsa.out`], []) rm -f conftest.alsa.out ],[ AC_MSG_RESULT([no]) tucnak_alsa="no" tucnak_olibs="$tucnak_olibs libasound" tucnak_odebs="$tucnak_odebs libasound-dev" tucnak_orpms="$tucnak_orpms alsa-devel"] ) fi ## ## check for libftdi ## #AC_ARG_WITH([ftdi], AS_HELP_STRING([--without-ftdi], [Build without FTDI support for usb to serial converter (default: test)])) #tucnak_ftdi="disabled" # #if test "x$with_ftdi" != "xno"; then ## check for libftdi #tucnak_ftdi_ver="" #PKG_CHECK_MODULES(LIBFTDI, libftdi >= 0.11, # [ AC_DEFINE([HAVE_LIBFTDI], [1], [libftdi installed]) # tucnak_ftdi_ver=`$PKG_CONFIG --modversion 'libftdi >= 0.7'` # echo "libftdi version $tucnak_ftdi_ver" # tucnak_ftdi="yes" # LIBS="$LIBS -lusb" # ], # [ tucnak_ftdi="no" # tucnak_olibs="$tucnak_olibs libftdi1" # tucnak_odebs="$tucnak_odebs libftdi-dev" ]) # #fi #AS_HELP_STRING([--with-hamlib=path], [Build with Hamlib from fiven path - hamlib configure prefix]) AC_ARG_WITH([hamlib], AS_HELP_STRING([--without-hamlib], [Build without Hamlib support (default: test)])) echo withval=$withval echo with_hamlib=$with_hamlib tucnak_hamlib="disabled" if test "x$with_hamlib" != "xno"; then if test "x$with_hamlib" == "x"; then # check for hamlib using pkgconfig echo 'check for hamlib using pkgconfig' tucnak_hamlib_ver="" PKG_CHECK_MODULES(HAMLIB, hamlib, [ AC_DEFINE([HAVE_HAMLIB], [1], [hamlib]) tucnak_hamlib="yes" tucnak_hamlib_ver=`$PKG_CONFIG --modversion 'hamlib'` ], [ tucnak_olibs="$tucnak_olibs libhamlib" tucnak_odebs="$tucnak_odebs libhamlib-dev" tucnak_hamlib="no" ]) else # use path from with_hamlib echo 'use path from with_hamlib' HAMLIB_CFLAGS="-I$with_hamlib/hamlib/include" HAMLIB_LIBS="-L$with_hamlib/lib -lhamlib" AC_CHECK_LIB(hamlib, rig_init, [ AC_DEFINE([HAVE_HAMLIB], [1], [hamlib]) tucnak_hamlib="yes" tucnak_hamlib_ver="unknown from $with_hamlib" ], [ tucnak_hamlib="no" ]) fi fi # check for fftw3 AC_ARG_WITH([fftw3], AS_HELP_STRING([--without-fftw3], [Build without fftw3 library (default: test)])) tucnak_fftw3="disabled" if test "x$with_fftw3" != "xno"; then AC_CHECK_LIB(fftw3, fftw_execute, [ AC_DEFINE([HAVE_LIBFFTW3], [1], [fftw3 installed]) FFTW3_LIBS="-lfftw3" tucnak_fftw3="yes" ], [ tucnak_olibs="$tucnak_olibs libfftw3" tucnak_odebs="$tucnak_odebs libfftw3-dev" tucnak_orpms="$tucnak_orpms fftw3-devel" tucnak_fftw3="no" ]) fi # check for portaudio AC_ARG_WITH([portaudio], AS_HELP_STRING([--without-portaudio], [Build without portaudio library (default: test)])) tucnak_portaudio="disabled" if test "x$with_portaudio" != "xno"; then AC_CHECK_LIB(portaudio, Pa_WriteStream, [ AC_DEFINE([HAVE_PORTAUDIO], [1], [portaudio installed]) PORTAUDIO_LIBS="-lportaudio" tucnak_portaudio="yes" ], [ tucnak_olibs="$tucnak_olibs libportaudio" tucnak_odebs="$tucnak_odebs portaudio19-dev" tucnak_orpms="$tucnak_orpms portaudio-devel" tucnak_portaudio="no" ]) fi # check for ddir tucnak_ddir="/usr/lib/tucnak" if test -n "$DEB_HOST_MULTIARCH"; then tucnak_ddir="/usr/lib/$DEB_HOST_MULTIARCH/tucnak" fi AC_DEFINE_UNQUOTED([DDIR], ["$tucnak_ddir"], [Directory for tucnak.d]) # check for library errors if test -n "$tucnak_mlibs$tucnak_olibs"; then echo "" echo "" echo "********" if test -n "$tucnak_mlibs"; then echo "Missing mandatory libraries: $tucnak_mlibs" fi if test -n "$tucnak_olibs"; then echo "Missing optional libraries: $tucnak_olibs" fi if test -f "/etc/debian_version"; then echo "Try to run: apt-get install $tucnak_mdebs $tucnak_odebs" fi if test -f "/etc/SuSE-release"; then echo "Try to run: yast -i $tucnak_mrpms $tucnak_orpms" fi echo "********" if test -n "$tucnak_mlibs"; then AC_MSG_ERROR([missing mandatory library/libraries]) fi fi # removed $GLIB_CFLAGS, $GLIB_LIBS CFLAGS="$CFLAGS $GTHREAD_CFLAGS $SNDFILE_CFLAGS $HAMLIB_CFLAGS" LIBS="$LIBS $GTHREAD_LIBS $ICONV_LIBS $SNDFILE_LIBS $ALSA_LIB $HAMLIB_LIBS $FFTW3_LIBS $PORTAUDIO_LIBS" AC_C_BIGENDIAN([tucnak_endian="big"],[tucnak_endian="little"],[tucnak_endian="unknown"]) AC_MSG_CHECKING([for long long]) AC_TRY_COMPILE(, [unsigned long long a;], have_long_long=yes, have_long_long=no) AC_MSG_RESULT($have_long_long) test "$have_long_long" = yes && AC_DEFINE([HAVE_LONG_LONG], [1], [long long]) AC_MSG_CHECKING([for uint32_t]) AC_TRY_COMPILE([ #include #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif ], [uint32_t a;], have_uint32_t=yes, have_uint32_t=no) AC_MSG_RESULT($have_uint32_t) test "$have_uint32_t" = yes && AC_DEFINE([HAVE_UINT32_T], [1], [uinf32_t]) AC_MSG_CHECKING([for typeof]) AC_TRY_COMPILE(, [int a; typeof(a) b;], have_typeof=yes, have_typeof=no) AC_MSG_RESULT($have_typeof) test "$have_typeof" = yes && AC_DEFINE([HAVE_TYPEOF], [1], [have operator typeof]) AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) test "$have_long_long" = yes && AC_CHECK_SIZEOF(long long, 8) AC_CHECK_SIZEOF(void *) AC_CHECK_FUNCS(gmtime_r, AC_DEFINE([HAVE_GMTIME_R], [1], [have function gmtime_r])) #check for F_TLOCK in fnctl.h AC_CACHE_CHECK([for F_TLOCK in sys/file.h],tucnak_cv_HAVE_F_TLOCK, [ AC_TRY_COMPILE([#include ],[int a = F_TLOCK], tucnak_cv_HAVE_F_TLOCK=yes,tucnak_cv_HAVE_F_TLOCK=no)]) if test x"$tucnak_cv_HAVE_F_TLOCK" = x"yes"; then AC_DEFINE([HAVE_F_TLOCK], [1], [T_LOCK]) fi AC_CHECK_PROG(HAVE_RPM, rpm, "yes", "no") HAVE_RPM_PACKAGING=no if test x$HAVE_RPM = xyes ; then AC_MSG_CHECKING(for rpm build directories) RPM_SOURCESDIR=`rpm --showrc | grep "^sourcedir" | \ sed -e 's/.*: //' 2> /dev/null` if test x$RPM_SPECDIR = x ; then # Red Hat : /usr/src/redhat # Mandrake : /usr/src/RPM # SuSE : /usr/src/packages # Debian : /usr/src/rpm for TEST_DIR in /usr/src/redhat /usr/src/RPM /usr/src/packages /usr/src/rpm ; do if test -d $TEST_DIR/SPECS -a -d $TEST_DIR/SOURCES -a \ -d $TEST_DIR/RPMS -a -d $TEST_DIR/SRPMS -a \ -d $TEST_DIR/BUILD ; then RPM_SOURCESDIR=$TEST_DIR/SOURCES fi done fi if test x$RPM_SOURCESDIR = x ; then AC_MSG_RESULT(not found) RPM_SOURCESDIR="" else AC_MSG_RESULT($RPM_SOURCESDIR) HAVE_RPM_PACKAGING=yes fi if test -f /etc/mandrake-release ; then RPM_RELEASE="mdk" else RPM_RELEASE="" fi fi AC_SUBST(HAVE_RPM_PACKAGING) AC_SUBST(RPM_SOURCESDIR) AC_SUBST(RPM_RELEASE) #dnl check for ioctl(TIOCLINUX) AC_CACHE_CHECK([for TIOCLINUX],tucnak_cv_HAVE_TIOCLINUX,[ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int cmp(const struct dirent **a, const struct dirent **b){return 0;} int main(){ char c[2]; c[0]=c[1]=0; exit(0); ioctl(1,TIOCLINUX,c); }], tucnak_cv_HAVE_TIOCLINUX=yes,tucnak_cv_HAVE_TIOCLINUX=no,tucnak_cv_HAVE_TIOCLINUX=cross)]) if test x"$tucnak_cv_HAVE_TIOCLINUX" = x"yes"; then AC_DEFINE([HAVE_TIOCLINUX], [], [ioctl TIOCLINUX]) fi #dnl Check for socklen_t AC_CACHE_CHECK([for SOCKLEN_T],tucnak_cv_HAVE_SOCKLEN_T,[ AC_TRY_RUN([ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int main(){ socklen_t tmp; exit(0); }], tucnak_cv_HAVE_SOCKLEN_T=yes,tucnak_cv_HAVE_SOCKLEN_T=no,tucnak_cv_HAVE_SOCKLEN_T=cross)]) if test x"$tucnak_cv_HAVE_SOCKLEN_T" = x"yes"; then AC_DEFINE([HAVE_SOCKLEN_T], [], [socklen_t]) fi # --enable-pedantic AC_ARG_ENABLE(pedantic, [ --enable-pedantic Enable pedantic gcc checking(-Wall etc.)], enable_pedantic=yes,enable_pedantic=no ) dnl echo "pedantic=$enable_pedantic" if test x"$enable_pedantic" = x"yes"; then #CFLAGS="$CFLAGS -Wall -Wpedantic" CFLAGS="$CFLAGS -Wall -Werror -Wpointer-arith -Wstrict-prototypes -Wunused -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wformat -Wno-format-extra-args -Wformat-security -Wdeprecated-declarations" fi # --enable-leak-debug AC_ARG_ENABLE(leak-debug, [ --enable-leak-debug Enable memory leak debug], enable_leak_debug=yes,enable_leak_debug=no ) if test x"$enable_leak_debug" = x"yes"; then AC_DEFINE_UNQUOTED([LEAK_DEBUG], [], [Memory leak debug]) AC_DEFINE_UNQUOTED([LEAK_DEBUG_LIST], [], [Memory leak debug list]) fi # --enable-instr AC_ARG_ENABLE(instr, [ --enable-instr Enable instrument call trace], [ CFLAGS="$CFLAGS -finstrument-functions" enable_instr=yes ], [ enable_instr=no]) dnl ebuild for Gentoo dnl rm -f "pkg/$PACKAGE_NAME-*.ebuild" dnl cp "pkg/$PACKAGE_NAME.ebuild" "pkg/$PACKAGE_NAME-$PACKAGE_VERSION.ebuild" if test x"$tucnak_ld_wlmap" = x"yes"; then LIBS="$LIBS -Wl,-Map,tucnak.map" fi CFLAGS="$CFLAGS $LIBZIA_CFLAGS" echo "LIBZIA_LIBS='$LIBZIA_LIBS'" echo "LIBS='$LIBS'" LIBS="$LIBZIA_LIBS $LIBS" echo "LIBS='$LIBS'" CFLAGS=`echo $CFLAGS | sed 's/ \+/ /g'` LDFLAGS=`echo $LDFLAGS | sed 's/ \+/ /g'` LIBS=`echo $LIBS | sed 's/ \+/ /g'` TUCNAK_LDADD=$LIBS LIBS="" AC_SUBST(TUCNAK_LDADD) TUCNAK_CFLAGS=$CFLAGS sharedir="$prefix/share/$PACKAGE_NAME" AC_DEFINE_UNQUOTED([SHAREDIR], ["$sharedir"], [Shared directory]) VERSIONCODE=`echo $VERSION | sed 's/\.//'` AC_SUBST(VERSIONCODE) AC_OUTPUT(Makefile android/AndroidManifest.xml android/Makefile android/nagup android/src/Makefile android/tucnak-package data/Makefile doc/Makefile intl/Makefile pkg/tucnak.spec pkg/Makefile share/Makefile share/applications/Makefile share/pixmaps/Makefile src/Makefile src/msvcver.h srcup win32/Makefile win32/nagup.bat win32/tucnak-cygwin.nsi win32/tucnak-mingw.nsi win32/tucnak-msvc.nsi) chmod +x srcup svnver.sh android/tucnak-package echo "" (echo "------ Tucnak settings: --------"; echo " version: $PACKAGE_NAME-$PACKAGE_VERSION"; echo " prefix: $prefix"; echo " pkg: $pkg"; #echo " sharedir: $sharedir"; #echo " target: $target"; #echo " compiler: $CC $tucnak_cc_ver"; #echo " sizes: int=$ac_cv_sizeof_int, long=$ac_cv_sizeof_long, long long=$ac_cv_sizeof_long_long, void*=$ac_cv_sizeof_void_p" #echo " endianity: $tucnak_endian"; echo " CFLAGS: $CFLAGS"; echo " LDFLAGS: $LDFLAGS"; echo " LIBS: $TUCNAK_LDADD"; #echo " libc: yes $tucnak_libc_ver"; echo " libzia: yes $tucnak_libzia_ver"; #echo " libglib: $tucnak_glib $tucnak_glib_ver"; #echo " libgtk: $app_gtk $app_gtk_ver"; #echo " libsdl: $tucnak_sdl $tucnak_sdl_ver"; #echo " libpng: yes $tucnak_libpng_ver"; echo " iconv: $tucnak_iconv"; echo " libgpm: $tucnak_libgpm $tucnak_libgpm_ver"; echo "libsndfile: $tucnak_sndfile $tucnak_libsndfile_ver"; echo " alsa: $tucnak_alsa $tucnak_alsa_ver"; #echo " libftdi: $tucnak_ftdi $tucnak_ftdi_ver"; echo " libhamlib: $tucnak_hamlib $tucnak_hamlib_ver"; echo " libfftw3: $tucnak_fftw3"; echo " portaudio: $tucnak_portaudio"; echo " ppdev: $ac_cv_header_linux_ppdev_h"; echo " ddir: $tucnak_ddir"; echo " pedantic: $enable_pedantic"; #echo "leak debug: $enable_leak_debug"; #echo "instrument: $enable_instr"; echo " opts: $opt") | tee settings echo "" (echo "char *txt_settings[]="; cat settings | sed 's/\(.*\)/"\1\\n"/'; echo ";") > src/settings.c tucnak-4.04/NEWS0000644000175000017500000000000011277513163010342 00000000000000tucnak-4.04/Makefile.am0000644000175000017500000000546512524352137011721 00000000000000datarootdir = @datarootdir@ SUBDIRS = android data doc intl pkg share src win32 MAINTAINERCLEANFILES = aclocal.m4 config.h.in configure Makefile.in stamp-h.in EXTRA_DIST = COPYING INSTALL eee.sh leaks mingw rebuild svnver svnver.sh trywithout docsdir = $(datadir)/tucnak/doc docs_DATA = AUTHORS ChangeLog TODO stamp = `date +%Y%m%d_%H%M%S` tucnak.d: make -C src tucnak.d distd: dist echo $(distdir) # mv $(distdir).tar.gz $(distdir).tar.gz alpha: dist echo $(distdir) mv $(distdir).tar.gz $(distdir)-alpha.tar.gz rsync -atuvxz --partial --progress $(distdir)-alpha.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ threadsafe: grep -nE '\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\' src/*.c src/*.h nagup: rsync -atuvxz --partial --progress tucnak*.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ specfile=$(top_srcdir)/pkg/tucnak.spec RPM_SOURCESDIR=@RPM_SOURCESDIR@ ver: @echo $(VERSION) deb: dpkg-buildpackage -b -rfakeroot -us -uc -tc mv ../$(PACKAGE)_$(VERSION)* . rpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bb --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../RPMS/*/$(distdir)-1$(RPM_RELEASE).*.rpm . ; \ else \ echo "Error: RPM executable and/or source directory not found." ; \ echo "Package build abandoned." ; \ fi srpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bs --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../SRPMS/$(distdir)-1$(RPM_RELEASE).src.rpm . ;\ else \ echo "Error: RPM executable and/or source directory not found." ;\ echo "Package build abandoned." ; \ fi lines: n=`cat src/*.[ch] ../libzia/include/*.h ../libzia/src/*.c | wc -l` ;echo Total=$$n, zia=$$(($$n-21228)) ctags: (cd src; ctags -R . ../../libzia/include ../../libzia/src /usr/include/SDL /usr/include/glib-2.0/glib) tucver: vim -o configure.ac debian/changelog debian/control ../libzia/configure.ac ../libzia/debian/changelog tucnak-4.04/svnver0000644000175000017500000000001312561150445011112 000000000000004256:4257M tucnak-4.04/config.h.in0000644000175000017500000001444212561147634011710 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* Directory for tucnak.d */ #undef DDIR /* Alsa installed */ #undef HAVE_ALSA /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the header file. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* T_LOCK */ #undef HAVE_F_TLOCK /* glib */ #undef HAVE_GLIB /* Define to 1 if you have the `gmtime_r' function. */ #undef HAVE_GMTIME_R /* Define to 1 if you have the header file. */ #undef HAVE_GRP_H /* gthread2 */ #undef HAVE_GTHREAD2 /* hamlib */ #undef HAVE_HAMLIB /* iconv in libc */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* fftw3 installed */ #undef HAVE_LIBFFTW3 /* Define to 1 if you have the header file. */ #undef HAVE_LIBGEN_H /* Define to 1 if you have the `gpm' library (-lgpm). */ #undef HAVE_LIBGPM /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_PPDEV_H /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* long long */ #undef HAVE_LONG_LONG /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IP_H /* Define to 1 if you have the header file. */ #undef HAVE_NL_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_PNG_H /* portaudio installed */ #undef HAVE_PORTAUDIO /* Define to 1 if you have the header file. */ #undef HAVE_PROCESS_H /* Define to 1 if you have the header file. */ #undef HAVE_PTY_H /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the header file. */ #undef HAVE_REGEX_H /* Define to 1 if you have the header file. */ #undef HAVE_SIGNAL_H /* Set to 1 if you have libsndfile. */ #undef HAVE_SNDFILE /* socklen_t */ #undef HAVE_SOCKLEN_T /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_KD_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SIGNAL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOUNDCARD_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H /* ioctl TIOCLINUX */ #undef HAVE_TIOCLINUX /* have operator typeof */ #undef HAVE_TYPEOF /* uinf32_t */ #undef HAVE_UINT32_T /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* Memory leak debug */ #undef LEAK_DEBUG /* Memory leak debug list */ #undef LEAK_DEBUG_LIST /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Package identifier for automatic update */ #undef PKG /* Shared directory */ #undef SHAREDIR /* The size of `char', as computed by sizeof. */ #undef SIZEOF_CHAR /* The size of `int', as computed by sizeof. */ #undef SIZEOF_INT /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG /* The size of `long long', as computed by sizeof. */ #undef SIZEOF_LONG_LONG /* The size of `short', as computed by sizeof. */ #undef SIZEOF_SHORT /* The size of `void *', as computed by sizeof. */ #undef SIZEOF_VOID_P /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Version number of package */ #undef VERSION /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif tucnak-4.04/aclocal.m40000644000175000017500000014303212561146713011520 00000000000000# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # PKG_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable pkgconfigdir as the location where a module # should install pkg-config .pc files. By default the directory is # $libdir/pkgconfig, but the default can be changed by passing # DIRECTORY. The user can override through the --with-pkgconfigdir # parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_INSTALLDIR # PKG_NOARCH_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable noarch_pkgconfigdir as the location where a # module should install arch-independent pkg-config .pc files. By # default the directory is $datadir/pkgconfig, but the default can be # changed by passing DIRECTORY. The user can override through the # --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_NOARCH_INSTALLDIR # PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # ------------------------------------------- # Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])# PKG_CHECK_VAR # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # -*- Autoconf -*- # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl AC_CONFIG_HEADERS($@)]) AC_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR tucnak-4.04/mkinstalldirs0000755000175000017500000000132211277513163012461 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here tucnak-4.04/depcomp0000755000175000017500000004230512302451720011224 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2006-10-15.18 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software # Foundation, Inc. # 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 2, 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . echo depcomp: libtool=$libtool case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: tucnak-4.04/android/0000755000175000017500000000000012561153000011340 500000000000000tucnak-4.04/android/build.xml0000644000175000017500000000666612300736712013127 00000000000000 tucnak-4.04/android/Makefile.am0000644000175000017500000000044612075737735013347 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = AndroidManifest.xml AndroidManifest.xml.in build.xml local.properties \ nagup nagup.in project.properties repositories.txt \ res/drawable/icon.png res/values/strings.xml \ tucnak-all tucnak-compile tucnak-package tucnak-package.in SUBDIRS = src tucnak-4.04/android/repositories.txt0000644000175000017500000000046612075737735014605 00000000000000https://github.com/pelya/commandergenius.git https://github.com/ieei/glib.git https://github.com/ironsteel/iconv-android.git https://github.com/julienr/libpng-android.git https://github.com/trevd/libusb0-android.git https://github.com/michaelwu/libsndfile https://bitbucket.org/karanikk/portaudio-android.git tucnak-4.04/android/res/0000755000175000017500000000000012561153000012131 500000000000000tucnak-4.04/android/res/drawable/0000755000175000017500000000000012561153000013712 500000000000000tucnak-4.04/android/res/drawable/icon.png0000644000175000017500000001233712052426441015305 00000000000000PNG  IHDR@@iqgAMA7IDATx՛yt]ŝ?U޷Jzzkx & 66;6=t&'dItN7LzlIICt& L6x*,'-wJ'ؖ w=z_[,>dF۶#/ b1Ph}1\o 'R5xOW׏`$ `u_2Fնt\z{-*J'Fjt:'2[c74L&8o7Ʃ.ETT*`2fZFZZ?qLH$8bqF551mZkNM\%;@,|ԒHզ:!',)%Bjjj6u*{o^ޡ/GB t@~%<;h{;V΋bUUߜ2ꅗM&33vlNw2ֿn~͉'?u4eIg]ma{h[j5η7Q7u樂X"ˡ Hnʧmx7D/A}ŭFTv PN~ vw2m}yPak{ U -KY C6KmGTv1P`E~zu9N=p{XW5MG+o3w+SDuew;#r\<߇P?R cצkTv<[ţxn[ȫtۭG/$DUfテx7h84=ь[;7݅w e&lOF B 2yd\>#+">nGZbmRxt@%4Z:@R)MiTT\*Pa#ʿ'r 1\fa#˔(W*hmcmԤE'AV ,ˊ(5=@h>r,Y8|' T6HHA3dH$ڿ2=gMR啊˲K2e[ňbgtJ$D""50pL@X|XA e!2Aѭ,a1Vx<i~Ya]&-r]?Za@)RZ `4j8,Wפӟ8_ JdԘX|F0J?sjpLZH!"WV5"-Cř={6_>eaWBM8[__ ,t:, ˲BJooG#hR.?t:h#[oF~}QʗI$ c@4҆s5}Q*tal I_{9s&UUaK,A)͓O>Ŝs6m N ڼeZI<#gOr:x,F>P4iYtǨJ$D"1kDfKy^zzt0~{to^e~֧i&۴˫_eW.eޥsI&m!B)ERa,Zt9H$v' T*5QkZZZ7Ass3|u蠫c {&1(u]^jSp8CRf5T\osfH{BP*ZA[ba`E"̄X,_~0a"B/^mg`Bm6p6hc^]W׭cŴttv G ~*W ̙ >YFg [_1y\G,rz0TP\.Lt]mU_` ?`۶meONuu56g-X Dѭ-MB2$aP /lm!-q&IƳ5,M6WC{{;[lf?~Bɓ'ټy3W\q@ -=y[)N I`[JC,\.̳iMŤ ?RZ[1R58yu^uJJ)H*3>4X:P  )Q~'PUObW lC.E)ũSظu>LMM-JܴFfNuB0mdXzŨMS(eY’5(ˬZ+@IiUe۶2+,bӦM3e5d2YTp=%'F6I؎Äqc"L`YA6 3}l%;V*Zu+ HG=@%ZK$D} tMoNk(w*1xG[[g͚5֦qq+o^ DZHCC'WTL383yS)U S@/XݎF&8۶9x`?>͌(GOQEXI̫Ī9vjENèii!'~mKcq^nZqG@)5tQ:F)Jv1/6UUVkԱH%8E!30{~:(VD#$-cz:r|g[ir\%yJkM F!RJ%cT%֭[Tav;/>8uh庯j,ve16"V:0D\b|  !(zCًH5Swg* 'N6FHa A0$=5,Fk`'P9_Ε*Ji@H|UJyxQ@ƣG6~Ոo~bMVx,TLJBaOAb j 9v(V*[} 㭓jU*J=ҫma 6QDi2c Lǚ4o%NR`mI6g^H)9|/e򯀣&|0rUc*(1:h L$% 6==TK*KǶ?{ Eo矣)%^k^:9C=[lE@UL? /!'a|, 5DHæB#>\.K&g}lgwO{|zc2 }}~׺o~oW^;ҷR68N͎l۞"5 A5Ki燻@U rVjdTcQ줰7qMG;v A+]%9ZY5GJU  R?a~^C Hjk_V5(+{ }Gt?oW7<^1`#Y ۟6am\fz4k.meMێ(oC ANfR@}sWxȁ.wdHBduދwl8XUGQ+Gd$}Զ1t}U=k'@ܷ2'|h2܎#SWa g~vAtOjwu`Ec*Ҋ$  fS7'6vkl=6k)]JǺSsOa!5]=ngo 8~ʿ/yUƸk3͉D>4TfI#ҙx'ʆ7c-BMs|*2`=W/.RU;{6_~P MvB{ Xş;IENDB`tucnak-4.04/android/res/values/0000755000175000017500000000000012561153000013430 500000000000000tucnak-4.04/android/res/values/strings.xml0000644000175000017500000002320412230170431015564 00000000000000 Tucnak Loading Tucnak Please wait while data is being downloaded Device configuration Change device configuration No need to download Connecting to %s Failed connecting to %s Error connecting to %s Downloading data from %s Error downloading data from %s Error writing to %s %1$.0f%% done: file %2$s Finished Internal storage - %d MB free SD card storage - %d MB free Specify directory Specify command line parameters Data installation location Downloads Downloads OK Arrows / joystick / dpad Trackball Accelerometer Touchscreen only What kind of navigation keys does your device have? Additional controls On-screen keyboard Accelerometer On-screen keyboard size Size of button images Large Medium Small Tiny On-screen keyboard theme %1$s by %2$s On-screen keyboard transparency Invisible Almost invisible Transparent Semi-transparent Non-transparent No dampening Fast Medium Slow Trackball dampening Very fast Fast Medium Slow Very slow Accelerometer sensitivity Floating Fixed when application starts Fixed to table desk orientation Accelerometer center position Mouse emulation Right mouse click Menu key Physical key Touch screen with second finger Touch screen with force Disable right mouse click Left mouse click Normal Touch near mouse cursor Touch screen with second finger Touch screen with force Trackball click / joystick center Hold at the same spot Tap Tap or hold Holding timeout 0.3 sec 0.5 sec 0.7 sec 1 sec 1.5 sec Left mouse click with trackball / joystick center Advanced features Keep 4:3 screen aspect ratio Show screen under finger in separate window On-screen magnifying glass Move mouse with joystick or trackball Move mouse with joystick speed Move mouse with joystick acceleration Relative mouse movement (laptop mode) Relative mouse movement speed Relative mouse movement acceleration None Calibrate touchscreen pressure Please slide finger across the screen for two seconds Pressure %1$03d radius %2$03d Very small (fast devices, less lag) Small Medium Large (older devices, if sound is choppy) Size of audio buffer Remap physical keys Press any key except HOME and POWER, you may use volume keys Select SDL keycode Remap on-screen controls On-screen joystick On-screen button On-screen text input button Two-finger screen gestures Two-finger screen gestures sensitivity Zoom in two-finger gesture Zoom out two-finger gesture Rotate left two-finger gesture Rotate right two-finger gesture Customize on-screen keyboard layout Slide screen to add button, press BACK to undo last button Calibrate touchscreen Touch all edges of the screen, press BACK when done Video settings Linear video filtering Separate thread for video, will increase FPS on some devices Tap to start typing, press Back when done Mouse emulation mode Display size for mouse emulation Large (tablets) Small, magnifying glass Small, touchpad mode Tiny Tiny, touchpad mode Show more options Broken OS detected Your device has broken system libraries, this application will most probably crash. Please install a system update, or flash a custom ROM, or copy file /system/lib/libc.so from another device (experts only!) Hardware mouse detected, disabling mouse emulation Not enough RAM This app needs %1$d Mb RAM, your device has %2$d Mb Ignore tucnak-4.04/android/nagup.in0000755000175000017500000000045212300736712012736 00000000000000#!/bin/bash echo rsync bin/Tucnak-@VERSION@.apk rsync://ok1zia@nagano.cz/ok1zia/pub/tucnak/a set | grep RSYNC_PASSWORD rm -f bin/Tucnak.apk ln -s Tucnak-@VERSION@.apk bin/Tucnak.apk rsync -av --partial --progress bin/Tucnak-@VERSION@.apk bin/Tucnak.apk rsync://ok1zia@nagano.cz/ok1zia/pub/tucnak/a tucnak-4.04/android/tucnak-package0000755000175000017500000000225712561151303014076 00000000000000#!/bin/bash set -e set -x tmp=`dirname $0` ANDROID=`readlink -f $tmp` rm -f $ANDROID/libs/armeabi/* cp ~/c/libsdl/project/libs/armeabi/libsdl-1.2.so $ANDROID/libs/armeabi cp ~/c/libsdl/project/libs/armeabi/libsdl_main.so $ANDROID/libs/armeabi cp ~/c/glib/obj/local/armeabi/libglib-2.0.so $ANDROID/libs/armeabi cp ~/c/glib/obj/local/armeabi/libgthread-2.0.so $ANDROID/libs/armeabi cp ~/c/libiconv/libs/armeabi/libiconv.so $ANDROID/libs/armeabi cp ~/c/libpng14/libs/armeabi/libpngfkk.so $ANDROID/libs/armeabi cp ~/c/hamlib/libs/armeabi/libhamlib.so $ANDROID/libs/armeabi cp ~/c/hamlib/libs/armeabi/libhamlib-dummy.so $ANDROID/libs/armeabi #cp ~/c/libsndfile/libs/armeabi/*.so $ANDROID/libs/armeabi cp ~/c/libusb/libs/armeabi/*.so $ANDROID/libs/armeabi cp ~/c/libftdi/libs/armeabi/*.so $ANDROID/libs/armeabi #cp ~/c/libportaudio/libs/armeabi/libportaudio.so $ANDROID/libs/armeabi cp ~/c/libzia/src/obj/local/armeabi/libzia.so $ANDROID/libs/armeabi cp ~/c/tucnak/android/obj/local/armeabi/libapplication.so $ANDROID/libs/armeabi cd $ANDROID if [ -n "$1" ]; then ant release cp bin/Tucnak-release.apk bin/Tucnak-4.04.apk else ant debug cp bin/Tucnak-debug.apk bin/Tucnak-4.04.apk fi tucnak-4.04/android/AndroidManifest.xml.in0000644000175000017500000000351512367505332015477 00000000000000 tucnak-4.04/android/src/0000755000175000017500000000000012561153000012127 500000000000000tucnak-4.04/android/src/DataDownloader.java0000644000175000017500000005107212053665552015627 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.MotionEvent; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.os.Environment; import android.widget.TextView; import org.apache.http.client.methods.*; import org.apache.http.*; import org.apache.http.params.BasicHttpParams; import org.apache.http.conn.*; import org.apache.http.conn.params.*; import org.apache.http.conn.scheme.*; import org.apache.http.conn.ssl.*; import org.apache.http.impl.*; import org.apache.http.impl.client.*; import org.apache.http.impl.conn.SingleClientConnManager; import java.security.cert.*; import java.security.SecureRandom; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import java.util.zip.*; import java.io.*; import android.util.Log; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context; import android.content.res.Resources; import java.lang.String; import android.text.SpannedString; class CountingInputStream extends BufferedInputStream { private long bytesReadMark = 0; private long bytesRead = 0; public CountingInputStream(InputStream in, int size) { super(in, size); } public CountingInputStream(InputStream in) { super(in); } public long getBytesRead() { return bytesRead; } public synchronized int read() throws IOException { int read = super.read(); if (read >= 0) { bytesRead++; } return read; } public synchronized int read(byte[] b, int off, int len) throws IOException { int read = super.read(b, off, len); if (read >= 0) { bytesRead += read; } return read; } public synchronized long skip(long n) throws IOException { long skipped = super.skip(n); if (skipped >= 0) { bytesRead += skipped; } return skipped; } public synchronized void mark(int readlimit) { super.mark(readlimit); bytesReadMark = bytesRead; } public synchronized void reset() throws IOException { super.reset(); bytesRead = bytesReadMark; } } class DataDownloader extends Thread { public static final String DOWNLOAD_FLAG_FILENAME = "libsdl-DownloadFinished-"; class StatusWriter { private TextView Status; private MainActivity Parent; private SpannedString oldText = new SpannedString(""); public StatusWriter( TextView _Status, MainActivity _Parent ) { Status = _Status; Parent = _Parent; } public void setParent( TextView _Status, MainActivity _Parent ) { synchronized(DataDownloader.this) { Status = _Status; Parent = _Parent; setText( oldText.toString() ); } } public void setText(final String str) { class Callback implements Runnable { public TextView Status; public SpannedString text; public void run() { Status.setText(text); } } synchronized(DataDownloader.this) { Callback cb = new Callback(); oldText = new SpannedString(str); cb.text = new SpannedString(str); cb.Status = Status; if( Parent != null && Status != null ) Parent.runOnUiThread(cb); } } } public DataDownloader( MainActivity _Parent, TextView _Status ) { Parent = _Parent; Status = new StatusWriter( _Status, _Parent ); //Status.setText( "Connecting to " + Globals.DataDownloadUrl ); outFilesDir = Globals.DataDir; DownloadComplete = false; this.start(); } public void setStatusField(TextView _Status) { synchronized(this) { Status.setParent( _Status, Parent ); } } @Override public void run() { /* String [] downloadFiles = Globals.DataDownloadUrl.split("\\^"); int total = 0; int count = 0; for( int i = 0; i < downloadFiles.length; i++ ) { if( downloadFiles[i].length() > 0 && ( Globals.OptionalDataDownload.length > i && Globals.OptionalDataDownload[i] ) || ( Globals.OptionalDataDownload.length <= i && downloadFiles[i].indexOf("!") == 0 ) ) total += 1; } for( int i = 0; i < downloadFiles.length; i++ ) { if( downloadFiles[i].length() > 0 && ( Globals.OptionalDataDownload.length > i && Globals.OptionalDataDownload[i] ) || ( Globals.OptionalDataDownload.length <= i && downloadFiles[i].indexOf("!") == 0 ) ) { if( ! DownloadDataFile(downloadFiles[i], DOWNLOAD_FLAG_FILENAME + String.valueOf(i) + ".flag", count+1, total) ) { DownloadFailed = true; return; } count += 1; } } */ DownloadComplete = true; initParent(); } public boolean DownloadDataFile(final String DataDownloadUrl, final String DownloadFlagFileName, int downloadCount, int downloadTotal) { Resources res = Parent.getResources(); String [] downloadUrls = DataDownloadUrl.split("[|]"); if( downloadUrls.length < 2 ) { System.out.println("Error: download string invalid: '" + DataDownloadUrl + "', your AndroidAppSettigns.cfg is broken"); Status.setText( res.getString(R.string.error_dl_from, DataDownloadUrl) ); return false; } boolean forceOverwrite = false; String path = getOutFilePath(DownloadFlagFileName); InputStream checkFile = null; try { checkFile = new FileInputStream( path ); } catch( FileNotFoundException e ) { } catch( SecurityException e ) { }; if( checkFile != null ) { try { byte b[] = new byte[ Globals.DataDownloadUrl.getBytes("UTF-8").length + 1 ]; int readed = checkFile.read(b); String compare = ""; if( readed > 0 ) compare = new String( b, 0, readed, "UTF-8" ); boolean matched = false; //System.out.println("Read URL: '" + compare + "'"); for( int i = 1; i < downloadUrls.length; i++ ) { //System.out.println("Comparing: '" + downloadUrls[i] + "'"); if( compare.compareTo(downloadUrls[i]) == 0 ) matched = true; } //System.out.println("Matched: " + String.valueOf(matched)); if( ! matched ) throw new IOException(); Status.setText( res.getString(R.string.download_unneeded) ); return true; } catch ( IOException e ) { forceOverwrite = true; new File(path).delete(); } } checkFile = null; // Create output directory (not necessary for phone storage) System.out.println("Downloading data to: '" + outFilesDir + "'"); try { File outDir = new File( outFilesDir ); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); OutputStream out = new FileOutputStream( getOutFilePath(".nomedia") ); out.flush(); out.close(); } catch( SecurityException e ) {} catch( FileNotFoundException e ) {} catch( IOException e ) {}; HttpResponse response = null, responseError = null; HttpGet request; long totalLen = 0; CountingInputStream stream; byte[] buf = new byte[16384]; boolean DoNotUnzip = false; boolean FileInAssets = false; String url = ""; long partialDownloadLen = 0; int downloadUrlIndex = 1; while( downloadUrlIndex < downloadUrls.length ) { System.out.println("Processing download " + downloadUrls[downloadUrlIndex]); url = new String(downloadUrls[downloadUrlIndex]); DoNotUnzip = false; if(url.indexOf(":") == 0) { path = getOutFilePath(url.substring( 1, url.indexOf(":", 1) )); url = url.substring( url.indexOf(":", 1) + 1 ); DoNotUnzip = true; File partialDownload = new File( path ); if( partialDownload.exists() && !partialDownload.isDirectory() && !forceOverwrite ) partialDownloadLen = partialDownload.length(); } Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.connecting_to, url) ); if( url.indexOf("http://") == -1 && url.indexOf("https://") == -1 ) // File inside assets { InputStream stream1 = null; try { stream1 = Parent.getAssets().open(url); stream1.close(); } catch( Exception e ) { try { stream1 = Parent.getAssets().open(url + "00"); stream1.close(); } catch( Exception ee ) { System.out.println("Failed to open file in assets: " + url); downloadUrlIndex++; continue; } } FileInAssets = true; System.out.println("Fetching file from assets: " + url); break; } else { System.out.println("Connecting to: " + url); request = new HttpGet(url); request.addHeader("Accept", "*/*"); if( partialDownloadLen > 0 ) request.addHeader("Range", "bytes=" + partialDownloadLen + "-"); try { DefaultHttpClient client = HttpWithDisabledSslCertCheck(); client.getParams().setBooleanParameter("http.protocol.handle-redirects", true); response = client.execute(request); } catch (IOException e) { System.out.println("Failed to connect to " + url); downloadUrlIndex++; }; if( response != null ) { if( response.getStatusLine().getStatusCode() != 200 && response.getStatusLine().getStatusCode() != 206 ) { System.out.println("Failed to connect to " + url + " with error " + response.getStatusLine().getStatusCode() + " " + response.getStatusLine().getReasonPhrase()); responseError = response; response = null; downloadUrlIndex++; } else break; } } } if( FileInAssets ) { int multipartCounter = 0; InputStream multipart = null; while( true ) { try { // Make string ".zip00", ".zip01" etc for multipart archives String url1 = url + String.format("%02d", multipartCounter); CountingInputStream stream1 = new CountingInputStream(Parent.getAssets().open(url1), 8192); while( stream1.skip(65536) > 0 ) { }; totalLen += stream1.getBytesRead(); stream1.close(); InputStream s = Parent.getAssets().open(url1); if( multipart == null ) multipart = s; else multipart = new SequenceInputStream(multipart, s); System.out.println("Multipart archive found: " + url1); } catch( IOException e ) { break; } multipartCounter += 1; } if( multipart != null ) stream = new CountingInputStream(multipart, 8192); else { try { stream = new CountingInputStream(Parent.getAssets().open(url), 8192); while( stream.skip(65536) > 0 ) { }; totalLen += stream.getBytesRead(); stream.close(); stream = new CountingInputStream(Parent.getAssets().open(url), 8192); } catch( IOException e ) { System.out.println("Unpacking from assets '" + url + "' - error: " + e.toString()); Status.setText( res.getString(R.string.error_dl_from, url) ); return false; } } } else { if( response == null ) { System.out.println("Error connecting to " + url); Status.setText( res.getString(R.string.failed_connecting_to, url) + (responseError == null ? "" : ": " + responseError.getStatusLine().getStatusCode() + " " + responseError.getStatusLine().getReasonPhrase()) ); return false; } Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.dl_from, url) ); totalLen = response.getEntity().getContentLength(); try { stream = new CountingInputStream(response.getEntity().getContent(), 8192); } catch( java.io.IOException e ) { Status.setText( res.getString(R.string.error_dl_from, url) ); return false; } } if(DoNotUnzip) { System.out.println("Saving file '" + path + "'"); OutputStream out = null; try { try { File outDir = new File( path.substring(0, path.lastIndexOf("/") )); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); } catch( SecurityException e ) { }; if( partialDownloadLen > 0 ) { try { Header[] range = response.getHeaders("Content-Range"); if( range.length > 0 && range[0].getValue().indexOf("bytes") == 0 ) { //System.out.println("Resuming download of file '" + path + "': Content-Range: " + range[0].getValue()); String[] skippedBytes = range[0].getValue().split("/")[0].split("-")[0].split(" "); if( skippedBytes.length >= 2 && Long.parseLong(skippedBytes[1]) == partialDownloadLen ) { out = new FileOutputStream( path, true ); System.out.println("Resuming download of file '" + path + "' at pos " + partialDownloadLen); } } } catch (Exception e) { } } if( out == null ) { out = new FileOutputStream( path ); partialDownloadLen = 0; } } catch( FileNotFoundException e ) { System.out.println("Saving file '" + path + "' - error creating output file: " + e.toString()); } catch( SecurityException e ) { System.out.println("Saving file '" + path + "' - error creating output file: " + e.toString()); }; if( out == null ) { Status.setText( res.getString(R.string.error_write, path) ); System.out.println("Saving file '" + path + "' - error creating output file"); return false; } try { int len = stream.read(buf); while (len >= 0) { if(len > 0) out.write(buf, 0, len); len = stream.read(buf); float percent = 0.0f; if( totalLen > 0 ) percent = (stream.getBytesRead() + partialDownloadLen) * 100.0f / (totalLen + partialDownloadLen); Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.dl_progress, percent, path) ); } out.flush(); out.close(); out = null; } catch( java.io.IOException e ) { Status.setText( res.getString(R.string.error_write, path) + ": " + e.getMessage() ); System.out.println("Saving file '" + path + "' - error writing: " + e.toString()); return false; } System.out.println("Saving file '" + path + "' done"); } else { System.out.println("Reading from zip file '" + url + "'"); ZipInputStream zip = new ZipInputStream(stream); while(true) { ZipEntry entry = null; try { entry = zip.getNextEntry(); if( entry != null ) System.out.println("Reading from zip file '" + url + "' entry '" + entry.getName() + "'"); } catch( java.io.IOException e ) { Status.setText( res.getString(R.string.error_dl_from, url) ); System.out.println("Error reading from zip file '" + url + "': " + e.toString()); return false; } if( entry == null ) { System.out.println("Reading from zip file '" + url + "' finished"); break; } if( entry.isDirectory() ) { System.out.println("Creating dir '" + getOutFilePath(entry.getName()) + "'"); try { File outDir = new File( getOutFilePath(entry.getName()) ); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); } catch( SecurityException e ) { }; continue; } OutputStream out = null; path = getOutFilePath(entry.getName()); float percent = 0.0f; System.out.println("Saving file '" + path + "'"); try { File outDir = new File( path.substring(0, path.lastIndexOf("/") )); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); } catch( SecurityException e ) { }; try { CheckedInputStream check = new CheckedInputStream( new FileInputStream(path), new CRC32() ); while( check.read(buf, 0, buf.length) >= 0 ) {}; check.close(); if( check.getChecksum().getValue() != entry.getCrc() ) { File ff = new File(path); ff.delete(); throw new Exception(); } System.out.println("File '" + path + "' exists and passed CRC check - not overwriting it"); if( totalLen > 0 ) percent = stream.getBytesRead() * 100.0f / totalLen; Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.dl_progress, percent, path) ); continue; } catch( Exception e ) { } try { out = new FileOutputStream( path ); } catch( FileNotFoundException e ) { System.out.println("Saving file '" + path + "' - cannot create file: " + e.toString()); } catch( SecurityException e ) { System.out.println("Saving file '" + path + "' - cannot create file: " + e.toString()); }; if( out == null ) { Status.setText( res.getString(R.string.error_write, path) ); System.out.println("Saving file '" + path + "' - cannot create file"); return false; } if( totalLen > 0 ) percent = stream.getBytesRead() * 100.0f / totalLen; Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.dl_progress, percent, path) ); try { int len = zip.read(buf); while (len >= 0) { if(len > 0) out.write(buf, 0, len); len = zip.read(buf); percent = 0.0f; if( totalLen > 0 ) percent = stream.getBytesRead() * 100.0f / totalLen; Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.dl_progress, percent, path) ); } out.flush(); out.close(); out = null; } catch( java.io.IOException e ) { Status.setText( res.getString(R.string.error_write, path) + ": " + e.getMessage() ); System.out.println("Saving file '" + path + "' - error writing or downloading: " + e.toString()); return false; } try { long count = 0, ret = 0; CheckedInputStream check = new CheckedInputStream( new FileInputStream(path), new CRC32() ); while( ret >= 0 ) { count += ret; ret = check.read(buf, 0, buf.length); } check.close(); if( check.getChecksum().getValue() != entry.getCrc() || count != entry.getSize() ) { File ff = new File(path); ff.delete(); System.out.println("Saving file '" + path + "' - CRC check failed, ZIP: " + String.format("%x", entry.getCrc()) + " actual file: " + String.format("%x", check.getChecksum().getValue()) + " file size in ZIP: " + entry.getSize() + " actual size " + count ); throw new Exception(); } } catch( Exception e ) { Status.setText( res.getString(R.string.error_write, path) + ": " + e.getMessage() ); return false; } System.out.println("Saving file '" + path + "' done"); } }; OutputStream out = null; path = getOutFilePath(DownloadFlagFileName); try { out = new FileOutputStream( path ); out.write(downloadUrls[downloadUrlIndex].getBytes("UTF-8")); out.flush(); out.close(); } catch( FileNotFoundException e ) { } catch( SecurityException e ) { } catch( java.io.IOException e ) { Status.setText( res.getString(R.string.error_write, path) + ": " + e.getMessage() ); return false; }; Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.dl_finished) ); try { stream.close(); } catch( java.io.IOException e ) { }; return true; }; private void initParent() { class Callback implements Runnable { public MainActivity Parent; public void run() { Parent.initSDL(); } } Callback cb = new Callback(); synchronized(this) { cb.Parent = Parent; if(Parent != null) Parent.runOnUiThread(cb); } } private String getOutFilePath(final String filename) { return outFilesDir + "/" + filename; }; private static DefaultHttpClient HttpWithDisabledSslCertCheck() { return new DefaultHttpClient(); // This code does not work /* HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; DefaultHttpClient client = new DefaultHttpClient(); SchemeRegistry registry = new SchemeRegistry(); SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory(); socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier); registry.register(new Scheme("https", socketFactory, 443)); SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry); DefaultHttpClient http = new DefaultHttpClient(mgr, client.getParams()); HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); return http; */ } public StatusWriter Status; public boolean DownloadComplete = false; public boolean DownloadFailed = false; private MainActivity Parent; private String outFilesDir = null; } tucnak-4.04/android/src/GLSurfaceView_SDL.java0000644000175000017500000013360712052426441016103 00000000000000/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* This is GLSurfaceView class ripped out of Android 2.1 sources, fixed with a hammer to work with libSDL port */ package cz.nagano.tucnak; import java.io.Writer; import java.util.ArrayList; import java.util.concurrent.Semaphore; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGL11; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.egl.EGLSurface; import javax.microedition.khronos.opengles.GL; import javax.microedition.khronos.opengles.GL10; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; /** * An implementation of SurfaceView that uses the dedicated surface for * displaying OpenGL rendering. *

* A GLSurfaceView provides the following features: *

*

    *
  • Manages a surface, which is a special piece of memory that can be * composited into the Android view system. *
  • Manages an EGL display, which enables OpenGL to render into a surface. *
  • Accepts a user-provided Renderer object that does the actual rendering. *
  • Renders on a dedicated thread to decouple rendering performance from the * UI thread. *
  • Supports both on-demand and continuous rendering. *
  • Optionally wraps, traces, and/or error-checks the renderer's OpenGL calls. *
* *

Using GLSurfaceView

*

* Typically you use GLSurfaceView by subclassing it and overriding one or more of the * View system input event methods. If your application does not need to override event * methods then GLSurfaceView can be used as-is. For the most part * GLSurfaceView behavior is customized by calling "set" methods rather than by subclassing. * For example, unlike a regular View, drawing is delegated to a separate Renderer object which * is registered with the GLSurfaceView * using the {@link #setRenderer(Renderer)} call. *

*

Initializing GLSurfaceView

* All you have to do to initialize a GLSurfaceView is call {@link #setRenderer(Renderer)}. * However, if desired, you can modify the default behavior of GLSurfaceView by calling one or * more of these methods before calling setRenderer: *
    *
  • {@link #setDebugFlags(int)} *
  • {@link #setEGLConfigChooser(boolean)} *
  • {@link #setEGLConfigChooser(EGLConfigChooser)} *
  • {@link #setEGLConfigChooser(int, int, int, int, int, int)} *
  • {@link #setGLWrapper(GLWrapper)} *
*

*

Choosing an EGL Configuration

* A given Android device may support multiple possible types of drawing surfaces. * The available surfaces may differ in how may channels of data are present, as * well as how many bits are allocated to each channel. Therefore, the first thing * GLSurfaceView has to do when starting to render is choose what type of surface to use. *

* By default GLSurfaceView chooses an available surface that's closest to a 16-bit R5G6B5 surface * with a 16-bit depth buffer and no stencil. If you would prefer a different surface (for example, * if you do not need a depth buffer) you can override the default behavior by calling one of the * setEGLConfigChooser methods. *

*

Debug Behavior

* You can optionally modify the behavior of GLSurfaceView by calling * one or more of the debugging methods {@link #setDebugFlags(int)}, * and {@link #setGLWrapper}. These methods may be called before and/or after setRenderer, but * typically they are called before setRenderer so that they take effect immediately. *

*

Setting a Renderer

* Finally, you must call {@link #setRenderer} to register a {@link Renderer}. * The renderer is * responsible for doing the actual OpenGL rendering. *

*

Rendering Mode

* Once the renderer is set, you can control whether the renderer draws * continuously or on-demand by calling * {@link #setRenderMode}. The default is continuous rendering. *

*

Activity Life-cycle

* A GLSurfaceView must be notified when the activity is paused and resumed. GLSurfaceView clients * are required to call {@link #onPause()} when the activity pauses and * {@link #onResume()} when the activity resumes. These calls allow GLSurfaceView to * pause and resume the rendering thread, and also allow GLSurfaceView to release and recreate * the OpenGL display. *

*

Handling events

*

* To handle an event you will typically subclass GLSurfaceView and override the * appropriate method, just as you would with any other View. However, when handling * the event, you may need to communicate with the Renderer object * that's running in the rendering thread. You can do this using any * standard Java cross-thread communication mechanism. In addition, * one relatively easy way to communicate with your renderer is * to call * {@link #queueEvent(Runnable)}. For example: *

 * class MyGLSurfaceView extends GLSurfaceView {
 *
 *     private MyRenderer mMyRenderer;
 *
 *     public void start() {
 *         mMyRenderer = ...;
 *         setRenderer(mMyRenderer);
 *     }
 *
 *     public boolean onKeyDown(int keyCode, KeyEvent event) {
 *         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
 *             queueEvent(new Runnable() {
 *                 // This method will be called on the rendering
 *                 // thread:
 *                 public void run() {
 *                     mMyRenderer.handleDpadCenter();
 *                 }});
 *             return true;
 *         }
 *         return super.onKeyDown(keyCode, event);
 *     }
 * }
 * 
* */ public class GLSurfaceView_SDL extends SurfaceView implements SurfaceHolder.Callback { /** * The renderer only renders * when the surface is created, or when {@link #requestRender} is called. * * @see #getRenderMode() * @see #setRenderMode(int) */ public final static int RENDERMODE_WHEN_DIRTY = 0; /** * The renderer is called * continuously to re-render the scene. * * @see #getRenderMode() * @see #setRenderMode(int) * @see #requestRender() */ public final static int RENDERMODE_CONTINUOUSLY = 1; /** * Check glError() after every GL call and throw an exception if glError indicates * that an error has occurred. This can be used to help track down which OpenGL ES call * is causing an error. * * @see #getDebugFlags * @see #setDebugFlags */ public final static int DEBUG_CHECK_GL_ERROR = 1; /** * Log GL calls to the system log at "verbose" level with tag "GLSurfaceView". * * @see #getDebugFlags * @see #setDebugFlags */ public final static int DEBUG_LOG_GL_CALLS = 2; /** * Standard View constructor. In order to render something, you * must call {@link #setRenderer} to register a renderer. */ public GLSurfaceView_SDL(Context context) { super(context); init(); } /** * Standard View constructor. In order to render something, you * must call {@link #setRenderer} to register a renderer. */ public GLSurfaceView_SDL(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init() { // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed SurfaceHolder holder = getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_GPU); } /** * Set the glWrapper. If the glWrapper is not null, its * {@link GLWrapper#wrap(GL)} method is called * whenever a surface is created. A GLWrapper can be used to wrap * the GL object that's passed to the renderer. Wrapping a GL * object enables examining and modifying the behavior of the * GL calls made by the renderer. *

* Wrapping is typically used for debugging purposes. *

* The default value is null. * @param glWrapper the new GLWrapper */ public void setGLWrapper(GLWrapper glWrapper) { mGLWrapper = glWrapper; } /** * Set the debug flags to a new value. The value is * constructed by OR-together zero or more * of the DEBUG_CHECK_* constants. The debug flags take effect * whenever a surface is created. The default value is zero. * @param debugFlags the new debug flags * @see #DEBUG_CHECK_GL_ERROR * @see #DEBUG_LOG_GL_CALLS */ public void setDebugFlags(int debugFlags) { mDebugFlags = debugFlags; } /** * Get the current value of the debug flags. * @return the current value of the debug flags. */ public int getDebugFlags() { return mDebugFlags; } /** * Set the renderer associated with this view. Also starts the thread that * will call the renderer, which in turn causes the rendering to start. *

This method should be called once and only once in the life-cycle of * a GLSurfaceView. *

The following GLSurfaceView methods can only be called before * setRenderer is called: *

    *
  • {@link #setEGLConfigChooser(boolean)} *
  • {@link #setEGLConfigChooser(EGLConfigChooser)} *
  • {@link #setEGLConfigChooser(int, int, int, int, int, int)} *
*

* The following GLSurfaceView methods can only be called after * setRenderer is called: *

    *
  • {@link #getRenderMode()} *
  • {@link #onPause()} *
  • {@link #onResume()} *
  • {@link #queueEvent(Runnable)} *
  • {@link #requestRender()} *
  • {@link #setRenderMode(int)} *
* * @param renderer the renderer to use to perform OpenGL drawing. */ public void setRenderer(Renderer renderer) { if (mGLThread != null) { throw new IllegalStateException( "setRenderer has already been called for this instance."); } if (mEGLConfigChooser == null) { mEGLConfigChooser = getEglConfigChooser(16, false, false, false); } mGLThread = new GLThread(renderer); mGLThread.start(); } /** * Install a custom EGLConfigChooser. *

If this method is * called, it must be called before {@link #setRenderer(Renderer)} * is called. *

* If no setEGLConfigChooser method is called, then by default the * view will choose a config as close to 16-bit RGB as possible, with * a depth buffer as close to 16 bits as possible. * @param configChooser */ public void setEGLConfigChooser(EGLConfigChooser configChooser) { if (mGLThread != null) { throw new IllegalStateException( "setRenderer has already been called for this instance."); } mEGLConfigChooser = configChooser; } /** * Install a config chooser which will choose a config * as close to 16-bit RGB as possible, with or without an optional depth * buffer as close to 16-bits as possible. *

If this method is * called, it must be called before {@link #setRenderer(Renderer)} * is called. *

* If no setEGLConfigChooser method is called, then by default the * view will choose a config as close to 16-bit RGB as possible, with * a depth buffer as close to 16 bits as possible. * * @param needDepth */ public void setEGLConfigChooser(int bpp, boolean needDepth, boolean stencil, boolean gles2) { setEGLConfigChooser(getEglConfigChooser(bpp, needDepth, stencil, gles2)); } /** * Install a config chooser which will choose a config * with at least the specified component sizes, and as close * to the specified component sizes as possible. *

If this method is * called, it must be called before {@link #setRenderer(Renderer)} * is called. *

* If no setEGLConfigChooser method is called, then by default the * view will choose a config as close to 16-bit RGB as possible, with * a depth buffer as close to 16 bits as possible. * */ public void setEGLConfigChooser(int redSize, int greenSize, int blueSize, int alphaSize, int depthSize, int stencilSize, boolean gles2) { setEGLConfigChooser(new ComponentSizeChooser(redSize, greenSize, blueSize, alphaSize, depthSize, stencilSize, gles2)); } /** * Set the rendering mode. When renderMode is * RENDERMODE_CONTINUOUSLY, the renderer is called * repeatedly to re-render the scene. When renderMode * is RENDERMODE_WHEN_DIRTY, the renderer only rendered when the surface * is created, or when {@link #requestRender} is called. Defaults to RENDERMODE_CONTINUOUSLY. *

* Using RENDERMODE_WHEN_DIRTY can improve battery life and overall system performance * by allowing the GPU and CPU to idle when the view does not need to be updated. *

* This method can only be called after {@link #setRenderer(Renderer)} * * @param renderMode one of the RENDERMODE_X constants * @see #RENDERMODE_CONTINUOUSLY * @see #RENDERMODE_WHEN_DIRTY */ public void setRenderMode(int renderMode) { mGLThread.setRenderMode(renderMode); } /** * Get the current rendering mode. May be called * from any thread. Must not be called before a renderer has been set. * @return the current rendering mode. * @see #RENDERMODE_CONTINUOUSLY * @see #RENDERMODE_WHEN_DIRTY */ public int getRenderMode() { return mGLThread.getRenderMode(); } /** * Request that the renderer render a frame. * This method is typically used when the render mode has been set to * {@link #RENDERMODE_WHEN_DIRTY}, so that frames are only rendered on demand. * May be called * from any thread. Must not be called before a renderer has been set. */ public void requestRender() { mGLThread.requestRender(); } /** * This method is part of the SurfaceHolder.Callback interface, and is * not normally called or subclassed by clients of GLSurfaceView. */ public void surfaceCreated(SurfaceHolder holder) { mGLThread.surfaceCreated(); } /** * This method is part of the SurfaceHolder.Callback interface, and is * not normally called or subclassed by clients of GLSurfaceView. */ public void surfaceDestroyed(SurfaceHolder holder) { // Surface will be destroyed when we return mGLThread.surfaceDestroyed(); } /** * This method is part of the SurfaceHolder.Callback interface, and is * not normally called or subclassed by clients of GLSurfaceView. */ public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { mGLThread.onWindowResize(w, h); } /** * Inform the view that the activity is paused. The owner of this view must * call this method when the activity is paused. Calling this method will * pause the rendering thread. * Must not be called before a renderer has been set. */ public void onPause() { mGLThread.onPause(); } /** * Inform the view that the activity is resumed. The owner of this view must * call this method when the activity is resumed. Calling this method will * recreate the OpenGL display and resume the rendering * thread. * Must not be called before a renderer has been set. */ public void onResume() { mGLThread.onResume(); } /** * Queue a runnable to be run on the GL rendering thread. This can be used * to communicate with the Renderer on the rendering thread. * Must not be called before a renderer has been set. * @param r the runnable to be run on the GL rendering thread. */ public void queueEvent(Runnable r) { mGLThread.queueEvent(r); } /** * This method is used as part of the View class and is not normally * called or subclassed by clients of GLSurfaceView. * Must not be called before a renderer has been set. */ @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mGLThread.requestExitAndWait(); } // ---------------------------------------------------------------------- /** * An interface used to wrap a GL interface. *

Typically * used for implementing debugging and tracing on top of the default * GL interface. You would typically use this by creating your own class * that implemented all the GL methods by delegating to another GL instance. * Then you could add your own behavior before or after calling the * delegate. All the GLWrapper would do was instantiate and return the * wrapper GL instance: *

     * class MyGLWrapper implements GLWrapper {
     *     GL wrap(GL gl) {
     *         return new MyGLImplementation(gl);
     *     }
     *     static class MyGLImplementation implements GL,GL10,GL11,... {
     *         ...
     *     }
     * }
     * 
* @see #setGLWrapper(GLWrapper) */ public interface GLWrapper { /** * Wraps a gl interface in another gl interface. * @param gl a GL interface that is to be wrapped. * @return either the input argument or another GL object that wraps the input argument. */ GL wrap(GL gl); } /** * A generic renderer interface. *

* The renderer is responsible for making OpenGL calls to render a frame. *

* GLSurfaceView clients typically create their own classes that implement * this interface, and then call {@link GLSurfaceView#setRenderer} to * register the renderer with the GLSurfaceView. *

*

Threading

* The renderer will be called on a separate thread, so that rendering * performance is decoupled from the UI thread. Clients typically need to * communicate with the renderer from the UI thread, because that's where * input events are received. Clients can communicate using any of the * standard Java techniques for cross-thread communication, or they can * use the {@link GLSurfaceView#queueEvent(Runnable)} convenience method. *

*

EGL Context Lost

* There are situations where the EGL rendering context will be lost. This * typically happens when device wakes up after going to sleep. When * the EGL context is lost, all OpenGL resources (such as textures) that are * associated with that context will be automatically deleted. In order to * keep rendering correctly, a renderer must recreate any lost resources * that it still needs. The {@link #onSurfaceCreated(GL10, EGLConfig)} method * is a convenient place to do this. * * * @see #setRenderer(Renderer) */ public static interface SwapBuffersCallback { public boolean SwapBuffers(); } public static abstract class Renderer { /** * Called when the surface is created or recreated. *

* Called when the rendering thread * starts and whenever the EGL context is lost. The context will typically * be lost when the Android device awakes after going to sleep. *

* Since this method is called at the beginning of rendering, as well as * every time the EGL context is lost, this method is a convenient place to put * code to create resources that need to be created when the rendering * starts, and that need to be recreated when the EGL context is lost. * Textures are an example of a resource that you might want to create * here. *

* Note that when the EGL context is lost, all OpenGL resources associated * with that context will be automatically deleted. You do not need to call * the corresponding "glDelete" methods such as glDeleteTextures to * manually delete these lost resources. *

* @param gl the GL interface. Use instanceof to * test if the interface supports GL11 or higher interfaces. * @param config the EGLConfig of the created surface. Can be used * to create matching pbuffers. */ public abstract void onSurfaceCreated(GL10 gl, EGLConfig config); public abstract void onSurfaceDestroyed(); /** * Called when the surface changed size. *

* Called after the surface is created and whenever * the OpenGL ES surface size changes. *

* Typically you will set your viewport here. If your camera * is fixed then you could also set your projection matrix here: *

         * void onSurfaceChanged(GL10 gl, int width, int height) {
         *     gl.glViewport(0, 0, width, height);
         *     // for a fixed camera, set the projection too
         *     float ratio = (float) width / height;
         *     gl.glMatrixMode(GL10.GL_PROJECTION);
         *     gl.glLoadIdentity();
         *     gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
         * }
         * 
* @param gl the GL interface. Use instanceof to * test if the interface supports GL11 or higher interfaces. * @param width * @param height */ public abstract void onSurfaceChanged(GL10 gl, int width, int height); /** * Called to draw the current frame. *

* This method is responsible for drawing the current frame. *

* The implementation of this method typically looks like this: *

         * void onDrawFrame(GL10 gl) {
         *     gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
         *     //... other gl calls to render the scene ...
         * }
         * 
* @param gl the GL interface. Use instanceof to * test if the interface supports GL11 or higher interfaces. */ public abstract void onDrawFrame(GL10 gl); public boolean SwapBuffers() { if( mSwapBuffersCallback != null ) return mSwapBuffersCallback.SwapBuffers(); return false; } public void setSwapBuffersCallback( SwapBuffersCallback c ) { mSwapBuffersCallback = c; } private SwapBuffersCallback mSwapBuffersCallback = null; } /** * An interface for choosing an EGLConfig configuration from a list of * potential configurations. *

* This interface must be implemented by clients wishing to call * {@link GLSurfaceView#setEGLConfigChooser(EGLConfigChooser)} */ public interface EGLConfigChooser { /** * Choose a configuration from the list. Implementors typically * implement this method by calling * {@link EGL10#eglChooseConfig} and iterating through the results. Please consult the * EGL specification available from The Khronos Group to learn how to call eglChooseConfig. * @param egl the EGL10 for the current display. * @param display the current display. * @return the chosen configuration. */ EGLConfig chooseConfig(EGL10 egl, EGLDisplay display); public boolean isGles2Required(); } private static abstract class BaseConfigChooser implements EGLConfigChooser { public BaseConfigChooser(int[] configSpec) { mConfigSpec = configSpec; } public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { int[] num_config = new int[1]; egl.eglChooseConfig(display, mConfigSpec, null, 0, num_config); int numConfigs = num_config[0]; if (numConfigs <= 0) { throw new IllegalArgumentException( "No configs match configSpec"); } EGLConfig[] configs = new EGLConfig[numConfigs]; egl.eglChooseConfig(display, mConfigSpec, configs, numConfigs, num_config); EGLConfig config = chooseConfig(egl, display, configs); if (config == null) { throw new IllegalArgumentException("No config chosen"); } return config; } abstract EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, EGLConfig[] configs); protected int[] mConfigSpec; } private static class ComponentSizeChooser extends BaseConfigChooser { public ComponentSizeChooser(int redSize, int greenSize, int blueSize, int alphaSize, int depthSize, int stencilSize, boolean isGles2) { super(new int[] {EGL10.EGL_NONE}); // Get all possible configs mValue = new int[1]; mRedSize = redSize; mGreenSize = greenSize; mBlueSize = blueSize; mAlphaSize = alphaSize; mDepthSize = depthSize; mStencilSize = stencilSize; mIsGles2 = isGles2; } @Override public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, EGLConfig[] configs) { EGLConfig closestConfig = null; int closestDistance = 1000; String cfglog = ""; int idx = 0; int selectidx = -1; for(EGLConfig config : configs) { if ( config == null ) continue; int r = findConfigAttrib(egl, display, config, EGL10.EGL_RED_SIZE, 0); int g = findConfigAttrib(egl, display, config, EGL10.EGL_GREEN_SIZE, 0); int b = findConfigAttrib(egl, display, config, EGL10.EGL_BLUE_SIZE, 0); int a = findConfigAttrib(egl, display, config, EGL10.EGL_ALPHA_SIZE, 0); int d = findConfigAttrib(egl, display, config, EGL10.EGL_DEPTH_SIZE, 0); int s = findConfigAttrib(egl, display, config, EGL10.EGL_STENCIL_SIZE, 0); int rendertype = findConfigAttrib(egl, display, config, EGL10.EGL_RENDERABLE_TYPE, 0); int desiredtype = mIsGles2 ? EGL_OPENGL_ES2_BIT : EGL_OPENGL_ES_BIT; int nativeRender = findConfigAttrib(egl, display, config, EGL10.EGL_NATIVE_RENDERABLE, 0); int caveat = findConfigAttrib(egl, display, config, EGL10.EGL_CONFIG_CAVEAT, EGL10.EGL_NONE); int distance = Math.abs(r - mRedSize) + Math.abs(g - mGreenSize) + Math.abs(b - mBlueSize) + Math.abs(a - mAlphaSize); if( (d > 0) != (mDepthSize > 0) ) distance += (d > 0) ? 5 : 1; // Small penalty if we don't need zbuffer but it is present if( (s > 0) == (mStencilSize > 0) ) distance += (s > 0) ? 5 : 1; if( (rendertype & desiredtype) == 0 ) distance += 5; if( caveat == EGL10.EGL_SLOW_CONFIG ) distance += 4; if( caveat == EGL10.EGL_NON_CONFORMANT_CONFIG ) // dunno what that means, probably R and B channels swapped distance += 1; String cfgcur = "R" + r + "G" + g + "B" + b + "A" + a + " depth " + d + " stencil " + s + " type " + rendertype + " ("; if((rendertype & EGL_OPENGL_ES_BIT) != 0) cfgcur += "GLES"; if((rendertype & EGL_OPENGL_ES2_BIT) != 0) cfgcur += " GLES2"; if((rendertype & EGL_OPENGL_BIT) != 0) cfgcur += " OPENGL"; if((rendertype & EGL_OPENVG_BIT) != 0) cfgcur += " OPENVG"; cfgcur += ")"; cfgcur += " caveat " + (caveat == EGL10.EGL_NONE ? "none" : (caveat == EGL10.EGL_SLOW_CONFIG ? "SLOW" : caveat == EGL10.EGL_NON_CONFORMANT_CONFIG ? "non-conformant" : String.valueOf(caveat))); cfgcur += " nr " + nativeRender; cfgcur += " pos " + distance; Log.v("SDL", "GL config " + idx + ": " + cfgcur); if (distance < closestDistance) { closestDistance = distance; closestConfig = config; cfglog = new String(cfgcur); selectidx = idx; } idx += 1; } Log.v("SDL", "GLSurfaceView_SDL::EGLConfigChooser::chooseConfig(): selected " + selectidx + ": " + cfglog ); return closestConfig; } private int findConfigAttrib(EGL10 egl, EGLDisplay display, EGLConfig config, int attribute, int defaultValue) { mValue[0] = -1; if (egl.eglGetConfigAttrib(display, config, attribute, mValue)) { return mValue[0]; } Log.w("SDL", "GLSurfaceView_SDL::EGLConfigChooser::findConfigAttrib(): attribute doesn't exist: " + attribute); return defaultValue; } public boolean isGles2Required() { return mIsGles2; } private int[] mValue; // Subclasses can adjust these values: protected int mRedSize; protected int mGreenSize; protected int mBlueSize; protected int mAlphaSize; protected int mDepthSize; protected int mStencilSize; protected boolean mIsGles2 = false; public static final int EGL_OPENGL_ES_BIT = 1; public static final int EGL_OPENVG_BIT = 2; public static final int EGL_OPENGL_ES2_BIT = 4; public static final int EGL_OPENGL_BIT = 8; } /** * This class will choose a supported surface as close to * RGB565 as possible, with or without a depth buffer. * */ private static class SimpleEGLConfigChooser16 extends ComponentSizeChooser { public SimpleEGLConfigChooser16(boolean withDepthBuffer, boolean stencil, boolean gles2) { super(4, 4, 4, 0, withDepthBuffer ? 16 : 0, stencil ? 8 : 0, gles2); // Adjust target values. This way we'll accept a 4444 or // 555 buffer if there's no 565 buffer available. mRedSize = 5; mGreenSize = 6; mBlueSize = 5; } } private static class SimpleEGLConfigChooser24 extends ComponentSizeChooser { public SimpleEGLConfigChooser24(boolean withDepthBuffer, boolean stencil, boolean gles2) { super(8, 8, 8, 0, withDepthBuffer ? 16 : 0, stencil ? 8 : 0, gles2); mRedSize = 8; mGreenSize = 8; mBlueSize = 8; } } private static class SimpleEGLConfigChooser32 extends ComponentSizeChooser { public SimpleEGLConfigChooser32(boolean withDepthBuffer, boolean stencil, boolean gles2) { super(8, 8, 8, 8, withDepthBuffer ? 16 : 0, stencil ? 8 : 0, gles2); mRedSize = 8; mGreenSize = 8; mBlueSize = 8; mAlphaSize = 8; } } private static ComponentSizeChooser getEglConfigChooser(int videoDepthBpp, boolean withDepthBuffer, boolean stencil, boolean gles2) { if(videoDepthBpp == 16) return new SimpleEGLConfigChooser16(withDepthBuffer, stencil, gles2); if(videoDepthBpp == 24) return new SimpleEGLConfigChooser24(withDepthBuffer, stencil, gles2); if(videoDepthBpp == 32) return new SimpleEGLConfigChooser32(withDepthBuffer, stencil, gles2); return null; }; /** * An EGL helper class. */ private class EglHelper { public EglHelper() { } /** * Initialize EGL for a given configuration spec. * @param configSpec */ public void start(){ Log.v("SDL", "GLSurfaceView_SDL::EglHelper::start(): creating GL context"); /* * Get an EGL instance */ mEgl = (EGL10) EGLContext.getEGL(); /* * Get to the default display. */ mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); /* * We can now initialize EGL for that display */ int[] version = new int[2]; mEgl.eglInitialize(mEglDisplay, version); mEglConfig = mEGLConfigChooser.chooseConfig(mEgl, mEglDisplay); if( mEglConfig == null ) Log.e("SDL", "GLSurfaceView_SDL::EglHelper::start(): mEglConfig is NULL"); /* * Create an OpenGL ES context. This must be done only once, an * OpenGL context is a somewhat heavy object. */ final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; final int[] gles2_attrib_list = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; mEglContext = mEgl.eglCreateContext(mEglDisplay, mEglConfig, EGL10.EGL_NO_CONTEXT, mEGLConfigChooser.isGles2Required() ? gles2_attrib_list : null ); if( mEglContext == null || mEglContext == EGL10.EGL_NO_CONTEXT ) Log.e("SDL", "GLSurfaceView_SDL::EglHelper::start(): mEglContext is EGL_NO_CONTEXT, error: " + mEgl.eglGetError()); mEglSurface = null; } /* * React to the creation of a new surface by creating and returning an * OpenGL interface that renders to that surface. */ public GL createSurface(SurfaceHolder holder) { Log.v("SDL", "GLSurfaceView_SDL::EglHelper::createSurface(): creating GL context"); /* * The window size has changed, so we need to create a new * surface. */ if (mEglSurface != null) { /* * Unbind and destroy the old EGL surface, if * there is one. */ mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); mEgl.eglDestroySurface(mEglDisplay, mEglSurface); } /* * Create an EGL surface we can render into. */ mEglSurface = mEgl.eglCreateWindowSurface(mEglDisplay, mEglConfig, holder, null); /* * Before we can issue GL commands, we need to make sure * the context is current and bound to a surface. */ mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext); GL gl = mEglContext.getGL(); if (mGLWrapper != null) { gl = mGLWrapper.wrap(gl); } return gl; } /** * Display the current render surface. * @return false if the context has been lost. */ public boolean swap() { mEgl.eglSwapBuffers(mEglDisplay, mEglSurface); /* * Always check for EGL_CONTEXT_LOST, which means the context * and all associated data were lost (For instance because * the device went to sleep). We need to sleep until we * get a new surface. */ return mEgl.eglGetError() != EGL11.EGL_CONTEXT_LOST; } public void finish() { Log.v("SDL", "GLSurfaceView_SDL::EglHelper::finish(): destroying GL context"); if (mEglSurface != null) { mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); mEgl.eglDestroySurface(mEglDisplay, mEglSurface); mEglSurface = null; } if (mEglContext != null) { mEgl.eglDestroyContext(mEglDisplay, mEglContext); mEglContext = null; } if (mEglDisplay != null) { mEgl.eglTerminate(mEglDisplay); mEglDisplay = null; } } EGL10 mEgl; EGLDisplay mEglDisplay; EGLSurface mEglSurface; EGLConfig mEglConfig; EGLContext mEglContext; } /** * A generic GL Thread. Takes care of initializing EGL and GL. Delegates * to a Renderer instance to do the actual drawing. Can be configured to * render continuously or on request. * */ class GLThread extends Thread implements SwapBuffersCallback { GLThread(Renderer renderer) { super(); mDone = false; mWidth = 0; mHeight = 0; mRequestRender = true; mRenderMode = RENDERMODE_CONTINUOUSLY; mRenderer = renderer; mRenderer.setSwapBuffersCallback(this); setName("GLThread"); } @Override public void run() { /* * When the android framework launches a second instance of * an activity, the new instance's onCreate() method may be * called before the first instance returns from onDestroy(). * * This semaphore ensures that only one instance at a time * accesses EGL. */ try { sEglSemaphore.acquire(); } catch (InterruptedException e) { return; } mEglHelper = new EglHelper(); // mEglHelper.start(); mNeedStart = true; mSizeChanged = true; SwapBuffers(); mRenderer.onDrawFrame(mGL); mEglHelper.finish(); /* synchronized (sGLThreadManager) { stopEglLocked(); } sGLThreadManager.threadExiting(this); */ sEglSemaphore.release(); } public boolean SwapBuffers() { boolean tellRendererSurfaceCreated = false; boolean tellRendererSurfaceChanged = false; /* * This is our main activity thread's loop, we go until * asked to quit. */ /* * Update the asynchronous state (window size) */ while(true) { // Loop until we're re-created GL context and successfully called swap() int w, h; boolean changed = false; synchronized (this) { /* Runnable r; while ((r = getEvent()) != null) { r.run(); } */ if (mPaused) { mRenderer.onSurfaceDestroyed(); mEglHelper.finish(); mNeedStart = true; if( Globals.NonBlockingSwapBuffers ) return false; } while (needToWait()) { //Log.v("SDL", "GLSurfaceView_SDL::run(): paused"); try { wait(500); } catch(Exception e) { } } if (mDone) { return false; } // changed = mSizeChanged; w = mWidth; h = mHeight; mSizeChanged = false; mRequestRender = false; } if (mNeedStart) { mEglHelper.start(); tellRendererSurfaceCreated = true; changed = true; mNeedStart = false; } if (changed) { mGL = (GL10) mEglHelper.createSurface(getHolder()); tellRendererSurfaceChanged = true; } if (tellRendererSurfaceCreated) { mRenderer.onSurfaceCreated(mGL, mEglHelper.mEglConfig); tellRendererSurfaceCreated = false; } if (tellRendererSurfaceChanged) { mRenderer.onSurfaceChanged(mGL, w, h); tellRendererSurfaceChanged = false; } /* * Once we're done with GL, we need to call swapBuffers() * to instruct the system to display the rendered frame */ if( mEglHelper.swap() ) return true; // We've lost GL context - recreate it mRenderer.onSurfaceDestroyed(); mEglHelper.finish(); mNeedStart = true; if( Globals.NonBlockingSwapBuffers ) return false; } } private boolean needToWait() { if (mDone) { return false; } if (mPaused || (! mHasSurface)) { return true; } if ((mWidth > 0) && (mHeight > 0) && (mRequestRender || (mRenderMode == RENDERMODE_CONTINUOUSLY))) { return false; } return true; } public void setRenderMode(int renderMode) { if ( !((RENDERMODE_WHEN_DIRTY <= renderMode) && (renderMode <= RENDERMODE_CONTINUOUSLY)) ) { throw new IllegalArgumentException("renderMode"); } synchronized(this) { mRenderMode = renderMode; if (renderMode == RENDERMODE_CONTINUOUSLY) { notify(); } } } public int getRenderMode() { synchronized(this) { return mRenderMode; } } public void requestRender() { synchronized(this) { mRequestRender = true; notify(); } } public void surfaceCreated() { synchronized(this) { mHasSurface = true; notify(); } } public void surfaceDestroyed() { synchronized(this) { mHasSurface = false; notify(); } } public void onPause() { Log.v("SDL", "GLSurfaceView_SDL::onPause()"); synchronized (this) { mPaused = true; } } public void onResume() { Log.v("SDL", "GLSurfaceView_SDL::onResume()"); synchronized (this) { mPaused = false; notify(); } } public void onWindowResize(int w, int h) { synchronized (this) { mWidth = w; mHeight = h; mSizeChanged = true; notify(); } } public void requestExitAndWait() { // don't call this from GLThread thread or it is a guaranteed // deadlock! synchronized(this) { mDone = true; notify(); } try { join(); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } } /** * Queue an "event" to be run on the GL rendering thread. * @param r the runnable to be run on the GL rendering thread. */ public void queueEvent(Runnable r) { synchronized(this) { mEventQueue.add(r); } } private Runnable getEvent() { synchronized(this) { if (mEventQueue.size() > 0) { return mEventQueue.remove(0); } } return null; } private boolean mDone; private boolean mPaused; private boolean mHasSurface; private int mWidth; private int mHeight; private int mRenderMode; private boolean mRequestRender; private Renderer mRenderer; private ArrayList mEventQueue = new ArrayList(); private EglHelper mEglHelper; private GL10 mGL = null; private boolean mNeedStart = false; } static class LogWriter extends Writer { @Override public void close() { flushBuilder(); } @Override public void flush() { flushBuilder(); } @Override public void write(char[] buf, int offset, int count) { for(int i = 0; i < count; i++) { char c = buf[offset + i]; if ( c == '\n') { flushBuilder(); } else { mBuilder.append(c); } } } private void flushBuilder() { if (mBuilder.length() > 0) { Log.v("GLSurfaceView", mBuilder.toString()); mBuilder.delete(0, mBuilder.length()); } } private StringBuilder mBuilder = new StringBuilder(); } private static final Semaphore sEglSemaphore = new Semaphore(1); private boolean mSizeChanged = true; private GLThread mGLThread; private EGLConfigChooser mEGLConfigChooser; private GLWrapper mGLWrapper; private int mDebugFlags; } tucnak-4.04/android/src/Keycodes.java0000644000175000017500000006001412052426441014470 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import java.lang.String; import java.util.ArrayList; import java.util.Arrays; import java.lang.reflect.Field; // Autogenerated by hand with a command: // grep 'SDLK_' SDL_keysym.h | sed 's/SDLK_\([a-zA-Z0-9_]\+\).*[=] \([0-9]\+\).*/public static final int SDLK_\1 = \2;/' >> Keycodes.java class SDL_1_2_Keycodes { public static final int SDLK_UNKNOWN = 0; public static final int SDLK_BACKSPACE = 8; public static final int SDLK_TAB = 9; public static final int SDLK_CLEAR = 12; public static final int SDLK_RETURN = 13; public static final int SDLK_PAUSE = 19; public static final int SDLK_ESCAPE = 27; public static final int SDLK_SPACE = 32; public static final int SDLK_EXCLAIM = 33; public static final int SDLK_QUOTEDBL = 34; public static final int SDLK_HASH = 35; public static final int SDLK_DOLLAR = 36; public static final int SDLK_AMPERSAND = 38; public static final int SDLK_QUOTE = 39; public static final int SDLK_LEFTPAREN = 40; public static final int SDLK_RIGHTPAREN = 41; public static final int SDLK_ASTERISK = 42; public static final int SDLK_PLUS = 43; public static final int SDLK_COMMA = 44; public static final int SDLK_MINUS = 45; public static final int SDLK_PERIOD = 46; public static final int SDLK_SLASH = 47; public static final int SDLK_0 = 48; public static final int SDLK_1 = 49; public static final int SDLK_2 = 50; public static final int SDLK_3 = 51; public static final int SDLK_4 = 52; public static final int SDLK_5 = 53; public static final int SDLK_6 = 54; public static final int SDLK_7 = 55; public static final int SDLK_8 = 56; public static final int SDLK_9 = 57; public static final int SDLK_COLON = 58; public static final int SDLK_SEMICOLON = 59; public static final int SDLK_LESS = 60; public static final int SDLK_EQUALS = 61; public static final int SDLK_GREATER = 62; public static final int SDLK_QUESTION = 63; public static final int SDLK_AT = 64; public static final int SDLK_LEFTBRACKET = 91; public static final int SDLK_BACKSLASH = 92; public static final int SDLK_RIGHTBRACKET = 93; public static final int SDLK_CARET = 94; public static final int SDLK_UNDERSCORE = 95; public static final int SDLK_BACKQUOTE = 96; public static final int SDLK_a = 97; public static final int SDLK_b = 98; public static final int SDLK_c = 99; public static final int SDLK_d = 100; public static final int SDLK_e = 101; public static final int SDLK_f = 102; public static final int SDLK_g = 103; public static final int SDLK_h = 104; public static final int SDLK_i = 105; public static final int SDLK_j = 106; public static final int SDLK_k = 107; public static final int SDLK_l = 108; public static final int SDLK_m = 109; public static final int SDLK_n = 110; public static final int SDLK_o = 111; public static final int SDLK_p = 112; public static final int SDLK_q = 113; public static final int SDLK_r = 114; public static final int SDLK_s = 115; public static final int SDLK_t = 116; public static final int SDLK_u = 117; public static final int SDLK_v = 118; public static final int SDLK_w = 119; public static final int SDLK_x = 120; public static final int SDLK_y = 121; public static final int SDLK_z = 122; public static final int SDLK_DELETE = 127; public static final int SDLK_WORLD_0 = 160; public static final int SDLK_WORLD_1 = 161; public static final int SDLK_WORLD_2 = 162; public static final int SDLK_WORLD_3 = 163; public static final int SDLK_WORLD_4 = 164; public static final int SDLK_WORLD_5 = 165; public static final int SDLK_WORLD_6 = 166; public static final int SDLK_WORLD_7 = 167; public static final int SDLK_WORLD_8 = 168; public static final int SDLK_WORLD_9 = 169; public static final int SDLK_WORLD_10 = 170; public static final int SDLK_WORLD_11 = 171; public static final int SDLK_WORLD_12 = 172; public static final int SDLK_WORLD_13 = 173; public static final int SDLK_WORLD_14 = 174; public static final int SDLK_WORLD_15 = 175; public static final int SDLK_WORLD_16 = 176; public static final int SDLK_WORLD_17 = 177; public static final int SDLK_WORLD_18 = 178; public static final int SDLK_WORLD_19 = 179; public static final int SDLK_WORLD_20 = 180; public static final int SDLK_WORLD_21 = 181; public static final int SDLK_WORLD_22 = 182; public static final int SDLK_WORLD_23 = 183; public static final int SDLK_WORLD_24 = 184; public static final int SDLK_WORLD_25 = 185; public static final int SDLK_WORLD_26 = 186; public static final int SDLK_WORLD_27 = 187; public static final int SDLK_WORLD_28 = 188; public static final int SDLK_WORLD_29 = 189; public static final int SDLK_WORLD_30 = 190; public static final int SDLK_WORLD_31 = 191; public static final int SDLK_WORLD_32 = 192; public static final int SDLK_WORLD_33 = 193; public static final int SDLK_WORLD_34 = 194; public static final int SDLK_WORLD_35 = 195; public static final int SDLK_WORLD_36 = 196; public static final int SDLK_WORLD_37 = 197; public static final int SDLK_WORLD_38 = 198; public static final int SDLK_WORLD_39 = 199; public static final int SDLK_WORLD_40 = 200; public static final int SDLK_WORLD_41 = 201; public static final int SDLK_WORLD_42 = 202; public static final int SDLK_WORLD_43 = 203; public static final int SDLK_WORLD_44 = 204; public static final int SDLK_WORLD_45 = 205; public static final int SDLK_WORLD_46 = 206; public static final int SDLK_WORLD_47 = 207; public static final int SDLK_WORLD_48 = 208; public static final int SDLK_WORLD_49 = 209; public static final int SDLK_WORLD_50 = 210; public static final int SDLK_WORLD_51 = 211; public static final int SDLK_WORLD_52 = 212; public static final int SDLK_WORLD_53 = 213; public static final int SDLK_WORLD_54 = 214; public static final int SDLK_WORLD_55 = 215; public static final int SDLK_WORLD_56 = 216; public static final int SDLK_WORLD_57 = 217; public static final int SDLK_WORLD_58 = 218; public static final int SDLK_WORLD_59 = 219; public static final int SDLK_WORLD_60 = 220; public static final int SDLK_WORLD_61 = 221; public static final int SDLK_WORLD_62 = 222; public static final int SDLK_WORLD_63 = 223; public static final int SDLK_WORLD_64 = 224; public static final int SDLK_WORLD_65 = 225; public static final int SDLK_WORLD_66 = 226; public static final int SDLK_WORLD_67 = 227; public static final int SDLK_WORLD_68 = 228; public static final int SDLK_WORLD_69 = 229; public static final int SDLK_WORLD_70 = 230; public static final int SDLK_WORLD_71 = 231; public static final int SDLK_WORLD_72 = 232; public static final int SDLK_WORLD_73 = 233; public static final int SDLK_WORLD_74 = 234; public static final int SDLK_WORLD_75 = 235; public static final int SDLK_WORLD_76 = 236; public static final int SDLK_WORLD_77 = 237; public static final int SDLK_WORLD_78 = 238; public static final int SDLK_WORLD_79 = 239; public static final int SDLK_WORLD_80 = 240; public static final int SDLK_WORLD_81 = 241; public static final int SDLK_WORLD_82 = 242; public static final int SDLK_WORLD_83 = 243; public static final int SDLK_WORLD_84 = 244; public static final int SDLK_WORLD_85 = 245; public static final int SDLK_WORLD_86 = 246; public static final int SDLK_WORLD_87 = 247; public static final int SDLK_WORLD_88 = 248; public static final int SDLK_WORLD_89 = 249; public static final int SDLK_WORLD_90 = 250; public static final int SDLK_WORLD_91 = 251; public static final int SDLK_WORLD_92 = 252; public static final int SDLK_WORLD_93 = 253; public static final int SDLK_WORLD_94 = 254; public static final int SDLK_WORLD_95 = 255; public static final int SDLK_KP0 = 256; public static final int SDLK_KP1 = 257; public static final int SDLK_KP2 = 258; public static final int SDLK_KP3 = 259; public static final int SDLK_KP4 = 260; public static final int SDLK_KP5 = 261; public static final int SDLK_KP6 = 262; public static final int SDLK_KP7 = 263; public static final int SDLK_KP8 = 264; public static final int SDLK_KP9 = 265; public static final int SDLK_KP_PERIOD = 266; public static final int SDLK_KP_DIVIDE = 267; public static final int SDLK_KP_MULTIPLY = 268; public static final int SDLK_KP_MINUS = 269; public static final int SDLK_KP_PLUS = 270; public static final int SDLK_KP_ENTER = 271; public static final int SDLK_KP_EQUALS = 272; public static final int SDLK_UP = 273; public static final int SDLK_DOWN = 274; public static final int SDLK_RIGHT = 275; public static final int SDLK_LEFT = 276; public static final int SDLK_INSERT = 277; public static final int SDLK_HOME = 278; public static final int SDLK_END = 279; public static final int SDLK_PAGEUP = 280; public static final int SDLK_PAGEDOWN = 281; public static final int SDLK_F1 = 282; public static final int SDLK_F2 = 283; public static final int SDLK_F3 = 284; public static final int SDLK_F4 = 285; public static final int SDLK_F5 = 286; public static final int SDLK_F6 = 287; public static final int SDLK_F7 = 288; public static final int SDLK_F8 = 289; public static final int SDLK_F9 = 290; public static final int SDLK_F10 = 291; public static final int SDLK_F11 = 292; public static final int SDLK_F12 = 293; public static final int SDLK_F13 = 294; public static final int SDLK_F14 = 295; public static final int SDLK_F15 = 296; public static final int SDLK_NUMLOCK = 300; public static final int SDLK_CAPSLOCK = 301; public static final int SDLK_SCROLLOCK = 302; public static final int SDLK_RSHIFT = 303; public static final int SDLK_LSHIFT = 304; public static final int SDLK_RCTRL = 305; public static final int SDLK_LCTRL = 306; public static final int SDLK_RALT = 307; public static final int SDLK_LALT = 308; public static final int SDLK_RMETA = 309; public static final int SDLK_LMETA = 310; public static final int SDLK_LSUPER = 311; public static final int SDLK_RSUPER = 312; public static final int SDLK_MODE = 313; public static final int SDLK_COMPOSE = 314; public static final int SDLK_HELP = 315; public static final int SDLK_PRINT = 316; public static final int SDLK_SYSREQ = 317; public static final int SDLK_BREAK = 318; public static final int SDLK_MENU = 319; public static final int SDLK_POWER = 320; public static final int SDLK_EURO = 321; public static final int SDLK_UNDO = 322; public static final int SDLK_NO_REMAP = 512; } // Autogenerated by hand with a command: // grep 'SDL_SCANCODE_' SDL_scancode.h | sed 's/SDL_SCANCODE_\([a-zA-Z0-9_]\+\).*[=] \([0-9]\+\).*/public static final int SDLK_\1 = \2;/' >> Keycodes.java class SDL_1_3_Keycodes { public static final int SDLK_UNKNOWN = 0; public static final int SDLK_A = 4; public static final int SDLK_B = 5; public static final int SDLK_C = 6; public static final int SDLK_D = 7; public static final int SDLK_E = 8; public static final int SDLK_F = 9; public static final int SDLK_G = 10; public static final int SDLK_H = 11; public static final int SDLK_I = 12; public static final int SDLK_J = 13; public static final int SDLK_K = 14; public static final int SDLK_L = 15; public static final int SDLK_M = 16; public static final int SDLK_N = 17; public static final int SDLK_O = 18; public static final int SDLK_P = 19; public static final int SDLK_Q = 20; public static final int SDLK_R = 21; public static final int SDLK_S = 22; public static final int SDLK_T = 23; public static final int SDLK_U = 24; public static final int SDLK_V = 25; public static final int SDLK_W = 26; public static final int SDLK_X = 27; public static final int SDLK_Y = 28; public static final int SDLK_Z = 29; public static final int SDLK_1 = 30; public static final int SDLK_2 = 31; public static final int SDLK_3 = 32; public static final int SDLK_4 = 33; public static final int SDLK_5 = 34; public static final int SDLK_6 = 35; public static final int SDLK_7 = 36; public static final int SDLK_8 = 37; public static final int SDLK_9 = 38; public static final int SDLK_0 = 39; public static final int SDLK_RETURN = 40; public static final int SDLK_ESCAPE = 41; public static final int SDLK_BACKSPACE = 42; public static final int SDLK_TAB = 43; public static final int SDLK_SPACE = 44; public static final int SDLK_MINUS = 45; public static final int SDLK_EQUALS = 46; public static final int SDLK_LEFTBRACKET = 47; public static final int SDLK_RIGHTBRACKET = 48; public static final int SDLK_BACKSLASH = 49; public static final int SDLK_NONUSHASH = 50; public static final int SDLK_SEMICOLON = 51; public static final int SDLK_APOSTROPHE = 52; public static final int SDLK_GRAVE = 53; public static final int SDLK_COMMA = 54; public static final int SDLK_PERIOD = 55; public static final int SDLK_SLASH = 56; public static final int SDLK_CAPSLOCK = 57; public static final int SDLK_F1 = 58; public static final int SDLK_F2 = 59; public static final int SDLK_F3 = 60; public static final int SDLK_F4 = 61; public static final int SDLK_F5 = 62; public static final int SDLK_F6 = 63; public static final int SDLK_F7 = 64; public static final int SDLK_F8 = 65; public static final int SDLK_F9 = 66; public static final int SDLK_F10 = 67; public static final int SDLK_F11 = 68; public static final int SDLK_F12 = 69; public static final int SDLK_PRINTSCREEN = 70; public static final int SDLK_SCROLLLOCK = 71; public static final int SDLK_PAUSE = 72; public static final int SDLK_INSERT = 73; public static final int SDLK_HOME = 74; public static final int SDLK_PAGEUP = 75; public static final int SDLK_DELETE = 76; public static final int SDLK_END = 77; public static final int SDLK_PAGEDOWN = 78; public static final int SDLK_RIGHT = 79; public static final int SDLK_LEFT = 80; public static final int SDLK_DOWN = 81; public static final int SDLK_UP = 82; public static final int SDLK_NUMLOCKCLEAR = 83; public static final int SDLK_KP_DIVIDE = 84; public static final int SDLK_KP_MULTIPLY = 85; public static final int SDLK_KP_MINUS = 86; public static final int SDLK_KP_PLUS = 87; public static final int SDLK_KP_ENTER = 88; public static final int SDLK_KP_1 = 89; public static final int SDLK_KP_2 = 90; public static final int SDLK_KP_3 = 91; public static final int SDLK_KP_4 = 92; public static final int SDLK_KP_5 = 93; public static final int SDLK_KP_6 = 94; public static final int SDLK_KP_7 = 95; public static final int SDLK_KP_8 = 96; public static final int SDLK_KP_9 = 97; public static final int SDLK_KP_0 = 98; public static final int SDLK_KP_PERIOD = 99; public static final int SDLK_NONUSBACKSLASH = 100; public static final int SDLK_APPLICATION = 101; public static final int SDLK_POWER = 102; public static final int SDLK_KP_EQUALS = 103; public static final int SDLK_F13 = 104; public static final int SDLK_F14 = 105; public static final int SDLK_F15 = 106; public static final int SDLK_F16 = 107; public static final int SDLK_F17 = 108; public static final int SDLK_F18 = 109; public static final int SDLK_F19 = 110; public static final int SDLK_F20 = 111; public static final int SDLK_F21 = 112; public static final int SDLK_F22 = 113; public static final int SDLK_F23 = 114; public static final int SDLK_F24 = 115; public static final int SDLK_EXECUTE = 116; public static final int SDLK_HELP = 117; public static final int SDLK_MENU = 118; public static final int SDLK_SELECT = 119; public static final int SDLK_STOP = 120; public static final int SDLK_AGAIN = 121; public static final int SDLK_UNDO = 122; public static final int SDLK_CUT = 123; public static final int SDLK_COPY = 124; public static final int SDLK_PASTE = 125; public static final int SDLK_FIND = 126; public static final int SDLK_MUTE = 127; public static final int SDLK_VOLUMEUP = 128; public static final int SDLK_VOLUMEDOWN = 129; public static final int SDLK_KP_COMMA = 133; public static final int SDLK_KP_EQUALSAS400 = 134; public static final int SDLK_INTERNATIONAL1 = 135; public static final int SDLK_INTERNATIONAL2 = 136; public static final int SDLK_INTERNATIONAL3 = 137; public static final int SDLK_INTERNATIONAL4 = 138; public static final int SDLK_INTERNATIONAL5 = 139; public static final int SDLK_INTERNATIONAL6 = 140; public static final int SDLK_INTERNATIONAL7 = 141; public static final int SDLK_INTERNATIONAL8 = 142; public static final int SDLK_INTERNATIONAL9 = 143; public static final int SDLK_LANG1 = 144; public static final int SDLK_LANG2 = 145; public static final int SDLK_LANG3 = 146; public static final int SDLK_LANG4 = 147; public static final int SDLK_LANG5 = 148; public static final int SDLK_LANG6 = 149; public static final int SDLK_LANG7 = 150; public static final int SDLK_LANG8 = 151; public static final int SDLK_LANG9 = 152; public static final int SDLK_ALTERASE = 153; public static final int SDLK_SYSREQ = 154; public static final int SDLK_CANCEL = 155; public static final int SDLK_CLEAR = 156; public static final int SDLK_PRIOR = 157; public static final int SDLK_RETURN2 = 158; public static final int SDLK_SEPARATOR = 159; public static final int SDLK_OUT = 160; public static final int SDLK_OPER = 161; public static final int SDLK_CLEARAGAIN = 162; public static final int SDLK_CRSEL = 163; public static final int SDLK_EXSEL = 164; public static final int SDLK_KP_00 = 176; public static final int SDLK_KP_000 = 177; public static final int SDLK_THOUSANDSSEPARATOR = 178; public static final int SDLK_DECIMALSEPARATOR = 179; public static final int SDLK_CURRENCYUNIT = 180; public static final int SDLK_CURRENCYSUBUNIT = 181; public static final int SDLK_KP_LEFTPAREN = 182; public static final int SDLK_KP_RIGHTPAREN = 183; public static final int SDLK_KP_LEFTBRACE = 184; public static final int SDLK_KP_RIGHTBRACE = 185; public static final int SDLK_KP_TAB = 186; public static final int SDLK_KP_BACKSPACE = 187; public static final int SDLK_KP_A = 188; public static final int SDLK_KP_B = 189; public static final int SDLK_KP_C = 190; public static final int SDLK_KP_D = 191; public static final int SDLK_KP_E = 192; public static final int SDLK_KP_F = 193; public static final int SDLK_KP_XOR = 194; public static final int SDLK_KP_POWER = 195; public static final int SDLK_KP_PERCENT = 196; public static final int SDLK_KP_LESS = 197; public static final int SDLK_KP_GREATER = 198; public static final int SDLK_KP_AMPERSAND = 199; public static final int SDLK_KP_DBLAMPERSAND = 200; public static final int SDLK_KP_VERTICALBAR = 201; public static final int SDLK_KP_DBLVERTICALBAR = 202; public static final int SDLK_KP_COLON = 203; public static final int SDLK_KP_HASH = 204; public static final int SDLK_KP_SPACE = 205; public static final int SDLK_KP_AT = 206; public static final int SDLK_KP_EXCLAM = 207; public static final int SDLK_KP_MEMSTORE = 208; public static final int SDLK_KP_MEMRECALL = 209; public static final int SDLK_KP_MEMCLEAR = 210; public static final int SDLK_KP_MEMADD = 211; public static final int SDLK_KP_MEMSUBTRACT = 212; public static final int SDLK_KP_MEMMULTIPLY = 213; public static final int SDLK_KP_MEMDIVIDE = 214; public static final int SDLK_KP_PLUSMINUS = 215; public static final int SDLK_KP_CLEAR = 216; public static final int SDLK_KP_CLEARENTRY = 217; public static final int SDLK_KP_BINARY = 218; public static final int SDLK_KP_OCTAL = 219; public static final int SDLK_KP_DECIMAL = 220; public static final int SDLK_KP_HEXADECIMAL = 221; public static final int SDLK_LCTRL = 224; public static final int SDLK_LSHIFT = 225; public static final int SDLK_LALT = 226; public static final int SDLK_LGUI = 227; public static final int SDLK_RCTRL = 228; public static final int SDLK_RSHIFT = 229; public static final int SDLK_RALT = 230; public static final int SDLK_RGUI = 231; public static final int SDLK_MODE = 257; public static final int SDLK_AUDIONEXT = 258; public static final int SDLK_AUDIOPREV = 259; public static final int SDLK_AUDIOSTOP = 260; public static final int SDLK_AUDIOPLAY = 261; public static final int SDLK_AUDIOMUTE = 262; public static final int SDLK_MEDIASELECT = 263; public static final int SDLK_WWW = 264; public static final int SDLK_MAIL = 265; public static final int SDLK_CALCULATOR = 266; public static final int SDLK_COMPUTER = 267; public static final int SDLK_AC_SEARCH = 268; public static final int SDLK_AC_HOME = 269; public static final int SDLK_AC_BACK = 270; public static final int SDLK_AC_FORWARD = 271; public static final int SDLK_AC_STOP = 272; public static final int SDLK_AC_REFRESH = 273; public static final int SDLK_AC_BOOKMARKS = 274; public static final int SDLK_BRIGHTNESSDOWN = 275; public static final int SDLK_BRIGHTNESSUP = 276; public static final int SDLK_DISPLAYSWITCH = 277; public static final int SDLK_KBDILLUMTOGGLE = 278; public static final int SDLK_KBDILLUMDOWN = 279; public static final int SDLK_KBDILLUMUP = 280; public static final int SDLK_EJECT = 281; public static final int SDLK_SLEEP = 282; public static final int SDLK_NO_REMAP = 512; } class SDL_Keys { public static String [] names = null; public static Integer [] values = null; public static String [] namesSorted = null; public static Integer [] namesSortedIdx = null; public static Integer [] namesSortedBackIdx = null; static final int JAVA_KEYCODE_LAST = 255; // Android 2.3 added several new gaming keys, Android 3.1 added even more - keep in sync with javakeycodes.h static { ArrayList Names = new ArrayList (); ArrayList Values = new ArrayList (); Field [] fields = SDL_1_2_Keycodes.class.getDeclaredFields(); if( Globals.Using_SDL_1_3 ) { fields = SDL_1_3_Keycodes.class.getDeclaredFields(); } try { for(Field f: fields) { Values.add(f.getInt(null)); Names.add(f.getName().substring(5).toUpperCase()); } } catch(IllegalAccessException e) {}; // Sort by value for( int i = 0; i < Values.size(); i++ ) { for( int j = i; j < Values.size(); j++ ) { if( Values.get(i) > Values.get(j) ) { int x = Values.get(i); Values.set(i, Values.get(j)); Values.set(j, x); String s = Names.get(i); Names.set(i, Names.get(j)); Names.set(j, s); } } } names = Names.toArray(new String[0]); values = Values.toArray(new Integer[0]); namesSorted = Names.toArray(new String[0]); namesSortedIdx = new Integer[values.length]; namesSortedBackIdx = new Integer[values.length]; Arrays.sort(namesSorted); for( int i = 0; i < namesSorted.length; i++ ) { for( int j = 0; j < namesSorted.length; j++ ) { if( namesSorted[i].equals( names[j] ) ) { namesSortedIdx[i] = j; namesSortedBackIdx[j] = i; break; } } } } } tucnak-4.04/android/src/Makefile.am0000644000175000017500000000033012073276267014122 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = Accelerometer.java Advertisement.java Audio.java DataDownloader.java \ Globals.java GLSurfaceView_SDL.java Keycodes.java MainActivity.java \ Settings.java Video.java tucnak-4.04/android/src/MainActivity.java0000644000175000017500000012404512401557603015333 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.view.MotionEvent; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.widget.EditText; import android.text.Editable; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.FrameLayout; import android.graphics.drawable.Drawable; import android.content.res.Configuration; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.view.View.OnKeyListener; import android.view.MenuItem; import android.view.Menu; import android.view.Gravity; import android.text.method.TextKeyListener; import android.net.Uri; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.media.MediaPlayer.OnErrorListener; import android.app.AlertDialog; import android.content.DialogInterface; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import java.util.Set; import java.util.List; import java.util.ArrayList; import java.util.LinkedList; import java.io.SequenceInputStream; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; import java.io.File; import java.io.FileInputStream; import java.util.zip.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import android.text.SpannedString; import java.io.BufferedReader; import java.io.BufferedInputStream; import java.io.InputStreamReader; import android.view.inputmethod.InputMethodManager; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Handler; import android.os.Message; import java.util.concurrent.Semaphore; import android.content.pm.ActivityInfo; import android.view.Display; public class MainActivity extends Activity implements OnCompletionListener, OnErrorListener { public static native void nativeSetHW( double h, double w, int state); public static native void nativeSendLocation( double h, double w, int state); private double myH = -100000, myW = -100000; private int myState = -1; // -1=no last, 0=searching, 1=fixed, 2=error public boolean NativeAlive = false; public LocationManager locationManager; public LocationListener locationListener; private void DoUpdateLocation(){ locationListener = new LocationListener() { public void onLocationChanged(Location location) { myH = location.getLongitude(); myW = location.getLatitude(); System.out.println("tucnak: onLocationChanged " + String.valueOf(location.getLongitude()) + " " + String.valueOf(location.getLatitude())); locationManager.removeUpdates(locationListener); myState = 1; SendLocation(); } public void onStatusChanged(String provider, int status, Bundle extras) { System.out.println("tucnak: onStatusChanged "); } public void onProviderEnabled(String provider) { System.out.println("tucnak: onProviderEnabled "); } public void onProviderDisabled(String provider) { System.out.println("tucnak: onProviderDisabled "); } }; locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE); try { System.out.println("tucnak: DoUpdateLocation"); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); String provider = locationManager.getBestProvider(criteria, true); Location location = locationManager.getLastKnownLocation(provider); if (location != null){ myH = location.getLongitude(); myW = location.getLatitude(); System.out.println("tucnak: getLastKnownLocation(" + provider + ")=" + GetLoc(myH, myW) + " " + String.valueOf(location.getLongitude()) + " " + String.valueOf(location.getLatitude())); SendLocation(); }else{ criteria = new Criteria(); provider = locationManager.getBestProvider(criteria, true); location = locationManager.getLastKnownLocation(provider); if (location != null){ myH = location.getLongitude(); myW = location.getLatitude(); System.out.println("tucnak: getLastKnownLocation(" + provider + ")=" + GetLoc(myH, myW) + " " + String.valueOf(location.getLongitude()) + " " + String.valueOf(location.getLatitude())); SendLocation(); }else{ System.out.println("tucnak: getLastKnownLocation(" + provider + ") failed "); } } } catch(Exception ex){ System.out.println("tucnak: getLastKnownLocation failed " + ex.getMessage()); } try { Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); String provider = locationManager.getBestProvider(criteria, true); myState = 0; SendLocation(); locationManager.requestLocationUpdates(provider, 0, 0, locationListener, null); } catch(Exception ex){ System.out.println("tucnak: requestLocationUpdates failed " + ex.getMessage()); myState = 2; } } public void UpdateLocation(){ class Callback implements Runnable { public MainActivity parent; public void run() { parent.DoUpdateLocation(); } } Callback cb = new Callback(); cb.parent = this; this.runOnUiThread(cb); } public void SendLocation(){ System.out.println("tucnak: SendLocation " + GetLoc(myH, myW) + " " + String.valueOf(myH) + " " + String.valueOf(myW) + " NativeAlive=" + NativeAlive); if (!NativeAlive) return; nativeSetHW(myH, myW, myState); nativeSendLocation(myH, myW, myState); } public String GetLoc(double h /* lon */, double w /* lat */){ String buf = ""; if (h < -1000) return "LOC?"; h += 180; w += 90; h = h % 360.0; w = w % 180.0; buf += (char)('A'+ (int)(h / 20.0)); buf += (char)('A'+ (int)(w / 10.0)); h = h % 20; w = w % 10; buf += (char)('0'+ (int)(h / 2)); buf += (char)('0'+ (int)(w)); h = h % 2; w = w % 1; h *= 12; w *= 24; buf += (char)('A'+ (int)(h)); buf += (char)('A'+ (int)(w)); h = (h % 1) * 10; w = (w % 1) * 10; buf += (char)('0'+ (int)(h)); buf += (char)('0'+ (int)(w)); h = (h % 1) * 24; w = (w % 1) * 24; buf += (char)('A'+ (int)(h)); buf += (char)('A'+ (int)(w)); return buf; } public void MessageBox(String title, String str){ System.out.println("tucnak: MessageBox " + str); class Callback implements Runnable { public MainActivity parent; public String title; public String str; public Boolean bezi; public void run() { try{ AlertDialog ad = new AlertDialog.Builder(parent).create(); ad.setCancelable(false); // This blocks the 'BACK' button ad.setTitle(title); ad.setMessage(str); ad.setIcon(R.drawable.icon); ad.setButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); bezi = false; } }); ad.show(); } catch(Exception ex){ System.out.println("tucnak: MessageBox failed " + ex.getMessage()); myState = 2; } } } Callback cb = new Callback(); cb.parent = this; cb.title = title; cb.str = str; cb.bezi = true; this.runOnUiThread(cb); while (cb.bezi){ try{ Thread.sleep(200); } catch (Exception ex){ System.out.println("tucnak: MessageBox sleep failed " + ex.getMessage()); } } } public Bundle SavedBundle; public int getInt(String key){ if (SavedBundle == null) return 0; return SavedBundle.getInt(key); } public String getStr(String key){ System.out.println("tucnak: MainActivity.getStr('"+key+"')"); if (SavedBundle == null) { System.out.println("tucnak: SavedBundle==null"); return null; } System.out.println("tucnak: returning '" + SavedBundle.getString(key) + "'"); return SavedBundle.getString(key); } public void Xyz(String key){ System.out.println("tucnak: MainActivity.Xyz('"+key+"') -----------"); } @Override protected void onCreate(Bundle savedInstanceState) { String portraitFilename = Globals.DownloadToSdcard ? Settings.SdcardAppPath.getPath(this) : getFilesDir().getAbsolutePath(); portraitFilename += "/tucnak/portrait"; String reverseFilename = Globals.DownloadToSdcard ? Settings.SdcardAppPath.getPath(this) : getFilesDir().getAbsolutePath(); reverseFilename += "/tucnak/reverse"; // System.out.println("tucnak: MainActivity.onCreate called, portraitFilename =" + portraitFilename); File portraitFile = new File(portraitFilename); Globals.HorizontalOrientation = !portraitFile.exists(); /* if (portraitFile.exists()){ Globals.Orientati setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); System.out.println("tucnak: SCREEN_ORIENTATION_PORTRAIT"); }else{ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); System.out.println("tucnak: SCREEN_ORIENTATION_LANDSCAPE"); }*/ super.onCreate(savedInstanceState); SavedBundle = savedInstanceState; DoUpdateLocation(); DetectBT(); //showTaskbarNotification("Tucnak is running", "Tucnak", "Tucnak is running, click to activate"); Intent service = new Intent(this, TucnakService.class); startService(service); int o = Globals.HorizontalOrientation ? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; // 0, 1 File reverseFile = new File(reverseFilename); if (reverseFile.exists()) o |= ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; // 8, 9 /* System.out.println("tucnak: MainActivity.onCreate called, reverseFilename =" + reverseFilename); System.out.println("tucnak: exists =" + reverseFile.exists()); System.out.println("tucnak: orientation = " + o);*/ setRequestedOrientation(o); instance = this; // fullscreen mode requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); if(Globals.InhibitSuspend) getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); if (savedInstanceState == null) System.out.println("tucnak: Creating startup screen --"); else System.out.println("tucnak: Restoring startup screen --"); _layout = new LinearLayout(this); _layout.setOrientation(LinearLayout.VERTICAL); _layout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); _layout2 = new LinearLayout(this); _layout2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); if( Globals.StartupMenuButtonTimeout > 0 ) { _btn = new Button(this); _btn.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); _btn.setText(getResources().getString(R.string.device_change_cfg)); class onClickListener implements View.OnClickListener { public MainActivity p; onClickListener( MainActivity _p ) { p = _p; } public void onClick(View v) { setUpStatusLabel(); System.out.println("tucnak: User clicked change phone config button"); Settings.showConfig(p, false); } }; _btn.setOnClickListener(new onClickListener(this)); _layout2.addView(_btn); } _layout.addView(_layout2); ImageView img = new ImageView(this); //System.out.println("tucnak: onCreate draw logo"); img.setScaleType(ImageView.ScaleType.CENTER /* FIT_CENTER FIT_XY */ ); try { img.setImageDrawable(Drawable.createFromStream(getAssets().open("logo.png"), "logo.png")); } catch(Exception e) { // img.setImageResource(R.drawable.publisherlogo); } img.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); _layout.addView(img); _videoLayout = new FrameLayout(this); _videoLayout.addView(_layout); _ad = new Advertisement(this); if( _ad.getView() != null ) { _videoLayout.addView(_ad.getView()); _ad.getView().setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.RIGHT)); } setContentView(_videoLayout); class Callback implements Runnable { MainActivity p; Callback( MainActivity _p ) { p = _p; } public void run() { try { Thread.sleep(200); } catch( InterruptedException e ) {}; if(p.mAudioThread == null) { //System.out.println("tucnak: Loading libraries"); p.LoadLibraries(); p.mAudioThread = new AudioThread(p); // System.out.println("tucnak: Loading settings"); final Semaphore loaded = new Semaphore(0); class Callback2 implements Runnable { public MainActivity Parent; public void run() { Settings.Load(Parent); loaded.release(); } } Callback2 cb = new Callback2(); cb.Parent = p; p.runOnUiThread(cb); loaded.acquireUninterruptibly(); p.LoadApplicationLibrary(p); SendLocation(); } if( !Settings.settingsChanged ) { if( Globals.StartupMenuButtonTimeout > 0 ) { System.out.println("tucnak: " + String.valueOf(Globals.StartupMenuButtonTimeout) + "-msec timeout in startup screen"); try { Thread.sleep(Globals.StartupMenuButtonTimeout); } catch( InterruptedException e ) {}; } if( Settings.settingsChanged ) return; System.out.println("tucnak: Timeout reached in startup screen, process with downloader"); p.startDownloader(); } } }; (new Thread(new Callback(this))).start(); } public native void nativeOnSaveInstanceState( Bundle bundle); public native void nativeInitJavaCallbacks(); public native void nativeSetState( String key, String val); public native void nativeWavPlayed(); public native void nativeWavError(String str); public native void nativeMsgSend(String str); @Override protected void onSaveInstanceState(Bundle bundle) { System.out.println("tucnak: onSaveInstanceState"); super.onSaveInstanceState(bundle); // System.out.println("tucnak: calling native"); nativeOnSaveInstanceState(bundle); } public void UpdatePackage(String fileName){ System.out.println("tucnak: UpdatePackage ('" + fileName + "')"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); startActivity(intent); } public void Browser(String url){ System.out.println("tucnak: browser ('" + url + "')"); try{ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); } catch (Exception ex){ MessageBox("Tucnak error", "Can't start web browser: " + ex.getMessage()); } } private MediaPlayer mp; public void PlayWav(String fileName){ System.out.println("tucnak: PlayWav ('" + fileName + "')"); try{ SsbdAbort(); mp = new MediaPlayer(); File file = new File(fileName); FileInputStream fis = new FileInputStream(file); mp.setDataSource(fis.getFD()); mp.setOnErrorListener(this); mp.setOnCompletionListener(this); mp.prepare(); mp.start(); System.out.println("tucnak: play started"); } catch(Exception ex) { System.out.println("tucnak: play failed " + ex.getMessage()); nativeWavError("Can't play " + ex.getMessage()); mp.release(); mp = null; } } public void onCompletion(MediaPlayer mp){ System.out.println("tucnak: onCompletion MediaPlayer"); nativeWavPlayed(); mp.release(); mp = null; } public boolean onError(MediaPlayer mp, int what, int extra){ System.out.println("tucnak: onError MediaPlayer what=" + what + " extra" + extra); nativeWavError("MediaPlayer error what=" + what + " extra" + extra); mp.release(); mp = null; return true; } public void SsbdAbort(){ if (mp != null){ System.out.println("tucnak: SsbdAbort"); mp.release(); mp = null; } } public void DetectBT(){ BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter != null){ Set pairedDevices = mBluetoothAdapter.getBondedDevices(); List s = new ArrayList(); for(BluetoothDevice bt : pairedDevices){ System.out.println("tucnak: BT device:" + bt.getName()); s.add(bt.getName()); } } } public void setUpStatusLabel() { MainActivity Parent = this; // Too lazy to rename if( Parent._btn != null ) { Parent._layout2.removeView(Parent._btn); Parent._btn = null; } if( Parent._tv == null ) { Parent._tv = new TextView(Parent); Parent._tv.setMaxLines(2); Parent._tv.setText(R.string.init); Parent._layout2.addView(Parent._tv); } } public void startDownloader() { System.out.println("tucnak: Starting data downloader"); class Callback implements Runnable { public MainActivity Parent; public void run() { setUpStatusLabel(); System.out.println("tucnak: Starting downloader"); if( Parent.downloader == null ) Parent.downloader = new DataDownloader(Parent, Parent._tv); } } Callback cb = new Callback(); cb.Parent = this; this.runOnUiThread(cb); } public void initSDL() { (new Thread(new Runnable() { public void run() { //int tries = 30; while( isCurrentOrientationHorizontal() != Globals.HorizontalOrientation ) { System.out.println("tucnak: Waiting for screen orientation to change - the device is probably in the lockscreen mode"); try { Thread.sleep(500); } catch( Exception e ) {} /* tries--; if( tries <= 0 ) { System.out.println("tucnak: Giving up waiting for screen orientation change"); break; } */ if( _isPaused ) { System.out.println("tucnak: Application paused, cancelling SDL initialization until it will be brought to foreground"); return; } } runOnUiThread(new Runnable() { public void run() { initSDLInternal(); } }); } })).start(); } private void initSDLInternal() { if(sdlInited) return; System.out.println("tucnak: Initializing video and SDL application"); sdlInited = true; if(Globals.UseAccelerometerAsArrowKeys || Globals.AppUsesAccelerometer) getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); _videoLayout.removeView(_layout); if( _ad.getView() != null ) _videoLayout.removeView(_ad.getView()); _layout = null; _layout2 = null; _btn = null; _tv = null; _inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); _videoLayout = new FrameLayout(this); setContentView(_videoLayout); mGLView = new DemoGLSurfaceView(this); _videoLayout.addView(mGLView); mGLView.setFocusableInTouchMode(true); mGLView.setFocusable(true); mGLView.requestFocus(); if( _ad.getView() != null ) { _videoLayout.addView(_ad.getView()); _ad.getView().setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.TOP | Gravity.RIGHT)); } // Receive keyboard events DimSystemStatusBar.get().dim(_videoLayout); DimSystemStatusBar.get().dim(mGLView); } @Override protected void onPause() { if( downloader != null ) { synchronized( downloader ) { downloader.setStatusField(null); } } _isPaused = true; if( mGLView != null ) mGLView.onPause(); //if( _ad.getView() != null ) // _ad.getView().onPause(); super.onPause(); } @Override protected void onResume() { super.onResume(); if( mGLView != null ) { mGLView.onResume(); DimSystemStatusBar.get().dim(_videoLayout); DimSystemStatusBar.get().dim(mGLView); } else if( downloader != null ) { synchronized( downloader ) { downloader.setStatusField(_tv); if( downloader.DownloadComplete ) { initSDL(); } } } //if( _ad.getView() != null ) // _ad.getView().onResume(); _isPaused = false; } @Override public void onWindowFocusChanged (boolean hasFocus) { super.onWindowFocusChanged(hasFocus); // System.out.println("tucnak: onWindowFocusChanged: " + hasFocus + " - sending onPause/onResume"); if (hasFocus == false) onPause(); else onResume(); /* if (hasFocus == false) { synchronized(textInput) { // Send 'SDLK_PAUSE' (to enter pause mode) to native code: DemoRenderer.nativeTextInput( 19, 19 ); } } */ } public boolean isPaused() { return _isPaused; } @Override protected void onDestroy() { System.out.println("tucnak: onDestroy, isFinishing=" + isFinishing()); if( downloader != null ) { synchronized( downloader ) { downloader.setStatusField(null); } } if( mGLView != null ) mGLView.exitApp(); super.onDestroy(); System.out.println("tucnak: onDestroy, System.exit(0)"); System.exit(0); } public void showScreenKeyboardWithoutTextInputField() { System.out.println("tucnak: showScreenKeyboardWithoutTextInputField"); _inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); _inputManager.showSoftInput(mGLView, InputMethodManager.SHOW_FORCED); } public void showScreenKeyboard(final String oldText, boolean sendBackspace) { System.out.println("tucnak: showScreenKeyboard"); if(Globals.CompatibilityHacksTextInputEmulatesHwKeyboard) { showScreenKeyboardWithoutTextInputField(); return; } if(_screenKeyboard != null) return; class simpleKeyListener implements OnKeyListener { MainActivity _parent; boolean sendBackspace; simpleKeyListener(MainActivity parent, boolean sendBackspace) { _parent = parent; this.sendBackspace = sendBackspace; }; public boolean onKey(View v, int keyCode, KeyEvent event) { if ((event.getAction() == KeyEvent.ACTION_UP) && ((keyCode == KeyEvent.KEYCODE_ENTER) || (keyCode == KeyEvent.KEYCODE_BACK))) { _parent.hideScreenKeyboard(); return true; } if ((sendBackspace && event.getAction() == KeyEvent.ACTION_UP) && (keyCode == KeyEvent.KEYCODE_DEL || keyCode == KeyEvent.KEYCODE_CLEAR)) { synchronized(textInput) { DemoRenderer.nativeTextInput( 8, 0 ); // Send backspace to native code } return false; // and proceed to delete text in keyboard input field } return false; } }; _screenKeyboard = new EditText(this); _videoLayout.addView(_screenKeyboard); _screenKeyboard.setOnKeyListener(new simpleKeyListener(this, sendBackspace)); _screenKeyboard.setHint(R.string.text_edit_click_here); _screenKeyboard.setText(oldText); _screenKeyboard.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.NONE, false)); _screenKeyboard.setFocusableInTouchMode(true); _screenKeyboard.setFocusable(true); _screenKeyboard.requestFocus(); _inputManager.showSoftInput(_screenKeyboard, InputMethodManager.SHOW_FORCED); }; public void hideScreenKeyboard() { System.out.println("tucnak: hideScreenKeyboard"); if(_screenKeyboard == null) return; synchronized(textInput) { String text = _screenKeyboard.getText().toString(); for(int i = 0; i < text.length(); i++) { DemoRenderer.nativeTextInput( (int)text.charAt(i), (int)text.codePointAt(i) ); } } DemoRenderer.nativeTextInputFinished(); _inputManager.hideSoftInputFromWindow(_screenKeyboard.getWindowToken(), 0); _videoLayout.removeView(_screenKeyboard); _screenKeyboard = null; mGLView.setFocusableInTouchMode(true); mGLView.setFocusable(true); mGLView.requestFocus(); }; public boolean isScreenKeyboardShown() { return _screenKeyboard != null; }; final static int ADVERTISEMENT_POSITION_RIGHT = -1; final static int ADVERTISEMENT_POSITION_BOTTOM = -1; final static int ADVERTISEMENT_POSITION_CENTER = -2; public void setAdvertisementPosition(int x, int y) { if( _ad.getView() != null ) { final FrameLayout.LayoutParams layout = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); layout.gravity = 0; layout.leftMargin = 0; layout.topMargin = 0; if( x == ADVERTISEMENT_POSITION_RIGHT ) layout.gravity |= Gravity.RIGHT; else if ( x == ADVERTISEMENT_POSITION_CENTER ) layout.gravity |= Gravity.CENTER_HORIZONTAL; else { layout.gravity |= Gravity.LEFT; layout.leftMargin = x; } if( y == ADVERTISEMENT_POSITION_BOTTOM ) layout.gravity |= Gravity.BOTTOM; else if ( x == ADVERTISEMENT_POSITION_CENTER ) layout.gravity |= Gravity.CENTER_VERTICAL; else { layout.gravity |= Gravity.TOP; layout.topMargin = y; } class Callback implements Runnable { public void run() { _ad.getView().setLayoutParams(layout); } }; runOnUiThread(new Callback()); } } public void setAdvertisementVisible(final int visible) { if( _ad.getView() != null ) { class Callback implements Runnable { public void run() { if( visible == 0 ) _ad.getView().setVisibility(View.GONE); else _ad.getView().setVisibility(View.VISIBLE); } } runOnUiThread(new Callback()); } } public void getAdvertisementParams(int params[]) { for( int i = 0; i < 5; i++ ) params[i] = 0; if( _ad.getView() != null ) { params[0] = (_ad.getView().getVisibility() == View.VISIBLE) ? 1 : 0; FrameLayout.LayoutParams layout = (FrameLayout.LayoutParams) _ad.getView().getLayoutParams(); params[1] = layout.leftMargin; params[2] = layout.topMargin; params[3] = _ad.getView().getMeasuredWidth(); params[4] = _ad.getView().getMeasuredHeight(); } } public void requestNewAdvertisement() { if( _ad.getView() != null ) { class Callback implements Runnable { public void run() { _ad.requestNewAd(); } } runOnUiThread(new Callback()); } } @Override public boolean onKeyDown(int keyCode, final KeyEvent event) { System.out.println("tucnak: onKeyDown: " + (int)keyCode); if(_screenKeyboard != null) _screenKeyboard.onKeyDown(keyCode, event); else if( mGLView != null ) { if( mGLView.nativeKey( keyCode, 1 ) == 0 ) return super.onKeyDown(keyCode, event); } else if( keyCode == KeyEvent.KEYCODE_BACK && downloader != null ) { if( downloader.DownloadFailed ) System.exit(1); if( !downloader.DownloadComplete ) onStop(); } else if( keyListener != null ) { keyListener.onKeyEvent(keyCode); } return true; } @Override public boolean onKeyUp(int keyCode, final KeyEvent event) { if(_screenKeyboard != null) _screenKeyboard.onKeyUp(keyCode, event); else if( mGLView != null ) { if( mGLView.nativeKey( keyCode, 0 ) == 0 ) return super.onKeyUp(keyCode, event); if( keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_MENU ) { DimSystemStatusBar.get().dim(_videoLayout); DimSystemStatusBar.get().dim(mGLView); } } return true; } @Override public boolean dispatchTouchEvent(final MotionEvent ev) { //System.out.println("tucnak: dispatchTouchEvent: " + ev.getAction() + " coords " + (int)ev.getX() + " " + (int)ev.getY() ); if(_screenKeyboard != null){ //System.out.println("tucnak: is screen keyboard"); _screenKeyboard.dispatchTouchEvent(ev); } else if( _ad.getView() != null && // User clicked the advertisement, ignore when user moved finger from game screen to advertisement or touches screen with several fingers ((ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN || (ev.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) && _ad.getView().getLeft() <= (int)ev.getX() && _ad.getView().getRight() > (int)ev.getX() && _ad.getView().getTop() <= (int)ev.getY() && _ad.getView().getBottom() > (int)ev.getY() ){ //System.out.println("tucnak: is adverscreen keyboard"); return super.dispatchTouchEvent(ev); } else if(mGLView != null){ //System.out.println("tucnak: is mGLView"); mGLView.onTouchEvent(ev); } else if( _btn != null ){ //System.out.println("tucnak: is _btn"); return _btn.dispatchTouchEvent(ev); } else if( touchListener != null ){ //System.out.println("tucnak: is touchListener"); touchListener.onTouchEvent(ev); } return true; } @Override public boolean dispatchGenericMotionEvent (MotionEvent ev) { //System.out.println("dispatchGenericMotionEvent: " + ev.getAction() + " coords " + ev.getX() + ":" + ev.getY() ); // This code fails to run for Android 1.6, so there will be no generic motion event for Andorid screen keyboard /* if(_screenKeyboard != null) _screenKeyboard.dispatchGenericMotionEvent(ev); else */ if(mGLView != null) mGLView.onGenericMotionEvent(ev); return true; } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Do nothing here } public void setText(final String t) { class Callback implements Runnable { MainActivity Parent; public SpannedString text; public void run() { Parent.setUpStatusLabel(); if(Parent._tv != null) Parent._tv.setText(text); } } Callback cb = new Callback(); cb.text = new SpannedString(t); cb.Parent = this; this.runOnUiThread(cb); } public void showTaskbarNotification() { showTaskbarNotification("SDL application paused", "SDL application", "Application is paused, click to activate"); } //private TucnakService Service; //static int NOTIFY_ID = 1236709873; // Random ID // Stolen from SDL port by Mamaich public void showTaskbarNotification(String text0, String text1, String text2) { NotificationManager NotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Intent intent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK); Notification n = new Notification(R.drawable.icon, text0, System.currentTimeMillis()); n.setLatestEventInfo(this, text1, text2, pendingIntent); //n.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR; //n.flags |= Notification.FLAG_NO_CLEAR; // http://stackoverflow.com/questions/13427204/non-removable-notification //NotificationManager.notify(NOTIFY_ID, n); //Service = new TucnakService(); // Service.start(n); // Service.startForeground(NOTIFY_ID, n); Intent service = new Intent(this, TucnakService.class); startService(service); } public void hideTaskbarNotification() { System.out.println("tucnak: hideTaskbarNotification"); //Service.stop(); } public void LoadLibraries() { try { if(Globals.NeedGles2) System.loadLibrary("GLESv2"); System.out.println("tucnak: loaded GLESv2 lib"); } catch ( UnsatisfiedLinkError e ) { System.out.println("tucnak: Cannot load GLESv2 lib"); } try { for(String l : Globals.AppLibraries) { try { String libname = System.mapLibraryName(l); File libpath = new File(getFilesDir().getAbsolutePath() + "/../lib/" + libname); //System.out.println("tucnak: loading lib " + libpath.getAbsolutePath()); System.load(libpath.getPath()); } catch( UnsatisfiedLinkError e ) { System.out.println("tucnak: error loading lib " + l + ": " + e.toString()); System.loadLibrary(l); } } } catch ( UnsatisfiedLinkError e ) { try { System.out.println("tucnak: Extracting APP2SD-ed libs"); InputStream in = null; try { for( int i = 0; ; i++ ) { InputStream in2 = getAssets().open("bindata" + String.valueOf(i)); if( in == null ) in = in2; else in = new SequenceInputStream( in, in2 ); } } catch( IOException ee ) { } if( in == null ) throw new RuntimeException("tucnak: Extracting APP2SD-ed libs failed, the .apk file packaged incorrectly"); ZipInputStream zip = new ZipInputStream(in); File cacheDir = getCacheDir(); try { cacheDir.mkdirs(); } catch( SecurityException ee ) { }; byte[] buf = new byte[16384]; while(true) { ZipEntry entry = null; entry = zip.getNextEntry(); /* if( entry != null ) System.out.println("Extracting lib " + entry.getName()); */ if( entry == null ) { System.out.println("Extracting libs finished"); break; } if( entry.isDirectory() ) { File outDir = new File( cacheDir.getAbsolutePath() + "/" + entry.getName() ); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); continue; } OutputStream out = null; String path = cacheDir.getAbsolutePath() + "/" + entry.getName(); try { File outDir = new File( path.substring(0, path.lastIndexOf("/") )); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); } catch( SecurityException eeeee ) { }; System.out.println("Saving to file '" + path + "'"); out = new FileOutputStream( path ); int len = zip.read(buf); while (len >= 0) { if(len > 0) out.write(buf, 0, len); len = zip.read(buf); } out.flush(); out.close(); } for(String l : Globals.AppLibraries) { String libname = System.mapLibraryName(l); File libpath = new File(cacheDir, libname); System.out.println("tucnak: loading lib " + libpath.getPath()); System.load(libpath.getPath()); libpath.delete(); } } catch ( Exception ee ) { System.out.println("tucnak: Error: " + ee.toString()); } } // ----- VCMI hack ----- try { //System.out.println("tucnak: Extracting binaries"); InputStream in = null; try { for( int i = 0; ; i++ ) { InputStream in2 = getAssets().open("binaries.zip" + String.format("%02d", i)); if( in == null ) in = in2; else in = new SequenceInputStream( in, in2 ); } } catch( IOException ee ) { try { if( in == null ) in = getAssets().open("binaries.zip"); } catch( IOException eee ) {} } if( in == null ) throw new RuntimeException("tucnak: Extracting binaries failed, the .apk file packaged incorrectly"); ZipInputStream zip = new ZipInputStream(in); File cacheDir = getFilesDir(); try { cacheDir.mkdirs(); } catch( SecurityException ee ) { }; byte[] buf = new byte[16384]; while(true) { ZipEntry entry = null; entry = zip.getNextEntry(); /* if( entry != null ) System.out.println("Extracting lib " + entry.getName()); */ if( entry == null ) { System.out.println("Extracting binaries finished"); break; } if( entry.isDirectory() ) { File outDir = new File( cacheDir.getAbsolutePath() + "/" + entry.getName() ); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); continue; } OutputStream out = null; String path = cacheDir.getAbsolutePath() + "/" + entry.getName(); try { File outDir = new File( path.substring(0, path.lastIndexOf("/") )); if( !(outDir.exists() && outDir.isDirectory()) ) outDir.mkdirs(); } catch( SecurityException eeeeeee ) { }; try { CheckedInputStream check = new CheckedInputStream( new FileInputStream(path), new CRC32() ); while( check.read(buf, 0, buf.length) > 0 ) {}; check.close(); if( check.getChecksum().getValue() != entry.getCrc() ) { File ff = new File(path); ff.delete(); throw new Exception(); } System.out.println("File '" + path + "' exists and passed CRC check - not overwriting it"); continue; } catch( Exception eeeeee ) { } System.out.println("Saving to file '" + path + "'"); out = new FileOutputStream( path ); int len = zip.read(buf); while (len >= 0) { if(len > 0) out.write(buf, 0, len); len = zip.read(buf); } out.flush(); out.close(); Settings.nativeChmod(path, 0755); } } catch ( Exception eee ) { //System.out.println("tucnak: Error: " + eee.toString()); } // ----- VCMI hack ----- }; public static void LoadApplicationLibrary(final Context context) { String libs[] = { "application", "sdl_main" }; try { for(String l : libs) { System.loadLibrary(l); } } catch ( UnsatisfiedLinkError e ) { System.out.println("tucnak: error loading lib: " + e.toString()); try { for(String l : libs) { String libname = System.mapLibraryName(l); File libpath = new File(context.getCacheDir(), libname); System.out.println("tucnak: loading lib " + libpath.getPath()); System.load(libpath.getPath()); libpath.delete(); } } catch ( UnsatisfiedLinkError ee ) { System.out.println("tucnak: error loading lib: " + ee.toString()); } } } public int getApplicationVersion() { try { PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0); return packageInfo.versionCode; } catch (PackageManager.NameNotFoundException e) { System.out.println("tucnak: Cannot get the version of our own package: " + e); } return 0; } public boolean isCurrentOrientationHorizontal() { Display getOrient = getWindowManager().getDefaultDisplay(); return getOrient.getWidth() >= getOrient.getHeight(); } public FrameLayout getVideoLayout() { return _videoLayout; } private static DemoGLSurfaceView mGLView = null; private static AudioThread mAudioThread = null; private static DataDownloader downloader = null; private TextView _tv = null; private Button _btn = null; private LinearLayout _layout = null; private LinearLayout _layout2 = null; private Advertisement _ad = null; private FrameLayout _videoLayout = null; private EditText _screenKeyboard = null; private boolean sdlInited = false; public Settings.TouchEventsListener touchListener = null; public Settings.KeyEventsListener keyListener = null; boolean _isPaused = false; private InputMethodManager _inputManager = null; public LinkedList textInput = new LinkedList (); public static MainActivity instance = null; } // *** HONEYCOMB / ICS FIX FOR FULLSCREEN MODE, by lmak *** abstract class DimSystemStatusBar { public static DimSystemStatusBar get() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) return DimSystemStatusBarHoneycomb.Holder.sInstance; else return DimSystemStatusBarDummy.Holder.sInstance; } public abstract void dim(final View view); private static class DimSystemStatusBarHoneycomb extends DimSystemStatusBar { private static class Holder { private static final DimSystemStatusBarHoneycomb sInstance = new DimSystemStatusBarHoneycomb(); } public void dim(final View view) { /* if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) { // ICS has the same constant redefined with a different name. hiddenStatusCode = android.view.View.SYSTEM_UI_FLAG_LOW_PROFILE; } */ view.setSystemUiVisibility(android.view.View.STATUS_BAR_HIDDEN); } } private static class DimSystemStatusBarDummy extends DimSystemStatusBar { private static class Holder { private static final DimSystemStatusBarDummy sInstance = new DimSystemStatusBarDummy(); } public void dim(final View view) { } } } tucnak-4.04/android/src/Settings.java0000644000175000017500000025647512220740766014552 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.MotionEvent; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import android.util.Log; import java.io.*; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Environment; import android.os.StatFs; import java.util.Locale; import java.util.ArrayList; import java.util.Arrays; import java.util.zip.GZIPInputStream; import java.util.Collections; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import java.lang.String; import android.graphics.Matrix; import android.graphics.RectF; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.FrameLayout; import android.graphics.drawable.BitmapDrawable; import android.graphics.BitmapFactory; import android.graphics.Bitmap; import android.widget.TextView; import android.widget.EditText; import android.text.Editable; import android.text.SpannedString; import android.content.Intent; import android.app.PendingIntent; import android.app.AlarmManager; import android.util.DisplayMetrics; import android.net.Uri; import java.util.concurrent.Semaphore; // TODO: too much code here, split into multiple files, possibly auto-generated menus? class Settings { // static String SettingsFileName = "libsdl-settings.cfg"; static boolean settingsLoaded = false; static boolean settingsChanged = false; static final int SETTINGS_FILE_VERSION = 5; static void Save(final MainActivity p) { /*try { ObjectOutputStream out = new ObjectOutputStream(p.openFileOutput( SettingsFileName, p.MODE_WORLD_READABLE )); out.writeInt(SETTINGS_FILE_VERSION); out.writeBoolean(Globals.DownloadToSdcard); out.writeBoolean(Globals.PhoneHasArrowKeys); out.writeBoolean(Globals.PhoneHasTrackball); out.writeBoolean(Globals.UseAccelerometerAsArrowKeys); out.writeBoolean(Globals.UseTouchscreenKeyboard); out.writeInt(Globals.TouchscreenKeyboardSize); out.writeInt(Globals.AccelerometerSensitivity); out.writeInt(Globals.AccelerometerCenterPos); out.writeInt(Globals.TrackballDampening); out.writeInt(Globals.AudioBufferConfig); out.writeInt(Globals.TouchscreenKeyboardTheme); out.writeInt(Globals.RightClickMethod); out.writeInt(Globals.ShowScreenUnderFinger); out.writeInt(Globals.LeftClickMethod); out.writeBoolean(Globals.MoveMouseWithJoystick); out.writeBoolean(Globals.ClickMouseWithDpad); out.writeInt(Globals.ClickScreenPressure); out.writeInt(Globals.ClickScreenTouchspotSize); out.writeBoolean(Globals.KeepAspectRatio); out.writeInt(Globals.MoveMouseWithJoystickSpeed); out.writeInt(Globals.MoveMouseWithJoystickAccel); out.writeInt(SDL_Keys.JAVA_KEYCODE_LAST); for( int i = 0; i < SDL_Keys.JAVA_KEYCODE_LAST; i++ ) { out.writeInt(Globals.RemapHwKeycode[i]); } out.writeInt(Globals.RemapScreenKbKeycode.length); for( int i = 0; i < Globals.RemapScreenKbKeycode.length; i++ ) { out.writeInt(Globals.RemapScreenKbKeycode[i]); } out.writeInt(Globals.ScreenKbControlsShown.length); for( int i = 0; i < Globals.ScreenKbControlsShown.length; i++ ) { out.writeBoolean(Globals.ScreenKbControlsShown[i]); } out.writeInt(Globals.TouchscreenKeyboardTransparency); out.writeInt(Globals.RemapMultitouchGestureKeycode.length); for( int i = 0; i < Globals.RemapMultitouchGestureKeycode.length; i++ ) { out.writeInt(Globals.RemapMultitouchGestureKeycode[i]); out.writeBoolean(Globals.MultitouchGesturesUsed[i]); } out.writeInt(Globals.MultitouchGestureSensitivity); for( int i = 0; i < Globals.TouchscreenCalibration.length; i++ ) out.writeInt(Globals.TouchscreenCalibration[i]); out.writeInt(Globals.DataDir.length()); for( int i = 0; i < Globals.DataDir.length(); i++ ) out.writeChar(Globals.DataDir.charAt(i)); out.writeInt(Globals.CommandLine.length()); for( int i = 0; i < Globals.CommandLine.length(); i++ ) out.writeChar(Globals.CommandLine.charAt(i)); out.writeInt(Globals.ScreenKbControlsLayout.length); for( int i = 0; i < Globals.ScreenKbControlsLayout.length; i++ ) for( int ii = 0; ii < 4; ii++ ) out.writeInt(Globals.ScreenKbControlsLayout[i][ii]); out.writeInt(Globals.LeftClickKey); out.writeInt(Globals.RightClickKey); out.writeBoolean(Globals.VideoLinearFilter); out.writeInt(Globals.LeftClickTimeout); out.writeInt(Globals.RightClickTimeout); out.writeBoolean(Globals.RelativeMouseMovement); out.writeInt(Globals.RelativeMouseMovementSpeed); out.writeInt(Globals.RelativeMouseMovementAccel); out.writeBoolean(Globals.MultiThreadedVideo); out.writeInt(Globals.OptionalDataDownload.length); for(int i = 0; i < Globals.OptionalDataDownload.length; i++) out.writeBoolean(Globals.OptionalDataDownload[i]); out.writeBoolean(Globals.BrokenLibCMessageShown); out.writeInt(Globals.TouchscreenKeyboardDrawSize); out.writeInt(p.getApplicationVersion()); out.close(); settingsLoaded = true; } catch( FileNotFoundException e ) { } catch( SecurityException e ) { } catch ( IOException e ) {};*/ } static void Load( final MainActivity p ) { if(settingsLoaded) // Prevent starting twice { return; } // System.out.println("libSDL: Settings.Load(): enter"); nativeInitKeymap(); for( int i = 0; i < SDL_Keys.JAVA_KEYCODE_LAST; i++ ) { int sdlKey = nativeGetKeymapKey(i); int idx = 0; for(int ii = 0; ii < SDL_Keys.values.length; ii++) if(SDL_Keys.values[ii] == sdlKey) idx = ii; Globals.RemapHwKeycode[i] = idx; } for( int i = 0; i < Globals.RemapScreenKbKeycode.length; i++ ) { int sdlKey = nativeGetKeymapKeyScreenKb(i); int idx = 0; for(int ii = 0; ii < SDL_Keys.values.length; ii++) if(SDL_Keys.values[ii] == sdlKey) idx = ii; Globals.RemapScreenKbKeycode[i] = idx; } Globals.ScreenKbControlsShown[0] = Globals.AppNeedsArrowKeys; Globals.ScreenKbControlsShown[1] = Globals.AppNeedsTextInput; for( int i = 2; i < Globals.ScreenKbControlsShown.length; i++ ) Globals.ScreenKbControlsShown[i] = ( i - 2 < Globals.AppTouchscreenKeyboardKeysAmount ); for( int i = 0; i < Globals.RemapMultitouchGestureKeycode.length; i++ ) { int sdlKey = nativeGetKeymapKeyMultitouchGesture(i); int idx = 0; for(int ii = 0; ii < SDL_Keys.values.length; ii++) if(SDL_Keys.values[ii] == sdlKey) idx = ii; Globals.RemapMultitouchGestureKeycode[i] = idx; } for( int i = 0; i < Globals.MultitouchGesturesUsed.length; i++ ) Globals.MultitouchGesturesUsed[i] = true; System.out.println("android.os.Build.MODEL: " + android.os.Build.MODEL); if( (android.os.Build.MODEL.equals("GT-N7000") || android.os.Build.MODEL.equals("SGH-I717")) && android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.GINGERBREAD_MR1 ) { // Samsung Galaxy Note generates a keypress when you hover a stylus over the screen, and that messes up OpenTTD dialogs // ICS update sends events in a proper way Globals.RemapHwKeycode[112] = SDL_1_2_Keycodes.SDLK_UNKNOWN; } /*try { ObjectInputStream settingsFile = new ObjectInputStream(new FileInputStream( p.getFilesDir().getAbsolutePath() + "/" + SettingsFileName )); if( settingsFile.readInt() != SETTINGS_FILE_VERSION ) throw new IOException(); Globals.DownloadToSdcard = settingsFile.readBoolean(); Globals.PhoneHasArrowKeys = settingsFile.readBoolean(); Globals.PhoneHasTrackball = settingsFile.readBoolean(); Globals.UseAccelerometerAsArrowKeys = settingsFile.readBoolean(); Globals.UseTouchscreenKeyboard = settingsFile.readBoolean(); Globals.TouchscreenKeyboardSize = settingsFile.readInt(); Globals.AccelerometerSensitivity = settingsFile.readInt(); Globals.AccelerometerCenterPos = settingsFile.readInt(); Globals.TrackballDampening = settingsFile.readInt(); Globals.AudioBufferConfig = settingsFile.readInt(); Globals.TouchscreenKeyboardTheme = settingsFile.readInt(); Globals.RightClickMethod = settingsFile.readInt(); Globals.ShowScreenUnderFinger = settingsFile.readInt(); Globals.LeftClickMethod = settingsFile.readInt(); Globals.MoveMouseWithJoystick = settingsFile.readBoolean(); Globals.ClickMouseWithDpad = settingsFile.readBoolean(); Globals.ClickScreenPressure = settingsFile.readInt(); Globals.ClickScreenTouchspotSize = settingsFile.readInt(); Globals.KeepAspectRatio = settingsFile.readBoolean(); Globals.MoveMouseWithJoystickSpeed = settingsFile.readInt(); Globals.MoveMouseWithJoystickAccel = settingsFile.readInt(); int readKeys = settingsFile.readInt(); for( int i = 0; i < readKeys; i++ ) { Globals.RemapHwKeycode[i] = settingsFile.readInt(); } if( settingsFile.readInt() != Globals.RemapScreenKbKeycode.length ) throw new IOException(); for( int i = 0; i < Globals.RemapScreenKbKeycode.length; i++ ) { Globals.RemapScreenKbKeycode[i] = settingsFile.readInt(); } if( settingsFile.readInt() != Globals.ScreenKbControlsShown.length ) throw new IOException(); for( int i = 0; i < Globals.ScreenKbControlsShown.length; i++ ) { Globals.ScreenKbControlsShown[i] = settingsFile.readBoolean(); } Globals.TouchscreenKeyboardTransparency = settingsFile.readInt(); if( settingsFile.readInt() != Globals.RemapMultitouchGestureKeycode.length ) throw new IOException(); for( int i = 0; i < Globals.RemapMultitouchGestureKeycode.length; i++ ) { Globals.RemapMultitouchGestureKeycode[i] = settingsFile.readInt(); Globals.MultitouchGesturesUsed[i] = settingsFile.readBoolean(); } Globals.MultitouchGestureSensitivity = settingsFile.readInt(); for( int i = 0; i < Globals.TouchscreenCalibration.length; i++ ) Globals.TouchscreenCalibration[i] = settingsFile.readInt(); StringBuilder b = new StringBuilder(); int len = settingsFile.readInt(); for( int i = 0; i < len; i++ ) b.append( settingsFile.readChar() ); Globals.DataDir = b.toString(); b = new StringBuilder(); len = settingsFile.readInt(); for( int i = 0; i < len; i++ ) b.append( settingsFile.readChar() ); Globals.CommandLine = b.toString(); if( settingsFile.readInt() != Globals.ScreenKbControlsLayout.length ) throw new IOException(); for( int i = 0; i < Globals.ScreenKbControlsLayout.length; i++ ) for( int ii = 0; ii < 4; ii++ ) Globals.ScreenKbControlsLayout[i][ii] = settingsFile.readInt(); Globals.LeftClickKey = settingsFile.readInt(); Globals.RightClickKey = settingsFile.readInt(); Globals.VideoLinearFilter = settingsFile.readBoolean(); Globals.LeftClickTimeout = settingsFile.readInt(); Globals.RightClickTimeout = settingsFile.readInt(); Globals.RelativeMouseMovement = settingsFile.readBoolean(); Globals.RelativeMouseMovementSpeed = settingsFile.readInt(); Globals.RelativeMouseMovementAccel = settingsFile.readInt(); Globals.MultiThreadedVideo = settingsFile.readBoolean(); Globals.OptionalDataDownload = new boolean[settingsFile.readInt()]; for(int i = 0; i < Globals.OptionalDataDownload.length; i++) Globals.OptionalDataDownload[i] = settingsFile.readBoolean(); Globals.BrokenLibCMessageShown = settingsFile.readBoolean(); Globals.TouchscreenKeyboardDrawSize = settingsFile.readInt(); int cfgVersion = settingsFile.readInt(); System.out.println("libSDL: old cfg version " + cfgVersion + ", our version " + p.getApplicationVersion()); if( cfgVersion < p.getApplicationVersion() ) { DeleteFilesOnUpgrade(); if( Globals.ResetSdlConfigForThisVersion ) { System.out.println("libSDL: old cfg version " + cfgVersion + ", our version " + p.getApplicationVersion() + " and we need to clean up config file"); // Delete settings file, and restart the application settingsFile.close(); ObjectOutputStream out = new ObjectOutputStream(p.openFileOutput( SettingsFileName, p.MODE_WORLD_READABLE )); out.writeInt(-1); out.close(); new File( p.getFilesDir() + "/" + SettingsFileName ).delete(); PendingIntent intent = PendingIntent.getActivity(p, 0, new Intent(p.getIntent()), p.getIntent().getFlags()); AlarmManager mgr = (AlarmManager) p.getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, intent); System.exit(0); } } settingsLoaded = true; System.out.println("libSDL: Settings.Load(): loaded settings successfully"); settingsFile.close(); return; } catch( FileNotFoundException e ) { } catch( SecurityException e ) { } catch ( IOException e ) {}; */ if( Globals.DataDir.length() == 0 ) { if( !Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ) { System.out.println("libSDL: SD card or external storage is not mounted (state " + Environment.getExternalStorageState() + "), switching to the internal storage."); Globals.DownloadToSdcard = false; } Globals.DataDir = Globals.DownloadToSdcard ? SdcardAppPath.getPath(p) : p.getFilesDir().getAbsolutePath(); if( Globals.DownloadToSdcard ) { // Check if data already installed into deprecated location at /sdcard/app-data/ String[] fileList = new File(SdcardAppPath.deprecatedPath(p)).list(); if( fileList != null ) for( String s: fileList ) if( s.toUpperCase().startsWith(DataDownloader.DOWNLOAD_FLAG_FILENAME.toUpperCase()) ) Globals.DataDir = SdcardAppPath.deprecatedPath(p); } } // System.out.println("libSDL: Settings.Load(): loading settings failed, running config dialog"); p.setUpStatusLabel(); if( checkRamSize(p) ) showConfig(p, true); } // =============================================================================================== public static abstract class Menu { // Should be overridden by children abstract void run(final MainActivity p); abstract String title(final MainActivity p); boolean enabled() { return true; } // Should not be overridden boolean enabledOrHidden() { for( Menu m: Globals.HiddenMenuOptions ) { if( m.getClass().getName().equals( this.getClass().getName() ) ) return false; } return enabled(); } void showMenuOptionsList(final MainActivity p, final Menu[] list) { menuStack.add(this); ArrayList items = new ArrayList (); for( Menu m: list ) { if(m.enabledOrHidden()) items.add(m.title(p)); } AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(title(p)); builder.setItems(items.toArray(new CharSequence[0]), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); int selected = 0; for( Menu m: list ) { if(m.enabledOrHidden()) { if( selected == item ) { m.run(p); return; } selected ++; } } } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBackOuterMenu(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static ArrayList

menuStack = new ArrayList (); public static void showConfig(final MainActivity p, final boolean firstStart) { settingsChanged = true; if( Globals.OptionalDataDownload == null ) { String downloads[] = Globals.DataDownloadUrl.split("\\^"); Globals.OptionalDataDownload = new boolean[downloads.length]; boolean oldFormat = true; for( int i = 0; i < downloads.length; i++ ) { if( downloads[i].indexOf("!") == 0 ) { Globals.OptionalDataDownload[i] = true; oldFormat = false; } } if( oldFormat ) Globals.OptionalDataDownload[0] = true; } if(!firstStart) new MainMenu().run(p); else { if( Globals.StartupMenuButtonTimeout > 0 ) // If we did not disable startup menu altogether { for( Menu m: Globals.FirstStartMenuOptions ) { boolean hidden = false; for( Menu m1: Globals.HiddenMenuOptions ) { if( m1.getClass().getName().equals( m.getClass().getName() ) ) hidden = true; } if( ! hidden ) menuStack.add(m); } } goBack(p); } } static void goBack(final MainActivity p) { if(menuStack.isEmpty()) { Save(p); p.startDownloader(); } else { Menu c = menuStack.remove(menuStack.size() - 1); c.run(p); } } static void goBackOuterMenu(final MainActivity p) { if(!menuStack.isEmpty()) menuStack.remove(menuStack.size() - 1); goBack(p); } static class OkButton extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.ok); } void run (final MainActivity p) { goBackOuterMenu(p); } } static class DummyMenu extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.ok); } void run (final MainActivity p) { goBack(p); } } static class MainMenu extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.device_config); } void run (final MainActivity p) { Menu options[] = { new DownloadConfig(), new OptionalDownloadConfig(false), new AdditionalInputConfig(), new KeyboardConfigMainMenu(), new MouseConfigMainMenu(), new ArrowKeysConfig(), new AccelerometerConfig(), new AudioConfig(), new RemapHwKeysConfig(), new ScreenGesturesConfig(), new VideoSettingsConfig(), new OkButton(), }; showMenuOptionsList(p, options); } } static class MouseConfigMainMenu extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.mouse_emulation); } boolean enabled() { return Globals.AppUsesMouse; } void run (final MainActivity p) { Menu options[] = { new DisplaySizeConfig(false), new LeftClickConfig(), new RightClickConfig(), new AdditionalMouseConfig(), new JoystickMouseConfig(), new TouchPressureMeasurementTool(), new CalibrateTouchscreenMenu(), new OkButton(), }; showMenuOptionsList(p, options); } } static class KeyboardConfigMainMenu extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.controls_screenkb); } boolean enabled() { return Globals.UseTouchscreenKeyboard; } void run (final MainActivity p) { Menu options[] = { new ScreenKeyboardThemeConfig(), new ScreenKeyboardSizeConfig(), new ScreenKeyboardDrawSizeConfig(), new ScreenKeyboardTransparencyConfig(), new RemapScreenKbConfig(), new CustomizeScreenKbLayout(), new OkButton(), }; showMenuOptionsList(p, options); } } static class DownloadConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.storage_question); } void run (final MainActivity p) { long freeSdcard = 0; long freePhone = 0; try { StatFs sdcard = new StatFs(Environment.getExternalStorageDirectory().getPath()); StatFs phone = new StatFs(Environment.getDataDirectory().getPath()); freeSdcard = (long)sdcard.getAvailableBlocks() * sdcard.getBlockSize() / 1024 / 1024; freePhone = (long)phone.getAvailableBlocks() * phone.getBlockSize() / 1024 / 1024; } catch(Exception e) {} final CharSequence[] items = { p.getResources().getString(R.string.storage_phone, freePhone), p.getResources().getString(R.string.storage_sd, freeSdcard), p.getResources().getString(R.string.storage_custom) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.storage_question)); builder.setSingleChoiceItems(items, Globals.DownloadToSdcard ? 1 : 0, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); if( item == 2 ) showCustomDownloadDirConfig(p); else { Globals.DownloadToSdcard = (item != 0); Globals.DataDir = Globals.DownloadToSdcard ? Environment.getExternalStorageDirectory().getAbsolutePath() + "/app-data/" + Globals.class.getPackage().getName() : p.getFilesDir().getAbsolutePath(); goBack(p); } } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showCustomDownloadDirConfig(final MainActivity p) { AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.storage_custom)); final EditText edit = new EditText(p); edit.setFocusableInTouchMode(true); edit.setFocusable(true); edit.setText(Globals.DataDir); builder.setView(edit); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.DataDir = edit.getText().toString(); dialog.dismiss(); showCommandLineConfig(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showCommandLineConfig(final MainActivity p) { AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.storage_commandline)); final EditText edit = new EditText(p); edit.setFocusableInTouchMode(true); edit.setFocusable(true); edit.setText(Globals.CommandLine); builder.setView(edit); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.CommandLine = edit.getText().toString(); dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class OptionalDownloadConfig extends Menu { boolean firstStart = false; OptionalDownloadConfig() { firstStart = false; } OptionalDownloadConfig(boolean firstStart) { this.firstStart = firstStart; } String title(final MainActivity p) { return p.getResources().getString(R.string.downloads); } void run (final MainActivity p) { String [] downloadFiles = Globals.DataDownloadUrl.split("\\^"); final boolean [] mandatory = new boolean[downloadFiles.length]; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.downloads)); CharSequence[] items = new CharSequence[downloadFiles.length]; for(int i = 0; i < downloadFiles.length; i++ ) { items[i] = new String(downloadFiles[i].split("[|]")[0]); if( items[i].toString().indexOf("!") == 0 ) items[i] = items[i].toString().substring(1); if( items[i].toString().indexOf("!") == 0 ) { items[i] = items[i].toString().substring(1); mandatory[i] = true; } } if( Globals.OptionalDataDownload == null || Globals.OptionalDataDownload.length != items.length ) { Globals.OptionalDataDownload = new boolean[downloadFiles.length]; boolean oldFormat = true; for( int i = 0; i < downloadFiles.length; i++ ) { if( downloadFiles[i].indexOf("!") == 0 ) { Globals.OptionalDataDownload[i] = true; oldFormat = false; } } if( oldFormat ) { Globals.OptionalDataDownload[0] = true; mandatory[0] = true; } } builder.setMultiChoiceItems(items, Globals.OptionalDataDownload, new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int item, boolean isChecked) { Globals.OptionalDataDownload[item] = isChecked; if( mandatory[item] && !isChecked ) { Globals.OptionalDataDownload[item] = true; ((AlertDialog)dialog).getListView().setItemChecked(item, true); } } }); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); goBack(p); } }); if( firstStart ) { builder.setNegativeButton(p.getResources().getString(R.string.show_more_options), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); menuStack.clear(); new MainMenu().run(p); } }); } builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class AdditionalInputConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.controls_additional); } void run (final MainActivity p) { CharSequence[] items = { p.getResources().getString(R.string.controls_screenkb), p.getResources().getString(R.string.controls_accelnav) }; boolean defaults[] = { Globals.UseTouchscreenKeyboard, Globals.UseAccelerometerAsArrowKeys }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.controls_additional)); builder.setMultiChoiceItems(items, defaults, new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int item, boolean isChecked) { if( item == 0 ) Globals.UseTouchscreenKeyboard = isChecked; if( item == 1 ) Globals.UseAccelerometerAsArrowKeys = isChecked; } }); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class AccelerometerConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.accel_question); } boolean enabled() { return Globals.UseAccelerometerAsArrowKeys; } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.accel_fast), p.getResources().getString(R.string.accel_medium), p.getResources().getString(R.string.accel_slow) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.accel_question); builder.setSingleChoiceItems(items, Globals.AccelerometerSensitivity, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.AccelerometerSensitivity = item; dialog.dismiss(); showAccelerometerCenterConfig(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showAccelerometerCenterConfig(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.accel_floating), p.getResources().getString(R.string.accel_fixed_start), p.getResources().getString(R.string.accel_fixed_horiz) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.accel_question_center); builder.setSingleChoiceItems(items, Globals.AccelerometerCenterPos, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.AccelerometerCenterPos = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class ScreenKeyboardSizeConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.controls_screenkb_size); } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.controls_screenkb_large), p.getResources().getString(R.string.controls_screenkb_medium), p.getResources().getString(R.string.controls_screenkb_small), p.getResources().getString(R.string.controls_screenkb_tiny) }; for( int i = 0; i < Globals.ScreenKbControlsLayout.length; i++ ) for( int ii = 0; ii < 4; ii++ ) Globals.ScreenKbControlsLayout[i][ii] = 0; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.controls_screenkb_size)); builder.setSingleChoiceItems(items, Globals.TouchscreenKeyboardSize, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.TouchscreenKeyboardSize = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class ScreenKeyboardDrawSizeConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.controls_screenkb_drawsize); } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.controls_screenkb_large), p.getResources().getString(R.string.controls_screenkb_medium), p.getResources().getString(R.string.controls_screenkb_small), p.getResources().getString(R.string.controls_screenkb_tiny) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.controls_screenkb_drawsize)); builder.setSingleChoiceItems(items, Globals.TouchscreenKeyboardDrawSize, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.TouchscreenKeyboardDrawSize = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class ScreenKeyboardThemeConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.controls_screenkb_theme); } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.controls_screenkb_by, "Ultimate Droid", "Sean Stieber"), p.getResources().getString(R.string.controls_screenkb_by, "Simple Theme", "Beholder"), p.getResources().getString(R.string.controls_screenkb_by, "Sun", "Sirea") }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.controls_screenkb_theme)); builder.setSingleChoiceItems(items, Globals.TouchscreenKeyboardTheme, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.TouchscreenKeyboardTheme = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class ScreenKeyboardTransparencyConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.controls_screenkb_transparency); } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.controls_screenkb_trans_0), p.getResources().getString(R.string.controls_screenkb_trans_1), p.getResources().getString(R.string.controls_screenkb_trans_2), p.getResources().getString(R.string.controls_screenkb_trans_3), p.getResources().getString(R.string.controls_screenkb_trans_4) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.controls_screenkb_transparency)); builder.setSingleChoiceItems(items, Globals.TouchscreenKeyboardTransparency, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.TouchscreenKeyboardTransparency = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class AudioConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.audiobuf_question); } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.audiobuf_verysmall), p.getResources().getString(R.string.audiobuf_small), p.getResources().getString(R.string.audiobuf_medium), p.getResources().getString(R.string.audiobuf_large) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.audiobuf_question); builder.setSingleChoiceItems(items, Globals.AudioBufferConfig, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.AudioBufferConfig = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class DisplaySizeConfig extends Menu { boolean firstStart = false; DisplaySizeConfig() { this.firstStart = false; } DisplaySizeConfig(boolean firstStart) { this.firstStart = firstStart; } String title(final MainActivity p) { return p.getResources().getString(R.string.display_size_mouse); } void run (final MainActivity p) { CharSequence[] items = { p.getResources().getString(R.string.display_size_tiny_touchpad), p.getResources().getString(R.string.display_size_tiny), p.getResources().getString(R.string.display_size_small), p.getResources().getString(R.string.display_size_small_touchpad), p.getResources().getString(R.string.display_size_large), }; int _size_tiny_touchpad = 0; int _size_tiny = 1; int _size_small = 2; int _size_small_touchpad = 3; int _size_large = 4; int _more_options = 5; if( ! Globals.SwVideoMode ) { CharSequence[] items2 = { p.getResources().getString(R.string.display_size_small_touchpad), p.getResources().getString(R.string.display_size_large), }; items = items2; _size_small_touchpad = 0; _size_large = 1; _size_tiny_touchpad = _size_tiny = _size_small = 1000; } if( firstStart ) { CharSequence[] items2 = { p.getResources().getString(R.string.display_size_tiny_touchpad), p.getResources().getString(R.string.display_size_tiny), p.getResources().getString(R.string.display_size_small), p.getResources().getString(R.string.display_size_small_touchpad), p.getResources().getString(R.string.display_size_large), p.getResources().getString(R.string.show_more_options), }; items = items2; if( ! Globals.SwVideoMode ) { CharSequence[] items3 = { p.getResources().getString(R.string.display_size_small_touchpad), p.getResources().getString(R.string.display_size_large), p.getResources().getString(R.string.show_more_options), }; items = items3; _more_options = 3; } } // Java is so damn worse than C++11 final int size_tiny_touchpad = _size_tiny_touchpad; final int size_tiny = _size_tiny; final int size_small = _size_small; final int size_small_touchpad = _size_small_touchpad; final int size_large = _size_large; final int more_options = _more_options; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.display_size); class ClickListener implements DialogInterface.OnClickListener { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); if( item == size_large ) { Globals.LeftClickMethod = Mouse.LEFT_CLICK_NORMAL; Globals.RelativeMouseMovement = false; Globals.ShowScreenUnderFinger = Mouse.ZOOM_NONE; } if( item == size_small ) { Globals.LeftClickMethod = Mouse.LEFT_CLICK_NEAR_CURSOR; Globals.RelativeMouseMovement = false; Globals.ShowScreenUnderFinger = Mouse.ZOOM_MAGNIFIER; } if( item == size_small_touchpad ) { Globals.LeftClickMethod = Mouse.LEFT_CLICK_WITH_TAP_OR_TIMEOUT; Globals.RelativeMouseMovement = true; Globals.ShowScreenUnderFinger = Mouse.ZOOM_NONE; } if( item == size_tiny ) { Globals.LeftClickMethod = Mouse.LEFT_CLICK_NEAR_CURSOR; Globals.RelativeMouseMovement = false; Globals.ShowScreenUnderFinger = Mouse.ZOOM_SCREEN_TRANSFORM; } if( item == size_tiny_touchpad ) { Globals.LeftClickMethod = Mouse.LEFT_CLICK_WITH_TAP_OR_TIMEOUT; Globals.RelativeMouseMovement = true; Globals.ShowScreenUnderFinger = Mouse.ZOOM_FULLSCREEN_MAGNIFIER; } if( item == more_options ) { menuStack.clear(); new MainMenu().run(p); return; } goBack(p); } } builder.setItems(items, new ClickListener()); /* else builder.setSingleChoiceItems(items, Globals.ShowScreenUnderFinger == Mouse.ZOOM_NONE ? ( Globals.RelativeMouseMovement ? Globals.SwVideoMode ? 2 : 1 : 0 ) : ( Globals.ShowScreenUnderFinger == Mouse.ZOOM_MAGNIFIER && Globals.SwVideoMode ) ? 1 : Globals.ShowScreenUnderFinger + 1, new ClickListener()); */ builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class LeftClickConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.leftclick_question); } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.leftclick_normal), p.getResources().getString(R.string.leftclick_near_cursor), p.getResources().getString(R.string.leftclick_multitouch), p.getResources().getString(R.string.leftclick_pressure), p.getResources().getString(R.string.rightclick_key), p.getResources().getString(R.string.leftclick_timeout), p.getResources().getString(R.string.leftclick_tap), p.getResources().getString(R.string.leftclick_tap_or_timeout) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.leftclick_question); builder.setSingleChoiceItems(items, Globals.LeftClickMethod, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); Globals.LeftClickMethod = item; if( item == Mouse.LEFT_CLICK_WITH_KEY ) p.keyListener = new KeyRemapToolMouseClick(p, true); else if( item == Mouse.LEFT_CLICK_WITH_TIMEOUT || item == Mouse.LEFT_CLICK_WITH_TAP_OR_TIMEOUT ) showLeftClickTimeoutConfig(p); else goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showLeftClickTimeoutConfig(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.leftclick_timeout_time_0), p.getResources().getString(R.string.leftclick_timeout_time_1), p.getResources().getString(R.string.leftclick_timeout_time_2), p.getResources().getString(R.string.leftclick_timeout_time_3), p.getResources().getString(R.string.leftclick_timeout_time_4) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.leftclick_timeout_time); builder.setSingleChoiceItems(items, Globals.LeftClickTimeout, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.LeftClickTimeout = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class RightClickConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.rightclick_question); } boolean enabled() { return Globals.AppNeedsTwoButtonMouse; } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.rightclick_none), p.getResources().getString(R.string.rightclick_multitouch), p.getResources().getString(R.string.rightclick_pressure), p.getResources().getString(R.string.rightclick_key), p.getResources().getString(R.string.leftclick_timeout) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.rightclick_question); builder.setSingleChoiceItems(items, Globals.RightClickMethod, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.RightClickMethod = item; dialog.dismiss(); if( item == Mouse.RIGHT_CLICK_WITH_KEY ) p.keyListener = new KeyRemapToolMouseClick(p, false); else if( item == Mouse.RIGHT_CLICK_WITH_TIMEOUT ) showRightClickTimeoutConfig(p); else goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showRightClickTimeoutConfig(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.leftclick_timeout_time_0), p.getResources().getString(R.string.leftclick_timeout_time_1), p.getResources().getString(R.string.leftclick_timeout_time_2), p.getResources().getString(R.string.leftclick_timeout_time_3), p.getResources().getString(R.string.leftclick_timeout_time_4) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.leftclick_timeout_time); builder.setSingleChoiceItems(items, Globals.RightClickTimeout, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.RightClickTimeout = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } public static class KeyRemapToolMouseClick implements KeyEventsListener { MainActivity p; boolean leftClick; public KeyRemapToolMouseClick(MainActivity _p, boolean leftClick) { p = _p; p.setText(p.getResources().getString(R.string.remap_hwkeys_press)); this.leftClick = leftClick; } public void onKeyEvent(final int keyCode) { p.keyListener = null; int keyIndex = keyCode; if( keyIndex < 0 ) keyIndex = 0; if( keyIndex > SDL_Keys.JAVA_KEYCODE_LAST ) keyIndex = 0; if( leftClick ) Globals.LeftClickKey = keyIndex; else Globals.RightClickKey = keyIndex; goBack(p); } } static class AdditionalMouseConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.pointandclick_question); } void run (final MainActivity p) { CharSequence[] items = { p.getResources().getString(R.string.pointandclick_joystickmouse), p.getResources().getString(R.string.click_with_dpadcenter), p.getResources().getString(R.string.pointandclick_relative) }; boolean defaults[] = { Globals.MoveMouseWithJoystick, Globals.ClickMouseWithDpad, Globals.RelativeMouseMovement }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.pointandclick_question)); builder.setMultiChoiceItems(items, defaults, new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int item, boolean isChecked) { if( item == 0 ) Globals.MoveMouseWithJoystick = isChecked; if( item == 1 ) Globals.ClickMouseWithDpad = isChecked; if( item == 2 ) Globals.RelativeMouseMovement = isChecked; } }); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); if( Globals.RelativeMouseMovement ) showRelativeMouseMovementConfig(p); else goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showRelativeMouseMovementConfig(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.accel_veryslow), p.getResources().getString(R.string.accel_slow), p.getResources().getString(R.string.accel_medium), p.getResources().getString(R.string.accel_fast), p.getResources().getString(R.string.accel_veryfast) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.pointandclick_relative_speed); builder.setSingleChoiceItems(items, Globals.RelativeMouseMovementSpeed, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.RelativeMouseMovementSpeed = item; dialog.dismiss(); showRelativeMouseMovementConfig1(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showRelativeMouseMovementConfig1(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.none), p.getResources().getString(R.string.accel_slow), p.getResources().getString(R.string.accel_medium), p.getResources().getString(R.string.accel_fast) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.pointandclick_relative_accel); builder.setSingleChoiceItems(items, Globals.RelativeMouseMovementAccel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.RelativeMouseMovementAccel = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class ArrowKeysConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.controls_question); } boolean enabled() { return Globals.AppNeedsArrowKeys || Globals.MoveMouseWithJoystick; } void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.controls_arrows), p.getResources().getString(R.string.controls_trackball), p.getResources().getString(R.string.controls_touch) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.controls_question)); builder.setSingleChoiceItems(items, Globals.PhoneHasArrowKeys ? 0 : ( Globals.PhoneHasTrackball ? 1 : 2 ), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.PhoneHasArrowKeys = (item == 0); Globals.PhoneHasTrackball = (item == 1); dialog.dismiss(); if( Globals.PhoneHasTrackball ) showTrackballConfig(p); else goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showTrackballConfig(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.trackball_no_dampening), p.getResources().getString(R.string.trackball_fast), p.getResources().getString(R.string.trackball_medium), p.getResources().getString(R.string.trackball_slow) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.trackball_question)); builder.setSingleChoiceItems(items, Globals.TrackballDampening, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.TrackballDampening = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class JoystickMouseConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.pointandclick_joystickmousespeed); } boolean enabled() { return Globals.MoveMouseWithJoystick; }; void run (final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.accel_slow), p.getResources().getString(R.string.accel_medium), p.getResources().getString(R.string.accel_fast) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.pointandclick_joystickmousespeed); builder.setSingleChoiceItems(items, Globals.MoveMouseWithJoystickSpeed, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.MoveMouseWithJoystickSpeed = item; dialog.dismiss(); showJoystickMouseAccelConfig(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showJoystickMouseAccelConfig(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.none), p.getResources().getString(R.string.accel_slow), p.getResources().getString(R.string.accel_medium), p.getResources().getString(R.string.accel_fast) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.pointandclick_joystickmouseaccel); builder.setSingleChoiceItems(items, Globals.MoveMouseWithJoystickAccel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.MoveMouseWithJoystickAccel = item; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } public interface TouchEventsListener { public void onTouchEvent(final MotionEvent ev); } public interface KeyEventsListener { public void onKeyEvent(final int keyCode); } static class TouchPressureMeasurementTool extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.measurepressure); } boolean enabled() { return Globals.RightClickMethod == Mouse.RIGHT_CLICK_WITH_PRESSURE || Globals.LeftClickMethod == Mouse.LEFT_CLICK_WITH_PRESSURE; }; void run (final MainActivity p) { p.setText(p.getResources().getString(R.string.measurepressure_touchplease)); p.touchListener = new TouchMeasurementTool(p); } public static class TouchMeasurementTool implements TouchEventsListener { MainActivity p; ArrayList force = new ArrayList(); ArrayList radius = new ArrayList(); static final int maxEventAmount = 100; public TouchMeasurementTool(MainActivity _p) { p = _p; } public void onTouchEvent(final MotionEvent ev) { force.add(new Integer((int)(ev.getPressure() * 1000.0))); radius.add(new Integer((int)(ev.getSize() * 1000.0))); p.setText(p.getResources().getString(R.string.measurepressure_response, force.get(force.size()-1), radius.get(radius.size()-1))); try { Thread.sleep(10L); } catch (InterruptedException e) { } if( force.size() >= maxEventAmount ) { p.touchListener = null; Globals.ClickScreenPressure = getAverageForce(); Globals.ClickScreenTouchspotSize = getAverageRadius(); System.out.println("SDL: measured average force " + Globals.ClickScreenPressure + " radius " + Globals.ClickScreenTouchspotSize); goBack(p); } } int getAverageForce() { int avg = 0; for(Integer f: force) { avg += f; } return avg / force.size(); } int getAverageRadius() { int avg = 0; for(Integer r: radius) { avg += r; } return avg / radius.size(); } } } static class RemapHwKeysConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.remap_hwkeys); } //boolean enabled() { return true; }; void run (final MainActivity p) { p.setText(p.getResources().getString(R.string.remap_hwkeys_press)); p.keyListener = new KeyRemapTool(p); } public static class KeyRemapTool implements KeyEventsListener { MainActivity p; public KeyRemapTool(MainActivity _p) { p = _p; } public void onKeyEvent(final int keyCode) { p.keyListener = null; int keyIndex = keyCode; if( keyIndex < 0 ) keyIndex = 0; if( keyIndex > SDL_Keys.JAVA_KEYCODE_LAST ) keyIndex = 0; final int KeyIndexFinal = keyIndex; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.remap_hwkeys_select); builder.setSingleChoiceItems(SDL_Keys.namesSorted, SDL_Keys.namesSortedBackIdx[Globals.RemapHwKeycode[keyIndex]], new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.RemapHwKeycode[KeyIndexFinal] = SDL_Keys.namesSortedIdx[item]; dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } } static class RemapScreenKbConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.remap_screenkb); } //boolean enabled() { return true; }; void run (final MainActivity p) { CharSequence[] items = { p.getResources().getString(R.string.remap_screenkb_joystick), p.getResources().getString(R.string.remap_screenkb_button_text), p.getResources().getString(R.string.remap_screenkb_button) + " 1", p.getResources().getString(R.string.remap_screenkb_button) + " 2", p.getResources().getString(R.string.remap_screenkb_button) + " 3", p.getResources().getString(R.string.remap_screenkb_button) + " 4", p.getResources().getString(R.string.remap_screenkb_button) + " 5", p.getResources().getString(R.string.remap_screenkb_button) + " 6", }; boolean defaults[] = { Globals.ScreenKbControlsShown[0], Globals.ScreenKbControlsShown[1], Globals.ScreenKbControlsShown[2], Globals.ScreenKbControlsShown[3], Globals.ScreenKbControlsShown[4], Globals.ScreenKbControlsShown[5], Globals.ScreenKbControlsShown[6], Globals.ScreenKbControlsShown[7], }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.remap_screenkb)); builder.setMultiChoiceItems(items, defaults, new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int item, boolean isChecked) { if( ! Globals.UseTouchscreenKeyboard ) item += 8; Globals.ScreenKbControlsShown[item] = isChecked; } }); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); showRemapScreenKbConfig2(p, 0); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showRemapScreenKbConfig2(final MainActivity p, final int currentButton) { CharSequence[] items = { p.getResources().getString(R.string.remap_screenkb_button) + " 1", p.getResources().getString(R.string.remap_screenkb_button) + " 2", p.getResources().getString(R.string.remap_screenkb_button) + " 3", p.getResources().getString(R.string.remap_screenkb_button) + " 4", p.getResources().getString(R.string.remap_screenkb_button) + " 5", p.getResources().getString(R.string.remap_screenkb_button) + " 6", }; if( currentButton >= Globals.RemapScreenKbKeycode.length ) { goBack(p); return; } if( ! Globals.ScreenKbControlsShown[currentButton + 2] ) { showRemapScreenKbConfig2(p, currentButton + 1); return; } AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(items[currentButton]); builder.setSingleChoiceItems(SDL_Keys.namesSorted, SDL_Keys.namesSortedBackIdx[Globals.RemapScreenKbKeycode[currentButton]], new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.RemapScreenKbKeycode[currentButton] = SDL_Keys.namesSortedIdx[item]; dialog.dismiss(); showRemapScreenKbConfig2(p, currentButton + 1); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class ScreenGesturesConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.remap_screenkb_button_gestures); } //boolean enabled() { return true; }; void run (final MainActivity p) { CharSequence[] items = { p.getResources().getString(R.string.remap_screenkb_button_zoomin), p.getResources().getString(R.string.remap_screenkb_button_zoomout), p.getResources().getString(R.string.remap_screenkb_button_rotateleft), p.getResources().getString(R.string.remap_screenkb_button_rotateright), }; boolean defaults[] = { Globals.MultitouchGesturesUsed[0], Globals.MultitouchGesturesUsed[1], Globals.MultitouchGesturesUsed[2], Globals.MultitouchGesturesUsed[3], }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.remap_screenkb_button_gestures)); builder.setMultiChoiceItems(items, defaults, new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int item, boolean isChecked) { Globals.MultitouchGesturesUsed[item] = isChecked; } }); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); showScreenGesturesConfig2(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showScreenGesturesConfig2(final MainActivity p) { final CharSequence[] items = { p.getResources().getString(R.string.accel_slow), p.getResources().getString(R.string.accel_medium), p.getResources().getString(R.string.accel_fast), p.getResources().getString(R.string.accel_veryfast) }; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.remap_screenkb_button_gestures_sensitivity); builder.setSingleChoiceItems(items, Globals.MultitouchGestureSensitivity, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.MultitouchGestureSensitivity = item; dialog.dismiss(); showScreenGesturesConfig3(p, 0); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } static void showScreenGesturesConfig3(final MainActivity p, final int currentButton) { CharSequence[] items = { p.getResources().getString(R.string.remap_screenkb_button_zoomin), p.getResources().getString(R.string.remap_screenkb_button_zoomout), p.getResources().getString(R.string.remap_screenkb_button_rotateleft), p.getResources().getString(R.string.remap_screenkb_button_rotateright), }; if( currentButton >= Globals.RemapMultitouchGestureKeycode.length ) { goBack(p); return; } if( ! Globals.MultitouchGesturesUsed[currentButton] ) { showScreenGesturesConfig3(p, currentButton + 1); return; } AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(items[currentButton]); builder.setSingleChoiceItems(SDL_Keys.namesSorted, SDL_Keys.namesSortedBackIdx[Globals.RemapMultitouchGestureKeycode[currentButton]], new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Globals.RemapMultitouchGestureKeycode[currentButton] = SDL_Keys.namesSortedIdx[item]; dialog.dismiss(); showScreenGesturesConfig3(p, currentButton + 1); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } static class CalibrateTouchscreenMenu extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.calibrate_touchscreen); } //boolean enabled() { return true; }; void run (final MainActivity p) { p.setText(p.getResources().getString(R.string.calibrate_touchscreen_touch)); Globals.TouchscreenCalibration[0] = 0; Globals.TouchscreenCalibration[1] = 0; Globals.TouchscreenCalibration[2] = 0; Globals.TouchscreenCalibration[3] = 0; ScreenEdgesCalibrationTool tool = new ScreenEdgesCalibrationTool(p); p.touchListener = tool; p.keyListener = tool; } static class ScreenEdgesCalibrationTool implements TouchEventsListener, KeyEventsListener { MainActivity p; ImageView img; Bitmap bmp; public ScreenEdgesCalibrationTool(MainActivity _p) { p = _p; img = new ImageView(p); img.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); img.setScaleType(ImageView.ScaleType.MATRIX); // bmp = BitmapFactory.decodeResource( p.getResources(), R.drawable.calibrate ); img.setImageBitmap(bmp); Matrix m = new Matrix(); RectF src = new RectF(0, 0, bmp.getWidth(), bmp.getHeight()); RectF dst = new RectF(Globals.TouchscreenCalibration[0], Globals.TouchscreenCalibration[1], Globals.TouchscreenCalibration[2], Globals.TouchscreenCalibration[3]); m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL); img.setImageMatrix(m); p.getVideoLayout().addView(img); } public void onTouchEvent(final MotionEvent ev) { if( Globals.TouchscreenCalibration[0] == Globals.TouchscreenCalibration[1] && Globals.TouchscreenCalibration[1] == Globals.TouchscreenCalibration[2] && Globals.TouchscreenCalibration[2] == Globals.TouchscreenCalibration[3] ) { Globals.TouchscreenCalibration[0] = (int)ev.getX(); Globals.TouchscreenCalibration[1] = (int)ev.getY(); Globals.TouchscreenCalibration[2] = (int)ev.getX(); Globals.TouchscreenCalibration[3] = (int)ev.getY(); } if( ev.getX() < Globals.TouchscreenCalibration[0] ) Globals.TouchscreenCalibration[0] = (int)ev.getX(); if( ev.getY() < Globals.TouchscreenCalibration[1] ) Globals.TouchscreenCalibration[1] = (int)ev.getY(); if( ev.getX() > Globals.TouchscreenCalibration[2] ) Globals.TouchscreenCalibration[2] = (int)ev.getX(); if( ev.getY() > Globals.TouchscreenCalibration[3] ) Globals.TouchscreenCalibration[3] = (int)ev.getY(); Matrix m = new Matrix(); RectF src = new RectF(0, 0, bmp.getWidth(), bmp.getHeight()); RectF dst = new RectF(Globals.TouchscreenCalibration[0], Globals.TouchscreenCalibration[1], Globals.TouchscreenCalibration[2], Globals.TouchscreenCalibration[3]); m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL); img.setImageMatrix(m); } public void onKeyEvent(final int keyCode) { p.touchListener = null; p.keyListener = null; p.getVideoLayout().removeView(img); goBack(p); } } } static class CustomizeScreenKbLayout extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.screenkb_custom_layout); } //boolean enabled() { return true; }; void run (final MainActivity p) { p.setText(p.getResources().getString(R.string.screenkb_custom_layout_help)); CustomizeScreenKbLayoutTool tool = new CustomizeScreenKbLayoutTool(p); p.touchListener = tool; p.keyListener = tool; } static class CustomizeScreenKbLayoutTool implements TouchEventsListener, KeyEventsListener { MainActivity p; FrameLayout layout = null; ImageView imgs[] = new ImageView[Globals.ScreenKbControlsLayout.length]; Bitmap bmps[] = new Bitmap[Globals.ScreenKbControlsLayout.length]; int currentButton = 0; int buttons[] = { /* R.drawable.dpad, R.drawable.keyboard, R.drawable.b1, R.drawable.b2, R.drawable.b3, R.drawable.b4, R.drawable.b5, R.drawable.b6*/ }; public CustomizeScreenKbLayoutTool(MainActivity _p) { p = _p; layout = new FrameLayout(p); p.getVideoLayout().addView(layout); currentButton = 0; setupButton(true); } void setupButton(boolean undo) { do { currentButton += (undo ? -1 : 1); if(currentButton >= Globals.ScreenKbControlsLayout.length) { p.getVideoLayout().removeView(layout); layout = null; p.touchListener = null; p.keyListener = null; goBack(p); return; } if(currentButton < 0) { currentButton = 0; undo = false; } } while( ! Globals.ScreenKbControlsShown[currentButton] ); if( imgs[currentButton] == null ) { imgs[currentButton] = new ImageView(p); imgs[currentButton].setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); imgs[currentButton].setScaleType(ImageView.ScaleType.MATRIX); bmps[currentButton] = BitmapFactory.decodeResource( p.getResources(), buttons[currentButton] ); imgs[currentButton].setImageBitmap(bmps[currentButton]); layout.addView(imgs[currentButton]); } Matrix m = new Matrix(); RectF src = new RectF(0, 0, bmps[currentButton].getWidth(), bmps[currentButton].getHeight()); RectF dst = new RectF(Globals.ScreenKbControlsLayout[currentButton][0], Globals.ScreenKbControlsLayout[currentButton][1], Globals.ScreenKbControlsLayout[currentButton][2], Globals.ScreenKbControlsLayout[currentButton][3]); m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL); imgs[currentButton].setImageMatrix(m); } public void onTouchEvent(final MotionEvent ev) { if(Globals.ScreenKbControlsLayout.length >= currentButton) { setupButton(false); return; } if( ev.getAction() == MotionEvent.ACTION_DOWN ) { Globals.ScreenKbControlsLayout[currentButton][0] = (int)ev.getX(); Globals.ScreenKbControlsLayout[currentButton][1] = (int)ev.getY(); Globals.ScreenKbControlsLayout[currentButton][2] = (int)ev.getX(); Globals.ScreenKbControlsLayout[currentButton][3] = (int)ev.getY(); } if( ev.getAction() == MotionEvent.ACTION_MOVE ) { if( Globals.ScreenKbControlsLayout[currentButton][0] > (int)ev.getX() ) Globals.ScreenKbControlsLayout[currentButton][0] = (int)ev.getX(); if( Globals.ScreenKbControlsLayout[currentButton][1] > (int)ev.getY() ) Globals.ScreenKbControlsLayout[currentButton][1] = (int)ev.getY(); if( Globals.ScreenKbControlsLayout[currentButton][2] < (int)ev.getX() ) Globals.ScreenKbControlsLayout[currentButton][2] = (int)ev.getX(); if( Globals.ScreenKbControlsLayout[currentButton][3] < (int)ev.getY() ) Globals.ScreenKbControlsLayout[currentButton][3] = (int)ev.getY(); } Matrix m = new Matrix(); RectF src = new RectF(0, 0, bmps[currentButton].getWidth(), bmps[currentButton].getHeight()); RectF dst = new RectF(Globals.ScreenKbControlsLayout[currentButton][0], Globals.ScreenKbControlsLayout[currentButton][1], Globals.ScreenKbControlsLayout[currentButton][2], Globals.ScreenKbControlsLayout[currentButton][3]); m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL); imgs[currentButton].setImageMatrix(m); if( ev.getAction() == MotionEvent.ACTION_UP ) setupButton(false); } public void onKeyEvent(final int keyCode) { if( layout != null && imgs[currentButton] != null ) layout.removeView(imgs[currentButton]); imgs[currentButton] = null; setupButton(true); } } } static class VideoSettingsConfig extends Menu { String title(final MainActivity p) { return p.getResources().getString(R.string.video); } //boolean enabled() { return true; }; void run (final MainActivity p) { CharSequence[] items = { p.getResources().getString(R.string.pointandclick_keepaspectratio), p.getResources().getString(R.string.video_smooth) }; boolean defaults[] = { Globals.KeepAspectRatio, Globals.VideoLinearFilter }; if(Globals.SwVideoMode && !Globals.CompatibilityHacksVideo) { CharSequence[] items2 = { p.getResources().getString(R.string.pointandclick_keepaspectratio), p.getResources().getString(R.string.video_smooth), p.getResources().getString(R.string.video_separatethread), }; boolean defaults2[] = { Globals.KeepAspectRatio, Globals.VideoLinearFilter, Globals.MultiThreadedVideo }; items = items2; defaults = defaults2; } if(Globals.Using_SDL_1_3) { CharSequence[] items2 = { p.getResources().getString(R.string.pointandclick_keepaspectratio), }; boolean defaults2[] = { Globals.KeepAspectRatio, }; items = items2; defaults = defaults2; } AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(p.getResources().getString(R.string.video)); builder.setMultiChoiceItems(items, defaults, new DialogInterface.OnMultiChoiceClickListener() { public void onClick(DialogInterface dialog, int item, boolean isChecked) { if( item == 0 ) Globals.KeepAspectRatio = isChecked; if( item == 1 ) Globals.VideoLinearFilter = isChecked; if( item == 2 ) Globals.MultiThreadedVideo = isChecked; } }); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); goBack(p); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { goBack(p); } }); AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); } } public static boolean deleteRecursively(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); for (int i=0; i Globals.TouchscreenCalibration[0] ) nativeSetTouchscreenCalibration(Globals.TouchscreenCalibration[0], Globals.TouchscreenCalibration[1], Globals.TouchscreenCalibration[2], Globals.TouchscreenCalibration[3]); String lang = new String(Locale.getDefault().getLanguage()); if( Locale.getDefault().getCountry().length() > 0 ) lang = lang + "_" + Locale.getDefault().getCountry(); System.out.println( "libSDL: setting envvar LANGUAGE to '" + lang + "'"); nativeSetEnv( "LANG", lang ); nativeSetEnv( "LANGUAGE", lang ); // TODO: get current user name and set envvar USER, the API is not availalbe on Android 1.6 so I don't bother with this nativeSetEnv( "APPDIR", p.getFilesDir().getAbsolutePath() ); nativeSetEnv( "SECURE_STORAGE_DIR", p.getFilesDir().getAbsolutePath() ); nativeSetEnv( "DATADIR", Globals.DataDir ); nativeSetEnv( "UNSECURE_STORAGE_DIR", Globals.DataDir ); nativeSetEnv( "HOME", Globals.DataDir ); try { DisplayMetrics dm = new DisplayMetrics(); p.getWindowManager().getDefaultDisplay().getMetrics(dm); float xx = dm.widthPixels/dm.xdpi; float yy = dm.heightPixels/dm.ydpi; float x = Math.max(xx, yy); float y = Math.min(xx, yy); float displayInches = (float)Math.sqrt( x*x + y*y ); nativeSetEnv( "DISPLAY_SIZE", String.valueOf(displayInches) ); nativeSetEnv( "DISPLAY_SIZE_MM", String.valueOf((int)(displayInches*25.4f)) ); nativeSetEnv( "DISPLAY_WIDTH", String.valueOf(x) ); nativeSetEnv( "DISPLAY_HEIGHT", String.valueOf(y) ); nativeSetEnv( "DISPLAY_WIDTH_MM", String.valueOf((int)(x*25.4f)) ); nativeSetEnv( "DISPLAY_HEIGHT_MM", String.valueOf((int)(y*25.4f)) ); nativeSetEnv( "DISPLAY_RESOLUTION_WIDTH", String.valueOf(Math.max(dm.widthPixels, dm.heightPixels)) ); nativeSetEnv( "DISPLAY_RESOLUTION_HEIGHT", String.valueOf(Math.min(dm.widthPixels, dm.heightPixels)) ); } catch (Exception eeeee) {} } static byte [] loadRaw(Activity p, int res) { byte [] buf = new byte[65536 * 2]; byte [] a = new byte[65536 * 4 * 10]; // We need 2363516 bytes for the Sun theme int written = 0; try{ InputStream is = new GZIPInputStream(p.getResources().openRawResource(res)); int readed = 0; while( (readed = is.read(buf)) >= 0 ) { if( written + readed > a.length ) { byte [] b = new byte [written + readed]; System.arraycopy(a, 0, b, 0, written); a = b; } System.arraycopy(buf, 0, a, written, readed); written += readed; } } catch(Exception e) {}; byte [] b = new byte [written]; System.arraycopy(a, 0, b, 0, written); return b; } static void SetupTouchscreenKeyboardGraphics(Activity p) { if( Globals.UseTouchscreenKeyboard ) { if(Globals.TouchscreenKeyboardTheme < 0) Globals.TouchscreenKeyboardTheme = 0; if(Globals.TouchscreenKeyboardTheme > 2) Globals.TouchscreenKeyboardTheme = 2; /*if( Globals.TouchscreenKeyboardTheme == 0 ) { nativeSetupScreenKeyboardButtons(loadRaw(p, R.raw.ultimatedroid)); } if( Globals.TouchscreenKeyboardTheme == 1 ) { nativeSetupScreenKeyboardButtons(loadRaw(p, R.raw.simpletheme)); } if( Globals.TouchscreenKeyboardTheme == 2 ) { nativeSetupScreenKeyboardButtons(loadRaw(p, R.raw.sun)); } */ } } abstract static class SdcardAppPath { private static SdcardAppPath get() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.FROYO) return Froyo.Holder.sInstance; else return Dummy.Holder.sInstance; } public abstract String path(final Context p); public static String deprecatedPath(final Context p) { return Environment.getExternalStorageDirectory().getAbsolutePath() + "/app-data/" + p.getPackageName(); } public static String getPath(final Context p) { try { return get().path(p); } catch(Exception e) { } return Dummy.Holder.sInstance.path(p); } private static class Froyo extends SdcardAppPath { private static class Holder { private static final Froyo sInstance = new Froyo(); } public String path(final Context p) { return p.getExternalFilesDir(null).getAbsolutePath(); } } private static class Dummy extends SdcardAppPath { private static class Holder { private static final Dummy sInstance = new Dummy(); } public String path(final Context p) { return Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/" + p.getPackageName() + "/files"; } } } static boolean checkRamSize(final MainActivity p) { try { BufferedReader reader = new BufferedReader(new FileReader("/proc/meminfo")); String line = null; while( ( line = reader.readLine() ) != null ) { if( line.indexOf("MemTotal:") == 0 ) { String[] fields = line.split("[ \t]+"); Long size = Long.parseLong(fields[1]); System.out.println("Device RAM size: " + size / 1024 + " Mb, required minimum RAM: " + Globals.AppMinimumRAM + " Mb" ); if( size / 1024 < Globals.AppMinimumRAM ) { settingsChanged = true; AlertDialog.Builder builder = new AlertDialog.Builder(p); builder.setTitle(R.string.not_enough_ram); builder.setMessage(p.getResources().getString( R.string.not_enough_ram_size, Globals.AppMinimumRAM, (int)(size / 1024)) ); builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { p.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + p.getPackageName()))); System.exit(0); } }); builder.setNegativeButton(p.getResources().getString(R.string.ignore), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { showConfig(p, true); return; } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { p.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + p.getPackageName()))); System.exit(0); } }); final AlertDialog alert = builder.create(); alert.setOwnerActivity(p); alert.show(); return false; } } } } catch ( Exception e ) { System.out.println("Error: cannot parse /proc/meminfo: " + e.toString()); } return true; } private static native void nativeSetTrackballUsed(); private static native void nativeSetTrackballDampening(int value); private static native void nativeSetAccelerometerSettings(int sensitivity, int centerPos); private static native void nativeSetMouseUsed(int RightClickMethod, int ShowScreenUnderFinger, int LeftClickMethod, int MoveMouseWithJoystick, int ClickMouseWithDpad, int MaxForce, int MaxRadius, int MoveMouseWithJoystickSpeed, int MoveMouseWithJoystickAccel, int leftClickKeycode, int rightClickKeycode, int leftClickTimeout, int rightClickTimeout, int relativeMovement, int relativeMovementSpeed, int relativeMovementAccel, int showMouseCursor); private static native void nativeSetJoystickUsed(); private static native void nativeSetAccelerometerUsed(); private static native void nativeSetMultitouchUsed(); private static native void nativeSetTouchscreenKeyboardUsed(); private static native void nativeSetVideoLinearFilter(); private static native void nativeSetVideoDepth(int bpp, int gles2); private static native void nativeSetCompatibilityHacks(); private static native void nativeSetVideoMultithreaded(); private static native void nativeSetVideoForceSoftwareMode(); private static native void nativeSetupScreenKeyboard(int size, int drawsize, int theme, int nbuttonsAutoFire, int transparency); private static native void nativeSetupScreenKeyboardButtons(byte[] img); private static native void nativeInitKeymap(); private static native int nativeGetKeymapKey(int key); private static native void nativeSetKeymapKey(int javakey, int key); private static native int nativeGetKeymapKeyScreenKb(int keynum); private static native void nativeSetKeymapKeyScreenKb(int keynum, int key); private static native void nativeSetScreenKbKeyUsed(int keynum, int used); private static native void nativeSetScreenKbKeyLayout(int keynum, int x1, int y1, int x2, int y2); private static native int nativeGetKeymapKeyMultitouchGesture(int keynum); private static native void nativeSetKeymapKeyMultitouchGesture(int keynum, int key); private static native void nativeSetMultitouchGestureSensitivity(int sensitivity); private static native void nativeSetTouchscreenCalibration(int x1, int y1, int x2, int y2); public static native void nativeSetEnv(final String name, final String value); public static native int nativeChmod(final String name, int mode); } tucnak-4.04/android/src/Accelerometer.java0000644000175000017500000000601212052426441015472 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.MotionEvent; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.os.Vibrator; import android.hardware.SensorManager; import android.hardware.SensorEventListener; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.widget.TextView; class AccelerometerReader implements SensorEventListener { private SensorManager _manager = null; public AccelerometerReader(Activity context) { _manager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); start(); } public synchronized void stop() { if( _manager != null ) { _manager.unregisterListener(this); } } public synchronized void start() { if( Globals.UseAccelerometerAsArrowKeys || Globals.AppUsesAccelerometer ) { if( _manager != null ) { System.out.println("libSDL: starting accelerometer"); // TODO: orientation allows for 3rd axis - azimuth, but it will be way too hard to the user // if( ! _manager.registerListener(this, _manager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME) ) _manager.registerListener(this, _manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); } } } public synchronized void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { if( Globals.HorizontalOrientation ) nativeAccelerometer(event.values[1], -event.values[0], event.values[2]); else nativeAccelerometer(event.values[0], event.values[1], event.values[2]); // TODO: not tested! } else { if( Globals.HorizontalOrientation ) nativeOrientation(event.values[1], -event.values[2], event.values[0]); else nativeOrientation(event.values[2], event.values[1], event.values[0]); } } public synchronized void onAccuracyChanged(Sensor s, int a) { } private native void nativeAccelerometer(float accX, float accY, float accZ); private native void nativeOrientation(float accX, float accY, float accZ); } tucnak-4.04/android/src/Advertisement.java0000644000175000017500000000252312052426441015535 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import android.app.Activity; import android.content.Context; import android.view.MotionEvent; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import android.view.View; class Advertisement { MainActivity parent; public Advertisement(MainActivity p) { parent = p; } public View getView() { return null; } public void requestNewAd() { } } tucnak-4.04/android/src/Video.java0000644000175000017500000007015212252076510013774 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import javax.microedition.khronos.opengles.GL10; import javax.microedition.khronos.opengles.GL11; import javax.microedition.khronos.opengles.GL11Ext; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGL11; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.egl.EGLSurface; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.MotionEvent; import android.view.KeyEvent; import android.view.InputDevice; import android.view.Window; import android.view.WindowManager; import android.os.Environment; import java.io.File; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.content.res.Resources; import android.content.res.AssetManager; import android.widget.Toast; import android.widget.TextView; import java.lang.Thread; import java.util.concurrent.locks.ReentrantLock; import android.os.Build; import java.lang.reflect.Method; import java.util.LinkedList; import java.nio.ByteBuffer; import java.nio.ByteOrder; class Mouse { public static final int LEFT_CLICK_NORMAL = 0; public static final int LEFT_CLICK_NEAR_CURSOR = 1; public static final int LEFT_CLICK_WITH_MULTITOUCH = 2; public static final int LEFT_CLICK_WITH_PRESSURE = 3; public static final int LEFT_CLICK_WITH_KEY = 4; public static final int LEFT_CLICK_WITH_TIMEOUT = 5; public static final int LEFT_CLICK_WITH_TAP = 6; public static final int LEFT_CLICK_WITH_TAP_OR_TIMEOUT = 7; public static final int RIGHT_CLICK_NONE = 0; public static final int RIGHT_CLICK_WITH_MULTITOUCH = 1; public static final int RIGHT_CLICK_WITH_PRESSURE = 2; public static final int RIGHT_CLICK_WITH_KEY = 3; public static final int RIGHT_CLICK_WITH_TIMEOUT = 4; public static final int SDL_FINGER_DOWN = 0; public static final int SDL_FINGER_UP = 1; public static final int SDL_FINGER_MOVE = 2; public static final int SDL_FINGER_HOVER = 3; public static final int ZOOM_NONE = 0; public static final int ZOOM_MAGNIFIER = 1; public static final int ZOOM_SCREEN_TRANSFORM = 2; public static final int ZOOM_FULLSCREEN_MAGNIFIER = 3; } abstract class DifferentTouchInput { public abstract void process(final MotionEvent event); public abstract void processGenericEvent(final MotionEvent event); public static boolean ExternalMouseDetected = false; public static DifferentTouchInput getInstance() { boolean multiTouchAvailable1 = false; boolean multiTouchAvailable2 = false; // Not checking for getX(int), getY(int) etc 'cause I'm lazy Method methods [] = MotionEvent.class.getDeclaredMethods(); for(Method m: methods) { if( m.getName().equals("getPointerCount") ) multiTouchAvailable1 = true; if( m.getName().equals("getPointerId") ) multiTouchAvailable2 = true; } try { if( android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH ) { if(android.os.Build.MODEL.equals("GT-N7000") || android.os.Build.MODEL.equals("SGH-I717")) return GalaxyNoteIcsTouchInput.Holder.sInstance; return IcsTouchInput.Holder.sInstance; } if( android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD ) return XperiaPlayTouchpadTouchInput.Holder.sInstance; if (multiTouchAvailable1 && multiTouchAvailable2) return MultiTouchInput.Holder.sInstance; else return SingleTouchInput.Holder.sInstance; } catch( Exception e ) { try { if (multiTouchAvailable1 && multiTouchAvailable2) return MultiTouchInput.Holder.sInstance; else return SingleTouchInput.Holder.sInstance; } catch( Exception ee ) { return SingleTouchInput.Holder.sInstance; } } } private static class SingleTouchInput extends DifferentTouchInput { private static class Holder { private static final SingleTouchInput sInstance = new SingleTouchInput(); } @Override public void processGenericEvent(final MotionEvent event) { process(event); } public void process(final MotionEvent event) { int action = -1; if( event.getAction() == MotionEvent.ACTION_DOWN ) action = Mouse.SDL_FINGER_DOWN; if( event.getAction() == MotionEvent.ACTION_UP ) action = Mouse.SDL_FINGER_UP; if( event.getAction() == MotionEvent.ACTION_MOVE ) action = Mouse.SDL_FINGER_MOVE; if ( action >= 0 ) DemoGLSurfaceView.nativeMotionEvent( (int)event.getX(), (int)event.getY(), action, 0, (int)(event.getPressure() * 1000.0), (int)(event.getSize() * 1000.0) ); } } private static class MultiTouchInput extends DifferentTouchInput { public static final int TOUCH_EVENTS_MAX = 16; // Max multitouch pointers private class touchEvent { public boolean down = false; public int x = 0; public int y = 0; public int pressure = 0; public int size = 0; } protected touchEvent touchEvents[]; MultiTouchInput() { touchEvents = new touchEvent[TOUCH_EVENTS_MAX]; for( int i = 0; i < TOUCH_EVENTS_MAX; i++ ) touchEvents[i] = new touchEvent(); } private static class Holder { private static final MultiTouchInput sInstance = new MultiTouchInput(); } public void processGenericEvent(final MotionEvent event) { process(event); } public void process(final MotionEvent event) { int action = -1; //System.out.println("Got motion event, type " + (int)(event.getAction()) + " X " + (int)event.getX() + " Y " + (int)event.getY()); if( (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP || (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_CANCEL ) { action = Mouse.SDL_FINGER_UP; for( int i = 0; i < TOUCH_EVENTS_MAX; i++ ) { if( touchEvents[i].down ) { touchEvents[i].down = false; DemoGLSurfaceView.nativeMotionEvent( touchEvents[i].x, touchEvents[i].y, action, i, touchEvents[i].pressure, touchEvents[i].size ); } } } if( (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN ) { action = Mouse.SDL_FINGER_DOWN; for( int i = 0; i < event.getPointerCount(); i++ ) { int id = event.getPointerId(i); if( id >= TOUCH_EVENTS_MAX ) id = TOUCH_EVENTS_MAX - 1; touchEvents[id].down = true; touchEvents[id].x = (int)event.getX(i); touchEvents[id].y = (int)event.getY(i); touchEvents[id].pressure = (int)(event.getPressure(i) * 1000.0); touchEvents[id].size = (int)(event.getSize(i) * 1000.0); DemoGLSurfaceView.nativeMotionEvent( touchEvents[id].x, touchEvents[id].y, action, id, touchEvents[id].pressure, touchEvents[id].size ); } } if( (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_MOVE || (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_DOWN || (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP ) { /* String s = "MOVE: ptrs " + event.getPointerCount(); for( int i = 0 ; i < event.getPointerCount(); i++ ) { s += " p" + event.getPointerId(i) + "=" + (int)event.getX(i) + ":" + (int)event.getY(i); } System.out.println(s); */ int pointerReleased = -1; if( (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP ) pointerReleased = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; for( int id = 0; id < TOUCH_EVENTS_MAX; id++ ) { int ii; for( ii = 0; ii < event.getPointerCount(); ii++ ) { if( id == event.getPointerId(ii) ) break; } if( ii >= event.getPointerCount() ) { // Up event if( touchEvents[id].down ) { action = Mouse.SDL_FINGER_UP; touchEvents[id].down = false; DemoGLSurfaceView.nativeMotionEvent( touchEvents[id].x, touchEvents[id].y, action, id, touchEvents[id].pressure, touchEvents[id].size ); } } else { if( pointerReleased == id && touchEvents[pointerReleased].down ) { action = Mouse.SDL_FINGER_UP; touchEvents[id].down = false; } else if( touchEvents[id].down ) { action = Mouse.SDL_FINGER_MOVE; } else { action = Mouse.SDL_FINGER_DOWN; touchEvents[id].down = true; } touchEvents[id].x = (int)event.getX(ii); touchEvents[id].y = (int)event.getY(ii); touchEvents[id].pressure = (int)(event.getPressure(ii) * 1000.0); touchEvents[id].size = (int)(event.getSize(ii) * 1000.0); DemoGLSurfaceView.nativeMotionEvent( touchEvents[id].x, touchEvents[id].y, action, id, touchEvents[id].pressure, touchEvents[id].size ); } } } if( (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_HOVER_MOVE ) // Support bluetooth/USB mouse - available since Android 3.1 { // TODO: it is possible that multiple pointers return that event, but we're handling only pointer #0 if( touchEvents[0].down ) action = Mouse.SDL_FINGER_UP; else action = Mouse.SDL_FINGER_HOVER; touchEvents[0].down = false; touchEvents[0].x = (int)event.getX(); touchEvents[0].y = (int)event.getY(); touchEvents[0].pressure = 0; touchEvents[0].size = 0; DemoGLSurfaceView.nativeMotionEvent( touchEvents[0].x, touchEvents[0].y, action, 0, touchEvents[0].pressure, touchEvents[0].size ); } } } private static class XperiaPlayTouchpadTouchInput extends MultiTouchInput { private static class Holder { private static final XperiaPlayTouchpadTouchInput sInstance = new XperiaPlayTouchpadTouchInput(); } float xmin = 0.0f; float xmax = 1.0f; float ymin = 0.0f; float ymax = 1.0f; float minRange = 1.0f; float xshift = 0.0f; XperiaPlayTouchpadTouchInput() { super(); int[] devIds = InputDevice.getDeviceIds(); for( int id : devIds ) { InputDevice device = InputDevice.getDevice(id); if( device == null ) continue; // System.out.println("tucnak: input device ID " + id + " type " + device.getSources() + " name " + device.getName() ); if( (device.getSources() & InputDevice.SOURCE_TOUCHPAD) != InputDevice.SOURCE_TOUCHPAD ) continue; // System.out.println("tucnak: input device ID " + id + " type " + device.getSources() + " name " + device.getName() + " is a touchpad" ); InputDevice.MotionRange range = device.getMotionRange(MotionEvent.AXIS_X /*, InputDevice.SOURCE_TOUCHPAD*/); if(range != null) { xmin = range.getMin(); xmax = range.getMax() - range.getMin(); // System.out.println("tucnak: touch pad X range " + xmin + ":" + xmax ); } range = device.getMotionRange(MotionEvent.AXIS_Y /*, InputDevice.SOURCE_TOUCHPAD*/); if(range != null) { ymin = range.getMin(); ymax = range.getMax() - range.getMin(); // System.out.println("tucnak: touch pad Y range " + ymin + ":" + ymax ); } // Xperia Play has long wide touchpad with joystick-like embossing on the sides, so we'll leave only a left joystick to function // I don't know how to use the second joystick, so I'll just ignore it for now minRange = Math.min( Math.abs(ymax - ymin), Math.abs(xmax - xmin) ); xshift = xmax - minRange; } } public void process(final MotionEvent event) { boolean hwMouseEvent = ( event.getSource() == InputDevice.SOURCE_MOUSE || event.getSource() == InputDevice.SOURCE_STYLUS || (event.getMetaState() & KeyEvent.FLAG_TRACKING) != 0 ); // Hack to recognize Galaxy Note Gingerbread stylus if( ExternalMouseDetected != hwMouseEvent ) { ExternalMouseDetected = hwMouseEvent; DemoGLSurfaceView.nativeHardwareMouseDetected(hwMouseEvent ? 1 : 0); } super.process(event); } public void processGenericEvent(final MotionEvent event) { if( event.getSource() != InputDevice.SOURCE_TOUCHPAD ) { process(event); return; } /* int x = (int)((event.getX() - xmin) / xmax * 65535.0f); int y = (int)((event.getY() - ymin) / ymax * 65535.0f); */ // Use only right square part of a touch surface - I've heard reports that it breaks functionality, feel free to uncomment and test it. int x = (int)((event.getX() - xshift) / minRange * 65535.0f); int y = (int)((event.getY() - ymin) / minRange * 65535.0f); if( x > 65535 ) x = 65535; if( x < 0 ) x = 0; if( y > 65535 ) y = 65535; if( y < 0 ) y = 0; int down = 1; int multitouch = event.getPointerCount() - 1; if( (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP || (event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_CANCEL ) down = 0; // TODO: we're processing only one touch pointer, touchpad will most probably support multitouch //System.out.println("tucnak: touch pad event: " + x + ":" + y + " action " + event.getAction() + " down " + down + " multitouch " + multitouch ); DemoGLSurfaceView.nativeTouchpad( x, 65535 - y, down, multitouch ); // Y axis is inverted, as you may have guessed } } private static class IcsTouchInput extends XperiaPlayTouchpadTouchInput { private static class Holder { private static final IcsTouchInput sInstance = new IcsTouchInput(); } private int buttonState = 0; public void process(final MotionEvent event) { //System.out.println("Got motion event, type " + (int)(event.getAction()) + " X " + (int)event.getX() + " Y " + (int)event.getY() + " buttons " + buttonState + " source " + event.getSource()); int buttonStateNew = event.getButtonState(); if( buttonStateNew != buttonState ) { for( int i = 1; i <= MotionEvent.BUTTON_FORWARD; i *= 2 ) { if( (buttonStateNew & i) != (buttonState & i) ) DemoGLSurfaceView.nativeMouseButtonsPressed(i, ((buttonStateNew & i) == 0) ? 0 : 1); } buttonState = buttonStateNew; } super.process(event); // Push mouse coordinate first } public void processGenericEvent(final MotionEvent event) { // Process mousewheel if( event.getAction() == MotionEvent.ACTION_SCROLL ) { int scrollX = Math.round(event.getAxisValue(MotionEvent.AXIS_HSCROLL)); int scrollY = Math.round(event.getAxisValue(MotionEvent.AXIS_VSCROLL)); DemoGLSurfaceView.nativeMouseWheel(scrollX, scrollY); return; } super.processGenericEvent(event); } } private static class GalaxyNoteIcsTouchInput extends IcsTouchInput { private static class Holder { private static final GalaxyNoteIcsTouchInput sInstance = new GalaxyNoteIcsTouchInput(); } public void process(final MotionEvent event) { // HACK for Galaxy Note stylus, which pushes the cursor to the lower-right part of the screen, when you lift the stylus. // Also it reports the stylus as the mouse if(! (event.getSource() == InputDevice.SOURCE_MOUSE && (int)event.getX() == 0 && (int)event.getY() == 799)) super.process(event); } } } class DemoRenderer extends GLSurfaceView_SDL.Renderer { public void DisableScreensaver() { class Callback implements Runnable { public MainActivity parent; public void run() { parent.getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } } System.out.println("tucnak: ----------------- DisableScreensaver "); Callback cb = new Callback(); cb.parent = context; context.runOnUiThread(cb); } public DemoRenderer(MainActivity _context) { context = _context; } public void onSurfaceCreated(GL10 gl, EGLConfig config) { // System.out.println("tucnak: DemoRenderer.onSurfaceCreated(): paused " + mPaused + " mFirstTimeStart " + mFirstTimeStart ); mGlSurfaceCreated = true; mGl = gl; if( ! mPaused && ! mFirstTimeStart ) nativeGlContextRecreated(); mFirstTimeStart = false; } public void onSurfaceChanged(GL10 gl, int w, int h) { // System.out.println("tucnak: DemoRenderer.onSurfaceChanged(): paused " + mPaused + " mFirstTimeStart " + mFirstTimeStart ); mWidth = w; mHeight = h; mGl = gl; nativeResize(w, h, Globals.KeepAspectRatio ? 1 : 0); } public void onSurfaceDestroyed() { // System.out.println("tucnak: DemoRenderer.onSurfaceDestroyed(): paused " + mPaused + " mFirstTimeStart " + mFirstTimeStart ); mGlSurfaceCreated = false; mGlContextLost = true; nativeGlContextLost(); }; public void onDrawFrame(GL10 gl) { mGl = gl; DrawLogo(mGl); SwapBuffers(); nativeInitJavaCallbacks(); if (context.SavedBundle == null){ System.out.println("tucnak: bundle=null, not calling nativeSetState -------"); }else{ System.out.println("tucnak: Calling nativeSetState ------------"); for (String key: context.SavedBundle.keySet()){ if (key.equals("android:viewHierarchyState")) continue; // System.out.println("tucnak: callint nativeSetState(key='" + key + "')"); // System.out.println("tucnak: callint nativeSetState(key='" + key + "' val='" + context.SavedBundle.getString(key) + "')"); context.nativeSetState(key, context.SavedBundle.getString(key)); // System.out.println("tucnak: nativeSetState returned"); } System.out.println("tucnak: nativeSetState exited"); } // Make main thread priority lower so audio thread won't get underrun // Thread.currentThread().setPriority((Thread.currentThread().getPriority() + Thread.MIN_PRIORITY)/2); mGlContextLost = false; MainActivity.LoadApplicationLibrary(context); context.nativeInitJavaCallbacks(); context.NativeAlive = true; context.SendLocation(); Settings.Apply(context); accelerometer = new AccelerometerReader(context); // Tweak video thread priority, if user selected big audio buffer if(Globals.AudioBufferConfig >= 2) Thread.currentThread().setPriority( (Thread.NORM_PRIORITY + Thread.MIN_PRIORITY) / 2 ); // Lower than normal // Calls main() and never returns, hehe - we'll call eglSwapBuffers() from native code System.out.println("tucnak: calling nativeInit DataDir=" + Globals.DataDir); nativeInit( Globals.DataDir, Globals.CommandLine, ( (Globals.SwVideoMode && Globals.MultiThreadedVideo) || Globals.CompatibilityHacksVideo ) ? 1 : 0, android.os.Debug.isDebuggerConnected() ? 1 : 0 ); System.exit(0); // The main() returns here - I don't bother with deinit stuff, just terminate process } public int swapBuffers() // Called from native code { if( ! super.SwapBuffers() && Globals.NonBlockingSwapBuffers ) { if(mRatelimitTouchEvents) { synchronized(this) { this.notify(); } } return 0; } if(mGlContextLost) { mGlContextLost = false; Settings.SetupTouchscreenKeyboardGraphics(context); // Reload on-screen buttons graphics DrawLogo(mGl); super.SwapBuffers(); } // Unblock event processing thread only after we've finished rendering if(mRatelimitTouchEvents) { synchronized(this) { this.notify(); } } return 1; } public void showScreenKeyboardWithoutTextInputField() // Called from native code { class Callback implements Runnable { public MainActivity parent; public void run() { parent.showScreenKeyboardWithoutTextInputField(); } } Callback cb = new Callback(); cb.parent = context; context.runOnUiThread(cb); } public void showScreenKeyboard(final String oldText, int sendBackspace) // Called from native code { class Callback implements Runnable { public MainActivity parent; public String oldText; public boolean sendBackspace; public void run() { parent.showScreenKeyboard(oldText, sendBackspace); } } Callback cb = new Callback(); cb.parent = context; cb.oldText = oldText; cb.sendBackspace = (sendBackspace != 0); context.runOnUiThread(cb); } public void hideScreenKeyboard() // Called from native code { class Callback implements Runnable { public MainActivity parent; public void run() { parent.hideScreenKeyboard(); } } Callback cb = new Callback(); cb.parent = context; context.runOnUiThread(cb); } public int isScreenKeyboardShown() // Called from native code { return context.isScreenKeyboardShown() ? 1 : 0; } public void exitApp() { nativeDone(); } public void getAdvertisementParams(int params[]) { context.getAdvertisementParams(params); } public void setAdvertisementVisible(int visible) { context.setAdvertisementVisible(visible); } public void setAdvertisementPosition(int left, int top) { context.setAdvertisementPosition(left, top); } public void requestNewAdvertisement() { context.requestNewAdvertisement(); } private int PowerOf2(int i) { int value = 1; while (value < i) value <<= 1; return value; } public void DrawLogo(GL10 gl) { /* // TODO: this not quite works, as it seems System.out.println("tucnak: DemoRenderer.DrawLogo"); BitmapDrawable bmp = null; try { bmp = new BitmapDrawable(context.getAssets().open("logo.png")); } catch(Exception e) { bmp = new BitmapDrawable(context.getResources().openRawResource(R.drawable.publisherlogo)); } int width = bmp.getBitmap().getWidth(); int height = bmp.getBitmap().getHeight(); ByteBuffer byteBuffer = ByteBuffer.allocateDirect(4 * width * height); //byteBuffer.order(ByteOrder.BIG_ENDIAN); bmp.getBitmap().copyPixelsToBuffer(byteBuffer); byteBuffer.position(0); gl.glViewport(0, 0, mWidth, mHeight); gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT); gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000); gl.glPixelStorei(gl.GL_UNPACK_ALIGNMENT, 1); gl.glEnable(GL10.GL_TEXTURE_2D); int textureName = -1; int mTextureNameWorkspace[] = new int[1]; int mCropWorkspace[] = new int[4]; gl.glGenTextures(1, mTextureNameWorkspace, 0); textureName = mTextureNameWorkspace[0]; gl.glBindTexture(GL10.GL_TEXTURE_2D, textureName); gl.glActiveTexture(textureName); gl.glClientActiveTexture(textureName); gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA, PowerOf2(width), PowerOf2(height), 0, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, null); gl.glTexSubImage2D(GL10.GL_TEXTURE_2D, 0, 0, 0, width, height, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, byteBuffer); mCropWorkspace[0] = 0; // u mCropWorkspace[1] = height; // v mCropWorkspace[2] = width; mCropWorkspace[3] = -height; ((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, mCropWorkspace, 0); ((GL11Ext) gl).glDrawTexiOES(0, -mHeight, 0, mWidth, mHeight); gl.glActiveTexture(0); gl.glClientActiveTexture(0); gl.glBindTexture(GL10.GL_TEXTURE_2D, 0); gl.glDeleteTextures(1, mTextureNameWorkspace, 0); gl.glFlush();*/ } private native void nativeInitJavaCallbacks(); private native void nativeInit(String CurrentPath, String CommandLine, int multiThreadedVideo, int isDebuggerConnected); private native void nativeResize(int w, int h, int keepAspectRatio); private native void nativeDone(); private native void nativeGlContextLost(); public native void nativeGlContextRecreated(); public native void nativeGlContextLostAsyncEvent(); public static native void nativeTextInput( int ascii, int unicode ); public static native void nativeTextInputFinished(); private MainActivity context = null; public AccelerometerReader accelerometer = null; private GL10 mGl = null; private EGL10 mEgl = null; private EGLDisplay mEglDisplay = null; private EGLSurface mEglSurface = null; private EGLContext mEglContext = null; private boolean mGlContextLost = false; public boolean mGlSurfaceCreated = false; public boolean mPaused = false; private boolean mFirstTimeStart = true; public int mWidth = 0; public int mHeight = 0; public static final boolean mRatelimitTouchEvents = true; //(Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO); } class DemoGLSurfaceView extends GLSurfaceView_SDL { public DemoGLSurfaceView(MainActivity context) { super(context); mParent = context; touchInput = DifferentTouchInput.getInstance(); setEGLConfigChooser(Globals.VideoDepthBpp, Globals.NeedDepthBuffer, Globals.NeedStencilBuffer, Globals.NeedGles2); mRenderer = new DemoRenderer(context); setRenderer(mRenderer); } @Override public boolean onTouchEvent(final MotionEvent event) { touchInput.process(event); if( DemoRenderer.mRatelimitTouchEvents ) { limitEventRate(event); } return true; }; @Override public boolean onGenericMotionEvent (final MotionEvent event) { touchInput.processGenericEvent(event); if( DemoRenderer.mRatelimitTouchEvents ) { limitEventRate(event); } return true; } public void limitEventRate(final MotionEvent event) { // Wait a bit, and try to synchronize to app framerate, or event thread will eat all CPU and we'll lose FPS // With Froyo the rate of touch events seems to be limited by OS, but they are arriving faster then we're redrawing anyway if((event.getAction() == MotionEvent.ACTION_MOVE || event.getAction() == MotionEvent.ACTION_HOVER_MOVE)) { synchronized(mRenderer) { try { mRenderer.wait(300L); // And sometimes the app decides not to render at all, so this timeout should not be big. } catch (InterruptedException e) { } } } } public void exitApp() { mRenderer.exitApp(); }; @Override public void onPause() { if(mRenderer.mPaused) return; mRenderer.mPaused = true; mRenderer.nativeGlContextLostAsyncEvent(); if( mRenderer.accelerometer != null ) // For some reason it crashes here often - are we getting this event before initialization? mRenderer.accelerometer.stop(); super.onPause(); }; public boolean isPaused() { return mRenderer.mPaused; } @Override public void onResume() { if(!mRenderer.mPaused) return; mRenderer.mPaused = false; super.onResume(); // System.out.println("tucnak: DemoGLSurfaceView.onResume(): mRenderer.mGlSurfaceCreated " + mRenderer.mGlSurfaceCreated + " mRenderer.mPaused " + mRenderer.mPaused); if( mRenderer.mGlSurfaceCreated && ! mRenderer.mPaused || Globals.NonBlockingSwapBuffers ) mRenderer.nativeGlContextRecreated(); if( mRenderer.accelerometer != null ) // For some reason it crashes here often - are we getting this event before initialization? mRenderer.accelerometer.start(); }; // This seems like redundant code - it handled in MainActivity.java @Override public boolean onKeyDown(int keyCode, final KeyEvent event) { // System.out.println("tucnak: Got key down event, id " + keyCode + " meta " + event.getMetaState() + " event " + event.toString()); if( nativeKey( keyCode, 1 ) == 0 ) return super.onKeyDown(keyCode, event); return true; } @Override public boolean onKeyUp(int keyCode, final KeyEvent event) { //System.out.println("Got key up event, id " + keyCode + " meta " + event.getMetaState()); if( nativeKey( keyCode, 0 ) == 0 ) return super.onKeyUp(keyCode, event); return true; } DemoRenderer mRenderer; MainActivity mParent; DifferentTouchInput touchInput = null; public static native void nativeMotionEvent( int x, int y, int action, int pointerId, int pressure, int radius ); public static native int nativeKey( int keyCode, int down ); public static native void nativeTouchpad( int x, int y, int down, int multitouch ); public static native void initJavaCallbacks(); public static native void nativeHardwareMouseDetected( int detected ); public static native void nativeMouseButtonsPressed( int buttonId, int pressedState ); public static native void nativeMouseWheel(int scrollX, int scrollY); } tucnak-4.04/android/src/Globals.java0000644000175000017500000001415012364146666014323 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import android.app.Activity; import android.content.Context; import java.util.Vector; import android.view.KeyEvent; class Globals { // These config options are modified by ChangeAppsettings.sh script - see the detailed descriptions there public static String ApplicationName = "Tucnak"; public static String AppLibraries[] = { "sdl-1.2", "glib-2.0", "gthread-2.0", "pngfkk", "usb", "ftdi", "zia", "iconv", "hamlib"}; public static final boolean Using_SDL_1_3 = false; public static String DataDownloadUrl = "Data files are 2 Mb|https://sourceforge.net/projects/libsdl-android/files/CommanderGenius/commandergenius-data.zip/download^High-quality GFX and music - 40 Mb|https://sourceforge.net/projects/libsdl-android/files/CommanderGenius/commandergenius-hqp.zip/download"; public static int VideoDepthBpp = 16; public static boolean SwVideoMode = false; public static boolean NeedDepthBuffer = false; public static boolean NeedStencilBuffer = false; public static boolean NeedGles2 = false; public static boolean CompatibilityHacksVideo = false; public static boolean CompatibilityHacksTextInputEmulatesHwKeyboard = false; public static boolean HorizontalOrientation = true; public static boolean InhibitSuspend = false; public static String ReadmeText = "^You may press \"Home\" now - the data will be downloaded in background".replace("^","\n"); public static String CommandLine = ""; public static boolean AppUsesMouse = true; public static boolean AppNeedsTwoButtonMouse = false; public static boolean ForceRelativeMouseMode = false; // If both on-screen keyboard and mouse are needed, this will only set the default setting, user may override it later public static boolean ShowMouseCursor = false; public static boolean AppNeedsArrowKeys = true; public static boolean AppNeedsTextInput = true; public static boolean AppUsesJoystick = false; public static boolean AppUsesAccelerometer = false; public static boolean AppUsesMultitouch = false; public static boolean NonBlockingSwapBuffers = false; public static boolean ResetSdlConfigForThisVersion = false; public static String DeleteFilesOnUpgrade = ""; public static int AppTouchscreenKeyboardKeysAmount = 0; public static int AppTouchscreenKeyboardKeysAmountAutoFire = 1; public static int StartupMenuButtonTimeout = 0; public static int AppMinimumRAM = 0; public static Settings.Menu HiddenMenuOptions [] = {}; public static Settings.Menu FirstStartMenuOptions [] = { (AppUsesMouse && ! ForceRelativeMouseMode ? new Settings.DisplaySizeConfig(true) : new Settings.DummyMenu()), new Settings.OptionalDownloadConfig(true) }; public static String AdmobPublisherId = ""; public static String AdmobTestDeviceId = ""; public static String AdmobBannerSize = ""; // Phone-specific config, modified by user in "Change phone config" startup dialog, TODO: move this to settings public static boolean DownloadToSdcard = true; public static boolean PhoneHasTrackball = false; public static boolean PhoneHasArrowKeys = true; public static boolean UseAccelerometerAsArrowKeys = false; public static boolean UseTouchscreenKeyboard = false; public static int TouchscreenKeyboardSize = 5; public static int TouchscreenKeyboardDrawSize = 1; public static int TouchscreenKeyboardTheme = 2; public static int TouchscreenKeyboardTransparency = 2; public static int AccelerometerSensitivity = 2; public static int AccelerometerCenterPos = 2; public static int TrackballDampening = 0; public static int AudioBufferConfig = 0; public static boolean OptionalDataDownload[] = null; public static int LeftClickMethod = Mouse.LEFT_CLICK_NORMAL; public static int LeftClickKey = KeyEvent.KEYCODE_DPAD_CENTER; public static int LeftClickTimeout = 3; public static int RightClickTimeout = 4; public static int RightClickMethod = AppNeedsTwoButtonMouse ? Mouse.RIGHT_CLICK_WITH_MULTITOUCH : Mouse.RIGHT_CLICK_NONE; public static int RightClickKey = KeyEvent.KEYCODE_MENU; public static boolean MoveMouseWithJoystick = false; public static int MoveMouseWithJoystickSpeed = 0; public static int MoveMouseWithJoystickAccel = 0; public static boolean ClickMouseWithDpad = false; public static boolean RelativeMouseMovement = ForceRelativeMouseMode; // Laptop touchpad mode public static int RelativeMouseMovementSpeed = 2; public static int RelativeMouseMovementAccel = 0; public static int ShowScreenUnderFinger = Mouse.ZOOM_NONE; public static boolean KeepAspectRatio = false; public static int ClickScreenPressure = 0; public static int ClickScreenTouchspotSize = 0; public static int RemapHwKeycode[] = new int[SDL_Keys.JAVA_KEYCODE_LAST]; public static int RemapScreenKbKeycode[] = new int[6]; public static boolean ScreenKbControlsShown[] = new boolean[8]; /* Also joystick and text input button added */ public static int ScreenKbControlsLayout[][] = new int[8][4]; public static int RemapMultitouchGestureKeycode[] = new int[4]; public static boolean MultitouchGesturesUsed[] = new boolean[4]; public static int MultitouchGestureSensitivity = 1; public static int TouchscreenCalibration[] = new int[4]; public static String DataDir = new String(""); public static boolean VideoLinearFilter = true; public static boolean MultiThreadedVideo = false; public static boolean BrokenLibCMessageShown = false; } tucnak-4.04/android/src/Makefile.in0000644000175000017500000002725112561147616014143 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = android/src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = Accelerometer.java Advertisement.java Audio.java DataDownloader.java \ Globals.java GLSurfaceView_SDL.java Keycodes.java MainActivity.java \ Settings.java Video.java all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu android/src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu android/src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/android/src/Audio.java0000644000175000017500000000711712052426441013770 00000000000000/* Simple DirectMedia Layer Java source code (C) 2009-2012 Sergii Pylypenko This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. */ package cz.nagano.tucnak; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.MotionEvent; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.media.AudioTrack; import android.media.AudioManager; import android.media.AudioFormat; import java.io.*; import android.util.Log; import java.lang.Thread; class AudioThread { private MainActivity mParent; private AudioTrack mAudio; private byte[] mAudioBuffer; private int mVirtualBufSize; public AudioThread(MainActivity parent) { mParent = parent; mAudio = null; mAudioBuffer = null; nativeAudioInitJavaCallbacks(); } public int fillBuffer() { if( mParent.isPaused() ) { try{ Thread.sleep(500); } catch (InterruptedException e) {} } else { //if( Globals.AudioBufferConfig == 0 ) // Gives too much spam to logcat, makes things worse // mAudio.flush(); mAudio.write( mAudioBuffer, 0, mVirtualBufSize ); } return 1; } public int initAudio(int rate, int channels, int encoding, int bufSize) { if( mAudio == null ) { channels = ( channels == 1 ) ? AudioFormat.CHANNEL_CONFIGURATION_MONO : AudioFormat.CHANNEL_CONFIGURATION_STEREO; encoding = ( encoding == 1 ) ? AudioFormat.ENCODING_PCM_16BIT : AudioFormat.ENCODING_PCM_8BIT; mVirtualBufSize = bufSize; if( AudioTrack.getMinBufferSize( rate, channels, encoding ) > bufSize ) bufSize = AudioTrack.getMinBufferSize( rate, channels, encoding ); if(Globals.AudioBufferConfig != 0) { // application's choice - use minimal buffer bufSize = (int)((float)bufSize * (((float)(Globals.AudioBufferConfig - 1) * 2.5f) + 1.0f)); mVirtualBufSize = bufSize; } mAudioBuffer = new byte[bufSize]; mAudio = new AudioTrack(AudioManager.STREAM_MUSIC, rate, channels, encoding, bufSize, AudioTrack.MODE_STREAM ); mAudio.play(); } return mVirtualBufSize; } public byte[] getBuffer() { return mAudioBuffer; } public int deinitAudio() { if( mAudio != null ) { mAudio.stop(); mAudio.release(); mAudio = null; } mAudioBuffer = null; return 1; } public int initAudioThread() { // Make audio thread priority higher so audio thread won't get underrun Thread.currentThread().setPriority(Thread.MAX_PRIORITY); return 1; } public int pauseAudioPlayback() { if( mAudio != null ) { mAudio.pause(); return 1; } return 0; } public int resumeAudioPlayback() { if( mAudio != null ) { mAudio.play(); return 1; } return 0; } private native int nativeAudioInitJavaCallbacks(); } tucnak-4.04/android/nagup0000644000175000017500000000043312561151302012320 00000000000000#!/bin/bash echo rsync bin/Tucnak-4.04.apk rsync://ok1zia@nagano.cz/ok1zia/pub/tucnak/a set | grep RSYNC_PASSWORD rm -f bin/Tucnak.apk ln -s Tucnak-4.04.apk bin/Tucnak.apk rsync -av --partial --progress bin/Tucnak-4.04.apk bin/Tucnak.apk rsync://ok1zia@nagano.cz/ok1zia/pub/tucnak/a tucnak-4.04/android/local.properties0000644000175000017500000000062612052426441014503 00000000000000# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. # location of the SDK. This is only used by Ant # For customization when using a Version Control System, please read the # header note. sdk.dir=/home/ja/sdk tucnak-4.04/android/tucnak-compile0000755000175000017500000000111012365672456014141 00000000000000#!/bin/bash set -e set -x tmp=`dirname $0` TUCNAK=`readlink -f $tmp/../src` target= if [ "$1" = "clean" ]; then target="clean"; fi cd $TUCNAK/.. ./svnver.sh cd $TUCNAK/../android # BUILD_STATIC=true ndk-build \ APP_BUILD_SCRIPT=../src/Android.mk \ GLIB_TOP=$HOME/c/glib \ SDL_TOP=$HOME/c/libsdl \ PNG_TOP=$HOME/c/libpng14 \ USB_TOP=$HOME/c/libusb \ FTDI_TOP=$HOME/c/libftdi \ ZIA_TOP=$HOME/c/libzia \ ICONV_TOP=$HOME/c/libiconv \ HAMLIB_TOP=$HOME/c/hamlib \ # SNDFILE_TOP=$HOME/c/libsndfile \ $target \ # NDK_PROJECT_PATH=$TUCNAK \ tucnak-4.04/android/Makefile.in0000644000175000017500000004474012561147617013357 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = android DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(srcdir)/AndroidManifest.xml.in \ $(srcdir)/nagup.in $(srcdir)/tucnak-package.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = AndroidManifest.xml nagup tucnak-package CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = AndroidManifest.xml AndroidManifest.xml.in build.xml local.properties \ nagup nagup.in project.properties repositories.txt \ res/drawable/icon.png res/values/strings.xml \ tucnak-all tucnak-compile tucnak-package tucnak-package.in SUBDIRS = src all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu android/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu android/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): AndroidManifest.xml: $(top_builddir)/config.status $(srcdir)/AndroidManifest.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ nagup: $(top_builddir)/config.status $(srcdir)/nagup.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tucnak-package: $(top_builddir)/config.status $(srcdir)/tucnak-package.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/android/tucnak-all0000755000175000017500000000106112367505332013254 00000000000000#!/bin/bash set -e MAKEFLAGS=-j2 host=`cat /etc/hostname` if [ $host = "ok1zia" ]; then export PATH=/mnt/data/sw/android/jdk1.7.0_10/bin:/mnt/data/sw/android/jdk1.7.0_10/jre/bin:$PATH fi ~/c/libzia/android/libzia-compile ./tucnak-compile chmod +x tucnak-package ./tucnak-package $@ if [ "$1" = "a" ]; then bash ./nagup else set -x adb install -r bin/Tucnak-debug.apk 2>&1 |tee _del.tmp grep -q "Success" _del.tmp # we have set -e adb shell am start -n cz.nagano.tucnak/.MainActivity adb logcat | egrep -i 'sdl|tucnak' fi tucnak-4.04/android/tucnak-package.in0000755000175000017500000000227112364146666014520 00000000000000#!/bin/bash set -e set -x tmp=`dirname $0` ANDROID=`readlink -f $tmp` rm -f $ANDROID/libs/armeabi/* cp ~/c/libsdl/project/libs/armeabi/libsdl-1.2.so $ANDROID/libs/armeabi cp ~/c/libsdl/project/libs/armeabi/libsdl_main.so $ANDROID/libs/armeabi cp ~/c/glib/obj/local/armeabi/libglib-2.0.so $ANDROID/libs/armeabi cp ~/c/glib/obj/local/armeabi/libgthread-2.0.so $ANDROID/libs/armeabi cp ~/c/libiconv/libs/armeabi/libiconv.so $ANDROID/libs/armeabi cp ~/c/libpng14/libs/armeabi/libpngfkk.so $ANDROID/libs/armeabi cp ~/c/hamlib/libs/armeabi/libhamlib.so $ANDROID/libs/armeabi cp ~/c/hamlib/libs/armeabi/libhamlib-dummy.so $ANDROID/libs/armeabi #cp ~/c/libsndfile/libs/armeabi/*.so $ANDROID/libs/armeabi cp ~/c/libusb/libs/armeabi/*.so $ANDROID/libs/armeabi cp ~/c/libftdi/libs/armeabi/*.so $ANDROID/libs/armeabi #cp ~/c/libportaudio/libs/armeabi/libportaudio.so $ANDROID/libs/armeabi cp ~/c/libzia/src/obj/local/armeabi/libzia.so $ANDROID/libs/armeabi cp ~/c/tucnak/android/obj/local/armeabi/libapplication.so $ANDROID/libs/armeabi cd $ANDROID if [ -n "$1" ]; then ant release cp bin/Tucnak-release.apk bin/Tucnak-@VERSION@.apk else ant debug cp bin/Tucnak-debug.apk bin/Tucnak-@VERSION@.apk fi tucnak-4.04/android/AndroidManifest.xml0000644000175000017500000000347612561151302015066 00000000000000 tucnak-4.04/android/project.properties0000644000175000017500000000106312052426441015053 00000000000000# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-16 tucnak-4.04/compile0000755000175000017500000001624512423346767011253 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: tucnak-4.04/configure0000755000175000017500000074004012561147076011574 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for tucnak 4.04. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='tucnak' PACKAGE_TARNAME='tucnak' PACKAGE_VERSION='4.04' PACKAGE_STRING='tucnak 4.04' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_unique_file="src/main.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS VERSIONCODE TUCNAK_LDADD RPM_RELEASE RPM_SOURCESDIR HAVE_RPM_PACKAGING HAVE_RPM HAMLIB_LIBS HAMLIB_CFLAGS SNDFILE_LIBS SNDFILE_CFLAGS GTHREAD_LIBS GTHREAD_CFLAGS GLIB_LIBS GLIB_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG HAVE_PKGCONFIG HAVE_MAKE EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_opt with_pkg with_gpm with_sndfile with_alsa with_hamlib with_fftw3 with_portaudio enable_pedantic enable_leak_debug enable_instr ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GLIB_CFLAGS GLIB_LIBS GTHREAD_CFLAGS GTHREAD_LIBS SNDFILE_CFLAGS SNDFILE_LIBS HAMLIB_CFLAGS HAMLIB_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures tucnak 4.04 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/tucnak] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of tucnak 4.04:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-opt Disable compiling optimisation (-O0) --enable-pedantic Enable pedantic gcc checking(-Wall etc.) --enable-leak-debug Enable memory leak debug --enable-instr Enable instrument call trace Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pkg Set package identifier for automatic update (default: bin) --with-gpm Build without GPM support (default: without) --without-sndfile Build without sndfile library (default: test) --without-alsa Build without alsa library for audio i/o (default: test) --without-hamlib Build without Hamlib support (default: test) --without-fftw3 Build without fftw3 library (default: test) --without-portaudio Build without portaudio library (default: test) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config GLIB_LIBS linker flags for GLIB, overriding pkg-config GTHREAD_CFLAGS C compiler flags for GTHREAD, overriding pkg-config GTHREAD_LIBS linker flags for GTHREAD, overriding pkg-config SNDFILE_CFLAGS C compiler flags for SNDFILE, overriding pkg-config SNDFILE_LIBS linker flags for SNDFILE, overriding pkg-config HAMLIB_CFLAGS C compiler flags for HAMLIB, overriding pkg-config HAMLIB_LIBS linker flags for HAMLIB, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF tucnak configure 4.04 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by tucnak $as_me 4.04, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- am__api_version='1.14' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='tucnak' VERSION='4.04' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' test x$prefix = "xNONE" && prefix="$ac_default_prefix" if test -f "/etc/debian_version"; then echo "TIP: If following test fails, try to run: apt-get install libc6-dev" fi if test -f "/etc/SuSE-release"; then echo "TIP: If following test fails, try to run: yast -i gcc" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi tucnak_cc_ver=`$CC -dumpversion` # --disable-opt opt='-O2' # Check whether --enable-opt was given. if test "${enable_opt+set}" = set; then : enableval=$enable_opt; disable_opt=yes else disable_opt=no fi if test x"$disable_opt" = x"yes"; then CFLAGS=`echo "$CFLAGS"|sed 's/-O2/-O0/'` opt='-O0' fi # check for package type pkg="bin" # Check whether --with-pkg was given. if test "${with_pkg+set}" = set; then : withval=$with_pkg; if test x"$with_pkg" != x""; then pkg="$with_pkg" fi fi cat >>confdefs.h <<_ACEOF #define PKG "$pkg" _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker supports -z now" >&5 $as_echo_n "checking whether linker supports -z now... " >&6; } OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -z now" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : tucnak_ld_z_now=yes else tucnak_ld_z_now=no LDFLAGS=$OLDLDFLAGS fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tucnak_ld_z_now" >&5 $as_echo "$tucnak_ld_z_now" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker supports -rdynamic" >&5 $as_echo_n "checking whether linker supports -rdynamic... " >&6; } OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -rdynamic" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : tucnak_ld_rdynamic=yes else tucnak_ld_rdynamic=no LDFLAGS=$OLDLDFLAGS fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tucnak_ld_rdynamic" >&5 $as_echo "$tucnak_ld_rdynamic" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker supports -Wl,-Map" >&5 $as_echo_n "checking whether linker supports -Wl,-Map... " >&6; } tucnak_ld_wlmap=unchecked OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-Map,tucnak.map" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : tucnak_ld_wlmap=yes else tucnak_ld_wlmap=no LDFLAGS=$OLDLDFLAGS fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext rm -f tucnak.map { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tucnak_ld_wlmap" >&5 $as_echo "$tucnak_ld_wlmap" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in arpa/inet.h ctype.h dirent.h dlfcn.h errno.h fcntl.h grp.h iconv.h inttypes.h libgen.h linux/ppdev.h locale.h math.h netdb.h netinet/in.h netinet/ip.h nl_types.h png.h process.h pty.h pwd.h regex.h signal.h stdarg.h stdint.h stdio.h time.h unistd.h sys/ioctl.h sys/kd.h sys/param.h sys/select.h sys/signal.h sys/socket.h sys/soundcard.h sys/stat.h sys/time.h sys/types.h sys/vfs.h sys/wait.h termios.h utime.h winsock2.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi tucnak_libc_ver="" iprig_libc_ver="cross" if test "$cross_compiling" = yes; then iprig_libc_ver=`cat $TOPDIR/staging_dir_$target_cpu/uclibc_version` iprig_cc_ver=`cat $TOPDIR/staging_dir_$target_cpu/gcc_version` else if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifdef __CYGWIN__ #include #endif FILE *f; int main(void){ f=fopen("conftest.libc.out", "wt"); if (!f) return -1; #ifdef __GLIBC__ fprintf(f, "glibc %d.%d (%s)\n", __GLIBC__, __GLIBC_MINOR__, gnu_get_libc_version()); #endif #ifdef __CYGWIN__ fprintf(f, "cygwin %d.%d.%d, api %d.%d\n", CYGWIN_VERSION_DLL_MAJOR/1000, CYGWIN_VERSION_DLL_MAJOR%1000, CYGWIN_VERSION_DLL_MINOR, CYGWIN_VERSION_API_MAJOR, CYGWIN_VERSION_API_MINOR); #endif fclose(f); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : tucnak_libc_ver=`cat conftest.libc.out` fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.libc.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 $as_echo_n "checking for sin in -lm... " >&6; } if ${ac_cv_lib_m_sin+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sin (); int main () { return sin (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_sin=yes else ac_cv_lib_m_sin=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 $as_echo "$ac_cv_lib_m_sin" >&6; } if test "x$ac_cv_lib_m_sin" = xyes; then : LIBM="-lm" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cos (); int main () { return cos (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_cos=yes else ac_cv_lib_m_cos=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="-lm" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tan in -lm" >&5 $as_echo_n "checking for tan in -lm... " >&6; } if ${ac_cv_lib_m_tan+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tan (); int main () { return tan (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_tan=yes else ac_cv_lib_m_tan=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_tan" >&5 $as_echo "$ac_cv_lib_m_tan" >&6; } if test "x$ac_cv_lib_m_tan" = xyes; then : LIBM="-lm" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acos in -lm" >&5 $as_echo_n "checking for acos in -lm... " >&6; } if ${ac_cv_lib_m_acos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char acos (); int main () { return acos (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_acos=yes else ac_cv_lib_m_acos=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_acos" >&5 $as_echo "$ac_cv_lib_m_acos" >&6; } if test "x$ac_cv_lib_m_acos" = xyes; then : LIBM="-lm" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for round in -lm" >&5 $as_echo_n "checking for round in -lm... " >&6; } if ${ac_cv_lib_m_round+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char round (); int main () { return round (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_round=yes else ac_cv_lib_m_round=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_round" >&5 $as_echo "$ac_cv_lib_m_round" >&6; } if test "x$ac_cv_lib_m_round" = xyes; then : LIBM="-lm" fi LIBS="$LIBS $LIBM" #AC_CHECK_LIB(ws2_32, [WSAStartup], [LIBS="$LIBS -lws2_32"]) if test "x$ac_cv_header_winsock2_h" = "xyes"; then LIBS="$LIBS -lws2_32" fi tucnak_mlibs="" tucnak_mdebs="" tucnak_mrpms="" tucnak_olibs="" tucnak_odebs="" tucnak_orpms="" # check for make # Extract the first word of "make", so it can be a program name with args. set dummy make; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HAVE_MAKE+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_MAKE"; then ac_cv_prog_HAVE_MAKE="$HAVE_MAKE" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_MAKE="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_MAKE" && ac_cv_prog_HAVE_MAKE="no" fi fi HAVE_MAKE=$ac_cv_prog_HAVE_MAKE if test -n "$HAVE_MAKE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_MAKE" >&5 $as_echo "$HAVE_MAKE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$HAVE_MAKE" = x"no"; then tucnak_mlibs="$tucnak_mlibs make" tucnak_mdebs="$tucnak_mdebs make" tucnak_mrpms="$tucnak_mrpms make" fi # check for #pkg-config # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HAVE_PKGCONFIG+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_PKGCONFIG"; then ac_cv_prog_HAVE_PKGCONFIG="$HAVE_PKGCONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_PKGCONFIG="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_PKGCONFIG" && ac_cv_prog_HAVE_PKGCONFIG="no" fi fi HAVE_PKGCONFIG=$ac_cv_prog_HAVE_PKGCONFIG if test -n "$HAVE_PKGCONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_PKGCONFIG" >&5 $as_echo "$HAVE_PKGCONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$HAVE_PKGCONFIG" = x"no"; then tucnak_mlibs="$tucnak_mlibs pkg-config" tucnak_mdebs="$tucnak_mdebs pkg-config" tucnak_mrpms="$tucnak_mrpms pkg-config" fi # # check for libzia # tucnak_libzia_ver="" tucnak_libzia_settings="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libzia" >&5 $as_echo_n "checking for libzia... " >&6; } if test -d "../libzia"; then tucnak_libzia_ver="`bash ../libzia/bin/zia-config --version` in `readlink -f ../libzia/bin/zia-config`" tucnak_libzia_settings="../libzia/settings" LIBZIA_CFLAGS="`bash ../libzia/bin/zia-config --cflags2` -I`readlink -f ../libzia/include` -I`readlink -f ../libzia/include/unix`" LIBZIA_LIBS="-L`readlink -f ../libzia/src/.libs` -Wl,-Bstatic -lzia -Wl,-Bdynamic `bash ../libzia/bin/zia-config --libs2`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; static in ../libzia/src" >&5 $as_echo "yes; static in ../libzia/src" >&6; } else tucnak_libzia_ver="`zia-config --version` `which zia-config`" tucnak_libzia_settings="`zia-config --prefix`/share/libzia/settings" LIBZIA_CFLAGS="`zia-config --cflags`" LIBZIA_LIBS=`zia-config --libs` { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; dynamic in \`zia-config --prefix\`" >&5 $as_echo "yes; dynamic in \`zia-config --prefix\`" >&6; } fi echo "LIBZIA_CFLAGS='$LIBZIA_CFLAGS'" echo "LIBZIA_LIBS='$LIBZIA_LIBS'" # check for glib and gthreads tucnak_glib_ver="" if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 $as_echo_n "checking for GLIB... " >&6; } if test -n "$GLIB_CFLAGS"; then pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 > 2.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 > 2.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 > 2.0.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLIB_LIBS"; then pkg_cv_GLIB_LIBS="$GLIB_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 > 2.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 > 2.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 > 2.0.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 > 2.0.0" 2>&1` else GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 > 2.0.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIB_PKG_ERRORS" >&5 tucnak_mlibs="$tucnak_mlibs libglib2" tucnak_mdebs="$tucnak_mdebs libglib2.0-dev" tucnak_glib="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tucnak_mlibs="$tucnak_mlibs libglib2" tucnak_mdebs="$tucnak_mdebs libglib2.0-dev" tucnak_glib="no" else GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS GLIB_LIBS=$pkg_cv_GLIB_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GLIB 1" >>confdefs.h tucnak_glib="yes" tucnak_glib_ver=`$PKG_CONFIG --modversion 'glib-2.0 > 2.0.0'` fi if test x"$tucnak_glib" = x"yes"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD" >&5 $as_echo_n "checking for GTHREAD... " >&6; } if test -n "$GTHREAD_CFLAGS"; then pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 > 2.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 > 2.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 > 2.0.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTHREAD_LIBS"; then pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 > 2.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 > 2.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 > 2.0.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gthread-2.0 > 2.0.0" 2>&1` else GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gthread-2.0 > 2.0.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTHREAD_PKG_ERRORS" >&5 as_fn_error $? "glib is installed but gthread not ?" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "glib is installed but gthread not ?" "$LINENO" 5 else GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GTHREAD2 1" >>confdefs.h fi fi # AC_ARG_WITH([sdl], AS_HELP_STRING([--without-sdl], [Build without sdl library for graphics support (default: test)])) # tucnak_sdl="disabled" # # if test "x$with_sdl" != "xno"; then # # check for SDL # SDL_VERSION=1.2.0 # tucnak_sdl_ver=""; # AM_PATH_SDL($SDL_VERSION, # [ AC_DEFINE([HAVE_SDL], [1], [libSDL]) # tucnak_sdl="yes" # tucnak_sdl_ver=`sdl-config --version`], # [ tucnak_olibs="$tucnak_olibs libsdl" # tucnak_odebs="$tucnak_odebs libsdl-dev" # tucnak_sdl="no"] # ) # # #export PKG_CONFIG=/usr/bin/pkg-config #AC_ARG_WITH([png], AS_HELP_STRING([--without-png], [Build without PNG support (default: test)])) # #if test "x$with_png" != "xno"; then ## check for libpng #tucnak_libpng_ver="" #PKG_CHECK_MODULES(LIBPNG, libpng > 1.2.0, # [ AC_DEFINE([HAVE_LIBPNG], [1], [libpng]) # tucnak_libpng_ver=`pkg-config --modversion 'libpng > 1.2.0'` ], # [ tucnak_olibs="$tucnak_olibs libpng" # tucnak_odebs="$tucnak_odebs libpng12-dev"]) #fi # check for iconv # if test x"$tucnak_sdl" = x"yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv_open()" >&5 $as_echo_n "checking for iconv_open()... " >&6; } save_LIBS="$LIBS" LIBS="$LIBS -liconv" ICONV_LIBS="" tucnak_iconv="no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_ICONV_H # include #endif int main () { iconv_open("fr", "to"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : # ok #echo " __OK " { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; with -liconv" >&5 $as_echo "yes; with -liconv" >&6; } $as_echo "#define HAVE_ICONV 2" >>confdefs.h ICONV_LIBS="-liconv" tucnak_iconv="libiconv" else # failed #echo " __FAIL " LIBS="$save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_ICONV_H # include #endif int main () { iconv_open("fr", "to"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : #echo " __OK " { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_ICONV 1" >>confdefs.h ICONV_LIBS="" tucnak_iconv="libc" else # failed #echo " __FAIL " { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tucnak_mlibs="$tucnak_mlibs libiconv" tucnak_mdebs="$tucnak_mdebs libc6-dev" tucnak_iconv="no" LIBS="$save_LIBS" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext #else # tucnak_iconv="not needed" #fi # Check whether --with-gpm was given. if test "${with_gpm+set}" = set; then : withval=$with_gpm; fi tucnak_libgpm="disabled" if test "x$with_gpm" == "xyes"; then # check for libgpm tucnak_libgpm="no" tucnak_old_LIBS=$LIBS tucnak_libgpm_ver="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gpm_Open in -lgpm" >&5 $as_echo_n "checking for Gpm_Open in -lgpm... " >&6; } if ${ac_cv_lib_gpm_Gpm_Open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgpm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Gpm_Open (); int main () { return Gpm_Open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gpm_Gpm_Open=yes else ac_cv_lib_gpm_Gpm_Open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gpm_Gpm_Open" >&5 $as_echo "$ac_cv_lib_gpm_Gpm_Open" >&6; } if test "x$ac_cv_lib_gpm_Gpm_Open" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBGPM 1 _ACEOF LIBS="-lgpm $LIBS" fi if ! test x"$LIBS" = x"$tucnak_old_LIBS"; then tucnak_libgpm="yes" if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include FILE *f; int main(void){ int w; f=fopen("conftest.libgpm.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", Gpm_GetLibVersion(&w)); fclose(f); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : tucnak_libgpm_ver=`cat conftest.libgpm.out` else tucnak_olibs="$tucnak_olibs libgpmg1" tucnak_odebs="$tucnak_odebs libgpmg1-dev" tucnak_orpms="$tucnak_orpms gpm-devel" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.libgpm.out fi fi # Check whether --with-sndfile was given. if test "${with_sndfile+set}" = set; then : withval=$with_sndfile; fi tucnak_sndfile="disabled" if test "x$with_sndfile" != "xno"; then # check for libsndfile libsndfile_LIBS=$LIBS libsndfile_CFLAGS=$CFLAGS pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5 $as_echo_n "checking for SNDFILE... " >&6; } if test -n "$SNDFILE_CFLAGS"; then pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.2\""; } >&5 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile >= 1.0.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$SNDFILE_LIBS"; then pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.2\""; } >&5 ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile >= 1.0.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sndfile >= 1.0.2" 2>&1` else SNDFILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sndfile >= 1.0.2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$SNDFILE_PKG_ERRORS" >&5 tucnak_olibs="$tucnak_mlibs libsndfile" tucnak_odebs="$tucnak_mdebs libsndfile-dev" tucnak_orpms="$tucnak_mrpms libsndfile-devel" tucnak_sndfile="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tucnak_olibs="$tucnak_mlibs libsndfile" tucnak_odebs="$tucnak_mdebs libsndfile-dev" tucnak_orpms="$tucnak_mrpms libsndfile-devel" tucnak_sndfile="no" else SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<_ACEOF #define HAVE_SNDFILE 1 _ACEOF tucnak_libsndfile_ver=`pkg-config --modversion 'sndfile >= 1.0.2'` tucnak_sndfile="yes" fi fi # Check whether --with-alsa was given. if test "${with_alsa+set}" = set; then : withval=$with_alsa; fi tucnak_alsa="disabled" if test "x$with_alsa" != "xno"; then # check for alsa tucnak_alsa_ver="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alsa" >&5 $as_echo_n "checking for alsa... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if defined(SND_LIB_MAJOR) && defined(SND_LIB_MINOR) #if SND_LIB_MAJOR>0 || (SND_LIB_MAJOR==0 && SND_LIB_MINOR>=6) AP_maGiC_VALUE #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "AP_maGiC_VALUE" >/dev/null 2>&1; then : # have_alsa_final=yes ALSA_LIB="-lasound" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_ALSA 1" >>confdefs.h tucnak_alsa="yes" if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include FILE *f; int main(void){ f=fopen("conftest.alsa.out", "wt"); if (!f) return -1; fprintf(f, "%s\n", SND_LIB_VERSION_STR); fclose(f); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : tucnak_alsa_ver=`cat conftest.alsa.out` fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.alsa.out else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tucnak_alsa="no" tucnak_olibs="$tucnak_olibs libasound" tucnak_odebs="$tucnak_odebs libasound-dev" tucnak_orpms="$tucnak_orpms alsa-devel" fi rm -f conftest* fi ## ## check for libftdi ## #AC_ARG_WITH([ftdi], AS_HELP_STRING([--without-ftdi], [Build without FTDI support for usb to serial converter (default: test)])) #tucnak_ftdi="disabled" # #if test "x$with_ftdi" != "xno"; then ## check for libftdi #tucnak_ftdi_ver="" #PKG_CHECK_MODULES(LIBFTDI, libftdi >= 0.11, # [ AC_DEFINE([HAVE_LIBFTDI], [1], [libftdi installed]) # tucnak_ftdi_ver=`$PKG_CONFIG --modversion 'libftdi >= 0.7'` # echo "libftdi version $tucnak_ftdi_ver" # tucnak_ftdi="yes" # LIBS="$LIBS -lusb" # ], # [ tucnak_ftdi="no" # tucnak_olibs="$tucnak_olibs libftdi1" # tucnak_odebs="$tucnak_odebs libftdi-dev" ]) # #fi #AS_HELP_STRING([--with-hamlib=path], [Build with Hamlib from fiven path - hamlib configure prefix]) # Check whether --with-hamlib was given. if test "${with_hamlib+set}" = set; then : withval=$with_hamlib; fi echo withval=$withval echo with_hamlib=$with_hamlib tucnak_hamlib="disabled" if test "x$with_hamlib" != "xno"; then if test "x$with_hamlib" == "x"; then # check for hamlib using pkgconfig echo 'check for hamlib using pkgconfig' tucnak_hamlib_ver="" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HAMLIB" >&5 $as_echo_n "checking for HAMLIB... " >&6; } if test -n "$HAMLIB_CFLAGS"; then pkg_cv_HAMLIB_CFLAGS="$HAMLIB_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"hamlib\""; } >&5 ($PKG_CONFIG --exists --print-errors "hamlib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_HAMLIB_CFLAGS=`$PKG_CONFIG --cflags "hamlib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$HAMLIB_LIBS"; then pkg_cv_HAMLIB_LIBS="$HAMLIB_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"hamlib\""; } >&5 ($PKG_CONFIG --exists --print-errors "hamlib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_HAMLIB_LIBS=`$PKG_CONFIG --libs "hamlib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then HAMLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "hamlib" 2>&1` else HAMLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "hamlib" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$HAMLIB_PKG_ERRORS" >&5 tucnak_olibs="$tucnak_olibs libhamlib" tucnak_odebs="$tucnak_odebs libhamlib-dev" tucnak_hamlib="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tucnak_olibs="$tucnak_olibs libhamlib" tucnak_odebs="$tucnak_odebs libhamlib-dev" tucnak_hamlib="no" else HAMLIB_CFLAGS=$pkg_cv_HAMLIB_CFLAGS HAMLIB_LIBS=$pkg_cv_HAMLIB_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_HAMLIB 1" >>confdefs.h tucnak_hamlib="yes" tucnak_hamlib_ver=`$PKG_CONFIG --modversion 'hamlib'` fi else # use path from with_hamlib echo 'use path from with_hamlib' HAMLIB_CFLAGS="-I$with_hamlib/hamlib/include" HAMLIB_LIBS="-L$with_hamlib/lib -lhamlib" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rig_init in -lhamlib" >&5 $as_echo_n "checking for rig_init in -lhamlib... " >&6; } if ${ac_cv_lib_hamlib_rig_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lhamlib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char rig_init (); int main () { return rig_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_hamlib_rig_init=yes else ac_cv_lib_hamlib_rig_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hamlib_rig_init" >&5 $as_echo "$ac_cv_lib_hamlib_rig_init" >&6; } if test "x$ac_cv_lib_hamlib_rig_init" = xyes; then : $as_echo "#define HAVE_HAMLIB 1" >>confdefs.h tucnak_hamlib="yes" tucnak_hamlib_ver="unknown from $with_hamlib" else tucnak_hamlib="no" fi fi fi # check for fftw3 # Check whether --with-fftw3 was given. if test "${with_fftw3+set}" = set; then : withval=$with_fftw3; fi tucnak_fftw3="disabled" if test "x$with_fftw3" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fftw_execute in -lfftw3" >&5 $as_echo_n "checking for fftw_execute in -lfftw3... " >&6; } if ${ac_cv_lib_fftw3_fftw_execute+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lfftw3 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char fftw_execute (); int main () { return fftw_execute (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_fftw3_fftw_execute=yes else ac_cv_lib_fftw3_fftw_execute=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fftw3_fftw_execute" >&5 $as_echo "$ac_cv_lib_fftw3_fftw_execute" >&6; } if test "x$ac_cv_lib_fftw3_fftw_execute" = xyes; then : $as_echo "#define HAVE_LIBFFTW3 1" >>confdefs.h FFTW3_LIBS="-lfftw3" tucnak_fftw3="yes" else tucnak_olibs="$tucnak_olibs libfftw3" tucnak_odebs="$tucnak_odebs libfftw3-dev" tucnak_orpms="$tucnak_orpms fftw3-devel" tucnak_fftw3="no" fi fi # check for portaudio # Check whether --with-portaudio was given. if test "${with_portaudio+set}" = set; then : withval=$with_portaudio; fi tucnak_portaudio="disabled" if test "x$with_portaudio" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Pa_WriteStream in -lportaudio" >&5 $as_echo_n "checking for Pa_WriteStream in -lportaudio... " >&6; } if ${ac_cv_lib_portaudio_Pa_WriteStream+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lportaudio $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Pa_WriteStream (); int main () { return Pa_WriteStream (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_portaudio_Pa_WriteStream=yes else ac_cv_lib_portaudio_Pa_WriteStream=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_portaudio_Pa_WriteStream" >&5 $as_echo "$ac_cv_lib_portaudio_Pa_WriteStream" >&6; } if test "x$ac_cv_lib_portaudio_Pa_WriteStream" = xyes; then : $as_echo "#define HAVE_PORTAUDIO 1" >>confdefs.h PORTAUDIO_LIBS="-lportaudio" tucnak_portaudio="yes" else tucnak_olibs="$tucnak_olibs libportaudio" tucnak_odebs="$tucnak_odebs portaudio19-dev" tucnak_orpms="$tucnak_orpms portaudio-devel" tucnak_portaudio="no" fi fi # check for ddir tucnak_ddir="/usr/lib/tucnak" if test -n "$DEB_HOST_MULTIARCH"; then tucnak_ddir="/usr/lib/$DEB_HOST_MULTIARCH/tucnak" fi cat >>confdefs.h <<_ACEOF #define DDIR "$tucnak_ddir" _ACEOF # check for library errors if test -n "$tucnak_mlibs$tucnak_olibs"; then echo "" echo "" echo "********" if test -n "$tucnak_mlibs"; then echo "Missing mandatory libraries: $tucnak_mlibs" fi if test -n "$tucnak_olibs"; then echo "Missing optional libraries: $tucnak_olibs" fi if test -f "/etc/debian_version"; then echo "Try to run: apt-get install $tucnak_mdebs $tucnak_odebs" fi if test -f "/etc/SuSE-release"; then echo "Try to run: yast -i $tucnak_mrpms $tucnak_orpms" fi echo "********" if test -n "$tucnak_mlibs"; then as_fn_error $? "missing mandatory library/libraries" "$LINENO" 5 fi fi # removed $GLIB_CFLAGS, $GLIB_LIBS CFLAGS="$CFLAGS $GTHREAD_CFLAGS $SNDFILE_CFLAGS $HAMLIB_CFLAGS" LIBS="$LIBS $GTHREAD_LIBS $ICONV_LIBS $SNDFILE_LIBS $ALSA_LIB $HAMLIB_LIBS $FFTW3_LIBS $PORTAUDIO_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) tucnak_endian="big";; #( no) tucnak_endian="little" ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) tucnak_endian="unknown" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5 $as_echo_n "checking for long long... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { unsigned long long a; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_long_long=yes else have_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_long_long" >&5 $as_echo "$have_long_long" >&6; } test "$have_long_long" = yes && $as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint32_t" >&5 $as_echo_n "checking for uint32_t... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif int main () { uint32_t a; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_uint32_t=yes else have_uint32_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_uint32_t" >&5 $as_echo "$have_uint32_t" >&6; } test "$have_uint32_t" = yes && $as_echo "#define HAVE_UINT32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for typeof" >&5 $as_echo_n "checking for typeof... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { int a; typeof(a) b; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_typeof=yes else have_typeof=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_typeof" >&5 $as_echo "$have_typeof" >&6; } test "$have_typeof" = yes && $as_echo "#define HAVE_TYPEOF 1" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : else if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (char) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 $as_echo "$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : else if test "$ac_cv_type_short" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 $as_echo "$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : else if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 $as_echo "$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF test "$have_long_long" = yes && # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 $as_echo_n "checking size of long long... " >&6; } if ${ac_cv_sizeof_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 $as_echo "$ac_cv_sizeof_long_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 $as_echo_n "checking size of void *... " >&6; } if ${ac_cv_sizeof_void_p+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : else if test "$ac_cv_type_void_p" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 $as_echo "$ac_cv_sizeof_void_p" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_VOID_P $ac_cv_sizeof_void_p _ACEOF for ac_func in gmtime_r do : ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r" if test "x$ac_cv_func_gmtime_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GMTIME_R 1 _ACEOF $as_echo "#define HAVE_GMTIME_R 1" >>confdefs.h fi done #check for F_TLOCK in fnctl.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for F_TLOCK in sys/file.h" >&5 $as_echo_n "checking for F_TLOCK in sys/file.h... " >&6; } if ${tucnak_cv_HAVE_F_TLOCK+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int a = F_TLOCK ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : tucnak_cv_HAVE_F_TLOCK=yes else tucnak_cv_HAVE_F_TLOCK=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tucnak_cv_HAVE_F_TLOCK" >&5 $as_echo "$tucnak_cv_HAVE_F_TLOCK" >&6; } if test x"$tucnak_cv_HAVE_F_TLOCK" = x"yes"; then $as_echo "#define HAVE_F_TLOCK 1" >>confdefs.h fi # Extract the first word of "rpm", so it can be a program name with args. set dummy rpm; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HAVE_RPM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_RPM"; then ac_cv_prog_HAVE_RPM="$HAVE_RPM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_RPM=""yes"" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_RPM" && ac_cv_prog_HAVE_RPM=""no"" fi fi HAVE_RPM=$ac_cv_prog_HAVE_RPM if test -n "$HAVE_RPM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_RPM" >&5 $as_echo "$HAVE_RPM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi HAVE_RPM_PACKAGING=no if test x$HAVE_RPM = xyes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpm build directories" >&5 $as_echo_n "checking for rpm build directories... " >&6; } RPM_SOURCESDIR=`rpm --showrc | grep "^sourcedir" | \ sed -e 's/.*: //' 2> /dev/null` if test x$RPM_SPECDIR = x ; then # Red Hat : /usr/src/redhat # Mandrake : /usr/src/RPM # SuSE : /usr/src/packages # Debian : /usr/src/rpm for TEST_DIR in /usr/src/redhat /usr/src/RPM /usr/src/packages /usr/src/rpm ; do if test -d $TEST_DIR/SPECS -a -d $TEST_DIR/SOURCES -a \ -d $TEST_DIR/RPMS -a -d $TEST_DIR/SRPMS -a \ -d $TEST_DIR/BUILD ; then RPM_SOURCESDIR=$TEST_DIR/SOURCES fi done fi if test x$RPM_SOURCESDIR = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } RPM_SOURCESDIR="" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPM_SOURCESDIR" >&5 $as_echo "$RPM_SOURCESDIR" >&6; } HAVE_RPM_PACKAGING=yes fi if test -f /etc/mandrake-release ; then RPM_RELEASE="mdk" else RPM_RELEASE="" fi fi #dnl check for ioctl(TIOCLINUX) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCLINUX" >&5 $as_echo_n "checking for TIOCLINUX... " >&6; } if ${tucnak_cv_HAVE_TIOCLINUX+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : tucnak_cv_HAVE_TIOCLINUX=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int cmp(const struct dirent **a, const struct dirent **b){return 0;} int main(){ char c[2]; c[0]=c[1]=0; exit(0); ioctl(1,TIOCLINUX,c); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : tucnak_cv_HAVE_TIOCLINUX=yes else tucnak_cv_HAVE_TIOCLINUX=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tucnak_cv_HAVE_TIOCLINUX" >&5 $as_echo "$tucnak_cv_HAVE_TIOCLINUX" >&6; } if test x"$tucnak_cv_HAVE_TIOCLINUX" = x"yes"; then $as_echo "#define HAVE_TIOCLINUX /**/" >>confdefs.h fi #dnl Check for socklen_t { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOCKLEN_T" >&5 $as_echo_n "checking for SOCKLEN_T... " >&6; } if ${tucnak_cv_HAVE_SOCKLEN_T+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : tucnak_cv_HAVE_SOCKLEN_T=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define AUTOCONF_TEST 1 #include #include "confdefs.h" int main(){ socklen_t tmp; exit(0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : tucnak_cv_HAVE_SOCKLEN_T=yes else tucnak_cv_HAVE_SOCKLEN_T=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tucnak_cv_HAVE_SOCKLEN_T" >&5 $as_echo "$tucnak_cv_HAVE_SOCKLEN_T" >&6; } if test x"$tucnak_cv_HAVE_SOCKLEN_T" = x"yes"; then $as_echo "#define HAVE_SOCKLEN_T /**/" >>confdefs.h fi # --enable-pedantic # Check whether --enable-pedantic was given. if test "${enable_pedantic+set}" = set; then : enableval=$enable_pedantic; enable_pedantic=yes else enable_pedantic=no fi if test x"$enable_pedantic" = x"yes"; then #CFLAGS="$CFLAGS -Wall -Wpedantic" CFLAGS="$CFLAGS -Wall -Werror -Wpointer-arith -Wstrict-prototypes -Wunused -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wformat -Wno-format-extra-args -Wformat-security -Wdeprecated-declarations" fi # --enable-leak-debug # Check whether --enable-leak-debug was given. if test "${enable_leak_debug+set}" = set; then : enableval=$enable_leak_debug; enable_leak_debug=yes else enable_leak_debug=no fi if test x"$enable_leak_debug" = x"yes"; then cat >>confdefs.h <<_ACEOF #define LEAK_DEBUG /**/ _ACEOF cat >>confdefs.h <<_ACEOF #define LEAK_DEBUG_LIST /**/ _ACEOF fi # --enable-instr # Check whether --enable-instr was given. if test "${enable_instr+set}" = set; then : enableval=$enable_instr; CFLAGS="$CFLAGS -finstrument-functions" enable_instr=yes else enable_instr=no fi if test x"$tucnak_ld_wlmap" = x"yes"; then LIBS="$LIBS -Wl,-Map,tucnak.map" fi CFLAGS="$CFLAGS $LIBZIA_CFLAGS" echo "LIBZIA_LIBS='$LIBZIA_LIBS'" echo "LIBS='$LIBS'" LIBS="$LIBZIA_LIBS $LIBS" echo "LIBS='$LIBS'" CFLAGS=`echo $CFLAGS | sed 's/ \+/ /g'` LDFLAGS=`echo $LDFLAGS | sed 's/ \+/ /g'` LIBS=`echo $LIBS | sed 's/ \+/ /g'` TUCNAK_LDADD=$LIBS LIBS="" TUCNAK_CFLAGS=$CFLAGS sharedir="$prefix/share/$PACKAGE_NAME" cat >>confdefs.h <<_ACEOF #define SHAREDIR "$sharedir" _ACEOF VERSIONCODE=`echo $VERSION | sed 's/\.//'` ac_config_files="$ac_config_files Makefile android/AndroidManifest.xml android/Makefile android/nagup android/src/Makefile android/tucnak-package data/Makefile doc/Makefile intl/Makefile pkg/tucnak.spec pkg/Makefile share/Makefile share/applications/Makefile share/pixmaps/Makefile src/Makefile src/msvcver.h srcup win32/Makefile win32/nagup.bat win32/tucnak-cygwin.nsi win32/tucnak-mingw.nsi win32/tucnak-msvc.nsi" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by tucnak $as_me 4.04, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ tucnak config.status 4.04 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "android/AndroidManifest.xml") CONFIG_FILES="$CONFIG_FILES android/AndroidManifest.xml" ;; "android/Makefile") CONFIG_FILES="$CONFIG_FILES android/Makefile" ;; "android/nagup") CONFIG_FILES="$CONFIG_FILES android/nagup" ;; "android/src/Makefile") CONFIG_FILES="$CONFIG_FILES android/src/Makefile" ;; "android/tucnak-package") CONFIG_FILES="$CONFIG_FILES android/tucnak-package" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "intl/Makefile") CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; "pkg/tucnak.spec") CONFIG_FILES="$CONFIG_FILES pkg/tucnak.spec" ;; "pkg/Makefile") CONFIG_FILES="$CONFIG_FILES pkg/Makefile" ;; "share/Makefile") CONFIG_FILES="$CONFIG_FILES share/Makefile" ;; "share/applications/Makefile") CONFIG_FILES="$CONFIG_FILES share/applications/Makefile" ;; "share/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES share/pixmaps/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/msvcver.h") CONFIG_FILES="$CONFIG_FILES src/msvcver.h" ;; "srcup") CONFIG_FILES="$CONFIG_FILES srcup" ;; "win32/Makefile") CONFIG_FILES="$CONFIG_FILES win32/Makefile" ;; "win32/nagup.bat") CONFIG_FILES="$CONFIG_FILES win32/nagup.bat" ;; "win32/tucnak-cygwin.nsi") CONFIG_FILES="$CONFIG_FILES win32/tucnak-cygwin.nsi" ;; "win32/tucnak-mingw.nsi") CONFIG_FILES="$CONFIG_FILES win32/tucnak-mingw.nsi" ;; "win32/tucnak-msvc.nsi") CONFIG_FILES="$CONFIG_FILES win32/tucnak-msvc.nsi" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi chmod +x srcup svnver.sh android/tucnak-package echo "" (echo "------ Tucnak settings: --------"; echo " version: $PACKAGE_NAME-$PACKAGE_VERSION"; echo " prefix: $prefix"; echo " pkg: $pkg"; #echo " sharedir: $sharedir"; #echo " target: $target"; #echo " compiler: $CC $tucnak_cc_ver"; #echo " sizes: int=$ac_cv_sizeof_int, long=$ac_cv_sizeof_long, long long=$ac_cv_sizeof_long_long, void*=$ac_cv_sizeof_void_p" #echo " endianity: $tucnak_endian"; echo " CFLAGS: $CFLAGS"; echo " LDFLAGS: $LDFLAGS"; echo " LIBS: $TUCNAK_LDADD"; #echo " libc: yes $tucnak_libc_ver"; echo " libzia: yes $tucnak_libzia_ver"; #echo " libglib: $tucnak_glib $tucnak_glib_ver"; #echo " libgtk: $app_gtk $app_gtk_ver"; #echo " libsdl: $tucnak_sdl $tucnak_sdl_ver"; #echo " libpng: yes $tucnak_libpng_ver"; echo " iconv: $tucnak_iconv"; echo " libgpm: $tucnak_libgpm $tucnak_libgpm_ver"; echo "libsndfile: $tucnak_sndfile $tucnak_libsndfile_ver"; echo " alsa: $tucnak_alsa $tucnak_alsa_ver"; #echo " libftdi: $tucnak_ftdi $tucnak_ftdi_ver"; echo " libhamlib: $tucnak_hamlib $tucnak_hamlib_ver"; echo " libfftw3: $tucnak_fftw3"; echo " portaudio: $tucnak_portaudio"; echo " ppdev: $ac_cv_header_linux_ppdev_h"; echo " ddir: $tucnak_ddir"; echo " pedantic: $enable_pedantic"; #echo "leak debug: $enable_leak_debug"; #echo "instrument: $enable_instr"; echo " opts: $opt") | tee settings echo "" (echo "char *txt_settings="; cat settings | sed 's/\(.*\)/"\1\\n"/'; echo ";") > src/settings.c tucnak-4.04/src/0000755000175000017500000000000012561153001010510 500000000000000tucnak-4.04/src/zosk.c0000644000175000017500000005326712414771142011610 00000000000000/* Tucnak - VHF contest log Copyright (C) 2012-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "zosk.h" #ifdef Z_HAVE_SDL #include "kbd.h" #include "main.h" #include "qsodb.h" #include "terminal.h" #include "tsdl.h" #define sdlkey(key) case key: strcat(s, #key); break #define ZOSK_KEYY (zosk->font_h + 10 + 10) #define ZOSK_LEFT ((SDLKey)-10) #define ZOSK_RIGHT ((SDLKey)-11) #define ZOSK_TP_CENTER 0 #define ZOSK_TP_LEFT 1 #define ZOSK_TP_RIGHT 2 char *zosk_sym2text(struct zosk *zosk, struct zosk_key *key, SDLKey sym){ static char txt[5]; switch ((int)sym){ case SDLK_LSHIFT: key->isshift = 1; zosk->shift = key; return "SH"; case SDLK_LCTRL: key->isshift = 1; zosk->ctrl = key; return "Ctrl"; case SDLK_LALT: key->isshift = 1; zosk->alt = key; return "Alt"; case SDLK_MODE: key->isshift = 1; zosk->fn = key; return "\x0f"; case SDLK_BACKSPACE: return "BSP"; case SDLK_ESCAPE: zosk->esc = key; return "Esc"; case SDLK_TAB: return "TAB"; case SDLK_RETURN: return "ENT"; case SDLK_SPACE: return "___"; case SDLK_0: return "0"; case SDLK_F10: return "F10"; case ZOSK_LEFT: return "\x1b"; case ZOSK_RIGHT: return "\x1a"; default: if (sym > 32 && sym < 256){ g_snprintf(txt, 3, "%c", sym); return txt; } if (sym >= SDLK_F1 && sym <= SDLK_F9){ g_snprintf(txt, 4, "F%d", sym - SDLK_F1 + 1); return txt; } return ""; } } struct zosk_key *zosk_key_add(struct zosk *zosk, int w2, SDLKey sym, SDLKey symFn, SDLKey symShift){ struct zosk_key *key = g_new0(struct zosk_key, 1); key->x = zosk->x0 + (zosk->x2 * zosk->bw2 * 2) / 2; key->w = zosk->bw2 * w2 - 4; key->y = zosk->y0 + zosk->y * zosk->bh + ZOSK_KEYY; key->h = zosk->bh - 4; key->cx = key->x + key->w / 2; key->cy = key->y + key->h / 2; key->sym = sym; key->symFn = symFn; key->symShift = symShift; strcpy(key->text, zosk_sym2text(zosk, key, key->sym)); strcpy(key->textFn, zosk_sym2text(zosk, key, key->symFn)); strcpy(key->textShift, zosk_sym2text(zosk, key, key->symShift)); g_ptr_array_add(zosk->keys, key); zosk->x2 += w2; return key; } static void zosk_move(struct zosk *zosk){ switch (cfg->touchpos){ case ZOSK_TP_LEFT: zosk->parent_x = 0; break; case ZOSK_TP_RIGHT: zosk->parent_x = zosk->screen_w - zosk->surface->w; break; case ZOSK_TP_CENTER: zosk->parent_x = (zosk->screen_w - zosk->surface->w) / 2; default: break; } } struct zosk *zosk_init(SDL_Surface *screen, int flags, const char *text){ struct zosk *zosk; int w = screen->w; int h = screen->h; int spypeers = 0; zosk = g_new0(struct zosk, 1); w -= 10; //h -= 10; if (ctest && !ctest->oldcontest) spypeers = ctest->spypeers->len; //h = zsdl->font_h * (term->y - cfg->loglines - spypeers - DISP_QSOS - 2); h = (sdl->screen->h / FONT_H) * FONT_H + zsdl->font_h * ( - cfg->loglines - spypeers - DISP_QSOS - 1); //log_addf("window_h=%d FONT_H=%d font_h=%d h=%d\n", sdl->screen->h, FONT_H, zsdl->font_h, h); zosk->KX2 = 21; zosk->KY = 5; zosk->font_h = 48;//zsdl_max_font_h(zosk->bw2 * 2 - 2, zosk->bh / 2, "M");//32; zosk->font_w = zsdl_h2w(zosk->font_h); zosk->bw2 = Z_MIN((w * 2) / zosk->KX2, (h - 4 - ZOSK_KEYY) / zosk->KY) / 2; //log_addf("MIN(%d, %d) = %d",(w * 2) / zosk->KX2, (h - 20 - ZOSK_KEYY) / zosk->KY, zosk->bw2); zosk->bh = zosk->bw2 * 2; zosk->x0 = 10;//(w - 1 - zosk->bw4 * zosk->KX4) / 2; zosk->y0 = 0;//h - 1 - zosk->bh * zosk->KY; zosk->keys = g_ptr_array_new(); zosk->bbg = z_makecol(128, 128, 128); zosk->bg = z_makecol(48, 48, 48); zosk->flags = flags; zosk->surface = SDL_CreateRGBSurface(SDL_SWSURFACE, zosk->bw2 * zosk->KX2 + 20, zosk->bh * zosk->KY + 4 + ZOSK_KEYY, screen->format->BitsPerPixel, screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, 0); zosk->screen_w = screen->w; zosk_move(zosk); zosk->parent_y = 0;//(screen->h - zosk->surface->h) / 2; zosk->gs = g_string_new(text); zosk->maxlen_c = (zosk->surface->w - 32 - zosk->font_h * 2) / zosk->font_w; zosk->x2 = 0; zosk->y = 0; zosk_key_add(zosk, 1, ZOSK_LEFT, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_1, SDLK_F1, SDLK_EXCLAIM); zosk_key_add(zosk, 2, SDLK_2, SDLK_F2, SDLK_AT); zosk_key_add(zosk, 2, SDLK_3, SDLK_F3, SDLK_HASH); zosk_key_add(zosk, 2, SDLK_4, SDLK_F4, SDLK_DOLLAR); zosk_key_add(zosk, 2, SDLK_5, SDLK_F5, (SDLKey)'%'); zosk_key_add(zosk, 2, SDLK_6, SDLK_F6, SDLK_CARET); zosk_key_add(zosk, 2, SDLK_7, SDLK_F7, SDLK_AMPERSAND); zosk_key_add(zosk, 2, SDLK_8, SDLK_F8, SDLK_ASTERISK); zosk_key_add(zosk, 2, SDLK_9, SDLK_F9, SDLK_LEFTPAREN); zosk_key_add(zosk, 2, SDLK_0, SDLK_F10, SDLK_RIGHTPAREN); zosk->x2 = 0; zosk->y++; zosk_key_add(zosk, 2, SDLK_q, (SDLKey)'~', SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_w, SDLK_EXCLAIM, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_e, SDLK_AT, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_r, SDLK_HASH, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_t, SDLK_DOLLAR, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_y, (SDLKey)'%', SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_u, (SDLKey)SDLK_CARET, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_i, SDLK_AMPERSAND, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_o, SDLK_ASTERISK, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_p, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 1, ZOSK_RIGHT, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk->x2 = 0; zosk->y++; zosk_key_add(zosk, 3, SDLK_TAB, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_a, SDLK_UNDERSCORE, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_s, SDLK_MINUS, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_d, SDLK_PLUS, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_f, SDLK_EQUALS, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_g, SDLK_COLON, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_h, SDLK_SEMICOLON, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_j, SDLK_QUOTE, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_k, SDLK_QUOTEDBL, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_l, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk->x2 = 0; zosk->y++; zosk_key_add(zosk, 2, SDLK_ESCAPE, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_LSHIFT, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_z, SDLK_LEFTPAREN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_x, SDLK_RIGHTPAREN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_c, SDLK_LESS, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_v, SDLK_GREATER, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_b, SDLK_LEFTBRACKET, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_n, SDLK_RIGHTBRACKET, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_m, SDLK_COMMA, SDLK_UNKNOWN); zosk_key_add(zosk, 3, SDLK_BACKSPACE, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk->x2 = 0; zosk->y++; zosk_key_add(zosk, 2, SDLK_LCTRL, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_MODE, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_LALT, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 6, SDLK_SPACE, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_QUESTION, SDLK_UNKNOWN, SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_PERIOD, (SDLKey)'|', SDLK_UNKNOWN); zosk_key_add(zosk, 2, SDLK_SLASH, SDLK_BACKSLASH, SDLK_UNKNOWN); zosk_key_add(zosk, 3, SDLK_RETURN, SDLK_UNKNOWN, SDLK_UNKNOWN); return zosk; } void zosk_free(struct zosk *zosk){ int i; for (i = 0; i < zosk->keys->len; i++){ struct zosk_key *key = (struct zosk_key *)g_ptr_array_index(zosk->keys, i); g_free(key); } g_ptr_array_free(zosk->keys, TRUE); SDL_FreeSurface(zosk->surface); g_string_free(zosk->gs, TRUE); g_free(zosk); } void zosk_draw_key_text(struct zosk *zosk, struct zosk_key *key){ SDL_Rect r; char *c = key->text; int color, fh; if (zosk->fn->pressed && key->symFn != SDLK_UNKNOWN) c = key->textFn; if (zosk->shift->pressed && key->symShift != SDLK_UNKNOWN) c = key->textShift; fh = zsdl_max_font_h(key->w - 2, key->h - 2, c); color = z_makecol(255, 255, 255); switch ((int)key->sym){ case SDLK_LSHIFT: r.x = key->cx - (int)(0.2 * fh); r.w = 0.4 * fh + 1; r.y = key->cy + (int)(0.1 * fh); r.h = 0.1 * fh + 1; SDL_FillRect(zosk->surface, &r, color); r.x = key->cx - (int)(0.2 * fh); r.w = 0.4 * fh + 1; r.y = key->cy + (int)(0.3 * fh); r.h = 0.1 * fh + 1; SDL_FillRect(zosk->surface, &r, color); z_triangle(zosk->surface, key->cx - (int)(0.4 * fh), key->cy + (int)(0.1 * fh), key->cx + (int)(0.4 * fh), key->cy + (int)(0.1 * fh), key->cx, key->cy - (int)(0.3 * fh), color); break; case SDLK_BACKSPACE: r.x = key->cx - (int)(0.4 * fh); r.w = (int)(1.2 * fh); r.y = key->cy - (int)(0.4 * fh); r.h = (int)(0.8 * fh) + 1; SDL_FillRect(zosk->surface, &r, color); z_triangle(zosk->surface, key->cx - (int)(0.4 * fh), key->cy - (int)(0.4 * fh), key->cx - (int)(0.4 * fh), key->cy + (int)(0.4 * fh), key->cx - (int)(0.8 * fh), key->cy, color); zsdl_printf(zosk->surface, key->cx + (int)(0.1 * fh), key->cy - 1, zosk->bbg, 0, ZFONT_CENTERX | ZFONT_CENTERY | ZFONT_TRANSP | ZFONT_USERH(fh), "\xd7"); break; case SDLK_TAB: z_line(zosk->surface, key->cx - (int)(0.5 * fh), key->cy-1, key->cx + (int)(0.2 * fh), key->cy-1, color); z_line(zosk->surface, key->cx - (int)(0.5 * fh), key->cy, key->cx + (int)(0.2 * fh), key->cy, color); z_line(zosk->surface, key->cx - (int)(0.5 * fh), key->cy+1, key->cx + (int)(0.2 * fh), key->cy+1, color); z_triangle(zosk->surface, key->cx + (int)(0.2 * fh), key->cy - (int)(0.4 * fh), key->cx + (int)(0.2 * fh), key->cy + (int)(0.4 * fh), key->cx + 3* (int)(0.2 * fh), key->cy, color); /*z_putpixel(zosk->surface,key->cx + (int)(0.2 * fh), key->cy - (int)(0.4 * fh), sdl->red); z_putpixel(zosk->surface,key->cx + (int)(0.2 * fh), key->cy + (int)(0.4 * fh), sdl->red); z_putpixel(zosk->surface,key->cx + 3* (int)(0.2 * fh), key->cy, sdl->red);*/ r.x = key->cx + 3* (int)(0.2 * fh) + 1; r.w = 2; r.y = key->cy - (int)(0.5 * fh); r.h = (int)(1 * fh); SDL_FillRect(zosk->surface, &r, color); break; case SDLK_RETURN: z_triangle(zosk->surface, key->cx - (int)(0.4 * fh), key->cy - (int)(0.4 * fh), key->cx - (int)(0.4 * fh), key->cy + (int)(0.4 * fh), key->cx - (int)(0.8 * fh), key->cy, color); r.x = key->cx - (int)(0.4 * fh); r.w = 0.8 * fh; r.y = key->cy -1; r.h = 3; SDL_FillRect(zosk->surface, &r, color); r.x = key->cx + (int)(0.4 * fh); r.w = 3; r.y = key->cy - (int)(0.5 * fh); r.h = 0.5 * fh + 2; SDL_FillRect(zosk->surface, &r, color); break; case SDLK_SPACE: r.x = key->cx - (int)(0.6 * fh); r.w = 1.2 * fh; r.y = key->cy + (int)(0.4 * fh); r.h = 3; SDL_FillRect(zosk->surface, &r, color); r.x = key->cx - (int)(0.6 * fh) - 3; r.w = 3; r.y = key->cy + (int)(0.4 * fh) - 5; r.h = 8; SDL_FillRect(zosk->surface, &r, color); r.x = key->cx + (int)(0.6 * fh); r.w = 3; r.y = key->cy + (int)(0.4 * fh) - 5; r.h = 8; SDL_FillRect(zosk->surface, &r, color); break; default: if (strlen(c) == 1 && (zosk->shift->pressed || zosk->flags & ZOSK_UPCONVERT)) { char cc[2]; cc[0] = toupper(c[0]); cc[1] = '\0'; zsdl_printf(zosk->surface, key->cx, key->cy, z_makecol(255, 255, 255), 0, ZFONT_CENTERX | ZFONT_CENTERY | ZFONT_TRANSP | ZFONT_USERH(fh), "%s", cc); }else{ zsdl_printf(zosk->surface, key->cx, key->cy, z_makecol(255, 255, 255), 0, ZFONT_CENTERX | ZFONT_CENTERY | ZFONT_TRANSP | ZFONT_USERH(fh), "%s", c); } break; } } void zosk_draw_key(struct zosk *zosk, struct zosk_key *key, int bbg){ SDL_Rect r; int x, y; int bg2 = z_makecol((z_r(zosk->surface, bbg) * 3) / 4, (z_g(zosk->surface, bbg) * 3) / 4, (z_b(zosk->surface, bbg) * 3) / 4); r.x = key->x; r.y = key->y; r.w = key->w; r.h = key->h; SDL_FillRect(zosk->surface, &r, bbg); x = r.x; y = r.y; z_putpixel(zosk->surface, x, y, zosk->bg); z_putpixel(zosk->surface, x+1, y, zosk->bg); z_putpixel(zosk->surface, x+2, y, bg2); z_putpixel(zosk->surface, x, y+1, zosk->bg); z_putpixel(zosk->surface, x, y+2, bg2); x = r.x + r.w - 1; y = r.y; z_putpixel(zosk->surface, x, y, zosk->bg); z_putpixel(zosk->surface, x-1, y, zosk->bg); z_putpixel(zosk->surface, x-2, y, bg2); z_putpixel(zosk->surface, x, y+1, zosk->bg); z_putpixel(zosk->surface, x, y+2, bg2); x = r.x; y = r.y + r.h - 1; z_putpixel(zosk->surface, x, y, zosk->bg); z_putpixel(zosk->surface, x+1, y, zosk->bg); z_putpixel(zosk->surface, x+2, y, bg2); z_putpixel(zosk->surface, x, y-1, zosk->bg); z_putpixel(zosk->surface, x, y-2, bg2); x = r.x + r.w - 1; y = r.y + r.h - 1; z_putpixel(zosk->surface, x, y, zosk->bg); z_putpixel(zosk->surface, x-1, y, zosk->bg); z_putpixel(zosk->surface, x-2, y, bg2); z_putpixel(zosk->surface, x, y-1, zosk->bg); z_putpixel(zosk->surface, x, y-2, bg2); zosk_draw_key_text(zosk, key); } void zosk_draw_top(struct zosk *zosk, struct zosk_key *key){ char *c = key->text; int fh, fw; Uint32 Rmask, Gmask, Bmask, Amask; SDL_Surface *surface; int x, y, transp, half; SDL_Rect r; if (zosk->flags & ZOSK_IGNOREESC) return; if (zosk->fn->pressed && key->symFn != SDLK_UNKNOWN) c = key->textFn; if (zosk->shift->pressed && key->symShift != SDLK_UNKNOWN) c = key->textShift; fh = zsdl_max_font_h(key->w - 2, key->h - 2, c); fw = zsdl_h2w(fh); Rmask = Gmask = Bmask = Amask = 0 ; if ( SDL_BYTEORDER == SDL_LIL_ENDIAN ) { Rmask = 0x000000FF; Gmask = 0x0000FF00; Bmask = 0x00FF0000; Amask = 0xFF000000; } else { Rmask = 0xFF000000; Gmask = 0x00FF0000; Bmask = 0x0000FF00; Amask = 0x000000FF; } surface = SDL_AllocSurface(SDL_SWSURFACE, 10 + fw * strlen(c), 10 + fh, 32, Rmask, Gmask, Bmask, Amask); SDL_FillRect(surface, NULL, SDL_MapRGBA(surface->format, 150, 0, 0, 255)); // opaque // blit text/glyph to tooltip r.x = key->cx - surface->w / 2; r.w = key->w - 2; r.y = key->cy - surface->h / 2; r.h = key->h - 2; SDL_BlitSurface(zosk->surface, &r , surface, NULL); transp = SDL_MapRGBA(surface->format, 150, 0, 0, 0); half = SDL_MapRGBA(surface->format, 150, 0, 0, 128); x = 0; y = 0; z_putpixel32(surface, x, y, transp); z_putpixel32(surface, x+1, y, transp); z_putpixel32(surface, x+2, y, half); z_putpixel32(surface, x, y+1, transp); z_putpixel32(surface, x, y+2, half); x = surface->w - 1; y = 0; z_putpixel32(surface, x, y, transp); z_putpixel32(surface, x-1, y, transp); z_putpixel32(surface, x-2, y, half); z_putpixel32(surface, x, y+1, transp); z_putpixel32(surface, x, y+2, half); x = 0; y = surface->h - 1; z_putpixel32(surface, x, y, transp); z_putpixel32(surface, x+1, y, transp); z_putpixel32(surface, x+2, y, half); z_putpixel32(surface, x, y-1, transp); z_putpixel32(surface, x, y-2, half); x = surface->w - 1; y = surface->h - 1; z_putpixel32(surface, x, y, transp); z_putpixel32(surface, x-1, y, transp); z_putpixel32(surface, x-2, y, half); z_putpixel32(surface, x, y-1, transp); z_putpixel32(surface, x, y-2, half); //zosk_draw_key_text(zosk, key); TODO ruzne bitove konfigurace // blit prepared tooltip to keyboard r.x = (key->w - surface->w) / 2 + key->x; r.w = surface->w; r.y = key->y - surface->h - 3; r.h = surface->h; SDL_BlitSurface(surface, NULL, zosk->surface, &r); SDL_FreeSurface(surface); } void zosk_draw(struct zosk *zosk){ int i; SDL_Rect r; char *c; //dbg("zosk_draw(%p %p)\n", zosk, zosk->surface); SDL_FillRect(zosk->surface, NULL, zosk->bg); r.x = 32; r.y = 10; r.w = zosk->maxlen_c * zosk->font_w; r.h = zosk->font_h; SDL_FillRect(zosk->surface, &r, z_makecol(192, 192, 192)); c = zosk->gs->str; if (strlen(c) >= zosk->maxlen_c) c += strlen(c) - zosk->maxlen_c + 1; zsdl_printf(zosk->surface, 32, 10, z_makecol(0, 0, 0), 0, ZFONT_TRANSP | ZFONT_USERH(zosk->font_h), "%s", c); zsdl_printf(zosk->surface, 32 + strlen(c) * zosk->font_w, 10, 0, sdl->cursor, ZFONT_USERH(zosk->font_h), " "); r.w = ZOSK_KEYY - 6;//(zosk->font_h * 3) / 2; r.h = ZOSK_KEYY - 6;//(zosk->font_h * 3) / 2; r.x = zosk->surface->w - r.w - 2; r.y = 2; SDL_FillRect(zosk->surface, &r, z_makecol(192, 192, 192)); zsdl_printf(zosk->surface, r.x + r.w/2, r.y + r.h / 2, z_makecol(0, 0, 0), 0, ZFONT_CENTERX | ZFONT_CENTERY | ZFONT_TRANSP | ZFONT_USERH(zosk->font_h), "\xd7"); for (i = 0; i < zosk->keys->len; i++){ struct zosk_key *key = (struct zosk_key *)g_ptr_array_index(zosk->keys, i); int color = key == zosk->active || key->pressed ? z_makecol(150, 0, 0) : zosk->bbg; if (key->pressed == 2) color = z_makecol(0, 75, 150); if (zosk->flags & ZOSK_IGNOREESC) color = zosk->bbg; zosk_draw_key(zosk, key, color); if (key == zosk->active && key->pressed != 2) zosk_draw_top(zosk, key); } } int zosk_send(struct zosk *zosk){ SDL_Event ev; int i; struct zosk_key *key = zosk->sent; memset(&ev, 0, sizeof(ev)); ev.type = SDL_KEYDOWN; ev.key.keysym.mod = KMOD_NONE; if (zosk->ctrl->pressed) ev.key.keysym.mod = KMOD_LCTRL; if (zosk->alt->pressed) ev.key.keysym.mod = KMOD_LALT; if (zosk->shift->pressed) ev.key.keysym.mod = KMOD_LSHIFT; ev.key.keysym.scancode = 1; ev.key.keysym.sym = key->sym; if (zosk->fn->pressed && key->symFn != SDLK_UNKNOWN) ev.key.keysym.sym = key->symFn; if (zosk->shift->pressed && key->symShift != SDLK_UNKNOWN) ev.key.keysym.sym = key->symShift; ev.key.keysym.unicode = 0; ev.key.state = SDL_PRESSED; ev.key.which = 0; SDL_PushEvent(&ev); //dbg("push %d\n", ev.key.keysym.sym); if (!zosk->ctrl->pressed && !zosk->alt->pressed){ if (ev.key.keysym.sym >= ' ' && ev.key.keysym.sym < 128){ if (zosk->shift->pressed || (zosk->flags & ZOSK_UPCONVERT)) g_string_append_c(zosk->gs, z_char_uc((char)ev.key.keysym.sym)); else g_string_append_c(zosk->gs, (char)ev.key.keysym.sym); } if (ev.key.keysym.sym == SDLK_BACKSPACE && zosk->gs->len > 0){ g_string_erase(zosk->gs, zosk->gs->len - 1, 1); } if (ev.key.keysym.sym == SDLK_RETURN && zosk->flags && ZOSK_CLEARENTER){ g_string_truncate(zosk->gs, 0); } } if (!key->isshift){ for (i = 0; i < zosk->keys->len; i++){ struct zosk_key *key2 = (struct zosk_key *)g_ptr_array_index(zosk->keys, i); if (key2 == zosk->shift && key2->pressed == 2) continue; if (key2 == zosk->fn && key2->pressed == 2) continue; key2->pressed = 0; } zosk->shifts_active = 0; }else{ if (!key->pressed){ key->pressed = 1; zosk->shifts_active++; }else{ if ((key == zosk->shift || key == zosk->fn) && key->pressed == 1){ key->pressed = 2; }else{ key->pressed = 0; zosk->shifts_active--; zosk->active = NULL; } } } return 0; } void zosk_repeat(void *arg){ struct zosk *zosk = (struct zosk*)arg; //int closesize = (zosk->font_h * 3) / 2; zosk_send(zosk); zosk->repeat_timer_id = zselect_timer_new(zsel, 20*2, zosk_repeat, zosk); } int zosk_click(struct zosk *zosk, int x, int y, int pressed){ int i; int closesize = (zosk->font_h * 3) / 2; // int white = z_makecol(255, 255, 255); struct zosk_key *oldactive = zosk->active; //int bg = z_makecol(0, 0, 0); //int bg2 = z_makecol(76, 76, 76); if (zosk->active && zosk->active->isshift == 0){ //zosk_draw_key(zosk, zosk->active, zosk->bbg); zosk->active = NULL; } if (x >= zosk->surface->w - closesize && y >- 0 && y < closesize ){ x = zosk->esc->x; y = zosk->esc->y; zosk->flags |= ZOSK_ENTERCLOSE; zosk->flags |= ZOSK_IGNOREESC; } for (i = 0; i < zosk->keys->len; i++){ struct zosk_key *key = (struct zosk_key *)g_ptr_array_index(zosk->keys, i); if (x < key->x) continue; if (y < key->y) continue; if (x >= key->x + key->w) continue; if (y >= key->y + key->h) continue; if (pressed){ //zosk_draw_key(zosk, key, z_makecol(150, 0, 0)); zosk->active = key; zosk->sent = key; if (zosk->repeat_timer_id) zselect_timer_kill(zsel, zosk->repeat_timer_id); //zosk->repeat_timer_id = zselect_timer_new(zsel, 500/*300*/, zosk_repeat, zosk); }else{ if (zosk->repeat_timer_id) { zselect_timer_kill(zsel, zosk->repeat_timer_id); zosk->repeat_timer_id = 0; } if (key == oldactive){ // dbg("key==oldactive isshift=%d key->pressed=%d\n", key->isshift, key->pressed); if (key->sym == ZOSK_LEFT){ if (cfg->touchpos == ZOSK_TP_CENTER) cfg->touchpos = ZOSK_TP_LEFT; if (cfg->touchpos == ZOSK_TP_RIGHT) cfg->touchpos = ZOSK_TP_CENTER; zosk_move(zosk); sdl_force_redraw(); break; } if (key->sym == ZOSK_RIGHT){ if (cfg->touchpos == ZOSK_TP_CENTER) cfg->touchpos = ZOSK_TP_RIGHT; if (cfg->touchpos == ZOSK_TP_LEFT) cfg->touchpos = ZOSK_TP_CENTER; zosk_move(zosk); sdl_force_redraw(); break; } zosk_send(zosk); } } redraw_later(); return 0; } //sdl_force_redraw(); //dbg("ctrl: isshift=%d key->pressed=%d\n", zosk->ctrl->isshift, zosk->ctrl->pressed); //dbg("shift: isshift=%d key->pressed=%d\n", zosk->shift->isshift, zosk->shift->pressed); //dbg("alt: isshift=%d key->pressed=%d\n", zosk->alt->isshift, zosk->alt->pressed); redraw_later(); return 1; } void zosk_clear(struct zosk *zosk){ g_string_assign(zosk->gs, ""); } void zosk_portrait(struct zosk *zosk){ //dbg("zosk_portrait %d %d<%d\n", cfg->portrait, sdl->screen->w, sdl->screen->h); if (cfg->portrait && sdl->screen->w < sdl->screen->h){ zosk->parent_y = sdl->screen->h - zosk->surface->h; gses->osk->flags &= ~ZOSK_ENTERCLOSE; //dbg("zosk_portrait parent_y=%d zosk->surface->h=%d\n", zosk->parent_y, zosk->surface->h); resize_terminal(GINT_TO_POINTER(1)); } } #endif tucnak-4.04/src/vhfcontestnet.c0000644000175000017500000002552312500546017013503 00000000000000/* vhfcontestnet.c - Upload to www.vhfcontest.net Copyright (C) 2014-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "vhfcontestnet.h" #include #include "bfu.h" #include "dwdb.h" #include "fifo.h" #include "main.h" #include "menu.h" #include "subwin.h" #include "tregex.h" struct vhfcontestnet *init_vhfcontestnet(void){ struct vhfcontestnet *vcn = g_new0(struct vhfcontestnet, 1); vcn->http = zhttp_init(); return vcn; } void free_vhfcontestnet(struct vhfcontestnet *vcn){ if (vcn->http) zhttp_free(vcn->http); g_free(vcn); } int vhfcontestnet_country(char *call){ char dxcc[256]; get_dxcc(dw, dxcc, call); z_str_uc(dxcc); if (strcmp(dxcc, "9A") == 0) return 5; if (strcmp(dxcc, "CT") == 0) return 27; if (strcmp(dxcc, "DL") == 0) return 3; if (strcmp(dxcc, "EA") == 0) return 26; if (strcmp(dxcc, "ES") == 0) return 16; if (strcmp(dxcc, "F") == 0) return 6; if (strcmp(dxcc, "G") == 0) return 19; if (strcmp(dxcc, "HA") == 0) return 28; if (strcmp(dxcc, "HB9") == 0) return 20; if (strcmp(dxcc, "I") == 0) return 7; if (strcmp(dxcc, "LA") == 0) return 23; if (strcmp(dxcc, "LY") == 0) return 17; if (strcmp(dxcc, "LZ") == 0) return 11; if (strcmp(dxcc, "OE") == 0) return 29; if (strcmp(dxcc, "OH") == 0) return 15; if (strcmp(dxcc, "OK") == 0) return 1; if (strcmp(dxcc, "OM") == 0) return 2; if (strcmp(dxcc, "ON") == 0) return 22; if (strcmp(dxcc, "OZ") == 0) return 13; if (strcmp(dxcc, "PA") == 0) return 21; if (strcmp(dxcc, "RA") == 0) return 25; if (strcmp(dxcc, "S5") == 0) return 4; if (strcmp(dxcc, "SM") == 0) return 14; if (strcmp(dxcc, "SP") == 0) return 12; if (strcmp(dxcc, "T9") == 0) return 9; if (strcmp(dxcc, "UR") == 0) return 24; if (strcmp(dxcc, "YL") == 0) return 18; if (strcmp(dxcc, "YO") == 0) return 10; if (strcmp(dxcc, "YU") == 0) return 8; if (strcmp(dxcc, "Z3") == 0) return 30; return -1; } void vhfcontestnet_upload(void *arg){ if (gses->vcn) return; if (!ctest) return; menu_export_edi(arg); gses->vcn = init_vhfcontestnet(); g_free(gses->vcn->status);gses->vcn->status = g_strdup(VTEXT(T_READING_LIST_OF_OPENED_CONTESTS)); vhfcontestnet_info(NULL); sw_raise_or_new(SWT_LOG); zhttp_get(gses->vcn->http, zsel, "http://www.vhfcontest.net/index.php?kat=zavody&lang=eng", vhfcontestnet_zavody, gses->vcn); } void vhfcontestnet_zavody(struct zhttp *http){ struct vhfcontestnet *vcn = (struct vhfcontestnet*)http->arg; char line[4096]; int ofs, n = 0, max = 0; struct menu_item *mi = NULL; if (http->errorstr){ g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_CANT_GET_LIST_OF_CONTESTS), http->errorstr); zhttp_free(vcn->http); vcn->http = NULL; //free_vhfcontestnet(vcn); return; } if (!(mi = new_menu(3))) return; mi->rtext = VTEXT(T_CHOOSE_CONTEST); for (ofs = http->dataofs; ofs < http->response->len; ofs++){ char *c1 = NULL, *c2 = NULL, *d1 = NULL, *d2 = NULL; zbinbuf_getline(http->response, &ofs, line, sizeof(line)); //dbg("line=%s\n", line); if (regmatch(line, "", &c1, &c2, NULL) == 0){ //dbg("MATCH %s\n", c2); if (regmatch(line, "\\.<\\/td>([^<]+)<\\/td>", &d1, &d2, NULL) == 0){ add_to_menu(&mi, g_strdup(d2),"", "", vhfcontestnet_contest, GINT_TO_POINTER(atoi(c2)), 0); if (strlen(d2) > max) max = strlen(d2); n++; } } g_free(c1); g_free(c2); g_free(d1); g_free(d2); } if (mi->func == NULL){ g_free(vcn->status);vcn->status = g_strdup(VTEXT(T_NO_CONTEST_AVAILABLE_FOR_UPLOAD)); zhttp_free(vcn->http); vcn->http = NULL; //free_vhfcontestnet(vcn); return; } set_window_ptr(gses->win, (term->x - max)/2,(term->y - 2 - n)/2); do_menu_selected(mi, http, 0); } void vhfcontestnet_contest(void *arg, void *arg2){ struct zhttp *http = (struct zhttp*)arg2; struct vhfcontestnet *vcn = (struct vhfcontestnet*)http->arg; char *url; vcn->ctestid = GPOINTER_TO_INT(arg); g_free(vcn->status);vcn->status = g_strdup(VTEXT(T_OBTAINING_CONTEST_WEB_FORM)); url = g_strdup_printf("http://www.vhfcontest.net/?kat=getlog/upload&lang=eng&zavod=%d", vcn->ctestid); zhttp_get(http, zsel, url, vhfcontestnet_contestform, http->arg); g_free(url); } void vhfcontestnet_contestform(struct zhttp *http){ struct vhfcontestnet *vcn = (struct vhfcontestnet*)http->arg; char line[4096], *c, *log; int ofs; struct band *b; if (http->errorstr){ g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_CANT_GET_UPLOAD_FORM), http->errorstr); zhttp_free(vcn->http); vcn->http = NULL; return; } zhttp_post_free(http); for (ofs = http->dataofs; ofs < http->response->len; ofs++){ char *c1 = NULL, *c2 = NULL, *c3 = NULL; zbinbuf_getline(http->response, &ofs, line, sizeof(line)); //dbg("line=%s\n", line); if (regmatch(line, "", &c1, &c2, &c3, NULL) == 0){ dbg("MATCH '%s' = '%s'\n", c2, c3); zhttp_post_add(http, c2, c3); } g_free(c1); g_free(c2); g_free(c3); } zhttp_post_add(http, "zverejnit", "1"); vcn->country = vhfcontestnet_country(ctest ? ctest->pcall : cfg->pcall); // TODO zajistit spusteni jen v kontestu c = g_strdup_printf("%d", vcn->country); zhttp_post_add(http, "country", c); g_free(c); for (; vcn->bandi < ctest->bands->len; vcn->bandi++){ b = (struct band *)g_ptr_array_index(ctest->bands, vcn->bandi); if (b->edifile != NULL) break; } if (vcn->bandi >= ctest->bands->len){ log_addf(VTEXT(T_ALL_EDI_FILES_PROCESSED), http->errorstr); vhfcontestnet_ask_claimed(http); return; } g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_UPLOADING_LOG_FILE_S), z_filename(b->edifile)); log_addf(VTEXT(T_UPLOADING_BAND_S), b->bandname); log = zfile_readfile(b->edifile); if (log == NULL){ g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_CANT_READ_LOG_FILE), b->edifile); zhttp_free(vcn->http); vcn->http = NULL; //free_vhfcontestnet(vcn); return; } zhttp_post_add_file_mem(http, "log", z_filename(b->edifile), log); zhttp_post(http, zsel, "http://www.vhfcontest.net/", vhfcontestnet_sent, http->arg); //zhttp_post(http, zsel, "http://ok1zia.nagano.cz/tmp/post.php", vhfcontestnet_sent, http->arg); } void vhfcontestnet_sent(struct zhttp *http){ struct vhfcontestnet *vcn = (struct vhfcontestnet*)http->arg; char *html, *txt, *c1 = NULL, *c2 = NULL; if (http->errorstr){ g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_CANT_UPLOAD_LOG), http->errorstr); zhttp_free(vcn->http); vcn->http = NULL; //free_vhfcontestnet(vcn); return; } g_free(vcn->status);vcn->status = g_strdup(VTEXT(T_CONFIRMING_LOG)); html = (char *)g_malloc(http->response->len + 1); zbinbuf_getstr(http->response, http->dataofs, html, http->response->len - http->dataofs + 1); txt = z_html2txt(html); if (regmatch(html, "", &c1, &c2, NULL) == 0){ GString *gs = g_string_new(c2); z_string_replace(gs, "\r", "", ZSR_ALL); z_string_replace(gs, "\n", "", ZSR_ALL); z_string_replace(gs, " ", "%20", ZSR_ALL); // workaround, bug on vhfcontest.net g_string_insert(gs, 0, "http://www.vhfcontest.net/"); zhttp_get(http, zsel, gs->str, vhfcontestnet_confirmed, http->arg); g_string_free(gs, TRUE); g_free(c1); g_free(c2); }else{ fifo_add_lines(glog, txt); log_addf(VTEXT(T_RESULT_ERROR)); g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_LOG_IS_NOT_VALID), http->errorstr); zhttp_free(vcn->http); vcn->http = NULL; //free_vhfcontestnet(vcn); } g_free(html); g_free(txt); } void vhfcontestnet_confirmed(struct zhttp *http){ struct vhfcontestnet *vcn = (struct vhfcontestnet*)http->arg; if (http->errorstr){ g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_CANT_CONFIRM_LOG), http->errorstr); zhttp_free(vcn->http); vcn->http = NULL;//free_vhfcontestnet(vcn); return; } /*log_adds(""); log_adds(""); html = (char *)g_malloc(http->response->len + 1); zbinbuf_getstr(http->response, http->dataofs, html, http->response->len - http->dataofs + 1); txt = z_html2txt(html); fifo_add_lines(glog, txt); */ log_addf("OK"); vcn->bandi++; vhfcontestnet_contest(GINT_TO_POINTER(vcn->ctestid), http); } void vhfcontestnet_ask_claimed(struct zhttp *http){ struct vhfcontestnet *vcn = (struct vhfcontestnet*)http->arg; char *url; g_free(vcn->status);vcn->status = g_strdup(VTEXT(T_DOWNLOADING_CLAIMED_SCORES)); url = g_strdup_printf("http://www.vhfcontest.net/getlog/gentxtsql.php?zavod=%d&country=%d", vcn->ctestid, vcn->country); zhttp_get(http, zsel, url, vhfcontestnet_claimed, http->arg); g_free(url); } void vhfcontestnet_claimed(struct zhttp *http){ struct vhfcontestnet *vcn = (struct vhfcontestnet*)http->arg; char *html, *c; GString *gs; if (http->errorstr){ g_free(vcn->status);vcn->status = g_strdup_printf(VTEXT(T_CANT_GET_CLAIMED_SCORES), http->errorstr); zhttp_free(vcn->http); vcn->http = NULL;//free_vhfcontestnet(vcn); return; } html = (char *)g_malloc(http->response->len + 1); zbinbuf_getstr(http->response, http->dataofs, html, http->response->len - http->dataofs + 1); gs = g_string_new(html); c = z_strcasestr(gs->str, "
");
	if (c != NULL) g_string_erase(gs, 0, (c - gs->str) + 5);
	c = z_strcasestr(gs->str, "
"); if (c != NULL) g_string_truncate(gs, c - gs->str); fifo_add_lines(glog, gs->str); g_string_free(gs, TRUE); g_free(html); g_free(vcn->status);vcn->status = g_strdup(VTEXT(T_LOGS_UPLOADED)); zhttp_free(vcn->http); vcn->http = NULL; } void vhfcontestnet_abort(void *arg){ if (!gses->vcn) return; free_vhfcontestnet(gses->vcn); gses->vcn = NULL; } void vhfcontestnet_info(void *arg1){ struct refresh *r; char *c, *button; GString *gs; if (!gses || !gses->vcn) return; if (term->windows.next->handler == menu_func){ zselect_timer_new(zsel, RESOURCE_INFO_REFRESH, vhfcontestnet_info, NULL); }else{ r = (struct refresh*)g_malloc(sizeof(struct refresh)); r->win = NULL; r->fn = vhfcontestnet_info; r->data = NULL; r->timer = -1; gs = g_string_new(""); if (gses->vcn->status != NULL) g_string_sprintfa(gs, "%s", gses->vcn->status); if (gses->vcn->status != NULL && gses->vcn->http != NULL) g_string_append(gs, "\n\n"); if (gses->vcn->http != NULL){ g_string_append(gs, VTEXT(T_HTTP_STATUS)); zhttp_status(gses->vcn->http, gs); button = VTEXT(T_CANCEL); }else{ button = VTEXT(T_OK); } c = g_strdup(gs->str); g_string_free(gs, TRUE); msg_box(getml(c, NULL), VTEXT(T_LOG_UPLOAD)/*VTEXT(T_NINFO)*/, AL_LEFT, c, r, 1, button, vhfcontestnet_abort, B_ENTER | B_ESC); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = zselect_timer_new(zsel, RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); } } tucnak-4.04/src/tregex.h0000644000175000017500000000130512500546100012075 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __TREGEX_H #define __TREGEX_H #include "header.h" #define MAX_MATCHES 10 int regcmp(char *string, char *regex); int regcmpi(char *string, char *regex); #ifdef LEAK_DEBUG_LIST #define regmatch(string, regex...) debug_regmatch(__FILE__, __LINE__, string, regex) int debug_regmatch(char *file, int line, const char *string, char *regex, ...); #else int regmatch(const char *string, char *regex, ...); #endif #endif tucnak-4.04/src/msvcver.h0000644000175000017500000000002712561151303012270 00000000000000#define VERSION "4.04" tucnak-4.04/src/svnversion.h0000644000175000017500000000003612561150426013024 00000000000000#define T_SVNVER "4256:4257M" tucnak-4.04/src/menu2.c0000644000175000017500000003600512125053311011625 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "chart.h" #include "edi.h" #include "map.h" #include "menu.h" #include "net.h" #include "qrvdb.h" #include "qsodb.h" #include "session.h" #include "sked.h" #include "stats.h" #include "terminal.h" /******************** MODES *********************************/ #define MAX_MODES 9 gint mode; char mode_str[EQSO_LEN]; void mode_func (void *arg){ int active; active=GPOINTER_TO_INT(arg); if (active<0 || active>MAX_MODES) return; mode = active; safe_strncpy0(mode_str,mode_msg[mode],EQSO_LEN); /*safe_strncpy0(mode_str,_(CTEXT(T_QP0+qsop_method),term),MAX_STR_LEN);*/ redraw_later(); } int dlg_mode(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 1; i <= MAX_MODES; i++) { add_to_menu(&mi, mode_msg[i], "", "", MENU_FUNC mode_func, GINT_TO_POINTER(i), 0); } sel = mode-1; if (sel < 0) sel = 0; if (sel>=MAX_MODES) sel=0; do_menu_selected(mi, GINT_TO_POINTER(mode), sel); return 0; } /******************** EDIT QSO *******************************/ char callsign[EQSO_LEN], rstr[EQSO_LEN], qsonrr[EQSO_LEN], exc[EQSO_LEN], locator[EQSO_LEN]; /*gint mode; char mode_str[EQSO_LEN]*/ char rsts[EQSO_LEN], qsonrs[EQSO_LEN]; char date_str[EQSO_LEN], time_str[EQSO_LEN], operator_[EQSO_LEN], remark[MAX_STR_LEN]; gint qerror,qsl; #define OEQSO_LEN 24 #define QRG_LEN 50 char ocallsign[OEQSO_LEN], orstr[OEQSO_LEN], oqsonrr[OEQSO_LEN], oexc[OEQSO_LEN], olocator[OEQSO_LEN]; char omode_str[OEQSO_LEN], orsts[OEQSO_LEN], oqsonrs[OEQSO_LEN]; char odate_str[OEQSO_LEN], otime_str[OEQSO_LEN], ooperator[OEQSO_LEN], oremark[MAX_STR_LEN], oqrg[QRG_LEN]; char oomode_str[OEQSO_LEN], oorstr[OEQSO_LEN], oorsts[OEQSO_LEN]; int pbandi=0; #define TIME_DELIM ":." void refresh_edit_qso(struct qso *q) { char *token_ptr, *h, *m; char raw[30]; struct qso *qq; /* dbg("refresh_edit_qso\n");*/ dump_qso(q, "refresh_edit_qso before"); z_get_raw_call(raw, q->callsign); g_hash_table_remove(q->band->rawqsoshash, raw); if ((strcmp(rstr,oorstr) || strcmp(rsts,oorsts)) && !strcmp(mode_str,oomode_str)){ if (mode == MOD_SSB_SSB || mode == MOD_CW_SSB || mode == MOD_SSB_CW || mode == MOD_CW_CW){ int s,r; /* CHANGE menu2.c refresh_edit_qso */ s=strlen(rsts); r=strlen(rstr); if (s==3 && r==3) mode=MOD_CW_CW; if (s==2 && r==2) mode=MOD_SSB_SSB; if (s==3 && r==2) mode=MOD_CW_SSB; if (s==2 && r==3) mode=MOD_SSB_CW; } } m = NULL; h = strtok_r(time_str, TIME_DELIM, &token_ptr); if (h) m = strtok_r(NULL, TIME_DELIM, &token_ptr); if (m){ sprintf(time_str, "%02d%02d", atoi(h)%24, atoi(m)%60); }else{ sprintf(time_str, "%02d%02d", atoi(time_str)/100, atoi(time_str)%100); } STORE_STR_FS (q,time_str); STORE_STR_FS_UC(q,operator_); STORE_STR_FS (q,date_str); STORE_STR_FS_UC(q,callsign); STORE_INT (q,mode); STORE_STR_FS_UC(q,rsts); STORE_STR_FS_UC(q,rstr); STORE_STR_FS (q,qsonrr); STORE_STR_FS_UC(q,exc); STORE_STR_FS_UC(q,locator); STORE_STR_FS (q,remark); q->error = qerror; q->qsl = qsl; q->stamp = time(NULL); g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); z_ptr_array_qsort(ctest->allqsos, compare_date_time_qsonrs); compute_qrbqtf(q); dirty_band(aband); write_qso_to_swap(aband, q); replicate_qso(NULL, q); recalc_stats(aband); recalc_worked_skeds(aband); qrv_recalc_wkd(qrv); qrv_recalc_qrbqtf(qrv); qrv_recalc_gst(qrv); if (!q->dupe && !q->error){ z_get_raw_call(raw, q->callsign); qq = (struct qso *)g_hash_table_lookup(q->band->rawqsoshash, raw); if (!qq) g_hash_table_insert(q->band->rawqsoshash, g_strdup(raw), q); } /*check_autosave();*/ #ifdef Z_HAVE_SDL maps_reload(); #endif chart_reload(); dump_qso(q, "refresh_edit_qso after"); dump_all_sources(ctest); } char *edit_qso_msg[] = { ocallsign, /* 0 */ orstr , oqsonrr , oexc , olocator , omode_str, /* 5 */ orsts , /*oqsonrs ,*/ odate_str, otime_str, ooperator, oremark , /* 10 */ /*oqrg, */ CTEXT(T_ERROR), CTEXT(T_QSL), "", /* OK */ /* 13 */ "", /* Cancel */ }; void edit_qso_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, edit_qso_msg + 0 , dlg->items + 0, 1, &max); min_group_width(term, edit_qso_msg + 0 , dlg->items + 0, 1, &min); max_group_width(term, edit_qso_msg + 1 , dlg->items + 1, 1, &max); min_group_width(term, edit_qso_msg + 1 , dlg->items + 1, 1, &min); max_group_width(term, edit_qso_msg + 2 , dlg->items + 2, 1, &max); min_group_width(term, edit_qso_msg + 2 , dlg->items + 2, 1, &min); max_group_width(term, edit_qso_msg + 3 , dlg->items + 3, 1, &max); min_group_width(term, edit_qso_msg + 3 , dlg->items + 3, 1, &min); max_group_width(term, edit_qso_msg + 4 , dlg->items + 4, 1, &max); min_group_width(term, edit_qso_msg + 4 , dlg->items + 4, 1, &min); max_group_width(term, edit_qso_msg + 5 , dlg->items + 5, 1, &max); min_group_width(term, edit_qso_msg + 5 , dlg->items + 5, 1, &min); max_group_width(term, edit_qso_msg + 6 , dlg->items + 6, 1, &max); min_group_width(term, edit_qso_msg + 6 , dlg->items + 6, 1, &min); max_group_width(term, edit_qso_msg + 7 , dlg->items + 7, 1, &max); min_group_width(term, edit_qso_msg + 7 , dlg->items + 7, 1, &min); max_group_width(term, edit_qso_msg + 8 , dlg->items + 8, 1, &max); min_group_width(term, edit_qso_msg + 8 , dlg->items + 8, 1, &min); max_group_width(term, edit_qso_msg + 9 , dlg->items + 9, 1, &max); min_group_width(term, edit_qso_msg + 9 , dlg->items + 9, 1, &min); max_group_width(term, edit_qso_msg +10 , dlg->items +10, 1, &max); min_group_width(term, edit_qso_msg +10 , dlg->items +10, 1, &min); max_group_width(term, edit_qso_msg +11 , dlg->items +11, 1, &max); min_group_width(term, edit_qso_msg +11 , dlg->items +11, 1, &min); max_group_width(term, edit_qso_msg +12 , dlg->items +12, 1, &max); min_group_width(term, edit_qso_msg +12 , dlg->items +12, 1, &min); max_buttons_width(term, dlg->items +13, 2, &max); min_buttons_width(term, dlg->items +13, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, edit_qso_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_text (NULL, term, oqsonrs, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(NULL, term, edit_qso_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg + 9, dlg->items + 9, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg +10, dlg->items +10, 1, 0, &y, w, &rw); dlg_format_text (NULL, term, oqrg, dlg->x +6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(NULL, term, edit_qso_msg +11, dlg->items +11, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, edit_qso_msg +12, dlg->items +12, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +13, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, edit_qso_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_text (term, term, oqsonrs, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(term, term, edit_qso_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg + 9, dlg->items + 9, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg +10, dlg->items +10, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_text (term, term, oqrg, dlg->x +6, &y, w, &rw, COLOR_DIALOG_TEXT, 0); dlg_format_group(term, term, edit_qso_msg +11, dlg->items +11, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, edit_qso_msg +12, dlg->items +12, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +13, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void edit_qso(struct qso *qso) { struct dialog *d; int i, len; static char ss[102]; char s[100]; /* dbg("edit_qso\n");*/ if (!qso) return; dump_qso(qso, "edit_qso"); dump_all_sources(ctest); safe_strncpy0(callsign, qso->callsign, EQSO_LEN); z_str_uc(callsign); safe_strncpy0(rstr, qso->rstr, EQSO_LEN); safe_strncpy0(qsonrr, qso->qsonrr, EQSO_LEN); safe_strncpy0(exc, qso->exc, EQSO_LEN); safe_strncpy0(locator, qso->locator, EQSO_LEN); z_str_uc(locator); mode=qso->mode; safe_strncpy0(mode_str, mode_msg[mode], EQSO_LEN); safe_strncpy0(rsts, qso->rsts, EQSO_LEN); safe_strncpy0(qsonrs, qso->qsonrs, EQSO_LEN); safe_strncpy0(date_str, qso->date_str, EQSO_LEN); safe_strncpy0(time_str, qso->time_str, EQSO_LEN); safe_strncpy0(operator_, qso->operator_, EQSO_LEN); safe_strncpy0(remark, qso->remark, MAX_STR_LEN); qerror = qso->error; qsl = qso->qsl; safe_strncpy0(oomode_str, mode_msg[mode],EQSO_LEN); safe_strncpy0(oorstr, qso->rstr, EQSO_LEN); safe_strncpy0(oorsts, qso->rsts, EQSO_LEN); g_snprintf(ocallsign, OEQSO_LEN, "%s %-15s", VTEXT(T_CALLSIGN2), callsign); g_snprintf(orstr , OEQSO_LEN, "%s %-15s", VTEXT(T_RSTR) , rstr ); g_snprintf(oqsonrr , OEQSO_LEN, "%s %-15s", VTEXT(T_QSONRR) , qsonrr ); g_snprintf(oexc , OEQSO_LEN, "%s %-15s", VTEXT(T_OPTEXCH) , exc ); g_snprintf(olocator , OEQSO_LEN, "%s %-15s", VTEXT(T_WWL) , locator ); g_snprintf(omode_str, OEQSO_LEN, "%s %-15s", VTEXT(T_MODE) , mode_str); g_snprintf(orsts , OEQSO_LEN, "%s %-15s", VTEXT(T_RSTS) , rsts ); g_snprintf(oqsonrs , OEQSO_LEN, "%s %-15s", VTEXT(T_QSONRS) , qsonrs ); g_snprintf(odate_str, OEQSO_LEN, "%s %-15s", VTEXT(T_DATE) , date_str); g_snprintf(otime_str, OEQSO_LEN, "%s %-15s", VTEXT(T_TIME) , time_str); g_snprintf(ooperator, OEQSO_LEN, "%s %-15s", VTEXT(T_OPERATOR) , operator_); g_snprintf(oremark , OEQSO_LEN, "%s %-15s", VTEXT(T_REMARK) , remark ); sprintf(s,"%0.0f", qso->qrg); len=strlen(s); if (len>3) { memmove(s+len-2, s+len-3, 4); s[len-3]='.'; if (len>6){ memmove(s+len-5, s+len-6, 8); s[len-6]='.'; } } g_snprintf(oqrg, QRG_LEN, "%s %s Hz", VTEXT(T_QRG), s); if (!(d = (struct dialog*)g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); /*d->title = "Edit QSO";*/ g_snprintf(ss,100,VTEXT(T_EDIT_QSO_CD), aband->bandchar, atoi(qso->qsonrs)); d->title = ss; d->fn = edit_qso_fn; d->refresh = (void (*)(void *))refresh_edit_qso; d->refresh_data = (void *) qso; d->items[i=0].type = D_FIELD; /* 0 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = callsign; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data =rstr; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qsonrr; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = exc; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = locator; /* 5 */ d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_mode; d->items[i].text = mode_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rsts; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = date_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = time_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = operator_; d->items[++i].type = D_FIELD; /* 10 */ d->items[i].dlen = MAX_STR_LEN; d->items[i].maxl = EQSO_LEN; d->items[i].data = remark; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&qerror; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&qsl; d->items[++i].type = D_BUTTON; /* 13 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; /* 14 */ d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } tucnak-4.04/src/vhfcontestnet.h0000644000175000017500000000210212360700061013467 00000000000000/* vhfcontestnet.h - Upload to www.vhfcontest.net Copyright (C) 2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __VHFCONTESTNET_H #define __VHFCONTESTNET_H #include struct vhfcontestnet{ struct zhttp *http; int ctestid; int country; char *status; int bandi; }; struct vhfcontestnet *init_vhfcontestnet(void); void free_vhfcontestnet(struct vhfcontestnet *vcn); int vhfcontestnet_country(char *call); void vhfcontestnet_upload(void *arg); void vhfcontestnet_zavody(struct zhttp *http); void vhfcontestnet_contest(void *arg, void *arg2); void vhfcontestnet_contestform(struct zhttp *http); void vhfcontestnet_sent(struct zhttp *http); void vhfcontestnet_confirmed(struct zhttp *http); void vhfcontestnet_ask_claimed(struct zhttp *http); void vhfcontestnet_claimed(struct zhttp *http); void vhfcontestnet_abort(void *arg); void vhfcontestnet_info(void *arg1); #endif tucnak-4.04/src/alsa.c0000644000175000017500000005465712460207027011543 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ //#include #include "header.h" #include "alsa.h" #include "dsp.h" #include "fifo.h" #include "language2.h" #include "menu.h" #ifdef HAVE_ALSA static void device_info(GString *gs, int card, int pcm_device, snd_pcm_stream_t dir){ int err; char pcm_name[256], mixer_name[256]; snd_pcm_hw_params_t *hwparams; snd_pcm_t *pcm; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; snd_ctl_t *ctl_handle; snd_ctl_card_info_t *hw_info; int sw; const char *mixer_chip; sprintf(pcm_name, "hw:%d,%d", card, pcm_device); err=snd_pcm_open(&pcm, pcm_name, dir, 0); if (err<0) return; snd_pcm_hw_params_alloca(&hwparams); snd_ctl_card_info_alloca(&hw_info); err=snd_pcm_hw_params_any(pcm, hwparams); if (err<0) goto x; /* int rate_num,rate_den; err=snd_pcm_hw_params_get_rate_numden(hwparams, &rate_num, &rate_den); if (err<0) goto x; printf(" rate_num=%d rate_den=%d\n", rate_num, rate_den); */ unsigned int channels_min = -1, channels = -1, channels_max = -1; err=snd_pcm_hw_params_get_channels_min(hwparams, &channels_min); //if (err<0) goto x1; err=snd_pcm_hw_params_get_channels(hwparams, &channels); // if (err<0) goto x1; err=snd_pcm_hw_params_get_channels_max(hwparams, &channels_max); // if (err<0) goto x1; g_string_sprintfa(gs, " channels=%d .. %d .. %d\n", channels_min, channels, channels_max); //x1:; unsigned int rate_min, rate, rate_max; int dir_min, dir_, dir_max; err=snd_pcm_hw_params_get_rate_min(hwparams, &rate_min, &dir_min); if (err<0) goto x2; err=snd_pcm_hw_params_get_rate(hwparams, &rate, &dir_); if (err<0) goto x2; err=snd_pcm_hw_params_get_rate_max(hwparams, &rate_max, &dir_max); if (err<0) goto x2; g_string_sprintfa(gs, " rate=%d .. %d .. %d\n", rate_min, rate, rate_max); x2: if (dir == SND_PCM_STREAM_CAPTURE){ sprintf(mixer_name, "hw:%d", card); snd_ctl_open(&ctl_handle, mixer_name, 0); if (err<0) goto x3c; err = snd_ctl_card_info(ctl_handle, hw_info); if (err<0){ snd_ctl_close(ctl_handle); goto x3c; } mixer_chip=snd_ctl_card_info_get_mixername(hw_info); g_string_sprintfa(gs, " mixer chip=%s\n", mixer_chip); snd_ctl_close(ctl_handle); x3c: err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, mixer_name); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; g_string_sprintfa(gs, " elements="); for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ if (!snd_mixer_selem_has_capture_switch(elem)) continue; err=snd_mixer_selem_get_capture_switch(elem, 0, &sw); if (err<0) goto x3; if (sw) g_string_sprintfa(gs, "[%s] ", snd_mixer_selem_get_name(elem)); else g_string_sprintfa(gs, "'%s' ", snd_mixer_selem_get_name(elem)); } g_string_sprintfa(gs, "\n"); x3: snd_mixer_close(mixer_handle); } x: snd_pcm_close(pcm); } static void card_info(GString *gs, int card){ int pcm_device; char *name; snd_ctl_t *ctl; char dev[256]; snd_pcm_info_t *pcm_info; g_string_sprintfa(gs, "card hw:%d ",card); if (snd_card_get_name(card, &name)==0){ g_string_sprintfa(gs, "%s", name); } g_string_sprintfa(gs, "\n"); sprintf(dev,"hw:%d", card); snd_ctl_open(&ctl, dev, 0); snd_pcm_info_alloca(&pcm_info); pcm_device=-1; while(1){ if (snd_ctl_pcm_next_device(ctl, &pcm_device)) pcm_device=-1; if (pcm_device<0) break; snd_pcm_info_set_device(pcm_info, pcm_device); snd_pcm_info_set_subdevice(pcm_info, 0); snd_pcm_info_set_stream(pcm_info, SND_PCM_STREAM_PLAYBACK); if (snd_ctl_pcm_info(ctl, pcm_info)<0) continue; g_string_sprintfa(gs, " playback hw:%d,%d %s\n", card, pcm_device, snd_pcm_info_get_name(pcm_info)); device_info(gs, card, pcm_device, SND_PCM_STREAM_PLAYBACK); } pcm_device=-1; while(1){ if (snd_ctl_pcm_next_device(ctl, &pcm_device)) pcm_device=-1; if (pcm_device<0) break; snd_pcm_info_set_device(pcm_info, pcm_device); snd_pcm_info_set_subdevice(pcm_info, 0); snd_pcm_info_set_stream(pcm_info, SND_PCM_STREAM_CAPTURE); if (snd_ctl_pcm_info(ctl, pcm_info)<0) continue; g_string_sprintfa(gs, " capture hw:%d,%d %s\n", card, pcm_device, snd_pcm_info_get_name(pcm_info)); device_info(gs, card, pcm_device, SND_PCM_STREAM_CAPTURE); } } void alsa_info(GString *gs){ int card; g_string_sprintfa(gs, "\n alsa_info:\n"); card=-1; snd_card_next(&card); while(card>-1){ card_info(gs, card); snd_card_next(&card); } g_string_sprintfa(gs, "\n"); } int alsa_open(struct dsp *dsp, int rec){ int err, ratedir; unsigned int rateval; snd_pcm_hw_params_t *hwparams; snd_pcm_sw_params_t *swparams; /*snd_pcm_uframes_t frames;*/ unsigned buffer_time, period_time; int dir; unsigned int periods; snd_pcm_uframes_t buffer_size, period_size; if (dsp->pcm_opened) alsa_close(dsp); zg_free0(dsp->name); if (rec){ dsp->name = g_strdup(dsp->pcm_rec); }else{ dsp->name = g_strdup(dsp->pcm_play); } //dbg("alsa_open('%s', %s)\n", dsp->name, rec?"capture":"play"); err=snd_pcm_open(&dsp->pcm, dsp->name, rec?SND_PCM_STREAM_CAPTURE:SND_PCM_STREAM_PLAYBACK, 0); if (err<0){ log_addf(VTEXT(T_CANT_OPEN_ALSA_PCM_S_S), dsp->name, snd_strerror(-err)); goto err; } //dbg("alsa opened (%s)\n", dsp->name); dsp->pcm_opened=1; /* err=snd_pcm_nonblock(dsp->pcm, 1); if (err<0){ log_addf("alsa_open: snd_pcm_nonblock failed: %s", snd_strerror(-err)); goto err; } */ snd_pcm_hw_params_alloca(&hwparams); snd_pcm_sw_params_alloca(&swparams); /* HW parameters */ err=snd_pcm_hw_params_any(dsp->pcm, hwparams); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_any failed: %s", snd_strerror(-err)); goto err; } /* read/write format */ err=snd_pcm_hw_params_set_access(dsp->pcm, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_access failed: %s", snd_strerror(-err)); goto err; } /* sample format */ err=snd_pcm_hw_params_set_format(dsp->pcm, hwparams, dsp->pcm_format); if (err<0){ char *c = "unknown"; switch(dsp->pcm_format){ case SND_PCM_FORMAT_MU_LAW: c = "MU_LAW"; break; case SND_PCM_FORMAT_A_LAW: c = "A_LAW"; break; case SND_PCM_FORMAT_IMA_ADPCM: c = "IMA_ADPCM"; break; case SND_PCM_FORMAT_S16_LE: c = "S16_LE"; break; default: c = "unknown"; break; } log_addf("alsa_open: snd_pcm_hw_params_set_format 0x%x (%s) failed: %s", dsp->pcm_format, c, snd_strerror(-err)); goto err; } /* channels */ err=snd_pcm_hw_params_set_channels(dsp->pcm, hwparams, dsp->channels); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_channels(%d) failed: %s", dsp->channels, snd_strerror(-err)); goto err; } /* sample rate */ rateval=dsp->speed; ratedir=0; err=snd_pcm_hw_params_set_rate_near(dsp->pcm, hwparams, &rateval, &ratedir); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params_set_rate_near(%d) failed: %s", rateval, snd_strerror(-err)); goto err; } dir = 1; /* not sure if dir is input parameter. */ //buffer_time=500000; period_time=100000; if (dsp->period_time>0) period_time=dsp->period_time*1000; // dbg("snd_pcm_hw_params_set_buffer_time_near(buffer_time=%d, dir=%d)\n", buffer_time, dir); /* set the period time */ // dbg("snd_pcm_hw_params_set_period_time_near(period_time=%d, dir=%d\n", period_time, dir); err = snd_pcm_hw_params_set_period_time_near(dsp->pcm, hwparams, &period_time, &dir); if (err < 0) { log_addf("Unable to set period time %i: %s\n", period_time, snd_strerror(err)); goto err; } err = snd_pcm_hw_params_get_period_time(hwparams, &period_time, &dir); if (err < 0) { log_addf("Unable to get period time: %s\n", snd_strerror(err)); goto err; } dir = 0; // must be 0 otherwise here is not single value for buffer time on some cards periods = 2; err = snd_pcm_hw_params_set_periods(dsp->pcm, hwparams, periods, dir); if (err < 0) { /* set the buffer time */ dir = 1; buffer_time = period_time * 2; err = snd_pcm_hw_params_set_buffer_time_near(dsp->pcm, hwparams, &buffer_time, &dir); if (err < 0){ //log_addf("Unable to set buffer time %i: %s\n", buffer_time, snd_strerror(err)); //log_addf("Unable to set buffer period count %i and buffer time %d: %s\n", 2, snd_strerror(err), buffer_time); goto err; }else{ //log_addf("snd_pcm_hw_params_set_buffer_time_near(%d)", buffer_time); } }else{ //log_addf("snd_pcm_hw_params_set_periods(%d) OK", periods); } dir = 0; err = snd_pcm_hw_params_get_buffer_time(hwparams, &buffer_time, &dir); if (err < 0) { log_addf("Unable to get buffer time: %s\n", snd_strerror(err)); /* err = snd_pcm_hw_params_get_buffer_time_min(hwparams, &buffer_time, &dir); if (err == 0) log_addf("buffer_time_min=%d", buffer_time); err = snd_pcm_hw_params_get_buffer_time_max(hwparams, &buffer_time, &dir); if (err == 0) log_addf("buffer_time_max=%d", buffer_time); err = snd_pcm_hw_params_get_period_time_min(hwparams, &period_time, &dir); if (err == 0) log_addf("period_time_min=%d", period_time); err = snd_pcm_hw_params_get_period_time_max(hwparams, &period_time, &dir); if (err == 0) log_addf("period_time_max=%d", period_time); err = snd_pcm_hw_params_get_buffer_size_min(hwparams, &buffer_size); if (err == 0) log_addf("buffer_size_min=%d", buffer_size); err = snd_pcm_hw_params_get_buffer_size_max(hwparams, &buffer_size); if (err == 0) log_addf("buffer_size_max=%d", buffer_size); err = snd_pcm_hw_params_get_period_size_min(hwparams, &period_size, &dir); if (err == 0) log_addf("period_size_min=%d", period_size); err = snd_pcm_hw_params_get_period_size_max(hwparams, &period_size, &dir); if (err == 0) log_addf("period_size_max=%d", period_size);*/ goto err; } err = snd_pcm_hw_params_get_buffer_size(hwparams, &buffer_size); if (err < 0) { log_addf("Unable to get buffer size: %s\n", snd_strerror(err)); goto err; } dir = 0; err = snd_pcm_hw_params_get_period_size(hwparams, &period_size, &dir); if (err < 0) { log_addf("Unable to get period size: %s\n", snd_strerror(err)); goto err; } dbg("snd_pcm_hw_params_get_period_size() period_size=%d dir=%d\n", period_size, dir); /* write hwparams */ err=snd_pcm_hw_params(dsp->pcm, hwparams); if (err<0){ log_addf("alsa_open: snd_pcm_hw_params failed: %s", snd_strerror(-err)); goto err; } dsp->frames = period_size; dsp->samples = dsp->frames * dsp->channels; dsp->bytes = dsp->samples * sizeof(short); //log_addf("Alsa %s: period=%d (%1.1fms), buffer=%d (%1.1fms), bufsize=%d", rec ? "capt" : "play", period_size, period_time / 1000.0, buffer_size, buffer_time / 1000.0, dsp->bufsize); dbg("Alsa %s: period=%d (%1.1fms), buffer=%d (%1.1fms), bufsize=%df %ds %db\n", rec ? "capt" : "play", period_size, period_time / 1000.0, buffer_size, buffer_time / 1000.0, dsp->frames, dsp->samples, dsp->bytes); if (!rec){ dsp_write_empty(dsp); } /* // get the current swparams err = snd_pcm_sw_params_current(dsp->pcm, swparams); if (err < 0) { printf("Unable to determine current swparams for playback: %s\n", snd_strerror(err)); goto err; } // start the transfer when the buffer is almost full: // (buffer_size / avail_min) * avail_min err = snd_pcm_sw_params_set_start_threshold(dsp->pcm, swparams, (buffer_size / period_size) * period_size); if (err < 0) { printf("Unable to set start threshold mode for playback: %s\n", snd_strerror(err)); goto err; } // allow the transfer when at least period_size samples can be processed err = snd_pcm_sw_params_set_avail_min(dsp->pcm, swparams, period_size); if (err < 0) { printf("Unable to set avail min for playback: %s\n", snd_strerror(err)); goto err; } // align all transfers to 1 sample err = snd_pcm_sw_params_set_xfer_align(dsp->pcm, swparams, 1); if (err < 0) { printf("Unable to set transfer align for playback: %s\n", snd_strerror(err)); goto err; } // write the parameters to the playback device err = snd_pcm_sw_params(dsp->pcm, swparams); if (err < 0) { printf("Unable to set sw params for playback: %s\n", snd_strerror(err)); goto err; } */ //dbg("snd_pcm_state() = %d %s\n", snd_pcm_state(dsp->pcm), alsa_get_state(dsp)); if (snd_pcm_state(dsp->pcm) == SND_PCM_STATE_PREPARED){ err = snd_pcm_start(dsp->pcm); if (err < 0) { log_addf("Unable to start prepared alsa stream: %s", snd_strerror(err)); goto err; } } dsp->pcm_recover = 5; goto x; err:; dbg("alsa not opened\n"); alsa_close(dsp); return -1; x:; //dbg("alsa opened\n"); return 0; } int alsa_close(struct dsp *dsp){ if (!dsp->pcm_opened) return 0; snd_pcm_close(dsp->pcm); //dbg("alsa closed (%s)\n", dsp->name); dsp->pcm_opened=0; return 0; } int alsa_write(struct dsp *dsp, void *data, int frames){ int ret; short *sh = (short*)data; //dbg("\nalsa_write(%df) state=%s\n", frames, alsa_get_state(dsp)); while(frames > 0){ ret = snd_pcm_writei(dsp->pcm, sh, frames); //dbg("snd_pcm_writei(%df) returns %d state=%s\n", frames, ret, alsa_get_state(dsp)); if (ret < 0) { if (ret != -EPIPE) return ret; ret = snd_pcm_recover(dsp->pcm, -EPIPE, 0); /* snd_pcm_recover is since libasound 1.0.11 */ dbg("snd_pcm_recover() returns %d\n", ret); if (ret < 0) return ret; ret = 0; } frames -= ret; sh += ret * dsp->channels; } return frames; } int alsa_read(struct dsp *dsp, void *data, int aframes){ int frames; //dbg("snd_pcm_readi(%d)... state=%s\n", aframes, alsa_get_state(dsp)); repeat:; frames = snd_pcm_readi(dsp->pcm, data, aframes); //dbg("snd_pcm_readi return %d\n", frames); if (frames < 0) { if (frames == -EPIPE && dsp->pcm_recover-- > 0){ dbg("snd_pcm_readi returns %d, trying to recover... %d\n\n", frames, dsp->pcm_recover); frames = snd_pcm_recover(dsp->pcm, frames, 0); //dbg("snd_pcm_recover returns %d\n", frames); if (frames == 0) goto repeat; /*if (frames==-EPIPE){ frames=dsp->bpf*dsp->channels; log_addf("Alsa record buffer overrun (%d), forcing value (%d)", -EPIPE, frames); }*/ //frames = 1; //log_addf("Alsa record buffer overrun (%d), forcing value (%d)", -EPIPE, frames); } return -1; }else{ dsp->pcm_recover = 5; } if (frames > 0 && frames != aframes){ dbg("snd_pcm_readi(%d) returns %d\n", aframes, frames); } // if (frames>0) frames*=dsp->bpf*dsp->channels; /* if (frames==-EPIPE){ frames=dsp->bpf*dsp->channels; log_addf("Alsa record buffer overrun (%d), forcing value (%d)", -EPIPE, frames); }*/ return frames; } int alsa_reset(struct dsp *dsp){ snd_pcm_drop(dsp->pcm); return 0; } int alsa_sync(struct dsp *dsp){ snd_pcm_drain(dsp->pcm); return 0; } #ifdef HAVE_SNDFILE int alsa_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec){ switch (sfinfo->format & SF_FORMAT_SUBMASK){ /* case SF_FORMAT_PCM_U8: format=AFMT_U8; break; case SF_FORMAT_PCM_S8: format=AFMT_S8; break;*/ case SF_FORMAT_ULAW: dsp->pcm_format=SND_PCM_FORMAT_MU_LAW; break; case SF_FORMAT_ALAW: dsp->pcm_format=SND_PCM_FORMAT_A_LAW; break; case SF_FORMAT_IMA_ADPCM: dsp->pcm_format=SND_PCM_FORMAT_IMA_ADPCM; break; default: dsp->pcm_format=SND_PCM_FORMAT_S16_LE; } dsp->channels=sfinfo->channels; dsp->speed=sfinfo->samplerate; return 0; } #endif int alsa_get_sources(struct dsp *dsp, GString *labels){ int err; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; const char *label; g_string_truncate(labels, 0); if (!dsp || !dsp->alsa_mixer || strlen(dsp->alsa_mixer) == 0) return 0; err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, dsp->alsa_mixer); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ if (!snd_mixer_selem_has_capture_switch(elem)) continue; label=snd_mixer_selem_get_name(elem); if (strcmp(label, "Capture")==0) continue; if (strlen(labels->str)>0) g_string_append_c(labels, ';'); g_string_append(labels, label); } x3:; snd_mixer_close(mixer_handle); return 0; } int alsa_set_source(struct dsp *dsp){ int err; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; const char *label; //dbg("alsa_set_source('%s')\n", dsp->source); if (!dsp->alsa_src || !*dsp->alsa_src){ return 0; } err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, dsp->alsa_mixer); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ long min, max, val; if (!snd_mixer_selem_has_capture_switch(elem)) continue; label=snd_mixer_selem_get_name(elem); //dbg("elem label=%s\n", label); if (strcmp(label, dsp->alsa_src)!=0 && strcmp(label, "Capture")!=0) continue; snd_mixer_selem_set_capture_switch_all(elem, 1); snd_mixer_selem_get_capture_volume_range(elem, &min, &max); if (dsp->rlev<0) continue; val = min + ((max-min+1)*dsp->rlev)/100; // dbg("SET elem label=%s capt\t%d-%d %d%%=%d\n", label, min, max, dsp->rlev, val); snd_mixer_selem_set_capture_volume_all(elem, val); } x3:; snd_mixer_close(mixer_handle); return 0; } int alsa_set_plevel(struct dsp *dsp){ int err; snd_mixer_t *mixer_handle; snd_mixer_elem_t *elem; const char *label; //dbg("alsa_set_plevel('%s')\n", dsp->alsa_src); if (!dsp->alsa_src || !*dsp->alsa_src){ return 0; } err=snd_mixer_open(&mixer_handle, 0); if (err<0) goto x3; err=snd_mixer_attach(mixer_handle, dsp->alsa_mixer); if (err<0) goto x3; err=snd_mixer_selem_register(mixer_handle, NULL, NULL); if (err<0) goto x3; err=snd_mixer_load(mixer_handle); if (err<0) goto x3; for (elem=snd_mixer_first_elem(mixer_handle); elem; elem=snd_mixer_elem_next(elem)){ long min, max, val; if (!snd_mixer_selem_has_playback_volume(elem)) continue; label=snd_mixer_selem_get_name(elem); // dbg("elem label=%s\n", label); if (strcmp(label, dsp->alsa_src)!=0 && strcmp(label, "Master")!=0) continue; snd_mixer_selem_get_playback_volume_range(elem, &min, &max); if (dsp->plev<0) continue; val = min + ((max-min+1)*dsp->plev)/100; snd_mixer_selem_set_playback_volume_all(elem, val); } x3:; snd_mixer_close(mixer_handle); return 0; } char *alsa_get_state(struct dsp *dsp){ switch (snd_pcm_state(dsp->pcm)){ case SND_PCM_STATE_OPEN: return "Open"; case SND_PCM_STATE_SETUP: return "Setup installed"; case SND_PCM_STATE_PREPARED: return "Ready to start"; case SND_PCM_STATE_RUNNING: return "Running"; case SND_PCM_STATE_XRUN: return "Stopped: underrun (playback) or overrun (capture) detected"; case SND_PCM_STATE_DRAINING: return "Draining: running (playback) or stopped (capture)"; case SND_PCM_STATE_PAUSED: return "Paused"; case SND_PCM_STATE_SUSPENDED: return "Hardware is suspended"; case SND_PCM_STATE_DISCONNECTED: return "Hardware is disconnected"; default: return "???"; } } int alsa_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec){ char *name; if (rec){ if (!dsp->pcm_rec || !*dsp->pcm_rec) dsp->pcm_rec = g_strdup("default"); name = dsp->pcm_rec; }else{ if (!dsp->pcm_play || !*dsp->pcm_play) dsp->pcm_play = g_strdup("default"); name = dsp->pcm_play; } dsp->speed = speed; if (!dsp->speed){ unsigned int rate_max; int dir_max, err; snd_pcm_hw_params_t *hwparams; dsp->speed = 48000; err = snd_pcm_open(&dsp->pcm, name, rec ? SND_PCM_STREAM_CAPTURE : SND_PCM_STREAM_PLAYBACK, 0); if (err < 0) goto xxx; snd_pcm_hw_params_alloca(&hwparams); err = snd_pcm_hw_params_any(dsp->pcm, hwparams); if (err < 0) goto xx; err = snd_pcm_hw_params_get_rate_max(hwparams, &rate_max, &dir_max); if (err < 0) goto xx; dsp->speed = rate_max; log_addf("alsa set rate_max=%d", rate_max); xx:; snd_pcm_close(dsp->pcm); xxx:; } dsp->channels = 2; dsp->period_time = frames * 1000 / dsp->speed; dsp->pcm_format = SND_PCM_FORMAT_S16_LE; return 0; } #endif tucnak-4.04/src/profile.c0000644000175000017500000000276012006041464012244 00000000000000#include #if defined(__MINGW32__) && 0 int dladdr(void *addr, Dl_info *info){ MEMORY_BASIC_INFORMATION mbi; char moduleName[MAX_PATH]; HMODULE hMod; if (!VirtualQuery (addr, &mbi, sizeof (mbi))) return 0; hMod = (HMODULE)mbi.AllocationBase; if (!GetModuleFileNameA (hMod, moduleName, sizeof (moduleName))) return 0; info->file_name = (char *)(malloc (strlen (moduleName) + 1)); strcpy (info->file_name, moduleName); info->base = NULL; info->sym_name = NULL; info->sym_addr = NULL; strcpy (info->dli_fname, module_name); info->dli_fbase = mbi.BaseAddress; // this is *probably* right info->dli_saddr = addr; strcpy (info->dli_sname, module_name); return 1; } #endif void __cyg_profile_func_enter(void *this_fn, void *call_site) __attribute__((no_instrument_function)); void __cyg_profile_func_enter(void *this_fn, void *call_site) { /*Dl_info dl1, dl2; dladdr(this_fn, &dl1); dladdr(__builtin_return_address(1), &dl2); dbg("ENTER: %s, from %s\n", dl1.dli_sname, dl2.dli_sname);*/ dbg("ENTER: %p, from %p\n", this_fn, call_site); } void __cyg_profile_func_exit(void *this_fn, void *call_site) __attribute__((no_instrument_function)); void __cyg_profile_func_exit(void *this_fn, void *call_site) { /*Dl_info dl1, dl2; dladdr(this_fn, &dl1); dladdr(__builtin_return_address(1), &dl2);*/ dbg("EXIT: %p, from %p\n", this_fn, call_site); } tucnak-4.04/src/terminal.c0000644000175000017500000010413112460207027012415 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "charsets.h" #include "kbd.h" #include "main.h" #include "qsodb.h" #include "rc.h" #include "tsdl.h" #include "session.h" #include "terminal.h" #include "zosk.h" #define ALLOC_GR 0x100 struct terminal *term; struct window *gseswin; int hard_write(int fd, char *p, int l) { #ifdef Z_MSC_MINGW zinternal("hard_write unimplemented (and should not be called)"); return -1; #else int w, t; if (fd<0) return -1; w = 1; t = 0; while (l > 0 && w) { if ((w = write(fd, p, l)) < 0) { if (errno == EINTR) continue; return -1; } t += w; p += w; l -= w; } return t; #endif } int hard_read(int fd, char *p, int l) { #ifdef Z_MSC_MINGW zinternal("hard_read unimplemented (and should not be called)"); return -1; #else int r = 1; int t = 0; while (l > 0 && r) { if ((r = read(fd, p, l)) < 0) { if (errno == EINTR) continue; return -1; } /*{int ww;for(ww=0;wwlast_screen); g_free(term->screen); term->screen = g_new(unsigned, x * y); term->last_screen = g_new0(unsigned, x * y); memset(term->last_screen, -1, x * y * sizeof(unsigned)); term->x = x; term->y = y; term->dirty = 1; term->lcx = -1; term->lcy = -1; #ifdef FALL int i; if (term->fall != NULL) { term->fall = mem_realloc(term->fall, x * y * sizeof(int)); for (i = 0; i < x * y; i++) term->fall[i] = i; }else{ term->fall = g_malloc(x * y * sizeof(int)); for (i = 0; i < x * y; i++) term->fall[i] = i; } #endif } void in_term(void *arg); void check_if_no_terminal(void); void clear_terminal(void) { if (!term) return; fill_area(0, 0, term->x, term->y, ' '); set_cursor(0, 0, 0, 0); } void redraw_terminal_ev(struct terminal *term, int e) { struct window *win; struct event ev = {0, 0, 0, 0}; if (!term) return; ev.ev = e; ev.x = term->x; ev.y = term->y; clear_terminal(); term->redrawing = 2; foreachback(win, term->windows) win->handler(win, &ev, 0); term->redrawing = 0; #ifdef FALL if (term->fall){ int i; for (i = term->x * term->y; i >= 0; i--){ if (term->fall[i] < 0) term->screen[i] = ' '; else term->screen[i] = term->screen[term->fall[i]]; } } #endif } #define ISSPACE(idx) ((term->screen[idx] & 0xff) == ' ' || (term->screen[idx] & 0xff) == '\0') #ifdef FALL void fall_func(union cba_t cba){ int s, d, j; // static iii = 0; if (term && term->fall){ for (j = 0; j < 1000; j++){ s = rand() % (term->x * term->y); if (ISSPACE(s)) continue; for (d = s + term->x; ISSPACE(d) && d < (term->x * term->y); d += term->x); d -= term->x; if (!ISSPACE(d)) continue; term->fall[d] = term->fall[s]; term->fall[s] = -1; break; } } gses->fall_id = zselect_timer_new(zsel, 10, fall_func, NULL); redraw_later(); } #endif void redraw_terminal(void *arg) { /*if (!term) return;*/ //dbg("redraw_terminal()\n"); redraw_terminal_ev(term, EV_REDRAW); } void redraw_terminal_all(void) { if (!term) return; redraw_terminal_ev(term, EV_RESIZE); } void redraw_later(void) { if (!term) return; //dbg("redraw_later()\n"); zselect_bh_new(zsel, redraw_terminal, NULL); /*if (!gses){ zselect_bh_new(zsel, redraw_terminal, NULL); return; } if (!gses->redraw_timer_id) gses->redraw_timer_id = zselect_timer_new(zsel, 100, timer_redraw, NULL);*/ } void erase_screen(void) { if (!term) return; if (!term->master || !is_blocked()) { if (term->fdout >= 0) hard_write(term->fdout, "\033[0;37;40m\033[2J\033[1;1H", 20); } } void redraw_terminal_cls() { if (!term) return; erase_screen(); alloc_term_screen(term, term->x, term->y); redraw_terminal_all(); } /*void cls_redraw_all_terminals() { struct terminal *term; foreach(term, terminals) redraw_terminal_cls(term); } */ void redraw_from_window(struct window *win) { struct terminal *term = win->term; struct window *end = (void *)&term->windows; struct event ev = {EV_REDRAW, 0, 0, 0}; ev.x = term->x; ev.y = term->y; if (term->redrawing) return; term->redrawing = 1; for (win = win->prev; win != end; win = win->prev) { win->handler(win, &ev, 0); } term->redrawing = 0; } void redraw_below_window(struct window *win) { int tr; struct terminal *term = win->term; struct window *end = win; struct event ev = {EV_REDRAW, 0, 0, 0}; ev.x = term->x; ev.y = term->y; if (term->redrawing >= 2) return; tr = term->redrawing; win->term->redrawing = 2; for (win = term->windows.prev; win != end; win = win->prev) { win->handler(win, &ev, 0); } term->redrawing = tr; } void add_window_at_pos(void (*handler)(struct window *, struct event *, int), void *data, struct window *at) { struct event ev = {EV_INIT, 0, 0, 0}; struct window *win; ev.x = term->x; ev.y = term->y; if (!(win = g_malloc(sizeof (struct window)))) { g_free(data); return; } win->handler = handler; win->data = data; win->term = term; win->xp = win->yp = 0; add_at_pos(at, win); win->handler(win, &ev, 0); } void add_window(void (*handler)(struct window *, struct event *, int), void *data) { add_window_at_pos(handler, data, (struct window *)&term->windows); } void delete_window(struct window *win) { struct event ev = {EV_ABORT, 0, 0, 0}; win->handler(win, &ev, 1); del_from_list(win); if (win->data) g_free(win->data); redraw_terminal(NULL); g_free(win); } void delete_window_ev(struct window *win, struct event *ev) { struct window *w = win->next; if ((void *)w == &win->term->windows) w = NULL; delete_window(win); if (ev && w && w->next != w) w->handler(w, ev, 1); } void set_window_ptr(struct window *win, int x, int y) { win->xp = x; win->yp = y; } void get_parent_ptr(struct window *win, int *x, int *y) { if ((void *)win->next != &win->term->windows) { *x = win->next->xp; *y = win->next->yp; } else { *x = *y = 0; } } struct window *get_root_window() { if (list_empty(term->windows)) { zinternal("terminal has no windows"); return NULL; } return (struct window *)term->windows.prev; } struct ewd { void (*fn)(void *); void *data; int b; }; void empty_window_handler(struct window *win, struct event *ev, int fwd) { struct window *n; struct ewd *ewd = (struct ewd*)win->data; int x, y; void (*fn)(void *) = ewd->fn; void *data = ewd->data; if (ewd->b) return; switch (ev->ev) { case EV_INIT: case EV_RESIZE: case EV_REDRAW: get_parent_ptr(win, &x, &y); set_window_ptr(win, x, y); return; case EV_ABORT: fn(data); return; } ewd->b = 1; n = win->next; delete_window(win); fn(data); if (n->next != n) n->handler(n, ev, fwd); } /*void add_empty_window(void (*fn)(void *), void *data) { struct ewd *ewd; if (!(ewd = g_malloc(sizeof(struct ewd)))) return; ewd->fn = fn; ewd->data = data; ewd->b = 0; add_window(empty_window_handler, ewd); } */ void free_term_specs() { /* free_list(term_specs);*/ while (term_specs.next != &(term_specs)) { struct term_spec *a=term_specs.next; del_from_list(a); g_free(a); } } struct term_spec term_specs = {&term_specs, &term_specs}; struct term_spec dumb_term = { NULL, NULL, "", 0, 0, 0, 0, 0, 0 }; struct term_spec *get_term_spec(char *term) { struct term_spec *t; foreach(t, term_specs) if (!strcasecmp(t->term, term)) return t; return &dumb_term; } struct term_spec *new_term_spec(char *term) { struct term_spec *t; foreach(t, term_specs) if (!strcasecmp(t->term, term)) return t; if (!(t = g_new(struct term_spec, 1))) return NULL; memcpy(t, &dumb_term, sizeof(struct term_spec)); if (strlen(term) < MAX_TERM_LEN) strcpy(t->term, term); else memcpy(t->term, term, MAX_TERM_LEN - 1), t->term[MAX_TERM_LEN - 1] = 0; add_to_list(term_specs, t); sync_term_specs(); return t; } void sync_term_specs() { if (!term) return; term->spec = get_term_spec(term->term); //dbg("sync_term_specs: %p\n", term->spec); } struct terminal *init_term(int fdin, int fdout, void (*root_window)(struct window *, struct event *, int)) { struct terminal *term; struct window *win; if (!(term = g_new0(struct terminal, 1))) { zselect_terminate(zsel); return NULL; } term->fdin = fdin; term->fdout = fdout; term->master = term->fdout == get_output_handle(); term->lcx = -1; term->lcy = -1; term->dirty = 1; term->redrawing = 0; term->blocked = -1; term->screen = NULL; term->last_screen = NULL; term->spec = &dumb_term; term->term[0] = 0; term->input_queue = NULL; term->qlen = 0; init_list(term->windows); if (!(win = g_new(struct window, 1))){ g_free(term); zselect_terminate(zsel); return NULL; } win->handler = root_window; win->data = NULL; win->term = term; add_to_list(term->windows, win); if (fdin!=-1){ zselect_set(zsel, fdin, in_term, NULL, destroy_terminal, NULL); } gseswin = win; return term; } void term_send_event(struct terminal *term, struct event *ev) { struct window *win; #ifdef Z_HAVE_SDL if (gses && gses->osk){ switch (ev->ev){ case EV_MOUSE: //if (ev->b & (B_MOVE | B_DRAG)) goto to; if (ev->b == (B_LEFT | B_DOWN)) { if (zosk_click(gses->osk, ev->mx - gses->osk->parent_x, ev->my - gses->osk->parent_y, 1)) { if (cfg->portrait) goto toterm; } redraw_later(); return; } if ((ev->b & ~B_CLICK) == (B_LEFT | B_UP)) { if (zosk_click(gses->osk, ev->mx - gses->osk->parent_x, ev->my - gses->osk->parent_y, 0)) { if (cfg->portrait) goto toterm; } redraw_later(); return; } if (cfg->portrait) goto toterm; return; case EV_KBD: if ((ev->x == KBD_ESC || ev->x == KBD_ENTER) && (gses->osk->flags & ZOSK_ENTERCLOSE)){ int flg = gses->osk->flags; zosk_free(gses->osk); gses->osk = NULL; if (cfg->portrait){ resize_terminal(NULL); }else{ redraw_later(); sdl_force_redraw(); SDL_FillRect(sdl->screen, NULL, z_makecol(0, 0, 0)); SDL_UpdateRect(sdl->screen, 0, 0, 0, 0); } if (flg & ZOSK_IGNOREESC) return; if (flg & ZOSK_SENDENTER) break; return; } break; } } toterm:; #endif /* assert(ev && term && !list_empty(term->windows));*/ /* if_assert_failed return;*/ win = term->windows.next; win->handler(win, ev, 0); } static void term_send_ucs(struct terminal *term, struct event *ev, unicode_val u) { char *recoded; recoded = u2cp(u, term->spec->charset); if (!recoded) recoded = "*"; while (*recoded) { ev->x = *recoded; term_send_event(term, ev); recoded++; } } #define get_bool_opt(s, opt) (s->opt == 1 ? 1 : 0) void in_term(void *arg) { struct event *ev; int r, err; char *iq, *c; if (!(iq = (char*)g_realloc(term->input_queue, term->qlen + ALLOC_GR))) { destroy_terminal(NULL); zselect_hint(zsel, "a"); return; } term->input_queue = iq; r = z_pipe_read(term->fdin, iq + term->qlen, ALLOC_GR); err = z_sock_errno; //zselect_hint(zsel, "fdin=%d qlen=%d r=%d err=%d", term->fdin, term->qlen, r, err); if (r <= 0) { if (r == -1/* && errno != ECONNRESET*/) zinternal("ERROR: error %d on terminal: could not read event", err); destroy_terminal(NULL); zselect_hint(zsel, "b"); return; } #ifdef Z_HAVE_SDL if (sdl){ MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate-=r; /* dbg("r %d\n", sdl->eventpipestate);*/ MUTEX_UNLOCK(sdl->eventpipestate); } #endif term->qlen += r; test_queue: //dbg("next event\n"); if (term->qlen < sizeof(struct event)) { //zselect_hint(zsel, "%d < %d", term->qlen, sizeof(struct event)); return; } ev = (struct event *)iq; // dbg("in_term [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b); /* dbg("in_term qlen=%d\n", term->qlen);*/ if (term->qlen > sizeof(struct event) && /* more than one event */ ev->ev==EV_KBD && ev->x==KBD_TAB){ /* processing TAB keypress */ for (c=iq+sizeof(struct event); cqlen;c+=sizeof(struct event)){ ev = (struct event *)c; /*dbg("in_term c=%d [%d,%d,%d,%d]\n",(c-iq)/sizeof(struct event),ev->ev,ev->x,ev->y,ev->b);*/ if (ev->ev!=EV_KBD || ev->x!=KBD_TAB) continue; ev->ev=EV_SKIP; } } ev = (struct event *)iq; if (zselect_profiling(zsel)){ switch (ev->ev){ case EV_INIT: zselect_hint(zsel, "EV_INIT"); break; case EV_RESIZE: zselect_hint(zsel, "EV_RESIZE %dx%d", ev->x, ev->y); break; case EV_REDRAW: zselect_hint(zsel, "EV_REDRAW"); break; case EV_KBD: if (ev->x < 0x100) zselect_hint(zsel, "EV_KBD '%c' %s %s %s", ev->x, ev->y & KBD_CTRL ? "CTRL" : "", ev->y & KBD_ALT ? "ALT" : "", ev->y & KBD_SHIFT ? "SHIFT" : ""); else zselect_hint(zsel, "EV_KBD 0x%x %s %s %s", ev->x, ev->y & KBD_CTRL ? "CTRL" : "", ev->y & KBD_ALT ? "ALT" : "", ev->y & KBD_SHIFT ? "SHIFT" : ""); break; case EV_MOUSE: zselect_hint(zsel, "EV_MOUSE 0x%x %x %y", ev->b, ev->mx, ev->my); break; case EV_ABORT: zselect_hint(zsel, "EV_ABORT"); break; case EV_SDLRESIZE: zselect_hint(zsel, "EV_SDLRESIZE"); break; case EV_SKIP: zselect_hint(zsel, "EV_SKIP"); break; default: zselect_hint(zsel, "unknown %d", ev->ev); break; } } r = sizeof(struct event); if (ev->ev != EV_INIT && ev->ev != EV_RESIZE && ev->ev != EV_REDRAW && ev->ev != EV_KBD && ev->ev != EV_MOUSE && ev->ev != EV_ABORT && ev->ev!=EV_SDLRESIZE && ev->ev!=EV_SKIP) { error("ERROR: error on terminal: bad event %d", ev->ev); goto mm; } if (ev->ev == EV_INIT) { char *ts; int xwin; xwin = is_xterm() * ENV_XWIN + can_twterm() * ENV_TWIN + (!!getenv("STY")) * ENV_SCREEN; if (!(ts = getenv("TERM"))) ts = ""; // dbg("in_term ts=%s\n", ts); strcpy(term->term, ts); term->environment=xwin; sync_term_specs(); } if (ev->ev == EV_SDLRESIZE){ #ifdef Z_HAVE_SDL dbg("EV_SDLRESIZE(%d,%d) (%d,%d)\n", ev->x, ev->y, sdl->resize_w, sdl->resize_h/*ev->mx, ev->my*/); MUTEX_LOCK(sdl->eventpipestate); sdl->resizeevents--; MUTEX_UNLOCK(sdl->eventpipestate); if (sdl) { cfg->gfx_x=sdl->resize_w;//ev->mx; cfg->gfx_y=sdl->resize_h;//ev->my; sdl_setvideomode(sdl->resize_w, sdl->resize_h/*ev->mx, ev->my*/, 0); } #endif resize_terminal(NULL); } if (ev->ev == EV_REDRAW || ev->ev == EV_RESIZE || ev->ev == EV_INIT) { struct window *win; send_redraw: if (ev->x < 0 || ev->y < 0) { error("ERROR: bad terminal size: %d, %d", (int)ev->x, (int)ev->y); goto mm; } alloc_term_screen(term, ev->x, ev->y); clear_terminal(); erase_screen(); term->redrawing = 1; foreachback(win, term->windows) win->handler(win, ev, 0); term->redrawing = 0; } if (ev->ev == EV_MOUSE && preferred_func(ev)){ term_send_event(term, ev); } if (ev->ev == EV_KBD) { if ( #ifdef Z_HAVE_SDL !sdl && #endif z_char_uc(ev->x) == (int)'L' && ev->y == KBD_CTRL) { ev->ev = EV_REDRAW; ev->x = term->x; ev->y = term->y; goto send_redraw; } else if (ev->x == KBD_CTRL_C) ((struct window *)&term->windows)->prev->handler(term->windows.prev, ev, 0); else if (preferred_func(ev)) { /* ((struct window *)&term->windows)->next->handler(term->windows.next, ev, 0);*/ int utf8_io = -1; if (term->utf_8.len) { utf8_io = get_bool_opt(term->spec, utf_8_io); if ((ev->x & 0xC0) == 0x80 && utf8_io) { term->utf_8.ucs <<= 6; term->utf_8.ucs |= ev->x & 0x3F; if (! --term->utf_8.len) { unicode_val u = term->utf_8.ucs; if (u < term->utf_8.min) u = UCS_NO_CHAR; term_send_ucs(term, ev, u); } goto mm; } else { term->utf_8.len = 0; term_send_ucs(term, ev, UCS_NO_CHAR); } } if (ev->x < 0x80 || ev->x > 0xFF || (utf8_io == -1 ? !get_bool_opt(term->spec, utf_8_io) : !utf8_io)) { term_send_event(term, ev); goto mm; } else if ((ev->x & 0xC0) == 0xC0 && (ev->x & 0xFE) != 0xFE) { register unsigned int mask, cov = 0x80; int len = 0; for (mask = 0x80; ev->x & mask; mask >>= 1) { len++; term->utf_8.min = cov; cov = 1 << (1 + 5 * len); } term->utf_8.len = len - 1; term->utf_8.ucs = ev->x & (mask - 1); goto mm; } term_send_ucs(term, ev, UCS_NO_CHAR); } } if (ev->ev == EV_ABORT) zselect_terminate(zsel);//destroy_terminal(NULL); /*redraw_screen(term);*/ mm: if (term->qlen == r) term->qlen = 0; else memmove(iq, iq + r, term->qlen -= r); //return; goto test_queue; } inline int getcompcode(int c) { return (c<<1 | (c&4)>>2) & 7; } char frame_dumb[49] = " ||||++||++++++--|-+||++--|-+----++++++++ "; char frame_vt100[49] = "aaaxuuukkuxkjjjkmvwtqnttmlvwtqnvvwwmmllnnjla "; /* For UTF8 I/O */ static char frame_vt100_u[48] = { 177, 177, 177, 179, 180, 180, 180, 191, 191, 180, 179, 191, 217, 217, 217, 191, 192, 193, 194, 195, 196, 197, 195, 195, 192, 218, 193, 194, 195, 196, 197, 193, 193, 194, 194, 192, 192, 218, 218, 197, 197, 217, 218, 177, 32, 32, 32, 32 }; char frame_koi[48] = { 144,145,146,129,135,178,180,167, 166,181,161,168,174,173,172,131, 132,137,136,134,128,138,175,176, 171,165,187,184,177,160,190,185, 186,182,183,170,169,162,164,189, 188,133,130,141,140,142,143,139, }; char frame_restrict[48] = { 0, 0, 0, 0, 0, 179, 186, 186, 205, 0, 0, 0, 0, 186, 205, 0, 0, 0, 0, 0, 0, 0, 179, 186, 0, 0, 0, 0, 0, 0, 0, 205, 196, 205, 196, 186, 205, 205, 186, 186, 179, 0, 0, 0, 0, 0, 0, 0, }; /* characters 128-159 are special for xterm unless * *VT100*allowC1Printable property is not set */ #define MODE(ch) (((ch) >> 15) & MODE_MASK) #define PRINT_CHAR(p) \ { \ unsigned ch = term->screen[p]; \ unsigned char c = ch & 0xff; \ unsigned char A = ch >> 8 & 0x7f; \ int charset = s->charset; \ if (s->mode == TERM_LINUX) { \ if (s->m11_hack) { \ if (MODE(ch) != mode) { \ if (!(mode = MODE(ch))) \ g_string_append(a, "\033[10m"); \ else \ g_string_append(a, "\033[11m"); \ } \ } \ if ((mode = MODE(ch)) && c >= 176 && c < 224) { \ charset = get_cp_index("cp437"); \ if (s->restrict_852 && frame_restrict[c - 176]) \ c = frame_restrict[c - 176]; \ } \ } else if (s->mode == TERM_VT100) { \ if (MODE(ch) != mode) { \ if (!(mode = MODE(ch))) \ g_string_append(a, "\x0f"); \ else \ g_string_append(a, "\x0e"); \ } \ if (mode && c >= 176 && c < 224) { \ charset = get_cp_index("cp437"); \ if (get_bool_opt(s, utf_8_io) \ && strcasecmp(term->term, "xterm")) \ c = frame_vt100_u[c - 176]; \ else \ c = frame_vt100[c - 176]; \ } \ } else if (s->mode == TERM_KOI8) { \ if (MODE(ch) != mode && (mode = MODE(ch))) \ charset = get_cp_index("koi8-r"); \ if (mode && c >= 176 && c < 224) \ c = frame_koi[c - 176]; \ } else if (s->mode == TERM_DUMB && MODE(ch) && c >= 176 && c < 224) \ c = frame_dumb[c - 176]; \ if (!(A & 0100) && (A >> 3) == (A & 7)) \ A = (A & 070) | 7 * !(A & 020); \ if (A != attrib) { \ attrib = A; \ g_string_append(a, "\033[0"); \ if (s->col) { \ char m[4]; \ m[0] = ';'; m[1] = '3'; m[3] = 0; \ m[2] = (attrib & 7) + '0'; \ g_string_append(a, m); \ m[1] = '4'; \ m[2] = (attrib >> 3 & 7) + '0'; \ g_string_append(a, m); \ } else if (getcompcode(attrib & 7) < getcompcode(attrib >> 3 & 7)) \ g_string_append(a, ";7"); \ if (attrib & 0100) \ g_string_append(a, ";1"); \ g_string_append(a, "m"); \ } \ if (c>=' ' && (c<127 || c>159) && c!=255) { \ if (get_bool_opt(s, utf_8_io)) \ g_string_append(a, cp2utf_8(charset, c)); \ else \ g_string_append_c(a, c); \ } \ else if (!c || c == 1) g_string_append_c(a, ' '); \ else g_string_append_c(a, '.'); \ cx++; \ } \ void term_redraw_screen() { int x, y, p = 0; int cx = -1, cy = -1; GString *a; int attrib = -1; int mode = -1; struct term_spec *s; if (!term->dirty || (term->master && is_blocked())) return; a = g_string_new(""); s = term->spec; for (y = 0; y < term->y; y++) for (x = 0; x < term->x; x++, p++) { if (y == term->y - 1 && x == term->x - 1) break; if (term->screen[p] == term->last_screen[p]) continue; if ((term->screen[p] & 0x3800) == (term->last_screen[p] & 0x3800) && ((term->screen[p] & 0xff) == 0 || (term->screen[p] & 0xff) == 1 || (term->screen[p] & 0xff) == ' ') && ((term->last_screen[p] & 0xff) == 0 || (term->last_screen[p] & 0xff) == 1 || (term->last_screen[p] & 0xff) == ' ')) continue; if (cx == x && cy == y) goto pc;/*PRINT_CHAR(p)*/ else if (cy == y && x - cx < 10) { int i; for (i = x - cx; i >= 0; i--) PRINT_CHAR(p - i); } else { g_string_sprintfa(a, "\033[%d;%dH", y + 1, x + 1); cx = x; cy = y; pc: PRINT_CHAR(p); } } if (a->len) { if (s->col) g_string_append(a, "\033[37;40m"); g_string_append(a, "\033[0m"); if (s->mode == TERM_LINUX && s->m11_hack) g_string_append(a, "\033[10m"); if (s->mode == TERM_VT100) g_string_append(a, "\x0f"); } if (a->len || term->cx != term->lcx || term->cy != term->lcy) { term->lcx = term->cx; term->lcy = term->cy; g_string_sprintfa(a, "\033[%d;%dH", term->cy + 1, term->cx + 1); } hard_write(term->fdout, a->str, a->len); g_string_free(a, TRUE); memcpy(term->last_screen, term->screen, term->x * term->y * sizeof(int)); term->dirty = 0; } void destroy_terminal(void *arg) { if (!term) return; //zselect_terminate(zsel); while ((term->windows.next) != &term->windows) delete_window(term->windows.next); /*if (term->cwd) g_free(term->cwd);*/ if (term->title) g_free(term->title); g_free(term->screen); term->screen=NULL; g_free(term->last_screen); term->screen=NULL; zselect_set(zsel, term->fdin, NULL, NULL, NULL, NULL); g_free(term->input_queue); if (term->blocked != -1) { #ifdef Z_MSC_MINGW zinternal("term->blocked unimplemented (and should not be called)"); #else close(term->blocked); zselect_set(zsel, term->blocked, NULL, NULL, NULL, NULL); #endif } z_pipe_close(term->fdin); if (term->fdout != 1 && term->fdout >= 0) { #ifdef Z_MSC_MINGW zinternal("term->fdout unimplemented (and should not be called)"); #else if (term->fdout != term->fdin) close(term->fdout); #endif } else { unhandle_terminal_signals(); free_all_itrms(); /*#ifndef NO_FORK_ON_EXIT if (!list_empty(terminals)) { if (fork()) exit(0); } #endif */ } g_free(term); term=NULL; } /*void destroy_all_terminals() { struct terminal *term; while ((void *)(term = terminals.next) != &terminals) destroy_terminal(term); } void check_if_no_terminal(void) { if (!list_empty(terminals)) return; terminate = 1; } */ void set_char(int x, int y, unsigned c) { term->dirty = 1; if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->screen[x + term->x * y] = c; } void set_last_char(int x, int y, unsigned c) { if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->last_screen[x + term->x * y] = c; } unsigned get_char(int x, int y) { if (x >= term->x) x = term->x - 1; if (x < 0) x = 0; if (y >= term->y) y = term->y - 1; if (y < 0) y = 0; return term->screen[x + term->x * y]; } void set_color(int x, int y, unsigned c) { term->dirty = 1; if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->screen[x + term->x * y] = (term->screen[x + term->x * y] & 0x80ff) | (c & ~0x80ff); } void set_only_char(int x, int y, unsigned c) { term->dirty = 1; if (x >= 0 && x < term->x && y >= 0 && y < term->y) term->screen[x + term->x * y] = (term->screen[x + term->x * y] & ~0x80ff) | (c & 0x80ff); } void set_line(int x, int y, int l, chr *line) { int i; term->dirty = 1; for (i = x >= 0 ? 0 : -x; i < (x+l <= term->x ? l : term->x-x); i++) term->screen[x+i + term->x * y] = line[i]; } void set_line_color(int x, int y, int l, unsigned c) { int i; term->dirty = 1; for (i = x >= 0 ? 0 : -x; i < (x+l <= term->x ? l : term->x-x); i++) term->screen[x+i + term->x * y] = (term->screen[x+i + term->x * y] & 0x80ff) | (c & ~0x80ff); } void fill_area(int x, int y, int xw, int yw, unsigned c) { int i,j; term->dirty = 1; for (j = y >= 0 ? 0 : -y; j < yw && y+j < term->y; j++) for (i = x >= 0 ? 0 : -x; i < xw && x+i < term->x; i++) term->screen[x+i + term->x*(y+j)] = c; } void fill_lastarea(int x, int y, int xw, int yw, unsigned c) { int i,j; for (j = y >= 0 ? 0 : -y; j < yw && y+j < term->y; j++) for (i = x >= 0 ? 0 : -x; i < xw && x+i < term->x; i++) term->last_screen[x+i + term->x*(y+j)] = c; } int p1[] = { 218, 191, 192, 217, 179, 196 }; int p2[] = { 201, 187, 200, 188, 186, 205 }; void draw_frame(int x, int y, int xw, int yw, unsigned c, int w) { int *p = w > 1 ? p2 : p1; c |= ATTR_FRAME; set_char(x, y, c+p[0]); set_char(x+xw-1, y, c+p[1]); set_char(x, y+yw-1, c+p[2]); set_char(x+xw-1, y+yw-1, c+p[3]); fill_area(x, y+1, 1, yw-2, c+p[4]); fill_area(x+xw-1, y+1, 1, yw-2, c+p[4]); fill_area(x+1, y, xw-2, 1, c+p[5]); fill_area(x+1, y+yw-1, xw-2, 1, c+p[5]); } void print_text(int x, int y, int l, char *text, unsigned c) { for (; l-- && *text; text++, x++) set_char(x, y,((unsigned char)*text) + c); } void set_cursor(int x, int y, int altx, int alty) { // dbg("set_cursor(%d,%d, %d,%d)\n", x, y, altx, alty); term->dirty = 1; if (term->spec->block_cursor) x = altx, y = alty; if (x >= term->x) x = term->x - 1; if (y >= term->y) y = term->y - 1; if (x < 0) x = 0; if (y < 0) y = 0; term->cx = x; term->cy = y; } void exec_thread(char *path, int p) { #ifdef Z_MSC_MINGW zinternal("exec_thread unimplemented (and should not be called)"); #else #if defined(HAVE_SETPGID) && !defined(BEOS) && !defined(HAVE_BEGINTHREAD) if (path[0] == 2) setpgid(0, 0); #endif exe(path + 1); close(p); if (path[1 + strlen(path + 1) + 1]) unlink(path + 1 + strlen(path + 1) + 1); #endif } void close_handle(void *arg) { #ifdef Z_MSC_MINGW zinternal("close_handle unimplemented"); #else int h = GPOINTER_TO_INT(arg); close(h); zselect_set(zsel, h, NULL, NULL, NULL, NULL); #endif } #ifndef Z_MSC_MINGW void unblock_terminal(void *arg) { close_handle(GINT_TO_POINTER(term->blocked)); term->blocked = -1; zselect_set(zsel, term->fdin, in_term, NULL, destroy_terminal, NULL); unblock_itrm(term->fdin); redraw_terminal_cls(); } void exec_on_terminal(char *path, char *delete1, int fg) { if (path && !*path) return; if (!path) path=""; #ifdef NO_FG_EXEC fg = 0; #endif if (term->master) { if (!*path) dispatch_special(delete1); else { int blockh; char *param; if (is_blocked() && fg) { unlink(delete1); return; } if (!(param = g_malloc(strlen(path) + strlen(delete1) + 3))) return; param[0] = fg; strcpy(param + 1, path); strcpy(param + 1 + strlen(path) + 1, delete1); if (fg == 1) block_itrm(term->fdin); if ((blockh = start_thread((void (*)(void *, int))exec_thread, param, strlen(path) + strlen(delete1) + 3)) == -1) { if (fg == 1) unblock_itrm(term->fdin); g_free(param); return; } g_free(param); if (fg == 1) { term->blocked = blockh; zselect_set(zsel, blockh, unblock_terminal, NULL, unblock_terminal, NULL); zselect_set(zsel, term->fdin, NULL, NULL, destroy_terminal, NULL); /*block_itrm(term->fdin);*/ } else { zselect_set(zsel, blockh, close_handle, NULL, close_handle, GINT_TO_POINTER(blockh)); } } } else { char *data; if ((data = g_malloc(strlen(path) + strlen(delete1) + 4))) { data[0] = 0; data[1] = fg; strcpy(data + 2, path); strcpy(data + 3 + strlen(path), delete1); hard_write(term->fdout, data, strlen(path) + strlen(delete1) + 4); g_free(data); } /*char x = 0; hard_write(term->fdout, &x, 1); x = fg; hard_write(term->fdout, &x, 1); hard_write(term->fdout, path, strlen(path) + 1); hard_write(term->fdout, delete, strlen(delete) + 1);*/ } } void do_terminal_function(char code, char *data) { char *x_data; if (!(x_data = (char *)g_malloc(strlen(data) + 2))) return; x_data[0] = code; strcpy(x_data + 1, data); exec_on_terminal(NULL, x_data, 0); g_free(x_data); } #endif void set_terminal_title(char *title) { if (term->title && !strcmp(title, term->title)) return; if (term->title) g_free(term->title); term->title = g_strdup(title); #ifdef Z_HAVE_SDL if (!sdl) #endif { #ifndef Z_MSC_MINGW do_terminal_function(TERM_FN_TITLE, title); #endif } } void set_ctest_title(){ gchar *c; if (ctest){ c = g_strdup_printf(" %s %s - %s-%s %s", ctest->pcall, ctest->tname, PACKAGE_NAME, Z_PLATFORM, PACKAGE_VERSION); set_terminal_title(c); g_free(c); }else{ c = g_strdup_printf(" %s-%s %s", PACKAGE_NAME, Z_PLATFORM, PACKAGE_VERSION); set_terminal_title(c); g_free(c); } } tucnak-4.04/src/fifo.c0000644000175000017500000001466212503737445011550 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "qsodb.h" #include "session.h" #include "subwin.h" #include "misc.h" struct fifo *glog = NULL; struct fifo *gtalk = NULL; //static struct fifo *gsked = NULL; struct fifo *init_fifo(int maxlen){ struct fifo *fifo; /* dbg("init_fifo(%d)\n", maxlen);*/ fifo = g_new0(struct fifo, 1); fifo->maxlen = maxlen; fifo->items = g_ptr_array_new(); return fifo; } void free_fifo(struct fifo *fifo){ sw_unset_unread(fifo); zg_ptr_array_free_all(fifo->items); g_free(fifo); } void drop_fifo(struct fifo *fifo){ int i; for (i=fifo->items->len-1; i>=0; i--){ g_free(g_ptr_array_index(fifo->items, i)); g_ptr_array_remove_index_fast(fifo->items, i); } } void fifo_resize(struct fifo *fifo, int x, int y, int w, int h){ fifo->x = x; fifo->y = y; fifo->w = w; fifo->h = h; } int fifo_len(struct fifo *fifo){ return fifo->items->len; } gchar *fifo_index(struct fifo *fifo, int index){ return (char *)g_ptr_array_index(fifo->items, index); } static void fifo_check_len(struct fifo *fifo){ gpointer p; if (fifo->items->len == fifo->maxlen){ p = g_ptr_array_index(fifo->items, 0); g_free(p); g_ptr_array_remove_index(fifo->items, 0); } } static gchar *hour_min(void){ time_t now; struct tm utc; gchar *res; time(&now); gmtime_r(&now, &utc); res=g_strdup_printf("%2d:%02d",utc.tm_hour, utc.tm_min); return res; } void fifo_adds(struct fifo *fifo, gchar *str){ int l,i; gchar *c, *now; struct subwin *sw; if (!fifo || !str) return; if (!fifo->withouttime){ now = hour_min(); c = g_strconcat(now, " ", str, NULL); g_free(now); }else{ c = g_strdup(str); } l = strlen(c); if (l>0 && c[l-1]=='\n') c[l-1]='\0'; if (l>0 && c[l-1]=='\r') c[l-1]='\0'; if (gses){ for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->fifo!=fifo) continue; if (sw->offset > 0 && sw->offset < sw->maxlen-sw->h) sw->offset++; } } g_ptr_array_add(fifo->items, c); if (ctest && ctest->logfile && fifo==glog){ fprintf(ctest->logfile, "%s\n", c); } fifo_check_len(fifo); sw_set_unread(fifo); if (term) redraw_later(); } void fifo_addf(struct fifo *fifo, char *m, ...){ gchar *c, *d, *now; int l; va_list v; if (!fifo) return; va_start(v, m); c = g_strdup_vprintf(m, v); va_end(v); l = strlen(c); if (l>0 && c[l-1]=='\n') c[l-1]='\0'; if (l>0 && c[l-1]=='\r') c[l-1]='\0'; if (!fifo->withouttime){ now = hour_min(); d = g_strconcat(now, " ", c, NULL); g_free(now); g_free(c); } else{ d=c; } g_ptr_array_add(fifo->items, d); if (ctest && ctest->logfile && fifo==glog){ fprintf(ctest->logfile, "%s\n", d); } fifo_check_len(fifo); sw_set_unread(fifo); if (term) redraw_later(); } void fifo_addfq(struct fifo *fifo, char *m, ...){ gchar *c, *d, *now; int l; va_list v; if (!fifo) return; va_start(v, m); c = g_strdup_vprintf(m, v); va_end(v); l = strlen(c); if (l>0 && c[l-1]=='\n') c[l-1]='\0'; if (l>0 && c[l-1]=='\r') c[l-1]='\0'; if (!fifo->withouttime){ now = hour_min(); d = g_strconcat(now, " ", c, NULL); g_free(now); g_free(c); } else{ d=c; } g_ptr_array_add(fifo->items, d); fifo_check_len(fifo); if (term) redraw_later(); } void log_addf(char *m, ...){ gchar *c, *d, *now; va_list v; if (!glog) return; va_start(v, m); c = g_strdup_vprintf(m, v); va_end(v); z_strip_crlf(c); now = hour_min(); d = g_strconcat(now, " ", c, NULL); g_free(now); g_free(c); g_ptr_array_add(glog->items, d); if (ctest && ctest->logfile){ fprintf(ctest->logfile, "%s\n", d); } fifo_check_len(glog); if (term) redraw_later(); } void fifo_add_lines(struct fifo *fifo, char *data){ long pos = 0; long len = strlen(data); int wt = fifo->withouttime; GString *gs = g_string_sized_new(1024); fifo->withouttime = 1; while(1){ if (!zfile_mgets(gs, data, &pos, len, 0)) break; fifo_adds(fifo, gs->str); } g_string_free(gs, TRUE); fifo->withouttime = wt; } void log_draw(struct fifo *fifo){ int i,index; gchar *c; fill_area(fifo->x, fifo->y, fifo->w, fifo->h, COL_BG); for (i=0;ih; i++){ index = fifo->items->len-fifo->h+i; if (index<0) c = "~"; else c = (char*)g_ptr_array_index(fifo->items, index); if (c && strlen(c)>fifo->ho) print_text(fifo->x, fifo->y+i, fifo->w, c+fifo->ho, COL_NORM); } } int save_fifo_to_file(struct fifo *fifo, gchar *filename){ FILE *f; int i,ret; gchar *c; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } for (i=0; iitems->len; i++){ c=g_ptr_array_index(fifo->items, i); ret = fprintf(f, "%s\n", c); if (ret!=strlen(c)+1) { log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } } fclose(f); return 0; } int load_fifo_from_file(struct fifo *fifo, gchar *filename, int drop){ FILE *f; GString *gs; gchar *c; f = fopen(filename, "rt"); if (!f){ log_addf(VTEXT(T_CANT_READ_S), filename); return errno; } if (drop) drop_fifo(fifo); sw_unset_unread(fifo); gs=g_string_sized_new(100); fifo->withouttime=1; while( (c=zfile_fgets(gs, f, 0)) != NULL){ fifo_adds(fifo, c); } fifo->withouttime=0; g_string_free(gs, TRUE); sw_unset_unread(fifo); fclose(f); return 0; } int fifo_contains(struct fifo *fifo, char *needle){ int i; for (i = fifo->items->len - 1; i >= 0; i--){ char *c = (char*)g_ptr_array_index(fifo->items, i); if (strcmp(c, needle) == 0) return 1; } return 0; } tucnak-4.04/src/trig.h0000644000175000017500000000571612477604277011605 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __TRIG_H #define __TRIG_H // must be present also for --without-hamlib struct config_rig{ int nr; int rig_enabled; char *rig_desc; char *rig_filename; int rig_model, rig_civaddr; int rig_speed; double rig_lo; /* qrg displayed on rig + rig_lo = real_qrg_on_air use get/set_rig_lo for access */ int rig_ssbcw_shift; /* Hz added to qrg on change ssb->cw */ int rig_poll_ms; int rig_qrg_r2t; int rig_qrg_t2r; int rig_mode_t2r; int rig_clr_rit; int rig_ptt_t2r; int rig_verbose; }; #ifdef HAVE_HAMLIB #include enum trig_cmd { TRIG_FREQ, TRIG_MODE, TRIG_MODE_FREQ, TRIG_RESENDFREQ, TRIG_RIT, TRIG_PTT }; struct trig_job{ struct trig_job *next; struct trig_job *prev; enum trig_cmd cmd; rmode_t mode; freq_t freq; shortfreq_t rit; ptt_t ptt; }; struct trig{ // config int nr; // same as corresponding record in struct config_trig int poll_ms; rig_model_t model; char *filename; int speed; int civaddr; int qrg_t2r; int mode_t2r; int ssbcw_shift; int clr_rit; int ptt_t2r; // state GThread *thread; int thread_break; //int pipe_read, pipe_write; struct trig_job jobs; MUTEX_DEFINE(jobs); RIG *rig; int locked; int rigerr; }; struct trigs{ double qrg; shortfreq_t rit; GPtrArray *trigs; // of struct trig int rigerr; }; extern struct trigs *gtrigs; extern ZPtrArray *riglist; // of struct rig_caps // trigs functions struct trigs *init_trigs(void); void free_trigs(struct trigs *trigs); void trigs_read_handler(struct trigs *trigs, int n, char **items); void trigs_set_qrg(struct trigs *trigs, double qrg); void trigs_set_qrg_except(struct trigs *trigs, int except_rigr, double qrg); void trigs_set_rit_except(struct trigs *trigs, int except_rigr, double rit); void trigs_resend_freq(struct trigs *trigs, int rignr); void trigs_set_ptt(struct trigs *trigs, ptt_t ptt); // trig functions struct trig *init_trig(struct config_rig *crig); void free_trig(struct trig *trig); void trig_job_add(struct trig *trig, struct trig_job *job); struct trig_job *trig_job_get(struct trig *trig); gpointer trig_main(gpointer xxx); void trig_set_mode(struct trig *trig, rmode_t mode); void trig_set_qrg(struct trig *trig, double qrg); void trig_set_mode_qrg(struct trig *trig, rmode_t mode, double qrg); void trig_resend_freq(struct trig *trig); void trig_set_rit(struct trig *trig, shortfreq_t rit); void trig_set_ptt(struct trig *trig, ptt_t ptt); int trig_save_riglist(const struct rig_caps *caps, void *data); int trig_compare (const void *a, const void *b); char *trig_short_errstr(enum rig_errcode_e error); #endif #endif tucnak-4.04/src/cordata.c0000644000175000017500000000070111770271320012215 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #ifdef Z_HAVE_SDL #include "cor.h" #include "cordata.h" #include "cordata.inc" #endif tucnak-4.04/src/txts.c0000644000175000017500000000051311450040022011567 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "txts.inc" tucnak-4.04/src/ac.h0000644000175000017500000000615512534322227011203 00000000000000/* ac.h - aircraft trace Copyright (C) 2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "qsodb.h" #ifndef __AC_H #define __AC_H struct band; struct qso; struct subwin; struct qso; struct zhttp; struct qrv_item; struct ac_result{ int crossing; // next valid only when crossing == 1 int under; double startkx, startky, stopkx, stopky; time_t start, stop; // for testing time_t now; double angle; }; #define ACZO_LOWALT 0 #define ACZO_NORMAL 1 #define ACZO_CROSSING 2 #define ACZO_CURSOR 3 struct ac{ double w, h; double qtf; // radians int asl; // meters int speed; // km/h time_t when; // state double kx, ky; // actual position double pakx, paky; // predicted path after 10 minutes struct ac_result tmpres, infores, qrvres; int zorder; }; struct acs_shared{ char *data; // http in main thread -> acs_thread GPtrArray *acs; double myh, myw; double tmpctpqrb, tmpctpqtf; int new_tmpctp; double infoctpqrb, infoctpqtf; int new_infoctp; }; struct acs_thread{ double myh, myw; GPtrArray *acs; }; struct ac_counterpart{ double qrb; double qtfrad; double minqrb, maxqrb; double arm1kx, arm1ky, arm2kx, arm2ky; // middle of area double arkx[4], arky[4]; // area visible from both stations int path_valid; }; struct acs{ // only main thread // struct subwin *sw; char *url; int normal, active; GThread *thread; int http_timer; struct zhttp *http; struct qso infolocqso; time_t validity; // shared without lock int thread_break; struct ac_counterpart tmpqso;// TODO -> th struct ac_counterpart infoqso;// TODO -> th struct ac_counterpart qrvqso;// TODO -> th // shared struct acs_shared sh; MUTEX_DEFINE(sh); // only thread struct acs_thread th; }; extern struct acs *gacs; struct acs *init_acs(void); void free_acs(struct acs *acs); void acs_load(struct acs *acs, const char *data); // called in thread void acs_load2(struct acs *acs, const char *data); // called in thread void ac_compute(struct acs *acs, struct ac *ac, struct ac_counterpart *ctp, struct ac_result *res); // called in thread #ifdef Z_HAVE_SDL void plot_path(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qso *qso, struct ac_counterpart *ctp); void plot_ac(struct subwin *sw, struct ac *ac); void plot_info_ac(struct subwin *sw, SDL_Surface *surface, struct ac *ac); void acs_redraw(struct subwin *sw, struct acs *acs); #endif void ac_redraw(void); double acs_min_asl(struct acs *acs, double qrb, struct band *b, double elev_rad); double acs_max_qrb(struct acs *acs, double asl, struct band *b, double elev_rad); void acs_http_timer(void *arg); void acs_downloaded_callback(struct zhttp *http); gpointer acs_thread(gpointer arg); void acs_update_qth(struct acs *acs, struct subwin *sw); void ac_update_tmpctp(char *wwl); void ac_update_infoctp(char *wwl); void ac_format(struct qrv_item *qi, char *acstart, char *acint, int flags); #endif tucnak-4.04/src/bfu.c0000644000175000017500000021356012477604277011405 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" //#include "charsets.h" #include "kbdbind.h" #include "kbd.h" //#include "language2.h" #include "main.h" #include "menu.h" #include "rc.h" #include "session.h" #include "terminal.h" #include "zosk.h" struct memory_list *getml(void *p, ...) { struct memory_list *ml; va_list ap; int n = 0; void *q = p; va_start(ap, p); while (q) n++, q = va_arg(ap, void *); if (!(ml = (struct memory_list*)g_malloc(sizeof(struct memory_list) + n * sizeof(void *)))) return NULL; ml->n = n; n = 0; q = p; va_start(ap, p); while (q) ml->p[n++] = q, q = va_arg(ap, void *); return ml; } void add_to_ml(struct memory_list **ml, ...) { struct memory_list *nml; va_list ap; int n = 0; void *q; if (!*ml) { if (!(*ml = (struct memory_list*)g_malloc(sizeof(struct memory_list)))) return; (*ml)->n = 0; } va_start(ap, ml); while ((q = va_arg(ap, void *))) n++; if (!(nml = (struct memory_list*)g_realloc(*ml, sizeof(struct memory_list) + (n + (*ml)->n) * sizeof(void *)))) return; va_start(ap, ml); while ((q = va_arg(ap, void *))) nml->p[nml->n++] = q; *ml = nml; } void freeml(struct memory_list *ml) { int i; if (!ml) return; for (i = 0; i < ml->n; i++) g_free(ml->p[i]); g_free(ml); } char m_bar = 0; void do_menu_selected(struct menu_item *items, void *data, int selected) { struct menu *menu; if ((menu = g_new0(struct menu, 1))) { menu->selected = selected; menu->view = 0; menu->items = items; menu->data = data; add_window(menu_func, menu); } else if (items->free_i) { int i; for (i = 0; items[i].text; i++) { if (items[i].free_i & 2) g_free(items[i].text); if (items[i].free_i & 4) g_free(items[i].rtext); } g_free(items); } } void do_menu(struct menu_item *items, void *data) { do_menu_selected(items, data, 0); } static void select_menu(struct menu *menu) { /*int x = menu->x + 4; int y = menu->y + menu->selected - menu->view + 2;*/ struct menu_item *it = &menu->items[menu->selected]; void (*func)(void *, void *) = it->func; void *arg1, *arg2; int dofunc = 1; if (menu->selected < 0 || menu->selected >= menu->ni || it->hotkey == M_BAR) return; if (menu->items[menu->selected].funcall){ menu->items[menu->selected].funcall(menu); dofunc = 0; } arg1 = it->data; arg2 = menu->data; if (!it->in_m) { struct window *win, *win1; for (win = term->windows.next; (void *)win != &term->windows && (win->handler == menu_func || win->handler == mainmenu_func); ){ win1 = win->next; delete_window(win); win = win1; } } if (dofunc){ func(arg1, arg2); } } static void count_menu_size(struct terminal *term, struct menu *menu) { int sx = term->x; int sy = term->y; int mx = 4; int my; int s; for (my = 0; menu->items[my].text; my++) { s = strlen(_(menu->items[my].text)) + strlen(_(menu->items[my].rtext)) + MENU_HOTKEY_SPACE * (_(menu->items[my].rtext)[0] != 0) + 4; if (menu->items[my].checkbox) s += 4; if (s > mx) mx = s; } if (menu->items[my].rtext){ menu->title = menu->items[my].rtext; s = strlen(menu->title) + 4; if (s > mx) mx = s; } menu->ni = my; my += 2; if (mx > sx) mx = sx; if (my > sy) my = sy; menu->xw = mx; menu->yw = my; if ((menu->x = menu->xp) < 0) menu->x = 0; if ((menu->y = menu->yp) < 0) menu->y = 0; if (menu->x + mx > sx) menu->x = sx - mx; if (menu->y + my > sy) menu->y = sy - my; } static void scroll_menu(struct menu *menu, int d) { int c = 0; int w = menu->yw - 2; int scr_i = SCROLL_ITEMS > (w-1)/2 ? (w-1)/2 : SCROLL_ITEMS; if (scr_i < 0) scr_i = 0; if (w < 0) w = 0; menu->selected += d; while (1) { if (c++ > menu->ni) { menu->selected = -1; menu->view = 0; return; } if (menu->selected < 0) menu->selected = 0; if (menu->selected >= menu->ni) menu->selected = menu->ni - 1; /*if (menu->selected < 0) menu->selected = menu->ni - 1; if (menu->selected >= menu->ni) menu->selected = 0;*/ if (menu->ni && menu->items[menu->selected].hotkey != M_BAR) break; menu->selected += d; } /*debug("1:%d %d %d %d", menu->ni, w, menu->view, menu->selected);*/ if (menu->selected < menu->view + scr_i) menu->view = menu->selected - scr_i; if (menu->selected >= menu->view + w - scr_i - 1) menu->view = menu->selected - w + scr_i + 1; if (menu->view > menu->ni - w) menu->view = menu->ni - w; if (menu->view < 0) menu->view = 0; /*debug("2:%d %d %d %d", menu->ni, w, menu->view, menu->selected);*/ } static void display_menu(struct menu *menu) { int p, s; fill_area(menu->x+1, menu->y+1, menu->xw-2, menu->yw-2, COLOR_MENU1); draw_frame(menu->x, menu->y, menu->xw, menu->yw, COLOR_MENU_FRAME, 1); if (menu->title) { set_char(menu->x + 1, menu->y, COLOR_MENU_FRAME | ' '); print_text(menu->x + 2, menu->y, strlen(menu->title), menu->title, COLOR_MENU_FRAME); set_char(menu->x + 2 + strlen(menu->title), menu->y, COLOR_MENU_FRAME | ' '); } for (p = menu->view, s = menu->y + 1; p < menu->ni && p < menu->view + menu->yw - 2; p++, s++) { int x; int h = 0; unsigned char c; char *tmptext = _(menu->items[p].text); int co = p == menu->selected ? h = 1, COLOR_MENU_SELECTED : COLOR_MENU1; if (h) { set_cursor(menu->x+1, s, term->x - 1, term->y - 1); /*set_window_ptr(menu->win, menu->x+3, s+1);*/ set_window_ptr(menu->win, menu->x+menu->xw, s); fill_area(menu->x+1, s, menu->xw-2, 1, co); } if (menu->items[p].hotkey != M_BAR || (tmptext && tmptext[0])) { int xc = 0; int l = strlen(_(menu->items[p].rtext)); for (x = l - 1; x >= 0 && menu->xw - 4 >= l - x && (c = _(menu->items[p].rtext)[x]); x--) set_char(menu->x + menu->xw - 2 - l + x, s, c | co); if (menu->items[p].checkbox) { set_char(menu->x + x + 2 + 1, s, '[' | co); if (menu->items[p].checked) set_char(menu->x + x + 2 + 2, s, 'X' | co); set_char(menu->x + x + 2 + 3, s, ']' | co); xc = 4; } for (x = 0; x < menu->xw - 4 && (c = tmptext[x]); x++) set_char(menu->x + x + 2 + xc, s, !h && strchr(_(menu->items[p].hotkey), z_char_uc(c)) ? h = 1 , COLOR_MENU_HOTKEY | c : co | c); } else { set_char(menu->x, s, COLOR_MENU_FRAME | ATTR_FRAME | 0xc3); fill_area(menu->x+1, s, menu->xw-2, 1, COLOR_MENU_FRAME | ATTR_FRAME | 0xc4); set_char(menu->x+menu->xw-1, s, COLOR_MENU_FRAME | ATTR_FRAME | 0xb4); } } redraw_from_window(menu->win); } void menu_func(struct window *win, struct event *ev, int fwd) { int s = 0; struct menu *menu = (struct menu*)win->data; struct window *w1; menu->win = win; switch (ev->ev) { case EV_INIT: case EV_RESIZE: case EV_REDRAW: get_parent_ptr(win, &menu->xp, &menu->yp); count_menu_size(win->term, menu); menu->selected--; scroll_menu(menu, 1); /*case EV_REDRAW:*/ display_menu(menu); break; case EV_MOUSE: if (ev->b & B_MOVE) break; if (ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y || ev->y >= menu->y+menu->yw) { if ((ev->b & BM_ACT) == B_DOWN) del:delete_window_ev(win, ev); else for (w1 = win; (void *)w1 != &win->term->windows; w1 = w1->next) { struct menu *m1; if (w1->handler == mainmenu_func) { if (!ev->y) goto del; break; } if (w1->handler != menu_func) break; m1 = (struct menu*)w1->data; if (ev->x > m1->x && ev->x < m1->x+m1->xw-1 && ev->y > m1->y && ev->y < m1->y+m1->yw-1) goto del; } } else { if (!(ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y/*+1*/ || ev->y >= menu->y+menu->yw/*-1*/)) { int s = ev->y - menu->y-1 + menu->view; if (menu->items[s].hotkey == M_BAR){ #ifdef Z_HAVE_SDL if (zsdl){ double m = fmod((double)ev->my, (double)zsdl->font_h); if (m < zsdl->font_h / 2) s--; else s++; }else #endif { if (menu->selected < 0) break; s = menu->selected; } } if (s < 0) s = 0; if (s >= menu->ni) s = menu->ni - 1; if (s >= 0 && s < menu->ni) { menu->selected = s; scroll_menu(menu, 0); display_menu(menu); if ((ev->b & BM_ACT) == B_UP /*|| menu->items[s].in_m*/) { struct menu_item *it = &menu->items[s]; int relx = ev->x - menu->x; if (it->checkbox && relx < 6) { it->checked = !it->checked; redraw_later(); }else{ select_menu(menu); } } } } } break; case EV_KBD: switch (kbd_action(KM_MENU, ev)) { case ACT_LEFT: case ACT_RIGHT: if ((void *)win->next != &win->term->windows && win->next->handler == mainmenu_func) goto mm; /*for (w1 = win; (void *)w1 != &win->term->windows; w1 = w1->next) { if (w1->handler == mainmenu_func) goto mm; if (w1->handler != menu_func) break; }*/ if (kbd_action(KM_MENU, ev) == ACT_RIGHT) goto enter; delete_window(win); goto break2; case ACT_UP: scroll_menu(menu, -1); break; case ACT_DOWN: scroll_menu(menu, 1); break; case ACT_HOME: menu->selected = -1, scroll_menu(menu, 1); break; case ACT_END: menu->selected = menu->ni, scroll_menu(menu, -1); break; case ACT_PAGE_UP: if ((menu->selected -= menu->yw - 3) < -1) menu->selected = -1; if ((menu->view -= menu->yw - 2) < 0) menu->view = 0; scroll_menu(menu, -1); break; case ACT_PAGE_DOWN: if ((menu->selected += menu->yw - 3) > menu->ni) menu->selected = menu->ni; if ((menu->view += menu->yw - 2) >= menu->ni - menu->yw + 2) menu->view = menu->ni - menu->yw + 2; scroll_menu(menu, 1); break; default: if ((ev->x >= KBD_F1 && ev->x <= KBD_F12) || ev->y == KBD_ALT) { mm: delete_window_ev(win, ev); goto break2; } if (ev->x == KBD_ESC) { delete_window_ev(win, (void *)win->next != &win->term->windows && win->next->handler == mainmenu_func ? ev : NULL); goto break2; } if (ev->x > ' ' && ev->x < 256) { int i; for (i = 0; i < menu->ni; i++) if (strchr(_(menu->items[i].hotkey), z_char_uc(ev->x))) { menu->selected = i; scroll_menu(menu, 0); s = 1; } } break; } if (ev->x == ' '){ menu->items[menu->selected].checked = !menu->items[menu->selected].checked; scroll_menu(menu, 1); } display_menu(menu); if (s || ev->x == KBD_ENTER) { enter: select_menu(menu); } break2: break; case EV_ABORT: if (menu->items->free_i) { int i; for (i = 0; menu->items[i].text; i++) { if (menu->items[i].free_i & 2) g_free(menu->items[i].text); if (menu->items[i].free_i & 4) g_free(menu->items[i].rtext); } g_free(menu->items); } break; } } void do_mainmenu(struct menu_item *items, void *data, int sel) { struct mainmenu *menu; if ((menu = g_malloc(sizeof(struct mainmenu)))) { menu->selected = sel == -1 ? 0 : sel; menu->items = items; menu->data = data; add_window(mainmenu_func, menu); if (sel != -1) { struct event ev = {EV_KBD, KBD_ENTER, 0, 0}; struct window *win = term->windows.next; win->handler(win, &ev, 0); } } } static void display_mainmenu(struct mainmenu *menu) { int i; int p = 2; fill_area(0, 0, term->x, 1, COLOR_MAINMENU | ' '); for (i = 0; menu->items[i].text; i++) { int s = 0; int j; unsigned char c; char *tmptext = _(menu->items[i].text); int co = i == menu->selected ? s = 1, COLOR_MAINMENU_SELECTED : COLOR_MAINMENU; if (s) { fill_area(p, 0, 2, 1, co); fill_area(p+strlen(tmptext)+2, 0, 2, 1, co); menu->sp = p; set_cursor(p, 0, term->x - 1, term->y - 1); set_window_ptr(menu->win, p, 1); } p += 2; for (j = 0; (c = tmptext[j]); j++, p++) set_char(p, 0, (!s && strchr(_(menu->items[i].hotkey), z_char_uc(c)) ? s = 1, COLOR_MAINMENU_HOTKEY : co) | c); p += 2; } menu->ni = i; redraw_from_window(menu->win); } static void select_mainmenu(struct mainmenu *menu) { struct menu_item *it = &menu->items[menu->selected]; if (menu->selected < 0 || menu->selected >= menu->ni || it->hotkey == M_BAR) return; if (!it->in_m) { struct window *win; for (win = term->windows.next; (void *)win != &term->windows && (win->handler == menu_func || win->handler == mainmenu_func); delete_window(win)) ; } it->func(it->data, menu->data); } void mainmenu_func(struct window *win, struct event *ev, int fwd) { int s = 0; struct mainmenu *menu = (struct mainmenu *)win->data; menu->win = win; switch(ev->ev) { case EV_INIT: case EV_RESIZE: case EV_REDRAW: display_mainmenu(menu); break; case EV_MOUSE: if (ev->b & B_MOVE) break; if ((ev->b & BM_ACT) == B_DOWN && ev->y) delete_window_ev(win, ev); else if (!ev->y) { int i; int p = 2; for (i = 0; i < menu->ni; i++) { int o = p; char *tmptext = _(menu->items[i].text); p += strlen(tmptext) + 4; if (ev->x >= o && ev->x < p) { menu->selected = i; display_mainmenu(menu); if ((ev->b & BM_ACT) == B_UP || menu->items[s].in_m) select_mainmenu(menu); break; } } } break; case EV_KBD: if (ev->x == ' ' || ev->x == KBD_ENTER || ev->x == KBD_DOWN || ev->x == KBD_UP || ev->x == KBD_PGDN || ev->x == KBD_PGUP) { select_mainmenu(menu); break; } if (ev->x == KBD_LEFT) { if (!menu->selected--) menu->selected = menu->ni - 1; s = 1; } if (ev->x == KBD_RIGHT) { if (++menu->selected >= menu->ni) menu->selected = 0; s = 1; } if ((ev->x == KBD_LEFT || ev->x == KBD_RIGHT) && fwd) { display_mainmenu(menu); select_mainmenu(menu); break; } if (ev->x > ' ' && ev->x < 256) { int i; s = 1; for (i = 0; i < menu->ni; i++) if (strchr(_(menu->items[i].hotkey), z_char_uc(ev->x))) { menu->selected = i; s = 2; } } else if (!s) { delete_window_ev(win, ev->x != KBD_ESC ? ev : NULL); break; } display_mainmenu(menu); if (s == 2) select_mainmenu(menu); break; case EV_ABORT: break; } } struct menu_item *new_menu(int free_i) { struct menu_item *mi; if (!(mi = (struct menu_item*)g_malloc(sizeof(struct menu_item)))) return NULL; memset(mi, 0, sizeof(struct menu_item)); mi->free_i = free_i; return mi; } struct menu_item *add_to_menu(struct menu_item **mi, char *text, char *rtext, char *hotkey, void (*func)(void *, void *), void *data, int in_m) { struct menu_item *mii; int n; for (n = 0; (*mi)[n].text; n++) ; mii = (struct menu_item*)g_realloc(*mi, (n + 2) * sizeof(struct menu_item)); *mi = mii; memcpy(mii + n + 1, mii + n, sizeof(struct menu_item)); mii[n].text = text; mii[n].rtext = rtext; mii[n].hotkey = hotkey; mii[n].func = func; mii[n].data = data; mii[n].in_m = in_m; mii[n].checkbox = 0; mii[n].checked = 0; return mii + n; } void do_dialog(struct dialog *dlg, struct memory_list *ml) { struct dialog_data *dd; struct dialog_item *d; int n = 0; for (d = dlg->items; d->type != D_END; d++) n++; if (!(dd = (struct dialog_data *)g_malloc(sizeof(struct dialog_data) + sizeof(struct dialog_item_data) * n))) return; dd->dlg = dlg; dd->n = n; dd->ml = ml; add_window(dialog_func, dd); } void display_dlg_item(struct dialog_data *dlg, struct dialog_item_data *di, int sel) { switch(di->item->type) { int co; char *text; case D_CHECKBOX: if (di->checked) print_text(di->x, di->y, 3, "[X]", COLOR_DIALOG_CHECKBOX); else print_text(di->x, di->y, 3, "[ ]", COLOR_DIALOG_CHECKBOX); if (sel) { set_cursor(di->x + 1, di->y, di->x + 1, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_CHECKBOX3: if (di->checked==2) print_text(di->x, di->y, 3, "[O]", COLOR_DIALOG_CHECKBOX); else if (di->checked==1) print_text(di->x, di->y, 3, "[X]", COLOR_DIALOG_CHECKBOX); else print_text(di->x, di->y, 3, "[ ]", COLOR_DIALOG_CHECKBOX); if (sel) { set_cursor(di->x + 1, di->y, di->x + 1, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_FIELD_PASS: case D_FIELD: if (di->vpos + di->l <= di->cpos) di->vpos = di->cpos - di->l + 1; if (di->vpos > di->cpos) di->vpos = di->cpos; if (di->vpos < 0) di->vpos = 0; fill_area(di->x, di->y, di->l, 1, COLOR_DIALOG_FIELD); if (di->item->type == D_FIELD) { print_text(di->x, di->y, strlen(di->cdata + di->vpos) <= di->l ? strlen(di->cdata + di->vpos) : di->l, di->cdata + di->vpos, COLOR_DIALOG_FIELD_TEXT); } else fill_area(di->x, di->y, strlen(di->cdata + di->vpos) <= di->l ? strlen(di->cdata + di->vpos) : di->l, 1, COLOR_DIALOG_FIELD_TEXT | '*'); if (sel) { set_cursor(di->x + di->cpos - di->vpos, di->y, di->x + di->cpos - di->vpos, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_BUTTON: co = sel ? COLOR_DIALOG_BUTTON_SELECTED : COLOR_DIALOG_BUTTON; text = _(di->item->text); print_text(di->x, di->y, 2, "[ ", co); print_text(di->x + 2, di->y, strlen(text), text, co); print_text(di->x + 2 + strlen(text), di->y, 2, " ]", co); if (sel) { set_cursor(di->x + 2, di->y, di->x + 2, di->y); set_window_ptr(dlg->win, di->x, di->y); } break; case D_BOX: /* Draw a hierarchy box */ show_dlg_item_box(dlg, di); break; case D_TEXT: break; default: dbg("Tried to draw unknown "); } } static void dlg_select_item(struct dialog_data *dlg, struct dialog_item_data *di) { if (di->item->type == D_CHECKBOX) { if (!di->item->gid) di -> checked = *(int *)di->cdata = !*(int *)di->cdata; else { int i; for (i = 0; i < dlg->n; i++) { if (dlg->items[i].item->type == D_CHECKBOX && dlg->items[i].item->gid == di->item->gid) { *(int *)dlg->items[i].cdata = di->item->gnum; dlg->items[i].checked = 0; display_dlg_item(dlg, &dlg->items[i], 0); } } di->checked = 1; } display_dlg_item(dlg, di, 1); } else if (di->item->type == D_CHECKBOX3) { if (!di->item->gid) { (*(int *)di->cdata)++; if (*(int *)di->cdata == 3) *(int *)di->cdata = 0; di -> checked = *(int *)di->cdata; }else{ int i; for (i = 0; i < dlg->n; i++) { if (dlg->items[i].item->type == D_CHECKBOX3 && dlg->items[i].item->gid == di->item->gid) { *(int *)dlg->items[i].cdata = di->item->gnum; dlg->items[i].checked = 0; display_dlg_item(dlg, &dlg->items[i], 0); } } di->checked = 1; } display_dlg_item(dlg, di, 1); } else if (di->item->type == D_BUTTON) di->item->fn(dlg, di); } static void dlg_set_history(struct dialog_item_data *di) { char *s = ""; int l; if ((void *)di->cur_hist != &di->history) s = di->cur_hist->d; if ((l = strlen(s)) > di->item->dlen) l = di->item->dlen - 1; memcpy(di->cdata, s, l); di->cdata[l] = 0; di->cpos = l; } static int dlg_mouse(struct dialog_data *dlg, struct dialog_item_data *di, struct event *ev) { switch (di->item->type) { case D_BUTTON: if (ev->y != di->y || ev->x < di->x || ev->x >= di->x + strlen(_(di->item->text)) + 4) return 0; if (dlg->dlg->items[di - dlg->items].type == D_TEXT) return 0; display_dlg_item(dlg, &dlg->items[dlg->selected], 0); dlg->selected = di - dlg->items; display_dlg_item(dlg, di, 1); if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); return 1; case D_FIELD_PASS: case D_FIELD: if (ev->y != di->y || ev->x < di->x || ev->x >= di->x + di->l) return 0; if (dlg->dlg->items[di - dlg->items].type == D_TEXT) return 0; if (!cfg->usetouch){ if ((di->cpos = di->vpos + ev->x - di->x) > strlen(di->cdata)) di->cpos = strlen(di->cdata); } display_dlg_item(dlg, &dlg->items[dlg->selected], 0); dlg->selected = di - dlg->items; display_dlg_item(dlg, di, 1); #ifdef Z_HAVE_SDL if (gses && cfg->usetouch){ if (gses->osk) zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, ZOSK_ENTERCLOSE, di->cdata); zosk_portrait(gses->osk); } #endif return 1; case D_CHECKBOX: case D_CHECKBOX3: if (ev->y != di->y || ev->x < di->x || ev->x >= di->x + 3) return 0; display_dlg_item(dlg, &dlg->items[dlg->selected], 0); dlg->selected = di - dlg->items; display_dlg_item(dlg, di, 1); if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); return 1; case D_BOX: if ((ev->b & BM_ACT) == B_UP) { if ( (ev->y >= di->y) && (ev->x >= di->x && ev->x <= di->l + di->x) ) { /* Clicked in the box. */ int offset; offset = ev->y - di->y; box_sel_set_visible(di, offset); display_dlg_item(dlg, di, 1); return 1; } } /*else if ((ev->b & BM_ACT) == B_DRAG) { debug("drag"); }*/ case D_TEXT: break; } return 0; } static void redraw_dialog(struct dialog_data *dlg) { int i; draw_frame(dlg->x + DIALOG_LEFT_BORDER, dlg->y + DIALOG_TOP_BORDER, dlg->xw - 2 * DIALOG_LEFT_BORDER, dlg->yw - 2 * DIALOG_TOP_BORDER, COLOR_DIALOG_FRAME, DIALOG_FRAME); i = strlen(_(dlg->dlg->title)); print_text((dlg->xw - i) / 2 + dlg->x - 1, dlg->y + DIALOG_TOP_BORDER, 1, " ", COLOR_DIALOG_TITLE); print_text((dlg->xw - i) / 2 + dlg->x, dlg->y + DIALOG_TOP_BORDER, i, _(dlg->dlg->title), COLOR_DIALOG_TITLE); print_text((dlg->xw - i) / 2 + dlg->x + i, dlg->y + DIALOG_TOP_BORDER, 1, " ", COLOR_DIALOG_TITLE); for (i = 0; i < dlg->n; i++) display_dlg_item(dlg, &dlg->items[i], i == dlg->selected); redraw_from_window(dlg->win); } void dialog_func(struct window *win, struct event *ev, int fwd) { int i; struct dialog_data *dlg = (struct dialog_data *)win->data; struct dialog_item_data *di; dlg->win = win; /* dbg("dialog_func(%p,[%d,%d,%d,%d],%d)\n",win,ev->ev,ev->x,ev->y,ev->b,fwd);*/ /* Use nonstandard event handlers */ if (dlg->dlg->handle_event && ((dlg->dlg->handle_event)(dlg, ev) == EVENT_PROCESSED) ) { return; } switch (ev->ev) { case EV_INIT: for (i = 0; i < dlg->n; i++) { struct dialog_item_data *di = &dlg->items[i]; memset(di, 0, sizeof(struct dialog_item_data)); di->item = &dlg->dlg->items[i]; if ((di->cdata = (char *)g_malloc(di->item->dlen))) memcpy(di->cdata, di->item->data, di->item->dlen); if (di->item->type == D_CHECKBOX) { if (di->item->gid) { if (*(int *)di->cdata == di->item->gnum) di->checked = 1; } else if (*(int *)di->cdata) di->checked = 1; } if (di->item->type == D_CHECKBOX3) { di->checked = *(int *)di->cdata; } if (di->item->type == D_BOX) { /* Freed in bookmark_dialog_abort_handler() */ di->cdata = g_malloc( sizeof(struct dlg_data_item_data_box) ); ((struct dlg_data_item_data_box*)di->cdata)->sel = -1; ((struct dlg_data_item_data_box*)di->cdata)->box_top = 0; ((struct dlg_data_item_data_box*)di->cdata)->list_len = -1; init_list(((struct dlg_data_item_data_box*)di->cdata)->items); } init_list(di->history); if (di->item->type == D_FIELD || di->item->type == D_FIELD_PASS) { if (di->item->history) { struct history_item *j; /*int l = di->item->dlen;*/ foreach(j, di->item->history->items) { struct history_item *hi; if (!(hi = g_malloc(sizeof(struct history_item) + strlen(j->d) + 1))) continue; strcpy(hi->d, j->d); add_to_list(di->history, hi); } } di->cpos = strlen(di->cdata); } } dlg->selected = 0; while (dlg->dlg->items[dlg->selected].type == D_TEXT) dlg->selected ++; // no focus for D_TEXT case EV_RESIZE: case EV_REDRAW: dlg->dlg->fn(dlg); redraw_dialog(dlg); break; case EV_MOUSE: if (ev->b & B_MOVE) break; for (i = 0; i < dlg->n; i++) if (dlg_mouse(dlg, &dlg->items[i], ev)) break; break; case EV_KBD: di = &dlg->items[dlg->selected]; if (di->item->type == D_FIELD || di->item->type == D_FIELD_PASS) { if (di->item->tabcompl && ev->x == KBD_F2 && ev->y == 0){ di->item->tabi++; do_tab_compl(di, di->item->tabi); if (di->item->tabi == 2) di->item->tabi = 0; goto dsp_f; }else{ di->item->tabi = 0; } switch (kbd_action(KM_EDIT, ev)) { case ACT_UP: if ((void *)di->cur_hist->prev != &di->history) { di->cur_hist = di->cur_hist->prev; dlg_set_history(di); goto dsp_f; } break; case ACT_DOWN: if ((void *)di->cur_hist != &di->history) { di->cur_hist = di->cur_hist->next; dlg_set_history(di); goto dsp_f; } break; case ACT_RIGHT: if (di->cpos < strlen(di->cdata)) di->cpos++; goto dsp_f; case ACT_LEFT: if (di->cpos > 0) di->cpos--; goto dsp_f; case ACT_HOME: di->cpos = 0; goto dsp_f; case ACT_END: di->cpos = strlen(di->cdata); goto dsp_f; case ACT_BACKSPACE: if (di->cpos) { memmove(di->cdata + di->cpos - 1, di->cdata + di->cpos, strlen(di->cdata) - di->cpos + 1); di->cpos--; } goto dsp_f; case ACT_DELETE: if (di->cpos < strlen(di->cdata)) memmove(di->cdata + di->cpos, di->cdata + di->cpos + 1, strlen(di->cdata) - di->cpos + 1); goto dsp_f; case ACT_KILL_TO_BOL: memmove(di->cdata, di->cdata + di->cpos, strlen(di->cdata + di->cpos) + 1); di->cpos = 0; goto dsp_f; case ACT_KILL_TO_EOL: di->cdata[di->cpos] = 0; goto dsp_f; case ACT_COPY_CLIPBOARD: /* Copy to clipboard */ set_clipboard_text(di->cdata); break; /* We don't need to redraw */ case ACT_CUT_CLIPBOARD: /* Cut to clipboard */ set_clipboard_text(di->cdata); di->cdata[0] = 0; di->cpos = 0; goto dsp_f; case ACT_PASTE_CLIPBOARD: { /* Paste from clipboard */ char * clipboard = get_clipboard_text(); strncpy(di->cdata , clipboard, di->item->dlen); di->cdata[di->item->dlen - 1] = 0; di->cpos = strlen(di->cdata); g_free(clipboard); goto dsp_f; } default: if (ev->x >= ' ' && ev->x < 0x100 && !ev->y) { if (strlen(di->cdata) < di->item->dlen - 1) { memmove(di->cdata + di->cpos + 1, di->cdata + di->cpos, strlen(di->cdata) - di->cpos + 1); di->cdata[di->cpos++] = ev->x; } goto dsp_f; } } goto gh; dsp_f: display_dlg_item(dlg, di, 1); redraw_from_window(dlg->win); break; } if ((ev->x == KBD_ENTER && di->item->type == D_BUTTON) || ev->x == ' ') { dlg_select_item(dlg, di); break; } gh: if (ev->x > ' ' && ev->x < 0x100) for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_BUTTON && z_char_uc(_(dlg->dlg->items[i].text)[0]) == z_char_uc(ev->x)) { sel: if (dlg->selected != i) { display_dlg_item(dlg, &dlg->items[dlg->selected], 0); display_dlg_item(dlg, &dlg->items[i], 1); dlg->selected = i; } dlg_select_item(dlg, &dlg->items[i]); goto bla; } if (ev->x == KBD_ENTER) for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ENTER) goto sel; if (ev->x == KBD_ESC) for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ESC) goto sel; if ((ev->x == KBD_TAB && !ev->y) || ev->x == KBD_DOWN || ev->x == KBD_RIGHT) { display_dlg_item(dlg, &dlg->items[dlg->selected], 0); do{ if ((++dlg->selected) >= dlg->n) dlg->selected = 0; }while (dlg->dlg->items[dlg->selected].type == D_TEXT); display_dlg_item(dlg, &dlg->items[dlg->selected], 1); redraw_from_window(dlg->win); break; } if ((ev->x == KBD_TAB && ev->y) || ev->x == KBD_UP || ev->x == KBD_LEFT) { display_dlg_item(dlg, &dlg->items[dlg->selected], 0); do{ if ((--dlg->selected) < 0) dlg->selected = dlg->n - 1; }while (dlg->dlg->items[dlg->selected].type == D_TEXT); display_dlg_item(dlg, &dlg->items[dlg->selected], 1); redraw_from_window(dlg->win); break; } break; case EV_ABORT: /* Moved this line up so that the dlg would have access to its member vars before they get freed. */ if (dlg->dlg->abort) dlg->dlg->abort(dlg); for (i = 0; i < dlg->n; i++) { struct dialog_item_data *di = &dlg->items[i]; if (di->cdata) g_free(di->cdata); free_list(di->history); } freeml(dlg->ml); } bla:; } int check_number(struct dialog_data *dlg, struct dialog_item_data *di) { char *end; long l = strtol(di->cdata, (char **)(void *)&end, 10); if (!*di->cdata || *end) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_EXPECTED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } if (l < di->item->gid || l > di->item->gnum) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } int check_hex(struct dialog_data *dlg, struct dialog_item_data *di) { char *end; long l = strtol(di->cdata, (char **)(void *)&end, 16); if (!*di->cdata || *end) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_EXPECTED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } if (l < di->item->gid || l > di->item->gnum) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } int check_double(struct dialog_data *dlg, struct dialog_item_data *di) { double d = atof(di->cdata); if (!*di->cdata) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_EXPECTED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } if (d < (double)di->item->gid || d > (double)di->item->gnum) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } int check_qrg(struct dialog_data *dlg, struct dialog_item_data *di) { char *end; double d = strtod(di->cdata, (char **)(void *)&end); if (!*di->cdata || *end) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_EXPECTED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } if (d < 0.0 || d > 300000000000.0) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } int check_nonempty(struct dialog_data *dlg, struct dialog_item_data *di) { char *p; for (p = di->cdata; *p; p++) if (*p > ' ') return 0; msg_box(NULL, VTEXT(T_BAD_STRING), AL_CENTER, VTEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } int cancel_dialog(struct dialog_data *dlg, struct dialog_item_data *di) { /*struct dialog *dl = dlg->dlg;*/ delete_window(dlg->win); /*g_free(dl);*/ return 0; } static int check_dialog(struct dialog_data *dlg) { int i; for (i = 0; i < dlg->n; i++) if (dlg->dlg->items[i].type == D_CHECKBOX || dlg->dlg->items[i].type == D_CHECKBOX3 || dlg->dlg->items[i].type == D_FIELD || dlg->dlg->items[i].type == D_FIELD_PASS) if (dlg->dlg->items[i].fn && dlg->dlg->items[i].fn(dlg, &dlg->items[i])) { dlg->selected = i; redraw_dialog(dlg); return 1; } return 0; } int ok_dialog(struct dialog_data *dlg, struct dialog_item_data *di) { int i; void (*fn)(void *) = dlg->dlg->refresh; void *data = dlg->dlg->refresh_data; if (check_dialog(dlg)) return 1; for (i = 0; i < dlg->n; i++) memcpy(dlg->dlg->items[i].data, dlg->items[i].cdata, dlg->dlg->items[i].dlen); if (fn) fn(data); i = cancel_dialog(dlg, di); return i; } void center_dlg(struct dialog_data *dlg) { dlg->x = (dlg->win->term->x - dlg->xw) / 2; dlg->y = (dlg->win->term->y - dlg->yw) / 2; } void draw_dlg(struct dialog_data *dlg) { fill_area(dlg->x, dlg->y, dlg->xw, dlg->yw, COLOR_DIALOG); } void max_text_width(struct terminal *term, char *text, int *width) { text = _(text); do { int c = 0; while (*text && *text != '\n') text++, c++; if (c > *width) *width = c; } while (*(text++)); } void min_text_width(struct terminal *term, char *text, int *width) { text = _(text); do { int c = 0; while (*text && *text != '\n' && *text != ' ') text++, c++; if (c > *width) *width = c; } while (*(text++)); } void dlg_format_text(struct terminal *term1, struct terminal *t2, char *atext, int x, int *y, int w, int *rw, int co, int align) { unsigned char *text; text = (unsigned char *)_(atext); do { unsigned char *tx; unsigned char *tt = text; int s; int xx = x; do { while (*text && *text != '\n' && *text != ' ') { text++, xx++; } tx = ++text; xx++; if (*(text - 1) != ' ') break; while (*tx && *tx != '\n' && *tx != ' ') tx++; } while (tx - text + xx - x <= w); s = (align & AL_MASK) == AL_CENTER ? (w - (xx - 1 - x)) / 2 : 0; if (s < 0) s = 0; while (tt < text - 1) { if (s >= w) { s = 0, (*y)++; if (rw) *rw = w; rw = NULL; } if (term1) set_char(x + s, *y, co | *tt); s++, tt++; } if (rw && xx - 1 - x > *rw) *rw = xx - 1 - x; (*y)++; } while (*(text - 1)); } void max_buttons_width(struct terminal *term, struct dialog_item_data *butt, int n, int *width) { int w = -2; int i; for (i = 0; i < n; i++) w += strlen(_((butt++)->item->text)) + 6; if (w > *width) *width = w; } void min_buttons_width(struct terminal *term, struct dialog_item_data *butt, int n, int *width) { int i; for (i = 0; i < n; i++) { int w = strlen(_((butt++)->item->text)) + 4; if (w > *width) *width = w; } } void dlg_format_buttons(struct terminal *term, struct terminal *t2, struct dialog_item_data *butt, int n, int x, int *y, int w, int *rw, int align) { int i1 = 0; while (i1 < n) { int i2 = i1 + 1; int mw; while (i2 < n) { mw = 0; max_buttons_width(t2, butt + i1, i2 - i1 + 1, &mw); if (mw <= w) i2++; else break; } mw = 0; max_buttons_width(t2, butt + i1, i2 - i1, &mw); if (rw && mw > *rw) if ((*rw = mw) > w) *rw = w; if (term) { int i; int p = x + ((align & AL_MASK) == AL_CENTER ? (w - mw) / 2 : 0); for (i = i1; i < i2; i++) { butt[i].x = p; butt[i].y = *y; p += (butt[i].l = strlen(_(butt[i].item->text)) + 4) + 2; } } *y += 2; i1 = i2; } } void dlg_format_buttons1(struct terminal *term, struct terminal *t2, struct dialog_item_data *butt, int n, int x, int *y, int w, int *rw, int align) { int i1 = 0; while (i1 < n) { int i2 = i1 + 1; int mw; while (i2 < n) { mw = 0; max_buttons_width(t2, butt + i1, i2 - i1 + 1, &mw); if (mw <= w) i2++; else break; } mw = 0; max_buttons_width(t2, butt + i1, i2 - i1, &mw); if (rw && mw > *rw) if ((*rw = mw) > w) *rw = w; if (term) { int i; int p = x + ((align & AL_MASK) == AL_CENTER ? (w - mw) / 2 : 0); for (i = i1; i < i2; i++) { butt[i].x = p; butt[i].y = *y; p += (butt[i].l = strlen(_(butt[i].item->text)) + 4) + 2; } } *y += 1; i1 = i2; } } void dlg_format_checkbox(struct terminal *term, struct terminal *t2, struct dialog_item_data *chkb, int x, int *y, int w, int *rw, char *text) { if (term) { chkb->x = x; chkb->y = *y; } if (rw) *rw -= 4; dlg_format_text(term, t2, text, x + 4, y, w - 4, rw, COLOR_DIALOG_CHECKBOX_TEXT, AL_LEFT); if (rw) *rw += 4; } void dlg_format_checkboxes(struct terminal *term, struct terminal *t2, struct dialog_item_data *chkb, int n, int x, int *y, int w, int *rw, char **texts) { while (n) { dlg_format_checkbox(term, t2, chkb, x, y, w, rw, _(texts[0])); texts++; chkb++; n--; } } void checkboxes_width(struct terminal *term, char **texts, int *w, void (*fn)(struct terminal *, char *, int *)) { while (texts[0]) { *w -= 4; fn(term, _(texts[0]), w); *w += 4; texts++; } } void dlg_format_field(struct terminal *term, struct terminal *t2, struct dialog_item_data *item, int x, int *y, int w, int *rw, int align) { item->x = x; item->y = *y; item->l = w; /*if ((item->l = w) > item->item->dlen - 1) item->l = item->item->dlen - 1;*/ if (rw && item->l > *rw) if ((*rw = item->l) > w) *rw = w; (*y)++; } /* Layout for generic boxes */ void dlg_format_box(struct terminal *term, struct terminal *t2, struct dialog_item_data *item, int x, int *y, int w, int *rw, int align) { item->x = x; item->y = *y; item->l = w; if (rw && item->l > *rw) if ((*rw = item->l) > w) *rw = w; (*y) += item->item->gid; } void max_group_width(struct terminal *term, char **texts, struct dialog_item_data *item, int n, int *w) { int ww = 0; while (n--) { int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->dlen + 1; wx += strlen(_(texts[0])); if (n) wx++; ww += wx; texts++; item++; } if (ww > *w) *w = ww; } void min_group_width(struct terminal *term, char **texts, struct dialog_item_data *item, int n, int *w) { while (n--) { int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->dlen + 1; wx += strlen(_(texts[0])); if (wx > *w) *w = wx; texts++; item++; } } void dlg_format_group(struct terminal *term1, struct terminal *t2, char **texts, struct dialog_item_data *item, int n, int x, int *y, int w, int *rw) { int nx = 0; /* now X coord */ /* dbg("\ndlg_format_group (term=%p,n=%d,x=%d,*y=%d,w=%d,rw=%p)\n",term,n,x,*y,w,rw);*/ //dbg("dlg_format_group item x=%d y=%d l=%d, vpos=%d, cpos=%d\n", item->x, item->y, item->l, item->vpos, item->cpos); while (n--) { int sl; int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(texts[0])[0]) sl = strlen(_(texts[0])); else sl = -1; wx += sl; if (nx && nx + wx > w) { nx = 0; (*y) += 2; } /* dbg("sl=%d nx=%d wx=%d w=%d\n",sl,nx,wx,w);*/ if (term1) { int stringlen; print_text(x + nx + 4 * (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3), *y, strlen(_(texts[0])), _(texts[0]), COLOR_DIALOG_TEXT); item->x = x + nx + (sl + 1) * (item->item->type != D_CHECKBOX && item->item->type != D_CHECKBOX3); item->y = *y; /* dbg("item->x=%d item->y=%d\n",item->x,item->y);*/ if (item->item->type == D_FIELD || item->item->type == D_FIELD_PASS) { item->l = item->item->maxl ? item->item->maxl : item->item->dlen; /* dbg("setting item->l to %d \n",item->l); dbg("remains w-nx=%d w-nx-wx=%d \n",w-nx,w-nx-wx);*/ stringlen=strlen(_(texts[0])); if (item->l > w-nx-stringlen) item->l = w-nx-stringlen; /* dbg("setting item->l to %d \n",item->l);*/ } } if (rw && nx + wx > *rw) if ((*rw = nx + wx) > w) *rw = w; nx += wx + 1; texts++; item++; } (*y)++; } void dlg_format_group1(struct terminal *term1, struct terminal *t2, char **texts, struct dialog_item_data *item, int n, int x, int *y, int w, int *rw) { int nx = 0; /* now X coord */ /* dbg("\ndlg_format_group (term=%p,n=%d,x=%d,*y=%d,w=%d,rw=%p)\n",term,n,x,*y,w,rw);*/ while (n--) { int sl; int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(texts[0])[0]) sl = strlen(_(texts[0])); else sl = -1; wx += sl; if (nx && nx + wx > w) { nx = 0; (*y) += 1; } /* dbg("sl=%d nx=%d wx=%d w=%d\n",sl,nx,wx,w);*/ if (term1) { int stringlen; print_text(x + nx + 4 * (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3), *y, strlen(_(texts[0])), _(texts[0]), COLOR_DIALOG_TEXT); item->x = x + nx + (sl + 1) * (item->item->type != D_CHECKBOX && item->item->type != D_CHECKBOX3); item->y = *y; /* dbg("item->x=%d item->y=%d\n",item->x,item->y);*/ if (item->item->type == D_FIELD || item->item->type == D_FIELD_PASS) { item->l = item->item->maxl ? item->item->maxl : item->item->dlen; /* dbg("setting item->l to %d \n",item->l); dbg("remains w-nx=%d w-nx-wx=%d \n",w-nx,w-nx-wx);*/ stringlen=strlen(_(texts[0])); if (item->l > w-nx-stringlen) item->l = w-nx-stringlen; /* dbg("setting item->l to %d \n",item->l); */ } } if (rw && nx + wx > *rw) if ((*rw = nx + wx) > w) *rw = w; nx += wx + 1; texts++; item++; } (*y)++; } void checkbox_list_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = 0; checkboxes_width(term, dlg->dlg->udata, &max, max_text_width); checkboxes_width(term, dlg->dlg->udata, &min, min_text_width); max_buttons_width(term, dlg->items + dlg->n - 2, 2, &max); min_buttons_width(term, dlg->items + dlg->n - 2, 2, &min); w = term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > term->x - 2 * DIALOG_LB) w = term->x - 2 * DIALOG_LB; if (w < 5) w = 5; rw = 0; dlg_format_checkboxes(NULL, term, dlg->items, dlg->n - 2, 0, &y, w, &rw, dlg->dlg->udata); y++; dlg_format_buttons(NULL, term, dlg->items + dlg->n - 2, 2, 0, &y, w, &rw, AL_CENTER); w = rw; dlg->xw = rw + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB + 1; dlg_format_checkboxes(term, term, dlg->items, dlg->n - 2, dlg->x + DIALOG_LB, &y, w, NULL, dlg->dlg->udata); y++; dlg_format_buttons(term, term, dlg->items + dlg->n - 2, 2, dlg->x + DIALOG_LB, &y, w, &rw, AL_CENTER); } void group_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = 0; max_group_width(term, dlg->dlg->udata, dlg->items, dlg->n - 2, &max); min_group_width(term, dlg->dlg->udata, dlg->items, dlg->n - 2, &min); max_buttons_width(term, dlg->items + dlg->n - 2, 2, &max); min_buttons_width(term, dlg->items + dlg->n - 2, 2, &min); w = term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > term->x - 2 * DIALOG_LB) w = term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; dlg_format_group(NULL, term, dlg->dlg->udata, dlg->items, dlg->n - 2, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + dlg->n - 2, 2, 0, &y, w, &rw, AL_CENTER); w = rw; dlg->xw = rw + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB + 1; dlg_format_group(term, term, dlg->dlg->udata, dlg->items, dlg->n - 2, dlg->x + DIALOG_LB, &y, w, NULL); y++; dlg_format_buttons(term, term, dlg->items + dlg->n - 2, 2, dlg->x + DIALOG_LB, &y, w, &rw, AL_CENTER); } static void msg_box_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = 0; char **ptr; //t textl2 = 0; GString *text = g_string_new(""); for (ptr = dlg->dlg->udata; *ptr; ptr++) g_string_append(text, _(*ptr)); max_text_width(term, text->str, &max); min_text_width(term, text->str, &min); max_buttons_width(term, dlg->items, dlg->n, &max); min_buttons_width(term, dlg->items, dlg->n, &min); w = term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > term->x - 2 * DIALOG_LB) w = term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; dlg_format_text(NULL, term, text->str, 0, &y, w, &rw, COLOR_DIALOG_TEXT, dlg->dlg->align); y++; dlg_format_buttons(NULL, term, dlg->items, dlg->n, 0, &y, w, &rw, AL_CENTER); w = rw; dlg->xw = rw + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB + 1; dlg_format_text(term, term, text->str, dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, dlg->dlg->align); y++; dlg_format_buttons(term, term, dlg->items, dlg->n, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); g_string_free(text, TRUE); } static int msg_box_button(struct dialog_data *dlg, struct dialog_item_data *di) { void (*fn)(void *, struct dialog_item_data *) = (void (*)(void *, struct dialog_item_data *di))di->item->udata; void *data = dlg->dlg->udata2; /*struct dialog *dl = dlg->dlg;*/ if (fn) fn(data, di); cancel_dialog(dlg, di); return 0; } void msg_box(struct memory_list *ml, char *title, int align, /*char *text, void *data, int n,*/ ...) { struct dialog *dlg; int i; int n; char *text; char **udata; void *udata2; int udatan; va_list ap; va_start(ap, align); udata = NULL; udatan = 0; do { char **udata_; text = va_arg(ap, char *); na_kovarne__to_je_narez: if (!(udata_ = g_realloc(udata, ++udatan * sizeof(char *)))) { g_free(udata); return; } udata = udata_; udata[udatan - 1] = text; if (text && !(align & AL_EXTD_TEXT)) { text = NULL; goto na_kovarne__to_je_narez; } } while (text); udata2 = va_arg(ap, void *); n = va_arg(ap, int); if (!(dlg = g_malloc(sizeof(struct dialog) + (n + 1) * sizeof(struct dialog_item)))) { g_free(udata); return; } memset(dlg, 0, sizeof(struct dialog) + (n + 1) * sizeof(struct dialog_item)); dlg->title = title; dlg->fn = msg_box_fn; dlg->udata = udata; dlg->udata2 = udata2; dlg->align = align; for (i = 0; i < n; i++) { char *m; void (*fn)(void *); int flags; m = va_arg(ap, char *); fn = va_arg(ap, void *); flags = va_arg(ap, int); if (!m) { i--, n--; continue; } dlg->items[i].type = D_BUTTON; dlg->items[i].gid = flags; dlg->items[i].fn = msg_box_button; dlg->items[i].dlen = 0; dlg->items[i].text = m; dlg->items[i].udata = fn; } dlg->items[i].type = D_END; add_to_ml(&ml, dlg, udata, NULL); do_dialog(dlg, ml); } void add_to_history(struct history *h, char *t) { struct history_item *hi, *hs; int l; if (!h || !t || !*t) return; l = strlen(t) + 1; if (!(hi = g_malloc(sizeof(struct history_item) + l))) return; memcpy(hi->d, t, l); foreach(hs, h->items) if (!strcmp(hs->d, t)) { struct history_item *hd = hs; hs = hs->prev; del_from_list(hd); g_free(hd); h->n--; } add_to_list(h->items, hi); h->n++; while (h->n > MAX_HISTORY_ITEMS) { struct history_item *hd = h->items.prev; if ((void *)hd == &h->items) { zinternal("history is empty"); h->n = 0; return; } del_from_list(hd); g_free(hd); h->n--; } } static int input_field_cancel(struct dialog_data *dlg, struct dialog_item_data *di) { void (*fn)(void *) = di->item->udata; void *data = dlg->dlg->udata2; if (fn) fn(data); cancel_dialog(dlg, di); return 0; } static int input_field_ok(struct dialog_data *dlg, struct dialog_item_data *di) { void (*fn)(void *, char *) = di->item->udata; void *data = dlg->dlg->udata2; char *text = dlg->items->cdata; if (check_dialog(dlg)) return 1; add_to_history(dlg->dlg->items->history, text); if (fn) fn(data, text); ok_dialog(dlg, di); return 0; } static int input_field_complete(struct dialog_data *dlg, struct dialog_item_data *di){ di->item->tabi++; do_tab_compl(&dlg->items[0], 1); if (di->item->tabi == 2) di->item->tabi = 0; redraw_later(); return 0; } char new_file[MAX_STR_LEN]; void input_field_fn_i(struct dialog_data *dlg, int i) { if (strlen(new_file)){ char *c = strrchr(dlg->items[i].cdata, '/'); if (!c) c = strrchr(dlg->items[i].cdata, '\\'); if (c){ char *p; *c = '\0'; p = g_strconcat(dlg->items[i].cdata, "/", new_file, NULL); z_wokna(p); safe_strncpy0(dlg->items[i].cdata, p, dlg->items[i].item->dlen); g_free(p); }else{ safe_strncpy0(dlg->items[i].cdata, new_file, dlg->items[i].item->dlen); } dlg->items[i].cpos = strlen(dlg->items[i].cdata); strcpy(new_file, ""); } } void input_field_fn(struct dialog_data *dlg){ input_field_fn_i(dlg, 0); } void input_field(struct memory_list *ml, char *title, char *text, char *okbutton, char *cancelbutton, void *data, struct history *history, int l, char *def, int min, int max, int (*check)(struct dialog_data *, struct dialog_item_data *), void (*fn)(void *, char *), void (*cancelfn)(void *), int tabcompl) { struct dialog *dlg; char *field; int i; strcpy(new_file, ""); if (!(dlg = g_malloc(sizeof(struct dialog) + 4 * sizeof(struct dialog_item) + l))) return; memset(dlg, 0, sizeof(struct dialog) + 4 * sizeof(struct dialog_item) + l); *(field = (char *)dlg + sizeof(struct dialog) + 4 * sizeof(struct dialog_item)) = 0; if (def) { if (strlen(def) + 1 > l) memcpy(field, def, l - 1); else strcpy(field, def); } dlg->title = title; dlg->fn = dlg_pf_fn; if (tabcompl) dlg->fn2 = input_field_fn; dlg->udata = text; dlg->udata2 = data; dlg->y0 = 1; dlg->items[i=0].type = D_FIELD; dlg->items[i].gid = min; dlg->items[i].gnum = max; dlg->items[i].fn = check; dlg->items[i].history = history; dlg->items[i].dlen = l; dlg->items[i].maxl = (term->x * 2)/4; dlg->items[i].data = field; dlg->items[i].tabcompl = tabcompl; dlg->items[i].wrap = 0; if (tabcompl){ dlg->items[++i].type = D_BUTTON; dlg->items[i].gid = 0; dlg->items[i].fn = input_field_complete; dlg->items[i].dlen = 0; dlg->items[i].text = "F2"; dlg->items[i].udata = NULL; } dlg->items[i].wrap = 2; dlg->items[++i].type = D_BUTTON; dlg->items[i].gid = B_ENTER; dlg->items[i].fn = input_field_ok; dlg->items[i].dlen = 0; dlg->items[i].text = okbutton; dlg->items[i].udata = fn; dlg->items[++i].type = D_BUTTON; dlg->items[i].gid = B_ESC; dlg->items[i].fn = input_field_cancel; dlg->items[i].dlen = 0; dlg->items[i].text = cancelbutton; dlg->items[i].udata = cancelfn; dlg->items[i].align = AL_BUTTONS; dlg->items[i].wrap = 1; dlg->items[++i].type = D_END; add_to_ml(&ml, dlg, NULL); do_dialog(dlg, ml); } /* Sets the selected item to one that is visible.*/ void box_sel_set_visible(struct dialog_item_data *box_item_data, int offset) { struct dlg_data_item_data_box *box; int sel; box = (struct dlg_data_item_data_box *)(box_item_data->item->data); if (offset > box_item_data->item->gid || offset < 0) { return; } /*debug("offset: %d", offset);*/ sel = box->box_top + offset; if (sel > box->list_len) { box->sel = box->list_len - 1; } else { box->sel = sel; } } /* Moves the selected item [dist] thingies. If [dist] is out of the current range, the selected item is moved to the extreme (ie, the top or bottom) */ void box_sel_move(struct dialog_item_data *box_item_data, int dist) { struct dlg_data_item_data_box *box; int new_sel; int new_top; box = (struct dlg_data_item_data_box *)(box_item_data->item->data); new_sel = box->sel + dist; new_top = box->box_top; /* Ensure that the selection is in range */ if (new_sel < 0) new_sel = 0; else if (new_sel >= box->list_len) new_sel = box->list_len - 1; /* Ensure that the display box is over the item */ if ( new_sel >= (new_top + box_item_data->item->gid) ) { /* Move it down */ new_top = new_sel - box_item_data->item->gid + 1; #ifdef DEBUG if (new_top < 0) dbg("Newly calculated box_top is an extremely wrong value (%d). It should not be below zero.", new_top); #endif } else if ( new_sel < new_top ) { /* Move the display up (if necessary) */ new_top = new_sel; } box->sel = new_sel; box->box_top = new_top; } /* Displays a dialog box */ void show_dlg_item_box(struct dialog_data *dlg, struct dialog_item_data *box_item_data) { struct dlg_data_item_data_box *box; struct box_item *citem; /* Item currently being shown */ /* struct box_item *items; */ /* List of items to be shown */ int n; /* Index of item currently being displayed */ box = (struct dlg_data_item_data_box *)(box_item_data->item->data); /* FIXME: Counting here SHOULD be unnecessary */ n = 0; fill_area(box_item_data->x, box_item_data->y, box_item_data->l, box_item_data->item->gid, COLOR_DIALOG_FIELD); foreach (citem, box->items) { int len; /* Length of the current text field. */ len = strlen(citem->text); if (len > box_item_data->l) { len = box_item_data->l; } /* Is the current item in the region to be displayed? */ if ( (n >= box->box_top) && (n < (box->box_top + box_item_data->item->gid)) ) { print_text(box_item_data->x, box_item_data->y + n - box->box_top, len, citem->text, n == box->sel ? COLOR_DIALOG_BUTTON_SELECTED : COLOR_DIALOG_FIELD_TEXT); } n++; } box->list_len = n; } void errbox(char *text, int errcode, ...){ static char str[1026]; va_list l; va_start(l, errcode); if (errcode){ GString *gs = g_string_new(""); g_string_append_vprintf(gs, text, l); g_string_sprintfa(gs, "\n"); z_strerror(gs, errcode); g_string_sprintfa(gs, " (%d)", errcode); g_snprintf(str, 1024, "%s", gs->str); g_string_free(gs, TRUE); }else{ g_vsnprintf(str, 1024, text, l); } va_end(l); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, str, NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); } void dlg_pf_init(int phase, struct dialog_data *dlgd){ switch(phase){ case 0: dlgd->min = 0; dlgd->max = 0; dlgd->yy = -1; dlgd->ofs = 0; break; case 1: dlgd->w = dlgd->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (dlgd->w > dlgd->max) dlgd->w = dlgd->max; if (dlgd->w < dlgd->min) dlgd->w = dlgd->min; if (dlgd->w > dlgd->win->term->x - 2 * DIALOG_LB) dlgd->w = dlgd->win->term->x - 2 * DIALOG_LB; if (dlgd->w < 1) dlgd->w = 1; dlgd->rw = 0; dlgd->yy = -1; dlgd->ofs = 0; break; case 2: dlgd->w = dlgd->rw; dlgd->xw = dlgd->w + 2 * DIALOG_LB; dlgd->yw = dlgd->yy + 2 * DIALOG_TB; center_dlg(dlgd); if (dlgd->dlg->position_fn) dlgd->dlg->position_fn(dlgd); draw_dlg(dlgd); dlgd->yy = dlgd->y + DIALOG_TB + dlgd->dlg->y0; dlgd->ofs = 0; break; } } void dlg_pf_group(int phase, struct dialog_data *dlgd, int cnt){ int i; int nx = 0; /* now X coord */ switch(phase){ case 0: for (i=0; iitems[dlgd->ofs+i].item->type == D_CHECKBOX || dlgd->items[dlgd->ofs+i].item->type == D_CHECKBOX3) ? 4 : dlgd->items[dlgd->ofs+i].item->type == D_BUTTON ? strlen(_(dlgd->items[dlgd->ofs+i].item->text)) + 5 : dlgd->items[dlgd->ofs+i].item->dlen + 1; if (dlgd->items[dlgd->ofs+i].item->msg){ wx += strlen(_(dlgd->items[dlgd->ofs+i].item->msg)); } if (wx > dlgd->max) dlgd->max = wx; if (wx < dlgd->min) dlgd->min = wx; } break; case 1: for (i=0; iitems[dlgd->ofs+i]); int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(item->item->msg)) sl = strlen(_(item->item->msg)); else sl = -1; wx += sl; if (nx && nx + wx > dlgd->w) { nx = 0; dlgd->yy += 1; } if (nx + wx > dlgd->rw) if ((dlgd->rw = nx + wx) > dlgd->w) dlgd->rw = dlgd->w; nx += wx + 1; } //dlgd->yy++; break; case 2: for (i=0; iitems[dlgd->ofs+i]); int wx = (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3) ? 4 : item->item->type == D_BUTTON ? strlen(_(item->item->text)) + 5 : item->item->maxl ? item->item->maxl+1 : item->item->dlen + 1; /* widget width */ if (_(item->item->msg)) sl = strlen(_(item->item->msg)); else sl = -1; wx += sl; if (nx && nx + wx > dlgd->w) { nx = 0; dlgd->yy += 1; } if (item->item->msg){ print_text(dlgd->x + DIALOG_LB + nx + 4 * (item->item->type == D_CHECKBOX || item->item->type == D_CHECKBOX3), dlgd->yy, strlen(_(item->item->msg)), _(item->item->msg), COLOR_DIALOG_TEXT); } item->x = dlgd->x + DIALOG_LB + nx + (sl + 1) * (item->item->type != D_CHECKBOX && item->item->type != D_CHECKBOX3); item->y = dlgd->yy; if (item->item->type == D_FIELD || item->item->type == D_FIELD_PASS) { item->l = item->item->maxl ? item->item->maxl : item->item->dlen; stringlen=0; if (item->item->msg) stringlen = strlen(_(item->item->msg)); if (item->l > dlgd->w - nx - stringlen) item->l = dlgd->w - nx - stringlen; } nx += wx + 1; } //dlgd->yy++; break; } dlgd->ofs += cnt; } void dlg_pf_buttons(int phase, struct dialog_data *dlgd, int cnt){ switch(phase){ case 0: max_buttons_width(dlgd->win->term, dlgd->items + dlgd->ofs, cnt, &dlgd->max); min_buttons_width(dlgd->win->term, dlgd->items + dlgd->ofs, cnt, &dlgd->min); break; case 1: dlg_format_buttons(NULL, dlgd->win->term, dlgd->items + dlgd->ofs, cnt, 0, &dlgd->yy, dlgd->w, &dlgd->rw, dlgd->items[dlgd->ofs+cnt-1].item->align); break; case 2: dlg_format_buttons(dlgd->win->term, dlgd->win->term, dlgd->items + dlgd->ofs, cnt, dlgd->x + DIALOG_LB, &dlgd->yy, dlgd->w, NULL, dlgd->items[dlgd->ofs+cnt-1].item->align); break; } dlgd->ofs += cnt; } void dlg_pf_fn(struct dialog_data *dlgd) { int ph; int i,j; if (dlgd->dlg->fn2) dlgd->dlg->fn2(dlgd); j=0; for (ph = 0; ph < 3; ph++){ dlg_pf_init(ph, dlgd); for (i=0; i< dlgd->n; i++){ // char *names[]={"end", "check", "field", "pass", "butt", "box", "check3", "?", "?"}; // dbg("i=%d type=%d %s n=%d\n", i, dlgd->items[i].item->type, names[dlgd->items[i].item->type], dlgd->n); j++; if (!dlgd->items[i].item->wrap) continue; if (dlgd->items[i].item->align & AL_BUTTONS) dlg_pf_buttons(ph, dlgd, j); else dlg_pf_group(ph, dlgd, j); dlgd->yy += dlgd->items[i].item->wrap; j=0; } if (j>0){ if (dlgd->items[i].item->align & AL_BUTTONS) dlg_pf_buttons(ph, dlgd, j); else dlg_pf_group(ph, dlgd, j); dlgd->yy += dlgd->items[i].item->wrap; } } } static char *complete_file; static int filter_complete(const char *dir, const struct dirent *de){ int ret; if (strcmp((char *)de->d_name, ".") == 0) return 0; if (strcmp((char *)de->d_name, "..") == 0) return 0; ret = strncmp((char *)de->d_name, complete_file, strlen(complete_file)); return !ret; } void complete_choose(void *dir, void *unused){ /*dbg("menu_load_contest('%s')\n", dir);*/ safe_strncpy0(new_file, (char *)dir, MAX_STR_LEN); redraw_later(); } int do_tab_compl(struct dialog_item_data *di, int tabi){ char *path, *file, *slash; int i, n, max = 0; struct dirent **namelist=NULL; struct menu_item *mi = NULL; dbg("complete: %d '%s'\n", tabi, di->cdata); slash = strrchr(di->cdata, '/'); if (!slash) slash = strrchr(di->cdata, '\\'); if (slash){ if (di->cdata[0] == '~'){ char *p = g_strndup(di->cdata + 1 , slash - di->cdata - 1); path = g_strconcat(home_dir, "/", p, NULL); g_free(p); }else{ path = g_strndup(di->cdata, slash - di->cdata); } file = g_strdup(slash + 1); }else{ path = g_strdup("."); file = g_strdup(di->cdata); } dbg("path='%s' file='%s'\n", path, file); free_namelist(); complete_file = file; n = z_scandir(path, &namelist, filter_complete, z_scandir_alphasort); complete_file = NULL; dbg("n=%d\n", n); if (n <= 0) goto x; for (i=0; id_name); } dbg("\n"); if (n == 1){ char *p = g_strconcat(path, "/", (char*)namelist[0]->d_name, NULL); z_wokna(p); safe_strncpy0(di->cdata, p, di->item->dlen); di->cpos = strlen(di->cdata); g_free(p); }else{ if (!(mi = new_menu(3))) goto x; for (i=0; id_name; if (strlen(c)>max) max=strlen(c); add_to_menu(&mi, g_strdup(c), "", "", complete_choose, namelist[i]->d_name, 0); } // set_window_ptr(gses->win, (term->x-6-max)/2,(term->y-2-i)/2); do_menu(mi, NULL); } x:; g_free(path); g_free(file); free_namelist(); return 0; } tucnak-4.04/src/zstring.c0000644000175000017500000001176712460205606012317 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include #include #ifdef LEAK_DEBUG_LIST struct zstring *debug_zconcatesc(char *file, int line, char *s1, ...){ #else struct zstring *zconcatesc(char *s1, ...){ #endif va_list l; size_t len; char *d; char *s, *c; struct zstring *zs; va_start(l, s1); s = s1; len = 0; do { if (s != s1) len++; for (c = s; *c != '\0'; c++){ switch(*c){ case ';': case '\\': case '\r': case '\n': len += 2; break; default: len++; break; } } }while ((s = va_arg(l, char *)) != NULL); va_end(l); len++; #ifdef LEAK_DEBUG_LIST zs = debug_g_malloc(file, line, sizeof(struct zstring)); zs->str = d = debug_g_malloc(file, line, len); zs->file = file; zs->line = line; #else zs = g_malloc(sizeof(struct zstring)); zs->str = d = g_malloc(len); #endif va_start(l, s1); s = s1; len = 0; do { if (s != s1) *d++ = ';'; for (c = s; *c != '\0'; c++){ switch(*c){ case ';': *d++ = '\\'; *d++ = ';'; break; case '\\': *d++ = '\\'; *d++ = '\\'; break; case '\r': *d++ = '\\'; *d++ = 'r'; break; case '\n': *d++ = '\\'; *d++ = 'n'; break; default: *d++ = *c; break; } } }while ((s = va_arg(l, char *)) != NULL); va_end(l); *d = '\0'; return zs; } #ifdef LEAK_DEBUG_LIST struct zstring *debug_zstrdup(char *file, int line, const char *str){ #else struct zstring *zstrdup(const char *str){ #endif int len; struct zstring *zs; len = strlen(str); #ifdef LEAK_DEBUG_LIST zs = debug_g_malloc(file, line, sizeof(struct zstring)); zs->str = debug_g_malloc(file, line, len + 1); zs->file = file; zs->line = line; #else zs = g_malloc(sizeof(struct zstring)); zs->str = g_malloc(len + 1); #endif memcpy(zs->str, str, len + 1); return zs; } char *ztokenize(struct zstring *zstr, int first){ int backslash=0; int i; char c, *d, *buf; int len; if (first) zstr->tokenpos = 0; len = strlen(zstr->str + zstr->tokenpos) + zstr->tokenpos; if (zstr->tokenpos > len) return NULL; if (zstr->tokenpos < 0) return NULL; buf = d = zstr->str + zstr->tokenpos; for (i = zstr->tokenpos; i < len; i++){ c = zstr->str[i]; if (backslash){ backslash = 0; switch(c){ case '\\': case ';': break; case 'r': c = '\r'; break; case 'n': c = '\n'; break; default: /* error */ error("bad escape \\%c\n", c); break; } }else{ switch (c){ case '\\': backslash = 1; continue; case ';': zstr->tokenpos = i + 1; *d='\0'; return buf; default: break; } } *d++ = c; } zstr->tokenpos = -1; *d='\0'; return buf; } void zfree(struct zstring *zstr){ g_free(zstr->str); zstr->str = NULL; g_free(zstr); } int ztokens(struct zstring *zstr){ int backslash=0; int tokens=1; char *c; for (c = zstr->str; *c != '\0'; c++){ if (backslash){ backslash = 0; continue; } switch (*c){ case '\\': backslash = 1; break; case ';': tokens++; break; } } return tokens; } int zwrite(int fd, struct zstring *zs){ #ifdef Z_MSC_MINGW zinternal("zwrite unimplemented"); return -1; #else int ret; gchar *c; c = g_strconcat(zs->str, "\n", NULL); zfree(zs); ret = write(fd, c, strlen(c)); g_free(c); return ret; #endif } #if 0 int main(){ char *c; zchar *z; int i; c = zconcatesc("aa", ";", "", NULL); printf("c='%s'\n", c); z = zstrdup(c); printf("z='%s'\n", z); i = 0; for (c = ztokenize(z, 1); c != NULL; c = ztokenize(z, 0)){ printf("%d='%s'\n", i, c); i++; } zfree(z); return 0; } #endif tucnak-4.04/src/cwdaemon.c0000644000175000017500000013274512460207027012413 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "control.h" #include "cwdaemon.h" #include "davac4.h" #include "fifo.h" #include "inpout.h" #include "inputln.h" #include "main.h" #include "namedb.h" #include "ppdev.h" #include "qsodb.h" #include "rc.h" #include "session.h" #include "ssbd.h" #include "terminal.h" #include "trig.h" #include "tsdl.h" #include "ttys.h" #include "winkey.h" struct cwdaemon *cwda; struct cwdaemon *init_cwdaemon(void){ struct cwdaemon *cwda; int fds[2]; progress(VTEXT(T_INITIALIZING_CWPTT_CONTROL)); /* sound(880); sleep(1); sound(0); sleep(1); sound(1760); sleep(1); sound(0); sleep(1); */ cwda = g_new0(struct cwdaemon, 1); switch(cfg->cwda_type){ case CWD_PARPORT: #ifdef HAVE_LINUX_PPDEV_H /* ppdev.h */ cwda->init = parport_init; cwda->free = parport_free; cwda->reset = parport_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = parport_cw; cwda->ptt = parport_ptt; cwda->ssbway = parport_ssbway; cwda->back = cwdaemon_back; cwda->band = parport_band; #elif defined(Z_MSC_MINGW_CYGWIN) /* inpout.h */ cwda->init = parport_init; cwda->free = parport_free; cwda->reset = parport_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = parport_cw; cwda->ptt = parport_ptt; cwda->ssbway = parport_ssbway; cwda->back = cwdaemon_back; cwda->band = parport_band; #else log_addf(VTEXT(T_NO_PPDEV)); dbg("Support for ppdev/inpout isn't compiled in\n"); #endif break; case CWD_TTYS: cwda->init = ttys_init; cwda->free = ttys_free; cwda->reset = ttys_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = ttys_cw; cwda->ptt = ttys_ptt; cwda->ssbway = ttys_ssbway; cwda->back = cwdaemon_back; break; case CWD_DAVAC4: #ifdef Z_HAVE_LIBFTDI cwda->init = davac4_init; cwda->free = davac4_free; cwda->reset = davac4_reset; cwda->text = cwdaemon_text; cwda->sspeed = cwdaemon_speed; cwda->sweight = cwdaemon_weight; cwda->cw = davac4_cw; cwda->ptt = davac4_ptt; cwda->ssbway = davac4_ssbway; cwda->monitor = davac4_monitor; cwda->back = cwdaemon_back; cwda->band = davac4_band; MUTEX_INIT(cwda->ftdi); #else log_addf(VTEXT(T_NO_DAVAC4_SUPPORT)); dbg("Support for davac4 isn't compiled in, check for libftdi"); #endif break; case CWD_CWD: cwda->init = cwd_init; cwda->free = cwd_free; cwda->reset = cwd_reset; cwda->text = cwd_text; cwda->sspeed = cwd_speed; cwda->sweight = cwd_weight; cwda->cw = cwd_cw; cwda->ptt = cwd_ptt; cwda->ssbway = cwd_ssbway; cwda->echo = cwd_echo; cwda->band = cwd_band; // cwda->dtune = cwd_tune; break; case CWD_WINKEY: case CWD_WINKEYTCP: if (cfg->cwda_type == CWD_WINKEY) cwda->init = winkey_init_serial; else cwda->init = winkey_init_tcp; cwda->free = winkey_free; cwda->reset = winkey_reset; cwda->text = winkey_text; cwda->sspeed = winkey_speed; cwda->sweight = winkey_weight; cwda->cw = winkey_cw; cwda->ptt = winkey_ptt; cwda->ssbway = winkey_ssbway; cwda->dtune = winkey_tune; cwda->back = winkey_back; break; /* case CWD_WINKEY4: cwda->init = winkey4_init; cwda->free = winkey4_free; cwda->reset = winkey4_reset; cwda->text = winkey_text; cwda->sspeed = winkey_speed; cwda->sweight = winkey_weight; cwda->cw = winkey_cw; cwda->ptt = winkey_ptt; cwda->ssbway = winkey_ssbway; cwda->dtune = winkey_tune; cwda->back = winkey_back; #ifdef Z_HAVE_LIBFTDI cwda->ptt = davac4_ptt; cwda->ssbway = davac4_ssbway; cwda->monitor = davac4_monitor; cwda->band = davac4_band; MUTEX_INIT(cwda->ftdi); #endif break; */ } cwda->speed=cfg->cwda_speed; cwda->weight=cfg->cwda_weight; /*dbg("init_cwdaemon\n"); */ if (z_pipe(fds)) zinternal(VTEXT(T_CANT_CREATE_PIPE)); cwda->pipe_read=fds[0]; cwda->pipe_write=fds[1]; cwda->code=g_string_sized_new(100); cwda->played=g_string_sized_new(100); cwda->thread=g_thread_try_new("cwdaemon", cwdaemon_thread_func, (gpointer)cwda, NULL); if (cwda->init) cwda->init(cwda); /* cwdaemon_cw_string(cwda, "cq cq de ok1zia"); */ /*cwdaemon_cw_string(cwda, "cq"); */ return cwda; } void free_cwdaemon(struct cwdaemon *cwda){ char c; if (!cwda) return; progress(VTEXT(T_TERMINATING_CWDAEMON)); cwda->freeing = 1; cq_abort(1); c=0; z_pipe_write(cwda->pipe_write, &c, 1); dbg("join cwda...\n"); g_thread_join(cwda->thread); dbg("done\n"); z_pipe_close(cwda->pipe_write); z_pipe_close(cwda->pipe_read); g_string_free(cwda->code, 1); g_string_free(cwda->played, 1); if (cwda->free) cwda->free(cwda); g_free(cwda); cwda=NULL; } struct cwelem{ struct timeval tv; int on,last,ch; }; #define MAXCWQUEUE 20 static struct cwelem cwqueue[MAXCWQUEUE+1]; static int qi; static void cwenqueue(struct cwdaemon *cwda){ char s[256], *c, ch; int i; struct timeval tv; if (cwda->tune > 0){ gettimeofday(&tv, NULL); i = 0; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=1; cwqueue[i].last=0; cwqueue[i].ch=cwda->tune==2?'-':'.'; tv.tv_usec+=(cwda->tune==2?3:1)*(1200000/cwda->speed+cwda->weight*500); while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=' '; tv.tv_usec+=1200000/cwda->speed-cwda->weight*500; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=1; cwqueue[i].ch='$'; qi=0; return; } while(1){ ch=*cwda->code->str; if (!ch) { qi=-1; /*c = g_strdup_printf("CW;e;%s\n", cwda->played->str); ret = write(tpipe->threadpipe_write, c, strlen(c)); g_free(c);*/ zselect_msg_send(zsel, "%s;%s;%s", "CW", "e", cwda->played->str); g_string_truncate(cwda->played, 0); if (cwda->ptt && !cwda->hold_ptt) cwda->ptt(cwda, 0); return; } g_string_erase(cwda->code, 0, 1); if (ch != '\x09') g_string_append_c(cwda->played, ch); switch(ch){ case '\x09': strcpy(s, "\x09"); break; case ' ': strcpy(s, " "); break; case 'A': strcpy(s, ".-"); break; case 'B': strcpy(s, "-..."); break; case 'C': strcpy(s, "-.-."); break; case 'D': strcpy(s, "-.."); break; case 'E': strcpy(s, "."); break; case 'F': strcpy(s, "..-."); break; case 'G': strcpy(s, "--."); break; case 'H': strcpy(s, "...."); break; case 'I': strcpy(s, ".."); break; case 'J': strcpy(s, ".---"); break; case 'K': strcpy(s, "-.-"); break; case 'L': strcpy(s, ".-.."); break; case 'M': strcpy(s, "--"); break; case 'N': strcpy(s, "-."); break; case 'O': strcpy(s, "---"); break; case 'P': strcpy(s, ".--."); break; case 'Q': strcpy(s, "--.-"); break; case 'R': strcpy(s, ".-."); break; case 'S': strcpy(s, "..."); break; case 'T': strcpy(s, "-"); break; case 'U': strcpy(s, "..-"); break; case 'V': strcpy(s, "...-"); break; case 'W': strcpy(s, ".--"); break; case 'X': strcpy(s, "-..-"); break; case 'Y': strcpy(s, "-.--"); break; case 'Z': strcpy(s, "--.."); break; case '0': strcpy(s, "-----"); break; case '1': strcpy(s, ".----"); break; case '2': strcpy(s, "..---"); break; case '3': strcpy(s, "...--"); break; case '4': strcpy(s, "....-"); break; case '5': strcpy(s, "....."); break; case '6': strcpy(s, "-...."); break; case '7': strcpy(s, "--..."); break; case '8': strcpy(s, "---.."); break; case '9': strcpy(s, "----."); break; case '?': strcpy(s, "..--.."); break; case '/': strcpy(s, "-..-."); break; case ',': strcpy(s, "--..--"); break; case '=': strcpy(s, "-...-"); break; case '@': strcpy(s, ".--.-."); break; case '-': strcpy(s, "-....-"); break; case '+': strcpy(s, ".-.-."); break; case '.': strcpy(s, ".-.-.-"); break; case ';': strcpy(s, "-.-.-."); break; case '!': strcpy(s, ".-..."); break; default: continue; } break; } dbg("enqueue %c '%s' played='%s'\n", ch, s, cwda->played->str); gettimeofday(&tv, NULL); i=0; for (c=s; ; c++){ if (*c=='.'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=1; cwqueue[i].last=0; cwqueue[i].ch='.'; tv.tv_usec+=(24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=' '; tv.tv_usec+=(24000 * (100 - cwda->weight)) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } if (*c=='-'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=1; cwqueue[i].last=0; cwqueue[i].ch='-'; tv.tv_usec+=(3 * 24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=' '; tv.tv_usec+=(24000 * (100 - cwda->weight)) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } if (*c=='\0'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=2; cwqueue[i].last=0; cwqueue[i].ch='0'; tv.tv_usec+=(2 * 24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; break; } if (*c==' '){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch='_'; tv.tv_usec+=(5 * 24000 * cwda->weight) / cwda->speed; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } if (*c=='\x09'){ cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=0; cwqueue[i].ch=*c; tv.tv_usec+=1000*cfg->cwda_leadin; while (tv.tv_usec>=1000000) {tv.tv_usec-=1000000;tv.tv_sec++; } i++; } } cwqueue[i].tv.tv_sec=tv.tv_sec; cwqueue[i].tv.tv_usec=tv.tv_usec; cwqueue[i].on=0; cwqueue[i].last=1; cwqueue[i].ch='$'; //dbg("ENQ qi=%d\n", qi); qi=0; /* for(i=0;;i++){ dbg(" %2d %d %2d.%06d\n", i, cwqueue[i].on, cwqueue[i].tv.tv_sec, cwqueue[i].tv.tv_usec); if (cwqueue[i].last) break; }*/ } gpointer cwdaemon_thread_func(gpointer data){ fd_set rd; struct timeval *tv, interval, now; int ret, i; char buf[1030]; struct cwdaemon *cwda; cwda=(struct cwdaemon*)data; zg_thread_set_name("Tucnak cwdaemon"); zg_thread_set_priority(2); qi=-1; while(1){ FD_ZERO(&rd); FD_SET(cwda->pipe_read, &rd); if (qi<0){ tv=NULL; /*dbg("\nselect()\n");*/ }else{ /*dbg("\n");*/ gettimeofday(&interval, NULL); /*dbg("now=%02d.%06d cwqueue[%d]=%02d.%06d\n",interval.tv_sec, interval.tv_usec, qi, cwqueue[qi].tv.tv_sec, cwqueue[qi].tv.tv_usec); */ interval.tv_usec=cwqueue[qi].tv.tv_usec-interval.tv_usec; interval.tv_sec=cwqueue[qi].tv.tv_sec-interval.tv_sec; while(interval.tv_usec<0) { interval.tv_usec+=1000000; interval.tv_sec--; } if (interval.tv_sec<0) {interval.tv_sec=0;interval.tv_usec=0;} tv=&interval; /*dbg("select(%2d.%06d)\n", interval.tv_sec%100, interval.tv_usec); */ } ret=select(cwda->pipe_read+1, &rd, NULL, NULL, tv); if (ret<0){ if (errno==EINTR) continue; } gettimeofday(&now, NULL); if (!ret){ /* timeout */ /* dbg("timeout\n");*/ goto check_queue; } if (FD_ISSET(cwda->pipe_read, &rd)){ /*dbg("event on fd\n");*/ ret=z_pipe_read(cwda->pipe_read, buf, 1024); if (ret<=0){ //strcpy(s, "CW;!\n"); /*dbg("%s\n", s);*/ //ret = write(tpipe->threadpipe_write, s, strlen(s)); zselect_msg_send(zsel, "%s;%s", "CW", "!"); break; } buf[ret]='\0'; //dbg("cwdaemon_thread_func: read %d '", ret); //for (i=0;i=' ') { if (cwda->code->len == 0 && qi<0){ if (cwda->ptt && !cwda->hold_ptt) cwda->ptt(cwda, 1); if (!cwda->hold_ptt) g_string_append_c(cwda->code, '\x09'); } g_string_append_c(cwda->code, z_char_uc(buf[i])); continue; } switch(buf[i]){ case '\0': if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); return NULL; case 1: //dbg("cwenqueue 3\n"); cwenqueue(cwda); break; case 3: if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); qi=-1; g_string_truncate(cwda->code, 0); g_string_truncate(cwda->played, 0); break; case 8: if (cwda->code->len > 0) g_string_truncate(cwda->code, cwda->code->len - 1); break; default: break; } } if (qi<0 && *cwda->code->str){ //dbg("cwenqueue 1 tune=%d qi=%d\n", cwda->tune, qi); cwenqueue(cwda); }else{ continue; } } check_queue: if (qi<0) continue; if (cwqueue[qi].last){ //dbg("cwenqueue 2 qi=%d\n", qi); cwenqueue(cwda); goto check_queue; } if (cwqueue[qi].tv.tv_sec>now.tv_sec) continue; if (cwqueue[qi].tv.tv_usec==now.tv_sec){ if (cwqueue[qi].tv.tv_usec>now.tv_usec) continue; } //dbg("playing %d %c\n", qi, cwqueue[qi].ch); if (cwqueue[qi].on==1){ if (cwda->cw) cwda->cw(cwda, 1); if (cfg->cwda_spk) sound(800); }else{ if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); } qi++; continue; } if (cwda->cw) cwda->cw(cwda, 0); if (cfg->cwda_spk) sound(0); return NULL; } void cwdaemon_read_handler(struct cwdaemon *cwda, char *s, char *played){ char *c; if (gses->last_cq_timer_id){ /* CQ was aborted while playing */ zselect_timer_kill(zsel, gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } dbg("cwdaemon_read_handler rcvd: '%s' played='%s'\n", s, played); switch(s[0]){ case '!': /* error */ cq_abort(SSBDRECORDING); /*abort recording only if it is in progress */ log_addf("cwdaemon: %s", s+1); break; case 'e': /* cw text played */ if (aband){ dbg("cwdaemon_read_handler: call_played='%s' agcall=%d iscall='%d'\n", aband->call_played, aband->agcall, aband->iscall); if (aband->iscall){ aband->iscall = 0; dbg("set iscall=%d\n", aband->iscall); if (!aband->call_played){ aband->call_played = z_strdup_trim(played); if (aband->call_played){ c = strchr(aband->call_played, ' '); if (c) *c = '\0'; } dbg("set call_played='%s'\n", aband->call_played); //aband->iscall = 0; //dbg("set iscall=%d\n", aband->iscall); if (ctest->runmode && gses->mode == MOD_CW_CW && cfg->cwda_autgive > 0 && aband->agcall){ struct cq *cq = get_cq_by_number(cfg->cqs, 1); if (cq){ cq->stripcall = 1; dbg("%s: cq_run_by_number(1)\n", __FUNCTION__); cq_run_by_number(1); // 5NN $MX cq->stripcall = 0; aband->agcall = 0; dbg("cwdaemon_read_handler: set agcall=%d\n", aband->agcall); } break; } } } } if (!gses || !gses->last_cq) break; /* zdravime uW 2004 :-) */ if (gses->last_cq->cw_repeat || gses->extcq > 0) cq_cw_wait(gses->last_cq); else{ gses->last_cq->type=MOD_NONE; cq_abort(SSBDRECORDING); } peer_tx(aband, 0); redraw_later(); break; case 'b': /* paddle break in */ if (gses->last_cq) cq_abort(SSBDRECORDING); break; } } void cq_cw_wait(struct cq *cq){ int remains; // cba_t cba; dbg("cq_cw_wait\n"); #ifdef HAVE_SNDFILE ssbd_abort(gssbd,0); #endif cwdaemon_ptt(cwda, 0, 0); cwdaemon_ssbway(cwda, 0); /* microphone */ peer_tx(aband, 0); remains = cq->cw_ts*100; if (gses->extcq > 0){ remains = cq_remains_run(); } dbg("installing wait timer (%d ms)\n", remains); gses->last_cq_timer_id = zselect_timer_new(zsel, remains, cq_timer_cw2, cq); } static void cwdaemon_send_defaults(struct cwdaemon *cwda, int speed){ if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); if (cwda->sweight) cwda->sweight(cwda, cwda->weight); if (cfg->cwda_type == CWD_CWD) cwd_tone(cwda, cfg->cwda_spk?800:0); } void cwdaemon_abort(struct cwdaemon *cwda){ if (!cwda) return; //dbg("cwdaemon_abort(cwda=%p)\n", cwda); cwda->hold_ptt = 0; if (cwda->reset) cwda->reset(cwda); cwda->tune = 0; z_pipe_write(cwda->pipe_write, "\x03", 1); //dbg("cwdaemon_abort returned\n"); } /* called from SEGV handler */ void cwdaemon_safe_abort(struct cwdaemon *cwda){ if (!cwda) return; if (cwda->reset) cwda->reset(cwda); } int cwdaemon_text(struct cwdaemon *cwda, char *text){ if (!cwda) return 0; dbg("cwdaemon_cw_string('%s')\n", text); z_pipe_write(cwda->pipe_write, text, strlen(text)); return 0; } void cwdaemon_ptt(struct cwdaemon *cwda, int ptt, int hold_ptt){ if (!cwda || !cwda->ptt) return; /*dbg("ptt %d\n", ptt);*/ cwda->hold_ptt = hold_ptt; cwda->ptt(cwda, ptt); if (cwda->hold_ptt) g_string_append_c(cwda->code, '\x09'); #ifdef HAVE_HAMLIB trigs_set_ptt(gtrigs, ptt ? RIG_PTT_ON : RIG_PTT_OFF); #endif } /* 0=microphone, 1=soundcard */ void cwdaemon_ssbway(struct cwdaemon *cwda, int ssbway){ dbg("cwdaemon_ssbway(%d %s)\n", ssbway, ssbway ? "soundcard": "microphone"); if (!cwda || !cwda->ssbway) return; cwda->ssbway(cwda, ssbway); } int cwdaemon_speed(struct cwdaemon *cwda, int wpm){ if (!cwda) return 0; cwda->speed=wpm; return 0; } void cwdaemon_qrq(struct cwdaemon *cwda, int qrq){ if (!cwda) return; if (cwda->speed+qrq > cfg->cwda_maxwpm) cwda->speed = cfg->cwda_maxwpm; else cwda->speed+=qrq; if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); } void cwdaemon_qrs(struct cwdaemon *cwda, int qrs){ if (!cwda) return; if (cwda->speed-qrs < cfg->cwda_minwpm) cwda->speed = cfg->cwda_minwpm; else cwda->speed-=qrs; if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); } int cwdaemon_weight(struct cwdaemon *cwda, int weight){ if (!cwda) return 0; cwda->weight=weight; return 0; } void cwdaemon_tune(struct cwdaemon *cwda, int tune){ if (!cwda) return; dbg("cwdaemon_tune(%d)\n", tune); cwda->tune = tune; if (cwda->dtune) { cwda->dtune(cwda, tune); return; } if (tune>0) z_pipe_write(cwda->pipe_write, "\x01", 1); else cwdaemon_abort(cwda); } int cwdaemon_back(struct cwdaemon *cwda){ dbg("cwdaemon_back\n"); z_pipe_write(cwda->pipe_write, "\x08", 1); return 0; } int cwdaemon_band(struct cwdaemon *cwda, int bandsw){ if (!cwda || !cwda->band) return 0; cwda->band(cwda, bandsw); return 0; } /*********** external cwdaemon ***********************************/ int cwd_init(struct cwdaemon *cwda){ struct sockaddr_in sin; cwda->sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (cwda->sock < 0) goto err; if (z_sock_reuse(cwda->sock, 1)){ dbg("Can't set SO_REUSEADDR\n"); goto err; } if (z_sock_nonblock(cwda->sock, 1)){ dbg("Can't set O_NONBLOCK\n"); goto err; } memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(cfg->cwda_udp_port); if (!cfg->cwda_hostname) cfg->cwda_hostname = g_strdup(""); inet_aton(cfg->cwda_hostname, &sin.sin_addr); if (connect(cwda->sock, (struct sockaddr *)&sin, sizeof(sin))){ dbg("Can't connect\n"); goto err; } zselect_set(zsel, cwda->sock, cwd_read_handler, NULL, NULL, cwda); cwdaemon_send_defaults(cwda, cwda->speed); return 0; err:; if (cwda->sock>=0) closesocket(cwda->sock); cwda->sock = -1; return 1; } int cwd_free(struct cwdaemon *cwda){ dbg("cwd_free(%p) sock=%d\n", cwda, cwda?cwda->sock:-1234); if (cwda->sock>=0) { cwdaemon_abort(cwda); zselect_set(zsel, cwda->sock, NULL, NULL, NULL, NULL); closesocket(cwda->sock); } return 0; } void cwd_read_handler(void *arg){ char s[1024]; struct sockaddr_in sin; socklen_t socklen; int rcvd; struct cwdaemon *cwda; dbg("cwd_read_handler\n"); cwda = (struct cwdaemon *)arg; #if 0 if (!ctest) { /* we must clear kernel queue */ recvfrom(cwda->sock, s, sizeof(s)-1, 0, (struct sockaddr *)&sin, &socklen); return; } #endif memset(s, 0, sizeof(s)); socklen = sizeof(sin); rcvd=recvfrom(cwda->sock, s, sizeof(s)-1, 0, (struct sockaddr *)&sin, &socklen); /*dbg(" received '%s' = %d last_cq_timer_id=%d \n", s, rcvd, ctest->last_cq_timer_id);*/ if (rcvd<=0) return; dbg(" rcvd: '%s'\n", s); switch(s[0]){ case '!': /* error */ log_addf("cwdaemon: %s", s+1); zselect_msg_send(zsel, "%s;%s", "CW", "!"); //ret = write(tpipe->threadpipe_write, "CW;!\n", 5); break; case 'h': /* cw text played */ dbg("cwdaemon text played\n"); zselect_msg_send(zsel, "%s;%s", "CW", "e"); //ret = write(tpipe->threadpipe_write, "CW;e\n", 5); break; } } int cwd_reset(struct cwdaemon *cwda){ if (!cwda || cwda->sock<0) return 0; send(cwda->sock, "\0330", 3, 0); /* reset */ return 0; } int cwd_text(struct cwdaemon *cwda, char *text){ if (!cwda || cwda->sock<0) return 0; send(cwda->sock, text, strlen(text)+1, 0); /* reset */ return 0; } int cwd_cw(struct cwdaemon *cwda, int onoff){ return 0; } int cwd_ptt(struct cwdaemon *cwda, int onoff){ char s[16]; if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033a%d", onoff); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_ssbway(struct cwdaemon *cwda, int onoff){ char s[16]; if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033b%d", onoff); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_echo(struct cwdaemon *cwda){ char s[16]; return 0; // corruptes playing if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033h%d", -1); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_speed(struct cwdaemon *cwda, int wpm){ char s[16]; if (cwda->sock<0) return 0; /*dbg("speed=%d\n", wpm);*/ sprintf(s,"\0332%d", wpm); send(cwda->sock, s, strlen(s)+1, 0); return 0; } int cwd_weight(struct cwdaemon *cwda, int weight){ char s[16]; if (cwda->sock<0) return 0; // cwdaemon: Tmark = 1200000/wpm + 500 * weightC // tucnak, winkey: Tmark = 24000 * weightT / wpm // ------------------------------------------------------ // 1200000 / wpm + 500 * weightC = 24000 * weightT / wpm // *wpm // 1200000 + 500 * weightC * wpm = 24000 * weightT // :500 // weightC * wpm = 48 * weightT - 24000 // :wpm // weightC = (48 * weightT - 24000 ) / wpm // ----------------------------------------------------- // 24000 * weightT = 1200000 + 500 * weightC * wpm // :24000 // weightT = 50 + weightC * wpm / 48 sprintf(s,"\0337%d", (48 * weight - 24000) / cwda->speed ); send(cwda->sock, s, strlen(s)+1, 0); return 0; } void cwd_tone(struct cwdaemon *cwda, int tone){ char s[16]; if (cwda->sock<0) return; dbg("TONE\n"); sprintf(s,"\0333%d", tone); send(cwda->sock, s, strlen(s)+1, 0); } /*int cwd_tune(struct cwdaemon *cwda, int onoff){ char s[16]; if (!cwda || cwda->sock<0) return 0; sprintf(s,"\033a%d", onoff); send(cwda->sock, s, strlen(s)+1, 0); return 0; } */ int cwd_band(struct cwdaemon *cwda, int bandsw){ char s[16]; if (cwda->sock<0) return 0; dbg("cwd_band(%d)\n", bandsw); sprintf(s,"\033e%d", bandsw); send(cwda->sock, s, strlen(s)+1, 0); return 0; } /*********** CQ ***********************************/ struct cq *init_cq(void){ struct cq *cq; cq = g_new0(struct cq, 1); g_ptr_array_add(cfg->cqs, cq); return cq; } struct cq *get_cq_by_number(GPtrArray *cqs, int nr){ struct cq *cq; int i; for (i=0; ilen; i++){ cq = (struct cq *)g_ptr_array_index(cqs, i); if (cq->nr==nr) return cq; } return NULL; } void free_cq (struct cq *cq){ if (cq->cw_str) g_free(cq->cw_str); if (cq->ssb_file) g_free(cq->ssb_file); g_free(cq); } /**************** CW *************************/ int cq_run_cw(struct cq *cq){ gchar *raw; unsigned int remains, brk; dbg("cq_run_cw\n"); #ifdef HAVE_SNDFILE ssbd_abort(gssbd,1); /*aborts playing or recording */ #endif cq->type=MOD_CW_CW; cwdaemon_ssbway(cwda, 1); /* soundcard but here to allow CQ TX on both bands */ redraw_later(); if (!cq->cw_str) { return -1; } raw = convert_cq(cq); dbg("\ncw_run_cq '%s' (extcq %d)\n", raw, gses->extcq); if (!raw) return -1; if (gses->extcq > 0){ remains = cq_remains_run(); brk = cq_remains_brk(); if (gses->extcq_break_timer_id) zselect_timer_kill(zsel, gses->extcq_break_timer_id); gses->extcq_break_timer_id = zselect_timer_new(zsel, brk, cq_timer_brk, NULL); dbg(" remains=%d brk=%d\n", remains, brk); if (remains > 0){ cq_cw_wait(cq); goto x; } } if (!cq->stripcall){ if (cq->cw_speed) cwdaemon_send_defaults(cwda, cq->cw_speed); else cwdaemon_send_defaults(cwda, cwda->speed); }else{ if (cwda->text) cwda->text(cwda, " "); } if (cwda->text) cwda->text(cwda, raw); if (cwda->echo) cwda->echo(cwda); peer_tx(aband, 2); gses->last_cq = cq; gses->last_cq_timer_id = 0; x:; g_free(raw); return 0; } void cq_timer_cw2(void *cq){ dbg("cq_timer_cw2\n"); cq_run_cw((struct cq *)cq); } void cq_timer_brk(void *cq){ gses->extcq_break_timer_id = 0; dbg("cq_timer_brk\n"); cwdaemon_abort(cwda); cq_cw_wait(gses->last_cq); } /*************** SSB *************************/ int cq_run_ssb(struct cq *cq){ #if defined(HAVE_SNDFILE) || defined(Z_ANDROID) int ret = 0; dbg("cq_run_ssb\n"); cq->type=MOD_SSB_SSB; cwdaemon_ptt(cwda, 1, 0); cwdaemon_ssbway(cwda, 1); /* soundcard */ #ifdef Z_ANDROID char *filename = convert_esc(cq->ssb_file, NULL, CE_NONE, time(NULL)); if (!filename) return -1; zandroid_play_wav(filename); #else zg_free0(gssbd->pfilename); gssbd->pfilename=convert_esc(cq->ssb_file, NULL, CE_NONE, time(NULL)); if (!gssbd->pfilename) return -1; ret=ssbd_play_file(gssbd, gssbd->pfilename); #endif gses->last_cq = cq; gses->last_cq_timer_id = 0; peer_tx(aband, 2); redraw_later(); return ret; #else log_adds("Tucnak is compiled without libsndfile, no SSB CQ available"); #endif } #if defined(HAVE_SNDFILE) || defined(Z_ANDROID) void cq_ssb_wait(struct cq *cq){ /*dbg("cq_ssb_wait\n");*/ #ifdef HAVE_SNDFILE ssbd_abort(gssbd,0); #endif cwdaemon_ptt(cwda, 0, 0); cwdaemon_ssbway(cwda, 0); /* microphone */ peer_tx(aband, 0); gses->last_cq_timer_id = zselect_timer_new(zsel, cq->ssb_ts*100, cq_timer_ssb2, cq); } void cq_timer_ssb2(void *cq){ /*dbg("cq_timer_ssb2\n");*/ cq_run_ssb((struct cq *)cq); } #endif /****************** common **********************/ int cq_run_by_number(int no){ int ret = 0; struct cq *cq; dbg("cq_run_by_number(%d), mode=%s\n", no, get_mode()==MOD_CW_CW?"CW":"SSB"); if (no == -1 && get_mode() == MOD_CW_CW){ cq = gses->ac_cq; }else{ if (no<0 || no>=cfg->cqs->len) return -1; cq = (struct cq *)g_ptr_array_index(cfg->cqs, no); } if (!cq->stripcall){ cq_abort(1); } /*if (gses->last_cq_timer_id0){ zselect_timer_kill(zsel, gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } */ if (get_mode() == MOD_CW_CW){ /*dbg(" speed=%d repeat=%d ts=%d '%s'\n", cq->cw_speed, cq->cw_repeat, cq->cw_ts, cq->cw_allowifundef, cq->cw_str);*/ ret=cq_run_cw(cq); }else if (get_mode() == MOD_SSB_SSB){ /*dbg(" repeat=%d ts=%d '%s'\n", cq->ssb_repeat, cq->ssb_ts, cq->ssb_file);*/ ret=cq_run_ssb(cq); }else ret=-1; if (ret!=0) cq_abort(SSBDRECORDING); return ret; } int cq_abort(int abort_rec){ /* dbg(" cq_abort(%d)\n", abort_rec);*/ if (gses) gses->last_cq=NULL; if (gses && gses->last_cq_timer_id){ zselect_timer_kill(zsel, gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } if (gses && gses->extcq_break_timer_id){ zselect_timer_kill(zsel, gses->extcq_break_timer_id); gses->extcq_break_timer_id = 0; } cwdaemon_abort(cwda); redraw_later(); if (!abort_rec && ssbd_recording(gssbd)) return 0; ssbd_abort(gssbd,abort_rec); return 0; } static gchar *conv_nr(gchar *str){ char *c; static char out[20]; safe_strncpy0(out, str, 20); for (c=out; *c=='0'; c++) *c='t'; return out; } static gchar *conv_rst(gchar *str){ char *c; static char out[20]; safe_strncpy0(out, str, 20); for (c=out; *c!='\0';c++){ if (*c=='9') *c='n'; } return out; } /* convert $XX to string */ /* /home/ja/ssbd/tmp/rec/$N_%Y%m%d_%H%M%S.wav */ #define SFT_LEN 1024 gchar *convert_esc(gchar *format, int *undef, int flags, time_t now){ GString *gs; char *c, *ret, *c2, *c3; int dummyint; struct tm utc; char sft_buf[SFT_LEN+1]; if (!undef) undef=&dummyint; *undef=0; if (now == 0) time(&now); gmtime_r(&now, &utc); if (!format) format=""; strftime(sft_buf, SFT_LEN, format, &utc); gs = g_string_new(""); if (flags&CE_ONLY_STRFTIME){ g_string_append(gs, sft_buf); goto x; } for (c=sft_buf; *c!='\0'; c++){ if (*c=='~' && c==sft_buf){ g_string_append(gs, home_dir); continue; } if (*c!='$') { g_string_append_c(gs, *c); continue; } c++; switch (z_char_lc(*c)){ case '\0': goto brk2; break; case '$': g_string_append_c(gs, '$'); break; case 'b': // dbg("callsign='%s' call_played='%s'\n", TMPQ.callsign, aband->call_played); if (aband) dbg("convert_esc1: call_played='%s'\n", aband->call_played); if (ctest && TMPQ.callsign && aband->call_played != NULL && strcmp(TMPQ.callsign, aband->call_played) != 0){ g_string_append(gs, TMPQ.callsign); //zg_free0(aband->call_played); //aband->call_played = g_strdup(TMPQ.callsign); //dbg("convert_esc2: set call_played='%s'\n", aband->call_played); //aband->iscall = 1; //dbg("convert_esc2: set iscall=%d\n", aband->iscall); } break; case 'c': if (ctest && TMPQ.callsign) { g_string_append(gs, TMPQ.callsign); if (!strcasecmp(TMPQ.callsign, "O""K""1""Z""I""A")) g_string_append(gs, " ""a""h""o""j"); //zg_free0(aband->call_played); //aband->iscall = 1; //dbg("convert_esc3: set iscall=%d\n", aband->iscall); //aband->call_played = g_strdup(TMPQ.callsign); //dbg("convert_esc3: set call_played='%s'\n", aband->call_played); }else{ *undef=1; } break; case 'd': if (ctest) g_string_append (gs, ctest->cdate); else g_string_append(gs, "00000000"); break; case 'e': #ifdef HAVE_SNDFILE if (gssbd->code) g_string_append(gs, "code"); #endif break; case 'i': c2 = g_strdup(INPUTLN(aband)->cdata); for (c3=c2;*c3!='\0';c3++) if (*c3=='.') *c3='?'; g_string_append(gs, c2); g_free(c2); break; case 'j': if (ctest && TMPQ.callsign) { char *name = find_name_by_call(namedb, TMPQ.callsign); if (name) g_string_append(gs, name); }else{ *undef = 1; } break; break; case 'n': if (ctest && TMPQ.qsonrr) g_string_append(gs, conv_nr(TMPQ.qsonrr)); else *undef=1; break; case 'o': if (aband && aband->operator_) g_string_append(gs, aband->operator_); else if (cfg->pcall) g_string_append(gs, cfg->pcall); else *undef=1; break; case 'r': if (ctest && TMPQ.rstr) g_string_append(gs, conv_rst(TMPQ.rstr)); else *undef=1; break; case 's': #ifdef HAVE_SNDFILE g_string_sprintfa(gs, "%d", gssbd->serno); #endif break; case 't': if (ctest) g_string_append(gs, ctest->directory); else g_string_append_printf(gs, "%s/00000000", tucnak_dir); break; case 'v': #ifdef HAVE_SNDFILE if (gssbd->callsign) { char *d; for (d=gssbd->callsign; *d!='\0'; d++){ if (*d=='/') g_string_append_c(gs, '_'); else g_string_append_c(gs, *d); } } else *undef=1; #endif break; case 'w': if (ctest && TMPQ.locator) g_string_append(gs, TMPQ.locator); else *undef=1; break; case 'x': if (ctest && TMPQ.exc) g_string_append(gs, TMPQ.exc); else *undef=1; break; case 'm': c++; switch(z_char_lc(*c)){ case '\0': goto brk2; break; case 'c': if (ctest && ctest->pcall) g_string_append(gs, ctest->pcall); else if (cfg->pcall) g_string_append(gs, cfg->pcall); else *undef=1; break; case 'n': if (ctest && TMPQ.qsonrs){ if (ctest->qsoglob){ gchar *c; c = g_strdup_printf("%03d", ctest->allqsos->len+1); g_string_append(gs, conv_nr(c)); g_free(c); }else{ g_string_append(gs, conv_nr(TMPQ.qsonrs)); } }else{ *undef=1; } break; case 'r': if (ctest && TMPQ.rsts) g_string_append(gs, conv_rst(TMPQ.rsts)); else *undef=1; break; case 'w': if (ctest && ctest->pwwlo) g_string_append(gs, ctest->pwwlo); else if (cfg->pwwlo) g_string_append(gs, cfg->pwwlo); else *undef=1; break; case 'x': if (ctest && ctest->pexch) g_string_append(gs, ctest->pexch); else if (cfg->pexch) g_string_append(gs, cfg->pexch); else *undef=1; break; } break; } brk2:; } x:; ret = g_strdup(gs->str); ret = z_optimize_path(ret); g_string_free(gs, TRUE); return ret; } gchar *convert_cq(struct cq *cq){ gchar *ret; int undef; char *c, *d; c = cq->cw_str; // dbg("stripcall=%d c='%s'\n", cq->stripcall, c); if (cq->stripcall){ d = strstr(c, "$C"); if (d != NULL) c += strlen("$C"); while (*c==' ') c++; } ret=convert_esc(c, &undef, CE_NONE, time(NULL)); if (!cq->cw_allowifundef && undef){ g_free(ret); return NULL; } return(ret); } #define FREE_Cx if (c1) {mem_free(c1); c1=NULL;}\ if (c2) {mem_free(c2); c2=NULL;}\ if (c3) {mem_free(c3); c3=NULL;}\ if (c4) {mem_free(c4); c4=NULL;}\ if (c5) {mem_free(c5); c5=NULL;} void menu_runmode(void *arg){ runmode(1); } void menu_spmode(void *arg){ runmode(0); } void runmode(int run){ if (!ctest) return; ctest->runmode = run; } int cq_remains_run(void){ int remains; struct timeval tv; gettimeofday(&tv, NULL); switch (gses->extcq){ case EC_ODD: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); if (remains < 60000) remains = 0; else remains -= 60000; break; case EC_EVEN: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); if (remains >= 60000) remains = 0; break; case EC_1ST: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); if (remains >= 30000) remains = 0; break; case EC_2ND: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); if (remains < 30000) remains = 0; else remains -= 30000; break; default: remains = 0; break; } return remains; } int cq_remains_brk(void){ int remains; struct timeval tv; gettimeofday(&tv, NULL); switch (gses->extcq){ case EC_ODD: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); break; case EC_EVEN: remains = 120000 - ((tv.tv_sec % 120) * 1000 + tv.tv_usec / 1000); if (remains >= 60000) remains -= 60000; else remains += 60000; break; case EC_1ST: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); if (remains >= 30000) remains -= 30000; else remains += 30000; break; case EC_2ND: remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec / 1000); break; default: remains = 0; break; } return remains; } static int ac_cq_i1 = 0; static int ac_cq_i2 = 0; static char *ac_txts[] = { "$C $MC", "$MR", "$MN", "$MR $MN", "$MW", "RRRR 73", NULL }; void ac_cq3(void *arg){ enum extcq conv[4] = {EC_1ST, EC_2ND, EC_ODD, EC_EVEN}; //log_addf("ac_cq3 %d", cba.int_); ac_cq_i2 = GPOINTER_TO_INT(arg); if (!gses) return; gses->extcq = conv[GPOINTER_TO_INT(arg)]; gses->ac_cq->cw_str = ac_txts[ac_cq_i1]; cq_run_by_number(-1); } void ac_cq2(void *arg){ struct menu_item *mi = NULL; //log_addf("ac_cq2 %d", cba.int_); ac_cq_i1 = GPOINTER_TO_INT(arg); if (!(mi = new_menu(1))) return; add_to_menu(&mi,CTEXT(T_1ST), CTEXT(T_HK_1ST), CTEXT(T_HK_1ST), MENU_FUNC ac_cq3, GINT_TO_POINTER(0), 0); add_to_menu(&mi,CTEXT(T_2ND), CTEXT(T_HK_2ND), CTEXT(T_HK_2ND), MENU_FUNC ac_cq3, GINT_TO_POINTER(1), 0); add_to_menu(&mi,CTEXT(T_ODD), CTEXT(T_HK_ODD), CTEXT(T_HK_ODD), MENU_FUNC ac_cq3, GINT_TO_POINTER(2), 0); add_to_menu(&mi,CTEXT(T_EVEN), CTEXT(T_HK_EVEN), CTEXT(T_HK_EVEN), MENU_FUNC ac_cq3, GINT_TO_POINTER(3), 0); do_menu_selected(mi, NULL, ac_cq_i2); } void ac_cq(void){ struct menu_item *mi = NULL; int i, max=0; if (!(mi = new_menu(3))) return; for (i=0; ac_txts[i]!=NULL; i++){ add_to_menu(&mi,g_strdup(ac_txts[i]),"", "", MENU_FUNC ac_cq2, GINT_TO_POINTER(i), 0); if (strlen(ac_txts[i])>max) max = strlen(ac_txts[i]); } set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu_selected(mi, NULL, ac_cq_i1); } tucnak-4.04/src/cwdb.h0000644000175000017500000000452412360775351011544 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __CWDB_H #define __CWDB_H #include "header.h" struct band; struct contest; extern struct cw *cw; struct cw_item{ gchar *wwl0, *wwl1; gint stamp0, stamp1; gint qrv; /* bit array, lsb = A = 50MHz etc. Since 1.15 */ }; struct wc_item{ gchar *call0, *call1; gint stamp0, stamp1; }; struct cw{ ZHashTable *cw; /* key=call, value=cw_item */ GHashTable *wc; int latest; int minstamp; int dirty; }; struct qs{ GPtrArray *result1; gchar *str; }; struct cw *init_cw(void); void free_cw(struct cw *cw); gint get_cw_size(struct cw *cw); gint get_wc_size(struct cw *cw); void load_one_cw(struct cw *cw, gchar *s); int load_cw_from_file(struct cw *cw, gchar *filename); void read_cw_files(struct cw *cw); int save_cw_string(struct cw *cw, GString *gs); int save_cw_into_file(struct cw *cw, gchar *filename); int save_cw(struct cw *cw, int verbose); void add_cw(struct cw *cw, gchar *call, gchar *wwl, gint stamp, gchar *qrv); gchar *find_wwl_by_call(struct cw *cw, gchar *call); gchar *find_wwl_by_call_newer(struct cw *cw, gchar *call, int minstamp); void add_wc(struct cw *cw, gchar *wwl, gchar *call, gint stamp); gchar *find_call_by_wwl(struct cw *cw, gchar *wwl); gchar *find_qrv_str_by_call(struct cw *cw, gchar *call); //int compare_gstring(const void *a, const void *b); void update_cw_from_band(struct cw *cw, struct band *band); void update_cw_from_ctest(struct cw *cw, struct contest *ctest); void get_cw_qs(gchar *str); gpointer cw_thread_func(gpointer data); int cmp_cw_qs(gchar *call, struct cw_item *cwi, GPtrArray *result); void qs_thread_create(void); void qs_thread_join(void); void qs_thread_kill(void); int get_susp_ambiguous_call(struct cw *cw, struct band *band, char *call, char *wwl, GString *gs, int thr); int similar_calls(const char *call1, const char *call2, int factor, int thr, int p); int cwdb_call_info(GString *gs, gchar *call, gchar *stroke, GHashTable *wwls); int load_cw_from_mem(struct cw *cw, const char *file, size_t len); int format_cw_string(struct cw *cw, GString *gs); #endif tucnak-4.04/src/sdev.h0000644000175000017500000000555612125053311011554 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SDEV_H #define __SDEV_H #include "header.h" #define SDINIT char sdlen=0;int sdret;char sdbuf[256] #define SDADD(a) sdbuf[sdlen++]=(a) #define SDADD2(a) sdbuf[sdlen++]=(a)&0xff;sdbuf[sdlen++]=(a)>>8 //#define SDPLUS(sd,cmd) sdret=sd_protplus((sd),(cmd),sdbuf,&sdlen) #define SDMAXLEN 300 #define SDFCE 1 #define SDADR 2 #define SDLEN 3 enum conntype{ CT_TTYS, CT_UDP, CT_TCP, CT_FTDI }; enum sprotocol{ SPROT_NONE, SPROT_ROTAR }; enum SCONN_CMD{ SCONN_ROT_AZIM }; struct sconn_job{ struct sconn_job *next; struct sconn_job *prev; enum SCONN_CMD cmd; struct sdev *sdev; int azim; }; struct sdev{ struct sdev *next; struct sdev *prev; struct sconn *sconn; unsigned char saddr; int timeout_ms; int (*sdev_main)(struct sdev *sdev); void *arg; }; struct sconn{ struct sconn *next; struct sconn *prev; enum conntype type; int opened; int refcnt; gchar *ttys_filename; gchar *ip_hostname; int ip_port; int usb_port; GThread *thread; int thread_break; int give_me_chance; struct sconn_job jobs; MUTEX_DEFINE(jobs); struct sdev sdevs; MUTEX_DEFINE(sdevs); int sdevi; enum sprotocol sprotocol; struct zserial *zser; /* valid only in child process! */ //unsigned char ftdi_state; int ftdi_vid, ftdi_pid; char *ftdi_serial; int freeing; }; extern struct sconn sconns; extern MUTEX_DEFINE(sconns); void init_sconns(void); struct sdev *sd_open_ttys(char saddr, char *filename, int timeout_ms); struct sdev *sd_open_udp(char *hostname, int udpport); struct sdev *sd_open_tcp(char *hostname, int tcpport); struct sdev *sd_open_ftdi(char saddr, int vid, int pid, char *serial, int timeout_ms); void sc_open_common(struct sconn *sconn); int free_sd(struct sdev *sd); int sconn_file_open(struct sconn *sconn, int verbose); int sconn_file_close(struct sconn *sconn); int sconn_file_read(struct sconn *sconn, void *data, size_t len, int timeout_ms); int sconn_file_write(struct sconn *sconn, void *data, size_t len); #ifdef Z_HAVE_LIBFTDI int sconn_ftdi_open(struct sconn *sconn, int verbose); int sconn_ftdi_close(struct sconn *sconn); int sconn_ftdi_read(struct sconn *sconn, void *data, size_t len, int timeout_ms); int sconn_ftdi_write(struct sconn *sconn, void *data, size_t len); #endif gpointer sc_main(gpointer xxx); char *sd_err(int err); int sd_prot(struct sconn *sconn, char saddr, char fce, char *data, int *len, int timeout); void sconn_job_add(struct sconn *sconn, struct sconn_job *job); struct sconn_job *sconn_job_get(struct sconn *sconn); #endif tucnak-4.04/src/pa.h0000644000175000017500000000157212307152506011215 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __PA_H #define __PA_H #include "header.h" #include "dsp.h" #ifdef HAVE_PORTAUDIO extern int pa_initialised; void pa_info(GString *gs); #ifdef HAVE_SNDFILE int pa_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec); #endif int pa_open2(struct dsp *dsp, int rec); int pa_close2(struct dsp *dsp); int pa_write2(struct dsp *dsp, void *data, int len); int pa_read2(struct dsp *dsp, void *data, int len); int pa_reset2(struct dsp *dsp); int pa_sync2(struct dsp *dsp); int pa_get_sources(GString *labels); int pa_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec); #endif #endif tucnak-4.04/src/terminal.h0000644000175000017500000001130312460207027012420 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2011-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __TERMINAL_H #define __TERMINAL_H #include "header.h" /* UTF-8 */ typedef uint32_t unicode_val; /* UCS/Unicode replacement character. */ #define UCS_NO_CHAR ((unicode_val) 0xFFFD) typedef unsigned short chr; struct event { long ev; long x; long y; long b; long mx; long my; double vx; double vy; }; #define EV_INIT 0 #define EV_KBD 1 #define EV_MOUSE 2 #define EV_REDRAW 3 #define EV_RESIZE 4 #define EV_ABORT 5 #define EV_SDLRESIZE 6 #define EV_SKIP 7 struct window { struct window *next; struct window *prev; void (*handler)(struct window *, struct event *, int fwd); void *data; int xp, yp; struct terminal *term; }; #define MAX_TERM_LEN 16 /* this must be multiple of 8! (alignment problems) */ #define MAX_CWD_LEN 8192 /* this must be multiple of 8! (alignment problems) */ #define ENV_XWIN 1 #define ENV_SCREEN 2 #define ENV_OS2VIO 4 #define ENV_BE 8 #define ENV_TWIN 16 #undef FALL /* screen: bit0 - bit7 0x000000ff character bit8 - bit10 0x00000700 foreground bit11 - bit13 0x00003800 background bit14 0x00004000 brightness bit19 0x00080000 doubleht bit20 0x00100000 doublehb */ struct terminal { int master; int fdin; int fdout; int x; int y; int environment; char term[MAX_TERM_LEN]; unsigned *screen; unsigned *last_screen; struct term_spec *spec; int cx; int cy; int lcx; int lcy; int dirty; int redrawing; int blocked; char *input_queue; int qlen; /*struct list_head windows;*/ struct window windows; char *title; /* Something weird regarding the UTF8 I/O. */ struct { unicode_val ucs; int len; int min; } utf_8; #ifdef FALL int *fall; #endif }; extern struct terminal *term; struct term_spec { struct term_spec *next; struct term_spec *prev; char term[MAX_TERM_LEN]; int mode; int m11_hack; int restrict_852; int block_cursor; int col; int utf_8_io; int charset; }; #define TERM_DUMB 0 #define TERM_VT100 1 #define TERM_LINUX 2 #define TERM_KOI8 3 #define ATTR_FRAME 0x8000 extern struct term_spec term_specs; int hard_write(int, char *, int); int hard_read(int, char *, int); char *get_cwd(void); void set_cwd(char *); struct terminal *init_term(int, int, void (*)(struct window *, struct event *, int)); void sync_term_specs(void); struct term_spec *new_term_spec(char *); void free_term_specs(void); void destroy_terminal(void *); void redraw_terminal(void *); void redraw_terminal_all(void); void redraw_terminal_cls(void); void redraw_later(void); /*void cls_redraw_all_terminals(void);*/ void redraw_from_window(struct window *); void redraw_below_window(struct window *); void add_window(void (*)(struct window *, struct event *, int), void *); void add_window_at_pos(void (*)(struct window *, struct event *, int), void *, struct window *); void delete_window(struct window *); void delete_window_ev(struct window *, struct event *ev); void set_window_ptr(struct window *, int, int); void get_parent_ptr(struct window *, int *, int *); struct window *get_root_window(void); /*void add_empty_window(void (*)(void *), void *);*/ void term_redraw_screen(void); /*void redraw_all_terminals(void);*/ void set_char(int, int, unsigned); void set_last_char(int, int, unsigned); unsigned get_char(int, int); void set_color(int, int, unsigned); void set_only_char(int, int, unsigned); void set_line(int, int, int, chr *); void set_line_color(int, int, int, unsigned); void fill_area(int x, int y, int xw, int yw, unsigned c); void fill_lastarea(int x, int y, int xw, int yw, unsigned c); void draw_frame(int, int, int, int, unsigned, int); void print_text(int, int, int, char *, unsigned); /* todo, ale asi nikoli jen smazat term */ void set_cursor(int, int, int, int); /*void destroy_all_terminals(void);*/ void block_itrm(int); int unblock_itrm(int); void exec_thread(char *, int); void close_handle(void *arg); void set_ctest_title(void); #define TERM_FN_TITLE 1 #define TERM_FN_RESIZE 2 void exec_on_terminal(char *, char *, int); void set_terminal_title(char *); void do_terminal_function(char, char *); void timer_redraw(void *); #define FRAME_URDL 0x80c5 #define FRAME_UDL 0x80b4 #define FRAME_URD 0x80c3 #define FRAME_URL 0x80c1 #define FRAME_RDL 0x80c2 #define FRAME_RL 0x80c4 #endif tucnak-4.04/src/ebw.c0000644000175000017500000000717012460207027011364 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdb.h" #include "ebw.h" #include "fifo.h" #include "language2.h" #include "main.h" #include "namedb.h" static int nlocs = 0; static int nnames = 0; int load_ebw_from_file(struct cw *cw, struct namedb *namedb, char *filename){ FILE *f; struct dbfhdr hdr; struct dbffield *fields,*field; int i, j; unsigned char *record; int ret=0, ofs; int callofs,calllen,wwlofs,wwllen,nameofs,namelen; gchar *call,*wwl,*name; f=fopen(filename, "rb"); if (!f) { dbg("Can't open file %s\n", filename); return -1; } if (fread(&hdr, sizeof(struct dbfhdr), 1, f)!=1){ fclose(f); return -2; } fields=g_new0(struct dbffield, hdr.hdrsize/sizeof(struct dbffield)); if (fread(fields, hdr.hdrsize-sizeof(struct dbfhdr), 1, f)!=1){ g_free(fields); fclose(f); return -3; } callofs=wwlofs=nameofs=-1; calllen=wwllen=namelen=0; for (i=0, field=fields, ofs=0; ; i++, field++){ if (field->name[0]==0x0d) break; dbg("name='%s' len=%d\n", field->name, field->len); if (strcasecmp(field->name, "CALL")==0){ callofs=ofs; calllen=field->len; } if (strcasecmp(field->name, "LOCATOR")==0){ wwlofs=ofs; wwllen=field->len; } if (strcasecmp(field->name, "VORNAME")==0){ nameofs=ofs; namelen=field->len; } ofs+=field->len; } if (!calllen) { log_addf("No CALL column if file %s\n", filename); goto x; } if (!wwllen || !namelen){ log_addf("No LOCATOR or VORNAME column if file %s\n", filename); goto x; } fseek(f, hdr.hdrsize, SEEK_SET); record=g_new0(unsigned char, hdr.recsize); for (j=0; j=2){ add_namedb(namedb, call, name); nnames++; } g_free(call); zg_free0(wwl); zg_free0(name); } g_free(record); ret=0; x:; fclose(f); g_free(fields); return ret; } int read_ebw_files(struct cw *cw, struct namedb *namedb){ gchar *s, *s1; int ret; nlocs = 0; nnames = 0; s = g_strconcat(tucnak_dir, "/vhf.dbf", NULL); z_wokna(s); ret=load_ebw_from_file(cw, namedb, s); if (ret==0){ log_addf(VTEXT(T_LOADED_LOCS_NAMES), nlocs, nnames, s); g_free(s); return 0; } g_free(s); #ifdef Z_UNIX s1 = SHAREDIR"/vhf.dbf"; ret=load_ebw_from_file(cw, namedb, s1); if (ret==0){ log_addf(VTEXT(T_LOADED_LOCS_NAMES), nlocs, nnames, s1); return 0; }else{ log_addf(VTEXT(T_CANT_READ), s, s1); } #endif return ret; } tucnak-4.04/src/kst.c0000644000175000017500000011430312525065677011424 00000000000000/* kst - ON4KST chat Copyright (C) 2011-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "kst.h" #include "cwdb.h" #include "dwdb.h" #include "fifo.h" #include "kbd.h" #include "kbdbind.h" #include "main.h" #include "map.h" #include "namedb.h" #include "inputln.h" #include "qrvdb.h" #include "qsodb.h" #include "tsdl.h" #include "session.h" #include "subwin.h" #include "tregex.h" #include "zosk.h" char *kst_servers[] = {"www.on4kst.info", "on4kst.dyndns.org", "188.165.198.144", // www.on4kst.info 11.3.2015 NULL}; int kst_i = 0; int sw_kst_kbd_func(struct subwin *sw, struct event *ev, int fw){ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); //dbg("sw_kst_kbd_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b); if (sw->il && ( sw->il->wasctrlv || (ev->x!='[' && ev->x!=']') )){ int ret; ret = inputln_func(sw->il, ev); if (ev->x!=KBD_LEFT && ev->x!=KBD_RIGHT && ev->x!=KBD_HOME && ev->x!=KBD_END){ if (strlen(sw->il->cdata) < 1){ zg_free0(sw->pattern); }else{ char *c; c = strchr(sw->il->cdata, ' '); if (c){ zg_free0(sw->pattern); }else{ zg_free0(sw->pattern); sw->pattern = g_strdup(sw->il->cdata); } sw->offset = 0; } redraw_later(); if (ret) return ret; } //dbg("sw->pattern('%s')\n", sw->pattern); }else{ //dbg("sw->pattern('%s')\n", sw->pattern); } if (ev->y & KBD_SHIFT){ switch (ev->x){ case KBD_UP: sw->kst_offset -= 1; if (sw->kst_offset < 0) sw->kst_offset = 0; redraw_later(); return 1; case KBD_DOWN: if (sw->side_bott) return 1; //size = g_hash_table_size(sw->kstusers); sw->kst_offset += 1; //if (sw->kst_offset > size - 3) sw->kst_offset = size - 3; redraw_later(); return 1; case KBD_PGUP: sw->kst_offset -= sw->h / 2; if (sw->kst_offset < 0) sw->kst_offset = 0; redraw_later(); return 1; case KBD_PGDN: sw->kst_offset += sw->h / 2; redraw_later(); return 1; case KBD_HOME: sw->kst_offset = 0; redraw_later(); return 1; } } switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->offset--; sw->check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->offset++; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->offset -= sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->offset += sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->offset = sw->lines->len - sw->h; sw->check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->offset = 0; sw->check_bounds(sw); redraw_later(); return 1; case ACT_SCROLL_LEFT: if (sw->lines) if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: if (sw->lines) sw->ho++; redraw_later(); } return 0; } void kst_qrv_sort(struct subwin *sw, struct event *ev){ if (ev->x >= sw->w + 31){ qrv_sort(qrv_compare_ac_n); }else if (ev->x >= sw->w + 27){ qrv_sort(qrv_compare_ac_int); }else if (ev->x >= sw->w + 21){ qrv_sort(qrv_compare_ac_start); }else if (ev->x >= sw->w + 16){ if (qrv->sort == qrv_compare_qtf || qrv->sort == qrv_compare_kst_time) qrv_sort(qrv->sort); else qrv_sort(qrv_compare_qrb); }else if (ev->x >= sw->w + 10){ qrv_sort(qrv_compare_wkd); }else if (ev->x >= sw->w + 2){ qrv_sort(qrv_compare_call); } } int sw_kst_mouse_func(struct subwin *sw, struct event *ev, int fw){ struct menu_item *mi = NULL; int y, items = 0, size; if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); #ifdef Z_HAVE_SDL if (sw->screen && ev->x < sw->w){ //dbg("resending to map: %d x=%d y=%d\n", ev->b, ev->x, ev->y); return sw_map_mouse_func(sw, ev, fw); } #endif if (ev->b & B_DRAG){ int dy = sw_accel_dy(sw, ev); if (dy == 0) return 1; if (ev->x > sw->w){ sw->kst_offset -= dy; size = g_hash_table_size(sw->kstusers); //if (size > sw->h - 1) if (sw->kst_offset < 0) sw->kst_offset = 0; if (sw->kst_offset > size - 3) sw->kst_offset = size - 3; redraw_later(); return 1; } sw->offset += dy; sw->check_bounds(sw); redraw_later(); return 1; } //if ((ev->b & BM_ACT)!=B_DOWN) return 0; // dbg("ev->b=%x BM_ACT=%x B_DOWN=%x BM_EBUTT=%x \n", ev->b, BM_ACT, B_DOWN, BM_EBUTT); if (cfg->usetouch && (ev->b & BM_EBUTT) == B_LEFT) ev->b = (ev->b & ~BM_EBUTT) | B_RIGHT; switch (ev->b & BM_BUTCL){ case B_LEFT: case B_RIGHT: sw->olddragx = ev->x; sw->olddragy = ev->my; return 1; case B_LEFT | B_CLICK: if (!sw->il) break; if (ev->y==sw->y+sw->h){ inputln_func(sw->il, ev); return 1; } if (ev->x > sw->w && ev->y == sw->y){ // QRV title kst_qrv_sort(sw, ev); return 1; } g_free(sw->callunder); sw->callunder = sw_kst_call_under(sw, ev->x - sw->x + sw->ho, ev->y - sw->y); if (!sw->callunder) break; sw_kst_toggle_highlight(sw, sw->callunder, 1); return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT | B_CLICK: if (ev->x > sw->w && ev->y == sw->y){ // QRV title struct menu_item *mi = new_menu(3); mi->rtext = "Show"; add_to_menu(&mi, g_strdup(VTEXT(T_QRB)), "", CTEXT(T_HK_QRB), MENU_FUNC qrv_sort, qrv_compare_qrb, 0); add_to_menu(&mi, g_strdup(VTEXT(T_QTF)), "", CTEXT(T_HK_QTF), MENU_FUNC qrv_sort, qrv_compare_qtf, 0); add_to_menu(&mi, g_strdup(VTEXT(T_ACKST)), "", CTEXT(T_HK_ACKST), MENU_FUNC qrv_sort, qrv_compare_kst_time, 0); set_window_ptr(gses->win, ev->x - 3, ev->y); do_menu(mi, NULL); if (cfg->usetouch) kst_qrv_sort(sw, ev); return 1; } if (ev->y==sw->y+sw->h){ inputln_func(sw->il, ev); return 1; } g_free(sw->callunder); sw->callunder = sw_kst_call_under(sw, ev->x - sw->x + sw->ho, ev->y - sw->y); if (!sw->callunder) break; mi = new_menu(1); mi->rtext = sw->callunder; if (!cfg->usetouch){ add_to_menu(&mi, CTEXT(T_MISTAKE), "", CTEXT(T_HK_MISTAKE), sw_kst_nothing, NULL, 0); items++; } add_to_menu(&mi, CTEXT(T_ASK_FOR_SKED), "", CTEXT(T_HK_ASK_FOR_SKED), sw_kst_ask_sked, NULL, 0); items++; add_to_menu(&mi, CTEXT(T_SELECT), "", CTEXT(T_HK_SELECT), sw_kst_select, NULL, 0); items++; add_to_menu(&mi, CTEXT(T_HIDE), "", CTEXT(T_HK_HIDE), sw_kst_hide, NULL, 0); items++; add_to_menu(&mi, CTEXT(T_MESSAGE), "", CTEXT(T_HK_MESSAGE), sw_kst_message, NULL, 0); items++; add_to_menu(&mi, CTEXT(T_INFO), "", CTEXT(T_HK_INFO), sw_kst_info, NULL, 0); items++; #ifdef Z_HAVE_SDL if (gacs) add_to_menu(&mi, CTEXT(T_AC_INFO), "", CTEXT(T_HK_AC_INFO), sw_kst_ac_info, NULL, 0); items++; #endif if (aband) { add_to_menu(&mi, CTEXT(T_USE), "", CTEXT(T_HK_USE), sw_kst_use, NULL, 0); items++; } y = ev->y - 1; if (cfg->usetouch) y = ev->y - items - 1; set_window_ptr(gses->win, ev->x - 3, y); do_menu(mi, sw); break; case B_WHUP: /* dbg("wheel up\n");*/ if (ev->x > sw->w){ sw->kst_offset -= 3; if (sw->kst_offset < 0) sw->kst_offset = 0; //dbg("kst_offset=%d\n", sw->kst_offset); redraw_later(); return 1; } sw->offset+=3; sw->check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: /* dbg("wheel down\n"); */ if (ev->x > sw->w){ sw->kst_offset += 3; size = g_hash_table_size(sw->kstusers); if (sw->kst_offset > size - 3) sw->kst_offset = size - 3; //dbg("kst_offset=%d\n", sw->kst_offset); redraw_later(); return 1; } sw->offset-=3; sw->check_bounds(sw); redraw_later(); return 1; } return 0; } static void sw_kst_draw(gpointer key, gpointer value, gpointer user_data){ //char raw[30]; char *call = (char*)key; struct subwin *sw = (struct subwin *)user_data; struct qrv_item *qi = (struct qrv_item*)value; int color; char degree=' '; char kst_time_str[20]; struct tm utc; char acstart[30]; char acint[30]; #ifdef Z_HAVE_SDL if (sdl) degree=0xb0; #endif if (sw->kst_y >= sw->hh) return; //z_get_raw_call(raw, (char*)call); color = sw_kst_color(call); if (!g_hash_table_lookup_extended(sw->kstoldusers, call, NULL, NULL)) { color |= COL(1 * 8); // new call red background clip_printf(sw, sw->w + 1, sw->kst_y, color, " "); } clip_printf(sw, sw->w + 2, sw->kst_y, color, "%s", call); if (qi && aband) clip_printf(sw, sw->w + 10, sw->kst_y, color, "%4d", qi->wkd[aband->bi]); if (qrv->sort == qrv_compare_qtf){ if (qi) clip_printf(sw, sw->w + 14, sw->kst_y, color, "%4d%c", qi->qtf, degree); }else if (qrv->sort == qrv_compare_kst_time){ strcpy(kst_time_str, ""); if (qi->kst_time != 0){ gmtime_r(&qi->kst_time, &utc); sprintf(kst_time_str, "%2d:%02d", utc.tm_hour, utc.tm_min); } if (qi) clip_printf(sw, sw->w + 14, sw->kst_y, color, "%6s", kst_time_str); }else{ if (qi && qi->qrb > 0) clip_printf(sw, sw->w + 14, sw->kst_y, color, "%5.0fkm", qi->qrb); } ac_format(qi, acstart, acint, 0); clip_printf(sw, sw->w + 22, sw->kst_y, color, "%s %s", acstart, acint); sw->kst_y++; } void sw_kst_array_add(gpointer key, gpointer value, gpointer data){ g_ptr_array_add((GPtrArray *)data, key); } void sw_kst_redraw(struct subwin *sw, struct band *band, int flags){ int i, index, col; gchar *line, *pcall, *ccall; int ccol; int ofs = 0; sw->side_top = sw->side_bott = 0; //dbg("sw->il = %p\n", sw->il); if (ctest){ pcall = ctest->pcall; }else{ pcall = cfg->pcall; } //dbg("sw_kst_redraw: offset=%d pattern='%s'\n", sw->offset, sw->pattern); if (sw->pattern){ index = sw->lines->len; ofs = sw->offset; }else{ index = sw->lines->len - sw->offset; } for (i = sw->h - 1; i >= 0; i--){ if (sw->pattern){ for (index--; index >= 0; index--){ char *x; if (index < 0 || index >= sw->lines->len) line = "~"; else line = (char *)g_ptr_array_index(sw->lines, index); x = z_strcasestr(line, sw->pattern); //dbg("i=%d index=%d x=%p line=%s\n", i, index, x, line); if (x != 0) { if (ofs > 0) ofs--; else goto found; } } continue; }else{ index--; if (index < 0 || index >= sw->lines->len) line = "~"; else line = (char *)g_ptr_array_index(sw->lines, index); } found:; if (!line || strlen(line) <= sw->ho) continue; col = sw_kst_line_color(sw, line); ccall = sw_kst_counterp(sw, line, &ccol); if (sw->pattern){ set_color(sw->x - 1, sw->y + i, COL_DARKCYAN * 8 | COL_NORM); //print_text(sw->x, sw->y + i, 1, " ", COL(6 * 8)); print_text(sw->x, sw->y+i, sw->w, line + sw->ho, col); if (ccall) sw_highlight(sw, line, ccall, ccol, i, 1); //kst_highlight(line, sw->ho, pcall, COL_RED); sw_highlight(sw, line, sw->pattern, COL_RED, i, 0); }else{ print_text(sw->x, sw->y+i, sw->w, line + sw->ho, col); if (ccall) sw_highlight(sw, line, ccall, ccol, i, 1); if ((col != COL_DARKGREY && col != COL_DARKYELLOW) || (ccall != NULL && ccol != COL_DARKGREY && ccol != COL_DARKYELLOW)){ sw_highlight(sw, line, pcall, COL_RED, i, 1); sw_highlight(sw, line, "73", COL_RED, i, 1); sw_highlight(sw, line, "thanks", COL_RED, i, 1); sw_highlight(sw, line, "tnx", COL_RED, i, 1); sw_highlight(sw, line, "tks", COL_RED, i, 1); sw_highlight(sw, line, "later", COL_RED, i, 1); sw_highlight(sw, line, "nil", COL_RED, i, 1); sw_highlight(sw, line, "any1", COL_RED, i, 1); sw_highlight(sw, line, "anyone", COL_RED, i, 1); } } } if (aband){ int ofs = sw->kst_offset; clip_printf(sw, sw->w + 2, 0, qrv->sort==qrv_compare_call?COL_WHITE:COL_NORM, "CALL"); clip_printf(sw, sw->w + 10, 0, qrv->sort==qrv_compare_wkd?COL_WHITE:COL_NORM, "WKD"); if (qrv->sort == qrv_compare_qtf){ clip_printf(sw, sw->w + 16, 0, COL_WHITE, "QTF"); }else if (qrv->sort == qrv_compare_kst_time){ clip_printf(sw, sw->w + 16, 0, COL_WHITE, "AcKST"); }else{ clip_printf(sw, sw->w + 16, 0, qrv->sort==qrv_compare_qrb?COL_WHITE:COL_NORM, "QRB"); } if (gacs){ clip_printf(sw, sw->w + 21, 0, qrv->sort==qrv_compare_ac_start?COL_WHITE:COL_NORM, "Start"); clip_printf(sw, sw->w + 27, 0, qrv->sort==qrv_compare_ac_int?COL_WHITE:COL_NORM, "Dur"); clip_printf(sw, sw->w + 31, 0, qrv->sort==qrv_compare_ac_int?COL_WHITE:COL_NORM, "NR"); } for (sw->kst_y = 1, i = 0; sw->kst_y < sw->hh && i < qrv->qrvs->len; ) { struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i++); if (qrv_skip(qi, aband->bi, 1)) continue; if (kst_user_skip(sw, qi->call)) continue; if (ofs) { ofs--; continue; } sw_kst_draw(qi->call, qi, sw); //sw->kst_y++ is inside } if (i == qrv->qrvs->len) sw->side_bott = 1; for (; i < qrv->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); qi->ac_drawn = 0; qi->ac_start = (time_t)0; } }else{ GPtrArray *arr = g_ptr_array_new(); int i; sw->kst_y = 0; g_hash_table_foreach(sw->kstusers, sw_kst_array_add, arr); zg_ptr_array_qsort (arr, z_compare_string); for (i = sw->kst_offset; i < arr->len; i++){ char *call = (char *)g_ptr_array_index(arr, i); sw_kst_draw(call, g_hash_table_lookup(sw->kstusers, call), sw); } g_ptr_array_free(arr, TRUE); } #ifdef Z_HAVE_SDL if (sw->screen != NULL && gacs != NULL){ //fill_area(sw->x, sw->y, sw->w, sw->h, 0); //map_recalc_gst(sw, band); //SDL_SetClipRect(sw->screen, &sw->map); sw_map_redraw(sw, aband, 0); SDL_SetClipRect(sw->screen, &sw->map); plot_qso(sw, sw->screen, band, &gacs->infolocqso); plot_path(sw, sw->screen, band, &gacs->infolocqso, &gacs->infoqso); return; } #endif //clip_printf(sw, 0, 0, COL_INV, "shus=%d timer=%d ", sw->shus, zselect_timer_get(zsel, sw->timer_id) / 1000); } void sw_kst_check_bounds(struct subwin *sw){ if (sw->offset < 0) { sw->offset=0; sw_shake(sw, 0); } if (sw->offset > sw->lines->len - 1) { sw->offset = sw->lines->len - 1; if (sw->offset >= 0) sw_shake(sw, 1); } if (sw->offset < 0) { sw->offset=0; sw_shake(sw, 0); } } void sw_kst_enter(void *enterdata, gchar *str, int cq){ struct subwin *sw; sw = (struct subwin *)enterdata; //log_addf("sw_kst_enter"); //kst_end_shus(sw); if (regcmp(str, "^[0-9]{2,7}$") == 0){ if (aband) { process_input(aband, str, 0); sw_unset_focus(); il_set_focus(INPUTLN(aband)); sw_printf(sw, VTEXT(T_NO_SEND_NUMS)); return; } } //dbg("sw_kst_enter('%s', %d)\n", str, sw->sock); if (sw->sock < 0){ if (strcmp(str, "") == 0){ kst_open_connection(sw, NULL); return; } sw_printf(sw, VTEXT(T_DISCONNECTED), str); return; }else{ if (strcmp(str, "\x03") == 0){ sw_kst_disconnect(sw); return; } send(sw->sock, str, strlen(str), 0); send(sw->sock, "\r\n", 2, 0); if (strcasecmp(str, "/sh us") == 0) kst_shus(sw, 2); } } void sw_kst_addrinfo(struct zasyncdns *adns, int n, int *family, int *socktype, int *protocol, int *addrlen, union zsockaddr *addr, char *errorstr){ struct subwin *sw; int i, port = 23000, ret; GString *gs; char errbuf[100]; sw = (struct subwin *)adns->arg; if (errorstr != NULL){ sw_printf(sw, VTEXT(T_CANT_RESOLVE), kst_servers[kst_i], errorstr); kst_i++; if (kst_servers[kst_i] != NULL){ zselect_bh_new(zsel, kst_open_bh, sw); return; } kst_i = 0; sw_printf(sw, VTEXT(T_ENTER_TO_CONNECT_KST)); return; } kst_i = 0; gs = g_string_new(VTEXT(T_RESOLVED)); for (i = 0; i < n; i++){ z_sock_ntoa(gs, family[i], addr + i); g_string_append_c(gs, ' '); } g_string_append(gs, "***\n"); sw_add_block(sw, gs->str); g_string_free(gs, TRUE); for (i = 0; i < n; i++){ //dbg("socket(%d, %d, %d)\n", family[i], socktype[i], protocol[i]); //sw->sock = socket(family[i], socktype[i], protocol[i]); sw->sock = socket(family[i], SOCK_STREAM, 0); if (sw->sock < 0) { sw_printf(sw, VTEXT(T_CANT_CREATE_SOCKET), z_sock_strerror()); continue; } if (z_sock_nonblock(sw->sock, 1)) { closesocket(sw->sock); continue; } switch (family[i]){ case AF_INET: ((struct sockaddr_in *)(addr + i))->sin_port = htons(port); break; #ifdef AF_INET6 case AF_INET6: ((struct sockaddr_in6 *)(addr + i))->sin6_port = htons(port); break; #endif default: closesocket(sw->sock); continue; // unsupported protocol family } ret = connect(sw->sock, (struct sockaddr *)(addr + i), addrlen[i]); if (ret < 0){ int err = z_sock_errno; GString *gs2 = g_string_new(""); if (z_sock_wouldblock(err)){ sw_printf(sw, VTEXT(T_CONNECTING_TO), z_sock_ntoa(gs2, family[i], addr + i)); zselect_set(zsel, sw->sock, NULL, sw_kst_connected_handler, NULL, sw); }else{ sw_printf(sw, VTEXT(T_CANT_CONNECT_TO), z_sock_ntoa(gs2, family[i], addr + i), z_sock_strerror()); closesocket(sw->sock); dbg("sw_kst_addrinfo -1\n"); sw->sock = -1; } g_string_free(gs2, TRUE); } else{ sw_kst_connected_handler(sw); } break; } } void sw_kst_connected_handler(void *xxx){ struct subwin *sw = (struct subwin *)xxx; if (z_sock_error(sw->sock)){ sw_kst_disconnect(sw); return; } sw_printf(sw, VTEXT(T_CONNECTED_SOCKET), sw->sock); zselect_set(zsel, sw->sock, sw_kst_read_handler, NULL, NULL, sw); sw->chat = 1; } void sw_kst_read_handler(void *xxx){ char buf[1030], *d, *last, errbuf[100]; int i, ret, e; struct subwin *sw = (struct subwin *)xxx; ret = recv(sw->sock, buf, 1024, 0); e = errno; if (ret <= 0){ if (z_sock_errno != 0){ // zero is handled by sw_kst_disconnect() sw_printf(sw, VTEXT(T_ERROR_READING_SOCKET), z_sock_strerror(), sw->sock, e); } sw_kst_disconnect(sw); return; } for (i = 0, d = buf; i < ret; i++){ if (buf[i] == '\0') continue; if (buf[i] == '\r') continue; if (buf[i] == '\xff'){ if (i + 2 < ret){ if ((buf[i+1] & 0xf0) == 0xf0){ i+=2; continue; // i++ } } } *d = buf[i]; if ((unsigned char)*d == 0xd8) *d = '0'; // DL0HTW d++; } *d = '\0'; buf[ret] = '\0'; sw_add_block(sw, buf); if (!sw->ontop && !sw->unread){ sw->unread = 1; redraw_later(); } if (!sw->chat) return; if (sw->lines->len <= 0) return; last = (char *)g_ptr_array_index(sw->lines, sw->lines->len - 1); if (last == NULL) return; if (!regcmpi(last, "^login:")){ if (cfg->kst_user && *cfg->kst_user){ sw_printf(sw, "%s\r\n", cfg->kst_user); z_sock_printf(sw->sock, "%s\r\n", cfg->kst_user); } } if (!regcmpi(last, "^password:")){ if (cfg->kst_pass && *cfg->kst_pass){ sw_printf(sw, "********\r\n"); z_sock_printf(sw->sock, "%s\r\n", cfg->kst_pass); } } if (!regcmpi(last, "^Your\\ choice.*:")){ int channel = 0; // 1=50/70, 2=144/432, 3=uW, 5=HF if (ctest){ int i; for (i = 0; i < ctest->bands->len; i++){ int ch; struct band *b = (struct band*)g_ptr_array_index(ctest->bands, i); if (b->readonly) continue; if (b->qrg_min >= 500000) ch = 3; if (b->qrg_min < 500000) ch = 2; if (b->qrg_min < 100000) ch = 1; if (b->qrg_min < 30000) ch = 5; if (channel == 0) channel = ch; if (ch != channel) { channel = 0; break; } } } if (channel > 0){ sw_printf(sw, "%d\r\n", channel); z_sock_printf(sw->sock, "%d\r\n", channel); } } if (!regcmpi(last, ">$")){ if (cfg->kst_name && *cfg->kst_name){ sw_printf(sw, "/set name %s\r\n", cfg->kst_name); z_sock_printf(sw->sock, "/set name %s\r\n", cfg->kst_name); } if (ctest != NULL){ sw_printf(sw, "/set qra %s\r\n", ctest->pwwlo); z_sock_printf(sw->sock, "/set qra %s\r\n", ctest->pwwlo); } sw->chat = 0; } } void sw_kst_disconnect(struct subwin *sw){ if (sw->sock < 0) return; sw_printf(sw, VTEXT(T_DISCONNECTED)); zselect_set(zsel, sw->sock, NULL, NULL, NULL, NULL); closesocket(sw->sock); dbg("sw_kst_disconnect -1\n"); sw->sock = -1; kst_clear_users(sw); sw_printf(sw, VTEXT(T_ENTER_TO_CONNECT_KST)); } #define FREE_SW_CX if (c1) {g_free(c1); c1=NULL;} if (c2) {g_free(c2); c2=NULL;} char *sw_kst_call_under(struct subwin *sw, int x, int y){ int index; int ret, len, i1, i2; char *c1 = NULL, *c2 = NULL, *s, call[25]; //dbg("sw_kst_call_under(sw, %d, %d)\n", x, y); if (x >= sw->w){ int yy, i, ofs; //dbg("x>sw->w\n"); ofs = sw->kst_offset; for (yy = 1, i = 0; yy < sw->hh && i < qrv->qrvs->len;) { struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i++); if (qrv_skip(qi, aband->bi, 0)) continue; if (kst_user_skip(sw, qi->call)) continue; if (ofs) { ofs--; continue; } if (y == yy){ //dbg("found i=%d y=%d call=%s\n", i, y, qi->call); return g_strdup(qi->call); } yy++; //sw_kst_draw(qi->call, qi, sw); //sw->kst_y++ is inside } } if (sw->pattern){ int yy = sw->h - 1; int ofs = sw->offset; if (sw->pattern) index = sw->lines->len; else index = sw->lines->len - sw->offset; for (index--; 1; index--){ char *x, *line; if (index < 0) return NULL; line = (char *)g_ptr_array_index(sw->lines, index); x = z_strcasestr(line, sw->pattern); if (!x) continue; if (yy == y) { if (ofs > 0){ ofs--; continue; }else{ break; } } yy--; if (!yy) return NULL; } //x--; }else{ index = sw->lines->len - sw->offset - sw->h + y; if (index < 0 || index >= sw->lines->len) return NULL; } s = (char*)g_ptr_array_index(sw->lines, index); if (x < 0 || x >= strlen(s)) return NULL; //dbg("line='%s'\n", s); s = g_strdup(s); z_str_uc(s); for (i1 = x; i1 >= 0; i1--){ if (s[i1] >= 'A' && s[i1] <= 'Z') continue; if (s[i1] >= '0' && s[i1] <= '9') continue; if (s[i1] == '-') continue; if (s[i1] == '/') continue; break; } i1++; // line cannot begin with call len = strlen(s); for (i2 = x; i2 < len; i2 ++){ if (s[i2] >= 'A' && s[i2] <= 'Z') continue; if (s[i2] >= '0' && s[i2] <= '9') continue; if (s[i2] == '-') continue; if (s[i2] == '/') continue; break; } if (i2 > i1 && i2 - i1 < 20){ g_strlcpy(call, s + i1, Z_MIN(i2 - i1 + 1, 20)); if (z_can_be_call(call, ZCBC_SLASH | ZCBC_MINUS)){ g_free(s); return g_strdup(call); } } /**** ON4KST ****/ /* 1808Z OK1KRQ/P Club> GE all */ c1 = NULL; c2 = NULL; ret = regmatch(s, "^[0-9]{4}Z ([0-9A-Z\\/-]+).*>", &c1, &c2, NULL); if (ret == 0){ safe_strncpy0(call, c2, 19); goto doit; } FREE_SW_CX; /**/ doit:; /* dbg("ret=%d c1='%s' c2='%s'\n", ret, c1, c2);*/ FREE_SW_CX; g_free(s); if (ret) return NULL; //dbg("kst_call_under is '%s'\n", call); return g_strdup(call); } // value: -2 hide, -1=hide+qrv 1=highlight void sw_kst_toggle_highlight(struct subwin *sw_unused, char *call, int val){ char t[25]; gchar *key; int *value; //z_get_raw_call(t, call); g_strlcpy(t, call, sizeof(t)); if (g_hash_table_lookup_extended(gses->hicalls, (gpointer)t, (gpointer*)&key, (gpointer*)&value)){ if (*value != val){ *value = val; redraw_later(); return; } g_hash_table_remove(gses->hicalls, key); g_free(key); g_free(value); //dbg("call='%s' removed\n", t); }else{ value = g_new(int, 1); *value = val; g_hash_table_insert(gses->hicalls, g_strdup(t), value); if (aband){ int wkd[32]; char *wwl = NULL; if (val == -1){ qrv_delete(t, aband->bi); } if (val >= 0){ wwl = find_wwl_by_call(cw, t); if (wwl == NULL) wwl = ""; memset(wkd, 0, sizeof(wkd)); qrv_add(t, wwl, (1<bi), wkd, "@KST", time(NULL)); } } //dbg("call='%s' inserted\n", t); } /* dbg("%d\n", g_hash_table_size(gses->hicalls));*/ redraw_later(); } void sw_kst_nothing(void *itdata, void *menudata){ } void sw_kst_select(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; sw_kst_toggle_highlight(sw, sw->callunder, 1); } void sw_kst_hide(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; sw_kst_toggle_highlight(sw, sw->callunder, -1); } void sw_kst_message(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; newkst(sw->il, sw->callunder); // calls z_str_uc(callkst) redraw_later(); #ifdef Z_HAVE_SDL if (gses && cfg->usetouch){ if (gses->osk) zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, ZOSK_ENTERCLOSE | ZOSK_SENDENTER, sw->il->cdata); zosk_portrait(gses->osk); } #endif } void sw_kst_ask_sked(void *itdata, void *menudata){ time_t now; struct tm tm; char *name; struct config_band *confb; struct subwin *sw = (struct subwin*)menudata; GString *gs = g_string_sized_new(256); now = time(&now); localtime_r(&now, &tm); g_string_sprintfa(gs, "/cq %s ", sw->callunder); if (tm.tm_hour < 12) g_string_append(gs, "GM "); else if (tm.tm_hour < 18) g_string_append(gs, "GA "); else g_string_append(gs, "GE "); name = find_name_by_call(namedb, sw->callunder); if (name) g_string_sprintfa(gs, "%s, ", name); g_string_append(gs, "PSE sked "); if (aband){ if (aband->skedqrg && strlen(aband->skedqrg) > 0) g_string_sprintfa(gs, "%s ", aband->skedqrg); if (aband->qrg_min < 20000000){ confb = get_config_band_by_bandchar(aband->bandchar); if (confb) g_string_sprintfa(gs, "on %s ", confb->adifband); }else{ g_string_sprintfa(gs, "on %s ", aband->pband); } } g_string_sprintfa(gs, "OK?"); askkst(sw->il, gs->str); g_string_free(gs, TRUE); redraw_later(); #ifdef Z_HAVE_SDL if (gses && cfg->usetouch){ if (gses->osk) zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, ZOSK_ENTERCLOSE | ZOSK_SENDENTER, sw->il->cdata); zosk_portrait(gses->osk); } #endif } void sw_kst_info(void *itdata, void *menudata){ char *call; struct subwin *sw = (struct subwin*)menudata; struct qso *q = g_new0(struct qso, 1); call = g_strdup(sw->callunder); z_strip_from(call, '-'); q->callsign = call; call_info(q); g_free(q); g_free(call); } #ifdef Z_HAVE_SDL void sw_kst_ac_info(void *itdata, void *menudata){ struct qrv_item *qi; struct subwin *sw = (struct subwin*)menudata; if (!gacs) return; if (!sw->callunder) return; g_free(gacs->infolocqso.locator); gacs->infolocqso.locator = NULL; qi = qrv_get(qrv, sw->callunder); if (qi != NULL){ gacs->infolocqso.locator = g_strdup(qi->wwl); }else{ char *wwl = find_wwl_by_call(cw, sw->callunder); if (wwl) { gacs->infolocqso.locator = g_strdup(wwl); }else{ log_addf(TRANSLATE("Sorry, unknown locator for %s"), sw->callunder); return; } } kst_free_screen(sw); sw->l1map = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_INIT(sw->screen); sw->gdirty = 1; map_update_layout(sw); //if (gacs->infolocqso.locator){ ac_update_infoctp(gacs->infolocqso.locator); sw->zoom = 10000; map_for_photo(sw, aband, MAP_AC_INFO); //} //redraw_later(); in map_for_photo/zoom } #endif void sw_kst_use(void *itdata, void *menudata){ char *call; struct subwin *sw = (struct subwin*)menudata; if (!aband) return; call = g_strdup(sw->callunder); z_strip_from(call, '-'); process_input(aband, call, 0); il_add_to_history(INPUTLN(aband), call); g_free(call); sw_unset_focus(); il_set_focus(INPUTLN(aband)); } int sw_kst_line_color(struct subwin *sw, char *line){ char call[20], s[20], *c; int color; if (strlen(line) < 9) return COL_NORM; g_strlcpy(call, line + 6, sizeof(call)); z_strip_from(call, ' '); //z_get_raw_call(raw, call); color = sw_kst_color(call); if (color != COL_NORM) return color; g_strlcpy(call, line, sizeof(call)); // output of sh/us z_strip_from(call, ' '); //z_get_raw_call(raw, call); g_strlcpy(s, call, sizeof(s)); z_strip_from(s, ')'); c = s; if (*c == '(') c++; color = sw_kst_color(c); return color; } // called with sw == NULL char *sw_kst_counterp(struct subwin *sw, char *line, int *color){ // thread unsafe! static char call[20], raw[20]; char *c; *color = 0; if (strlen(line) < 20) return 0; c = z_strcasestr(line, "> ("); if (!c) return NULL; if (strncmp(c, "> (0) (", 7) == 0){ /* "> (0) (CALL) ..." */ c += 4; /* "CALL) ..." */ } g_strlcpy(call, c + 3, sizeof(call)); z_strip_from(call, ')'); z_get_raw_call(raw, call); z_str_uc(raw); *color = sw_kst_color(raw); return call; } int sw_kst_color(char *call){ int *pval, ret; char raw[25]; if (!call) return COL_NORM; pval = (int *)g_hash_table_lookup(gses->hicalls, call); if (!pval){ z_get_raw_call(raw, call); pval = (int *)g_hash_table_lookup(gses->hicalls, raw); if (!pval) return COL_NORM; } switch (*pval){ case -2: case -1: return COL_DARKGREY; case 0: return COL_NORM; } if (!aband) return COL_YELLOW; z_get_raw_call(raw, call); z_strip_from(raw, '-'); if (worked_on_all_rw(raw)) ret = COL_DARKYELLOW; else ret = COL_YELLOW; return ret; } int kst_read_line(struct subwin *sw, char *line){ char *call, *mycall; int dummy; char *c1 = NULL, *c2 = NULL, *c3 = NULL, *c4 = NULL, *wwl, *name; int ret = 0; struct qrv_item *qi; call = sw_kst_counterp(NULL, line, &dummy); if (call){ mycall = ctest ? ctest->pcall : cfg->pcall; if (strcasecmp(call, mycall) == 0) log_adds(line); } if (regmatch(line,"^([A-Z0-9\\(\\)\\/\\ -]{14})\\ ([A-R]{2}[0-9]{2}[A-X]{2})\\ ([^\\ ]{1,})", &c1, &c2, &c3, &c4, NULL)==0){ time_t now; struct tm gmt; int stamp; call = c2; z_str_uc(call); z_strip_from(call, ' '); z_strip_from(call, ')'); z_strip_from(call, '-'); if (call[0] == '(') call++; wwl = c3; z_str_uc(wwl); name = c4; name[0] = z_char_uc(name[0]); z_strip_from(name, '/'); //dbg("match call='%s' wwl='%s' name='%s'\n", call, wwl, name); now = time(NULL); gmtime_r(&now, &gmt); stamp = (gmt.tm_year + 1900) * 10000 + (gmt.tm_mon + 1) * 100 + gmt.tm_mday; add_cw(cw, call, wwl, stamp, NULL); add_wc(cw, wwl, call, stamp); add_namedb(namedb, call, name); if (sw->shus){ //z_get_raw_call(raw, call); qi = (struct qrv_item *)g_hash_table_lookup(qrv->hash, call/*raw*/); //dbg("add %s qi=%p\n", call, qi); // qi can be NULL g_hash_table_insert(sw->kstusers, g_strdup(call), qi); if (sw->shus == 1) ret = 1; // skip } } zg_free0(c1); zg_free0(c2); zg_free0(c3); zg_free0(c4); if (regmatch(line, "^The\\ ([A-Z0-9]{1,})\\ locator\\ is\\ ([A-R]{2}[0-9]{2}[A-Z]{2})", &c1, &c2, &c3, NULL) == 0){ time_t now; struct tm gmt; int stamp; call = c2; z_str_uc(call); z_strip_from(call, '-'); wwl = c3; z_str_uc(wwl); //dbg("match call='%s' wwl='%s'\n", call, wwl); now = time(NULL); gmtime_r(&now, &gmt); stamp = (gmt.tm_year + 1900) * 10000 + (gmt.tm_mon + 1) * 100 + gmt.tm_mday; add_cw(cw, call, wwl, stamp, NULL); add_wc(cw, wwl, call, stamp); } //dbg("line='%s'\n", line); if (regcmp(line, "^[0-9]{4}Z\\ .*>$") == 0){ kst_end_shus(sw); } return ret; } void kst_timer_function(void *data){ char *c; struct subwin *sw = (struct subwin *)data; //log_addf("-----"); //log_addf("kst_timer_function enter shus=%d", sw->shus); sw->timer_id = zselect_timer_new(zsel, 5 * 60 * 1000, kst_timer_function, sw); if (sw->sock < 0) { //sw_add_block(sw, "*** Skip /sh us, not connected\n"); return; } if (sw->chat){ //sw_add_block(sw, "*** Skip /sh us, chat is active\n"); return; } sw_add_block(sw, VTEXT(T_SENDING_SH_US)); c = "/sh us\r\n"; send(sw->sock, c, strlen(c), 0); kst_shus(sw, 1); //log_addf("kst_timer_function exit shus=%d", sw->shus); } void kst_shus(struct subwin *sw, int shus){ sw->shus = shus; //log_addf("kst_shus(%d)", sw->shus); //dbg("1 users=%d oldusers=%d\n", g_hash_table_size(sw->kstusers), g_hash_table_size(sw->kstoldusers)); g_hash_table_destroy(sw->kstoldusers); sw->kstoldusers = sw->kstusers; sw->kstusers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); // 2x //dbg("2 users=%d oldusers=%d\n", g_hash_table_size(sw->kstusers), g_hash_table_size(sw->kstoldusers)); //dbg("/sh us\n"); } void kst_end_shus(struct subwin *sw){ if (!sw->shus) return; //dbg("/sh us end, users=%d oldusers=%d\n", g_hash_table_size(sw->kstusers), g_hash_table_size(sw->kstoldusers)); //log_addf("/sh us end, users=%d oldusers=%d", g_hash_table_size(sw->kstusers), g_hash_table_size(sw->kstoldusers)); sw->shus = 0; } void kst_clear_users(struct subwin *sw){ g_hash_table_remove_all(sw->kstusers); if (sw->kstoldusers) g_hash_table_remove_all(sw->kstoldusers); } int kst_user_skip(struct subwin *sw, const char *call){ int *pval; if (!call) return 1; if (!g_hash_table_lookup_extended(sw->kstusers, call, NULL, NULL)) return 1; pval = (int *)g_hash_table_lookup(gses->hicalls, call); if (!pval) return 0; switch (*pval){ case -2: case -1: return 1; case 0: return 0; case 1: return 0; default: return 0; } } void sw_kst_raise(struct subwin *sw){ sw_qrv_sort(qrv); } void kst_open_bh(void *sw){ kst_open_connection(sw, NULL); } void kst_open_connection(void *itdata, void *menudata){ struct subwin *sw = (struct subwin *)itdata; sw_printf(sw, VTEXT(T_RESOLVING), kst_servers[kst_i]); zasyncdns_getaddrinfo(sw->adns, zsel, sw_kst_addrinfo, kst_servers[kst_i], AF_INET, sw); } void kst_export_text(void *itdata, void *menudata) { struct subwin *sw = (struct subwin *)itdata; sw_export_lines(sw, "kst"); } #ifdef Z_HAVE_SDL void kst_free_screen(struct subwin *sw){ if (sw->l1map) { SDL_FreeSurface(sw->l1map); sw->l1map = NULL; } if (sw->screen) { SDL_FreeSurface(sw->screen); sw->screen = NULL; } MUTEX_FREE(sw->screen); } #endif int kst_dump_qrv_skip(FILE *f, struct qrv_item *qi, int bi, int setdrawn){ //if (get_qso_by_callsign(aband, qi->call)!=NULL) return 1; int ret = 0; int i; fprintf(f, " bi=%c", 'A' + bi); fprintf(f, " bands_qrv="); for (i = 0; i < 26; i++) if (qi->bands_qrv & (1<bands_wkd & (1<showall && !*qrv->search) { //qi->ac_drawn = 1; fprintf(f, " qrv->showall=%d !*qrv->search", qrv->showall); return ret; } if ((qi->bands_qrv & (1<search) > 1){// here's leading / ret = 3; if (z_strcasestr(qi->call, qrv->search + 1)) ret = 0; if (z_strcasestr(qi->wwl, qrv->search + 1)) ret = 0; if (z_strcasestr(qi->text, qrv->search + 1)) ret = 0; fprintf(f, ret == 0 ? " found in search" : " not found in search"); } //dbg("qrv_skip(%s, %d)=%d qrv=0x%x wkd=0x%x\n", qi->call, bi, ret, qi->bands_qrv, qi->bands_wkd); //qi->ac_drawn = (ret == 0); //if (qi->ac_drawn == 0) qi->ac_start = (time_t)0; return ret; } int kst_dump_user_skip(FILE *f, struct subwin *sw, const char *call){ int *pval; if (!call) { fprintf(f, " call is NULL"); return 1; } if (!g_hash_table_lookup_extended(sw->kstusers, call, NULL, NULL)) { fprintf(f, " not in kstusers"); return 1; } pval = (int *)g_hash_table_lookup(gses->hicalls, call); if (!pval) return 0; switch (*pval){ case -2: case -1: fprintf(f, " *pval=%d", *pval); return 1; case 0: return 0; case 1: return 0; default: return 0; } } void kst_dump_skip(void *itemdata, void *menudata){ int i; char *filename; FILE *f; struct subwin *sw = (struct subwin*)itemdata; filename = g_strdup_printf("%s/_kstskipdump", ctest->directory); z_wokna(filename); f = fopen(filename, "wt"); if (!f) { log_addf("Can't open '%s'", filename); g_free(filename); return; } if (!ctest) { fprintf(f, "No contest opened\n"); goto x; } if (!qrv){ fprintf(f, "No QRV database\n"); goto x; } for (i = 0; i < qrv->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); fprintf(f, "\n%-10s", qi->call); if (kst_dump_qrv_skip(f, qi, aband->bi, 1)) { fprintf(f, " QRV SKIP"); continue; } if (kst_dump_user_skip(f, sw, qi->call)){ fprintf(f, " KST SKIP"); continue; } } fprintf(f, "\n"); x:; fclose(f); log_addf("Saved to %s", filename); g_free(filename); } tucnak-4.04/src/ppdev.h0000644000175000017500000000146411625133700011730 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __PPDEV_H #define __PPDEV_H #ifdef HAVE_LINUX_PPDEV_H #include "header.h" struct cwdaemon; int parport_init (struct cwdaemon *); int parport_open (struct cwdaemon *cwda, int verbose); int parport_free (struct cwdaemon *); int parport_reset (struct cwdaemon *); int parport_cw (struct cwdaemon *, int onoff); int parport_ptt (struct cwdaemon *, int onoff); int parport_ssbway (struct cwdaemon *, int onoff); int parport_band (struct cwdaemon *, int bandsw); #endif void parport_info (GString *gs); #endif tucnak-4.04/src/mingw.c0000644000175000017500000000211412125053311011712 00000000000000/* Tucnak - VHF contest log Functions for mingw32 Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef __MINGW32__ int init_mingw(void){ WSADATA wsaData; // mingw_stderr = fopen("_stderr", "wt"); // if (!mingw_stderr) zinternal("Can't open file _stderr"); //MessageBox(NULL, "Hello World, I'm Tucnak compiled under mingw", "Info", MB_OK); // MUTEX_INIT(strerror_r); // MUTEX_INIT(strtok_r); // MUTEX_INIT(gmtime_r); WSAStartup(MAKEWORD(2, 0), &wsaData); } /*int WINAPI WinMain1(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ char **items; int argc; char *argv[100]; init_mingw(); items = g_strsplit(lpCmdLine, " ", 0); argv[0]="tucnak.exe" FIXME; for (argc=1; items[argc-1] != 0; argc++){ argv[argc] = items[argc-1]; } main(argc, argv); g_strfreev(items); } */ #endif tucnak-4.04/src/inputln.h0000644000175000017500000000242312206634055012304 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __INPUTLN_H #define __INPUTLN_H #include "header.h" #include "bfu.h" #define VALID_CHARS " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/#',.-_:?!;" struct inputln { int (*fn)(struct dialog_data *, struct dialog_item_data *); int dlen; /* data length */ int x, y, l; int vpos, cpos, focused, wasctrlv; int upconvert, readonly, allow_ctrlv; char *cdata; struct terminal *term; void *enterdata; void (*enter)(void *, gchar *, int); GPtrArray *history; int hist_i; struct band *band; struct subwin *sw; char *valid_chars; }; void il_add_to_history(struct inputln *il, char *s); void il_set_focus(struct inputln *il); void il_unset_focus(struct inputln *il); void clear_inputline(struct inputln *il); int inputln_func(struct inputln *il, struct event *ev); void il_readonly(struct inputln *il, int ro); void draw_inputln(struct inputln *il, int sel); void newkst(struct inputln *il, char *callkst); void askkst(struct inputln *il, char *s); #endif tucnak-4.04/src/ac.c0000644000175000017500000006551212534322227011200 00000000000000/* ac.c - aircraft trace Copyright (C) 2013-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. H=D5-RZ D5=RZ/C5 C5=COS(B5) B5=$D$2*i*PI/($A$2*180) D2=QRB*360/(2*PI*RZ) */ #include "ac.h" #include #include "header.h" #include "language2.h" #include "main.h" #include "map.h" #include "qrvdb.h" #include "qsodb.h" #include "rc.h" #include "session.h" #include "subwin.h" #include "tsdl.h" #include struct its{ double kx, ky; double qrb; }; #define AC_SEP "," struct acs *gacs; struct acs *init_acs(void){ struct acs *acs; char *wwl; if (!cfg->ac_enable) return NULL; acs = g_new0(struct acs, 1); if (cfg->ac_url && *cfg->ac_url){ acs->url = g_strdup(cfg->ac_url); }else{ double myw, myh, minw, maxw, minh, maxh; int qtf; char *wwl = cfg->pwwlo; if (ctest) wwl = ctest->pwwlo; minh = maxh = myh = qth(wwl, 0); minw = maxw = myw = qth(wwl, 1); for (qtf = 0; qtf < 360; qtf++){ double h2, w2; if (qrbqtf2hw(myh, myw, 500, qtf * M_PI / 180.0, &h2, &w2) != 0) continue; minh = Z_MIN(minh, h2); minw = Z_MIN(minw, w2); maxh = Z_MAX(maxh, h2); maxw = Z_MAX(maxw, w2); } acs->url = g_strdup_printf("arn.data.fr24.com/zones/fcgi/feed.js?bounds=%f,%f,%f,%f&faa=1&mlat=1&flarm=1&adsb=1&gnd=1&air=1", maxw * 180.0/M_PI, minw * 180.0/M_PI, minh * 180.0/M_PI, maxh * 180.0/M_PI); } progress(VTEXT(T_STARTING_AC)); #ifdef Z_HAVE_SDL if (sdl){ acs->normal = z_makecol(128, 128, 128); acs->active = z_makecol(0, 160, 224); } #endif wwl = cfg->pwwlo; if (ctest) wwl = ctest->pwwlo; acs->sh.myh = qth(wwl, 0); acs->sh.myw = qth(wwl, 1); acs->http_timer = zselect_timer_new(zsel, 1000, acs_http_timer, acs); MUTEX_INIT(acs->sh); acs->thread = g_thread_try_new("ac", acs_thread, (gpointer)acs, NULL); return acs; } void free_acs(struct acs *acs){ if (!acs) return; progress(VTEXT(T_STOPPING_AC)); if (acs->thread){ acs->thread_break = 1; g_thread_join(acs->thread); } if (acs->http_timer) zselect_timer_kill(zsel, acs->http_timer); zhttp_free(acs->http); g_free(acs->infolocqso.locator); zg_ptr_array_free_all(acs->sh.acs); MUTEX_FREE(acs->sh); g_free(acs); } // feed since 1/2015 http://arn.data.fr24.com/zones/fcgi/feed.js?bounds=55,44,4,24&faa=1&mlat=1&flarm=1&adsb=1&gnd=1&air=1 // thread void acs_load(struct acs *acs, const char *data){ char *c, *token_ptr = NULL; int maxasl = 0; char *d; d = g_strdup(data); // until 2015 "15aec22":["4B5C8C",46.2370,6.1076,45,0,32,"0000","T-LSGG2","","-",1370602183,"","","",1,0,"HERON2",0],"15a // {"full_count":10175,"version":4,"5bbca6b":["",52.2627,11.7722,24,45000,447,"5707","F-EDDC2","F2TH","",1426164599,"","","",0,-128,"F2TH",0] // ,"5bbc830":["4007F3",44.7224,4.7571,350,43000,454,"4010","F-LFBO7","B772","G-YMMH",1426164598,"ABV","LHR","BA82",0,0,"BAW82",0] token_ptr = NULL; c = strtok_r(d, "[", &token_ptr); while (1){ struct ac *ac; //dbg("ac='%s'\n", gs->str); ac = g_new0(struct ac, 1); c = strtok_r(NULL, "[", &token_ptr); if (!c) goto x; c = strtok_r(NULL, AC_SEP, &token_ptr); // "C87EE8" if (!c) goto x; c = strtok_r(NULL, AC_SEP, &token_ptr); // latitude if (!c) goto x; ac->w = atof(c) * M_PI / 180.0; c = strtok_r(NULL, AC_SEP, &token_ptr); // longitude if (!c) goto x; ac->h = atof(c) * M_PI / 180.0; c = strtok_r(NULL, AC_SEP, &token_ptr); // azimuth in degrees if (!c) goto x; ac->qtf = (atoi(c) - 90) * M_PI / 180.0; c = strtok_r(NULL, AC_SEP, &token_ptr); // asl in feets if (!c) goto x; ac->asl = atoi(c) * 0.3048; if (ac->asl < cfg->ac_minalt) goto x; // unusable altitude //if (ac->asl < 2000) goto abrt; if (ac->asl > maxasl) maxasl = ac->asl; c = strtok_r(NULL, AC_SEP, &token_ptr); // speed in knots if (!c) goto x; ac->speed = atoi(c) * 1.852; //if (ac->speed < 100) goto abrt; c = strtok_r(NULL, AC_SEP, &token_ptr); // "0000" if (!c) goto x; c = strtok_r(NULL, AC_SEP, &token_ptr); // "T-LSFF2" if (!c) goto x; c = strtok_r(NULL, AC_SEP, &token_ptr); // "B772" if (!c) goto x; c = strtok_r(NULL, AC_SEP, &token_ptr); // "G-YMMH" if (!c) goto x; c = strtok_r(NULL, AC_SEP, &token_ptr); // timestamp if (!c) goto x; ac->when = (time_t)atol(c); g_ptr_array_add(acs->th.acs, ac); continue; x:; g_free(ac); break; } g_free(d); acs->validity = time(NULL) + 10 * 60; } // thread void acs_load2(struct acs *acs, const char *data){ GString *gs; char *c, *token_ptr = NULL; int maxasl = 0, dlen; long pos = 0; dlen = strlen(data); gs = g_string_sized_new(50); while (zfile_mgets(gs, data, &pos, dlen, 0)){ struct ac *ac; //dbg("ac='%s'\n", gs->str); ac = g_new0(struct ac, 1); if (gs->len == 0) break; // TODO c = strtok_r(gs->str, AC_SEP, &token_ptr); if (!c) goto x; ac->w = atof(c) * M_PI / 180.0; c = strtok_r(NULL, AC_SEP, &token_ptr); if (!c) goto x; ac->h = atof(c) * M_PI / 180.0; c = strtok_r(NULL, AC_SEP, &token_ptr); if (!c) goto x; ac->qtf = (atoi(c) - 90) * M_PI / 180.0; c = strtok_r(NULL, AC_SEP, &token_ptr); if (!c) goto x; ac->asl = atoi(c) * 0.3048; //if (ac->asl < 2000) goto abrt; if (ac->asl > maxasl) maxasl = ac->asl; c = strtok_r(NULL, AC_SEP, &token_ptr); if (!c) goto x; ac->speed = atoi(c) * 1.852; //if (ac->speed < 100) goto abrt; c = strtok_r(NULL, AC_SEP, &token_ptr); if (!c) goto x; ac->when = (time_t)atol(c); g_ptr_array_add(acs->th.acs, ac); continue; x:; g_free(ac); break; } g_string_free(gs, TRUE); acs->validity = time(NULL) + 10 * 60; } // thread void ac_compute(struct acs *acs, struct ac *ac, struct ac_counterpart *ctp, struct ac_result *res){ double h, w, qrb, qtfrad; int i, ret, retin, ii, ari; time_t now, dt; double h2, w2, ikx, iky, iqrb, iqtf, minasl; struct its its[2], *a, *b; // dbg("ac: w=%5.3f h=%5.3f qtf=%3.0f asl=%d speed=%d when=%ld now=%ld kx=%3.0f ky=%3.0f\n", // ac->w * 180.0 / M_PI, ac->h * 180.0 / M_PI, ac->qtf * 180.0 / M_PI, ac->asl, ac->speed, (long)ac->when, (long)time(NULL), ac->kx, ac->ky); res->under = 0; now = time(NULL); dt = now - ac->when; if (dt > 5 * 60){ res->crossing = 0; res->start = (time_t)0; return; } qrbqtf2hw(ac->h, ac->w, ac->speed * dt / 3600.0, ac->qtf + (90 * M_PI / 180.0), &h, &w); hw2qrbqtf(acs->th.myh, acs->th.myw, h, w, &qrb, &qtfrad); ac->kx = (int)( qrb * sin(qtfrad)); ac->ky = (int)(- qrb * cos(qtfrad)); // dbg("%5.3f %5.3f -> %5.3f %5.3f = %f %f %f | %d %d\n", mh, mw, ac->h, ac->w, qrb, qtfrad, (qtfrad * 180/M_PI + 90), ac->kx, ac->ky); //dbg("qtf=%f %f speed=%d\n", ac->qtf, ac->qtf * 180.0 / M_PI, ac->speed); qrbqtf2hw(h, w, ac->speed * 10.0 / 60.0 , ac->qtf + (90 * M_PI / 180.0), &h2, &w2); hw2qrbqtf(acs->th.myh, acs->th.myw, h2, w2, &qrb, &qtfrad); ac->pakx = (int)( qrb * sin(qtfrad)); ac->paky = (int)(- qrb * cos(qtfrad)); //dbg("h=%f w=%f | kx=%d ky=%d \n", h * 180.0/M_PI, w * 180.0/M_PI, ac->kx[i], ac->ky[i]); ii = 0; retin = z_point_is_in_quadrangle(ac->kx, ac->ky, ctp->arkx[0], ctp->arky[0], ctp->arkx[1], ctp->arky[1], ctp->arkx[2], ctp->arky[2], ctp->arkx[3], ctp->arky[3]); if (retin > 0) { its[ii].kx = ac->kx; its[ii].ky = ac->ky; its[ii].qrb = 0; ii++; } for (ari = 0; ari < 4; ari++){ ret = z_line_intersect(ctp->arkx[ari], ctp->arky[ari], ctp->arkx[(ari + 1) % 4], ctp->arky[(ari + 1) % 4], ac->kx, ac->ky, ac->pakx, ac->paky, &ikx, &iky); if (ret <= 0) continue; its[ii].kx = ikx; its[ii].ky = iky; its[ii].qrb = sqrt(z_sqr(ikx - ac->kx) + z_sqr(iky - ac->ky)); ii++; if (ii == 2) break; } for (i = 0; i < ii; i++){ km2qrbqtf(its[i].kx, its[i].ky, &iqrb, &iqtf); minasl = acs_min_asl(acs, iqrb, aband, cfg->ac_minelev * M_PI / 180.0); if (ac->asl < minasl * 1000.0) { res->crossing = 0; res->under = 1; return; } } if (ii == 0){ res->crossing = 0; return; } res->crossing = 1; if (ii == 1){ res->crossing = 0; //dbg("ac_compute: strange, ii=%d\n", ii); return; } if (its[0].qrb < its[1].qrb){ a = its + 0; b = its + 1; }else{ a = its + 1; b = its + 0; } res->startkx = a->kx; res->startky = a->ky; res->start = a->qrb * 3600 / ac->speed; res->stopkx = b->kx; res->stopky = b->ky; res->stop = b->qrb * 3600 / ac->speed; //dbg("ac_compute: crossing %3.0f..%3.0f km, %ld..%ld seconds (retin=%d)\n", a->qrb, b->qrb, (long)res->start, (long)res->stop, retin); res->start += now; res->stop += now; res->now = now; res->angle = ctp->qtfrad - (ac->qtf + M_PI/2); while (res->angle < 0.0) res->angle += 2 * M_PI; while (res->angle > 2 * M_PI) res->angle -= 2 * M_PI; if (res->angle > M_PI) res->angle = res->angle - M_PI; if (res->angle > M_PI / 2) res->angle = M_PI - res->angle; } void ac_compute_area(struct acs *acs, struct ac_counterpart *ctp){ double h, w, hh, ww; //dbg("ac_compute_area myh=%5.3f myw=%5.3f qrb=%3.0f qtf=%3.0f\n", acs->th.myh, acs->th.myw, ctp->qrb, ctp->qtfrad); //double asl0 = acs_min_asl(sw->acs, qso->qrb, band, 0.0 * M_PI / 180.0); //double asl5 = acs_min_asl(sw->acs, 127.617, band, 5.0 * M_PI / 180.0); ctp->minqrb = acs_max_qrb(acs, 13 /* TODO */, NULL /*band*/, cfg->ac_maxelev * M_PI / 180.0); ctp->maxqrb = acs_max_qrb(acs, 13 /* TODO */, NULL /*band*/, cfg->ac_minelev * M_PI / 180.0); if (ctp->minqrb > ctp->qrb) ctp->minqrb = ctp->qrb; if (ctp->maxqrb > ctp->qrb) ctp->maxqrb = ctp->qrb; ctp->minqrb = Z_MAX(ctp->minqrb, ctp->qrb - ctp->maxqrb); ctp->maxqrb = Z_MIN(ctp->maxqrb, ctp->qrb - ctp->minqrb); if (ctp->maxqrb > ctp->qrb) ctp->maxqrb = ctp->qrb; if (ctp->maxqrb < ctp->qrb / 2){ ctp->path_valid = -1; //dbg("short maxqrb\n"); return; } ctp->path_valid = 1; qrbqtf2hw(acs->th.myh, acs->th.myw, ctp->maxqrb, ctp->qtfrad, &h, &w); hw2km_d(acs->th.myh, acs->th.myw, h, w, &ctp->arm1kx, &ctp->arm1ky); qrbqtf2hw(h, w, cfg->ac_arwidth/2.0, ctp->qtfrad + M_PI/2.0, &hh, &ww); hw2km_d(acs->th.myh, acs->th.myw, hh, ww, &ctp->arkx[0], &ctp->arky[0]); qrbqtf2hw(h, w, cfg->ac_arwidth/2.0, ctp->qtfrad - M_PI/2.0, &hh, &ww); hw2km_d(acs->th.myh, acs->th.myw, hh, ww, &ctp->arkx[1], &ctp->arky[1]); qrbqtf2hw(acs->th.myh, acs->th.myw, ctp->qrb - ctp->maxqrb, ctp->qtfrad, &h, &w); hw2km_d(acs->th.myh, acs->th.myw, h, w, &ctp->arm2kx, &ctp->arm2ky); qrbqtf2hw(h, w, cfg->ac_arwidth/2.0, ctp->qtfrad - M_PI/2.0, &hh, &ww); hw2km_d(acs->th.myh, acs->th.myw, hh, ww, &ctp->arkx[2], &ctp->arky[2]); qrbqtf2hw(h, w, cfg->ac_arwidth/2.0, ctp->qtfrad + M_PI/2.0, &hh, &ww); hw2km_d(acs->th.myh, acs->th.myw, hh, ww, &ctp->arkx[3], &ctp->arky[3]); } #ifdef Z_HAVE_SDL void plot_path(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qso *qso, struct ac_counterpart *ctp){ int px1, py1, px2, py2, px3, py3, px4, py4, px, py, px11, py11, px12, py12; //dbg("plot_path %d\n", sw->acs->path_valid); if (!ctp->path_valid) return; km2px_d(sw, qso->kx, qso->ky, &px, &py); if (ctp->path_valid < 0){ // todo grey path z_line(surface, sw->ox, sw->oy, px, py, gacs->normal); return; } km2px_d(sw, ctp->arm1kx, ctp->arm1ky, &px11, &py11); km2px_d(sw, ctp->arkx[0], ctp->arky[0], &px1, &py1); km2px_d(sw, ctp->arkx[1], ctp->arky[1], &px2, &py2); km2px_d(sw, ctp->arm1kx, ctp->arm1ky, &px12, &py12); km2px_d(sw, ctp->arkx[2], ctp->arky[2], &px3, &py3); km2px_d(sw, ctp->arkx[3], ctp->arky[3], &px4, &py4); z_line(surface, sw->ox, sw->oy, px12, py12, gacs->normal); z_line(surface, px11, py11, px, py, gacs->normal); z_line(surface, px1, py1, px2, py2, sdl->yellow); z_line(surface, px2, py2, px3, py3, sdl->yellow); z_line(surface, px3, py3, px4, py4, sdl->yellow); z_line(surface, px4, py4, px1, py1, sdl->yellow); } void ac_zorder(struct subwin *sw, struct ac *ac){ int px, py; int vx,vy,vx1,vy1,vx2,vy2; int undercursor; double rad, r; struct ac_counterpart *ctp = sw->type == SWT_KST ? &gacs->infoqso : &gacs->tmpqso; struct ac_result *res = sw->type == SWT_KST ? &ac->infores : &ac->tmpres; km2px_d(sw, ac->kx, ac->ky, &px, &py); r = 16; rad = atan2((double)(ac->paky - ac->ky), (double)(ac->pakx - ac->kx)); vx = (int)(px + 0.6*r * cos(rad) + 0.5); vy = (int)(py + 0.6*r * sin(rad) + 0.5); vx1 = (int)(px - 0.4*r * cos(rad + 0.6) + 0.5); vy1 = (int)(py - 0.4*r * sin(rad + 0.6) + 0.5); vx2 = (int)(px - 0.4*r * cos(rad - 0.6) + 0.5); vy2 = (int)(py - 0.4*r * sin(rad - 0.6) + 0.5); undercursor = 0; if (sw->mx >= z_min3_d(vx, vx1, vx2) && sw->my >= z_min3_d(vy, vy1, vy2) && sw->mx <= z_max3_d(vx, vx1, vx2) && sw->my <= z_max3_d(vy, vy1, vy2)) undercursor = 1; if (undercursor){ ac->zorder = ACZO_CURSOR; }else if (ctp->path_valid == 1 && res->under){ ac->zorder = ACZO_LOWALT; }else if (ctp->path_valid == 1 && res->crossing){ ac->zorder = ACZO_CROSSING; }else{ ac->zorder = ACZO_NORMAL; } } // main thread, acs->sh locked void plot_ac(struct subwin *sw, struct ac *ac){ int px, py, opx, opy/*, bpx, bpy*/; double rad,r; int vx,vy,vx1,vy1,vx2,vy2; int fcolor, bcolor, undercursor; struct ac_counterpart *ctp = sw->type == SWT_KST ? &gacs->infoqso : &gacs->tmpqso; struct ac_result *res = sw->type == SWT_KST ? &ac->infores : &ac->tmpres; //todo outline km2px_d(sw, ac->kx, ac->ky, &px, &py); r = 16; //dbg("qtf=%f %f \n", ac->qtf, ac->qtf * 180.0 / M_PI); rad = atan2((double)(ac->paky - ac->ky), (double)(ac->pakx - ac->kx)); vx = (int)(px + 0.6*r * cos(rad) + 0.5); vy = (int)(py + 0.6*r * sin(rad) + 0.5); vx1 = (int)(px - 0.4*r * cos(rad + 0.6) + 0.5); vy1 = (int)(py - 0.4*r * sin(rad + 0.6) + 0.5); vx2 = (int)(px - 0.4*r * cos(rad - 0.6) + 0.5); vy2 = (int)(py - 0.4*r * sin(rad - 0.6) + 0.5); undercursor = 0; if (sw->mx >= z_min3_d(vx, vx1, vx2) && sw->my >= z_min3_d(vy, vy1, vy2) && sw->mx <= z_max3_d(vx, vx1, vx2) && sw->my <= z_max3_d(vy, vy1, vy2)) undercursor = 1; if (undercursor){ fcolor = z_makecol(21, 193, 106); bcolor = z_makecol(15, 150, 70); }else if (ctp->path_valid == 1 && res->under){ fcolor = z_makecol(128, 128, 128); bcolor = z_makecol(64, 64, 64); }else if (ctp->path_valid == 1 && res->crossing){ fcolor = z_makecol(0, 160, 224); bcolor = z_makecol(0, 120, 195); }else{ fcolor = z_makecol(192, 192, 192); bcolor = z_makecol(128, 128, 128); } z_triangle(sw->screen, vx, vy, vx1, vy1, vx2, vy2, bcolor); z_line(sw->screen, vx, vy, vx1, vy1, fcolor); z_line(sw->screen, vx, vy, vx2, vy2, fcolor); z_line(sw->screen, vx1, vy1, vx2, vy2, fcolor); z_putpixel(sw->screen, px, py, fcolor); vx = (int)(px + 0.6*r * cos(rad)); vy = (int)(py + 0.6*r * sin(rad)); vx1 = (int)(px - 0.4*r * cos(rad + 0.6)); vy1 = (int)(py - 0.4*r * sin(rad + 0.6)); vx2 = (int)(px - 0.4*r * cos(rad - 0.6)); vy2 = (int)(py - 0.4*r * sin(rad - 0.6)); if (undercursor) { opx = px; opy = py; km2px_d(sw, ac->pakx, ac->paky, &px, &py); z_line(sw->screen, opx, opy, px, py, fcolor); if (!sw->ac_plotinfo) plot_info_ac(sw, sw->screen, ac); return; } if (!res->crossing) return; if (!ctp->path_valid) return; opx = px; opy = py; km2px_d(sw, res->startkx, res->startky, &px, &py); z_line(sw->screen, opx, opy, px, py, gacs->normal); opx = px; opy = py; km2px_d(sw, res->stopkx, res->stopky, &px, &py); z_line(sw->screen, opx, opy, px, py, gacs->active); opx = px; opy = py; km2px_d(sw, ac->pakx, ac->paky, &px, &py); z_line(sw->screen, opx, opy, px, py, gacs->normal); } void plot_info_ac(struct subwin *sw, SDL_Surface *surface, struct ac *ac){ int x, y, color; SDL_Rect rect, oldrect; struct tm utc; time_t diff; struct ac_result *res; x = sw->info.x + 4; //y = sw->info.y + 4 + 18 * FONT_H; y = sw->info.y; rect.x = sw->info.x; // same as plot_info_qso rect.y = y; rect.w = sw->info.w; //rect.h = sw->y - y; rect.h = sw->info.y + (11 * FONT_H) + 12; SDL_GetClipRect(sw->screen, &oldrect); SDL_SetClipRect(sw->screen, &rect); SDL_FillRect(sw->screen, &rect, z_makecol(0,0,35)) ; if (ac){ sw->ac_plotinfo = 1; color=z_makecol(21, 193, 106); zsdl_printf(sw->screen, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_ASL_5D_M), ac->asl); y+=FONT_H+4; zsdl_printf(sw->screen, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_SPEED4D_KMH), ac->speed); y+=FONT_H+4; res = sw->type == SWT_KST ? &ac->infores : &ac->tmpres; if (res->start != (time_t)0){ diff = res->start - time(NULL); gmtime_r(&res->start, &utc); zsdl_printf(sw->screen, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_AC_START), utc.tm_hour, utc.tm_min, ((long)diff) / 60, ((long)diff) % 60); y+=FONT_H+4; zsdl_printf(sw->screen, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_AC_DURAT_LD), (long)(res->stop - res->start)); y+=FONT_H+4; //zsdl_printf(sw->screen, x, y, color, 0, ZFONT_TRANSP, "Angle: %d", (int)(res->angle * 180.0 / M_PI)); y+=FONT_H+4; } } SDL_SetClipRect(sw->screen, &oldrect); } void acs_redraw(struct subwin *sw, struct acs *acs){ struct ac *ac; int i, z; //dbg("------- acs_redraw\n"); if (!gacs) return; MUTEX_LOCK(acs->sh); sw->ac_plotinfo = 0; if (acs->sh.acs){ for (i = 0; i < acs->sh.acs->len; i++){ ac = (struct ac *)g_ptr_array_index(acs->sh.acs, i); ac_zorder(sw, ac); } for (z = ACZO_LOWALT; z <= ACZO_CURSOR; z++){ for (i = 0; i < acs->sh.acs->len; i++){ ac = (struct ac *)g_ptr_array_index(acs->sh.acs, i); if (ac->zorder == z) plot_ac(sw, ac); } } } if (!sw->ac_plotinfo) plot_info_ac(sw, sw->screen, NULL); MUTEX_UNLOCK(acs->sh); } #endif /* static void ac_fill_band_ac_k(struct band *b){ if (b->qrg_min < 200000) b->ac_k = 1.37; else if (b->qrg_min < 500000) b->ac_k = 0.92; else if (b->qrg_min < 1400000) b->ac_k = 0.8; else if (b->qrg_min < 3000000) b->ac_k = 0.77; else if (b->qrg_min < 4000000) b->ac_k = 0.75; else if (b->qrg_min < 6000000) b->ac_k = 0.72; else b->ac_k = 0.7; b->ac_k = 1; } */ double acs_min_asl(struct acs *acs, double qrb, struct band *b, double elev_rad){ double k = 1.0; /*if (b && b->ac_k == 0.0) ac_fill_band_ac_k(b); k = b ? b->ac_k : 0.8;*/ return k * ZLOC_R_EARTH * cfg->ac_kfactor * ( 1 / cos(qrb / (ZLOC_R_EARTH * cfg->ac_kfactor)) - 1) + qrb * sin(elev_rad); } double acs_max_qrb(struct acs *acs, double asl, struct band *b, double elev_rad){ double k = 1.0, asl2, qrb; /*if (b && b->ac_k == 0.0) ac_fill_band_ac_k(b); k = b ? b->ac_k : 0.8;*/ if (elev_rad <= 0.0){ return ZLOC_R_EARTH * cfg->ac_kfactor * acos( 1 / (1 + (asl * k)/(ZLOC_R_EARTH * cfg->ac_kfactor))); } qrb = 0; while(1){ asl2 = acs_min_asl(acs, qrb, b, elev_rad); if (asl2 > asl) return qrb; qrb += 5.0; } //return qrb; } void acs_http_timer(void *arg){ struct acs *acs = (struct acs *)arg; acs->http_timer = 0; if (acs->http){ zhttp_free(acs->http); acs->http = NULL; } acs->http = zhttp_init(); zhttp_get(acs->http, zsel, acs->url, acs_downloaded_callback, acs); acs->http_timer = zselect_timer_new(zsel, 50*1000, acs_http_timer, acs); // restart when freezes dbg("acs_timer: zhttp_get\n"); } void acs_downloaded_callback(struct zhttp *http){ char *data; struct timeval tv; int remains; struct acs *acs = (struct acs *)http->arg; if (acs->http_timer){ zselect_timer_kill(zsel, acs->http_timer); acs->http_timer = 0; } data = g_new(char, http->response->len + 1); zbinbuf_getstr(http->response, http->dataofs, data, http->response->len + 1); dbg("acs_downloaded_callback\n"); zhttp_free(http); acs->http = NULL; gettimeofday(&tv, NULL); remains = 60000 - ((tv.tv_sec % 60) * 1000 + tv.tv_usec/1000); acs->http_timer = zselect_timer_new(zsel, remains, acs_http_timer, acs); MUTEX_LOCK(acs->sh); g_free(acs->sh.data); acs->sh.data = data; MUTEX_UNLOCK(acs->sh); } gpointer acs_thread(gpointer arg){ struct acs *acs = (struct acs *)arg; int new_tmpctp = 0; int new_infoctp = 0; zg_thread_set_name("Tucnak A/C"); while (!acs->thread_break){ char *data; struct ac *ac; int i, j; for (i = 0; i < 10; i++) { if (acs->sh.new_tmpctp) break; if (acs->sh.new_infoctp) break; if (acs->thread_break) break; usleep(100000); } MUTEX_LOCK(acs->sh); if (acs->sh.data){ data = acs->sh.data; acs->sh.data = NULL; acs->th.myh = acs->sh.myh; acs->th.myw = acs->sh.myw; MUTEX_UNLOCK(acs->sh); acs->th.acs = g_ptr_array_new(); if (strncmp(data, "{\"full_count\":", 14) == 0){ acs_load(acs, data); }else{ acs_load2(acs, data); } g_free(data); MUTEX_LOCK(acs->sh); zg_ptr_array_free_all(acs->sh.acs); acs->sh.acs = acs->th.acs; acs->th.acs = NULL; } if (acs->sh.new_tmpctp){ acs->tmpqso.qrb = acs->sh.tmpctpqrb; acs->tmpqso.qtfrad = acs->sh.tmpctpqtf * M_PI / 180.0; acs->sh.new_tmpctp = 0; new_tmpctp = 1; } if (acs->sh.new_infoctp){ acs->infoqso.qrb = acs->sh.infoctpqrb; acs->infoqso.qtfrad = acs->sh.infoctpqtf * M_PI / 180.0; acs->sh.new_infoctp = 0; new_infoctp = 1; } MUTEX_UNLOCK(acs->sh); if (acs->sh.acs){ if (new_tmpctp) { ac_compute_area(acs, &acs->tmpqso); new_tmpctp = 0; } if (new_infoctp) { ac_compute_area(acs, &acs->infoqso); new_infoctp = 0; } //ST_START(); for (i = 0; i < acs->sh.acs->len; i++){ ac = (struct ac *)g_ptr_array_index(acs->sh.acs, i); ac_compute(acs, ac, &acs->tmpqso, &ac->tmpres); if (acs->thread_break) break; } for (i = 0; i < acs->sh.acs->len; i++){ ac = (struct ac *)g_ptr_array_index(acs->sh.acs, i); ac_compute(acs, ac, &acs->infoqso, &ac->infores); if (acs->thread_break) break; } for (j = 0; j < qrv->qrvs->len; j++){ struct qrv_item *qi; time_t start = 0; int n = 0; time_t interval = 0; struct ac_counterpart *ctp = &acs->qrvqso; struct ac_result *res; if (acs->sh.new_tmpctp) break; if (acs->sh.new_infoctp) break; MUTEX_LOCK(qrv->qrvs); if (j >= qrv->qrvs->len) goto next; qi = (struct qrv_item*)g_ptr_array_index(qrv->qrvs, j); if (!qi->ac_drawn) { //qi->ac_start = (time_t)0; goto next; } /*if (strcmp(qi->call, "S57C") == 0){ int aa = 0; } */ //ctp->qrb = qi->qrb; hw2qrbqtf(acs->th.myh, acs->th.myw, qth(qi->wwl, 0), qth(qi->wwl, 1), &ctp->qrb, &ctp->qtfrad); //ctp->qtfrad = qi->qtf * M_PI / 180.0; ac_compute_area(acs, ctp); if (ctp->path_valid != 1) { qi->ac_start = 0; goto next; } for (i = 0; i < acs->sh.acs->len; i++){ ac = (struct ac *)g_ptr_array_index(acs->sh.acs, i); res = &ac->qrvres; ac_compute(acs, ac, ctp, res); if (res->crossing){ if (n == 0){ start = res->start; }else{ start = Z_MIN(start, res->start); } interval += res->stop - res->start; n++; } if (acs->thread_break) goto next; } if (interval < cfg->ac_mindur){ qi->ac_start = (time_t)0; }else{ //dbg("SET: %s %d\n", qi->call, qi->ac_interval); qi->ac_start = start; qi->ac_interval = interval; qi->ac_n = n; } next:; MUTEX_UNLOCK(qrv->qrvs); if (acs->thread_break) break; } //ST_STOP("ac_recompute"); zselect_msg_send(zsel, "AC;r"); } } return NULL; } void acs_update_qth(struct acs *acs, struct subwin *sw){ if (!acs) return; MUTEX_LOCK(acs->sh); if (acs->sh.myh != sw->myh || acs->sh.myw != sw->myw){ MUTEX_UNLOCK(acs->sh); free_acs(acs); gacs = init_acs(); return; } //acs->sh.myh = sw->myh; //acs->sh.myw = sw->myw; MUTEX_UNLOCK(acs->sh); } void ac_redraw(){ if (!gses) return; #ifdef Z_HAVE_SDL if (gses->ontop->type == SWT_MAP || gses->ontop->type == SWT_KST){ gses->ontop->gdirty = 1; } #endif redraw_later(); } void ac_update_tmpctp(char *wwl){ struct acs *acs; if (!gacs) return; if (!gses) return; if (gses->ontop->type != SWT_MAP && gses->ontop->type != SWT_KST) return; acs = gacs; dbg("ac_update_tmpctp(%s)\n", wwl); MUTEX_LOCK(acs->sh); if (!wwl || strlen(wwl) < 6){ acs->tmpqso.path_valid = 0; }else{ qrbqtf(ctest ? ctest->pwwlo : cfg->pwwlo, wwl, &acs->sh.tmpctpqrb, &acs->sh.tmpctpqtf, NULL, 0); acs->sh.new_tmpctp = 1; acs->tmpqso.path_valid = 1; } MUTEX_UNLOCK(acs->sh); } void ac_update_infoctp(char *wwl){ struct acs *acs; if (!gses) return; //if (gses->ontop->type != SWT_MAP) return; acs = gacs; dbg("ac_update_infoctp(%s)\n", wwl); MUTEX_LOCK(acs->sh); if (!wwl || !*wwl){ acs->infoqso.path_valid = 0; }else{ qrbqtf(ctest ? ctest->pwwlo : cfg->pwwlo, wwl, &acs->sh.infoctpqrb, &acs->sh.infoctpqtf, NULL, 0); acs->sh.new_infoctp = 1; acs->infoqso.path_valid = 1; } MUTEX_UNLOCK(acs->sh); } void ac_format(struct qrv_item *qi, char *acstart, char *acint, int flags){ struct tm utc; time_t diff; if (!gacs || !qi || qi->ac_start == (time_t)0){ if (flags & 1) strcpy(acstart, " "); else strcpy(acstart, " "); strcpy(acint, " "); }else{ diff = qi->ac_start - time(NULL); if (diff < 0 && diff > -3) diff = 0; /*if (diff < 0){ strcpy(acstart, "---"); }else if (diff >= 3600){ strcpy(acstart, "+++"); dbg("diff = %ld\n", (long)diff); }else*/{ gmtime_r(&qi->ac_start, &utc); if (flags & 1) sprintf(acstart, "%02d:%02d:%02d %02dm%02d", utc.tm_hour, utc.tm_min, utc.tm_sec, (int)((diff / 60) % 60), (int)(diff / 60)); else sprintf(acstart, "%02dm%02d", (int)((diff / 60) % 60), (int)(diff / 60)); } //dbg("%s: %02d:%02d:%02d start=%3ld diff=%3ld\n", qi->call, utc.tm_hour, utc.tm_min, utc.tm_sec, (long)(qi->ac_start % 60), (long)diff); //dbg("%s: start=%ld now=%ld -=%ld diff=%ld\n", qi->call, (long)qi->ac_start % 1000, (long)time(NULL) % 1000, (long)qi->ac_start - (long)time(NULL), (long)diff); if (qi->ac_interval < 0){ sprintf(acint, "--- %2d", qi->ac_n); }else if (qi->ac_interval > 999){ sprintf(acint, "+++ %2d", qi->ac_n); }else{ sprintf(acint, "%3ld %2d", (long)qi->ac_interval, qi->ac_n); } if ((flags & 1) == 0) strcat(acint, " "); } } tucnak-4.04/src/wizz.h0000644000175000017500000000250712032321203011602 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __WIZZ_H #define __WIZZ_H #include "header.h" #include "qsodb.h" struct wizz_qsomult_item{ struct wizz_qsomult_item *next; char bandchar; int qsomult; }; struct wizz_item{ gchar *tname, *pexch; enum tttype tttype; int qsoused, qsomult, qsoglob; int wwlused, wwlbonu, wwlmult, wwlcfm; int excused, excbonu, excmult, exccfm; enum exctype exctype; gchar *excname; int rstused, defrstr; int prefmult, prefglob; int dxcbonu, dxcmult; gint qsop_method, total_method; gchar *bands; struct wizz_qsomult_item *qsomults; }; struct wizz{ GPtrArray *items; /* struct wizz_item */ }; extern struct wizz *wizz; struct wizz *init_wizz(void); void free_wizz_item(struct wizz_item *wi); void free_wizz(struct wizz *wizz); struct wizz_item *find_wizz(struct wizz *wizz, gchar *tname); int load_wizz_from_file(struct wizz *wizz, gchar *filename); void read_wizz_files(struct wizz *wizz); struct wizz_item *get_wizz(struct wizz *wizz, int i); struct wizz_item *find_wizz(struct wizz *wizz, gchar *tname); #endif tucnak-4.04/src/adif.c0000644000175000017500000003617012460207027011514 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "language2.h" #include "net.h" #include "qsodb.h" #include "stats.h" #include "tsdl.h" #define ADIF_STR(iname,item) if (strlen(item)) g_string_sprintfa(gs,"<%s:%d>%s ",iname, (int)strlen(item),safe_strncpy0(s,item,1024)) #define ADIF_STR_UC(iname,item) if (strlen(item)) g_string_sprintfa(gs,"<%s:%d>%s ",iname,(int)strlen(item),z_str_uc(safe_strncpy0(s,item,1024))) #define ADIF_DATE(iname,item) if (strlen(item)) g_string_sprintfa(gs,"<%s:%d>%s ",iname, (int)strlen(item),safe_strncpy0(s,item,1024)) #define ADIF_INT(iname,item) sprintf(s,"%d",item); g_string_sprintfa(gs,"<%s:%d>%s ",iname, (int)strlen(s),s) static gchar *convert_lt(gchar *s){ char *c; for (c=s; *c!='\0'; c++) if (*c=='<') *c='('; return s; } static int write_adif_header(struct band *b, struct config_band *confb, FILE *f){ char s[1024],dummy[10], *psect; GString *gs; int ret; switch(b->psect){ case 1: psect="Single"; break; case 2: psect="Check"; break; default: psect="Multi"; break; } gs = g_string_sized_new(1024); g_string_sprintfa(gs, "Created by TUCNAK-%s ver. %s\r\n", Z_PLATFORM, VERSION_STRING); g_string_sprintfa(gs, "TName=%s\r\n", safe_strncpy0(s, ctest->tname, 69)); if (!b->qsos->len) g_string_sprintfa(gs, "TDate=%s;%s\r\n", ctest->cdate, ctest->cdate); else g_string_sprintfa(gs, "TDate=%d;%d\r\n", b->stats->first_date, b->stats->last_date); g_string_sprintfa(gs, "PCall=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pcall, 69))); g_string_sprintfa(gs, "PWWLo=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pwwlo, 69))); g_string_sprintfa(gs, "PExch=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pexch, 69))); g_string_sprintfa(gs, "PAdr1=%s\r\n", safe_strncpy0(s, ctest->padr1, 69)); g_string_sprintfa(gs, "PAdr2=%s\r\n", safe_strncpy0(s, ctest->padr2, 69)); g_string_sprintfa(gs, "PSect=%s\r\n", psect); /* g_string_sprintfa(gs, "PBand=%s\r\n", b->pband);*/ g_string_sprintfa(gs, "PClub=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pclub, 69))); g_string_sprintfa(gs, "RName=%s\r\n", safe_strncpy0(s, ctest->rname, 69)); g_string_sprintfa(gs, "RCall=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->rcall, 69))); g_string_sprintfa(gs, "RAdr1=%s\r\n", safe_strncpy0(s, ctest->radr1, 69)); g_string_sprintfa(gs, "RAdr2=%s\r\n", safe_strncpy0(s, ctest->radr2, 69)); g_string_sprintfa(gs, "RPoCo=%s\r\n", safe_strncpy0(s, ctest->rpoco, 69)); g_string_sprintfa(gs, "RCity=%s\r\n", safe_strncpy0(s, ctest->rcity, 69)); g_string_sprintfa(gs, "RCoun=%s\r\n", safe_strncpy0(s, ctest->rcoun, 69)); g_string_sprintfa(gs, "RPhon=%s\r\n", safe_strncpy0(s, ctest->rphon, 69)); g_string_sprintfa(gs, "RHBBS=%s\r\n", safe_strncpy0(s, ctest->rhbbs, 69)); /* g_string_sprintfa(gs, "MOpe1=%s\r\n", z_str_uc(safe_strncpy0(s, b->mope1, 69))); g_string_sprintfa(gs, "MOpe2=%s\r\n", z_str_uc(safe_strncpy0(s, b->mope2, 69))); g_string_sprintfa(gs, "STXEq=%s\r\n", safe_strncpy0(s, b->stxeq, 69)); g_string_sprintfa(gs, "SPowe=%s\r\n", safe_strncpy0(s, b->spowe, 69)); g_string_sprintfa(gs, "SRXEq=%s\r\n", safe_strncpy0(s, b->srxeq, 69)); g_string_sprintfa(gs, "SAnte=%s\r\n", safe_strncpy0(s, b->sante, 69)); g_string_sprintfa(gs, "SAntH=%s\r\n", safe_strncpy0(s, b->santh, 69)); g_string_sprintfa(gs, "CQSOs=%d;%d\r\n", b->stats->nqsos, b->bandmulti); g_string_sprintfa(gs, "CQSOP=%d\r\n", b->stats->nqsop); g_string_sprintfa(gs, "CWWLs=%d;%d;%d\r\n", g_hash_table_size(b->stats->wwls), ctest->wwlbonu, ctest->wwlmult==0 ? 1 : ctest->wwlmult); g_string_sprintfa(gs, "CWWLB=%d\r\n", g_hash_table_size(b->stats->wwls) * ctest->wwlbonu); g_string_sprintfa(gs, "CExcs=%d;%d;%d\r\n", g_hash_table_size(b->stats->excs), ctest->excbonu, ctest->excmult==0 ? 1 : ctest->excmult); g_string_sprintfa(gs, "CExcB=%d\r\n", g_hash_table_size(b->stats->excs) * ctest->excbonu); g_string_sprintfa(gs, "CDXCs=%d;%d;%d\r\n", g_hash_table_size(b->stats->dxcs), ctest->dxcbonu, ctest->dxcmult==0 ? 1 : ctest->dxcmult); g_string_sprintfa(gs, "CDXCB=%d\r\n", g_hash_table_size(b->stats->dxcs) * ctest->dxcbonu); g_string_sprintfa(gs, "CToSc=%d\r\n", b->stats->ntotal); g_string_sprintfa(gs, "CODXC=%s;", z_str_uc(safe_strncpy0(s, b->stats->odxcall, 20))); g_string_sprintfa(gs, "%s;%d\r\n", z_str_uc(safe_strncpy0(s, b->stats->odxwwl, 20)), b->stats->odxqrb_int); */ convert_lt(gs->str); strcpy(dummy,"1.00"); ADIF_STR("adif_ver",dummy); g_string_sprintfa(gs, "\r\n"); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_adif_qsos(struct band *b, struct config_band *confb, FILE *f){ struct qso *q; GString *gs; int i; int ret; char s[1024]; char *adif_modes[]={ "", "SSB", "CW", "SSB", "SSB", "AM", /* 5 */ "FM", "RTTY", "SSTV", "ATV" /* 9 */ }; gs = g_string_new(""); for (i=0; iqsos->len; i++){ q = get_qso(b, i); ADIF_STR_UC("BAND",confb->adifband); ADIF_DATE ("QSO_DATE",q->date_str); ADIF_STR ("TIME_ON",q->time_str); if (q->error){ ADIF_STR_UC("CALL","ERROR"); }else{ ADIF_STR_UC("CALL",q->callsign); } ADIF_STR ("MODE",adif_modes[abs(q->mode)%10]); /* TODO sent vs rcvd */ ADIF_STR_UC("RST_SENT",q->rsts); ADIF_STR_UC("NO_SENT",q->qsonrs); if (ctest->excused > 0 && ctest->qsoused == 0){ ADIF_STR_UC("STX",ctest->pexch); }else{ ADIF_STR_UC("STX",q->qsonrs); } ADIF_STR_UC("RST_RCVD",q->rstr); if (ctest->excused > 0 && ctest->qsoused == 0){ ADIF_STR_UC("SRX",q->exc); }else{ ADIF_STR_UC("SRX",q->qsonrr); } ADIF_STR_UC("NO_RCVD",q->qsonrr); ADIF_STR_UC("GRIDSQUARE",q->locator); ADIF_INT ("QRB", (int)q->qrb); ADIF_INT ("QTF", q->qtf); ADIF_INT ("POINTS", q->qsop); ADIF_STR_UC("OPERATOR",q->operator_); ADIF_STR ("COMMENT",q->remark); /* ES,MS,AUR,TR,RS,AUE,BS,EME,FAI,F2,ION,LOS,SAT,TEP,TRS,TRD */ if (q->rsts && strlen(q->rsts)>=3 && q->rsts[2]=='A'){ ADIF_STR ("PROP_MODE","AUR"); }else if (q->rsts && strlen(q->rsts)==3 && q->rsts[2]=='S'){ ADIF_STR ("PROP_MODE","RS"); }else if (q->rsts && strlen(q->rsts)==3 && q->rsts[2]=='F'){ ADIF_STR ("PROP_MODE","FAI"); }else{ ADIF_STR ("PROP_MODE","TR"); } if (q->qrg){ sprintf(s,"%d.%06d",(int)(q->qrg/1000000.0), (int)fmod(q->qrg, 1000000.0)); g_string_sprintfa(gs,"<%s:%d>%s ", "FREQ", (int)strlen(s),s); } g_string_sprintfa(gs, "\r\n"); /*g_string_sprintfa(gs, "%s\r\n", gs->str);*/ } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } int export_all_bands_adif(void){ struct band *band; struct config_band *confb; int i, err; gchar *filename; FILE *f; char callbuf[20]; int ignoreerror=0; int header_saved=0; if (!ctest) return -1; dbg("export_all_bands_adif()\n"); filename = g_strdup_printf("%s/%s_%s.adif", ctest->directory, ctest->cdate, z_get_raw_call(callbuf,ctest->pcall)); z_wokna(filename); f=fopen(filename,"wb"); /* must be b for windoze */ if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} g_free(filename); return -1; } err = 0; for (i=0; ibands->len; i++){ band = g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); progress(VTEXT(T_EXPORTING_S), band->bandname); stats_thread_join(band); if (band->stats->nqsos <=0) continue; if (!header_saved){ err|=write_adif_header(band,confb,f); header_saved=1; } err|=write_adif_qsos (band,confb,f); } fclose(f); if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } g_free(filename); progress(NULL); return -1; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); progress(NULL); return 0; } static int adif_ignore(FILE *f){ int cc; while ((cc=fgetc(f))!=EOF){ if (cc=='<') return '<'; } return EOF; } static int adif_read_tag(FILE *f, GString *gs, int *taglen){ int cc; gchar **items; g_string_truncate(gs, 0); while ((cc=fgetc(f))!=EOF){ if (cc=='>') { items = g_strsplit(gs->str,":",3); if (items[0]){ if (!items[1]) *taglen=0; else *taglen=atoi(items[1]); gs->str[strlen(items[0])]='\0'; z_str_uc(gs->str); } g_strfreev(items); return 0; } g_string_append_c(gs, cc); } return EOF; } static gchar *adif_item(GHashTable *hash, gchar *key) { return g_hash_table_lookup(hash,key); } #define ADIF_ITEM(key) adif_item(hash,(key)) static gchar *safe_adif_item(GHashTable *hash, gchar *key) { gchar *tmp; tmp=g_hash_table_lookup(hash,key); return (tmp?tmp:""); } #define SAFE_ADIF_ITEM(key) safe_adif_item(hash,(key)) static int adif_add_qso(struct band *band, GHashTable *hash){ struct qso *q; struct band *b; int i; /* mandatory */ gchar *call, *rsts, *rstr,*qso_date,*time_on; /* optional */ gchar *mode; gchar *band_str; int qrg; /* kHz */ call=ADIF_ITEM("CALL"); rsts=ADIF_ITEM("RST_SENT"); rstr=ADIF_ITEM("RST_RCVD"); qso_date=ADIF_ITEM("QSO_DATE"); time_on=ADIF_ITEM("TIME_ON"); if (!call || strcasecmp(call,"ERROR")!=0){ if (!call || !rsts || !rstr || !qso_date || !time_on){ dbg("Incomplete record (call='%s', rsts='%s', rstr='%s', qso_date='%s', time_on='%s'\n", call, rsts, rstr,qso_date,time_on); return -1; } } b=NULL; band_str=ADIF_ITEM("BAND"); if (band_str){ for (i=0;ibands->len;i++){ struct config_band *cb=(struct config_band *)g_ptr_array_index(cfg->bands, i); if (!cb->adifband) continue; if (strcasecmp(cb->adifband, band_str)) continue; b=find_band_by_bandchar(cb->bandchar); } } qrg=1000*atoi(SAFE_ADIF_ITEM("FREQ")); if (!b && qrg>0){ for (i=0;ibands->len;i++){ struct config_band *cb=(struct config_band *)g_ptr_array_index(cfg->bands, i); if (cb->qrg_min<=0) continue; if (cb->qrg_max<=0) continue; if (qrgqrg_min || qrg>cb->qrg_max) continue; b=find_band_by_bandchar(cb->bandchar); } } if (!b) b=band; /* default is active band */ q=g_new0(struct qso, 1); q->date_str=g_strdup(SAFE_ADIF_ITEM("QSO_DATE")); q->time_str=g_strdup(SAFE_ADIF_ITEM("TIME_ON")); if (strlen(q->time_str)>4) q->time_str[4]='\0'; if (strcasecmp(call,"ERROR")==0) { q->error=1; q->callsign=g_strdup(""); }else{ q->callsign=z_str_uc(g_strdup(call)); } mode=SAFE_ADIF_ITEM("MODE"); if (!strcasecmp(mode, "SSB")) q->mode=1; else if (!strcasecmp(mode, "CW")) q->mode=2; else if (!strcasecmp(mode, "RTTY")) q->mode=7; else if (!strcasecmp(mode, "AM")) q->mode=5; else if (!strcasecmp(mode, "FM")) q->mode=6; else if (!strcasecmp(mode, "SSTV")) q->mode=8; else if (!strcasecmp(mode, "ATV")) q->mode=9; q->rsts=g_strdup(SAFE_ADIF_ITEM("RST_SENT")); if (ADIF_ITEM("STX")){ q->qsonrs=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("STX"))); }else{ q->qsonrs=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("NO_SENT"))); } q->rstr=g_strdup(SAFE_ADIF_ITEM("RST_RCVD")); if (ADIF_ITEM("SRX")){ q->qsonrr=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("SRX"))); }else{ q->qsonrr=g_strdup_printf("%03d", atoi(SAFE_ADIF_ITEM("NO_RCVD"))); } q->exc=g_strdup(""); q->locator=g_strdup(SAFE_ADIF_ITEM("GRIDSQUARE")); q->source=g_strdup(gnet->myid); q->operator_=fixsemi(g_strdup(SAFE_ADIF_ITEM("OPERATOR"))); q->qrg = 0; q->stamp=time(NULL); q->remark=fixsemi(g_strdup(SAFE_ADIF_ITEM("COMMENT"))); q->ser_id=-1; /* computed by add_qso_to_index */ compute_qrbqtf(q); add_qso(b, q); /* update_stats(band->stats, band, q);*/ return 0; } void import_adif(void *xxx, char *filename){ FILE *f; int cc, taglen = 0; GString *gs, *gs2; GHashTable *hash; int gs2size; int i; f = fopen(filename, "r"); if (!f) return; cc = fgetc(f); if (cc==EOF) { fclose(f); return;} if (cc!='<') adif_ignore(f); gs = g_string_sized_new(20); gs2 = g_string_sized_new(gs2size=20); hash = g_hash_table_new(g_str_hash, g_str_equal); while (adif_read_tag(f, gs, &taglen)!=EOF){ if (taglen+1>gs2size){ g_string_free(gs2,1); gs2=g_string_sized_new(gs2size=taglen+1); } /* g_string_set_size(gs2, taglen+1); not present in glib1*/ memset(gs2->str, 0, taglen+1); if (taglen) if (!fread(gs2->str,taglen,1, f)) break; /* dbg(" tag='%s' \tvalue: '%s'\n", gs->str, gs2->str);*/ if (strcasecmp(gs->str, "EOR")==0){ /* dbg("-------------------------\n"); dbg_str_hash(hash);*/ adif_add_qso(aband, hash); g_hash_table_foreach_remove(hash, zg_hash_free_item, NULL); }else{ zg_hash_safe_insert(hash, g_strdup(gs->str), g_strdup(gs2->str)); } adif_ignore(f); } g_string_free(gs, TRUE); g_string_free(gs2, TRUE); g_hash_table_foreach_remove(hash, zg_hash_free_item, NULL); g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); z_ptr_array_qsort(ctest->allqsos, compare_date_time_qsonrs); /* don't needed DIRTY_BAND(); */ for (i=0;ibands->len;i++){ struct band *b=(struct band *)g_ptr_array_index(ctest->bands,i); recalc_stats(b); clear_tmpqsos(b, 1); if (ctest->qsoused && b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); } } return; } tucnak-4.04/src/language2.h0000644000175000017500000000132312307152506012454 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __LANGUAGE2_H #define __LANGUAGE2_H extern char dummyarray[]; extern int current_language; void init_trans(void); void shutdown_trans(void); char *get_text_translation(char *); char *get_english_translation(char *); void set_language(int); int n_languages(void); char *language_name(int); #define _(_x_) get_text_translation(_x_) #define CTEXT(x) (dummyarray + x) #define VTEXT(_x_) get_text_translation(CTEXT(_x_)) #endif tucnak-4.04/src/state.h0000644000175000017500000000164212230170432011724 00000000000000/* Tucnak - VHF contest log Copyright (C) 2013 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __STATE_H #define __STATE_H #include "header.h" #ifdef Z_ANDROID #include #endif struct state{ GHashTable *hash; #ifdef Z_ANDROID JNIEnv *env; #endif }; struct state *init_state(void); void free_state(struct state *); void state_test(struct state *state); void state_save(struct state *state); void state_restore(struct state *state); void state_putstr(struct state *state, char *key, char *val); void state_dupstr(struct state *state, const char *key, const char *val); const char *state_getstr(struct state *state, const char *key); void state_foreach(struct state *state, GHFunc func, gpointer user_data); #endif tucnak-4.04/src/titlpage.c0000644000175000017500000001502712460207027012420 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "html.h" #include "qsodb.h" #include "rc.h" #include "stats.h" #include "tsdl.h" #define RESP cfg int export_all_bands_titlpage(){ struct band *band; int i,ptr, idlen, filetemplate; gchar *filename; FILE *f; char callbuf[20]; int ignoreerror=0; gchar *template_; gchar s[4100]; char *c; GString *gs; if (!ctest) return -1; dbg("export_all_bands_titlpage()\n"); filetemplate=0; #if 0 f=fopen(SHAREDIR"/titlpage.html", "rt"); if (!f){ /* log_addf(VTEXT(T_CANT_OPEN_S), SHAREDIR"/titlpage.html");*/ goto mem; } if (fstat(fileno(f), &st)){ fclose(f); /* log_addf(VTEXT(T_CANT_READ_S), SHAREDIR"/titlpage.html"); */ goto mem; } template_=g_new0(gchar, st.st_size+1); if (fread(template_, st.st_size, 1, f)!=1){ fclose(f); /* log_addf(VTEXT(T_CANT_READ_S), SHAREDIR"/titlpage.html");*/ goto mem; } fclose(f); filetemplate=1; mem:; #endif if (!filetemplate) template_=g_strdup(txt_titlpage); gs=g_string_new(""); for (i=0; ibands->len; i++){ band = (struct band*)g_ptr_array_index(ctest->bands, i); stats_thread_join(band); if (band->stats->nqsos <=0) continue; progress(VTEXT(T_EXPORTING_S), band->bandname); filename = g_strdup_printf("%s/%s_%s_%c_titlepage.html", ctest->directory, ctest->cdate, z_get_raw_call(callbuf,ctest->pcall), z_char_lc(band->bandchar)); z_wokna(filename); f=fopen(filename,"wt"); if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} g_free(filename); progress(NULL); return -1; } ptr=0; while((c=strchr(template_+ptr, '$'))!=NULL){ fwrite(template_+ptr, c-template_-ptr, 1, f); idlen=strspn(c+1, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"); safe_strncpy0(s, c+1, idlen+1); log_addf("id=%s idlen=%d\n", s, idlen); ptr=c-template_+1+idlen; if (strcasecmp(s, "PCall")==0){ fprintf(f, "%s", qh(gs, ctest->pcall)); }else if(strcasecmp(s, "CAvg")==0){ fprintf(f, "%d", band->stats->nqsos?band->stats->nqsop/band->stats->nqsos:0); }else if(strcasecmp(s, "CDXCCS")==0){ fprintf(f, "%d", g_hash_table_size(band->stats->dxcs)); }else if(strcasecmp(s, "CODXCall")==0){ fprintf(f, "%s", qh(gs, band->stats->odxcall)); }else if(strcasecmp(s, "CODXloc")==0){ fprintf(f, "%s", qh(gs, band->stats->odxwwl)); }else if(strcasecmp(s, "CODXQRB")==0){ fprintf(f, "%d", band->stats->odxqrb_int); }else if(strcasecmp(s, "CQSOs")==0){ fprintf(f, "%d", band->stats->nqsos); }else if(strcasecmp(s, "CToSc")==0){ fprintf(f, "%d", band->stats->ntotal); }else if(strcasecmp(s, "Mope1")==0){ fprintf(f, "%s", qh(gs, band->mope1)); }else if(strcasecmp(s, "Mope2")==0){ fprintf(f, "%s", qh(gs, band->mope2)); }else if(strcasecmp(s, "NoOfPages")==0){ fprintf(f, "%d", (band->qsos->len+79)/40); }else if(strcasecmp(s, "PAddr1")==0){ fprintf(f, "%s", qh(gs, ctest->padr1)); }else if(strcasecmp(s, "PAddr2")==0){ fprintf(f, "%s", qh(gs, ctest->padr2)); }else if(strcasecmp(s, "PBand")==0){ fprintf(f, "%s", qh(gs, band->pband)); }else if(strcasecmp(s, "PSect")==0){ fprintf(f, "%d", band->psect); }else if(strcasecmp(s, "PSectName")==0){ fprintf(f, "%s", qh(gs, band->psect?"Single":"Multi")); }else if(strcasecmp(s, "PWWLo")==0){ fprintf(f, "%s", qh(gs, ctest->pwwlo)); }else if(strcasecmp(s, "RAddr1")==0){ fprintf(f, "%s", qh(gs, RESP->radr1)); }else if(strcasecmp(s, "RAddr2")==0){ fprintf(f, "%s", qh(gs, RESP->radr2)); }else if(strcasecmp(s, "RAnte")==0){ fprintf(f, "%s", qh(gs, band->sante)); /* anteny jsou stejny */ }else if(strcasecmp(s, "RCall")==0){ fprintf(f, "%s", qh(gs, RESP->rcall)); }else if(strcasecmp(s, "RCity")==0){ fprintf(f, "%s", qh(gs, RESP->rcity)); }else if(strcasecmp(s, "RName")==0){ fprintf(f, "%s", qh(gs, RESP->rname)); }else if(strcasecmp(s, "RPoCo")==0){ fprintf(f, "%s", qh(gs, RESP->rpoco)); }else if(strcasecmp(s, "RXEq")==0){ fprintf(f, "%s", qh(gs, band->srxeq)); }else if(strcasecmp(s, "SAnth")==0){ fprintf(f, "%s", qh(gs, band->santh)); }else if(strcasecmp(s, "SASL")==0){ /*fprintf(f, "%s", qh(gs, band->sasl));*/ }else if(strcasecmp(s, "SPowe")==0){ fprintf(f, "%s", qh(gs, band->spowe)); }else if(strcasecmp(s, "SPreamp")==0){ /* fprintf(f, "%s", qh(gs, "));*/ }else if(strcasecmp(s, "TDate")==0){ char t[100]; qh(gs, ctest->cdate); safe_strncpy0(t, gs->str, 98); fprintf(f, "%c%c.%c%c.%c%c%c%c",t[6],t[7], t[4],t[5], t[0],t[1],t[2],t[3]); }else if(strcasecmp(s, "TName")==0){ fprintf(f, "%s", qh(gs, ctest->tname)); }else if(strcasecmp(s, "TXEq")==0){ fprintf(f, "%s", qh(gs, band->stxeq)); }else{ fprintf(f, "XXXXXXXXXXX"); } } fprintf(f, "%s", template_+ptr); fclose(f); log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); } g_string_free(gs, TRUE); /* if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } g_free(filename); return -1; } */ progress(NULL); return 0; } tucnak-4.04/src/bfu.h0000644000175000017500000001736112477604277011413 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __BFU_H #define __BFU_H #include #include "header.h" #include "language2.h" // here is no needed but for other modules #define AL_LEFT 0 #define AL_CENTER 1 #define AL_MASK 0x7f #define AL_EXTD_TEXT 0x80 #define AL_BUTTONS 0x100 struct memory_list { int n; void *p[1]; }; struct memory_list *getml(void *, ...); void add_to_ml(struct memory_list **, ...); void freeml(struct memory_list *); #define MENU_FUNC (void (*)(void *, void *)) #define CALLBACK_FUNC (void (*)(void *)) extern char m_bar; #define M_BAR (&m_bar) struct menu; struct menu_item { char *text; char *rtext; char *hotkey; void (*func)(void *, void *); void *data; int in_m; /* 0 menu zmizi po vyberu */ int free_i; int checkbox; int checked; void (*funcall)(struct menu *menu); }; struct menu { int selected; int view; int xp, yp; int x, y, xw, yw; int ni; void *data; struct window *win; struct menu_item *items; char *title; }; struct mainmenu { int selected; int sp; int ni; void *data; struct window *win; struct menu_item *items; }; struct history_item { struct history_item *next; struct history_item *prev; char d[1]; }; struct history { int n; struct list_head items; }; #define D_END 0 #define D_CHECKBOX 1 #define D_FIELD 2 #define D_FIELD_PASS 3 #define D_BUTTON 4 #define D_BOX 5 #define D_CHECKBOX3 6 #define D_TEXT 7 #define B_ENTER 1 #define B_ESC 2 struct dialog_item_data; struct dialog_data; struct dialog_item { int type; int gid, gnum; /* for buttons: gid - flags B_XXX */ /* for fields: min/max */ /* for box: gid is box height */ int (*fn)(struct dialog_data *, struct dialog_item_data *); struct history *history; int dlen; /* data length */ int maxl; char *data; void *udata; /* for box: holds list */ char *text; char *msg; int wrap; int align; int tabcompl, tabi; }; struct dialog_item_data { int x, y, l; int vpos, cpos; int checked; struct dialog_item *item; struct list_head history; struct history_item *cur_hist; char *cdata; }; #define EVENT_PROCESSED 0 struct dialog_data; struct event; struct dialog { char *title; void (*fn)(struct dialog_data *); void (*fn2)(struct dialog_data *); void (*position_fn)(struct dialog_data *); int (*handle_event)(struct dialog_data *, struct event *); void (*abort)(struct dialog_data *); void *udata; void *udata2; int align; void (*refresh)(void *); void *refresh_data; int y0; struct dialog_item items[1]; }; struct dialog_data { struct window *win; struct dialog *dlg; int x, y, xw, yw; int n; int selected; struct memory_list *ml; int min, max, yy, w, rw, ofs; struct dialog_item_data items[1]; }; /* Which fields to free when zapping a box_item. Bitwise or these. */ enum box_item_free {NOTHING = 0, TEXT = 1 , DATA = 2}; /* An item in a box */ struct box_item { struct box_item *next; struct box_item *prev; char *text; /* Text to display */ void *data; /* data */ enum box_item_free free_i; }; /* Stores display information about a box. Kept in cdata. */ struct dlg_data_item_data_box { int sel; /* Item currently selected */ int box_top; /* Index into items of the item that is on the top line of the box */ /*struct list_head items;*/ struct box_item items; /* The list being displayed */ int list_len; /* Number of items in the list */ }; void menu_func(struct window *, struct event *, int); void mainmenu_func(struct window *, struct event *, int); void dialog_func(struct window *, struct event *, int); struct menu_item *new_menu(int); struct menu_item *add_to_menu(struct menu_item **mi, char *text, char *rtext, char *hotkey, void (*func)(void *, void *), void *data, int in_m); void do_menu(struct menu_item *items, void *data); /* todo data=ses */ void do_menu_selected(struct menu_item *, void *data, int); void do_mainmenu(struct menu_item *, void *, int); void do_dialog(struct dialog *, struct memory_list *); int check_number(struct dialog_data *, struct dialog_item_data *); int check_hex(struct dialog_data *, struct dialog_item_data *); int check_double(struct dialog_data *, struct dialog_item_data *); int check_qrg(struct dialog_data *, struct dialog_item_data *); int check_nonempty(struct dialog_data *, struct dialog_item_data *); void max_text_width(struct terminal *, char *, int *); void min_text_width(struct terminal *, char *, int *); void dlg_format_text(struct terminal *, struct terminal *, char *, int, int *, int, int *, int, int); void max_buttons_width(struct terminal *, struct dialog_item_data *, int, int *); void min_buttons_width(struct terminal *, struct dialog_item_data *, int, int *); void dlg_format_buttons(struct terminal *, struct terminal *, struct dialog_item_data *, int, int, int *, int, int *, int); void dlg_format_buttons1(struct terminal *, struct terminal *, struct dialog_item_data *, int, int, int *, int, int *, int); void checkboxes_width(struct terminal *, char **, int *, void (*)(struct terminal *, char *, int *)); void dlg_format_checkbox(struct terminal *, struct terminal *, struct dialog_item_data *, int, int *, int, int *, char *); void dlg_format_checkboxes(struct terminal *, struct terminal *, struct dialog_item_data *, int, int, int *, int, int *, char **); void dlg_format_field(struct terminal *, struct terminal *, struct dialog_item_data *, int, int *, int, int *, int); void max_group_width(struct terminal *, char **, struct dialog_item_data *, int, int *); void min_group_width(struct terminal *, char **, struct dialog_item_data *, int, int *); void dlg_format_group(struct terminal *, struct terminal *, char **, struct dialog_item_data *, int, int, int *, int, int *); void dlg_format_group1(struct terminal *, struct terminal *, char **, struct dialog_item_data *, int, int, int *, int, int *); void dlg_format_box(struct terminal *, struct terminal *, struct dialog_item_data *, int, int *, int, int *, int); void checkbox_list_fn(struct dialog_data *); void group_fn(struct dialog_data *); void center_dlg(struct dialog_data *); void draw_dlg(struct dialog_data *); void display_dlg_item(struct dialog_data *, struct dialog_item_data *, int); int ok_dialog(struct dialog_data *, struct dialog_item_data *); int cancel_dialog(struct dialog_data *, struct dialog_item_data *); void msg_box(struct memory_list *, char *, int, ...); void input_field_fn_i(struct dialog_data *, int i); void input_field_fn(struct dialog_data *); void input_field(struct memory_list *, char *, char *, char *, char *, void *,struct history *, int, char *, int, int, int (*)(struct dialog_data *, struct dialog_item_data *), void (*)(void *, char *), void (*)(void *), int tabcompl); void add_to_history(struct history *, char *); void box_sel_move(struct dialog_item_data *, int ); void show_dlg_item_box(struct dialog_data *, struct dialog_item_data *); void box_sel_set_visible(struct dialog_item_data *, int ); void errbox(char *text, int errcode, ...); void menu_save_rc(void *arg); void dlg_pf_init(int phase, struct dialog_data *dlgd); void dlg_pf_group(int phase, struct dialog_data *dlgd, int cnt); void dlg_pf_buttons(int phase, struct dialog_data *dlgd, int cnt); void dlg_pf_fn(struct dialog_data *dlgd); int do_tab_compl(struct dialog_item_data *di, int tabi); void show_dlg_item_box(struct dialog_data *, struct dialog_item_data *); #endif tucnak-4.04/src/qsodb.c0000644000175000017500000013710212460207027011716 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "ac.h" #include "bfu.h" #include "chart.h" #include "control.h" #include "cwdaemon.h" #include "cwdb.h" #include "edi.h" #include "fifo.h" #include "hf.h" #include "inputln.h" #include "main.h" #include "map.h" #include "menu.h" #include "net.h" #include "qrvdb.h" #include "qsodb.h" #include "rc.h" #include "session.h" #include "sked.h" #include "ssbd.h" #include "stats.h" #include "subwin.h" #include "trig.h" #include "wizz.h" #include "zstring.h" struct contest *ctest; struct band *aband; char *mode_msg[]={ CTEXT(T_UNSPECIFIED), CTEXT(T_SSB), CTEXT(T_CW), CTEXT(T_SSBS_CWR), CTEXT(T_CWS_SSBR), CTEXT(T_AM), CTEXT(T_FM), CTEXT(T_RTTY), CTEXT(T_SSTV), CTEXT(T_ATV) /* 9 */ }; int init_ctest(){ /*dbg("init_ctest\n");*/ if (ctest) return 0; ctest = g_new0(struct contest, 1); ctest->bands = g_ptr_array_new(); ctest->bystamp = g_hash_table_new(g_str_hash, g_str_equal); ctest->allqsos = z_ptr_array_new(); ctest->spypeers = g_ptr_array_new(); ctest->allb_prefs = g_hash_table_new(g_str_hash, g_str_equal); /* ctest->serial = 1;*/ ctest->minute_timer_id=zselect_timer_new(zsel, 100, timer_minute_stats_all, NULL); return 0; } int new_ctest(char *tdate){ struct stat st; int counter; time_t now; struct tm tm; gchar *c; static char s[1024]; /* for msg_box */ int nowdate_int, ctestdate_int; FILE *f; now = time(NULL); gmtime_r(&now, &tm); if (tdate){ ctest->cdate = g_strdup(tdate); nowdate_int = (tm.tm_year+1900)*10000 + (tm.tm_mon+1)*100 + tm.tm_mday; ctestdate_int = atoi(ctest->cdate); if (/*nowdate_int >= ctestdate_int && */nowdate_int <= ctestdate_int + 2) ctest->oldcontest = 0; else ctest->oldcontest = 1; }else{ ctest->cdate = g_strdup_printf("%4d%02d%02d", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday ); ctest->oldcontest = 0; } ctest->directory = g_strdup_printf("%s/%s", tucnak_dir, ctest->cdate); counter=0; while (stat(ctest->directory,&st)==0){ counter++; g_free(ctest->directory); ctest->directory = g_strdup_printf("%s/%s.%d", tucnak_dir, ctest->cdate, counter); } if (z_mkdir_p(ctest->directory, 0777)){ g_snprintf(s,1000, VTEXT(T_CANT_CREATE_HOME_S),ctest->directory); errbox(s,errno); free_ctest(); return -1; } c = g_strdup_printf("%s/desc.lock",ctest->directory); z_wokna(c); ctest->lockfile = fopen(c, "wt"); if (!ctest->lockfile){ g_snprintf(s,1000, "%s %s", VTEXT(T_CANT_WRITE),c); errbox(s,errno); g_free(c); free_ctest(); return -1; } g_free(c); if (z_lockf(fileno(ctest->lockfile), F_TLOCK, 0, 1)){ g_snprintf(s,1000, "%s %s", VTEXT(T_CANT_LOCK),c); errbox(s,errno); free_ctest(); return -1; } c = g_strdup_printf("%s/desc",ctest->directory); z_wokna(c); f = fopen(c, "wt"); if (!f){ g_snprintf(s,1000, "%s %s", VTEXT(T_CANT_WRITE),c); errbox(s,errno); g_free(c); free_ctest(); return -1; } g_free(c); fprintf(f,"%s %s %s\n", ctest->cdate, z_str_uc(ctest->pcall), ctest->tname); fclose(f); if (ctest->logfile) { fclose(ctest->logfile); ctest->logfile=NULL; } c=g_strdup_printf("%s/log", ctest->directory); ctest->logfile = fopen(c, "at"); if (!ctest->logfile){ g_snprintf(s,1000, VTEXT(T_CANT_OPEN_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, s, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); g_free(c); free_ctest(); return -1; } g_free(c); setvbuf(ctest->logfile, NULL, _IONBF, 0); set_ctest_title(); #ifdef Z_HAVE_SDL maps_reload(); #endif return 0; } int load_ctest_from_mem(struct contest *ctest, gchar *datedir, GHashTable *hash){ gchar *c; ctest->directory = g_strdup(datedir); /* if (ctest->tname) g_free((gpointer)ctest->tname); ctest->tname= g_strdup((gchar *)g_hash_table_lookup(hash, "tname")); */ STORE_HASH_STR(ctest, tname); STORE_HASH_STR(ctest, tdate); STORE_HASH_STR(ctest, pcall); STORE_HASH_STR(ctest, pwwlo); STORE_HASH_STR(ctest, pexch); STORE_HASH_STR(ctest, padr1); STORE_HASH_STR(ctest, padr2); STORE_HASH_STR(ctest, pclub); STORE_HASH_STR(ctest, rname); STORE_HASH_STR(ctest, rcall); STORE_HASH_STR(ctest, radr1); STORE_HASH_STR(ctest, radr2); STORE_HASH_STR(ctest, rpoco); STORE_HASH_STR(ctest, rcity); STORE_HASH_STR(ctest, rcoun); STORE_HASH_STR(ctest, rphon); STORE_HASH_STR(ctest, rhbbs); c = (gchar *)g_hash_table_lookup(hash, "qsoused"); if (c) ctest->qsoused= atoi(c); else ctest->qsoused = 0; STORE_HASH_STR(ctest, default_rs); STORE_HASH_STR(ctest, default_rst); STORE_HASH_INT(ctest, qsoused); STORE_HASH_INT(ctest, qsomult); STORE_HASH_INT(ctest, qsoglob); STORE_HASH_INT(ctest, prefmult); STORE_HASH_INT(ctest, prefglob); STORE_HASH_INT(ctest, dxcbonu); STORE_HASH_INT(ctest, dxcmult); STORE_HASH_INT(ctest, excused); STORE_HASH_ENUM(ctest, exctype, enum exctype); STORE_HASH_STR(ctest, excname); STORE_HASH_INT(ctest, excbonu); STORE_HASH_INT(ctest, excmult); STORE_HASH_INT_DEF(ctest, exccfm, 1); STORE_HASH_INT(ctest, qsop_method); STORE_HASH_INT(ctest, rstused); STORE_HASH_INT(ctest, defrstr); STORE_HASH_INT(ctest, total_method); STORE_HASH_INT(ctest, wwltype); STORE_HASH_INT(ctest, wwlused); STORE_HASH_INT(ctest, wwlbonu); STORE_HASH_INT(ctest, wwlmult); STORE_HASH_INT_DEF(ctest, wwlcfm, 1); STORE_HASH_ENUM_DEF(ctest, tttype, enum tttype, TT_RSTS); STORE_HASH_INT(ctest, expmode); set_ctest_title(); // dbg("defrstr=%d\n", ctest->defrstr); /*#ifdef Z_HAVE_SDL maps_reload(); #endif */ return 0; } struct band *init_band(struct config_band *confb, GHashTable *opt_band, struct zstring *zs, struct wizz_qsomult_item *wqi){ struct band *b; gchar *c; static char s[1024]; /* for msg_box */ if (init_ctest()) return NULL; if (confb){ b=find_band_by_pband(confb->pband); if (b) return b; } b = g_new0(struct band, 1); b->qsomultb = 1; if (wqi) b->qsomultb = wqi->qsomult; b->qsos = g_ptr_array_new(); b->rawqsoshash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); // b->mode = MOD_SSB_SSB; // b->bandmulti = 1; /* b->spymode = SM_INPUTLINE;*/ if (confb){ /* usally new contest */ b->bandchar = confb->bandchar; b->pband = g_strdup(confb->pband); if (confb->qrg_min>30000) b->bandname = g_strdup(b->pband); else b->bandname = g_strdup(confb->adifband); b->qrg_min = confb->qrg_min; b->qrg_max = confb->qrg_max; b->readonly = confb->readonly; b->psect = confb->psect; /* gint */ b->opsect = g_strdup(confb->opsect); if (cfg->operator_ && *cfg->operator_){ b->operator_ = fixsemi(g_strdup(cfg->operator_)); }else{ b->operator_ = fixsemi(g_strdup(z_get_raw_call(s,ctest->pcall))); } b->stxeq = g_strdup(confb->stxeq); b->spowe = g_strdup(confb->spowe); b->srxeq = g_strdup(confb->srxeq); b->sante = g_strdup(confb->sante); b->santh = g_strdup(confb->santh); b->mope1 = g_strdup(confb->mope1); b->mope2 = g_strdup(confb->mope2); b->remarks = g_strdup(confb->remarks); b->skedqrg = g_strdup(confb->skedqrg); b->band_sw = confb->band_sw; /* struct zstring *zs = config_band_format(confb); dbg("zs='%s'\n", zs->str); struct config_band *cb2 = config_band_parse(zs); printf("%p\n", cb2); */ } if (opt_band){ /* usually loading contest */ GHashTable *hash = opt_band; gchar *ccc; struct config_band *tmpconfb; STORE_HASH_STR(b, pband); STORE_HASH_CHR(b, bandchar); tmpconfb=get_config_band_by_pband(b->pband); if (tmpconfb){ if (!b->bandchar) b->bandchar=tmpconfb->bandchar; if (tmpconfb->qrg_min>30000) b->bandname = g_strdup(b->pband); else b->bandname = g_strdup(tmpconfb->adifband); b->qrg_min = tmpconfb->qrg_min; b->qrg_max = tmpconfb->qrg_max; b->band_sw = tmpconfb->band_sw; }else{ // contest created under other band configuration b->bandname = g_strdup(b->pband); } // STORE_HASH_INT(b, mode); STORE_HASH_ENUM(gses, mode, enum modes); //STORE_HASH_STR(b, operator_); g_free(b->operator_); b->operator_ = g_strdup((char *)g_hash_table_lookup(hash, "operator")); if (!b->operator_){ b->operator_ = fixsemi(g_strdup(z_get_raw_call(s,ctest->pcall))); } ccc = (gchar *)g_hash_table_lookup(hash, "psect"); /*dbg("c=%s\n",ccc);*/ if (isdigit(ccc[0])) b->psect=atoi(ccc); else b->psect=get_psect_int(ccc); STORE_HASH_STR(b, opsect); STORE_HASH_INT(b, readonly); STORE_HASH_INT(b, saveid); b->saveid++; STORE_HASH_STR(b, stxeq); STORE_HASH_STR(b, spowe); STORE_HASH_STR(b, srxeq); STORE_HASH_STR(b, sante); STORE_HASH_STR(b, santh); /* STORE_HASH_INT(b, mode);*/ STORE_HASH_STR(b, mope1); STORE_HASH_STR(b, mope2); /* STORE_HASH_STR(b, remarks); NO */ STORE_HASH_STR(b, skedqrg); if (!b->skedqrg) b->skedqrg=g_strdup(""); STORE_HASH_INT_DEF(b, qsomultb, 1); if (b->qsomultb == 0) b->qsomultb = 1; // 3.12-3.13 set to 0 -> 0 points for QSO } b->bi = toupper(b->bandchar) - 'A'; //dbg("%s bandname=%s\n",__FUNCTION__, b->bandname); if (zs){ struct config_band *tmpconfb; band_parse(zs, b); if (cfg->operator_ && *cfg->operator_){ b->operator_ = fixsemi(g_strdup(cfg->operator_)); }else{ b->operator_ = fixsemi(g_strdup(z_get_raw_call(s,ctest->pcall))); } tmpconfb=get_config_band_by_pband(b->pband); if (tmpconfb) b->readonly = tmpconfb->readonly; } b->il = g_new0(struct inputln,1); b->il->term = term; b->il->enter = process_input; b->il->enterdata = (void *)b; b->il->upconvert = 1; b->il->valid_chars = VALID_CHARS; b->il->readonly = b->readonly; b->il->band = b; { struct event ev = {EV_INIT, 0,0,0}; inputln_func(b->il,&ev); } b->stats = init_stats(); b->tmpstats = init_stats(); MUTEX_INIT(b->stats); c = g_strdup_printf("%s/%c.swp",ctest->directory, z_char_lc(b->bandchar)); clear_tmpqsos(b, 1); if (!aband){ aband=b; il_set_focus(aband->il); } // dbg("swap=%s\n", c); b->swap = fopen(c,"at"); if (!b->swap){ log_addf(VTEXT(T_CANT_APPEND_S),c); g_free(c); free_band(b); return NULL; } g_free(c); fprintf(b->swap, "ST %d\n", b->saveid-1); b->swapfifo = init_fifo(500); b->qs = g_ptr_array_new(); b->oqs = g_ptr_array_new(); b->unfi = init_fifo(100); b->skeds = g_ptr_array_new(); b->statsfifo1 = init_fifo(1000); g_ptr_array_add(ctest->bands, b); ctest->qrv |= 1 << b->bi; aband->tmplocqso.band=aband; /* init_spypeer(b->spypeers, "127.0.0.1:55555"); init_spypeer(b->spypeers, "127.0.0.1:55556");*/ //dbg("bandname='%s'\n", b->bandname); return b; } struct band *find_band_by_pband(char *pband){ int i; struct band *b; if (!ctest) return NULL; for (i=0;ibands->len; i++){ b = (struct band *)g_ptr_array_index(ctest->bands,i); if (!pband) continue; if (strcasecmp(pband, b->pband)==0){ return b; } } return NULL; } struct band *find_band_by_bandchar(char bandchar){ int i; struct band *b; if (!ctest) return NULL; bandchar = z_char_uc(bandchar); for (i=0;ibands->len; i++){ b = (struct band *)g_ptr_array_index(ctest->bands,i); if (bandchar == z_char_uc(b->bandchar)){ return b; } } return NULL; } struct band *find_band_by_qrg(double freq){ struct band *b; int i; if (!ctest) return NULL; for (i=0;ibands->len; i++){ b = (struct band *)g_ptr_array_index(ctest->bands,i); if (freq < b->qrg_min * 1000.0) continue; if (freq > b->qrg_max * 1000.0) continue; return b; } return NULL; } struct band *init_qrv_bands(struct wizz_item *wi){ int i; struct config_band *confb; /*dbg("init_qrv_bands(%p)\n", wi);*/ for (i=0;ibands->len; i++){ confb = (struct config_band *)g_ptr_array_index(cfg->bands,i); if (!confb) continue; if (confb->qrvnow){ struct wizz_qsomult_item *wqi = NULL; // search for wizz qsomult item if (wi){ for (wqi = wi->qsomults; wqi != NULL; wqi = wqi->next){ if (wqi->bandchar == z_char_uc(confb->bandchar)) break; } } init_band(confb, NULL, NULL, wqi); } } return NULL; } void clear_tmpqsos(struct band *b, int set_defaults){ int i; char *c; if (!b) return; b->dupe_in_tmpqso_index = -1; b->last_item = LI_NONE; for(i=0;iunres); CONDGFREE(b->qrv_str); CONDGFREE(b->wkd_str); wkd_tmpqso(b, WT_CLEAR, ""); CONDGFREE(b->call_played); b->agcall = 0; //dbg("clear_tmpqso: call_played='%s' agcall=%d\n", b->call_played, b->agcall); if (set_defaults){ if (ctest->qsoused){ c=g_strdup_printf("%03d",b->qsos->len+1); ADD_TMPQSO_STRING(b,qsonrs,c,1,udummy); wkd_tmpqso(b, WT_QSONRS, c); g_free(c); } default_rst_to_tmpqsos(b); #ifdef HAVE_SNDFILE ssbd_callsign(gssbd, ""); gssbd->code = 0; #endif } ac_update_tmpctp(""); } void default_rst_to_tmpqsos(struct band *b){ gchar *c; int i; if (!ctest) return; for(i=0;iqsoused) return;*/ if (gses->mode == MOD_CW_CW) c=g_strdup(cfg->default_rst); else c=g_strdup(cfg->default_rs); ADD_TMPQSO_STRING(b,rsts,c,1,udummy); wkd_tmpqso(b, WT_RSTS, c); if (ctest->defrstr){ // for(i=0;iswap, "%s\n", gs->str);*/ fprintf(b->swap, "%s qrb=%4.1f\n", gs->str,q->qrb); fflush(b->swap); fifo_adds(b->swapfifo, gs->str); g_string_free(gs, TRUE); return 0; } /* after adding you must call z_ptr_array_qsort */ void add_qso(struct band *b, struct qso *q){ q->band = b; /* don't dealloc! */ /*q->serial = ctest->serial++;*/ stats_thread_kill(b); g_ptr_array_add(b->qsos,q); add_qso_to_index(q, 0); if (!q->dupe && !q->error){ char raw[30]; struct qso *qq; z_get_raw_call(raw, q->callsign); qq = (struct qso *)g_hash_table_lookup(b->rawqsoshash, raw); if (!qq) g_hash_table_insert(b->rawqsoshash, g_strdup(raw), q); // }else{ // log_addf("Warning: QSO %c %s has dupe=%d error=%d", q->band->bandchar, q->callsign, q->dupe, q->error); } dirty_band(b); } struct qso *get_qso(struct band *b, gint i){ if (i<0 || i >=b->qsos->len) return NULL; return (struct qso *)g_ptr_array_index(b->qsos, i); } struct qso *get_gqso(struct band *b, struct subwin *sw, gint i){ if (sw->allqsos){ if (i<0 || i >=ctest->allqsos->len) return NULL; return (struct qso *)g_ptr_array_index(ctest->allqsos, i); }else{ if (i<0 || i >=b->qsos->len) return NULL; return (struct qso *)g_ptr_array_index(b->qsos, i); } } struct qso *get_qso_by_callsign(struct band *b, gchar *callsign){ char raw[25]; struct qso *q; z_get_raw_call(raw, callsign); q = (struct qso *)g_hash_table_lookup(b->rawqsoshash, raw); return q; /* struct qso *qso; int i; char raw[25], qraw[25]; z_get_raw_call(raw, callsign); for(i=0;iqsos->len; i++){ qso = g_ptr_array_index(b->qsos, i); if (qso->error) continue; z_get_raw_call(qraw, qso->callsign); if (strcasecmp(raw, qraw)==0) return qso; } return NULL;*/ } int get_qso_index_by_callsign(struct band *b, gchar *callsign){ struct qso *qso; int i; char raw[25], qraw[25]; z_get_raw_call(raw, callsign); /* TODO callsigns in hash */ for(i=0;iqsos->len; i++){ qso = (struct qso *)g_ptr_array_index(b->qsos, i); if (qso->error) continue; z_get_raw_call(qraw, qso->callsign); if (strcasecmp(raw, qraw)==0) return i; } return -1; } struct qso *get_qso_by_id(struct band *b, gchar *source, gint ser_id){ struct qso *qso; int i; /* TODO id's in hash */ /*dbg("get_qso_by_id(src=%s, ser_id=%d) \n", source, ser_id);*/ for(i=0;iqsos->len; i++){ qso = (struct qso *)g_ptr_array_index(b->qsos, i); /*dbg(" %s %s %d ",qso->callsign, qso->source, qso->ser_id);*/ if (ser_id != qso->ser_id) continue; if (strcasecmp(source, qso->source)!=0) continue; /*dbg(" OK\n");*/ return qso; } /*dbg(" NULL\n");*/ return NULL; } struct qso *get_qso_by_qsonr(struct band *b, gint qsonrs){ struct qso *qso; int i; /* TODO id's in hash */ for(i=0;iqsos->len; i++){ qso = (struct qso *)g_ptr_array_index(b->qsos, i); if (qsonrs != atoi(qso->qsonrs)) continue; return qso; } return NULL; } void add_error(struct band *b, gchar *remark){ struct qso *eq; time_t now; struct tm utc; if (!ctest && !b) return; if (b->readonly) return; log_addf(VTEXT(T_ADDED_ERROR), b->bandchar, b->qsos->len+1); time(&now); gmtime_r(&now, &utc); eq = g_new0(struct qso, 1); eq->source = g_strdup(gnet->myid); eq->operator_ = g_strdup(b->operator_); if (b->tmpqsos[0].date_str){ eq->date_str = g_strdup(b->tmpqsos[0].date_str); eq->time_str = g_strdup(b->tmpqsos[0].time_str); }else{ eq->date_str = g_strdup_printf("%4d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); eq->time_str = g_strdup_printf("%02d%02d",utc.tm_hour, utc.tm_min); } eq->callsign = g_strdup(b->tmpqsos[0].callsign&&b->tmpqsos[0].ucallsign?b->tmpqsos[0].callsign:"ERROR"); eq->rsts = g_strdup(b->tmpqsos[0].rsts?b->tmpqsos[0].rsts:""); eq->rstr = g_strdup(b->tmpqsos[0].rstr?b->tmpqsos[0].rstr:""); eq->qsonrs = g_strdup(b->tmpqsos[0].qsonrs?b->tmpqsos[0].qsonrs:""); eq->qsonrr = g_strdup(b->tmpqsos[0].qsonrr?b->tmpqsos[0].qsonrr:""); eq->exc = g_strdup(b->tmpqsos[0].exc?b->tmpqsos[0].exc:""); eq->locator = g_strdup(b->tmpqsos[0].locator&&b->tmpqsos[0].ulocator?b->tmpqsos[0].locator:""); eq->error = 1; eq->remark = g_strdup(remark?remark:""); eq->qrg = 0.0; eq->ser_id = -1; /* computed by add_qso_to_index */ add_qso(b, eq); stats_thread_join(b); update_stats(b, b->stats, eq); recalc_allb_stats(); minute_stats(b); recalc_statsfifo(b); if (b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); if (ctest->qsoused) b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); else b->tmpqsos[0].qsonrs = g_strdup(""); } wkd_tmpqso(aband, WT_QSONRS, TMPQ.qsonrs); replicate_qso(NULL, eq); redraw_later(); check_autosave(); } /* use update_stats() after this */ void qso_mark_as_error(struct band *b, gint i){ struct qso *qso; qso = g_ptr_array_index(b->qsos, i); qso->error = 1; qso->qsop = 0; dirty_band(b); replicate_qso(NULL, qso); } int add_tmpxchg(struct band *band, gchar *xchg){ if (band->ignoreswap) return -1; fprintf(band->swap, "# %s\n", xchg); fflush(band->swap); fifo_adds(band->swapfifo, xchg ); return 0; } int add_swap(struct band *band, gchar *s){ if (band->ignoreswap) return -1; fprintf(band->swap, "%s\n", s); fflush(band->swap); fifo_adds(band->swapfifo, s); return 0; } //tern int *pnn; void activate_band(struct band *b){ int i; struct event ev={EV_RESIZE, 0, 0, 0}; struct subwin *sw; /*dbg("activate_band(ses=%p,b=%p) %c\n",ses,b);*/ /* dbg("aband=%p\n",aband);*/ if (!b) return; // dbg("pnn=%d\n", *pnn); il_unset_focus(aband->il); aband=b; //sw_all_func(&ev, 1); win_func(gses->win, &ev, 1 ); /* sw_default_func(gses->ontop, &ev, 1);*/ sw = gses->ontop; if (gses->ontop->type == SWT_QSOS && aband) gses->ontop->cur = QSOS_LEN; gses->ontop->check_bounds(gses->ontop); sw_unset_focus(); il_set_focus(aband->il); get_band_qs(aband, aband->il->cdata); get_oband_qs(aband, aband->il->cdata); get_cw_qs(aband->il->cdata); get_hf_dxc(aband->il->cdata); if (gses->ontop){ switch(gses->ontop->type){ case SWT_STAT: recalc_statsfifo(b); break; case SWT_QRV: case SWT_KST: sw_qrv_sort(qrv); break; default: break; } } cwdaemon_band(cwda, b->band_sw); default_rst_to_tmpqsos(aband); #ifdef HAVE_HAMLIB for (i = 0; i < gtrigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(gtrigs->trigs, i); if (trig->qrg_t2r){ if (aband->qrg != 0){ trig_set_qrg(trig, aband->qrg); } } trig_resend_freq(trig); } #endif redraw_later(); maps_reload(); chart_reload(); } struct config_band *get_config_band_by_bandchar(char bandchar){ struct config_band *confb; int i; bandchar = z_char_uc(bandchar); for (i=0;ibands->len;i++){ confb = (struct config_band *)g_ptr_array_index(cfg->bands, i); if (bandchar == z_char_uc(confb->bandchar)) return confb; } return NULL; } struct config_band *get_config_band_by_pband(char *pband){ struct config_band *confb; int i; for (i=0;ibands->len;i++){ confb = (struct config_band*)g_ptr_array_index(cfg->bands, i); if (strcasecmp(pband, confb->pband)==0) return confb; } return NULL; } struct config_band *get_config_band_by_qrg(int qrg){ /* kHz */ struct config_band *confb; int i; for (i=0;ibands->len;i++){ confb = (struct config_band *)g_ptr_array_index(cfg->bands, i); if (qrg>=confb->qrg_min && qrg<=confb->qrg_max) return confb; } return NULL; } void foreach_add_latests_str(gpointer key, gpointer value, gpointer data){ ZPtrArray *ia; GString *gs; struct qso *q; ia = (ZPtrArray *)value; gs = (GString *)data; if (ia->len<=0) return; if (strcmp((const char *)key,"neterr")==0) return; q = (struct qso *) z_ptr_array_index(ia, ia->len - 1); if (q){ g_string_sprintfa(gs, "%s;%d;", (char *)key, (int)q->stamp); }else{ /* not reached, NULL can be only in the middle of iarray */ dbg("ERROR! q is NULL (foreach_add_latests_str)\n"); g_string_sprintfa(gs, "%s;NULL;", (char *)key); } } gchar *get_latests_str(){ GString *gs; gchar *c; gs = g_string_new("LA "); g_hash_table_foreach(ctest->bystamp, foreach_add_latests_str, gs); /*dbg("get_latests_str='%s'\n", gs->str);*/ g_string_append(gs, "\n"); c = g_strdup(gs->str); g_string_free(gs, 1); return c; } int compare_stamp(const void *a, const void *b){ struct qso **qa, **qb; qa = (struct qso **)a; qb = (struct qso **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; return (int)((*qa)->stamp - (*qb)->stamp); } /* only for backward compatibility with version without ser_id in edi file */ void foreach_source_recalc_ser_id(gpointer key, gpointer value, gpointer data){ int i; struct qso *q; ZPtrArray *ia; ia = (ZPtrArray *)value; for (i=0; ilen; i++){ q=(struct qso *)z_ptr_array_index(ia, i); q->ser_id=i; } } void foreach_source_qsort_by_stamp(gpointer key, gpointer value, gpointer data){ ZPtrArray *ia; ia = (ZPtrArray *)value; z_ptr_array_qsort(ia, compare_stamp); } void foreach_source_print(gpointer key, gpointer value, gpointer data){ ZPtrArray *ia; struct qso *q; int i; ia = (ZPtrArray *)value; trace(cfg->trace_qsos, "source: %s", key); for (i=0; ilen; i++){ q = (struct qso *) z_ptr_array_index(ia, i); dump_qso(q, "foreach_source_print"); } } void dump_all_sources(struct contest *ctest){ int i; struct qso *q; return; if (!ctest){ trace(cfg->trace_qsos, "dump_all_sources(NULL)\n"); return; } g_hash_table_foreach(ctest->bystamp, foreach_source_print, NULL); dbg("ctest->allqsos:\n"); for (i=0; iallqsos->len; i++){ q = (struct qso *) z_ptr_array_index(ctest->allqsos, i); dump_qso(q, "foreach_source_print"); } trace(cfg->trace_qsos, "---end---"); } void add_qso_to_index(struct qso *q, int qsort_if_needed){ ZPtrArray *ia; struct qso *ql; if (q && q->source && strcmp(q->source,"neterr")==0) return; ia = (ZPtrArray *) g_hash_table_lookup(ctest->bystamp, q->source); if (!ia) { ia = z_ptr_array_new(); g_hash_table_insert(ctest->bystamp, g_strdup(q->source), ia); } if (q->ser_id==-1) q->ser_id=ia->len; /* ia is NOT sorted by ser_id! */ z_ptr_array_add(ia, q); if (qsort_if_needed && ia->len >= 2){ ql = (struct qso *) z_ptr_array_index(ia, ia->len-2); if (ql->stamp > q->stamp){ /* q is not latest */ z_ptr_array_qsort(ia, compare_stamp); } } z_ptr_array_add(ctest->allqsos, q); qrv_set_wkd(qrv, q); } void remove_qso_from_index(struct qso *q){ ZPtrArray *ia; int ret; ia = (ZPtrArray *) g_hash_table_lookup(ctest->bystamp, q->source); ret=z_ptr_array_remove(ia, q); ret=z_ptr_array_remove(ctest->allqsos, q); dbg("remove: ret=%d\n", ret); } void compute_qrbqtf(struct qso *q){ double qtf; if (!q) return; /* CHANGE look at add_tmpqso_locator */ qrbqtf(ctest->pwwlo, q->locator, &q->qrb, &qtf, NULL, 2); q->qtf = (int) (qtf+0.5); if (q->qrb < 0.1) { q->qrb = 0; q->qtf = 0; } q->qtfrad=qtf*M_PI/180.0; q->kx = (int)( q->qrb*sin(q->qtfrad)); q->ky = (int)(- q->qrb*cos(q->qtfrad)); /*dbg("compute_qrbqtf(%s) %s->%s qrb=%f qtf=%d kx=%d ky=%d\n", q->callsign, ctest->pwwlo, q->locator, q->qrb, q->qtf, q->kx, q->ky); */ } int check_autosave(void){ save_all_bands_txt(1); if (cfg->as_floppy_aq){ if (ctest->as_floppy_qsonr <= 0){ save_all_bands_txt(2); ctest->as_floppy_qsonr = cfg->as_floppy_aq; } ctest->as_floppy_qsonr--; } return 0; } GPtrArray *get_band_qs(struct band *band, gchar *str){ int i, len; gchar *c; struct qs *qs; struct qso *qso; /*ST_START;*/ zg_ptr_array_free_items(band->qs); len = strlen(str); if (len<2) return NULL; qs = g_new0(struct qs, 1); qs->result1 = band->qs; qs->str = str; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; if (qs->result1->len == term->y - QSONR_HEIGHT - 4 - cfg->loglines - ctest->spypeers->len - 1) break; if (qso->callsign && z_strstr(qso->callsign, qs->str)){ if (qso->locator) c=g_strdup_printf("%-10s %-6s%5d/%3d", qso->callsign, qso->locator, (int)qso->qrb, qso->qtf); else c=g_strdup(qso->callsign); /* dbg(",%s", c);*/ g_ptr_array_add(qs->result1, c); continue; } if (qso->locator && z_strstr(qso->locator, qs->str)){ if (qso->callsign) c=g_strdup_printf("%-10s %-6s%5d/%3d", qso->callsign, qso->locator, (int)qso->qrb, qso->qtf); else c=g_strdup_printf("%-10s %-6s%5d/%3d", "", qso->locator, (int)qso->qrb, qso->qtf); /* dbg(",%s", c);*/ g_ptr_array_add(qs->result1, c); continue; } } /* dbg("<\n");*/ g_free(qs); z_ptr_array_qsort((ZPtrArray *)band->qs, z_compare_string); /*ST_STOP;*/ return band->qs; } GPtrArray *get_oband_qs(struct band *oband, gchar *str){ int i, len, j; gchar *c; struct qs *qs; struct qso *qso; /*ST_START;*/ if (ctest->bands->len<2) return oband->oqs; zg_ptr_array_free_items(oband->oqs); len = strlen(str); if (len<2) return NULL; qs = g_new0(struct qs, 1); qs->result1 = oband->oqs; qs->str = str; for (j=0;jbands->len;j++){ struct band *band; band = (struct band *)g_ptr_array_index(ctest->bands, j); if (band==oband) continue; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; if (qs->result1->len == term->y - QSONR_HEIGHT - 4 - cfg->loglines - ctest->spypeers->len - 1) break; /* FIXME contest without locator */ if ((qso->callsign && z_strstr(qso->callsign, qs->str))|| (qso->locator && z_strstr(qso->locator, qs->str))){ int j; for (j=0;jresult1->len; j++){ char d[20], *pd, *line; safe_strncpy(d, line=g_ptr_array_index(qs->result1,j), 10); pd = strchr(d, ' '); if (pd) *pd='\0'; if (strcmp(d, qso->callsign)==0){ /* dbg("add %s %c\n", line, band->bandchar);*/ c = g_strdup_printf("%s%c", line, z_char_uc(band->bandchar)); g_ptr_array_index(qs->result1, j) = c; g_free(line); goto cont; } } /* dbg("ins %s %s %c\n", qso->callsign, qso->locator, band->bandchar);*/ c=g_strdup_printf("%-10s %-6s %c", qso->callsign, qso->locator, z_char_uc(band->bandchar)); set_mem_comment(c, c, strlen(c)); g_ptr_array_add(qs->result1, c); goto cont; } cont:; } } /* dbg("<\n");*/ g_free(qs); z_ptr_array_qsort((ZPtrArray *)oband->oqs, z_compare_string); /*ST_STOP;*/ return oband->oqs; } gchar *find_wwl_by_oband(struct band *oband, gchar *call){ int i, j; struct qso *qso; static char raw[256]; if (ctest->bands->len<2) return NULL; if (!ctest->wwlused) return NULL; for (j=0;jbands->len;j++){ struct band *band; band = (struct band *)g_ptr_array_index(ctest->bands, j); if (band==oband) continue; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; z_get_raw_call(raw, qso->callsign); if (strcasecmp(raw,call)) continue; return qso->locator; /* can be NULL */ } } return NULL; } gchar *find_exc_by_oband(struct band *oband, gchar *call){ int i, j; struct qso *qso; static char raw[256]; if (ctest->bands->len<2) return NULL; if (ctest->excused != 1) return NULL; for (j=0;jbands->len;j++){ struct band *band; band = (struct band *)g_ptr_array_index(ctest->bands, j); if (band==oband) continue; for (i=0;iqsos->len;i++){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (qso->error || qso->dupe) continue; z_get_raw_call(raw, qso->callsign); if (strcasecmp(raw,call)) continue; return qso->exc; /* can be NULL */ } } return NULL; } int get_psect_int(char *psect){ if (strcasecmp(psect, "single")==0) return 1; else if (strcasecmp(psect, "check")==0) return 2; else return 0; } void dump_qso(struct qso *q, char *desc){ if (!q){ trace(cfg->trace_qsos, " NULL"); return; } /* trace(cfg->trace_qsos, " %8s %c%03d %s:%d.%05d %s", q->callsign, z_char_uc(q->band->bandchar), atoi(q->qsonrs), q->source, q->ser_id, q->stamp%100000, desc);*/ trace(cfg->trace_qsos, " %8s %c%03d %s:%d.%05d (qsop=%d error=%d dupe=%d) %s", q->callsign, q->band->bandchar, atoi(q->qsonrs), q->source, q->ser_id, q->stamp%100000, q->qsop, q->error, q->dupe, desc); } void invalidate_tmpqso(struct band *b, struct qso *q){ char raw[20]; char s[20]; int i; z_get_raw_call(raw, q->callsign); for (i=0;itmpqsos[i].callsign) continue; z_get_raw_call(s, b->tmpqsos[i].callsign); if (strcasecmp(s, raw)==0){ b->tmpqsos[i].ucallsign=0; redraw_later(); } } } void foreach_free_bystamp(gpointer key, gpointer value, gpointer data){ ZPtrArray *ia; ia = (ZPtrArray *)value; z_ptr_array_free(ia, TRUE); g_free(key); } void free_ctest(){ int i; if (!ctest) return; zselect_timer_kill(zsel, ctest->minute_timer_id); if (gses->skedw_timer_id > 0) { zselect_timer_kill(zsel, gses->skedw_timer_id); gses->skedw_timer_id = 0; } dump_all_sources(ctest); if (gses->last_cq_timer_id) { zselect_timer_kill(zsel, gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } clear_qrv(qrv); chart_clear_all(); for (i=0;ibands->len; i++){ free_band((struct band*)g_ptr_array_index(ctest->bands,i)); } if (ctest->lockfile) fclose(ctest->lockfile); if (ctest->logfile) fclose(ctest->logfile); CONDGFREE(ctest->directory); CONDGFREE(ctest->cdate); CONDGFREE(ctest->tname); CONDGFREE(ctest->tdate); CONDGFREE(ctest->pcall); CONDGFREE(ctest->padr1); CONDGFREE(ctest->padr2); CONDGFREE(ctest->pclub); CONDGFREE(ctest->pwwlo); CONDGFREE(ctest->pexch); CONDGFREE(ctest->default_rs); CONDGFREE(ctest->default_rst); CONDGFREE(ctest->excname); CONDGFREE(ctest->rname); CONDGFREE(ctest->rcall); CONDGFREE(ctest->radr1); CONDGFREE(ctest->radr2); CONDGFREE(ctest->rpoco); CONDGFREE(ctest->rcity); CONDGFREE(ctest->rcoun); CONDGFREE(ctest->rphon); CONDGFREE(ctest->rhbbs); CONDGFREE(ctest->directory); /* CONDGFREE(ctest->pband); CONDGFREE(ctest->); CONDGFREE(ctest->); CONDGFREE(ctest->); */ g_hash_table_foreach_remove(ctest->allb_prefs, free_gpointer_item, NULL); g_hash_table_foreach(ctest->bystamp, foreach_free_bystamp, NULL); z_ptr_array_free(ctest->allqsos, TRUE); g_ptr_array_free(ctest->bands, TRUE); free_spypeers(ctest->spypeers); g_free(ctest); ctest=NULL; aband=NULL; set_ctest_title(); cq_abort(1); if (!zselect_terminating(zsel)) maps_reload(); chart_reload(); } /* called ONLY when ctest is freeed. bands remain in memory */ void free_band(struct band *b){ int i; struct event ev = {EV_ABORT, 0,0,0}; stats_thread_kill(b); clear_tmpqsos(b, 0); for (i=0;iqsos->len;i++){ struct qso *qso; qso=(struct qso *)g_ptr_array_index(b->qsos, i); free_qso(qso); } g_ptr_array_free(b->qsos, TRUE); g_hash_table_destroy(b->rawqsoshash); CONDGFREE(b->pband); CONDGFREE(b->bandname); CONDGFREE(b->operator_); CONDGFREE(b->stxeq); CONDGFREE(b->spowe); CONDGFREE(b->srxeq); CONDGFREE(b->sante); CONDGFREE(b->santh); CONDGFREE(b->mope1); CONDGFREE(b->mope2); CONDGFREE(b->remarks); CONDGFREE(b->skedqrg); /*CONDGFREE(b->); CONDGFREE(b->); CONDGFREE(b->); CONDGFREE(b->);*/ if (b->skeds) { for (i=0;iskeds->len;i++){ struct sked *sked; sked=(struct sked*)g_ptr_array_index(b->skeds, i); free_sked(sked); } g_ptr_array_free(b->skeds, TRUE); } inputln_func(b->il,&ev); g_free(b->il); if (b->unres) g_free(b->unres); if (b->stats) free_stats(b->stats); if (b->tmpstats) free_stats(b->tmpstats); MUTEX_FREE(b->stats); if (b->swap) fclose(b->swap); if (b->qs) zg_ptr_array_free_all(b->qs); if (b->oqs) zg_ptr_array_free_all(b->oqs); if (b->swapfifo) free_fifo(b->swapfifo); if (b->unfi) free_fifo(b->unfi); if (b->statsfifo1) free_fifo(b->statsfifo1); if (b->ctrlsp) g_free(b->ctrlsp); CONDGFREE(b->tmplocqso.locator); zg_free0(b->edifile); zg_free0(b->mapfile); zg_free0(b->chartfile); g_free(b); } void free_qso(struct qso *qso){ CONDGFREE(qso->source); CONDGFREE(qso->operator_); CONDGFREE(qso->date_str); CONDGFREE(qso->time_str); CONDGFREE(qso->callsign); CONDGFREE(qso->rsts); CONDGFREE(qso->rstr); CONDGFREE(qso->qsonrs); CONDGFREE(qso->qsonrr); CONDGFREE(qso->exc); CONDGFREE(qso->locator); CONDGFREE(qso->remark); g_free(qso); } void dirty_band(struct band *band) { trace(cfg->trace_qsos, "DIRTY_BAND %c", band->bandchar); band->dirty_save = 1; band->dirty_stats = 1; band->dirty_statsf = 1; }; enum modes get_mode(void){ /* if (aband) return aband->mode; else*/ return gses->mode; } void set_mode(enum modes mode){ int i; gses->mode=mode; dbg("set_mode(%d)\n", mode); #ifdef HAVE_HAMLIB for (i = 0; i < gtrigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(gtrigs->trigs, i); if (!trig->mode_t2r) return; switch (mode){ case MOD_SSB_SSB: //trig_set_mode(trig, RIG_MODE_USB); //trig_set_qrg(trig, trig->qrg - cfg->rig_ssbcw_shift); trig_set_mode_qrg(trig, RIG_MODE_USB, gtrigs->qrg - trig->ssbcw_shift); break; case MOD_CW_CW: //trig_set_mode(trig, RIG_MODE_CW); //trig_set_qrg(trig, trig->qrg + cfg->rig_ssbcw_shift); trig_set_mode_qrg(trig, RIG_MODE_CW, gtrigs->qrg + trig->ssbcw_shift); break; default: /* nic jineho se nanastavuje */ break; } } #endif } struct zstring *contest_format(struct contest *ctest){ gchar *ints; struct zstring *zs; ints = g_strdup_printf("%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d;%d;%d;" "%d;%d", ctest->qsoused, ctest->qsomult, ctest->qsoglob, ctest->wwlused, ctest->wwlcfm, ctest->wwlbonu, ctest->wwlmult, ctest->excused, ctest->exctype, ctest->excbonu, ctest->excmult, ctest->exccfm, ctest->dxcbonu, ctest->dxcmult, ctest->rstused, ctest->defrstr, ctest->qsop_method, ctest->total_method, ctest->tttype, ctest->prefmult, ctest->prefglob, ctest->expmode); zs = zconcatesc(ints, ctest->tname, ctest->cdate, ctest->pcall, ctest->pclub, ctest->pwwlo, ctest->pexch, ctest->default_rst, ctest->default_rs, ctest->rname, ctest->rcall, ctest->radr1, ctest->radr2, ctest->rpoco, ctest->rcity, ctest->rcoun, ctest->rphon, ctest->rhbbs, ctest->excname, NULL); return zs; } void ctest_parse(struct zstring *zstr, struct contest *ctest){ gchar *c; struct zstring *zsint; c = ztokenize(zstr, 1); zsint = zstrdup(c); ctest->qsoused = atoi(ztokenize(zsint, 1)); ctest->qsomult = atoi(ztokenize(zsint, 0)); ctest->qsoglob = atoi(ztokenize(zsint, 0)); ctest->wwlused = atoi(ztokenize(zsint, 0)); ctest->wwlcfm = atoi(ztokenize(zsint, 0)); ctest->wwlbonu = atoi(ztokenize(zsint, 0)); ctest->wwlmult = atoi(ztokenize(zsint, 0)); ctest->excused = atoi(ztokenize(zsint, 0)); ctest->exctype = (enum exctype)atoi(ztokenize(zsint, 0)); ctest->excbonu = atoi(ztokenize(zsint, 0)); ctest->excmult = atoi(ztokenize(zsint, 0)); ctest->exccfm = atoi(ztokenize(zsint, 0)); ctest->dxcbonu = atoi(ztokenize(zsint, 0)); ctest->dxcmult = atoi(ztokenize(zsint, 0)); ctest->rstused = atoi(ztokenize(zsint, 0)); ctest->defrstr = atoi(ztokenize(zsint, 0)); ctest->qsop_method = atoi(ztokenize(zsint, 0)); ctest->total_method = atoi(ztokenize(zsint, 0)); ctest->tttype = (enum tttype)atoi(ztokenize(zsint, 0)); ctest->prefmult = atoi(ztokenize(zsint, 0)); ctest->prefglob = atoi(ztokenize(zsint, 0)); ctest->expmode = atoi(ztokenize(zsint, 0)); STORE_STR3(ctest, tname, zstr, 0); STORE_STR3(ctest, cdate, zstr, 0); STORE_STR3(ctest, pcall, zstr, 0); STORE_STR3(ctest, pclub, zstr, 0); STORE_STR3(ctest, pwwlo, zstr, 0); STORE_STR3(ctest, pexch, zstr, 0); STORE_STR3(ctest, default_rst, zstr, 0); STORE_STR3(ctest, default_rs, zstr, 0); STORE_STR3(ctest, rname, zstr, 0); STORE_STR3(ctest, rcall, zstr, 0); STORE_STR3(ctest, radr1, zstr, 0); STORE_STR3(ctest, radr2, zstr, 0); STORE_STR3(ctest, rpoco, zstr, 0); STORE_STR3(ctest, rcity, zstr, 0); STORE_STR3(ctest, rcoun, zstr, 0); STORE_STR3(ctest, rphon, zstr, 0); STORE_STR3(ctest, rhbbs, zstr, 0); STORE_STR3(ctest, excname, zstr, 0); zfree(zsint); } struct zstring *band_format(struct band *b){ gchar *ints; struct zstring *zs; ints = g_strdup_printf("%c;%d;%d;%d;%d;%d", z_char_lc(b->bandchar), b->psect, b->readonly, b->qrg_min, b->qrg_max, b->qsomultb); zs = zconcatesc(ints, b->pband, b->bandname, b->stxeq, b->spowe, b->srxeq, b->sante, b->santh, b->mope1, b->mope2, b->remarks, b->skedqrg, b->opsect, NULL); g_free(ints); return zs; } struct band *band_parse(struct zstring *zstr, struct band *b){ gchar *c, *qsomult_str; struct zstring *zsint; c = ztokenize(zstr, 1); zsint = zstrdup(c); c = ztokenize(zsint, 1); b->bandchar = z_char_uc(c[0]); b->bi = b->bandchar - 'A'; b->psect = atoi(ztokenize(zsint, 0)); b->readonly = atoi(ztokenize(zsint, 0)); b->qrg_min = atoi(ztokenize(zsint, 0)); b->qrg_max = atoi(ztokenize(zsint, 0)); qsomult_str = ztokenize(zsint, 0); if (qsomult_str) b->qsomultb = atoi(qsomult_str); STORE_STR3(b, pband, zstr, 0); STORE_STR3(b, bandname, zstr, 0); STORE_STR3(b, stxeq, zstr, 0); STORE_STR3(b, spowe, zstr, 0); STORE_STR3(b, srxeq, zstr, 0); STORE_STR3(b, sante, zstr, 0); STORE_STR3(b, santh, zstr, 0); STORE_STR3(b, mope1, zstr, 0); STORE_STR3(b, mope2, zstr, 0); STORE_STR3(b, remarks, zstr, 0); STORE_STR3(b, skedqrg, zstr, 0); STORE_STR3(b, opsect, zstr, 0); zfree(zsint); return b; } int compare_date_time_qsonrs(const void *a, const void *b){ struct qso **qa, **qb; int ret; qa = (struct qso **)a; qb = (struct qso **)b; if (!*qa && !*qb) return 0; if (!*qa) return -1; if (!*qb) return +1; ret = strcmp((*qa)->date_str, (*qb)->date_str); if (ret) return ret; ret = strcmp((*qa)->time_str, (*qb)->time_str); if (ret) return ret; return atoi((*qa)->qsonrs) - atoi((*qb)->qsonrs); } /* returns: 0 - not worked on at least one read-write band 1 - worked on all read-write band */ int worked_on_all_rw(char *call){ int ret = 1; //struct qrv_item *qi = qrv_get(qrvdb, call); if (ctest){ zg_ptr_array_foreach(struct band *, b, ctest->bands) { if (b->readonly) continue; //if (qi && (qi->bands_qrv & (1 << b->bi)) == 0) continue; if (!get_qso_by_callsign(b, call)) ret = 0; } } //dbg("worked_on_all_rw(%s)=%d\n", call, ret); return ret; } void _dump_rw(gpointer key, gpointer value, gpointer data){ fprintf((FILE *)data, "key='%s' value=%p ", (char*)key, value); if (value != NULL) { struct qso *qso = (struct qso *)value; fprintf((FILE *)data, "call='%s' qsonrs=%s time=%s", qso->callsign, qso->qsonrs, qso->time_str); } fprintf((FILE *)data, "\n"); } void dump_rw(void *a, void *b) { FILE *f; char *filename; if (!ctest) return; filename = g_strconcat(ctest->directory, "/", "_dump_rw.txt", NULL); z_wokna(filename); f = fopen(filename, "wt"); if (f){ zg_ptr_array_foreach(struct band *, b, ctest->bands) { if (b->readonly) continue; fprintf(f, "%c is RW\n", b->bandchar); g_hash_table_foreach(b->rawqsoshash, _dump_rw, f); fprintf(f, "\n\n"); } fclose(f); log_addf(VTEXT(T_SAVED_S), filename); }else{ log_addf(VTEXT(T_CANT_WRITE_S), filename); } g_free(filename); } int add_qsos_from_swap(struct band *b, FILE *f){ char *s; gchar **items; struct qso *q; GString *gs; gs = g_string_sized_new(1024); while ((s = zfile_fgets(gs, f, 0)) != NULL){ if (strlen(s) < 12) continue; if (s[0]!='Q') continue; items = g_strsplit(s + 2, ";", 0); q = g_new0(struct qso, 1); q->source = g_strdup(gnet->myid); q->operator_ = g_strdup(b->operator_); q->date_str = g_strdup_printf("%s%s", items[14], items[0]); q->time_str = g_strdup(items[1]); q->callsign = g_strdup(items[2]); q->mode = atoi(items[3]); q->rsts = g_strdup(items[4]); q->qsonrs = g_strdup(items[5]); q->rstr = g_strdup(items[6]); q->qsonrr = g_strdup(items[7]); q->exc = g_strdup(items[8]); q->locator = g_strdup(items[9]); q->ser_id=-1; /* computed by add_qso_to_index */ g_strfreev(items); compute_qrbqtf(q); add_qso(b, q); } recalc_stats(b); check_autosave(); g_string_free(gs, TRUE); return 0; } tucnak-4.04/src/sndpipe.h0000644000175000017500000000145512305363636012265 00000000000000/* Tucnak - VHF contest log Copyright (C) 2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SNDPIPE_H #define __SNDPIPE_H #include "header.h" #include "dsp.h" int sndpipe_open(struct dsp *dsp, int rec); int sndpipe_close(struct dsp *dsp); int sndpipe_write(struct dsp *dsp, void *data, int frames); int sndpipe_read(struct dsp *dsp, void *data, int frames); int sndpipe_reset(struct dsp *dsp); int sndpipe_sync(struct dsp *dsp); #ifdef HAVE_SNDFILE int sndpipe_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec); #endif int sndpipe_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec); #endif tucnak-4.04/src/codepage.inc0000644000175000017500000014725611277513162012724 00000000000000/* Automatoticaly generated by gen-cp */ struct table_entry table_7bit [] = { {0}, {0} }; char *aliases_7bit [] = {"us-ascii", "ascii", "7bit", "7-bit", "iso-ir-6", "ANSI_X3.4", "646", NULL }; struct table_entry table_8859_1 [] = { {0xA0, 0x00A0}, {0xA1, 0x00A1}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA5, 0x00A5}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAA, 0x00AA}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00AF}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00B8}, {0xB9, 0x00B9}, {0xBA, 0x00BA}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00BF}, {0xC0, 0x00C0}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x00C6}, {0xC7, 0x00C7}, {0xC8, 0x00C8}, {0xC9, 0x00C9}, {0xCA, 0x00CA}, {0xCB, 0x00CB}, {0xCC, 0x00CC}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x00CF}, {0xD0, 0x00D0}, {0xD1, 0x00D1}, {0xD2, 0x00D2}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x00D8}, {0xD9, 0x00D9}, {0xDA, 0x00DA}, {0xDB, 0x00DB}, {0xDC, 0x00DC}, {0xDD, 0x00DD}, {0xDE, 0x00DE}, {0xDF, 0x00DF}, {0xE0, 0x00E0}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x00E6}, {0xE7, 0x00E7}, {0xE8, 0x00E8}, {0xE9, 0x00E9}, {0xEA, 0x00EA}, {0xEB, 0x00EB}, {0xEC, 0x00EC}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x00EF}, {0xF0, 0x00F0}, {0xF1, 0x00F1}, {0xF2, 0x00F2}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x00F8}, {0xF9, 0x00F9}, {0xFA, 0x00FA}, {0xFB, 0x00FB}, {0xFC, 0x00FC}, {0xFD, 0x00FD}, {0xFE, 0x00FE}, {0xFF, 0x00FF}, {0, 0} }; char *aliases_8859_1 [] = {"ISO-8859-1", "8859-1", "iso-ir-100", "latin1", "l1", "819", NULL }; struct table_entry table_8859_2 [] = { {0xA0, 0x00A0}, {0xA1, 0x0104}, {0xA2, 0x02D8}, {0xA3, 0x0141}, {0xA4, 0x00A4}, {0xA5, 0x013D}, {0xA6, 0x015A}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x0160}, {0xAA, 0x015E}, {0xAB, 0x0164}, {0xAC, 0x0179}, {0xAD, 0x00AD}, {0xAE, 0x017D}, {0xAF, 0x017B}, {0xB0, 0x00B0}, {0xB1, 0x0105}, {0xB2, 0x02DB}, {0xB3, 0x0142}, {0xB4, 0x00B4}, {0xB5, 0x013E}, {0xB6, 0x015B}, {0xB7, 0x02C7}, {0xB8, 0x00B8}, {0xB9, 0x0161}, {0xBA, 0x015F}, {0xBB, 0x0165}, {0xBC, 0x017A}, {0xBD, 0x02DD}, {0xBE, 0x017E}, {0xBF, 0x017C}, {0xC0, 0x0154}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x0102}, {0xC4, 0x00C4}, {0xC5, 0x0139}, {0xC6, 0x0106}, {0xC7, 0x00C7}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0118}, {0xCB, 0x00CB}, {0xCC, 0x011A}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x010E}, {0xD0, 0x0110}, {0xD1, 0x0143}, {0xD2, 0x0147}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x0150}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0158}, {0xD9, 0x016E}, {0xDA, 0x00DA}, {0xDB, 0x0170}, {0xDC, 0x00DC}, {0xDD, 0x00DD}, {0xDE, 0x0162}, {0xDF, 0x00DF}, {0xE0, 0x0155}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x0103}, {0xE4, 0x00E4}, {0xE5, 0x013A}, {0xE6, 0x0107}, {0xE7, 0x00E7}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x0119}, {0xEB, 0x00EB}, {0xEC, 0x011B}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x010F}, {0xF0, 0x0111}, {0xF1, 0x0144}, {0xF2, 0x0148}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x0151}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0159}, {0xF9, 0x016F}, {0xFA, 0x00FA}, {0xFB, 0x0171}, {0xFC, 0x00FC}, {0xFD, 0x00FD}, {0xFE, 0x0163}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_8859_2 [] = {"ISO-8859-2", "8859-2", "iso-ir-101", "latin2", "l2", NULL }; struct table_entry table_8859_4 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x0104}, {0xA2, 0x0138}, {0xA3, 0x0156}, {0xA4, 0x00A4}, {0xA5, 0x0128}, {0xA6, 0x013B}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x0160}, {0xAA, 0x0112}, {0xAB, 0x0122}, {0xAC, 0x0166}, {0xAD, 0x00AD}, {0xAE, 0x017D}, {0xAF, 0x00AF}, {0xB0, 0x00B0}, {0xB1, 0x0105}, {0xB2, 0x02DB}, {0xB3, 0x0157}, {0xB4, 0x00B4}, {0xB5, 0x0129}, {0xB6, 0x013C}, {0xB7, 0x02C7}, {0xB8, 0x00B8}, {0xB9, 0x0161}, {0xBA, 0x0113}, {0xBB, 0x0123}, {0xBC, 0x0167}, {0xBD, 0x014A}, {0xBE, 0x017E}, {0xBF, 0x014B}, {0xC0, 0x0100}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x00C6}, {0xC7, 0x012E}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0118}, {0xCB, 0x00CB}, {0xCC, 0x0116}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x012A}, {0xD0, 0x0110}, {0xD1, 0x0145}, {0xD2, 0x014C}, {0xD3, 0x0136}, {0xD4, 0x00D4}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x00D8}, {0xD9, 0x0172}, {0xDA, 0x00DA}, {0xDB, 0x00DB}, {0xDC, 0x00DC}, {0xDD, 0x0168}, {0xDE, 0x016A}, {0xDF, 0x00DF}, {0xE0, 0x0101}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x00E6}, {0xE7, 0x012F}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x0119}, {0xEB, 0x00EB}, {0xEC, 0x0117}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x012B}, {0xF0, 0x0111}, {0xF1, 0x0146}, {0xF2, 0x014D}, {0xF3, 0x0137}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x00F8}, {0xF9, 0x0173}, {0xFA, 0x00FA}, {0xFB, 0x00FB}, {0xFC, 0x00FC}, {0xFD, 0x0169}, {0xFE, 0x016B}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_8859_4 [] = {"ISO-8859-4", "8859-4", "iso-ir-110", "latin4", "l4", NULL }; struct table_entry table_8859_5 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x0401}, {0xA2, 0x0402}, {0xA3, 0x0403}, {0xA4, 0x0404}, {0xA5, 0x0405}, {0xA6, 0x0406}, {0xA7, 0x0407}, {0xA8, 0x0408}, {0xA9, 0x0409}, {0xAA, 0x040A}, {0xAB, 0x040B}, {0xAC, 0x040C}, {0xAD, 0x00AD}, {0xAE, 0x040E}, {0xAF, 0x040F}, {0xB0, 0x0410}, {0xB1, 0x0411}, {0xB2, 0x0412}, {0xB3, 0x0413}, {0xB4, 0x0414}, {0xB5, 0x0415}, {0xB6, 0x0416}, {0xB7, 0x0417}, {0xB8, 0x0418}, {0xB9, 0x0419}, {0xBA, 0x041A}, {0xBB, 0x041B}, {0xBC, 0x041C}, {0xBD, 0x041D}, {0xBE, 0x041E}, {0xBF, 0x041F}, {0xC0, 0x0420}, {0xC1, 0x0421}, {0xC2, 0x0422}, {0xC3, 0x0423}, {0xC4, 0x0424}, {0xC5, 0x0425}, {0xC6, 0x0426}, {0xC7, 0x0427}, {0xC8, 0x0428}, {0xC9, 0x0429}, {0xCA, 0x042A}, {0xCB, 0x042B}, {0xCC, 0x042C}, {0xCD, 0x042D}, {0xCE, 0x042E}, {0xCF, 0x042F}, {0xD0, 0x0430}, {0xD1, 0x0431}, {0xD2, 0x0432}, {0xD3, 0x0433}, {0xD4, 0x0434}, {0xD5, 0x0435}, {0xD6, 0x0436}, {0xD7, 0x0437}, {0xD8, 0x0438}, {0xD9, 0x0439}, {0xDA, 0x043A}, {0xDB, 0x043B}, {0xDC, 0x043C}, {0xDD, 0x043D}, {0xDE, 0x043E}, {0xDF, 0x043F}, {0xE0, 0x0440}, {0xE1, 0x0441}, {0xE2, 0x0442}, {0xE3, 0x0443}, {0xE4, 0x0444}, {0xE5, 0x0445}, {0xE6, 0x0446}, {0xE7, 0x0447}, {0xE8, 0x0448}, {0xE9, 0x0449}, {0xEA, 0x044A}, {0xEB, 0x044B}, {0xEC, 0x044C}, {0xED, 0x044D}, {0xEE, 0x044E}, {0xEF, 0x044F}, {0xF0, 0x2116}, {0xF1, 0x0451}, {0xF2, 0x0452}, {0xF3, 0x0453}, {0xF4, 0x0454}, {0xF5, 0x0455}, {0xF6, 0x0456}, {0xF7, 0x0457}, {0xF8, 0x0458}, {0xF9, 0x0459}, {0xFA, 0x045A}, {0xFB, 0x045B}, {0xFC, 0x045C}, {0xFD, 0x00A7}, {0xFE, 0x045E}, {0xFF, 0x045F}, {0, 0} }; char *aliases_8859_5 [] = {"ISO-8895-5", "8859-5" , NULL }; struct table_entry table_8859_7 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x2018}, {0xA2, 0x2019}, {0xA3, 0x00A3}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAF, 0x2015}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x0384}, {0xB5, 0x0385}, {0xB6, 0x0386}, {0xB7, 0x00B7}, {0xB8, 0x0388}, {0xB9, 0x0389}, {0xBA, 0x038A}, {0xBB, 0x00BB}, {0xBC, 0x038C}, {0xBD, 0x00BD}, {0xBE, 0x038E}, {0xBF, 0x038F}, {0xC0, 0x0390}, {0xC1, 0x0391}, {0xC2, 0x0392}, {0xC3, 0x0393}, {0xC4, 0x0394}, {0xC5, 0x0395}, {0xC6, 0x0396}, {0xC7, 0x0397}, {0xC8, 0x0398}, {0xC9, 0x0399}, {0xCA, 0x039A}, {0xCB, 0x039B}, {0xCC, 0x039C}, {0xCD, 0x039D}, {0xCE, 0x039E}, {0xCF, 0x039F}, {0xD0, 0x03A0}, {0xD1, 0x03A1}, {0xD3, 0x03A3}, {0xD4, 0x03A4}, {0xD5, 0x03A5}, {0xD6, 0x03A6}, {0xD7, 0x03A7}, {0xD8, 0x03A8}, {0xD9, 0x03A9}, {0xDA, 0x03AA}, {0xDB, 0x03AB}, {0xDC, 0x03AC}, {0xDD, 0x03AD}, {0xDE, 0x03AE}, {0xDF, 0x03AF}, {0xE0, 0x03B0}, {0xE1, 0x03B1}, {0xE2, 0x03B2}, {0xE3, 0x03B3}, {0xE4, 0x03B4}, {0xE5, 0x03B5}, {0xE6, 0x03B6}, {0xE7, 0x03B7}, {0xE8, 0x03B8}, {0xE9, 0x03B9}, {0xEA, 0x03BA}, {0xEB, 0x03BB}, {0xEC, 0x03BC}, {0xED, 0x03BD}, {0xEE, 0x03BE}, {0xEF, 0x03BF}, {0xF0, 0x03C0}, {0xF1, 0x03C1}, {0xF2, 0x03C2}, {0xF3, 0x03C3}, {0xF4, 0x03C4}, {0xF5, 0x03C5}, {0xF6, 0x03C6}, {0xF7, 0x03C7}, {0xF8, 0x03C8}, {0xF9, 0x03C9}, {0xFA, 0x03CA}, {0xFB, 0x03CB}, {0xFC, 0x03CC}, {0xFD, 0x03CD}, {0xFE, 0x03CE}, {0, 0} }; char *aliases_8859_7 [] = {"ISO-8859-7", "8859-7", "iso-ir-126", "elot-928", NULL }; struct table_entry table_8859_9 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x00A1}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA5, 0x00A5}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAA, 0x00AA}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00AF}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00B8}, {0xB9, 0x00B9}, {0xBA, 0x00BA}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00BF}, {0xC0, 0x00C0}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x00C6}, {0xC7, 0x00C7}, {0xC8, 0x00C8}, {0xC9, 0x00C9}, {0xCA, 0x00CA}, {0xCB, 0x00CB}, {0xCC, 0x00CC}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x00CF}, {0xD0, 0x011E}, {0xD1, 0x00D1}, {0xD2, 0x00D2}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x00D8}, {0xD9, 0x00D9}, {0xDA, 0x00DA}, {0xDB, 0x00DB}, {0xDC, 0x00DC}, {0xDD, 0x0130}, {0xDE, 0x015E}, {0xDF, 0x00DF}, {0xE0, 0x00E0}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x00E6}, {0xE7, 0x00E7}, {0xE8, 0x00E8}, {0xE9, 0x00E9}, {0xEA, 0x00EA}, {0xEB, 0x00EB}, {0xEC, 0x00EC}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x00EF}, {0xF0, 0x011F}, {0xF1, 0x00F1}, {0xF2, 0x00F2}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x00F8}, {0xF9, 0x00F9}, {0xFA, 0x00FA}, {0xFB, 0x00FB}, {0xFC, 0x00FC}, {0xFD, 0x0131}, {0xFE, 0x015F}, {0xFF, 0x00FF}, {0, 0} }; char *aliases_8859_9 [] = {"ISO-8895-9", "8859-9" , NULL }; struct table_entry table_8859_13 [] = { {0x80, 0x0080}, {0x81, 0x0081}, {0x82, 0x0082}, {0x83, 0x0083}, {0x84, 0x0084}, {0x85, 0x0085}, {0x86, 0x0086}, {0x87, 0x0087}, {0x88, 0x0088}, {0x89, 0x0089}, {0x8A, 0x008A}, {0x8B, 0x008B}, {0x8C, 0x008C}, {0x8D, 0x008D}, {0x8E, 0x008E}, {0x8F, 0x008F}, {0x90, 0x0090}, {0x91, 0x0091}, {0x92, 0x0092}, {0x93, 0x0093}, {0x94, 0x0094}, {0x95, 0x0095}, {0x96, 0x0096}, {0x97, 0x0097}, {0x98, 0x0098}, {0x99, 0x0099}, {0x9A, 0x009A}, {0x9B, 0x009B}, {0x9C, 0x009C}, {0x9D, 0x009D}, {0x9E, 0x009E}, {0x9F, 0x009F}, {0xA0, 0x00A0}, {0xA1, 0x201D}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA5, 0x201E}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00D8}, {0xA9, 0x00A9}, {0xAA, 0x0156}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00C6}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x201C}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00F8}, {0xB9, 0x00B9}, {0xBA, 0x0157}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00E6}, {0xC0, 0x0104}, {0xC1, 0x012E}, {0xC2, 0x0100}, {0xC3, 0x0106}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x0118}, {0xC7, 0x0112}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0179}, {0xCB, 0x0116}, {0xCC, 0x0122}, {0xCD, 0x0136}, {0xCE, 0x012A}, {0xCF, 0x013B}, {0xD0, 0x0160}, {0xD1, 0x0143}, {0xD2, 0x0145}, {0xD3, 0x00D3}, {0xD4, 0x014C}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0172}, {0xD9, 0x0141}, {0xDA, 0x015A}, {0xDB, 0x016A}, {0xDC, 0x00DC}, {0xDD, 0x017B}, {0xDE, 0x017D}, {0xDF, 0x00DF}, {0xE0, 0x0105}, {0xE1, 0x012F}, {0xE2, 0x0101}, {0xE3, 0x0107}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x0119}, {0xE7, 0x0113}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x017A}, {0xEB, 0x0117}, {0xEC, 0x0123}, {0xED, 0x0137}, {0xEE, 0x012B}, {0xEF, 0x013C}, {0xF0, 0x0161}, {0xF1, 0x0144}, {0xF2, 0x0146}, {0xF3, 0x00F3}, {0xF4, 0x014D}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0173}, {0xF9, 0x0142}, {0xFA, 0x015B}, {0xFB, 0x016B}, {0xFC, 0x00FC}, {0xFD, 0x017C}, {0xFE, 0x017E}, {0xFF, 0x2019}, {0, 0} }; char *aliases_8859_13 [] = {"ISO-8859-13", "8859-13", "iso-ir-179", "latin7", "l7", NULL }; struct table_entry table_cp1250 [] = { {0x80, 0x20AC}, {0x82, 0x201A}, {0x84, 0x201E}, {0x85, 0x2026}, {0x86, 0x2020}, {0x87, 0x2021}, {0x89, 0x2030}, {0x8A, 0x0160}, {0x8B, 0x2039}, {0x8C, 0x015A}, {0x8D, 0x0164}, {0x8E, 0x017D}, {0x8F, 0x0179}, {0x91, 0x2018}, {0x92, 0x2019}, {0x93, 0x201C}, {0x94, 0x201D}, {0x95, 0x2022}, {0x96, 0x2013}, {0x97, 0x2014}, {0x99, 0x2122}, {0x9A, 0x0161}, {0x9B, 0x203A}, {0x9C, 0x015B}, {0x9D, 0x0165}, {0x9E, 0x017E}, {0x9F, 0x017A}, {0xA0, 0x00A0}, {0xA1, 0x02C7}, {0xA2, 0x02D8}, {0xA3, 0x0141}, {0xA4, 0x00A4}, {0xA5, 0x0104}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00A8}, {0xA9, 0x00A9}, {0xAA, 0x015E}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x017B}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x02DB}, {0xB3, 0x0142}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00B8}, {0xB9, 0x0105}, {0xBA, 0x015F}, {0xBB, 0x00BB}, {0xBC, 0x013D}, {0xBD, 0x02DD}, {0xBE, 0x013E}, {0xBF, 0x017C}, {0xC0, 0x0154}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x0102}, {0xC4, 0x00C4}, {0xC5, 0x0139}, {0xC6, 0x0106}, {0xC7, 0x00C7}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0118}, {0xCB, 0x00CB}, {0xCC, 0x011A}, {0xCD, 0x00CD}, {0xCE, 0x00CE}, {0xCF, 0x010E}, {0xD0, 0x0110}, {0xD1, 0x0143}, {0xD2, 0x0147}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x0150}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0158}, {0xD9, 0x016E}, {0xDA, 0x00DA}, {0xDB, 0x0170}, {0xDC, 0x00DC}, {0xDD, 0x00DD}, {0xDE, 0x0162}, {0xDF, 0x00DF}, {0xE0, 0x0155}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x0103}, {0xE4, 0x00E4}, {0xE5, 0x013A}, {0xE6, 0x0107}, {0xE7, 0x00E7}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x0119}, {0xEB, 0x00EB}, {0xEC, 0x011B}, {0xED, 0x00ED}, {0xEE, 0x00EE}, {0xEF, 0x010F}, {0xF0, 0x0111}, {0xF1, 0x0144}, {0xF2, 0x0148}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x0151}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0159}, {0xF9, 0x016F}, {0xFA, 0x00FA}, {0xFB, 0x0171}, {0xFC, 0x00FC}, {0xFD, 0x00FD}, {0xFE, 0x0163}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_cp1250 [] = {"windows-1250", "1250", NULL }; struct table_entry table_cp1251 [] = { {0x80, 0x0402}, {0x81, 0x0403}, {0x82, 0x201A}, {0x83, 0x0453}, {0x84, 0x201E}, {0x85, 0x2026}, {0x86, 0x2020}, {0x87, 0x2021}, {0x88, 0x20AC}, {0x89, 0x2030}, {0x8A, 0x0409}, {0x8B, 0x2039}, {0x8C, 0x040A}, {0x8D, 0x040C}, {0x8E, 0x040B}, {0x8F, 0x040F}, {0x90, 0x0452}, {0x91, 0x2018}, {0x92, 0x2019}, {0x93, 0x201C}, {0x94, 0x201D}, {0x95, 0x2022}, {0x96, 0x2013}, {0x97, 0x2014}, {0x99, 0x2122}, {0x9A, 0x0459}, {0x9B, 0x203A}, {0x9C, 0x045A}, {0x9D, 0x045C}, {0x9E, 0x045B}, {0x9F, 0x045F}, {0xA0, 0x00A0}, {0xA1, 0x040E}, {0xA2, 0x045E}, {0xA3, 0x0408}, {0xA4, 0x00A4}, {0xA5, 0x0490}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x0401}, {0xA9, 0x00A9}, {0xAA, 0x0404}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x0407}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x0406}, {0xB3, 0x0456}, {0xB4, 0x0491}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x0451}, {0xB9, 0x2116}, {0xBA, 0x0454}, {0xBB, 0x00BB}, {0xBC, 0x0458}, {0xBD, 0x0405}, {0xBE, 0x0455}, {0xBF, 0x0457}, {0xC0, 0x0410}, {0xC1, 0x0411}, {0xC2, 0x0412}, {0xC3, 0x0413}, {0xC4, 0x0414}, {0xC5, 0x0415}, {0xC6, 0x0416}, {0xC7, 0x0417}, {0xC8, 0x0418}, {0xC9, 0x0419}, {0xCA, 0x041A}, {0xCB, 0x041B}, {0xCC, 0x041C}, {0xCD, 0x041D}, {0xCE, 0x041E}, {0xCF, 0x041F}, {0xD0, 0x0420}, {0xD1, 0x0421}, {0xD2, 0x0422}, {0xD3, 0x0423}, {0xD4, 0x0424}, {0xD5, 0x0425}, {0xD6, 0x0426}, {0xD7, 0x0427}, {0xD8, 0x0428}, {0xD9, 0x0429}, {0xDA, 0x042A}, {0xDB, 0x042B}, {0xDC, 0x042C}, {0xDD, 0x042D}, {0xDE, 0x042E}, {0xDF, 0x042F}, {0xE0, 0x0430}, {0xE1, 0x0431}, {0xE2, 0x0432}, {0xE3, 0x0433}, {0xE4, 0x0434}, {0xE5, 0x0435}, {0xE6, 0x0436}, {0xE7, 0x0437}, {0xE8, 0x0438}, {0xE9, 0x0439}, {0xEA, 0x043A}, {0xEB, 0x043B}, {0xEC, 0x043C}, {0xED, 0x043D}, {0xEE, 0x043E}, {0xEF, 0x043F}, {0xF0, 0x0440}, {0xF1, 0x0441}, {0xF2, 0x0442}, {0xF3, 0x0443}, {0xF4, 0x0444}, {0xF5, 0x0445}, {0xF6, 0x0446}, {0xF7, 0x0447}, {0xF8, 0x0448}, {0xF9, 0x0449}, {0xFA, 0x044A}, {0xFB, 0x044B}, {0xFC, 0x044C}, {0xFD, 0x044D}, {0xFE, 0x044E}, {0xFF, 0x044F}, {0, 0} }; char *aliases_cp1251 [] = {"windows-1251", "1251", NULL }; struct table_entry table_cp1257 [] = { {0x80, 0x20AC}, {0x82, 0x201A}, {0x84, 0x201E}, {0x85, 0x2026}, {0x86, 0x2020}, {0x87, 0x2021}, {0x89, 0x2030}, {0x8B, 0x2039}, {0x8D, 0x00A8}, {0x8E, 0x02C7}, {0x8F, 0x00B8}, {0x91, 0x2018}, {0x92, 0x2019}, {0x93, 0x201C}, {0x94, 0x201D}, {0x95, 0x2022}, {0x96, 0x2013}, {0x97, 0x2014}, {0x99, 0x2122}, {0x9B, 0x203A}, {0x9D, 0x00AF}, {0x9E, 0x02DB}, {0xA0, 0x00A0}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A4}, {0xA6, 0x00A6}, {0xA7, 0x00A7}, {0xA8, 0x00D8}, {0xA9, 0x00A9}, {0xAA, 0x0156}, {0xAB, 0x00AB}, {0xAC, 0x00AC}, {0xAD, 0x00AD}, {0xAE, 0x00AE}, {0xAF, 0x00C6}, {0xB0, 0x00B0}, {0xB1, 0x00B1}, {0xB2, 0x00B2}, {0xB3, 0x00B3}, {0xB4, 0x00B4}, {0xB5, 0x00B5}, {0xB6, 0x00B6}, {0xB7, 0x00B7}, {0xB8, 0x00F8}, {0xB9, 0x00B9}, {0xBA, 0x0157}, {0xBB, 0x00BB}, {0xBC, 0x00BC}, {0xBD, 0x00BD}, {0xBE, 0x00BE}, {0xBF, 0x00E6}, {0xC0, 0x0104}, {0xC1, 0x012E}, {0xC2, 0x0100}, {0xC3, 0x0106}, {0xC4, 0x00C4}, {0xC5, 0x00C5}, {0xC6, 0x0118}, {0xC7, 0x0112}, {0xC8, 0x010C}, {0xC9, 0x00C9}, {0xCA, 0x0179}, {0xCB, 0x0116}, {0xCC, 0x0122}, {0xCD, 0x0136}, {0xCE, 0x012A}, {0xCF, 0x013B}, {0xD0, 0x0160}, {0xD1, 0x0143}, {0xD2, 0x0145}, {0xD3, 0x00D3}, {0xD4, 0x014C}, {0xD5, 0x00D5}, {0xD6, 0x00D6}, {0xD7, 0x00D7}, {0xD8, 0x0172}, {0xD9, 0x0141}, {0xDA, 0x015A}, {0xDB, 0x016A}, {0xDC, 0x00DC}, {0xDD, 0x017B}, {0xDE, 0x017D}, {0xDF, 0x00DF}, {0xE0, 0x0105}, {0xE1, 0x012F}, {0xE2, 0x0101}, {0xE3, 0x0107}, {0xE4, 0x00E4}, {0xE5, 0x00E5}, {0xE6, 0x0119}, {0xE7, 0x0113}, {0xE8, 0x010D}, {0xE9, 0x00E9}, {0xEA, 0x017A}, {0xEB, 0x0117}, {0xEC, 0x0123}, {0xED, 0x0137}, {0xEE, 0x012B}, {0xEF, 0x013C}, {0xF0, 0x0161}, {0xF1, 0x0144}, {0xF2, 0x0146}, {0xF3, 0x00F3}, {0xF4, 0x014D}, {0xF5, 0x00F5}, {0xF6, 0x00F6}, {0xF7, 0x00F7}, {0xF8, 0x0173}, {0xF9, 0x0142}, {0xFA, 0x015B}, {0xFB, 0x016B}, {0xFC, 0x00FC}, {0xFD, 0x017C}, {0xFE, 0x017E}, {0xFF, 0x02D9}, {0, 0} }; char *aliases_cp1257 [] = {"windows-1257", "1257", NULL }; struct table_entry table_cp437 [] = { {0x80, 0x00c7}, {0x81, 0x00fc}, {0x82, 0x00e9}, {0x83, 0x00e2}, {0x84, 0x00e4}, {0x85, 0x00e0}, {0x86, 0x00e5}, {0x87, 0x00e7}, {0x88, 0x00ea}, {0x89, 0x00eb}, {0x8a, 0x00e8}, {0x8b, 0x00ef}, {0x8c, 0x00ee}, {0x8d, 0x00ec}, {0x8e, 0x00c4}, {0x8f, 0x00c5}, {0x90, 0x00c9}, {0x91, 0x00e6}, {0x92, 0x00c6}, {0x93, 0x00f4}, {0x94, 0x00f6}, {0x95, 0x00f2}, {0x96, 0x00fb}, {0x97, 0x00f9}, {0x98, 0x00ff}, {0x99, 0x00d6}, {0x9a, 0x00dc}, {0x9b, 0x00a2}, {0x9c, 0x00a3}, {0x9d, 0x00a5}, {0x9e, 0x20a7}, {0x9f, 0x0192}, {0xa0, 0x00e1}, {0xa1, 0x00ed}, {0xa2, 0x00f3}, {0xa3, 0x00fa}, {0xa4, 0x00f1}, {0xa5, 0x00d1}, {0xa6, 0x00aa}, {0xa7, 0x00ba}, {0xa8, 0x00bf}, {0xa9, 0x2310}, {0xaa, 0x00ac}, {0xab, 0x00bd}, {0xac, 0x00bc}, {0xad, 0x00a1}, {0xae, 0x00ab}, {0xaf, 0x00bb}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x03b1}, {0xe1, 0x00df}, {0xe2, 0x0393}, {0xe3, 0x03c0}, {0xe4, 0x03a3}, {0xe5, 0x03c3}, {0xe6, 0x00b5}, {0xe7, 0x03c4}, {0xe8, 0x03a6}, {0xe9, 0x0398}, {0xea, 0x03a9}, {0xeb, 0x03b4}, {0xec, 0x221e}, {0xed, 0x03c6}, {0xee, 0x03b5}, {0xef, 0x2229}, {0xf0, 0x2261}, {0xf1, 0x00b1}, {0xf2, 0x2265}, {0xf3, 0x2264}, {0xf4, 0x2320}, {0xf5, 0x2321}, {0xf6, 0x00f7}, {0xf7, 0x2248}, {0xf8, 0x00b0}, {0xf9, 0x2219}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x207f}, {0xfd, 0x00b2}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp437 [] = {"cp437", "437", NULL }; struct table_entry table_cp737 [] = { {0x80, 0x0391}, {0x81, 0x0392}, {0x82, 0x0393}, {0x83, 0x0394}, {0x84, 0x0395}, {0x85, 0x0396}, {0x86, 0x0397}, {0x87, 0x0398}, {0x88, 0x0399}, {0x89, 0x039a}, {0x8a, 0x039b}, {0x8b, 0x039c}, {0x8c, 0x039d}, {0x8d, 0x039e}, {0x8e, 0x039f}, {0x8f, 0x03a0}, {0x90, 0x03a1}, {0x91, 0x03a3}, {0x92, 0x03a4}, {0x93, 0x03a5}, {0x94, 0x03a6}, {0x95, 0x03a7}, {0x96, 0x03a8}, {0x97, 0x03a9}, {0x98, 0x03b1}, {0x99, 0x03b2}, {0x9a, 0x03b3}, {0x9b, 0x03b4}, {0x9c, 0x03b5}, {0x9d, 0x03b6}, {0x9e, 0x03b7}, {0x9f, 0x03b8}, {0xa0, 0x03b9}, {0xa1, 0x03ba}, {0xa2, 0x03bb}, {0xa3, 0x03bc}, {0xa4, 0x03bd}, {0xa5, 0x03be}, {0xa6, 0x03bf}, {0xa7, 0x03c0}, {0xa8, 0x03c1}, {0xa9, 0x03c3}, {0xaa, 0x03c2}, {0xab, 0x03c4}, {0xac, 0x03c5}, {0xad, 0x03c6}, {0xae, 0x03c7}, {0xaf, 0x03c8}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x03c9}, {0xe1, 0x03ac}, {0xe2, 0x03ad}, {0xe3, 0x03ae}, {0xe4, 0x03ca}, {0xe5, 0x03af}, {0xe6, 0x03cc}, {0xe7, 0x03cd}, {0xe8, 0x03cb}, {0xe9, 0x03ce}, {0xea, 0x0386}, {0xeb, 0x0388}, {0xec, 0x0389}, {0xed, 0x038a}, {0xee, 0x038c}, {0xef, 0x038e}, {0xf0, 0x038f}, {0xf1, 0x00b1}, {0xf2, 0x2265}, {0xf3, 0x2264}, {0xf4, 0x03aa}, {0xf5, 0x03ab}, {0xf6, 0x00f7}, {0xf7, 0x2248}, {0xf8, 0x00b0}, {0xf9, 0x2219}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x207f}, {0xfd, 0x00b2}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp737 [] = {"cp737", "737", NULL }; struct table_entry table_cp850 [] = { {0x80, 0x00c7}, {0x81, 0x00fc}, {0x82, 0x00e9}, {0x83, 0x00e2}, {0x84, 0x00e4}, {0x85, 0x00e0}, {0x86, 0x00e5}, {0x87, 0x00e7}, {0x88, 0x00ea}, {0x89, 0x00eb}, {0x8a, 0x00e8}, {0x8b, 0x00ef}, {0x8c, 0x00ee}, {0x8d, 0x00ec}, {0x8e, 0x00c4}, {0x8f, 0x00c5}, {0x90, 0x00c9}, {0x91, 0x00e6}, {0x92, 0x00c6}, {0x93, 0x00f4}, {0x94, 0x00f6}, {0x95, 0x00f2}, {0x96, 0x00fb}, {0x97, 0x00f9}, {0x98, 0x00ff}, {0x99, 0x00d6}, {0x9a, 0x00dc}, {0x9b, 0x00f8}, {0x9c, 0x00a3}, {0x9d, 0x00d8}, {0x9e, 0x00d7}, {0x9f, 0x0192}, {0xa0, 0x00e1}, {0xa1, 0x00ed}, {0xa2, 0x00f3}, {0xa3, 0x00fa}, {0xa4, 0x00f1}, {0xa5, 0x00d1}, {0xa6, 0x00aa}, {0xa7, 0x00ba}, {0xa8, 0x00bf}, {0xa9, 0x00ae}, {0xaa, 0x00ac}, {0xab, 0x00bd}, {0xac, 0x00bc}, {0xad, 0x00a1}, {0xae, 0x00ab}, {0xaf, 0x00bb}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x00c1}, {0xb6, 0x00c2}, {0xb7, 0x00c0}, {0xb8, 0x00a9}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x00a2}, {0xbe, 0x00a5}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x00e3}, {0xc7, 0x00c3}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x00a4}, {0xd0, 0x00f0}, {0xd1, 0x00d0}, {0xd2, 0x00ca}, {0xd3, 0x00cb}, {0xd4, 0x00c8}, {0xd5, 0x0131}, {0xd6, 0x00cd}, {0xd7, 0x00ce}, {0xd8, 0x00cf}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x00a6}, {0xde, 0x00cc}, {0xdf, 0x2580}, {0xe0, 0x00d3}, {0xe1, 0x00df}, {0xe2, 0x00d4}, {0xe3, 0x00d2}, {0xe4, 0x00f5}, {0xe5, 0x00d5}, {0xe6, 0x00b5}, {0xe7, 0x00fe}, {0xe8, 0x00de}, {0xe9, 0x00da}, {0xea, 0x00db}, {0xeb, 0x00d9}, {0xec, 0x00fd}, {0xed, 0x00dd}, {0xee, 0x00af}, {0xef, 0x00b4}, {0xf0, 0x00ad}, {0xf1, 0x00b1}, {0xf2, 0x2017}, {0xf3, 0x00be}, {0xf4, 0x00b6}, {0xf5, 0x00a7}, {0xf6, 0x00f7}, {0xf7, 0x00b8}, {0xf8, 0x00b0}, {0xf9, 0x00a8}, {0xfa, 0x00b7}, {0xfb, 0x00b9}, {0xfc, 0x00b3}, {0xfd, 0x00b2}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp850 [] = {"cp850", "850", NULL }; struct table_entry table_cp852 [] = { {0x80, 0x00c7}, {0x81, 0x00fc}, {0x82, 0x00e9}, {0x83, 0x00e2}, {0x84, 0x00e4}, {0x85, 0x016f}, {0x86, 0x0107}, {0x87, 0x00e7}, {0x88, 0x0142}, {0x89, 0x00eb}, {0x8a, 0x0150}, {0x8b, 0x0151}, {0x8c, 0x00ee}, {0x8d, 0x0179}, {0x8e, 0x00c4}, {0x8f, 0x0106}, {0x90, 0x00c9}, {0x91, 0x0139}, {0x92, 0x013a}, {0x93, 0x00f4}, {0x94, 0x00f6}, {0x95, 0x013d}, {0x96, 0x013e}, {0x97, 0x015a}, {0x98, 0x015b}, {0x99, 0x00d6}, {0x9a, 0x00dc}, {0x9b, 0x0164}, {0x9c, 0x0165}, {0x9d, 0x0141}, {0x9e, 0x00d7}, {0x9f, 0x010d}, {0xa0, 0x00e1}, {0xa1, 0x00ed}, {0xa2, 0x00f3}, {0xa3, 0x00fa}, {0xa4, 0x0104}, {0xa5, 0x0105}, {0xa6, 0x017d}, {0xa7, 0x017e}, {0xa8, 0x0118}, {0xa9, 0x0119}, {0xaa, 0x00ac}, {0xab, 0x017a}, {0xac, 0x010c}, {0xad, 0x015f}, {0xae, 0x00ab}, {0xaf, 0x00bb}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x00c1}, {0xb6, 0x00c2}, {0xb7, 0x011a}, {0xb8, 0x015e}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x017b}, {0xbe, 0x017c}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x0102}, {0xc7, 0x0103}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x00a4}, {0xd0, 0x0111}, {0xd1, 0x0110}, {0xd2, 0x010e}, {0xd3, 0x00cb}, {0xd4, 0x010f}, {0xd5, 0x0147}, {0xd6, 0x00cd}, {0xd7, 0x00ce}, {0xd8, 0x011b}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x0162}, {0xde, 0x016e}, {0xdf, 0x2580}, {0xe0, 0x00d3}, {0xe1, 0x00df}, {0xe2, 0x00d4}, {0xe3, 0x0143}, {0xe4, 0x0144}, {0xe5, 0x0148}, {0xe6, 0x0160}, {0xe7, 0x0161}, {0xe8, 0x0154}, {0xe9, 0x00da}, {0xea, 0x0155}, {0xeb, 0x0170}, {0xec, 0x00fd}, {0xed, 0x00dd}, {0xee, 0x0163}, {0xef, 0x00b4}, {0xf0, 0x00ad}, {0xf1, 0x02dd}, {0xf2, 0x02db}, {0xf3, 0x02c7}, {0xf4, 0x02d8}, {0xf5, 0x00a7}, {0xf6, 0x00f7}, {0xf7, 0x00b8}, {0xf8, 0x00b0}, {0xf9, 0x00a8}, {0xfa, 0x02d9}, {0xfb, 0x0171}, {0xfc, 0x0158}, {0xfd, 0x0159}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp852 [] = {"cp852", "852", NULL }; struct table_entry table_cp866 [] = { {0x80, 0x0410}, {0x81, 0x0411}, {0x82, 0x0412}, {0x83, 0x0413}, {0x84, 0x0414}, {0x85, 0x0415}, {0x86, 0x0416}, {0x87, 0x0417}, {0x88, 0x0418}, {0x89, 0x0419}, {0x8a, 0x041a}, {0x8b, 0x041b}, {0x8c, 0x041c}, {0x8d, 0x041d}, {0x8e, 0x041e}, {0x8f, 0x041f}, {0x90, 0x0420}, {0x91, 0x0421}, {0x92, 0x0422}, {0x93, 0x0423}, {0x94, 0x0424}, {0x95, 0x0425}, {0x96, 0x0426}, {0x97, 0x0427}, {0x98, 0x0428}, {0x99, 0x0429}, {0x9a, 0x042a}, {0x9b, 0x042b}, {0x9c, 0x042c}, {0x9d, 0x042d}, {0x9e, 0x042e}, {0x9f, 0x042f}, {0xa0, 0x0430}, {0xa1, 0x0431}, {0xa2, 0x0432}, {0xa3, 0x0433}, {0xa4, 0x0434}, {0xa5, 0x0435}, {0xa6, 0x0436}, {0xa7, 0x0437}, {0xa8, 0x0438}, {0xa9, 0x0439}, {0xaa, 0x043a}, {0xab, 0x043b}, {0xac, 0x043c}, {0xad, 0x043d}, {0xae, 0x043e}, {0xaf, 0x043f}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x0440}, {0xe1, 0x0441}, {0xe2, 0x0442}, {0xe3, 0x0443}, {0xe4, 0x0444}, {0xe5, 0x0445}, {0xe6, 0x0446}, {0xe7, 0x0447}, {0xe8, 0x0448}, {0xe9, 0x0449}, {0xea, 0x044a}, {0xeb, 0x044b}, {0xec, 0x044c}, {0xed, 0x044d}, {0xee, 0x044e}, {0xef, 0x044f}, {0xf0, 0x0401}, {0xf1, 0x0451}, {0xf2, 0x0404}, {0xf3, 0x0454}, {0xf4, 0x0407}, {0xf5, 0x0457}, {0xf6, 0x040e}, {0xf7, 0x045e}, {0xf8, 0x00b0}, {0xf9, 0x2219}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x2116}, {0xfd, 0x00a4}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp866 [] = {"cp866", "866", NULL }; struct table_entry table_cp1125 [] = { {0x80, 0x0410}, {0x81, 0x0411}, {0x82, 0x0412}, {0x83, 0x0413}, {0x84, 0x0414}, {0x85, 0x0415}, {0x86, 0x0416}, {0x87, 0x0417}, {0x88, 0x0418}, {0x89, 0x0419}, {0x8a, 0x041a}, {0x8b, 0x041b}, {0x8c, 0x041c}, {0x8d, 0x041d}, {0x8e, 0x041e}, {0x8f, 0x041f}, {0x90, 0x0420}, {0x91, 0x0421}, {0x92, 0x0422}, {0x93, 0x0423}, {0x94, 0x0424}, {0x95, 0x0425}, {0x96, 0x0426}, {0x97, 0x0427}, {0x98, 0x0428}, {0x99, 0x0429}, {0x9a, 0x042a}, {0x9b, 0x042b}, {0x9c, 0x042c}, {0x9d, 0x042d}, {0x9e, 0x042e}, {0x9f, 0x042f}, {0xa0, 0x0430}, {0xa1, 0x0431}, {0xa2, 0x0432}, {0xa3, 0x0433}, {0xa4, 0x0434}, {0xa5, 0x0435}, {0xa6, 0x0436}, {0xa7, 0x0437}, {0xa8, 0x0438}, {0xa9, 0x0439}, {0xaa, 0x043a}, {0xab, 0x043b}, {0xac, 0x043c}, {0xad, 0x043d}, {0xae, 0x043e}, {0xaf, 0x043f}, {0xb0, 0x2591}, {0xb1, 0x2592}, {0xb2, 0x2593}, {0xb3, 0x2502}, {0xb4, 0x2524}, {0xb5, 0x2561}, {0xb6, 0x2562}, {0xb7, 0x2556}, {0xb8, 0x2555}, {0xb9, 0x2563}, {0xba, 0x2551}, {0xbb, 0x2557}, {0xbc, 0x255d}, {0xbd, 0x255c}, {0xbe, 0x255b}, {0xbf, 0x2510}, {0xc0, 0x2514}, {0xc1, 0x2534}, {0xc2, 0x252c}, {0xc3, 0x251c}, {0xc4, 0x2500}, {0xc5, 0x253c}, {0xc6, 0x255e}, {0xc7, 0x255f}, {0xc8, 0x255a}, {0xc9, 0x2554}, {0xca, 0x2569}, {0xcb, 0x2566}, {0xcc, 0x2560}, {0xcd, 0x2550}, {0xce, 0x256c}, {0xcf, 0x2567}, {0xd0, 0x2568}, {0xd1, 0x2564}, {0xd2, 0x2565}, {0xd3, 0x2559}, {0xd4, 0x2558}, {0xd5, 0x2552}, {0xd6, 0x2553}, {0xd7, 0x256b}, {0xd8, 0x256a}, {0xd9, 0x2518}, {0xda, 0x250c}, {0xdb, 0x2588}, {0xdc, 0x2584}, {0xdd, 0x258c}, {0xde, 0x2590}, {0xdf, 0x2580}, {0xe0, 0x0440}, {0xe1, 0x0441}, {0xe2, 0x0442}, {0xe3, 0x0443}, {0xe4, 0x0444}, {0xe5, 0x0445}, {0xe6, 0x0446}, {0xe7, 0x0447}, {0xe8, 0x0448}, {0xe9, 0x0449}, {0xea, 0x044a}, {0xeb, 0x044b}, {0xec, 0x044c}, {0xed, 0x044d}, {0xee, 0x044e}, {0xef, 0x044f}, {0xf0, 0x0401}, {0xf1, 0x0451}, {0xf2, 0x0490}, {0xf3, 0x0491}, {0xf4, 0x0404}, {0xf5, 0x0454}, {0xf6, 0x0406}, {0xf7, 0x0456}, {0xf8, 0x0407}, {0xf9, 0x0457}, {0xfa, 0x00b7}, {0xfb, 0x221a}, {0xfc, 0x2116}, {0xfd, 0x00a4}, {0xfe, 0x25a0}, {0xff, 0x00a0}, {0, 0} }; char *aliases_cp1125 [] = {"x-cp866-u", "ruscii", "1125", NULL }; struct table_entry table_macroman [] = { {0x80, 0x00C4}, {0x81, 0x00C5}, {0x82, 0x00C7}, {0x83, 0x00C9}, {0x84, 0x00D1}, {0x85, 0x00D6}, {0x86, 0x00DC}, {0x87, 0x00E1}, {0x88, 0x00E0}, {0x89, 0x00E2}, {0x8A, 0x00E4}, {0x8B, 0x00E3}, {0x8C, 0x00E5}, {0x8D, 0x00E7}, {0x8E, 0x00E9}, {0x8F, 0x00E8}, {0x90, 0x00EA}, {0x91, 0x00EB}, {0x92, 0x00ED}, {0x93, 0x00EC}, {0x94, 0x00EE}, {0x95, 0x00EF}, {0x96, 0x00F1}, {0x97, 0x00F3}, {0x98, 0x00F2}, {0x99, 0x00F4}, {0x9A, 0x00F6}, {0x9B, 0x00F5}, {0x9C, 0x00FA}, {0x9D, 0x00F9}, {0x9E, 0x00FB}, {0x9F, 0x00FC}, {0xA0, 0x2020}, {0xA1, 0x00B0}, {0xA2, 0x00A2}, {0xA3, 0x00A3}, {0xA4, 0x00A7}, {0xA5, 0x2022}, {0xA6, 0x00B6}, {0xA7, 0x00DF}, {0xA8, 0x00AE}, {0xA9, 0x00A9}, {0xAA, 0x2122}, {0xAB, 0x00B4}, {0xAC, 0x00A8}, {0xAD, 0x2260}, {0xAE, 0x00C6}, {0xAF, 0x00D8}, {0xB0, 0x221E}, {0xB1, 0x00B1}, {0xB2, 0x2264}, {0xB3, 0x2265}, {0xB4, 0x00A5}, {0xB5, 0x00B5}, {0xB6, 0x2202}, {0xB7, 0x2211}, {0xB8, 0x220F}, {0xB9, 0x03C0}, {0xBA, 0x222B}, {0xBB, 0x00AA}, {0xBC, 0x00BA}, {0xBD, 0x03A9}, {0xBE, 0x00E6}, {0xBF, 0x00F8}, {0xC0, 0x00BF}, {0xC1, 0x00A1}, {0xC2, 0x00AC}, {0xC3, 0x221A}, {0xC4, 0x0192}, {0xC5, 0x2248}, {0xC6, 0x0394}, {0xC7, 0x00AB}, {0xC8, 0x00BB}, {0xC9, 0x2026}, {0xCA, 0x00A0}, {0xCB, 0x00C0}, {0xCC, 0x00C3}, {0xCD, 0x00D5}, {0xCE, 0x0152}, {0xCF, 0x0153}, {0xD0, 0x2013}, {0xD1, 0x2014}, {0xD2, 0x201C}, {0xD3, 0x201D}, {0xD4, 0x2018}, {0xD5, 0x2019}, {0xD6, 0x00F7}, {0xD7, 0x25CA}, {0xD8, 0x00FF}, {0xD9, 0x0178}, {0xDA, 0x2044}, {0xDB, 0x20AC}, {0xDC, 0x2039}, {0xDD, 0x203A}, {0xDE, 0xFB01}, {0xDF, 0xFB02}, {0xE0, 0x2021}, {0xE1, 0x00B7}, {0xE2, 0x201A}, {0xE3, 0x201E}, {0xE4, 0x2030}, {0xE5, 0x00C2}, {0xE6, 0x00CA}, {0xE7, 0x00C1}, {0xE8, 0x00CB}, {0xE9, 0x00C8}, {0xEA, 0x00CD}, {0xEB, 0x00CE}, {0xEC, 0x00CF}, {0xED, 0x00CC}, {0xEE, 0x00D3}, {0xEF, 0x00D4}, {0xF0, 0xF8FF}, {0xF1, 0x00D2}, {0xF2, 0x00DA}, {0xF3, 0x00DB}, {0xF4, 0x00D9}, {0xF5, 0x0131}, {0xF6, 0x02C6}, {0xF7, 0x02DC}, {0xF8, 0x00AF}, {0xF9, 0x02D8}, {0xFA, 0x02D9}, {0xFB, 0x02DA}, {0xFC, 0x00B8}, {0xFD, 0x02DD}, {0xFE, 0x02DB}, {0xFF, 0x02C7}, {0, 0} }; char *aliases_macroman [] = {"x-mac", "mac", "macroman", NULL }; struct table_entry table_mac_lat2 [] = { {0x80, 0x00C4}, {0x81, 0x0100}, {0x82, 0x0101}, {0x83, 0x00C9}, {0x84, 0x0104}, {0x85, 0x00D6}, {0x86, 0x00DC}, {0x87, 0x00E1}, {0x88, 0x0105}, {0x89, 0x010C}, {0x8A, 0x00E4}, {0x8B, 0x010D}, {0x8C, 0x0106}, {0x8D, 0x0107}, {0x8E, 0x00E9}, {0x8F, 0x0179}, {0x90, 0x017A}, {0x91, 0x010E}, {0x92, 0x00ED}, {0x93, 0x010F}, {0x94, 0x0112}, {0x95, 0x0113}, {0x96, 0x0116}, {0x97, 0x00F3}, {0x98, 0x0117}, {0x99, 0x00F4}, {0x9A, 0x00F6}, {0x9B, 0x00F5}, {0x9C, 0x00FA}, {0x9D, 0x011A}, {0x9E, 0x011B}, {0x9F, 0x00FC}, {0xA0, 0x2020}, {0xA1, 0x00B0}, {0xA2, 0x0118}, {0xA3, 0x00A3}, {0xA4, 0x00A7}, {0xA5, 0x2022}, {0xA6, 0x00B6}, {0xA7, 0x00DF}, {0xA8, 0x00AE}, {0xA9, 0x00A9}, {0xAA, 0x2122}, {0xAB, 0x0119}, {0xAC, 0x00A8}, {0xAD, 0x2260}, {0xAE, 0x0123}, {0xAF, 0x012E}, {0xB0, 0x012F}, {0xB1, 0x012A}, {0xB2, 0x2264}, {0xB3, 0x2265}, {0xB4, 0x012B}, {0xB5, 0x0136}, {0xB6, 0x2202}, {0xB7, 0x2211}, {0xB8, 0x0142}, {0xB9, 0x013B}, {0xBA, 0x013C}, {0xBB, 0x013D}, {0xBC, 0x013E}, {0xBD, 0x0139}, {0xBE, 0x013A}, {0xBF, 0x0145}, {0xC0, 0x0146}, {0xC1, 0x0143}, {0xC2, 0x00AC}, {0xC3, 0x221A}, {0xC4, 0x0144}, {0xC5, 0x0147}, {0xC6, 0x2206}, {0xC7, 0x00AB}, {0xC8, 0x00BB}, {0xC9, 0x2026}, {0xCA, 0x00A0}, {0xCB, 0x0148}, {0xCC, 0x0150}, {0xCD, 0x00D5}, {0xCE, 0x0151}, {0xCF, 0x014C}, {0xD0, 0x2013}, {0xD1, 0x2014}, {0xD2, 0x201C}, {0xD3, 0x201D}, {0xD4, 0x2018}, {0xD5, 0x2019}, {0xD6, 0x00F7}, {0xD7, 0x25CA}, {0xD8, 0x014D}, {0xD9, 0x0154}, {0xDA, 0x0155}, {0xDB, 0x0158}, {0xDC, 0x2039}, {0xDD, 0x203A}, {0xDE, 0x0159}, {0xDF, 0x0156}, {0xE0, 0x0157}, {0xE1, 0x0160}, {0xE2, 0x201A}, {0xE3, 0x201E}, {0xE4, 0x0161}, {0xE5, 0x015A}, {0xE6, 0x015B}, {0xE7, 0x00C1}, {0xE8, 0x0164}, {0xE9, 0x0165}, {0xEA, 0x00CD}, {0xEB, 0x017D}, {0xEC, 0x017E}, {0xED, 0x016A}, {0xEE, 0x00D3}, {0xEF, 0x00D4}, {0xF0, 0x016B}, {0xF1, 0x016E}, {0xF2, 0x00DA}, {0xF3, 0x016F}, {0xF4, 0x0170}, {0xF5, 0x0171}, {0xF6, 0x0172}, {0xF7, 0x0173}, {0xF8, 0x00DD}, {0xF9, 0x00FD}, {0xFA, 0x0137}, {0xFB, 0x017B}, {0xFC, 0x0141}, {0xFD, 0x017C}, {0xFE, 0x0122}, {0xFF, 0x02C7}, {0, 0} }; char *aliases_mac_lat2 [] = {"x-mac-ce", "mac-ce", "maclatin2", "10029", NULL }; struct table_entry table_kamen [] = { {0x80, 0x010C}, {0x81, 0x00FC}, {0x82, 0x00E9}, {0x83, 0x010F}, {0x84, 0x00E4}, {0x85, 0x010E}, {0x86, 0x0164}, {0x87, 0x010D}, {0x88, 0x011B}, {0x89, 0x011A}, {0x8A, 0x0139}, {0x8B, 0x00CD}, {0x8C, 0x013E}, {0x8D, 0x013A}, {0x8E, 0x00C4}, {0x8F, 0x00C1}, {0x90, 0x00C9}, {0x91, 0x017E}, {0x92, 0x017D}, {0x93, 0x00F4}, {0x94, 0x00F6}, {0x95, 0x00D3}, {0x96, 0x016F}, {0x97, 0x00DA}, {0x98, 0x00FD}, {0x99, 0x00D6}, {0x9A, 0x00DC}, {0x9B, 0x0160}, {0x9C, 0x013D}, {0x9D, 0x00DD}, {0x9E, 0x0158}, {0x9F, 0x0165}, {0xA0, 0x00E1}, {0xA1, 0x00ED}, {0xA2, 0x00F3}, {0xA3, 0x00FA}, {0xA4, 0x0148}, {0xA5, 0x0147}, {0xA6, 0x016E}, {0xA7, 0x00D4}, {0xA8, 0x0161}, {0xA9, 0x0159}, {0xAA, 0x0155}, {0xAB, 0x0154}, {0xAC, 0x00BC}, {0xAD, 0x00A7}, {0xAE, 0x00BB}, {0xAF, 0x00AB}, {0xB0, 0x2591}, {0xB1, 0x2592}, {0xB2, 0x2593}, {0xB3, 0x2502}, {0xB4, 0x2524}, {0xB5, 0x2561}, {0xB6, 0x2562}, {0xB7, 0x2556}, {0xB8, 0x2555}, {0xB9, 0x2563}, {0xBA, 0x2551}, {0xBB, 0x2557}, {0xBC, 0x255D}, {0xBD, 0x255C}, {0xBE, 0x255B}, {0xBF, 0x2510}, {0xC0, 0x2514}, {0xC1, 0x2534}, {0xC2, 0x252C}, {0xC3, 0x251C}, {0xC4, 0x2500}, {0xC5, 0x253C}, {0xC6, 0x255E}, {0xC7, 0x255F}, {0xC8, 0x255A}, {0xC9, 0x2554}, {0xCA, 0x2569}, {0xCB, 0x2566}, {0xCC, 0x2560}, {0xCD, 0x2550}, {0xCE, 0x256C}, {0xCF, 0x2567}, {0xD0, 0x2568}, {0xD1, 0x2564}, {0xD2, 0x2565}, {0xD3, 0x2559}, {0xD4, 0x2558}, {0xD5, 0x2552}, {0xD6, 0x2553}, {0xD7, 0x256B}, {0xD8, 0x256A}, {0xD9, 0x2518}, {0xDA, 0x250C}, {0xDB, 0x2588}, {0xDC, 0x2584}, {0xDD, 0x258C}, {0xDE, 0x2590}, {0xDF, 0x2580}, {0xE0, 0x03B1}, {0xE1, 0x03B2}, {0xE2, 0x0194}, {0xE3, 0x03C0}, {0xE4, 0x03A3}, {0xE5, 0x03C3}, {0xE6, 0x03BC}, {0xE7, 0x03C4}, {0xE8, 0x03A6}, {0xE9, 0x0398}, {0xEA, 0x03A9}, {0xEB, 0x03B4}, {0xEC, 0x221E}, {0xED, 0x03C6}, {0xEE, 0x2208}, {0xEF, 0x2229}, {0xF0, 0x224D}, {0xF1, 0x00B1}, {0xF2, 0x2265}, {0xF3, 0x2264}, {0xF4, 0x2320}, {0xF5, 0x2321}, {0xF6, 0x00F7}, {0xF7, 0x2248}, {0xF8, 0x00B0}, {0xF9, 0x2219}, {0xFA, 0x00B7}, {0xFB, 0x221A}, {0xFC, 0x207F}, {0xFD, 0x00B2}, {0xFE, 0x25A0}, {0xFF, 0x00A0}, {0, 0} }; char *aliases_kamen [] = {"x-kam-cs", "kam", "867", "869", NULL }; struct table_entry table_koi8_r [] = { {0x80, 0x2500}, {0x81, 0x2502}, {0x82, 0x250C}, {0x83, 0x2510}, {0x84, 0x2514}, {0x85, 0x2518}, {0x86, 0x251C}, {0x87, 0x2524}, {0x88, 0x252C}, {0x89, 0x2534}, {0x8A, 0x253C}, {0x8B, 0x2580}, {0x8C, 0x2584}, {0x8D, 0x2588}, {0x8E, 0x258C}, {0x8F, 0x2590}, {0x90, 0x2591}, {0x91, 0x2592}, {0x92, 0x2593}, {0x93, 0x2320}, {0x94, 0x25A0}, {0x95, 0x2022}, {0x96, 0x221A}, {0x97, 0x2248}, {0x98, 0x2264}, {0x99, 0x2265}, {0x9A, 0x00A0}, {0x9B, 0x2321}, {0x9C, 0x00B0}, {0x9D, 0x00B2}, {0x9E, 0x00B7}, {0x9F, 0x00F7}, {0xA0, 0x2550}, {0xA1, 0x2551}, {0xA2, 0x2552}, {0xA3, 0x0451}, {0xA4, 0x2553}, {0xA5, 0x2554}, {0xA6, 0x2555}, {0xA7, 0x2556}, {0xA8, 0x2557}, {0xA9, 0x2558}, {0xAA, 0x2559}, {0xAB, 0x255A}, {0xAC, 0x255B}, {0xAD, 0x255C}, {0xAE, 0x255D}, {0xAF, 0x255E}, {0xB0, 0x255F}, {0xB1, 0x2560}, {0xB2, 0x2561}, {0xB3, 0x0401}, {0xB4, 0x2562}, {0xB5, 0x2563}, {0xB6, 0x2564}, {0xB7, 0x2565}, {0xB8, 0x2566}, {0xB9, 0x2567}, {0xBA, 0x2568}, {0xBB, 0x2569}, {0xBC, 0x256A}, {0xBD, 0x256B}, {0xBE, 0x256C}, {0xBF, 0x00A9}, {0xC0, 0x044E}, {0xC1, 0x0430}, {0xC2, 0x0431}, {0xC3, 0x0446}, {0xC4, 0x0434}, {0xC5, 0x0435}, {0xC6, 0x0444}, {0xC7, 0x0433}, {0xC8, 0x0445}, {0xC9, 0x0438}, {0xCA, 0x0439}, {0xCB, 0x043A}, {0xCC, 0x043B}, {0xCD, 0x043C}, {0xCE, 0x043D}, {0xCF, 0x043E}, {0xD0, 0x043F}, {0xD1, 0x044F}, {0xD2, 0x0440}, {0xD3, 0x0441}, {0xD4, 0x0442}, {0xD5, 0x0443}, {0xD6, 0x0436}, {0xD7, 0x0432}, {0xD8, 0x044C}, {0xD9, 0x044B}, {0xDA, 0x0437}, {0xDB, 0x0448}, {0xDC, 0x044D}, {0xDD, 0x0449}, {0xDE, 0x0447}, {0xDF, 0x044A}, {0xE0, 0x042E}, {0xE1, 0x0410}, {0xE2, 0x0411}, {0xE3, 0x0426}, {0xE4, 0x0414}, {0xE5, 0x0415}, {0xE6, 0x0424}, {0xE7, 0x0413}, {0xE8, 0x0425}, {0xE9, 0x0418}, {0xEA, 0x0419}, {0xEB, 0x041A}, {0xEC, 0x041B}, {0xED, 0x041C}, {0xEE, 0x041D}, {0xEF, 0x041E}, {0xF0, 0x041F}, {0xF1, 0x042F}, {0xF2, 0x0420}, {0xF3, 0x0421}, {0xF4, 0x0422}, {0xF5, 0x0423}, {0xF6, 0x0416}, {0xF7, 0x0412}, {0xF8, 0x042C}, {0xF9, 0x042B}, {0xFA, 0x0417}, {0xFB, 0x0428}, {0xFC, 0x042D}, {0xFD, 0x0429}, {0xFE, 0x0427}, {0xFF, 0x042A}, {0, 0} }; char *aliases_koi8_r [] = {"koi8-r", NULL }; struct table_entry table_koi8_u [] = { {0x80, 0x2500}, {0x81, 0x2502}, {0x82, 0x250C}, {0x83, 0x2510}, {0x84, 0x2514}, {0x85, 0x2518}, {0x86, 0x251C}, {0x87, 0x2524}, {0x88, 0x252C}, {0x89, 0x2534}, {0x8A, 0x253C}, {0x8B, 0x2580}, {0x8C, 0x2584}, {0x8D, 0x2588}, {0x8E, 0x258C}, {0x8F, 0x2590}, {0x90, 0x2591}, {0x91, 0x2592}, {0x92, 0x2593}, {0x93, 0x2320}, {0x94, 0x25A0}, {0x95, 0x2219}, {0x96, 0x221A}, {0x97, 0x2248}, {0x98, 0x2264}, {0x99, 0x2265}, {0x9A, 0x00A0}, {0x9B, 0x2321}, {0x9C, 0x00B0}, {0x9D, 0x00B2}, {0x9E, 0x00B7}, {0x9F, 0x00F7}, {0xA0, 0x2550}, {0xA1, 0x2551}, {0xA2, 0x2552}, {0xA3, 0x0451}, {0xA4, 0x0454}, {0xA5, 0x2554}, {0xA6, 0x0456}, {0xA7, 0x0457}, {0xA8, 0x2557}, {0xA9, 0x2558}, {0xAA, 0x2559}, {0xAB, 0x255A}, {0xAC, 0x255B}, {0xAD, 0x0491}, {0xAE, 0x255D}, {0xAF, 0x255E}, {0xB0, 0x255F}, {0xB1, 0x2560}, {0xB2, 0x2561}, {0xB3, 0x0401}, {0xB4, 0x0404}, {0xB5, 0x2563}, {0xB6, 0x0406}, {0xB7, 0x0407}, {0xB8, 0x2566}, {0xB9, 0x2567}, {0xBA, 0x2568}, {0xBB, 0x2569}, {0xBC, 0x256A}, {0xBD, 0x0490}, {0xBE, 0x256C}, {0xBF, 0x00A9}, {0xC0, 0x044E}, {0xC1, 0x0430}, {0xC2, 0x0431}, {0xC3, 0x0446}, {0xC4, 0x0434}, {0xC5, 0x0435}, {0xC6, 0x0444}, {0xC7, 0x0433}, {0xC8, 0x0445}, {0xC9, 0x0438}, {0xCA, 0x0439}, {0xCB, 0x043A}, {0xCC, 0x043B}, {0xCD, 0x043C}, {0xCE, 0x043D}, {0xCF, 0x043E}, {0xD0, 0x043F}, {0xD1, 0x044F}, {0xD2, 0x0440}, {0xD3, 0x0441}, {0xD4, 0x0442}, {0xD5, 0x0443}, {0xD6, 0x0436}, {0xD7, 0x0432}, {0xD8, 0x044C}, {0xD9, 0x044B}, {0xDA, 0x0437}, {0xDB, 0x0448}, {0xDC, 0x044D}, {0xDD, 0x0449}, {0xDE, 0x0447}, {0xDF, 0x044A}, {0xE0, 0x042E}, {0xE1, 0x0410}, {0xE2, 0x0411}, {0xE3, 0x0426}, {0xE4, 0x0414}, {0xE5, 0x0415}, {0xE6, 0x0424}, {0xE7, 0x0413}, {0xE8, 0x0425}, {0xE9, 0x0418}, {0xEA, 0x0419}, {0xEB, 0x041A}, {0xEC, 0x041B}, {0xED, 0x041C}, {0xEE, 0x041D}, {0xEF, 0x041E}, {0xF0, 0x041F}, {0xF1, 0x042F}, {0xF2, 0x0420}, {0xF3, 0x0421}, {0xF4, 0x0422}, {0xF5, 0x0423}, {0xF6, 0x0416}, {0xF7, 0x0412}, {0xF8, 0x042C}, {0xF9, 0x042B}, {0xFA, 0x0417}, {0xFB, 0x0428}, {0xFC, 0x042D}, {0xFD, 0x0429}, {0xFE, 0x0427}, {0xFF, 0x042A}, {0, 0} }; char *aliases_koi8_u [] = {"koi8-u", NULL }; struct table_entry table_tcvn5712 [] = { {0x80, 0x00C0}, {0x81, 0x1EA2}, {0x82, 0x00C3}, {0x83, 0x00C1}, {0x84, 0x1EA0}, {0x85, 0x1EB6}, {0x86, 0x1EAC}, {0x87, 0x00C8}, {0x88, 0x1EBA}, {0x89, 0x1EBC}, {0x8A, 0x00C9}, {0x8B, 0x1EB8}, {0x8C, 0x1EC6}, {0x8D, 0x00CC}, {0x8E, 0x1EC8}, {0x8F, 0x0128}, {0x90, 0x00CD}, {0x91, 0x1ECA}, {0x92, 0x00D2}, {0x93, 0x1ECE}, {0x94, 0x00D5}, {0x95, 0x00D3}, {0x96, 0x1ECC}, {0x97, 0x1ED8}, {0x98, 0x1EDC}, {0x99, 0x1EDE}, {0x9A, 0x1EE0}, {0x9B, 0x1EDA}, {0x9C, 0x1EE2}, {0x9D, 0x00D9}, {0x9E, 0x1EE6}, {0x9F, 0x0168}, {0xA0, 0x00A0}, {0xA1, 0x0102}, {0xA2, 0x00C2}, {0xA3, 0x00CA}, {0xA4, 0x00D4}, {0xA5, 0x01A0}, {0xA6, 0x01AF}, {0xA7, 0x0110}, {0xA8, 0x0103}, {0xA9, 0x00E2}, {0xAA, 0x00EA}, {0xAB, 0x00F4}, {0xAC, 0x01A1}, {0xAD, 0x01B0}, {0xAE, 0x0111}, {0xAF, 0x1EB0}, {0xB0, 0x0300}, {0xB1, 0x0309}, {0xB2, 0x0303}, {0xB3, 0x0301}, {0xB4, 0x0323}, {0xB5, 0x00E0}, {0xB6, 0x1EA3}, {0xB7, 0x00E3}, {0xB8, 0x00E1}, {0xB9, 0x1EA1}, {0xBA, 0x1EB2}, {0xBB, 0x1EB1}, {0xBC, 0x1EB3}, {0xBD, 0x1EB5}, {0xBE, 0x1EAF}, {0xBF, 0x1EB4}, {0xC0, 0x1EAE}, {0xC1, 0x1EA6}, {0xC2, 0x1EA8}, {0xC3, 0x1EAA}, {0xC4, 0x1EA4}, {0xC5, 0x1EC0}, {0xC6, 0x1EB7}, {0xC7, 0x1EA7}, {0xC8, 0x1EA9}, {0xC9, 0x1EAB}, {0xCA, 0x1EA5}, {0xCB, 0x1EAD}, {0xCC, 0x00E8}, {0xCD, 0x1EC2}, {0xCE, 0x1EBB}, {0xCF, 0x1EBD}, {0xD0, 0x00E9}, {0xD1, 0x1EB9}, {0xD2, 0x1EC1}, {0xD3, 0x1EC3}, {0xD4, 0x1EC5}, {0xD5, 0x1EBF}, {0xD6, 0x1EC7}, {0xD7, 0x00EC}, {0xD8, 0x1EC9}, {0xD9, 0x1EC4}, {0xDA, 0x1EBE}, {0xDB, 0x1ED2}, {0xDC, 0x0129}, {0xDD, 0x00ED}, {0xDE, 0x1ECB}, {0xDF, 0x00F2}, {0xE0, 0x1ED4}, {0xE1, 0x1ECF}, {0xE2, 0x00F5}, {0xE3, 0x00F3}, {0xE4, 0x1ECD}, {0xE5, 0x1ED3}, {0xE6, 0x1ED5}, {0xE7, 0x1ED7}, {0xE8, 0x1ED1}, {0xE9, 0x1ED9}, {0xEA, 0x1EDD}, {0xEB, 0x1EDF}, {0xEC, 0x1EE1}, {0xED, 0x1EDB}, {0xEE, 0x1EE3}, {0xEF, 0x00F9}, {0xF0, 0x1ED6}, {0xF1, 0x1EE7}, {0xF2, 0x0169}, {0xF3, 0x00FA}, {0xF4, 0x1EE5}, {0xF5, 0x1EEB}, {0xF6, 0x1EED}, {0xF7, 0x1EEF}, {0xF8, 0x1EE9}, {0xF9, 0x1EF1}, {0xFA, 0x1EF3}, {0xFB, 0x1EF7}, {0xFC, 0x1EF9}, {0xFD, 0x00FD}, {0xFE, 0x1EF5}, {0xFF, 0x1ED0}, {0xA7, 0x00D0}, {0xAE, 0x00F0}, {0, 0} }; char *aliases_tcvn5712 [] = {"TCVN-5712", "TCVN", "TCVN-0", "TCVN-1", NULL }; struct table_entry table_viscii [] = { {0x80, 0x1EA0}, {0x81, 0x1EAE}, {0x82, 0x1EB0}, {0x83, 0x1EB6}, {0x84, 0x1EA4}, {0x85, 0x1EA6}, {0x86, 0x1EA8}, {0x87, 0x1EAC}, {0x88, 0x1EBC}, {0x89, 0x1EB8}, {0x8A, 0x1EBE}, {0x8B, 0x1EC0}, {0x8C, 0x1EC2}, {0x8D, 0x1EC4}, {0x8E, 0x1EC6}, {0x8F, 0x1ED0}, {0x90, 0x1ED2}, {0x91, 0x1ED4}, {0x92, 0x1ED6}, {0x93, 0x1ED8}, {0x94, 0x1EE2}, {0x95, 0x1EDA}, {0x96, 0x1EDC}, {0x97, 0x1EDE}, {0x98, 0x1ECA}, {0x99, 0x1ECE}, {0x9A, 0x1ECC}, {0x9B, 0x1EC8}, {0x9C, 0x1EE6}, {0x9D, 0x0168}, {0x9E, 0x1EE4}, {0x9F, 0x1EF2}, {0xA0, 0x00D5}, {0xA1, 0x1EAF}, {0xA2, 0x1EB1}, {0xA3, 0x1EB7}, {0xA4, 0x1EA5}, {0xA5, 0x1EA7}, {0xA6, 0x1EA9}, {0xA7, 0x1EAD}, {0xA8, 0x1EBD}, {0xA9, 0x1EB9}, {0xAA, 0x1EBF}, {0xAB, 0x1EC1}, {0xAC, 0x1EC3}, {0xAD, 0x1EC5}, {0xAE, 0x1EC7}, {0xAF, 0x1ED1}, {0xB0, 0x1ED3}, {0xB1, 0x1ED5}, {0xB2, 0x1ED7}, {0xB3, 0x1EE0}, {0xB4, 0x01A0}, {0xB5, 0x1ED9}, {0xB6, 0x1EDD}, {0xB7, 0x1EDF}, {0xB8, 0x1ECB}, {0xB9, 0x1EF0}, {0xBA, 0x1EE8}, {0xBB, 0x1EEA}, {0xBC, 0x1EEC}, {0xBD, 0x01A1}, {0xBE, 0x1EDB}, {0xBF, 0x01AF}, {0xC0, 0x00C0}, {0xC1, 0x00C1}, {0xC2, 0x00C2}, {0xC3, 0x00C3}, {0xC4, 0x1EA2}, {0xC5, 0x0102}, {0xC6, 0x1EB3}, {0xC7, 0x1EB5}, {0xC8, 0x00C8}, {0xC9, 0x00C9}, {0xCA, 0x00CA}, {0xCB, 0x1EBA}, {0xCC, 0x00CC}, {0xCD, 0x00CD}, {0xCE, 0x0128}, {0xCF, 0x1EF3}, {0xD0, 0x0110}, {0xD1, 0x1EE9}, {0xD2, 0x00D2}, {0xD3, 0x00D3}, {0xD4, 0x00D4}, {0xD5, 0x1EA1}, {0xD6, 0x1EF7}, {0xD7, 0x1EEB}, {0xD8, 0x1EED}, {0xD9, 0x00D9}, {0xDA, 0x00DA}, {0xDB, 0x1EF9}, {0xDC, 0x1EF5}, {0xDD, 0x00DD}, {0xDE, 0x1EE1}, {0xDF, 0x01B0}, {0xE0, 0x00E0}, {0xE1, 0x00E1}, {0xE2, 0x00E2}, {0xE3, 0x00E3}, {0xE4, 0x1EA3}, {0xE5, 0x0103}, {0xE6, 0x1EEF}, {0xE7, 0x1EAB}, {0xE8, 0x00E8}, {0xE9, 0x00E9}, {0xEA, 0x00EA}, {0xEB, 0x1EBB}, {0xEC, 0x00EC}, {0xED, 0x00ED}, {0xEE, 0x0129}, {0xEF, 0x1EC9}, {0xF0, 0x0111}, {0xF1, 0x1EF1}, {0xF2, 0x00F2}, {0xF3, 0x00F3}, {0xF4, 0x00F4}, {0xF5, 0x00F5}, {0xF6, 0x1ECF}, {0xF7, 0x1ECD}, {0xF8, 0x1EE5}, {0xF9, 0x00F9}, {0xFA, 0x00FA}, {0xFB, 0x0169}, {0xFC, 0x1EE7}, {0xFD, 0x00FD}, {0xFE, 0x1EE3}, {0xFF, 0x1EEE}, {0xD0, 0x00D0}, {0xF0, 0x00F0}, {0, 0} }; char *aliases_viscii [] = {"VISCII", "VISCII-1", "VISCII 1.1", "VISCII-1.1", "VISCII1.1-1", NULL }; struct table_entry table_utf_8 [] = { {0, 0} }; char *aliases_utf_8 [] = {"utf-8", "utf8", NULL }; struct codepage_desc codepages [] = { {"7-bit ASCII", aliases_7bit, table_7bit}, {"ISO 8859-1", aliases_8859_1, table_8859_1}, {"ISO 8859-2", aliases_8859_2, table_8859_2}, {"ISO 8859-4", aliases_8859_4, table_8859_4}, {"ISO 8859-5", aliases_8859_5, table_8859_5}, {"ISO 8859-7", aliases_8859_7, table_8859_7}, {"ISO 8859-9", aliases_8859_9, table_8859_9}, {"ISO 8859-13", aliases_8859_13, table_8859_13}, {"Window$ 1250", aliases_cp1250, table_cp1250}, {"Window$ 1251", aliases_cp1251, table_cp1251}, {"Window$ 1257", aliases_cp1257, table_cp1257}, {"CP 437", aliases_cp437, table_cp437}, {"CP 737", aliases_cp737, table_cp737}, {"CP 850", aliases_cp850, table_cp850}, {"CP 852", aliases_cp852, table_cp852}, {"CP 866", aliases_cp866, table_cp866}, {"CP 1125 (Ukrainian)", aliases_cp1125, table_cp1125}, {"MacRoman 2000", aliases_macroman, table_macroman}, {"Mac latin 2", aliases_mac_lat2, table_mac_lat2}, {"Kamenicky Brothers", aliases_kamen, table_kamen}, {"KOI8-R", aliases_koi8_r, table_koi8_r}, {"KOI8-U", aliases_koi8_u, table_koi8_u}, {"TCVN-5712", aliases_tcvn5712, table_tcvn5712}, {"VISCII", aliases_viscii, table_viscii}, {"Unicode UTF-8", aliases_utf_8, table_utf_8}, {NULL, NULL, NULL} }; tucnak-4.04/src/cor.h0000644000175000017500000000327412524110743011377 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __COR_H #define __COR_H #include "header.h" #ifdef Z_HAVE_SDL #include "subwin.h" #define COR_KM_MASK 0xffffff00 #define COR_KM_MIN -19968 #define COR_KM_MAX 20224 #define COR_KM_STEP 256 struct cpoint{ short int w,h; signed char c; } __attribute__((packed)) ; #ifdef Z_MSC #pragma pack(push, 1) #endif struct kmpoint{ short int kx,ky; signed char c; } #ifndef Z_ANDROID __attribute__((packed)) #endif ; #ifdef Z_MSC #pragma pack(pop) #endif struct kmarray{ struct kmpoint *data; int len; int size; }; struct tcor{ const struct cpoint *file; int items; gchar *loc; GHashTable *km; /* of struct ckmpoint */ GHashTable *wwl4; /* of struct ckmpoint */ GHashTable *wwl2; /* of struct ckmpoint */ GHashTable *az; /* of struct ckmpoint */ GThread *thread; int thread_break; double sw_myw, sw_myh; }; extern struct tcor *gcor; extern double maxcnt; //extern double gst[360]; struct kmarray *kmarray_new(void); void kmarray_add(GHashTable *hash, gpointer key, struct kmpoint *km); struct tcor *init_cor(void); void free_cor(struct tcor *cor); void free_cors(void); int cor_recalc(struct subwin *sw, gchar *locator); gpointer cor_thread_func(gpointer arg); void cor_read_handler(int n, char **items); gboolean free_km_item(gpointer key, gpointer value, gpointer user_data); gpointer k2key(int kx, int ky); void cor_dump(struct tcor *cor); #endif #endif tucnak-4.04/src/settings.c0000644000175000017500000000345112561151303012442 00000000000000char *txt_settings= "------ Tucnak settings: --------\n" " version: tucnak-4.04\n" " prefix: /usr/local\n" " pkg: bin\n" " CFLAGS: -g -O2 -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2 -I/home/ok1zia/c/libzia/include -I/home/ok1zia/c/libzia/include/unix\n" " LDFLAGS: -z now -rdynamic -Wl,-Map,tucnak.map\n" " LIBS: -L/home/ok1zia/c/libzia/src/.libs -Wl,-Bstatic -lzia -Wl,-Bdynamic -lutil -L/usr/lib/x86_64-linux-gnu -lSDL -lpng12 -lglib-2.0 -lgthread-2.0 -pthread -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lftdi -lbfd -lm -lgthread-2.0 -pthread -lglib-2.0 -lsndfile -lasound -lhamlib -lm -lfftw3 -lportaudio -Wl,-Map,tucnak.map\n" " libzia: yes 4.04 in /home/ok1zia/c/libzia/bin/zia-config\n" " iconv: libc\n" " libgpm: disabled \n" "libsndfile: yes 1.0.25\n" " alsa: yes 1.0.28\n" " libhamlib: yes 1.2.15.3\n" " libfftw3: yes\n" " portaudio: yes\n" " ppdev: yes\n" " ddir: /usr/lib/tucnak\n" " pedantic: no\n" " opts: -O2\n" ; tucnak-4.04/src/charsets.c0000644000175000017500000002606612460207027012430 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "charsets.h" #include "language2.h" #include "terminal.h" #include "tsdl.h" struct table_entry { char c; unicode_val u; }; struct codepage_desc { char *name; char **aliases; struct table_entry *table; }; #include "codepage.inc" #include "uni_7b.inc" char *strings[256] = { "\000", "\001", "\002", "\003", "\004", "\005", "\006", "\007", "\010", "\011", "\012", "\013", "\014", "\015", "\016", "\017", "\020", "\021", "\022", "\023", "\024", "\025", "\026", "\033", "\030", "\031", "\032", "\033", "\034", "\035", "\036", "\033", "\040", "\041", "\042", "\043", "\044", "\045", "\046", "\047", "\050", "\051", "\052", "\053", "\054", "\055", "\056", "\057", "\060", "\061", "\062", "\063", "\064", "\065", "\066", "\067", "\070", "\071", "\072", "\073", "\074", "\075", "\076", "\077", "\100", "\101", "\102", "\103", "\104", "\105", "\106", "\107", "\110", "\111", "\112", "\113", "\114", "\115", "\116", "\117", "\120", "\121", "\122", "\123", "\124", "\125", "\126", "\127", "\130", "\131", "\132", "\133", "\134", "\135", "\136", "\137", "\140", "\141", "\142", "\143", "\144", "\145", "\146", "\147", "\150", "\151", "\152", "\153", "\154", "\155", "\156", "\157", "\160", "\161", "\162", "\163", "\164", "\165", "\166", "\167", "\170", "\171", "\172", "\173", "\174", "\175", "\176", "\177", "\200", "\201", "\202", "\203", "\204", "\205", "\206", "\207", "\210", "\211", "\212", "\213", "\214", "\215", "\216", "\217", "\220", "\221", "\222", "\223", "\224", "\225", "\226", "\227", "\230", "\231", "\232", "\233", "\234", "\235", "\236", "\237", "\240", "\241", "\242", "\243", "\244", "\245", "\246", "\247", "\250", "\251", "\252", "\253", "\254", "\255", "\256", "\257", "\260", "\261", "\262", "\263", "\264", "\265", "\266", "\267", "\270", "\271", "\272", "\273", "\274", "\275", "\276", "\277", "\300", "\301", "\302", "\303", "\304", "\305", "\306", "\307", "\310", "\311", "\312", "\313", "\314", "\315", "\316", "\317", "\320", "\321", "\322", "\323", "\324", "\325", "\326", "\327", "\330", "\331", "\332", "\333", "\334", "\335", "\336", "\337", "\340", "\341", "\342", "\343", "\344", "\345", "\346", "\347", "\350", "\351", "\352", "\353", "\354", "\355", "\356", "\357", "\360", "\361", "\362", "\363", "\364", "\365", "\366", "\367", "\370", "\371", "\372", "\373", "\374", "\375", "\376", "\377", }; void free_translation_table(struct conv_table *p) { int i; for (i = 0; i < 256; i++) if (p[i].t) free_translation_table(p[i].u.tbl); g_free(p); } char *no_str = NULL; void new_translation_table(struct conv_table *p) { int i; if (!no_str) no_str = g_strdup("*"); for (i = 0; i < 256; i++) if (p[i].t) free_translation_table(p[i].u.tbl); for (i = 0; i < 128; i++) p[i].t = 0, p[i].u.str = strings[i]; for (; i < 256; i++) p[i].t = 0, p[i].u.str = no_str; } #define BIN_SEARCH(table, entry, entries, key, result) \ { \ int _s = 0, _e = (entries) - 1; \ while (_s <= _e || !((result) = -1)) { \ int _m = (_s + _e) / 2; \ if ((table)[_m].entry == (key)) { \ (result) = _m; \ break; \ } \ if ((table)[_m].entry > (key)) _e = _m - 1; \ if ((table)[_m].entry < (key)) _s = _m + 1; \ } \ } \ static const unicode_val strange_chars[32] = { 0x20ac, 0x0000, 0x002a, 0x0000, 0x201e, 0x2026, 0x2020, 0x2021, 0x005e, 0x2030, 0x0160, 0x003c, 0x0152, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x0027, 0x0022, 0x0022, 0x002a, 0x2013, 0x2014, 0x007e, 0x2122, 0x0161, 0x003e, 0x0153, 0x0000, 0x0000, 0x0000, }; char *u2cp(int u, int to) { int j, s; if (u < 128) return strings[u]; if (u == 0xa0) return "\001"; if (u == 0xad) return ""; if (u < 0xa0) { if (!strange_chars[u - 0x80]) return NULL; return u2cp(strange_chars[u - 0x80], to); } for (j = 0; codepages[to].table[j].c; j++) if (codepages[to].table[j].u == u) return strings[(unsigned int)codepages[to].table[j].c]; BIN_SEARCH(unicode_7b, x, N_UNICODE_7B, u, s); if (s != -1) return unicode_7b[s].s; return NULL; } char utf_buffer[7]; char *encode_utf_8(unicode_val u) { memset(utf_buffer, 0, 7); if (u < 0x80) utf_buffer[0] = u; else if (u < 0x800) utf_buffer[0] = 0xc0 | ((u >> 6) & 0x1f), utf_buffer[1] = 0x80 | (u & 0x3f); else if (u < 0x10000) utf_buffer[0] = 0xe0 | ((u >> 12) & 0x0f), utf_buffer[1] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[2] = 0x80 | (u & 0x3f); else if (u < 0x200000) utf_buffer[0] = 0xf0 | ((u >> 18) & 0x0f), utf_buffer[1] = 0x80 | ((u >> 12) & 0x3f), utf_buffer[2] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[3] = 0x80 | (u & 0x3f); else if (u < 0x4000000) utf_buffer[0] = 0xf8 | ((u >> 24) & 0x0f), utf_buffer[1] = 0x80 | ((u >> 18) & 0x3f), utf_buffer[2] = 0x80 | ((u >> 12) & 0x3f), utf_buffer[3] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[4] = 0x80 | (u & 0x3f); else utf_buffer[0] = 0xfc | ((u >> 30) & 0x01), utf_buffer[1] = 0x80 | ((u >> 24) & 0x3f), utf_buffer[2] = 0x80 | ((u >> 18) & 0x3f), utf_buffer[3] = 0x80 | ((u >> 12) & 0x3f), utf_buffer[4] = 0x80 | ((u >> 6) & 0x3f), utf_buffer[5] = 0x80 | (u & 0x3f); return utf_buffer; } /* This slow and ugly code is used by the terminal utf_8_io */ char *cp2utf_8(int from, int c) { register int j; if (codepages[from].table == table_utf_8 || c < 128) return strings[c]; for (j = 0; codepages[from].table[j].c; j++) if (codepages[from].table[j].c == c) return encode_utf_8(codepages[from].table[j].u); return encode_utf_8(UCS_NO_CHAR); } #if 0 void add_utf_8(struct conv_table *ct, unicode_val u, char *str) { char *p = encode_utf_8(u); while (p[1]) { if (ct[*p].t) ct = ct[*p].u.tbl; else { struct conv_table *nct; if (ct[*p].u.str != no_str) { internal("bad utf encoding #1"); return; } if (!(nct = mem_alloc(sizeof(struct conv_table) * 256))) return; memset(nct, 0, sizeof(struct conv_table) * 256); new_translation_table(nct); ct[*p].t = 1; ct[*p].u.tbl = nct; ct = nct; } p++; } if (ct[*p].t) { internal("bad utf encoding #2"); return; } if (ct[*p].u.str == no_str) ct[*p].u.str = str; } #endif struct conv_table utf_table[256]; int utf_table_init = 1; static void free_utf_table(void) { register int i; for (i = 128; i < 256; i++) g_free(utf_table[i].u.str); } #if 0 static struct conv_table *get_translation_table_to_utf_8(int from) { register int i; static int lfr = -1; if (from == -1) return NULL; if (from == lfr) return utf_table; if (utf_table_init) memset(utf_table, 0, sizeof(struct conv_table) * 256), utf_table_init = 0; else free_utf_table(); for (i = 0; i < 128; i++) utf_table[i].u.str = strings[i]; if (codepages[from].table == table_utf_8) { for (i = 128; i < 256; i++) utf_table[i].u.str = g_strdup(strings[i]); return utf_table; } for (i = 128; i < 256; i++) utf_table[i].u.str = NULL; for (i = 0; codepages[from].table[i].c; i++) { unicode_val u = codepages[from].table[i].u; if (!utf_table[codepages[from].table[i].c].u.str) utf_table[codepages[from].table[i].c].u.str = g_strdup(encode_utf_8(u)); } for (i = 128; i < 256; i++) if (!utf_table[i].u.str) utf_table[i].u.str = g_strdup(no_str); return utf_table; } #endif static struct conv_table table[256]; static int first = 1; void free_conv_table(void) { if (!utf_table_init) free_utf_table(); if (first) memset(table, 0, sizeof(struct conv_table) * 256), first = 0; new_translation_table(table); g_free(no_str), no_str = NULL; } #if 0 struct conv_table *get_translation_table(int from, int to) { int i; static int lfr = -1; static int lto = -1; if (first) memset(table, 0, sizeof(struct conv_table) * 256), first = 0; if (/*from == to ||*/ from == -1 || to == -1) return NULL; if (codepages[to].table == table_utf_8) return get_translation_table_to_utf_8(from); if (from == lfr && to == lto) return table; lfr = from; lto = to; new_translation_table(table); if (codepages[from].table == table_utf_8) { int j; for (j = 0; codepages[to].table[j].c; j++) add_utf_8(table, codepages[to].table[j].u, strings[codepages[to].table[j].c]); for (i = 0; unicode_7b[i].x != -1; i++) if (unicode_7b[i].x >= 0x80) add_utf_8(table, unicode_7b[i].x, unicode_7b[i].s); } else for (i = 128; i < 256; i++) { int j; char *u; for (j = 0; codepages[from].table[j].c; j++) { if (codepages[from].table[j].c == i) goto f; } continue; f: u = u2cp(codepages[from].table[j].u, to); if (u) table[i].u.str = u; } return table; } static inline int xxstrcmp(char *s1, char *s2, int l2) { while (l2) { if (*s1 > *s2) return 1; if (!*s1 || *s1 < *s2) return -1; s1++, s2++, l2--; } return !!*s1; } #endif int get_cp_index(char *n) { int i, a, p, q; int ii = -1, ll = 0; for (i = 0; codepages[i].name; i++) { for (a = 0; codepages[i].aliases[a]; a++) { for (p = 0; n[p]; p++) { if (z_char_uc(n[p]) == z_char_uc(codepages[i].aliases[a][0])) { for (q = 1; codepages[i].aliases[a][q]; q++) { if (z_char_uc(n[p+q]) != z_char_uc(codepages[i].aliases[a][q])) goto fail; } if (strlen(codepages[i].aliases[a]) > ll) { ll = strlen(codepages[i].aliases[a]); ii = i; } } fail:; } } } return ii; } char *get_cp_name(int index) { if (index < 0) return "none"; return codepages[index].name; } #if 0 char *get_cp_mime_name(int index) { if (index < 0) return "none"; if (!codepages[index].aliases) return NULL; return codepages[index].aliases[0]; } #endif int is_cp_special(int index) { return codepages[index].table == table_utf_8; } tucnak-4.04/src/cwdb.c0000644000175000017500000004635712524341151011536 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "cwdb.h" #include "fifo.h" #include "main.h" #include "masterdb.h" #include "qsodb.h" #include "tsdl.h" #include "session.h" #include "stats.h" #include "subwin.h" struct cw *cw; static gchar *cw_next; static gchar *wc_next; struct cw *init_cw(void){ struct cw *cw; time_t now; struct tm tm; progress(VTEXT(T_INIT_CWDB)); cw = g_new0(struct cw, 1); cw->cw = z_hash_table_new(g_str_hash, g_str_equal); cw->wc = g_hash_table_new(g_str_hash, g_str_equal); cw_next = NULL; wc_next = NULL; cw->latest = 0; time(&now); now -= 740 * 86400L; /* 740 days = two years + something */ gmtime_r(&now, &tm); cw->minstamp = (tm.tm_year+1900)*10000 + (tm.tm_mon+1)*100 + tm.tm_mday; return cw; } static gboolean free_cw_item(gpointer key, gpointer value, gpointer user_data){ struct cw_item *cwi; g_free(key); cwi = (struct cw_item *)value; if (cwi->wwl0) g_free(cwi->wwl0); if (cwi->wwl1) g_free(cwi->wwl1); g_free(value); return 0; } static gboolean free_wc_item(gpointer key, gpointer value, gpointer user_data){ struct wc_item *wci; g_free(key); wci = (struct wc_item *)value; if (wci->call0) g_free(wci->call0); if (wci->call1) g_free(wci->call1); g_free(value); return 0; } void free_cw(struct cw *cw){ progress(VTEXT(T_TERM_CWDB)); g_hash_table_foreach_remove(cw->wc, free_wc_item, NULL); g_hash_table_destroy(cw->wc); z_hash_table_foreach_remove(cw->cw, free_cw_item, NULL); z_hash_table_destroy(cw->cw); g_free(cw); } gint get_cw_size(struct cw *cw){ return z_hash_table_size(cw->cw); } gint get_wc_size(struct cw *cw){ return g_hash_table_size(cw->wc); } #define CW_DELIM " \t\r\n" void load_one_cw(struct cw *cw, gchar *s){ gchar *call, *wwl, *stamp_str, *qrv_str; char *token_ptr; z_str_uc(s); call = strtok_r(s, CW_DELIM, &token_ptr); if (!call) return; z_strip_from(call, '-'); // before 3.15 in db can be calls with SSID from KST wwl = strtok_r(NULL, CW_DELIM, &token_ptr); if (!wwl) return; stamp_str = strtok_r(NULL, CW_DELIM, &token_ptr); if (!stamp_str) return; qrv_str = strtok_r(NULL, CW_DELIM, &token_ptr); /*dbg("qrv_str(%s)=%s\n", call, qrv_str);*/ add_cw(cw, call, wwl, atoi(stamp_str), qrv_str); /* qrv can be null */ add_wc(cw, wwl, call, atoi(stamp_str)); } int load_cw_from_file(struct cw *cw, gchar *filename){ FILE *f; char s[102]; f = fopen(filename, "rt"); if (!f){ /*dbg("Can't open '%s'\n", filename);*/ return -1; } while((fgets(s, 100, f))!=NULL){ load_one_cw(cw,s); } fclose(f); return 0; } int load_cw_from_mem(struct cw *cw, const char *file, size_t len){ GString *gs; long int pos; gs = g_string_sized_new(100); pos=0; while(1){ if (!zfile_mgets(gs, file, &pos, len, 1)) break; load_one_cw(cw, gs->str); } g_string_free(gs, 1); return 0; } void read_cw_files(struct cw *cw){ gchar *s; int ret = 0; progress(VTEXT(T_LOADING_CWDB)); /*#ifdef UNIX ret |= load_cw_from_file(cw, "/etc/tucnakcw"); #endif*/ s = g_strconcat(tucnak_dir, "/tucnakcw", NULL); z_wokna(s); ret |= load_cw_from_file(cw, s); if (ret) load_cw_from_mem(cw, txt_tucnakcw, sizeof(txt_tucnakcw)); cw->dirty = 0; g_free(s); } static void save_one_cw(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call; struct cw_item *cwi; gchar qrv_str[33], *c; int i; char s[4096]; gs = (GString *) user_data; call = (gchar *) key; cwi = (struct cw_item *) value; for (i=0, c=qrv_str;i<32;i++){ if (!(cwi->qrv & (1<wwl0){ sprintf(s, "%-14s %-6s %08d %s\n", call, cwi->wwl0, cwi->stamp0, qrv_str); g_string_append(gs, s); // g_string_sprintfa is incredibely slow under msvc //g_string_sprintfa(gs, "%-14s %-6s %08d %s\n", call, cwi->wwl0, cwi->stamp0, qrv_str); } if (cwi->wwl1){ sprintf(s, "%-14s %-6s %08d %s\n", call, cwi->wwl1, cwi->stamp1, qrv_str); g_string_append(gs, s); //g_string_sprintfa(gs, "%-14s %-6s %08d %s\n", call, cwi->wwl1, cwi->stamp1, qrv_str); } } int save_cw_string(struct cw *cw, GString *gs){ z_hash_table_foreach(cw->cw, save_one_cw, (gpointer) gs); return 0; } int save_cw_into_file(struct cw *cw, gchar *filename){ FILE *f; GString *gs; int ret; f = fopen(filename, "wt"); /* FIXME swp first */ if (!f) { return errno; } gs=g_string_sized_new(100000); save_cw_string(cw,gs); ret = fprintf(f,"%s",gs->str) != gs->len ? errno: 0; fclose(f); g_string_free(gs,TRUE); return ret; } int save_cw(struct cw *cw, int verbose){ char *s; int ret; if (!cw->dirty) return 0; s = g_strconcat(tucnak_dir, "/tucnakcw", NULL); z_wokna(s); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ if (verbose) log_addf(VTEXT(T_SAVED_S), s); cw->dirty = 0; } g_free(s); return ret; } static void format_one_cw(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call; struct cw_item *cwi; gchar qrv_str[33], *c; int i; char s[4096]; gs = (GString *) user_data; call = (gchar *) key; cwi = (struct cw_item *) value; for (i=0, c=qrv_str;i<32;i++){ if (!(cwi->qrv & (1<wwl0){ sprintf(s, "%s %s %d %s;", call, cwi->wwl0, cwi->stamp0, qrv_str); g_string_append(gs, s); // g_string_sprintfa is incredibely slow under msvc //g_string_sprintfa(gs, "%-14s %-6s %08d %s\n", call, cwi->wwl0, cwi->stamp0, qrv_str); } if (cwi->wwl1){ sprintf(s, "%4s %s %d %s;", call, cwi->wwl1, cwi->stamp1, qrv_str); g_string_append(gs, s); //g_string_sprintfa(gs, "%-14s %-6s %08d %s\n", call, cwi->wwl1, cwi->stamp1, qrv_str); } } int format_cw_string(struct cw *cw, GString *gs){ z_hash_table_foreach(cw->cw, format_one_cw, (gpointer) gs); return 0; } void add_cw(struct cw *cw, gchar *call, gchar *wwl, gint stamp, gchar *qrv_str){ struct cw_item *cwi; char *c; if (stamp<0) return; if (stamp>cw->latest) cw->latest=stamp; cwi = (struct cw_item *)z_hash_table_lookup(cw->cw, call); if (!cwi){ cwi = g_new0(struct cw_item, 1); z_hash_table_insert(cw->cw, g_strdup(call), cwi); } if (qrv_str){ /* can be NULL*/ for (c=qrv_str;*c!='\0';c++){ *c=z_char_uc(*c); cwi->qrv|=1<<(*c-'A'); } } if (stamp < cwi->stamp1) return; if (stamp < cwi->stamp0){ if (strcasecmp(cwi->wwl0, wwl)==0) return; if (cwi->wwl1) g_free(cwi->wwl1); cwi->wwl1 = g_strdup(wwl); cwi->stamp1 = stamp; cw->dirty = 1; return; } if (cwi->wwl0 && strcasecmp(cwi->wwl0, wwl)==0) { cwi->stamp0 = stamp; cw->dirty = 1; return; } if (cwi->wwl1) g_free(cwi->wwl1); cwi->wwl1 = cwi->wwl0; cwi->stamp1 = cwi->stamp0; cwi->wwl0 = g_strdup(wwl); cwi->stamp0 = stamp; cw->dirty = 1; } void add_wc(struct cw *cw, gchar *wwl, gchar *call, gint stamp){ struct wc_item *wci; if (stamp<0) return; if (stamp>cw->latest) cw->latest=stamp; wci = (struct wc_item *)g_hash_table_lookup(cw->wc, wwl); if (!wci){ wci = g_new0(struct wc_item, 1); g_hash_table_insert(cw->wc, g_strdup(wwl), wci); } if (stamp < wci->stamp1) return; if (stamp < wci->stamp0){ if (strcasecmp(wci->call0, call)==0) return; if (wci->call1) g_free(wci->call1); wci->call1 = g_strdup(call); wci->stamp1 = stamp; return; } if (wci->call0 && strcasecmp(wci->call0, call)==0) { wci->stamp0 = stamp; return; } if (wci->call1) g_free(wci->call1); wci->call1 = wci->call0; wci->stamp1 = wci->stamp0; wci->call0 = g_strdup(call); wci->stamp0 = stamp; } gchar *find_wwl_by_call(struct cw *cw, gchar *call){ struct cw_item *cwi; if (!call) return cw_next; cw_next = NULL; cwi = (struct cw_item *)z_hash_table_lookup(cw->cw, call); if (!cwi) return NULL; cw_next = cwi->wwl1; return cwi->wwl0; } gchar *find_wwl_by_call_newer(struct cw *cw, gchar *call, int maxstamp){ struct cw_item *cwi; cwi = (struct cw_item *)z_hash_table_lookup(cw->cw, call); if (!cwi) return NULL; if (cwi->stamp0 > maxstamp) return cwi->wwl0; if (cwi->stamp1 > maxstamp) return cwi->wwl1; return NULL; } gchar *find_call_by_wwl(struct cw *cw, gchar *wwl){ struct wc_item *wci; if (!wwl) return wc_next; wc_next = NULL; wci = g_hash_table_lookup(cw->wc, wwl); if (!wci) return NULL; wc_next = wci->call1; return wci->call0; } gchar *find_qrv_str_by_call(struct cw *cw, gchar *call){ int i,j; gchar *c; struct cw_item *cwi; gint qrv; static gchar qrv_str[33]; gchar *ret; char raw[25], raw2[25]; struct qso *q; struct band *band; if (!aband) return NULL; qrv=0; cwi = (struct cw_item *)z_hash_table_lookup(cw->cw, call); if (cwi) qrv|=cwi->qrv; cwi = (struct cw_item *)z_hash_table_lookup(cw->cw, z_get_raw_call(raw, call)); if (cwi) qrv|=cwi->qrv; c=g_strdup_printf("%s/P", raw); cwi = (struct cw_item *)z_hash_table_lookup(cw->cw, c); if (cwi) qrv|=cwi->qrv; g_free(c); if (!qrv) return NULL; for (i='A',c=qrv_str; i<='Z'; i++){ if (i==aband->bandchar) continue; /* same band */ if (!(qrv & ctest->qrv & (1<<(i-'A')))) continue; /* we are not qrv on band */ band = find_band_by_bandchar(i); if (band){ for (j=0; jqsos->len; j++){ q = (struct qso *)g_ptr_array_index(band->qsos, j); if (q->error || q->dupe) continue; z_get_raw_call(raw2, q->callsign); /*if (!cfg->daqrv){ if (strcmp(raw2, raw)==0) goto next; }else{ */ if (strcmp(raw2, raw)==0) { *c = z_char_lc(i); c++; goto next; } //} } } *c=i; c++; next:; } *c='\0'; ret=strlen(qrv_str)?qrv_str:NULL; /*log_addf("find_qrv_str_by_call(%s)='%s'", call, ret);*/ return ret; } /*static int is_string_in_array(GPtrArray *arr, gchar *str){ int i; gchar *c; for (i=0; ilen; i++){ c = (gchar *)g_ptr_array_index(arr, i); if (!c) continue; if (strcmp(c, str)==0) return 1; } return 0; } */ int cmp_cw_qs(gchar *call, struct cw_item *cwi, GPtrArray *result){ gchar *c; int ret=0, i; int qrb_int, qtf_int; char qrv_str[35]; int qrvfilter; char degree[2]; #ifdef Z_HAVE_SDL if (sdl) strcpy(degree, "\xb0"); else #endif strcpy(degree, ""); qrvfilter = ctest ? ctest->qrv : -1; c=qrv_str; for (i=0;i<32;i++){ if ((cwi->qrv & qrvfilter & (1<qs_str)){ if (cwi->wwl0) { qrb_qtf_int(ctest ? ctest->pwwlo : cfg->pwwlo, cwi->wwl0, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl0, qrb_int, qtf_int, degree, qrv_str); g_ptr_array_add(result, c); if (cwi->wwl1){ /* wwl1 is only together with wwl0 */ qrb_qtf_int(ctest ? ctest->pwwlo : cfg->pwwlo, cwi->wwl1, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl1, qrb_int, qtf_int, degree, qrv_str); g_ptr_array_add(result, c); } }else{ c=g_strdup(call); g_ptr_array_add(result, c); } goto x; } if (cwi->wwl0 && z_strstr(cwi->wwl0, gses->qs_str)){ qrb_qtf_int(ctest ? ctest->pwwlo : cfg->pwwlo, cwi->wwl0, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl0, qrb_int, qtf_int, degree, qrv_str); /* dbg(",%s", c);*/ g_ptr_array_add(result, c); goto x; } if (cwi->wwl1 && z_strstr(cwi->wwl1, gses->qs_str)){ qrb_qtf_int(ctest ? ctest->pwwlo : cfg->pwwlo, cwi->wwl1, &qrb_int, &qtf_int); c=g_strdup_printf("%-10s %-6s%5d/%3d%s %s", call, cwi->wwl1, qrb_int, qtf_int, degree, qrv_str); /* dbg(",%s", c); */ g_ptr_array_add(result, c); goto x; } x:; return ret; } void get_cw_qs(gchar *str){ qs_thread_kill(); if (strlen(str)<2) { // zg_free0(gses->qs_master); zg_ptr_array_free_items(gses->qs); return; } if (gses && gses->ontop && gses->ontop->type == SWT_HF){ zg_free0(gses->qs_master); // ST_START; gses->qs_master = masterdb_search(masterdb, str, gses->ontop->w); // ST_STOP; //log_adds(gses->qs_master); }else{ zg_free0(gses->qs_str); gses->qs_str=g_strdup(str); gses->qs_max_matches = term->y - QSONR_HEIGHT - 4 - cfg->loglines - 1; if (ctest && !ctest->oldcontest) gses->qs_max_matches -= ctest->spypeers->len; if (ctest && ctest->bands->len==1) gses->qs_max_matches*=2; if (!ctest) gses->qs_max_matches*=3; qs_thread_create(); } } static gpointer qs_thread_func(gpointer data){ GPtrArray *result; ZHashNode *node; gint i; zg_thread_set_name("Tucnak quicksearch"); result=g_ptr_array_new(); for (i = 0; i < cw->cw->size; i++){ for (node = cw->cw->nodes[i]; node; node = node->next){ cmp_cw_qs((char *)node->key, (struct cw_item*)node->value, result); if (result->len >= gses->qs_max_matches) goto x; if (gses->qs_thread_break){ zg_ptr_array_free_all(result); return NULL; } } } x:; z_ptr_array_qsort((ZPtrArray *)result, z_compare_string); // FIXME GPtr vs. ZPtr ? MUTEX_LOCK(gses->qs); zg_ptr_array_free_all(gses->qs); gses->qs=result; MUTEX_UNLOCK(gses->qs); //sprintf(s, "CWQS\n"); //ret = write(tpipe->threadpipe_write, s, strlen(s)); zselect_msg_send(zsel, "CWQS"); return NULL; } void qs_thread_create(void){ if (gses->qs_thread) zinternal("qs_thread_create gses->qs_thread"); gses->qs_thread_break=0; gses->qs_thread=g_thread_try_new("quicksearch", qs_thread_func, (gpointer)NULL, NULL); if (!gses->qs_thread) zinternal("qs_thread_create !gses->qs_thread"); } void qs_thread_join(void){ if (!gses->qs_thread) return; //dbg("join qs...\n"); g_thread_join(gses->qs_thread); //dbg("done\n"); gses->qs_thread=NULL; } void qs_thread_kill(){ if (!gses->qs_thread) return; gses->qs_thread_break=1; // dbg("join qs...\n"); g_thread_join(gses->qs_thread); // dbg("done\n"); /* dbg("done\n");*/ gses->qs_thread=NULL; } void update_cw_from_band(struct cw *cw, struct band *band){ int i; struct qso *q; gchar qrv_str[2]; stats_thread_join(band); qrv_str[0]=band->bandchar; qrv_str[1]='\0'; for (i=0; iqsos->len; i++){ q = (struct qso *)g_ptr_array_index(band->qsos, i); if (q->error) continue; if (!q->callsign || !q->locator || !q->date_str) continue; if (strlen(q->locator)!=6) continue; add_cw(cw, q->callsign, q->locator, atoi(q->date_str), qrv_str); add_wc(cw, q->locator, q->callsign, atoi(q->date_str)); } } void update_cw_from_ctest(struct cw *cw, struct contest *ctest){ int i; struct band *band; if (!ctest) return; for (i=0; ibands->len; i++){ band = (struct band *) g_ptr_array_index(ctest->bands, i); update_cw_from_band(cw, band); } } int similar_calls(const char *call1, const char *call2, int factor, int thr, int p){ factor = z_levenshtein(call1, call2); p=1; if (p) { // dbg("similar %s %s = %d", call1, call2, factor); // printf(" leven=%d", levenshtein_distance(call1, call2)); // dbg("\n"); } /*else printf(" %s %s = %d\n", call1, call2, factor);*/ return factor; } int get_susp_ambiguous_call(struct cw *cw, struct band *band, char *call, char *wwl, GString *gs, int thr){ int i; ZHashNode *node; struct cw_item *cwi; for (i = 0; i < cw->cw->size; i++){ for (node = cw->cw->nodes[i]; node; node = node->next){ int factor; cwi = (struct cw_item *) node->value; if ((cwi->wwl0 && strcmp(cwi->wwl0, wwl)==0 && cwi->stamp0 > cw->minstamp) || (cwi->wwl1 && strcmp(cwi->wwl1, wwl)==0 && cwi->stamp1 > cw->minstamp)){ /* dbg("hit %s %s\n", node->key, wwl);*/ if (strcmp((gchar*)node->key, call)==0) continue; if (band && get_qso_by_callsign(band, call)) continue; // call is also worked, no warning factor = similar_calls((gchar*)node->key, call, 0, thr, 0); if (factor<=thr){ if (!gs) return 1; g_string_append(gs, (char *)node->key); // g_string_append_printf(gs, "(%d<=%d)", factor, thr); g_string_append_c(gs, ' '); } } } } return 0; } int cwdb_call_info(GString *gs, gchar *call, gchar *stroke, GHashTable *wwls){ struct cw_item *cwi; char c[40], *myqth; int i; double qrb, qtf; char degree[2]; strcpy(c, call); strcat(c, stroke); cwi = (struct cw_item *)z_hash_table_lookup(cw->cw, c); if (!cwi) return 0; #ifdef Z_HAVE_SDL if (sdl) strcpy(degree, "\xb0"); else #endif strcpy(degree, ""); myqth = ctest ? ctest->pwwlo : cfg->pwwlo; /* wwl0 should be always defined */ if (cwi->wwl0) { qrbqtf(myqth, cwi->wwl0, &qrb, &qtf, NULL, 0); g_string_sprintfa(gs, "C_W: %-10s %s %6dkm %3d%s %d\n", c, cwi->wwl0, (int)qrb, (int)qtf, degree, cwi->stamp0); if (wwls && g_hash_table_lookup(wwls, cwi->wwl0) == NULL) g_hash_table_insert(wwls, cwi->wwl0, NULL); } if (cwi->wwl1) { qrbqtf(myqth, cwi->wwl1, &qrb, &qtf, NULL, 0); g_string_sprintfa(gs, "C_W: %-10s %s %6dkm %3d%s %d\n", c, cwi->wwl1, (int)qrb, (int)qtf, degree, cwi->stamp1); if (wwls && g_hash_table_lookup(wwls, cwi->wwl1) == NULL) g_hash_table_insert(wwls, cwi->wwl1, NULL); } if (cwi->qrv>0){ g_string_append(gs, VTEXT(T_QRV_ON)); for (i=0;i<26;i++){ if ((1<qrv) g_string_append_c(gs, i+'A'); } g_string_append_c(gs, '\n'); } return 1; } tucnak-4.04/src/stats.c0000644000175000017500000012544212525350640011752 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "bfu.h" #include "cwdb.h" #include "dwdb.h" #include "excdb.h" #include "fifo.h" #include "header.h" #include "main.h" #include "misc.h" #include "qsodb.h" #include "session.h" #include "stats.h" #include "tsdl.h" char *get_wwl(char *buf, char *wwl){ safe_strncpy(buf, wwl,5); return buf; } void draw_one_bigdigit(int x, int y, int num){ switch(num%10){ case 0: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,1,3,COL_NORM); break; case 1: fill_area(x,y,3,5,COL_INV); fill_area(x+2,y,1,4,COL_NORM); fill_area(x,y+1,1,3,COL_NORM); break; case 2: fill_area(x,y,3,5,COL_INV); fill_area(x,y+1,2,1,COL_NORM); fill_area(x+1,y+3,2,1,COL_NORM); break; case 3: fill_area(x,y,3,5,COL_INV); fill_area(x,y+1,2,1,COL_NORM); fill_area(x,y+3,2,1,COL_NORM); break; case 4: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y,1,2,COL_NORM); fill_area(x,y+3,2,2,COL_NORM); break; case 5: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,2,1,COL_NORM); fill_area(x,y+3,2,1,COL_NORM); break; case 6: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,2,1,COL_NORM); fill_area(x+1,y+3,1,1,COL_NORM); break; case 7: fill_area(x,y,3,5,COL_INV); fill_area(x,y+1,2,4,COL_NORM); break; case 8: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,1,1,COL_NORM); fill_area(x+1,y+3,1,1,COL_NORM); break; case 9: fill_area(x,y,3,5,COL_INV); fill_area(x+1,y+1,1,1,COL_NORM); fill_area(x,y+3,2,1,COL_NORM); break; } } void draw_bigdigit(int x, int y, int num){ int qsonr=num; if (qsonr>=10000) set_char(x-2,y+2,'+'); if (qsonr>=1000) { draw_one_bigdigit(x,y,(qsonr/1000)%10); }else{ x-=2; } draw_one_bigdigit(x+4 ,y, (qsonr/100)%10); draw_one_bigdigit(x+8 ,y, (qsonr/10)%10); draw_one_bigdigit(x+12,y, qsonr%10); } struct stats *init_stats(){ struct stats *st; st = (struct stats *)g_new0(struct stats, 1); st->wwls = g_hash_table_new(g_str_hash, g_str_equal); st->dxcs = g_hash_table_new(g_str_hash, g_str_equal); st->prefs = g_hash_table_new(g_str_hash, g_str_equal); st->excs = g_hash_table_new(g_str_hash, g_str_equal); st->calls = g_hash_table_new(g_str_hash, g_str_equal); st->hours = g_hash_table_new(g_str_hash, g_str_equal); clear_stats(st); return st; } void free_stats(struct stats *st){ clear_stats(st); g_hash_table_destroy(st->wwls); g_hash_table_destroy(st->dxcs); g_hash_table_destroy(st->prefs); g_hash_table_destroy(st->excs); g_hash_table_destroy(st->calls); g_hash_table_destroy(st->hours); zg_free0(st->mycontinent); zg_free0(st->mydxcc); g_free(st); } void clear_stats(struct stats *st){ struct dw_item *dxi; char s[120]; /* dbg("clear_stats(%p)\n", st);*/ st->first_date = G_MAXINT; st->last_date = 0; st->nqsos = 0; st->nqsop = 0; st->nwwlp = 0; st->nexcp = 0; st->ndxcp = 0; st->nprefs = 0; st->ntotal = 0; g_hash_table_foreach_remove(st->wwls, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->dxcs, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->prefs, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->excs, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->calls, free_gpointer_item, NULL); g_hash_table_foreach_remove(st->hours, free_gpointer_item, NULL); if (st->odxcall) {g_free(st->odxcall); st->odxcall = NULL;} if (st->odxwwl) {g_free(st->odxwwl); st->odxwwl = NULL;} if (st->odxoperator) {g_free(st->odxoperator); st->odxoperator = NULL;} st->odxqrb_int = 0; dxi = get_dw_item_by_call(dw, ctest->pcall); if (!dxi) zinternal("unknown dxcc of my callsign"); zg_free0(st->mycontinent); st->mycontinent = g_strdup(dxi->continent); zg_free0(st->mydxcc); st->mydxcc = g_strdup(get_dxcc(dw, s, ctest->pcall)); } int find_preferred_dxc(int type, char *dxc){ char *prefs9[] = {"ES","LA","LY","OH","OH0","OJ0","OY","OZ","SM","TF","YL",NULL}; char *prefs10[] = {"G","GD","GI","GJ","GM","GU","GW",NULL}; char *prefs11[] = {"F",NULL}; char *prefs16[] = {"F","TK", "TM",NULL}; char **prefs; int multi=1; int i; switch(type){ case 9: prefs=prefs9; multi=3; break; case 10: case 17: case 18: prefs=prefs10; multi=5; break; case 11: prefs=prefs11; multi=3; break; case 16: prefs=prefs16; multi=4; break; default: return 1; } for (i=0; prefs[i]!=NULL; i++){ if (strcasecmp(dxc,prefs[i])==0) return multi; } return 1; } /* set and dirty */ #define SAD_INT(item,value) {if (q->item!=value) band->dirty_save=1;q->item=value;} void update_stats(struct band *band, struct stats *st, struct qso *q){ gint date, qsop, anew; gchar s[120], *c; gpointer orig_key; struct cntpts *orig_value; gint wwls, dxcs, prefs, excs; struct dw_item *dwi; int oldmult; qsop=0; if (band->stats_thread && band->stats_thread!=g_thread_self()){ /* Thread is computing statistics. * No reason to update stats, they will be overwritten and statistics * must not be consistent. We must kill thread and create new to * cover all qsos. */ stats_thread_kill(band); stats_thread_create(band); return; } if (band->stats==st) MUTEX_LOCK(band->stats); /* dbg("update_stats(%p, %c, %p)\n", st, b->bandchar, q);*/ if (!q->error){ date = atoi(q->date_str); if (date < st->first_date) st->first_date = date; if (date > st->last_date) st->last_date = date; } if (q->error) { SAD_INT(new_,0); SAD_INT(qsop,0); SAD_INT(susploc,0); SAD_INT(unkcall,0); goto x; } st->nqsos++; /* dbg("update_stats(%s) calls->size=%d \n", q->qsonrs, g_hash_table_size(st->calls)); dbg(" dupe=%d qsop=%d \n", q->dupe, q->qsop);*/ z_get_raw_call(s, q->callsign); if (z_call_is_rover(q->callsign) && q->locator){ strcat(s, "_"); safe_strncpy0(s + strlen(s), q->locator, 4+1); } //dbg("update_stats(%s)\n", s); if (g_hash_table_lookup_extended(st->calls, s, &orig_key, (gpointer*) &orig_value)){ SAD_INT(dupe,1); }else{ g_hash_table_insert(st->calls, g_strdup(s), NULL); SAD_INT(dupe,0); } switch (ctest->qsop_method){ case 1: /* rounded distance */ qsop = iaru_round(q->qrb) * ctest->qsomult * band->qsomultb; break; case 2: /* 1 */ qsop = ctest->qsomult * band->qsomultb; break; case 3: /* FIXME! it's really correct? */ qsop = (int)(((q->qrb/50)*2+1 ) * ctest->qsomult * band->qsomultb); break; case 4: /* WWL ring */ qsop = qsopwr(ctest->pwwlo, q->locator) * ctest->qsomult * band->qsomultb; break; case 5: /* statute miles (anglicka mile) */ qsop = (int)(q->qrb/1.6094 * ctest->qsomult * band->qsomultb); break; case 6: /* 1 * qso-points multi + 1 point for CW QSO FIXME! bug in taclog? */ qsop = ctest->qsomult * band->qsomultb; if (q->mode==MOD_CW_CW) q->qsop++; break; case 7: /* distance(min 50) */ qsop = (int)((q->qrb>50 ? q->qrb : 50) * ctest->qsomult * band->qsomultb); break; case 8: /* distance(min 10) */ qsop = (int)( (q->qrb>10 ? q->qrb : 10) * ctest->qsomult * band->qsomultb ); break; case 9: case 10: case 11: qsop = ctest->qsomult * band->qsomultb * find_preferred_dxc(ctest->qsop_method, get_dxcc(dw,s,q->callsign)); break; case 12: qsop = iaru_round(q->qrb) * ctest->qsomult * band->qsomultb; break; case 13: // dbg("call=%s \n", q->callsign); dwi = get_dw_item_by_call(dw, q->callsign); if (!dwi){ // dbg("Don't know dxcc of %s\n", ctest->pcall); qsop=0; break; } if (strcasecmp(dwi->continent, st->mycontinent)==0){ // same continent c = get_dxcc(dw, s, q->callsign); // dbg(" dxcc=%s mydxcc=%s\n", c, st->mydxcc); if (c && strcasecmp(c, st->mydxcc)==0){ // same DXCC qsop = 0; // same dxcc 0 }else{ // dbg(" cont=%s\n", dwi->continent); if (strcasecmp(dwi->continent, "NA")==0) qsop = 2; // NA has 2 points else qsop = 1; // others only 1 } }else{ qsop = 3; // other continent } break; case 14: // dbg("call=%s \n", q->callsign); dwi = get_dw_item_by_call(dw, q->callsign); if (!dwi){ // dbg("Don't know dxcc of %s\n", ctest->pcall); qsop=0; break; } qsop = 1; if (band->qrg_min<10000) qsop = 2; // bellow 10 MHz if (strcasecmp(dwi->continent, st->mycontinent)==0){ // same continent c = get_dxcc(dw, s, q->callsign); // dbg(" dxcc=%s mydxcc=%s\n", c, st->mydxcc); if (c && strcasecmp(c, st->mydxcc)==0){ // same DXCC qsop = 1; // same dxcc 0 }else{ // dbg(" cont=%s\n", dwi->continent); if (strcasecmp(dwi->continent, "NA")==0) qsop *= 2; // NA has 2 points else qsop *= 1; // others only 1 } }else{ qsop *= 3; // other continent } break; case 15: // ARRL VHF contests http://www.arrl.org/contests/rules/2008/june-vhf.html dbg("%d\n", band->qrg_min); if (band->qrg_min > 2000000) qsop = 4; // 2,3 GHz and above else if (band->qrg_min > 500000) qsop = 3; // 902 MHz, 1,3 GHz else if (band->qrg_min > 200000) qsop = 2; // 222 MHz, 432 MHz else qsop = 1; // 144 MHz and below break; case 16: qsop = iaru_round(q->qrb) * ctest->qsomult * band->qsomultb * find_preferred_dxc(ctest->qsop_method, get_dxcc(dw,s,q->callsign)); qsop *= qsomult16(band); break; case 17: qsop = iaru_round(q->qrb) * ctest->qsomult * band->qsomultb; break; case 18: qsop = iaru_round(q->qrb) * ctest->qsomult * band->qsomultb; break; } if (q->dupe) qsop=0; SAD_INT(qsop,qsop); /* dbg(" dupe=%d qsop=%d \n", q->dupe, q->qsop);*/ st->nqsop += q->qsop; if ((int)q->qrb > st->odxqrb_int){ if (st->odxcall) { g_free(st->odxcall); st->odxcall = NULL; } if (st->odxwwl) { g_free(st->odxwwl); st->odxwwl = NULL; } if (st->odxoperator) { g_free(st->odxoperator); st->odxoperator = NULL;} st->odx = q; st->odxqrb_int = (int)q->qrb; st->odxcall = g_strdup(q->callsign); st->odxwwl = g_strdup(q->locator); st->odxoperator = g_strdup(q->operator_); } q->unkcall=!find_wwl_by_call(cw, q->callsign); q->susploc = get_susp_loc(cw, dw, q->callsign, q->locator) & 0xff; anew=q->new_; if (ctest->wwlused){ int accept_loc = 1; int double_loc = 0; char tmpdxcc[20]; get_wwl(s, q->locator); if (ctest->qsop_method == 17){ if (find_preferred_dxc(17, get_dxcc(dw, tmpdxcc, q->callsign)) == 1) accept_loc = 0; } if (ctest->qsop_method == 18){ accept_loc = 1; if (find_preferred_dxc(18, get_dxcc(dw, tmpdxcc, q->callsign)) != 1) double_loc = 1; } if (accept_loc){ if (g_hash_table_lookup_extended(st->wwls, s, &orig_key, (gpointer*) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_WWL; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->wwls, g_strdup(s), orig_value); if (double_loc) { orig_value = g_new0(struct cntpts, 1); orig_value->count = 0; orig_value->points = 0; g_hash_table_insert(st->wwls, g_strdup_printf("%s_M7", s), orig_value); } anew |= NEW_WWL; } } } get_dxcc(dw, s, q->callsign); if (g_hash_table_lookup_extended(st->dxcs, s, &orig_key, (gpointer*) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_DXC; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->dxcs, g_strdup(s), orig_value); anew |= NEW_DXC; } if (ctest->prefmult>0){ get_pref(s, q->callsign); if (g_hash_table_lookup_extended(st->prefs, s, &orig_key, (gpointer*) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_PREF; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->prefs, g_strdup(s), orig_value); anew |= NEW_PREF; } } if (ctest->excused > 0 && ctest->excname){ safe_strncpy0(s, q->exc, 20); if (strcasecmp(ctest->excname, "USACA")==0){ usaca_multiple_exc(s); } if (*s){ if (g_hash_table_lookup_extended(st->excs, s, &orig_key, (gpointer*) &orig_value)){ orig_value->count++; orig_value->points+=qsop; anew &= ~NEW_EXC; }else{ orig_value = g_new0(struct cntpts, 1); orig_value->count = 1; orig_value->points = qsop; g_hash_table_insert(st->excs, g_strdup(s), orig_value); anew |= NEW_EXC; } if (ctest->qsop_method == 12){ // RSGB DC int max = rsgbdc_maxcount(q->exc); if (orig_value->count <= max) { st->nexcp++; anew |= NEW_EXC; //dbg("protekce\n"); } //dbg("%-12s exc %s can be counted %d times (after this qso %d times) st->nexcp=%d\n", q->callsign, q->exc, max, orig_value->count, st->nexcp); } } } safe_strncpy0(s, q->time_str, 3); if (!g_hash_table_lookup_extended(st->hours, s, &orig_key, (gpointer*) &orig_value)){ orig_value = g_new0(struct cntpts, 1); g_hash_table_insert(st->hours, g_strdup(s), orig_value); } orig_value->count++; orig_value->points+=qsop; if (!orig_value->qso){ orig_value->qso = q; }else{ if (q->qrb > orig_value->qso->qrb){ orig_value->qso = q; } } wwls = g_hash_table_size(st->wwls); dxcs = g_hash_table_size(st->dxcs); prefs = g_hash_table_size(st->prefs); st->nwwlp = wwls; if (ctest->qsop_method != 12) st->nexcp = g_hash_table_size(st->excs); st->ndxcp = dxcs; excs = st->nexcp; oldmult = st->nmult; switch (ctest->total_method){ case 1: st->nmult = (ctest->wwlmult ? wwls * ctest->wwlmult : 1 ) * (ctest->prefmult ? prefs * ctest->prefmult : 1 ) * (ctest->dxcmult ? dxcs * ctest->dxcmult : 1 ) * (ctest->excmult ? excs * ctest->excmult : 1 ); ; st->ntotal = ( st->nqsop + wwls * ctest->wwlbonu + dxcs * ctest->dxcbonu + excs * ctest->excbonu ) * st->nmult; break; case 2: case 3: st->nmult = wwls * ctest->wwlmult + prefs * ctest->prefmult + dxcs * ctest->dxcmult + excs * ctest->excmult; st->ntotal = ( st->nqsop + wwls * ctest->wwlbonu + dxcs * ctest->dxcbonu + excs * ctest->excbonu ) * st->nmult; break; } if (st->nmult != oldmult) anew |= NEW_MULT; else anew &= ~NEW_MULT; SAD_INT(new_,anew); x:; if (band->stats==st) MUTEX_UNLOCK(band->stats); } void recalc_stats(struct band *band){ if (!band->dirty_stats) return; stats_thread_kill(band); stats_thread_create(band); /* ST_STOP;*/ } void recalc_all_stats(struct contest *ctest){ int i; struct band *band; for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); band->dirty_stats = 1; recalc_stats(band); } } void recalc_all_qrbqtf(struct contest *ctest){ int i, j; struct band *band; struct qso *q; for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); for (j=0; jqsos->len; j++){ q = get_qso(band, j); compute_qrbqtf(q); } for (j=0; jtmpqsos[j].locator || !*band->tmpqsos[j].locator) break; /* CHANGE look at add_tmqso_locator */ qrbqtf(ctest->pwwlo, band->tmpqsos[j].locator, &qrb, &qtf, NULL, 2); qtf_int=(int)(qtf+0.5); if (qrb < 0.1) { qtf_int=0; } band->tmpqsos[j].qrb=qrb; band->tmpqsos[j].qtf=qtf_int; } } } #define STATS_X 2 #define STATS_Y 2 void redraw_stats(struct band *band){ gchar *c; struct stats *st=band->stats; int nqsos, nqsop, nwwlp, nexcp, ndxcp, ntotal; GString *gs; MUTEX_LOCK(band->stats); nqsos = st->nqsos; nqsop = st->nqsop; nwwlp = st->nwwlp; nexcp = st->nexcp; ndxcp = st->ndxcp; ntotal = st->ntotal; if (ctest->qsoglob){ nqsos = ctest->allb_nqsos; nqsop = ctest->allb_nqsop; nwwlp = ctest->allb_nwwlp; nexcp = ctest->allb_nexcp; ndxcp = ctest->allb_ndxcp; ntotal = ctest->allb_ntotal; } if (ctest->total_method == 3){ ntotal = ctest->allb_nqsop * (ctest->allb_ndxcp + ctest->allb_nexcp); ctest->allb_ntotal = ntotal; // for HF subwin } print_text(STATS_X,STATS_Y,-1,VTEXT(T_SES_ODX),COL_NORM); if (st->odxcall && st->odxwwl){ c = g_strdup_printf(VTEXT(T_SES_ODX_DATA), st->odxcall, st->odxwwl, st->odxqrb_int, st->odxoperator); print_text(STATS_X+5,STATS_Y,term->x-QSONR_WIDTH-BAND_WIDTH-8, c,COL_NORM); g_free(c); } print_text(STATS_X,STATS_Y+2,term->x-QSONR_WIDTH-BAND_WIDTH-3,VTEXT(T_SES_STAT_TIT),COL_NORM); gs = g_string_sized_new(100); g_string_sprintfa(gs, "%4d %6d %4d %4d %4d %7d ", nqsos, nqsop, nexcp, nwwlp, ndxcp, ntotal); if (nqsos != 0) g_string_sprintfa(gs, "%6.1f", (double)ntotal/(double)nqsos); print_text(STATS_X,STATS_Y+3,term->x-QSONR_WIDTH-BAND_WIDTH-3,gs->str,COL_NORM); g_string_free(gs, TRUE); /* if (st->nqsos){ c = g_strdup_printf(VTEXT(T_SES_AVG), (double)st->ntotal/(double)st->nqsos); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+1,BAND_WIDTH-1, c, COL_NORM); g_free(c); }*/ MUTEX_UNLOCK(band->stats); } #define F b->statsfifo1 void sf_wwl_func(gpointer key, gpointer value, gpointer user_data){ gchar *wwl; struct cntpts *n; ZPtrArray *ia; wwl = (gchar *) key; n = (struct cntpts *) value; ia = (ZPtrArray *) user_data; if (ctest->qsop_method == 18) z_ptr_array_add(ia, g_strdup_printf("%7s:%6d %3d ", wwl, n->points, n->count)); else z_ptr_array_add(ia, g_strdup_printf("%4s:%6d %3d ", wwl, n->points, n->count)); } void sf_miss_exc_func(gpointer key, gpointer value, gpointer user_data){ gchar *missexc; struct miss_struct *ms; int maxlen = 0; missexc = (gchar *) key; ms = (struct miss_struct *) user_data; if (g_hash_table_lookup_extended(ms->st->excs, missexc, NULL, NULL)) return; maxlen = strlen(missexc); if (maxlen > ms->maxlen) ms->maxlen = maxlen; z_ptr_array_add(ms->ia, g_strdup(missexc)); } gint compare_colon_int (gconstpointer a, gconstpointer b){ gchar **ca, **cb, *c; int ia, ib; ca=(gchar **)a; cb=(gchar **)b; c=strchr(*ca, ':'); if (c) ia=atoi(c+1); else ia=0; c=strchr(*cb, ':'); if (c) ib=atoi(c+1); else ib=0; return ib-ia; } #define COLS 4 void add_sf_wwls(struct band *b){ GString *gs; ZPtrArray *ia; int i,j,k,lines; gchar *c; gs = g_string_new(""); fifo_addf(F, ""); if (ctest->qsop_method == 17 || ctest->qsop_method == 18){ fifo_addf(F, VTEXT(T_MULTIPLIED_WWLS_D), g_hash_table_size(b->stats->wwls)); fifo_addf(F, VTEXT(T_HYPHENS1)); }else{ fifo_addf(F, VTEXT(T_SF_WWLS), g_hash_table_size(b->stats->wwls)); fifo_addf(F, VTEXT(T_SF_WWLS_UNDER)); } /* for (i=0;istr);*/ ia = z_ptr_array_new(); g_hash_table_foreach(b->stats->wwls, sf_wwl_func, ia); z_ptr_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines=(ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)z_ptr_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); z_ptr_array_free_all(ia); } //////////// void sf_exc_func(gpointer key, gpointer value, gpointer user_data){ gchar *exc; struct cntpts *n; ZPtrArray *ia; exc = (gchar *) key; n = (struct cntpts *) value; ia = (ZPtrArray *) user_data; z_ptr_array_add(ia, g_strdup_printf("%4s:%6d %3d ", exc, n->points, n->count)); } void add_sf_excs(struct band *b){ GString *gs; ZPtrArray *ia; int i,j,k,lines; gchar *c; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_EXCS), g_hash_table_size(b->stats->excs)); fifo_addf(F, VTEXT(T_SF_EXCS_UNDER)); /* for (i=0;istr);*/ ia = z_ptr_array_new(); g_hash_table_foreach(b->stats->excs, sf_wwl_func, ia); z_ptr_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines=(ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)z_ptr_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); z_ptr_array_free_all(ia); } #define MISS_EXC_COLS 10 void miss_compute_ms(struct miss_struct *ms, struct band *b){ ms->ia = z_ptr_array_new(); ms->st = b->stats; ms->maxlen = 0; g_hash_table_foreach(excdb->vexc, sf_miss_exc_func, ms); z_ptr_array_qsort(ms->ia, z_compare_string); } void add_sf_miss_excs(struct band *b){ GString *gs; // ZPtrArray *ia; int i,j,k,lines; gchar *c; struct miss_struct ms; if (!excdb) return; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_MISS_EXCS), g_hash_table_size(excdb->vexc) - g_hash_table_size(b->stats->excs)); fifo_addf(F, VTEXT(T_SF_MISS_EXCS_UNDER)); miss_compute_ms(&ms, b); g_string_truncate(gs, 0); j = 0; lines=(ms.ia->len+MISS_EXC_COLS-1)/MISS_EXC_COLS; //dbg("lines=%d\n", lines); for (i=0; i=ms.ia->len) continue; c = (gchar *)z_ptr_array_index(ms.ia, k); g_string_sprintfa(gs, "%-*s", ms.maxlen+1, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); z_ptr_array_free_all(ms.ia); } //////////////////// void sf_dxc_func(gpointer key, gpointer value, gpointer user_data){ gchar *dxc; struct cntpts *n; ZPtrArray *ia; dxc = (gchar *) key; n = (struct cntpts *) value; ia = (ZPtrArray *) user_data; z_ptr_array_add(ia, g_strdup_printf("%4s:%6d %3d ", dxc, n->points, n->count)); } #undef COLS #define COLS 4 void add_sf_dxcs(struct band *b){ GString *gs; ZPtrArray *ia; int i,j,k,lines; gchar *c; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_DXCS), g_hash_table_size(b->stats->dxcs)); fifo_addf(F, VTEXT(T_SF_DXCS_UNDER)); /* for (i=0;istr);*/ ia = z_ptr_array_new(); g_hash_table_foreach(b->stats->dxcs, sf_dxc_func, ia); z_ptr_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines = (ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)z_ptr_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); z_ptr_array_free_all(ia); } void add_sf_prefs(struct band *b){ GString *gs; ZPtrArray *ia; int i,j,k,lines; gchar *c; GHashTable *hash; if (ctest->prefglob) hash = ctest->allb_prefs; else hash = b->stats->prefs; gs = g_string_new(""); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_PREFS), g_hash_table_size(hash)); fifo_addf(F, VTEXT(T_SF_PREFS_UNDER)); /* for (i=0;istr);*/ ia = z_ptr_array_new(); g_hash_table_foreach(hash, sf_dxc_func, ia); z_ptr_array_qsort(ia, compare_colon_int); g_string_truncate(gs, 0); j = 0; lines = (ia->len+COLS-1)/COLS; for (i=0; i=ia->len) continue; c = (gchar *)z_ptr_array_index(ia, k); g_string_append(gs, c); } fifo_addf(F, "%s", gs->str); g_string_truncate(gs, 0); } g_string_free(gs,1); z_ptr_array_free_all(ia); } void add_sf_wkd_wwls(struct band *b){ int w,len, lines, i, j, myw, myh; GString *gs; fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_WKD_WWLS), g_hash_table_size(b->stats->wwls)); fifo_addf(F, VTEXT(T_SF_WKD_WWLS_UNDER)); w=term->x - 2; len = w / 5; lines = len; myh = qthwr(ctest->pwwlo, 0); myw = qthwr(ctest->pwwlo, 1); /* fifo_addf(F, "w: %d, h:%d ", myw, myh);*/ gs=g_string_new(""); for(i=0; iQTH<"); continue; } mkwwl4(s, aw+ myw , ah + myh); if (g_hash_table_lookup(b->stats->wwls, s)){ g_string_append(gs, " "); continue; } g_string_sprintfa(gs, " %s", s); } fifo_addf(F, "%s", gs->str); } g_string_free(gs, 1); } void add_sf_cnt_in_wwls(struct band *b){ int w,len, lines, i, j, myw, myh; GString *gs; fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_QSO_WWL4), g_hash_table_size(b->stats->wwls)); fifo_addf(F, VTEXT(T_SF_QSO_WWL4_UNDER)); w=term->x - 2; len = w / 5; lines = len; myh = qthwr(ctest->pwwlo, 0); myw = qthwr(ctest->pwwlo, 1); /*fifo_addf(F, "w: %d, h:%d ", myw, myh);*/ gs=g_string_new(""); for(i=0; istats->wwls, s))!=NULL){ if (aw==0 && ah==0){ g_string_sprintfa(gs, ">%3d<", *cnt); }else{ g_string_sprintfa(gs, " %3d ", *cnt); } continue; } g_string_append(gs, " "); } fifo_addf(F, "%s", gs->str); } g_string_free(gs, 1); } void add_sf_top_dx(struct band *b) { #define TOPS_NUM 10 int i, cnt=0; signed int j; struct qso *q, *top[TOPS_NUM]; memset(top, 0, TOPS_NUM * sizeof(struct qso *)); for (i = 0; i < b->qsos->len; i++) { if (!top[0]) { /* init first item */ q = get_qso(b, i); if (!q->error && !q->dupe) { cnt = 0; top[cnt++] = q; /*dbg("init: %s %u\n=\n", top[0]->callsign, (int) top[0]->qrb);*/ } continue; } q = get_qso(b, i); /*dbg("selected %u: %s %u\n", i, q->callsign, (int) q->qrb);*/ if (q->error || q->dupe) continue; if (cnt >= TOPS_NUM) cnt = TOPS_NUM - 1; /* initialize or find top dx and sort top array */ if (!top[cnt] || q->qrb > top[cnt]->qrb) { for (j = cnt; j >= 0; j--) { if (j && q->qrb > top[j - 1]->qrb) { top[j] = top[j - 1]; /* move down */ /*dbg("down %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ } else { top[j] = q; /* insert */ cnt++; /*dbg("insert %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ break; } } } } fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_TOP_DX), TOPS_NUM); fifo_addf(F, VTEXT(T_SF_TOP_DX_UNDER)); for (i = 0; i < TOPS_NUM && i < b->qsos->len && top[i]; i++) { q = top[i]; fifo_addf(F, "%-12s %-6s %4u km by %-6s %s", q->callsign, q->locator, (int) q->qrb, q->operator_, mode_msg[q->mode]); } } gint compare_hour14 (gconstpointer a, gconstpointer b){ gchar **ca, **cb; int ia, ib; ca=(gchar **)a; cb=(gchar **)b; ia=atoi(*ca); if (ia<14) ia+=100; ib=atoi(*cb); if (ib<14) ib+=100; return ia-ib; } static int maxhourpoints, maxhourcount; void sf_hour_max_func(gpointer key, gpointer value, gpointer user_data){ struct cntpts *n; n = (struct cntpts *) value; if (n->points > maxhourpoints) maxhourpoints=n->points; if (n->count > maxhourcount) maxhourcount=n->count; } #define PS 20 #define CS 20 void sf_hour_func(gpointer key, gpointer value, gpointer user_data){ gchar *hour; struct cntpts *n; ZPtrArray *ia; int h, i, l, avg; char ps[40], cs[40]; hour = (gchar *) key; n = (struct cntpts *) value; ia = (ZPtrArray *) user_data; h=atoi(hour)+1; if (h==25) h=0; if (maxhourpoints>0) l=(n->points*PS)/maxhourpoints; else l=0; for (i=0;i0) l=(n->count*PS)/maxhourcount; else l=0; for (i=0;icount>0) avg=n->points/n->count; else avg=0; z_ptr_array_add(ia, g_strdup_printf("%2s-%02d: [%s]%6d : [%s]%3d : %4d odx %s", hour, h,ps, n->points, cs, n->count, avg, n->qso?n->qso->callsign:"")); /* n->qso should not be nul but for sure... */ } #undef COLS void add_sf_hours(struct band *b){ ZPtrArray *ia; int i/*,j,k,lines*/; gchar *c; fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_HOURS)); fifo_addf(F, VTEXT(T_SF_HOURS_UNDER)); fifo_addf(F, VTEXT(T_SF_HOURS_TITLE)); ia = z_ptr_array_new(); maxhourpoints=0; maxhourcount=0; g_hash_table_foreach(b->stats->hours, sf_hour_max_func, ia); g_hash_table_foreach(b->stats->hours, sf_hour_func, ia); z_ptr_array_qsort(ia, compare_hour14); for (i=0; ilen ; i++){ c = (gchar *)z_ptr_array_index(ia, i); fifo_addf(F, "%s", c); } z_ptr_array_free_all(ia); } void recalc_statsfifo(struct band *b){ //dbg("recalc_statsfifo(%c, %d)\n", b->bandchar, b->dirty_statsf); if (!b || !b->dirty_statsf) return; stats_thread_join(b); /*ST_START;*/ free_fifo(F); F = init_fifo(1000); F->withouttime = 1; // html_band_header reads from row 5 fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_STATS_BAND), b->bandname); fifo_addf(F, VTEXT(T_SF_STATS_BAND_UNDER)); fifo_addf(F, ""); fifo_addf(F, VTEXT(T_SF_CONTEST), ctest->tname); if (ctest->total_method == 3 || ctest->qsoglob){ fifo_addf(F, VTEXT(T_SF_ALLBQSOS), ctest->allb_nqsos); fifo_addf(F, VTEXT(T_SF_ALLBQSOP), ctest->allb_nqsop); fifo_addf(F, VTEXT(T_SF_ALLBPTS), ctest->allb_ntotal); } fifo_addf(F, VTEXT(T_SF_QSOS), b->stats->nqsos); fifo_addf(F, VTEXT(T_SF_QSOP), b->stats->nqsop); fifo_addf(F, VTEXT(T_SF_PTS), b->stats->ntotal); if (b->stats->nqsos>0){ fifo_addf(F, VTEXT(T_SF_AVG_PTS), ((double)b->stats->ntotal) / ((double)b->stats->nqsos)); fifo_addf(F, VTEXT(T_SF_AVG_QSOP), ((double)b->stats->nqsop) / ((double)b->stats->nqsos)); if (b->stats->qso_per_hour > 0) fifo_addf(F, VTEXT(T_SF_QSO_HOUR), b->stats->qso_per_hour); if (b->stats->pts_per_hour > 0) fifo_addf(F, VTEXT(T_SF_QSOP_HOUR), b->stats->pts_per_hour); fifo_addf(F, VTEXT(T_SF_QSOP_50QSO), b->stats->pts_per_50qso); } fifo_addf(F, ""); if (ctest->qsop_method==4 || ctest->wwlmult != 0 || ctest->wwlbonu != 0){ add_sf_wkd_wwls(b); add_sf_cnt_in_wwls(b); } if (ctest->wwlused > 0) add_sf_wwls(b); if (ctest->excused > 0) { add_sf_excs(b); add_sf_miss_excs(b); } add_sf_dxcs(b); if (ctest->prefmult > 0) add_sf_prefs(b); add_sf_hours(b); if (ctest->wwlused > 0) add_sf_top_dx(b); fifo_addf(F, ""); b->dirty_statsf = 0; /*ST_STOP; */ } /* Exports statistics of actual band to a text file */ void export_stats_fifo(void) { gchar *fname; int i; progress(VTEXT(T_EXPORTING)); fname = NULL; for (i = 0; 1; i++) { struct stat st; fname = g_strdup_printf("%s/stat%c%d.txt", ctest->directory, z_char_lc(aband->bandchar), i); if (stat(fname, &st) != 0) break; g_free(fname); fname = NULL; } recalc_statsfifo(aband); save_fifo_to_file(aband->statsfifo1, fname); g_free(fname); progress(NULL); } gpointer stats_thread_func(gpointer data){ struct qso *q; int i; struct band *band=(struct band*)data; struct stats *tmp; zg_thread_set_name("Tucnak stats"); /* ST_START;*/ clear_stats(band->tmpstats); for (i=0; iqsos->len; i++){ if (band->stats_break) break; q = get_qso(band, i); update_stats(band, band->tmpstats, q); } MUTEX_LOCK(band->stats); tmp=band->stats; band->stats=band->tmpstats; band->tmpstats=tmp; MUTEX_UNLOCK(band->stats); minute_stats(band); band->dirty_save = 1; //sprintf(s, "ST\n"); //ret = write(tpipe->threadpipe_write, s, strlen(s)); zselect_msg_send(zsel, "ST"); band->dirty_stats = 0; /* dbg("stats done %c\n", band->bandchar);*/ return 0; } void stats_thread_create(struct band *band){ if (band->stats_thread) zinternal("stats_threadcreate band->stats_thread"); /*dbg("stats_thread_create(%c)\n", band->bandchar);*/ band->stats_break=0; band->stats_thread=g_thread_try_new("stats", stats_thread_func, (gpointer)band, NULL); if (!band->stats_thread) zinternal("stats_threadcreate !band->stats_thread"); } void stats_thread_join(struct band *band){ if (!band->stats_thread) return; dbg("join stats ...\n"); g_thread_join(band->stats_thread); dbg("done\n"); band->stats_thread=NULL; } void stats_thread_kill(struct band *band){ if (!band->stats_thread) return; /* dbg("stats_thread_kill(%c)\n", band->bandchar);*/ band->stats_break=1; dbg("join stats ...\n"); g_thread_join(band->stats_thread); dbg("done\n"); band->stats_thread=NULL; } void minute_stats(struct band *band){ struct qso *qso; int j,brk, cnt50; int qso_per_hour, pts_per_hour, pts_per_50qso; char s[100], hourbefore[100]; time_t hb; struct tm utc; hb=time(NULL)-3600; gmtime_r(&hb, &utc); sprintf(hourbefore, "%4d%02d%02d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday, utc.tm_hour, utc.tm_min); if (band->qsos->len==0) return; qso_per_hour=pts_per_hour=pts_per_50qso=0; cnt50=50; brk=0; ctest->lastmultqso = NULL; for (j=band->qsos->len-1;j>=0;j--){ if (band->stats_break) break; qso = (struct qso *)g_ptr_array_index(band->qsos, j); if (qso->error || qso->dupe) continue; strcpy(s, qso->date_str); strcat(s, qso->time_str); /* dbg("s=%s h=%s\n", s, hourbefore);*/ if (strcmp(s, hourbefore)>0){ qso_per_hour++; pts_per_hour+=qso->qsop; }else{ brk|=0x01; } if (cnt50-->0){ pts_per_50qso+=qso->qsop; }else{ brk|=0x02; } if ((qso->new_ & NEW_MULT) && !ctest->lastmultqso){ brk |= 0x04; ctest->lastmultqso = qso; } if (brk==0x07) break; } MUTEX_LOCK(band->stats); if (band->stats->qso_per_hour!=qso_per_hour || band->stats->pts_per_hour!=pts_per_hour || band->stats->pts_per_50qso!=pts_per_50qso){ band->stats->qso_per_hour=qso_per_hour; band->stats->pts_per_hour=pts_per_hour; band->stats->pts_per_50qso=pts_per_50qso; band->dirty_statsf = 1; } MUTEX_UNLOCK(band->stats); } void minute_stats_all(void){ struct band *band; time_t hb; struct tm utc; int i, brk; char s[100], hourbefore[100], tenbefore[100]; int qso_per_10, qso_per_60; struct qso *qso; if (!aband) return; for (i=0;ibands->len;i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); minute_stats(band); } if (aband->dirty_statsf) recalc_statsfifo(aband); hb=time(NULL)-3600; gmtime_r(&hb, &utc); sprintf(hourbefore, "%4d%02d%02d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday, utc.tm_hour, utc.tm_min); hb=time(NULL)-600; gmtime_r(&hb, &utc); sprintf(tenbefore, "%4d%02d%02d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday, utc.tm_hour, utc.tm_min); if (ctest->allqsos->len==0) return; qso_per_10 = qso_per_60 = 0; brk=0; for (i=ctest->allqsos->len-1;i>=0;i--){ qso = (struct qso *)g_ptr_array_index(ctest->allqsos, i); if (qso->error || qso->dupe) continue; strcpy(s, qso->date_str); strcat(s, qso->time_str); if (strcmp(s, hourbefore)>0) qso_per_60++; else brk|=0x01; if (strcmp(s, tenbefore)>0) qso_per_10++; else brk|=0x02; if (brk==0x03) break; } if (ctest->qso_per_60 != qso_per_60 || ctest->qso_per_10 != qso_per_10){ ctest->qso_per_60 = qso_per_60; ctest->qso_per_10 = qso_per_10; redraw_later(); } } void timer_minute_stats_all(void *arg){ minute_stats_all(); ctest->minute_timer_id=zselect_timer_new(zsel, 60000, timer_minute_stats_all, NULL); /*#ifdef Z_ANDROID struct tm utc; time_t now = time(NULL); gmtime_r(&now, &utc); dbg("%02d:%02d:%02dz", utc.tm_hour, utc.tm_min, utc.tm_sec); #endif*/ } void stats_merge_prefs_fn(gpointer key, gpointer value, gpointer data){ gchar *pref = (gchar *)key; struct cntpts *cp = (struct cntpts *)value; gpointer orig_key; struct cntpts *orig_value; dbg("stats_merge_prefs_fn('%s') cp=%d %d\n", key, cp->count, cp->points); if (!g_hash_table_lookup_extended(ctest->allb_prefs, pref, &orig_key, (gpointer) &orig_value)){ orig_value = g_new0(struct cntpts, 1); g_hash_table_insert(ctest->allb_prefs, g_strdup(pref), orig_value); } orig_value->count += cp->count; orig_value->points += cp->points; } // called from main thread, no locking needed void recalc_allb_stats(){ int i; struct band *band; //dbg("recalc_allb_stats\n"); if (ctest->total_method != 3 && ctest->qsoglob == 0) return; // dbg("do!\n"); ctest->allb_nqsos = 0; ctest->allb_nqsop = 0; ctest->allb_nwwlp = 0; ctest->allb_nexcp = 0; ctest->allb_nprefp = 0; ctest->allb_ndxcp = 0; ctest->allb_nmult = 0; ctest->allb_ntotal = 0; if (ctest->prefmult > 0){ g_hash_table_foreach_remove(ctest->allb_prefs, free_gpointer_item, NULL); } for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); ctest->allb_nqsos += band->stats->nqsos; ctest->allb_nqsop += band->stats->nqsop; ctest->allb_nwwlp += band->stats->nwwlp; ctest->allb_nexcp += band->stats->nexcp; ctest->allb_ndxcp += band->stats->ndxcp; ctest->allb_nmult += band->stats->nmult; ctest->allb_ntotal += band->stats->ntotal; if (ctest->prefmult > 0){ g_hash_table_foreach(band->stats->prefs, stats_merge_prefs_fn, NULL); ctest->allb_nprefp = g_hash_table_size(band->stats->prefs); } } if (ctest->total_method == 4){ ctest->allb_nmult = ( ctest->wwlmult ? ctest->allb_nwwlp * ctest->wwlmult : 1 ) * ( ctest->dxcmult ? ctest->allb_ndxcp * ctest->dxcmult : 1 ) * ( ctest->excmult ? ctest->allb_nexcp * ctest->excmult : 1 ); ctest->allb_ntotal = ( ctest->allb_nqsop + ctest->allb_nwwlp * ctest->wwlbonu + ctest->allb_ndxcp * ctest->dxcbonu + ctest->allb_nexcp * ctest->excbonu ) * ctest->allb_nmult; } } int qsomult16(struct band *band){ int qsomult = 1; if (band->qrg_min > 2000000) qsomult = 10; // 2,3 GHz and above else if (band->qrg_min > 1000000) qsomult = 5; // 1,3 GHz else if (band->qrg_min > 400000) qsomult = 3; // 432 MHz else qsomult = 1; // 144 MHz return qsomult; } tucnak-4.04/src/ttys.h0000644000175000017500000000124311571666745011634 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __TTYS_H #define __TTYS_H #include "header.h" struct cwdaemon; int ttys_init (struct cwdaemon *); int ttys_open (struct cwdaemon *cwda, int verbose); int ttys_free (struct cwdaemon *); int ttys_reset (struct cwdaemon *); int ttys_cw (struct cwdaemon *, int onoff); int ttys_ptt (struct cwdaemon *, int onoff); int ttys_ssbway (struct cwdaemon *, int onoff); #endif tucnak-4.04/src/main.c0000644000175000017500000006430612524337645011552 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "ac.h" #include "alsa.h" #include "charsets.h" #include "cor.h" #include "cwdaemon.h" #include "cwdb.h" #include "davac4.h" #include "dsp.h" #include "dwdb.h" #include "dxc.h" #include "edi.h" #include "excdb.h" #include "fft.h" #include "fifo.h" #include "hdkeyb.h" #include "httpd.h" #include "kbdbind.h" #include "kbd.h" #include "language2.h" #include "main.h" #include "masterdb.h" #include "menu.h" #include "misc.h" #include "namedb.h" #include "net.h" #include "ntpq.h" #include "pa.h" #include "ppdev.h" #include "qrvdb.h" #include "qsodb.h" #include "rc.h" #include "rotar.h" #include "sdev.h" #include "sdr.h" #include "stats.h" #include "svnversion.h" #include "tsdl.h" #include "session.h" #include "ssbd.h" #include "terminal.h" #include "trig.h" //#include "update.h" #include "vhfcontestnet.h" #include "wizz.h" #ifdef ANDROID #include #endif int retval = RET_OK; char * starting_sbrk; struct zselect *zsel; struct zfiledlg *zfiledlg; extern char pwwlo[MAX_STR_LEN]; #ifdef Z_UNIX_ANDROID void sigchld(void *arg, siginfo_t *siginfo, void *ctx); void sig_terminate(void *arg, siginfo_t *siginfo, void *ctx) { unhandle_basic_signals(); zselect_terminate(zsel); retval = RET_SIGNAL; } void sig_intr(void *arg, siginfo_t *siginfo, void *ctx) { if (!term) { unhandle_basic_signals(); zselect_terminate(zsel); } else { unhandle_basic_signals(); exit_prog(NULL); } } void sig_ctrl_c(void *arg, siginfo_t *siginfo, void *ctx) { dbg("sig_ctrl_c\n"); if (!is_blocked()) kbd_ctrl_c(); } void sig_ign(void *arg, siginfo_t *siginfo, void *ctx) { } void sig_tstp(void *arg, siginfo_t *siginfo, void *ctx) { #ifdef SIGSTOP int pid = getpid(); block_itrm(0); #if defined (SIGCONT) && defined(SIGTTOU) if (!fork()) { sleep(1); kill(pid, SIGCONT); exit(0); } #endif raise(SIGSTOP); #endif } #endif #ifndef Z_MSC_MINGW void sig_cont(void *arg, siginfo_t *siginfo, void *ctx) { if (!unblock_itrm(0)) resize_terminal(NULL); } #endif void tucnak_crash(GString *gs){ if (zdebug_debug_type()) z_msgbox_info("Tucnak-" Z_PLATFORM " " VERSION, "Tucnak crashed. Now is time to attach the debugger."); cwdaemon_safe_abort(cwda); #ifdef Z_HAVE_SDL if (sdl) { SDL_Quit(); } else #endif { #ifndef Z_MSC_MINGW itrm_safe_abort(); #endif } #ifdef Z_MSC_MINGW g_string_append(gs, "Tucnak unhandled exception.\nPlease report to ok1zia@nagano.cz"); #else g_string_append(gs, "Tucnak segmentation fault.\nPlease report to ok1zia@nagano.cz"); #endif } static void sig_pipe(int a){ /* dbg("sig_pipe(%d)\n", a); dbg("pid=%d\n", getpid()); sleep(10);*/ } void handle_basic_signals(struct terminal *term) { #ifndef Z_HAVE_SDL #define sdl 0 #endif #ifdef Z_UNIX zselect_signal_set(SIGHUP, sig_intr, NULL, 0); if (!sdl) zselect_signal_set(SIGINT, sig_ctrl_c, NULL, 0); zselect_signal_set(SIGTERM, sig_terminate, NULL, 0); #endif if (!sdl){ #ifdef SIGTSTP zselect_signal_set(SIGTSTP, sig_tstp, NULL, 0); #endif #ifdef SIGTTIN zselect_signal_set(SIGTTIN, sig_tstp, NULL, 0); #endif #ifdef SIGCONT zselect_signal_set(SIGCONT, sig_cont, NULL, 0); #endif } #ifdef SIGTTOU zselect_signal_set(SIGTTOU, sig_ign, NULL, 0); #endif #ifdef Z_UNIX signal(SIGPIPE, sig_pipe); #endif } /*static void handle_sdl_signals(void){ #ifndef Z_MSC_MINGW zselect_signal_set(SIGSEGV, sig_segv, NULL, 1); #endif }*/ void unhandle_terminal_signals() { #ifdef Z_UNIX zselect_signal_set(SIGHUP, NULL, NULL, 0); if (!sdl) zselect_signal_set(SIGINT, NULL, NULL, 0); #endif #ifdef SIGTSTP zselect_signal_set(SIGTSTP, NULL, NULL, 0); #endif #ifdef SIGTTIN zselect_signal_set(SIGTTIN, NULL, NULL, 0); #endif #ifdef SIGCONT zselect_signal_set(SIGCONT, NULL, NULL, 0); #endif #ifdef SIGTTOU zselect_signal_set(SIGTTOU, NULL, NULL, 0); #endif #ifdef Z_UNIX signal(SIGPIPE, SIG_IGN); #endif } void unhandle_basic_signals() { #ifdef Z_UNIX zselect_signal_set(SIGHUP, NULL, NULL, 0); if (!sdl) zselect_signal_set(SIGINT, NULL, NULL, 0); zselect_signal_set(SIGTERM, NULL, NULL, 0); #endif #ifdef SIGTSTP zselect_signal_set(SIGTSTP, NULL, NULL, 0); #endif #ifdef SIGTTIN zselect_signal_set(SIGTTIN, NULL, NULL, 0); #endif #ifdef SIGCONT zselect_signal_set(SIGCONT, NULL, NULL, 0); #endif #ifdef SIGTTOU zselect_signal_set(SIGTTOU, NULL, NULL, 0); #endif #ifdef Z_UNIX signal(SIGPIPE, SIG_IGN); #endif } #ifndef Z_HAVE_SDL #undef sdl #endif #ifndef Z_MSC_MINGW int term_attach_terminal(int in, int out, int ctl) { int fd[2]; /*struct terminal *term;*/ dbg("attach_terminal\n"); if (z_pipe(fd)) { error("ERROR: can't create pipe for internal communication"); return -1; } z_sock_nonblock(fd[0], 1); z_sock_nonblock(fd[1], 1); handle_trm(in, out, out, fd[1], ctl); if ((term = init_term(fd[0], out, win_func))) { handle_basic_signals(term); /* OK, this is race condition, but it must be so; GPM installs it's own buggy TSTP handler */ return fd[1]; } closesocket(fd[0]); closesocket(fd[1]); return -1; } #endif static int ac; static char **av; int first_contest_def = 0; char *tucnak_dir = NULL; char *home_dir = NULL; static void init_home(void) { struct stat st; char *c = NULL; c = getenv("TUCNAK"); if (c) { tucnak_dir = g_strdup(c); home_dir = g_strdup(c); z_dirname(home_dir); } if (!tucnak_dir){ home_dir = g_strdup(getenv("HOME")); //home_dir = NULL;//FIXME if (home_dir) tucnak_dir = g_strdup_printf("%s/tucnak", home_dir); } #ifdef Z_MSC_MINGW if (!tucnak_dir){ home_dir = z_strdup_home(); tucnak_dir = g_strdup_printf("%s/Tucnak", home_dir); } #endif if (!tucnak_dir){ char *d = g_strdup(av[0]); z_dirname(d); tucnak_dir = g_strdup(d); home_dir = g_strdup(d); g_free(d); } z_wokna(tucnak_dir); z_wokna(home_dir); if (stat(tucnak_dir, &st)) { if (z_mkdir(tucnak_dir, 0777)) zinternal(VTEXT(T_CANT_CREATE_HOME), tucnak_dir); }else{ // exists if (!S_ISDIR(st.st_mode)) zinternal(VTEXT(T_MUST_BE_DIR_MODE), tucnak_dir, st.st_mode); } } static void main_msg_handler(struct zselect *zsel, int n, char **items){ // dbg("threadpipe_rel_read('%s')\n", items[0]); if (!n || !items[0]) zinternal("main_msg_handler bad format"); if (strcmp(items[0], "AC")==0){ ac_redraw(); return; } if (strcmp(items[0], "LOG")==0){ log_adds(items[1]); dbg("%s", items[1]); return; } #ifdef USE_SDR if (strcmp(items[0], "SDR")==0){ sdr_read_handler(gsdr, items[1], items[2]); return; } #endif if (strcmp(items[0], "ST")==0){ if (!ctest) return; check_autosave(); redraw_stats(aband); recalc_allb_stats(); recalc_statsfifo(aband); redraw_later(); return; } if (strcmp(items[0], "CWQS")==0){ redraw_later(); return; } if (strcmp(items[0], "COR")==0){ #ifdef Z_HAVE_SDL cor_read_handler(n, items); #endif return; } if (strcmp(items[0], "TERM")==0){ redraw_later(); return; } if (!items[1]) zinternal("main_msg_handler bad format 2 (%s)", items[0]); #if defined(HAVE_SNDFILE) || defined(Z_ANDROID) if (strcmp(items[0], "SSBP")==0){ ssbd_play_read_handler(gssbd, items[1]); return; } #endif #ifdef HAVE_SNDFILE if (strcmp(items[0], "SSBR")==0){ ssbd_rec_read_handler(gssbd, items[1]); return; } #endif if (strcmp(items[0], "CW")==0){ cwdaemon_read_handler(cwda, items[1], items[2]); return; } #ifdef HAVE_HAMLIB if (strcmp(items[0], "TRIG")==0){ trigs_read_handler(gtrigs, n, items); return; } #endif if (strcmp(items[0], "SC")==0){ log_adds(items[2]); //items[1] is always "!" return; } if (strcmp(items[0], "ROT")==0){ rotar_read_handler(n, items); return; } #ifdef Z_HAVE_LIBFTDI if (strcmp(items[0], "HD")==0){ hdkeyb_read_handler(n, items); return; } #endif if (strcmp(items[0], "ZFILEDLG")==0){ zfiledlg_read_handler(n, items); return; } if (strcmp(items[0], "ZASYNCDNS")==0){ zasyncdns_read_handler(n, items); return; } } #ifdef Z_ANDROID void android_trace_keys(char *s){ if (!cfg->trace_keys) return; error("%s", s); log_adds(s); } #endif void trace_handler(char *s){ if (!gses) return; log_adds(s); } void info(GString *gs){ g_string_sprintfa(gs, "\n %s-%s %s\n\n", PACKAGE, Z_PLATFORM, VERSION); g_string_sprintfa(gs, "tucnak svn version: %s\nlibzia svn version: %s\n\n", T_SVNVER, z_svnver()); #ifdef __GLIBC__ g_string_sprintfa(gs,"\n glibc info\n"); g_string_sprintfa(gs,"compiled version: %d.%d\n", __GLIBC__, __GLIBC_MINOR__); g_string_sprintfa(gs,"runtime version: %s\n", gnu_get_libc_version()); g_string_sprintfa(gs,"runtime release: %s\n\n", gnu_get_libc_release()); #endif #ifdef Z_HAVE_SDL sdl_info(gs); #endif #if defined(HAVE_LINUX_PPDEV_H) || defined (Z_MSC_MINGW_CYGWIN) parport_info(gs); #endif #ifdef HAVE_SNDFILE #ifdef HAVE_ALSA alsa_info(gs); #endif #ifdef HAVE_PORTAUDIO pa_info(gs); #endif #endif #ifdef Z_HAVE_LIBFTDI usb_info(gs); #endif iface_info(gs); bat_info(gs); serial_info(gs); #ifdef Z_ANDROID double h, w; int state; //SDL_ANDROID_GetHW(&h, &w, &state); zandroid_init(zsel); zandroid_get_location(&h, &w, &state); g_string_sprintfa(gs, "\n geolocation info\n"); g_string_sprintfa(gs, "state: "); switch (state){ case 0: g_string_append(gs, "searching\n"); break; case 1: g_string_append(gs, "fixed\n"); break; case 2: g_string_append(gs, "error\n"); break; default: g_string_sprintfa(gs, "unknown\n", state); break; } if (h > -1000 && h < 1000){ g_string_sprintfa(gs, "lon: %f\n", h); g_string_sprintfa(gs, "lat: %f\n", w); hw2loc(pwwlo, h, w, 10); g_string_sprintfa(gs, "wwl: %s\n", pwwlo); }else{ g_string_sprintfa(gs, "location unknown\n"); } #endif g_string_append(gs, ""); } void settings(GString *gs){ z_get_settings(gs); g_string_append(gs, "\n\n"); g_string_append(gs, txt_settings); g_string_sprintfa(gs, " macros: "); #ifdef UNIX g_string_sprintfa(gs, "UNIX "); #endif #ifdef _UNIX g_string_sprintfa(gs, "_UNIX "); #endif #ifdef __UNIX g_string_sprintfa(gs, "__UNIX "); #endif #ifdef LINUX g_string_sprintfa(gs, "LINUX "); #endif #ifdef _LINUX g_string_sprintfa(gs, "_LINUX "); #endif #ifdef __LINUX g_string_sprintfa(gs, "__LINUX "); #endif #ifdef WIN32 g_string_sprintfa(gs, "WIN32 "); #endif #ifdef _WIN32 g_string_sprintfa(gs, "_WIN32 "); #endif #ifdef _WIN64 g_string_sprintfa(gs, "_WIN64 "); #endif #ifdef __CYGWIN__ g_string_sprintfa(gs, "__CYGWIN__ "); #endif #ifdef __GNUC__ g_string_sprintfa(gs, "__GNUC__=%d.%d.%d ", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); #endif #ifdef _MSC_VER g_string_sprintfa(gs, "_MSC_VER=%d.%02d ", _MSC_VER / 100, _MSC_VER % 100); #endif #ifdef __MINGW32__ g_string_sprintfa(gs, "__MINGW32__ "); #endif #ifdef __x86_64__ g_string_sprintfa(gs, "__x86_64__ "); #endif #ifdef __i386__ g_string_sprintfa(gs, "__i386__ "); #endif #ifdef __hppa__ g_string_sprintfa(gs, "__hppa__ "); #endif #ifdef __ppc__ g_string_sprintfa(gs, "__ppc__ "); #endif #ifdef __powerpc__ g_string_sprintfa(gs, "__powerpc__ "); #endif #ifdef __arm__ g_string_sprintfa(gs, "__arm__ "); #endif #ifdef Z_UNIX g_string_sprintfa(gs, "Z_UNIX "); #endif #ifdef Z_MSC g_string_sprintfa(gs, "Z_MSC "); #endif #ifdef Z_MINGW g_string_sprintfa(gs, "Z_MINGW "); #endif #ifdef Z_MINGW g_string_sprintfa(gs, "Z_CYGWIN "); #endif g_string_sprintfa(gs, "\n"); } static void init(void) { char *c; char userbuf[64]; parse_options(ac, av); zdebug_init(ac, av, free_all_itrms, trace_handler, "Tucnak-" Z_PLATFORM " " VERSION); //zjson_test(); dbg("Tucnak-%s %s svn %s (%s) pid=%d user=%s\n", Z_PLATFORM, PACKAGE_VERSION, T_SVNVER, z_svnver(), getpid(), z_username(userbuf, sizeof(userbuf))); { void *codebase; char *libzia = z_libzia_file_name(&codebase); dbg("libzia: '%s' codebase 0x%p\n", libzia, codebase); } if (opt_i){ GString *gs = g_string_sized_new(1024); info(gs); #ifdef Z_MSC_MINGW MessageBox(NULL, gs->str, "Tucnak info", MB_OK | MB_ICONINFORMATION); #elif defined(Z_ANDROID) __android_log_print(ANDROID_LOG_DEBUG, "Tucnak", "%s", gs->str); #else printf("%s", gs->str); #endif g_string_free(gs, TRUE); exit(0); } if (opt_s){ GString *gs = g_string_sized_new(1024); settings(gs); #ifdef Z_MSC_MINGW MessageBox(NULL, gs->str, "Tucnak settings", MB_OK | MB_ICONINFORMATION); #elif defined(Z_ANDROID) __android_log_print(ANDROID_LOG_DEBUG, "Tucnak", "%s", gs->str); #else printf("%s", gs->str); #endif g_string_free(gs, TRUE); exit(0); } srand(time(NULL) + getpid()); init_debug(); glog = init_fifo(1000); //init_zptrarray(); //init_ghash(); init_trans(); init_rc(); term_spec_init(); #ifndef Z_MSC_MINGW zselect_signal_set(SIGCHLD, sigchld, NULL, 1); #endif init_home(); c = g_strdup_printf("%s/tucnak.dmp", tucnak_dir); z_dump_init(c, tucnak_crash, "Tucnak-" Z_PLATFORM " " VERSION, DDIR); init_keymaps(); read_rc_files(); #ifdef Z_ANDROID SDL_Android_key_trace(android_trace_keys); #endif #ifdef Z_HAVE_SDL sdl=init_sdl(); z_dump_init(c, tucnak_crash, "Tucnak-" Z_PLATFORM " " VERSION, DDIR); // must re-attach segv handler g_free(c); //log_addf(VTEXT(T_TUCNAK_DIRECTORY_IS), tucnak_dir); if (sdl){ setenv("TERM", "sdl", 1); if (sdl_attach_terminal(get_input_handle(), get_output_handle(), get_ctl_handle())==-1){ retval = RET_FATAL; zselect_terminate(zsel); } } else #endif { #ifndef Z_MSC_MINGW if (term_attach_terminal(get_input_handle(), get_output_handle(), get_ctl_handle())==-1){ retval = RET_FATAL; zselect_terminate(zsel); } #endif } if (!term) zinternal("init() !term"); gtalk = init_fifo(1000); cw = init_cw(); dw = init_dw(); excdb = init_exc(); qrv = init_qrv(); wizz = init_wizz(); namedb = init_namedb(); masterdb = init_masterdb(); init_sconns(); init_rotars(); #ifdef Z_HAVE_LIBFTDI if (rotars->len > 0) hdkeyb = init_hdkeyb(); #endif #ifdef Z_HAVE_SDL progress(VTEXT(T_INIT_MAP)); gcor = init_cor(); #endif if (cfg->dssaver){ progress(VTEXT(T_DISABLE_SAVER)); z_disable_screensaver(); } read_cw_files(cw); read_dw_files(dw); read_wizz_files(wizz); read_namedb_files(namedb); /*read_ebw_files(cw,namedb);*/ read_masterdb_files(masterdb); init_sound(); gnet = init_net(); httpd = init_httpd(); cwda = init_cwdaemon(); gssbd = init_ssbd(); spotdb = init_spotdb(); #ifdef Z_UNIX ntpq = init_ntpq(); #endif #ifdef HAVE_HAMLIB gtrigs = init_trigs(); #endif #ifdef USE_FFT gfft = init_fft(); #endif gacs = init_acs(); #ifdef USE_SDR gsdr = init_sdr(); #endif #ifdef Z_HAVE_SDL gbat = zbat_init(); #endif zfiledlg = zfiledlg_init(); zfiledlg->last_dir = g_strdup(tucnak_dir); if (cfg->maximized && cfg->fullscreen == 0){ #ifdef Z_HAVE_SDL if (sdl && sdl->screen){ sdl->ignore_progress = 1; SDL_FillRect(sdl->screen, NULL, 0); SDL_UpdateRect(sdl->screen, 0, 0, 0, 0); zsdl_maximize(zsdl, 1); } #endif }else{ progress(VTEXT(T_STARTING_TUCNAK)); } #if 0 {int i; GString *gs; gs = g_string_new(""); ST_START(); for (i = 0; i < 10000; i++) { g_string_sprintfa(gs, "%-14s %-6s %08d %s\n", "OK1ZIA", "JN69QR", 20120308, "C"); } g_string_truncate(gs, 0); ST_STOP("g_string_sprintfa"); for (i = 0; i < 10000; i++) { zg_string_sprintfa(gs, "%-14s %-6s %08d %s\n", "OK1ZIA", "JN69QR", 20120308, "C"); } g_string_truncate(gs, 0); ST_STOP("zg_string_sprintfa"); for (i = 0; i < 10000; i++) { char s[256], *c; sprintf(s, "%-14s %-6s %08d %s\n", "OK1ZIA", "JN69QR", 20120308, "C"); g_string_append(gs, s); } g_string_truncate(gs, 0); ST_STOP("sprintf"); for (i = 0; i < 10000; i++) { char s[256]; sprintf_s(s, 256, "%-14s %-6s %08d %s\n", "OK1ZIA", "JN69QR", 20120308, "C"); g_string_append(gs, s); } g_string_truncate(gs, 0); ST_STOP("sprintf_s"); g_string_free(gs, 1);} #endif } static void terminate_all_subsystems(void) { #ifdef Z_HAVE_SDL /*free_gfx();*/ #endif dbg("terminate_all_subsystems\n"); zselect_bh_check(zsel); zselect_bh_check(zsel); zselect_bh_check(zsel); free_ctest(); #ifdef Z_HAVE_SDL sdl_stop_event_thread(); zbat_free(gbat); free_acs(gacs); gacs = NULL; progress(VTEXT(T_FREE_MAP)); free_cors(); #endif #ifdef USE_SDR free_sdr(gsdr); gsdr = NULL; #endif #ifdef HAVE_HAMLIB free_trigs(gtrigs); #endif #ifdef Z_UNIX free_ntpq(ntpq); #endif free_qrv(qrv); free_exc(excdb); free_dw(dw); free_cw(cw); free_wizz(wizz); free_namedb(namedb); free_masterdb(masterdb); #ifdef Z_HAVE_LIBFTDI free_hdkeyb(hdkeyb); #endif free_rotars(); free_spotdb(spotdb); free_httpd(httpd); free_net(gnet); free_cwdaemon(cwda); cwda = NULL; free_ssbd(gssbd); gssbd = NULL; free_sound(); #ifdef USE_FFT free_fft(gfft); // after ssb #endif // FREE(free_threadpipe(tpipe)); zfiledlg_free(zfiledlg); free_fifo(glog); free_fifo(gtalk); free_namelist(); free_all_itrms(); free_history_lists(); free_term_specs(); free_keymaps(); free_conv_table(); //zselect_bh_check(zsel); //zselect_bh_check(zsel); destroy_terminal(NULL); #ifdef Z_HAVE_SDL free_sdl(); #endif shutdown_trans(); free_rc(); check_memory_leaks(); //free_ghash(); //free_zptrarray(); free_debug(); g_free(tucnak_dir); g_free(home_dir); } void redraw(void){ // dbg("redraw()\n"); #ifdef Z_HAVE_SDL if (sdl) { sdl_redraw_screen(); } else #endif { term_redraw_screen(); } } int main(int argc, char *argv[]) { #if 0 GString *gs = g_string_sized_new(8000); z_backtrace_symbols(gs, NULL, 0); printf("----\n%s\n----\n", gs->str); exit(0); #endif #if 0 char data[256]; int len; struct zserial *zser; zdebug_init(argc, argv, NULL, NULL); zser = zserial_init_win32("COM3"); zserial_set_line(zser, 9600, 8, 'E', 1); if (zserial_open(zser)){ error("%s", zserial_errorstr(zser)); zserial_free(zser); return -1; } len = 0; ST_START(); if (zserial_prot(zser, 240, 17, data, &len, 400)){ error("%s", zserial_errorstr(zser)); ST_STOP("prot error"); zserial_free(zser); return -1; } ST_STOP("prot"); zserial_free(zser); exit(0); #endif #if 0 GString *gs = g_string_new(""); zg_string_eprintfa("", gs, "%b", "A", 1); g_string_assign(gs, ""); zg_string_eprintfa("", gs, "%b", "AA", 2); g_string_assign(gs, ""); zg_string_eprintfa("", gs, "%b", "AAA", 3); g_string_assign(gs, ""); zg_string_eprintfa("", gs, "%b", "AAAA", 4); #endif #if 0 char s[20], t[20]; strcpy(s, " abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " abc"); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, "abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " abc"); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, "abc "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, "abc"); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, " "); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); strcpy(s, ""); strcpy(t, s); printf("'%s' '%s'\n", s, trim(t)); printf("'%s' '%s'\n", NULL, trim(NULL)); exit(0); #endif #if 0 char str[256]; double lat = 0/*50.1*/, lon=0/*15.0*/; int d; for (d = 0; d < 365; d++){ struct tm tm; memset(&tm, 0, sizeof(tm)); tm.tm_mday = 1 + d; tm.tm_mon = 0; tm.tm_year = 2014 - 1900; time_t tt = mktime(&tm); gmtime_r(&tt, &tm); printf("%02d.%02d.%04d %s\n", tm.tm_mday, tm.tm_mon + 1, tm.tm_year + 1900, zsun_strdup_riseset(tt, 50.1, -100)); } return 0; #endif #if 0 g_thread_init(NULL); debug_type=2; init_debug(); int thr=2; ST_START; similar_calls("OK2M", "OK1ZIA",0,thr,1); similar_calls("OK2M", "OK1KRQ",0,thr,1); similar_calls("OK2M", "OK2",0,thr,1); similar_calls("OK2M", "OKM",0,thr,1); similar_calls("OK2M", "O2M",0,thr,1); similar_calls("OK2M", "K2M",0,thr,1); similar_calls("OK2M", "KO2M",0,thr,1); similar_calls("OK2M", "OK2X",0,thr,1); similar_calls("OK2M", "OKXM",0,thr,1); similar_calls("OK2M", "OX2M",0,thr,1); similar_calls("OK2M", "XK2M",0,thr,1); similar_calls("OK2M", "OK2MX",0,thr,1); similar_calls("OK2M", "OK2XM",0,thr,1); similar_calls("OK2M", "OKX2M",0,thr,1); similar_calls("OK2M", "OXK2M",0,thr,1); similar_calls("OK2M", "XOK2M",0,thr,1); similar_calls("OK2M", "DK2M",0,thr,1); similar_calls("OK2M", "DK3M",0,thr,1); similar_calls("OK2M", "DK3O",0,thr,1); similar_calls("OK2M", "DL2M",0,thr,1); similar_calls("OK2M", "DL3M",0,thr,1); similar_calls("OK2M", "DL3O",0,thr,1); similar_calls("OK1KRQ", "OK1ZIA",0,thr,1); similar_calls("OK1KRQ", "OK1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1KR",0,thr,1); similar_calls("OK1KRQ", "OK1KQ",0,thr,1); similar_calls("OK1KRQ", "OK1RQ",0,thr,1); similar_calls("OK1KRQ", "OKKRQ",0,thr,1); similar_calls("OK1KRQ", "K1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1KQR",0,thr,1); similar_calls("OK1KRQ", "OK1RKQ",0,thr,1); similar_calls("OK1KRQ", "OKK1RQ",0,thr,1); similar_calls("OK1KRQ", "O1KKRQ",0,thr,1); similar_calls("OK1KRQ", "KO1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1KRX",0,thr,1); similar_calls("OK1KRQ", "OK1KXQ",0,thr,1); similar_calls("OK1KRQ", "OK1XRQ",0,thr,1); similar_calls("OK1KRQ", "OKXKRQ",0,thr,1); similar_calls("OK1KRQ", "OX1KRQ",0,thr,1); similar_calls("OK1KRQ", "XK1KRQ",0,thr,1); similar_calls("OK1KRQ", "OK1Q",0,thr,1); similar_calls("OM3I", "OM3RLA",0,thr,1); similar_calls("OM3I", "OM3RL",0,thr,1); similar_calls("OM3I", "OM3R",0,thr,1); similar_calls("OM3RKA", "OM5MZ",0,thr,1); similar_calls("HG10P", "HG3A",0,thr,1); similar_calls("HG3A", "HG10P",0,thr,1); ST_STOP; return; #endif #if 0 GThread *thr; GError *gerr; gpointer ex; g_thread_init(NULL); thr=g_thread_try_new("test", func, NULL, 1,&gerr); ex=g_thread_join(thr); printf("thread exited %p\n", ex); return(0); #endif #if 0 { void *p; init_debug(); p=mem_alloc(10); p=mem_realloc(p, 20); g_free(p); free_debug(); check_memory_leaks(); exit(0); } #endif #if 0 char *s; g_thread_init(NULL); init_debug(); s=g_strdup(""); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("."); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("/"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("./"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("/."); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a./"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/./"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("./b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a./b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a//b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/../b"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("../b/c"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/.."); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); s=g_strdup("a/../"); printf("'%s' ", s); s=optimize_path(s); printf(" '%s'\n", s); g_free(s); exit(1); #endif //zfence_init(16, '\0', 0xee); #ifdef Z_MINGW // MessageBox(NULL, "Hello World, I'm Tucnak compiled under mingw", "Info", MB_OK); #endif #ifdef Z_UNIX_ANDROID starting_sbrk = (char *)sbrk(0); #endif #ifdef ANDROID __android_log_print(ANDROID_LOG_DEBUG, "Tucnak", "Tucnak is alive!!! (%s)", __FUNCTION__); android_main(argc, argv); #endif z_dump_init("tucnak.dmp", tucnak_crash, "Tucnak-" Z_PLATFORM " " VERSION, DDIR); zg_thread_set_name("Tucnak main thread"); ac = argc; av = (char **)argv; /* dbg("\n\n");*/ #if !GLIB_CHECK_VERSION(2, 32, 0) g_thread_init(NULL); #endif #ifdef __MINGW32__ init_mingw(); #endif zsel = zselect_init(redraw); zselect_msg_set(zsel, main_msg_handler); //zselect_start_profile(zsel, 0.099); init(); zselect_loop(zsel); terminate_all_subsystems(); sound(0); return retval; } #ifndef Z_MSC_MINGW void sigchld(void *arg, siginfo_t *siginfo, void *ctx) { int pid; pid = waitpid(-1, NULL, WNOHANG); dbg("sigchld pid=%d\n", pid); if (pid == sound_pid) abort_sound(); } #endif tucnak-4.04/src/inputln.c0000644000175000017500000004435012377166473012321 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdaemon.h" #include "inputln.h" #include "kbdbind.h" #include "kbd.h" #include "qsodb.h" #include "rc.h" #include "session.h" #include "subwin.h" #include "terminal.h" #include "tregex.h" #include "zosk.h" #define FREE_Cx if (c1) {g_free(c1); c1=NULL;}\ if (c2) {g_free(c2); c2=NULL;}\ if (c3) {g_free(c3); c3=NULL;} void draw_inputln(struct inputln *il, int sel){ /*dbg("draw_inputln (%d,%d)\n",il->x,il->y);*/ if (il->vpos + il->l <= il->cpos) il->vpos = il->cpos - il->l + 1; if (il->vpos > il->cpos) il->vpos = il->cpos; if (il->vpos < 0) il->vpos = 0; fill_area(il->x, il->y, il->l, 1, COL_INV); print_text(il->x, il->y, strlen(il->cdata + il->vpos) <= il->l ? strlen(il->cdata + il->vpos) : il->l, il->cdata + il->vpos, COL_INV); #ifdef Z_HAVE_SDL if (sdl && cfg->usetouch) print_text(il->x + il->l, il->y, 1, "\x19", COL_INV); #endif if (il->focused) { /* dbg("draw_inputln: set_cursor %d %d \n", il->x + il->cpos - il->vpos, il->y);*/ set_cursor(il->x + il->cpos - il->vpos, il->y, il->x + il->cpos - il->vpos, il->y); } } void clear_inputline(struct inputln *il){ //if (il->band && il->band->readonly) return; il->cpos = 0; memset(il->cdata,0,il->dlen); } static void il_hist_check_bounds(struct inputln *il){ if (il->hist_i < -1 ) il->hist_i = -1; if ((signed)il->hist_i >= (signed)il->history->len) il->hist_i = il->history->len - 1; } void il_add_to_history(struct inputln *il, char *s){ if (strlen(s)==0) return; g_ptr_array_add(il->history, g_strdup(s)); if (il->history->len == IL_HIST_LEN){ gpointer p; p = g_ptr_array_index(il->history, 0); g_free(p); g_ptr_array_remove_index(il->history, 0); } } static struct inputln *gil; void il_history_func (void *arg, void *unused){ int active; struct inputln *il; active=GPOINTER_TO_INT(arg); il=gil; if (active<0 || active>il->history->len) return; strncpy(il->cdata, (char *)g_ptr_array_index(il->history, active), il->dlen); il->cpos = strlen(il->cdata); redraw_later(); } /* vraci 0 v pripade neobslouzeno */ int inputln_func(struct inputln *il, struct event *ev){ static char callkst[EQSO_LEN]; int i; struct menu_item *mi; //dbg("inputln_func(%p,[%d,%d,%d,%d])\n",il,ev->ev,ev->x,ev->y,ev->b); switch (ev->ev) { case EV_INIT: /* dbg("inputln_func EV_INIT\n");*/ il->x = 20; il->y = term->y - cfg->loglines - 1; if (il->band && !ctest->oldcontest) il->y -= ctest->spypeers->len; il->l = 40; #ifdef Z_HAVE_SDL if (cfg->usetouch) il->l--; #endif il->dlen = 256; if (!il->cdata) il->cdata=(char*)g_malloc(il->dlen); memset(il->cdata,0,il->dlen); il->cpos = strlen(il->cdata); il->term = term; il->history = g_ptr_array_new(); il->hist_i = -1; il_readonly(il, il->readonly); draw_inputln(il,1);/*FIXME*/ case EV_RESIZE: if (il->sw){ il->x = il->sw->x; il->y = il->sw->y + il->sw->h; il->l = il->sw->w; #ifdef Z_HAVE_SDL if (cfg->usetouch) il->l--; #endif }else{ il->x = 20; il->y = term->y - cfg->loglines - 1; if (il->band && !ctest->oldcontest) il->y -= ctest->spypeers->len; } /*dbg("inputln_func RESIZE %p term->y=%d il->x=%d il->y=%d il->band=%p\n", il, term->y, il->x, il->y, il->band);*/ case EV_REDRAW: /* unreached for inputline in subwin */ /* dbg("inputln_func EV_REDRAW\n");*/ draw_inputln(il,1);/*FIXME*/ break; case EV_KBD: if ((ev->y & KBD_CTRL) && z_char_uc(ev->x) == 'V' && il->allow_ctrlv){ if (il->readonly) break; il->wasctrlv=1; goto dsp_f; }else{ if (il->wasctrlv){ il->wasctrlv=0; if (il->readonly) break; /* dbg("ctrl+%c\n", ev->x); */ if (strlen(il->cdata) < il->dlen - 1) { memmove(il->cdata + il->cpos + 1, il->cdata + il->cpos, strlen(il->cdata) - il->cpos + 1); if (ev->x=='[' || ev->x==']') il->cdata[il->cpos++] = ev->x; else il->cdata[il->cpos++] = tolower(ev->x)-'a'+1; } goto dsp_f; } } switch (kbd_action(KM_EDIT, ev)) { case ACT_RIGHT: if (il->readonly) break; if (il->cpos < strlen(il->cdata)) il->cpos++; goto dsp_f; case ACT_LEFT: if (il->readonly) break; if (il->cpos > 0) il->cpos--; goto dsp_f; case ACT_HOME: if (il->readonly) break; il->cpos = 0; goto dsp_f; case ACT_END: if (il->readonly) break; il->cpos = strlen(il->cdata); goto dsp_f; case ACT_BACKSPACE: if (il->readonly) break; if (il->cpos) { memmove(il->cdata + il->cpos - 1, il->cdata + il->cpos, strlen(il->cdata) - il->cpos + 1); il->cpos--; // if (aband) dbg("inputln_func: call_played='%s'\n", aband->call_played); if (il->band && il->band->tmpqsos[0].callsign == NULL && il->band->call_played == NULL && cwda && cwda->back && cfg->cwda_autgive > 0 && get_mode() == MOD_CW_CW){ cwda->back(cwda); } } goto dsp_f; case ACT_DELETE: if (il->readonly) break; if (il->cpos < strlen(il->cdata)) memmove(il->cdata + il->cpos, il->cdata + il->cpos + 1, strlen(il->cdata) - il->cpos + 1); goto dsp_f; case ACT_KILL_LINE: if (il->readonly) break; clear_inputline(il); #ifdef Z_HAVE_SDL if (gses->osk){ zosk_clear(gses->osk); } #endif goto dsp_f; case ACT_KILL_TO_BOL: if (il->readonly) break; memmove(il->cdata, il->cdata + il->cpos, strlen(il->cdata + il->cpos) + 1); il->cpos = 0; goto dsp_f; /* case ACT_KILL_TO_EOL: if (il->readonly) break; il->cdata[il->cpos] = 0; goto dsp_f; break;*/ case ACT_NEWCALL_KST: if (il->band) break; // only for subwin inputline if (il->readonly) break; strcpy(callkst, ""); input_field(NULL, CTEXT(T_CALLSIGN3), CTEXT(T_CALLSIGN_KST) , CTEXT(T_OK), CTEXT(T_CANCEL), il, NULL, 20, callkst, 0, 0, NULL, (void (*)(void *, char *)) newkst, NULL, 0); #ifdef Z_HAVE_SDL if (gses && cfg->usetouch){ if (gses->osk) zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, ZOSK_ENTERCLOSE | ZOSK_SENDENTER, il->cdata); zosk_portrait(gses->osk); } #endif goto dsp_f; break; case ACT_LASTCALL_KST: case ACT_KILL_TO_EOL: if (il->readonly) break; il->cdata[il->cpos] = 0; dbg("\ni=%d len=%d\n", il->hist_i, il->history->len); if (il->band) break; if (il->hist_i==-1 && strlen(il->cdata)>0){ il_add_to_history(il, il->cdata); il->hist_i++; } for (il->hist_i++; (signed)il->hist_i < (signed)il->history->len; il->hist_i++){ char *c, *c1=NULL, *c2=NULL, *c3=NULL; c = (char *)g_ptr_array_index(il->history, il->history->len - il->hist_i - 1); if (!c) continue; /* probably unreached */ dbg("regmatch('%s')\n", c); if (regmatch(c, "^/[cC][qQ] ([a-zA-Z0-9/-]{3,14})", &c1, &c2, &c3, NULL)==0){ char s[20]; dbg("c1=%s c2=%s c3=%s\n", c1, c2, c3); safe_strncpy(s, c2, sizeof(s)); z_str_uc(s); g_snprintf(il->cdata, il->dlen, "/cq %s ", s); FREE_Cx; break; } FREE_Cx; } il->cpos = strlen(il->cdata); #ifdef Z_HAVE_SDL if (gses && cfg->usetouch){ if (gses->osk) zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, ZOSK_ENTERCLOSE | ZOSK_SENDENTER, il->cdata); zosk_portrait(gses->osk); } #endif goto dsp_f; break; case ACT_PREV_HISTORY: if (il->readonly) break; if (il->hist_i==-1 && strlen(il->cdata)>0){ il_add_to_history(il, il->cdata); il->hist_i++; } il->hist_i++; il_hist_check_bounds(il); if (il->hist_i>=0) strncpy(il->cdata, (char *)g_ptr_array_index(il->history, il->history->len - il->hist_i - 1), il->dlen); else strcpy(il->cdata, ""); /* FIXME */ il->cpos = strlen(il->cdata); #ifdef Z_HAVE_SDL if (gses && cfg->usetouch){ if (gses->osk) zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, ZOSK_ENTERCLOSE | ZOSK_SENDENTER, il->cdata); zosk_portrait(gses->osk); } #endif goto dsp_f; break; case ACT_NEXT_HISTORY: if (il->readonly) break; il->hist_i--; il_hist_check_bounds(il); if (il->hist_i>=0) strncpy(il->cdata, (char *)g_ptr_array_index(il->history, il->history->len - il->hist_i - 1), il->dlen); else strcpy(il->cdata, ""); /* FIXME */ il->cpos = strlen(il->cdata); #ifdef Z_HAVE_SDL if (gses && cfg->usetouch){ if (gses->osk) zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, ZOSK_ENTERCLOSE | ZOSK_SENDENTER, il->cdata); zosk_portrait(gses->osk); } #endif goto dsp_f; break; case ACT_SHOW_HISTORY:{ show_history: if (il->readonly) break; gil=il; if (il->history->len==0) break; if (!(mi = new_menu(1))) break; for (i = 0; i < il->history->len; i++) { add_to_menu(&mi, (char *)g_ptr_array_index(il->history, i), "", "", il_history_func, GINT_TO_POINTER(i), 0); } set_window_ptr(gses->win,il->x,il->y-2-i); do_menu_selected(mi, GINT_TO_POINTER(0), il->history->len-1); }goto dsp_f; case ACT_COPY_CLIPBOARD: if (il->readonly) break; /* Copy to clipboard */ set_clipboard_text(il->cdata); break; /* We don't need to redraw */ case ACT_CUT_CLIPBOARD: if (il->readonly) break; /* Cut to clipboard */ set_clipboard_text(il->cdata); il->cdata[0] = 0; il->cpos = 0; goto dsp_f; case ACT_PASTE_CLIPBOARD: { if (il->readonly) break; /* Paste from clipboard */ /* unsigned char * clipboard = get_clipboard_text(); strncpy(il->cdata , clipboard, il->item->dlen); il->cdata[il->item->dlen - 1] = 0; il->cpos = strlen(il->cdata); g_free(clipboard);*/ goto dsp_f; } default: if (cfg->slashkey && *cfg->slashkey){ if (ev->x == '/') ev->x = *cfg->slashkey; else if (ev->x == *cfg->slashkey) ev->x = '/'; } if (ev->x >= ' ' && ev->x < 0x100 && !ev->y) { char c; if (il->readonly) break; if (strlen(il->cdata) < il->dlen - 1) { memmove(il->cdata + il->cpos + 1, il->cdata + il->cpos, strlen(il->cdata) - il->cpos + 1); c = ev->x; if (il->upconvert) c = z_char_uc(c); if (!il->valid_chars || strchr(il->valid_chars, c)!=NULL){ il->cdata[il->cpos++] = c; il->cdata[il->dlen-1] = '\0'; // if (il->band) dbg("inputln_func2: call_played='%s' agcall='%d'\n", il->band->call_played, il->band->agcall); if (il->band && il->band->tmpqsos[0].callsign == NULL && il->band->call_played == NULL && cwda && cwda->text && cfg->cwda_autgive > 0 && get_mode() == MOD_CW_CW){ if (il->cpos == cfg->cwda_autgive){ cwda->text(cwda, il->cdata); il->band->agcall = 1; il->band->iscall = 1; // dbg("inputln_func2: agcall='%d' iscall='%d'\n", il->band->agcall, il->band->iscall); } if (il->cpos > cfg->cwda_autgive){ char sss[2]; sss[0]=c; sss[1]='\0'; cwda->text(cwda, sss); } } } } goto dsp_f; } goto gh; dsp_f: draw_inputln(il,1); return 1; } gh: if (ev->x == KBD_ENTER) { if (il->readonly) return 1; if (!il->enter) return 1; /*dbg("inputln_func: KBD_ENTER '%s' \n",il->cdata);*/ il_add_to_history(il, il->cdata); il->hist_i=-1; il->enter(il->enterdata, il->cdata, 1); if (il->enter != process_input_no_contest) clear_inputline(il); draw_inputln(il,1); return 1; } break; case EV_MOUSE: if (ev->b & B_MOVE) break; #ifdef Z_HAVE_SDL if (gses && cfg->usetouch && ev->b & B_CLICK){ int flg = ZOSK_SENDENTER; if (abs(il->x + il->l - ev->x) < 2) goto show_history; if (gses->osk) zosk_free(gses->osk); if (!il->band) flg |= ZOSK_ENTERCLOSE; else flg |= ZOSK_CLEARENTER; if (il->upconvert) flg |= ZOSK_UPCONVERT; gses->osk = zosk_init(sdl->screen, flg, il->cdata); zosk_portrait(gses->osk); } #endif if (!cfg->usetouch){ if (ev->y != il->y || ev->x < il->x || ev->x >= il->x + il->l) return 0; if ((il->cpos = il->vpos + ev->x - il->x) > strlen(il->cdata)) il->cpos = strlen(il->cdata); } draw_inputln(il,1); break; case EV_ABORT: if (il->cdata) g_free(il->cdata); zg_ptr_array_free_all(il->history); break; } return 0; } void il_set_focus(struct inputln *il){ if (!il) return; /* subwins having no inputline */ //dbg("il_set_focus(%c %p)\n", il->band ? il->band->bandchar : ' ', il->sw); il->focused=1; } void il_unset_focus(struct inputln *il){ if (!il) return; //dbg("il_unset_focus(%c %p)\n", il->band ? il->band->bandchar : ' ', il->sw); il->focused=0; } void il_readonly(struct inputln *il, int ro){ il->readonly=ro; if (il->readonly) strncpy(il->cdata , VTEXT(T__RO_BAND), il->dlen); else strncpy(il->cdata , "", il->dlen); } void newkst(struct inputln *il, char *callkst){ if (!il || !callkst) return; z_str_uc(callkst); //g_snprintf(il->cdata, il->dlen, "/cq %s (%s) ", callkst, callkst); g_snprintf(il->cdata, il->dlen, "/cq %s ", callkst); // new format since abt. jun 2011 il->cpos = strlen(il->cdata); } void askkst(struct inputln *il, char *s){ if (!il) return; g_snprintf(il->cdata, il->dlen, "%s", s); il->cpos = strlen(il->cdata); } tucnak-4.04/src/kbd.h0000644000175000017500000000313212060116731011343 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __KBD_H #define __KBD_H #define BM_BUTT 3 #define BM_EBUTT 7 #define B_LEFT 1 #define B_MIDDLE 2 #define B_RIGHT 3 #define B_WHUP 4 #define B_WHDOWN 5 #define BM_ACT 0x38 #define B_DOWN 0 #define B_UP 8 #define B_DRAG 0x10 #define B_MOVE 0x20 #define B_CLICK 0x40 #define BM_BUTCL 0x47 #define KBD_ENTER 0x100 #define KBD_BS 0x101 #define KBD_TAB 0x102 #define KBD_ESC 0x103 #define KBD_LEFT 0x104 #define KBD_RIGHT 0x105 #define KBD_UP 0x106 #define KBD_DOWN 0x107 #define KBD_INS 0x108 #define KBD_DEL 0x109 #define KBD_HOME 0x10a #define KBD_END 0x10b #define KBD_PGUP 0x10c #define KBD_PGDN 0x10d #define KBD_F1 0x120 #define KBD_F2 0x121 #define KBD_F3 0x122 #define KBD_F4 0x123 #define KBD_F5 0x124 #define KBD_F6 0x125 #define KBD_F7 0x126 #define KBD_F8 0x127 #define KBD_F9 0x128 #define KBD_F10 0x129 #define KBD_F11 0x12a #define KBD_F12 0x12b #define KBD_CTRL_C 0x200 #define KBD_SHIFT 1 #define KBD_CTRL 2 #define KBD_ALT 4 void handle_trm(int, int, int, int, int); void free_all_itrms(void); void resize_terminal(void *); void dispatch_special( char *); void kbd_ctrl_c(void); int is_blocked(void); void itrm_safe_abort(void); #endif tucnak-4.04/src/icons.inc0000644000175000017500000066615612132501146012263 00000000000000/* Automatically generated by png2inc.pl */ const unsigned char icon_home32[818] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x04, 0x00, 0x00, 0x00, 0xd9, 0x73, 0xb2, 0x7f, 0x00, 0x00, 0x00, 0x02, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x87, 0x8f, 0xcc, 0xbf, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdc, 0x0b, 0x1b, 0x09, 0x1d, 0x14, 0xb3, 0x87, 0x14, 0x95, 0x00, 0x00, 0x02, 0xc3, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x95, 0x59, 0x48, 0x54, 0x61, 0x14, 0xc7, 0x7f, 0xdf, 0x38, 0xa9, 0x64, 0x51, 0x46, 0x05, 0xd1, 0xf6, 0x5c, 0x88, 0x2d, 0x18, 0x65, 0x41, 0x44, 0xfb, 0x4b, 0x0f, 0x41, 0xd0, 0x42, 0xf4, 0xd4, 0x8b, 0x45, 0x49, 0x64, 0x58, 0x91, 0x88, 0x15, 0x92, 0x95, 0x90, 0x3e, 0x44, 0x45, 0xd0, 0xbe, 0x47, 0x1b, 0x9a, 0xb8, 0x61, 0x59, 0x54, 0x28, 0x6d, 0x33, 0x36, 0xa6, 0xa5, 0x77, 0x54, 0x46, 0x41, 0x73, 0x9d, 0x31, 0x6d, 0xee, 0xcc, 0x3d, 0x3d, 0x4c, 0xe9, 0x1d, 0x99, 0xc9, 0xd6, 0xb7, 0xce, 0x79, 0xba, 0xe7, 0xbb, 0xff, 0xdf, 0x59, 0xee, 0xb9, 0x7c, 0xf0, 0xdf, 0xfe, 0xa5, 0x95, 0x00, 0x55, 0xb3, 0x5f, 0xc7, 0xc1, 0x83, 0xdf, 0x03, 0xa4, 0x45, 0x75, 0x3d, 0x31, 0xc4, 0x90, 0xce, 0x42, 0x22, 0xe4, 0xd7, 0xa4, 0x79, 0x80, 0x2d, 0xc1, 0xe3, 0xd6, 0xe5, 0xf9, 0x75, 0xed, 0x9c, 0x57, 0xdc, 0xed, 0x95, 0x33, 0x02, 0xd1, 0x80, 0xdd, 0xfa, 0xb1, 0x3c, 0x1f, 0x70, 0xee, 0xf3, 0x88, 0xe7, 0xcb, 0xf1, 0x6d, 0x28, 0x78, 0xb1, 0xae, 0x47, 0x3c, 0xf2, 0x31, 0x09, 0xb4, 0x5d, 0xad, 0x25, 0xad, 0xc5, 0xcd, 0x67, 0x87, 0xc9, 0x9f, 0x12, 0xe9, 0x2a, 0xef, 0x11, 0x67, 0x5d, 0xe2, 0xbc, 0xef, 0x91, 0x13, 0x93, 0x5b, 0xea, 0xbb, 0xa5, 0xe1, 0x7a, 0x5b, 0x5f, 0x97, 0xd1, 0x25, 0x3d, 0x92, 0x13, 0x1f, 0x46, 0xfa, 0x00, 0x78, 0x31, 0xb7, 0xa5, 0xa7, 0x5d, 0xca, 0x6e, 0x30, 0x16, 0x8a, 0xa6, 0x34, 0x16, 0x36, 0xe4, 0xdd, 0x9b, 0x00, 0xf0, 0xfe, 0xfc, 0x27, 0x69, 0x93, 0x36, 0x69, 0x93, 0x76, 0x39, 0x36, 0x27, 0xa4, 0xfc, 0x2e, 0x60, 0x4f, 0x75, 0x89, 0xcb, 0x9b, 0xb5, 0x03, 0x0b, 0x54, 0xae, 0x6d, 0x12, 0x97, 0xe1, 0x32, 0x9a, 0xfc, 0x15, 0x2b, 0x01, 0x1e, 0xad, 0x6f, 0x12, 0x97, 0xe1, 0x92, 0x16, 0xc9, 0x0a, 0x0d, 0x48, 0x1e, 0xe1, 0x28, 0x73, 0x8a, 0x4d, 0x5b, 0x34, 0x1f, 0xc0, 0x76, 0xca, 0x29, 0x9a, 0xa1, 0x89, 0x26, 0x9a, 0xe1, 0x94, 0xb7, 0xc7, 0x01, 0x72, 0xa7, 0xbe, 0x77, 0x6a, 0xd2, 0x20, 0x39, 0x73, 0x87, 0x48, 0x6f, 0x01, 0xa5, 0xb3, 0x1c, 0xdd, 0x1f, 0x24, 0xef, 0x36, 0xb1, 0x70, 0x35, 0xd6, 0xee, 0xa8, 0x95, 0x1a, 0x93, 0xd7, 0x8a, 0xed, 0xd5, 0xe9, 0x51, 0x00, 0x15, 0x97, 0x6a, 0xa5, 0xfa, 0x73, 0xd9, 0x7c, 0xb8, 0xf9, 0x5d, 0x7e, 0x0d, 0x78, 0x9a, 0x62, 0x97, 0x2a, 0xfd, 0x50, 0x32, 0x16, 0x28, 0x5d, 0xf6, 0x56, 0xb7, 0x1b, 0x76, 0x19, 0xe2, 0xc6, 0x9b, 0xbe, 0xe2, 0x44, 0x80, 0xfc, 0x8d, 0x36, 0xb1, 0xcb, 0xd3, 0x3d, 0x70, 0x19, 0x50, 0x97, 0xe9, 0x8d, 0x8a, 0x7b, 0x18, 0xbd, 0xb4, 0xb7, 0xf1, 0xc0, 0x86, 0xf2, 0xe7, 0xf0, 0xf8, 0x48, 0x4c, 0x2a, 0x82, 0x0a, 0xd1, 0xa3, 0xa0, 0x3c, 0x69, 0x4b, 0x0e, 0x43, 0xf6, 0xf4, 0x85, 0xe5, 0x91, 0xd3, 0xfa, 0x0b, 0xee, 0xac, 0x79, 0xe2, 0x57, 0x50, 0xb2, 0x27, 0xe6, 0xa8, 0x76, 0x77, 0xd3, 0x56, 0x3a, 0x4e, 0x8e, 0x9c, 0xf9, 0x68, 0xc4, 0x3c, 0x09, 0x2d, 0x07, 0x10, 0xa5, 0xbc, 0x8f, 0xcb, 0x56, 0x64, 0xe8, 0x8a, 0xa2, 0xab, 0xa3, 0x36, 0x36, 0x25, 0xaf, 0xcf, 0x55, 0x17, 0xd9, 0xc2, 0xee, 0xc5, 0xd9, 0xcf, 0xf0, 0xdd, 0x9c, 0x14, 0xab, 0x45, 0x44, 0x0d, 0xbf, 0xa7, 0x7e, 0xb7, 0x63, 0xfa, 0xbb, 0xce, 0x33, 0x64, 0x2e, 0xd8, 0x5f, 0x4d, 0xb7, 0x82, 0x89, 0xb4, 0x32, 0x1a, 0x37, 0xf7, 0x57, 0x47, 0x16, 0xfc, 0xcc, 0xa2, 0x2b, 0x6a, 0x96, 0x27, 0x97, 0xc6, 0x63, 0x03, 0xc0, 0x0a, 0xad, 0x80, 0x1b, 0xf0, 0xca, 0xcf, 0xfd, 0x32, 0x0a, 0x1d, 0xbe, 0xc9, 0xc1, 0x3a, 0x78, 0xa0, 0x63, 0x0c, 0xe9, 0x97, 0x4e, 0xd1, 0x95, 0xc8, 0x78, 0x22, 0x82, 0x01, 0x7e, 0xd3, 0x93, 0x09, 0xe0, 0x0d, 0x7a, 0x4f, 0x29, 0xc7, 0xde, 0xcc, 0x93, 0xe8, 0x00, 0x17, 0xee, 0x59, 0x56, 0x99, 0x01, 0xbe, 0xd0, 0x00, 0x5f, 0x10, 0xd9, 0xaf, 0x65, 0x1e, 0xb3, 0x1a, 0x3e, 0x20, 0x9d, 0xfe, 0x24, 0x6b, 0x7d, 0xb8, 0x0a, 0x2c, 0xe6, 0x16, 0xbc, 0x26, 0xef, 0xef, 0xc3, 0x08, 0x64, 0xca, 0x80, 0x5e, 0x6f, 0xd0, 0x59, 0x98, 0x16, 0x74, 0xcc, 0x43, 0xf4, 0x05, 0x75, 0xed, 0x0d, 0xfe, 0x90, 0xe1, 0x5a, 0x30, 0xc2, 0x00, 0x08, 0x8c, 0x62, 0x58, 0x80, 0xf2, 0x9b, 0x56, 0x70, 0x28, 0xc0, 0xbc, 0x9c, 0x46, 0x68, 0x40, 0xb4, 0xad, 0x1b, 0x35, 0xb0, 0xc6, 0xc1, 0x00, 0xdf, 0x20, 0x40, 0x94, 0x7a, 0xe3, 0x0c, 0x39, 0xc4, 0x9d, 0xcd, 0x1c, 0xf4, 0x29, 0x1f, 0x01, 0xf7, 0x5b, 0x83, 0x8b, 0x1e, 0x88, 0xab, 0xe6, 0x9c, 0xc2, 0xba, 0x90, 0x15, 0xa4, 0x92, 0x96, 0xbe, 0xfd, 0x8a, 0x25, 0x21, 0x30, 0xcb, 0xfe, 0x3e, 0x53, 0x96, 0xae, 0xce, 0xcd, 0x46, 0xa0, 0x6e, 0x55, 0xff, 0x21, 0xff, 0xe5, 0x38, 0x3a, 0xfe, 0xe4, 0xc2, 0x19, 0xf3, 0x77, 0xef, 0xaf, 0xaf, 0x45, 0xf6, 0x79, 0x67, 0xda, 0x48, 0xc0, 0x63, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_key32[1075] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x02, 0x00, 0x00, 0x00, 0xfc, 0x18, 0xed, 0xa3, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdd, 0x04, 0x0d, 0x14, 0x0f, 0x11, 0x93, 0x99, 0xec, 0xdd, 0x00, 0x00, 0x03, 0xd2, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x96, 0xcb, 0x6f, 0x1b, 0x55, 0x14, 0x87, 0xcf, 0x9d, 0xb9, 0x63, 0x8f, 0x9d, 0x4e, 0x3c, 0x56, 0xac, 0x84, 0xd8, 0xb1, 0x63, 0xbb, 0x25, 0x4d, 0x10, 0x2f, 0x89, 0xa4, 0xb4, 0x05, 0x5a, 0x01, 0xa5, 0x08, 0xb5, 0x42, 0x10, 0x01, 0x5d, 0x21, 0xa1, 0x02, 0x52, 0x25, 0x96, 0xa0, 0x42, 0xf9, 0x03, 0x58, 0x50, 0x55, 0x14, 0x24, 0x56, 0xa8, 0x80, 0x84, 0x10, 0x82, 0x2e, 0x10, 0x0b, 0x48, 0x83, 0x54, 0x21, 0x85, 0x3c, 0x8a, 0x5b, 0x41, 0x12, 0xa7, 0x75, 0xdd, 0xd6, 0x6e, 0x12, 0xe3, 0xd4, 0xa9, 0xe2, 0x47, 0x3c, 0xb6, 0xc7, 0xe3, 0x99, 0xb9, 0x87, 0xc5, 0x54, 0x4e, 0xf3, 0x20, 0x69, 0x71, 0xbb, 0x40, 0xea, 0x59, 0xdd, 0xc7, 0x39, 0xf3, 0xcd, 0x3d, 0xe7, 0x37, 0xe7, 0x0e, 0xc0, 0xff, 0xdd, 0x48, 0x23, 0xc1, 0x3c, 0xcf, 0x77, 0xf7, 0xf4, 0xf8, 0xfd, 0x01, 0x86, 0xb8, 0x62, 0x8b, 0xe3, 0xb8, 0xab, 0xc9, 0xc4, 0xa5, 0x78, 0xbc, 0x21, 0x80, 0xaf, 0xa3, 0xe3, 0xdb, 0xef, 0x4f, 0x86, 0x42, 0x61, 0xc6, 0xd8, 0x8a, 0x2d, 0x4a, 0xf9, 0xe8, 0xc4, 0xe4, 0xcb, 0x2f, 0xee, 0xa3, 0x8d, 0x00, 0x04, 0x2a, 0x74, 0x76, 0x06, 0x79, 0x9e, 0xc7, 0xd5, 0x27, 0xe0, 0x69, 0x20, 0x18, 0xe4, 0x38, 0x8e, 0x6f, 0x04, 0xa0, 0x28, 0xca, 0xf5, 0xeb, 0xf3, 0x4f, 0x3e, 0xb5, 0x8b, 0x52, 0x8a, 0x88, 0x84, 0x10, 0x00, 0x40, 0x44, 0x41, 0x10, 0xf2, 0xd9, 0xec, 0x91, 0xc3, 0xef, 0xc6, 0x2e, 0x5c, 0x68, 0x08, 0x80, 0x88, 0x53, 0xd1, 0x49, 0x9e, 0xf2, 0xbd, 0x7d, 0xdb, 0x38, 0x8e, 0xab, 0x17, 0x26, 0x35, 0x3b, 0xfb, 0xce, 0xa1, 0xb7, 0x7f, 0x3b, 0x7d, 0xfa, 0xce, 0xe8, 0x44, 0x92, 0x9a, 0x4f, 0xfe, 0xf8, 0xd3, 0xcc, 0xdc, 0xfc, 0x74, 0x3a, 0x33, 0x9d, 0xce, 0xc4, 0x93, 0x33, 0x6f, 0x1c, 0x7c, 0x73, 0x29, 0x57, 0x8d, 0x03, 0x14, 0xa5, 0x38, 0x3a, 0x32, 0x5c, 0xd3, 0x34, 0x00, 0x20, 0x84, 0x24, 0x13, 0x57, 0x06, 0x7e, 0xf9, 0xf9, 0x4e, 0x02, 0x00, 0xe0, 0x5c, 0x24, 0x52, 0x51, 0x55, 0x00, 0x40, 0xc6, 0x52, 0xa9, 0xd4, 0x7c, 0x26, 0xb3, 0x24, 0xa7, 0xae, 0xad, 0x5b, 0x57, 0x66, 0x96, 0xe1, 0xe5, 0xcb, 0x97, 0x6e, 0x0b, 0x90, 0xc9, 0x5c, 0x33, 0x74, 0x1d, 0x00, 0x4c, 0x66, 0x5e, 0x9b, 0x9b, 0x5b, 0xa6, 0xd7, 0x6f, 0xbe, 0xfb, 0xa1, 0xfe, 0xbd, 0x21, 0x00, 0x21, 0xb0, 0x98, 0x2f, 0x3c, 0xf7, 0xcc, 0xee, 0x75, 0x1e, 0xb7, 0x67, 0xef, 0xf3, 0x5e, 0x9f, 0x17, 0x19, 0xfe, 0x3a, 0x78, 0xca, 0x7a, 0x59, 0xd3, 0x30, 0x2d, 0x9d, 0x32, 0x86, 0xc5, 0xc5, 0xc5, 0x65, 0x80, 0xb6, 0xb6, 0x36, 0x2b, 0x77, 0x88, 0x16, 0x02, 0x5c, 0x2e, 0x59, 0x92, 0x24, 0x45, 0x51, 0xfe, 0x0d, 0xf0, 0xea, 0x81, 0x03, 0xcf, 0xee, 0xd9, 0x6b, 0x9a, 0xe6, 0xf8, 0x5f, 0x7f, 0x5a, 0x00, 0xa7, 0xd3, 0x69, 0xa9, 0x88, 0x00, 0xd8, 0x6c, 0xc2, 0xb2, 0x56, 0x31, 0x9d, 0xce, 0x2c, 0x2c, 0x2c, 0x7c, 0xfe, 0xd9, 0xf1, 0xae, 0xae, 0xae, 0xfe, 0x57, 0x5e, 0xb3, 0x8b, 0x22, 0x22, 0x0e, 0x9e, 0x1a, 0x30, 0x0d, 0x03, 0x2c, 0x61, 0x03, 0x12, 0x20, 0x00, 0x04, 0x38, 0x02, 0x00, 0xa6, 0xa1, 0x3f, 0xd6, 0xdb, 0x77, 0x5f, 0xbb, 0x17, 0x11, 0x87, 0x7f, 0x1f, 0x2a, 0x97, 0x14, 0x00, 0x68, 0x6e, 0x76, 0xf5, 0x3d, 0xbe, 0xdd, 0x66, 0xb3, 0x31, 0xc6, 0x62, 0xb1, 0xf3, 0x63, 0x23, 0x23, 0xa2, 0x28, 0xce, 0x4e, 0xcf, 0x7c, 0x79, 0xe2, 0x0b, 0x8a, 0x00, 0x25, 0x45, 0xf9, 0x3b, 0x95, 0x92, 0x24, 0x49, 0x55, 0x55, 0xbb, 0x28, 0x02, 0xc0, 0x8e, 0x9d, 0x4f, 0x68, 0xd5, 0x2a, 0x10, 0xc2, 0x11, 0x22, 0x3a, 0x44, 0x4a, 0x69, 0xad, 0xa6, 0x57, 0x55, 0x15, 0x08, 0x41, 0x64, 0xb2, 0x4b, 0xb6, 0x0e, 0xdd, 0xdb, 0xb7, 0x0d, 0x19, 0x03, 0x42, 0x90, 0xb1, 0x72, 0xb9, 0x54, 0x2e, 0x01, 0x00, 0xf8, 0xfd, 0x9d, 0xe1, 0xd7, 0x37, 0x0b, 0x82, 0x6d, 0x6c, 0x74, 0xe4, 0xeb, 0xaf, 0x4e, 0x50, 0x02, 0xd0, 0xe1, 0xf7, 0xbf, 0xf7, 0xfe, 0x07, 0x9b, 0x36, 0x49, 0xb2, 0xdb, 0x6d, 0x9d, 0xeb, 0xd3, 0x4f, 0x8e, 0x8d, 0x0c, 0x0d, 0x51, 0x41, 0x00, 0x80, 0x97, 0xfa, 0xfb, 0x65, 0x59, 0x9e, 0x18, 0x1f, 0x3f, 0x77, 0x36, 0x42, 0x29, 0x2d, 0x97, 0xca, 0x1f, 0x7d, 0x7c, 0x74, 0xfb, 0x8e, 0x9d, 0x8c, 0xb1, 0xe3, 0xc7, 0x8e, 0x5e, 0x4d, 0x26, 0x79, 0x9e, 0x5a, 0xb9, 0x5d, 0x92, 0x09, 0x01, 0x8e, 0x70, 0xf9, 0x5c, 0xce, 0x30, 0x0c, 0x8a, 0x88, 0x94, 0xd2, 0x07, 0x1e, 0x7c, 0x08, 0x19, 0x63, 0x8c, 0x59, 0x5d, 0xa5, 0x5c, 0x2a, 0xc5, 0xe3, 0x17, 0x2d, 0xef, 0x87, 0x1f, 0x79, 0x34, 0xbc, 0x39, 0x9c, 0xcd, 0x66, 0x2f, 0xc6, 0x62, 0xd6, 0x4a, 0xa5, 0x5c, 0x11, 0x04, 0xc1, 0x30, 0x8c, 0xd1, 0xe1, 0xe1, 0xa9, 0xa9, 0xe8, 0xfa, 0x02, 0xa3, 0x56, 0x9e, 0x4d, 0xc3, 0xb8, 0x51, 0x13, 0x42, 0x10, 0xd1, 0xe7, 0xf5, 0xd5, 0x3d, 0xd2, 0xe9, 0x94, 0xd7, 0xe7, 0x6d, 0x6d, 0x6d, 0xad, 0xaf, 0x24, 0x93, 0x57, 0x22, 0x67, 0xc6, 0x4c, 0xd3, 0xd4, 0x6a, 0xda, 0x86, 0x0a, 0x5e, 0xbb, 0x9b, 0x4a, 0x2e, 0x57, 0x7d, 0xbc, 0x65, 0xcb, 0xfd, 0x55, 0x55, 0x4d, 0x26, 0x12, 0xd6, 0xb4, 0xa5, 0xc5, 0x33, 0x39, 0x31, 0x9e, 0x4c, 0x24, 0x10, 0x51, 0x96, 0xdd, 0xff, 0x11, 0xd0, 0xde, 0xde, 0x5e, 0x1f, 0xe7, 0x72, 0x39, 0x97, 0xcb, 0xa5, 0x56, 0x2a, 0xd6, 0x34, 0x10, 0xec, 0xdc, 0xb5, 0xfb, 0xe9, 0x42, 0x3e, 0xc7, 0x10, 0xbb, 0x7b, 0xba, 0xcf, 0x46, 0xfe, 0xd8, 0x00, 0x50, 0x5a, 0x4b, 0xef, 0x2d, 0x2d, 0x1e, 0xbf, 0x3f, 0xd0, 0xd4, 0xd4, 0x64, 0x98, 0x86, 0xc7, 0xe3, 0x09, 0x86, 0xc2, 0x1c, 0xc7, 0xe5, 0x0b, 0x05, 0x42, 0x88, 0xdf, 0x1f, 0xb0, 0xa4, 0x59, 0xc8, 0xe5, 0x02, 0xc1, 0x50, 0x30, 0x18, 0x12, 0x45, 0xc7, 0x1a, 0x8d, 0x16, 0xd0, 0xe9, 0x74, 0x46, 0xa3, 0x93, 0xe4, 0xe6, 0xce, 0x77, 0xd3, 0x5d, 0x48, 0x25, 0x49, 0xb2, 0x0a, 0xae, 0xeb, 0x35, 0xd3, 0x64, 0x3c, 0xcf, 0x0b, 0x36, 0x01, 0x10, 0x0c, 0xd3, 0x30, 0x74, 0x83, 0x10, 0x20, 0x84, 0x33, 0x99, 0xe9, 0x74, 0x38, 0x57, 0xdf, 0x36, 0x00, 0xa0, 0xeb, 0xfa, 0x0b, 0xfb, 0xf6, 0x1f, 0x7a, 0xeb, 0x20, 0x1d, 0x1c, 0x18, 0xb8, 0x1b, 0x77, 0x7d, 0xb5, 0x5a, 0x95, 0xdd, 0x6e, 0x83, 0x99, 0xd4, 0x6e, 0xb7, 0xdf, 0x0d, 0x00, 0x22, 0x52, 0xca, 0x13, 0x00, 0xaa, 0x69, 0xda, 0xed, 0x46, 0xde, 0xe8, 0x20, 0xeb, 0x9a, 0xa6, 0x69, 0x8c, 0x21, 0x00, 0xd0, 0xc3, 0x47, 0x3e, 0xd4, 0x75, 0xfd, 0x56, 0x62, 0x10, 0x51, 0x14, 0x45, 0x87, 0xc3, 0x51, 0x2c, 0x16, 0x57, 0xff, 0x46, 0xac, 0x76, 0x96, 0xdd, 0x6e, 0xdc, 0xc8, 0xed, 0x9e, 0xdd, 0xb3, 0x5b, 0xb1, 0x7f, 0x00, 0xbf, 0x60, 0xbd, 0x9f, 0x08, 0x23, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_mast[334] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x18, 0x08, 0x06, 0x00, 0x00, 0x00, 0x2c, 0xee, 0x07, 0x13, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdb, 0x0a, 0x15, 0x0e, 0x0b, 0x0d, 0x0e, 0x81, 0x71, 0x3c, 0x00, 0x00, 0x00, 0xce, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0xad, 0x93, 0xbd, 0x0e, 0x83, 0x30, 0x0c, 0x84, 0xef, 0xa2, 0x0e, 0x28, 0x19, 0x78, 0x4d, 0x1e, 0x98, 0xc7, 0x80, 0x81, 0x22, 0x65, 0x01, 0xe4, 0x0e, 0x69, 0x82, 0xf3, 0x03, 0x2a, 0x52, 0xbd, 0x10, 0xcc, 0x17, 0x9f, 0x7d, 0x32, 0x44, 0x08, 0xc1, 0x19, 0x54, 0xe7, 0x2c, 0x6f, 0x62, 0x42, 0x44, 0x34, 0x20, 0xad, 0x3c, 0xc3, 0xbb, 0x80, 0x0c, 0x05, 0xd5, 0xc7, 0x2c, 0x47, 0x12, 0x06, 0x0f, 0xe2, 0x39, 0x4c, 0x32, 0xc9, 0x47, 0xe9, 0xb2, 0x05, 0x3d, 0xb9, 0x9e, 0x3a, 0x03, 0x2e, 0x5c, 0xd2, 0xac, 0x24, 0x37, 0xe6, 0x79, 0xbe, 0xf7, 0xb4, 0x51, 0x99, 0x15, 0xbc, 0x58, 0x5b, 0xc9, 0xf4, 0xde, 0x27, 0xce, 0x00, 0xc0, 0x38, 0x8e, 0x15, 0xf0, 0x85, 0x00, 0x00, 0xc3, 0x30, 0xd4, 0xbd, 0x2e, 0xd6, 0x4a, 0xeb, 0x79, 0xeb, 0x73, 0xef, 0x3d, 0x5a, 0x2d, 0xb1, 0x70, 0xa1, 0x06, 0xc8, 0xbc, 0xe7, 0x16, 0xd0, 0xf0, 0x39, 0xc0, 0xeb, 0xba, 0x66, 0x60, 0xa9, 0x30, 0x4d, 0xd3, 0x09, 0xef, 0xfb, 0x5e, 0x55, 0xd6, 0x17, 0xba, 0xae, 0x03, 0x00, 0xbc, 0x00, 0x60, 0xdb, 0x36, 0x00, 0xc0, 0xdb, 0xb9, 0x34, 0xd8, 0xdb, 0xb9, 0x04, 0x1f, 0xc7, 0x91, 0xef, 0x42, 0xb4, 0x4a, 0xd9, 0x95, 0xce, 0x51, 0xc5, 0xfc, 0x6a, 0x5b, 0xb6, 0xa2, 0x77, 0x17, 0xca, 0x15, 0xfd, 0xbf, 0xcf, 0x57, 0xbf, 0x7d, 0x93, 0xfb, 0x00, 0x37, 0x82, 0x7d, 0x4c, 0xa0, 0x9d, 0x03, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_norec[3817] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd7, 0x02, 0x18, 0x0e, 0x17, 0x04, 0x24, 0xf2, 0xc7, 0xa2, 0x00, 0x00, 0x0e, 0x76, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x9a, 0x4b, 0x8c, 0x5c, 0x55, 0x7a, 0xc7, 0x7f, 0xe7, 0xdc, 0x57, 0x75, 0xdd, 0x7a, 0xf6, 0xfb, 0xe1, 0x07, 0xc6, 0x80, 0x6d, 0x0c, 0xc3, 0x63, 0x12, 0x45, 0x19, 0x25, 0x99, 0x15, 0x11, 0xbb, 0x48, 0xc9, 0x02, 0x6f, 0x22, 0x36, 0x11, 0x9a, 0x0d, 0x61, 0xc5, 0x62, 0xb2, 0x88, 0x98, 0x04, 0x85, 0x2c, 0x3c, 0x0a, 0x0a, 0xd2, 0x0c, 0x22, 0x43, 0xc4, 0x26, 0x12, 0x0c, 0x68, 0x50, 0xb2, 0x08, 0x56, 0x90, 0x8d, 0x64, 0x61, 0x0d, 0x83, 0x14, 0x32, 0xb4, 0x65, 0xc0, 0x40, 0x03, 0xed, 0xee, 0xea, 0xae, 0x7e, 0x54, 0x77, 0x55, 0x57, 0x57, 0xd5, 0xad, 0x7b, 0xef, 0x39, 0x27, 0x8b, 0x7b, 0xaa, 0x5d, 0xd8, 0xed, 0x07, 0x93, 0x64, 0x14, 0xae, 0x74, 0x55, 0x55, 0xf7, 0x71, 0xce, 0xff, 0xff, 0x7d, 0xdf, 0xf9, 0xbe, 0xef, 0x7c, 0x5f, 0xc1, 0xb7, 0xfc, 0x10, 0xfb, 0x5d, 0x34, 0xd9, 0xf5, 0xe1, 0x7b, 0x46, 0x80, 0xf9, 0x56, 0x10, 0x30, 0x20, 0x81, 0x00, 0x70, 0xed, 0x7d, 0x03, 0xa4, 0x40, 0x5f, 0x80, 0xfe, 0x6d, 0x01, 0xb3, 0x38, 0xe4, 0x10, 0x46, 0x03, 0xe8, 0x6b, 0x31, 0x88, 0x7d, 0x5e, 0x0a, 0xed, 0x59, 0x00, 0x7c, 0x0b, 0x7e, 0x17, 0xe8, 0x00, 0xbb, 0x02, 0xd4, 0x6f, 0x09, 0x7c, 0x30, 0x24, 0x48, 0x06, 0x42, 0xbc, 0x56, 0x90, 0xe2, 0x1a, 0xb3, 0x09, 0x81, 0x2a, 0x30, 0x0b, 0xcc, 0xd9, 0xef, 0x3d, 0xa0, 0x0e, 0xac, 0x02, 0x9b, 0xc0, 0xd6, 0xff, 0x25, 0x09, 0x03, 0x9e, 0x15, 0x5e, 0x19, 0xa8, 0x00, 0x23, 0x64, 0xf3, 0xb5, 0x81, 0x26, 0xb0, 0x03, 0xf4, 0x06, 0x24, 0xdc, 0xa1, 0x77, 0x7d, 0xfb, 0xf0, 0x24, 0x70, 0x1f, 0xf0, 0x5d, 0x60, 0xca, 0xbe, 0xf8, 0x39, 0x70, 0xc9, 0x7e, 0x0a, 0x03, 0x8d, 0x6f, 0x48, 0xc2, 0xdc, 0x68, 0xbd, 0x5d, 0xf3, 0x90, 0x6f, 0x81, 0x4f, 0x02, 0x87, 0x80, 0x03, 0xc0, 0x28, 0x90, 0x00, 0x35, 0x60, 0xc1, 0x3e, 0xaa, 0x8d, 0xd5, 0xc4, 0x30, 0x01, 0x09, 0xe4, 0x80, 0x09, 0xe0, 0x24, 0xf0, 0xfb, 0x76, 0x80, 0xa6, 0x1d, 0x70, 0x60, 0x52, 0x8e, 0x1d, 0x60, 0xfb, 0x36, 0x49, 0x98, 0x33, 0x67, 0xce, 0xf0, 0xe8, 0xa3, 0x8f, 0x9a, 0x5b, 0x38, 0x8e, 0xc0, 0x82, 0x3d, 0x00, 0xdc, 0x05, 0x9c, 0x00, 0xee, 0xb1, 0x42, 0x8c, 0x81, 0x8f, 0xed, 0xa3, 0x1d, 0x6b, 0x15, 0x09, 0xd7, 0x10, 0x10, 0x96, 0x44, 0x1e, 0x28, 0xda, 0xc1, 0x2a, 0x64, 0x2a, 0x15, 0x43, 0xf6, 0x68, 0xec, 0xcb, 0xdc, 0x06, 0x09, 0x73, 0xf6, 0xec, 0x59, 0xb4, 0xd6, 0x9c, 0x39, 0x73, 0x86, 0x97, 0x5f, 0x7e, 0x99, 0xd7, 0x5f, 0x7f, 0xdd, 0xec, 0x63, 0xbe, 0x81, 0x95, 0xfc, 0x9c, 0x15, 0xde, 0x43, 0xc0, 0xbd, 0x56, 0x0b, 0xe3, 0x76, 0x3e, 0x03, 0x2c, 0x02, 0x5f, 0x02, 0x1b, 0x83, 0xf7, 0xdd, 0x6b, 0xd4, 0x9c, 0x00, 0x5d, 0x2b, 0xf5, 0x0d, 0x4b, 0x26, 0x00, 0x66, 0xac, 0x76, 0x20, 0xb3, 0x3d, 0x6d, 0x07, 0xd0, 0x06, 0x5a, 0x37, 0x20, 0x61, 0x2e, 0x5c, 0xb8, 0x80, 0x52, 0x8a, 0x24, 0x49, 0x78, 0xe9, 0xa5, 0x97, 0x90, 0x52, 0xf2, 0xd8, 0x63, 0x8f, 0x01, 0xf0, 0xda, 0x6b, 0xaf, 0x19, 0x3b, 0x69, 0xce, 0x82, 0x9c, 0xb3, 0xa0, 0x7f, 0x07, 0x78, 0x10, 0xb8, 0xc3, 0xae, 0xc9, 0x81, 0xd0, 0xbc, 0x21, 0xcf, 0xb8, 0x77, 0x0c, 0x13, 0x50, 0x56, 0x35, 0x1b, 0xd6, 0xd6, 0x66, 0xac, 0xc9, 0x1c, 0xb2, 0x03, 0x95, 0xed, 0xa0, 0xca, 0xaa, 0x54, 0x5b, 0xcf, 0x20, 0x0c, 0x34, 0xaf, 0x21, 0x61, 0x3e, 0xf8, 0xe0, 0x03, 0x94, 0x52, 0xc4, 0x71, 0xcc, 0x0b, 0x2f, 0xbc, 0x40, 0xb1, 0x58, 0x44, 0xa9, 0xec, 0x91, 0x34, 0x4d, 0x39, 0x75, 0xea, 0x14, 0x6e, 0x9a, 0x32, 0xf3, 0xc6, 0x1b, 0xd1, 0x21, 0xe0, 0x57, 0xf0, 0x17, 0x76, 0xdd, 0xdd, 0x67, 0xe7, 0x1c, 0xb5, 0x60, 0x77, 0x81, 0x35, 0x60, 0x05, 0x68, 0x58, 0x01, 0xa7, 0x96, 0xd4, 0x55, 0x02, 0x02, 0x62, 0xeb, 0xbe, 0x36, 0x80, 0xcb, 0x40, 0xc9, 0x6a, 0x20, 0x37, 0x44, 0x76, 0xd2, 0x0e, 0x9a, 0x0c, 0xc5, 0x08, 0x09, 0x98, 0x21, 0x4d, 0x98, 0x4b, 0x97, 0x2e, 0xa1, 0x75, 0xe6, 0xe9, 0x9e, 0x7f, 0xfe, 0x79, 0xa6, 0xa6, 0xa6, 0x68, 0x34, 0x1a, 0x7c, 0xf5, 0xd5, 0x57, 0xac, 0xae, 0xae, 0xd2, 0x68, 0x34, 0x70, 0x92, 0x84, 0x72, 0x92, 0x70, 0x54, 0x08, 0xfe, 0x68, 0x74, 0x94, 0x97, 0x1a, 0x8d, 0x9f, 0xdd, 0x9f, 0x2d, 0xbc, 0x15, 0x2b, 0x30, 0x65, 0xe7, 0x59, 0xb7, 0x78, 0x2e, 0x59, 0x13, 0x6a, 0x59, 0x77, 0x7a, 0x9d, 0x17, 0x42, 0x40, 0x64, 0x32, 0xf3, 0xb9, 0x62, 0x3d, 0x52, 0x6e, 0x68, 0x0d, 0x4c, 0x5b, 0x73, 0xaa, 0xd8, 0x45, 0x26, 0x87, 0x08, 0x00, 0x38, 0x2e, 0xac, 0x7f, 0x78, 0xe9, 0x12, 0xae, 0xeb, 0x92, 0xa6, 0x29, 0xcf, 0x3d, 0xf7, 0x1c, 0x47, 0x8e, 0x1c, 0xe1, 0xe2, 0xc5, 0x8b, 0xd4, 0x6a, 0x35, 0xba, 0xdd, 0x2e, 0x46, 0x6b, 0xaa, 0x41, 0xc0, 0x88, 0xd6, 0xcc, 0x6a, 0xcd, 0x09, 0xad, 0xb9, 0xbb, 0xd1, 0xe0, 0x3e, 0x29, 0x39, 0xec, 0x38, 0x44, 0x49, 0x32, 0x4b, 0x36, 0xf1, 0xda, 0x10, 0xf8, 0x0f, 0x81, 0x8b, 0xc0, 0xd2, 0x80, 0xc0, 0x7e, 0x6e, 0x74, 0x40, 0x62, 0xc7, 0x6a, 0x62, 0xc1, 0x7a, 0x9c, 0x81, 0xed, 0x49, 0x1b, 0x17, 0x3c, 0x6b, 0x5e, 0xde, 0x90, 0xf7, 0x92, 0x0f, 0xc0, 0xcf, 0xff, 0xf3, 0xdc, 0x39, 0x74, 0x92, 0x90, 0x02, 0xcf, 0x3c, 0xf3, 0x0c, 0xc7, 0x8f, 0x1f, 0x67, 0x7e, 0x7e, 0x9e, 0x24, 0x49, 0x28, 0x16, 0x8b, 0x04, 0xbe, 0x4f, 0xba, 0xb3, 0x43, 0x5e, 0x6b, 0xc6, 0x92, 0x84, 0xbb, 0xd2, 0x94, 0xef, 0x08, 0xc1, 0x7d, 0xc6, 0x70, 0x87, 0x31, 0x04, 0x69, 0x4a, 0x2e, 0x0c, 0xe9, 0x69, 0xcd, 0xc5, 0x5e, 0x6f, 0xea, 0x23, 0x98, 0x7a, 0x0c, 0xfe, 0x05, 0x98, 0xb7, 0x8b, 0x77, 0x1d, 0xe8, 0x0c, 0x07, 0x32, 0xf7, 0x06, 0xde, 0xa3, 0x35, 0xe4, 0x29, 0x9c, 0x41, 0x18, 0xb7, 0x92, 0x1f, 0x2c, 0xe8, 0x2a, 0x70, 0x37, 0xe0, 0x9d, 0x86, 0x1f, 0xbe, 0xfe, 0xa3, 0x1f, 0x91, 0xac, 0xad, 0xa1, 0x8d, 0xe1, 0x6f, 0x7e, 0xf2, 0x13, 0xfe, 0xf0, 0xfb, 0xdf, 0xe7, 0xf2, 0xe5, 0xcb, 0x8c, 0x8f, 0x8f, 0x53, 0x2a, 0x95, 0xe8, 0x76, 0x3a, 0x74, 0x37, 0x37, 0xf1, 0xe3, 0x98, 0xb1, 0x24, 0xe1, 0x9e, 0x7c, 0x9e, 0xbb, 0x95, 0xe2, 0x8e, 0x34, 0x65, 0x06, 0x28, 0x1a, 0x83, 0xef, 0xfb, 0x59, 0xb8, 0x2f, 0x97, 0x11, 0x77, 0xde, 0x49, 0x79, 0x6a, 0x8a, 0x3f, 0x3e, 0x77, 0xee, 0xef, 0xbf, 0x04, 0x3e, 0xcb, 0x34, 0x7f, 0x5d, 0x26, 0x20, 0x6e, 0x11, 0xce, 0xab, 0xd6, 0x0f, 0x1f, 0x03, 0x1e, 0xb6, 0x1e, 0xe2, 0xd8, 0x90, 0x26, 0x58, 0x82, 0x30, 0x7c, 0xf0, 0x41, 0xba, 0xc7, 0x8e, 0xd1, 0x39, 0x79, 0x92, 0x7f, 0x7a, 0xf7, 0x5d, 0xee, 0x7d, 0xe4, 0x11, 0x9a, 0x5a, 0xd3, 0x68, 0xb5, 0x70, 0x1c, 0x87, 0xb8, 0xdf, 0xa7, 0xb3, 0xb9, 0x89, 0xaa, 0xd5, 0x38, 0x02, 0x9c, 0x48, 0x12, 0x0e, 0xd4, 0xeb, 0x8c, 0xd5, 0xeb, 0x94, 0xda, 0x6d, 0x9c, 0x34, 0xa5, 0x50, 0x28, 0xd0, 0xd3, 0x9a, 0x9d, 0x52, 0x89, 0x8d, 0xc9, 0x49, 0x96, 0x26, 0x27, 0x59, 0x19, 0x1b, 0x63, 0xa3, 0x50, 0x60, 0xdb, 0xf3, 0x38, 0xfd, 0xd3, 0x9f, 0x0e, 0xc4, 0x2e, 0x6e, 0x8b, 0x80, 0x25, 0xe1, 0x0c, 0x45, 0xc6, 0x13, 0xd6, 0x4b, 0x7c, 0xd7, 0x4a, 0x7e, 0x3a, 0x85, 0x90, 0x5c, 0x8e, 0xb4, 0x54, 0xa2, 0x3b, 0x37, 0xc7, 0xf9, 0x5e, 0x8f, 0xe0, 0x7b, 0xdf, 0xa3, 0x7f, 0xe7, 0x9d, 0x7c, 0x15, 0x45, 0x50, 0x2e, 0xe3, 0x04, 0x01, 0xa6, 0xdb, 0x25, 0x5a, 0x5a, 0xe2, 0x28, 0x70, 0x60, 0x6d, 0x8d, 0xea, 0xc2, 0x02, 0xe5, 0xd5, 0x55, 0x0a, 0xed, 0x36, 0x41, 0xaf, 0x87, 0xeb, 0xba, 0x74, 0x82, 0x80, 0x76, 0xb9, 0xcc, 0xc6, 0xc4, 0x04, 0x2b, 0x33, 0x33, 0x19, 0xf8, 0x30, 0xa4, 0xe5, 0xfb, 0x74, 0x8c, 0x21, 0x4e, 0x53, 0x92, 0x24, 0x61, 0x7e, 0x7e, 0x9e, 0xf7, 0xdf, 0x7f, 0x9f, 0xfd, 0xe2, 0xc0, 0x7e, 0xa9, 0xaa, 0x32, 0x99, 0x39, 0x0d, 0x82, 0xdc, 0xe0, 0xf4, 0x96, 0xe0, 0xe8, 0x4c, 0x2e, 0x87, 0x48, 0x53, 0xdc, 0x56, 0x8b, 0xb8, 0xd3, 0xe1, 0x81, 0x83, 0x07, 0xd9, 0x5e, 0x59, 0xa1, 0x53, 0x2c, 0xd2, 0x74, 0x5d, 0xe4, 0xd8, 0x18, 0x32, 0x08, 0x48, 0x9b, 0x4d, 0x26, 0x8d, 0xe1, 0x8e, 0x4e, 0x87, 0xe2, 0xe2, 0x22, 0xd5, 0x95, 0x15, 0xc2, 0x66, 0x13, 0x57, 0x29, 0xdc, 0x7c, 0x9e, 0x9e, 0x31, 0xec, 0x96, 0xcb, 0x6c, 0xcc, 0xcc, 0xb0, 0x32, 0x3d, 0xcd, 0xea, 0xf8, 0x38, 0x8d, 0x30, 0xa4, 0xed, 0x79, 0xf4, 0x85, 0x40, 0x27, 0x09, 0x5a, 0xeb, 0x3d, 0xcf, 0x76, 0xa3, 0x38, 0x70, 0x33, 0x12, 0x4d, 0xae, 0xee, 0x07, 0xe4, 0x69, 0xf8, 0xe1, 0x9f, 0x9f, 0x3c, 0x49, 0xbc, 0xb6, 0x86, 0xdf, 0x6e, 0xa3, 0xd2, 0x94, 0x92, 0x94, 0x04, 0x9b, 0x9b, 0x38, 0x8e, 0x43, 0x2e, 0x9f, 0xa7, 0x59, 0x2c, 0xd2, 0x73, 0x5d, 0x70, 0x5d, 0xfc, 0x66, 0x93, 0x72, 0xad, 0x46, 0x75, 0x7b, 0x9b, 0x52, 0xbd, 0xce, 0xc8, 0xee, 0x2e, 0x5e, 0x92, 0xe0, 0xf9, 0x3e, 0x1d, 0xc7, 0x61, 0xb7, 0x52, 0x61, 0x63, 0x6a, 0x8a, 0x95, 0xd9, 0x59, 0xd6, 0x26, 0x27, 0xd9, 0x0a, 0x43, 0x76, 0x5d, 0x97, 0x18, 0x50, 0x49, 0x82, 0x31, 0x86, 0x24, 0x49, 0x78, 0xef, 0xbd, 0xf7, 0x08, 0xc3, 0xf0, 0x9b, 0x11, 0xb8, 0x46, 0x13, 0xce, 0x03, 0xf0, 0xf3, 0x7f, 0xfc, 0xc1, 0x0f, 0xd8, 0xba, 0x72, 0x25, 0x63, 0xd4, 0xeb, 0x51, 0x14, 0x02, 0x2f, 0x49, 0x70, 0x76, 0x76, 0x10, 0x52, 0x22, 0x3d, 0x8f, 0xf1, 0x62, 0x91, 0x4e, 0xa7, 0x43, 0x5f, 0x4a, 0xbc, 0x66, 0x93, 0xf2, 0xea, 0x2a, 0xe1, 0xce, 0x0e, 0x85, 0x66, 0x13, 0x37, 0x8e, 0x33, 0xc9, 0x0b, 0xb1, 0x27, 0xf9, 0xd5, 0xb9, 0x39, 0xd6, 0xc6, 0xc6, 0xd8, 0x2e, 0x95, 0xd8, 0x75, 0xdd, 0xcc, 0xd1, 0xa7, 0x29, 0xc6, 0x18, 0xfa, 0xfd, 0xfe, 0x1e, 0xf8, 0x4e, 0xa7, 0xf3, 0xcd, 0x09, 0x0c, 0x48, 0xb8, 0xb0, 0xfe, 0xb3, 0x1f, 0xff, 0x98, 0xed, 0x4e, 0x07, 0x23, 0x04, 0x97, 0xbf, 0xf8, 0x82, 0xa3, 0xd5, 0x2a, 0xb2, 0xdd, 0xa6, 0xac, 0x35, 0xc2, 0x18, 0xfc, 0x4e, 0x87, 0x62, 0xad, 0xc6, 0x4c, 0x3e, 0x4f, 0x73, 0x7b, 0x1b, 0xe5, 0xba, 0xf8, 0xed, 0x36, 0xa5, 0x56, 0x0b, 0xbf, 0xdb, 0x45, 0xc4, 0x31, 0xae, 0x10, 0x44, 0xc0, 0x6e, 0xb5, 0x4a, 0x63, 0x76, 0x96, 0xfa, 0xc1, 0x83, 0xd4, 0xc7, 0xc7, 0xd9, 0x2e, 0x97, 0x69, 0x3b, 0x0e, 0x31, 0x60, 0xd2, 0x14, 0xa5, 0x14, 0x69, 0x9a, 0x72, 0xe1, 0xc2, 0x05, 0xaa, 0xd5, 0x2a, 0x8d, 0x46, 0x03, 0xcf, 0xf3, 0x7e, 0x33, 0x02, 0x80, 0xf9, 0x87, 0x17, 0x5e, 0xa0, 0x27, 0x04, 0xc2, 0x18, 0xde, 0x5d, 0x58, 0x60, 0xb6, 0x5a, 0x45, 0xba, 0x2e, 0x42, 0x08, 0x10, 0x82, 0x30, 0x8e, 0xf1, 0xe3, 0x18, 0x37, 0x49, 0x70, 0x92, 0x04, 0xbf, 0xd5, 0xc2, 0x08, 0x81, 0x9f, 0x24, 0x8c, 0xf4, 0xfb, 0x78, 0x4a, 0x11, 0x84, 0x21, 0x91, 0x31, 0x74, 0x4a, 0x25, 0x1a, 0x53, 0x53, 0xd4, 0x67, 0x67, 0x59, 0x1b, 0x1b, 0xa3, 0x59, 0x28, 0x64, 0x66, 0x23, 0x04, 0xca, 0xda, 0x7c, 0x9a, 0xa6, 0x9c, 0x3f, 0x7f, 0x9e, 0x4a, 0xa5, 0x42, 0xa7, 0xd3, 0x21, 0x08, 0x02, 0x76, 0x76, 0x76, 0x7e, 0x23, 0x02, 0xe6, 0xf4, 0xe9, 0xd3, 0xa4, 0x69, 0x0a, 0xae, 0xcb, 0xcb, 0xbf, 0xf8, 0x05, 0xd3, 0xf9, 0x3c, 0xfd, 0x5c, 0x0e, 0x84, 0x00, 0x29, 0x31, 0x42, 0x30, 0xdd, 0x6a, 0x65, 0xe0, 0xb5, 0xc6, 0xef, 0x76, 0x19, 0x03, 0xb4, 0xd5, 0x8c, 0xd4, 0x1a, 0xdf, 0x71, 0x88, 0xb4, 0xa6, 0x5d, 0xad, 0xb2, 0x35, 0x33, 0x43, 0xfd, 0xc0, 0x01, 0xd6, 0xa7, 0xa7, 0xd9, 0x2a, 0x95, 0xd8, 0xf5, 0x7d, 0xfa, 0xc6, 0xa0, 0x94, 0x42, 0x6b, 0x4d, 0x1c, 0xc7, 0x9c, 0x3f, 0x7f, 0x9e, 0x30, 0x0c, 0xe9, 0x76, 0xbb, 0x28, 0xa5, 0xe8, 0xf7, 0xfb, 0x18, 0x63, 0xbe, 0x31, 0x01, 0xf3, 0xec, 0xb3, 0xcf, 0x12, 0xc7, 0x31, 0xbe, 0xef, 0xf3, 0xc6, 0x1b, 0x6f, 0xe0, 0x07, 0x01, 0xdb, 0x4a, 0x81, 0x94, 0xc8, 0x5c, 0x96, 0x2a, 0xb9, 0x4a, 0x11, 0x24, 0x09, 0x9e, 0x52, 0xe4, 0xfb, 0x7d, 0x9c, 0x24, 0xc9, 0xfc, 0x9c, 0x9d, 0x50, 0xfa, 0x3e, 0xb1, 0x94, 0x44, 0x61, 0x48, 0x73, 0x62, 0x22, 0x93, 0xfc, 0xd4, 0x14, 0x8d, 0x42, 0x81, 0x6e, 0x10, 0xd0, 0x07, 0x8c, 0xf5, 0x34, 0x4a, 0x29, 0xde, 0x79, 0xe7, 0x1d, 0xf2, 0xf9, 0x3c, 0x51, 0x14, 0xed, 0x81, 0xef, 0xf7, 0xfb, 0xd7, 0x79, 0x22, 0xe7, 0x56, 0xe0, 0x9f, 0x7a, 0xea, 0x29, 0x82, 0x20, 0x40, 0x08, 0xc1, 0x8b, 0x2f, 0xbe, 0x48, 0xa9, 0x54, 0xb2, 0x65, 0x0a, 0x41, 0x27, 0x49, 0x58, 0xac, 0xd5, 0x58, 0x5f, 0x5d, 0xa5, 0xb7, 0xb9, 0x89, 0x17, 0x45, 0x14, 0xe2, 0x98, 0x50, 0x29, 0x5c, 0x63, 0xf6, 0x76, 0xe4, 0x52, 0x88, 0x2c, 0x85, 0x1d, 0x19, 0xa1, 0x35, 0x3a, 0xca, 0xfa, 0xec, 0x2c, 0xab, 0x53, 0x53, 0x6c, 0x54, 0xab, 0xec, 0x8e, 0x8c, 0x10, 0x49, 0xb9, 0x67, 0xef, 0x49, 0x92, 0xf0, 0xf6, 0xdb, 0x6f, 0x13, 0x86, 0xe1, 0x1e, 0xf8, 0x28, 0x8a, 0x48, 0x92, 0x84, 0x34, 0x4d, 0x59, 0x5e, 0x5e, 0xfe, 0x5a, 0xfc, 0xba, 0x99, 0x06, 0xcc, 0xd3, 0x4f, 0x3f, 0x8d, 0xe3, 0x38, 0xa4, 0x69, 0xca, 0x2b, 0xaf, 0xbc, 0xc2, 0xf4, 0xf4, 0x34, 0x5a, 0x6b, 0x8c, 0x31, 0xac, 0xaf, 0xaf, 0xf3, 0xe5, 0xc2, 0x02, 0x15, 0x21, 0xd0, 0x52, 0x72, 0x58, 0xca, 0xcc, 0xed, 0x69, 0x8d, 0x1e, 0x52, 0xb3, 0x10, 0x02, 0x63, 0x0c, 0x46, 0x08, 0x94, 0x94, 0xc4, 0x9e, 0x47, 0xd7, 0xf3, 0x88, 0x1c, 0x87, 0xbe, 0x94, 0x44, 0x36, 0xbd, 0x4e, 0xd3, 0x94, 0x7e, 0xbf, 0xcf, 0xd9, 0xb3, 0x67, 0x09, 0x82, 0x80, 0x38, 0x8e, 0x71, 0x1c, 0x87, 0x6e, 0xb7, 0x4b, 0x9a, 0xa6, 0x44, 0x51, 0x44, 0xbd, 0x5e, 0xe7, 0x66, 0xfb, 0x81, 0xaf, 0x81, 0x7f, 0xf2, 0xc9, 0x27, 0x33, 0x9b, 0x07, 0x5e, 0x7d, 0xf5, 0x55, 0x26, 0x26, 0x26, 0x50, 0x4a, 0xe1, 0x38, 0x0e, 0xb5, 0x5a, 0x8d, 0xe5, 0x2b, 0x57, 0xb2, 0x6d, 0x9b, 0x31, 0x8c, 0x19, 0xc3, 0x34, 0x50, 0xd5, 0x9a, 0xbc, 0x31, 0x48, 0x63, 0xb2, 0x4d, 0xb0, 0x05, 0x8f, 0xc8, 0xe6, 0x94, 0x69, 0x8a, 0x1b, 0x45, 0xf8, 0xdd, 0x2e, 0x4e, 0xaf, 0x87, 0xd8, 0xdd, 0x45, 0x6a, 0x8d, 0x92, 0x92, 0x5e, 0x14, 0x71, 0xf6, 0xec, 0x59, 0x0a, 0x85, 0x02, 0x9d, 0x4e, 0x07, 0xc7, 0x71, 0xbe, 0x66, 0x3e, 0xfb, 0x81, 0xbf, 0x91, 0x09, 0x99, 0x27, 0x9e, 0x78, 0x22, 0xf3, 0x2c, 0xc0, 0x9b, 0x6f, 0xbe, 0xc9, 0xd8, 0xd8, 0xd8, 0xde, 0xef, 0xdd, 0xdd, 0x5d, 0xbe, 0xfc, 0xfc, 0x73, 0x4a, 0x36, 0x49, 0x3a, 0xe9, 0xfb, 0xfc, 0xe9, 0xd1, 0xa3, 0xfc, 0xde, 0xc8, 0x08, 0x77, 0x19, 0xc3, 0x68, 0x9a, 0xe2, 0x69, 0x8d, 0x97, 0xcb, 0x65, 0xbb, 0x0e, 0xeb, 0xa1, 0x84, 0x31, 0x08, 0x63, 0x30, 0x52, 0x66, 0x89, 0xbe, 0x10, 0xc4, 0x42, 0x90, 0x48, 0x49, 0x37, 0x49, 0xf8, 0x8f, 0x77, 0xde, 0xa1, 0x58, 0x2a, 0xb1, 0xb3, 0xb3, 0xb3, 0x07, 0x7c, 0x20, 0xf9, 0x95, 0x95, 0x95, 0x1b, 0xa6, 0x3d, 0xd7, 0x12, 0x30, 0x8f, 0x3f, 0xfe, 0xf8, 0xde, 0x8f, 0xb7, 0xde, 0x7a, 0x8b, 0x4a, 0xa5, 0xb2, 0x07, 0x5e, 0x08, 0xc1, 0xf2, 0xe2, 0x22, 0xb9, 0x28, 0x62, 0x06, 0x78, 0x28, 0x0c, 0xf9, 0xb3, 0x23, 0x47, 0x38, 0xd1, 0xeb, 0x31, 0xd3, 0x6a, 0x51, 0xea, 0xf7, 0xf1, 0xb4, 0x26, 0xf0, 0x3c, 0x7a, 0x52, 0xd2, 0xcf, 0xe5, 0x48, 0x3c, 0x2f, 0x5b, 0x07, 0x5a, 0x67, 0x44, 0x94, 0xc2, 0x4d, 0x12, 0x44, 0x9a, 0xa2, 0x80, 0xc8, 0x18, 0xce, 0xff, 0xf2, 0x97, 0x78, 0x61, 0xc8, 0x56, 0xbb, 0x4d, 0x3f, 0x8e, 0xf7, 0xe6, 0x8a, 0xa2, 0x88, 0x5a, 0xad, 0x76, 0xd3, 0x9c, 0x6d, 0x98, 0x80, 0x39, 0x75, 0xea, 0xd4, 0xde, 0xcb, 0xe7, 0xce, 0x9d, 0xa3, 0x50, 0x28, 0x5c, 0xbd, 0x69, 0x4d, 0xa3, 0x75, 0xe5, 0x0a, 0x13, 0xc6, 0x70, 0x1c, 0x78, 0x64, 0x74, 0x94, 0xef, 0x24, 0x09, 0x93, 0xcd, 0x26, 0xd5, 0x5e, 0x8f, 0x5c, 0x9a, 0x12, 0x14, 0x8b, 0xec, 0x48, 0x49, 0xbb, 0x50, 0xa0, 0x55, 0x2e, 0xd3, 0xcd, 0xe7, 0xd1, 0x8e, 0x03, 0x56, 0x03, 0x7e, 0x92, 0xe0, 0xa5, 0x29, 0x8e, 0x52, 0x90, 0xa6, 0x7c, 0xfa, 0xd9, 0x67, 0x88, 0x5c, 0x8e, 0xdd, 0x24, 0x61, 0x37, 0x8e, 0xb3, 0x6a, 0x81, 0x10, 0xc4, 0x71, 0xcc, 0xd2, 0xd2, 0xd2, 0x2d, 0x13, 0xce, 0x61, 0x02, 0xcf, 0x94, 0xcb, 0x65, 0x8a, 0xc5, 0x22, 0x17, 0x2e, 0x5c, 0x20, 0x9f, 0xcf, 0x5f, 0xb5, 0x61, 0x40, 0x18, 0x43, 0x51, 0x29, 0xc4, 0xda, 0x1a, 0xc7, 0x87, 0x72, 0xeb, 0x23, 0x51, 0x44, 0x39, 0x8e, 0x71, 0xb5, 0x26, 0xf0, 0x7d, 0x76, 0x80, 0xad, 0x4a, 0x85, 0xb5, 0xc9, 0x49, 0xd6, 0xc7, 0xc7, 0xd9, 0x2e, 0x16, 0x89, 0x3d, 0xef, 0x2a, 0x78, 0xa5, 0x10, 0xc6, 0xe0, 0x28, 0x45, 0xb2, 0xbd, 0x8d, 0x27, 0x04, 0x51, 0x9a, 0xd2, 0x51, 0x8a, 0x3e, 0xd0, 0x53, 0x8a, 0x5e, 0x9a, 0xde, 0x16, 0xf8, 0xeb, 0x16, 0xb1, 0x94, 0x92, 0x85, 0x85, 0x05, 0x66, 0x67, 0x67, 0xd9, 0xda, 0xda, 0xda, 0xbb, 0xa6, 0x95, 0xa2, 0x60, 0x0c, 0xe5, 0x34, 0x65, 0x54, 0x08, 0x1e, 0x36, 0x86, 0x87, 0x81, 0xb9, 0x28, 0xa2, 0x24, 0x44, 0x96, 0x55, 0x16, 0x8b, 0x34, 0xb5, 0xa6, 0x59, 0x2e, 0xb3, 0x32, 0x31, 0xc1, 0xca, 0xd4, 0x14, 0xcd, 0x30, 0x04, 0x21, 0x28, 0x85, 0x21, 0x91, 0x1d, 0x47, 0x03, 0x41, 0x1c, 0x13, 0xf4, 0x7a, 0x4c, 0x49, 0x89, 0xea, 0x76, 0x89, 0x95, 0x22, 0xcd, 0xe5, 0x88, 0x1d, 0x87, 0x2e, 0xb0, 0x78, 0x83, 0x05, 0x7b, 0x4b, 0x02, 0x4a, 0x29, 0x7c, 0xdf, 0x67, 0x64, 0x64, 0x04, 0xad, 0x35, 0x52, 0x4a, 0xb6, 0xb6, 0xb6, 0xa8, 0x18, 0xc3, 0x98, 0x52, 0x1c, 0x8a, 0x63, 0x0e, 0xf9, 0x3e, 0xf7, 0xf7, 0xfb, 0x1c, 0x03, 0x2a, 0x4a, 0xa1, 0x84, 0x20, 0x17, 0x86, 0x6c, 0x6b, 0x4d, 0xa3, 0x5c, 0x66, 0x65, 0x7c, 0x9c, 0xe5, 0x89, 0x09, 0xea, 0xd5, 0x2a, 0xad, 0x91, 0x11, 0x00, 0x4a, 0x52, 0x12, 0x2b, 0x85, 0x52, 0x0a, 0x65, 0x0c, 0xe5, 0xcd, 0x4d, 0xca, 0x80, 0xa7, 0x35, 0x93, 0x00, 0x71, 0x4c, 0xaa, 0x35, 0x91, 0xe7, 0xb1, 0xd2, 0x6c, 0xd2, 0x83, 0xc3, 0x40, 0x28, 0xb2, 0x22, 0xd6, 0xed, 0x13, 0x18, 0x1d, 0x1d, 0xdd, 0x0b, 0xd7, 0x9e, 0xe7, 0x91, 0xcb, 0xe5, 0xc8, 0x45, 0x11, 0xe3, 0xc6, 0x30, 0xb6, 0xb9, 0xc9, 0xf1, 0x5e, 0x8f, 0x7b, 0xa5, 0xe4, 0x80, 0x2d, 0xdf, 0x05, 0x80, 0x57, 0xa9, 0xb0, 0xae, 0x14, 0x5b, 0xa5, 0x12, 0xb5, 0xf1, 0x71, 0x96, 0xc7, 0xc7, 0xa9, 0x57, 0x2a, 0xb4, 0x82, 0x80, 0xae, 0xef, 0x67, 0xd9, 0x64, 0x2e, 0x47, 0xbf, 0x5c, 0x26, 0x8e, 0x63, 0xea, 0x2b, 0x2b, 0xdc, 0x1b, 0x04, 0x98, 0x28, 0xa2, 0xa0, 0x75, 0x66, 0x96, 0xc6, 0x10, 0x6b, 0x4d, 0xbb, 0xd3, 0xe1, 0x6f, 0xe1, 0x2f, 0x81, 0x3b, 0x87, 0xea, 0x91, 0x9d, 0xdb, 0x26, 0xd0, 0xef, 0xf7, 0xf7, 0x16, 0xec, 0xc8, 0xc8, 0x08, 0x41, 0xb7, 0x4b, 0x59, 0x08, 0x8e, 0x18, 0xc3, 0x61, 0xad, 0x39, 0xa1, 0x14, 0x73, 0x69, 0x4a, 0x55, 0x08, 0xa4, 0x31, 0x78, 0x61, 0xc8, 0x66, 0x92, 0xb0, 0x56, 0xa9, 0xb0, 0x3c, 0x3a, 0xca, 0x95, 0xd1, 0x51, 0xd6, 0x4a, 0x25, 0x9a, 0xbe, 0x4f, 0xcf, 0x71, 0x50, 0x4a, 0x61, 0x8c, 0x21, 0x76, 0x1c, 0x3a, 0xae, 0xcb, 0xa5, 0xd5, 0x55, 0x8e, 0x17, 0x0a, 0xa0, 0x14, 0x46, 0x6b, 0xbc, 0x38, 0xc6, 0x53, 0x0a, 0xdf, 0x18, 0xa6, 0x92, 0x84, 0xc7, 0xe1, 0xd7, 0xb6, 0xa4, 0xe9, 0x0d, 0x0a, 0x0a, 0x06, 0xd6, 0x44, 0x56, 0x1b, 0xba, 0x35, 0x81, 0x76, 0xbb, 0x8d, 0xe3, 0x38, 0x78, 0xae, 0x4b, 0x18, 0x45, 0x54, 0xd2, 0x94, 0x83, 0x71, 0xcc, 0xd1, 0x9d, 0x1d, 0x4e, 0x44, 0x11, 0xb3, 0x51, 0x44, 0x55, 0x29, 0x46, 0x8c, 0x21, 0xf5, 0x7d, 0x36, 0x84, 0x60, 0xad, 0x58, 0x64, 0xb1, 0x5a, 0x65, 0x71, 0x74, 0x94, 0x95, 0x52, 0x89, 0xb6, 0xef, 0xd3, 0xb5, 0xa9, 0x01, 0xb6, 0x90, 0x95, 0x18, 0xc3, 0xaf, 0xe7, 0xe7, 0x99, 0x0c, 0x02, 0x92, 0x24, 0x41, 0xe7, 0xf3, 0x48, 0xad, 0x11, 0x4a, 0x31, 0x65, 0x0c, 0x79, 0xad, 0x99, 0xce, 0x8a, 0x65, 0x87, 0x06, 0x3b, 0xbe, 0xa1, 0x2a, 0x5c, 0x6a, 0x35, 0xb1, 0x7b, 0x4b, 0x02, 0xef, 0xbd, 0xf7, 0x1e, 0x0f, 0x3d, 0xf0, 0x00, 0x63, 0x52, 0x52, 0x50, 0x8a, 0xd9, 0x38, 0xe6, 0xee, 0x4e, 0x87, 0xe3, 0xbb, 0xbb, 0x1c, 0xee, 0xf5, 0x28, 0x27, 0x49, 0x06, 0x48, 0x4a, 0x5a, 0x5a, 0xb3, 0x24, 0x25, 0xb5, 0x72, 0x99, 0x2f, 0xcb, 0x65, 0x56, 0xc3, 0x90, 0x6d, 0xd7, 0x25, 0x72, 0x9c, 0xcc, 0x73, 0xd9, 0xac, 0xd2, 0x18, 0xc3, 0xfc, 0xfc, 0x3c, 0x5a, 0x4a, 0xea, 0x49, 0x42, 0xcf, 0xf3, 0x10, 0x4a, 0x11, 0x7b, 0x1e, 0x5a, 0x29, 0xa2, 0x38, 0xe6, 0x77, 0xb3, 0xb2, 0x7d, 0xc9, 0x56, 0x3b, 0x0e, 0xd9, 0x4f, 0x31, 0x54, 0x0d, 0x91, 0x26, 0x6b, 0x6e, 0x74, 0x6f, 0x46, 0x40, 0x18, 0x90, 0x13, 0x1f, 0x7e, 0xa8, 0x22, 0xe0, 0xbe, 0x83, 0x07, 0xb9, 0xab, 0xdf, 0xe7, 0x9e, 0x28, 0x62, 0xae, 0xdf, 0xa7, 0x94, 0x24, 0xe4, 0xb4, 0x26, 0x92, 0x92, 0x6d, 0xcf, 0xa3, 0x9e, 0xcb, 0xf1, 0x49, 0x3e, 0xcf, 0x7f, 0x75, 0x3a, 0x2c, 0xbb, 0x2e, 0xf9, 0x6a, 0x35, 0x1b, 0xdd, 0xa6, 0x1f, 0x03, 0x53, 0x9c, 0x9f, 0x9f, 0xdf, 0xcb, 0x20, 0x63, 0x9b, 0x27, 0xc5, 0x5a, 0x93, 0x78, 0x1e, 0x5b, 0x8d, 0x06, 0x8f, 0xc1, 0x3f, 0xdb, 0x5a, 0xe8, 0xac, 0x25, 0x51, 0xb2, 0x5a, 0x88, 0x6d, 0x09, 0x71, 0x30, 0xe0, 0x40, 0x13, 0xdd, 0x7d, 0x09, 0xd8, 0x06, 0x47, 0x7e, 0x23, 0x2b, 0x69, 0x1f, 0xff, 0xbb, 0xa5, 0xa5, 0x7f, 0x3b, 0x04, 0xdc, 0xe1, 0xba, 0x94, 0x95, 0x02, 0x21, 0xe8, 0x49, 0xc9, 0x8e, 0xeb, 0x52, 0xcb, 0xe5, 0xb8, 0x1c, 0x86, 0x7c, 0x12, 0x86, 0xac, 0xe5, 0x72, 0x34, 0x1c, 0x87, 0x8f, 0xbf, 0xf8, 0x82, 0x20, 0x9f, 0xe7, 0xf0, 0xe1, 0xc3, 0x7b, 0xe0, 0x3f, 0xfe, 0xf8, 0x63, 0xa4, 0x94, 0x48, 0x29, 0x89, 0xa2, 0x08, 0xd7, 0x75, 0xe9, 0x26, 0x09, 0x89, 0xeb, 0xb2, 0x7c, 0xe5, 0x0a, 0x35, 0xf8, 0x03, 0xe0, 0x7e, 0x0b, 0x21, 0x01, 0x8e, 0x0c, 0xd5, 0xa2, 0x66, 0xed, 0xf5, 0xd8, 0x9e, 0x91, 0x25, 0x91, 0x8a, 0xec, 0x37, 0x37, 0x6b, 0x70, 0x9c, 0xf8, 0x2b, 0xf8, 0x77, 0xe0, 0x58, 0x27, 0x4d, 0x8f, 0xe6, 0x6d, 0x45, 0x75, 0xc3, 0x75, 0x59, 0xf6, 0x7d, 0x3e, 0x09, 0x02, 0x3e, 0x1b, 0x19, 0xe1, 0xca, 0xc8, 0x08, 0x4d, 0xcf, 0x63, 0x57, 0x4a, 0x02, 0xbb, 0xd5, 0x9b, 0x9f, 0x9f, 0xc7, 0xf7, 0x7d, 0xa4, 0x94, 0xf8, 0xbe, 0x4f, 0x14, 0x45, 0x44, 0x51, 0x84, 0xe7, 0x79, 0x24, 0x76, 0x83, 0xfe, 0x69, 0xb6, 0x9f, 0xce, 0x43, 0xb6, 0xe7, 0x19, 0x2a, 0x14, 0x1b, 0x6b, 0x42, 0x15, 0x5b, 0xe2, 0x1f, 0xd4, 0xa4, 0x7a, 0xb6, 0x33, 0xd3, 0x06, 0xba, 0xd6, 0x9c, 0xd2, 0x6b, 0x09, 0x0c, 0x1a, 0x1c, 0xa3, 0x64, 0x7e, 0xf8, 0x28, 0x30, 0x15, 0x66, 0x6e, 0xcc, 0x6c, 0x18, 0x53, 0xf8, 0x28, 0x49, 0xf8, 0x3c, 0x9f, 0xe7, 0x23, 0x29, 0xa9, 0x69, 0xcd, 0x56, 0x1c, 0xd3, 0x15, 0x02, 0xe9, 0x5e, 0x1d, 0xa6, 0x50, 0x28, 0x90, 0xa6, 0x29, 0xcd, 0x66, 0x93, 0x52, 0xa9, 0x44, 0xaf, 0xd7, 0x43, 0x4a, 0x49, 0x9a, 0xa6, 0x68, 0xad, 0x59, 0x5c, 0x5c, 0xb4, 0xc9, 0x02, 0x98, 0xac, 0x54, 0xa8, 0x87, 0xaa, 0xe3, 0x7a, 0x48, 0xb0, 0xa1, 0x15, 0xea, 0x41, 0x2b, 0xfd, 0x9a, 0x2d, 0xee, 0xae, 0x0f, 0xb4, 0x71, 0xdd, 0x1a, 0x18, 0xf2, 0x00, 0xde, 0x50, 0x71, 0xb7, 0x0d, 0xd4, 0x0f, 0xc3, 0xc2, 0x61, 0xf8, 0xe0, 0x4f, 0x5a, 0xad, 0xbf, 0xbe, 0xdc, 0x6a, 0xe1, 0xcd, 0xcc, 0xb0, 0xab, 0x35, 0x4e, 0x92, 0xe0, 0x79, 0x1e, 0xae, 0xeb, 0xe2, 0x38, 0x0e, 0xae, 0xdd, 0x23, 0x1b, 0x63, 0xf6, 0xcc, 0x26, 0x8b, 0x55, 0xd7, 0xe7, 0x36, 0xb6, 0x22, 0xde, 0x18, 0xf4, 0x1a, 0xb8, 0xda, 0xde, 0x55, 0xb6, 0x53, 0x53, 0xb5, 0xe7, 0xb8, 0xd5, 0x4a, 0xfe, 0xda, 0x1e, 0xc1, 0x7e, 0x0d, 0x8e, 0x6d, 0xdb, 0xd0, 0x5b, 0xb0, 0x4c, 0x5b, 0xf6, 0xfb, 0x45, 0xe0, 0xc3, 0x7f, 0xcd, 0x9a, 0x10, 0x75, 0xb1, 0xba, 0xba, 0x05, 0x30, 0x3d, 0x3d, 0x8d, 0xeb, 0xba, 0x7b, 0x04, 0x3c, 0xcf, 0xdb, 0xdb, 0x16, 0x0e, 0x4e, 0xe0, 0x86, 0xb9, 0x8d, 0x80, 0xfe, 0x90, 0x26, 0x06, 0x44, 0xfa, 0xf6, 0x3c, 0x62, 0x85, 0xb8, 0x6d, 0x4d, 0x28, 0xb2, 0xf7, 0xcd, 0xcd, 0x1a, 0x1c, 0xeb, 0xb6, 0x9c, 0x9d, 0x5a, 0xe6, 0x5d, 0xab, 0xba, 0x4f, 0xed, 0x67, 0x43, 0x64, 0x85, 0x2e, 0x01, 0x50, 0xaf, 0xd7, 0x0d, 0xc0, 0xc4, 0xc4, 0xc4, 0xd7, 0x34, 0x90, 0xa6, 0x29, 0x8e, 0x0d, 0x66, 0x37, 0xcb, 0xe7, 0xed, 0x8d, 0x64, 0x48, 0x13, 0xca, 0x02, 0xdd, 0xb1, 0x66, 0x13, 0x00, 0xcb, 0x76, 0xfe, 0x2d, 0x4b, 0xcc, 0xdc, 0xa8, 0x4f, 0x9c, 0xb3, 0x6e, 0x6c, 0xdc, 0x2e, 0xb0, 0x92, 0x7d, 0x61, 0xcb, 0xb6, 0x58, 0x5b, 0xe2, 0x6a, 0xe5, 0x7a, 0xbf, 0x4e, 0x24, 0x95, 0x4a, 0x05, 0xc7, 0xc9, 0x92, 0xdc, 0x20, 0x08, 0x6e, 0x09, 0x7e, 0x9f, 0x2e, 0xe5, 0xa8, 0xcd, 0x54, 0x66, 0x2d, 0x0e, 0xcf, 0xce, 0x5f, 0xb3, 0x96, 0xd1, 0xb4, 0x6d, 0x56, 0x73, 0xa3, 0x4e, 0x7d, 0xce, 0xda, 0xff, 0xa0, 0xa9, 0x37, 0x68, 0x30, 0xf7, 0x44, 0x26, 0x99, 0xdb, 0x69, 0xa9, 0x32, 0x37, 0x37, 0x77, 0xcb, 0xcd, 0xc8, 0x2d, 0xfa, 0xc4, 0x05, 0x6b, 0xf3, 0xd2, 0xce, 0x3f, 0x68, 0xb6, 0xf7, 0xf6, 0x6d, 0x74, 0xef, 0x23, 0x09, 0x31, 0x14, 0x0d, 0xcd, 0xb0, 0xef, 0xfd, 0xdf, 0xec, 0x0d, 0xdf, 0xa4, 0x2a, 0x1e, 0xd8, 0x78, 0x20, 0x86, 0xdc, 0x6c, 0x7c, 0xd3, 0xbf, 0x1a, 0xfc, 0x7f, 0x3a, 0xbe, 0x4d, 0x7f, 0x38, 0xf9, 0x1f, 0x1d, 0xff, 0x0d, 0x05, 0x0a, 0x46, 0xbb, 0xe1, 0x23, 0xb9, 0x79, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_play[2832] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x88, 0x00, 0x00, 0x0b, 0x88, 0x01, 0xe5, 0x8e, 0x29, 0x49, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd7, 0x02, 0x17, 0x10, 0x35, 0x01, 0xbd, 0xf1, 0xeb, 0x21, 0x00, 0x00, 0x0a, 0x9d, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xed, 0x59, 0x7b, 0x70, 0x14, 0xf5, 0x1d, 0xff, 0xec, 0xfe, 0xf6, 0x71, 0xb7, 0x97, 0x5c, 0x72, 0xb9, 0x5c, 0x92, 0x23, 0xb9, 0x10, 0x0d, 0x24, 0x04, 0xb1, 0x0d, 0x34, 0x22, 0x54, 0x81, 0x58, 0xf1, 0xd5, 0xb4, 0x09, 0x76, 0xda, 0xa2, 0x53, 0x1d, 0xa3, 0x0e, 0x96, 0xa9, 0x40, 0x74, 0x46, 0xac, 0x63, 0xad, 0xca, 0x54, 0x1c, 0x06, 0x8a, 0x36, 0xc8, 0x68, 0xa7, 0x8e, 0x43, 0xfa, 0xb0, 0x94, 0x3a, 0x15, 0x8c, 0x13, 0x51, 0xb4, 0x12, 0xb5, 0x45, 0x0a, 0x29, 0xa6, 0x5a, 0x79, 0xcc, 0x10, 0x12, 0x0c, 0x49, 0x48, 0x8e, 0x7b, 0x71, 0x97, 0x7b, 0xec, 0xb3, 0x7f, 0xdc, 0xed, 0xde, 0x23, 0x77, 0x81, 0x04, 0x3a, 0xd3, 0xe9, 0xf0, 0x9d, 0xd9, 0xb9, 0xdd, 0xfd, 0xfd, 0x6e, 0xf7, 0xf3, 0xf9, 0xbe, 0x7e, 0xdf, 0xdf, 0x77, 0x81, 0x2b, 0x72, 0x45, 0xae, 0xc8, 0xff, 0x94, 0x34, 0xb5, 0x37, 0xd7, 0x37, 0xb5, 0x37, 0x37, 0x5e, 0xec, 0x7c, 0xe6, 0x72, 0xbd, 0xf8, 0x89, 0x2d, 0x5b, 0x96, 0xd3, 0x84, 0x3c, 0x08, 0x86, 0xa9, 0x06, 0x00, 0xc8, 0x72, 0x1f, 0x2d, 0xcb, 0x4f, 0x3d, 0xf7, 0xf8, 0xe3, 0x7d, 0x53, 0x7c, 0x54, 0x21, 0x80, 0x67, 0x9a, 0xda, 0x9b, 0x77, 0x03, 0x68, 0xef, 0x6a, 0xeb, 0x7c, 0x76, 0xb2, 0xc9, 0xd4, 0xa5, 0x02, 0x5f, 0xbf, 0x79, 0x73, 0x35, 0x93, 0x9f, 0xbf, 0xdf, 0x36, 0x7b, 0xb6, 0xab, 0xd8, 0x6e, 0x47, 0x9e, 0x20, 0x00, 0x00, 0x42, 0xe1, 0x30, 0xfa, 0xfb, 0xfa, 0x34, 0x69, 0x78, 0xb8, 0x67, 0xd3, 0xba, 0x75, 0x0b, 0xa7, 0x61, 0x89, 0xdd, 0x00, 0x56, 0x00, 0xe8, 0xe8, 0x6a, 0xeb, 0xbc, 0xff, 0xbf, 0x42, 0x60, 0xfd, 0xe6, 0x17, 0x5b, 0xa9, 0x62, 0xdb, 0xaf, 0x17, 0x37, 0x7e, 0x8b, 0x9f, 0x55, 0xe9, 0x42, 0x64, 0x1c, 0x18, 0x3d, 0xdd, 0x0f, 0x9a, 0x26, 0x28, 0xad, 0xac, 0x04, 0xc5, 0x4a, 0x38, 0xd6, 0xdf, 0x8f, 0xcf, 0x0f, 0x7e, 0x1a, 0xd3, 0xce, 0x8d, 0x5d, 0xb3, 0x65, 0x0a, 0xd6, 0x68, 0x6a, 0x6f, 0x2e, 0x04, 0xd0, 0x9f, 0xb0, 0xc8, 0x9d, 0x5d, 0x6d, 0x9d, 0x7b, 0x2e, 0x2b, 0x81, 0xf5, 0x9b, 0x37, 0x57, 0x2b, 0x85, 0x25, 0x5f, 0xde, 0xb1, 0xe2, 0x4e, 0xde, 0x5e, 0x60, 0xc5, 0x9b, 0x2f, 0xbf, 0x82, 0x83, 0x5d, 0x6f, 0x42, 0x10, 0x04, 0x98, 0x4c, 0x26, 0xd8, 0x8a, 0x1d, 0xb8, 0xee, 0xb6, 0x16, 0x2c, 0xb8, 0xfd, 0x16, 0x78, 0x02, 0xe7, 0xb1, 0x77, 0xcf, 0xee, 0xd8, 0x0b, 0x0f, 0xb5, 0x9a, 0xf4, 0xff, 0x2f, 0xb8, 0x67, 0x41, 0xab, 0xf3, 0xba, 0x8a, 0x01, 0x00, 0xbd, 0x5d, 0x6d, 0x9d, 0xfe, 0x1c, 0x24, 0x5a, 0x01, 0xec, 0x00, 0xe0, 0x07, 0x70, 0x55, 0xb6, 0x79, 0xf4, 0x74, 0x09, 0x84, 0x2d, 0xf6, 0xde, 0x1b, 0x6e, 0xfd, 0x0e, 0x6f, 0xb1, 0x58, 0xf1, 0xf4, 0x3d, 0x77, 0xe3, 0x83, 0x5d, 0xbf, 0x83, 0xa2, 0x28, 0xc6, 0x11, 0x0e, 0x9e, 0x47, 0xcf, 0xde, 0x37, 0xf1, 0xc9, 0xae, 0x37, 0x60, 0xb1, 0x58, 0x51, 0x77, 0xfd, 0x12, 0xfe, 0xe1, 0x2d, 0xdb, 0x8f, 0x66, 0x3c, 0xe6, 0x45, 0x00, 0xfd, 0x09, 0xa0, 0x13, 0xa4, 0xab, 0xad, 0xb3, 0x03, 0x40, 0x77, 0xc2, 0x0a, 0x59, 0xe7, 0x4c, 0x8b, 0xc0, 0x9a, 0x8d, 0x2f, 0xec, 0x74, 0xd6, 0x2e, 0xc8, 0xb3, 0x17, 0xda, 0xf1, 0x9b, 0x9f, 0x3f, 0x89, 0x81, 0x63, 0xff, 0x4e, 0x03, 0xaf, 0x69, 0x9a, 0x71, 0x3e, 0xf0, 0xd9, 0xa7, 0x38, 0xb6, 0xbf, 0x1b, 0xb3, 0x67, 0x5e, 0x0d, 0x6b, 0xed, 0xfc, 0xba, 0x35, 0x1b, 0xb7, 0xfe, 0x0c, 0x00, 0x8e, 0xfc, 0xe1, 0x48, 0x07, 0x80, 0x9b, 0x12, 0x8f, 0xdc, 0xd1, 0xd4, 0xde, 0xbc, 0x22, 0xc7, 0xeb, 0xda, 0x13, 0xbf, 0x6d, 0x97, 0x85, 0xc0, 0x8c, 0x96, 0xfb, 0x97, 0x87, 0xad, 0xce, 0x1f, 0xd4, 0xd5, 0xd4, 0xe0, 0x8b, 0x7f, 0x1c, 0xc6, 0xc7, 0x7b, 0x76, 0x41, 0x55, 0xd5, 0x34, 0x02, 0x3a, 0x09, 0xfd, 0xfe, 0xc9, 0xbf, 0xef, 0x83, 0x7f, 0xd4, 0x83, 0xda, 0x9a, 0x5a, 0x44, 0xcc, 0x85, 0x4f, 0xa4, 0x68, 0xd8, 0x0f, 0xe0, 0xd1, 0x14, 0x12, 0x85, 0x59, 0xac, 0xb0, 0x07, 0xc0, 0x00, 0x80, 0xaa, 0xa6, 0xf6, 0xe6, 0xfa, 0x4b, 0x22, 0xe0, 0xf8, 0xde, 0xea, 0x56, 0xc5, 0x54, 0xba, 0xef, 0xe6, 0x3b, 0x9a, 0x09, 0xc7, 0x09, 0x78, 0xf5, 0xa9, 0xb5, 0xd0, 0x34, 0xcd, 0x38, 0x74, 0x49, 0xbd, 0xd6, 0xcf, 0x07, 0xfe, 0xf6, 0x0e, 0xec, 0x85, 0x76, 0x98, 0x9c, 0x73, 0xf2, 0x1e, 0xda, 0x10, 0xb7, 0xc2, 0xc5, 0xba, 0x09, 0x00, 0x3d, 0x80, 0xef, 0x9b, 0x36, 0x01, 0xfb, 0xf7, 0x1f, 0xde, 0xe6, 0x0d, 0xd2, 0xaf, 0x3d, 0xfa, 0xd3, 0xc7, 0x28, 0xb3, 0x59, 0xc0, 0xc7, 0xbb, 0x77, 0xe1, 0xdc, 0xd0, 0x60, 0xda, 0x9c, 0xc9, 0x88, 0x04, 0x87, 0x4f, 0x23, 0xe8, 0x1e, 0x83, 0xab, 0xc2, 0x85, 0x71, 0x5a, 0xf8, 0xf1, 0x54, 0xdc, 0x04, 0xc0, 0x5b, 0x89, 0xdf, 0xc6, 0x69, 0x11, 0x28, 0x58, 0xf9, 0xe8, 0x4e, 0x1f, 0x5b, 0xb1, 0xb6, 0xe4, 0x87, 0xf7, 0xd1, 0x55, 0x0e, 0x3b, 0x44, 0x15, 0x38, 0xb2, 0xff, 0x9d, 0x78, 0x1a, 0xa3, 0x28, 0x34, 0x34, 0x34, 0x60, 0xd5, 0xaa, 0x55, 0x58, 0xb9, 0x72, 0x25, 0x9c, 0x4e, 0x67, 0x32, 0xc5, 0x51, 0x14, 0x28, 0x2a, 0x99, 0xe8, 0xbc, 0x47, 0x0f, 0xc3, 0x39, 0xa3, 0x0c, 0x21, 0xbe, 0xa8, 0x22, 0x8b, 0x9b, 0xf8, 0x73, 0xb9, 0x49, 0x57, 0x5b, 0x67, 0x77, 0xe2, 0xb4, 0x3e, 0xd3, 0xcd, 0x26, 0xac, 0xc4, 0x05, 0xb7, 0xde, 0xb5, 0x4f, 0x55, 0x34, 0x63, 0x12, 0x6d, 0xb1, 0x97, 0x29, 0xc5, 0x5f, 0x77, 0xcd, 0x5c, 0xb2, 0x18, 0xd7, 0x97, 0x5a, 0x11, 0x13, 0x15, 0x44, 0x43, 0xe7, 0xf1, 0x45, 0xf7, 0xbb, 0xe0, 0x38, 0x0e, 0x2d, 0x2d, 0x2d, 0xd8, 0xb4, 0x69, 0x13, 0x08, 0x21, 0x20, 0x84, 0x00, 0x00, 0xb6, 0x6f, 0xdf, 0x8e, 0x03, 0x07, 0x0e, 0x18, 0x24, 0xf4, 0xfb, 0x91, 0xe1, 0x3e, 0xe4, 0x83, 0x86, 0xcd, 0xe1, 0xa2, 0x7e, 0xf4, 0xe4, 0x2f, 0xb7, 0xbd, 0xfe, 0xfc, 0x63, 0xeb, 0x32, 0xdc, 0xa4, 0x35, 0xa1, 0xe5, 0xde, 0x2c, 0x7a, 0xec, 0x4e, 0x8c, 0xd5, 0x27, 0xce, 0x27, 0x12, 0xb0, 0xb7, 0x3c, 0xb0, 0xcd, 0x37, 0xce, 0xdd, 0x42, 0x15, 0xda, 0xe2, 0x83, 0x0c, 0x8b, 0x79, 0x4b, 0xee, 0x40, 0x55, 0x5d, 0x0d, 0x00, 0xe0, 0x9a, 0x22, 0x33, 0x44, 0x55, 0x45, 0x6f, 0xf7, 0x5e, 0x10, 0x42, 0x30, 0x67, 0xce, 0x1c, 0x6c, 0xd8, 0xb0, 0x61, 0x62, 0x96, 0x5a, 0xb3, 0x06, 0x3c, 0xcf, 0xe3, 0xf0, 0xe1, 0xc3, 0x20, 0x84, 0x80, 0xa2, 0x28, 0xd0, 0x34, 0x0d, 0x4d, 0x8a, 0x21, 0x3c, 0x36, 0x88, 0x02, 0xbb, 0x0d, 0x83, 0x27, 0x99, 0xe5, 0x59, 0xdc, 0xa4, 0x15, 0x40, 0x0b, 0x80, 0x5f, 0x65, 0x21, 0xd0, 0x7b, 0x41, 0x02, 0xbe, 0x71, 0xfe, 0x27, 0xec, 0xcd, 0xdf, 0x05, 0x65, 0xcd, 0x07, 0x00, 0xdc, 0x5a, 0x33, 0x1b, 0x73, 0x4a, 0x4a, 0x8d, 0x71, 0x2b, 0x13, 0x45, 0x4c, 0x56, 0xd1, 0xf7, 0xd9, 0xa7, 0x20, 0x84, 0x60, 0xf5, 0xea, 0xd5, 0x46, 0xb6, 0xa1, 0x69, 0xda, 0xf8, 0x05, 0x80, 0x7b, 0xef, 0xbd, 0x17, 0x5f, 0x7d, 0xf5, 0x15, 0x22, 0x91, 0x08, 0x68, 0x9a, 0x36, 0x48, 0xc8, 0x9e, 0x61, 0x58, 0xf2, 0x67, 0x62, 0x5c, 0xe3, 0x5d, 0x59, 0x34, 0x8c, 0x04, 0xc0, 0x6c, 0x72, 0x3a, 0xa5, 0x56, 0x9a, 0x18, 0x03, 0x0b, 0x56, 0x3f, 0xd3, 0x9a, 0x57, 0x35, 0x9f, 0x7c, 0x6d, 0xee, 0x35, 0xb8, 0xb6, 0xa2, 0x12, 0xd7, 0x56, 0x54, 0x62, 0x79, 0x5d, 0x29, 0x66, 0x95, 0x00, 0xb3, 0x4a, 0x80, 0x6a, 0x07, 0xa0, 0xaa, 0x1a, 0x24, 0x59, 0xc5, 0xb9, 0xfe, 0x13, 0xa8, 0xa8, 0xa8, 0xc0, 0x8d, 0x37, 0xde, 0x08, 0x55, 0x55, 0xb3, 0x1e, 0x1c, 0xc7, 0xa1, 0xa9, 0xa9, 0xc9, 0x70, 0x2d, 0x3d, 0x1e, 0xb4, 0x90, 0x07, 0x8e, 0xe2, 0x22, 0x04, 0x60, 0xcd, 0xcb, 0xf0, 0x73, 0x7f, 0x22, 0x0e, 0x0a, 0x73, 0x10, 0xd0, 0xdd, 0x6a, 0x59, 0x56, 0x02, 0x82, 0xe0, 0x78, 0x7c, 0xf1, 0xd2, 0x25, 0x58, 0x54, 0xe1, 0xc4, 0xa2, 0x0a, 0x27, 0x96, 0x5f, 0x5d, 0x09, 0x13, 0x49, 0x4e, 0x94, 0x65, 0x20, 0xaa, 0x28, 0x88, 0x2a, 0x0a, 0xfc, 0x83, 0x7d, 0x58, 0xba, 0x74, 0x29, 0x64, 0x59, 0x86, 0x2c, 0xcb, 0x90, 0x24, 0x09, 0xb2, 0x2c, 0x4f, 0x58, 0x0b, 0xea, 0xea, 0xea, 0x40, 0x08, 0x01, 0x4d, 0xd3, 0xa0, 0x69, 0x1a, 0x84, 0x10, 0x30, 0x91, 0xf3, 0x88, 0x2a, 0x0a, 0x54, 0x8a, 0xc6, 0x8a, 0xf5, 0xbf, 0xa8, 0xce, 0x06, 0x32, 0x47, 0x39, 0xed, 0x9f, 0x74, 0x21, 0x73, 0x54, 0x98, 0x5d, 0x8d, 0x0b, 0x1d, 0x68, 0xa8, 0x62, 0xd1, 0x50, 0xc5, 0xa2, 0xc2, 0x06, 0x78, 0x83, 0xc9, 0x23, 0x10, 0x54, 0x11, 0x93, 0x55, 0x9c, 0x3d, 0x75, 0x02, 0x3c, 0xcf, 0x63, 0xde, 0xbc, 0x79, 0x90, 0x24, 0xc9, 0x00, 0x2f, 0x8a, 0x22, 0x44, 0x51, 0x34, 0xee, 0x49, 0x92, 0x04, 0x42, 0x08, 0x66, 0xcd, 0x9a, 0x65, 0x90, 0x20, 0x84, 0x80, 0x91, 0xc2, 0x88, 0xc9, 0x2a, 0x4c, 0x16, 0x0b, 0x14, 0x85, 0xbe, 0xeb, 0x62, 0x40, 0x26, 0x2c, 0xa4, 0x5b, 0xa0, 0x2a, 0x6b, 0x16, 0x1a, 0x1c, 0x77, 0xe4, 0x2d, 0x26, 0x76, 0x8c, 0x7a, 0xe3, 0xd7, 0xe7, 0xc3, 0x31, 0x48, 0x8a, 0x92, 0x64, 0xaa, 0x2a, 0x20, 0x8a, 0x86, 0x58, 0x28, 0x08, 0x9e, 0xe7, 0x61, 0xb3, 0xd9, 0x20, 0x8a, 0xa2, 0x91, 0xef, 0x19, 0x86, 0x31, 0x80, 0x52, 0x14, 0x65, 0xac, 0x01, 0xe5, 0xe5, 0xe5, 0x18, 0x1b, 0x1b, 0x33, 0xc6, 0x09, 0x21, 0x50, 0x25, 0x11, 0x8a, 0x02, 0xa8, 0xea, 0x04, 0x9c, 0xff, 0x4a, 0x94, 0xd0, 0x55, 0x93, 0x64, 0xf5, 0xec, 0x04, 0xfc, 0xee, 0x73, 0x38, 0xeb, 0x0d, 0x18, 0x03, 0x31, 0x59, 0x86, 0xaa, 0x25, 0x09, 0xb0, 0x14, 0x01, 0x47, 0x51, 0x90, 0x34, 0xc0, 0x64, 0x32, 0xc1, 0xe1, 0x70, 0x20, 0x1a, 0x8d, 0x1a, 0x41, 0xcc, 0xb2, 0x6c, 0x9a, 0xaf, 0x03, 0x30, 0x4a, 0x09, 0x1d, 0x3c, 0xc3, 0x30, 0x71, 0x77, 0x0a, 0xfb, 0x21, 0xca, 0x12, 0x54, 0xa8, 0x17, 0x05, 0xf2, 0xa2, 0x76, 0x64, 0x7e, 0xcf, 0x10, 0xce, 0x78, 0xdc, 0xc9, 0x45, 0x88, 0xa6, 0xd2, 0xaa, 0x6d, 0x0b, 0xcb, 0xc3, 0xc2, 0xf1, 0x50, 0x01, 0x98, 0xcd, 0x66, 0x44, 0x22, 0x11, 0x03, 0xbc, 0x1e, 0x0b, 0xba, 0x05, 0x74, 0x51, 0x55, 0x15, 0x36, 0x9b, 0x2d, 0xcd, 0x3a, 0x84, 0x10, 0xc8, 0x9a, 0x06, 0xb3, 0xd5, 0x8a, 0x71, 0x0f, 0xbd, 0x0c, 0xc0, 0xc6, 0x4b, 0xd9, 0x93, 0x18, 0x04, 0xc2, 0x01, 0x0f, 0xce, 0x06, 0x7c, 0xc6, 0x00, 0x47, 0x18, 0xd0, 0x54, 0x12, 0x8c, 0x26, 0x68, 0x20, 0x14, 0x03, 0x45, 0x03, 0x04, 0x41, 0x40, 0x24, 0x12, 0x31, 0x34, 0xcc, 0x71, 0x5c, 0x4e, 0x0b, 0x88, 0xa2, 0x08, 0x86, 0x61, 0x8c, 0x71, 0x96, 0x65, 0x21, 0xa9, 0x1a, 0x44, 0x49, 0x06, 0x51, 0xb5, 0x4b, 0xde, 0xca, 0x1a, 0x04, 0xa2, 0x01, 0x0f, 0x4e, 0x7a, 0xbd, 0xc9, 0xc2, 0xcd, 0x2c, 0xc0, 0x44, 0x92, 0x69, 0x88, 0x65, 0x58, 0x98, 0x79, 0x01, 0x2a, 0x45, 0x60, 0x32, 0x99, 0x20, 0xcb, 0x32, 0x34, 0x4d, 0x33, 0x02, 0x38, 0x17, 0x01, 0xb7, 0xdb, 0x0d, 0x8e, 0xe3, 0x0c, 0xf0, 0x84, 0x10, 0xc8, 0xaa, 0x06, 0x9f, 0xc7, 0x8b, 0x52, 0x28, 0x1f, 0x5d, 0x36, 0x02, 0x6a, 0xd8, 0x0b, 0x6f, 0xd0, 0x93, 0x74, 0x21, 0x4d, 0x06, 0x4f, 0xd8, 0x24, 0x01, 0x5e, 0x40, 0x9e, 0xa0, 0x82, 0x42, 0xdc, 0x02, 0xa3, 0xa3, 0xa3, 0x28, 0x2e, 0x2e, 0x36, 0x5c, 0x48, 0x14, 0x45, 0x63, 0xb1, 0x4a, 0x2d, 0xe6, 0x14, 0x45, 0x31, 0xc0, 0x33, 0x0c, 0x03, 0x86, 0x61, 0x30, 0x06, 0x33, 0x24, 0x45, 0x81, 0xac, 0x2a, 0xb8, 0x40, 0xce, 0xbf, 0x78, 0x02, 0x2c, 0xa7, 0x86, 0xd4, 0xbe, 0xe3, 0x79, 0x74, 0xd9, 0x8c, 0x78, 0x4c, 0xa8, 0x1a, 0x28, 0xb3, 0x25, 0x09, 0x26, 0xe8, 0x43, 0x71, 0xbe, 0x1d, 0x44, 0x28, 0x44, 0x81, 0x20, 0xc0, 0xeb, 0xf5, 0x82, 0xe7, 0x79, 0xf0, 0x3c, 0x9f, 0xa6, 0xfd, 0x4c, 0x02, 0xb1, 0x58, 0x0c, 0x2c, 0xcb, 0xa6, 0x11, 0x08, 0x2a, 0x14, 0x64, 0x49, 0x85, 0x3c, 0x31, 0x86, 0x97, 0x5d, 0x28, 0x9d, 0x66, 0x92, 0x63, 0x92, 0x3e, 0xaf, 0x0c, 0x46, 0x87, 0x4e, 0xd7, 0xd1, 0x79, 0x71, 0xd0, 0x8a, 0x28, 0x02, 0x29, 0x95, 0x64, 0x84, 0x30, 0x88, 0x2a, 0x1a, 0xc0, 0x17, 0x60, 0xa6, 0xc5, 0x82, 0x70, 0x38, 0x8c, 0x40, 0x20, 0x00, 0x93, 0xc9, 0x64, 0x00, 0xd4, 0x53, 0xa8, 0x9e, 0x46, 0x75, 0x12, 0x3c, 0xcf, 0x1b, 0x71, 0x10, 0x26, 0x66, 0x44, 0x15, 0x0d, 0x41, 0xaf, 0x1f, 0x15, 0x16, 0xf5, 0x4f, 0x39, 0x40, 0xfa, 0xb3, 0xec, 0x8f, 0x1b, 0xb3, 0x8d, 0x19, 0x04, 0x04, 0x8e, 0xdf, 0x1c, 0x39, 0x79, 0x74, 0x07, 0xca, 0xcb, 0x13, 0x77, 0x02, 0x00, 0x67, 0x02, 0x12, 0x1a, 0x0d, 0x89, 0x31, 0x44, 0x5c, 0x72, 0x1c, 0x54, 0xb1, 0x0b, 0x94, 0x18, 0x80, 0xc7, 0xe3, 0x81, 0xd9, 0x6c, 0x06, 0xc7, 0x71, 0x69, 0xa9, 0x52, 0x17, 0x42, 0x08, 0x04, 0x41, 0x30, 0xc0, 0x33, 0x0c, 0x03, 0x37, 0x25, 0x20, 0xa2, 0xc8, 0x10, 0x63, 0x61, 0x1c, 0x78, 0xfd, 0xb9, 0xcc, 0x2e, 0x45, 0x63, 0xc6, 0xa2, 0x75, 0x41, 0x72, 0xc6, 0xdb, 0xdc, 0x1f, 0xbe, 0xdd, 0xc1, 0xd6, 0xce, 0x7f, 0x49, 0x1d, 0x3c, 0x95, 0x47, 0x3b, 0x12, 0x05, 0x9c, 0x67, 0x04, 0xc8, 0x8f, 0x57, 0xa6, 0x32, 0x80, 0x40, 0x64, 0x1c, 0x1c, 0x27, 0x20, 0x6c, 0x2d, 0x85, 0xe3, 0x7c, 0x04, 0x7e, 0xbf, 0x1f, 0xc1, 0x60, 0x10, 0x1c, 0xc7, 0x19, 0x81, 0xca, 0x30, 0x8c, 0xe1, 0x4a, 0x2e, 0x97, 0xcb, 0x00, 0xaf, 0x1f, 0xc3, 0x92, 0x09, 0xa3, 0x83, 0x23, 0x10, 0xd8, 0x68, 0x68, 0x3c, 0x5d, 0xc3, 0x7a, 0xee, 0x1f, 0xc8, 0x01, 0xbc, 0x31, 0x65, 0xb1, 0xcb, 0xbe, 0x1f, 0x28, 0xb2, 0xd9, 0x36, 0xb9, 0x8f, 0x7f, 0xf1, 0x1c, 0x35, 0x3a, 0x94, 0xac, 0x34, 0x4a, 0x2a, 0xc1, 0xce, 0x9d, 0x17, 0xaf, 0x56, 0x03, 0x1e, 0x08, 0x45, 0x26, 0x0c, 0x9b, 0x4b, 0x30, 0x3b, 0x3a, 0x0c, 0xbb, 0xdd, 0x8e, 0xde, 0xde, 0x5e, 0x23, 0x16, 0x74, 0xf0, 0x00, 0x50, 0x57, 0x57, 0x67, 0xa4, 0xd7, 0x54, 0x12, 0x3d, 0x21, 0x13, 0x7c, 0xee, 0x33, 0xa0, 0xa1, 0x0c, 0xe6, 0x00, 0x98, 0x4b, 0xfb, 0x05, 0xd9, 0x08, 0xa6, 0x11, 0x18, 0x3d, 0xf8, 0xe1, 0x46, 0xfb, 0xc2, 0x25, 0xa5, 0x62, 0x24, 0xb6, 0xc8, 0xc8, 0x4e, 0xa3, 0x03, 0x79, 0x11, 0x9f, 0xbb, 0x8e, 0xfb, 0xc6, 0x22, 0xf8, 0xce, 0x8d, 0x20, 0x54, 0xe0, 0x44, 0xc0, 0x54, 0x8a, 0xdb, 0x4c, 0x26, 0xd0, 0x34, 0x8d, 0xaa, 0xaa, 0x2a, 0x1c, 0x3a, 0x74, 0xc8, 0x00, 0x2b, 0x08, 0x02, 0x1a, 0x1a, 0x1a, 0xe0, 0x74, 0x3a, 0x8d, 0xa0, 0xd5, 0x49, 0xc4, 0x08, 0x87, 0x23, 0x51, 0x82, 0xe0, 0xc8, 0x59, 0x14, 0xb1, 0xea, 0x07, 0x19, 0x00, 0x5b, 0x32, 0xb6, 0x8f, 0xb9, 0x2c, 0x30, 0x30, 0xe5, 0xc6, 0x56, 0xc1, 0x37, 0x6f, 0xd9, 0x19, 0x74, 0x7b, 0xef, 0x62, 0x1b, 0xbf, 0x0d, 0x6a, 0x59, 0xbc, 0xfe, 0x5a, 0x25, 0x9e, 0x40, 0xbd, 0xe6, 0x03, 0x4d, 0xd3, 0x18, 0x1f, 0x1f, 0xc7, 0xf1, 0xe3, 0xc7, 0x51, 0x54, 0x54, 0x84, 0xda, 0xda, 0x5a, 0x58, 0x2c, 0x96, 0x09, 0xa9, 0x93, 0x65, 0x59, 0xec, 0x0e, 0x9a, 0xf1, 0xd2, 0x10, 0x05, 0x71, 0xcf, 0x1b, 0x9a, 0xf6, 0xf6, 0xf3, 0x74, 0x8e, 0x2e, 0xdc, 0x55, 0x5d, 0x6d, 0x9d, 0x03, 0x59, 0xba, 0x74, 0xbe, 0x44, 0x7c, 0x50, 0x53, 0x6e, 0xee, 0x06, 0x0e, 0xbc, 0x7f, 0xb7, 0xa3, 0xf1, 0xf6, 0xf7, 0xbc, 0x7f, 0x7d, 0xeb, 0x35, 0x66, 0x66, 0x3d, 0x4d, 0xb9, 0x6a, 0xf0, 0x31, 0x71, 0x62, 0x11, 0x13, 0xdf, 0xac, 0x08, 0x82, 0x80, 0xb2, 0xb2, 0x32, 0xa3, 0x58, 0x4b, 0x5d, 0xb4, 0x74, 0x12, 0x84, 0x10, 0xfc, 0xc5, 0xc7, 0x40, 0x39, 0xd5, 0x07, 0x93, 0x49, 0x3e, 0x13, 0x49, 0x7f, 0xc5, 0x8a, 0x04, 0xf8, 0xee, 0x4c, 0xf0, 0x19, 0xda, 0xef, 0x9e, 0x76, 0x57, 0xc2, 0xdd, 0xfd, 0x6e, 0x47, 0x51, 0x79, 0xe9, 0x83, 0xd2, 0x1b, 0xaf, 0x28, 0x9a, 0x3f, 0x80, 0x13, 0xaa, 0x80, 0x11, 0x26, 0xdf, 0xf0, 0x7f, 0x9e, 0xe7, 0xc1, 0x71, 0x5c, 0xda, 0xda, 0xa0, 0xbb, 0x15, 0xc7, 0x71, 0xd8, 0x17, 0xe4, 0x30, 0x12, 0xd5, 0xa0, 0x1e, 0x3f, 0x86, 0x3c, 0x8b, 0xf6, 0x74, 0x86, 0x76, 0x9f, 0x49, 0x5c, 0xfe, 0x36, 0xc7, 0xeb, 0x73, 0xba, 0xd7, 0x94, 0xfa, 0x42, 0xee, 0x4f, 0xde, 0xef, 0x28, 0xb7, 0xa8, 0xb5, 0xd2, 0x7b, 0x7b, 0x14, 0x2d, 0x10, 0xc0, 0x1f, 0x63, 0x0e, 0x23, 0x03, 0xe9, 0xe0, 0x53, 0x49, 0xe8, 0xf7, 0x19, 0x86, 0xc1, 0x8e, 0xb3, 0x80, 0x3a, 0x34, 0x04, 0x22, 0x7b, 0x42, 0xee, 0x8e, 0x2d, 0x1d, 0x29, 0x8f, 0x7d, 0x24, 0x51, 0x7d, 0xf6, 0x26, 0x7a, 0x44, 0xd9, 0x9a, 0xbc, 0x2b, 0x32, 0xfa, 0x43, 0xd3, 0xef, 0xcc, 0x0d, 0x1e, 0xf8, 0xb0, 0xcf, 0x56, 0xa0, 0xbd, 0x2c, 0x1d, 0x3a, 0x8c, 0xa3, 0x22, 0x87, 0xf7, 0xa2, 0x05, 0x13, 0xac, 0xa0, 0x6b, 0x5d, 0x3f, 0x6f, 0x3f, 0x03, 0x0c, 0x47, 0x55, 0xc8, 0x3d, 0x3d, 0x28, 0xb4, 0x6a, 0x6b, 0x53, 0x3f, 0x66, 0x24, 0xb4, 0xef, 0x07, 0x90, 0xab, 0x85, 0x3e, 0xa9, 0x7b, 0x4d, 0xab, 0x37, 0xea, 0xd9, 0xb9, 0x75, 0x1d, 0x09, 0x9e, 0x39, 0xa7, 0x9c, 0x3a, 0x85, 0x57, 0xbd, 0x3c, 0x3e, 0x0a, 0x9b, 0xd3, 0xac, 0xa0, 0xbb, 0x10, 0xcb, 0xb2, 0xd8, 0xeb, 0xd1, 0xb0, 0x73, 0x58, 0x84, 0xf4, 0xf9, 0xe7, 0x30, 0xd3, 0x9e, 0x63, 0xee, 0xdf, 0xbf, 0xd0, 0x91, 0xd2, 0x79, 0xde, 0x9f, 0xf0, 0xeb, 0x9b, 0x26, 0x59, 0xbc, 0x26, 0x75, 0xaf, 0x69, 0xb7, 0xd7, 0x5d, 0xf7, 0xad, 0xaf, 0x1e, 0x19, 0x8d, 0x7e, 0x49, 0xdf, 0x70, 0x3b, 0x4f, 0x17, 0xdb, 0xf1, 0x40, 0x39, 0x85, 0xbb, 0x67, 0x70, 0xb0, 0xb2, 0xf1, 0xfd, 0xef, 0xb8, 0x4a, 0x61, 0xeb, 0xa9, 0x18, 0xde, 0x3e, 0x2b, 0x41, 0x1d, 0x1e, 0x81, 0xd6, 0xb3, 0x3f, 0x24, 0xed, 0xdd, 0x96, 0x3f, 0xc5, 0x8f, 0x1c, 0xcf, 0x26, 0x08, 0xf4, 0x76, 0xb5, 0x75, 0xce, 0xbf, 0xec, 0x1f, 0x38, 0x5c, 0x2b, 0xd7, 0x56, 0x8f, 0xf8, 0xb5, 0x2f, 0xb5, 0xca, 0xb9, 0x3c, 0x33, 0xb7, 0x0e, 0x56, 0x8b, 0x09, 0x35, 0x79, 0xf1, 0x12, 0xfc, 0x9f, 0x7e, 0x19, 0x5a, 0x2c, 0x06, 0xf9, 0xe8, 0x31, 0xd0, 0x83, 0x47, 0x43, 0x65, 0x05, 0x54, 0xfd, 0xe0, 0xae, 0x97, 0xa6, 0xf2, 0x81, 0xa3, 0x1e, 0xc0, 0x67, 0x89, 0xcb, 0xf9, 0xb9, 0x2c, 0x74, 0xc9, 0x9f, 0x98, 0x5c, 0x2b, 0xd7, 0x56, 0xfb, 0x45, 0x6a, 0x67, 0xc8, 0x27, 0x35, 0x50, 0xf6, 0x19, 0x14, 0x65, 0x8b, 0x97, 0x1e, 0x9a, 0xcf, 0x07, 0xcd, 0x33, 0xac, 0xe5, 0xd9, 0xd8, 0x9e, 0xe0, 0xee, 0x6d, 0x0b, 0xa7, 0xa8, 0xf9, 0xc2, 0x84, 0x7b, 0xd5, 0x03, 0xb8, 0x3f, 0x5b, 0x70, 0x5f, 0x36, 0x02, 0xa9, 0x44, 0xc2, 0x1a, 0xd5, 0x26, 0x4a, 0xca, 0x22, 0x00, 0xe0, 0x58, 0x72, 0xd0, 0xf3, 0xe7, 0x6d, 0xeb, 0xa6, 0xf1, 0x6d, 0xec, 0x11, 0xdd, 0x6d, 0x00, 0x6c, 0x48, 0xe9, 0x8b, 0x5e, 0x91, 0x2b, 0x72, 0x45, 0xfe, 0x1f, 0xe5, 0x3f, 0x85, 0x9b, 0xaa, 0xf5, 0x04, 0xfa, 0xe0, 0x57, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_record[2703] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd7, 0x02, 0x17, 0x10, 0x34, 0x2a, 0x08, 0x56, 0x23, 0x20, 0x00, 0x00, 0x0a, 0x1c, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xed, 0x99, 0x7b, 0x8c, 0x5d, 0xc5, 0x7d, 0xc7, 0x3f, 0x33, 0x73, 0xce, 0x7d, 0xec, 0xdd, 0xbb, 0xde, 0x87, 0x6d, 0x58, 0x43, 0x02, 0xa5, 0x25, 0x11, 0x28, 0x44, 0x51, 0xd5, 0x46, 0x2d, 0x8d, 0xa2, 0x84, 0x16, 0x55, 0x89, 0xfa, 0xa0, 0x4a, 0x9b, 0xe6, 0xa1, 0xa4, 0x7f, 0x44, 0x91, 0xf2, 0x52, 0x88, 0x4a, 0xd4, 0x92, 0x50, 0x39, 0xb5, 0x10, 0x55, 0x95, 0x4a, 0xa9, 0x23, 0x55, 0x6d, 0x5a, 0xa4, 0xa4, 0x81, 0xa6, 0xc5, 0xd8, 0xb8, 0x31, 0xb8, 0x32, 0x21, 0x41, 0x26, 0x18, 0xaf, 0x61, 0x51, 0xc1, 0xd8, 0x38, 0x06, 0x9b, 0x60, 0x6c, 0x70, 0x0c, 0xeb, 0xbd, 0xfb, 0xb8, 0xcf, 0x73, 0xe6, 0xf5, 0xeb, 0x1f, 0xe7, 0x7a, 0xd7, 0xc6, 0x98, 0xf8, 0xb1, 0x5b, 0xa5, 0x95, 0x47, 0x3a, 0x9a, 0x73, 0xaf, 0xce, 0xf9, 0x9d, 0xef, 0x77, 0xe6, 0xfb, 0x7b, 0xcc, 0x0c, 0x5c, 0x6c, 0x17, 0xdb, 0xc5, 0x76, 0xb1, 0x9d, 0x45, 0x93, 0xe5, 0x32, 0xac, 0xff, 0x37, 0xc0, 0x1f, 0xba, 0xe7, 0xee, 0x13, 0x24, 0xe4, 0xff, 0x1a, 0x01, 0x39, 0xb2, 0x79, 0x13, 0xda, 0x24, 0x1c, 0xba, 0xe7, 0x6e, 0xd6, 0xbf, 0xe7, 0xdd, 0x4b, 0x4e, 0x44, 0x2d, 0x27, 0xf8, 0x63, 0xdb, 0xfe, 0x8b, 0xe8, 0x3d, 0xc1, 0x39, 0x36, 0x7f, 0xe3, 0xeb, 0xa4, 0xca, 0x20, 0x4a, 0x50, 0xa2, 0xf8, 0xfc, 0x8e, 0x5d, 0x4b, 0x82, 0x61, 0xb9, 0x08, 0xc8, 0xf1, 0x47, 0xb7, 0x13, 0xbd, 0x27, 0xe6, 0x96, 0x0d, 0x77, 0xac, 0x63, 0xa4, 0x56, 0x27, 0x84, 0x80, 0x68, 0xc1, 0xbb, 0x48, 0x08, 0x81, 0x48, 0xe4, 0x0b, 0x8f, 0x3e, 0x7e, 0x41, 0x58, 0x92, 0xe5, 0x00, 0x3f, 0x33, 0xf9, 0x38, 0x12, 0x03, 0x00, 0xff, 0xb1, 0xf6, 0x36, 0xd6, 0xac, 0x5e, 0x4d, 0xa3, 0x31, 0xcb, 0xbe, 0x57, 0x8e, 0xb2, 0x7f, 0xa6, 0xc1, 0x0b, 0x9d, 0x8c, 0x4e, 0x0c, 0xf4, 0x82, 0x50, 0x02, 0xde, 0x37, 0x3a, 0xc4, 0x43, 0x33, 0x4d, 0x39, 0x1f, 0x22, 0x6a, 0x39, 0xc0, 0xeb, 0x52, 0x89, 0x68, 0x2d, 0x77, 0xfd, 0xf9, 0x17, 0xb9, 0xf2, 0xaa, 0xab, 0xd8, 0xbb, 0x77, 0x2f, 0xcf, 0x1d, 0x9f, 0x66, 0xae, 0x67, 0xe9, 0x46, 0x4f, 0xc3, 0x3a, 0xe6, 0x5d, 0xa0, 0x13, 0x03, 0x9d, 0x20, 0xe4, 0x22, 0xbc, 0xa5, 0x94, 0x72, 0xc3, 0xa5, 0x2b, 0xf9, 0xce, 0x91, 0x63, 0xe7, 0x84, 0x4d, 0x2f, 0xb5, 0x6c, 0x24, 0x86, 0x05, 0xf0, 0x57, 0x5f, 0x7b, 0x1d, 0xcf, 0x3f, 0xff, 0x3c, 0xb9, 0x0b, 0xac, 0xae, 0x0e, 0x70, 0xd9, 0x50, 0x8d, 0x91, 0x52, 0x99, 0x55, 0xa5, 0x94, 0x15, 0xa9, 0xa1, 0xaa, 0x0d, 0x55, 0xad, 0x28, 0x2b, 0x85, 0x51, 0x8a, 0x03, 0x73, 0x4d, 0x44, 0x84, 0x1f, 0xde, 0xfc, 0xd9, 0xb3, 0x76, 0x76, 0xb5, 0x94, 0x0e, 0xab, 0xcb, 0x25, 0x74, 0x92, 0xf0, 0xbd, 0xaf, 0xfe, 0x25, 0xbf, 0xfe, 0xfe, 0xf7, 0xf3, 0xca, 0xb3, 0xcf, 0x92, 0x67, 0x39, 0xb9, 0xcb, 0x69, 0x75, 0x7b, 0x4c, 0xcd, 0x35, 0x69, 0xf4, 0x3a, 0x74, 0xac, 0x03, 0x60, 0xba, 0x97, 0xf1, 0x42, 0x27, 0x63, 0xce, 0x7b, 0xb4, 0x82, 0xe3, 0x2e, 0xb0, 0xfd, 0x96, 0x9b, 0x09, 0xc1, 0xe1, 0x72, 0x87, 0xb7, 0x96, 0x3f, 0xf8, 0xf6, 0x5d, 0x6f, 0x8a, 0x55, 0x2d, 0x55, 0xa8, 0x34, 0x69, 0x8a, 0x4e, 0x12, 0x36, 0xdc, 0xb1, 0x8e, 0xdf, 0xbc, 0xf1, 0x46, 0x7a, 0x9d, 0x0e, 0xcd, 0xe9, 0x19, 0x4c, 0x92, 0xe2, 0x6c, 0x8f, 0x6e, 0x63, 0x86, 0x57, 0x1b, 0xd3, 0x8c, 0x0e, 0x0e, 0x31, 0xbc, 0xe6, 0x52, 0x00, 0x3a, 0xd3, 0x0d, 0xf6, 0xbf, 0x74, 0x98, 0xad, 0x2f, 0xbd, 0xc4, 0xd3, 0xad, 0x1e, 0x3b, 0xbe, 0x72, 0x0b, 0xde, 0x7a, 0xbc, 0xb7, 0xb8, 0xcc, 0xe1, 0x9c, 0x03, 0x9f, 0x11, 0xb2, 0x9c, 0x0f, 0x6d, 0xdc, 0xf2, 0x86, 0x98, 0x2f, 0x94, 0x80, 0x1c, 0xba, 0xe7, 0x6e, 0xb4, 0x49, 0x50, 0x26, 0x65, 0xf3, 0x37, 0xbe, 0xce, 0xbb, 0x6f, 0xb8, 0x81, 0x81, 0xfa, 0x30, 0x8d, 0xa3, 0x47, 0x49, 0x2b, 0x29, 0x26, 0x4d, 0x09, 0xce, 0x31, 0x37, 0x35, 0xcd, 0xe8, 0xa5, 0xab, 0xa9, 0xd6, 0xeb, 0xf4, 0x5a, 0x2d, 0xb2, 0x6e, 0x46, 0xf0, 0x8e, 0xee, 0xf1, 0x29, 0x6e, 0xba, 0x67, 0x33, 0x13, 0x6b, 0x6f, 0xc5, 0x5b, 0x8b, 0xcf, 0xfb, 0x04, 0xac, 0x23, 0xb8, 0x1c, 0xb1, 0x39, 0x21, 0xcf, 0x71, 0xce, 0xe1, 0x5c, 0x60, 0x62, 0xff, 0x73, 0xfc, 0xd3, 0xa1, 0x97, 0x17, 0xb0, 0x5f, 0x48, 0x14, 0x92, 0x03, 0xdf, 0xf9, 0x17, 0x82, 0x2b, 0xe4, 0xb0, 0xe5, 0x9b, 0x7f, 0xcf, 0xbb, 0xae, 0xbf, 0x1e, 0x93, 0xa4, 0x24, 0x95, 0x0a, 0xa6, 0x64, 0x18, 0x18, 0x1a, 0x22, 0x29, 0x95, 0xe8, 0x36, 0x9b, 0x0c, 0xad, 0x1c, 0x65, 0x78, 0x7c, 0x0d, 0x9d, 0xd9, 0x59, 0x5c, 0xee, 0x68, 0xcf, 0xcd, 0xd0, 0x99, 0x6e, 0xf0, 0xb1, 0x07, 0x1e, 0xe4, 0x89, 0x75, 0xb7, 0x21, 0x21, 0x20, 0x22, 0x48, 0x0c, 0x48, 0x94, 0xe2, 0xbe, 0x7f, 0x45, 0x81, 0x18, 0x21, 0x86, 0xb8, 0x64, 0x61, 0x54, 0xf6, 0xfd, 0xc3, 0x37, 0x89, 0xde, 0x03, 0xb0, 0xf5, 0x9f, 0xbf, 0xc5, 0xd5, 0xd7, 0x5e, 0x57, 0x4c, 0xa9, 0x31, 0xe8, 0x44, 0xa3, 0x94, 0xc2, 0x5b, 0x4b, 0xf0, 0xa1, 0xe8, 0x6d, 0x01, 0x30, 0x49, 0x8b, 0x4f, 0x76, 0x1b, 0x33, 0x7c, 0xec, 0x81, 0x07, 0x99, 0xbc, 0x7d, 0x2d, 0x31, 0xc6, 0xe2, 0xf2, 0x11, 0x51, 0x42, 0x8c, 0x11, 0x09, 0xa1, 0x40, 0xed, 0x3d, 0x22, 0x82, 0xb3, 0x8e, 0xad, 0xcf, 0xec, 0x61, 0xa4, 0x5a, 0xbe, 0x60, 0x02, 0xb2, 0xfb, 0xef, 0xfe, 0x96, 0x18, 0x3d, 0xe4, 0xf0, 0xe0, 0x77, 0xff, 0x95, 0x2b, 0xd6, 0x8c, 0x13, 0xa5, 0x00, 0x10, 0x9d, 0xc5, 0x67, 0x19, 0x79, 0xaf, 0x07, 0x40, 0xf4, 0x91, 0xbc, 0xd7, 0x23, 0x9b, 0x9f, 0xa1, 0x36, 0x5c, 0xa7, 0x3a, 0xb4, 0x82, 0x6a, 0xbd, 0xc6, 0x47, 0xef, 0xdf, 0xc6, 0x93, 0x7f, 0xb3, 0xae, 0x88, 0x5a, 0xde, 0x2f, 0x92, 0x08, 0xfd, 0x5e, 0x80, 0xe0, 0x89, 0x02, 0x36, 0xb7, 0x6c, 0x7d, 0x66, 0x0f, 0x63, 0x95, 0x32, 0x8d, 0x5e, 0x7e, 0x41, 0x04, 0x64, 0xf2, 0x8e, 0xbf, 0x26, 0x48, 0x80, 0x1c, 0x1e, 0xde, 0xb2, 0x81, 0xb1, 0xa1, 0x15, 0x38, 0x1f, 0xd0, 0xde, 0x62, 0xb3, 0x8c, 0x52, 0xb5, 0x82, 0xed, 0x75, 0xf1, 0xd6, 0x93, 0xb5, 0x1b, 0xe8, 0x24, 0xc1, 0xcd, 0x35, 0x68, 0xb7, 0xbb, 0xcc, 0x4d, 0x3c, 0x4e, 0xad, 0x5e, 0xe3, 0x8f, 0x37, 0xdd, 0x5f, 0x80, 0xf7, 0xae, 0xc8, 0xc8, 0x27, 0x46, 0x5f, 0x02, 0xc1, 0x17, 0xbf, 0x11, 0x8f, 0xf8, 0x80, 0xf7, 0x9e, 0x2d, 0xff, 0xfd, 0x34, 0x97, 0xd7, 0x07, 0x39, 0xdc, 0x6c, 0x51, 0x49, 0xf4, 0x79, 0x13, 0x90, 0x89, 0xb5, 0xb7, 0x16, 0x1f, 0x05, 0x76, 0x6c, 0x2b, 0xa2, 0x42, 0xee, 0x72, 0xb4, 0xd6, 0xa4, 0x9d, 0x36, 0xd6, 0xa4, 0xf4, 0xda, 0x2d, 0x24, 0x06, 0xc6, 0xd6, 0x8c, 0xf3, 0xdc, 0xce, 0x09, 0xb4, 0xd1, 0xe4, 0x2e, 0xa7, 0xdd, 0xcb, 0x68, 0x75, 0x3a, 0xfc, 0xd5, 0x0f, 0x9e, 0x3d, 0x15, 0xbc, 0xf7, 0x04, 0xd7, 0xef, 0xfb, 0xe0, 0x63, 0x88, 0x10, 0x7c, 0x01, 0x7e, 0xf2, 0x49, 0xc6, 0xeb, 0x35, 0x66, 0x7a, 0x19, 0xb5, 0xd4, 0xf0, 0x5a, 0xb7, 0x77, 0x5e, 0x04, 0xe4, 0x91, 0xbf, 0xf8, 0xd2, 0x82, 0xc3, 0x6e, 0xfc, 0xb7, 0x7f, 0x67, 0xac, 0x5e, 0x23, 0x4d, 0x53, 0x52, 0x65, 0xd0, 0x52, 0x68, 0xbe, 0x2c, 0xb3, 0x85, 0x04, 0xfa, 0x32, 0x58, 0x79, 0xc5, 0x95, 0x1c, 0xd8, 0xb7, 0x87, 0xcc, 0x5a, 0x72, 0xe7, 0xf8, 0xda, 0xd3, 0xfb, 0x4e, 0x01, 0x1f, 0x5c, 0xbf, 0x0f, 0x81, 0x10, 0xfb, 0xa3, 0xef, 0x3d, 0x04, 0x4b, 0xc8, 0x72, 0xee, 0x7f, 0x62, 0x92, 0xd1, 0x72, 0x85, 0xf9, 0x5e, 0x8e, 0x93, 0x40, 0xdb, 0x7a, 0x82, 0x9c, 0x9a, 0xdb, 0xcc, 0xd9, 0x80, 0x7f, 0xe8, 0x8b, 0x9f, 0x41, 0x22, 0x28, 0xad, 0xd8, 0xbc, 0xf1, 0x3e, 0x4a, 0xa5, 0x84, 0x10, 0x23, 0x1a, 0x10, 0x55, 0x18, 0x54, 0x02, 0x4a, 0x29, 0x74, 0xb0, 0x84, 0x18, 0xf1, 0x3e, 0x92, 0x96, 0x52, 0x46, 0xc6, 0x56, 0xd1, 0x38, 0xfe, 0x2a, 0x5f, 0x7d, 0x72, 0x0f, 0x93, 0xb7, 0xaf, 0x45, 0x82, 0x5f, 0x1c, 0xf9, 0x10, 0xf0, 0xd6, 0x13, 0x63, 0x7f, 0x16, 0x62, 0x44, 0xa2, 0x47, 0x9c, 0xe5, 0xbe, 0x9d, 0x13, 0x0c, 0x97, 0xca, 0x34, 0x9d, 0xc5, 0x4b, 0xa4, 0x63, 0x03, 0x2d, 0xef, 0xf0, 0x22, 0x1c, 0xce, 0x2c, 0xc0, 0xba, 0xb3, 0x99, 0x01, 0xb9, 0xef, 0x4f, 0xfe, 0x90, 0xe0, 0x02, 0xa4, 0x70, 0xfb, 0x9d, 0xdf, 0xe5, 0x9d, 0x2b, 0x57, 0x12, 0x82, 0x20, 0x5a, 0x98, 0xeb, 0x64, 0x1c, 0xfa, 0xd9, 0x6b, 0x4c, 0xf5, 0x32, 0x3a, 0x21, 0x50, 0x4f, 0x0d, 0x03, 0x49, 0xc2, 0x5b, 0xeb, 0x83, 0x5c, 0x39, 0x36, 0xca, 0xdb, 0xaf, 0xbc, 0x02, 0x53, 0x2e, 0xf3, 0xe5, 0x5d, 0x4f, 0xf1, 0xc4, 0xba, 0xdb, 0xfa, 0x5a, 0x2f, 0x1c, 0x36, 0xb8, 0xd0, 0xd7, 0xbf, 0x5f, 0xbc, 0xf7, 0x96, 0x98, 0x67, 0x6c, 0x7a, 0xf4, 0x31, 0x46, 0xca, 0x55, 0x9a, 0x36, 0xc3, 0xc7, 0x48, 0x33, 0xf7, 0xf4, 0x82, 0xc3, 0x86, 0xc8, 0xce, 0x66, 0xe7, 0x94, 0xfc, 0xf5, 0x66, 0x89, 0x4c, 0xbe, 0xff, 0x89, 0x0f, 0x43, 0x52, 0xc1, 0x24, 0x86, 0xf5, 0x9b, 0x36, 0x71, 0xcd, 0xc8, 0x08, 0x28, 0x8d, 0x51, 0x8a, 0x17, 0x66, 0xe7, 0xf8, 0x61, 0x63, 0x16, 0xa3, 0x8a, 0x5a, 0xa6, 0x66, 0x14, 0x83, 0x26, 0xa1, 0x6c, 0x14, 0x95, 0xfe, 0x33, 0x46, 0x29, 0x76, 0xcc, 0xb7, 0x98, 0x58, 0x7b, 0x2b, 0x72, 0xc2, 0x59, 0xfb, 0x0e, 0x1b, 0xbd, 0x5f, 0x90, 0x4d, 0x08, 0x45, 0x2f, 0xdd, 0x16, 0x9b, 0x76, 0x4e, 0x50, 0x4f, 0x52, 0xac, 0x14, 0x33, 0x7c, 0xbc, 0x9b, 0xd3, 0x09, 0x8e, 0xa6, 0xf5, 0x4c, 0xb6, 0xbb, 0xa7, 0x61, 0x3e, 0xd3, 0x0c, 0xc8, 0xc6, 0x0f, 0xfd, 0x3e, 0x62, 0x1d, 0x0a, 0x58, 0xff, 0xfd, 0x6d, 0xfc, 0xf2, 0xf0, 0x0a, 0x7c, 0x8c, 0x68, 0x03, 0xcf, 0x4e, 0xcf, 0xf0, 0xc8, 0x5c, 0x1b, 0x0d, 0x78, 0x11, 0x82, 0x08, 0x89, 0xd6, 0x38, 0xef, 0x88, 0x1e, 0xca, 0x4a, 0xa1, 0x95, 0xe6, 0x48, 0x6e, 0xd9, 0xf1, 0x95, 0x5b, 0x16, 0x13, 0x92, 0x2f, 0x08, 0x9c, 0x88, 0x36, 0xc1, 0x87, 0x7e, 0xf8, 0xb5, 0x84, 0x76, 0x9b, 0x8d, 0x8f, 0xed, 0x62, 0x74, 0xa0, 0xc2, 0x5c, 0x96, 0x91, 0x68, 0x4d, 0xcb, 0x3a, 0x72, 0x09, 0x74, 0x5c, 0x78, 0x43, 0xf0, 0x67, 0x22, 0x20, 0xdf, 0xfb, 0xbd, 0xdf, 0x25, 0x84, 0xa2, 0x9e, 0xff, 0xd6, 0x43, 0x3f, 0xe2, 0x97, 0x86, 0xea, 0x08, 0x42, 0x54, 0x8a, 0x46, 0xa7, 0xc7, 0x23, 0x73, 0xed, 0x22, 0xc6, 0x03, 0x2b, 0x13, 0xcd, 0xcd, 0xd7, 0x5d, 0xc3, 0xaa, 0x15, 0x23, 0x00, 0xcc, 0x77, 0x5b, 0xdc, 0xb9, 0x67, 0x3f, 0x07, 0x7b, 0x39, 0xdb, 0x6f, 0xb9, 0xb9, 0x30, 0x18, 0xfb, 0x19, 0x56, 0x09, 0x31, 0xc4, 0xc5, 0x68, 0xe3, 0x3d, 0x22, 0x81, 0xd8, 0x69, 0x73, 0xef, 0xce, 0x09, 0x56, 0x0d, 0xd4, 0x78, 0xb5, 0xdb, 0xa6, 0x6b, 0x3d, 0xa9, 0x36, 0xe4, 0x12, 0x68, 0x59, 0xc7, 0xae, 0x56, 0xe7, 0x8c, 0x6a, 0x79, 0x3d, 0x01, 0xf9, 0xf6, 0xef, 0xbc, 0x0f, 0xef, 0x8a, 0x0c, 0x7b, 0xe7, 0x8f, 0x77, 0x70, 0xd9, 0x60, 0x8d, 0x20, 0x82, 0x89, 0x45, 0xf1, 0xfd, 0xcc, 0xdc, 0xfc, 0xc2, 0xc3, 0x6f, 0xab, 0x94, 0xf8, 0xcc, 0xaf, 0xbe, 0x93, 0xe1, 0x81, 0x41, 0xac, 0xf7, 0x0c, 0x54, 0x2b, 0x98, 0x44, 0x71, 0xb0, 0x97, 0xf3, 0xa3, 0x2f, 0x7d, 0xae, 0x30, 0x28, 0xd2, 0x27, 0x20, 0x8b, 0x12, 0x5a, 0x08, 0x95, 0x16, 0xc9, 0x73, 0x36, 0xec, 0xd8, 0xc5, 0x68, 0xa5, 0xc2, 0x6b, 0x9d, 0x0e, 0x6d, 0xef, 0xd1, 0x40, 0x10, 0xa1, 0x6d, 0xfd, 0x69, 0x9a, 0x7f, 0x33, 0x02, 0xf2, 0x8f, 0xef, 0xbd, 0x1e, 0xd7, 0x1f, 0xf9, 0xbb, 0x26, 0x27, 0x59, 0x55, 0xa9, 0x2e, 0x84, 0xad, 0x18, 0x41, 0x8b, 0x70, 0x24, 0xb7, 0x0b, 0x2f, 0xfc, 0xc6, 0xaa, 0x51, 0xea, 0x03, 0x55, 0x8e, 0xcd, 0x35, 0xc8, 0xad, 0x43, 0x6b, 0xcd, 0xd7, 0x9e, 0xde, 0xc7, 0xb6, 0xcf, 0x7e, 0x7a, 0xd1, 0x68, 0x14, 0x84, 0x7e, 0x5d, 0x13, 0x42, 0x91, 0x61, 0xc5, 0x43, 0xf0, 0x84, 0x2c, 0xe7, 0xde, 0x9d, 0x13, 0xac, 0xa8, 0x94, 0x99, 0xb7, 0x39, 0x5d, 0xe7, 0x17, 0x16, 0x28, 0x6d, 0x6f, 0x79, 0xac, 0xd9, 0xfe, 0xb9, 0x05, 0xe7, 0x29, 0x33, 0x70, 0xf0, 0xd8, 0x31, 0xae, 0x1e, 0x1f, 0xe7, 0xde, 0xdd, 0xbb, 0x19, 0xa9, 0x94, 0x11, 0x25, 0x84, 0x50, 0x04, 0x5b, 0x8d, 0x20, 0xa2, 0xc8, 0x4e, 0x0a, 0xc3, 0x3d, 0x17, 0x88, 0x01, 0x2a, 0x69, 0x89, 0xa9, 0xb9, 0x36, 0xeb, 0x0f, 0xbe, 0xc8, 0x03, 0x9f, 0xfa, 0x33, 0xd0, 0xba, 0x60, 0x0c, 0x44, 0x01, 0x45, 0x51, 0x07, 0x11, 0x8b, 0x04, 0x25, 0x3e, 0x10, 0x83, 0x67, 0xe3, 0xce, 0x27, 0xa8, 0x98, 0x84, 0xd9, 0x5e, 0x4e, 0xde, 0x1f, 0xb8, 0x5e, 0x0c, 0xb8, 0x20, 0x67, 0x05, 0xfe, 0x34, 0x02, 0x5a, 0x69, 0x76, 0xbf, 0x7c, 0x84, 0x77, 0x8c, 0xad, 0xe4, 0x48, 0xab, 0x09, 0x1a, 0x8c, 0x82, 0x10, 0x40, 0x74, 0x61, 0xad, 0x04, 0x9c, 0x98, 0x83, 0xfd, 0xad, 0x16, 0xef, 0xf5, 0x16, 0x41, 0x58, 0x7f, 0xf0, 0x45, 0xb6, 0x7c, 0xf2, 0x4f, 0x41, 0x9d, 0x94, 0xea, 0x25, 0xf6, 0xbb, 0x58, 0x10, 0xf0, 0x45, 0x6d, 0xe3, 0x9c, 0xe3, 0x3f, 0x27, 0x9f, 0xa4, 0x62, 0x12, 0x1a, 0x59, 0x8e, 0x51, 0x0a, 0x85, 0x22, 0x8b, 0xee, 0x9c, 0xc0, 0x9f, 0x46, 0xc0, 0xc7, 0x48, 0x2d, 0x49, 0xa9, 0x95, 0xcb, 0x8c, 0x4b, 0x8d, 0x54, 0x19, 0x5e, 0x6e, 0xb5, 0x30, 0x0a, 0x44, 0x40, 0x45, 0xb8, 0xac, 0x9c, 0x72, 0x28, 0x2f, 0x32, 0xf2, 0xab, 0xb9, 0xe5, 0xbe, 0xbd, 0xfb, 0xd8, 0x3e, 0xdb, 0x62, 0xf3, 0x87, 0x6f, 0xea, 0x0f, 0xc2, 0xa2, 0xbd, 0x28, 0x8b, 0x44, 0xa2, 0x14, 0xfe, 0xe0, 0x9d, 0x67, 0xeb, 0x53, 0x4f, 0x31, 0x5a, 0xae, 0x70, 0xb4, 0xdd, 0x29, 0xc2, 0xad, 0x56, 0xcc, 0xda, 0xfc, 0x9c, 0xc1, 0x9f, 0x46, 0xe0, 0x92, 0xe1, 0x3a, 0x99, 0xb5, 0xc4, 0x08, 0x95, 0x24, 0x61, 0xb0, 0x5c, 0xc2, 0x06, 0x4f, 0xc9, 0x24, 0x1c, 0xed, 0xb4, 0x50, 0x02, 0x57, 0xd7, 0xaa, 0x0b, 0x04, 0xa6, 0x7d, 0x64, 0xfb, 0x6c, 0x8b, 0x0d, 0x37, 0x7d, 0x00, 0x54, 0x51, 0x4e, 0x9c, 0x16, 0xd2, 0x44, 0x0a, 0x02, 0x11, 0xbc, 0xf7, 0xfc, 0x60, 0xef, 0x5e, 0x56, 0x94, 0xca, 0x1c, 0x6d, 0x77, 0x48, 0xb4, 0x46, 0x10, 0x66, 0xf2, 0x0c, 0x1f, 0x39, 0x67, 0xf0, 0xa7, 0x11, 0xc8, 0xac, 0xed, 0x87, 0xc7, 0x48, 0xbd, 0x52, 0x26, 0x77, 0x81, 0x6a, 0x29, 0xa5, 0x5e, 0x29, 0xe3, 0x24, 0x14, 0x1b, 0x53, 0x1d, 0xe1, 0x5d, 0x83, 0x15, 0x76, 0xb7, 0x33, 0x44, 0x84, 0xbb, 0x3f, 0x78, 0x63, 0x1f, 0x78, 0x38, 0x33, 0x01, 0xc0, 0x59, 0xc7, 0xc3, 0xcf, 0xed, 0xa7, 0x6a, 0x8a, 0x82, 0xac, 0x94, 0x68, 0x9c, 0x17, 0xe6, 0x5d, 0x8e, 0x52, 0x8a, 0xc7, 0x9a, 0xad, 0xf3, 0x5a, 0x21, 0x9e, 0xfc, 0x82, 0x7c, 0xe1, 0xaa, 0xb7, 0x92, 0x1a, 0x43, 0x9a, 0x16, 0x25, 0x92, 0x52, 0x0a, 0x25, 0x8a, 0x48, 0x24, 0x35, 0xc5, 0x7f, 0x53, 0xed, 0x36, 0x65, 0x65, 0xf8, 0xf8, 0x27, 0x3e, 0xce, 0xbe, 0x89, 0x9d, 0xc5, 0x33, 0x51, 0xbd, 0x21, 0xf8, 0x05, 0x29, 0xa9, 0xc8, 0x83, 0x7b, 0x7e, 0x42, 0x35, 0x35, 0xb4, 0xad, 0x27, 0x35, 0x8a, 0x9e, 0x0b, 0x34, 0x5d, 0x31, 0x60, 0xfd, 0xbc, 0x72, 0x5e, 0xcb, 0x5b, 0xf5, 0xfa, 0x1d, 0xe4, 0x4f, 0xbe, 0xe5, 0x52, 0xca, 0x89, 0xa1, 0xac, 0x0c, 0xa9, 0x31, 0xa8, 0xbe, 0xa8, 0x2b, 0x69, 0x42, 0x6a, 0x0c, 0xbe, 0xef, 0x90, 0xaf, 0xcc, 0x37, 0x19, 0x4a, 0x4b, 0x5c, 0x7b, 0xf9, 0xe5, 0x68, 0xbd, 0x28, 0x1f, 0x7d, 0x52, 0x79, 0x18, 0x43, 0x31, 0x03, 0xdb, 0x0f, 0x3c, 0x5f, 0x48, 0xa8, 0xef, 0xd4, 0x2e, 0x08, 0xbd, 0xe0, 0x88, 0xc0, 0xf6, 0xd9, 0xd6, 0x79, 0x83, 0x3f, 0xd3, 0x8b, 0x02, 0xf0, 0x91, 0xf1, 0xd5, 0x94, 0x12, 0x4d, 0x39, 0x31, 0x24, 0xe8, 0x62, 0x39, 0x68, 0x12, 0x4a, 0x89, 0x26, 0x4d, 0x0c, 0xde, 0x45, 0xf2, 0x10, 0x38, 0xde, 0xeb, 0xb0, 0xa2, 0x5c, 0xe6, 0x9a, 0x35, 0xe3, 0x24, 0x5a, 0xa3, 0x4f, 0xda, 0x6a, 0xf2, 0x44, 0x7e, 0x7c, 0xe0, 0xa7, 0x84, 0xbe, 0x37, 0xfb, 0x18, 0x51, 0x4a, 0xd1, 0xf6, 0x16, 0xa5, 0xd4, 0x05, 0x83, 0xff, 0xb9, 0xc5, 0x1c, 0xc0, 0x1f, 0x5d, 0x32, 0x46, 0x59, 0x9b, 0x05, 0x32, 0xa9, 0x36, 0x24, 0x5a, 0xa3, 0x44, 0x15, 0x49, 0x4e, 0x22, 0x3e, 0x46, 0xe6, 0x72, 0xcb, 0x50, 0xa5, 0xc4, 0x35, 0x6b, 0xc6, 0x17, 0xb4, 0xbf, 0xeb, 0xc5, 0xc3, 0x0b, 0x9b, 0xb9, 0xf3, 0xce, 0x51, 0xd5, 0x86, 0x4e, 0x70, 0x88, 0x08, 0x0f, 0x2f, 0x01, 0xf8, 0xb3, 0x35, 0x20, 0x00, 0x1f, 0x1c, 0x1b, 0x2e, 0xa4, 0xf5, 0x3a, 0x32, 0x0b, 0xd9, 0x56, 0x84, 0xa0, 0x84, 0xa9, 0x76, 0x46, 0x25, 0xd5, 0x24, 0xba, 0xa8, 0x48, 0x5b, 0xd6, 0xd1, 0xb4, 0x96, 0xaa, 0x49, 0xb1, 0xb1, 0x58, 0x90, 0x2c, 0x15, 0xf8, 0x73, 0x35, 0x22, 0x00, 0xbf, 0x3d, 0x52, 0xa7, 0xac, 0xcd, 0x29, 0x64, 0x0a, 0xe9, 0x14, 0x2d, 0x88, 0x60, 0x63, 0xe4, 0x68, 0xbb, 0xc3, 0x25, 0x03, 0x55, 0xa6, 0x7a, 0x19, 0x69, 0xdf, 0x3f, 0x9c, 0xc8, 0x92, 0xc8, 0xe6, 0x42, 0x37, 0xb6, 0x04, 0xe0, 0x3d, 0x43, 0x83, 0x94, 0x8d, 0x3a, 0x85, 0x4c, 0x6a, 0x14, 0xa9, 0x31, 0xb8, 0x10, 0x38, 0xdc, 0xee, 0x50, 0x37, 0x69, 0xbf, 0x8a, 0x85, 0xae, 0xf7, 0x3c, 0x7a, 0x01, 0xd1, 0x66, 0x39, 0xf6, 0x46, 0x05, 0xe0, 0xd7, 0x06, 0x07, 0xa8, 0x68, 0x7d, 0x0a, 0x99, 0x18, 0x61, 0x2a, 0xcb, 0xa8, 0xa7, 0x06, 0xdb, 0xaf, 0x89, 0x1e, 0x59, 0x06, 0xf0, 0x4b, 0xb6, 0x37, 0x0a, 0xf0, 0x8e, 0x5a, 0x85, 0x8a, 0xd2, 0x54, 0xb4, 0x46, 0x6b, 0x68, 0x7a, 0xcf, 0x50, 0x92, 0xe0, 0x82, 0xbc, 0x69, 0x3d, 0xff, 0x8b, 0x74, 0xc4, 0x24, 0x00, 0xbf, 0x52, 0x29, 0x51, 0xee, 0x6b, 0xbe, 0x9e, 0x18, 0x1e, 0x6f, 0x75, 0x97, 0xfb, 0x28, 0x6b, 0x59, 0x8e, 0x54, 0xe5, 0xb7, 0x86, 0x6a, 0xcb, 0x72, 0x2a, 0xf9, 0xff, 0xe2, 0x6c, 0xf8, 0x62, 0xfb, 0x45, 0x6a, 0xff, 0x03, 0x7f, 0x0f, 0x83, 0x20, 0x05, 0xc9, 0x04, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_sun[1918] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x9c, 0xb8, 0x11, 0xca, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0x9f, 0x00, 0x7b, 0x00, 0x01, 0x85, 0xb6, 0xbc, 0x99, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd9, 0x01, 0x02, 0x08, 0x1b, 0x34, 0xe8, 0x1d, 0x68, 0xeb, 0x00, 0x00, 0x07, 0x0b, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xad, 0x97, 0x4b, 0x8c, 0x1c, 0x57, 0x15, 0x86, 0xbf, 0x7b, 0x6f, 0x3d, 0xfa, 0x35, 0xd3, 0xd3, 0xf3, 0xf2, 0xf8, 0x15, 0x3b, 0x76, 0x1c, 0x85, 0x05, 0x04, 0x45, 0x0e, 0x36, 0x32, 0x11, 0x8a, 0x48, 0xe4, 0x28, 0xc0, 0x8a, 0xc7, 0x2a, 0x2c, 0x40, 0x59, 0xb0, 0x00, 0x36, 0xac, 0x58, 0x11, 0xa4, 0xec, 0x90, 0xb2, 0x41, 0xd9, 0xf1, 0x10, 0x48, 0x11, 0x42, 0x46, 0x22, 0x32, 0x12, 0x20, 0x10, 0x44, 0x04, 0x83, 0x64, 0x14, 0x14, 0x83, 0x94, 0xd8, 0x41, 0x31, 0xf6, 0x78, 0x6c, 0x67, 0x3c, 0x99, 0x9e, 0x47, 0xf7, 0x74, 0xbd, 0xab, 0x0e, 0x8b, 0x7b, 0x7b, 0xba, 0xec, 0x90, 0x40, 0x4c, 0x5a, 0x3a, 0xba, 0x57, 0x55, 0x5d, 0xf7, 0xfc, 0xe7, 0x3f, 0xe7, 0x3f, 0x75, 0x4a, 0x71, 0x17, 0xbf, 0x87, 0xef, 0x6b, 0xaa, 0x76, 0x2b, 0xeb, 0xfa, 0xbe, 0x2c, 0xf9, 0x06, 0x2f, 0x4e, 0x55, 0x9a, 0x16, 0xfa, 0xe6, 0x5f, 0x5e, 0xcb, 0x47, 0x77, 0x73, 0x9e, 0xfa, 0x5f, 0xfe, 0xd4, 0x34, 0x3d, 0x4e, 0x3d, 0x38, 0x98, 0x9b, 0xeb, 0xca, 0x17, 0x3b, 0x4d, 0x9e, 0x6c, 0x04, 0x72, 0xa2, 0x11, 0xb2, 0x10, 0x7a, 0xa0, 0x34, 0x14, 0x05, 0xc4, 0x29, 0x55, 0x92, 0xaa, 0x6b, 0x71, 0xc2, 0xb9, 0x41, 0xc4, 0x8b, 0xeb, 0x9b, 0xfe, 0x2f, 0xff, 0x7c, 0x29, 0xcd, 0x3e, 0x10, 0x10, 0x4f, 0x9c, 0xd4, 0x07, 0xf6, 0x74, 0xf9, 0xf6, 0x6c, 0x57, 0x9e, 0xda, 0x33, 0x47, 0x63, 0xba, 0x03, 0xcd, 0x06, 0x84, 0x1e, 0x18, 0xcf, 0xfe, 0xa7, 0x28, 0x21, 0xcf, 0x21, 0xcd, 0x60, 0x67, 0x04, 0x9b, 0x03, 0x58, 0xdb, 0x60, 0x75, 0x63, 0x5b, 0x3d, 0xd7, 0x1f, 0x86, 0xdf, 0x7b, 0xe9, 0x42, 0x9c, 0xdc, 0x15, 0x88, 0x13, 0x47, 0x03, 0x7d, 0xef, 0xa1, 0xe2, 0x1b, 0xfb, 0xe7, 0xe5, 0xd9, 0x83, 0x4b, 0xb4, 0x67, 0x7b, 0x30, 0xdd, 0x81, 0x56, 0x08, 0x8d, 0x00, 0x3c, 0x0f, 0xb4, 0x7b, 0xba, 0xa8, 0xa0, 0x2c, 0x20, 0xcd, 0x85, 0x28, 0x51, 0xec, 0x44, 0xc2, 0x60, 0xa8, 0x78, 0x7b, 0x13, 0x56, 0x56, 0xd5, 0xe5, 0xb5, 0x3e, 0x5f, 0x39, 0x7b, 0xbe, 0x7a, 0xf9, 0x7d, 0x81, 0x38, 0x7d, 0xd2, 0x0b, 0xf7, 0xcf, 0x54, 0x2f, 0x1c, 0x39, 0x28, 0x9f, 0x3b, 0xb0, 0x08, 0xb3, 0x3d, 0xe8, 0x76, 0xa0, 0xd5, 0x80, 0x66, 0x68, 0x01, 0x78, 0x1e, 0x28, 0x05, 0x02, 0x48, 0x35, 0x61, 0x23, 0x49, 0x21, 0x4e, 0x61, 0x14, 0xef, 0x32, 0xc2, 0xf2, 0x4d, 0xca, 0x95, 0x55, 0xf5, 0xad, 0xcb, 0xd7, 0xf5, 0x77, 0x2f, 0x5c, 0x29, 0xde, 0xe1, 0xcf, 0xdc, 0x79, 0xe1, 0x53, 0x1f, 0xd5, 0x8d, 0x43, 0x0b, 0xf2, 0x9b, 0x07, 0x8e, 0xca, 0x93, 0x87, 0xf7, 0xc3, 0xde, 0x79, 0x58, 0xe8, 0x41, 0x6f, 0x1a, 0xa6, 0xa6, 0xa0, 0xd3, 0x16, 0xda, 0x2d, 0x45, 0xb3, 0x09, 0xcd, 0x26, 0x34, 0x42, 0x68, 0x34, 0x20, 0x08, 0xc0, 0xf7, 0x2c, 0xc8, 0xc0, 0x87, 0xc0, 0x73, 0x6b, 0x00, 0xad, 0x00, 0x6d, 0x0c, 0x8f, 0x1b, 0x08, 0x5e, 0x5b, 0x96, 0x3f, 0xbc, 0x27, 0x88, 0x8f, 0x1f, 0x43, 0xdd, 0x7b, 0x40, 0xfd, 0xf4, 0x81, 0x23, 0xf2, 0xe4, 0x3d, 0xfb, 0x60, 0x71, 0x0e, 0xe6, 0xba, 0x30, 0x3d, 0x05, 0x1d, 0xc7, 0x44, 0xbb, 0xa5, 0x68, 0xba, 0x94, 0x84, 0xbe, 0xda, 0x75, 0x18, 0xfa, 0xe0, 0x07, 0xa0, 0x8d, 0x63, 0xca, 0x80, 0x6f, 0x2c, 0x30, 0xdf, 0xb7, 0x80, 0x44, 0xf1, 0xc8, 0x9e, 0xae, 0xe9, 0x5f, 0xbc, 0x26, 0x7f, 0x7d, 0x57, 0x10, 0xa7, 0x3e, 0xac, 0xbf, 0x7e, 0xec, 0x90, 0x7c, 0xf3, 0xf0, 0x3e, 0x58, 0x9a, 0x87, 0xd9, 0xee, 0x38, 0x7a, 0x0b, 0xa0, 0xe5, 0x22, 0xf6, 0x7c, 0x5b, 0x94, 0x3a, 0x00, 0x63, 0xec, 0xde, 0x18, 0x30, 0x1a, 0x3c, 0x6d, 0x81, 0x68, 0xb7, 0x1a, 0x6d, 0x4d, 0x6b, 0x0b, 0x08, 0xe1, 0xb1, 0x5e, 0xdb, 0xfc, 0xfa, 0x9f, 0x37, 0xaa, 0xb7, 0xde, 0x01, 0xe2, 0xf4, 0xc3, 0x66, 0xdf, 0xe1, 0xbd, 0xf2, 0xe2, 0x91, 0x83, 0x04, 0x7b, 0x17, 0x26, 0x0c, 0xb4, 0x5a, 0xd0, 0x6e, 0x5a, 0x9a, 0xfd, 0x00, 0xb4, 0x07, 0x2a, 0x00, 0x7c, 0xc0, 0x73, 0x27, 0xf8, 0x56, 0xaa, 0xa6, 0x66, 0x0a, 0x7b, 0x4d, 0x98, 0x14, 0x70, 0x29, 0xa0, 0x14, 0x66, 0x67, 0x24, 0xc7, 0x9b, 0x5e, 0xf0, 0xfd, 0x95, 0xf5, 0x52, 0x70, 0xc7, 0x00, 0xb0, 0xd0, 0x95, 0x67, 0xf6, 0x2d, 0xd2, 0xe9, 0x75, 0x61, 0xaa, 0x0d, 0xad, 0x26, 0x84, 0xa1, 0x55, 0xc3, 0x98, 0x6a, 0x02, 0xc0, 0x08, 0x18, 0x05, 0x1a, 0x6b, 0x00, 0xa5, 0x03, 0xe3, 0xa2, 0xf7, 0x14, 0x34, 0xdd, 0x2d, 0xa9, 0xac, 0x65, 0xb9, 0x55, 0x57, 0x1c, 0xc3, 0xd2, 0x22, 0x0f, 0xf5, 0xb7, 0x8b, 0x2f, 0x00, 0x3f, 0xdb, 0x65, 0xe2, 0xd1, 0x07, 0xcd, 0xd2, 0xa1, 0xbd, 0xf2, 0xa3, 0x43, 0xfb, 0xf1, 0x16, 0x67, 0xa1, 0xd7, 0x81, 0xf6, 0x18, 0x48, 0xe0, 0x18, 0x08, 0x1c, 0x64, 0x4f, 0xd9, 0x55, 0xdf, 0x61, 0x6a, 0x02, 0x4a, 0xd5, 0x64, 0x57, 0x61, 0xd9, 0xa8, 0x4a, 0xa8, 0x9c, 0x8a, 0x8a, 0x1c, 0x06, 0x23, 0x75, 0x60, 0xb8, 0xae, 0x7e, 0xb0, 0x99, 0x88, 0x7d, 0xac, 0xd7, 0x91, 0xcf, 0xcf, 0xcd, 0x10, 0x76, 0x5a, 0xae, 0xba, 0x83, 0x89, 0x0c, 0x03, 0x1f, 0x8c, 0x27, 0xd6, 0x81, 0xa9, 0xa5, 0xa0, 0xbe, 0x57, 0xb5, 0x6b, 0xbe, 0x35, 0xed, 0x8a, 0x32, 0xf0, 0xec, 0x1a, 0x06, 0xb6, 0x98, 0x9b, 0x0d, 0x98, 0xea, 0xc0, 0xcc, 0xb4, 0x9c, 0xbc, 0xef, 0xa8, 0x3a, 0xca, 0x18, 0x7b, 0xbb, 0xc5, 0x63, 0x9d, 0x96, 0x95, 0x5b, 0xe8, 0xdb, 0xc2, 0xf3, 0x7d, 0x5b, 0xe1, 0xda, 0x60, 0xe9, 0x1f, 0x3b, 0xd5, 0x35, 0x87, 0x63, 0x16, 0xee, 0x64, 0xc6, 0xb3, 0xa6, 0xc7, 0xaa, 0x71, 0xe9, 0x0c, 0x7c, 0x68, 0xfa, 0x96, 0xe1, 0xd9, 0x69, 0x68, 0xb7, 0xe5, 0x09, 0x00, 0xfd, 0xd0, 0xfd, 0x0d, 0x7c, 0x4f, 0x4e, 0x34, 0x1d, 0x80, 0x71, 0x95, 0x1b, 0x65, 0x0d, 0x00, 0x2d, 0x13, 0xca, 0x77, 0xdb, 0x9b, 0x80, 0xaa, 0x59, 0x3d, 0x25, 0xce, 0x94, 0x0b, 0xc2, 0x37, 0x36, 0x20, 0xe3, 0xe4, 0x1b, 0x7a, 0xd0, 0x6c, 0x08, 0xcd, 0x40, 0x4e, 0x01, 0x68, 0xa3, 0xa4, 0x15, 0xf8, 0x2c, 0x79, 0x9e, 0x93, 0x95, 0xb2, 0xeb, 0xed, 0x4e, 0xd5, 0xa4, 0x08, 0x95, 0xa0, 0x94, 0x75, 0x60, 0x9d, 0xd6, 0xee, 0xd5, 0x0b, 0x42, 0xcb, 0x2e, 0x60, 0xe3, 0xce, 0xf4, 0x1c, 0x08, 0xe3, 0x41, 0xe8, 0x29, 0x02, 0x4f, 0x1d, 0x03, 0xd0, 0x81, 0xc9, 0xbb, 0x81, 0x6b, 0xc1, 0x28, 0xb7, 0x02, 0x22, 0x2e, 0x58, 0x3d, 0x09, 0xdc, 0x56, 0x9a, 0x42, 0x14, 0x88, 0x52, 0x16, 0x80, 0x72, 0xf7, 0x6a, 0x85, 0x69, 0x81, 0xa8, 0xdb, 0x80, 0xa9, 0x1a, 0x8b, 0x5a, 0x83, 0xd2, 0x82, 0xd6, 0x32, 0x07, 0xe0, 0x69, 0x2d, 0x4a, 0x69, 0xeb, 0x54, 0xc4, 0x56, 0xb0, 0x54, 0x13, 0xd6, 0xa5, 0x74, 0x51, 0xef, 0x7a, 0x02, 0x2a, 0xb7, 0x57, 0x32, 0x01, 0x28, 0x35, 0xa0, 0xe5, 0x58, 0x12, 0xce, 0xb9, 0x3b, 0x17, 0x87, 0x4d, 0xc4, 0x3e, 0xaf, 0xa0, 0x00, 0xd0, 0x79, 0xea, 0x45, 0x79, 0x3e, 0x91, 0x90, 0x08, 0x94, 0x95, 0xb5, 0xca, 0xe9, 0x7c, 0xcc, 0xc0, 0x44, 0x6f, 0x6e, 0x5f, 0x29, 0x54, 0xed, 0xba, 0xd4, 0x81, 0xb8, 0xb5, 0xaa, 0x14, 0x55, 0xad, 0x67, 0x54, 0x02, 0x22, 0x8a, 0xaa, 0x82, 0xaa, 0x62, 0xc3, 0x96, 0x9c, 0x98, 0xed, 0xac, 0x60, 0x35, 0x2b, 0x20, 0xcd, 0x21, 0x2f, 0xa0, 0x2c, 0xdd, 0x5b, 0xb1, 0x70, 0x87, 0x57, 0x2e, 0xba, 0xd2, 0x09, 0xbf, 0x66, 0xd6, 0xb1, 0x82, 0xd2, 0x11, 0x53, 0x39, 0xa6, 0xc6, 0xf7, 0x2b, 0xa1, 0x1c, 0x07, 0x26, 0xae, 0x4f, 0x94, 0x90, 0x15, 0x90, 0x15, 0xea, 0x1a, 0x80, 0x3e, 0xff, 0x66, 0x22, 0x51, 0xa4, 0x2e, 0xc6, 0x89, 0x90, 0xe7, 0x76, 0x4a, 0xca, 0x0b, 0xcb, 0x4c, 0x59, 0x42, 0x56, 0x82, 0x14, 0x77, 0x00, 0x90, 0xda, 0xbe, 0xac, 0x5d, 0xdb, 0xfd, 0x8f, 0x05, 0x55, 0x55, 0x76, 0xd6, 0x28, 0xc6, 0x81, 0xe5, 0x6e, 0xee, 0xc8, 0x20, 0x4a, 0x84, 0x24, 0x53, 0xe7, 0x77, 0xfb, 0x44, 0x92, 0xc8, 0xaf, 0x46, 0x11, 0x24, 0x09, 0x24, 0xb9, 0x6d, 0xb1, 0x79, 0x66, 0xd7, 0xa2, 0x80, 0xaa, 0xa8, 0x01, 0x29, 0xb1, 0x99, 0xac, 0x6a, 0x75, 0x50, 0x67, 0xca, 0xdd, 0x17, 0xe7, 0x70, 0x1c, 0x54, 0xee, 0x58, 0x8e, 0x33, 0x48, 0x53, 0x18, 0x0e, 0x15, 0x3b, 0x91, 0x7d, 0xad, 0x6b, 0x80, 0xcd, 0x48, 0x9f, 0x59, 0xdf, 0x52, 0xc5, 0x28, 0x82, 0x28, 0x86, 0x24, 0xb3, 0xc3, 0x49, 0xe6, 0x46, 0xb6, 0xac, 0xb0, 0x07, 0x92, 0x3b, 0x2b, 0xdd, 0x5a, 0xdc, 0xb1, 0x3a, 0x93, 0xdc, 0x46, 0x9e, 0x8f, 0x53, 0x9c, 0x42, 0xe6, 0xce, 0x8c, 0x62, 0x18, 0x8e, 0x84, 0x8d, 0x01, 0x97, 0x76, 0x86, 0xd5, 0x85, 0x5d, 0x10, 0x2f, 0xfd, 0xbd, 0x5c, 0xde, 0x1a, 0xf0, 0x8b, 0xcd, 0x01, 0x0c, 0x46, 0xf6, 0x25, 0x13, 0xa7, 0xf6, 0xa1, 0x24, 0xb5, 0xe8, 0xb3, 0x0c, 0xca, 0x0c, 0x24, 0x05, 0x32, 0x20, 0x13, 0x48, 0x6b, 0xce, 0x1d, 0x10, 0x49, 0xa1, 0xcc, 0x27, 0x33, 0x67, 0x9a, 0x5a, 0x8b, 0x13, 0x88, 0x52, 0x18, 0x46, 0x42, 0x7f, 0x4b, 0x31, 0x18, 0xea, 0xe7, 0xcf, 0xbd, 0x61, 0xcb, 0x77, 0xf7, 0x55, 0xbe, 0x77, 0xde, 0xbb, 0x14, 0x18, 0x79, 0xba, 0xd3, 0xc2, 0x84, 0xc1, 0xa4, 0x73, 0xee, 0xb6, 0x89, 0xba, 0x22, 0xab, 0x89, 0x42, 0x94, 0x4b, 0x95, 0x14, 0xd6, 0x79, 0x59, 0x1b, 0x7a, 0xe3, 0x14, 0x92, 0x18, 0x46, 0x11, 0x0c, 0x23, 0xd8, 0xdc, 0x86, 0xb5, 0xbe, 0xe2, 0xca, 0x75, 0xae, 0x5c, 0x5d, 0x53, 0x4f, 0x5f, 0x5b, 0x93, 0xe2, 0x36, 0x10, 0xff, 0xba, 0x59, 0xad, 0x1d, 0x9c, 0x57, 0xed, 0xb0, 0xc1, 0x27, 0xc2, 0x40, 0x30, 0x46, 0x61, 0x8c, 0xd5, 0xf5, 0xb8, 0x1f, 0x8d, 0x8b, 0x1e, 0x2b, 0xaf, 0x89, 0xb9, 0xdc, 0x67, 0x99, 0x4b, 0xe5, 0x98, 0x7a, 0x97, 0xde, 0x61, 0x04, 0x5b, 0x3b, 0xf0, 0xf6, 0x86, 0x70, 0xf5, 0x86, 0x92, 0x95, 0x35, 0xf5, 0xd4, 0x6f, 0x5f, 0xa9, 0x2e, 0xfe, 0xc7, 0xc9, 0x6a, 0x61, 0xc6, 0x7f, 0x99, 0xb2, 0x7a, 0x34, 0xf4, 0xd5, 0x3d, 0xbe, 0x6b, 0xcb, 0x6a, 0xdc, 0x3d, 0x9d, 0xc3, 0xd2, 0x55, 0x7c, 0x5e, 0x38, 0x99, 0x95, 0xb6, 0x76, 0x92, 0xd4, 0xe6, 0x3f, 0x49, 0x2c, 0xfd, 0x49, 0x02, 0x3b, 0x11, 0x6c, 0x8f, 0x60, 0x73, 0x07, 0xd6, 0xfb, 0xc2, 0xca, 0xaa, 0xe2, 0xea, 0x0d, 0xf5, 0xdc, 0xcf, 0xff, 0x54, 0x3d, 0xff, 0xae, 0xe3, 0xdd, 0xf2, 0x5a, 0x55, 0x2e, 0x76, 0xf4, 0xd9, 0xa2, 0xe4, 0xb3, 0xbe, 0xcf, 0x82, 0x31, 0xa0, 0x10, 0x2a, 0xd4, 0x6e, 0x13, 0xab, 0xca, 0xdb, 0xab, 0x3e, 0x1b, 0xab, 0xc9, 0x39, 0x4e, 0x12, 0x1b, 0xfd, 0x60, 0x64, 0x6d, 0x6b, 0x00, 0xeb, 0x7d, 0xb8, 0x7e, 0x4b, 0x71, 0x79, 0x45, 0x9d, 0xb9, 0x71, 0x33, 0xfc, 0xea, 0x72, 0xbf, 0x90, 0xf7, 0x9c, 0xb6, 0xaf, 0xac, 0x49, 0xdc, 0x9b, 0x32, 0x67, 0xf2, 0x4c, 0x3e, 0xa9, 0x15, 0xfb, 0x0d, 0x8a, 0xa2, 0x9a, 0x8c, 0xf5, 0xe3, 0xd1, 0x7e, 0x4c, 0x7f, 0x96, 0x41, 0x9a, 0xd8, 0xc2, 0x1b, 0xc5, 0x36, 0xfa, 0x41, 0x04, 0x5b, 0x23, 0x61, 0x63, 0x4b, 0xb1, 0xde, 0x87, 0xe5, 0x9b, 0x70, 0xe5, 0xba, 0xfa, 0xe1, 0x5b, 0xfd, 0xe0, 0xcb, 0x7f, 0x7c, 0x3d, 0x29, 0xff, 0xeb, 0xc8, 0x0f, 0x70, 0xf5, 0x96, 0x8c, 0x5a, 0x2d, 0xf3, 0x42, 0x9e, 0xc8, 0x54, 0x92, 0x71, 0xbc, 0xaa, 0xd0, 0xe3, 0xa8, 0xd3, 0x0c, 0xb2, 0x4c, 0x88, 0x33, 0x65, 0x29, 0x4f, 0xac, 0x9a, 0x86, 0x0e, 0xc0, 0xd6, 0x10, 0xfa, 0xdb, 0xb0, 0xbe, 0x01, 0xb7, 0xd6, 0x14, 0x97, 0xaf, 0x33, 0xbc, 0xb6, 0xaa, 0xbe, 0xb6, 0x32, 0x08, 0x9e, 0x39, 0xf7, 0x8f, 0xa4, 0xba, 0xab, 0xcf, 0xc0, 0x4f, 0x1f, 0x37, 0x1f, 0xeb, 0xcd, 0xc8, 0xb3, 0x73, 0x5d, 0x79, 0x7c, 0xbe, 0x67, 0xe7, 0xcf, 0xa6, 0x1b, 0xf9, 0x3c, 0x3d, 0x19, 0xe1, 0x8a, 0x12, 0xf2, 0x54, 0x88, 0x52, 0xc5, 0x60, 0x07, 0xd6, 0x37, 0x49, 0xfb, 0xdb, 0xfc, 0xa4, 0xbf, 0xad, 0xbf, 0xf3, 0xbb, 0x57, 0xcb, 0x1b, 0xff, 0xf7, 0x07, 0x31, 0xc0, 0xe9, 0xe3, 0xe6, 0x23, 0xdd, 0x8e, 0x7c, 0xa9, 0xd3, 0x90, 0xcf, 0xb4, 0x9a, 0xdc, 0xdf, 0x6e, 0xa2, 0x7d, 0x37, 0x02, 0x54, 0x95, 0x4d, 0xcb, 0x28, 0x26, 0x89, 0x62, 0xfe, 0x36, 0x8c, 0xd4, 0xd9, 0xad, 0x48, 0xfd, 0xf8, 0xf7, 0xaf, 0x96, 0xb7, 0x3e, 0xb0, 0xaf, 0xf2, 0xdb, 0xf3, 0x37, 0xc3, 0x23, 0x1f, 0x1a, 0xce, 0xb7, 0x5b, 0x1c, 0xd1, 0x9e, 0x2c, 0x69, 0x25, 0x01, 0x95, 0x8a, 0xe2, 0x42, 0x56, 0x36, 0x46, 0xe1, 0x9b, 0xaf, 0xbc, 0x91, 0xc4, 0xef, 0xf7, 0xcc, 0x7f, 0x03, 0xce, 0x64, 0xa2, 0x49, 0x35, 0x45, 0x09, 0x74, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnak[2036] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8e, 0x7c, 0xfb, 0x51, 0x93, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4d, 0x00, 0x00, 0x7a, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xf9, 0xff, 0x00, 0x00, 0x80, 0xe9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xea, 0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, 0x00, 0x17, 0x6f, 0x92, 0x5f, 0xc5, 0x46, 0x00, 0x00, 0x07, 0x6a, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x62, 0xf8, 0xff, 0xff, 0x3f, 0x03, 0x08, 0x53, 0x08, 0x84, 0x81, 0xb8, 0x91, 0x81, 0x91, 0xf1, 0x2c, 0x90, 0x3e, 0x01, 0xc4, 0x99, 0x40, 0xcc, 0x8c, 0x4f, 0x03, 0xcc, 0x5e, 0x80, 0x00, 0x62, 0x61, 0xa0, 0x1c, 0x68, 0x00, 0xf1, 0x4a, 0x59, 0x45, 0x15, 0x3d, 0x55, 0x0d, 0x0d, 0x06, 0x66, 0x26, 0x26, 0x86, 0x4b, 0x67, 0xcf, 0x98, 0xbf, 0x7c, 0xf1, 0x4c, 0x09, 0x28, 0x5e, 0x4a, 0x48, 0x33, 0x40, 0x00, 0x31, 0x51, 0x68, 0xb9, 0x19, 0xd0, 0xd7, 0xfb, 0x9c, 0x5d, 0xdd, 0xf4, 0x04, 0x04, 0x04, 0x18, 0xd8, 0xd9, 0x39, 0x19, 0x64, 0xe4, 0xe4, 0x19, 0xa2, 0x62, 0xe3, 0x19, 0x84, 0x44, 0xc5, 0x8b, 0x81, 0xf2, 0x91, 0x84, 0x0c, 0x00, 0x08, 0x20, 0x4a, 0x1c, 0x00, 0xb4, 0x8f, 0xb3, 0x6f, 0xf9, 0xca, 0x55, 0x92, 0x7b, 0x76, 0xed, 0x64, 0x50, 0x52, 0x56, 0x62, 0x78, 0xf3, 0xfa, 0x15, 0xc3, 0xc3, 0xbb, 0x77, 0x19, 0xee, 0xdf, 0xbf, 0xcf, 0xa0, 0xa6, 0xaa, 0xce, 0x08, 0x54, 0x13, 0x06, 0xc4, 0x8c, 0xf8, 0x0c, 0x01, 0x08, 0x20, 0x4a, 0x1c, 0x10, 0xea, 0xe9, 0xe5, 0x6b, 0xbd, 0x77, 0xfb, 0x26, 0x86, 0xcf, 0x6f, 0x9e, 0x33, 0xc8, 0x8b, 0xcb, 0x30, 0x28, 0x2a, 0x69, 0x30, 0x2c, 0x5a, 0xb4, 0x98, 0xa1, 0xb2, 0xa2, 0x84, 0xe1, 0xe3, 0xc7, 0xb7, 0x20, 0x35, 0xb2, 0x40, 0xcc, 0x87, 0xcf, 0x10, 0x80, 0x00, 0x22, 0xd7, 0x01, 0x4c, 0x7c, 0x3c, 0x2c, 0x69, 0x89, 0x7e, 0x5a, 0x0c, 0x3e, 0xd6, 0x3a, 0x0c, 0xbc, 0x1f, 0x0f, 0x31, 0x14, 0x38, 0xbe, 0x67, 0x50, 0x78, 0xb7, 0x91, 0x41, 0xf4, 0xfb, 0x03, 0x06, 0x33, 0x63, 0x63, 0x06, 0x29, 0x29, 0x90, 0xdd, 0x0c, 0x9c, 0xa0, 0x90, 0xc2, 0x67, 0x10, 0x40, 0x00, 0x31, 0x90, 0x99, 0x0b, 0x1c, 0xdb, 0x4b, 0x74, 0xff, 0xfd, 0x07, 0x83, 0x27, 0xff, 0xff, 0xbf, 0x2e, 0xfd, 0xff, 0xff, 0xa6, 0xe0, 0xff, 0xff, 0xc7, 0x80, 0x46, 0xcd, 0x65, 0xf8, 0x7f, 0x38, 0xc7, 0xff, 0xbf, 0xab, 0x77, 0x00, 0xc8, 0xd0, 0x1b, 0x40, 0x2c, 0x81, 0xcf, 0x5e, 0x80, 0x00, 0x22, 0x37, 0x17, 0x44, 0x04, 0xfb, 0xa9, 0x32, 0x32, 0xfc, 0xdb, 0xca, 0xc0, 0x70, 0x6f, 0x19, 0xc3, 0xbf, 0xe7, 0x07, 0x19, 0xbe, 0x3c, 0xf9, 0xc2, 0xf0, 0xf8, 0xb5, 0x26, 0xc3, 0xd3, 0x0f, 0x7a, 0x0c, 0x8f, 0x65, 0x0d, 0x18, 0xfe, 0xdf, 0x07, 0xe5, 0x46, 0x86, 0x7f, 0x20, 0xbb, 0xf0, 0x19, 0x04, 0x10, 0x40, 0xe4, 0x38, 0x40, 0x0a, 0x88, 0xfd, 0x7e, 0xfe, 0x62, 0x61, 0xf8, 0x74, 0xeb, 0x08, 0xc3, 0xe3, 0x47, 0x8a, 0x0c, 0x1f, 0xbe, 0x59, 0x30, 0xbc, 0x67, 0x91, 0x61, 0x60, 0x54, 0x16, 0x63, 0xd0, 0x33, 0xd7, 0x67, 0xd0, 0xfc, 0xfd, 0x95, 0x61, 0xc1, 0x8e, 0xbd, 0x44, 0x19, 0x06, 0x10, 0x40, 0xe4, 0x38, 0xc0, 0x5f, 0x54, 0x5c, 0x42, 0x42, 0xcd, 0x76, 0x19, 0xc3, 0x8f, 0x3f, 0xcc, 0x0c, 0xac, 0xec, 0xef, 0x18, 0x64, 0xd9, 0x99, 0x18, 0xf4, 0x04, 0xb8, 0x18, 0x78, 0xb9, 0xd8, 0xc0, 0x0a, 0x7e, 0xff, 0xe5, 0x02, 0xa6, 0x7d, 0x70, 0xe2, 0x67, 0x25, 0x54, 0x20, 0x01, 0x04, 0x10, 0xa9, 0x0e, 0x00, 0x99, 0x1a, 0xee, 0xe9, 0xee, 0xce, 0xc0, 0xc6, 0xc6, 0x0c, 0xc4, 0xc0, 0x24, 0xae, 0x28, 0x84, 0xa1, 0x88, 0x95, 0x99, 0x89, 0x81, 0x8b, 0x13, 0x94, 0xfe, 0x18, 0x78, 0x81, 0x98, 0x0d, 0x9f, 0x81, 0x00, 0x01, 0x44, 0x6a, 0x2e, 0xb0, 0x00, 0x62, 0x9b, 0xf8, 0xf8, 0x38, 0x82, 0x0a, 0x39, 0x21, 0x0e, 0x10, 0x04, 0x62, 0x31, 0x7c, 0xea, 0x00, 0x02, 0x88, 0x54, 0x07, 0xc4, 0x18, 0x99, 0x9a, 0x32, 0x3b, 0x39, 0x39, 0x11, 0x54, 0xc8, 0xcd, 0xc3, 0xcb, 0xc0, 0xc4, 0xc2, 0x0a, 0xf2, 0xbd, 0x31, 0x3e, 0x75, 0x00, 0x01, 0x44, 0x8a, 0x03, 0x0c, 0x81, 0x38, 0xb6, 0xb2, 0xbc, 0x9c, 0xa0, 0xc2, 0xe7, 0x2f, 0x5e, 0x30, 0x30, 0x31, 0x31, 0x33, 0x68, 0x6a, 0xeb, 0x80, 0xb8, 0x3e, 0xf8, 0xd4, 0x02, 0x04, 0x10, 0xb1, 0x0e, 0x00, 0x25, 0xa6, 0x76, 0x47, 0x27, 0x67, 0xde, 0x90, 0xe0, 0x60, 0x82, 0x8a, 0xcf, 0x5f, 0xba, 0xc2, 0xf0, 0xfe, 0xc3, 0x7b, 0x06, 0x0d, 0x2d, 0x5d, 0x06, 0x16, 0x56, 0x76, 0x17, 0xa0, 0x90, 0x1d, 0x2e, 0xb5, 0x00, 0x01, 0x44, 0x8c, 0x03, 0x38, 0x80, 0xb8, 0x8b, 0x9d, 0x93, 0xdb, 0x7d, 0xda, 0xd4, 0xa9, 0x44, 0xb9, 0x76, 0xdb, 0x8e, 0x9d, 0x0c, 0xdf, 0xbf, 0x7f, 0x67, 0xe0, 0xe5, 0xe3, 0x65, 0xd0, 0x33, 0x32, 0x06, 0x45, 0x43, 0x09, 0xae, 0x3a, 0x01, 0x20, 0x80, 0x08, 0x39, 0x40, 0x1f, 0x88, 0x0f, 0x00, 0x71, 0x41, 0x55, 0x65, 0x39, 0x83, 0x86, 0x86, 0x3a, 0x41, 0xcb, 0xb7, 0xef, 0xda, 0xc3, 0x70, 0xf2, 0xe4, 0x29, 0x60, 0x4d, 0xc5, 0x0e, 0x76, 0x84, 0x99, 0xa9, 0x05, 0x83, 0xb0, 0x98, 0x84, 0x2f, 0x50, 0x2a, 0x1a, 0x9b, 0x7a, 0x80, 0x00, 0x62, 0x84, 0x15, 0xc3, 0x8c, 0x8c, 0x18, 0x0e, 0xcc, 0xe4, 0xe4, 0xe6, 0xee, 0x70, 0x71, 0x71, 0xe1, 0x7b, 0xfb, 0xe6, 0x2d, 0xc3, 0xe1, 0x43, 0x87, 0x81, 0xf1, 0x8a, 0xdf, 0xf2, 0xa7, 0xcf, 0x9e, 0x31, 0x44, 0xc5, 0x27, 0x33, 0xf0, 0x0b, 0x0a, 0x32, 0xfc, 0xfd, 0xfd, 0x87, 0x81, 0x0d, 0xe8, 0x08, 0x29, 0x29, 0x49, 0x86, 0x2f, 0x1f, 0xdf, 0x33, 0x2c, 0x9a, 0x37, 0xe7, 0x16, 0x50, 0x89, 0x03, 0x28, 0x89, 0xc0, 0x8a, 0x62, 0x10, 0x00, 0x08, 0x20, 0x26, 0x1c, 0xf1, 0x3d, 0x4d, 0x4a, 0x46, 0x76, 0xda, 0xf1, 0xa3, 0xc7, 0xf8, 0xcc, 0xcc, 0xcc, 0x18, 0x9a, 0x9b, 0x9b, 0x08, 0x5a, 0xfe, 0xef, 0xdf, 0x3f, 0x86, 0x9c, 0xfc, 0x42, 0x06, 0x79, 0x60, 0x7b, 0x40, 0x80, 0x97, 0x8f, 0xe1, 0xd3, 0xe7, 0xcf, 0x40, 0xb1, 0xbf, 0x0c, 0x5f, 0x3e, 0x7d, 0x66, 0x50, 0x55, 0xd3, 0x64, 0xb0, 0xb0, 0xb6, 0x53, 0xc3, 0xd6, 0x40, 0x01, 0x08, 0x20, 0x6c, 0xc6, 0xce, 0x90, 0x96, 0x95, 0xcf, 0xdc, 0xb7, 0x77, 0x1f, 0x83, 0xa8, 0x98, 0x38, 0xc3, 0x87, 0x0f, 0x1f, 0x19, 0x9c, 0x1c, 0x1d, 0x09, 0x06, 0x7d, 0x76, 0x4e, 0x2e, 0x03, 0x3f, 0xd0, 0x62, 0x6d, 0x6d, 0x6d, 0x86, 0x2b, 0xd7, 0xae, 0x30, 0xfc, 0xfd, 0xfb, 0x9b, 0xe1, 0xcf, 0xef, 0xdf, 0x0c, 0x3f, 0xff, 0xfc, 0x66, 0xf8, 0xfc, 0xe5, 0x0b, 0x83, 0xbf, 0x5f, 0x20, 0x03, 0x27, 0x37, 0x6f, 0x1a, 0x50, 0xa9, 0x09, 0xb2, 0x3e, 0x80, 0x00, 0x42, 0x77, 0x40, 0x36, 0x37, 0x2f, 0x5f, 0xd2, 0xe2, 0x45, 0x4b, 0x19, 0xd4, 0xd5, 0x54, 0x18, 0xce, 0x9c, 0x3b, 0x07, 0xf4, 0x39, 0x44, 0xc9, 0x6f, 0x60, 0xb5, 0xf2, 0x17, 0x87, 0xe5, 0x57, 0xae, 0x5e, 0x65, 0x38, 0x76, 0xfc, 0x38, 0x43, 0x50, 0x50, 0x08, 0xc3, 0xc6, 0x4d, 0x1b, 0x18, 0xde, 0xbd, 0x7d, 0xc3, 0xf0, 0xe3, 0xc7, 0x0f, 0x86, 0x3f, 0x7f, 0xff, 0x80, 0xc2, 0x9a, 0xe1, 0xcb, 0xd7, 0x2f, 0x40, 0xcf, 0x88, 0x31, 0x38, 0x38, 0x38, 0x70, 0x03, 0x95, 0x67, 0x21, 0xeb, 0x05, 0x08, 0x20, 0x26, 0xb4, 0x86, 0x65, 0xb1, 0xab, 0x9b, 0x3b, 0xc3, 0xb3, 0x67, 0x4f, 0x18, 0xe2, 0x12, 0x92, 0x18, 0x2a, 0xca, 0xcb, 0x18, 0x2e, 0x5f, 0xbe, 0x0c, 0xa9, 0x3e, 0x7f, 0xff, 0x02, 0xc6, 0xeb, 0x5f, 0xb8, 0x23, 0xfe, 0x3d, 0xbe, 0xc9, 0xc0, 0xf0, 0xeb, 0x27, 0xc4, 0x01, 0x57, 0xae, 0x31, 0x88, 0x8a, 0x8a, 0x32, 0x9c, 0x3e, 0x73, 0x8a, 0xe1, 0xec, 0x99, 0xd3, 0xc0, 0xb8, 0xe7, 0x60, 0xb0, 0x30, 0x35, 0x67, 0xf0, 0xf3, 0xf2, 0x66, 0x88, 0x0a, 0x0b, 0x63, 0xe0, 0xe5, 0xe6, 0x61, 0xf8, 0x00, 0x4c, 0x07, 0x26, 0xa6, 0x66, 0x20, 0xe5, 0x5e, 0x40, 0x2c, 0x0f, 0xb3, 0x14, 0x20, 0x80, 0x90, 0xdb, 0x03, 0x01, 0x20, 0x7b, 0x98, 0x59, 0x58, 0x41, 0x9c, 0x67, 0x40, 0x0c, 0xb4, 0x81, 0xe1, 0x07, 0x23, 0x33, 0xcb, 0xff, 0x45, 0x4b, 0x96, 0xfc, 0xff, 0xbf, 0x39, 0xea, 0xff, 0xf7, 0x7d, 0xcd, 0xff, 0x7f, 0x02, 0x15, 0xff, 0x38, 0x36, 0xf7, 0xff, 0xc7, 0x22, 0xb1, 0xff, 0x3f, 0x76, 0x4c, 0x07, 0xb7, 0x08, 0xae, 0x5c, 0xbf, 0xf1, 0x5f, 0x51, 0x59, 0xe5, 0xbf, 0x8c, 0xbc, 0xc2, 0x7f, 0x75, 0x5d, 0x83, 0xff, 0x4b, 0x57, 0xac, 0xf9, 0x7f, 0xea, 0xec, 0xc5, 0xff, 0x17, 0x2e, 0x5c, 0x06, 0xcb, 0xf7, 0x4e, 0x9a, 0xf2, 0xbf, 0xba, 0xb1, 0xed, 0x7f, 0x47, 0x57, 0xff, 0x7f, 0x26, 0x16, 0x16, 0x50, 0x15, 0xed, 0x0e, 0xb3, 0x17, 0x20, 0x80, 0x90, 0x2b, 0xa3, 0xbb, 0x40, 0x5c, 0xff, 0xf7, 0xcf, 0xef, 0x7b, 0x40, 0xfa, 0x36, 0x10, 0xbf, 0x04, 0xe2, 0xfc, 0xff, 0x7f, 0xff, 0x14, 0xd4, 0x15, 0xa5, 0x33, 0x84, 0xf7, 0x7d, 0x67, 0x60, 0xfe, 0xa4, 0xc8, 0xf0, 0xf3, 0x98, 0x12, 0x03, 0xcb, 0x95, 0x66, 0x06, 0x26, 0x51, 0x60, 0xf0, 0x8a, 0x29, 0x81, 0x35, 0x6a, 0x03, 0xb3, 0xa7, 0x9c, 0x9c, 0x1c, 0x30, 0x40, 0x7e, 0x32, 0x2c, 0x5a, 0xb8, 0x84, 0x81, 0x91, 0x99, 0x95, 0xe1, 0xef, 0x9f, 0x5f, 0xc0, 0x76, 0xa1, 0x22, 0x58, 0xfe, 0xef, 0xbf, 0xff, 0x40, 0xfe, 0x1f, 0x86, 0x47, 0x8f, 0x1e, 0x31, 0xfc, 0x03, 0xd2, 0xc8, 0x35, 0x24, 0x40, 0x00, 0x21, 0x3b, 0xe0, 0x32, 0x14, 0x23, 0x83, 0x3a, 0x20, 0x56, 0x66, 0x66, 0xf8, 0xe9, 0xcb, 0xc0, 0xf5, 0x8f, 0x81, 0xe9, 0xcf, 0x23, 0x06, 0x96, 0x33, 0x79, 0x0c, 0x8c, 0x5c, 0x4c, 0x0c, 0xff, 0xbe, 0x0a, 0x31, 0xfc, 0x7e, 0xfd, 0x9a, 0xe1, 0xf7, 0xea, 0x76, 0x06, 0xd6, 0xa7, 0x0f, 0x19, 0xe6, 0x76, 0xb7, 0x32, 0x88, 0xeb, 0x18, 0x31, 0xf0, 0xb0, 0xb3, 0x31, 0x3c, 0x7b, 0xfe, 0x92, 0x41, 0x4a, 0x52, 0x1a, 0x6e, 0xc8, 0x13, 0x60, 0xf6, 0xe4, 0x60, 0xe5, 0x60, 0x38, 0x7e, 0xec, 0x28, 0x03, 0x34, 0x1b, 0x3e, 0x82, 0xc9, 0x01, 0x04, 0x10, 0xa1, 0xea, 0xf8, 0x33, 0x10, 0x27, 0xbc, 0xff, 0xf8, 0xa7, 0xe6, 0xcf, 0x67, 0xbe, 0x42, 0x16, 0xbe, 0xbf, 0x0c, 0x8c, 0x02, 0xc0, 0x78, 0xfa, 0xc2, 0xce, 0xc0, 0xc4, 0xfe, 0x87, 0xe1, 0xff, 0xfe, 0x6a, 0x86, 0xff, 0x6f, 0xde, 0x33, 0x7c, 0xfe, 0x25, 0xc7, 0xa0, 0x1c, 0xdf, 0x0a, 0x6c, 0xfd, 0x41, 0x6a, 0x5e, 0x29, 0x49, 0x71, 0xb8, 0x01, 0xc7, 0x4f, 0x9d, 0x66, 0x78, 0xf5, 0xf2, 0x15, 0xc3, 0xe7, 0x8f, 0x1f, 0x19, 0x2e, 0x5c, 0x38, 0x07, 0x12, 0xda, 0x0d, 0xc4, 0x77, 0x60, 0xf2, 0x00, 0x01, 0x44, 0x4c, 0x51, 0xfc, 0xee, 0xdd, 0x4f, 0x86, 0x8e, 0x0f, 0x6f, 0xd8, 0x5f, 0x32, 0xfd, 0x64, 0x67, 0xf8, 0x0f, 0xc4, 0xff, 0x80, 0x0d, 0x11, 0x36, 0x60, 0x53, 0x93, 0x1d, 0x98, 0x28, 0xff, 0xb1, 0xeb, 0x32, 0x88, 0x34, 0xae, 0x01, 0x56, 0xbc, 0xc2, 0x98, 0xb9, 0xe3, 0xe6, 0x6d, 0x86, 0x49, 0xd3, 0x66, 0x30, 0x3c, 0x7c, 0xf8, 0x80, 0x61, 0xcf, 0xce, 0xed, 0x0c, 0xff, 0xff, 0xfd, 0x01, 0xa5, 0x2b, 0x50, 0x79, 0xfe, 0x03, 0xa6, 0x06, 0x20, 0x80, 0x88, 0x6d, 0x90, 0xbc, 0x3a, 0x70, 0xf1, 0xf7, 0xc9, 0x28, 0x09, 0x1e, 0x3f, 0xb6, 0xff, 0xcc, 0x0c, 0x4c, 0xff, 0x59, 0x18, 0x9e, 0xdd, 0xfb, 0xc3, 0x50, 0xbf, 0x07, 0xe8, 0x2b, 0xce, 0xcf, 0x0c, 0x8e, 0x42, 0x2b, 0x19, 0xac, 0x8c, 0x0d, 0x18, 0x64, 0x65, 0xe5, 0x19, 0xfe, 0x02, 0x93, 0xf0, 0xd5, 0x5b, 0x77, 0x18, 0x8e, 0xee, 0xdf, 0xc7, 0x70, 0xfc, 0xe8, 0x71, 0x86, 0xc7, 0x20, 0xdf, 0xbf, 0x05, 0x85, 0xfa, 0xbf, 0x8b, 0x40, 0xa2, 0x02, 0x88, 0x4f, 0x23, 0x1b, 0x0c, 0x10, 0x40, 0xf8, 0x8a, 0x62, 0x14, 0xa0, 0x29, 0xc0, 0xe0, 0xbb, 0x3b, 0x47, 0x7a, 0xed, 0xe7, 0x8f, 0xff, 0x18, 0x16, 0x1e, 0x79, 0x7f, 0x66, 0xda, 0xf9, 0x1f, 0x1b, 0x3e, 0x31, 0x30, 0x00, 0xdb, 0x5e, 0x0c, 0x46, 0x40, 0x0c, 0x2a, 0xe5, 0x44, 0x40, 0xcd, 0x00, 0x31, 0x7e, 0x6e, 0x0e, 0x5b, 0x2d, 0x51, 0x06, 0x2f, 0x13, 0x3e, 0x06, 0x45, 0xae, 0xf7, 0x0c, 0xcb, 0xb6, 0xbf, 0xf8, 0x37, 0xe7, 0xd2, 0xef, 0x05, 0x40, 0xb9, 0x16, 0x20, 0xbe, 0x8f, 0x9c, 0xfb, 0x40, 0x00, 0x20, 0x80, 0x48, 0x69, 0x96, 0x33, 0x41, 0xcb, 0x72, 0x5f, 0x68, 0x3e, 0x66, 0x42, 0x6a, 0xa6, 0x29, 0x5a, 0xaa, 0x0b, 0xb5, 0xcf, 0xac, 0x89, 0x7d, 0xfe, 0xec, 0x50, 0x1b, 0xb0, 0xa5, 0x5e, 0xf6, 0xff, 0xff, 0x53, 0x23, 0x60, 0xfe, 0x04, 0x1a, 0xbd, 0x93, 0xe1, 0xff, 0xbd, 0x26, 0x86, 0x7b, 0x59, 0x3a, 0x0c, 0x05, 0x40, 0x75, 0x3c, 0xe8, 0xd9, 0x1f, 0x20, 0x80, 0x88, 0x0e, 0x01, 0x5c, 0xc0, 0x45, 0x99, 0x41, 0x63, 0x63, 0xb9, 0xd6, 0x44, 0x2e, 0x55, 0x77, 0xb7, 0xbf, 0x9f, 0xbe, 0x33, 0x7c, 0xbd, 0x7f, 0xe9, 0x3f, 0x9f, 0xc9, 0x1b, 0x46, 0x86, 0x2f, 0x0f, 0x18, 0x5e, 0xec, 0xe6, 0xf8, 0xff, 0xec, 0x39, 0xf3, 0x77, 0x29, 0xc5, 0x6f, 0x1c, 0x12, 0x7f, 0xb9, 0x99, 0xb6, 0xed, 0x67, 0x3b, 0xee, 0x7d, 0xf2, 0x05, 0xa8, 0x20, 0xfa, 0x00, 0xb3, 0x17, 0x20, 0x80, 0x28, 0x76, 0x80, 0xaf, 0x36, 0x43, 0x24, 0x13, 0x03, 0x93, 0xf7, 0x85, 0x07, 0xff, 0x6e, 0x3e, 0xfc, 0xca, 0x70, 0x53, 0x9e, 0x9d, 0x41, 0x74, 0x49, 0xb8, 0x50, 0xce, 0xf2, 0xd3, 0x9f, 0x1f, 0x2c, 0xbc, 0xfe, 0x7b, 0xfb, 0x57, 0x06, 0x86, 0x6b, 0xa0, 0x26, 0x22, 0xb0, 0x61, 0x28, 0xcf, 0xc3, 0xc2, 0x20, 0x04, 0x4c, 0x3a, 0xf3, 0x81, 0xfc, 0xc7, 0x30, 0x7b, 0x01, 0x02, 0x0c, 0x00, 0xe2, 0x40, 0xb0, 0x8e, 0x9c, 0xc5, 0x58, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnak23[319] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1e, 0x08, 0x02, 0x00, 0x00, 0x00, 0x48, 0x47, 0x12, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdb, 0x04, 0x17, 0x13, 0x04, 0x1d, 0x95, 0x69, 0x3b, 0x5e, 0x00, 0x00, 0x00, 0xbf, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x54, 0x41, 0x0e, 0xc3, 0x30, 0x08, 0x8b, 0xd1, 0xfe, 0xff, 0x65, 0x76, 0x88, 0x84, 0x10, 0x01, 0xe2, 0x64, 0xed, 0x38, 0xb5, 0x14, 0xa8, 0x31, 0x60, 0xa8, 0xea, 0x28, 0x0c, 0x80, 0x7f, 0x6d, 0x22, 0x85, 0x2c, 0x91, 0x7a, 0x36, 0x55, 0xaa, 0x84, 0xca, 0x5f, 0x62, 0x39, 0xb2, 0xb2, 0x8a, 0xaa, 0x4e, 0x22, 0xec, 0xe1, 0xa6, 0xca, 0x91, 0x7d, 0xb6, 0xec, 0x36, 0xa4, 0xfe, 0x0b, 0x4b, 0xe0, 0xc2, 0x43, 0x5b, 0x69, 0x12, 0xa6, 0xa3, 0x6d, 0x53, 0xdd, 0x8c, 0x2c, 0x3f, 0x8c, 0x29, 0x59, 0xc8, 0x15, 0x5e, 0x8a, 0x39, 0xe4, 0x87, 0x00, 0xe1, 0xd7, 0xbc, 0x09, 0xbb, 0x9f, 0x91, 0x2f, 0x24, 0x47, 0x40, 0xaa, 0x4e, 0x85, 0x0f, 0x6d, 0xe0, 0xc8, 0x29, 0x23, 0xe9, 0x3f, 0x1e, 0xbd, 0x69, 0x12, 0x48, 0xd5, 0xd4, 0x3b, 0xfa, 0xb2, 0xa5, 0x36, 0x45, 0x2d, 0x21, 0xbf, 0x6f, 0x6d, 0xfd, 0x3a, 0xb3, 0xc4, 0xaf, 0x3c, 0x53, 0xc8, 0x83, 0x9d, 0xb7, 0x36, 0xc6, 0x40, 0x25, 0x02, 0x69, 0x6b, 0xeb, 0x89, 0x4d, 0x4f, 0xb9, 0x75, 0xfc, 0xfa, 0x00, 0x90, 0xbb, 0xc3, 0xa1, 0xb4, 0xce, 0x8b, 0xcb, 0x4f, 0x8a, 0xc9, 0xa3, 0x53, 0x55, 0x18, 0xcf, 0x3c, 0x29, 0x16, 0x63, 0x4c, 0xa3, 0x52, 0xe9, 0x23, 0xb9, 0xfb, 0x02, 0x56, 0x31, 0x75, 0x52, 0xb0, 0xd7, 0xe3, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnak64[5343] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x69, 0x71, 0xde, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xaf, 0xc8, 0x37, 0x05, 0x8a, 0xe9, 0x00, 0x00, 0x14, 0x96, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9b, 0x79, 0x74, 0x5d, 0xc5, 0x9d, 0xe7, 0x3f, 0x55, 0xf7, 0xde, 0xb7, 0x4a, 0x7a, 0x7a, 0x8b, 0x16, 0x6b, 0xf1, 0xbe, 0xca, 0x78, 0xc5, 0x0b, 0x26, 0x0b, 0x36, 0x36, 0x3b, 0x36, 0xc1, 0x3d, 0xa1, 0x03, 0x74, 0x12, 0x26, 0xe9, 0x0e, 0x27, 0xd3, 0x64, 0xc8, 0xc9, 0xe9, 0x84, 0x49, 0xf7, 0x74, 0xf7, 0x9c, 0x4e, 0x37, 0x90, 0xc9, 0x4c, 0x7a, 0xd2, 0x6c, 0x49, 0xe8, 0x49, 0x43, 0x87, 0x74, 0x26, 0x93, 0xa5, 0x09, 0x4c, 0x80, 0x10, 0x87, 0x00, 0xc6, 0xc6, 0x36, 0x98, 0x78, 0xc5, 0xfb, 0x2a, 0xaf, 0x92, 0x2c, 0xbd, 0x27, 0xe9, 0x2d, 0x77, 0xa9, 0xaa, 0xf9, 0xe3, 0x4a, 0x02, 0x27, 0xd8, 0xd8, 0x96, 0x0c, 0xe4, 0x77, 0xce, 0x3d, 0x7a, 0xe7, 0xea, 0xdc, 0x5f, 0xd5, 0xef, 0x5b, 0xbf, 0xbd, 0xaa, 0x2c, 0x3e, 0xb8, 0xe4, 0x64, 0xb3, 0xd9, 0x46, 0xdb, 0xb6, 0x23, 0x9e, 0xe7, 0x95, 0x2f, 0xd6, 0x20, 0xe2, 0x62, 0x31, 0xbe, 0x50, 0xaa, 0xab, 0xab, 0x9b, 0x10, 0x68, 0x7d, 0x87, 0x31, 0x5c, 0x6f, 0x20, 0x27, 0xc1, 0x17, 0x52, 0xec, 0x35, 0xf0, 0x78, 0x4f, 0x57, 0xd7, 0x8f, 0x81, 0x60, 0x24, 0xc7, 0xfb, 0x20, 0x01, 0x60, 0xa5, 0xb3, 0x75, 0x5f, 0x32, 0x46, 0x7f, 0xd5, 0xb6, 0xed, 0x74, 0xb2, 0xaa, 0x8a, 0x88, 0x13, 0xc1, 0xf5, 0x5c, 0xfa, 0x7a, 0x7b, 0x11, 0x80, 0x11, 0xfc, 0xd4, 0x2d, 0x95, 0xee, 0x2a, 0x95, 0x4a, 0x27, 0x46, 0x6a, 0xd0, 0x0f, 0x04, 0x00, 0xe9, 0x74, 0x3a, 0x85, 0xb4, 0xbe, 0x27, 0xa5, 0xb5, 0x32, 0x5b, 0x97, 0x63, 0xdc, 0xf8, 0x89, 0xd4, 0x37, 0x34, 0x90, 0x4c, 0x26, 0x01, 0x38, 0xd5, 0xd5, 0xc5, 0x6f, 0x37, 0xbe, 0xc6, 0xa9, 0xae, 0x2e, 0x10, 0xe2, 0x45, 0xb7, 0x54, 0xbc, 0xad, 0x54, 0x2a, 0x1d, 0x1f, 0x89, 0xb1, 0xad, 0x91, 0x60, 0x32, 0x1c, 0xca, 0x66, 0xb3, 0xd5, 0x5a, 0x88, 0x1f, 0x46, 0xa3, 0xb1, 0x15, 0xa3, 0x5a, 0x5a, 0x18, 0x3f, 0x71, 0x12, 0x99, 0x4c, 0x96, 0x48, 0x24, 0x82, 0xe3, 0x38, 0xc4, 0x62, 0x71, 0x46, 0x35, 0x35, 0x31, 0x6d, 0x5a, 0x1b, 0xa7, 0xba, 0xba, 0xe8, 0xe9, 0xee, 0x1e, 0x6b, 0xd9, 0x4e, 0x4d, 0xa5, 0x5c, 0xfe, 0x25, 0xa0, 0x86, 0x3b, 0xfe, 0xfb, 0x0e, 0x40, 0x2c, 0x91, 0x7c, 0xd4, 0x92, 0xd6, 0x7f, 0x48, 0xd5, 0xa6, 0x89, 0x3a, 0x0e, 0xfb, 0xf7, 0xee, 0x21, 0x93, 0xcb, 0x11, 0x8f, 0x27, 0xb0, 0x2c, 0x1b, 0x29, 0x25, 0x42, 0x08, 0x6a, 0x6a, 0x6a, 0x98, 0x36, 0x75, 0x2a, 0x7b, 0xf7, 0xee, 0xa1, 0xaf, 0xaf, 0x6f, 0x92, 0xc0, 0x5e, 0x1d, 0x04, 0xde, 0xa1, 0xe1, 0x8e, 0x2f, 0x47, 0x42, 0x88, 0x0b, 0xa5, 0x74, 0xb6, 0xfe, 0xce, 0x40, 0x05, 0x9f, 0x9a, 0x7e, 0xc9, 0x25, 0x3c, 0xf8, 0xad, 0x7f, 0xe4, 0xe9, 0x9f, 0xff, 0x3b, 0xf3, 0xe7, 0xcd, 0xe3, 0x68, 0x7b, 0x3b, 0xc6, 0x18, 0xb4, 0x56, 0x80, 0x01, 0xc0, 0xf7, 0x3c, 0x52, 0xb5, 0x69, 0x16, 0x2f, 0x59, 0x8a, 0x65, 0x59, 0x35, 0x4e, 0xd4, 0xba, 0x1a, 0x88, 0x0c, 0x77, 0x0e, 0xef, 0x9b, 0x06, 0x34, 0xa4, 0x1a, 0xc6, 0x96, 0x83, 0xca, 0x63, 0x0b, 0x16, 0x2c, 0xa8, 0xf9, 0xfe, 0xe3, 0x8f, 0x31, 0x77, 0xee, 0x5c, 0x6a, 0x6a, 0x6a, 0x28, 0xf4, 0x16, 0x58, 0xb7, 0x7e, 0x03, 0x4d, 0xcd, 0xcd, 0x80, 0xa0, 0x52, 0xa9, 0x50, 0x28, 0xe4, 0xf1, 0x5c, 0x8f, 0x44, 0x22, 0xc1, 0xa8, 0xc6, 0x46, 0xb6, 0x6c, 0xd9, 0x4c, 0xb1, 0x58, 0xec, 0xf5, 0x5c, 0xf7, 0x79, 0xa0, 0x38, 0x9c, 0x79, 0xd8, 0x23, 0x23, 0xce, 0xf9, 0x53, 0xd1, 0x94, 0xbf, 0xd8, 0xd2, 0xd2, 0xd2, 0xf2, 0xf0, 0x43, 0x0f, 0xd1, 0xd2, 0xd2, 0x32, 0xf4, 0xde, 0x68, 0x03, 0x42, 0x72, 0xa4, 0xbd, 0x9d, 0xa8, 0x63, 0x53, 0x9b, 0x4a, 0x61, 0xdb, 0x92, 0x63, 0x47, 0x0e, 0xb1, 0x66, 0xf5, 0xcb, 0x2c, 0x58, 0xb0, 0x80, 0x86, 0x86, 0x46, 0x8e, 0x1f, 0x3f, 0xde, 0x04, 0xd4, 0x02, 0x1d, 0xef, 0x97, 0x0c, 0x17, 0x4c, 0xd9, 0x6c, 0x76, 0x6a, 0xa2, 0xaa, 0x3a, 0xff, 0xd0, 0xc3, 0x8f, 0x98, 0x07, 0x1e, 0x78, 0xd0, 0x5c, 0xbf, 0xfc, 0x26, 0xd3, 0x57, 0xaa, 0x18, 0x63, 0x8c, 0xb9, 0xf3, 0xcf, 0xef, 0x32, 0x1f, 0xff, 0xe3, 0x4f, 0x98, 0xef, 0x3f, 0xf1, 0x84, 0xd9, 0xb6, 0x7d, 0xbb, 0xd1, 0x5a, 0x1b, 0x63, 0x8c, 0xf1, 0x3c, 0xcf, 0x3c, 0xfb, 0xdc, 0x73, 0x66, 0xe6, 0xec, 0x39, 0x66, 0xc6, 0xec, 0xb9, 0xa6, 0x3a, 0x95, 0x3e, 0x04, 0xcc, 0xe3, 0x03, 0x12, 0xc9, 0xce, 0x8b, 0x62, 0x55, 0x55, 0xdf, 0x9c, 0xb7, 0xf0, 0x32, 0xb3, 0xea, 0x85, 0x97, 0x4d, 0x26, 0x97, 0x33, 0x1f, 0x9a, 0x33, 0xd5, 0x14, 0x76, 0xbc, 0x6c, 0x4e, 0xac, 0xf9, 0x99, 0xf9, 0xd1, 0x77, 0x1f, 0x32, 0xeb, 0xd6, 0xbf, 0x6e, 0xae, 0xba, 0x7e, 0xb9, 0xb9, 0xfc, 0xa3, 0x8b, 0xcd, 0x89, 0x93, 0x27, 0xcd, 0xdb, 0xe9, 0x3f, 0xdd, 0x75, 0x97, 0x99, 0x34, 0x65, 0xaa, 0x49, 0x67, 0xb2, 0x5d, 0xb6, 0x6d, 0x7f, 0x94, 0x61, 0x9a, 0xf1, 0x7b, 0xee, 0x04, 0xd3, 0xe9, 0xf4, 0x68, 0x15, 0x88, 0x5b, 0xe6, 0xcd, 0x6a, 0xa3, 0x35, 0xd6, 0xce, 0xb7, 0xee, 0xbe, 0x8a, 0x9f, 0x3c, 0xf2, 0x77, 0xc4, 0x6b, 0x12, 0x24, 0x53, 0x45, 0x6e, 0x9e, 0x9a, 0xe7, 0xd4, 0xd3, 0xf7, 0x51, 0xb5, 0xff, 0x75, 0xea, 0xb5, 0x4f, 0xc4, 0x8a, 0x0d, 0x7d, 0xab, 0xb5, 0xc6, 0xf7, 0x03, 0x1a, 0x1a, 0x1a, 0x09, 0xb4, 0x92, 0xc6, 0x98, 0x38, 0xc3, 0xd4, 0x80, 0xf7, 0xdc, 0x07, 0x14, 0x3d, 0x6b, 0xe5, 0xd4, 0x31, 0xaa, 0xf9, 0xcf, 0xae, 0x2e, 0x31, 0xf9, 0x92, 0x99, 0x4c, 0x5e, 0x74, 0x2b, 0xa0, 0xa8, 0xf4, 0x6e, 0x46, 0x4a, 0x1f, 0xbf, 0xda, 0x65, 0xd9, 0x1f, 0xc3, 0xb2, 0x25, 0x31, 0xfa, 0x8e, 0x1e, 0x47, 0x3e, 0x7f, 0x37, 0xc5, 0x51, 0x37, 0x90, 0x9c, 0x75, 0x05, 0xab, 0xb7, 0xef, 0xa6, 0xbf, 0x58, 0x22, 0x93, 0xcb, 0xa1, 0x95, 0x96, 0x03, 0xf3, 0xff, 0x83, 0x02, 0x20, 0xee, 0x48, 0x6e, 0xff, 0xca, 0xa7, 0x6d, 0xe6, 0xde, 0x78, 0x37, 0x44, 0x2f, 0x41, 0x05, 0x7d, 0xf8, 0xfd, 0xdb, 0xd0, 0xc5, 0xad, 0xe0, 0x1d, 0x46, 0x54, 0x76, 0xa2, 0xfc, 0x0d, 0x50, 0xd3, 0x4e, 0xb2, 0x1a, 0x94, 0xbf, 0x9f, 0xe0, 0xf0, 0x8f, 0xe8, 0x7e, 0xee, 0x0a, 0x76, 0x77, 0xd7, 0x32, 0xb1, 0x6d, 0x1e, 0xaf, 0xaf, 0x7d, 0x79, 0x50, 0xea, 0x61, 0x6b, 0xf0, 0x7b, 0x0b, 0x80, 0x55, 0xff, 0xe1, 0x09, 0x2d, 0xc5, 0x4b, 0xaf, 0x59, 0xba, 0x00, 0xa2, 0x0b, 0x43, 0xe1, 0xfb, 0x36, 0xa3, 0x4b, 0xdb, 0xc0, 0x6d, 0x47, 0x54, 0x76, 0x80, 0xbb, 0x1e, 0xd4, 0x31, 0x50, 0x60, 0x14, 0xd0, 0x1d, 0x45, 0x1d, 0x1f, 0xc5, 0xc9, 0x7e, 0x10, 0x99, 0x7a, 0xa2, 0x11, 0x07, 0xcf, 0x75, 0x07, 0x39, 0x9a, 0xe1, 0x4e, 0xe9, 0x3d, 0x05, 0xc0, 0x8a, 0x70, 0x7b, 0xdb, 0x58, 0x57, 0xd4, 0x35, 0x4d, 0x47, 0x2b, 0x1f, 0xaf, 0x6f, 0x33, 0xa6, 0xb4, 0x1d, 0xfc, 0xc3, 0x08, 0x77, 0x2b, 0xa2, 0xbc, 0x1e, 0x53, 0xec, 0x44, 0xf5, 0xd4, 0xe0, 0x75, 0x65, 0xc8, 0x77, 0x8e, 0xe7, 0x94, 0x3b, 0x8e, 0x23, 0x91, 0xd1, 0x14, 0xe6, 0xb4, 0x72, 0xbc, 0xbb, 0x80, 0xf1, 0x5c, 0x3c, 0xdf, 0x87, 0x50, 0xf8, 0x3f, 0x1c, 0x00, 0x52, 0x0d, 0x0d, 0x63, 0xdd, 0x12, 0xd7, 0xa6, 0x6b, 0xc0, 0x54, 0x76, 0xe0, 0xf5, 0x3c, 0x8f, 0xe8, 0x5b, 0x07, 0xc5, 0xa3, 0xe8, 0xbe, 0xe3, 0x78, 0xf9, 0x6e, 0x8a, 0x85, 0x99, 0xf4, 0x97, 0x5b, 0xc8, 0xab, 0xb1, 0x74, 0xdb, 0xad, 0x14, 0x47, 0xd7, 0xd0, 0x2f, 0x24, 0xc9, 0x44, 0x9c, 0xab, 0x16, 0xcc, 0xe5, 0xf9, 0x55, 0xbf, 0x66, 0xef, 0xbe, 0x83, 0x78, 0x9e, 0x37, 0x68, 0xf9, 0x7f, 0x38, 0x00, 0x08, 0xad, 0x97, 0xdb, 0xd2, 0x34, 0xec, 0x3d, 0xd1, 0x8c, 0x5b, 0xa9, 0xa0, 0x3b, 0xfe, 0x37, 0xdd, 0x85, 0x04, 0x15, 0x77, 0x0c, 0xfd, 0xc1, 0x65, 0x94, 0xec, 0x26, 0xbc, 0x6c, 0x12, 0x4f, 0x46, 0x09, 0xb4, 0x42, 0x05, 0x1e, 0x09, 0x09, 0xe3, 0xeb, 0xeb, 0x98, 0x32, 0x79, 0x12, 0xc9, 0x64, 0x82, 0xba, 0x5c, 0x8e, 0x1d, 0xbb, 0xf6, 0xe0, 0x07, 0x3e, 0x23, 0x15, 0xc0, 0xde, 0x2b, 0x00, 0x22, 0x12, 0x3e, 0x6e, 0xb4, 0x47, 0xa6, 0xe9, 0x5a, 0x62, 0x6d, 0x8f, 0x52, 0xa9, 0x78, 0x74, 0xed, 0xeb, 0x40, 0x25, 0x34, 0x5a, 0x07, 0xd8, 0x3a, 0x40, 0xa8, 0x80, 0x88, 0x52, 0x08, 0x29, 0xa8, 0x4d, 0x8d, 0xa2, 0x69, 0x54, 0x03, 0xa9, 0x54, 0xcd, 0x10, 0x93, 0xba, 0x5c, 0x0e, 0xa5, 0x14, 0x2a, 0x50, 0x08, 0x61, 0x04, 0x23, 0x90, 0xca, 0xbf, 0x27, 0x00, 0xd4, 0xe6, 0x72, 0x0b, 0x31, 0x5c, 0x66, 0x8c, 0x61, 0xf1, 0x15, 0x1f, 0x06, 0x19, 0x23, 0x1a, 0x8f, 0x91, 0xcb, 0x94, 0x28, 0x57, 0x2a, 0x68, 0x6d, 0x63, 0x8c, 0xc1, 0xb1, 0x6d, 0xaa, 0xab, 0x92, 0xd4, 0xa4, 0xaa, 0x89, 0x45, 0xa3, 0xbf, 0xc7, 0x27, 0x95, 0xaa, 0x41, 0x08, 0x81, 0x56, 0x0a, 0x81, 0xb0, 0x2c, 0xcb, 0x8a, 0x28, 0x35, 0xbc, 0x8a, 0xf8, 0x3d, 0x01, 0x40, 0x68, 0x3e, 0x81, 0xc4, 0xc9, 0xe5, 0x72, 0x2c, 0x59, 0xbc, 0x38, 0x7c, 0x27, 0x20, 0x9b, 0xad, 0xa5, 0x54, 0xae, 0xe0, 0xd8, 0x36, 0xd1, 0x48, 0x84, 0x48, 0xc4, 0x41, 0x88, 0x33, 0x87, 0xf5, 0xaa, 0x64, 0x92, 0x48, 0x24, 0x12, 0xda, 0xbf, 0x10, 0xb6, 0x91, 0x32, 0xc9, 0x07, 0x3d, 0x0f, 0x88, 0x67, 0xb3, 0x4d, 0x52, 0x8a, 0xe5, 0x95, 0x8a, 0xcb, 0xb2, 0xa5, 0x4b, 0x99, 0x32, 0x65, 0xca, 0x5b, 0xff, 0x8b, 0xc5, 0x88, 0xc7, 0x62, 0x67, 0xf9, 0xfa, 0x74, 0x4a, 0x24, 0xe2, 0x44, 0x22, 0x11, 0xa4, 0xb4, 0x00, 0x22, 0xb6, 0x10, 0x35, 0xfe, 0x30, 0x01, 0xb8, 0xe8, 0xa9, 0x70, 0x4c, 0x88, 0x1b, 0x40, 0xb4, 0x02, 0xac, 0x58, 0xb1, 0x7c, 0x58, 0xbc, 0x1c, 0xdb, 0x41, 0x0a, 0x81, 0x65, 0xdb, 0x08, 0x21, 0xa4, 0x94, 0x32, 0xc7, 0x07, 0xbc, 0x16, 0xb0, 0x41, 0xdc, 0x12, 0x04, 0x8a, 0xd1, 0xad, 0xad, 0x2c, 0xbd, 0xf2, 0xca, 0x61, 0x31, 0x93, 0x56, 0xb8, 0xd8, 0xf1, 0x78, 0x3c, 0xb4, 0x02, 0xcb, 0x69, 0x05, 0x7e, 0xdf, 0x59, 0x9c, 0x0f, 0xcf, 0x61, 0xcd, 0xe8, 0x5d, 0xa8, 0x26, 0x9b, 0x9d, 0x2d, 0x10, 0x1f, 0x72, 0x5d, 0x97, 0x3f, 0x5a, 0xb9, 0x92, 0xc6, 0xc6, 0xc6, 0x61, 0xf1, 0xf3, 0xfd, 0x80, 0x40, 0x29, 0x52, 0xa9, 0x5a, 0x0c, 0x60, 0xdb, 0xd6, 0x34, 0xa0, 0x6a, 0x38, 0x3c, 0x2f, 0x2a, 0x00, 0xb6, 0x10, 0xff, 0xd1, 0x18, 0x13, 0x6f, 0xa8, 0xaf, 0xe7, 0xf6, 0xdb, 0x6f, 0x1b, 0x36, 0x3f, 0xd7, 0xf5, 0xf0, 0x7d, 0x8f, 0x4c, 0x36, 0x8b, 0xe3, 0x44, 0x00, 0xc6, 0xdb, 0xb1, 0xd8, 0x98, 0xe1, 0xf0, 0xbc, 0x68, 0x00, 0x64, 0x32, 0x99, 0x69, 0x08, 0x71, 0xab, 0xeb, 0x56, 0xb8, 0xfe, 0xfa, 0xeb, 0x98, 0x3a, 0x75, 0xea, 0xb0, 0x79, 0x16, 0x7a, 0x7b, 0x29, 0x16, 0x8b, 0xa4, 0x33, 0x59, 0x6a, 0x6b, 0x6b, 0x01, 0x1a, 0xa2, 0x8e, 0xb3, 0x90, 0x61, 0x38, 0xf3, 0x8b, 0x06, 0x80, 0x11, 0xd6, 0x5f, 0x18, 0x6d, 0xd2, 0x99, 0x74, 0x86, 0x3b, 0x3f, 0xf7, 0xb9, 0x11, 0xe1, 0x79, 0xaa, 0xbb, 0x9b, 0x52, 0xa9, 0x4c, 0x2c, 0x16, 0x63, 0xec, 0xf8, 0x09, 0x00, 0x38, 0xb6, 0x73, 0x03, 0x90, 0xb9, 0x50, 0x9e, 0x17, 0x05, 0x80, 0x74, 0x3a, 0x77, 0x9d, 0x94, 0xe2, 0xd3, 0xe5, 0x72, 0x99, 0x4f, 0x7d, 0xf2, 0x93, 0xcc, 0x9a, 0x35, 0x73, 0x44, 0xf8, 0x1e, 0x3c, 0x74, 0x18, 0xad, 0x15, 0x41, 0x10, 0x30, 0x7e, 0xc2, 0x44, 0x62, 0xb1, 0x38, 0x42, 0x88, 0xcb, 0x22, 0x89, 0xc4, 0xbc, 0x0b, 0xe5, 0x39, 0xe2, 0x00, 0x24, 0xea, 0xea, 0x1a, 0xa5, 0x25, 0xfe, 0x47, 0x10, 0x04, 0xd6, 0x84, 0x09, 0x13, 0xf8, 0xfc, 0xe7, 0xef, 0x1c, 0x11, 0xbe, 0x81, 0x0a, 0xd8, 0xb5, 0x7b, 0x0f, 0x42, 0x08, 0x82, 0x20, 0x20, 0x9d, 0xc9, 0x30, 0x7e, 0xe2, 0x44, 0xb4, 0x31, 0xf1, 0x58, 0x34, 0xfe, 0x19, 0x2e, 0xd0, 0x19, 0x8e, 0x38, 0x00, 0x51, 0xf8, 0x07, 0x84, 0x68, 0xd3, 0x5a, 0x73, 0xcf, 0x97, 0xbf, 0x7c, 0x5a, 0xc7, 0x77, 0x38, 0x74, 0xf0, 0xe0, 0x61, 0x0e, 0x1c, 0x38, 0x80, 0x10, 0x72, 0x60, 0xcf, 0x40, 0x33, 0x6b, 0xf6, 0x1c, 0xe2, 0xf1, 0x38, 0x52, 0x70, 0x43, 0x22, 0x91, 0x58, 0x7c, 0x21, 0x7c, 0x47, 0x14, 0x80, 0x4c, 0x2e, 0xf7, 0x59, 0x89, 0xf8, 0x4c, 0xb9, 0x5c, 0xe6, 0xba, 0x6b, 0xaf, 0xe5, 0xf6, 0xdb, 0x86, 0xef, 0xf9, 0x07, 0xe9, 0xc5, 0x97, 0x57, 0xd3, 0x5f, 0x2a, 0x61, 0x8c, 0x46, 0x6b, 0x85, 0xef, 0xfb, 0xe4, 0xea, 0xea, 0x99, 0x39, 0x6b, 0x0e, 0x60, 0x62, 0x91, 0x68, 0xfc, 0x0b, 0x40, 0xfa, 0x7c, 0xf9, 0x8e, 0x14, 0x00, 0x56, 0x36, 0x5b, 0x77, 0x0f, 0x88, 0x07, 0x95, 0x52, 0x34, 0x36, 0x34, 0xf0, 0x37, 0x7f, 0xf3, 0xd7, 0x48, 0x4b, 0xa2, 0xb5, 0xc6, 0x98, 0xe1, 0x95, 0xed, 0xed, 0x47, 0x8e, 0xf2, 0xe2, 0xcb, 0xab, 0xb1, 0xe4, 0x00, 0x3f, 0x6d, 0x30, 0xc6, 0xe0, 0xfb, 0x3e, 0xf3, 0x17, 0x2c, 0xa4, 0xa1, 0xa1, 0x11, 0x04, 0x57, 0xd7, 0xa4, 0xd3, 0x9f, 0x38, 0x5f, 0xde, 0xc3, 0x06, 0x20, 0x95, 0x4a, 0x8d, 0xcb, 0x64, 0xeb, 0x9e, 0xd4, 0x98, 0xfb, 0x81, 0x58, 0x10, 0x04, 0x7c, 0xf1, 0xee, 0xbb, 0x99, 0xde, 0xd6, 0x46, 0xa0, 0x14, 0xc6, 0x30, 0xa4, 0xb2, 0x17, 0x4a, 0x3f, 0xf8, 0xd1, 0xff, 0xa5, 0xa3, 0xb3, 0x73, 0xc0, 0xe9, 0xbd, 0x05, 0x6a, 0x10, 0x04, 0xc4, 0x13, 0x89, 0x70, 0xbb, 0x4c, 0x5a, 0x48, 0x21, 0xff, 0x22, 0x12, 0x89, 0x9c, 0x57, 0xbc, 0x1d, 0x56, 0x1e, 0x9d, 0xce, 0x35, 0xdc, 0x22, 0x2d, 0xf9, 0x43, 0xcf, 0xf7, 0xe6, 0xd7, 0xd5, 0xd5, 0x11, 0x8b, 0xc5, 0x99, 0x3d, 0x7b, 0x36, 0x5f, 0xbf, 0xff, 0x3e, 0xa4, 0x65, 0x61, 0x8c, 0xc1, 0x08, 0x83, 0x18, 0xaa, 0x57, 0x42, 0x4d, 0x38, 0x5b, 0xc5, 0xf7, 0xbb, 0xf4, 0xcb, 0x5f, 0xad, 0xe2, 0x5f, 0xfe, 0xf5, 0x09, 0xb2, 0xd9, 0x2c, 0x99, 0x74, 0x3a, 0x14, 0x1e, 0xb0, 0x2c, 0x0b, 0xcb, 0xb2, 0x90, 0x42, 0xd0, 0xda, 0xd2, 0x4a, 0x6f, 0x6f, 0x81, 0xa3, 0x47, 0x8f, 0xa4, 0x23, 0xd1, 0x68, 0xb4, 0x52, 0x2e, 0x3f, 0x07, 0x9c, 0x13, 0xe2, 0x17, 0xa4, 0x01, 0xe9, 0x74, 0x3a, 0x95, 0xa9, 0xaf, 0x7f, 0xd8, 0x68, 0xf5, 0x23, 0xdf, 0xf7, 0x5b, 0x6f, 0xbc, 0xf1, 0x46, 0xbe, 0x7e, 0xff, 0x7d, 0xc4, 0xe3, 0x51, 0xee, 0xf9, 0xca, 0x97, 0x49, 0x24, 0x12, 0xa8, 0x20, 0x00, 0x63, 0x40, 0x1b, 0x34, 0x1a, 0x83, 0x19, 0xd2, 0x86, 0x73, 0x35, 0x89, 0x7d, 0xfb, 0x0f, 0xf0, 0x8f, 0x0f, 0x3c, 0x44, 0x22, 0x9e, 0xa0, 0xb5, 0xa5, 0x95, 0x48, 0x24, 0x8a, 0x52, 0x6a, 0x48, 0x03, 0xb4, 0xd6, 0x28, 0xad, 0x09, 0x94, 0x62, 0xd9, 0x55, 0xd7, 0x90, 0xcb, 0xd5, 0x01, 0x7c, 0xb2, 0xba, 0xba, 0xfa, 0x9a, 0x73, 0x95, 0xe5, 0xbc, 0x01, 0xc8, 0x64, 0x32, 0xd3, 0x84, 0x65, 0x3f, 0xab, 0xfc, 0xe0, 0xf3, 0x89, 0x78, 0x8c, 0x7f, 0xf8, 0xda, 0xd7, 0xf8, 0xe1, 0x0f, 0x9e, 0x60, 0xf5, 0xea, 0xd5, 0x2c, 0x58, 0xb0, 0x90, 0x2b, 0x3e, 0xf2, 0x51, 0x2a, 0x15, 0xf7, 0x74, 0x61, 0x07, 0x6c, 0xf6, 0xed, 0x20, 0xbc, 0x9b, 0x49, 0xf4, 0xf5, 0xf7, 0xf3, 0xb7, 0x5f, 0xfb, 0x7b, 0xfa, 0xfb, 0xfb, 0x99, 0x39, 0x73, 0x26, 0x55, 0x55, 0x61, 0x94, 0xf3, 0x3c, 0x77, 0x00, 0x80, 0x01, 0x10, 0x94, 0xc2, 0xf3, 0xc2, 0xf4, 0xf8, 0xea, 0xab, 0xaf, 0x01, 0x44, 0xcc, 0x8a, 0x44, 0xff, 0x12, 0xa8, 0x1f, 0x71, 0x00, 0x52, 0xd9, 0xec, 0x95, 0x58, 0xf6, 0x2a, 0xdf, 0xf3, 0x17, 0xb5, 0xb6, 0xb6, 0xf2, 0xf8, 0x63, 0x8f, 0xf1, 0x85, 0x2f, 0xdc, 0xc5, 0xae, 0x5d, 0xbb, 0xf8, 0xcd, 0x6f, 0x5e, 0xe4, 0x8b, 0x77, 0xdf, 0x8d, 0x1e, 0x10, 0x3a, 0x14, 0xf2, 0x2d, 0x81, 0x19, 0x7c, 0x87, 0x1e, 0x78, 0xc7, 0x00, 0x08, 0xef, 0xac, 0x0d, 0x5f, 0xbb, 0xf7, 0x5e, 0xb6, 0x6c, 0xdd, 0xc6, 0xb2, 0x2b, 0xaf, 0xa4, 0xa1, 0xae, 0x0e, 0xdb, 0xb2, 0xe8, 0xee, 0xee, 0xc6, 0xf3, 0xfc, 0x70, 0xe5, 0x95, 0x1e, 0xd2, 0x00, 0x3f, 0x08, 0x28, 0x97, 0x4a, 0x2c, 0x58, 0xb0, 0x90, 0x4b, 0x66, 0xcc, 0x40, 0xa9, 0x60, 0x51, 0x4d, 0x6d, 0xed, 0x67, 0x39, 0x87, 0x5e, 0xc1, 0x39, 0x03, 0x90, 0xce, 0xe5, 0x6e, 0xb0, 0xa5, 0xf5, 0x13, 0xcf, 0x75, 0x9b, 0xa6, 0xb5, 0x4d, 0xe3, 0x89, 0x7f, 0xfd, 0x3e, 0x4b, 0x96, 0x2c, 0x41, 0x29, 0xcd, 0x93, 0x4f, 0x3e, 0xc5, 0x9c, 0xb9, 0x73, 0x99, 0x36, 0x6d, 0x1a, 0xae, 0xe7, 0x0d, 0x01, 0xf0, 0x4e, 0x20, 0xa0, 0x0d, 0xda, 0xbc, 0x65, 0x12, 0x5a, 0xff, 0xbe, 0x49, 0x3c, 0xf8, 0xf0, 0x23, 0xfc, 0xf4, 0x67, 0x4f, 0x72, 0xf3, 0x8a, 0x9b, 0x18, 0xdd, 0x3a, 0x9a, 0x78, 0x2c, 0x46, 0x3e, 0xdf, 0x13, 0x1e, 0x91, 0x81, 0x81, 0x50, 0xa8, 0x87, 0xc6, 0x18, 0x34, 0x03, 0x69, 0x59, 0xdc, 0x74, 0xd3, 0xc7, 0xa8, 0x4a, 0x24, 0x91, 0xc2, 0xfa, 0xf3, 0x44, 0x22, 0x31, 0x6b, 0x44, 0x00, 0xc8, 0x66, 0xb3, 0x4b, 0xa4, 0x90, 0xff, 0xe6, 0x79, 0x5e, 0x7a, 0x7a, 0xdb, 0x74, 0xbe, 0xf3, 0xed, 0xef, 0x30, 0x7e, 0xc2, 0x04, 0xba, 0x7b, 0xf2, 0x74, 0xf7, 0xe4, 0xf9, 0xf5, 0x6f, 0x5e, 0xe0, 0xaa, 0x65, 0xcb, 0xc2, 0x7e, 0x9d, 0xd6, 0xa7, 0x69, 0x01, 0x98, 0xd3, 0x26, 0xcb, 0xdb, 0xb4, 0xe1, 0x9d, 0xfc, 0xc2, 0xcb, 0xab, 0x5f, 0xe1, 0xfe, 0xaf, 0x7f, 0x9d, 0x65, 0x57, 0x2e, 0x65, 0xde, 0xa5, 0x73, 0x49, 0x26, 0x12, 0xf4, 0xf4, 0xf4, 0xb0, 0x6d, 0xfb, 0xf6, 0x10, 0xb8, 0x21, 0xe1, 0xdf, 0xfa, 0xad, 0x95, 0x42, 0x29, 0x45, 0xa5, 0x52, 0x61, 0xdc, 0xd8, 0xf1, 0x2c, 0x5a, 0x74, 0x39, 0xda, 0xe8, 0xe6, 0x48, 0x24, 0x76, 0x27, 0xe0, 0x0c, 0x0b, 0x80, 0x54, 0x2a, 0x35, 0xd6, 0x08, 0xeb, 0x51, 0xdf, 0xf7, 0x6b, 0x5a, 0x5a, 0x5a, 0xf8, 0xc6, 0x37, 0xbe, 0x41, 0x73, 0x73, 0x33, 0xf9, 0x7c, 0x1e, 0xd7, 0x75, 0xe9, 0xe8, 0xe8, 0xa0, 0xab, 0xb3, 0x8b, 0xb1, 0x63, 0xc7, 0x12, 0x04, 0xc1, 0xc0, 0x0a, 0x99, 0x10, 0x84, 0x81, 0xdf, 0x10, 0xae, 0xb4, 0xd6, 0x06, 0xfd, 0x7b, 0x26, 0x31, 0x28, 0xbc, 0xc0, 0x75, 0x5d, 0xee, 0xbd, 0xf7, 0x5e, 0x6a, 0x53, 0xb5, 0xdc, 0x70, 0xdd, 0xf5, 0x38, 0x8e, 0x43, 0xb9, 0x52, 0x66, 0xf5, 0xda, 0x35, 0x54, 0x5c, 0x17, 0x03, 0x6f, 0x73, 0x80, 0x66, 0x48, 0x7b, 0x42, 0x93, 0x50, 0x04, 0x2a, 0xac, 0x13, 0xae, 0xbe, 0xe6, 0x5a, 0xaa, 0xab, 0xab, 0x41, 0x8a, 0x5b, 0x62, 0xb1, 0xd8, 0xfc, 0x61, 0x01, 0x60, 0x45, 0x22, 0xff, 0x1d, 0xcc, 0x84, 0x58, 0x2c, 0xc6, 0x5f, 0x7e, 0xf5, 0xaf, 0x98, 0x30, 0x61, 0x22, 0x85, 0x42, 0x2f, 0x15, 0xd7, 0xc3, 0xf3, 0x03, 0xf2, 0x85, 0x5e, 0x02, 0xa5, 0xb0, 0x6d, 0x67, 0x60, 0x42, 0xfa, 0x6d, 0xea, 0x7f, 0xba, 0x36, 0xbc, 0xf5, 0x70, 0x9a, 0x36, 0x68, 0x63, 0x10, 0x02, 0x5e, 0x5d, 0xb7, 0x9e, 0x57, 0xd7, 0xad, 0x63, 0xf1, 0xe2, 0xc5, 0xb4, 0xb6, 0xb6, 0xe0, 0xd8, 0x0e, 0xcf, 0xfe, 0xf2, 0x97, 0x74, 0x74, 0x76, 0x20, 0x07, 0x92, 0xa0, 0xc1, 0x47, 0x0d, 0x08, 0xeb, 0xfb, 0x7e, 0xd8, 0x2a, 0x57, 0x0a, 0xad, 0x14, 0xae, 0xe7, 0xd1, 0xd2, 0xd2, 0xc2, 0xcc, 0x99, 0xb3, 0x08, 0x82, 0x20, 0x13, 0x8d, 0xc5, 0x3e, 0xc5, 0x59, 0xba, 0x46, 0x67, 0x05, 0x20, 0x5b, 0x5f, 0xff, 0x31, 0x81, 0xf8, 0xb8, 0xe7, 0x79, 0xac, 0x5c, 0xf9, 0x47, 0x2c, 0xba, 0xfc, 0x72, 0x7a, 0xfb, 0xfa, 0x30, 0x06, 0x54, 0x10, 0x50, 0xc8, 0xe7, 0xe9, 0xeb, 0xeb, 0xa3, 0x5c, 0x2e, 0x91, 0xcf, 0xe7, 0x07, 0x4c, 0xe0, 0x74, 0x95, 0xfe, 0x5d, 0x6d, 0x08, 0x55, 0x5f, 0x60, 0x8c, 0x08, 0x01, 0x0b, 0x3f, 0x00, 0x60, 0xdb, 0xb6, 0x6d, 0x94, 0xca, 0x65, 0xa6, 0x4f, 0x9f, 0x4e, 0x75, 0x75, 0x35, 0xeb, 0x36, 0xac, 0x67, 0xcb, 0xd6, 0x2d, 0x58, 0xd2, 0x1a, 0x0a, 0x7f, 0xbe, 0xef, 0x13, 0x04, 0x01, 0xc9, 0x44, 0x82, 0xd1, 0xad, 0x2d, 0xb4, 0x4d, 0x9d, 0x42, 0x32, 0x99, 0x24, 0x18, 0x00, 0x61, 0x50, 0x0b, 0x2f, 0xbb, 0x6c, 0x11, 0xb6, 0x6d, 0x21, 0x2d, 0xeb, 0x1a, 0xc7, 0x71, 0x26, 0x9f, 0x49, 0xc6, 0xb3, 0x35, 0x12, 0x2c, 0xa3, 0xb9, 0xd3, 0x18, 0x4d, 0x36, 0x9b, 0xe3, 0xe6, 0x9b, 0x57, 0xd2, 0xd3, 0xd3, 0x43, 0x7b, 0x7b, 0x3b, 0x5b, 0xb6, 0x6c, 0x66, 0xfb, 0xf6, 0xed, 0x1c, 0x3f, 0x7e, 0x8c, 0x42, 0xa1, 0xc0, 0xc9, 0x93, 0x27, 0xd9, 0xbc, 0x79, 0x33, 0x57, 0x5c, 0x71, 0xc5, 0x40, 0xf2, 0xe3, 0x20, 0x2d, 0x07, 0xa3, 0x3d, 0x84, 0x79, 0x5b, 0xb8, 0x13, 0x12, 0xa4, 0x85, 0x29, 0xe5, 0x11, 0x4e, 0x0c, 0x19, 0x49, 0x60, 0xcc, 0x5b, 0x07, 0xa1, 0x4a, 0xa5, 0x12, 0x18, 0x43, 0x2c, 0x1a, 0xa5, 0x5c, 0x2e, 0xf3, 0xcc, 0xb3, 0xbf, 0x08, 0xf9, 0x69, 0x4d, 0xe0, 0xfb, 0xf8, 0x96, 0xc5, 0xa4, 0x09, 0x13, 0x98, 0x3f, 0xf7, 0x52, 0x5a, 0x5b, 0x9a, 0x31, 0x06, 0x52, 0xb5, 0x35, 0x9c, 0x38, 0x79, 0x92, 0x75, 0x1b, 0x5e, 0x1f, 0xd2, 0x04, 0xd7, 0x75, 0x99, 0x3c, 0x69, 0x32, 0xa9, 0x54, 0x2d, 0x85, 0x42, 0x61, 0x8c, 0x13, 0x8d, 0x2e, 0xf4, 0x7d, 0x7f, 0x3b, 0xef, 0x90, 0x1c, 0x9d, 0x11, 0x80, 0x54, 0x5d, 0xdd, 0x0c, 0x61, 0xcc, 0xe5, 0x08, 0x81, 0x52, 0x01, 0xdf, 0xfe, 0xf6, 0x23, 0x74, 0x74, 0x74, 0xb0, 0x7f, 0xff, 0x3e, 0x4a, 0xa5, 0x12, 0x4a, 0x29, 0xa4, 0x94, 0x48, 0x19, 0x2a, 0xd1, 0x33, 0xcf, 0x3e, 0xc3, 0x1d, 0x9f, 0xfe, 0x34, 0xd1, 0x58, 0x12, 0xdd, 0xf9, 0x06, 0xfa, 0xd8, 0x3a, 0xc4, 0xc4, 0x15, 0x50, 0xdd, 0x0c, 0x03, 0x20, 0x18, 0x29, 0x51, 0x1b, 0x7e, 0x8c, 0xbf, 0xee, 0x27, 0x50, 0x55, 0x4f, 0x62, 0xc5, 0x57, 0xb0, 0xea, 0xc6, 0x0c, 0x6c, 0x03, 0x43, 0x2e, 0x97, 0x45, 0x29, 0xc5, 0xa9, 0x53, 0xa7, 0xd8, 0xb8, 0xf1, 0x75, 0x0e, 0x1f, 0x3e, 0x4c, 0x4d, 0x4d, 0x2d, 0xe5, 0x4a, 0x85, 0xd1, 0xf5, 0xf5, 0xdc, 0xb4, 0xfc, 0x46, 0x66, 0x4e, 0x9f, 0x81, 0x94, 0x12, 0xd7, 0x75, 0x11, 0x42, 0x30, 0x6d, 0xea, 0x64, 0xaa, 0xab, 0xab, 0x58, 0xf3, 0xea, 0x7a, 0x02, 0x15, 0x10, 0x04, 0x01, 0x9e, 0xe7, 0x13, 0x8b, 0xc5, 0xa8, 0xad, 0x4d, 0x53, 0x28, 0x14, 0x84, 0x65, 0x59, 0xb3, 0x81, 0x04, 0xd0, 0x7f, 0xce, 0x00, 0x08, 0xcd, 0xe5, 0xc2, 0x92, 0x35, 0x02, 0x28, 0x97, 0xcb, 0xac, 0x5a, 0xf5, 0x2b, 0x84, 0x40, 0x49, 0x69, 0x55, 0x84, 0x10, 0x65, 0xdb, 0xb6, 0xb5, 0x94, 0x32, 0x2b, 0x84, 0xb0, 0x2c, 0xcb, 0x62, 0xd3, 0xa6, 0x4d, 0x3c, 0xf5, 0x8b, 0x67, 0xf8, 0x93, 0x15, 0x1f, 0xa6, 0xfc, 0xda, 0xdf, 0x63, 0xba, 0x8f, 0x61, 0x8a, 0x3d, 0xc8, 0x0f, 0xff, 0xd7, 0x50, 0x40, 0x3b, 0x8a, 0xde, 0xf6, 0x1c, 0xfe, 0xab, 0x0f, 0x20, 0x64, 0x40, 0xb0, 0x6f, 0x1f, 0xfe, 0x9b, 0xaf, 0x20, 0x97, 0x8c, 0xc3, 0xf8, 0x3e, 0xc6, 0xc0, 0xcc, 0x19, 0x33, 0xa9, 0xad, 0xad, 0x65, 0xcd, 0xda, 0x35, 0x64, 0x32, 0x59, 0x54, 0xa0, 0x70, 0x3d, 0x97, 0x25, 0x8b, 0x97, 0xf0, 0x27, 0xb7, 0xdd, 0x46, 0x36, 0x93, 0x19, 0xd8, 0x49, 0xd2, 0xd8, 0x8e, 0xc3, 0x84, 0x71, 0x63, 0xa8, 0xae, 0xaa, 0x22, 0x99, 0x4c, 0x60, 0x59, 0x16, 0x41, 0xa0, 0x86, 0x9c, 0xa1, 0x36, 0x1a, 0xcb, 0x0a, 0x33, 0x7d, 0x81, 0x6c, 0x25, 0xec, 0x17, 0x9c, 0x3b, 0x00, 0x18, 0x93, 0x56, 0x2a, 0xe8, 0xd7, 0x5a, 0xe7, 0x75, 0xa0, 0x8f, 0x2b, 0x15, 0x1c, 0x09, 0x02, 0xff, 0x48, 0x10, 0x04, 0x47, 0xb5, 0xd6, 0x3d, 0x40, 0x25, 0x99, 0xac, 0x5a, 0x12, 0x4b, 0x24, 0xee, 0x18, 0xfc, 0xe4, 0x7f, 0xfe, 0xaf, 0x07, 0x98, 0x97, 0xda, 0xcd, 0x44, 0x7d, 0x92, 0x20, 0x1d, 0xa0, 0x8f, 0xae, 0xc5, 0x74, 0xef, 0xc7, 0xd4, 0x4d, 0x83, 0x93, 0x6f, 0xa2, 0xdf, 0xf8, 0x16, 0x4e, 0x6b, 0x19, 0xec, 0x28, 0xc6, 0x77, 0xa0, 0x2a, 0x87, 0x31, 0x06, 0x01, 0x78, 0x9e, 0x47, 0x5b, 0x5b, 0x1b, 0xf3, 0xe7, 0xcf, 0x67, 0xcd, 0x9a, 0x35, 0xd4, 0xd6, 0xa6, 0x71, 0x1c, 0x9b, 0xcf, 0xdc, 0x71, 0x07, 0x2b, 0x6f, 0x5e, 0x09, 0x06, 0xfc, 0xc0, 0xc7, 0xb1, 0x1d, 0x02, 0x15, 0xd0, 0xd4, 0xd4, 0x48, 0x43, 0x43, 0x1d, 0x00, 0x11, 0x27, 0x82, 0xb4, 0xec, 0xd0, 0x0f, 0xe8, 0xd0, 0x57, 0x54, 0xca, 0xe5, 0xf0, 0x8c, 0xb1, 0x10, 0x18, 0x4c, 0x84, 0x33, 0x38, 0xc2, 0x33, 0x02, 0xe0, 0x96, 0x8b, 0x8f, 0x79, 0x9e, 0xb7, 0x53, 0x29, 0x55, 0x0d, 0x14, 0x80, 0x53, 0x40, 0x2f, 0xd0, 0x07, 0x94, 0x00, 0xbf, 0x58, 0xec, 0x7f, 0xdd, 0x8e, 0x46, 0x26, 0x38, 0xb6, 0xf3, 0x11, 0xdb, 0xb6, 0x39, 0x78, 0x60, 0x3f, 0xdb, 0xd7, 0x3e, 0xcd, 0x8c, 0xeb, 0xba, 0x28, 0x47, 0x4f, 0x10, 0xec, 0xf7, 0x51, 0xbb, 0x9e, 0x45, 0x58, 0x49, 0xcc, 0xab, 0xdf, 0xc4, 0xaa, 0x39, 0x0e, 0x76, 0x12, 0xe3, 0x6a, 0x8c, 0x95, 0x45, 0xb6, 0x4e, 0xc3, 0xa8, 0xd0, 0x69, 0x69, 0x21, 0x88, 0x27, 0xe2, 0xdc, 0x7e, 0xdb, 0x6d, 0xbc, 0xf4, 0xd2, 0x4b, 0xc4, 0x63, 0x71, 0xee, 0xbb, 0xff, 0x5e, 0x6e, 0x5a, 0x71, 0x13, 0x47, 0x8f, 0x9d, 0x40, 0x29, 0x35, 0xb4, 0xa2, 0xe9, 0x74, 0x8a, 0xe6, 0x51, 0xa3, 0x86, 0xe6, 0x1a, 0x3a, 0x46, 0x1f, 0x29, 0x05, 0x4a, 0x85, 0xe6, 0x76, 0xf4, 0xd8, 0x31, 0xf2, 0x85, 0x3c, 0x52, 0x4a, 0x8c, 0x36, 0x85, 0x33, 0xc9, 0x79, 0x46, 0x00, 0xca, 0xe5, 0x72, 0x27, 0xf0, 0x22, 0x61, 0xc5, 0xe8, 0x0e, 0x3c, 0x3e, 0xa7, 0x9f, 0xcf, 0xed, 0xee, 0x2f, 0x16, 0xff, 0x36, 0x55, 0x55, 0xfd, 0xb8, 0x90, 0x56, 0x6b, 0xd4, 0xb1, 0x48, 0x25, 0xc0, 0x38, 0x45, 0x8c, 0x8e, 0x21, 0x33, 0x1e, 0xc1, 0xae, 0xa7, 0x30, 0x7b, 0x7e, 0x85, 0x9d, 0x3a, 0x06, 0xd1, 0x18, 0x28, 0x81, 0xee, 0x56, 0x88, 0xd4, 0x14, 0x44, 0xae, 0x05, 0x23, 0x24, 0xc6, 0x2d, 0x63, 0x7a, 0x3a, 0xa9, 0xd4, 0xd4, 0x72, 0xe3, 0xf2, 0xe5, 0x7c, 0xec, 0x99, 0x67, 0xb8, 0xf5, 0xd6, 0x5b, 0xb9, 0x69, 0xc5, 0x72, 0x5c, 0xd7, 0x25, 0x16, 0x8d, 0xe2, 0x79, 0x1e, 0x4a, 0x6b, 0x92, 0x89, 0x04, 0xcd, 0x4d, 0x0d, 0x08, 0x11, 0x46, 0x15, 0x21, 0x04, 0xa5, 0x52, 0x89, 0x4a, 0x25, 0xdc, 0x63, 0x54, 0x03, 0x25, 0xf8, 0xd6, 0xad, 0x5b, 0xa9, 0x54, 0xca, 0x61, 0x01, 0xa5, 0xbd, 0x76, 0xc0, 0x3b, 0x2f, 0x00, 0x06, 0x3e, 0x38, 0x75, 0x96, 0xff, 0x03, 0x68, 0xe5, 0xba, 0xaf, 0x96, 0x84, 0xf8, 0x6a, 0x2c, 0x91, 0xfc, 0xa6, 0x94, 0x76, 0xbd, 0x65, 0x81, 0x31, 0x36, 0xa8, 0x08, 0x22, 0x02, 0x56, 0x3a, 0x8f, 0x30, 0x05, 0x44, 0x5c, 0x62, 0x7c, 0x0b, 0xa3, 0x04, 0xaa, 0x20, 0x21, 0x07, 0xaa, 0xeb, 0x28, 0x7a, 0xcf, 0x1b, 0xf8, 0x1b, 0x9f, 0x43, 0x1f, 0xd9, 0x8b, 0x48, 0x35, 0x53, 0xf5, 0xd9, 0xff, 0xc6, 0x77, 0x1f, 0xfd, 0x67, 0xe2, 0xd1, 0x08, 0x95, 0x8a, 0x8b, 0x94, 0x92, 0x9a, 0xea, 0x2a, 0xf2, 0x85, 0x02, 0x09, 0x27, 0x4e, 0x36, 0x97, 0x46, 0x48, 0x89, 0xd6, 0x61, 0xee, 0x20, 0x84, 0xe0, 0xe0, 0xe1, 0xc3, 0x04, 0x41, 0x30, 0x94, 0x24, 0xe5, 0xf3, 0x3d, 0xbc, 0xbe, 0xf1, 0x35, 0x2c, 0xcb, 0x46, 0x6b, 0x9d, 0x0f, 0xbc, 0x60, 0x27, 0x50, 0x39, 0x5f, 0x00, 0xce, 0x95, 0x2a, 0x95, 0x4a, 0xe5, 0x69, 0x40, 0xca, 0x48, 0xe2, 0xef, 0x7c, 0x9f, 0xb1, 0xf8, 0x55, 0x80, 0x0f, 0xca, 0xc2, 0x4a, 0x79, 0x98, 0xc0, 0xc1, 0x78, 0x51, 0xd0, 0x02, 0x94, 0x40, 0xc6, 0xa3, 0x04, 0x47, 0x36, 0xe1, 0x7e, 0xef, 0xcf, 0x10, 0xa6, 0x1f, 0x19, 0xd5, 0x88, 0x9c, 0x8d, 0xb7, 0x6f, 0x17, 0x7e, 0xfb, 0x1e, 0x62, 0x4d, 0xe3, 0xf1, 0xbd, 0xca, 0xd0, 0x56, 0x78, 0x2c, 0x16, 0xa5, 0xc6, 0x54, 0x93, 0x88, 0xc7, 0x87, 0xba, 0x42, 0x61, 0x4f, 0x41, 0xa0, 0x94, 0x62, 0xeb, 0xf6, 0x1d, 0x20, 0x04, 0x6a, 0xe0, 0xfd, 0x86, 0x0d, 0xeb, 0x39, 0x76, 0xf4, 0x28, 0x8e, 0xe3, 0xe0, 0x56, 0x2a, 0x5b, 0x7d, 0xdf, 0xdf, 0x0d, 0xbc, 0xe3, 0xad, 0x93, 0x91, 0x6a, 0x89, 0xf5, 0x55, 0x2a, 0x95, 0xa7, 0x4a, 0xbd, 0xdd, 0xff, 0xb9, 0xec, 0xea, 0x3d, 0xd2, 0xab, 0x02, 0x6d, 0x61, 0x94, 0x0d, 0xca, 0xc2, 0x04, 0x36, 0x18, 0x81, 0x51, 0x02, 0xb4, 0x44, 0xa6, 0xc1, 0x69, 0xd6, 0xd8, 0xd9, 0x12, 0x32, 0x63, 0x81, 0xe5, 0x10, 0x1c, 0x0b, 0xb0, 0xc7, 0x4c, 0xc7, 0x9a, 0x34, 0x07, 0xe5, 0xbb, 0x6f, 0x25, 0x4e, 0x03, 0x7f, 0x93, 0x89, 0x04, 0x52, 0x86, 0xb5, 0xc6, 0x60, 0x1a, 0x6d, 0x49, 0xc9, 0x1b, 0x9b, 0x36, 0xb3, 0x67, 0xef, 0x5e, 0xa4, 0x10, 0x48, 0x29, 0x39, 0x7c, 0xf8, 0x10, 0x2f, 0xbd, 0xf8, 0x02, 0x96, 0x65, 0xa1, 0x94, 0xaa, 0xb8, 0x95, 0xf2, 0xaf, 0x80, 0xa3, 0x84, 0x26, 0x7c, 0xd1, 0x00, 0x30, 0x84, 0x8e, 0x72, 0x55, 0x63, 0xb5, 0xb5, 0x2a, 0x28, 0xc7, 0x31, 0x3a, 0x02, 0xda, 0xc6, 0x68, 0x0b, 0xb4, 0x15, 0xae, 0xbe, 0x16, 0xa0, 0x07, 0xd2, 0x02, 0x01, 0xc6, 0x08, 0x4c, 0x05, 0xfc, 0x83, 0x01, 0x24, 0x9a, 0x89, 0xde, 0xf6, 0x25, 0xa8, 0xae, 0xc5, 0x0c, 0x36, 0x3d, 0x00, 0x3d, 0x54, 0x4b, 0xe8, 0xd3, 0x2a, 0x4b, 0xc7, 0xb6, 0xe9, 0xe8, 0xec, 0xe4, 0xc7, 0x3f, 0x7b, 0x92, 0x20, 0x08, 0x90, 0x96, 0x45, 0x6f, 0xa1, 0xc0, 0xaa, 0xe7, 0x9f, 0xa3, 0xbf, 0xbf, 0x1f, 0x29, 0x25, 0x5e, 0xa5, 0xf2, 0x6b, 0xcf, 0xf3, 0x5e, 0x05, 0x3a, 0x39, 0x43, 0xdd, 0x3d, 0xd2, 0xe7, 0x03, 0xca, 0x11, 0x5b, 0x6c, 0xac, 0x94, 0x1c, 0xa4, 0x13, 0x45, 0x1b, 0x19, 0xae, 0xbe, 0x96, 0x98, 0x40, 0x86, 0x7f, 0x55, 0x08, 0x02, 0x1a, 0x4c, 0x3f, 0x88, 0x13, 0x06, 0xa7, 0xb1, 0x0d, 0xeb, 0x96, 0x2f, 0x21, 0x9a, 0x27, 0x61, 0x7c, 0x0f, 0x84, 0x18, 0xaa, 0x2c, 0x85, 0x10, 0x0c, 0xe0, 0x35, 0x44, 0xd1, 0x48, 0x94, 0x93, 0x1d, 0x9d, 0x3c, 0xf8, 0xc8, 0x77, 0x38, 0x78, 0xe8, 0x30, 0xd9, 0x6c, 0x96, 0x42, 0xbe, 0x87, 0xb5, 0xab, 0x5f, 0xa2, 0xe3, 0xe4, 0xc9, 0x50, 0xf5, 0xdd, 0xca, 0xe6, 0x62, 0xb1, 0xff, 0xa7, 0xc0, 0x6e, 0xde, 0x21, 0xfe, 0x5f, 0x2c, 0x00, 0xd8, 0x7d, 0xb2, 0xb2, 0x69, 0x5c, 0x36, 0xde, 0x5b, 0x15, 0x8d, 0xd6, 0xe0, 0xa8, 0xd0, 0x14, 0x34, 0xa0, 0x05, 0x46, 0x8b, 0x70, 0x1d, 0x7c, 0x90, 0x79, 0x81, 0xd7, 0xa9, 0xd8, 0xec, 0xe5, 0x68, 0x5c, 0xfa, 0x19, 0x26, 0x8e, 0x99, 0x82, 0x85, 0x41, 0x0b, 0x07, 0x06, 0x2a, 0xc4, 0xc1, 0xde, 0xe1, 0x60, 0xc6, 0xe9, 0xd8, 0x36, 0x15, 0xd7, 0x65, 0xf5, 0xda, 0xb5, 0x3c, 0xfe, 0xc4, 0xbf, 0xd1, 0xd1, 0xd5, 0x45, 0x4d, 0x55, 0x35, 0xfb, 0xf7, 0xed, 0x65, 0xc7, 0xb6, 0xad, 0xf4, 0xf7, 0xf7, 0x62, 0xdb, 0x36, 0x9e, 0xe7, 0x6e, 0x2a, 0x16, 0x0a, 0xdf, 0x03, 0x5e, 0x03, 0x4e, 0x70, 0x96, 0xd3, 0x64, 0x17, 0xe3, 0xa4, 0x75, 0x72, 0xef, 0xb7, 0x16, 0xfc, 0xbf, 0xa6, 0x8c, 0xbd, 0xd8, 0x8d, 0xb8, 0x21, 0x00, 0x7e, 0x68, 0xfb, 0xc6, 0x97, 0x88, 0x7e, 0x81, 0xd5, 0x2b, 0xd8, 0x75, 0xcc, 0xe3, 0xa1, 0xdf, 0x9e, 0xe2, 0xa9, 0xfd, 0xbd, 0xe4, 0xea, 0xea, 0x98, 0x3d, 0x63, 0x06, 0x97, 0xce, 0xbb, 0x94, 0x79, 0x97, 0xce, 0xa3, 0xb1, 0xb1, 0x91, 0x78, 0x3c, 0x4e, 0x22, 0x91, 0xc0, 0x18, 0x8d, 0xe7, 0x79, 0xf4, 0xe4, 0xf3, 0xbc, 0xb9, 0x73, 0x17, 0x2f, 0xae, 0x7e, 0x85, 0xad, 0x3b, 0x76, 0x21, 0x11, 0x18, 0xe5, 0xd3, 0xdd, 0x71, 0x82, 0xce, 0xce, 0x8e, 0xc1, 0x82, 0x4a, 0xbb, 0xae, 0xfb, 0x4a, 0xb1, 0xaf, 0xf7, 0x87, 0xc0, 0xab, 0x84, 0xab, 0x7f, 0xd6, 0x2b, 0x77, 0x17, 0xe5, 0xa8, 0xf9, 0xd3, 0xf7, 0x4c, 0xff, 0xfc, 0x47, 0x26, 0xa6, 0x1f, 0x36, 0x96, 0xc2, 0x38, 0x1a, 0xe1, 0x4b, 0xa4, 0x6b, 0x21, 0xfb, 0x25, 0x27, 0x3a, 0xfd, 0xf2, 0x4b, 0x7b, 0x7a, 0x7e, 0x7b, 0xef, 0xda, 0x0e, 0x7d, 0xac, 0xc2, 0xd4, 0x84, 0x63, 0xe5, 0x06, 0x7b, 0xfc, 0x42, 0x08, 0x22, 0x91, 0x08, 0xd9, 0x6c, 0x96, 0xaa, 0xaa, 0xaa, 0xb0, 0xa6, 0x07, 0xca, 0x15, 0x9f, 0xce, 0x7c, 0x1e, 0xbf, 0xe2, 0x32, 0x36, 0x1d, 0x61, 0x72, 0x26, 0x42, 0xc2, 0x04, 0x6c, 0x3e, 0xd2, 0xc3, 0xa6, 0x8e, 0x12, 0x42, 0x08, 0x23, 0x8c, 0x3e, 0x5c, 0x2e, 0x96, 0x9e, 0xf3, 0xbc, 0xca, 0x4b, 0xc0, 0x26, 0xe0, 0x00, 0x67, 0x08, 0x7d, 0x17, 0x1d, 0x80, 0xd6, 0x6c, 0xbc, 0xe9, 0x67, 0x77, 0x4f, 0x7b, 0x7c, 0x7a, 0x63, 0xd5, 0x32, 0xa3, 0x0c, 0x7d, 0x7d, 0x8a, 0xe3, 0x9d, 0x7e, 0xd7, 0xba, 0xfd, 0xbd, 0x6f, 0x7e, 0x6f, 0xfd, 0xb1, 0x57, 0x5e, 0x3b, 0xd2, 0xb7, 0x05, 0xe8, 0x96, 0x52, 0x36, 0x38, 0x4e, 0xb4, 0xcd, 0x8e, 0xd8, 0xd3, 0x6c, 0xdb, 0x9e, 0x22, 0xa5, 0x35, 0x0a, 0x41, 0x35, 0x06, 0x4b, 0x69, 0x8d, 0xe7, 0x87, 0xbb, 0x40, 0x8d, 0x55, 0x16, 0x0b, 0xc7, 0xd7, 0x72, 0xe3, 0xfc, 0x56, 0x16, 0xcd, 0x6a, 0x64, 0x54, 0x63, 0x04, 0x51, 0xec, 0xa4, 0xb0, 0xbb, 0xc0, 0xcf, 0x37, 0x94, 0xbd, 0xef, 0xbe, 0x71, 0xfc, 0xf9, 0x4d, 0x47, 0x3b, 0x9f, 0x04, 0x76, 0x0d, 0x08, 0xde, 0x41, 0x98, 0xb4, 0xbd, 0x2b, 0x5d, 0xac, 0xcb, 0x06, 0xd6, 0x25, 0xad, 0xf1, 0x39, 0x9f, 0x5a, 0xd4, 0xf8, 0x59, 0xd7, 0x35, 0xb9, 0x1d, 0x47, 0x4a, 0x1d, 0xcf, 0xef, 0xec, 0xde, 0xd3, 0x55, 0x0c, 0x0e, 0x00, 0x87, 0x09, 0xc3, 0x52, 0x3f, 0x61, 0x7e, 0x5e, 0x43, 0xb8, 0xbd, 0xdd, 0x20, 0xa5, 0x1c, 0xa3, 0xa5, 0xdd, 0x48, 0xa0, 0xb2, 0xd9, 0x6a, 0x6b, 0xca, 0xfc, 0x89, 0x99, 0x19, 0xd7, 0x5f, 0xd6, 0x56, 0xb7, 0xf8, 0xf2, 0xd9, 0xf6, 0xc4, 0x19, 0xa3, 0x89, 0xa4, 0x35, 0x81, 0x28, 0xa0, 0x2b, 0x7b, 0xc0, 0xdd, 0x0a, 0x7d, 0x47, 0x10, 0x07, 0xe3, 0x74, 0xec, 0xc8, 0xf5, 0xbc, 0xb9, 0xd3, 0xfa, 0x3f, 0x6f, 0xec, 0x97, 0xff, 0xf4, 0x57, 0x1b, 0x37, 0xee, 0x3c, 0x9f, 0x89, 0x5e, 0xcc, 0xdb, 0x16, 0x31, 0x60, 0x14, 0x90, 0x23, 0xbc, 0xed, 0x59, 0x00, 0xba, 0x09, 0x05, 0xff, 0xdd, 0xdb, 0x9f, 0x36, 0x61, 0xca, 0x6d, 0xff, 0xe9, 0x5c, 0x66, 0xdc, 0x7a, 0xf3, 0x15, 0x9f, 0x9c, 0x34, 0xfb, 0xca, 0x6b, 0xea, 0xdb, 0x2e, 0x1f, 0x13, 0x6d, 0x18, 0x65, 0xfb, 0xa6, 0x8b, 0xa0, 0xef, 0x4d, 0x8c, 0xdb, 0x8e, 0x28, 0xef, 0x03, 0x6f, 0x1b, 0xa8, 0x43, 0xa0, 0x8a, 0x20, 0x41, 0xfa, 0x12, 0x4e, 0x66, 0xe9, 0xde, 0x52, 0x7f, 0xbc, 0xff, 0x40, 0xfa, 0xb1, 0x7d, 0xf9, 0xf2, 0x03, 0xd7, 0xfd, 0xfb, 0xc6, 0x73, 0xba, 0x57, 0x78, 0xb1, 0xaf, 0x9b, 0xc8, 0x81, 0xc7, 0xf0, 0x2e, 0x77, 0xfc, 0xf2, 0x8f, 0xb6, 0x64, 0x48, 0xcf, 0xfb, 0x42, 0x64, 0xdc, 0x75, 0x7f, 0x1a, 0x9f, 0xb4, 0xb4, 0x05, 0x19, 0xc5, 0xed, 0xde, 0x8b, 0x77, 0x6c, 0x03, 0xc1, 0xb1, 0x1d, 0x38, 0xa3, 0x13, 0x58, 0x55, 0x9d, 0xe1, 0xca, 0xfb, 0xed, 0xf8, 0x87, 0xa3, 0x04, 0x47, 0xea, 0x90, 0x51, 0x1f, 0x2b, 0x9b, 0x47, 0x64, 0xfa, 0x88, 0x24, 0x7d, 0xd4, 0xb6, 0x31, 0x74, 0xac, 0x19, 0x7d, 0xb0, 0xc7, 0x55, 0x7f, 0x3d, 0xe7, 0x07, 0x6b, 0x7f, 0xc0, 0xbb, 0x9c, 0x27, 0xfe, 0x40, 0xdc, 0xb7, 0xe9, 0xfc, 0xfe, 0xfc, 0xa5, 0x96, 0x32, 0x0f, 0xa7, 0x27, 0x7c, 0x68, 0x32, 0xf1, 0x16, 0xdc, 0x8e, 0xfd, 0xa8, 0xee, 0x23, 0xf8, 0x85, 0x53, 0x18, 0x57, 0x61, 0x02, 0x0b, 0x67, 0x7e, 0x15, 0x76, 0xfd, 0x41, 0x74, 0x4f, 0x07, 0x6a, 0x77, 0x0e, 0x75, 0x60, 0x14, 0xfd, 0x45, 0x63, 0x2a, 0xae, 0xf6, 0xe3, 0xd2, 0x8a, 0x24, 0x92, 0x0a, 0xab, 0xba, 0x88, 0x01, 0xc4, 0xf1, 0x0c, 0xfd, 0x9e, 0x66, 0xe3, 0xc9, 0x53, 0x37, 0xaf, 0xf8, 0xf9, 0xb6, 0x27, 0xcf, 0x36, 0xf6, 0xfb, 0x76, 0x6b, 0x6c, 0x90, 0x0e, 0x3d, 0x36, 0x6b, 0xba, 0x81, 0x7f, 0x29, 0x07, 0xb2, 0xfe, 0xc4, 0xc6, 0xd5, 0x1d, 0x5d, 0xa7, 0x4a, 0xbd, 0xc7, 0xba, 0xbc, 0xce, 0xf6, 0x53, 0xaa, 0x73, 0x4f, 0x87, 0xdb, 0x61, 0x21, 0xcd, 0xe7, 0x16, 0x35, 0x5d, 0x3d, 0x6e, 0x67, 0xdf, 0x18, 0x7f, 0x6f, 0x1c, 0x0a, 0x93, 0x38, 0x7e, 0xd4, 0xca, 0xbf, 0xb0, 0xe7, 0xc4, 0x1b, 0x2f, 0xec, 0xeb, 0x79, 0xb3, 0xd7, 0x55, 0x85, 0xc6, 0xb8, 0x1d, 0x6b, 0x88, 0xc5, 0x33, 0xcd, 0x89, 0x44, 0xae, 0x3e, 0x1e, 0xc9, 0x34, 0x54, 0xf7, 0x66, 0x1d, 0x49, 0xe4, 0xc5, 0x23, 0xbd, 0xad, 0x84, 0x9d, 0xa0, 0xd2, 0x99, 0xc6, 0x7f, 0xdf, 0x01, 0x78, 0xea, 0xb5, 0xce, 0x13, 0xed, 0x27, 0xf9, 0xca, 0x86, 0x37, 0x8b, 0x63, 0xb6, 0x1f, 0x2d, 0xea, 0xce, 0x42, 0xd0, 0x4d, 0xd8, 0x73, 0x18, 0x7c, 0x2a, 0x32, 0x60, 0xe7, 0x3d, 0x57, 0x8d, 0xb9, 0x2f, 0x2e, 0x52, 0x91, 0x55, 0x3b, 0x7b, 0x36, 0xfe, 0x97, 0x5f, 0xec, 0x7e, 0xe6, 0x50, 0xc1, 0xdd, 0x01, 0xb4, 0x13, 0xfa, 0x16, 0x03, 0xc4, 0x09, 0x85, 0x4d, 0x12, 0x76, 0x7f, 0x1c, 0x42, 0x87, 0x7b, 0xd6, 0x0d, 0xe0, 0xff, 0x0f, 0x58, 0xc5, 0x9f, 0x88, 0x1d, 0xe5, 0x3b, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnakv[1772] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x43, 0xbb, 0x7f, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd9, 0x0a, 0x08, 0x07, 0x0e, 0x2e, 0x31, 0xfb, 0xe1, 0xcd, 0x00, 0x00, 0x06, 0x79, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x97, 0x5b, 0x6c, 0x54, 0xc7, 0x19, 0xc7, 0xff, 0x73, 0xae, 0xde, 0x5d, 0xef, 0x7a, 0x6f, 0x5e, 0xdf, 0xc0, 0x76, 0xc0, 0x50, 0x30, 0xc6, 0x06, 0xdf, 0x28, 0xc5, 0xde, 0xa0, 0xc8, 0x80, 0x23, 0x62, 0x68, 0xa2, 0x34, 0x2d, 0x04, 0x42, 0x95, 0xb4, 0x55, 0x45, 0xd5, 0x26, 0xa1, 0xc5, 0x28, 0x4d, 0x9b, 0xb6, 0x6a, 0xd3, 0x36, 0x97, 0x2a, 0x2d, 0x69, 0xab, 0x56, 0x3c, 0x54, 0x16, 0x65, 0xc3, 0x25, 0x8a, 0x92, 0xc6, 0x8a, 0x08, 0xa6, 0x52, 0x0a, 0x32, 0x97, 0x18, 0x8c, 0x63, 0xa9, 0xc4, 0x76, 0x7c, 0x01, 0xbc, 0xf6, 0xd6, 0xac, 0xbd, 0x5e, 0xdb, 0xbb, 0x7b, 0xf6, 0x5c, 0x66, 0xa6, 0x2f, 0xcd, 0x53, 0xb8, 0xac, 0x89, 0xf3, 0xd6, 0x79, 0x1b, 0xe9, 0x3b, 0xff, 0xef, 0x37, 0xff, 0xf9, 0xbe, 0x99, 0x39, 0xc0, 0xff, 0xc7, 0x02, 0x8f, 0xd9, 0xa7, 0x9e, 0xb4, 0xc7, 0x0a, 0xf2, 0xed, 0xe9, 0x50, 0x48, 0xc8, 0x24, 0x9e, 0x2c, 0x44, 0xd2, 0xb9, 0xd6, 0xfd, 0x84, 0x5f, 0xbb, 0xb6, 0x43, 0x7a, 0xe0, 0x81, 0xa7, 0xa5, 0xe5, 0xcb, 0xd7, 0x72, 0x5d, 0x87, 0xf9, 0x61, 0xd7, 0x35, 0xb3, 0xfd, 0xdd, 0x5f, 0x7a, 0xba, 0x2e, 0x1d, 0xfe, 0x42, 0x01, 0xfe, 0x73, 0xee, 0xc3, 0x6c, 0xc7, 0x89, 0xd0, 0x9f, 0xe5, 0x86, 0xc6, 0xdd, 0x5c, 0xd3, 0xa0, 0xbf, 0x7f, 0x12, 0xe6, 0xc8, 0x08, 0x28, 0xe7, 0x48, 0xc4, 0x62, 0x5c, 0x78, 0xee, 0x85, 0x33, 0xb4, 0xb9, 0xe5, 0xd5, 0x65, 0x01, 0x67, 0xfb, 0xad, 0xbe, 0x97, 0xee, 0x35, 0xb1, 0xdb, 0xeb, 0x17, 0x76, 0x3d, 0xf9, 0xed, 0x16, 0xa3, 0xf7, 0xca, 0x61, 0xc7, 0xe2, 0x62, 0xa7, 0xde, 0xfb, 0x11, 0x12, 0x6d, 0x6d, 0x30, 0xd2, 0x1a, 0x8c, 0xe5, 0x5f, 0xc2, 0xb4, 0xdd, 0x31, 0x38, 0x5e, 0x77, 0xff, 0x11, 0x75, 0x71, 0xf9, 0x0b, 0xf6, 0xe9, 0x54, 0x37, 0x80, 0x5b, 0x02, 0x08, 0xf7, 0x92, 0xdc, 0xe3, 0xf3, 0xc9, 0x8a, 0x2a, 0xef, 0xcb, 0x2b, 0x5b, 0x7d, 0x82, 0x96, 0xaf, 0x76, 0x46, 0x06, 0x07, 0x31, 0x75, 0xec, 0x28, 0xe2, 0x33, 0x33, 0x48, 0x56, 0xad, 0xc1, 0x6c, 0x20, 0xef, 0x13, 0x53, 0x96, 0xd7, 0x3d, 0xf2, 0xfb, 0xdf, 0xfc, 0x5c, 0x73, 0x79, 0x2b, 0x22, 0x71, 0xed, 0xb9, 0xdb, 0x69, 0xcd, 0xdb, 0x01, 0xbf, 0x3b, 0x40, 0x04, 0x45, 0x7c, 0xaa, 0xb1, 0xa1, 0xf1, 0x57, 0x8e, 0xc0, 0x22, 0x39, 0x5c, 0x58, 0x06, 0xb9, 0xe5, 0x31, 0xc4, 0x2f, 0x76, 0xc1, 0x55, 0xee, 0x87, 0xab, 0xba, 0x16, 0x53, 0x76, 0xdf, 0x85, 0xe6, 0x9f, 0xfe, 0x30, 0x06, 0x00, 0x8f, 0xd6, 0x14, 0x5f, 0xbd, 0x93, 0xde, 0xbc, 0x1d, 0x30, 0xb9, 0xb9, 0xe4, 0xc1, 0xe6, 0x07, 0x9f, 0x7f, 0xfd, 0xe0, 0x1f, 0x54, 0x21, 0x1e, 0xc6, 0x78, 0x2c, 0x85, 0xbe, 0x9c, 0x12, 0xcc, 0xfe, 0xf5, 0x4d, 0x4c, 0xfc, 0xe8, 0x45, 0x84, 0x2b, 0xd6, 0x41, 0x6b, 0x6a, 0xf1, 0x67, 0xaa, 0x37, 0x2f, 0x00, 0xb7, 0xc7, 0x23, 0x04, 0xf2, 0x03, 0xdf, 0x2a, 0x5b, 0xe4, 0x2d, 0x1a, 0xb8, 0xf8, 0x3e, 0xca, 0xb3, 0x62, 0xe8, 0x3f, 0x15, 0x82, 0x42, 0x38, 0xe6, 0x34, 0x13, 0xce, 0x15, 0x2b, 0x61, 0xaf, 0x5b, 0x0f, 0xa8, 0xb6, 0xb7, 0x33, 0xd5, 0x9c, 0xd7, 0x16, 0x58, 0x94, 0x04, 0x1e, 0xdb, 0x92, 0xf7, 0xf5, 0xa7, 0xbf, 0xff, 0x4d, 0x22, 0x61, 0x1c, 0x74, 0xe2, 0x08, 0x56, 0xda, 0xff, 0x09, 0xf7, 0x5c, 0x18, 0xef, 0x5c, 0x5f, 0x83, 0x37, 0x3e, 0xbe, 0x1e, 0x2b, 0xaf, 0x0b, 0xee, 0x6f, 0x58, 0x57, 0xd3, 0xf6, 0x85, 0x00, 0xf8, 0xdc, 0xbc, 0xf9, 0xa1, 0x2d, 0xab, 0x4a, 0x15, 0x21, 0x0c, 0x6b, 0xe2, 0x38, 0xac, 0xe8, 0x39, 0x30, 0xbd, 0x00, 0x57, 0x23, 0x16, 0x62, 0x33, 0x53, 0xb8, 0xd0, 0xd1, 0x9e, 0x6c, 0x3b, 0xf8, 0xd2, 0x49, 0xcb, 0xb2, 0xe8, 0x82, 0x03, 0xe4, 0xf8, 0x7c, 0x8a, 0xc5, 0x94, 0xc7, 0x45, 0xc9, 0x46, 0x6e, 0x86, 0x07, 0x11, 0x9f, 0x09, 0x62, 0xce, 0xda, 0x06, 0x52, 0x14, 0x40, 0x71, 0xe3, 0x7d, 0x08, 0x74, 0x9e, 0x87, 0x61, 0x1a, 0xf3, 0xee, 0x28, 0x29, 0xf3, 0x62, 0x21, 0x15, 0x3e, 0x5f, 0xde, 0x97, 0x4b, 0xd6, 0x1c, 0x80, 0x20, 0xca, 0x90, 0xf3, 0x2d, 0x94, 0xda, 0x6d, 0xb0, 0xdb, 0x6d, 0x10, 0x45, 0x11, 0x5e, 0x8f, 0x1b, 0x9c, 0x31, 0x49, 0x10, 0x45, 0x19, 0x96, 0xb5, 0xf0, 0x00, 0x84, 0x90, 0x1d, 0xc1, 0x60, 0xd0, 0x91, 0x9b, 0x9b, 0x0b, 0x42, 0x3e, 0x7b, 0x80, 0x66, 0x67, 0x3b, 0x20, 0x88, 0x62, 0x96, 0x24, 0x4a, 0x2e, 0x03, 0x3a, 0x16, 0xb4, 0x0b, 0x3c, 0x7e, 0x7f, 0x40, 0x55, 0xb3, 0xb6, 0xef, 0xdc, 0xf1, 0x0d, 0x72, 0xab, 0xe4, 0x00, 0x40, 0x19, 0x43, 0x76, 0xb6, 0xd3, 0x21, 0xca, 0xf2, 0xd2, 0xf9, 0x6c, 0xc1, 0x5d, 0x01, 0x3c, 0x1e, 0x3f, 0x01, 0xc7, 0x8e, 0x60, 0x63, 0xc3, 0xd2, 0xea, 0xea, 0xea, 0xdb, 0xc6, 0x4d, 0x4e, 0x4e, 0xa1, 0x68, 0xd1, 0x62, 0x45, 0x14, 0xc4, 0xcd, 0xa2, 0x2c, 0x8b, 0x0b, 0xe7, 0x80, 0x44, 0xca, 0x5d, 0x4e, 0x57, 0xeb, 0xb3, 0xcf, 0x3c, 0x23, 0xa8, 0xaa, 0x7a, 0xeb, 0xd5, 0x53, 0x8a, 0xc1, 0xe1, 0x61, 0x14, 0x2d, 0x2e, 0x86, 0xc7, 0xeb, 0xdd, 0x6e, 0xb3, 0xd9, 0xef, 0x5b, 0x10, 0x00, 0xaf, 0x2f, 0xb7, 0x58, 0x00, 0xf9, 0xe3, 0x9e, 0x3d, 0xbb, 0x0b, 0x6b, 0x6b, 0x6b, 0x6e, 0x1b, 0x37, 0x72, 0xed, 0x06, 0xfa, 0xfb, 0x07, 0xa0, 0xc8, 0x32, 0xd6, 0xd6, 0xd4, 0x14, 0xa8, 0xaa, 0xfa, 0x03, 0x87, 0xd3, 0x29, 0xdd, 0x33, 0x80, 0x37, 0x37, 0x57, 0x74, 0xfb, 0x72, 0xb7, 0xfa, 0xfc, 0xbe, 0x93, 0x55, 0x55, 0x55, 0xf7, 0xef, 0xdd, 0xbb, 0x17, 0x1c, 0x00, 0x63, 0xfc, 0x33, 0xb1, 0x5a, 0x3a, 0x8d, 0x23, 0xc7, 0x8e, 0xc1, 0x62, 0x0c, 0x16, 0xa5, 0x58, 0xb1, 0x72, 0x15, 0x59, 0xba, 0xb4, 0xec, 0x09, 0x49, 0x92, 0x36, 0xdc, 0x53, 0x17, 0xb8, 0x7d, 0x7e, 0x1b, 0x40, 0x5a, 0x1b, 0x36, 0xac, 0xdf, 0xff, 0xd5, 0x6d, 0xdb, 0x1c, 0xf9, 0x05, 0x05, 0x70, 0xe7, 0xb8, 0xc1, 0x18, 0x03, 0x17, 0x00, 0xce, 0x08, 0x04, 0x42, 0x40, 0x08, 0x01, 0xe7, 0x1c, 0x47, 0x8f, 0x9f, 0x40, 0x34, 0x3a, 0x05, 0x55, 0x51, 0x61, 0x59, 0x26, 0x18, 0xe7, 0x68, 0xda, 0xb4, 0x25, 0x27, 0x12, 0x19, 0xff, 0x05, 0xb5, 0xac, 0x6d, 0x89, 0xb9, 0xb9, 0xd9, 0x8c, 0x1d, 0xf0, 0xfa, 0xfc, 0x59, 0xa2, 0x20, 0xbc, 0xb4, 0x79, 0xd3, 0xa6, 0x9f, 0xbc, 0x7e, 0xf0, 0xa0, 0x23, 0xad, 0xeb, 0xa8, 0xaf, 0xaf, 0x07, 0xa5, 0x14, 0xd4, 0x62, 0xe0, 0x94, 0x82, 0x51, 0x0a, 0xc6, 0x38, 0x38, 0xe7, 0x38, 0xd5, 0x71, 0x1a, 0x57, 0x3f, 0xee, 0x43, 0x61, 0x41, 0x3e, 0xa2, 0xd1, 0x28, 0x4c, 0xd3, 0x84, 0x65, 0x99, 0xc8, 0x0d, 0x04, 0xd0, 0xd8, 0xd0, 0xb8, 0x41, 0x94, 0xe4, 0x9d, 0x8a, 0xa2, 0x90, 0x8c, 0x00, 0x7c, 0x81, 0x00, 0x01, 0x21, 0x4f, 0x54, 0x54, 0x54, 0x7c, 0xb7, 0xb5, 0xf5, 0x80, 0xa4, 0x1b, 0x26, 0x66, 0x67, 0xe7, 0x20, 0xcb, 0x32, 0x28, 0x63, 0x60, 0x8c, 0x81, 0x52, 0x06, 0xc6, 0x38, 0x18, 0xa3, 0x48, 0xa5, 0x52, 0x38, 0x7a, 0xec, 0x38, 0x6a, 0xab, 0x6b, 0x70, 0xfe, 0xe2, 0x45, 0xa4, 0xb4, 0x14, 0x28, 0x65, 0x20, 0x20, 0x30, 0x0c, 0x03, 0x1b, 0x1a, 0x82, 0x92, 0xdb, 0xed, 0xfe, 0x9e, 0xa2, 0xaa, 0xfe, 0x8c, 0x00, 0x18, 0xe3, 0x6e, 0x81, 0x08, 0xfb, 0x56, 0xad, 0xaa, 0x90, 0x43, 0xa1, 0x10, 0xdf, 0xb7, 0xef, 0x59, 0x74, 0x9c, 0xee, 0x40, 0x32, 0x91, 0x00, 0x9d, 0x1d, 0x03, 0x65, 0x16, 0xa8, 0xa9, 0xc3, 0x18, 0x38, 0x07, 0x2b, 0x39, 0x8b, 0x64, 0x2a, 0x85, 0xb4, 0x96, 0x42, 0x4f, 0xcf, 0x15, 0x44, 0x22, 0x11, 0x94, 0x2d, 0x59, 0x82, 0xe6, 0xa6, 0x26, 0x6c, 0x6d, 0xde, 0x0c, 0x41, 0x20, 0x70, 0x3a, 0x9d, 0x28, 0x29, 0x29, 0x5d, 0x41, 0x04, 0xa1, 0x3e, 0xa3, 0x1a, 0xe0, 0x8c, 0x97, 0x50, 0x62, 0xe1, 0x8d, 0xd0, 0xdf, 0x3b, 0x4d, 0xcb, 0x1a, 0x16, 0x04, 0x31, 0x4f, 0x51, 0xd4, 0xa6, 0xf7, 0x42, 0xbf, 0x13, 0xbe, 0x56, 0xda, 0x03, 0x5a, 0xf7, 0x2a, 0x68, 0xe4, 0x32, 0x58, 0xf7, 0xdf, 0xc0, 0x37, 0xbe, 0x0c, 0x47, 0xe9, 0x5a, 0xa8, 0xaa, 0x8a, 0xce, 0xce, 0x4e, 0xec, 0xd9, 0xb5, 0x0b, 0x5f, 0x59, 0xbf, 0x1e, 0x76, 0xbb, 0x0d, 0x8b, 0x8a, 0x0a, 0xd0, 0xdd, 0xd3, 0x0b, 0xdd, 0x30, 0x20, 0x8a, 0xa2, 0x08, 0x8e, 0x65, 0xff, 0x7b, 0x7b, 0xf2, 0x3b, 0x02, 0xa4, 0x12, 0x73, 0x57, 0x2d, 0xcb, 0xdc, 0xca, 0x39, 0x4f, 0x72, 0xce, 0x67, 0x55, 0xbb, 0xdd, 0x2d, 0x8a, 0x62, 0xe8, 0x4a, 0xe7, 0x5b, 0xc1, 0x9d, 0x6b, 0x12, 0x44, 0xbf, 0xf4, 0x22, 0x08, 0x8d, 0x00, 0x4a, 0x16, 0x78, 0x56, 0x0e, 0xe8, 0x60, 0x0f, 0x1e, 0x7f, 0xb8, 0x05, 0xdc, 0xe6, 0x44, 0x65, 0x65, 0x15, 0xb4, 0x74, 0x1a, 0x05, 0xf9, 0x01, 0x98, 0x86, 0x09, 0x2d, 0xad, 0xc1, 0x32, 0x4d, 0x84, 0xc3, 0xa3, 0x8c, 0x31, 0x16, 0xcb, 0xc8, 0x01, 0xc3, 0xd0, 0x0d, 0x00, 0x43, 0x9f, 0xce, 0xf5, 0x54, 0x2a, 0x25, 0x10, 0xf2, 0x1d, 0xbf, 0xc3, 0x79, 0x08, 0x2c, 0x3b, 0x28, 0x8a, 0x7d, 0xe0, 0x96, 0x03, 0x30, 0x0c, 0x18, 0xef, 0x3d, 0x0f, 0x16, 0x4d, 0xa0, 0x6e, 0xfb, 0xcf, 0xa0, 0x96, 0xd7, 0x83, 0x33, 0x8e, 0x1c, 0x57, 0x36, 0x24, 0x51, 0x42, 0xff, 0xc8, 0x00, 0xa6, 0xe3, 0x33, 0x18, 0x19, 0x1c, 0xc0, 0xe4, 0xe4, 0xe4, 0x0d, 0xd3, 0xd0, 0x2f, 0xdf, 0x6e, 0xf5, 0x77, 0x3d, 0x88, 0xb4, 0x64, 0x72, 0x60, 0x6b, 0xa5, 0xeb, 0x15, 0x9a, 0x74, 0x52, 0x50, 0x15, 0xdc, 0x10, 0x00, 0x89, 0x83, 0xce, 0xc4, 0x41, 0x56, 0x3f, 0x0c, 0xa1, 0xac, 0x0a, 0x94, 0x31, 0x40, 0x00, 0x08, 0x11, 0x10, 0x1e, 0x0b, 0xe3, 0xe8, 0x9b, 0x6f, 0x61, 0xa0, 0xbf, 0x0f, 0x9d, 0x9d, 0x67, 0x93, 0x7a, 0x5a, 0x3b, 0x64, 0x9a, 0xe6, 0xd0, 0xe7, 0xba, 0x0d, 0x93, 0x49, 0xde, 0x6d, 0xcc, 0xd8, 0xc6, 0x44, 0x05, 0xc5, 0x3c, 0x25, 0xf0, 0xd1, 0x61, 0x73, 0xe6, 0xb5, 0xb3, 0x53, 0x36, 0x0c, 0x5e, 0x56, 0xea, 0xa3, 0x22, 0x29, 0x2c, 0x2a, 0x02, 0x38, 0x30, 0x32, 0x32, 0x84, 0xde, 0xae, 0xf3, 0xf8, 0xa8, 0x6f, 0x88, 0x87, 0xc7, 0xc6, 0x6e, 0xa6, 0x92, 0xc9, 0xbf, 0x68, 0xc9, 0xe4, 0x21, 0x0e, 0xa4, 0xef, 0xa4, 0x7f, 0xd7, 0x4b, 0xc3, 0xa1, 0x8a, 0x49, 0x5f, 0x96, 0x6a, 0x4e, 0x47, 0x99, 0xf7, 0xd4, 0xa5, 0x78, 0xfb, 0x2b, 0x1d, 0xa3, 0xbf, 0x3d, 0x3d, 0x1c, 0x7b, 0xa7, 0xaf, 0xbf, 0xef, 0xc6, 0xd9, 0x33, 0xff, 0x4a, 0xf7, 0x76, 0x9d, 0xc9, 0x96, 0x13, 0x43, 0xf6, 0x8d, 0x2b, 0x12, 0xe4, 0x91, 0xba, 0x08, 0x2a, 0xb3, 0x22, 0xc9, 0x6c, 0x9d, 0xbf, 0x66, 0xb7, 0xf0, 0xa7, 0xc1, 0xb8, 0x36, 0xb5, 0x20, 0xbf, 0x66, 0x45, 0x1e, 0x45, 0x31, 0x2d, 0xee, 0x8e, 0xa5, 0xac, 0x84, 0x45, 0xb9, 0xf6, 0xeb, 0xdd, 0xc5, 0x64, 0xe7, 0xc6, 0x25, 0xd5, 0x6a, 0x49, 0xd3, 0x8f, 0x6d, 0xae, 0xfc, 0xcd, 0x82, 0x15, 0x76, 0x48, 0xae, 0x2b, 0xa0, 0xe1, 0x6e, 0x58, 0x51, 0xc6, 0x05, 0x42, 0xd3, 0xda, 0xbf, 0x0b, 0xff, 0x31, 0x11, 0x56, 0x0f, 0x54, 0x1d, 0x3e, 0x7f, 0xfd, 0x73, 0x3f, 0x48, 0xc6, 0xa6, 0x0d, 0x03, 0xc0, 0xcd, 0x4f, 0xe7, 0x5b, 0x6a, 0x5d, 0xde, 0xd1, 0x9b, 0xf1, 0xfd, 0x13, 0x9f, 0xb4, 0x2b, 0x91, 0xf1, 0xe9, 0xb6, 0xca, 0x3c, 0xdb, 0xb2, 0xb2, 0x12, 0xd2, 0xf0, 0xc1, 0x05, 0xdb, 0x07, 0x03, 0xa3, 0xe6, 0xa5, 0x80, 0x4d, 0x74, 0xb9, 0x65, 0xbd, 0x68, 0x38, 0x36, 0x53, 0x0f, 0xe0, 0xc6, 0x9d, 0x8a, 0xf0, 0xbf, 0x4a, 0xd6, 0xce, 0x37, 0xa3, 0x66, 0xd7, 0x04, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_tucnakv64[5042] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x69, 0x71, 0xde, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x43, 0xbb, 0x7f, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd9, 0x0a, 0x08, 0x07, 0x0d, 0x0d, 0xb8, 0xb1, 0xc3, 0x7c, 0x00, 0x00, 0x13, 0x3f, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x9b, 0x79, 0x6c, 0x5c, 0xd7, 0x75, 0x87, 0x7f, 0x77, 0x79, 0x6f, 0xe6, 0xcd, 0x0c, 0x67, 0xe5, 0x70, 0x15, 0x45, 0x52, 0xa4, 0x28, 0x4a, 0xa2, 0x44, 0x4b, 0xa4, 0x64, 0x59, 0x92, 0x61, 0x1b, 0x52, 0x12, 0xc9, 0xb6, 0xbc, 0xc9, 0x4b, 0xe2, 0xa2, 0x75, 0xd2, 0xa4, 0x0e, 0x8c, 0x38, 0xad, 0xd3, 0x3a, 0x4d, 0x9c, 0x22, 0x45, 0x0b, 0x03, 0x05, 0x5a, 0x14, 0x69, 0x9b, 0xa2, 0x6d, 0x52, 0xb4, 0x49, 0x10, 0x03, 0x4e, 0xed, 0xd8, 0xb1, 0x63, 0x25, 0xde, 0x12, 0xcb, 0x76, 0x1c, 0x2f, 0xb2, 0xac, 0x58, 0xbb, 0x28, 0x4a, 0x22, 0xc5, 0x55, 0x43, 0x8a, 0x43, 0x72, 0xf6, 0x79, 0xcb, 0xbd, 0xa7, 0x7f, 0x0c, 0xa5, 0xc4, 0x49, 0xda, 0xc4, 0x32, 0x69, 0x4b, 0x41, 0x2e, 0xf0, 0x40, 0x62, 0x08, 0x9c, 0xb9, 0xe7, 0xbb, 0x67, 0xbd, 0xe7, 0x11, 0xf8, 0xfd, 0xfa, 0xfd, 0xfa, 0xfd, 0xba, 0x58, 0x97, 0xbd, 0xeb, 0xa9, 0xc0, 0xec, 0xf6, 0x6d, 0xcd, 0x69, 0xce, 0xea, 0x66, 0x37, 0x5c, 0x1e, 0x2f, 0x3f, 0xfc, 0xb0, 0x6f, 0xbe, 0xbf, 0x83, 0x5d, 0x6c, 0x4a, 0xe7, 0x3f, 0x7b, 0x6f, 0xcc, 0x3b, 0x72, 0xe4, 0x63, 0x90, 0xf2, 0x66, 0xd9, 0xdb, 0xbb, 0x4e, 0xb4, 0xb7, 0x5b, 0xf0, 0x94, 0xa2, 0xe9, 0xb4, 0x52, 0x83, 0xa7, 0x53, 0x3a, 0x95, 0x7a, 0x4a, 0x2c, 0x5b, 0xf6, 0x6f, 0xa1, 0x7f, 0xf8, 0x87, 0x81, 0xdf, 0x29, 0x00, 0xb9, 0xbf, 0xfc, 0xbc, 0xd0, 0x27, 0x4f, 0x7e, 0x86, 0x49, 0xf9, 0x80, 0x79, 0xeb, 0x6d, 0x75, 0x72, 0xd3, 0x26, 0xf0, 0x48, 0x04, 0x94, 0xcf, 0x01, 0xd2, 0x80, 0x3a, 0x75, 0x0a, 0x3a, 0x9d, 0x86, 0xf7, 0xc6, 0x1b, 0x70, 0x1e, 0xf9, 0x9f, 0x2c, 0xab, 0xab, 0xfb, 0x5c, 0xec, 0xe5, 0x9f, 0x7c, 0xe3, 0x77, 0x02, 0x40, 0xf1, 0xeb, 0x5f, 0xaf, 0x76, 0x1e, 0x7d, 0xe4, 0xdf, 0x8d, 0xab, 0xaf, 0xb9, 0xcd, 0xbc, 0xe1, 0x06, 0x02, 0x67, 0x4c, 0xa7, 0x26, 0xa0, 0x4e, 0x9f, 0x86, 0x3a, 0x7c, 0x08, 0x7a, 0x66, 0x16, 0x94, 0xcd, 0x42, 0xa7, 0xa7, 0xa0, 0x1d, 0x07, 0xc4, 0x18, 0x9c, 0xb1, 0x51, 0xe5, 0x7c, 0xe2, 0xee, 0x7f, 0x14, 0xf7, 0xdd, 0x9f, 0xf7, 0x14, 0x7d, 0x7f, 0x49, 0x32, 0x74, 0xe8, 0x92, 0x03, 0x90, 0xca, 0x96, 0x04, 0x0e, 0xec, 0x5f, 0xe9, 0xff, 0xd7, 0xaf, 0x7c, 0xd3, 0x77, 0xfd, 0x8e, 0xb5, 0x2c, 0x16, 0x03, 0x39, 0x0e, 0x68, 0x76, 0x16, 0xee, 0x9e, 0x37, 0xa0, 0xfa, 0x4f, 0x40, 0x4d, 0x4e, 0x40, 0x39, 0x0e, 0x3c, 0xdb, 0x86, 0x12, 0x02, 0x62, 0xc3, 0x15, 0xc8, 0xa7, 0x52, 0x98, 0xf9, 0xd9, 0x3e, 0x18, 0x6b, 0x7b, 0xb1, 0x64, 0xd7, 0xd3, 0x98, 0x2e, 0x7b, 0x67, 0xb3, 0x25, 0xb7, 0x7b, 0xed, 0xe2, 0xf8, 0x99, 0x77, 0xbb, 0x07, 0xf9, 0x41, 0x29, 0x7f, 0x7c, 0x22, 0xe7, 0x23, 0xcf, 0xfb, 0x86, 0xb9, 0xeb, 0xc9, 0x5b, 0x65, 0x57, 0x97, 0xa9, 0x5d, 0x17, 0x34, 0x38, 0x08, 0x10, 0xa1, 0xfc, 0xdc, 0xb3, 0x70, 0x0f, 0x1d, 0x82, 0x76, 0x1c, 0x78, 0x8e, 0x03, 0x6a, 0x68, 0x80, 0x5b, 0x57, 0x07, 0xbb, 0x2a, 0x8c, 0x42, 0x3e, 0x8f, 0xbc, 0xdf, 0xb7, 0xff, 0xcc, 0xdd, 0xf7, 0x07, 0x02, 0xd1, 0x48, 0x07, 0xa6, 0xf2, 0x60, 0x42, 0x24, 0x0b, 0xb6, 0xd7, 0x03, 0xe0, 0x07, 0x97, 0x0c, 0x00, 0x22, 0x7a, 0xd0, 0x9a, 0x9a, 0xbc, 0xd3, 0x1d, 0x1e, 0x82, 0x5a, 0xbd, 0x1a, 0xbc, 0x58, 0x00, 0xd9, 0x65, 0xd8, 0x3f, 0x79, 0x05, 0xa5, 0xd7, 0x5e, 0x83, 0x72, 0x1c, 0x28, 0xc6, 0xa0, 0x5a, 0x5a, 0xa0, 0x6b, 0x6a, 0xe0, 0x46, 0xa2, 0x98, 0xcd, 0x66, 0x0b, 0xb6, 0xcf, 0xf7, 0x77, 0x1d, 0xf7, 0x7e, 0xf6, 0x2b, 0x23, 0xb1, 0x15, 0xdb, 0x8b, 0x82, 0x3f, 0x32, 0x99, 0x77, 0x8d, 0x92, 0x5b, 0x3a, 0xd1, 0x14, 0x0b, 0xbe, 0x7e, 0x21, 0xfb, 0xf8, 0x40, 0x00, 0xec, 0x3e, 0x3e, 0xd1, 0x91, 0xce, 0xdb, 0x9f, 0xa9, 0xab, 0xab, 0xc7, 0x28, 0x18, 0xaa, 0xa7, 0xa7, 0x11, 0x70, 0x1d, 0xd0, 0xc4, 0x04, 0x72, 0x2f, 0xed, 0x86, 0x67, 0xdb, 0xf0, 0xb8, 0x00, 0x3a, 0x3b, 0x41, 0xc9, 0x24, 0xbc, 0x68, 0x14, 0x85, 0x42, 0xb1, 0xc0, 0x82, 0xc1, 0x5b, 0x3e, 0xb4, 0x6b, 0xd7, 0xf3, 0x78, 0xe6, 0x19, 0x1c, 0x18, 0x99, 0x7d, 0xb2, 0x2f, 0x95, 0xb9, 0xa6, 0xec, 0xaa, 0x1e, 0xdb, 0xd5, 0x8f, 0xaf, 0x6f, 0x4d, 0xa4, 0x2f, 0x19, 0x00, 0x47, 0x06, 0x27, 0x6e, 0xa9, 0x8e, 0x47, 0x02, 0xb5, 0x61, 0x0b, 0x89, 0x2f, 0x7d, 0x19, 0xc7, 0x3e, 0xf7, 0xa7, 0x58, 0xd2, 0xbd, 0x1a, 0xea, 0x47, 0xcf, 0xc3, 0x2d, 0x16, 0xa1, 0x18, 0x03, 0xeb, 0x5a, 0x0d, 0x56, 0x5b, 0x0b, 0x9d, 0x4c, 0xc2, 0x25, 0x02, 0x23, 0xfc, 0xed, 0x95, 0x8f, 0x3d, 0xf6, 0xfc, 0x39, 0x19, 0xdd, 0x4d, 0x51, 0x02, 0xf0, 0xea, 0xdc, 0x73, 0xc1, 0x8b, 0xbf, 0x9f, 0x8a, 0xc7, 0x62, 0x31, 0x16, 0x8b, 0x27, 0x12, 0x67, 0x53, 0xe3, 0xb7, 0x68, 0x22, 0x0c, 0xcf, 0x14, 0x90, 0x4f, 0x36, 0xa2, 0xed, 0xab, 0xff, 0x81, 0xe3, 0x03, 0x43, 0xe8, 0x3f, 0x3d, 0x8c, 0x34, 0x17, 0x28, 0xd5, 0xd6, 0x81, 0x9a, 0x9a, 0x80, 0x25, 0x6d, 0x10, 0x75, 0x75, 0xc8, 0x99, 0x96, 0xe3, 0x7d, 0xfe, 0xc1, 0xc7, 0x17, 0x62, 0x4f, 0xef, 0x2b, 0x00, 0x70, 0x1e, 0x63, 0x82, 0xff, 0xc9, 0xd8, 0xa9, 0xa3, 0xcb, 0x35, 0x11, 0x88, 0x08, 0x63, 0x99, 0x12, 0x86, 0x65, 0x18, 0x0d, 0xff, 0xf4, 0x35, 0x04, 0xff, 0xf9, 0x6b, 0x98, 0xea, 0x5c, 0x89, 0x99, 0x60, 0x08, 0x76, 0x28, 0x04, 0x0a, 0x58, 0x30, 0xea, 0xea, 0x51, 0xaa, 0x5b, 0x6c, 0x8e, 0x32, 0xeb, 0x86, 0x85, 0xd8, 0xd2, 0xfb, 0xe6, 0x02, 0xb1, 0x44, 0xb5, 0xc5, 0x18, 0xfb, 0xb8, 0x69, 0xfa, 0xee, 0x3d, 0xf1, 0xc6, 0x8f, 0x82, 0xab, 0x2e, 0xbf, 0x12, 0x61, 0xab, 0x01, 0x82, 0x33, 0x8c, 0xe5, 0xca, 0x98, 0x34, 0x25, 0x22, 0x57, 0x5f, 0x0b, 0xdf, 0xc6, 0xad, 0x28, 0x1e, 0x3e, 0x80, 0xf2, 0xd1, 0xfd, 0x30, 0x8b, 0x39, 0x60, 0x32, 0x03, 0xf7, 0xaa, 0x6d, 0xb0, 0x0c, 0x19, 0xbd, 0x64, 0x01, 0x54, 0x47, 0x6b, 0x84, 0x47, 0x7a, 0x6b, 0x20, 0x68, 0xdd, 0xbd, 0x79, 0xd3, 0xe6, 0xfa, 0x9d, 0xb7, 0xdc, 0xcc, 0x86, 0x07, 0xf7, 0x61, 0xd2, 0xb2, 0x60, 0x85, 0x42, 0xd0, 0x04, 0x64, 0x4b, 0x2e, 0x32, 0x25, 0x17, 0x3e, 0xc9, 0x61, 0x76, 0x76, 0x23, 0xd6, 0xb3, 0x0e, 0x92, 0x31, 0x28, 0x4d, 0xf0, 0x3c, 0x85, 0x92, 0xed, 0xf5, 0x5d, 0xb2, 0x2e, 0xa0, 0x48, 0x2d, 0xf2, 0x99, 0xe6, 0x27, 0xb6, 0x6e, 0xd9, 0xda, 0xfa, 0xe5, 0xbf, 0xfa, 0x12, 0xbf, 0x61, 0xc7, 0x0e, 0x6c, 0x58, 0xbb, 0x0a, 0x2f, 0x3f, 0xfc, 0x55, 0x0c, 0xf6, 0x1d, 0xc5, 0xc4, 0x6c, 0x11, 0x65, 0xc7, 0x83, 0xe4, 0x15, 0x85, 0xfd, 0x52, 0xc0, 0x2f, 0x39, 0xfc, 0x86, 0x80, 0x29, 0x05, 0x40, 0xc8, 0x04, 0x7d, 0xf2, 0x8d, 0x4b, 0x12, 0x40, 0x22, 0x91, 0x30, 0x14, 0xd4, 0xf6, 0x95, 0x5d, 0x2b, 0x37, 0x5c, 0x7f, 0xdd, 0x75, 0xa6, 0x26, 0x40, 0x48, 0x09, 0xad, 0x35, 0xec, 0x42, 0x1e, 0x27, 0x5e, 0x7e, 0x02, 0x18, 0x7c, 0x13, 0x76, 0x66, 0x0a, 0xb6, 0xe3, 0x80, 0x33, 0x20, 0xe4, 0x97, 0x30, 0x85, 0x00, 0x03, 0x40, 0xa4, 0x61, 0xbb, 0xea, 0x3f, 0x77, 0x74, 0x2f, 0x3a, 0x7d, 0x49, 0xba, 0x40, 0xd9, 0x75, 0x5b, 0xe2, 0xb1, 0xf8, 0xf5, 0x9b, 0x37, 0x6d, 0xae, 0x7d, 0xe6, 0x99, 0xa7, 0xf1, 0xca, 0xee, 0xe7, 0xf0, 0x37, 0x5f, 0xfc, 0x0b, 0xd8, 0xd3, 0x29, 0xac, 0xed, 0x5e, 0x8d, 0x92, 0x6d, 0xa3, 0x36, 0x24, 0xb0, 0x73, 0xcb, 0x2a, 0x38, 0xcc, 0xc0, 0xf1, 0xd1, 0x49, 0x1c, 0x3b, 0xd1, 0x0f, 0x0d, 0x46, 0xa5, 0xb2, 0x9d, 0x91, 0xa6, 0xff, 0xdb, 0x4b, 0x17, 0x25, 0x1f, 0x5c, 0xa8, 0xfd, 0x2d, 0x28, 0x80, 0x68, 0x2c, 0x66, 0x96, 0x1d, 0xef, 0x8a, 0xe6, 0xa6, 0xc6, 0xb5, 0x2b, 0x5a, 0xa3, 0xdc, 0xcc, 0xf5, 0xa3, 0xbb, 0xab, 0x0b, 0xb2, 0x30, 0x84, 0xe5, 0x91, 0x69, 0xf8, 0xeb, 0x1d, 0x3c, 0xf4, 0xf8, 0x8b, 0x98, 0x1a, 0x68, 0xc4, 0x8e, 0x6d, 0xdb, 0x50, 0x5d, 0x13, 0x42, 0xa4, 0xbd, 0x1e, 0xaf, 0xfe, 0xf0, 0x51, 0x3c, 0xfe, 0xf8, 0xf7, 0xf4, 0x89, 0x93, 0x27, 0x0e, 0xe7, 0x32, 0x99, 0xff, 0xf6, 0x5c, 0xb7, 0x70, 0x49, 0x02, 0x28, 0xb9, 0xa2, 0xa6, 0x3e, 0x4e, 0x5b, 0xb6, 0xf4, 0x98, 0x35, 0x9b, 0x7b, 0x9a, 0xb0, 0x75, 0xcb, 0x16, 0x04, 0x83, 0x7e, 0x90, 0x7b, 0x0a, 0x31, 0x33, 0x07, 0x9f, 0xec, 0xc7, 0x67, 0x6f, 0x4e, 0xc1, 0x2d, 0x15, 0x61, 0x1c, 0xfd, 0x36, 0xdc, 0xdc, 0x55, 0x18, 0x71, 0xfc, 0x98, 0x9d, 0xcd, 0x20, 0x1c, 0x89, 0x32, 0xd2, 0x24, 0x40, 0xb4, 0xa0, 0x7b, 0x5c, 0x38, 0xe1, 0x3c, 0x2c, 0x7c, 0x42, 0x2f, 0x5b, 0xdf, 0x65, 0x6c, 0xda, 0x79, 0xcb, 0x15, 0xa2, 0xbe, 0xe3, 0x0a, 0x10, 0x38, 0xdc, 0xc2, 0x31, 0x90, 0xd3, 0x07, 0xa6, 0x8e, 0x23, 0x58, 0x75, 0x08, 0x6d, 0x2b, 0x87, 0x41, 0x8e, 0x82, 0xce, 0x0f, 0x22, 0xff, 0xc2, 0x0f, 0x30, 0x38, 0xda, 0x09, 0x93, 0xaa, 0x21, 0xa4, 0x04, 0x88, 0xd8, 0x42, 0xc7, 0xa9, 0x05, 0x03, 0xc0, 0xa4, 0x3f, 0x14, 0x0b, 0xdb, 0x57, 0x75, 0xaf, 0x48, 0x34, 0xb7, 0x77, 0xae, 0x03, 0x41, 0xc0, 0xcd, 0x1f, 0x82, 0x2e, 0x1c, 0x00, 0x2b, 0x1d, 0x02, 0x8a, 0x6f, 0x81, 0x4a, 0x03, 0xa0, 0x32, 0xc1, 0x2d, 0x04, 0x51, 0x4a, 0xc7, 0x30, 0x3d, 0x15, 0xc4, 0x94, 0x36, 0x21, 0x7d, 0x7e, 0x28, 0xcf, 0x03, 0x40, 0x04, 0x80, 0x2e, 0x39, 0x00, 0x91, 0xda, 0x5a, 0x66, 0x97, 0x50, 0x6f, 0x9a, 0x6c, 0x4b, 0x53, 0xbd, 0x14, 0xa6, 0x28, 0xc1, 0xcb, 0xbe, 0x09, 0xca, 0x1d, 0x00, 0x15, 0x4e, 0x40, 0xe5, 0x4e, 0xc0, 0xc9, 0x3a, 0x28, 0xe7, 0x97, 0x23, 0x9f, 0x6b, 0xc0, 0x6c, 0xa1, 0x09, 0x33, 0xba, 0x1e, 0x6a, 0x49, 0x2b, 0x4a, 0x2e, 0xc1, 0x1d, 0x1a, 0x81, 0xe3, 0x38, 0x15, 0xf5, 0x2f, 0x45, 0x00, 0x4c, 0x6b, 0xc3, 0x94, 0x58, 0xe7, 0x29, 0x63, 0x85, 0x6d, 0x2b, 0xe6, 0xce, 0xec, 0x46, 0xc9, 0x0e, 0xc2, 0xce, 0x13, 0x4a, 0xa5, 0x24, 0x4a, 0xa5, 0xc5, 0x28, 0x3a, 0x31, 0x14, 0x58, 0x0c, 0xc5, 0xaa, 0x10, 0x54, 0xc2, 0x42, 0x55, 0x2c, 0x8e, 0xd6, 0x96, 0xc5, 0x18, 0x1d, 0x1b, 0xc5, 0xe9, 0x91, 0x51, 0x38, 0xae, 0xbb, 0xe0, 0xca, 0x2f, 0x18, 0x00, 0x52, 0xaa, 0x8a, 0x33, 0xfe, 0x11, 0xe2, 0x55, 0x21, 0xc4, 0x6e, 0x07, 0x8f, 0x6f, 0x45, 0x66, 0xd2, 0x46, 0x4e, 0x0a, 0x38, 0x01, 0x3f, 0x5c, 0xbf, 0x84, 0xd2, 0x0c, 0x92, 0x31, 0xd4, 0x5a, 0x7e, 0x24, 0xe2, 0x31, 0x24, 0xe2, 0x31, 0x04, 0x02, 0x16, 0x4a, 0xa5, 0x22, 0x84, 0x10, 0xf0, 0x3c, 0x0f, 0x60, 0xe0, 0x0b, 0x7d, 0x6b, 0x35, 0xef, 0x00, 0xa2, 0x89, 0x6a, 0xce, 0x18, 0x56, 0x82, 0xb0, 0x21, 0x11, 0xaf, 0x16, 0xed, 0x2b, 0xb6, 0x42, 0x46, 0xaf, 0x44, 0x40, 0xcd, 0xc0, 0x35, 0x0b, 0x30, 0xb5, 0x02, 0x07, 0x60, 0x9a, 0x26, 0x42, 0xa1, 0x00, 0x02, 0x01, 0x0b, 0xa6, 0x61, 0x42, 0x88, 0x4a, 0xac, 0x0b, 0x06, 0x83, 0x30, 0x0d, 0x09, 0xd2, 0x1a, 0x0c, 0x4c, 0x70, 0xce, 0x2f, 0xad, 0x2c, 0xa0, 0x01, 0x53, 0x10, 0xb6, 0x4a, 0x21, 0x6b, 0x3a, 0x3a, 0x3a, 0xd8, 0xf2, 0xce, 0x4e, 0x70, 0xce, 0x11, 0x89, 0x54, 0xc1, 0xe7, 0x37, 0xc1, 0x19, 0x87, 0x69, 0x18, 0x90, 0x52, 0x80, 0x73, 0x0e, 0xc6, 0xde, 0x79, 0xc0, 0x96, 0xdf, 0x0f, 0x9f, 0xdf, 0x0f, 0xc6, 0x18, 0x03, 0x63, 0x3e, 0x70, 0xee, 0x5f, 0x48, 0x2b, 0x98, 0x77, 0x00, 0x8c, 0x61, 0x31, 0x03, 0xbb, 0xca, 0xef, 0xf7, 0x05, 0x36, 0x6c, 0xd8, 0x80, 0x64, 0x32, 0x09, 0x00, 0xf0, 0x99, 0x26, 0x4c, 0xc3, 0xf8, 0x15, 0x85, 0x7f, 0x79, 0x99, 0xa6, 0x01, 0x9f, 0x69, 0x82, 0x0b, 0xc1, 0x00, 0x58, 0x82, 0xf3, 0xd0, 0x42, 0x02, 0x98, 0xef, 0x1c, 0xcb, 0x38, 0xd8, 0x46, 0x00, 0xed, 0x75, 0x75, 0x75, 0x62, 0xd3, 0xa6, 0x8d, 0xef, 0x50, 0xf8, 0x37, 0x29, 0x0f, 0x00, 0x42, 0x08, 0x08, 0xce, 0x61, 0x18, 0x06, 0x38, 0x63, 0x7e, 0xce, 0x45, 0x62, 0x21, 0x6b, 0x81, 0x79, 0x15, 0x1c, 0x8e, 0xc7, 0x63, 0x00, 0xae, 0xe6, 0x5c, 0x24, 0x36, 0x5e, 0x71, 0x05, 0x96, 0xb6, 0xb7, 0xff, 0x56, 0x4a, 0xbf, 0x23, 0x80, 0x6a, 0x0d, 0x0d, 0x42, 0x20, 0x10, 0x04, 0xe3, 0x3c, 0x28, 0x84, 0x6c, 0x02, 0x63, 0xc6, 0x45, 0x0f, 0x20, 0x1e, 0x8f, 0x33, 0xc9, 0xf9, 0x1a, 0x10, 0x7a, 0x6a, 0x6a, 0x92, 0xe6, 0x75, 0xd7, 0x5d, 0x8b, 0x60, 0x30, 0xf8, 0xae, 0xe5, 0xb8, 0x9e, 0x07, 0xd7, 0xf5, 0x10, 0x89, 0x44, 0x60, 0x18, 0x66, 0x90, 0x71, 0xb6, 0xd4, 0xf0, 0xf9, 0x22, 0x17, 0x3d, 0x00, 0x62, 0x2c, 0x06, 0x60, 0x3b, 0x63, 0x68, 0xdb, 0xbc, 0x69, 0x23, 0xeb, 0xbe, 0xec, 0x32, 0x08, 0x21, 0xde, 0xb5, 0x9c, 0x42, 0xb1, 0x84, 0x62, 0xb1, 0x80, 0x70, 0x24, 0x8a, 0x70, 0x38, 0x6c, 0x32, 0xa0, 0xd3, 0x34, 0x8c, 0x96, 0x85, 0x72, 0x83, 0x79, 0x11, 0x1a, 0x8b, 0x55, 0x4b, 0x06, 0xbe, 0x5e, 0x6b, 0xba, 0xae, 0xb1, 0xa1, 0xc1, 0xba, 0xe9, 0xc6, 0x9b, 0x10, 0x8b, 0x5e, 0xd8, 0x0d, 0x56, 0x26, 0x93, 0x41, 0x2e, 0x57, 0x80, 0x15, 0x08, 0xa0, 0xa1, 0x71, 0x11, 0x13, 0x42, 0x2e, 0x11, 0x5c, 0xf4, 0x0a, 0xd3, 0xb4, 0x2e, 0x4a, 0x00, 0x81, 0x64, 0x92, 0x81, 0xb3, 0x66, 0x00, 0x77, 0x49, 0x29, 0x97, 0x6d, 0xdb, 0xb6, 0x0d, 0xbd, 0xbd, 0x3d, 0x30, 0x8c, 0x77, 0xef, 0xb6, 0x04, 0x42, 0x6a, 0x62, 0x02, 0x85, 0x42, 0x1e, 0x9c, 0x73, 0x34, 0x36, 0x35, 0x21, 0x54, 0x55, 0x95, 0x00, 0x63, 0xd7, 0xf8, 0x7c, 0x56, 0xe3, 0x42, 0x64, 0x83, 0xf7, 0x0c, 0xc0, 0x07, 0x84, 0xc0, 0x71, 0x07, 0x81, 0xb6, 0xad, 0x5c, 0xb1, 0x92, 0xdd, 0x74, 0xd3, 0x8d, 0x88, 0xc7, 0xe3, 0x17, 0x24, 0xab, 0x58, 0x2c, 0x61, 0x60, 0xf0, 0x34, 0x0a, 0xc5, 0x12, 0x88, 0x08, 0xf1, 0x44, 0x02, 0x8b, 0x9b, 0x9b, 0xb9, 0x94, 0x72, 0xa3, 0xe0, 0x6c, 0xb3, 0x65, 0x59, 0xfe, 0x8b, 0x0a, 0x40, 0xbc, 0x3a, 0xe9, 0x67, 0x44, 0x1f, 0x86, 0xa6, 0x3f, 0x8e, 0x45, 0xa3, 0x91, 0xdb, 0x6f, 0xbb, 0x15, 0x97, 0x75, 0x5f, 0x98, 0xef, 0x13, 0x80, 0x91, 0x91, 0x51, 0x9c, 0x38, 0x79, 0x0a, 0xae, 0xeb, 0x40, 0x6b, 0x0d, 0xc3, 0x30, 0xd1, 0xd6, 0xde, 0x81, 0x44, 0x22, 0x51, 0x2d, 0x38, 0xbf, 0x45, 0x48, 0xa3, 0x45, 0x9a, 0x26, 0xff, 0xc0, 0x01, 0x44, 0x22, 0x11, 0x1e, 0x8b, 0x25, 0xa2, 0x20, 0xdc, 0x01, 0xb0, 0xbf, 0x36, 0x0c, 0xa3, 0xe5, 0xca, 0x2b, 0x37, 0xb3, 0xeb, 0x77, 0x5c, 0x0f, 0xcb, 0xf2, 0x83, 0xe8, 0xdd, 0xf7, 0x30, 0xc5, 0x42, 0x11, 0xfb, 0xde, 0xde, 0x8f, 0xb1, 0xb1, 0x31, 0x68, 0x4d, 0x20, 0xad, 0x41, 0x44, 0xa8, 0xa9, 0xab, 0xc3, 0xb2, 0xce, 0xe5, 0xdc, 0x0a, 0x04, 0xae, 0x14, 0x52, 0xde, 0xe8, 0xf7, 0xfb, 0x43, 0x1f, 0x28, 0x80, 0x58, 0x75, 0xad, 0xc1, 0xa5, 0xd1, 0x49, 0x0c, 0x5f, 0xe0, 0x82, 0x3f, 0x28, 0xa5, 0xec, 0x6a, 0x69, 0x69, 0x11, 0x7f, 0x70, 0xe7, 0x9d, 0x68, 0x68, 0x68, 0x80, 0xd6, 0x1a, 0x9a, 0x08, 0x5a, 0xeb, 0xdf, 0xfe, 0xd6, 0x58, 0x29, 0x1c, 0xef, 0xef, 0xc7, 0x4f, 0x5e, 0x7d, 0x0d, 0x9e, 0xd2, 0x10, 0x42, 0x54, 0xe4, 0xe8, 0xca, 0xef, 0xcb, 0x57, 0xac, 0xc4, 0xa2, 0xc6, 0xa6, 0x90, 0x14, 0xf2, 0xa3, 0x0c, 0xac, 0xc7, 0x0a, 0x04, 0xc4, 0x7c, 0x01, 0x78, 0x57, 0x82, 0xe2, 0xc9, 0x64, 0x08, 0xc0, 0x16, 0x22, 0xfa, 0x42, 0x38, 0x1c, 0xbe, 0xa3, 0xab, 0xab, 0xab, 0xda, 0xb2, 0x2c, 0x7e, 0xe3, 0x8d, 0x37, 0xe0, 0xd6, 0x9d, 0x3b, 0x21, 0xa4, 0xfc, 0x85, 0xfe, 0x95, 0x9d, 0xef, 0x66, 0xff, 0xbf, 0x62, 0x88, 0x88, 0x30, 0x3a, 0x36, 0x8e, 0xef, 0x3c, 0xfa, 0x5d, 0x0c, 0x9c, 0x1e, 0x42, 0x22, 0x91, 0x00, 0x03, 0x03, 0x11, 0x41, 0x4a, 0x09, 0x21, 0x04, 0xa2, 0x91, 0x08, 0xac, 0x80, 0xc5, 0xc6, 0xc7, 0x47, 0x23, 0x8e, 0x63, 0x4b, 0x10, 0xed, 0x71, 0x1c, 0x27, 0xf7, 0xbe, 0x02, 0x88, 0xc7, 0x13, 0x35, 0x04, 0xfc, 0x11, 0x63, 0xf8, 0xc2, 0xa2, 0x45, 0x8b, 0x36, 0x7f, 0xfc, 0xae, 0xbb, 0x7c, 0xdd, 0xdd, 0xab, 0x19, 0x18, 0xf0, 0x89, 0xbb, 0x3e, 0x5e, 0xa9, 0xf9, 0x89, 0xe6, 0xc2, 0x34, 0x81, 0x18, 0x03, 0xc3, 0x6f, 0x2e, 0x83, 0xb3, 0xb9, 0x1c, 0xbe, 0xfb, 0xf8, 0xf7, 0xf0, 0xda, 0x1b, 0x7b, 0xd0, 0xd8, 0xb8, 0x08, 0x81, 0x40, 0x00, 0xa5, 0x52, 0x25, 0x08, 0x1a, 0x86, 0x84, 0x10, 0x12, 0x86, 0x61, 0xa0, 0xb6, 0xb6, 0x16, 0xe5, 0x52, 0xd9, 0x38, 0x73, 0x66, 0x3c, 0xa9, 0x89, 0xc6, 0xed, 0x72, 0xe9, 0x30, 0x00, 0xb5, 0xe0, 0x00, 0x62, 0xd5, 0xd5, 0xcc, 0x6f, 0x05, 0xda, 0xc0, 0xf9, 0xfd, 0x42, 0x88, 0x4f, 0xaf, 0x5a, 0xb5, 0xaa, 0xf5, 0xcf, 0xef, 0xbb, 0x8f, 0x6d, 0xfb, 0xc8, 0x87, 0xf1, 0xe2, 0x4b, 0x2f, 0x63, 0xfd, 0xba, 0xf5, 0x58, 0xbf, 0x7e, 0xfd, 0x79, 0x05, 0xcf, 0xb9, 0x3f, 0x03, 0x40, 0xec, 0x17, 0x22, 0x5c, 0xa5, 0x51, 0x7a, 0x47, 0x26, 0x73, 0x1c, 0x07, 0xdf, 0xdf, 0xb5, 0x0b, 0x3f, 0x7c, 0xe6, 0x39, 0x2c, 0x69, 0x69, 0x45, 0x4d, 0x4d, 0x0d, 0xf2, 0xb9, 0x1c, 0xb2, 0xb9, 0x1c, 0x18, 0x63, 0xe7, 0x2d, 0x40, 0x48, 0x89, 0x80, 0x65, 0xa1, 0xa6, 0x26, 0x89, 0x33, 0xe3, 0x63, 0x81, 0x99, 0x99, 0x99, 0x2a, 0xc3, 0x34, 0xf7, 0x73, 0xc6, 0x26, 0x3c, 0xcf, 0x5b, 0xb8, 0x18, 0x90, 0x48, 0x24, 0x38, 0x03, 0x96, 0x72, 0xc6, 0x1e, 0x90, 0x42, 0xdc, 0xd5, 0xdb, 0xdb, 0x5b, 0xf7, 0xc0, 0x17, 0x1f, 0x60, 0xdb, 0xaf, 0xdd, 0x8e, 0x91, 0x91, 0x51, 0xb8, 0xae, 0x8b, 0x9e, 0x9e, 0x1e, 0x70, 0x21, 0xa0, 0x49, 0x43, 0x6b, 0xaa, 0x04, 0x30, 0xaa, 0x98, 0x36, 0x34, 0x81, 0x48, 0x83, 0x50, 0x19, 0x84, 0x56, 0xfe, 0x46, 0xe7, 0xfd, 0x7e, 0xf7, 0x8b, 0x2f, 0xe1, 0x89, 0x27, 0x9f, 0xc2, 0x92, 0xd6, 0x56, 0xb4, 0xb7, 0xb5, 0x01, 0xa4, 0x31, 0x3d, 0x3d, 0x0d, 0xdb, 0xb6, 0xa1, 0xb5, 0x82, 0xd6, 0x1a, 0x44, 0x1a, 0x4a, 0x29, 0x78, 0x9e, 0x87, 0x64, 0xb2, 0x06, 0x1b, 0x37, 0x6e, 0x92, 0xa1, 0x50, 0xa8, 0x87, 0x33, 0x71, 0x8b, 0x94, 0x32, 0xb6, 0x60, 0x41, 0x30, 0x12, 0x89, 0x30, 0x02, 0x5b, 0x04, 0xb0, 0xfb, 0x38, 0xe7, 0xb7, 0xaf, 0x59, 0xb3, 0x26, 0x7a, 0xdf, 0x9f, 0xdd, 0xc7, 0xba, 0xbb, 0xbb, 0x51, 0x2e, 0x3b, 0xd8, 0x7f, 0xe0, 0x20, 0xea, 0xeb, 0xeb, 0x11, 0x8f, 0xc7, 0x2b, 0x1b, 0x3d, 0xaf, 0x9c, 0x9e, 0xdb, 0x38, 0xfd, 0x1c, 0x82, 0x3e, 0x07, 0x01, 0xe7, 0x3f, 0xef, 0xef, 0x3f, 0x81, 0x6f, 0x3f, 0xf4, 0x10, 0xe2, 0xd1, 0x18, 0xd6, 0x5c, 0x76, 0x19, 0xa4, 0x10, 0x18, 0x1a, 0x1e, 0x46, 0x7a, 0x3a, 0x7d, 0x5e, 0xf9, 0xca, 0xcf, 0x4a, 0x40, 0xf5, 0x94, 0x02, 0x11, 0x61, 0x79, 0xe7, 0x0a, 0x74, 0x2e, 0xeb, 0x0c, 0x33, 0xce, 0xae, 0x15, 0x42, 0xae, 0x36, 0x4d, 0x53, 0x2c, 0x08, 0x00, 0x6e, 0x18, 0x55, 0x60, 0xec, 0x76, 0x22, 0xdc, 0xd1, 0xde, 0xde, 0x5e, 0xf5, 0xa9, 0x4f, 0x7e, 0x0a, 0xcb, 0x96, 0x75, 0xc2, 0xb6, 0x6d, 0x64, 0xb3, 0x59, 0xa4, 0x52, 0x29, 0x84, 0xc3, 0x11, 0x48, 0x29, 0x2b, 0xa7, 0x7b, 0xfe, 0xa9, 0xd8, 0xfc, 0x39, 0x6b, 0xd0, 0xe7, 0x94, 0x9e, 0xeb, 0xf2, 0x88, 0x08, 0xe5, 0x72, 0x19, 0xcf, 0x3e, 0xfb, 0x2c, 0x52, 0xa9, 0x09, 0x6c, 0xb8, 0x7c, 0x03, 0x82, 0x81, 0x00, 0x4e, 0x0d, 0x0e, 0xe0, 0xd4, 0xe0, 0x20, 0x5c, 0xcf, 0x3b, 0x9f, 0x01, 0x94, 0xaa, 0x9c, 0xbe, 0x52, 0x0a, 0xca, 0xf3, 0xe0, 0x29, 0x85, 0x50, 0x38, 0x8c, 0x9e, 0xde, 0x75, 0x2c, 0x14, 0x0a, 0xad, 0xd0, 0xc0, 0x76, 0xc3, 0x34, 0xe3, 0xf3, 0x0e, 0x20, 0x51, 0x53, 0x23, 0x39, 0xe3, 0x3d, 0x04, 0xfa, 0x64, 0x3c, 0x1e, 0x8f, 0xef, 0xdc, 0x79, 0x2b, 0xba, 0xba, 0x56, 0xc1, 0xf3, 0x3c, 0x94, 0xca, 0x36, 0xb2, 0xd9, 0x1c, 0xf2, 0x85, 0x02, 0x3c, 0xcf, 0x3b, 0x6f, 0xd6, 0xe7, 0x9e, 0xca, 0xe6, 0xf1, 0x8e, 0xcf, 0x88, 0x58, 0x25, 0x36, 0xcc, 0x59, 0xc6, 0xd9, 0xb3, 0x67, 0xb1, 0x67, 0xef, 0x5e, 0x34, 0x36, 0x36, 0xa2, 0xb9, 0xa5, 0x19, 0x67, 0xce, 0xa4, 0xb0, 0x77, 0xdf, 0x3e, 0x94, 0x4a, 0xa5, 0x39, 0xc5, 0xd5, 0x5c, 0x21, 0x64, 0xa0, 0x2a, 0x14, 0x82, 0xe5, 0xf7, 0x43, 0x13, 0xe1, 0x9c, 0xbf, 0xb7, 0xb6, 0xb6, 0xa2, 0xa9, 0x69, 0xb1, 0x9f, 0x73, 0xb6, 0x95, 0x73, 0xde, 0x21, 0xa5, 0xbc, 0x60, 0x2b, 0xf8, 0xb5, 0x37, 0x42, 0x5a, 0xe9, 0x10, 0x63, 0xfc, 0x56, 0xc1, 0x45, 0x5b, 0x77, 0x77, 0x37, 0x56, 0xaf, 0xee, 0x46, 0x6a, 0x62, 0x02, 0xc3, 0xc3, 0xc3, 0x18, 0x19, 0x1e, 0xc2, 0xe4, 0xd9, 0x49, 0xbc, 0xf5, 0xd6, 0x5b, 0xb0, 0x2c, 0x0b, 0xb6, 0xe3, 0x40, 0x4a, 0x03, 0x60, 0x0c, 0x8c, 0x31, 0x30, 0x10, 0x34, 0x69, 0x70, 0x70, 0x10, 0x00, 0xa6, 0x5c, 0x30, 0x52, 0xe0, 0x86, 0x1f, 0xc4, 0x18, 0x84, 0x60, 0x28, 0x14, 0x0a, 0x98, 0x99, 0x99, 0x41, 0x47, 0x47, 0x07, 0x48, 0x6b, 0xbc, 0xfa, 0xfa, 0xab, 0x98, 0x9a, 0x9a, 0x42, 0x20, 0x10, 0x80, 0xd6, 0x1a, 0xe1, 0x70, 0x18, 0xcb, 0x96, 0x2e, 0xc5, 0xa2, 0x86, 0x46, 0x44, 0x22, 0x11, 0x28, 0x52, 0x18, 0x18, 0x38, 0x5d, 0xb1, 0x02, 0xaf, 0xd2, 0x2a, 0xb7, 0xb6, 0xb6, 0xe2, 0xc4, 0x89, 0xfe, 0xa5, 0xb6, 0x2a, 0xf7, 0x48, 0xd3, 0xdc, 0xef, 0x79, 0x5e, 0x61, 0x5e, 0x00, 0x44, 0xaa, 0x93, 0x1c, 0x40, 0x1b, 0x03, 0x5d, 0xc5, 0x18, 0x97, 0x53, 0x53, 0x53, 0xf8, 0xce, 0x77, 0x1e, 0xc6, 0xe8, 0xe8, 0x28, 0xa5, 0x52, 0x29, 0x64, 0xb3, 0x59, 0xb8, 0xae, 0xc3, 0x6c, 0xdb, 0x81, 0x65, 0x59, 0x48, 0x9d, 0x39, 0x83, 0xb6, 0xe6, 0x06, 0xd0, 0xd4, 0xe1, 0x4a, 0x80, 0x4f, 0xae, 0x06, 0xa4, 0x05, 0x0d, 0x0d, 0xe4, 0xd3, 0x50, 0x87, 0x9e, 0x83, 0x4e, 0x8f, 0xc3, 0xec, 0xde, 0x0e, 0xd9, 0xbc, 0x1a, 0xc4, 0x19, 0xa4, 0x61, 0xc0, 0x34, 0x0c, 0xe4, 0xf3, 0x79, 0x1c, 0x3f, 0xde, 0x87, 0xbe, 0xbe, 0x63, 0xd0, 0x4a, 0xc1, 0x67, 0xfa, 0xb0, 0x66, 0xf5, 0x6a, 0xf4, 0xf6, 0xf4, 0xa2, 0x36, 0x99, 0x84, 0x94, 0x12, 0xf1, 0x58, 0x14, 0x3e, 0xcb, 0x87, 0x89, 0x89, 0x49, 0x14, 0x0a, 0x45, 0xb8, 0xae, 0x8b, 0x60, 0x20, 0x80, 0x44, 0xa2, 0x1a, 0xa6, 0x69, 0x5a, 0x8e, 0x63, 0x77, 0x31, 0x20, 0x0c, 0x60, 0x7e, 0x00, 0x30, 0x02, 0x07, 0xd0, 0x05, 0xce, 0x6a, 0xb4, 0xd6, 0xde, 0xb1, 0x63, 0x47, 0xdd, 0x63, 0xc7, 0x8e, 0x38, 0x9e, 0xa7, 0x8a, 0x5a, 0xeb, 0x22, 0x00, 0xc1, 0x39, 0xaf, 0x65, 0x8c, 0x05, 0xfa, 0xfa, 0x8e, 0xe3, 0x85, 0x17, 0x7e, 0x84, 0xc6, 0x8f, 0x2c, 0x87, 0xaf, 0xff, 0x9b, 0xd0, 0x08, 0x82, 0xad, 0xbd, 0x17, 0x3c, 0xb9, 0x02, 0x54, 0x2e, 0x40, 0x1f, 0x79, 0x0a, 0xba, 0xef, 0x09, 0xe8, 0x4c, 0x09, 0xae, 0x15, 0x05, 0x6f, 0x58, 0x06, 0xc6, 0x2d, 0xc4, 0xa2, 0x31, 0xb4, 0xb6, 0xb6, 0xe2, 0xc0, 0xc1, 0x83, 0x28, 0x95, 0xca, 0xc8, 0xe7, 0xf2, 0x58, 0xd4, 0xb4, 0x18, 0xdb, 0xb7, 0x6f, 0xc7, 0xba, 0x9e, 0x1e, 0x58, 0x96, 0x05, 0x22, 0x82, 0xcf, 0xe7, 0x43, 0x53, 0x53, 0x23, 0x34, 0x69, 0x98, 0xa6, 0x89, 0x6c, 0x36, 0x07, 0xcf, 0xf3, 0xa0, 0x94, 0x02, 0xe7, 0x1c, 0x9c, 0x71, 0x0e, 0xb0, 0x06, 0xd2, 0x14, 0x06, 0x90, 0xba, 0x90, 0x39, 0xc2, 0xaf, 0xba, 0x80, 0xd6, 0x20, 0xc0, 0xf6, 0xb4, 0x3e, 0xa4, 0x95, 0x86, 0x56, 0x6a, 0x5c, 0x29, 0x6f, 0x4c, 0x29, 0x35, 0xae, 0xb5, 0x9e, 0x16, 0x42, 0x9a, 0x56, 0x20, 0xb0, 0x43, 0x1a, 0xc6, 0xf6, 0x72, 0xb9, 0xe4, 0x7b, 0xec, 0xb1, 0x47, 0xb0, 0x21, 0xb2, 0x0c, 0x6b, 0xe2, 0xc7, 0xa1, 0x5c, 0x01, 0x4a, 0xed, 0x83, 0x0e, 0x2d, 0x02, 0x46, 0xf7, 0x00, 0xe3, 0xdf, 0x87, 0x48, 0x64, 0x00, 0x66, 0x00, 0xc1, 0x10, 0x88, 0x71, 0x68, 0x22, 0x04, 0x43, 0x21, 0x5c, 0xbe, 0xe1, 0x72, 0xbc, 0xf8, 0xd2, 0x4b, 0x48, 0xa5, 0x26, 0xb0, 0x7c, 0x79, 0x27, 0x3e, 0xfa, 0xb1, 0x3b, 0xb1, 0x72, 0xc5, 0x4a, 0x70, 0xc6, 0xe1, 0x29, 0x0f, 0x42, 0x08, 0xd4, 0xd7, 0xd6, 0x20, 0x12, 0x09, 0x23, 0x9b, 0xcb, 0x81, 0x0b, 0x01, 0x4f, 0x55, 0xb2, 0x81, 0xe3, 0x38, 0xc8, 0x65, 0x33, 0x70, 0x3d, 0x17, 0x00, 0xa4, 0x26, 0x32, 0xde, 0x51, 0x7a, 0xbe, 0x17, 0x00, 0xe5, 0x52, 0x51, 0x11, 0xd1, 0x8f, 0x3d, 0xcf, 0x1d, 0xd6, 0x5a, 0xfb, 0x00, 0x64, 0x01, 0x64, 0x88, 0xa8, 0x00, 0xa0, 0xac, 0x94, 0x66, 0xd2, 0x67, 0xa6, 0xb8, 0x10, 0x75, 0x9c, 0xf3, 0x75, 0x93, 0x67, 0xc6, 0xc4, 0xd4, 0x68, 0x01, 0xb2, 0x6d, 0x12, 0x64, 0x73, 0x78, 0xe3, 0x2f, 0x82, 0xca, 0x2e, 0x58, 0xfa, 0xa7, 0xe0, 0x46, 0x1a, 0xe4, 0x09, 0x10, 0x8f, 0x81, 0xd5, 0x2c, 0x05, 0x09, 0x03, 0xda, 0x73, 0x21, 0x48, 0xe3, 0xf2, 0xde, 0x5e, 0xac, 0x5a, 0xb5, 0x0a, 0x20, 0xc2, 0x3d, 0xf7, 0xdc, 0x83, 0xce, 0xce, 0xe5, 0x98, 0xcd, 0x64, 0xa1, 0x94, 0x82, 0x34, 0x24, 0xe2, 0xb1, 0x08, 0xa2, 0xd1, 0x08, 0x18, 0x63, 0xf0, 0x3c, 0x0f, 0x8e, 0xed, 0x40, 0xa9, 0x4a, 0x86, 0xc8, 0xe5, 0x72, 0x18, 0x1b, 0x1f, 0x83, 0xe7, 0xb9, 0x04, 0xa2, 0x59, 0x22, 0xed, 0xcd, 0x5b, 0x10, 0x2c, 0x97, 0x4b, 0x04, 0x60, 0x06, 0xc0, 0xcf, 0xe6, 0xa8, 0x7a, 0x73, 0x25, 0xa7, 0x3e, 0x57, 0xd6, 0xd9, 0xb6, 0xfd, 0x53, 0xc1, 0xf8, 0x7f, 0x49, 0xc3, 0x88, 0x19, 0x42, 0x2c, 0xf5, 0x19, 0x9a, 0x13, 0x03, 0x98, 0x29, 0xc0, 0x32, 0x7d, 0xc0, 0xd0, 0x08, 0xb8, 0x55, 0x06, 0xb8, 0x04, 0x15, 0x19, 0xc8, 0xab, 0x02, 0x31, 0x03, 0xde, 0xf0, 0x31, 0xe8, 0xc1, 0x83, 0xa0, 0xcc, 0x0c, 0xaa, 0x97, 0xf6, 0xe0, 0x33, 0x9f, 0xbe, 0x1b, 0x91, 0x78, 0x02, 0x6d, 0x4b, 0x96, 0x40, 0x6b, 0x0d, 0xc7, 0x76, 0xe0, 0x7a, 0x1e, 0x42, 0xa1, 0x00, 0x22, 0xe1, 0x2a, 0x30, 0x56, 0xc9, 0x26, 0xb9, 0x5c, 0x1e, 0xf9, 0x42, 0xfe, 0x7c, 0x41, 0x74, 0x76, 0x3a, 0x8d, 0xa1, 0xa1, 0x61, 0x28, 0xa5, 0x6d, 0xa5, 0xd5, 0x30, 0x55, 0x5c, 0x93, 0xe6, 0x2d, 0x0b, 0xcc, 0x29, 0xfc, 0x7f, 0xd6, 0xd9, 0xca, 0x71, 0x72, 0x36, 0xb0, 0x4b, 0x13, 0xf9, 0x49, 0x8b, 0x7b, 0x88, 0xf8, 0x32, 0x28, 0x4b, 0x82, 0x38, 0x44, 0xd0, 0x01, 0x99, 0x00, 0x69, 0x13, 0xf0, 0x38, 0xa0, 0x39, 0x28, 0x3f, 0x0d, 0xef, 0xa7, 0xdf, 0x02, 0x54, 0x11, 0x94, 0x4d, 0x41, 0xcf, 0x3a, 0xd0, 0xa5, 0x12, 0xba, 0x77, 0x7c, 0x12, 0x22, 0x14, 0x01, 0x23, 0x40, 0x70, 0x8e, 0x50, 0x28, 0x00, 0x22, 0x82, 0x65, 0x59, 0x00, 0xe3, 0xe7, 0xd3, 0xe8, 0xd8, 0xf8, 0x38, 0x32, 0xd9, 0x2c, 0x88, 0x80, 0x42, 0xa1, 0x80, 0xc3, 0x87, 0x0e, 0x21, 0x9d, 0x9e, 0x02, 0x80, 0x31, 0xe5, 0x79, 0x47, 0x95, 0x52, 0xd9, 0xf7, 0x7b, 0x30, 0x42, 0x8e, 0xe3, 0x4c, 0x11, 0xd1, 0x63, 0x21, 0x43, 0x14, 0x4d, 0xf0, 0xfb, 0x99, 0x1b, 0x5c, 0x0e, 0xe6, 0xb1, 0x4a, 0x69, 0x21, 0x2a, 0x8a, 0x2b, 0x0e, 0x18, 0x1c, 0x22, 0x5c, 0x02, 0xd9, 0x47, 0x41, 0x8a, 0x00, 0x97, 0x40, 0x2c, 0x0a, 0x5e, 0xd7, 0x02, 0x32, 0x7c, 0xd0, 0x5a, 0x83, 0xcd, 0x35, 0x4b, 0xa6, 0x69, 0x82, 0x71, 0x56, 0xe9, 0x19, 0x48, 0x83, 0x18, 0x47, 0x3a, 0x9d, 0xc6, 0xc1, 0xc3, 0x47, 0x90, 0xcf, 0x17, 0xe0, 0x33, 0x4d, 0x9c, 0x1c, 0x1e, 0xc2, 0xa1, 0x43, 0x07, 0xe0, 0x79, 0x9e, 0xed, 0xb9, 0xee, 0x3e, 0xcf, 0x75, 0x8f, 0x11, 0xd1, 0x05, 0x5b, 0xc0, 0x7b, 0xb9, 0x5d, 0xd1, 0xae, 0xeb, 0x9e, 0xdd, 0xbe, 0x2a, 0xf4, 0x7c, 0x4d, 0x95, 0xf9, 0xba, 0xb6, 0x2d, 0x45, 0xca, 0x00, 0x29, 0x09, 0xd2, 0x02, 0x50, 0xac, 0xf2, 0xd0, 0x5c, 0xcb, 0xc5, 0x08, 0x28, 0x31, 0xe8, 0x72, 0x14, 0xa2, 0x6b, 0x2b, 0xc4, 0x65, 0x57, 0x02, 0xa2, 0xf2, 0xb2, 0x14, 0xcd, 0xb5, 0xc5, 0x95, 0xb9, 0xc0, 0xcf, 0x1b, 0xaa, 0x42, 0xa1, 0x80, 0x37, 0xde, 0xdc, 0x8b, 0xa3, 0x7d, 0xc7, 0xe1, 0x79, 0x1e, 0xc6, 0xc7, 0xc7, 0xb0, 0xef, 0xad, 0x37, 0x91, 0xcd, 0x66, 0x94, 0xd6, 0xaa, 0xcf, 0x75, 0xec, 0xdd, 0x4a, 0xa9, 0xa1, 0x39, 0x37, 0xfd, 0x40, 0x46, 0x63, 0xfa, 0x9a, 0x55, 0xd1, 0x19, 0x83, 0x89, 0xc3, 0x4e, 0x91, 0xb9, 0x22, 0xa8, 0x24, 0xb4, 0x04, 0xd4, 0xdc, 0xe9, 0x6b, 0x06, 0x52, 0x0c, 0x70, 0x01, 0x9d, 0x01, 0xf2, 0xf9, 0x10, 0x7c, 0xdd, 0x1f, 0x86, 0xff, 0xea, 0x9d, 0xe0, 0x55, 0xf1, 0xf3, 0x87, 0x46, 0x44, 0xe7, 0x5a, 0x45, 0x08, 0xce, 0xa0, 0xb5, 0xc6, 0xf4, 0xf4, 0x2c, 0x5e, 0xdb, 0xb3, 0x07, 0x3f, 0x7e, 0xf1, 0x65, 0xe4, 0xb2, 0x39, 0xe4, 0x72, 0x59, 0x1c, 0x3f, 0x76, 0x04, 0xe9, 0xa9, 0x29, 0xa5, 0x94, 0x1e, 0xb4, 0xcb, 0xe5, 0x5d, 0x8e, 0xe3, 0xbc, 0x4e, 0x44, 0xd3, 0x3f, 0x8f, 0x4f, 0x1f, 0xc0, 0x6c, 0xf0, 0xad, 0xc1, 0xbc, 0x13, 0x34, 0x22, 0x87, 0x92, 0x21, 0xdf, 0x84, 0x34, 0x7c, 0x2d, 0x1a, 0x73, 0x4a, 0x6b, 0x06, 0xf2, 0x18, 0x78, 0x89, 0xa1, 0x30, 0xad, 0xb1, 0xef, 0x54, 0x19, 0xaf, 0xcc, 0x00, 0x31, 0x6b, 0x06, 0x2b, 0x82, 0x6f, 0xa3, 0x79, 0xf1, 0x62, 0x54, 0x57, 0x27, 0xe0, 0xf3, 0xf9, 0xce, 0xdf, 0x20, 0xbb, 0xae, 0x8b, 0xd9, 0x4c, 0x06, 0x27, 0x07, 0x06, 0xb1, 0x77, 0xdf, 0xcf, 0xb0, 0xff, 0xc0, 0x41, 0xe4, 0x73, 0x59, 0xe4, 0x32, 0xb3, 0x48, 0x8d, 0x8f, 0x23, 0x9f, 0xcf, 0x79, 0x4a, 0xa9, 0x7e, 0xbb, 0x5c, 0x7a, 0xd2, 0x2e, 0x95, 0x9e, 0x22, 0xe0, 0x34, 0x00, 0xf7, 0x3d, 0xcd, 0xf2, 0xe6, 0xe3, 0x56, 0xe5, 0xe9, 0x2f, 0x76, 0x35, 0x77, 0xd4, 0x05, 0xfe, 0xbe, 0x3a, 0x2a, 0x6e, 0x27, 0xa1, 0x19, 0x29, 0x06, 0x56, 0x16, 0xe4, 0xe5, 0xa0, 0x52, 0x13, 0xee, 0xf4, 0x73, 0xc7, 0xb2, 0xe9, 0xc7, 0x8e, 0xe7, 0xe2, 0x03, 0x59, 0x2f, 0x66, 0xf8, 0xfc, 0x32, 0x16, 0x8b, 0xb1, 0xba, 0xba, 0x5a, 0x56, 0x5f, 0x57, 0x8f, 0x68, 0x34, 0x8a, 0x60, 0x28, 0x08, 0xd2, 0x84, 0x5c, 0xa1, 0x88, 0x74, 0x7a, 0x0a, 0x76, 0x36, 0x0d, 0x9f, 0x9b, 0x03, 0x39, 0x36, 0x4e, 0x4e, 0x64, 0x30, 0x92, 0xce, 0x6a, 0xd7, 0x75, 0x67, 0x3c, 0xcf, 0x7b, 0xdb, 0xb1, 0xed, 0xe7, 0x5d, 0xc7, 0xde, 0x4d, 0x44, 0xfd, 0x00, 0xf2, 0x78, 0x8f, 0x2f, 0x51, 0xcc, 0xcb, 0x74, 0xf8, 0x85, 0xc3, 0xb3, 0x93, 0xd0, 0xec, 0x29, 0x13, 0xc1, 0xb5, 0x41, 0x53, 0x34, 0x95, 0x8a, 0x5a, 0x4f, 0x4e, 0xd9, 0xe9, 0x43, 0xc3, 0x85, 0xbe, 0x97, 0xfb, 0x67, 0xf7, 0xbe, 0x3a, 0x94, 0x1b, 0x18, 0xca, 0xab, 0x30, 0x17, 0x72, 0x99, 0xb0, 0xcb, 0x6d, 0xb9, 0x5c, 0xb6, 0x79, 0x74, 0x6c, 0x24, 0x21, 0x85, 0xf4, 0x0b, 0xc1, 0xa5, 0x10, 0x42, 0x06, 0x4c, 0xc1, 0x9b, 0xe3, 0x7e, 0xf4, 0xb6, 0xc7, 0xb0, 0x61, 0x7d, 0x02, 0x2d, 0x75, 0x71, 0x20, 0x97, 0x46, 0xdf, 0x51, 0x43, 0xff, 0xe0, 0xa0, 0x6f, 0x78, 0xcf, 0x50, 0xf9, 0x99, 0x54, 0xa1, 0xbc, 0xdb, 0x73, 0x9c, 0x03, 0x44, 0x34, 0x06, 0xa0, 0x84, 0x79, 0x78, 0x83, 0x64, 0x5e, 0x00, 0x7c, 0xf3, 0xc5, 0xc9, 0x72, 0x6a, 0xc6, 0xd9, 0xbd, 0xb6, 0x29, 0x14, 0xf2, 0x4b, 0xb1, 0x7e, 0xf4, 0xac, 0x5d, 0xda, 0x3f, 0x9c, 0x1f, 0x3c, 0x3d, 0x5d, 0xee, 0x1f, 0x9d, 0xb5, 0x07, 0x72, 0xb6, 0x3a, 0xcb, 0x18, 0x63, 0x9c, 0x8b, 0x18, 0xe3, 0xac, 0x86, 0x33, 0xd6, 0x28, 0x04, 0x6f, 0x0e, 0x86, 0xcc, 0xd6, 0xa6, 0x44, 0x74, 0xe5, 0xaa, 0xf6, 0x86, 0xce, 0x8d, 0xdd, 0xed, 0xb1, 0x35, 0xdd, 0x8b, 0x45, 0x43, 0x93, 0x0f, 0x56, 0x30, 0x07, 0xae, 0x4e, 0x01, 0xc5, 0x29, 0xb4, 0x76, 0xcc, 0xf0, 0x0d, 0xab, 0xfc, 0x89, 0xb1, 0xd3, 0xc9, 0xa6, 0xb3, 0x53, 0x12, 0xbe, 0xb2, 0xbf, 0x30, 0x5b, 0x50, 0xce, 0x9d, 0xcf, 0x1c, 0x9c, 0x97, 0xd7, 0x67, 0xe6, 0x6d, 0xd2, 0x12, 0xb6, 0x84, 0x88, 0x05, 0x64, 0x54, 0x69, 0x24, 0x8b, 0xb6, 0x62, 0x79, 0x47, 0xe5, 0x1c, 0x8f, 0x32, 0x73, 0x27, 0x75, 0xae, 0xa6, 0x60, 0x2b, 0x1a, 0x0d, 0xe3, 0xde, 0x1b, 0x96, 0x25, 0x16, 0x37, 0x77, 0xac, 0xab, 0x5d, 0xd4, 0x7e, 0x43, 0x4d, 0xe3, 0x92, 0xab, 0x22, 0xb5, 0x8d, 0x4d, 0x86, 0xa5, 0x4d, 0xa8, 0x31, 0x30, 0x36, 0x02, 0x38, 0xc7, 0x81, 0xf2, 0x61, 0xe8, 0xfc, 0x04, 0x50, 0xf6, 0xc0, 0x18, 0x81, 0xca, 0x86, 0x6b, 0x8f, 0x87, 0xc7, 0xcb, 0xc3, 0xb1, 0xa7, 0xb3, 0x63, 0xa1, 0x47, 0x8b, 0x36, 0xf6, 0xf5, 0x3c, 0xfc, 0x5a, 0xee, 0xa2, 0x01, 0xf0, 0x0b, 0xf2, 0xf8, 0x9c, 0x69, 0xfe, 0x4a, 0x64, 0x3e, 0xfb, 0xd0, 0x3a, 0xc9, 0xb4, 0xee, 0xf4, 0x87, 0xea, 0x6e, 0x33, 0x6a, 0x7b, 0x6f, 0xe6, 0xd1, 0xb6, 0x0e, 0x52, 0x64, 0x3a, 0x33, 0xc3, 0xcc, 0x9b, 0x1a, 0x00, 0xcc, 0x02, 0x8c, 0xc5, 0x05, 0x30, 0x75, 0x12, 0x7a, 0x32, 0x0b, 0x77, 0xb0, 0x0a, 0xf6, 0xac, 0x9f, 0xb8, 0xcf, 0x81, 0x19, 0x29, 0x32, 0x19, 0x70, 0xa0, 0xc6, 0x63, 0x6e, 0xe1, 0x44, 0x75, 0xdf, 0x6c, 0x59, 0xfd, 0x4b, 0xff, 0x4c, 0xe6, 0x91, 0x9b, 0x9e, 0x3a, 0x92, 0xff, 0xc0, 0x5d, 0xe0, 0x97, 0x06, 0x3c, 0xbf, 0xb6, 0x82, 0x3c, 0xfd, 0xad, 0x6e, 0xe6, 0x68, 0xb5, 0x44, 0x42, 0x3c, 0x90, 0xcb, 0xe5, 0x3e, 0xe4, 0x16, 0x0f, 0xf2, 0xcc, 0xec, 0xde, 0xd4, 0x4c, 0x7a, 0x3a, 0x93, 0x99, 0xc9, 0xe7, 0xab, 0x04, 0x0f, 0x74, 0xb4, 0x86, 0x96, 0x06, 0x3d, 0x3b, 0x48, 0x25, 0xd0, 0xcc, 0x60, 0x32, 0x7f, 0x72, 0x80, 0x0d, 0x8d, 0x4d, 0xbb, 0x29, 0x41, 0x5c, 0x45, 0x7c, 0x91, 0x40, 0x55, 0x80, 0xc2, 0x01, 0x61, 0x84, 0xfc, 0xae, 0x97, 0x9c, 0x2c, 0xd8, 0x5b, 0xf6, 0x4e, 0xe4, 0x5f, 0x01, 0x70, 0xe2, 0xbd, 0xc4, 0x82, 0xf7, 0xed, 0x1f, 0x26, 0x8e, 0x8d, 0x16, 0xe0, 0xb9, 0x4c, 0x65, 0x72, 0xe8, 0xeb, 0x1f, 0x49, 0xe5, 0x46, 0xce, 0x1e, 0xcb, 0x67, 0xf2, 0x5e, 0x3a, 0x5b, 0xd4, 0xd3, 0x99, 0x92, 0x9e, 0xed, 0xaa, 0x0b, 0x56, 0x7d, 0x8a, 0x89, 0x3f, 0x6c, 0x2f, 0xf8, 0x37, 0x0f, 0xa4, 0x02, 0xc3, 0x4f, 0xbc, 0x9d, 0x7e, 0xe5, 0xcd, 0xe1, 0xec, 0xbe, 0x33, 0x39, 0xe7, 0xb4, 0x64, 0x28, 0x45, 0x0d, 0xc3, 0xaa, 0x32, 0x8c, 0x48, 0xd0, 0x10, 0x11, 0xbf, 0xe4, 0xe1, 0x59, 0xc7, 0x9d, 0x3c, 0x3e, 0x5d, 0xf0, 0xe6, 0x2c, 0xee, 0x82, 0xaf, 0xc7, 0xff, 0x17, 0xf0, 0x82, 0x8d, 0x5e, 0x66, 0xac, 0x95, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_xfer32[1709] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdd, 0x04, 0x0d, 0x14, 0x22, 0x29, 0x9b, 0xb1, 0x0e, 0xac, 0x00, 0x00, 0x06, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x58, 0xc3, 0xc5, 0x57, 0x31, 0xab, 0x64, 0xb7, 0x15, 0xfe, 0x24, 0x1d, 0x49, 0x57, 0x33, 0x1e, 0xaf, 0xfd, 0xec, 0x7a, 0x8a, 0xa4, 0xb2, 0x9b, 0xc0, 0x2e, 0x24, 0x10, 0x87, 0xb8, 0x09, 0x8b, 0x61, 0xab, 0x6d, 0x02, 0x09, 0xee, 0xd2, 0xe5, 0x67, 0x84, 0xfc, 0x85, 0x4d, 0x97, 0x94, 0x09, 0xa4, 0x71, 0xb5, 0x10, 0x42, 0x48, 0xf7, 0xd6, 0xd8, 0x60, 0x43, 0x9a, 0xdd, 0xc6, 0x49, 0x60, 0xea, 0xe0, 0xf7, 0x66, 0xdf, 0xce, 0xdc, 0x2b, 0xe9, 0x1c, 0x29, 0xc5, 0x95, 0x26, 0x77, 0xde, 0xee, 0x86, 0x18, 0x0c, 0x11, 0x1c, 0xee, 0xbd, 0xcc, 0x9d, 0xfb, 0x7d, 0xdf, 0xd1, 0xd1, 0xd1, 0x27, 0xf5, 0x68, 0xf0, 0x00, 0x80, 0xcd, 0x76, 0xfb, 0xf1, 0xcd, 0x6e, 0x77, 0x07, 0xc0, 0xdb, 0x00, 0xde, 0x6a, 0xb1, 0x01, 0xb0, 0x06, 0xb0, 0x02, 0x10, 0x00, 0x78, 0x00, 0x16, 0x00, 0x01, 0x30, 0x38, 0x1f, 0x05, 0x00, 0x03, 0xc8, 0x00, 0x12, 0x80, 0x09, 0xc0, 0x11, 0xc0, 0x01, 0xc0, 0x0b, 0x00, 0x7b, 0x00, 0xd7, 0x00, 0xf6, 0x9b, 0xed, 0xf6, 0xfa, 0x66, 0xb7, 0xfb, 0x1d, 0x00, 0xa8, 0x46, 0xe0, 0x63, 0x00, 0xef, 0xb4, 0x78, 0xab, 0x91, 0xb8, 0xb3, 0x20, 0x30, 0x00, 0x18, 0x88, 0xc8, 0x19, 0x22, 0x02, 0xa0, 0x01, 0x68, 0x63, 0xad, 0x6a, 0xe0, 0x55, 0x72, 0x2e, 0x00, 0x8a, 0x30, 0x0b, 0x80, 0xc4, 0xcc, 0x11, 0x40, 0x6c, 0xe0, 0x47, 0x00, 0xcf, 0x01, 0x5c, 0xb5, 0xb8, 0x06, 0xf0, 0x2f, 0x00, 0xbf, 0xa5, 0xa6, 0xfc, 0x1d, 0x00, 0xef, 0x36, 0x02, 0x6f, 0xb7, 0xd8, 0xb4, 0x58, 0x35, 0x60, 0x67, 0xac, 0xb5, 0x4a, 0x6b, 0x6d, 0x8c, 0x51, 0x00, 0x7a, 0x00, 0x00, 0xc8, 0xda, 0x22, 0x22, 0x20, 0xef, 0x05, 0x00, 0x9b, 0x18, 0x93, 0x30, 0x27, 0x66, 0x1e, 0x1a, 0x89, 0x65, 0xe6, 0xa8, 0x65, 0xfd, 0x17, 0x74, 0xb3, 0xdb, 0x5d, 0x34, 0xf0, 0x77, 0x1b, 0xf0, 0x45, 0xbb, 0xbe, 0x41, 0x44, 0x2b, 0x43, 0xe4, 0xc9, 0x7b, 0x0b, 0x80, 0x8c, 0x31, 0x46, 0x13, 0x69, 0x22, 0x3a, 0x03, 0xef, 0x59, 0x00, 0x00, 0x66, 0x2e, 0x00, 0xc4, 0x18, 0x63, 0x45, 0xc4, 0x99, 0x18, 0x5d, 0x9c, 0x26, 0x5a, 0x10, 0x50, 0x2d, 0x83, 0xf5, 0x66, 0xb7, 0xab, 0xb4, 0x50, 0xdc, 0xc1, 0x2f, 0x00, 0xdc, 0x21, 0xa2, 0x60, 0x88, 0x06, 0xf2, 0x9e, 0x8c, 0x31, 0xe4, 0x86, 0xc1, 0x00, 0xd0, 0xd6, 0xfb, 0x97, 0xd4, 0x2f, 0x09, 0x58, 0xef, 0x4b, 0x8e, 0xd1, 0x80, 0xc8, 0x30, 0x73, 0x57, 0x6b, 0x84, 0x99, 0x98, 0x59, 0xdf, 0xae, 0x19, 0x6a, 0x73, 0x7d, 0xb1, 0x20, 0x70, 0x87, 0x88, 0xd6, 0x2e, 0x04, 0x4f, 0xd6, 0x3a, 0x72, 0x8e, 0x1a, 0xb0, 0x06, 0xa0, 0x5c, 0x08, 0x0a, 0x00, 0x0c, 0x11, 0x96, 0x24, 0x84, 0xb9, 0xb6, 0x5b, 0xd5, 0xc8, 0xe8, 0x16, 0x66, 0x71, 0xaf, 0x98, 0xb9, 0x93, 0x3d, 0x11, 0xb8, 0x68, 0x24, 0xde, 0x6c, 0x69, 0x5f, 0xbb, 0x10, 0x06, 0xb2, 0xd6, 0x6a, 0x22, 0xeb, 0x43, 0xd0, 0x00, 0x74, 0x03, 0x56, 0x86, 0x08, 0x9a, 0x08, 0x73, 0x2d, 0x9e, 0x0d, 0x55, 0x44, 0xc0, 0x39, 0x2b, 0x17, 0x42, 0x6d, 0x20, 0xaf, 0xca, 0x54, 0xe1, 0x99, 0x05, 0x03, 0xc8, 0xd4, 0x80, 0x37, 0x8b, 0x39, 0x77, 0x1d, 0x3c, 0xac, 0xd7, 0xa6, 0xab, 0x36, 0x44, 0xca, 0x0d, 0x03, 0x00, 0x28, 0xb2, 0x76, 0x2e, 0x3c, 0x3f, 0x2f, 0x61, 0x8e, 0x71, 0xfe, 0xb4, 0xb5, 0xd0, 0xc6, 0xd4, 0x22, 0xa2, 0x16, 0x44, 0x6e, 0x4f, 0x53, 0x68, 0x04, 0x32, 0x80, 0x48, 0x6d, 0x99, 0xad, 0x01, 0xac, 0x0d, 0x91, 0xf7, 0xab, 0x95, 0x23, 0xe7, 0xc8, 0x87, 0x60, 0xba, 0x72, 0x3b, 0x0c, 0x20, 0x22, 0xa5, 0x89, 0xd0, 0x48, 0xa0, 0x93, 0x58, 0xde, 0x73, 0xce, 0x20, 0xef, 0x15, 0xc7, 0x08, 0x6d, 0x4c, 0x65, 0xe6, 0x5e, 0x70, 0x27, 0x02, 0xb5, 0x14, 0x21, 0xe6, 0xc0, 0xcc, 0x09, 0xc0, 0xa4, 0x7b, 0x93, 0x21, 0x22, 0x47, 0xde, 0x5b, 0x4d, 0x64, 0xb4, 0xd6, 0x5d, 0x39, 0xec, 0x30, 0xe0, 0xfe, 0xe5, 0x13, 0x45, 0xd6, 0xc2, 0x0d, 0x03, 0xc8, 0x5a, 0xf8, 0x10, 0xe0, 0x57, 0xab, 0x97, 0x23, 0x04, 0x90, 0xb5, 0x20, 0xef, 0x41, 0xd6, 0xaa, 0xfb, 0x97, 0x4f, 0x60, 0x88, 0x94, 0x0b, 0x41, 0x59, 0xef, 0x35, 0x11, 0x19, 0xb2, 0xd6, 0x1a, 0x22, 0xd7, 0x7a, 0xcb, 0x4a, 0xf7, 0x0e, 0x67, 0x88, 0x9c, 0x31, 0xc6, 0x02, 0x30, 0xd6, 0x7b, 0xd5, 0x94, 0xab, 0xfb, 0x97, 0x4f, 0x54, 0x4f, 0x37, 0x59, 0x0b, 0xbf, 0x5a, 0x81, 0x9c, 0x7b, 0x6d, 0xf8, 0xd5, 0xea, 0x44, 0x02, 0x80, 0xfa, 0xe8, 0xb3, 0xcf, 0x3b, 0x09, 0x6d, 0xbd, 0x37, 0x9a, 0x88, 0x8c, 0xb5, 0x8e, 0x88, 0x3c, 0x80, 0x41, 0x03, 0xf0, 0xd4, 0x9a, 0x0c, 0x00, 0x4d, 0x44, 0xba, 0x17, 0xcf, 0xfd, 0xcb, 0x27, 0xa7, 0xdc, 0x75, 0xd5, 0xe4, 0x1c, 0x5c, 0x08, 0xf3, 0xf3, 0xad, 0x70, 0x21, 0x9c, 0x91, 0xe8, 0xc5, 0xf9, 0xd1, 0x67, 0x9f, 0xf7, 0x62, 0xd4, 0x44, 0xa4, 0xc9, 0x5a, 0xd3, 0xb2, 0xe0, 0x34, 0x00, 0x6b, 0x88, 0xac, 0xd2, 0xda, 0x90, 0x73, 0xba, 0xab, 0x7f, 0xf0, 0xc5, 0x97, 0x67, 0xcb, 0xac, 0x2b, 0xd4, 0xc6, 0x9c, 0xc0, 0x6e, 0x87, 0x6d, 0xbf, 0x93, 0x73, 0x7d, 0x99, 0x9e, 0x46, 0xfb, 0x1e, 0xfa, 0xd2, 0x24, 0xef, 0x0d, 0x00, 0xa7, 0x1e, 0x0d, 0xfe, 0x2b, 0x3f, 0x0c, 0x6f, 0xfa, 0xd5, 0x2a, 0xb8, 0x61, 0x70, 0xd6, 0x7b, 0xf3, 0xf0, 0xe9, 0x33, 0xbd, 0x58, 0xd3, 0xdf, 0xc6, 0xe8, 0xab, 0xa1, 0x7c, 0xf2, 0xfe, 0x7b, 0x65, 0x3c, 0x1c, 0x72, 0x1a, 0xc7, 0x31, 0x8d, 0xe3, 0x8b, 0xde, 0x28, 0x4e, 0xeb, 0xf5, 0xe1, 0xd3, 0x67, 0x00, 0x80, 0xdf, 0x84, 0x41, 0xb5, 0xeb, 0x29, 0x5e, 0xf7, 0xfc, 0x3f, 0xbc, 0xa7, 0xfa, 0xf5, 0xe1, 0xd3, 0x67, 0x20, 0x22, 0x28, 0xad, 0x95, 0x21, 0xd2, 0x7d, 0x57, 0xd3, 0x00, 0xd4, 0x4f, 0xff, 0xfe, 0x8f, 0x57, 0x35, 0x0e, 0xfc, 0x72, 0x9c, 0xfe, 0xeb, 0xf3, 0x37, 0x7c, 0xaf, 0xe3, 0x68, 0x61, 0x56, 0x1a, 0xff, 0xbf, 0xa1, 0x00, 0x28, 0xbd, 0x98, 0x1f, 0xfc, 0xf1, 0xbb, 0xdf, 0x79, 0xe5, 0x9b, 0x3d, 0xad, 0xaf, 0x7b, 0xfe, 0xa6, 0xef, 0x35, 0x9c, 0xda, 0x0d, 0xc9, 0x3f, 0xfd, 0x30, 0xbc, 0x41, 0xde, 0x87, 0xb0, 0x5e, 0xdb, 0x45, 0x11, 0xaa, 0x6f, 0x59, 0x71, 0x05, 0x50, 0x3f, 0x79, 0xff, 0x3d, 0x19, 0x0f, 0x87, 0x9c, 0x63, 0x9c, 0x38, 0xc6, 0x03, 0xb5, 0x5d, 0xa9, 0xd6, 0x52, 0x2a, 0x33, 0xc3, 0x7a, 0x8f, 0xc7, 0xf7, 0xee, 0xe2, 0xc1, 0x17, 0x5f, 0xd6, 0x25, 0x89, 0xbf, 0xfd, 0xfc, 0x67, 0xf3, 0x1a, 0x0f, 0x61, 0x5e, 0x8a, 0xab, 0xd5, 0xd9, 0xd7, 0x85, 0x19, 0x9c, 0x12, 0x8a, 0x08, 0xe2, 0x38, 0x82, 0x53, 0xc2, 0xf7, 0x7e, 0xff, 0x87, 0xb3, 0x77, 0x1e, 0xdf, 0xbb, 0xbb, 0xdc, 0x1b, 0xaa, 0x30, 0x17, 0x0d, 0x20, 0x0b, 0xb3, 0x28, 0xad, 0x2b, 0x80, 0x92, 0x63, 0xac, 0x00, 0xea, 0x9f, 0x7e, 0xf0, 0xfd, 0xb3, 0x3f, 0x73, 0x4a, 0xe0, 0x94, 0x90, 0x3b, 0xc8, 0xf1, 0x08, 0x61, 0x3e, 0x45, 0x1a, 0xc7, 0x33, 0x70, 0x4e, 0xe9, 0x4c, 0xfd, 0xe3, 0x7b, 0x77, 0x6b, 0x1a, 0x47, 0xe4, 0x18, 0x4b, 0x61, 0x2e, 0x1c, 0x63, 0xe1, 0x66, 0x10, 0x32, 0x33, 0x0b, 0xc7, 0x28, 0x65, 0x76, 0x33, 0x35, 0x8d, 0x63, 0x15, 0x66, 0xfc, 0xe5, 0x47, 0x1f, 0xd4, 0xdb, 0x0a, 0xd3, 0x38, 0x22, 0xb6, 0x48, 0x2d, 0x0e, 0xfb, 0x3d, 0x72, 0x4a, 0x67, 0xe0, 0x32, 0xef, 0xfb, 0x00, 0x80, 0x85, 0x98, 0x0a, 0xa0, 0x8a, 0x48, 0x01, 0x20, 0x00, 0x58, 0x37, 0x07, 0x1b, 0x01, 0x64, 0x11, 0x11, 0x66, 0x3e, 0x65, 0x81, 0x73, 0xc6, 0x5f, 0x3f, 0xfc, 0xf1, 0x69, 0xa7, 0xeb, 0x24, 0x3a, 0x91, 0xe9, 0x70, 0xc0, 0x74, 0x38, 0x40, 0x72, 0x46, 0xba, 0x05, 0xce, 0x39, 0x03, 0x00, 0xfe, 0xfc, 0xc1, 0x0f, 0xab, 0x30, 0xd7, 0x34, 0x8e, 0x35, 0xc7, 0x58, 0xd2, 0x34, 0x49, 0x2d, 0x25, 0xcb, 0xbc, 0x1b, 0x26, 0xf5, 0x68, 0xf0, 0x97, 0x00, 0x2e, 0x88, 0x68, 0x63, 0x88, 0xd6, 0x7e, 0xb5, 0x72, 0x6e, 0x18, 0xac, 0xf5, 0x5e, 0x77, 0x1f, 0xa0, 0x89, 0xd4, 0x10, 0xc2, 0x69, 0xff, 0x27, 0x6b, 0x5f, 0x6a, 0xb5, 0x5d, 0x31, 0xe7, 0x7c, 0xf2, 0x07, 0xd3, 0x38, 0xd6, 0x3c, 0x4d, 0x48, 0xe3, 0x58, 0xda, 0xf4, 0x4a, 0x9a, 0xa6, 0x18, 0x8f, 0xc7, 0x29, 0x4e, 0xd3, 0x0d, 0x80, 0x2b, 0x6a, 0xbe, 0x3d, 0x30, 0xb3, 0x37, 0x44, 0x56, 0x44, 0xf4, 0xc2, 0xbb, 0x75, 0x27, 0x54, 0xd3, 0x34, 0x29, 0xce, 0x19, 0xba, 0x01, 0x77, 0x85, 0xb7, 0x07, 0xc7, 0x38, 0x93, 0x60, 0xae, 0x65, 0xae, 0x8d, 0x0a, 0xa0, 0xab, 0x67, 0x11, 0xc9, 0x32, 0x5b, 0xf6, 0x09, 0xc0, 0x78, 0x22, 0x00, 0xc0, 0xc5, 0x69, 0xb2, 0x00, 0x4c, 0x2d, 0x45, 0x23, 0x84, 0xde, 0x2c, 0x8a, 0x0b, 0x41, 0x09, 0x33, 0x0c, 0x11, 0xc8, 0x5a, 0x55, 0x98, 0x4f, 0x44, 0x16, 0x3e, 0x6b, 0xbe, 0xce, 0xb6, 0xac, 0xca, 0x7f, 0xc0, 0x4b, 0x8e, 0x51, 0x98, 0x99, 0x45, 0x24, 0x73, 0x8c, 0x89, 0x99, 0xa7, 0x86, 0x7b, 0xa4, 0xe6, 0xd9, 0x87, 0x66, 0x9b, 0x6d, 0x9c, 0x26, 0xe3, 0x01, 0x9d, 0x00, 0x34, 0x12, 0xdd, 0x54, 0xa2, 0x11, 0xa9, 0xdd, 0x17, 0xe2, 0x65, 0xb3, 0xd7, 0xa7, 0xa2, 0x2e, 0x94, 0x0b, 0x33, 0x73, 0x8e, 0x31, 0x73, 0x8c, 0x29, 0x4e, 0xd3, 0xd4, 0x30, 0x0f, 0x00, 0x6e, 0xa8, 0x1d, 0x99, 0xdc, 0xc2, 0xb7, 0xeb, 0xd3, 0x47, 0x00, 0x94, 0x79, 0x5f, 0xef, 0x2e, 0x57, 0x75, 0xa7, 0x24, 0xb3, 0xdd, 0x3a, 0x5b, 0x6a, 0x69, 0x1c, 0x4f, 0x95, 0xde, 0x0a, 0x59, 0xd2, 0x34, 0x49, 0x53, 0x1e, 0xe3, 0x34, 0x1d, 0x1b, 0xf8, 0x0b, 0x00, 0x37, 0x00, 0x9e, 0x13, 0x80, 0xaf, 0x3b, 0xf0, 0xd2, 0x3a, 0x33, 0x73, 0xf5, 0x73, 0x93, 0x72, 0x00, 0x8c, 0x26, 0x32, 0x4b, 0x12, 0xaf, 0xd8, 0xae, 0x6b, 0x9e, 0x8b, 0xaf, 0x00, 0xa8, 0xcc, 0x2c, 0x85, 0x99, 0x39, 0x67, 0x96, 0x9c, 0xe3, 0x42, 0xf9, 0x7e, 0x71, 0x4e, 0xbc, 0xa2, 0xcd, 0x76, 0xbb, 0xbf, 0xd9, 0xed, 0xec, 0xad, 0xc3, 0x66, 0x05, 0xc0, 0x71, 0x9a, 0x56, 0xc4, 0x2c, 0x92, 0xb3, 0x35, 0xd6, 0x52, 0xb1, 0xd6, 0x00, 0xd0, 0xcd, 0x6c, 0x2a, 0xad, 0xe7, 0x5a, 0x2d, 0xa5, 0x9c, 0x7a, 0x7b, 0x61, 0x2e, 0x22, 0x22, 0x00, 0x98, 0x63, 0xcc, 0xed, 0x78, 0x36, 0xf6, 0x94, 0x77, 0x60, 0x00, 0x57, 0x9b, 0xed, 0xf6, 0xda, 0xfc, 0xe4, 0x70, 0xf8, 0x14, 0xc0, 0xbd, 0x85, 0x9a, 0xba, 0x38, 0xb9, 0xd4, 0x52, 0x4a, 0x15, 0xe6, 0x52, 0x4b, 0xa9, 0x65, 0x6e, 0x20, 0x45, 0x98, 0xa5, 0x94, 0x22, 0xc2, 0x5c, 0x85, 0xb9, 0x14, 0x11, 0x29, 0x22, 0x2c, 0x39, 0x4b, 0x8e, 0x31, 0x17, 0x91, 0x94, 0x63, 0x9c, 0x72, 0x4a, 0x53, 0x29, 0xe5, 0xd8, 0xd3, 0xdd, 0x94, 0xf7, 0xc3, 0xe9, 0x55, 0xda, 0xef, 0x7f, 0x6d, 0x1e, 0xcc, 0xc5, 0x74, 0xb9, 0xd9, 0x6e, 0xef, 0xa6, 0xfd, 0xbe, 0x9f, 0x58, 0xfa, 0x55, 0xfa, 0x09, 0xa6, 0x01, 0x4a, 0x4e, 0x49, 0x6a, 0x29, 0x2c, 0x73, 0x6a, 0x59, 0x72, 0xce, 0x2d, 0x92, 0x30, 0xa7, 0x9c, 0xd2, 0x24, 0xcc, 0x53, 0x29, 0xe5, 0xb0, 0x50, 0xfd, 0xbc, 0x81, 0x5e, 0x03, 0xf8, 0x7a, 0xb3, 0xdd, 0x5e, 0xa7, 0xfd, 0xfe, 0x57, 0x00, 0xf0, 0x6f, 0x49, 0xb0, 0xf3, 0xe6, 0x21, 0x46, 0x5c, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_zoomin32[2083] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdc, 0x0b, 0x1b, 0x09, 0x1e, 0x21, 0xce, 0x19, 0x83, 0x75, 0x00, 0x00, 0x07, 0xb0, 0x49, 0x44, 0x41, 0x54, 0x58, 0xc3, 0xbd, 0x96, 0x5b, 0x6c, 0x54, 0xd7, 0x15, 0x86, 0xd7, 0x3e, 0xfb, 0x9c, 0xb9, 0x9c, 0xb9, 0x61, 0x33, 0x76, 0xb0, 0xc1, 0xf8, 0xc2, 0x18, 0x07, 0x97, 0x02, 0x8e, 0x2f, 0x38, 0x84, 0x5b, 0x0a, 0x86, 0x96, 0x87, 0x20, 0xab, 0x85, 0x3c, 0x00, 0x46, 0x4d, 0x25, 0x84, 0x52, 0x81, 0x2a, 0x50, 0xa5, 0xbe, 0xa0, 0x54, 0xed, 0x2b, 0x12, 0x15, 0x2f, 0xa5, 0x12, 0x2f, 0x24, 0x92, 0x85, 0x21, 0x4a, 0x4b, 0x00, 0x0b, 0xd1, 0x46, 0xa9, 0x4d, 0x02, 0xc6, 0xae, 0x83, 0x11, 0x64, 0xac, 0x18, 0xa8, 0xf1, 0x8c, 0xc7, 0xf6, 0x78, 0x66, 0x3c, 0x33, 0x0c, 0x33, 0x73, 0x66, 0xdf, 0x56, 0x1f, 0x62, 0x22, 0xaa, 0xa4, 0xd1, 0xb8, 0x82, 0xfc, 0xd2, 0xd2, 0x39, 0x5b, 0x3a, 0xda, 0xe7, 0xdb, 0x6b, 0xaf, 0xf5, 0xef, 0x0d, 0xf0, 0x3d, 0x6a, 0x6c, 0x6c, 0x04, 0x87, 0xc3, 0xa1, 0x01, 0x80, 0x06, 0x00, 0x64, 0xfe, 0xa9, 0x2d, 0x5b, 0xb6, 0x4c, 0xdb, 0xbd, 0x7b, 0x37, 0xbc, 0x08, 0xe9, 0xcf, 0x0f, 0x4c, 0xd3, 0x84, 0x5c, 0x2e, 0x07, 0xd5, 0xd5, 0xd5, 0x64, 0x62, 0x62, 0x82, 0x32, 0xc6, 0x1a, 0x4f, 0x9e, 0x3c, 0xb9, 0xb7, 0xa1, 0xa1, 0xa1, 0xd9, 0xe3, 0xf1, 0xbc, 0x42, 0x08, 0x91, 0xd9, 0x6c, 0x36, 0x3c, 0x36, 0x36, 0xf6, 0xf9, 0xe1, 0xc3, 0x87, 0xcf, 0x03, 0x40, 0xb4, 0xad, 0xad, 0x4d, 0x0c, 0x0e, 0x0e, 0x82, 0xcb, 0xe5, 0x82, 0x6c, 0x36, 0xbb, 0x60, 0x00, 0xf2, 0xec, 0xc5, 0xeb, 0xf5, 0x82, 0x69, 0x9a, 0x30, 0x33, 0x33, 0x63, 0xd4, 0xd5, 0xd5, 0x35, 0x9e, 0x3a, 0x75, 0xea, 0x4c, 0x49, 0x49, 0x49, 0xfb, 0xe0, 0xe0, 0x60, 0x6e, 0x60, 0x60, 0x60, 0x92, 0x10, 0x42, 0x34, 0x4d, 0xa3, 0xba, 0xae, 0xdb, 0xda, 0xda, 0xda, 0x2a, 0x9a, 0x9a, 0x9a, 0x28, 0xe7, 0xfc, 0xfc, 0xb6, 0x6d, 0xdb, 0x7e, 0xb3, 0x6a, 0xd5, 0xaa, 0xc4, 0xe8, 0xe8, 0xa8, 0xf0, 0xf9, 0x7c, 0x90, 0x4e, 0xa7, 0x17, 0x0e, 0xe0, 0x70, 0x38, 0xc0, 0xb2, 0x2c, 0x00, 0x00, 0xe3, 0xc8, 0x91, 0x23, 0xbf, 0x3c, 0x70, 0xe0, 0xc0, 0x5f, 0x2e, 0x5d, 0xba, 0x34, 0x1d, 0x0c, 0x06, 0xaf, 0x1d, 0x3b, 0x76, 0xcc, 0xd5, 0xd2, 0xd2, 0x12, 0xb0, 0xdb, 0xed, 0x2e, 0x00, 0x20, 0xf9, 0x7c, 0xde, 0x1a, 0x1c, 0x1c, 0x8c, 0xf6, 0xf4, 0xf4, 0xd8, 0xaa, 0xaa, 0xaa, 0x5a, 0x77, 0xec, 0xd8, 0x41, 0xce, 0x9e, 0x3d, 0xbb, 0xe3, 0xfa, 0xf5, 0xeb, 0xb7, 0xc7, 0xc7, 0xc7, 0xf9, 0x73, 0x73, 0x2d, 0x58, 0xb6, 0xa3, 0x47, 0x8f, 0xbe, 0x3b, 0x34, 0x34, 0x84, 0xfb, 0xf6, 0xed, 0xbb, 0x7a, 0xe9, 0xd2, 0xa5, 0x63, 0x9c, 0xf3, 0x73, 0x52, 0xca, 0xcb, 0x42, 0x88, 0x01, 0xc6, 0xd8, 0x97, 0x8c, 0xb1, 0xa0, 0x52, 0x6a, 0x50, 0x4a, 0x79, 0x8d, 0x31, 0xd6, 0x7d, 0xe1, 0xe2, 0xc5, 0x3f, 0x1d, 0x3f, 0x7e, 0x7c, 0x74, 0x60, 0x60, 0x00, 0xf7, 0xef, 0xdf, 0xdf, 0x1e, 0x08, 0x04, 0xf4, 0xff, 0x6b, 0x0b, 0x4a, 0x4b, 0x4b, 0x35, 0xbf, 0xdf, 0xdf, 0xdc, 0xdd, 0xdd, 0x3d, 0x78, 0xee, 0xfd, 0xf7, 0x2f, 0x1f, 0xec, 0x3a, 0xf8, 0xb7, 0x35, 0x6b, 0xd7, 0x2c, 0xa7, 0x94, 0x96, 0x10, 0x42, 0xfc, 0x91, 0xc9, 0x70, 0xfd, 0xd4, 0xd4, 0x74, 0x0d, 0x02, 0x68, 0x4d, 0xeb, 0xd6, 0xdd, 0x35, 0x6c, 0xb6, 0x38, 0x22, 0x26, 0x38, 0xe7, 0xc9, 0xfe, 0x1b, 0x37, 0x52, 0xff, 0x1a, 0x1a, 0x7a, 0xe7, 0x8d, 0x0d, 0x1b, 0x96, 0x6c, 0xd9, 0xb2, 0x65, 0x45, 0x65, 0x65, 0x65, 0x72, 0x6a, 0x6a, 0x0a, 0x8b, 0x05, 0xa0, 0x00, 0x00, 0xf9, 0x7c, 0xde, 0x7e, 0xe6, 0xcc, 0x99, 0x8f, 0x22, 0x91, 0x08, 0x5f, 0xbd, 0x66, 0xcd, 0xa9, 0xf6, 0xd7, 0xdb, 0xbd, 0x54, 0xa3, 0x08, 0x40, 0x08, 0x02, 0x88, 0xc8, 0xe4, 0xa4, 0x73, 0x7c, 0x7c, 0xdc, 0x9d, 0x4e, 0xa7, 0xf9, 0x8a, 0x40, 0x20, 0x48, 0x75, 0x7d, 0x16, 0x11, 0x62, 0x1a, 0x21, 0x73, 0x4b, 0x2a, 0x2a, 0x72, 0x0f, 0x1e, 0x3e, 0x1c, 0xd6, 0x08, 0x79, 0x6b, 0xdb, 0xb6, 0x6d, 0xae, 0xee, 0xee, 0xee, 0x4f, 0x00, 0x40, 0x16, 0x0b, 0xa0, 0x19, 0x86, 0x41, 0xea, 0xea, 0xea, 0xd6, 0xd5, 0xd6, 0xd6, 0x36, 0x47, 0xe3, 0x89, 0x0f, 0xda, 0x5f, 0xdf, 0xe0, 0x00, 0x4d, 0x63, 0x12, 0xd0, 0x92, 0xa8, 0xd2, 0x4a, 0xa9, 0x78, 0x7c, 0x6e, 0x2e, 0xfe, 0xef, 0xf1, 0xf1, 0xcc, 0xdd, 0x91, 0x91, 0xb9, 0x6c, 0x3e, 0xff, 0x25, 0x97, 0x32, 0xc8, 0xa4, 0x1c, 0x67, 0x4a, 0x45, 0x90, 0xd2, 0xf0, 0xc6, 0x2d, 0x5b, 0x1f, 0x47, 0xa6, 0xa7, 0xff, 0x5a, 0x5b, 0x5b, 0xfb, 0x2e, 0x00, 0x38, 0xab, 0xab, 0xab, 0x8b, 0xde, 0x02, 0x8d, 0x73, 0xae, 0x1f, 0x3a, 0x74, 0xe8, 0xed, 0x54, 0x2a, 0x95, 0x6e, 0xdf, 0xb4, 0x69, 0xc2, 0x70, 0x3a, 0x34, 0xae, 0x14, 0x32, 0xa9, 0x04, 0x53, 0x2a, 0x5f, 0x50, 0x2a, 0x33, 0x3b, 0x1b, 0x4b, 0xdf, 0xbc, 0x35, 0x10, 0xfb, 0x62, 0x64, 0x24, 0x99, 0xb5, 0x0a, 0x09, 0x4b, 0xaa, 0x4c, 0x41, 0x08, 0xcb, 0x12, 0x52, 0x32, 0xa5, 0xb4, 0x92, 0xb2, 0x32, 0xb0, 0x7b, 0xbc, 0x9f, 0xda, 0xed, 0x76, 0x7d, 0xcf, 0x9e, 0x3d, 0x6f, 0x4e, 0x4f, 0x4f, 0x6b, 0x0b, 0xf1, 0x01, 0x5a, 0x53, 0x53, 0xd3, 0xf4, 0x24, 0x9b, 0x7d, 0xbc, 0xaa, 0x7e, 0xa5, 0x1d, 0x89, 0x26, 0x3f, 0xbc, 0xf8, 0x61, 0x35, 0xd5, 0x29, 0x12, 0x20, 0x44, 0x29, 0x05, 0xb7, 0x6e, 0x7e, 0x8e, 0xb3, 0xb1, 0x58, 0x5e, 0x29, 0xa5, 0x9d, 0xbf, 0xd0, 0x53, 0x41, 0xa9, 0x5e, 0xaa, 0x94, 0x42, 0x40, 0xc4, 0x45, 0xa5, 0x8b, 0xad, 0xdd, 0xbf, 0xf8, 0x79, 0x64, 0x45, 0x43, 0x83, 0x25, 0x73, 0xd9, 0xf4, 0xca, 0x95, 0x2b, 0x5b, 0x39, 0xe7, 0x57, 0x01, 0x40, 0x15, 0x0d, 0xe0, 0xf5, 0x7a, 0xfd, 0x99, 0x5c, 0x3e, 0xa5, 0xdb, 0xec, 0x26, 0xe8, 0x06, 0xeb, 0xbd, 0x72, 0xb9, 0x4d, 0xa7, 0x54, 0x00, 0x21, 0x10, 0x8b, 0xc7, 0x0a, 0xac, 0xc0, 0x14, 0xd5, 0xa9, 0xa2, 0x40, 0xd5, 0xd5, 0x8f, 0x3f, 0x6e, 0x7a, 0x7e, 0x82, 0x65, 0x55, 0x55, 0x73, 0xbb, 0xdf, 0xde, 0x9b, 0x76, 0xfb, 0x7c, 0x8e, 0x4c, 0xf6, 0x69, 0xc6, 0xe7, 0xf3, 0x95, 0x23, 0x22, 0x05, 0x00, 0x5e, 0x2c, 0x00, 0x11, 0x42, 0x48, 0x6a, 0x18, 0x0e, 0x01, 0xe8, 0xe4, 0x52, 0xea, 0x1a, 0xa5, 0xa0, 0x19, 0x3a, 0x72, 0x26, 0x10, 0x08, 0x05, 0xa7, 0xcb, 0xad, 0xe9, 0x94, 0x22, 0x10, 0x00, 0xce, 0x38, 0x79, 0xbe, 0xc4, 0x1d, 0xa6, 0x69, 0x30, 0xa9, 0xbc, 0x44, 0x37, 0x4c, 0x4a, 0xa9, 0xce, 0x18, 0x93, 0x0b, 0xb5, 0x62, 0x15, 0x8d, 0x46, 0x27, 0xab, 0x6a, 0x6b, 0x7f, 0x5c, 0x10, 0xd2, 0x9d, 0xc9, 0x65, 0xc5, 0xef, 0xfe, 0xf0, 0xc7, 0x07, 0x84, 0x10, 0x14, 0x52, 0x71, 0x85, 0x4a, 0x0e, 0xdd, 0xba, 0x55, 0xf2, 0xe9, 0x3f, 0xfe, 0x5e, 0x26, 0x85, 0x20, 0xbf, 0x7d, 0xef, 0xf7, 0x8f, 0x4c, 0x97, 0x4b, 0x7c, 0xd3, 0x46, 0xba, 0x2e, 0xb2, 0xf9, 0x7c, 0x09, 0x47, 0x74, 0xda, 0x0c, 0xa3, 0xec, 0xd1, 0xa3, 0x47, 0xa1, 0x62, 0xd3, 0x0f, 0x00, 0xa0, 0x13, 0x42, 0xe4, 0xbd, 0x7b, 0xf7, 0x06, 0x1a, 0x1a, 0x1a, 0x76, 0x31, 0x2e, 0x4a, 0x99, 0x90, 0x39, 0x87, 0xd7, 0xc7, 0x00, 0x08, 0xe8, 0x0a, 0x19, 0x02, 0x82, 0xc3, 0xed, 0x01, 0xb7, 0xdb, 0xa3, 0x0b, 0x29, 0x89, 0xd3, 0xeb, 0x53, 0x4e, 0xb7, 0xe7, 0x9b, 0x55, 0x22, 0x00, 0x61, 0x42, 0x78, 0xd3, 0x89, 0x78, 0xd5, 0x22, 0x44, 0xda, 0xdb, 0xdb, 0xfb, 0x19, 0x00, 0x88, 0xa2, 0xbb, 0x00, 0x11, 0xf9, 0xe9, 0xd3, 0xa7, 0x3f, 0xb4, 0x2c, 0x0b, 0x72, 0x73, 0xf1, 0x75, 0x79, 0xce, 0x5c, 0x5c, 0x29, 0x93, 0x2b, 0x69, 0x72, 0x94, 0x1e, 0x8e, 0xca, 0xa3, 0xdb, 0x6c, 0x4e, 0xa7, 0xdb, 0x63, 0x98, 0x6e, 0xb7, 0x21, 0x01, 0xdc, 0x02, 0x95, 0xe7, 0x59, 0x48, 0x54, 0x6e, 0x8b, 0x31, 0x1f, 0xc9, 0xe5, 0xda, 0xc2, 0x93, 0x93, 0x8f, 0xa3, 0xd1, 0x68, 0x70, 0x21, 0x19, 0xd0, 0xe6, 0x3f, 0x9e, 0xbe, 0x7d, 0xfb, 0xf6, 0x79, 0x1b, 0x67, 0x4d, 0xcc, 0x62, 0x4b, 0x0a, 0x52, 0xba, 0xb9, 0x52, 0x6e, 0xa1, 0x94, 0x5b, 0x2a, 0xe5, 0xd1, 0x0c, 0xc3, 0x74, 0xb8, 0x4c, 0xc3, 0xe1, 0x72, 0x19, 0x12, 0xd1, 0x2d, 0x94, 0xf2, 0x3c, 0x0b, 0xc6, 0x85, 0x37, 0x1d, 0x8b, 0xd5, 0x2f, 0x76, 0x99, 0x35, 0xe7, 0xce, 0x9d, 0x3b, 0x49, 0x29, 0x5d, 0xd0, 0x91, 0xf8, 0xac, 0x5f, 0x33, 0x27, 0x4e, 0x9c, 0x78, 0x6f, 0xec, 0xab, 0xaf, 0x9e, 0x38, 0x73, 0x99, 0xcd, 0x92, 0x0b, 0x3f, 0x13, 0xd2, 0x14, 0x0a, 0xdd, 0x5c, 0xa1, 0x0b, 0x09, 0x71, 0x12, 0x8d, 0xda, 0x35, 0x8d, 0xda, 0x05, 0x82, 0x8b, 0x2b, 0x74, 0x09, 0x85, 0x26, 0x13, 0xd2, 0x65, 0xe5, 0xb2, 0x4b, 0x3d, 0xcc, 0xda, 0xd8, 0x7b, 0xed, 0x5a, 0x7f, 0x6f, 0x6f, 0xef, 0x47, 0x84, 0x10, 0x0b, 0x00, 0x80, 0x52, 0xbd, 0x78, 0x2b, 0x06, 0x00, 0x34, 0x0c, 0x23, 0x3f, 0x3c, 0x3c, 0x7c, 0xb3, 0xa1, 0xbe, 0xfe, 0x60, 0x60, 0x69, 0xc5, 0x72, 0xa9, 0x69, 0x9c, 0x21, 0x48, 0x05, 0xa0, 0xfb, 0x97, 0x2c, 0x21, 0x4d, 0xeb, 0xd7, 0xf3, 0xb5, 0xeb, 0xdb, 0x98, 0x04, 0xa2, 0x29, 0x54, 0x06, 0x20, 0x38, 0x45, 0x6a, 0xae, 0xda, 0xf9, 0xf4, 0x49, 0x73, 0x6c, 0x76, 0x96, 0xd4, 0xd5, 0xd5, 0x39, 0x87, 0x87, 0xbf, 0x08, 0x5a, 0x56, 0x41, 0x21, 0xaa, 0x94, 0x10, 0x5c, 0x51, 0x5d, 0x07, 0x54, 0xaa, 0x28, 0x00, 0x50, 0x4a, 0xf1, 0x5c, 0x2e, 0x17, 0xeb, 0xeb, 0xeb, 0xbb, 0xee, 0xf3, 0x78, 0xb6, 0x57, 0x97, 0xf9, 0x5f, 0x2d, 0xf3, 0xb8, 0x17, 0x4b, 0xc1, 0xed, 0x76, 0xbb, 0x5d, 0xe7, 0x52, 0x19, 0xa8, 0x94, 0xdd, 0xd4, 0xa9, 0xd7, 0x8a, 0xc7, 0x2b, 0x9d, 0xb9, 0xcc, 0x4a, 0x99, 0x4a, 0x56, 0x76, 0x77, 0x77, 0xff, 0x73, 0xf3, 0xe6, 0xcd, 0xde, 0x89, 0x89, 0x90, 0x3f, 0x99, 0xca, 0xec, 0x71, 0xbb, 0x3d, 0xbf, 0x8e, 0x25, 0x62, 0x37, 0x50, 0x61, 0x58, 0x08, 0xae, 0x74, 0x5d, 0x07, 0xf5, 0x3d, 0x10, 0xe4, 0x5b, 0x44, 0x94, 0x3a, 0xa4, 0x94, 0xe5, 0x1d, 0x1d, 0x1d, 0xbf, 0xda, 0xb4, 0x69, 0xd3, 0x3b, 0x6b, 0xd7, 0xac, 0x59, 0xe6, 0xf7, 0xfb, 0xc1, 0xe3, 0xf3, 0x81, 0x52, 0x0a, 0x92, 0x89, 0x04, 0x3c, 0xc9, 0x64, 0xe0, 0xce, 0x9d, 0x3b, 0x23, 0x3d, 0x3d, 0x3d, 0xa7, 0x47, 0x47, 0x47, 0xfb, 0x97, 0x2e, 0x5d, 0xda, 0x61, 0x73, 0x98, 0x7f, 0xae, 0xa8, 0xa8, 0x84, 0xd6, 0xd6, 0x16, 0x7c, 0xf4, 0xf0, 0x11, 0xf9, 0xec, 0x46, 0x5f, 0x47, 0x2e, 0x9f, 0xeb, 0x63, 0x85, 0x02, 0xd7, 0x75, 0x1d, 0x84, 0x10, 0xc5, 0x01, 0x3c, 0x97, 0x19, 0x17, 0x00, 0xf8, 0x9c, 0x4e, 0x67, 0x7d, 0x20, 0x10, 0x68, 0xb6, 0xdb, 0xed, 0xe5, 0x52, 0x4a, 0x51, 0x28, 0x14, 0x26, 0x83, 0xc1, 0xe0, 0x6d, 0x00, 0x98, 0x22, 0x84, 0xa4, 0x10, 0x91, 0xe9, 0x86, 0xad, 0xbd, 0xa5, 0xa5, 0xf5, 0x06, 0x63, 0x0c, 0x4b, 0x17, 0xfb, 0xc9, 0x9b, 0x5b, 0xb7, 0xe2, 0xe8, 0x68, 0x90, 0xf4, 0x5e, 0xbd, 0xd2, 0x91, 0xcd, 0x65, 0xfb, 0x0a, 0x96, 0xf5, 0x3f, 0x21, 0x48, 0x11, 0xf7, 0x05, 0xfd, 0xb9, 0xc0, 0xf9, 0x1e, 0x17, 0xf3, 0x47, 0x2e, 0x02, 0x00, 0x10, 0x42, 0xbc, 0xa6, 0xd3, 0x7c, 0xeb, 0x27, 0xdb, 0xb7, 0x7f, 0x90, 0x48, 0xcc, 0x61, 0x79, 0xf9, 0x2b, 0x64, 0xd7, 0xae, 0x9f, 0xe1, 0x9d, 0x91, 0x11, 0x72, 0xe1, 0xfc, 0xf9, 0x8e, 0x6c, 0xf6, 0x69, 0x9f, 0x65, 0xe5, 0xbf, 0x13, 0x82, 0x16, 0x51, 0xa8, 0x6a, 0xfe, 0x87, 0x6c, 0x3e, 0xc4, 0x77, 0xf4, 0x39, 0x13, 0x42, 0x84, 0x23, 0x53, 0x91, 0x60, 0x4b, 0x4b, 0x6b, 0x67, 0x22, 0x11, 0xc7, 0x64, 0x32, 0x45, 0x7e, 0xba, 0x73, 0x27, 0x96, 0x95, 0x97, 0x77, 0xdd, 0xbf, 0x7f, 0xaf, 0x1f, 0x90, 0x84, 0x19, 0x2b, 0x7c, 0xab, 0x26, 0x28, 0xbc, 0x38, 0x15, 0x38, 0xe7, 0xa1, 0x89, 0x89, 0x89, 0xe0, 0x6b, 0xaf, 0x35, 0x77, 0x46, 0xa3, 0xb3, 0x98, 0x4c, 0x26, 0xc9, 0xce, 0x9d, 0x1d, 0x58, 0x56, 0x56, 0xde, 0x75, 0xf7, 0xee, 0x48, 0x3f, 0x00, 0x86, 0x19, 0x63, 0xff, 0x05, 0xf1, 0x22, 0x01, 0xe6, 0x21, 0x58, 0x28, 0x14, 0x9a, 0x08, 0x36, 0x36, 0x36, 0x76, 0xce, 0x44, 0x67, 0x30, 0x9e, 0x98, 0x23, 0x1b, 0x37, 0xbe, 0x81, 0x25, 0x25, 0x25, 0x5d, 0xf7, 0xef, 0xdf, 0xef, 0x47, 0xc0, 0x30, 0xe7, 0x5c, 0x51, 0x4a, 0x01, 0x11, 0x5f, 0x38, 0x00, 0x00, 0x40, 0x81, 0x31, 0x16, 0x9a, 0x8a, 0x44, 0x82, 0x35, 0x35, 0xb5, 0x9d, 0xd3, 0x33, 0x33, 0x98, 0x48, 0xcc, 0x91, 0x96, 0x96, 0x66, 0x74, 0xb9, 0xdc, 0x5d, 0x0f, 0xc6, 0xc6, 0xfa, 0x95, 0xc2, 0xb0, 0x10, 0x42, 0x51, 0x4a, 0x5f, 0x0a, 0xc0, 0x3c, 0x44, 0x21, 0x34, 0x1b, 0x9b, 0x0d, 0x96, 0x97, 0x97, 0x77, 0x46, 0x67, 0xa3, 0x98, 0x4c, 0xa5, 0xc9, 0xea, 0xd5, 0xab, 0xd1, 0x66, 0x77, 0x74, 0x85, 0x42, 0xa1, 0x7e, 0x54, 0xea, 0x6b, 0x08, 0x78, 0x79, 0x2a, 0x14, 0xac, 0x42, 0x28, 0x95, 0x4c, 0x06, 0x3d, 0x1e, 0x6f, 0x67, 0x3c, 0x16, 0xc7, 0x4c, 0xe6, 0x09, 0x09, 0xac, 0x6c, 0x40, 0x9d, 0xea, 0x5d, 0xb3, 0x33, 0x33, 0x9f, 0x20, 0x60, 0xf8, 0x65, 0x02, 0x7c, 0x0d, 0x51, 0x28, 0x84, 0x9e, 0x3e, 0x7d, 0x1a, 0x74, 0x38, 0x9d, 0x9d, 0xc9, 0x64, 0x12, 0x73, 0xb9, 0x1c, 0x59, 0x5e, 0x5d, 0x03, 0x52, 0x29, 0x12, 0x0e, 0x4d, 0x5c, 0x81, 0x1f, 0x40, 0x04, 0x00, 0x4a, 0x5c, 0x2e, 0x57, 0xd7, 0xf2, 0xea, 0x5a, 0x5c, 0x11, 0x68, 0xc0, 0xf6, 0x0d, 0x9b, 0xc2, 0x1a, 0x21, 0xaf, 0x12, 0x42, 0x28, 0xfc, 0x40, 0x22, 0x00, 0xb0, 0xc8, 0x34, 0xcd, 0xbd, 0x7e, 0x7f, 0x79, 0x37, 0x00, 0xfc, 0x48, 0xd3, 0x34, 0x47, 0x31, 0x4e, 0xf8, 0xa2, 0x21, 0xec, 0xf3, 0x8e, 0x6a, 0x3d, 0xbb, 0x35, 0xfd, 0x07, 0xda, 0xd9, 0x3b, 0x8d, 0x54, 0x51, 0x80, 0x16, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; const unsigned char icon_zoomout32[1954] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4, 0x00, 0x00, 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdc, 0x0b, 0x1b, 0x09, 0x1d, 0x38, 0x81, 0x5f, 0x78, 0x76, 0x00, 0x00, 0x07, 0x2f, 0x49, 0x44, 0x41, 0x54, 0x58, 0xc3, 0xbd, 0x96, 0x5d, 0x6c, 0x54, 0xc7, 0x15, 0xc7, 0xcf, 0xb9, 0x73, 0xf7, 0xdb, 0xbb, 0x8b, 0xed, 0xf5, 0x06, 0x9b, 0x8f, 0xb5, 0x8d, 0xed, 0x0d, 0x2e, 0x75, 0x42, 0xbc, 0xb6, 0x1c, 0xbe, 0x5b, 0x63, 0x68, 0x91, 0x02, 0xb2, 0xa2, 0x42, 0x25, 0xc0, 0xa8, 0xe9, 0x0b, 0x4a, 0x05, 0x6a, 0xe1, 0x81, 0x97, 0x4a, 0xe9, 0x4b, 0xd5, 0x17, 0x24, 0xaa, 0xbe, 0x94, 0x4a, 0x3c, 0x40, 0x22, 0x59, 0x38, 0x44, 0x6d, 0xac, 0x00, 0x8a, 0x2c, 0x45, 0xaa, 0x4d, 0x52, 0xd9, 0x0b, 0x2e, 0x20, 0xd0, 0x5a, 0x35, 0x20, 0x67, 0x77, 0x59, 0x63, 0x7b, 0x77, 0xbd, 0x6b, 0x7b, 0xbf, 0xee, 0xdc, 0x99, 0x39, 0x7d, 0xc0, 0xa9, 0xa8, 0xf8, 0xd0, 0x12, 0x41, 0xfe, 0xd2, 0xd1, 0xdc, 0xfb, 0x70, 0x67, 0x7e, 0xf7, 0xcc, 0x99, 0xff, 0x19, 0x80, 0x17, 0xa8, 0xb5, 0xb5, 0x15, 0xec, 0x76, 0xbb, 0x06, 0x00, 0x1a, 0x00, 0xe0, 0xf2, 0xa8, 0xad, 0x5e, 0xbd, 0x5a, 0xdb, 0xb7, 0x6f, 0x1f, 0xbc, 0x0a, 0xe9, 0x4f, 0xbe, 0x38, 0x9d, 0x4e, 0x28, 0x14, 0x0a, 0x10, 0x08, 0x04, 0x30, 0x1a, 0x8d, 0x32, 0xce, 0x79, 0xeb, 0xe9, 0xd3, 0xa7, 0xf7, 0x07, 0x83, 0xc1, 0x76, 0xb7, 0xdb, 0xfd, 0x06, 0x22, 0xca, 0x7c, 0x3e, 0x1f, 0x9f, 0x9c, 0x9c, 0xfc, 0xe6, 0xe8, 0xd1, 0xa3, 0x17, 0x01, 0x60, 0xb6, 0xb3, 0xb3, 0x53, 0x84, 0xc3, 0x61, 0x70, 0xb9, 0x5c, 0x90, 0xcf, 0xe7, 0x5f, 0x1a, 0x00, 0xbf, 0x7b, 0xf0, 0x78, 0x3c, 0xe0, 0x74, 0x3a, 0x61, 0x66, 0x66, 0xc6, 0xd2, 0xd8, 0xd8, 0xd8, 0x7a, 0xe6, 0xcc, 0x99, 0xb3, 0x95, 0x95, 0x95, 0x5d, 0xe1, 0x70, 0xb8, 0x30, 0x3a, 0x3a, 0xfa, 0x10, 0x11, 0x51, 0xd3, 0x34, 0xa6, 0xeb, 0xba, 0xb5, 0xb3, 0xb3, 0xb3, 0x76, 0xe3, 0xc6, 0x8d, 0xcc, 0x34, 0xcd, 0x8b, 0xdd, 0xdd, 0xdd, 0xbf, 0x5d, 0xbf, 0x7e, 0x7d, 0x7a, 0x62, 0x62, 0x42, 0x78, 0xbd, 0x5e, 0x58, 0x58, 0x58, 0x78, 0x79, 0x00, 0xbb, 0xdd, 0x0e, 0xa5, 0x52, 0x09, 0x00, 0xc0, 0x72, 0xec, 0xd8, 0xb1, 0x5f, 0x1d, 0x3e, 0x7c, 0xf8, 0x6f, 0x83, 0x83, 0x83, 0x8f, 0x22, 0x91, 0xc8, 0x97, 0x27, 0x4e, 0x9c, 0x70, 0x85, 0x42, 0xa1, 0x26, 0x9b, 0xcd, 0xe6, 0x02, 0x00, 0x2c, 0x16, 0x8b, 0xa5, 0x70, 0x38, 0x3c, 0x3b, 0x30, 0x30, 0x60, 0x5d, 0xb3, 0x66, 0x4d, 0xc7, 0xae, 0x5d, 0xbb, 0xf0, 0xdc, 0xb9, 0x73, 0xbb, 0x86, 0x86, 0x86, 0xc6, 0xa6, 0xa6, 0xa6, 0xcc, 0x27, 0xe6, 0x7a, 0x69, 0x59, 0x8f, 0x1f, 0x3f, 0xfe, 0xe1, 0xf5, 0xeb, 0xd7, 0xe9, 0xe0, 0xc1, 0x83, 0x57, 0x06, 0x07, 0x07, 0x4f, 0x98, 0xa6, 0x79, 0x41, 0x4a, 0xf9, 0x85, 0x10, 0x62, 0x94, 0x73, 0x1e, 0xe1, 0x9c, 0x4f, 0x28, 0xa5, 0xc2, 0x52, 0xca, 0x2f, 0x39, 0xe7, 0xfd, 0x9f, 0x5e, 0xba, 0xf4, 0xe7, 0x93, 0x27, 0x4f, 0x4e, 0x8c, 0x8e, 0x8e, 0xd2, 0xa1, 0x43, 0x87, 0xba, 0x9a, 0x9a, 0x9a, 0xf4, 0xef, 0xb5, 0x05, 0x55, 0x55, 0x55, 0x9a, 0xcf, 0xe7, 0x6b, 0xef, 0xef, 0xef, 0x0f, 0x5f, 0xf8, 0xf8, 0xe3, 0x2f, 0x8e, 0xf4, 0x1d, 0xf9, 0xbc, 0xed, 0xad, 0xb6, 0xb5, 0x8c, 0xb1, 0x4a, 0x44, 0xf4, 0x29, 0x29, 0xab, 0x51, 0x43, 0x3b, 0x10, 0x20, 0x00, 0x18, 0xa8, 0x69, 0x19, 0x22, 0x4a, 0x9b, 0xa6, 0x99, 0x19, 0xb9, 0x76, 0x2d, 0x7b, 0xe3, 0xfa, 0xf5, 0x0f, 0x36, 0x6f, 0xda, 0xb4, 0x72, 0xfb, 0xf6, 0xed, 0xeb, 0xea, 0xea, 0xea, 0x32, 0xd3, 0xd3, 0xd3, 0x54, 0x2e, 0x00, 0x03, 0x00, 0x28, 0x16, 0x8b, 0xb6, 0xb3, 0x67, 0xcf, 0xfe, 0x3d, 0x91, 0x48, 0x98, 0x1b, 0xda, 0xda, 0xce, 0x74, 0xbd, 0xdb, 0xe5, 0x61, 0x1a, 0x23, 0x00, 0x44, 0x02, 0x10, 0x44, 0xc4, 0x11, 0xb5, 0x25, 0x40, 0x5c, 0x22, 0x82, 0x05, 0x42, 0x48, 0x11, 0x41, 0x52, 0x43, 0x9c, 0x5f, 0x59, 0x5b, 0x5b, 0xb8, 0x77, 0xff, 0xfe, 0xb8, 0x86, 0xb8, 0xb7, 0xbb, 0xbb, 0xdb, 0xd5, 0xdf, 0xdf, 0xff, 0x15, 0x00, 0xc8, 0x72, 0x01, 0x34, 0x8b, 0xc5, 0x82, 0x8d, 0x8d, 0x8d, 0x6f, 0x37, 0x34, 0x34, 0xb4, 0xcf, 0xa6, 0xd2, 0x9f, 0x74, 0xbd, 0xbb, 0xc9, 0x0e, 0x9a, 0xc6, 0x25, 0x50, 0x49, 0x92, 0x5a, 0x50, 0x4a, 0xa5, 0x84, 0x94, 0x33, 0x8a, 0x28, 0x21, 0x94, 0xfa, 0x8f, 0x21, 0xc5, 0x1d, 0x53, 0xca, 0x08, 0x97, 0x72, 0x8a, 0x2b, 0x95, 0x20, 0xc6, 0xe2, 0x5b, 0xb6, 0xef, 0xf8, 0x36, 0xf1, 0xe8, 0xd1, 0x3f, 0x1a, 0x1a, 0x1a, 0x3e, 0x04, 0x00, 0x47, 0x20, 0x10, 0x28, 0x7b, 0x0b, 0x98, 0x52, 0xca, 0x72, 0xea, 0xd4, 0xa9, 0xdf, 0x55, 0x55, 0x55, 0xad, 0x0f, 0x34, 0xb7, 0x5c, 0xaa, 0x5b, 0xbd, 0x0a, 0x08, 0x00, 0x25, 0x01, 0x28, 0x20, 0x29, 0x89, 0x84, 0x10, 0xd2, 0x30, 0x09, 0xe2, 0xa6, 0x54, 0x19, 0x53, 0xc8, 0xa2, 0x44, 0x2c, 0x0a, 0x29, 0xb9, 0x50, 0x24, 0x05, 0x11, 0x59, 0x6c, 0x36, 0x98, 0x8a, 0x46, 0xe7, 0x57, 0xfa, 0xaa, 0xdf, 0xcb, 0xe5, 0x72, 0x63, 0x37, 0x6e, 0xdc, 0x98, 0x94, 0x52, 0x52, 0xb9, 0x3e, 0xc0, 0xea, 0xeb, 0xeb, 0x37, 0x2e, 0xe6, 0xf3, 0xdf, 0xae, 0x6f, 0x6e, 0xb1, 0x11, 0x6a, 0xf2, 0xb3, 0x4b, 0x9f, 0x05, 0x98, 0xce, 0x08, 0x01, 0x51, 0x29, 0x05, 0xa9, 0x74, 0x3a, 0x47, 0x00, 0xb5, 0x08, 0x00, 0x44, 0x84, 0x04, 0xa0, 0x94, 0x52, 0x04, 0x44, 0x54, 0x59, 0x5d, 0x5d, 0xda, 0xfb, 0xfe, 0xfb, 0x89, 0x75, 0xc1, 0x60, 0x49, 0x16, 0xf2, 0x0b, 0x2d, 0x2d, 0x2d, 0x1d, 0xa6, 0x69, 0x5e, 0x01, 0x00, 0x55, 0x36, 0x80, 0xc7, 0xe3, 0xf1, 0x2d, 0x15, 0x8a, 0x59, 0xdd, 0x6a, 0x73, 0x32, 0xab, 0xd5, 0xbc, 0x3c, 0xf8, 0x79, 0xa7, 0xd5, 0x6a, 0x15, 0x80, 0x08, 0xc9, 0x54, 0xd2, 0x30, 0x0c, 0xfe, 0xdc, 0xc9, 0x02, 0xf5, 0xf5, 0x99, 0xf7, 0xf6, 0xef, 0x5f, 0xa8, 0xf0, 0x7a, 0xed, 0x4b, 0xf9, 0xdc, 0x92, 0xd7, 0xeb, 0xf5, 0x13, 0x11, 0x03, 0x00, 0xb3, 0x5c, 0x00, 0x14, 0x42, 0x48, 0x66, 0xb1, 0xd8, 0x05, 0x90, 0xc3, 0x94, 0x64, 0xd1, 0x74, 0x9d, 0x34, 0x5d, 0x27, 0x6e, 0x9a, 0x04, 0xa8, 0x81, 0xdd, 0xee, 0xd0, 0x9e, 0x6d, 0x5f, 0x00, 0x76, 0xa7, 0x4b, 0x37, 0x85, 0xf4, 0xa0, 0x6e, 0x71, 0x32, 0xc6, 0x74, 0xce, 0xb9, 0x7c, 0x59, 0x2b, 0x56, 0xb3, 0xb3, 0xb3, 0x0f, 0xd7, 0x34, 0x34, 0xfc, 0xd8, 0x10, 0xb2, 0x22, 0x9b, 0x5b, 0x14, 0xbf, 0xff, 0xe3, 0x9f, 0xa6, 0x10, 0x91, 0x14, 0x10, 0x57, 0x8a, 0x9e, 0xfa, 0x7b, 0xa5, 0xd4, 0xff, 0x10, 0x98, 0xae, 0x9b, 0xf9, 0x52, 0x69, 0x85, 0x49, 0xe4, 0xb4, 0x5a, 0x2c, 0x35, 0x0f, 0x1e, 0x3c, 0x88, 0x95, 0x9b, 0x7e, 0x00, 0x00, 0x1d, 0x11, 0xe5, 0x9d, 0x3b, 0x77, 0x46, 0x83, 0xc1, 0xe0, 0x1e, 0x6e, 0x8a, 0x2a, 0x2e, 0x64, 0xc1, 0xea, 0x76, 0x17, 0x01, 0x10, 0xa4, 0x22, 0x4e, 0xf0, 0xe2, 0x5a, 0x22, 0x00, 0xe0, 0x42, 0x78, 0x17, 0xd2, 0xa9, 0x35, 0x2b, 0x88, 0xd8, 0xd5, 0xab, 0x57, 0xbf, 0x06, 0x00, 0xf1, 0x32, 0x46, 0xa4, 0x01, 0x40, 0x70, 0x68, 0x68, 0x28, 0x62, 0xad, 0xaa, 0x1e, 0x77, 0xd7, 0xd5, 0xdd, 0xd6, 0x99, 0x4e, 0x00, 0x00, 0x92, 0xa8, 0x9c, 0x74, 0x12, 0xe7, 0x9c, 0x65, 0xee, 0xdf, 0xdb, 0xb9, 0x98, 0x9c, 0x83, 0x03, 0x07, 0x0e, 0x74, 0x00, 0x40, 0xaa, 0x6c, 0x1f, 0x58, 0x4e, 0xd7, 0xa3, 0xb1, 0xb1, 0xb1, 0x8b, 0x56, 0x93, 0x6f, 0xe4, 0x25, 0xbe, 0xd2, 0x90, 0xb2, 0xc2, 0x54, 0xaa, 0x42, 0x3c, 0x0e, 0xf7, 0x8b, 0x82, 0x9b, 0xc2, 0xb3, 0x90, 0x4c, 0x36, 0x57, 0xbb, 0x9c, 0xf5, 0x17, 0x2e, 0x5c, 0x38, 0xcd, 0x18, 0xcb, 0x7f, 0x9f, 0x6e, 0xc8, 0x00, 0x60, 0xdd, 0xf9, 0xf3, 0xe7, 0xc7, 0xde, 0x0e, 0x85, 0xf4, 0xa2, 0x7b, 0xc5, 0x18, 0x69, 0x5a, 0x01, 0x10, 0x89, 0x9e, 0xff, 0x21, 0x29, 0xa5, 0x50, 0x14, 0x0b, 0x2b, 0xac, 0xf3, 0xa9, 0xcd, 0x43, 0x43, 0x43, 0xdf, 0xfc, 0xe1, 0xa3, 0x8f, 0x7e, 0xa9, 0xeb, 0xfa, 0x8c, 0x10, 0x82, 0x18, 0xd3, 0x41, 0x4a, 0x51, 0x9e, 0x15, 0x03, 0x00, 0x59, 0x2c, 0x96, 0xe2, 0xf8, 0xf8, 0xf8, 0xbf, 0x82, 0xcd, 0xcd, 0x47, 0x9a, 0x56, 0xd5, 0xae, 0x95, 0x9a, 0x66, 0x72, 0x02, 0xa9, 0x00, 0x74, 0x45, 0x64, 0x21, 0x00, 0x9d, 0x00, 0x2c, 0x8a, 0xc8, 0xaa, 0x48, 0x59, 0x80, 0xc0, 0x21, 0xb2, 0xf3, 0x01, 0x47, 0x6e, 0xb1, 0x3d, 0x39, 0x37, 0x87, 0x8d, 0x8d, 0x8d, 0x8e, 0xf1, 0xf1, 0x7f, 0x47, 0x4a, 0x25, 0x43, 0x11, 0xa9, 0xac, 0x10, 0xa6, 0x62, 0xba, 0x0e, 0xa4, 0x54, 0x59, 0x00, 0xa0, 0x94, 0x32, 0x0b, 0x85, 0x42, 0x72, 0x78, 0x78, 0x78, 0xc8, 0xeb, 0x76, 0xef, 0x0c, 0xd4, 0xf8, 0xde, 0xac, 0x71, 0x57, 0x54, 0x4b, 0x61, 0xda, 0x1c, 0x0e, 0x87, 0x0e, 0x88, 0x36, 0x5d, 0xd3, 0x1c, 0x4e, 0x9d, 0x79, 0x4a, 0xa9, 0x54, 0x9d, 0xa3, 0xb0, 0xd4, 0x22, 0xb3, 0x99, 0xba, 0xfe, 0xfe, 0xfe, 0x7f, 0x6e, 0xdb, 0xb6, 0xcd, 0x13, 0x8d, 0xc6, 0x7c, 0x99, 0xec, 0xd2, 0x2f, 0x2a, 0x2a, 0xdc, 0xbf, 0x49, 0xa6, 0x93, 0xd7, 0x48, 0x51, 0x5c, 0x08, 0x53, 0xe9, 0xba, 0x0e, 0xea, 0x05, 0x10, 0xf8, 0x14, 0x11, 0x63, 0x76, 0x29, 0xa5, 0xbf, 0xa7, 0xa7, 0xe7, 0xd7, 0x5b, 0xb7, 0x6e, 0xfd, 0xe0, 0xad, 0xb6, 0xb6, 0xd5, 0x3e, 0x9f, 0x0f, 0xdc, 0x5e, 0x2f, 0x28, 0xa5, 0x20, 0x93, 0x4e, 0xc3, 0xe2, 0xd2, 0x12, 0xdc, 0xbc, 0x79, 0xf3, 0xd6, 0xc0, 0xc0, 0xc0, 0x5f, 0x26, 0x26, 0x26, 0x46, 0x56, 0xad, 0x5a, 0xd5, 0x63, 0xb5, 0x3b, 0xff, 0x5a, 0x5b, 0x5b, 0x07, 0x1d, 0x1d, 0x21, 0x7a, 0x70, 0xff, 0x01, 0x7e, 0x7d, 0x6d, 0xb8, 0xa7, 0x50, 0x2c, 0x0c, 0x73, 0xc3, 0x30, 0x75, 0x5d, 0x07, 0x21, 0x44, 0x79, 0x00, 0x4f, 0x64, 0xc6, 0x05, 0x00, 0x5e, 0x87, 0xc3, 0xd1, 0xdc, 0xd4, 0xd4, 0xd4, 0x6e, 0xb3, 0xd9, 0xfc, 0x52, 0x4a, 0x61, 0x18, 0xc6, 0xc3, 0x48, 0x24, 0x32, 0x06, 0x00, 0xd3, 0x88, 0x98, 0x25, 0x22, 0xae, 0x5b, 0xac, 0x5d, 0xa1, 0x50, 0xc7, 0x35, 0xce, 0x39, 0x55, 0x55, 0xfb, 0xf0, 0x27, 0x3b, 0x76, 0xd0, 0xc4, 0x44, 0x04, 0xaf, 0x5e, 0xb9, 0xdc, 0x93, 0x2f, 0xe4, 0x87, 0x8d, 0x52, 0xe9, 0xb9, 0x10, 0x58, 0x46, 0x91, 0xea, 0x4f, 0x04, 0x2d, 0x9f, 0x71, 0xb1, 0xdc, 0x72, 0x09, 0x00, 0x00, 0x11, 0x3d, 0x4e, 0x87, 0x73, 0xef, 0x4f, 0x77, 0xee, 0xfc, 0x24, 0x9d, 0x9e, 0x27, 0xbf, 0xff, 0x0d, 0xdc, 0xb3, 0xe7, 0xe7, 0x74, 0xf3, 0xd6, 0x2d, 0xfc, 0xf4, 0xe2, 0xc5, 0x9e, 0x7c, 0x3e, 0x37, 0x5c, 0x2a, 0x15, 0x9f, 0x09, 0xc1, 0xca, 0x38, 0x29, 0x6a, 0x79, 0x41, 0xbe, 0x1c, 0xe2, 0x19, 0x4e, 0xc7, 0x85, 0x10, 0xf1, 0xc4, 0x74, 0x22, 0x12, 0x0a, 0x75, 0xf4, 0xa6, 0xd3, 0x29, 0xca, 0x64, 0xb2, 0xf8, 0xb3, 0xdd, 0xbb, 0xa9, 0xc6, 0xef, 0xef, 0xbb, 0x7b, 0xf7, 0xce, 0x08, 0x10, 0xc6, 0x39, 0x37, 0x9e, 0xaa, 0x09, 0x06, 0xaf, 0x4e, 0x86, 0x69, 0x9a, 0xb1, 0x68, 0x34, 0x1a, 0x79, 0xe7, 0x9d, 0xf6, 0xde, 0xd9, 0xd9, 0x39, 0xca, 0x64, 0x32, 0xb8, 0x7b, 0x77, 0x0f, 0xd5, 0xd4, 0xf8, 0xfb, 0x6e, 0xdf, 0xbe, 0x35, 0x02, 0x40, 0x71, 0xce, 0xf9, 0xff, 0x41, 0xbc, 0x4a, 0x80, 0x65, 0x08, 0x1e, 0x8b, 0xc5, 0xa2, 0x91, 0xd6, 0xd6, 0xd6, 0xde, 0x99, 0xd9, 0x19, 0x4a, 0xa5, 0xe7, 0x71, 0xcb, 0x96, 0xcd, 0x54, 0x59, 0x59, 0xd9, 0x77, 0xf7, 0xee, 0xdd, 0x11, 0x02, 0x8a, 0x9b, 0xa6, 0xa9, 0x18, 0x63, 0x40, 0x44, 0xaf, 0x1c, 0x00, 0x00, 0xc0, 0xe0, 0x9c, 0xc7, 0xa6, 0x13, 0x89, 0x48, 0x7d, 0x7d, 0x43, 0xef, 0xa3, 0x99, 0x19, 0x4a, 0xa7, 0xe7, 0x31, 0x14, 0x6a, 0x27, 0x97, 0xab, 0xa2, 0xef, 0xde, 0xe4, 0xe4, 0x88, 0x52, 0x14, 0x17, 0x42, 0x28, 0xc6, 0xd8, 0x6b, 0x01, 0x58, 0x86, 0x30, 0x62, 0x73, 0xc9, 0xb9, 0x88, 0xdf, 0xef, 0xef, 0x9d, 0x9d, 0x9b, 0xa5, 0x4c, 0x76, 0x01, 0x37, 0x6c, 0xd8, 0x40, 0x56, 0x9b, 0xbd, 0x2f, 0x16, 0x8b, 0x8d, 0x90, 0x52, 0x8f, 0x21, 0xe0, 0xf5, 0xc9, 0x30, 0x4a, 0x46, 0x2c, 0x9b, 0xc9, 0x44, 0xdc, 0x6e, 0x4f, 0x6f, 0x2a, 0x99, 0xa2, 0xa5, 0xa5, 0x45, 0x6c, 0x6a, 0x09, 0x92, 0xce, 0xf4, 0xbe, 0xb9, 0x99, 0x99, 0xaf, 0x08, 0x28, 0xfe, 0x3a, 0x01, 0x1e, 0x43, 0x18, 0x46, 0x2c, 0x97, 0xcb, 0x45, 0xec, 0x0e, 0x47, 0x6f, 0x26, 0x93, 0xa1, 0x42, 0xa1, 0x80, 0x6b, 0x03, 0xf5, 0x20, 0x95, 0xc2, 0x78, 0x2c, 0x7a, 0x19, 0x7e, 0x00, 0x21, 0x00, 0x54, 0xba, 0x5c, 0xae, 0xbe, 0xb5, 0x81, 0x06, 0x5a, 0xd7, 0x14, 0xa4, 0xae, 0x4d, 0x5b, 0xe3, 0x1a, 0xe2, 0x9b, 0x88, 0xc8, 0xe0, 0x07, 0x12, 0x02, 0xc0, 0x0a, 0xa7, 0xd3, 0xb9, 0xdf, 0xe7, 0xf3, 0xf7, 0x03, 0xc0, 0x8f, 0x34, 0x4d, 0xb3, 0x97, 0xe3, 0x84, 0xaf, 0x1a, 0xc2, 0xb6, 0xec, 0xa8, 0xa5, 0xef, 0x6e, 0x4d, 0xff, 0x05, 0x8e, 0x55, 0xf9, 0x78, 0xc4, 0xe1, 0x89, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; tucnak-4.04/src/session.c0000644000175000017500000030352612477604277012316 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "control.h" #include "cwdaemon.h" #include "cwdb.h" #include "cwwindow.h" #include "dwdb.h" #include "edi.h" #include "excdb.h" #include "fifo.h" #include "hf.h" #include "inputln.h" #include "kbdbind.h" #include "kbd.h" #include "kst.h" #include "main.h" #include "map.h" #include "menu.h" #include "misc.h" #include "namedb.h" #include "net.h" #include "ntpq.h" #include "qsodb.h" #include "rc.h" #include "rotar.h" #include "tsdl.h" #include "session.h" #include "sked.h" #include "ssbd.h" #include "state.h" #include "stats.h" #include "subwin.h" #include "translate.h" #include "tregex.h" #include "trig.h" #include "update.h" #include "zosk.h" int session_id = 1; /*#ifdef Z_MSC void android_restore_state(){ GHashTable *state = NULL; int i; dbg("android_restore_state started gses=%p\n", gses); #ifdef Z_MSC if (!state) state = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(state, g_strdup("gses_il_cdata"), g_strdup("GSES INPUTLN")); g_hash_table_insert(state, g_strdup("ctest"), g_strdup("20130610.1")); for (i = 0; i < cfg->bands->len; i++){ struct config_band *b = (struct config_band *)g_ptr_array_index(cfg->bands, i); g_hash_table_insert(state, g_strdup_printf("band%c_il_cdata", z_char_lc(b->bandchar)), g_strdup_printf("Band %c inputln", z_char_lc(b->bandchar))); } for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->il){ g_hash_table_insert(state, g_strdup_printf("sw%d_il_cdata", i+1), g_strdup_printf("Subwin %d inputline", i+1)); } } g_hash_table_insert(state, g_strdup("sw0il_cdata"), g_strdup("Talk")); #endif do_restorestate(state); dbg("android_restore_state finished\n"); } #endif*/ struct session *create_session(struct window *win) { /* struct terminal *term = win->term;*/ struct session *ses; struct config_subwin *csw; int i, setontop = 0; /* dbg("create_session()\n");*/ ses = g_new0(struct session, 1); /* dbg("create_session allocated %p\n", ses);*/ ses->win = win; ses->id = session_id++; ses->sel_start = -1; ses->sel_stop = -1; ses->sel_min = INT32_MAX; ses->sel_max = -1; gses = ses; gses->hicalls=g_hash_table_new(g_str_hash, g_str_equal); /**/ /*memcpy(&ses->ds, &dds, sizeof(struct document_setup));*/ ctest=NULL; ses->subwins = g_ptr_array_new(); sw_shake_tmo = ztimeout_init(100000); if (cfg->sws->len){ for (i=0;isws->len;i++){ csw=(struct config_subwin *)g_ptr_array_index(cfg->sws, i); new_subwin((enum sw_type)csw->type, -1); } }else{ /* default values when no subwins are defined in tucnakrc */ new_subwin(SWT_QSOS, -1); new_subwin(SWT_SKED, -1); new_subwin(SWT_TALK, -1); new_subwin(SWT_DXC, -1); new_subwin(SWT_UNFI, -1); new_subwin(SWT_STAT, -1); new_subwin(SWT_KST, -1); new_subwin(SWT_SHELL, -1); new_subwin(SWT_LOG, -1); } setontop = 1; sw_shake_tmo = -1; /*if (first_use) { first_use = 0; msg_box(NULL, VTEXT(T_WELCOME), AL_CZ | AL_EXTD_TEXT, VTEXT(T_WELCOME_TO_TUCNAK), "\n\n", VTEXT(T_BASIC_HELP), NULL, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); }*/ if (strlen(cfg->pcall)==0 || strlen(cfg->pwwlo)==0){ zselect_bh_new(zsel, contest_def, GINT_TO_POINTER(1)); first_contest_def=1; } if (opt_x) zselect_bh_new(zsel, translate, NULL); ses->il = g_new0(struct inputln,1); ses->il->upconvert = 1; ses->il->valid_chars = VALID_CHARS; gses->qs = g_ptr_array_new(); MUTEX_INIT(gses->qs); if (setontop){ sw_set_ontop(0, 1); sw_set_ontop(0, 0); } return ses; } gboolean free_hicalls(gpointer key, gpointer value, gpointer user_data){ g_free(key); g_free(user_data); return TRUE; } void win_func(struct window *win, struct event *ev, int fw) { /* if (ev->ev==EV_KBD) dbg("\n");*/ /**** dbg("win_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ switch (ev->ev) { case EV_ABORT: sw_all_func(ev,fw); free_ctest(); if (gses->timer_id) zselect_timer_kill(zsel, gses->timer_id); #ifdef FALL if (gses->fall_id) zselect_timer_kill(zsel, gses->fall_id); #endif free_subwins(); inputln_func(gses->il, ev); g_free(gses->il); qs_thread_kill(); zg_ptr_array_free_all(gses->qs); MUTEX_FREE(gses->qs); zg_free0(gses->qs_str); zg_hash_free(gses->hicalls); /* g_hash_table_foreach_remove(gses->hicalls, free_hicalls, NULL); g_hash_table_destroy(gses->hicalls);*/ if (gses->redraw_timer_id) zselect_timer_kill(zsel, gses->redraw_timer_id); #ifdef Z_HAVE_SDL if (gses->update_rotar_timer_id) zselect_timer_kill(zsel, gses->update_rotar_timer_id); if (gses->bat_timer_id) zselect_timer_kill(zsel, gses->bat_timer_id); #endif if (gses->skedw_timer_id > 0) { zselect_timer_kill(zsel, gses->skedw_timer_id); gses->skedw_timer_id = 0; } // g_free(gses->ac_cq->cw_str); NO! it is "foreign key" g_free(gses->ac_cq); zg_free0(gses->asunriseset); if (gses->update){ zhttp_free(gses->update); gses->update = NULL; } /*g_free(gses); no, freeed in delete_window */ gses=NULL; break; case EV_INIT: win->data = gses = create_session(win); if (ctest && aband) { inputln_func(aband->il,ev); }else{ inputln_func(gses->il, ev); gses->il->enter = process_input_no_contest; } il_set_focus(INPUTLN(aband)); gses->timer_id = zselect_timer_new(zsel, 1, time_func, NULL); #ifdef FALL gses->fall_id = zselect_timer_new(zsel, 1000, fall_func, NULL); #endif #ifdef Z_HAVE_SDL zselect_timer_new(zsel, 1, bat_timer, NULL); #endif gses->mode = MOD_SSB_SSB; gses->ac_cq = g_new0(struct cq, 1); gses->skedw_timer_id = 0; update_tucnak(win_func, win_func); case EV_RESIZE: #ifdef Z_HAVE_SDL if (gses->osk && ev->b == 0) { char *c = g_strdup(gses->osk->gs->str); int flags = gses->osk->flags; //dbg("zosk_free(%p %p)\n", gses->osk, gses->osk->surface); zosk_free(gses->osk); gses->osk = zosk_init(sdl->screen, flags, c); zosk_portrait(gses->osk); //dbg("zosk_inite(%p %p)\n", gses->osk, gses->osk->surface); g_free(c); } #endif /* dbg("win_func: EV_RESIZE %dx%d\n", term->x, term->y);*/ fifo_resize(glog, 1, term->y-cfg->loglines, term->x-2, cfg->loglines); /* draw_root_window();*/ if (ctest) { int i; for (i=0;ibands->len;i++) { struct band *b; b=(struct band*)g_ptr_array_index(ctest->bands,i); inputln_func(b->il,ev); /*b->il->band=b;*/ } } inputln_func(gses->il, ev); gses->y1 = QSONR_HEIGHT; gses->y2 = QSONR_HEIGHT; gses->height1 = term->y - QSONR_HEIGHT - 4 - cfg->loglines; //gses->ily = term->y - 1 - cfg->loglines; //gses->tqy = term->y - 1 - cfg->loglines - DISP_QSOS; if (ctest && !ctest->oldcontest) { gses->height1 -= ctest->spypeers->len; //gses->ily -= ctest->spypeers->len; //gses->tqy -= ctest->spypeers->len; } if (cfg->splitheight > 0){ gses->height2 = cfg->splitheight; gses->height1 -= gses->height2 + 1; gses->y1 += gses->height2 + 1; } sw_all_func(ev, fw); redraw_later(); break; case EV_REDRAW: // z_crash(); // g_free(win_func); //aband->bandchar = 'x'; if (!gses) return; /* dbg("win_func: EV_REDRAW\n");*/ draw_root_window(); inputln_func(INPUTLN(aband),ev); if (show_qs()){ MUTEX_LOCK(gses->qs); sw_qs_redraw(); MUTEX_UNLOCK(gses->qs); }else{ sw_ontop_func(ev, fw); } /*if (ctest && aband) { inputln_func(aband->il,ev); if (show_qs()){ sw_qs_redraw(); }else{ sw_ontop_func(ev, fw); } }else{ inputln_func(gses->il, ev); sw_ontop_func(ev, fw); } */ if (cfg->splitheight > 0){ draw_titles(QSONR_HEIGHT - 1, 1); draw_titles(gses->y1 - 1, 0); }else{ draw_titles(QSONR_HEIGHT - 1, 0); } break; case EV_KBD: send_event(ev); break; case EV_MOUSE: send_event(ev); break; default: error("ERROR: unknown event"); } #ifdef Z_ANDROID if (ev->ev == EV_INIT) { android_restore_state(); } #endif /*#ifdef Z_MSC if (ev->ev == EV_INIT) { struct state *state = init_state(); state_test(state); state_restore(state); } #endif*/ } void rxtx(void){ // if (gses->win->prev->handler==cwwindow_func) return; //probably not working gses->tx=!gses->tx; if (gses->tx && can_tx(aband)){ cq_abort(1); if (get_mode() == MOD_CW_CW){ cwdaemon_ptt(cwda, 1, 1); }else{ cwdaemon_ptt(cwda, 1, 0); } if (get_mode() == MOD_CW_CW){ add_window(cwwindow_func, NULL); #ifdef Z_HAVE_SDL if (gses && sdl) gses->icon = sdl->key; #endif } peer_tx(aband, 1); }else{ rx(); } redraw_later(); } void esc(void){ /*if (!ctest || !aband) return;*/ if (gses->focused){ /* look at sw_dxc_kbd_func, ACT_ENTER */ sw_unset_focus(); il_set_focus(INPUTLN(aband)); }else{ rx(); } redraw_later(); //dbg("esc returning\n"); } void rx(void){ gses->tx=0; gses->tune=0; gses->extcq=EC_NONE; cq_abort(0); //dbg("rx: cq_abort returned\n"); cwdaemon_ptt(cwda, 0, 0); peer_tx(aband, 0); } /* for global events such as keying */ int preferred_func(struct event *ev){ switch(ev->ev){ case EV_KBD: switch (kbd_action(KM_MAIN, ev)) { case ACT_RXTX: if (gses->win->prev->handler == cwwindow_func){ return 1; } rxtx(); return 0; break; #if defined (Z_HAVE_SDL) && defined(Z_HAVE_LIBPNG) case ACT_SCREENSHOT: sdl_screenshot(0); break; case ACT_WINDOWSHOT: sdl_screenshot(1); break; #endif } break; case EV_MOUSE: /*if (ev->b == B_MOVE) break; dbg("preferred_func MOUSE: b=%d\n", ev->b); if (ev->b == (B_DRAG | B_LEFT)){ int p = -1; if (gses->sel_start < 0){ gses->sel_start = ev->x + ev->y * term->x; }else{ gses->sel_min = Z_MIN(gses->sel_min, gses->sel_start); gses->sel_max = Z_MAX(gses->sel_max, gses->sel_stop); p = ev->x + ev->y * term->x; if (p <= gses->sel_start) gses->sel_start = p; else gses->sel_stop = p; } gses->sel_min = Z_MIN(gses->sel_min, gses->sel_start); gses->sel_max = Z_MAX(gses->sel_max, gses->sel_stop); dbg("p=%d sel=%d %d, minmax=%d %d\n", p, gses->sel_start, gses->sel_stop, gses->sel_min, gses->sel_max); term->dirty = 1; redraw_later(); }else if (ev->b == (B_LEFT | B_UP)){ dbg("up sel=%d %d\n", gses->sel_start, gses->sel_stop); if (gses->sel_start > 0 && gses->sel_stop > 0){ dbg("copy\n"); gses->sel_start = -1; gses->sel_stop = -1; } }else if ((ev->b == B_LEFT) == 0){ dbg("clear\n"); gses->sel_min = gses->sel_start; gses->sel_max = gses->sel_stop; gses->sel_start = -1; gses->sel_stop = -1; term->dirty = 1; redraw_later(); } */ break; } return 1; } static void compute_qrv_wkd(char *c){ char *qrv_str; struct qrv_item *qi; if (!aband) return; CONDGFREE(aband->qrv_str); qrv_str=find_qrv_str_by_call(cw, c); if (qrv_str){ aband->qrv_str = g_strdup(qrv_str); } CONDGFREE(aband->wkd_str); qi = qrv_get(qrv, c); if (qi){ aband->wkd_str = g_strdup_printf("wkd %dx", qi->wkd[tolower(aband->bandchar) - 'a']); } } int confirm_call(void){ char *oldtmpqcall, *c; int i; struct qso *qso; if (!ctest || !aband) return 1; oldtmpqcall = TMPQ.callsign; c = TMPQ.callsign; if (!c) return 1; if (TMPQ.ucallsign) return 1; compute_qrv_wkd(z_str_uc(c)); i = get_qso_index_by_callsign(aband, c); if (ctest->expmode) i = -1; if (i>0 && !z_call_is_rover(c)){ qso = (struct qso *)g_ptr_array_index(aband->qsos, i); aband->dupe_in_tmpqso_index = i; redraw_terminal(NULL); compute_qrv_wkd(c); duplicate_callsign(qso); return 1; } add_tmpxchg(aband, aband->tmpqsos[0].callsign); after_callsign(aband, TMPQ.callsign, oldtmpqcall); aband->tmpqsos[0].ucallsign = 1; CLEAR_TMPQSO_STRING_UU(aband, callsign, ucallsign); wkd_tmpqso(aband, WT_CALLSIGN, c); #ifdef HAVE_SNDFILE gssbd->code++; #endif redraw_later(); return 0; } int confirm_exc(void){ if (!ctest || !aband) return 1; if (!aband->tmpqsos[0].exc) return 0; if (strlen(aband->tmpqsos[0].exc)==0) return 0; add_tmpxchg(aband, aband->tmpqsos[0].exc); after_exc(aband, TMPQ.exc); aband->tmpqsos[0].uexc = 1; CLEAR_TMPQSO_STRING_UU(aband, exc, uexc); wkd_tmpqso(aband, WT_EXC, TMPQ.exc); #ifdef HAVE_SNDFILE gssbd->code++; #endif redraw_later(); return 0; } int confirm_wwl(void){ if (!ctest || !aband) return 1; if (!aband->tmpqsos[0].locator) return 0; if (ctest->wwlused == 3 || ctest->wwlused == 4){ // 3=used(4), 4=opt(4) if (strlen(aband->tmpqsos[0].locator)<4) return 0; }else{ if (strlen(aband->tmpqsos[0].locator)!=6) return 0; } add_tmpxchg(aband, aband->tmpqsos[0].locator); aband->tmpqsos[0].ulocator = 1; aband->tmpqsos[0].uqrb = 1; aband->tmpqsos[0].uqtf = 1; after_locator(aband, TMPQ.locator); CLEAR_TMPQSO_STRING_UU(aband, locator, ulocator); CLEAR_TMPQSO_GDOUBLE_UU (aband, qrb, uqrb); CLEAR_TMPQSO_QTF_UU (aband); wkd_tmpqso(aband, WT_LOCATOR, TMPQ.locator); /*map_clear_qso(&aband->tmplocqso); */ #ifdef HAVE_SNDFILE gssbd->code++; #endif redraw_later(); return 0; } void clear_tmpqsos_inputline(void){ if (!ctest || !aband) { /* HACK F3 */ menu_contest_open(NULL); return; } if (aband->readonly) return; clear_tmpqsos(aband,1); add_swap(aband, "CLR"); clear_inputline(aband->il); get_cw_qs(aband->il->cdata); /* clears */ get_band_qs(aband, aband->il->cdata); get_oband_qs(aband, aband->il->cdata); get_hf_dxc(aband->il->cdata); send_inputline(aband); map_clear_qso(&aband->tmplocqso, aband); redraw_later(); } void send_event(struct event *ev) { // struct qso *qso; // gchar *c; // gchar *qrv_str; int i; // char *oldtmpqcall = NULL; // struct qrv_item *qi; if (!gses) return; //dbg("send_event ev=%d, x=%d, y=%d, b=%d\n",ev->ev,ev->x,ev->y ,ev->b); if (ev->ev == EV_KBD) { if (gses->ontop && gses->focused){ if (sw_focus_func(ev,1)) return; }else{ switch (kbd_action(KM_MAIN, ev)) { case ACT_SCROLL_LEFT: if (glog->ho>0) glog->ho--; redraw_later(); goto x; case ACT_SCROLL_RIGHT: if (glog->ho<70) glog->ho++; redraw_later(); goto x; default: if (!inputln_func(INPUTLN(aband), ev)) break; /*dbg("inputln_func\n");*/ if (ev->x!=KBD_LEFT && ev->x!=KBD_RIGHT && ev->x!=KBD_HOME && ev->x!=KBD_END){ char *qsstr; if (aband){ qsstr=strrchr(aband->il->cdata, ' '); if (!qsstr) qsstr=aband->il->cdata; else qsstr++; }else{ qsstr=strrchr(gses->il->cdata, ' '); if (!qsstr) qsstr=gses->il->cdata; else qsstr++; } if (aband){ get_band_qs(aband, qsstr); get_oband_qs(aband, qsstr); } get_cw_qs(qsstr); get_hf_dxc(qsstr); send_inputline(aband); redraw_later(); } return; } } // dbg("send_event2 %d,%d,%d,%d\n",ev->ev,ev->x,ev->y ,ev->b); switch (kbd_action(KM_MAIN, ev)) { case ACT_MENU: activate_bfu_technology(-1); goto x; case ACT_FILE_MENU: activate_bfu_technology(0); goto x; case ACT_REALLYQUIT: exit_prog(GINT_TO_POINTER(1)); goto x; case ACT_QUIT: exit_prog(GINT_TO_POINTER(ev->x == KBD_CTRL_C)); goto x; case ACT_NEXT_SUBWIN: /* dbg("send_event: next subwin\n");*/ sw_totop_next(1, 0); if (gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); }else{ sw_unset_focus(); il_set_focus(INPUTLN(aband)); } redraw_later(); goto x; case ACT_PREV_SUBWIN: /* dbg("send_event: next subwin\n");*/ sw_totop_next(-1, 0); if (gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); }else{ sw_unset_focus(); il_set_focus(INPUTLN(aband)); } redraw_later(); goto x; case ACT_UP: /* dbg("send_event: focus\n");*/ /* if (!ctest || !aband) goto x; */ if (gses->ontop->type!=SWT_QSOS || (aband && aband->qsos->len) || (ctest && gses->ontop->allqsos && ctest->allqsos->len)){ /*dbg("focusing...\n"); */ if (gses->ontop->type == SWT_QSOS && aband){ struct subwin *sw = gses->ontop; gses->ontop->cur = QSOS_LEN; //gses->ontop->check_bounds(gses->ontop); } il_unset_focus(INPUTLN(aband)); sw_set_focus(); redraw_later(); } goto x; case ACT_ESC: case ACT_RX: /*dbg("send_event: esc\n");*/ esc(); goto x; case ACT_RXTX: preferred_func(ev); break; case ACT_MODE: gses->tx = 0; /*cwdaemon_abort(cwda);*/ cq_abort(0); peer_tx(aband, 0); if (get_mode() == MOD_CW_CW) { set_mode(MOD_SSB_SSB); if (!ctest){ default_rst_to_tmpqsos(aband); redraw_later(); break; } if (strcmp(cfg->default_rst, TMPQ.rsts)==0){ default_rst_to_tmpqsos(aband); }else{ zg_free0(aband->tmpqsos[1].rsts); aband->tmpqsos[1].rsts=g_strdup("SSB"); } redraw_later(); break; } if (get_mode() == MOD_SSB_SSB){ set_mode(MOD_CW_CW); if (!ctest){ default_rst_to_tmpqsos(aband); redraw_later(); break; } if (strcmp(cfg->default_rs, TMPQ.rsts)==0){ default_rst_to_tmpqsos(aband); }else{ zg_free0(aband->tmpqsos[1].rsts); aband->tmpqsos[1].rsts=g_strdup("CW"); } redraw_later(); break; } case ACT_CQ_0: if (can_cq(aband)) cq_run_by_number(0); break; case ACT_CQ_1: if (can_cq(aband)) cq_run_by_number(1); break; case ACT_CQ_2: if (can_cq(aband)) cq_run_by_number(2); break; case ACT_CQ_3: if (can_cq(aband)) cq_run_by_number(3); break; case ACT_CQ_4: if (can_cq(aband)) cq_run_by_number(4); break; case ACT_CQ_5: if (can_cq(aband)) cq_run_by_number(5); break; case ACT_PAGE_UP: cwdaemon_qrq(cwda, 2); redraw_later(); break; case ACT_PAGE_DOWN: cwdaemon_qrs(cwda, 2); redraw_later(); break; case ACT_CLEAR_TMPQSOS: /* dbg("clear_tmpqsos\n");*/ if (!ctest || !aband || aband->readonly) goto x; clear_tmpqsos(aband, 1); add_swap(aband, "CLR"); map_clear_qso(&aband->tmplocqso, aband); redraw_later(); goto x; case ACT_CLEAR_TMPQSOS_INPUTLINE: clear_tmpqsos_inputline(); goto x; case ACT_CONFIRM_CALL: if (confirm_call()) goto x; break; case ACT_CONFIRM_EXC: if (confirm_exc()) goto x; break; case ACT_CONFIRM_WWL: if (confirm_wwl()) goto x; break; case ACT_SWAP_CALL: if (!ctest || !aband) goto x; if (aband->tmpqsos[0].callsign && aband->tmpqsos[1].callsign){ int susp; gchar *c; c = aband->tmpqsos[0].callsign; aband->tmpqsos[0].callsign = aband->tmpqsos[1].callsign; aband->tmpqsos[1].callsign = c; c = aband->tmpqsos[0].name; aband->tmpqsos[0].name = aband->tmpqsos[1].name; aband->tmpqsos[1].name = c; add_tmpxchg(aband, aband->tmpqsos[0].callsign); if ((susp=get_susp_call(cw, dw, aband->tmpqsos[0].callsign, aband->tmpqsos[0].locator))!=0){ aband->tmpqsos[0].suspcallsign = susp; }else{ aband->tmpqsos[0].suspcallsign = 0; aband->tmpqsos[0].susplocator = 0; } wkd_tmpqso(aband, WT_CALLSIGN, TMPQ.callsign); #ifdef HAVE_SNDFILE gssbd->code++; #endif redraw_later(); } break; case ACT_SWAP_WWL: if (!ctest || !aband) goto x; if (aband->tmpqsos[0].locator && aband->tmpqsos[1].locator){ int susp; gchar *c; gdouble qrb; gint qtf; map_clear_qso(&aband->tmplocqso, aband); c = aband->tmpqsos[0].locator; aband->tmpqsos[0].locator = aband->tmpqsos[1].locator; aband->tmpqsos[1].locator = c; add_tmpxchg(aband, aband->tmpqsos[0].locator); qrb = aband->tmpqsos[0].qrb; aband->tmpqsos[0].qrb = aband->tmpqsos[1].qrb; aband->tmpqsos[1].qrb = qrb; qtf = aband->tmpqsos[0].qtf; aband->tmpqsos[0].qtf = aband->tmpqsos[1].qtf; aband->tmpqsos[1].qtf = qtf; if ((susp=get_susp(cw, dw, aband->tmpqsos[0].callsign, aband->tmpqsos[0].locator, 1))!=0){ aband->tmpqsos[0].susplocator = susp & 0xff; aband->tmpqsos[0].suspcallsign = susp >> 8; }else{ aband->tmpqsos[0].susplocator = 0; aband->tmpqsos[0].suspcallsign = 0; } wkd_tmpqso(aband, WT_LOCATOR, TMPQ.locator); zg_free0(aband->tmplocqso.locator); aband->tmplocqso.locator=g_strdup(TMPQ.locator); compute_qrbqtf(&aband->tmplocqso); map_add_qso(&aband->tmplocqso, aband); #ifdef HAVE_SNDFILE gssbd->code++; #endif redraw_later(); } break; case ACT_SAVE_ALL: save_all_bands_txt(0); break; case ACT_CHOP: if (!ctest) break; menu_chop(NULL); break; case ACT_CALLINFO: call_info(NULL); break; case ACT_SKED: if (!ctest || !aband) break; if ((!TMPQ.callsign || !strlen(TMPQ.callsign)) && aband->qsos->len>0){ sked_from_qso((struct qso *)g_ptr_array_index(aband->qsos, aband->qsos->len-1)); }else{ sked_from_tmpqso(&(aband->tmpqsos[0])); } break; case ACT_SKED_QRG: if (!ctest) break; menu_skedqrg(NULL); break; case ACT_UNFINISHED: if (!ctest || !aband) break; if (!TMPQ.callsign && !TMPQ.locator) break; menu_unfinished(NULL); goto x; case ACT_PLAY_LAST: if (gses->focused) break; #if defined(HAVE_SNDFILE) ssbd_play_last_sample(gssbd, NULL); // player_play("/home/ja/tucnak/cq/OK1ZIA_OK1ZIA.wav"); #endif break; case ACT_SEEK_A: if (!ctest || !aband) goto x; if (TMPQ.locator) rot_seek(get_rotar(0), TMPQ.qtf); break; case ACT_SEEK_B: if (!ctest || !aband) goto x; if (TMPQ.locator) rot_seek(get_rotar(1), TMPQ.qtf); break; case ACT_GRAB_BAND: menu_grabband(NULL); break; case ACT_ROTAR: menu_rotar(NULL); break; case ACT_RUNMODE: if (!ctest) break; runmode(!ctest->runmode); redraw_later(); break; case ACT_TUNE: if (get_mode() != MOD_CW_CW) break; gses->tune++; if (gses->tune == 3) gses->tune = 0; cwdaemon_tune(cwda, gses->tune); break; case ACT_AC_CQ: ac_cq(); break; #ifdef Z_HAVE_SDL case ACT_ZOOMIN: tsdl_change_font('+'); break; case ACT_ZOOMOUT: tsdl_change_font('-'); break; case ACT_ZOOM0: if (cfg->fontheight == 16) break; cfg->fontheight = 16; sdl_setvideomode(sdl->screen->w, sdl->screen->h, 0); resize_terminal(NULL); break; case ACT_FULLSCREEN: cfg->fullscreen = !cfg->fullscreen; sdl_setvideomode(sdl->window_w, sdl->window_h, 0); resize_terminal(NULL); break; case ACT_MAXIMIZE: zsdl_maximize(zsdl, 2); break; #endif case ACT_OPEN_NET: if (ctest) break; menu_discover_peers3(open_from_net3, NULL); break; default: /*if (ev->x == KBD_CTRL_C) goto quit;*/ if (ev->y & KBD_ALT) { struct window *m; if (ev->x>='0' && ev->x<='9'){ int a = ev->x - '0'; if (a==0) a=10; if (sw_set_ontop(a-1, 0)){ if (!gses->focused/* || (gses->ontop && gses->ontop->type == SWT_QSOS)*/){ sw_unset_focus(); il_set_focus(INPUTLN(aband)); }else{ sw_set_focus(); il_unset_focus(INPUTLN(aband)); } redraw_later(); } goto x; } #if 0 if (ctest && z_char_uc(ev->x)=='L'){ /* printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"); g_thXXXXread_create(delay_func, NULL, TRUE, NULL); */ log_adds("---dump request---"); trace(cfg->trace_qsos, "---dump request---"); dump_all_sources(ctest); } #endif ev->y &= ~KBD_ALT; activate_bfu_technology(-1); m = term->windows.next; m->handler(m, ev, 0); if (term->windows.next == m) { delete_window(m); } else goto x; ev->y &= ~KBD_ALT; } if (ev->y & KBD_CTRL){ char bandchar; struct band *b; if (ev->x>='0' && ev->x<='9'){ int a = ev->x - '0'; /* if (a==0) a=10; Ctrl+0 means subwin 10 */ a+=10; if (sw_set_ontop(a-1, 0)){ if (!gses->focused /*|| (gses->ontop && gses->ontop->type == SWT_QSOS)*/){ sw_unset_focus(); il_set_focus(INPUTLN(aband)); }else{ sw_set_focus(); il_unset_focus(INPUTLN(aband)); } redraw_later(); } goto x; } if (!ctest || !aband) goto x; bandchar=z_char_lc((char)ev->x); b=find_band_by_bandchar(bandchar); activate_band(b); break; } } } if (ev->ev == EV_MOUSE) { int y, hit = 0, spypeers; /* dbg("mouse event x=%d y=%d b=%d\n", ev->x, ev->y, ev->b); */ /* menu */ if (ev->y == 0 && (ev->b & BM_ACT) == B_DOWN) hit = 1; else if (cfg->usetouch && ev->y == 1 && (ev->b & BM_ACT) == B_DOWN) hit = 1; if (hit){ struct window *m; ev->y = 0; activate_bfu_technology(-1); m = term->windows.next; m->handler(m, ev, 0); goto x; } /* locator */ #ifdef Z_ANDROID if ((ev->b & B_CLICK) && ev->y == 2 && ev->x >= 3 && ev->x < term->x-QSONR_WIDTH-BAND_WIDTH){ zandroid_update_location(); redraw_later(); } #endif /* input line */ y = term->y - 1 - cfg->loglines; if (ctest && aband && !ctest->oldcontest) y -= ctest->spypeers->len; hit = 0; //if (ev->y==y && (ev->b & ~B_MOVE) !=0) hit = 1; if (ev->y==y && (ev->b & B_CLICK) !=0) hit = 1; else if (cfg->usetouch && (ev->y == y-1 || ev->y == y+1) && (ev->b & B_CLICK) !=0) hit = 1; if (hit){ struct inputln *il = INPUTLN(aband); //dbg("EV_MOUSE([%d,%d,%d,%d])\n",ev->ev,ev->x,ev->y,ev->b); sw_unset_focus(); il_set_focus(il); if (ev->x >= il->x + il->l + 2){ clear_tmpqsos_inputline(); }else{ inputln_func(il, ev); } redraw_later(); } /* subwin tabs */ if (gses && (ev->b & BM_ACT) == B_DOWN){ int i; struct subwin *sw; if (cfg->splitheight > 0){ if (ev->y == QSONR_HEIGHT - 1){ for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (ev->x >= sw->titl1 && ev->x <= sw->titl2){ sw_set_ontop(i, 1); redraw_later(); break; } } } if (ev->y == gses->y1 - 1){ for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (ev->x >= sw->titl1 && ev->x <= sw->titl2){ sw_set_ontop(i, 0); redraw_later(); break; } } } }else{ hit = 0; if (ev->y == QSONR_HEIGHT - 1) hit = 1; else if (cfg->usetouch && ev->y == QSONR_HEIGHT - 2) hit = 1; if (hit){ //dbg("mouse: x=%d y=%d\n", ev->x, ev->y); for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (ev->x >= sw->titl1 && ev->x <= sw->titl2){ if (sw_set_ontop(i, 0)){ if (!gses->focused /*|| (gses->ontop && gses->ontop->type == SWT_QSOS)*/){ sw_unset_focus(); il_set_focus(INPUTLN(aband)); }else{ sw_set_focus(); il_unset_focus(INPUTLN(aband)); } } redraw_later(); break; } } } } } if (gses && ev->b == B_RIGHT && ev->y == QSONR_HEIGHT - 1){ set_window_ptr(gses->win, gses->ontop->titl1, ev->y + 1); subwins_menu(send_event); } /* confirm call/loc */ spypeers = 0; if (ctest && !ctest->oldcontest) spypeers = ctest->spypeers->len; if (ev->b == B_LEFT && ev->x >= 18 && ev->x < 76){ // preselect before entering loop for (i = -1; i <= DISP_QSOS; i++){ int cfmy; cfmy = term->y - cfg->loglines - spypeers - DISP_QSOS + i - 1; if (ev->y != cfmy) continue; if (ev->x >= 18 && ev->x < 32){ confirm_call(); goto x; } if (ev->x >=50 && ev->x < 55){ confirm_exc(); goto x; } if (ev->x >=55 && ev->x <= 60){ confirm_wwl(); goto x; } } } /* subwin */ if (gses && ev->y >= gses->ontop->y && ev->y < gses->ontop->y+gses->ontop->hh){ sw_default_func(gses->ontop,ev,1); } } x:; return; } void draw_root_window(){ gchar *c; int i, a, y; char dtime[6]; char s[100], ss[100]; int spypeers=0; struct rotar *rot; char degree; char exc[15]; struct inputln *il; degree=' '; #ifdef Z_HAVE_SDL //if (sdl) degree=''; if (sdl) degree=0xb0; #endif /* dbg("draw_root_window\n");*/ fill_area(0,0,term->x,term->y,COL_BG); if (ctest && ctest->tname && *ctest->tname){ char s[256]; strcpy(s," Tucnak "VERSION_STRING); print_text(1,0,-1,ctest->tname,COL_NORM); print_text(term->x-QSONR_WIDTH-strlen(s)-2,0,-1,s,COL_NORM); }else{ print_text(0,0,-1," The ultimate contestlog - necessary as known ver. "VERSION,COL_NORM); } log_draw(glog); if (ctest && !ctest->oldcontest) spypeers=ctest->spypeers->len; draw_frame(0,ORIG_Y,term->x-QSONR_WIDTH-BAND_WIDTH,3,COL_NORM,1); draw_frame(0,ORIG_Y+2,term->x-QSONR_WIDTH-BAND_WIDTH,4,COL_NORM,1); draw_frame(term->x-QSONR_WIDTH-BAND_WIDTH-1,ORIG_Y,BAND_WIDTH+1,QSONR_HEIGHT-1,COL_NORM,1); draw_frame(term->x-QSONR_WIDTH-1,0,QSONR_WIDTH+1,QSONR_HEIGHT,COL_NORM,1); draw_frame(0,QSONR_HEIGHT-1,term->x,term->y-QSONR_HEIGHT-2-cfg->loglines-spypeers,COL_NORM,1); #ifdef HAVE_SNDFILE if (gses && gssbd && gses->icon == gssbd->recicon /* && ssbd->loglevel != ssbd->oldloglevel*/){ int x, y; x=term->x-1; for (y=0;y<6;y++) { term->last_screen[x+term->x*y]=0; // set_char(x, y, '1' + COL_NORM); // term->screen[x+term->x*y]='1'; } // dbg(" gses->volume "); } #endif set_only_char(term->x-QSONR_WIDTH-BAND_WIDTH-1,ORIG_Y,FRAME_RDL); set_only_char(term->x-QSONR_WIDTH-1,ORIG_Y,FRAME_UDL); set_only_char(0,ORIG_Y+2,FRAME_URD); set_only_char(term->x-QSONR_WIDTH-BAND_WIDTH-1,ORIG_Y+2,FRAME_UDL); set_only_char(0,QSONR_HEIGHT-1,FRAME_URD); set_only_char(term->x-QSONR_WIDTH-1,QSONR_HEIGHT-1,FRAME_URL); set_only_char(term->x-QSONR_WIDTH-BAND_WIDTH-1,QSONR_HEIGHT-1,FRAME_URL); set_only_char(term->x-1,QSONR_HEIGHT-1,FRAME_UDL); if (cfg->splitheight > 0){ y = gses->y1 - 1; set_only_char(0, y, FRAME_URD); for (i = 1; i < term->x - 1; i++) set_only_char(i, y, FRAME_RL); set_only_char(term->x - 1, y, FRAME_UDL); } print_text(11,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QTR),COL_NORM); print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QRA),COL_NORM); print_text(31,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_RST),COL_NORM); if (ctest && ctest->excused>0) print_text(49,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_EXC),COL_NORM); if (ctest && ctest->wwlused>0) print_text(54,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QTH),COL_NORM); print_text(62,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_QRB),COL_NORM); print_text(74,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_FLG),COL_NORM); print_text(80,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_OPE),COL_NORM); print_text(88,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_SES_REM),COL_NORM); if (can_cq(aband)){ if (gses && gses->last_cq && gses->last_cq->type!=MOD_NONE){ if (gses->last_cq->type==MOD_CW_CW) sprintf(s, " CW%d", gses->last_cq->nr); else sprintf(s, "SSB%d", gses->last_cq->nr); }else{ if (gses->tx) strcpy(s, " TX"); else strcpy(s, " rx"); } }else{ strcpy(s, "LOCK"); } print_text(15,term->y-1-cfg->loglines-spypeers,-1,s,COL_NORM); if (cwda){ char *run = ""; if (ctest) run = ctest->runmode ? "Run" : "S&P"; c = g_strdup_printf(VTEXT(T_SES_WPM), cwda->speed, cwda->weight, run); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+1,BAND_WIDTH-1, c, COL_NORM); g_free(c); } rot=get_rotar(0); if (rot){ if (rot->desc && *rot->desc) g_strlcpy(ss, rot->desc, 5); else strcpy(ss, "RotA"); sprintf(s,"%4s: %3d%c%+d%c",ss, rot->qtf, degree, rot->elev, degree); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+2,BAND_WIDTH-1, s, COL_NORM); } rot=get_rotar(1); if (rot){ if (rot->desc && *rot->desc) g_strlcpy(ss, rot->desc, 5); else strcpy(ss, "RotB"); sprintf(s,"%4s: %3d%c%+d%c",ss, rot->qtf, degree, rot->elev, degree); print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+3,BAND_WIDTH-1, s, COL_NORM); } #ifdef HAVE_HAMLIB // trig->qrg = 10368120000.0; if (gtrigs->trigs->len > 0 /*&& trig->thread*/){ if (gtrigs->rigerr == RIG_OK){ z_qrg_format(s, sizeof(s), gtrigs->qrg); if (gtrigs->rit >= 100) strcat(s, "+"); else if (gtrigs->rit <= -100) strcat(s, "-"); else strcat(s, " "); #ifdef Z_HAVE_SDL if (sdl && rotars->len < 2) { print_text(term->x-QSONR_WIDTH-BAND_WIDTH+14-strlen(s),ORIG_Y+4-1,BAND_WIDTH-1, s, COL_NORM | (DOUBLEHT_MASK << 15)); // to redraw also upper line print_text(term->x-QSONR_WIDTH-BAND_WIDTH+14-strlen(s),ORIG_Y+4,BAND_WIDTH-1, s, COL_NORM | (DOUBLEHB_MASK << 15)); } else #endif { print_text(term->x-QSONR_WIDTH-BAND_WIDTH+14-strlen(s),ORIG_Y+4,BAND_WIDTH-1, s, COL_NORM); } }else{ /*struct trig *trig = (struct trig *)g_ptr_array_index(gtrigs->trigs, 0); enum rig_errcode_e error; // thread error = (enum rig_errcode_e)trig->rigerr; if (error != RIG_OK) print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+4,BAND_WIDTH-1, trig_short_errstr(error), COL_NORM); */ if (gtrigs->rigerr != RIG_OK) print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+4,BAND_WIDTH-1, trig_short_errstr((enum rig_errcode_e)gtrigs->rigerr), COL_NORM); } }else{ if (gtrigs->rigerr != RIG_OK) print_text(term->x-QSONR_WIDTH-BAND_WIDTH,ORIG_Y+4,BAND_WIDTH-1, trig_short_errstr((enum rig_errcode_e)gtrigs->rigerr), COL_INV); } #endif if (aband){ if (aband->ctrlstate==CTRL_REQR){ print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1, VTEXT(T_QSO_REQ_FROM_SP), COL_INV); } if (aband->ctrlstate==CTRL_REQS){ print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1, VTEXT(T_QSO_REQ_SENT), COL_INV); } if (aband->ctrlstate==CTRL_RUNING){ print_text(19,term->y-ORIG_Y-2-cfg->loglines-spypeers-1,-1,VTEXT(T_GO),COL_INV); } g_snprintf(s, 98, " %s %s (%s) ", ctest->pcall, ctest->pwwlo, aband->operator_); z_str_uc(s); print_text(4,ORIG_Y,97,s,COL_NORM); //if (ctest->total_method == 3) if (ctest->qsoglob) draw_bigdigit(term->x-20+2,1,ctest->allqsos->len+1); //draw_bigdigit(term->x-20+2,1,ctest->allb_nqsos+1); else draw_bigdigit(term->x-20+2,1,aband->qsos->len+1); redraw_stats(aband); c=g_strconcat(aband->bandname,":", NULL); #ifdef Z_HAVE_SDL if (sdl && !aband->unres && !aband->tmpqsos[1].date_str && !aband->tmpqsos[1].time_str) { print_text(14-strlen(c),term->y-2-cfg->loglines-spypeers,-1,c,COL_NORM | (DOUBLEHT_MASK << 15)); print_text(14-strlen(c),term->y-1-cfg->loglines-spypeers,-1,c,COL_NORM | (DOUBLEHB_MASK << 15)); } else #endif { print_text(14-strlen(c),term->y-1-cfg->loglines-spypeers,-1,c,COL_NORM); } g_free(c); for (i=0;ispypeers, i); s[0]=sp->bandchar; s[1]=':'; s[2]='\0'; print_text(0,term->y-cfg->loglines-spypeers+i,-1,s,COL_NORM); c=sp->operator_; if (c) print_text(2,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); strcpy(s,""); if (sp->peertx==0) strcpy(s, "rx"); if (sp->peertx==1) strcpy(s, "tx"); if (sp->peertx==2) strcpy(s, "cq"); print_text(15,term->y-cfg->loglines-spypeers+i,-1,s,COL_NORM); c=sp->callsign; if (c) print_text(18,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->rsts; if (c) print_text(36-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->qsonrs; if (c) print_text(40-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->rstr; if (c) print_text(45-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->qsonrr; if (c) print_text(49-strlen(c),term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); if (sp->exc) { safe_strncpy0(exc, sp->exc, 12); print_text(50-strlen(exc),term->y-cfg->loglines-spypeers+i,-1,exc,COL_NORM); } c=sp->locator; if (c) print_text(55,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); c=sp->inputline; if (c) print_text(62,term->y-cfg->loglines-spypeers+i,-1,c,COL_NORM); } if (aband->qrv_str){ // must show also for dupe int x, i, qy; x = 0; qy = term->y - cfg->loglines; c = g_strdup_printf(VTEXT(T_QRV_ON_S), ""); fill_area(0, qy, term->x,1,COL_BG); print_text(0,qy, term->x, c,COL_NORM); x += strlen(c); g_free(c); for (i = 0; i < ctest->bands->len; i++){ struct band *b; int color = COL_NORM; struct config_band *confb; b = (struct band*)g_ptr_array_index(ctest->bands, i); if (b == aband) continue; if (strchr(aband->qrv_str, z_char_lc(b->bandchar))) color = COL_DARKYELLOW; if (strchr(aband->qrv_str, z_char_uc(b->bandchar))) color = COL_YELLOW; confb = get_config_band_by_bandchar(b->bandchar); c = confb->adifband; if (b->qrg_min > 20000000) c = confb->cbrband; print_text(x, qy, -1, c, color); x += strlen(c) + 1; } } for (i=0;idupe_in_tmpqso_index>=0){ struct qso *q; q=(struct qso*)g_ptr_array_index(aband->qsos, aband->dupe_in_tmpqso_index); print_text(3,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->date_str,COL_INV); dtime[0]=q->time_str[0]; dtime[1]=q->time_str[1]; dtime[2]=':'; dtime[3]=q->time_str[2]; dtime[4]=q->time_str[3]; dtime[5]='\0'; print_text(17-strlen(dtime),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,dtime,COL_INV); print_text(18,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->callsign,COL_INV); print_text(36-strlen(q->rsts),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->rsts,COL_INV); print_text(40-strlen(q->qsonrs),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->qsonrs,COL_INV); print_text(45-strlen(q->rstr),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->rstr,COL_INV); print_text(49-strlen(q->qsonrr),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->qsonrr,COL_INV); print_text(55,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->locator,COL_INV); safe_strncpy0(exc, q->exc, 5); print_text(50,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,exc,COL_INV); if ((int)q->qrb<100000) c=g_strdup_printf("%dkm",(int)q->qrb); else c=g_strdup_printf("%d",(int)q->qrb); print_text(70-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_INV); g_free(c); if (q->qtf>=0) { c=g_strdup_printf("%d%c",q->qtf, degree); print_text(75-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_INV); g_free(c); /*c=g_strdup_printf("(%d)",((int)q->qtf+180)%360); print_text(75,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_INV); g_free(c); */ } print_text(81,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->operator_,COL_INV); print_text(89,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,q->remark,COL_INV); continue; /* don't draw normal QSO in line 0 */ } c=aband->tmpqsos[i].date_str; if (c) print_text(3,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].time_str; if (c) { dtime[0]=c[0]; dtime[1]=c[1]; dtime[2]=':'; dtime[3]=c[2]; dtime[4]=c[3]; dtime[5]='\0'; print_text(17-strlen(dtime),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,dtime,COL_NORM); } c=aband->tmpqsos[i].callsign; if (c) { char *susp_c/*,*unkcall*/; /* if (aband->tmpqsos[i].unkcall) unkcall="n"; else unkcall=" "; print_text(16,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1, unkcall, COL_NORM); */ switch (aband->tmpqsos[i].suspcallsign){ case 1: susp_c="?"; break; case 2: susp_c="!"; break; default: susp_c=" "; break; } print_text(17,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1, susp_c, COL_RED); print_text(18,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].ucallsign?COL_NORM:COL_INV); if (aband->tmpqsos[i].unkcall){ int x; x=18+1+strlen(c); print_text(x, term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,32-x, VTEXT(T_NEW_CALL), aband->tmpqsos[i].ucallsign?COL_NORM:COL_INV); }else{ if (aband->tmpqsos[i].name){ int x; x=18+1+strlen(c); print_text(x, term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,32-x, aband->tmpqsos[i].name, aband->tmpqsos[i].ucallsign?COL_NORM:COL_INV); } } } c=aband->tmpqsos[i].rsts; if (c) print_text(36-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); if (ctest->qsoglob){ if (i==0) g_snprintf(s, sizeof(s), "%03d", ctest->allqsos->len+1); else strcpy(s, ""); c=s; }else{ c=aband->tmpqsos[i].qsonrs; } if (c) print_text(40-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].rstr; if (c) print_text(45-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].qsonrr; if (c) print_text(49-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].exc; if (c) { safe_strncpy(exc, c, 12); print_text(50,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,exc, aband->tmpqsos[i].uexc?COL_NORM:COL_INV); } c=aband->tmpqsos[i].locator; if (c) { char *susp_c; switch (aband->tmpqsos[i].susplocator){ case 1: susp_c="?"; break; case 2: susp_c="!"; break; default: susp_c=" "; break; } print_text(55,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].ulocator?COL_NORM:COL_INV); print_text(62,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1, susp_c, COL_RED); } a=(int)aband->tmpqsos[i].qrb; if (a) { if (a<100000) c=g_strdup_printf("%dkm",a); else c=g_strdup_printf("%d",a); print_text(70-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].uqrb?COL_NORM:COL_INV); g_free(c); } a=aband->tmpqsos[i].qtf; if (a>=0) { c=g_strdup_printf("%d%c",a, degree); print_text(75-strlen(c),term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].uqtf?COL_NORM:COL_INV); g_free(c); /* c=g_strdup_printf("(%d)",(a+180)%360); print_text(75,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c, aband->tmpqsos[i].uqtf?COL_NORM:COL_INV); g_free(c); */ } if (i==0 && aband->tmpqsos[0].qsl){ print_text(79,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,"q",COL_NORM); } c=aband->operator_; if (i==0 && c) print_text(81,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); c=aband->tmpqsos[i].remark; if (c) print_text(89,term->y-cfg->loglines-spypeers-DISP_QSOS+i-1,-1,c,COL_NORM); } if (aband->unres) { int x; const int QRA_X=17; c=aband->unres; x=QRA_X-strlen(c); if (x<0) x=0; fill_area(0,term->y-2-cfg->loglines-spypeers, QRA_X,1,COL_BG); print_text(x,term->y-2-cfg->loglines-spypeers, QRA_X, c,COL_INV); } if (aband->wkd_str && aband->tmpqsos[1].callsign == NULL){ const int QRA_X=17; c = aband->wkd_str; print_text(QRA_X+1,term->y-2-cfg->loglines-spypeers, QRA_X, c,COL_NORM); } }else{ strcpy(s,mode_msg[get_mode()]); print_text(36-strlen(s),term->y-cfg->loglines-spypeers-DISP_QSOS-1,-1,s,COL_NORM); #ifdef Z_ANDROID if (!aband){ double h, w; int state; char ss[20], *st; //SDL_ANDROID_GetHW(&h, &w, &state); zandroid_get_location(&h, &w, &state); if (h > -1000 && h < 1000){ switch (state){ case 0: st = "..."; break; case 1: st = ""; break; case 2: st = "?"; break; default: st = "??"; break; } hw2loc(ss, h, w, 10); g_snprintf(s, 98, "%s%s", ss, st); print_text(3, 2,97,s,COL_NORM); } else{ print_text(3, 2,97, VTEXT(T_LOCATION_UNKNOWN),COL_NORM); } } #endif } il = INPUTLN(aband); c = aband ? "[ CLR ]" : "[ LOAD ]"; print_text(il->x + il->l + 4, term->y - 1 - cfg->loglines - spypeers, -1, c, COL_INV); /* sw_default_redraw(g_ptr_array_index(ses->subwins,0));*/ draw_time(); #if 0 else { c = VTEXT(T_SES_WELCOME); print_text((term->x-strlen(c))/2, term->y/2-3, -1, c, COL_NORM); c = VTEXT(T_SES_PRESS_F10); print_text((term->x-strlen(c))/2, term->y/2-1, -1, c, COL_NORM); c = VTEXT(T_SES_HAVE_FUN); print_text((term->x-strlen(c))/2, term->y/2+0, -1, c, COL_NORM); c = VTEXT(T_SES_URL); print_text((term->x-strlen(c))/2, term->y-5, -1, c, COL_NORM); print_tucnak(term->x-26,(term->y-12)/2-1); #endif #if 0 { int i,j; for (j=0;j<16;j++){ for (i=0;i<16;i++){ unsigned char s[2]; s[0]=i+j*16; /*if (s[0]<32 || s[0]==127 || (s[0]>=128+0 && s[0]<128+32)) s[0]='.';*/ s[1]=0; print_text(i+5,j+3, 1,s, COL((i&7)+j*8)); } print_text(j,2, 1,"X", COL(j)); } } #endif #if 0 } #endif } #define DELIM "\t\r\n " #define FREE_Cx if (c1) {g_free(c1); c1=NULL;}\ if (c2) {g_free(c2); c2=NULL;}\ if (c3) {g_free(c3); c3=NULL;}\ if (c4) {g_free(c4); c4=NULL;}\ if (c5) {g_free(c5); c5=NULL;} void add_tmpqso_rsts(struct band *band, gchar *rsts) { ADD_TMPQSO_STRING(band,rsts,rsts,1,udummy); add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_RSTS, rsts); } void add_tmpqso_rstr(struct band *band, gchar *rstr) { ADD_TMPQSO_STRING(band,rstr,rstr,1,udummy); add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_RSTR, rstr); #ifdef HAVE_SNDFILE gssbd->code++; #endif } int add_tmpqso_qsonrr(struct band *band, gchar *qsonrr){ char s[20]; int n; n=atoi(qsonrr); if (n<1 || n>9999) return -1; g_snprintf(s, 18, "%03d", n); ADD_TMPQSO_STRING(band,qsonrr,s,1,udummy); wkd_tmpqso(band, WT_QSONRR, s); #ifdef HAVE_SNDFILE gssbd->code++; #endif return 0; } void add_tmpqso_exc(struct band *band,gchar *exc,int isu) { char s[20], *c; c = exc; if (ctest->exctype == EXC_WAZ || ctest->exctype == EXC_ITU){ g_snprintf(s, 18, "%02d", atoi(exc)); c = s; } ADD_TMPQSO_STRING(band, exc, c, isu, uexc); if (ctest->rstused!=1) add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_EXC, c); #ifdef HAVE_SNDFILE gssbd->code++; #endif } void add_tmpqso_locator(struct band *band,gchar *wwl,int isu, int isshort) { int qtf_int; double qrb, qtf; char s[8]; /* CHANGE look at recalc_all_qrbqtf */ qrbqtf(ctest->pwwlo, wwl, &qrb, &qtf, NULL, 2); qtf_int=(int)(qtf+0.5); if (qrb < 0.1) { qrb=0; qtf_int=0; } ADD_TMPQSO_GDOUBLE(band, qrb, qrb, isu, uqrb); ADD_TMPQSO_GINT(band, qtf, qtf_int, isu, uqtf); if (isshort) safe_strncpy(s, wwl, 4+1); else safe_strncpy(s, wwl, 6+1); ADD_TMPQSO_STRING(band,locator,s,isu,ulocator); if (ctest->rstused!=1) add_date_time(band); #ifdef HAVE_SNDFILE gssbd->code++; #endif ac_update_tmpctp(band->tmpqsos[0].locator); } void after_callsign(struct band *band,char *c, char *oldtmpqcall){ gchar *wwl0, *wwl1, *wwl2, *name, *d, *exc0, *exc1, *exc2; struct qrv_item *qi; int done=0; char raw[20],raw1[20]; // gchar *qrv_str; int unkcall=1; // struct qrv_item *qi; /*** name ***/ zg_free0(band->tmpqsos[0].name); z_get_raw_call(raw,c); name = find_name_by_call(namedb, raw); if (name){ band->tmpqsos[0].name = g_strdup(name); unkcall=0; } zg_free0(band->tmpqsos[1].name); z_get_raw_call(raw1, band->tmpqsos[1].callsign); name = find_name_by_call(namedb, raw1); if (name){ band->tmpqsos[1].name = g_strdup(name); } /*** qrv string ***/ compute_qrv_wkd(z_str_uc(c)); /*** locator ***/ if (!band->tmpqsos[0].ulocator && ctest->wwlused){ wwl0 = find_wwl_by_call(cw, z_str_uc(c)); wwl1 = find_wwl_by_call(cw, NULL); wwl2 = find_wwl_by_oband(band, raw); /* yes, raw not c */ qi = qrv_get(qrv, c); if (wwl1) {add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl0) {add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl2) {add_tmpqso_locator(band, wwl2, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (qi) {add_tmpqso_locator(band, qi->wwl, !ctest->wwlcfm, 0); done=1; unkcall=0;} } /* try remove /p */ if (!done && !band->tmpqsos[0].ulocator && ctest->wwlused){ wwl0 = find_wwl_by_call(cw, z_str_uc(raw)); wwl1 = find_wwl_by_call(cw, NULL); wwl2 = find_wwl_by_oband(band, raw); if (wwl1) {add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl0) {add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl2) {add_tmpqso_locator(band, wwl2, !ctest->wwlcfm, 0); done=1; unkcall=0;} // no qrv_get, it strips /p itself } /* try add /p */ if (!done && !band->tmpqsos[0].ulocator && ctest->wwlused){ strcat(raw,"/P"); wwl0 = find_wwl_by_call(cw, z_str_uc(raw)); wwl1 = find_wwl_by_call(cw, NULL); wwl2 = find_wwl_by_oband(band, raw); qi = qrv_get(qrv, c); if (wwl1) {add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl0) {add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (wwl2) {add_tmpqso_locator(band, wwl2, !ctest->wwlcfm, 0); done=1; unkcall=0;} if (qi) {add_tmpqso_locator(band, qi->wwl, !ctest->wwlcfm, 0); done=1; unkcall=0;} } if (!done && !band->tmpqsos[0].ulocator && ctest->wwlused){ char dxc[30]; get_dxcc(dw, dxc, z_str_uc(c)); wwl0 = find_wwl_by_dxc(dw, z_str_uc(dxc)); wwl1 = find_wwl_by_dxc(dw, NULL); if (wwl1) add_tmpqso_locator(band, wwl1, !ctest->wwlcfm, 1); if (wwl0) add_tmpqso_locator(band, wwl0, !ctest->wwlcfm, 1); } if (band->tmpqsos[0].ulocator && ctest->wwlused){ int susp; if ((susp=get_susp_call(cw, dw, band->tmpqsos[0].callsign, band->tmpqsos[0].locator))!=0){ band->tmpqsos[0].suspcallsign = susp; }else{ band->tmpqsos[0].susplocator = 0; band->tmpqsos[0].suspcallsign = 0; } }else{ /* v kazdem pripade se bude kontrolovat susp_call */ int susp; if ((susp=get_susp_call(cw, dw, band->tmpqsos[0].callsign, NULL))!=0){ band->tmpqsos[0].suspcallsign = susp; }else{ band->tmpqsos[0].susplocator = 0; band->tmpqsos[0].suspcallsign = 0; } } /******** EXC *********/ if (!band->tmpqsos[0].uexc && ctest->excused > 0){ exc0 = find_exc_by_call(excdb, z_str_uc(c)); exc1 = find_exc_by_call(excdb, NULL); exc2 = find_exc_by_oband(band, raw); /* yes, raw not c */ if (exc1) {ADD_TMPQSO_STRING(band,exc,exc1,!ctest->exccfm,uexc); done=1; } if (exc0) {ADD_TMPQSO_STRING(band,exc,exc0,!ctest->exccfm,uexc); done=1; } if (exc2) {ADD_TMPQSO_STRING(band,exc,exc2,!ctest->exccfm,uexc); done=1; } } band->tmpqsos[0].unkcall=unkcall; #ifdef HAVE_SNDFILE ssbd_callsign(gssbd, c); #endif wkd_tmpqso(band, WT_CALLSIGN, c); d=TMPQ.locator; map_clear_qso(&aband->tmplocqso, aband); zg_free0(aband->tmplocqso.locator); aband->tmplocqso.locator=g_strdup(d); if (d && *d){ compute_qrbqtf(&aband->tmplocqso); map_add_qso(&aband->tmplocqso, aband); } //dbg("after_call(%d, %d==%d, oldtmpqcall=%s)\n", ctest->runmode, gses->mode, MOD_CW_CW, oldtmpqcall); if (ctest->runmode && gses->mode == MOD_CW_CW && oldtmpqcall == NULL){ if (cfg->cwda_autgive > 0){ // we must omit call struct cq *cq = get_cq_by_number(cfg->cqs, 1); if (!cq){ cq->stripcall = 1; //dbg("%s1: cq_run_by_number(1)\n", __FUNCTION__); cq_run_by_number(1); // 5NN $MX cq->stripcall = 0; } }else{ //dbg("%s2: cq_run_by_number(1)\n", __FUNCTION__); cq_run_by_number(1); // $C 5NN $MX aband->iscall = 1; //dbg("after_call: set iscall=%d\n", aband->iscall); } } if (TMPQ.suspcallsign < 1){ enum suspcall susp; struct qso *qso = g_new0(struct qso, 1); qso->callsign = TMPQ.callsign ? TMPQ.callsign : ""; /* foreign keys */ qso->locator = TMPQ.locator ? TMPQ.locator : ""; qso->rsts = TMPQ.rsts ? TMPQ.rsts : ""; qso->qsonrs = TMPQ.qsonrs ? TMPQ.qsonrs : ""; qso->rstr = TMPQ.rstr ? TMPQ.rstr : ""; qso->qsonrr = TMPQ.qsonrr ? TMPQ.qsonrr : ""; susp = qso_info(qso, NULL, NULL); if (susp == SUSP_WARN && TMPQ.suspcallsign < 1) TMPQ.suspcallsign = 1; if (susp == SUSP_ERR && TMPQ.suspcallsign < 2) TMPQ.suspcallsign = 2; g_free(qso); } } void after_locator(struct band *band,char *c){ gchar *call0, *call1; gchar *dxc0, *dxc1; int done=0; char raw[20], *name; dbg("after_locator('%s')\n", c); if (!band->tmpqsos[0].ucallsign){ call0 = find_call_by_wwl(cw, z_str_uc(c)); call1 = find_call_by_wwl(cw, NULL); if (call1) { ADD_TMPQSO_STRING(band,callsign,call1,0,ucallsign); z_get_raw_call(raw,call1); name = find_name_by_call(namedb, raw); ADD_TMPQSO_STRING(band,name,name,0,udummy); done=1; } if (call0) { ADD_TMPQSO_STRING(band,callsign,call0,0,ucallsign); done=1; z_get_raw_call(raw,call0); name = find_name_by_call(namedb, raw); ADD_TMPQSO_STRING(band,name,name,0,udummy); } } if (!done && !band->tmpqsos[0].ucallsign){ dxc0 = find_dxc_by_wwl(dw, z_str_uc(c)); dxc1 = find_dxc_by_wwl(dw, NULL); if (dxc1) ADD_TMPQSO_STRING(band,callsign,dxc1,0,ucallsign); if (dxc0) ADD_TMPQSO_STRING(band,callsign,dxc0,0,ucallsign); } if (band->tmpqsos[0].ucallsign){ int susp; if ((susp=get_susp(cw, dw, band->tmpqsos[0].callsign, band->tmpqsos[0].locator, 1))!=0){ dbg("susp=%d\n", susp); band->tmpqsos[0].susplocator = susp & 0xff; band->tmpqsos[0].suspcallsign = susp >> 8; }else{ band->tmpqsos[0].suspcallsign = 0; band->tmpqsos[0].susplocator = 0; } } wkd_tmpqso(band, WT_LOCATOR, c); map_clear_qso(&band->tmplocqso, band); zg_free0(band->tmplocqso.locator); band->tmplocqso.locator=g_strdup(c); if (c && *c){ compute_qrbqtf(&band->tmplocqso); map_add_qso(&band->tmplocqso, band); redraw_later(); } ac_update_tmpctp(c); if (ctest->runmode){ // cq_run_by_number(2); // $B TU QRZ process_input(band, "", 0); } if (TMPQ.susplocator < 1){ enum suspcall susp; struct qso *qso = g_new0(struct qso, 1); qso->callsign = TMPQ.callsign ? TMPQ.callsign : ""; /* foreign keys */ qso->locator = TMPQ.locator ? TMPQ.locator : ""; qso->rsts = TMPQ.rsts ? TMPQ.rsts : ""; qso->qsonrs = TMPQ.qsonrs ? TMPQ.qsonrs : ""; qso->rstr = TMPQ.rstr ? TMPQ.rstr : ""; qso->qsonrr = TMPQ.qsonrr ? TMPQ.qsonrr : ""; susp = qso_info(qso, NULL, NULL); if (susp == SUSP_WARN && TMPQ.susplocator < 1) TMPQ.susplocator = 1; if (susp == SUSP_ERR && TMPQ.susplocator < 2) TMPQ.susplocator = 2; g_free(qso); } } void after_exc(struct band *band,char *c){ if (ctest->runmode){ //cq_run_by_number(2); // $B TU QRZ process_input(band, "", 0); } } void after_qsonrr(struct band *band,char *c){ if (ctest->runmode){ //cq_run_by_number(2); // $B TU QRZ process_input(band, "", 0); } } void add_unres(struct band *band, gchar *c){ gchar *tmpc; if (!band->unres){ band->unres=g_strdup(c); return; } tmpc=g_strconcat(band->unres, " ", c, NULL); g_free(band->unres); band->unres=tmpc; } void add_date_time(struct band *band){ char *d; time_t now; struct tm utc; time(&now); gmtime_r(&now, &utc); if (!band->tmpqsos[0].date_str){ d=g_strdup_printf("%4d%02d%02d",1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); ADD_TMPQSO_STRING(band,date_str,d,1,udummy); g_free(d); } if (!band->tmpqsos[0].time_str){ d=g_strdup_printf("%02d%02d",utc.tm_hour, utc.tm_min); ADD_TMPQSO_STRING(band,time_str,d,1,udummy); g_free(d); } } void fix_date_time(struct band *band){ struct qso *q; int i; gchar *last,*cur; if (!band->tmpqsos[0].date_str || !band->tmpqsos[0].time_str){ zg_free0(band->tmpqsos[0].date_str); zg_free0(band->tmpqsos[0].time_str); band->tmpqsos[0].date_str=NULL; band->tmpqsos[0].time_str=NULL; return; } /* tmpqso->date/time filled in */ q=NULL; for (i=band->qsos->len-1;i>=0;i--){ q=(struct qso *)g_ptr_array_index(band->qsos, i); if (q->error || q->dupe) { q=NULL; continue; } break; } if (!q) return; last=g_strconcat(q->date_str, q->time_str, NULL); cur=g_strconcat(band->tmpqsos[0].date_str, band->tmpqsos[0].time_str, NULL); if ((i=strcmp(last,cur))>0){ zg_free0(band->tmpqsos[0].date_str); zg_free0(band->tmpqsos[0].time_str); band->tmpqsos[0].date_str=NULL; band->tmpqsos[0].time_str=NULL; return; } /* dbg("last=%s cur=%s ret=%d\n", last, cur, i);*/ g_free(last); g_free(cur); } void process_input_no_contest(void *enterdata, gchar *text, int cq){ char *s,*c; char *c1,*c2,*c3,*c4,*c5; char *token_ptr; c1=c2=c3=c4=c5=NULL; s=g_strdup(text); for (c=strtok_r(s,DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL,DELIM, &token_ptr) ){ /***** QRG ************************************************************/ if (regmatch(c,"\\.([0-9][0-9][0-9])$",&c1,&c2,&c3,&c4,NULL)==0){ #ifdef HAVE_HAMLIB freq_t qrg; int khz; khz = atoi(c2); qrg = gtrigs->qrg; dbg("khz=%d qrg=%f\n", khz, qrg); qrg = floor(qrg/1000000.0) * 1000000.0 + khz * 1000.0; dbg("qrg=%f\n", qrg); trigs_set_qrg(gtrigs, qrg); #endif continue; } FREE_Cx; /***** FULL QRG in kHz ************************************************************/ if (regmatch(c,"\\.([0-9]{4,9})$",&c1,&c2,&c3,&c4,NULL)==0){ #ifdef HAVE_HAMLIB freq_t qrg; int khz; khz = atoi(c2); qrg = khz * 1000.0; dbg("khz=%d qrg=%f\n", khz, qrg); trigs_set_qrg(gtrigs, qrg); #endif continue; } FREE_Cx; if (strlen(c) > 0) call_info(NULL); } FREE_Cx; g_free(s); } void process_input(void *enterdata, char *text, int cq){ char *s,*c; /* struct tmpqsos tq[TMP_QSOS];*/ int num, ret; char *c1,*c2,*c3,*c4,*c5; char *token_ptr; struct band *band = (struct band *)enterdata; int qso_saved = 0; char *oldtmpqcall = NULL; dbg("process_input('%s', cq=%d)\n", text, cq); c1=c2=c3=c4=c5=NULL; zg_free0(band->unres); /* zg_free0(band->qrv_str);*/ #ifdef HAVE_SNDFILE ssbd_watchdog(gssbd, 1); #endif s=g_strdup(text); num=0; for (c=strtok_r(s,DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL,DELIM, &token_ptr) ){ num++; /* dbg("item='%s'\n",c); */ /* /m /mm dl/ok1mzm/p */ add_tmpxchg(band, c); FREE_Cx; if (ctest->exctype == EXC_VERIFIED){ if (is_valid_vexc(excdb, c)){ add_tmpqso_exc(band,c,1); after_exc(band,c); continue; } } /***** LOCATOR *************************************************/ if (regcmp(c,"^[A-R]{2}[0-9]{2}[A-X]{2}$")==0){ add_tmpqso_locator(band,c,1,0); band->last_item = LI_WWL; after_locator(band, c); continue; } FREE_Cx; if (ctest->wwlused == 3 || ctest->wwlused == 4){ // 3=used(4), 4=opt(4) if (regcmp(c,"^[A-R]{2}[0-9]{2}$")==0){ add_tmpqso_locator(band,c,1,1); band->last_item = LI_WWL; after_locator(band, c); continue; } FREE_Cx; } /***** 2-3 digits 111-599 ***********************************************/ if (regmatch(c,"^([1-5][1-9]{1,2})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_RSTS: add_tmpqso_rsts(band, c2); continue; case TT_RSTR: add_tmpqso_rstr(band, c2); continue; case TT_QSONRR: add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** 2-3 digits 111-599 ***********************************************/ if (regmatch(c,"^([1-5][1-9]{1,2}[ARMS]{0,1})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_RSTS: add_tmpqso_rsts(band, c2); continue; case TT_RSTR: add_tmpqso_rstr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** special RST ***********************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_RSTS: add_tmpqso_rsts(band, c2); continue; case TT_RSTR: add_tmpqso_rstr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** 2-3 digits 000-999 ***********************************************/ if (regmatch(c,"^([0-9]{1,3})$", &c1, &c2, &c3, NULL)==0){ switch (ctest->tttype){ case TT_NONE: continue; case TT_QSONRR: add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; case TT_EXC: add_tmpqso_exc(band, c2, 1); after_exc(band,c2); continue; default: add_unres(band, c2); continue; } } FREE_Cx; /***** four digits QSO nr. ***********************************************/ if (regmatch(c,"^([0-9]{4})$", &c1, &c2, NULL)==0){ add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; } FREE_Cx; #if 0 // matched by 2-3 digits or special RST /***** RST *************************************************/ if (regcmp(c,"^[R1-5][1-9]{1,2}[ARMS]{0,2}$")==0){ if (ctest->qsoused){ add_tmpqso_rstr(band, c); }else{ add_tmpqso_rsts(band, c); } continue; } FREE_Cx; #endif /***** RSTR ***********************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2}[ARMS]{0,2}),$", &c1, &c2, &c3, NULL)==0){ add_tmpqso_rstr(band, c2); continue; } FREE_Cx; /***** RSTS ***********************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2}[ARMS]{0,2})'", &c1, &c2, &c3, NULL)==0){ add_tmpqso_rsts(band, c2); continue; } FREE_Cx; /***** QSONRR ***********************************************/ if (regmatch(c,"^([0-9]{1,4});", &c1, &c2, &c3, NULL)==0){ add_tmpqso_qsonrr(band, c2); after_qsonrr(band, c2); continue; } FREE_Cx; if (ctest->excused>0 && !ctest->qsoused){ /***** RST RECV + EXC ****************************************/ if (get_mode() == MOD_CW_CW) ret=regmatch(c,"^([1-5][1-9]{2})[-_]?(.*)$",&c1,&c2,&c3,NULL); else ret=regmatch(c,"^([1-5][1-9]{1})[-_]?(.*)$",&c1,&c2,&c3,NULL); if (ret==0){ char *d; d=c3; if (!is_valid_vexc(excdb, d)){ add_unres(band, d); continue; } add_tmpqso_exc(band,d,1); ADD_TMPQSO_STRING(band,rstr,c2,1,uexc); add_date_time(band); band->last_item = LI_NONE; wkd_tmpqso(band, WT_RSTR, c2); #ifdef HAVE_SNDFILE gssbd->code++; #endif after_exc(band,d); continue; } FREE_Cx; } /***** RST RECV + QSONR RECV ************************************/ if (regmatch(c,"^([R1-5][1-9]{1,2}[ARMS]{0,2})[-_]?([0-9]{3,4})$",&c1,&c2,&c3,NULL)==0){ if (add_tmpqso_qsonrr(band, c3) != 0){ add_unres(band, c); continue; } add_tmpqso_rstr(band, c2); after_qsonrr(band, c2); continue; } FREE_Cx; /***** TIME ****************************************************/ if (regmatch(c,"^([0-2]?[0-9])[:\\.]([0-5]?[0-9])$",&c1,&c2,&c3,NULL)==0){ if (atoi(c2)>=24) { add_unres(band, c); continue;} c4=g_strdup_printf("%02d%02d",atoi(c2),atoi(c3)); ADD_TMPQSO_STRING(band,time_str,c4,1,udummy); g_free(c4); c4=NULL; continue; } FREE_Cx; if (regmatch(c,"^[:\\.]([0-5]?[0-9])$",&c1,&c2,NULL)==0){ time_t now; struct tm utc; time(&now); gmtime_r(&now, &utc); c4=g_strdup_printf("%02d%02d",utc.tm_hour, atoi(c2)); ADD_TMPQSO_STRING(band,time_str,c4,1,udummy); g_free(c4); c4=NULL; continue; } FREE_Cx; /****** DATE **************************************************/ if (regmatch(c,"^([0-9]{4})([0-9]{2})([0-9]{2})$",&c1,&c2,&c3,&c4, NULL)==0){ int year,month,day; /*dbg("%s %s %s %s\n",c1,c2,c3,c4);*/ /* year = atoi(c1);*/ year = atoi(c2); month = atoi(c3); day = atoi(c4); if (year < 1900 || year > 3000 || month < 1 || month > 12 || day < 1 || day > 31) { add_unres(band, c); continue; } ADD_TMPQSO_STRING(band,date_str,c,1,udummy); continue; } FREE_Cx; #if 0 four digits is now QSO number if (regmatch(c,"^([0-9]{2})([0-9]{2})$",&c1,&c2,&c3, NULL)==0){ int month,day; time_t now; struct tm utc; char s[40]; /*dbg("%s %s %s %s\n",c1,c2,c3,c4);*/ month = atoi(c2); day = atoi(c3); if (month < 1 || month > 12 || day < 1 || day > 31) { add_unres(band,c); continue; } time(&now); gmtime_r(&now, &utc); sprintf(s, "%04d%02d%02d", 1900+utc.tm_year, month, day); ADD_TMPQSO_STRING(band,date_str,s,1,udummy); continue; } FREE_Cx; #endif /****** /X, e.g. /P ***********************************************/ if (regmatch(c,"^(\\/([A-Z0-9]{1,3})+)+$",&c1,&c2,&c3,&c4,NULL)==0){ gchar *stroke, *newcall; oldtmpqcall = band->tmpqsos[0].callsign; /*dbg("%s %s %s %s\n",c1,c2,c3,c4);*/ if (!band->tmpqsos[0].callsign) { add_unres(band,c); continue;} stroke = g_strdup(c1); FREE_Cx; if (regmatch(band->tmpqsos[0].callsign, "^([0-9A-Z]{1,3}\\/)?([0-9][A-Z]|[A-Z]{1,2}[0-9]{1,4}[A-Z]{1,3})(\\/([A-Z0-9]{1,3})+)+$", &c1, &c2, &c3, &c4, &c5, NULL)==0){ if (c4 && strcmp(c4, stroke)==0) newcall = g_strconcat(c2?c2:"", c3, NULL); else newcall = g_strconcat(c2?c2:"", c3, stroke, NULL); }else{ newcall = g_strconcat(band->tmpqsos[0].callsign, stroke, NULL); } ADD_TMPQSO_STRING(band, callsign, newcall, 1, ucallsign); after_callsign(band,newcall, oldtmpqcall); g_free(newcall); g_free(stroke); #ifdef HAVE_SNDFILE gssbd->code++; #endif continue; } FREE_Cx; /***** CALLSIGN 1 *************************************************/ if (regcmp(c,"^([0-9A-Z]{1,3}\\/)?([0-9][A-Z]|[A-Z]{1,2}[0-9]?)[0-9]{1,4}[A-Z]{1,4}(\\/[A-Z0-9]{1,3})*$")==0){ struct qso *qso; int i; oldtmpqcall = band->tmpqsos[0].callsign; i = get_qso_index_by_callsign(band, c); if (ctest->expmode) i = -1; if (i>=0 && !z_call_is_rover(c)){ qso=(struct qso*)g_ptr_array_index(band->qsos, i); if (!band->ignoreswap){ band->dupe_in_tmpqso_index = i; compute_qrv_wkd(c); duplicate_callsign(qso); } continue; } ADD_TMPQSO_STRING(band,callsign,c,1,ucallsign); band->last_item = LI_CALL; after_callsign(band, c, oldtmpqcall); #ifdef HAVE_SNDFILE gssbd->code++; #endif continue; } FREE_Cx; /***** TWO LETTERS ****************************************************/ if (regcmp(c,"^([A-Z][A-Z])$")==0){ /*dbg("TWO %s \n", c);*/ #ifdef HAVE_SNDFILE gssbd->code++; #endif if (band->last_item==LI_WWL){ if (band->tmpqsos[0].locator && band->tmpqsos[0].ulocator){ band->tmpqsos[0].locator[4]='\0'; strcat(band->tmpqsos[0].locator, c); after_locator(band,TMPQ.locator); } continue; } if (band->last_item==LI_CALL){ goto nasty_hack; } add_unres(band, c); continue; } FREE_Cx; /***** QSL CARD PROMISED *********************************************/ if (strcasecmp(c,"q")==0){ band->tmpqsos[0].qsl = !band->tmpqsos[0].qsl; continue; } /***** TWO DIGITS and TWO LETTERS ********************************************/ if (regcmp(c,"^([0-9][0-9][A-Z][A-Z])$")==0){ /* dbg("TWO and TWO %s \n", c);*/ /*if (band->last_item==LI_WWL){ if (band->tmpqsos[0].locator && band->tmpqsos[0].ulocator){ band->tmpqsos[0].locator[2]='\0'; strcat(band->tmpqsos[0].locator, c); after_locator(band,TMPQ.locator); } }*/ char s[20]; strcpy(s, c); z_nearest_wwl(s, ctest ? ctest->pwwlo : cfg->pwwlo); add_tmpqso_locator(band, s, 1, 0); band->last_item = LI_WWL; after_locator(band, s); #ifdef HAVE_SNDFILE gssbd->code++; #endif continue; } FREE_Cx; /***** ONE OR THREE LETTERS *******************************************/ if (regcmp(c,"^([A-Z]{1,3})$")==0){ struct qso *qso; oldtmpqcall = band->tmpqsos[0].callsign; /*dbg("ONE OR THREE %s \n", c);*/ nasty_hack:; FREE_Cx; if (band->tmpqsos[0].callsign && band->tmpqsos[0].ucallsign && regmatch(band->tmpqsos[0].callsign, "^([0-9A-Z]{1,3}\\/)?([0-9][A-Z]|[A-Z]{1,2}[0-9]{1,4})([A-Z]{1,3})((\\/[A-Z0-9]{1,3})*)$", &c1, &c2, &c3, &c4, &c5, NULL)==0){ GString *gs; int i; /*dbg("c1=%s\nc2=%s\nc3=%s\nc4=%s\nc5=%s\n", c1, c2, c3, c4, c5);*/ gs=g_string_sized_new(20); if (c2) g_string_append(gs, c2); if (c3) g_string_append(gs, c3); if (c) g_string_append(gs, c); if (c5) g_string_append(gs, c5); i = get_qso_index_by_callsign(band, gs->str); if (ctest->expmode) i = -1; if (i>=0 && !z_call_is_rover(gs->str)){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (!band->ignoreswap){ band->dupe_in_tmpqso_index = i; compute_qrv_wkd(c); duplicate_callsign(qso); } g_string_free(gs, TRUE); continue; } g_free(band->tmpqsos[0].callsign); band->tmpqsos[0].callsign=g_strdup(gs->str); /* ADD_TMPQSO_STRING */ after_callsign(band, gs->str, oldtmpqcall); g_string_free(gs, TRUE); #ifdef HAVE_SNDFILE gssbd->code++; #endif } continue; } FREE_Cx; /***** REMARK ************************************************************/ if (regmatch(c,"^#(.*)",&c1,&c2,&c3,&c4,NULL)==0){ if (band->tmpqsos[0].remark) g_free(band->tmpqsos[0].remark); band->tmpqsos[0].remark=g_strdup(c2); fixsemi(band->tmpqsos[0].remark); continue; } /***** EXC ************************************************************/ if (regmatch(c,"(.*)\\.$",&c1,&c2,&c3,&c4,NULL)==0){ if (!c2 || !*c2){ add_tmpqso_exc(band, "nil", 1); wkd_tmpqso(band, WT_EXC, c2); continue; } if (!is_valid_vexc(excdb, c2)){ add_unres(band, c2); continue; } add_tmpqso_exc(band,c2,1); after_exc(band,c2); continue; } FREE_Cx; /***** QRG ************************************************************/ if (regmatch(c,"\\.([0-9][0-9][0-9])$",&c1,&c2,&c3,&c4,NULL)==0){ #ifdef HAVE_HAMLIB freq_t qrg; int khz; khz = atoi(c2); qrg = gtrigs->qrg; dbg("khz=%d qrg=%f\n", khz, qrg); qrg = floor(qrg/1000000.0) * 1000000.0 + khz * 1000.0; dbg("qrg=%f\n", qrg); trigs_set_qrg(gtrigs, qrg); #endif continue; } FREE_Cx; /***** FULL QRG in kHz ************************************************************/ if (regmatch(c,"\\.([0-9]{4,9})$",&c1,&c2,&c3,&c4,NULL)==0){ #ifdef HAVE_HAMLIB freq_t qrg; int khz; khz = atoi(c2); qrg = khz * 1000.0; dbg("khz=%d qrg=%f\n", khz, qrg); trigs_set_qrg(gtrigs, qrg); #endif continue; } FREE_Cx; /***** CALLSIGN 2 *************************************************/ if (regmatch(c,"^([0-9A-Z]+)/$",&c1,&c2,&c3,&c4,NULL)==0){ struct qso *qso; int i; oldtmpqcall = band->tmpqsos[0].callsign; i = get_qso_index_by_callsign(band, c2); if (ctest->expmode) i = -1; if (i>=0 && !z_call_is_rover(c2)){ qso = (struct qso *)g_ptr_array_index(band->qsos, i); if (!band->ignoreswap){ band->dupe_in_tmpqso_index = i; compute_qrv_wkd(c); duplicate_callsign(qso); } continue; } ADD_TMPQSO_STRING(band,callsign,c2,1,ucallsign); band->last_item = LI_CALL; after_callsign(band, c2, oldtmpqcall); continue; } FREE_Cx; /* item is unresolved */ add_unres(band, c); FREE_Cx; } FREE_Cx; if (!num){ if (band->tmpqsos[0].callsign && band->tmpqsos[0].ucallsign && (band->tmpqsos[0].rsts || ctest->rstused!=1) && /* 0=no/1=yes */ (band->tmpqsos[0].rstr || ctest->rstused!=1) && (band->tmpqsos[0].qsonrr || ctest->qsoused!=1) && ((band->tmpqsos[0].exc && band->tmpqsos[0].uexc) || ctest->excused!=1) && ((band->tmpqsos[0].locator && band->tmpqsos[0].ulocator) || ctest->wwlused!=1) && can_cq(aband) ) { struct qso *q; fix_date_time(band); add_date_time(band); q=g_new0(struct qso,1); q->source = g_strdup(gnet->myid); q->stamp = time(NULL); q->date_str = g_strdup(band->tmpqsos[0].date_str); q->time_str = g_strdup(band->tmpqsos[0].time_str); q->callsign = g_strdup(band->tmpqsos[0].callsign); q->operator_ = g_strdup(band->operator_); q->rsts = g_strdup(band->tmpqsos[0].rsts?band->tmpqsos[0].rsts:""); q->rstr = g_strdup(band->tmpqsos[0].rstr?band->tmpqsos[0].rstr:""); if (ctest->qsoglob){ q->qsonrs = g_strdup_printf("%03d", ctest->allqsos->len+1); }else{ q->qsonrs = g_strdup(band->tmpqsos[0].qsonrs?band->tmpqsos[0].qsonrs:""); } q->qsonrr = g_strdup(band->tmpqsos[0].qsonrr?band->tmpqsos[0].qsonrr:""); if (band->tmpqsos[0].ulocator){ q->locator = g_strdup(band->tmpqsos[0].locator); q->qrb = band->tmpqsos[0].qrb; q->qtf = band->tmpqsos[0].qtf; }else{ q->locator = g_strdup(""); } q->dupe = band->tmpqsos[0].dupe; q->qsop = 0; /* update_stats */ q->qsl = band->tmpqsos[0].qsl; q->remark = g_strdup(band->tmpqsos[0].remark?band->tmpqsos[0].remark:""); fixsemi(q->remark); if (band->tmpqsos[0].exc){ if (strcmp(band->tmpqsos[0].exc, "nil")!=0) q->exc = g_strdup(band->tmpqsos[0].exc); else q->exc = g_strdup(""); }else{ q->exc = g_strdup(""); } /* q->serial = ctest->serial++;*/ #ifdef HAVE_HAMLIB if (gtrigs->trigs->len > 0 && gtrigs->qrg >= band->qrg_min * 1000.0 && gtrigs->qrg <= band->qrg_max * 1000.0) q->qrg = gtrigs->qrg; else #endif q->qrg = 0.0; if (get_mode() == MOD_SSB_SSB || get_mode() == MOD_CW_CW){ int s,r; /* CHANGE menu2.c refresh_edit_qso */ s=strlen(q->rsts); r=strlen(q->rstr); if (s==3 && r==3) q->mode=MOD_CW_CW; if (s==2 && r==2) q->mode=MOD_SSB_SSB; if (s==3 && r==2) q->mode=MOD_CW_SSB; if (s==2 && r==3) q->mode=MOD_SSB_CW; } q->ser_id=-1; /* computed by add_qso_to_index */ compute_qrbqtf(q); /* for kx & ky */ add_qso(band,q); write_qso_to_swap(band, q); replicate_qso(NULL, q); update_stats(band, band->stats, q); recalc_allb_stats(); minute_stats(band); recalc_statsfifo(band); recalc_worked_skeds(band); #ifdef HAVE_SNDFILE if (ssbd_recording(gssbd)){ ssbd_abort(gssbd,1); ssbd_abort(gssbd,0); } #endif check_autosave(); map_add_qso(q, aband); map_clear_qso(&band->tmplocqso, aband); ctrl_back(band); #ifdef HAVE_HAMLIB if (ctest->runmode){ int i; for (i = 0; i < gtrigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(gtrigs->trigs, i); if (trig->clr_rit) { trig_set_rit(trig, 0.0); } } } #endif qso_saved = 1; } } dbg("process_input(runmode=%d, len=%d, cq=%d, last_cq=%p)\n", ctest->runmode, strlen(text), cq, gses->last_cq); if (qso_saved){ if (gses->mode == MOD_CW_CW && ctest->runmode && strlen(text)==0){ // tady muzeme prepsat $C 5NN $MX, pokud se znacka opravuje a zadava se vsechno najednou cq_run_by_number(2); // $B TU QRZ } clear_tmpqsos(band,1); }else{ if (gses->mode == MOD_CW_CW && ctest->runmode && strlen(text)==0 && cq!= 0 && gses->last_cq == NULL){ if (band->tmpqsos[0].callsign){ cq_run_by_number(1); // $C 5NN $MX }else{ cq_run_by_number(0); // CQ $MC TEST } } } g_free(s); redraw_later(); } void draw_time(void){ char s[16]; time_t now; struct tm utc; int color; time(&now); gmtime_r(&now, &utc); sprintf(s, " %d:%02d:%02d ", utc.tm_hour, utc.tm_min, utc.tm_sec); #ifdef Z_UNIX color=COL_RED; if (ntpq && ntpq->good) #endif color=COL_NORM; print_text(term->x-6-strlen(s),0,11,s,color); } void time_func(void *arg){ struct timeval tv; int remains; /*gettimeofday(&tv, NULL); dbg("usec=%06d\n", tv.tv_usec);*/ /* disable time drawing when bfu is active */ //if (term->windows.next == term->windows.prev || // gses->win->prev->handler == cwwindow_func) if (gses->win->prev->handler != mainmenu_func) draw_time(); gettimeofday(&tv, NULL); remains=1000-(tv.tv_usec/1000); /*dbg("usec=%06d remains=%d\n", tv.tv_usec, remains);*/ gses->timer_id = zselect_timer_new(zsel, remains, time_func, NULL); } void print_tucnak(int x, int y){ int col_black, col_white, col_yellow; if (term->spec->col){ col_black=COL(0x38);/* 3f */ col_white=COL(0x7f); col_yellow=COL(0x7b); }else{ col_black=COL(0x70); col_white=COL(0x3f); col_yellow=COL(0x7b); } fill_area( x-1, y-1, 23, 14, col_black); print_text(x+8, y, -1,"#####",col_black); print_text(x+7, y+1, -1,"#######",col_black); print_text(x+7, y+2, -1,"#######",col_black); print_text(x+9, y+2, 1,"O",col_white); print_text(x+11,y+2, 1,"O",col_white); print_text(x+7, y+3, -1,"#######",col_black); print_text(x+8, y+3, -1,"#####",col_yellow); print_text(x+5, y+4, -1,"##",col_black); print_text(x+7, y+4, -1,"##",col_white); print_text(x+9 ,y+4, -1,"###",col_yellow); print_text(x+12,y+4, -1,"##",col_white); print_text(x+14,y+4, -1,"##",col_black); print_text(x+4, y+5, -1,"#",col_black); print_text(x+5, y+5, -1,"##########",col_white); print_text(x+15,y+5, -1,"##",col_black); print_text(x+3, y+6, -1,"#",col_black); print_text(x+4, y+6, -1,"############",col_white); print_text(x+16,y+6, -1,"##",col_black); print_text(x+3, y+7, -1,"#",col_black); print_text(x+4, y+7, -1,"############",col_white); print_text(x+16,y+7, -1,"###",col_black); print_text(x+2 ,y+8, -1,"##",col_yellow); print_text(x+4, y+8, -1,"#",col_black); print_text(x+5, y+8, -1,"###########",col_white); print_text(x+16,y+8, -1,"##",col_black); print_text(x+18,y+8,-1,"#",col_yellow); print_text(x ,y+9, -1,"######",col_yellow); print_text(x+6, y+9, -1,"#",col_black); print_text(x+7, y+9, -1,"########",col_white); print_text(x+14,y+9, -1,"#",col_black); print_text(x+15,y+9,-1,"######",col_yellow); print_text(x ,y+10,-1,"#######",col_yellow); print_text(x+7, y+10,-1,"#",col_black); print_text(x+8, y+10,-1,"######",col_white); print_text(x+13,y+10,-1,"#",col_black); print_text(x+14,y+10,-1,"#######",col_yellow); print_text(x+2, y+11,-1,"#####",col_yellow); print_text(x+7, y+11,-1,"########",col_black); print_text(x+14,y+11,-1,"#####",col_yellow); } int load_hicalls_from_file(char *filename){ FILE *f; gchar *c; GString *gs; // gchar **items, *peerid; //char bandchar; f=fopen(filename, "rt"); if (!f) return 1; g_hash_table_foreach_remove(gses->hicalls, zg_hash_free_item, NULL); gs = g_string_sized_new(100); while( (c=zfile_fgets(gs, f, 0)) != NULL){ struct zstring *zstr = zstrdup(gs->str); char *call = ztokenize(zstr, 1); char *sval = ztokenize(zstr, 0); int *val = g_new(int, 1); if (sval) *val = atoi(sval); else *val = 1; g_hash_table_insert(gses->hicalls, g_strdup(call), val); zfree(zstr); } g_string_free(gs, 1); fclose(f); return 0; } void save_one_hicall(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call; int val; gs = (GString *) user_data; call = (gchar *) key; val = *((int*)value); zg_string_eprintfa("e", gs, "%s;%d\r\n", call, val); } int save_hicalls_to_file(char *filename){ FILE *f; int ret; GString *gs; f = fopen(filename, "wb"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } gs=g_string_sized_new(1000); g_hash_table_foreach(gses->hicalls, save_one_hicall, (gpointer) gs); ret = fprintf(f,"%s",gs->str) != gs->len ? errno: 0; g_string_free(gs, 1); fclose(f); return ret; } tucnak-4.04/src/net.h0000644000175000017500000001054112501641324011374 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __NET_H #define __NET_H #define LO_CW 0x01 #define LO_NAME 0x02 #define LO_QRV 0x04 #define C0(item) (item?item:"") #define PEER_FUNC void(*)(void) struct qso; union zsockaddr; extern struct net *gnet; enum net_state { NS_INIT=0, NS_CONNECTING, NS_CONNECTED, NS_WAIT_ACK, NS_DISCONNECTED, NS_DEAD, /* conn removed immediately */ NS_LONG }; extern char *ns_desc[]; enum authstate{ AS_NOTNEEDED = 0, AS_WAIT, AS_OK }; struct conn{ struct sockaddr_in sin; /* {sin_port, sin_addr.s_addr } */ int sock; enum net_state state; GString *wrbuf, *rdbuf; int relseq; int timer; gchar *remote_id; gchar *remote_ac; gchar *operator_; gchar *rwbands; int is_same_ctest; int replicating; /* replicating from other station in progress, huge amout of QSOs */ enum authstate authstate; char *salt; time_t start; long rx, tx; char *fid; }; struct net{ struct sockaddr_in my; /* IP of first interface (except lo) in alphab. order. host byteorder */ gchar *myid; /* 0.0.0.0:0 or 192.168.1.97:55555 */ struct sockaddr_in global; /* global master */ time_t global_expire; int global_priority; int master_priority; int udpsock; /* listen for announcement, -1 unused */ int tcpsock; /* listen for slaves, -1 unused */ int udptimer_id; int udptimer_period; struct sockaddr bcast_addr[MAX_INTERFACES]; int max_addrs; struct conn *master; GPtrArray *peers; /* struct conn[] */ gchar *allpeers; /* separated by semicolon */ gchar *rwbpeers; /* separated by semicolon. ID;OP;RWB */ gchar *bpeers; /* separated by semicolon. ID;OP;B */ void (*peerfunc)(void); /* todo */ GString *peers3; int timer3_id; struct conn *remote; struct zasyncdns *radns; int v3compatibility; /* set if heard broadcast without priority. to guess master, compare only IP and port */ }; struct net *init_net(void); void free_net(struct net *net); int init_net_udp (struct net *net); int init_net_tcp (struct net *net); int init_net_ifaces(struct net *net, int free_global); void free_net_udp(struct net *net); void free_net_tcp(struct net *net); void free_net_ifaces(struct net *net); void free_conn(struct conn *conn); void udp_read_handler(void *); void udp_exception_handler(void *); void udp_timer(void *); void udp_sendto(struct sockaddr_in *asin, int direct); #ifdef LEAK_DEBUG_LIST void debug_tcp_disconnect(char *file, int line, struct conn *conn); #define tcp_disconnect(a) debug_tcp_disconnect(__FILE__, __LINE__, (a)) #else void tcp_disconnect(struct conn *conn); #endif void tcp_read_handler(void *); void tcp_write_handler(void *); void tcp_exception_handler(void *); void tcp_accept_handler(void *); void rel_write(struct conn *conn, gchar *s); void rel_write_all(gchar *s); void rel_read(struct conn *conn, gchar *s); void tcp_set_state(struct conn *conn, enum net_state state); void tcp_connect(struct conn *conn); void tcp_kill(struct conn *conn); int cmp_sin(struct sockaddr_in *a, struct sockaddr_in *b); int cmp_master(int pria, int prib, struct sockaddr_in *a, struct sockaddr_in *b); void net_send_id(void); void net_send_ac(void); void net_send_operator(void); void net_send_read_write_bands(void); void net_send_talk(void); void net_test_same_contest(struct conn *conn, gchar *ac_text); void compare_remote_with_me(gpointer key, gpointer value, gpointer data); void qso_from_net(struct conn *conn, gchar *c); void replicate_qso(struct conn *conn, struct qso *q); gchar *get_timer_str(struct conn *conn); void send_config_request(int no); void send_cwdb_request(int no); int conn_prod_state(struct conn *conn); int some_replicating(struct net *net); struct conn *find_conn_by_remote_id(gchar *remote_id); void remove_conn_timer(void *arg); char *tcp_state_s(struct conn *conn); void iface_info(GString *gs); void net_connect_remote(struct net *); void net_remote_addrinfo(struct zasyncdns *adns, int n, int *family, int *socktype, int *protocol, int *addrlen, union zsockaddr *addr, char *errorstr); void conn_set_fid(struct conn *conn); #endif tucnak-4.04/src/ttys.c0000644000175000017500000000310612131552474011611 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdaemon.h" #include "fifo.h" #include "rc.h" #include "ttys.h" int ttys_init(struct cwdaemon *cwda){ #ifdef HAVE_TERMIOS_H cwda->zser = zserial_init_tty(cfg->cwda_device); #elif defined(WIN32) cwda->zser = zserial_init_win32(cfg->cwda_device); #endif zserial_set_line(cwda->zser, 9600, 8, 'N', 1); zserial_nolocks(cwda->zser, cfg->nolocks); ttys_open(cwda, 1); return 0; } int ttys_open(struct cwdaemon *cwda, int verbose){ if (zserial_open(cwda->zser)){ if (verbose) log_addf("%s", zserial_errorstr(cwda->zser)); ttys_reset(cwda); // ttys_free(cwda); return -1; } ttys_reset(cwda); return 0; } int ttys_free(struct cwdaemon *cwda){ if (!cwda) return 0; zserial_free(cwda->zser); return 0; } int ttys_reset(struct cwdaemon *cwda){ ttys_ptt(cwda, 0); ttys_cw(cwda, 0); ttys_ssbway(cwda, 0); return 0; } int ttys_cw(struct cwdaemon *cwda, int onoff){ if (zserial_dtr(cwda->zser, onoff)){ error("%s\n", zserial_errorstr(cwda->zser)); return -1; } return 0; } int ttys_ptt(struct cwdaemon *cwda, int onoff){ if (zserial_rts(cwda->zser, onoff)){ error("%s\n", zserial_errorstr(cwda->zser)); return -1; } return 0; } int ttys_ssbway(struct cwdaemon *cwda, int onoff){ return 0; } tucnak-4.04/src/msvcver.h.in0000644000175000017500000000003411752503461012702 00000000000000#define VERSION "@VERSION@" tucnak-4.04/src/rc.h0000644000175000017500000001205112534322227011214 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __RC_H #define __RC_H #include "header.h" struct band; struct config_band{ gchar bandchar; /* 'C', 'E', 'G', ... */ gchar *pband; /* 144 MHz */ gint psect; /* 1=Single, 0=Multi */ char *opsect; gint qrv,qrvnow,readonly; gchar *stxeq,*spowe; /* TM-255 + gi7b, 300 */ gchar *srxeq,*sante,*santh; /* TM-255, GW4PTS, 60;800 */ gchar *mope1,*mope2; /* OK1XDF, OK1MZM, OK1ZIA */ gchar *remarks; /* a little hack for OK */ gchar *ok_section_single; /* 2m=01, 70cm=03, ... */ gchar *ok_section_multi; /* 2m=02, 70cm=04, ... */ gint qrg_min,qrg_max; /* kHz */ gchar *adifband; /* 2m,70cm,23cm... */ gchar *cbrband; /* 2M,432,1.2G... */ gchar *skedqrg; gdouble band_lo; int band_sw; }; struct config { /* depending on callsign */ gchar *pcall; gchar *pwwlo; gchar *pexch; gchar *padr1,*padr2,*pclub; gchar *rname,*rcall,*radr1,*radr2,*rpoco,*rcity,*rcoun,*rphon,*rhbbs; gchar *default_rs,*default_rst; gint qsop_method, total_method; gint as_disk_aq, as_disk_am, as_floppy_aq, as_floppy_am; gint as_disk_fsync, as_floppy_fsync, as_mount; gchar *as_floppy_path, *as_mount_cmd; gchar *net_if_ignore, *net_ip_ignore, *net_ip_announce; int net_remote_enable; char *net_remote_host, *net_remote_pass; int net_remote_port; int net_masterpriority; GPtrArray *bands; struct config_band *band; /* active band during loading config */ GPtrArray *cqs; /* of struct cq */ struct cq *cq; struct term_spec *ts; GPtrArray *sws; /* of struct config_subwin */ struct config_subwin *sw; gint cwda_type; /* enum cwtype */ gchar *cwda_device, *cwda_hostname; gint cwda_udp_port, cwda_io_port; gint cwda_speed, cwda_weight, cwda_minwpm, cwda_maxwpm; gint cwda_leadin, cwda_spk; gint cwda_vid, cwda_pid, cwda_autgive; gint wk_wk2, wk_usepot, wk_usebut, wk_keymode, wk_swap; gint ssbd_type; gint ssbd_record, ssbd_maxmin, ssbd_diskfree; gint ssbd_format, ssbd_channels, ssbd_samplerate; gint ssbd_plev, ssbd_rlev; gchar *ssbd_template; gchar *ssbd_pcm_play, *ssbd_pcm_rec; gint ssbd_period_time; // period time in ms gint ssbd_buffer_time; gchar *ssbd_alsa_mixer, *ssbd_alsa_src; int ssbd_pa_play, ssbd_pa_rec; gchar *ssbd_dsp; gint ssbd_maxfrag; gchar *ssbd_mixer, *ssbd_oss_src; gint ssbd_recsrc; gchar *ssbd_hostname; gint ssbd_udp_port; gint trace_bcast, trace_sock, trace_recv, trace_send, trace_qsos, trace_rig, trace_sdev, trace_keys; GPtrArray *crigs; /* of struct config_rig */ struct config_rig *crig; GPtrArray *crotars; /* of struct config_rotar */ struct config_rotar *crotar; int loglines,skedcount; gchar *startband; GPtrArray *takeoff; /* of struct takeoff */ int global_operator; gchar *operator_; int gfx_x, gfx_y, ntpq, dssaver, splitheight, fullscreen, maximized; int usetouch, touchpos, altsyms, nolocks, portrait, reverse; int fontheight; char *slashkey; char *dxc_host; int dxc_port; char *dxc_user, *dxc_pass; char *kst_user, *kst_pass, *kst_name; int httpd_enable; int httpd_port; int httpd_show_priv; int ac_enable; // aircraft is enabled char *ac_url; // URL for fligtradar data double ac_kfactor; // troposphere k_factor double ac_arwidth; // area width in km double ac_minelev; // minimal elevation angle double ac_maxelev; // maximal elevation angle int ac_mindur; // minimal reflections duration in seconds double ac_maxdelta; // max difference of incidence and reflection angles int ac_minalt; // minimal AC altitude to show on map in meters int sdr_enable, sdr_cw, sdr_lsb, sdr_speed, sdr_af_speed, sdr_block; double sdr_zero, sdr_cw_low, sdr_cw_high, sdr_ssb_low, sdr_ssb_high; int sdr_rec_dsp_type, sdr_play_dsp_type; int sdr_pa_play, sdr_pa_rec; char *sdr_pcm_play, *sdr_pcm_rec, *sdr_sndfilename; char *wiki_url, *wiki_user, *wiki_pass, *wiki_page; int wiki_map, wiki_chart, wiki_overwrite; }; extern struct config *cfg; extern int opt_g, opt_i, opt_m, opt_s, opt_t, debug_keyboard, opt_x; extern long long tl; gint init_rc(void); void free_config_rig(struct config_rig *crig); void free_config_rotar(struct config_rotar *crot); gint free_rc(void); gint read_rc_line(gchar *str); gint read_rc_file(gchar *filename, const char *text); gint read_rc_files(void); void save_rc_string(GString *gs); gint save_rc_file(gchar *filename); int term_spec_init(void); char *parse_options(int argc, char **argv); gdouble get_rig_lo(struct band *band, int rignr); void set_rig_lo(struct band *band, int rignr, gdouble lo); #endif tucnak-4.04/src/map2d.c0000644000175000017500000000315712032761141011610 00000000000000#include #include #include #include int main(int argc, char *argv[]){ FILE *fin, *fout; char s[1024], *addr, *sym, *c; int text = 0, len; long last = 0; if (!(fin = fopen("tucnak.map", "rt"))){ perror("Can't open tucnak.map"); return -1; } if (!(fout = fopen("tucnak.d", "wt"))){ fclose(fin); perror("Can't open tucnak.d"); return -1; } while (fgets(s, sizeof(s) - 1, fin) != NULL){ len = strlen(s); if (len > 0 && s[len-1]=='\n') s[len-1] = '\0'; len = strlen(s); if (len > 0 && s[len-1]=='\r') s[len-1] = '\0'; // printf("s='%s'\n", s); //if (c[0] == ' ') c++; if (s[0] == '.'){ text = strncmp(s, ".text", 5) == 0; if (text){ strtok(s, " \r\n"); addr = strtok(NULL, " \r\n"); c = strtok(NULL, " \r\n"); // printf("text=%d\n", text); //printf("addr=%s c=%s\n", addr, c); last = strtol(addr, NULL, 16) + strtol(c, NULL, 16); } } // if (c[0] == '*') continue; if (!text) continue; if (strncmp(s, " ", 6) != 0) continue; addr = strtok(s, " "); sym = strtok(NULL, " "); c = strtok(NULL, " "); if (c) continue; if (strncmp(addr, "0x", 2) == 0) addr += 2; while (addr[0] == '0') addr++; if (sym[0] == '_') sym++; fprintf(fout, "%s %s\n", addr, sym); } fprintf(fout, "%lx\n", last); fclose(fin); fclose(fout); return 0; } tucnak-4.04/src/voip.c0000644000175000017500000003151312460207027011562 00000000000000/* Tucnak - VHF contest log Copyright (C) 2013-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "voip.h" #include #include "bfu.h" #include "dsp.h" #include "fifo.h" #include "main.h" #include "net.h" #include "rc.h" #include "session.h" #include "subwin.h" #include "ssbd.h" #include "tsdl.h" #ifdef VOIP #ifdef HAVE_SNDFILE struct voip *init_voip(void){ int port; struct voip *voip = g_new0(struct voip, 1); voip->jitterbuf = g_list_alloc(); voip->seq = 1; voip->spying = g_ptr_array_new(); MUTEX_INIT(voip->spying); voip->sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (voip->sock == -1) goto err; if (z_sock_reuse(voip->sock, 0)){ error("Can't clear SO_REUSEADDR\n"); goto err; } if (z_sock_nonblock(voip->sock, 1)){ error("Can't set O_NONBLOCK\n"); goto err; } for (port=7300; port<65536; port++){ struct sockaddr_in sin; memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(port); sin.sin_addr.s_addr = INADDR_ANY; if (bind(voip->sock, (struct sockaddr *)&sin, sizeof(sin))==0) break; if (port==65535) goto err; continue; } voip->udpport = port; return voip; err:; free_voip(voip); log_addf(VTEXT(T_VOIP_NO_INITIALIZED)); return NULL; } void free_voip(struct voip *voip){ int i; if (!voip) return; //voip_thread_join(voip); if (voip->sock != -1) closesocket(voip->sock); g_list_free(voip->jitterbuf); for (i = 0; i < voip->spying->len; i++){ struct voippeer *p = (struct voippeer *)g_ptr_array_index(voip->spying, i); voip_spy_free(p); } MUTEX_FREE(voip->spying); g_ptr_array_free(voip->spying, TRUE); g_free(voip); } struct voippacket *init_voippacket(void *srcbuf, int buflen){ // len is in bytes struct voippacket *p; int i; short *s, *d; size_t toalloc = buflen;//sizeof(uint32_t) + sizeof(uint16_t) + len * sizeof(short); p = (struct voippacket *)g_malloc(toalloc); p->len = (buflen - sizeof(struct voippacket) + sizeof(short)) / sizeof(short); s = (short *)srcbuf; d = p->buf; for (i = 0; i < p->len; i++){ *d = htons(*s); d++; s++; } return p; } void free_voippacket(struct voippacket *p){ g_free(p); } static int voip_compare_data(gconstpointer a, gconstpointer b, gpointer data){ struct voippacket *voipa = (struct voippacket *)a; struct voippacket *voipb = (struct voippacket *)b; int ret; if (voipa == NULL) return -1; if (voipb == NULL) return +1; ret = voipa->seq - voipb->seq; if (ret == 0) ((struct voip *)data)->dupe = 1; return ret; } int voip_add(struct voip *voip, struct voippacket *vp){ if (!voip) return -1; voip->dupe = 0; voip->jitterbuf = g_list_insert_sorted_with_data(voip->jitterbuf, vp, voip_compare_data, voip); if (voip->dupe){ voip->jitterbuf = g_list_remove(voip->jitterbuf, vp); free_voippacket(vp); }else{ voip->len++; } return 0; } struct voippacket *voip_get(struct voip *voip){ struct voippacket *p; if (!voip) return NULL; if (!voip->jitterbuf->next) return NULL; p = (struct voippacket *)voip->jitterbuf->next->data; if (p != NULL){ voip->jitterbuf = g_list_delete_link(voip->jitterbuf, voip->jitterbuf->next); voip->len--; } return p; } int voip_play(struct voippacket *p, short *buf, int len){ // len in samples short *s, *d; int i, l; if (!p){ d = buf; for (i = 0; i < len; i++) *d++ = 0; return len; } s = p->buf; d = buf; l = Z_MIN(len, p->len); for (i = 0; i < l; i++) *d++ = ntohs(*s++); return l; } void voip_test(struct voip *voip){ struct voippacket *p; p = g_new0(struct voippacket, 1); p->seq = 1; voip_add(voip, p); p = g_new0(struct voippacket, 1); p->seq = 2; voip_add(voip, p); p = voip_get(voip); p = g_new0(struct voippacket, 1); p->seq = 3; voip_add(voip, p); p = g_new0(struct voippacket, 1); p->seq = 2; voip_add(voip, p); p = voip_get(voip); p = voip_get(voip); p = voip_get(voip); p = voip_get(voip); } //int voip_beep_thread void voip_spy_add(struct voip *voip, char *id, char *voipaddr){ struct voippeer *p; int i; char *colon, *c;; if (!voip) return; MUTEX_LOCK(voip->spying); for (i = 0; i < voip->spying->len; i++){ struct voippeer *pp = (struct voippeer *)g_ptr_array_index(voip->spying, i); if (strcmp(pp->peerid, id) == 0) goto x; } p = g_new0(struct voippeer, 1); p->peerid = g_strdup(id); colon = strchr(voipaddr, ':'); p->sin.sin_family = AF_INET; p->sin.sin_port = htons(atoi(colon+1)); c = g_strdup(voipaddr); z_strip_from(c, ':'); inet_aton(c, &p->sin.sin_addr); g_ptr_array_add(voip->spying, p); x:; MUTEX_UNLOCK(voip->spying); } void voip_spy_update(struct voip *voip, char *id, char *voipaddr){ struct voippeer *p; char *colon, *c;; if (!voip || !voip->spied) return; p = voip->spied; if (strcmp(p->peerid, id) != 0) return; colon = strchr(voipaddr, ':'); p->sin.sin_port = htons(atoi(colon+1)); c = g_strdup(voipaddr); z_strip_from(c, ':'); inet_aton(c, &p->sin.sin_addr); } void voip_spy_remove(struct voip *voip, char *id){ struct voippeer *p; int i; if (!voip) return; MUTEX_LOCK(voip->spying); for (i = voip->spying->len - 1; i >= 0; i--){ p = (struct voippeer *)g_ptr_array_index(voip->spying, i); log_addf("voip_spy_remove: i=%d peerid='%s'", i, p->peerid); if (strcmp(id, p->peerid) != 0) continue; g_ptr_array_remove_index(voip->spying, i); voip_spy_free(p); } MUTEX_UNLOCK(voip->spying); } void voip_spy_free(struct voippeer *p){ if (!p) return; g_free(p->peerid); g_free(p); } void voip_spy_dump(struct voip *voip){ int i; struct voippeer *p; GString *gs = g_string_new("voip_spy_dump: "); if (!voip) { g_string_append(gs, "voip==NULL"); return; } if (voip->spied){ p = voip->spied; g_string_sprintfa(gs, "%s(%s:%d)", p->peerid, inet_ntoa(p->sin.sin_addr), ntohs(p->sin.sin_port)); } g_string_append(gs, " ["); MUTEX_LOCK(voip->spying); for (i = 0; i < voip->spying->len; i++){ p = (struct voippeer *)g_ptr_array_index(voip->spying, i); if (i > 0) g_string_append(gs, ", "); g_string_sprintfa(gs, "%s(%s:%d)", p->peerid, inet_ntoa(p->sin.sin_addr), ntohs(p->sin.sin_port)); } MUTEX_UNLOCK(voip->spying); g_string_append(gs, "]"); log_adds(gs->str); dbg("%s\n", gs->str); g_string_free(gs, TRUE); } static void voip_select_spy(void *itarg, void *menuarg){ char *peers3, *peer, *id; int tok = 0, menui = 0, no = GPOINTER_TO_INT(itarg); struct voip *voip = gssbd->voip; if (!voip) return; dbg("select_spy3(%p, %p)\n", itarg, menuarg); peers3 = g_strdup(gnet->peers3->str); while ((peer = z_tokenize(peers3, &tok)) != NULL){ int tok2 = 0; id = z_tokenize(peer, &tok2); /*op =*/ z_tokenize(peer, &tok2); /*rwbands =*/ z_tokenize(peer, &tok2); if (menui == no){ char *c; if (voip->spied){ c = g_strdup_printf("EV %s;%s\n", voip->spied->peerid, gnet->myid); rel_write_all(c); g_free(c); voip->spied = NULL; } c = g_strdup_printf("VS %s;%s;%s:%d\n", id, gnet->myid, inet_ntoa(gnet->my.sin_addr), voip->udpport); rel_write_all(c); g_free(c); voip->spied = g_new0(struct voippeer, 1); voip->spied->peerid = g_strdup(id); //voip->spied->sin // unknown now break; } } g_free(peers3); voip_spy_dump(voip); } void voip_spy(void *xxx){ int tok = 0, max = 0, menui = 0; char *peer, *id, *op, *rwbands, *s; struct menu_item *mi = NULL; char *peers3; if (!gssbd->voip){ log_addf(VTEXT(T_VOIP_NO_INITIALIZED)); return; } progress(NULL); peers3 = g_strdup(gnet->peers3->str); while ((peer = z_tokenize(peers3, &tok)) != NULL){ int tok2 = 0; id = z_tokenize(peer, &tok2); op = z_tokenize(peer, &tok2); rwbands = z_tokenize(peer, &tok2); if (!mi) mi = new_menu(3); s = g_strdup_printf("%s %s %s", id, op, rwbands); if (strlen(s) > max) max = strlen(s); add_to_menu(&mi, s, "", "", voip_select_spy, GINT_TO_POINTER(menui), 0); menui++; } g_free(peers3); dbg("menui=%d\n"); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-menui)/2); do_menu(mi, NULL); }else errbox(VTEXT(T_NO_PEERS),0); } void voip_end_spy(void *xxx, void *yyy){ char *c; struct voip *voip = gssbd->voip; if (!voip){ log_addf(VTEXT(T_VOIP_NO_INITIALIZED)); return; } if (!voip->spied) return; c = g_strdup_printf("EV %s;%s\n", voip->spied->peerid, gnet->myid); rel_write_all(c); g_free(c); voip_spy_free(voip->spied); voip->spied = NULL; voip_spy_dump(voip); } void voip_distribute(struct voip *voip, struct voippacket *vp){ int i; MUTEX_LOCK(voip->spying); for (i= 0; i< voip->spying->len; i++){ struct voippeer *p = (struct voippeer *)g_ptr_array_index(voip->spying, i); sendto(voip->sock, (const char *)&vp, sizeof(struct voippacket) + (vp->len - 1) * sizeof(short), 0, (struct sockaddr *)&p->sin, sizeof(p->sin)); } MUTEX_UNLOCK(voip->spying); } void *voip_thread_func(void *arg){ char buf[2048]; int ret; struct sockaddr_in sin; socklen_t slen; struct voippacket *vp; struct voip *voip = (struct voip *)arg; struct ssbd *ssbd = gssbd; zg_thread_set_name("Tucnak voip receiver"); while (!voip->thread_break){ while(1){ ret = recvfrom(voip->sock, buf, sizeof(buf), 0, (struct sockaddr*)&sin, &slen); if (ret < 0) break; log_addf("voip from %s:%d, %d bytes", inet_ntoa(sin.sin_addr), ntohs(sin.sin_port), ret); vp = init_voippacket(buf, ret); voip_add(voip, vp); } usleep(20000); vp = voip_get(voip); if (vp){ ret = dsp->write (dsp, vp->buf, vp->len * sizeof(short)); }else{ //ret = dsp->write (dsp, ssbd->buffer, dsp->bufsize); ret = -1; } if (ret < 0){ int err = errno; GString *gs = g_string_new(""); //MUTEX_LOCK(ssbd); g_string_sprintfa(gs, "!%s %s ", VTEXT(T_CANT_WRITE_TO), dsp->name); z_strerror(gs, err); g_string_append_c(gs, '\n'); //MUTEX_UNLOCK(ssbd); zselect_msg_send(zsel, "%s;%s", "SSBP", gs->str); g_string_free(gs, TRUE); voip->thread_break = 1; } } dbg("voip_thread_func exited\n"); return NULL; } int voip_receive(struct ssbd *ssbd){ SF_INFO sfinfo; struct voip *voip = ssbd->voip; ssbd_abort(ssbd, 1); memset (&sfinfo, 0, sizeof (sfinfo)); sfinfo.format = cfg->ssbd_format; sfinfo.channels = cfg->ssbd_channels; sfinfo.samplerate = cfg->ssbd_samplerate; if (!sfinfo.format) sfinfo.format=SF_FORMAT_WAV | SF_FORMAT_PCM_16; if (!sfinfo.channels) sfinfo.channels=1; if (!sfinfo.samplerate) sfinfo.samplerate=22050; dsp->set_format(dsp, &sfinfo, 0); dsp->set_plevel(dsp); if (dsp->open(dsp, 0)<0) { log_addf(VTEXT(T_ANT_OPEN_DSP_PLAY), dsp->name); sf_close (ssbd->sndfile); ssbd->sndfile = NULL; return -1; }; dbg("receive opened: channels=%d speed=%d\n", dsp->channels, dsp->speed); g_free(ssbd->buffer); ssbd->buffer = g_new0(short, dsp->bufsize/sizeof(short)); ssbd->bytes = dsp->bufsize; ssbd->samples = ssbd->bytes / sizeof(short); ssbd->frames = ssbd->samples / dsp->channels; //gfft_start(gfft, gssbd->frames); ssbd->channels = sfinfo.channels; ssbd->seek = 0; #ifdef Z_HAVE_SDL if (zsdl && gses){ ssbd->scope_w = gses->ontop->w * zsdl->font_w; ssbd->scope_samples = ssbd->channels * ssbd->scope_w; ssbd->scope_buf = g_new0(short, ssbd->scope_samples); ssbd->scope_show = 0; ssbd->scope_i = 0; } if (sdl && gses) gses->icon = sdl->xfer; #endif ssbd_thread_create(ssbd, voip_thread_func); return 0; } /*void voip_thread_create(struct voip *voip){ dbg("voip_thread_create\n"); voip->thread_break=0; if (voip->thread) return; voip->thread = g_thread_try_new("voip", voip_thread_func, (gpointer)voip, NULL); } void voip_thread_join(struct voip *voip){ if (!voip->thread) return; voip->thread_break=1; dbg("join voip...\n"); g_thread_join(voip->thread); dbg("done\n"); voip->thread = NULL; } */ #endif #endif tucnak-4.04/src/dxc.h0000644000175000017500000000510512500052574011366 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __DXC_H #define __DXC_H struct subwin; struct event; struct band; union zsockaddr; struct spot{ double qrg; gchar *callsign, *from, *text; int zulu; time_t expire, endbold; }; struct spotband{ ZPtrArray *freq; int current; // can be -1 if array is empty int min_khz, max_khz; char bandchar; //A, B, C, ... }; struct spotdb_t{ ZPtrArray *bands; int timer_id; int sfi; }; extern struct spotdb_t *spotdb; struct spotdb_t *init_spotdb(void); void free_spotdb(struct spotdb_t *spotdb); struct spotband *get_spotband_by_khz(int khz); struct spotband *get_actual_spotband(void); void remove_spot(struct spotband *sband, int spot_i); struct spot *dxc_parse_spot(gchar *str); void free_spot(struct spot *spot); int dxc_read_spot(gchar *str); // ret: -1 error, 0 correct spot, 1 correct filtered spot int dxc_remove_expired(void); void dxc_timer(void *); void dxc_dump(struct spotband *sband); int sw_dxc_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_dxc_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_dxc_redraw(struct subwin *sw, struct band *band, int flags); void sw_dxc_check_bounds(struct subwin *sw); struct zasyncdns; void sw_dxc_enter(void *enterdata, gchar *str, int cq); void sw_dxc_addrinfo(struct zasyncdns *adns, int n, int *family, int *socktype, int *protocol, int *addrlen, union zsockaddr *addr, char *errorstr); void sw_dxc_connected_handler(void *xxx); void sw_dxc_read_handler(void *xxx); void sw_dxc_disconnect(struct subwin *sw); char *sw_dxc_call_under(struct subwin *sw, int x, int y); void sw_dxc_toggle_highlight(struct subwin *sw, char *call, int val); int sw_dxc_line_color(struct subwin *sw, char *line); char *sw_dxc_counterp(struct subwin *sw, char *line, int *color); // thread unsafe! int sw_dxc_color(char *call); void sw_dxc_select(void *itdata, void *menudata); void sw_dxc_hide(void *itdata, void *menudata); void sw_dxc_message(void *itdata, void *menudata); void sw_dxc_info(void *itdata, void *menudata); void sw_dxc_use(void *itdata, void *menudata); #ifdef HAVE_HAMLIB void dxc_qrg_changed(freq_t qrg); #endif void sw_dxc_spot_from_net(struct subwin *sw, char *str); void dxc_open_connection(void *arg, void *arg2); void dxc_export_text(void *itdata, void *menudata); int dxc_new_mult(const char *callsign); #endif tucnak-4.04/src/sked.c0000644000175000017500000003754212460207027011543 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "edi.h" #include "fifo.h" #include "inputln.h" #include "kbdbind.h" #include "kbd.h" #include "main.h" #include "net.h" #include "qsodb.h" #include "tsdl.h" #include "session.h" #include "sked.h" #include "subwin.h" #include "subwin.h" char callsign[EQSO_LEN], locator[EQSO_LEN]; char time_str[EQSO_LEN], remark[MAX_STR_LEN]; int sw_sked_kbd_func(struct subwin *sw, struct event *ev, int fw){ struct sked *sked; int i; if (!aband) return 0; if (sw->il && ( sw->il->wasctrlv || (ev->x!='[' && ev->x!=']') )){ if (inputln_func(sw->il, ev)) return 1; } switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->offset--; sw->check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->offset++; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->offset -= sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->offset += sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->offset = aband->skeds->len - sw->h; sw->check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->offset = 0; sw->check_bounds(sw); redraw_later(); return 1; case ACT_SCROLL_LEFT: if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: sw->ho++; redraw_later(); return 1; case ACT_ENTER: if (aband->readonly) return 1; i = aband->skeds->len - sw->offset - 1; if (i < 0 || i >= aband->skeds->len) break; sked = (struct sked *)g_ptr_array_index(aband->skeds, i); process_input(aband, sked->callsign, 0); il_add_to_history(INPUTLN(aband), sked->callsign); process_input(aband, sked->locator, 0); aband->tmpqsos[0].ulocator = 1; return 1; } return 0; } int sw_sked_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (!aband) return 0; return sw_fifo_mouse_func(sw, ev, fw); } gchar *sw_sked_sprint(struct sked *sked){ double qrb,qtf; int qrb_int,qtf_int; gchar *c, *deg; qrbqtf(ctest->pwwlo, sked->locator, &qrb, &qtf, NULL, 2); qrb_int=(int)qrb; qtf_int=(int)(qtf+0.5); if (qrb_int < 0.1) { qrb_int=0; qtf_int=0; } #ifdef Z_HAVE_SDL if (sdl) deg = ""; else #endif deg = VTEXT(T_DEGREE); c=g_strdup_printf(VTEXT(T_SKED_FORMAT), sked->operator_, sked->src_shortpband, sked->pband, sked->qrg, sked->callsign, sked->locator, qrb_int, qtf_int, deg, sked->time_str, sked->remark); return c; } void sw_sked_redraw(struct subwin *sw, struct band *band, int flags){ int i, index; gchar *c; struct sked *sked; int color; if (!aband) return; /*dbg("sw_log_redraw log->len=%d sw->h=%d sw->offset=%d \n", fifo_len(sw->fifo), sw->h, sw->offset);*/ for (i = 0; i < sw->h; i++){ index = aband->skeds->len - sw->offset - sw->h+i; if (index < 0 || index >= aband->skeds->len) continue; sked = (struct sked *)g_ptr_array_index(aband->skeds, index); c = sw_sked_sprint(sked); if (i == sw->h - 1) { color = sked->worked ? COL_INV | COL_DARKYELLOW : COL_INV; fill_area(sw->x, sw->y + i, sw->w, 1, COL_INV); }else{ color = sked->worked ? COL_DARKYELLOW : COL_NORM; } print_text(sw->x, sw->y + i, sw->w, c + sw->ho, color); g_free(c); } } void sw_sked_check_bounds(struct subwin *sw){ if (!aband) return; /*if (sw->offset < 0) sw->offset=0;*/ if (sw->offset > (int)aband->skeds->len - 1) { sw->offset = (int)aband->skeds->len - 1; } if (sw->offset < 0) sw->offset=0; } /* 11.52 OK1ZIA@144: 432 MHz .250 OK1MCS in JN69QR (1234km, 359gr) at 12:00 we call (this is a remark ) */ void sw_sked_read(gchar *str, int from_my){ int i; struct band *b; struct sked *sked; struct zstring *zs; struct subwin *sw; gchar *c, *d; dbg("sw_sked_read('%s', %d)\n", str, from_my); zs = zstrdup(str); sked = sked_parse(zs); if (!sked) { dbg("bad format of sked '%s'\n", str); return; } zfree(zs); b=find_band_by_pband(sked->pband); if (!b){ dbg("band '%s' not found\n", sked->pband); free_sked(sked); return; } g_ptr_array_add(b->skeds, sked); b->dirty_save = 1; if (b->readonly == 0){ for (i=0; isubwins->len; i++){ sw = g_ptr_array_index(gses->subwins, i); // dbg("type=%d ontop=%d\n", sw->type, sw->ontop); if (sw->type != SWT_SKED) continue; if (sw->ontop) continue; sw->unread=1; } c = sw_sked_sprint(sked); d = g_strdup_printf("Sked %s", c); log_adds(d); g_free(c); g_free(d); skedw_create(b); } check_autosave(); redraw_later(); } char qrg_str[EQSO_LEN]; char pband[EQSO_LEN]="Select"; /* TODO VTEXT(T_SELECT) */ char oldpband[EQSO_LEN]=""; /*, time_str[EQSO_LEN], callsign[EQSO_LEN]*/; /*char locator[EQSO_LEN], remark[MAX_STR_LEN]; */ int pband_int=-1; void refresh_sked(struct qso *q) { char s[10], *c; time_t now; struct tm utc; struct zstring *zs; char sked_time_str[32]; time(&now); gmtime_r(&now, &utc); dbg("refresh_sked\n"); g_snprintf(sked_time_str, 30, "%d.%02d", utc.tm_hour, utc.tm_min); safe_strncpy0(s, aband->pband, 10); c = strchr(s, ' '); if (c) *c='\0'; z_str_uc(callsign); z_str_uc(locator); zs = zconcatesc(sked_time_str, aband->operator_, s, qrg_str, "0", pband, time_str, callsign, locator, remark, NULL); sw_sked_read(zs->str,1); c = g_strdup_printf("SK %s\n", zs->str); rel_write_all(c); g_free(c); zfree(zs); } void sked_fn(struct dialog_data *dlg) { //struct terminal *term = dlg->win->term; //int max = 0, min = 0; //int w, rw; //int y = -1; struct band *band; /* dbg("items[0]=%p\n",dlg->items[0]); dbg("items[0].item=%p\n",dlg->items[0].item); dbg("items[0].cdata=%p\n",dlg->items[0].cdata); */ if (strcmp(pband, oldpband)!=0){ strcpy(oldpband, pband); /* dbg("pband=%s\n");*/ band = find_band_by_pband(pband); if (band) { safe_strncpy0(dlg->items[1].cdata, band->skedqrg, EQSO_LEN); dlg->items[1].cpos = strlen(dlg->items[1].cdata); } } } void sked(void){ struct dialog *d; int i; struct band *band; if (pband_int<0){ for (i = 0; i < ctest->bands->len; i++) { band = (struct band *)g_ptr_array_index(ctest->bands, i); if (band==aband) break; } i++; if (ibands->len){ band = (struct band *)g_ptr_array_index(ctest->bands, i); safe_strncpy0(pband, band->pband, EQSO_LEN); pband_int = i; } } if (pband_int<0) pband_int=0; band = (struct band *)g_ptr_array_index(ctest->bands, pband_int); if (band) safe_strncpy0(qrg_str, band->skedqrg, EQSO_LEN); if (!(d = (struct dialog*)g_malloc(sizeof(struct dialog) + 15 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 15 * sizeof(struct dialog_item)); d->title = VTEXT(T_SEND_SKED); d->fn = dlg_pf_fn; d->fn2 = sked_fn; d->refresh = (void (*)(void *))refresh_sked; d->refresh_data = NULL; d->y0 = 1; i = -1; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_pband; d->items[i].text = pband; d->items[i].msg = CTEXT(T_BAND); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrg_str; d->items[i].msg = CTEXT(T_QRG); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 61; d->items[i].data = remark; d->items[i].maxl = EQSO_LEN; d->items[i].msg = CTEXT(T_REMARK), d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = callsign; d->items[i].msg = CTEXT(T_CALLSIGN2); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = locator; d->items[i].msg = CTEXT(T_WWL); d->items[i].wrap = 1; d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void sked_from_tmpqso(struct tmpqso *tmpqso) { time_t now; struct tm utc; time(&now); //now+=cfg->skedshift*60; gmtime_r(&now, &utc); strcpy(qrg_str,""); /* pband */ g_snprintf(time_str, EQSO_LEN, "%d.%02d", utc.tm_hour, utc.tm_min); safe_strncpy0(callsign, tmpqso->callsign, EQSO_LEN); z_str_uc(callsign); safe_strncpy0(locator, tmpqso->locator, EQSO_LEN); z_str_uc(locator); strcpy(remark, ""); sked(); } void sked_from_qso(struct qso *qso) { time_t now; struct tm utc; time(&now); //now+=cfg->skedshift*60; gmtime_r(&now, &utc); strcpy(qrg_str,""); /* pband */ g_snprintf(time_str, EQSO_LEN, "%d.%02d", utc.tm_hour, utc.tm_min); safe_strncpy0(callsign, qso->callsign, EQSO_LEN); z_str_uc(callsign); safe_strncpy0(locator, qso->locator, EQSO_LEN); z_str_uc(locator); strcpy(remark, ""); sked(); } void sked_pband_func(void *arg){ struct band *band; int active; active=GPOINTER_TO_INT(arg); dbg("sked_pband_func(%d)\n", active); if (active<0 || active>=ctest->bands->len) return; pband_int = active; band = g_ptr_array_index(ctest->bands, pband_int); safe_strncpy0(pband, band->pband, EQSO_LEN); safe_strncpy0(qrg_str, band->skedqrg, EQSO_LEN); redraw_later(); } void sked_pband(int apband_int) { int i, sel; struct menu_item *mi; struct band *band; if (!(mi = new_menu(1))) return; for (i = 0; i < ctest->bands->len; i++) { band = (struct band *)g_ptr_array_index(ctest->bands, i); add_to_menu(&mi, band->pband, "", "", MENU_FUNC sked_pband_func, GINT_TO_POINTER(i), 0); } sel = apband_int; if (sel < 0) sel = 0; if (sel>=ctest->bands->len) sel=0; do_menu_selected(mi, NULL, sel); } int dlg_pband(struct dialog_data *dlg, struct dialog_item_data *di){ sked_pband(pband_int); return 0; } struct zstring *sked_format(struct sked *sked){ struct zstring *zs; zs = zconcatesc(sked->sked_time, sked->operator_, sked->src_shortpband, sked->qrg, "0", sked->pband, sked->time_str, sked->callsign, sked->locator, sked->remark, NULL); return zs; } struct sked *sked_parse(struct zstring *zstr){ int tokens; struct sked *sked; tokens = ztokens(zstr); if (tokens<10){ dbg("bad format of sked '%s'\n", zstr->str); return NULL; } sked = g_new0(struct sked, 1); sked->sked_time = g_strdup(ztokenize(zstr, 1)); sked->operator_ = g_strdup(ztokenize(zstr, 0)); sked->src_shortpband = g_strdup(ztokenize(zstr, 0)); sked->qrg = g_strdup(ztokenize(zstr, 0)); ztokenize(zstr, 0); // we_call sked->pband = g_strdup(ztokenize(zstr, 0)); sked->time_str = g_strdup(ztokenize(zstr, 0)); sked->callsign = g_strdup(ztokenize(zstr, 0)); sked->locator = g_strdup(ztokenize(zstr, 0)); sked->remark = g_strdup(ztokenize(zstr, 0)); return sked; } void free_sked(struct sked *sked){ g_free(sked->sked_time); g_free(sked->operator_); g_free(sked->src_shortpband); g_free(sked->qrg); g_free(sked->pband); g_free(sked->time_str); g_free(sked->callsign); g_free(sked->locator); g_free(sked->remark); g_free(sked); } void recalc_worked_skeds(struct band *band){ int i; for (i=0; iskeds->len; i++){ struct sked *sked; sked = g_ptr_array_index(band->skeds, i); sked->worked = get_qso_by_callsign(band, sked->callsign) != NULL; //dbg("sked %s worked=%d\n", sked->callsign, sked->worked); } } /* ***************** SKED WINDOW ******************* */ void draw_skedwindow(struct skedwin_data *skedwdata){ int y,index; fill_area(skedwdata->x+1, skedwdata->y+1, skedwdata->w-2, skedwdata->h-2, COL_INV); draw_frame(skedwdata->x, skedwdata->y, skedwdata->w, skedwdata->h, COL_INV, 1); print_text(skedwdata->x + 5, skedwdata->y, -1, VTEXT(T_SKEDS), COL_NORM); if (!skedwdata->band) return; for (y=0;yh - 2; y++){ gchar *c; struct sked *sked; index = skedwdata->band->skeds->len - skedwdata->h + 2 + y; if (index<0 || index>=skedwdata->band->skeds->len) continue; sked = g_ptr_array_index(skedwdata->band->skeds, index); c = sw_sked_sprint(sked); print_text(skedwdata->x + 2, skedwdata->y+y+1, skedwdata->w - 4, c, COL_INV); g_free(c); } } void skedwindow_func(struct window *win, struct event *ev, int fwd){ struct skedwin_data *skedwdata; skedwdata = (struct skedwin_data *)win->data; // dbg("skedwindow_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b); switch (ev->ev) { case EV_INIT: win->data = skedwdata = gses->skedwdata; case EV_RESIZE: skedwdata->x = gses->ontop->x; skedwdata->y = gses->ontop->y; skedwdata->w = gses->ontop->w; skedwdata->h = 2 + cfg->skedcount; case EV_REDRAW: draw_skedwindow(skedwdata); break; case EV_ABORT: if (gses) gses->skedwdata = NULL; /* mem_free(cwwdata); already in terminal.c:196 (delete_window) */ break; case EV_KBD: if (ev->x == KBD_ESC){ skedwdata->esccnt++; if (skedwdata->esccnt==3){ delete_window_ev(win, ev); return; } }else{ skedwdata->esccnt=0; } dbg("esccnt=%d\n", skedwdata->esccnt); win->next->handler(win, ev, 0); break; default: win->next->handler(win, ev, 0); } } void skedw_timer(void *arg){ struct window *w; if (!gses) return; gses->skedw_timer_id = 0; if (gses->skedwdata == NULL) return; // duplicate check but... foreach(w,term->windows){ if (w->data != gses->skedwdata) continue; delete_window(w); break; } } void skedw_create(struct band *b){ if (cfg->skedcount <= 0) return; if (gses->skedw_timer_id > 0) zselect_timer_kill(zsel, gses->skedw_timer_id); gses->skedw_timer_id = zselect_timer_new(zsel, 5000, skedw_timer, NULL); if (gses->skedwdata) { gses->skedwdata->band = b; return; } gses->skedwdata = g_malloc(sizeof(struct skedwin_data)); memset(gses->skedwdata, 0, sizeof(struct skedwin_data)); gses->skedwdata->band = b; add_window_at_pos(skedwindow_func, NULL, gseswin->prev); } tucnak-4.04/src/hf.h0000644000175000017500000000145012003207707011202 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __HF_H #define __HF_H #include "header.h" struct subwin; struct event; struct spot; struct band; int sw_hf_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_hf_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_hf_redraw(struct subwin *sw, struct band *band, int flags); void sw_hf_check_bounds(struct subwin *sw); void sw_hf_raise(struct subwin *sw); void get_hf_dxc(char *str); void sw_hf_draw_spot(struct subwin *sw, int x, int y, struct spot *spot, time_t now, int acolor); #endif tucnak-4.04/src/Makefile.am0000644000175000017500000000405712524572316012507 00000000000000datarootdir = @datarootdir@ bin_PROGRAMS = tucnak soundwrapper EXTRA_PROGRAMS = tucnak.d uhpd CLEANFILES = svnversion.tmp ddir = $(prefix)/lib/$(DEB_HOST_MULTIARCH)/tucnak d_DATA = tucnak.d tucnak_SOURCES = \ ac.c ac.h \ adif.c adif.h alsa.c alsa.h button.c button.h bfu.c bfu.h \ cabrillo.c \ charsets.c charsets.h \ chart.c chart.h codepage.h codepage.inc \ control.c control.h cor.c cor.h cordata.c cordata.h cordata.inc \ cwdaemon.c cwdaemon.h cwdb.c cwdb.h cwdaemon.h cwwindow.c cwwindow.h \ davac4.c davac4.h dsp.c dsp.h dwdb.c dwdb.h dxc.c dxc.h \ ebw.c ebw.h edi.c edi.h \ error.c excdb.c excdb.h fft.c fft.h \ fifo.c fifo.h \ hdkeyb.c hdkeyb.h header.h \ hf.c hf.h html.c html.h \ httpd.c httpd.h \ icons.c icons.h icons.inc inpout.c inpout.h inputln.c inputln.h \ kbd.c kbd.h \ kbdbind.c kbdbind.h \ kst.c kst.h \ language.c language.h language.inc language2.h \ list.c main.c main.h map.c map.h masterdb.c masterdb.h \ menu.c menu.h menu1.c menu2.c menu3.c menu4.c menu5.c menu6.c \ mingw.c mingw.h misc.c misc.h namedb.c namedb.h net.c net.h ntpq.c ntpq.h \ os_dep.c os_dep.h oss.c oss.h pa.c pa.h player.c player.h ppdev.c ppdev.h \ profile.c rc.c rc.h \ report.c rotar.c rotar.h \ qrvdb.c qrvdb.h qsodb.c qsodb.h scope.c scope.h \ sdev.c sdev.h sdr.c sdr.h \ session.c session.h settings.c sked.c sked.h sndf.c sndf.h sndpipe.c sndpipe.h \ ssbd.c ssbd.h state.c state.h stats.c stats.h subwin.c subwin.h svnversion.h \ terminal.c terminal.h titlpage.c translate.c translate.h \ tregex.c tregex.h trig.c trig.h \ tsdl.c tsdl.h ttys.c ttys.h txts.c txts.h txts.inc \ uni_7b.inc update.c update.h voip.c voip.h vhfcontestnet.c vhfcontestnet.h \ winkey.c winkey.h wiki.c wiki.h wizz.c wizz.h \ zosk.c zosk.h \ zstring.c zstring.h tucnak_LDADD = @TUCNAK_LDADD@ #tucnak_DEPENDENCIES = ../../libzia/src/libzia.a soundwrapper_SOURCES = soundwrapper.c tucnak_d_SOURCES = map2d.c uhpd_SOURCES = uhpd.c EXTRA_DIST = msvc.c msvc.h msvcver.h sles.c tucnak.d$(EXEEXT): tucnak$(EXEEXT) map2d ./map2d tucnak-4.04/src/session.h0000644000175000017500000000663612360775351012316 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SESSION_H #define __SESSION_H #include #include #include #define TMPQ aband->tmpqsos[0] struct inputln; struct band; struct skedwin_data; struct zhttp; struct vhfcontestnet; struct wiki; /* also used for ctest->cq->type */ enum modes{ /* TX_RX */ MOD_NONE = 0, MOD_SSB_SSB, MOD_CW_CW, MOD_SSB_CW, MOD_CW_SSB, MOD_AM_AM, MOD_FM_FM, MOD_RTTY_RTTY, MOD_SSTV_SSTV, MOD_ATV_ATV /* 9 */ }; enum extcq { EC_NONE, EC_ODD, EC_EVEN, EC_1ST, EC_2ND }; struct session { struct window *win; int id; int exit_query; GPtrArray *subwins; struct subwin *ontop, *ontop2; gint focused, height1, height2, y1, y2; gint timer_id; struct inputln *il; /* inputline without contest for C_W testing ETC.. */ GPtrArray *qs; MUTEX_DEFINE(qs); // GMutex *qs_mutex; //#ifdef LEAK_DEBUG_LIST // char *qs_file; // int qs_line; //#endif GThread *qs_thread; int qs_thread_break; int qs_max_matches; gchar *qs_str; /* modified only from main thread without cwqs worker thread, no mutex needed */ gchar *qs_master; enum modes mode; gint last_cq_timer_id; struct cq *last_cq; struct cq *ac_cq; gint extcq_break_timer_id; enum extcq extcq; int tx; #ifdef Z_HAVE_SDL SDL_Surface *icon, *oldicon; #else void *icon, *oldicon; #endif GHashTable *hicalls; /* highlighted callsigns in shell */ int tune; int redraw_timer_id; #ifdef Z_HAVE_SDL int update_rotar_timer_id; int bat_timer_id; #endif struct skedwin_data *skedwdata; int skedw_timer_id; struct dw_item *adwi; char *adxc; char *asunriseset; int aqrb, aqtf; #ifdef FALL int fall_id; #endif int sel_start, sel_stop, sel_min, sel_max; struct zhttp *update; #ifdef Z_HAVE_SDL struct zosk *osk; #endif struct vhfcontestnet *vcn; struct wiki *wiki; //int tqy; // tmpqso y coordinate //int ily; // input line y coordinate }; extern struct session *gses; extern struct window *gseswin; struct session *create_session(struct window *win); void *create_session_info(int, char *, int *); void rxtx(void); void esc(void); void rx(void); int preferred_func(struct event *ev); void win_func(struct window *, struct event *, int); void draw_root_window(void); void send_event(struct event *ev); void add_date_time(struct band *band); void fix_date_time(struct band *band); void process_input(void *enterdata,char *text, int cq); void draw_time(void); void time_func(void *); void print_tucnak(int x, int y); void net_timer_redraw(void *); int load_hicalls_from_file(char *filename); int save_hicalls_to_file(char *filename); void after_callsign(struct band *band,char *c, char *oldtmpqcall); void after_exc(struct band *band,char *c); void after_locator(struct band *band,char *c); void after_nr(struct band *band,char *c); #ifdef FALL void fall_func(void *arg); #endif gboolean free_hicalls(gpointer key, gpointer value, gpointer user_data); void process_input_no_contest(void *enterdata, gchar *text, int cq); #endif tucnak-4.04/src/scope.h0000644000175000017500000000131012276421636011724 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SCOPE_H #define __SCOPE_H #include "header.h" struct subwin; struct event; int sw_scope_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_scope_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_scope_redraw(struct subwin *sw, struct band *band, int flags); void sw_scope_check_bounds(struct subwin *sw); void sw_scope_raise(struct subwin *sw); void sw_scope_clear_scopes(void); #endif tucnak-4.04/src/davac4.h0000644000175000017500000000200612064326300011743 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __DAVAC4_H #define __DAVAC4_H #ifdef Z_HAVE_LIBFTDI int davac4_init (struct cwdaemon *); int davac4_open (struct cwdaemon *cwda, int verbose); int davac4_free (struct cwdaemon *); int davac4_reset (struct cwdaemon *); int davac4_cw (struct cwdaemon *, int onoff); int davac4_ptt (struct cwdaemon *, int onoff); int davac4_ssbway (struct cwdaemon *, int onoff); int davac4_monitor (struct cwdaemon *, int onoff); int davac4_band (struct cwdaemon *, int bandsw); /*#ifndef HAVE_FTDI_NEW struct ftdi_context *ftdi_new(void); void ftdi_free(struct ftdi_context *ftdi); #endif*/ void usb_info(GString *gs); unsigned short ftdi_checksum(unsigned char *eeprom, int eeprom_size); #endif /* Z_HAVE_LIBFTDI */ #endif tucnak-4.04/src/wiki.c0000644000175000017500000005277612460207027011566 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "html.h" #include "chart.h" #include "main.h" #include "map.h" #include "menu.h" #include "qsodb.h" #include "session.h" #include "stats.h" #include "tsdl.h" #include "wiki.h" #include /*gchar *qw(GString *gs, gchar *s){ char *c; g_string_truncate(gs,0); if (!s) return gs->str; g_string_append(gs, ""); for (c=s; *c!='\0'; c++) { switch (*c){ case '<': g_string_append(gs, "<"); break; case '>': g_string_append(gs, ">"); break; case '"': g_string_append(gs, """); break; case '&': g_string_append(gs, "&"); break; case '\'': g_string_append(gs, "'"); break; default: g_string_append_c(gs, *c); } } g_string_append(gs, ""); return gs->str; }*/ void wiki_header(GString *gs){ int i; zg_string_eprintfa("w", gs, "=%s=\n", ctest->tname); g_string_sprintfa(gs, "{| style=\"background-color:#ffffcc;\"\n"); zg_string_eprintfa("w", gs, "|-\n|%s||%S\n", VTEXT(T_CALL2), ctest->pcall); zg_string_eprintfa("w", gs, "|-\n|%s||%S\n", VTEXT(T_WWL2), ctest->pwwlo); if (ctest->padr1 && *ctest->padr1) zg_string_eprintfa("w", gs, "|-\n|%s||%s\n", VTEXT(T_QTH), ctest->padr1); if (ctest->padr2 && *ctest->padr2) zg_string_eprintfa("w", gs, "|-\n| ||%s\n", ctest->padr2); i = atoi(ctest->cdate); g_string_sprintfa(gs, "|-\n|%s||%d.%d.%d\n", VTEXT(T_DATE3), i % 100, (i / 100) % 100, i / 10000); g_string_sprintfa(gs, "|}\n"); } static void wiki_wwl_func(gpointer key, gpointer value, gpointer user_data){ gchar *wwl; struct cntpts *n; ZPtrArray *ia; wwl = (gchar *) key; n = (struct cntpts *) value; ia = (ZPtrArray *) user_data; z_ptr_array_add(ia, g_strdup_printf("%4s||align=\"right\"|\t%d||align=\"right\"|%d", wwl, n->points, n->count)); } static gint wiki_compare_colon_int (gconstpointer a, gconstpointer b){ gchar **ca, **cb, *c; int ia, ib; ca=(gchar **)a; cb=(gchar **)b; c=strchr(*ca, '\t'); if (c) ia=atoi(c+1); else ia=0; c=strchr(*cb, '\t'); if (c) ib=atoi(c+1); else ib=0; return ib-ia; } #define TOPS_NUM 10 void wiki_band_header(GString *gs, struct band *band, int flags){ struct qso *q, *top[TOPS_NUM]; int i, j, cnt = 0; ZPtrArray *ia; char *c; int ntotal; struct subwin *map = NULL; struct subwin *chart = NULL; int oldaa; if (flags & HTML_MAP) map = sw_raise_or_new(SWT_MAP); if (flags & HTML_CHART) chart = sw_raise_or_new(SWT_CHART); /*for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if ((flags & HTML_MAP) && sw->type == SWT_MAP) map = sw; if ((flags & HTML_CHART) && sw->type == SWT_CHART) chart = sw; } */ #if defined(Z_HAVE_SDL) && defined(Z_HAVE_LIBPNG) oldaa = zsdl->antialiasing; if (zsdl->antialiasing_supported) zsdl->antialiasing = 1; zg_free0(band->mapfile); if (map && map->screen){ map->gdirty = 1; map_for_photo(map, band, 0); map_recalc_gst(map, band); sw_map_redraw(map, band, HTML_FOR_PHOTO); band->mapfile = g_strdup_printf("%s/map%c.png", ctest->directory, tolower(band->bandchar)); zpng_save(map->screen, band->mapfile, NULL); } zg_free0(band->chartfile); if (chart && chart->screen){ chart->gdirty = 1; sw_chart_recalc_extremes(chart, band); sw_chart_redraw(chart, band, 0); band->chartfile = g_strdup_printf("%s/chart%c.png", ctest->directory, tolower(band->bandchar)); zpng_save(chart->screen, band->chartfile, NULL); } if (map) map_recalc_gst(map, aband); zsdl->antialiasing = oldaa; #endif if (chart) sw_chart_recalc_extremes(chart, aband); g_string_sprintfa(gs, "\n\n=Band %s=\n", band->bandname); ntotal = band->stats->ntotal; if (ntotal < 10000){ ntotal = ( ntotal / 100 ) * 100; }else{ ntotal = ( ntotal / 1000 ) * 1000; } g_string_sprintfa(gs, "{| style=\"background-color:#ffffcc;\"\n"); g_string_sprintfa(gs, "|+ %s\n", band->bandname); g_string_sprintfa(gs, "|-\n|%s||%d\n", VTEXT(T_QSOS2), band->stats->nqsos); g_string_sprintfa(gs, "|-\n|%s||%d\n", VTEXT(T_POINTS2), ntotal); g_string_sprintfa(gs, "|-\n|%s||%d\n", VTEXT(T_WWLS), g_hash_table_size(band->stats->wwls)); g_string_sprintfa(gs, "|-\n|%s||%d\n", VTEXT(T_DXCCS), g_hash_table_size(band->stats->dxcs)); g_string_sprintfa(gs, "|-\n|%s||%d %s\n", VTEXT(T_AVG2), band->stats->ntotal/band->stats->nqsos, VTEXT(T_PTSQSO)); g_string_sprintfa(gs, "|}\n"); /* top 10 */ memset(top, 0, TOPS_NUM * sizeof(struct qso *)); for (i = 0; i < band->qsos->len; i++) { if (!top[0]) { /* init first item */ q = get_qso(band, i); if (!q->error && !q->dupe) { cnt = 0; top[cnt++] = q; /*dbg("init: %s %u\n=\n", top[0]->callsign, (int) top[0]->qrb);*/ } continue; } q = get_qso(band, i); /*dbg("selected %u: %s %u\n", i, q->callsign, (int) q->qrb);*/ if (q->error || q->dupe) continue; if (cnt >= TOPS_NUM) cnt = TOPS_NUM - 1; /* initialize or find top dx and sort top array */ if (!top[cnt] || q->qrb > top[cnt]->qrb) { for (j = cnt; j >= 0; j--) { if (j && q->qrb > top[j - 1]->qrb) { top[j] = top[j - 1]; /* move down */ /*dbg("down %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ } else { top[j] = q; /* insert */ cnt++; /*dbg("insert %u: %s %u\n", j, top[j]->callsign, (int) top[j]->qrb);*/ break; } } } } g_string_sprintfa(gs, "\n\n"); //tabulka kolem g_string_sprintfa(gs, "{| cellpadding=\"10\" style=\"background: transparent;\"\n"); g_string_sprintfa(gs, "|\n"); g_string_sprintfa(gs, "{| cellpadding=\"5\" style=\"background-color:#ffffcc;\"\n"); g_string_sprintfa(gs, "|+ %s\n", VTEXT(T_TOP_10_CALLS)); g_string_sprintfa(gs, "!%s!!%s!!%s!!%s\n", VTEXT(T_CALL), VTEXT(T_QRB), VTEXT(T_OPERATOR2), VTEXT(T_MODE2)); for (i = 0; i < TOPS_NUM && i < band->qsos->len && top[i]; i++) { q = top[i]; g_string_sprintfa(gs, "|-\n|%s||align=\"right\"|%4u km||%s||%s\n", q->callsign, (int) q->qrb, q->operator_, mode_msg[q->mode]); } g_string_sprintfa(gs, "|}\n"); ia = z_ptr_array_new(); g_hash_table_foreach(band->stats->wwls, wiki_wwl_func, ia); z_ptr_array_qsort(ia, wiki_compare_colon_int); g_string_sprintfa(gs, "|\n"); g_string_sprintfa(gs, "{| cellpadding=\"5\" style=\"background-color:#ffffcc;\"\n"); g_string_sprintfa(gs, "|+ %s\n", VTEXT(T_TOP_10_WWLS)); g_string_sprintfa(gs, "!%s!!%s!!%s\n", VTEXT(T_WWL3), VTEXT(T_POINTS), VTEXT(T_SW_QSOS)); for (i = 0; i < ia->len && i < 10; i++){ c = (gchar *)z_ptr_array_index(ia, i); g_string_sprintfa(gs, "|-\n|%s\n", c); } g_string_sprintfa(gs, "|}\n"); z_ptr_array_free_all(ia); g_string_sprintfa(gs, "|}\n\n"); #ifdef Z_HAVE_SDL if (map && map->screen){ g_string_sprintfa(gs, "[[File:map_%s_%s_%c.png|border|%dpx|%s %s %s]]\n\n", ctest->pcall, ctest->cdate, z_char_lc(band->bandchar), map->screen->w, ctest->pcall, ctest->tname, band->bandname); } if (chart && chart->screen){ g_string_sprintfa(gs, "[[File:chart_%s_%s_%c.png|border|%dpx|%s %s %s]]\n\n", ctest->pcall, ctest->cdate, z_char_lc(band->bandchar), chart->screen->w, ctest->pcall, ctest->tname, band->bandname); } #endif } void wiki_footer(GString *gs){ g_string_sprintfa(gs, "\n\nCreated by [http://tucnak.nagano.cz Tucnak ver. %s]\n", VERSION_STRING); } void wiki_complete(GString *gs, int flags){ int i; struct band *band; int header_saved=0; for (i=0; ibands->len; i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); stats_thread_join(band); if (band->stats->nqsos <=0) continue; if (!header_saved){ wiki_header(gs); header_saved=1; } wiki_band_header(gs, band, flags); } wiki_footer(gs); } int export_all_bands_wiki(){ gchar *filename; FILE *f; char callbuf[20]; GString *gs; if (!ctest) return -1; dbg("export_all_bands_wiki()\n"); progress(VTEXT(T_EXPORTING)); filename = g_strdup_printf("%s/%s_%s.wiki", ctest->directory, ctest->cdate, z_get_raw_call(callbuf,ctest->pcall)); z_wokna(filename); f=fopen(filename,"wt"); if (!f) { errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); progress(NULL); return -1; } gs = g_string_sized_new(100000); wiki_complete(gs, HTML_MAP | HTML_CHART); if (fprintf(f, "%s", gs->str) <= 0){ errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); g_string_free(gs, TRUE); progress(NULL); return -1; } fclose(f); log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, TRUE); progress(NULL); return 0; } //-------- wiki upload ----------------------------------------------------------------------------------- char wiki_url[MAX_STR_LEN]; char wiki_user[MAX_STR_LEN]; char wiki_pass[MAX_STR_LEN]; char wiki_page[MAX_STR_LEN]; int wiki_map, wiki_chart, wiki_overwrite; void free_wiki(struct wiki *wiki){ zhttp_free(wiki->http); g_free(wiki->edittoken); zg_ptr_array_free_all(wiki->images); g_free(wiki); gses->wiki = NULL; } void wiki_status(struct wiki *wiki, char *fmt, ...) { va_list l; va_start(l, fmt); g_free(wiki->status); wiki->status = g_strdup_vprintf(fmt, l); va_end(l); } void wiki_upload_callback(struct zhttp *http){ struct wiki *wiki = (struct wiki*)http->arg; char *result; if (http->errorstr){ wiki_status(wiki, VTEXT(T_CANT_UPLOAD_FILE_S), http->errorstr); zhttp_free0(wiki->http); return; } result = zjson_get_str(http->datastr, -1, "upload.result"); if (result == NULL){ wiki_status(wiki, VTEXT(T_CANT_UPLOAD_PAGE_WIKI_RET), http->datastr); zhttp_free0(wiki->http); return; } if (strcmp(result, "Success") != 0){ //{"upload":{"result":"Warning","warnings":{"exists":"Map_OK2M_20140503_c.png"},"filekey":"12g68l2hgzbk.9a37ay.2.png","sessionkey":"12g68l2hgzbk.9a37ay.2.png"}} char *exists = zjson_get_str(http->datastr, -1, "upload.warnings.exists"); if (exists != NULL){ wiki_status(wiki, VTEXT(T_FILE_ALREADY_EXISTS), exists); g_free(exists); }else{ wiki_status(wiki, VTEXT(T_CANT_UPLOAD_PAGE_RET), result); } zhttp_free0(wiki->http); g_free(result); return; } g_free(result); wiki_schedule(wiki); } void wiki_upload_file(struct wiki *wiki, char *localfilename, char *filename, int ignorewarnings){ struct zhttp *http = wiki->http; zhttp_post_free(http); zhttp_post_add(http, "action", "upload"); zhttp_post_add(http, "filename", filename); //zhttp_post_add(http, "text", "text"); //zhttp_post_add(http, "comment", "Some uploaded file"); zhttp_post_add(http, "format", "json"); zhttp_post_add_file_disk(http, "file", filename, localfilename); if (ignorewarnings) zhttp_post_add(http, "ignorewarnings", "yes"); zhttp_post_add(http, "token", wiki->edittoken); zhttp_post(wiki->http, zsel, wiki->apiurl, wiki_upload_callback, wiki); } void wiki_edit_callback(struct zhttp *http){ struct wiki *wiki = (struct wiki*)http->arg; char *result; if (http->errorstr){ wiki_status(wiki, VTEXT(T_CANT_EDIT_PAGE), http->errorstr); zhttp_free0(wiki->http); return; } result = zjson_get_str(http->datastr, -1, "edit.result"); if (result == NULL){ wiki_status(wiki, VTEXT(T_CANT_EDIT_PAGE_RET), http->datastr); zhttp_free0(wiki->http); return; } if (strcmp(result, "Success") != 0){ wiki_status(wiki, VTEXT(T_CANT_EDIT_PAGE_RET2), result); zhttp_free0(wiki->http); g_free(result); return; } g_free(result); wiki_schedule(wiki); } void wiki_edit_file(struct wiki *wiki, char *title, const char *text){ struct zhttp *http = wiki->http; const char *t; char *buf; iconv_t cd = iconv_open("UTF-8","ISO8859-2"); if (cd != (iconv_t)(-1)){ char *inptr = title; char *outptr; size_t in = strlen(title); size_t out = in * 10; size_t ret; buf = g_new0(char, out); outptr = buf; ret = iconv(cd, &inptr, &in, &outptr, &out); if (ret != (size_t)-1){ t = buf; }else{ t = title; } }else{ t = title; } zhttp_post_free(http); zhttp_post_add(http, "action", "edit"); zhttp_post_add(http, "title", t); zhttp_post_add(http, "text", text); zhttp_post_add(http, "assert", "user"); zhttp_post_add(http, "format", "json"); zhttp_post_add(http, "token", wiki->edittoken); zhttp_post(wiki->http, zsel, wiki->apiurl, wiki_edit_callback, wiki); if (cd != (iconv_t)(-1)){ g_free(buf); iconv_close(cd); } } void wiki_schedule(struct wiki *wiki){ char *localfile, *file = NULL; const char *f; if (wiki->text){ wiki_edit_file(wiki, wiki_page, wiki->text); zg_free0(wiki->text); wiki_status(wiki, VTEXT(T_EDITING_CONTEST_PAGE)); return; } if (wiki->images->len == 0){ wiki_status(wiki, VTEXT(T_ALL_DONE)); wiki->done = 1; return; } localfile = (char *)g_ptr_array_index(wiki->images, 0); g_ptr_array_remove_index(wiki->images, 0); f = z_filename(localfile); if (strncmp(f, "map", 3) == 0){ file = g_strdup_printf("map_%s_%s_%c.png", ctest->pcall, ctest->cdate, f[3]); } if (strncmp(f, "chart", 5) == 0){ file = g_strdup_printf("chart_%s_%s_%c.png", ctest->pcall, ctest->cdate, f[5]); } if (file != NULL){ wiki_upload_file(wiki, localfile, file, wiki_overwrite); wiki_status(wiki, VTEXT(T_UPLOADING_FILE), f); }else{ wiki_status(wiki, VTEXT(T_UNKNOWN_FILE_FOR_UPLOAD), localfile); } g_free(localfile); g_free(file); } // old API about 1.19 void wiki_query_edittoken(struct zhttp *http){ struct wiki *wiki = (struct wiki*)http->arg; if (http->errorstr){ wiki_status(wiki, VTEXT(T_CANT_QUERY_EDIT_TOKEN), http->errorstr); zhttp_free0(wiki->http); return; } //{"query":{"pages":{"-1":{"ns":0,"title":"Main Page","missing":"","starttimestamp":"2014-07-15T06:21:10Z","edittoken":"43cf06841bc074e7922cece1617f1504+\\"}}}} wiki->edittoken = zjson_get_str(http->datastr, -1, "query.pages.-1.edittoken"); if (wiki->edittoken == NULL){ wiki_status(wiki, VTEXT(T_CANT_QUERY_EDIT_TOKEN_RET), wiki); zhttp_free0(wiki->http); return; } wiki_schedule(wiki); } void wiki_logged_in(struct wiki *wiki){ GString *gs; gs = g_string_new(wiki->apiurl); //zg_string_eprintfa("u", gs, "api.php?action=tokens&type=edit&format=json"); new API zg_string_eprintfa("u", gs, "?action=query&format=json&type=import&prop=info|revisions&intoken=edit&titles=%s", "Main Page"); zhttp_post(wiki->http, zsel, gs->str, wiki_query_edittoken, wiki); g_string_free(gs, TRUE); wiki_status(wiki, VTEXT(T_QUERYING_EDIT_TOKEN)); } void wiki_login2(struct zhttp *http){ struct wiki *wiki = (struct wiki*)http->arg; char *result; if (http->errorstr){ wiki_status(wiki, VTEXT(T_CANT_LOGIN), http->errorstr); zhttp_free0(wiki->http); return; } result = zjson_get_str(http->datastr, -1, "login.result"); if (result != NULL && strcmp(result, "Success") == 0){ wiki_logged_in(wiki); }else{ wiki_status(wiki, VTEXT(T_CANT_LOGIN2), result); } g_free(result); } void wiki_login1(struct zhttp *http){ struct wiki *wiki = (struct wiki*)http->arg; char *result, *token; if (http->errorstr){ wiki_status(wiki, VTEXT(T_CANT_LOGIN1), http->errorstr); zhttp_free0(wiki->http); return; } // html={"login":{"result":"NeedToken","token":"b03a54f2c660eae532eaaab9a272973b","cookieprefix":"wiki_krq","sessionid":"99611b7e82e04d8a7e2542030d5f18a1"}} result = zjson_get_str(http->datastr, -1, "login.result"); token = zjson_get_str(http->datastr, -1, "login.token"); if (strcasecmp(result, "NeedToken") == 0){ GString *gs = g_string_new(wiki->apiurl); zg_string_eprintfa("u", gs, "?action=login&format=json&lgname=%s&lgpassword=%s&lgtoken=%s", wiki_user, wiki_pass, token); zhttp_post(wiki->http, zsel, gs->str, wiki_login2, wiki); g_string_free(gs, TRUE); }else{ wiki_logged_in(wiki); } g_free(result); g_free(token); } void wiki_export(void *arg){ int i; int flags = 0; struct wiki *wiki = (struct wiki*)arg; GString *gs = g_string_new(""); redraw(); wiki->http = zhttp_init(); if (wiki_map) flags |= HTML_MAP; if (wiki_chart) flags |= HTML_CHART; wiki_complete(gs, flags); wiki->text = g_strdup(gs->str); for (i=0; ibands->len; i++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i); if (b->mapfile) g_ptr_array_add(wiki->images, g_strdup(b->mapfile)); if (b->chartfile) g_ptr_array_add(wiki->images, g_strdup(b->chartfile)); } g_string_truncate(gs, 0); g_string_append(gs, wiki_url); if (gs->len > 0 && gs->str[gs->len - 1] != '/') g_string_append_c(gs, '/'); g_string_append(gs, "api.php"); wiki->apiurl = g_strdup(gs->str); zg_string_eprintfa("u", gs, "?action=login&format=json&lgname=%s&lgpassword=%s", wiki_user, wiki_pass); zhttp_post(wiki->http, zsel, gs->str, wiki_login1, wiki); g_string_free(gs, TRUE); wiki_status(wiki, VTEXT(T_LOGGING_IN)); } void wiki_refresh_upload(void *xxx){ struct wiki *wiki; STORE_STR(cfg, wiki_url); STORE_STR(cfg, wiki_user); STORE_STR(cfg, wiki_pass); STORE_INT(cfg, wiki_map); STORE_INT(cfg, wiki_chart); wiki = g_new0(struct wiki, 1); wiki->images = g_ptr_array_new(); gses->wiki = wiki; wiki_status(wiki, VTEXT(T_EXPORTING_FILES)); wiki_info(NULL); zselect_bh_new(zsel, wiki_export, wiki); } void wiki_upload(void *arg){ struct dialog *d; int i; if (!ctest) return; if (gses->wiki != NULL) return; safe_strncpy0(wiki_url, cfg->wiki_url, MAX_STR_LEN); safe_strncpy0(wiki_user, cfg->wiki_user, MAX_STR_LEN); safe_strncpy0(wiki_pass, cfg->wiki_pass, MAX_STR_LEN); safe_strncpy0(wiki_page, ctest->tname, MAX_STR_LEN); wiki_map = 1; wiki_chart = 1; if (!(d = (struct dialog *) g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_NETWORK); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))wiki_refresh_upload; d->y0 = 1; i = -1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = wiki_page; d->items[i].maxl = 44; d->items[i].msg = CTEXT(T_PAGE_NAME); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wiki_overwrite; d->items[i].msg = CTEXT(T_OVERWRITE_EXISTING_FILES); d->items[i].wrap = 2; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = wiki_url; d->items[i].maxl = 44; d->items[i].msg = CTEXT(T_SITE_URL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = wiki_user; d->items[i].maxl = 16; d->items[i].msg = CTEXT(T_USERNAME); //d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = wiki_pass; d->items[i].maxl = 16; d->items[i].msg = CTEXT(T_PASSWORD2); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wiki_map; d->items[i].msg = CTEXT(T_EXPORT_MAP); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wiki_chart; d->items[i].msg = CTEXT(T_EXPORT_CHART); d->items[i].wrap = 1; d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void wiki_abort(void *arg){ if (!gses->wiki) return; free_wiki(gses->wiki); gses->wiki = NULL; } void wiki_info(void *arg1){ struct refresh *r; char *c, *button; GString *gs; if (!gses || !gses->wiki) return; if (term->windows.next->handler == menu_func){ zselect_timer_new(zsel, RESOURCE_INFO_REFRESH, wiki_info, NULL); }else{ r = (struct refresh*)g_malloc(sizeof(struct refresh)); r->win = NULL; r->fn = wiki_info; r->data = NULL; r->timer = -1; gs = g_string_new(""); if (gses->wiki->status != NULL) g_string_sprintfa(gs, "%s", gses->wiki->status); if (gses->wiki->status != NULL && gses->wiki->http != NULL) g_string_append(gs, "\n\n"); if (gses->wiki->http != NULL){ g_string_append(gs, VTEXT(T_HTTP_STATUS)); zhttp_status(gses->wiki->http, gs); } button = gses->wiki->done ? VTEXT(T_OK) : VTEXT(T_CANCEL); c = g_strdup(gs->str); g_string_free(gs, TRUE); msg_box(getml(c, NULL), VTEXT(T_MEDIAWIKI_UPLOAD2)/*VTEXT(T_NINFO)*/, AL_LEFT, c, r, 1, button, wiki_abort, B_ENTER | B_ESC); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = zselect_timer_new(zsel, RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); } } tucnak-4.04/src/inpout.c0000644000175000017500000000731312460207027012124 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdaemon.h" #include "fifo.h" #include "inpout.h" #include "language2.h" #include "rc.h" #if defined(Z_MSC_MINGW_CYGWIN) int parport_init(struct cwdaemon *cwda){ cwda->hInpOut = LoadLibrary("inpout32.dll"); if (!cwda->hInpOut) { log_addf(VTEXT(T_CANT_LOAD_INPOUT), GetLastError()); return -1; } cwda->inp32 = (short (_stdcall *)(short port))GetProcAddress(cwda->hInpOut, "Inp32"); if (!cwda->inp32){ log_addf("Can't get entry point for Inp32, error %d", GetLastError()); FreeLibrary(cwda->hInpOut); cwda->hInpOut = NULL; return -2; } cwda->out32 = (void (_stdcall *)(short port, short data))GetProcAddress(cwda->hInpOut, "Out32"); if (!cwda->inp32){ log_addf("Can't get entry point for Out32, error %d", GetLastError()); FreeLibrary(cwda->hInpOut); cwda->hInpOut = NULL; return -3; } MUTEX_INIT(cwda->hInpOut); cwda->baseport = strtol(cfg->cwda_device, NULL, 0); cwda->ctrl = cwda->inp32(cwda->baseport+2); parport_reset(cwda); return 0; } int parport_free(struct cwdaemon *cwda){ if (!cwda || !cwda->hInpOut) return 0; MUTEX_LOCK(cwda->hInpOut); cwda->ctrl &= 0xf0; cwda->ctrl |= 0x0b; /* /CW=L=1 PTT=L=0 /SSBW=L=1 /ENABLE=H=0 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); FreeLibrary(cwda->hInpOut); cwda->hInpOut = NULL; MUTEX_FREE(cwda->hInpOut); return 0; } int parport_reset(struct cwdaemon *cwda){ if (!cwda || !cwda->hInpOut) return 0; MUTEX_LOCK(cwda->hInpOut); cwda->ctrl &= 0xf0; cwda->ctrl &= ~0x04; cwda->ctrl |= 0x0b; /* /CW=L=1 PTT=L=0 /SSBW=L=1 /ENABLE=L=1 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_cw(struct cwdaemon *cwda, int onoff){ if (!cwda || !cwda->hInpOut) return 1; MUTEX_LOCK(cwda->hInpOut); if (onoff) cwda->ctrl &= ~0x08; /* /CW=H=0 */ else cwda->ctrl |= 0x08; /* /CW=L=1 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_ptt(struct cwdaemon *cwda, int onoff){ if (!cwda || !cwda->hInpOut) return 1; MUTEX_LOCK(cwda->hInpOut); if (onoff) cwda->ctrl |= 0x04; /* PTT=H=1 */ else cwda->ctrl &= ~0x04; /* PTT=L=0 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_ssbway(struct cwdaemon *cwda, int onoff){ if (!cwda || !cwda->hInpOut) return 1; MUTEX_LOCK(cwda->hInpOut); if (onoff) cwda->ctrl &= ~0x02; /* /SSBW=H=0 */ else cwda->ctrl |= 0x02; /* /SSBW=L=1 */ cwda->out32(cwda->baseport+2, cwda->ctrl); MUTEX_UNLOCK(cwda->hInpOut); return 0; } int parport_band(struct cwdaemon *cwda, int bandsw){ if (!cwda || !cwda->hInpOut) return 1; cwda->data &= ~0xe1; if (bandsw & 0x01) cwda->data |= 0x01; if (bandsw & 0x02) cwda->data |= 0x20; if (bandsw & 0x04) cwda->data |= 0x40; if (bandsw & 0x08) cwda->data |= 0x80; cwda->out32(cwda->baseport, cwda->data); return 0; } void parport_info(GString *gs){ HMODULE hInpOut; g_string_sprintfa(gs, "\n parport_info:\n"); g_string_sprintfa(gs, "Using inpout32.dll"); hInpOut = LoadLibrary("inpout32.dll"); if (!hInpOut) { g_string_sprintfa(gs, ", can't load library\nError %d ", GetLastError()); z_lasterror(gs); g_string_sprintfa(gs, "\n"); }else{ g_string_sprintfa(gs, ", library loaded\n"); FreeLibrary(hInpOut); } g_string_sprintfa(gs, "\n"); } #endif tucnak-4.04/src/charsets.h0000644000175000017500000000125311602633211012417 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __CHARSETS_H #define __CHARSETS_H struct conv_table { int t; union { char *str; struct conv_table *tbl; } u; }; /*struct conv_table *get_translation_table(int, int);*/ int get_cp_index(char *n); char *get_cp_name(int); /*char *get_cp_mime_name(int);*/ int is_cp_special(int); void free_conv_table(void); char *cp2utf_8(int, int); char *u2cp(int, int); #endif tucnak-4.04/src/edi.c0000644000175000017500000011732012501641324011345 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "chart.h" #include "control.h" #include "cwdb.h" #include "edi.h" #include "excdb.h" #include "fifo.h" #include "main.h" #include "menu.h" #include "map.h" #include "namedb.h" #include "net.h" #include "qrvdb.h" #include "qsodb.h" #include "session.h" #include "sked.h" #include "stats.h" #include "tregex.h" #include "tsdl.h" static int edi_serid_used; #define dumpvar(var) { int dvi; dbg("%s=",#var); for (dvi=0; dvidate_str && strlen(q->date_str)>2){ safe_strncpy0(s, q->date_str+2, 7); g_string_append(gs, s); } g_string_append_c(gs, ';'); g_string_append(gs, safe_strncpy0(s, q->time_str, 5)); g_string_append_c(gs, ';'); if (q->error) g_string_append(gs, "ERROR"); else g_string_append(gs, z_str_uc(safe_strncpy0(s, q->callsign, 20))); g_string_append_c(gs, ';'); g_string_sprintfa(gs, "%d", q->mode); g_string_append_c(gs, ';'); g_string_append(gs, z_str_uc(safe_strncpy0(s, q->rsts, 6))); g_string_append_c(gs, ';'); g_string_append(gs, z_str_uc(safe_strncpy0(s, q->qsonrs, 5))); g_string_append_c(gs, ';'); g_string_append(gs, z_str_uc(safe_strncpy0(s, q->rstr, 6))); g_string_append_c(gs, ';'); g_string_append(gs, z_str_uc(safe_strncpy0(s, q->qsonrr, 5))); g_string_append_c(gs, ';'); g_string_append(gs, z_str_uc(safe_strncpy0(s, q->exc, 7))); g_string_append_c(gs, ';'); g_string_append(gs, z_str_uc(safe_strncpy0(s, q->locator, 7))); g_string_append_c(gs, ';'); } void add_qso_str2(GString *gs, struct qso *q, struct band *b){ if (!q->dupe && !q->error && strcasecmp(q->callsign, "ERROR")!=0) g_string_sprintfa(gs, "%d;", q->qsop/* * b->bandmulti*/); else{ g_string_append(gs, "0;"); dump_qso(q, "write_edi_qsos"); } if (q->new_ & NEW_EXC) g_string_append_c(gs, 'N'); g_string_append_c(gs, ';'); if (q->new_ & NEW_WWL) g_string_append_c(gs, 'N'); g_string_append_c(gs, ';'); if (q->new_ & NEW_DXC) g_string_append_c(gs, 'N'); g_string_append_c(gs, ';'); if (q->dupe) g_string_append_c(gs, 'D'); } void add_qso_str3(GString *gs, struct qso *q, struct band *b){ char s[1024]; g_string_append(gs, q->source); g_string_append_c(gs, ';'); g_string_append(gs, fixsemi(q->operator_)); g_string_append_c(gs, ';'); g_string_sprintfa(gs, "%d;", (int)q->stamp); if (q->error) g_string_append(gs, q->callsign); g_string_append_c(gs, ';'); safe_strncpy0(s, q->date_str, 3); g_string_append(gs, s); g_string_append_c(gs, ';'); safe_strncpy0(s, q->remark, MAX_STR_LEN); g_string_append(gs, fixsemi(s)); g_string_sprintfa(gs, ";%d", q->ser_id); g_string_sprintfa(gs, ";%1.0f", q->qrg); } static int write_edi_header(struct band *b, struct config_band *confb, FILE *f){ char s[1024]; GString *gs; int ret; int qsomult; gs = g_string_sized_new(1024); g_string_sprintfa(gs, "[REG1TEST;1]\r\n"); g_string_sprintfa(gs, "TName=%s\r\n", safe_strncpy0(s, ctest->tname, 69)); if (!b->qsos->len) g_string_sprintfa(gs, "TDate=%s;%s\r\n", ctest->cdate, ctest->cdate); else g_string_sprintfa(gs, "TDate=%d;%d\r\n", b->stats->first_date, b->stats->last_date); g_string_sprintfa(gs, "PCall=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pcall, 69))); g_string_sprintfa(gs, "PWWLo=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pwwlo, 69))); g_string_sprintfa(gs, "PExch=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pexch, 69))); g_string_sprintfa(gs, "PAdr1=%s\r\n", safe_strncpy0(s, ctest->padr1, 69)); g_string_sprintfa(gs, "PAdr2=%s\r\n", safe_strncpy0(s, ctest->padr2, 69)); switch(b->psect){ case 0: g_string_sprintfa(gs, "PSect=Multi\r\n"); break; case 1: g_string_sprintfa(gs, "PSect=Single\r\n"); break; case 2: g_string_sprintfa(gs, "PSect=Check\r\n"); break; default: g_string_sprintfa(gs, "PSect=%s\r\n", b->opsect); break; } g_string_sprintfa(gs, "PBand=%s\r\n", b->pband); g_string_sprintfa(gs, "PClub=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->pclub, 69))); g_string_sprintfa(gs, "RName=%s\r\n", safe_strncpy0(s, ctest->rname, 69)); g_string_sprintfa(gs, "RCall=%s\r\n", z_str_uc(safe_strncpy0(s, ctest->rcall, 69))); g_string_sprintfa(gs, "RAdr1=%s\r\n", safe_strncpy0(s, ctest->radr1, 69)); g_string_sprintfa(gs, "RAdr2=%s\r\n", safe_strncpy0(s, ctest->radr2, 69)); g_string_sprintfa(gs, "RPoCo=%s\r\n", safe_strncpy0(s, ctest->rpoco, 69)); g_string_sprintfa(gs, "RCity=%s\r\n", safe_strncpy0(s, ctest->rcity, 69)); g_string_sprintfa(gs, "RCoun=%s\r\n", safe_strncpy0(s, ctest->rcoun, 69)); g_string_sprintfa(gs, "RPhon=%s\r\n", safe_strncpy0(s, ctest->rphon, 69)); g_string_sprintfa(gs, "RHBBS=%s\r\n", safe_strncpy0(s, ctest->rhbbs, 69)); g_string_sprintfa(gs, "MOpe1=%s\r\n", z_str_uc(safe_strncpy0(s, b->mope1, 69))); g_string_sprintfa(gs, "MOpe2=%s\r\n", z_str_uc(safe_strncpy0(s, b->mope2, 69))); g_string_sprintfa(gs, "STXEq=%s\r\n", safe_strncpy0(s, b->stxeq, 69)); g_string_sprintfa(gs, "SPowe=%s\r\n", safe_strncpy0(s, b->spowe, 69)); g_string_sprintfa(gs, "SRXEq=%s\r\n", safe_strncpy0(s, b->srxeq, 69)); g_string_sprintfa(gs, "SAnte=%s\r\n", safe_strncpy0(s, b->sante, 69)); g_string_sprintfa(gs, "SAntH=%s\r\n", safe_strncpy0(s, b->santh, 69)); qsomult = ctest->qsomult; if (ctest->qsop_method==16) qsomult = qsomult16(b); g_string_sprintfa(gs, "CQSOs=%d;%d\r\n", b->stats->nqsos, qsomult * b->qsomultb); g_string_sprintfa(gs, "CQSOP=%d\r\n", b->stats->nqsop); g_string_sprintfa(gs, "CWWLs=%d;%d;%d\r\n", g_hash_table_size(b->stats->wwls), ctest->wwlbonu, ctest->wwlmult==0 ? 1 : ctest->wwlmult); g_string_sprintfa(gs, "CWWLB=%d\r\n", g_hash_table_size(b->stats->wwls) * ctest->wwlbonu); g_string_sprintfa(gs, "CExcs=%d;%d;%d\r\n", b->stats->nexcp, ctest->excbonu, ctest->excmult==0 ? 1 : ctest->excmult); g_string_sprintfa(gs, "CExcB=%d\r\n", g_hash_table_size(b->stats->excs) * ctest->excbonu); g_string_sprintfa(gs, "CDXCs=%d;%d;%d\r\n", g_hash_table_size(b->stats->dxcs), ctest->dxcbonu, ctest->dxcmult==0 ? 1 : ctest->dxcmult); g_string_sprintfa(gs, "CDXCB=%d\r\n", g_hash_table_size(b->stats->dxcs) * ctest->dxcbonu); g_string_sprintfa(gs, "CToSc=%d\r\n", b->stats->ntotal); g_string_sprintfa(gs, "CODXC=%s;", z_str_uc(safe_strncpy0(s, b->stats->odxcall, 20))); g_string_sprintfa(gs, "%s;%d\r\n", z_str_uc(safe_strncpy0(s, b->stats->odxwwl, 20)), b->stats->odxqrb_int); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_empty_remarks(struct band *b, struct config_band *confb, FILE *f){ char s[1024]; int ret; GString *gs; gs = g_string_sized_new(100); g_string_sprintfa(gs, "[Remarks]\r\n"); if (b->remarks && b->remarks[0]=='[') g_string_sprintfa(gs, " "); g_string_sprintfa(gs, "%s", safe_strncpy0(s, b->remarks, 1024)); g_string_sprintfa(gs, "\r\n"); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_remarks(struct band *b, struct config_band *confb, FILE *f){ char s[1024]; struct qso *q; GString *gs; int ret; int i; gs = g_string_sized_new(1024); g_string_sprintfa(gs, "[Remarks]\r\n"); if (b->remarks && b->remarks[0]=='[') g_string_sprintfa(gs, " "); g_string_sprintfa(gs, "%s", safe_strncpy0(s, b->remarks, 1024)); g_string_sprintfa(gs, "\r\n"); g_string_sprintfa(gs, "[TUCNAK extension]\r\n"); g_string_sprintfa(gs, "default_rs=%s\r\n", ctest->default_rs); g_string_sprintfa(gs, "default_rst=%s\r\n", ctest->default_rst); g_string_sprintfa(gs, "prefmult=%d\r\n", ctest->prefmult); g_string_sprintfa(gs, "prefglob=%d\r\n", ctest->prefglob); g_string_sprintfa(gs, "dxcbonu=%d\r\n", ctest->dxcbonu); g_string_sprintfa(gs, "dxcmult=%d\r\n", ctest->dxcmult); g_string_sprintfa(gs, "excused=%d\r\n", ctest->excused); g_string_sprintfa(gs, "exctype=%d\r\n", ctest->exctype); g_string_sprintfa(gs, "excname=%s\r\n", ctest->excname); g_string_sprintfa(gs, "excbonu=%d\r\n", ctest->excbonu); g_string_sprintfa(gs, "excmult=%d\r\n", ctest->excmult); g_string_sprintfa(gs, "exccfm=%d\r\n", ctest->exccfm); g_string_sprintfa(gs, "qsoused=%d\r\n", ctest->qsoused); g_string_sprintfa(gs, "qsomult=%d\r\n", ctest->qsomult); g_string_sprintfa(gs, "qsomultb=%d\r\n", b->qsomultb); g_string_sprintfa(gs, "qsoglob=%d\r\n", ctest->qsoglob); g_string_sprintfa(gs, "qsop_method=%d\r\n", ctest->qsop_method); g_string_sprintfa(gs, "rstused=%d\r\n", ctest->rstused); g_string_sprintfa(gs, "defrstr=%d\r\n", ctest->defrstr); g_string_sprintfa(gs, "total_method=%d\r\n", ctest->total_method); g_string_sprintfa(gs, "wwltype=%d\r\n", ctest->wwltype); g_string_sprintfa(gs, "wwlused=%d\r\n", ctest->wwlused); g_string_sprintfa(gs, "wwlbonu=%d\r\n", ctest->wwlbonu); g_string_sprintfa(gs, "wwlmult=%d\r\n", ctest->wwlmult); g_string_sprintfa(gs, "wwlcfm=%d\r\n", ctest->wwlcfm); g_string_sprintfa(gs, "tttype=%d\r\n", ctest->tttype); g_string_sprintfa(gs, "expmode=%d\r\n", ctest->expmode); g_string_sprintfa(gs, "bandchar=%c\r\n", b->bandchar); // g_string_sprintfa(gs, "bandmulti=%d\r\n", b->bandmulti); g_string_sprintfa(gs, "mode=%d\r\n", gses->mode); g_string_sprintfa(gs, "operator=%s\r\n", b->operator_); g_string_sprintfa(gs, "psect=%d\r\n", b->psect); g_string_sprintfa(gs, "opsect=%s\r\n", b->opsect); g_string_sprintfa(gs, "readonly=%d\r\n", b->readonly); g_string_sprintfa(gs, "saveid=%d\r\n", b->saveid); g_string_sprintfa(gs, "skedqrg=%s\r\n", b->skedqrg); for (i=0; i< b->qsos->len; i++){ q = get_qso(b, i); g_string_sprintfa(gs, "qso%d=", i); add_qso_str3(gs, q, b); /*g_string_sprintfa(gs, "%s\r\n",gs->str);*/ g_string_sprintfa(gs, "\r\n"); } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_qsos(struct band *b, struct config_band *confb, FILE *f){ struct qso *q; GString *gs; int i; int ret; gs = g_string_new(""); g_string_sprintfa(gs, "[QSORecords;%d]\r\n", b->qsos->len); for (i=0; iqsos->len; i++){ q = get_qso(b, i); add_qso_str1(gs, q, b); add_qso_str2(gs, q, b); g_string_sprintfa(gs, "\r\n"); /*g_string_sprintfa(gs, "%s\r\n", gs->str);*/ } g_string_sprintfa(gs, "[END;TUCNAK-%s ver. %s]\r\n", Z_PLATFORM, VERSION); ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_unfi(struct band *b, struct config_band *confb, FILE *f){ int i; gchar *c; GString *gs; int ret; gs = g_string_new(""); for (i=0; iunfi->items->len; i++){ c = (gchar *) g_ptr_array_index(b->unfi->items, i); g_string_sprintfa(gs, "unfinished%d=%s\r\n", i, c); } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } static int write_edi_sked(struct band *b, struct config_band *confb, FILE *f){ int i; GString *gs; int ret; struct sked *sked; struct zstring *zs; gs = g_string_new(""); for (i=0; iskeds->len; i++){ sked = (struct sked *) g_ptr_array_index(b->skeds, i); zs = sked_format(sked); g_string_sprintfa(gs, "sked%d=%s\r\n", i, zs->str); zfree(zs); } ret=fprintf(f, "%s", gs->str) != gs->len; g_string_free(gs, TRUE); return ret; } int export_all_bands_edi(void){ struct band *band; struct config_band *confb; int i, err; FILE *f; char callbuf[20]; int ignoreerror=0; if (!ctest) return -1; menu_fillop(GINT_TO_POINTER(0)); /*dbg("export_all_bands_edi()\n");*/ for (i=0; ibands->len; i++){ char *section = NULL; band = (struct band *)g_ptr_array_index(ctest->bands, i); confb = (struct config_band *)get_config_band_by_bandchar(band->bandchar); progress(VTEXT(T_EXPORTING), band->bandname); zg_free0(band->edifile); stats_thread_join(band); if (band->stats->nqsos <=0) continue; switch (band->psect){ case 0: section = confb->ok_section_multi; break; case 1: section = confb->ok_section_single; break; case 2: section = "CH"; break; case 3: section = confb->opsect; break; } if (section && *section) band->edifile = g_strdup_printf("%s/%s%s.edi", ctest->directory, section, z_get_raw_call(callbuf,ctest->pcall)); else band->edifile = g_strdup_printf("%s/%s_%c.edi", ctest->directory, z_get_raw_call(callbuf,ctest->pcall), band->bandchar); z_wokna(band->edifile); f=fopen(band->edifile, "wb"); /* must be b for windoze */ if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} progress(NULL); return -1; } err = 0; err|=write_edi_header (band,confb,f); err|=write_edi_empty_remarks (band,confb,f); err|=write_edi_qsos (band,confb,f); err|=fclose(f); if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } progress(NULL); return -1; } log_addf(VTEXT(T_SAVED), band->edifile); fprintf(band->swap, "SE %d\n", ++band->saveid); fflush(band->swap); } progress(NULL); return 0; } static gchar *get_ctest_directory(int floppy){ gchar *dir; const char *c; if (floppy==0){ dir = g_strdup(ctest->directory); }else{ //char *c1, *c2; if (!cfg->as_floppy_path || strlen(cfg->as_floppy_path)==0) return NULL; if (!cfg->as_floppy_aq) return NULL; //c1=c2=NULL; c = z_filename(ctest->directory); if (c != NULL){ //if (regmatch(ctest->directory, ".*\\/(.*)", &c1, &c2, NULL)==0){ dir = g_strdup_printf("%s/%s", cfg->as_floppy_path, c); }else{ dir = g_strdup_printf("%s/%s", cfg->as_floppy_path, ctest->directory); } //if (c1) g_free(c1); //if (c2) g_free(c2); } return dir; } int save_all_bands_txt(int autosave){ struct band *band; struct config_band *confb; int j, i, err, gerr; gchar *filename, *dir; FILE *f; int ignoreerror=0; int floppy_mounted,nm_showed; //dbg("save_all_bands_txt(%d)\n", autosave); if (!ctest) return -1; nm_showed=0; floppy_mounted = is_in_mtab(cfg->as_floppy_path); if (cfg->as_floppy_path && !*cfg->as_floppy_path){ nm_showed = 1; // dont show error when no floppy is defined } gerr = 0; for (i=0; ibands->len; i++){ for (j=0; j<2; j++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); confb = (struct config_band *)get_config_band_by_bandchar(band->bandchar); /* dbg(" %c dirty=%d\n", band->bandchar, band->dirty_save); */ dir = get_ctest_directory(j); if (!dir) continue; z_mkdir_p(dir, 0775); if (autosave == 1 && !band->dirty_save) continue; if (j==0){ if (autosave && autosave!=1) continue; }else{ /* floppy */ if (autosave && autosave!=2) continue; if (nm_showed) continue; if (!floppy_mounted && !nm_showed) { log_addf(VTEXT(T_NOT_MOUNTED_S), cfg->as_floppy_path); nm_showed=1; continue; } } stats_thread_join(band); filename = g_strdup_printf("%s/%c.txt", dir, z_char_lc(band->bandchar)); z_wokna(filename); g_free(dir); //dbg(" saving filename '%s'\n", filename); f=fopen(filename,"wb"); /* must be b for windoze */ if (!f) { gchar *c; c = g_strdup_printf(VTEXT(T_CANT_WRITE_S), filename); log_addf(c); g_free(c); if (j==0){ c = g_strdup_printf(VTEXT(T_CANT_WRITE_S), filename); }else{ c = g_strdup_printf("Can't open file '%s' for writing\nTry to mount floppy or disable\nMenu->Setup->Autosave->Path To Floppy", filename); } if (!ignoreerror) { errbox(c, errno); ignoreerror=1;} g_free(c); g_free(filename); continue; } err = 0; err|=write_edi_header (band,confb,f); err|=write_edi_remarks (band,confb,f); err|=write_edi_unfi (band,confb,f); err|=write_edi_sked (band,confb,f); err|=write_edi_qsos (band,confb,f); err|=fclose(f); if (err) { log_addf(VTEXT(T_CANT_WRITE_S), filename); if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1;} g_free(filename); continue; } gerr |= err; band->dirty_save = 0; fprintf(band->swap, "ST %d\n", band->saveid); fflush(band->swap); g_free(filename); } band->saveid++; } if (!gerr){ if (!autosave) log_addf(VTEXT(T_SAVED_S), "contest"); } if (!autosave){ ctest->as_disk_qsonr = cfg->as_disk_aq; ctest->as_floppy_qsonr = cfg->as_floppy_aq; } for (j=0; j<2; j++){ gchar *dir; if (j==0){ if (autosave && autosave!=1) continue; }else{ /* floppy */ if (autosave && autosave!=2) continue; } dir = get_ctest_directory(j); if (!dir) continue; if (j==1){ /* floppy */ if (nm_showed) continue; filename = g_strdup_printf("%s/desc",dir); z_wokna(filename); save_desc_to_file(filename); g_free(filename); } if (j==1){ /* save only contents of fifo to ctest/log on floppy */ filename = g_strdup_printf("%s/log",dir); z_wokna(filename); save_fifo_to_file(glog, filename); g_free(filename); } filename = g_strdup_printf("%s/talk",dir); z_wokna(filename); save_fifo_to_file(gtalk, filename); g_free(filename); filename = g_strdup_printf("%s/spy", dir); z_wokna(filename); save_spypeers_to_file(filename); /* called also in control.c */ g_free(filename); filename = g_strdup_printf("%s/hicalls", dir); z_wokna(filename); save_hicalls_to_file(filename); g_free(filename); filename = g_strdup_printf("%s/qrv", dir); z_wokna(filename); save_qrv_to_file(filename); g_free(filename); filename = g_strdup_printf("%s/chart", dir); z_wokna(filename); save_chart_to_file(filename); g_free(filename); g_free(dir); } save_cw(cw, 0); save_namedb(namedb, 0); return 0; } static GHashTable *load_edi_until(FILE *f, GHashTable *hash, gchar *until){ GString *gs; gchar *c; gchar **a; gchar *k, *v; gpointer orig_key, orig_value; gs=g_string_new(""); if (!hash) hash=g_hash_table_new(g_str_hash, g_str_equal); while( (c = zfile_fgets(gs, f, 0)) != NULL){ /* dbg("load_edi_until read '%s'\n", c);*/ if (regcmpi(c, until)==0) break; a = g_strsplit(c, "=", 2); if (!a) continue; if (!a[0] || !a[1]) { g_strfreev(a); continue; } g_strstrip(a[0]); g_strstrip(a[1]); k=z_str_lc(g_strdup(a[0])); v=g_strdup(a[1]); if (g_hash_table_lookup_extended(hash, (gpointer)k, &orig_key, &orig_value)){ g_hash_table_remove(hash, orig_key); g_free(orig_key); g_free(orig_value); } g_hash_table_insert(hash, k, v); /* dbg("load_edi_until load key=%p '%s' value=%p '%s'\n", k,k, v, v);*/ g_strfreev(a); } /* dbg("load_edi_until END %s\n",c);*/ g_string_free(gs, 1); return hash; } static gchar *load_edi_remarks_until(FILE *f, gchar *until){ GString *gs; gchar *c; gchar *ret,*tmp; gs=g_string_new(""); ret=NULL; while( (c = zfile_fgets(gs, f, 0)) != NULL){ /* dbg("load_edi_remarks_until read '%s'\n", c);*/ if (regcmpi(c, until)==0) break; if (ret) { tmp=ret; g_free(ret); ret=g_strconcat(tmp," ",c, NULL); }else{ ret=g_strdup(c); } } /* dbg("load_edi_remarks_untilEND %s\n",c);*/ g_string_free(gs, 1); return ret; } static GPtrArray *load_edi_qsos_until(FILE *f, gchar *until){ GString *gs; GPtrArray *array; gchar *c; gchar **a; int i; gs=g_string_new(""); array=g_ptr_array_new(); while( (c = zfile_fgets(gs, f, 0)) != NULL){ /* dbg("load_edi_qsos_unti: '%s'\n", c);*/ if (regcmpi(c, until)==0) break; a = g_strsplit(c, ";", 11); /* 11th is "N;N;N" */ if (!a) continue; for (i=0;i<11;i++){ if (!a[i]) goto x; g_strstrip(a[i]); } /* dbg("load_edi_qsos_until: add '%s'\n", c);*/ g_ptr_array_add(array, (gpointer)a); x:; } /* dbg("load_edi_qsos_until: END '%s' \n", c);*/ g_string_free(gs, 1); return array; } #if 0 static void skip_edi_until(FILE *f, gchar *until){ GString *gs; gchar *c; gs=g_string_new(""); while( (c = zfile_fgets(gs, f, 0)) != NULL){ /* dbg("skip_edi_until: read '%s'\n", c);*/ if (regcmpi(c, until)==0) break; } /* dbg("skip_edi_until: END '%s' \n", c);*/ g_string_free(gs, 1); } #endif static gboolean free_item(gpointer key, gpointer value, gpointer x){ g_free(key); g_free(value); return TRUE; } static void destroy_string_hash(GHashTable *hash){ g_hash_table_foreach_remove(hash, free_item, NULL); g_hash_table_destroy(hash); } static void add_qsos_from_mem(struct band *b, GHashTable *hash, GPtrArray *qsos, const gchar *date){ gchar **items; int i, j; gchar *c, *add; struct qso *q; char s[10]; time_t now; now = time(NULL); for (i=0; ilen; i++){ items = (gchar **) g_ptr_array_index(qsos, i); q = g_new0(struct qso, 1); if (strlen(items[0])>6) q->date_str = g_strdup(items[0]); else q->date_str = g_strdup_printf("%s%s", safe_strncpy(s, date, 3), items[0]); q->time_str = g_strdup(items[1]); q->callsign = g_strdup(items[2]); if (strcasecmp(q->callsign, "ERROR")==0) q->error=1; q->mode = atoi(items[3]); q->rsts = g_strdup(items[4]); q->qsonrs = g_strdup(items[5]); q->rstr = g_strdup(items[6]); q->qsonrr = g_strdup(items[7]); q->exc = g_strdup(items[8]); q->locator = g_strdup(items[9]); g_strfreev(items); c = g_strdup_printf("qso%d", i); add = (char *)g_hash_table_lookup(hash, c); g_free(c); if (!add){ char century[3]; safe_strncpy0(century, q->date_str, 3); add=g_strdup_printf("%s;%s;%d;%s;" "%s;%s;%d;", gnet->myid, fixsemi(b->operator_), (int)now, "", century, "", -1); items = g_strsplit(add, ";", 0); g_free(add); }else{ items = g_strsplit(add, ";", 0); } for (j=0;j<=4;j++) if (!items[j]) goto x; q->source = g_strdup(items[0]); q->operator_ = g_strdup(items[1]); fixsemi(q->operator_); q->stamp = atoi(items[2]); if (!items[5]){ q->remark = g_strdup(""); }else{ q->remark = g_strdup(items[5]); if (!items[6]){ q->qrg = 0.0; }else{ q->qrg = atof(items[6]); } } if (q->error && *items[3]){ g_free(q->callsign); q->callsign = g_strdup(items[3]); } c = q->date_str; if (strlen(c)>2 && items[4]) { q->date_str = g_strdup_printf("%s%s", items[4], c+2); g_free(c); } if (items[6]){ q->ser_id=atoi(items[6]); edi_serid_used=1; }else{ q->ser_id=-1; /* filled in add_qso_to_index and rewritten after loop. only for compatibility */ } if (items[6] && items[7]){ q->qrg = atof(items[7]); }else{ q->qrg = 0.0; } g_strfreev(items); compute_qrbqtf(q); add_qso(b, q); update_stats(b, b->stats, q); x:; } recalc_allb_stats(); minute_stats(b); /* g_hash_table_foreach(ctest->bystamp, foreach_source_print, NULL);*/ } static void add_unfi_from_mem(struct band *b, GHashTable *hash){ int i; gchar *add, *c; b->unfi->withouttime=1; for (i=0;;i++){ c = g_strdup_printf("unfinished%d", i); add = (char *)g_hash_table_lookup(hash, c); g_free(c); if (!add) break; /* dbg("unfinished=''\n", add);*/ fifo_adds(b->unfi, add); } b->unfi->withouttime=0; } static void add_sked_from_mem(struct band *b, GHashTable *hash){ int i; gchar *add, *c; struct zstring *zs; struct sked *sked; for (i=0;;i++){ c = g_strdup_printf("sked%d", i); add = (char *)g_hash_table_lookup(hash, c); g_free(c); if (!add) break; // dbg("sked=''\n", add); zs = zstrdup(add); sked = sked_parse(zs); zfree(zs); if (!sked) { dbg("bad format of sked '%s'\n", add); continue; } g_ptr_array_add(b->skeds, sked); sked->worked = get_qso_by_callsign(b, sked->callsign) != NULL; } } static int select_enable_all(const char *dir, const struct dirent *de){ return 1; } #define REPLACE(from,to) \ c = (char *)g_hash_table_lookup(hash, from);\ if (c && !g_hash_table_lookup(hash, to)){\ g_hash_table_insert(hash, g_strdup(to), g_strdup(c));\ dbg("replacing %s to %s with %s\n", from, to, c); \ } static int convert_bo_s_hash(GHashTable *hash, const char *dir){ struct config_band *tmpcb; gchar *c, *date; c = (char *)g_hash_table_lookup(hash, "band"); if (c){ tmpcb = get_config_band_by_bandchar(z_char_lc(c[0])); if (tmpcb){ if (tmpcb->pband && !g_hash_table_lookup(hash, "pband")) g_hash_table_insert(hash, g_strdup("pband"), g_strdup(tmpcb->pband)); } } date = g_strdup(dir); c = strchr(date,'.'); if (c) *c='\0'; if (!g_hash_table_lookup(hash, "tdate")) g_hash_table_insert(hash, g_strdup("tdate"), g_strdup(date)); g_free(date); REPLACE("comment", "tname"); REPLACE("owncall", "pcall"); REPLACE("ownwwl", "pwwlo"); REPLACE("ownoptionalexchange", "pexch"); REPLACE("band", "bandchar"); REPLACE("qsopointsmultiplier", "qsomult"); REPLACE("qsocalcmethod", "qsop_method"); REPLACE("wwlbonus", "wwlbonu"); REPLACE("wwlmultiplier", "wwlmult"); REPLACE("dxccbonus", "dxcbonu"); REPLACE("dxccmultiplier", "dxcmult"); REPLACE("optionalexchangebonus", "excbonu"); REPLACE("optionalexchangemultiplier", "excmult"); REPLACE("totalcalcmethod", "total_method"); REPLACE("operator0", "operator"); return 0; } //int *pnn = NULL; /* loads edi and txt */ void load_contest_edi(const gchar *date, int edi){ struct dirent **namelist=NULL; int nn=0; // probably buggy register optimisation in gcc 4.3.2 amd64 int i; gchar *datedir, *file, *pband; struct stat st; char *ext, *c; FILE *f, *lockfile,*logfile; GHashTable *hash; GPtrArray *qsos; struct band *b; static char ss[1024]; gint saveid=-1; gchar *remarks; time_t now; struct tm tm; int nowdate_int, ctestdate_int; file = NULL; datedir = NULL; progress(VTEXT(T_LOADING_CONTEST), date); c=g_strdup_printf("%s/%s/desc.lock", tucnak_dir, date); z_wokna(c); lockfile = fopen(c, "w"); if (!lockfile){ g_snprintf(ss,1000, VTEXT(T_CANT_OPEN_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, ss, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); goto x; } if (z_lockf(fileno(lockfile), F_TLOCK, 0, 1)){ fclose(lockfile); lockfile=NULL; g_snprintf(ss,1000, VTEXT(T_CANT_LOCK_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, ss, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); goto x; } g_free(c); datedir = g_strdup_printf("%s/%s", tucnak_dir, date); file = g_strdup_printf("%s/log", datedir); load_fifo_from_file(glog, file,0); fifo_addfq(glog, VTEXT(T_LOADING_CTEST_S), date); zg_free0(file); progress(VTEXT(T_LOADING_LOGFILE)); c=g_strdup_printf("%s/%s/log", tucnak_dir, date); logfile = fopen(c, "at"); if (!logfile){ g_snprintf(ss,1000, VTEXT(T_CANT_OPEN_S),c); g_free(c); msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, ss, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); goto x; } g_free(c); setvbuf(logfile, NULL, _IONBF, 0); fprintf(logfile, VTEXT(T_LOADING_CTEST_S), date); fprintf(logfile, "\n"); progress(VTEXT(T_LOADING_TALK)); file = g_strdup_printf("%s/talk", datedir); load_fifo_from_file(gtalk, file,1); fifo_addfq(gtalk, VTEXT(T_LOADING_CTEST_S), date); zg_free0(file); nn = z_scandir(datedir, &namelist, select_enable_all, z_scandir_alphasort); if (nn<=0) { errbox(VTEXT(T_NO_FILES), 0); fclose(lockfile); fclose(logfile); goto x; } edi_serid_used=0; for (i=0; id_name, ext)) continue; zg_free0(file); file = g_strconcat(datedir, "/", namelist[i]->d_name, NULL); /*dbg("file='%s'\n", file);*/ if (stat(file, &st)) continue; if (!S_ISREG(st.st_mode)) continue; f = fopen(file, "rt"); if (!f) continue; if (!edi){ hash = load_edi_until(f, NULL, "^\\[remarks\\]"); remarks = load_edi_remarks_until(f, "^\\[tucnak extension\\]"); /* skip_edi_until(f, "^\\[tucnak extension\\]");*/ load_edi_until(f, hash, "^\\[qsorecords"); }else{ hash = load_edi_until(f, NULL, "^\\[remarks\\]"); remarks = load_edi_remarks_until(f, "^\\[qsorecords"); } qsos = load_edi_qsos_until(f, "^\\[end;"); fclose(f); convert_bo_s_hash(hash, date); pband = (char *)g_hash_table_lookup(hash, "pband"); /*dbg("pband='%s'\n", pband);*/ if (!pband) { struct config_band *tmpcb; gchar *c; c = (char *)g_hash_table_lookup(hash, "band"); if (!c) goto destroy; tmpcb = get_config_band_by_bandchar(z_char_lc(c[0])); if (!tmpcb) goto destroy; pband = tmpcb->pband; if (!pband){ destroy:; zg_free0(remarks); destroy_string_hash(hash); continue; } } if (find_band_by_pband(pband)){ log_addf(VTEXT(T_BAND_EXIST_SS), pband, file); goto destroy; } if (!ctest) { init_ctest(); load_ctest_from_mem(ctest, datedir, hash); maps_reload(); chart_reload(); } b = init_band(NULL, hash, NULL, NULL); if (!b) { /* dbg("load_contest_edi: b=NULL!\n");*/ goto destroy; } progress(VTEXT(T_LOADING_BAND), b->bandname); /* edi_serid_used=0; must be assigned but before band loop */ add_qsos_from_mem(b, hash, qsos, date); add_unfi_from_mem(b, hash); add_sked_from_mem(b, hash); clear_tmpqsos(b, 1); destroy_string_hash(hash); if (remarks){ zg_free0(b->remarks); b->remarks=remarks; } zg_free0(file); file = g_strconcat(datedir, "/", namelist[i]->d_name, NULL); c = strstr(file,"txt"); if (!c) continue; strcpy(c, "swp"); /*dbg("swap='%s' saveid=%d\n", file, b->saveid-1);*/ f = fopen(file, "rt"); if (!f) continue; gs = g_string_sized_new(100); while(zfile_fgets(gs, f, 0)!=NULL){ /* dbg("read '%s'\n", gs->str);*/ if (strncmp(gs->str,"ST ",3)!=0) continue; saveid=atoi(gs->str+3); /* dbg("sid=%d\n", saveid);*/ if (saveid == b->saveid-1) break; } if (saveid == b->saveid-1){ b->ignoreswap = 1; /* dbg("begin is %d\n", saveid);*/ while(zfile_fgets(gs, f, 0)!=NULL){ // dbg("read '%s'\n", gs->str); if (strncmp(gs->str,"# ",2)==0){ process_input(b, gs->str+2, 0); continue; } if (strncmp(gs->str,"CLR",3)==0){ clear_tmpqsos(b, 1); continue; } if (strncmp(gs->str,"Q ",2)==0){ process_input(b, "", 0); continue; } if (strncmp(gs->str,"O ",2)==0){ if (b->operator_) g_free(b->operator_); b->operator_ = fixsemi(g_strdup(gs->str+2)); continue; } } b->ignoreswap = 0; } fclose(f); g_string_free(gs, 1); } if (!ctest) { errbox(VTEXT(T_NO_BANDS), 0); fclose(lockfile); fclose(logfile); goto x; } if (ctest->bands->len==0){ errbox(VTEXT(T_NO_BANDS), 0); free_ctest(); goto x; } zg_free0(file); progress(VTEXT(T_LOADING_SPY)); file = g_strdup_printf("%s/spy", datedir); z_wokna(file); load_spypeers_from_file(file); zg_free0(file); progress(VTEXT(T_LOADING_HICALLS)); file = g_strdup_printf("%s/hicalls", datedir); z_wokna(file); load_hicalls_from_file(file); zg_free0(file); progress(VTEXT(T_LOADING_QRV)); file = g_strdup_printf("%s/qrv", datedir); z_wokna(file); load_qrv_from_file(qrv, file); zg_free0(file); progress(VTEXT(T_LOADING_CHART)); file = g_strdup_printf("%s/chart", datedir); z_wokna(file); load_chart_from_file(file); zg_free0(file); progress(VTEXT(T_SAVING_CONTEST)); check_autosave(); progress(VTEXT(T_UPD_INT_DATA)); ctest->lockfile = lockfile; ctest->logfile = logfile; ctest->cdate = g_strdup(date); c = strchr(ctest->cdate, '.'); if (c) *c='\0'; now = time(NULL); gmtime_r(&now, &tm); nowdate_int = (tm.tm_year+1900)*10000 + (tm.tm_mon+1)*100 + tm.tm_mday; ctestdate_int = atoi(ctest->cdate); if (/* nowdate_int >= ctestdate_int &&*/ nowdate_int <= ctestdate_int + 2) ctest->oldcontest = 0; else ctest->oldcontest = 1; // dbg("ctestdate=%d nowdate=%d oldcontest=%d\n", ctestdate_int, nowdate_int, ctest->oldcontest); if (!edi_serid_used){ /* only for backward compatibility with version without ser_id in edi file */ g_hash_table_foreach(ctest->bystamp, foreach_source_recalc_ser_id, NULL); } g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); z_ptr_array_qsort(ctest->allqsos, compare_date_time_qsonrs); set_ctest_title(); clear_exc(excdb); read_exc_files(excdb, ctest->exctype, ctest->excname); progress(VTEXT(T_CALC_STATS)); recalc_allb_stats(); for (i=0; ibands->len; i++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i); b->dirty_statsf = 1; recalc_statsfifo(b); } //dump_all_sources(ctest); progress(VTEXT(T_ANN_OVER_NET)); net_send_ac(); sw_shake_tmo = ztimeout_init(100000); if (cfg->startband){ struct band *b; b=find_band_by_pband(cfg->startband); if (b){ progress(VTEXT(T_ACTIVATING_BAND), b->bandname); activate_band(b); /* b==NULL is handled by function */ } } /*#ifdef Z_HAVE_SDL maps_reload(); dela se pri activate_band #endif*/ progress(VTEXT(T_UPDATING_WKD)); qrv_recalc_wkd(qrv); progress(VTEXT(T_UPDATING_QRBQTF)); qrv_recalc_qrbqtf(qrv); progress(VTEXT(T_UPDATING_GAIN)); qrv_recalc_gst(qrv); progress(VTEXT(T_SEN_OVER_NET)); net_send_operator(); net_send_read_write_bands(); net_send_talk(); spypeer_send_requests(); x: sw_shake_tmo = -1; //dbg("nnx=%d\n", nn); // dumpvar(nn); // dumpvar(i); if (namelist){ for (i=0; icdate); destroy:; destroy_string_hash(hash); redraw_later(); } void import_swap(void *xxx, char *filename){ FILE *f; f = fopen(filename, "rt"); if (!f){ char *c = g_strdup_printf(VTEXT(T_CANT_READ_S), filename); msg_box(getml(c, NULL), VTEXT(T_ERROR), AL_CENTER, c, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); } add_qsos_from_swap(aband, f); fclose(f); } int save_desc_to_file(gchar *filename){ gchar *pcall, *s; FILE *f; int ret; z_wokna(filename); f = fopen(filename, "wt"); if (!f) return 1; pcall=g_strdup(ctest->pcall); s = g_strdup_printf("%s %s %s\n", ctest->cdate, z_str_uc(pcall), ctest->tname); ret = fprintf(f, "%s", s) != strlen(s); g_free(pcall); g_free(s); fclose(f); return ret; } tucnak-4.04/src/adif.h0000644000175000017500000000067011571227504011521 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __ADIF_H #define __ADIF_H int export_all_bands_adif(void); void import_adifx(char *filename); void import_adif(void *xxx, char *filename); #endif tucnak-4.04/src/oss.c0000644000175000017500000002120412460207027011405 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fifo.h" #include "language2.h" #include "oss.h" #ifdef HAVE_OSS static const char *clabels[] = SOUND_DEVICE_LABELS; static int oss_get_bufsize_frames(struct dsp *dsp){ double period_time = 0.0; double wanted = 0.050; int frames = 64; if (dsp->period_time > 0) wanted = dsp->period_time / 1000.0; while (period_time < wanted){ frames <<= 1; period_time = (double)frames / (double)dsp->speed; } return frames; } int oss_open(struct dsp *dsp, int rec){ int tmp; char errbuf[1024]; int maxfrag = 2; dbg("open_dsp('%s',%s)\n", dsp->oss_filename, rec?"record":"playback"); zg_free0(dsp->name); dsp->name = g_strdup(dsp->oss_filename); dsp->frames = oss_get_bufsize_frames(dsp); dsp->samples = dsp->frames * dsp->channels; dsp->bytes = dsp->samples * sizeof(short); dsp->fd = open (dsp->oss_filename, rec?O_RDONLY:O_WRONLY, 0); if (dsp->fd < 0){ log_addf("Can't open file '%s': %s", dsp->name, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } int a = -1, b; for (b = dsp->bytes; b > 0; b >>= 1) a++; if (a < 6) a = 6; dbg("bufsize=%df %ds %db a=%d\n", dsp->frames, dsp->samples, dsp->bytes, a); dsp->fragment = (maxfrag<<16)|a;//0x000a; dbg("setting fragment to 0x%08x\n", dsp->fragment); if (ioctl (dsp->fd, SNDCTL_DSP_SETFRAGMENT, &dsp->fragment)){ log_addf("Can't set fragment size to 0x%x: %s", dsp->fragment, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } if (ioctl(dsp->fd, SNDCTL_DSP_GETFMTS, &dsp->fmt_mask)){ log_addf(VTEXT(T_CANT_GET_FMTS), strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } tmp=dsp->oss_format; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf(VTEXT(T_CANT_SET_FMT), tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp=dsp->oss_format; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf(VTEXT(T_CANT_SET_FMT_RET), tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp = dsp->oss_format = AFMT_S16_NE; if (ioctl (dsp->fd, SNDCTL_DSP_SETFMT, &dsp->oss_format)){ log_addf(VTEXT(T_CANT_SET_FALLBACK), tmp, dsp->oss_format, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } } /* fallback ok */ } tmp=dsp->channels; if (ioctl (dsp->fd, SNDCTL_DSP_CHANNELS, &dsp->channels)){ log_addf(VTEXT(T_CANT_SET_CHANNELS), tmp, dsp->channels, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp=dsp->channels; if (ioctl (dsp->fd, SNDCTL_DSP_CHANNELS, &dsp->channels)){ log_addf(VTEXT(T_CANT_SET_CHANNELS_RET), tmp, dsp->channels, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } /* fallback ok */ } tmp=dsp->speed; if (ioctl (dsp->fd, SNDCTL_DSP_SPEED, &dsp->speed)){ log_addf(VTEXT(T_CANT_SET_RATE), tmp, dsp->speed, strerror_r(errno, errbuf, sizeof(errbuf)) ); tmp=dsp->speed; if (ioctl (dsp->fd, SNDCTL_DSP_SPEED, &dsp->speed)){ log_addf(VTEXT(T_CANT_SET_RATE_RET), tmp, dsp->speed, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } /* fallback ok */ } if (ioctl (dsp->fd, SNDCTL_DSP_GETBLKSIZE, &dsp->blksize)){ log_addf(VTEXT(T_CANT_SET_BLOCK_SIZE), tmp, dsp->blksize, strerror_r(errno, errbuf, sizeof(errbuf)) ); goto err; } //log_addf("OSS opened, rate=%d, bufsize=%df %ds %db", dsp->speed, dsp->frames, dsp->samples, dsp->bytes); dbg("OSS opened, rate=%d, bufsize=%df %ds %db\n", dsp->speed, dsp->frames, dsp->samples, dsp->bytes); goto x; err:; if (dsp->fd>=0) close(dsp->fd); dsp->fd = -1; x:; /* dbg(" dsp->fd=%d\n", dsp->fd);*/ return dsp->fd; } int oss_close(struct dsp *dsp){ /*ST_START;*/ dsp->reset(dsp); if (dsp->fd >= 0) { /*dbg("close_dsp(fd=%d)\n",dsp->fd);*/ close(dsp->fd); } dsp->fd=-1; /* ST_STOP;*/ return 0; } int oss_write(struct dsp *dsp, void *data, int frames){ int bpf = dsp->frames / dsp->bytes; int ret = write(dsp->fd, data, frames * bpf); if (ret > 0) ret /= bpf; return ret; } int oss_read(struct dsp *dsp, void *data, int frames){ int bpf = dsp->frames / dsp->bytes; int ret = read(dsp->fd, data, frames); if (ret > 0) ret /= bpf; return ret; } int oss_reset(struct dsp *dsp){ if (!dsp || dsp->fd<0) return 0; return ioctl(dsp->fd, SNDCTL_DSP_RESET, NULL); } int oss_sync(struct dsp *dsp){ if (!dsp || dsp->fd<0) return 0; return ioctl(dsp->fd, SNDCTL_DSP_SYNC, NULL); } #ifdef HAVE_SNDFILE int oss_set_format(struct dsp *dsp, SF_INFO *sfinfo, int ret){ switch (sfinfo->format & SF_FORMAT_SUBMASK){ /* case SF_FORMAT_PCM_U8: format=AFMT_U8; break; case SF_FORMAT_PCM_S8: format=AFMT_S8; break;*/ case SF_FORMAT_ULAW: dsp->oss_format=AFMT_MU_LAW; break; case SF_FORMAT_ALAW: dsp->oss_format=AFMT_A_LAW; break; case SF_FORMAT_IMA_ADPCM: dsp->oss_format=AFMT_IMA_ADPCM; break; default: dsp->oss_format=AFMT_S16_NE; } dsp->channels=sfinfo->channels; if (dsp->channels>MAX_CHANNELS) dsp->channels=MAX_CHANNELS; dsp->speed=sfinfo->samplerate; return 0; } #endif static char *stripr(char *s){ int i; i=strlen(s); if (!i) return s; for (i--;i>=0;i--){ if (s[i]!=' ') break; s[i]='\0'; } return s; } int oss_get_sources(struct dsp *dsp, GString *labels){ int fd, i, recmask; char s[16]; g_string_truncate(labels, 0); if (!dsp || !dsp->oss_mixer || strlen(dsp->oss_mixer)==0) return 0; fd=open(dsp->oss_mixer, O_RDWR, 0); if (fd<0){ return -1; } if (ioctl(fd, SOUND_MIXER_READ_RECMASK, &recmask) <0){ close(fd); return -1; } for (i=0; istr)>0) g_string_append_c(labels, ';'); safe_strncpy(s, clabels[i], sizeof(s)); stripr(s); g_string_append(labels, s); } close(fd); return 0; } int oss_set_source(struct dsp *dsp){ int fd, i, val; char s[16]; dbg("oss_set_dsp->source('%s')\n", dsp->source); if (!dsp->source || !*dsp->source || !dsp->oss_mixer || !*dsp->oss_mixer){ return 0; } fd=open(dsp->oss_mixer, O_RDWR, 0); if (fd<0){ return -1; } for (i=0; isource)!=0) continue; dbg("oss_mixer_set_source('%s') setting 0x%x\n", dsp->source, i); if (ioctl(fd, SOUND_MIXER_WRITE_RECSRC, &i) <0){ close(fd); return -1; } if (dsp->rlev < 0) continue; val = (dsp->rlev << 8 ) | dsp->rlev; if (ioctl(fd, MIXER_WRITE(i), &val) < 0){ close(fd); return -3; } close(fd); return 0; } dbg("oss_mixer_set_source('%s') not found\n", dsp->source); close(fd); return -2; } int oss_set_plevel(struct dsp *dsp){ int fd, i, val; char s[16]; dbg("oss_set_plevel()\n"); if (!dsp->oss_mixer || !*dsp->oss_mixer) return 0; if (dsp->plev < 0) return 0; fd=open(dsp->oss_mixer, O_RDWR, 0); if (fd<0){ return -1; } dbg("SOUND_MIXER_NRDEVICES=%d\n", SOUND_MIXER_NRDEVICES); for (i=0; iplev << 8 ) | dsp->plev; if (ioctl(fd, MIXER_WRITE(i), &val) < 0){ close(fd); return -3; } } close(fd); return 0; } char *oss_recsrc2source(int recsrc){ int i; static char s[16]; if (recsrc==0) return NULL; for (i=-1; recsrc; recsrc>>=1, i++); if (i<0) return NULL; if (i>=SOUND_MIXER_NRDEVICES) return NULL; safe_strncpy(s, clabels[i], sizeof(s)); stripr(s); return s; } #endif tucnak-4.04/src/sdev.c0000644000175000017500000002615512460207027011554 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fifo.h" #include "language2.h" #include "main.h" #include "rc.h" #include "sdev.h" #include "tsdl.h" #include "zstring.h" #define STARTB 4 #define STOPB 1 struct sconn sconns; MUTEX_DEFINE(sconns); void init_sconns(void){ progress(VTEXT(T_INIT_SERIAL_DEVICES)); MUTEX_INIT(sconns); init_list(sconns); } struct sdev *sd_open_ttys(char saddr, char *filename, int timeout_ms){ struct sconn *sc; struct sdev *sd; /* dbg("sd_open_ttys(%s)\n", filename);*/ MUTEX_LOCK(sconns); foreach(sc, sconns){ if (sc->type!=CT_TTYS) continue; if (strcmp(sc->ttys_filename, filename)!=0) continue; /*dbg("found sc=%p\n", sc);*/ sc->refcnt++; MUTEX_UNLOCK(sconns); goto found; } MUTEX_UNLOCK(sconns); /* sconn not found */ sc=g_new0(struct sconn,1); dbg("new sc %p\n",sc); sc->refcnt++; MUTEX_LOCK(sconns); add_to_list(sconns, sc); MUTEX_UNLOCK(sconns); sc->type=CT_TTYS; sc->ttys_filename=g_strdup(filename); sc->sprotocol = SPROT_NONE; #ifdef Z_MSC_MINGW sc->zser = zserial_init_win32(sc->ttys_filename); #else sc->zser = zserial_init_tty(sc->ttys_filename); #endif zserial_nolocks(sc->zser, cfg->nolocks); sc_open_common(sc); found: sd=g_new0(struct sdev,1); sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; add_to_list(sc->sdevs, sd); MUTEX_UNLOCK(sc->sdevs); sd->sconn=sc; sd->saddr=saddr; sd->timeout_ms = timeout_ms; /*dbg("sd=%p refcnt=%d\n",sd,sc->refcnt);*/ return sd; } struct sdev *sd_open_ftdi(char saddr, int vid, int pid, char *serial, int timeout_ms){ struct sconn *sc; struct sdev *sd; /* dbg("sd_open_ttys(%s)\n", filename);*/ MUTEX_LOCK(sconns); foreach(sc, sconns){ if (sc->type!=CT_FTDI) continue; if (serial && *serial) if (strcmp(sc->ftdi_serial, serial)!=0) continue; /*dbg("found sc=%p\n", sc);*/ sc->refcnt++; MUTEX_UNLOCK(sconns); goto found; } MUTEX_UNLOCK(sconns); /* sconn not found */ sc=g_new0(struct sconn,1); dbg("new sc %p\n",sc); sc->refcnt++; MUTEX_LOCK(sconns); add_to_list(sconns, sc); MUTEX_UNLOCK(sconns); sc->type=CT_FTDI; sc->ftdi_vid = vid; sc->ftdi_pid = pid; sc->ftdi_serial = g_strdup(serial?serial:""); sc->sprotocol = SPROT_ROTAR; sc->zser = zserial_init_ftdi(sc->ftdi_vid, sc->ftdi_pid, sc->ftdi_serial); if (sc->zser) sc_open_common(sc); found: sd=g_new0(struct sdev,1); sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; add_to_list(sc->sdevs, sd); MUTEX_UNLOCK(sc->sdevs); sd->sconn=sc; sd->saddr=saddr; sd->timeout_ms = timeout_ms; /*dbg("sd=%p refcnt=%d\n",sd,sc->refcnt);*/ return sd; } void sc_open_common(struct sconn *sc){ MUTEX_INIT(sc->sdevs); init_list(sc->sdevs); MUTEX_INIT(sc->jobs); init_list(sc->jobs); sc->thread = g_thread_try_new("sc_main", sc_main, (gpointer)sc, NULL); //dbg("sc created thread %p\n", sc->thread); } struct sdev *sd_open_udp(char *hostname, int udpport){ return NULL; } struct sdev *sd_open_tcp(char *hostname, int tcpport){ return NULL; } int free_sd(struct sdev *sd){ struct sconn *sc; /* dbg(" ------\n");*/ dbg("free_sd(%p)\n", sd); if (!sd) return -1; sc=sd->sconn; /* dbg(" refcnt=%d\n", sc->refcnt);*/ sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; del_from_list(sd); MUTEX_UNLOCK(sc->sdevs); sc->refcnt--; if (!sc->refcnt){ /*dbg(" freeing sc %p\n", sc);*/ sc->freeing = 1; if (sc->thread){ sc->thread_break = 1; dbg("join sconn...\n"); g_thread_join(sc->thread); dbg("done\n"); sc->thread = NULL; } sc->give_me_chance = 1; MUTEX_LOCK(sc->sdevs); sc->give_me_chance = 0; del_from_list(sd); MUTEX_UNLOCK(sc->sdevs); zg_free0(sc->ttys_filename); zg_free0(sc->ip_hostname); #ifdef Z_HAVE_LIBFTDI zg_free0(sc->ftdi_serial); #endif MUTEX_LOCK(sconns); del_from_list(sc); MUTEX_UNLOCK(sconns); g_free(sc); }else{ /*dbg(" sc %p already active\n", sc);*/ } g_free(sd); return (0); } static char sd_chk(unsigned char *s, int len){ unsigned char chk, *c; chk=0; for (c=s;len;c++,len--){ chk^=*c; } return chk; } int sconn_open(struct sconn *sconn, int verbose){ if (sconn->freeing) return -1; if (sconn->opened) return 0; zserial_set_line(sconn->zser, 9600, 8, 'E', 1); if (zserial_open(sconn->zser)){ if (verbose) zselect_msg_send(zsel, "SC;!;%s", zserial_errorstr(sconn->zser)); return -1; } // zserial_rts(sconn->zser, 1); // zserial_dtr(sconn->zser, 1); zserial_rts(sconn->zser, 0); /* clear PSEN */ /* clear = log.1 */ zserial_dtr(sconn->zser, 0); /* clear reset*/ /* clear */ sconn->opened = 1; return 0; } int sconn_close(struct sconn *sconn){ zserial_close(sconn->zser); sconn->opened = 0; return 0; } int sd_prot(struct sconn *sconn, char saddr, char fce, char *data, int *len, int timeout){ unsigned char rawdata[550]; int rawlen,written,rawi; int ret, i; static unsigned int sernr = 0; ret = sconn_open(sconn, 0); if (ret) return ret; /* clearing queue, filedescriptor is non-blocking */ /* for (i=0; i<10; i++){ if (sconn->read(sconn, rawdata, sizeof(rawdata)-1, 100)<=0) break;}*/ rawlen=0; memset(rawdata, 0xff, STARTB); rawlen+=STARTB; rawdata[rawlen++]=0xc5; rawdata[rawlen++]=fce&0x7f; rawdata[rawlen++]=saddr; rawdata[rawlen++]=(unsigned char)*len; memcpy(rawdata+rawlen, data, *len); rawlen+=*len; rawdata[rawlen]=sd_chk(rawdata+STARTB, rawlen-STARTB); rawlen++; memset(rawdata+rawlen, 0xff, STOPB); rawlen+=STOPB; if (cfg->trace_sdev){ dbg("\n%5d sconn->write(", sernr++ % 100000); for (i=0; izser, rawdata, rawlen); trace(cfg->trace_sdev, "sd_send: written=%d\n", written); if (written<0) return written; rawi=0; while(1){ if (rawi>=sizeof(rawdata)-1) return 20; ret = zserial_read(sconn->zser, rawdata+rawi, sizeof(rawdata)-rawi, timeout); // dbg("read=%d\n", ret); if (ret<0) return -3; if (ret==0) return -4; rawi += ret; if (cfg->trace_sdev) { int j; dbg("read="); for (j=0; jrawi %d+5>%d=%d\n", i, rawi, i+5>rawi); if (i+5>rawi) goto nextloop; // dbg("i+5+rawdata[i+3]>rawi %d+5+%d>%d\n", i, (unsigned char)rawdata[i+3], rawi); if (i+5+(unsigned char)rawdata[i+3]>rawi) goto nextloop; // dbg("b\n"); if (sd_chk(rawdata+i, 5+rawdata[i+3]) != 0) return 11; if (rawdata[i+1]==0) return 17; if (rawdata[i+1]==0x80) return 14; if ((rawdata[i+1] & 0x80)==0) continue; // dbg("c\n"); if (rawdata[i+2]!=(unsigned char)saddr) return 16; // dbg("d\n"); if (rawdata[i+1]!=(fce|0x80)) return 16; *len = rawdata[i+3]; memcpy(data, rawdata+i+4, *len); /* { int j; dbg("OK data=\n"); for (j=0; j<*len; j++) dbg("%02x ", (unsigned char)data[j]); dbg("\n"); }*/ return 0; } //dbg("neni C5 0..%d\n", rawi); nextloop:; } return 0; } char *sd_err(int err){ switch(err){ case 0: return "OK"; case 11: return VTEXT(T_BAD_CHECKSUM); case 13: return VTEXT(T_TIMEOUT2); case 14: return VTEXT(T_ERROR); case 16: return VTEXT(T_BAD_RESPONSE); case 17: return VTEXT(T_UNKNOWN_FUNCTION); default: return VTEXT(T_UNKNOWN_ERROR_CODE); } } gpointer sc_main(gpointer xxx){ char data[256]; int len; // struct sslave *sptr; struct sconn *sconn = (struct sconn *)xxx; dbg("sc_main\n"); zg_thread_set_name("Tucnak sc_main"); sconn_open(sconn, 1); while(!sconn->thread_break){ struct sconn_job *job; struct sdev *sdev; int i, chrapej = 0; if (sconn->give_me_chance) { usleep(10000); continue; } MUTEX_LOCK(sconn->sdevs); job = sconn_job_get(sconn); //dbg("job=%p\n", job); if (!job){ i = 0; foreach (sdev, sconn->sdevs) i++; // number of sdevs if (i==0) { error("sc_main: sconn->sdevs is empty"); sleep(1); } if (sconn->sdevi >= i) sconn->sdevi = 0; i = sconn->sdevi; sdev = NULL; foreach (sdev, sconn->sdevs) { if (!i--) break; } // dbg("sdevi=%d sdev=%p main=%p\n", sconn->sdevi, sdev, sdev->sdev_main); if (sdev->sdev_main) { if (sdev->sdev_main(sdev)) chrapej++; } sconn->sdevi++; MUTEX_UNLOCK(sconn->sdevs); if (chrapej) goto zzzzz; continue; } switch(job->cmd){ case SCONN_ROT_AZIM: data[0] = job->azim & 0xff; data[1] = (job->azim >> 8) & 0xff; len=2; dbg("sd_prot(%d, %d)\n", job->sdev->saddr, job->azim); sd_prot(sconn, job->sdev->saddr, 65, data, &len, job->sdev->timeout_ms); break; } MUTEX_UNLOCK(sconn->sdevs); continue; zzzzz:; //for (i=0; i<20;i++){ // if (sconn->thread_break) break; usleep(100000); //} } dbg("sc_main exiting\n"); sconn_close(sconn); return NULL; } void sconn_job_add(struct sconn *sconn, struct sconn_job *job){ MUTEX_LOCK(sconn->jobs); add_to_list(sconn->jobs, job); MUTEX_UNLOCK(sconn->jobs); } struct sconn_job *sconn_job_get(struct sconn *sconn){ struct sconn_job *job; MUTEX_LOCK(sconn->jobs); if (list_empty(sconn->jobs)){ MUTEX_UNLOCK(sconn->jobs); return NULL; } job = sconn->jobs.prev; del_from_list(job); MUTEX_UNLOCK(sconn->jobs); return job; } tucnak-4.04/src/qrvdb.h0000644000175000017500000000642212360700061011724 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __QRVDB_H #define __QRVDB_H #include "header.h" struct qso; struct subwin; struct event; struct band; #define QRVSSIZE 30 struct qrv_item{ gchar *call; gchar *wwl; int bands_qrv; // qrv on band int wkd[32]; // 0 not wkd or no info about // <0 wkd by others // >0 wkd by me, maybe also by others gchar *text; time_t kst_time; // time when spot was caught on KST int bands_wkd; // wkd in this contest int kx,ky; double qrb; int qtf; double weight; // A/C time_t ac_start; int ac_interval; int ac_n; int ac_drawn; }; struct qrvdb{ ZPtrArray *qrvs; // of struct qrv_item MUTEX_DEFINE(qrvs); GHashTable *hash; int def_bands; double antchar[360]; int beamwidth; double gst[360]; int (*sort)(const void*, const void *); int (*sort2)(const void*, const void *); int showall; char search[QRVSSIZE]; int sortdir; }; extern struct qrvdb *qrv; struct qrvdb *init_qrv(void); void clear_qrv(struct qrvdb *qrvdb); void free_qrv(struct qrvdb *qrvdb); struct qrv_item *qrv_add(gchar *call, gchar *wwl, int qrv_int, int wkd[32], const gchar *text, time_t kst_time); void qrv_delete(char *call, int bi); int load_qrv_files(struct qrvdb *qrvdb); int save_qrv_to_file(char *filename); int load_qrv_from_file(struct qrvdb *qrvdb, gchar *filename); void load_one_qrv(struct qrvdb *qrvdb, gchar *s); void qrv_set_wkd(struct qrvdb *qrvdb, struct qso *qso); void qrv_recalc_wkd(struct qrvdb *qrvdb); void qrv_compute_qrbqtf(struct qrv_item *q); void qrv_recalc_qrbqtf(struct qrvdb *qrvdb); void qrv_recalc_gst(struct qrvdb *qrvdb); int qrv_skip(struct qrv_item *qi, int bi, int setdrawn); void sw_qrv_seek(struct subwin *sw, int value); struct qrv_item *qrv_get(struct qrvdb *qrvdb, char *call); int qrv_compare_ac_start(const void *a, const void *b); int qrv_compare_ac_int(const void *a, const void *b); int qrv_compare_ac_n(const void *a, const void *b); int qrv_compare_call(const void *a, const void *b); int qrv_compare_wwl(const void *a, const void *b); int qrv_compare_wkd(const void *a, const void *b); int qrv_compare_qrb(const void *a, const void *b); int qrv_compare_qtf(const void *a, const void *b); int qrv_compare_kst_time(const void *a, const void *b); int qrv_compare_text(const void *a, const void *b); void qrv_touch(struct qrvdb *qrvdb, char *call); void edit_qrv(void *arg); int sw_qrv_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_qrv_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_qrv_redraw(struct subwin *sw, struct band *band, int flags); void sw_qrv_check_bounds(struct subwin *sw); void sw_qrv_raise(struct subwin *sw); void sw_qrv_sort(struct qrvdb *qrvdb); void qrv_read_line(char *); int sw_qrv_color(char *call); struct zstring *qrv_format(struct qrv_item *qi); void qrv_sort(int (*fce)(const void*, const void *)); void menu_qrv_add_contest(void *menudata, void *itdata); #endif tucnak-4.04/src/ssbd.c0000644000175000017500000007530212460207027011544 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "control.h" #include "cwdaemon.h" #include "dsp.h" #include "fft.h" #include "fifo.h" #include "icons.h" #include "language2.h" #include "main.h" #include "net.h" #include "player.h" #include "qsodb.h" #include "rc.h" #include "scope.h" #include "sdr.h" #include "tsdl.h" #include "sdr.h" #include "session.h" #include "ssbd.h" #include "subwin.h" #include "tregex.h" struct ssbd *gssbd; MUTEX_DEFINE(ssbd); #define MAXCNTLEVEL 1 struct ssbd *init_ssbd(){ struct ssbd *ssbd; progress(VTEXT(T_INIT_SSB_CQ)); ssbd = g_new0(struct ssbd, 1); #ifdef HAVE_SNDFILE MUTEX_INIT(ssbd); #ifdef VOIP ssbd->voip = init_voip(); voip_receive(ssbd); //voip_test(ssbd->voip); #endif #if defined(Z_HAVE_SDL) && defined(Z_HAVE_LIBPNG) if (sdl){ ssbd->norecicon = zpng_create(icon_norec, sizeof(icon_norec)); if (!ssbd->norecicon) zinternal("Can't create norec icon, currupted executable?"); ssbd->recicon = zpng_create(icon_record, sizeof(icon_record)); if (!ssbd->recicon) zinternal("Can't create record icon, currupted executable?"); ssbd->playicon = zpng_create(icon_play, sizeof(icon_play)); if (!ssbd->playicon) zinternal("Can't create play icon, currupted executable?"); } #endif ssbd->loglevel = -1; ssbd->oldloglevel = -2; MUTEX_INIT(ssbd->loglevel); MUTEX_INIT(ssbd->seek); ssbd->dsp = init_dsp((enum dsp_type)cfg->ssbd_type, DCG_SSBD); #endif return ssbd; } void free_ssbd(struct ssbd *ssbd){ progress(VTEXT(T_FREE_SSB_CQ)); cq_abort(1); ssbd_abort(ssbd,1); #ifdef HAVE_SNDFILE ssbd_thread_join(ssbd); /* killed before but... */ g_free(ssbd->buffer); free_dsp(ssbd->dsp); #ifdef VOIP free_voip(ssbd->voip); #endif zg_free0(ssbd->callsign); zg_free0(ssbd->pfilename); zg_free0(ssbd->rfilename); #ifdef Z_HAVE_SDL if (sdl){ if (ssbd->playicon) SDL_FreeSurface(ssbd->playicon); if (ssbd->recicon) SDL_FreeSurface(ssbd->recicon); if (ssbd->norecicon) SDL_FreeSurface(ssbd->norecicon); g_free(ssbd->scope_buf); } #endif if (ssbd->pl_pcmfile){ unlink(ssbd->pl_pcmfile); g_free(ssbd->pl_pcmfile); } MUTEX_FREE(ssbd); MUTEX_FREE(ssbd->loglevel); MUTEX_FREE(ssbd->seek); #endif // HAVE_SNDFILE g_free(ssbd); } void ssbd_abort(struct ssbd *ssbd, int abort_rec){ gchar *tmpfile; int recording; if (!ssbd) return; dbg("ssbd_abort recording=%d abort_rec=%d\n", ssbd->recording, abort_rec); recording = ssbd->recording; #ifdef HAVE_SNDFILE ssbd->channels = 0; ssbd->playedf = 0; if (gses) gses->icon=NULL; ssbd_thread_join(ssbd); if (ssbd->sndfile && recording) { sf_close (ssbd->sndfile); ssbd->sndfile = NULL; if (!cfg->ssbd_template || !ssbd->rfilename) goto x; tmpfile=convert_esc(cfg->ssbd_template, NULL, CE_NONE, time(NULL)); /*dbg("cfg->template='%s' cfg->callsign='%s' \n", cfg->ssbd_template, ssbd->callsign); dbg("tmpfile='%s' cfg->filename='%s'\n", tmpfile, ssbd->rfilename);*/ if (strcmp(tmpfile, ssbd->rfilename)!=0){ dbg("renaming '%s' to '%s'\n", ssbd->rfilename, tmpfile); rename(ssbd->rfilename, tmpfile); g_free(ssbd->rfilename); ssbd->rfilename=g_strdup(tmpfile); } g_free(tmpfile); } x:; ssbd->dsp->close2(ssbd->dsp); ssbd->recording=0; if (!abort_rec) { #ifdef USE_SDR sdr_start(gsdr); #endif ssbd_rec_file(ssbd); }else{ #ifdef USE_SDR sdr_stop(gsdr); #endif } #endif #ifdef Z_ANDROID zandroid_ssbd_abort(); #endif } int ssbd_recording(struct ssbd *ssbd){ //dbg("ssbd_recording=%d\n", ssbd->recording); return ssbd->recording; } #ifdef HAVE_SNDFILE void ssbd_thread_create(struct ssbd *ssbd, GThreadFunc thread_func){ #if 0 dbg("ssbd_thread_create"); if (thread_func==ssbd_play_thread_func) dbg(" play\n"); else if (thread_func==ssbd_rec_thread_func) dbg(" rec\n"); #ifdef VOIP else if (thread_func==voip_thread_func) dbg(" voip\n"); #endif else dbg(" ???"); #endif ssbd->proc_break=0; if (ssbd->thread) return; ssbd->thread = g_thread_try_new("ssbd", thread_func, (gpointer)ssbd, NULL); dbg("ssbd created thread %p\n", ssbd->thread); } void ssbd_thread_join(struct ssbd *ssbd){ dbg("ssbd thread join %p\n", ssbd->thread); if (!ssbd->thread) return; ssbd->proc_break=1; dbg("join ssbd...\n"); g_thread_join(ssbd->thread); dbg("done\n"); ssbd->thread = NULL; } /* ------- playing -------------------------------------------------- */ int ssbd_play_file(struct ssbd *ssbd, gchar *pfilename){ SF_INFO sfinfo; int subformat; char *wfilename; dbg("ssbd_play_file('%s')\n", pfilename); ssbd_abort(ssbd,1); /*aborts playing or recording */ memset (&sfinfo, 0, sizeof (sfinfo)); if (!pfilename || strlen(pfilename)==0) { log_adds(VTEXT(T_NO_FILE)); return -1; } dbg ("Playing %s\n", pfilename); wfilename = g_strdup(pfilename); z_wokna(wfilename); if (! (ssbd->sndfile = sf_open (wfilename, SFM_READ, &sfinfo))){ char *sferr = z_1250_to_8859_2(g_strdup(sf_strerror (NULL))); log_addf("Can't play %s - %s", wfilename, sferr); g_free(sferr); g_free(wfilename); return -1; }; g_free(wfilename); if (sfinfo.channels < 1 || sfinfo.channels > 2){ log_addf (VTEXT(T_UNSUP_CHANNELS), sfinfo.channels); sf_close (ssbd->sndfile); ssbd->sndfile = NULL; return -1; }; subformat = sfinfo.format & SF_FORMAT_SUBMASK; if (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE){ log_addf(VTEXT(T_FLOAT_UNSUPP)); sf_close (ssbd->sndfile); ssbd->sndfile = NULL; return -1; } dbg("sfinfo: format=0x%x channels=%d speed=%d frames=%d\n", sfinfo.format, sfinfo.channels, sfinfo.samplerate, sfinfo.frames); ssbd->dsp->set_format(ssbd->dsp, &sfinfo, 0); ssbd->dsp->set_plevel(ssbd->dsp); if (ssbd->dsp->open(ssbd->dsp, 0)<0) { log_addf(VTEXT(T_CANT_OPEN_DSP_PLAY), ssbd->dsp->name); sf_close (ssbd->sndfile); ssbd->sndfile = NULL; return -1; }; //dbg("play opened: channels=%d speed=%d\n", gdsp->channels, gdsp->speed); g_free(ssbd->buffer); ssbd->buffer = g_new0(short, ssbd->dsp->samples); #ifdef USE_FFT fft_start(gfft, ssbd->dsp->frames, ssbd->dsp->speed); #endif sw_scope_clear_scopes(); ssbd->channels = sfinfo.channels; ssbd->seek = 0; #ifdef Z_HAVE_SDL if (zsdl && gses){ ssbd->scope_w = gses->ontop->w * zsdl->font_w; ssbd->scope_samples = ssbd->channels * ssbd->scope_w; ssbd->scope_buf = g_new0(short, ssbd->scope_samples); ssbd->scope_show = 0; //dbg("gssbd->scope_show = 0 %s:%d\n", __FUNCTION__, __LINE__); ssbd->scope_i = 0; } #endif ssbd_thread_create(ssbd, ssbd_play_thread_func); if (gses) gses->icon=ssbd->playicon; return 0; } gpointer ssbd_play_thread_func(gpointer data){ int frames, samples, writtenf, writtens; int err; short *wrptr; int xxx = -1; sf_count_t cnt; int tocopy; // in samples zg_thread_set_name("Tucnak ssbd play"); /*dbg("play thread started\n"); for (i=0;i<6;i++){ if (ssbd->thread_break) goto x; dbg("kdák\n"); sleep(1); } */ while(1){ int seek; xxx++; if (gssbd->proc_break) { gssbd->dsp->reset(gssbd->dsp); goto x; } MUTEX_LOCK(gssbd->seek); seek = gssbd->seek * gssbd->channels * gssbd->dsp->speed / 1000; gssbd->seek = 0; MUTEX_UNLOCK(gssbd->seek); if (seek != 0){ //dbg("seek(%d)\n", seek); cnt = sf_seek(gssbd->sndfile, 0, SEEK_CUR); cnt += seek; if (cnt < 0) cnt = 0; cnt = sf_seek(gssbd->sndfile, cnt, SEEK_SET); if (cnt >= 0) gssbd->playedf = cnt; gssbd->cntlevel = 0; } frames = sf_readf_short (gssbd->sndfile, gssbd->buffer, gssbd->dsp->frames); if (frames <= 0) break; samples = (frames * gssbd->dsp->samples) / gssbd->dsp->frames; gssbd->playedf += frames; /* todo playmax & etc */ #if 0 // dbg("ctrl=%d\n", sdl->ctrl); if (!sdl->ctrl) memset(gssbd->buffer, 0, gssbd->bytes); #endif if (gssbd->proc_break) { gssbd->dsp->reset(gssbd->dsp); goto x; } /*if (gssbd->cntlevel--==0){ gssbd->cntlevel=MAXCNTLEVEL; zselect_msg_send(zsel, "%s;%s", "SSBP", "L"); } */ #ifdef Z_HAVE_SDL if (gssbd->scope_show == 0){ tocopy = Z_MIN(samples, gssbd->scope_samples - gssbd->scope_i); if (tocopy > 0) { memcpy(gssbd->scope_buf + gssbd->scope_i, gssbd->buffer, tocopy * sizeof(short)); gssbd->scope_i += tocopy; if (gssbd->scope_i >= gssbd->scope_samples){ gssbd->scope_show = 1; gssbd->scope_i = 0; zselect_msg_send(zsel, "%s;%s", "SSBP", "L"); } } } #endif #ifdef USE_FFT if (gfft){ int i, j; short *p = gssbd->buffer; for (i=0; idsp->channels; j++){ v += (double)*p++; } v /= gssbd->dsp->channels; v /= 32768; if (i >= gfft->lenrin) zinternal("gfft->dynrin[%d] access (rinlen=%d)", i, gfft->lenrin); gfft->dynrin[i] = v; } fft_do(gfft); zselect_msg_send(zsel, "SSBP;D"); } #endif wrptr = gssbd->buffer; while(1){ writtenf = gssbd->dsp->write (gssbd->dsp, wrptr, frames); if (writtenf < 0){ GString *gs = g_string_new(""); err=errno; MUTEX_LOCK(ssbd); g_string_sprintfa(gs, "!%s %s ", VTEXT(T_CANT_WRITE_TO), gssbd->dsp->name); z_strerror(gs, err); g_string_append_c(gs, '\n'); MUTEX_UNLOCK(ssbd); zselect_msg_send(zsel, "%s;%s", "SSBP", gs->str); g_string_free(gs, TRUE); goto x; } if (writtenf < frames){ dbg("write(%s) interrupted after %d frames\n", gssbd->dsp->name, writtenf); writtens = (writtenf * gssbd->dsp->samples) / gssbd->dsp->frames; wrptr += writtens; frames -= writtenf; } break; } } gssbd->dsp->sync(gssbd->dsp); //sprintf(s, "SSBP;e\n"); //ret = write(tpipe->threadpipe_write, s, strlen(s)); zselect_msg_send(zsel, "%s;%s", "SSBP", "e"); x:; memset(gssbd->buffer, 0, gssbd->dsp->bytes); dbg("ssbd_play_thread_func exited\n"); return NULL; } #endif #if defined(HAVE_SNDFILE) || defined(Z_ANDROID) void ssbd_play_read_handler(struct ssbd *ssbd, gchar *str){ /*dbg("ssbd_read_handler\n");*/ /* this breaks cw wait timer when L is received if (gses && gses->last_cq_timer_id){ // CQ was aborted while playing zselect_timer_kill(zsel, gses->last_cq_timer_id); gses->last_cq_timer_id = 0; } */ switch(str[0]){ case '!': /* error */ cq_abort(ssbd->recording); /*abort recording only if it is in progress */ log_addf("ssbd: %s", str+1); if (gses) gses->icon=NULL; redraw_later(); cq_abort(ssbd->recording); peer_tx(aband, 0); break; case 'e': /* sample played */ if (!gses) break; #ifdef HAVE_SNDFILE if (ssbd->sndfile != NULL){ sf_close(ssbd->sndfile); ssbd->sndfile = NULL; } #endif gses->icon=NULL; if (!gses->last_cq) { /* last sample played */ cq_abort(ssbd->recording); break; } if (gses->last_cq->ssb_repeat) cq_ssb_wait(gses->last_cq); else{ gses->last_cq->type=MOD_NONE; cq_abort(ssbd->recording); } peer_tx(aband, 0); redraw_later(); break; case 'L': /* play level */ //ssbd->loglevel=atoi(str+1); #ifdef Z_HAVE_SDL if (gses && gses->ontop->type == SWT_SCOPE){ gses->ontop->gdirty = 1; //dbg("set gdirty\n"); } #endif redraw_later(); /*dbg("level=%d\n", ssbd->loglevel);*/ break; case 'D': #ifdef Z_HAVE_SDL if (gses && gses->ontop->type == SWT_SCOPE){ gses->ontop->gdirty = 1; } #endif redraw_later(); } } #endif /* ------- recording -------------------------------------------------- */ #ifdef HAVE_SNDFILE int ssbd_rec_file(struct ssbd *ssbd){ int subformat; SF_INFO sfinfo; char errbuf[1024]; double df; char *wfilename; /*dbg("ssbd_rec_file cfg->ssbd_record=%d ssbd->recording=%d ctest->recording=%d\n", cfg->ssbd_record, ssbd->recording, ctest?ctest->recording:-123); */ if (!cfg->ssbd_record) { strcpy(errbuf, VTEXT(T_REC_DISABLED)); goto norec; } if (ssbd->recording) return 0; if (gses) gses->icon=ssbd->norecicon; if (ctest && ctest->oldcontest) { strcpy(errbuf, VTEXT(T_CONTEST_TOO_OLD)); goto norec; } if (ssbd->thread != NULL) zinternal("ssbd_rec_file: ssbd->thread != NULL"); //ssbd_abort(ssbd,1); /*aborts playing or recording */ ssbd_watchdog(ssbd, 0); zg_free0(ssbd->rfilename); ssbd->serno++; ssbd->rfilename=convert_esc(cfg->ssbd_template, NULL, CE_NONE, time(NULL)); /*dbg ("Playing %s\n", ssbd->rfilename);*/ memset (&sfinfo, 0, sizeof (sfinfo)); sfinfo.format = cfg->ssbd_format; sfinfo.channels = cfg->ssbd_channels; sfinfo.samplerate = cfg->ssbd_samplerate; if (!sfinfo.format) sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; if (!sfinfo.channels) sfinfo.channels = 1; if (!sfinfo.samplerate) sfinfo.samplerate = 8000; if (ssbd->dsp->type == DSPT_SNDPIPE) { sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; sfinfo.channels = 2; sfinfo.samplerate = cfg->sdr_af_speed; } ssbd->code = 0; wfilename = g_strdup(ssbd->rfilename); z_wokna(wfilename); z_fmkdir_p(wfilename,0777); df=z_df(wfilename); if (df>=0.0 && cfg->ssbd_diskfree>0){ if (df < (cfg->ssbd_diskfree*1058576.0)){ //dbg("Not enough free disk space for %s: %d<%d (MiB)\n", wfilename, (int)(df/1048576), cfg->ssbd_diskfree); log_addf (VTEXT(T_NO_FREE_DISK_SPACE), wfilename, (int)(df/1048576), cfg->ssbd_diskfree); g_free(wfilename); return -1; } } /*dbg("check:%d\n", sf_format_check(&sfinfo));*/ if (! (ssbd->sndfile = sf_open(wfilename, SFM_WRITE, &sfinfo))){ char *sferr = z_1250_to_8859_2(g_strdup(sf_strerror (NULL))); log_addf (VTEXT(T_ERROR_WRITING_FILE), wfilename, sferr); g_free(sferr); g_free(wfilename); return -1; }; g_free(wfilename); subformat = sfinfo.format & SF_FORMAT_SUBMASK; if (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE){ log_addf(VTEXT(T_FLOAT_UNSUPP)); sf_close (ssbd->sndfile); ssbd->sndfile = NULL; return -1; } /*dbg("sfinfo: format=%x channels=%d speed=%d frames=%d\n", sfinfo.format, sfinfo.channels, sfinfo.samplerate, sfinfo.frames);*/ if (ssbd->dsp->type == DSPT_SNDPIPE) { ssbd->dsp->set_sdr_format(ssbd->dsp, cfg->sdr_block / 2, cfg->sdr_af_speed, 1); sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; sfinfo.channels = ssbd->dsp->channels; sfinfo.samplerate = ssbd->dsp->speed; }else{ ssbd->dsp->set_format(gssbd->dsp, &sfinfo, 1); } ssbd->dsp->set_source(gssbd->dsp); if (ssbd->dsp->open(ssbd->dsp, 1)<0){ log_addf(VTEXT(T_CANT_OPEN_DSP_REC), ssbd->dsp->name); sf_close (ssbd->sndfile); ssbd->sndfile = NULL; return -1; }; g_free(ssbd->buffer); ssbd->buffer = g_new0(short, ssbd->dsp->samples); #ifdef USE_FFT fft_start(gfft, ssbd->dsp->frames, ssbd->dsp->speed); #endif ssbd->channels = gssbd->dsp->channels; #ifdef Z_HAVE_SDL if (zsdl && gses){ sw_scope_clear_scopes(); ssbd->scope_w = gses->ontop->w * zsdl->font_w; ssbd->scope_samples = ssbd->channels * ssbd->scope_w; ssbd->scope_buf = g_new0(short, ssbd->scope_samples); ssbd->scope_show = 0; ssbd->scope_i = 0; } #endif ssbd_thread_create(ssbd, ssbd_rec_thread_func); if (gses) gses->icon=ssbd->recicon; ssbd->recording=1; return 0; norec:; if (ssbd->norecshowed) return 0; log_addf(VTEXT(T_NOT_RECORDING_S), errbuf); ssbd->norecshowed=1; return 0; } void rec_thread_sigint(int a){ /*dbg("rec_thread_sigint\n");*/ gssbd->proc_break=1; } gpointer ssbd_rec_thread_func(gpointer data){ gchar *c; int frames, samples, writtenframes=0, err, i; int max, loglevel, avg; unsigned long sum; time_t now; double df; struct timeval tv; #ifdef VOIP struct voippacket vp; struct sockaddr_in sin; short val = 0; #endif #ifdef Z_HAVE_SDL int tocopy; #endif zg_thread_set_name("Tucnak ssbd rec"); #ifdef VOIP memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(7300); //sin.sin_addr.s_addr = inet_aton("192.168.1.255", &sin.sin_addr); #endif while(1){ if (gssbd->proc_break) break; frames = gssbd->dsp->read(gssbd->dsp, gssbd->buffer, gssbd->dsp->frames); if (frames == -EWOULDBLOCK) { usleep(20000); continue; } if (frames<=0) { GString *gs = g_string_new(""); err=errno; MUTEX_LOCK(ssbd); g_string_sprintfa(gs, "!%s %s ", VTEXT(T_CANT_READ_FROM), gssbd->dsp->name); z_strerror(gs, err); g_string_sprintfa(gs, " %d %d\n", frames, err); MUTEX_UNLOCK(ssbd); zselect_msg_send(zsel, "%s;%s", "SSBR", gs->str); g_string_free(gs, TRUE); break; } samples = (frames * gssbd->dsp->samples) / gssbd->dsp->frames; gettimeofday(&tv, NULL); //dbg("%02d.%03d readed=%d readed/%d=%d \n", tv.tv_sec % 100, tv.tv_usec / 1000, readed, sizeof(short), readed/sizeof(short)); // for (i=0; i<512;i++) ssbd->buffer[i]=rand(); // FIXME //for (i=0; ibuffer[i]=1000 * ((2 *(i % 2)) - 1); //dbg("ssbd readed=%d readeds=%d [%d %d %d %d %d %d %d %d]\n", readed, readeds, ssbd->buffer[0], ssbd->buffer[1], ssbd->buffer[2], ssbd->buffer[3], ssbd->buffer[4], ssbd->buffer[5], ssbd->buffer[6], ssbd->buffer[7]); //for (i = 0; i < samples; i++) gssbd->buffer[i] = -i; #if 0 for (i=0; ibuffer[i] = 32767 * ( 0.6 * cos((ix* 1000.0 *2*M_PI)/cfg->ssbd_samplerate) + /*0.1 * cos((ix* 2000.0 *2*M_PI)/cfg->ssbd_samplerate) + 0.1 * cos((ix* 3000.0 *2*M_PI)/cfg->ssbd_samplerate) + */ 0); ix++; } #endif if (gssbd->proc_break) break; #ifdef Z_HAVE_SDL if (gssbd->scope_show == 0){ tocopy = Z_MIN(samples, gssbd->scope_samples - gssbd->scope_i); if (tocopy > 0) { memcpy(gssbd->scope_buf + gssbd->scope_i, gssbd->buffer, tocopy * sizeof(short)); gssbd->scope_i += tocopy; if (gssbd->scope_i >= gssbd->scope_samples){ sum=0; max=0; avg=0; for (i = 0; i < samples; i++){ short sample = gssbd->buffer[i]; avg+=sample; } avg /= gssbd->dsp->channels; avg /= samples; for (i = 0; i < samples; i++){ short sample=gssbd->buffer[i] - avg; if (sample < 0) sample = -sample; sum += sample; if (sample > max) max = sample; } gssbd->midlevel=sum/samples; gssbd->maxlevel=max; // dbg("avg=%d midlevel=%d maxlevel=%d\n", avg, ssbd->midlevel, ssbd->maxlevel); if (max<32) loglevel=0; else loglevel=(log((double)max)-3.465735903)*14; if (loglevel>95) loglevel=95; MUTEX_LOCK(gssbd->loglevel); gssbd->loglevel = loglevel; MUTEX_UNLOCK(gssbd->loglevel); gssbd->scope_show = 1; //dbg("send SSBP;L scope_i=%d scope_samples=%d scope_show=%d\n", gssbd->scope_i, gssbd->scope_samples, gssbd->scope_show); gssbd->scope_i = 0; zselect_msg_send(zsel, "%s;%s", "SSBR", "L"); } } } #endif df=z_df(gssbd->rfilename); /* dbg("df=%f df=%d diskfree=%d\n", df, (int)(df/1048576), cfg->ssbd_diskfree);*/ if (df>=0.0 && cfg->ssbd_diskfree>0){ if (df < (cfg->ssbd_diskfree*1048576.0)){ MUTEX_LOCK(ssbd); //dbg("Not enough free disk space for %s: %d<%d (MiB)\n",gssbd->rfilename, (int)(df/1048576), cfg->ssbd_diskfree); c=g_strdup_printf("!%s %s %f<%d (MiB)\n", VTEXT(T_NO_DISK_SPACE), gssbd->rfilename, df/1048576.0, cfg->ssbd_diskfree); MUTEX_UNLOCK(ssbd); //ret = write(tpipe->threadpipe_write, c, strlen(c)); zselect_msg_send(zsel, "%s;%s", "SSBR", c); g_free(c); break; } } #ifdef USE_FFT if (gfft){ short *p = gssbd->buffer; for (i=0; idsp->channels; j++){ v += (double)*p++; } v /= gssbd->dsp->channels; v /= 32768; if (i >= gfft->lenrin) zinternal("gfft->rin[%i] lenrin=%d frames=%d", i, gfft->lenrin, frames); gfft->dynrin[i] = v; //gfft->dynrin[i] = 0; } fft_do(gfft); zselect_msg_send(zsel, "SSBR;D"); // dbg(" done i=%d\n", i); // dbg("vali=%d .. %d \t", mini, maxi); //RST_STOP; } #endif writtenframes = sf_writef_short (gssbd->sndfile, gssbd->buffer, frames); if (writtenframes <=0) { GString *gs = g_string_new(""); dbg("ssbd_rec_func write<=0\n"); MUTEX_LOCK(ssbd); g_string_sprintfa(gs, "!%s %s ", VTEXT(T_CANT_WRITE), gssbd->rfilename); z_strerror(gs, errno); g_string_append(gs, "\n"); MUTEX_UNLOCK(ssbd); zselect_msg_send(zsel, "%s;%s", "SSBR", gs->str); g_string_free(gs, TRUE); break; } #ifdef VOIP for (i = 0; i < readed / sizeof(short); i++) gssbd->buffer[i] = val++; if (gssbd->voip){ for (i = 0; i < readed; i += sizeof(vp.buf)){ // i is in bytes int r; vp.seq = htonl(gssbd->voip->seq++); r = readed - i; if (r > sizeof(vp.buf)) r = sizeof(vp.buf); vp.len = r; memcpy(&vp.buf, ((char *)gssbd->buffer) + i, vp.len); voip_distribute(gssbd->voip, &vp); } } #endif now=time(NULL); MUTEX_LOCK(ssbd); if (gssbd->recstop && now > gssbd->recstop){ dbg("ssbd_rec_func: timeout\n"); //ret = write(tpipe->threadpipe_write, c, strlen(c)); zselect_msg_send(zsel, "%s;%s", "SSBR", "Q"); //g_free(c); MUTEX_UNLOCK(ssbd); break; } MUTEX_UNLOCK(ssbd); } memset(gssbd->buffer, 0, gssbd->dsp->bytes); dbg("ssbd_rec_thread_func exited\n"); return 0; } void ssbd_rec_read_handler(struct ssbd *ssbd, gchar *str){ /*dbg("ssbd_read_handler\n");*/ switch(str[0]){ case '!': /* error */ cq_abort(1); log_addf("ssbd: %s", str+1); if (gses) gses->icon=NULL; redraw_later(); break; case 'L': /* recording level */ //ssbd->loglevel=atoi(str+1); #ifdef Z_HAVE_SDL if (gses && gses->ontop->type == SWT_SCOPE){ gses->ontop->gdirty = 1; }else{ gssbd->scope_show = 0; } #endif //sw_scope_redraw(gses->ontop, aband, 0); redraw_later(); /*dbg("level=%d\n", ssbd->loglevel);*/ break; case 'Q': ssbd_thread_join(ssbd); ssbd_abort(ssbd, 1); redraw_later(); // to clean record level bar break; case 'D': #ifdef Z_HAVE_SDL if (gses && gses->ontop->type == SWT_SCOPE){ gses->ontop->gdirty = 1; } #endif redraw_later(); } } /* ------- misc -------------------------------------------------- */ int ssbd_callsign(struct ssbd *ssbd, char *call){ if (!ssbd) return 0; MUTEX_LOCK(ssbd); zg_free0(ssbd->callsign); ssbd->callsign=g_strdup(call); MUTEX_UNLOCK(ssbd); return 0; } gchar *unique_filename(gchar *filename){ struct stat st; int ser; gchar *file, *ext, *c; char *c1, *c2, *c3; c1=c2=c3=NULL; if (stat(filename, &st)) return filename; /* filename doesn't exist */ if (regmatch(filename, "(.*)(\\..*)", &c1, &c2, &c3, NULL)==0){ file=g_strdup(c2); ext=g_strdup(c3); g_free(filename); }else{ file=filename; ext=g_strdup(""); } if (c1) g_free(c1); if (c2) g_free(c2); if (c3) g_free(c3); c=NULL; for (ser=1; ;ser++){ /*dbg("file='%s' ext='%s'\n", file, ext);*/ c=g_strdup_printf("%s%d%s", file, ser, ext); /* dbg("c='%s'\n", c);*/ if (stat(c, &st)){ /* c doesn't exist */ break; } g_free(c); } return c; } void ssbd_watchdog(struct ssbd *ssbd, int start_rec){ time_t t; // dbg("ssbd_watchdog\n"); if (!cfg->ssbd_maxmin) { ssbd->recstop=0; return; } t=time(NULL); t+=60*cfg->ssbd_maxmin; ssbd->recstop=t; if (!start_rec) return; if (ssbd->recording) return; if (gses->tx) return; if (gses->last_cq) return; //ssbd_rec_file(ssbd); ssbd_abort(ssbd, 0); } void menu_ssbd_play(void *arg, void *unused){ SF_INFO iin, iout; SNDFILE *fin, *fout; short *buf; int l, r, w; char *filename = (char *)arg; //filename = "e:\\home\\tucnak\\cq\\OK1ZIA_OK1ZIA2ch.wav"; dbg("menu_ssbd_play('%s')\n", filename); memset(&iin, 0, sizeof(SF_INFO)); fin = sf_open(filename, SFM_READ, &iin); if (!fin){ char *sferr = z_1250_to_8859_2(g_strdup(sf_strerror (NULL))); log_addf(VTEXT(T_CANT_PLAY_FILE), filename, sferr); g_free(sferr); return; } if (iin.seekable){ sf_close(fin); fin = NULL; player_play(filename); return; } // convert to PCM16 memcpy(&iout, &iin, sizeof(SF_INFO)); iout.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; zg_free0(gssbd->pl_pcmfile); gssbd->pl_pcmfile = g_strconcat(tucnak_dir, "/tmp.wav", NULL); fout = sf_open(gssbd->pl_pcmfile, SFM_WRITE, &iout); if (!fout){ char *sferr = z_1250_to_8859_2(g_strdup(sf_strerror (NULL))); log_addf(VTEXT(T_CANT_WRITE_SS), gssbd->pl_pcmfile, sferr); g_free(sferr); return; } l = 65536; buf = g_new0(short, l); while(1){ r = sf_read_short(fin, buf, l); if (r <= 0) break; w = sf_write_short(fout, buf, r); if (w <= 0) break; if (r != w) break; } sf_close(fin); fin = NULL; sf_close(fout); fout = NULL; player_play(gssbd->pl_pcmfile); g_free(buf); } void scan_dir(char *base, ZPtrArray *ia){ DIR *d; struct dirent *de; struct stat st; char *full = NULL; d = opendir(base); while ((de = readdir(d)) != NULL){ if (strcmp(de->d_name, ".") == 0) continue; if (strcmp(de->d_name, "..") == 0) continue; // dbg("de='%s'\n", de->d_name); zg_free0(full); full = g_strconcat(base, "/", de->d_name, NULL); if (stat(full, &st)) continue; // dbg("full='%s'\n", full); if (S_ISDIR(st.st_mode)) scan_dir(full, ia); if (S_ISREG(st.st_mode)) z_ptr_array_add(ia, g_strdup(full)); } closedir(d); zg_free0(full); } void ssbd_play_last_sample(struct ssbd *ssbd, struct qso *qso){ ZPtrArray *ia; struct tm tm; int i, act, first, len, d, t; struct menu_item *mi = NULL; char *c; time_t qt; char *template_; //log_addf("qso=%p", qso); if (ssbd->recording){ cq_abort(1); /* abort recording */ }else{ rx(); } if (!qso){ if (ssbd->rfilename && *ssbd->rfilename){ //dbg("rfilename=%s gses->last_cq=%p\n", ssbd->rfilename, gses->last_cq); //ssbd_play_file(ssbd, ssbd->rfilename); menu_ssbd_play(ssbd->rfilename, NULL); //gses->icon=ssbd->playicon; }else{ log_adds(VTEXT(T_NO_LAST_SAMPLE_RECORDED)); } redraw_later(); return; } template_ = g_strdup(cfg->ssbd_template); // log_addf("template='%s'", template); c = strchr(template_, '%'); if (!c){ log_adds(VTEXT(T_NO_MACRO_IN_TEMPLATE)); goto x; } *c='\0'; if (strlen(template_) && template_[strlen(template_)-1] == '/') template_[strlen(template_)-1] = '\0'; // log_addf("template='%s'", template); ia = z_ptr_array_new(); c = convert_esc(template_, NULL, 0, 0); scan_dir(c, ia); g_free(c); d = atoi(qso->date_str); t = atoi(qso->time_str); tm.tm_sec = 0; tm.tm_min = t % 100; tm.tm_hour = t / 100; tm.tm_mday = d % 100; tm.tm_mon = (d / 100 ) % 100 - 1; tm.tm_year = d / 10000 - 1900; qt = timegm(&tm); dbg("qt=%d d=%d t=%d\n", qt, d, t); c = convert_esc(cfg->ssbd_template, NULL, 0, qt); // dbg(" c='%s'\n", c); z_ptr_array_add(ia, c); z_ptr_array_qsort(ia, z_compare_string); act=-1; for (i=0; ilen;i++){ if (strcmp((char*)z_ptr_array_index(ia, i), c)!=0) continue; act=i; break; } if (act < 0) goto x; z_ptr_array_remove_index(ia, act); // for (i=0; ilen;i++) dbg("%3d '%s'\n", i, z_ptr_array_index(ia, i)); dbg("act=%d\n", act); first = act - term->y / 2 - 2; len = term->y - 2; dbg("first=%d len=%d\n", first, len); if (first < 0) { first = 0; } if (first + len - 1 >= ia->len){ len = ia->len - first; } dbg("first=%d len=%d\n", first, len); if (!(mi = new_menu(3))) return; for (i=0; i This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "main.h" #include "menu.h" #include "rc.h" #include "session.h" #include "subwin.h" #include "terminal.h" #include "txts.h" #include "update.h" char *update_url0 = NULL; char *update_url1 = NULL; char *update_file0 = NULL; char *update_file1 = NULL; int update_i = 0; int update_n = 0; char *update_sh_file = NULL; struct zserial *update_init_process(void){ struct zserial *zser; //dbg("update_init_process\n"); zser = zserial_init_process("/bin/sh", update_sh_file); return zser; } void update_downloaded(struct zhttp *http){ GString *fname = g_string_new(""); char *c; const char *d; //struct zserial *zser; #ifdef Z_MSC_MINGW SHELLEXECUTEINFO shExecInfo; int ret; #endif //dbg("update_downloaded\n"); c = getenv("TMP"); if (!c) c = getenv("TEMP"); if (!c) c = tucnak_dir; g_string_append(fname, c); g_string_append_c(fname, '/'); g_free(update_sh_file); update_sh_file = g_strdup_printf("%supdate_tucnak.sh", fname->str); d = z_filename(http->page); if (!d || !*d) { log_addf(VTEXT(T_BAD_UPDATE_FILE_NAME)); g_string_free(fname, TRUE); return; } g_string_append(fname, d); if (zhttp_write_data(http, fname->str)){ log_adds(http->errorstr); g_string_free(fname, TRUE); return; } zhttp_free(http); gses->update = http = NULL; dbg("update_i=%d update_n=%d fname='%s'\n", update_i, update_n, fname->str); if (update_i == 0 && update_n > 1){ update_i = 1; g_free(update_file0); update_file0 = g_strdup(fname->str); gses->update = http = zhttp_init(); zhttp_get(http, zsel, update_url1, update_downloaded, NULL); return; } g_free(update_file1); update_file1 = g_strdup(fname->str); dbg("update_file0='%s' update_file1='%s'\n", update_file0, update_file1); #ifdef Z_UNIX const char *txt_update; if (strcmp(PKG, "eee") == 0) txt_update = txt_update_eee; else txt_update = txt_update_deb; GString *sh = g_string_sized_new(strlen(txt_update) + 200); int dollar = 0; const char *cc; for (cc = txt_update; *cc != '\0'; cc++){ if (dollar){ switch (*cc){ case '1': if (update_file0) g_string_append(sh, update_file0); break; case '2': // pozor, u EEE se nahrazuje $2 if (update_file1) g_string_append(sh, update_file1); break; default: g_string_append_c(sh, '$'); g_string_append_c(sh, *cc); break; } dollar = 0; }else{ if (*cc == '$'){ dollar = 1; }else{ g_string_append_c(sh, *cc); } } } FILE *f = fopen(update_sh_file, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), update_sh_file); g_string_free(fname, TRUE); g_string_free(sh, TRUE); return; } fprintf(f, "%s", sh->str); fclose(f); chmod(update_sh_file, 0700); g_string_free(sh, TRUE); sw_raise_or_new(SWT_UPD); #endif #ifdef Z_MSC_MINGW z_wokna(fname->str); memset(&shExecInfo, 0, sizeof(shExecInfo)); shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); shExecInfo.fMask = SEE_MASK_FLAG_NO_UI; shExecInfo.lpVerb = "runas"; shExecInfo.lpFile = fname->str; shExecInfo.lpParameters = NULL; shExecInfo.lpDirectory = NULL; shExecInfo.nShow = SW_SHOWNORMAL; shExecInfo.hInstApp = NULL; //dbg("ShellExecuteEx('runas', '%s', NULL)\n", fname->str); ret = ShellExecuteEx(&shExecInfo); if (!ret){ int err = GetLastError(); GString *gserr = g_string_new(VTEXT(T_CANT_EXECUTE_INSTALLER)); z_lasterror_e(gserr, err); log_adds(gserr->str); g_string_free(gserr, TRUE); }else{ //zselect_bh_new(zsel, destroy_terminal, NULL); zselect_terminate(zsel); } #endif #ifdef Z_ANDROID android_update_package(fname->str); //zselect_bh_new(zsel, destroy_terminal, NULL); zselect_terminate(zsel); #endif g_string_free(fname, TRUE); } void update_callback(struct zhttp *http){ char ver[1000], *c, *n, *newver; int tok = 0, ofs; void *arg = http->arg; if (http->errorstr){ if (http->arg == NULL){ // from menu c = g_strdup_printf("%s\n%s", VTEXT(T_UPDATE_OF_TUCNAK_FAILED), http->errorstr); msg_box(getml(c, NULL), VTEXT(T_UPDATE_FAILED), AL_CENTER, c, NULL, 1, VTEXT(T_OK), NULL, B_ENTER|B_ESC); } zhttp_free(http); gses->update = NULL; return; } ofs = http->dataofs; zbinbuf_getline(http->response, &ofs, ver, sizeof(ver)); update_i = 0; newver = z_tokenize(ver, &tok); if (!newver){ if (http->arg == NULL) log_adds(VTEXT(T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY)); goto x; } if (strcasecmp(newver, "E") == 0){ char *errorstr = z_tokenize(ver, &tok); if (http->arg == NULL) log_addf(VTEXT(T_UPDATE_OF_TUCNAK_FAILED_S), errorstr); goto x; } zhttp_free(http); gses->update = http = NULL; if (arg != NULL){ // from win_func if (strcasecmp(newver, "A") != 0) log_addf(VTEXT(T_NEW_VERSION_AVAIL), newver); return; }else{ // from menu if (strcasecmp(newver, "A") == 0) { log_adds(VTEXT(T_NO_NEW_VER)); return; } } n = z_tokenize(ver, &tok); if (n == NULL){ log_addf(TRANSLATE("Bad reply from update server")); return; } update_n = atoi(n); if (update_i < update_n) { update_url0 = g_strdup(z_tokenize(ver, &tok)); update_i++; } if (update_i < update_n) { update_url1 = g_strdup(z_tokenize(ver, &tok)); update_i++; } // from menu, got url gses->update = http = zhttp_init(); update_i = 0; zhttp_get(http, zsel, update_url0, update_downloaded, NULL); x:; return; } void update_tucnak(void *a, void *b){ struct zhttp *http; unsigned long long t1 = (long long)time(NULL) + rand(); GString *gs; /*log_adds("UPDATE DISABLED FIXME"); return;*/ g_free(update_url0); g_free(update_url1); update_i = 0; update_n = 0; gses->update = http = zhttp_init(); gs = g_string_new("http://tucnak.vaiz.cz/update.php"); zg_string_eprintfa("u", gs, "?ver=%s", VERSION); zg_string_eprintfa("u", gs, "&platform=%s", Z_PLATFORM); #ifdef Z_UNIX_ANDROID zg_string_eprintfa("u", gs, "&pkg=%s", PKG); #else zg_string_eprintfa("u", gs, "&pkg=%s", "nsis"); #endif zg_string_eprintfa("u", gs, "&machine=%s", Z_MACHINE); zg_string_eprintfa("u", gs, "&t=%lld", tl); //dbg("----------\nupdate_tucnak url='%s'\n", gs->str); zhttp_get(http, zsel, gs->str, update_callback, a); g_string_free(gs, TRUE); if (a != NULL) return; // called from init() update_info(&t1); } void update_abort(void *arg){ if (!gses->update) return; zhttp_free(gses->update); gses->update = NULL; } void update_info(void *arg1){ struct refresh *r; char *c; GString *gs; if (!gses || !gses->update) return; r = (struct refresh*)g_malloc(sizeof(struct refresh)); r->win = NULL; r->fn = update_info; r->data = NULL; r->timer = -1; gs = g_string_new(""); zhttp_status(gses->update, gs); c = g_strdup(gs->str); g_string_free(gs, TRUE); msg_box(getml(c, NULL), VTEXT(T_UPDATE2)/*VTEXT(T_NINFO)*/, AL_LEFT, c, r, 1, VTEXT(T_CANCEL), update_abort, B_ENTER | B_ESC); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = zselect_timer_new(zsel, RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); } tucnak-4.04/src/httpd.h0000644000175000017500000000157612125053311011734 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __HTTPD_H #define __HTTPD_H #include "header.h" struct httpd{ int port; int sock; GPtrArray *conns; }; struct httpconn{ int sock; GString *request; GString *response; int response_i; struct zbinbuf *response_zbb; struct sockaddr_in peer; }; extern struct httpd *httpd; struct httpd *init_httpd(void); void free_httpd(struct httpd *httpd); void httpd_accept_handler(void *arg); void httpd_read_handler(void *arg); void httpd_write_handler(void *arg); void httpd_header(struct httpconn *conn, int status, char *contenttype); void httpd_get(struct httpconn *conn); #endif tucnak-4.04/src/cwwindow.c0000644000175000017500000000742512131552473012456 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdaemon.h" #include "cwwindow.h" #include "kbd.h" #include "terminal.h" //static struct window *cwwindow; static void draw_cwwindow(struct cwwin_data *cwwdata){ fill_area(cwwdata->x-2, cwwdata->y-1, cwwdata->w+4, cwwdata->h+2, COL_INV); draw_frame(cwwdata->x, cwwdata->y, cwwdata->w, cwwdata->h, COL_INV, 1); print_text(cwwdata->x + 5, cwwdata->y, -1, VTEXT(T__CW_), COL_NORM); print_text(cwwdata->x + 5, cwwdata->y + cwwdata->h -1 , -1, VTEXT(T_CWW_KEYS), COL_NORM); print_text(cwwdata->x + 3, cwwdata->y +2 , cwwdata->w-4, cwwdata->text->str , COL_INV); /*dbg("draw_cwwindow: set_cursor %d %d \n", cwwdata->x + * strlen(cwwdata->text), cwwdata->y+2, 0, 0);*/ set_cursor(cwwdata->x + cwwdata->text->len + 3, cwwdata->y+2, cwwdata->x + cwwdata->text->len + 3 , cwwdata->y+2); } void cwwindow_func(struct window *win, struct event *ev, int fwd){ //struct terminal *term; struct cwwin_data *cwwdata; //term = win->term; cwwdata = (struct cwwin_data *)win->data; // dbg("cwwindow_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b); switch (ev->ev) { case EV_INIT: win->data = cwwdata = g_malloc(sizeof(struct cwwin_data)); memset(win->data, 0, sizeof(struct cwwin_data)); cwwdata->text = g_string_sized_new(100); case EV_RESIZE: cwwdata->x = 10; cwwdata->y = (ev->y - 6) / 2; cwwdata->w = ev->x - 20; cwwdata->h = 5; case EV_REDRAW: draw_cwwindow(cwwdata); break; case EV_ABORT: /* mem_free(cwwdata); already in terminal.c:196 (delete_window) */ g_string_free(cwwdata->text, 1); break; case EV_MOUSE: break; case EV_KBD: switch(ev->x){ case KBD_ESC: case KBD_TAB: /*delete_window_ev(win, (void *)win->next != &win->term->windows && win->next->handler == cwwindow_func ? ev : NULL);*/ delete_window_ev(win, ev); break; case KBD_ENTER: /* delete window, CW text play on */ ev->x=KBD_TAB; delete_window_ev(win, ev); break; case KBD_PGUP: cwdaemon_qrq(cwda, 2); redraw_later(); break; case KBD_PGDN: cwdaemon_qrs(cwda, 2); redraw_later(); break; default: if (ev->x == KBD_BS && ev->y == 0){ if (cwda && cwda->back) cwda->back(cwda); if (cwwdata->text->len > 0) g_string_truncate(cwwdata->text, cwwdata->text->len - 1); redraw_later(); break; } if (ev->x >= ' ' && ev->x < 256 && ev->y == 0) { char s[2]; int n; dbg("key=%c\n", ev->x); g_string_append_c(cwwdata->text, (char)ev->x); n = cwwdata->text->len - (cwwdata->w - 7); if (n>0) g_string_erase(cwwdata->text, 0, n); s[0]=(char)ev->x; s[1]='\0'; //cwdaemon_text(cwda, s); if (cwda && cwda->text) cwda->text(cwda, s); draw_cwwindow(cwwdata); break; } break; } break; } } tucnak-4.04/src/sked.h0000644000175000017500000000322511745243701011543 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SKED_H #define __SKED_H #include "header.h" struct dialog_data; struct dialog_item_data; struct event; struct subwin; struct qso; struct tmpqso; struct window; struct skedwin_data{ int x,y,w,h; int esccnt; struct band *band; }; struct sked{ gchar *sked_time, *operator_ , *src_shortpband, *qrg; gchar *pband, *time_str, *callsign, *locator, *remark; int worked; }; int sw_sked_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_sked_mouse_func(struct subwin *sw, struct event *ev, int fw); gchar *sw_sked_sprint(struct sked *sked); void sw_sked_redraw(struct subwin *sw, struct band *band, int flags); void sw_sked_check_bounds(struct subwin *sw); void sw_sked_read(gchar *str, int from_my); void refresh_sked(struct qso *q); void sked_fn(struct dialog_data *dlg); void sked(void); void sked_from_tmpqso(struct tmpqso *tmpqso); void sked_from_qso(struct qso *qso); void sked_pband_func(void *arg); void sked_pband(int apband_int); int dlg_pband(struct dialog_data *dlg, struct dialog_item_data *di); struct zstring *sked_format(struct sked *sked); struct sked *sked_parse(struct zstring *zstr); void free_sked(struct sked *sked); void recalc_worked_skeds(struct band *band); void draw_skedwindow(struct skedwin_data *skedwdata); void skedwindow_func(struct window *win, struct event *ev, int fwd); void skedw_create(struct band *b); #endif tucnak-4.04/src/codepage.h0000644000175000017500000000040411277513162012361 00000000000000 /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This file is stolen from links */ #define N_CODEPAGES 25 tucnak-4.04/src/stats.h0000644000175000017500000000403711602577662011765 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __STATS_H #define __STATS_H #include "header.h" struct band; struct stats; struct qso; struct cntpts{ int count; int points; struct qso *qso; /* used only in st->hours */ }; struct stats{ gint first_date, last_date; /* 20021115*/ gint nqsos, nqsop; /* without errors and dupes */ gint nwwlp; gint nprefs; gint ndxcp; gint nexcp; gint ntotal; int nmult; gint odxqrb_int; gchar *odxcall, *odxwwl, *odxoperator; GHashTable *wwls, *dxcs, *excs, *hours, *prefs; /* of struct cntpts */ GHashTable *calls; int qso_per_hour, pts_per_hour, pts_per_50qso; char *mycontinent; char *mydxcc; struct qso *odx; }; struct miss_struct{ ZPtrArray *ia; struct stats *st; int maxlen; }; struct contest; struct config_subwin; char *get_wwl(char *buf, char *wwl); void draw_one_bigdigit(int x, int y, int num); void draw_bigdigit(int x, int y, int num); struct stats *init_stats(void); void free_stats(struct stats *st); void clear_stats(struct stats *st); void update_stats(struct band *b, struct stats *st, struct qso *q); void recalc_stats(struct band *b); void recalc_all_stats(struct contest *ctest); void recalc_all_qrbqtf(struct contest *ctest); void redraw_stats(struct band *band); void recalc_statsfifo(struct band *band); void export_stats_fifo(void); void stats_thread_create(struct band *band); void stats_thread_join(struct band *band); void stats_thread_kill(struct band *band); void timer_minute_stats_all(void *arg); void minute_stats_all(void); void minute_stats(struct band *band); void stats_merge_prefs_fn(gpointer key, gpointer value, gpointer data); void recalc_allb_stats(void); void miss_compute_ms(struct miss_struct *ms, struct band *b); int qsomult16(struct band *b); #endif tucnak-4.04/src/zosk.h0000644000175000017500000000243212301350546011575 00000000000000/* Tucnak - VHF contest log Copyright (C) 2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __ZOSK_H #define __ZOSK_H #include "tsdl.h" #ifdef Z_HAVE_SDL struct zosk_key{ int x, y, w, h, cx, cy; int isshift, pressed; SDLKey sym, symFn, symShift; char text[5], textFn[5], textShift[5]; }; struct zosk{ SDL_Surface *surface; GPtrArray *keys; int bw2, bh, x0, y0, x2, y; int KX2, KY; int font_w, font_h; struct zosk_key *active, *sent; int bg, bbg; int parent_x, parent_y, screen_w; int shifts_active; struct zosk_key *shift, *ctrl, *alt, *fn, *esc; GString *gs; int maxlen_c; int flags; int repeat_timer_id; }; #define ZOSK_ENTERCLOSE 1 // enter or esc close #define ZOSK_UPCONVERT 2 #define ZOSK_SENDENTER 4 #define ZOSK_CLEARENTER 8 #define ZOSK_IGNOREESC 16 struct zosk *zosk_init(SDL_Surface *screen, int flags, const char *text); void zosk_free(struct zosk *zosk); void zosk_draw(struct zosk *zosk); int zosk_click(struct zosk *zosk, int x, int y, int pressed); void zosk_clear(struct zosk *zosk); void zosk_portrait(struct zosk *zosk); #endif #endif tucnak-4.04/src/alsa.h0000644000175000017500000000173312302451720011527 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __ALSA_H #define __ALSA_H #include "dsp.h" #ifdef HAVE_ALSA #ifdef HAVE_SNDFILE int alsa_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec); #endif int alsa_open(struct dsp *dsp, int rec); int alsa_close(struct dsp *dsp); int alsa_write(struct dsp *dsp, void *data, int frames); int alsa_read(struct dsp *dsp, void *data, int frames); int alsa_reset(struct dsp *dsp); int alsa_sync(struct dsp *dsp); int alsa_get_sources(struct dsp *dsp, GString *labels); int alsa_set_source(struct dsp *dsp); int alsa_set_plevel(struct dsp *dsp); void alsa_info(GString *gs); char *alsa_get_state(struct dsp *dsp); int alsa_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec); #endif #endif tucnak-4.04/src/qsodb.h0000644000175000017500000003232712362457257011743 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __QSODB_H #define __QSODB_H #include "header.h" #include "rc.h" #include "session.h" #include "zstring.h" #define STORE_HASH_STR(base, item) {\ if (base->item) g_free((gpointer)base->item);\ base->item = g_strdup((char *)g_hash_table_lookup(hash, #item)); \ } #define STORE_HASH_INT(base, item) {\ gchar *c; \ c = (char*)g_hash_table_lookup(hash, #item); \ if (c) base->item = atoi(c); \ else base->item = 0; \ } #define STORE_HASH_ENUM(base, item, type) {\ gchar *c; \ c = (char*)g_hash_table_lookup(hash, #item); \ if (c) base->item = (type)atoi(c); \ else base->item = (type)0; \ } #define STORE_HASH_INT_DEF(base, item, def) {\ gchar *c; \ c = (char*)g_hash_table_lookup(hash, #item); \ if (c) base->item = atoi(c); \ else base->item = def; \ } #define STORE_HASH_ENUM_DEF(base, item, type, def) {\ gchar *c; \ c = (char*)g_hash_table_lookup(hash, #item); \ if (c) base->item = (type)atoi(c); \ else base->item = def; \ } #define STORE_HASH_CHR(base, item) {\ gchar *c;\ c=(char *)g_hash_table_lookup(hash, #item); \ if (c) base->item = tolower(*c);\ else c='\0';\ } #define NEW_EXC 1 #define NEW_WWL 2 #define NEW_DXC 4 #define NEW_PREF 8 #define NEW_MULT 16 struct subwin; struct wizz_item; struct wizz_qsomult_item; enum suspcall { SUSP_NONE, SUSP_QRB, SUSP_REM, SUSP_WARN, SUSP_ERR }; struct qso{ gchar *source; /* "192.168.0.1:1026" CONSTANT */ gint ser_id; /* 0..X in one source CONSTANT */ time_t stamp; /* last modification VARIABLE */ gchar *operator_; gchar *date_str,*time_str; gchar *callsign; gint mode; gchar *rsts,*rstr; gchar *qsonrs,*qsonrr; gchar *exc, *locator; gchar *remark; gint error; gdouble qrg; /* computed*/ gint dupe,qsop,new_,qsl; gdouble qrb, qtfrad; gint qtf; gint susploc; /* 1=warn, 2=err */ enum suspcall suspcall1; gint unkcall; /* "foreign key", don't dealloc! */ struct band *band; int kx,ky; }; struct tmpqso{ gchar *date_str,*time_str; gchar *callsign; gchar *rsts,*rstr; gchar *qsonrs,*qsonrr; gchar *exc, *locator; gchar *remark; gint dupe,qsl; /* computed*/ gdouble qrb; gint qtf; gchar *name; /* ultimate values */ gint ucallsign,udummy,ulocator,uexc; int uqrb,uqtf; /* suspicious */ gint suspcallsign, susplocator, suspexc, unkcall; }; #define ADD_TMPQSO_STRING(band,item,str,isu,uitem) {\ int i; \ if (band->tmpqsos[TMP_QSOS-1].item) { \ g_free(band->tmpqsos[TMP_QSOS-1].item); \ band->tmpqsos[TMP_QSOS-1].item = NULL; \ }\ for (i=TMP_QSOS-2;i>=0;i--) {\ band->tmpqsos[i+1].item=band->tmpqsos[i].item; \ band->tmpqsos[i+1].uitem=band->tmpqsos[i].uitem; \ }\ band->tmpqsos[0].item=g_strdup(str); \ band->tmpqsos[0].uitem = isu; \ } #define CLEAR_TMPQSO_STRING(band,item) {\ if (band->tmpqsos[i].item) { \ g_free(band->tmpqsos[i].item); \ band->tmpqsos[i].item=NULL;\ } \ } #define CLEAR_TMPQSO_STRING_UU(band,item, uitem){ \ int i; \ for (i=0;itmpqsos[i].uitem && band->tmpqsos[i].item) {\ g_free(band->tmpqsos[i].item); \ band->tmpqsos[i].item=NULL;\ }\ }\ } #define ADD_TMPQSO_GINT(band,item,num,isu,uitem) {\ int i; \ for (i=TMP_QSOS-2;i>=0;i--) {\ band->tmpqsos[i+1].item=band->tmpqsos[i].item; \ band->tmpqsos[i+1].uitem=band->tmpqsos[i].uitem; \ }\ band->tmpqsos[0].item=num; \ band->tmpqsos[0].uitem = isu; \ } #define ADD_TMPQSO_GDOUBLE(band,item,num,isu,uitem) {\ int i; \ for (i=TMP_QSOS-2;i>=0;i--) {\ band->tmpqsos[i+1].item=band->tmpqsos[i].item; \ band->tmpqsos[i+1].uitem=band->tmpqsos[i].uitem; \ }\ band->tmpqsos[0].item=num; \ band->tmpqsos[0].uitem = isu; \ } #define CLEAR_TMPQSO_GINT(band,item) \ band->tmpqsos[i].item=0 /*#define CLEAR_TMPQSO_GINT_UU(band,item, uitem) {\ int i; \ for (i=0;itmpqsos[i].uitem) {\ band->tmpqsos[i].item=0;\ }\ }\ } */ #define CLEAR_TMPQSO_GDOUBLE_UU(band,item, uitem) {\ int i; \ for (i=0;itmpqsos[i].uitem) {\ band->tmpqsos[i].item=0;\ }\ }\ } #define CLEAR_TMPQSO_QTF(band) \ band->tmpqsos[i].qtf=-1 #define CLEAR_TMPQSO_QTF_UU(band) {\ int i; \ for (i=0;itmpqsos[i].uqtf) {\ band->tmpqsos[i].qtf=-1;\ }\ }\ } #define INPUTLN(b) (ctest && b ? b->il : gses->il) void add_tmpqso_locator(struct band *b,gchar *c,int isu, int isshort); void add_tmpqso_exc(struct band *b,gchar *exc,int isu); enum last_items{ LI_NONE = 0, LI_CALL, LI_WWL }; enum ctrlstates{ CTRL_RUN = 0, /* RUN, TX */ CTRL_SP = 1, /* S&P, no TX */ CTRL_REQR = 2, /* RUN, TX */ CTRL_REQS = 3, /* S&P, no TX */ CTRL_RUNING = 4, /* S&P, TX */ CTRL_GIVEN = 5 /* RUN, no TX */ }; enum ccmd{ CCMD_REQ = 0, /* S&P->RUN */ CCMD_ACC, /* RUN->S&P */ CCMD_REJ, /* RUN->S&P */ CCMD_BACK /* S&P->RUN */ }; enum exctype { EXC_FREE = 1, EXC_VERIFIED = 2, EXC_WAZ = 3, EXC_ITU = 4 }; enum tttype{ TT_NONE = 0, TT_RSTS = 1, TT_RSTR = 2, TT_QSONRR = 3, TT_EXC = 4 }; struct spypeer; struct band{ gchar bandchar; /* 'C', 'E', 'G', ...*/ int bi; /* bandchar - 'A' */ gchar *pband; /* 144 MHz */ gchar *bandname; /* 2m,70cm,23cm... */ GPtrArray *qsos; GHashTable *rawqsoshash; // hash of raw QSOs. Value = qso struct inputln *il; struct tmpqso tmpqsos[TMP_QSOS]; gchar *unres, *qrv_str, *wkd_str; gint dupe_in_tmpqso_index; gint dirty_save, dirty_stats, dirty_statsf; gint readonly; gchar *call_played; // call played in run mode gint agcall; // call was sent in autogive mode. RST follows gint iscall; // currently played text is call // enum modes mode; // gint bandmulti; gchar *operator_; gint psect; // 0=multi, 1=single, 2=check, 3=other gchar *opsect; // other psect gchar *stxeq,*spowe; /* TM-255 + gi7b, 300 */ gchar *srxeq,*sante,*santh; /* TM-255, GW4PTS, 60;800 */ gchar *mope1,*mope2; /* OK1XDF, OK1MZM, OK1ZIA */ gchar *remarks; struct stats *stats; struct stats *tmpstats; GThread *stats_thread; MUTEX_DEFINE(stats); // GMutex *stats_mutex; //#ifdef LEAK_DEBUG_LIST // char *stats_file; // int stats_line; //#endif int stats_break; /* file */ FILE *swap; gint saveid,ignoreswap; struct fifo *swapfifo, *unfi, *statsfifo1; GPtrArray *qs, *oqs; enum last_items last_item; gchar *skedqrg; enum ctrlstates ctrlstate; gchar *ctrlsp; /* enum spymodes spymode;*/ struct qso tmplocqso; GPtrArray *skeds; gint qrg_min,qrg_max; /* kHz */ int band_sw; struct config_band *cbr_confb; // local for cabrillo, not filled elsewhere! double qrg; int qsomultb; double ac_k; // F1 band correction char *edifile; // valid only after export char *mapfile, *chartfile; // valid only after export }; struct contest { /* EDI & contest properties */ gchar *pcall; /* DL/OK1KRQ/P */ gchar *tname; /* A1 Contest - MMC */ gchar *tdate; /* 130812;20130812 */ gchar *pclub; /* OK1KRQ */ gchar *pwwlo; /* JN69HN */ gchar *pexch; gchar *default_rs,*default_rst; /* EDI only properties */ gchar *padr1,*padr2; /* Lite */ gchar *rname; /* Roman Staif */ gchar *rcall; /* OK1XST */ gchar *radr1,*radr2; /* Pod svabinami */ gchar *rpoco,*rcity,*rcoun; /* 30100, Plzen, CZECHIA */ gchar *rphon,*rhbbs; /* 0603123456 , OK0POK */ /* contest properties */ gint rstused; /* no,used, optional */ gint defrstr; gint qsoused; /* no,used, optional */ gint wwlused; /* no,used, optional */ gint wwltype; /* short,normal,extended */ gint wwlcfm; gint excused; /* no,used, optional */ enum exctype exctype; gchar *excname; /* database name f.e. OKRES */ gint exccfm; enum tttype tttype; int qsoglob; /* qsonr is global in contest */ gint prefglob; /* prefix is global in contest */ gint expmode; /* epedition mode */ /* points calculation */ gint qsomult; gint wwlbonu,wwlmult; gint prefmult; gint dxcbonu,dxcmult; gint excbonu,excmult; gint qsop_method; /* 1..12 */ gint total_method; /* 1..2 */ GPtrArray *bands; GHashTable *bystamp; /* key=source, val=ZPtrArray */ /* ZPtrArrays are NOT sorted by ser_id but only by stamp */ ZPtrArray *allqsos; /* disk */ FILE *lockfile; /* ~/tucnak/.../desc.lock */ FILE *logfile; /* ~/tucnak/.../log */ gchar *directory; /* /home/ok1zia/tucnak/20021113.2 */ gchar *cdate; /* 20021113 without .X */ /* autosave */ int as_disk_qsonr, as_disk_time, as_floppy_qsonr, as_floppy_time; int qrv; /* bit array of used bands */ int oldcontest; /* date of contest is too old, not recording */ int minute_timer_id; /* for statistics */ int hf; /* HF contest */ GPtrArray *spypeers; /* of struct spypeer */ int allb_nqsos; int allb_nqsop; int allb_nwwlp; int allb_nprefp; int allb_ndxcp; int allb_nexcp; int allb_ntotal; int allb_nmult; GHashTable *allb_prefs; int runmode; int qso_per_10, qso_per_60; struct qso *lastmultqso; }; extern struct contest *ctest; extern struct band *aband; struct conn; extern char *mode_msg[]; enum modes; int init_ctest(void); int new_ctest(char *tdate); /* called after filling data members by refresh_... */ void free_ctest(void); struct band *init_band(struct config_band *, GHashTable *opt_band, struct zstring *zs, struct wizz_qsomult_item *wqi); void free_band(struct band *b); void free_qso(struct qso *qso); struct band *find_band_by_pband(char *pband); struct band *find_band_by_bandchar(char bandchar); struct band *find_band_by_qrg(double freq); struct band *init_qrv_bands(struct wizz_item *wi); int write_qso_to_swap(struct band *b, struct qso *q); void add_qso(struct band *b, struct qso *q); struct qso *get_qso(struct band *b, gint i); struct qso *get_qso_by_callsign(struct band *b, gchar *callsign); struct qso *get_gqso(struct band *b, struct subwin *sw, gint i); int get_qso_index_by_callsign(struct band *b, gchar *callsign); struct qso *get_qso_by_id(struct band *b, gchar *source, gint ser_id); struct qso *get_qso_by_qsonr(struct band *b, int qsonr); void add_error(struct band *b, gchar *remark); void activate_band(struct band *b); int add_tmpxchg(struct band *band, gchar *xchg); int add_swap(struct band *band, gchar *s); void clear_tmpqsos(struct band *b, int set_defaults); void default_rst_to_tmpqsos(struct band *b); int export_all_bands_report(void); int export_all_bands_titlpage(void); struct config_band *get_config_band_by_bandchar(char bandchar); struct config_band *get_config_band_by_pband(char *pband); struct config_band *get_config_band_by_qrg(int qrg); /* kHz */ void foreach_source_recalc_ser_id(gpointer key, gpointer value, gpointer data); void foreach_source_qsort_by_stamp(gpointer key, gpointer value, gpointer data); void foreach_source_print(gpointer key, gpointer value, gpointer data); void add_qso_to_index(struct qso *q, int qsort_if_needed); void remove_qso_from_index(struct qso *q); gchar *get_latests_str(void); int compare_stamp(const void *a, const void *b); void compute_qrbqtf(struct qso *q); GPtrArray *get_band_qs(struct band *band, gchar *str); GPtrArray *get_oband_qs(struct band *band, gchar *str); gchar *find_wwl_by_oband(struct band *oband, gchar *call); gchar *find_exc_by_oband(struct band *oband, gchar *call); int load_ctest_from_mem(struct contest *ctest, gchar *datedir, GHashTable *hash); void qso_mark_as_error(struct band *b, gint i); int get_psect_int(char *psect); void dump_qso(struct qso *q, char *desc); void invalidate_tmpqso(struct band *b, struct qso *q); void dirty_band(struct band *band); struct zstring *contest_format(struct contest *ctest); void ctest_parse(struct zstring *zstr, struct contest *ctest); struct zstring *band_format(struct band *b); struct band *band_parse(struct zstring *zstr, struct band *b); int compare_date_time_qsonrs(const void *a, const void *b); void set_mode(enum modes mode); enum modes get_mode(void); int worked_on_all_rw(char *call); // worked on all read-write band void dump_rw(void *a, void *b); int add_qsos_from_swap(struct band *b, FILE *f); #endif tucnak-4.04/src/uni_7b.inc0000644000175000017500000014564511277513162012340 00000000000000/* Automatically generated by gen-7b (from links) */ /* DO NOT EDIT THIS FILE! */ struct { unicode_val x; char *s; } unicode_7b [2453] = { {0x00000000, "NUL"}, {0x00000001, "SH"}, {0x00000002, "SX"}, {0x00000003, "EX"}, {0x00000004, "ET"}, {0x00000005, "ENQ"}, {0x00000006, "AK"}, {0x00000007, "BL"}, {0x00000008, "BS"}, {0x00000009, "HT"}, {0x0000000a, "LF"}, {0x0000000b, "VT"}, {0x0000000c, "FF"}, {0x0000000d, "CR"}, {0x0000000e, "SO"}, {0x0000000f, "SI"}, {0x00000010, "DL"}, {0x00000011, "DC1"}, {0x00000012, "DC2"}, {0x00000013, "DC3"}, {0x00000014, "DC4"}, {0x00000015, "NAK"}, {0x00000016, "SYN"}, {0x00000017, "EB"}, {0x00000018, "CN"}, {0x00000019, "EM"}, {0x0000001a, "SB"}, {0x0000001b, "ESC"}, {0x0000001c, "FS"}, {0x0000001d, "GS"}, {0x0000001e, "RS"}, {0x0000001f, "US"}, {0x0000007f, "DT"}, {0x00000085, "\\\\012"}, {0x000000a0, "\\001"}, {0x000000a1, "!"}, {0x000000a2, "-c-"}, {0x000000a3, "-L-"}, {0x000000a4, "CUR"}, {0x000000a5, "YEN"}, {0x000000a6, "|"}, {0x000000a7, "S"}, {0x000000a8, "\""}, {0x000000a9, "(c)"}, {0x000000aa, "-a"}, {0x000000ab, "<<"}, {0x000000ac, "NOT"}, {0x000000ad, ""}, {0x000000ad, ""}, {0x000000ae, "(R)"}, {0x000000af, "-"}, {0x000000b0, "DEG"}, {0x000000b1, "+-"}, {0x000000b2, "^2"}, {0x000000b3, "^3"}, {0x000000b4, "'"}, {0x000000b5, "u"}, {0x000000b6, "P"}, {0x000000b7, "."}, {0x000000b8, ","}, {0x000000b9, "^1"}, {0x000000ba, "-o"}, {0x000000bb, ">>"}, {0x000000bc, " 1/4"}, {0x000000bd, " 1/2"}, {0x000000be, " 3/4"}, {0x000000bf, "?"}, {0x000000c0, "A"}, {0x000000c1, "A"}, {0x000000c2, "A"}, {0x000000c3, "A"}, {0x000000c4, "Ae"}, {0x000000c5, "AA"}, {0x000000c6, "AE"}, {0x000000c7, "C,"}, {0x000000c8, "E"}, {0x000000c9, "E"}, {0x000000ca, "E"}, {0x000000cb, "E"}, {0x000000cc, "I"}, {0x000000cd, "I"}, {0x000000ce, "I"}, {0x000000cf, "I"}, {0x000000d0, "D-"}, {0x000000d1, "N"}, {0x000000d2, "O"}, {0x000000d3, "O"}, {0x000000d4, "O"}, {0x000000d5, "O"}, {0x000000d6, "Oe"}, {0x000000d7, " *"}, {0x000000d8, "O/"}, {0x000000d9, "U"}, {0x000000da, "U"}, {0x000000db, "U"}, {0x000000dc, "Ue"}, {0x000000dd, "Y"}, {0x000000de, "TH"}, {0x000000df, "ss"}, {0x000000e0, "`a"}, {0x000000e1, "a"}, {0x000000e2, "a"}, {0x000000e3, "a"}, {0x000000e4, "ae"}, {0x000000e5, "aa"}, {0x000000e6, "ae"}, {0x000000e7, "c,"}, {0x000000e8, "e"}, {0x000000e9, "e"}, {0x000000ea, "e"}, {0x000000eb, "e"}, {0x000000ec, "`i"}, {0x000000ed, "i"}, {0x000000ee, "i"}, {0x000000ef, "i"}, {0x000000f0, "d-"}, {0x000000f1, "n"}, {0x000000f2, "o"}, {0x000000f3, "o"}, {0x000000f4, "o"}, {0x000000f5, "o"}, {0x000000f6, "oe"}, {0x000000f7, "-"}, {0x000000f8, "o/"}, {0x000000f9, "u"}, {0x000000fa, "u"}, {0x000000fb, "u"}, {0x000000fc, "ue"}, {0x000000fd, "y"}, {0x000000fe, "th"}, {0x000000ff, "y"}, {0x00000100, "A"}, {0x00000101, "a"}, {0x00000102, "A"}, {0x00000103, "a"}, {0x00000104, "A"}, {0x00000105, "a"}, {0x00000106, "C"}, {0x00000107, "c"}, {0x00000108, "CH"}, {0x00000109, "ch"}, {0x0000010a, "C"}, {0x0000010b, "c"}, {0x0000010c, "C"}, {0x0000010d, "c"}, {0x0000010e, "D"}, {0x0000010f, "d"}, {0x00000110, "D/"}, {0x00000111, "d/"}, {0x00000112, "E"}, {0x00000113, "e"}, {0x00000114, "E"}, {0x00000115, "e"}, {0x00000116, "E"}, {0x00000117, "e"}, {0x00000118, "E"}, {0x00000119, "e"}, {0x0000011a, "E"}, {0x0000011b, "e"}, {0x0000011c, "GH"}, {0x0000011d, "gh"}, {0x0000011e, "G"}, {0x0000011f, "g"}, {0x00000120, "G"}, {0x00000121, "g"}, {0x00000122, "G"}, {0x00000123, "g"}, {0x00000124, "HH"}, {0x00000125, "hh"}, {0x00000126, "H/"}, {0x00000127, "H"}, {0x00000128, "I"}, {0x00000129, "i"}, {0x0000012a, "I"}, {0x0000012b, "i"}, {0x0000012c, "I"}, {0x0000012d, "i"}, {0x0000012e, "I"}, {0x0000012f, "i"}, {0x00000130, "I"}, {0x00000131, "i"}, {0x00000132, "IJ"}, {0x00000133, "ij"}, {0x00000134, "JH"}, {0x00000135, "jh"}, {0x00000136, "K"}, {0x00000137, "k"}, {0x00000138, "kk"}, {0x00000139, "L"}, {0x0000013a, "l"}, {0x0000013b, "L"}, {0x0000013c, "l"}, {0x0000013d, "L"}, {0x0000013e, "l"}, {0x0000013f, "L."}, {0x00000140, "l."}, {0x00000141, "L/"}, {0x00000142, "l/"}, {0x00000143, "N"}, {0x00000144, "n"}, {0x00000145, "N"}, {0x00000146, "n"}, {0x00000147, "N"}, {0x00000148, "n"}, {0x00000149, "'n"}, {0x0000014a, "NG"}, {0x0000014b, "N"}, {0x0000014c, "O"}, {0x0000014d, "o"}, {0x0000014e, "O"}, {0x0000014f, "o"}, {0x00000150, "O\""}, {0x00000151, "o\""}, {0x00000152, "OE"}, {0x00000153, "oe"}, {0x00000154, "R"}, {0x00000155, "r"}, {0x00000156, "R"}, {0x00000157, "r"}, {0x00000158, "R"}, {0x00000159, "r"}, {0x0000015a, "S"}, {0x0000015b, "s"}, {0x0000015c, "SH"}, {0x0000015d, "sh"}, {0x0000015e, "S"}, {0x0000015f, "s"}, {0x00000160, "S"}, {0x00000161, "s"}, {0x00000162, "T"}, {0x00000163, "t"}, {0x00000164, "T"}, {0x00000165, "t"}, {0x00000166, "T/"}, {0x00000167, "t/"}, {0x00000168, "U"}, {0x00000169, "u"}, {0x0000016a, "U"}, {0x0000016b, "u"}, {0x0000016c, "U"}, {0x0000016d, "u"}, {0x0000016e, "U"}, {0x0000016f, "u"}, {0x00000170, "U\""}, {0x00000171, "u\""}, {0x00000172, "U"}, {0x00000173, "u"}, {0x00000174, "W"}, {0x00000175, "w"}, {0x00000176, "Y"}, {0x00000177, "y"}, {0x00000178, "Y"}, {0x00000179, "Z"}, {0x0000017a, "z"}, {0x0000017b, "Z"}, {0x0000017c, "z"}, {0x0000017d, "Z"}, {0x0000017e, "z"}, {0x0000017f, "s1"}, {0x00000187, "C2"}, {0x00000188, "c2"}, {0x00000191, "F2"}, {0x00000192, " f"}, {0x00000198, "K2"}, {0x00000199, "k2"}, {0x000001a0, "O9"}, {0x000001a1, "o9"}, {0x000001a2, "OI"}, {0x000001a3, "oi"}, {0x000001a6, "yr"}, {0x000001af, "U9"}, {0x000001b0, "u9"}, {0x000001b5, "Z/"}, {0x000001b6, "z/"}, {0x000001b7, "ED"}, {0x000001cd, "A"}, {0x000001ce, "a"}, {0x000001cf, "I"}, {0x000001d0, "i"}, {0x000001d1, "O"}, {0x000001d2, "o"}, {0x000001d3, "U"}, {0x000001d4, "u"}, {0x000001d5, "U"}, {0x000001d6, "u"}, {0x000001d7, "U"}, {0x000001d8, "u"}, {0x000001d9, "U"}, {0x000001da, "u"}, {0x000001db, "U"}, {0x000001dc, "u"}, {0x000001de, "A1"}, {0x000001df, "a1"}, {0x000001e0, "A7"}, {0x000001e1, "a7"}, {0x000001e2, "A3"}, {0x000001e3, "a3"}, {0x000001e4, "G/"}, {0x000001e5, "g/"}, {0x000001e6, "G"}, {0x000001e7, "g"}, {0x000001e8, "K"}, {0x000001e9, "k"}, {0x000001ea, "O"}, {0x000001eb, "o"}, {0x000001ec, "O1"}, {0x000001ed, "o1"}, {0x000001ee, "EZ"}, {0x000001ef, "ez"}, {0x000001f0, "j"}, {0x000001f4, "G"}, {0x000001f5, "g"}, {0x000001fa, "AA'"}, {0x000001fb, "aa'"}, {0x000001fc, "AE'"}, {0x000001fd, "ae'"}, {0x000001fe, "O/'"}, {0x000001ff, "o/'"}, {0x00000200, "A!!"}, {0x00000201, "a!!"}, {0x00000202, "A)"}, {0x00000203, "a)"}, {0x00000204, "E!!"}, {0x00000205, "e!!"}, {0x00000206, "E)"}, {0x00000207, "e)"}, {0x00000208, "I!!"}, {0x00000209, "i!!"}, {0x0000020a, "I)"}, {0x0000020b, "i)"}, {0x0000020c, "O!!"}, {0x0000020d, "o!!"}, {0x0000020e, "O)"}, {0x0000020f, "o)"}, {0x00000210, "R!!"}, {0x00000211, "r!!"}, {0x00000212, "R)"}, {0x00000213, "r)"}, {0x00000214, "U!!"}, {0x00000215, "u!!"}, {0x00000216, "U)"}, {0x00000217, "u)"}, {0x0000021d, "Z"}, {0x00000251, "A"}, {0x00000252, "A."}, {0x00000253, "b`"}, {0x00000254, "O"}, {0x00000256, "d."}, {0x00000257, "d`"}, {0x00000258, "@"}, {0x00000259, "@"}, {0x0000025a, "R"}, {0x0000025b, "E"}, {0x0000025c, "V\""}, {0x0000025d, "R"}, {0x0000025e, "O\""}, {0x0000025f, "J"}, {0x00000260, "g`"}, {0x00000261, "g"}, {0x00000262, "G"}, {0x00000263, "Q"}, {0x00000264, "o-"}, {0x00000265, "j"}, {0x00000266, "h"}, {0x00000268, "i\""}, {0x00000269, "I"}, {0x0000026a, "I"}, {0x0000026b, "L"}, {0x0000026c, "L"}, {0x0000026d, "l."}, {0x0000026e, "z"}, {0x0000026f, "u-"}, {0x00000270, "j"}, {0x00000271, "M"}, {0x00000273, "n."}, {0x00000274, "n\""}, {0x00000275, "@."}, {0x00000276, "&."}, {0x00000277, "U"}, {0x00000279, "r"}, {0x0000027a, "*"}, {0x0000027b, "r."}, {0x0000027d, "*."}, {0x0000027e, "*"}, {0x00000280, "R"}, {0x00000280, "r\""}, {0x00000281, "g\""}, {0x00000282, "s."}, {0x00000283, "S"}, {0x00000284, "J`"}, {0x00000287, "t!"}, {0x00000288, "t."}, {0x00000289, "u\""}, {0x0000028a, "U"}, {0x0000028b, "r"}, {0x0000028c, "V"}, {0x0000028d, "w"}, {0x0000028e, "l^"}, {0x0000028f, "I."}, {0x00000290, "z."}, {0x00000292, "Z"}, {0x00000294, "?"}, {0x00000295, "H"}, {0x00000296, "l!"}, {0x00000297, "c!"}, {0x00000298, "p!"}, {0x00000299, "b"}, {0x0000029b, "G`"}, {0x0000029d, "j"}, {0x0000029e, "k!"}, {0x0000029f, "L"}, {0x000002a0, "q`"}, {0x000002a4, "d3"}, {0x000002a6, "ts"}, {0x000002a7, "tS"}, {0x000002b0, ""}, {0x000002b1, ""}, {0x000002b2, ";"}, {0x000002b3, ""}, {0x000002b7, ""}, {0x000002bb, ";S"}, {0x000002bc, "`"}, {0x000002c6, "^"}, {0x000002c7, "'<"}, {0x000002c8, "|"}, {0x000002c9, "1-"}, {0x000002cb, "1!"}, {0x000002d0, ":"}, {0x000002d1, ""}, {0x000002d6, "+"}, {0x000002d7, "-"}, {0x000002d8, "'("}, {0x000002d9, "'."}, {0x000002da, "'0"}, {0x000002db, "';"}, {0x000002dc, "~"}, {0x000002dd, "'\""}, {0x000002e5, "_T"}, {0x000002e6, "_H"}, {0x000002e7, "_M"}, {0x000002e8, "_L"}, {0x000002e9, "_B"}, {0x000002ec, "_v"}, {0x000002ee, "''"}, {0x00000300, "`"}, {0x00000301, "'"}, {0x00000302, "^"}, {0x00000303, "~"}, {0x0000030b, "''"}, {0x0000030d, "|"}, {0x0000030e, "||"}, {0x0000030f, "``"}, {0x00000321, ";"}, {0x00000322, "."}, {0x00000323, "."}, {0x00000324, ""}, {0x00000325, ""}, {0x00000326, ","}, {0x00000327, ","}, {0x00000329, "-"}, {0x0000032a, "["}, {0x0000032b, ""}, {0x00000334, ""}, {0x00000334, "~"}, {0x00000337, "/"}, {0x00000338, "/"}, {0x00000340, "`"}, {0x00000341, "'"}, {0x00000342, "~"}, {0x00000344, "'%"}, {0x00000345, "j3"}, {0x00000347, "="}, {0x00000360, "~~"}, {0x00000374, "'"}, {0x00000375, ","}, {0x0000037a, "j3"}, {0x0000037e, "?%"}, {0x00000384, "'*"}, {0x00000385, "'%"}, {0x00000386, "A'"}, {0x00000387, ".*"}, {0x00000388, "E'"}, {0x00000389, "Y%"}, {0x0000038a, "I'"}, {0x0000038c, "O'"}, {0x0000038e, "U%"}, {0x0000038f, "W%"}, {0x00000390, "i3"}, {0x00000391, "A"}, {0x00000392, "B"}, {0x00000393, "G"}, {0x00000394, "D"}, {0x00000395, "E"}, {0x00000396, "Z"}, {0x00000397, "Y"}, {0x00000398, "TH"}, {0x00000399, "I"}, {0x0000039a, "K"}, {0x0000039b, "L"}, {0x0000039c, "M"}, {0x0000039d, "N"}, {0x0000039e, "C"}, {0x0000039f, "O"}, {0x000003a0, "P"}, {0x000003a1, "R"}, {0x000003a3, "S"}, {0x000003a4, "T"}, {0x000003a5, "U"}, {0x000003a6, "F"}, {0x000003a7, "X"}, {0x000003a8, "Q"}, {0x000003a9, "W*"}, {0x000003aa, "J"}, {0x000003ab, "V*"}, {0x000003ac, "a'"}, {0x000003ad, "e'"}, {0x000003ae, "y%"}, {0x000003af, "i'"}, {0x000003b0, "u3"}, {0x000003b1, "a"}, {0x000003b2, "b"}, {0x000003b3, "g"}, {0x000003b4, "d"}, {0x000003b5, "e"}, {0x000003b6, "z"}, {0x000003b7, "y"}, {0x000003b8, "th"}, {0x000003b9, "i"}, {0x000003ba, "k"}, {0x000003bb, "l"}, {0x000003bc, "m"}, {0x000003bd, "n"}, {0x000003be, "c"}, {0x000003bf, "o"}, {0x000003c0, "p"}, {0x000003c1, "r"}, {0x000003c2, "*s"}, {0x000003c3, "s"}, {0x000003c4, "t"}, {0x000003c5, "u"}, {0x000003c6, "f"}, {0x000003c7, "x"}, {0x000003c8, "q"}, {0x000003c9, "w"}, {0x000003ca, "j"}, {0x000003cb, "v*"}, {0x000003cc, "o'"}, {0x000003cd, "u%"}, {0x000003ce, "w%"}, {0x000003d0, "beta"}, {0x000003d1, "theta"}, {0x000003d2, "upsi"}, {0x000003d5, "phi"}, {0x000003d6, "pi"}, {0x000003d7, "k."}, {0x000003da, "T3"}, {0x000003db, "t3"}, {0x000003dc, "M3"}, {0x000003dd, "m3"}, {0x000003de, "K3"}, {0x000003df, "k3"}, {0x000003e0, "P3"}, {0x000003e1, "p3"}, {0x000003f0, "kappa"}, {0x000003f1, "rho"}, {0x000003f3, "J"}, {0x000003f4, "'%"}, {0x000003f5, "j3"}, {0x00000401, "IO"}, {0x00000402, "D%"}, {0x00000403, "G%"}, {0x00000404, "IE"}, {0x00000405, "DS"}, {0x00000406, "II"}, {0x00000407, "YI"}, {0x00000408, "J%"}, {0x00000409, "LJ"}, {0x0000040a, "NJ"}, {0x0000040b, "Ts"}, {0x0000040c, "KJ"}, {0x0000040e, "V%"}, {0x0000040f, "DZ"}, {0x00000410, "A"}, {0x00000411, "B"}, {0x00000412, "V"}, {0x00000413, "G"}, {0x00000414, "D"}, {0x00000415, "E"}, {0x00000416, "ZH"}, {0x00000417, "Z"}, {0x00000418, "I"}, {0x00000419, "J"}, {0x0000041a, "K"}, {0x0000041b, "L"}, {0x0000041c, "M"}, {0x0000041d, "N"}, {0x0000041e, "O"}, {0x0000041f, "P"}, {0x00000420, "R"}, {0x00000421, "S"}, {0x00000422, "T"}, {0x00000423, "U"}, {0x00000424, "F"}, {0x00000425, "H"}, {0x00000426, "C"}, {0x00000427, "CH"}, {0x00000428, "SH"}, {0x00000429, "SCH"}, {0x0000042a, "\""}, {0x0000042b, "Y"}, {0x0000042c, "'"}, {0x0000042d, "`E"}, {0x0000042e, "YU"}, {0x0000042f, "YA"}, {0x00000430, "a"}, {0x00000431, "b"}, {0x00000432, "v"}, {0x00000433, "g"}, {0x00000434, "d"}, {0x00000435, "e"}, {0x00000436, "zh"}, {0x00000437, "z"}, {0x00000438, "i"}, {0x00000439, "j"}, {0x0000043a, "k"}, {0x0000043b, "l"}, {0x0000043c, "m"}, {0x0000043d, "n"}, {0x0000043e, "o"}, {0x0000043f, "p"}, {0x00000440, "r"}, {0x00000441, "s"}, {0x00000442, "t"}, {0x00000443, "u"}, {0x00000444, "f"}, {0x00000445, "h"}, {0x00000446, "c"}, {0x00000447, "ch"}, {0x00000448, "sh"}, {0x00000449, "sch"}, {0x0000044a, "\""}, {0x0000044b, "y"}, {0x0000044c, "'"}, {0x0000044d, "`e"}, {0x0000044e, "yu"}, {0x0000044f, "ya"}, {0x00000451, "io"}, {0x00000452, "d%"}, {0x00000453, "g%"}, {0x00000454, "ie"}, {0x00000455, "ds"}, {0x00000456, "ii"}, {0x00000457, "yi"}, {0x00000458, "j%"}, {0x00000459, "lj"}, {0x0000045a, "nj"}, {0x0000045b, "ts"}, {0x0000045c, "kj"}, {0x0000045e, "v%"}, {0x0000045f, "dz"}, {0x00000462, "Y3"}, {0x00000463, "y3"}, {0x0000046a, "O3"}, {0x0000046b, "o3"}, {0x00000472, "F3"}, {0x00000473, "f3"}, {0x00000474, "V3"}, {0x00000475, "v3"}, {0x00000480, "C3"}, {0x00000481, "c3"}, {0x00000490, "G3"}, {0x00000491, "g3"}, {0x000004d4, "AE"}, {0x000004d5, "ae"}, {0x000005b4, "i"}, {0x000005b7, "a"}, {0x000005b8, "o"}, {0x000005bc, "u"}, {0x000005bf, "h"}, {0x000005c2, ":"}, {0x000005d0, "#"}, {0x000005d1, "B+"}, {0x000005d2, "G+"}, {0x000005d3, "D+"}, {0x000005d4, "H+"}, {0x000005d5, "W+"}, {0x000005d6, "Z+"}, {0x000005d7, "X+"}, {0x000005d8, "Tj"}, {0x000005d9, "J+"}, {0x000005da, "K%"}, {0x000005db, "K+"}, {0x000005dc, "L+"}, {0x000005dd, "M%"}, {0x000005de, "M+"}, {0x000005df, "N%"}, {0x000005e0, "N+"}, {0x000005e1, "S+"}, {0x000005e2, "E+"}, {0x000005e3, "P%"}, {0x000005e4, "P+"}, {0x000005e5, "Zj"}, {0x000005e6, "ZJ"}, {0x000005e7, "Q+"}, {0x000005e8, "R+"}, {0x000005e9, "Sh"}, {0x000005ea, "T+"}, {0x000005f0, "v"}, {0x000005f1, "oy"}, {0x000005f2, "ey"}, {0x0000060c, ",+"}, {0x0000061b, ";+"}, {0x0000061f, "?+"}, {0x00000621, "H'"}, {0x00000622, "aM"}, {0x00000623, "aH"}, {0x00000624, "wH"}, {0x00000625, "ah"}, {0x00000626, "yH"}, {0x00000627, "a+"}, {0x00000628, "b+"}, {0x00000629, "tm"}, {0x0000062a, "t+"}, {0x0000062b, "tk"}, {0x0000062c, "g+"}, {0x0000062d, "hk"}, {0x0000062e, "x+"}, {0x0000062f, "d+"}, {0x00000630, "dk"}, {0x00000631, "r+"}, {0x00000632, "z+"}, {0x00000633, "s+"}, {0x00000634, "sn"}, {0x00000635, "c+"}, {0x00000636, "dd"}, {0x00000637, "tj"}, {0x00000638, "zH"}, {0x00000639, "e+"}, {0x0000063a, "i+"}, {0x00000640, "++"}, {0x00000641, "f+"}, {0x00000642, "q+"}, {0x00000643, "k+"}, {0x00000644, "l+"}, {0x00000645, "m+"}, {0x00000646, "n+"}, {0x00000647, "h+"}, {0x00000648, "w+"}, {0x00000649, "j+"}, {0x0000064a, "y+"}, {0x0000064b, ""}, {0x0000064c, "\"+"}, {0x0000064d, "=+"}, {0x0000064e, "/+"}, {0x0000064f, "'+"}, {0x00000650, "1+"}, {0x00000651, "3+"}, {0x00000652, "0+"}, {0x00000660, "0a"}, {0x00000661, "1a"}, {0x00000662, "2a"}, {0x00000663, "3a"}, {0x00000664, "4a"}, {0x00000665, "5a"}, {0x00000666, "6a"}, {0x00000667, "7a"}, {0x00000668, "8a"}, {0x00000669, "9a"}, {0x00000670, "aS"}, {0x0000067e, "p+"}, {0x00000681, "hH"}, {0x00000686, "tc"}, {0x00000698, "zj"}, {0x000006a4, "v+"}, {0x000006af, "gf"}, {0x000006f0, "0a"}, {0x000006f1, "1a"}, {0x000006f2, "2a"}, {0x000006f3, "3a"}, {0x000006f4, "4a"}, {0x000006f5, "5a"}, {0x000006f6, "6a"}, {0x000006f7, "7a"}, {0x000006f8, "8a"}, {0x000006f9, "9a"}, {0x00001200, "he"}, {0x00001201, "hu"}, {0x00001202, "hi"}, {0x00001203, "ha"}, {0x00001204, "hE"}, {0x00001205, "h"}, {0x00001206, "ho"}, {0x00001208, "le"}, {0x00001209, "lu"}, {0x0000120a, "li"}, {0x0000120b, "la"}, {0x0000120c, "lE"}, {0x0000120d, "l"}, {0x0000120e, "lo"}, {0x0000120f, "lWa"}, {0x00001210, "He"}, {0x00001211, "Hu"}, {0x00001212, "Hi"}, {0x00001213, "Ha"}, {0x00001214, "HE"}, {0x00001215, "H"}, {0x00001216, "Ho"}, {0x00001217, "HWa"}, {0x00001218, "me"}, {0x00001219, "mu"}, {0x0000121a, "mi"}, {0x0000121b, "ma"}, {0x0000121c, "mE"}, {0x0000121d, "m"}, {0x0000121e, "mo"}, {0x0000121f, "mWa"}, {0x00001220, "`se"}, {0x00001221, "`su"}, {0x00001222, "`si"}, {0x00001223, "`sa"}, {0x00001224, "`sE"}, {0x00001225, "`s"}, {0x00001226, "`so"}, {0x00001227, "`sWa"}, {0x00001228, "re"}, {0x00001229, "ru"}, {0x0000122a, "ri"}, {0x0000122b, "ra"}, {0x0000122c, "rE"}, {0x0000122d, "r"}, {0x0000122e, "ro"}, {0x0000122f, "rWa"}, {0x00001230, "se"}, {0x00001231, "su"}, {0x00001232, "si"}, {0x00001233, "sa"}, {0x00001234, "sE"}, {0x00001235, "s"}, {0x00001236, "so"}, {0x00001237, "sWa"}, {0x00001238, "xe"}, {0x00001239, "xu"}, {0x0000123a, "xi"}, {0x0000123b, "xa"}, {0x0000123c, "xE"}, {0x0000123d, "xa"}, {0x0000123e, "xo"}, {0x0000123f, "xWa"}, {0x00001240, "qe"}, {0x00001241, "qu"}, {0x00001242, "qi"}, {0x00001243, "qa"}, {0x00001244, "qE"}, {0x00001245, "q"}, {0x00001246, "qo"}, {0x00001248, "qWe"}, {0x0000124a, "qWi"}, {0x0000124b, "qWa"}, {0x0000124c, "qWE"}, {0x0000124d, "qW"}, {0x00001250, "Qe"}, {0x00001251, "Qu"}, {0x00001252, "Qi"}, {0x00001253, "Qa"}, {0x00001254, "QE"}, {0x00001255, "Q"}, {0x00001256, "Qo"}, {0x00001258, "QWe"}, {0x0000125a, "QWi"}, {0x0000125b, "QWa"}, {0x0000125c, "QWE"}, {0x0000125d, "QW"}, {0x00001260, "be"}, {0x00001261, "bu"}, {0x00001262, "bi"}, {0x00001263, "ba"}, {0x00001264, "bE"}, {0x00001265, "b"}, {0x00001266, "bo"}, {0x00001267, "bWa"}, {0x00001268, "ve"}, {0x00001269, "vu"}, {0x0000126a, "vi"}, {0x0000126b, "va"}, {0x0000126c, "vE"}, {0x0000126d, "v"}, {0x0000126e, "vo"}, {0x0000126f, "vWa"}, {0x00001270, "te"}, {0x00001271, "tu"}, {0x00001272, "ti"}, {0x00001273, "ta"}, {0x00001274, "tE"}, {0x00001275, "t"}, {0x00001276, "to"}, {0x00001277, "tWa"}, {0x00001278, "ce"}, {0x00001279, "cu"}, {0x0000127a, "ci"}, {0x0000127b, "ca"}, {0x0000127c, "cE"}, {0x0000127d, "c"}, {0x0000127e, "co"}, {0x0000127f, "cWa"}, {0x00001280, "`he"}, {0x00001281, "`hu"}, {0x00001282, "`hi"}, {0x00001283, "`ha"}, {0x00001284, "`hE"}, {0x00001285, "`h"}, {0x00001286, "`ho"}, {0x00001288, "hWe"}, {0x0000128a, "hWi"}, {0x0000128b, "hWa"}, {0x0000128c, "hWE"}, {0x0000128d, "hW"}, {0x00001290, "na"}, {0x00001291, "nu"}, {0x00001292, "ni"}, {0x00001293, "na"}, {0x00001294, "nE"}, {0x00001295, "n"}, {0x00001296, "no"}, {0x00001297, "nWa"}, {0x00001298, "Ne"}, {0x00001299, "Nu"}, {0x0000129a, "Ni"}, {0x0000129b, "Na"}, {0x0000129c, "NE"}, {0x0000129d, "N"}, {0x0000129e, "No"}, {0x0000129f, "NWa"}, {0x000012a0, "e"}, {0x000012a1, "u"}, {0x000012a2, "i"}, {0x000012a3, "a"}, {0x000012a4, "E"}, {0x000012a5, "I"}, {0x000012a6, "o"}, {0x000012a7, "e3"}, {0x000012a8, "ke"}, {0x000012a9, "ku"}, {0x000012aa, "ki"}, {0x000012ab, "ka"}, {0x000012ac, "kE"}, {0x000012ad, "k"}, {0x000012ae, "ko"}, {0x000012b0, "kWe"}, {0x000012b2, "kWi"}, {0x000012b3, "kWa"}, {0x000012b4, "kWE"}, {0x000012b5, "kW"}, {0x000012b8, "Ke"}, {0x000012b9, "Ku"}, {0x000012ba, "Ki"}, {0x000012bb, "Ka"}, {0x000012bc, "KE"}, {0x000012bd, "K"}, {0x000012be, "Ko"}, {0x000012c0, "KWe"}, {0x000012c2, "KWi"}, {0x000012c3, "KWa"}, {0x000012c4, "KWE"}, {0x000012c5, "KW"}, {0x000012c8, "we"}, {0x000012c9, "wu"}, {0x000012ca, "wi"}, {0x000012cb, "wa"}, {0x000012cc, "wE"}, {0x000012cd, "w"}, {0x000012ce, "wo"}, {0x000012d0, "`e"}, {0x000012d1, "`u"}, {0x000012d2, "`i"}, {0x000012d3, "`a"}, {0x000012d4, "`E"}, {0x000012d5, "`I"}, {0x000012d6, "`o"}, {0x000012d8, "ze"}, {0x000012d9, "zu"}, {0x000012da, "zi"}, {0x000012db, "za"}, {0x000012dc, "zE"}, {0x000012dd, "z"}, {0x000012de, "zo"}, {0x000012df, "zWa"}, {0x000012e0, "Ze"}, {0x000012e1, "Zu"}, {0x000012e2, "Zi"}, {0x000012e3, "Za"}, {0x000012e4, "ZE"}, {0x000012e5, "Z"}, {0x000012e6, "Zo"}, {0x000012e7, "ZWa"}, {0x000012e8, "ye"}, {0x000012e9, "yu"}, {0x000012ea, "yi"}, {0x000012eb, "ya"}, {0x000012ec, "yE"}, {0x000012ed, "y"}, {0x000012ee, "yo"}, {0x000012ef, "yWa"}, {0x000012f0, "de"}, {0x000012f1, "du"}, {0x000012f2, "di"}, {0x000012f3, "da"}, {0x000012f4, "dE"}, {0x000012f5, "d"}, {0x000012f6, "do"}, {0x000012f7, "dWa"}, {0x000012f8, "De"}, {0x000012f9, "Du"}, {0x000012fa, "Di"}, {0x000012fb, "Da"}, {0x000012fc, "DE"}, {0x000012fd, "D"}, {0x000012fe, "Do"}, {0x000012ff, "DWa"}, {0x00001300, "je"}, {0x00001301, "ju"}, {0x00001302, "ji"}, {0x00001303, "ja"}, {0x00001304, "jE"}, {0x00001305, "j"}, {0x00001306, "jo"}, {0x00001307, "jWa"}, {0x00001308, "ga"}, {0x00001309, "gu"}, {0x0000130a, "gi"}, {0x0000130b, "ga"}, {0x0000130c, "gE"}, {0x0000130d, "g"}, {0x0000130e, "go"}, {0x00001310, "gWu"}, {0x00001312, "gWi"}, {0x00001313, "gWa"}, {0x00001314, "gWE"}, {0x00001315, "gW"}, {0x00001318, "Ge"}, {0x00001319, "Gu"}, {0x0000131a, "Gi"}, {0x0000131b, "Ga"}, {0x0000131c, "GE"}, {0x0000131d, "G"}, {0x0000131e, "Go"}, {0x0000131f, "GWa"}, {0x00001320, "Te"}, {0x00001321, "Tu"}, {0x00001322, "Ti"}, {0x00001323, "Ta"}, {0x00001324, "TE"}, {0x00001325, "T"}, {0x00001326, "To"}, {0x00001327, "TWa"}, {0x00001328, "Ce"}, {0x00001329, "Ca"}, {0x0000132a, "Cu"}, {0x0000132b, "Ca"}, {0x0000132c, "CE"}, {0x0000132d, "C"}, {0x0000132e, "Co"}, {0x0000132f, "CWa"}, {0x00001330, "Pe"}, {0x00001331, "Pu"}, {0x00001332, "Pi"}, {0x00001333, "Pa"}, {0x00001334, "PE"}, {0x00001335, "P"}, {0x00001336, "Po"}, {0x00001337, "PWa"}, {0x00001338, "SWe"}, {0x00001339, "SWu"}, {0x0000133a, "SWi"}, {0x0000133b, "SWa"}, {0x0000133c, "SWE"}, {0x0000133d, "SW"}, {0x0000133e, "SWo"}, {0x0000133f, "SWa"}, {0x00001340, "`Sa"}, {0x00001341, "`Su"}, {0x00001342, "`Si"}, {0x00001343, "`Sa"}, {0x00001344, "`SE"}, {0x00001345, "`S"}, {0x00001346, "`So"}, {0x00001348, "fa"}, {0x00001349, "fu"}, {0x0000134a, "fi"}, {0x0000134b, "fa"}, {0x0000134c, "fE"}, {0x0000134d, "o"}, {0x0000134e, "fo"}, {0x0000134f, "fWa"}, {0x00001350, "pe"}, {0x00001351, "pu"}, {0x00001352, "pi"}, {0x00001353, "pa"}, {0x00001354, "pE"}, {0x00001355, "p"}, {0x00001356, "po"}, {0x00001357, "pWa"}, {0x00001358, "mYa"}, {0x00001359, "rYa"}, {0x0000135a, "fYa"}, {0x00001360, " "}, {0x00001361, ":"}, {0x00001362, ""}, {0x00001363, ","}, {0x00001364, ";"}, {0x00001365, "-"}, {0x00001366, ""}, {0x00001367, "`?"}, {0x00001368, ""}, {0x00001369, "`1"}, {0x0000136a, "`2"}, {0x0000136b, "`3"}, {0x0000136c, "`4"}, {0x0000136d, "`5"}, {0x0000136e, "`6"}, {0x0000136f, "`7"}, {0x00001370, "`8"}, {0x00001371, "`9"}, {0x00001372, "`10"}, {0x00001373, "`20"}, {0x00001374, "`30"}, {0x00001375, "`40"}, {0x00001376, "`50"}, {0x00001377, "`60"}, {0x00001378, "`70"}, {0x00001379, "`80"}, {0x0000137a, "`90"}, {0x0000137b, "`100"}, {0x0000137c, "`10000"}, {0x00001e00, "A-0"}, {0x00001e01, "a-0"}, {0x00001e02, "B."}, {0x00001e03, "b."}, {0x00001e04, "B-."}, {0x00001e05, "b-."}, {0x00001e06, "B_"}, {0x00001e07, "b_"}, {0x00001e08, "C,'"}, {0x00001e09, "c,'"}, {0x00001e0a, "D."}, {0x00001e0b, "d."}, {0x00001e0c, "D-."}, {0x00001e0d, "d-."}, {0x00001e0e, "D_"}, {0x00001e0f, "d_"}, {0x00001e10, "D,"}, {0x00001e11, "d,"}, {0x00001e12, "D->"}, {0x00001e13, "d->"}, {0x00001e14, "E-!"}, {0x00001e15, "e-!"}, {0x00001e16, "E-'"}, {0x00001e17, "e-'"}, {0x00001e18, "E->"}, {0x00001e19, "e->"}, {0x00001e1a, "E-?"}, {0x00001e1b, "e-?"}, {0x00001e1c, "E,("}, {0x00001e1d, "e,("}, {0x00001e1e, "F."}, {0x00001e1f, "f."}, {0x00001e20, "G-"}, {0x00001e21, "g-"}, {0x00001e22, "H."}, {0x00001e23, "h."}, {0x00001e24, "H-."}, {0x00001e25, "h-."}, {0x00001e26, "H"}, {0x00001e27, "h"}, {0x00001e28, "H,"}, {0x00001e29, "h,"}, {0x00001e2a, "H-("}, {0x00001e2b, "h-("}, {0x00001e2c, "I-?"}, {0x00001e2d, "i-?"}, {0x00001e2e, "I"}, {0x00001e2f, "i"}, {0x00001e30, "K'"}, {0x00001e31, "k'"}, {0x00001e32, "K-."}, {0x00001e33, "k-."}, {0x00001e34, "K_"}, {0x00001e35, "k_"}, {0x00001e36, "L-."}, {0x00001e37, "l-."}, {0x00001e38, "L--."}, {0x00001e39, "l--."}, {0x00001e3a, "L_"}, {0x00001e3b, "l_"}, {0x00001e3c, "L->"}, {0x00001e3d, "l->"}, {0x00001e3e, "M'"}, {0x00001e3f, "m'"}, {0x00001e40, "M."}, {0x00001e41, "m."}, {0x00001e42, "M-."}, {0x00001e43, "m-."}, {0x00001e44, "N."}, {0x00001e45, "n."}, {0x00001e46, "N-."}, {0x00001e47, "n-."}, {0x00001e48, "N_"}, {0x00001e49, "n_"}, {0x00001e4a, "N->"}, {0x00001e4b, "n->"}, {0x00001e4c, "O?'"}, {0x00001e4d, "o?'"}, {0x00001e4e, "O?"}, {0x00001e4f, "o?"}, {0x00001e50, "O-!"}, {0x00001e51, "o-!"}, {0x00001e52, "O-'"}, {0x00001e53, "o-'"}, {0x00001e54, "P'"}, {0x00001e55, "p'"}, {0x00001e56, "P."}, {0x00001e57, "p."}, {0x00001e58, "R."}, {0x00001e59, "r."}, {0x00001e5a, "R-."}, {0x00001e5b, "r-."}, {0x00001e5c, "R--."}, {0x00001e5d, "r--."}, {0x00001e5e, "R_"}, {0x00001e5f, "r_"}, {0x00001e60, "S."}, {0x00001e61, "s."}, {0x00001e62, "S-."}, {0x00001e63, "s-."}, {0x00001e64, "S'."}, {0x00001e65, "s'."}, {0x00001e66, "S<."}, {0x00001e67, "s<."}, {0x00001e68, "S.-."}, {0x00001e69, "s.-."}, {0x00001e6a, "T."}, {0x00001e6b, "t."}, {0x00001e6c, "T-."}, {0x00001e6d, "t-."}, {0x00001e6e, "T_"}, {0x00001e6f, "t_"}, {0x00001e70, "T->"}, {0x00001e71, "t->"}, {0x00001e72, "U--"}, {0x00001e73, "u--"}, {0x00001e74, "U-?"}, {0x00001e75, "u-?"}, {0x00001e76, "U->"}, {0x00001e77, "u->"}, {0x00001e78, "U?'"}, {0x00001e79, "u?'"}, {0x00001e7a, "U-"}, {0x00001e7b, "u-"}, {0x00001e7c, "V?"}, {0x00001e7d, "v?"}, {0x00001e7e, "V-."}, {0x00001e7f, "v-."}, {0x00001e80, "W!"}, {0x00001e81, "w!"}, {0x00001e82, "W'"}, {0x00001e83, "w'"}, {0x00001e84, "W"}, {0x00001e85, "w"}, {0x00001e86, "W."}, {0x00001e87, "w."}, {0x00001e88, "W-."}, {0x00001e89, "w-."}, {0x00001e8a, "X."}, {0x00001e8b, "x."}, {0x00001e8c, "X"}, {0x00001e8d, "x"}, {0x00001e8e, "Y."}, {0x00001e8f, "y."}, {0x00001e90, "Z>"}, {0x00001e91, "z>"}, {0x00001e92, "Z-."}, {0x00001e93, "z-."}, {0x00001e94, "Z_"}, {0x00001e95, "z_"}, {0x00001e96, "h_"}, {0x00001e97, "t"}, {0x00001e98, "w0"}, {0x00001e99, "y0"}, {0x00001ea0, "A-."}, {0x00001ea1, "a-."}, {0x00001ea2, "A2"}, {0x00001ea3, "a2"}, {0x00001ea4, "A>'"}, {0x00001ea5, "a>'"}, {0x00001ea6, "A>!"}, {0x00001ea7, "a>!"}, {0x00001ea8, "A>2"}, {0x00001ea9, "a>2"}, {0x00001eaa, "A>?"}, {0x00001eab, "a>?"}, {0x00001eac, "A>-."}, {0x00001ead, "a>-."}, {0x00001eae, "A('"}, {0x00001eaf, "a('"}, {0x00001eb0, "A(!"}, {0x00001eb1, "a(!"}, {0x00001eb2, "A(2"}, {0x00001eb3, "a(2"}, {0x00001eb4, "A(?"}, {0x00001eb5, "a(?"}, {0x00001eb6, "A(-."}, {0x00001eb7, "a(-."}, {0x00001eb8, "E-."}, {0x00001eb9, "e-."}, {0x00001eba, "E2"}, {0x00001ebb, "e2"}, {0x00001ebc, "E?"}, {0x00001ebd, "e?"}, {0x00001ebe, "E>'"}, {0x00001ebf, "e>'"}, {0x00001ec0, "E>!"}, {0x00001ec1, "e>!"}, {0x00001ec2, "E>2"}, {0x00001ec3, "e>2"}, {0x00001ec4, "E>?"}, {0x00001ec5, "e>?"}, {0x00001ec6, "E>-."}, {0x00001ec7, "e>-."}, {0x00001ec8, "I2"}, {0x00001ec9, "i2"}, {0x00001eca, "I-."}, {0x00001ecb, "i-."}, {0x00001ecc, "O-."}, {0x00001ecd, "o-."}, {0x00001ece, "O2"}, {0x00001ecf, "o2"}, {0x00001ed0, "O>'"}, {0x00001ed1, "o>'"}, {0x00001ed2, "O>!"}, {0x00001ed3, "o>!"}, {0x00001ed4, "O>2"}, {0x00001ed5, "o>2"}, {0x00001ed6, "O>?"}, {0x00001ed7, "o>?"}, {0x00001ed8, "O>-."}, {0x00001ed9, "o>-."}, {0x00001eda, "O9'"}, {0x00001edb, "o9'"}, {0x00001edc, "O9!"}, {0x00001edd, "o9!"}, {0x00001ede, "O92"}, {0x00001edf, "o92"}, {0x00001ee0, "O9?"}, {0x00001ee1, "o9?"}, {0x00001ee2, "O9-."}, {0x00001ee3, "o9-."}, {0x00001ee4, "U-."}, {0x00001ee5, "u-."}, {0x00001ee6, "U2"}, {0x00001ee7, "u2"}, {0x00001ee8, "U9'"}, {0x00001ee9, "u9'"}, {0x00001eea, "U9!"}, {0x00001eeb, "u9!"}, {0x00001eec, "U92"}, {0x00001eed, "u92"}, {0x00001eee, "U9?"}, {0x00001eef, "u9?"}, {0x00001ef0, "U9-."}, {0x00001ef1, "u9-."}, {0x00001ef2, "Y!"}, {0x00001ef3, "y!"}, {0x00001ef4, "Y-."}, {0x00001ef5, "y-."}, {0x00001ef6, "Y2"}, {0x00001ef7, "y2"}, {0x00001ef8, "Y?"}, {0x00001ef9, "y?"}, {0x00001f00, "a"}, {0x00001f01, "ha"}, {0x00001f02, "`a"}, {0x00001f03, "h`a"}, {0x00001f04, "a'"}, {0x00001f05, "ha'"}, {0x00001f06, "a~"}, {0x00001f07, "ha~"}, {0x00001f08, "A"}, {0x00001f09, "hA"}, {0x00001f0a, "`A"}, {0x00001f0b, "h`A"}, {0x00001f0c, "A'"}, {0x00001f0d, "hA'"}, {0x00001f0e, "A~"}, {0x00001f0f, "hA~"}, {0x00001f11, "he"}, {0x00001f19, "hE"}, {0x00001f31, "hi"}, {0x00001f39, "hI"}, {0x00001f41, "ho"}, {0x00001f49, "hO"}, {0x00001f51, "hu"}, {0x00001f59, "hU"}, {0x00001fbf, ",,"}, {0x00001fc0, "?*"}, {0x00001fc1, "?"}, {0x00001fcd, ",!"}, {0x00001fce, ",'"}, {0x00001fcf, "?,"}, {0x00001fdd, ";!"}, {0x00001fde, ";'"}, {0x00001fdf, "?;"}, {0x00001fe5, "rh"}, {0x00001fec, "Rh"}, {0x00001fed, "!"}, {0x00001fef, "!*"}, {0x00001ffe, ";;"}, {0x00002000, " "}, {0x00002001, ""}, {0x00002002, " "}, {0x00002003, ""}, {0x00002004, " "}, {0x00002005, " "}, {0x00002006, " "}, {0x00002007, " "}, {0x00002008, " "}, {0x00002009, " "}, {0x0000200a, ""}, {0x0000200e, "(->)"}, {0x0000200f, "(<-)"}, {0x00002010, "-"}, {0x00002011, "-"}, {0x00002013, "-"}, {0x00002014, "--"}, {0x00002015, "-"}, {0x00002016, "||"}, {0x00002017, "=2"}, {0x00002018, "`"}, {0x00002019, "'"}, {0x0000201a, "'"}, {0x0000201b, "'"}, {0x0000201c, "\""}, {0x0000201d, "\""}, {0x0000201e, "\""}, {0x0000201f, "\""}, {0x00002020, "/-"}, {0x00002021, "/="}, {0x00002022, " o"}, {0x00002024, "."}, {0x00002025, ".."}, {0x00002026, "..."}, {0x00002027, "."}, {0x00002028, "\\\\015"}, {0x00002029, "\\\\015\\\\012"}, {0x0000202c, ""}, {0x0000202d, ""}, {0x0000202f, ""}, {0x00002030, " 0/00"}, {0x00002032, "'"}, {0x00002033, "''"}, {0x00002034, "'''"}, {0x00002035, "`"}, {0x00002036, "``"}, {0x00002037, "```"}, {0x00002038, "Ca"}, {0x00002039, "<"}, {0x0000203a, ">"}, {0x0000203b, ""}, {0x0000203c, "!!"}, {0x0000203e, "'-"}, {0x00002043, "-"}, {0x00002044, "/"}, {0x00002048, "?!"}, {0x00002049, "!?"}, {0x00002070, "^0"}, {0x00002074, "^4"}, {0x00002075, "^5"}, {0x00002076, "^6"}, {0x00002077, "^7"}, {0x00002078, "^8"}, {0x00002079, "^9"}, {0x0000207a, "^+"}, {0x0000207b, "^-"}, {0x0000207c, "^="}, {0x0000207d, "^("}, {0x0000207e, "^)"}, {0x0000207f, "^n"}, {0x00002080, "_0"}, {0x00002081, "_1"}, {0x00002082, "_2"}, {0x00002083, "_3"}, {0x00002084, "_4"}, {0x00002085, "_5"}, {0x00002086, "_6"}, {0x00002087, "_7"}, {0x00002088, "_8"}, {0x00002089, "_9"}, {0x0000208a, "_+"}, {0x0000208b, "_-"}, {0x0000208c, "_="}, {0x0000208d, "("}, {0x0000208e, ")"}, {0x000020a3, "Ff"}, {0x000020a4, "Li"}, {0x000020a7, "Pt"}, {0x000020a9, "W="}, {0x000020ac, "EUR"}, {0x00002100, "a/c"}, {0x00002101, "a/s"}, {0x00002103, "oC"}, {0x00002105, "c/o"}, {0x00002106, "c/u"}, {0x00002109, "oF"}, {0x0000210a, "g"}, {0x0000210e, "h"}, {0x0000210f, "\"hbar"}, {0x00002111, "Im"}, {0x00002113, "l"}, {0x00002116, "No."}, {0x00002117, "PO"}, {0x00002118, "P"}, {0x0000211c, "Re"}, {0x0000211e, "Rx"}, {0x00002120, "(SM)"}, {0x00002121, "TEL"}, {0x00002122, "(TM)"}, {0x00002126, "Ohm"}, {0x0000212a, "K"}, {0x0000212b, "Ang."}, {0x0000212e, "est."}, {0x00002134, "o"}, {0x00002135, "Aleph"}, {0x00002136, "Bet"}, {0x00002137, "Gimel"}, {0x00002138, "Dalet"}, {0x00002153, " 1/3"}, {0x00002154, " 2/3"}, {0x00002155, " 1/5"}, {0x00002156, " 2/5"}, {0x00002157, " 3/5"}, {0x00002158, " 4/5"}, {0x00002159, " 1/6"}, {0x0000215a, " 5/6"}, {0x0000215b, " 1/8"}, {0x0000215c, " 3/8"}, {0x0000215d, " 5/8"}, {0x0000215e, " 7/8"}, {0x0000215f, " 1/"}, {0x00002160, "I"}, {0x00002161, "II"}, {0x00002162, "III"}, {0x00002163, "IV"}, {0x00002164, "V"}, {0x00002165, "VI"}, {0x00002166, "VII"}, {0x00002167, "VIII"}, {0x00002168, "IX"}, {0x00002169, "X"}, {0x0000216a, "XI"}, {0x0000216b, "XII"}, {0x0000216c, "L"}, {0x0000216d, "C"}, {0x0000216e, "D"}, {0x0000216f, "M"}, {0x00002170, "i"}, {0x00002171, "ii"}, {0x00002172, "iii"}, {0x00002173, "iv"}, {0x00002174, "v"}, {0x00002175, "vi"}, {0x00002176, "vii"}, {0x00002177, "viii"}, {0x00002178, "ix"}, {0x00002179, "x"}, {0x0000217a, "xi"}, {0x0000217b, "xii"}, {0x0000217c, "l"}, {0x0000217d, "c"}, {0x0000217e, "d"}, {0x0000217f, "m"}, {0x00002180, "1000RCD"}, {0x00002181, "5000R"}, {0x00002182, "10000R"}, {0x00002190, "<-"}, {0x00002191, "-^"}, {0x00002192, "->"}, {0x00002193, "-v"}, {0x00002194, "<->"}, {0x00002195, "UD"}, {0x00002196, ""}, {0x00002198, "!!>"}, {0x00002199, "V"}, {0x000021d0, "<="}, {0x000021d1, "^^"}, {0x000021d2, "=>"}, {0x000021d3, "vv"}, {0x000021d4, "<=>"}, {0x00002200, "FA"}, {0x00002202, "\\\\partial"}, {0x00002203, "TE"}, {0x00002205, "{}"}, {0x00002206, "Delta"}, {0x00002207, "Nabla"}, {0x00002208, "(-"}, {0x00002209, "!(-"}, {0x0000220a, "(-"}, {0x0000220b, "-)"}, {0x0000220c, "!-)"}, {0x0000220d, "-)"}, {0x0000220e, " qed"}, {0x0000220f, "\\\\prod"}, {0x00002211, "\\\\sum"}, {0x00002212, " -"}, {0x00002213, "-/+"}, {0x00002214, ".+"}, {0x00002215, "/"}, {0x00002216, " -"}, {0x00002217, "*"}, {0x00002218, "Ob"}, {0x00002219, "sb"}, {0x0000221a, " SQRT"}, {0x0000221b, " ROOT3"}, {0x0000221c, " ROOT4"}, {0x0000221d, "0("}, {0x0000221e, "infty"}, {0x0000221f, "-L"}, {0x00002220, "-V"}, {0x00002225, "PP"}, {0x00002226, " !PP"}, {0x00002227, "AND"}, {0x00002228, "OR"}, {0x00002229, "(U"}, {0x0000222a, ")U"}, {0x0000222b, "\"int"}, {0x0000222c, "DI"}, {0x0000222e, "Io"}, {0x00002234, "."}, {0x00002235, ""}, {0x00002236, ""}, {0x00002237, ""}, {0x0000223c, "?1"}, {0x0000223e, "CG"}, {0x00002243, "?-"}, {0x00002245, "?="}, {0x00002248, "~="}, {0x00002249, " !~="}, {0x0000224c, "=?"}, {0x00002253, "HI"}, {0x00002254, ""}, {0x00002255, "="}, {0x00002260, "!="}, {0x00002261, "=3"}, {0x00002262, " !=3"}, {0x00002264, "=<"}, {0x00002265, ">="}, {0x00002266, ".LE."}, {0x00002267, ".GE."}, {0x00002268, ".LT.NOT.EQ."}, {0x00002269, ".GT.NOT.EQ."}, {0x0000226a, "<<"}, {0x0000226b, ">>"}, {0x0000226e, "!<"}, {0x0000226f, "!>"}, {0x00002276, " <>"}, {0x00002277, " ><"}, {0x00002282, "(C"}, {0x00002283, ")C"}, {0x00002284, " !(C"}, {0x00002285, " !)C"}, {0x00002286, "(_"}, {0x00002287, ")_"}, {0x00002295, "(+)"}, {0x00002296, "(-)"}, {0x00002297, "(x)"}, {0x00002298, "(/)"}, {0x00002299, "(.)"}, {0x0000229a, "(o)"}, {0x0000229b, "(*)"}, {0x0000229c, "(=)"}, {0x0000229d, "(-)"}, {0x0000229e, "[+]"}, {0x0000229f, "[-]"}, {0x000022a0, "[x]"}, {0x000022a1, "[.]"}, {0x000022a5, "-T"}, {0x000022a7, " MODELS"}, {0x000022a8, " TRUE"}, {0x000022a9, " FORCES"}, {0x000022ac, " !PROVES"}, {0x000022ad, " NOT TRUE"}, {0x000022ae, " !FORCES"}, {0x000022b2, " NORMAL SUBGROUP OF"}, {0x000022b3, " CONTAINS AS NORMAL SUBGROUP"}, {0x000022b4, " NORMAL SUBGROUP OF OR EQUAL TO"}, {0x000022b5, " CONTAINS AS NORMAL SUBGROUP OR EQUAL TO"}, {0x000022b8, " MULTIMAP"}, {0x000022ba, " INTERCALATE"}, {0x000022bb, " XOR"}, {0x000022bc, " NAND"}, {0x000022c5, " DOT"}, {0x000022d6, "<."}, {0x000022d7, ">."}, {0x000022d8, "<<<"}, {0x000022d9, ">>>"}, {0x000022ee, ""}, {0x000022ef, ".3"}, {0x00002302, "Eh"}, {0x00002307, "~~"}, {0x00002308, "<7"}, {0x00002309, ">7"}, {0x0000230a, "7<"}, {0x0000230b, "7>"}, {0x00002310, "NI"}, {0x00002312, "(A"}, {0x00002315, "TR"}, {0x00002318, "88"}, {0x00002320, "Iu"}, {0x00002321, "Il"}, {0x00002322, ""}, {0x00002323, ""}, {0x00002324, "|^|"}, {0x00002327, "[X]"}, {0x00002329, ""}, {0x00002423, "Vs"}, {0x00002440, "1h"}, {0x00002441, "3h"}, {0x00002442, "2h"}, {0x00002443, "4h"}, {0x00002446, "1j"}, {0x00002447, "2j"}, {0x00002448, "3j"}, {0x00002449, "4j"}, {0x00002460, "1-o"}, {0x00002461, "2-o"}, {0x00002462, "3-o"}, {0x00002463, "4-o"}, {0x00002464, "5-o"}, {0x00002465, "6-o"}, {0x00002466, "7-o"}, {0x00002467, "8-o"}, {0x00002468, "9-o"}, {0x00002469, "10-o"}, {0x0000246a, "11-o"}, {0x0000246b, "12-o"}, {0x0000246c, "13-o"}, {0x0000246d, "14-o"}, {0x0000246e, "15-o"}, {0x0000246f, "16-o"}, {0x00002470, "17-o"}, {0x00002471, "18-o"}, {0x00002472, "19-o"}, {0x00002473, "20-o"}, {0x00002474, "(1)"}, {0x00002475, "(2)"}, {0x00002476, "(3)"}, {0x00002477, "(4)"}, {0x00002478, "(5)"}, {0x00002479, "(6)"}, {0x0000247a, "(7)"}, {0x0000247b, "(8)"}, {0x0000247c, "(9)"}, {0x0000247d, "(10)"}, {0x0000247e, "(11)"}, {0x0000247f, "(12)"}, {0x00002480, "(13)"}, {0x00002481, "(14)"}, {0x00002482, "(15)"}, {0x00002483, "(16)"}, {0x00002484, "(17)"}, {0x00002485, "(18)"}, {0x00002486, "(19)"}, {0x00002487, "(20)"}, {0x00002488, "1."}, {0x00002489, "2."}, {0x0000248a, "3."}, {0x0000248b, "4."}, {0x0000248c, "5."}, {0x0000248d, "6."}, {0x0000248e, "7."}, {0x0000248f, "8."}, {0x00002490, "9."}, {0x00002491, "10."}, {0x00002492, "11."}, {0x00002493, "12."}, {0x00002494, "13."}, {0x00002495, "14."}, {0x00002496, "15."}, {0x00002497, "16."}, {0x00002498, "17."}, {0x00002499, "18."}, {0x0000249a, "19."}, {0x0000249b, "20."}, {0x0000249c, "(a)"}, {0x0000249d, "(b)"}, {0x0000249e, "(c)"}, {0x0000249f, "(d)"}, {0x000024a0, "(e)"}, {0x000024a1, "(f)"}, {0x000024a2, "(g)"}, {0x000024a3, "(h)"}, {0x000024a4, "(i)"}, {0x000024a5, "(j)"}, {0x000024a6, "(k)"}, {0x000024a7, "(l)"}, {0x000024a8, "(m)"}, {0x000024a9, "(n)"}, {0x000024aa, "(o)"}, {0x000024ab, "(p)"}, {0x000024ac, "(q)"}, {0x000024ad, "(r)"}, {0x000024ae, "(s)"}, {0x000024af, "(t)"}, {0x000024b0, "(u)"}, {0x000024b1, "(v)"}, {0x000024b2, "(w)"}, {0x000024b3, "(x)"}, {0x000024b4, "(y)"}, {0x000024b5, "(z)"}, {0x000024b6, "A-o"}, {0x000024b7, "B-o"}, {0x000024b8, "C-o"}, {0x000024b9, "D-o"}, {0x000024ba, "E-o"}, {0x000024bb, "F-o"}, {0x000024bc, "G-o"}, {0x000024bd, "H-o"}, {0x000024be, "I-o"}, {0x000024bf, "J-o"}, {0x000024c0, "K-o"}, {0x000024c1, "L-o"}, {0x000024c2, "M-o"}, {0x000024c3, "N-o"}, {0x000024c4, "O-o"}, {0x000024c5, "P-o"}, {0x000024c6, "Q-o"}, {0x000024c7, "R-o"}, {0x000024c8, "S-o"}, {0x000024c9, "T-o"}, {0x000024ca, "U-o"}, {0x000024cb, "V-o"}, {0x000024cc, "W-o"}, {0x000024cd, "X-o"}, {0x000024ce, "Y-o"}, {0x000024cf, "Z-o"}, {0x000024d0, "a-o"}, {0x000024d1, "b-o"}, {0x000024d2, "c-o"}, {0x000024d3, "d-o"}, {0x000024d4, "e-o"}, {0x000024d5, "f-o"}, {0x000024d6, "g-o"}, {0x000024d7, "h-o"}, {0x000024d8, "i-o"}, {0x000024d9, "j-o"}, {0x000024da, "k-o"}, {0x000024db, "l-o"}, {0x000024dc, "m-o"}, {0x000024dd, "n-o"}, {0x000024de, "o-o"}, {0x000024df, "p-o"}, {0x000024e0, "q-o"}, {0x000024e1, "r-o"}, {0x000024e2, "s-o"}, {0x000024e3, "t-o"}, {0x000024e4, "u-o"}, {0x000024e5, "v-o"}, {0x000024e6, "w-o"}, {0x000024e7, "x-o"}, {0x000024e8, "y-o"}, {0x000024e9, "z-o"}, {0x000024ea, "0-o"}, {0x00002500, "-"}, {0x00002501, "="}, {0x00002502, "|"}, {0x00002503, "|"}, {0x00002504, "-"}, {0x00002505, "="}, {0x00002506, "|"}, {0x00002507, "|"}, {0x00002508, "-"}, {0x00002509, "="}, {0x0000250a, "|"}, {0x0000250b, "|"}, {0x0000250c, "+"}, {0x0000250d, "+"}, {0x0000250e, "+"}, {0x0000250f, "+"}, {0x00002510, "+"}, {0x00002511, "+"}, {0x00002512, "+"}, {0x00002513, "+"}, {0x00002514, "+"}, {0x00002515, "+"}, {0x00002516, "+"}, {0x00002517, "+"}, {0x00002518, "+"}, {0x00002519, "+"}, {0x0000251a, "+"}, {0x0000251b, "+"}, {0x0000251c, "+"}, {0x0000251d, "+"}, {0x0000251e, "+"}, {0x0000251f, "+"}, {0x00002520, "+"}, {0x00002521, "+"}, {0x00002522, "+"}, {0x00002523, "+"}, {0x00002524, "+"}, {0x00002525, "+"}, {0x00002526, "+"}, {0x00002527, "+"}, {0x00002528, "+"}, {0x00002529, "+"}, {0x0000252a, "+"}, {0x0000252b, "+"}, {0x0000252c, "+"}, {0x0000252d, "+"}, {0x0000252e, "+"}, {0x0000252f, "+"}, {0x00002530, "+"}, {0x00002531, "+"}, {0x00002532, "+"}, {0x00002533, "+"}, {0x00002534, "+"}, {0x00002535, "+"}, {0x00002536, "+"}, {0x00002537, "+"}, {0x00002538, "+"}, {0x00002539, "+"}, {0x0000253a, "+"}, {0x0000253b, "+"}, {0x0000253c, "+"}, {0x0000253d, "+"}, {0x0000253e, "+"}, {0x0000253f, "+"}, {0x00002540, "+"}, {0x00002541, "+"}, {0x00002542, "+"}, {0x00002543, "+"}, {0x00002544, "+"}, {0x00002545, "+"}, {0x00002546, "+"}, {0x00002547, "+"}, {0x00002548, "+"}, {0x00002549, "+"}, {0x0000254a, "+"}, {0x0000254b, "+"}, {0x0000254c, "+"}, {0x0000254d, "+"}, {0x0000254e, "+"}, {0x0000254f, "+"}, {0x00002550, "+"}, {0x00002551, "+"}, {0x00002552, "+"}, {0x00002553, "+"}, {0x00002554, "+"}, {0x00002555, "+"}, {0x00002556, "+"}, {0x00002557, "+"}, {0x00002558, "+"}, {0x00002559, "+"}, {0x0000255a, "+"}, {0x0000255b, "+"}, {0x0000255c, "+"}, {0x0000255d, "+"}, {0x0000255e, "+"}, {0x0000255f, "+"}, {0x00002560, "+"}, {0x00002561, "+"}, {0x00002562, "+"}, {0x00002563, "+"}, {0x00002564, "+"}, {0x00002565, "+"}, {0x00002566, "+"}, {0x00002567, "+"}, {0x00002568, "+"}, {0x00002569, "+"}, {0x0000256a, "+"}, {0x0000256b, "+"}, {0x0000256c, "+"}, {0x00002571, "/"}, {0x00002572, "\\\\"}, {0x00002580, "TB"}, {0x00002584, "LB"}, {0x00002588, "FB"}, {0x0000258c, "lB"}, {0x00002590, "RB"}, {0x00002591, ".S"}, {0x00002592, ""}, {0x00002593, "?S"}, {0x000025a0, "fS"}, {0x000025a1, "OS"}, {0x000025a2, "RO"}, {0x000025a3, "Rr"}, {0x000025a4, "RF"}, {0x000025a5, "RY"}, {0x000025a6, "RH"}, {0x000025a7, "RZ"}, {0x000025a8, "RK"}, {0x000025a9, "RX"}, {0x000025aa, "sB"}, {0x000025ac, "SR"}, {0x000025ad, "Or"}, {0x000025b2, "^"}, {0x000025b3, "uT"}, {0x000025b6, "|>"}, {0x000025b7, "Tr"}, {0x000025ba, "|>"}, {0x000025bc, "v"}, {0x000025bd, "dT"}, {0x000025c0, "<|"}, {0x000025c1, "Tl"}, {0x000025c4, "<|"}, {0x000025c6, "Db"}, {0x000025c7, "Dw"}, {0x000025ca, "LZ"}, {0x000025cb, "0m"}, {0x000025ce, "0o"}, {0x000025cf, "0M"}, {0x000025d0, "0L"}, {0x000025d1, "0R"}, {0x000025d8, "Sn"}, {0x000025d9, "Ic"}, {0x000025e2, "Fd"}, {0x000025e3, "Bd"}, {0x000025ef, "Ci"}, {0x00002605, "*2"}, {0x00002606, "*1"}, {0x0000260e, "TEL"}, {0x0000260f, "tel"}, {0x0000261c, "<--"}, {0x0000261e, "-->"}, {0x00002621, "CAUTION"}, {0x00002627, "XP"}, {0x00002639, ""}, {0x0000263a, ""}, {0x0000263b, "(-"}, {0x0000263c, "SU"}, {0x00002640, "f."}, {0x00002642, "m."}, {0x00002660, "cS"}, {0x00002661, "cH"}, {0x00002662, "cD"}, {0x00002663, "cC"}, {0x00002664, "cS-"}, {0x00002665, "cH-"}, {0x00002666, "cD-"}, {0x00002667, "cC-"}, {0x00002669, "Md"}, {0x0000266a, "M8"}, {0x0000266b, "M2"}, {0x0000266c, "M16"}, {0x0000266d, "b"}, {0x0000266e, "Mx"}, {0x0000266f, "#"}, {0x00002713, "X"}, {0x00002717, "X"}, {0x00002720, "-X"}, {0x00003000, " "}, {0x00003001, ",_"}, {0x00003002, "._"}, {0x00003003, "+\""}, {0x00003004, "JIS"}, {0x00003005, "*_"}, {0x00003006, ";_"}, {0x00003007, "0_"}, {0x0000300a, "<+"}, {0x0000300b, ">+"}, {0x0000300c, "<'"}, {0x0000300d, ">'"}, {0x0000300e, "<\""}, {0x0000300f, ">\""}, {0x00003010, "(\""}, {0x00003011, ")\""}, {0x00003012, "=T"}, {0x00003013, "=_"}, {0x00003014, "('"}, {0x00003015, ")'"}, {0x00003016, "(I"}, {0x00003017, ")I"}, {0x0000301a, "[["}, {0x0000301b, "]]"}, {0x0000301c, "-?"}, {0x00003020, "=T"}, {0x0000303f, " "}, {0x00003041, "A5"}, {0x00003042, "a5"}, {0x00003043, "I5"}, {0x00003044, "i5"}, {0x00003045, "U5"}, {0x00003046, "u5"}, {0x00003047, "E5"}, {0x00003048, "e5"}, {0x00003049, "O5"}, {0x0000304a, "o5"}, {0x0000304b, "ka"}, {0x0000304c, "ga"}, {0x0000304d, "ki"}, {0x0000304e, "gi"}, {0x0000304f, "ku"}, {0x00003050, "gu"}, {0x00003051, "ke"}, {0x00003052, "ge"}, {0x00003053, "ko"}, {0x00003054, "go"}, {0x00003055, "sa"}, {0x00003056, "za"}, {0x00003057, "si"}, {0x00003058, "zi"}, {0x00003059, "su"}, {0x0000305a, "zu"}, {0x0000305b, "se"}, {0x0000305c, "ze"}, {0x0000305d, "so"}, {0x0000305e, "zo"}, {0x0000305f, "ta"}, {0x00003060, "da"}, {0x00003061, "ti"}, {0x00003062, "di"}, {0x00003063, "tU"}, {0x00003064, "tu"}, {0x00003065, "du"}, {0x00003066, "te"}, {0x00003067, "de"}, {0x00003068, "to"}, {0x00003069, "do"}, {0x0000306a, "na"}, {0x0000306b, "ni"}, {0x0000306c, "nu"}, {0x0000306d, "ne"}, {0x0000306e, "no"}, {0x0000306f, "ha"}, {0x00003070, "ba"}, {0x00003071, "pa"}, {0x00003072, "hi"}, {0x00003073, "bi"}, {0x00003074, "pi"}, {0x00003075, "hu"}, {0x00003076, "bu"}, {0x00003077, "pu"}, {0x00003078, "he"}, {0x00003079, "be"}, {0x0000307a, "pe"}, {0x0000307b, "ho"}, {0x0000307c, "bo"}, {0x0000307d, "po"}, {0x0000307e, "ma"}, {0x0000307f, "mi"}, {0x00003080, "mu"}, {0x00003081, "me"}, {0x00003082, "mo"}, {0x00003083, "yA"}, {0x00003084, "ya"}, {0x00003085, "yU"}, {0x00003086, "yu"}, {0x00003087, "yO"}, {0x00003088, "yo"}, {0x00003089, "ra"}, {0x0000308a, "ri"}, {0x0000308b, "ru"}, {0x0000308c, "re"}, {0x0000308d, "ro"}, {0x0000308e, "wA"}, {0x0000308f, "wa"}, {0x00003090, "wi"}, {0x00003091, "we"}, {0x00003092, "wo"}, {0x00003093, "n5"}, {0x00003094, "vu"}, {0x0000309b, "\"5"}, {0x0000309c, "05"}, {0x0000309d, "*5"}, {0x0000309e, "+5"}, {0x000030a1, "a6"}, {0x000030a2, "A6"}, {0x000030a3, "i6"}, {0x000030a4, "I6"}, {0x000030a5, "u6"}, {0x000030a6, "U6"}, {0x000030a7, "e6"}, {0x000030a8, "E6"}, {0x000030a9, "o6"}, {0x000030aa, "O6"}, {0x000030ab, "Ka"}, {0x000030ac, "Ga"}, {0x000030ad, "Ki"}, {0x000030ae, "Gi"}, {0x000030af, "Ku"}, {0x000030b0, "Gu"}, {0x000030b1, "Ke"}, {0x000030b2, "Ge"}, {0x000030b3, "Ko"}, {0x000030b4, "Go"}, {0x000030b5, "Sa"}, {0x000030b6, "Za"}, {0x000030b7, "Si"}, {0x000030b8, "Zi"}, {0x000030b9, "Su"}, {0x000030ba, "Zu"}, {0x000030bb, "Se"}, {0x000030bc, "Ze"}, {0x000030bd, "So"}, {0x000030be, "Zo"}, {0x000030bf, "Ta"}, {0x000030c0, "Da"}, {0x000030c1, "Ti"}, {0x000030c2, "Di"}, {0x000030c3, "TU"}, {0x000030c4, "Tu"}, {0x000030c5, "Du"}, {0x000030c6, "Te"}, {0x000030c7, "De"}, {0x000030c8, "To"}, {0x000030c9, "Do"}, {0x000030ca, "Na"}, {0x000030cb, "Ni"}, {0x000030cc, "Nu"}, {0x000030cd, "Ne"}, {0x000030ce, "No"}, {0x000030cf, "Ha"}, {0x000030d0, "Ba"}, {0x000030d1, "Pa"}, {0x000030d2, "Hi"}, {0x000030d3, "Bi"}, {0x000030d4, "Pi"}, {0x000030d5, "Hu"}, {0x000030d6, "Bu"}, {0x000030d7, "Pu"}, {0x000030d8, "He"}, {0x000030d9, "Be"}, {0x000030da, "Pe"}, {0x000030db, "Ho"}, {0x000030dc, "Bo"}, {0x000030dd, "Po"}, {0x000030de, "Ma"}, {0x000030df, "Mi"}, {0x000030e0, "Mu"}, {0x000030e1, "Me"}, {0x000030e2, "Mo"}, {0x000030e3, "YA"}, {0x000030e4, "Ya"}, {0x000030e5, "YU"}, {0x000030e6, "Yu"}, {0x000030e7, "YO"}, {0x000030e8, "Yo"}, {0x000030e9, "Ra"}, {0x000030ea, "Ri"}, {0x000030eb, "Ru"}, {0x000030ec, "Re"}, {0x000030ed, "Ro"}, {0x000030ee, "WA"}, {0x000030ef, "Wa"}, {0x000030f0, "Wi"}, {0x000030f1, "We"}, {0x000030f2, "Wo"}, {0x000030f3, "N6"}, {0x000030f4, "Vu"}, {0x000030f5, "KA"}, {0x000030f6, "KE"}, {0x000030f7, "Va"}, {0x000030f8, "Vi"}, {0x000030f9, "Ve"}, {0x000030fa, "Vo"}, {0x000030fb, ".6"}, {0x000030fc, "-6"}, {0x000030fd, "*6"}, {0x000030fe, "+6"}, {0x00003105, "b4"}, {0x00003106, "p4"}, {0x00003107, "m4"}, {0x00003108, "f4"}, {0x00003109, "d4"}, {0x0000310a, "t4"}, {0x0000310b, "n4"}, {0x0000310c, "l4"}, {0x0000310d, "g4"}, {0x0000310e, "k4"}, {0x0000310f, "h4"}, {0x00003110, "j4"}, {0x00003111, "q4"}, {0x00003112, "x4"}, {0x00003113, "zh"}, {0x00003114, "ch"}, {0x00003115, "sh"}, {0x00003116, "r4"}, {0x00003117, "z4"}, {0x00003118, "c4"}, {0x00003119, "s4"}, {0x0000311a, "a4"}, {0x0000311b, "o4"}, {0x0000311c, "e4"}, {0x0000311d, "eh4"}, {0x0000311e, "ai"}, {0x0000311f, "ei"}, {0x00003120, "au"}, {0x00003121, "ou"}, {0x00003122, "an"}, {0x00003123, "en"}, {0x00003124, "aN"}, {0x00003125, "eN"}, {0x00003126, "er"}, {0x00003127, "i4"}, {0x00003128, "u4"}, {0x00003129, "iu"}, {0x0000312a, "v4"}, {0x0000312b, "nG"}, {0x0000312c, "gn"}, {0x0000321c, "(JU)"}, {0x00003220, "1c"}, {0x00003221, "2c"}, {0x00003222, "3c"}, {0x00003223, "4c"}, {0x00003224, "5c"}, {0x00003225, "6c"}, {0x00003226, "7c"}, {0x00003227, "8c"}, {0x00003228, "9c"}, {0x00003229, "10c"}, {0x0000327f, "KSC"}, {0x000033c2, "am"}, {0x000033d8, "pm"}, {0x0000fb00, "ff"}, {0x0000fb01, "fi"}, {0x0000fb02, "fl"}, {0x0000fb03, "ffi"}, {0x0000fb04, "ffl"}, {0x0000fb05, "St"}, {0x0000fb06, "st"}, {0x0000fe7d, "3+;"}, {0x0000fe82, "aM."}, {0x0000fe84, "aH."}, {0x0000fe88, "ah."}, {0x0000fe8d, "a+-"}, {0x0000fe8e, "a+."}, {0x0000fe8f, "b+-"}, {0x0000fe90, "b+."}, {0x0000fe91, "b+,"}, {0x0000fe92, "b+;"}, {0x0000fe93, "tm-"}, {0x0000fe94, "tm."}, {0x0000fe95, "t+-"}, {0x0000fe96, "t+."}, {0x0000fe97, "t+,"}, {0x0000fe98, "t+;"}, {0x0000fe99, "tk-"}, {0x0000fe9a, "tk."}, {0x0000fe9b, "tk,"}, {0x0000fe9c, "tk;"}, {0x0000fe9d, "g+-"}, {0x0000fe9e, "g+."}, {0x0000fe9f, "g+,"}, {0x0000fea0, "g+;"}, {0x0000fea1, "hk-"}, {0x0000fea2, "hk."}, {0x0000fea3, "hk,"}, {0x0000fea4, "hk;"}, {0x0000fea5, "x+-"}, {0x0000fea6, "x+."}, {0x0000fea7, "x+,"}, {0x0000fea8, "x+;"}, {0x0000fea9, "d+-"}, {0x0000feaa, "d+."}, {0x0000feab, "dk-"}, {0x0000feac, "dk."}, {0x0000fead, "r+-"}, {0x0000feae, "r+."}, {0x0000feaf, "z+-"}, {0x0000feb0, "z+."}, {0x0000feb1, "s+-"}, {0x0000feb2, "s+."}, {0x0000feb3, "s+,"}, {0x0000feb4, "s+;"}, {0x0000feb5, "sn-"}, {0x0000feb6, "sn."}, {0x0000feb7, "sn,"}, {0x0000feb8, "sn;"}, {0x0000feb9, "c+-"}, {0x0000feba, "c+."}, {0x0000febb, "c+,"}, {0x0000febc, "c+;"}, {0x0000febd, "dd-"}, {0x0000febe, "dd."}, {0x0000febf, "dd,"}, {0x0000fec0, "dd;"}, {0x0000fec1, "tj-"}, {0x0000fec2, "tj."}, {0x0000fec3, "tj,"}, {0x0000fec4, "tj;"}, {0x0000fec5, "zH-"}, {0x0000fec6, "zH."}, {0x0000fec7, "zH,"}, {0x0000fec8, "zH;"}, {0x0000fec9, "e+-"}, {0x0000feca, "e+."}, {0x0000fecb, "e+,"}, {0x0000fecc, "e+;"}, {0x0000fecd, "i+-"}, {0x0000fece, "i+."}, {0x0000fecf, "i+,"}, {0x0000fed0, "i+;"}, {0x0000fed1, "f+-"}, {0x0000fed2, "f+."}, {0x0000fed3, "f+,"}, {0x0000fed4, "f+;"}, {0x0000fed5, "q+-"}, {0x0000fed6, "q+."}, {0x0000fed7, "q+,"}, {0x0000fed8, "q+;"}, {0x0000fed9, "k+-"}, {0x0000feda, "k+."}, {0x0000fedb, "k+,"}, {0x0000fedc, "k+;"}, {0x0000fedd, "l+-"}, {0x0000fede, "l+."}, {0x0000fedf, "l+,"}, {0x0000fee0, "l+;"}, {0x0000fee1, "m+-"}, {0x0000fee2, "m+."}, {0x0000fee3, "m+,"}, {0x0000fee4, "m+;"}, {0x0000fee5, "n+-"}, {0x0000fee6, "n+."}, {0x0000fee7, "n+,"}, {0x0000fee8, "n+;"}, {0x0000fee9, "h+-"}, {0x0000feea, "h+."}, {0x0000feeb, "h+,"}, {0x0000feec, "h+;"}, {0x0000feed, "w+-"}, {0x0000feee, "w+."}, {0x0000feef, "j+-"}, {0x0000fef0, "j+."}, {0x0000fef1, "y+-"}, {0x0000fef2, "y+."}, {0x0000fef3, "y+,"}, {0x0000fef4, "y+;"}, {0x0000fef5, "lM-"}, {0x0000fef6, "lM."}, {0x0000fef7, "lH-"}, {0x0000fef8, "lH."}, {0x0000fef9, "lh-"}, {0x0000fefa, "lh."}, {0x0000fefb, "la-"}, {0x0000fefc, "la."}, {0x0000feff, ""}, {0x0000ff61, "."}, {0x0000ff62, "\""}, {0x0000ff63, "\""}, {0x0000ff64, ","}, {-1, NULL} }; #define N_UNICODE_7B 2452 tucnak-4.04/src/chart.h0000644000175000017500000000302512125053311011701 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __CHART_H #define __CHART_H #include "subwin.h" #include "qsodb.h" #define CHART_H 0 struct chqso{ int time; int value; char *call; int pts; char *op; }; struct chband{ GPtrArray *chqsos; // of struct chqso int color; char *pcall; char *pwwlo; char *tname; char *pband; int mouse_value; char *filename; struct band *band; char *op; // foreign key to chqsos->op; }; int sw_chart_load_file(struct subwin *sw, char *filename, int quiet); int sw_chart_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_chart_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_chart_redraw(struct subwin *sw, struct band *band, int flags); void sw_chart_check_bounds(struct subwin *sw); void sw_chart_raise(struct subwin *sw); int save_chart_to_file(char *filename); int load_chart_from_file(char *filename); void sw_chart_free(struct subwin *sw); void sw_chart_free_band(struct chband *b); int sw_chart_recalc_extremes(struct subwin *sw, struct band *band); int chart_reload(void); void chart_clear_all(void); void sw_chart_delete_band(void *idx, void *unused); void menu_chart_add_contest(void *menudata, void *itdata); void menu_chart_add_files(void *menudata, void *itdata); #endif tucnak-4.04/src/kbd.c0000644000175000017500000006556412460207027011362 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "kbd.h" #include "language2.h" #include "main.h" #include "tsdl.h" #include "terminal.h" #define OUT_BUF_SIZE 16384 #define IN_BUF_SIZE 16 #define USE_TWIN_MOUSE 1 #define TW_BUTT_LEFT 1 #define TW_BUTT_MIDDLE 2 #define TW_BUTT_RIGHT 4 struct itrm { int std_in; int std_out; int sock_in; int sock_out; int ctl_in; int blocked; #ifndef Z_MSC_MINGW struct termios t; #endif int flags; char kqueue[IN_BUF_SIZE]; int qlen; int tm; char *ev_queue; int eqlen; void *mouse_h; char *orig_title; }; void free_trm(void *); void in_kbd(void *); void in_sock(void *); static struct itrm *ditrm = NULL; int is_blocked(void) { return ditrm && ditrm->blocked; } void free_all_itrms(void) { //progress(VTEXT(T_FREE_TERM)); if (ditrm) free_trm(ditrm); } static void write_ev_queue(struct itrm *itrm) { int l; if (!itrm->eqlen) zinternal("event queue empty"); if ((l = z_pipe_write(itrm->sock_out, itrm->ev_queue, itrm->eqlen > 128 ? 128 : itrm->eqlen)) == -1) { free_trm(itrm); return; } #ifdef Z_HAVE_SDL if (sdl){ MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate+=l; /* dbg("u %d\n", sdl->eventpipestate);*/ MUTEX_UNLOCK(sdl->eventpipestate); } #endif memmove(itrm->ev_queue, itrm->ev_queue + l, itrm->eqlen -= l); if (!itrm->eqlen) zselect_set(zsel, itrm->sock_out, (ZSELECT_HANDLER)zselect_get(zsel, itrm->sock_out, H_READ), NULL, (ZSELECT_HANDLER)zselect_get(zsel, itrm->sock_out, H_ERROR), zselect_get(zsel, itrm->sock_out, H_DATA) ); } static void queue_event(struct itrm *itrm, char *data, int len) { int w = 0; if (!len) return; if (!itrm->eqlen && can_write(itrm->sock_out)){ #ifdef Z_MSC_MINGW w = send(itrm->sock_out, data, len, 0); #else w = write(itrm->sock_out, data, len); #endif if (w <= 0) { /*free_trm(itrm);*/ zselect_bh_new(zsel, (void (*)(void *))free_trm, (void *)itrm); return; } } #ifdef Z_HAVE_SDL if (sdl){ MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate+=w; /* dbg("q %d\n", sdl->eventpipestate); */ MUTEX_UNLOCK(sdl->eventpipestate); } #endif if (w < len) { char *c; if (!(c = (char *)g_realloc(itrm->ev_queue, itrm->eqlen + len - w))) { free_trm(itrm); return; } itrm->ev_queue = c; memcpy(itrm->ev_queue + itrm->eqlen, data + w, len - w); itrm->eqlen += len - w; zselect_set(zsel, itrm->sock_out, (void (*)(void *))zselect_get(zsel, itrm->sock_out, H_READ), (void (*)(void *))write_ev_queue, (void (*)(void *))free_trm, itrm); } } void kbd_ctrl_c(void) { /*struct event ev = { EV_KBD, KBD_CTRL_C, 0, 0 };*/ struct event ev = { EV_KBD, 'C', KBD_CTRL, 0 }; if (ditrm) queue_event(ditrm, (char *)&ev, sizeof(struct event)); } /* char *init_seq = "\033[?1000h\033[?47h\0337"; char *term_seq = "\033[2J\033[?1000l\033[?47l\0338\b \b"; */ static char *init_seq = "\033)0\0337"; static char *init_seq_x_mouse = "\033[?1000h"; static char *init_seq_tw_mouse = "\033[?9h"; static char *term_seq = "\033[2J\0338\r \b"; static char *term_seq_x_mouse = "\033[?1000l"; static char *term_seq_tw_mouse = "\033[?9l"; /*char *term_seq = "\033[2J\033[?1000l\0338\b \b";*/ static void send_init_sequence(int h,int flags) { hard_write(h, init_seq, strlen(init_seq)); if (flags & USE_TWIN_MOUSE) { hard_write(h, init_seq_tw_mouse, strlen(init_seq_tw_mouse)); } else { hard_write(h, init_seq_x_mouse, strlen(init_seq_x_mouse)); } } static void send_term_sequence(int h,int flags) { hard_write(h, term_seq, strlen(term_seq)); if (flags & USE_TWIN_MOUSE) { hard_write(h, term_seq_tw_mouse, strlen(term_seq_tw_mouse)); } else { hard_write(h, term_seq_x_mouse, strlen(term_seq_x_mouse)); } } void resize_terminal(void *arg) { struct event ev = { EV_RESIZE, 0, 0, GPOINTER_TO_INT(arg) }; int x, y; #ifdef Z_HAVE_SDL if (sdl){ if (sdl_get_terminal_size(ditrm->std_out, &x, &y)) return; } else #endif { #ifndef Z_MSC_MINGW if (term_get_terminal_size(ditrm->std_out, &x, &y)) return; #endif } ev.x = x; ev.y = y; queue_event(ditrm, (char *)&ev, sizeof(struct event)); } #ifndef Z_MSC_MINGW static int setraw(int fd, struct termios *p) { struct termios t; memset(&t, 0, sizeof(struct termios)); if (tcgetattr(fd, &t)) return -1; if (p) memcpy(p, &t, sizeof(struct termios)); cfmakeraw(&t); t.c_lflag |= ISIG; #ifdef TOSTOP t.c_lflag |= TOSTOP; #endif t.c_oflag |= OPOST; if (tcsetattr(fd, TCSANOW, &t)) return -1; return 0; } #endif void handle_trm(int std_in, int std_out, int sock_in, int sock_out, int ctl_in) { int x, y; struct itrm *itrm; struct event ev = { EV_INIT, 80, 24, 0 }; char *ts; int xwin, ret; #ifdef Z_HAVE_SDL if (sdl){ ret=sdl_get_terminal_size(ctl_in, &x, &y); } else #endif { #ifndef Z_MSC_MINGW ret=term_get_terminal_size(ctl_in, &x, &y); #endif } if (ret){ error("ERROR: could not get terminal size"); return; } if (!(itrm = (struct itrm*)g_malloc(sizeof(struct itrm)))) return; ditrm = itrm; itrm->std_in = std_in; itrm->std_out = std_out; itrm->sock_in = sock_in; itrm->sock_out = sock_out; itrm->ctl_in = ctl_in; itrm->blocked = 0; itrm->qlen = 0; itrm->tm = -1; itrm->ev_queue = NULL; itrm->eqlen = 0; if (ctl_in >= 0) { #ifndef Z_MSC_MINGW setraw(ctl_in, &itrm->t); zselect_set(zsel, std_in, in_kbd, NULL, free_trm, itrm); #endif } // condidion always false // if (sock_in != std_out) zselect_set(zsel, sock_in, in_sock, NULL, free_trm, itrm); ev.x = x; ev.y = y; #ifndef Z_MSC_MINGW handle_terminal_resize(ctl_in, resize_terminal); #endif queue_event(itrm, (char *)&ev, sizeof(struct event)); xwin = is_xterm() * ENV_XWIN + can_twterm() * ENV_TWIN + (!!getenv("STY")) * ENV_SCREEN; itrm->flags = 0; if (!(ts = getenv("TERM"))) ts = ""; if ((xwin & ENV_TWIN) && !strcmp(ts,"linux")) itrm->flags |= USE_TWIN_MOUSE; #ifdef Z_HAVE_SDL if (!sdl){ itrm->mouse_h = handle_mouse(0, (void (*)(void *, char *, int))queue_event, itrm); } else #endif { itrm->mouse_h = NULL; } itrm->orig_title = get_window_title(); if (std_out>=0){ save_screen(); send_init_sequence(std_out,itrm->flags); } set_window_title("Tucnak "PACKAGE_VERSION); } #ifndef Z_MSC_MINGW void unblock_itrm_x(void *arg) { close_handle(arg); if (!ditrm) return; unblock_itrm(0); resize_terminal(NULL); } int unblock_itrm(int fd) { struct itrm *itrm = ditrm; if (!itrm) return -1; /*if (ditrm->sock_out != fd) { zinternal("unblock_itrm: bad fd: %d", fd); return -1; }*/ if (itrm->ctl_in >= 0 && setraw(itrm->ctl_in, NULL)) return -1; itrm->blocked = 0; send_init_sequence(itrm->std_out,itrm->flags); zselect_set(zsel, itrm->std_in, in_kbd, NULL, free_trm, itrm); handle_terminal_resize(itrm->ctl_in, resize_terminal); //unblock_stdin(); return 0; } void block_itrm(int fd) { struct itrm *itrm = ditrm; if (!itrm) return; /*if (ditrm->sock_out != fd) { zinternal("block_itrm: bad fd: %d", fd); return; }*/ itrm->blocked = 1; //block_stdin(); unhandle_terminal_resize(itrm->ctl_in); send_term_sequence(itrm->std_out,itrm->flags); tcsetattr(itrm->ctl_in, TCSANOW, &itrm->t); zselect_set(zsel, itrm->std_in, NULL, NULL, free_trm, itrm); } #endif void free_trm(void *arg) { struct itrm *itrm; itrm=(struct itrm*)arg; if (!itrm) return; set_window_title(itrm->orig_title); if (itrm->orig_title) g_free(itrm->orig_title), itrm->orig_title = NULL; #ifndef Z_MSC_MINGW unhandle_terminal_resize(itrm->ctl_in); #endif if (itrm->std_out>=0) send_term_sequence(itrm->std_out,itrm->flags); #ifndef Z_MSC_MINGW tcsetattr(itrm->ctl_in, TCSANOW, &itrm->t); #endif if (itrm->std_out>=0) restore_screen(); if (itrm->mouse_h) unhandle_mouse(itrm->mouse_h); if (itrm->std_in>=0) zselect_set(zsel, itrm->std_in, NULL, NULL, NULL, NULL); if (itrm->sock_in>=0) zselect_set(zsel, itrm->sock_in, NULL, NULL, NULL, NULL); if (itrm->std_out>=0) zselect_set(zsel, itrm->std_out, NULL, NULL, NULL, NULL); if (itrm->sock_out>=0) zselect_set(zsel, itrm->sock_out, NULL, NULL, NULL, NULL); if (itrm->tm != -1) zselect_timer_kill(zsel, itrm->tm); g_free(itrm->ev_queue); g_free(itrm); if (itrm == ditrm) ditrm = NULL; itrm=NULL; } #ifndef Z_MSC_MINGW void itrm_safe_abort(void){ struct itrm *itrm = ditrm; if (!itrm) return; tcsetattr(itrm->ctl_in, TCSANOW, &itrm->t); } #endif static void resize_terminal_x(char *text) { int x, y; char *p; if (!(p = strchr(text, ','))) return; *p++ = 0; x = atoi(text); y = atoi(p); resize_window(x, y); resize_terminal(NULL); } void dispatch_special(char *text) { switch (text[0]) { case TERM_FN_TITLE: set_window_title(text + 1); break; case TERM_FN_RESIZE: resize_terminal_x(text + 1); break; } } //static char buf[OUT_BUF_SIZE]; /*#define RD ({ char cc; if (p < c) cc = buf[p++]; else if ((dl = hard_read(itrm->sock_in, &cc, 1)) <= 0) {debug("%d %d", dl, errno);goto fr;} cc; })*/ /*udefine RD ({ char cc; if (p < c) cc = buf[p++]; else if ((hard_read(itrm->sock_in, &cc, 1)) <= 0) goto fr; cc; })*/ #define RD(xx) { char cc; if (p < c) cc = buf[p++]; else if ((hard_read(itrm->sock_in, &cc, 1)) <= 0) goto fr; xx = cc; } #if 0 // seems uncalled void in_sock(void *arg) { char ch; int fg; int c, i, p; struct itrm *itrm; GString *path, *delete1; itrm=(struct itrm *)arg; if ((c = z_pipe_read(itrm->sock_in, buf, OUT_BUF_SIZE)) <= 0) { fr: free_trm(itrm); return; } qwerty: for (i = 0; i < c; i++) if (!buf[i]) goto ex; if (!is_blocked()) { want_draw(); hard_write(itrm->std_out, buf, c); done_draw(); } return; ex: if (!is_blocked()) { want_draw(); hard_write(itrm->std_out, buf, i); done_draw(); } i++; memmove(buf, buf + i, OUT_BUF_SIZE - i); c -= i; p = 0; /*fg = RD;*/ RD(fg); path = g_string_new(""); delete1 = g_string_new(""); while (1) { RD(ch); if (!ch) break; g_string_append_c(path, ch); } while (1) { RD(ch); if (!ch) break; g_string_append_c(delete1, ch); } if (!*path->str) { dispatch_special(delete1->str); } else { int blockh; char *param; if (is_blocked() && fg) { if (*delete1->str) unlink(delete1->str); goto to_je_ale_hnus; } if (!(param = g_malloc(strlen(path->str) + strlen(delete1->str) + 3))) goto to_je_ale_hnus; param[0] = fg; strcpy(param + 1, path->str); strcpy(param + 1 + strlen(path->str) + 1, delete1->str); if (fg == 1) block_itrm(itrm->ctl_in); if ((blockh = start_thread((void (*)(void *, int))exec_thread, param, strlen(path->str) + strlen(delete1->str) + 3)) == -1) { if (fg == 1) unblock_itrm(itrm->ctl_in); g_free(param); goto to_je_ale_hnus; } g_free(param); if (fg == 1) { zselect_set(zsel, blockh, unblock_itrm_x, NULL, unblock_itrm_x, GINT_TO_POINTER(blockh)); /*block_itrm(itrm->ctl_in);*/ } else { zselect_set(zsel, blockh, close_handle, NULL, close_handle, GINT_TO_POINTER(blockh)); } } to_je_ale_hnus: g_string_free(path, TRUE); g_string_free(delete1, TRUE); memmove(buf, buf + p, OUT_BUF_SIZE - p); c -= p; goto qwerty; } #endif int process_queue(struct itrm *); static void kbd_timeout(struct itrm *itrm) { struct event ev = {EV_KBD, KBD_ESC, 0, 0}; itrm->tm = -1; /*if (can_read(itrm->std_in)) { in_kbd(itrm); return; }*/ if (!itrm->qlen) { zinternal("timeout on empty queue"); return; } queue_event(itrm, (char *)&ev, sizeof(struct event)); if (--itrm->qlen) memmove(itrm->kqueue, itrm->kqueue+1, itrm->qlen); while (process_queue(itrm)) ; } static int get_esc_code(char *str, int len, char *code, int *num, int *el) { int pos; *num = 0; for (pos = 2; pos < len; pos++) { if (str[pos] < '0' || str[pos] > '9' || pos > 7) { *el = pos + 1; *code = str[pos]; return 0; } *num = *num * 10 + str[pos] - '0'; } return -1; } struct key { int x, y; }; static struct key os2xtd[256] = { /* 0 */ {0,0},{0,0},{' ',KBD_CTRL},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{KBD_BS,KBD_ALT},{0,0}, /* 16 */ {'Q',KBD_ALT},{'W',KBD_ALT},{'E',KBD_ALT},{'R',KBD_ALT},{'T',KBD_ALT},{'Y',KBD_ALT},{'U',KBD_ALT},{'I',KBD_ALT}, /* 24 */ {'O',KBD_ALT},{'P',KBD_ALT},{'[',KBD_ALT},{']',KBD_ALT},{KBD_ENTER,KBD_ALT},{0,0},{'A',KBD_ALT},{'S',KBD_ALT}, /* 32 */ {'D',KBD_ALT},{'F',KBD_ALT},{'G',KBD_ALT},{'H',KBD_ALT},{'J',KBD_ALT},{'K',KBD_ALT},{'L',KBD_ALT},{';',KBD_ALT}, /* 40 */ {'\'',KBD_ALT},{'`',KBD_ALT},{0,0},{'\\',KBD_ALT},{'Z',KBD_ALT},{'X',KBD_ALT},{'C',KBD_ALT},{'V',KBD_ALT}, /* 48 */ {'B',KBD_ALT},{'N',KBD_ALT},{'M',KBD_ALT},{',',KBD_ALT},{'.',KBD_ALT},{'/',KBD_ALT},{0,0},{'*',KBD_ALT}, /* 56 */ {0,0},{' ',KBD_ALT},{0,0},{KBD_F1,0},{KBD_F2,0},{KBD_F3,0},{KBD_F4,0},{KBD_F5,0}, /* 64 */ {KBD_F6,0},{KBD_F7,0},{KBD_F8,0},{KBD_F9,0},{KBD_F10,0},{0,0},{0,0},{KBD_HOME,0}, /* 72 */ {KBD_UP,0},{KBD_PGUP,0},{'-',KBD_ALT},{KBD_LEFT,0},{'5',0},{KBD_RIGHT,0},{'+',KBD_ALT},{KBD_END,0}, /* 80 */ {KBD_DOWN,0},{KBD_PGDN,0},{KBD_INS,0},{KBD_DEL,0},{0,0},{0,0},{0,0},{0,0}, /* 88 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{KBD_F1,KBD_CTRL},{KBD_F2,KBD_CTRL}, /* 96 */ {KBD_F3,KBD_CTRL},{KBD_F4,KBD_CTRL},{KBD_F5,KBD_CTRL},{KBD_F6,KBD_CTRL},{KBD_F7,KBD_CTRL},{KBD_F8,KBD_CTRL},{KBD_F9,KBD_CTRL},{KBD_F10,KBD_CTRL}, /* 104 */ {KBD_F1,KBD_ALT},{KBD_F2,KBD_ALT},{KBD_F3,KBD_ALT},{KBD_F4,KBD_ALT},{KBD_F5,KBD_ALT},{KBD_F6,KBD_ALT},{KBD_F7,KBD_ALT},{KBD_F8,KBD_ALT}, /* 112 */ {KBD_F9,KBD_ALT},{KBD_F10,KBD_ALT},{0,0},{KBD_LEFT,KBD_CTRL},{KBD_RIGHT,KBD_CTRL},{KBD_END,KBD_CTRL},{KBD_PGDN,KBD_CTRL},{KBD_HOME,KBD_CTRL}, /* 120 */ {'1',KBD_ALT},{'2',KBD_ALT},{'3',KBD_ALT},{'4',KBD_ALT},{'5',KBD_ALT},{'6',KBD_ALT},{'7',KBD_ALT},{'8',KBD_ALT}, /* 128 */ {'9',KBD_ALT},{'0',KBD_ALT},{'-',KBD_ALT},{'=',KBD_ALT},{KBD_PGUP,KBD_CTRL},{KBD_F11,0},{KBD_F12,0},{0,0}, /* 136 */ {0,0},{KBD_F11,KBD_CTRL},{KBD_F12,KBD_CTRL},{KBD_F11,KBD_ALT},{KBD_F12,KBD_ALT},{KBD_UP,KBD_CTRL},{'-',KBD_CTRL},{'5',KBD_CTRL}, /* 144 */ {'+',KBD_CTRL},{KBD_DOWN,KBD_CTRL},{KBD_INS,KBD_CTRL},{KBD_DEL,KBD_CTRL},{KBD_TAB,KBD_CTRL},{0,0},{0,0},{KBD_HOME,KBD_ALT}, /* 152 */ {KBD_UP,KBD_ALT},{KBD_PGUP,KBD_ALT},{0,0},{KBD_LEFT,KBD_ALT},{0,0},{KBD_RIGHT,KBD_ALT},{0,0},{KBD_END,KBD_ALT}, /* 160 */ {KBD_DOWN,KBD_ALT},{KBD_PGDN,KBD_ALT},{KBD_INS,KBD_ALT},{KBD_DEL,KBD_ALT},{0,0},{KBD_TAB,KBD_ALT},{KBD_ENTER,KBD_ALT},{0,0}, /* 168 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 176 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 192 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 208 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 224 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 240 */ {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 256 */ }; static int xterm_button = -1; static int xterm_mouse_x = -1; static int xterm_mouse_y = -1; int process_queue(struct itrm *itrm) { struct event ev = {EV_KBD, -1, 0, 0}; int el = 0; if (!itrm->qlen) goto end; if (itrm->kqueue[0] == '\033') { if (itrm->qlen < 2) goto ret; if (itrm->kqueue[1] == '[' || itrm->kqueue[1] == 'O') { char c; int v; if (get_esc_code(itrm->kqueue, itrm->qlen, &c, &v, &el)) { if (itrm->qlen < 4 || itrm->kqueue[2] != '[') goto ret; if (itrm->kqueue[2] != '[') goto ret; if (itrm->kqueue[3] < 'A' || itrm->kqueue[3] > 'L') goto ret; ev.x = KBD_F1 + itrm->kqueue[3] - 'A'; el = 4; } else switch (c) { case 'A': ev.x = KBD_UP; break; case 'B': ev.x = KBD_DOWN; break; case 'C': ev.x = KBD_RIGHT; break; case 'D': ev.x = KBD_LEFT; break; case 'F': case 'e': ev.x = KBD_END; break; case 'H': case 0: ev.x = KBD_HOME; break; case 'I': ev.x = KBD_PGUP; break; case 'G': ev.x = KBD_PGDN; break; /* BSD cons25 */ /* case 'M': ev.x = KBD_F1; break;*/ case 'N': ev.x = KBD_F2; break; case 'O': ev.x = KBD_F3; break; /* case 'P': ev.x = KBD_F4; break;*/ /* case 'Q': ev.x = KBD_F5; break;*/ /* case 'R': ev.x = KBD_F6; break;*/ /* case 'S': ev.x = KBD_F7; break;*/ case 'T': ev.x = KBD_F8; break; case 'U': ev.x = KBD_F9; break; case 'V': ev.x = KBD_F10; break; case 'W': ev.x = KBD_F11; break; case 'X': ev.x = KBD_F12; break; case 'z': switch (v) { case 247: ev.x = KBD_INS; break; case 214: ev.x = KBD_HOME; break; case 220: ev.x = KBD_END; break; case 216: ev.x = KBD_PGUP; break; case 222: ev.x = KBD_PGDN; break; case 249: ev.x = KBD_DEL; break; } break; case '~': switch (v) { case 1: ev.x = KBD_HOME; break; case 2: ev.x = KBD_INS; break; case 3: ev.x = KBD_DEL; break; case 4: ev.x = KBD_END; break; case 5: ev.x = KBD_PGUP; break; case 6: ev.x = KBD_PGDN; break; case 7: ev.x = KBD_HOME; break; case 8: ev.x = KBD_END; break; case 11: ev.x = KBD_F1; break; case 12: ev.x = KBD_F2; break; case 13: ev.x = KBD_F3; break; case 14: ev.x = KBD_F4; break; case 15: ev.x = KBD_F5; break; case 17: ev.x = KBD_F6; break; case 18: ev.x = KBD_F7; break; case 19: ev.x = KBD_F8; break; case 20: ev.x = KBD_F9; break; case 21: ev.x = KBD_F10; break; case 23: ev.x = KBD_F11; break; case 24: ev.x = KBD_F12; break; } break; /* case 'R': resize_terminal (); break ;*/ case 'M': if (itrm->qlen - el < 3) goto ret; if (v == 5) { if (xterm_button == -1) xterm_button = 0; /* */ if (itrm->qlen - el < 5) goto ret; ev.x = (char)(itrm->kqueue[el+1]) - ' ' - 1 + ((int)((char)(itrm->kqueue[el+2]) - ' ' - 1) << 7); if ( ev.x & (1 << 13)) ev.x = 0; /* ev.x |= ~0 << 14; */ ev.y = (char)(itrm->kqueue[el+3]) - ' ' - 1 + ((int)((char)(itrm->kqueue[el+4]) - ' ' - 1) << 7); if ( ev.y & (1 << 13)) ev.y = 0; /* ev.y |= ~0 << 14; */ //dbg("process_queue: %d\n", itrm->kqueue[el]); switch ((itrm->kqueue[el] - ' ') ^ xterm_button) { /* Every event changhes only one bit */ case TW_BUTT_LEFT: ev.b = B_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? B_UP : B_DOWN ); break; case TW_BUTT_MIDDLE: ev.b = B_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? B_UP : B_DOWN ); break; case TW_BUTT_RIGHT: ev.b = B_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? B_UP : B_DOWN ); break; case 0: ev.b = B_DRAG; /* default : Twin protocol error */ } xterm_button = itrm->kqueue[el] - ' '; el += 5; } else { //dbg("process_queue: %d\n", (unsigned char)itrm->kqueue[el+1]); dbg("process_queue: %02x %02x %02x\n", (unsigned char)itrm->kqueue[el], (unsigned char)itrm->kqueue[el+1], (unsigned char)itrm->kqueue[el+3]); ev.x = (unsigned char)(itrm->kqueue[el+1]) - ' ' - 1; ev.y = (unsigned char)(itrm->kqueue[el+2]) - ' ' - 1; /* ev.b = B_DOWN; if (itrm->kqueue[el] & 4) ev.b = B_DRAG; ev.b |= (itrm->kqueue[el] & BM_BUTT) | B_DOWN; if (itrm->kqueue[el] & 64) ev.b |= 4; if (ev.b == 3) { ev.b = B_UP; if (xterm_button != -1) ev.b |= xterm_button; } xterm_button = -1; if ((ev.b & BM_ACT) == B_DOWN) xterm_button = ev.b & BM_BUTT;*/ ev.b = 0; switch(itrm->kqueue[el]){ case 0x20: ev.b = B_LEFT | B_DOWN; xterm_button = B_LEFT; break; case 0x21: ev.b = B_MIDDLE | B_DOWN; xterm_button = B_MIDDLE; break; case 0x22: ev.b = B_RIGHT | B_DOWN; xterm_button = B_RIGHT; break; case 0x23: ev.b = B_UP; if (xterm_button != -1) ev.b |= xterm_button; if (ev.x == xterm_mouse_x && ev.y == xterm_mouse_y) ev.b |= B_CLICK; xterm_button = -1; break; case 0x60: ev.b = B_WHUP | B_DOWN; xterm_button = B_WHUP; break; case 0x61: ev.b = B_WHDOWN | B_DOWN; xterm_button = B_WHDOWN; break; } xterm_mouse_x = ev.x; xterm_mouse_y = ev.y; el += 3; } ev.ev = EV_MOUSE; break; case 'P': ev.x = KBD_F1; break; case 'Q': ev.x = KBD_F2; break; case 'R': ev.x = KBD_F3; break; case 'S': ev.x = KBD_F4; break; case '[': if (itrm->qlen>=4){ el=4; switch(itrm->kqueue[3]){ case 'A': ev.x = KBD_F1; goto upbrk; case 'B': ev.x = KBD_F2; goto upbrk; case 'C': ev.x = KBD_F3; goto upbrk; case 'D': ev.x = KBD_F4; goto upbrk; case 'E': ev.x = KBD_F5; goto upbrk; } } upbrk: break; } } else { el = 2; if (itrm->kqueue[1] >= ' ') { ev.x = itrm->kqueue[1]; ev.y = KBD_ALT; goto l2; } if (itrm->kqueue[1] == '\033') { if (itrm->qlen >= 3 && (itrm->kqueue[2] == '[' || itrm->kqueue[2] == 'O')) el = 1; ev.x = KBD_ESC; goto l2; } } goto l1; } else if (itrm->kqueue[0] == 0) { if (itrm->qlen < 2) goto ret; if (!(ev.x = os2xtd[(unsigned int)itrm->kqueue[1]].x)) ev.x = -1; ev.y = os2xtd[(unsigned int)itrm->kqueue[1]].y; el = 2; /*printf("%02x - %02x %02x\n", (int)itrm->kqueue[1], ev.x, ev.y);*/ goto l1; } el = 1; ev.x = itrm->kqueue[0]; l2: /*if (ev.x == 1) ev.x = KBD_HOME; if (ev.x == 2) ev.x = KBD_PGUP; if (ev.x == 4) ev.x = KBD_DEL; if (ev.x == 5) ev.x = KBD_END; if (ev.x == 6) ev.x = KBD_PGDN;*/ if (ev.x == 8) ev.x = KBD_BS; if (ev.x == 9) ev.x = KBD_TAB; if (ev.x == 10) ev.x = KBD_ENTER, ev.y = KBD_CTRL; if (ev.x == 13) ev.x = KBD_ENTER; if (ev.x == 127) ev.x = KBD_BS; if (ev.x < ' ') { ev.x += 'A' - 1; ev.y = KBD_CTRL; } l1: if (itrm->qlen < el) { zinternal("event queue underflow"); itrm->qlen = el; } if (ev.x != -1) { queue_event(itrm, (char *)&ev, sizeof(struct event)); memmove(itrm->kqueue, itrm->kqueue + el, itrm->qlen -= el); } else { /*printf("%d %d\n", itrm->qlen, el);fflush(stdout);*/ memmove(itrm->kqueue, itrm->kqueue + el, itrm->qlen -= el); } end: if (itrm->qlen < IN_BUF_SIZE) zselect_set(zsel, itrm->std_in, in_kbd, NULL, free_trm, itrm); return el; ret: itrm->tm = zselect_timer_new(zsel, ESC_TIMEOUT, (void (*)(void *))kbd_timeout, itrm); return 0; } void in_kbd(void *arg) { #ifdef Z_MSC_MINGW zinternal("in_kbd unimplemented"); #else int r; struct itrm *itrm; itrm=(struct itrm *)arg; if (itrm->tm != -1) zselect_timer_kill(zsel, itrm->tm), itrm->tm = -1; if (itrm->qlen >= IN_BUF_SIZE) { zselect_set(zsel, itrm->std_in, NULL, NULL, free_trm, itrm); while (process_queue(itrm)); return; } if ((r = read(itrm->std_in, itrm->kqueue + itrm->qlen, IN_BUF_SIZE - itrm->qlen)) <= 0) { free_trm(itrm); return; } if ((itrm->qlen += r) > IN_BUF_SIZE) { error("ERROR: too many bytes read"); itrm->qlen = IN_BUF_SIZE; } while (process_queue(itrm)); #endif } tucnak-4.04/src/header.h0000644000175000017500000002623312360775351012056 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2011 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __HEADER_H #define __HEADER_H #define VOIPx #ifdef _MSC_VER #include "msvc.h" #endif #ifdef __MINGW32__ #include "mingw.h" #endif #ifdef ANDROID #include "android.h" #endif #ifdef HAVE_CONFIG_H #include "../config.h" #endif // must be before SDL, android port undefs HAVE_ICONV_H #ifdef HAVE_ICONV_H #include #endif #include #include #include #include #if defined(Z_HAVE_SDL) && defined(HAVE_LIBFFTW3) #define USE_FFT #define USE_SDR #endif #ifndef __USE_POSIX #define __USE_POSIX #endif #ifndef __USE_POSIX2 #define __USE_POSIX2 #endif #ifndef __USE_MISC #define __USE_MISC #endif #ifndef __USE_BSD #define __USE_BSD #endif #ifdef HAVE_MATH_H #define _USE_MATH_DEFINES // for MSVC #include #endif #ifdef HAVE_SYS_IOCTL_H #include #endif #include #include #include #ifdef HAVE_UNISTD_H #include #endif #include #include #include #ifdef HAVE_LIMITS_H #include #endif //#include not in msvc10 #include #include #include "os_dep.h" #ifdef TIME_WITH_SYS_TIME #ifdef HAVE_SYS_TIME_H #include #endif #ifdef HAVE_TIME_H #include #endif #else #if defined(TM_IN_SYS_TIME) && defined(HAVE_SYS_TIME_H) #include #elif defined(HAVE_TIME_H) #include #endif #endif #include #ifdef HAVE_FCNTL_H #include #endif #ifdef HAVE_DIRENT_H #include #endif #include #ifdef HAVE_SYS_WAIT_H #include #endif #ifdef HAVE_SYS_SELECT_H #include #endif #ifdef HAVE_NETINET_IN_SYSTM_H #include #else #ifdef HAVE_NETINET_IN_SYSTEM_H #include #endif #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WINSOCK2_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #ifdef HAVE_NETINET_IP_H #include #endif #ifdef HAVE_UTIME_H #include #endif #ifdef HAVE_PWD_H #include #endif #ifdef HAVE_GRP_H #include #endif #ifdef HAVE_REGEX_H #include #endif #ifdef HAVE_PTY_H #include #endif #ifdef __CYGWIN__ #include #endif #ifdef HAVE_DLFCN_H #include #endif /*#ifdef Z_HAVE_SDL #include #include #include #endif*/ #ifdef HAVE_SYS_SOUNDCARD_H #include #define HAVE_OSS #endif #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif #ifdef HAVE_SNDFILE #include #endif #ifdef HAVE_LINUX_PPDEV_H # include # include #endif #ifdef HAVE_ALSA #define ALSA_PCM_NEW_HW_PARAMS_API #define ALSA_PCM_NEW_SW_PARAMS_API #include #endif #ifdef HAVE_HAMLIB #include #include #endif #ifdef HAVE_LIBFFTW3 #include #endif #ifdef __GLIBC__ #include #endif #ifndef HAVE_UINT32_T #if SIZEOF_CHAR == 4 typedef unsigned char uint32_t; #elif SIZEOF_SHORT == 4 typedef unsigned short uint32_t; #elif SIZEOF_INT == 4 typedef unsigned int uint32_t; #elif SIZEOF_LONG == 4 typedef unsigned long uint32_t; #elif defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 4 typedef unsigned long long uint32_t; #else #error You have no 32-bit integer type. Get in touch with reality. #endif #endif #ifdef HAVE_LONG_LONG #define longlong long long #else #define longlong long #endif /* integer type same size as void * */ /*#undef vint #if SIZEOF_SHORT == SIZEOF_VOID_P typedef short vint; #elif SIZEOF_INT == SIZEOF_VOID_P typedef int vint; #elif SIZEOF_LONG == SIZEOF_VOID_P typedef long vint; #elif defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == SIZEOF_VOID_P typedef long long vint; #else #error You have no integer type of size void * #endif*/ #ifdef TERMIOS_H #include #endif #ifdef Z_HAVE_LIBFTDI #include #endif /* zlib.h */ #include #include #include #include #include #define VERSION_STRING VERSION #define DEBUG #define MAX_HISTORY_ITEMS 256 #define MENU_HOTKEY_SPACE 2 #define MODE_MASK 0x07 #define DOUBLEHT_MASK 0x10 #define DOUBLEHB_MASK 0x20 #define COL(x) ((x)*0x100) #define COLOR_MENU1 COL(070) #define COLOR_MENU_FRAME COL(070) #define COLOR_MENU_SELECTED COL(007) #define COLOR_MENU_HOTKEY COL(007) #define COLOR_MAINMENU COL(070) #define COLOR_MAINMENU_SELECTED COL(007) #define COLOR_MAINMENU_HOTKEY COL(070) #define COLOR_DIALOG COL(070) #define COLOR_DIALOG_FRAME COL(070) #define COLOR_DIALOG_TITLE COL(007) #define COLOR_DIALOG_TEXT COL(070) #define COLOR_DIALOG_CHECKBOX COL(070) #define COLOR_DIALOG_CHECKBOX_TEXT COL(070) #define COLOR_DIALOG_BUTTON COL(070) #define COLOR_DIALOG_BUTTON_SELECTED COL(0107) #define COLOR_DIALOG_FIELD COL(007) #define COLOR_DIALOG_FIELD_TEXT COL(007) #define SCROLL_ITEMS 2 #define DIALOG_LEFT_BORDER 3 #define DIALOG_TOP_BORDER 1 #define DIALOG_LEFT_INNER_BORDER 2 #define DIALOG_TOP_INNER_BORDER 0 #define DIALOG_FRAME 2 #define DIALOG_LB (DIALOG_LEFT_BORDER + DIALOG_LEFT_INNER_BORDER + 1) #define DIALOG_TB (DIALOG_TOP_BORDER + DIALOG_TOP_INNER_BORDER + 1) #define COL_BG COL(0x07) #define COL_NORM COL(0x07) #define COL_INV COL(0x38) #define COL_DARKRED COL(0x01) #define COL_DARKGREEN COL(0x02) #define COL_DARKYELLOW COL(0x03) #define COL_DARKBLUE COL(0x04) #define COL_DARKMAGENTA COL(0x05) #define COL_DARKCYAN COL(0x06) #define COL_GREY COL(0x07) #define COL_DARKGREY COL(0x40) #define COL_RED COL(0x41) #define COL_GREEN COL(0x42) #define COL_YELLOW COL(0x43) #define COL_BLUE COL(0x44) #define COL_MAGENTA COL(0x45) #define COL_CYAN COL(0x46) #define COL_WHITE COL(0x47) #define ESC_TIMEOUT 200 #define RESOURCE_INFO_REFRESH 300 #define NET_PORT 55555 #define MAX_INTERFACES 16 /* msec */ #define UDP_ANNOUNCE 10000 #define CONNECTION_TIMEOUT 30000 #define SEND_ACK_TIMEOUT 10000 #define ACK_TIMEOUT 20000 #define REMOVE_TIMEOUT 10000 #define LONG_TIMEOUT 20000000 #define DELAY_AFTER_REPLICATION 1000 #define DELAY_AFTER_UPDATE_ROTAR 500 /* sec */ #define NET_GLOBAL_EXPIRE 60 #define NET_MAX_SKEW_POS 120 #define NET_MAX_SKEW_NEG 60 #define IL_HIST_LEN 30 #define MAX_CQ 6 #define QSONR_WIDTH 20 #define QSONR_HEIGHT 7 #define BAND_WIDTH 16 #define ORIG_Y 1 #ifdef __CYGWIN__ /* cfmakeraw is missing in cygwin. If fails in future versions of cywin, remove it */ void cfmakeraw (struct termios *); #endif /* for BSD */ #ifndef SOUND_MIXER_LINE #define SOUND_MIXER_LINE 6 #endif #ifndef SOUND_MIXER_MIC #define SOUND_MIXER_MIC 7 #endif /* error.c */ #include void check_memory_leaks(void); void error(char *, ...); void init_debug(void); void free_debug(void); void sock_debug(int sock, char *m, ...); void dbg_str_hash(GHashTable *hash); extern int errline; extern char *errfile; #ifdef LEAK_DEBUG extern long mem_amount; extern long last_mem_amount; #ifndef LEAK_DEBUG_LIST struct alloc_header { int size; }; #else #define MCHK_LEAD 8 #define MCHK_TRAIL 8 #define MCHK_PATTERN ((char)0xee) struct alloc_header { struct alloc_header *next; struct alloc_header *prev; int size; int line; char *file; char *comment; }; #endif #define L_D_S ((sizeof(struct alloc_header) + MCHK_LEAD + 7) & ~7) #endif #ifdef LEAK_DEBUG void set_mem_comment(void *, char *, int); void *debug_g_new0(char *, int, size_t); void *debug_g_new(char *, int, size_t); gchar *debug_g_strdup(char *, int, const gchar *); gchar *debug_g_strndup(char *, int, gchar *, gint); gchar *debug_g_strdup_printf(char *, int, gchar *, ...); gchar *debug_g_strdup_vprintf(char *, int, gchar *, va_list args); gchar *debug_g_strconcat(char *, int, ...); //#define mem_alloc(x) debug_mem_alloc(__FILE__, __LINE__, x) //#define mem_free(x) debug_mem_free(__FILE__, __LINE__, x) //#define mem_realloc(x, y) debug_mem_realloc(__FILE__, __LINE__, x, y) //#undef g_new0 //#define g_new0(x, y) debug_g_new0(__FILE__, __LINE__, sizeof(x)* y) //#undef g_new //#define g_new(x, y) debug_g_new0(__FILE__, __LINE__, sizeof(x)* y) //#define g_free(x) debug_mem_free(__FILE__, __LINE__, x) //#define g_realloc(x, y) debug_mem_realloc(__FILE__, __LINE__, x, y) //#undef g_renew //#define g_renew(t, m, n) debug_mem_realloc(__FILE__, __LINE__, m, sizeof(t) * n) #define g_strdup(x) debug_g_strdup(__FILE__, __LINE__, x) #define g_strndup(x,y) debug_g_strndup(__FILE__, __LINE__, x, y) #define g_strdup_printf(x...) debug_g_strdup_printf(__FILE__, __LINE__, x) #define g_strdup_vprintf(x, y) debug_g_strdup_vprintf(__FILE__, __LINE__, x, y) #define g_strconcat(x...) debug_g_strconcat(__FILE__, __LINE__, x) #else static inline void set_mem_comment(void *p, char *c, int l) {} #endif static inline char *fixsemi(char *str){ char *c; if (!str) return str; c=str; while (*c!='\0'){ if (*c==';') *c=':'; c++; } return str; } static inline char *chomp(char *s){ int l; l = strlen(s); if (l > 0 && s[l - 1] == '\n') { s[l - 1] = '\0'; l--; } if (l > 0 && s[l - 1] == '\r') s[l - 1] = '\0'; return s; } /* Copies at most dst_size chars into dst. Ensures null termination of dst. */ static inline char *safe_strncpy(char *dst, const char *src, size_t dst_size) { strncpy(dst, src, dst_size); if (strlen(src) >= dst_size) dst[dst_size - 1] = 0; return dst; } static inline char *safe_strncpy0(char *dst, const char *src, size_t dst_size) { if (!src) { *dst='\0'; return dst; } strncpy(dst, src, dst_size); if (strlen(src) >= dst_size) dst[dst_size - 1] = 0; return dst; } static inline int can_write(int fd) { fd_set fds; struct timeval tv = {0, 0}; FD_ZERO(&fds); FD_SET(fd, &fds); return select(fd + 1, NULL, &fds, NULL, &tv); } static inline int can_read(int fd) { fd_set fds; struct timeval tv = {0, 0}; FD_ZERO(&fds); FD_SET(fd, &fds); return select(fd + 1, &fds, NULL, NULL, &tv); } /* language.c */ #include "language.h" #define TRANSLATE(text) text /* default.c */ #define MAX_STR_LEN 1024 #define EQSO_LEN 15 #define DBL_LEN 30 #define TMP_QSOS 3 #define DISP_QSOS 2 #include "txts.h" /* settings.c */ extern char *txt_settings; /* cabrillo.c */ int export_all_bands_cbr(void); /* list.c */ void import_list(void *xxx, char *filename); /* nevim */ #define q0(item) (item)?(item):"" struct takeoff{ int from, to; int value; }; #endif /* __HEADER_H */ tucnak-4.04/src/pa.c0000644000175000017500000002100112460207027011174 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fifo.h" #include "language2.h" #include "oss.h" #ifdef HAVE_PORTAUDIO #include int pa_initialised = 0; //static const char *clabels[] = SOUND_DEVICE_LABELS; void pa_info(GString *gs){ int i, j, max, maxhainame, maxdiname; const PaHostApiInfo *hai; PaError err; PaSampleFormat formats[] = {paFloat32, paInt32, paInt24, paInt16, paInt8, paUInt8, paCustomFormat, 0}; char *formatsStr[] = {"F32", "I32", "I24", "I16", "I8", "U8", "CUST", NULL}; int terminate = 0; if (!pa_initialised){ Pa_Initialize(); pa_initialised = 1; terminate = 1; } g_string_sprintfa(gs, "\n portaudio_info:\n"); g_string_sprintfa(gs, "version: %s\n", Pa_GetVersionText()); hai = Pa_GetHostApiInfo(Pa_GetDefaultHostApi()); if (hai != NULL) g_string_sprintfa(gs, "default hostapi: %s\n", hai->name); g_string_sprintfa(gs, "default output: %d\n", Pa_GetDefaultOutputDevice()); g_string_sprintfa(gs, "default input: %d\n", Pa_GetDefaultInputDevice()); max = Pa_GetDeviceCount(); maxhainame = 0; maxdiname = 0; for (i = 0; i < max; i++){ int l; const PaDeviceInfo *di = Pa_GetDeviceInfo(i); hai = Pa_GetHostApiInfo(di->hostApi); l = strlen(hai->name); if (l > maxhainame) maxhainame = l; l = strlen(di->name); if (l > maxdiname) maxdiname = l; } for (i = 0; i < max; i++){ const PaDeviceInfo *di = Pa_GetDeviceInfo(i); hai = Pa_GetHostApiInfo(di->hostApi); // if (di->hostApi != Pa_GetDefaultHostApi()) continue; g_string_sprintfa(gs, "%2d: %-*s %-*s srate=%d ", i, maxhainame, hai->name, maxdiname, di->name, (int)di->defaultSampleRate); //g_string_sprintfa(gs, "hostapi=%s\n", hai->name); if (di->maxOutputChannels > 0){ g_string_sprintfa(gs, "output: channels=%-3d latency=%d-%dms ", di->maxOutputChannels, (int)(di->defaultLowOutputLatency * 1000), (int)(di->defaultHighOutputLatency * 1000)); g_string_sprintfa(gs, " formats="); for (j = 0; ; j++){ PaStreamParameters par; if (formats[j] == 0) break; par.channelCount = di->maxOutputChannels; par.device = i; par.hostApiSpecificStreamInfo = NULL; par.suggestedLatency = 0.0; par.sampleFormat = formats[j]; err = Pa_IsFormatSupported(NULL, &par, di->defaultSampleRate); if (err == paFormatIsSupported) { g_string_sprintfa(gs, "%s ", formatsStr[j]); }else{ log_addf("output=%d format=%s: %s", i, formatsStr[j], Pa_GetErrorText(err)); } } } if (di->maxInputChannels > 0){ g_string_sprintfa(gs, "input: channels=%-3d latency=%d-%dms ", di->maxInputChannels , (int)(di->defaultLowInputLatency * 1000), (int)(di->defaultHighInputLatency * 1000)); g_string_sprintfa(gs, " formats="); for (j = 0; ; j++){ PaStreamParameters par; if (formats[j] == 0) break; par.channelCount = di->maxInputChannels; par.device = i; par.hostApiSpecificStreamInfo = NULL; par.suggestedLatency = 0.0; par.sampleFormat = formats[j]; err = Pa_IsFormatSupported(&par, NULL, di->defaultSampleRate); if (err == paFormatIsSupported) { g_string_sprintfa(gs, "%s ", formatsStr[j]); }else{ log_addf("input=%d format=%s: %s", i, formatsStr[j], Pa_GetErrorText(err)); } } } g_string_sprintfa(gs, "\n"); } if (terminate){ Pa_Terminate(); } } static int pa_get_bufsize_frames(struct dsp *dsp){ double period_time = 0.0; double wanted = 0.050; int frames = 64; if (dsp->period_time > 0) wanted = dsp->period_time / 1000.0; while (period_time < wanted){ frames <<= 1; period_time = (double)frames / (double)dsp->speed; } return frames; } int pa_open2(struct dsp *dsp, int rec){ PaError err; const PaDeviceInfo *di; const PaStreamInfo *si; zg_free0(dsp->name); di = Pa_GetDeviceInfo(dsp->pa_params.device); if (di) dsp->name = g_strdup(di->name); else dsp->name = g_strdup_printf(VTEXT(T_UNKNOWN_PORTAUDIO_DEV), dsp->pa_params.device); dsp->frames = pa_get_bufsize_frames(dsp); dsp->samples = dsp->frames * dsp->channels; dsp->bytes = dsp->samples * sizeof(short); err = Pa_OpenStream( &dsp->pa, rec ? &dsp->pa_params : NULL, !rec ? &dsp->pa_params : NULL, (double)dsp->speed, dsp->frames, paNoFlag, NULL, NULL); if (err != paNoError){ log_addf(VTEXT(T_CANT_OPEN_PA_STREAM), dsp->pa_params.device, rec ? VTEXT(T_RECORD2) : VTEXT(T_PLAYBACK), Pa_GetErrorText(err)); dsp->pa = NULL; return -1; } err = Pa_StartStream(dsp->pa); if (err != paNoError){ log_addf(VTEXT(T_CANT_PA_STREAM), rec ? VTEXT(T_RECORD2) : VTEXT(T_PLAYBACK), dsp->pa_params.device, Pa_GetErrorText(err)); Pa_CloseStream(dsp->pa); dsp->pa = NULL; return -1; } si = Pa_GetStreamInfo(dsp->pa); if (si) dbg("PortAudio %s stream opened rate=%1.1f Hz, latency=%1.1f ms, bufsize=%df %ds %db\n", rec ? VTEXT(T_RECORD2): VTEXT(T_PLAYBACK), si->sampleRate, (rec ? si->inputLatency : si->outputLatency) * 1000, dsp->frames, dsp->samples, dsp->bytes); return 0; } int pa_close2(struct dsp *dsp){ PaError err; //dsp->reset(dsp); if (dsp->pa != NULL){ err = Pa_StopStream(dsp->pa); if (err != paNoError){ log_addf(VTEXT(T_CANT_STOP_PA), Pa_GetErrorText(err)); } err = Pa_CloseStream(dsp->pa); if (err != paNoError){ log_addf(VTEXT(T_CANT_CLOSE_PA), Pa_GetErrorText(err)); } } dsp->pa = NULL; return 0; } int pa_write2(struct dsp *dsp, void *data, int frames){ if (Pa_WriteStream(dsp->pa, data, frames) != paNoError){ return -1; } return frames; } int pa_read2(struct dsp *dsp, void *data, int frames){ if (Pa_ReadStream(dsp->pa, data, frames) != paNoError){ return -1; } return frames; } int pa_reset2(struct dsp *dsp){ // probably impossible for synchro portaudio return -1; } int pa_sync2(struct dsp *dsp){ // probably not needed for synchro portaudio return -1; } #ifdef HAVE_SNDFILE int pa_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec){ const PaDeviceInfo *pi; if (rec){ if (dsp->pa_rec < 0) dsp->pa_rec = Pa_GetDefaultInputDevice(); dsp->pa_params.device = dsp->pa_rec; pi = Pa_GetDeviceInfo(dsp->pa_params.device); if (pi) dsp->pa_params.suggestedLatency = pi->defaultHighInputLatency; }else{ if (dsp->pa_play < 0) dsp->pa_play = Pa_GetDefaultOutputDevice(); dsp->pa_params.device = dsp->pa_play; pi = Pa_GetDeviceInfo(dsp->pa_params.device); if (pi) dsp->pa_params.suggestedLatency = pi->defaultHighOutputLatency; } dsp->pa_params.suggestedLatency = 0.00; dsp->pa_params.channelCount = sfinfo->channels; dsp->pa_params.hostApiSpecificStreamInfo = NULL; dsp->channels = sfinfo->channels; if (dsp->channels > MAX_CHANNELS) dsp->channels = MAX_CHANNELS; switch (sfinfo->format & SF_FORMAT_SUBMASK){ case SF_FORMAT_PCM_U8: dsp->pa_params.sampleFormat = paUInt8; break; case SF_FORMAT_PCM_S8: dsp->pa_params.sampleFormat = paInt8; break; /*case SF_FORMAT_ULAW: dsp->oss_format=AFMT_MU_LAW; break; case SF_FORMAT_ALAW: dsp->oss_format=AFMT_A_LAW; break; case SF_FORMAT_IMA_ADPCM: dsp->oss_format=AFMT_IMA_ADPCM; break; */ default: dsp->pa_params.sampleFormat = paInt16; } dsp->speed = sfinfo->samplerate; // dbg("pa_set_format() speed=%d channels=%d\n", dsp->speed, dsp->channels); return 0; } int pa_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec){ const PaDeviceInfo *pi; if (rec){ if (dsp->pa_rec < 0) return -1; dsp->pa_params.device = dsp->pa_rec; }else{ if (dsp->pa_play < 0) return -1; dsp->pa_params.device = dsp->pa_play; } pi = Pa_GetDeviceInfo(dsp->pa_params.device); if (!pi) return -2; dsp->speed = speed; if (dsp->speed == 0) dsp->speed = (int)pi->defaultSampleRate; dsp->channels = 2; dsp->period_time = frames * 1000 / dsp->speed; dsp->pa_params.sampleFormat = paInt16; dsp->pa_params.suggestedLatency = 0.00; dsp->pa_params.channelCount = dsp->channels; dsp->pa_params.hostApiSpecificStreamInfo = NULL; return 0; } #endif #endif tucnak-4.04/src/misc.h0000644000175000017500000000114212362543253011545 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __MISC_H #define __MISC_H void test(void); void bat_info(GString *gs); #ifdef Z_HAVE_SDL extern struct zbat *gbat; void bat_draw(SDL_Surface *surface, int x, int y, int w, int h, int capacity); void bat_timer(void *); #endif void serial_info(GString *gs); //const char *iconv_current_encoding(void); #endif tucnak-4.04/src/txts.h0000644000175000017500000000154212251300414011603 00000000000000/* Automatically generated by txt2inc.pl */ extern const char txt_cty[65527]; extern const char txt_cty1[17792]; extern const char txt_master[65525]; extern const char txt_master1[65523]; extern const char txt_master2[65528]; extern const char txt_master3[65530]; extern const char txt_master4[65520]; extern const char txt_master5[65523]; extern const char txt_master6[26674]; extern const char txt_titlpage[8182]; extern const char txt_tucnakcw[8829]; extern const char txt_tucnaknames[58947]; extern const char txt_tucnakrc[20354]; extern const char txt_tucnakdw[8326]; extern const char txt_tucnakwiz[9541]; extern const char txt_tucnakvexcagcw[10]; extern const char txt_tucnakvexcokres[725]; extern const char txt_tucnakvexcrsgbdc[429]; extern const char txt_tucnakvexcusaca[496]; extern const char txt_update_deb[740]; extern const char txt_update_eee[414]; tucnak-4.04/src/net.c0000644000175000017500000031670512512542276011412 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "control.h" #include "cwdb.h" #include "dxc.h" #include "edi.h" #include "fifo.h" #include "main.h" #include "map.h" #include "menu.h" #include "namedb.h" #include "net.h" #include "rc.h" #include "rotar.h" #include "session.h" #include "sked.h" #include "ssbd.h" #include "stats.h" #include "subwin.h" #include "tsdl.h" #define CLEAN_TRACE /* "relation" layer: KA seq keepalive AK seq ack AC tdate;pcall;tname;qrvbands active contest CL close contest LA source;stamp QS band;date_str;time_str;callsign_or_error; mode;rsts;qsonrs;rstr;\ qsonrr;exc;locator;source; operator;stamp;callsign;; \ ser_id;remark TA talk TB talk after connect SK now_time;operator;src_shortpband;qrg; we_call;pband;time_str;callsign; locator;remark ID 192.168.1.1:55555 SR start of replication block ER end of replication block GR band;ccmd;slaveid grab band DO discovery peers with operator PO peer0ip:peer0port;oper0;peer1ip:peer1port;oper1;... peers list with operator(master->slave) DR discovery read-write bands PR peer0ip:peer0port;oper0;bands0;peer1ip:peer1port;oper1;bands1;... read-write bands (master->slave) DC discovery peers with opened contest PC peer0ip:peer0port;date0;pcall0;tname0;peer1ip:peer1port;... peers list with contest properties(master->slave) RW bandchars send read-write bands PT band;srcip:srcport;tx ptt state WI band;srcip:srcport;text current inputline WT band;srcip:srcport;item_no;text current tmpqso item RT band;destip:dstport request all tmpqso informations (PT, WI, WT) DI OBSOLETE discovery peers PE peer0ip:peer0port;peer1ip:peer1port;... OBSOLETE peers list (master->slave) CR destip:destport;srcip:srcport configuration request CF destip:destport;srcip:srcport;config_line one configuration line WR destip:destport;srcip:srcport C_W request CW destip:destport;srcip:srcport;call;locator;date one C_W line DX DX de HL2IFR: 24900.2 BA4ED AS-136 0807Z OP operator BA pband;psect;stxeq;spowe;sreq;sante;santh;mope1;mope2;remarks RS ip:port;rotstr;qtf?;ele? RU ip:port;rotstr;qtf;ele RC destip:destport;srcip:srcport request of contest options SC destip:destport;contest_opts;band_number;band0_opts;band1_opts;... current contest options AR salt authentication request AU user;md5(user;pass) authenticate slave to remote instance BC message bad credentials D3 discovery peers v3 (flooding to all others) P3 peerip:peerport;operator;rwbands;cdate;pcall;tname peer info v3 (send by peer about itself) R3 destip:destport;srcip:srcport;load_opts request for contest options v3 (flood) C3 destip:destport;contest_opts;band_number;band0_opts;band1_opts;... contest options v3 (flood) SD destip:destport start of long data transfer QR destip:destport;item0;item1;...itemN QRV database CV destip:destport;item0;item1;...itemN C_W database NA destip:destport;item0;item1;...itemN name database ET destip:destport end of long data transfer EB destip:destport end of long data transfer back VS destip:destport;voipip:voipport voip spy EV destip:destport;voipip:voipport end of voip spy VA destip:destport;voipip:voipport voip addr spied->spying */ struct net *gnet; char *ns_desc[]={"INIT", "SABM", "CONN", "WAIT", "DIST", "DEAD", "LONG"}; struct net *init_net(void){ struct net *net; progress(VTEXT(T_INIT_NET)); /* dbg("init_net()\n");*/ gnet = net = g_new0(struct net, 1); net->master_priority = cfg->net_masterpriority; init_net_tcp(net); init_net_udp(net); /* require gnet->my.sin_port */ net_connect_remote(net); return net; } void free_net(struct net *net){ progress(VTEXT(T_FREE_NET)); free_net_ifaces(net); free_net_tcp(net); free_net_udp(net); if (gnet->peers3) g_string_free(gnet->peers3, TRUE); g_free(net); } #define NET_DELIM " \t," int init_net_udp(struct net *net){ struct sockaddr_in sin; socklen_t socklen; init_net_ifaces(net, 1); /* dbg("init_net_udp()\n");*/ gnet->udptimer_id = -1; gnet->udpsock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (gnet->udpsock < 0) goto err; /* dbg(" udpsock=%d\n", gnet->udpsock);*/ if (z_sock_reuse(gnet->udpsock, 1)){ trace(cfg->trace_bcast, "Can't set SO_REUSEADDR\n"); goto err; } if (z_sock_broadcast(gnet->udpsock, 1)){ trace(cfg->trace_bcast, "Can't set SO_BROADCAST\n"); goto err; } if (z_sock_nonblock(gnet->udpsock, 1)){ trace(cfg->trace_bcast, "Can't set O_NONBLOCK\n"); goto err; } memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(NET_PORT); sin.sin_addr.s_addr = INADDR_ANY; if (bind(gnet->udpsock, (struct sockaddr *)&sin, sizeof(sin))){ trace(cfg->trace_bcast, "Can't bind UDP port %d\n", NET_PORT); goto err; } memset(&sin, 0, sizeof(sin)); socklen = sizeof(sin); getsockname(gnet->udpsock, (struct sockaddr *) &sin, &socklen); gnet->udptimer_period = UDP_ANNOUNCE; gnet->udptimer_id = zselect_timer_new(zsel, 1, udp_timer, net); zselect_set(zsel, gnet->udpsock, udp_read_handler, NULL, udp_exception_handler, NULL); /* dbg("I'M %s:%d\n", inet_ntoa(gnet->my.sin_addr), * ntohs(gnet->my.sin_port));*/ // trace(cfg->trace_bcast, "My ID: %s\n", gnet->myid); return 0; err:; closesocket(gnet->udpsock); gnet->udpsock = -1; /* zselect_timer_kill not needed */ return 1; } int init_net_tcp(struct net *net){ int port; struct sockaddr_in sin; /*dbg("init_net_tcp()\n");*/ gnet->peers = g_ptr_array_new(); gnet->tcpsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); /*dbg(" tcpsock=%d\n", gnet->tcpsock);*/ /*#ifndef WIN32 //__CYGWIN__ { int on; on=1; if (setsockopt(gnet->tcpsock, SOL_SOCKET, SO_REUSEADDR, SO4 &on, sizeof(on))){ trace(cfg->trace_sock, "Can't set SO_REUSEADDR\n"); goto x; } } #endif */ #ifdef Z_UNIX // winsock with SO_REUSEADDR allow more programs to bind one port if (z_sock_reuse(gnet->tcpsock, 1)){ trace(cfg->trace_sock, "Can't set SO_REUSEADRR\n"); goto x; } #endif if (z_sock_nonblock(gnet->tcpsock, 1)){ trace(cfg->trace_sock, "Can't set O_NONBLOCK\n"); goto x; } for (port=NET_PORT; port<65536; port++){ gnet->my.sin_port = htons(port); gnet->global.sin_port = htons(port); gnet->global_priority = cfg->net_masterpriority; memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = gnet->my.sin_port; sin.sin_addr.s_addr = INADDR_ANY; if (bind(gnet->tcpsock, (struct sockaddr *)&sin, sizeof(sin))==0) break; /* dbg("Can't bind tcp port %d\n", NET_PORT);*/ if (port==65535) goto x; continue; } if (listen(gnet->tcpsock, 10)){ trace(cfg->trace_sock, "Can't listen on socket %d, tcp port %d \n", gnet->tcpsock, gnet->my.sin_port); goto x; } sock_debug(gnet->tcpsock, "listen init_net_tcp"); zselect_set(zsel, gnet->tcpsock, tcp_accept_handler, NULL, tcp_exception_handler, NULL); return 0; x:; sock_debug(gnet->tcpsock, "close gnet->tcpsock"); closesocket(gnet->tcpsock); gnet->my.sin_port=0; gnet->global.sin_port=0; gnet->tcpsock=-1; return -1; } enum assign_types {AT_UNASSIGNED, AT_LOOPBACK, AT_ASSIGNED}; int init_net_ifaces(struct net *net, int free_global){ struct ziface_struct ifaces[MAX_INTERFACES]; int i,mi,j,ii; GPtrArray *if_ignore, *ip_ignore, *ip_announce; char *token_ptr; gchar *c; GString *gs; enum assign_types assign_type; char *tmp1; if_ignore = g_ptr_array_new(); ip_ignore = g_ptr_array_new(); ip_announce = g_ptr_array_new(); if (cfg->net_if_ignore){ gchar *net_if_ignore; net_if_ignore = g_strdup(cfg->net_if_ignore); for (c=strtok_r(net_if_ignore, NET_DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL, NET_DELIM, &token_ptr)){ trace(cfg->trace_bcast, "adding iface '%s' for ignoring", c); c=g_strdup(c); /* dbg("dup=%p\n", c);*/ g_ptr_array_add(if_ignore, c); } g_free(net_if_ignore); } if (cfg->net_ip_ignore){ gchar *net_ip_ignore; net_ip_ignore = g_strdup(cfg->net_ip_ignore); for (c=strtok_r(cfg->net_ip_ignore, NET_DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL, NET_DELIM, &token_ptr)){ trace(cfg->trace_bcast, "adding addr '%s' for ignoring\n", c); g_ptr_array_add(ip_ignore, g_strdup(c)); } g_free(net_ip_ignore); } /* when tucnak crashes here, remove --enable-leak-debug from configure */ // dbg("gnet->my %s:%d\n", inet_ntoa(gnet->my.sin_addr), ntohs(gnet->my.sin_port)); tmp1 = inet_ntoa(gnet->my.sin_addr); gnet->myid = g_strdup_printf("%s:%d",tmp1, (int)ntohs(gnet->my.sin_port)); assign_type = AT_UNASSIGNED; trace(cfg->trace_bcast, "preassigned gnet->myid=%s", gnet->myid); mi = zifaces_get(ifaces, MAX_INTERFACES); /* network byteorder */ j = 0; for (i=0;itrace_sock, "iface %s\n",ifaces[i].name); is_lo=!strcmp(ifaces[i].name, "lo"); /* if (mi>1 && strcmp(ifaces[i].name, "lo")==0) continue;*/ if ((int)ifaces[i].ip.s_addr==0) continue; /* 0.0.0.0 happens on cygwin */ for (ii=0; iilen; ii++){ gchar *c; c = (gchar *)g_ptr_array_index(if_ignore, ii); if (strcmp(c, ifaces[i].name)==0) { trace(cfg->trace_bcast, VTEXT(T_IGN_IFACE_S),ifaces[i].name); goto next_loop; } } sin = (struct sockaddr_in *)&gnet->bcast_addr[j]; sin->sin_family = AF_INET; sin->sin_addr.s_addr = ifaces[i].ip.s_addr | ~(ifaces[i].netmask.s_addr); sin->sin_port = htons(NET_PORT); for (ii=0; iilen; ii++){ gchar *c; struct in_addr iad; c = (gchar *)g_ptr_array_index(ip_ignore, ii); if (!inet_aton(c, &iad)) continue; /* invalid addr */ if (iad.s_addr==sin->sin_addr.s_addr) { trace(cfg->trace_bcast, VTEXT(T_IGN_ADDR_S), inet_ntoa(sin->sin_addr)); goto next_loop; } } trace(cfg->trace_bcast, "adding iface '%s'\n", ifaces[i].name); if (assign_type!=AT_ASSIGNED) { gnet->my.sin_addr.s_addr = ifaces[i].ip.s_addr; if (free_global) { gnet->global.sin_addr.s_addr = ifaces[i].ip.s_addr; gnet->global_priority = cfg->net_masterpriority; } if (gnet->myid) g_free(gnet->myid); gnet->myid = g_strdup_printf("%s:%d", inet_ntoa(gnet->my.sin_addr), ntohs(gnet->my.sin_port)); assign_type=is_lo?AT_LOOPBACK:AT_ASSIGNED; trace(cfg->trace_bcast, "assigned gnet->myid=%s\n", gnet->myid); } j++; trace(cfg->trace_bcast, VTEXT(T_ADD_IFACE_SSD), ifaces[i].name, inet_ntoa(sin->sin_addr), NET_PORT); next_loop:; } if (cfg->net_ip_announce){ for (c=strtok_r(cfg->net_ip_announce, NET_DELIM, &token_ptr); c!=NULL; c=strtok_r(NULL, NET_DELIM, &token_ptr)){ struct in_addr iad; struct sockaddr_in *sin; if (!inet_aton(c, &iad)) continue; /* invald addr */ sin = (struct sockaddr_in *)&gnet->bcast_addr[j]; sin->sin_family = AF_INET; sin->sin_addr.s_addr = iad.s_addr; sin->sin_port = htons(NET_PORT); log_addf(VTEXT(T_FORCED_ADDR), inet_ntoa(sin->sin_addr)); j++; } } gnet->max_addrs = j; zg_ptr_array_free_all(if_ignore); zg_ptr_array_free_all(ip_ignore); zg_ptr_array_free_all(ip_announce); gs=g_string_sized_new(100); for (i=0; imax_addrs; i++){ struct sockaddr_in *sin; if (i>0) g_string_sprintfa(gs, ", "); sin = (struct sockaddr_in *)&gnet->bcast_addr[i]; g_string_sprintfa(gs, "%s:%d", inet_ntoa(sin->sin_addr), ntohs(sin->sin_port)); } trace(cfg->trace_bcast, "Broadcast to: %s", gs->str); g_string_free(gs, TRUE); return 0; } void net_connect_remote(struct net *net){ //dbg("net_connect_remote()\n"); if (gnet->remote){ free_conn(gnet->remote); zg_free0(gnet->remote); } if (!cfg->net_remote_enable) return; if (!cfg->net_remote_host || !*cfg->net_remote_host) return; if (cfg->net_remote_port <= 0 || cfg->net_remote_port > 65535) return; if (!strstr(gnet->myid, ":55555")) { log_addf(VTEXT(T_ONLY_55555_CAN_REMOTE)); return; } if (!gnet->radns) gnet->radns = zasyncdns_init(); zasyncdns_getaddrinfo(gnet->radns, zsel, net_remote_addrinfo, cfg->net_remote_host, AF_INET, NULL); } void net_remote_addrinfo(struct zasyncdns *adns, int n, int *family, int *socktype, int *protocol, int *addrlen, union zsockaddr *addr, char *errorstr){ int i, ni, j, ip0; struct ziface_struct ifaces[MAX_INTERFACES]; gnet->remote = g_new0(struct conn, 1); gnet->remote->sock = -1; gnet->remote->start = time(NULL); dbg("gnet->remote = %p\n", gnet->remote); for (i = 0; i < n; i++){ if (family[i] != AF_INET) continue; // change: look at address comparsion bellow gnet->remote->sin.sin_family = AF_INET; memcpy(&gnet->remote->sin, &(addr[i].in), sizeof(struct sockaddr_in)); gnet->remote->sin.sin_port = ntohs(cfg->net_remote_port); conn_set_fid(gnet->remote); // check for my address ip0 = ntohl(addr[i].in.sin_addr.s_addr) >> 24; if (ip0 == 127){ log_addf(VTEXT(T_CANT_CONNECT_TO_MYSELF_LO)); return; } ni = zifaces_get(ifaces, MAX_INTERFACES); for (j = 0; j < ni; j++){ if (ifaces[j].ip.s_addr == addr[i].in.sin_addr.s_addr){ // must be AF_INET! log_addf(VTEXT(T_CANT_CONNECT_TO_MYSELF), ifaces[j].name); return; } } tcp_connect(gnet->remote); return; } log_addf(VTEXT(T_CANT_PARSE_REMOTE_HOST_S), cfg->net_remote_host); tcp_set_state(gnet->remote, NS_DISCONNECTED); } void free_net_udp(struct net *net){ if (gnet->udptimer_id >= 0) zselect_timer_kill(zsel, gnet->udptimer_id); closesocket(gnet->udpsock); } void free_conn(struct conn *conn){ int is_remote = conn == gnet->remote; dbg("free_conn(%p) %s gnet->remote=%p\n", conn, is_remote?"is_remote":"", gnet->remote); if (conn->sock >= 0){ zselect_set(zsel, conn->sock, NULL, NULL, NULL, NULL); sock_debug(conn->sock, "close free_conn()"); closesocket(conn->sock); tcp_kill(conn); } tcp_set_state(conn, NS_DEAD); if (conn->wrbuf) g_string_free(conn->wrbuf, 1); if (conn->rdbuf) g_string_free(conn->rdbuf, 1); CONDGFREE(conn->operator_); CONDGFREE(conn->rwbands); CONDGFREE(conn->remote_id); CONDGFREE(conn->remote_ac); CONDGFREE(conn->fid); } void free_net_ifaces(struct net *net){ if (gnet->myid) g_free(gnet->myid); } void free_net_tcp(struct net *net){ struct conn *conn; int i; sock_debug(gnet->tcpsock, "close gnet->tcpsock (2)"); closesocket(gnet->tcpsock); if (gnet->master) { free_conn(gnet->master); g_free(gnet->master); gnet->master = NULL; } if (gnet->remote){ free_conn(gnet->remote); zg_free0(gnet->remote); } if (gnet->radns) zasyncdns_free(gnet->radns); for (i=gnet->peers->len-1; i>=0; i--){ conn = (struct conn *) g_ptr_array_index(gnet->peers, i); free_conn(conn); g_ptr_array_remove_index(gnet->peers, i); g_free(conn); } CONDGFREE(gnet->allpeers); CONDGFREE(gnet->rwbpeers); CONDGFREE(gnet->bpeers); } /****************** SELECT's HANDLERS ********************************/ void udp_read_handler(void *arg){ char s[1024]; struct sockaddr_in sin; socklen_t socklen; gchar **items; int i; time_t expire, now; struct sockaddr_in peer; struct sockaddr_in master; int direct, masterpriority = 0; /* dbg("udp_read_handler()\n");*/ now = time(NULL); memset(s, 0, sizeof(s)); socklen = sizeof(sin); recvfrom(gnet->udpsock, s, sizeof(s)-1, 0, (struct sockaddr *)&sin, &socklen); if (strlen(s)>0 && s[strlen(s)-1]=='\n') s[strlen(s)-1]='\0'; if (strlen(s)>0 && s[strlen(s)-1]=='\r') s[strlen(s)-1]='\0'; items=g_strsplit(s, ";", 0); for (i=0;i<7;i++) { if (items[i]==NULL) { g_strfreev(items); return; } } if (strcmp(items[0], "tucnak")!=0) { g_strfreev(items); return; } peer.sin_addr.s_addr = inet_addr(items[2]); peer.sin_port = htons(atoi(items[3])); master.sin_addr.s_addr = inet_addr(items[4]); master.sin_port = htons(atoi(items[5])); expire = atoi(items[6]); // dbg("%s items[7]=%s opt_m=%d master=%p cmp=%d\n", items[1], items[7], opt_m, gnet->master, cmp_sin(&master, &gnet->my)); if (items[7] && opt_m && !gnet->master && cmp_sin(&master, &gnet->my)<0){ struct timeval tv; tv.tv_sec = atoi(items[7]); tv.tv_usec = 500000; // better than 0 if (settimeofday(&tv, NULL) == 0){ log_addf(VTEXT(T_TIME_WAS_SET)); now = time(NULL); }else{ GString *gs = g_string_new(""); g_string_append(gs, VTEXT(T_FAILED_TO_SET_TIME)); g_string_append(gs, " - "); z_strerror(gs, errno); log_adds(gs->str); g_string_free(gs, TRUE); } } direct = 0; if (items[7] != NULL && items[8] != NULL) { if (atoi(items[8]) != 0) direct = 1; if (items[9] != NULL) masterpriority = atoi(items[9]); } g_strfreev(items); if (expire < now) return; /* ignore expired information */ if (expire < now-NET_MAX_SKEW_NEG || expire > now+NET_MAX_SKEW_POS) { log_addf(VTEXT(T_TIMESKEW), (int)(now-expire), inet_ntoa(master.sin_addr), ntohs(master.sin_port)); } if (expire > now+NET_MAX_SKEW_POS){ trace(cfg->trace_bcast, "ignoring expire in future, ignoring\n"); return; } /* network byteorder */ if (gnet->my.sin_addr.s_addr == peer.sin_addr.s_addr && gnet->my.sin_port == peer.sin_port) return; trace(cfg->trace_bcast, "rcvd: %s: %s\n", inet_ntoa(sin.sin_addr),s); if (masterpriority == 0 && gnet->v3compatibility == 0){ gnet->v3compatibility = 1; dbg("set v3compatibility=1\n"); // must reset master gnet->global.sin_family = AF_INET; gnet->global.sin_addr.s_addr = gnet->my.sin_addr.s_addr; gnet->global.sin_port = gnet->my.sin_port; gnet->global_expire = now + NET_GLOBAL_EXPIRE; gnet->global_priority = cfg->net_masterpriority; } //log_addf("udp_read_handler: direct=%d my-global = %d", direct, cmp_sin(&gnet->my, &gnet->global)); if (direct && cmp_sin(&gnet->my, &gnet->global) == 0){ udp_sendto(&sin, 0); } if (cmp_sin(&master, &gnet->global)==0){ /* updating expire time */ gnet->global_expire = expire; } if (cmp_master(masterpriority, gnet->global_priority, &master, &gnet->global) < 0){ /* received master is "global" */ gnet->global.sin_family = AF_INET; gnet->global.sin_addr.s_addr = master.sin_addr.s_addr; gnet->global.sin_port = master.sin_port; gnet->global_expire = expire; gnet->global_priority = masterpriority; trace(cfg->trace_bcast, "new master is %s:%d, now=%d, expires %d \n", inet_ntoa(gnet->global.sin_addr), ntohs(gnet->global.sin_port), (int)(now%1000), (int)(expire%1000)); } if (cmp_master(masterpriority, gnet->global_priority, &master, &gnet->global) > 0){ /* received master is my slave */ trace(cfg->trace_bcast, "tucnak %s:%d means it is master but isn't true\n", inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); zselect_timer_kill(zsel, gnet->udptimer_id); gnet->udptimer_id = zselect_timer_new(zsel, 1, udp_timer, gnet); } /* is gnet->master "global" master? */ if (gnet->master) { if (cmp_sin(&gnet->master->sin, &gnet->global)!=0) { /* gnet->master > gnet->global, disconnect */ trace(cfg->trace_sock, "disconnecting from %s:%d\n", inet_ntoa(gnet->master->sin.sin_addr), ntohs(gnet->master->sin.sin_port)); log_addf(VTEXT(T_DISCONNECTING_SD), inet_ntoa(gnet->master->sin.sin_addr), ntohs(gnet->master->sin.sin_port)); free_conn(gnet->master); g_free(gnet->master); gnet->master = NULL; } } if (!gnet->master && cmp_master(cfg->net_masterpriority, gnet->global_priority, &gnet->my ,&gnet->global) > 0){ trace(cfg->trace_sock, "Now i'm a master\n"); gnet->master = g_new0(struct conn, 1); gnet->master->sin.sin_family = AF_INET; gnet->master->sin.sin_addr.s_addr = gnet->global.sin_addr.s_addr; gnet->master->sin.sin_port = gnet->global.sin_port; conn_set_fid(gnet->master); tcp_connect(gnet->master); } } void udp_exception_handler(void *arg){ dbg("udp_exception_handler()\n"); } void tcp_accept_handler(void *arg){ int sock,i; struct sockaddr_in sin; socklen_t socklen; struct conn *conn; int local; char *c; /*dbg("tcp_accept_handler()\n");*/ socklen = sizeof(sin); sock = accept(gnet->tcpsock, (struct sockaddr *)&sin, &socklen); if (!socklen || sock<0) return; local = ziface_is_local(sin.sin_addr); trace(cfg->trace_sock, "Accepted socket %d %s:%d (%s)\n", sock, inet_ntoa(sin.sin_addr), ntohs(sin.sin_port), local ? "local" : "non local"); dbg("Accepted socket %d %s:%d (%s)\n", sock, inet_ntoa(sin.sin_addr), ntohs(sin.sin_port), local ? "local" : "non local"); log_addf(VTEXT(T_ACCEPTED_SD), inet_ntoa(sin.sin_addr), ntohs(sin.sin_port), local ? "local" : "non local"); for (i=0;ipeers->len;i++){ conn=(struct conn *)g_ptr_array_index(gnet->peers, i); if (conn->sock!=sock) continue; if (conn->timer) zselect_timer_kill(zsel, conn->timer); remove_conn_timer(conn); } conn = g_new0(struct conn, 1); conn->sin.sin_family = AF_INET; conn->sin.sin_addr.s_addr = sin.sin_addr.s_addr; conn->sin.sin_port = sin.sin_port; conn->sock = sock; conn_set_fid(conn); tcp_set_state(conn, NS_CONNECTED); zselect_set(zsel, conn->sock, tcp_read_handler, NULL, tcp_exception_handler, conn); g_ptr_array_add(gnet->peers, conn); conn->start = time(NULL); dump_all_sources(ctest); if (!local) { conn->salt = g_strdup_printf("%02X%02X%02X%02X%02X%02X%02X%02X", (unsigned char)rand() % 0xff, (unsigned char)rand() % 0xff, (unsigned char)rand() % 0xff, (unsigned char)rand() % 0xff, (unsigned char)rand() % 0xff, (unsigned char)rand() % 0xff, (unsigned char)rand() % 0xff, (unsigned char)rand() % 0xff); c = g_strdup_printf("AR %s\n", conn->salt); rel_write(conn, c); g_free(c); conn->authstate = AS_WAIT; return; } dbg("tcp_accept_handler: net_send_id() sock=%d\n", conn->sock); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); net_send_talk(); } void tcp_connected_handler(void *arg){ struct conn *conn; int ret; //int ret, err; //socklen_t optlen; conn = (struct conn *)arg; dbg("tcp_connected_handler %s:%d (%p)\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port), conn); /*optlen = sizeof(err); ret = getsockopt(conn->sock, SOL_SOCKET, SO_ERROR, (void *)&err, &optlen);*/ /* dbg(" getsockopt(SO_ERROR) returns %d err is %d\n", ret, err); if (ret!=0){ tcp_disconnect(conn); return; } if (err!=0){ tcp_disconnect(conn); return; } */ ret = z_sock_error(conn->sock); if (ret != 0){ tcp_disconnect(conn); return; } log_addf(VTEXT(T_CONNECTED_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); trace(cfg->trace_sock || cfg->trace_recv || cfg->trace_send, "%s: connected to %s:%d", conn->fid, inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); dump_all_sources(ctest); tcp_set_state(conn, NS_CONNECTED); zselect_set(zsel, conn->sock, tcp_read_handler, NULL, tcp_exception_handler, conn); conn->start = time(NULL); dbg("tcp_connected_handler: net_send_id() sock=%d\n", conn->sock); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); net_send_talk(); } void tcp_read_handler(void *arg){ struct conn *conn; char s[1030]; int ret,err; gchar *d, *line; char errbuf[256]; /* char ss[60]; int i;*/ conn = (struct conn *)arg; /* dbg("tcp_read_handler %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ // dbg("entry tcp_read_handler(%d)\n", conn->sock); ret=recv(conn->sock, s, 1024, 0); err=z_sock_errno; //dbg(" read(%d) returns %d (%d)\n", conn->sock, ret, err); if (ret<=0) { trace(cfg->trace_sock, " !!! read ERROR sock=%d err=%d %s\n", conn->sock, err, z_sock_strerror()); dbg(" !!! read ERROR sock=%d err=%d %s\n", conn->sock, err, z_sock_strerror()); tcp_disconnect(conn); return; } conn->rx += ret; s[ret]='\0'; /*safe_strncpy(ss, s, sizeof(ss)); for (i=0;ss[i]!='\0'; i++){ if (!isprint((unsigned char)ss[i])) ss[i]='.'; } if (cfg->trace_recv && strncmp(ss, "AK", 2) != 0 && strncmp(ss, "KA", 2) != 0){ trace(cfg->trace_recv, "%s: read '%s' (%d)\n", conn->fid, ss, ret); }*/ if (!conn->rdbuf) conn->rdbuf = g_string_sized_new(1024); g_string_append(conn->rdbuf, s); /* na tomhle to pada */ /* strcpy(s, "ID 192.168.1.132:55556\nAC 20060506;OK1KRQ;II. subregionalni zavod 2006;cegk\nLA 192.168.1.68:55555;1146999049;192.168.1.132:55555;1146991645;192.168.1.132:55556;1147001847;192.168.1.111:55555;1146932813;192.168.1.82:55555;1147003677;192.168.1.42:55555;1147002456;\n");*/ /* dbg(" s='%s'\n", s);*/ /* dbg_recv("tcp_read_handler() entry conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ while (1){ /* dbg_recv("tcp_read_handler() 1 conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ if (conn->sock < 0) break; d=strchr(conn->rdbuf->str, '\n'); if (!d) break; line = g_strndup(conn->rdbuf->str, d - conn->rdbuf->str); /* if (strncmp(line, "KA", 2)!=0 && strncmp(line,"AK", 2)!=0){ dbg("tcp_read_handler line='%s'\n", line); }*/ /* dbg_recv("tcp_read_handler() 2 conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ g_string_erase(conn->rdbuf, 0, d - conn->rdbuf->str + 1); /* dbg_recv("tcp_read_handler() 3 conn->rdbuf=%p '%s'\n", conn->rdbuf, conn->rdbuf->str);*/ /* dbg(" line='%s', remains '%s'\n", line, conn->rdbuf->str);*/ if (strlen(line)>0) rel_read(conn, line); g_free(line); } /* dbg_recv("tcp_read_handler() exit conn->rdbuf=%p\n", conn->rdbuf);*/ // dbg("exit tcp_read_handler(%d)\n", conn->sock); } void tcp_write_handler(void *arg){ struct conn *conn; int towrite, written; char errbuf[1030]; conn = (struct conn *)arg; /* dbg("tcp_write_handler %s:%d\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port));*/ if (!conn->wrbuf){ zselect_set(zsel, conn->sock, tcp_read_handler, NULL, tcp_exception_handler, conn); return; } towrite = strlen(conn->wrbuf->str); written = send(conn->sock, conn->wrbuf->str, towrite, 0); //err=z_sock_errno; //trace(cfg->trace_send, "%s: tcp_write_handler '%s' (%d/%d) %s\n", conn->fid, conn->wrbuf->str, towrite, written,err); /*dbg(" towrite=%d written=%d \n", towrite, written); */ if (written<=0){ trace(cfg->trace_sock, "!!!!! ERROR %s\n", z_sock_strerror()); tcp_disconnect(conn); return; } conn->tx += written; if (towrite == written){ g_string_free(conn->wrbuf, 1); conn->wrbuf = NULL; zselect_set(zsel, conn->sock, tcp_read_handler, NULL, tcp_exception_handler, conn); return; } g_string_erase(conn->wrbuf, 0, written); } void tcp_exception_handler(void *arg){ struct conn *conn; conn = (struct conn *)arg; dbg("tcp_exception_handler %s:%d\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); tcp_disconnect(conn); } /*************************** TIMERS *********************************/ void udp_sendto(struct sockaddr_in *asin, int direct){ struct net *net; struct sockaddr_in sin; socklen_t socklen; int i; GString *gs; time_t now; net = (struct net *)gnet; now = time(NULL); if (gnet->global_expire < now){ /* global expired */ gnet->global.sin_family = AF_INET; gnet->global.sin_addr.s_addr = gnet->my.sin_addr.s_addr; gnet->global.sin_port = gnet->my.sin_port; gnet->global_expire = now + NET_GLOBAL_EXPIRE; gnet->global_priority = cfg->net_masterpriority; trace(cfg->trace_bcast, "expired, i'm new master %s:%d now=%d, expire=%d \n", inet_ntoa(gnet->global.sin_addr), ntohs(gnet->global.sin_port), now%1000, gnet->global_expire%1000); } if (cmp_sin(&gnet->global, &gnet->my)==0) { /* sending maximal time */ /* dbg("setting expire to maximal\n");*/ gnet->global_expire = now + NET_GLOBAL_EXPIRE; } /* dbg("udp_timer()\n"); */ /* 0 1 2 3 4 5 6 7 8 */ /* "tucnak;version;myip;myport;masterip;masterport;masterexpire;direct;masterpriority */ gs = g_string_sized_new(100); g_string_sprintfa(gs, "tucnak;%s;", VERSION_STRING); g_string_append(gs, inet_ntoa(gnet->my.sin_addr)); g_string_append_c(gs,';'); g_string_sprintfa(gs, "%d;", htons(gnet->my.sin_port)); g_string_sprintfa(gs, "%s;%d;%d", inet_ntoa(gnet->global.sin_addr), ntohs(gnet->global.sin_port), (int)gnet->global_expire); g_string_sprintfa(gs, ";%d", (int)now); g_string_sprintfa(gs, ";%d", direct); if (net->v3compatibility) g_string_sprintfa(gs, ";"); else g_string_sprintfa(gs, ";%d", gnet->global_priority); /* dbg("snd'%s' now=%d ex=%d\n", gs->str, now%1000, gnet->global_expire%1000);*/ trace(cfg->trace_bcast, "send: %s\n", gs->str); g_string_append(gs,"\r\n"); if (asin != NULL){ socklen = sizeof(sin); sendto(gnet->udpsock, gs->str, strlen(gs->str), 0, (struct sockaddr *)asin, socklen); }else{ /*ST_START(); free_net_ifaces(net); init_net_ifaces(net, 0); ST_STOP("init_net_ifaces");*/ for (i=0; imax_addrs; i++){ socklen = sizeof(sin); sendto(gnet->udpsock, gs->str, strlen(gs->str), 0, gnet->bcast_addr+i, socklen); } } g_string_free(gs, 1); } void udp_timer(void *arg){ #ifdef Z_ANDROID udp_sendto(NULL, 1); #else udp_sendto(NULL, 0); #endif gnet->udptimer_id = zselect_timer_new(zsel, gnet->udptimer_period, udp_timer, gnet); } void send_ack_timer(void *arg){ struct conn *conn; char s[1026]; conn = (struct conn *)arg; /*dbg("send_ack_timer %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ conn->timer = 0; g_snprintf(s, 1024, "KA %d\n", ++conn->relseq); rel_write(conn, s); tcp_set_state(conn, NS_WAIT_ACK); } void kill_conn_timer(void *arg){ struct conn *conn; conn = (struct conn *)arg; /* dbg("kill_conn_timer %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ conn->timer = 0; tcp_disconnect(conn); } void remove_conn_timer(void *arg){ struct conn *conn, *cx; int i; conn = (struct conn *)arg; dbg("remove_conn_timer %s:%d (%p)\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port), conn); conn->timer = 0; if (gnet->master == conn) { free_conn(gnet->master); g_free(gnet->master); gnet->master = NULL; } if (gnet->remote == conn) { dbg("freeing remote\n"); free_conn(gnet->remote); g_free(gnet->remote); gnet->remote = NULL; net_connect_remote(gnet); } for (i=gnet->peers->len-1; i>=0; i--){ cx = (struct conn *) g_ptr_array_index(gnet->peers, i); if (cx == conn) { g_ptr_array_remove_index(gnet->peers, i); free_conn(conn); g_free(conn); } } } int conn_prod_state(struct conn *conn){ if (!conn) return 0; if (conn->state == NS_CONNECTED || conn->state == NS_WAIT_ACK || conn->state == NS_LONG) return 1; return 0; } void tcp_set_state(struct conn *conn, enum net_state state){ int debug = 0; if (conn->timer) zselect_timer_kill(zsel, conn->timer); conn->timer = 0; if (debug) dbg("tcp_set_state %s ", tcp_state_s(conn)); conn->state = state; if (debug) dbg("-> %s\n", tcp_state_s(conn)); switch (conn->state){ case NS_INIT: break; case NS_CONNECTING: conn->timer = zselect_timer_new(zsel, CONNECTION_TIMEOUT, kill_conn_timer, conn); break; case NS_CONNECTED: conn->timer = zselect_timer_new(zsel, SEND_ACK_TIMEOUT, send_ack_timer, conn); break; case NS_WAIT_ACK: conn->timer = zselect_timer_new(zsel, ACK_TIMEOUT, kill_conn_timer, conn); break; case NS_DISCONNECTED: conn->timer = zselect_timer_new(zsel, REMOVE_TIMEOUT, remove_conn_timer, conn); break; case NS_DEAD: break; case NS_LONG: conn->timer = zselect_timer_new(zsel, LONG_TIMEOUT, kill_conn_timer, conn); break; } } char *tcp_state_s(struct conn *conn){ switch (conn->state){ case NS_INIT: return VTEXT(T_INIT); case NS_CONNECTING: return VTEXT(T_CONNECTING); case NS_CONNECTED: return VTEXT(T_CONNECTED); case NS_WAIT_ACK: return VTEXT(T_WAIT_ACK); case NS_DISCONNECTED: return VTEXT(T_DISCONNECTED2); case NS_DEAD: return VTEXT(T_DEAD); case NS_LONG: return VTEXT(T_LONG_XFER); } return "???"; } void tcp_connect(struct conn *conn){ int ret; char errbuf[256]; dbg("tcp->connect %s:%d (%p)\n", inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port), conn); conn->sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); dbg("tcp_connect(socket() = %d \n", conn->sock); if (z_sock_nonblock(conn->sock, 1)){ trace(cfg->trace_sock, "Can't set O_NONBLOCK\n"); return; } conn->start = time(NULL); ret = connect(conn->sock, (struct sockaddr *) &conn->sin, sizeof(struct sockaddr_in)); /* dbg("connect returns %d (%d) '%s'\n", ret, errno, strerror_r(errno));*/ if (ret==0){ zselect_set(zsel, conn->sock, tcp_read_handler, NULL, tcp_exception_handler, conn); tcp_set_state(conn, NS_CONNECTED); log_addf(VTEXT(T_CONNECTED_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); dump_all_sources(ctest); dbg("tcp_connect: net_send_id() sock=%d\n", conn->sock); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); net_send_talk(); return; } if (ret<0){ if (z_sock_wouldblock(z_sock_errno)){ tcp_set_state(conn, NS_CONNECTING); zselect_set(zsel, conn->sock, NULL, tcp_connected_handler, tcp_exception_handler, conn); log_addf(VTEXT(T_CONNECTING_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); return; } trace(cfg->trace_sock, "connect error %s\n", z_sock_strerror()); tcp_disconnect(conn); } } #ifdef LEAK_DEBUG_LIST void debug_tcp_disconnect(char *file, int line, struct conn *conn){ dbg("debug_tcp_disconnect(%s, %d) conn->sock==%d\n", file, line, conn->sock); #else void tcp_disconnect(struct conn *conn){ dbg("tcp_disconnect conn->sock=%d %s:%d (%p)\n", conn->sock, inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port), conn); #endif log_addf(VTEXT(T_DISCONNECTED_SD), inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); tcp_set_state(conn, NS_DISCONNECTED); if (conn->sock <0){ dbg("!!! tcp_disconnect called on conn->sock=%d, ignoring\n", conn->sock); }else{ // dbg("zselect_set(zsel, %s, %d)\n", __FILE__, __LINE__); zselect_set(zsel, conn->sock, NULL, NULL, NULL, NULL); } trace(cfg->trace_sock || cfg->trace_recv || cfg->trace_send, "%s: close tcp_disconnect", conn->fid); //dbg("tcp_disconnect(%d)\n", conn->sock); // dbg("tcp_disconnect(%d) @ %s:%d\n", conn->sock, file, line); dump_all_sources(ctest); if (conn->sock >= 0){ closesocket(conn->sock); } conn->sock = -1; if (conn->wrbuf) g_string_free(conn->wrbuf, 1); if (conn->rdbuf) g_string_free(conn->rdbuf, 1); conn->wrbuf = conn->rdbuf = NULL; #ifdef LEAK_DEBUG_LIST dbg("debug_tcp_disconnect return\n"); #else dbg("tcp_disconnect return\n"); #endif } void tcp_kill(struct conn *conn){ /*dbg("tcp->disconnect %s:%d\n", inet_ntoa(conn->sin.sin_addr), * ntohs(conn->sin.sin_port));*/ zselect_set(zsel, conn->sock, NULL, NULL, NULL, NULL); tcp_set_state(conn, NS_DISCONNECTED); trace(cfg->trace_sock, "%s: close tcp_kill", conn->fid); dump_all_sources(ctest); closesocket(conn->sock); } int cmp_sin(struct sockaddr_in *a, struct sockaddr_in *b){ int sign; sign = ntohl(a->sin_addr.s_addr) - ntohl(b->sin_addr.s_addr); if (sign) return sign; sign = ntohs(a->sin_port) - ntohs(b->sin_port); return sign; } int cmp_master(int pria, int prib, struct sockaddr_in *a, struct sockaddr_in *b){ int sign; char *s; if (gnet->v3compatibility == 0){ sign = pria - prib; }else{ sign = 0; } if (sign == 0) { sign = ntohl(a->sin_addr.s_addr) - ntohl(b->sin_addr.s_addr); if (sign == 0){ sign = ntohs(a->sin_port) - ntohs(b->sin_port); } } s = g_strdup(inet_ntoa(b->sin_addr)); if (gnet->v3compatibility == 0) dbg("cmp_master(%d/%s:%d, %d/%s:%d) = %d\n", pria, inet_ntoa(a->sin_addr), ntohs(a->sin_port), prib, s, ntohs(b->sin_port), sign); else dbg("cmp_master(%s:%d, %s:%d) = %d\n", inet_ntoa(a->sin_addr), ntohs(a->sin_port), s, ntohs(b->sin_port), sign); g_free(s); return sign; } /***************** "RELATION" LAYER ********************************/ void rel_write(struct conn *conn, gchar *s){ int towrite, written,err; GString *oldwrbuf; char errbuf[1030]; if (conn->sock < 0) return; /* socket already closed, ignore write request and return to allow free conn */ if (conn->authstate == AS_WAIT && strncmp(s, "BC", 2) != 0) return; oldwrbuf=conn->wrbuf; if (!conn->wrbuf) conn->wrbuf = g_string_sized_new(1024); g_string_append(conn->wrbuf, s); if (oldwrbuf){ /* conn->wrbuf!=NULL at start of rel_write means there is unsent data. * It's send in tcp_write_handler */ ///trace(cfg->trace_send, "%s: rel_write '%s' appended to wrbuf"); return; } towrite = strlen(conn->wrbuf->str); written = send(conn->sock, conn->wrbuf->str, towrite, 0); err = z_sock_errno; if (cfg->trace_send && strncmp(s, "AK", 2) != 0 && strncmp(s, "KA", 2) != 0 #ifdef CLEAN_TRACE && strncmp(s, "WI", 2) != 0 && strncmp(s, "WT", 2) != 0 #endif ){ char ss[260], *cc; int ll; g_strlcpy(ss, s, sizeof(ss)); ll = strlen(ss); if (ll > 0 && ss[ll-1] == '\n') ss[ll-1] = '\0'; for (cc = ss; *cc != '\0'; cc++) if (!isprint((unsigned char)*cc)) *cc = '.'; trace(cfg->trace_send, "%s: rel_write '%s' (%d/%d/%d)", conn->fid, ss, towrite, written, err); } if (written<0){ if (z_sock_wouldblock(err)){ zselect_set(zsel, conn->sock, tcp_read_handler, tcp_write_handler, tcp_exception_handler, conn); return; } trace(cfg->trace_sock, "error writing %s\n", z_sock_strerror()); tcp_disconnect(conn); return; } conn->tx += written; if (towrite == written){ g_string_free(conn->wrbuf, 1); conn->wrbuf = NULL; return; } g_string_erase(conn->wrbuf, 0, written); zselect_set(zsel, conn->sock, tcp_read_handler, tcp_write_handler, tcp_exception_handler, conn); } void rel_write_all(gchar *s){ int i; struct conn *conn; char ss[256]; strncpy(ss, s, 2); ss[2]='\0'; if (gnet->master && conn_prod_state(gnet->master)) { /*dbg("rel_write_all('%s') %d(%d)", ss, gnet->master->sock, tcp_state_s(gnet->master));*/ rel_write(gnet->master, s); } if (gnet->remote && conn_prod_state(gnet->remote)) { /*dbg("rel_write_all('%s') %d(%d)", ss, gnet->remote->sock, tcp_state_s(gnet->remote));*/ rel_write(gnet->remote, s); } /*dbg("rel_write_all('%s') ",ss);*/ for (i=0; ipeers->len; i++){ conn = (struct conn *) g_ptr_array_index(gnet->peers, i); if (conn_prod_state(conn)) { /*dbg("%d(%s) ", conn->sock,tcp_state_s(conn) );*/ rel_write(conn, s); } } /* dbg("\n"); */ } /* writes to all almost conn */ void rel_write_almost_all(struct conn *almost_conn, gchar *s){ int i; struct conn *conn; /* dbg("rel_write_almost_all(%d, '%s')\n", almost_conn->sock, s); */ if (gnet->master && conn_prod_state(gnet->master) && gnet->master != almost_conn){ rel_write(gnet->master, s); // return; } if (gnet->remote && conn_prod_state(gnet->remote) && gnet->remote != almost_conn){ rel_write(gnet->remote, s); // return; } for (i = 0; i < gnet->peers->len; i++){ conn = (struct conn *) g_ptr_array_index(gnet->peers, i); if (conn_prod_state(conn) && conn != almost_conn) { rel_write(conn, s); } } } struct conn *find_conn_by_remote_id(gchar *remote_id){ int i; struct conn *conn; for (i=gnet->peers->len-1;i>=0;i--){ /* backward loop because one ip+port can be here twice (DIST,DIST,DIST,CONN) */ conn=(struct conn *)g_ptr_array_index(gnet->peers, i); if (!conn->remote_id) continue; if (strcmp(conn->remote_id,remote_id)==0){ return conn; } } return NULL; } int net_route(gchar *s, gchar **items){ struct conn *conn; gchar *c; if (!items[0]) return -1; if (strcmp(gnet->myid,items[0])==0) return 0; /* packet is for me */ conn = find_conn_by_remote_id(items[0]); if (!conn || !conn_prod_state(conn)) return -1; c=g_strconcat(s,"\n",NULL); /* dbg("routing '%s'\n",c);*/ rel_write(conn, c); g_free(c); return 1; } static struct conn *sconn; /* a little hack with global var :-( */ void rel_read(struct conn *conn, gchar *line){ char s[1026], ss[260], *cc; gchar **items, *c; // dbg("rel_read(%d) '%s'\n", conn->sock, line); if (strncmp(line, "KA", 2)==0){ /* keepalive */ /* dbg(" recvd KA, sending AK\n");*/ g_snprintf(s, 1024, "AK%s\n", line+2); rel_write(conn, s); return; } if (strncmp(line, "AK", 2)==0){ /* keepalive ack */ /* dbg(" recvd AK, setting NS_CONNECTED\n");*/ /* todo AK number */ tcp_set_state(conn, NS_CONNECTED); return; } /************** app layer ********************/ if (cfg->trace_recv #ifdef CLEAN_TRACE && strncmp(line, "WI", 2) != 0 && strncmp(line, "WT", 2) != 0 #endif ){ g_strlcpy(ss, line, sizeof(ss)); for (cc = ss ; *cc != '\0'; cc++) if (!isprint((unsigned char)*cc)) *cc = '.'; trace(cfg->trace_recv, "%s: rel_read '%s' (%d)\n", conn->fid, ss, strlen(ss)); } if (strncmp(line, "AR", 2) == 0){ /* authentication request */ char *hash, *str; char *pcall; struct zmd5 md5; if (strlen(line) < 4) return; c = line + 3; items = g_strsplit(c, ";", 0); if (!items || !items[0]) return; pcall = cfg->pcall; if (ctest) pcall = ctest->pcall; hash = g_strdup_printf("%s;%s;%s", pcall, cfg->net_remote_pass, items[0]); zmd5_init(&md5); zmd5_update(&md5, (unsigned char*)hash, strlen(hash)); zmd5_final_str(&md5); //log_addf("AR hash='%s' %s", hash, md5.tdigest); str = g_strdup_printf("AU %s;%s\n", pcall, md5.tdigest); rel_write(conn, str); g_free(str); g_free(hash); g_strfreev(items); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); net_send_talk(); return; } if (strncmp(line, "AU", 2) == 0){ /* authenticate */ char *hash, *pcall; struct zmd5 md5; if (strlen(line) < 4) return; c = line + 3; items = g_strsplit(c, ";", 0); if (!items || !items[0] || !items[1]) return; pcall = cfg->pcall; if (ctest) pcall = ctest->pcall; hash = g_strdup_printf("%s;%s;%s", pcall, cfg->net_remote_pass, conn->salt); zmd5_init(&md5); zmd5_update(&md5, (unsigned char *)hash, strlen(hash)); zmd5_final_str(&md5); //log_addf("AU hash='%s' %s", hash, md5.tdigest); if (strcasecmp(items[0], pcall) != 0){ c = g_strdup_printf("BC user %s != %s\n", items[0], pcall); rel_write(conn, c); g_free(c); log_addf(VTEXT(T_BAD_AUTH_USER), items[0], pcall); g_strfreev(items); return; } if (strcasecmp(items[1], (char *)md5.tdigest) != 0){ //c = g_strdup_printf("BC Bad auth pass %s != %s\n", items[1], md5.tdigest); c = g_strdup_printf("BC passord\n"); rel_write(conn, c); g_free(c); log_addf(VTEXT(T_BAD_AUTH_PASS), items[1], md5.tdigest); g_strfreev(items); return; } log_addf(VTEXT(T_AUTHENTICATED_USER_S), items[0]); tcp_set_state(conn, NS_CONNECTED); conn->authstate = AS_OK; g_strfreev(items); net_send_id(); net_send_ac(); net_send_operator(); net_send_read_write_bands(); net_send_talk(); return; } if (strncmp(line, "BC", 2) == 0){ if (strlen(line) < 4) return; c = line + 3; log_addf(VTEXT(T_BAD_AUTHENTICATION_S), c); return; } if (conn->authstate == AS_WAIT) return; if (strncmp(line, "ID", 2)==0){ /* peers ID */ /* log_addf("%d ID '%s'",conn->sock, line); */ if (strlen(line)<4) return; c = line+3; if (conn->remote_id) g_free(conn->remote_id); conn->remote_id = g_strdup(c); return; } if (strncmp(line, "AC", 2)==0){ /* active contest */ /* log_addf("%d AC '%s'",conn->sock, line); */ if (strlen(line)<4) return; c = line+3; if (conn->remote_ac) g_free(conn->remote_ac); conn->remote_ac = g_strdup(c); if (!ctest) return; net_test_same_contest(conn, c); return; } if (strncmp(line, "CL", 2)==0){ /* close contest */ /* log_addf("%d CL", conn->sock);*/ if (conn->remote_ac) { g_free(conn->remote_ac); conn->remote_ac = NULL; } conn->is_same_ctest = 0; return; } if (strncmp(line, "LA", 2)==0){ /* latest qsos for each source */ int i; GHashTable *remote_latests; if (!conn->is_same_ctest) return; if (strlen(line)<3) return; c = line+3; remote_latests = g_hash_table_new(g_str_hash, g_str_equal); items=g_strsplit(c, ";", 0); for (i=0; items[i]!=NULL && items[i+1]!=NULL; i+=2){ gchar *source, *latest_s; source = items[i]; latest_s = items[i+1]; g_hash_table_insert(remote_latests, g_strdup(source), g_strdup(latest_s)); trace(cfg->trace_sock, " rcvd LA: %s = %d\n", source, latest_s); } g_strfreev(items); /*dbg("LA recvd sock=%d:\n", conn->sock);*/ dbg_str_hash(remote_latests); /* dbg("ctest->bystamp:\n"); dbg_str_hash(ctest->bystamp);*/ sconn = conn; rel_write(conn, "SR\n"); g_hash_table_foreach(ctest->bystamp, compare_remote_with_me, remote_latests); z_ptr_array_qsort(ctest->allqsos, compare_date_time_qsonrs); rel_write(conn, "ER\n"); g_hash_table_foreach_remove(remote_latests, free_gpointer_item, NULL); g_hash_table_destroy(remote_latests); net_send_operator(); net_send_read_write_bands(); net_send_talk(); return; } if (strncmp(line, "QS", 2)==0){ /* qso */ if (!ctest) { trace(cfg->trace_sock, "!!! QS recvd, ctest==NULL!! \n"); return; } if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c = line+3; qso_from_net(conn, c); return; } if (strncmp(line, "SR", 2)==0){ /* start of replication */ if (!conn->is_same_ctest) return; conn->replicating=1; return; } if (strncmp(line, "ER", 2)==0){ /* end of replication */ if (!ctest) return; if (!conn->is_same_ctest) return; conn->replicating=0; recalc_all_stats(ctest); /* include statsfifo */ /*check_autosave();*/ return; } if (strncmp(line, "TA", 2)==0){ /* talk */ gchar *d; if (strlen(line)<4) return; c = line+3; sw_talk_read(c, 0); d=g_strconcat("TA ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); return; } if (strncmp(line, "TB", 2)==0){ /* talk after connect */ gchar *d; if (strlen(line)<4) return; c = line+3; if (ctest) { gtalk->withouttime = 1; sw_talk_read(c, 1); gtalk->withouttime = 0; } d=g_strconcat("TB ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); return; } if (strncmp(line, "SK", 2)==0){ /* sked */ gchar *d; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c = line+3; /*dbg("SK conn=%p\n", conn);*/ sw_sked_read(c, 0); d=g_strconcat("SK ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); return; } if (strncmp(line, "DI", 2)==0){ /* OBSOLETE peers discovery */ int i; GString *gs; struct conn *tmpconn; /*dbg("DI recvd\n");*/ gs =g_string_sized_new(100); g_string_append(gs,"PE "); g_string_sprintfa(gs, "%s;", gnet->myid); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(gnet->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_id) return; g_string_sprintfa(gs, "%s;", tmpconn->remote_id); } g_string_sprintfa(gs,"\n"); trace(cfg->trace_sock, "sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PE", 2)==0){ /* OBSOLETE peers reply */ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; trace(cfg->trace_sock, "PEers '%s'\n", c); CONDGFREE(gnet->allpeers); gnet->allpeers=g_strdup(c); if (!gnet->peerfunc) return; do_peer_menu((void (*)(void *arg)) gnet->peerfunc); gnet->peerfunc=NULL; return; } if (strncmp(line, "CR", 2)==0){ /* configuration request */ gchar *d,*cc; GString *gs; char *token_ptr=NULL; //int tmpi; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 0); if (net_route(line,items)) return; if (!items[0] || !items[1]) return; /* dst,src */ gs=g_string_sized_new(10000); save_rc_string(gs); /* sets this socket temporarily to blocking mode */ z_sock_nonblock(conn->sock, 0); //tmpi=0; for (cc=strtok_r(gs->str,"\n",&token_ptr); cc!=NULL; cc=strtok_r(NULL,"\n",&token_ptr)){ /* if (tmpi++==4) break; */ /* TODO FIXME */ d=g_strdup_printf("CF %s;%s;%s\n",items[1],items[0],cc); rel_write(conn,d); g_free(d); } d=g_strdup_printf("CF %s;%s;eof\n",items[1],items[0]); rel_write(conn,d); z_sock_nonblock(conn->sock, 1); g_free(d); g_string_free(gs,TRUE); g_strfreev(items); return; } if (strncmp(line, "CF", 2)==0){ /* configuration line */ gchar *d; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 2); if (net_route(line,items)) goto x_cf; if (!items[0] || !items[1] || !items[2]) goto x_cf; /* dst,src */ d = strchr(items[2],'#'); if (d) *d='\0'; g_strstrip(items[2]); if (strlen(items[2])==0) goto x_cf; if (strcmp(items[2],"eof")==0){ log_addf(VTEXT(T_LOADED_CFG_SSSS),cfg->pcall, cfg->pwwlo, cfg->padr1,cfg->padr2); goto x_cf; } d = g_strconcat(items[2],"\n",NULL); /* dbg("doing something with '%s'\n",items[2]);*/ read_rc_line(d); g_free(d); x_cf:; g_strfreev(items); return; } if (strncmp(line, "WR", 2)==0){ /* C_W request */ gchar *d,*cc; GString *gs; char *token_ptr=NULL; // int tmpi; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 0); if (net_route(line,items)) return; if (!items[0] || !items[1]) return; /* dst,src */ gs=g_string_sized_new(10000); save_cw_string(cw,gs); /* sets this socket temporarily to blocking mode */ z_sock_nonblock(conn->sock, 0); // tmpi=0; for (cc=strtok_r(gs->str,"\n",&token_ptr); cc!=NULL; cc=strtok_r(NULL,"\n",&token_ptr)){ /* if (tmpi++==4) break; */ /* TODO FIXME */ d=g_strdup_printf("CW %s;%s;%s\n",items[1],items[0],cc); rel_write(conn,d); g_free(d); } d=g_strdup_printf("CW %s;%s;eof\n",items[1],items[0]); rel_write(conn,d); z_sock_nonblock(conn->sock, 1); g_free(d); g_string_free(gs,TRUE); g_strfreev(items); return; } if (strncmp(line, "CW", 2)==0){ /* C_W data */ if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 2); if (net_route(line,items)) goto x_cw; if (!items[0] || !items[1] || !items[2]) goto x_cw; /* dst;src;call loc stamp */ if (strcmp(items[2],"eof")==0){ gchar *s; int ret; log_addf(VTEXT(T_LOADED_CW)); s = g_strconcat(tucnak_dir, "/tucnakcw", NULL); z_wokna(s); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); goto x_cw; } /* dbg("doing something with '%s'\n",items[2]);*/ load_one_cw(cw,items[2]); x_cw:; g_strfreev(items); return; } if (strncmp(line, "DX", 2)==0){ /* DX spot */ gchar *d; int retdx; if (strlen(line)<4) return; c = line+3; /*dbg("DX conn=%p\n", conn);*/ retdx = dxc_read_spot(c); d=g_strconcat("DX ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); if (retdx == 0){ zg_ptr_array_foreach(struct subwin *, sw, gses->subwins){ if (sw->type != SWT_DXC) continue; sw_dxc_spot_from_net(sw, c); // modifies char case } } redraw_later(); return; } if (strncmp(line, "RG", 2)==0){ /* QRG for sked */ gchar *d; struct band *b; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 2); if (!items[0] || !items[1]) goto x_rg; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_rg; } g_free(b->skedqrg); b->skedqrg = fixsemi(g_strdup(items[1])); b->dirty_save = 1; d=g_strconcat("RG ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_rg: g_strfreev(items); return; } if (strncmp(line, "GR", 2)==0){ /* grab band command */ gchar *d; struct band *b; enum ccmd ccmd; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 3); if (!items[0] || !items[1] || !items[2]) goto x_gr; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_gr; } ccmd=(enum ccmd)atoi(items[1]); net_grab(b,ccmd,items[2]); d=g_strconcat("GR ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_gr: g_strfreev(items); return; } if (strncmp(line, "WC", 2)==0){ /* OBSOLETE working callsign */ return; } if (strncmp(line, "WT", 2)==0){ /* tmpqso item */ gchar *d; struct band *b; struct spypeer *sp; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 4); if (!items[0] || !items[1] || !items[2] || !items[3]) goto x_wt; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_wt; } if (atoi(items[2])==WT_OPERATOR){ if (strcmp(items[1], conn->remote_id)==0){ CONDGFREE(conn->operator_); conn->operator_ = g_strdup(items[3]); } } sp = get_spypeer_by_peerid(ctest->spypeers, items[1], z_char_uc(b->bandchar)); if (sp) { /* we want spy info from items[1] */ switch(atoi(items[2])){ case WT_CLEAR: clear_spypeer(sp); break; case WT_CALLSIGN: CONDGFREE(sp->callsign); sp->callsign=g_strdup(items[3]); break; case WT_RSTS: CONDGFREE(sp->rsts); sp->rsts=g_strdup(items[3]); break; case WT_RSTR: CONDGFREE(sp->rstr); sp->rstr=g_strdup(items[3]); break; case WT_QSONRS: CONDGFREE(sp->qsonrs); sp->qsonrs=g_strdup(items[3]); break; case WT_QSONRR: CONDGFREE(sp->qsonrr); sp->qsonrr=g_strdup(items[3]); break; case WT_EXC: CONDGFREE(sp->exc); sp->exc=g_strdup(items[3]); break; case WT_LOCATOR: CONDGFREE(sp->locator); sp->locator=g_strdup(items[3]); break; case WT_OPERATOR: CONDGFREE(sp->operator_); sp->operator_=g_strdup(items[3]); break; case WT_REMARK: CONDGFREE(sp->remark); sp->remark=g_strdup(items[3]); break; } } d=g_strconcat("WT ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); redraw_later(); x_wt: g_strfreev(items); return; } if (strncmp(line, "PT", 2)==0){ /* peer TX */ gchar *d; struct band *b; struct spypeer *sp; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 3); if (!items[0] || !items[1] || !items[2]) goto x_pt; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_pt; } sp = get_spypeer_by_peerid(ctest->spypeers, items[1], z_char_uc(b->bandchar)); if (sp) { /* we want spy info from items[1] */ sp->peertx = atoi(items[2]); } d=g_strconcat("PT ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); redraw_later(); x_pt: g_strfreev(items); return; } if (strncmp(line, "WI", 2)==0){ /* working inputline */ gchar *d; struct band *b; struct spypeer *sp; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 3); if (!items[0] || !items[1] || !items[2]) goto x_wi; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_wi; } sp = get_spypeer_by_peerid(ctest->spypeers, items[1], z_char_uc(b->bandchar)); if (sp) { /* we want spy info from items[1] */ CONDGFREE(sp->inputline); sp->inputline = g_strdup(items[2]); redraw_later(); } d=g_strconcat("WI ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_wi: g_strfreev(items); return; } if (strncmp(line, "R3", 2) == 0){ // contest request v3 char *d, *dstid, *srcid, *lo; int i, tok = 0; GString *gs; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); srcid = z_tokenize(c, &tok); lo = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ struct zstring *zs; int load_opts = 0; if (!ctest) { g_free(c); return; } // contest options gs = g_string_sized_new(4000); zs = contest_format(ctest); zg_string_eprintfa("e", gs, "S3 %s;%s", srcid, zs->str); zfree(zs); for (i = 0; i < ctest->bands->len; i++){ struct band *b = (struct band*)g_ptr_array_index(ctest->bands, i); struct zstring *zs = band_format(b); zg_string_eprintfa("e", gs, ";%s", zs->str); zfree(zs); } g_string_append_c(gs, '\n'); rel_write(conn, gs->str); if (lo != NULL) load_opts = atoi(lo); // start of transfer if (load_opts){ char *cc = g_strdup_printf("ST %s\n", srcid); rel_write(conn, cc); g_free(cc); tcp_set_state(conn, NS_LONG); } // CW database if (load_opts & LO_CW){ g_string_truncate(gs, 0); zg_string_eprintfa("e", gs, "CV %s;", srcid); format_cw_string(cw, gs); g_string_append_c(gs, '\n'); rel_write(conn, gs->str); } // Name database if (load_opts & LO_NAME){ g_string_truncate(gs, 0); zg_string_eprintfa("e", gs, "NA %s;", srcid); format_namedb_string(namedb, gs); g_string_append_c(gs, '\n'); rel_write(conn, gs->str); } // QRV database if (load_opts & LO_QRV){ g_string_truncate(gs, 0); zg_string_eprintfa("e", gs, "QR %s", srcid); for (i = 0; i < qrv->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); struct zstring *zs = qrv_format(qi); if (i > 0) g_string_append_c(gs, ';'); zg_string_eprintfa("e", gs, ";%s", zs->str); zfree(zs); } g_string_append_c(gs, '\n'); rel_write(conn, gs->str); } // end of transfer if (load_opts){ char *cc = g_strdup_printf("ET %s;%s\n", srcid, gnet->myid); rel_write(conn, cc); g_free(cc); } g_string_free(gs, TRUE); }else{ d = g_strconcat("R3 ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); } if (strncmp(line, "S3", 2) == 0){ // conntest options v3 int tok = 0; char *dstid, *d; struct zstring *zs; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ if (ctest){ g_free(c); return; } zs = zstrdup(line + 3 + tok); init_ctest2(0, 1, zs, NULL); zfree(zs); }else{ d = g_strconcat("S3 ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); } if (strncmp(line, "QR", 2) == 0){ // QRV database int tok = 0; char *it, *dstid, *d; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ while ((it = z_tokenize(c, &tok)) != NULL){ load_one_qrv(qrv, it); } }else{ d = g_strconcat("QR ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "CV", 2) == 0){ // CW database int tok = 0; char *it, *dstid, *d; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ while ((it = z_tokenize(c, &tok)) != NULL){ load_one_cw(cw, it); } }else{ d = g_strconcat("CV ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "NA", 2) == 0){ // Name database int tok = 0; char *it, *dstid, *d; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ while ((it = z_tokenize(c, &tok)) != NULL){ load_one_namedb(namedb, it); } }else{ d = g_strconcat("NA ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "ST", 2) == 0){ // start of transfer int tok = 0; char *dstid, *d; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ tcp_set_state(conn, NS_LONG); log_addf(VTEXT(T_LONG_TRANSFER_STARTED_PLEASE_WAIT)); }else{ d = g_strconcat("ST ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "ET", 2) == 0){ // end of transfer int tok = 0; char *dstid, *d, *srcid; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); srcid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ tcp_set_state(conn, NS_CONNECTED); d = g_strdup_printf("EB %s\n", srcid); rel_write(conn, d); g_free(d); log_addf(VTEXT(T_LONG_TRANSFER_FINISHED)); }else{ d = g_strconcat("ET ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "EB", 2) == 0){ // end of transfer back int tok = 0; char *dstid, *d; if (strlen(line) < 2) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ tcp_set_state(conn, NS_CONNECTED); }else{ d = g_strconcat("EB ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "D3", 2) == 0){ // discover peers v3 GString *gs; if (strlen(line) < 2) return; //c = line + 3; //d = g_strconcat("D3 ", c, "\n", NULL); rel_write_almost_all(conn, "D3 \n"); //g_free(d); if (ctest){ int i3; gs = g_string_sized_new(150); zg_string_eprintfa("e", gs, "P3 %s;%s;", gnet->myid, aband->operator_); for (i3 = 0; i3 < ctest->bands->len; i3++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i3); if (b->readonly) continue; g_string_append_c(gs, toupper(b->bandchar)); } if (ctest){ zg_string_eprintfa("e", gs, ";%s;%s;%s\n", ctest->cdate, ctest->pcall, ctest->tname); }else{ g_string_append(gs, ";;;"); } g_string_append_c(gs, '\n'); rel_write(conn, gs->str); g_string_free(gs, TRUE); } } if (strncmp(line, "P3", 2) == 0){ // peer info v3 char *d; if (strlen(line) < 4) return; c = line + 3; d = g_strconcat("P3 ", c, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); if (gnet->peers3){ if (gnet->peers3->len > 0) g_string_append_c(gnet->peers3, ';'); zg_string_eprintfa("e", gnet->peers3, "%s", c); //log_adds(gnet->peers3->str); } } #ifdef VOIP if (strncmp(line, "VS", 2) == 0){ // voip spy int tok = 0; char *dstid, *d; if (strlen(line) < 4) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ #ifdef HAVE_SNDFILE char *id = z_tokenize(c, &tok); char *voipaddr = z_tokenize(c, &tok); log_addf("VS: id='%s' voipaddr='%s'", id, voipaddr); voip_spy_remove(gssbd->voip, id); voip_spy_add(gssbd->voip, id, voipaddr); if (gssbd->voip){ d = g_strdup_printf("VA %s;%s;%s:%d\n", id, gnet->myid, inet_ntoa(gnet->my.sin_addr), gssbd->voip->udpport); rel_write(conn, d); g_free(d); } voip_spy_dump(gssbd->voip); #endif }else{ d = g_strconcat("VS ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "EV", 2) == 0){ // end of voip spy int tok = 0; char *dstid, *d; if (strlen(line) < 4) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ #ifdef HAVE_SNDFILE char *id = z_tokenize(c, &tok); voip_spy_remove(gssbd->voip, id); voip_spy_dump(gssbd->voip); #endif }else{ d = g_strconcat("EV ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } if (strncmp(line, "VA", 2) == 0){ // voip addr int tok = 0; char *dstid, *d; if (strlen(line) < 4) return; c = g_strdup(line + 3); dstid = z_tokenize(c, &tok); if (strcmp(dstid, gnet->myid) == 0){ #ifdef HAVE_SNDFILE char *id = z_tokenize(c, &tok); char *voipaddr = z_tokenize(c, &tok); log_addf("VA: id='%s' voipaddr='%s'", id, voipaddr); voip_spy_update(gssbd->voip, id, voipaddr); voip_spy_dump(gssbd->voip); #endif }else{ d = g_strconcat("VA ", line + 3, "\n", NULL); rel_write_almost_all(conn, d); g_free(d); } g_free(c); return; } #endif if (strncmp(line, "DO", 2)==0){ /* peers discovery with operators*/ int i; GString *gs; struct conn *tmpconn; char *op; /*dbg("DI recvd\n");*/ gs =g_string_sized_new(100); g_string_append(gs,"PO "); /* LOOK ALSO menu.c menu_spy_from_peer */ op="---"; if (ctest && aband && conn->operator_) op=aband->operator_; g_string_sprintfa(gs, "%s;%s;", gnet->myid,op); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(gnet->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_id) return; op="---"; if (ctest && aband && tmpconn->operator_) op=tmpconn->operator_; g_string_sprintfa(gs, "%s;%s;", tmpconn->remote_id, op); } g_string_sprintfa(gs,"\n"); trace(cfg->trace_sock, "sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PO", 2)==0){ /* peers reply with operators*/ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; trace(cfg->trace_sock, "PEers&OPs '%s'\n", c); CONDGFREE(gnet->allpeers); gnet->allpeers=g_strdup(c); if (!gnet->peerfunc) return; do_peer_operators_menu((void (*)(void *arg)) gnet->peerfunc); gnet->peerfunc=NULL; return; } if (strncmp(line, "DR", 2)==0){ /* peers discovery with operators and read-write bands */ int i, j; GString *gs; struct conn *tmpconn; char *op; struct band *b; char rwbands[40], *rwb; /*dbg("DI recvd\n");*/ gs =g_string_sized_new(100); g_string_append(gs,"PR "); /* LOOK ALSO menu.c menu_load_from_peer */ op="---"; if (ctest && aband && conn->operator_) op=aband->operator_; strcpy(rwbands, ""); j=0; if (ctest){ for (i=0; ibands->len; i++){ b=(struct band *) g_ptr_array_index(ctest->bands, i); if (b->readonly) continue; rwbands[j++]=z_char_uc(b->bandchar); } rwbands[j]='\0'; } g_string_sprintfa(gs, "%s;%s;%s;", gnet->myid,op, rwbands); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(gnet->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_id) return; op="---"; if (ctest && aband && tmpconn->operator_) op=tmpconn->operator_; rwb=""; if (tmpconn->rwbands) rwb=tmpconn->rwbands; g_string_sprintfa(gs, "%s;%s;%s;", tmpconn->remote_id, op, rwb); } g_string_sprintfa(gs,"\n"); trace(cfg->trace_sock, "sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PR", 2)==0){ /* peers reply with operators and read-write bands */ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; trace(cfg->trace_sock, "PEers&OPs&Bands '%s'\n", c); CONDGFREE(gnet->rwbpeers); gnet->rwbpeers=g_strdup(c); if (!gnet->peerfunc) return; do_spy_peer_menu((void (*)(void *arg)) gnet->peerfunc); gnet->peerfunc=NULL; return; } if (strncmp(line, "DC", 2)==0){ /* peers discovery with contest properties*/ int i; GString *gs; struct conn *tmpconn; char *cdate, *pcall, *tname; struct zstring *zs; dbg("DC recvd\n"); gs =g_string_sized_new(100); g_string_append(gs,"PC "); /* LOOK ALSO menu.c menu_contest_config_from_peer */ if (ctest) g_string_sprintfa(gs,"%s;%s %s %s;", gnet->myid, ctest->cdate, ctest->pcall, ctest->tname); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(gnet->peers,i); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_ac) continue; zs = zstrdup(tmpconn->remote_ac); cdate = ztokenize(zs, 1); pcall = ztokenize(zs, 0); tname = ztokenize(zs, 0); if (tname && *tname) g_string_sprintfa(gs,"%s;%s %s %s;", tmpconn->remote_id, cdate, pcall, tname); zfree(zs); } g_string_sprintfa(gs,"\n"); dbg("sending '%s'\n", gs->str); rel_write(conn, gs->str); g_string_free(gs,TRUE); return; } if (strncmp(line, "PC", 2)==0){ /* peers reply with contest properties */ /* TODO security - only if required */ if (strlen(line)<4) return; c = line+3; dbg("PC recvd '%s' func=%p\n", c, gnet->peerfunc); CONDGFREE(gnet->allpeers); gnet->allpeers=g_strdup(c); if (!gnet->peerfunc) return; do_peer_operators_menu((void (*)(void *arg)) gnet->peerfunc); gnet->peerfunc=NULL; return; } if (strncmp(line, "RT", 2)==0){ /* request all tmpqso states*/ gchar *d; struct band *b; if (!conn->is_same_ctest) return; if (strlen(line)<4) return; c=line+3; items=g_strsplit(c, ";", 2); if (!items[0] || !items[1]) goto x_rt; b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x_rt; } if (strcmp(items[1], gnet->myid)==0) { wkd_tmpqso(b, WT_CALLSIGN, b->tmpqsos[0].callsign); wkd_tmpqso(b, WT_RSTS, b->tmpqsos[0].rsts); wkd_tmpqso(b, WT_RSTR, b->tmpqsos[0].rstr); wkd_tmpqso(b, WT_QSONRS, b->tmpqsos[0].qsonrs); wkd_tmpqso(b, WT_QSONRR, b->tmpqsos[0].qsonrr); wkd_tmpqso(b, WT_EXC, b->tmpqsos[0].exc); wkd_tmpqso(b, WT_LOCATOR, b->tmpqsos[0].locator); wkd_tmpqso(b, WT_REMARK, b->tmpqsos[0].remark); wkd_tmpqso(b, WT_OPERATOR, b->operator_); peer_tx(b, gses->last_cq_timer_id>0?2:gses->tx); send_inputline(b); goto x_rt; /* noone has same myid, don't need to route */ } d=g_strconcat("RT ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_rt: g_strfreev(items); return; } if (strncmp(line, "OP", 2)==0){ /* operator */ gchar *d; if (strlen(line)<4) return; c=line+3; CONDGFREE(conn->operator_); conn->operator_=g_strdup(c); d=g_strconcat("OP ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); } if (strncmp(line, "RW", 2)==0){ /* read-write bands */ gchar *d; if (strlen(line)<4) return; c=line+3; CONDGFREE(conn->rwbands); conn->rwbands=g_strdup(c); d=g_strconcat("RW ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); } if (strncmp(line, "BA", 2)==0){ /* contest band settings */ struct zstring *zs; struct band *b; char *c; if (strlen(line)<4) return; zs = zstrdup(line+3); dbg("zs->str='%s'\n", zs->str); dbg("ztokens=%d\n", ztokens(zs)); if (ztokens(zs)<10){ dbg("bad format '%s'\n", line+3); return; } c = ztokenize(zs, 1); b = find_band_by_pband(c); if (!b){ dbg("Unknown band '%s'\n", c); zfree(zs); return; } c = ztokenize(zs, 0); b->psect = atoi(c); CONDGFREE(b->stxeq); b->stxeq = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->spowe); b->spowe = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->srxeq); b->srxeq = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->sante); b->sante = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->santh); b->santh = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->mope1); b->mope1 = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->mope2); b->mope2 = g_strdup(ztokenize(zs, 0)); CONDGFREE(b->remarks); b->remarks = g_strdup(ztokenize(zs, 0)); zfree(zs); b->dirty_save = 1; check_autosave(); } if (strncmp(line, "RS", 2)==0){ /* rotar set */ gchar *d; struct zstring *zs; gchar *netid, *rotstr, *qtf, *elev; dbg("line='%s'\n", line); if (strlen(line)<4) return; c=line+3; if (!gnet->myid) return; zs = zstrdup(c); netid = ztokenize(zs, 1); if (!netid) goto x_rs; rotstr = ztokenize(zs, 0); if (!rotstr) goto x_rs; qtf = ztokenize(zs, 0); if (!qtf) goto x_rs; elev = ztokenize(zs, 0); if (!elev) goto x_rs; if (strcmp(netid, gnet->myid)==0){ // my rotar struct rotar *rot; rot = get_rotar_by_rotstr(rotstr); if (!rot) goto x_rs; dbg("rotstr='%s' rotchar=%c\n",rotstr, rot->rotchar); rot_seek(rot, atoi(qtf)); } d=g_strconcat("RS ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); x_rs:; zfree(zs); } if (strncmp(line, "RU", 2)==0){ /* rotar update */ gchar *d; dbg("line='%s'\n", line); if (strlen(line)<4) return; c=line+3; rotar_remote_update(c); d=g_strconcat("RU ",c,"\n",NULL); rel_write_almost_all(conn, d); g_free(d); } if (strncmp(line, "RC", 2)==0){ /* request of contest */ gchar *d; GString *gs; struct zstring *zs, *zs2; char *bs[26+1]; int i; if (strlen(line)<4) return; c = line+3; items=g_strsplit(c, ";", 0); if (net_route(line,items)) return; if (!items[0] || !items[1]) return; /* dst,src */ if (!ctest) return; for (i=0; ibands->len; i++){ struct band *b; if (i > 26) return; b = (struct band*)g_ptr_array_index(ctest->bands, i); zs = band_format(b); bs[i] = g_strdup(zs->str); zfree(zs); } bs[i] = NULL; zs = contest_format(ctest); zs2 = zconcatesc(zs->str, bs[0], bs[1], bs[2], bs[3], bs[4], bs[5], bs[6], bs[7], bs[8], bs[9], bs[10], bs[11], bs[12], bs[13], bs[14], bs[15], bs[16], bs[17], bs[18], bs[19], bs[20], bs[21], bs[22], bs[23], bs[24], bs[25], NULL); for (i=0; bs[i]!=NULL; i++) g_free(bs[i]); zfree(zs); gs=g_string_sized_new(10000); d=g_strdup_printf("SC %s\n",zs2->str); zfree(zs2); rel_write(conn,d); g_free(d); g_string_free(gs,TRUE); g_strfreev(items); return; } if (strncmp(line, "SC", 2)==0){ /* configuration line */ struct zstring *zs2; if (ctest) return; // contest already opened if (strlen(line)<4) return; c = line+3; // dbg("recvd SC %s\n", c); zs2 = zstrdup(c); init_ctest2(0, 1, zs2, NULL); zfree(zs2); #if 0 items=g_strsplit(c, ";", 2); if (net_route(line,items)) goto x_cf; if (!items[0] || !items[1] || !items[2]) goto x_cf; /* dst,src */ d = strchr(items[2],'#'); if (d) *d='\0'; g_strstrip(items[2]); if (strlen(items[2])==0) goto x_cf; if (strcmp(items[2],"eof")==0){ log_addf(VTEXT(T_LOADED_CFG_SSSS),cfg->pcall, cfg->pwwlo, cfg->padr1,cfg->padr2); goto x_cf; } d = g_strconcat(items[2],"\n",NULL); /* dbg("doing something with '%s'\n",items[2]);*/ read_rc_line(d); g_free(d); x_cf:; g_strfreev(items); #endif return; } } gchar *qso_to_string(struct qso *q){ gchar *c; c = g_strdup_printf("QS %s;%s;%s;%s;" "%d;%s;%s;%s;" "%s;%s;%s;%s;" "%s;%d;%s;%s;" "%d;%s;%1.0f\n", q->band->pband, q->date_str, q->time_str, q->error?"ERROR":q->callsign, q->mode, C0(q->rsts), C0(q->qsonrs), C0(q->rstr), C0(q->qsonrr), C0(q->exc), C0(q->locator), q->source, q->operator_, (int)q->stamp, q->callsign, "", q->ser_id, fixsemi(C0(q->remark)), q->qrg); return c; } void compare_remote_with_me(gpointer key, gpointer value, gpointer data){ gchar *source, *rem_latest_str; ZPtrArray *ia; GHashTable *remote_latests; struct qso dummyq, *pdq=&dummyq, *q; int i; gchar *c; gint first_qso; source = (gchar*) key; ia = (ZPtrArray *) value; remote_latests = (GHashTable *)data; /*dbg("nsource=%s, ia->len=%d\n", source, ia->len);*/ rem_latest_str = (gchar *) g_hash_table_lookup(remote_latests, source); if (rem_latest_str){ /* dbg("remote has some qso from this source\n");*/ memset(&dummyq, 0, sizeof(dummyq)); dummyq.stamp = atoi(rem_latest_str); first_qso = z_ptr_array_bsearch_index(ia, &pdq, compare_stamp); if (first_qso<0) { /* remote's last qso not found in my qsos */ /*dbg("remote's last qso not found between my qsos");*/ q = (struct qso *) z_ptr_array_index(ia, ia->len-1); /* my last qso (ia->len!=0) */ if (compare_stamp(&q, &pdq)<0){ trace(cfg->trace_qsos, " %s: remote has newer qso than me",source); }else{ trace(cfg->trace_qsos, " %s: ooops remote's last not found but is older!",source); first_qso = 0; /* Ooops! remote's last qso is missing */ } } /* dbg("nsource=%s, first_qso=%d ia->len=%d\n", source, first_qso, ia->len);*/ /* there can be some qsos with the same stamp before */ /* these must be replicated too */ /*dbg("first_qso(1)=%d\n", first_qso);*/ while(first_qso>0){ q = (struct qso *) z_ptr_array_index(ia, first_qso-1); if (compare_stamp(&q, &pdq)!=0) break; first_qso--; } }else{ /* remote has no qso from this source */ trace(cfg->trace_qsos, " %s: remote has no qso\n", source); first_qso = 0; } dbg("replicating sock=%d source=%22s ser_id %d...%d \n", sconn->sock, source, first_qso, ia->len-1); for (i=first_qso; ilen; i++){ q = (struct qso *) z_ptr_array_index(ia, i); if (!q) continue; c = qso_to_string(q); /* dbg("replicating %s %s %d %s/%d\n",q->callsign, q->qsonrs, q->stamp, source,q->ser_id);*/ rel_write(sconn, c); if (strlen(c)>0 && c[strlen(c)-1]=='\n') c[strlen(c)]='\0'; dump_qso(q,"replicating2\n"); g_free(c); } trace(cfg->trace_qsos, "----end of replications\n"); } void qso_from_net(struct conn *conn, gchar *str){ int i; gchar **items; struct band *b; struct qso *lastqso, *eq, *q; gint last_qsonr, mode, qsonr, stamp, ser_id; gchar *date_str, *time_str, *callsign_or_error, *rsts, *qsonrs; gchar *rstr, *qsonrr, *exc, *locator, *source, *operator_, *callsign, *remark; int found,sortit; int same_km=0; double qrg = 0.0; char rawcall[20]; items=g_strsplit(str, ";", 0); for (i=0;i<=16;i++) if (items[i]==NULL) {g_strfreev(items);return;} date_str=items[1]; time_str=items[2]; callsign_or_error=items[3]; mode=atoi(items[4]); rsts=items[5]; qsonrs=items[6]; rstr=items[7]; qsonrr=items[8]; exc=items[9]; locator=items[10]; source=items[11]; operator_=items[12]; stamp=atoi(items[13]); callsign=items[14]; ser_id=atoi(items[16]); if (!items[17]){ remark=""; }else{ remark=items[17]; if (items[18]){ qrg = atof(items[18]); } } /* dbg("qso_from_net '%s'\n", str);*/ /*dbg("qso_from_net sock=%d %d %s %-10s %s | ", */ /*conn->sock, stamp, qsonrs, callsign, source);*/ trace(cfg->trace_qsos, "\n----qso_from_net: '%s'", str); b = find_band_by_pband(items[0]); if (!b) { trace(cfg->trace_qsos, "!!! unknown band '%s'", items[0]); goto x; } trace(cfg->trace_qsos, "from %s '%s'\n",conn->remote_id, str); z_get_raw_call(rawcall, callsign); q = (struct qso *)g_hash_table_lookup(b->rawqsoshash, rawcall); if (q != NULL) g_hash_table_remove(b->rawqsoshash, rawcall); qsonr = atoi(qsonrs); q = get_qso_by_id(b, source, ser_id); // if (q) { dbg(" ID ");trace(cfg->trace_qsos, " found by ID (%s:%d)", source, ser_id);dump_qso(q,"id");} if (!q && ctest->qsoused>0 && !ctest->qsoglob){ q = get_qso_by_qsonr(b, qsonr); if (q) { trace(cfg->trace_qsos, " found by QSO NR");dump_qso(q,"nr");} } found=1; if (!q) { found=0; trace(cfg->trace_qsos, " QSO not found, creating new"); if (ctest->qsoused>0 && !ctest->qsoglob){ /* fill with errors */ lastqso = get_qso(b, b->qsos->len-1); /* -1 is correct */ if (lastqso){ last_qsonr = atoi(lastqso->qsonrs); dump_qso(lastqso,"lastqso"); }else last_qsonr = 0; if (last_qsonr+1 != qsonr) trace(cfg->trace_qsos, " fill with ERRORS QSONRs <%d..%d)\n", last_qsonr+1, qsonr); for (i=last_qsonr+1; isource = g_strdup("neterr"); /* ignored by add_qso_to_index */ eq->operator_ = g_strdup("net"); eq->date_str = g_strdup(""); eq->time_str = g_strdup(""); eq->callsign = g_strdup("ERROR"); eq->rsts = g_strdup(""); eq->rstr = g_strdup(""); eq->qsonrs = g_strdup_printf("%03d", i); eq->qsonrr = g_strdup(""); eq->exc = g_strdup(""); eq->locator = g_strdup(""); eq->remark = g_strdup(""); eq->qrg = 0.0; eq->error = 1; add_qso(b, eq); update_stats(b, b->stats, eq); recalc_allb_stats(); minute_stats(b); dump_qso(eq, "error"); } if (!some_replicating(gnet)) check_autosave(); } q = g_new0(struct qso, 1); /* dbg("N ");*/ }else{ struct qso *q2; char rawcall2[20]; trace(cfg->trace_qsos, " updating existing qso"); dump_qso(q,"updating"); z_get_raw_call(rawcall2, q->callsign); q2 = (struct qso *)g_hash_table_lookup(b->rawqsoshash, rawcall2); if (q2 != NULL) g_hash_table_remove(b->rawqsoshash, rawcall2); } g_hash_table_insert(b->rawqsoshash, g_strdup(rawcall), q); /* dbg("F%d S%d ", found, stamp-q->stamp);*/ if (stamp < q->stamp) { /* dbg("stamp < q->stamp\n");*/ goto add; } sortit = (stamp != q->stamp); q->band = b; STORE_STR (q,date_str); STORE_STR (q,time_str); if (q->locator){ same_km=!strcasecmp(q->locator, locator); }else{ same_km=2; /*new qso or contest without locator*/ } if (strcasecmp(callsign_or_error, "ERROR")==0){ if (!q->error) same_km=0; q->error = 1; }else{ if (q->error) same_km=0; q->error=0; } STORE_INT (q,mode); STORE_STR (q,rsts); STORE_STR (q,qsonrs); STORE_STR (q,rstr); STORE_STR (q,qsonrr); STORE_STR (q,exc); STORE_STR_UC(q,locator); STORE_STR (q,remark); fixsemi(q->remark); STORE_INT (q,ser_id); compute_qrbqtf(q); if (q && q->source && strcmp(q->source,"neterr")==0){ /* spojeni bylo predtim sitova chyba, musime prepsat zdroj */ STORE_STR(q,source); add_qso_to_index(q,0); if (!q->error) invalidate_tmpqso(b, q); sortit=1; }else{ /* updatuje se existujici qso */ dbg("--------- found=%d\n", found); /* if (!found) STORE_STR(q,source); */ if (q && q->source && strcmp(source, q->source)!=0){ dbg("--------- bude se prepisovat source %s -> %s\n", q->source, source); dump_all_sources(ctest); dbg("---before remove_qso_from_index\n"); dump_all_sources(ctest); remove_qso_from_index(q); dbg("---after remove_qso_from_index\n"); dump_all_sources(ctest); STORE_STR(q, source); dbg("---before add_qso_to_index\n"); dump_all_sources(ctest); add_qso_to_index(q, 1); dbg("---after add--\n"); dump_all_sources(ctest); }else{ STORE_STR(q, source); } } STORE_STR_UC(q,operator_); STORE_INT (q,stamp); STORE_STR_UC(q,callsign); /* items[15] unused (century) */ STORE_INT(q, qrg); /* qrg is double but macro is the same */ if (sortit) { g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); z_ptr_array_qsort(ctest->allqsos, compare_date_time_qsonrs); } /*update_stats(b->stats, b, q);*/ write_qso_to_swap(b, q); if (!gses->redraw_timer_id) gses->redraw_timer_id = zselect_timer_new(zsel, DELAY_AFTER_REPLICATION, net_timer_redraw, NULL); add:; dirty_band(b); if (!found){ /* dbg("adding\n");*/ add_qso(b, q); if (!q->error) invalidate_tmpqso(b, q); update_stats(b, b->stats, q); recalc_allb_stats(); minute_stats(b); #ifdef Z_HAVE_SDL if (b==aband) map_add_qso(q, aband); /*plot new QSO only if it is on active band*/ #endif }else{ #ifdef Z_HAVE_SDL if (!same_km) map_clear_qso(q, aband); #endif /* dbg("dont adding\n");*/ } replicate_qso(conn, q); if (!some_replicating(gnet)) check_autosave(); dump_qso(q,"after"); x:; /* only unknown band */ g_strfreev(items); trace(cfg->trace_qsos, "\n"); } /*****************************************************************/ void net_send_id(){ gchar *c; c = g_strdup_printf("ID %s:%d\n", inet_ntoa(gnet->my.sin_addr), ntohs(gnet->my.sin_port)); rel_write_all(c); g_free(c); } void net_send_ac(){ gchar *c; int i,j; struct conn *conn; char qrvbands[50]; if (!ctest) return; for (i=j=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); qrvbands[j++]=z_char_uc(b->bandchar); } qrvbands[j]='\0'; c = g_strdup_printf("AC %s;%s;%s;%s\n", ctest->cdate?ctest->cdate:"", ctest->pcall?ctest->pcall:"", ctest->tname?ctest->tname:"", qrvbands); rel_write_all(c); g_free(c); if (gnet->master){ net_test_same_contest(gnet->master, gnet->master->remote_ac); } if (gnet->remote){ net_test_same_contest(gnet->remote, gnet->remote->remote_ac); } for (i=0; ipeers->len; i++){ conn = (struct conn *) g_ptr_array_index(gnet->peers, i); net_test_same_contest(conn, conn->remote_ac); } } void net_send_operator(void){ int i; char *c; char *op = cfg->pcall; if (cfg->operator_ && *cfg->operator_) op = cfg->operator_; c = g_strdup_printf("OP %s\n", op); rel_write_all(c); g_free(c); if (ctest){ for (i=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); wkd_tmpqso(b, WT_OPERATOR, b->operator_); } } } void net_send_read_write_bands(void){ int i, j; char rwbands[40]; gchar *c; strcpy(rwbands, ""); j=0; if (ctest){ for (i=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); if (b->readonly) continue; rwbands[j++]=z_char_uc(b->bandchar); } rwbands[j]='\0'; } c=g_strdup_printf("RW %s\n", rwbands); rel_write_all(c); g_free(c); } void net_send_talk(void){ int i; gchar *c; /*if (gnet->master){ rel_write_all("TB master1\n"); rel_write_all("TB master2\n"); }else{ rel_write_all("TB slave1\n"); rel_write_all("TB slave2\n"); } return; */ for (i = Z_MAX((int)gtalk->items->len - 20, 0); i < gtalk->items->len; i++){ // latest 20 items char *talk = (char*)g_ptr_array_index(gtalk->items, i); if (strlen(talk) < 7) continue; if (strncmp(talk + 6, "***", 3) == 0) continue; c=g_strdup_printf("TB %s\n", talk); rel_write_all(c); g_free(c); } } void net_test_same_contest(struct conn *conn, gchar *ac_text){ gchar **items; gchar *cdate, *pcall, *tname, *qrvb; int i,j; char qrvbands[50]; /* log_addf("%d test_same", conn->sock);*/ if (!ctest || !ac_text) return; if (!conn_prod_state(conn)) return; for (i=j=0;ibands->len;i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); qrvbands[j++]=z_char_uc(b->bandchar); } qrvbands[j]='\0'; items=g_strsplit(ac_text, ";", 0); for (i=0;i<4;i++) { if (items[i]==NULL) { log_adds(VTEXT(T_CTEST_NOT_SAME_AC)); g_strfreev(items); return; } } cdate = items[0]; pcall = items[1]; tname = items[2]; qrvb = items[3]; if (strncmp(cdate, ctest->cdate, 8)==0 && strcasecmp(pcall, ctest->pcall)==0 && strcasecmp(tname, ctest->tname)==0 && strcasecmp(qrvb, qrvbands)==0){ gchar *latests_str; /*dbg(" To je on!! Meho srdce sampion!! sock=%d\n", conn->sock);*/ latests_str = get_latests_str(); rel_write(conn, latests_str); g_free(latests_str); //log_addf("Contest is the same"); conn->is_same_ctest = 1; }else{ /*GString *gs; gs=g_string_new("Contest is not the same: "); if (strncmp(cdate, ctest->cdate, 8)) g_string_sprintfa(gs, "DATE(%s,%s) ", cdate, ctest->cdate); if (strcasecmp(pcall, ctest->pcall)) g_string_sprintfa(gs, "CALL(%s,%s) ", pcall, ctest->pcall); if (strcasecmp(tname, ctest->tname)) g_string_sprintfa(gs, "CONTEST(%s,%s) ", tname, ctest->tname); if (strcasecmp(qrvb, qrvbands)) g_string_sprintfa(gs, "BANDS(%s,%s) ", qrvb, qrvbands); log_addf(gs->str); g_string_free(gs, 1);*/ conn->is_same_ctest = 0; } g_strfreev(items); trace(cfg->trace_recv, "%s: is_same_ctest=%d\n", conn->fid, conn->is_same_ctest); } void net_timer_redraw(void *arg){ struct band *b; int i; if (ctest && !ctest->qsoglob){ for (i=0; ibands->len; i++){ b = (struct band *)g_ptr_array_index(ctest->bands, i); recalc_stats(b); recalc_worked_skeds(b); if (ctest->qsoused && b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); wkd_tmpqso(b, WT_QSONRS, b->tmpqsos[0].qsonrs); } } } redraw_later(); gses->redraw_timer_id = 0; } void replicate_qso(struct conn *sourceconn, struct qso *q){ gchar *c; int i; struct conn *conn; c = qso_to_string(q); trace(cfg->trace_qsos, "replicating1: %s(%s:%d) band=%c", q->callsign, q->source, q->ser_id, z_char_uc(q->band->bandchar)); dump_qso(q,"replicating1"); if (gnet->master && conn_prod_state(gnet->master) && (sourceconn==NULL || sourceconn->sock!=gnet->master->sock) ){ /*dbg("replicating mast=%d %d %s %s\n", gnet->master->sock, q->stamp, q->qsonrs, q->callsign);*/ rel_write(gnet->master, c); } if (gnet->remote && conn_prod_state(gnet->remote) && (sourceconn==NULL || sourceconn->sock!=gnet->remote->sock) ){ /*dbg("replicating mast=%d %d %s %s\n", gnet->master->sock, q->stamp, q->qsonrs, q->callsign);*/ rel_write(gnet->remote, c); } for (i=0; ipeers->len; i++){ conn = (struct conn *)g_ptr_array_index(gnet->peers, i); if (conn_prod_state(conn) && (sourceconn==NULL || sourceconn->sock!=conn->sock)) { /* dbg("replicating sock=%d %d %s %s\n", conn->sock, q->stamp, q->qsonrs, q->callsign);*/ rel_write(conn, c); } } g_free(c); } gchar *get_timer_str(struct conn *conn){ static char s[100]; ztime interval; strcpy(s,""); if (!conn) return s; interval=zselect_timer_get(zsel, conn->timer); interval/=1000; sprintf(s, "%4d", (int)interval); return s; } void send_config_request(int no){ char *peerid,*c; struct conn *gw; gchar **items; int i; /*ndbg("send_config_request '%d'\n",no);*/ items = g_strsplit(gnet->allpeers,";",0); for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } g_strfreev(items); return; found: peerid=items[i]; if (cmp_sin(&gnet->global, &gnet->my)==0) { /* i'm master */ gw=find_conn_by_remote_id(peerid); if (!gw) { log_addf(VTEXT(T_PEER_NOT_FOUND), peerid); goto x; } }else{ gw=gnet->master; } if (!conn_prod_state(gw)) goto x; /* gw - connection to requested peer/gateway to peer */ c=g_strdup_printf("CR %s;%s\n",peerid,gnet->myid); rel_write(gw,c); g_free(c); x:; g_strfreev(items); } void send_cwdb_request(int no){ char *peerid,*c; struct conn *gw; gchar **items; int i; /*dbg("send_cwdb_request '%d'\n",no);*/ items = g_strsplit(gnet->allpeers,";",0); for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } g_strfreev(items); return; found: peerid=items[i]; if (cmp_sin(&gnet->global, &gnet->my)==0) { /* i'm master */ gw=find_conn_by_remote_id(peerid); if (!gw) { log_addf(VTEXT(T_PEER_NOT_FOUND), peerid); goto x; } }else{ gw=gnet->master; } if (!conn_prod_state(gw)) goto x; /* gw - connection to requested peer/gateway to peer */ c=g_strdup_printf("WR %s;%s\n",peerid,gnet->myid); rel_write(gw,c); g_free(c); x:; g_strfreev(items); } void send_contest_config_request(int no){ char *peerid,*c; struct conn *gw; gchar **items; int i; dbg("send_contest_config_request(%d)\n", no); items = g_strsplit(gnet->allpeers,";",0); for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } g_strfreev(items); return; found: peerid=items[i]; if (cmp_sin(&gnet->global, &gnet->my)==0) { /* i'm master */ gw=find_conn_by_remote_id(peerid); if (!gw) { log_addf(VTEXT(T_PEER_NOT_FOUND), peerid); goto x; } }else{ gw=gnet->master; } if (!conn_prod_state(gw)) goto x; /* gw - connection to requested peer/gateway to peer */ c=g_strdup_printf("RC %s;%s\n",peerid,gnet->myid); rel_write(gw,c); g_free(c); x:; g_strfreev(items); } int some_replicating(struct net *net){ int i; struct conn *conn; if (gnet->master && conn_prod_state(gnet->master) && gnet->master->replicating) return 1; if (gnet->remote && conn_prod_state(gnet->remote) && gnet->remote->replicating) return 1; for (i=0;ipeers->len;i++){ conn = (struct conn *) z_ptr_array_index(gnet->peers, i); if (!conn_prod_state(conn)) continue; if (conn->replicating) return 1; } return 0; } void iface_info(GString *gs){ int i, mi; struct ziface_struct ifaces[MAX_INTERFACES]; g_string_sprintfa(gs, "\n interfaces info:\n"); mi = zifaces_get(ifaces, MAX_INTERFACES); /* network byteorder */ for (i=0;isin.sin_port); zg_free0(conn->fid); conn->fid = g_strdup_printf("%3d", ntohl(conn->sin.sin_addr.s_addr) & 0xff); /*if (port == NET_PORT) return; if (port > NET_PORT && port < NET_PORT + 'z' - 'a') { conn->fid[strlen(conn->fid) - 1] = 'a' + port - NET_PORT - 1; return; } conn->fid[strlen(conn->fid) - 1] = '!';*/ } tucnak-4.04/src/menu6.c0000644000175000017500000006123412534604022011640 00000000000000/* Tucnak - VHF contest log Copyright (C) 2012-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "ac.h" #include "bfu.h" #include "dsp.h" #include "httpd.h" #include "inputln.h" #include "main.h" #include "menu.h" #include "net.h" #include "pa.h" #include "qsodb.h" #include "rc.h" #include "sdr.h" #include "tsdl.h" int httpd_enable, httpd_show_priv; char httpd_port_str[EQSO_LEN]; void refresh_httpd_opts(void *arg){ cfg->httpd_enable = httpd_enable; STORE_SINT(cfg, httpd_port); cfg->httpd_show_priv = httpd_show_priv; free_httpd(httpd); httpd = init_httpd(); progress(NULL); } void menu_httpd_opts(void *arg){ struct dialog *d; int i; httpd_enable = cfg->httpd_enable; g_snprintf(httpd_port_str, EQSO_LEN, "%d", cfg->httpd_port); httpd_show_priv = cfg->httpd_show_priv; d = (struct dialog *)g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_HTTPD_OPTIONS);//VTEXT(T_RIGOPTS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_httpd_opts; d->y0 = 1; d->items[i = 0].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&httpd_enable; d->items[i].msg = CTEXT(T_ENABLE);//CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = httpd_port_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 65535; d->items[i].msg = CTEXT(T_TCP_PORT2);//CTEXT(T_RIG_MODEL); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&httpd_show_priv; d->items[i].msg = CTEXT(T_PRIVATE);//CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; /* 6 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /* open contest from net */ int load_cw, load_name, load_qrv; void refresh_load_from_net(void *arg){ int load_opts = 0; int tok = 0, menui = 0, no = GPOINTER_TO_INT(arg); char *peers3, *peer, *id, *tname, *c; if (load_cw) load_opts |= LO_CW; if (load_name) load_opts |= LO_NAME; if (load_qrv) load_opts |= LO_QRV; peers3 = g_strdup(gnet->peers3->str); while ((peer = z_tokenize(peers3, &tok)) != NULL){ int tok2 = 0; id = z_tokenize(peer, &tok2); /*op =*/ z_tokenize(peer, &tok2); /*rwbands =*/ z_tokenize(peer, &tok2); /*cdate =*/ z_tokenize(peer, &tok2); /*pcall =*/ z_tokenize(peer, &tok2); tname = z_tokenize(peer, &tok2); if (!tname) continue; if (menui == no){ c = g_strdup_printf("R3 %s;%s;%d\n", id, gnet->myid, load_opts); rel_write_all(c); g_free(c); break; } menui++; } g_free(peers3); } void load_from_net(void *arg){ struct dialog *d; int i, tok = 0, menui = 0; char *peers3, *peer, *id; int no = GPOINTER_TO_INT(arg); load_cw = 1; load_name = 1; load_qrv = 1; peers3 = g_strdup(gnet->peers3->str); while ((peer = z_tokenize(peers3, &tok)) != NULL){ int tok2 = 0; id = z_tokenize(peer, &tok2); if (menui == no){ char *myid = g_strdup(gnet->myid); char *peerid = g_strdup(id); z_strip_from(myid, ':'); z_strip_from(peerid, ':'); if (strcmp(myid, peerid) == 0){ load_cw = 0; load_name = 0; load_qrv = 0; } g_free(myid); g_free(peerid); break; } menui++; } g_free(peers3); d = (struct dialog *)g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_LOAD_FROM_NET);//VTEXT(T_RIGOPTS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_load_from_net; d->refresh_data = arg; d->y0 = 1; d->items[i = 0].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&load_cw; d->items[i].msg = CTEXT(T_LOAD_CWDB);//CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 2; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&load_name; d->items[i].msg = CTEXT(T_LOAD_NAMEDB);//CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 2; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&load_qrv; d->items[i].msg = CTEXT(T_LOAD_QRVDB);//CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int robands_data[26]; void refresh_robands(void *arg){ int i; if (!ctest) return; for (i = 0; i < ctest->bands->len; i++){ struct band *b; if (i == 26) break; b = (struct band *)g_ptr_array_index(ctest->bands, i); b->readonly = robands_data[i]; il_readonly(b->il, b->readonly); } } void robands(void *arg){ struct dialog *d; int i; if (!ctest) return; if (!ctest->bands->len) return; d = (struct dialog *)g_malloc(sizeof(struct dialog) + 30 * sizeof(struct dialog_item)); memset(d, 0, sizeof(struct dialog) + 30 * sizeof(struct dialog_item)); d->title = VTEXT(T_READONLY_BANDS);//VTEXT(T_RIGOPTS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_robands; d->refresh_data = arg; d->y0 = 1; for (i = 0; i < ctest->bands->len; i++){ struct band *b; if (i == 26) break; b = (struct band *)g_ptr_array_index(ctest->bands, i); robands_data[i] = b->readonly; d->items[i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&robands_data[i]; d->items[i].msg = b->bandname; d->items[i].wrap = 1; } i--; d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } //---- A/C -------------------------------------------------------------------- int ac_enable; char ac_url[MAX_STR_LEN]; char ac_kfactor_str[DBL_LEN]; char ac_arwidth_str[DBL_LEN]; char ac_minelev_str[DBL_LEN]; char ac_maxelev_str[DBL_LEN]; char ac_mindur_str[DBL_LEN]; char ac_maxdelta_str[DBL_LEN]; char ac_minalt_str[DBL_LEN]; void refresh_ac_opts(void *arg){ STORE_INT(cfg, ac_enable); STORE_STR(cfg, ac_url); STORE_SDBL(cfg, ac_kfactor); STORE_SDBL(cfg, ac_arwidth); STORE_SDBL(cfg, ac_minelev); STORE_SDBL(cfg, ac_maxelev); STORE_SINT(cfg, ac_mindur); STORE_SDBL(cfg, ac_maxdelta); STORE_SINT(cfg, ac_minalt); free_acs(gacs); gacs = init_acs(); progress(NULL); } void menu_ac_opts(void *arg){ struct dialog *d; int i; ac_enable = cfg->ac_enable; g_snprintf(ac_url, MAX_STR_LEN, "%s", cfg->ac_url); g_snprintf(ac_kfactor_str, DBL_LEN, "%3.3f", cfg->ac_kfactor); g_snprintf(ac_arwidth_str, DBL_LEN, "%3.1f", cfg->ac_arwidth); g_snprintf(ac_minelev_str, DBL_LEN, "%3.1f", cfg->ac_minelev); g_snprintf(ac_maxelev_str, DBL_LEN, "%3.1f", cfg->ac_maxelev); g_snprintf(ac_mindur_str, DBL_LEN, "%d", cfg->ac_mindur); g_snprintf(ac_maxdelta_str, DBL_LEN, "%3.1f", cfg->ac_maxdelta); g_snprintf(ac_minalt_str, DBL_LEN, "%d", cfg->ac_minalt); d = (struct dialog *)g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_AC_OPTIONS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_ac_opts; d->y0 = 1; d->items[i = 0].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&ac_enable; d->items[i].msg = CTEXT(T_ENABLE_AC); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ac_url; d->items[i].maxl = 42; d->items[i].msg = CTEXT(T_AC_URL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].maxl = 7; d->items[i].dlen = DBL_LEN; d->items[i].data = (char *)&ac_kfactor_str; d->items[i].msg = CTEXT(T_K_FACTOR); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = DBL_LEN; d->items[i].maxl = DBL_LEN - 4; d->items[i].data = (char *)&ac_arwidth_str; d->items[i].msg = CTEXT(T_AC_AREA_WIDTH); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = DBL_LEN; d->items[i].data = (char *)&ac_minelev_str; d->items[i].msg = CTEXT(T_AC_EL_ANGLE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = DBL_LEN; d->items[i].data = (char *)&ac_maxelev_str; d->items[i].msg = CTEXT(T_AC_MAX_EL_ANGLE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = DBL_LEN; d->items[i].maxl = DBL_LEN - 11; d->items[i].data = (char *)&ac_mindur_str; d->items[i].msg = CTEXT(T_AC_MIN_DURATION); d->items[i].wrap = 1; /*d->items[++i].type = D_FIELD; d->items[i].dlen = DBL_LEN; d->items[i].data = (char *)&ac_maxdelta_str; d->items[i].msg = CTEXT(T_AC_MAX_DIFF); d->items[i].wrap = 1;*/ d->items[++i].type = D_FIELD; d->items[i].dlen = 6; d->items[i].data = (char *)&ac_minalt_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 20000; d->items[i].msg = TRANSLATE("Minimal AC altitude [m]"); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /**************************** DSP ****************************************/ int sdr_enable, sdr_rec_dsp_type, sdr_play_dsp_type; char sdr_speed_str[EQSO_LEN]; char sdr_af_speed_str[EQSO_LEN]; char sdr_block_str[EQSO_LEN]; char sdr_cw_low_str[EQSO_LEN], sdr_cw_high_str[EQSO_LEN], sdr_ssb_low_str[EQSO_LEN], sdr_ssb_high_str[EQSO_LEN]; // HAVE_ALSA char sdr_pcm_rec[MAX_STR_LEN]; char sdr_pcm_play[MAX_STR_LEN]; int sdr_pa_rec, sdr_pa_play; char sdr_pa_rec_src[MAX_STR_LEN], sdr_pa_play_src[MAX_STR_LEN]; #ifdef HAVE_SNDFILE char sdr_sndfilename[MAX_STR_LEN]; #endif char new_sdr_sndfilename[MAX_STR_LEN]; int sdr_sndfilename_index = -1; int sdr_samplerate_index = -1; int sdr_af_samplerate_index = -1; #ifdef HAVE_PORTAUDIO static void pa_rec_src_func(void *arg){ int active = GPOINTER_TO_INT(arg); const PaDeviceInfo *di = Pa_GetDeviceInfo(active); g_snprintf(sdr_pa_rec_src, MAX_STR_LEN, "%d: %s", active, di->name); sdr_pa_rec = active; redraw_later(); } static int dlg_pa_rec_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, max, sel = 0, n; struct menu_item *mi; max = Pa_GetDeviceCount(); mi = new_menu(1); n = 0; for (i = 0; i < max; i++){ const PaDeviceInfo *di = Pa_GetDeviceInfo(i); if (di->maxInputChannels <= 0) continue; add_to_menu(&mi, g_strdup_printf("%d: %s", i, di->name), "", "", MENU_FUNC pa_rec_src_func, GINT_TO_POINTER(i), 0); if (i == sdr_pa_rec) sel = n; n++; } do_menu_selected(mi, NULL, sel); return 0; } static void pa_play_src_func(void *arg){ int active = GPOINTER_TO_INT(arg); const PaDeviceInfo *di = Pa_GetDeviceInfo(active); g_snprintf(sdr_pa_play_src, MAX_STR_LEN, "%d: %s", active, di->name); sdr_pa_play = active; redraw_later(); } static int dlg_pa_play_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, max, sel = 0, n; struct menu_item *mi; max = Pa_GetDeviceCount(); mi = new_menu(1); n = 0; for (i = 0; i < max; i++){ const PaDeviceInfo *di = Pa_GetDeviceInfo(i); if (di->maxOutputChannels <= 0) continue; add_to_menu(&mi, g_strdup_printf("%d: %s", i, di->name), "", "", MENU_FUNC pa_play_src_func, GINT_TO_POINTER(i), 0); if (i == sdr_pa_play) sel = n; n++; } do_menu_selected(mi, NULL, sel); return 0; } #endif #ifdef HAVE_SNDFILE void refresh_sdr_sndfilename(void *xxx, char *filename){ g_strlcpy(new_sdr_sndfilename, filename, MAX_STR_LEN); redraw_later(); } static int dlg_sdr_sndfilename(struct dialog_data *dlg, struct dialog_item_data *di){ zfiledlg_open(zfiledlg, zsel, refresh_sdr_sndfilename, di, "", "wav"); return 0; } #endif void sdr_opts_fn(struct dialog_data *dlg) { if (strlen(new_sdr_sndfilename)>0 && sdr_sndfilename_index >= 0){ safe_strncpy0(dlg->items[sdr_sndfilename_index].cdata, new_sdr_sndfilename, MAX_STR_LEN); dlg->items[sdr_sndfilename_index].cpos = strlen(new_sdr_sndfilename); strcpy(new_sdr_sndfilename, ""); } input_field_fn_i(dlg, sdr_sndfilename_index); } void refresh_sdr_opts(void *arg){ int i; STORE_INT(cfg, sdr_enable); STORE_INT(cfg, sdr_rec_dsp_type); STORE_STR(cfg, sdr_pcm_rec); STORE_INT(cfg, sdr_pa_rec); STORE_INT(cfg, sdr_play_dsp_type); STORE_STR(cfg, sdr_pcm_play); STORE_INT(cfg, sdr_pa_play); STORE_SINT(cfg, sdr_speed); STORE_SINT(cfg, sdr_af_speed); STORE_SINT(cfg, sdr_block); STORE_SDBL(cfg, sdr_cw_low); STORE_SDBL(cfg, sdr_cw_high); STORE_SDBL(cfg, sdr_ssb_low); STORE_SDBL(cfg, sdr_ssb_high); #ifdef USE_SDR if (sdl){ free_sdr(gsdr); gsdr = init_sdr(); for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type != SWT_SDR) continue; sdr_resize(gsdr, sw); } } #endif #ifdef HAVE_SNDFILE STORE_STR(cfg, sdr_sndfilename); z_unix(sdr_sndfilename); #endif progress(NULL); } int sdr_check_range(struct dialog_data *dlg, struct dialog_item_data *di){ double low, high; if (check_double(dlg, di)) return 1; low = atof(di->cdata); high = atof((di+1)->cdata); if (low > high) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_BAD_NUMBER_RANGE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } int check_sdr_af_speed(struct dialog_data *dlg, struct dialog_item_data *di){ int speed, af_speed, mod; if (check_number(dlg, di)) return 1; speed = atoi(dlg->items[sdr_samplerate_index].cdata); af_speed = atoi(dlg->items[sdr_af_samplerate_index].cdata); if (af_speed > speed) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_AF_SRATE_GREATER_SRATE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } mod = speed % af_speed; if (mod != 0) { msg_box(NULL, VTEXT(T_BAD_NUMBER), AL_CENTER, VTEXT(T_SRATE_DIVISIBLE), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return 1; } return 0; } void menu_sdr_opts(void *arg){ struct dialog *d; int i; #ifdef HAVE_PORTAUDIO const PaDeviceInfo *di; if (!pa_initialised) { Pa_Initialize(); pa_initialised = 1; } #endif LOAD_INT(cfg, sdr_enable); LOAD_INT(cfg, sdr_rec_dsp_type); LOAD_STR(cfg, sdr_pcm_rec); LOAD_INT(cfg, sdr_pa_rec); LOAD_INT(cfg, sdr_play_dsp_type); LOAD_STR(cfg, sdr_pcm_play); LOAD_INT(cfg, sdr_pa_play); LOAD_SINT(cfg, sdr_speed); LOAD_SINT(cfg, sdr_af_speed); LOAD_SINT(cfg, sdr_block); LOAD_SDBL(cfg, sdr_cw_low); LOAD_SDBL(cfg, sdr_cw_high); LOAD_SDBL(cfg, sdr_ssb_low); LOAD_SDBL(cfg, sdr_ssb_high); #ifdef HAVE_ALSA #if !defined(HAVE_PORTAUDIO) && !defined(HAVE_SNDFILE) sdr_play_dsp_type = DSPT_ALSA; sdr_rec_dsp_type = DSPT_ALSA; #endif #endif #ifdef HAVE_PORTAUDIO if (cfg->sdr_pa_rec < 0) cfg->sdr_pa_rec = Pa_GetDefaultInputDevice(); di = Pa_GetDeviceInfo(cfg->sdr_pa_rec); if (di) g_snprintf(sdr_pa_rec_src, MAX_STR_LEN, "%d: %s", cfg->sdr_pa_rec, di->name); else safe_strncpy0(sdr_pa_rec_src, VTEXT(T_NO_DEVICE), MAX_STR_LEN); if (cfg->sdr_pa_play < 0) cfg->sdr_pa_play = Pa_GetDefaultOutputDevice(); di = Pa_GetDeviceInfo(cfg->sdr_pa_play); if (di) g_snprintf(sdr_pa_play_src, MAX_STR_LEN, "%d: %s", cfg->sdr_pa_play, di->name); else safe_strncpy0(sdr_pa_play_src, VTEXT(T_NO_DEVICE), MAX_STR_LEN); #if !defined(HAVE_ALSA) && !defined(HAVE_SNDFILE) sdr_play_dsp_type = DSPT_PORTAUDIO; sdr_rec_dsp_type = DSPT_PORTAUDIO; #endif #endif #ifdef HAVE_SNDFILE LOAD_STR(cfg, sdr_sndfilename); z_wokna(sdr_sndfilename); #endif strcpy(new_sdr_sndfilename, ""); d = (struct dialog *)g_malloc(sizeof(struct dialog) + 50 * sizeof(struct dialog_item)); memset(d, 0, sizeof(struct dialog) + 50 * sizeof(struct dialog_item)); d->title = VTEXT(T_SDR_OPTIONS); d->fn = dlg_pf_fn; d->fn2 = sdr_opts_fn; d->refresh = (void (*)(void *))refresh_sdr_opts; d->y0 = 1; d->items[i=0].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&sdr_enable; d->items[i].msg = CTEXT(T_ENABLE); d->items[i].wrap = 2; d->items[++i].type = D_TEXT; d->items[i].msg = CTEXT(T_IQ_SOURCE); #ifdef HAVE_ALSA d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_ALSA; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&sdr_rec_dsp_type; d->items[i].msg = CTEXT(T_ALSA); #endif #ifdef HAVE_PORTAUDIO d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_PORTAUDIO; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&sdr_rec_dsp_type; d->items[i].msg = CTEXT(T_PORTAUDIO); #endif #ifdef HAVE_SNDFILE d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_SNDFILE; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&sdr_rec_dsp_type; d->items[i].msg = CTEXT(T_WAV_FILE); #endif d->items[i].wrap++; //------------------------------------- d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_speed_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 8000; d->items[i].gnum = 192000; d->items[i].msg = CTEXT(T_SAMPLERATE); d->items[i].wrap = 1; sdr_samplerate_index = i; // ---------------------------------------------------------- #ifdef HAVE_ALSA d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_pcm_rec; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_PCM_REC); d->items[i].wrap = 1; /* d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_alsa_mixer; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_ALSA_MIXER); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_alsa_src; d->items[i].text = sdr_alsa_src; d->items[i].msg = CTEXT(T_CAPTURE); */ #endif #ifdef HAVE_PORTAUDIO d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_pa_rec_src; d->items[i].text = sdr_pa_rec_src; d->items[i].msg = CTEXT(T_PA_REC); d->items[i].wrap = 1; #endif #ifdef HAVE_SNDFILE d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = sdr_sndfilename; d->items[i].maxl = 40; d->items[i].msg = CTEXT(T_WAV_FILE_NAME); d->items[i].tabcompl = 1; sdr_sndfilename_index = i; #ifdef Z_HAVE_SDL if (sdl){ d->items[++i].type = D_BUTTON; d->items[i].fn = dlg_sdr_sndfilename; d->items[i].text = CTEXT(T_RIG_CHOOSE); } d->items[i].wrap++; #endif #endif d->items[i].wrap++; // ======================================================== d->items[++i].type = D_TEXT; d->items[i].msg = CTEXT(T_AF_OUTPUT); #ifdef HAVE_ALSA d->items[++i].type = D_CHECKBOX; d->items[i].gid = 2; d->items[i].gnum = DSPT_ALSA; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&sdr_play_dsp_type; d->items[i].msg = CTEXT(T_ALSA); #endif #ifdef HAVE_PORTAUDIO d->items[++i].type = D_CHECKBOX; d->items[i].gid = 2; d->items[i].gnum = DSPT_PORTAUDIO; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&sdr_play_dsp_type; d->items[i].msg = CTEXT(T_PORTAUDIO); #endif /*#ifdef HAVE_SNDFILE d->items[++i].type = D_CHECKBOX; d->items[i].gid = 2; d->items[i].gnum = DSPT_SNDFILE; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&sdr_play_dsp_type; d->items[i].msg = CTEXT(T_WAV_FILE); #endif*/ d->items[i].wrap++; // ------------------------------------------------ d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_af_speed_str; d->items[i].maxl = 7; d->items[i].fn = check_sdr_af_speed; d->items[i].gid = 8000; d->items[i].gnum = 192000; d->items[i].msg = CTEXT(T_AF_SAMPLE_RATE); d->items[i].wrap = 1; sdr_af_samplerate_index = i; d->items[i].wrap = 1; // ---------------------------------------------------------- #ifdef HAVE_ALSA d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_pcm_play; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_PCM_PLAY); d->items[i].wrap = 1; #endif #ifdef HAVE_PORTAUDIO d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_pa_play_src; d->items[i].text = sdr_pa_play_src; d->items[i].msg = CTEXT(T_PA_PLAY); d->items[i].wrap = 1; #endif d->items[i].wrap++; // ======================================================== d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_block_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 128; d->items[i].gnum = 9999999; d->items[i].msg = CTEXT(T_BLOCK_SIZE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_cw_low_str; d->items[i].maxl = 7; d->items[i].fn = sdr_check_range; d->items[i].gid = -10000; d->items[i].gnum = +10000; d->items[i].msg = CTEXT(T_CW_FILTER); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_cw_high_str; d->items[i].maxl = 6; d->items[i].fn = check_double; d->items[i].gid = -10000; d->items[i].gnum = +10000; d->items[i].msg = CTEXT(T_TO_HZ); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_ssb_low_str; d->items[i].maxl = 7; d->items[i].fn = sdr_check_range; d->items[i].gid = -10000; d->items[i].gnum = +10000; d->items[i].msg = CTEXT(T_SSB_FILTER); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = sdr_ssb_high_str; d->items[i].maxl = 6; d->items[i].fn = check_double; d->items[i].gid = -10000; d->items[i].gnum = +10000; d->items[i].msg = CTEXT(T_TO_HZ); d->items[i].wrap = 1; d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } tucnak-4.04/src/translate.h0000644000175000017500000000053312457402143012607 00000000000000/* translate.c - Localisation tool for Tucnak Copyright (C) 2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" void translate(void *); tucnak-4.04/src/icons.c0000644000175000017500000000055311602667113011723 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include "icons.inc" tucnak-4.04/src/cordata.h0000644000175000017500000000017311277513162012232 00000000000000/* Automatically generated by corinc.pl */ #define COR_ITEMS 255567 extern const struct cpoint cor_tucnakcor[COR_ITEMS]; tucnak-4.04/src/os_dep.h0000644000175000017500000000520412035226325012061 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __OS_DEP_H #define __OS_DEP_H #if defined(__EMX__) #define OS2 #elif defined(_WIN32) #ifndef WIN32 #define WIN32 #endif #elif defined(__BEOS__) #define BEOS #else #define UNIX #endif #ifdef __EMX__ #define strcasecmp stricmp #define strncasecmp strnicmp #define read _read #define write _write #endif #if defined(UNIX) static inline int dir_sep(char x) { return x == '/'; } #define NEWLINE "\n" #include #include #define SYSTEM_ID SYS_UNIX #define SYSTEM_NAME "Unix" #define DEFAULT_SHELL "/bin/sh" #define GETSHELL getenv("SHELL") #elif defined(OS2) static inline int dir_sep(char x) { return x == '/' || x == '\\'; } #define NEWLINE "\r\n" #define SYSTEM_ID SYS_OS2 #define SYSTEM_NAME "OS/2" #define DEFAULT_SHELL "cmd.exe" #define GETSHELL getenv("COMSPEC") #define NO_FG_EXEC #define NO_FILE_SECURITY #define NO_FORK_ON_EXIT #elif defined(WIN32) static inline int dir_sep(char x) { return x == '/' || x == '\\'; } #define NEWLINE "\r\n" #define SYSTEM_ID SYS_WIN32 #define SYSTEM_NAME "Win32" #define DEFAULT_SHELL "command.com" #define GETSHELL getenv("COMSPEC") #define NO_FG_EXEC #define NO_FORK_ON_EXIT #endif #ifdef UNIX #define tmkdir(dir, mode) mkdir(dir, mode) //#define z_sock_errno errno #define sock_strerror_r strerror_r //#define SO4 #endif int save_screen(void); int restore_screen(void); gchar * get_mp(gchar *device); int floppy_is_mounted(gchar *floppydev, gchar *path_to_floppy); int is_in_mtab(gchar *mp); extern int sound_pid; int init_sound(void); int free_sound(void); int abort_sound(void); int sound(int freq); struct terminal; int is_xterm(void); int can_twterm(void); int term_get_terminal_size(int, int *, int *); void handle_terminal_resize(int, void (*)(void *)); void unhandle_terminal_resize(int); void set_bin(int); int get_input_handle(void); int get_output_handle(void); int get_ctl_handle(void); void *handle_mouse(int, void (*)(void *, char *, int), void *); void unhandle_mouse(void *); int check_file_name( char *); int start_thread(void (*)(void *, int), void *, int); char *get_clipboard_text(void); void set_clipboard_text(char *); void set_window_title( char *); char *get_window_title(void); int is_safe_in_shell( char); void check_shell_security( char **); void block_stdin(void); void unblock_stdin(void); int exe(char *); int resize_window(int, int); #endif tucnak-4.04/src/dsp.c0000644000175000017500000001642212460207027011375 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "alsa.h" #include "dsp.h" #include "fifo.h" #include "language2.h" #include "oss.h" #include "pa.h" #include "rc.h" #include "sndf.h" #include "sndpipe.h" #include "tsdl.h" struct dsp *init_dsp(enum dsp_type type, enum dsp_cfg_group dcg){ struct dsp *dsp; progress(VTEXT(T_INIT_SOUNDCARD)); dsp = g_new0(struct dsp, 1); dsp->type = type; #ifdef HAVE_OSS dsp->fd = -1; #endif #if (!defined(HAVE_OSS)) && (!defined(HAVE_ALSA) && !defined(HAVE_SNDFILE)) dsp->type = DSPT_PORTAUDIO; #endif #if defined(HAVE_ALSA) && (!defined(HAVE_PORTAUDIO)) if (dsp->type == DSPT_PORTAUDIO) dsp->type = DSPT_ALSA; #endif #ifdef HAVE_SNDFILE dsp->set_format = dummy_dsp_set_format; #endif dsp->open = dummy_dsp_open; dsp->close2 = dummy_dsp_close; dsp->write = dummy_dsp_write; dsp->read = dummy_dsp_read; dsp->reset = dummy_dsp_reset; dsp->sync = dummy_dsp_sync; dsp->set_source = dummy_dsp_set_source; dsp->set_plevel = dummy_dsp_set_plevel; dsp->set_sdr_format = dummy_dsp_set_sdr_format; switch(dsp->type){ case DSPT_OSS: #ifdef HAVE_OSS #ifdef HAVE_SNDFILE dsp->set_format = oss_set_format; #endif dsp->open = oss_open; dsp->close2 = oss_close; dsp->write = oss_write; dsp->read = oss_read; dsp->reset = oss_reset; dsp->sync = oss_sync; dsp->set_source = oss_set_source; dsp->set_plevel = oss_set_plevel; switch (dcg){ case DCG_SSBD: dsp->oss_filename = g_strdup(cfg->ssbd_dsp); dsp->oss_mixer = g_strdup(cfg->ssbd_mixer); if (cfg->ssbd_oss_src){ dsp->source = g_strdup(cfg->ssbd_oss_src); }else{ dsp->source = g_strdup(oss_recsrc2source(cfg->ssbd_recsrc)); } break; case DCG_SDR: zinternal("OSS not supported for SDR"); break; } #else log_addf(VTEXT(T_NO_OSS)); #endif break; case DSPT_ALSA: #ifdef HAVE_ALSA #ifdef HAVE_SNDFILE dsp->set_format = alsa_set_format; #endif dsp->open = alsa_open; dsp->close2 = alsa_close; dsp->write = alsa_write; dsp->read = alsa_read; dsp->reset = alsa_reset; dsp->sync = alsa_sync; dsp->set_sdr_format = alsa_set_sdr_format; dsp->set_source = alsa_set_source; dsp->set_plevel = alsa_set_plevel; dsp->pcm_opened = 0; snd_lib_error_set_handler(z_alsa_error_handler); switch (dcg){ case DCG_SSBD: dsp->pcm_play = g_strdup(cfg->ssbd_pcm_play); dsp->pcm_rec = g_strdup(cfg->ssbd_pcm_rec); dsp->alsa_mixer = g_strdup(cfg->ssbd_alsa_mixer); dsp->alsa_src = g_strdup(cfg->ssbd_alsa_src); break; case DCG_SDR: dsp->pcm_play = g_strdup(cfg->sdr_pcm_play); dsp->pcm_rec = g_strdup(cfg->sdr_pcm_rec); break; } #else log_addf(VTEXT(T_NO_ALSA)); #endif break; /*case DSPT_SSBD:*/ case DSPT_PORTAUDIO: #ifdef HAVE_PORTAUDIO #ifdef HAVE_SNDFILE dsp->set_format = pa_set_format; #endif dsp->open = pa_open2; dsp->close2 = pa_close2; dsp->write = pa_write2; dsp->read = pa_read2; dsp->reset = pa_reset2; dsp->sync = pa_sync2; #ifdef HAVE_SNDFILE dsp->set_sdr_format = pa_set_sdr_format; #endif if (!pa_initialised){ Pa_Initialize(); pa_initialised = 1; } switch (dcg){ case DCG_SSBD: dsp->pa_play = cfg->ssbd_pa_play; dsp->pa_rec = cfg->ssbd_pa_rec; break; case DCG_SDR: dsp->pa_play = cfg->sdr_pa_play; dsp->pa_rec = cfg->sdr_pa_rec; break; } #else log_addf(VTEXT(T_NO_PORTAUDIO)); #endif break; case DSPT_SNDFILE: #ifdef HAVE_SNDFILE dsp->open = sndfile_open; dsp->close2 = sndfile_close; dsp->write = sndfile_write; dsp->read = sndfile_read; dsp->reset = sndfile_reset; dsp->sync = sndfile_sync; dsp->set_format = sndfile_set_format; dsp->set_sdr_format = sndfile_set_sdr_format; switch (dcg){ case DCG_SSBD: break; case DCG_SDR: dsp->sndfile_filename = g_strdup(cfg->sdr_sndfilename); break; } #else log_addf(VTEXT(T_NO_SNDFILE)); #endif break; case DSPT_SNDPIPE: #ifdef USE_SDR dsp->open = sndpipe_open; dsp->close2 = sndpipe_close; dsp->write = sndpipe_write; dsp->read = sndpipe_read; dsp->reset = sndpipe_reset; dsp->sync = sndpipe_sync; #ifdef HAVE_SNDFILE dsp->set_format = sndpipe_set_format; #endif dsp->set_sdr_format = sndpipe_set_sdr_format; switch (dcg){ case DCG_SSBD: break; case DCG_SDR: break; } dsp->pipe[0] = -1; dsp->pipe[1] = -1; #else log_addf(VTEXT(T_NO_SNDPIPE)); #endif break; default: zinternal("bad dsp->type"); break; } switch (dcg){ case DCG_SSBD: dsp->period_time = cfg->ssbd_period_time; dsp->plev = cfg->ssbd_plev; dsp->rlev = cfg->ssbd_rlev; break; case DCG_SDR: dsp->plev = -1; dsp->rlev = -1; break; } return dsp; } void free_dsp(struct dsp *dsp){ if (!dsp) return; dbg("free_dsp(%p) type=%d\n", dsp, dsp->type); progress(VTEXT(T_TERMINATING_SOUNDCARD)); dsp->close2(dsp); #ifdef HAVE_OSS zg_free0(dsp->oss_filename); zg_free0(dsp->oss_mixer); #endif #ifdef HAVE_ALSA zg_free0(dsp->alsa_mixer); zg_free0(dsp->alsa_src); zg_free0(dsp->pcm_play); zg_free0(dsp->pcm_rec); #endif #ifdef HAVE_PORTAUDIO if (dsp->type == DSPT_PORTAUDIO) { //Pa_Terminate(); //pa_initialised = 0; } #endif #ifdef HAVE_SNDFILE if (dsp->sndfile) sf_close(dsp->sndfile); zg_free0(dsp->sfinfo); zg_free0(dsp->sndfile_filename); #endif zg_free0(dsp->name); zg_free0(dsp->source); g_free(dsp); } #ifdef HAVE_SNDFILE int dummy_dsp_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec){ return 0; } #endif int dummy_dsp_open(struct dsp *dsp, int rec){ return 0; } int dummy_dsp_close(struct dsp *dsp){ return 0; } int dummy_dsp_get_bufsize(struct dsp *dsp){ return -1; } int dummy_dsp_write(struct dsp *dsp, void *data, int len){ return 0; } int dummy_dsp_read(struct dsp *dsp, void *data, int len){ return 0; } int dummy_dsp_reset(struct dsp *dsp){ return 0; } int dummy_dsp_sync(struct dsp *dsp){ return 0; } int dummy_dsp_set_source(struct dsp *dsp){ return 0; } int dummy_dsp_set_plevel(struct dsp *dsp){ return 0; } int dummy_dsp_set_sdr_format(struct dsp *dsp, int blocksize, int speed, int rec){ return 0; } int dsp_write_empty(struct dsp *dsp){ int ret; void *buf = g_new0(char, dsp->bytes); ret = dsp->write(dsp, buf, dsp->frames); g_free(buf); return ret; } tucnak-4.04/src/menu.h0000644000175000017500000001265112477604277011600 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __MENU_H #define __MENU_H #include "header.h" struct dialog_data; struct dialog_item_data; struct menu; struct qso; struct session; struct wizz_item; struct zstring; struct refresh { struct window *win; void (*fn)(void *arg); void *data; int timer; }; #define CONDGFREE(item) { if (item) { g_free(item); item=NULL; }} #define STORE_STR(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); #define STORE_STR_UC(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); \ z_str_uc(base->item); #define STORE_STR_FS(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); \ fixsemi(base->item) #define STORE_STR_FS_UC(base,item) \ if (base->item) g_free(base->item); \ base->item = g_strdup(item); \ fixsemi(base->item); \ z_str_uc(base->item); #define STORE_STR2(dbase,sbase,item) \ if (dbase->item) g_free(dbase->item); \ dbase->item = g_strdup(sbase->item); #define STORE_STR2_UC(dbase,sbase,item) \ if (dbase->item) g_free(dbase->item); \ dbase->item = g_strdup(sbase->item); \ z_str_uc(dbase->item); #define STORE_INT(base, item) \ base->item = item; #define STORE_ENUM(base, item, type) \ base->item = (type)item; #define STORE_SINT(base, item) \ base->item = atoi(item##_str); #define STORE_SHEX(base, item) \ base->item = strtol(item##_str, NULL, 16); #define STORE_SDBL(base, item) \ base->item = atof(item##_str); #define STORE_STR3(base,item,src,first) \ if (base->item) g_free(base->item); \ base->item = g_strdup(ztokenize(src, first)); #define LOAD_STR(base,item) \ safe_strncpy0(item, base->item, sizeof(item)); #define LOAD_INT(base,item) \ item = base->item #define LOAD_SINT(base,item) \ g_snprintf(item##_str, sizeof(item##_str), "%d", base->item) #define LOAD_SHEX2(base,item) \ g_snprintf(item##_str, sizeof(item##_str), "%02x", base->item) #define LOAD_SHEX4(base,item) \ g_snprintf(item##_str, sizeof(item##_str), "%04x", base->item) #define LOAD_SDBL(base,item) \ g_snprintf(item##_str, sizeof(item##_str), "%1.0f", base->item) struct tmpqso; //int fileno(FILE *stream); void activate_bfu_technology(int); void free_history_lists(void); void exit_prog(void *arg); void menu_play_last(void *arg); void menu_break_record(void *arg); void menu_export_edi(void *arg); void menu_export_report(void *arg); void menu_export_html(void *arg); void menu_export_stats(void *arg); void menu_export_titlpage(void *arg); void menu_save_all(void *arg); void do_edit_menu(void *arg); void menu_contest_open(void *arg); void free_namelist(void); void do_peer_menu( void (* func)(void *arg)); void do_peer_operators_menu(void (* func)(void *arg)); void menu_load_from_peer(void *arg); void menu_spy_from_peer(void *arg); void menu_discover_peers3(void *itarg, void *menuarg); void spy3(void *); void do_spy_peer_menu(void (* func)(void *arg)); void menu_set_language(void *arg); void menu_contest_config_from_peer(void *arg); void send_contest_config_request(int no); void open_from_net3(void *arg); void menu_language_list(void *arg); void subwins_menu(void *arg); void refresh(struct refresh *r); void refresh_abort(struct dialog_data *dlg); void contest_choose(void (*funcall)(struct menu *menu)); /* menu1.c */ void band_settings(void *arg, int from_ctest); void menu_wizz(void *arg); void contest_options1(char *title, int from_ctest, struct wizz_item *wi); void contest_options1_from_menu(void *arg); void contest_options1_from_ctest(void *arg); void contest_def(void *pfirst); void edi_prop(void *arg); int dlg_edi_prop(struct dialog_data *dlg, struct dialog_item_data *di); void menu_responsible_op(void *arg); void refresh_contest_options1(void *xxx); void init_ctest2(int from_dlg, int updloc, struct zstring *zs, struct wizz_item *wi); /* menu2.c */ extern char operator_[EQSO_LEN]; void edit_qso(struct qso *qso); /* menu3.c */ void duplicate_callsign(struct qso *qso); void menu_add_error(void *arg); void menu_chop(void *arg); void menu_skedqrg(void *arg); void menu_fillop(void *arg); void menu_recalc_qrb(void *arg); void menu_cw_update_contest(void *arg); void menu_cw_update_band(void *arg); void menu_exc_update_contest(void *arg); void menu_exc_update_band(void *arg); void menu_import_ebw(void *arg); void menu_autosave(void *arg); void menu_add_subwin(void *arg); void menu_close_subwin(void *arg); void menu_split_subwin(void *arg); void menu_remove_split(void *arg); void menu_unfinished(void *arg); /* menu4.c */ void menu_cq_cw(void *arg); void menu_cq_ssb(void *arg); void menu_cwda(void *arg); void menu_ssbd(void *arg); void menu_network(void *arg); /* menu5.c */ void misc_opts(void *arg); #ifdef HAVE_HAMLIB void menu_fixqrg(void *itdata, void *menudata); #endif void winkey_opts(void *arg); int dlg_winkey_opts(struct dialog_data *, struct dialog_item_data *); void menu_rig_opts(void *arg); void menu_rigs(void *arg); void menu_rotars(void *arg); /* menu6.c */ void refresh_httpd_opts(void *arg); void menu_httpd_opts(void *arg); void load_from_net(void *arg); void robands(void *arg); void menu_ac_opts(void *arg); void menu_sdr_opts(void *arg); #endif tucnak-4.04/src/cwwindow.h0000644000175000017500000000100411571415355012452 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __CWWINDOW_H #define __CWWINDOW_H #include "header.h" #include "bfu.h" struct cwwin_data{ int x,y,w,h; GString *text; int speed; }; void cwwindow_func(struct window *win, struct event *ev, int fwd); #endif tucnak-4.04/src/oss.h0000644000175000017500000000157712276423443011434 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __OSS_H #define __OSS_H #include "header.h" #include "dsp.h" #ifdef HAVE_OSS #ifdef HAVE_SNDFILE int oss_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec); #endif int oss_open(struct dsp *dsp, int rec); int oss_close(struct dsp *dsp); int oss_write(struct dsp *dsp, void *data, int frames); int oss_read(struct dsp *dsp, void *data, int frames); int oss_reset(struct dsp *dsp); int oss_sync(struct dsp *dsp); int oss_get_sources(struct dsp *dsp, GString *labels); int oss_set_source(struct dsp *dsp); int oss_set_plevel(struct dsp *dsp); char *oss_recsrc2source(int recsrc); #endif #endif tucnak-4.04/src/fifo.h0000644000175000017500000000223512501516037011534 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __FIFO_H #define __FIFO_H struct fifo{ int x,y,w,h,maxlen,ho; int withouttime; GPtrArray *items; }; #define log_adds(s) fifo_adds(glog, s) extern struct fifo *glog, *gtalk; struct fifo *init_fifo(int maxlen); void fifo_resize(struct fifo *log, int x, int y, int w, int h); void free_fifo(struct fifo *fifo); void drop_fifo(struct fifo *fifo); void fifo_adds(struct fifo *fifo, gchar *str); void fifo_addf(struct fifo *fifo, char *m, ...); void fifo_addfq(struct fifo *fifo, char *m, ...); void log_addf(char *m, ...); int fifo_len(struct fifo *fifo); gchar *fifo_index(struct fifo *fifo, int); int save_fifo_to_file(struct fifo *fifo, gchar *filename); int load_fifo_from_file(struct fifo *fifo, gchar *filename, int drop); void log_draw(struct fifo *fifo); void fifo_add_lines(struct fifo *fifo, char *data); int fifo_contains(struct fifo *fifo, char *needle); #endif tucnak-4.04/src/dxc.c0000644000175000017500000010042112501516037011356 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdb.h" #include "dwdb.h" #include "dxc.h" #include "excdb.h" #include "inputln.h" #include "kbd.h" #include "kbdbind.h" #include "main.h" #include "rc.h" #include "qsodb.h" #include "session.h" #include "stats.h" #include "subwin.h" #include "terminal.h" #include "tregex.h" #include "tsdl.h" #include "qrvdb.h" #include "qsodb.h" //#define MIN_SPOTLEN 74 #define MIN_SPOTLEN 29 #define STR_DX_DE "DX de" #define FROM_OFS 6 #define CALL_OFS 26 #define TEXT_OFS 39 #define ZULU_OFS 70 #define FROM_SEP ' ' #define DXC_EXPIRE_TIMER 5*60*1000 struct spotdb_t *spotdb=NULL; struct spotdb_t *init_spotdb(void){ struct spotdb_t *spotdb; progress(VTEXT(T_INIT_DXC)); spotdb = g_new0(struct spotdb_t, 1); spotdb->bands = z_ptr_array_new(); { zg_ptr_array_foreach(struct config_band *, cband, cfg->bands) { struct spotband *sband = sband = g_new0(struct spotband, 1); sband->bandchar = z_char_uc(cband->bandchar); sband->freq = z_ptr_array_new(); sband->current = 0; sband->min_khz = cband->qrg_min; sband->max_khz = cband->qrg_max; z_ptr_array_add(spotdb->bands, sband); } } spotdb->timer_id = zselect_timer_new(zsel, DXC_EXPIRE_TIMER, dxc_timer, NULL); return spotdb; } void free_spotdb(struct spotdb_t *spotdb){ progress(VTEXT(T_FREE_DXC)); zselect_timer_kill(zsel, spotdb->timer_id); { zg_ptr_array_foreach(struct spotband *, sband, spotdb->bands) { zg_ptr_array_foreach(struct spot *, spot, sband->freq) { free_spot(spot); } z_ptr_array_free(sband->freq, TRUE); } z_ptr_array_free(spotdb->bands, TRUE); } g_free(spotdb); } struct spotband *get_spotband_by_khz(int khz){ zg_ptr_array_foreach(struct spotband *, sband, spotdb->bands) { if (khz < sband->min_khz) continue; if (khz > sband->max_khz) continue; return sband; } return NULL; } struct spotband *get_actual_spotband(){ if (aband){ zg_ptr_array_foreach(struct spotband *, sband, spotdb->bands) { if (sband->bandchar == z_char_uc(aband->bandchar)) return sband; } } return (struct spotband *)z_ptr_array_index(spotdb->bands, 2); // TODO FIXME return NULL; } void dxc_timer(void *arg){ int n; n = dxc_remove_expired(); /*dbg("dxc_timer expired=%d\n",n);*/ if (n){ redraw_later(); } spotdb->timer_id = zselect_timer_new(zsel, DXC_EXPIRE_TIMER, dxc_timer, NULL); } // "DX de 5B4AIX: 144250.0 C91KHN USUAL ZOO.. 1732Z KM64 // "DX de F4EGZ-#: 50009.4 SV9SIX 09 dB 9 WPM BEACON 1158Z" char * struct spot *dxc_parse_spot(gchar *str){ double qrg; gchar *callsign,*from,*text; int zulu; struct spot *spot; gchar *c,*d; time_t now; char *c1=NULL, *c2=NULL; // dbg("dxc_parse_spot('%s')]\n", str); if (regmatch(str, "SFI=([0-9]{1,3})", &c1, &c2, NULL)==0){ spotdb->sfi = atoi(c2); } if (c1) g_free(c1); if (c2) g_free(c2); if (strlen(str)ZULU_OFS){ d=str+ZULU_OFS; d[4]='\0'; zulu=atoi(d); }else{ time_t now; struct tm tm; now = time(NULL); gmtime_r(&now, &tm); zulu = tm.tm_hour * 100 + tm.tm_min; } if (strlen(str)>TEXT_OFS){ d=str+TEXT_OFS; if (strlen(str)>ZULU_OFS){ str[ZULU_OFS]='\0'; } c=strrchr(d, ' '); g_strstrip(d); if (!c) c=d+ZULU_OFS-1; text=g_strndup(d, c-d); }else{ text=g_strdup(""); } now=time(NULL); spot=g_new0(struct spot, 1); /* LEAK */ spot->qrg =qrg; spot->callsign=callsign; spot->from =from; spot->text =text; spot->zulu =zulu; #if 1 spot->endbold =now + 15 * 60; spot->expire =now + 60 * 60; #else spot->endbold =now + 1 * 60; spot->expire =now + 2 * 60; #endif // dbg("call='%s' qrg='%3.1f' from='%s' text='%s' zulu='%d'\n", callsign, qrg, from, text, zulu); return spot; x:; zg_free0(callsign); zg_free0(from); zg_free0(text); return NULL; } void free_spot(struct spot *spot){ /*dbg("free_spot(%p)\n", spot);*/ if (!spot) return; g_free(spot->callsign); g_free(spot->from); g_free(spot->text); g_free(spot); } /* removes spot from list, don't free it from mem */ void remove_spot(struct spotband *sband, int spot_i){ struct spot *spot; spot = (struct spot *)z_ptr_array_index(sband->freq, spot_i); z_ptr_array_remove_index(sband->freq, spot_i); free_spot(spot); if (spot_i < sband->current) sband->current--; // can reach -1 if (sband->current >= sband->freq->len) sband->current = sband->freq->len - 1; } int dxc_read_spot(gchar *str){ struct spot *newspot; gchar *s; int newpos; struct spotband *sband; struct band *band; int filterspot = 0; /*dbg("dxc_read_spot('%s')\n", str);*/ s=g_strdup(str); newspot=dxc_parse_spot(s); g_free(s); if (!newspot) return -3; /*dbg(" spot accepted %p\n", str, newspot);*/ sband = get_spotband_by_khz((int)newspot->qrg); if (!sband){ // dbg(" bad qrg %d\n", (int)newspot->qrg); free_spot(newspot); if (ctest) return 1; // in contest we filter unknown bands (warc) return -1; } if (ctest){ band = find_band_by_bandchar(sband->bandchar); if (!band){ filterspot = 1; }else{ if (band->readonly) filterspot = 1; } } /*if (print && !filterspot) { zg_ptr_array_foreach(struct subwin *, sw, gses->subwins){ if (sw->type != SWT_DXC) continue; sw_printf(sw, "%s\n", str); } } */ newpos = 0; { zg_ptr_array_foreachback(struct spot *, spot, sband->freq){ if (strcasecmp(spot->callsign, newspot->callsign) == 0 ) { remove_spot(sband, spot_i); break; } } { zg_ptr_array_foreach(struct spot *, spot, sband->freq) { if (spot->qrg > newspot->qrg) break; newpos = spot_i + 1; } } //dxc_dump(sband); //dbg("insert %s %9.1f\n", newspot->callsign, newspot->qrg); z_ptr_array_insert(sband->freq, newspot, newpos); if (newpos < sband->current) sband->current++; if (sband->current < 0) sband->current = 0; //dxc_dump(sband); } return filterspot; } int dxc_remove_expired(void){ int n; time_t now; n=0; now=time(NULL); { zg_ptr_array_foreach(struct spotband *, sband, spotdb->bands) { zg_ptr_array_foreachback(struct spot *, spot, sband->freq) { if (spot->expire >= now) continue; remove_spot(sband, spot_i); n++; } } } return n; } void dxc_dump(struct spotband *sband){ dbg("dxc_dump\n"); { zg_ptr_array_foreach(struct spot *, spot, sband->freq) { dbg("%c%02d: %10s %10s %10.1f\n", sband->bandchar, spot_i, spot->from, spot->callsign, spot->qrg); } } dbg("----\n"); } /* 0 6 17 26 39 70 DX de ja8edu: 21285.0 OK2SSD CQ,CQ DX 0759Z DX de JA8EDU: 21285.0 OK2SSD CQ,CQ DX 0759Z DX de HL2IFR: 24900.2 BA4ED AS-136 0807Z DX de HL2IFR: 24900.2 BA4ED AS-136 33 0807Z 44 DX de JA9LSZ: 28008.2 8Q7VR cq 0815Z DX de JA9LSZ: 28008.2 8Q7VR cq 0815Z DX de OK1MZM: 144300.0 I4XCC 1116Z 55 JN63GV<---JN69QS 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144370.0 SM/DJ8MS 0801 5.3 DJ8MS cq 357 JO88 dir G 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144370.0 SM/DJ8MS 0801 5.3 DJ8MS cq 357 JO88 dir G 144370.0 SM/DJ8MS 5-Mar-2003 0801Z cq 357 JO88 dir G 144300.0 HB9QQ 1821 21.8 ON1AEN JN47 SRI TYPO */ /*#define dxc_highlight(text, ho, needle, color){\ gchar *cc, *d, *fd; \ int rx, fx, fl; \ \ if ((needle) && strlen(needle)>=1){ \ cc=(text); \ while ((d=z_strcasestr((cc), (needle)))!=NULL){ \ fl=MIN(sw->w-(d-(text))+(ho) , strlen(needle)); \ fx=rx=d-(text)-(ho); \ fd=d; \ if (rx<0) { \ fl+=rx; \ fx=0; \ fd=d-rx; \ } \ if (fl>0) print_text(sw->x+fx, sw->y+i, fl, fd, (color)); \ cc=d+strlen(needle); \ } \ }\ } */ int sw_dxc_kbd_func(struct subwin *sw, struct event *ev, int fw){ /*dbg("sw_dxc_kbd_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (sw->il && ( sw->il->wasctrlv || (ev->x!='[' && ev->x!=']') )){ int ret; ret = inputln_func(sw->il, ev); if (ev->x!=KBD_LEFT && ev->x!=KBD_RIGHT && ev->x!=KBD_HOME && ev->x!=KBD_END){ if (strlen(sw->il->cdata) < 1){ zg_free0(sw->pattern); }else{ char *c; c = strchr(sw->il->cdata, ' '); if (c){ zg_free0(sw->pattern); }else{ zg_free0(sw->pattern); sw->pattern = g_strdup(sw->il->cdata); } sw->offset = 0; } redraw_later(); if (ret) return ret; } //dbg("sw->pattern('%s')\n", sw->pattern); }else{ //dbg("sw->pattern('%s')\n", sw->pattern); } if (ev->y & KBD_SHIFT){ switch (ev->x){ case KBD_UP: if (sw->side_bott) return 1; sw->dxc_offset -= 1; //if (sw->dxc_offset < 0) sw->dxc_offset = 0; //dbg("dxc_offset=%d\n", sw->dxc_offset); redraw_later(); return 1; case KBD_DOWN: if (sw->side_top) return 1; sw->dxc_offset += 1; //dbg("dxc_offset=%d\n", sw->dxc_offset); redraw_later(); return 1; case KBD_PGUP: if (sw->side_bott) return 1; sw->dxc_offset -= sw->h / 2; //if (sw->dxc_offset < 0) sw->dxc_offset = 0; redraw_later(); return 1; case KBD_PGDN: if (sw->side_top) return 1; sw->dxc_offset += sw->h / 2; redraw_later(); return 1; case KBD_HOME: sw->dxc_offset = 0; redraw_later(); return 1; } } switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->offset--; sw->check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->offset++; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->offset -= sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->offset += sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->offset = sw->lines->len - sw->h; sw->check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->offset = 0; sw->check_bounds(sw); redraw_later(); return 1; case ACT_SCROLL_LEFT: if (sw->lines) if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: if (sw->lines) sw->ho++; redraw_later(); } return 0; } int sw_dxc_mouse_func(struct subwin *sw, struct event *ev, int fw){ struct menu_item *mi = NULL; int y, items = 0; if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (ev->b & B_DRAG){ int dy = sw_accel_dy(sw, ev); if (dy == 0) return 1; if (ev->x > sw->w){ //dbg("dy=%d\n", dy); if (dy > 0){ if (sw->side_bott) return 1; if (dy > sw->h / 2) dy = sw->h / 2; }else{ if (sw->side_top) return 1; if (- dy > sw->h / 2) dy = - sw->h / 2; } //dbg("fixed dy=%d\n", dy); sw->dxc_offset -= dy; //if (sw->dxc_offset < 0) sw->dxc_offset = 0; redraw_later(); return 1; } sw->offset += dy; sw->check_bounds(sw); redraw_later(); return 1; } //if ((ev->b & BM_ACT)!=B_DOWN) return 0; // dbg("ev->b=%x BM_ACT=%x B_DOWN=%x BM_EBUTT=%x \n", ev->b, BM_ACT, B_DOWN, BM_EBUTT); if (cfg->usetouch && (ev->b & BM_EBUTT) == B_LEFT) ev->b = (ev->b & ~BM_EBUTT) | B_RIGHT; switch (ev->b & BM_BUTCL){ case B_LEFT: case B_RIGHT: sw->olddragx = ev->x; sw->olddragy = ev->my; return 1; case B_LEFT | B_CLICK: if (!sw->il) break; if (ev->y==sw->y+sw->h){ inputln_func(sw->il, ev); return 1; } g_free(sw->callunder); sw->callunder = sw_dxc_call_under(sw, ev->x - sw->x + sw->ho, ev->y - sw->y); if (!sw->callunder) break; sw_dxc_toggle_highlight(sw, sw->callunder, 1); return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT | B_CLICK: if (ev->y==sw->y+sw->h){ inputln_func(sw->il, ev); return 1; } g_free(sw->callunder); sw->callunder = sw_dxc_call_under(sw, ev->x - sw->x + sw->ho, ev->y - sw->y); if (!sw->callunder) break; mi = new_menu(1); mi->rtext = sw->callunder; add_to_menu(&mi, CTEXT(T_SELECT), "", CTEXT(T_HK_SELECT), sw_dxc_select, NULL, 0); items++; add_to_menu(&mi, CTEXT(T_HIDE), "", CTEXT(T_HK_HIDE), sw_dxc_hide, NULL, 0); items++; add_to_menu(&mi, CTEXT(T_INFO), "", CTEXT(T_HK_INFO), sw_dxc_info, NULL, 0); items++; if (aband) { add_to_menu(&mi, CTEXT(T_USE), "", CTEXT(T_HK_USE), sw_dxc_use, NULL, 0); items++; } y = ev->y - 1; if (cfg->usetouch) y = ev->y - items - 1; set_window_ptr(gses->win, ev->x - 3, y); do_menu(mi, sw); break; case B_WHUP: /* dbg("wheel up\n");*/ if (ev->x > sw->w){ if (sw->side_bott) return 1; sw->dxc_offset -= 3; //if (sw->dxc_offset < 0) sw->dxc_offset = 0; //dbg("dxc_offset=%d\n", sw->dxc_offset); redraw_later(); return 1; } sw->offset+=3; sw->check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: /* dbg("wheel down\n"); */ if (ev->x > sw->w){ if (sw->side_top) return 1; sw->dxc_offset += 3; //dbg("kst_offset=%d\n", sw->kst_offset); redraw_later(); return 1; } sw->offset-=3; sw->check_bounds(sw); redraw_later(); return 1; } return 0; } void sw_dxc_redraw(struct subwin *sw, struct band *band, int flags){ int i, index, col; gchar *line, *pcall, *ccall; int ccol; struct spotband *sband; int ofs = 0; sband = get_actual_spotband(); //dbg("sw->il = %p\n", sw->il); if (ctest){ pcall = ctest->pcall; }else{ pcall = cfg->pcall; } //dbg("sw_dxc_redraw: offset=%d pattern='%s'\n", sw->offset, sw->pattern); //dbg("sw_dxc_redraw: term->x=%d ww=%d w=%d\n", term->x, sw->ww, sw->w); if (sw->pattern){ index = sw->lines->len; ofs = sw->offset; }else{ index = sw->lines->len - sw->offset; } for (i = sw->h - 1; i >= 0; i--){ if (sw->pattern){ for (index--; index >= 0; index--){ char *x; if (index < 0 || index >= sw->lines->len) line = "~"; else line = (char *)g_ptr_array_index(sw->lines, index); x = z_strcasestr(line, sw->pattern); //dbg("i=%d index=%d x=%p line=%s\n", i, index, x, line); if (x != 0) { if (ofs) ofs--; else goto found; } } continue; }else{ index--; if (index < 0 || index >= sw->lines->len) line = "~"; else line = (char *)g_ptr_array_index(sw->lines, index); } found:; if (!line || strlen(line) <= sw->ho) continue; col = sw_dxc_line_color(sw, line); ccall = sw_dxc_counterp(sw, line, &ccol); if (sw->pattern){ set_color(sw->x - 1, sw->y + i, COL_DARKCYAN * 8 | COL_NORM); //print_text(sw->x, sw->y+i, 1, " ", COL(6 * 8)); print_text(sw->x, sw->y+i, sw->w, line + sw->ho, col); if (ccall) sw_highlight(sw, line, ccall, ccol, i, 1); //dxc_highlight(line, sw->ho, pcall, COL_RED); sw_highlight(sw, line, sw->pattern, COL_RED, i, 0); }else{ print_text(sw->x, sw->y+i, sw->w, line + sw->ho, col); if (ccall) sw_highlight(sw, line, ccall, ccol, i, 1); sw_highlight(sw, line, pcall, COL_RED, i, 1); } } if (sband){ int y, idx; time_t now; //char raw[20]; int col; int maxw = 0; char s[100]; for (y = 0; y < sw->hh; y++){ int lll; struct spot *spot; idx = sband->current + sw->h / 2 - y; if (idx < 0 || idx >= sband->freq->len) continue; spot = (struct spot *)z_ptr_array_index(sband->freq, idx); sprintf(s, "%1.1f", spot->qrg); lll = strlen(s); if (lll > maxw) maxw = lll; } now = time(NULL); sw->side_top = sw->side_bott = 0; for (y = 0; y < sw->hh; y++){ idx = sband->current + sw->h / 2 - y - sw->dxc_offset; if (idx < 0 || idx >= sband->freq->len){ col = COL_NORM; if (idx == sband->current) col = COL_INV; clip_printf(sw, sw->w, y, col, "%-10s %-10s ", "~", ""); if (idx < 0) sw->side_top = 1; else sw->side_bott = 1; }else{ struct spot *spot = (struct spot *)z_ptr_array_index(sband->freq, idx); col = COL_NORM; if (now < spot->endbold) col = COL_WHITE; if (idx == sband->current) clip_printf(sw, sw->w, y, COL_NORM, "["); sprintf(s, "%1.1f", spot->qrg); clip_printf(sw, sw->w+1, y, col, "%*s", maxw, s); //z_get_raw_call(raw, spot->callsign); col = sw_dxc_color(spot->callsign); // color from raw call but print whole call clip_printf(sw, sw->w + maxw + 1, y, col, " %s", spot->callsign); if (dxc_new_mult(spot->callsign)){ clip_printf(sw, sw->w + maxw + 1, y, col, "!"); } if (idx == sband->current) clip_printf(sw, sw->w + 21, y, COL_NORM, "]"); } } } } void sw_dxc_check_bounds(struct subwin *sw){ if (sw->offset < 0) { sw->offset=0; sw_shake(sw, 0); } if (sw->offset > sw->lines->len - 1) { sw->offset = sw->lines->len - 1; if (sw->offset >= 0) sw_shake(sw, 1); } if (sw->offset < 0) { sw->offset=0; sw_shake(sw, 0); } } void sw_dxc_enter(void *enterdata, gchar *str, int cq){ struct subwin *sw; sw = (struct subwin *)enterdata; //dbg("sw_dxc_enter('%s', %d)\n", str, sw->sock); if (sw->sock < 0){ if (strcmp(str, "") == 0){ dxc_open_connection(sw, NULL); return; } return; }else{ if (strcmp(str, "\x03") == 0){ sw_dxc_disconnect(sw); return; } send(sw->sock, str, strlen(str), 0); send(sw->sock, "\r\n", 2, 0); } } void sw_dxc_addrinfo(struct zasyncdns *adns, int n, int *family, int *socktype, int *protocol, int *addrlen, union zsockaddr *addr, char *errorstr){ struct subwin *sw; int i, ret; GString *gs; char errbuf[100]; sw = (struct subwin *)adns->arg; if (cfg->dxc_port < 1 || cfg->dxc_port > 65535){ sw_printf(sw, VTEXT(T_BAD_DXC_PORT), cfg->dxc_port); sw_printf(sw, VTEXT(T_ENTER_TO_DXC)); return; } if (errorstr != NULL){ sw_printf(sw, VTEXT(T_CANT_RESOLVE), cfg->dxc_host, errorstr); sw_printf(sw, VTEXT(T_ENTER_TO_DXC)); return; } gs = g_string_new(VTEXT(T_HOST_RESOLVED)); for (i = 0; i < n; i++){ z_sock_ntoa(gs, family[i], addr + i); g_string_append_c(gs, ' '); } g_string_append(gs, "***\n"); sw_add_block(sw, gs->str); g_string_free(gs, TRUE); for (i = 0; i < n; i++){ //dbg("socket(%d, %d, %d)\n", family[i], socktype[i], protocol[i]); //sw->sock = socket(family[i], socktype[i], protocol[i]); sw->sock = socket(family[i], SOCK_STREAM, 0); if (sw->sock < 0) { sw_printf(sw, VTEXT(T_CANT_CREATE_SOCKET), z_sock_strerror()); continue; } if (z_sock_nonblock(sw->sock, 1)) { closesocket(sw->sock); continue; } switch (family[i]){ case AF_INET: ((struct sockaddr_in *)(addr + i))->sin_port = htons(cfg->dxc_port); break; #ifdef AF_INET6 case AF_INET6: ((struct sockaddr_in6 *)(addr + i))->sin6_port = htons(cfg->dxc_port); break; #endif default: closesocket(sw->sock); continue; // unsupported protocol family } ret = connect(sw->sock, (struct sockaddr *)(addr + i), addrlen[i]); if (ret < 0){ int err = z_sock_errno; GString *gs2 = g_string_new(""); if (z_sock_wouldblock(err)){ sw_printf(sw, VTEXT(T_CONNECTING_TO), z_sock_ntoa(gs2, family[i], addr + i)); zselect_set(zsel, sw->sock, NULL, sw_dxc_connected_handler, NULL, sw); }else{ sw_printf(sw, VTEXT(T_CANT_CONNECT_TO), z_sock_ntoa(gs2, family[i], addr + i), z_sock_strerror()); closesocket(sw->sock); dbg("sw_dxc_addrinfo -1\n"); sw->sock = -1; } g_string_free(gs2, TRUE); } else{ sw_dxc_connected_handler(sw); } break; } } void sw_dxc_connected_handler(void *xxx){ struct subwin *sw = (struct subwin *)xxx; if (z_sock_error(sw->sock)){ sw_dxc_disconnect(sw); return; } sw_printf(sw, VTEXT(T_CONNECTED_SOCKET), sw->sock); zselect_set(zsel, sw->sock, sw_dxc_read_handler, NULL, NULL, sw); sw->chat = 1; } void sw_dxc_read_handler(void *xxx){ char buf[1030], *d, *last, errbuf[100]; int i, ret; struct subwin *sw = (struct subwin *)xxx; ret = recv(sw->sock, buf, 1024, 0); if (ret <= 0){ if (z_sock_errno != 0){ // zero is handled by sw_dxc_disconnect() sw_printf(sw, VTEXT(T_ERROR_READING_SOCKET), z_sock_strerror()); } sw_dxc_disconnect(sw); return; } for (i = 0, d = buf; i < ret; i++){ if (buf[i] == '\0') continue; if (buf[i] == '\r') continue; if (buf[i] == '\xff'){ if (i + 2 < ret){ if ((buf[i+1] & 0xf0) == 0xf0){ i+=2; continue; // i++ } } } *d = buf[i]; d++; } *d = '\0'; buf[ret] = '\0'; sw_add_block(sw, buf); if (!sw->ontop && !sw->unread){ //sw->unread = 1; redraw_later(); } if (!sw->chat) return; if (sw->lines->len <= 0) return; last = (char *)g_ptr_array_index(sw->lines, sw->lines->len - 1); if (last == NULL) return; if (!regcmpi(last, "^login:")){ if (cfg->dxc_user && *cfg->dxc_user){ sw_printf(sw, "%s\r\n", cfg->dxc_user); z_sock_printf(sw->sock, "%s\r\n", cfg->dxc_user); } } if (!regcmpi(last, "^password:")){ if (cfg->dxc_pass && *cfg->dxc_pass){ sw_printf(sw, "%s\r\n", cfg->dxc_pass); z_sock_printf(sw->sock, "%s\r\n", cfg->dxc_pass); } sw->chat = 0; } } void sw_dxc_disconnect(struct subwin *sw){ if (sw->sock < 0) return; sw_printf(sw, VTEXT(T_DISCONNECTED)); zselect_set(zsel, sw->sock, NULL, NULL, NULL, NULL); closesocket(sw->sock); dbg("sw_dxc_disconnect -1\n"); sw->sock = -1; sw_printf(sw, VTEXT(T_ENTER_TO_DXC)); } #define FREE_SW_CX if (c1) {g_free(c1); c1=NULL;} if (c2) {g_free(c2); c2=NULL;} char *sw_dxc_call_under(struct subwin *sw, int x, int y){ int index; int ret, len, i1, i2; char *c1 = NULL, *c2 = NULL, *s, call[25]; //dbg("sw_dxc_call_under(sw, %d, %d)\n", x, y); if (x >= sw->w){ struct spotband *sband = get_actual_spotband(); //dbg("bandmapa\n"); if (sband){ // bandmap area struct spot *spot; int idx = sband->current + sw->h / 2 - y - sw->dxc_offset; if (idx < 0 || idx >= sband->freq->len) return NULL; spot = (struct spot *)g_ptr_array_index(sband->freq, idx); x = 0; // call begins at zero offset s = spot->callsign; }else{ return NULL; } }else{ // click in spot area if (sw->pattern){ int yy = sw->h - 1; int ofs = sw->offset; if (sw->pattern) index = sw->lines->len; else index = sw->lines->len - sw->offset; for (index--; 1; index--){ char *x, *line; if (index < 0) return NULL; line = (char *)g_ptr_array_index(sw->lines, index); x = z_strcasestr(line, sw->pattern); if (!x) continue; if (ofs > 0) { ofs--; continue; } if (yy == y) { if (ofs > 0){ ofs--; continue; }else{ break; } } yy--; if (!yy) return NULL; } //x--; }else{ index = sw->lines->len - sw->offset - sw->h + y; if (index < 0 || index >= sw->lines->len) return NULL; } s = (char*)g_ptr_array_index(sw->lines, index); if (x < 0 || x >= strlen(s)) return NULL; } //dbg("line='%s'\n", s); s = g_strdup(s); z_str_uc(s); for (i1 = x; i1 >= 0; i1--){ if (s[i1] >= 'A' && s[i1] <= 'Z') continue; if (s[i1] >= '0' && s[i1] <= '9') continue; if (s[i1] == '-') continue; if (s[i1] == '/') continue; break; } i1++; // line cannot begin with call len = strlen(s); for (i2 = x; i2 < len; i2 ++){ if (s[i2] >= 'A' && s[i2] <= 'Z') continue; if (s[i2] >= '0' && s[i2] <= '9') continue; if (s[i2] == '-') continue; if (s[i2] == '/') continue; break; } if (i2 > i1 && i2 - i1 < 20){ g_strlcpy(call, s + i1, Z_MIN(i2 - i1 + 1, 20)); z_strip_from(call, '-'); //rbn if (z_can_be_call(call, ZCBC_SLASH | ZCBC_MINUS)){ g_free(s); return g_strdup(call); } } /**** DXC ****/ /* 0 6 17 26 39 70 DX de ja8edu: 21285.0 OK2SSD CQ,CQ DX 0759Z but here in upcase */ c1 = NULL; c2 = NULL; ret = regmatch(s, "^DX\\ DE\\ ....................([0-9A-Z\\/]+)", &c1, &c2, NULL); if (ret == 0){ safe_strncpy0(call, c2, 19); goto doit; } FREE_SW_CX; /**/ doit:; /* dbg("ret=%d c1='%s' c2='%s'\n", ret, c1, c2);*/ FREE_SW_CX; g_free(s); if (ret) return NULL; //dbg("dxc_call_under is '%s'\n", call); return g_strdup(call); } // value: -2 hide, -1=hide+qrv 1=highlight void sw_dxc_toggle_highlight(struct subwin *sw_unused, char *call, int val){ char t[25]; gchar *key; int *value; //z_get_raw_call(t, call); g_strlcpy(t, call, sizeof(t)); if (g_hash_table_lookup_extended(gses->hicalls, (gpointer)t, (gpointer*)&key, (gpointer*)&value)){ if (*value != val){ *value = val; redraw_later(); return; } g_hash_table_remove(gses->hicalls, key); g_free(key); //dbg("call='%s' removed\n", t); }else{ value = g_new(int, 1); *value = val; g_hash_table_insert(gses->hicalls, g_strdup(t), value); if (aband){ int wkd[32]; char *wwl = NULL; if (val == -1){ qrv_delete(t, aband->bi); } if (val >= 0){ wwl = find_wwl_by_call(cw, t); if (wwl == NULL) wwl = ""; memset(wkd, 0, sizeof(wkd)); qrv_add(t, wwl, (1<bi), wkd, "@DXC", time(NULL)); } } //dbg("call='%s' inserted\n", t); } /* dbg("%d\n", g_hash_table_size(gses->hicalls));*/ redraw_later(); } void sw_dxc_select(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; sw_dxc_toggle_highlight(sw, sw->callunder, 1); } void sw_dxc_hide(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; sw_dxc_toggle_highlight(sw, sw->callunder, -1); } void sw_dxc_info(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; struct qso *q = g_new0(struct qso, 1); q->callsign = sw->callunder; call_info(q); g_free(q); } void sw_dxc_use(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; if (!aband) return; if (aband->readonly) return; process_input(aband, sw->callunder, 0); il_add_to_history(INPUTLN(aband), sw->callunder); sw_unset_focus(); il_set_focus(INPUTLN(aband)); } /* 0 6 17 26 39 70 DX de ja8edu: 21285.0 OK2SSD CQ,CQ DX 0759Z */ int sw_dxc_line_color(struct subwin *sw, char *line){ char call[20];//, raw[20]; char *c; if (strlen(line) < 29) return COL_NORM; g_strlcpy(call, line + 26, Z_MIN(sizeof(call), 39-26)); c = call; if (*c == ' ') c++; // spot from rbn is shifted if (*c == ' ') c++; z_strip_from(c, ' '); //z_get_raw_call(raw, c); return sw_dxc_color(c); } // called with sw == NULL char *sw_dxc_counterp(struct subwin *sw, char *line, int *color){ // thread unsafe! static char call[20]; char raw[20]; *color = 0; if (strlen(line) < 9) return 0; g_strlcpy(call, line + 6, Z_MIN(sizeof(call), 17-6)); z_strip_from(call, ' '); z_strip_from(call, ':'); z_strip_from(call, '-'); // rbn z_get_raw_call(raw, call); *color = sw_dxc_color(raw); return call; } int sw_dxc_color(char *call){ int *pval; if (!call) return COL_NORM; pval = (int *)g_hash_table_lookup(gses->hicalls, call); if (!pval) { char raw[25]; z_get_raw_call(raw, call); pval = (int *)g_hash_table_lookup(gses->hicalls, raw); if (!pval) return COL_NORM; } switch (*pval){ case -2: case -1: return COL_DARKGREY; case 0: return COL_NORM; } if (!aband) return COL_YELLOW; //if (get_qso_by_callsign(aband, call) == NULL) return COL_YELLOW; if (worked_on_all_rw(call)) return COL_DARKYELLOW; else return COL_YELLOW; } #ifdef HAVE_HAMLIB void dxc_qrg_changed(freq_t qrg){ struct spotband *sband; struct spot *spot, *sp; double min, m; int cur; sband = get_actual_spotband(); if (!sband) return; if (!sband->freq->len) return; spot = (struct spot *)z_ptr_array_index(sband->freq, sband->current); min = Z_ABS(spot->qrg * 1000 - qrg); for (cur = sband->current; cur < sband->freq->len; cur++){ sp = (struct spot *)z_ptr_array_index(sband->freq, cur); m = Z_ABS(sp->qrg * 1000 - qrg); if (m > min) break; sband->current = cur; min = m; } for (cur = sband->current; cur >= 0; cur--){ sp = (struct spot *)z_ptr_array_index(sband->freq, cur); m = Z_ABS(sp->qrg * 1000 - qrg); if (m > min) break; sband->current = cur; min = m; } } #endif void sw_dxc_spot_from_net(struct subwin *sw, char *str){ int i; if (sw->sock != -1) return; // have own connection if (strlen(str) >= 2 && str[0] == 'D' && str[1] == 'X'){ str[0] = 'd'; str[1] = 'x'; } for (i = sw->lines->len - 1; i > sw->lines->len - term->y; i--){ if (i < 0) break; if (strcasecmp(str, (char*)g_ptr_array_index(sw->lines, i)) == 0) return; } sw->dxc_from_net = 1; sw_printf(sw, "%s\n", str); sw->dxc_from_net = 0; } void dxc_open_connection(void *arg, void *arg2){ struct subwin *sw = (struct subwin *)arg; sw_printf(sw, VTEXT(T_RESOLVING), cfg->dxc_host); zasyncdns_getaddrinfo(sw->adns, zsel, sw_dxc_addrinfo, cfg->dxc_host, AF_INET, sw); } void dxc_export_text(void *itdata, void *menudata) { struct subwin *sw = (struct subwin *)itdata; sw_export_lines(sw, "dxc"); } int dxc_new_mult(const char *callsign){ if (!ctest) return 0; if (ctest->excused && excdb != NULL && aband != NULL && aband->stats != NULL && aband->stats->excs != NULL){ char *exc = find_exc_by_call(excdb, callsign); if (exc && *exc){ struct cntpts *c = (struct cntpts*)g_hash_table_lookup(aband->stats->excs, exc); if (c == NULL) return 1; } } return 0; }tucnak-4.04/src/qrvdb.c0000644000175000017500000013075612500052574011734 00000000000000/* Tucnak - VHF contest log Copyright (C) 2009-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "cwdb.h" #include "dwdb.h" #include "edi.h" #include "fifo.h" #include "hf.h" #include "inputln.h" #include "kbd.h" #include "kbdbind.h" #include "kst.h" #include "main.h" #include "menu.h" #include "qrvdb.h" #include "qsodb.h" #include "rc.h" #include "rotar.h" #include "tsdl.h" #include "session.h" #include "subwin.h" #include "tregex.h" #include "zstring.h" struct qrvdb *qrv; int xyz=1; struct qrvdb *init_qrv(void){ struct qrvdb *qrvdb; int i; progress(VTEXT(T_INIT_QRVDB)); qrvdb = g_new0(struct qrvdb, 1); qrvdb->qrvs = z_ptr_array_new(); MUTEX_INIT(qrvdb->qrvs); qrvdb->hash = g_hash_table_new(g_str_hash, g_str_equal); qrvdb->def_bands = 0; qrvdb->sortdir = 1; for (i=0; ibands->len; i++){ struct config_band *confb = (struct config_band *)z_ptr_array_index(cfg->bands, i); if (confb->qrv || confb->qrvnow) qrvdb->def_bands |= 1 << (confb->bandchar-'A'); } /*qrv->sort = qrv_compare_call; qrv->sort2 = NULL;*/ qrvdb->sort = qrv_compare_wkd; qrvdb->sort2 = qrv_compare_qrb; qrvdb->showall = 0; strcpy(qrvdb->search, ""); return qrvdb; } void free_qrv_item(struct qrv_item *qi){ zg_free0(qi->call); zg_free0(qi->wwl); zg_free0(qi->text); g_free(qi); } gboolean qrv_free_hash_item(gpointer key, gpointer value, gpointer user_data){ //dbg("%s: %d\n", __FUNCTION__, xyz++); g_free(key); //dbg("%d\n", xyz++); // value is already freeed return TRUE; } void clear_qrv(struct qrvdb *qrvdb){ int i; struct subwin *sw; //dbg("%s: a%d\n", __FUNCTION__, xyz++); if (gses && gses->subwins){ // gses==NULL when terminating for (i = 0; i < gses->subwins->len; i++){ sw = (struct subwin *)z_ptr_array_index(gses->subwins, i); #ifdef Z_HAVE_SDL // if (sw->type == SWT_MAP) zg_free0(sw->minqrvcall); #endif if (sw->type == SWT_KST) kst_clear_users(sw); } } MUTEX_LOCK(qrvdb->qrvs); for (i = qrvdb->qrvs->len - 1; i >= 0; i--){ struct qrv_item *qi = (struct qrv_item*)z_ptr_array_index(qrvdb->qrvs, i); z_ptr_array_remove_index(qrvdb->qrvs, i); //dbg("%s: d%d\n", __FUNCTION__, xyz++); free_qrv_item(qi); //dbg("%s: e%d\n", __FUNCTION__, xyz++); } //dbg("%s: f%d\n", __FUNCTION__, xyz++); g_hash_table_foreach_remove(qrvdb->hash, qrv_free_hash_item, NULL); //dbg("%s: g%d\n", __FUNCTION__, xyz++); MUTEX_UNLOCK(qrvdb->qrvs); } void free_qrv(struct qrvdb *qrvdb){ xyz = 1; progress(VTEXT(T_FREE_QRVDB)); //dbg("%s: u%d\n", __FUNCTION__, xyz++); clear_qrv(qrvdb); //dbg("%s: v%d\n", __FUNCTION__, xyz++); MUTEX_FREE(qrvdb->qrvs); z_ptr_array_free(qrvdb->qrvs, 1); //dbg("%s: w%d\n", __FUNCTION__, xyz++); g_hash_table_destroy(qrvdb->hash); //dbg("%s: x%d\n", __FUNCTION__, xyz++); g_free(qrvdb); //dbg("%s: y%d\n", __FUNCTION__, xyz++); } struct qrv_item *qrv_add(gchar *call, gchar *wwl, int qrv_int, int wkd[32], const gchar *text, time_t kst_time){ struct qrv_item *qi; //char raw[20]; if (!wwl || !*wwl){ wwl = find_wwl_by_call(cw, call); if (!wwl) wwl=""; } //dbg("qrv_add('%s', '%s', %d, (%d;%d;%d), '%s', %d)\n", call, wwl, qrv_int, wkd[2], wkd[4], wkd[6], text, (unsigned int)kst_time); qi = qrv_get(qrv, call); if (qi && strcasecmp(qi->call, call) == 0){ int wi; // dbg("qrv_update(%s)\n", call); if (wwl && *wwl) { zg_free0(qi->wwl); qi->wwl = z_str_uc(g_strdup(wwl)); qrv_compute_qrbqtf(qi); } qi->bands_qrv |= qrv_int; if (text && strlen(text) > strlen(qi->text)){ zg_free0(qi->text); qi->text = g_strdup(text); } qi->kst_time = kst_time; for (wi = 0; wi < 32; wi++) qi->wkd[wi] += wkd[wi]; return qi; } // dbg("qrv_new(%s)\n", call); qi = g_new0(struct qrv_item, 1); qi->call = z_str_uc(g_strdup(call)); qi->wwl = z_str_uc(g_strdup(wwl)); qi->bands_qrv = qrv_int; memcpy(qi->wkd, wkd, sizeof(qi->wkd)); qi->text = g_strdup(text); qi->kst_time = kst_time; qrv_compute_qrbqtf(qi); MUTEX_LOCK(qrv->qrvs); z_ptr_array_add(qrv->qrvs, qi); MUTEX_UNLOCK(qrv->qrvs); //z_get_raw_call(raw, call); g_hash_table_insert(qrv->hash, g_strdup(call), qi); // dbg("add_to_list(%s %s %s)\r\n", qi->call, qi->wwl, qi->text); return qi; } void qrv_delete(char *call, int bi){ struct qrv_item *qi; if (qrv->qrvs->len != 0) return; qi = (struct qrv_item*)g_hash_table_lookup(qrv->hash, call); if (!qi) return; qi->bands_qrv &= ~(1< 'Z') return 0; if (d < last) return 0; last = d; } return 1; } #define QRV_DELIM " \t\r\n" void load_one_qrv(struct qrvdb *qrvdb, gchar *s){ struct zstring *zs; gchar *call, *wwl, *text, *str, *c; int qrv_int = 0, wkd[32]; time_t kst_time = 0; zs = zstrdup(s); //dbg("ztokens=%d '%s'\n", ztokens(zs), s); if (ztokens(zs) >= 6){ ztokenize(zs, 1); // first ';' call = ztokenize(zs, 0); if (call[0] == '#') return; wwl = ztokenize(zs, 0); str = ztokenize(zs, 0); for (c = str; *c != '\0'; c++) qrv_int |= 1 << (toupper(*c) - 'A'); str = ztokenize(zs, 0); memset(wkd, 0, sizeof(wkd)); for (c = str; *c != '\0'; c++) { if (*c < 'A' || *c > 'Z') continue; wkd[*c - 'A'] = atoi(c+1); if (c[1] == '\0' || c[1] > '9') wkd[*c - 'A'] = 1; // for compatibility, 'ABC' means A=1, B=1, C=1 // number will be skipped by c++ and next condition } text = ztokenize(zs, 0); str = ztokenize(zs, 0); if (str) kst_time = atoi(zs->str); qrv_add(call, wwl, qrv_int, wkd, text, kst_time); } zfree(zs); } void old_load_one_qrv(struct qrvdb *qrvdb, gchar *s){ gchar *call, *wwl, *qrv_str, *text; int qrv_int, free_text = 0, wkd[32]; char *token_ptr, *c; // dbg("load_one_qrv('%s')\n", s); call = strtok_r(s, QRV_DELIM, &token_ptr); if (!call) return; wwl = strtok_r(NULL, QRV_DELIM, &token_ptr); if (!wwl) return; qrv_str = strtok_r(NULL, QRV_DELIM, &token_ptr); if (!qrv_str) qrv_str = ""; text = token_ptr; memset(wkd, 0, sizeof(wkd)); if (!is_qrv(qrv_str)){ // dbg("!isqrv(%s)\n", qrv_str); qrv_int = qrv->def_bands; //bands_wkd_me = qrv->def_bands; text = g_strconcat(qrv_str, " ", text, NULL); free_text = 1; }else{ qrv_int = 0; for (c=qrv_str;*c!='\0';c++){ if (isupper(*c)) { //dbg("wkd[%d]=1\n", *c-'A'); wkd[*c-'A'] = 1; } *c=z_char_uc(*c); qrv_int|=1<<(*c-'A'); } } qrv_add(call, wwl, qrv_int, wkd, text, 0); if (free_text) g_free(text); } int load_qrv_from_file(struct qrvdb *qrvdb, gchar *filename){ FILE *f; char s[202]; f = fopen(filename, "rt"); if (!f){ return -1; } while((fgets(s, 200, f))!=NULL){ chomp(s); if (s[0]=='#') continue; if (s[0]==';') load_one_qrv(qrvdb,s); else old_load_one_qrv(qrvdb,s); } fclose(f); z_ptr_array_qsort(qrv->qrvs, qrv->sort); return 0; } struct zstring *qrv_format(struct qrv_item *qi){ char qrv_str[32], wkd_str[32*30], kst_str[20]; char x[2], d; struct zstring *zs; x[1]='\0'; strcpy(qrv_str, ""); for (x[0]='A'; x[0]<'Z'; x[0]++) if (qi->bands_qrv & ( 1 << (x[0] - 'A'))) strcat(qrv_str, x); strcpy(wkd_str, ""); for (d='A'; d<'Z'; d++) { // dbg("band=%c i=%d wkd=%d \n", d, d - 'A', qi->wkd[d - 'A']); if (qi->wkd[d - 'A'] == 0) continue; // dbg("%c=%d\n", d, qi->wkd[d - 'A']); sprintf(wkd_str+strlen(wkd_str), "%c%d", d, qi->wkd[d - 'A']); } sprintf(kst_str, "%d", (int)qi->kst_time); zs = zconcatesc("", qi->call, qi->wwl, qrv_str, wkd_str, qi->text, kst_str, NULL); return zs; } int save_qrv_to_file(char *filename){ FILE *f; int i; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } for (i=0; iqrvs->len; i++){ struct zstring *zs; struct qrv_item *qi = (struct qrv_item*)z_ptr_array_index(qrv->qrvs, i); zs = qrv_format(qi); fprintf(f, "%s\n", zs->str); //dbg("zs->str='%s'\n", zs->str); zfree(zs); } fclose(f); return 0; } int qrv_skip(struct qrv_item *qi, int bi, int setdrawn){ //if (get_qso_by_callsign(aband, qi->call)!=NULL) return 1; int ret = 0; if ((qi->bands_wkd & (1<showall && !*qrv->search) { qi->ac_drawn = 1; return ret; } if ((qi->bands_qrv & (1<search) > 1){// here's leading / ret = 3; if (z_strcasestr(qi->call, qrv->search + 1)) ret = 0; if (z_strcasestr(qi->wwl, qrv->search + 1)) ret = 0; if (z_strcasestr(qi->text, qrv->search + 1)) ret = 0; } //dbg("qrv_skip(%s, %d)=%d qrv=0x%x wkd=0x%x\n", qi->call, bi, ret, qi->bands_qrv, qi->bands_wkd); qi->ac_drawn = (ret == 0); if (qi->ac_drawn == 0) qi->ac_start = (time_t)0; return ret; } int qrv_compare_call(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; ret = strcmp((*qa)->call, (*qb)->call); if (ret) return ret * qrv->sortdir; if (qrv->sort2 == qrv_compare_call) return 0; return qrv->sort2(a, b); } int qrv_compare_wwl(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; ret = strcmp((*qa)->wwl, (*qb)->wwl); if (ret) return ret * qrv->sortdir; if (qrv->sort2 == qrv_compare_wwl) return 0; return qrv->sort2(a, b); } int qrv_compare_wkd(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; if (!aband) return 0; ret = (*qa)->wkd[aband->bi] - (*qb)->wkd[aband->bi]; if (ret) return (-ret) * qrv->sortdir; if (qrv->sort2 == qrv_compare_wkd) return 0; return qrv->sort2(a, b); } int qrv_compare_qrb(const void *a, const void *b){ struct qrv_item **qa, **qb; double d; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; d = (*qa)->qrb - (*qb)->qrb; if (d != 0) return d < 0 ? qrv->sortdir : -qrv->sortdir; // odx on top if (qrv->sort2 == qrv_compare_qrb) return 0; return qrv->sort2(a, b); } int qrv_compare_qtf(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; if (!aband) return 0; ret = (*qa)->qtf - (*qb)->qtf; if (ret) return ret * qrv->sortdir; if (qrv->sort2 == qrv_compare_qtf) return 0; return qrv->sort2(a, b); } int qrv_compare_kst_time(const void *a, const void *b){ struct qrv_item **qa, **qb; long int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; if (!aband) return 0; ret = (int)((*qa)->kst_time - (*qb)->kst_time); if (ret) return ret * qrv->sortdir; if (qrv->sort2 == qrv_compare_kst_time) return 0; return qrv->sort2(a, b); } int qrv_compare_ac_start(const void *a, const void *b){ struct qrv_item **qa, **qb; long int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; if (!aband) return 0; ret = (int)((*qa)->ac_start - (*qb)->ac_start); if (ret) return ret * qrv->sortdir; if (qrv->sort2 == qrv_compare_ac_start) return 0; return qrv->sort2(a, b); } int qrv_compare_ac_int(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; if (!aband) return 0; ret = (*qa)->ac_interval - (*qb)->ac_interval; if (ret) return (-ret) * qrv->sortdir; if (qrv->sort2 == qrv_compare_ac_int) return 0; return qrv->sort2(a, b); } int qrv_compare_ac_n(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; if (!aband) return 0; ret = (*qa)->ac_interval - (*qb)->ac_interval; if (ret) return (-ret) * qrv->sortdir; if (qrv->sort2 == qrv_compare_ac_n) return 0; return qrv->sort2(a, b); } int qrv_compare_text(const void *a, const void *b){ struct qrv_item **qa, **qb; int ret; qa = (struct qrv_item **)a; qb = (struct qrv_item **)b; if (!*qa && !*qb) return 0; if (!*qa) return -qrv->sortdir; if (!*qb) return +qrv->sortdir; ret = strcmp((*qa)->text, (*qb)->text); if (ret) return ret * qrv->sortdir; if (qrv->sort2 == qrv_compare_text) return 0; return qrv->sort2(a, b); } void sw_qrv_seek(struct subwin *sw, int value){ struct qrv_item *qi; if (!aband) return; while (value > 0){ sw->cur++; if (sw->cur >= qrv->qrvs->len) break; if (sw->cur >= 0){ qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (qrv_skip(qi, aband->bi, 0)) continue; } value--; } while (value < 0){ sw->cur--; if (sw->cur < 0) break; if (sw->cur < qrv->qrvs->len){ qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (qrv_skip(qi, aband->bi, 0)) continue; } value++; } } void qrv_sort(int (*fce)(const void*, const void *)){ if (qrv->sort == fce){ qrv->sortdir = -qrv->sortdir; }else{ qrv->sort2 = qrv->sort; qrv->sort = fce; } z_ptr_array_qsort(qrv->qrvs, qrv->sort); redraw_later(); } int sw_qrv_kbd_func(struct subwin *sw, struct event *ev, int fw){ int len; struct qrv_item *qi; if (!aband) return 0; switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw_qrv_seek(sw, 1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw_qrv_seek(sw, -1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw_qrv_seek(sw, sw->h - 1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw_qrv_seek(sw, -sw->h + 1); sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->cur = 0; sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->cur = qrv->qrvs->len - 1; sw_qrv_check_bounds(sw); redraw_later(); return 1; case ACT_SCROLL_LEFT: if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: sw->ho++; redraw_later(); return 1; case ACT_ENTER: if (*qrv->search){ strcpy(qrv->search, ""); redraw_later(); if (sw->cur < 0 || sw->cur >= qrv->qrvs->len) return 1; qi = (struct qrv_item*)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qi) return 1; qi->bands_qrv |= 1<bi; return 1; } sw_unset_focus(); il_set_focus(aband->il); if (sw->cur < 0 || sw->cur >= qrv->qrvs->len) break; qi = (struct qrv_item*)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qi) break; clear_tmpqsos(aband,1); process_input(aband, qi->call, 1); il_add_to_history(INPUTLN(aband), qi->call); redraw_later(); /*#ifdef HAVE_HAMLIB if (trig){ trig_set_qrg(trig, qi->qrg*1000.0); #endif */ return 1; case ACT_BACKSPACE: len = strlen(qrv->search); if (len == 0) break; qrv->search[len - 1] = '\0'; redraw_later(); return 1; case ACT_DELETE: if (sw->cur < 0 || sw->cur >= qrv->qrvs->len) break; qi = (struct qrv_item*)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qi) break; qi->bands_qrv &= ~(1<bi); sw_kst_toggle_highlight(NULL, qi->call, -2); redraw_later(); return 1; case ACT_INSERT: edit_qrv(NULL); return 1; default: //dbg("default: ev->x='%c' search='%s'\n", ev->x, qrv->search); if (cfg->slashkey && *cfg->slashkey){ if (ev->x == '/') ev->x = *cfg->slashkey; else if (ev->x == *cfg->slashkey) ev->x = '/'; } if (*qrv->search && ev->y == 0){ if (!isprint((unsigned char)ev->x)) break; len = strlen(qrv->search); if (len >= QRVSSIZE - 2) break; qrv->search[len] = toupper(ev->x); qrv->search[len+1] = '\0'; //dbg("search='%s'\n", qrv->search); redraw_later(); break; } switch(ev->x){ case ' ': if (sw->cur < 0 || sw->cur >= qrv->qrvs->len) break; qi = (struct qrv_item*)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qi) break; clear_tmpqsos(aband,1); process_input(aband, qi->call, 0); il_add_to_history(INPUTLN(aband), qi->call); redraw_later(); break; case '1': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; qrv_sort(qrv_compare_call); return 1; case '2': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; qrv_sort(qrv_compare_wwl); return 1; case '3': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; qrv_sort(qrv_compare_wkd); return 1; case '4': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; qrv_sort(qrv_compare_qrb); return 1; case '5': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; qrv_sort(qrv_compare_qtf); return 1; case '6': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; qrv_sort(qrv_compare_kst_time); return 1; case '7': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; if (!gacs) goto sort_text; qrv_sort(qrv_compare_ac_start); return 1; case '8': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; if (!gacs) return 0; qrv_sort(qrv_compare_ac_int); return 1; case '9': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; if (!gacs) return 0; qrv_sort(qrv_compare_ac_n); return 1; case '0': if (ev->y & (KBD_CTRL | KBD_ALT)) return 0; sort_text: qrv_sort(qrv_compare_text); return 1; case 'a': case 'A': qrv->showall = !qrv->showall; redraw_later(); return 1; case 'e': case 'E': { if (sw->cur < 0 || sw->cur >= qrv->qrvs->len) return 1; qi = (struct qrv_item*)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qi) break; edit_qrv(qi); return 1; } case 'u': case 'U': if (sw->cur < 0 || sw->cur >= qrv->qrvs->len) return 1; qi = (struct qrv_item*)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qi) break; qi->bands_qrv |= 1<bi; redraw_later(); return 1; case '/': strcpy(qrv->search, "/"); redraw_later(); return 1; } } return 0; } char *sw_qrv_call_under(struct subwin *sw, int x, int y0){ int y, i; struct qrv_item *qi; if (sw->cur < 0 || sw->cur >= qrv->qrvs->len) return NULL; y = sw->h / 2; if (y == y0) { qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); return g_strdup(qi->call); } y = sw->h / 2; for(i = sw->cur - 1; i >= 0; i--){ if (y <= 0) break; qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); if (qrv_skip(qi, aband->bi, 0)) continue; y--; if (y == y0) return g_strdup(qi->call); } y = sw->h / 2; for(i = sw->cur + 1; i < qrv->qrvs->len; i++){ if (y >= sw->h - 1) break; qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); if (qrv_skip(qi, aband->bi, 0)) continue; y++; if (y == y0) return g_strdup(qi->call); } return NULL; } // value: -2 hide, -1=hide+qrv 1=highlight void sw_qrv_toggle_highlight(struct subwin *sw_unused, char *call, int val){ char t[25]; gchar *key; int *value; z_get_raw_call(t, call); if (g_hash_table_lookup_extended(gses->hicalls, (gpointer)t, (gpointer*)&key, (gpointer*)&value)){ if (*value != val){ *value = val; redraw_later(); return; } g_hash_table_remove(gses->hicalls, key); g_free(key); dbg("call='%s' removed\n", t); }else{ value = g_new(int, 1); *value = val; g_hash_table_insert(gses->hicalls, g_strdup(t), value); if (aband){ int wkd[32]; char *wwl = NULL; if (val == -1){ qrv_delete(t, aband->bi); } if (val >= 0){ wwl = find_wwl_by_call(cw, t); if (wwl == NULL) wwl = ""; memset(wkd, 0, sizeof(wkd)); qrv_add(t, wwl, (1<bi), wkd, "@DXC", time(NULL)); } } dbg("call='%s' inserted\n", t); } /* dbg("%d\n", g_hash_table_size(gses->hicalls));*/ redraw_later(); } void sw_qrv_select(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; sw_qrv_toggle_highlight(sw, sw->callunder, 1); } void sw_qrv_hide(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; sw_qrv_toggle_highlight(sw, sw->callunder, -1); } void sw_qrv_info(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; struct qso *q = g_new0(struct qso, 1); q->callsign = sw->callunder; call_info(q); g_free(q); } void sw_qrv_use(void *itdata, void *menudata){ struct subwin *sw = (struct subwin*)menudata; if (!aband) return; if (aband->readonly) return; process_input(aband, sw->callunder, 0); il_add_to_history(INPUTLN(aband), sw->callunder); sw_unset_focus(); il_set_focus(INPUTLN(aband)); } int sw_qrv_mouse_func(struct subwin *sw, struct event *ev, int fw){ struct menu_item *mi = NULL; struct qrv_item *qi; int i; if (ev->b & B_DRAG && aband != NULL){ int dy = sw_accel_dy(sw, ev); if (dy == 0) return 1; dy = -dy; #ifdef Z_HAVE_SDL //if (zsdl && ztimeout_occured(sw->olddrag)) dy /= zsdl->font_h; #endif if (dy < 0){ sw->cur--; while (sw->cur >= 0){ qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qrv_skip(qi, aband->bi, 0)) break; sw->cur--; } }else{ sw->cur++; while (sw->cur < qrv->qrvs->len){ qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qrv_skip(qi, aband->bi, 0)) break; sw->cur++; } } sw->check_bounds(sw); redraw_later(); sw->olddragx = ev->x; sw->olddragy = ev->my; return 1; } //if ((ev->b & BM_ACT)!=B_DOWN) return 0; // dbg("ev->b=%x BM_ACT=%x B_DOWN=%x BM_EBUTT=%x \n", ev->b, BM_ACT, B_DOWN, BM_EBUTT); if (cfg->usetouch && (ev->b & BM_EBUTT) == B_LEFT) ev->b = (ev->b & ~BM_EBUTT) | B_RIGHT; switch (ev->b & BM_BUTCL){ case B_LEFT: case B_RIGHT: sw->olddragx = ev->x; sw->olddragy = ev->my; break; case B_LEFT | B_CLICK: // if (!sw->il) break; /*if (ev->y==sw->y+sw->hh){ inputln_func(sw->il, ev); return 1; } */ if (ev->y == sw->y){ int xrel = ev->x - sw->x - sw->ho; if (xrel > 71){ qrv_sort(qrv_compare_text); }else if (xrel >= 67){ qrv_sort(qrv_compare_ac_n); }else if (xrel >= 63){ qrv_sort(qrv_compare_ac_int); }else if (xrel >= 50){ qrv_sort(qrv_compare_ac_start); }else if (xrel >= 42){ qrv_sort(qrv_compare_kst_time); }else if (xrel >= 36){ qrv_sort(qrv_compare_qtf); }else if (xrel >= 29){ qrv_sort(qrv_compare_qrb); }else if (xrel >= 23){ qrv_sort(qrv_compare_wkd); }else if (xrel >= 16){ qrv_sort(qrv_compare_wwl); }else if (xrel >= 2){ qrv_sort(qrv_compare_call); } redraw_later(); return 1; } g_free(sw->callunder); sw->callunder = sw_qrv_call_under(sw, ev->x - sw->x + sw->ho, ev->y - sw->y); dbg("callunder='%s'\n", sw->callunder); if (!sw->callunder) break; sw_qrv_toggle_highlight(sw, sw->callunder, 1); return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT | B_CLICK: g_free(sw->callunder); sw->callunder = sw_qrv_call_under(sw, ev->x - sw->x + sw->ho, ev->y - sw->y); dbg("callunder='%s'\n", sw->callunder); if (!sw->callunder) break; mi = new_menu(1); mi->rtext = sw->callunder; add_to_menu(&mi, CTEXT(T_SELECT), "", CTEXT(T_HK_SELECT), sw_qrv_select, NULL, 0); add_to_menu(&mi, CTEXT(T_HIDE), "", CTEXT(T_HK_HIDE), sw_qrv_hide, NULL, 0); add_to_menu(&mi, CTEXT(T_INFO), "", CTEXT(T_HK_INFO), sw_qrv_info, NULL, 0); if (aband) add_to_menu(&mi, CTEXT(T_USE), "", CTEXT(T_HK_USE), sw_qrv_use, NULL, 0); set_window_ptr(gses->win, ev->x - 3, ev->y - 1); do_menu(mi, sw); break; case B_WHUP: /* dbg("wheel up\n");*/ if (!aband) return 1; for (i = 0; i < 3; i++){ sw->cur--; while (sw->cur >= 0){ if (sw->cur >= 0 && sw->cur < qrv->qrvs->len) { qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qrv_skip(qi, aband->bi, 0)) break; } sw->cur--; } } sw->check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: /* dbg("wheel down\n"); */ if (!aband) return 1; for (i = 0; i < 3; i++){ sw->cur++; while (sw->cur < qrv->qrvs->len){ if (sw->cur >= 0 && sw->cur < qrv->qrvs->len) { qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qrv_skip(qi, aband->bi, 0)) break; } sw->cur++; } } dbg("B_WHDOWN: sw->cur=%d ", sw->cur); sw->check_bounds(sw); dbg("%d\n", sw->cur); redraw_later(); return 1; } return 0; } void sw_qrv_draw_qrv(struct subwin *sw, int i, struct qrv_item *qi, int color){ gchar *c; char degree=' '; struct tm utc; char kst_time_str[20]; char qrb_str[20]; char qtf_str[20]; char acstart[30]; char acint[30]; #ifdef Z_HAVE_SDL //if (sdl) degree=''; if (sdl) degree=0xb0; #endif if (!qi || !qi->call){ c = g_strdup("~"); }else{ strcpy(qrb_str, ""); if (qi->qrb >= 0) sprintf(qrb_str, "%5.0fkm", qi->qrb); strcpy(qtf_str, ""); if (qi->qtf >= 0) sprintf(qtf_str, "%3d%c", qi->qtf, degree); strcpy(kst_time_str, ""); if (qi->kst_time != 0){ gmtime_r(&qi->kst_time, &utc); sprintf(kst_time_str, "%2d:%02d", utc.tm_hour, utc.tm_min); } ac_format(qi, acstart, acint, 1); c = g_strdup_printf("%-12s %6s %4d %-7s " "%-4s %5s %s %s %s", qi->call, qi->wwl, qi->wkd[aband->bi], qrb_str, qtf_str, kst_time_str, acstart, acint, qi->text); } if (c && strlen(c)>sw->ho){ //print_text(sw->x+1, sw->y+i, sw->w, c + sw->ho, color); clip_printf(sw, 1, i, color, "%s", c + sw->ho); } if (i == sw->h / 2){ clip_printf(sw, 0, i, COL_NORM, "["); clip_printf(sw, 40, i, COL_NORM, "]"); } g_free(c); } int sw_qrv_color(char *call){ int *pval, ret; char *c; if (!call) return COL_NORM; pval = (int *)g_hash_table_lookup(gses->hicalls, call); if (!pval) return COL_NORM; switch (*pval){ case -2: case -1: return COL_DARKGREY; case 0: return COL_NORM; } if (!aband) return COL_YELLOW; c = g_strdup(call); z_strip_from(c, '-'); if (worked_on_all_rw(c)) ret = COL_DARKYELLOW; else ret = COL_YELLOW; g_free(c); return ret; } void sw_qrv_redraw(struct subwin *sw, struct band *band, int flags){ struct qrv_item *qi; int i, y, len, color; char *c, raw[30]; if (!aband) return; //fill_area(sw->x, sw->y+sw->h/2, sw->w, 1, COL_INV); clip_printf(sw, -sw->ho + 2, 0, qrv->sort==qrv_compare_call?COL_WHITE:COL_NORM, VTEXT(T_CALLSIGN3)); clip_printf(sw, -sw->ho + 16, 0, qrv->sort==qrv_compare_wwl?COL_WHITE:COL_NORM, VTEXT(T_WWL3)); clip_printf(sw, -sw->ho + 23, 0, qrv->sort==qrv_compare_wkd?COL_WHITE:COL_NORM, VTEXT(T_WKD2)); clip_printf(sw, -sw->ho + 29, 0, qrv->sort==qrv_compare_qrb?COL_WHITE:COL_NORM, VTEXT(T_QRB)); clip_printf(sw, -sw->ho + 36, 0, qrv->sort==qrv_compare_qtf?COL_WHITE:COL_NORM, VTEXT(T_QTF)); clip_printf(sw, -sw->ho + 42, 0, qrv->sort==qrv_compare_kst_time?COL_WHITE:COL_NORM, VTEXT(T_ACKST2)); if (gacs){ clip_printf(sw, -sw->ho + 50, 0, qrv->sort==qrv_compare_ac_start?COL_WHITE:COL_NORM, VTEXT(T_START)); clip_printf(sw, -sw->ho + 63, 0, qrv->sort==qrv_compare_ac_int?COL_WHITE:COL_NORM, VTEXT(T_DUR)); clip_printf(sw, -sw->ho + 67, 0, qrv->sort==qrv_compare_ac_n?COL_WHITE:COL_NORM, VTEXT(T_NR)); } clip_printf(sw, -sw->ho + 71, 0, qrv->sort==qrv_compare_text?COL_WHITE:COL_NORM, VTEXT(T_TEXT2)); len = strlen(qrv->search); if (len > 0){ clip_printf(sw, 0, sw->h - 1, COL_NORM, "%s", qrv->search); if (gses->focused) set_cursor(sw->x + len, sw->y + sw->h - 1, sw->x + len, sw->y + sw->h - 1); }else{ int x = 0; c = VTEXT(T_16_SORT); clip_printf(sw, x, sw->h - 1, COL_NORM, c); x += strlen(c); c = VTEXT(T_A_ALL); clip_printf(sw, x, sw->h - 1, qrv->showall?COL_WHITE:COL_NORM, c); x += strlen(c); c = VTEXT(T_ENTER_SPACE_EDIT); clip_printf(sw, x, sw->h - 1, COL_NORM, c); x += strlen(c); } if (!qrv->qrvs->len) return; sw_qrv_check_bounds(sw); qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); // dbg("%s: cur=%d qi=%p\n", __FUNCTION__, sw->cur, qi); if (!qi || qrv_skip(qi, aband->bi, 1)) { print_text(sw->x, sw->y + sw->h/2, sw->w, "~", COL_INV); return; } z_get_raw_call(raw, qi->call); color = sw_qrv_color(raw); /*if (color != COL_NORM) color |= COL_INV; else color = COL_INV;*/ sw_qrv_draw_qrv(sw, sw->h/2, qi, color); y = sw->h / 2 - 1; for(i = sw->cur - 1; i >= 0; i--){ if (y <= 0) break; qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); if (qrv_skip(qi, aband->bi, 1)) continue; z_get_raw_call(raw, qi->call); color = sw_qrv_color(raw); sw_qrv_draw_qrv(sw, y--, qi, color); } for (; i >= 0; i--){ struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); qi->ac_drawn = 0; qi->ac_start = (time_t)0; } y = sw->h / 2 + 1; for(i = sw->cur + 1; i < qrv->qrvs->len; i++){ if (y >= sw->h - 1) break; qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); if (qrv_skip(qi, aband->bi, 1)) continue; z_get_raw_call(raw, qi->call); color = sw_kst_color(raw); sw_qrv_draw_qrv(sw, y++, qi, color); } for (; i < qrv->qrvs->len; i++){// ((struct qrv_item *)z_ptr_array_index(qrv->qrvs, i))->ac_drawn = 0; struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); qi->ac_drawn = 0; qi->ac_start = (time_t)0; } } void sw_qrv_check_bounds(struct subwin *sw){ int len; struct qrv_item *qi; if (!aband) return; len = qrv->qrvs->len; if (len == 0) { sw->cur = 0; return; } if (sw->cur < 0) { sw->cur = 0; sw_shake(sw, 1); } if (sw->cur >= qrv->qrvs->len) { sw->cur = qrv->qrvs->len - 1;; sw_shake(sw, 0); } while (sw->cur < qrv->qrvs->len){ qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qrv_skip(qi, aband->bi, 1)) break; sw->cur++; } if (sw->cur >= qrv->qrvs->len) { sw->cur = qrv->qrvs->len - 1; //sw_shake(sw, 0); } while (sw->cur >= 0){ qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, sw->cur); if (!qrv_skip(qi, aband->bi, 0)) break; sw->cur--; } if (sw->cur < 0) { sw->cur = 0; } } void sw_qrv_raise(struct subwin *sw){ sw_qrv_sort(qrv); } void sw_qrv_sort(struct qrvdb *qrvdb){ z_ptr_array_qsort(qrv->qrvs, qrv->sort); } void qrv_compute_qrbqtf(struct qrv_item *q){ double qtf, qtfrad; if (!q) return; if (!q->wwl || !*q->wwl){ q->qrb = -1; q->qtf = -1; return; } /* CHANGE look at add_tmpqso_locator */ qrbqtf(ctest->pwwlo, q->wwl, &q->qrb, &qtf, NULL, 2); q->qtf = (int) (qtf+0.5); if (q->qrb < 0.1) { q->qrb = 0; q->qtf = 0; } qtfrad=qtf*M_PI/180.0; q->kx = (int)( q->qrb*sin(qtfrad)); q->ky = (int)(- q->qrb*cos(qtfrad)); if (q->qrb < 600){ q->weight = q->qrb; }else{ q->weight= 1800 - 2 * q->qrb; if (q->weight < 0) q->weight = 0; } if (aband){ if (q->wkd[aband->bi] > 1) q->weight *= q->wkd[aband->bi]; if (!(q->bands_qrv && (1 << aband->bi))) q->weight = 0; } /*dbg("compute_qrbqtf(%s) %s->%s qrb=%f kx=%d ky=%d\n", q->call, ctest->pwwlo, q->wwl, q->qrb, q->kx, q->ky); */ } void qrv_recalc_qrbqtf(struct qrvdb *qrvdb){ int i; for (i = 0; i < qrv->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); qrv_compute_qrbqtf(qi); } } void qrv_recalc_gst(struct qrvdb *qrvdb){ int i, j; int qtf2; double max; if (!qrvdb) return; qrv->beamwidth = rot_beamwidth();// / 2; for (i=0;i<=180;i++){ qrv->antchar[i]=cos(M_PI/180.0*(double)i*120.0/qrv->beamwidth); /* dbg("i=%3d %5.3f\n", i, antchar[i]);*/ if (qrv->antchar[i]<=0) break; } for (;i<=180;i++) qrv->antchar[i]=0; for (i=0; i<360; i++) qrv->gst[i]=0.0; for (i = 0; i < qrv->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); if (qi->qtf<=0 || qi->qtf>=360) continue; if (aband && qrv_skip(qi, aband->bi, 0)) continue; for (j=0;j<=180;j++){ qtf2 = qi->qtf + j; if (qrv->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; qrv->gst[qtf2%360] += qi->weight * qrv->antchar[j]; } for (j=1;j<180;j++){ qtf2 = qi->qtf - j; if (qrv->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; qrv->gst[qtf2%360] += qi->weight * qrv->antchar[j]; } } max = 0; for (i=0; i<360; i++) if (qrv->gst[i]>max) max = qrv->gst[i]; if (!max) return; for (i=0; i<360; i++) qrv->gst[i] = qrv->gst[i] / max; } void qrv_set_wkd(struct qrvdb *qrvdb, struct qso *qso){ char raw[20]; struct qrv_item *qi; if (!qso) return; if (!qso->band) return; z_get_raw_call(raw, qso->callsign); qi = (struct qrv_item *)g_hash_table_lookup(qrv->hash, raw); if (!qi) return; qi->bands_wkd |= 1 << qso->band->bi; } void qrv_recalc_wkd(struct qrvdb *qrvdb){ struct qrv_item *qi; struct band *b; struct qso *qso; int i, j; char raw[20]; for (i = 0; i < qrv->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item *)z_ptr_array_index(qrv->qrvs, i); qi->bands_wkd = 0; } if (!ctest) return; for (i=0; ibands->len; i++){ b = (struct band *)z_ptr_array_index(ctest->bands, i); for (j=0; jqsos->len; j++){ qso = (struct qso *)z_ptr_array_index(b->qsos, j); if (qso->dupe) continue; if (qso->error) continue; z_get_raw_call(raw, qso->callsign); qi = (struct qrv_item *)g_hash_table_lookup(qrv->hash, raw); //dbg("recalc_qrv_wkd(%s) qi=%p\n", raw, qi); if (!qi) continue; qi->bands_wkd |= 1 << b->bi; } } } struct qrv_item *qrv_get(struct qrvdb *qrvdb, char *call){ char raw[20]; struct qrv_item *qi; if (call == NULL) return NULL; qi = (struct qrv_item *)g_hash_table_lookup(qrv->hash, call); if (qi) return qi; z_get_raw_call(raw, call); qi = (struct qrv_item *)g_hash_table_lookup(qrv->hash, raw); return qi; } void qrv_read_line(char *str){ char *c1=NULL, *c2=NULL; struct qrv_item *qi; if (regmatch(str, "^[0-9]{4}Z ([^ ]+)", &c1, &c2, NULL)==0){ // log_addf("KST '%s'", c2); qi = qrv_get(qrv, c2); if (qi){ qi->kst_time = time(NULL); } redraw_later(); } if (c1) g_free(c1); if (c2) g_free(c2); } /* -------------- dialog edit qrv ------------------ */ char qrv_call[EQSO_LEN]; char qrv_wwl[EQSO_LEN]; char qrv_qrv[32]; char qrv_wkd[EQSO_LEN]; char qrv_text[MAX_STR_LEN]; void refresh_edit_qrv(void *arg){ char *c; char raw[20]; struct qrv_item *qi = (struct qrv_item*)arg; if (!qi){ int wkd[32]; memset(wkd, 0, sizeof(wkd)); qi = qrv_add(z_str_uc(qrv_call), "", 0, wkd, "", (time_t)0); }else{ z_get_raw_call(raw, qi->call); g_hash_table_remove(qrv->hash, qi->call); zg_free0(qi->call); qi->call = g_strdup(qrv_call); z_str_uc(qi->call); z_get_raw_call(raw, qi->call); g_hash_table_insert(qrv->hash, g_strdup(raw), qi); } zg_free0(qi->wwl); qi->wwl = g_strdup(qrv_wwl); z_str_uc(qi->wwl); qi->bands_qrv = 0; for (c = qrv_qrv; *c != '\0'; c++){ *c = toupper(*c); if (*c < 'A' || *c > 'Z') continue; qi->bands_qrv |= (1 << (*c - 'A')); } qi->wkd[aband->bi] = atoi(qrv_wkd); zg_free0(qi->text); qi->text = g_strdup(qrv_text); qrv_compute_qrbqtf(qi); sw_qrv_sort(qrv); } void edit_qrv(void *arg){ struct dialog *d; int i; struct qrv_item *qi; char x[2]; if (!aband) return; qi = (struct qrv_item*)arg; if (qi){ safe_strncpy0(qrv_call, qi->call, EQSO_LEN); safe_strncpy0(qrv_wwl, qi->wwl, EQSO_LEN); strcpy(qrv_qrv, ""); x[1] = '\0'; for (x[0] = 'A'; x[0] <= 'Z'; x[0]++){ if (qi->bands_qrv & (1 << (x[0] - 'A'))) strcat(qrv_qrv, x); } g_snprintf(qrv_wkd, EQSO_LEN, "%d", qi->wkd[aband->bi]); safe_strncpy0(qrv_text, qi->text, MAX_STR_LEN); }else{ strcpy(qrv_call, ""); strcpy(qrv_wwl, ""); strcpy(qrv_qrv, ""); if (aband) sprintf(qrv_qrv, "%c", aband->bandchar); strcpy(qrv_wkd, ""); strcpy(qrv_text, "@OP"); } if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_QRV); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_edit_qrv; d->refresh_data = qi; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_call; d->items[i].msg = CTEXT(T_CALLSIGN2); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_wwl; d->items[i].msg = CTEXT(T_WWL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_qrv; d->items[i].msg = CTEXT(T_QRV2); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = qrv_wkd; d->items[i].msg = CTEXT(T_WKD); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].maxl = EQSO_LEN; d->items[i].data = qrv_text; d->items[i].msg = CTEXT(T_REMARK); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int sw_qrv_load_file(struct subwin *sw, char *filename, int quiet){ int j; FILE *f; GString *gs; char *val; gchar **items; int firstdate = -1; GHashTable *hash; int qrv_int = 0; int wkd[32]; // if (!sdl) return; memset(wkd, 0, sizeof(wkd)); f = fopen(filename, "rt"); if (!f){ if (!quiet) log_addf(VTEXT(T_CANT_READ_S), filename); return -1; } hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); gs = g_string_sized_new(100); zfile_fgets(gs, f, 0); while(zfile_fgets(gs, f, 0) != NULL){ if (gs->str[0]=='[') break; val = strchr(gs->str, '='); *val='\0'; val++; // dbg("key='%s'\n", gs->str); if (strcasecmp(gs->str, "pband")==0){ struct band *b = find_band_by_pband(val); if (b != NULL){ qrv_int = 1 << (z_char_uc(b->bandchar) - 'A'); wkd[z_char_uc(b->bandchar) - 'A'] = 1; } } } while(strncasecmp(gs->str, "[qsorecords", 11)!=0){ if (zfile_fgets(gs, f, 0) == NULL) goto x; } while(zfile_fgets(gs, f, 0) != NULL){ char *call, *wwl; if (gs->str[0]=='[') break; // dbg("qso='%s'\n", gs->str); items = g_strsplit(gs->str, ";", 0); for (j = 0; j <= 11; j++) if (!items[j]) goto badq; call = items[2]; wwl = items[9]; /*if (strcmp(call, "OK7RB") == 0) { int a = 1; }*/ if (firstdate < 0) firstdate = atoi(items[0]); if (!strcasecmp(call, "ERROR")) continue; qrv_add(call, wwl, qrv_int, wkd, "@edi", (time_t)0); badq:; } fclose(f); x:; g_string_free(gs, TRUE); g_hash_table_destroy(hash); return 0; } static void qrv_import_edi(void *xxx, char *filename){ char *fname; fname = g_strdup(filename); z_filename(fname); if (z_strcasestr(fname, "TXT")){ zg_ptr_array_foreach(struct band *, b, ctest->bands){ char *c, *path, *f; c = g_strdup(filename); path = z_dirname(c); f = g_strdup_printf("%s/%c.txt", path, z_char_lc(b->bandchar)); z_wokna(f); sw_qrv_load_file(gses->ontop, f, 1); g_free(c); g_free(f); } }else{ sw_qrv_load_file(gses->ontop, filename, 0); } g_free(fname); //sw_qrv_recalc_extremes(gses->ontop, aband); } void sw_qrv_choose(struct menu *menu){ int i; char *filename; progress(VTEXT(T_LOAD_QRVS)); for (i = 0; i < menu->ni; i++){ struct menu_item *mi = menu->items + i; if (!mi->checked) continue; filename = g_strdup_printf("%s/%s/c.txt", tucnak_dir, (char *)mi->data); qrv_import_edi(NULL, filename); g_free(filename); } save_all_bands_txt(0); progress("NULL"); } void menu_qrv_add_contest(void *menudata, void *itdata){ contest_choose(sw_qrv_choose); } tucnak-4.04/src/wiki.h0000644000175000017500000000153612362457257011574 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __WIKI_H #define __WIKI_H #include "header.h" struct band; struct zhttp; struct wiki{ struct zhttp *http; char *apiurl; char *status; char *edittoken; char *text; GPtrArray *images; int done; }; void wiki_header(GString *gs); void wiki_band_header(GString *gs, struct band *b, int flags); void wiki_footer(GString *gs); void wiki_complete(GString *gs, int flags); int export_all_bands_wiki(void); void wiki_status(struct wiki *wiki, char *fmt, ...); void wiki_upload(void *arg); void wiki_info(void *arg1); void wiki_schedule(struct wiki *wiki); #endif tucnak-4.04/src/menu4.c0000644000175000017500000012530212460207027011635 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "alsa.h" #include "bfu.h" #include "cwdaemon.h" #include "dsp.h" #include "menu.h" #include "net.h" #include "oss.h" #include "pa.h" #include "rc.h" #include "scope.h" #include "ssbd.h" #include "subwin.h" #include "terminal.h" #include "tsdl.h" char *keys[MAX_CQ]={"F5", "F6", "F7", "F8", "F11", "F12"}; struct menu_item no_cq_defined_menu[] = { {CTEXT(T_NO_CQ), "", M_BAR, NULL, NULL, 0, 0}, {NULL, NULL, 0, NULL, NULL, 0, 0}, }; /************************** CW *******************************/ char cw_str[MAX_STR_LEN], cw_speed_str[EQSO_LEN]; int cw_repeat; char cw_ts_str[EQSO_LEN]; int cw_allowifundef; void refresh_cq_cw(void *xxx){ struct cq *cq; cq = (struct cq *)xxx; STORE_STR(cq, cw_str); cq->cw_speed = atoi(cw_speed_str); cq->cw_repeat = cw_repeat; cq->cw_ts = atoi(cw_ts_str); cq->cw_allowifundef = cw_allowifundef; } char *cq_cw_msg[] = { CTEXT(T_TEXT), CTEXT(T_SPEED), CTEXT(T_REPEAT), CTEXT(T_DELAY), CTEXT(T_ALLOW_UNDEF), "", /* OK */ "", /* Cancel */ }; void cq_cw_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, cq_cw_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, cq_cw_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, cq_cw_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, cq_cw_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, cq_cw_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, cq_cw_msg + 2, dlg->items + 2, 1, &min); max_group_width(term, cq_cw_msg + 3, dlg->items + 2, 1, &max); min_group_width(term, cq_cw_msg + 3, dlg->items + 2, 1, &min); max_group_width(term, cq_cw_msg + 4, dlg->items + 2, 1, &max); min_group_width(term, cq_cw_msg + 4, dlg->items + 2, 1, &min); max_buttons_width(term, dlg->items + 5, 2, &max); min_buttons_width(term, dlg->items + 5, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, cq_cw_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_cw_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 5, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, cq_cw_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_cw_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 5, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void cq_cw(void *arg){ struct dialog *d; int i; int no; struct cq *cq; no = GPOINTER_TO_INT(arg); cq = g_ptr_array_index(cfg->cqs, no); safe_strncpy0(cw_str, cq->cw_str, MAX_STR_LEN); g_snprintf(cw_speed_str, EQSO_LEN, "%d", cq->cw_speed); cw_repeat = cq->cw_repeat; g_snprintf(cw_ts_str, EQSO_LEN, "%d", cq->cw_ts); cw_allowifundef = cq->cw_allowifundef; if (!(d = g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_CW_CQ); d->fn = cq_cw_fn; d->refresh = (void (*)(void *))refresh_cq_cw; d->refresh_data = (void *)cq; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = cw_str; d->items[i].maxl = 60; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = cw_speed_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = cfg->cwda_maxwpm; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cw_repeat; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = cw_ts_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 300; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&cw_allowifundef; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_cq_cw(void *arg){ int i; char *c; struct menu_item *mi = NULL; struct cq *cq; char example[40]; for (i=0; icqs->len; i++){ cq = (struct cq *) g_ptr_array_index(cfg->cqs, i); safe_strncpy0(example, cq->cw_str, 40); c = g_strdup_printf(VTEXT(T_CW_DSCS), i, keys[i], cq->cw_repeat?'R':' ', example); if (!mi) if (!(mi = new_menu(3))) return; add_to_menu(&mi, g_strdup(c), "", "", MENU_FUNC cq_cw, GINT_TO_POINTER(i), 0); g_free(c); } if (i) do_menu(mi, NULL); else do_menu(no_cq_defined_menu, NULL); } /*********************** SSB ****************************/ char ssb_file[MAX_STR_LEN]; int ssb_repeat; char ssb_ts_str[EQSO_LEN]; void refresh_cq_ssb(void *xxx){ struct cq *cq; cq = (struct cq *)xxx; STORE_STR(cq, ssb_file); cq->ssb_repeat = ssb_repeat; cq->ssb_ts = atoi(ssb_ts_str); } char *cq_ssb_msg[] = { CTEXT(T_FILENAME), CTEXT(T_REPEAT), CTEXT(T_DELAY), "", /* OK */ "", /* Cancel */ }; void cq_ssb_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, cq_ssb_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, cq_ssb_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, cq_ssb_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, cq_ssb_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, cq_ssb_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, cq_ssb_msg + 2, dlg->items + 2, 1, &min); max_buttons_width(term, dlg->items + 3, 2, &max); min_buttons_width(term, dlg->items + 3, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, cq_ssb_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_ssb_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, cq_ssb_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 3, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, cq_ssb_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_ssb_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, cq_ssb_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 3, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void cq_ssb(void *arg){ struct dialog *d; int i; int no; struct cq *cq; no = GPOINTER_TO_INT(arg); cq = g_ptr_array_index(cfg->cqs, no); safe_strncpy0(ssb_file, cq->ssb_file, MAX_STR_LEN); ssb_repeat = cq->ssb_repeat; g_snprintf(ssb_ts_str, EQSO_LEN, "%d", cq->ssb_ts); if (!(d = g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_SSB_CQ); d->fn = cq_ssb_fn; d->refresh = (void (*)(void *))refresh_cq_ssb; d->refresh_data = (void *)cq; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssb_file; d->items[i].maxl = 60; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&ssb_repeat; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssb_ts_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 300; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_cq_ssb(void *arg){ int i; char *c; struct menu_item *mi = NULL; struct cq *cq; char example[20]; for (i=0; icqs->len; i++){ cq = (struct cq *) g_ptr_array_index(cfg->cqs, i); safe_strncpy0(example, cq->ssb_file, 20); c = g_strdup_printf(VTEXT(T_SSB_DSCS), i, keys[i], cq->ssb_repeat?'R':' ', example); if (!mi) if (!(mi = new_menu(3))) return; add_to_menu(&mi, g_strdup(c), "", "", MENU_FUNC cq_ssb, GINT_TO_POINTER(i), 0); g_free(c); } if (i) do_menu(mi, NULL); else do_menu(no_cq_defined_menu, NULL); } /******************* CWDAEMON **********************************/ int cwda_type; char cwda_device[MAX_STR_LEN]; char cwda_hostname[MAX_STR_LEN]; char udp_port_str[EQSO_LEN]; char speed_str[EQSO_LEN]; char weight_str[EQSO_LEN]; char minwpm_str[EQSO_LEN], maxwpm_str[EQSO_LEN]; int cwda_spk; char leadin_str[EQSO_LEN]; char autgive_str[EQSO_LEN]; void refresh_cwda(void *xxx){ cfg->cwda_type=cwda_type; STORE_STR(cfg, cwda_device); STORE_STR(cfg, cwda_hostname); cfg->cwda_udp_port = atoi(udp_port_str); cfg->cwda_speed = atoi(speed_str); cfg->cwda_weight = atoi(weight_str); if (cfg->cwda_weight < 30) cfg->cwda_weight = 30; if (cfg->cwda_weight > 70) cfg->cwda_weight = 70; cfg->cwda_minwpm = atoi(minwpm_str); cfg->cwda_maxwpm = atoi(maxwpm_str); cfg->cwda_spk = cwda_spk; cfg->cwda_leadin = atoi(leadin_str); cfg->cwda_autgive = atoi(autgive_str); free_cwdaemon(cwda); cwda=init_cwdaemon(); progress(NULL); } void menu_cwda(void *arg){ struct dialog *d; int i; cwda_type=cfg->cwda_type; safe_strncpy0(cwda_device, cfg->cwda_device, MAX_STR_LEN); safe_strncpy0(cwda_hostname, cfg->cwda_hostname, MAX_STR_LEN); g_snprintf(udp_port_str, EQSO_LEN, "%d", cfg->cwda_udp_port); g_snprintf(speed_str, EQSO_LEN, "%d", cfg->cwda_speed); if (cfg->cwda_weight < 30 || cfg->cwda_weight > 70) cfg->cwda_weight = 50; g_snprintf(weight_str, EQSO_LEN, "%d", cfg->cwda_weight); g_snprintf(minwpm_str, EQSO_LEN, "%d", cfg->cwda_minwpm); g_snprintf(maxwpm_str, EQSO_LEN, "%d", cfg->cwda_maxwpm); cwda_spk=cfg->cwda_spk; g_snprintf(leadin_str, EQSO_LEN, "%d", cfg->cwda_leadin); g_snprintf(autgive_str, EQSO_LEN, "%d", cfg->cwda_autgive); if (!(d = g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_CW_DAEMON); // d->fn = cwda_fn; d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_cwda; d->refresh_data = NULL; d->y0 = 1; d->items[i=0].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_NONE; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_type; d->items[i].msg = CTEXT(T_ROT_NONE); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_PARPORT; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_type; d->items[i].msg = CTEXT(T_PARPORT); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_TTYS; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_type; d->items[i].msg = CTEXT(T_TTYS); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_DAVAC4; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_type; d->items[i].msg = "Davac4"; d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_CWD; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_type; d->items[i].msg = "cwdaemon"; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_WINKEY; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_type; d->items[i].msg = "winkey"; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = CWD_WINKEYTCP; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_type; d->items[i].msg = "winkey TCP"; d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = cwda_device; d->items[i].maxl = 20; d->items[i].msg = CTEXT(T_DEVICE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = cwda_hostname; d->items[i].maxl = 20; d->items[i].msg = CTEXT(T_HOSTNAME); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = udp_port_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 65535; d->items[i].msg = CTEXT(T_UDPPORT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = speed_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = cfg->cwda_maxwpm; d->items[i].msg = CTEXT(T_INIT_SPEED); d->items[++i].type = D_FIELD; /* 10 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = weight_str; d->items[i].maxl = 3; d->items[i].msg = CTEXT(T_INIT_WEIGHT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = minwpm_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 99; d->items[i].msg = CTEXT(T_WPMFROM); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = maxwpm_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 99; d->items[i].msg = CTEXT(T_WPMTO); d->items[i].wrap = 1; #ifdef Z_UNIX d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&cwda_spk; d->items[i].msg = CTEXT(T_USE_SPK); d->items[i].wrap = 1; #endif d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = leadin_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[i].msg = CTEXT(T_LEADIN); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; /* 15 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = autgive_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 9; d->items[i].msg = CTEXT(T_AUTGIVE); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_winkey_opts; d->items[i].text = VTEXT(T_WINKEYOPTS); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /*********************** SSBD ****************************/ #ifdef HAVE_SNDFILE #define MAX_RECORD_FORMAT 7 int record_format; /* index 0..MAX_RECORD_FORMAT-1 */ extern char ssbd_format_str[MAX_STR_LEN]; extern char ssbd_oss_src[MAX_STR_LEN]; extern char ssbd_alsa_src[MAX_STR_LEN]; #ifdef HAVE_PORTAUDIO char ssbd_pa_play_src[MAX_STR_LEN]; char ssbd_pa_rec_src[MAX_STR_LEN]; #endif char *record_format_msg[]={ CTEXT(T_PCM8), CTEXT(T_PCM16), CTEXT(T_ULAW), CTEXT(T_ALAW), CTEXT(T_IMAADPCM), CTEXT(T_MSADPCM), CTEXT(T_GSM610) }; int record_formats[]={ SF_FORMAT_WAV | SF_FORMAT_PCM_U8, SF_FORMAT_WAV | SF_FORMAT_PCM_16, SF_FORMAT_WAV | SF_FORMAT_ULAW, SF_FORMAT_WAV | SF_FORMAT_ALAW, SF_FORMAT_WAV | SF_FORMAT_IMA_ADPCM, SF_FORMAT_WAV | SF_FORMAT_MS_ADPCM, SF_FORMAT_WAV | SF_FORMAT_GSM610 }; void record_format_func (void *arg){ int active; active=GPOINTER_TO_INT(arg); if (active<0 || active>=MAX_RECORD_FORMAT) return; record_format = active; safe_strncpy0(ssbd_format_str,_(CTEXT(T_PCM8+record_format)),MAX_STR_LEN); redraw_later(); } int dlg_record_format(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 0; i < MAX_RECORD_FORMAT; i++) { add_to_menu(&mi, record_format_msg[i], "", "", MENU_FUNC record_format_func, GINT_TO_POINTER(i), 0); } sel = record_format; if (sel < 0) sel = 0; if (sel>=MAX_RECORD_FORMAT) sel=0; do_menu_selected(mi, GINT_TO_POINTER(record_format), sel); return 0; } /* ------------------------ */ void alsa_src_func (void *arg){ int i, active; GString *labels; gchar **items; active=GPOINTER_TO_INT(arg); labels=g_string_sized_new(100); #ifdef HAVE_ALSA alsa_get_sources(gssbd->dsp, labels); #endif items=g_strsplit(labels->str, ";", 0); for (i=0;items[i]!=NULL;i++);/* dbg("items[%d]=%s\n", i, items[i]);*/ /* dbg("alsa_src_func: active=%d max=%d\n", active, i);*/ dbg("alsa_src_func(%d) labels='%s'\n", active, labels->str); if (active<0 || active>i) goto x; if (active==0) safe_strncpy0(ssbd_alsa_src,VTEXT(T_RECSRC_NONE),MAX_STR_LEN); else safe_strncpy0(ssbd_alsa_src,items[active-1],MAX_STR_LEN); dbg(" ssbd_alsa_src='%s'\n", ssbd_alsa_src); redraw_later(); x:; g_string_free(labels, 1); g_strfreev(items); } int dlg_alsa_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; GString *labels; gchar **items; labels=g_string_sized_new(100); #ifdef HAVE_ALSA alsa_get_sources(gssbd->dsp, labels); #endif items=g_strsplit(labels->str, ";", 0); dbg("dlg_alsa_src() labels='%s'\n", labels->str); if (!(mi = new_menu(1))) goto x; add_to_menu(&mi, g_strdup(VTEXT(T_RECSRC_NONE)), "", "", MENU_FUNC alsa_src_func, GINT_TO_POINTER(0), 0); sel=0; for (i = 0; items[i]!=NULL; i++) { add_to_menu(&mi, g_strdup(items[i]), "", "", MENU_FUNC alsa_src_func, GINT_TO_POINTER(i+1), 0); if (strcmp(items[i], ssbd_alsa_src)==0) sel=i+1; } dbg(" sel=%d\n", sel); do_menu_selected(mi, NULL, sel); x:; g_string_free(labels, 1); g_strfreev(items); return 0; } /* ------------------------ */ void oss_src_func (void *arg){ int i, active; GString *labels; gchar **items; active=GPOINTER_TO_INT(arg); labels=g_string_sized_new(100); #ifdef HAVE_OSS oss_get_sources(gssbd->dsp, labels); #endif items=g_strsplit(labels->str, ";", 0); for (i=0;items[i]!=NULL;i++);/* dbg("items[%d]=%s\n", i, items[i]);*/ dbg("oss_src_func: active=%d max=%d\n", active, i); if (active<0 || active>i) goto x; if (active==0) safe_strncpy0(ssbd_oss_src,VTEXT(T_RECSRC_NONE),MAX_STR_LEN); else safe_strncpy0(ssbd_oss_src,items[active-1],MAX_STR_LEN); redraw_later(); x:; g_string_free(labels, 1); g_strfreev(items); } int dlg_oss_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; GString *labels; gchar **items; labels=g_string_sized_new(100); #ifdef HAVE_OSS oss_get_sources(gssbd->dsp, labels); #endif items=g_strsplit(labels->str, ";", 0); dbg("labels='%s'\n", labels->str); if (!(mi = new_menu(1))) goto x; add_to_menu(&mi, g_strdup(VTEXT(T_RECSRC_NONE)), "", "", MENU_FUNC oss_src_func, GINT_TO_POINTER(0), 0); sel=0; for (i = 0; items[i]!=NULL; i++) { add_to_menu(&mi, g_strdup(items[i]), "", "", MENU_FUNC oss_src_func, GINT_TO_POINTER(i+1), 0); if (strcmp(items[i], ssbd_oss_src)==0) sel=i+1; } dbg("sel=%d\n", sel); do_menu_selected(mi, NULL, sel); x:; g_string_free(labels, 1); g_strfreev(items); return 0; } /* ------------------------ */ #ifdef HAVE_PORTAUDIO static void pa_play_src_func (void *arg){ int active = GPOINTER_TO_INT(arg); const PaDeviceInfo *di = Pa_GetDeviceInfo(active); safe_strncpy0(ssbd_pa_play_src, di->name, MAX_STR_LEN); cfg->ssbd_pa_play = active; redraw_later(); } static int dlg_pa_play_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, max, sel = 0, n; struct menu_item *mi; max = Pa_GetDeviceCount(); mi = new_menu(1); n = 0; for (i = 0; i < max; i++){ const PaDeviceInfo *di = Pa_GetDeviceInfo(i); if (di->maxOutputChannels <= 0) continue; add_to_menu(&mi, g_strdup_printf("%d: %s", i, di->name), "", "", MENU_FUNC pa_play_src_func, GINT_TO_POINTER(i), 0); if (i == cfg->ssbd_pa_play) sel = n; n++; } do_menu_selected(mi, NULL, sel); return 0; } /* ------------------------ */ static void pa_rec_src_func(void *arg){ int active = GPOINTER_TO_INT(arg); const PaDeviceInfo *di = Pa_GetDeviceInfo(active); safe_strncpy0(ssbd_pa_rec_src, di->name, MAX_STR_LEN); cfg->ssbd_pa_rec = active; redraw_later(); } static int dlg_pa_rec_src(struct dialog_data *dlg, struct dialog_item_data *di){ int i, max, sel = 0, n; struct menu_item *mi; max = Pa_GetDeviceCount(); mi = new_menu(1); n = 0; for (i = 0; i < max; i++){ const PaDeviceInfo *di = Pa_GetDeviceInfo(i); if (di->maxInputChannels <= 0) continue; add_to_menu(&mi, g_strdup_printf("%d: %s", i, di->name), "", "", MENU_FUNC pa_rec_src_func, GINT_TO_POINTER(i), 0); if (i == cfg->ssbd_pa_rec) sel = n; n++; } do_menu_selected(mi, NULL, sel); return 0; } #endif /* ------------------------ */ int ssbd_type; int ssbd_record; char ssbd_maxmin_str[EQSO_LEN], ssbd_diskfree_str[EQSO_LEN]; int ssbd_format; /* 0x100xx */ char ssbd_format_str[MAX_STR_LEN]; char ssbd_channels_str[EQSO_LEN], ssbd_samplerate_str[EQSO_LEN]; char ssbd_plev_str[EQSO_LEN], ssbd_rlev_str[EQSO_LEN]; char ssbd_template[MAX_STR_LEN]; char ssbd_pcm_play[EQSO_LEN], ssbd_pcm_rec[EQSO_LEN]; char ssbd_period_time_str[EQSO_LEN]/*, ssbd_buffer_time_str[EQSO_LEN]*/; char ssbd_alsa_mixer[EQSO_LEN]; char ssbd_alsa_src[MAX_STR_LEN]; char ssbd_dsp[MAX_STR_LEN]; char ssbd_maxfrag_str[EQSO_LEN]; char ssbd_mixer[MAX_STR_LEN]; char ssbd_oss_src[MAX_STR_LEN]; char ssbd_hostname[MAX_STR_LEN],ssbd_udp_port_str[EQSO_LEN]; void refresh_ssbd(void *xxx){ STORE_INT(cfg, ssbd_type); STORE_INT(cfg, ssbd_record); STORE_SINT(cfg, ssbd_maxmin); STORE_SINT(cfg, ssbd_diskfree); if (record_format<0 || record_format>=MAX_RECORD_FORMAT){ cfg->ssbd_format = SF_FORMAT_WAV | SF_FORMAT_GSM610; }else{ cfg->ssbd_format = record_formats[record_format]; } dbg("refresh_ssbd: record_formats[%d]=0x%x (%s)\n", record_format, cfg->ssbd_format, _(CTEXT(T_PCM8+record_format))); STORE_SINT(cfg, ssbd_channels); STORE_SINT(cfg, ssbd_samplerate); STORE_SINT(cfg, ssbd_plev); STORE_SINT(cfg, ssbd_rlev); STORE_STR(cfg, ssbd_template); STORE_STR(cfg, ssbd_pcm_play); STORE_STR(cfg, ssbd_pcm_rec); STORE_SINT(cfg, ssbd_period_time); //STORE_SINT(cfg, ssbd_buffer_time); STORE_STR(cfg, ssbd_alsa_mixer); if (strcmp(ssbd_alsa_src, VTEXT(T_RECSRC_NONE))==0){ strcpy(ssbd_alsa_src, ""); } STORE_STR(cfg, ssbd_alsa_src); dbg("refresh_ssbd: ssbd_alsa_src='%s'\n", cfg->ssbd_alsa_src); STORE_STR(cfg, ssbd_dsp); STORE_SINT(cfg, ssbd_maxfrag); STORE_STR(cfg, ssbd_mixer); if (strcmp(ssbd_oss_src, VTEXT(T_RECSRC_NONE))==0){ strcpy(ssbd_oss_src, ""); } STORE_STR(cfg, ssbd_oss_src); dbg("refresh_ssbd: ssbd_oss_src='%s'\n", cfg->ssbd_oss_src); STORE_STR(cfg, ssbd_hostname); STORE_SINT(cfg, ssbd_udp_port); free_ssbd(gssbd); sw_scope_clear_scopes(); gssbd=init_ssbd(); progress(NULL); } void do_ssbd(void){ struct dialog *d; int i; GString *labels; gchar *c; #ifdef HAVE_PORTAUDIO const PaDeviceInfo *di; if (!pa_initialised) { Pa_Initialize(); pa_initialised = 1; } #endif labels=g_string_sized_new(100); ssbd_type = cfg->ssbd_type; ssbd_record = cfg->ssbd_record; g_snprintf(ssbd_maxmin_str, EQSO_LEN, "%d", cfg->ssbd_maxmin); g_snprintf(ssbd_diskfree_str, EQSO_LEN, "%d", cfg->ssbd_diskfree); ssbd_format=cfg->ssbd_format; record_format=0; for (i=0;issbd_channels); g_snprintf(ssbd_samplerate_str, EQSO_LEN, "%d", cfg->ssbd_samplerate); g_snprintf(ssbd_plev_str, EQSO_LEN, "%d", cfg->ssbd_plev); g_snprintf(ssbd_rlev_str, EQSO_LEN, "%d", cfg->ssbd_rlev); safe_strncpy0(ssbd_template, cfg->ssbd_template, MAX_STR_LEN); safe_strncpy0(ssbd_pcm_play, cfg->ssbd_pcm_play, EQSO_LEN); safe_strncpy0(ssbd_pcm_rec, cfg->ssbd_pcm_rec, EQSO_LEN); g_snprintf(ssbd_period_time_str, EQSO_LEN, "%d", cfg->ssbd_period_time); //g_snprintf(ssbd_buffer_time_str, EQSO_LEN, "%d", cfg->ssbd_buffer_time); safe_strncpy0(ssbd_alsa_mixer, cfg->ssbd_alsa_mixer, EQSO_LEN); /* safe_strncpy0(ssbd_alsa_src, cfg->ssbd_alsa_src, MAX_STR_LEN);*/ dbg("do_ssbd: cfg->ssbd_alsa_src='%s'\n", cfg->ssbd_alsa_src); if (cfg->ssbd_alsa_src && strlen(cfg->ssbd_alsa_src)>0){ safe_strncpy0(ssbd_alsa_src,cfg->ssbd_alsa_src,MAX_STR_LEN); }else{ safe_strncpy0(ssbd_alsa_src, VTEXT(T_RECSRC_NONE), MAX_STR_LEN); } dbg("do_ssbd: ssbd_alsa_src='%s'\n", ssbd_alsa_src); safe_strncpy0(ssbd_dsp, cfg->ssbd_dsp, MAX_STR_LEN); g_snprintf(ssbd_maxfrag_str, EQSO_LEN, "%d", cfg->ssbd_maxfrag); safe_strncpy0(ssbd_mixer, cfg->ssbd_mixer, MAX_STR_LEN); dbg("do_ssbd: cfg->ssbd_oss_src='%s'\n", cfg->ssbd_oss_src); if (cfg->ssbd_oss_src){ if (!*cfg->ssbd_oss_src) c=NULL; else c=cfg->ssbd_oss_src; }else{ c=NULL; #ifdef HAVE_OSS c=oss_recsrc2source(cfg->ssbd_recsrc); #endif } dbg("do_ssbd: cfg->ssbd_recsrc=%d label='%s'\n", cfg->ssbd_recsrc, c); if (c){ safe_strncpy0(ssbd_oss_src,c,MAX_STR_LEN); }else{ safe_strncpy0(ssbd_oss_src, VTEXT(T_RECSRC_NONE), MAX_STR_LEN); } #ifdef HAVE_PORTAUDIO if (cfg->ssbd_pa_play < 0) cfg->ssbd_pa_play = Pa_GetDefaultOutputDevice(); di = Pa_GetDeviceInfo(cfg->ssbd_pa_play); if (di) safe_strncpy(ssbd_pa_play_src, di->name, MAX_STR_LEN); else safe_strncpy0(ssbd_pa_play_src, VTEXT(T_RECSRC_NONE), MAX_STR_LEN); if (cfg->ssbd_pa_rec < 0) cfg->ssbd_pa_rec = Pa_GetDefaultInputDevice(); di = Pa_GetDeviceInfo(cfg->ssbd_pa_rec); if (di) safe_strncpy(ssbd_pa_rec_src, di->name, MAX_STR_LEN); else safe_strncpy0(ssbd_pa_rec_src, VTEXT(T_RECSRC_NONE), MAX_STR_LEN); #endif safe_strncpy0(ssbd_hostname, cfg->ssbd_hostname, MAX_STR_LEN); g_snprintf(ssbd_udp_port_str, EQSO_LEN, "%d", cfg->ssbd_udp_port); g_string_free(labels, 0); if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_AUDIO); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_ssbd; d->y0 = 1; d->items[i = 0].type = D_TEXT; d->items[i].msg = CTEXT(T_AUDIO_SUBSYSTEM); #ifdef HAVE_ALSA d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_ALSA; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&ssbd_type; d->items[i].msg = CTEXT(T_ALSA); #endif #ifdef HAVE_OSS d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_OSS; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&ssbd_type; d->items[i].msg = CTEXT(T_OSS); #endif #ifdef HAVE_PORTAUDIO d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_PORTAUDIO; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&ssbd_type; d->items[i].msg = CTEXT(T_PORTAUDIO); #endif #ifdef USE_SDR d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = DSPT_SNDPIPE; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&ssbd_type; d->items[i].msg = CTEXT(T_SDR); #endif d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&ssbd_record; d->items[i].msg = CTEXT(T_RECORD); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_maxmin_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[i].msg = CTEXT(T_MAXMIN); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_diskfree_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[i].msg = CTEXT(T_DISKFREE); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_record_format; d->items[i].text = ssbd_format_str; d->items[i].msg = CTEXT(T_FORMAT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_channels_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 8; d->items[i].msg = CTEXT(T_CHANNELS); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_samplerate_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 4000; d->items[i].gnum = 192000; d->items[i].msg = CTEXT(T_SAMPLERATE); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_period_time_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 1000; d->items[i].msg = CTEXT(T_PERIOD); #if defined(HAVE_SYS_SOUNDCARD_H) || defined(HAVE_ALSA) d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_plev_str; d->items[i].maxl = 4; d->items[i].fn = check_number; d->items[i].gid = -1; d->items[i].gnum = 100; d->items[i].msg = CTEXT(T_PLAYBACK_VOLUME); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_rlev_str; d->items[i].maxl = 4; d->items[i].fn = check_number; d->items[i].gid = -1; d->items[i].gnum = 100; d->items[i].msg = CTEXT(T_CAPTURE_VOLUME); #endif d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssbd_template; d->items[i].maxl = 30; d->items[i].msg = CTEXT(T_TEMPLATE); d->items[i].wrap = 2; #ifdef HAVE_ALSA d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_pcm_play; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_PCM_PLAY); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_pcm_rec; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_PCM_REC); d->items[i].wrap = 1; /*d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_buffer_time_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 1000; d->items[i].msg = CTEXT(T_BUFFER); d->items[i].wrap = 1;*/ d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_alsa_mixer; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_ALSA_MIXER); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_alsa_src; d->items[i].text = ssbd_alsa_src; d->items[i].msg = CTEXT(T_CAPTURE); d->items[i].wrap = 2; #endif #ifdef HAVE_SYS_SOUNDCARD_H d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssbd_dsp; d->items[i].maxl = 20; d->items[i].msg = CTEXT(T_DSP); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = ssbd_maxfrag_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 20; d->items[i].msg = CTEXT(T_MAXFRAG); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = ssbd_mixer; d->items[i].maxl = 20; d->items[i].msg = CTEXT(T_MIXER); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_oss_src; d->items[i].text = ssbd_oss_src; d->items[i].msg = CTEXT(T_RECSRC); d->items[i].wrap = 2; #endif #ifdef HAVE_PORTAUDIO d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_pa_play_src; d->items[i].text = ssbd_pa_play_src; d->items[i].msg = CTEXT(T_PA_PLAY); d->items[i].wrap = 1; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_pa_rec_src; d->items[i].text = ssbd_pa_rec_src; d->items[i].msg = CTEXT(T_PA_REC); d->items[i].wrap = 2; #endif d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 2; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_ssbd(void *arg){ do_ssbd(); } #endif //HAVE_SNDFILE /*********************** NETWORK ****************************/ char net_if_ignore[MAX_STR_LEN],net_ip_ignore[MAX_STR_LEN],net_ip_announce[MAX_STR_LEN]; int trace_bcast, trace_sock, trace_recv, trace_send, trace_qsos, trace_rig, trace_sdev, trace_keys; int net_remote_enable; char net_remote_host[MAX_STR_LEN], net_remote_port_str[EQSO_LEN], net_remote_pass[MAX_STR_LEN]; void refresh_net(void *xxx){ int raise = 0; if (trace_bcast && !cfg->trace_bcast) raise++; if (trace_sock && !cfg->trace_sock) raise++; if (trace_recv && !cfg->trace_recv) raise++; if (trace_send && !cfg->trace_send) raise++; if (trace_rig && !cfg->trace_rig) raise++; if (trace_qsos && !cfg->trace_qsos) raise++; if (trace_sdev && !cfg->trace_sdev) raise++; if (trace_keys && !cfg->trace_keys) raise++; STORE_STR(cfg, net_if_ignore); STORE_STR(cfg, net_ip_ignore); STORE_STR(cfg, net_ip_announce); STORE_INT(cfg, net_remote_enable); STORE_STR(cfg, net_remote_host); STORE_SINT(cfg, net_remote_port); STORE_STR(cfg, net_remote_pass); STORE_INT(cfg, trace_bcast); STORE_INT(cfg, trace_sock); STORE_INT(cfg, trace_recv); STORE_INT(cfg, trace_send); STORE_INT(cfg, trace_qsos); STORE_INT(cfg, trace_rig); STORE_INT(cfg, trace_sdev); STORE_INT(cfg, trace_keys); free_net_ifaces(gnet); init_net_ifaces(gnet, 1); net_connect_remote(gnet); if (raise){ sw_raise_or_new(SWT_LOG); } } void do_net(void){ struct dialog *d; int i; safe_strncpy0(net_if_ignore, cfg->net_if_ignore, MAX_STR_LEN); safe_strncpy0(net_ip_ignore, cfg->net_ip_ignore, MAX_STR_LEN); safe_strncpy0(net_ip_announce, cfg->net_ip_announce, MAX_STR_LEN); net_remote_enable = cfg->net_remote_enable; safe_strncpy0(net_remote_host, cfg->net_remote_host, MAX_STR_LEN); g_snprintf(net_remote_port_str, EQSO_LEN, "%d", cfg->net_remote_port); safe_strncpy0(net_remote_pass, cfg->net_remote_pass, MAX_STR_LEN); trace_bcast=cfg->trace_bcast; trace_sock=cfg->trace_sock; trace_recv=cfg->trace_recv; trace_send=cfg->trace_send; trace_qsos=cfg->trace_qsos; trace_rig=cfg->trace_rig; trace_sdev=cfg->trace_sdev; trace_keys=cfg->trace_keys; if (!(d = (struct dialog *) g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_NETWORK); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_net; d->y0 = 1; i = -1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&net_remote_enable; d->items[i].msg = CTEXT(T_ENABLE_REMOTE_CONNECT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_remote_host; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_REMOTE_HOST); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = net_remote_port_str; d->items[i].maxl = 24; d->items[i].gid = 0; d->items[i].gnum = 65535; d->items[i].msg = CTEXT(T_REMOTE_PORT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_remote_pass; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_REMOTE_PASS); d->items[i].wrap = 2; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_if_ignore; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_IF_IGNORE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_ip_ignore; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_IP_IGNORE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = net_ip_announce; d->items[i].maxl = 24; d->items[i].msg = CTEXT(T_IP_ANNOUNCE); d->items[i].wrap = 2; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_bcast; d->items[i].msg = CTEXT(T_TRACE_BCAST); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_sock; d->items[i].msg = CTEXT(T_TRACE_SOCK); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_recv; d->items[i].msg = CTEXT(T_TRACE_RECV); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_send; d->items[i].msg = CTEXT(T_TRACE_SEND); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_qsos; d->items[i].msg = CTEXT(T_TRACE_QSOS); d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_rig; d->items[i].msg = CTEXT(T_TRACE_RIG);//CTEXT(T_TRACE_SDEV); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_sdev; d->items[i].msg = CTEXT(T_TRACE_SDEV); d->items[i].wrap = 0; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&trace_keys; d->items[i].msg = CTEXT(T_TRACE_KEYS);//CTEXT(T_TRACE_SDEV); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_network(void *arg){ do_net(); } tucnak-4.04/src/inpout.h0000644000175000017500000000140212011204770012114 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __INPOUT_H #define __INPOUT_H struct cwdaemon; #if defined(Z_MSC_MINGW_CYGWIN) int parport_init (struct cwdaemon *); int parport_open (struct cwdaemon *cwda, int verbose); int parport_free (struct cwdaemon *); int parport_reset (struct cwdaemon *); int parport_cw (struct cwdaemon *, int onoff); int parport_ptt (struct cwdaemon *, int onoff); int parport_ssbway (struct cwdaemon *, int onoff); int parport_band (struct cwdaemon *, int bandsw); #endif #endif tucnak-4.04/src/tsdl.c0000644000175000017500000013542312524337645011573 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "cwwindow.h" #include "fifo.h" #include "icons.h" #include "kbd.h" #include "main.h" #include "map.h" #include "misc.h" #include "qsodb.h" #include "rc.h" #include "rotar.h" #include "tsdl.h" #include "session.h" #include "ssbd.h" #include "subwin.h" #include "terminal.h" #include "zosk.h" #include "zpng.h" #define DEBUG_REDRAWx #undef TESTCOLOR #ifdef Z_HAVE_SDL #ifdef Z_ANDROID #define SDLTESTx #endif //#define SDLTEST struct tsdl *sdl; struct zzsdl *zsdl; SDL_Color pal[256]; #ifdef SDLTEST int sdl_test(void); #endif struct tsdl *init_sdl(){ int w, h, ty; SDL_Rect r; //char errbuf[1024]; SDL_Surface *tucnak64 = NULL; time_t now; struct tm *tm; const SDL_VideoInfo *vi; #ifdef SDLTEST exit(sdl_test()); #endif dbg("init_sdl\n"); //SDL_putenv("SDL_VIDEO_WINDOW_POS=0,0"); //SDL_putenv("SDL_VIDEO_WINDOW_POS=center"); if (opt_g && opt_t) { opt_t=opt_g=0; /* user is crazy */ } if (!opt_g && !opt_t){ if (getenv("DISPLAY")!=NULL) opt_g=1; }else{ if (opt_t) opt_g=0; } if (!opt_g) return NULL; time(&now); tm=localtime(&now); now=(tm->tm_mon<<4)+tm->tm_mday - 4; sdl=g_new0(struct tsdl, 1); sdl->old_mouse_x = -1; sdl->old_mouse_y = -1; sdl->iconv=iconv_open("ISO8859-2","UCS-2LE"); if (sdl->iconv==(iconv_t)(-1)){ int err=errno; char *c = z_strdup_strerror(err); dbg("Can't init iconv %s\n", c); g_free(c); free_sdl(); return NULL; } setenv("SDL_VIDEO_X11_WMCLASS", "Tucnak", 1); if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE)){ /* log_addf(VTEXT(T_CANT_SET_GR_S), "SDL_Init"); not initialised here */ log_addf(VTEXT(T_CANT_SET_GRAPHICS1)); free_sdl(); return NULL; }; sdl_pre_info(); vi = SDL_GetVideoInfo(); if (vi){ sdl->screen_w = vi->current_w; sdl->screen_h = vi->current_h; } sdl->window_w = cfg->gfx_x; sdl->window_h = cfg->gfx_y; zsdl_sys_key_repeat(300, 20); SDL_EnableUNICODE(1); #ifdef Z_HAVE_LIBPNG if ((now&0xf8) == 192){ sdl->icon = zpng_create(icon_tucnakv, sizeof(icon_tucnakv)); tucnak64 = zpng_create(icon_tucnakv64, sizeof(icon_tucnakv64)); }else{ sdl->icon = zpng_create(icon_tucnak, sizeof(icon_tucnak)); tucnak64 = zpng_create(icon_tucnak64, sizeof(icon_tucnak64)); } sdl->home = zpng_create(icon_home32, sizeof(icon_home32)); sdl->mast = zpng_create(icon_mast, sizeof(icon_mast)); sdl->zoomin = zpng_create(icon_zoomin32, sizeof(icon_zoomin32)); sdl->zoomout = zpng_create(icon_zoomout32, sizeof(icon_zoomout32)); sdl->key = zpng_create(icon_key32, sizeof(icon_key32)); sdl->xfer = zpng_create(icon_xfer32, sizeof(icon_xfer32)); if (!sdl->icon) zinternal("Can't create icon_tucnak, currupted executable?"); if (!tucnak64) zinternal("Can't create icon_tucnak64, currupted executable?"); if (!sdl->home) zinternal("Can't create icon_home32, currupted executable?"); if (!sdl->zoomin) zinternal("Can't create icon_zoomin32, currupted executable?"); if (!sdl->zoomout) zinternal("Can't create icon_zoomout32, currupted executable?"); if (!sdl->key) zinternal("Can't create icon_key, currupted executable?"); if (!sdl->xfer) zinternal("Can't create icon_xfer, currupted executable?"); SDL_WM_SetIcon(sdl->icon, NULL); #endif if (z_pipe(sdl->eventpipe)) { zinternal("can't create pipe for internal communication"); } /*dbg("sdl_attach terminal: pipe %d->%d\n", fd[1], fd[0]);*/ z_sock_nonblock(sdl->eventpipe[0], 1); MUTEX_INIT(sdl->eventpipestate); w=cfg->gfx_x; h=cfg->gfx_y; if (cfg->fullscreen){ w = sdl->screen_w; h = sdl->screen_h; } if (sdl_setvideomode(w, h, 1)){ log_addf(VTEXT(T_CANT_SET_GRAPHICS2)); free_sdl(); return NULL; } sdl->bpp = sdl->screen->format->BitsPerPixel; ty = sdl->screen->h / 2 - 2 * zsdl->font_h; if (tucnak64){ r.x=(sdl->screen->w-64)/2; r.y=sdl->screen->h/2 - 2 * zsdl->font_h - 64; r.w=24; r.h=24; SDL_BlitSurface(tucnak64, NULL, sdl->screen, &r); ty -= 64; } ty -= zsdl->font_h; zsdl_printf(sdl->screen, sdl->screen->w / 2, ty, sdl->gr[12], 0, ZFONT_CENTERX, "Tucnak %s", VERSION); SDL_UpdateRect(sdl->screen, 0, 0, w, h); rot_update_colors(); /*{ r.w = 256; r.h = 256; r.x = 0; r.y = 0; SDL_Surface *ver = SDL_CreateRGBSurface(SDL_SWSURFACE, 256, 256, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); SDL_Surface *hor = SDL_CreateRGBSurface(SDL_SWSURFACE, 256, 256, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); error("scr=%p %x %x %x %x \n", sdl->screen, sdl->screen->format->Aloss, sdl->screen->format->Ashift, sdl->screen->format->Amask, sdl->screen->format->alpha); error("hor=%p %x %x %x %x \n", hor, hor->format->Aloss, hor->format->Ashift, hor->format->Amask, hor->format->alpha); error("ver=%p %x %x %x %x \n", ver, ver->format->Aloss, ver->format->Ashift, ver->format->Amask, ver->format->alpha); int ii, jj; for (ii=0; ii<256;ii++) for (jj=0;jj<256;jj++){ z_putpixel(hor, ii, jj, z_makecol(ii, ii, ii)); z_putpixel(ver, ii, jj, z_makecol(jj, jj, jj)); } SDL_BlitSurface(hor, NULL, sdl->screen, &r); r.x = 258; SDL_BlitSurface(ver, NULL, sdl->screen, &r); r.x = 516; SDL_SetAlpha(ver, SDL_SRCALPHA, 128); error("ver=%p %x %x %x %x \n", ver, ver->format->Aloss, ver->format->Ashift, ver->format->Amask, ver->format->alpha); SDL_BlitSurface(hor, NULL, sdl->screen, &r); SDL_UpdateRect(sdl->screen, 0, 0, 0, 0); sleep(3); SDL_BlitSurface(ver, NULL, sdl->screen, &r); SDL_UpdateRect(sdl->screen, 0, 0, 0, 0); sleep(4); } */ return sdl; } void sdl_stop_event_thread(){ dbg("sdl_stop_event_thread\n"); if (!sdl) return; if (!sdl->event_thread) return; if (!sdl->ignore_progress) progress(VTEXT(T_WAIT_SDL_THR)); sdl->ignore_progress = 0; sdl->event_thread_break=1; g_thread_join(sdl->event_thread); sdl->event_thread=0; } void free_sdl(){ if (!sdl) return; #ifdef Z_MSC_MINGW if (sdl->event_timer_id) zselect_timer_kill(zsel, sdl->event_timer_id); #endif sdl_stop_event_thread(); if (sdl->mast) SDL_FreeSurface(sdl->mast); if (sdl->icon) SDL_FreeSurface(sdl->icon); if (sdl->screen) SDL_FreeSurface(sdl->screen); if (sdl->key) SDL_FreeSurface(sdl->key); if (sdl->xfer) SDL_FreeSurface(sdl->xfer); MUTEX_FREE(sdl->eventpipestate); zg_free0(sdl->title); SDL_Quit(); if (sdl->iconv) iconv_close(sdl->iconv); g_free(sdl); sdl=NULL; } char *sdl_best = NULL; void sdl_pre_info(){ const SDL_VideoInfo *vi; GString *gs = g_string_new(""); vi = SDL_GetVideoInfo(); if (!vi){ g_string_sprintfa(gs, "No \"best mode\" exists\n"); }else{ g_string_sprintfa(gs, "Screen: %dx%d-%d ", vi->current_w, vi->current_h, vi->vfmt->BitsPerPixel); if (vi->vfmt->palette){ g_string_sprintfa(gs, "using palette "); }else{ g_string_sprintfa(gs, "R=%x G=%x B=%x A=%x ", vi->vfmt->Rmask, vi->vfmt->Gmask, vi->vfmt->Bmask, vi->vfmt->Amask); } g_string_sprintfa(gs, "colorkey=%04x alpha=%d\n", vi->vfmt->colorkey, vi->vfmt->alpha); } g_free(sdl_best); sdl_best = g_strdup(gs->str); g_string_free(gs, TRUE); } void sdl_info(GString *gs){ SDL_Rect **modes; int i; char str[256]; int oldw, oldh; g_string_sprintfa(gs, "\n sdl_info:\n"); if (SDL_Init(SDL_INIT_VIDEO) < 0){ g_string_sprintfa(gs, "SDL_Init failed\n"); return; }; SDL_VideoDriverName(str, sizeof(str)-1); str[sizeof(str)-1]='\0'; if (*str) g_string_sprintfa(gs, "Driver: %s\n", str); if (!sdl_best) sdl_pre_info(); g_string_append(gs, sdl_best); modes=SDL_ListModes(NULL, SDL_FULLSCREEN); if (!modes) { g_string_sprintfa(gs, "No video modes available (SDL_ListModes)\n"); }else{ if (modes==(SDL_Rect**)-1){ g_string_sprintfa(gs, "All resolutinons available\n"); return; } g_string_sprintfa(gs, "Modes: "); oldw=oldh=-1; for (i=0;modes[i];i++){ if (modes[i]->w==oldw && modes[i]->h==oldh) continue; g_string_sprintfa(gs, "%dx%d ", modes[i]->w, modes[i]->h); oldw=modes[i]->w; oldh=modes[i]->h; } g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); } #ifdef Z_MSC_MINGW void sdl_event_timer(void *xxx){ if (!sdl) return; SDL_PumpEvents(); sdl->event_timer_id = zselect_timer_new(zsel, 50, sdl_event_timer, NULL); } #endif int sdl_setvideomode(int w, int h, int init_x){ int i, flags; sdl_stop_event_thread(); if (init_x == 0) cfg->maximized = zsdl_maximized(zsdl, NULL, NULL); flags = SDL_SWSURFACE|SDL_RESIZABLE|SDL_HWPALETTE; if (cfg->fullscreen){ flags |= SDL_FULLSCREEN; if (sdl->screen_w > 0 && sdl->screen_h >= 0){ w = sdl->screen_w; h = sdl->screen_h; #ifdef Z_ANDROID if (cfg->portrait == 0 && w < 640){ // for 480x320 use libSDL's OpenGL resize w = 640; h = 480; } #endif } }else{ sdl->window_w = w; sdl->window_h = h; } /*w = 480; h = 800;*/ dbg("SDL_SetVideoMode(%d,%d)\n", w, h); sdl->screen = SDL_SetVideoMode(w, h, 0, flags); if (sdl->screen == NULL){ dbg("SDL_SetVideoMode(%d,%d) failed\n", w, h); return 1; } zsdl = zsdl_init(sdl->screen, cfg->fontheight); //if (SDL_MUSTLOCK(sdl->screen)) zinternal("surface must be locked"); sdl->termarea.x = 0; sdl->termarea.y = 0; sdl->termarea.w = w; sdl->termarea.h = h; if (sdl->screen->format->palette){ int i; SDL_PixelFormat *fmt; for (i=0; i<256; i++){ sdl->colors[i].r=(i&0xe0)+31; sdl->colors[i].g=((i<<3)&0xe0)+31; sdl->colors[i].b=((i<<6)&0xc0)+63; } SDL_SetColors(sdl->screen, sdl->colors, 0, 256); fmt=sdl->screen->format; fmt->Rmask=0xe0; fmt->Gmask=0x1c; fmt->Bmask=0x03; fmt->Rshift=5; fmt->Gshift=2; fmt->Bshift=0; fmt->Rloss=5; fmt->Gloss=5; fmt->Bloss=6; } pal[0].r = pal[0].g = pal[0].b = 0; sdl->gr[0] = z_makecol(0, 0, 0); for (i=1; i<16; i++){ pal[i].r = pal[i].g = pal[i].b = i*4+3; sdl->gr[i] = z_makecol(i*16+15, i*16+15, i*16+15); } for (i=0; i<16; i++){ int r,g,b; if (i==0x08){ r=g=b=96; }else if (i&0x08){ r=255*(i&0x01); g=255*((i&0x02)>>1); b=255*((i&0x04)>>2); }else if (i==0x07){ r=192; g=192; b=192; }else { r=128*(i&0x01); g=128*((i&0x02)>>1); b=128*((i&0x04)>>2); } sdl->termcol[i]=z_makecol(r,g,b); /*dbg("color[%d]=%d,%d,%d\n", i, r,g,b);*/ } sdl->cursor=z_makecol(128,128,0); sdl->yellow=z_makecol(255,255,0); sdl->yellow2=z_makecol(224,224,0); sdl->green=z_makecol(0,255,0); sdl->red=z_makecol(255,0,0); sdl->event_thread_break=0; //dbg("creating SDL thread\n"); sdl->event_thread = g_thread_try_new("SDL events", sdl_event_thread, GINT_TO_POINTER(sdl->eventpipe[1]), NULL); if (!sdl->event_thread) { error("ERROR: can't create event thread"); sdl_stop_event_thread(); return -1; } //dbg("created SDL thread"); SDL_FillRect(sdl->screen, NULL, 0); SDL_UpdateRect(sdl->screen, 0, 0, sdl->screen->w, sdl->screen->h); // fill space between char area and screen boundary //sleep(3); #ifdef Z_MSC_MINGW if (!sdl->event_timer_id) sdl->event_timer_id = zselect_timer_new(zsel, 100, sdl_event_timer, NULL); #endif return 0; } #ifdef DEBUG_REDRAW struct timeval startx = {0, 0}; #endif #define ISSEL(x) ((x) >= gses->sel_start && (x) <= gses->sel_stop) void sdl_redraw_screen(void){ int x,y,p,fg,bg,d,i,j, col; int minx,maxx,miny,maxy; unsigned char c; SDL_Rect dstrect, r; int update_dstrect=0; int iconx=0, icony=0; int draw_icon=0; int ll; int selcol; int flg; int doupdate = 1; if (!term || !term->x) return; if (gses && gses->osk) doupdate = 0; sdl->progress_w = 0; #ifdef DEBUG_REDRAW if (startx.tv_sec!=0){ struct timeval stopx; int sec, usec; gettimeofday(&stopx, NULL); usec=stopx.tv_usec-startx.tv_usec; sec=stopx.tv_sec-startx.tv_sec; if (usec<0){usec+=1000000;sec--;} // dbg("a %d.%06d %d.%06d\n", startx.tv_sec % 100, startx.tv_usec, stopx.tv_sec % 100, stopx.tv_usec); //dbg("sdl_redraw_screen: %d.%06d\t", sec, usec); } gettimeofday(&startx, NULL); #endif // TODO pi ukonovn pod msvc tady nkdy je term == NULL minx=term->x; miny=term->y; maxx=-1; maxy=-1; if (term->last_screen!=NULL && (term->cx!=term->lcx || term->cy!=term->lcy)){ term->last_screen[term->cx+term->cy*term->x]=0; if (term->lcx >= 0 && term->lcy >= 0 && term->lcx < term->x && term->lcy < term->y) term->last_screen[term->lcx+term->lcy*term->x]=0; term->lcx=term->cx; term->lcy=term->cy; } if (gses && gses->ontop && gses->ontop->screen && !show_qs()){ dstrect.x=gses->ontop->x*FONT_W; dstrect.y=gses->ontop->y*FONT_H; dstrect.w=gses->ontop->w*FONT_W; dstrect.h=gses->ontop->h*FONT_H; SDL_BlitSurface(gses->ontop->screen, 0, sdl->screen,&dstrect); if (gses->ontop->type == SWT_MAP){ sw_map_redraw_icons(gses->ontop, &dstrect, 0); } //dbg("blit gses->ontop->screen pixel=%d\n", z_getpixel(sdl->screen, gses->ontop->x*FONT_W, gses->ontop->y*FONT_H)); fill_lastarea(gses->ontop->x, gses->ontop->y, gses->ontop->w, gses->ontop->h, 0); update_dstrect=1; //SDL_UpdateRect(sdl->screen, 0, 0, 0, 0); } if (gses && gses->ontop && gses->focused && gses->win->prev == gses->win->next) { dstrect.x = gses->ontop->x * FONT_W - 1; dstrect.y = gses->ontop->y * FONT_H - 1; dstrect.w = gses->ontop->ww * FONT_W + 2; dstrect.h = gses->ontop->hh * FONT_H + 2; z_rect2(sdl->screen, &dstrect, sdl->cursor); update_dstrect=1; } /*if (gses && gses->sel_max >= 0 && gses->sel_min != INT32_MAX){ dbg("clearing %d %d\n", gses->sel_min, gses->sel_max); for (i = gses->sel_min; i <= gses->sel_max; i++){ if (i < 0) continue; if (i >= term->x * term->y) break; term->last_screen[i] = 0; } gses->sel_min = INT32_MAX; gses->sel_max = -1; } */ if (gses && gses->icon != gses->oldicon){ gses->oldicon=gses->icon; iconx=1; icony=term->y - cfg->loglines - DISP_QSOS - 1; if (ctest && !ctest->oldcontest) icony-=ctest->spypeers->len; //dbg(" gses->icon "); fill_lastarea(iconx, icony, 48/FONT_W+1, 48/FONT_H+1, 0); draw_icon=1; } #ifdef HAVE_SNDFILE123 if (gses && gses->icon == ssbd->recicon /* && ssbd->loglevel != ssbd->oldloglevel*/){ x=term->x-1; /*for (y=0;y<6;y++) { // term->last_screen[x+term->x*y]=0; set_char(x, y, '2' + COL_NORM); // term->screen[x+term->x*y]='2'; } */ //dbg(" gses->volume "); } #endif d=0; for (p=0,y=0;yy;y++){ for (x=0;xx;x++,p++){ if (term->screen[p] == term->last_screen[p]) continue; if (!term->screen[p]) continue; d=1; if (xmaxx) maxx=x; if (y>maxy) maxy=y; fg=(term->screen[p]&0x0700)>>8; if (term->screen[p]&0x4000) fg|=0x08; if (term->screen[p]&ATTR_FRAME){ c=term->screen[p]-48; if (c==170) c=134; else if (c==169) c=133; }else{ c=term->screen[p]; } bg=sdl->termcol[(term->screen[p]&0x3800)>>11]; if (x+y>0 && x==term->cx && y==term->cy) bg=sdl->cursor; if (gses && ISSEL(p)) bg = z_makecol(0, 75, 75); flg = ZFONT_CHAR; if ((term->screen[p] >> 15) & DOUBLEHT_MASK) flg |= ZFONT_DOUBLEHT; if ((term->screen[p] >> 15) & DOUBLEHB_MASK) flg |= ZFONT_DOUBLEHB; SDL_SetClipRect(sdl->screen, &sdl->termarea); zsdl_printf(sdl->screen, x*FONT_W, y*FONT_H, sdl->termcol[fg], bg, flg, (char *)&c); if (gses && ISSEL(p)){ selcol = z_makecol(0, 150, 150); if (SDL_MUSTLOCK(sdl->screen)) SDL_LockSurface(sdl->screen); if (!ISSEL(p - 1) || (x % term->x) == 0) z_line(sdl->screen, x * FONT_W, y * FONT_H, x * FONT_W, y * FONT_H + FONT_H - 1, selcol); if (!ISSEL(p + 1) || (x % term->x) == term->x - 1) z_line(sdl->screen, x * FONT_W + FONT_W - 1, y * FONT_H, x * FONT_W + FONT_W - 1, y * FONT_H + FONT_H - 1, selcol); if (!ISSEL(p - term->x)) z_line(sdl->screen, x * FONT_W, y * FONT_H, x * FONT_W + FONT_W - 1, y * FONT_H, selcol); if (!ISSEL(p + term->x)) z_line(sdl->screen, x * FONT_W, y * FONT_H + FONT_H - 1, x * FONT_W + FONT_W - 1, y * FONT_H + FONT_H - 1, selcol); if (SDL_MUSTLOCK(sdl->screen)) SDL_UnlockSurface(sdl->screen); } #ifdef HAVE_SNDFILE gssbd->oldloglevel = -42; #endif } } // clear borders behind char area for (x = term->x * FONT_W; x < sdl->screen->w; x++) for (y = 0; y < sdl->screen->h; y++) z_putpixel(sdl->screen, x, y, 0); for (y = term->y * FONT_H; y < sdl->screen->h; y++) for (x = 0; x < sdl->screen->w; x++) z_putpixel(sdl->screen, x, y, 0); #ifdef HAVE_SNDFILE MUTEX_LOCK(gssbd->loglevel); if (gses && gses->icon == gssbd->recicon && gssbd->loglevel != gssbd->oldloglevel){ ll = gssbd->loglevel; MUTEX_UNLOCK(gssbd->loglevel); //dbg(" XXX %d!=%d \n", ll, ssbd->oldloglevel); x=(term->x-1)*FONT_W; y=6*FONT_H-1; if (SDL_MUSTLOCK(sdl->screen)) SDL_LockSurface(sdl->screen); for (i=0;i<96;i++) { if (iscreen, x+j, y-i, col); } if (SDL_MUSTLOCK(sdl->screen)) SDL_LockSurface(sdl->screen); r.x=x; r.y=0; r.w=FONT_W; r.h=6*FONT_H; //dbg(" [%d,%d,%d,%d] ", r.x, r.y, r.w, r.h); if (doupdate) SDL_UpdateRect(sdl->screen, r.x, r.y, r.w, r.h); gssbd->oldloglevel = ll; }else{ MUTEX_UNLOCK(gssbd->loglevel); } #endif #ifdef Z_HAVE_SDL if (gbat){ x = (term->x - 2) * FONT_W; y = FONT_H; zbat_draw(gbat, sdl->screen, x, y, FONT_W - 1, FONT_H); //if (doupdate) dbg("updaterect %p %d %d %d %d\n", sdl->screen, x, y, FONT_W - 1, FONT_H); if (doupdate) SDL_UpdateRect(sdl->screen, x, y, FONT_W - 1, FONT_H); } #endif if (draw_icon) { r.x=iconx*FONT_W; r.y=icony*FONT_H; r.w=48; r.h=48; SDL_BlitSurface(gses->icon, NULL, sdl->screen, &r); if (doupdate) SDL_UpdateRect(sdl->screen, r.x, r.y, r.w, r.h); } if (d) { minx=minx*FONT_W; miny=miny*FONT_H; maxx=(maxx+1)*FONT_W; maxy=(maxy+1)*FONT_H; /*rect(sdl->screen, minx, miny, maxx, maxy, 0x80);*/ //dbg(" chars "); if (doupdate) SDL_UpdateRect(sdl->screen, minx, miny, maxx-minx, maxy-miny); memcpy(term->last_screen, term->screen, term->x * term->y * sizeof(int)); } if (gses && gses->osk){ SDL_Rect r; zosk_draw(gses->osk); r.x = gses->osk->parent_x; r.y = gses->osk->parent_y; r.w = gses->osk->surface->w; r.h = gses->osk->surface->h; SDL_BlitSurface(gses->osk->surface, NULL, sdl->screen, &r); SDL_UpdateRect(sdl->screen, 0, 0, 0, 0); update_dstrect = 0; // already done } if (update_dstrect){ /*rect2(sdl->screen, &dstrect, 0x000000); SDL_UpdateRect(sdl->screen, dstrect.x, dstrect.y, dstrect.w, dstrect.h); usleep(100000); rect2(sdl->screen, &dstrect, 0x800000);*/ /* for (i=0; i<16; i++){ SDL_Rect q; q.x = 100; q.y = 100+i*10; q.w = 20; q.h = 10; SDL_FillRect(sdl->screen, &q, sdl->termcol[i]); } */ SDL_UpdateRect(sdl->screen, dstrect.x, dstrect.y, dstrect.w, dstrect.h); } // zsdl_test_bars(sdl->screen, 0); #ifdef DEBUG_REDRAW if (startx.tv_sec!=0){ struct timeval stopx; int sec, usec; gettimeofday(&stopx, NULL); usec=stopx.tv_usec-startx.tv_usec; sec=stopx.tv_sec-startx.tv_sec; if (usec<0){usec+=1000000;sec--;} dbg(" %d.%06d\n", sec, usec); // dbg("b %d.%06d %d.%06d\n", startx.tv_sec % 100, startx.tv_usec, stopx.tv_sec % 100, stopx.tv_usec); } gettimeofday(&startx, NULL); #endif } SDL_Rect *new_rect(int x, int y, int w, int h){ SDL_Rect *rect; rect = g_new0(SDL_Rect, 1); rect->x = x; rect->y = y; rect->w = w; rect->h = h; return rect; } void free_rect(SDL_Rect *rect){ g_free(rect); } int sdl_get_terminal_size(int fd, int *x, int *y){ *x=sdl->screen->w / zsdl->font_w; *y=sdl->screen->h / zsdl->font_h; if (gses && gses->osk && cfg->portrait && sdl->screen->w < sdl->screen->h){ *y = (sdl->screen->h - gses->osk->surface->h) / zsdl->font_h; } return 0; } int handle_unicode(const SDL_Event *sev, struct event *ev){ char iso[10]; char uni[2]; char *isoptr; char *uniptr; size_t in,out; int ret; if (!sev->key.keysym.unicode) return 0; in=2; out=10; uni[0]=sev->key.keysym.unicode & 0xff; uni[1]=sev->key.keysym.unicode >> 8; isoptr=iso; uniptr=uni; /*dbg("uniptr=%p isoptr=%p in=%d out=%d\n", uniptr, isoptr, in, out);*/ ret=iconv(sdl->iconv, &uniptr, &in, &isoptr, &out); //err=errno; /*dbg("uniptr=%p isoptr=%p in=%d out=%d\n", uniptr, isoptr, in, out);*/ if (debug_keyboard){ //rintf(stderr, "Keyboard: unicode=0x%04x iso:0x%02x '%c'\n", sev->key.keysym.unicode, (unsigned char)iso[0],isprint((unsigned char)iso[0])?(unsigned char)iso[0]:'.'); } if (ret || !iso[0]){ log_addf("Can't handle keystroke unicode=0x%04x ret=%d iso=0x%02x\n", sev->key.keysym.unicode, ret, (unsigned char)iso[0]); return 0; } ev->x=(unsigned char)iso[0]; if (ev->x <= 26){ /* Ctrl+letter */ ev->x +='@'; } if (ev->x == 31) ev->x = '-'; /*if (sev->key.keysym.mod & KMOD_SHIFT) ev->y|=KBD_SHIFT;*/ if ((sev->key.keysym.mod & (KMOD_LCTRL|KMOD_RALT)) != (KMOD_LCTRL|KMOD_RALT)){ // skip right alt which switches keyboard layout for accent if (sev->key.keysym.mod & (KMOD_ALT|KMOD_META)) ev->y|=KBD_ALT; if (sev->key.keysym.mod & KMOD_CTRL) ev->y|=KBD_CTRL; } return 1; } gpointer sdl_event_thread(gpointer handle){ int fd; SDL_Event sev, sev2; struct event ev; int shift,k,sk,ret; int skip_unicode = 0; struct timeval oldmtv, now; int oldmx = -1, oldmy = -1; double d; oldmtv.tv_sec = 0; oldmtv.tv_usec = 0; fd = GPOINTER_TO_INT(handle); //dbg("SDL thread is alive\n"); zg_thread_set_name("Tucnak SDL events"); /* ret = SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE); sdl->screen = SDL_SetVideoMode(sdl->w, sdl->h, 0, SDL_SWSURFACE|SDL_RESIZABLE|SDL_HWPALETTE); sdl->done = 1;*/ while(!sdl->event_thread_break){ int oldaltsym = 0; #if 0 SDL_KeyboardEvent *kev; #endif ev.ev = ev.x = ev.y = ev.b = 0; k=sk=0; #ifndef Z_MSC_MINGW SDL_PumpEvents(); #endif switch(SDL_PeepEvents(&sev, 1, SDL_GETEVENT, SDL_ALLEVENTS)) { case -1: return GINT_TO_POINTER(-1); break; case 0: SDL_Delay(50); continue; case 1: break; } #if 0 switch (sev.type){ case SDL_NOEVENT: dbg("SDL_NOEVENT\n"); break; case SDL_ACTIVEEVENT: dbg("SDL_ACTIVEEVENT\n"); break; case SDL_KEYDOWN: dbg("SDL_KEYDOWN\n"); break; case SDL_KEYUP: dbg("SDL_KEYUP\n"); break; case SDL_MOUSEMOTION: dbg("SDL_MOUSEMOTION\n"); break; case SDL_MOUSEBUTTONDOWN: dbg("SDL_MOUSEBUTTONDOWN\n"); break; case SDL_MOUSEBUTTONUP: dbg("SDL_MOUSEBUTTONUP\n"); break; case SDL_QUIT: dbg("SDL_QUIT\n"); break; case SDL_SYSWMEVENT: dbg("SDL_SYSWMEVENT\n"); break; case SDL_VIDEORESIZE: dbg("SDL_VIDEORESIZE\n"); break; case SDL_VIDEOEXPOSE: dbg("SDL_VIDEOEXPOSE\n"); break; default: dbg("SDL event type %d\n", sev.type); break; } #endif switch(sev.type){ case SDL_KEYDOWN: #if 0 dbg("KEYDOWN: "); for (k=0;kctrl = 1; } if (cfg->altsyms){ oldaltsym = sdl->altsym; if (sev.key.keysym.sym == SDLK_LALT || sev.key.keysym.sym == SDLK_RALT){ sdl->altsym = 1; //dbg("sdl->altsym=1\n"); }else{ sdl->altsym = 0; //dbg("sdl->altsym=0\n"); } } ev.ev=EV_KBD; #if 0 if (sev.key.keysym.sym < 256) log_addf("SDL_KEYDOWN->EV_KBD: mod=%x sym=%d='%c'", sev.key.keysym.mod, sev.key.keysym.sym, sev.key.keysym.sym); else log_addf("SDL_KEYDOWN->EV_KBD: mod=%x sym=%d", sev.key.keysym.mod, sev.key.keysym.sym); #endif switch(sev.key.keysym.sym){ case SDLK_BACKSPACE: k=sk=KBD_BS; goto handle; case SDLK_TAB: k=sk=KBD_TAB; goto handle; case SDLK_RETURN: case SDLK_KP_ENTER: k=sk=KBD_ENTER; goto handle; case SDLK_PAUSE: /*fprintf(stderr, "PAUSE\n");*/ goto handle; case SDLK_ESCAPE: k=sk=KBD_ESC; goto handle; case SDLK_UP: k=sk=KBD_UP; goto handle; case SDLK_DOWN: k=sk=KBD_DOWN; goto handle; case SDLK_RIGHT: k=sk=KBD_RIGHT; goto handle; case SDLK_LEFT: k=sk=KBD_LEFT; goto handle; case SDLK_INSERT: k=sk=KBD_INS; goto handle; case SDLK_DELETE: k=sk=KBD_DEL; goto handle; case SDLK_HOME: k=sk=KBD_HOME; goto handle; case SDLK_END: k=sk=KBD_END; goto handle; case SDLK_PAGEUP: k=sk=KBD_PGUP; goto handle; case SDLK_PAGEDOWN: k=sk=KBD_PGDN; goto handle; case SDLK_F1: k=sk=KBD_F1; goto handle; case SDLK_F2: k=sk=KBD_F2; goto handle; case SDLK_F3: k=sk=KBD_F3; goto handle; case SDLK_F4: k=sk=KBD_F4; goto handle; case SDLK_F5: k=sk=KBD_F5; goto handle; case SDLK_F6: k=sk=KBD_F6; goto handle; case SDLK_F7: k=sk=KBD_F7; goto handle; case SDLK_F8: k=sk=KBD_F8; goto handle; case SDLK_F9: k=sk=KBD_F9; goto handle; case SDLK_F10: k=sk=KBD_F10; goto handle; case SDLK_F11: k=sk=KBD_F11; goto handle; case SDLK_F12: k=sk=KBD_F12; goto handle; case SDLK_KP0: k=KBD_INS; sk='0'; goto handle; case SDLK_KP1: k=KBD_END; sk='1'; goto handle; case SDLK_KP2: k=KBD_DOWN; sk='2'; goto handle; case SDLK_KP3: k=KBD_PGDN; sk='3'; goto handle; case SDLK_KP4: k=KBD_LEFT; sk='4'; goto handle; case SDLK_KP5: k=KBD_DOWN; sk='5'; goto handle; case SDLK_KP6: k=KBD_RIGHT; sk='6'; goto handle; case SDLK_KP7: k=KBD_HOME; sk='7'; goto handle; case SDLK_KP8: k=KBD_UP; sk='8'; goto handle; case SDLK_KP9: k=KBD_PGUP; sk='9'; goto handle; case SDLK_KP_PERIOD: k=KBD_DEL; sk='.'; goto handle; case SDLK_KP_DIVIDE: k=sk='/'; goto handle; case SDLK_KP_MULTIPLY: k=sk='*'; goto handle; case SDLK_KP_MINUS: k=sk='-'; goto handle; case SDLK_KP_PLUS: k=sk='+'; goto handle; default: break; } skip_unicode = 0; if (sev.key.keysym.sym >= SDLK_0 && sev.key.keysym.sym <= SDLK_9 && sev.key.keysym.mod & KMOD_CTRL) skip_unicode = 1; // Ctrl+3 to Ctrl+9 send strange unicode values if (sev.key.keysym.unicode && !skip_unicode){ if (handle_unicode(&sev, &ev)) goto sendkeydown; dbg("to je divny, unicode 0x%04x nebyla zpracovana\n", sev.key.keysym.unicode); } switch(sev.key.keysym.sym){ case SDLK_QUOTE: k='\''; sk='"'; break; case SDLK_COMMA: k=','; sk='<'; break; case SDLK_MINUS: k='-'; sk='_'; break; case SDLK_PERIOD: k='.'; sk='>'; break; case SDLK_SLASH: k='/'; sk='?'; break; case SDLK_0: k='0'; sk=')'; break; case SDLK_1: k='1'; sk='!'; break; case SDLK_2: k='2'; sk='@'; break; case SDLK_3: k='3'; sk='#'; break; case SDLK_4: k='4'; sk='$'; break; case SDLK_5: k='5'; sk='%'; break; case SDLK_6: k='6'; sk='^'; break; case SDLK_7: k='7'; sk='&'; break; case SDLK_8: k='8'; sk='*'; break; case SDLK_9: k='9'; sk='('; break; case SDLK_SEMICOLON: k=';'; sk=':'; break; case SDLK_LESS: k='<'; sk='>'; break; case SDLK_EQUALS: k='='; sk='+'; break; case SDLK_LEFTBRACKET: k='['; sk='{'; break; case SDLK_BACKSLASH: k='\\'; sk='|'; break; case SDLK_RIGHTBRACKET: k=']'; sk='}'; break; case SDLK_BACKQUOTE: k='`'; sk='~'; break; case SDLK_AT: k='@'; sk='2'; break; default: if (sev.key.keysym.sym<0x100){ k=sk=sev.key.keysym.sym; if (k>='a' && k<='z'){ sk-='a'-'A'; } }else{ k=sk=0; } break; } handle:; shift=(sev.key.keysym.mod & KMOD_SHIFT)!=0; /*dbg("\nshift=%d caps=%d %d\n", shift,sev.key.keysym.mod & KMOD_CAPS,(sev.key.keysym.mod & KMOD_CAPS)!=0 );*/ if (k>='a' && k<='z') shift^=(sev.key.keysym.mod & KMOD_CAPS)!=0; if (sev.key.keysym.sym>=SDLK_KP0 && sev.key.keysym.sym<=SDLK_KP_PERIOD) shift^=(sev.key.keysym.mod & KMOD_NUM)!=0; if (shift){ ev.x=sk; if (sk>=256) ev.y|=KBD_SHIFT; }else{ ev.x=k; } if (sev.key.keysym.mod & (KMOD_ALT|KMOD_META)){ ev.y|=KBD_ALT; } if (sev.key.keysym.mod & KMOD_CTRL){ ev.y|=KBD_CTRL; } if (ev.x) goto sendkeydown; break; case SDL_KEYUP: if (sev.key.keysym.sym == SDLK_LCTRL || sev.key.keysym.sym == SDLK_RCTRL) { //dbg("ctrl 000000000000000\n"); sdl->ctrl = 0; } break; case SDL_MOUSEBUTTONDOWN: ev.ev=EV_MOUSE; ev.x=sev.button.x/FONT_W; ev.y=sev.button.y/FONT_H; ev.mx=sev.button.x; ev.my=sev.button.y; sdl->old_mouse_x = ev.x; sdl->old_mouse_y = ev.y; switch(sev.button.button){ case SDL_BUTTON_LEFT: sdl->mouse_drag=1; sdl->drag_buttons=ev.b=B_LEFT; goto send; case SDL_BUTTON_MIDDLE: sdl->mouse_drag=1; sdl->drag_buttons=ev.b=B_MIDDLE; goto send; case SDL_BUTTON_RIGHT: sdl->mouse_drag=1; sdl->drag_buttons=ev.b=B_RIGHT; goto send; case SDL_BUTTON_WHEELUP: ev.b=B_WHUP; goto send; case SDL_BUTTON_WHEELDOWN: ev.b=B_WHDOWN; goto send; } break; case SDL_MOUSEBUTTONUP: sdl->mouse_drag=0; ev.ev=EV_MOUSE; ev.x=sev.button.x/FONT_W; ev.y=sev.button.y/FONT_H; ev.mx=sev.button.x; ev.my=sev.button.y; ev.b = B_UP; if (ev.x == sdl->old_mouse_x && ev.y == sdl->old_mouse_y) ev.b |= B_CLICK; switch(sev.button.button){ case SDL_BUTTON_LEFT: ev.b |= B_LEFT; goto send; case SDL_BUTTON_MIDDLE: ev.b |= B_MIDDLE; goto send; case SDL_BUTTON_RIGHT: ev.b |= B_RIGHT; goto send; } break; case SDL_MOUSEMOTION: ev.ev=EV_MOUSE; ev.x=sev.button.x/FONT_W; ev.y=sev.button.y/FONT_H; if (sdl->mouse_drag){ ev.b=sdl->drag_buttons|B_DRAG; } else ev.b=B_MOVE; ev.mx=sev.button.x; ev.my=sev.button.y; sdl->mouse_x=sev.button.x; sdl->mouse_y=sev.button.y; while (1){ // dbg("while &sev2=%p\n", &sev2); ret = SDL_PeepEvents(&sev2, 1, SDL_PEEKEVENT, SDL_ALLEVENTS); // dbg("PeepEvent2=%d %d\n", ret, sev2.type); if (ret != 1) break; if (sev2.type!=SDL_MOUSEMOTION) break; ret=SDL_PeepEvents(&sev, 1, SDL_GETEVENT, SDL_ALLEVENTS); if (ret!=1) zinternal("Somebody stole my event"); // dbg("PeepEvent3 %d\n", sev.type); ev.x=sev2.button.x/FONT_W; ev.y=sev2.button.y/FONT_H; ev.mx=sev2.button.x; ev.my=sev2.button.y; sdl->mouse_x=sev2.button.x; sdl->mouse_y=sev2.button.y; } goto send_mouse; if (sdl->mouse_drag) goto send; continue; case SDL_VIDEORESIZE: ev.ev=EV_SDLRESIZE; ev.mx = sdl->resize_w = sev.resize.w; ev.my = sdl->resize_h = sev.resize.h; ev.x=ev.mx/FONT_W; ev.y=ev.my/FONT_H; dbg("SDL_VIDEORESIZE %d w=%d\n", sdl->resizeevents, sdl->resize_w); if (sdl->resizeevents > 0) continue; goto send; case SDL_QUIT: ev.ev=EV_KBD; ev.x='q'; ev.y=KBD_ALT; goto send; } continue; sendkeydown: //dbg("cfg->altsyms=%d sdl->altsym=%d ev->x=%c\n", cfg->altsyms, sdl->altsym, ev.x); if (oldaltsym){ int oldk = ev.x; switch (ev.x){ case 'q': ev.x = '1'; break; case 'w': ev.x = '2'; break; case 'e': ev.x = '3'; break; case 'r': ev.x = '4'; break; case 't': ev.x = '5'; break; case 'y': ev.x = '6'; break; case 'z': ev.x = '6'; break; case 'u': ev.x = '7'; break; case 'i': ev.x = '8'; break; case 'o': ev.x = '9'; break; case 'p': ev.x = '0'; break; case 'l': ev.x = '/'; break; } if (ev.x != oldk){ dbg("altsym remap %c->%c\n", oldk, ev.x); } } goto send; send_mouse:; gettimeofday(&now, NULL); d = z_difftimeval_double(&now, &oldmtv); if (d > 0.0 && d < 1.0 && oldmx >= 0 && oldmy >= 0){ ev.vx = (ev.mx - oldmx) / d; ev.vy = (ev.my - oldmy) / d; }else{ ev.vx = 0.0; ev.vy = 0.0; } oldmx = ev.mx; oldmy = ev.my; oldmtv.tv_sec = now.tv_sec; oldmtv.tv_usec = now.tv_usec; send:; // dbg("ev=%ld x=%ld(%c) y=%ld b=%ld\n", ev.ev, ev.x, isprint(ev.x & 0xff)?ev.x:0, ev.y, ev.b); while(1){ int len; MUTEX_LOCK(sdl->eventpipestate); len=sdl->eventpipestate; MUTEX_UNLOCK(sdl->eventpipestate); if (lenevent_thread_break) goto terminate; } ret = z_pipe_write(fd, &ev, sizeof(ev)); //dbg("sdl_event_thread: ret=%d\n", fd); if (ret != sizeof(ev)) { int err; err=errno; if (err==32 && !sdl->event_thread_break){ zinternal("Sem pridej konec vlakna, vole. Nakej nouma mi zavrel pajpu"); } zinternal("can't write to event pipe"); break; } MUTEX_LOCK(sdl->eventpipestate); sdl->eventpipestate+=sizeof(ev); if (ev.ev == EV_SDLRESIZE) sdl->resizeevents++; /*dbg("w %d\n", sdl->eventpipestate);*/ MUTEX_UNLOCK(sdl->eventpipestate); } terminate:; dbg("sdl_thread exited %d\n", sdl->event_thread_break); return 0; } int sdl_attach_terminal(int in, int out, int ctl) { /*struct terminal *term;*/ /*dbg("attach_terminal\n");*/ /* -1 -1 -1 -1 */ handle_trm(in, out, out, sdl->eventpipe[1], ctl); /* before sdl_thread! */ /* dbg("after handle_trm %d\n", sdl->eventpipestate);*/ /*sdl->pipefd=fd[1]; sdl->event_thread_break=0; sdl->event_thread=g_tXXhread_create(sdl_event_thread, GINT_TO_POINTER(sdl->pipefd), TRUE, NULL); if (!sdl->event_thread) { error("ERROR: can't create event thread"); return -1; } */ if ((term = init_term(sdl->eventpipe[0], out, win_func)) != NULL) { handle_basic_signals(term); /* OK, this is race condition, but it must be so; GPM installs it's own buggy TSTP handler */ return sdl->eventpipe[1]; } z_pipe_close(sdl->eventpipe[0]); z_pipe_close(sdl->eventpipe[1]); return -1; } int sdl_set_title(gchar *title){ if (!sdl) return 0; zg_free0(sdl->title); sdl->title=g_strdup(title); SDL_WM_SetCaption(sdl->title, NULL); return 0; } #ifdef Z_HAVE_LIBPNG void sdl_screenshot(int topwindow){ gchar *c; int i; SDL_Surface *surface; if (!sdl) return; dbg("sdl_screenshot\n"); if (gses->osk){ struct zosk *bk = gses->osk; gses->osk = NULL; sdl_force_redraw(); sdl_redraw_screen(); gses->osk = bk; } if (topwindow){ struct window *win; win=(struct window *)&(term->windows); dbg("win=%p prev=%p next=%p\n", win, win->prev, win->next); if (win->prev==win->next || !win->next->data){ surface=sdl->screen; }else{ SDL_Rect sr,dr; sr.x=sr.y=dr.w=dr.h=sr.w=sr.h=0; i=0; if (win->next->handler==menu_func || win->next->handler==mainmenu_func){ struct menu *menu; menu=(struct menu *)win->next->data; dr.x=-menu->x*FONT_W; dr.y=-menu->y*FONT_H; sr.w=menu->xw*FONT_W; sr.h=menu->yw*FONT_H; i++; } if (win->next->handler==dialog_func){ struct dialog_data *dd; dd=(struct dialog_data *)win->next->data; dr.x=-dd->x*FONT_W; dr.y=-dd->y*FONT_H; sr.w=dd->xw*FONT_W; sr.h=dd->yw*FONT_H; i++; } if (win->next->handler==cwwindow_func){ struct cwwin_data *cww; cww=(struct cwwin_data *)win->next->data; dr.x=-cww->x*FONT_W; dr.y=-cww->y*FONT_H; sr.w=cww->w*FONT_W; sr.h=cww->h*FONT_H; i++; } if (!i){ surface=sdl->screen; }else{ surface=SDL_CreateRGBSurface(SDL_SWSURFACE, sr.w, sr.h, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); /* dbg("sr=[%d,%d, %d,%d]\n", sr.x, sr.y, sr.w, sr.h); dbg("dr=[%d,%d, %d,%d]\n", dr.x, dr.y, dr.w, dr.h); */ SDL_BlitSurface(sdl->screen, NULL , surface, &dr); /* dbg("dr=[%d,%d, %d,%d]\n", dr.x, dr.y, dr.w, dr.h); SDL_BlitSurface(surface, NULL, sdl->screen, NULL); SDL_UpdateRect(sdl->screen, 0, 0, sdl->screen->w, sdl->screen->h); sleep(1);*/ } } }else{ surface=sdl->screen; } for (i=0;1;i++){ struct stat st; if (ctest) c=g_strdup_printf("%s/snap%c%d.png",ctest->directory, z_char_lc(aband->bandchar), i); else c=g_strdup_printf("%s/snap%d.png",tucnak_dir, i); if (stat(c, &st)!=0) break; g_free(c); } dbg("file=%s\n", c); if (zpng_save(surface, c, NULL)){ log_addf(VTEXT(T_CANT_WRITE_S), c); errbox(VTEXT(T_CANT_WRITE), errno); } g_free(c); if (surface!=sdl->screen) SDL_FreeSurface(surface); } #endif //extern char font_vga[4096]; #endif void progress(char *m, ...){ #ifdef Z_HAVE_SDL va_list l; gchar *c, *d; int x, y, yy, w, h, tw; if (!sdl) return; if (!zsdl) return; if (!m) { if (term) memset(term->last_screen, 0, term->x * term->y * sizeof(unsigned)); return; } va_start(l, m); c = g_strdup_vprintf(m, l); tw = strlen(c) + 6; w = tw * zsdl->font_w; w = sdl->progress_w = Z_MAX(w, sdl->progress_w); tw = w / zsdl->font_w; h = 3 * zsdl->font_h; x = (sdl->screen->w - w) / 2; y = (sdl->screen->h - h) / 2; yy = y; d = (char *)g_malloc(tw + 1); memset(d, ' ', tw); d[tw] = '\0'; memset(d + 2, 0x94, Z_MIN(tw - 4, strlen(d))); d[1] = 0x86; d[tw - 2] = 0x8f; zsdl_printf(sdl->screen, x, yy, 0, sdl->gr[12], 0, "%s", d); yy += zsdl->font_h; memset(d, ' ', tw); d[1] = 0x83; memcpy(d + 3, c, strlen(c)); d[tw - 2] = 0x83; zsdl_printf(sdl->screen, x, yy, 0, sdl->gr[12], 0, "%s", d); yy += zsdl->font_h; memset(d, ' ', tw); memset(d + 2, 0x94, tw - 4); d[1] = 0x90; d[tw - 2] = 0x85; zsdl_printf(sdl->screen, x, yy, 0, sdl->gr[12], 0, "%s", d); SDL_UpdateRect(sdl->screen, x, y, w, h); g_free(d); g_free(c); va_end(l); #endif } void sdl_force_redraw(){ if (!term) return; memset(term->last_screen, 0, term->x * term->y * sizeof(unsigned)); } #ifdef Z_HAVE_SDL void zsdl_test_bars(SDL_Surface *surface, int ofs){ int i; int min = Z_MIN(surface->w, surface->h); for (i = 0; i < 16; i++){ SDL_Rect r; r.x = min * (i + 1 + ofs) / 18; r.y = min * (i + 1) / 18; r.w = min / 18; r.h = min / 18; SDL_FillRect(surface, &r, sdl->termcol[i]); } SDL_UpdateRect(surface, 0, 0, 0, 0); } void tsdl_change_font(char how){ if (!sdl) return; if (how == '+'){ if (cfg->fontheight == 32) return; if (cfg->fontheight < 16) cfg->fontheight = 16; else if (cfg->fontheight < 24) cfg->fontheight = 24; else cfg->fontheight = 32; } if (how == '-'){ if (cfg->fontheight == 13) return; if (cfg->fontheight > 24) cfg->fontheight = 24; else if (cfg->fontheight > 16) cfg->fontheight = 16; else cfg->fontheight = 13; } sdl_setvideomode(sdl->screen->w, sdl->screen->h, 0); resize_terminal(NULL); } void tsdl_optimal_font(){ if (sdl->screen_w >= 1920 && sdl->screen_h >= 1080){ cfg->fontheight = 32; } else if (sdl->screen_w >= 1680 && sdl->screen_h >= 1050){ cfg->fontheight = 24; } else { return; } sdl_setvideomode(sdl->screen->w, sdl->screen->h, 0); resize_terminal(NULL); } #endif tucnak-4.04/src/excdb.h0000644000175000017500000000525412500052574011702 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __EXCDB_H #define __EXCDB_H #include "header.h" #include "qsodb.h" extern struct excdb *excdb; struct exc_item{ gchar *exc0, *exc1; gint stamp0, stamp1; }; struct cxe_item{ gchar *call0, *call1; gint stamp0, stamp1; }; struct excdb{ GHashTable *exc; /* key=call, value=exc_item */ GHashTable *cxe; /* key=exc, value=cxe_item */ GHashTable *vexc; /* key=exc, value=null (exists or not) */ ZPtrArray *vexcia; /* sorted excs */ int latest; gchar *excname; enum exctype exctype; }; struct excdb *init_exc(void); gboolean free_exc_item(gpointer key, gpointer value, gpointer user_data); gboolean free_cxe_item(gpointer key, gpointer value, gpointer user_data); gboolean free_vexc_item(gpointer key, gpointer value, gpointer user_data); void free_exc(struct excdb *excdb); void clear_exc(struct excdb *excdb); gint get_exc_size(struct excdb *excdb); gint get_cxe_size(struct excdb *excdb); gint get_vexc_size(struct excdb *excdb); void load_one_exc(struct excdb *excdb, gchar *s); int load_exc_from_file(struct excdb *excdb, gchar *filename); void load_one_vexc(struct excdb *excdb, gchar *s); int load_vexc_from_file(struct excdb *excdb, gchar *filename); int load_vexc_from_mem(struct excdb *excdb, const char *file, const long int len); int is_valid_vexc(struct excdb *excdb, gchar *vexc); void read_exc_files(struct excdb *excdb, enum exctype exctype, gchar *excname); void exc_ia_verified(gpointer key, gpointer value, gpointer user_data); void exc_ia_waz(gpointer key, gpointer value, gpointer user_data); void exc_ia_itu(gpointer key, gpointer value, gpointer user_data); void save_one_exc(gpointer key, gpointer value, gpointer user_data); int save_exc_string(struct excdb *excdb, GString *gs); int save_exc_into_file(struct excdb *excdb, gchar *filename); void add_exc(struct excdb *excdb, gchar *call, gchar *wwl, gint stamp); void add_cxe(struct excdb *excdb, gchar *wwl, gchar *call, gint stamp); gchar *find_exc_by_call(struct excdb *excdb, const gchar *call); gchar *find_exc_by_call_newer(struct excdb *excdb, gchar *call, int maxstamp); gchar *find_call_by_exc(struct excdb *exc, gchar *wwl); void update_exc_from_band(struct excdb *excdb, struct band *band); void update_exc_from_ctest(struct excdb *excdb, struct contest *ctest); int valid_vexc(struct excdb *excdb, gchar *vexc); int rsgbdc_maxcount(char *exc); void usaca_multiple_exc(char *s); #endif tucnak-4.04/src/masterdb.c0000644000175000017500000001134712524341151012407 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "language2.h" #include "main.h" #include "masterdb.h" #include "tsdl.h" struct masterdb *masterdb; struct masterdb *init_masterdb(void){ struct masterdb *masterdb; progress(VTEXT(T_INIT_MASTERDB)); masterdb = g_new0(struct masterdb, 1); masterdb->masters = z_hash_table_new(g_str_hash, g_str_equal); /*z_hash_table_insert(masterdb->masters, g_strdup("OK1ZIA"), "VALUE"); dbg("OK1ZIA=%s\n", z_hash_table_lookup(masterdb->masters, "OK1ZIA")); exit(123);*/ return masterdb; } static gboolean free_masters_item(gpointer key, gpointer value, gpointer user_data){ g_free(key); return 0; } void free_masterdb(struct masterdb *masterdb){ progress(VTEXT(T_FREE_MASTERDB)); z_hash_table_foreach_remove(masterdb->masters, free_masters_item, NULL); z_hash_table_destroy(masterdb->masters); g_free(masterdb); } gint get_masterdb_size(struct masterdb *masterdb){ return z_hash_table_size(masterdb->masters); } void add_masterdb(struct masterdb *masterdb, gchar *call){ gchar *masterdbi; //dbg("add '%s'\n", call); masterdbi = z_hash_table_lookup(masterdb->masters, call); if (!masterdbi){ z_hash_table_insert(masterdb->masters, g_strdup(call), (gpointer)0x42); } } gchar *masterdb_search(struct masterdb *masterdb, char *pattern, int maxreslen){ int reslen; GString *gs; char *ret; GPtrArray *result; ZHashNode *node; int i; result=g_ptr_array_new(); reslen = 0; for (i = 0; i < masterdb->masters->size; i++){ for (node = masterdb->masters->nodes[i]; node; node = node->next){ gchar *call = (gchar *)node->key; // dbg("call=%s pattern=%s\n", call, pattern); if (!z_strstr(call, pattern)) continue; g_ptr_array_add(result, call); // foreign key !!! if (reslen > 0) reslen++; reslen += strlen(call); if (reslen >= maxreslen) goto x; } } x:; z_ptr_array_qsort((ZPtrArray *)result, z_compare_string); // FIXME GPtr vs. ZPtr ? gs = g_string_sized_new(maxreslen+20); for (i=0; ilen; i++){ if (gs->len > 0) g_string_append_c(gs, ' '); g_string_append(gs, g_ptr_array_index(result, i)); } ret = g_strdup(gs->str); g_ptr_array_free(result, TRUE); g_string_free(gs, 1); return ret; } #define MASTERDB_DELIM " \t\r\n" void load_one_masterdb(struct masterdb *masterdb, gchar *s){ gchar *call; char *token_ptr; call = strtok_r(s, MASTERDB_DELIM, &token_ptr); if (!call) return; if (strlen(call)==0) return; add_masterdb(masterdb, call); } int load_masterdb_from_mem(struct masterdb *masterdb, const char *file, const long int len){ GString *gs; long int pos; gs = g_string_sized_new(100); pos=0; while(1){ if (!zfile_mgets(gs, file, &pos, len, 1)) break; load_one_masterdb(masterdb, gs->str); } g_string_free(gs, 1); return 0; } int load_masterdb_from_file(struct masterdb *masterdb, gchar *filename){ FILE *f; long int len; gchar *file; int ret; size_t r; f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n",filename);*/ return -1; } if (fseek(f, 0L, SEEK_END)<0){ fclose(f); return -1; } len=ftell(f); if (len<=0 || len>0x10000000) { /* g_new can allocate only gsize=unsigned int */ fclose(f); return -1; } if (fseek(f, 0L, SEEK_SET)<0){ fclose(f); return -1; } file=g_new(gchar, len); r=fread(file, 1, len, f); fclose(f); if (r!=len) return -1; ret=load_masterdb_from_mem(masterdb, file, len); g_free(file); return ret; } void read_masterdb_files(struct masterdb *masterdb){ gchar *s; int ret; progress(VTEXT(T_LOAD_MASTERDB)); s = g_strconcat(tucnak_dir, "/tucnakmasters", NULL); ret = load_masterdb_from_file(masterdb, s); g_free(s); if (ret < 0){ load_masterdb_from_mem(masterdb, txt_master, sizeof(txt_master)); load_masterdb_from_mem(masterdb, txt_master1, sizeof(txt_master1)); load_masterdb_from_mem(masterdb, txt_master2, sizeof(txt_master2)); load_masterdb_from_mem(masterdb, txt_master3, sizeof(txt_master3)); load_masterdb_from_mem(masterdb, txt_master4, sizeof(txt_master4)); load_masterdb_from_mem(masterdb, txt_master5, sizeof(txt_master5)); load_masterdb_from_mem(masterdb, txt_master6, sizeof(txt_master6)); } } tucnak-4.04/src/dsp.h0000644000175000017500000000622412353752011011400 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __DSP_H #define __DSP_H #include "header.h" #ifdef HAVE_PORTAUDIO #include #endif #ifdef HAVE_SLES_OPENSLES_H #include #endif #define MAX_CHANNELS 4 enum dsp_type { DSPT_OSS, DSPT_ALSA, DSPT_SSBDx, DSPT_PORTAUDIO, DSPT_SNDFILE, DSPT_SNDPIPE }; enum dsp_cfg_group { DCG_SSBD, DCG_SDR }; struct dsp{ enum dsp_type type; /* OSS only */ #ifdef HAVE_SYS_SOUNDCARD_H char *oss_filename, *oss_mixer; int fd; int fmt_mask; int oss_format,fragment,blksize; #endif /* Alsa only */ #ifdef HAVE_ALSA snd_pcm_t *pcm; snd_pcm_format_t pcm_format; int pcm_opened; int pcm_recover; char *pcm_play, *pcm_rec; char *alsa_mixer; char *alsa_src; #endif /* Portaudio only */ #ifdef HAVE_PORTAUDIO PaStream *pa; PaStreamParameters pa_params; int pa_play, pa_rec; #endif /* OpenSL ES only */ #ifdef HAVE_SLES_OPENSLES_H SLObjectItf engineObject; SLEngineItf engineEngine; SLObjectItf outputMixObject; SLObjectItf bqPlayerObject; SLObjectItf bqPlayerBufferQueue; #endif #ifdef HAVE_SNDFILE SNDFILE *sndfile; SF_INFO *sfinfo; char *sndfile_filename; #endif int pipe[2]; int pipe_opened; int pipe_opened_for_play; /* common */ gchar *name; /* human readable string (/dev/dsp, hw:0,0) */ int channels, speed, period_time, plev, rlev; char *source; int frames; // buffer size in frames int samples; // buffer size in samples = frames * channels int bytes; // buffer size in bytes = samples * 2 int (*open)(struct dsp *dsp, int rec); int (*close2)(struct dsp *dsp); int (*write)(struct dsp *dsp, void *data, int frames); int (*read)(struct dsp *dsp, void *data, int frames); int (*reset)(struct dsp *dsp); int (*sync)(struct dsp *dsp); #ifdef HAVE_SNDFILE int (*set_format)(struct dsp *dsp, SF_INFO *sfinfo, int rec); #endif int (*set_source)(struct dsp *dsp); int (*set_plevel)(struct dsp *dsp); int (*set_sdr_format)(struct dsp *dsp, int blocksize, int speed, int rec); }; /* format: 0x10005 8 bit PCM 0x10002 16 bit PCM 0x10010 u-law 0x10011 a-law 0x10012 IMA ADPCM 0x10013 MS ADPCM 0x10020 GSM 6.1 */ struct dsp *init_dsp (enum dsp_type, enum dsp_cfg_group); void free_dsp(struct dsp *dsp); #ifdef HAVE_SNDFILE int dummy_dsp_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec); #endif int dummy_dsp_open(struct dsp *dsp, int rec); int dummy_dsp_close(struct dsp *dsp); int dummy_dsp_write(struct dsp *dsp, void *data, int len); int dummy_dsp_read(struct dsp *dsp, void *data, int len); int dummy_dsp_reset(struct dsp *dsp); int dummy_dsp_sync(struct dsp *dsp); int dummy_dsp_set_source(struct dsp *dsp); int dummy_dsp_set_plevel(struct dsp *dsp); int dummy_dsp_set_sdr_format(struct dsp *dsp, int blocksize, int speed, int rec); int dsp_write_empty(struct dsp *dsp); #endif tucnak-4.04/src/davac4.c0000644000175000017500000002211412460207027011744 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdaemon.h" #include "davac4.h" #include "fifo.h" #include "language2.h" #include "rc.h" #ifdef Z_HAVE_LIBFTDI int davac4_init(struct cwdaemon *cwda){ cwda->ftdi = NULL; MUTEX_LOCK(cwda->ftdi); davac4_open(cwda, 1); MUTEX_UNLOCK(cwda->ftdi); return 0; } int davac4_free(struct cwdaemon *cwda){ dbg("davac4_free(%p)\n", cwda); if (!cwda) return 0; if (cwda->ftdi==NULL) return 0; ftdi_free(cwda->ftdi); cwda->ftdi=NULL; return 0; } int davac4_open(struct cwdaemon *cwda, int verbose){ int ret; if (cwda->ftdi != NULL) { ret = 0; goto x; } cwda->ftdi = ftdi_new(); if (!cwda->ftdi){ if (verbose) log_addf(VTEXT(T_CANT_INIT_FTDI)); dbg("davac4_open=%d\n", 1); ret = 1; goto x; } dbg("ftdi_new=%p\n", cwda->ftdi); ret=ftdi_usb_open(cwda->ftdi, cfg->cwda_vid, cfg->cwda_pid); dbg("ftdi_usb_open cwda->ftdi=%p ret=%d\n", cwda->ftdi, ret); if (ret){ if (verbose) { log_addf(VTEXT(T_CANT_OPEN_DAVAC4), cfg->cwda_vid, cfg->cwda_pid, ret, ftdi_get_error_string(cwda->ftdi)); if (ret==-8) log_addf("Maybe try to run as root: \"adduser %s davac4\" and relogin", getenv("USER")); } davac4_free(cwda); dbg("davac4_open=%d ret=%d\n", ret); goto x; } ret=ftdi_set_baudrate(cwda->ftdi, 115200); if (ret){ if (verbose) log_addf(VTEXT(T_CANT_SET_BAUDRATE), ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); dbg("davac4_open=%d\n", ret); goto x; } //ret=ftdi_enable_bitbang(cwda->ftdi, 0xff); ret=ftdi_set_bitmode(cwda->ftdi, 0xff, BITMODE_BITBANG); if (ret){ if (verbose) log_addf(VTEXT(T_CANT_ENABLE_BITBANG), ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); dbg("davac4_open=%d\n", ret); goto x; } cwda->ftdi_state=0xff; x:; dbg("davac4_open=%d\n", ret); return ret; } int davac4_reset(struct cwdaemon *cwda){ davac4_ptt(cwda, 0); davac4_cw(cwda, 0); davac4_ssbway(cwda, 0); return 0; } int davac4_cw(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL) {// function called from worker thread, exit silently ret = 1; goto x; } if (onoff) cwda->ftdi_state &= ~0x10; else cwda->ftdi_state |= 0x10; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf(VTEXT(T_CANT_WRITE_TO_DAVAC4), ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } int davac4_ptt(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); dbg("davac4_ptt cwda->ftdi=%p\n", cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } if (onoff) cwda->ftdi_state &= ~0x04; else cwda->ftdi_state |= 0x04; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf(VTEXT(T_CANT_WRITE_TO_DAVAC4), ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } /* 0=microphone, 1=soundcard */ int davac4_ssbway(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } if (onoff) cwda->ftdi_state |= 0x01; /* soundcard */ else cwda->ftdi_state &= ~0x01; /* microphone */ ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf(VTEXT(T_CANT_WRITE_TO_DAVAC4), ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } int davac4_monitor(struct cwdaemon *cwda, int onoff){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } if (onoff) cwda->ftdi_state &= ~0x08; else cwda->ftdi_state |= 0x08; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf(VTEXT(T_CANT_WRITE_TO_DAVAC4), ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } int davac4_band (struct cwdaemon *cwda, int bandsw){ int ret; MUTEX_LOCK(cwda->ftdi); if (!cwda || cwda->ftdi == NULL){ ret=davac4_open(cwda, 0); if (ret) goto x; } cwda->ftdi_state &= ~0xe2; if (bandsw & 0x01) cwda->ftdi_state |= 0x02; if (bandsw & 0x02) cwda->ftdi_state |= 0x20; if (bandsw & 0x04) cwda->ftdi_state |= 0x40; if (bandsw & 0x08) cwda->ftdi_state |= 0x80; ret=ftdi_write_data(cwda->ftdi, &cwda->ftdi_state, 1); if (ret!=1){ log_addf(VTEXT(T_CANT_WRITE_TO_DAVAC4), ret, ftdi_get_error_string(cwda->ftdi)); davac4_free(cwda); goto x; } x:; MUTEX_UNLOCK(cwda->ftdi); return ret; } #define DUMP_EEPROMx void usb_info(GString *gs){ int ret; struct ftdi_context ftdi; struct ftdi_device_list *list, *dev; int ids[] = {0x0403, 0x6001, 0xA600, 0xE110, 0xA600, 0xE111, 0xA600, 0xE112, 0xA600, 0xE113, 0xA600, 0xE114, 0x04D8, 0xFB56, // FUNcube Dongle 0x04D8, 0xFB31, // FUNcube Dongle Pro+ 0}; int idi; #ifdef Z_HAVE_FTDI_USB_GET_STRINGS char manufacturer[128], description[128]; char serial[128]; #endif #ifdef DUMP_EEPROM unsigned char eeprom_buf[128]; #endif g_string_sprintfa(gs, "\n usb_info:\n"); ret = ftdi_init(&ftdi); if (ret < 0) { g_string_sprintfa(gs, "error calling ftdi_init, error=%d %s", ret, ftdi_get_error_string(&ftdi)); return; } for (idi = 0; ids[idi] != 0; idi += 2){ ret = ftdi_usb_find_all(&ftdi, &list, ids[idi], ids[idi+1]); if (ret < 0) { g_string_sprintfa(gs, "error calling ftdi_usb_find_all, error=%d %s\n", ret, ftdi_get_error_string(&ftdi)); return; } if (ret == 0) continue; for (dev = list; dev != NULL; dev = dev->next){ g_string_sprintfa(gs, "%04x:%04x ", dev->dev->descriptor.idVendor, dev->dev->descriptor.idProduct); #ifdef Z_HAVE_FTDI_USB_GET_STRINGS ret = ftdi_usb_get_strings(&ftdi, dev->dev, manufacturer, 128, description, 128, serial, 128); if (ret < 0){ g_string_sprintfa(gs, "Can't get strings, error=%d %s\n", ret, ftdi_get_error_string(&ftdi)); }else{ g_string_sprintfa(gs, "%s %s ", manufacturer, description); if (strlen(serial)>0 && serial[0]!='?') g_string_sprintfa(gs, "%s ", serial); } #endif if (ids[idi] == 0x04D8){ g_string_sprintfa(gs, "\n"); continue; } ret = ftdi_usb_open_dev(&ftdi, dev->dev); if (ret < 0){ g_string_sprintfa(gs, "Can't open device, error=%d %s\n", ret, ftdi_get_error_string(&ftdi)); }else{ g_string_append(gs, "Open OK "); #ifdef DUMP_EEPROM ret = ftdi_read_eeprom(&ftdi, eeprom_buf); if (ret < 0){ g_string_sprintfa(gs, "Can't open device, error=%d %s\n", ret, ftdi_get_error_string(&ftdi)); }else{ int i; unsigned short chksum_in_eeprom, chksum_computed; for (i=0; i<128; i++){ g_string_sprintfa(gs, "%02x ", (unsigned char)eeprom_buf[i]); if (i%16==15) g_string_sprintfa(gs, "\n"); } chksum_in_eeprom = eeprom_buf[0x7e] + 256 * eeprom_buf[0x7f]; chksum_computed = ftdi_checksum(eeprom_buf, 0x80); g_string_sprintfa(gs, "Checksum eeprom=%04x computed=%04x ", chksum_in_eeprom, chksum_computed); } #endif ftdi_usb_close(&ftdi); } g_string_sprintfa(gs, "\n"); } } ftdi_list_free(&list); ftdi_deinit(&ftdi); } // taken from libftdi // calculate checksum unsigned short ftdi_checksum(unsigned char *eeprom, int eeprom_size){ int i; unsigned short value, checksum = 0xAAAA; for (i = 0; i < eeprom_size/2-1; i++) { value = eeprom[i*2]; value += eeprom[(i*2)+1] << 8; checksum = value^checksum; checksum = (checksum << 1) | (checksum >> 15); } return checksum; } #endif tucnak-4.04/src/dwdb.c0000644000175000017500000007124212500546056011533 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdb.h" #include "dwdb.h" #include "fifo.h" #include "inputln.h" #include "main.h" #include "namedb.h" #include "qrvdb.h" #include "qsodb.h" #include "session.h" #include "stats.h" #include "tregex.h" #include "tsdl.h" struct dw *dw; static gchar *dw_next; /* wwl1 */ static gchar *wd_next; /* dxc1 */ struct dw *init_dw(void){ struct dw *dw; progress(VTEXT(T_INIT_DWDB)); dw = g_new0(struct dw,1 ); dw->pd = g_hash_table_new(g_str_hash, g_str_equal); dw->dw = g_hash_table_new(g_str_hash, g_str_equal); dw->wd = g_hash_table_new(g_str_hash, g_str_equal); dw_next = NULL; wd_next = NULL; return dw; } static gboolean free_dw_item(gpointer key, gpointer value, gpointer user_data){ struct dw_item *dwi; g_free(key); dwi = (struct dw_item *)value; if (dwi->wwl0) g_free(dwi->wwl0); if (dwi->wwl1) g_free(dwi->wwl1); if (dwi->continent) g_free(dwi->continent); if (dwi->dxcname) g_free(dwi->dxcname); g_hash_table_foreach_remove(dwi->wwls, free_gpointer_item, NULL); g_hash_table_destroy(dwi->wwls); g_free(value); return FALSE; } static gboolean free_wd_item(gpointer key, gpointer value, gpointer user_data){ struct wd_item *wdi; g_free(key); wdi = (struct wd_item *)value; if (wdi->dxc0) g_free(wdi->dxc0); if (wdi->dxc1) g_free(wdi->dxc1); g_free(value); return FALSE; } void free_dw(struct dw *dw){ progress(VTEXT(T_FREE_DWDB)); g_hash_table_foreach_remove(dw->pd, free_gpointer_item, NULL); g_hash_table_destroy(dw->pd); g_hash_table_foreach_remove(dw->dw, free_dw_item, NULL); g_hash_table_destroy(dw->dw); g_hash_table_foreach_remove(dw->wd, free_wd_item, NULL); g_hash_table_destroy(dw->wd); g_free(dw); } gint get_pd_size(struct dw *dw){ return g_hash_table_size(dw->pd); } gint get_dw_size(struct dw *dw){ return g_hash_table_size(dw->dw); } gint get_wd_size(struct dw *dw){ return g_hash_table_size(dw->wd); } #define DW_DELIM " \t\r\n" void add_pd(struct dw *dw, gchar *prefix, gchar *dxc){ gpointer orig_prefix, orig_dxc; // dbg("add_pd(prefix='%s', dxc='%s'\n", prefix, dxc ); if (g_hash_table_lookup_extended(dw->pd, (gpointer) prefix, &orig_prefix, &orig_dxc)){ g_hash_table_remove(dw->pd, orig_prefix); g_free(orig_prefix); g_free(orig_dxc); } g_hash_table_insert(dw->pd, g_strdup(prefix), g_strdup(dxc) ); } struct dw_item *add_dxc(struct dw *dw, gchar *dxc, gchar *wwl0, gchar *wwl1, int waz, int itu, gchar *continent, gchar *dxcname, double latitude, double longitude){ struct dw_item *dxci; // dbg("add_dxc(dxc='%s', wwl='%s' '%s')\n",dxc, wwl0, wwl1); dxci = (struct dw_item*)g_hash_table_lookup(dw->dw, dxc); if (!dxci) { dxci = g_new0(struct dw_item, 1); dxci->wwls = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(dw->dw, g_strdup(dxc), dxci); } if (dxci->wwl0 && wwl0) { g_free(dxci->wwl0); dxci->wwl0 = NULL; } if (dxci->wwl1 && wwl1) { g_free(dxci->wwl1); dxci->wwl1 = NULL; } dxci->wwl0 = g_strdup(wwl0); dxci->wwl1 = g_strdup(wwl1); if (waz) dxci->waz = waz; if (itu) dxci->itu = itu; if (continent) dxci->continent = g_strdup(continent); if (dxcname) dxci->dxcname = g_strdup(dxcname); if (longitude < 400) dxci->longitude = longitude; if (latitude < 400) dxci->latitude = latitude; return dxci; } void add_dw(struct dw_item *dxci, gchar *dxc, gchar *wwl){ gpointer orig_wwl, orig_dxc; char wwl1[6]; if (!wwl) return; if (g_hash_table_lookup_extended(dxci->wwls, (gpointer) wwl, &orig_wwl, &orig_dxc)){ g_hash_table_remove(dxci->wwls, orig_wwl); g_free(orig_wwl); g_free(orig_dxc); } safe_strncpy(wwl1, wwl, 5); /*dbg("add_dw(dxc='%s', wwl='%s')\n", dxc, wwl1);*/ g_hash_table_insert(dxci->wwls, g_strdup(wwl1), g_strdup(dxc) ); } void add_wd(struct dw *dw, gchar *wwl, gchar *dxc){ struct wd_item *wdi; if (!wwl || !dxc) return; /*dbg("add_wd(wwl='%s', dxc='%s') size=%d \n",wwl, dxc, g_hash_table_size(dw->wd));*/ wdi = g_hash_table_lookup(dw->wd, wwl); if (!wdi){ wdi = g_new0(struct wd_item, 1); g_hash_table_insert(dw->wd, g_strdup(wwl), wdi); /* dbg(" adding wwl '%s' \n", wwl);*/ } if (!wdi->dxc0) { wdi->dxc0 = g_strdup(dxc); /*dbg(" adding dxc0 '%s' \n", wdi->dxc0);*/ return; } if (!wdi->dxc1) { wdi->dxc1 = g_strdup(dxc); /* dbg(" adding dxc1 '%s' \n", wdi->dxc1);*/ return; } return; } int load_dw_from_file(struct dw *dw, gchar *filename){ FILE *f; long int len; gchar *file; int ret; size_t r; /*dbg("load_dw_from_file(%s, rt)\n", filename);*/ f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n",filename);*/ return -1; } if (fseek(f, 0L, SEEK_END)<0){ fclose(f); return -1; } len=ftell(f); if (len<0 || len>0x10000000) { /* g_new can allocate only gsize=unisgned int */ fclose(f); return -1; } if (fseek(f, 0L, SEEK_SET)<0){ fclose(f); return -1; } file=g_new(gchar, len); r=fread(file, 1, len, f); fclose(f); if (r!=len) return -1; ret=load_dw_from_mem(dw, file, len); g_free(file); return ret; } int load_dw_from_mem(struct dw *dw, const char *file, const long int len){ GString *pref, *wwls, *centers; gchar *dxc, *prefix, *wwl, *c0, *c1; struct dw_item *dxci; char *token_ptr; long int pos; pref = g_string_sized_new(100); wwls = g_string_sized_new(100); centers = g_string_sized_new(100); pos=0; while(1){ do { if (!zfile_mgets(pref, file, &pos, len, 1)) goto abort; }while (pref->len==0); dxc = strtok_r(pref->str, DW_DELIM, &token_ptr); if (!dxc) continue; add_pd(dw, dxc, dxc); while ((prefix=strtok_r(NULL, DW_DELIM, &token_ptr))!=NULL){ add_pd(dw, prefix, dxc); } if (!zfile_mgets(wwls, file, &pos, len, 1)) break; if (!wwls->len) continue; if (!zfile_mgets(centers, file, &pos, len, 1)) break; if (centers->len) c0 = strtok_r(centers->str, DW_DELIM, &token_ptr); else c0 = strtok_r(wwls->str, DW_DELIM, &token_ptr); c1 = strtok_r(NULL, DW_DELIM, &token_ptr); dxci = add_dxc(dw, dxc, c0, c1, 0, 0, NULL, NULL, 404, 404); add_dw(dxci, dxc, c0); add_dw(dxci, dxc, c1); add_wd(dw, c0, dxc); add_wd(dw, c1, dxc); if (centers->len){ c0 = strtok_r(wwls->str, DW_DELIM, &token_ptr); add_dw(dxci, dxc, c0); add_wd(dw, c0, dxc); } while((wwl = strtok_r(NULL, DW_DELIM, &token_ptr))!=NULL){ add_dw(dxci, dxc, wwl); add_wd(dw, wwl, dxc); } } abort:; g_string_free(pref, 1); g_string_free(wwls, 1); g_string_free(centers, 1); return 0; } #define CTY_DELIM ":" #define PREF_DELIM "," int load_cty_from_file(struct dw *dw, gchar *filename){ FILE *f; long int len; gchar *file; int ret; size_t r; f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n",filename);*/ return -1; } if (fseek(f, 0L, SEEK_END)<0){ fclose(f); return -1; } len=ftell(f); if (len<0 || len>0x10000000) { /* g_new can allocate only gsize=unisgned int */ fclose(f); return -1; } if (fseek(f, 0L, SEEK_SET)<0){ fclose(f); return -1; } file=g_new(gchar, len); r=fread(file, 1, len, f); fclose(f); if (r!=len) return -1; ret=load_cty_from_mem(dw, file, len); g_free(file); return ret; } int load_cty_from_mem(struct dw *dw, const char *file, const long int len){ GString *gs, *gs_next; gchar **line, **prefs, *continent; int i, waz, itu; gchar *dxc, *dxcname; char wwl4[6]; long int pos; double latitude, longitude; gs = g_string_sized_new(100); gs_next = g_string_sized_new(100); pos=0; while(1){ if (gs_next->len>0){ g_string_assign(gs, gs_next->str); }else{ if (!zfile_mgets(gs, file, &pos, len, 0)) break; } while(1){ if (!zfile_mgets(gs_next, file, &pos, len, 0)){ g_string_truncate(gs_next,0); /* next safe_mgets breaks loop */ break; } if (gs_next->str[0]==' '){ g_string_append(gs, gs_next->str); }else{ break; } } line = g_strsplit(gs->str, CTY_DELIM, 9); for (i=0;i<9;i++) { if (line[i] ==NULL){ break; } } if (i!=9) { g_strfreev(line); continue; } g_strstrip(line[0]); dxcname = line[0]; g_strstrip(line[1]); waz = atoi(line[1]); g_strstrip(line[2]); itu = atoi(line[2]); g_strstrip(line[3]); continent = line[3]; g_strstrip(line[4]); latitude = atof(line[4]); g_strstrip(line[5]); longitude = - atof(line[5]); g_strstrip(line[7]); g_strstrip(line[8]); dxc=line[7]; if (dxc[0]=='*') dxc++; // strip leading star, TNX to DL5YBZ /*slash = strchr(dxc, '/'); if (slash) { *slash = '\0'; slash++;; } */ z_str_uc(dxc); //dbg("dxc='%s'\n", dxc); if (!dxc || !*dxc) { g_strfreev(line); continue; } add_pd(dw, dxc, dxc); /* dbg("h=%s, w=%s, d=%s, p=%s\n", line[5], line[6], line[7], line[8]);*/ prefs = g_strsplit(line[8], PREF_DELIM, 0); for (i=0; prefs[i]!=NULL; i++){ char *c; g_strstrip(prefs[i]); if (strchr(prefs[i],'/')) continue; if ((c=strchr(prefs[i],'('))!=NULL) *c='\0'; if ((c=strchr(prefs[i],'['))!=NULL) *c='\0'; if ((c=strchr(prefs[i],';'))!=NULL) *c='\0'; if (strlen(prefs[i])>2 && !isdigit(prefs[i][ strlen(prefs[i])-1])) continue; /*dbg("\t'%s'", prefs[i]); */ add_pd(dw, prefs[i], dxc); } g_strfreev(prefs); /*dbg("\n");*/ compute_wwl4(wwl4, -atof(line[5]), atof(line[4])); /*dbg("h=%s, w=%s, d=%s, wwl4=%s \n", line[4], line[5], line[7], wwl4);*/ add_dxc(dw, dxc, wwl4, NULL, waz, itu, continent, dxcname, latitude, longitude); g_strfreev(line); } g_string_free(gs, 1); g_string_free(gs_next, 1); return 0; } void read_dw_files(struct dw *dw){ gchar *s; int ret; progress(VTEXT(T_LOAD_DWDB)); s = g_strconcat(tucnak_dir, "/cty.dat", NULL); ret=load_cty_from_file(dw, s); g_free(s); if (ret<0){ GString *gs = g_string_new(""); g_string_append(gs, txt_cty); g_string_append(gs, txt_cty1); load_cty_from_mem(dw, gs->str, gs->len); g_string_free(gs, TRUE); } s = g_strconcat(tucnak_dir, "/tucnakdw", NULL); ret=load_dw_from_file(dw, s); g_free(s); if (ret<0){ load_dw_from_mem(dw, txt_tucnakdw, sizeof(txt_tucnakdw)); } } struct dw_item *get_dw_item_by_call(struct dw *dw, const char *call){ char dxcc[25]; get_dxcc(dw, dxcc, call); return (struct dw_item *)g_hash_table_lookup(dw->dw, dxcc); } int wwl_is_ok_by_call(struct dw *dw, gchar *wwl, gchar *call){ struct dw_item *dxci; char swwl[5]; if (!wwl || !call) return 1; /*dbg("dxcc=%s\n", dxcc);*/ dxci = get_dw_item_by_call(dw, call); if (!dxci) { /* dbg("can't find dxcc (%s) for call %s \n", dxcc, call);*/ return 0; } safe_strncpy(swwl, wwl, 5); if (g_hash_table_lookup(dxci->wwls, swwl)){ /* dbg("is OK\n"); */ return 1; } /* dbg("loc not found\n");*/ return 0; } /* 0=OK 1=WARN, known call from unknown locator 2=ERR, prefix and big wwl dont match 256=WARN, suspicious call 257=ERR, suspicious call */ int get_susp(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl, int ambig){ int susp=0; gchar *wwl0, *wwl1; /*dbg("get_susp('%s', '%s')\n", call, wwl);*/ if (!call || !wwl || !*call || !*wwl) return 0; if (!wwl_is_ok_by_call(dw, wwl, call)) { susp=2; /* bad country */ goto skip; } wwl0=find_wwl_by_call(cw, call); wwl1=find_wwl_by_call(cw, NULL); if (wwl0!=NULL){ /* we don't know this call, cannot be suspicious */ susp = 1; if (wwl0 && strcasecmp(wwl0, wwl)==0) susp = 0; if (wwl1 && strcasecmp(wwl1, wwl)==0) susp = 0; } skip:; if (ambig) if (get_susp_ambiguous_call(cw, NULL, call, wwl, NULL, 1)) susp|=0x100; /* dbg(" ret=%d\n", susp);*/ return susp; } int get_susp_call(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl){ int susp; char s[40]; //dbg("get_susp_call('%s', '%s')\n", call, wwl); if (!call || !*call){ /* pokud je vsechno NULL nebo "", tak get_susp skonci s nulou a test s /P pokracuje */ return 0; } susp=get_susp(cw, dw, call, wwl, 1); if (susp) return 1; /* get_susp muze vratit 0x100 a co bysme s tim delali */ z_get_raw_call(s, call); if (strcmp(s, call)==0){ /* without /p */ strcat(s, "/P"); //dbg("without %s", s); if (find_wwl_by_call(cw, s)) { //dbg(" SUSP"); susp=1; /* call is without /p and in C_W exists call with /p */ } }else{ /* call is with /p */ //dbg("with %s", s); if (find_wwl_by_call(cw, s)) { //dbg(" SUSP"); susp=1; /* call is with /p and in C_W exists call without /p */ } } if (wwl && *wwl) susp=get_susp_ambiguous_call(cw, NULL, call, wwl, NULL, 1); //dbg(" ret=%d\n", susp); return susp; } int get_susp_loc(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl){ return get_susp(cw, dw, call, wwl, 0); } #define ADDQSO if (!err) { \ if (qso->time_str){ \ g_string_sprintfa(gs, "%s %s %c%c.%c%c\n", qso->callsign?qso->callsign:"?", qso->locator?qso->locator:"?", qso->time_str[0], qso->time_str[1], qso->time_str[2], qso->time_str[3]); \ }else{ \ g_string_sprintfa(gs, "%s %s\n", qso->callsign?qso->callsign:"?", qso->locator?qso->locator:"?"); \ }err=1;} enum suspcall qso_info(struct qso *qso, GString *gs, GString *gs2){ char s[40],s1[40], raw[40]; int err, susp, k; enum suspcall ret; char *wwl0, *wwl1; struct band *b; struct qso *q; int i,j; ret=SUSP_NONE; if (!qso) return (enum suspcall)-1; if (qso->error) return (enum suspcall)-1; if (qso->dupe) return (enum suspcall)-1; err=0; /*if (qso->band && qso->band->stats && qso->band->stats->nqsos > 0){ if (qso->qsop > qso->band->stats->nqsop/qso->band->stats->nqsos) if (ret < SUSP_QRB) ret = SUSP_QRB; } */ if (qso->remark && *qso->remark) { if (ret < SUSP_REM) ret = SUSP_REM; } if (!find_name_by_call(namedb, qso->callsign) && !find_wwl_by_call(cw, qso->callsign)){ if (gs){ ADDQSO; g_string_append(gs, VTEXT(T_CALLSIGN_UNKNOWN)); } if (ret < SUSP_WARN) ret = SUSP_WARN; } if (qso->mode == MOD_SSB_CW || qso->mode == MOD_CW_SSB){ if (gs){ ADDQSO; g_string_append(gs, VTEXT(T_CROSSMODE_QSO_N)); } if (ret < SUSP_WARN) ret = SUSP_WARN; } if (!get_dw_item_by_call(dw, qso->callsign)){ if (gs){ ADDQSO; g_string_append(gs, VTEXT(T_UNKNOWN_DXCC_PREFIXN)); } if (ret < SUSP_ERR) ret = SUSP_ERR; } if (qso->locator && *qso->locator){ if (!wwl_is_ok_by_call(dw, qso->locator, qso->callsign)){ if (gs){ ADDQSO; g_string_append(gs, VTEXT(T_PREFIX_AND_BIG_WWL)); } if (ret < SUSP_ERR) ret = SUSP_ERR; } } wwl0=find_wwl_by_call(cw, qso->callsign); wwl1=find_wwl_by_call(cw, NULL); susp=0; if (wwl0!=NULL){ /* we don't know this call, cannot be suspicious */ susp = 1; if (wwl0 && qso->locator && strcasecmp(wwl0, qso->locator)==0) susp = 0; if (wwl1 && qso->locator && strcasecmp(wwl1, qso->locator)==0) susp = 0; } if (qso->locator && *qso->locator){ if (susp){ if (gs){ ADDQSO; g_string_append(gs, VTEXT(T_KNOWN_CALL_UNK_LOC)); } if (ret < SUSP_WARN) ret = SUSP_WARN; } } z_get_raw_call(raw, qso->callsign); strcpy(s, raw); if (strcmp(s, qso->callsign)==0){ /* without /p */ strcpy(s1, s); strcat(s, "/P"); if (find_wwl_by_call_newer(cw, s, cw->minstamp)) { if (gs){ ADDQSO; g_string_append(gs, VTEXT(T_CALL_WITHOUT_P)); } if (ret < SUSP_WARN) ret = SUSP_WARN; } strcat(s1, "/"); for (k=0;k<=9;k++){ strcpy(s, s1); s[strlen(s)+1]='\0'; s[strlen(s)]='0'+k; if (find_wwl_by_call_newer(cw, s, cw->minstamp)) { if (gs){ ADDQSO; g_string_sprintfa(gs, VTEXT(T_CALL_WITHOUT_D), k, k); } if (ret < SUSP_WARN) ret = SUSP_WARN; } } }else{ /* call is with /p */ if (find_wwl_by_call_newer(cw, s, cw->minstamp)) { if (gs){ ADDQSO; g_string_append(gs, VTEXT(T_CALL_IS_WITH_P_AND)); } if (ret < SUSP_WARN) ret = SUSP_WARN; } } if (qso->locator != NULL && gs2){ g_string_truncate(gs2, 0); get_susp_ambiguous_call(cw, qso->band, qso->callsign, qso->locator, gs2, 1); if (gs2->len>0){ if (gs){ ADDQSO; g_string_sprintfa(gs, VTEXT(T_OTHER_SIMILAR_CALL_KNOWN), gs2->str); } if (ret < SUSP_WARN) ret = SUSP_WARN; } } if (ctest){ for (i=0; ibands->len; i++){ b = (struct band*)g_ptr_array_index(ctest->bands, i); if (b == qso->band) continue; for (j=0; jqsos->len; j++){ q = (struct qso *)g_ptr_array_index(b->qsos, j); if (q->error || q->dupe) continue; z_get_raw_call(s, q->callsign); /*if (q->callsign[0]=='D' && q->callsign[1]=='M' && q->callsign[2]=='7'){ dbg("call %s %s %s %d\n", q->callsign, s, raw, strcmp(s, raw)); } */ if (strcmp(s, raw) != 0) continue; /* not same station */ /*dbg("RAW match %s %s\n", s, raw);*/ if (strcmp(q->callsign, qso->callsign) != 0){ if (gs){ ADDQSO; g_string_sprintfa(gs, VTEXT(T_CALL_ON_BAND_S), b->bandname, q->callsign); } if (ret < SUSP_WARN) ret = SUSP_WARN; } if (qso->locator != NULL && strcmp(q->locator, qso->locator) != 0){ if (gs){ ADDQSO; g_string_sprintfa(gs, VTEXT(T_LOCATOR_ON_BAND), b->bandname, q->locator); } if (ret < SUSP_WARN) ret = SUSP_WARN; } } } } return ret; } void menu_qso_check(void *arg){ GString *gs, *gs2; struct band *band; struct qso *qso; int i,j,ret; FILE *f; char *filename; if (!ctest) return; gs=g_string_sized_new(10000); gs2=g_string_sized_new(1000); g_string_sprintf(gs, "%s", VTEXT(T_QSO_CHECK_LIST)); g_string_sprintfa(gs, " *************************\n"); g_string_sprintfa(gs, "\n\n"); g_string_sprintfa(gs, VTEXT(T_CALL_SN), ctest->pcall); g_string_sprintfa(gs, VTEXT(T_CONTEST_SN), ctest->tname); g_string_sprintfa(gs, VTEXT(T_DATE_SN), ctest->tdate); g_string_sprintfa(gs, "\n\n"); for (i=0;ibands->len;i++){ band = (struct band *)g_ptr_array_index(ctest->bands, i); progress(VTEXT(T_CHECKING_S), band->bandname); g_string_sprintfa(gs, VTEXT(T_BAND_C_SN), band->bandchar, band->pband); g_string_sprintfa(gs, " ********************\n"); for (j=0;jqsos->len;j++){ qso = (struct qso *)g_ptr_array_index(band->qsos, j); ret=qso_info(qso, gs, gs2); if (ret) g_string_sprintfa(gs, "\n"); if (ret>=0) qso->suspcall1=(enum suspcall)ret; } } g_string_sprintfa(gs, "\n\nEOF\n"); filename = g_strdup_printf("%s/qsocheck.txt", ctest->directory); z_wokna(filename); f=fopen(filename,"wt"); if (!f) { log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); g_string_free(gs, TRUE); g_string_free(gs2, TRUE); progress(NULL); return; } ret=fwrite(gs->str, 1, gs->len, f); fclose(f); if (ret!=gs->len){ log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); g_string_free(gs, TRUE); g_string_free(gs2, TRUE); progress(NULL); return; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, TRUE); g_string_free(gs2, TRUE); progress(NULL); return; } void call_info_map(struct dialog_data *dlg, struct dialog_item_data *di){ GString *gs = g_string_new("http://qthlocator.free.fr/index.php?locator="); g_string_append(gs, di->item->text); z_browser(gs->str); g_string_free(gs, TRUE); } struct memory_list *call_info_ml = NULL; void call_info_wwl(gpointer key, gpointer value, gpointer data){ add_to_ml(&call_info_ml, g_strdup((char*)key), NULL); } void call_info(void *arg){ struct qso *qso=NULL; GString *gs, *gs2; static char ss[1024]; int err,freeqso,i; char *title, *c, *txt; char raw[30]; struct qrv_item *qi; struct dw_item *dwi; GHashTable *wwls; int wwlcnt; gs=g_string_sized_new(500); gs2=g_string_sized_new(500); wwls = g_hash_table_new(g_str_hash, g_str_equal); err=0; freeqso=0; /* dbg("TMPQ.callsign=%s %p\n", TMPQ.callsign, aband);*/ if (arg != NULL){ qso = (struct qso *)arg; qso_info(qso, gs, gs2); }else if (strlen(INPUTLN(aband)->cdata) > 0){ qso=g_new0(struct qso, 1); qso->callsign = INPUTLN(aband)->cdata; /* foreign key */ qso->locator = NULL; qso->rsts = ""; qso->qsonrs = ""; qso->rstr = ""; qso->qsonrr = ""; qso_info(qso, gs, gs2); freeqso=1; }else if (aband && (!TMPQ.callsign || !strlen(TMPQ.callsign))){ if (aband->qsos->len<=0) goto x; qso=(struct qso *)g_ptr_array_index(aband->qsos, aband->qsos->len-1); qso_info(qso, gs, gs2); }else if (aband){ /* tmpqso is valid */ qso=g_new0(struct qso, 1); qso->callsign = TMPQ.callsign; /* foreign keys */ qso->locator = TMPQ.locator?TMPQ.locator:""; qso->rsts = TMPQ.rsts?TMPQ.rsts:""; qso->qsonrs = TMPQ.qsonrs?TMPQ.qsonrs:""; qso->rstr = TMPQ.rstr?TMPQ.rstr:""; qso->qsonrr = TMPQ.qsonrr?TMPQ.qsonrr:""; qso_info(qso, gs, gs2); freeqso=1; }else{ goto x; } if (gs->len>0){ title=VTEXT(T_CALL_INFO); }else{ ADDQSO; g_string_append(gs, VTEXT(T_SEEMS_TO_BE_OK)); safe_strncpy(ss, gs->str, sizeof(ss)); title=VTEXT(T_OK); } /* next callsign info */ g_string_append(gs, "\n"); /* C_W */ z_get_raw_call(raw, qso->callsign); g_string_truncate(gs2, 0); cwdb_call_info(gs2, qso->callsign, "", wwls); cwdb_call_info(gs2, qso->callsign, "/P", wwls); for (i=0;i<=9;i++){ char stroke[10]; sprintf(stroke, "/%d", i); cwdb_call_info(gs2, qso->callsign, stroke, wwls); } if (gs2->len>0){ g_string_append(gs, gs2->str); }else{ g_string_sprintfa(gs, VTEXT(T_CW_NOT_FOUND), qso->callsign); } /* wkd */ if (ctest){ g_string_append(gs, "WKD on: "); for (i = 0; i < ctest->bands->len; i++){ struct band *b = (struct band*) g_ptr_array_index(ctest->bands, i); if (get_qso_by_callsign(b, qso->callsign)) g_string_append_c(gs, toupper(b->bandchar)); } g_string_append_c(gs, '\n'); } /* qrv */ qi = qrv_get(qrv, qso->callsign); g_string_sprintfa(gs, "QRV: "); if (qi){ // g_string_sprintfa(gs, " %s", qi->wwl); if (aband){ g_string_sprintfa(gs, " %dx", qi->wkd[aband->bandchar - 'a']); } if (qi->kst_time != 0){ struct tm utc; gmtime_r(&qi->kst_time, &utc); g_string_sprintfa(gs, " %2d:%02d", utc.tm_hour, utc.tm_min); } }else{ g_string_append(gs, VTEXT(T_0X_NOT_IN_DB)); } g_string_append_c(gs, '\n'); /* namedb */ c=find_name_by_call(namedb, qso->callsign); if (c){ g_string_sprintfa(gs, VTEXT(T_NAME_IS), qso->callsign, c); }else{ g_string_sprintfa(gs, VTEXT(T_NAME_UNKNOWN), qso->callsign); } /* dxcc */ dwi = get_dw_item_by_call(dw, qso->callsign); if (dwi){ char dxcc[32]; get_dxcc(dw, dxcc, qso->callsign); g_string_sprintfa(gs, "DXCC: %s %s\n", dxcc, dwi->dxcname); } txt = g_strdup(gs->str); call_info_ml = getml(txt, NULL); /* locator itself */ if (regcmp(qso->callsign,"^[A-R]{2}[0-9]{2}[A-X]{2}$") == 0){ char *loc = qso->callsign; if (g_hash_table_lookup(wwls, loc) == NULL) { loc = g_strdup(loc); g_hash_table_insert(wwls, loc, NULL); add_to_ml(&call_info_ml, loc, NULL); } } g_hash_table_foreach(wwls, call_info_wwl, NULL); wwlcnt = g_hash_table_size(wwls); if (wwlcnt > 3) wwlcnt = 3; msg_box(call_info_ml, title, AL_LEFT, txt, NULL, 1 + wwlcnt, VTEXT(T_OK), NULL, B_ENTER | B_ESC, call_info_ml->p[1 + 0], call_info_map, 0, call_info_ml->p[1 + 1], call_info_map, 0, call_info_ml->p[1 + 2], call_info_map, 0); x:; g_string_free(gs, TRUE); g_string_free(gs2, TRUE); g_hash_table_destroy(wwls); if (freeqso) g_free(qso); } gchar *find_wwl_by_dxc(struct dw *dw, gchar *dxc){ struct dw_item *dxci; if (!dxc) return dw_next; dw_next = NULL; dxci = (struct dw_item *)g_hash_table_lookup(dw->dw, dxc); if (!dxci) return NULL; dw_next = dxci->wwl1; return dxci->wwl0; } gchar *find_dxc_by_wwl(struct dw *dw, gchar *wwl){ struct wd_item *wdi; char s[10]; if (!wwl) return wd_next; wd_next = NULL; safe_strncpy(s, wwl, 10); if (strlen(s)>4) s[4]='\0'; wdi = (struct wd_item *)g_hash_table_lookup(dw->wd, s); if (!wdi) return NULL; wd_next = wdi->dxc1; return wdi->dxc0; } char *get_dxcc(struct dw *dw, char *buf, const char *call){ char *c0, *c1, *c2, *dxc; char s[100], *stroke = NULL; c0=c1=c2=NULL; safe_strncpy0(buf, call, 20); if (regmatch(call, "^(.*[0-9])[A-Z]*(/[A-Z])?", &c0, &c1, &c2, NULL)==0){ // dbg("\n%s '%s' '%s' '%s'\n", call, c0, c1, c2); safe_strncpy0(buf, c1, 20); if (c2 != NULL){ stroke = c2; } while (*buf!='\0'){ safe_strncpy0(s, buf, 20); if (stroke) strcat(s, stroke); // dbg("trying1 '%s'\n", s); dxc = (gchar *)g_hash_table_lookup(dw->pd, s); if (dxc) { // dbg("get_dxcc(%s)='%s'\n", call, s); safe_strncpy0(buf, dxc, 20); goto found; } buf[strlen(buf)-1]='\0'; } safe_strncpy0(buf, c1, 20); while (*buf!='\0'){ safe_strncpy0(s, buf, 20); // dbg("trying2 '%s'\n", s); dxc = (gchar *)g_hash_table_lookup(dw->pd, s); if (dxc) { // dbg("get_dxcc(%s)='%s'\n", call, s); safe_strncpy0(buf, dxc, 20); goto found; } buf[strlen(buf)-1]='\0'; } safe_strncpy0(buf, call, 20); } found:; if (c0) g_free(c0); if (c1) g_free(c1); if (c2) g_free(c2); dxc = (gchar *)g_hash_table_lookup(dw->pd, buf); if (dxc) safe_strncpy0(buf, dxc, 20); // dbg("get_dxcc(%s)='%s'\n", call, buf); return buf; } char *get_pref(char *buf, char *call){ char *c0, *c1; c0=c1=NULL; safe_strncpy0(buf, call, 20); if (regmatch(call, "^(.*[0-9])[A-Z]*", &c0, &c1, NULL)==0){ safe_strncpy0(buf, c1, 20); } if (c0) g_free(c0); if (c1) g_free(c1); dbg("get_pref(%s)='%s'\n", call, buf); return buf; } tucnak-4.04/src/state.c0000644000175000017500000001550612230170432011723 00000000000000/* Tucnak - VHF contest log Copyright (C) 2013 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "state.h" #include "dxc.h" #include "edi.h" #include "inputln.h" #include "kst.h" #include "subwin.h" #include "qsodb.h" struct state *init_state(void){ struct state *state = g_new0(struct state, 1); state->hash = g_hash_table_new(g_str_hash, g_str_equal); return state; } void free_state(struct state *state){ zg_hash_free(state->hash); g_free(state); } void state_putstr(struct state *state, char *key, char *val){ g_hash_table_insert(state->hash, key, val); } void state_dupstr(struct state *state, const char *key, const char *val){ // dbg("state_dupstr 1 state=%p hash=%p key=%p val=%p\n", state, state->hash, key, val); // dbg("state_dupstr 2 \n"); g_hash_table_insert(state->hash, g_strdup(key), g_strdup(val)); // dbg("state_dupstr 3\n"); } const char *state_getstr(struct state *state, const char *key){ const char *c = (const char*)g_hash_table_lookup(state->hash, key); if (!c) return ""; return c; } void state_test(struct state *state){ int i, j ; state_dupstr(state, "gln_cdata", "GSES INPUTLN"); state_dupstr(state, "ctest", "20130610.1"); state_dupstr(state, "aband", "10 GHz"); state_dupstr(state, "ontop", "3"); for (i = 0; i < cfg->bands->len; i++){ struct config_band *b = (struct config_band *)g_ptr_array_index(cfg->bands, i); state_putstr(state, g_strdup_printf("band%c_il_cdata", z_char_lc(b->bandchar)), g_strdup_printf("Band %c inputln", z_char_lc(b->bandchar))); state_putstr(state, g_strdup_printf("band%c_il_hlen", z_char_lc(b->bandchar)), g_strdup("3")); for (j = 0; j < 3; j++){ state_putstr(state, g_strdup_printf("band%c_il_h%d", z_char_lc(b->bandchar), j), g_strdup_printf("Band %c inputln history %d", z_char_lc(b->bandchar), j)); } } for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->il){ state_putstr(state, g_strdup_printf("sw%d_il_cdata", i+1), g_strdup_printf("Subwin %d inputline", i+1)); state_putstr(state, g_strdup_printf("sw%d_il_hlen", i+1), g_strdup("4")); for (j = 0; j < 4; j++){ state_putstr(state, g_strdup_printf("sw%d_il_h%d", i+1, j), g_strdup_printf("Subwin %d inputln history %d", i+1, j)); } } if (sw->type == SWT_DXC || sw->type == SWT_KST){ state_putstr(state, g_strdup_printf("sw%d_connected", i+1), g_strdup("0")); } } } void state_save(struct state *state){ //char *c, *key; int i, j; if (!gses) return; // happens when called from android OnSaveInstance when updating package state_dupstr(state, "saved", "y"); state_dupstr(state, "gln_cdata", gses->il->cdata); state_dupstr(state, "ctest", ctest ? z_filename(ctest->directory) : ""); state_dupstr(state, "aband", aband ? aband->pband : ""); if (ctest != NULL){ for (i = 0; i < ctest->bands->len; i++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i); if (b->il){ state_putstr(state, g_strdup_printf("band%c_il_cdata", z_char_lc(b->bandchar)), g_strdup(b->il->cdata)); state_putstr(state, g_strdup_printf("band%c_il_hlen", z_char_lc(b->bandchar)), g_strdup_printf("%d", b->il->history->len)); for (j = 0; j < b->il->history->len; j++){ state_putstr(state, g_strdup_printf("band%c_il_h%d", z_char_lc(b->bandchar), j), g_strdup((char*)g_ptr_array_index(b->il->history, j))); } } } } for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->il){ state_putstr(state, g_strdup_printf("sw%d_il_cdata", i+1), g_strdup(sw->il->cdata)); state_putstr(state, g_strdup_printf("sw%d_il_hlen", i+1), g_strdup_printf("%d", sw->il->history->len)); for (j = 0; j < sw->il->history->len; j++){ state_putstr(state, g_strdup_printf("sw%d_il_h%d", i+1, j), g_strdup((char*)g_ptr_array_index(sw->il->history, j))); } } if (sw->type == SWT_DXC || sw->type == SWT_KST){ state_putstr(state, g_strdup_printf("sw%d_connected", i+1), g_strdup(sw->sock < 0 ? "0" : "1")); } if (sw == gses->ontop) state_putstr(state, g_strdup("ontop"), g_strdup_printf("%d", i+1)); } } void state_restore(struct state *state){ const char *c; char *key; int i, j, len, ontop; struct band *b; c = state_getstr(state, "gln_cdata"); g_strlcpy(gses->il->cdata, c, gses->il->dlen); gses->il->cpos = strlen(gses->il->cdata); c = state_getstr(state, "ctest"); if (c && *c){ load_contest_edi(c, 0); for (i = 0; i < ctest->bands->len; i++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i); if (b->il){ key = g_strdup_printf("band%c_il_cdata", z_char_lc(b->bandchar)); c = state_getstr(state, key); if (c) { g_strlcpy(b->il->cdata, c, b->il->dlen); b->il->cpos = strlen(b->il->cdata); } g_free(key); key = g_strdup_printf("band%c_il_hlen", z_char_lc(b->bandchar)); len = atoi(state_getstr(state, key)); g_free(key); for (j = 0; j < len; j++){ key = g_strdup_printf("band%c_il_h%d", z_char_lc(b->bandchar), j); c = state_getstr(state, key); g_ptr_array_add(b->il->history, g_strdup(c)); g_free(key); } } } } c = state_getstr(state, "aband"); b = find_band_by_pband((char *)c); if (b){ // progress("Activating band %s", b->bandname); activate_band(b); /* b==NULL is handled by function */ } c = state_getstr(state, "ontop"); ontop = atoi(c); for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->il){ key = g_strdup_printf("sw%d_il_cdata", i+1); c = state_getstr(state, key); if (c) { g_strlcpy(sw->il->cdata, c, sw->il->dlen); sw->il->cpos = strlen(sw->il->cdata); } g_free(key); key = g_strdup_printf("sw%d_il_hlen", i+1); len = atoi(state_getstr(state, key)); g_free(key); for (j = 0; j < len; j++){ key = g_strdup_printf("sw%d_il_h%d", i+1, j); c = state_getstr(state, key); g_ptr_array_add(sw->il->history, g_strdup(c)); g_free(key); } } if (sw->type == SWT_DXC || sw->type == SWT_KST){ key = g_strdup_printf("sw%d_connected", i+1); c = state_getstr(state, key); if (*c == '1'){ if (sw->type == SWT_DXC) dxc_open_connection(sw, NULL); if (sw->type == SWT_KST) kst_open_connection(sw, NULL); } g_free(key); } if (i+1 == ontop) sw_set_ontop(ontop - 1, 0); } } void state_foreach(struct state *state, GHFunc func, gpointer user_data){ g_hash_table_foreach(state->hash, func, user_data); } tucnak-4.04/src/hdkeyb.h0000644000175000017500000000157111636307172012067 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __HDKEYB_H #define __HDKEYB_H struct zhdkeyb; struct hdkeyb{ struct zhdkeyb *zhdkeyb; int actnr; char qtfstr[4]; }; extern struct hdkeyb *hdkeyb; struct hdkeyb *init_hdkeyb(void); void free_hdkeyb(struct hdkeyb *hdkeyb); void hdkeyb_read_handler(int n, char **items); void hdkeyb_key(struct hdkeyb *hdkeyb, char key); void hdkeyb_activate(struct hdkeyb *hdkeyb, int nr); void hdkeyb_set_qtf(struct hdkeyb *hdkeyb); void hdkeyb_rel_qtf(struct hdkeyb *hdkeyb, int rel); void hdkeyb_draw_rotar(struct hdkeyb *hdkeyb, int nr); void hdkeyb_draw_rotars(struct hdkeyb *hdkeyb); #endif tucnak-4.04/src/kst.h0000644000175000017500000000436312523440234011415 00000000000000/* kst.h ON4KST chat Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __KST_H #define __KST_H #include "header.h" struct subwin; struct event; struct zasyncdns; struct fifo; struct band; union zsockaddr; int sw_kst_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_kst_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_kst_redraw(struct subwin *sw, struct band *band, int flags); void sw_kst_check_bounds(struct subwin *sw); void sw_kst_enter(void *enterdata, gchar *str, int cq); void sw_kst_addrinfo(struct zasyncdns *adns, int n, int *family, int *socktype, int *protocol, int *addrlen, union zsockaddr *addr, char *errorstr); void sw_kst_connected_handler(void *xxx); void sw_kst_read_handler(void *xxx); void sw_kst_disconnect(struct subwin *sw); char *sw_kst_call_under(struct subwin *sw, int x, int y); void sw_kst_toggle_highlight(struct subwin *sw, char *call, int val); int sw_kst_line_color(struct subwin *sw, char *line); char *sw_kst_counterp(struct subwin *sw, char *line, int *color); // thread unsafe! int sw_kst_color(char *call); void sw_kst_nothing(void *itdata, void *menudata); void sw_kst_select(void *itdata, void *menudata); void sw_kst_hide(void *itdata, void *menudata); void sw_kst_message(void *itdata, void *menudata); void sw_kst_ask_sked(void *itdata, void *menudata); void sw_kst_info(void *itdata, void *menudata); #ifdef Z_HAVE_SDL void sw_kst_ac_info(void *itdata, void *menudata); #endif void sw_kst_use(void *itdata, void *menudata); int kst_read_line(struct subwin *sw, char *line); void kst_timer_function(void *data); void kst_end_shus(struct subwin *sw); void kst_clear_users(struct subwin *sw); int kst_user_skip(struct subwin *sw, const char *call); void kst_shus(struct subwin *sw, int shus); void sw_kst_raise(struct subwin *sw); void kst_open_connection(void *itdata, void *menudata); void kst_export_text(void *itdata, void *menudata); #ifdef Z_HAVE_SDL void kst_free_screen(struct subwin *sw); #endif void kst_open_bh(void *sw); void kst_dump_skip(void *x, void *menudata); #endif tucnak-4.04/src/cabrillo.c0000644000175000017500000001550412460207027012376 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "language2.h" #include "qsodb.h" #include "stats.h" #include "tsdl.h" static char *padr(char *dst, const char *src, int len){ int l; memset(dst, ' ', len); l = strlen(src); if (l > len) l = len; memcpy(dst, src, l); dst[len] = '\0'; return dst; } static char *padl(char *dst, const char *src, int len){ int l; memset(dst, ' ', len); l = strlen(src); if (l > len) l = len; memcpy(dst + len - l, src, l); dst[len] = '\0'; return dst; } int export_all_bands_cbr(void){ int i, err; gchar *filename; FILE *f; char callbuf[20]; int ignoreerror=0; int psect = 2; // 0=Multi, 1=Single, 2=Check char *ope[] = {"MULTI-OP", "SINGLE-OP", "CHECKLOG"}; char *ass[] = {"ASSISTED", "NON-ASSISTED", "ASSISTED"}; int maxpower = 0; char *powerstr = "HIGH"; char *cabrillo_modes[]={ "", "PH", "CW", "MI", "MI", "PH", /* 5 */ "PH", "RT", "SS", "AT" /* 9 */ }; char s[256]; char t[256]; GString *gs; char *categoryband = NULL; if (!ctest) return -1; dbg("export_all_bands_cbr()\n"); progress(VTEXT(T_EXPORTING)); gs = g_string_sized_new(1024); for (i=0; ibands->len;i++){ struct config_band *cb=(struct config_band *)g_ptr_array_index(cfg->bands, i); struct band *band = find_band_by_bandchar(cb->bandchar); if (!band) continue; band->cbr_confb = cb; stats_thread_join(band); if (band->stats->nqsos > 0){ int p; dbg("band %c psect = %d\n", band->bandchar, psect); if (band->psect < psect) psect = band->psect; // check has priority. It's not optimal but... dbg("band %c psect = %d\n", band->bandchar, psect); p = atoi(band->spowe); if (p > maxpower) maxpower = p; if (categoryband == NULL){ categoryband = band->cbr_confb->cbrband; }else{ categoryband = "ALL"; } } dbg("band %c remarks = %s\n", band->bandchar, band->remarks); if (strlen(band->remarks) > 0){ if (gs->len > 0) g_string_append_c(gs, ' '); g_string_append(gs, band->remarks); } } if (maxpower > 0 && maxpower <=100) powerstr = "LOW"; if (maxpower > 0 && maxpower <=10) powerstr = "QRP"; filename = g_strdup_printf("%s/%s_%s.cbr", ctest->directory, ctest->cdate, z_get_raw_call(callbuf,ctest->pcall)); z_wokna(filename); f=fopen(filename,"wb"); /* must be b for windoze */ if (!f) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), errno); ignoreerror=1;} g_free(filename); g_string_free(gs, 1); progress(NULL); return -1; } if (!categoryband) categoryband = "ALL"; // no qsos err = 0; fprintf(f, "START-OF-LOG: 3.0\r\n"); fprintf(f, "CREATED-BY: %s-%s %s\r\n", PACKAGE_NAME, Z_PLATFORM, PACKAGE_VERSION); fprintf(f, "CONTEST: %s\r\n", ctest->tname); fprintf(f, "CALLSIGN: %s\r\n", ctest->pcall); fprintf(f, "CATEGORY-OPERATOR: %s\r\n", ope[psect%3]); fprintf(f, "CATEGORY-BAND: %s\r\n", categoryband); fprintf(f, "CATEGORY-POWER: %s\r\n", powerstr); fprintf(f, "CATEGORY-ASSISTED: %s\r\n", ass[psect%3]); fprintf(f, "CATEGORY-TRANSMITTER: ONE\r\n"); fprintf(f, "LOCATION: Write here\r\n"); fprintf(f, "CLAIMED-SCORE: %d\r\n", ctest->allb_ntotal); fprintf(f, "CLUB: %s\r\n", ctest->pclub); fprintf(f, "NAME: %s\r\n", ctest->rname); fprintf(f, "ADDRESS: %s %s\r\n", ctest->radr1, ctest->radr2); fprintf(f, "ADDRESS-CITY: %s\r\n", ctest->rcity); fprintf(f, "ADDRESS-STATE-PROVINCE: Write here\r\n"); fprintf(f, "ADDRESS-POSTALCODE: %s\r\n", ctest->rpoco); fprintf(f, "SOAPBOX: %s\r\n", gs->str); for (i=0; iallqsos->len; i++){ struct qso *q = (struct qso *)z_ptr_array_index(ctest->allqsos, i); char *c, *d = NULL; if (!q->band) continue; // maybe connot happen, I don't want to investigate if (!q->band->cbr_confb) continue; if (ctest->excused > 0){ c = ctest->pexch; }else if (ctest->wwlused > 0){ c = ctest->pwwlo; }else if (ctest->qsoused){ c = q->qsonrs; }else{ c = " "; // 6 ks } d = NULL; if (!d && ctest->excused && strlen(q->exc) > 0) d = q->exc; if (!d && ctest->wwlused && strlen(q->locator) > 0) d = q->locator; if (!d && ctest->qsoused && strlen(q->qsonrr) > 0) d = q->qsonrr; if (!d && strlen(q->exc) > 0) d = q->exc; if (!d && strlen(q->locator) > 0) d = q->locator; if (!d && strlen(q->qsonrr) > 0) d = q->qsonrr; if (!d) d = " "; fprintf(f, "QSO: "); if (q->qrg > 0 && q->qrg < 100000000){ fprintf(f, "%5d ", (int)(q->qrg / 1000.0)); }else{ if (q->band->cbr_confb->qrg_min < 30000){ fprintf(f, "%5d ", q->band->cbr_confb->qrg_min); // 1800, 3500, 7000, 14000, 21000, 28000 }else if (q->band->cbr_confb->qrg_min < 1000000){ fprintf(f, "%5d ", q->band->cbr_confb->qrg_min / 1000); // 50 144 432 902 }else{ fprintf(f, "%s ", padl(s, q->band->cbr_confb->cbrband, 5)); // 1.2G 2.3G 3.4G 5.7G 10G 24G 47G 75G 119G 142G 241G 300G } } fprintf(f, "%s ", padr(s, cabrillo_modes[q->mode], 2)); safe_strncpy(t, q->date_str, 5); strcat(t, "-"); safe_strncpy(t+5, q->date_str+4, 3); strcat(t, "-"); safe_strncpy(t+8, q->date_str+6, 3); fprintf(f, "%s ", padr(s, t, 10)); fprintf(f, "%s ", padr(s, q->time_str, 4)); fprintf(f, "%s ", padr(s, ctest->pcall,13)); fprintf(f, "%s ", padr(s, q->rsts,3)); fprintf(f, "%s ", padr(s, c, 6)); fprintf(f, "%s ", padr(s, q->callsign,13)); fprintf(f, "%s ", padr(s, q->rstr,3)); fprintf(f, "%s ", padr(s, d, 6)); fprintf(f, "\r\n"); } fprintf(f, "END-OF-LOG:\r\n"); fclose(f); if (err) { if (!ignoreerror) { errbox(VTEXT(T_CANT_WRITE), 0); ignoreerror=1; } g_free(filename); g_string_free(gs, 1); progress(NULL); return -1; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, 1); progress(NULL); return 0; } tucnak-4.04/src/zstring.h0000644000175000017500000000177611571671075012334 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __ZSTRING_H #define __ZSTRING_H #include "header.h" struct zstring { int tokenpos; char *str; #ifdef LEAK_DEBUG_LIST char *file; int line; #endif }; #ifdef LEAK_DEBUG_LIST #define zconcatesc(x...) debug_zconcatesc(__FILE__, __LINE__, x) #define zstrdup(x) debug_zstrdup(__FILE__, __LINE__, x) struct zstring *debug_zconcatesc(char *file, int line, char *s1, ...); struct zstring *debug_zstrdup(char *file, int line, const char *str); #else struct zstring *zconcatesc(char *s1, ...); struct zstring *zstrdup(const char *str); #endif char *ztokenize(struct zstring *zstr, int first); void zfree(struct zstring *zstr); int ztokens(struct zstring *zstr); int zwrite(int fd, struct zstring *zs); #endif tucnak-4.04/src/button.c0000644000175000017500000000456312276425660012137 00000000000000/* Tucnak - VHF contest log Copyright (C) 2012-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "button.h" #include "kbd.h" #include "tsdl.h" #ifdef Z_HAVE_SDL struct button *init_button(SDL_Surface *screen, int x, int y, void (*fn)(void *), void *data){ struct button *b = g_new0(struct button, 1); b->x = x; b->y = y; b->fn = fn; b->data = data; return b; } void free_button(struct button *b){ if (b->surface) SDL_FreeSurface(b->surface); g_free(b->text); g_free(b); } void buttons_clear(GPtrArray *buttons){ int i; for (i = buttons->len - 1; i >= 0; i--){ struct button *b = (struct button *)g_ptr_array_index(buttons, i); free_button(b); g_ptr_array_remove_index(buttons, i); } } void buttons_redraw(GPtrArray *buttons, SDL_Surface *dst){ int i; for (i = 0; i < buttons->len; i++){ struct button *b = (struct button *)g_ptr_array_index(buttons, i); button_draw(b, dst); } } int buttons_mouse(GPtrArray *buttons, int mb, int mx, int my){ int i; for (i = 0; i < buttons->len; i++){ struct button *b = (struct button *)g_ptr_array_index(buttons, i); if ((mb & B_CLICK) == 0) continue; if (mx < b->x || mx >= b->x + b->w) continue; if (my < b->y || my >= b->y + b->h) continue; if (b->fn == NULL) continue; b->fn(b->data); return 1; } return 0; } void button_bitmap(struct button *b, SDL_Surface *surface){ b->surface = surface; b->w = surface->w; b->h = surface->h; } void button_text(struct button *b, int font_h, int fcolor, int bcolor, char *text){ b->font_h = font_h; b->fcolor = fcolor; b->bcolor= bcolor; g_free(b->text); b->text = g_strdup(text); b->h = font_h; b->w = zsdl_h2w(font_h) * strlen(b->text); } void button_free(struct button *b){ if (b->surface) SDL_FreeSurface(b->surface); g_free(b->text); g_free(b); } void button_draw(struct button *b, SDL_Surface *dst){ SDL_Rect dr; dr.x = b->x; dr.y = b->y; dr.w = b->w; dr.h = b->h; if (b->surface){ SDL_BlitSurface(b->surface, NULL, dst, NULL); }else{ SDL_FillRect(dst, &dr, b->bcolor); z_rect2(dst, &dr, b->fcolor); zsdl_printf(dst, b->x + b->w / 2, b->y + b->h / 2, b->fcolor, 0, ZFONT_TRANSP | ZFONT_CENTERX | ZFONT_CENTERY, "%s", b->text); } } #endif tucnak-4.04/src/html.h0000644000175000017500000000231611773247324011567 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __HTML_H #define __HTML_H #include "header.h" struct band; struct config_band; struct subwin; #define HTML_ICON 0x01 #define HTML_MAP 0x02 #define HTML_CHART 0x04 #define HTML_IMG_ROOT 0x08 #define HTML_FOR_PHOTO 0x10 #define HTML_CENTER 0x20 gchar *qh(GString *gs, gchar *s); void html_style(GString *gs); void html_header(GString *gs, gchar *title, int flags, char *bodyarg); void html_ref_header(GString *gs); void html_band_ref(GString *gs, struct band *b, struct config_band *confb); void html_ref_footer(GString *gs, struct band *b, struct config_band *confb); void html_band_header(GString *gs, struct band *b, struct config_band *confb, int flags, struct subwin *map, struct subwin *chart); void html_band_footer(GString *gs); void html_footer(GString *gs, int flags); void html_qsos(GString *gs, struct band *b, struct config_band *confb); void html_complete(GString *gs, int flags); int export_all_bands_html(void); #endif tucnak-4.04/src/list.c0000644000175000017500000000505112460207027011556 00000000000000/* list - Imports list of stations Copyright (C) 2010-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "net.h" #include "qsodb.h" #include "session.h" #include "stats.h" #define LIST_DELIM "\t " void import_list(void *xxx, char *filename){ FILE *f; GString *gs; char *token_ptr; int i; int l = 0; f = fopen(filename, "r"); if (!f) { log_addf(VTEXT(T_CANT_READ_S), filename); return; } gs = g_string_sized_new(120); while(zfile_fgets(gs, f, 0)!=NULL ){ struct qso *q; char *c, *w, *r; l++; c = strtok_r(gs->str, LIST_DELIM, &token_ptr); if (!c) { log_addf(VTEXT(T_SKIP_LINE), l, gs->str); continue; } w = strtok_r(NULL, LIST_DELIM, &token_ptr); if (!w){ log_addf(VTEXT(T_SKIP_LINE), l, gs->str); continue; } // r = strtok_r(NULL, LIST_DELIM, &token_ptr); r = token_ptr; q = g_new0(struct qso, 1); q->date_str = g_strdup("19900101"); q->time_str = g_strdup("0000"); q->callsign = g_strdup(c); q->mode = MOD_CW_CW; q->rsts=g_strdup("599"); q->rstr=g_strdup("599"); q->qsonrs=g_strdup_printf("%03d", l); q->qsonrr=g_strdup("001"); q->exc=g_strdup(""); q->locator = g_strdup(w); q->source=g_strdup(gnet->myid); q->operator_=aband->operator_; q->qrg = 0; q->stamp=time(NULL); q->remark = g_strdup(r?r:""); q->ser_id=-1; /* computed by add_qso_to_index */ compute_qrbqtf(q); add_qso(aband, q); log_addf("'%s' '%s' '%s'", q->callsign, q->locator, q->remark); } g_string_free(gs, TRUE); fclose(f); g_hash_table_foreach(ctest->bystamp, foreach_source_qsort_by_stamp, NULL); z_ptr_array_qsort(ctest->allqsos, compare_date_time_qsonrs); for (i=0;ibands->len;i++){ struct band *b=(struct band *)g_ptr_array_index(ctest->bands,i); recalc_stats(b); clear_tmpqsos(b, 1); if (ctest->qsoused && b->qsos->len+1 != atoi(b->tmpqsos[0].qsonrs)){ g_free(b->tmpqsos[0].qsonrs); b->tmpqsos[0].qsonrs = g_strdup_printf("%03d", b->qsos->len+1); } } return; } tucnak-4.04/src/report.c0000644000175000017500000000720712460207027012123 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "qsodb.h" #include "stats.h" #include "tsdl.h" int write_report(struct band *b, struct config_band *confb, FILE *f){ int year, month, day, date; char s[24]; GString *gs; int ret=0; gs = g_string_sized_new(1000); date = b->stats->first_date; day = date%100; month = (date/100)%100; year = (date/10000)%10000; g_string_sprintfa(gs, "s OK1KPA\n"); g_string_sprintfa(gs, "Hlaseni ze zavodu %s %d/%d %s\n", ctest->tname, month, year, z_str_uc(safe_strncpy0(s, ctest->pcall, 21))); g_string_sprintfa(gs, "\n\n"); g_string_sprintfa(gs, "Hlaseni ze zavodu %s %d/%d \n", ctest->tname, month, year); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "Hlaseni ze zavodu: %s dne %02d.%02d.%2d \n", ctest->tname, day, month, year); g_string_sprintfa(gs, "Kategorie: %s (%s %s)\n", b->psect ? confb->ok_section_single : confb->ok_section_multi, b->pband, b->psect ? "Single" : "Multi"); g_string_sprintfa(gs, "Znacka v zavode: %s \n", z_str_uc(safe_strncpy0(s, ctest->pcall, 21))); g_string_sprintfa(gs, "Lokator: %s \n", z_str_uc(safe_strncpy0(s, ctest->pwwlo, 7))); g_string_sprintfa(gs, "Pocet platnych spojeni: %d \n", b->stats->nqsos); g_string_sprintfa(gs, "Pocet bodu za spojeni: %d \n", b->stats->nqsop); g_string_sprintfa(gs, "Pocet nasobicu: %d \n", g_hash_table_size(b->stats->wwls)); g_string_sprintfa(gs, "Vysledek: %d \n", b->stats->ntotal); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "Prohlasuji, ze jsem dodrzel(a) podminky zavodu, \n"); g_string_sprintfa(gs, "uvedeny vysledek odpovida skutecnosti. \n"); g_string_sprintfa(gs, "%30s\n", ctest->pcall); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "/ack\n"); g_string_sprintfa(gs, "/ex\n"); if (fprintf(f, "%s", gs->str) != gs->len) ret=1; g_string_free(gs, TRUE); return ret; } int export_all_bands_report(){ struct band *band; struct config_band *confb; int i, err; gchar *filename; FILE *f; char callbuf[20]; if (!ctest) return -1; for (i=0; ibands->len; i++){ band = g_ptr_array_index(ctest->bands, i); confb = get_config_band_by_bandchar(band->bandchar); progress(VTEXT(T_EXPORTING_S), band->bandname); stats_thread_join(band); if (band->stats->nqsos <=0) continue; filename = g_strdup_printf("%s/%s%s.txt", ctest->directory, band->psect ? confb->ok_section_single : confb->ok_section_multi, z_get_raw_call(callbuf,ctest->pcall)); z_wokna(filename); f=fopen(filename,"wt"); if (!f) { log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); progress(NULL); return -1; } err=write_report(band,confb,f); fclose(f); if (err) { log_addf(VTEXT(T_CANT_WRITE_S), filename); errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); progress(NULL); return -1; } log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); } progress(NULL); return 0; } tucnak-4.04/src/language.inc0000644000175000017500000143232012535256136012731 00000000000000/* Automatoticaly generated by gen-intl */ struct translation translation_english [] = { {0, NULL}, {T__CHAR_SET, "us-ascii"}, {T__LANGUAGE, "English"}, {T_ABOUT, "About"}, {T_BAD_NUMBER, "Bad number"}, {T_BAD_STRING, "Bad string"}, {T_BASIC_HELP, "Press F10 for menu.\nHave fun."}, {T_BLOCK_CURSOR, "Block cursor"}, {T_CANCEL, "Cancel"}, {T_CHARACTER_SET, "Character set"}, {T_COLOR, "Color"}, {T_COPYING, "Copying"}, {T_DIFFERENCE, "difference"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Do you really want to exit Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Empty string not allowed"}, {T_ERROR, "Error"}, {T_WARNING, "Warning"}, {T_EXIT, "Exit"}, {T_EXIT_TUCNAK, "Exit Tucnak"}, {T_FILE, "File"}, {T_FULL_SCREEN, "Full screen"}, {T_HELP, "Help"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "X"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R frames"}, {T_LANGUAGE, "Language"}, {T_LAST, "last"}, {T_LINUX_OR_OS2_FRAMES, "Linux or OS/2 frames"}, {T_MEMORY_INFO, "Memory info"}, {T_NO_FRAMES, "No frames"}, {T_NO, "No"}, {T_NUMBER_EXPECTED, "Number expected in field"}, {T_NUMBER_OUT_OF_RANGE, "Number out of range"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852"}, {T_UTF_8_IO, "UTF-8 Input/Output"}, {T_SCREEN, "Screen"}, {T_SETUP, "Setup"}, {T_TERMINAL_OPTIONS, "Terminal options"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Use ^[[11m"}, {T_VT_100_FRAMES, "VT 100 frames"}, {T_WELCOME1, "Welcome to Tucnak!"}, {T_WELCOME2, "Please enter your callsign and locator:"}, {T_WELCOME, "Welcome"}, {T_XTERM, "Xterm"}, {T_YES, "Yes"}, {T_CANT_APPEND_S, "Can't append to file %s"}, {T_CANT_WRITE, "Can't write to file"}, {T_CANT_WRITE_S, "Can't write to file %s"}, {T_CANT_READ, "Can't read from file"}, {T_CANT_READ_S, "Can't read from file %s"}, {T_SAVED_S, "Saved %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - cw speed "}, {T_CANT_OPEN_S, "Can't open %s"}, {T_CANT_LOCK, "Can't lock"}, {T_CANT_LOCK_S, "Can't lock %s"}, {T_LOADING_CTEST_S, "*** Loading contest %s"}, {T_NO_FILES,"No files in directory"}, {T_BAND_EXIST_SS, "WARNING! Band %s (%s) already exist"}, {T_BAND_NOT_OPEN, "Band is not active in this contest"}, {T_NO_BANDS, "No bands to load"}, {T_CANT_SET_GR_S, "Can't set any graphics mode-%s"}, {T_GCALL, "Call: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Sent: %s %s"}, {T_GRCV, "Rcvd: %s %s"}, {T_GTIM, "Time: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Rem: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "income: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Please WAIT "}, {T__RO_BAND, " READ-ONLY BAND"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation."}, {T_CTEST_ACTIVE, "Contest is already active "}, {T_NO_CTESTS, "No contests"}, {T_NO_CCLOSE, "No contest to close"}, {T_REALLY, "Really?"}, {T_CLOSE_CTEST, "Do you really want to close this contest?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw items, %d wc items, latest %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n"}, {T_VEXC, "Verified EXC: %d items\n"}, {T_DWI, "D_W: %d prefixes, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Names: %d names\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Memory:"}, {T_NMY, " My: "}, {T_NGLOBAL, "Global: "}, {T_NMASTER, "Master: "}, {T_NREMOTE, "Remote: "}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Network info"}, {T_NO_BANDS_QRV, "No bands QRV"}, {T_NO_BANDS_CONF, "No bands configured"}, {T_NOT_AVAILABLE, "Not available"}, {T_ADD_SUBWIN, "Add subwin"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Close subwin"}, {T_HK_CLOSE_SUBWIN, "C"}, {T_HK_NINFO, "N"}, {T_NEW, "New"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "New from wizard"}, {T_HK_NEW_WIZZ, "W"}, {T_NEW_NET, "New from network"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Open"}, {T_HK_OPEN, "O"}, {T_SAVE, "Save"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Export as EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Export as report"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Export as ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as Cabrillo"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Export as HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Import EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Import ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Import swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Contest options"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Close contest"}, {T_HK_CLOSE_CONTEST, "C"}, {T_ADD_ERROR, "Add ERROR"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Change operator"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Update C_W from contest"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Update C_W from band"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Update EXC DB from contest"}, {T_HK_EXC_CTEST, "A"}, {T_EXC_BAND, "Update EXC DB from band"}, {T_HK_EXC_BAND, "T"}, {T_IMPORT_EBW, "Import DL8EBW database"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "No contest"}, {T_NO_PEERS, "No peers found"}, {T_NO_MASTER, "Master is not available!"}, {T_CTEST_DEF, "Contest defaults"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "Band defaults"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "P"}, {T_CW_DAEMON, "CW keying"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Autosave"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Load cfg from net"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Load C_W from net"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Save configuration"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Contest"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Edit"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bands"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Subwins"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "Band settings for band %c %s"}, {T_QRV_ON_THIS_BAND, "QRV on this band"}, {T_QRV_IN_THIS_CTEST, "QRV in this contest"}, {T_READ_ONLY, "Read-only"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " TX Equip:"}, {T_POWER, " Power:"}, {T_RXEQUIP, " RX Equip:"}, {T_ANTENNA, " Antenna:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "Operators:"}, {T_SPACES1, " "}, {T_REMARKS, " Remarks:"}, {T_OK_SECTION_SINGLE, "Single category in OK"}, {T_OK_SECTION_MULTI, "Multi category in OK"}, {T_QRG_MIN, "Band boundary from"}, {T_QRG_MAX, "to [kHz]"}, {T_ADIFBAND, "ADIF band name"}, {T_SKEDQRG, "QRG for skeds (free form)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]:"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Responsible operator"}, {T_NAME, " Name:"}, {T_CALLSIGN, " Callsign:"}, {T_ADDRESS, " Address:"}, {T_POSTCODE, "Postal Code:"}, {T_CITY, " City:"}, {T_COUNTRY, " Country:"}, {T_PHONE, " Phone:"}, {T_BBSEMAIL, " E-mail:"}, {T_QP0, " --none -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Multiplicative (Std. IARU)"}, {T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "New Contest"}, {T_CANT_TRUNC, "Can't truncate desc file"}, {T_NAME_OF_CTEST, "Name of the contest:"}, {T_CALL_OF_CTEST, "Callsign in contest:"}, {T_CLUB_ST, "Club station:"}, {T_YOURWWL, "Your WWL:"}, {T_YOUREXC, "Your EXC:"}, {T_DATE_OF_CTEST, "Date of contest:"}, {T_QSOUSED, "QSO NR used"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "WWL used "}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL multi:"}, {T_EXCUSED, "EXC used"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC multi:"}, {T_EXCNAME, " EXC name: "}, {T_PREFM, "PREF multi:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST Used "}, {T_DEFRS, "Default RS:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Also for RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Responsible op"}, {T_EDIT_QSO_CD, "Edit QSO %c: %03d"}, {T_CALLSIGN2, "Callsign:"}, {T_CLUB, " Club:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operator:"}, {T_DATE, " Date:"}, {T_MODE, " Mode:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO sent:"}, {T_QSONRR, "QSO rcvd:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, " Remark:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Send sked"}, {T_SELECT, "Select"}, {T_QRG, " QRG:"}, {T_WE_CALL, " We call"}, {T_BAND, " Band:"}, {T_TIME, " Time:"}, {T_DUPE_QSO, "Duplicate QSO!"}, {T_CLEAR_THIS_QSO, "Clear this QSO"}, {T_EDIT_OLD_QSO, "Edit old QSO"}, {T_MARK_OLD_QSO, "Mark old QSO as ERROR"}, {T_STORE_AS_DUPE, "Store as DUPE"}, {T_BAD_CALL, "This does not look like a callsign"}, {T_N_CALLSIGN, "\nCallsign:"}, {T_AUTOSAVE_OPTS, "Autosave options"}, {T_SAVE_AQ, "Save to disk after QSO: "}, {T_SAVE_AM, "Save to disk after minutes:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Save to floppy after QSO: "}, {T_SAVE_AMF, "Save to floppy after minutes:"}, {T_DO_MOUNT, "Mount if not in /etc/mtab (unused)"}, {T_FLOPPY_PATH, "Path to floppy:"}, {T_MOUNT_CMD, "Mount command: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Unfi"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Map"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "Unfinished QSOs"}, {T_DXC, "DX Cluster"}, {T_STAT, "Statistics"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Graphics map"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Command"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "Unfinished QSO"}, {T_N_REMARK, "\nRemark:"}, {T_NO_CQ, "No CQ defined"}, {T_TEXT, "Text:"}, {T_SPEED, "Speed [WPM]:"}, {T_REPEAT, "Repeat"}, {T_DELAY, "Delay [0.1s]:"}, {T_ALLOW_UNDEF, "Allow if some item is undefined"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Filename:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP port:"}, {T_DEVICE, "Keying device:"}, {T_INIT_SPEED, "Initial speed [WPM]:"}, {T_INIT_WEIGHT, "Weight (30-70):"}, {T_WPMFROM, "WPM Range from"}, {T_WPMTO, "to"}, {T_USE_SPK, "Use speaker"}, {T_LEADIN, "PTT lead in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignoring interface %-5s"}, {T_IGN_ADDR_S, "Ignoring address %s"}, {T_ADD_IFACE_SSD, "Added interface=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Forced address %s"}, {T_TIMESKEW, "WARNING! Time skew %d detected against %s:%d !\n"}, {T_DISCONNECTING_SD, "Disconnecting from %s:%d"}, {T_ACCEPTED_SD, "Accepted %s:%d (%s)"}, {T_CONNECTING_SD, "Connecting to %s:%d" }, {T_CONNECTED_SD, "Connected to %s:%d"}, {T_DISCONNECTED_SD, "Disconnected from %s:%d"}, {T_LOADED_CFG_SSSS, "Loaded config for %s %s (%s,%s)"}, {T_LOADED_CW, "Loaded C_W data"}, {T_PEER_NOT_FOUND, "ERROR! Peer %s not found"}, {T_CANT_CREATE_HOME_S, "Cannot create directory %s"}, {T_CANT_LOAD_CFG, "Can't load configuration!\nProgram cannot work properly!"}, {T_ERR_RC, "Found some errors parsing config file!\nThis file was probably saved with newer Tucnak!\nDon't save your confuguration unless you can loose data!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Remark "}, {T_SES_WELCOME, "Welcome to Tucnak! "}, {T_SES_PRESS_F10, "Press F10 for menu."}, {T_SES_HAVE_FUN, "Have fun."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS in WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statistics for band %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Average pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Average qsop/QSO: %5.2f"}, {T_BAND_RO, "Band is read-only"}, {T_THIS_BAND, "This band"}, {T_OTHER_BANDS, "Other bands"}, {T_CW_DB, "C_W database"}, {T_PROC_EXITED, "*** Process exited\n"}, {T_WE_CALL2, "we call"}, {T_WE_LISTEN, "we listen"}, {T_QSL, "QSL promised"}, {T_RECORD, "Record traffic"}, {T_MAXMIN, " Max. record duration"}, {T_TEMPLATE, "Template for recorded filename"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Channels"}, {T_SAMPLERATE, "Sample rate"}, {T_FILLOP, "Fill operators"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Recalc QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Network & trace"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Ignore interfaces:"}, {T_IP_IGNORE, " Ignore networks:"}, {T_IP_ANNOUNCE, " Announce to nets:"}, {T_TRACE_BCAST, "Trace broadcasts "}, {T_TRACE_SOCK, "Trace sockets"}, {T_TRACE_RECV, "Trace received data"}, {T_TRACE_SEND, "Trace sent data"}, {T_TRACE_QSOS, "Trace QSOs "}, {T_TRACE_SDEV, "Trace rotars "}, {T_NOT_MOUNTED_S, "Not mounted %s"}, {T_RECSRC_NONE, "Don't set"}, {T_RECSRC_MIC, "Microphone"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "New!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV on %s"}, {T_SKED_QRG, "QRG for skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG for skeds:"}, {T_GRAB_BAND, "Grab band control"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Force RUN mode"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Export Statistics"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotator"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimuth"}, {T_ELEVATION, "Elevation"}, {T_CH_SPY, "Spy"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Spy end"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Export title page"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Break record"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Change for all bands"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. num of fragments (>=2)"}, {T_PLAY_LAST, "Play last sample"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Miscellaneous options"}, {T_HK_MISCOPTS, "M"}, {T_LOGLINES, "Log lines: "}, {T_SKEDSHIFT, "Sked shift (minutes): "}, {T_STARTBAND, "Starting band: "}, {T_GFX_X_CH, "Screen resolution (chars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Screen resolution (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Callsign info"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/hour: %d"}, {T_SF_QSOP_HOUR, "Points/hour: %d"}, {T_SF_QSOP_50QSO, "Points/50 QSOs: %d"}, {T_SF_HOURS, " Hours"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Hours Points QSOs AVG pts/QSO"}, {T_QSO_CHECK, "QSO check"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Minimal disk free space [MiB]"}, {T_FORMAT, "Record format"}, {T_PCM_PLAY, "Alsa playback device"}, {T_PCM_REC, "Alsa capture device"}, {T_PERIOD, "Period time [ms]"}, {T_BUFFER, "Buffer time [ms]"}, {T_ALSA_MIXER, "Alsa mixer device"}, {T_CAPTURE, "Capture source"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mixer"}, {T_RECSRC, "Record source"}, {T_PA_PLAY, "Portaudio playback device"}, {T_PA_REC, "Portaudio capture device"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Slash key"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Enter accurate QRG [Hz]"}, {T_BAD_QRG, "Bad frequency"}, {T_CALLSIGN3, "Callsign"}, {T_CALLSIGN_KST, "KST station's callsign:"}, {T_CANT_INIT_WINKEY_S, "Can't init winkey on %s"}, {T_WINKEYOPTS, "Winkey options"}, {T_WK_WK2, "Winkey2 fast initialization"}, {T_WK_USEPOT, "Use speed pot"}, {T_WK_USEBUT, "Use buttons"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (left handled)"}, {T_RIGOPTS, "Rig options"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Rig model: "}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address (hex):"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rotar options"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Disable screensaver"}, {T_DESC, "Description"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA serial"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA USB"}, {T_ROT_HAMLIB, "Hamlib"}, {T_ROT_REMOTE, "Remote"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beam width:"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global PREF"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "U"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX eVen"}, {T_HK_EVEN, "N"}, {T_ODD, "TX oDd"}, {T_HK_ODD, "D"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {T_ROT_POLL_MS, "Poll interval [ms]:"}, {T_VERSION, "Version"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Remote host name:"}, {T_REMOTE_PORT, " Remote TCP port:"}, {T_REMOTE_PASS, " Remote Password:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster"}, {T_FREE_DXC, "Terminating DXcluster"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved %s"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation translation_czech [] = { {0, NULL}, {T__CHAR_SET, "iso8859-2"}, {T__LANGUAGE, "Czech"}, {T_ABOUT, "O programu"}, {T_BAD_NUMBER, "Chybn slo"}, {T_BAD_STRING, "Chybn etzec"}, {T_BASIC_HELP, "Stiskni F10 pro vstup do menu."}, {T_BLOCK_CURSOR, "Blokov kurzor"}, {T_CANCEL, "Zruit"}, {T_CHARACTER_SET, "Znakov sada"}, {T_COLOR, "Barviky"}, {T_COPYING, "Koprovn"}, {T_DIFFERENCE, "rozdl"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Opravdu chce ukonit Tuka?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Przdn etzec nen povolen"}, {T_ERROR, "Chyba"}, {T_WARNING, "Varovn"}, {T_EXIT, "mitec"}, {T_EXIT_TUCNAK, "Ukonen Tuka"}, {T_FILE, "Soubor"}, {T_FULL_SCREEN, "Cel obrazovka"}, {T_HELP, "Pomoc"}, {T_HK_ABOUT, "O"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "Z"}, {T_HK_COPYING, "P"}, {T_HK_EXIT, "E"}, {T_HK_FILE, "S"}, {T_HK_FULL_SCREEN, "C"}, {T_HK_HELP, "C"}, {T_HK_LANGUAGE, "J"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "N"}, {T_HK_TERMINAL_OPTIONS, "E"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "O"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Rmeky KOI8-R"}, {T_LANGUAGE, "Jazyk"}, {T_LAST, "posledn"}, {T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux nebo OS/2"}, {T_MEMORY_INFO, "Informace o pamti"}, {T_NO_FRAMES, "Bez rmek"}, {T_NO, "Ne"}, {T_NUMBER_EXPECTED, "Oekvm slo"}, {T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah"}, {T_OK, "OK"}, {T_OS_SHELL, "Pkazov dka"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Omezen rmeky v cp850/852"}, {T_UTF_8_IO, "UTF-8 vstup/vstup"}, {T_SCREEN, "Screen"}, {T_SETUP, "Nastaven"}, {T_TERMINAL_OPTIONS, "Nastaven terminlu"}, {T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn denk pro VKV/mikrovlnn zvody"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Pouvat ^[[11m"}, {T_VT_100_FRAMES, "Rmeky VT 100"}, {T_WELCOME1, "Vt T Tuk!"}, {T_WELCOME2, "Prosm zadej svou znaku a loktor:"}, {T_WELCOME, "Vtej"}, {T_XTERM, "Xterm"}, {T_YES, "Ano"}, {T_CANT_APPEND_S, "Nelze pidat na konec souboru %s"}, {T_CANT_WRITE, "Nelze zapsat do souboru"}, {T_CANT_WRITE_S, "Nelze zapsat do souboru %s"}, {T_CANT_READ, "Nelze pesto soubor"}, {T_CANT_READ_S, "Nelze pest soubor %s"}, {T_SAVED_S, "Uloeno %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - rychlost CW "}, {T_CANT_OPEN_S, "Nelze otevt %s"}, {T_CANT_LOCK, "Nelze zamknout soubor"}, {T_CANT_LOCK_S, "Nelze zamknout soubor %s"}, {T_LOADING_CTEST_S, "*** Naten zvod %s"}, {T_NO_FILES, "Neexistuj dn soubory"}, {T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje"}, {T_BAND_NOT_OPEN, "Psmo nen v tomto zvodu aktivni"}, {T_NO_BANDS, "Neexistuji dn psma"}, {T_CANT_SET_GR_S, "Nelze nastavit grafick md %s"}, {T_GCALL, "Znaka: %s"}, {T_GWWL, "Loktor: %s"}, {T_GQRB, "Vzdlen.: %d km"}, {T_GQTF, "hel: %d"}, {T_GSEN, "Odeslno: %s %s"}, {T_GRCV, "Pijato: %s %s"}, {T_GTIM, "as: %s"}, {T_GOPE, "Opertor: %s"}, {T_GREM, "Poznmka: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "Zisk azim:%d"}, {T_GLON, "Dl: %7.2f %-6s"}, {T_GLAT, ": %7.2f %-6s"}, {T_GLOC, "Lok: %s"}, {T__PLESE_WAIT_, " Prosm o chvli strpen "}, {T__RO_BAND, " PSMO POUZE KE TEN"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerze " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je svobodn software; me ho it a/nebo pozmovat podle ustanoven Obecn veejn licence GNU, vydan Free Software Foundation; a to verze 2 a ve tto licence."}, {T_CTEST_ACTIVE, "Ji existuje aktivn zvod "}, {T_NO_CTESTS, "dn zvody"}, {T_NO_CCLOSE, "Nen co zavrat"}, {T_REALLY, "Opravdu?"}, {T_CLOSE_CTEST, "Opravdu chce zavt tento zvod?"}, {T_GUI_LD, "Uiv. prosted: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw poloek, %d wc poloek, posledn %d\n"}, {T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n"}, {T_VEXC, "Kontrolovan EXC: %d poloek\n"}, {T_DWI, "D_W: %d prefix, %d zem DXCC, %d tverc\n"}, {T_NAMES, "Names: %d jmen\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Pam:"}, {T_NMY, " J: %s:%d\n"}, {T_NGLOBAL, "Hlav.f: %s:%d\n"}, {T_NMASTER, " f: "}, {T_NREMOTE, "Vzdlen: "}, {T_NSLAVES, "\nPodzen:\n"}, {T_NINFO, "Sov informace"}, {T_NO_BANDS_QRV, "dn aktivn psma"}, {T_NO_BANDS_CONF, "dn psma"}, {T_NOT_AVAILABLE, "Nepstupn"}, {T_ADD_SUBWIN, "Pidat okno"}, {T_HK_ADD_SUBWIN, "P"}, {T_CLOSE_SUBWIN, "Zavt okno"}, {T_HK_CLOSE_SUBWIN, "Z"}, {T_HK_NINFO, "S"}, {T_NEW, "Nov"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Prvodce novm zvodem"}, {T_HK_NEW_WIZZ, "P"}, {T_NEW_NET, "Nov ze st"}, {T_HK_NEW_NET, "S"}, {T_OPEN, "Otevt"}, {T_HK_OPEN, "O"}, {T_SAVE, "Uloit"}, {T_HK_SAVE, "U"}, {T_EXPORT_EDI, "Exportovat do EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportovat do reportu (VKVPA)"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportovat do ADIFu"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Exportovat do CBR"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportovat do HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Exportovat do MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importovat EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importovat ADIF"}, {T_HK_IMPORT_ADIF, "F"}, {T_IMPORT_SWAP, "Importovat swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import txt seznamu"}, {T_HK_IMPORT_LIST, "X"}, {T_CONTEST_OP, "Nastaven zvodu"}, {T_HK_CONTEST_OP, "N"}, {T_CLOSE_CONTEST, "Zavt zvod"}, {T_HK_CLOSE_CONTEST, "Z"}, {T_ADD_ERROR, "Pidat chybn spojen"}, {T_HK_ADD_ERROR, "H"}, {T_CHOP, "Zmna opertora"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aktualizovat C_W ze zvodu"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Aktualizovat C_W z psma"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Aktualizovat EXC ze zvodu"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Aktualizovat EXC z psma"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importovat DL8EBW databzi"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Zvod nen"}, {T_NO_PEERS, "Dal Tuci nenalezeni"}, {T_NO_MASTER, "f je nedostupn!"}, {T_CTEST_DEF, "Nastaven zvodu"}, {T_HK_CTEST_DEF, "Z"}, {T_BAND_DEF, "Nastaven psem"}, {T_HK_BAND_DEF, "P"}, {T_HK_RESPOP, "V"}, {T_CW_DAEMON, "Klovn CW"}, {T_HK_CW_DAEMON, "K"}, {T_CW_CQ, "CW vzvy"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB vzvy"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Automatick ukldn"}, {T_HK_AUTOSAVE, "M"}, {T_LOAD_CFG_NET, "Nast nastaven ze st"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Nast C_W ze st"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Uloit nastaven"}, {T_HK_SAVE_CFG, "U"}, {T_CONTEST, "Zvod"}, {T_HK_CONTEST, "Z"}, {T_EDIT, "Edit"}, {T_HK_EDIT, "E"}, {T_BANDS, "Psma"}, {T_HK_BANDS, "P"}, {T_SUBWINS, "Okna"}, {T_HK_SUBWINS, "O"}, {T_BAND_SETTINGS_SC, "Nastaven pro psmo %c %s"}, {T_QRV_ON_THIS_BAND, "QRV na tomto psmu"}, {T_QRV_IN_THIS_CTEST, "QRV v tomto zvod"}, {T_READ_ONLY, "Pouze ke ten"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " Vys. zazen:"}, {T_POWER, " Vkon:"}, {T_RXEQUIP, " Pjm. zaz.:"}, {T_ANTENNA, " Antna:"}, {T_AGLASL, "vka zem;moe:"}, {T_OPS, " Opertoi:"}, {T_SPACES1, " "}, {T_REMARKS, " Poznmky:"}, {T_OK_SECTION_SINGLE, "Kategorie Single v OK"}, {T_OK_SECTION_MULTI, "Kategorie Multi v OK"}, {T_QRG_MIN, "Hranice psma od"}, {T_QRG_MAX, "do [kHz]"}, {T_ADIFBAND, "Nzev psma pro ADIF"}, {T_SKEDQRG, "Frek. pro skedy (lib. formt)"}, {T_BAND_LO, "LO transvertoru [Hz]"}, {T_BANDSW, "Hodnota pepnae psem"}, {T_RESPOP, "Zodpovdn opertor"}, {T_NAME, "Jmno Pjm:"}, {T_CALLSIGN, " Znaka:"}, {T_ADDRESS, " Adresa:"}, {T_POSTCODE, " PS:"}, {T_CITY, " Msto:"}, {T_COUNTRY, " Stt:"}, {T_PHONE, " Telefon:"}, {T_BBSEMAIL, " E-mail:"}, {T_QP0, " --nic -- "}, {T_QP1, " 1 QSOp*QSOp_m (Standardn IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK Provozn aktiv)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltsk zvody)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln den)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (distrikty)"}, {T_QP13, "13 kontinent (CQ WW DX Contest)"}, {T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Nsoben (Std. IARU)"}, {T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nov zvod"}, {T_CANT_TRUNC, "Nelze zkrtit soubor s popisem zvodu"}, {T_NAME_OF_CTEST, "Nzev zvodu:"}, {T_CALL_OF_CTEST, "Znaka v zvodu:"}, {T_CLUB_ST, "Klubov znaka:"}, {T_YOURWWL, "Tvj WWL:"}, {T_YOUREXC, "Tvj EXC:"}, {T_DATE_OF_CTEST, "Datum zvodu:"}, {T_QSOUSED, "QSO NR pouito"}, {T_QSOPM, " QSOp nsob.:"}, {T_WWLUSED, "WWL pouito"}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL nsob.:"}, {T_EXCUSED, "EXC pouito"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC nsob.:"}, {T_EXCNAME, " EXC jmno:"}, {T_PREFM, "PREF nsob:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, "DXC nsob.:"}, {T_RSTUSED, "RST pouito"}, {T_DEFRS, " Pednast.RS:"}, {T_DEFRST, "Pednast.RST:"}, {T_ALSORSTR, "Tak pro RST-R"}, {T_QP_CALC, " Vpoet QSOp:"}, {T_TO_CALC, "Vpoet celku:"}, {T_EDI_PROP, "EDI poloky"}, {T_RESPOP2, "Odpovdn opertor"}, {T_EDIT_QSO_CD, "Editace spojen %c: %03d"}, {T_CALLSIGN2, " Znaka:"}, {T_CLUB, " Klub:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Opertor:"}, {T_DATE, " Datum:"}, {T_MODE, " Md:"}, {T_RSTS, "Odes.RST:"}, {T_RSTR, "Pij.RST:"}, {T_QSONRS, "Ode.spoj:"}, {T_QSONRR, "Pi.spoj:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " tverec:"}, {T_REMARK, "Poznmka:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Poslat sked"}, {T_SELECT, "Vbr "}, {T_QRG, "Frekvence:"}, {T_WE_CALL, "J volm"}, {T_BAND, " Psmo:"}, {T_TIME, " as:"}, {T_DUPE_QSO, "Duplicitn QSO!"}, {T_CLEAR_THIS_QSO, "Smazat toto QSO"}, {T_EDIT_OLD_QSO, "Editovat star QSO"}, {T_MARK_OLD_QSO, "Oznait star QSO jako ERROR"}, {T_STORE_AS_DUPE, "Uloit toto jako DUPE"}, {T_BAD_CALL, "Tohle nevypad jako znaka"}, {T_N_CALLSIGN, "\nZnaka:"}, {T_AUTOSAVE_OPTS, "Automatick ukldn"}, {T_SAVE_AQ, "Uloit na disk po potu spojen: "}, {T_SAVE_AM, "Uloit na disk po potu minut: "}, {T_FSYNC, "Synchronizovat cache s diskem"}, {T_SAVE_AQF, "Uloit na disketu po potu spojen: "}, {T_SAVE_AMF, "Uloit na disketu po potu minut: "}, {T_DO_MOUNT, "Pipojit disketu pokud nen v /etc/mtab (N/A)"}, {T_FLOPPY_PATH, "Cesta k disket:"}, {T_MOUNT_CMD, "Pkaz pro pipojen (N/A): "}, {T_SW_SHELL, "Pk"}, {T_SW_QSOS, "Spoj"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Nedok"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Mapa"}, {T_SW_SCOPE, "Osc"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Peh"}, {T_SW_CHART, "Graf"}, {T_SHELL, "Pkazov dek"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk (rozhovor)"}, {T_SKEDS, "Skedy (dumluven spojen)"}, {T_UNFI, "Nedokonen spojen"}, {T_DXC, "DX Cluster"}, {T_STAT, "Statistiky"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Grafick mapa"}, {T_SCOPE, "Osciloskop"}, {T_QRV, "QRV list"}, {T_HF, "KV spojen"}, {T_KST, "KST chat"}, {T_CMD, "Pkaz"}, {T_RESPAWN, "Znovusputn [sek]:"}, {T_UNFI_QSO, "Nedokonen spojen"}, {T_N_REMARK, "\nPoznmka:"}, {T_NO_CQ, "Neexistuj dn vzvy"}, {T_TEXT, "Text:"}, {T_SPEED, "Rychlost [WPM]:"}, {T_REPEAT, "Opakovn"}, {T_DELAY, "ekn [0.1s]:"}, {T_ALLOW_UNDEF, "Povolit i kdy je nkter poloka nevyplnn"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Soubor:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP port:"}, {T_DEVICE, "Klovac zazen:"}, {T_INIT_SPEED, "Poten rychlost [WPM]:"}, {T_INIT_WEIGHT, "Vha CW (30-70):"}, {T_WPMFROM, "Rychlost WPM od"}, {T_WPMTO, "do"}, {T_USE_SPK, "Pout PC speaker"}, {T_LEADIN, "Pedstih PTT [ms]"}, {T_AUTGIVE, "V reimu Run dvat po [znaky]"}, {T_IGN_IFACE_S, "Ignoruji sov rozhran %-5s"}, {T_IGN_ADDR_S, "Ignoruji adresu %s"}, {T_ADD_IFACE_SSD, "Pidno rozhran=%-5s vesmr=%s:%d"}, {T_FORCED_ADDR, "Adresa navc %s"}, {T_TIMESKEW, "POZOR! Detekovn pli velk rozdl asu %d oproti %s:%d !\n"}, {T_DISCONNECTING_SD, "Odpojuji od %s:%d"}, {T_ACCEPTED_SD, "Akceptovno spojen od %s:%d (%s)"}, {T_CONNECTING_SD, "Pipojuji k %s:%d"}, {T_CONNECTED_SD, "Pipojeno k %s:%d"}, {T_DISCONNECTED_SD, "Odpojen od %s:%d"}, {T_LOADED_CFG_SSSS, "Nateno nastaven pro %s %s (%s,%s)"}, {T_LOADED_CW, "Natena C_W databze"}, {T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenalzen"}, {T_CANT_CREATE_HOME_S, "Nelze vytvoit adres %s"}, {T_CANT_LOAD_CFG, "Nelze nast konfiguraci!\nProgram neme pracovat sprvn!"}, {T_ERR_RC, "Dolo k chyb pi ten konfigurku!\nSoubor byl pravdpodobn uloen novjm Tukem !\nRadji neukldej konfiguraci nebo pijde o data v konfigurku!"}, {T_SES_QTR, " as "}, {T_SES_QRA, " Znaka "}, {T_SES_RST, " RST-O- RST-P- "}, {T_SES_QTH, " tverec "}, {T_SES_QRB, "Body/vzd hel"}, {T_SES_FLG, " Pzn"}, {T_SES_OPE, " Oper "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Poznmka "}, {T_SES_WELCOME, "Vt t Tuk! "}, {T_SES_PRESS_F10, "Stiskni F10 pro vstup do menu. "}, {T_SES_HAVE_FUN, "Uij si."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zem Celkem-b Prm"}, {T_SES_AVG, "Prm: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " tverce: %d"}, {T_SF_WWLS_UNDER, "----------------"}, {T_SF_EXCS, " EXC poloky: %d"}, {T_SF_EXCS_UNDER, "--------------------"}, {T_SF_MISS_EXCS, " Chybjc EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " Prefixy: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " Zem DXCC: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " Dlan loktory: %d"}, {T_SF_WKD_WWLS_UNDER, "----------------------"}, {T_SF_QSO_WWL4, " Spojen do velkch loktor: %d"}, {T_SF_QSO_WWL4_UNDER, "-----------------------------------"}, {T_SF_STATS_BAND, " Statistiky pro psmo %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Zvod: %s"}, {T_SF_ALLBQSOS, "Spojen na vech psmech: %d"}, {T_SF_ALLBQSOP, "Body za spojen na vech psmech: %d"}, {T_SF_ALLBPTS, "Celkov poet bod: %d"}, {T_SF_QSOS, "Spojen: %d"}, {T_SF_QSOP, "Body za spojen: %d"}, {T_SF_PTS, "Body: %d"}, {T_SF_AVG_PTS, "Prmer bod/spojen: %5.2f"}, {T_SF_AVG_QSOP, "Prmr bod za spojen/spojen: %5.2f"}, {T_BAND_RO, "Psmo je pouze ke ten"}, {T_THIS_BAND, "Toto psmo"}, {T_OTHER_BANDS, "Ostatn psma"}, {T_CW_DB, "C_W databze"}, {T_PROC_EXITED, "*** Proces skonil\n"}, {T_WE_CALL2, "my volme"}, {T_WE_LISTEN, "my poslouchme"}, {T_QSL, "Slben QSL"}, {T_RECORD, " Nahrvn provozu"}, {T_MAXMIN, "Max. doba nahrvn"}, {T_TEMPLATE, "ablona pro nahrvan soubor"}, {T_PCM8, "8 bitov PCM"}, {T_PCM16, "16 bitov PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Poet kanl"}, {T_SAMPLERATE, "Vzorkovac frekvence"}, {T_FILLOP, "Vypl znaky opertor"}, {T_HK_FILLOP, "V"}, {T_RECAQRB, "Pepoti QRB,QTF"}, {T_HK_RECAQRB, "P"}, {T_NETWORK, "S a trasovn"}, {T_HK_NETWORK, "T"}, {T_IF_IGNORE, "Ignorovat interfejsy:"}, {T_IP_IGNORE, " Ignorovat podst:"}, {T_IP_ANNOUNCE, " Annoncovat do st:"}, {T_TRACE_BCAST, "Trasovat broadcasty "}, {T_TRACE_SOCK, "Trasovat sockety"}, {T_TRACE_RECV, "Trasovat pijat data"}, {T_TRACE_SEND, "Trasovat odeslan data"}, {T_TRACE_QSOS, "Trasovat spojen"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Svazek nepipojen %s"}, {T_RECSRC_NONE, "Nenastavovat"}, {T_RECSRC_MIC, "Mikrofon"}, {T_RECSRC_LINE, "Linkov vstup"}, {T_NEW_CALL, "Nov!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV na %s"}, {T_SKED_QRG, "QRG pro skedy"}, {T_HK_SKED_QRG, "G"}, {T_N_SKED_QRG, "\nQRG pro skedy:"}, {T_GRAB_BAND, "Pevzt psmo"}, {T_HK_GRAB_BAND, "P"}, {T_FORCE_RUN, "RUN md nsiln"}, {T_HK_FORCE_RUN, "R"}, {T_EXPORT_STATS, "Exportovat statistiky"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX spojen:"}, {T_SF_TOP_DX_UNDER, "----------------------"}, {T_ROTAR, "Rottor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimut"}, {T_ELEVATION, "Elevace"}, {T_CH_SPY, "pehovn"}, {T_HK_CH_SPY, "E"}, {T_CH_ENDSPY, "Konec pehovn"}, {T_HK_CH_ENDSPY, "N"}, {T_EXPORT_TITLPAGE, "Exportovat tituln strnku"}, {T_HK_EXPORT_TITLPAGE, "L"}, {T_BREAK_RECORD, "Ukonit nahrvn"}, {T_HK_BREAK_RECORD, "U"}, {T_GLOBAL_OPERATOR, "Zmnit na vech psmech"}, {T_GLOBAL_OPERATOR2, "Globln"}, {T_MAXFRAG, "Max. poet fragment (>=2)"}, {T_PLAY_LAST, "Pehrt posledn nahrvku"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Rzn nastaven"}, {T_HK_MISCOPTS, "R"}, {T_LOGLINES, "dky logu: "}, {T_SKEDSHIFT, "Posuv skedu (minuty): "}, {T_STARTBAND, "Psmo po startu: "}, {T_GFX_X_CH, "Rozlien (znaky):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Rozlien (body):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Informace o znace"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSO/hod: %d"}, {T_SF_QSOP_HOUR, "Body/hod: %d"}, {T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d"}, {T_SF_HOURS, " Hodiny"}, {T_SF_HOURS_UNDER, "----------"}, {T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr bod/QSO"}, {T_QSO_CHECK, "Kontrola spojen"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "A"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Minimln msto na disku [MiB]"}, {T_FORMAT, "Formt zznamu"}, {T_PCM_PLAY, "Alsa pehrvn"}, {T_PCM_REC, "Alsa zznam"}, {T_PERIOD, "Trvn periody [ms]"}, {T_BUFFER, "Trvn bufferu [ms]"}, {T_ALSA_MIXER, "Alsa mixer"}, {T_CAPTURE, "Zdroj zznamu"}, {T_DSP, "Cesta k /dev/dsp"}, {T_MIXER, "Cesta k /dev/mixer"}, {T_RECSRC, "Zdroj pro zznam"}, {T_PA_PLAY, "Portaudio pehrvn"}, {T_PA_REC, "Portaudio zznam"}, {T_HOSTNAME, "Jmno stroje:"}, {T_SLASHKEY, "Klvesa pro lomtko"}, {T_FIXQRG, "Kalibrovat frekvenci"}, {T_HK_FIXQRG, "K"}, {T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]"}, {T_BAD_QRG, "Chybn zadan frekvence"}, {T_CALLSIGN3, "Znaka"}, {T_CALLSIGN_KST, "Znaka stanice na KST:"}, {T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s"}, {T_WINKEYOPTS, "Nastaven Winkey"}, {T_WK_WK2, "Rychl inicializace Winkey2"}, {T_WK_USEPOT, "Pout potenciometr"}, {T_WK_USEBUT, "Pout tlatka"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Run kl"}, {T_WK_SWAP, "Prohodit pastiku (levk)"}, {T_RIGOPTS, "Rdio"}, {T_HK_RIGOPTS, "I"}, {T_RIG_DEVICE, "Port:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudov rychlost: "}, {T_RIG_CIV, "Adresa CI-V (hex)"}, {T_RIG_FREQSHIFT, "Frek. posun SSB->CW"}, {T_RIG_CHOOSE, "Vybrat"}, {T_ROTAROPTS, "Rottory"}, {T_HK_ROTAROPTS, "O"}, {T_DSSAVER, "Vypnout spoi obrazovky"}, {T_DESC, "Popis"}, {T_ROT_NONE, "Nic"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA sr. port"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA USB"}, {T_ROT_HAMLIB, "Hamlib"}, {T_ROT_REMOTE, "Remote"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Sr. slo #"}, {T_ROT_ADD, "Pidat nov rottor"}, {T_HK_ROT_ADD, "P"}, {T_ROT_REMOVE, "Smazat rottor"}, {T_HK_ROT_REMOVE, "S"}, {T_TIMEOUT, "asov limit:"}, {T_BEAMWIDTH, "ka laloku"}, {T_SADDR, "Komunikan adresa:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Psmeno pro vzdlen rottor"}, {T_QSOGLOB, "Globln slo spojen"}, {T_PREFGLOB, "Globl prefix"}, {T_NOT_RECORDING_S, "Nezaznamenv se - %s"}, {T_SKEDCOUNT, "Poet sked v popup okn: "}, {T_FONTHEIGHT, "Vka fontu (16-32): "}, {T_RIG_POLL_MS, "Interval dotaz [ms]: "}, {T_RIG_QRG_R2T, "Zmnit psmo z rdia"}, {T_RIG_QRG_T2R, "Zmnit psmo na rdiu"}, {T_RIG_MODE_T2R, "Zmnit md na rdiu"}, {T_RUN_MODE, "Run md"}, {T_HK_RUN_MODE, "U"}, {T_SP_MODE, "Vyhledvac md"}, {T_HK_SP_MODE, "V"}, {T_RIG_CLR_RIT, "Smazat RIT po uloen QSO v reimu Run"}, {T_RIG_DEBUG, "Chybov vpis rdia"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Psmo QSO Body Nso"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Posl. Q-%s B-%s"}, {T_EVEN, "TX sud"}, {T_HK_EVEN, "S"}, {T_ODD, "TX lich"}, {T_HK_ODD, "L"}, {T_1ST, "TX prvn periodu"}, {T_HK_1ST, "P"}, {T_2ND, "TX druh perioda"}, {T_HK_2ND, "D"}, {T_HF_SCORE, "Skre:"}, {T_EXPMODE, "Expedin md"}, {T_TTTYPE, "Jen slice jsou"}, {T_ROT_POLL_MS, "Interval dotaz [ms]:"}, {T_VERSION, "Verze"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Vzdlen stroj:"}, {T_REMOTE_PORT, "Vzdlen TCP port:"}, {T_REMOTE_PASS, " Vzdlen heslo:"}, {T_STARTING_AC, "Spoutm A/C"}, {T_STOPPING_AC, "Ukonuji A/C"}, {T_ASL_5D_M, "Vka: %5d m"}, {T_SPEED4D_KMH, "Rychlost:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Trvn: %ld"}, {T_EXPORTING_S, "Exportuji %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Nelze otevt zvukovku Alsa '%s': %s"}, {T_EXPORTING, "Exportuji ..."}, {T_TERMINATING_CONVERSION_TABLES, "Ukonuji konverzn tabulky"}, {T_LOADING_CHARTS, "Natm grafy"}, {T_INITIALIZING_CWPTT_CONTROL, "Inicializuji klovn CW/PTT"}, {T_NO_PPDEV, "Nen zakompilovna podpora pro klovn paralelnm portem"}, {T_NO_DAVAC4_SUPPORT, "Nen zakompilovna podpora pro Dva 4, zkontrolujte libftdi"}, {T_CANT_CREATE_PIPE, "Nelze vytvoit rouru"}, {T_TERMINATING_CWDAEMON, "Ukonuji klovn CW/PTT"}, {T_INIT_CWDB, "Inicializuji databazi loktor"}, {T_TERM_CWDB, "Ukonuji databzi loktor"}, {T_LOADING_CWDB, "Natm databzi loktor"}, {T_QRV_ON, "QRV na: "}, {T_CANT_INIT_FTDI, "Chyba pi inicializaci knihovny libftdi pro Dva 4"}, {T_CANT_OPEN_DAVAC4, "Nemohu otevt USB zazen %04x:%04x pro Dva 4, chyba %d %s"}, {T_CANT_SET_BAUDRATE, "Nemohu nastavit rychlost pro Dva 4, chyba=%d %s"}, {T_CANT_ENABLE_BITBANG, "Nemohu zapnout bitbang reim, chyba=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Chyba pi zpisu do Dvae 4, chyba=%d %s"}, {T_INIT_SOUNDCARD, "Inicializuji zvukovou kartu"}, {T_NO_OSS, "Podpora OSS nen zakompilovna"}, {T_NO_ALSA, "Podpora Alsa nen zakompilovna"}, {T_NO_PORTAUDIO, "Podpora Portaudio nen zakompilovna"}, {T_NO_SNDFILE, "Podpora Libsndfile nen zakompilovna"}, {T_NO_SNDPIPE, "Podpora pro Sndpipe nen zakompilovna"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Inicializuji DXCC databzi"}, {T_FREE_DWDB, "Ukonen DXCC databzi"}, {T_LOAD_DWDB, "Natm DXCC databzi"}, {T_CALLSIGN_UNKNOWN, "Znaka je neznm v C_W databzi\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Neznm DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Nesouhlas prefix and velk loktor\n"}, {T_KNOWN_CALL_UNK_LOC, "Znm znaka z neznmho loktoru\n"}, {T_CALL_WITHOUT_P, "Znaka je bez /P a v C_W existuje znaka s /P\n"}, {T_CALL_WITHOUT_D, "Znaka je bez /%d a v C_W existuje znaka s /%d\n"}, {T_CALL_IS_WITH_P_AND, "Znaka je s /P a v C_W existuje znaka bez /P nebo CEPT prefixu\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Nalezeny dal podobn znaky z tohoto loktoru. Mon %s?\n"}, {T_CALL_ON_BAND_S, "Znaka na psmu %s je %s\n"}, {T_LOCATOR_ON_BAND, "Loktor na psmu %s je %s\n"}, {T_QSO_CHECK_LIST, " Tuk - vpis kontroly spojen\n"}, {T_CALL_SN, " Znaka: %s\n"}, {T_CONTEST_SN, " Zvod: %s\n"}, {T_DATE_SN, " Datum: %s\n"}, {T_CHECKING_S, "Kontroluji %s"}, {T_BAND_C_SN, " Psmo %c %s\n"}, {T_SEEMS_TO_BE_OK, "Zd se bt O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s nenalezen\n"}, {T_0X_NOT_IN_DB, " 0x (nen v databzi)"}, {T_NAME_IS, "Jmno: %s - jmno je %s\n"}, {T_NAME_UNKNOWN, "Name: %s - jmno neznm\n"}, {T_INIT_DXC, "Inicializuji DX cluster"}, {T_FREE_DXC, "Ukonuji DX cluster"}, {T_HK_SELECT, "V"}, {T_HIDE, "Skrt"}, {T_HK_HIDE, "S"}, {T_INFO, "Informace"}, {T_HK_INFO, "I"}, {T_USE, "Pout"}, {T_HK_USE, "P"}, {T_BAD_DXC_PORT, "*** Chybn TCP port pro DX cluster %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Stiskni ENTER pro pipojen k DXC ***\n"}, {T_CANT_RESOLVE, "*** Nemohu zjistit IP adresu %s: %s ***\n"}, {T_HOST_RESOLVED, "*** IP adresa zjitna "}, {T_CANT_CREATE_SOCKET, "*** Nemohu vytvoit soket. %s ***\n"}, {T_CONNECTING_TO, "*** Pipojuji k %s ***\n"}, {T_CANT_CONNECT_TO, "*** Nemohu se pipojit k %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Pipojuji k soketu %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Chyba pi ten soketu: %s ***\n"}, {T_DISCONNECTED, "\n*** Odpojeno ***\n"}, {T_RESOLVING, "*** Zjiuji IP adresu %s ***\n"}, {T_LOADED_LOCS_NAMES, "Nateno %d loktor a %d jmen z %s"}, {T_SAVED, "Uloeno %s"}, {T_LOADING_CONTEST, "Natm zvod %s"}, {T_LOADING_LOGFILE, "Natm log"}, {T_LOADING_TALK, "Natm talk"}, {T_SEARCH_FILES, "Vyhledvm soubory se zvodem"}, {T_LOADING_BAND, "Natm psmo %s"}, {T_LOADING_SPY, "Natm mrovn"}, {T_LOADING_HICALLS, "Natm zvraznn"}, {T_LOADING_QRV, "Natm QRV databzi"}, {T_LOADING_CHART, "Natm grafy"}, {T_SAVING_CONTEST, "Ukldm zvod"}, {T_UPD_INT_DATA, "Aktualizuji intern data"}, {T_CALC_STATS, "Vypotvm statistiky"}, {T_ANN_OVER_NET, "Anoncuji po sti"}, {T_ACTIVATING_BAND, "Aktivuji psmo %s"}, {T_UPDATING_WKD, "Aktualizuji dlan znaky"}, {T_UPDATING_QRBQTF, "Aktualizuji vzdlenosti a azimuty"}, {T_UPDATING_GAIN, "Aktualizuji graf zisku"}, {T_SEN_OVER_NET, "Poslm informaci po sti"}, {T_INIT_EXCDB, "Spoutm EXC databzi"}, {T_FREE_EXCDB, "Ukonuji EXC databzi"}, {T_INIT_FFT, "Spoutm Fourierovu analzu"}, {T_FREE_FFT, "Ukonuji Fourierovu analzu"}, {T_INIT_ROTAR, "Spoutm rottory"}, {T_FREE_ROTAR, "Ukonuji rottory"}, {T_LOCATOR, "Loktor:"}, {T_BAND2, "Psmo"}, {T_POINTS, "Body"}, {T_AVG, "Prmr"}, {T_INIT_HTTPD, "Spoutm HTTP server"}, {T_FREE_HTTPD, "Ukonuji HTTP server"}, {T_NO_CONTEST_OPENED, "

dn zvod nen oteven

\n"}, {T_NO_CONTEST_OPENED2, "dn zvod nen oteven"}, {T_STATS, "Statistiky"}, {T_BAND_NOT_FOUND, "Psmo nenalezeno"}, {T_BAND_C_NOT_FOUND, "

Psmo %c nenalezeno

"}, {T_QSOS_IN_DATABASE, "spojen v databzi"}, {T_TUCNAK_ONLINE_LOG, "Tuk - online log"}, {T_DATE2, "Datum"}, {T_UTC, "UTC"}, {T_CALL, "Znaka"}, {T_CALL_NOT_FOUND, "Znaka nenalezena"}, {T_CANT_LOAD_INPOUT, "Chyba pi natn inpout32.dll, chyba %d"}, {T_FREE_TERM, "Ukonuji terminl"}, {T_TERM_KEYMAPS, "Ukonuji mapovn klves"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AkKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Omyl"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "dost o sked"}, {T_HK_ASK_FOR_SKED, "S"}, {T_MESSAGE, "Zprva"}, {T_HK_MESSAGE, "Z"}, {T_AC_INFO, "A/C informace"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Posln sel po KST je zakzno\n"}, {T_RESOLVED, "*** IP adresa zjitna "}, {T_ENTER_TO_CONNECT_KST, "\n*** Stiskni ENTER pro pipojen k ON4KST ***\n"}, {T_SENDING_SH_US, "*** Poslm /sh us ...\n"}, {T_SKIP_LINE, "Peskakuji dek %d '%s'"}, {T_CANT_CREATE_HOME, "Chyba pi vytven domovskho adrese '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' mus bt adres (md 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Adres Tuka je %s"}, {T_INIT_MAP, "Spoutm polrn mapu"}, {T_DISABLE_SAVER, "Vypnm eti obrazovky"}, {T_STARTING_TUCNAK, "Startuji Tuka"}, {T_FREE_MAP, "Ukonuji polrn mapu"}, {T_INIT_MASTERDB, "Spoutm master databzi"}, {T_FREE_MASTERDB, "Ukonuji master databzi"}, {T_LOAD_MASTERDB, "Natm master databzi"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tuk SVN verze: %s\nLibzia SVN verze: %s"}, {T_DIRECTORY_SCAN, "Natn adrese"}, {T_V3_COMPATIBILITY, " (kompatibilita s v3)"}, {T_RELOAD_INTERFACES, "Nast rozhran"}, {T_SET_READONLY, "Psma pouze ke ten"}, {T_CHANGE_TYPE, "Zmnit typ"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Otevt pipojen"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Ukonit pipojen"}, {T_HK_KILL_CONNECTION, "U"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Exportovat do TXT"}, {T_ADD_CONTEST, "Pidat zvod"}, {T_HK_ADD_CONTEST, "P"}, {T_ADD_FILES, "Pidat soubor(y)"}, {T_HK_ADD_FILES, "S"}, {T_ADD_CONTESTS, "Pidat zvody"}, {T_HK_ADD_CONTESTS, "Z"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Test reakce na pd"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Test vnitn chyby"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Uloit hashe spojen"}, {T_HK_DUMP_RW_BANDS, "H"}, {T_UPDATE, "Aktualizovat program"}, {T_HK_UPDATE, "A"}, {T_SETTINGS, "Nastaven"}, {T_HK_SETTINGS, "N"}, {T_UPLOAD_TO_VHFNET, "Nahrt denky na Moravany"}, {T_HK_UPLOAD_TO_VHFNET, "M"}, {T_MEDIAWIKI_UPLOAD, "Nahrt report na MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "O"}, {T_VOIP_SPY, "VOIP mrovn"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "Konec VOIP mrovn"}, {T_HK_END_VOIP_SPY, "K"}, {T_OLD_TEST_NO_SPY, "Zvod je star, nelze mrovat"}, {T_NETWORK_SCAN, "Skenuji s"}, {T_HTTPD_OPTIONS, "Nastaven HTTPD"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "Letadla (A/C)"}, {T_HK_AC_OPTIONS, "L"}, {T_SDR_OPTIONS, "SDR"}, {T_HK_SDR_OPTIONS, "D"}, {T_OTHER, "Jin:"}, {T_NONE, "Nic "}, {T_RSTS2, "RST-Od"}, {T_RSTR2, "RST-P"}, {T_QSONRR2, "QSO-P"}, {T_EXC2, "EXC"}, {T_UNUSED, "Nepouit"}, {T_USED_6, "Poui.(6)"}, {T_OPT_6, "Volit.(6)"}, {T_USED_4, "Poui.(4)"}, {T_OPT_4, "Volit.(4)"}, {T_FREE, "Voln "}, {T_VERIFIED, "Oven"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Potvrdit WWL"}, {T_CONFIRM_EXC, "Potvrdit EXC"}, {T_FONT_SIZE, "Velikost fontu: "}, {T_DXC_HOSTNAME, "DXC stroj:"}, {T_TCP_PORT, "TCP port:"}, {T_DXC_USERNAME, "DXC uivatel:"}, {T_PASSWORD, "Heslo:"}, {T_KST_USERNAME, "KST uivatel:"}, {T_KST_YOURNAME, "KST jmno:"}, {T_SDR, "SDR"}, {T_PARPORT, "paraleln"}, {T_TTYS, "sriov"}, {T_AUDIO_SUBSYSTEM, "Audio subsystm:"}, {T_PLAYBACK_VOLUME, "Hlasitost pehrvn"}, {T_CAPTURE_VOLUME, "Hlasitost zznamu"}, {T_ENABLE_REMOTE_CONNECT, "Povolit pipojen ke vzdlenmu"}, {T_TRACE_RIG, "Trasovat rdio"}, {T_TRACE_KEYS, "Trasovat klvesy"}, {T_SAVE_RESTART, "Muste uloit konfiguraci a restartovat Tuka"}, {T_FULLSCREEN, "Na celou obrazovku"}, {T_TOUCH, "Dotykov ovldn"}, {T_ALT_QWER, "Alt pepne QWER.. na 1234.."}, {T_NO_LOCKS, "Nezamykat porty"}, {T_PORTRAIT_ORIENTATION, "Orientace na vku"}, {T_REVERSE, "Obrcen"}, {T_CHOOSE_RIG, "Vybrat rdio"}, {T_RIG_D, "Rdio %d"}, {T_NEW_RIG, "Nov rdio"}, {T_ENABLED, "Povoleno"}, {T_SET_PTT_ON_RADIO, "Zapnout PTT na rdiu"}, {T_DISABLED, " (zakzno)"}, {T_ADD_RIG, "Pidat rdio"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rottor %d"}, {T_ENABLE, "Povolit"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Zobrazit privtn informace"}, {T_LOAD_FROM_NET, "Nast ze st"}, {T_LOAD_CWDB, "Nast C_W databzi"}, {T_LOAD_NAMEDB, "Nast databzi jmen"}, {T_LOAD_QRVDB, "Nast QRV databzi"}, {T_READONLY_BANDS, "Psma pouze ke ten"}, {T_ENABLE_AC, "Povolit A/C"}, {T_AC_URL, "Alternativn URL pro data z radaru"}, {T_K_FACTOR, "K_faktor troposfry"}, {T_AC_AREA_WIDTH, "ka odrazn oblasti v km"}, {T_AC_EL_ANGLE, "Minimln hel elevace"}, {T_AC_MAX_EL_ANGLE, "Maximln hel elevace"}, {T_AC_MIN_DURATION, "Minimln doba odraz [s]"}, {T_AC_MAX_DIFF, "Max. rozdl odrazovch hl"}, {T_BAD_NUMBER_RANGE, "Chybn rozsah sla"}, {T_AF_SRATE_GREATER_SRATE, "Vzork. kmit. audia neme bt vy ne vzork. kmitoet"}, {T_SRATE_DIVISIBLE, "Vzork. kmitoet mus bt dliteln audio vzork. kmitotem"}, {T_NO_DEVICE, "dn zazen"}, {T_IQ_SOURCE, "Zroj IQ signlu:"}, {T_WAV_FILE, "Soubor WAV"}, {T_WAV_FILE_NAME, "Jmno WAV souboru"}, {T_AF_OUTPUT, "Audio vstup:"}, {T_AF_SAMPLE_RATE, "Vzork. kmit. audia"}, {T_BLOCK_SIZE, " Velikost bloku"}, {T_CW_FILTER, " CW filtr od"}, {T_TO_HZ, "do [Hz]"}, {T_SSB_FILTER, " SSB filtr"}, {T_INIT_NAMEDB, "Spoutm databzi jmen"}, {T_FREE_NAMEDB, "Ukonuji databzi jmen"}, {T_LOAD_NAMEDB2, "Natm databzi jmen"}, {T_INIT_NET, "Spoutm s"}, {T_FREE_NET, "Ukonuji s"}, {T_ONLY_55555_CAN_REMOTE, "Pouze Tuk s portem 55555 se me pipojit ke vzdlenmu kvli prevenci routovacch smyek"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Nemohu se pipojit sm na sebe (rozhran lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Nemohu se pipojit sm na sebe (rozhran %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Nelze zjistit IP adresu vzdlenho Tuka %s"}, {T_TIME_WAS_SET, "as byl nastaven"}, {T_FAILED_TO_SET_TIME, "Chyba pi nastaven asu"}, {T_INIT, "INICIALIZUJI"}, {T_CONNECTING, "PIPOJUJI"}, {T_CONNECTED, "PIPOJENO"}, {T_WAIT_ACK, "EK.POTVRZ"}, {T_DISCONNECTED2, "ODPOJENO"}, {T_DEAD, "MRTV"}, {T_LONG_XFER, "DLOUH.PENOS"}, {T_AUTHENTICATED_USER_S, "Oven uivatel %s"}, {T_BAD_AUTHENTICATION_S, "Chyba oven %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Zaal dlouh penos, prosm EKEJTE"}, {T_LONG_TRANSFER_FINISHED, "Dlouh penos dobhl"}, {T_INIT_NTP, "Spoutm monitorovn NTP"}, {T_FREE_NTP, "Ukonuji monitorovn NTP"}, {T_NO_NTP, "POZOR! as na tomto stroji nen synchronizovn. Prosm pouijte NTP."}, {T_INIT_SPEAKER, "Spoutm PC speaker"}, {T_FREE_SPEAKER, "Ukonuji PC speaker"}, {T_CANT_PLAY, "Chyba pi pehrvn %s - %s"}, {T_CANT_SEEK_TO_END, "Chyba pi nastaven ukazatele na konec souboru %s - %s"}, {T_CANT_SEEK_TO_START, "Chyba pi nastaven ukazatele na zatek souboru %s - %s"}, {T_CANT_OPEN, "Chyba pi oteven %s %s"}, {T_TIP_MKNOD, "Tip: spuste jako root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: spoute jako root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Chyba pi pepnut %s do EPP mdu %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Chyba exkluzivnho pstupu k %s %s"}, {T_CANT_CLAIM, "Nelze zabrat %s %s"}, {T_INIT_QRVDB, "Spoutm QRV databzi"}, {T_FREE_QRVDB, "Ukonuji QRV databzi"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AkKst"}, {T_START, "Start"}, {T_DUR, "Trv"}, {T_NR, "s"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: azen, "}, {T_A_ALL, "A: ve"}, {T_ENTER_SPACE_EDIT, ", Enter, Mezera, E: editovat, Insert, Delete, U: obnovit, /: hledat"}, {T_LOAD_QRVS, "Natm QRV"}, {T_UNSPECIFIED, "nespecifikovno"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBo CWp"}, {T_CWS_SSBR, "CWo SSBp"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "Pidna chyba na psmo %c, slo spojen %d\n"}, {T_FOUND_D_ERRORS, "Dolo k %d chybm%s pi ten %s"}, {T_FOUND_D_ERRORS_RC_NET, "Dolo k %d chybm pi ten konfigurace ze st"}, {T_REGISTRATED_ROTATORS, "Registrovan rottory:"}, {T_UNSUPPORTED_ROTATOR, "Nepodporovan typ rottoru %d\n"}, {T_WAIT_HL_ROT_THREAD, "ekm na vlkno hamlib rottoru"}, {T_INIT_ROTARS2, "Spoutm rottory"}, {T_UNKNOWN_ROTAR, "Neznm rottor '%s'\n"}, {T_ROTAR_ERROR_S, "Chyba rottoru: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Chyba zznamu ze SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Chyba pehrvn na SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Chyba oteven (pehrvn) virtuln zvukovky"}, {T_CANT_READ_FROM, "Chyba ten z"}, {T_CANT_WRITE_TO, "Chyba zpisu do"}, {T_MULTIPLIED_WWLS_D, " Nsobiov loktory: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Aktualizace"}, {T_ENTER_TO_KST, "*** Stiskni ENTER pro pipojen k ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Chybn jmno aktualizanho balku"}, {T_CANT_EXECUTE_INSTALLER, "Chyba sputn instaltoru, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Aktualizace Tuka selhala"}, {T_UPDATE_FAILED, "Aktualizace selhala"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Aktualizace selhala, neznm formt odpovdi."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Aktualizace Tuka selhala. %s"}, {T_NEW_VERSION_AVAIL, "K dispozici je nov verze %s. Aktualizujte v menu Soubor, Aktualizace."}, {T_NO_NEW_VER, "Novj verze nen k dispozici."}, {T_READING_LIST_OF_OPENED_CONTESTS, "tu seznam otevench zvod..."}, {T_CHOOSE_CONTEST, "Vybrat zvod"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "Neexistuje zvod k uploadu"}, {T_OBTAINING_CONTEST_WEB_FORM, "Zskvm formul zvodu..."}, {T_ALL_EDI_FILES_PROCESSED, "Vechny EDI soubory byly zpracovny."}, {T_UPLOADING_LOG_FILE_S, "Uploaduji soubor denku %s ..."}, {T_UPLOADING_BAND_S, "Uploaduji psmo %s"}, {T_CONFIRMING_LOG, "Potvrzuji denk..."}, {T_RESULT_ERROR, "*** CHYBA, prosm pette si chybov hlen ve"}, {T_LOG_IS_NOT_VALID, "Denk nen platn. Prosm zkontrolujte chybov hlen a opakujte: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Natm nahlen vsledky..."}, {T_LOGS_UPLOADED, "Upload denk dokonen."}, {T_HTTP_STATUS, "Stav HTTP: "}, {T_LOG_UPLOAD, "Upload denku"}, {T_VOIP_NO_INITIALIZED, "VOIP nebylo inicializovno"}, {T_PAGE_NAME, "Nzev strnky"}, {T_OVERWRITE_EXISTING_FILES, "Pepsat existujc soubory"}, {T_SITE_URL, "URL webovch strnek"}, {T_USERNAME, "Uivatel"}, {T_PASSWORD2, " Heslo"}, {T_EXPORT_MAP, "Exportovat mapu"}, {T_EXPORT_CHART, "Exportovat graf"}, {T_MEDIAWIKI_UPLOAD2, "Upload na Mediawiki"}, {T_BAD_AUTH_USER, "Chybn uivatel %s != %s"}, {T_BAD_AUTH_PASS, "Chybn heslo %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Zvody nejsou stejn: Formt AC paketu"}, {T_CANT_GET_FMTS, "Chyba pi zjitn podporovanch audio formt: %s"}, {T_CANT_SET_FMT, "Chyba pi nastaven audio formtu %d, doporuen %d: %s"}, {T_CANT_SET_FMT_RET, "Chyba pi nastaven doporuenho audio formtu %d, vsledek %d: %s"}, {T_CANT_SET_FALLBACK, "Chyba pi nastaven nouzovho audio formtu %d, vsledek %d: %s"}, {T_CANT_SET_CHANNELS, "Chyba pi nastaven kanl %d, doporueno je %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Chyba pi nastaven doporuench kanl %d, vsledek %d: %s"}, {T_CANT_SET_RATE, "Chyba pi nastaven vzorkovn %d, doporueno %d: %s"}, {T_CANT_SET_RATE_RET, "Chyba pi nastaven doporuenho vzorkovn %d, vledek %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Chyba pi nastaven velikosti bloku %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Neznm zazen PortAudio %d"}, {T_CANT_OPEN_PA_STREAM, "Chyba pi oteven zazen PortAudio %d pro %s: %s"}, {T_RECORD2, "zznam"}, {T_PLAYBACK, "pehrvn"}, {T_CANT_PA_STREAM, "Chyba %s zazen PortAudio %d: %s"}, {T_CANT_STOP_PA, "Chyba pi zastaven zazen PortAudio: %s"}, {T_CANT_CLOSE_PA, "Chyba pi zaven zazen PortAudio: %s"}, {T_TIP_RMMOD, "Tip: zkuste spustit jako root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: nebo zabijte procesy vypsan \"lsof %s\""}, {T_CANT_SET_STROBE, "Chyba pi nastaven parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Neznm slo rottoru %d nebo chyba inicializace"}, {T_CANT_CREATE_HL_ROT_THR, "Nelze vytvoit vlkno pro rottor\n"}, {T_INIT_SERIAL_DEVICES, "Spoutm sriov zazen"}, {T_BAD_CHECKSUM, "Chybn kontr. souet"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Chybn odpov"}, {T_UNKNOWN_FUNCTION, "Neznm funkce"}, {T_UNKNOWN_ERROR_CODE, "Neznm chybov kd"}, {T_CANT_CREATE_SDR_THR, "Chyba pi vytven vlkna pro SDR\n"}, {T_WAIT_FOR_SDR_THR, "ekm na ukonen vlkna SDR"}, {T_QSO_REQ_FROM_SP, " dost o QSO od S&P "}, {T_QSO_REQ_SENT, " dost o QSO poslna RUNu "}, {T_GO, " Je! "}, {T_LOCATION_UNKNOWN, "Neznm poloha"}, {T_DEGREE, "st."}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s v %-6s (%dkm, %d%s) v %s %s"}, {T_CANT_OPEN_FILE_S_S, "Chyba pi oteven souboru '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Chyba pi oteven zvukov roury"}, {T_INIT_SSB_CQ, "Spoutm SSB vzvy"}, {T_FREE_SSB_CQ, "Spoutm SSB vzvy"}, {T_NO_FILE, "Soubor nebyl specifikovn"}, {T_UNSUP_CHANNELS, "Nepodporovan poet kanl = %d"}, {T_FLOAT_UNSUPP, "Soubory v plovouc dov rce nejsou podporovny"}, {T_CANT_OPEN_DSP_PLAY, "Chyba pi pehrvn na DSP %s"}, {T_REC_DISABLED, "zznam zakzn"}, {T_CONTEST_TOO_OLD, "zvod je pli star"}, {T_NO_FREE_DISK_SPACE, "Nedostatek volnho msta na disku pro %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Chyba pi zpisu do souboru %s: %s"}, {T_CANT_OPEN_DSP_REC, "Cjuna pi zznamu z DSP %s"}, {T_NO_DISK_SPACE, "Nedostatek volnho msta na disku pro soubor"}, {T_CANT_PLAY_FILE, "Chyba pi pehrt souboru %s - %s"}, {T_CANT_WRITE_SS, "Chyba pi zpisu do souboru %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "Neexistuje dn posledn nahrvka"}, {T_NO_MACRO_IN_TEMPLATE, "V SSB ablon chyb makro %%"}, {T_NEW_WINDOWS_3, "Pozor, od verze 3.00 existuj typy oken speciln pro DX cluster a ON4KST.\nPoskytuj mnohem lep funknost ne shell.\n\n"}, {T_ENTER_TO_DXC2, "*** Stiskni ENTER pro pipoje k DXC ***"}, {T_LOADING_S, "Natm %s"}, {T_INVALID_WINDOW_TYPE, "Chybn typ okna %d\n"}, {T_INIT_RIG, "Spoutm ovldn rdia %d"}, {T_RIG_ERROR, "Chyba rdia: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Chyba pi vytven vlkna pro rdio\n"}, {T_FREE_RIG, "Ukonuji ovldn rdia %d"}, {T_WAIT_FOR_RIG_THR, "ekm na vlkno rdia"}, {T_INVALID_PARAM, "Neplat.parametr"}, {T_RIG_INVALID_CONFIG, "Chy.konfigurace"}, {T_RIG_NOT_ENOUGH_MEM, "Nedostat.pamti"}, {T_RIG_NOT_IMPLEMENTED, "Neimplementovn"}, {T_RIG_COMM_TIMEOUT, "Timeout pkazu"}, {T_RIG_IO_ERROR, "Chyba I/O "}, {T_RIG_INTERNAL_ERROR, "Vnitn chyba "}, {T_PROTOCOL_ERROR, "Chyba protokolu"}, {T_RIG_COMMAND_REJECT, "Pkaz odmtnut"}, {T_RIG_ARG_TRUNCATED, "Argume. zkrcen"}, {T_RIG_F_NOT_AVAILABLE, "Funk.nedostupn"}, {T_RIG_VFO_NOT_TARGET, "VFO neexistuje "}, {T_RIG_ERROR_ON_BUS, "Ch. na sbrnici"}, {T_RIG_BUS_COLLISION, "Kolize sbrnice"}, {T_RIG_INVALID_ARG, "Neplat.argument"}, {T_RIG_INVALID_VFO, "Chybn VFO "}, {T_RIG_ARG_OUT_OF_DOM, "Arg.mimo domnu"}, {T_ERROR_D, "Chyba %d"}, {T_CANT_SET_GRAPHICS1, "Chyba pi nastaven grafickho reimu (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Chyba pi nastaven grafickho reimu"}, {T_WAIT_SDL_THR, "ekm na SDL vlkno"}, {T_FREE_GRAPHICS, "Ukonuji grafick reim"}, {T_CANT_GET_LIST_OF_CONTESTS, "Chyba pi stahovn seznamu zvod: %s"}, {T_CANT_GET_UPLOAD_FORM, "Chyba pi stahovn formule: %s"}, {T_CANT_READ_LOG_FILE, "Chyba pi ten souboru s denkem %s"}, {T_CANT_UPLOAD_LOG, "Chyba pi uploadu denku: %s"}, {T_CANT_CONFIRM_LOG, "Chyba pi potvrzen denku: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Chyba pi stahovn deklarovanch vsledk: %s"}, {T_ANT_OPEN_DSP_PLAY, "Chyba pi pehrvn na DSP %s"}, {T_CALL2, "Znaka:"}, {T_QTH, "QTH:"}, {T_DATE3, "Datum:"}, {T_QSOS2, "Spojens:"}, {T_POINTS2, "Body:"}, {T_WWLS, "Loktory:"}, {T_DXCCS, "DXCC:"}, {T_AVG2, "Prm:"}, {T_PTSQSO, "bod/qso"}, {T_TOP_10_CALLS, "Top 10 znaek"}, {T_OPERATOR2, "Opertor"}, {T_MODE2, "Md"}, {T_TOP_10_WWLS, "Top 10 loktor"}, {T_CANT_UPLOAD_FILE_S, "Chyba pi uploadu souboru: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Chyba pi uploadu strnky, wiki vrtila: %s"}, {T_FILE_ALREADY_EXISTS, "Soubor ji existuje: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Chyba pi uploadu strnky, wiki vrtila: %s"}, {T_CANT_EDIT_PAGE, "Chyba pi editaci strnky: %s"}, {T_CANT_EDIT_PAGE_RET, "Chyba pi editaci strnky, wiki vrtila: %s"}, {T_CANT_EDIT_PAGE_RET2, "Chyba pi editaci strnky, wiki vrtila: %s"}, {T_EDITING_CONTEST_PAGE, "Edituji strnku se zvodem..."}, {T_ALL_DONE, "Ve dokoneno."}, {T_UPLOADING_FILE, "Uploaduji soubor %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Neznm soubor pro upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Chyba pi zskvn editanho tokenu: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Chyba pi zskvn editanho tokenu, wiki vrtila: %s"}, {T_QUERYING_EDIT_TOKEN, "Zskvm editan token"}, {T_CANT_LOGIN, "Chyba pi pihlen (2): %s"}, {T_CANT_LOGIN2, "Chyba pi pihlen (2), wiki vrtila: %s"}, {T_CANT_LOGIN1, "Chyba pi pihlen (1): %s"}, {T_LOGGING_IN, "Pihlauji..."}, {T_EXPORTING_FILES, "Exportuji soubory..."}, {T_INIT_WIZZ, "Spoutm contest wizard"}, {T_FREE_WIZZ, "Terminating prvodce zvody"}, {T_LOAD_WIZZ_DATA, "Natm data pro prvodce zvody"}, {0, NULL} }; struct translation translation_slovak [] = { {0, NULL}, {T__CHAR_SET, "iso8859-2"}, {T__LANGUAGE, "Slovak"}, {T_ABOUT, "O programe"}, {T_BAD_NUMBER, "Chybn slo"}, {T_BAD_STRING, "Chybn reazec"}, {T_BASIC_HELP, "Stla F10 pre vstup do menu."}, {T_BLOCK_CURSOR, "Blokov kurzor"}, {T_CANCEL, "Zrui"}, {T_CHARACTER_SET, "Znakov sada"}, {T_COLOR, "Farbiky"}, {T_COPYING, "Koprovanie"}, {T_DIFFERENCE, "rozdiel"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Urite chce ukonit Tuka?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Przdny reazec nie je povolen"}, {T_ERROR, "Chyba"}, {T_WARNING, "Varovanie"}, {T_EXIT, "Koniec"}, {T_EXIT_TUCNAK, "Ukonenie Tuka"}, {T_FILE, "Sbor"}, {T_FULL_SCREEN, "Cel obrazovka"}, {T_HELP, "Pomoc"}, {T_HK_ABOUT, "O"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "Z"}, {T_HK_COPYING, "P"}, {T_HK_EXIT, "E"}, {T_HK_FILE, "S"}, {T_HK_FULL_SCREEN, "C"}, {T_HK_HELP, "P"}, {T_HK_LANGUAGE, "J"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "O"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Rmeky KOI8-R"}, {T_LANGUAGE, "Jazyk"}, {T_LAST, "posledn"}, {T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux alebo OS/2"}, {T_MEMORY_INFO, "Informcie o pamti"}, {T_NO_FRAMES, "Bez rmekov"}, {T_NO, "Nie"}, {T_NUMBER_EXPECTED, "Oakvm slo"}, {T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah"}, {T_OK, "OK"}, {T_OS_SHELL, "Prkazov riadok"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Ohranien rmeky v cp850/852"}, {T_UTF_8_IO, "UTF-8 Vstup/Vstup"}, {T_SCREEN, "Screen"}, {T_SETUP, "Nastavenia"}, {T_TERMINAL_OPTIONS, "Nastavenia terminlu"}, {T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn dennk pre VKV/mikrovlnn preteky"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Pouva ^[[11m"}, {T_VT_100_FRAMES, "Rmeky VT 100"}, {T_WELCOME1, "Vt T Tuk!"}, {T_WELCOME2, "Prosm zadaj svoju znaku a loktor:"}, {T_WELCOME, "Vitaj"}, {T_XTERM, "Xterm"}, {T_YES, "no"}, {T_CANT_APPEND_S, "Nemono prida na koniec sboru %s"}, {T_CANT_WRITE, "Nemono zapsa do sboru"}, {T_CANT_WRITE_S, "Nemono zapsa do sboru %s"}, {T_CANT_READ, "Nemono preta sbor"}, {T_CANT_READ_S, "Nemono preta sbor %s"}, {T_SAVED_S, "Uloen %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - rchlos CW "}, {T_CANT_OPEN_S, "Nemono otvori %s"}, {T_CANT_LOCK, "Nemono zamkn sbor"}, {T_CANT_LOCK_S, "Nemono zamkn sbor %s"}, {T_LOADING_CTEST_S, "*** Natan pretek %s"}, {T_NO_FILES, "Neexistuj iadn sbory"}, {T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje"}, {T_BAND_NOT_OPEN, "Psmo nie je v tomto preteku aktvne"}, {T_NO_BANDS, "Neexistuj iadn psma"}, {T_CANT_SET_GR_S, "Nemono nastavi grafick md-%s"}, {T_GCALL, "Znacka: %s"}, {T_GWWL, "Stvorec: %s"}, {T_GQRB, "Vzdial.: %d km"}, {T_GQTF, "Uhol: %d"}, {T_GSEN, "Odoslane: %s %s"}, {T_GRCV, "Prijate: %s %s"}, {T_GTIM, "Cas: %s"}, {T_GOPE, "Operator: %s"}, {T_GREM, "Pozn: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "Zisk azim:%d"}, {T_GLON, "Dlz: %7.2f %-6s"}, {T_GLAT, "Sir: %7.2f %-6s"}, {T_GLOC, "Lok: %s"}, {T__PLESE_WAIT_, " Prosim o chvilu strpenia "}, {T__RO_BAND, " PSMO LEN PRE TANIE"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerzia " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je slobodn softvr; me ho it a/alebo pozmeova poda ustanoven Obecnej verejnej licencie GNU, vydanej Free Software Foundation; a to verzie 2 a vyej tejto licencie."}, {T_CTEST_ACTIVE, "U existuje aktvny pretek "}, {T_NO_CTESTS, "iadn preteky"}, {T_NO_CCLOSE, "Nie je o zavrie"}, {T_REALLY, "Urite?"}, {T_CLOSE_CTEST, "Naozaj chce zavrie tento pretek?"}, {T_GUI_LD, "Uv. prostredie: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw poloiek, %d wc poloiek, posledn %d\n"}, {T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n"}, {T_VEXC, "Kontrolovan EXC: %d poloek\n"}, {T_DWI, "D_W: %d prefixov, %d zem DXCC, %d tvorcov\n"}, {T_NAMES, "Names: %d mien\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Pam:"}, {T_NMY, " Ja: "}, {T_NGLOBAL, "Hl.f: "}, {T_NMASTER, " f: "}, {T_NREMOTE, "Remote: "}, {T_NSLAVES, "\nPodriaden:\n"}, {T_NINFO, "Sieov informcie"}, {T_NO_BANDS_QRV, "iadn aktvne psma"}, {T_NO_BANDS_CONF, "iadn psma"}, {T_NOT_AVAILABLE, "Nedostupn"}, {T_ADD_SUBWIN, "Prida okno"}, {T_HK_ADD_SUBWIN, "P"}, {T_CLOSE_SUBWIN, "Zavrie okno"}, {T_HK_CLOSE_SUBWIN, "Z"}, {T_HK_NINFO, "S"}, {T_NEW, "Nov"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Sprievodca novm pretekom"}, {T_HK_NEW_WIZZ, "P"}, {T_NEW_NET, "Nov ze st"}, {T_HK_NEW_NET, "S"}, {T_OPEN, "Otvori"}, {T_HK_OPEN, "O"}, {T_SAVE, "Uloi"}, {T_HK_SAVE, "U"}, {T_EXPORT_EDI, "Exportova do EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportova do reportu (VKVPA)"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportova do ADIFu"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportova do HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importova EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importovat ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importovat swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Voby poas preteku"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Zavrie pretek"}, {T_HK_CLOSE_CONTEST, "Z"}, {T_ADD_ERROR, "Prida chybn spojenie"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Zmena opertora"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aktualizova C_W z preteku"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Aktualizova C_W z psma"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Aktualizovat EXC ze zvodu"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Aktualizovat EXC z psma"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importova DL8EBW db."}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "iadn pretek"}, {T_NO_PEERS, "al Tuci nenjden"}, {T_NO_MASTER, "f je nedostupn!"}, {T_CTEST_DEF, "Nastavenie preteku"}, {T_HK_CTEST_DEF, "R"}, {T_BAND_DEF, "Nastavenie psiem"}, {T_HK_BAND_DEF, "P"}, {T_HK_RESPOP, "O"}, {T_CW_DAEMON, "Klovn CW"}, {T_HK_CW_DAEMON, "M"}, {T_CW_CQ, "CW vzvy"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB vzvy"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Automatick ukladanie"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Nata nastavenie zo siete"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Nata C_W zo siete"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Uloi nastavenia"}, {T_HK_SAVE_CFG, "U"}, {T_CONTEST, "Pretek"}, {T_HK_CONTEST, "R"}, {T_EDIT, "Edit"}, {T_HK_EDIT, "E"}, {T_BANDS, "Psma"}, {T_HK_BANDS, "P"}, {T_SUBWINS, "Okn"}, {T_HK_SUBWINS, "O"}, {T_BAND_SETTINGS_SC, "Nastavenie pre psmo %c %s"}, {T_QRV_ON_THIS_BAND, "QRV na tomto psme"}, {T_QRV_IN_THIS_CTEST, "QRV v tomto preteku"}, {T_READ_ONLY, "Len na tanie"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " Vys. zariadenie:"}, {T_POWER, " Vkon:"}, {T_RXEQUIP, " Prm. zariad.:"}, {T_ANTENNA, " Antna:"}, {T_AGLASL, " vka zem;more:"}, {T_OPS, " Opertori:"}, {T_SPACES1, " "}, {T_REMARKS, " Poznmky:"}, {T_OK_SECTION_SINGLE, "Kategorie Single v OK"}, {T_OK_SECTION_MULTI, "Kategorie Multi v OK"}, {T_QRG_MIN, "Hranice psma od"}, {T_QRG_MAX, "do [kHz]"}, {T_ADIFBAND, "Nzev psma pro ADIF"}, {T_SKEDQRG, "Frek. pro skedy (lib. formt)"}, {T_BAND_LO, "LO transvertoru [Hz]"}, {T_BANDSW, "Hodnota prepinace pasem"}, {T_RESPOP, "Zodpovedn opertor"}, {T_NAME, "Meno Priezv:"}, {T_CALLSIGN, " Znaka:"}, {T_ADDRESS, " Adresa:"}, {T_POSTCODE, " PS:"}, {T_CITY, " Mesto:"}, {T_COUNTRY, " Zem:"}, {T_PHONE, " Telefn:"}, {T_BBSEMAIL, " BBS/E-mail:"}, {T_QP0, " --ni -- "}, {T_QP1, " 1 QSOp*QSOp_m (Stand. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK VKVPA)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltsk preteky)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln de)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (distrikty)"}, {T_QP13, "13 kontinent (CQ WW DX Contest)"}, {T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Nsoben (Std. IARU)"}, {T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nov pretek"}, {T_CANT_TRUNC, "Nemono skrti sbor s popisom preteku"}, {T_NAME_OF_CTEST, " Nzov preteku: "}, {T_CALL_OF_CTEST, "Znaka v preteku: "}, {T_CLUB_ST, "Klub. znaka:"}, {T_YOURWWL, "Tvoj WWL:"}, {T_YOUREXC, "Tvoj EXC:"}, {T_DATE_OF_CTEST, "Dtum preteku:"}, {T_QSOUSED, "QSO NR pouit"}, {T_QSOPM, " QSOp ns.:"}, {T_WWLUSED, "WWL pouit"}, {T_WWLB, "WWL bonus:"}, {T_WWLM, " WWL ns.: "}, {T_EXCUSED, "EXC pouit"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, " EXC ns.: "}, {T_EXCNAME, "EXC jmno:"}, {T_PREFM, "PREF nsob:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, " DXC ns.: "}, {T_RSTUSED, "RST pouit"}, {T_DEFRS, " Ben RS: "}, {T_DEFRST, "Ben RST:"}, {T_ALSORSTR, "Tak pro RST-R"}, {T_QP_CALC, " Vpoet QSOp:"}, {T_TO_CALC, "Vpoet celku:"}, {T_EDI_PROP, "EDI poloky"}, {T_RESPOP2, "Zodpovedn opertor"}, {T_EDIT_QSO_CD, "Editcia spojen %c: %03d"}, {T_CALLSIGN2, " Znaka:"}, {T_CLUB, " Klub:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Opertor:"}, {T_DATE, " Dtum:"}, {T_MODE, " Md:"}, {T_RSTS, "Odos.RST:"}, {T_RSTR, "Prij.RST:"}, {T_QSONRS, "Odos.s:"}, {T_QSONRR, "Prij.s:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " tvorec:"}, {T_REMARK, "Poznmka:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Posla sked"}, {T_SELECT, "Vber "}, {T_QRG, "Frekvencia:"}, {T_WE_CALL, "J volm"}, {T_BAND, " Psmo:"}, {T_TIME, " as:"}, {T_DUPE_QSO, "Duplicitn QSO!"}, {T_CLEAR_THIS_QSO, "Zmaza toto QSO"}, {T_EDIT_OLD_QSO, "Editova star QSO"}, {T_MARK_OLD_QSO, "Oznait star QSO ako ERROR"}, {T_STORE_AS_DUPE, "Uloit toto ako DUPE"}, {T_BAD_CALL, "Toto nevyzer ako znaka"}, {T_N_CALLSIGN, "\nZnaka:"}, {T_AUTOSAVE_OPTS, "Automatick ukladanie"}, {T_SAVE_AQ, "Uloi na disk po pote spojen: "}, {T_SAVE_AM, "Uloi na disk po pote mint: "}, {T_FSYNC, "Synchronizova cache s diskom"}, {T_SAVE_AQF, "Uloi na disketu po pote spojen: "}, {T_SAVE_AMF, "Uloi na disketu po pote mint: "}, {T_DO_MOUNT, "Pripoji disketu pokia nie je v /etc/mtab (N/A)"}, {T_FLOPPY_PATH, "Cesta k diskete:"}, {T_MOUNT_CMD, "Prkaz pre pripojenie (N/A): "}, {T_SW_SHELL, "Prk"}, {T_SW_QSOS, "Spoj"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Kec"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Nedok"}, {T_SW_DXC, "Clust"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Mapa"}, {T_SW_SCOPE, "Osc"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Prkazov riadok"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Kec (rozhovor)"}, {T_SKEDS, "Skedy (dohovoren spojenia)"}, {T_UNFI, "Nedokonen spojenia"}, {T_DXC, "DX Cluster"}, {T_STAT, "tatistiky"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Graphick mapa"}, {T_SCOPE, "Osciloskop"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Prkaz"}, {T_RESPAWN, "Znovuspustenie [sek]:"}, {T_UNFI_QSO, "Nedokonen spojenie"}, {T_N_REMARK, "\nPoznmka:"}, {T_NO_CQ, "Neexistuj iadn vzvy"}, {T_TEXT, "Text:"}, {T_SPEED, "Rchlos [WPM]:"}, {T_REPEAT, "Opakovanie"}, {T_DELAY, "akanie [0.1s]:"}, {T_ALLOW_UNDEF, "Povoli aj ke je niektor poloka neznma"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Sbor:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, " UDP port:"}, {T_DEVICE, "Kovacie zariadenie:"}, {T_INIT_SPEED, "Poiaton rchlos [WPM]:"}, {T_INIT_WEIGHT, "Vha (30-70)"}, {T_WPMFROM, "Rychlost WPM od"}, {T_WPMTO, "do"}, {T_USE_SPK, "Poui speaker (reprk)"}, {T_LEADIN, "Pedstih PTT [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignorujem sieov rozhranie %-5s"}, {T_IGN_ADDR_S, "Ignorujem adresu %s"}, {T_ADD_IFACE_SSD, "Pridan rozhranie=%-5s vesmer=%s:%d"}, {T_FORCED_ADDR, "Adresa naviac %s"}, {T_TIMESKEW, "POZOR! Detegovan prli vek rozdiel asu %d oproti %s:%d !\n"}, {T_DISCONNECTING_SD, "Odpjam od %s:%d"}, {T_ACCEPTED_SD, "Akceptovan spojenie od %s:%d (%s)"}, {T_CONNECTING_SD, "Pripjam k %s:%d"}, {T_CONNECTED_SD, "Pripojen k %s:%d"}, {T_DISCONNECTED_SD, "Odpojen od %s:%d"}, {T_LOADED_CFG_SSSS, "Natan nastavenie pre %s %s (%s,%s)"}, {T_LOADED_CW, "Natan C_W databza"}, {T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenjden"}, {T_CANT_CREATE_HOME_S, "Nemono vytvori adresr %s"}, {T_CANT_LOAD_CFG, "Nemono nata konfigurciu!\nProgram neme pracova sprvne!"}, {T_ERR_RC, "Dolo k chybe pri tan konfigurku!\nSbor bol pravdepodobne uloen novm Tukom !\nRadej neukladaj konfigurciu inak prde o dta v konfigurku!"}, {T_SES_QTR, " as "}, {T_SES_QRA, " Znaka "}, {T_SES_RST, " RST-O- RST-P- "}, {T_SES_QTH, " tvorec "}, {T_SES_QRB, "Body/vzd Uhol"}, {T_SES_FLG, " Przn"}, {T_SES_OPE, " Oper "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Poznmka "}, {T_SES_WELCOME, "Vta a Tuk! "}, {T_SES_PRESS_F10, "Sta F10 pre vstup do menu. "}, {T_SES_HAVE_FUN, "Uvaj si :-)"}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zeme Celkom-b AVG"}, {T_SES_AVG, "Priem: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " tvorce: %d"}, {T_SF_WWLS_UNDER, "----------------"}, {T_SF_EXCS, " EXC poloky: %d"}, {T_SF_EXCS_UNDER, "--------------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " Zeme: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " Roben tvorce: %d"}, {T_SF_WKD_WWLS_UNDER, "----------------------"}, {T_SF_QSO_WWL4, " Spojenia do vekch tvorcov: %d"}, {T_SF_QSO_WWL4_UNDER, "-----------------------------------"}, {T_SF_STATS_BAND, " tatistiky pre psmo %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Priemer bodov/spojenia: %5.2f"}, {T_SF_AVG_QSOP, "Priemer bodov za spojenie/spojenia: %5.2f"}, {T_BAND_RO, "Psmo je len na tanie"}, {T_THIS_BAND, "Toto psmo"}, {T_OTHER_BANDS, "Ostatn psma"}, {T_CW_DB, "C_W databza"}, {T_PROC_EXITED, "*** Proces skonil\n"}, {T_WE_CALL2, "my volme"}, {T_WE_LISTEN, "my povame"}, {T_QSL, "Sben QSL"}, {T_RECORD, "Nahrvanie prevdzky"}, {T_MAXMIN, " Max. doba nahrvn"}, {T_TEMPLATE, "ablona pre nahrvan sbor"}, {T_PCM8, "8 bitov PCM"}, {T_PCM16, "16 bitov PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Poet kanlov"}, {T_SAMPLERATE, " Vzorkovacia frekvencia"}, {T_FILLOP, "Vypl znaky opertorov"}, {T_HK_FILLOP, "V"}, {T_RECAQRB, "Prepotaj QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Sie a trasovanie"}, {T_HK_NETWORK, "E"}, {T_IF_IGNORE, " Ignorova zariadenia:"}, {T_IP_IGNORE, " Ignorova podsiete:"}, {T_IP_ANNOUNCE, " Annoncova do siet:"}, {T_TRACE_BCAST, "Trasova broadcasty "}, {T_TRACE_SOCK, "Trasova sockety"}, {T_TRACE_RECV, "Trasova prijat dta"}, {T_TRACE_SEND, "Trasova odoslan dta"}, {T_TRACE_QSOS, "Trasova spojenia"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Zvzok nepripojen %s"}, {T_RECSRC_NONE, "Nenastavova"}, {T_RECSRC_MIC, "Mikrofn"}, {T_RECSRC_LINE, "Linkov vstup"}, {T_NEW_CALL, "Nov!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV na %s"}, {T_SKED_QRG, "QRG pre skedy"}, {T_HK_SKED_QRG, "G"}, {T_N_SKED_QRG, "\nQRG pre skedy:"}, {T_GRAB_BAND, "Prevzia psmo"}, {T_HK_GRAB_BAND, "P"}, {T_FORCE_RUN, "RUN md nsiln"}, {T_HK_FORCE_RUN, "R"}, {T_EXPORT_STATS, "Exportova statistiky"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX spojenie:"}, {T_SF_TOP_DX_UNDER, "----------------------"}, {T_ROTAR, "Rotator"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimut"}, {T_ELEVATION, "Elevace"}, {T_CH_SPY, "pehovn"}, {T_HK_CH_SPY, "P"}, {T_CH_ENDSPY, "Konec pehovn"}, {T_HK_CH_ENDSPY, "K"}, {T_EXPORT_TITLPAGE, "Exportovat tituln strnku"}, {T_HK_EXPORT_TITLPAGE, "L"}, {T_BREAK_RECORD, "Peruit nahrvn"}, {T_HK_BREAK_RECORD, "P"}, {T_GLOBAL_OPERATOR, "Zmnit na vech psmech"}, {T_GLOBAL_OPERATOR2, "Globln"}, {T_MAXFRAG, "Max. poet fragment (>=2)"}, {T_PLAY_LAST, "Play last sample"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Rzn nastaven"}, {T_HK_MISCOPTS, "R"}, {T_LOGLINES, "dky logu: "}, {T_SKEDSHIFT, "Posuv skedu (minuty): "}, {T_STARTBAND, "Psmo po startu: "}, {T_GFX_X_CH, "Rozlien (znaky):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Rozlien (body):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Informace o znace"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSO/hod: %d"}, {T_SF_QSOP_HOUR, "Body/hod: %d"}, {T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d"}, {T_SF_HOURS, " Hodiny"}, {T_SF_HOURS_UNDER, "----------"}, {T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr box/QSO"}, {T_QSO_CHECK, "Kontrola spojen"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Minimln msto na disku [MiB]"}, {T_FORMAT, "Formt nahrvn"}, {T_PCM_PLAY, "Alsa pehrvn"}, {T_PCM_REC, "Alsa zznam"}, {T_PERIOD, "Period time [ms]"}, {T_BUFFER, "Buffer time [ms]"}, {T_ALSA_MIXER, "Alsa mixer"}, {T_CAPTURE, "Zdroj zznamu"}, {T_DSP, "Cesta k /dev/dsp"}, {T_MIXER, "Cesta k /dev/mixer"}, {T_RECSRC, "Record source"}, {T_PA_PLAY, "Portaudio playback device"}, {T_PA_REC, "Portaudio capture device"}, {T_HOSTNAME, "Stroj:"}, {T_SLASHKEY, "Klvesa pro lomtko"}, {T_FIXQRG, "Opravit QRG"}, {T_HK_FIXQRG, "v"}, {T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]"}, {T_BAD_QRG, "Chybn zadan frekvence"}, {T_CALLSIGN3, "Znaka"}, {T_CALLSIGN_KST, "Znaka stanice na KST:"}, {T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s"}, {T_WINKEYOPTS, "Nastaven Winkey"}, {T_WK_WK2, "Rychl inicializace Winkey2"}, {T_WK_USEPOT, "Pout potenciometr"}, {T_WK_USEBUT, "Pout tlatka"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Run kl"}, {T_WK_SWAP, "Prohodit pastiku (levk)"}, {T_RIGOPTS, "Rdio"}, {T_HK_RIGOPTS, "R"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address (hex)"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rottory"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Vypnout spoi obrazovky"}, {T_DESC, "Popis"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "ka laloku"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global prefix"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Poet sked v popup okn: "}, {T_FONTHEIGHT, "Vka fontu (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {T_ROT_POLL_MS, "Poll interval [ms]:"}, {T_VERSION, "Version"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Remote host name:"}, {T_REMOTE_PORT, " Remote TCP port:"}, {T_REMOTE_PASS, " Remote Password:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster database"}, {T_FREE_DXC, "Terminating DXcluster database"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved '%s'"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation translation_german [] = { {0, NULL}, {T__CHAR_SET, "iso8859-2"}, {T__LANGUAGE, "Deutsch"}, {T_ABOUT, "ber..."}, {T_BAD_NUMBER, "Ungltige Zahl"}, {T_BAD_STRING, "Ungltiger Text"}, {T_BASIC_HELP, "Drcke F10 fr Menu.\nViel Spa!"}, {T_BLOCK_CURSOR, "Blockiere Cursor"}, {T_CANCEL, "Abbrechen"}, {T_CHARACTER_SET, "Zeichensatz"}, {T_COLOR, "Farbe"}, {T_COPYING, "Lizenz"}, {T_DIFFERENCE, "Unterschied"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Mchten sie Tucnak wirklich verlassen?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Leerer Text nicht erlaubt!"}, {T_ERROR, "Fehler"}, {T_WARNING, "Warnung"}, {T_EXIT, "Verlassen"}, {T_EXIT_TUCNAK, "Tucnak verlassen"}, {T_FILE, "Datei"}, {T_FULL_SCREEN, "Vollbild"}, {T_HELP, "Hilfe"}, {T_HK_ABOUT, "."}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "Z"}, {T_HK_COPYING, "K"}, {T_HK_EXIT, "E"}, {T_HK_FILE, "D"}, {T_HK_FULL_SCREEN, "V"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "S"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "B"}, {T_HK_SETUP, "E"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "F"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R Rahmen"}, {T_LANGUAGE, "Sprache"}, {T_LAST, "letzte"}, {T_LINUX_OR_OS2_FRAMES, "Linux oder OS/2 Rahmen"}, {T_MEMORY_INFO, "Speicherinfo"}, {T_NO_FRAMES, "Keine Rahmen"}, {T_NO, "Nein"}, {T_NUMBER_EXPECTED, "Zahl im Feld erwartet"}, {T_NUMBER_OUT_OF_RANGE, "Zahl auerhalb des gltigen Bereichs"}, {T_OK, "OK"}, {T_OS_SHELL, "Betriebssystem-Fenster"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Beschrnke Rahmen in cp850/852"}, {T_UTF_8_IO, "UTF-8 Ein-/Ausgabe"}, {T_SCREEN, "Bildschirm"}, {T_SETUP, "Einstellungen"}, {T_TERMINAL_OPTIONS, "Terminal-Optionen"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-hnliches V/U/SHF Contest Log"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Benutze ^[[11m"}, {T_VT_100_FRAMES, "VT 100 Rahmen"}, {T_WELCOME1, "Willkommen bei Tucnak!"}, {T_WELCOME2, "Geben Sie bitte Ihre Rufzeichen und Locator:"}, {T_WELCOME, "Willkommen"}, {T_XTERM, "Xterm"}, {T_YES, "Ja"}, {T_CANT_APPEND_S, "Kann nicht an Datei %s anfgen!"}, {T_CANT_WRITE, "Kann nicht in Datei schreiben!"}, {T_CANT_WRITE_S, "Kann nicht in Datei %s schreiben!"}, {T_CANT_READ, "Kann nicht aus Datei lesen!"}, {T_CANT_READ_S, "Kann nicht aus Datei %s lesen!"}, {T_SAVED_S, "%s gespeichert"}, {T__CW_, " CW "}, {T_CWW_KEYS, " Bildauf +, Bildab - CW Geschwindigkeit "}, {T_CANT_OPEN_S, "Kann %s nicht ffnen!"}, {T_CANT_LOCK, "Kann nicht sperren!"}, {T_CANT_LOCK_S, "Kann %s nicht sperren!"}, {T_LOADING_CTEST_S, "*** Lade Contest %s"}, {T_NO_FILES, "Keine Dateien im Verzeichnis!"}, {T_BAND_EXIST_SS, "WARNUNG! Band %s (%s) existiert bereits"}, {T_BAND_NOT_OPEN, "Band ist in diesem Contest nicht aktiv"}, {T_NO_BANDS, "Keine Bnder zu laden"}, {T_CANT_SET_GR_S, "Kann keinen Grafik-Modus setzen-%s"}, {T_GCALL, "Rufzeichen: %s"}, {T_GWWL, "Locator: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Ges.: %s %s"}, {T_GRCV, "Empf.: %s %s"}, {T_GTIM, "Zeit: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Bem.: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "income: %d"}, {T_GLON, "Lnge:%7.2f %-6s"}, {T_GLAT, "Breite:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Bitte warten "}, {T__RO_BAND, " SWL-Band"}, {T_COPYING_VER, "Das ultimative Contestlog - Unerlsslich wie gewohnt\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nDieses Programm ist freie Software. Sie knnen es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation verffentlicht, weitergeben und/oder modifizieren, entweder gem Version 2 der Lizenz oder (nach Ihrer Option) jeder spteren Version. Die Verffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe . "}, {T_CTEST_ACTIVE, "Contest ist bereits aktiv "}, {T_NO_CTESTS, "Keine Conteste"}, {T_NO_CCLOSE, "Kein Contest zum Schlieen"}, {T_REALLY, "Wirklich?"}, {T_CLOSE_CTEST, "Mchten Sie diesen Contest wirklich schlieen?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw Elemente, %d wc Elemente, letztes %d\n"}, {T_EXC, "Exc: %s %d exc Elemente, %d cxe Elemente, letztes %d\n"}, {T_VEXC, "Besttigte EXC: %d Elemente\n"}, {T_DWI, "D_W: %d Prfixe, %d Lnder, %d Locator\n"}, {T_NAMES, "Namen: %d Namen\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Speicher:"}, {T_NMY, " Mein: "}, {T_NGLOBAL, "Global: "}, {T_NMASTER, "Master: "}, {T_NREMOTE, "Remote: "}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Netzwerk Info"}, {T_NO_BANDS_QRV, "Keine Bnder QRV"}, {T_NO_BANDS_CONF, "Keine Bnder konfiguriert"}, {T_NOT_AVAILABLE, "Nicht verfgbar"}, {T_ADD_SUBWIN, "Fge Fenster hinzu"}, {T_HK_ADD_SUBWIN, "F"}, {T_CLOSE_SUBWIN, "Schliee Fenster"}, {T_HK_CLOSE_SUBWIN, "S"}, {T_HK_NINFO, "N"}, {T_NEW, "Neu..."}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Neu mit Assistent"}, {T_HK_NEW_WIZZ, "A"}, {T_NEW_NET, "Neu vom Netzwerk..."}, {T_HK_NEW_NET, "T"}, {T_OPEN, "ffnen"}, {T_HK_OPEN, "F"}, {T_SAVE, "Speichern"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Exportiere als EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportiere als Report"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportiere als ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportiere als HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importiere EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importiere ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importiere swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Contestoptionen"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Schliee Contest"}, {T_HK_CLOSE_CONTEST, "K"}, {T_ADD_ERROR, "Fge FEHLER hinzu"}, {T_HK_ADD_ERROR, "F"}, {T_CHOP, "Wechsle Operator"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aktualisiere C_W von Contest"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Aktualisiere C_W von Band"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Aktualisiere EXC DB vom Contest"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Aktualisiere EXC DB vom Band"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importiere DL8EBW Datenbank"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Kein Contest"}, {T_NO_PEERS, "Keine Peers gefunden"}, {T_NO_MASTER, "Master ist nicht verfgbar!"}, {T_CTEST_DEF, "Contestvorgaben"}, {T_HK_CTEST_DEF, "V"}, {T_BAND_DEF, "Bandvorgaben"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "P"}, {T_CW_DAEMON, "CW keying"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Auto. speichern"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Lade cfg vom Netz"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Lade C_W vom Netz"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Speichere Konfiguration"}, {T_HK_SAVE_CFG, "S"}, {T_CONTEST, "Contest"}, {T_HK_CONTEST, "K"}, {T_EDIT, "Editieren"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bnder"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Fenster"}, {T_HK_SUBWINS, "F"}, {T_BAND_SETTINGS_SC, "Bandeinstellungen fr Band %c %s"}, {T_QRV_ON_THIS_BAND, "QRV auf diesem Band"}, {T_QRV_IN_THIS_CTEST, "QRV in diesem Contest"}, {T_READ_ONLY, "Nur SWL"}, {T_MULTI, "Mehrmann"}, {T_SINGLE, "Einmann"}, {T_CHECK, "Kontrolllog"}, {T_TXEQUIP, " TX Ausrstung:"}, {T_POWER, " Leistung:"}, {T_RXEQUIP, " RX Ausrstung:"}, {T_ANTENNA, " Antenne:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, " Operator:"}, {T_SPACES1, " "}, {T_REMARKS, " Bemerkungen:"}, {T_OK_SECTION_SINGLE, "Klasse fr Einmann-Kategorie:"}, {T_OK_SECTION_MULTI, "Klasse fr Mehrmann-Kategorie:"}, {T_QRG_MIN, "Bandgrenzen von"}, {T_QRG_MAX, "bis [kHz]"}, {T_ADIFBAND, "ADIF Bandname"}, {T_SKEDQRG, "QRG fr skeds (freies Format)"}, {T_BAND_LO, "Transverter LO QRG [Hz]"}, {T_BANDSW, "Wert fr Bandwechsel"}, {T_RESPOP, "Verantwortlicher OP"}, {T_NAME, " Name:"}, {T_CALLSIGN, " Rufzeichen:"}, {T_ADDRESS, " Adresse:"}, {T_POSTCODE, " PLZ:"}, {T_CITY, " Stadt:"}, {T_COUNTRY, " Land:"}, {T_PHONE, " Telefon:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --kein -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --kein -- "}, {T_TP1, " 1 Multiplikativ (Std. IARU)"}, {T_TP2, " 2 Additiv (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Neuer Contest"}, {T_CANT_TRUNC, "Kann desc Datei nicht abschneiden"}, {T_NAME_OF_CTEST, "Name des Contests:"}, {T_CALL_OF_CTEST, "Rufzeichen im Contest:"}, {T_CLUB_ST, "Clubstation:"}, {T_YOURWWL, " Locator:"}, {T_YOUREXC, " Austausch:"}, {T_DATE_OF_CTEST, "Datum des Contests:"}, {T_QSOUSED, "QSO-Nr. benutzt"}, {T_QSOPM, " QSOp Multiplikator:"}, {T_WWLUSED, "Locator benutzt"}, {T_WWLB, "Locator Bonus:"}, {T_WWLM, "Locator Multiplikator:"}, {T_EXCUSED, "Austausch benutzt"}, {T_EXCB, "Austausch Bonus:"}, {T_EXCM, "Austausch Multiplikator:"}, {T_EXCNAME, "EXC Name:"}, {T_PREFM, "PREF Multi:"}, {T_DXCB, "DXCC Bonus:"}, {T_DXCM, "DXCC Multiplikator:"}, {T_RSTUSED, "RST benutzt "}, {T_DEFRS, "Vorgabe RS:"}, {T_DEFRST, "Vorgabe RST:"}, {T_ALSORSTR, "Auch fr RST-R"}, {T_QP_CALC, "Kalkulation QSOp:"}, {T_TO_CALC, "Kalkulation Total:"}, {T_EDI_PROP, "EDI Eigenschaften"}, {T_RESPOP2, "Verantwortlicher OP"}, {T_EDIT_QSO_CD, "Editiere QSO %c: %03d"}, {T_CALLSIGN2, "Rufzeichen:"}, {T_CLUB, " Club:"}, {T_PADR1, " Adresse 1:"}, {T_PADR2, " Adresse 2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, " Operator:"}, {T_DATE, " Datum:"}, {T_MODE, " Mode:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO-Nr s:"}, {T_QSONRR, "QSO-Nr r:"}, {T_OPTEXCH, " Austausch:"}, {T_WWL, "Locator:"}, {T_REMARK, "Anmerkung:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Sende Sked"}, {T_SELECT, "Auswhlen"}, {T_QRG, " Frequenz:"}, {T_WE_CALL, " Wir rufen"}, {T_BAND, " Band:"}, {T_TIME, " Zeit:"}, {T_DUPE_QSO, "Doppel-QSO!"}, {T_CLEAR_THIS_QSO, "Lsche dieses QSO"}, {T_EDIT_OLD_QSO, "Editiere altes QSO"}, {T_MARK_OLD_QSO, "Markiere altes QSO als FEHLER"}, {T_STORE_AS_DUPE, "Speichere als DUPE"}, {T_BAD_CALL, "Dies scheint kein Rufzeichen zu sein"}, {T_N_CALLSIGN, "\nRufzeichen:"}, {T_AUTOSAVE_OPTS, "Optionen autom. speichern"}, {T_SAVE_AQ, "Speichere auf Festplatte nach QSOs:"}, {T_SAVE_AM, "Speichere auf Festplatte nach Minuten:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Speichere auf Diskette nach QSOs:"}, {T_SAVE_AMF, "Speichere auf Diskette nach Minuten:"}, {T_DO_MOUNT, "Mount falls nicht in /etc/mtab (unbenutzt)"}, {T_FLOPPY_PATH, "Pfad zur Diskette:"}, {T_MOUNT_CMD, "Mount Befehl: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Leer"}, {T_SW_DXC, "DXCl"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Karte"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "Unvollstndige QSOs"}, {T_DXC, "DX Cluster"}, {T_STAT, "Statistik"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Grafische Karte"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Kommando"}, {T_RESPAWN, "Neu starten [Sek]:"}, {T_UNFI_QSO, "Unvollstndiges QSO"}, {T_N_REMARK, "\nBemerkung:"}, {T_NO_CQ, "Kein CQ definiert"}, {T_TEXT, "Text:"}, {T_SPEED, "Geschw. [WPM]:"}, {T_REPEAT, "Wiederholen"}, {T_DELAY, "Verzgerung [0.1s]:"}, {T_ALLOW_UNDEF, "Erlauben falls einige Eintrge undefiniert sind"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Pfad:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP Port:"}, {T_DEVICE, "Keyer:"}, {T_INIT_SPEED, "Startgeschw. [WPM]:"}, {T_INIT_WEIGHT, "Gewichtung (30-70):"}, {T_WPMFROM, "WPM-Bereich von"}, {T_WPMTO, "bis"}, {T_USE_SPK, "Benutze Lautsprecher"}, {T_LEADIN, "PTT-Verzgerung in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignoriere Interface %-5s"}, {T_IGN_ADDR_S, "Ignoriere Adresse %s"}, {T_ADD_IFACE_SSD, "Interface=%-5s BCAST=%s:%d hinzugefgt"}, {T_FORCED_ADDR, "Erzwinge Adresse %s"}, {T_TIMESKEW, "WARNUNG! Zeitabweichung %d entdeckt gegen %s:%d !\n"}, {T_DISCONNECTING_SD, "Trennen von %s:%d"}, {T_ACCEPTED_SD, "Akzeptiere %s:%d (%s)"}, {T_CONNECTING_SD, "Verbinden mit %s:%d"}, {T_CONNECTED_SD, "Verbunden mit %s:%d"}, {T_DISCONNECTED_SD, "Getrennt von %s:%d"}, {T_LOADED_CFG_SSSS, "Konfiguration geladen fr %s %s (%s,%s)"}, {T_LOADED_CW, "C_W Data geladen"}, {T_PEER_NOT_FOUND, "FEHLER! Peer %s nicht gefunden"}, {T_CANT_CREATE_HOME_S, "Kann Verzeichnis %s nicht erstellen"}, {T_CANT_LOAD_CFG, "Kann Konfiguration nicht laden!\nProgramm kann nicht richtig arbeiten!"}, {T_ERR_RC, "Einige Fehler beim Einlesen der Konfigurationsdatei gefunden!\nDiese Datei wurde vielleicht mit einer neueren Version gespeichert!\nKonfiguration nicht speichern, sonst knnen Daten verloren gehen!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " RUFZ. "}, {T_SES_RST, " RST-S-Nr RST-R-Nr "}, {T_SES_QTH, " LOC "}, {T_SES_QRB, " Pkt/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Bemerkung "}, {T_SES_WELCOME, "Willkommen bei Tucnak! "}, {T_SES_PRESS_F10, "Drcke F10 fr das Men."}, {T_SES_HAVE_FUN, "Viel Spa."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-P. EXCH LOCs DXCCs Tot.P. AVG"}, {T_SES_AVG, " Sch: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " LOCs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " gearb. LOCs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOs in LOCs: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statistik fr Band %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, " QSOs aller Bnder: %d"}, {T_SF_ALLBQSOP, " QSOp aller Bnder: %d"}, {T_SF_ALLBPTS, "Punkte aller Bnder: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO-Punkte: %d"}, {T_SF_PTS, "Punkte: %d"}, {T_SF_AVG_PTS, "Durchschn. Pkt/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Durchschn. QSO-P/QSO: %5.2f"}, {T_BAND_RO, "Band ist nur SWL"}, {T_THIS_BAND, "Dieses Band"}, {T_OTHER_BANDS, "Andere Bnder"}, {T_CW_DB, "C_W Datenbank"}, {T_PROC_EXITED, "*** Prozess beendet\n"}, {T_WE_CALL2, "Wir rufen"}, {T_WE_LISTEN, "wir hren"}, {T_QSL, "QSL versprochen"}, {T_RECORD, "Audio aufnehmen"}, {T_MAXMIN, " Max. Aufnahmezeit"}, {T_TEMPLATE, "Vorgabe fr Dateiname der Aufnahme:"}, {T_PCM8, "8 Bit PCM"}, {T_PCM16, "16 Bit PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Kanle"}, {T_SAMPLERATE, "Abtastrate"}, {T_FILLOP, "Operator eintragen"}, {T_HK_FILLOP, "O"}, {T_RECAQRB, "QRB,QTF neu berechnen"}, {T_HK_RECAQRB, "Q"}, {T_NETWORK, "Netzwerk & Verfolgung"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, " Ignoriere Interfaces:"}, {T_IP_IGNORE, " Ignoriere Netzwerke:"}, {T_IP_ANNOUNCE, " Senden an Netze:"}, {T_TRACE_BCAST, "Verfolge Broadcasts "}, {T_TRACE_SOCK, "Verfolge Sockets"}, {T_TRACE_RECV, "Verfolge empf. Daten"}, {T_TRACE_SEND, "Verfolge ges. Daten"}, {T_TRACE_QSOS, "Verfolge QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Nicht gemountet: %s"}, {T_RECSRC_NONE, "Nicht setzen"}, {T_RECSRC_MIC, "Mikrofon"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "Neu!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV auf %s"}, {T_SKED_QRG, "QRG fr skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG fur skeds:"}, {T_GRAB_BAND, "Schnapp Bandkontrolle"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Erzwinge RUN-Mode"}, {T_HK_FORCE_RUN, "R"}, {T_EXPORT_STATS, "Exportiere Statistiken"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimut"}, {T_ELEVATION, "Elevation"}, {T_CH_SPY, "Spioniere..."}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Spionieren beenden"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Exportiere Titelseite"}, {T_HK_EXPORT_TITLPAGE, "L"}, {T_BREAK_RECORD, "Stoppe Aufzeichnung"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Fr alle Bnder ndern"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. Nr. von Teilen (>=2)"}, {T_PLAY_LAST, "Spiele letzte Aufzeichnung"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Verschiedene Optionen"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Logzeilen: "}, {T_SKEDSHIFT, "Sked-Verzgerung (Minuten): "}, {T_STARTBAND, "Anfangsband: "}, {T_GFX_X_CH, "Bildschirmauflsung (Zeichen):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Bildschirmauflsung (Pixel):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Rufzeicheninformationen"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/Stunde: %d"}, {T_SF_QSOP_HOUR, "Punkte/Stunde: %d"}, {T_SF_QSOP_50QSO, "Punkte/50 QSOs: %d"}, {T_SF_HOURS, " Stunden"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Stunde Punkte QSOs AVG pts/QSO"}, {T_QSO_CHECK, "QSO-Kontrolle"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Minimaler freier Festplattenspeicher [MiB]"}, {T_FORMAT, "Aufzeichnungsformat"}, {T_PCM_PLAY, "Alsa Abspielgert"}, {T_PCM_REC, "Alsa Aufzeichengert"}, {T_PERIOD, "Wiederholzeit [ms]"}, {T_BUFFER, "Bufferzeit [ms]"}, {T_ALSA_MIXER, "Alsa Mixergert"}, {T_CAPTURE, "Ausgabegert"}, {T_DSP, "Pfad zu /dev/dsp"}, {T_MIXER, "Pfad zu /dev/mixer"}, {T_RECSRC, "Aufnahmequelle"}, {T_PA_PLAY, "Portaudio playback device"}, {T_PA_REC, "Portaudio capture device"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Schrgstrich-Taste"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Genaue Frequenz eingeben [Hz]"}, {T_BAD_QRG, "Falsche Frequenz"}, {T_CALLSIGN3, "Rufzeichen"}, {T_CALLSIGN_KST, "KST-Stationsrufzeichen:"}, {T_CANT_INIT_WINKEY_S, "Kann winkey nicht finden auf %s"}, {T_WINKEYOPTS, "Winkey-Optionen"}, {T_WK_WK2, "Winkey2 Schnellinitialisierung"}, {T_WK_USEPOT, "Benutze Geschwindigkeitspoti"}, {T_WK_USEBUT, "Benutze Knpfe"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (linkshndig)"}, {T_RIGOPTS, "Funkgertoptionen"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Gert:"}, {T_RIG_MODEL, "Modell"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV-Adresse (hex)"}, {T_RIG_FREQSHIFT, "Freq.versatz SSB->CW"}, {T_RIG_CHOOSE, "Whlen"}, {T_ROTAROPTS, "Rotoroptionen"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Deaktiviere Bildschirmschoner"}, {T_DESC, "Beschreibung"}, {T_ROT_NONE, "Kein"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serien-#"}, {T_ROT_ADD, "Neuer Rotor..."}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Entferne Rotor"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beambreite"}, {T_SADDR, "Kommunikationsadresse:"}, {T_MODEL, "Modell:"}, {T_ROT_REM_ROTSTR, "Rotor-Buchstabe fr Remote"}, {T_QSOGLOB, "Globale QSO NR"}, {T_PREFGLOB, "Globaler Prefix"}, {T_NOT_RECORDING_S, "Nicht am Aufzeichnen - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {T_ROT_POLL_MS, "Poll interval [ms]:"}, {T_VERSION, "Version"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Remote host name:"}, {T_REMOTE_PORT, " Remote TCP port:"}, {T_REMOTE_PASS, " Remote Password:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster database"}, {T_FREE_DXC, "Terminating DXcluster database"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved '%s'"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation translation_portuguese [] = { {0, NULL}, {T__CHAR_SET, "iso8859-1"}, {T__LANGUAGE, "Portugus"}, {T_ABOUT, "Acerca"}, {T_BAD_NUMBER, "Nmero errado"}, {T_BAD_STRING, "String errada"}, {T_BASIC_HELP, "Prima F10 para ter o menu.\nDivirta-se."}, {T_BLOCK_CURSOR, "Cursor de bloco"}, {T_CANCEL, "Cancelar"}, {T_CHARACTER_SET, "Definio de caracter"}, {T_COLOR, "Cor"}, {T_COPYING, "Licena"}, {T_DIFFERENCE, "diferena"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quer mesmo sair do Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "String vazia no permitida"}, {T_ERROR, "Erro"}, {T_WARNING, "Aviso"}, {T_EXIT, "Sair"}, {T_EXIT_TUCNAK, "Sair do Tucnak"}, {T_FILE, "Ficheiro"}, {T_FULL_SCREEN, "Monitor completo"}, {T_HELP, "Ajuda"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "X"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R frames"}, {T_LANGUAGE, "Linguagem"}, {T_LAST, "ltimo"}, {T_LINUX_OR_OS2_FRAMES, "Linux ou OS/2 frames"}, {T_MEMORY_INFO, "Informao da memria"}, {T_NO_FRAMES, "No h frames"}, {T_NO, "No"}, {T_NUMBER_EXPECTED, "Esperado nmero no campo"}, {T_NUMBER_OUT_OF_RANGE, "Nmero fora de alcance"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Frames restringidas em cp850/852"}, {T_UTF_8_IO, "UTF-8 Input/Output"}, {T_SCREEN, "Monitor"}, {T_SETUP, "Definies"}, {T_TERMINAL_OPTIONS, "Opes do terminal"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nComo o programa de concursos de V/U/SHF TACLOG"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Usar ^[[11m"}, {T_VT_100_FRAMES, "VT 100 frames"}, {T_WELCOME1, "Bem vindo ao Tucnak!"}, {T_WELCOME2, "Digite seu indicativo e localizador:"}, {T_WELCOME, "Bem vindo"}, {T_XTERM, "Xterm"}, {T_YES, "Sim"}, {T_CANT_APPEND_S, "No posso anexar ao ficheiro %s"}, {T_CANT_WRITE, "No posso escrever para o ficheiro"}, {T_CANT_WRITE_S, "No posso escrever para o ficheiro %s"}, {T_CANT_READ, "No posso ler desde o ficheiro"}, {T_CANT_READ_S, "No posso ler desde o ficheiro %s"}, {T_SAVED_S, "Guardado %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - velocidade do cw "}, {T_CANT_OPEN_S, "No posso abrir %s"}, {T_CANT_LOCK, "No posso fechar"}, {T_CANT_LOCK_S, "No posso fechar %s"}, {T_LOADING_CTEST_S, "*** A carregar o concurso %s"}, {T_NO_FILES, "Nenhuns ficheiros na directoria"}, {T_BAND_EXIST_SS, "AVISO! A banda %s (%s) j existe"}, {T_BAND_NOT_OPEN, "A banda no est activa neste concurso"}, {T_NO_BANDS, "Nenhumas bandas para carregar"}, {T_CANT_SET_GR_S, "No posso definir modos grficos-%s"}, {T_GCALL, "Indicativo: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Sent: %s %s"}, {T_GRCV, "Rcvd: %s %s"}, {T_GTIM, "Time: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Rem: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "income: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Por favor ESPERE "}, {T__RO_BAND, " BANDA SO PARA LER"}, {T_COPYING_VER, "O ltimo programa de concurso - to necessrio como conhecido\n\nVerso " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nEste programa software livre; voc pode redistribuir e/ou modific-lo debaixo dos termos da licena GNU General Public License verso 2 como publicado pelo Free Software Foundation."}, {T_CTEST_ACTIVE, "O concurso j est activo "}, {T_NO_CTESTS, "Nenhum concurso"}, {T_NO_CCLOSE, "Nenhum concurso para fechar"}, {T_REALLY, "De certeza?"}, {T_CLOSE_CTEST, "Quer mesmo fechar este concurso?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw items, %d wc items, ltimo %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, ltimo %d\n"}, {T_VEXC, "Verified EXC: %d items\n"}, {T_DWI, "D_W: %d prefixos, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Nomes: %d nomes\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Memria:"}, {T_NMY, " Meu: "}, {T_NGLOBAL, "Global: "}, {T_NMASTER, "Master: "}, {T_NREMOTE, "Remote: "}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Informao da rede"}, {T_NO_BANDS_QRV, "Nenhumas bandas QRV"}, {T_NO_BANDS_CONF, "Nenhumas bandas configuradas"}, {T_NOT_AVAILABLE, "No disponvel"}, {T_ADD_SUBWIN, "Adicionar subwin"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Fechar subwin"}, {T_HK_CLOSE_SUBWIN, "C"}, {T_HK_NINFO, "N"}, {T_NEW, "Novo"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Novo desde os exemplos"}, {T_HK_NEW_WIZZ, "W"}, {T_NEW_NET, "Novo desde a rede"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Abrir"}, {T_HK_OPEN, "O"}, {T_SAVE, "Guardar"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Exportar como EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportar como reporte"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportar como ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportar como HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importar EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importar ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importar swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Opes do concurso"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Fechar concurso"}, {T_HK_CLOSE_CONTEST, "C"}, {T_ADD_ERROR, "Adicionar ERRO"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Mudar de operador"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Actualizar o C_W desde um concurso"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Actualizar o C_W desde a banda"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Actualizar o EXC DB desde o concurso"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Actualizar o EXC DB desde a banda"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importar a database de DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Nenhum concurso"}, {T_NO_PEERS, "Nenhuns peers encontrados"}, {T_NO_MASTER, "O master no est disponvel!"}, {T_CTEST_DEF, "Configurao do concurso"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "A banda por defeito"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "P"}, {T_CW_DAEMON, "Chave de CW"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Auto guardar"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Carregar a cfg desde a net"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Carregar o C_W desde a net"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Guardar a configurao"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Concurso"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Editar"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bandas"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Subwins"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "As definies da banda por banda %c %s"}, {T_QRV_ON_THIS_BAND, "QRV nesta banda"}, {T_QRV_IN_THIS_CTEST, "QRV neste concurso"}, {T_READ_ONLY, "So ler"}, {T_MULTI, "Multi"}, {T_SINGLE, "Szinho"}, {T_CHECK, "Verificar"}, {T_TXEQUIP, " equip de TX:"}, {T_POWER, " potncia:"}, {T_RXEQUIP, " equip de RX:"}, {T_ANTENNA, " antena:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "operadores:"}, {T_SPACES1, " "}, {T_REMARKS, " anotaes:"}, {T_OK_SECTION_SINGLE, "Categoria single em OK"}, {T_OK_SECTION_MULTI, "Categoria multi em OK"}, {T_QRG_MIN, "Limite da banda desde"}, {T_QRG_MAX, "para [kHz]"}, {T_ADIFBAND, "Nome da banda em ADIF"}, {T_SKEDQRG, "QRG para skeds (formato livre)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Operador responsvel"}, {T_NAME, " nome:"}, {T_CALLSIGN, " indicativo:"}, {T_ADDRESS, " endereo:"}, {T_POSTCODE, "cdigo postal:"}, {T_CITY, " cidade:"}, {T_COUNTRY, " pas:"}, {T_PHONE, " telefone:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --nenhum -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Multiplicative (Std. IARU)"}, {T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Novo concurso"}, {T_CANT_TRUNC, "No posso mutilar o ficheiro de desc"}, {T_NAME_OF_CTEST, "Nome do concurso:"}, {T_CALL_OF_CTEST, "Indicativo no concurso:"}, {T_CLUB_ST, "Estao do clube:"}, {T_YOURWWL, "A sua quadrcula:"}, {T_YOUREXC, "O seu EXC:"}, {T_DATE_OF_CTEST, "Data do concurso:"}, {T_QSOUSED, "QSO NR usado"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "Quadrcula usada "}, {T_WWLB, "Bnus da quadrcula:"}, {T_WWLM, "Multi da quadrcula:"}, {T_EXCUSED, "EXC usada"}, {T_EXCB, " Bnus do EXC:"}, {T_EXCM, "Multi do EXC:"}, {T_EXCNAME, "EXC name:"}, {T_PREFM, "PREF multi:"}, {T_DXCB, "DXC bnus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST usado "}, {T_DEFRS, "RS por defeito:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Also for RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Op responsvel"}, {T_EDIT_QSO_CD, "Editar QSO %c: %03d"}, {T_CALLSIGN2, "Indicativo:"}, {T_CLUB, " Clube:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operador:"}, {T_DATE, " Data:"}, {T_MODE, " Modo:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO enviado:"}, {T_QSONRR, "QSO recebido:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, " Anotao:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Enviar sked"}, {T_SELECT, "Seleccionado"}, {T_QRG, " QRG:"}, {T_WE_CALL, " Ns chamamos"}, {T_BAND, " Banda:"}, {T_TIME, " Tempo:"}, {T_DUPE_QSO, "QSO duplicado!"}, {T_CLEAR_THIS_QSO, "Limpar este QSO"}, {T_EDIT_OLD_QSO, "Editar QSO antigo"}, {T_MARK_OLD_QSO, "Marcar qso antigo como ERRO"}, {T_STORE_AS_DUPE, "Guardar como DUPE"}, {T_BAD_CALL, "Isto no parece um indicativo"}, {T_N_CALLSIGN, "\nIndicativo:"}, {T_AUTOSAVE_OPTS, "Opes de auto-guardar"}, {T_SAVE_AQ, "Guardar para o disco depois do QSO: "}, {T_SAVE_AM, "Guardar no disco depois dos minutos:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Guardar na disquete depois do QSO: "}, {T_SAVE_AMF, "Guardar na disquete depois dos minutos:"}, {T_DO_MOUNT, "Montar se no em /etc/mtab (no usado)"}, {T_FLOPPY_PATH, "Caminho para a disquete:"}, {T_MOUNT_CMD, "Comando de montar: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Falar"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Unfi"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Mapa"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Falar"}, {T_SKEDS, "Skeds"}, {T_UNFI, "QSO no concludo QSOs"}, {T_DXC, "DX Cluster"}, {T_STAT, "Estatsticas"}, {T_SWAP, "Mudar (N/A)"}, {T_MAP, "Mapa grfico"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Comando"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "QSO no acabado"}, {T_N_REMARK, "\nAnotao:"}, {T_NO_CQ, "Nenhum CQ definido"}, {T_TEXT, "Texto:"}, {T_SPEED, "Velocidade [WPM]:"}, {T_REPEAT, "Repetir"}, {T_DELAY, "Atraso [0.1s]:"}, {T_ALLOW_UNDEF, "Permitir se o mesmo item est indefinido"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Ficheiro:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "Porta UDP:"}, {T_DEVICE, "Mecanismo de telegrafia:"}, {T_INIT_SPEED, "Velocidade inicial [WPM]:"}, {T_INIT_WEIGHT, "Peso (30-70):"}, {T_WPMFROM, "Alcance WPM de"}, {T_WPMTO, "para"}, {T_USE_SPK, "Usar altifalante"}, {T_LEADIN, " Presena do PTT em [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignorar o interface %-5s"}, {T_IGN_ADDR_S, "Ignorar o endereo %s"}, {T_ADD_IFACE_SSD, "Interface adicionado=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Endereo forcado %s"}, {T_TIMESKEW, "AVISO! O tempo de skew %d detectado outra vez %s:%d !\n"}, {T_DISCONNECTING_SD, "A desligar desde %s:%d"}, {T_ACCEPTED_SD, "Aceitado %s:%d (%s)"}, {T_CONNECTING_SD, "A ligar a %s:%d"}, {T_CONNECTED_SD, "Ligado a %s:%d"}, {T_DISCONNECTED_SD, "A desligar desde %s:%d"}, {T_LOADED_CFG_SSSS, "A carregar a config para %s %s (%s,%s)"}, {T_LOADED_CW, "C_W data carregada"}, {T_PEER_NOT_FOUND, "ERRO! Peer %s no encontrado"}, {T_CANT_CREATE_HOME_S, "No posso criar a directoria %s"}, {T_CANT_LOAD_CFG, "No posso carregar a configurao!\nO programa no vai trabalhar devidamente!"}, {T_ERR_RC, "Encontrados alguns erros de parsing no ficheiro de config!\nEste ficheiro foi provavelmente guardado no novo Tucnak!\nNo guarde a sua configurao a pois pode perder todos os seus elementos!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Aviso "}, {T_SES_WELCOME, "Bem vindo ao Tucnak! "}, {T_SES_PRESS_F10, "Premir F10 para o menu."}, {T_SES_HAVE_FUN, "Divirta-se."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS em WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Estatsticas para a banda %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Mdia pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Mdia qsop/QSO: %5.2f"}, {T_BAND_RO, "A banda s para ler"}, {T_THIS_BAND, "Esta banda"}, {T_OTHER_BANDS, "Outras bandas"}, {T_CW_DB, "C_W database"}, {T_PROC_EXITED, "*** Processo sado\n"}, {T_WE_CALL2, "ns chamamos"}, {T_WE_LISTEN, "ns escutamos"}, {T_QSL, "QSL prometido"}, {T_RECORD, "Trfego registado"}, {T_MAXMIN, " Max. durao da gravao"}, {T_TEMPLATE, "Template para o ficheiro registado"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "u-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Canais"}, {T_SAMPLERATE, "Velocidade de exemplo"}, {T_FILLOP, "Preencher operadores"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Recalc QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Rede & registar"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Interfaces ignorados:"}, {T_IP_IGNORE, " Redes ignoradas:"}, {T_IP_ANNOUNCE, " Anunciar para as nets:"}, {T_TRACE_BCAST, "Registar transmisses "}, {T_TRACE_SOCK, "Registar sockets"}, {T_TRACE_RECV, "Registar data recebida"}, {T_TRACE_SEND, "Registar data enviada"}, {T_TRACE_QSOS, "Registar QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "No est montada %s"}, {T_RECSRC_NONE, "No definido"}, {T_RECSRC_MIC, "Microfone"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "Novo!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV em %s"}, {T_SKED_QRG, "QRG para skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG para skeds:"}, {T_GRAB_BAND, "Gravar controle da banda"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Forar modo RUN"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Exportar estatsticas"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimute"}, {T_ELEVATION, "Elevao"}, {T_CH_SPY, "Espiar"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Fim de espiar"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Exportar a pgina do ttulo"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Gravao cortada"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Mudar para todas as bandas"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. nm de fragmentos (>=2)"}, {T_PLAY_LAST, "Repetir ltimo exemplo"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Opes variadas"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Linhas do registo: "}, {T_SKEDSHIFT, "Intervalo do contacto (minutos): "}, {T_STARTBAND, "Banda para comear: "}, {T_GFX_X_CH, "Resoluo do monitor (cars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Resoluo do monitor (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Informao do indicativo"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/hora: %d"}, {T_SF_QSOP_HOUR, "Pontos/hora: %d"}, {T_SF_QSOP_50QSO, "Pontos/50 QSOs: %d"}, {T_SF_HOURS, " Horas"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Horas Pontos QSOs AVG pts/QSO"}, {T_QSO_CHECK, "QSO check"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "O minimo espao de disco disponivel [MiB]"}, {T_FORMAT, "Formato de gravao"}, {T_PCM_PLAY, "Dispositivo de som Alsa"}, {T_PCM_REC, "Dispositivo de captura Alsa"}, {T_PERIOD, "Periodo de tempo [ms]"}, {T_BUFFER, "Tempo de buffer [ms]"}, {T_ALSA_MIXER, "Dispositivo misturador Alsa"}, {T_CAPTURE, "Fonte de captura"}, {T_DSP, "Caminho para o /dev/dsp"}, {T_MIXER, "Caminho para o /dev/mixer"}, {T_RECSRC, "Fonte de leitura"}, {T_PA_PLAY, "Portaudio playback device"}, {T_PA_REC, "Portaudio capture device"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Chave slash"}, {T_FIXQRG, "Reparar QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Escrever a QRG correcta [Hz]"}, {T_BAD_QRG, "Frequncia errada"}, {T_CALLSIGN3, "Indicativo"}, {T_CALLSIGN_KST, "Indicativo da estao KST:"}, {T_CANT_INIT_WINKEY_S, "No posso iniciar a winkey em %s"}, {T_WINKEYOPTS, "Opes da Winkey"}, {T_WK_WK2, "Inicializao rdida da Winkey2"}, {T_WK_USEPOT, "Use o potnciometro de velocidade"}, {T_WK_USEBUT, "Use os butes"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Mudana da paddle ( esquerda)"}, {T_RIGOPTS, "Opes do equipamento"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address (hex)"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rotar options"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Desactivar o screensaver"}, {T_DESC, "Description"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beam width"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global prefix"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {T_ROT_POLL_MS, "Poll interval [ms]:"}, {T_VERSION, "Version"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Remote host name:"}, {T_REMOTE_PORT, " Remote TCP port:"}, {T_REMOTE_PASS, " Remote Password:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster database"}, {T_FREE_DXC, "Terminating DXcluster database"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved '%s'"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation translation_french [] = { {0, NULL}, {T__CHAR_SET, "iso8859-1"}, {T__LANGUAGE, "Franais"}, {T_ABOUT, "A propos"}, {T_BAD_NUMBER, "Mauvais nombre"}, {T_BAD_STRING, "Mauvaise chane"}, {T_BASIC_HELP, "Presser F10 pour le menu.\nAmusez vous bien."}, {T_BLOCK_CURSOR, "Curseur bloc"}, {T_CANCEL, "Annuler"}, {T_CHARACTER_SET, "Codage de caractres"}, {T_COLOR, "Couleur"}, {T_COPYING, "Copying"}, {T_DIFFERENCE, "diffrence"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Voulez vous rellement quitter Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Chane vide non autorise"}, {T_ERROR, "Erreur"}, {T_WARNING, "Avertissement"}, {T_EXIT, "Quitter"}, {T_EXIT_TUCNAK, "Quitter Tucnak"}, {T_FILE, "Fichier"}, {T_FULL_SCREEN, "Plein cran"}, {T_HELP, "Aide"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "A"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "Q"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Cadres KOI8-R"}, {T_LANGUAGE, "Langue"}, {T_LAST, "dernier"}, {T_LINUX_OR_OS2_FRAMES, "Cadres Linux ou OS/2"}, {T_MEMORY_INFO, "Info mmoire"}, {T_NO_FRAMES, "Aucun cadre"}, {T_NO, "Non"}, {T_NUMBER_EXPECTED, "Nombre attendu dans le champ"}, {T_NUMBER_OUT_OF_RANGE, "Nombre hors domaine"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Restreindre les cadres en cp850/852"}, {T_UTF_8_IO, "UTF-8 Entre/Sortie"}, {T_SCREEN, "Ecran"}, {T_SETUP, "Setup"}, {T_TERMINAL_OPTIONS, "Options terminal"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nLog contest V/U/SHF similaire TACLOG"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Utiliser ^[[11m"}, {T_VT_100_FRAMES, "Cadres VT 100"}, {T_WELCOME1, "Bienvenue dans Tucnak!"}, {T_WELCOME2, "Veuillez saisir votr indicatif et votre locator:"}, {T_WELCOME, "Bienvenue"}, {T_XTERM, "Xterm"}, {T_YES, "Oui"}, {T_CANT_APPEND_S, "Ne peut concatner le fichier %s"}, {T_CANT_WRITE, "Ne peut crire dans le fichier"}, {T_CANT_WRITE_S, "Ne peut crire dans le fichier %s"}, {T_CANT_READ, "Ne peut lire depuis le fichier"}, {T_CANT_READ_S, "Ne peut lire depuis le fichier %s"}, {T_SAVED_S, "%s enregistr"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - vitesse cw "}, {T_CANT_OPEN_S, "Ne peut ouvrir %s"}, {T_CANT_LOCK, "Ne peut vrouiller"}, {T_CANT_LOCK_S, "Ne peut vrouiller %s"}, {T_LOADING_CTEST_S, "*** Chargement contest %s"}, {T_NO_FILES, "Aucun fichier dans le rpertoire"}, {T_BAND_EXIST_SS, "ATTENTION! La bande %s (%s) existe dj"}, {T_BAND_NOT_OPEN, "Bande non active dans ce contest"}, {T_NO_BANDS, "Aucune bande charger"}, {T_CANT_SET_GR_S, "Ne peut mettre aucun mode graphique-%s"}, {T_GCALL, "Indicatif: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Trns: %s %s"}, {T_GRCV, "Reu: %s %s"}, {T_GTIM, "Time: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Rem: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "revenu: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " ATTENDRE svp "}, {T__RO_BAND, " BANDE LECTURE-SEULE"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis 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 2 of the License, or (at your option) any later version."}, {T_CTEST_ACTIVE, "Contest dj actif "}, {T_NO_CTESTS, "Aucun contest"}, {T_NO_CCLOSE, "Aucun contest fermer"}, {T_REALLY, "Vraiment?"}, {T_CLOSE_CTEST, "Voulez vous vraiment fermer ce contest?"}, {T_GUI_LD, "IHM: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw lments, %d wc lments, dernier %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n"}, {T_VEXC, "Verified EXC: %d items\n"}, {T_DWI, "D_W: %d prfixes, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Noms: %d noms\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Mmoire:"}, {T_NMY, " Mien: "}, {T_NGLOBAL, "Global: "}, {T_NMASTER, "Matre: "}, {T_NREMOTE, "Remote: "}, {T_NSLAVES, "\nEsclaves:\n"}, {T_NINFO, "Info rseau"}, {T_NO_BANDS_QRV, "QRV aucune bande"}, {T_NO_BANDS_CONF, "Aucune bande configure"}, {T_NOT_AVAILABLE, "Non disponible"}, {T_ADD_SUBWIN, "Ajoute sous-fentre"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Ferme sous-fentre"}, {T_HK_CLOSE_SUBWIN, "F"}, {T_HK_NINFO, "N"}, {T_NEW, "Nouveau"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Nouveau depuis assistant"}, {T_HK_NEW_WIZZ, "V"}, {T_NEW_NET, "New from network"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Ouvrir"}, {T_HK_OPEN, "O"}, {T_SAVE, "Enregistrer"}, {T_HK_SAVE, "E"}, {T_EXPORT_EDI, "Exporter en EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exporter en rapport"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exporter en ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exporter en HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importer EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importer ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importer swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Options contest"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Fermer contest"}, {T_HK_CLOSE_CONTEST, "F"}, {T_ADD_ERROR, "Ajouter ERROR"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Changer d'oprateur"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Mettre jour C_W depuis contest"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Mettre jour C_W depuis la bande"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Update EXC DB from contest"}, {T_HK_EXC_CTEST, "P"}, {T_EXC_BAND, "Update EXC DB from band"}, {T_HK_EXC_BAND, "D"}, {T_IMPORT_EBW, "Importer base de donne DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Aucun contest"}, {T_NO_PEERS, "Aucun pairs trouvs"}, {T_NO_MASTER, "Matre undisponible!"}, {T_CTEST_DEF, "Contest par dfaut"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "Bande par dfaut"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "P"}, {T_CW_DAEMON, "Manip CW"}, {T_HK_CW_DAEMON, "M"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Auto-enregistrement"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Chargement cfg depuis rseau"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Chargement C_W depuis rseau"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Enregistrement configuration"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Contest"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Edition"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bandes"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Sous-fentres"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "Band settings for band %c %s"}, {T_QRV_ON_THIS_BAND, "QRV sur cette bande"}, {T_QRV_IN_THIS_CTEST, "QRV dans ce contest"}, {T_READ_ONLY, "Lecture-seule"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " TX Equip:"}, {T_POWER, "Puissance:"}, {T_RXEQUIP, " RX Equip:"}, {T_ANTENNA, " Antenne:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "Oprateurs:"}, {T_SPACES1, " "}, {T_REMARKS, "Remarques:"}, {T_OK_SECTION_SINGLE, "Single category in OK"}, {T_OK_SECTION_MULTI, "Multi category in OK"}, {T_QRG_MIN, "Band boundary from"}, {T_QRG_MAX, "to [kHz]"}, {T_ADIFBAND, "ADIF band name"}, {T_SKEDQRG, "QRG for skeds (free form)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Oprateur responsable"}, {T_NAME, " Nom:"}, {T_CALLSIGN, " Indicatif:"}, {T_ADDRESS, " Adresse:"}, {T_POSTCODE, "Code Postal:"}, {T_CITY, " Ville:"}, {T_COUNTRY, " Pays:"}, {T_PHONE, " Tlphone:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --aucun-- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --aucun-- "}, {T_TP1, " 1 Multiplicatif (Std. IARU)"}, {T_TP2, " 2 Additif (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nouveau Contest"}, {T_CANT_TRUNC, "Ne peut troncaturer le fichier desc"}, {T_NAME_OF_CTEST, "Nom du contest:"}, {T_CALL_OF_CTEST, "Indicatif dans le contest:"}, {T_CLUB_ST, "Station du club:"}, {T_YOURWWL, "Votre WWL:"}, {T_YOUREXC, "Votre EXC:"}, {T_DATE_OF_CTEST, "Date du contest:"}, {T_QSOUSED, "QSO NR utilis"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "WWL utilis "}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL multi:"}, {T_EXCUSED, "EXC used"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC multi:"}, {T_EXCNAME, "EXC name:"}, {T_PREFM, "PREF multi:"}, {T_DXCB, "DXC bonus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST Utilis "}, {T_DEFRS, "RS par dfaut:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Also for RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Op responsable"}, {T_EDIT_QSO_CD, "Edite QSO %c: %03d"}, {T_CALLSIGN2, "Indicatif:"}, {T_CLUB, " Club:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operator:"}, {T_DATE, " Date:"}, {T_MODE, " Mode:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO sent:"}, {T_QSONRR, "QSO rcvd:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, "Remarque:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Envoi sked"}, {T_SELECT, "Slectionne"}, {T_QRG, " QRG:"}, {T_WE_CALL, " On appelle"}, {T_BAND, " Bande:"}, {T_TIME, " Time:"}, {T_DUPE_QSO, "QSO dupliqu!"}, {T_CLEAR_THIS_QSO, "Nettoyer ce QSO"}, {T_EDIT_OLD_QSO, "Edite ancien QSO"}, {T_MARK_OLD_QSO, "Marque ancien QSO comme ERROR"}, {T_STORE_AS_DUPE, "Enregistre comme DUPE"}, {T_BAD_CALL, "Ca ne ressemble pas un indicatif"}, {T_N_CALLSIGN, "\nIndicatif:"}, {T_AUTOSAVE_OPTS, "Options auto-enregistrement"}, {T_SAVE_AQ, "Enregistre sur disque aprs QSO: "}, {T_SAVE_AM, "Enregistre sur disque aprs minutes:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Enregistre sur disquette aprs QSO: "}, {T_SAVE_AMF, "Enregistre sur disquette aprs minutes:"}, {T_DO_MOUNT, "Monter si absent de /etc/mtab (inutilis)"}, {T_FLOPPY_PATH, "Chemin de disquette:"}, {T_MOUNT_CMD, "Commande de montage: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Part."}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Carte"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "QSOs non finis"}, {T_DXC, "DX Cluster"}, {T_STAT, "Statistiques"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Carte graphique"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Commande"}, {T_RESPAWN, "Relance [sec]:"}, {T_UNFI_QSO, "QSO non fini"}, {T_N_REMARK, "\nRemarque:"}, {T_NO_CQ, "Aucun CQ dfini"}, {T_TEXT, "Texte:"}, {T_SPEED, "Vitesse [WPM]:"}, {T_REPEAT, "Rpte"}, {T_DELAY, "Dlai [0.1s]:"}, {T_ALLOW_UNDEF, "Autorise si qq lments indfinis"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Nom de fichier:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "Port UDP:"}, {T_DEVICE, "Priphrique manip:"}, {T_INIT_SPEED, "Vitesse initiale [WPM]:"}, {T_INIT_WEIGHT, "Weight (30-70):"}, {T_WPMFROM, "WPM Range from"}, {T_WPMTO, "to"}, {T_USE_SPK, "Utilise le haut-parleur"}, {T_LEADIN, "PTT lead in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignore l'interface %-5s"}, {T_IGN_ADDR_S, "Ignore l'adresse %s"}, {T_ADD_IFACE_SSD, "Ajoute l'interface=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Force l'adresse %s"}, {T_TIMESKEW, "ATTENTION! Variation de temps %d dtecte par rapport %s:%d !\n"}, {T_DISCONNECTING_SD, "Dconnection de %s:%d"}, {T_ACCEPTED_SD, "Accept %s:%d (%s)"}, {T_CONNECTING_SD, "Connection %s:%d"}, {T_CONNECTED_SD, "Connect %s:%d"}, {T_DISCONNECTED_SD, "Dconnect de %s:%d"}, {T_LOADED_CFG_SSSS, "Chargement config pour %s %s (%s,%s)"}, {T_LOADED_CW, "Donne C_W charge"}, {T_PEER_NOT_FOUND, "ERREUR! Correspondant %s non trouv"}, {T_CANT_CREATE_HOME_S, "Ne peut crer le rpertoire %s"}, {T_CANT_LOAD_CFG, "Ne peut charger la configuration!\nProgramme ne peut fonctionner correctement!"}, {T_ERR_RC, "Encontr quelques erreurs dans le fichier de config!\nCe fichier a peut-tre t enregistr avec un version plus rcente de Tucnak!\nN'enregistrez pas votre confuguration sinon vous perdriez vos donnes!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Remarque "}, {T_SES_WELCOME, "Bienvenue dans Tucnak! "}, {T_SES_PRESS_F10, "Presser F10 pour le menu."}, {T_SES_HAVE_FUN, "Amusez vous bien."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG"}, {T_SES_AVG, " MOY: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS en WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statistiques pour la bande %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "All bands QSOs: %d"}, {T_SF_ALLBQSOP, "All bands QSOp: %d"}, {T_SF_ALLBPTS, "All bands pts: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO points: %d"}, {T_SF_PTS, "Points: %d"}, {T_SF_AVG_PTS, "Moyenne pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Moyenne qsop/QSO: %5.2f"}, {T_BAND_RO, "Bande en lecture-seule"}, {T_THIS_BAND, "Cette bande"}, {T_OTHER_BANDS, "Autres bandes"}, {T_CW_DB, "C_W base de donnes"}, {T_PROC_EXITED, "*** Processus s'est termin\n"}, {T_WE_CALL2, "on appelle"}, {T_WE_LISTEN, "on coute"}, {T_QSL, "QSL promise"}, {T_RECORD, "Enregistre trafic"}, {T_MAXMIN, " Dure max d'enregistrement"}, {T_TEMPLATE, "Patron du nom de fichier"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Canaux"}, {T_SAMPLERATE, "Frquence d'chantillonage"}, {T_FILLOP, "Renseigner oprateurs"}, {T_HK_FILLOP, "N"}, {T_RECAQRB, "Recalc QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Rseau & trace"}, {T_HK_NETWORK, "E"}, {T_IF_IGNORE, "Ignore interfaces:"}, {T_IP_IGNORE, " Ignore rseaux:"}, {T_IP_ANNOUNCE, "Annonce au rseau:"}, {T_TRACE_BCAST, "Trace broadcasts "}, {T_TRACE_SOCK, "Trace sockets"}, {T_TRACE_RECV, "Trace donnes reues"}, {T_TRACE_SEND, "Trace donnes envoyes"}, {T_TRACE_QSOS, "Trace QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "Non mont %s"}, {T_RECSRC_NONE, "Ne pas dfinir"}, {T_RECSRC_MIC, "Microphone"}, {T_RECSRC_LINE, "Entre ligne"}, {T_NEW_CALL, "Nouveau!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV sur %s"}, {T_SKED_QRG, "QRG pour skeds"}, {T_HK_SKED_QRG, "Q"}, {T_N_SKED_QRG, "\nQRG pour skeds:"}, {T_GRAB_BAND, "Rcupre contrle bande"}, {T_HK_GRAB_BAND, "P"}, {T_FORCE_RUN, "Force mode RUN"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Exporter Statistiques"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotator"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimuth"}, {T_ELEVATION, "Elvation"}, {T_CH_SPY, "Espionne"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Fin espionnage"}, {T_HK_CH_ENDSPY, "F"}, {T_EXPORT_TITLPAGE, "Exporter page de titre"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Arrte l'enregistrement"}, {T_HK_BREAK_RECORD, "A"}, {T_GLOBAL_OPERATOR, "Changer pour toutes bandes"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Nombre max de fragments (>=2)"}, {T_PLAY_LAST, "Joue dernier chantillon"}, {T_HK_PLAY_LAST, "J"}, {T_MISCOPTS, "Options diverses"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Lignes log: "}, {T_SKEDSHIFT, "Dcalage sked (minutes): "}, {T_STARTBAND, "Band de dpart: "}, {T_GFX_X_CH, "Rsolution cran (cars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Rsolution cran (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Info indicatif"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/heure: %d"}, {T_SF_QSOP_HOUR, "Points/heure: %d"}, {T_SF_QSOP_50QSO, "Points/50 QSOs: %d"}, {T_SF_HOURS, " Heures"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Heures Points QSOs MOY pts/QSO"}, {T_QSO_CHECK, "QSO vrification"}, {T_HK_QSO_CHECK, "Q"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Espace disque minimum [MiB]"}, {T_FORMAT, "Format enregistrement"}, {T_PCM_PLAY, "Priphrique playback Alsa"}, {T_PCM_REC, "Priphrique capture Alsa"}, {T_PERIOD, "Priode [ms]"}, {T_BUFFER, "Temps buffer [ms]"}, {T_ALSA_MIXER, "Priphrique mixeur Alsa"}, {T_CAPTURE, "Source capture"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mixeur"}, {T_RECSRC, "Source enregistrement"}, {T_PA_PLAY, "Portaudio playback device"}, {T_PA_REC, "Portaudio capture device"}, {T_HOSTNAME, "Hte:"}, {T_SLASHKEY, "Slash key"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Enter accurate QRG [Hz]"}, {T_BAD_QRG, "Bad frequency"}, {T_CALLSIGN3, "Callsign"}, {T_CALLSIGN_KST, "KST station's callsign:"}, {T_CANT_INIT_WINKEY_S, "Can't init winkey on %s"}, {T_WINKEYOPTS, "Winkey options"}, {T_WK_WK2, "Winkey2 fast initialization"}, {T_WK_USEPOT, "Use speed pot"}, {T_WK_USEBUT, "Use buttons"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (left handled)"}, {T_RIGOPTS, "Rig options"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Device:"}, {T_RIG_MODEL, "Model"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV address (hex)"}, {T_RIG_FREQSHIFT, "Freq. shift SSB->CW"}, {T_RIG_CHOOSE, "Choose"}, {T_ROTAROPTS, "Rotar options"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Disable screensaver"}, {T_DESC, "Description"}, {T_ROT_NONE, "None"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib (N/A)"}, {T_ROT_REMOTE, "Remote (N/A)"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Add new rotator"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Remove rotator"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beam width"}, {T_SADDR, "Communication address:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotator letter for remote"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global prefix"}, {T_NOT_RECORDING_S, "Not recording - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {T_ROT_POLL_MS, "Poll interval [ms]:"}, {T_VERSION, "Version"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Remote host name:"}, {T_REMOTE_PORT, " Remote TCP port:"}, {T_REMOTE_PASS, " Remote Password:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster database"}, {T_FREE_DXC, "Terminating DXcluster database"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved '%s'"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation translation_castellano [] = { {0, NULL}, {T__CHAR_SET, "us-ascii"}, {T__LANGUAGE, "Castellano"}, {T_ABOUT, "Acerca"}, {T_BAD_NUMBER, "Numero incorrecto"}, {T_BAD_STRING, "Texto incorrecto"}, {T_BASIC_HELP, "Presione F10 para menu.\nDiviertase!"}, {T_BLOCK_CURSOR, "Block cursor"}, {T_CANCEL, "Cancelar"}, {T_CHARACTER_SET, "Juego de caracteres"}, {T_COLOR, "Color"}, {T_COPYING, "Copy"}, {T_DIFFERENCE, "diferencia"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quieres salir de Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "No se permiten textos vacios"}, {T_ERROR, "Error"}, {T_WARNING, "Cuidado"}, {T_EXIT, "Salir"}, {T_EXIT_TUCNAK, "Salir de Tucnak"}, {T_FILE, "Archivo"}, {T_FULL_SCREEN, "Pantalla Completa"}, {T_HELP, "Ayuda"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "X"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "KOI8-R frames"}, {T_LANGUAGE, "Lenguaje"}, {T_LAST, "ultimo"}, {T_LINUX_OR_OS2_FRAMES, "Entorno OS/2 o Linux"}, {T_MEMORY_INFO, "Info de memoria"}, {T_NO_FRAMES, "No frames"}, {T_NO, "No"}, {T_NUMBER_EXPECTED, "Se esperaba un numero en el campo"}, {T_NUMBER_OUT_OF_RANGE, "Numero fuera de rango"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852"}, {T_UTF_8_IO, "UTF-8 Entrada/Salida"}, {T_SCREEN, "Pantalla"}, {T_SETUP, "Setup"}, {T_TERMINAL_OPTIONS, "Opciones de terminal"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Use ^[[11m"}, {T_VT_100_FRAMES, "VT 100 frames"}, {T_WELCOME1, "Bienvenido a Tucnak!"}, {T_WELCOME2, "Por favor, ingrese su licencia y los proximos campos de datos:"}, {T_WELCOME, "Bienvenido"}, {T_XTERM, "Xterm"}, {T_YES, "Si"}, {T_CANT_APPEND_S, "No puedo abrir el archivo %s"}, {T_CANT_WRITE, "No puedo escribir el archivo"}, {T_CANT_WRITE_S, "No puedo escribir al archivo %s"}, {T_CANT_READ, "No puedo leer desde el archivo"}, {T_CANT_READ_S, "No puedo leer desde el archivo %s"}, {T_SAVED_S, "Salvado %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - velocidad cw "}, {T_CANT_OPEN_S, "No puedo abrir %s"}, {T_CANT_LOCK, "No se puede lockear"}, {T_CANT_LOCK_S, "No puedo lockear %s"}, {T_LOADING_CTEST_S, "*** Cargando concurso %s"}, {T_NO_FILES, "No hay archivos en el directorio"}, {T_BAND_EXIST_SS, "CUIDADO! Banda %s (%s) ya existe"}, {T_BAND_NOT_OPEN, "Banda no activa en este concurso"}, {T_NO_BANDS, "No bandas a cargar"}, {T_CANT_SET_GR_S, "No puedo setear modo grafico-%s"}, {T_GCALL, "Licencia: %s"}, {T_GWWL, "Locator: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Enviado: %s %s"}, {T_GRCV, "Recibido: %s %s"}, {T_GTIM, "Hora: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Notas: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "ingreso: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Por favor, espere"}, {T__RO_BAND, " BANDA DE SOLO LECTURA"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation."}, {T_CTEST_ACTIVE, "El concurso ya esta activo"}, {T_NO_CTESTS, "No concursos"}, {T_NO_CCLOSE, "No hay concurso para cerrar"}, {T_REALLY, "Realmente?"}, {T_CLOSE_CTEST, "Quieres cerrar realmente este concurso?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw items, %d wc items, ultimo %d\n"}, {T_EXC, "Exc: %s %d exc items, %d cxe items, ultimo %d\n"}, {T_VEXC, "Verificados EXC: %d items\n"}, {T_DWI, "D_W: %d prefijos, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Nombre: %d nombres\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Memoria:"}, {T_NMY, " Yo: "}, {T_NGLOBAL, "Global: "}, {T_NMASTER, "Master: "}, {T_NREMOTE, "Remote: "}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Network info"}, {T_NO_BANDS_QRV, "No hay bandas QRV"}, {T_NO_BANDS_CONF, "No hay bandas configuradas"}, {T_NOT_AVAILABLE, "No disponible"}, {T_ADD_SUBWIN, "Add subwin"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Close subwin"}, {T_HK_CLOSE_SUBWIN, "C"}, {T_HK_NINFO, "N"}, {T_NEW, "Nuevo"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Nuevo desde el ayudante"}, {T_HK_NEW_WIZZ, "W"}, {T_NEW_NET, "Nuevo desde la red"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Abrir"}, {T_HK_OPEN, "O"}, {T_SAVE, "Salvar"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Exportar como EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Exportar como report"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Exportar como ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Export as ADIF"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Exportar como HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Export as MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importar EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importar ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importar swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Opciones del concurso"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Cerrar concurso"}, {T_HK_CLOSE_CONTEST, "C"}, {T_ADD_ERROR, "Add ERROR"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Cambiar concurso"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Actualizar C_W desde el concurso"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Actualizar C_W desde bandas"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Actualizar EXC DB desde el concurso"}, {T_HK_EXC_CTEST, "A"}, {T_EXC_BAND, "Actualizar EXC DB desde bandas"}, {T_HK_EXC_BAND, "T"}, {T_IMPORT_EBW, "Importar base de datos DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "No concurso"}, {T_NO_PEERS, "No encontre peers"}, {T_NO_MASTER, "Master no esta disponible!"}, {T_CTEST_DEF, "Defaults de concursos"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "Defaults de bandas"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "P"}, {T_CW_DAEMON, "CW keying"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Autosalvar"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Cargar cfg desde net"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Cargar C_W desde net"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Salvar configuracion"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Concurso"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Editar"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bandas"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Subwins"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "Seteo de bandas para banda %c %s"}, {T_QRV_ON_THIS_BAND, "QRV sobre esta banda"}, {T_QRV_IN_THIS_CTEST, "QRV en este concurso"}, {T_READ_ONLY, "Solo lectura"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " TX Equip:"}, {T_POWER, " Power:"}, {T_RXEQUIP, " RX Equip:"}, {T_ANTENNA, " Antena:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "Operadores:"}, {T_SPACES1, " "}, {T_REMARKS, " Notas:"}, {T_OK_SECTION_SINGLE, "Categoria single es OK"}, {T_OK_SECTION_MULTI, "Multi categoria es OK"}, {T_QRG_MIN, "Extremos de banda desde"}, {T_QRG_MAX, "a [kHz]"}, {T_ADIFBAND, "ADIF nombre de banda"}, {T_SKEDQRG, "QRG para skeds (texto libre)"}, {T_BAND_LO, "Transverter's LO QRG [Hz]"}, {T_BANDSW, "Band switch value"}, {T_RESPOP, "Operador responsable"}, {T_NAME, " Nombre:"}, {T_CALLSIGN, " Licencia:"}, {T_ADDRESS, " Direccion:"}, {T_POSTCODE, " Cod.Postal:"}, {T_CITY, " Ciudad:"}, {T_COUNTRY, " Pais:"}, {T_PHONE, " Telefono:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " -- nada -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " -- nada -- "}, {T_TP1, " 1 Multiplicative (Std. IARU)"}, {T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nuevo concurso"}, {T_CANT_TRUNC, "No puedo truncar la descrip. del archivo"}, {T_NAME_OF_CTEST, "Nombre del concurso:"}, {T_CALL_OF_CTEST, "Licencia en el concurso:"}, {T_CLUB_ST, "Radio Club:"}, {T_YOURWWL, "Su Locator:"}, {T_YOUREXC, "SU EXC:"}, {T_DATE_OF_CTEST, "Fecha del concurso:"}, {T_QSOUSED, "QSO NR usado"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "Locator used "}, {T_WWLB, "WWL bonus:"}, {T_WWLM, "WWL multi:"}, {T_EXCUSED, "EXC usado"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC multi:"}, {T_EXCNAME, " EXC nombre: "}, {T_PREFM, "PREF multi:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST Usado "}, {T_DEFRS, "Default RS:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Tamb. para RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Total calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Op. responsable"}, {T_EDIT_QSO_CD, "Editar QSO %c: %03d"}, {T_CALLSIGN2, "Licencia:"}, {T_CLUB, " Club:"}, {T_PADR1, " Direc.1:"}, {T_PADR2, " Direc.2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operador:"}, {T_DATE, " Fecha:"}, {T_MODE, " Modo:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO env.:"}, {T_QSONRR, "QSO rec.:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " Locator:"}, {T_REMARK, " Notas:"}, {T_QRV2, " QRV on:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Sked enviado"}, {T_SELECT, "Seleccionar"}, {T_QRG, " QRG:"}, {T_WE_CALL, " Llamamos"}, {T_BAND, " Banda:"}, {T_TIME, " Hora:"}, {T_DUPE_QSO, "QSO duplicado!"}, {T_CLEAR_THIS_QSO, "Limpiar este QSO"}, {T_EDIT_OLD_QSO, "Editar QSO viejo"}, {T_MARK_OLD_QSO, "Marcar QSO viejo como ERROR"}, {T_STORE_AS_DUPE, "Almacenar como DUP"}, {T_BAD_CALL, "Esto no parece ser una licencia!"}, {T_N_CALLSIGN, "\nLicencia:"}, {T_AUTOSAVE_OPTS, "Opciones de Autosalvado"}, {T_SAVE_AQ, "Salvar al disco luego del QSO:"}, {T_SAVE_AM, "Salvar al disco luego de minutos:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Salvar al disquette luego del QSO: "}, {T_SAVE_AMF, "Salvar al disquette luego de minutos:"}, {T_DO_MOUNT, "Mount no esta en /etc/mtab (no usado)"}, {T_FLOPPY_PATH, "Path al disquette:"}, {T_MOUNT_CMD, "Comando de montar: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Unfi"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Map"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "QSOs no finalizados"}, {T_DXC, "DX Cluster"}, {T_STAT, "Stadisticas"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Mapa grafico"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Comando"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "QSO no finalizado"}, {T_N_REMARK, "\nNota:"}, {T_NO_CQ, "No hay CQ definido"}, {T_TEXT, "Texto:"}, {T_SPEED, "Velocidad [WPM]:"}, {T_REPEAT, "Repetir"}, {T_DELAY, "Retardo [0.1s]:"}, {T_ALLOW_UNDEF, "Pemitir aunque algun item no este definido"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Archivo:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP port:"}, {T_DEVICE, "Dispositivo de Keying:"}, {T_INIT_SPEED, "Velocidad inicial [WPM]:"}, {T_INIT_WEIGHT, "Peso:"}, {T_WPMFROM, "WPM Rango desde"}, {T_WPMTO, "a"}, {T_USE_SPK, "Use parlante"}, {T_LEADIN, "PTT retardo in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignorando interface %-5s"}, {T_IGN_ADDR_S, "Ignorando address %s"}, {T_ADD_IFACE_SSD, "Adicionando interface=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Forzando la direccion %s"}, {T_TIMESKEW, "CUIDADO! Desfasaje de tiempo %d detectado con %s:%d !\n"}, {T_DISCONNECTING_SD, "Desconectando de %s:%d"}, {T_ACCEPTED_SD, "Aceptando %s:%d (%s)"}, {T_CONNECTING_SD, "Conectando a %s:%d"}, {T_CONNECTED_SD, "Conectado a %s:%d"}, {T_DISCONNECTED_SD, "Desconectado de %s:%d"}, {T_LOADED_CFG_SSSS, "Config cargado para %s %s (%s,%s)"}, {T_LOADED_CW, "Cargado datos C_W data"}, {T_PEER_NOT_FOUND, "ERROR! Peer %s no encontrado"}, {T_CANT_CREATE_HOME_S, "No puedo crear el directorio %s"}, {T_CANT_LOAD_CFG, "No puedo cargar la configuracion!\nEl programa no trabajara correctamente!"}, {T_ERR_RC, "Se encontraron algunos errores mientras se examinaba el archivo de configuracion!\nEste archivo fue probablemente guardado con una nueva version de Tucnak!\nNo salve su configuracion a no ser que quiera perder datos!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Notas "}, {T_SES_WELCOME, "Bienvenido a Tucnak! "}, {T_SES_PRESS_F10, "Presione F10 para menu."}, {T_SES_HAVE_FUN, "Tenga suerte."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p PROM"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Missing EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS en WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Estadisticas para banda %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Concurso: %s"}, {T_SF_ALLBQSOS, "QSO's en todas las bandas: %d"}, {T_SF_ALLBQSOP, "QSOp en todas las bandas: %d"}, {T_SF_ALLBPTS, "Puntos en todas las bandas: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO puntos: %d"}, {T_SF_PTS, "Puntos: %d"}, {T_SF_AVG_PTS, "Promedio pts/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Promedio qsop/QSO: %5.2f"}, {T_BAND_RO, "Banda es solo lectura"}, {T_THIS_BAND, "Esta banda"}, {T_OTHER_BANDS, "Otras bandas"}, {T_CW_DB, "C_W base de datos"}, {T_PROC_EXITED, "*** Saliendo del proceso\n"}, {T_WE_CALL2, "Llamando"}, {T_WE_LISTEN, "Escuchando"}, {T_QSL, "QSL prometida"}, {T_RECORD, "Grabando trafico"}, {T_MAXMIN, " Max. duracion de grabacion"}, {T_TEMPLATE, "Mascar para el nombre de archivo grabado"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Canales"}, {T_SAMPLERATE, "Sample rate"}, {T_FILLOP, "Fill operators"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Recalcule QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Network & trace"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Ignore interfaces:"}, {T_IP_IGNORE, " Ignore networks:"}, {T_IP_ANNOUNCE, " Anuncie a nets:"}, {T_TRACE_BCAST, "Trace broadcasts "}, {T_TRACE_SOCK, "Trace sockets"}, {T_TRACE_RECV, "Trace datos recibidos"}, {T_TRACE_SEND, "Trace datos enviados"}, {T_TRACE_QSOS, "Trace QSOs"}, {T_TRACE_SDEV, "Trace rotars"}, {T_NOT_MOUNTED_S, "No montado %s"}, {T_RECSRC_NONE, "No seteado"}, {T_RECSRC_MIC, "Microfono"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "Nuevo!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV en %s"}, {T_SKED_QRG, "QRG para skeds"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG para skeds:"}, {T_GRAB_BAND, "Grab control de banda"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Forzar mode RUN"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Exportar estadisticas"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimuth"}, {T_ELEVATION, "Elevacion"}, {T_CH_SPY, "Espiar"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Finalizar espiar"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Exportar titulo de la pagina"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Cortar registro"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Cambiar para todas las bandas"}, {T_GLOBAL_OPERATOR2, "Global"}, {T_MAXFRAG, "Max. num de fragmentos (>=2)"}, {T_PLAY_LAST, "Escuchar el ultimo ejemplo"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Opciones miscelaneas"}, {T_HK_MISCOPTS, "P"}, {T_LOGLINES, "Log lineas: "}, {T_SKEDSHIFT, "Sked shift (minutes): "}, {T_STARTBAND, "Comenzando en banda: "}, {T_GFX_X_CH, "Resolucion de pantalla (chars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Resolucion de pantalla (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Info de la licencia"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSOs/hora: %d"}, {T_SF_QSOP_HOUR, "Puntos/hora: %d"}, {T_SF_QSOP_50QSO, "Puntos/50 QSOs: %d"}, {T_SF_HOURS, " Horas"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Horas Puntos QSOs PROMpts/QSO"}, {T_QSO_CHECK, "QSO check"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Espacio minimo libre en disco [MiB]"}, {T_FORMAT, "Formato de la grabacion"}, {T_PCM_PLAY, "Dispositivo Alsa de audio"}, {T_PCM_REC, "Dispositivo Alsa de captura"}, {T_PERIOD, "Periodo de tiempo [ms]"}, {T_BUFFER, "Buffer de tiempo [ms]"}, {T_ALSA_MIXER, "Dispositivo Alsa mezclador"}, {T_CAPTURE, "Fuente de captura"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mixer"}, {T_RECSRC, "Fuente de registro"}, {T_PA_PLAY, "Portaudio playback device"}, {T_PA_REC, "Portaudio capture device"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Slash key"}, {T_FIXQRG, "Fix QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Ingrese QRG exacta [Hz]"}, {T_BAD_QRG, "Frecuencia incorrecta"}, {T_CALLSIGN3, "Licencia"}, {T_CALLSIGN_KST, "KST licencia de la estacion:"}, {T_CANT_INIT_WINKEY_S, "No puedo iniciar winkey en %s"}, {T_WINKEYOPTS, "Opciones Winkey"}, {T_WK_WK2, "Winkey2 inicializacion rapida"}, {T_WK_USEPOT, "Use speed pot"}, {T_WK_USEBUT, "Usar botones"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Paddle swap (left handled)"}, {T_RIGOPTS, "Opciones del equipo"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Dispositivo:"}, {T_RIG_MODEL, "Modelo"}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "CIV direccion (hex)"}, {T_RIG_FREQSHIFT, "Corrimiento de freq.SSB->CW"}, {T_RIG_CHOOSE, "Elija"}, {T_ROTAROPTS, "Opciones del rotor"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Desactivar salva pantalla"}, {T_DESC, "Descripcion"}, {T_ROT_NONE, "Nada"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib"}, {T_ROT_REMOTE, "Remoto"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Adicionar un rotor nuevo"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Eliminar rotor"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Ancho del beam:"}, {T_SADDR, "Comunicacion address:"}, {T_MODEL, "Modelo:"}, {T_ROT_REM_ROTSTR, "Letra del rotor para remoto"}, {T_QSOGLOB, "Global QSO NR"}, {T_PREFGLOB, "Global PREF"}, {T_NOT_RECORDING_S, "No grabando - %s"}, {T_SKEDCOUNT, "Sked count in popup: "}, {T_FONTHEIGHT, "Font height (16-32): "}, {T_RIG_POLL_MS, "Rig poll interval [ms]: "}, {T_RIG_QRG_R2T, "Set band from radio"}, {T_RIG_QRG_T2R, "Change band on radio"}, {T_RIG_MODE_T2R, "Change mode on radio"}, {T_RUN_MODE, "Run mode"}, {T_HK_RUN_MODE, "M"}, {T_SP_MODE, "S&P mode"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band QSO Point Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Last Q-%s P-%s"}, {T_EVEN, "TX even"}, {T_HK_EVEN, "v"}, {T_ODD, "TX odd"}, {T_HK_ODD, "d"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Score:"}, {T_EXPMODE, "Expedition mode"}, {T_TTTYPE, "Only digits mean"}, {T_ROT_POLL_MS, "Poll interval [ms]:"}, {T_VERSION, "Version"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Remote host name:"}, {T_REMOTE_PORT, " Remote TCP port:"}, {T_REMOTE_PASS, " Remote Password:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster database"}, {T_FREE_DXC, "Terminating DXcluster database"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved '%s'"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation translation_polish [] = { {0, NULL}, {T__CHAR_SET, "iso8859-2"}, {T__LANGUAGE, "Polish"}, {T_ABOUT, "O programie"}, {T_BAD_NUMBER, "Zy numer"}, {T_BAD_STRING, "Zy cig znakw"}, {T_BASIC_HELP, "Menu nacinij F10."}, {T_BLOCK_CURSOR, "Blokowy kursor"}, {T_CANCEL, "Anuluj"}, {T_CHARACTER_SET, "Zestaw znakw"}, {T_COLOR, "Kolor"}, {T_COPYING, "Kopiowanie"}, {T_DIFFERENCE, "rnica"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Czy napewno chcesz wyj z programu Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Niedozwolony pusty cig znakw"}, {T_ERROR, "Bd"}, {T_WARNING, "Uwaga"}, {T_EXIT, "Wyjcie"}, {T_EXIT_TUCNAK, "Wyjcie z Tucnak"}, {T_FILE, "Plik"}, {T_FULL_SCREEN, "Peny ekran"}, {T_HELP, "Pomoc"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "W"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Ramka KOI8-R"}, {T_LANGUAGE, "Jzyk"}, {T_LAST, "ostatni"}, {T_LINUX_OR_OS2_FRAMES, "Ramka Linux lub OS/2"}, {T_MEMORY_INFO, "Informacja o pamici"}, {T_NO_FRAMES, "Brak ramki"}, {T_NO, "Nie"}, {T_NUMBER_EXPECTED, "W tym polu tylko numer"}, {T_NUMBER_OUT_OF_RANGE, "Numer poza zakresem"}, {T_OK, "OK"}, {T_OS_SHELL, "Wiersz polece"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Ochrona ramki w cp850/852"}, {T_UTF_8_IO, "UTF-8 Wejcie/Wyjcie"}, {T_SCREEN, "Ekran"}, {T_SETUP, "Ustawienia"}, {T_TERMINAL_OPTIONS, "Opcje terminala"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nPodobny do TACLOGu-dziennik cznoci V/U/SHF"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Uyj ^[[11m"}, {T_VT_100_FRAMES, "Ramka VT 100"}, {T_WELCOME1, "Witamy w Tucnak!"}, {T_WELCOME2, "Wprowad swj znak i lokator:"}, {T_WELCOME, "Witaj"}, {T_XTERM, "Xterm"}, {T_YES, "Tak"}, {T_CANT_APPEND_S, "Nie mona doda pliku %s"}, {T_CANT_WRITE, "Nie mona zapisa pliku"}, {T_CANT_WRITE_S, "Nie mona zapisa do pliku %s"}, {T_CANT_READ, "Nie mona odczyta pliku"}, {T_CANT_READ_S, "Nie mona odczyta z pliku %s"}, {T_SAVED_S, "Zapisano %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - szybko CW "}, {T_CANT_OPEN_S, "Nie mona otworzy %s"}, {T_CANT_LOCK, "Nie mona zablokowa"}, {T_CANT_LOCK_S, "Nie mona zablokowa %s"}, {T_LOADING_CTEST_S, "*** Wczytanie zawodw %s"}, {T_NO_FILES, "Brak plikw w katalogu"}, {T_BAND_EXIST_SS, "UWAGA! Pasmo %s (%s) istnieje"}, {T_BAND_NOT_OPEN, "Pasmo nie jest aktywne w tych zawodach"}, {T_NO_BANDS, "Brak pasm do wczytania"}, {T_CANT_SET_GR_S, "Nie mona ustawi adnego trybu graficznego-%s"}, {T_GCALL, "Znak: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "Odlego: %d km"}, {T_GQTF, "Kierunek: %d"}, {T_GSEN, "Wysano: %s %s"}, {T_GRCV, "Odebrano: %s %s"}, {T_GTIM, "Czas: %s"}, {T_GOPE, "Operator: %s"}, {T_GREM, "Uwagi: %s"}, {T_GWKD, "Wkd: %d"}, {T_GINC, "income: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " Prosz czeka "}, {T__RO_BAND, " PASMO TYLKO DO ODCZYTU"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation."}, {T_CTEST_ACTIVE, "Log zawodw jest ju aktywny "}, {T_NO_CTESTS, "Brak logu zawodw"}, {T_NO_CCLOSE, "No contest to close"}, {T_REALLY, "Really?"}, {T_CLOSE_CTEST, "Czy napewno chcesz zamkn dziennik zawodw?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d cw wpisw, %d wc wpisw, ostatni %d\n"}, {T_EXC, "Exc: %s %d exc wpisw, %d cxe wpisw, ostatni %d\n"}, {T_VEXC, "Zweryfikowano EXC: %d wpisw\n"}, {T_DWI, "D_W: %d prefiksy, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Imiona: %d imion\n"}, {T_MASTER, "Gowny: %d calls\n"}, {T_MEMS, "Pami:"}, {T_NMY, " Mj: "}, {T_NGLOBAL, "Oglny: "}, {T_NMASTER, "Gwny: "}, {T_NREMOTE, "Zdalny: "}, {T_NSLAVES, "\nPodrzdny:\n"}, {T_NINFO, "Informacja o sieci"}, {T_NO_BANDS_QRV, "Pasmo nie jest aktywne"}, {T_NO_BANDS_CONF, "Pasmo nie jest skonfigurowane"}, {T_NOT_AVAILABLE, "Niedostpne"}, {T_ADD_SUBWIN, "Dodaj okno"}, {T_HK_ADD_SUBWIN, "D"}, {T_CLOSE_SUBWIN, "Zamknij okno"}, {T_HK_CLOSE_SUBWIN, "Z"}, {T_HK_NINFO, "I"}, {T_NEW, "Nowy"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Nowy z kreatora"}, {T_HK_NEW_WIZZ, "K"}, {T_NEW_NET, "Nowy z sieci"}, {T_HK_NEW_NET, "S"}, {T_OPEN, "Otwrz"}, {T_HK_OPEN, "O"}, {T_SAVE, "Zapisz"}, {T_HK_SAVE, "Z"}, {T_EXPORT_EDI, "Eksport do EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Eksport jako Raport"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Eksport do ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Eksport do Cabrillo"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Eksport do HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Eksport jako MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Import EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Import ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Import swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Import list"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Ustawienia zawodw"}, {T_HK_CONTEST_OP, "U"}, {T_CLOSE_CONTEST, "Zamknij log zawodw"}, {T_HK_CLOSE_CONTEST, "K"}, {T_ADD_ERROR, "Dodaj Bd"}, {T_HK_ADD_ERROR, "B"}, {T_CHOP, "Zmiana opertora"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aktualizacja C_W z logu"}, {T_HK_CW_CTEST, "A"}, {T_CW_BAND, "Aktualizacja C_W z pasma"}, {T_HK_CW_BAND, "P"}, {T_EXC_CTEST, "Aktualizacja EXC DB z logu"}, {T_HK_EXC_CTEST, "E"}, {T_EXC_BAND, "Aktualizacja EXC DB z pasma"}, {T_HK_EXC_BAND, "X"}, {T_IMPORT_EBW, "Import bazy DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Log nie jest aktywny"}, {T_NO_PEERS, "Nie znaleziono uytkownikw"}, {T_NO_MASTER, "Komputer gwny jest niedostpny!"}, {T_CTEST_DEF, "Domyle ustawienia zawodw"}, {T_HK_CTEST_DEF, "Z"}, {T_BAND_DEF, "Domylne ustawienia dla pasma"}, {T_HK_BAND_DEF, "P"}, {T_HK_RESPOP, "P"}, {T_CW_DAEMON, "Kluczowanie CW"}, {T_HK_CW_DAEMON, "K"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Autozapis"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Pobranie ustawie z sieci"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Pobieranie C_W z sieci"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Zapisz konfiguracj"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Zawody"}, {T_HK_CONTEST, "Z"}, {T_EDIT, "Edycja"}, {T_HK_EDIT, "E"}, {T_BANDS, "Pasma"}, {T_HK_BANDS, "P"}, {T_SUBWINS, "Okna"}, {T_HK_SUBWINS, "O"}, {T_BAND_SETTINGS_SC, "Ustawienia dla pasma %c %s"}, {T_QRV_ON_THIS_BAND, "QRV na tym pamie"}, {T_QRV_IN_THIS_CTEST, "QRV w tych zawodach"}, {T_READ_ONLY, "Tylko do odczytu"}, {T_MULTI, "Multi"}, {T_SINGLE, "Single"}, {T_CHECK, "Check"}, {T_TXEQUIP, " Nadajnik:"}, {T_POWER, " Moc:"}, {T_RXEQUIP, "Odbiornik:"}, {T_ANTENNA, " Antena:"}, {T_AGLASL, "Wys.ziem/morze:"}, {T_OPS, "Operatorzy:"}, {T_SPACES1, " "}, {T_REMARKS, " Uwagi:"}, {T_OK_SECTION_SINGLE, "Kategoria Single w OK"}, {T_OK_SECTION_MULTI, "Kategoria Multi w OK"}, {T_QRG_MIN, "Zakres pasma od"}, {T_QRG_MAX, "do [kHz]"}, {T_ADIFBAND, "Nazwa pasma w ADIF"}, {T_SKEDQRG, "Czst. do skedw (dowolny form.)"}, {T_BAND_LO, "LO Transwertera[Hz]:"}, {T_BANDSW, "Przecznik pasm"}, {T_RESPOP, "Operatorzy "}, {T_NAME, " Imie:"}, {T_CALLSIGN, " Znak:"}, {T_ADDRESS, " Adres:"}, {T_POSTCODE, " Kod poczt.:"}, {T_CITY, " Miasto:"}, {T_COUNTRY, " Kraj:"}, {T_PHONE, " Telefon:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " --nic -- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continent (CQ WW DX Contest)"}, {T_QP14, "14 Continent+band (CQ WW WPX Contest)"}, {T_QP15, "15 VHF Band (ARRL VHF)"}, {T_QP16, "16 QSOp *4 if F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --nic -- "}, {T_TP1, " 1 Multiplicative (Std. IARU)"}, {T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. all bands (CQ WW DX Contest)"}, {T_TP4, " 4 All bands togeth. (ARRL VHF)"}, {T_NEW_CTEST, "Nowe zawody"}, {T_CANT_TRUNC, "Nie mona skrci pliku"}, {T_NAME_OF_CTEST, " Nazwa zawodw:"}, {T_CALL_OF_CTEST, " Znak w zawodach:"}, {T_CLUB_ST, "Znak klubowy:"}, {T_YOURWWL, "Twj WWL:"}, {T_YOUREXC, "Twj EXC:"}, {T_DATE_OF_CTEST, "Data zawodw:"}, {T_QSOUSED, "Wymiana nr QSO"}, {T_QSOPM, " QSOp mnonik:"}, {T_WWLUSED, "Wymiana WWL"}, {T_WWLB, "Bonus WWL:"}, {T_WWLM, "WWL mnonik:"}, {T_EXCUSED, "Wymiana EXC"}, {T_EXCB, " Bonus EXC:"}, {T_EXCM, "EXC mnonik:"}, {T_EXCNAME, "Nazwa EXC: "}, {T_PREFM, "Mnonik PREF:"}, {T_DXCB, " Bonus DXC:"}, {T_DXCM, "Mnonik DXC:"}, {T_RSTUSED, "Wymiana RST"}, {T_DEFRS, "Domylny RS:"}, {T_DEFRST, "Dom. RST:"}, {T_ALSORSTR, "Rwnie dla RST-R"}, {T_QP_CALC, " Sposb liczenia QSOp:"}, {T_TO_CALC, "Sposb sumowania:"}, {T_EDI_PROP, "EDI informacje"}, {T_RESPOP2, "Operator odp."}, {T_EDIT_QSO_CD, "Edycja QSO %c: %03d"}, {T_CALLSIGN2, "Znak:"}, {T_CLUB, " Klub:"}, {T_PADR1, " PAdr1:"}, {T_PADR2, " PAdr2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operator:"}, {T_DATE, " Data:"}, {T_MODE, " Modul.:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO wys:"}, {T_QSONRR, "QSO odeb:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, " Uwagi:"}, {T_QRV2, " QRV na:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Wylij sked"}, {T_SELECT, "Zaznacz"}, {T_QRG, " QRG:"}, {T_WE_CALL, " Woamy"}, {T_BAND, " Pasmo:"}, {T_TIME, " Czas:"}, {T_DUPE_QSO, "QSO powtrzone!"}, {T_CLEAR_THIS_QSO, "Wyczy to QSO"}, {T_EDIT_OLD_QSO, "Edytuj poprzednie QSO"}, {T_MARK_OLD_QSO, "Zaznacz QSO jako Bd"}, {T_STORE_AS_DUPE, "Zapisz jako powtrzone"}, {T_BAD_CALL, "To nie wyglda jak znak wywoawczy"}, {T_N_CALLSIGN, "\nZanak:"}, {T_AUTOSAVE_OPTS, "Opcje autozapisu"}, {T_SAVE_AQ, "Zapis na dysku po kadym QSO:"}, {T_SAVE_AM, "Zapis na dysku po minutach:"}, {T_FSYNC, "Synchronizuj cache z dyskiem"}, {T_SAVE_AQF, "Zapis na dyskietce po QSO: "}, {T_SAVE_AMF, "Zapis na dyskietk po minutach:"}, {T_DO_MOUNT, "Zamontuj jesli nie ma /etc/mtab (nieuywane)"}, {T_FLOPPY_PATH, "cieka do dyskietki:"}, {T_MOUNT_CMD, "Polecenie montowania: "}, {T_SW_SHELL, "Powoka"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Rozmowa"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Niedo"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Map"}, {T_SW_SCOPE, "Spekt"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Odtwarzacz"}, {T_SW_CHART, "Wykres"}, {T_SHELL, "Powoka"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Rozmowa"}, {T_SKEDS, "Skedy"}, {T_UNFI, "Niedokoczone QSO"}, {T_DXC, "DX Cluster"}, {T_STAT, "Statystyki"}, {T_SWAP, "Swap (N/A)"}, {T_MAP, "Graficzna mapa"}, {T_SCOPE, "Spektrum"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Polecenie"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "Niedokoczone QSO"}, {T_N_REMARK, "\nUwagi:"}, {T_NO_CQ, "Nie zdefiniowano CQ"}, {T_TEXT, "Tekst:"}, {T_SPEED, "Prdko [WPM]:"}, {T_REPEAT, "Powtrka"}, {T_DELAY, "Opnienie [0.1s]:"}, {T_ALLOW_UNDEF, "Niektre pozycje nie s zdefiniowane"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "Nazwa pliku:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "UDP port:"}, {T_DEVICE, "Urzdzenie kluczujce:"}, {T_INIT_SPEED, "Prdko pocztkowa[WPM]:"}, {T_INIT_WEIGHT, "Szeroko (30-70):"}, {T_WPMFROM, "Przedzia WPM od"}, {T_WPMTO, "do"}, {T_USE_SPK, "Uyj gonika"}, {T_LEADIN, "Opnienie PTT[ms]"}, {T_AUTGIVE, "uruchom tryb automatyczny po[znak]"}, {T_IGN_IFACE_S, "Ignoruj interfejs %-5s"}, {T_IGN_ADDR_S, "Ignoruj adres %s"}, {T_ADD_IFACE_SSD, "Dodano interfejs=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Przejmij adres %s"}, {T_TIMESKEW, "UWAGA! Przedzia czasu %d ponowna detekcja %s:%d !\n"}, {T_DISCONNECTING_SD, "Rozczono z %s:%d"}, {T_ACCEPTED_SD, "Zaakceptowano %s:%d (%s)"}, {T_CONNECTING_SD, "czenie z %s:%d"}, {T_CONNECTED_SD, "Poczono do %s:%d"}, {T_DISCONNECTED_SD, "Rozczono z %s:%d"}, {T_LOADED_CFG_SSSS, "Pobrano konfiguracj z %s %s (%s,%s)"}, {T_LOADED_CW, "Pobrano dane C_W"}, {T_PEER_NOT_FOUND, "BD! Uytkownik %s nie znaleziony"}, {T_CANT_CREATE_HOME_S, "Nie mona utworzy katalogu %s"}, {T_CANT_LOAD_CFG, "Nie mona pobra konfiguracji!\nProgram nie bdzie dziaa prawidowo!"}, {T_ERR_RC, "Wykryto kilka bdw w pliku konfiguracyjnym!\nPrawdopodobnie plik ten nie zosta utworzony przez Tucnak!\nNie zapisuj konfiguracji, bo moesz utraci dane!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " ZNAK "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Uwagi "}, {T_SES_WELCOME, "Witam w Tucnak! "}, {T_SES_PRESS_F10, "Nacinij F10 aby uruchomi menu."}, {T_SES_HAVE_FUN, "Miej zabawy"}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Suma -p AVG"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " Brakuje EXCs: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS in WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statystyka dla pasma %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Zawody : %s"}, {T_SF_ALLBQSOS, "Wszystkie pasma QSOs: %d"}, {T_SF_ALLBQSOP, "Wszystkie pasma QSOp: %d"}, {T_SF_ALLBPTS, "Wszystkie pasma pkt: %d"}, {T_SF_QSOS, "QSOs: %d"}, {T_SF_QSOP, "QSO punkty: %d"}, {T_SF_PTS, "Punkty: %d"}, {T_SF_AVG_PTS, "rednia pkt/QSO: %5.2f"}, {T_SF_AVG_QSOP, "rednia qsop/QSO: %5.2f"}, {T_BAND_RO, "Pasmo tylko do odczytu"}, {T_THIS_BAND, "Pasmo"}, {T_OTHER_BANDS, "Inne pasmo"}, {T_CW_DB, "Baza C_W"}, {T_PROC_EXITED, "*** Proces zakoczony\n"}, {T_WE_CALL2, "woamy"}, {T_WE_LISTEN, "suchamy"}, {T_QSL, "Obiecana karta QSL"}, {T_RECORD, "Lista nagra"}, {T_MAXMIN, " Max. czas zapisu"}, {T_TEMPLATE, "Maska nazwy nagrywanego pliku"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Kanay"}, {T_SAMPLERATE, "Ilo prbek"}, {T_FILLOP, "Fill operators"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Przelicz QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Sie & trasa"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Ignoruj interfejs:"}, {T_IP_IGNORE, " Ignoruj sie:"}, {T_IP_ANNOUNCE, "Opublikuj w sieci:"}, {T_TRACE_BCAST, "Ruch w sieci "}, {T_TRACE_SOCK, "Ruch na socketach"}, {T_TRACE_RECV, "Odebrane dane"}, {T_TRACE_SEND, "Wysane dane"}, {T_TRACE_QSOS, "Wprowadzane QSOs "}, {T_TRACE_SDEV, "Sterowanie rotorem"}, {T_NOT_MOUNTED_S, "Nie zamontowano %s"}, {T_RECSRC_NONE, "Nie ustawiono"}, {T_RECSRC_MIC, "Mikrofon"}, {T_RECSRC_LINE, "Wejcie liniowe"}, {T_NEW_CALL, "Nowy!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV on %s"}, {T_SKED_QRG, "QRG dla skeda"}, {T_HK_SKED_QRG, "D"}, {T_N_SKED_QRG, "\nQRG dla skeda:"}, {T_GRAB_BAND, "Grab band control"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Wymu tryb RUN"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Eksport statystyk"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotor"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azymut"}, {T_ELEVATION, "Elewacja"}, {T_CH_SPY, "Podgld"}, {T_HK_CH_SPY, "G"}, {T_CH_ENDSPY, "Koniec podgldu"}, {T_HK_CH_ENDSPY, "K"}, {T_EXPORT_TITLPAGE, "Eksport strony tytuowej"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Przerwij nagrywanie"}, {T_HK_BREAK_RECORD, "Y"}, {T_GLOBAL_OPERATOR, "Zmie na wszystkich pasmach"}, {T_GLOBAL_OPERATOR2, "Globalny"}, {T_MAXFRAG, "Max. ilo fragmentw (>=2)"}, {T_PLAY_LAST, "Odtwrz ostatni przykad"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Inne opcje"}, {T_HK_MISCOPTS, "N"}, {T_LOGLINES, "Linii w logu: "}, {T_SKEDSHIFT, "Opnienie skeda(minuty): "}, {T_STARTBAND, "Uruchomiono pasmo: "}, {T_GFX_X_CH, "Rozdzielczo ekranu(znakw):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Rozdzielczo ekranu (piksele):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Informacja o znaku"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSO/godz: %d"}, {T_SF_QSOP_HOUR, "Punkty/godz: %d"}, {T_SF_QSOP_50QSO, "Punkty/50 QSO: %d"}, {T_SF_HOURS, " Godziny"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Godziny Punkty QSO R. pkt/QSO"}, {T_QSO_CHECK, "Sprawd QSO"}, {T_HK_QSO_CHECK, "D"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Minimalna wielko przestrzeni na dysku [MiB]"}, {T_FORMAT, "Format nagrania"}, {T_PCM_PLAY, "Urzdzenie odtwarzajce Alsa"}, {T_PCM_REC, "Urzdzenie nagrywajce Alsa"}, {T_PERIOD, "Cykl [ms]"}, {T_BUFFER, "Czas buforowania ms]"}, {T_ALSA_MIXER, "Urzdzenie miksujce Alsa"}, {T_CAPTURE, "Urzdzenie przechwytujce"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mikser"}, {T_RECSRC, "rdo nagrania"}, {T_PA_PLAY, "Urzdzenie dtwarzajce Portaudio"}, {T_PA_REC, "Urzdzenie nagrywajce Portaudio"}, {T_HOSTNAME, "Nazwa hosta:"}, {T_SLASHKEY, "Klawisz ukonika"}, {T_FIXQRG, "Korekta QRG"}, {T_HK_FIXQRG, "G"}, {T_ENTER_QRG, "Wrwnanie QRG [Hz]"}, {T_BAD_QRG, "Za czstotliwo"}, {T_CALLSIGN3, "Znak"}, {T_CALLSIGN_KST, "Znak na czacie KST:"}, {T_CANT_INIT_WINKEY_S, "Nie mog zainicjowa winkey na %s"}, {T_WINKEYOPTS, "Opcje Winkey"}, {T_WK_WK2, "Szybka inicjalizacja Winkey2"}, {T_WK_USEPOT, "Uyj prdkoci"}, {T_WK_USEBUT, "Uyj klawiszy"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Klucz rczny"}, {T_WK_SWAP, "Paddle swap (left handled)"}, {T_RIGOPTS, "Radio"}, {T_HK_RIGOPTS, "R"}, {T_RIG_DEVICE, "Port:"}, {T_RIG_MODEL, "Model: "}, {T_RIG_SPEED, "Prdko: "}, {T_RIG_CIV, "Adres CIV (hex):"}, {T_RIG_FREQSHIFT, "Przes. czst. SSB->CW"}, {T_RIG_CHOOSE, "Wybierz"}, {T_ROTAROPTS, "Opcje rotora"}, {T_HK_ROTAROPTS, "T"}, {T_DSSAVER, "Wycz wygaszacz"}, {T_DESC, "Opis"}, {T_ROT_NONE, "Brak"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib"}, {T_ROT_REMOTE, "Zdalny"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Serial #"}, {T_ROT_ADD, "Dodaj rotor"}, {T_HK_ROT_ADD, "D"}, {T_ROT_REMOVE, "Usu rotor"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Szeroko wizki:"}, {T_SADDR, "Adres do komunikacji:"}, {T_MODEL, "Model:"}, {T_ROT_REM_ROTSTR, "Rotor zostanie pniej usunity"}, {T_QSOGLOB, "Globalny NR QSO"}, {T_PREFGLOB, "Globalne PREF"}, {T_NOT_RECORDING_S, "Nie nagrano - %s"}, {T_SKEDCOUNT, "Ilo linii w oknie Sked: "}, {T_FONTHEIGHT, "Wielko czcionki (16-32): "}, {T_RIG_POLL_MS, "Czas odpytywania radia [ms]: "}, {T_RIG_QRG_R2T, "Ustaw pasmo z radia"}, {T_RIG_QRG_T2R, "Zmie pasmo w radiu"}, {T_RIG_MODE_T2R, "Zmie modulacj w radiu"}, {T_RUN_MODE, "Tryb aut."}, {T_HK_RUN_MODE, "U"}, {T_SP_MODE, "S&P tryb"}, {T_HK_SP_MODE, "Y"}, {T_RIG_CLR_RIT, "Wyczy RIT"}, {T_RIG_DEBUG, "Debugowanie radia"}, {T_HF_RATE, "Prdko: %3d/10 %3d/60"}, {T_HF_BAND, "Pasmo QSO Punkt Mult"}, {T_HF_SUM, "Sum:"}, {T_HF_LAST, "Ostatnie Q-%s P-%s"}, {T_EVEN, "TX eVen"}, {T_HK_EVEN, "V"}, {T_ODD, "TX oDd"}, {T_HK_ODD, "D"}, {T_1ST, "TX 1st"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2nd"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Wynik:"}, {T_EXPMODE, "Tryb ekspedycja"}, {T_TTTYPE, "Tylko cyfry"}, {T_ROT_POLL_MS, "Czas odpytywania [ms]:"}, {T_VERSION, "Wersja"}, {T_HK_VERSION, "J"}, {T_REMOTE_HOST, " Adres serwera:"}, {T_REMOTE_PORT, "Port TCP serwera:"}, {T_REMOTE_PASS, "Haso do serwera:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster database"}, {T_FREE_DXC, "Terminating DXcluster database"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved '%s'"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation translation_italian [] = { {0, NULL}, {T__CHAR_SET, "us-ascii"}, {T__LANGUAGE, "Italiano"}, {T_ABOUT, "A proposito"}, {T_BAD_NUMBER, "Numero errato"}, {T_BAD_STRING, "Stringa errata"}, {T_BASIC_HELP, "Premi F10 per il menu.\nBuon divertimento."}, {T_BLOCK_CURSOR, "Blocco cursore"}, {T_CANCEL, "Cancella"}, {T_CHARACTER_SET, "Set di caratteri"}, {T_COLOR, "Colore"}, {T_COPYING, "Copiando"}, {T_DIFFERENCE, "differenza"}, {T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Vuoi veramente uscire da Tucnak?"}, {T_EMPTY_STRING_NOT_ALLOWED, "Stringa vuota non permessa"}, {T_ERROR, "Errore"}, {T_WARNING, "Attenzione"}, {T_EXIT, "Uscita"}, {T_EXIT_TUCNAK, "Esci da Tucnak"}, {T_FILE, "File"}, {T_FULL_SCREEN, "Schermo pieno"}, {T_HELP, "Aiuto"}, {T_HK_ABOUT, "A"}, {T_HK_BEOS_TERMINAL, "B"}, {T_HK_CHARACTER_SET, "H"}, {T_HK_COPYING, "C"}, {T_HK_EXIT, "X"}, {T_HK_FILE, "F"}, {T_HK_FULL_SCREEN, "F"}, {T_HK_HELP, "H"}, {T_HK_LANGUAGE, "L"}, {T_HK_MEMORY_INFO, "M"}, {T_HK_OS_SHELL, "O"}, {T_HK_SCREEN, "S"}, {T_HK_SETUP, "S"}, {T_HK_TERMINAL_OPTIONS, "T"}, {T_HK_TWTERM, "T"}, {T_HK_WINDOW, "W"}, {T_HK_XTERM, "X"}, {T_KOI8R_FRAMES, "Cornici KOI8-R"}, {T_LANGUAGE, "Lingua"}, {T_LAST, "Ultimo"}, {T_LINUX_OR_OS2_FRAMES, "Cornici Linux o OS/2"}, {T_MEMORY_INFO, "Informazioni sulla Memoria"}, {T_NO_FRAMES, "Senza Cornici"}, {T_NO, "No"}, {T_NUMBER_EXPECTED, "Numero di campi attesi"}, {T_NUMBER_OUT_OF_RANGE, "Numero fuori intervallo"}, {T_OK, "OK"}, {T_OS_SHELL, "OS shell"}, {T_RESTRICT_FRAMES_IN_CP850_852, "Limita le Cornici a cp850/852"}, {T_UTF_8_IO, "UTF-8 Input/Output"}, {T_SCREEN, "Schermo"}, {T_SETUP, "Impostazioni"}, {T_TERMINAL_OPTIONS, "Opzioni Terminale"}, {T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log"}, {T_TWTERM, "Twterm"}, {T_USE_11M, "Use ^[[11m"}, {T_VT_100_FRAMES, "Cornici VT 100"}, {T_WELCOME1, "Benvenuti su Tucnak!"}, {T_WELCOME2, "Per piacere inserici il tuo nominativo ed il locatore:"}, {T_WELCOME, "Benvenuto"}, {T_XTERM, "Xterm"}, {T_YES, "S"}, {T_CANT_APPEND_S, "Non riesco ad aggiungere al file %s"}, {T_CANT_WRITE, "Non riesco a scrivere sul file"}, {T_CANT_WRITE_S, " Non riesco a scrivere sul file %s"}, {T_CANT_READ, "Non riesco a leggere dal file"}, {T_CANT_READ_S, " Non riesco a leggere dal file %s"}, {T_SAVED_S, "Salvato %s"}, {T__CW_, " CW "}, {T_CWW_KEYS, " PgUp +, PgDn - velocit cw "}, {T_CANT_OPEN_S, "Non riesco ad aprire %s"}, {T_CANT_LOCK, "Non riesco a bloccare"}, {T_CANT_LOCK_S, " Non riesco a bloccare %s"}, {T_LOADING_CTEST_S, "*** Sto caricando il contest %s"}, {T_NO_FILES, "Nessun file nella directory"}, {T_BAND_EXIST_SS, "ATTENZIONE! La banda %s (%s) esiste gi"}, {T_BAND_NOT_OPEN, "La banda non attiva in questo contest"}, {T_NO_BANDS, "Nessuna banda da caricare"}, {T_CANT_SET_GR_S, "Non riesco ad impostare la modalit grafica-%s"}, {T_GCALL, "Nominativo: %s"}, {T_GWWL, "WWL: %s"}, {T_GQRB, "QRB: %d km"}, {T_GQTF, "QTF: %d"}, {T_GSEN, "Inv.: %s %s"}, {T_GRCV, "Ric.: %s %s"}, {T_GTIM, "Ora: %s"}, {T_GOPE, "Op: %s"}, {T_GREM, "Rem: %s"}, {T_GWKD, "Lav.: %d"}, {T_GINC, "guadagno: %d"}, {T_GLON, "Lon:%7.2f %-6s"}, {T_GLAT, "Lat:%7.2f %-6s"}, {T_GLOC, "Loc: %s"}, {T__PLESE_WAIT_, " ATTENDERE prego "}, {T__RO_BAND, " BANDA IN SOLA LETTURA"}, {T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersione " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nQuesto programma software libero; puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License versione 2 pubblicata dalla Free Software Foundation."}, {T_CTEST_ACTIVE, "Il contest gi attivo "}, {T_NO_CTESTS, "Nessun contest"}, {T_NO_CCLOSE, "Nessun contest da chiudere"}, {T_REALLY, "Davvero?"}, {T_CLOSE_CTEST, "Vuoi veramente chiudere questo contest?"}, {T_GUI_LD, "GUI: %ld "}, {T_SBRK, "sbrk: %ld"}, {T_CWI, "C_W: %d oggetti cw, %d oggetti wc, ultimo %d\n"}, {T_EXC, "Exc: %s %d oggetti exc, %d oggetti cxe, ultimo %d\n"}, {T_VEXC, "EXC Verificati: %d oggetti\n"}, {T_DWI, "D_W: %d prefissi, %d DXCCs, %d WWLs\n"}, {T_NAMES, "Nomi: %d nomi\n"}, {T_MASTER, "Master: %d calls\n"}, {T_MEMS, "Memoria:"}, {T_NMY, " My: "}, {T_NGLOBAL, "Globale: "}, {T_NMASTER, "Master: "}, {T_NREMOTE, "Remote: "}, {T_NSLAVES, "\nSlaves:\n"}, {T_NINFO, "Info sulla rete"}, {T_NO_BANDS_QRV, "Nessuna banda QRV"}, {T_NO_BANDS_CONF, "Nessuna banda configurata"}, {T_NOT_AVAILABLE, "Non disponibile"}, {T_ADD_SUBWIN, "Aggiugi sottofinestra"}, {T_HK_ADD_SUBWIN, "A"}, {T_CLOSE_SUBWIN, "Chiudi sottofinestra"}, {T_HK_CLOSE_SUBWIN, "C"}, {T_HK_NINFO, "N"}, {T_NEW, "Nuovo"}, {T_HK_NEW, "N"}, {T_NEW_WIZZ, "Nuovo da wizard"}, {T_HK_NEW_WIZZ, "W"}, {T_NEW_NET, "Nuovo da rete"}, {T_HK_NEW_NET, "T"}, {T_OPEN, "Apri"}, {T_HK_OPEN, "O"}, {T_SAVE, "Salva"}, {T_HK_SAVE, "S"}, {T_EXPORT_EDI, "Esporta come EDI"}, {T_HK_EXPORT_EDI, "E"}, {T_EXPORT_REPORT, "Esporta come report"}, {T_HK_EXPORT_REPORT, "R"}, {T_EXPORT_ADIF, "Esporta come ADIF"}, {T_HK_EXPORT_ADIF, "A"}, {T_EXPORT_CBR, "Esporta come Cabrillo"}, {T_HK_EXPORT_CBR, "B"}, {T_EXPORT_HTML, "Esporta come HTML"}, {T_HK_EXPORT_HTML, "H"}, {T_EXPORT_WIKI, "Esporta come MediaWiki"}, {T_HK_EXPORT_WIKI, "W"}, {T_IMPORT_EDI, "Importa EDI"}, {T_HK_IMPORT_EDI, "I"}, {T_IMPORT_ADIF, "Importa ADIF"}, {T_HK_IMPORT_ADIF, "M"}, {T_IMPORT_SWAP, "Importa swap"}, {T_HK_IMPORT_SWAP, "S"}, {T_IMPORT_LIST, "Importa lista"}, {T_HK_IMPORT_LIST, "L"}, {T_CONTEST_OP, "Opzioni contest"}, {T_HK_CONTEST_OP, "O"}, {T_CLOSE_CONTEST, "Chiudi contest"}, {T_HK_CLOSE_CONTEST, "C"}, {T_ADD_ERROR, "Aggiungi ERRORE"}, {T_HK_ADD_ERROR, "E"}, {T_CHOP, "Cambia operatore"}, {T_HK_CHOP, "O"}, {T_CW_CTEST, "Aggiorna C_W da contest"}, {T_HK_CW_CTEST, "C"}, {T_CW_BAND, "Aggiorna C_W da banda"}, {T_HK_CW_BAND, "B"}, {T_EXC_CTEST, "Aggiorna l'EXC DB da contest"}, {T_HK_EXC_CTEST, "A"}, {T_EXC_BAND, "Aggiorna l'EXC DB da banda"}, {T_HK_EXC_BAND, "T"}, {T_IMPORT_EBW, "Importa database DL8EBW"}, {T_HK_IMPORT_EBW, "W"}, {T_NO_CTEST, "Nessun contest"}, {T_NO_PEERS, "Nessun peer trovato"}, {T_NO_MASTER, "Il master non disponibile!"}, {T_CTEST_DEF, "Contest defaults"}, {T_HK_CTEST_DEF, "O"}, {T_BAND_DEF, "Bande standard"}, {T_HK_BAND_DEF, "B"}, {T_HK_RESPOP, "P"}, {T_CW_DAEMON, "Manipolazione CW"}, {T_HK_CW_DAEMON, "E"}, {T_CW_CQ, "CW CQ"}, {T_HK_CW_CQ, "C"}, {T_SSB_CQ, "SSB CQ"}, {T_HK_SSB_CQ, "S"}, {T_AUTOSAVE, "Salvataggio automatico"}, {T_HK_AUTOSAVE, "A"}, {T_LOAD_CFG_NET, "Carica cfg dalla rete"}, {T_HK_LOAD_CFG_NET, "N"}, {T_LOAD_CW_NET, "Carica C_W dalla rete"}, {T_HK_LOAD_CW_NET, "W"}, {T_SAVE_CFG, "Salva la configurazione"}, {T_HK_SAVE_CFG, "F"}, {T_CONTEST, "Contest"}, {T_HK_CONTEST, "C"}, {T_EDIT, "Modifica"}, {T_HK_EDIT, "E"}, {T_BANDS, "Bande"}, {T_HK_BANDS, "B"}, {T_SUBWINS, "Sottofinestra"}, {T_HK_SUBWINS, "W"}, {T_BAND_SETTINGS_SC, "Impostazioni per la banda %c %s"}, {T_QRV_ON_THIS_BAND, "QRV su questa banda"}, {T_QRV_IN_THIS_CTEST, "QRV in questo contest"}, {T_READ_ONLY, "Sola-lettura"}, {T_MULTI, "Multi"}, {T_SINGLE, "Singolo"}, {T_CHECK, "Controllo"}, {T_TXEQUIP, " TX Appar:"}, {T_POWER, " Poten:"}, {T_RXEQUIP, " RX Appar:"}, {T_ANTENNA, " Antenna:"}, {T_AGLASL, " AGL;ASL:"}, {T_OPS, "Operatori:"}, {T_SPACES1, " "}, {T_REMARKS, " Commenti:"}, {T_OK_SECTION_SINGLE, "Categoria singolo in OK"}, {T_OK_SECTION_MULTI, "Categoria Multi in OK"}, {T_QRG_MIN, "Limiti di banda da"}, {T_QRG_MAX, "a [kHz]"}, {T_ADIFBAND, "Nome banda ADIF"}, {T_SKEDQRG, "QRG per sked (formato libero)"}, {T_BAND_LO, "Transverter LO QRG [Hz]:"}, {T_BANDSW, "Valore di cambio banda"}, {T_RESPOP, "Operatore responsible"}, {T_NAME, " Nome:"}, {T_CALLSIGN, " Nominativo:"}, {T_ADDRESS, " Indirizzo:"}, {T_POSTCODE, "Cod.postale:"}, {T_CITY, " Citt:"}, {T_COUNTRY, " Paese:"}, {T_PHONE, " Telefono:"}, {T_BBSEMAIL, " BBS/Email:"}, {T_QP0, " -nessuno- "}, {T_QP1, " 1 QSOp*QSOp_m (Std. IARU)"}, {T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)"}, {T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)"}, {T_QP4, " 4 WWL_ring*QSOp_m (OK activity)"}, {T_QP5, " 5 St_miles*QSOp_m"}, {T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)"}, {T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)"}, {T_QP8, " 8 WWL_dist*QSOp_m (Baltic)"}, {T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)"}, {T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)"}, {T_QP11, "11 QSOp_m *3 if F (F 50MHz)"}, {T_QP12, "12 RSGB DC (district codes)"}, {T_QP13, "13 Continente (CQ WW DX Contest)"}, {T_QP14, "14 Continente+banda (CQ WW WPX Contest)"}, {T_QP15, "15 Banda VHF (ARRL VHF)"}, {T_QP16, "16 QSOp *4 se F (Champ. de France)"}, {T_QP17, "17 QSOp*WWLmult if G (RSGB M5)"}, {T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)"}, {T_TP0, " --none -- "}, {T_TP1, " 1 Moltiplicativo (Std. IARU)"}, {T_TP2, " 2 Additivo (RSGB Backpacker, VRZA, Sicily)"}, {T_TP3, " 3 Mult. tut. bande (CQ WW DX Contest)"}, {T_TP4, " 4 Tutte le bande ins.(ARRL VHF)"}, {T_NEW_CTEST, "Nuovo Contest"}, {T_CANT_TRUNC, "Non posso troncare il file desc"}, {T_NAME_OF_CTEST, "Nome del contest:"}, {T_CALL_OF_CTEST, "Nominativo nel contest:"}, {T_CLUB_ST, "Stazione Club :"}, {T_YOURWWL, "Tuo WWL:"}, {T_YOUREXC, "Tuo EXC:"}, {T_DATE_OF_CTEST, "Data del contest:"}, {T_QSOUSED, "NR QSO usato"}, {T_QSOPM, " QSOp multi:"}, {T_WWLUSED, "WWL usato "}, {T_WWLB, "Bonus WWL:"}, {T_WWLM, "WWL molt.:"}, {T_EXCUSED, "EXC usato"}, {T_EXCB, " EXC bonus:"}, {T_EXCM, "EXC molt.:"}, {T_EXCNAME, " nome EXC: "}, {T_PREFM, "PREF molt.:"}, {T_DXCB, " DXC bonus:"}, {T_DXCM, "DXC multi:"}, {T_RSTUSED, "RST Usato "}, {T_DEFRS, "RS Standard:"}, {T_DEFRST, "Def RST:"}, {T_ALSORSTR, "Anche per RST-R"}, {T_QP_CALC, " QSOp calc:"}, {T_TO_CALC, "Totale calc:"}, {T_EDI_PROP, "EDI prop"}, {T_RESPOP2, "Operatore resp."}, {T_EDIT_QSO_CD, "Modifica QSO %c: %03d"}, {T_CALLSIGN2, "Callsign:"}, {T_CLUB, " Club:"}, {T_PADR1, " PInd1:"}, {T_PADR2, " PInd2:"}, {T_RS, " RS:"}, {T_RST, " RST:"}, {T_OPERATOR, "Operator:"}, {T_DATE, " Data:"}, {T_MODE, " Modo:"}, {T_RSTS, " RSTs:"}, {T_RSTR, " RSTr:"}, {T_QSONRS, "QSO inv.:"}, {T_QSONRR, "QSO ric.:"}, {T_OPTEXCH, " OptExch:"}, {T_WWL, " WWL:"}, {T_REMARK, "Commenti:"}, {T_QRV2, " QRV su:"}, {T_WKD, " WKD:"}, {T_SEND_SKED, "Sked inv."}, {T_SELECT, "Selez."}, {T_QRG, " QRG:"}, {T_WE_CALL, "Chiamiamo"}, {T_BAND, " Banda:"}, {T_TIME, " Ora:"}, {T_DUPE_QSO, "QSO Doppio!"}, {T_CLEAR_THIS_QSO, "Cancella questo QSO"}, {T_EDIT_OLD_QSO, "Modifica vecchio QSO"}, {T_MARK_OLD_QSO, "Segna vecchio QSO come ERRORE"}, {T_STORE_AS_DUPE, "Salva come DUPE"}, {T_BAD_CALL, "Questo non sembra un nominativo"}, {T_N_CALLSIGN, "\nNominativo:"}, {T_AUTOSAVE_OPTS, "Opzioni salvataggio automatico"}, {T_SAVE_AQ, "Salva su disco dopo il QSO: "}, {T_SAVE_AM, "Salva su disco dopo minuti:"}, {T_FSYNC, "Fsync"}, {T_SAVE_AQF, "Salva su floppy dopo il QSO: "}, {T_SAVE_AMF, "Salva su floppy dopo minuti::"}, {T_DO_MOUNT, "Monta se non gi in /etc/mtab (non usato)"}, {T_FLOPPY_PATH, "Percorso per il floppy:"}, {T_MOUNT_CMD, "Comando monta: "}, {T_SW_SHELL, "Shell"}, {T_SW_QSOS, "QSOs"}, {T_SW_LOG, "Log"}, {T_SW_TALK, "Talk"}, {T_SW_SKED, "Sked"}, {T_SW_UNFI, "Unfi"}, {T_SW_DXC, "DXC"}, {T_SW_STAT, "Stat"}, {T_SW_MAP, "Mappa"}, {T_SW_SCOPE, "Scope"}, {T_SW_QRV, "QRV"}, {T_SW_HF, "HF"}, {T_SW_PLAYER, "Player"}, {T_SW_CHART, "Chart"}, {T_SHELL, "Shell"}, {T_QSOS, "QSOs"}, {T_LOG, "Log"}, {T_TALK, "Talk"}, {T_SKEDS, "Skeds"}, {T_UNFI, "QSO non terminati"}, {T_DXC, "DX Cluster"}, {T_STAT, "Statistiche"}, {T_SWAP, "Scambia (N/A)"}, {T_MAP, "Mappa grafica"}, {T_SCOPE, "Scope"}, {T_QRV, "QRV"}, {T_HF, "HF"}, {T_KST, "KST"}, {T_CMD, "Comando"}, {T_RESPAWN, "Respawn [sec]:"}, {T_UNFI_QSO, "QSO non terminati"}, {T_N_REMARK, "\nCommenti:"}, {T_NO_CQ, "Nessun CQ definito"}, {T_TEXT, "Testo:"}, {T_SPEED, "Velocit [WPM]:"}, {T_REPEAT, "Ripeti"}, {T_DELAY, "Ritardo [0.1s]:"}, {T_ALLOW_UNDEF, "Permetti se qualche oggetto non definito"}, {T_CW_DSCS, "CW%d (%s) %c %s"}, {T_FILENAME, "NomeFile:"}, {T_SSB_DSCS, "SSB%d (%s) %c %s"}, {T_UDPPORT, "Porta UDP:"}, {T_DEVICE, "Keying device:"}, {T_INIT_SPEED, "Velocit iniziale [WPM]:"}, {T_INIT_WEIGHT, "Peso (30-70):"}, {T_WPMFROM, "Inervallo WPM da"}, {T_WPMTO, "a"}, {T_USE_SPK, "Usa altoparlante"}, {T_LEADIN, "PTT lead in [ms]"}, {T_AUTGIVE, "Run mode aut. give after [chars]"}, {T_IGN_IFACE_S, "Ignorando l'interfaccia %-5s"}, {T_IGN_ADDR_S, "Ignorando l'indirizzo %s"}, {T_ADD_IFACE_SSD, "Aggiunta interfaccia=%-5s BCAST=%s:%d"}, {T_FORCED_ADDR, "Forzato indirizzo %s"}, {T_TIMESKEW, "WARNING! Slittamento temporale %d rilevato rispetto a %s:%d !\n"}, {T_DISCONNECTING_SD, "Disconnessione da %s:%d"}, {T_ACCEPTED_SD, "Accettato %s:%d (%s)"}, {T_CONNECTING_SD, "Connessione a %s:%d"}, {T_CONNECTED_SD, "Connesso a %s:%d"}, {T_DISCONNECTED_SD, "Disconnesso da %s:%d"}, {T_LOADED_CFG_SSSS, "Caricata configurazione per %s %s (%s,%s)"}, {T_LOADED_CW, "Caricati dati C_W"}, {T_PEER_NOT_FOUND, "ERRORE! Peer %s non trovato"}, {T_CANT_CREATE_HOME_S, "Non posso creare la directory %s"}, {T_CANT_LOAD_CFG, "Non posso caricare la configurazione!\nIl programma non funziona correttamente!"}, {T_ERR_RC, "Trovati errori nel file di configurazione!\nQuesto file stato probabilmente salvato con una versione pi nuova di Tucnak!\nNon salvare la tua configurazione a meno che non sia disposto a perdere i dati!"}, {T_SES_QTR, " QTR "}, {T_SES_QRA, " CALL "}, {T_SES_RST, " RST-S-No RST-R-No "}, {T_SES_QTH, " QTH "}, {T_SES_QRB, " Pts/QRB QTF "}, {T_SES_FLG, " Flg "}, {T_SES_OPE, " Oper. "}, {T_SES_EXC, " Exch "}, {T_SES_REM, " Commento "}, {T_SES_WELCOME, "Benvenuto su Tucnak! "}, {T_SES_PRESS_F10, "Premi F10 per il menu."}, {T_SES_HAVE_FUN, "Buon Divertimento."}, {T_SES_URL, "http://tucnak.nagano.cz "}, {T_SES_ODX, "ODX: "}, {T_SES_ODX_DATA, "%s %s %d km (%s)"}, {T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG"}, {T_SES_AVG, " AVG: %5.2f"}, {T_SES_WPM, " WPM:%2d %02d%% %s"}, {T_SF_WWLS, " WWLs: %d"}, {T_SF_WWLS_UNDER, "-------------"}, {T_SF_EXCS, " EXCs: %d"}, {T_SF_EXCS_UNDER, "-------------"}, {T_SF_MISS_EXCS, " EXC mancanti: %d"}, {T_SF_MISS_EXCS_UNDER, "---------------------"}, {T_SF_PREFS, " PREFs: %d"}, {T_SF_PREFS_UNDER, "-------------"}, {T_SF_DXCS, " DXCCs: %d"}, {T_SF_DXCS_UNDER, "-------------"}, {T_SF_WKD_WWLS, " WKD WWLs: %d"}, {T_SF_WKD_WWLS_UNDER, "-----------------"}, {T_SF_QSO_WWL4, " QSOS in WWL4s: %d"}, {T_SF_QSO_WWL4_UNDER, "----------------------"}, {T_SF_STATS_BAND, " Statistiche per banda %s"}, {T_SF_STATS_BAND_UNDER, "==============================="}, {T_SF_CONTEST, "Contest: %s"}, {T_SF_ALLBQSOS, "QSO tutte le bande: %d"}, {T_SF_ALLBQSOP, "QSOp tutte le bande: %d"}, {T_SF_ALLBPTS, "Punti tutte le bande: %d"}, {T_SF_QSOS, "QSO: %d"}, {T_SF_QSOP, "Punti QSO: %d"}, {T_SF_PTS, "Punti: %d"}, {T_SF_AVG_PTS, "Media punti/QSO: %5.2f"}, {T_SF_AVG_QSOP, "Media qsop/QSO: %5.2f"}, {T_BAND_RO, "La banda in sola-lettura"}, {T_THIS_BAND, "Questa banda"}, {T_OTHER_BANDS, "Altre bande"}, {T_CW_DB, "database C_W"}, {T_PROC_EXITED, "*** Processo terminato\n"}, {T_WE_CALL2, "chiamiamo"}, {T_WE_LISTEN, "ascoltiamo"}, {T_QSL, "QSL promessa"}, {T_RECORD, "Registra traffico"}, {T_MAXMIN, " Durata Max. registrazione"}, {T_TEMPLATE, "Template per nome file registrato"}, {T_PCM8, "8 bit PCM"}, {T_PCM16, "16 bit PCM"}, {T_ULAW, "mu-law"}, {T_ALAW, "A-law"}, {T_IMAADPCM, "IMA ADPCM"}, {T_MSADPCM, "MS ADPCM"}, {T_GSM610, "GSM 6.10"}, {T_CHANNELS, "Canali"}, {T_SAMPLERATE, "Frequenza campionamento"}, {T_FILLOP, "Fill operators"}, {T_HK_FILLOP, "L"}, {T_RECAQRB, "Ricalcolo QRB,QTF"}, {T_HK_RECAQRB, "R"}, {T_NETWORK, "Rete & tracciatura"}, {T_HK_NETWORK, "K"}, {T_IF_IGNORE, "Ignora interfacce:"}, {T_IP_IGNORE, "Ignora reti:"}, {T_IP_ANNOUNCE, "Annuncia verso le reti:"}, {T_TRACE_BCAST, "Traccia i broadcast "}, {T_TRACE_SOCK, "Traccia i socket"}, {T_TRACE_RECV, "Traccia i dati ricevuti"}, {T_TRACE_SEND, "Traccia i dati inviati"}, {T_TRACE_QSOS, "Traccia i QSOs "}, {T_TRACE_SDEV, "Traccia i rotori "}, {T_NOT_MOUNTED_S, "Non montato %s"}, {T_RECSRC_NONE, "Non impostare"}, {T_RECSRC_MIC, "Microfono"}, {T_RECSRC_LINE, "Line in"}, {T_NEW_CALL, "Nuovo!"}, {T_HK_NEW_CALL, "n"}, {T_QRV_ON_S, "QRV su %s"}, {T_SKED_QRG, "QRG per sked"}, {T_HK_SKED_QRG, "F"}, {T_N_SKED_QRG, "\nQRG per sked:"}, {T_GRAB_BAND, "Prendi il controllo della banda"}, {T_HK_GRAB_BAND, "G"}, {T_FORCE_RUN, "Forza il modo RUNe"}, {T_HK_FORCE_RUN, "U"}, {T_EXPORT_STATS, "Esporta Statistiche"}, {T_HK_EXPORT_STATS, "T"}, {T_SF_TOP_DX, " TOP %d DX QSOs:"}, {T_SF_TOP_DX_UNDER, "-------------------"}, {T_ROTAR, "Rotore"}, {T_HK_ROTAR, "R"}, {T_AZIMUTH, " Azimuth"}, {T_ELEVATION, "Elevazione"}, {T_CH_SPY, "Spy"}, {T_HK_CH_SPY, "S"}, {T_CH_ENDSPY, "Spy end"}, {T_HK_CH_ENDSPY, "P"}, {T_EXPORT_TITLPAGE, "Esporta title page"}, {T_HK_EXPORT_TITLPAGE, "P"}, {T_BREAK_RECORD, "Break record"}, {T_HK_BREAK_RECORD, "B"}, {T_GLOBAL_OPERATOR, "Cambia per tutte le bande"}, {T_GLOBAL_OPERATOR2, "Globale"}, {T_MAXFRAG, "Max. num di frammenti (>=2)"}, {T_PLAY_LAST, "Riproduci l'ultimo campione"}, {T_HK_PLAY_LAST, "P"}, {T_MISCOPTS, "Opzioni varie"}, {T_HK_MISCOPTS, "M"}, {T_LOGLINES, "Linee di log: "}, {T_SKEDSHIFT, "Intervallo sked (minuti): "}, {T_STARTBAND, "Banda iniziale: "}, {T_GFX_X_CH, "Risoluzione schermo (chars):"}, {T_GFX_Y_CH, "x"}, {T_GFX_X_PX, "Risoluzione schermo (pixels):"}, {T_GFX_Y_PX, "x"}, {T_CALL_INFO, "Info nominativo"}, {T_HK_CALL_INFO, "I"}, {T_SF_QSO_HOUR, "QSO/ora: %d"}, {T_SF_QSOP_HOUR, "Punti/ora: %d"}, {T_SF_QSOP_50QSO, "Punti/50 QSOs: %d"}, {T_SF_HOURS, " Ore"}, {T_SF_HOURS_UNDER, "---------"}, {T_SF_HOURS_TITLE, "Ore Punti QSO media pti/QSO"}, {T_QSO_CHECK, "QSO check"}, {T_HK_QSO_CHECK, "K"}, {T_AUDIO, "Audio"}, {T_HK_AUDIO, "D"}, {T_ALSA, "Alsa"}, {T_OSS, "OSS"}, {T_PORTAUDIO, "PortAudio"}, {T_DISKFREE, "Spazio disco libero minimo [MiB]"}, {T_FORMAT, "Formato registrazione"}, {T_PCM_PLAY, "Dispositivo riproduzione Alsa"}, {T_PCM_REC, "Dispositivo cattura Alsa"}, {T_PERIOD, "Durata periodo [ms]"}, {T_BUFFER, "Durata buffer [ms]"}, {T_ALSA_MIXER, "Dispositivo mixer Alsa"}, {T_CAPTURE, "Fonte di cattura"}, {T_DSP, "OSS DSP"}, {T_MIXER, "OSS mixer"}, {T_RECSRC, "Fonte di registrazione"}, {T_PA_PLAY, "Dispositivo riproduzione Portaudio"}, {T_PA_REC, "Dispositivo cattura Portaudio"}, {T_HOSTNAME, "Hostname:"}, {T_SLASHKEY, "Slash key"}, {T_FIXQRG, "Aggiusta QRG"}, {T_HK_FIXQRG, "X"}, {T_ENTER_QRG, "Immetti QRG [Hz] accurato"}, {T_BAD_QRG, "Frequenza sbagliata"}, {T_CALLSIGN3, "Nominativo"}, {T_CALLSIGN_KST, "Nominativo stazione KST:"}, {T_CANT_INIT_WINKEY_S, "Non posso inizializzare winkey su %s"}, {T_WINKEYOPTS, "Opzioni Winkey"}, {T_WK_WK2, "Inizializzazione veloce Winkey2"}, {T_WK_USEPOT, "Usa potenz. velocit"}, {T_WK_USEBUT, "Usa bottoni"}, {T_WK_KM_B, "Curtis-B"}, {T_WK_KM_A, "Curtis-A"}, {T_WK_KM_U, "Ultimatic"}, {T_WK_KM_G, "Bug"}, {T_WK_SWAP, "Scambia Paddle (mancini)"}, {T_RIGOPTS, "Opzioni apparato"}, {T_HK_RIGOPTS, "G"}, {T_RIG_DEVICE, "Apparato:"}, {T_RIG_MODEL, "Modello apparato: "}, {T_RIG_SPEED, "Baudrate: "}, {T_RIG_CIV, "Indirizzo CIV (hex):"}, {T_RIG_FREQSHIFT, "Shift freq. SSB->CW"}, {T_RIG_CHOOSE, "Scegli"}, {T_ROTAROPTS, "Opzioni rotore"}, {T_HK_ROTAROPTS, "I"}, {T_DSSAVER, "Disabilita salva schermo"}, {T_DESC, "Descrizione"}, {T_ROT_NONE, "Nessuno"}, {T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys"}, {T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI"}, {T_ROT_HAMLIB, "Hamlib"}, {T_ROT_REMOTE, "Remote"}, {T_ROT_VID, "VID:"}, {T_ROT_PID, "PID:"}, {T_ROT_SERIAL, "Seriale #"}, {T_ROT_ADD, "Aggiungi nuovo rotore"}, {T_HK_ROT_ADD, "W"}, {T_ROT_REMOVE, "Rimuovi rotore"}, {T_HK_ROT_REMOVE, "R"}, {T_TIMEOUT, "Timeout:"}, {T_BEAMWIDTH, "Beam width:"}, {T_SADDR, "Indirizzo comunicazione:"}, {T_MODEL, "Modello:"}, {T_ROT_REM_ROTSTR, "Lettera Rotore per comando"}, {T_QSOGLOB, "NR QSO globale "}, {T_PREFGLOB, "PREF globale "}, {T_NOT_RECORDING_S, "Non sto registrando - %s"}, {T_SKEDCOUNT, "Contatore di sked in popup: "}, {T_FONTHEIGHT, "Altezza font (16-32): "}, {T_RIG_POLL_MS, "Intervallo poll apparato [ms]: "}, {T_RIG_QRG_R2T, "Imposta banda dalla radio"}, {T_RIG_QRG_T2R, "Cambia banda sulla radio"}, {T_RIG_MODE_T2R, "Cambia modo sulla radio"}, {T_RUN_MODE, "Modo Run"}, {T_HK_RUN_MODE, "U"}, {T_SP_MODE, "Modo S&P"}, {T_HK_SP_MODE, "M"}, {T_RIG_CLR_RIT, "C RIT quando salva QSO in RUN"}, {T_RIG_DEBUG, "Debug rig"}, {T_HF_RATE, "Rate: %3d/10 %3d/60"}, {T_HF_BAND, "Band Punti QSO Mult"}, {T_HF_SUM, "Somma:"}, {T_HF_LAST, "Ultimo Q-%s P-%s"}, {T_EVEN, "TX eVen"}, {T_HK_EVEN, "N"}, {T_ODD, "TX oDd"}, {T_HK_ODD, "D"}, {T_1ST, "TX 1"}, {T_HK_1ST, "1"}, {T_2ND, "TX 2"}, {T_HK_2ND, "2"}, {T_HF_SCORE, "Punteggio:"}, {T_EXPMODE, "Modo Spedizione"}, {T_TTTYPE, "Only digits mean"}, {T_ROT_POLL_MS, "Poll interval [ms]:"}, {T_VERSION, "Versione"}, {T_HK_VERSION, "V"}, {T_REMOTE_HOST, " Remote host name:"}, {T_REMOTE_PORT, " Remote TCP port:"}, {T_REMOTE_PASS, " Remote Password:"}, {T_STARTING_AC, "Starting A/C"}, {T_STOPPING_AC, "Stopping A/C"}, {T_ASL_5D_M, "ASL: %5d m"}, {T_SPEED4D_KMH, "Speed:%4d km/h"}, {T_AC_START, "Start: %02d:%02d %02ldm%02ld"}, {T_AC_DURAT_LD, "Durat: %ld"}, {T_EXPORTING_S, "Exporting %s"}, {T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s"}, {T_EXPORTING, "Exporting ..."}, {T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables"}, {T_LOADING_CHARTS, "Loading charts"}, {T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control"}, {T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in"}, {T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi"}, {T_CANT_CREATE_PIPE, "Can't create pipe"}, {T_TERMINATING_CWDAEMON, "Terminating CW/PTT control"}, {T_INIT_CWDB, "Initializing WWL database"}, {T_TERM_CWDB, "Terminating WWL database"}, {T_LOADING_CWDB, "Loading WWL database"}, {T_QRV_ON, "QRV on: "}, {T_CANT_INIT_FTDI, "Can't init ftdi library for davac4"}, {T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s"}, {T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s"}, {T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s"}, {T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s"}, {T_INIT_SOUNDCARD, "Initializing soundcard"}, {T_NO_OSS, "OSS support not compiled in"}, {T_NO_ALSA, "Alsa support not compiled in"}, {T_NO_PORTAUDIO, "portaudio support not compiled in"}, {T_NO_SNDFILE, "Libsndfile support not compiled in"}, {T_NO_SNDPIPE, "Sndpipe support not compiled in"}, {T_TERMINATING_SOUNDCARD, "Terminating soundcard"}, {T_INIT_DWDB, "Initializing DXCC database"}, {T_FREE_DWDB, "Terminating DXCC database"}, {T_LOAD_DWDB, "Loading DXCC database"}, {T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n"}, {T_CROSSMODE_QSO_N, "Crossmode QSO ?\n"}, {T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n"}, {T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n"}, {T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n"}, {T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n"}, {T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n"}, {T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n"}, {T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n"}, {T_CALL_ON_BAND_S, "Callsign on band %s is %s\n"}, {T_LOCATOR_ON_BAND, "Locator on band %s is %s\n"}, {T_QSO_CHECK_LIST, " Tucnak QSO check list\n"}, {T_CALL_SN, " Call: %s\n"}, {T_CONTEST_SN, "Contest: %s\n"}, {T_DATE_SN, " Date: %s\n"}, {T_CHECKING_S, "Checking %s"}, {T_BAND_C_SN, " Band %c %s\n"}, {T_SEEMS_TO_BE_OK, "Seems to be O.K.\n"}, {T_CW_NOT_FOUND, "C_W: %s not found\n"}, {T_0X_NOT_IN_DB, " 0x (not in database)"}, {T_NAME_IS, "Name: %s's name is %s\n"}, {T_NAME_UNKNOWN, "Name: %s's name is unknown\n"}, {T_INIT_DXC, "Initializing DXcluster"}, {T_FREE_DXC, "Terminating DXcluster"}, {T_HK_SELECT, "S"}, {T_HIDE, "Hide"}, {T_HK_HIDE, "H"}, {T_INFO, "Info"}, {T_HK_INFO, "I"}, {T_USE, "Use"}, {T_HK_USE, "U"}, {T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n"}, {T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n"}, {T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n"}, {T_HOST_RESOLVED, "*** Host resolved "}, {T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n"}, {T_CONNECTING_TO, "*** Connecting to %s ***\n"}, {T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n"}, {T_CONNECTED_SOCKET, "*** Connected socket %d ***\n"}, {T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n"}, {T_DISCONNECTED, "\n*** Disconnected ***\n"}, {T_RESOLVING, "*** Resolving %s ***\n"}, {T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s"}, {T_SAVED, "Saved %s"}, {T_LOADING_CONTEST, "Loading contest %s"}, {T_LOADING_LOGFILE, "Loading logfile"}, {T_LOADING_TALK, "Loading talk"}, {T_SEARCH_FILES, "Search for contest files"}, {T_LOADING_BAND, "Loading band %s"}, {T_LOADING_SPY, "Loading spy"}, {T_LOADING_HICALLS, "Loading hicalls"}, {T_LOADING_QRV, "Loading qrv"}, {T_LOADING_CHART, "Loading chart"}, {T_SAVING_CONTEST, "Saving contest"}, {T_UPD_INT_DATA, "Updating internal data"}, {T_CALC_STATS, "Calculating statistics"}, {T_ANN_OVER_NET, "Announcing over network"}, {T_ACTIVATING_BAND, "Activating band %s"}, {T_UPDATING_WKD, "Updating worked calls"}, {T_UPDATING_QRBQTF, "Updating QRB&QTF"}, {T_UPDATING_GAIN, "Updating gain chart"}, {T_SEN_OVER_NET, "Sending info over network"}, {T_INIT_EXCDB, "Initializing exchange database"}, {T_FREE_EXCDB, "Terminating exchange database"}, {T_INIT_FFT, "Initializing FFT analyse"}, {T_FREE_FFT, "Terminating FFT analyse"}, {T_INIT_ROTAR, "Initializing rotator control"}, {T_FREE_ROTAR, "Terminating rotator control"}, {T_LOCATOR, "Locator:"}, {T_BAND2, "Band"}, {T_POINTS, "Points"}, {T_AVG, "AVG"}, {T_INIT_HTTPD, "Initializing HTTP server"}, {T_FREE_HTTPD, "Terminating HTTP server"}, {T_NO_CONTEST_OPENED, "

No contest opened

\n"}, {T_NO_CONTEST_OPENED2, "No contest opened"}, {T_STATS, "Statistics"}, {T_BAND_NOT_FOUND, "Band not found"}, {T_BAND_C_NOT_FOUND, "

Band %c not found

"}, {T_QSOS_IN_DATABASE, "qsos in database"}, {T_TUCNAK_ONLINE_LOG, "Tucnak online log"}, {T_DATE2, "Date"}, {T_UTC, "UTC"}, {T_CALL, "Call"}, {T_CALL_NOT_FOUND, "Call not found"}, {T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d"}, {T_FREE_TERM, "Terminating terminal"}, {T_TERM_KEYMAPS, "Terminating keymaps"}, {T_QRB, "QRB"}, {T_HK_QRB, "B"}, {T_QTF, "QTF"}, {T_HK_QTF, "F"}, {T_ACKST, "AcKST"}, {T_HK_ACKST, "A"}, {T_MISTAKE, "Oh mistake"}, {T_HK_MISTAKE, "O"}, {T_ASK_FOR_SKED, "Ask for sked"}, {T_HK_ASK_FOR_SKED, "K"}, {T_MESSAGE, "Message"}, {T_HK_MESSAGE, "M"}, {T_AC_INFO, "A/C info"}, {T_HK_AC_INFO, "A"}, {T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n"}, {T_RESOLVED, "*** Resolved "}, {T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n"}, {T_SENDING_SH_US, "*** Sending /sh us ...\n"}, {T_SKIP_LINE, "Skip line %d '%s'"}, {T_CANT_CREATE_HOME, "Can't create home directory '%s'"}, {T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)"}, {T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s"}, {T_INIT_MAP, "Initializing polar map"}, {T_DISABLE_SAVER, "Disabling screensaver"}, {T_STARTING_TUCNAK, "Starting Tucnak"}, {T_FREE_MAP, "Terminating polar map"}, {T_INIT_MASTERDB, "Initializing master database"}, {T_FREE_MASTERDB, "Terminating master database"}, {T_LOAD_MASTERDB, "Loading master database"}, {T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s"}, {T_DIRECTORY_SCAN, "Directory scan"}, {T_V3_COMPATIBILITY, " (v3 compatibility)"}, {T_RELOAD_INTERFACES, "Reload interfaces"}, {T_SET_READONLY, "Set read-only"}, {T_CHANGE_TYPE, "Change type"}, {T_HK_CHANGE_TYPE, "T"}, {T_OPEN_CONNECTION, "Open connection"}, {T_HK_OPEN_CONNECTION, "O"}, {T_KILL_CONNECTION, "Kill connection"}, {T_HK_KILL_CONNECTION, "K"}, {T_HK_EXPORT_TO_TEXT_FILE, "E"}, {T_EXPORT_TO_TEXT_FILE, "Export to text file"}, {T_ADD_CONTEST, "Add contest"}, {T_HK_ADD_CONTEST, "O"}, {T_ADD_FILES, "Add file(s)"}, {T_HK_ADD_FILES, "F"}, {T_ADD_CONTESTS, "Add contests"}, {T_HK_ADD_CONTESTS, "O"}, {T_ALTC, "Alt+%c"}, {T_CTRLC, "Ctrl+%c"}, {T_CTRLP, "Ctrl+P"}, {T_CRASH_TEST, "Crash test"}, {T_HK_CRASH_TEST, "C"}, {T_INTERROR_TEST, "Int.error test"}, {T_HK_INTERNAL_TEST, "I"}, {T_DUMP_RW_BANDS, "Dump RW bands and hashes"}, {T_HK_DUMP_RW_BANDS, "D"}, {T_UPDATE, "Update Tucnak"}, {T_HK_UPDATE, "U"}, {T_SETTINGS, "Settings"}, {T_HK_SETTINGS, "S"}, {T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net"}, {T_HK_UPLOAD_TO_VHFNET, "V"}, {T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki"}, {T_HK_MEDIAWIKI_UPLOAD, "U"}, {T_VOIP_SPY, "Voip spy"}, {T_HK_VOIP_SPY, "V"}, {T_END_VOIP_SPY, "End voip spy"}, {T_HK_END_VOIP_SPY, "Y"}, {T_OLD_TEST_NO_SPY, "Contest is old, spy is not available"}, {T_NETWORK_SCAN, "Network scan"}, {T_HTTPD_OPTIONS, "HTTPD options"}, {T_HK_HTTP_OPTIONS, "H"}, {T_AC_OPTIONS, "A/C options"}, {T_HK_AC_OPTIONS, "P"}, {T_SDR_OPTIONS, "SDR options"}, {T_HK_SDR_OPTIONS, "R"}, {T_OTHER, "Other:"}, {T_NONE, "None "}, {T_RSTS2, "RST-S"}, {T_RSTR2, "RST-R"}, {T_QSONRR2, "QSONR-R"}, {T_EXC2, "EXC"}, {T_UNUSED, "Unused "}, {T_USED_6, "Used (6)"}, {T_OPT_6, "Opt. (6)"}, {T_USED_4, "Used (4)"}, {T_OPT_4, "Opt. (4)"}, {T_FREE, "Free "}, {T_VERIFIED, "Verified"}, {T_WAZ, "WAZ "}, {T_ITU, "ITU "}, {T_WWL2, "WWL:"}, {T_CONFIRM_WWL, "Confirm WWL"}, {T_CONFIRM_EXC, "Confirm EXC"}, {T_FONT_SIZE, "Font size: "}, {T_DXC_HOSTNAME, "DXC Hostname:"}, {T_TCP_PORT, "TCP Port:"}, {T_DXC_USERNAME, "DXC Username:"}, {T_PASSWORD, "Password:"}, {T_KST_USERNAME, "KST Username:"}, {T_KST_YOURNAME, "KST Yourname:"}, {T_SDR, "SDR"}, {T_PARPORT, "parport"}, {T_TTYS, "ttys"}, {T_AUDIO_SUBSYSTEM, "Audio subsystem:"}, {T_PLAYBACK_VOLUME, "Playback volume"}, {T_CAPTURE_VOLUME, "Capture volume"}, {T_ENABLE_REMOTE_CONNECT, "Enable remote connect"}, {T_TRACE_RIG, "Trace rig"}, {T_TRACE_KEYS, "Trace keys"}, {T_SAVE_RESTART, "You must save configuration and restart Tucnak"}, {T_FULLSCREEN, "Fullscreen"}, {T_TOUCH, "Use touch control"}, {T_ALT_QWER, "Alt turns QWER.. to 1234.."}, {T_NO_LOCKS, "No device locks"}, {T_PORTRAIT_ORIENTATION, "Portrait orientation"}, {T_REVERSE, "Reverse"}, {T_CHOOSE_RIG, "Choose rig"}, {T_RIG_D, "Rig %d"}, {T_NEW_RIG, "New rig"}, {T_ENABLED, "Enabled"}, {T_SET_PTT_ON_RADIO, "Set PTT on radio"}, {T_DISABLED, " (disabled)"}, {T_ADD_RIG, "Add rig"}, {T_REMOVE_RIG, "Remove rig"}, {T_ROTATOR_D, "Rotator %d"}, {T_ENABLE, "Enable"}, {T_TCP_PORT2, "TCP port:"}, {T_PRIVATE, "Show private informations"}, {T_LOAD_FROM_NET, "Load from network"}, {T_LOAD_CWDB, "Load C_W database"}, {T_LOAD_NAMEDB, "Load Name database"}, {T_LOAD_QRVDB, "Load QRV database"}, {T_READONLY_BANDS, "Read-only bands"}, {T_ENABLE_AC, "Enable A/C"}, {T_AC_URL, "Alternative URL for flightradar data"}, {T_K_FACTOR, "Troposphere k_factor"}, {T_AC_AREA_WIDTH, "Reflection area width in km"}, {T_AC_EL_ANGLE, "Minimal elevation angle"}, {T_AC_MAX_EL_ANGLE, "Maximal elevation angle"}, {T_AC_MIN_DURATION, "Minimal reflection duration in sec"}, {T_AC_MAX_DIFF, "Max difference of incidence and reflection angles"}, {T_BAD_NUMBER_RANGE, "Bad number range"}, {T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate"}, {T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder"}, {T_NO_DEVICE, "No device"}, {T_IQ_SOURCE, "IQ source:"}, {T_WAV_FILE, "WAV file"}, {T_WAV_FILE_NAME, "WAV file name"}, {T_AF_OUTPUT, "AF output:"}, {T_AF_SAMPLE_RATE, "AF sample rate"}, {T_BLOCK_SIZE, " Block size"}, {T_CW_FILTER, " CW filter"}, {T_TO_HZ, "to [Hz]"}, {T_SSB_FILTER, " SSB filter"}, {T_INIT_NAMEDB, "Initializing name database"}, {T_FREE_NAMEDB, "Terminating name database"}, {T_LOAD_NAMEDB2, "Loading name database"}, {T_INIT_NET, "Initializing network"}, {T_FREE_NET, "Terminating network"}, {T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops"}, {T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)"}, {T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)"}, {T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s"}, {T_TIME_WAS_SET, "Time was set"}, {T_FAILED_TO_SET_TIME, "Failed to set time"}, {T_INIT, "INIT"}, {T_CONNECTING, "CONNECTING"}, {T_CONNECTED, "CONNECTED"}, {T_WAIT_ACK, "WAIT_ACK"}, {T_DISCONNECTED2, "DISCONNECTED"}, {T_DEAD, "DEAD"}, {T_LONG_XFER, "LONG_XFER"}, {T_AUTHENTICATED_USER_S, "Authenticated user %s"}, {T_BAD_AUTHENTICATION_S, "Bad authentication %s"}, {T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT"}, {T_LONG_TRANSFER_FINISHED, "Long transfer finished"}, {T_INIT_NTP, "Initializing NTP monitor"}, {T_FREE_NTP, "Terminating NTP monitor"}, {T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP"}, {T_INIT_SPEAKER, "Initializing PC speaker"}, {T_FREE_SPEAKER, "Terminating PC speaker"}, {T_CANT_PLAY, "Can't play %s - %s"}, {T_CANT_SEEK_TO_END, "Can't seek to end %s - %s"}, {T_CANT_SEEK_TO_START, "Can't seek to start %s - %s"}, {T_CANT_OPEN, "Can't open %s %s"}, {T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\""}, {T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\""}, {T_CANT_SET_EPP, "Can't set %s to EPP mode %s"}, {T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s"}, {T_CANT_CLAIM, "Can't claim %s %s"}, {T_INIT_QRVDB, "Initializing QRV database"}, {T_FREE_QRVDB, "Terminating QRV database"}, {T_WWL3, "WWL"}, {T_WKD2, "WKD"}, {T_ACKST2, "AcKst"}, {T_START, "Start"}, {T_DUR, "Dur"}, {T_NR, "NR"}, {T_TEXT2, "Text"}, {T_16_SORT, "1-6: sort, "}, {T_A_ALL, "A: all"}, {T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search"}, {T_LOAD_QRVS, "Loading qrvs"}, {T_UNSPECIFIED, "unspecified"}, {T_SSB, "SSB"}, {T_CW, "CW"}, {T_SSBS_CWR, "SSBs CWr"}, {T_CWS_SSBR, "CWs SSBr"}, {T_AM, "AM"}, {T_FM, "FM"}, {T_RTTY, "RTTY"}, {T_SSTV, "SSTV"}, {T_ATV, "ATV"}, {T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n"}, {T_FOUND_D_ERRORS, "Found %d error%s while reading %s"}, {T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net"}, {T_REGISTRATED_ROTATORS, "Registrated rotators:"}, {T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n"}, {T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread"}, {T_INIT_ROTARS2, "Initializing rotators"}, {T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n"}, {T_ROTAR_ERROR_S, "Rotar error: %s"}, {T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP"}, {T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP"}, {T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe"}, {T_CANT_READ_FROM, "Can't read from"}, {T_CANT_WRITE_TO, "Can't write to"}, {T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d"}, {T_HYPHENS1, "-----------------------"}, {T_UPDATE2, "Update"}, {T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***"}, {T_BAD_UPDATE_FILE_NAME, "Bad update file name"}, {T_CANT_EXECUTE_INSTALLER, "Can't execute installer, "}, {T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed"}, {T_UPDATE_FAILED, "Update failed"}, {T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply."}, {T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s"}, {T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install."}, {T_NO_NEW_VER, "No new version available."}, {T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests..."}, {T_CHOOSE_CONTEST, "Choose contest"}, {T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload"}, {T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form..."}, {T_ALL_EDI_FILES_PROCESSED, "All EDI files processed."}, {T_UPLOADING_LOG_FILE_S, "Uploading log file %s ..."}, {T_UPLOADING_BAND_S, "Uploading band %s"}, {T_CONFIRMING_LOG, "Confirming log..."}, {T_RESULT_ERROR, "*** Result: ERROR please read error message above"}, {T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s"}, {T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores..."}, {T_LOGS_UPLOADED, "Logs uploaded."}, {T_HTTP_STATUS, "HTTP status: "}, {T_LOG_UPLOAD, "Log upload"}, {T_VOIP_NO_INITIALIZED, "VOIP no initialized"}, {T_PAGE_NAME, "Page name"}, {T_OVERWRITE_EXISTING_FILES, "Overwrite existing files"}, {T_SITE_URL, "Site URL"}, {T_USERNAME, "Username"}, {T_PASSWORD2, " Password"}, {T_EXPORT_MAP, "Export map"}, {T_EXPORT_CHART, "Export chart"}, {T_MEDIAWIKI_UPLOAD2, "Mediawiki upload"}, {T_BAD_AUTH_USER, "Bad auth user %s != %s"}, {T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n"}, {T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame"}, {T_CANT_GET_FMTS, "Can't get supported audio formats: %s"}, {T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s"}, {T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s"}, {T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s"}, {T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s"}, {T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s"}, {T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s"}, {T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s"}, {T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s"}, {T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d"}, {T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s"}, {T_RECORD2, "record"}, {T_PLAYBACK, "playback"}, {T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s"}, {T_CANT_STOP_PA, "Can't stop PortAudio stream: %s"}, {T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s"}, {T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\""}, {T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\""}, {T_CANT_SET_STROBE, "Can't set parport_STROBE %s"}, {T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error"}, {T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n"}, {T_INIT_SERIAL_DEVICES, "Initializing serial devices"}, {T_BAD_CHECKSUM, "Bad checksum"}, {T_TIMEOUT2, "Timeout"}, {T_BAD_RESPONSE, "Bad response"}, {T_UNKNOWN_FUNCTION, "Unknown function"}, {T_UNKNOWN_ERROR_CODE, "Unknown error code"}, {T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n"}, {T_WAIT_FOR_SDR_THR, "Waiting for SDR thread"}, {T_QSO_REQ_FROM_SP, " QSO request from S&P "}, {T_QSO_REQ_SENT, " QSO request sent to RUN "}, {T_GO, " GO! "}, {T_LOCATION_UNKNOWN, "Location unknown"}, {T_DEGREE, "deg"}, {T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s"}, {T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s"}, {T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe"}, {T_INIT_SSB_CQ, "Initializing SSB CQ"}, {T_FREE_SSB_CQ, "Terminating SSB CQ"}, {T_NO_FILE, "No file specified"}, {T_UNSUP_CHANNELS, "Unsupported number of channels = %d"}, {T_FLOAT_UNSUPP, "Float point files are not supported"}, {T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing"}, {T_REC_DISABLED, "recording disabled"}, {T_CONTEST_TOO_OLD, "contest too old"}, {T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)"}, {T_ERROR_WRITING_FILE, "Error writing file %s: %s"}, {T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording"}, {T_NO_DISK_SPACE, "Not enough free disk space for file"}, {T_CANT_PLAY_FILE, "Can't play file %s - %s"}, {T_CANT_WRITE_SS, "Can't write to file %s - %s"}, {T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded"}, {T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template"}, {T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n"}, {T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***"}, {T_LOADING_S, "Loading %s"}, {T_INVALID_WINDOW_TYPE, "invalid window type %d\n"}, {T_INIT_RIG, "Initializing rig control %d"}, {T_RIG_ERROR, "Rig error: %s (%s)"}, {T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n"}, {T_FREE_RIG, "Terminating rig control %d"}, {T_WAIT_FOR_RIG_THR, "Waiting for rig thread"}, {T_INVALID_PARAM, "Invalid param."}, {T_RIG_INVALID_CONFIG, "Invalid config."}, {T_RIG_NOT_ENOUGH_MEM, "Not enough mem."}, {T_RIG_NOT_IMPLEMENTED, "Not implemented"}, {T_RIG_COMM_TIMEOUT, "Comm. timeout"}, {T_RIG_IO_ERROR, "IO error"}, {T_RIG_INTERNAL_ERROR, "Internal error"}, {T_PROTOCOL_ERROR, "Protocol error"}, {T_RIG_COMMAND_REJECT, "Command reject."}, {T_RIG_ARG_TRUNCATED, "Arg. truncated"}, {T_RIG_F_NOT_AVAILABLE, "F not available"}, {T_RIG_VFO_NOT_TARGET, "VFO not target."}, {T_RIG_ERROR_ON_BUS, "Error on bus"}, {T_RIG_BUS_COLLISION, "Bus collision"}, {T_RIG_INVALID_ARG, "Invalid arg."}, {T_RIG_INVALID_VFO, "Invalid VFO"}, {T_RIG_ARG_OUT_OF_DOM, "Arg out of dom."}, {T_ERROR_D, "Error %d"}, {T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)"}, {T_CANT_SET_GRAPHICS2, "Can't set graphics mode"}, {T_WAIT_SDL_THR, "Waiting for SDL event thread"}, {T_FREE_GRAPHICS, "Terminating graphics"}, {T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s"}, {T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s"}, {T_CANT_READ_LOG_FILE, "Can't read log file %s"}, {T_CANT_UPLOAD_LOG, "Can't upload log: %s"}, {T_CANT_CONFIRM_LOG, "Can't confirm log: %s"}, {T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s"}, {T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing"}, {T_CALL2, "Call:"}, {T_QTH, "QTH:"}, {T_DATE3, "Date:"}, {T_QSOS2, "QSOs:"}, {T_POINTS2, "Points:"}, {T_WWLS, "WWLs:"}, {T_DXCCS, "DXCCs:"}, {T_AVG2, "AVG:"}, {T_PTSQSO, "pts/qso"}, {T_TOP_10_CALLS, "Top 10 calls"}, {T_OPERATOR2, "Operator"}, {T_MODE2, "Mode"}, {T_TOP_10_WWLS, "Top 10 WWLs"}, {T_CANT_UPLOAD_FILE_S, "Can't upload file: %s"}, {T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s"}, {T_FILE_ALREADY_EXISTS, "File already exists: %s"}, {T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s"}, {T_CANT_EDIT_PAGE, "Can't edit page: %s"}, {T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s"}, {T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s"}, {T_EDITING_CONTEST_PAGE, "Editing contest page..."}, {T_ALL_DONE, "All done."}, {T_UPLOADING_FILE, "Uploading file %s..."}, {T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s"}, {T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s"}, {T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s"}, {T_QUERYING_EDIT_TOKEN, "Querying edit token"}, {T_CANT_LOGIN, "Can't log in (2): %s"}, {T_CANT_LOGIN2, "Can't log in (2), wiki says: %s"}, {T_CANT_LOGIN1, "Can't log in (1): %s"}, {T_LOGGING_IN, "Logging in..."}, {T_EXPORTING_FILES, "Exporting files..."}, {T_INIT_WIZZ, "Initializing contest wizard"}, {T_FREE_WIZZ, "Terminating contest wizard"}, {T_LOAD_WIZZ_DATA, "Loading contest wizard data"}, {0, NULL} }; struct translation_desc translations [] = { {translation_english}, {translation_czech}, {translation_slovak}, {translation_german}, {translation_portuguese}, {translation_french}, {translation_castellano}, {translation_polish}, {translation_italian}, {NULL} }; tucnak-4.04/src/sdr.h0000644000175000017500000000434612305574217011414 00000000000000/* Tucnak - VHF contest log Copyright (C) 2013-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SDR_H #define __SDR_H #include "header.h" #ifdef USE_SDR #include "fft.h" #include struct sdr; struct sdr_filter{ double zero, low, high; fftw_complex *fbins; double *window; fftw_complex *window_iq; int window_size; int zero_bin; }; struct sdr_filter *init_sdr_filter(struct sdr *, double zero, double low, double high, double samplerate, int size); void free_sdr_filter(struct sdr_filter *f); void sdr_filter_tune(struct sdr *sdr, double zero); struct sdr { fftw_complex *iq, *bins, *iout, *qout; fftw_plan plan_f, plan_bi, plan_bq; short *sndbuf; // buffer for soundcard, uses stereo with same channel data size_t samples, frames; int samplerate; int n; int pal[FFT_COLORS]; int grpal[FFT_COLORS]; SDL_Surface *screen; MUTEX_DEFINE(screen); int screeny; double *amp, *nea_amp; int amplen; #ifdef HAVE_SNDFILE SNDFILE *sndfileout; #endif GThread *thread; int thread_break; struct sdr_filter *filter; MUTEX_DEFINE(filter); double bfo_phase; double bfo_inc; int load; int butbg; int agc_period_ms; int agc_n, agc_ign, agc_ign_i; double agc_gain, agc_last_power; struct dsp *iqdsp; // SDR side struct dsp *afdsp; // audio int *wfvec; int wfveclen; }; extern struct sdr *gsdr; struct sdr *init_sdr(void); void free_sdr(struct sdr *sdr); struct sdr *sdr_start(struct sdr *sdr); void sdr_stop(struct sdr *sdr); gpointer sdr_thread_func(gpointer data); int sw_sdr_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_sdr_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_sdr_redraw(struct subwin *sw, struct band *band, int flags); void sw_sdr_check_bounds(struct subwin *sw); void sw_sdr_raise(struct subwin *sw); void sdr_read_handler(struct sdr *sdr, gchar *str, gchar *arg); void sdr_resize(struct sdr *sdr, struct subwin *sw); void sdr_ssb(void *xxx); void sdr_cw(void *xxx); void sdr_usb(void *xxx); void sdr_lsb(void *xxx); #endif #endif tucnak-4.04/src/os_dep.c0000644000175000017500000005227312500541516012063 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "kbd.h" #include "main.h" #include "os_dep.h" #include "rc.h" #include "tsdl.h" #include "terminal.h" #ifdef HAVE_SYS_IOCTL_H #include #endif #ifdef HAVE_LIBGPM #include #endif #if defined(HAVE_SYS_KD_H) #include #endif #if defined(HAVE_SYS_VFS_H) #include #endif int is_safe_in_shell(char c) { return c == '@' || c == '+' || c == '-' || c == '.' || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || c == '_' || (c >= 'a' && c <= 'z'); } void check_shell_security(char **cmd) { char *c = *cmd; while (*c) { if (!is_safe_in_shell(*c)) *c = '_'; c++; } } int get_e(char *env) { char *v; if ((v = getenv(env))) return atoi(v); return 0; } #if defined(OS2) #define INCL_MOU #define INCL_VIO #define INCL_DOSPROCESS #define INCL_DOSERRORS #define INCL_WINCLIPBOARD #define INCL_WINSWITCHLIST #include #include #include #include #ifdef HAVE_SYS_FMUTEX_H #include #include #endif #ifdef X2 /* from xf86sup - XFree86 OS/2 support driver */ #include #endif #endif /* Terminal size */ #if defined(UNIX) void sigwinch(void *arg, siginfo_t *siginfo, void *ctx) { ((void (*)(void))arg)(); } void handle_terminal_resize(int fd, void (*fn)(void *)) { #ifdef Z_HAVE_SDL if (sdl) return; #endif zselect_signal_set(SIGWINCH, sigwinch, fn, 0); } void unhandle_terminal_resize(int fd) { #ifdef Z_HAVE_SDL if (sdl) return; #endif zselect_signal_set(SIGWINCH, NULL, NULL, 0); } int term_get_terminal_size(int fd, int *x, int *y) { struct winsize ws; if (!x || !y) return -1; if (ioctl(1, TIOCGWINSZ, &ws) != -1) { if (!(*x = ws.ws_col) && !(*x = get_e("COLUMNS"))) *x = 80; if (!(*y = ws.ws_row) && !(*y = get_e("LINES"))) *y = 24; return 0; } else { if (!(*x = get_e("COLUMNS"))) *x = 80; if (!(*y = get_e("LINES"))) *y = 24; } return 0; } #elif defined(WIN32) #endif /* Exec */ int can_twterm() /* Check if it make sense to call a twterm. */ { static int xt = -1; if (xt == -1) xt = !!getenv("TWDISPLAY"); return xt; } #if defined(UNIX) || defined(WIN32) int is_xterm() { static int xt = -1; if (xt == -1) xt = !!getenv("DISPLAY"); return xt; } #endif int resize_count = 0; //#if defined(UNIX) || defined(WIN32) || defined(BEOS) #if defined(BEOS) && defined(HAVE_SETPGID) int exe(char *path) { int p; int s; if (!(p = fork())) { setpgid(0, 0); system(path); _exit(0); } if (p > 0) waitpid(p, &s, 0); else return system(path); return 0; } #else int exe(char *path) { return system(path); } #endif char *get_clipboard_text() /* !!! FIXME */ { char *ret = 0; if ((ret = (char*)g_malloc(1))!=NULL) ret[0] = 0; return ret; } void set_clipboard_text(char *data) { /* !!! FIXME */ } void set_window_title(char *title) { #ifdef Z_HAVE_SDL if (!sdl) #endif { if (is_xterm()){ if (!title) title=""; printf("\033]0;%s\007", title); fflush(stdout); } } #ifdef Z_HAVE_SDL sdl_set_title(title); #endif /* !!! FIXME */ } char *get_window_title() { /* !!! FIXME */ return NULL; } int resize_window(int x, int y) { return -1; } //#endif /* Threads */ #if defined(HAVE_BEGINTHREAD) || defined(HAVE_PTHREADS) struct tdata { void (*fn)(void *, int); int h; char data[1]; }; void bgt(struct tdata *t) { signal(SIGPIPE, SIG_IGN); t->fn(t->data, t->h); write(t->h, "x", 1); close(t->h); free(t); } #ifdef HAVE_PTHREADS void *bgpt(struct tdata *t) { bgt(t); return NULL; } #endif #endif //void block_stdin() {} //void unblock_stdin() {} #if defined(HAVE_BEGINTHREAD) int start_thread(void (*fn)(void *, int), void *ptr, int l) { int p[2]; struct tdata *t; if (z_pipe(p) < 0) return -1; fcntl(p[0], F_SETFL, O_NONBLOCK); fcntl(p[1], F_SETFL, O_NONBLOCK); if (!(t = malloc(sizeof(struct tdata) + l))) return -1; t->fn = fn; t->h = p[1]; memcpy(t->data, ptr, l); if (_beginthread((void (*)(void *))bgt, NULL, 65536, t) == -1) { close(p[0]); close(p[1]); g_free(t); return -1; } return p[0]; } #ifdef HAVE_READ_KBD int tp = -1; int ti = -1; void input_thread(void *p) { char c[2]; int h = (int)p; signal(SIGPIPE, SIG_IGN); while (1) { /*c[0] = _read_kbd(0, 1, 1); if (c[0]) if (write(h, c, 1) <= 0) break; else { int w; printf("1");fflush(stdout); c[1] = _read_kbd(0, 1, 1); printf("2");fflush(stdout); w = write(h, c, 2); printf("3");fflush(stdout); if (w <= 0) break; if (w == 1) if (write(h, c+1, 1) <= 0) break; printf("4");fflush(stdout); }*/ /* for the records: _read_kbd(0, 1, 1) will read a char, don't echo it, wait for one available and accept CTRL-C. Knowing that, I suggest we replace this call completly! */ *c = _read_kbd(0, 1, 1); write(h, c, 1); } close(h); } #endif /* #ifdef HAVE_READ_KBD */ #if defined(HAVE_MOUOPEN) && !defined(HAVE_LIBGPM) #define USING_OS2_MOUSE #ifdef HAVE_SYS_FMUTEX_H _fmutex mouse_mutex; int mouse_mutex_init = 0; #endif int mouse_h = -1; struct os2_mouse_spec { int p[2]; void (*fn)(void *, char *, int); void *data; char buffer[sizeof(struct event)]; int bufptr; int terminate; }; void mouse_thread(void *p) { int status; struct os2_mouse_spec *oms = p; A_DECL(HMOU, mh); A_DECL(MOUEVENTINFO, ms); A_DECL(USHORT, rd); A_DECL(USHORT, mask); struct event ev; signal(SIGPIPE, SIG_IGN); ev.ev = EV_MOUSE; if (MouOpen(NULL, mh)) goto ret; mouse_h = *mh; *mask = MOUSE_MOTION_WITH_BN1_DOWN | MOUSE_BN1_DOWN | MOUSE_MOTION_WITH_BN2_DOWN | MOUSE_BN2_DOWN | MOUSE_MOTION_WITH_BN3_DOWN | MOUSE_BN3_DOWN | MOUSE_MOTION; MouSetEventMask(mask, *mh); *rd = MOU_WAIT; status = -1; while (1) { int w, ww; if (MouReadEventQue(ms, rd, *mh)) break; #ifdef HAVE_SYS_FMUTEX_H _fmutex_request(&mouse_mutex, _FMR_IGNINT); #endif if (!oms->terminate) MouDrawPtr(*mh); #ifdef HAVE_SYS_FMUTEX_H _fmutex_release(&mouse_mutex); #endif ev.x = ms->col; ev.y = ms->row; /*debug("status: %d %d %d", ms->col, ms->row, ms->fs);*/ dbg("mouse_thread: ms->fs=%d\n", ms->fs); if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = B_DOWN | (ms->fs & MOUSE_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_BN2_DOWN ? B_MIDDLE : B_RIGHT); else if (ms->fs & (MOUSE_MOTION_WITH_BN1_DOWN | MOUSE_MOTION_WITH_BN2_DOWN | MOUSE_MOTION_WITH_BN3_DOWN)) { int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? B_MIDDLE : B_RIGHT; if (status == -1) b |= B_DOWN; else b |= B_DRAG; ev.b = status = b; } else { if (status == -1) continue; ev.b = (status & BM_BUTT) | B_UP; status = -1; } if (hard_write(oms->p[1], (char *)&ev, sizeof(struct event)) != sizeof(struct event)) break; } #ifdef HAVE_SYS_FMUTEX_H _fmutex_request(&mouse_mutex, _FMR_IGNINT); #endif mouse_h = -1; MouClose(*mh); #ifdef HAVE_SYS_FMUTEX_H _fmutex_release(&mouse_mutex); #endif ret: close(oms->p[1]); /*free(oms);*/ } void mouse_handle(struct os2_mouse_spec *oms) { int r; if ((r = read(oms->p[0], oms->buffer + oms->bufptr, sizeof(struct event) - oms->bufptr)) <= 0) { unhandle_mouse(oms); return; } if ((oms->bufptr += r) == sizeof(struct event)) { oms->bufptr = 0; oms->fn(oms->data, oms->buffer, sizeof(struct event)); } } void *handle_mouse(int cons, void (*fn)(void *, char *, int), void *data) { struct os2_mouse_spec *oms; if (is_xterm()) return NULL; #ifdef HAVE_SYS_FMUTEX_H if (!mouse_mutex_init) { if (_fmutex_create(&mouse_mutex, 0)) return NULL; mouse_mutex_init = 1; } #endif /* This is never freed but it's allocated only once */ if (!(oms = malloc(sizeof(struct os2_mouse_spec)))) return NULL; oms->fn = fn; oms->data = data; oms->bufptr = 0; oms->terminate = 0; if (z_pipe(oms->p)) { free(oms); return NULL; } _beginthread(mouse_thread, NULL, 0x10000, (void *)oms); zselect_set(zsel, oms->p[0], (void (*)(void *))mouse_handle, NULL, NULL, oms); return oms; } void unhandle_mouse(void *om) { struct os2_mouse_spec *oms = om; want_draw(); oms->terminate = 1; zselect_set(zsel, oms->p[0], NULL, NULL, NULL, NULL); close(oms->p[0]); done_draw(); } void want_draw() { A_DECL(NOPTRRECT, pa); #ifdef HAVE_SYS_FMUTEX_H if (mouse_mutex_init) _fmutex_request(&mouse_mutex, _FMR_IGNINT); #endif if (mouse_h != -1) { static int x = -1, y = -1; static int c = -1; if (x == -1 || y == -1 || (c != resize_count)) get_terminal_size(1, &x, &y), c = resize_count; pa->row = 0; pa->col = 0; pa->cRow = y - 1; pa->cCol = x - 1; MouRemovePtr(pa, mouse_h); } } void done_draw() { #ifdef HAVE_SYS_FMUTEX_H if (mouse_mutex_init) _fmutex_release(&mouse_mutex); #endif } #endif /* if HAVE_MOUOPEN */ #elif defined(HAVE_CLONE) /* This is maybe buggy... */ #include struct thread_stack { struct thread_stack *next; struct thread_stack *prev; int pid; void *stack; void (*fn)(void *, int); int h; int l; char data[1]; }; void bglt(struct thread_stack *ts) { ts->fn(ts->data, ts->h); write(ts->h, "x", 1); close(ts->h); } struct list_head thread_stacks = { &thread_stacks, &thread_stacks }; int start_thread(void (*fn)(void *, int), void *ptr, int l) { struct thread_stack *ts; int p[2]; int f; if (z_pipe(p) < 0) return -1; fcntl(p[0], F_SETFL, O_NONBLOCK); fcntl(p[1], F_SETFL, O_NONBLOCK); /*if (!(t = malloc(sizeof(struct tdata) + l))) return -1; t->fn = fn; t->h = p[1]; memcpy(t->data, ptr, l);*/ foreach(ts, thread_stacks) { if (ts->pid == -1 || kill(ts->pid, 0)) { if (ts->l >= l) goto ts_ok; else { struct thread_stack *tts = ts; ts = ts->prev; del_from_list(tts); free(tts->stack); free(tts); } } } if (!(ts = malloc(sizeof(struct thread_stack) + l))) goto fail; if (!(ts->stack = malloc(0x10000))) { free(ts); goto fail; } ts->l = l; add_to_list(thread_stacks, ts); ts_ok: ts->fn = fn; ts->h = p[1]; memcpy(ts->data, ptr, l); if ((ts->pid = __clone((int (*)(void *))bglt, (char *)ts->stack + 0x8000, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD, ts)) == -1) { fail: close(p[0]); close(p[1]); return -1; } return p[0]; } #elif defined(HAVE_PTHREADS) #include int start_thread(void (*fn)(void *, int), void *ptr, int l) { pthread_t thread; struct tdata *t; int p[2]; int f; if (z_pipe(p) < 0) return -1; fcntl(p[0], F_SETFL, O_NONBLOCK); fcntl(p[1], F_SETFL, O_NONBLOCK); if (!(t = malloc(sizeof(struct tdata) + l))) return -1; t->fn = fn; t->h = p[1]; memcpy(t->data, ptr, l); if (pthread_create(&thread, NULL, (void *(*)(void *))bgpt, t)) { close(p[0]); close(p[1]); g_free(t); return -1; } return p[0]; } #else /* HAVE_BEGINTHREAD */ int start_thread(void (*fn)(void *, int), void *ptr, int l) { #ifdef Z_MSC_MINGW zinternal("start_thread unimplemented"); return -1; #else int p[2]; int f; if (z_pipe(p) < 0) return -1; //fcntl(p[0], F_SETFL, O_NONBLOCK); //fcntl(p[1], F_SETFL, O_NONBLOCK); z_sock_nonblock(p[0], 1); z_sock_nonblock(p[1], 1); if (!(f = fork())) { closesocket(p[0]); fn(ptr, p[1]); z_pipe_write(p[1], "x", 1); z_pipe_close(p[1]); exit(0); } if (f == -1) { z_pipe_close(p[0]); z_pipe_close(p[1]); return -1; } z_pipe_close(p[1]); return p[0]; #endif } #endif int get_output_handle() { #ifdef Z_HAVE_SDL if (sdl) return -1; else #endif return 1; } int get_ctl_handle() { #ifdef Z_HAVE_SDL if (sdl) return -1; else #endif return 0; } int get_input_handle() { #ifdef Z_HAVE_SDL if (sdl) return -1; else #endif return 0; } #ifdef HAVE_LIBGPM struct gpm_mouse_spec { int h; void (*fn)(void *, char *, int); void *data; }; void gpm_mouse_in(void *xxx) { Gpm_Event gev; struct event ev; struct gpm_mouse_spec *gms; gms = (struct gpm_mouse_spec *)xxx; if (Gpm_GetEvent(&gev) <= 0) { zselect_set(zsel, gms->h, NULL, NULL, NULL, NULL); return; } ev.ev = EV_MOUSE; ev.x = gev.x - 1; ev.y = gev.y - 1; dbg("gpm_mouse_in: gev.buttons=%d\n", gev.buttons); if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; else return; if (gev.type & GPM_DOWN) ev.b |= B_DOWN; else if (gev.type & GPM_UP) ev.b |= B_UP; else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; else return; gms->fn(gms->data, (char *)&ev, sizeof(struct event)); } void *handle_mouse(int cons, void (*fn)(void *, char *, int), void *data) { int h; Gpm_Connect conn; struct gpm_mouse_spec *gms; conn.eventMask = ~GPM_MOVE; conn.defaultMask = GPM_MOVE; conn.minMod = 0; conn.maxMod = 0; if ((h = Gpm_Open(&conn, cons)) < 0) return NULL; if (!(gms = g_malloc(sizeof(struct gpm_mouse_spec)))) return NULL; gms->h = h; gms->fn = fn; gms->data = data; zselect_set(zsel, h, gpm_mouse_in, NULL, NULL, gms); return gms; } void unhandle_mouse(void *h) { struct gpm_mouse_spec *gms = h; zselect_set(zsel, gms->h, NULL, NULL, NULL, NULL); Gpm_Close(); g_free(gms); } #else void *handle_mouse(int cons, void (*fn)(void *, char *, int), void *data) { return NULL; } void unhandle_mouse(void *data) { } #endif /* #ifdef HAVE_LIBGPM */ /*void exec_new_links(char *xterm, char *exe, char *param) { char *str; if (!(str = g_malloc(strlen(xterm) + 1 + strlen(exe) + 1 + strlen(param) + 1))) return; sprintf(str, "%s %s %s", xterm, exe, param); exec_on_terminal(str, "", 2); g_free(str); } void open_in_new_twterm(struct terminal *term, char *exe, char *param) { char *twterm; if (!(twterm = getenv("TUCNAK_TWTERM"))) twterm = "twterm -e"; exec_new_links(twterm, exe, param); } void open_in_new_xterm(struct terminal *term, char *exe, char *param) { char *xterm; if (!(xterm = getenv("TUCNAK_XTERM"))) xterm = "xterm -e"; exec_new_links(xterm, exe, param); } void open_in_new_screen(struct terminal *term, char *exe, char *param) { exec_new_links("screen", exe, param); } #ifdef OS2 void open_in_new_vio(struct terminal *term, char *exe, char *param) { exec_new_links("cmd /c start /c /f /win", exe, param); } void open_in_new_fullscreen(struct terminal *term, char *exe, char *param) { exec_new_links("cmd /c start /c /f /fs", exe, param); } #endif #ifdef BEOS void open_in_new_be(struct terminal *term, char *exe, char *param) { exec_new_links("Terminal", exe, param); } #endif struct { int env; void (*fn)(struct terminal *term, char *, char *); char *text; char *hk; } oinw[] = { {ENV_XWIN, open_in_new_xterm, CTEXT(T_XTERM), CTEXT(T_HK_XTERM)}, {ENV_TWIN, open_in_new_twterm, CTEXT(T_TWTERM), CTEXT(T_HK_TWTERM)}, {ENV_SCREEN, open_in_new_screen, CTEXT(T_SCREEN), CTEXT(T_HK_SCREEN)}, #ifdef OS2 {ENV_OS2VIO, open_in_new_vio, CTEXT(T_WINDOW), CTEXT(T_HK_WINDOW)}, {ENV_OS2VIO, open_in_new_fullscreen, CTEXT(T_FULL_SCREEN), CTEXT(T_HK_FULL_SCREEN)}, #endif #ifdef BEOS {ENV_BE, open_in_new_be, CTEXT(T_BEOS_TERMINAL), CTEXT(T_HK_BEOS_TERMINAL)}, #endif {0, NULL, NULL} }; */ #if 0 #ifndef HAVE_LOCKF #ifdef Z_MSC_MINGW // TODO #else /* lockf is a simplified interface to fcntl's locking facilities. */ /* thanx to glibc */ int lockf (int fd, int cmd, off_t len) { struct flock fl; memset ((char *) &fl, '\0', sizeof (fl)); /* lockf is always relative to the current file position. */ fl.l_whence = SEEK_CUR; fl.l_start = 0; fl.l_len = len; switch (cmd) { case F_TEST: /* Test the lock: return 0 if FD is unlocked or locked by this process; return -1, set errno to EACCES, if another process holds the lock. */ if (fcntl (fd, F_GETLK, &fl) < 0) return -1; if (fl.l_type == F_UNLCK || fl.l_pid == getpid ()) return 0; errno=EACCES; return -1; case F_ULOCK: fl.l_type = F_UNLCK; cmd = F_SETLK; break; case F_LOCK: fl.l_type = F_WRLCK; cmd = F_SETLKW; break; case F_TLOCK: fl.l_type = F_WRLCK; cmd = F_SETLK; break; default: errno=EINVAL; return -1; } return fcntl (fd, cmd, &fl); } #endif #endif #endif int save_screen(){ if (!is_xterm()) return 1; printf("\033[?1049h"); fflush(stdout); return 0; } int restore_screen(){ if (!is_xterm()) return 1; printf("\033[?1049l"); fflush(stdout); return 0; } #define MTAB_DELIM " \t" gchar * get_mp(gchar *device){ FILE *f; char *filename,*s,*token_ptr; GString *gs; gchar *dev,*mp,*ret; f=fopen(filename="/proc/mounts","r"); if (!f) f=fopen(filename="/etc/mtab", "r"); if (!f) return 0; ret=NULL; gs=g_string_sized_new(100); while ((s=zfile_fgets(gs,f,1))!=NULL){ dev=strtok_r(s,MTAB_DELIM,&token_ptr); mp=strtok_r(NULL, MTAB_DELIM, &token_ptr); if (!dev || !mp) continue; if (strcmp(dev,device)==0){ ret=g_strdup(mp); break; } } g_string_free(gs, TRUE); fclose(f); return ret; } int floppy_is_mounted(gchar *floppydev, gchar *path_to_floppy){ gchar *mp; int ret; mp=get_mp(floppydev); if (!mp) return 0; ret=!strcmp(mp,path_to_floppy); g_free(mp); return ret; } #ifdef UNIX int is_in_mtab(gchar *mountpoint){ FILE *f; char *filename,*s,*token_ptr; GString *gs; gchar *dev,*mp; int ret; /*dbg("mountpoint ='%s'\n", mountpoint);*/ f=fopen(filename="/proc/mounts","r"); if (!f) f=fopen(filename="/etc/mtab", "r"); if (!f) return 0; ret=0; gs=g_string_sized_new(100); while ((s=zfile_fgets(gs,f,1))!=NULL){ dev=strtok_r(s,MTAB_DELIM,&token_ptr); mp=strtok_r(NULL, MTAB_DELIM, &token_ptr); if (!dev || !mp) continue; if (strcmp(mp,mountpoint)==0){ ret=1; break; } } g_string_free(gs, TRUE); fclose(f); /*dbg("return %d\n", ret);*/ return ret; } #else int is_in_mtab(gchar *mountpoint){ if (z_df(mountpoint) > 0.0) return 1; return 0; } #endif static int sound_fd=-1; int sound_pid=-1; int init_sound(){ #ifdef Z_UNIX int ret,i; int fds[2]; progress(VTEXT(T_INIT_SPEAKER)); if (pipe(fds)) zinternal("Can't create pipe"); /*dbg("sound pipe %d->%d\n", fds[1], fds[0]);*/ ret=fork(); if (ret<0){ zinternal("Can't fork"); } if (ret) { /* parent */ dbg("sound_pid = %d\n", ret); sound_pid = ret; closesocket(fds[0]); sound_fd=fds[1]; return 0; } /* child */ sleep(1); closesocket(fds[1]); close(0); dup2(fds[0], 0); closesocket(fds[0]); for (i=3;i<1024;i++) close(i); execlp("soundwrapper", "soundwrapper", NULL); exit(-1); #else return 0; #endif } int free_sound(){ #ifdef Z_UNIX int cmd, ret; if (sound_fd<0) return -1; progress(VTEXT(T_FREE_SPEAKER)); cmd=-1; ret=write(sound_fd, &cmd, sizeof(int)); if (ret!=sizeof(int)){ char errstr[1030]; dbg("error writing sound_fd=%d (error %d) '%s'\n", sound_fd, errno, strerror_r(errno, errstr, sizeof(errstr))); } close(sound_fd); sound_fd=-1; #endif return 0; } int abort_sound(){ if (sound_fd<0) return -1; z_pipe_close(sound_fd); sound_fd=-1; return 0; } int sound(int freq){ #ifdef Z_UNIX int ret; if (sound_fd<0) { /* dbg("sound_fd is closed\n");*/ return -1; } ret=z_pipe_write(sound_fd, &freq, sizeof(int)); if (ret!=sizeof(int)){ char errstr[1030]; dbg("error writing sound_fd=%d (error %d) '%s'\n", sound_fd, errno, strerror_r(errno, errstr, sizeof(errstr))); z_pipe_close(sound_fd); sound_fd=-1; return -1; } #endif return 0; } tucnak-4.04/src/translate.c0000644000175000017500000002271312500546146012607 00000000000000/* translate.h - Localisation tool for Tucnak Copyright (C) 2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "translate.h" #include "bfu.h" #include "fifo.h" #include "main.h" #include "menu.h" #include "subwin.h" char translate_key[MAX_STR_LEN]; char translate_oldkey[MAX_STR_LEN]; char translate_text[MAX_STR_LEN]; GPtrArray *translate_intl; char *translate_c_file, *translate_lng_file; GPtrArray *translate_lines; int translate_line, translate_start, translate_len; struct intl{ char *key, *val; }; void translate_replace(GString *line, char *newtext){ g_string_erase(line, translate_start, translate_len); g_string_insert(line, translate_start, newtext); } char *translate_get_val(char *key){ int i; for (i = 0; i < translate_intl->len; i++){ struct intl *x = (struct intl *)g_ptr_array_index(translate_intl, i); if (strcmp(key, x->key) == 0) return x->val; } return NULL; } char *translate_get_key(char *val){ int i; for (i = 0; i < translate_intl->len; i++){ struct intl *x = (struct intl *)g_ptr_array_index(translate_intl, i); if (strcmp(val, x->val) == 0) return x->key; } return NULL; } void translate_free_intl(gpointer xxx){ struct intl *x = (struct intl*) xxx; g_free(x->key); g_free(x->val); g_free(x); } int translate_load_intl(void){ GString *gs; FILE *f; g_free(translate_lng_file); translate_lng_file = g_strdup("../intl/english.lng"); z_wokna(translate_lng_file); f = fopen(translate_lng_file, "rt"); if (!f) { zinternal("Can't open '%s'", translate_lng_file); return 0; } if (translate_intl != NULL) g_ptr_array_free(translate_intl, TRUE); translate_intl = g_ptr_array_new(); g_ptr_array_set_free_func(translate_intl, translate_free_intl); gs = g_string_sized_new(256); while(zfile_fgets(gs, f, 0)){ char *k, *v; struct intl *x; z_split2(gs->str, ',', &k, &v, 0); if (k == NULL) continue; if (v[0] == '"') v++; if (strlen(v) > 0 && v[strlen(v) - 1] == ',') v[strlen(v) - 1] = '\0'; if (strlen(v) > 0 && v[strlen(v) - 1] == '"') v[strlen(v) - 1] = '\0'; dbg("'%s'='%s'\n", k, v); x = g_new0(struct intl, 1); x->key = g_strdup(k); x->val = g_strdup(v); g_ptr_array_add(translate_intl, x); } g_string_free(gs, TRUE); fclose(f); return 0; } int translate_parse_file(const char *dir, const char *filename){ FILE *f; GString *gsval, *gskey, *gsline; int ret = 0, i, j, bs = 0, ctext = 0; char *c, *line, *d, *dupkey, *dupval; g_free(translate_c_file); translate_c_file = g_strdup_printf("%s%s", dir, filename); f = fopen(translate_c_file, "rt"); if (f == NULL) return 0; if (translate_lines != NULL) zg_ptr_array_free_all(translate_lines); translate_lines = g_ptr_array_new(); gsval = g_string_sized_new(256); gskey = g_string_sized_new(256); while(zfile_fgets(gsval, f, 0)){ g_ptr_array_add(translate_lines, g_strdup(gsval->str)); } fclose(f); for (i = 0; i < translate_lines->len; i++){ line = (char*)g_ptr_array_index(translate_lines, i); c = strstr(line, "TRANSLATE("); if (c == NULL) continue; translate_line = i; translate_start = (c - line); log_adds(""); log_adds(""); log_addf(" -------- %s --------", filename); for (j = Z_MAX(i - 5, 0); j < Z_MIN(i + 5, translate_lines->len - 1); j++) { g_string_truncate(gsval, 0); g_string_append(gsval, (char *)g_ptr_array_index(translate_lines, j)); z_string_replace(gsval, "\x09", " ", ZSR_ALL); log_addf("%4d: %s", j, gsval->str); } g_string_truncate(gsval, 0); g_string_append(gsval, c + 11); for (j = 0; j < gsval->len; j++){ if (gsval->str[j] == '"' && bs == 0){ g_string_truncate(gsval, j); translate_len = j + 11 + 2; break; } if (gsval->str[j] == '\\'){ bs = 1; }else{ bs = 0; } } for (d = gsval->str; *d != '\0'; d++){ char cc = *d; if (cc == ' ') cc = '_'; if (isalnum(cc) || cc == '_'){ g_string_append_c(gskey, toupper(cc)); } } while (gskey->len > 0 && gskey->str[0] == '_') g_string_erase(gskey, 0, 1); while (gskey->len > 0 && gskey->str[gskey->len - 1] == '_') g_string_erase(gskey, gskey->len - 1, 1); g_string_insert(gskey, 0, "T_"); dupkey = translate_get_key(gsval->str); if (dupkey != NULL){ g_string_assign(gskey, dupkey); }else{ for (j = 1; ; j++){ char *tmp; if (j == 1) tmp = g_strdup(gskey->str); else tmp = g_strdup_printf("%s%d", gskey->str, j); dupval = translate_get_val(tmp); g_free(tmp); if (dupval != NULL) continue; if (j == 1) break; g_string_sprintfa(gskey, "%d", j); break; } } if (strstr(line, "add_to_menu")) ctext = 1; if (strstr(line, "input_field")) ctext = 1; if (strstr(line, "{TRANSLATE")) ctext = 1; if (strstr(line, "{CTEXT")) ctext = 1; if (strstr(line, "d->items[i].")) ctext = 1; //if (strstr(line, "")) ctext = 1; //if (strstr(line, "")) ctext = 1; g_snprintf(translate_key, MAX_STR_LEN, "%cTEXT(%s)", ctext ? 'C' : 'V', gskey->str); strcpy(translate_oldkey, translate_key); g_snprintf(translate_text, MAX_STR_LEN, "%s", gsval->str); log_addf("line %d, start=%d, len=%d", translate_line, translate_start, translate_len); gsline = g_string_new(line); translate_replace(gsline, translate_key); z_string_replace(gsline, "\x09", " ", ZSR_ALL); log_addf("%4d: %s", i, gsline->str); ret = 1; break; } g_string_free(gsval, TRUE); g_string_free(gskey, TRUE); //zg_ptr_array_free_all(arr); return ret; } static int translate_filter(const char *dir, const struct dirent *de){ const char *ext; if (strcmp((char *)de->d_name, ".") == 0) return 0; if (strcmp((char *)de->d_name, "..") == 0) return 0; ext = z_extension((char *)de->d_name); if (ext == NULL) return 0; if (strcmp(ext, ".c") == 0) return 1; return 0; } void translate_save_c(void){ int i; FILE *f = fopen(translate_c_file, "wb"); if (!f) zinternal("Can't open %s", translate_c_file); for (i = 0; i < translate_lines->len; i++){ GString *gs = NULL; char *line = (char *)g_ptr_array_index(translate_lines, i); if (i == translate_line){ gs = g_string_new(line); translate_replace(gs, translate_key); line = gs->str; } fprintf(f, "%s\n", line); if (gs) g_string_free(gs, TRUE); } fclose(f); } int translate_save_lng(void){ char *k, *c, *lng_text; FILE *f; k = g_strdup(translate_key); c = strchr(k, '('); if (!c) zinternal("No '(' in translate_key"); c++; z_strip_from(c, ')'); lng_text = translate_get_val(c); if (lng_text) { // exists same key in the lng database if (strcmp(translate_text, lng_text) == 0){ // user entered same text as in db log_addf("Merging to key '%s'", c); return 0; // change the c file }else{ // user entered different text than in db //if (strcmp(translate_key, translate_oldkey) == 0){ // // but same key, error log_addf("----------------------------------------------------------------------"); log_addf(" Key '%s' already exists in lng file with different text", c); log_addf("----------------------------------------------------------------------"); return 1; // do not change the c file //}else{ // // different text and different key, no problem bro // //} } } f = fopen(translate_lng_file, "ab"); if (!f) zinternal("Can't open %s", translate_lng_file); fprintf(f, "%s, \"%s\",\n", c, translate_text); g_free(k); fclose(f); return 0; } void refresh_translate(void *xxx){ struct dirent **namelist=NULL; int i; int nn; char dir[256]; translate_load_intl(); if (strlen(translate_key) != 0){ if (translate_save_lng() == 0){ translate_save_c(); } } translate_load_intl(); strcpy(dir, "../src/"); z_wokna(dir); nn = z_scandir(dir, &namelist, translate_filter, z_scandir_alphasort); for (i=0; id_name, "translate.c") == 0) continue; if (translate_parse_file(dir, namelist[i]->d_name)) break; } for (i=0; iy = 0; } void translate(void *xxx){ struct dialog *d; int i; sw_raise_or_new(SWT_LOG); d = (struct dialog *)g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = "Translate"; d->fn = dlg_pf_fn; d->position_fn = translate_fn3; d->refresh = (void (*)(void *))refresh_translate; d->y0 = 1; d->items[i = 0].type = D_FIELD; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = (char *)&translate_key; d->items[i].msg = "Key: "; d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = (char *)&translate_text; d->items[i].msg = "Text:"; d->items[i].wrap = 1; d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; set_window_ptr(gses->win, 0, 0); do_dialog(d, getml(d, NULL)); } tucnak-4.04/src/control.h0000644000175000017500000000342012224730151012263 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __CONTROL_H #define __CONTROL_H #include "qsodb.h" enum wt_type{ WT_CLEAR=0, WT_CALLSIGN, WT_RSTS, WT_RSTR, WT_QSONRS, WT_QSONRR, WT_EXC, WT_LOCATOR, WT_OPERATOR, WT_REMARK /* unused */ }; struct spypeer{ gchar *callsign; gchar *rsts,*rstr; gchar *qsonrs,*qsonrr; gchar *exc, *locator; gchar *remark, *operator_; gint peertx; gchar *inputline; gchar *peerid; gchar bandchar; }; void menu_forcerun(void *arg); /*void menu_spy(void *arg);*/ void menu_endspy(void *arg); int can_tx(struct band *b); int can_cq(struct band *b); void menu_grabband(void *arg); void net_grab(struct band *b, enum ccmd ccmd, char *netid); void ctrl_back(struct band *b); void wkd_tmpqso(struct band *band, enum wt_type type, gchar *call); void peer_tx(struct band *band, int tx); void do_endspy(void *arg, void *arg1); void menu_endspy(void *arg); void send_inputline(struct band *band); struct spypeer *init_spypeer(GPtrArray *sps, gchar *peerid, char bandchar); void spypeer_send_request(struct spypeer *sp); void spypeer_send_requests(void); struct spypeer *get_spypeer_by_peerid(GPtrArray *sps, gchar *peerid, char bandchar); void free_spypeer(struct spypeer *sp); void free_spypeers(GPtrArray *sps); void clear_spypeer(struct spypeer *sp); void send_spypeer_request(void *arg); void spypeer_add(char *peerid, char bandchar, int send_request); int load_spypeers_from_file(char *filename); int save_spypeers_to_file(char *filename); #endif tucnak-4.04/src/rotar.h0000644000175000017500000000456412125053311011740 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __ROTAR_H #define __ROTAR_H #include "header.h" struct sdev; enum rot_type { ROT_NONE=0, ROT_OK1ZIA_TTYS=1, ROT_OK1ZIA_FTDI=2, ROT_HAMLIB=3, ROT_REMOTE=4 }; struct config_rotar{ gint nr; /* common */ gchar *rot_desc; enum rot_type rot_type; gchar *rot_filename; gchar *rot_hostname; gint rot_port; gint rot_vid, rot_pid; gchar *rot_serial; gint rot_timeout_ms, rot_beamwidth, rot_poll_ms; /* ok1zia */ gint rot_saddr; /* hamlib */ gint rot_model; /* remote */ gchar *rot_rem_rotstr; }; struct rotar{ /* config */ struct sdev *sdev; #ifdef HAVE_HAMLIB ROT *rot; #endif int step; int rotchar; /* A, B, ... */ char rotstr[2]; int type; gchar *netid; gchar *desc; int beamwidth; /* in degrees */ /* device versions */ int verh, verl, identa; /* state */ int qtf, oldqtf, elev; // int timer_id; /* time between two command to prevent high cpu load */ int color; /* color of arrow in polar map */ int termcolor; /* color on terminal */ gchar *rem_rotstr; int last_req; #ifdef HAVE_HAMLIB GThread *hl_thread; int hl_azim; int hl_model; int hl_give_me_chance; int hl_thread_break; #endif int poll_ms; }; extern GPtrArray *rotars; extern MUTEX_DEFINE(rotars); extern struct rotar *rotar; int init_rotars(void); int free_rotars(void); struct rotar *init_rotar(struct config_rotar *cfg, int rotchar); void free_rotar(struct rotar *rot); int rot_seek(struct rotar *rot, int uhel); struct config_rig *get_config_rig_by_number(GPtrArray *crigs, int nr); struct config_rotar *get_config_rotar_by_number(GPtrArray *rotars, int nr); struct rotar *get_rotar(int nr); struct rotar *get_rotar_by_rotstr(char *rotstr); void rotar_read_handler(int n, char **line); void timer_update_rotar(void *arg); void rotar_remote_update(char *c); void menu_rotar(void *arg); #ifdef Z_HAVE_SDL int rot_update_colors(void); #endif int rotar_main(struct sdev *sdev); int rot_beamwidth(void); gpointer rot_hamlib_main(gpointer xxx); #endif tucnak-4.04/src/subwin.h0000644000175000017500000001563012501516037012123 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SUBWIN_H #define __SUBWIN_H #include "header.h" #include "terminal.h" #include "ac.h" struct band; #define BANDMAPW 22 #define BANDMAPMINW (75+BANDMAPW) #define KSTQRVW1 23 #define KSTQRVW2 (23+13) #define QSOS_LEN (sw->allqsos?ctest->allqsos->len:aband->qsos->len) enum sw_type { SWT_QSOS, SWT_LOG, SWT_SHELL, SWT_TALK, SWT_DXC, SWT_SKED, SWT_SWAP, SWT_UNFI, SWT_STAT, SWT_MAP, SWT_SCOPE, SWT_QRV, SWT_HF, SWT_PLAYER, SWT_CHART, SWT_KST, SWT_UPD, SWT_SDR}; struct subwin { gchar *title; enum sw_type type; gint x,y,w,ww,h,hh; gint offset,cur,ho, offset2; gint ontop, ontop2,focused; gint titl1,titl2; int (*kbd_func)(struct subwin *, struct event *ev, int fw); int (*mouse_func)(struct subwin *, struct event *ev, int fw); void (*redraw)(struct subwin *, struct band *band, int flags); void (*check_bounds)(struct subwin *); void (*raise)(struct subwin *); GPtrArray *lines; int eol, maxlen, unread; struct inputln *il; /* optional */ /* subwins having pipes */ gint read_fd, write_fd; struct zserial *zser; iconv_t iconv; #ifdef Z_UNIX //pid_t pid; struct winsize ws; #endif GPtrArray *high; /* of gchar* */ gchar *command; gint respawn_time; /* fifo is foreign key mostly to global variable */ struct fifo *fifo; /* for graphics subwins (SWT_MAP) */ #ifdef Z_HAVE_SDL SDL_Surface *l1map; // SDL_Surface *l2rot; SDL_Surface *screen; MUTEX_DEFINE(screen); // GMutex *screen_mutex; //#ifdef LEAK_DEBUG_LIST // char *screen_file; // int screen_line; //#endif int ox, oy; int zoom; int gdirty; SDL_Rect map, info; gchar *pwwlo; struct qso *minqso; //gchar *minqrvcall; int scope_mode; int fft_wf_y, fft_wf_h; int fft_sp_y, fft_sp_h; int fft_wf_x2; int fft_sp_x2; double antchar[360]; int beamwidth; double gst[360]; int mint, maxt, minv, maxv; int ch_left, ch_right, ch_top, ch_bottom; char *ch_op; int mx, my, ch_mouse_value; int showlines; #endif double myw, myh; GPtrArray *chbands; // of struct chband #ifdef HAVE_SNDFILE int pl_rate; int pl_channels; char *pl_shapebuf; // for all samples int pl_shape_frames; int pl_total_frames; int pl_pxlen; int pl_ofs; #ifdef Z_HAVE_SDL SDL_Surface *pl_preview_screen; int pl_preview_w; #endif #endif int sock; int kst_srv; struct zasyncdns *adns; int chat; char *callunder; char *pattern; int dxc_from_net; int timer_id; GHashTable *kstusers; // of qrv_item (foreign key, can be NULL) GHashTable *kstoldusers; int shus; // 0 = none, 1 = from timer with filter, 2 = from operator int kst_y, kst_offset; int allqsos; char *player_filename; int dxc_offset; int olddragx, olddragy; // bu v terminlovch nebo grafickch souadnicch int ac_plotinfo; struct zchart *chart; GPtrArray *buttons; // of struct button struct button *sdr_ssb, *sdr_cw, *sdr_usb, *sdr_lsb; int sdr_by; int side_top, side_bott; int shaking; }; struct config_subwin{ int nr; enum sw_type type; gchar *command; gchar *autorun; int respawn_time; }; struct subwin *new_subwin(enum sw_type type, int where); void free_subwins(void); void free_subwin(struct subwin *sw); struct subwin *sw_raise_or_new(enum sw_type type); int sw_add_line(struct subwin *sw, gchar *line, int eol); int sw_add_block(struct subwin *sw, gchar *data); int sw_printf(struct subwin *sw, const char *m, ...); int sw_default_func(struct subwin *sw, struct event *ev, int fw); int sw_all_func(struct event *ev, int fw); int sw_focus_func(struct event *ev, int fw); int sw_ontop_func(struct event *ev, int fw); struct subwin *find_sw_ontop(void); void sw_set_focus(void); void sw_unset_focus(void); struct subwin *sw_set_ontop(int n, int set2); /* n abs */ struct subwin *sw_totop_next(int n, int set2); /* n = +-1 */ void sw_set_unread(struct fifo *fifo); void sw_unset_unread(struct fifo *fifo); struct config_subwin *get_config_sw_by_number(GPtrArray *sws, int nr); void sw_default_redraw(struct subwin *sw, int flags); void sw_check_len(struct subwin *sw); void draw_titles(int y, int ontop2); int sw_line_is_highlighted(struct subwin *sw, gchar *c); int sw_qsos_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_qsos_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_qsos_redraw(struct subwin *sw, struct band *band, int flags); void sw_qsos_check_bounds(struct subwin *sw); int show_qs(void); void sw_qs_redraw(void); int sw_fifo_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_fifo_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_fifo_redraw(struct subwin *sw, struct band *band, int flags); void sw_fifo_check_bounds(struct subwin *sw); int sw_shell_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_shell_redraw(struct subwin *sw, struct band *band, int flags); void sw_shell_check_bounds(struct subwin *sw); void sw_shell_enter(void *enterdata, gchar *str, int cq); int sw_shell_run(struct subwin *sw, char *cmd); void sw_shell_read_handler(void *); void sw_shell_write_handler(void *); void sw_shell_exception_handler(void *); void sw_shell_kill(struct subwin *sw); void sw_shell_match(gpointer acall, gpointer nic, gpointer astr); int sw_shell_hihglight(struct subwin *sw, char *str); #ifdef HAVE_PTY_H int sw_pty_run(struct subwin *sw, char *cmd); #endif #ifdef Z_UNIX int sw_pipe_run(struct subwin *sw, char *cmd); #endif void sw_talk_enter(void *enterdata, gchar *str, int); void sw_talk_read(char *, int ignoredupe); int sw_unfi_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_unfi_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_unfi_redraw(struct subwin *sw, struct band *band, int flags); void sw_unfi_check_bounds(struct subwin *sw); int sw_stat_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_stat_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_stat_redraw(struct subwin *sw, struct band *band, int flags); void sw_stat_check_bounds(struct subwin *sw); void sw_stat_raise(struct subwin *sw); void clip_char(struct subwin *sw, int xrel, int yrel, unsigned c); void clip_color(struct subwin *sw, int xrel, int yrel, unsigned c); void clip_printf(struct subwin *sw, int xrel, int yrel, short color, char *fmt, ...); void sw_export_lines(struct subwin *sw, char *fname); extern int sw_shake_tmo; void sw_shake(struct subwin *sw, int down); int sw_accel_dy(struct subwin *sw, struct event *ev); void sw_highlight(struct subwin *sw, const char *text, const char *needle, int color, int i, int whole); #endif tucnak-4.04/src/update.h0000644000175000017500000000071312037253045012073 00000000000000/* Tucnak - VHF contest log Copyright (C) 2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __UPDATE_H #define __UPDATE_H struct zserial; void update_tucnak(void *a, void *b); struct zserial *update_init_process(void); void update_info(void *arg); #endif tucnak-4.04/src/cordata.inc0000644000175000017500001716361612333665045012602 00000000000000/* Automatically generated by cor2inc.pl */ const struct cpoint cor_tucnakcor[COR_ITEMS] = { {2313,3562,128},{2325,3553,0},{2338,3552,0},{2342,3548,0},{2347,3548,0}, {2350,3547,0},{2353,3550,0},{2358,3550,0},{2363,3550,0},{2372,3552,0},{2375,3550,0}, {2378,3552,0},{2378,3548,0},{2382,3548,0},{2395,3548,0},{2398,3553,0},{2398,3555,0}, {2395,3555,0},{2395,3558,0},{2393,3562,0},{2392,3570,0},{2393,3573,0},{2395,3575,0}, {2393,3578,0},{2390,3580,0},{2392,3582,0},{2400,3573,0},{2402,3562,0},{2410,3557,0}, {2415,3550,0},{2412,3552,0},{2412,3550,0},{2428,3538,0},{2440,3523,0},{2448,3520,0}, {2452,3513,0},{2458,3517,0},{2462,3512,0},{2475,3507,0},{2482,3500,0},{2492,3498,0}, {2495,3495,0},{2500,3493,0},{2513,3485,0},{2535,3473,0},{2538,3470,0},{2548,3467,0}, {2562,3458,0},{2572,3455,0},{2578,3448,0},{2585,3443,0},{2592,3442,0},{2593,3438,0}, {2600,3433,0},{2607,3432,0},{2620,3422,0},{2632,3418,0},{2642,3410,0},{2652,3407,0}, {2662,3402,0},{2665,3393,0},{2673,3393,0},{2675,3395,0},{2683,3395,0},{2685,3397,0}, {2683,3398,0},{2683,3400,0},{2690,3400,0},{2693,3395,0},{2703,3388,0},{2705,3392,0}, {2708,3388,0},{2712,3383,0},{2717,3382,0},{2720,3383,0},{2725,3383,0},{2730,3373,0}, {2732,3370,0},{2743,3367,0},{2747,3363,0},{2748,3363,0},{2753,3355,0},{2758,3355,0}, {2765,3350,0},{2768,3353,0},{2765,3355,0},{2767,3355,0},{2767,3357,0},{2765,3360,0}, {2770,3353,0},{2775,3357,0},{2775,3352,0},{2780,3347,0},{2783,3347,0},{2782,3355,0}, {2778,3357,0},{2780,3358,0},{2778,3358,0},{2785,3358,0},{2798,3348,0},{2803,3342,0}, {2803,3337,0},{2805,3337,0},{2805,3333,0},{2808,3333,0},{2813,3328,0},{2815,3325,0}, {2817,3323,0},{2818,3322,0},{2827,3315,0},{2828,3312,0},{2835,3310,0},{2840,3305,0}, {2848,3300,0},{2850,3297,0},{2855,3293,0},{2857,3287,0},{2873,3283,0},{2877,3280,0}, {2880,3278,0},{2880,3275,0},{2887,3268,0},{2893,3267,0},{2898,3262,0},{2905,3262,0}, {2905,3265,0},{2907,3263,0},{2910,3267,0},{2933,3260,0},{2938,3257,0},{2948,3245,0}, {2953,3237,0},{2960,3233,0},{2963,3237,0},{2968,3237,0},{2977,3242,0},{2987,3252,0}, {2987,3248,0},{2990,3247,0},{2993,3247,0},{2997,3253,0},{2995,3255,0},{2993,3257,0}, {2998,3255,0},{3000,3258,0},{2998,3258,0},{2997,3257,0},{2993,3258,0},{2993,3257,0}, {2987,3263,0},{2982,3260,0},{2973,3270,0},{2960,3268,0},{2958,3272,0},{2948,3273,0}, {2945,3272,0},{2948,3273,0},{2945,3273,0},{2940,3282,0},{2932,3283,0},{2930,3287,0}, {2923,3288,0},{2920,3295,0},{2908,3307,0},{2905,3310,0},{2900,3317,0},{2895,3317,0}, {2892,3318,0},{2885,3317,0},{2882,3317,0},{2877,3322,0},{2867,3320,0},{2855,3323,0}, {2855,3325,0},{2858,3323,0},{2858,3325,0},{2855,3327,0},{2853,3327,0},{2855,3327,0}, {2850,3328,0},{2847,3335,0},{2837,3343,0},{2830,3357,0},{2823,3362,0},{2818,3363,0}, {2817,3365,0},{2817,3367,0},{2808,3372,0},{2803,3377,0},{2802,3377,0},{2802,3380,0}, {2793,3388,0},{2793,3392,0},{2790,3395,0},{2788,3398,0},{2782,3405,0},{2780,3408,0}, {2778,3418,0},{2773,3425,0},{2777,3425,0},{2777,3422,0},{2778,3422,0},{2778,3427,0}, {2785,3428,0},{2785,3432,0},{2792,3433,0},{2792,3437,0},{2793,3437,0},{2797,3443,0}, {2800,3445,0},{2808,3443,0},{2817,3445,0},{2823,3442,0},{2832,3440,0},{2837,3445,0}, {2843,3445,0},{2848,3448,0},{2848,3452,0},{2855,3452,0},{2873,3463,0},{2883,3462,0}, {2887,3465,0},{2895,3463,0},{2898,3468,0},{2905,3467,0},{2917,3470,0},{2917,3472,0}, {2920,3473,0},{2930,3473,0},{2933,3478,0},{2947,3485,0},{2950,3492,0},{2955,3497,0}, {3133,3422,128},{3125,3410,0},{3120,3398,0},{3113,3372,0},{3112,3360,0}, {3113,3348,0},{3115,3342,0},{3113,3342,0},{3113,3338,0},{3112,3338,0},{3110,3328,0}, {3110,3332,0},{3110,3330,0},{3108,3330,0},{3108,3328,0},{3108,3327,0},{3110,3327,0}, {3107,3320,0},{3105,3322,0},{3105,3313,0},{3108,3315,0},{3110,3312,0},{3112,3317,0}, {3118,3310,0},{3118,3313,0},{3115,3303,0},{3112,3302,0},{3110,3295,0},{3110,3302,0}, {3113,3307,0},{3112,3307,0},{3110,3305,0},{3108,3302,0},{3107,3302,0},{3105,3302,0}, {3107,3297,0},{3108,3297,0},{3107,3298,0},{3108,3298,0},{3112,3293,0},{3110,3292,0}, {3108,3293,0},{3108,3292,0},{3108,3290,0},{3108,3293,0},{3110,3290,0},{3108,3283,0}, {3105,3278,0},{3103,3272,0},{3103,3270,0},{3105,3272,0},{3105,3267,0},{3107,3277,0}, {3115,3293,0},{3107,3275,0},{3105,3262,0},{3107,3255,0},{3115,3247,0},{3122,3240,0}, {3125,3233,0},{3127,3233,0},{3125,3230,0},{3120,3230,0},{3125,3230,0},{3127,3232,0}, {3128,3222,0},{3127,3228,0},{3125,3227,0},{3122,3230,0},{3117,3228,0},{3117,3227,0}, {3113,3228,0},{3112,3228,0},{3110,3222,0},{3112,3220,0},{3112,3218,0},{3110,3218,0}, {3110,3213,0},{3107,3215,0},{3110,3210,0},{3107,3210,0},{3105,3213,0},{3105,3210,0}, {3108,3208,0},{3108,3205,0},{3110,3207,0},{3113,3205,0},{3112,3202,0},{3115,3203,0}, {3122,3203,0},{3122,3200,0},{3123,3200,0},{3122,3197,0},{3118,3193,0},{3120,3193,0}, {3122,3190,0},{3125,3190,0},{3122,3188,0},{3128,3180,0},{3127,3178,0},{3130,3177,0}, {3130,3180,0},{3132,3178,0},{3133,3180,0},{3133,3178,0},{3135,3180,0},{3135,3185,0}, {3137,3183,0},{3138,3183,0},{3140,3183,0},{3142,3188,0},{3142,3185,0},{3143,3185,0}, {3143,3183,0},{3145,3183,0},{3147,3183,0},{3145,3183,0},{3145,3185,0},{3142,3188,0}, {3145,3188,0},{3150,3187,0},{3150,3185,0},{3152,3185,0},{3153,3188,0},{3152,3193,0}, {3142,3200,0},{3143,3197,0},{3138,3200,0},{3140,3200,0},{3132,3215,0},{3128,3220,0}, {3138,3203,0},{3147,3197,0},{3150,3195,0},{3153,3190,0},{3153,3185,0},{3148,3175,0}, {3145,3160,0},{3145,3152,0},{3153,3135,0},{3158,3118,0},{3160,3112,0},{3160,3103,0}, {3158,3098,0},{3157,3107,0},{3155,3112,0},{3152,3113,0},{3152,3112,0},{3150,3113,0}, {3148,3110,0},{3152,3108,0},{3152,3102,0},{3143,3098,0},{3145,3093,0},{3143,3093,0}, {3142,3090,0},{3143,3087,0},{3143,3082,0},{3145,3080,0},{3143,3078,0},{3138,3073,0}, {3142,3068,0},{3140,3065,0},{3138,3058,0},{3140,3055,0},{3142,3057,0},{3143,3065,0}, {3153,3085,0},{3158,3097,0},{3145,3050,0},{3147,3042,0},{3150,3035,0},{3143,3040,0}, {3145,3037,0},{3150,3035,0},{3143,3035,0},{3135,3032,0},{3132,3028,0},{3127,3018,0}, {3127,3025,0},{3128,3027,0},{3127,3030,0},{3123,3028,0},{3127,3028,0},{3122,3022,0}, {3123,3020,0},{3122,3017,0},{3122,3015,0},{3123,3015,0},{3127,3017,0},{3128,3008,0}, {3133,3007,0},{3125,2997,0},{3120,2990,0},{3122,2988,0},{3120,2987,0},{3118,2988,0}, {3113,2982,0},{3113,2978,0},{3110,2975,0},{3093,2948,0},{3087,2933,0},{3082,2912,0}, {3083,2898,0},{3090,2883,0},{3095,2882,0},{3098,2872,0},{3102,2860,0},{3105,2853,0}, {3105,2847,0},{3108,2842,0},{3105,2832,0},{3107,2820,0},{3108,2815,0},{3110,2792,0}, {3120,2787,0},{3123,2787,0},{3125,2785,0},{3122,2780,0},{3117,2765,0},{3118,2763,0}, {3120,2762,0},{3120,2757,0},{3122,2755,0},{3122,2747,0},{3123,2742,0},{3127,2738,0}, {3137,2735,0},{3137,2722,0},{3140,2707,0},{3142,2705,0},{3142,2700,0},{3145,2697,0}, {3143,2690,0},{3145,2682,0},{3148,2673,0},{3152,2637,0},{3160,2608,0},{3162,2592,0}, {3162,2582,0},{3150,2540,0},{3150,2532,0},{3153,2517,0},{3165,2515,0},{3173,2512,0}, {3183,2503,0},{3192,2503,0},{3197,2498,0},{3198,2487,0},{3203,2473,0},{3203,2465,0}, {3200,2462,0},{3198,2455,0},{3200,2430,0},{3200,2410,0},{3202,2407,0},{3205,2402,0}, {3205,2398,0},{3207,2397,0},{3208,2400,0},{3210,2398,0},{3217,2373,0},{3218,2342,0}, {3222,2337,0},{3222,2330,0},{3215,2332,0},{3220,2328,0},{3222,2325,0},{3228,2320,0}, {3233,2308,0},{3243,2310,0},{3240,2313,0},{3243,2313,0},{3247,2315,0},{3252,2310,0}, {3258,2310,0},{3262,2312,0},{3263,2312,0},{3267,2300,0},{3268,2292,0},{3273,2280,0}, {3275,2265,0},{3278,2258,0},{3278,2253,0},{3288,2235,0},{3288,2222,0},{3295,2215,0}, {3293,2212,0},{3292,2208,0},{3290,2188,0},{3292,2178,0},{3295,2172,0},{3293,2162,0}, {3282,2148,0},{3278,2138,0},{3277,2128,0},{3277,2107,0},{3273,2095,0},{3265,2082,0}, {3257,2057,0},{3243,2038,0},{3240,2032,0},{3217,2007,0},{3197,1995,0},{3173,1992,0}, {3152,1997,0},{3137,2003,0},{3132,2010,0},{3122,2015,0},{3108,2015,0},{3098,2013,0}, {3082,2003,0},{3052,1977,0},{3042,1962,0},{3040,1955,0},{3028,1933,0},{3027,1917,0}, {3027,1900,0},{3028,1892,0},{3035,1880,0},{3038,1878,0},{3042,1865,0},{3050,1855,0}, {3067,1830,0},{3078,1820,0},{3083,1802,0},{3085,1792,0},{3092,1785,0},{3093,1777,0}, {3100,1760,0},{3102,1747,0},{3108,1737,0},{3112,1713,0},{3118,1693,0},{3122,1675,0}, {3123,1625,0},{3127,1608,0},{3132,1592,0},{3143,1568,0},{3150,1562,0},{3165,1550,0}, {3197,1535,0},{3208,1535,0},{3217,1537,0},{3222,1532,0},{3233,1527,0},{3240,1518,0}, {3243,1492,0},{3245,1473,0},{3248,1463,0},{3252,1450,0},{3253,1445,0},{3263,1432,0}, {3267,1425,0},{3270,1418,0},{3273,1402,0},{3277,1392,0},{3280,1378,0},{3280,1360,0}, {3290,1335,0},{3292,1327,0},{3292,1317,0},{3288,1312,0},{3285,1300,0},{3280,1282,0}, {3280,1257,0},{3283,1233,0},{3292,1213,0},{3307,1188,0},{3313,1170,0},{3312,1170,0}, {3312,1175,0},{3308,1180,0},{3310,1165,0},{3312,1160,0},{3317,1157,0},{3317,1153,0}, {3320,1143,0},{3327,1133,0},{3320,1143,0},{3318,1142,0},{3318,1135,0},{3322,1123,0}, {3322,1117,0},{3325,1117,0},{3328,1112,0},{3330,1113,0},{3328,1128,0},{3333,1117,0}, {3337,1113,0},{3337,1110,0},{3353,1112,0},{3358,1108,0},{3362,1105,0},{3363,1098,0}, {3362,1097,0},{3362,1090,0},{3358,1093,0},{3355,1092,0},{3347,1075,0},{3348,1070,0}, {3353,1067,0},{3360,1072,0},{3370,1072,0},{3370,1067,0},{3367,1060,0},{3363,1048,0}, {3370,1033,0},{3383,1017,0},{3393,1008,0},{3402,1003,0},{3417,1000,0},{3432,1012,0}, {3438,1027,0},{3442,1028,0},{3440,1033,0},{3450,1043,0},{3453,1057,0},{3463,1063,0}, {3467,1073,0},{3475,1077,0},{3480,1085,0},{3483,1085,0},{3487,1090,0},{3497,1092,0}, {3505,1102,0},{3513,1102,0},{3517,1107,0},{3523,1112,0},{3523,1115,0},{3530,1107,0}, {3535,1102,0},{3540,1102,0},{3552,1105,0},{3552,1103,0},{3555,1102,0},{3563,1103,0}, {3570,1083,0},{3573,1082,0},{3578,1082,0},{3577,1073,0},{3578,1070,0},{3580,1068,0}, {3585,1062,0},{3592,1058,0},{3597,1052,0},{3600,1052,0},{3605,1047,0},{3612,1045,0}, {3625,1047,0},{3637,1053,0},{3643,1068,0},{3647,1080,0},{3665,1090,0},{3675,1098,0}, {3687,1112,0},{3702,1105,0},{3705,1107,0},{3708,1105,0},{3705,1090,0},{3700,1088,0}, {3688,1072,0},{3688,1060,0},{3685,1057,0},{3678,1053,0},{3672,1042,0},{3675,1032,0}, {3678,1028,0},{3680,1028,0},{3678,1025,0},{3678,1020,0},{3683,1020,0},{3685,1027,0}, {3683,1028,0},{3682,1028,0},{3683,1030,0},{3688,1035,0},{3698,1020,0},{3703,1017,0}, {3707,1017,0},{3710,1020,0},{3710,1023,0},{3712,1023,0},{3713,1022,0},{3715,1013,0}, {3717,1015,0},{3717,1022,0},{3715,1022,0},{3717,1023,0},{3718,1027,0},{3718,1022,0}, {3720,1020,0},{3723,1013,0},{3723,1008,0},{3727,1005,0},{3725,998,0},{3725,992,0}, {3727,988,0},{3722,982,0},{3722,993,0},{3720,993,0},{3715,990,0},{3713,985,0}, {3715,980,0},{3718,978,0},{3723,978,0},{3725,985,0},{3728,987,0},{3733,985,0}, {3733,973,0},{3733,965,0},{3730,958,0},{3730,953,0},{3727,945,0},{3727,942,0}, {3723,933,0},{3723,920,0},{3718,915,0},{3715,905,0},{3703,892,0},{3698,883,0}, {3697,877,0},{3697,870,0},{3693,862,0},{3690,845,0},{3692,835,0},{3692,828,0}, {3695,823,0},{3693,820,0},{3688,805,0},{3685,793,0},{3688,778,0},{3690,777,0}, {3692,778,0},{3693,777,0},{3698,780,0},{3697,777,0},{3695,772,0},{3698,767,0}, {3697,763,0},{3698,758,0},{3705,748,0},{3705,740,0},{3705,738,0},{3708,738,0}, {3707,733,0},{3708,728,0},{3707,727,0},{3708,722,0},{3707,718,0},{3703,725,0}, {3698,725,0},{3692,717,0},{3692,713,0},{3692,707,0},{3688,695,0},{3690,688,0}, {3692,687,0},{3693,685,0},{3695,683,0},{3695,678,0},{3695,675,0},{3695,667,0}, {3697,660,0},{3700,657,0},{3702,658,0},{3705,655,0},{3708,647,0},{3708,637,0}, {3702,627,0},{3698,625,0},{3695,627,0},{3692,623,0},{3683,600,0},{3682,582,0}, {3683,577,0},{3682,572,0},{3678,565,0},{3677,558,0},{3670,553,0},{3665,542,0}, {3663,533,0},{3665,525,0},{3667,517,0},{3672,508,0},{3677,510,0},{3690,478,0}, {3688,455,0},{3690,448,0},{3692,443,0},{3690,438,0},{3690,427,0},{3688,420,0}, {3690,415,0},{3688,410,0},{3690,393,0},{3692,388,0},{3688,375,0},{3682,363,0}, {3677,348,0},{3678,330,0},{3682,325,0},{3680,322,0},{3678,323,0},{3675,322,0}, {3673,313,0},{3675,308,0},{3680,303,0},{3680,293,0},{3680,290,0},{3675,285,0}, {3672,283,0},{3668,278,0},{3660,263,0},{3658,257,0},{3660,242,0},{3662,240,0}, {3663,233,0},{3657,203,0},{3657,183,0},{3653,157,0},{3653,153,0},{3652,148,0}, {3655,135,0},{3650,127,0},{3650,117,0},{3648,115,0},{3648,105,0},{3645,95,0}, {3640,92,0},{3638,87,0},{3633,75,0},{3633,65,0},{3622,45,0},{3620,35,0}, {3613,30,0},{3612,22,0},{3605,13,0},{3588,5,0},{3583,0,0},{3578,65524,0}, {3580,65513,0},{3583,65506,0},{3587,65506,0},{3590,65501,0},{3590,65499,0}, {3588,65493,0},{3588,65488,0},{3583,65488,0},{3577,65483,0},{3577,65479,0}, {3572,65474,0},{3572,65471,0},{3572,65466,0},{3575,65464,0},{3575,65458,0}, {3577,65456,0},{3577,65454,0},{3573,65451,0},{3572,65446,0},{3572,65443,0}, {3570,65438,0},{3568,65433,0},{3563,65429,0},{3557,65421,0},{3557,65418,0}, {3538,65409,0},{3532,65399,0},{3530,65389,0},{3523,65376,0},{3518,65371,0}, {3517,65366,0},{3512,65358,0},{3507,65339,0},{3508,65336,0},{3507,65329,0}, {3510,65321,0},{3508,65318,0},{3510,65316,0},{3508,65314,0},{3510,65311,0}, {3515,65294,0},{3510,65288,0},{3510,65281,0},{3510,65273,0},{3513,65261,0}, {3525,65248,0},{3523,65248,0},{3517,65254,0},{3512,65261,0},{3513,65249,0}, {3518,65244,0},{3525,65244,0},{3527,65246,0},{3537,65239,0},{3543,65241,0}, {3543,65239,0},{3528,65229,0},{3528,65226,0},{3528,65224,0},{3523,65218,0}, {3518,65203,0},{3523,65178,0},{3528,65169,0},{3527,65161,0},{3522,65159,0}, {3520,65154,0},{3522,65146,0},{3527,65144,0},{3523,65138,0},{3525,65134,0}, {3520,65123,0},{3518,65109,0},{3515,65101,0},{3522,65066,0},{3532,65044,0}, {3540,65036,0},{3542,65029,0},{3553,65019,0},{3558,65011,0},{3568,65009,0}, {3570,65004,0},{3583,65001,0},{3587,65003,0},{3590,65008,0},{3592,64994,0}, {3590,64988,0},{3585,64983,0},{3582,64976,0},{3583,64974,0},{3582,64964,0}, {3578,64959,0},{3580,64948,0},{3578,64944,0},{3548,64933,0},{3538,64928,0}, {3502,64913,0},{3483,64904,128},{3443,64881,0},{3430,64871,0},{3405,64856,0}, {3393,64843,0},{3387,64833,0},{3380,64814,0},{3372,64801,0},{3372,64796,0}, {3363,64783,0},{3360,64776,0},{3362,64769,0},{3355,64761,0},{3353,64751,0}, {3350,64744,0},{3343,64726,0},{3338,64706,0},{3328,64696,0},{3327,64691,0}, {3327,64684,0},{3318,64674,0},{3312,64673,0},{3287,64648,0},{3277,64634,0}, {3265,64621,0},{3255,64608,0},{3253,64608,0},{3247,64611,0},{3237,64606,0}, {3235,64608,0},{3232,64609,0},{3218,64608,0},{3212,64603,0},{3203,64599,0}, {3193,64589,0},{3170,64568,0},{3163,64568,0},{3152,64559,0},{3148,64558,0}, {3140,64551,0},{3138,64554,0},{3132,64556,0},{3112,64551,0},{3107,64554,0}, {3088,64554,0},{3085,64553,0},{3082,64554,0},{3068,64548,0},{3063,64548,0}, {3062,64556,0},{3055,64563,0},{3055,64566,0},{3043,64571,0},{3042,64574,0}, {3017,64573,0},{3008,64569,0},{2987,64556,0},{2958,64529,0},{2952,64528,0}, {2943,64523,0},{2940,64518,0},{2932,64513,0},{2923,64501,0},{2910,64493,0}, {2900,64479,0},{2873,64428,0},{2868,64426,0},{2850,64403,0},{2835,64391,0}, {2830,64384,0},{2813,64338,0},{2808,64329,0},{2798,64279,0},{2798,64264,0}, {2795,64246,0},{2792,64239,0},{2777,64233,0},{2770,64219,0},{2767,64218,0}, {2745,64211,0},{2732,64206,0},{2718,64196,0},{2710,64194,0},{2690,64188,0}, {2673,64179,0},{2663,64164,0},{2645,64134,0},{2642,64118,0},{2637,64113,0}, {2630,64108,0},{2627,64094,0},{2617,64088,0},{2602,64088,0},{2593,64084,0}, {2577,64073,0},{2558,64068,0},{2552,64064,0},{2543,64058,0},{2532,64053,0}, {2520,64051,0},{2492,64053,0},{2478,64048,0},{2468,64046,0},{2463,64038,0}, {2453,64033,0},{2448,64018,0},{2443,64013,0},{2433,64006,0},{2422,63991,0}, {2418,63989,0},{2415,63984,0},{2402,63974,0},{2397,63961,0},{2388,63951,0}, {2382,63944,0},{2370,63939,0},{2367,63936,0},{2365,63936,0},{2368,63941,0}, {2380,63948,0},{2383,63951,0},{2385,63956,0},{2392,63958,0},{2387,63959,0}, {2378,63959,0},{2373,63954,0},{2368,63953,0},{2363,63948,0},{2358,63944,0}, {2352,63939,0},{2342,63936,0},{2332,63928,0},{2318,63923,0},{2312,63916,0}, {2308,63914,0},{2307,63914,0},{2308,63918,0},{2307,63921,0},{2300,63921,0}, {2293,63916,0},{2290,63911,0},{2290,63908,0},{2288,63906,0},{2287,63904,0}, {2285,63908,0},{2277,63903,0},{2257,63901,0},{2252,63893,0},{2233,63888,0}, {2227,63874,0},{2230,63869,0},{2227,63864,0},{2222,63863,0},{2222,63861,0}, {2208,63851,0},{2202,63849,0},{2195,63844,0},{2182,63839,0},{2177,63839,0}, {2173,63841,0},{2167,63839,0},{2157,63839,0},{2143,63834,0},{2133,63833,0}, {2127,63833,0},{2120,63831,0},{2117,63833,0},{2110,63829,0},{2098,63829,0}, {2095,63826,0},{2090,63828,0},{2085,63826,0},{2077,63831,0},{2085,63834,0}, {2090,63831,0},{2092,63836,0},{2097,63836,0},{2102,63836,0},{2102,63834,0}, {2105,63834,0},{2107,63839,0},{2117,63843,0},{2115,63846,0},{2093,63856,0}, {2093,63858,0},{2077,63866,0},{2073,63869,0},{2070,63871,0},{2068,63868,0}, {2065,63873,0},{2057,63881,0},{2058,63883,0},{2073,63883,0},{2072,63886,0}, {2067,63888,0},{2067,63894,0},{2065,63889,0},{2063,63891,0},{2065,63893,0}, {2058,63894,0},{2058,63896,0},{2043,63903,0},{2042,63901,0},{2037,63904,0}, {2035,63906,0},{2033,63908,0},{2030,63909,0},{2028,63913,0},{2022,63916,0}, {2015,63913,0},{2013,63909,0},{2007,63914,0},{2000,63914,0},{1988,63904,0}, {1987,63906,0},{1990,63908,0},{1988,63911,0},{1985,63909,0},{1987,63913,0}, {1985,63913,0},{1983,63911,0},{1978,63913,0},{1975,63909,0},{1973,63909,0}, {1963,63903,0},{1953,63894,0},{1950,63893,0},{1945,63889,0},{1940,63889,0}, {1942,63893,0},{1947,63893,0},{1953,63899,0},{1953,63901,0},{1947,63898,0}, {1953,63904,0},{1952,63908,0},{1947,63904,0},{1940,63898,0},{1937,63891,0}, {1938,63884,0},{1938,63883,0},{1925,63889,0},{1920,63901,0},{1913,63908,0}, {1892,63918,0},{1867,63923,0},{1842,63931,0},{1837,63929,0},{1808,63933,0}, {1773,63933,0},{1737,63923,0},{1707,63911,0},{1697,63903,0},{1662,63889,0}, {1648,63889,0},{1630,63883,0},{1607,63883,0},{1590,63883,0},{1582,63881,0}, {1577,63883,0},{1555,63869,0},{1540,63858,0},{1522,63848,0},{1490,63819,0}, {1480,63798,0},{1475,63783,0},{1465,63791,0},{1467,63793,0},{1468,63793,0}, {1470,63794,0},{1472,63793,0},{1475,63798,0},{1468,63813,0},{1465,63818,0}, {1445,63829,0},{1442,63838,0},{1438,63841,0},{1430,63841,0},{1425,63846,0}, {1417,63849,0},{1413,63854,0},{1402,63858,0},{1395,63858,0},{1383,63858,0}, {1385,63859,0},{1397,63859,0},{1400,63863,0},{1402,63863,0},{1403,63864,0}, {1407,63864,0},{1407,63868,0},{1410,63869,0},{1407,63869,0},{1405,63866,0}, {1403,63866,0},{1402,63864,0},{1400,63869,0},{1400,63873,0},{1405,63876,0}, {1407,63879,0},{1415,63884,0},{1415,63889,0},{1418,63888,0},{1420,63891,0}, {1417,63891,0},{1415,63894,0},{1417,63899,0},{1415,63896,0},{1415,63893,0}, {1413,63891,0},{1412,63886,0},{1407,63881,0},{1403,63878,0},{1403,63879,0}, {1403,63881,0},{1402,63879,0},{1398,63879,0},{1400,63876,0},{1398,63874,0}, {1395,63873,0},{1398,63873,0},{1400,63868,0},{1398,63864,0},{1395,63861,0}, {1387,63863,0},{1385,63861,0},{1377,63866,0},{1380,63869,0},{1383,63871,0}, {1387,63881,0},{1400,63888,0},{1395,63888,0},{1388,63884,0},{1387,63886,0}, {1383,63886,0},{1380,63888,0},{1382,63884,0},{1385,63884,0},{1383,63881,0}, {1382,63881,0},{1383,63879,0},{1375,63873,0},{1370,63871,0},{1365,63876,0}, {1368,63881,0},{1375,63884,0},{1373,63886,0},{1370,63884,0},{1368,63884,0}, {1365,63879,0},{1363,63878,0},{1358,63879,0},{1353,63881,0},{1348,63879,0}, {1342,63886,0},{1335,63884,0},{1335,63889,0},{1333,63896,0},{1333,63904,0}, {1337,63904,0},{1337,63906,0},{1338,63904,0},{1338,63906,0},{1340,63908,0}, {1335,63908,0},{1335,63909,0},{1342,63913,0},{1345,63921,0},{1343,63928,0}, {1347,63949,0},{1345,63958,0},{1350,63969,0},{1348,63974,0},{1353,63981,0}, {1350,63986,0},{1350,63989,0},{1345,63999,0},{1345,64004,0},{1348,64006,0}, {1345,64006,0},{1343,64004,0},{1343,64001,0},{1345,63994,0},{1350,63989,0}, {1350,63984,0},{1350,63981,0},{1345,63974,0},{1347,63969,0},{1343,63959,0}, {1343,63949,0},{1342,63946,0},{1340,63931,0},{1342,63919,0},{1340,63918,0}, {1337,63914,0},{1335,63914,0},{1330,63916,0},{1327,63916,0},{1328,63921,0}, {1327,63919,0},{1325,63914,0},{1327,63914,0},{1330,63913,0},{1332,63911,0}, {1325,63899,0},{1328,63898,0},{1327,63893,0},{1327,63894,0},{1322,63898,0}, {1320,63894,0},{1325,63894,0},{1327,63889,0},{1328,63889,0},{1328,63881,0}, {1333,63878,0},{1343,63874,0},{1343,63878,0},{1347,63878,0},{1348,63873,0}, {1347,63869,0},{1348,63868,0},{1345,63863,0},{1342,63861,0},{1337,63854,0}, {1335,63854,0},{1333,63853,0},{1327,63854,0},{1323,63856,0},{1317,63856,0}, {1312,63859,0},{1307,63858,0},{1307,63861,0},{1303,63861,0},{1305,63861,128}, {1288,63859,0},{1282,63856,0},{1278,63856,0},{1282,63858,0},{1278,63859,0}, {1275,63858,0},{1272,63856,0},{1272,63859,0},{1275,63863,0},{1273,63866,0}, {1272,63861,0},{1268,63858,0},{1258,63858,0},{1257,63861,0},{1263,63871,0}, {1272,63871,0},{1273,63874,0},{1278,63876,0},{1273,63876,0},{1270,63873,0}, {1267,63873,0},{1267,63876,0},{1268,63879,0},{1267,63879,0},{1265,63881,0}, {1262,63884,0},{1267,63886,0},{1270,63886,0},{1267,63888,0},{1267,63889,0}, {1265,63888,0},{1263,63888,0},{1258,63894,0},{1257,63898,0},{1257,63899,0}, {1260,63901,0},{1262,63904,0},{1260,63908,0},{1262,63913,0},{1262,63921,0}, {1263,63923,0},{1263,63929,0},{1267,63931,0},{1268,63931,0},{1273,63934,0}, {1268,63934,0},{1260,63944,0},{1262,63951,0},{1258,63953,0},{1260,63954,0}, {1262,63956,0},{1262,63959,0},{1260,63963,0},{1262,63966,0},{1260,63969,0}, {1257,63969,0},{1255,63971,0},{1257,63973,0},{1265,63983,0},{1273,63979,0}, {1280,63983,0},{1282,63984,0},{1280,63984,0},{1280,63986,0},{1283,63991,0}, {1282,63994,0},{1283,63998,0},{1280,63996,0},{1282,63991,0},{1278,63989,0}, {1278,63983,0},{1272,63983,0},{1263,63986,0},{1260,63981,0},{1257,63979,0}, {1253,63973,0},{1253,63968,0},{1258,63968,0},{1258,63963,0},{1258,63958,0}, {1255,63954,0},{1255,63953,0},{1258,63949,0},{1258,63943,0},{1263,63934,0}, {1258,63916,0},{1260,63914,0},{1258,63911,0},{1260,63906,0},{1255,63899,0}, {1260,63886,0},{1258,63883,0},{1255,63883,0},{1257,63881,0},{1262,63881,0}, {1263,63878,0},{1255,63868,0},{1255,63866,0},{1253,63861,0},{1248,63856,0}, {1243,63856,0},{1237,63861,0},{1232,63864,0},{1233,63868,0},{1232,63871,0}, {1227,63876,0},{1227,63881,0},{1222,63886,0},{1218,63886,0},{1217,63891,0}, {1218,63894,0},{1220,63896,0},{1218,63899,0},{1220,63903,0},{1223,63903,0}, {1228,63904,0},{1225,63904,0},{1223,63903,0},{1222,63904,0},{1228,63914,0}, {1230,63921,0},{1233,63924,0},{1235,63929,0},{1233,63924,0},{1228,63923,0}, {1228,63918,0},{1222,63909,0},{1217,63909,0},{1217,63908,0},{1220,63908,0}, {1217,63903,0},{1210,63899,0},{1200,63903,0},{1198,63908,0},{1193,63911,0}, {1190,63916,0},{1190,63921,0},{1188,63923,0},{1192,63928,0},{1192,63939,0}, {1195,63943,0},{1198,63941,0},{1197,63943,0},{1198,63943,0},{1200,63949,0}, {1203,63949,0},{1202,63953,0},{1202,63958,0},{1198,63961,0},{1202,63966,0}, {1197,63963,0},{1200,63956,0},{1197,63949,0},{1188,63943,0},{1178,63939,0}, {1173,63939,0},{1177,63946,0},{1180,63946,0},{1182,63948,0},{1182,63949,0}, {1177,63948,0},{1177,63951,0},{1188,63956,0},{1187,63963,0},{1187,63958,0}, {1187,63956,0},{1175,63954,0},{1178,63961,0},{1180,63971,0},{1183,63976,0}, {1193,63986,0},{1193,63991,0},{1197,63993,0},{1197,64001,0},{1192,64004,0}, {1190,64016,0},{1192,64019,0},{1197,64023,0},{1198,64028,0},{1197,64036,0}, {1195,64038,0},{1195,64033,0},{1183,64029,0},{1182,64031,0},{1180,64036,0}, {1175,64041,0},{1177,64044,0},{1175,64043,0},{1175,64038,0},{1178,64034,0}, {1180,64029,0},{1185,64028,0},{1192,64029,0},{1193,64029,0},{1190,64023,0}, {1187,64016,0},{1187,64004,0},{1188,63998,0},{1188,63994,0},{1187,63993,0}, {1188,63993,0},{1187,63989,0},{1183,63991,0},{1178,63983,0},{1172,63981,0}, {1168,63981,0},{1167,63983,0},{1168,63984,0},{1170,63984,0},{1170,63988,0}, {1165,63988,0},{1165,63991,0},{1168,63994,0},{1167,63994,0},{1160,63989,0}, {1155,63991,0},{1157,63993,0},{1160,63994,0},{1158,63996,0},{1158,63998,0}, {1160,63998,0},{1158,63999,0},{1163,63996,0},{1165,63998,0},{1160,64001,0}, {1165,64001,0},{1167,64003,0},{1168,64001,0},{1168,64003,0},{1163,64004,0}, {1167,64004,0},{1165,64006,0},{1167,64008,0},{1168,64004,0},{1170,64004,0}, {1170,64008,0},{1175,64009,0},{1170,64009,0},{1168,64009,0},{1167,64009,0}, {1170,64011,0},{1173,64011,0},{1173,64013,0},{1175,64014,0},{1175,64016,0}, {1172,64018,0},{1172,64014,0},{1170,64014,0},{1168,64016,0},{1168,64013,0}, {1165,64013,0},{1168,64014,0},{1165,64016,0},{1167,64018,0},{1170,64019,0}, {1170,64023,0},{1168,64023,0},{1167,64019,0},{1165,64019,0},{1165,64023,0}, {1168,64024,0},{1165,64024,0},{1163,64024,0},{1163,64026,0},{1162,64026,0}, {1165,64029,0},{1162,64029,0},{1160,64028,0},{1158,64029,0},{1160,64033,0}, {1162,64034,0},{1158,64034,0},{1157,64033,0},{1157,64026,0},{1153,64024,0}, {1157,64023,0},{1158,64021,0},{1158,64026,0},{1162,64024,0},{1162,64023,0}, {1160,64024,0},{1160,64023,0},{1162,64021,0},{1163,64018,0},{1162,64014,0}, {1160,64016,0},{1157,64016,0},{1158,64013,0},{1162,64013,0},{1162,64008,0}, {1157,64011,0},{1157,64009,0},{1160,64006,0},{1158,64003,0},{1157,64003,0}, {1157,64008,0},{1153,64006,0},{1153,64004,0},{1155,64004,0},{1157,64001,0}, {1152,64001,0},{1153,63999,0},{1153,63996,0},{1150,63996,0},{1148,63996,0}, {1150,63994,0},{1148,63993,0},{1150,63993,0},{1148,63989,0},{1145,63989,0}, {1145,63991,0},{1143,63988,0},{1133,63986,128},{1135,63991,0},{1147,64001,0}, {1145,64003,0},{1143,64001,0},{1138,64001,0},{1138,64003,0},{1143,64009,0}, {1140,64008,0},{1137,64003,0},{1137,63998,0},{1130,63993,0},{1127,63996,0}, {1118,63996,0},{1117,63999,0},{1113,64001,0},{1112,64011,0},{1113,64014,0}, {1122,64013,0},{1123,64013,0},{1123,64016,0},{1122,64014,0},{1117,64016,0}, {1108,64014,0},{1103,64009,0},{1100,64013,0},{1100,64016,0},{1107,64019,0}, {1110,64023,0},{1112,64024,0},{1113,64026,0},{1113,64028,0},{1117,64028,0}, {1117,64031,0},{1123,64034,0},{1118,64036,0},{1117,64034,0},{1113,64036,0}, {1113,64033,0},{1112,64033,0},{1110,64029,0},{1107,64028,0},{1107,64026,0}, {1097,64024,0},{1097,64028,0},{1097,64029,0},{1100,64031,0},{1098,64031,0}, {1095,64029,0},{1095,64026,0},{1092,64028,0},{1093,64031,0},{1097,64034,0}, {1095,64034,0},{1092,64033,0},{1090,64029,0},{1085,64028,0},{1078,64033,0}, {1077,64038,0},{1077,64041,0},{1080,64041,0},{1083,64038,0},{1083,64039,0}, {1087,64038,0},{1087,64041,0},{1092,64046,0},{1093,64044,0},{1098,64041,0}, {1097,64044,0},{1097,64046,0},{1100,64046,0},{1103,64044,0},{1103,64048,0}, {1097,64048,0},{1097,64049,0},{1102,64056,0},{1100,64056,0},{1098,64056,0}, {1098,64061,0},{1100,64063,0},{1102,64063,0},{1103,64066,0},{1105,64068,0}, {1103,64069,0},{1100,64064,0},{1097,64063,0},{1093,64054,0},{1090,64054,0}, {1090,64056,0},{1088,64054,0},{1083,64054,0},{1083,64059,0},{1087,64063,0}, {1083,64063,0},{1078,64059,0},{1075,64056,0},{1070,64061,0},{1077,64064,0}, {1078,64068,0},{1082,64069,0},{1082,64073,0},{1075,64066,0},{1070,64064,0}, {1068,64068,0},{1067,64066,0},{1063,64066,0},{1068,64073,0},{1080,64078,0}, {1085,64084,0},{1088,64083,0},{1088,64086,0},{1083,64086,0},{1077,64079,0}, {1073,64079,0},{1070,64076,0},{1070,64074,0},{1062,64073,0},{1060,64076,0}, {1057,64073,0},{1057,64071,0},{1048,64069,0},{1048,64079,0},{1050,64083,0}, {1047,64081,0},{1042,64081,0},{1035,64086,0},{1033,64089,0},{1030,64091,0}, {1025,64089,0},{1020,64091,0},{1023,64093,0},{1023,64098,0},{1020,64103,0}, {1015,64109,0},{1018,64111,0},{1015,64111,0},{1010,64114,0},{1012,64118,0}, {1015,64118,0},{1017,64121,0},{1018,64123,0},{1017,64123,0},{1015,64123,0}, {1013,64119,0},{1010,64118,0},{1008,64118,0},{1005,64123,0},{1007,64128,0}, {1013,64128,0},{1020,64136,0},{1012,64129,0},{1010,64131,0},{1012,64134,0}, {1008,64136,0},{1010,64134,0},{1008,64131,0},{1003,64129,0},{1000,64133,0}, {1000,64134,0},{997,64138,0},{997,64141,0},{995,64143,0},{985,64153,0}, {985,64158,0},{985,64159,0},{987,64163,0},{992,64166,0},{995,64168,0},{990,64168,0}, {983,64163,0},{978,64161,0},{977,64161,0},{973,64166,0},{977,64171,0},{980,64171,0}, {983,64169,0},{985,64171,0},{980,64174,0},{978,64174,0},{978,64179,0},{973,64174,0}, {963,64173,0},{957,64169,0},{950,64164,0},{957,64178,0},{953,64178,0},{950,64183,0}, {957,64188,0},{950,64184,0},{947,64184,0},{942,64186,0},{942,64194,0},{943,64196,0}, {937,64193,0},{932,64196,0},{928,64194,0},{928,64196,0},{928,64199,0},{933,64201,0}, {935,64206,0},{932,64206,0},{932,64204,0},{932,64203,0},{927,64204,0},{925,64206,0}, {920,64206,0},{918,64204,0},{917,64208,0},{918,64208,0},{923,64209,0},{927,64213,0}, {918,64211,0},{918,64221,0},{917,64218,0},{917,64214,0},{913,64209,0},{908,64206,0}, {907,64203,0},{903,64206,0},{895,64208,0},{897,64213,0},{892,64216,0},{893,64228,0}, {893,64229,0},{892,64224,0},{888,64219,0},{887,64223,0},{887,64234,0},{885,64238,0}, {883,64219,0},{887,64216,0},{885,64214,0},{882,64213,0},{867,64213,0},{852,64221,0}, {852,64223,0},{857,64223,0},{858,64226,0},{860,64226,0},{862,64223,0},{863,64223,0}, {865,64219,0},{867,64221,0},{865,64221,0},{862,64228,0},{862,64229,0},{867,64231,0}, {865,64233,0},{862,64231,0},{860,64228,0},{858,64231,0},{860,64234,0},{860,64243,0}, {868,64248,0},{858,64244,0},{858,64243,0},{857,64249,0},{855,64246,0},{855,64234,0}, {852,64233,0},{852,64231,0},{850,64231,0},{848,64226,0},{845,64223,0},{843,64223,0}, {842,64226,0},{842,64231,0},{840,64229,0},{838,64233,0},{837,64231,0},{837,64229,0}, {840,64226,0},{842,64223,0},{850,64216,0},{850,64208,0},{845,64209,0},{842,64208,0}, {842,64209,0},{835,64214,0},{833,64216,0},{827,64219,0},{822,64221,0},{817,64219,0}, {823,64229,0},{823,64236,0},{825,64238,0},{818,64238,0},{817,64241,0},{815,64243,0}, {810,64244,0},{810,64248,0},{805,64246,0},{802,64246,0},{797,64248,0},{792,64254,0}, {793,64248,0},{792,64244,0},{790,64239,0},{787,64244,0},{787,64246,0},{782,64249,0}, {780,64253,0},{780,64254,0},{782,64258,0},{782,64259,0},{780,64256,0},{775,64258,0}, {770,64266,0},{770,64274,0},{768,64276,0},{770,64281,0},{773,64286,0},{778,64288,0}, {778,64289,0},{777,64291,0},{777,64289,0},{772,64289,0},{770,64284,0},{765,64283,0}, {762,64284,0},{763,64284,0},{765,64288,0},{762,64286,0},{755,64289,0},{757,64306,0}, {758,64309,0},{762,64311,0},{760,64318,0},{757,64316,0},{757,64313,0},{755,64313,0}, {755,64309,0},{753,64306,0},{753,64303,0},{753,64293,0},{745,64286,0},{743,64289,0}, {743,64294,0},{738,64299,0},{742,64293,0},{740,64288,0},{738,64286,0},{715,64353,0}, {702,64371,0},{698,64374,0},{698,64379,0},{697,64378,0},{695,64379,0},{692,64388,0}, {693,64386,128},{683,64398,0},{680,64399,0},{675,64398,0},{670,64399,0}, {660,64428,0},{650,64446,0},{643,64453,0},{638,64456,0},{640,64461,0},{637,64456,0}, {633,64456,0},{630,64459,0},{632,64456,0},{632,64454,0},{627,64459,0},{622,64471,0}, {617,64491,0},{613,64498,0},{615,64498,0},{620,64489,0},{620,64493,0},{617,64498,0}, {613,64499,0},{613,64503,0},{612,64503,0},{612,64499,0},{610,64499,0},{607,64511,0}, {598,64519,0},{592,64529,0},{590,64531,0},{585,64531,0},{570,64549,0},{560,64558,0}, {548,64576,0},{545,64578,0},{543,64576,0},{542,64583,0},{538,64586,0},{530,64591,0}, {527,64594,0},{517,64608,0},{515,64608,0},{513,64609,0},{505,64624,0},{502,64626,0}, {500,64634,0},{498,64634,0},{492,64651,0},{485,64658,0},{475,64683,0},{467,64693,0}, {463,64703,0},{457,64711,0},{455,64726,0},{450,64741,0},{445,64753,0},{442,64754,0}, {438,64763,0},{435,64764,0},{435,64773,0},{435,64776,0},{435,64783,0},{435,64793,0}, {445,64806,0},{447,64811,0},{452,64816,0},{452,64823,0},{453,64831,0},{462,64843,0}, {467,64846,0},{468,64863,0},{472,64874,0},{477,64879,0},{478,64891,0},{482,64896,0}, {487,64914,0},{493,64928,0},{495,64929,0},{497,64936,0},{502,64948,0},{507,64976,0}, {508,64981,0},{510,64979,0},{512,64981,0},{508,64984,0},{513,65036,0},{513,65034,0}, {518,65033,0},{518,65031,0},{518,65028,0},{517,65026,0},{520,65018,0},{520,65013,0}, {518,65016,0},{517,65016,0},{517,65018,0},{515,65018,0},{517,65008,0},{515,65006,0}, {515,65003,0},{513,65008,0},{512,65008,0},{512,64999,0},{513,64998,0},{515,64994,0}, {517,64996,0},{513,65001,0},{518,65003,0},{515,65003,0},{517,65006,0},{520,65006,0}, {520,65003,0},{523,65004,0},{520,65011,0},{522,65013,0},{522,65021,0},{518,65024,0}, {522,65033,0},{522,65036,0},{515,65034,0},{515,65039,0},{513,65038,0},{513,65041,0}, {515,65061,0},{518,65073,0},{520,65116,0},{523,65136,0},{527,65129,0},{527,65133,0}, {528,65131,0},{527,65116,0},{525,65114,0},{523,65106,0},{525,65098,0},{522,65096,0}, {522,65091,0},{523,65083,0},{522,65079,0},{520,65079,0},{520,65083,0},{518,65079,0}, {522,65076,0},{520,65069,0},{520,65068,0},{522,65066,0},{520,65063,0},{517,65061,0}, {517,65056,0},{518,65054,0},{522,65056,0},{523,65063,0},{525,65063,0},{527,65061,0}, {527,65066,0},{532,65069,0},{527,65068,0},{525,65069,0},{525,65064,0},{523,65066,0}, {523,65068,0},{525,65073,0},{523,65074,0},{527,65079,0},{530,65079,0},{527,65081,0}, {525,65084,0},{525,65091,0},{527,65091,0},{528,65088,0},{530,65089,0},{530,65094,0}, {527,65094,0},{530,65098,0},{527,65101,0},{532,65104,0},{530,65106,0},{532,65108,0}, {530,65111,0},{528,65111,0},{528,65113,0},{530,65116,0},{528,65118,0},{530,65123,0}, {528,65128,0},{530,65129,0},{527,65138,0},{528,65141,0},{530,65141,0},{530,65136,0}, {532,65134,0},{532,65144,0},{535,65146,0},{532,65146,0},{532,65148,0},{530,65148,0}, {528,65153,0},{530,65154,0},{527,65156,0},{527,65161,0},{528,65163,0},{537,65154,0}, {538,65156,0},{537,65159,0},{535,65161,0},{532,65161,0},{528,65164,0},{527,65163,0}, {525,65158,0},{523,65159,0},{527,65154,0},{527,65151,0},{528,65148,0},{528,65146,0}, {527,65148,0},{525,65146,0},{528,65143,0},{525,65139,0},{525,65136,0},{523,65138,0}, {520,65154,0},{518,65161,0},{523,65163,0},{520,65164,0},{518,65164,0},{518,65166,0}, {512,65204,0},{512,65208,0},{515,65208,0},{515,65206,0},{518,65206,0},{518,65204,0}, {520,65204,0},{520,65206,0},{522,65209,0},{523,65211,0},{525,65208,0},{528,65208,0}, {530,65213,0},{533,65211,0},{535,65213,0},{537,65221,0},{535,65223,0},{533,65224,0}, {530,65219,0},{525,65219,0},{523,65216,0},{520,65216,0},{515,65223,0},{513,65231,0}, {512,65239,0},{513,65243,0},{517,65241,0},{518,65248,0},{518,65249,0},{517,65251,0}, {513,65253,0},{512,65243,0},{510,65243,0},{508,65239,0},{510,65236,0},{510,65223,0}, {512,65221,0},{515,65213,0},{513,65209,0},{512,65209,0},{508,65226,0},{502,65251,0}, {500,65268,0},{497,65278,0},{492,65303,0},{488,65309,0},{485,65313,0},{480,65319,0}, {478,65321,0},{477,65326,0},{475,65326,0},{473,65328,0},{475,65334,0},{475,65339,0}, {482,65346,0},{485,65353,0},{487,65354,0},{487,65361,0},{492,65363,0},{495,65366,0}, {497,65373,0},{498,65374,0},{500,65373,0},{502,65374,0},{503,65388,0},{507,65393,0}, {508,65404,0},{508,65409,0},{512,65418,0},{520,65429,0},{520,65434,0},{522,65436,0}, {520,65438,0},{522,65446,0},{520,65446,0},{520,65456,0},{530,65466,0},{533,65473,0}, {532,65473,0},{535,65478,0},{537,65486,0},{548,65498,0},{558,65529,0},{562,0,0}, {563,3,0},{567,7,0},{572,13,0},{578,32,0},{575,67,0},{577,65,0},{578,65,0}, {582,63,0},{588,65,0},{595,62,0},{598,57,0},{600,53,0},{603,50,0},{607,43,0}, {607,42,0},{602,38,0},{603,32,0},{608,27,0},{608,20,0},{610,22,0},{610,27,0}, {605,32,0},{605,37,0},{608,42,0},{605,52,0},{595,63,0},{588,65,0},{583,65,0}, {577,70,0},{577,68,0},{575,70,0},{577,92,0},{580,97,0},{583,100,0},{588,100,0}, {597,103,0},{603,108,0},{610,120,0},{613,130,0},{622,165,0},{622,163,128}, {627,187,0},{637,273,0},{637,272,128},{638,293,0},{638,310,0},{640,323,0}, {638,338,0},{642,340,0},{642,338,0},{645,337,0},{650,340,0},{655,340,0}, {655,343,0},{660,347,0},{658,348,0},{653,348,0},{652,352,0},{655,358,0}, {655,363,0},{660,372,0},{662,377,0},{662,385,0},{660,385,0},{658,377,0}, {653,375,0},{653,372,0},{650,357,0},{647,357,0},{645,353,0},{645,347,0}, {642,343,0},{643,343,0},{645,343,0},{645,342,0},{645,340,0},{645,338,0}, {642,342,0},{643,380,0},{642,408,0},{637,440,0},{630,453,0},{625,458,0}, {613,475,0},{605,482,0},{597,492,0},{585,502,0},{575,505,0},{580,510,0}, {587,520,0},{587,523,0},{590,527,0},{590,528,0},{585,525,0},{585,520,0}, {582,515,0},{577,515,0},{580,512,0},{577,510,0},{570,508,0},{560,515,0}, {557,518,0},{560,523,0},{562,528,0},{572,533,0},{570,535,0},{563,532,0}, {562,532,0},{560,538,0},{562,540,0},{563,542,0},{565,545,0},{562,550,0}, {558,552,0},{563,543,0},{555,538,0},{558,530,0},{558,522,0},{555,518,0}, {550,520,0},{543,525,0},{538,538,0},{540,543,0},{540,542,0},{543,542,0}, {543,545,0},{540,545,0},{540,548,0},{543,550,0},{548,552,0},{552,555,0}, {552,560,0},{553,563,0},{550,562,0},{550,555,0},{548,553,0},{540,555,0}, {538,558,0},{538,550,0},{533,547,0},{537,545,0},{537,542,0},{535,533,0}, {530,535,0},{515,537,0},{515,543,0},{518,545,0},{515,550,0},{515,545,0}, {508,547,0},{513,543,0},{513,538,0},{512,538,0},{502,543,0},{490,547,0}, {483,552,0},{485,547,0},{475,553,0},{473,557,0},{472,558,0},{472,557,0}, {472,555,0},{463,560,0},{448,573,0},{447,580,0},{445,578,0},{442,585,0}, {443,585,0},{443,587,0},{440,585,0},{438,587,0},{433,597,0},{435,597,0}, {438,595,0},{438,597,0},{438,598,0},{442,598,0},{438,600,0},{435,600,0}, {433,598,0},{432,600,0},{430,603,0},{428,605,0},{432,607,0},{435,605,0}, {442,605,0},{442,608,0},{437,608,0},{437,610,0},{433,608,0},{428,608,0}, {427,610,0},{428,623,0},{430,622,0},{430,620,0},{432,620,0},{433,622,0}, {438,623,0},{443,620,0},{443,623,0},{440,625,0},{443,625,0},{450,623,0}, {445,627,0},{438,627,0},{442,630,0},{443,630,0},{443,633,0},{437,627,0}, {432,625,0},{430,625,0},{432,642,0},{433,640,0},{435,643,0},{432,647,0}, {433,658,0},{437,657,0},{447,658,0},{450,655,0},{447,660,0},{438,660,0}, {433,662,0},{433,670,0},{440,668,0},{442,667,0},{450,665,0},{453,668,0}, {450,668,0},{442,670,0},{452,670,0},{460,673,0},{457,675,0},{448,672,0}, {435,672,0},{433,673,0},{435,687,0},{440,683,0},{453,680,0},{457,680,0}, {460,682,0},{467,677,0},{477,675,0},{478,672,0},{483,672,0},{482,673,0}, {483,675,0},{480,677,0},{480,678,0},{475,677,0},{467,678,0},{460,685,0}, {457,682,0},{455,682,0},{445,685,0},{445,687,0},{438,687,0},{438,692,0}, {437,697,0},{438,697,0},{437,700,0},{438,702,0},{448,698,0},{458,698,0}, {460,695,0},{457,693,0},{458,692,0},{460,693,0},{468,690,0},{462,695,0}, {460,698,0},{468,697,0},{472,697,0},{468,698,0},{472,700,0},{465,703,0}, {458,702,0},{458,700,0},{443,705,0},{443,708,0},{448,705,0},{450,708,0}, {447,708,0},{445,710,0},{447,712,0},{447,717,0},{452,718,0},{453,718,0}, {455,715,0},{457,718,0},{460,717,0},{463,715,0},{467,708,0},{472,708,0}, {472,705,0},{475,707,0},{468,710,0},{465,715,0},{467,718,0},{462,718,0}, {450,728,0},{450,733,0},{453,733,0},{453,730,0},{455,727,0},{457,727,0}, {460,728,0},{460,732,0},{455,742,0},{455,745,0},{457,747,0},{457,750,0}, {460,753,0},{463,752,0},{468,752,0},{470,755,0},{467,753,0},{463,753,0}, {457,755,0},{453,753,0},{453,757,0},{452,767,0},{450,767,0},{450,775,0}, {452,773,0},{453,798,0},{455,803,0},{455,830,0},{460,832,0},{460,833,0}, {463,837,0},{467,832,0},{472,833,0},{475,832,0},{482,827,0},{485,827,0}, {492,825,0},{497,818,0},{498,818,0},{493,823,0},{490,825,0},{487,832,0}, {483,832,0},{483,833,0},{480,835,0},{478,838,0},{480,840,0},{485,842,0}, {482,843,0},{475,840,0},{473,845,0},{475,848,0},{470,848,0},{470,853,0}, {478,853,0},{482,857,0},{482,860,0},{480,858,0},{482,860,128},{478,858,0}, {475,858,0},{473,857,0},{470,858,0},{467,853,0},{463,852,0},{460,852,0}, {460,855,0},{457,853,0},{457,850,0},{453,850,0},{450,853,0},{453,857,0}, {453,858,0},{450,857,0},{448,858,0},{450,862,0},{450,870,0},{452,872,0}, {455,868,0},{458,867,0},{465,867,0},{470,863,0},{473,865,0},{468,867,0}, {467,868,0},{457,873,0},{453,878,0},{457,882,0},{460,880,0},{457,883,0}, {453,887,0},{455,888,0},{457,887,0},{458,887,0},{462,883,0},{463,883,0}, {458,890,0},{452,890,0},{452,892,0},{455,893,0},{453,893,0},{450,890,0}, {443,890,0},{430,892,0},{425,895,0},{422,898,0},{410,897,0},{405,908,0}, {402,912,0},{402,920,0},{397,922,0},{395,925,0},{398,927,0},{403,930,0}, {403,933,0},{402,932,0},{398,930,0},{393,932,0},{390,935,0},{390,943,0}, {392,947,0},{393,945,0},{398,947,0},{400,942,0},{402,942,0},{400,948,0}, {397,950,0},{398,953,0},{402,952,0},{403,948,0},{407,948,0},{407,945,0}, {412,948,0},{412,950,0},{407,950,0},{403,953,0},{403,955,0},{402,957,0}, {402,958,0},{403,963,0},{412,968,0},{412,970,0},{410,970,0},{412,972,0}, {413,975,0},{412,975,0},{407,970,0},{402,967,0},{402,965,0},{395,962,0}, {393,963,0},{395,977,0},{393,977,0},{392,970,0},{390,968,0},{387,970,0}, {387,975,0},{382,975,0},{385,970,0},{383,968,0},{383,967,0},{387,962,0}, {385,960,0},{382,960,0},{377,960,0},{375,965,0},{375,960,0},{378,958,0}, {382,955,0},{365,963,0},{363,963,0},{362,962,0},{360,963,0},{360,970,0}, {363,978,0},{362,982,0},{362,975,0},{357,970,0},{353,965,0},{348,972,0}, {340,982,0},{327,988,0},{327,993,0},{325,990,0},{308,997,0},{302,995,0}, {298,992,0},{295,990,0},{283,987,0},{282,988,0},{275,987,0},{255,982,0}, {235,982,0},{232,977,0},{213,978,0},{210,977,0},{192,982,0},{185,975,0}, {182,975,0},{177,972,0},{167,962,0},{163,962,0},{158,965,0},{158,970,0}, {160,973,0},{157,970,0},{157,965,0},{158,962,0},{157,960,0},{150,957,0}, {138,945,0},{133,945,0},{127,940,0},{118,937,0},{118,935,0},{115,937,0}, {110,940,0},{113,948,0},{112,955,0},{103,958,0},{107,965,0},{112,968,0}, {113,972,0},{110,970,0},{110,978,0},{108,982,0},{108,985,0},{105,978,0}, {100,980,0},{97,980,0},{103,977,0},{105,973,0},{105,967,0},{102,965,0}, {102,962,0},{102,960,0},{98,957,0},{95,957,0},{93,958,0},{85,960,0},{82,962,0}, {78,963,0},{63,962,0},{60,963,0},{55,963,0},{52,960,0},{47,960,0},{48,958,0}, {60,958,0},{57,957,0},{57,955,0},{58,955,0},{60,952,0},{60,947,0},{62,950,0}, {62,957,0},{65,957,0},{67,953,0},{65,945,0},{65,942,0},{63,937,0},{62,932,0}, {53,930,0},{53,935,0},{48,940,0},{28,950,0},{30,952,0},{30,955,0},{32,957,0}, {28,958,0},{22,968,0},{22,972,0},{18,978,0},{18,985,0},{22,993,0},{18,998,0}, {18,1003,0},{17,997,0},{18,992,0},{15,985,0},{12,982,0},{13,980,0},{13,977,0}, {10,977,0},{2,982,0},{3,978,0},{10,975,0},{13,972,0},{13,967,0},{15,963,0}, {13,960,0},{12,958,0},{13,958,0},{17,957,0},{18,950,0},{17,948,0},{10,950,0}, {10,947,0},{13,947,0},{17,947,0},{18,943,0},{20,942,0},{20,938,0},{18,937,0}, {18,935,0},{22,938,0},{25,937,0},{28,938,0},{33,937,0},{37,935,0},{32,930,0}, {18,932,0},{2,935,0},{65533,933,0},{65524,935,0},{65514,930,0},{65501,930,0}, {65484,918,0},{65476,910,0},{65473,908,0},{65471,912,0},{65468,912,0},{65469,910,0}, {65469,908,0},{65468,908,0},{65464,905,0},{65463,905,0},{65458,902,0},{65451,902,0}, {65448,900,0},{65456,900,0},{65461,897,0},{65468,893,0},{65468,890,0},{65466,888,0}, {65463,892,0},{65464,887,0},{65458,885,0},{65456,885,0},{65459,883,0},{65461,880,0}, {65464,880,0},{65473,878,0},{65473,875,0},{65476,875,0},{65474,872,0},{65479,872,0}, {65476,870,0},{65473,872,0},{65464,875,0},{65454,878,0},{65448,883,0},{65443,883,0}, {65444,887,0},{65439,887,0},{65439,893,0},{65436,890,0},{65436,892,0},{65434,892,0}, {65438,887,0},{65424,897,0},{65414,900,0},{65418,902,0},{65419,900,0},{65418,903,0}, {65414,903,0},{65413,902,0},{65409,902,0},{65406,903,0},{65399,912,0},{65403,915,0}, {65401,917,0},{65398,915,0},{65394,918,0},{65396,920,0},{65394,923,0},{65399,927,0}, {65398,930,0},{65399,933,0},{65401,933,0},{65408,932,0},{65406,933,0},{65403,935,0}, {65396,933,0},{65394,928,0},{65393,930,0},{65389,928,0},{65389,925,0},{65386,925,0}, {65384,928,0},{65379,928,0},{65378,932,0},{65379,940,0},{65384,943,0},{65388,943,0}, {65389,945,0},{65388,948,0},{65381,948,0},{65378,950,0},{65374,957,0},{65376,942,0}, {65371,942,0},{65369,942,0},{65371,938,0},{65374,940,0},{65373,932,0},{65371,932,0}, {65373,928,0},{65369,930,0},{65368,928,0},{65371,927,0},{65374,927,0},{65383,927,0}, {65386,920,0},{65389,915,0},{65396,912,0},{65398,908,0},{65401,908,0},{65404,902,0}, {65413,898,0},{65403,903,0},{65376,922,0},{65363,925,0},{65358,925,0},{65351,925,0}, {65353,928,0},{65351,932,0},{65349,930,0},{65348,933,0},{65354,937,0},{65353,940,0}, {65348,943,0},{65351,943,0},{65349,945,0},{65351,947,0},{65349,948,0},{65343,952,0}, {65341,950,0},{65339,950,0},{65336,955,0},{65333,957,0},{65331,957,0},{65329,953,0}, {65333,950,0},{65336,950,0},{65338,947,0},{65341,948,0},{65344,947,0},{65344,945,0}, {65344,938,0},{65343,938,0},{65344,938,0},{65348,937,0},{65344,937,0},{65344,935,0}, {65346,935,0},{65346,932,0},{65349,928,0},{65349,927,0},{65341,935,0},{65334,938,0}, {65334,940,0},{65329,942,0},{65314,957,0},{65303,958,0},{65298,962,0},{65293,967,0}, {65298,963,0},{65298,965,0},{65293,970,0},{65294,972,0},{65298,970,0},{65298,973,0}, {65296,972,0},{65294,975,0},{65293,972,0},{65288,977,0},{65293,982,0},{65294,988,0}, {65288,992,0},{65286,998,0},{65286,997,0},{65286,995,0},{65281,997,0},{65279,998,0}, {65281,1000,0},{65286,1002,0},{65284,1005,0},{65279,1008,0},{65279,1010,0}, {65286,1008,0},{65284,1010,0},{65284,1013,0},{65281,1013,0},{65279,1017,0}, {65278,1015,0},{65278,1005,0},{65274,1003,0},{65273,1002,0},{65274,1000,0}, {65273,997,0},{65278,997,0},{65276,993,0},{65278,993,0},{65281,993,0},{65283,990,0}, {65281,985,0},{65286,985,0},{65286,983,0},{65289,983,0},{65286,982,0},{65284,978,0}, {65291,970,0},{65276,985,0},{65271,988,0},{65248,1017,0},{65244,1023,0}, {65219,1048,0},{65213,1053,0},{65204,1063,0},{65201,1065,0},{65196,1063,0}, {65194,1065,0},{65183,1080,0},{65171,1093,0},{65166,1098,0},{65161,1098,0}, {65151,1103,0},{65141,1117,0},{65126,1135,0},{65119,1137,0},{65116,1138,0}, {65083,1177,0},{65076,1180,0},{65071,1175,0},{65063,1183,0},{65059,1182,0}, {65061,1180,0},{65058,1180,0},{65051,1188,0},{65034,1202,0},{65034,1208,0}, {65038,1210,0},{65036,1212,0},{65031,1208,0},{65033,1205,0},{65033,1202,0}, {65019,1210,0},{64991,1220,0},{64984,1220,0},{64983,1215,0},{64974,1212,0}, {64968,1213,0},{64958,1220,0},{64951,1225,0},{64939,1237,0},{64936,1238,0}, {64941,1240,0},{64939,1245,0},{64936,1245,0},{64934,1242,0},{64933,1245,0}, {64933,1248,0},{64938,1257,0},{64938,1267,0},{64939,1270,0},{64949,1275,0}, {64954,1288,0},{64954,1297,0},{64951,1300,0},{64951,1305,0},{64949,1310,0}, {64949,1318,0},{64946,1310,0},{64948,1305,0},{64948,1297,0},{64939,1290,0}, {64934,1280,0},{64934,1270,0},{64936,1268,0},{64934,1267,0},{64933,1263,0}, {64933,1257,0},{64931,1255,0},{64931,1253,0},{64929,1248,0},{64928,1235,0}, {64924,1228,0},{64926,1230,0},{64928,1227,0},{64929,1230,0},{64931,1230,0}, {64928,1225,0},{64926,1225,0},{64913,1235,0},{64898,1240,0},{64871,1255,0}, {64859,1267,0},{64846,1277,0},{64844,1280,0},{64843,1278,0},{64839,1280,0}, {64828,1283,0},{64811,1283,0},{64804,1288,0},{64789,1293,0},{64781,1298,0}, {64776,1298,0},{64766,1305,0},{64763,1305,0},{64756,1308,0},{64751,1310,0}, {64743,1315,0},{64731,1320,0},{64723,1327,0},{64719,1327,0},{64718,1328,0}, {64713,1330,0},{64704,1337,0},{64698,1338,0},{64689,1338,0},{64689,1335,0}, {64676,1337,0},{64671,1340,0},{64663,1338,0},{64659,1335,0},{64661,1328,0}, {64658,1327,0},{64656,1323,0},{64653,1320,0},{64656,1322,0},{64659,1325,0}, {64658,1322,0},{64654,1318,0},{64649,1318,0},{64646,1315,0},{64641,1313,0}, {64639,1308,0},{64628,1302,0},{64631,1300,0},{64638,1303,0},{64649,1313,0}, {64641,1303,0},{64628,1298,0},{64603,1315,0},{64594,1317,0},{64589,1317,0}, {64583,1320,0},{64579,1320,0},{64574,1322,0},{64571,1322,0},{64568,1318,0}, {64566,1318,0},{64553,1330,0},{64546,1333,0},{64541,1333,0},{64539,1332,0}, {64529,1337,0},{64524,1342,0},{64516,1345,0},{64508,1352,0},{64501,1353,0}, {64496,1353,0},{64488,1360,0},{64468,1377,0},{64466,1377,0},{64463,1373,0}, {64459,1372,0},{64443,1383,0},{64436,1385,0},{64406,1382,0},{64403,1378,0}, {64398,1380,0},{64378,1378,0},{64356,1380,0},{64343,1377,0},{64336,1372,0}, {64326,1370,0},{64319,1367,0},{64311,1365,0},{64303,1358,0},{64303,1355,0}, {64304,1358,0},{64299,1352,0},{64293,1347,0},{64286,1347,0},{64276,1337,0}, {64276,1332,0},{64278,1330,0},{64278,1327,0},{64276,1325,0},{64274,1323,0}, {64274,1320,0},{64276,1318,0},{64258,1297,0},{64253,1293,0},{64241,1297,0}, {64236,1293,0},{64231,1288,0},{64226,1285,0},{64221,1278,0},{64216,1277,0}, {64213,1272,0},{64214,1270,0},{64211,1268,0},{64211,1267,0},{64206,1263,0}, {64204,1265,0},{64201,1263,0},{64199,1260,0},{64196,1257,0},{64196,1253,0}, {64193,1252,0},{64184,1253,0},{64181,1252,0},{64179,1253,0},{64174,1252,0}, {64171,1252,0},{64151,1250,0},{64148,1248,0},{64149,1245,0},{64148,1240,0}, {64141,1240,0},{64138,1238,0},{64133,1237,0},{64131,1233,0},{64126,1233,0}, {64121,1235,0},{64118,1233,0},{64118,1232,0},{64109,1235,0},{64098,1233,0}, {64088,1230,0},{64069,1228,0},{64068,1227,0},{64061,1228,0},{64054,1223,0}, {64053,1220,0},{64043,1218,0},{64041,1217,0},{64034,1215,0},{64026,1210,0}, {64023,1212,0},{64024,1213,0},{64019,1215,0},{64018,1213,0},{64018,1210,0}, {64014,1205,0},{64003,1205,0},{63996,1203,0},{63988,1203,0},{63976,1200,0}, {63971,1192,0},{63964,1192,0},{63959,1187,0},{63958,1183,0},{63959,1183,0}, {63961,1185,0},{63961,1183,0},{63961,1177,0},{63959,1175,0},{63953,1173,0}, {63949,1173,0},{63936,1182,0},{63926,1178,0},{63889,1182,0},{63873,1182,0}, {63868,1182,0},{63854,1182,0},{63853,1177,0},{63844,1178,0},{63834,1177,0}, {63813,1175,0},{63811,1177,0},{63809,1175,0},{63798,1173,0},{63781,1172,0}, {63754,1173,0},{63749,1177,0},{63739,1177,0},{63728,1180,0},{63711,1195,0}, {63704,1197,0},{63699,1200,0},{63694,1200,0},{63689,1202,0},{63678,1213,0}, {63664,1230,0},{63643,1247,0},{63636,1247,0},{63631,1252,0},{63626,1257,0}, {63613,1263,0},{63604,1268,0},{63594,1270,0},{63539,1302,0},{63529,1305,0}, {63523,1313,0},{63518,1318,0},{63506,1322,0},{63489,1325,0},{63471,1335,0}, {63463,1338,0},{63456,1338,0},{63451,1340,0},{63434,1352,0},{63423,1358,0}, {63411,1368,0},{63401,1373,0},{63388,1385,0},{63376,1388,0},{63364,1397,0}, {63358,1395,0},{63353,1402,0},{63324,1428,0},{63318,1430,0},{63308,1438,0}, {63281,1452,0},{63268,1453,0},{63256,1453,0},{63244,1453,0},{63236,1447,0}, {63239,1447,0},{63241,1443,0},{63248,1445,0},{63248,1443,0},{63239,1442,0}, {63233,1442,0},{63223,1445,0},{63203,1450,0},{63198,1448,0},{63201,1448,0}, {63194,1443,0},{63176,1450,0},{63161,1448,0},{63153,1452,0},{63146,1452,0}, {63139,1445,0},{63123,1447,0},{63111,1452,0},{63091,1462,0},{63086,1462,0}, {63083,1460,0},{63079,1460,0},{63064,1473,0},{63056,1478,0},{63051,1480,0}, {63041,1480,0},{63031,1485,0},{63018,1483,0},{63008,1480,0},{62999,1482,0}, {62993,1485,0},{62989,1485,0},{62981,1488,0},{62979,1488,0},{62971,1485,0}, {62964,1485,0},{62961,1483,0},{62956,1485,0},{62951,1492,0},{62944,1490,0}, {62938,1497,0},{62931,1498,0},{62923,1498,0},{62923,1493,0},{62916,1497,0}, {62903,1497,0},{62896,1508,0},{62876,1517,0},{62868,1515,0},{62873,1513,0}, {62873,1510,0},{62871,1508,0},{62866,1508,0},{62849,1517,0},{62846,1515,0}, {62844,1518,0},{62843,1522,0},{62839,1523,0},{62833,1523,0},{62828,1527,0}, {62819,1527,0},{62814,1527,0},{62811,1528,0},{62804,1530,0},{62791,1537,0}, {62791,1540,0},{62781,1547,0},{62771,1553,0},{62768,1552,0},{62763,1553,0}, {62749,1567,0},{62741,1568,0},{62733,1575,0},{62728,1582,0},{62719,1590,0}, {62711,1603,0},{62696,1618,0},{62693,1623,0},{62679,1635,0},{62674,1645,0}, {62678,1648,0},{62673,1647,0},{62664,1657,0},{62659,1657,0},{62649,1660,0}, {62646,1667,0},{62638,1673,0},{62633,1675,0},{62628,1682,0},{62614,1685,0}, {62611,1687,0},{62606,1688,0},{62599,1693,0},{62583,1700,0},{62579,1700,0}, {62568,1705,0},{62553,1708,0},{62539,1715,0},{62521,1720,0},{62509,1727,0}, {62501,1728,0},{62476,1745,0},{62468,1748,0},{62461,1753,0},{62456,1755,0}, {62444,1760,0},{62433,1768,0},{62414,1780,0},{62411,1785,0},{62399,1792,0}, {62391,1800,0},{62368,1818,0},{62361,1822,0},{62353,1823,0},{62346,1828,0}, {62341,1827,0},{62331,1830,0},{62326,1830,0},{62308,1835,0},{62303,1832,0}, {62288,1833,0},{62273,1828,0},{62268,1825,0},{62258,1813,0},{62258,1805,0}, {62263,1798,0},{62266,1797,0},{62264,1795,0},{62264,1792,0},{62263,1790,0}, {62256,1790,0},{62253,1785,0},{62249,1788,0},{62244,1787,0},{62243,1788,0}, {62236,1788,0},{62234,1790,0},{62233,1790,0},{62231,1792,0},{62233,1795,0}, {62234,1795,0},{62236,1798,0},{62233,1803,0},{62226,1803,0},{62221,1810,0}, {62218,1813,0},{62216,1812,0},{62216,1810,0},{62221,1803,0},{62226,1800,0}, {62226,1795,0},{62223,1797,0},{62218,1805,0},{62214,1808,0},{62203,1817,0}, {62201,1815,0},{62194,1823,0},{62189,1830,0},{62186,1832,0},{62179,1832,0}, {62178,1833,0},{62174,1837,0},{62173,1840,0},{62166,1843,0},{62159,1843,0}, {62151,1848,0},{62148,1848,0},{62144,1847,0},{62144,1837,0},{62138,1837,0}, {62133,1832,0},{62129,1833,0},{62129,1835,0},{62124,1835,0},{62123,1832,0}, {62119,1832,0},{62118,1837,0},{62113,1838,0},{62111,1838,0},{62104,1842,0}, {62101,1848,0},{62103,1847,0},{62113,1848,0},{62119,1843,0},{62123,1845,0}, {62126,1848,0},{62129,1862,0},{62128,1877,0},{62126,1882,0},{62121,1885,0}, {62118,1882,0},{62111,1885,0},{62106,1880,0},{62103,1882,0},{62101,1880,0}, {62098,1882,0},{62101,1893,0},{62099,1897,0},{62103,1900,0},{62101,1908,0}, {62106,1913,0},{62101,1912,0},{62099,1908,0},{62096,1912,0},{62093,1922,0}, {62094,1928,0},{62089,1933,0},{62083,1937,0},{62074,1930,0},{62076,1938,0}, {62074,1942,0},{62071,1945,0},{62069,1952,0},{62064,1955,0},{62058,1965,0}, {62061,1968,0},{62061,1985,0},{62058,1990,0},{62054,1997,0},{62054,2000,0}, {62056,2005,0},{62059,2005,0},{62063,2007,0},{62068,2017,0},{62068,2022,0}, {62074,2027,0},{62079,2038,0},{62086,2043,0},{62089,2050,0},{62093,2067,0}, {62089,2085,0},{62091,2087,0},{62094,2085,0},{62096,2082,0},{62099,2095,0}, {62099,2107,0},{62093,2130,0},{62096,2142,0},{62098,2143,0},{62101,2153,0}, {62098,2165,0},{62098,2180,0},{62103,2190,0},{62106,2193,0},{62109,2192,0}, {62114,2195,0},{62118,2215,0},{62121,2212,0},{62126,2215,0},{62131,2230,0}, {62129,2240,0},{62131,2247,0},{62136,2255,0},{62136,2258,0},{62133,2277,0}, {62133,2278,0},{62138,2273,0},{62136,2280,0},{62134,2278,0},{62131,2280,0}, {62128,2297,0},{62128,2300,0},{62128,2305,0},{62133,2300,0},{62131,2305,0}, {62128,2307,0},{62124,2340,0},{62128,2337,0},{62131,2337,0},{62134,2340,0}, {62138,2355,0},{62138,2368,0},{62133,2397,0},{62131,2415,0},{62126,2427,0}, {62126,2438,0},{62119,2452,0},{62118,2460,0},{62119,2465,0},{62118,2470,0}, {62118,2480,0},{62116,2483,0},{62118,2487,0},{62119,2483,0},{62123,2483,0}, {62128,2492,0},{62136,2492,0},{62139,2503,0},{62139,2523,0},{62133,2540,0}, {62133,2548,0},{62131,2557,0},{62131,2563,0},{62133,2565,0},{62133,2570,0}, {62136,2568,0},{62143,2562,0},{62151,2563,0},{62156,2568,0},{62159,2572,0}, {62163,2585,0},{62164,2598,0},{62164,2608,0},{62159,2628,0},{62161,2637,0}, {62159,2645,0},{62159,2648,0},{62161,2653,0},{62164,2658,0},{62164,2663,0}, {62168,2665,0},{62171,2673,0},{62173,2685,0},{62178,2692,0},{62179,2700,0}, {62183,2710,0},{62186,2712,0},{62191,2722,0},{62199,2733,0},{62201,2738,0}, {62206,2747,0},{62208,2747,0},{62208,2750,0},{62211,2752,0},{62216,2763,0}, {62224,2773,0},{62233,2790,0},{62238,2793,0},{62246,2807,0},{62256,2813,0}, {62266,2837,0},{62268,2837,0},{62279,2853,0},{62283,2857,0},{62289,2865,0}, {62291,2865,0},{62298,2873,0},{62301,2878,0},{62308,2887,0},{62316,2895,0}, {62329,2910,0},{62338,2915,0},{62341,2922,0},{62356,2932,0},{62358,2935,0}, {62361,2937,0},{62363,2940,0},{62366,2942,0},{62368,2940,0},{62373,2953,0}, {62374,2955,0},{62378,2963,0},{62381,2963,0},{62391,2977,0},{62394,2985,0}, {62408,3002,0},{62418,3010,0},{62439,3030,0},{62444,3032,0},{62451,3040,0}, {62471,3052,0},{62486,3062,0},{62488,3063,0},{62503,3073,0},{62528,3087,0}, {62546,3105,0},{62548,3107,0},{62546,3100,0},{62549,3102,0},{62549,3105,0}, {62554,3105,0},{62571,3113,0},{62601,3137,0},{62641,3178,0},{62643,3177,0}, {62643,3183,0},{62643,3188,0},{62648,3200,0},{62654,3207,0},{62653,3202,0}, {62654,3200,0},{62656,3200,0},{62658,3205,0},{62656,3210,0},{62664,3218,0}, {62669,3223,0},{62673,3228,0},{62683,3238,0},{62693,3243,0},{62696,3242,0}, {62696,3240,0},{62698,3243,0},{62719,3255,0},{62743,3260,0},{62748,3258,0}, {62776,3265,0},{62819,3280,0},{62824,3283,0},{62851,3290,0},{62854,3288,0}, {62863,3290,0},{62871,3290,0},{62884,3292,0},{62906,3292,0},{62928,3295,0}, {62924,3290,0},{62916,3287,0},{62908,3288,0},{62906,3283,0},{62909,3280,0}, {62914,3278,0},{62916,3275,0},{62918,3270,0},{62918,3268,0},{62926,3265,0}, {62938,3255,0},{62939,3252,0},{62938,3250,0},{62934,3250,0},{62938,3247,0}, {62941,3252,0},{62938,3258,0},{62939,3260,0},{62948,3268,0},{62953,3270,0}, {62956,3273,0},{62949,3275,0},{62958,3273,0},{62968,3277,0},{62976,3282,0}, {62983,3288,0},{62994,3307,0},{63003,3323,0},{63004,3323,0},{63004,3322,0}, {63006,3322,0},{63008,3325,0},{63011,3333,0},{63009,3333,0},{63006,3327,0}, {63006,3330,0},{63024,3372,0},{63061,3478,0},{63073,3505,0},{63083,3518,0}, {63088,3520,0},{63109,3538,0},{63126,3550,0},{63131,3548,0},{63149,3555,0}, {63156,3553,0},{63158,3548,0},{63156,3548,0},{63151,3548,0},{63149,3547,0}, {63148,3547,0},{63153,3538,0},{63149,3537,0},{63144,3538,0},{63139,3535,0}, {63141,3533,0},{63144,3535,0},{63146,3533,0},{63151,3535,0},{63164,3537,0}, {63166,3537,0},{63168,3533,0},{63168,3537,0},{63166,3538,0},{63163,3538,0}, {63161,3538,0},{63163,3542,0},{63168,3542,0},{63184,3542,0},{63208,3548,0}, {63218,3548,0},{63244,3562,0},{63246,3558,0},{63243,3558,0},{63244,3555,0}, {63241,3553,0},{63244,3552,0},{63268,3548,0},{63279,3550,0},{63294,3553,0}, {63318,3555,0},{63314,3553,0},{63304,3552,0},{63326,3550,0},{63326,3547,0}, {63324,3545,0},{63318,3542,0},{63313,3545,0},{63311,3543,0},{63314,3542,0}, {63313,3540,0},{63309,3540,0},{63301,3540,0},{63294,3543,0},{63293,3540,0}, {63286,3540,0},{63296,3530,0},{63303,3530,0},{63311,3533,0},{63318,3533,0}, {63326,3533,0},{63336,3533,0},{63339,3532,0},{63344,3532,0},{63354,3528,0}, {63371,3527,0},{63378,3525,0},{63384,3518,0},{63398,3512,0},{63404,3512,0}, {63418,3513,0},{63404,3508,0},{63404,3507,0},{63409,3507,0},{63411,3505,0}, {63413,3508,0},{63416,3507,0},{63419,3505,0},{63423,3507,0},{63424,3502,0}, {63428,3503,0},{63426,3505,0},{63428,3508,0},{63433,3508,0},{63434,3507,0}, {63436,3512,0},{63439,3512,0},{63439,3510,0},{63443,3512,0},{63444,3507,0}, {63441,3503,0},{63443,3503,0},{63448,3505,0},{63454,3500,0},{63456,3502,0}, {63458,3502,0},{63458,3500,0},{63463,3498,0},{63466,3495,0},{63466,3488,0}, {63464,3487,0},{63466,3487,0},{63469,3490,0},{63471,3488,0},{63469,3485,0}, {63471,3485,0},{63473,3483,0},{63478,3482,0},{63478,3477,0},{63481,3477,0}, {63481,3473,0},{63484,3473,0},{63483,3467,0},{63488,3472,0},{63491,3470,0}, {63493,3465,0},{63494,3467,0},{63496,3470,0},{63501,3470,0},{63501,3467,0}, {63503,3470,0},{63513,3473,0},{63518,3468,0},{63519,3470,0},{63518,3477,0}, {63521,3477,0},{63533,3475,0},{63536,3477,0},{63539,3475,0},{63544,3475,0}, {63546,3473,0},{63546,3468,0},{63548,3473,0},{63548,3477,0},{63549,3478,0}, {63558,3473,0},{63559,3467,0},{63573,3462,0},{63574,3457,0},{63574,3462,0}, {63563,3468,0},{63561,3475,0},{63558,3482,0},{63551,3483,0},{63549,3488,0}, {63556,3497,0},{63556,3500,0},{63564,3508,0},{63564,3510,0},{63564,3512,0}, {63576,3523,0},{63584,3535,0},{63594,3545,0},{63603,3550,0},{63604,3553,0}, {63609,3558,0},{63611,3558,0},{63611,3557,0},{63619,3567,0},{63619,3563,0}, {63624,3567,0},{63624,3570,0},{63631,3578,0},{63638,3588,0},{63639,3587,0}, {63638,3585,0},{63641,3585,0},{63641,3588,0},{63639,3590,0},{63641,3595,0}, {63648,3598,0},{63643,3598,0},{63644,3603,0},{63654,3610,0},{63656,3612,0}, {63654,3613,0},{63651,3612,0},{63646,3613,0},{63648,3622,0},{63646,3627,0}, {63649,3625,0},{63653,3627,0},{63659,3623,0},{63666,3623,0},{63658,3628,0}, {63656,3635,0},{63656,3640,0},{63659,3642,0},{63663,3640,0},{63661,3638,0}, {63666,3638,0},{63668,3638,0},{63666,3640,0},{63664,3640,0},{63666,3642,0}, {63673,3643,0},{63678,3648,0},{63681,3647,0},{63681,3652,0},{63683,3650,0}, {63683,3652,0},{63683,3655,0},{63686,3655,0},{63686,3657,0},{63698,3668,0}, {63706,3678,0},{63716,3685,0},{63713,3678,0},{63716,3680,0},{63718,3683,0}, {63716,3688,0},{63719,3690,0},{63729,3697,0},{63733,3695,0},{63734,3690,0}, {63748,3687,0},{63746,3682,0},{63748,3683,0},{63748,3690,0},{63741,3692,0}, {63736,3698,0},{63734,3698,0},{63748,3708,0},{63759,3720,0},{63763,3718,0}, {63761,3722,0},{63763,3723,0},{63764,3728,0},{63768,3728,0},{63768,3733,0}, {63771,3735,0},{63769,3738,0},{63776,3743,0},{63781,3755,0},{63783,3757,0}, {63784,3762,0},{63788,3768,0},{63791,3770,0},{63791,3772,0},{63789,3770,0}, {63789,3773,0},{63793,3778,0},{63799,3792,0},{63804,3812,0},{63808,3813,0}, {63808,3812,0},{63811,3813,0},{63818,3808,0},{63814,3812,0},{63818,3812,0}, {63816,3813,0},{63809,3813,0},{63806,3815,0},{63813,3825,0},{63821,3850,0}, {63823,3852,0},{63823,3850,0},{63824,3850,0},{63826,3852,0},{63823,3853,0}, {63824,3857,0},{63829,3858,0},{63826,3860,0},{63828,3868,0},{63829,3868,0}, {63829,3867,0},{63831,3868,0},{63833,3867,0},{63829,3872,0},{63833,3890,0}, {63836,3898,0},{63836,3908,0},{63843,3913,0},{63843,3908,0},{63844,3908,0}, {63846,3912,0},{63846,3913,0},{63849,3913,0},{63848,3915,0},{63849,3917,0}, {63853,3920,0},{63861,3930,0},{63881,3967,0},{63883,3970,0},{63888,3972,0}, {63889,3977,0},{63891,3975,0},{63891,3978,0},{63889,3980,0},{63893,3985,0}, {63894,3982,0},{63906,3978,0},{63913,3988,0},{63913,3998,0},{63919,4003,0}, {63924,4007,0},{63928,4010,0},{63936,4013,0},{63939,4013,0},{63934,4008,0}, {63936,4007,0},{63938,4012,0},{63941,4012,0},{63944,4018,0},{63951,4023,0}, {63964,4037,0},{63974,4043,0},{63979,4048,0},{63983,4050,0},{63983,4053,0}, {63984,4057,0},{63988,4058,0},{63988,4057,0},{63991,4057,0},{63998,4062,0}, {64001,4062,0},{64008,4067,0},{64011,4068,0},{64018,4067,0},{64021,4062,0}, {64016,4058,0},{64018,4052,0},{64023,4053,0},{64023,4060,0},{64028,4063,0}, {64028,4072,0},{64033,4070,0},{64036,4065,0},{64039,4067,0},{64036,4070,0}, {64036,4078,0},{64043,4077,0},{64044,4070,0},{64043,4068,0},{64044,4067,0}, {64049,4063,0},{64049,4065,0},{64046,4067,0},{64048,4073,0},{64053,4078,0}, {64056,4083,0},{64058,4083,0},{64066,4085,0},{64074,4080,0},{64081,4083,0}, {64084,4083,0},{64084,4080,0},{64081,4078,0},{64081,4077,0},{64084,4077,0}, {64086,4083,0},{64091,4083,0},{64096,4080,0},{64096,4077,0},{64093,4068,0}, {64083,4067,0},{64079,4063,0},{64086,4063,0},{64086,4062,0},{64089,4065,0}, {64089,4063,0},{64091,4063,0},{64091,4065,0},{64103,4063,0},{64099,4067,0}, {64103,4073,0},{64108,4075,0},{64111,4072,0},{64116,4072,0},{64118,4070,0}, {64114,4063,0},{64109,4062,0},{64109,4060,0},{64109,4058,0},{64111,4060,0}, {64113,4058,0},{64114,4060,0},{64114,4058,0},{64113,4058,0},{64113,4057,0}, {64114,4057,0},{64119,4053,0},{64123,4062,0},{64128,4060,0},{64128,4065,0}, {64134,4065,0},{64141,4063,0},{64146,4060,0},{64164,4057,0},{64166,4055,0}, {64171,4053,0},{64176,4057,0},{64178,4060,0},{64184,4053,0},{64186,4053,0}, {64193,4055,0},{64198,4058,0},{64201,4058,0},{64199,4057,0},{64208,4057,0}, {64204,4053,0},{64206,4053,0},{64209,4057,0},{64219,4057,0},{64228,4057,0}, {64238,4060,0},{64239,4058,0},{64239,4050,0},{64238,4053,0},{64236,4053,0}, {64234,4052,0},{64233,4048,0},{64234,4047,0},{64239,4042,0},{64243,4042,0}, {64248,4048,0},{64248,4052,0},{64244,4052,0},{64246,4053,0},{64251,4055,0}, {64254,4052,0},{64254,4057,0},{64258,4055,0},{64258,4057,0},{64256,4058,0}, {64256,4062,0},{64258,4065,0},{64259,4065,0},{64263,4062,0},{64264,4062,0}, {64266,4057,0},{64271,4057,0},{64269,4062,0},{64271,4062,0},{64273,4062,0}, {64273,4058,0},{64276,4057,0},{64283,4057,0},{64286,4047,0},{64293,4052,0}, {64296,4057,0},{64298,4055,0},{64298,4050,0},{64304,4052,0},{64308,4050,0}, {64311,4047,0},{64309,4045,0},{64313,4047,0},{64311,4050,0},{64316,4052,0}, {64323,4050,0},{64328,4052,0},{64333,4052,0},{64336,4053,0},{64344,4048,0}, {64353,4052,0},{64353,4048,0},{64354,4047,0},{64361,4047,0},{64363,4045,0}, {64369,4045,0},{64371,4042,0},{64376,4045,0},{64381,4042,0},{64384,4045,0}, {64393,4047,0},{64394,4048,0},{64398,4047,0},{64396,4043,0},{64401,4038,0}, {64399,4037,0},{64404,4035,0},{64404,4038,0},{64411,4043,0},{64416,4050,0}, {64421,4050,0},{64433,4057,0},{64434,4057,0},{64434,4053,0},{64433,4053,0}, {64433,4050,0},{64441,4050,0},{64446,4053,0},{64449,4062,0},{64453,4062,0}, {64458,4052,0},{64456,4048,0},{64459,4048,0},{64468,4058,0},{64466,4063,0}, {64468,4065,0},{64471,4058,0},{64478,4060,0},{64479,4055,0},{64478,4053,0}, {64481,4052,0},{64481,4055,0},{64483,4057,0},{64488,4053,0},{64488,4052,0}, {64489,4045,0},{64488,4043,0},{64493,4042,0},{64496,4043,0},{64498,4042,0}, {64501,4045,0},{64506,4042,0},{64504,4038,0},{64504,4042,0},{64503,4043,0}, {64499,4040,0},{64501,4037,0},{64501,4033,0},{64509,4030,0},{64513,4025,0}, {64516,4023,0},{64511,4020,0},{64508,4027,0},{64508,4023,0},{64506,4023,0}, {64509,4018,0},{64509,4017,0},{64508,4017,0},{64509,4013,0},{64508,4012,0}, {64509,4012,0},{64511,4013,0},{64516,4012,0},{64518,4013,0},{64523,4000,0}, {64523,3998,0},{64518,4000,0},{64514,3998,0},{64523,3997,0},{64526,3993,0}, {64529,3993,0},{64534,3988,0},{64534,3985,0},{64538,3982,0},{64538,3975,0}, {64533,3973,0},{64531,3968,0},{64536,3973,0},{64539,3970,0},{64543,3978,0}, {64544,3978,0},{64548,3975,0},{64548,3980,0},{64551,3980,0},{64561,3975,0}, {64561,3970,0},{64566,3975,0},{64566,3973,0},{64569,3975,0},{64571,3972,0}, {64573,3972,0},{64574,3973,0},{64576,3970,0},{64586,3968,0},{64589,3965,0}, {64591,3965,0},{64593,3962,0},{64591,3960,0},{64591,3957,0},{64596,3957,0}, {64594,3960,0},{64596,3962,0},{64598,3965,0},{64608,3965,0},{64609,3963,0}, {64616,3965,0},{64626,3957,0},{64623,3950,0},{64628,3950,0},{64629,3950,0}, {64631,3950,0},{64634,3950,0},{64638,3948,0},{64643,3950,0},{64643,3945,0}, {64644,3945,0},{64646,3947,0},{64644,3938,0},{64649,3940,0},{64649,3943,0}, {64646,3950,0},{64644,3952,0},{64644,3957,0},{64646,3952,0},{64654,3950,0}, {64656,3947,0},{64663,3943,0},{64666,3937,0},{64666,3938,0},{64669,3937,0}, {64674,3937,0},{64681,3935,0},{64684,3930,0},{64698,3930,0},{64704,3928,0}, {64706,3930,0},{64709,3930,0},{64706,3932,0},{64706,3933,0},{64708,3933,0}, {64708,3935,0},{64716,3935,0},{64716,3937,0},{64723,3938,0},{64734,3945,0}, {64738,3945,0},{64736,3945,0},{64736,3943,0},{64743,3943,0},{64746,3942,0}, {64749,3943,0},{64754,3945,0},{64758,3940,0},{64758,3933,0},{64761,3937,0}, {64763,3932,0},{64759,3932,0},{64754,3928,0},{64754,3925,0},{64758,3928,0}, {64759,3930,0},{64764,3928,0},{64768,3930,0},{64778,3927,0},{64789,3930,0}, {64793,3933,0},{64799,3935,0},{64803,3935,0},{64804,3932,0},{64806,3937,0}, {64809,3937,0},{64809,3938,0},{64811,3940,0},{64813,3942,0},{64818,3943,0}, {64821,3948,0},{64818,3948,0},{64818,3950,0},{64823,3952,0},{64823,3955,0}, {64831,3953,0},{64836,3955,0},{64849,3947,0},{64851,3937,0},{64853,3933,0}, {64854,3930,0},{64851,3930,0},{64851,3928,0},{64854,3928,0},{64861,3928,0}, {64863,3928,0},{64861,3927,0},{64863,3925,0},{64873,3920,0},{64874,3917,0}, {64878,3915,0},{64881,3912,0},{64888,3905,0},{64891,3898,0},{64889,3903,0}, {64888,3903,0},{64889,3897,0},{64893,3892,0},{64896,3890,0},{64898,3887,0}, {64904,3885,0},{64919,3887,0},{64923,3882,0},{64931,3878,0},{64936,3878,0}, {64943,3882,0},{64953,3883,0},{64964,3890,0},{64971,3890,0},{64981,3897,0}, {64991,3900,0},{64993,3897,0},{64996,3898,0},{64998,3902,0},{65013,3908,0}, {65014,3907,0},{65011,3905,0},{65013,3903,0},{65016,3907,0},{65018,3908,0}, {65021,3908,0},{65026,3913,0},{65029,3912,0},{65029,3910,0},{65031,3908,0}, {65034,3910,0},{65034,3913,0},{65036,3912,0},{65041,3913,0},{65044,3912,0}, {65044,3913,0},{65051,3917,0},{65049,3917,0},{65043,3915,0},{65043,3917,0}, {65044,3918,0},{65051,3922,0},{65058,3922,0},{65058,3917,0},{65061,3918,0}, {65059,3920,0},{65061,3922,0},{65068,3922,0},{65068,3918,0},{65069,3920,0}, {65069,3922,0},{65071,3922,0},{65074,3925,0},{65074,3930,0},{65076,3930,0}, {65073,3933,0},{65073,3940,0},{65074,3942,0},{65078,3938,0},{65079,3942,0}, {65081,3942,0},{65083,3943,0},{65083,3945,0},{65081,3943,0},{65078,3945,0}, {65084,3947,0},{65089,3950,0},{65093,3950,0},{65094,3952,0},{65093,3955,0}, {65109,3958,0},{65126,3967,0},{65129,3962,0},{65129,3957,0},{65128,3957,0}, {65133,3955,0},{65133,3963,0},{65136,3963,0},{65138,3960,0},{65139,3962,0}, {65138,3965,0},{65139,3967,0},{65134,3965,0},{65131,3968,0},{65133,3972,0}, {65139,3975,0},{65139,3970,0},{65144,3968,0},{65146,3972,0},{65144,3972,0}, {65141,3972,0},{65141,3975,0},{65143,3977,0},{65144,3978,0},{65154,3983,0}, {65169,3987,0},{65171,3987,0},{65173,3983,0},{65173,3980,0},{65174,3980,0}, {65176,3978,0},{65178,3978,0},{65176,3978,0},{65176,3983,0},{65174,3985,0}, {65174,3987,0},{65178,3988,0},{65184,3990,0},{65196,3997,0},{65199,3993,0}, {65203,3993,0},{65204,3998,0},{65201,4000,0},{65203,4003,0},{65209,4012,0}, {65213,4013,0},{65218,4012,0},{65224,4017,0},{65228,4015,0},{65233,4018,0}, {65238,4023,0},{65236,4018,0},{65233,4013,0},{65238,4015,0},{65241,4015,0}, {65243,4017,0},{65244,4015,0},{65246,4017,0},{65246,4015,0},{65254,4018,0}, {65258,4015,0},{65259,4017,0},{65261,4017,0},{65263,4017,0},{65264,4018,0}, {65268,4018,0},{65266,4020,0},{65263,4020,0},{65271,4027,0},{65281,4042,0}, {65283,4053,0},{65281,4060,0},{65281,4063,0},{65289,4072,0},{65291,4077,0}, {65294,4078,0},{65296,4082,0},{65299,4082,0},{65303,4078,0},{65304,4080,0}, {65308,4077,0},{65306,4080,0},{65308,4082,0},{65313,4085,0},{65314,4088,0}, {65313,4090,0},{65308,4092,0},{65308,4095,0},{65306,4092,0},{65304,4092,0}, {65306,4095,0},{65311,4098,0},{65314,4095,0},{65313,4093,0},{65314,4092,0}, {65328,4090,0},{65329,4088,0},{65331,4090,0},{65333,4090,0},{65334,4088,0}, {65334,4085,0},{65339,4087,0},{65336,4090,0},{65329,4093,0},{65328,4095,0}, {65331,4098,0},{65334,4095,0},{65344,4098,0},{65346,4102,0},{65343,4098,0}, {65334,4098,0},{65331,4102,0},{65338,4110,0},{65336,4118,0},{65339,4120,0}, {65341,4120,0},{65341,4122,0},{65343,4122,0},{65339,4123,0},{65339,4128,0}, {65339,4132,0},{65346,4135,0},{65351,4142,0},{65353,4142,0},{65353,4143,0}, {65361,4148,0},{65369,4157,0},{65369,4155,128},{65379,4165,0},{65406,4182,0}, {65411,4185,0},{65419,4183,0},{65416,4185,0},{65414,4188,0},{65416,4190,0}, {65418,4187,0},{65428,4195,0},{65434,4197,0},{65436,4195,0},{65441,4195,0}, {65446,4195,0},{65436,4197,0},{65439,4202,0},{65444,4203,0},{65446,4207,0}, {65451,4208,0},{65453,4207,0},{65454,4215,0},{65456,4218,0},{65468,4225,0}, {65486,4242,0},{65491,4247,0},{65489,4247,0},{65489,4248,0},{65493,4247,0}, {65499,4252,0},{65501,4255,0},{65504,4257,0},{65524,4278,0},{65,4348,0}, {78,4363,0},{87,4375,0},{92,4380,0},{102,4395,0},{108,4398,0},{108,4403,0}, {117,4408,0},{118,4413,0},{123,4415,0},{127,4422,0},{140,4435,0},{172,4478,0}, {190,4507,0},{198,4528,0},{208,4542,0},{235,4590,0},{243,4602,0},{252,4612,0}, {257,4613,0},{260,4618,0},{265,4622,0},{270,4628,0},{273,4632,0},{277,4633,0}, {278,4635,0},{300,4662,0},{313,4672,0},{318,4678,0},{368,4723,0},{388,4745,0}, {408,4760,0},{418,4770,0},{427,4777,0},{447,4795,0},{453,4800,0},{488,4820,0}, {505,4830,0},{518,4842,0},{540,4857,0},{547,4863,0},{562,4872,0},{582,4885,0}, {615,4905,0},{628,4908,0},{642,4907,0},{675,4922,0},{703,4938,0},{710,4943,0}, {723,4952,0},{733,4960,0},{758,4973,0},{765,4975,0},{773,4982,0},{780,4983,0}, {782,4980,0},{783,4980,0},{793,4983,0},{805,4993,0},{813,5007,0},{818,5012,0}, {832,5015,0},{838,5020,0},{840,5023,0},{845,5025,0},{853,5032,0},{862,5032,0}, {872,5038,0},{887,5043,0},{895,5048,0},{898,5055,0},{907,5063,0},{913,5065,0}, {918,5065,0},{922,5065,0},{928,5070,0},{932,5077,0},{942,5083,0},{945,5085,0}, {957,5080,0},{970,5083,0},{977,5083,0},{1000,5090,0},{1010,5088,0},{1018,5090,0}, {1032,5090,0},{1038,5102,0},{1042,5115,0},{1042,5125,0},{1038,5128,0},{1037,5137,0}, {1045,5142,0},{1048,5137,0},{1048,5132,0},{1057,5117,0},{1052,5120,0},{1048,5120,0}, {1045,5122,0},{1043,5122,0},{1043,5110,0},{1042,5103,0},{1043,5102,0},{1047,5103,0}, {1048,5110,0},{1057,5110,0},{1058,5117,0},{1070,5113,0},{1097,5112,0},{1115,5117,0}, {1117,5110,0},{1118,5108,0},{1133,5108,0},{1145,5112,0},{1150,5113,0},{1160,5118,0}, {1167,5125,0},{1177,5125,0},{1178,5127,0},{1183,5128,0},{1183,5123,0},{1187,5115,0}, {1187,5107,0},{1193,5097,0},{1195,5085,0},{1200,5078,0},{1195,5068,0},{1195,5063,0}, {1190,5057,0},{1187,5053,0},{1175,5050,0},{1168,5043,0},{1165,5035,0},{1158,5027,0}, {1157,5017,0},{1152,5008,0},{1152,4993,0},{1148,4987,0},{1145,4978,0},{1147,4968,0}, {1145,4957,0},{1138,4952,0},{1133,4943,0},{1133,4935,0},{1133,4930,0},{1130,4923,0}, {1128,4910,0},{1125,4898,0},{1125,4888,0},{1133,4865,0},{1132,4852,0},{1128,4847,0}, {1127,4835,0},{1123,4830,0},{1122,4822,0},{1115,4817,0},{1113,4813,0},{1112,4795,0}, {1113,4790,0},{1112,4787,0},{1113,4778,0},{1110,4770,0},{1113,4762,0},{1118,4752,0}, {1118,4740,0},{1110,4723,0},{1108,4717,0},{1103,4715,0},{1097,4707,0},{1097,4702,0}, {1093,4698,0},{1090,4688,0},{1087,4687,0},{1075,4665,0},{1073,4653,0},{1068,4645,0}, {1070,4633,0},{1078,4625,0},{1077,4612,0},{1078,4598,0},{1085,4588,0},{1083,4587,0}, {1082,4587,0},{1082,4585,0},{1083,4585,0},{1087,4580,0},{1088,4577,0},{1085,4573,0}, {1080,4567,0},{1077,4562,0},{1077,4558,0},{1072,4555,0},{1067,4547,0},{1065,4540,0}, {1067,4533,0},{1058,4525,0},{1057,4520,0},{1053,4517,0},{1050,4507,0},{1047,4503,0}, {1045,4498,0},{1045,4500,0},{1043,4498,0},{1042,4492,0},{1047,4475,0},{1042,4457,0}, {1043,4443,0},{1042,4438,0},{1045,4428,0},{1058,4410,0},{1065,4403,0},{1068,4395,0}, {1082,4382,0},{1098,4367,0},{1118,4355,0},{1123,4350,0},{1128,4348,0},{1132,4348,0}, {1138,4348,0},{1137,4347,0},{1140,4342,0},{1140,4337,0},{1145,4335,0},{1145,4332,0}, {1150,4330,0},{1152,4328,0},{1147,4328,0},{1148,4325,0},{1153,4322,0},{1153,4320,0}, {1158,4315,0},{1162,4315,0},{1163,4313,0},{1162,4312,0},{1160,4312,0},{1158,4310,0}, {1160,4308,0},{1160,4280,0},{1155,4268,0},{1153,4267,0},{1152,4270,0},{1148,4268,0}, {1148,4263,0},{1148,4262,0},{1153,4252,0},{1157,4253,0},{1160,4252,0},{1160,4253,0}, {1157,4262,0},{1158,4267,0},{1160,4268,0},{1165,4270,0},{1168,4275,0},{1173,4275,0}, {1175,4277,0},{1178,4290,0},{1178,4295,0},{1182,4297,0},{1182,4303,0},{1185,4308,0}, {1195,4317,0},{1198,4337,0},{1203,4340,0},{1213,4342,0},{1223,4342,0},{1228,4337,0}, {1238,4337,0},{1243,4333,0},{1248,4333,0},{1247,4332,0},{1248,4330,0},{1270,4312,0}, {1283,4308,0},{1283,4305,0},{1290,4300,0},{1288,4300,0},{1282,4298,0},{1280,4295,0}, {1278,4293,0},{1278,4292,0},{1280,4293,0},{1282,4287,0},{1287,4283,0},{1285,4278,0}, {1287,4277,0},{1295,4277,0},{1297,4273,0},{1298,4275,0},{1303,4273,0},{1307,4267,0}, {1313,4262,0},{1317,4258,0},{1320,4255,0},{1320,4253,0},{1323,4253,0},{1318,4248,0}, {1322,4237,0},{1343,4233,0},{1348,4230,0},{1355,4230,0},{1358,4228,0},{1360,4225,0}, {1363,4223,0},{1367,4218,0},{1365,4217,0},{1363,4222,0},{1360,4222,0},{1360,4220,0}, {1355,4223,0},{1358,4218,0},{1362,4218,0},{1365,4213,0},{1363,4212,0},{1370,4207,0}, {1373,4207,0},{1378,4198,0},{1383,4198,0},{1387,4195,0},{1387,4192,0},{1388,4183,0}, {1393,4180,0},{1392,4172,0},{1393,4170,0},{1393,4168,0},{1407,4162,0},{1413,4153,0}, {1422,4150,0},{1430,4142,0},{1437,4138,0},{1440,4133,0},{1448,4130,0},{1458,4120,0}, {1463,4117,0},{1467,4105,0},{1465,4098,0},{1472,4088,0},{1472,4085,0},{1470,4083,0}, {1472,4082,0},{1470,4080,0},{1470,4077,0},{1472,4077,0},{1473,4073,0},{1477,4072,0}, {1480,4073,0},{1483,4073,0},{1483,4070,0},{1487,4067,0},{1488,4070,0},{1490,4067,0}, {1490,4065,0},{1488,4065,0},{1488,4062,0},{1495,4062,0},{1495,4057,0},{1498,4055,0}, {1498,4053,0},{1502,4052,0},{1500,4052,0},{1498,4052,0},{1497,4050,0},{1498,4047,0}, {1500,4045,0},{1500,4042,0},{1497,4042,0},{1497,4040,0},{1497,4038,0},{1500,4038,0}, {1495,4037,0},{1492,4030,0},{1493,4027,0},{1497,4017,0},{1498,4015,0},{1503,4015,0}, {1505,4013,0},{1507,4010,0},{1510,4010,0},{1515,4008,0},{1520,4005,0},{1523,4005,0}, {1523,4002,0},{1533,4008,0},{1537,4005,0},{1538,4000,0},{1545,3990,0},{1550,3988,0}, {1547,3985,0},{1545,3980,0},{1538,3977,0},{1527,3978,0},{1527,3980,0},{1528,3982,0}, {1527,3982,0},{1518,3985,0},{1517,3985,0},{1513,3982,0},{1508,3982,0},{1507,3977,0}, {1508,3975,0},{1508,3972,0},{1513,3970,0},{1525,3972,0},{1532,3968,0},{1535,3965,0}, {1548,3962,0},{1552,3958,0},{1553,3955,0},{1552,3950,0},{1552,3947,0},{1560,3943,0}, {1560,3947,0},{1563,3948,0},{1563,3947,0},{1562,3945,0},{1563,3945,0},{1565,3945,0}, {1567,3947,0},{1568,3945,0},{1573,3945,0},{1575,3942,0},{1580,3943,0},{1590,3930,0}, {1598,3927,0},{1620,3922,0},{1652,3918,0},{1653,3915,0},{1655,3917,0},{1660,3913,0}, {1662,3917,0},{1668,3917,0},{1672,3913,0},{1672,3915,0},{1677,3913,0},{1688,3908,0}, {1702,3907,0},{1707,3903,0},{1718,3902,0},{1723,3897,0},{1730,3897,0},{1738,3893,0}, {1753,3885,0},{1763,3882,0},{1778,3872,0},{1785,3867,0},{1788,3867,0},{1795,3862,0}, {1800,3860,0},{1803,3862,0},{2313,3562,128},{2308,3568,0},{2303,3570,0}, {2298,3570,0},{2298,3572,0},{2293,3573,0},{2292,3575,0},{2290,3573,0},{2288,3577,0}, {2290,3578,0},{2285,3578,0},{2288,3575,0},{2285,3573,0},{2283,3573,0},{2283,3577,0}, {2280,3578,0},{2282,3578,0},{2283,3578,0},{2282,3582,0},{2275,3588,0},{2267,3598,0}, {2268,3605,0},{2267,3615,0},{2263,3623,0},{2258,3628,0},{2250,3630,0},{2247,3637,0}, {2243,3637,0},{2232,3647,0},{2228,3660,0},{2218,3672,0},{2218,3675,0},{2217,3677,0}, {2213,3682,0},{2203,3690,0},{2202,3690,0},{2200,3688,0},{2197,3688,0},{2197,3683,0}, {2193,3688,0},{2188,3687,0},{2185,3688,0},{2183,3683,0},{2182,3687,0},{2182,3690,0}, {2177,3690,0},{2175,3687,0},{2175,3690,0},{2163,3693,0},{2162,3690,0},{2160,3695,0}, {2158,3695,0},{2157,3697,0},{2153,3697,0},{2148,3698,0},{2147,3702,0},{2127,3710,0}, {2113,3723,0},{2107,3727,0},{2103,3725,0},{2102,3722,0},{2107,3720,0},{2108,3720,0}, {2105,3722,0},{2113,3718,0},{2113,3717,0},{2120,3717,0},{2120,3713,0},{2117,3712,0}, {2115,3712,0},{2108,3710,0},{2107,3710,0},{2107,3707,0},{2103,3707,0},{2102,3708,0}, {2098,3708,0},{2087,3712,0},{2072,3715,0},{2068,3715,0},{2063,3718,0},{2053,3722,0}, {2047,3722,0},{2045,3720,0},{2047,3720,0},{2047,3718,0},{2043,3718,0},{2038,3718,0}, {2035,3718,0},{2020,3718,0},{2005,3722,0},{2003,3722,0},{2003,3720,0},{2000,3720,0}, {1983,3728,0},{1977,3728,0},{1977,3727,0},{1968,3728,0},{1968,3725,0},{1962,3725,0}, {1963,3722,0},{1960,3725,0},{1955,3725,0},{1948,3730,0},{1938,3732,0},{1932,3735,0}, {1918,3737,0},{1905,3743,0},{1900,3743,0},{1895,3742,0},{1892,3743,0},{1885,3743,0}, {1880,3748,0},{1872,3752,0},{1872,3755,0},{1872,3758,0},{1872,3760,0},{1873,3768,0}, {1870,3770,0},{1870,3777,0},{1865,3775,0},{1862,3777,0},{1865,3778,0},{1868,3778,0}, {1867,3778,0},{1862,3778,0},{1853,3795,0},{1842,3807,0},{1837,3813,0},{1830,3808,0}, {1830,3810,0},{1828,3812,0},{1823,3818,0},{1823,3823,0},{1825,3827,0},{1828,3827,0}, {1830,3830,0},{1828,3832,0},{1828,3828,0},{1825,3828,0},{1823,3827,0},{1822,3822,0}, {1822,3828,0},{1818,3837,0},{1820,3838,0},{1822,3838,0},{1822,3840,0},{1818,3843,0}, {1817,3842,0},{1815,3845,0},{1813,3843,0},{1812,3848,0},{1813,3850,0},{1807,3852,0}, {1810,3855,0},{1812,3853,0},{1807,3858,0},{1803,3858,0},{1803,3862,0},{63349,4332,128}, {63344,4333,0},{63346,4335,0},{63344,4337,0},{63348,4337,0},{63351,4335,0}, {63359,4337,0},{63369,4345,0},{63368,4350,0},{63371,4348,0},{63389,4347,0}, {63398,4348,0},{63404,4352,0},{63403,4352,0},{63404,4355,0},{63406,4353,0}, {63406,4357,0},{63408,4358,0},{63408,4375,0},{63414,4382,0},{63421,4385,0}, {63441,4388,0},{63451,4392,0},{63459,4397,0},{63464,4403,0},{63471,4408,0}, {63488,4413,0},{63489,4415,0},{63488,4415,0},{63486,4415,0},{63488,4417,0}, {63493,4418,0},{63498,4425,0},{63518,4435,0},{63524,4440,0},{63529,4443,0}, {63538,4448,0},{63538,4450,0},{63541,4452,0},{63543,4452,0},{63549,4448,0}, {63549,4447,0},{63554,4447,0},{63553,4445,0},{63554,4442,0},{63559,4440,0}, {63564,4443,0},{63576,4445,0},{63581,4447,0},{63583,4450,0},{63586,4450,0}, {63591,4450,0},{63603,4442,0},{63604,4440,0},{63609,4437,0},{63618,4430,0}, {63629,4425,0},{63641,4425,0},{63639,4427,0},{63639,4428,0},{63644,4425,0}, {63649,4427,0},{63649,4428,0},{63653,4428,0},{63666,4423,0},{63666,4425,0}, {63674,4418,0},{63679,4418,0},{63691,4408,0},{63698,4407,0},{63708,4407,0}, {63729,4403,0},{63741,4402,0},{63753,4405,0},{63761,4405,0},{63763,4402,0}, {63769,4400,0},{63778,4393,0},{63786,4395,0},{63803,4402,0},{63801,4403,0}, {63803,4403,0},{63813,4410,0},{63818,4412,0},{63818,4413,0},{63826,4415,0}, {63824,4417,0},{63826,4418,0},{63833,4423,0},{63843,4428,0},{63851,4433,0}, {63851,4435,0},{63856,4437,0},{63863,4442,0},{63866,4445,0},{63873,4445,0}, {63881,4442,0},{63878,4445,0},{63883,4447,0},{63888,4448,0},{63901,4442,0}, {63911,4445,0},{63918,4447,0},{63918,4450,0},{63916,4480,0},{63914,4483,0}, {63913,4487,0},{63918,4490,0},{63918,4495,0},{63919,4495,0},{63924,4505,0}, {63936,4513,0},{63943,4527,0},{63941,4528,0},{63936,4528,0},{63933,4530,0}, {63926,4528,0},{63924,4530,0},{63926,4533,0},{63928,4535,0},{63929,4540,0}, {63933,4542,0},{63933,4540,0},{63933,4538,0},{63938,4537,0},{63939,4538,0}, {63941,4557,0},{63939,4558,0},{63936,4560,0},{63933,4558,0},{63933,4560,0}, {63931,4562,0},{63933,4562,0},{63933,4563,0},{63934,4562,0},{63938,4562,0}, {63939,4563,0},{63943,4563,0},{63946,4565,0},{63951,4562,0},{63958,4568,0}, {63956,4577,0},{63953,4582,0},{63958,4588,0},{63959,4592,0},{63958,4595,0}, {63956,4598,0},{63951,4597,0},{63951,4603,0},{63949,4605,0},{63949,4607,0}, {63949,4610,0},{63953,4605,0},{63956,4608,0},{63954,4602,0},{63958,4605,0}, {63963,4612,0},{63966,4618,0},{63964,4625,0},{63959,4627,0},{63954,4625,0}, {63953,4623,0},{63949,4628,0},{63938,4633,0},{63943,4633,0},{63939,4637,0}, {63941,4640,0},{63946,4638,0},{63944,4643,0},{63939,4648,0},{63948,4645,0}, {63951,4642,0},{63953,4632,0},{63959,4637,0},{63963,4637,0},{63964,4632,0}, {63973,4637,0},{63984,4648,0},{63984,4650,0},{63981,4650,0},{63984,4652,0}, {63993,4662,0},{63994,4667,0},{63996,4665,0},{64004,4677,0},{64013,4688,0}, {64016,4695,0},{64014,4697,0},{64008,4698,0},{64003,4708,0},{63999,4705,0}, {63996,4700,0},{63986,4697,0},{63981,4697,0},{63986,4700,0},{63988,4707,0}, {63988,4710,0},{63991,4713,0},{63989,4718,0},{63991,4723,0},{63994,4723,0}, {63996,4720,0},{64001,4717,0},{64006,4717,0},{64006,4710,0},{64009,4712,0}, {64009,4708,0},{64011,4708,0},{64014,4707,0},{64018,4707,0},{64024,4712,0}, {64028,4717,0},{64033,4722,0},{64038,4722,0},{64039,4727,0},{64043,4727,0}, {64044,4732,0},{64046,4737,0},{64048,4738,0},{64051,4737,0},{64051,4735,0}, {64048,4733,0},{64049,4730,0},{64051,4728,0},{64058,4733,0},{64069,4745,0}, {64064,4750,0},{64059,4748,0},{64056,4750,0},{64054,4752,0},{64039,4742,0}, {64034,4742,0},{64028,4742,0},{64024,4742,0},{64028,4748,0},{64034,4752,0}, {64038,4753,0},{64036,4757,0},{64038,4757,0},{64043,4757,0},{64053,4763,0}, {64054,4765,0},{64058,4765,0},{64064,4768,0},{64068,4770,0},{64069,4773,0}, {64079,4780,0},{64074,4783,0},{64069,4792,0},{64064,4792,0},{64066,4793,0}, {64069,4793,0},{64073,4792,0},{64073,4798,0},{64068,4800,0},{64059,4798,0}, {64059,4800,0},{64064,4802,0},{64073,4802,0},{64079,4793,0},{64078,4788,0}, {64076,4787,0},{64076,4783,0},{64081,4780,0},{64078,4778,0},{64076,4775,0}, {64081,4772,0},{64084,4773,0},{64088,4772,0},{64094,4770,0},{64101,4772,0}, {64106,4778,0},{64114,4778,0},{64114,4780,0},{64114,4782,0},{64111,4788,0}, {64113,4792,0},{64111,4793,0},{64119,4795,0},{64123,4795,0},{64124,4792,0}, {64126,4792,0},{64126,4790,0},{64128,4792,0},{64126,4795,0},{64121,4802,0}, {64111,4798,0},{64104,4798,0},{64104,4800,0},{64108,4800,0},{64109,4803,0}, {64114,4802,0},{64119,4805,0},{64129,4805,0},{64131,4800,0},{64136,4793,0}, {64136,4798,0},{64139,4802,0},{64146,4792,0},{64158,4787,0},{64164,4788,0}, {64164,4793,0},{64166,4793,0},{64168,4788,0},{64176,4790,0},{64178,4792,0}, {64178,4797,0},{64183,4797,0},{64186,4798,0},{64184,4800,0},{64183,4798,0}, {64181,4798,0},{64181,4800,0},{64178,4800,0},{64179,4803,0},{64181,4803,0}, {64181,4805,0},{64183,4802,0},{64184,4803,0},{64184,4807,0},{64179,4810,0}, {64176,4810,0},{64178,4812,0},{64176,4815,0},{64171,4815,0},{64163,4820,0}, {64161,4818,0},{64156,4825,0},{64154,4828,0},{64159,4833,0},{64168,4833,0}, {64176,4835,0},{64179,4833,0},{64183,4837,0},{64181,4838,0},{64183,4843,0}, {64183,4845,0},{64184,4845,0},{64184,4848,0},{64186,4848,0},{64183,4852,0}, {64183,4853,0},{64191,4852,0},{64193,4848,0},{64199,4848,0},{64199,4850,0}, {64194,4852,0},{64191,4860,0},{64193,4863,0},{64191,4867,0},{64194,4873,0}, {64193,4873,0},{64199,4880,0},{64201,4878,0},{64204,4880,0},{64208,4880,0}, {64209,4885,0},{64211,4882,0},{64216,4882,0},{64224,4882,0},{64241,4892,0}, {64243,4892,0},{64243,4895,0},{64244,4893,0},{64254,4897,0},{64261,4892,0}, {64269,4890,0},{64269,4888,0},{64269,4887,0},{64281,4888,0},{64281,4885,0}, {64279,4885,0},{64281,4883,0},{64284,4883,0},{64286,4880,0},{64293,4878,0}, {64289,4877,0},{64293,4873,0},{64296,4877,0},{64294,4887,0},{64293,4887,0}, {64286,4892,0},{64288,4895,0},{64293,4897,0},{64303,4898,0},{64304,4902,0}, {64303,4903,0},{64306,4903,0},{64306,4905,0},{64308,4907,0},{64306,4907,0}, {64306,4910,0},{64311,4910,0},{64311,4915,0},{64313,4917,0},{64318,4915,0}, {64321,4918,0},{64319,4920,0},{64321,4920,0},{64324,4918,0},{64323,4917,0}, {64326,4915,0},{64326,4910,0},{64329,4915,0},{64331,4915,0},{64324,4920,0}, {64326,4923,0},{64331,4922,0},{64331,4918,0},{64333,4918,0},{64334,4920,0}, {64334,4922,0},{64336,4920,0},{64341,4925,0},{64341,4928,0},{64338,4932,0}, {64331,4933,0},{64329,4935,0},{64326,4937,0},{64324,4935,0},{64314,4940,0}, {64314,4938,0},{64321,4932,0},{64316,4932,0},{64319,4927,0},{64321,4927,0}, {64319,4923,0},{64318,4925,0},{64313,4923,0},{64313,4928,0},{64308,4927,0}, {64308,4928,0},{64311,4930,0},{64309,4932,0},{64306,4932,0},{64306,4935,0}, {64308,4937,0},{64313,4935,0},{64313,4938,0},{64308,4943,0},{64304,4942,0}, {64301,4945,0},{64299,4945,0},{64301,4948,0},{64301,4953,0},{64298,4955,0}, {64294,4955,0},{64293,4958,0},{64283,4960,0},{64281,4958,0},{64284,4957,0}, {64288,4957,0},{64284,4957,0},{64278,4958,0},{64273,4957,0},{64269,4958,0}, {64271,4960,0},{64271,4962,0},{64266,4965,0},{64259,4968,0},{64256,4965,0}, {64256,4970,0},{64258,4970,0},{64258,4972,0},{64263,4972,0},{64261,4975,0}, {64259,4973,0},{64259,4977,0},{64256,4980,0},{64249,4982,0},{64248,4983,0}, {64248,4987,0},{64246,4987,0},{64244,4987,0},{64244,4985,0},{64243,4985,0}, {64241,4990,0},{64233,4995,0},{64228,4995,0},{64216,4993,0},{64216,4995,0}, {64213,4995,0},{64208,4998,0},{64201,4998,0},{64201,5003,0},{64193,5002,0}, {64189,5003,0},{64184,5003,0},{64181,5007,0},{64174,5008,0},{64174,5010,0}, {64168,5010,0},{64159,5013,0},{64153,5015,0},{64138,5015,0},{64131,5018,0}, {64114,5017,0},{64106,5022,0},{64091,5018,0},{64079,5020,0},{64069,5023,0}, {64061,5025,0},{64058,5027,0},{64049,5028,0},{64041,5033,0},{64034,5035,0}, {64023,5045,0},{64018,5047,0},{64016,5048,0},{64004,5050,0},{63994,5048,0}, {63991,5048,0},{63988,5047,0},{63978,5043,0},{63959,5035,0},{63956,5033,0}, {63956,5035,0},{63953,5032,0},{63949,5030,0},{63948,5028,0},{63946,5027,0}, {63939,5023,0},{63938,5018,0},{63938,5017,0},{63943,5015,0},{63944,5010,0}, {63949,5003,0},{63958,5003,0},{63964,4997,0},{63973,4998,0},{63976,4997,0}, {63976,4993,0},{63979,4990,0},{63993,4990,0},{63994,4988,0},{63993,4987,0}, {63991,4972,0},{63988,4968,0},{63981,4963,0},{63978,4963,0},{63973,4967,0}, {63968,4967,0},{63966,4965,0},{63964,4967,0},{63956,4972,0},{63948,4972,0}, {63946,4973,0},{63939,4970,0},{63933,4970,0},{63929,4972,0},{63924,4973,0}, {63921,4980,0},{63919,4980,0},{63919,4983,0},{63914,4987,0},{63904,4983,0}, {63894,4985,0},{63894,4988,0},{63881,4985,0},{63876,4982,0},{63868,4978,0}, {63866,4977,0},{63866,4975,0},{63863,4973,0},{63859,4975,0},{63854,4978,0}, {63853,4982,0},{63851,4985,0},{63851,4983,0},{63849,4972,0},{63844,4960,0}, {63823,4952,0},{63809,4945,0},{63799,4942,0},{63794,4947,0},{63789,4947,0}, {63788,4948,0},{63783,4948,0},{63783,4950,0},{63779,4948,0},{63771,4950,0}, {63768,4953,0},{63759,4952,0},{63739,4943,0},{63726,4942,0},{63721,4945,0}, {63716,4940,0},{63694,4937,0},{63671,4925,0},{63641,4913,0},{63628,4907,0}, {63601,4900,0},{63574,4888,0},{63551,4883,0},{63546,4883,0},{63536,4878,0}, {63539,4877,0},{63539,4875,0},{63533,4878,0},{63494,4860,0},{63439,4845,0}, {63438,4843,0},{63436,4843,0},{63438,4845,0},{63436,4847,0},{63431,4843,0}, {63419,4840,0},{63413,4837,0},{63399,4835,0},{63356,4820,0},{63324,4805,0}, {63296,4797,0},{63289,4793,0},{63271,4788,0},{63249,4787,0},{63236,4783,0}, {63224,4778,0},{63213,4777,0},{63181,4765,0},{63153,4760,0},{63133,4750,0}, {63133,4745,0},{63131,4747,0},{63131,4748,0},{63121,4743,0},{63108,4738,0}, {63106,4738,0},{63108,4737,0},{63108,4735,0},{63104,4737,0},{63099,4733,0}, {63083,4730,0},{63066,4722,0},{63059,4722,0},{63054,4717,0},{63049,4715,0}, {63046,4715,0},{63046,4712,0},{63038,4713,0},{63038,4703,0},{63036,4702,0}, {63033,4703,0},{63033,4700,0},{63031,4700,0},{63033,4692,0},{63031,4693,0}, {63029,4688,0},{63026,4683,0},{63023,4680,0},{63023,4677,0},{63021,4675,0}, {63018,4667,0},{63021,4652,0},{63018,4632,0},{63014,4620,0},{63004,4593,0}, {62993,4573,0},{62986,4567,0},{62981,4553,0},{62979,4532,0},{62978,4518,0}, {62979,4515,0},{62984,4515,0},{62991,4500,0},{63001,4490,0},{63008,4468,0}, {63011,4438,0},{63021,4433,0},{63019,4437,0},{63013,4440,0},{63014,4440,0}, {63013,4442,0},{63016,4443,0},{63021,4437,0},{63023,4433,0},{63029,4423,0}, {63031,4413,0},{63038,4408,0},{63038,4407,0},{63041,4407,0},{63049,4405,0}, {63054,4400,0},{63063,4395,0},{63069,4398,0},{63074,4397,0},{63086,4385,0}, {63094,4375,0},{63103,4370,0},{63113,4368,0},{63133,4370,0},{63139,4368,0}, {63146,4370,0},{63159,4367,0},{63169,4367,0},{63176,4368,0},{63179,4380,0}, {63181,4377,0},{63184,4375,0},{63186,4377,0},{63191,4377,0},{63201,4368,0}, {63199,4365,0},{63204,4363,0},{63211,4365,0},{63228,4362,0},{63234,4355,0}, {63236,4350,0},{63244,4345,0},{63248,4340,0},{63254,4337,0},{63268,4335,0}, {63279,4330,0},{63286,4332,0},{63291,4328,0},{63298,4328,0},{63303,4325,0}, {63308,4325,0},{63309,4323,0},{63314,4325,0},{63314,4330,0},{63313,4332,0}, {63319,4332,0},{63318,4328,0},{63319,4327,0},{63321,4325,0},{63324,4327,0}, {63329,4325,0},{63336,4327,0},{63341,4327,0},{63341,4330,0},{63344,4328,0}, {63349,4332,0},{2793,63954,129},{2792,63954,1},{2783,63958,1},{2775,63969,1}, {2773,63978,1},{2775,63981,1},{2780,63993,1},{2787,63999,1},{2790,63998,1}, {2793,63999,1},{2797,63998,1},{2802,63999,1},{2803,63996,1},{2810,63996,1}, {2812,63994,1},{2817,63996,1},{2818,63994,1},{2817,63993,1},{2813,63993,1}, {2813,63989,1},{2815,63984,1},{2815,63974,1},{2817,63966,1},{2807,63966,1}, {2802,63958,1},{2800,63954,1},{2793,63954,1},{2857,63913,129},{2857,63904,1}, {2853,63901,1},{2853,63898,1},{2842,63888,1},{2842,63883,1},{2838,63879,1}, {2838,63871,1},{2837,63866,1},{2837,63861,1},{2837,63851,1},{2835,63844,1}, {2825,63851,1},{2820,63853,1},{2807,63864,1},{2798,63868,1},{2802,63883,1}, {2812,63891,1},{2813,63894,1},{2822,63896,1},{2830,63901,1},{2837,63901,1}, {2840,63908,1},{2847,63913,1},{2852,63924,1},{2855,63924,1},{2858,63924,1}, {2855,63916,1},{2857,63913,1},{375,892,129},{370,897,1},{363,895,1},{352,887,1}, {342,882,1},{338,878,1},{332,878,1},{327,873,1},{320,868,1},{323,860,1}, {325,850,1},{327,845,1},{333,842,1},{343,845,1},{347,847,1},{347,858,1}, {352,858,1},{355,862,1},{367,863,1},{377,870,1},{375,882,1},{375,892,1}, {64398,4328,129},{64399,4335,1},{64398,4338,1},{64396,4340,1},{64374,4337,1}, {64363,4343,1},{64356,4345,1},{64348,4350,1},{64344,4348,1},{64343,4347,1}, {64343,4343,1},{64351,4337,1},{64351,4332,1},{64353,4328,1},{64359,4322,1}, {64363,4322,1},{64369,4325,1},{64379,4325,1},{64393,4325,1},{64396,4327,1}, {64398,4328,1},{64943,3918,129},{64934,3918,1},{64929,3922,1},{64924,3922,1}, {64921,3920,1},{64919,3918,1},{64918,3920,1},{64911,3920,1},{64906,3925,1}, {64904,3928,1},{64909,3927,1},{64909,3930,1},{64911,3928,1},{64911,3930,1}, {64906,3933,1},{64906,3935,1},{64903,3938,1},{64899,3938,1},{64898,3940,1}, {64901,3942,1},{64904,3938,1},{64906,3942,1},{64893,3945,1},{64889,3948,1}, {64889,3953,1},{64891,3957,1},{64898,3957,1},{64906,3953,1},{64918,3953,1}, {64923,3950,1},{64921,3948,1},{64916,3950,1},{64918,3947,1},{64914,3945,1}, {64918,3943,1},{64918,3942,1},{64921,3943,1},{64924,3942,1},{64929,3943,1}, {64931,3940,1},{64941,3937,1},{64946,3935,1},{64956,3937,1},{64963,3932,1}, {64963,3930,1},{64956,3930,1},{64951,3928,1},{64949,3923,1},{64944,3920,1}, {64946,3920,1},{64943,3918,1},{2398,3288,130},{2390,3285,2},{2390,3278,2}, {2388,3283,2},{2387,3283,2},{2385,3287,2},{2382,3288,2},{2372,3287,2},{2372,3285,2}, {2372,3282,2},{2368,3285,2},{2370,3287,2},{2368,3287,2},{2367,3285,2},{2362,3285,2}, {2358,3282,2},{2357,3282,2},{2357,3278,2},{2358,3278,2},{2358,3275,2},{2362,3275,2}, {2363,3272,2},{2363,3268,2},{2362,3268,2},{2358,3270,2},{2357,3273,2},{2355,3273,2}, {2353,3270,2},{2355,3267,2},{2350,3260,2},{2348,3263,2},{2350,3270,2},{2353,3273,2}, {2355,3278,2},{2352,3287,2},{2347,3282,2},{2350,3287,2},{2343,3290,2},{2343,3287,2}, {2338,3282,2},{2335,3290,2},{2330,3292,2},{2328,3288,2},{2333,3287,2},{2332,3283,2}, {2328,3285,2},{2327,3283,2},{2330,3282,2},{2328,3280,2},{2327,3280,2},{2327,3277,2}, {2323,3275,2},{2323,3272,2},{2320,3273,2},{2318,3270,2},{2315,3270,2},{2313,3268,2}, {2312,3270,2},{2308,3268,2},{2308,3265,2},{2307,3268,2},{2305,3263,2},{2303,3265,2}, {2300,3263,2},{2298,3265,2},{2292,3260,2},{2293,3255,2},{2288,3257,2},{2278,3257,2}, {2277,3255,2},{2277,3252,2},{2275,3252,2},{2272,3242,2},{2265,3238,2},{2262,3237,2}, {2263,3232,2},{2267,3232,2},{2268,3228,2},{2272,3228,2},{2273,3225,2},{2277,3225,2}, {2277,3222,2},{2277,3217,2},{2280,3217,2},{2277,3215,2},{2277,3212,2},{2275,3212,2}, {2277,3207,2},{2273,3205,2},{2273,3200,2},{2272,3200,2},{2270,3198,2},{2268,3197,2}, {2265,3193,2},{2265,3188,2},{2263,3188,2},{2262,3185,2},{2258,3183,2},{2258,3185,2}, {2257,3187,2},{2255,3185,2},{2258,3183,2},{2257,3178,2},{2260,3177,2},{2262,3168,2}, {2265,3167,2},{2265,3165,2},{2263,3167,2},{2262,3165,2},{2257,3168,2},{2252,3173,2}, {2252,3177,2},{2248,3182,2},{2250,3177,2},{2248,3175,2},{2247,3177,2},{2247,3173,2}, {2243,3173,2},{2247,3170,2},{2247,3168,2},{2240,3168,2},{2238,3165,2},{2238,3167,2}, {2233,3160,2},{2223,3147,2},{2223,3148,2},{2220,3143,2},{2215,3138,2},{2213,3135,2}, {2210,3137,2},{2203,3135,2},{2197,3135,2},{2192,3132,2},{2185,3123,2},{2182,3122,2}, {2182,3118,2},{2180,3120,2},{2177,3117,2},{2173,3118,2},{2165,3117,2},{2160,3110,2}, {2150,3103,2},{2152,3107,2},{2162,3113,2},{2162,3118,2},{2170,3120,2},{2172,3122,2}, {2175,3122,2},{2177,3122,2},{2177,3125,2},{2178,3127,2},{2177,3130,2},{2192,3138,2}, {2207,3140,2},{2213,3143,2},{2213,3147,2},{2218,3152,2},{2218,3150,2},{2220,3153,2}, {2218,3155,2},{2222,3155,2},{2225,3160,2},{2223,3168,2},{2225,3165,2},{2227,3165,2}, {2230,3162,2},{2232,3165,2},{2232,3167,2},{2233,3167,2},{2232,3170,2},{2233,3168,2}, {2235,3172,2},{2237,3177,2},{2237,3178,2},{2237,3180,2},{2233,3182,2},{2235,3183,2}, {2238,3183,2},{2238,3182,2},{2240,3183,2},{2242,3180,2},{2242,3190,2},{2245,3188,2}, {2247,3193,2},{2250,3193,2},{2248,3197,2},{2255,3195,2},{2257,3193,2},{2255,3198,2}, {2257,3198,2},{2260,3197,2},{2265,3200,2},{2265,3203,2},{2263,3205,2},{2267,3203,2}, {2272,3212,2},{2273,3215,2},{2272,3218,2},{2270,3222,2},{2268,3222,2},{2268,3225,2}, {2265,3223,2},{2263,3228,2},{2260,3228,2},{2260,3232,2},{2257,3230,2},{2255,3225,2}, {2252,3225,2},{2255,3230,2},{2252,3232,2},{2252,3233,2},{2253,3232,2},{2260,3233,2}, {2260,3242,2},{2265,3242,2},{2268,3245,2},{2270,3248,2},{2272,3247,2},{2275,3258,2}, {2282,3260,2},{2283,3260,2},{2283,3263,2},{2287,3262,2},{2287,3260,2},{2290,3260,2}, {2288,3263,2},{2290,3263,2},{2292,3263,2},{2293,3265,2},{2292,3270,2},{2295,3268,2}, {2297,3270,2},{2295,3272,2},{2293,3270,2},{2293,3272,2},{2298,3273,2},{2300,3273,2}, {2300,3275,2},{2305,3273,2},{2307,3275,2},{2307,3278,2},{2302,3278,2},{2298,3287,2}, {2292,3293,2},{2295,3293,2},{2292,3298,2},{2292,3307,2},{2297,3300,2},{2297,3295,2}, {2298,3295,2},{2297,3293,2},{2300,3293,2},{2302,3295,2},{2303,3293,2},{2307,3290,2}, {2307,3287,2},{2308,3287,2},{2313,3285,2},{2317,3285,2},{2317,3288,2},{2313,3293,2}, {2313,3297,2},{2322,3292,2},{2323,3290,2},{2325,3292,2},{2325,3297,2},{2323,3295,2}, {2322,3300,2},{2323,3302,2},{2327,3300,2},{2333,3302,2},{2333,3298,2},{2335,3297,2}, {2337,3298,2},{2337,3300,2},{2340,3300,2},{2342,3298,2},{2340,3297,2},{2338,3297,2}, {2340,3295,2},{2342,3297,2},{2345,3292,2},{2347,3292,2},{2348,3293,2},{2348,3290,2}, {2352,3290,2},{2350,3300,2},{2352,3303,2},{2352,3297,2},{2355,3297,2},{2353,3295,2}, {2357,3295,2},{2355,3293,2},{2357,3292,2},{2358,3290,2},{2362,3290,2},{2363,3292,2}, {2365,3292,2},{2362,3298,2},{2363,3297,2},{2365,3298,2},{2367,3298,2},{2368,3300,2}, {2370,3298,2},{2372,3300,2},{2373,3297,2},{2375,3298,2},{2377,3295,2},{2382,3293,2}, {2387,3288,2},{2388,3290,2},{2392,3288,2},{2393,3290,2},{2398,3288,2},{1163,3732,130}, {1167,3728,2},{1170,3730,2},{1170,3733,2},{1173,3730,2},{1177,3730,2},{1180,3728,2}, {1183,3722,2},{1180,3718,2},{1180,3713,2},{1185,3712,2},{1185,3710,2},{1180,3708,2}, {1183,3707,2},{1183,3703,2},{1188,3703,2},{1188,3700,2},{1190,3698,2},{1193,3700,2}, {1205,3700,2},{1210,3702,2},{1212,3700,2},{1213,3702,2},{1217,3702,2},{1225,3707,2}, {1228,3713,2},{1227,3717,2},{1222,3717,2},{1220,3727,2},{1222,3728,2},{1225,3728,2}, {1228,3732,2},{1227,3735,2},{1228,3738,2},{1230,3748,2},{1228,3752,2},{1223,3755,2}, {1217,3755,2},{1212,3760,2},{1202,3758,2},{1200,3757,2},{1198,3757,2},{1192,3753,2}, {1190,3748,2},{1183,3752,2},{1183,3748,2},{1180,3745,2},{1173,3743,2},{1165,3742,2}, {1162,3737,2},{1163,3732,2},{465,3617,130},{462,3618,2},{460,3617,2},{453,3620,2}, {448,3620,2},{445,3622,2},{433,3618,2},{430,3622,2},{418,3622,2},{413,3625,2}, {407,3622,2},{403,3622,2},{400,3620,2},{397,3620,2},{395,3618,2},{392,3620,2}, {388,3622,2},{375,3627,2},{368,3625,2},{368,3622,2},{360,3620,2},{352,3620,2}, {337,3625,2},{335,3625,2},{332,3622,2},{325,3628,2},{318,3630,2},{318,3633,2}, {312,3638,2},{302,3638,2},{298,3643,2},{290,3653,2},{290,3665,2},{288,3668,2}, {285,3670,2},{282,3670,2},{273,3670,2},{272,3668,2},{248,3670,2},{242,3665,2}, {240,3662,2},{242,3660,2},{240,3655,2},{245,3652,2},{248,3653,2},{252,3653,2}, {257,3652,2},{265,3643,2},{272,3645,2},{285,3638,2},{292,3628,2},{295,3625,2}, {298,3625,2},{297,3622,2},{298,3618,2},{298,3613,2},{302,3612,2},{303,3613,2}, {312,3615,2},{317,3613,2},{322,3615,2},{320,3612,2},{322,3610,2},{325,3603,2}, {332,3598,2},{332,3595,2},{342,3593,2},{347,3595,2},{355,3593,2},{355,3592,2}, {348,3593,2},{348,3590,2},{355,3590,2},{363,3583,2},{370,3583,2},{378,3585,2}, {388,3587,2},{395,3585,2},{413,3593,2},{438,3592,2},{458,3595,2},{463,3598,2}, {463,3600,2},{458,3600,2},{452,3603,2},{455,3605,2},{457,3603,2},{462,3603,2}, {463,3603,2},{462,3613,2},{463,3613,2},{465,3612,2},{467,3613,2},{467,3617,2}, {465,3617,2},{65528,2973,130},{65528,2975,2},{65523,2978,2},{65523,2980,2}, {65519,2982,2},{65519,2985,2},{65521,2987,2},{65521,2990,2},{65518,2988,2}, {65508,2988,2},{65498,2982,2},{65494,2975,2},{65491,2968,2},{65488,2965,2}, {65489,2965,2},{65488,2963,2},{65479,2960,2},{65476,2957,2},{65473,2948,2}, {65474,2947,2},{65476,2943,2},{65469,2942,2},{65466,2937,2},{65474,2938,2}, {65478,2933,2},{65476,2932,2},{65478,2930,2},{65479,2932,2},{65483,2935,2}, {65488,2932,2},{65489,2937,2},{65494,2938,2},{65498,2938,2},{65503,2943,2}, {65511,2945,2},{65519,2950,2},{65524,2967,2},{65528,2970,2},{65528,2975,2}, {65368,2922,130},{65366,2925,2},{65363,2925,2},{65363,2927,2},{65358,2927,2}, {65353,2928,2},{65346,2928,2},{65343,2930,2},{65343,2932,2},{65338,2933,2}, {65338,2935,2},{65336,2933,2},{65333,2937,2},{65331,2937,2},{65333,2933,2}, {65329,2933,2},{65329,2932,2},{65326,2932,2},{65329,2928,2},{65323,2927,2}, {65324,2927,2},{65328,2927,2},{65326,2925,2},{65323,2925,2},{65321,2927,2}, {65319,2928,2},{65321,2923,2},{65319,2920,2},{65316,2922,2},{65316,2918,2}, {65313,2918,2},{65311,2920,2},{65309,2918,2},{65311,2917,2},{65309,2915,2}, {65303,2912,2},{65308,2912,2},{65304,2910,2},{65304,2908,2},{65296,2905,2}, {65298,2905,2},{65299,2907,2},{65306,2903,2},{65306,2902,2},{65299,2900,2}, {65298,2898,2},{65296,2890,2},{65288,2888,2},{65289,2888,2},{65288,2887,2}, {65289,2885,2},{65291,2883,2},{65299,2885,2},{65304,2893,2},{65304,2895,2}, {65309,2897,2},{65311,2897,2},{65303,2888,2},{65308,2892,2},{65311,2893,2}, {65313,2892,2},{65311,2888,2},{65309,2887,2},{65314,2885,2},{65318,2887,2}, {65319,2887,2},{65319,2888,2},{65321,2890,2},{65323,2885,2},{65326,2890,2}, {65326,2892,2},{65331,2897,2},{65336,2895,2},{65338,2893,2},{65334,2890,2}, {65333,2892,2},{65331,2890,2},{65331,2888,2},{65334,2888,2},{65339,2890,2}, {65339,2893,2},{65343,2895,2},{65353,2900,2},{65356,2903,2},{65358,2902,2}, {65361,2902,2},{65361,2903,2},{65369,2910,2},{65374,2908,2},{65373,2907,2}, {65366,2902,2},{65369,2902,2},{65374,2903,2},{65378,2905,2},{65373,2912,2}, {65373,2915,2},{65369,2918,2},{65366,2923,2},{65268,1818,130},{65269,1822,2}, {65281,1825,2},{65286,1822,2},{65294,1823,2},{65296,1823,2},{65296,1827,2}, {65301,1828,2},{65324,1830,2},{65334,1818,2},{65338,1818,2},{65344,1817,2}, {65348,1818,2},{65353,1817,2},{65358,1805,2},{65364,1805,2},{65369,1808,2}, {65371,1812,2},{65369,1813,2},{65364,1815,2},{65364,1820,2},{65363,1820,2}, {65366,1822,2},{65371,1818,2},{65376,1820,2},{65378,1825,2},{65376,1828,2}, {65369,1828,2},{65369,1832,2},{65371,1833,2},{65371,1835,2},{65376,1840,2}, {65376,1843,2},{65374,1847,2},{65376,1848,2},{65378,1852,2},{65369,1848,2}, {65364,1845,2},{65358,1830,2},{65356,1832,2},{65354,1830,2},{65353,1830,2}, {65349,1828,2},{65346,1828,2},{65341,1828,2},{65336,1830,2},{65336,1835,2}, {65334,1837,2},{65338,1838,2},{65339,1842,2},{65339,1843,2},{65331,1840,2}, {65318,1842,2},{65318,1847,2},{65328,1857,2},{65328,1860,2},{65323,1860,2}, {65318,1855,2},{65313,1843,2},{65311,1845,2},{65309,1850,2},{65306,1840,2}, {65296,1835,2},{65289,1828,2},{65279,1830,2},{65268,1825,2},{65264,1822,2}, {65264,1818,2},{65268,1818,2},{64594,2855,130},{64593,2853,2},{64594,2853,2}, {64598,2852,2},{64599,2850,2},{64598,2848,2},{64594,2848,2},{64591,2848,2}, {64589,2847,2},{64589,2850,2},{64586,2853,2},{64583,2845,2},{64584,2835,2}, {64583,2833,2},{64583,2832,2},{64593,2835,2},{64596,2833,2},{64598,2832,2}, {64606,2833,2},{64608,2832,2},{64614,2835,2},{64619,2832,2},{64628,2833,2}, {64639,2848,2},{64648,2853,2},{64668,2873,2},{64686,2887,2},{64688,2888,2}, {64686,2892,2},{64688,2890,2},{64676,2910,2},{64671,2915,2},{64656,2910,2}, {64651,2908,2},{64649,2905,2},{64636,2900,2},{64633,2892,2},{64628,2890,2}, {64623,2885,2},{64616,2880,2},{64604,2872,2},{64603,2870,2},{64599,2873,2}, {64591,2872,2},{64591,2870,2},{64596,2867,2},{64596,2862,2},{64593,2853,2}, {64709,3057,130},{64716,3057,2},{64721,3058,2},{64726,3053,2},{64729,3053,2}, {64733,3050,2},{64734,3045,2},{64736,3045,2},{64739,3042,2},{64741,3042,2}, {64743,3038,2},{64746,3035,2},{64748,3033,2},{64748,3030,2},{64751,3027,2}, {64759,3027,2},{64766,3023,2},{64774,3020,2},{64781,3022,2},{64789,3022,2}, {64794,3018,2},{64799,3018,2},{64803,3015,2},{64806,3015,2},{64813,3012,2}, {64816,3008,2},{64824,2997,2},{64828,2985,2},{64831,2978,2},{64841,2972,2}, {64846,2967,2},{64853,2963,2},{64858,2955,2},{64866,2950,2},{64874,2948,2}, {64879,2948,2},{64883,2948,2},{64884,2948,2},{64883,2947,2},{64884,2943,2}, {64889,2940,2},{64894,2940,2},{64908,2933,2},{64914,2933,2},{64918,2932,2}, {64919,2928,2},{64923,2927,2},{64928,2918,2},{64944,2918,2},{64946,2923,2}, {64954,2932,2},{64959,2933,2},{64961,2935,2},{64961,2933,2},{64964,2935,2}, {64973,2933,2},{64974,2933,2},{64971,2937,2},{64973,2938,2},{64983,2933,2}, {64989,2928,2},{65013,2915,2},{65023,2913,2},{65028,2910,2},{65034,2912,2}, {65058,2910,2},{65068,2912,2},{65074,2910,2},{65081,2915,2},{65086,2917,2}, {65086,2918,2},{65084,2920,2},{65094,2920,2},{65101,2922,2},{65106,2922,2}, {65124,2927,2},{65131,2923,2},{65124,2922,2},{65101,2915,2},{65104,2905,2}, {65108,2905,2},{65114,2910,2},{65118,2910,2},{65121,2908,2},{65126,2910,2}, {65133,2908,2},{65136,2910,2},{65144,2910,2},{65146,2912,2},{65149,2910,2}, {65153,2913,2},{65159,2910,2},{65169,2915,2},{65193,2913,2},{65201,2915,2}, {65203,2922,2},{65203,2920,2},{65201,2932,2},{65198,2935,2},{65183,2933,2}, {65178,2935,2},{65159,2933,2},{65154,2937,2},{65146,2938,2},{65139,2943,2}, {65134,2943,2},{65126,2948,2},{65119,2950,2},{65116,2953,2},{65111,2955,2}, {65101,2960,2},{65098,2965,2},{65094,2967,2},{65091,2965,2},{65093,2967,2}, {65078,2965,2},{65058,2960,2},{65051,2960,2},{65049,2962,2},{65046,2958,2}, {65044,2960,2},{65044,2962,2},{65043,2967,2},{65041,2968,2},{65039,2973,2}, {65034,2978,2},{65031,2977,2},{65026,2982,2},{65019,2982,2},{65018,2980,2}, {65016,2982,2},{65014,2982,2},{65013,2980,2},{65009,2980,2},{65009,2978,2}, {65003,2978,2},{64994,2975,2},{64991,2973,2},{64979,2985,2},{64966,2990,2}, {64959,2993,2},{64948,2995,2},{64944,2995,2},{64941,2988,2},{64936,2983,2}, {64936,2978,2},{64931,2973,2},{64924,2972,2},{64916,2973,2},{64909,2972,2}, {64908,2975,2},{64899,2982,2},{64891,2990,2},{64888,2995,2},{64886,2995,2}, {64891,3007,2},{64889,3015,2},{64874,3028,2},{64873,3032,2},{64861,3040,2}, {64856,3040,2},{64839,3057,2},{64834,3058,2},{64833,3055,2},{64826,3055,2}, {64824,3053,2},{64826,3050,2},{64824,3050,2},{64819,3053,2},{64818,3053,2}, {64814,3055,2},{64801,3062,2},{64793,3058,2},{64788,3060,2},{64786,3058,2}, {64784,3058,2},{64781,3062,2},{64778,3062,2},{64776,3065,2},{64771,3067,2}, {64768,3072,2},{64761,3075,2},{64758,3075,2},{64749,3080,2},{64746,3083,2}, {64741,3085,2},{64739,3087,2},{64734,3090,2},{64726,3092,2},{64724,3095,2}, {64721,3097,2},{64719,3097,2},{64719,3095,2},{64718,3095,2},{64713,3097,2}, {64709,3098,2},{64706,3102,2},{64703,3103,2},{64698,3112,2},{64693,3115,2}, {64686,3113,2},{64683,3115,2},{64681,3117,2},{64676,3117,2},{64678,3117,2}, {64673,3120,2},{64661,3118,2},{64661,3117,2},{64664,3113,2},{64663,3113,2}, {64661,3110,2},{64659,3110,2},{64656,3103,2},{64658,3102,2},{64669,3090,2}, {64679,3078,2},{64679,3072,2},{64683,3072,2},{64683,3068,2},{64688,3068,2}, {64686,3063,2},{64686,3065,2},{64684,3065,2},{64679,3062,2},{64678,3055,2}, {64678,3053,2},{64681,3057,2},{64684,3058,2},{64683,3050,2},{64684,3047,2}, {64686,3047,2},{64689,3045,2},{64693,3043,2},{64701,3047,2},{64706,3057,2}, {64708,3057,2},{64711,3057,2},{27,3398,130},{23,3400,2},{17,3398,2},{15,3400,2}, {10,3398,2},{10,3395,2},{8,3395,2},{0,3400,2},{65531,3400,2},{65531,3403,2}, {65528,3402,2},{65528,3405,2},{65524,3405,2},{65529,3407,2},{65529,3413,2}, {65528,3413,2},{65526,3412,2},{65524,3413,2},{65523,3408,2},{65521,3408,2}, {65516,3413,2},{65518,3418,2},{65516,3418,2},{65513,3420,2},{65511,3425,2}, {65509,3425,2},{65506,3423,2},{65504,3425,2},{65503,3425,2},{65501,3428,2}, {65499,3428,2},{65498,3427,2},{65496,3428,2},{65496,3430,2},{65501,3432,2}, {65508,3438,2},{65513,3438,2},{65513,3435,2},{65516,3435,2},{65519,3445,2}, {65518,3450,2},{65521,3457,2},{65521,3460,2},{65528,3468,2},{65526,3472,2}, {65528,3473,2},{65523,3472,2},{65519,3473,2},{65516,3480,2},{65509,3482,2}, {65508,3485,2},{65504,3483,2},{65504,3480,2},{65508,3478,2},{65506,3475,2}, {65503,3475,2},{65501,3475,2},{65503,3460,2},{65504,3457,2},{65501,3445,2}, {65496,3445,2},{65491,3450,2},{65489,3450,2},{65483,3442,2},{65484,3440,2}, {65486,3442,2},{65488,3440,2},{65491,3440,2},{65491,3437,2},{65489,3437,2}, {65488,3433,2},{65491,3432,2},{65491,3430,2},{65488,3430,2},{65489,3428,2}, {65493,3425,2},{65493,3422,2},{65494,3422,2},{65494,3420,2},{65488,3417,2}, {65483,3415,2},{65483,3413,2},{65483,3410,2},{65481,3410,2},{65479,3407,2}, {65476,3408,2},{65473,3405,2},{65463,3403,2},{65463,3407,2},{65458,3408,2}, {65456,3407,2},{65449,3418,2},{65448,3418,2},{65443,3413,2},{65436,3413,2}, {65438,3408,2},{65438,3410,2},{65438,3407,2},{65436,3407,2},{65436,3403,2}, {65434,3405,2},{65434,3410,2},{65433,3407,2},{65429,3407,2},{65426,3403,2}, {65426,3398,2},{65424,3398,2},{65423,3400,2},{65419,3398,2},{65416,3392,2}, {65411,3387,2},{65408,3390,2},{65408,3393,2},{65406,3393,2},{65403,3398,2}, {65399,3398,2},{65399,3397,2},{65401,3398,2},{65403,3397,2},{65404,3390,2}, {65403,3380,2},{65399,3382,2},{65398,3382,2},{65398,3383,2},{65394,3385,2}, {65396,3382,2},{65398,3380,2},{65394,3378,2},{65393,3378,2},{65393,3385,2}, {65389,3387,2},{65389,3388,2},{65386,3390,2},{65388,3393,2},{65386,3393,2}, {65384,3395,2},{65383,3392,2},{65384,3388,2},{65384,3383,2},{65389,3380,2}, {65388,3378,2},{65386,3372,2},{65389,3368,2},{65388,3365,2},{65384,3368,2}, {65383,3368,2},{65381,3367,2},{65379,3362,2},{65379,3365,2},{65378,3365,2}, {65376,3368,2},{65374,3368,2},{65373,3367,2},{65373,3372,2},{65368,3370,2}, {65368,3353,2},{65359,3365,2},{65358,3365,2},{65359,3357,2},{65354,3355,2}, {65354,3353,2},{65353,3352,2},{65351,3347,2},{65353,3345,2},{65356,3345,2}, {65356,3338,2},{65351,3332,2},{65344,3330,2},{65344,3328,2},{65343,3330,2}, {65343,3333,2},{65344,3335,2},{65348,3345,2},{65348,3347,2},{65346,3345,2}, {65344,3348,2},{65343,3348,2},{65341,3347,2},{65339,3353,2},{65338,3353,2}, {65338,3357,2},{65333,3355,2},{65334,3348,2},{65339,3340,2},{65338,3338,2}, {65333,3340,2},{65331,3338,2},{65334,3333,2},{65331,3332,2},{65334,3330,2}, {65336,3328,2},{65334,3327,2},{65333,3328,2},{65329,3330,2},{65331,3322,2}, {65328,3322,2},{65324,3320,2},{65323,3322,2},{65324,3327,2},{65323,3333,2}, {65319,3337,2},{65321,3343,2},{65318,3360,2},{65319,3362,2},{65324,3368,2}, {65328,3377,2},{65323,3382,2},{65314,3383,2},{65308,3375,2},{65308,3372,2}, {65306,3368,2},{65304,3365,2},{65299,3360,2},{65298,3353,2},{65294,3350,2}, {65293,3353,2},{65291,3353,2},{65291,3347,2},{65289,3340,2},{65286,3347,2}, {65283,3345,2},{65283,3342,2},{65281,3343,2},{65281,3340,2},{65283,3338,2}, {65283,3335,2},{65284,3335,2},{65286,3333,2},{65284,3333,2},{65286,3330,2}, {65284,3320,2},{65289,3317,2},{65289,3313,2},{65294,3313,2},{65298,3310,2}, {65298,3302,2},{65298,3295,2},{65294,3292,2},{65291,3290,2},{65289,3290,2}, {65288,3287,2},{65279,3292,2},{65279,3288,2},{65273,3287,2},{65268,3292,2}, {65266,3288,2},{65264,3288,2},{65259,3292,2},{65258,3297,2},{65256,3293,2}, {65254,3293,2},{65253,3297,2},{65251,3297,2},{65251,3302,2},{65248,3303,2}, {65249,3295,2},{65251,3292,2},{65256,3290,2},{65253,3288,2},{65251,3285,2}, {65248,3283,2},{65239,3282,2},{65234,3275,2},{65238,3275,2},{65243,3275,2}, {65244,3280,2},{65248,3275,2},{65248,3272,2},{65249,3272,2},{65253,3285,2}, {65256,3285,2},{65261,3287,2},{65264,3287,2},{65264,3282,2},{65268,3285,2}, {65269,3282,2},{65271,3280,2},{65273,3282,2},{65276,3282,2},{65278,3283,2}, {65279,3283,2},{65279,3280,2},{65284,3283,2},{65288,3280,2},{65286,3277,2}, {65283,3273,2},{65288,3273,2},{65284,3268,2},{65284,3267,2},{65288,3270,2}, {65293,3265,2},{65296,3267,2},{65298,3265,2},{65288,3262,2},{65279,3252,2}, {65281,3250,2},{65284,3252,2},{65286,3255,2},{65291,3255,2},{65289,3250,2}, {65291,3248,2},{65289,3243,2},{65293,3243,2},{65293,3237,2},{65294,3235,2}, {65294,3237,2},{65296,3237,2},{65296,3233,2},{65301,3232,2},{65303,3232,2}, {65303,3235,2},{65304,3232,2},{65309,3232,2},{65308,3225,2},{65309,3223,2}, {65311,3222,2},{65304,3222,2},{65304,3220,2},{65298,3217,2},{65298,3212,2}, {65299,3212,2},{65299,3207,2},{65298,3207,2},{65296,3207,2},{65293,3207,2}, {65293,3210,2},{65289,3212,2},{65288,3215,2},{65286,3217,2},{65281,3217,2}, {65283,3212,2},{65286,3210,2},{65284,3207,2},{65283,3207,2},{65288,3203,2}, {65286,3202,2},{65288,3200,2},{65286,3198,2},{65276,3198,2},{65276,3193,2}, {65273,3197,2},{65268,3198,2},{65268,3200,2},{65264,3200,2},{65259,3202,2}, {65259,3198,2},{65259,3197,2},{65264,3197,2},{65268,3193,2},{65271,3193,2}, {65271,3190,2},{65273,3190,2},{65264,3190,2},{65264,3187,2},{65266,3188,2}, {65268,3185,2},{65264,3182,2},{65259,3185,2},{65256,3183,2},{65253,3182,2}, {65253,3178,2},{65263,3178,2},{65264,3178,2},{65264,3175,2},{65268,3178,2}, {65269,3177,2},{65271,3178,2},{65271,3182,2},{65274,3182,2},{65274,3187,2}, {65274,3180,2},{65273,3177,2},{65274,3175,2},{65281,3175,2},{65281,3172,2}, {65286,3172,2},{65286,3177,2},{65289,3180,2},{65294,3180,2},{65296,3175,2}, {65299,3175,2},{65299,3178,2},{65301,3175,2},{65303,3175,2},{65303,3170,2}, {65301,3170,2},{65299,3163,2},{65303,3163,2},{65321,3168,2},{65324,3168,2}, {65328,3170,2},{65331,3168,2},{65336,3170,2},{65336,3168,2},{65333,3167,2}, {65331,3162,2},{65334,3162,2},{65341,3163,2},{65346,3168,2},{65364,3172,2}, {65369,3172,2},{65374,3177,2},{65379,3175,2},{65381,3175,2},{65386,3173,2}, {65388,3175,2},{65389,3177,2},{65388,3178,2},{65388,3180,2},{65401,3182,2}, {65404,3185,2},{65411,3187,2},{65419,3187,2},{65423,3185,2},{65426,3187,2}, {65429,3185,2},{65433,3187,2},{65434,3185,2},{65433,3183,2},{65438,3183,2}, {65431,3180,2},{65431,3177,2},{65433,3177,2},{65438,3178,2},{65436,3178,2}, {65441,3177,2},{65449,3177,2},{65451,3175,2},{65451,3170,2},{65456,3170,2}, {65463,3173,2},{65471,3180,2},{65473,3178,2},{65479,3180,2},{65483,3182,2}, {65488,3183,2},{65493,3192,2},{65506,3200,2},{65506,3202,2},{65503,3203,2}, {65504,3203,2},{65511,3200,2},{65511,3198,2},{65518,3198,2},{65518,3197,2}, {65516,3192,2},{65521,3193,2},{65523,3192,2},{65526,3198,2},{65526,3207,2}, {65529,3205,2},{65529,3202,2},{65531,3202,2},{65533,3208,2},{65531,3212,2}, {65528,3218,2},{65531,3220,2},{65533,3222,2},{0,3220,2},{3,3220,2},{0,3220,2}, {65533,3225,2},{65533,3228,2},{0,3230,2},{2,3227,2},{5,3225,2},{2,3235,2}, {65534,3235,2},{65533,3237,2},{65534,3237,2},{2,3238,2},{5,3238,2},{8,3237,2}, {8,3243,2},{12,3245,2},{10,3245,2},{5,3242,2},{3,3243,2},{3,3247,2},{8,3250,2}, {5,3252,2},{8,3253,2},{5,3255,2},{5,3257,2},{7,3257,2},{12,3255,2},{10,3258,2}, {12,3258,2},{13,3257,2},{13,3260,2},{15,3258,2},{18,3258,2},{18,3257,2}, {20,3258,2},{20,3262,2},{28,3265,2},{28,3267,2},{23,3265,2},{22,3268,2}, {17,3265,2},{17,3270,2},{20,3272,2},{18,3273,2},{13,3270,2},{13,3265,2}, {8,3267,2},{10,3275,2},{13,3275,2},{10,3278,2},{15,3282,2},{15,3285,2}, {18,3285,2},{17,3287,2},{20,3288,2},{17,3290,2},{15,3288,2},{13,3290,2}, {12,3287,2},{10,3290,2},{7,3290,2},{8,3298,2},{18,3310,2},{22,3310,2},{22,3305,2}, {25,3308,2},{27,3307,2},{25,3312,2},{22,3312,2},{22,3313,2},{25,3313,2}, {27,3317,2},{30,3315,2},{32,3315,2},{37,3327,2},{38,3327,2},{40,3320,2}, {43,3318,2},{43,3323,2},{47,3325,2},{48,3328,2},{45,3328,2},{42,3330,2}, {45,3335,2},{48,3337,2},{48,3340,2},{45,3337,2},{42,3335,2},{38,3337,2}, {38,3332,2},{35,3332,2},{37,3337,2},{35,3337,2},{33,3337,2},{33,3340,2}, {32,3343,2},{35,3342,2},{35,3347,2},{33,3345,2},{32,3350,2},{30,3350,2}, {30,3352,2},{28,3352,2},{28,3345,2},{28,3340,2},{28,3343,2},{27,3342,2}, {25,3345,2},{23,3342,2},{22,3347,2},{18,3348,2},{23,3350,2},{20,3350,2}, {22,3353,2},{18,3352,2},{20,3353,2},{18,3355,2},{18,3357,2},{20,3358,2}, {22,3362,2},{28,3363,2},{32,3362,2},{32,3363,2},{32,3367,2},{33,3370,2}, {32,3375,2},{27,3370,2},{25,3375,2},{20,3370,2},{18,3375,2},{20,3380,2}, {22,3378,2},{23,3380,2},{20,3380,2},{15,3382,2},{17,3383,2},{20,3383,2}, {17,3390,2},{20,3390,2},{20,3392,2},{23,3392,2},{23,3395,2},{27,3398,2}, {63739,2702,130},{63741,2702,2},{63743,2705,2},{63746,2707,2},{63746,2708,2}, {63748,2708,2},{63753,2713,2},{63751,2710,2},{63753,2708,2},{63756,2708,2}, {63756,2710,2},{63758,2708,2},{63761,2713,2},{63768,2717,2},{63766,2718,2}, {63769,2718,2},{63771,2722,2},{63773,2723,2},{63774,2722,2},{63774,2725,2}, {63776,2725,2},{63774,2727,2},{63776,2730,2},{63779,2730,2},{63779,2735,2}, {63783,2733,2},{63783,2737,2},{63784,2737,2},{63788,2737,2},{63789,2738,2}, {63791,2732,2},{63804,2745,2},{63808,2742,2},{63809,2745,2},{63809,2747,2}, {63813,2750,2},{63818,2752,2},{63819,2755,2},{63823,2755,2},{63831,2762,2}, {63829,2767,2},{63828,2765,2},{63826,2767,2},{63829,2772,2},{63831,2770,2}, {63834,2765,2},{63838,2773,2},{63839,2773,2},{63841,2768,2},{63844,2773,2}, {63843,2775,2},{63846,2782,2},{63846,2787,2},{63849,2780,2},{63853,2780,2}, {63851,2783,2},{63854,2793,2},{63854,2797,2},{63853,2797,2},{63851,2797,2}, {63849,2802,2},{63853,2807,2},{63854,2808,2},{63856,2807,2},{63858,2808,2}, {63861,2808,2},{63859,2813,2},{63861,2813,2},{63864,2813,2},{63866,2820,2}, {63868,2820,2},{63868,2817,2},{63871,2818,2},{63873,2817,2},{63873,2820,2}, {63869,2822,2},{63871,2825,2},{63873,2825,2},{63874,2825,2},{63874,2827,2}, {63876,2833,2},{63878,2832,2},{63879,2828,2},{63881,2830,2},{63883,2828,2}, {63883,2832,2},{63879,2833,2},{63881,2838,2},{63878,2837,2},{63876,2840,2}, {63881,2845,2},{63883,2848,2},{63884,2848,2},{63883,2852,2},{63879,2852,2}, {63883,2857,2},{63883,2853,2},{63884,2855,2},{63886,2863,2},{63888,2865,2}, {63886,2868,2},{63883,2868,2},{63883,2872,2},{64188,3487,130},{64183,3485,2}, {64173,3485,2},{64169,3485,2},{64164,3487,2},{64163,3490,2},{64163,3507,2}, {64154,3508,2},{64151,3512,2},{64141,3512,2},{64131,3518,2},{64126,3518,2}, {64118,3522,2},{64111,3523,2},{64109,3525,2},{64101,3528,2},{64098,3527,2}, {64096,3523,2},{64101,3518,2},{64106,3515,2},{64106,3512,2},{64111,3508,2}, {64116,3508,2},{64118,3505,2},{64119,3503,2},{64121,3495,2},{64128,3493,2}, {64131,3493,2},{64136,3487,2},{64133,3483,2},{64126,3487,2},{64123,3482,2}, {64119,3482,2},{64116,3483,2},{64113,3482,2},{64111,3480,2},{64108,3470,2}, {64114,3470,2},{64116,3463,2},{64123,3458,2},{64124,3457,2},{64138,3452,2}, {64143,3455,2},{64146,3458,2},{64151,3460,2},{64154,3458,2},{64158,3462,2}, {64161,3462,2},{64164,3463,2},{64166,3463,2},{64174,3455,2},{64179,3452,2}, {64178,3447,2},{64179,3443,2},{64199,3432,2},{64204,3432,2},{64209,3435,2}, {64228,3433,2},{64234,3435,2},{64241,3432,2},{64246,3433,2},{64243,3432,2}, {64246,3430,2},{64249,3432,2},{64253,3427,2},{64263,3428,2},{64264,3423,2}, {64269,3420,2},{64279,3418,2},{64286,3420,2},{64296,3417,2},{64298,3415,2}, {64298,3408,2},{64299,3410,2},{64303,3403,2},{64311,3400,2},{64321,3403,2}, {64324,3407,2},{64329,3407,2},{64331,3405,2},{64336,3410,2},{64341,3413,2}, {64346,3418,2},{64348,3418,2},{64354,3420,2},{64359,3425,2},{64363,3427,2}, {64364,3432,2},{64368,3432,2},{64371,3433,2},{64378,3430,2},{64381,3430,2}, {64384,3428,2},{64406,3427,2},{64408,3423,2},{64414,3423,2},{64416,3422,2}, {64419,3422,2},{64426,3425,2},{64434,3423,2},{64439,3425,2},{64456,3422,2}, {64463,3423,2},{64466,3420,2},{64476,3420,2},{64479,3417,2},{64484,3422,2}, {64488,3420,2},{64491,3420,2},{64494,3423,2},{64494,3427,2},{64496,3425,2}, {64503,3422,2},{64504,3418,2},{64508,3415,2},{64509,3415,2},{64514,3408,2}, {64521,3403,2},{64523,3402,2},{64531,3400,2},{64538,3398,2},{64539,3395,2}, {64546,3395,2},{64548,3393,2},{64553,3390,2},{64563,3390,2},{64566,3392,2}, {64566,3393,2},{64569,3395,2},{64576,3397,2},{64581,3395,2},{64588,3400,2}, {64588,3405,2},{64586,3407,2},{64578,3415,2},{64563,3433,2},{64558,3433,2}, {64554,3438,2},{64538,3452,2},{64529,3453,2},{64526,3452,2},{64519,3455,2}, {64513,3457,2},{64508,3458,2},{64496,3457,2},{64491,3457,2},{64488,3460,2}, {64484,3458,2},{64479,3458,2},{64478,3462,2},{64474,3462,2},{64471,3465,2}, {64464,3465,2},{64461,3468,2},{64458,3465,2},{64444,3465,2},{64438,3460,2}, {64434,3460,2},{64426,3462,2},{64418,3468,2},{64416,3472,2},{64409,3473,2}, {64408,3475,2},{64406,3473,2},{64401,3477,2},{64403,3480,2},{64401,3487,2}, {64398,3488,2},{64391,3493,2},{64388,3497,2},{64379,3497,2},{64369,3497,2}, {64364,3495,2},{64356,3497,2},{64349,3493,2},{64341,3490,2},{64333,3488,2}, {64331,3487,2},{64329,3482,2},{64326,3480,2},{64324,3477,2},{64318,3470,2}, {64309,3472,2},{64306,3470,2},{64296,3470,2},{64293,3470,2},{64288,3470,2}, {64283,3475,2},{64276,3477,2},{64271,3480,2},{64266,3480,2},{64266,3482,2}, {64261,3482,2},{64259,3480,2},{64256,3478,2},{64253,3478,2},{64249,3477,2}, {64241,3475,2},{64236,3478,2},{64228,3482,2},{64219,3480,2},{64214,3482,2}, {64204,3478,2},{64198,3487,2},{64194,3485,2},{64186,3487,2},{63883,2870,130}, {63883,2887,2},{63879,2888,2},{63879,2883,2},{63878,2888,2},{63879,2895,2}, {63876,2893,2},{63874,2900,2},{63873,2893,2},{63869,2895,2},{63869,2893,2}, {63864,2892,2},{63868,2890,2},{63869,2888,2},{63868,2885,2},{63866,2885,2}, {63864,2888,2},{63859,2887,2},{63858,2883,2},{63859,2880,2},{63856,2880,2}, {63854,2873,2},{63859,2868,2},{63863,2872,2},{63864,2868,2},{63868,2870,2}, {63868,2868,2},{63866,2863,2},{63864,2863,2},{63864,2858,2},{63863,2858,2}, {63863,2855,2},{63861,2853,2},{63859,2848,2},{63854,2847,2},{63854,2843,2}, {63851,2847,2},{63846,2847,2},{63848,2845,2},{63851,2845,2},{63853,2838,2}, {63856,2837,2},{63859,2838,2},{63861,2837,2},{63861,2835,2},{63856,2835,2}, {63858,2833,2},{63854,2832,2},{63854,2827,2},{63856,2827,2},{63854,2818,2}, {63851,2812,2},{63846,2808,2},{63844,2812,2},{63843,2807,2},{63839,2807,2}, {63838,2805,2},{63836,2805,2},{63838,2812,2},{63836,2808,2},{63833,2810,2}, {63831,2807,2},{63828,2805,2},{63831,2803,2},{63831,2800,2},{63833,2800,2}, {63833,2797,2},{63833,2795,2},{63831,2797,2},{63831,2793,2},{63826,2792,2}, {63823,2783,2},{63819,2785,2},{63821,2780,2},{63816,2768,2},{63814,2772,2}, {63813,2768,2},{63811,2768,2},{63813,2765,2},{63808,2768,2},{63806,2765,2}, {63803,2765,2},{63799,2760,2},{63798,2762,2},{63788,2757,2},{63791,2757,2}, {63791,2755,2},{63786,2755,2},{63784,2747,2},{63781,2745,2},{63779,2743,2}, {63779,2745,2},{63781,2747,2},{63779,2747,2},{63778,2745,2},{63778,2737,2}, {63763,2722,2},{63761,2722,2},{63758,2723,2},{63758,2720,2},{63754,2715,2}, {63753,2717,2},{63749,2717,2},{63748,2713,2},{63744,2708,2},{63743,2710,2}, {63741,2707,2},{63738,2708,2},{63738,2703,2},{63739,2702,2},{1137,413,130}, {1135,418,2},{1130,422,2},{1128,425,2},{1123,427,2},{1120,430,2},{1120,442,2}, {1115,453,2},{1110,458,2},{1097,467,2},{1095,470,2},{1090,475,2},{1088,473,2}, {1077,473,2},{1077,472,2},{1073,473,2},{1072,470,2},{1057,470,2},{1057,468,2}, {1058,468,2},{1057,463,2},{1055,462,2},{1052,462,2},{1052,467,2},{1048,463,2}, {1043,467,2},{1037,467,2},{1037,468,2},{1033,468,2},{1035,465,2},{1032,467,2}, {1022,462,2},{1020,463,2},{1018,460,2},{1020,460,2},{1015,458,2},{1013,455,2}, {1008,457,2},{1008,458,2},{1013,460,2},{1012,463,2},{1010,462,2},{1010,460,2}, {1008,462,2},{1007,460,2},{1005,460,2},{1005,462,2},{1000,460,2},{997,463,2}, {995,460,2},{990,462,2},{992,463,2},{990,465,2},{988,465,2},{983,458,2}, {985,457,2},{987,458,2},{988,458,2},{988,457,2},{993,457,2},{993,455,2}, {995,453,2},{998,457,2},{1003,455,2},{1002,452,2},{1007,455,2},{1008,453,2}, {1008,450,2},{1007,450,2},{1005,447,2},{1007,447,2},{1005,445,2},{1008,447,2}, {1010,450,2},{1013,447,2},{1012,443,2},{1013,443,2},{1015,452,2},{1018,452,2}, {1017,448,2},{1018,445,2},{1020,450,2},{1027,450,2},{1035,445,2},{1038,442,2}, {1040,438,2},{1037,435,2},{1038,433,2},{1042,438,2},{1040,445,2},{1045,443,2}, {1045,447,2},{1048,447,2},{1052,443,2},{1058,450,2},{1063,445,2},{1067,447,2}, {1063,448,2},{1067,452,2},{1062,452,2},{1058,458,2},{1057,460,2},{1062,465,2}, {1070,468,2},{1080,468,2},{1088,472,2},{1097,463,2},{1108,457,2},{1117,445,2}, {1118,440,2},{1118,430,2},{1122,427,2},{1127,423,2},{1128,420,2},{1133,417,2}, {1137,412,2},{1142,412,2},{1137,413,2},{897,23,130},{893,22,2},{888,22,2}, {882,25,2},{883,20,2},{882,18,2},{875,18,2},{873,22,2},{870,20,2},{865,15,2}, {863,17,2},{862,18,2},{858,18,2},{857,17,2},{858,13,2},{850,10,2},{848,13,2}, {847,13,2},{843,10,2},{840,10,2},{840,20,2},{840,25,2},{833,25,2},{833,30,2}, {832,30,2},{832,20,2},{830,23,2},{830,22,2},{825,20,2},{823,20,2},{822,15,2}, {820,22,2},{818,20,2},{813,18,2},{812,20,2},{812,28,2},{808,27,2},{808,23,2}, {808,22,2},{807,20,2},{805,15,2},{805,13,2},{803,12,2},{800,15,2},{798,17,2}, {793,8,2},{793,13,2},{788,12,2},{792,17,2},{790,18,2},{780,15,2},{780,17,2}, {785,18,2},{785,20,2},{787,20,2},{787,22,2},{790,22,2},{790,25,2},{793,27,2}, {792,27,2},{787,23,2},{787,27,2},{785,23,2},{785,27,2},{782,20,2},{780,22,2}, {778,28,2},{777,27,2},{775,28,2},{770,28,2},{770,27,2},{770,28,2},{765,27,2}, {765,28,2},{760,28,2},{758,30,2},{755,28,2},{758,23,2},{757,25,2},{755,22,2}, {753,20,2},{752,22,2},{753,25,2},{750,25,2},{748,23,2},{747,23,2},{745,25,2}, {747,27,2},{750,27,2},{748,27,2},{750,30,2},{752,28,2},{755,32,2},{757,33,2}, {755,33,2},{747,30,2},{743,30,2},{743,28,2},{742,28,2},{742,30,2},{740,32,2}, {738,28,2},{737,28,2},{735,27,2},{735,28,2},{730,27,2},{728,32,2},{727,27,2}, {722,27,2},{722,30,2},{718,27,2},{718,30,2},{717,28,2},{717,27,2},{715,28,2}, {712,27,2},{710,27,2},{710,28,2},{710,32,2},{705,30,2},{703,27,2},{705,27,2}, {705,25,2},{693,28,2},{695,25,2},{693,23,2},{685,22,2},{682,23,2},{675,25,2}, {665,25,2},{665,27,2},{668,30,2},{673,30,2},{678,32,2},{670,30,2},{670,32,2}, {663,30,2},{667,30,2},{665,28,2},{662,27,2},{662,23,2},{660,23,2},{662,22,2}, {662,20,2},{658,18,2},{663,17,2},{660,15,2},{660,17,2},{655,13,2},{652,15,2}, {650,13,2},{647,12,2},{645,13,2},{638,13,2},{627,8,2},{622,12,2},{612,10,2}, {615,7,2},{620,8,2},{627,7,2},{630,8,2},{630,7,2},{633,10,2},{640,10,2}, {643,12,2},{648,10,2},{647,8,2},{642,7,2},{642,3,2},{633,0,2},{633,65534,2}, {637,65533,2},{643,65533,2},{648,65526,2},{652,65524,2},{652,65519,2},{655,65513,2}, {657,65513,2},{660,65508,2},{662,65509,2},{662,65499,2},{668,65494,2},{670,65481,2}, {673,65479,2},{670,65476,2},{673,65474,2},{675,65471,2},{678,65471,2},{680,65466,2}, {685,65464,2},{683,65468,2},{685,65469,2},{683,65471,2},{683,65473,2},{677,65478,2}, {678,65478,2},{678,65481,2},{685,65481,2},{687,65481,2},{685,65483,2},{673,65484,2}, {672,65491,2},{673,65493,2},{670,65494,2},{672,65496,2},{680,65494,2},{685,65498,2}, {680,65499,2},{668,65501,2},{672,65503,2},{670,65506,2},{673,65508,2},{670,65509,2}, {672,65511,2},{675,65513,2},{675,65516,2},{673,65518,2},{672,65519,2},{670,65518,2}, {667,65518,2},{663,65519,2},{663,65524,2},{662,65524,2},{662,65526,2},{662,65528,2}, {662,65529,2},{663,65531,2},{665,65533,2},{673,65533,2},{672,65534,2},{675,65534,2}, {677,65528,2},{678,65528,2},{680,65531,2},{680,65528,2},{682,65528,2},{682,65531,2}, {682,65533,2},{683,65531,2},{685,65533,2},{688,65533,2},{687,65534,2},{685,65534,2}, {683,0,2},{683,2,2},{685,2,2},{683,3,2},{685,3,2},{685,7,2},{687,7,2},{690,10,2}, {688,12,2},{692,12,2},{692,8,2},{690,7,2},{690,0,2},{693,2,2},{693,5,2}, {700,5,2},{697,7,2},{697,12,2},{695,12,2},{695,13,2},{698,13,2},{700,8,2}, {702,7,2},{703,7,2},{702,10,2},{705,8,2},{705,13,2},{707,12,2},{707,8,2}, {710,8,2},{710,7,2},{712,10,2},{713,10,2},{713,8,2},{717,7,2},{715,5,2}, {718,3,2},{717,2,2},{722,0,2},{723,2,2},{722,2,2},{718,2,2},{718,7,2},{720,8,2}, {717,10,2},{722,13,2},{722,15,2},{723,13,2},{727,15,2},{727,17,2},{723,17,2}, {727,20,2},{732,18,2},{730,12,2},{733,12,2},{735,10,2},{743,3,2},{745,7,2}, {747,3,2},{747,5,2},{748,5,2},{748,3,2},{748,2,2},{750,0,2},{752,65528,2}, {748,65529,2},{743,65533,2},{742,65531,2},{745,65531,2},{747,65528,2},{745,65524,2}, {745,65523,2},{747,65524,2},{748,65524,2},{752,65519,2},{752,65516,2},{752,65514,2}, {750,65513,2},{752,65511,2},{752,65514,2},{755,65513,2},{755,65516,2},{757,65518,2}, {753,65519,2},{753,65523,2},{757,65523,2},{755,65524,2},{753,65528,2},{753,65531,2}, {755,65529,2},{755,65531,2},{753,65534,2},{755,0,2},{753,5,2},{757,0,2}, {760,65534,2},{762,65529,2},{765,65531,2},{767,65528,2},{763,65524,2},{765,65523,2}, {763,65518,2},{765,65513,2},{765,65511,2},{765,65514,2},{763,65513,2},{763,65508,2}, {760,65506,2},{762,65504,2},{762,65493,2},{757,65489,2},{758,65489,2},{760,65484,2}, {755,65483,2},{757,65479,2},{755,65478,2},{755,65473,2},{753,65471,2},{753,65469,2}, {757,65469,2},{757,65481,2},{760,65481,2},{762,65484,2},{762,65488,2},{763,65491,2}, {763,65494,2},{768,65494,2},{767,65498,2},{765,65498,2},{765,65508,2},{768,65509,2}, {770,65513,2},{772,65509,2},{772,65514,2},{768,65519,2},{770,65519,2},{772,65519,2}, {773,65521,2},{773,65526,2},{773,65528,2},{775,65528,2},{777,65519,2},{778,65521,2}, {780,65519,2},{780,65523,2},{782,65523,2},{785,65519,2},{787,65519,2},{793,65519,2}, {792,65514,2},{798,65518,2},{797,65516,2},{798,65513,2},{802,65511,2},{805,65509,2}, {810,65504,2},{805,65504,2},{798,65501,2},{798,65499,2},{798,65496,2},{795,65491,2}, {797,65491,2},{802,65499,2},{805,65501,2},{807,65496,2},{810,65494,2},{810,65491,2}, {805,65486,2},{800,65481,2},{805,65483,2},{808,65484,2},{812,65486,2},{817,65481,2}, {815,65481,2},{812,65481,2},{807,65471,2},{810,65473,2},{812,65471,2},{810,65469,2}, {808,65464,2},{810,65461,2},{808,65459,2},{810,65459,2},{813,65461,2},{813,65463,2}, {812,65464,2},{815,65473,2},{813,65476,2},{818,65478,2},{820,65474,2},{820,65471,2}, {823,65471,2},{825,65468,2},{823,65466,2},{828,65466,2},{827,65461,2},{830,65463,2}, {832,65461,2},{832,65451,2},{833,65459,2},{833,65461,2},{850,65449,2},{850,65446,2}, {852,65448,2},{860,65444,2},{863,65441,2},{863,65438,2},{867,65434,2},{868,65428,2}, {867,65423,2},{863,65421,2},{858,65423,2},{855,65423,2},{853,65421,2},{857,65421,2}, {863,65418,2},{867,65418,2},{867,65408,2},{868,65408,2},{875,65399,2},{875,65396,2}, {873,65388,2},{872,65386,2},{868,65386,2},{863,65379,2},{867,65373,2},{867,65369,2}, {863,65368,2},{862,65364,2},{868,65369,2},{868,65376,2},{867,65376,2},{868,65384,2}, {873,65386,2},{877,65388,2},{877,65396,2},{878,65398,2},{877,65398,2},{880,65399,2}, {883,65398,2},{882,65401,2},{878,65399,2},{875,65401,2},{873,65404,2},{873,65406,2}, {870,65408,2},{868,65411,2},{868,65423,2},{872,65433,2},{868,65434,2},{877,65434,2}, {880,65429,2},{880,65418,2},{880,65426,2},{890,65421,2},{890,65419,2},{895,65418,2}, {900,65418,2},{897,65419,2},{900,65421,2},{903,65423,2},{912,65421,2},{908,65424,2}, {902,65426,2},{895,65421,2},{892,65421,2},{885,65426,2},{882,65431,2},{887,65434,2}, {880,65434,2},{875,65438,2},{868,65438,2},{865,65441,2},{863,65444,2},{855,65449,2}, {855,65451,2},{857,65453,2},{860,65458,2},{865,65456,2},{867,65453,2},{868,65451,2}, {870,65453,2},{870,65454,2},{877,65456,2},{877,65458,2},{872,65458,2},{868,65454,2}, {868,65458,2},{860,65463,2},{867,65466,2},{862,65464,2},{860,65464,2},{860,65466,2}, {857,65458,2},{853,65456,2},{852,65453,2},{848,65453,2},{845,65461,2},{838,65463,2}, {838,65466,2},{835,65466,2},{833,65471,2},{837,65473,2},{832,65473,2},{827,65479,2}, {828,65483,2},{823,65479,2},{820,65483,2},{822,65484,2},{818,65484,2},{818,65488,2}, {820,65489,2},{818,65491,2},{818,65496,2},{822,65498,2},{823,65496,2},{825,65498,2}, {825,65501,2},{822,65503,2},{823,65504,2},{825,65504,2},{825,65509,2},{823,65511,2}, {825,65514,2},{822,65514,2},{822,65518,2},{817,65518,2},{820,65514,2},{818,65513,2}, {820,65509,2},{818,65508,2},{820,65503,2},{813,65503,2},{813,65508,2},{812,65508,2}, {810,65511,2},{808,65513,2},{807,65511,2},{807,65516,2},{803,65518,2},{805,65521,2}, {803,65523,2},{797,65524,2},{795,65528,2},{795,65526,2},{793,65528,2},{790,65526,2}, {788,65528,2},{787,65528,2},{783,65529,2},{780,65528,2},{777,65529,2},{778,65534,2}, {780,0,2},{780,2,2},{778,0,2},{777,0,2},{780,3,2},{778,5,2},{777,8,2},{780,7,2}, {782,8,2},{783,7,2},{785,7,2},{785,5,2},{788,3,2},{788,7,2},{790,8,2},{793,3,2}, {793,7,2},{797,5,2},{798,10,2},{800,12,2},{802,10,2},{800,7,2},{800,5,2}, {802,7,2},{805,3,2},{807,3,2},{810,7,2},{807,7,2},{808,10,2},{810,12,2}, {810,13,2},{807,13,2},{808,18,2},{812,17,2},{813,15,2},{818,17,2},{818,13,2}, {822,12,2},{822,8,2},{823,10,2},{825,10,2},{823,12,2},{825,13,2},{825,15,2}, {825,18,2},{830,18,2},{833,17,2},{835,23,2},{838,22,2},{837,13,2},{838,8,2}, {840,8,2},{842,8,2},{845,7,2},{847,8,2},{847,12,2},{850,7,2},{853,8,2}, {855,7,2},{860,13,2},{858,17,2},{865,13,2},{867,13,2},{870,17,2},{882,15,2}, {885,20,2},{888,18,2},{897,20,2},{898,27,2},{897,23,2},{810,64988,130}, {803,64983,2},{800,64983,2},{798,64981,2},{795,64981,2},{793,64978,2},{792,64984,2}, {792,64983,2},{790,64983,2},{790,64978,2},{787,64978,2},{785,64976,2},{783,64978,2}, {782,64973,2},{778,64976,2},{778,64973,2},{777,64973,2},{775,64976,2},{773,64974,2}, {775,64978,2},{778,64978,2},{782,64986,2},{777,64983,2},{773,64981,2},{767,64978,2}, {765,64978,2},{763,64974,2},{760,64974,2},{757,64973,2},{755,64974,2},{757,64981,2}, {753,64978,2},{750,64979,2},{748,64978,2},{750,64978,2},{752,64973,2},{750,64973,2}, {750,64968,2},{747,64966,2},{745,64968,2},{742,64966,2},{742,64969,2},{738,64971,2}, {740,64974,2},{738,64973,2},{737,64973,2},{737,64971,2},{733,64969,2},{733,64971,2}, {732,64969,2},{732,64974,2},{727,64974,2},{725,64976,2},{723,64974,2},{722,64978,2}, {720,64979,2},{725,64981,2},{725,64978,2},{732,64978,2},{730,64979,2},{730,64984,2}, {733,64984,2},{735,64981,2},{738,64981,2},{737,64981,2},{735,64986,2},{738,64984,2}, {742,64986,2},{742,64981,2},{743,64981,2},{747,64981,2},{750,64984,2},{747,64984,2}, {747,64986,2},{748,64986,2},{748,64988,2},{745,64988,2},{747,64991,2},{752,64993,2}, {757,64991,2},{757,64996,2},{752,64996,2},{748,64996,2},{745,64998,2},{742,64994,2}, {737,64993,2},{740,64999,2},{743,64999,2},{742,65006,2},{735,64998,2},{733,64993,2}, {728,64991,2},{728,64993,2},{730,64999,2},{727,64998,2},{727,64996,2},{725,64998,2}, {725,64996,2},{723,64996,2},{723,64993,2},{725,64993,2},{723,64991,2},{723,64988,2}, {720,64989,2},{717,64988,2},{717,64989,2},{715,64989,2},{717,64991,2},{715,64993,2}, {717,64996,2},{715,64996,2},{712,64994,2},{712,64998,2},{708,64996,2},{710,64994,2}, {708,64993,2},{707,64994,2},{707,64998,2},{705,64998,2},{702,64998,2},{703,65001,2}, {700,64999,2},{698,65001,2},{695,64999,2},{697,64998,2},{693,64998,2},{695,64996,2}, {693,64994,2},{697,64994,2},{697,64991,2},{700,64991,2},{697,64989,2},{705,64986,2}, {705,64981,2},{707,64981,2},{707,64978,2},{708,64978,2},{708,64971,2},{707,64969,2}, {710,64968,2},{710,64964,2},{712,64964,2},{717,64968,2},{715,64963,2},{717,64963,2}, {720,64963,2},{720,64959,2},{722,64959,2},{723,64964,2},{723,64959,2},{730,64958,2}, {727,64956,2},{725,64954,2},{733,64953,2},{732,64956,2},{733,64958,2},{733,64961,2}, {737,64958,2},{738,64961,2},{742,64959,2},{743,64961,2},{743,64959,2},{742,64958,2}, {743,64958,2},{745,64958,2},{747,64961,2},{750,64959,2},{752,64963,2},{753,64959,2}, {757,64959,2},{755,64964,2},{757,64964,2},{758,64964,2},{762,64966,2},{762,64963,2}, {765,64963,2},{763,64964,2},{765,64966,2},{768,64964,2},{772,64966,2},{772,64961,2}, {775,64961,2},{775,64964,2},{777,64963,2},{780,64959,2},{780,64963,2},{777,64966,2}, {777,64968,2},{780,64966,2},{782,64968,2},{782,64966,2},{785,64966,2},{787,64963,2}, {792,64963,2},{790,64966,2},{788,64964,2},{787,64964,2},{788,64968,2},{787,64968,2}, {785,64969,2},{785,64971,2},{790,64971,2},{792,64973,2},{793,64973,2},{793,64974,2}, {797,64974,2},{798,64978,2},{803,64979,2},{807,64983,2},{810,64983,2},{810,64988,2}, {1597,65146,130},{1593,65139,2},{1588,65136,2},{1585,65134,2},{1587,65124,2}, {1590,65123,2},{1588,65118,2},{1575,65114,2},{1573,65108,2},{1565,65103,2}, {1557,65103,2},{1550,65108,2},{1547,65111,2},{1542,65111,2},{1537,65121,2}, {1537,65124,2},{1538,65124,2},{1533,65129,2},{1532,65134,2},{1532,65138,2}, {1530,65138,2},{1528,65139,2},{1530,65134,2},{1528,65134,2},{1528,65133,2}, {1527,65133,2},{1530,65131,2},{1527,65129,2},{1530,65123,2},{1528,65119,2}, {1527,65121,2},{1527,65119,2},{1523,65119,2},{1523,65118,2},{1522,65116,2}, {1522,65113,2},{1528,65118,2},{1525,65113,2},{1525,65109,2},{1530,65116,2}, {1532,65119,2},{1533,65116,2},{1538,65113,2},{1535,65111,2},{1537,65108,2}, {1538,65111,2},{1540,65109,2},{1547,65109,2},{1550,65106,2},{1555,65101,2}, {1567,65101,2},{1575,65108,2},{1575,65113,2},{1585,65114,2},{1590,65118,2}, {1592,65123,2},{1590,65126,2},{1587,65126,2},{1587,65133,2},{1590,65136,2}, {1593,65138,2},{1595,65141,2},{1597,65148,2},{1597,65146,2},{777,3053,130}, {777,3057,2},{787,3057,2},{798,3058,2},{812,3065,2},{825,3063,2},{837,3067,2}, {848,3063,2},{852,3065,2},{855,3067,2},{855,3072,2},{858,3077,2},{877,3083,2}, {880,3083,2},{883,3085,2},{885,3083,2},{887,3085,2},{892,3085,2},{897,3078,2}, {903,3080,2},{905,3082,2},{907,3085,2},{908,3087,2},{910,3090,2},{917,3090,2}, {933,3110,2},{940,3112,2},{942,3113,2},{943,3112,2},{947,3105,2},{948,3103,2}, {952,3095,2},{950,3082,2},{950,3075,2},{953,3068,2},{953,3050,2},{948,3047,2}, {947,3042,2},{943,3040,2},{940,3037,2},{937,3035,2},{935,3032,2},{932,3033,2}, {930,3037,2},{923,3037,2},{922,3035,2},{918,3035,2},{918,3032,2},{910,3032,2}, {908,3027,2},{903,3023,2},{902,3020,2},{900,3018,2},{893,3022,2},{890,3020,2}, {887,3023,2},{882,3023,2},{880,3025,2},{877,3023,2},{873,3023,2},{867,3032,2}, {860,3027,2},{858,3028,2},{855,3027,2},{852,3030,2},{850,3033,2},{848,3033,2}, {847,3037,2},{840,3035,2},{838,3032,2},{832,3033,2},{828,3032,2},{827,3033,2}, {823,3032,2},{822,3033,2},{820,3030,2},{817,3030,2},{812,3032,2},{813,3035,2}, {810,3035,2},{810,3038,2},{805,3040,2},{800,3043,2},{798,3043,2},{790,3050,2}, {783,3052,2},{782,3053,2},{780,3052,2},{780,3055,2},{778,3053,2},{777,3053,2}, {68,2458,130},{73,2457,2},{77,2452,2},{77,2432,2},{80,2428,2},{92,2423,2}, {97,2417,2},{107,2393,2},{110,2378,2},{117,2363,2},{142,2345,2},{157,2328,2}, {167,2323,2},{178,2315,2},{185,2305,2},{192,2298,2},{195,2292,2},{193,2282,2}, {202,2272,2},{210,2267,2},{217,2248,2},{220,2235,2},{222,2210,2},{218,2190,2}, {215,2162,2},{217,2155,2},{213,2150,2},{213,2142,2},{210,2138,2},{210,2128,2}, {208,2130,2},{208,2128,2},{207,2112,2},{205,2103,2},{207,2098,2},{207,2090,2}, {202,2077,2},{203,2060,2},{203,2045,2},{200,2035,2},{200,2022,2},{198,2017,2}, {198,2013,2},{193,2003,2},{192,1990,2},{183,1967,2},{183,1958,2},{173,1933,2}, {168,1923,2},{162,1918,2},{160,1912,2},{142,1892,2},{138,1885,2},{117,1858,2}, {107,1850,2},{105,1845,2},{87,1833,2},{80,1832,2},{73,1830,2},{77,1832,2}, {57,1830,2},{55,1828,2},{67,1828,2},{57,1827,2},{32,1823,2},{2,1813,2}, {65529,1813,2},{65523,1808,2},{65518,1805,2},{65503,1790,2},{65494,1783,2}, {65494,1778,2},{65496,1777,2},{65503,1777,2},{65511,1773,2},{65516,1773,2}, {13,1782,2},{20,1785,2},{27,1792,2},{33,1797,2},{47,1797,2},{53,1795,2}, {60,1790,2},{67,1790,2},{78,1792,2},{102,1788,2},{125,1800,2},{135,1800,2}, {153,1808,2},{170,1810,2},{187,1807,2},{197,1810,2},{208,1808,2},{228,1813,2}, {232,1817,2},{240,1822,2},{243,1822,2},{262,1835,2},{235,1817,2},{232,1810,2}, {225,1808,2},{213,1808,2},{203,1805,2},{193,1807,2},{185,1805,2},{155,1807,2}, {148,1803,2},{142,1800,2},{118,1793,2},{105,1785,2},{102,1785,2},{97,1785,2}, {83,1788,2},{67,1787,2},{60,1788,2},{48,1793,2},{40,1793,2},{35,1792,2}, {22,1780,2},{65526,1770,2},{65519,1767,2},{65504,1772,2},{65491,1770,2}, {65486,1768,2},{65481,1763,2},{65471,1762,2},{65464,1755,2},{65463,1753,2}, {65463,1750,2},{65459,1747,2},{65448,1742,2},{65444,1735,2},{65438,1730,2}, {65438,1725,2},{65433,1717,2},{65431,1702,2},{65423,1693,2},{65421,1690,2}, {65423,1690,2},{65423,1687,2},{65418,1683,2},{65418,1682,2},{65394,1668,2}, {65384,1663,2},{65378,1662,2},{65371,1658,2},{65366,1657,2},{65363,1653,2}, {65356,1652,2},{65349,1640,2},{65338,1633,2},{65329,1625,2},{65323,1620,2}, {65319,1615,2},{65316,1612,2},{65296,1613,2},{65288,1617,2},{65281,1617,2}, {65278,1622,2},{65273,1622,2},{65264,1618,2},{65244,1617,2},{65226,1620,2}, {65229,1618,2},{65234,1622,2},{65249,1618,2},{65263,1622,2},{65273,1625,2}, {65303,1622,2},{65311,1625,2},{65323,1623,2},{65324,1630,2},{65339,1652,2}, {65354,1662,2},{65369,1668,2},{65374,1668,2},{65384,1677,2},{65393,1678,2}, {65414,1695,2},{65423,1707,2},{65424,1713,2},{65429,1717,2},{65429,1728,2}, {65431,1733,2},{65446,1747,2},{65453,1757,2},{65458,1760,2},{65461,1758,2}, {65466,1762,2},{65466,1767,2},{65469,1768,2},{65476,1778,2},{65491,1787,2}, {65498,1792,2},{65501,1798,2},{65508,1802,2},{65513,1808,2},{65521,1815,2}, {65529,1818,2},{65534,1822,2},{5,1825,2},{7,1830,2},{3,1835,2},{65534,1837,2}, {65533,1840,2},{65534,1845,2},{0,1838,2},{5,1837,2},{8,1832,2},{12,1833,2}, {13,1833,2},{12,1832,2},{10,1828,2},{12,1828,2},{32,1832,2},{43,1832,2}, {57,1835,2},{63,1835,2},{68,1838,2},{72,1837,2},{78,1837,2},{85,1840,2}, {100,1852,2},{107,1855,2},{113,1865,2},{117,1873,2},{150,1910,2},{157,1922,2}, {160,1942,2},{162,1950,2},{168,1958,2},{170,1968,2},{175,1973,2},{183,1987,2}, {190,2005,2},{192,2015,2},{193,2020,2},{193,2037,2},{198,2047,2},{195,2058,2}, {197,2070,2},{198,2075,2},{197,2087,2},{192,2095,2},{192,2112,2},{193,2122,2}, {208,2138,2},{207,2145,2},{212,2158,2},{213,2178,2},{212,2183,2},{217,2220,2}, {215,2237,2},{213,2245,2},{208,2255,2},{197,2263,2},{193,2270,2},{192,2278,2}, {188,2285,2},{188,2290,2},{183,2302,2},{177,2305,2},{162,2317,2},{142,2337,2}, {123,2352,2},{110,2367,2},{107,2380,2},{107,2385,2},{107,2388,2},{98,2405,2}, {97,2412,2},{92,2417,2},{87,2420,2},{80,2427,2},{75,2428,2},{73,2432,2}, {73,2448,2},{72,2455,2},{68,2458,2},{2948,3490,128},{2953,3488,0},{2960,3487,0}, {2965,3488,0},{2970,3485,0},{2975,3485,0},{3000,3475,0},{3002,3475,0},{3037,3462,0}, {3042,3455,0},{3048,3457,0},{3053,3452,0},{3058,3452,0},{3068,3450,0},{3102,3435,0}, {3122,3427,0},{65369,4155,131},{65373,4155,3},{65378,4155,3},{65383,4152,3}, {65386,4148,3},{65389,4145,3},{65394,4142,3},{65398,4140,3},{65403,4137,3}, {65406,4133,3},{65411,4130,3},{65414,4127,3},{65418,4123,3},{65423,4120,3}, {65426,4117,3},{65431,4115,3},{65434,4112,3},{65439,4108,3},{65443,4105,3}, {65446,4102,3},{65449,4100,3},{65459,4100,3},{65466,4100,3},{65473,4100,3}, {65479,4100,3},{65486,4100,3},{65493,4100,3},{65499,4100,3},{65506,4100,3}, {65513,4098,3},{65519,4098,3},{65526,4098,3},{65533,4098,3},{3,4098,3}, {8,4098,3},{13,4098,3},{20,4098,3},{25,4098,3},{30,4098,3},{37,4098,3}, {42,4098,3},{47,4098,3},{53,4098,3},{58,4098,3},{63,4098,3},{70,4098,3}, {75,4098,3},{80,4098,3},{87,4098,3},{92,4098,3},{97,4098,3},{103,4098,3}, {108,4098,3},{113,4098,3},{120,4098,3},{125,4098,3},{130,4098,3},{137,4098,3}, {142,4098,3},{147,4098,3},{153,4098,3},{158,4098,3},{163,4098,3},{170,4098,3}, {175,4098,3},{180,4098,3},{187,4098,3},{192,4098,3},{197,4098,3},{203,4098,3}, {208,4098,3},{213,4098,3},{220,4098,3},{225,4098,3},{230,4098,3},{237,4098,3}, {242,4098,3},{247,4098,3},{253,4098,3},{260,4098,3},{265,4098,3},{272,4098,3}, {277,4098,3},{283,4098,3},{285,4102,3},{290,4107,3},{295,4112,3},{300,4117,3}, {305,4122,3},{310,4127,3},{317,4133,3},{325,4140,3},{330,4143,3},{335,4147,3}, {340,4150,3},{345,4153,3},{350,4157,3},{355,4160,3},{360,4163,3},{365,4167,3}, {370,4170,3},{375,4173,3},{378,4178,3},{383,4182,3},{388,4185,3},{393,4188,3}, {398,4192,3},{402,4193,3},{407,4193,3},{408,4195,3},{413,4203,3},{417,4207,3}, {420,4212,3},{422,4220,3},{420,4238,3},{427,4263,3},{428,4277,3},{430,4287,3}, {438,4293,3},{448,4295,3},{452,4298,3},{467,4315,3},{477,4335,3},{488,4367,3}, {492,4385,3},{497,4398,3},{497,4403,3},{495,4408,3},{495,4413,3},{495,4418,3}, {495,4423,3},{495,4428,3},{493,4435,3},{493,4440,3},{493,4445,3},{493,4450,3}, {493,4455,3},{493,4460,3},{492,4465,3},{492,4470,3},{492,4475,3},{492,4480,3}, {492,4485,3},{490,4490,3},{490,4495,3},{495,4500,3},{500,4503,3},{505,4508,3}, {510,4513,3},{515,4517,3},{518,4522,3},{523,4527,3},{528,4530,3},{533,4535,3}, {538,4538,3},{543,4543,3},{548,4548,3},{553,4552,3},{558,4557,3},{562,4562,3}, {567,4565,3},{572,4570,3},{577,4575,3},{582,4580,3},{587,4583,3},{592,4588,3}, {597,4593,3},{602,4597,3},{605,4600,3},{610,4605,3},{615,4610,3},{620,4615,3}, {625,4620,3},{630,4625,3},{635,4628,3},{640,4633,3},{643,4638,3},{648,4643,3}, {653,4648,3},{658,4653,3},{663,4658,3},{668,4663,3},{673,4667,3},{678,4672,3}, {683,4677,3},{688,4682,3},{693,4687,3},{698,4692,3},{702,4697,3},{707,4700,3}, {710,4705,3},{715,4710,3},{720,4715,3},{725,4720,3},{730,4725,3},{735,4730,3}, {740,4735,3},{745,4740,3},{750,4745,3},{755,4750,3},{760,4755,3},{763,4760,3}, {768,4765,3},{773,4772,3},{778,4777,3},{783,4782,3},{788,4787,3},{792,4790,3}, {797,4795,3},{800,4798,3},{800,4793,3},{800,4788,3},{800,4783,3},{800,4778,3}, {800,4773,3},{800,4768,3},{800,4763,3},{800,4757,3},{800,4752,3},{800,4747,3}, {800,4742,3},{800,4737,3},{800,4732,3},{800,4727,3},{800,4720,3},{800,4715,3}, {800,4710,3},{800,4705,3},{800,4700,3},{802,4697,3},{803,4692,3},{805,4687,3}, {807,4680,3},{808,4675,3},{810,4670,3},{812,4665,3},{813,4660,3},{815,4655,3}, {817,4650,3},{818,4645,3},{822,4640,3},{823,4635,3},{825,4630,3},{827,4625,3}, {828,4620,3},{830,4615,3},{832,4610,3},{833,4605,3},{835,4598,3},{837,4593,3}, {838,4588,3},{840,4583,3},{842,4578,3},{843,4573,3},{845,4568,3},{847,4563,3}, {848,4558,3},{850,4553,3},{852,4548,3},{853,4543,3},{855,4538,3},{857,4533,3}, {858,4528,3},{860,4522,3},{862,4517,3},{863,4512,3},{865,4507,3},{867,4502,3}, {868,4497,3},{870,4492,3},{872,4487,3},{875,4482,3},{875,4477,3},{878,4472,3}, {880,4467,3},{882,4460,3},{883,4455,3},{885,4450,3},{887,4445,3},{888,4440,3}, {890,4435,3},{892,4430,3},{893,4425,3},{895,4420,3},{897,4415,3},{898,4410,3}, {900,4405,3},{900,4402,3},{935,4363,3},{933,4358,3},{935,4355,3},{943,4343,3}, {948,4343,3},{952,4340,3},{955,4338,3},{957,4335,3},{962,4333,3},{965,4328,3}, {988,4322,3},{990,4318,3},{990,4312,3},{993,4308,3},{997,4305,3},{1008,4302,3}, {1012,4297,3},{1017,4290,3},{1022,4285,3},{1045,4278,3},{1053,4272,3},{1063,4267,3}, {1067,4272,3},{1078,4277,3},{1082,4282,3},{1088,4285,3},{1092,4292,3},{1100,4295,3}, {1105,4298,3},{1110,4302,3},{1115,4305,3},{1120,4308,3},{1125,4312,3},{1130,4315,3}, {1135,4318,3},{1140,4320,3},{1145,4323,3},{1148,4325,3},{1147,4328,3},{1150,4327,3}, {1150,4330,3},{1145,4332,3},{1145,4335,3},{1140,4337,3},{1140,4342,3},{1137,4347,3}, {1138,4348,3},{1132,4348,3},{1128,4348,3},{1123,4350,3},{1118,4355,3},{1098,4367,3}, {1082,4382,3},{1068,4395,3},{1065,4403,3},{1058,4410,3},{1045,4428,3},{1042,4438,3}, {1043,4443,3},{1042,4457,3},{1047,4475,3},{1042,4492,3},{1043,4498,3},{1045,4500,3}, {1045,4498,3},{1047,4503,3},{1050,4507,3},{1053,4517,3},{1057,4520,3},{1058,4525,3}, {1067,4533,3},{1065,4540,3},{1067,4547,3},{1072,4555,3},{1077,4558,3},{1077,4562,3}, {1080,4567,3},{1085,4573,3},{1088,4577,3},{1087,4580,3},{1083,4585,3},{1082,4585,3}, {1082,4587,3},{1083,4587,3},{1085,4588,3},{1078,4598,3},{1077,4612,3},{1078,4625,3}, {1070,4633,3},{1068,4645,3},{1073,4653,3},{1075,4665,3},{1087,4687,3},{1090,4688,3}, {1093,4698,3},{1097,4702,3},{1097,4707,3},{1103,4715,3},{1108,4717,3},{1110,4723,3}, {1118,4740,3},{1118,4752,3},{1113,4762,3},{1110,4770,3},{1113,4778,3},{1112,4787,3}, {1113,4790,3},{1112,4795,3},{1113,4813,3},{1115,4817,3},{1122,4822,3},{1123,4830,3}, {1127,4835,3},{1128,4847,3},{1132,4852,3},{1133,4865,3},{1125,4888,3},{1125,4898,3}, {1128,4910,3},{1130,4923,3},{1133,4930,3},{1133,4935,3},{1133,4943,3},{1138,4952,3}, {1145,4957,3},{1147,4968,3},{1145,4978,3},{1148,4987,3},{1152,4993,3},{1152,5008,3}, {1157,5017,3},{1158,5027,3},{1165,5035,3},{1168,5043,3},{1175,5050,3},{1187,5053,3}, {1190,5057,3},{1195,5063,3},{1195,5068,3},{1200,5078,3},{1195,5085,3},{1193,5097,3}, {1187,5107,3},{1187,5115,3},{1183,5123,3},{1183,5128,3},{1178,5127,3},{1177,5125,3}, {1167,5125,3},{1160,5118,3},{1150,5113,3},{1145,5112,3},{1133,5108,3},{1118,5108,3}, {1117,5110,3},{1115,5117,3},{1097,5112,3},{1070,5113,3},{1058,5117,3},{1057,5110,3}, {1048,5110,3},{1047,5103,3},{1043,5102,3},{1042,5103,3},{1043,5110,3},{1043,5122,3}, {1045,5122,3},{1048,5120,3},{1052,5120,3},{1057,5117,3},{1048,5132,3},{1048,5137,3}, {1045,5142,3},{1037,5137,3},{1038,5128,3},{1042,5125,3},{1042,5115,3},{1038,5102,3}, {1032,5090,3},{1018,5090,3},{1010,5088,3},{1000,5090,3},{977,5083,3},{970,5083,3}, {957,5080,3},{945,5085,3},{942,5083,3},{932,5077,3},{928,5070,3},{922,5065,3}, {918,5065,3},{913,5065,3},{907,5063,3},{898,5055,3},{895,5048,3},{887,5043,3}, {872,5038,3},{862,5032,3},{853,5032,3},{845,5025,3},{840,5023,3},{838,5020,3}, {832,5015,3},{818,5012,3},{813,5007,3},{805,4993,3},{793,4983,3},{783,4980,3}, {782,4980,3},{780,4983,3},{773,4982,3},{765,4975,3},{758,4973,3},{733,4960,3}, {723,4952,3},{710,4943,3},{703,4938,3},{675,4922,3},{642,4907,3},{628,4908,3}, {615,4905,3},{582,4885,3},{562,4872,3},{547,4863,3},{540,4857,3},{518,4842,3}, {505,4830,3},{488,4820,3},{453,4800,3},{447,4795,3},{427,4777,3},{418,4770,3}, {408,4760,3},{388,4745,3},{382,4738,3},{378,4733,3},{375,4730,3},{372,4727,3}, {368,4723,3},{363,4718,3},{360,4715,3},{355,4712,3},{352,4708,3},{347,4705,3}, {343,4702,3},{340,4697,3},{335,4693,3},{332,4690,3},{328,4687,3},{323,4683,3}, {318,4678,3},{313,4672,3},{300,4662,3},{278,4635,3},{277,4633,3},{273,4632,3}, {270,4628,3},{265,4622,3},{260,4618,3},{257,4613,3},{252,4612,3},{243,4602,3}, {235,4590,3},{230,4582,3},{228,4578,3},{225,4573,3},{223,4568,3},{220,4563,3}, {217,4558,3},{215,4555,3},{212,4550,3},{210,4545,3},{208,4542,3},{203,4537,3}, {200,4532,3},{198,4528,3},{197,4522,3},{193,4517,3},{192,4512,3},{190,4507,3}, {187,4502,3},{185,4498,3},{182,4493,3},{178,4488,3},{175,4485,3},{172,4478,3}, {170,4475,3},{167,4472,3},{163,4467,3},{160,4463,3},{157,4458,3},{155,4453,3}, {150,4450,3},{148,4445,3},{145,4442,3},{142,4437,3},{140,4435,3},{127,4422,3}, {123,4415,3},{118,4413,3},{117,4408,3},{108,4403,3},{108,4398,3},{102,4395,3}, {92,4380,3},{87,4375,3},{78,4363,3},{73,4358,3},{70,4355,3},{65,4348,3}, {62,4347,3},{58,4343,3},{55,4340,3},{50,4335,3},{47,4332,3},{43,4328,3}, {38,4325,3},{35,4322,3},{32,4318,3},{27,4313,3},{23,4310,3},{20,4307,3}, {15,4303,3},{12,4300,3},{8,4297,3},{3,4293,3},{0,4290,3},{65533,4287,3}, {65529,4283,3},{65524,4278,3},{65521,4275,3},{65518,4272,3},{65514,4267,3}, {65511,4263,3},{65504,4257,3},{65501,4255,3},{65499,4252,3},{65493,4247,3}, {65489,4248,3},{65489,4247,3},{65491,4247,3},{65486,4242,3},{65468,4225,3}, {65456,4218,3},{65454,4215,3},{65453,4207,3},{65451,4208,3},{65446,4207,3}, {65444,4203,3},{65439,4202,3},{65436,4197,3},{65446,4195,3},{65441,4195,3}, {65436,4195,3},{65434,4197,3},{65428,4195,3},{65418,4187,3},{65416,4190,3}, {65414,4188,3},{65416,4185,3},{65419,4183,3},{65411,4185,3},{65406,4182,3}, {65379,4165,3},{65369,4155,3},{1100,4295,131},{1100,4292,3},{1098,4290,3}, {1100,4285,3},{1098,4280,3},{1100,4278,3},{1108,4275,3},{1108,4268,3},{1110,4263,3}, {1107,4250,3},{1100,4240,3},{1102,4237,3},{1100,4235,3},{1098,4223,3},{1100,4213,3}, {1098,4208,3},{1095,4207,3},{1095,4197,3},{1093,4197,3},{1095,4193,3},{1098,4178,3}, {1100,4178,3},{1103,4180,3},{1125,4182,3},{1152,4177,3},{1175,4183,3},{1177,4188,3}, {1180,4190,3},{1182,4195,3},{1208,4213,3},{1210,4215,3},{1213,4217,3},{1225,4225,3}, {1230,4232,3},{1240,4233,3},{1253,4245,3},{1250,4253,3},{1237,4270,3},{1238,4272,3}, {1238,4275,3},{1242,4277,3},{1243,4282,3},{1253,4280,3},{1257,4287,3},{1263,4288,3}, {1262,4292,3},{1263,4295,3},{1270,4312,3},{1248,4330,3},{1247,4332,3},{1248,4333,3}, {1243,4333,3},{1238,4337,3},{1228,4337,3},{1223,4342,3},{1213,4342,3},{1203,4340,3}, {1198,4337,3},{1195,4317,3},{1185,4308,3},{1182,4303,3},{1182,4297,3},{1178,4295,3}, {1178,4290,3},{1175,4277,3},{1173,4275,3},{1168,4275,3},{1165,4270,3},{1160,4268,3}, {1158,4267,3},{1157,4262,3},{1160,4253,3},{1160,4252,3},{1157,4253,3},{1153,4252,3}, {1148,4262,3},{1148,4263,3},{1148,4268,3},{1152,4270,3},{1153,4267,3},{1155,4268,3}, {1160,4280,3},{1160,4308,3},{1158,4310,3},{1160,4312,3},{1162,4312,3},{1163,4313,3}, {1162,4315,3},{1158,4315,3},{1153,4320,3},{1153,4322,3},{1148,4325,3},{1145,4323,3}, {1140,4320,3},{1135,4318,3},{1130,4315,3},{1125,4312,3},{1120,4308,3},{1115,4305,3}, {1110,4302,3},{1105,4298,3},{1100,4295,3},{1423,3653,131},{1427,3655,3}, {1437,3652,3},{1442,3652,3},{1447,3652,3},{1452,3650,3},{1457,3650,3},{1462,3650,3}, {1467,3650,3},{1473,3648,3},{1478,3648,3},{1483,3648,3},{1488,3647,3},{1493,3647,3}, {1498,3647,3},{1503,3645,3},{1508,3645,3},{1515,3645,3},{1523,3655,3},{1543,3662,3}, {1545,3665,3},{1548,3663,3},{1575,3670,3},{1580,3677,3},{1622,3692,3},{1627,3697,3}, {1635,3695,3},{1642,3695,3},{1648,3692,3},{1652,3690,3},{1660,3692,3},{1663,3692,3}, {1672,3698,3},{1685,3702,3},{1687,3702,3},{1692,3702,3},{1695,3698,3},{1700,3702,3}, {1705,3700,3},{1707,3700,3},{1705,3710,3},{1702,3715,3},{1703,3718,3},{1702,3725,3}, {1707,3730,3},{1703,3742,3},{1707,3745,3},{1710,3748,3},{1720,3752,3},{1725,3753,3}, {1732,3750,3},{1733,3752,3},{1738,3773,3},{1747,3778,3},{1748,3782,3},{1748,3783,3}, {1745,3787,3},{1745,3792,3},{1750,3797,3},{1755,3805,3},{1755,3810,3},{1750,3810,3}, {1748,3812,3},{1750,3813,3},{1755,3813,3},{1753,3825,3},{1755,3827,3},{1760,3828,3}, {1767,3837,3},{1787,3847,3},{1802,3860,3},{1800,3860,3},{1795,3862,3},{1788,3867,3}, {1785,3867,3},{1778,3872,3},{1763,3882,3},{1753,3885,3},{1738,3893,3},{1730,3897,3}, {1723,3897,3},{1718,3902,3},{1707,3903,3},{1702,3907,3},{1688,3908,3},{1677,3913,3}, {1672,3915,3},{1672,3913,3},{1668,3917,3},{1662,3917,3},{1660,3913,3},{1655,3917,3}, {1653,3915,3},{1652,3918,3},{1620,3922,3},{1598,3927,3},{1590,3930,3},{1580,3943,3}, {1575,3942,3},{1573,3945,3},{1568,3945,3},{1567,3947,3},{1565,3945,3},{1563,3945,3}, {1562,3945,3},{1563,3947,3},{1563,3948,3},{1560,3947,3},{1560,3943,3},{1552,3947,3}, {1552,3950,3},{1553,3955,3},{1552,3958,3},{1548,3962,3},{1535,3965,3},{1532,3968,3}, {1525,3972,3},{1513,3970,3},{1508,3972,3},{1508,3975,3},{1507,3977,3},{1508,3982,3}, {1513,3982,3},{1517,3985,3},{1518,3985,3},{1527,3982,3},{1528,3982,3},{1527,3980,3}, {1527,3978,3},{1538,3977,3},{1545,3980,3},{1547,3985,3},{1550,3988,3},{1545,3990,3}, {1538,4000,3},{1537,4005,3},{1533,4008,3},{1523,4002,3},{1523,4005,3},{1520,4005,3}, {1515,4008,3},{1510,4010,3},{1507,4010,3},{1505,4013,3},{1503,4015,3},{1498,4015,3}, {1497,4017,3},{1493,4027,3},{1492,4030,3},{1495,4037,3},{1500,4038,3},{1497,4038,3}, {1497,4040,3},{1497,4042,3},{1500,4042,3},{1500,4045,3},{1498,4047,3},{1497,4050,3}, {1498,4052,3},{1500,4052,3},{1502,4052,3},{1498,4053,3},{1498,4055,3},{1495,4057,3}, {1495,4062,3},{1488,4062,3},{1488,4065,3},{1490,4065,3},{1490,4067,3},{1488,4070,3}, {1487,4067,3},{1483,4070,3},{1483,4073,3},{1480,4073,3},{1477,4072,3},{1473,4073,3}, {1472,4077,3},{1470,4077,3},{1470,4080,3},{1472,4082,3},{1470,4083,3},{1472,4085,3}, {1472,4088,3},{1465,4098,3},{1467,4105,3},{1463,4117,3},{1458,4120,3},{1448,4130,3}, {1440,4133,3},{1437,4138,3},{1430,4142,3},{1422,4150,3},{1413,4153,3},{1407,4162,3}, {1393,4168,3},{1393,4170,3},{1392,4172,3},{1393,4180,3},{1388,4183,3},{1387,4192,3}, {1387,4195,3},{1383,4198,3},{1378,4198,3},{1373,4207,3},{1370,4207,3},{1363,4212,3}, {1365,4213,3},{1362,4218,3},{1358,4218,3},{1355,4223,3},{1360,4220,3},{1360,4222,3}, {1363,4222,3},{1365,4217,3},{1367,4218,3},{1363,4223,3},{1360,4225,3},{1358,4228,3}, {1355,4230,3},{1348,4230,3},{1343,4233,3},{1322,4237,3},{1318,4248,3},{1323,4253,3}, {1320,4253,3},{1320,4255,3},{1317,4258,3},{1313,4262,3},{1307,4267,3},{1303,4273,3}, {1298,4275,3},{1297,4273,3},{1295,4277,3},{1287,4277,3},{1285,4278,3},{1287,4283,3}, {1282,4287,3},{1280,4293,3},{1278,4292,3},{1278,4293,3},{1280,4295,3},{1282,4298,3}, {1288,4300,3},{1290,4300,3},{1283,4305,3},{1283,4308,3},{1270,4312,3},{1263,4295,3}, {1262,4292,3},{1263,4288,3},{1257,4287,3},{1253,4280,3},{1243,4282,3},{1242,4277,3}, {1238,4275,3},{1238,4272,3},{1237,4270,3},{1250,4253,3},{1253,4245,3},{1253,4238,3}, {1257,4237,3},{1262,4233,3},{1263,4228,3},{1265,4223,3},{1267,4218,3},{1268,4213,3}, {1272,4208,3},{1275,4203,3},{1278,4200,3},{1283,4198,3},{1288,4197,3},{1293,4195,3}, {1298,4193,3},{1303,4192,3},{1308,4188,3},{1312,4185,3},{1317,4182,3},{1320,4178,3}, {1325,4177,3},{1330,4172,3},{1333,4168,3},{1337,4163,3},{1342,4160,3},{1345,4155,3}, {1348,4152,3},{1352,4147,3},{1355,4142,3},{1358,4138,3},{1362,4133,3},{1365,4128,3}, {1370,4125,3},{1373,4122,3},{1378,4118,3},{1382,4115,3},{1385,4110,3},{1388,4107,3}, {1393,4103,3},{1397,4098,3},{1400,4095,3},{1403,4090,3},{1405,4085,3},{1408,4080,3}, {1412,4075,3},{1415,4070,3},{1418,4067,3},{1420,4062,3},{1423,4057,3},{1425,4052,3}, {1428,4047,3},{1430,4043,3},{1433,4037,3},{1435,4032,3},{1438,4028,3},{1440,4023,3}, {1442,4018,3},{1443,4013,3},{1445,4007,3},{1448,4002,3},{1448,3997,3},{1450,3992,3}, {1452,3987,3},{1452,3982,3},{1450,3975,3},{1450,3970,3},{1450,3963,3},{1448,3958,3}, {1448,3953,3},{1447,3947,3},{1445,3942,3},{1445,3935,3},{1445,3930,3},{1445,3925,3}, {1450,3922,3},{1455,3920,3},{1458,3917,3},{1462,3912,3},{1462,3907,3},{1457,3903,3}, {1452,3902,3},{1450,3898,3},{1448,3893,3},{1447,3888,3},{1445,3883,3},{1443,3878,3}, {1442,3872,3},{1440,3867,3},{1440,3862,3},{1438,3855,3},{1440,3850,3},{1445,3845,3}, {1448,3842,3},{1453,3840,3},{1457,3837,3},{1458,3833,3},{1463,3832,3},{1467,3827,3}, {1467,3822,3},{1470,3817,3},{1473,3812,3},{1473,3807,3},{1477,3803,3},{1480,3798,3}, {1483,3795,3},{1488,3792,3},{1488,3790,3},{1483,3787,3},{1478,3785,3},{1475,3783,3}, {1470,3780,3},{1465,3780,3},{1460,3778,3},{1455,3777,3},{1450,3775,3},{1445,3773,3}, {1440,3770,3},{1435,3768,3},{1430,3765,3},{1427,3763,3},{1423,3758,3},{1425,3757,3}, {1427,3755,3},{1430,3752,3},{1433,3747,3},{1435,3747,3},{1440,3743,3},{1443,3740,3}, {1443,3735,3},{1443,3732,3},{1442,3727,3},{1440,3722,3},{1437,3722,3},{1432,3718,3}, {1428,3715,3},{1428,3710,3},{1428,3705,3},{1430,3700,3},{1432,3695,3},{1433,3690,3}, {1433,3683,3},{1432,3678,3},{1430,3673,3},{1428,3668,3},{1427,3663,3},{1427,3658,3}, {1423,3653,3},{462,3593,131},{480,3577,3},{508,3577,3},{515,3583,3},{523,3580,3}, {528,3580,3},{532,3583,3},{535,3575,3},{538,3568,3},{537,3560,3},{542,3555,3}, {543,3550,3},{543,3545,3},{535,3535,3},{537,3530,3},{543,3527,3},{548,3530,3}, {550,3528,3},{563,3510,3},{570,3510,3},{588,3498,3},{592,3500,3},{595,3498,3}, {600,3498,3},{607,3498,3},{613,3492,3},{620,3490,3},{623,3487,3},{635,3485,3}, {645,3480,3},{650,3480,3},{660,3477,3},{663,3472,3},{668,3470,3},{673,3463,3}, {675,3453,3},{692,3447,3},{697,3437,3},{697,3428,3},{702,3427,3},{702,3423,3}, {705,3422,3},{705,3420,3},{708,3420,3},{712,3420,3},{717,3418,3},{717,3412,3}, {722,3407,3},{725,3402,3},{738,3403,3},{753,3388,3},{757,3378,3},{765,3372,3}, {767,3368,3},{768,3365,3},{768,3355,3},{772,3352,3},{775,3347,3},{773,3340,3}, {772,3333,3},{775,3327,3},{777,3325,3},{780,3317,3},{778,3312,3},{778,3305,3}, {785,3302,3},{793,3298,3},{795,3302,3},{800,3303,3},{807,3310,3},{810,3310,3}, {812,3317,3},{813,3318,3},{820,3317,3},{825,3322,3},{828,3317,3},{833,3318,3}, {837,3317,3},{840,3317,3},{842,3322,3},{843,3320,3},{843,3323,3},{847,3327,3}, {843,3338,3},{845,3342,3},{847,3350,3},{848,3352,3},{845,3358,3},{847,3363,3}, {843,3367,3},{838,3370,3},{837,3378,3},{842,3382,3},{843,3385,3},{843,3397,3}, {858,3412,3},{863,3412,3},{868,3413,3},{873,3413,3},{878,3413,3},{883,3413,3}, {888,3413,3},{895,3413,3},{900,3413,3},{907,3413,3},{912,3412,3},{917,3412,3}, {922,3412,3},{927,3412,3},{932,3410,3},{937,3410,3},{942,3410,3},{947,3410,3}, {955,3408,3},{975,3413,3},{990,3420,3},{1003,3423,3},{1012,3432,3},{1017,3432,3}, {1023,3435,3},{1055,3428,3},{1063,3435,3},{1078,3443,3},{1088,3460,3},{1075,3477,3}, {1068,3477,3},{1068,3478,3},{1073,3482,3},{1073,3487,3},{1078,3487,3},{1087,3498,3}, {1092,3498,3},{1095,3493,3},{1120,3500,3},{1123,3497,3},{1125,3497,3},{1155,3510,3}, {1160,3510,3},{1165,3507,3},{1173,3505,3},{1183,3510,3},{1187,3513,3},{1190,3523,3}, {1193,3527,3},{1198,3527,3},{1202,3533,3},{1208,3535,3},{1217,3538,3},{1220,3543,3}, {1225,3543,3},{1260,3565,3},{1260,3568,3},{1262,3570,3},{1267,3570,3},{1272,3600,3}, {1272,3603,3},{1272,3608,3},{1270,3610,3},{1270,3615,3},{1287,3617,3},{1292,3613,3}, {1297,3615,3},{1298,3617,3},{1303,3617,3},{1337,3625,3},{1357,3640,3},{1360,3642,3}, {1367,3642,3},{1383,3648,3},{1395,3645,3},{1423,3653,3},{1427,3658,3},{1427,3663,3}, {1428,3668,3},{1430,3673,3},{1432,3678,3},{1433,3683,3},{1433,3690,3},{1432,3695,3}, {1430,3700,3},{1428,3705,3},{1428,3710,3},{1428,3715,3},{1432,3718,3},{1437,3722,3}, {1440,3722,3},{1442,3727,3},{1443,3732,3},{1443,3735,3},{1443,3740,3},{1440,3743,3}, {1435,3747,3},{1433,3747,3},{1430,3752,3},{1427,3755,3},{1425,3757,3},{1423,3758,3}, {1427,3763,3},{1430,3765,3},{1435,3768,3},{1440,3770,3},{1445,3773,3},{1450,3775,3}, {1455,3777,3},{1460,3778,3},{1465,3780,3},{1470,3780,3},{1475,3783,3},{1478,3785,3}, {1483,3787,3},{1488,3790,3},{1488,3792,3},{1483,3795,3},{1480,3798,3},{1477,3803,3}, {1473,3807,3},{1473,3812,3},{1470,3817,3},{1467,3822,3},{1467,3827,3},{1463,3832,3}, {1458,3833,3},{1457,3837,3},{1453,3840,3},{1448,3842,3},{1445,3845,3},{1440,3850,3}, {1438,3855,3},{1440,3862,3},{1440,3867,3},{1442,3872,3},{1443,3878,3},{1445,3883,3}, {1447,3888,3},{1448,3893,3},{1450,3898,3},{1452,3902,3},{1457,3903,3},{1462,3907,3}, {1462,3912,3},{1458,3917,3},{1455,3920,3},{1450,3922,3},{1445,3925,3},{1445,3930,3}, {1445,3935,3},{1445,3942,3},{1447,3947,3},{1448,3953,3},{1448,3958,3},{1450,3963,3}, {1450,3970,3},{1450,3975,3},{1452,3982,3},{1452,3987,3},{1450,3992,3},{1448,3997,3}, {1448,4002,3},{1445,4007,3},{1443,4013,3},{1442,4018,3},{1440,4023,3},{1438,4028,3}, {1435,4032,3},{1433,4037,3},{1430,4043,3},{1428,4047,3},{1425,4052,3},{1423,4057,3}, {1420,4062,3},{1418,4067,3},{1415,4070,3},{1412,4075,3},{1408,4080,3},{1405,4085,3}, {1403,4090,3},{1400,4095,3},{1397,4098,3},{1393,4103,3},{1388,4107,3},{1385,4110,3}, {1382,4115,3},{1378,4118,3},{1373,4122,3},{1370,4125,3},{1365,4128,3},{1362,4133,3}, {1358,4138,3},{1355,4142,3},{1352,4147,3},{1348,4152,3},{1345,4155,3},{1342,4160,3}, {1337,4163,3},{1333,4168,3},{1330,4172,3},{1325,4177,3},{1320,4178,3},{1317,4182,3}, {1312,4185,3},{1308,4188,3},{1303,4192,3},{1298,4193,3},{1293,4195,3},{1288,4197,3}, {1283,4198,3},{1278,4200,3},{1275,4203,3},{1272,4208,3},{1268,4213,3},{1267,4218,3}, {1265,4223,3},{1263,4228,3},{1262,4233,3},{1257,4237,3},{1253,4238,3},{1253,4245,3}, {1240,4233,3},{1230,4232,3},{1225,4225,3},{1213,4217,3},{1210,4215,3},{1208,4213,3}, {1182,4195,3},{1180,4190,3},{1177,4188,3},{1175,4183,3},{1152,4177,3},{1125,4182,3}, {1103,4180,3},{1100,4178,3},{1098,4178,3},{1095,4193,3},{1093,4197,3},{1095,4197,3}, {1095,4207,3},{1098,4208,3},{1100,4213,3},{1098,4223,3},{1100,4235,3},{1102,4237,3}, {1100,4240,3},{1107,4250,3},{1110,4263,3},{1108,4268,3},{1108,4275,3},{1100,4278,3}, {1098,4280,3},{1100,4285,3},{1098,4290,3},{1100,4292,3},{1100,4295,3},{1092,4292,3}, {1088,4285,3},{1082,4282,3},{1078,4277,3},{1067,4272,3},{1063,4267,3},{1053,4272,3}, {1045,4278,3},{1022,4285,3},{1017,4290,3},{1012,4297,3},{1008,4302,3},{997,4305,3}, {993,4308,3},{990,4312,3},{990,4318,3},{988,4322,3},{965,4328,3},{962,4333,3}, {957,4335,3},{955,4338,3},{952,4340,3},{948,4343,3},{943,4343,3},{935,4355,3}, {933,4358,3},{935,4363,3},{900,4402,3},{900,4405,3},{898,4410,3},{897,4415,3}, {895,4420,3},{893,4425,3},{892,4430,3},{890,4435,3},{888,4440,3},{887,4445,3}, {885,4450,3},{883,4455,3},{882,4460,3},{880,4467,3},{878,4472,3},{875,4477,3}, {875,4482,3},{872,4487,3},{870,4492,3},{868,4497,3},{867,4502,3},{865,4507,3}, {863,4512,3},{862,4517,3},{860,4522,3},{858,4528,3},{857,4533,3},{855,4538,3}, {853,4543,3},{852,4548,3},{850,4553,3},{848,4558,3},{847,4563,3},{845,4568,3}, {843,4573,3},{842,4578,3},{840,4583,3},{838,4588,3},{837,4593,3},{835,4598,3}, {833,4605,3},{832,4610,3},{830,4615,3},{828,4620,3},{827,4625,3},{825,4630,3}, {823,4635,3},{822,4640,3},{818,4645,3},{817,4650,3},{815,4655,3},{813,4660,3}, {812,4665,3},{810,4670,3},{808,4675,3},{807,4680,3},{805,4687,3},{803,4692,3}, {802,4697,3},{800,4700,3},{800,4705,3},{800,4710,3},{800,4715,3},{800,4720,3}, {800,4727,3},{800,4732,3},{800,4737,3},{800,4742,3},{800,4747,3},{800,4752,3}, {800,4757,3},{800,4763,3},{800,4768,3},{800,4773,3},{800,4778,3},{800,4783,3}, {800,4788,3},{800,4793,3},{800,4798,3},{797,4795,3},{792,4790,3},{788,4787,3}, {783,4782,3},{778,4777,3},{773,4772,3},{768,4765,3},{763,4760,3},{760,4755,3}, {755,4750,3},{750,4745,3},{745,4740,3},{740,4735,3},{735,4730,3},{730,4725,3}, {725,4720,3},{720,4715,3},{715,4710,3},{710,4705,3},{707,4700,3},{702,4697,3}, {698,4692,3},{693,4687,3},{688,4682,3},{683,4677,3},{678,4672,3},{673,4667,3}, {668,4663,3},{663,4658,3},{658,4653,3},{653,4648,3},{648,4643,3},{643,4638,3}, {640,4633,3},{635,4628,3},{630,4625,3},{625,4620,3},{620,4615,3},{615,4610,3}, {610,4605,3},{605,4600,3},{602,4597,3},{597,4593,3},{592,4588,3},{587,4583,3}, {582,4580,3},{577,4575,3},{572,4570,3},{567,4565,3},{562,4562,3},{558,4557,3}, {553,4552,3},{548,4548,3},{543,4543,3},{538,4538,3},{533,4535,3},{528,4530,3}, {523,4527,3},{518,4522,3},{515,4517,3},{510,4513,3},{505,4508,3},{500,4503,3}, {495,4500,3},{490,4495,3},{490,4490,3},{492,4485,3},{492,4480,3},{492,4475,3}, {492,4470,3},{492,4465,3},{493,4460,3},{493,4455,3},{493,4450,3},{493,4445,3}, {493,4440,3},{493,4435,3},{495,4428,3},{495,4423,3},{495,4418,3},{495,4413,3}, {495,4408,3},{497,4403,3},{497,4398,3},{492,4385,3},{488,4367,3},{477,4335,3}, {467,4315,3},{452,4298,3},{448,4295,3},{438,4293,3},{430,4287,3},{428,4277,3}, {427,4263,3},{420,4238,3},{422,4220,3},{420,4212,3},{417,4207,3},{413,4203,3}, {408,4195,3},{407,4193,3},{402,4193,3},{398,4192,3},{397,4190,3},{395,4185,3}, {400,4172,3},{397,4167,3},{398,4162,3},{397,4157,3},{397,4150,3},{395,4147,3}, {395,4117,3},{400,4110,3},{410,4102,3},{415,4092,3},{422,4088,3},{427,4080,3}, {428,4078,3},{425,4073,3},{423,4067,3},{420,4062,3},{418,4057,3},{417,4050,3}, {415,4045,3},{412,4040,3},{408,4035,3},{407,4030,3},{405,4023,3},{403,4018,3}, {400,4012,3},{397,4007,3},{393,4000,3},{390,3995,3},{387,3987,3},{377,3982,3}, {368,3978,3},{358,3968,3},{350,3960,3},{343,3957,3},{343,3952,3},{350,3948,3}, {348,3945,3},{350,3938,3},{352,3935,3},{352,3918,3},{355,3912,3},{355,3905,3}, {353,3892,3},{360,3872,3},{362,3870,3},{365,3868,3},{362,3865,3},{363,3855,3}, {367,3853,3},{367,3850,3},{363,3845,3},{365,3815,3},{363,3810,3},{373,3800,3}, {378,3790,3},{383,3783,3},{387,3778,3},{392,3772,3},{395,3765,3},{400,3758,3}, {403,3753,3},{407,3747,3},{412,3740,3},{415,3735,3},{420,3728,3},{423,3722,3}, {427,3717,3},{428,3712,3},{433,3708,3},{435,3705,3},{438,3703,3},{440,3697,3}, {443,3680,3},{443,3673,3},{443,3667,3},{445,3662,3},{445,3655,3},{445,3650,3}, {445,3643,3},{443,3637,3},{443,3630,3},{445,3625,3},{445,3622,3},{448,3620,3}, {453,3620,3},{460,3617,3},{462,3618,3},{465,3617,3},{467,3617,3},{467,3613,3}, {465,3612,3},{463,3613,3},{462,3613,3},{463,3603,3},{462,3603,3},{457,3603,3}, {455,3605,3},{452,3603,3},{458,3600,3},{463,3600,3},{463,3598,3},{458,3595,3}, {460,3595,3},{462,3593,3},{348,3087,131},{352,3085,3},{357,3085,3},{362,3080,3}, {367,3078,3},{368,3077,3},{363,3073,3},{365,3068,3},{362,3063,3},{362,3057,3}, {370,3058,3},{387,3055,3},{387,3053,3},{387,3048,3},{388,3042,3},{393,3033,3}, {397,3028,3},{397,3022,3},{400,3020,3},{405,3015,3},{410,3015,3},{413,3007,3}, {420,3003,3},{423,2998,3},{425,2995,3},{430,2995,3},{435,2990,3},{435,2983,3}, {438,2980,3},{448,2980,3},{453,2980,3},{457,2982,3},{458,2973,3},{462,2970,3}, {465,2965,3},{465,2962,3},{465,2958,3},{467,2955,3},{465,2953,3},{468,2950,3}, {468,2948,3},{467,2947,3},{458,2947,3},{457,2943,3},{453,2943,3},{448,2940,3}, {447,2935,3},{438,2932,3},{438,2925,3},{435,2925,3},{435,2920,3},{443,2912,3}, {443,2907,3},{445,2907,3},{447,2903,3},{448,2903,3},{450,2900,3},{448,2898,3}, {448,2882,3},{450,2880,3},{452,2880,3},{457,2878,3},{453,2875,3},{453,2872,3}, {442,2865,3},{442,2860,3},{437,2857,3},{437,2850,3},{432,2847,3},{428,2845,3}, {428,2837,3},{435,2833,3},{435,2827,3},{435,2820,3},{438,2817,3},{440,2813,3}, {442,2813,3},{443,2813,3},{445,2812,3},{442,2807,3},{448,2803,3},{457,2803,3}, {455,2797,3},{458,2795,3},{455,2793,3},{455,2787,3},{460,2782,3},{460,2778,3}, {467,2777,3},{472,2778,3},{478,2777,3},{478,2770,3},{483,2770,3},{490,2767,3}, {490,2758,3},{493,2753,3},{497,2752,3},{502,2745,3},{503,2748,3},{508,2748,3}, {513,2745,3},{527,2732,3},{533,2730,3},{542,2727,3},{548,2727,3},{555,2730,3}, {562,2723,3},{567,2723,3},{572,2720,3},{578,2713,3},{578,2708,3},{585,2702,3}, {588,2692,3},{598,2683,3},{600,2675,3},{598,2667,3},{603,2662,3},{608,2658,3}, {607,2653,3},{608,2650,3},{610,2652,3},{615,2658,3},{620,2658,3},{622,2653,3}, {628,2650,3},{628,2642,3},{632,2640,3},{633,2635,3},{637,2633,3},{642,2633,3}, {647,2632,3},{652,2637,3},{657,2635,3},{660,2637,3},{662,2642,3},{665,2642,3}, {667,2635,3},{670,2628,3},{687,2613,3},{692,2607,3},{698,2603,3},{702,2597,3}, {708,2592,3},{710,2583,3},{717,2577,3},{717,2568,3},{722,2563,3},{725,2557,3}, {727,2548,3},{735,2537,3},{742,2535,3},{747,2530,3},{747,2525,3},{750,2520,3}, {760,2522,3},{768,2530,3},{778,2528,3},{787,2522,3},{790,2518,3},{790,2515,3}, {790,2508,3},{793,2505,3},{797,2497,3},{802,2493,3},{803,2490,3},{817,2485,3}, {818,2477,3},{820,2473,3},{822,2463,3},{820,2453,3},{823,2448,3},{827,2447,3}, {827,2440,3},{825,2435,3},{827,2432,3},{828,2423,3},{832,2418,3},{838,2415,3}, {847,2417,3},{855,2423,3},{858,2427,3},{863,2423,3},{867,2425,3},{870,2425,3}, {868,2420,3},{870,2417,3},{868,2413,3},{870,2402,3},{870,2400,3},{870,2397,3}, {872,2393,3},{870,2388,3},{873,2382,3},{870,2373,3},{872,2367,3},{873,2363,3}, {872,2352,3},{878,2350,3},{890,2358,3},{900,2358,3},{900,2357,3},{897,2353,3}, {897,2350,3},{898,2347,3},{902,2345,3},{917,2350,3},{918,2357,3},{928,2365,3}, {933,2363,3},{943,2367,3},{945,2363,3},{952,2363,3},{953,2362,3},{957,2363,3}, {960,2367,3},{967,2370,3},{972,2368,3},{977,2368,3},{983,2367,3},{987,2367,3}, {992,2363,3},{998,2360,3},{1003,2357,3},{1007,2355,3},{1012,2352,3},{1015,2350,3}, {1020,2347,3},{1025,2343,3},{1028,2342,3},{1033,2338,3},{1037,2337,3},{1042,2333,3}, {1047,2330,3},{1048,2325,3},{1062,2313,3},{1070,2302,3},{1088,2288,3},{1095,2277,3}, {1093,2278,3},{1092,2287,3},{1095,2288,3},{1122,2297,3},{1128,2297,3},{1132,2295,3}, {1142,2293,3},{1140,2278,3},{1142,2278,3},{1147,2278,3},{1152,2265,3},{1163,2257,3}, {1167,2255,3},{1182,2258,3},{1200,2262,3},{1207,2263,3},{1208,2263,3},{1207,2262,3}, {1208,2258,3},{1207,2255,3},{1203,2248,3},{1205,2248,3},{1218,2250,3},{1235,2243,3}, {1240,2243,3},{1247,2238,3},{1248,2242,3},{1262,2247,3},{1267,2233,3},{1275,2222,3}, {1265,2213,3},{1263,2205,3},{1265,2195,3},{1268,2190,3},{1280,2183,3},{1297,2190,3}, {1302,2193,3},{1305,2195,3},{1313,2202,3},{1318,2217,3},{1335,2230,3},{1338,2230,3}, {1348,2223,3},{1357,2222,3},{1363,2215,3},{1367,2213,3},{1373,2213,3},{1378,2208,3}, {1397,2223,3},{1402,2232,3},{1402,2235,3},{1405,2240,3},{1405,2243,3},{1410,2248,3}, {1413,2255,3},{1417,2257,3},{1423,2255,3},{1425,2247,3},{1428,2245,3},{1432,2243,3}, {1435,2247,3},{1438,2245,3},{1448,2245,3},{1452,2238,3},{1457,2238,3},{1460,2240,3}, {1463,2247,3},{1468,2270,3},{1477,2268,3},{1487,2267,3},{1490,2273,3},{1498,2275,3}, {1508,2285,3},{1512,2293,3},{1515,2295,3},{1522,2298,3},{1537,2300,3},{1542,2298,3}, {1548,2292,3},{1555,2293,3},{1560,2302,3},{1572,2312,3},{1568,2335,3},{1572,2345,3}, {1577,2362,3},{1575,2378,3},{1570,2400,3},{1577,2400,3},{1583,2400,3},{1588,2400,3}, {1593,2400,3},{1600,2400,3},{1607,2400,3},{1613,2400,3},{1620,2400,3},{1627,2400,3}, {1633,2400,3},{1640,2400,3},{1647,2400,3},{1653,2400,3},{1658,2400,3},{1665,2400,3}, {1673,2400,3},{1678,2400,3},{1683,2400,3},{1690,2400,3},{1695,2400,3},{1702,2400,3}, {1707,2400,3},{1713,2400,3},{1720,2400,3},{1725,2400,3},{1730,2400,3},{1735,2400,3}, {1743,2400,3},{1748,2400,3},{1753,2400,3},{1760,2400,3},{1767,2400,3},{1773,2400,3}, {1778,2400,3},{1787,2400,3},{1793,2400,3},{1798,2400,3},{1803,2400,3},{1808,2400,3}, {1817,2400,3},{1823,2400,3},{1830,2400,3},{1837,2400,3},{1843,2400,3},{1850,2400,3}, {1857,2400,3},{1862,2400,3},{1868,2400,3},{1877,2400,3},{1883,2400,3},{1890,2400,3}, {1897,2400,3},{1903,2400,3},{1910,2400,3},{1917,2400,3},{1923,2400,3},{1930,2400,3}, {1937,2400,3},{1943,2400,3},{1950,2400,3},{1957,2400,3},{1962,2400,3},{1967,2400,3}, {1973,2400,3},{1978,2400,3},{1983,2400,3},{1990,2400,3},{1995,2400,3},{2000,2400,3}, {2000,2402,3},{2000,2408,3},{2000,2413,3},{2000,2420,3},{2000,2425,3},{2000,2430,3}, {2000,2437,3},{2000,2442,3},{2000,2448,3},{2000,2453,3},{2000,2460,3},{2000,2465,3}, {2000,2472,3},{2000,2477,3},{2000,2483,3},{2000,2488,3},{2000,2495,3},{2000,2500,3}, {2007,2500,3},{2012,2500,3},{2018,2500,3},{2023,2500,3},{2028,2500,3},{2033,2500,3}, {2040,2500,3},{2045,2500,3},{2050,2500,3},{2057,2500,3},{2062,2500,3},{2067,2500,3}, {2073,2500,3},{2078,2500,3},{2083,2500,3},{2090,2500,3},{2095,2500,3},{2100,2500,3}, {2107,2500,3},{2112,2500,3},{2117,2500,3},{2122,2500,3},{2128,2500,3},{2133,2500,3}, {2138,2500,3},{2145,2500,3},{2150,2500,3},{2155,2500,3},{2162,2500,3},{2167,2500,3}, {2172,2500,3},{2178,2500,3},{2183,2500,3},{2188,2500,3},{2195,2500,3},{2200,2500,3}, {2200,2507,3},{2200,2512,3},{2200,2518,3},{2200,2523,3},{2200,2530,3},{2200,2535,3}, {2200,2542,3},{2200,2547,3},{2200,2553,3},{2200,2558,3},{2200,2565,3},{2200,2572,3}, {2200,2577,3},{2200,2582,3},{2200,2588,3},{2200,2595,3},{2200,2600,3},{2200,2607,3}, {2200,2613,3},{2200,2618,3},{2200,2625,3},{2200,2630,3},{2200,2637,3},{2200,2642,3}, {2200,2648,3},{2200,2653,3},{2200,2660,3},{2200,2665,3},{2200,2672,3},{2200,2677,3}, {2200,2683,3},{2200,2688,3},{2200,2695,3},{2200,2700,3},{2200,2707,3},{2200,2712,3}, {2200,2718,3},{2200,2723,3},{2200,2730,3},{2200,2735,3},{2200,2742,3},{2200,2747,3}, {2200,2753,3},{2200,2758,3},{2200,2763,3},{2200,2770,3},{2200,2775,3},{2200,2782,3}, {2200,2787,3},{2200,2793,3},{2200,2798,3},{2200,2805,3},{2200,2810,3},{2200,2817,3}, {2200,2822,3},{2200,2827,3},{2200,2833,3},{2200,2840,3},{2200,2845,3},{2200,2852,3}, {2200,2857,3},{2200,2862,3},{2200,2868,3},{2200,2873,3},{2200,2880,3},{2200,2885,3}, {2200,2892,3},{2200,2897,3},{2200,2900,3},{2200,2905,3},{2200,2912,3},{2200,2917,3}, {2200,2923,3},{2200,2928,3},{2200,2935,3},{2200,2940,3},{2200,2945,3},{2200,2952,3}, {2200,2957,3},{2200,2963,3},{2200,2968,3},{2200,2973,3},{2200,2980,3},{2200,2985,3}, {2200,2992,3},{2200,2997,3},{2200,3002,3},{2200,3008,3},{2200,3013,3},{2200,3020,3}, {2200,3025,3},{2200,3030,3},{2200,3037,3},{2200,3042,3},{2200,3048,3},{2200,3053,3}, {2200,3060,3},{2200,3065,3},{2200,3070,3},{2200,3077,3},{2200,3082,3},{2200,3088,3}, {2200,3093,3},{2200,3098,3},{2200,3105,3},{2200,3110,3},{2200,3117,3},{2200,3122,3}, {2200,3127,3},{2205,3130,3},{2210,3133,3},{2217,3137,3},{2220,3138,3},{2223,3143,3}, {2223,3147,3},{2220,3143,3},{2215,3138,3},{2213,3135,3},{2210,3137,3},{2203,3135,3}, {2197,3135,3},{2192,3132,3},{2185,3123,3},{2182,3122,3},{2182,3118,3},{2180,3120,3}, {2177,3117,3},{2173,3118,3},{2165,3117,3},{2160,3110,3},{2150,3103,3},{2152,3107,3}, {2162,3113,3},{2162,3118,3},{2170,3120,3},{2172,3122,3},{2175,3122,3},{2177,3122,3}, {2177,3125,3},{2178,3127,3},{2177,3130,3},{2192,3138,3},{2207,3140,3},{2213,3143,3}, {2213,3147,3},{2218,3150,3},{2215,3152,3},{2210,3148,3},{2205,3147,3},{2200,3147,3}, {2200,3152,3},{2200,3158,3},{2200,3163,3},{2200,3168,3},{2200,3175,3},{2200,3180,3}, {2200,3187,3},{2200,3192,3},{2200,3198,3},{2200,3203,3},{2200,3208,3},{2200,3215,3}, {2200,3220,3},{2200,3225,3},{2200,3232,3},{2200,3237,3},{2200,3242,3},{2200,3248,3}, {2200,3253,3},{2200,3260,3},{2200,3265,3},{2200,3270,3},{2200,3277,3},{2200,3282,3}, {2200,3287,3},{2200,3293,3},{2200,3298,3},{2200,3303,3},{2200,3310,3},{2200,3317,3}, {2198,3318,3},{2197,3323,3},{2192,3328,3},{2188,3335,3},{2185,3340,3},{2180,3347,3}, {2177,3352,3},{2172,3357,3},{2173,3363,3},{2173,3368,3},{2173,3375,3},{2175,3382,3}, {2175,3387,3},{2175,3393,3},{2177,3402,3},{2182,3403,3},{2188,3405,3},{2193,3408,3}, {2198,3410,3},{2203,3412,3},{2208,3413,3},{2215,3415,3},{2220,3417,3},{2220,3423,3}, {2222,3430,3},{2223,3435,3},{2223,3442,3},{2225,3447,3},{2225,3453,3},{2227,3460,3}, {2228,3465,3},{2228,3472,3},{2235,3473,3},{2240,3477,3},{2245,3478,3},{2250,3482,3}, {2255,3483,3},{2262,3487,3},{2267,3488,3},{2272,3490,3},{2277,3493,3},{2285,3497,3}, {2283,3503,3},{2282,3508,3},{2280,3515,3},{2277,3523,3},{2282,3527,3},{2285,3532,3}, {2288,3535,3},{2292,3540,3},{2297,3543,3},{2300,3548,3},{2303,3552,3},{2308,3557,3}, {2313,3562,3},{2308,3568,3},{2303,3570,3},{2298,3570,3},{2298,3572,3},{2293,3573,3}, {2292,3575,3},{2290,3573,3},{2288,3577,3},{2290,3578,3},{2285,3578,3},{2288,3575,3}, {2285,3573,3},{2283,3573,3},{2283,3577,3},{2280,3578,3},{2282,3578,3},{2283,3578,3}, {2282,3582,3},{2275,3588,3},{2267,3598,3},{2268,3605,3},{2267,3615,3},{2263,3623,3}, {2258,3628,3},{2250,3630,3},{2247,3637,3},{2243,3637,3},{2232,3647,3},{2228,3660,3}, {2218,3672,3},{2218,3675,3},{2217,3677,3},{2213,3682,3},{2203,3690,3},{2202,3690,3}, {2200,3688,3},{2197,3688,3},{2197,3683,3},{2193,3688,3},{2188,3687,3},{2185,3688,3}, {2183,3683,3},{2182,3687,3},{2182,3690,3},{2177,3690,3},{2175,3687,3},{2175,3690,3}, {2163,3693,3},{2162,3690,3},{2160,3695,3},{2158,3695,3},{2157,3697,3},{2153,3697,3}, {2148,3698,3},{2147,3702,3},{2127,3710,3},{2113,3723,3},{2107,3727,3},{2103,3725,3}, {2102,3722,3},{2107,3720,3},{2108,3720,3},{2105,3722,3},{2113,3718,3},{2113,3717,3}, {2120,3717,3},{2120,3713,3},{2117,3712,3},{2115,3712,3},{2108,3710,3},{2107,3710,3}, {2107,3707,3},{2103,3707,3},{2102,3708,3},{2098,3708,3},{2087,3712,3},{2072,3715,3}, {2068,3715,3},{2063,3718,3},{2053,3722,3},{2047,3722,3},{2045,3720,3},{2047,3720,3}, {2047,3718,3},{2043,3718,3},{2038,3718,3},{2035,3718,3},{2020,3718,3},{2005,3722,3}, {2003,3722,3},{2003,3720,3},{2000,3720,3},{1983,3728,3},{1977,3728,3},{1977,3727,3}, {1968,3728,3},{1968,3725,3},{1962,3725,3},{1963,3722,3},{1960,3725,3},{1955,3725,3}, {1948,3730,3},{1938,3732,3},{1932,3735,3},{1918,3737,3},{1905,3743,3},{1900,3743,3}, {1895,3742,3},{1892,3743,3},{1885,3743,3},{1880,3748,3},{1872,3752,3},{1872,3755,3}, {1872,3758,3},{1872,3760,3},{1873,3768,3},{1870,3770,3},{1870,3777,3},{1865,3775,3}, {1862,3777,3},{1865,3778,3},{1868,3778,3},{1867,3778,3},{1862,3778,3},{1853,3795,3}, {1842,3807,3},{1837,3813,3},{1830,3808,3},{1830,3810,3},{1828,3812,3},{1823,3818,3}, {1823,3823,3},{1825,3827,3},{1828,3827,3},{1830,3830,3},{1828,3832,3},{1828,3828,3}, {1825,3828,3},{1823,3827,3},{1822,3822,3},{1822,3828,3},{1818,3837,3},{1820,3838,3}, {1822,3838,3},{1822,3840,3},{1818,3843,3},{1817,3842,3},{1815,3845,3},{1813,3843,3}, {1812,3848,3},{1813,3850,3},{1807,3852,3},{1810,3855,3},{1812,3853,3},{1807,3858,3}, {1803,3858,3},{1802,3860,3},{1787,3847,3},{1767,3837,3},{1760,3828,3},{1755,3827,3}, {1753,3825,3},{1755,3813,3},{1750,3813,3},{1748,3812,3},{1750,3810,3},{1755,3810,3}, {1755,3805,3},{1750,3797,3},{1745,3792,3},{1745,3787,3},{1748,3783,3},{1748,3782,3}, {1747,3778,3},{1738,3773,3},{1733,3752,3},{1732,3750,3},{1725,3753,3},{1720,3752,3}, {1710,3748,3},{1707,3745,3},{1703,3742,3},{1707,3730,3},{1702,3725,3},{1703,3718,3}, {1702,3715,3},{1705,3710,3},{1707,3700,3},{1705,3700,3},{1700,3702,3},{1695,3698,3}, {1692,3702,3},{1687,3702,3},{1685,3702,3},{1672,3698,3},{1663,3692,3},{1660,3692,3}, {1652,3690,3},{1648,3692,3},{1642,3695,3},{1635,3695,3},{1627,3697,3},{1622,3692,3}, {1580,3677,3},{1575,3670,3},{1548,3663,3},{1545,3665,3},{1543,3662,3},{1523,3655,3}, {1515,3645,3},{1508,3645,3},{1503,3645,3},{1498,3647,3},{1493,3647,3},{1488,3647,3}, {1483,3648,3},{1478,3648,3},{1473,3648,3},{1467,3650,3},{1462,3650,3},{1457,3650,3}, {1452,3650,3},{1447,3652,3},{1442,3652,3},{1437,3652,3},{1427,3655,3},{1423,3653,3}, {1395,3645,3},{1383,3648,3},{1367,3642,3},{1360,3642,3},{1357,3640,3},{1337,3625,3}, {1303,3617,3},{1298,3617,3},{1297,3615,3},{1292,3613,3},{1287,3617,3},{1270,3615,3}, {1270,3610,3},{1272,3608,3},{1272,3603,3},{1272,3600,3},{1267,3570,3},{1262,3570,3}, {1260,3568,3},{1260,3565,3},{1225,3543,3},{1220,3543,3},{1217,3538,3},{1208,3535,3}, {1202,3533,3},{1198,3527,3},{1193,3527,3},{1190,3523,3},{1187,3513,3},{1183,3510,3}, {1173,3505,3},{1165,3507,3},{1160,3510,3},{1155,3510,3},{1125,3497,3},{1123,3497,3}, {1120,3500,3},{1095,3493,3},{1092,3498,3},{1087,3498,3},{1078,3487,3},{1073,3487,3}, {1073,3482,3},{1068,3478,3},{1068,3477,3},{1075,3477,3},{1088,3460,3},{1078,3443,3}, {1063,3435,3},{1055,3428,3},{1023,3435,3},{1017,3432,3},{1012,3432,3},{1003,3423,3}, {990,3420,3},{975,3413,3},{955,3408,3},{947,3410,3},{942,3410,3},{937,3410,3}, {932,3410,3},{927,3412,3},{922,3412,3},{917,3412,3},{912,3412,3},{907,3413,3}, {900,3413,3},{895,3413,3},{888,3413,3},{883,3413,3},{878,3413,3},{873,3413,3}, {868,3413,3},{863,3412,3},{858,3412,3},{843,3397,3},{843,3385,3},{842,3382,3}, {837,3378,3},{838,3370,3},{843,3367,3},{847,3363,3},{845,3358,3},{848,3352,3}, {847,3350,3},{845,3342,3},{843,3338,3},{847,3327,3},{843,3323,3},{843,3320,3}, {842,3322,3},{840,3317,3},{837,3317,3},{833,3318,3},{828,3317,3},{825,3322,3}, {820,3317,3},{813,3318,3},{812,3317,3},{810,3310,3},{807,3310,3},{800,3303,3}, {795,3302,3},{793,3298,3},{785,3302,3},{778,3305,3},{778,3312,3},{780,3317,3}, {777,3325,3},{775,3327,3},{772,3333,3},{773,3340,3},{775,3347,3},{772,3352,3}, {768,3355,3},{768,3365,3},{767,3368,3},{765,3372,3},{757,3378,3},{753,3388,3}, {738,3403,3},{725,3402,3},{722,3407,3},{717,3412,3},{717,3418,3},{712,3420,3}, {708,3420,3},{705,3420,3},{705,3422,3},{702,3423,3},{702,3427,3},{697,3428,3}, {697,3437,3},{692,3447,3},{675,3453,3},{673,3463,3},{668,3470,3},{663,3472,3}, {660,3477,3},{650,3480,3},{645,3480,3},{635,3485,3},{623,3487,3},{620,3490,3}, {613,3492,3},{607,3498,3},{600,3498,3},{595,3498,3},{592,3500,3},{588,3498,3}, {570,3510,3},{563,3510,3},{550,3528,3},{548,3530,3},{543,3527,3},{537,3530,3}, {535,3535,3},{543,3545,3},{543,3550,3},{542,3555,3},{537,3560,3},{538,3568,3}, {535,3575,3},{532,3583,3},{528,3580,3},{523,3580,3},{515,3583,3},{508,3577,3}, {480,3577,3},{462,3593,3},{462,3592,3},{462,3587,3},{462,3580,3},{462,3575,3}, {462,3570,3},{462,3565,3},{462,3558,3},{462,3553,3},{462,3548,3},{462,3542,3}, {462,3537,3},{462,3532,3},{462,3527,3},{462,3520,3},{462,3515,3},{462,3510,3}, {462,3505,3},{462,3498,3},{462,3493,3},{462,3488,3},{462,3483,3},{462,3477,3}, {462,3472,3},{462,3467,3},{462,3462,3},{462,3455,3},{462,3450,3},{462,3445,3}, {462,3438,3},{458,3435,3},{453,3432,3},{450,3428,3},{447,3423,3},{442,3420,3}, {438,3415,3},{433,3412,3},{430,3408,3},{427,3403,3},{422,3400,3},{418,3395,3}, {413,3392,3},{410,3387,3},{405,3383,3},{402,3378,3},{398,3375,3},{393,3372,3}, {390,3367,3},{387,3363,3},{382,3358,3},{378,3355,3},{375,3352,3},{375,3345,3}, {375,3340,3},{377,3335,3},{377,3330,3},{377,3323,3},{377,3318,3},{388,3302,3}, {382,3290,3},{375,3272,3},{375,3240,3},{362,3220,3},{352,3220,3},{353,3210,3}, {358,3207,3},{360,3195,3},{368,3193,3},{380,3183,3},{382,3180,3},{372,3170,3}, {368,3157,3},{365,3153,3},{380,3128,3},{380,3118,3},{370,3103,3},{368,3097,3}, {357,3088,3},{348,3087,3},{2200,2500,131},{2203,2500,3},{2208,2500,3},{2215,2500,3}, {2220,2500,3},{2225,2500,3},{2232,2500,3},{2237,2500,3},{2242,2500,3},{2248,2500,3}, {2253,2500,3},{2258,2500,3},{2265,2500,3},{2270,2500,3},{2275,2500,3},{2280,2500,3}, {2287,2500,3},{2292,2500,3},{2297,2500,3},{2303,2500,3},{2308,2500,3},{2313,2500,3}, {2320,2500,3},{2325,2500,3},{2330,2500,3},{2337,2500,3},{2342,2500,3},{2347,2500,3}, {2352,2500,3},{2358,2500,3},{2363,2500,3},{2368,2500,3},{2375,2500,3},{2380,2500,3}, {2385,2500,3},{2392,2500,3},{2397,2500,3},{2402,2500,3},{2408,2500,3},{2413,2500,3}, {2418,2500,3},{2425,2500,3},{2430,2500,3},{2435,2500,3},{2442,2500,3},{2447,2500,3}, {2452,2500,3},{2458,2500,3},{2463,2500,3},{2468,2500,3},{2475,2500,3},{2480,2500,3}, {2485,2500,3},{2492,2500,3},{2497,2500,3},{2503,2500,3},{2508,2500,3},{2513,2500,3}, {2520,2500,3},{2525,2500,3},{2530,2500,3},{2537,2500,3},{2542,2500,3},{2547,2500,3}, {2553,2500,3},{2558,2500,3},{2563,2500,3},{2570,2500,3},{2575,2500,3},{2580,2500,3}, {2587,2500,3},{2592,2500,3},{2597,2500,3},{2603,2500,3},{2608,2500,3},{2613,2500,3}, {2620,2500,3},{2625,2500,3},{2630,2500,3},{2637,2500,3},{2642,2500,3},{2647,2500,3}, {2653,2500,3},{2658,2500,3},{2663,2500,3},{2670,2500,3},{2675,2500,3},{2680,2500,3}, {2687,2500,3},{2692,2500,3},{2697,2500,3},{2702,2500,3},{2708,2500,3},{2713,2500,3}, {2718,2500,3},{2725,2500,3},{2730,2500,3},{2735,2500,3},{2742,2500,3},{2747,2500,3}, {2752,2500,3},{2758,2500,3},{2763,2500,3},{2768,2500,3},{2775,2500,3},{2780,2500,3}, {2785,2500,3},{2792,2500,3},{2797,2500,3},{2802,2500,3},{2808,2500,3},{2813,2500,3}, {2820,2500,3},{2825,2500,3},{2830,2500,3},{2837,2500,3},{2842,2500,3},{2847,2500,3}, {2853,2500,3},{2858,2500,3},{2863,2500,3},{2870,2500,3},{2875,2500,3},{2880,2500,3}, {2887,2500,3},{2892,2500,3},{2897,2500,3},{2903,2500,3},{2908,2500,3},{2913,2500,3}, {2920,2500,3},{2925,2500,3},{2930,2497,3},{2937,2495,3},{2942,2492,3},{2948,2488,3}, {2953,2488,3},{2960,2488,3},{2965,2488,3},{2970,2487,3},{2973,2483,3},{2978,2482,3}, {2983,2483,3},{2990,2483,3},{2995,2482,3},{3000,2478,3},{3005,2477,3},{3010,2475,3}, {3013,2472,3},{3020,2472,3},{3025,2473,3},{3030,2477,3},{3033,2478,3},{3038,2483,3}, {3042,2487,3},{3047,2490,3},{3052,2493,3},{3057,2493,3},{3062,2497,3},{3067,2498,3}, {3072,2498,3},{3077,2502,3},{3082,2500,3},{3087,2498,3},{3092,2495,3},{3097,2493,3}, {3102,2492,3},{3107,2490,3},{3112,2488,3},{3117,2487,3},{3122,2488,3},{3127,2487,3}, {3132,2487,3},{3137,2487,3},{3142,2492,3},{3145,2497,3},{3148,2502,3},{3152,2505,3}, {3157,2507,3},{3162,2510,3},{3165,2515,3},{3153,2517,3},{3150,2532,3},{3150,2540,3}, {3162,2582,3},{3162,2592,3},{3160,2608,3},{3152,2637,3},{3148,2673,3},{3145,2682,3}, {3143,2690,3},{3145,2697,3},{3142,2700,3},{3142,2705,3},{3140,2707,3},{3137,2722,3}, {3137,2735,3},{3127,2738,3},{3123,2742,3},{3122,2747,3},{3122,2755,3},{3120,2757,3}, {3120,2762,3},{3118,2763,3},{3117,2765,3},{3122,2780,3},{3125,2785,3},{3123,2787,3}, {3120,2787,3},{3110,2792,3},{3108,2815,3},{3107,2820,3},{3105,2832,3},{3108,2842,3}, {3105,2847,3},{3105,2853,3},{3102,2860,3},{3098,2872,3},{3095,2882,3},{3090,2883,3}, {3083,2898,3},{3082,2912,3},{3087,2933,3},{3093,2948,3},{3110,2975,3},{3113,2978,3}, {3113,2982,3},{3118,2988,3},{3120,2987,3},{3122,2988,3},{3120,2990,3},{3125,2997,3}, {3133,3007,3},{3128,3008,3},{3127,3017,3},{3123,3015,3},{3122,3015,3},{3122,3017,3}, {3123,3020,3},{3122,3022,3},{3127,3028,3},{3123,3028,3},{3127,3030,3},{3128,3027,3}, {3127,3025,3},{3127,3018,3},{3132,3028,3},{3135,3032,3},{3143,3035,3},{3150,3035,3}, {3145,3037,3},{3143,3040,3},{3150,3035,3},{3147,3042,3},{3145,3050,3},{3158,3097,3}, {3153,3085,3},{3143,3065,3},{3142,3057,3},{3140,3055,3},{3138,3058,3},{3140,3065,3}, {3142,3068,3},{3138,3073,3},{3143,3078,3},{3145,3080,3},{3143,3082,3},{3143,3087,3}, {3142,3090,3},{3143,3093,3},{3145,3093,3},{3143,3098,3},{3152,3102,3},{3152,3108,3}, {3148,3110,3},{3150,3113,3},{3152,3112,3},{3152,3113,3},{3155,3112,3},{3157,3107,3}, {3158,3098,3},{3160,3103,3},{3160,3112,3},{3158,3118,3},{3153,3135,3},{3145,3152,3}, {3145,3160,3},{3148,3175,3},{3153,3185,3},{3153,3190,3},{3150,3195,3},{3147,3197,3}, {3138,3203,3},{3128,3220,3},{3132,3215,3},{3140,3200,3},{3138,3200,3},{3143,3197,3}, {3142,3200,3},{3152,3193,3},{3153,3188,3},{3152,3185,3},{3150,3185,3},{3150,3187,3}, {3145,3188,3},{3142,3188,3},{3145,3185,3},{3145,3183,3},{3147,3183,3},{3145,3183,3}, {3143,3183,3},{3143,3185,3},{3142,3185,3},{3142,3188,3},{3140,3183,3},{3138,3183,3}, {3137,3183,3},{3135,3185,3},{3135,3180,3},{3133,3178,3},{3133,3180,3},{3132,3178,3}, {3130,3180,3},{3130,3177,3},{3127,3178,3},{3128,3180,3},{3122,3188,3},{3125,3190,3}, {3122,3190,3},{3120,3193,3},{3118,3193,3},{3122,3197,3},{3123,3200,3},{3122,3200,3}, {3122,3203,3},{3115,3203,3},{3112,3202,3},{3113,3205,3},{3110,3207,3},{3108,3205,3}, {3108,3208,3},{3105,3210,3},{3105,3213,3},{3107,3210,3},{3110,3210,3},{3107,3215,3}, {3110,3213,3},{3110,3218,3},{3112,3218,3},{3112,3220,3},{3110,3222,3},{3112,3228,3}, {3113,3228,3},{3117,3227,3},{3117,3228,3},{3122,3230,3},{3125,3227,3},{3127,3228,3}, {3128,3222,3},{3127,3232,3},{3125,3230,3},{3120,3230,3},{3125,3230,3},{3127,3233,3}, {3125,3233,3},{3122,3240,3},{3115,3247,3},{3107,3255,3},{3105,3262,3},{3107,3275,3}, {3115,3293,3},{3107,3277,3},{3105,3267,3},{3105,3272,3},{3103,3270,3},{3103,3272,3}, {3105,3278,3},{3108,3283,3},{3110,3290,3},{3108,3293,3},{3108,3290,3},{3108,3292,3}, {3108,3293,3},{3110,3292,3},{3112,3293,3},{3108,3298,3},{3107,3298,3},{3108,3297,3}, {3107,3297,3},{3105,3302,3},{3107,3302,3},{3108,3302,3},{3110,3305,3},{3112,3307,3}, {3113,3307,3},{3110,3302,3},{3110,3295,3},{3112,3302,3},{3115,3303,3},{3118,3313,3}, {3118,3310,3},{3112,3317,3},{3110,3312,3},{3108,3315,3},{3105,3313,3},{3105,3322,3}, {3107,3320,3},{3110,3327,3},{3108,3327,3},{3108,3328,3},{3108,3330,3},{3110,3330,3}, {3110,3332,3},{3110,3328,3},{3112,3338,3},{3113,3338,3},{3113,3342,3},{3115,3342,3}, {3113,3348,3},{3112,3360,3},{3113,3372,3},{3120,3398,3},{3125,3410,3},{3133,3422,3}, {3122,3427,3},{3133,3422,3},{3122,3427,3},{3102,3435,3},{3068,3450,3},{3058,3452,3}, {3053,3452,3},{3048,3457,3},{3042,3455,3},{3037,3462,3},{3002,3475,3},{3000,3475,3}, {2975,3485,3},{2970,3485,3},{2965,3488,3},{2960,3487,3},{2953,3488,3},{2948,3490,3}, {2947,3485,3},{2933,3478,3},{2930,3473,3},{2920,3473,3},{2917,3472,3},{2917,3470,3}, {2905,3467,3},{2898,3468,3},{2895,3463,3},{2887,3465,3},{2883,3462,3},{2873,3463,3}, {2855,3452,3},{2848,3452,3},{2848,3448,3},{2843,3445,3},{2837,3445,3},{2832,3440,3}, {2823,3442,3},{2817,3445,3},{2808,3443,3},{2800,3445,3},{2797,3443,3},{2793,3437,3}, {2792,3437,3},{2792,3433,3},{2785,3432,3},{2785,3428,3},{2778,3427,3},{2778,3422,3}, {2777,3422,3},{2777,3425,3},{2773,3425,3},{2778,3418,3},{2780,3408,3},{2782,3405,3}, {2788,3398,3},{2790,3395,3},{2793,3392,3},{2793,3388,3},{2802,3380,3},{2802,3377,3}, {2803,3377,3},{2808,3372,3},{2817,3367,3},{2817,3365,3},{2818,3363,3},{2823,3362,3}, {2830,3357,3},{2837,3343,3},{2847,3335,3},{2850,3328,3},{2855,3327,3},{2853,3327,3}, {2855,3327,3},{2858,3325,3},{2858,3323,3},{2855,3325,3},{2855,3323,3},{2867,3320,3}, {2877,3322,3},{2882,3317,3},{2885,3317,3},{2892,3318,3},{2895,3317,3},{2900,3317,3}, {2905,3310,3},{2908,3307,3},{2920,3295,3},{2923,3288,3},{2930,3287,3},{2932,3283,3}, {2940,3282,3},{2945,3273,3},{2948,3273,3},{2945,3272,3},{2948,3273,3},{2958,3272,3}, {2960,3268,3},{2973,3270,3},{2982,3260,3},{2987,3263,3},{2993,3257,3},{2993,3258,3}, {2995,3258,3},{2997,3257,3},{2998,3258,3},{3000,3258,3},{2998,3255,3},{2993,3257,3}, {2995,3255,3},{2997,3253,3},{2993,3247,3},{2990,3247,3},{2987,3248,3},{2987,3252,3}, {2977,3242,3},{2968,3237,3},{2963,3237,3},{2960,3233,3},{2953,3237,3},{2948,3245,3}, {2938,3257,3},{2933,3260,3},{2910,3267,3},{2907,3263,3},{2905,3265,3},{2905,3262,3}, {2898,3262,3},{2893,3267,3},{2887,3268,3},{2880,3275,3},{2880,3278,3},{2877,3280,3}, {2873,3283,3},{2857,3287,3},{2855,3293,3},{2850,3297,3},{2848,3300,3},{2840,3305,3}, {2835,3310,3},{2828,3312,3},{2827,3315,3},{2818,3322,3},{2817,3323,3},{2815,3325,3}, {2813,3328,3},{2808,3333,3},{2805,3333,3},{2805,3337,3},{2803,3337,3},{2803,3342,3}, {2798,3348,3},{2785,3358,3},{2778,3358,3},{2780,3358,3},{2778,3357,3},{2782,3355,3}, {2783,3347,3},{2780,3347,3},{2775,3352,3},{2775,3357,3},{2770,3353,3},{2765,3360,3}, {2767,3357,3},{2767,3355,3},{2765,3355,3},{2768,3353,3},{2765,3350,3},{2758,3355,3}, {2753,3355,3},{2748,3363,3},{2747,3363,3},{2743,3367,3},{2732,3370,3},{2730,3373,3}, {2725,3383,3},{2720,3383,3},{2717,3382,3},{2712,3383,3},{2708,3388,3},{2705,3392,3}, {2703,3388,3},{2693,3395,3},{2690,3400,3},{2683,3400,3},{2683,3398,3},{2685,3397,3}, {2683,3395,3},{2675,3395,3},{2673,3393,3},{2665,3393,3},{2662,3402,3},{2652,3407,3}, {2642,3410,3},{2632,3418,3},{2620,3422,3},{2607,3432,3},{2600,3433,3},{2593,3438,3}, {2592,3442,3},{2585,3443,3},{2578,3448,3},{2572,3455,3},{2562,3458,3},{2548,3467,3}, {2538,3470,3},{2535,3473,3},{2513,3485,3},{2500,3493,3},{2495,3495,3},{2492,3498,3}, {2482,3500,3},{2475,3507,3},{2462,3512,3},{2458,3517,3},{2452,3513,3},{2448,3520,3}, {2440,3523,3},{2428,3538,3},{2412,3550,3},{2412,3552,3},{2415,3550,3},{2410,3557,3}, {2402,3562,3},{2400,3573,3},{2392,3582,3},{2390,3580,3},{2393,3578,3},{2395,3575,3}, {2393,3573,3},{2392,3570,3},{2393,3562,3},{2395,3558,3},{2395,3555,3},{2398,3555,3}, {2398,3553,3},{2395,3548,3},{2382,3548,3},{2378,3548,3},{2378,3552,3},{2375,3550,3}, {2372,3552,3},{2363,3550,3},{2358,3550,3},{2353,3550,3},{2350,3547,3},{2347,3548,3}, {2342,3548,3},{2338,3552,3},{2325,3553,3},{2313,3562,3},{2308,3557,3},{2303,3552,3}, {2300,3548,3},{2297,3543,3},{2292,3540,3},{2288,3535,3},{2285,3532,3},{2282,3527,3}, {2277,3523,3},{2280,3515,3},{2282,3508,3},{2283,3503,3},{2285,3497,3},{2277,3493,3}, {2272,3490,3},{2267,3488,3},{2262,3487,3},{2255,3483,3},{2250,3482,3},{2245,3478,3}, {2240,3477,3},{2235,3473,3},{2228,3472,3},{2228,3465,3},{2227,3460,3},{2225,3453,3}, {2225,3447,3},{2223,3442,3},{2223,3435,3},{2222,3430,3},{2220,3423,3},{2220,3417,3}, {2215,3415,3},{2208,3413,3},{2203,3412,3},{2198,3410,3},{2193,3408,3},{2188,3405,3}, {2182,3403,3},{2177,3402,3},{2175,3393,3},{2175,3387,3},{2175,3382,3},{2173,3375,3}, {2173,3368,3},{2173,3363,3},{2172,3357,3},{2177,3352,3},{2180,3347,3},{2185,3340,3}, {2188,3335,3},{2192,3328,3},{2197,3323,3},{2198,3318,3},{2200,3317,3},{2200,3310,3}, {2200,3303,3},{2200,3298,3},{2200,3293,3},{2200,3287,3},{2200,3282,3},{2200,3277,3}, {2200,3270,3},{2200,3265,3},{2200,3260,3},{2200,3253,3},{2200,3248,3},{2200,3242,3}, {2200,3237,3},{2200,3232,3},{2200,3225,3},{2200,3220,3},{2200,3215,3},{2200,3208,3}, {2200,3203,3},{2200,3198,3},{2200,3192,3},{2200,3187,3},{2200,3180,3},{2200,3175,3}, {2200,3168,3},{2200,3163,3},{2200,3158,3},{2200,3152,3},{2200,3147,3},{2205,3147,3}, {2210,3148,3},{2215,3152,3},{2218,3150,3},{2220,3153,3},{2218,3155,3},{2222,3155,3}, {2225,3160,3},{2223,3168,3},{2225,3165,3},{2227,3165,3},{2230,3162,3},{2232,3165,3}, {2232,3167,3},{2233,3167,3},{2232,3170,3},{2233,3168,3},{2235,3172,3},{2237,3177,3}, {2237,3178,3},{2237,3180,3},{2233,3182,3},{2235,3183,3},{2238,3183,3},{2238,3182,3}, {2240,3183,3},{2242,3180,3},{2242,3190,3},{2245,3188,3},{2247,3193,3},{2250,3193,3}, {2248,3197,3},{2255,3195,3},{2257,3193,3},{2255,3198,3},{2257,3198,3},{2260,3197,3}, {2265,3200,3},{2265,3203,3},{2263,3205,3},{2267,3203,3},{2272,3212,3},{2273,3215,3}, {2272,3218,3},{2270,3222,3},{2268,3222,3},{2268,3225,3},{2265,3223,3},{2263,3228,3}, {2260,3228,3},{2260,3232,3},{2257,3230,3},{2255,3225,3},{2252,3225,3},{2255,3230,3}, {2252,3232,3},{2252,3233,3},{2253,3232,3},{2260,3233,3},{2260,3242,3},{2265,3242,3}, {2268,3245,3},{2270,3248,3},{2272,3247,3},{2275,3258,3},{2282,3260,3},{2283,3260,3}, {2283,3263,3},{2287,3262,3},{2287,3260,3},{2290,3260,3},{2288,3263,3},{2290,3263,3}, {2292,3263,3},{2293,3265,3},{2292,3270,3},{2295,3268,3},{2297,3270,3},{2295,3272,3}, {2293,3270,3},{2293,3272,3},{2298,3273,3},{2300,3273,3},{2300,3275,3},{2305,3273,3}, {2307,3275,3},{2307,3278,3},{2302,3278,3},{2298,3287,3},{2292,3293,3},{2295,3293,3}, {2292,3298,3},{2292,3307,3},{2297,3300,3},{2297,3295,3},{2298,3295,3},{2297,3293,3}, {2300,3293,3},{2302,3295,3},{2303,3293,3},{2307,3290,3},{2307,3287,3},{2308,3287,3}, {2313,3285,3},{2317,3285,3},{2317,3288,3},{2313,3293,3},{2313,3297,3},{2322,3292,3}, {2323,3290,3},{2325,3292,3},{2325,3297,3},{2323,3295,3},{2322,3300,3},{2323,3302,3}, {2327,3300,3},{2333,3302,3},{2333,3298,3},{2335,3297,3},{2337,3298,3},{2337,3300,3}, {2340,3300,3},{2342,3298,3},{2340,3297,3},{2338,3297,3},{2340,3295,3},{2342,3297,3}, {2345,3292,3},{2347,3292,3},{2348,3293,3},{2348,3290,3},{2352,3290,3},{2350,3300,3}, {2352,3303,3},{2352,3297,3},{2355,3297,3},{2353,3295,3},{2357,3295,3},{2355,3293,3}, {2357,3292,3},{2358,3290,3},{2362,3290,3},{2363,3292,3},{2365,3292,3},{2362,3298,3}, {2363,3297,3},{2365,3298,3},{2367,3298,3},{2368,3300,3},{2370,3298,3},{2372,3300,3}, {2373,3297,3},{2375,3298,3},{2377,3295,3},{2382,3293,3},{2387,3288,3},{2388,3290,3}, {2392,3288,3},{2393,3290,3},{2398,3288,3},{2390,3285,3},{2390,3278,3},{2388,3283,3}, {2387,3283,3},{2385,3287,3},{2382,3288,3},{2372,3287,3},{2372,3285,3},{2372,3282,3}, {2368,3285,3},{2370,3287,3},{2368,3287,3},{2367,3285,3},{2362,3285,3},{2358,3282,3}, {2357,3282,3},{2357,3278,3},{2358,3278,3},{2358,3275,3},{2362,3275,3},{2363,3272,3}, {2363,3268,3},{2362,3268,3},{2358,3270,3},{2357,3273,3},{2355,3273,3},{2353,3270,3}, {2355,3267,3},{2350,3260,3},{2348,3263,3},{2350,3270,3},{2353,3273,3},{2355,3278,3}, {2352,3287,3},{2347,3282,3},{2350,3287,3},{2343,3290,3},{2343,3287,3},{2338,3282,3}, {2335,3290,3},{2330,3292,3},{2328,3288,3},{2333,3287,3},{2332,3283,3},{2328,3285,3}, {2327,3283,3},{2330,3282,3},{2328,3280,3},{2327,3280,3},{2327,3277,3},{2323,3275,3}, {2323,3272,3},{2320,3273,3},{2318,3270,3},{2315,3270,3},{2313,3268,3},{2312,3270,3}, {2308,3268,3},{2308,3265,3},{2307,3268,3},{2305,3263,3},{2303,3265,3},{2300,3263,3}, {2298,3265,3},{2292,3260,3},{2293,3255,3},{2288,3257,3},{2278,3257,3},{2277,3255,3}, {2277,3252,3},{2275,3252,3},{2272,3242,3},{2265,3238,3},{2262,3237,3},{2263,3232,3}, {2267,3232,3},{2268,3228,3},{2272,3228,3},{2273,3225,3},{2277,3225,3},{2277,3222,3}, {2277,3217,3},{2280,3217,3},{2277,3215,3},{2277,3212,3},{2275,3212,3},{2277,3207,3}, {2273,3205,3},{2273,3200,3},{2272,3200,3},{2270,3198,3},{2268,3197,3},{2265,3193,3}, {2265,3188,3},{2263,3188,3},{2262,3185,3},{2258,3183,3},{2258,3185,3},{2257,3187,3}, {2255,3185,3},{2258,3183,3},{2257,3178,3},{2260,3177,3},{2262,3168,3},{2265,3167,3}, {2265,3165,3},{2263,3167,3},{2262,3165,3},{2257,3168,3},{2252,3173,3},{2252,3177,3}, {2248,3178,3},{2248,3175,3},{2247,3177,3},{2247,3173,3},{2243,3173,3},{2247,3170,3}, {2247,3168,3},{2240,3168,3},{2238,3165,3},{2238,3167,3},{2233,3160,3},{2223,3147,3}, {2223,3143,3},{2220,3138,3},{2217,3137,3},{2210,3133,3},{2205,3130,3},{2200,3127,3}, {2200,3122,3},{2200,3117,3},{2200,3110,3},{2200,3105,3},{2200,3098,3},{2200,3093,3}, {2200,3088,3},{2200,3082,3},{2200,3077,3},{2200,3070,3},{2200,3065,3},{2200,3060,3}, {2200,3053,3},{2200,3048,3},{2200,3042,3},{2200,3037,3},{2200,3030,3},{2200,3025,3}, {2200,3020,3},{2200,3013,3},{2200,3008,3},{2200,3002,3},{2200,2997,3},{2200,2992,3}, {2200,2985,3},{2200,2980,3},{2200,2973,3},{2200,2968,3},{2200,2963,3},{2200,2957,3}, {2200,2952,3},{2200,2945,3},{2200,2940,3},{2200,2935,3},{2200,2928,3},{2200,2923,3}, {2200,2917,3},{2200,2912,3},{2200,2905,3},{2200,2900,3},{2200,2897,3},{2200,2892,3}, {2200,2885,3},{2200,2880,3},{2200,2873,3},{2200,2868,3},{2200,2862,3},{2200,2857,3}, {2200,2852,3},{2200,2845,3},{2200,2840,3},{2200,2833,3},{2200,2827,3},{2200,2822,3}, {2200,2817,3},{2200,2810,3},{2200,2805,3},{2200,2798,3},{2200,2793,3},{2200,2787,3}, {2200,2782,3},{2200,2775,3},{2200,2770,3},{2200,2763,3},{2200,2758,3},{2200,2753,3}, {2200,2747,3},{2200,2742,3},{2200,2735,3},{2200,2730,3},{2200,2723,3},{2200,2718,3}, {2200,2712,3},{2200,2707,3},{2200,2700,3},{2200,2695,3},{2200,2688,3},{2200,2683,3}, {2200,2677,3},{2200,2672,3},{2200,2665,3},{2200,2660,3},{2200,2653,3},{2200,2648,3}, {2200,2642,3},{2200,2637,3},{2200,2630,3},{2200,2625,3},{2200,2618,3},{2200,2613,3}, {2200,2607,3},{2200,2600,3},{2200,2595,3},{2200,2588,3},{2200,2582,3},{2200,2577,3}, {2200,2572,3},{2200,2565,3},{2200,2558,3},{2200,2553,3},{2200,2547,3},{2200,2542,3}, {2200,2535,3},{2200,2530,3},{2200,2523,3},{2200,2518,3},{2200,2512,3},{2200,2507,3}, {2200,2500,3},{2300,1500,131},{2297,1493,3},{2293,1488,3},{2292,1482,3}, {2288,1475,3},{2285,1470,3},{2282,1463,3},{2278,1457,3},{2275,1452,3},{2272,1445,3}, {2268,1438,3},{2267,1432,3},{2263,1427,3},{2262,1423,3},{2265,1420,3},{2268,1415,3}, {2272,1410,3},{2275,1407,3},{2278,1402,3},{2282,1398,3},{2287,1393,3},{2290,1390,3}, {2293,1385,3},{2297,1382,3},{2300,1377,3},{2303,1372,3},{2307,1368,3},{2310,1363,3}, {2313,1360,3},{2317,1355,3},{2318,1350,3},{2320,1343,3},{2322,1337,3},{2323,1332,3}, {2325,1325,3},{2327,1320,3},{2327,1313,3},{2328,1308,3},{2330,1302,3},{2332,1297,3}, {2333,1290,3},{2333,1285,3},{2335,1278,3},{2337,1272,3},{2338,1267,3},{2338,1260,3}, {2340,1255,3},{2342,1248,3},{2343,1243,3},{2343,1237,3},{2345,1232,3},{2347,1225,3}, {2348,1218,3},{2348,1213,3},{2350,1207,3},{2352,1198,3},{2360,1193,3},{2367,1192,3}, {2372,1188,3},{2377,1185,3},{2383,1182,3},{2388,1178,3},{2393,1175,3},{2400,1173,3}, {2405,1170,3},{2412,1167,3},{2417,1163,3},{2422,1160,3},{2430,1157,3},{2432,1153,3}, {2433,1147,3},{2435,1142,3},{2437,1135,3},{2438,1128,3},{2440,1123,3},{2442,1117,3}, {2443,1112,3},{2445,1105,3},{2447,1100,3},{2457,1072,3},{2448,1048,3},{2448,1042,3}, {2460,1025,3},{2475,1022,3},{2483,1005,3},{2490,1005,3},{2497,1005,3},{2502,1005,3}, {2507,1005,3},{2513,1005,3},{2518,1005,3},{2523,1003,3},{2532,1003,3},{2535,1002,3}, {2540,998,3},{2543,995,3},{2548,992,3},{2552,988,3},{2557,985,3},{2560,982,3}, {2565,980,3},{2568,975,3},{2573,973,3},{2577,970,3},{2582,967,3},{2585,963,3}, {2590,960,3},{2593,957,3},{2598,953,3},{2602,950,3},{2607,947,3},{2610,943,3}, {2615,940,3},{2620,940,3},{2622,942,3},{2628,945,3},{2630,950,3},{2635,950,3}, {2652,987,3},{2667,992,3},{2670,990,3},{2687,993,3},{2690,985,3},{2705,982,3}, {2727,975,3},{2732,973,3},{2737,977,3},{2743,978,3},{2750,983,3},{2757,982,3}, {2760,988,3},{2785,997,3},{2795,992,3},{2800,990,3},{2807,987,3},{2812,985,3}, {2817,982,3},{2825,978,3},{2828,980,3},{2833,980,3},{2840,982,3},{2845,982,3}, {2850,983,3},{2855,983,3},{2862,985,3},{2867,985,3},{2872,987,3},{2880,987,3}, {2895,987,3},{2915,983,3},{2945,975,3},{2963,967,3},{2978,958,3},{2997,945,3}, {3012,930,3},{3023,953,3},{3032,973,3},{3035,977,3},{3035,988,3},{3058,1008,3}, {3065,1012,3},{3073,1022,3},{3092,1028,3},{3100,1025,3},{3107,1027,3},{3142,1012,3}, {3152,1013,3},{3160,1022,3},{3170,1028,3},{3173,1033,3},{3173,1048,3},{3175,1052,3}, {3187,1062,3},{3197,1062,3},{3198,1065,3},{3197,1070,3},{3197,1072,3},{3200,1075,3}, {3202,1080,3},{3213,1088,3},{3237,1145,3},{3245,1157,3},{3248,1158,3},{3252,1157,3}, {3255,1155,3},{3262,1148,3},{3265,1147,3},{3283,1148,3},{3290,1147,3},{3317,1153,3}, {3317,1157,3},{3312,1160,3},{3310,1165,3},{3308,1180,3},{3312,1175,3},{3312,1170,3}, {3313,1170,3},{3307,1188,3},{3292,1213,3},{3283,1233,3},{3280,1257,3},{3280,1282,3}, {3285,1300,3},{3288,1312,3},{3292,1317,3},{3292,1327,3},{3290,1335,3},{3280,1360,3}, {3280,1378,3},{3277,1392,3},{3273,1402,3},{3270,1418,3},{3267,1425,3},{3263,1432,3}, {3253,1445,3},{3252,1450,3},{3248,1463,3},{3245,1473,3},{3243,1492,3},{3240,1518,3}, {3233,1527,3},{3222,1532,3},{3217,1537,3},{3208,1535,3},{3197,1535,3},{3165,1550,3}, {3150,1562,3},{3143,1568,3},{3132,1592,3},{3127,1608,3},{3123,1625,3},{3122,1675,3}, {3118,1693,3},{3112,1713,3},{3108,1737,3},{3102,1747,3},{3100,1760,3},{3093,1777,3}, {3092,1785,3},{3085,1792,3},{3083,1802,3},{3078,1820,3},{3067,1830,3},{3050,1855,3}, {3042,1865,3},{3038,1878,3},{3035,1880,3},{3028,1892,3},{3027,1900,3},{3027,1917,3}, {3028,1933,3},{3040,1955,3},{3042,1962,3},{3052,1977,3},{3082,2003,3},{3098,2013,3}, {3108,2015,3},{3122,2015,3},{3132,2010,3},{3137,2003,3},{3152,1997,3},{3173,1992,3}, {3197,1995,3},{3217,2007,3},{3240,2032,3},{3243,2038,3},{3257,2057,3},{3265,2082,3}, {3273,2095,3},{3277,2107,3},{3277,2128,3},{3278,2138,3},{3282,2148,3},{3293,2162,3}, {3295,2172,3},{3292,2178,3},{3290,2188,3},{3292,2208,3},{3293,2212,3},{3295,2215,3}, {3288,2222,3},{3288,2235,3},{3278,2253,3},{3278,2258,3},{3275,2265,3},{3273,2280,3}, {3268,2292,3},{3267,2300,3},{3263,2312,3},{3262,2312,3},{3258,2310,3},{3252,2310,3}, {3247,2315,3},{3243,2313,3},{3240,2313,3},{3243,2310,3},{3233,2308,3},{3228,2320,3}, {3222,2325,3},{3220,2328,3},{3215,2332,3},{3222,2330,3},{3222,2337,3},{3218,2342,3}, {3217,2373,3},{3210,2398,3},{3208,2400,3},{3207,2397,3},{3205,2398,3},{3205,2402,3}, {3202,2407,3},{3200,2410,3},{3200,2430,3},{3198,2455,3},{3200,2462,3},{3203,2465,3}, {3203,2473,3},{3198,2487,3},{3197,2498,3},{3192,2503,3},{3183,2503,3},{3173,2512,3}, {3165,2515,3},{3162,2510,3},{3157,2507,3},{3152,2505,3},{3148,2502,3},{3145,2497,3}, {3142,2492,3},{3137,2487,3},{3132,2487,3},{3127,2487,3},{3122,2488,3},{3117,2487,3}, {3112,2488,3},{3107,2490,3},{3102,2492,3},{3097,2493,3},{3092,2495,3},{3087,2498,3}, {3082,2500,3},{3077,2502,3},{3072,2498,3},{3067,2498,3},{3062,2497,3},{3057,2493,3}, {3052,2493,3},{3047,2490,3},{3042,2487,3},{3038,2483,3},{3033,2478,3},{3030,2477,3}, {3025,2473,3},{3020,2472,3},{3013,2472,3},{3010,2475,3},{3005,2477,3},{3000,2478,3}, {2995,2482,3},{2990,2483,3},{2983,2483,3},{2978,2482,3},{2973,2483,3},{2970,2487,3}, {2965,2488,3},{2960,2488,3},{2953,2488,3},{2948,2488,3},{2942,2492,3},{2937,2495,3}, {2930,2497,3},{2925,2500,3},{2920,2500,3},{2913,2500,3},{2908,2500,3},{2903,2500,3}, {2897,2500,3},{2892,2500,3},{2887,2500,3},{2880,2500,3},{2875,2500,3},{2870,2500,3}, {2863,2500,3},{2858,2500,3},{2853,2500,3},{2847,2500,3},{2842,2500,3},{2837,2500,3}, {2830,2500,3},{2825,2500,3},{2820,2500,3},{2813,2500,3},{2808,2500,3},{2802,2500,3}, {2797,2500,3},{2792,2500,3},{2785,2500,3},{2780,2500,3},{2775,2500,3},{2768,2500,3}, {2763,2500,3},{2758,2500,3},{2752,2500,3},{2747,2500,3},{2742,2500,3},{2735,2500,3}, {2730,2500,3},{2725,2500,3},{2718,2500,3},{2713,2500,3},{2708,2500,3},{2702,2500,3}, {2697,2500,3},{2692,2500,3},{2687,2500,3},{2680,2500,3},{2675,2500,3},{2670,2500,3}, {2663,2500,3},{2658,2500,3},{2653,2500,3},{2647,2500,3},{2642,2500,3},{2637,2500,3}, {2630,2500,3},{2625,2500,3},{2620,2500,3},{2613,2500,3},{2608,2500,3},{2603,2500,3}, {2597,2500,3},{2592,2500,3},{2587,2500,3},{2580,2500,3},{2575,2500,3},{2570,2500,3}, {2563,2500,3},{2558,2500,3},{2553,2500,3},{2547,2500,3},{2542,2500,3},{2537,2500,3}, {2530,2500,3},{2525,2500,3},{2520,2500,3},{2513,2500,3},{2508,2500,3},{2503,2500,3}, {2497,2500,3},{2492,2500,3},{2485,2500,3},{2480,2500,3},{2475,2500,3},{2468,2500,3}, {2463,2500,3},{2458,2500,3},{2452,2500,3},{2447,2500,3},{2442,2500,3},{2435,2500,3}, {2430,2500,3},{2425,2500,3},{2418,2500,3},{2413,2500,3},{2408,2500,3},{2402,2500,3}, {2397,2500,3},{2392,2500,3},{2385,2500,3},{2380,2500,3},{2375,2500,3},{2368,2500,3}, {2363,2500,3},{2358,2500,3},{2352,2500,3},{2347,2500,3},{2342,2500,3},{2337,2500,3}, {2330,2500,3},{2325,2500,3},{2320,2500,3},{2313,2500,3},{2308,2500,3},{2303,2500,3}, {2297,2500,3},{2292,2500,3},{2287,2500,3},{2280,2500,3},{2275,2500,3},{2270,2500,3}, {2265,2500,3},{2258,2500,3},{2253,2500,3},{2248,2500,3},{2242,2500,3},{2237,2500,3}, {2232,2500,3},{2225,2500,3},{2220,2500,3},{2215,2500,3},{2208,2500,3},{2203,2500,3}, {2200,2500,3},{2195,2500,3},{2188,2500,3},{2183,2500,3},{2178,2500,3},{2172,2500,3}, {2167,2500,3},{2162,2500,3},{2155,2500,3},{2150,2500,3},{2145,2500,3},{2138,2500,3}, {2133,2500,3},{2128,2500,3},{2122,2500,3},{2117,2500,3},{2112,2500,3},{2107,2500,3}, {2100,2500,3},{2095,2500,3},{2090,2500,3},{2083,2500,3},{2078,2500,3},{2073,2500,3}, {2067,2500,3},{2062,2500,3},{2057,2500,3},{2050,2500,3},{2045,2500,3},{2040,2500,3}, {2033,2500,3},{2028,2500,3},{2023,2500,3},{2018,2500,3},{2012,2500,3},{2007,2500,3}, {2000,2500,3},{2000,2495,3},{2000,2488,3},{2000,2483,3},{2000,2477,3},{2000,2472,3}, {2000,2465,3},{2000,2460,3},{2000,2453,3},{2000,2448,3},{2000,2442,3},{2000,2437,3}, {2000,2430,3},{2000,2425,3},{2000,2420,3},{2000,2413,3},{2000,2408,3},{2000,2402,3}, {2000,2400,3},{1995,2400,3},{1990,2400,3},{1983,2400,3},{1978,2400,3},{1973,2400,3}, {1967,2400,3},{1962,2400,3},{1957,2400,3},{1950,2400,3},{1953,2395,3},{1957,2390,3}, {1958,2383,3},{1962,2378,3},{1965,2373,3},{1968,2368,3},{1970,2362,3},{1973,2357,3}, {1977,2352,3},{1980,2347,3},{1982,2340,3},{1985,2335,3},{1988,2330,3},{1992,2323,3}, {1993,2318,3},{1997,2313,3},{2000,2308,3},{2003,2302,3},{2005,2297,3},{2008,2292,3}, {2012,2285,3},{2015,2280,3},{2017,2275,3},{2020,2270,3},{2023,2263,3},{2027,2258,3}, {2028,2253,3},{2032,2247,3},{2035,2242,3},{2037,2237,3},{2040,2232,3},{2043,2225,3}, {2047,2220,3},{2048,2215,3},{2052,2208,3},{2055,2203,3},{2058,2198,3},{2060,2192,3}, {2063,2187,3},{2067,2182,3},{2068,2175,3},{2072,2170,3},{2075,2165,3},{2078,2160,3}, {2080,2153,3},{2083,2148,3},{2087,2143,3},{2088,2137,3},{2092,2132,3},{2095,2127,3}, {2098,2120,3},{2100,2115,3},{2103,2110,3},{2107,2103,3},{2108,2098,3},{2112,2093,3}, {2115,2087,3},{2117,2082,3},{2120,2077,3},{2123,2070,3},{2125,2065,3},{2128,2060,3}, {2132,2053,3},{2135,2048,3},{2137,2043,3},{2140,2037,3},{2143,2032,3},{2145,2027,3}, {2148,2020,3},{2152,2015,3},{2153,2010,3},{2157,2003,3},{2160,1998,3},{2162,1992,3}, {2165,1987,3},{2168,1982,3},{2170,1975,3},{2173,1970,3},{2177,1965,3},{2180,1958,3}, {2182,1953,3},{2185,1947,3},{2188,1942,3},{2190,1937,3},{2193,1930,3},{2197,1925,3}, {2198,1920,3},{2202,1913,3},{2205,1908,3},{2207,1902,3},{2208,1900,3},{2212,1895,3}, {2213,1888,3},{2217,1883,3},{2220,1877,3},{2222,1872,3},{2225,1867,3},{2228,1860,3}, {2230,1855,3},{2233,1848,3},{2235,1843,3},{2238,1837,3},{2242,1832,3},{2243,1827,3}, {2247,1820,3},{2250,1815,3},{2252,1808,3},{2255,1803,3},{2258,1798,3},{2260,1792,3}, {2263,1787,3},{2265,1780,3},{2268,1775,3},{2272,1768,3},{2273,1763,3},{2277,1758,3}, {2280,1752,3},{2282,1747,3},{2285,1740,3},{2287,1735,3},{2290,1728,3},{2293,1723,3}, {2295,1717,3},{2298,1712,3},{2300,1707,3},{2303,1700,3},{2307,1695,3},{2308,1688,3}, {2312,1683,3},{2313,1677,3},{2317,1672,3},{2320,1665,3},{2322,1660,3},{2325,1653,3}, {2327,1648,3},{2330,1643,3},{2333,1637,3},{2335,1632,3},{2338,1625,3},{2340,1620,3}, {2343,1613,3},{2347,1608,3},{2348,1602,3},{2350,1600,3},{2347,1593,3},{2343,1587,3}, {2340,1582,3},{2337,1575,3},{2335,1568,3},{2332,1562,3},{2328,1557,3},{2325,1550,3}, {2322,1543,3},{2318,1537,3},{2317,1532,3},{2313,1525,3},{2310,1518,3},{2307,1513,3}, {2303,1507,3},{2300,1500,3},{753,1550,131},{763,1557,3},{775,1558,3},{777,1550,3}, {782,1548,3},{803,1538,3},{812,1538,3},{822,1532,3},{848,1520,3},{855,1512,3}, {865,1507,3},{868,1497,3},{873,1497,3},{875,1493,3},{877,1492,3},{882,1487,3}, {882,1482,3},{900,1457,3},{920,1435,3},{923,1435,3},{960,1403,3},{963,1395,3}, {975,1402,3},{978,1408,3},{983,1412,3},{993,1418,3},{998,1418,3},{1000,1445,3}, {998,1453,3},{992,1478,3},{997,1492,3},{995,1503,3},{995,1508,3},{998,1510,3}, {998,1517,3},{998,1523,3},{993,1542,3},{998,1568,3},{1010,1550,3},{1020,1543,3}, {1020,1540,3},{1028,1535,3},{1030,1530,3},{1033,1528,3},{1038,1528,3},{1048,1522,3}, {1050,1518,3},{1050,1515,3},{1053,1513,3},{1062,1515,3},{1080,1505,3},{1090,1508,3}, {1098,1503,3},{1120,1502,3},{1130,1507,3},{1135,1505,3},{1140,1505,3},{1143,1507,3}, {1152,1513,3},{1155,1513,3},{1158,1508,3},{1168,1507,3},{1172,1507,3},{1172,1510,3}, {1175,1508,3},{1178,1512,3},{1185,1508,3},{1185,1505,3},{1188,1503,3},{1193,1507,3}, {1197,1505,3},{1197,1508,3},{1200,1505,3},{1208,1505,3},{1210,1500,3},{1208,1498,3}, {1210,1495,3},{1215,1488,3},{1218,1492,3},{1220,1490,3},{1238,1490,3},{1245,1487,3}, {1245,1485,3},{1250,1487,3},{1263,1483,3},{1263,1477,3},{1268,1473,3},{1265,1470,3}, {1272,1472,3},{1272,1465,3},{1273,1462,3},{1277,1462,3},{1273,1458,3},{1277,1457,3}, {1277,1455,3},{1283,1455,3},{1285,1455,3},{1288,1452,3},{1288,1458,3},{1287,1460,3}, {1290,1463,3},{1290,1470,3},{1288,1473,3},{1287,1475,3},{1288,1477,3},{1288,1485,3}, {1290,1487,3},{1290,1495,3},{1292,1495,3},{1292,1498,3},{1293,1498,3},{1292,1502,3}, {1292,1505,3},{1295,1505,3},{1295,1507,3},{1293,1508,3},{1297,1508,3},{1293,1513,3}, {1293,1515,3},{1295,1515,3},{1297,1518,3},{1297,1520,3},{1300,1520,3},{1303,1518,3}, {1303,1517,3},{1307,1508,3},{1305,1503,3},{1307,1492,3},{1312,1490,3},{1318,1490,3}, {1320,1488,3},{1320,1487,3},{1318,1483,3},{1320,1482,3},{1323,1477,3},{1323,1470,3}, {1327,1467,3},{1325,1465,3},{1325,1462,3},{1327,1460,3},{1325,1458,3},{1327,1455,3}, {1325,1453,3},{1325,1445,3},{1323,1443,3},{1322,1440,3},{1318,1438,3},{1320,1433,3}, {1317,1428,3},{1315,1427,3},{1317,1423,3},{1318,1422,3},{1325,1415,3},{1327,1415,3}, {1327,1417,3},{1325,1420,3},{1328,1422,3},{1332,1422,3},{1335,1420,3},{1337,1417,3}, {1338,1417,3},{1342,1420,3},{1345,1420,3},{1348,1423,3},{1350,1422,3},{1347,1415,3}, {1340,1408,3},{1342,1407,3},{1342,1398,3},{1337,1398,3},{1332,1397,3},{1332,1395,3}, {1333,1387,3},{1335,1385,3},{1340,1380,3},{1342,1378,3},{1345,1377,3},{1352,1375,3}, {1353,1377,3},{1355,1380,3},{1358,1382,3},{1362,1385,3},{1365,1387,3},{1370,1387,3}, {1373,1385,3},{1377,1385,3},{1378,1383,3},{1383,1382,3},{1387,1378,3},{1388,1377,3}, {1390,1372,3},{1392,1368,3},{1397,1365,3},{1400,1360,3},{1400,1357,3},{1405,1355,3}, {1410,1353,3},{1417,1352,3},{1422,1352,3},{1427,1350,3},{1433,1348,3},{1438,1347,3}, {1443,1347,3},{1448,1348,3},{1450,1353,3},{1452,1358,3},{1453,1363,3},{1457,1368,3}, {1462,1368,3},{1463,1367,3},{1468,1370,3},{1472,1373,3},{1470,1377,3},{1475,1378,3}, {1480,1378,3},{1487,1377,3},{1492,1380,3},{1497,1383,3},{1502,1385,3},{1508,1390,3}, {1512,1392,3},{1517,1395,3},{1520,1398,3},{1525,1402,3},{1530,1407,3},{1535,1410,3}, {1540,1413,3},{1547,1418,3},{1552,1422,3},{1557,1425,3},{1562,1428,3},{1568,1433,3}, {1573,1437,3},{1577,1440,3},{1582,1445,3},{1585,1448,3},{1590,1452,3},{1593,1457,3}, {1597,1460,3},{1602,1463,3},{1605,1467,3},{1610,1472,3},{1613,1475,3},{1617,1478,3}, {1622,1483,3},{1625,1487,3},{1630,1490,3},{1633,1495,3},{1637,1498,3},{1642,1502,3}, {1645,1507,3},{1650,1510,3},{1653,1513,3},{1657,1517,3},{1662,1522,3},{1665,1525,3}, {1670,1528,3},{1673,1533,3},{1677,1537,3},{1682,1540,3},{1685,1545,3},{1690,1548,3}, {1695,1550,3},{1702,1550,3},{1707,1550,3},{1712,1550,3},{1717,1550,3},{1723,1552,3}, {1728,1552,3},{1733,1552,3},{1737,1552,3},{1742,1553,3},{1747,1553,3},{1752,1553,3}, {1758,1553,3},{1763,1553,3},{1768,1555,3},{1775,1555,3},{1780,1555,3},{1785,1555,3}, {1790,1555,3},{1797,1555,3},{1802,1557,3},{1807,1557,3},{1813,1557,3},{1818,1557,3}, {1823,1557,3},{1828,1557,3},{1835,1558,3},{1840,1558,3},{1845,1558,3},{1852,1558,3}, {1857,1558,3},{1862,1560,3},{1867,1560,3},{1873,1560,3},{1878,1560,3},{1885,1562,3}, {1890,1562,3},{1895,1563,3},{1900,1563,3},{1907,1563,3},{1912,1565,3},{1917,1565,3}, {1922,1567,3},{1928,1567,3},{1933,1567,3},{1938,1568,3},{1945,1568,3},{1950,1570,3}, {1955,1570,3},{1960,1572,3},{1967,1572,3},{1972,1573,3},{1977,1573,3},{1982,1573,3}, {1988,1575,3},{1993,1577,3},{2000,1578,3},{2005,1582,3},{2010,1585,3},{2015,1588,3}, {2020,1592,3},{2027,1595,3},{2032,1597,3},{2037,1598,3},{2040,1595,3},{2045,1590,3}, {2050,1587,3},{2053,1582,3},{2058,1578,3},{2062,1575,3},{2067,1570,3},{2070,1565,3}, {2073,1562,3},{2078,1557,3},{2083,1555,3},{2088,1555,3},{2093,1558,3},{2097,1562,3}, {2100,1560,3},{2105,1557,3},{2108,1553,3},{2113,1550,3},{2117,1547,3},{2122,1545,3}, {2127,1542,3},{2130,1538,3},{2135,1535,3},{2138,1532,3},{2143,1530,3},{2147,1525,3}, {2150,1520,3},{2157,1520,3},{2162,1520,3},{2167,1520,3},{2172,1520,3},{2178,1520,3}, {2183,1520,3},{2188,1520,3},{2195,1520,3},{2200,1520,3},{2207,1518,3},{2212,1517,3}, {2217,1517,3},{2223,1515,3},{2228,1513,3},{2233,1513,3},{2240,1512,3},{2245,1510,3}, {2250,1510,3},{2255,1508,3},{2262,1507,3},{2267,1507,3},{2272,1505,3},{2278,1505,3}, {2283,1503,3},{2288,1502,3},{2295,1502,3},{2300,1500,3},{2303,1507,3},{2307,1513,3}, {2310,1518,3},{2313,1525,3},{2317,1532,3},{2318,1537,3},{2322,1543,3},{2325,1550,3}, {2328,1557,3},{2332,1562,3},{2335,1568,3},{2337,1575,3},{2340,1582,3},{2343,1587,3}, {2347,1593,3},{2350,1600,3},{2348,1602,3},{2347,1608,3},{2343,1613,3},{2340,1620,3}, {2338,1625,3},{2335,1632,3},{2333,1637,3},{2330,1643,3},{2327,1648,3},{2325,1653,3}, {2322,1660,3},{2320,1665,3},{2317,1672,3},{2313,1677,3},{2312,1683,3},{2308,1688,3}, {2307,1695,3},{2303,1700,3},{2300,1707,3},{2298,1712,3},{2295,1717,3},{2293,1723,3}, {2290,1728,3},{2287,1735,3},{2285,1740,3},{2282,1747,3},{2280,1752,3},{2277,1758,3}, {2273,1763,3},{2272,1768,3},{2268,1775,3},{2265,1780,3},{2263,1787,3},{2260,1792,3}, {2258,1798,3},{2255,1803,3},{2252,1808,3},{2250,1815,3},{2247,1820,3},{2243,1827,3}, {2242,1832,3},{2238,1837,3},{2235,1843,3},{2233,1848,3},{2230,1855,3},{2228,1860,3}, {2225,1867,3},{2222,1872,3},{2220,1877,3},{2217,1883,3},{2213,1888,3},{2212,1895,3}, {2208,1900,3},{2207,1902,3},{2205,1908,3},{2202,1913,3},{2198,1920,3},{2197,1925,3}, {2193,1930,3},{2190,1937,3},{2188,1942,3},{2185,1947,3},{2182,1953,3},{2180,1958,3}, {2177,1965,3},{2173,1970,3},{2170,1975,3},{2168,1982,3},{2165,1987,3},{2162,1992,3}, {2160,1998,3},{2157,2003,3},{2153,2010,3},{2152,2015,3},{2148,2020,3},{2145,2027,3}, {2143,2032,3},{2140,2037,3},{2137,2043,3},{2135,2048,3},{2132,2053,3},{2128,2060,3}, {2125,2065,3},{2123,2070,3},{2120,2077,3},{2117,2082,3},{2115,2087,3},{2112,2093,3}, {2108,2098,3},{2107,2103,3},{2103,2110,3},{2100,2115,3},{2098,2120,3},{2095,2127,3}, {2092,2132,3},{2088,2137,3},{2087,2143,3},{2083,2148,3},{2080,2153,3},{2078,2160,3}, {2075,2165,3},{2072,2170,3},{2068,2175,3},{2067,2182,3},{2063,2187,3},{2060,2192,3}, {2058,2198,3},{2055,2203,3},{2052,2208,3},{2048,2215,3},{2047,2220,3},{2043,2225,3}, {2040,2232,3},{2037,2237,3},{2035,2242,3},{2032,2247,3},{2028,2253,3},{2027,2258,3}, {2023,2263,3},{2020,2270,3},{2017,2275,3},{2015,2280,3},{2012,2285,3},{2008,2292,3}, {2005,2297,3},{2003,2302,3},{2000,2308,3},{1997,2313,3},{1993,2318,3},{1992,2323,3}, {1988,2330,3},{1985,2335,3},{1982,2340,3},{1980,2347,3},{1977,2352,3},{1973,2357,3}, {1970,2362,3},{1968,2368,3},{1965,2373,3},{1962,2378,3},{1958,2383,3},{1957,2390,3}, {1953,2395,3},{1950,2400,3},{1943,2400,3},{1937,2400,3},{1930,2400,3},{1923,2400,3}, {1917,2400,3},{1910,2400,3},{1903,2400,3},{1897,2400,3},{1890,2400,3},{1883,2400,3}, {1877,2400,3},{1868,2400,3},{1862,2400,3},{1857,2400,3},{1850,2400,3},{1843,2400,3}, {1837,2400,3},{1830,2400,3},{1823,2400,3},{1817,2400,3},{1808,2400,3},{1803,2400,3}, {1798,2400,3},{1793,2400,3},{1787,2400,3},{1778,2400,3},{1773,2400,3},{1767,2400,3}, {1760,2400,3},{1753,2400,3},{1748,2400,3},{1743,2400,3},{1735,2400,3},{1730,2400,3}, {1725,2400,3},{1720,2400,3},{1713,2400,3},{1707,2400,3},{1702,2400,3},{1695,2400,3}, {1690,2400,3},{1683,2400,3},{1678,2400,3},{1673,2400,3},{1665,2400,3},{1658,2400,3}, {1653,2400,3},{1647,2400,3},{1640,2400,3},{1633,2400,3},{1627,2400,3},{1620,2400,3}, {1613,2400,3},{1607,2400,3},{1600,2400,3},{1593,2400,3},{1588,2400,3},{1583,2400,3}, {1577,2400,3},{1570,2400,3},{1575,2378,3},{1577,2362,3},{1572,2345,3},{1568,2335,3}, {1572,2312,3},{1560,2302,3},{1555,2293,3},{1548,2292,3},{1542,2298,3},{1537,2300,3}, {1522,2298,3},{1515,2295,3},{1512,2293,3},{1508,2285,3},{1498,2275,3},{1490,2273,3}, {1487,2267,3},{1477,2268,3},{1468,2270,3},{1463,2247,3},{1460,2240,3},{1457,2238,3}, {1452,2238,3},{1448,2245,3},{1438,2245,3},{1435,2247,3},{1432,2243,3},{1428,2245,3}, {1425,2247,3},{1423,2255,3},{1417,2257,3},{1413,2255,3},{1410,2248,3},{1405,2243,3}, {1405,2240,3},{1402,2235,3},{1402,2232,3},{1397,2223,3},{1378,2208,3},{1373,2213,3}, {1367,2213,3},{1363,2215,3},{1357,2222,3},{1348,2223,3},{1338,2230,3},{1335,2230,3}, {1318,2217,3},{1313,2202,3},{1305,2195,3},{1302,2193,3},{1297,2190,3},{1280,2183,3}, {1268,2190,3},{1265,2195,3},{1263,2205,3},{1265,2213,3},{1275,2222,3},{1267,2233,3}, {1262,2247,3},{1248,2242,3},{1247,2238,3},{1240,2243,3},{1235,2243,3},{1218,2250,3}, {1205,2248,3},{1203,2248,3},{1207,2255,3},{1208,2258,3},{1207,2262,3},{1208,2263,3}, {1207,2263,3},{1200,2262,3},{1182,2258,3},{1167,2255,3},{1163,2257,3},{1152,2265,3}, {1147,2278,3},{1142,2278,3},{1140,2278,3},{1142,2293,3},{1132,2295,3},{1128,2297,3}, {1122,2297,3},{1095,2288,3},{1092,2287,3},{1093,2278,3},{1095,2277,3},{1097,2265,3}, {1098,2260,3},{1097,2255,3},{1100,2252,3},{1100,2247,3},{1098,2243,3},{1095,2240,3}, {1095,2237,3},{1093,2232,3},{1090,2228,3},{1092,2225,3},{1087,2220,3},{1082,2218,3}, {1083,2210,3},{1083,2205,3},{1082,2202,3},{1080,2200,3},{1073,2200,3},{1073,2195,3}, {1072,2190,3},{1067,2185,3},{1068,2182,3},{1067,2178,3},{1065,2177,3},{1063,2172,3}, {1052,2170,3},{1045,2173,3},{1040,2175,3},{1037,2172,3},{1028,2172,3},{1028,2168,3}, {1023,2167,3},{1022,2163,3},{1020,2153,3},{1012,2145,3},{1005,2143,3},{997,2137,3}, {995,2133,3},{998,2127,3},{993,2122,3},{988,2120,3},{987,2117,3},{983,2113,3}, {977,2110,3},{975,2107,3},{977,2105,3},{975,2102,3},{972,2102,3},{968,2100,3}, {963,2100,3},{963,2098,3},{960,2098,3},{960,2095,3},{952,2090,3},{948,2083,3}, {942,2082,3},{940,2077,3},{938,2077,3},{937,2068,3},{933,2065,3},{930,2067,3}, {930,2060,3},{932,2053,3},{928,2053,3},{927,2050,3},{922,2052,3},{920,2048,3}, {913,2043,3},{913,2042,3},{910,2037,3},{910,2033,3},{912,2025,3},{913,2020,3}, {912,2015,3},{915,2010,3},{913,2010,3},{913,2007,3},{912,2003,3},{908,2003,3}, {910,2002,3},{908,1998,3},{908,1995,3},{907,1995,3},{907,1992,3},{903,1990,3}, {905,1983,3},{903,1977,3},{902,1968,3},{903,1958,3},{900,1955,3},{900,1947,3}, {902,1942,3},{900,1938,3},{902,1930,3},{900,1928,3},{902,1925,3},{902,1920,3}, {900,1917,3},{902,1908,3},{897,1898,3},{893,1897,3},{888,1888,3},{885,1887,3}, {883,1888,3},{885,1890,3},{880,1893,3},{880,1895,3},{877,1898,3},{875,1903,3}, {872,1907,3},{870,1912,3},{867,1913,3},{860,1907,3},{853,1905,3},{843,1893,3}, {835,1888,3},{833,1887,3},{832,1887,3},{828,1883,3},{825,1880,3},{822,1870,3}, {820,1867,3},{813,1863,3},{808,1863,3},{803,1858,3},{802,1805,3},{795,1788,3}, {798,1763,3},{797,1763,3},{793,1758,3},{793,1752,3},{788,1748,3},{790,1745,3}, {790,1743,3},{787,1742,3},{788,1738,3},{783,1730,3},{783,1727,3},{780,1723,3}, {777,1722,3},{777,1720,3},{777,1718,3},{768,1713,3},{770,1707,3},{767,1707,3}, {767,1702,3},{765,1700,3},{763,1687,3},{760,1687,3},{757,1688,3},{757,1685,3}, {755,1682,3},{755,1678,3},{760,1675,3},{765,1670,3},{768,1663,3},{773,1663,3}, {777,1662,3},{778,1657,3},{787,1657,3},{785,1650,3},{778,1647,3},{780,1642,3}, {770,1640,3},{768,1640,3},{767,1632,3},{762,1622,3},{760,1608,3},{758,1603,3}, {753,1602,3},{750,1597,3},{745,1578,3},{747,1573,3},{752,1572,3},{752,1568,3}, {753,1550,3},{65433,3407,131},{65434,3410,3},{65434,3405,3},{65436,3403,3}, {65436,3407,3},{65438,3407,3},{65438,3408,3},{65436,3413,3},{65443,3413,3}, {65448,3418,3},{65449,3418,3},{65456,3407,3},{65458,3408,3},{65463,3407,3}, {65463,3403,3},{65473,3405,3},{65476,3408,3},{65479,3407,3},{65481,3410,3}, {65483,3410,3},{65483,3413,3},{65483,3415,3},{65488,3417,3},{65494,3420,3}, {65494,3422,3},{65493,3422,3},{65493,3425,3},{65489,3428,3},{65488,3430,3}, {65491,3430,3},{65491,3432,3},{65488,3433,3},{65489,3437,3},{65491,3437,3}, {65491,3440,3},{65488,3440,3},{65486,3442,3},{65484,3440,3},{65483,3442,3}, {65489,3450,3},{65491,3450,3},{65496,3445,3},{65501,3445,3},{65504,3457,3}, {65503,3460,3},{65501,3475,3},{65503,3475,3},{65506,3475,3},{65508,3478,3}, {65504,3480,3},{65504,3483,3},{65508,3485,3},{65509,3482,3},{65516,3480,3}, {65519,3473,3},{65523,3472,3},{65528,3473,3},{65526,3472,3},{65528,3468,3}, {65521,3460,3},{65521,3457,3},{65518,3450,3},{65519,3445,3},{65516,3435,3}, {65513,3435,3},{65513,3438,3},{65508,3438,3},{65501,3432,3},{65496,3430,3}, {65496,3428,3},{65498,3427,3},{65499,3428,3},{65501,3428,3},{65503,3425,3}, {65504,3425,3},{65506,3423,3},{65509,3425,3},{65511,3425,3},{65513,3420,3}, {65516,3418,3},{65518,3418,3},{65516,3413,3},{65521,3408,3},{65523,3408,3}, {65524,3413,3},{65526,3412,3},{65528,3413,3},{65529,3413,3},{65529,3407,3}, {65524,3405,3},{65528,3405,3},{65528,3402,3},{65531,3403,3},{65531,3400,3}, {0,3400,3},{8,3395,3},{10,3395,3},{10,3398,3},{15,3400,3},{17,3398,3},{23,3400,3}, {30,3405,3},{35,3410,3},{38,3412,3},{43,3410,3},{47,3412,3},{60,3417,3}, {65,3427,3},{72,3432,3},{77,3432,3},{82,3440,3},{85,3442,3},{88,3445,3}, {97,3448,3},{103,3448,3},{112,3453,3},{110,3458,3},{115,3460,3},{117,3465,3}, {120,3468,3},{123,3482,3},{130,3483,3},{133,3480,3},{137,3480,3},{140,3480,3}, {142,3485,3},{153,3488,3},{158,3495,3},{167,3500,3},{188,3500,3},{192,3503,3}, {198,3498,3},{205,3498,3},{208,3500,3},{238,3488,3},{242,3488,3},{245,3493,3}, {250,3493,3},{253,3490,3},{260,3488,3},{258,3485,3},{268,3478,3},{278,3478,3}, {285,3475,3},{287,3472,3},{288,3470,3},{287,3468,3},{287,3465,3},{293,3458,3}, {312,3457,3},{313,3453,3},{315,3448,3},{318,3445,3},{327,3445,3},{335,3443,3}, {338,3440,3},{343,3442,3},{348,3440,3},{352,3445,3},{367,3447,3},{368,3442,3}, {373,3438,3},{373,3435,3},{370,3430,3},{373,3430,3},{377,3427,3},{378,3427,3}, {378,3417,3},{380,3420,3},{382,3417,3},{385,3422,3},{388,3422,3},{388,3418,3}, {388,3415,3},{387,3412,3},{388,3410,3},{395,3413,3},{402,3408,3},{405,3410,3}, {410,3408,3},{412,3407,3},{418,3407,3},{422,3400,3},{427,3403,3},{430,3408,3}, {433,3412,3},{438,3415,3},{442,3420,3},{447,3423,3},{450,3428,3},{453,3432,3}, {458,3435,3},{462,3438,3},{462,3445,3},{462,3450,3},{462,3455,3},{462,3462,3}, {462,3467,3},{462,3472,3},{462,3477,3},{462,3483,3},{462,3488,3},{462,3493,3}, {462,3498,3},{462,3505,3},{462,3510,3},{462,3515,3},{462,3520,3},{462,3527,3}, {462,3532,3},{462,3537,3},{462,3542,3},{462,3548,3},{462,3553,3},{462,3558,3}, {462,3565,3},{462,3570,3},{462,3575,3},{462,3580,3},{462,3587,3},{462,3592,3}, {462,3593,3},{460,3595,3},{458,3595,3},{438,3592,3},{413,3593,3},{395,3585,3}, {388,3587,3},{378,3585,3},{370,3583,3},{363,3583,3},{355,3590,3},{348,3590,3}, {348,3593,3},{355,3592,3},{355,3593,3},{347,3595,3},{342,3593,3},{332,3595,3}, {332,3598,3},{325,3603,3},{322,3610,3},{320,3612,3},{322,3615,3},{317,3613,3}, {312,3615,3},{303,3613,3},{302,3612,3},{298,3613,3},{298,3618,3},{297,3622,3}, {298,3625,3},{295,3625,3},{292,3628,3},{285,3638,3},{272,3645,3},{265,3643,3}, {257,3652,3},{252,3653,3},{248,3653,3},{245,3652,3},{240,3655,3},{242,3660,3}, {240,3662,3},{242,3665,3},{248,3670,3},{272,3668,3},{273,3670,3},{282,3670,3}, {285,3670,3},{288,3668,3},{290,3665,3},{290,3653,3},{298,3643,3},{302,3638,3}, {312,3638,3},{318,3633,3},{318,3630,3},{325,3628,3},{332,3622,3},{335,3625,3}, {337,3625,3},{352,3620,3},{360,3620,3},{368,3622,3},{368,3625,3},{375,3627,3}, {388,3622,3},{392,3620,3},{395,3618,3},{397,3620,3},{400,3620,3},{403,3622,3}, {407,3622,3},{413,3625,3},{418,3622,3},{430,3622,3},{433,3618,3},{445,3622,3}, {445,3625,3},{443,3630,3},{443,3637,3},{445,3643,3},{445,3650,3},{445,3655,3}, {445,3662,3},{443,3667,3},{443,3673,3},{443,3680,3},{440,3697,3},{438,3703,3}, {435,3705,3},{433,3708,3},{428,3712,3},{427,3717,3},{423,3722,3},{420,3728,3}, {415,3735,3},{412,3740,3},{407,3747,3},{403,3753,3},{400,3758,3},{395,3765,3}, {392,3772,3},{387,3778,3},{383,3783,3},{378,3790,3},{373,3800,3},{363,3810,3}, {365,3815,3},{363,3845,3},{367,3850,3},{367,3853,3},{363,3855,3},{362,3865,3}, {365,3868,3},{362,3870,3},{360,3872,3},{353,3892,3},{355,3905,3},{355,3912,3}, {352,3918,3},{352,3935,3},{350,3938,3},{348,3945,3},{350,3948,3},{343,3952,3}, {343,3957,3},{350,3960,3},{358,3968,3},{368,3978,3},{377,3982,3},{387,3987,3}, {390,3995,3},{393,4000,3},{397,4007,3},{400,4012,3},{403,4018,3},{405,4023,3}, {407,4030,3},{408,4035,3},{412,4040,3},{415,4045,3},{417,4050,3},{418,4057,3}, {420,4062,3},{423,4067,3},{425,4073,3},{428,4078,3},{427,4080,3},{422,4088,3}, {415,4092,3},{410,4102,3},{400,4110,3},{395,4117,3},{395,4147,3},{397,4150,3}, {397,4157,3},{398,4162,3},{397,4167,3},{400,4172,3},{395,4185,3},{397,4190,3}, {398,4192,3},{393,4188,3},{388,4185,3},{383,4182,3},{378,4178,3},{375,4173,3}, {370,4170,3},{365,4167,3},{360,4163,3},{355,4160,3},{350,4157,3},{345,4153,3}, {340,4150,3},{335,4147,3},{330,4143,3},{325,4140,3},{317,4133,3},{310,4127,3}, {305,4122,3},{300,4117,3},{295,4112,3},{290,4107,3},{285,4102,3},{283,4098,3}, {277,4098,3},{272,4098,3},{265,4098,3},{260,4098,3},{253,4098,3},{247,4098,3}, {242,4098,3},{237,4098,3},{230,4098,3},{225,4098,3},{220,4098,3},{213,4098,3}, {208,4098,3},{203,4098,3},{197,4098,3},{192,4098,3},{187,4098,3},{180,4098,3}, {175,4098,3},{170,4098,3},{163,4098,3},{158,4098,3},{153,4098,3},{147,4098,3}, {142,4098,3},{137,4098,3},{130,4098,3},{125,4098,3},{120,4098,3},{113,4098,3}, {108,4098,3},{103,4098,3},{97,4098,3},{92,4098,3},{87,4098,3},{80,4098,3}, {75,4098,3},{70,4098,3},{63,4098,3},{58,4098,3},{53,4098,3},{47,4098,3}, {42,4098,3},{37,4098,3},{30,4098,3},{25,4098,3},{20,4098,3},{13,4098,3}, {8,4098,3},{3,4098,3},{65533,4098,3},{65526,4098,3},{65519,4098,3},{65513,4098,3}, {65506,4100,3},{65499,4100,3},{65493,4100,3},{65486,4100,3},{65479,4100,3}, {65473,4100,3},{65466,4100,3},{65459,4100,3},{65449,4100,3},{65446,4102,3}, {65443,4105,3},{65439,4108,3},{65434,4112,3},{65431,4115,3},{65426,4117,3}, {65423,4120,3},{65418,4123,3},{65414,4127,3},{65411,4130,3},{65406,4133,3}, {65403,4137,3},{65398,4140,3},{65394,4142,3},{65389,4145,3},{65386,4148,3}, {65383,4152,3},{65378,4155,3},{65373,4155,3},{65369,4155,3},{65361,4148,3}, {65353,4143,3},{65353,4142,3},{65351,4142,3},{65346,4135,3},{65339,4132,3}, {65339,4128,3},{65339,4123,3},{65343,4122,3},{65341,4122,3},{65341,4120,3}, {65339,4120,3},{65336,4118,3},{65338,4110,3},{65331,4102,3},{65334,4098,3}, {65343,4098,3},{65346,4102,3},{65344,4098,3},{65334,4095,3},{65331,4098,3}, {65328,4095,3},{65329,4093,3},{65336,4090,3},{65339,4087,3},{65334,4085,3}, {65334,4088,3},{65333,4090,3},{65331,4090,3},{65329,4088,3},{65328,4090,3}, {65314,4092,3},{65313,4093,3},{65314,4095,3},{65311,4098,3},{65306,4095,3}, {65304,4092,3},{65306,4092,3},{65308,4095,3},{65308,4092,3},{65313,4090,3}, {65314,4088,3},{65313,4085,3},{65308,4082,3},{65306,4080,3},{65308,4077,3}, {65304,4080,3},{65303,4078,3},{65299,4082,3},{65296,4082,3},{65294,4078,3}, {65291,4077,3},{65289,4072,3},{65281,4063,3},{65281,4060,3},{65283,4053,3}, {65281,4042,3},{65271,4027,3},{65263,4020,3},{65266,4020,3},{65268,4018,3}, {65264,4018,3},{65263,4017,3},{65261,4017,3},{65259,4017,3},{65258,4015,3}, {65254,4018,3},{65246,4015,3},{65246,4017,3},{65244,4015,3},{65243,4017,3}, {65241,4015,3},{65238,4015,3},{65233,4013,3},{65236,4018,3},{65238,4023,3}, {65233,4018,3},{65228,4015,3},{65224,4017,3},{65218,4012,3},{65213,4013,3}, {65209,4012,3},{65203,4003,3},{65201,4000,3},{65204,3998,3},{65203,3993,3}, {65199,3993,3},{65196,3997,3},{65184,3990,3},{65178,3988,3},{65174,3987,3}, {65174,3985,3},{65176,3983,3},{65176,3978,3},{65178,3978,3},{65176,3978,3}, {65174,3980,3},{65173,3980,3},{65173,3983,3},{65171,3987,3},{65169,3987,3}, {65154,3983,3},{65144,3978,3},{65143,3977,3},{65141,3975,3},{65141,3972,3}, {65144,3972,3},{65146,3972,3},{65144,3968,3},{65139,3970,3},{65139,3975,3}, {65133,3972,3},{65131,3968,3},{65134,3965,3},{65139,3967,3},{65138,3965,3}, {65139,3962,3},{65138,3960,3},{65136,3963,3},{65133,3963,3},{65133,3955,3}, {65128,3957,3},{65129,3957,3},{65129,3962,3},{65126,3967,3},{65109,3958,3}, {65093,3955,3},{65094,3952,3},{65093,3950,3},{65089,3950,3},{65084,3947,3}, {65078,3945,3},{65081,3943,3},{65083,3945,3},{65083,3943,3},{65081,3942,3}, {65079,3942,3},{65078,3938,3},{65074,3942,3},{65073,3940,3},{65073,3933,3}, {65076,3930,3},{65074,3930,3},{65074,3925,3},{65071,3922,3},{65069,3922,3}, {65069,3920,3},{65069,3918,3},{65073,3915,3},{65076,3910,3},{65079,3907,3}, {65083,3902,3},{65084,3898,3},{65088,3893,3},{65091,3890,3},{65094,3887,3}, {65096,3882,3},{65099,3878,3},{65103,3873,3},{65106,3870,3},{65109,3865,3}, {65111,3862,3},{65114,3857,3},{65118,3853,3},{65121,3848,3},{65123,3845,3}, {65126,3840,3},{65129,3837,3},{65133,3832,3},{65136,3828,3},{65138,3823,3}, {65141,3820,3},{65144,3815,3},{65148,3812,3},{65151,3807,3},{65153,3803,3}, {65156,3798,3},{65159,3795,3},{65163,3790,3},{65164,3787,3},{65168,3782,3}, {65171,3778,3},{65183,3773,3},{65184,3770,3},{65186,3768,3},{65186,3762,3}, {65191,3763,3},{65191,3760,3},{65194,3760,3},{65201,3767,3},{65201,3768,3}, {65204,3768,3},{65204,3772,3},{65231,3768,3},{65233,3765,3},{65236,3760,3}, {65239,3755,3},{65243,3750,3},{65244,3743,3},{65248,3738,3},{65251,3733,3}, {65253,3728,3},{65256,3722,3},{65259,3717,3},{65263,3712,3},{65266,3705,3}, {65269,3700,3},{65271,3695,3},{65274,3690,3},{65278,3683,3},{65281,3678,3}, {65284,3673,3},{65288,3667,3},{65289,3662,3},{65293,3657,3},{65296,3650,3}, {65299,3645,3},{65303,3640,3},{65306,3633,3},{65308,3630,3},{65309,3627,3}, {65313,3622,3},{65314,3617,3},{65318,3613,3},{65321,3608,3},{65323,3603,3}, {65326,3598,3},{65328,3593,3},{65331,3588,3},{65334,3583,3},{65336,3578,3}, {65339,3573,3},{65343,3568,3},{65344,3563,3},{65348,3558,3},{65351,3553,3}, {65353,3548,3},{65356,3543,3},{65358,3540,3},{65361,3535,3},{65364,3530,3}, {65366,3525,3},{65369,3520,3},{65373,3515,3},{65374,3510,3},{65378,3505,3}, {65381,3500,3},{65383,3495,3},{65386,3490,3},{65388,3485,3},{65391,3480,3}, {65394,3475,3},{65396,3472,3},{65399,3467,3},{65403,3462,3},{65404,3457,3}, {65408,3452,3},{65411,3447,3},{65413,3442,3},{65416,3437,3},{65418,3432,3}, {65421,3427,3},{65424,3422,3},{65426,3417,3},{65429,3412,3},{65433,3408,3}, {65433,3407,3},{65398,2960,131},{65404,2960,3},{65409,2958,3},{65414,2960,3}, {65418,2957,3},{65429,2958,3},{65436,2957,3},{65439,2958,3},{65446,2958,3}, {65448,2963,3},{65458,2963,3},{65463,2962,3},{65471,2963,3},{65474,2965,3}, {65476,2963,3},{65479,2967,3},{65486,2967,3},{65489,2965,3},{65491,2968,3}, {65494,2975,3},{65498,2982,3},{65508,2988,3},{65518,2988,3},{65521,2990,3}, {65521,2987,3},{65519,2985,3},{65519,2982,3},{65523,2980,3},{65523,2978,3}, {65528,2975,3},{65528,2972,3},{65529,2972,3},{0,2973,3},{7,2972,3},{12,2973,3}, {13,2977,3},{15,2977,3},{17,2978,3},{15,2982,3},{37,2987,3},{48,2997,3}, {63,2993,3},{72,2995,3},{77,2995,3},{83,2997,3},{87,3002,3},{90,3010,3}, {90,3015,3},{100,3022,3},{107,3022,3},{113,3023,3},{115,3027,3},{117,3028,3}, {115,3033,3},{120,3035,3},{120,3038,3},{122,3045,3},{123,3047,3},{123,3048,3}, {122,3050,3},{120,3050,3},{118,3048,3},{117,3050,3},{113,3048,3},{112,3050,3}, {110,3052,3},{105,3050,3},{103,3050,3},{103,3052,3},{105,3053,3},{100,3053,3}, {105,3055,3},{103,3057,3},{102,3060,3},{103,3058,3},{105,3062,3},{107,3060,3}, {107,3062,3},{110,3063,3},{112,3067,3},{115,3070,3},{118,3072,3},{122,3072,3}, {123,3073,3},{125,3075,3},{130,3078,3},{132,3080,3},{135,3083,3},{138,3085,3}, {140,3087,3},{142,3088,3},{145,3092,3},{150,3093,3},{152,3095,3},{153,3100,3}, {157,3105,3},{158,3105,3},{158,3113,3},{160,3117,3},{162,3120,3},{163,3122,3}, {165,3123,3},{167,3125,3},{168,3127,3},{170,3128,3},{172,3130,3},{175,3132,3}, {177,3133,3},{182,3132,3},{183,3133,3},{182,3135,3},{182,3137,3},{183,3138,3}, {192,3140,3},{192,3142,3},{200,3138,3},{200,3140,3},{207,3140,3},{212,3138,3}, {213,3140,3},{217,3138,3},{220,3137,3},{223,3137,3},{225,3135,3},{228,3138,3}, {230,3140,3},{232,3143,3},{232,3145,3},{233,3147,3},{235,3148,3},{237,3148,3}, {238,3148,3},{240,3147,3},{238,3147,3},{235,3145,3},{233,3143,3},{233,3140,3}, {232,3137,3},{227,3133,3},{225,3132,3},{220,3130,3},{218,3128,3},{223,3120,3}, {230,3120,3},{228,3112,3},{230,3105,3},{233,3107,3},{240,3098,3},{242,3095,3}, {240,3093,3},{233,3092,3},{233,3088,3},{240,3083,3},{245,3083,3},{245,3073,3}, {248,3073,3},{252,3075,3},{260,3075,3},{262,3078,3},{267,3078,3},{270,3080,3}, {277,3082,3},{278,3085,3},{285,3088,3},{288,3088,3},{297,3085,3},{305,3077,3}, {323,3083,3},{328,3083,3},{328,3087,3},{340,3093,3},{347,3092,3},{350,3093,3}, {353,3092,3},{348,3087,3},{357,3088,3},{368,3097,3},{370,3103,3},{380,3118,3}, {380,3128,3},{365,3153,3},{368,3157,3},{372,3170,3},{382,3180,3},{380,3183,3}, {368,3193,3},{360,3195,3},{358,3207,3},{353,3210,3},{352,3220,3},{362,3220,3}, {375,3240,3},{375,3272,3},{382,3290,3},{388,3302,3},{377,3318,3},{377,3323,3}, {377,3330,3},{377,3335,3},{375,3340,3},{375,3345,3},{375,3352,3},{378,3355,3}, {382,3358,3},{387,3363,3},{390,3367,3},{393,3372,3},{398,3375,3},{402,3378,3}, {405,3383,3},{410,3387,3},{413,3392,3},{418,3395,3},{422,3400,3},{418,3407,3}, {412,3407,3},{410,3408,3},{405,3410,3},{402,3408,3},{395,3413,3},{388,3410,3}, {387,3412,3},{388,3415,3},{388,3418,3},{388,3422,3},{385,3422,3},{382,3417,3}, {380,3420,3},{378,3417,3},{378,3427,3},{377,3427,3},{373,3430,3},{370,3430,3}, {373,3435,3},{373,3438,3},{368,3442,3},{367,3447,3},{352,3445,3},{348,3440,3}, {343,3442,3},{338,3440,3},{335,3443,3},{327,3445,3},{318,3445,3},{315,3448,3}, {313,3453,3},{312,3457,3},{293,3458,3},{287,3465,3},{287,3468,3},{288,3470,3}, {287,3472,3},{285,3475,3},{278,3478,3},{268,3478,3},{258,3485,3},{260,3488,3}, {253,3490,3},{250,3493,3},{245,3493,3},{242,3488,3},{238,3488,3},{208,3500,3}, {205,3498,3},{198,3498,3},{192,3503,3},{188,3500,3},{167,3500,3},{158,3495,3}, {153,3488,3},{142,3485,3},{140,3480,3},{137,3480,3},{133,3480,3},{130,3483,3}, {123,3482,3},{120,3468,3},{117,3465,3},{115,3460,3},{110,3458,3},{112,3453,3}, {103,3448,3},{97,3448,3},{88,3445,3},{85,3442,3},{82,3440,3},{77,3432,3}, {72,3432,3},{65,3427,3},{60,3417,3},{47,3412,3},{43,3410,3},{38,3412,3}, {35,3410,3},{30,3405,3},{23,3400,3},{27,3398,3},{23,3395,3},{23,3392,3}, {20,3392,3},{20,3390,3},{17,3390,3},{20,3383,3},{17,3383,3},{15,3382,3}, {20,3380,3},{23,3380,3},{22,3378,3},{20,3380,3},{18,3375,3},{20,3370,3}, {25,3375,3},{27,3370,3},{32,3375,3},{33,3370,3},{32,3367,3},{32,3363,3}, {32,3362,3},{28,3363,3},{22,3362,3},{20,3358,3},{18,3357,3},{18,3355,3}, {20,3353,3},{18,3352,3},{22,3353,3},{20,3350,3},{23,3350,3},{18,3348,3}, {22,3347,3},{23,3342,3},{25,3345,3},{27,3342,3},{28,3343,3},{28,3340,3}, {28,3345,3},{28,3352,3},{30,3352,3},{30,3350,3},{32,3350,3},{33,3345,3}, {35,3347,3},{35,3342,3},{32,3343,3},{33,3340,3},{33,3337,3},{35,3337,3}, {37,3337,3},{35,3332,3},{38,3332,3},{38,3337,3},{42,3335,3},{45,3337,3}, {48,3340,3},{48,3337,3},{45,3335,3},{42,3330,3},{45,3328,3},{48,3328,3}, {47,3325,3},{43,3323,3},{43,3318,3},{40,3320,3},{38,3327,3},{37,3327,3}, {32,3315,3},{30,3315,3},{27,3317,3},{25,3313,3},{22,3313,3},{22,3312,3}, {25,3312,3},{27,3307,3},{25,3308,3},{22,3305,3},{22,3310,3},{18,3310,3}, {8,3298,3},{7,3290,3},{10,3290,3},{12,3287,3},{13,3290,3},{15,3288,3},{17,3290,3}, {20,3288,3},{17,3287,3},{18,3285,3},{15,3285,3},{15,3282,3},{10,3278,3}, {13,3275,3},{10,3275,3},{8,3267,3},{13,3265,3},{13,3270,3},{18,3273,3}, {20,3272,3},{17,3270,3},{17,3265,3},{22,3268,3},{23,3265,3},{28,3267,3}, {28,3265,3},{20,3262,3},{20,3258,3},{18,3257,3},{18,3258,3},{15,3258,3}, {13,3260,3},{13,3257,3},{12,3258,3},{10,3258,3},{12,3255,3},{7,3257,3}, {5,3257,3},{5,3255,3},{8,3253,3},{5,3252,3},{8,3250,3},{3,3247,3},{3,3243,3}, {5,3242,3},{10,3245,3},{12,3245,3},{8,3243,3},{8,3237,3},{5,3238,3},{2,3238,3}, {65534,3237,3},{65533,3237,3},{65534,3235,3},{2,3235,3},{5,3225,3},{2,3227,3}, {0,3230,3},{65533,3228,3},{65533,3225,3},{0,3220,3},{3,3220,3},{0,3220,3}, {65533,3222,3},{65531,3220,3},{65528,3218,3},{65531,3212,3},{65533,3208,3}, {65531,3202,3},{65529,3202,3},{65529,3205,3},{65526,3207,3},{65526,3198,3}, {65523,3192,3},{65521,3193,3},{65516,3192,3},{65518,3197,3},{65518,3198,3}, {65511,3198,3},{65511,3200,3},{65504,3203,3},{65503,3203,3},{65506,3202,3}, {65506,3200,3},{65493,3192,3},{65488,3183,3},{65483,3182,3},{65479,3180,3}, {65473,3178,3},{65471,3180,3},{65463,3173,3},{65456,3170,3},{65451,3170,3}, {65451,3175,3},{65449,3177,3},{65441,3177,3},{65436,3178,3},{65436,3173,3}, {65436,3168,3},{65436,3163,3},{65436,3157,3},{65436,3152,3},{65436,3147,3}, {65436,3142,3},{65436,3135,3},{65436,3130,3},{65436,3125,3},{65436,3118,3}, {65436,3113,3},{65436,3108,3},{65436,3103,3},{65436,3097,3},{65436,3092,3}, {65436,3087,3},{65436,3080,3},{65436,3075,3},{65434,3068,3},{65429,3067,3}, {65429,3063,3},{65429,3057,3},{65428,3052,3},{65429,3048,3},{65429,3037,3}, {65423,3035,3},{65421,3032,3},{65414,3028,3},{65413,3025,3},{65409,3023,3}, {65408,3018,3},{65403,3017,3},{65399,3013,3},{65399,3008,3},{65396,3007,3}, {65393,3005,3},{65393,3003,3},{65389,2998,3},{65388,2993,3},{65391,2990,3}, {65398,2988,3},{65403,2985,3},{65404,2983,3},{65401,2980,3},{65399,2980,3}, {65401,2977,3},{65401,2973,3},{65398,2968,3},{65398,2960,3},{64379,3495,131}, {64388,3497,3},{64391,3493,3},{64398,3488,3},{64401,3487,3},{64403,3480,3}, {64401,3477,3},{64406,3473,3},{64408,3475,3},{64409,3473,3},{64416,3472,3}, {64418,3468,3},{64426,3462,3},{64434,3460,3},{64438,3460,3},{64444,3465,3}, {64458,3465,3},{64461,3468,3},{64464,3465,3},{64471,3465,3},{64474,3462,3}, {64478,3462,3},{64479,3458,3},{64484,3458,3},{64488,3460,3},{64491,3457,3}, {64496,3457,3},{64508,3458,3},{64513,3457,3},{64519,3455,3},{64526,3452,3}, {64529,3453,3},{64538,3452,3},{64554,3438,3},{64558,3433,3},{64563,3433,3}, {64578,3415,3},{64586,3407,3},{64588,3405,3},{64588,3400,3},{64581,3395,3}, {64576,3397,3},{64569,3395,3},{64566,3392,3},{64574,3380,3},{64578,3375,3}, {64578,3373,3},{64574,3370,3},{64574,3365,3},{64578,3358,3},{64574,3353,3}, {64574,3343,3},{64583,3340,3},{64588,3332,3},{64586,3327,3},{64588,3323,3}, {64584,3320,3},{64586,3318,3},{64586,3313,3},{64594,3303,3},{64599,3300,3}, {64596,3293,3},{64588,3295,3},{64588,3298,3},{64599,3285,3},{64603,3282,3}, {64603,3277,3},{64608,3275,3},{64609,3255,3},{64614,3250,3},{64619,3248,3}, {64623,3243,3},{64623,3227,3},{64624,3222,3},{64629,3217,3},{64629,3212,3}, {64633,3205,3},{64629,3198,3},{64634,3193,3},{64639,3193,3},{64643,3195,3}, {64644,3188,3},{64648,3178,3},{64646,3175,3},{64644,3172,3},{64646,3168,3}, {64654,3157,3},{64666,3157,3},{64669,3148,3},{64673,3147,3},{64673,3140,3}, {64678,3138,3},{64678,3137,3},{64676,3135,3},{64676,3132,3},{64674,3128,3}, {64678,3123,3},{64678,3122,3},{64676,3118,3},{64678,3117,3},{64681,3117,3}, {64683,3115,3},{64686,3113,3},{64693,3115,3},{64698,3112,3},{64703,3103,3}, {64706,3102,3},{64709,3098,3},{64713,3097,3},{64718,3095,3},{64719,3095,3}, {64719,3097,3},{64721,3097,3},{64724,3095,3},{64726,3092,3},{64734,3090,3}, {64739,3087,3},{64741,3085,3},{64746,3083,3},{64749,3080,3},{64758,3075,3}, {64761,3075,3},{64768,3072,3},{64771,3067,3},{64776,3065,3},{64778,3062,3}, {64781,3062,3},{64784,3058,3},{64786,3058,3},{64788,3060,3},{64793,3058,3}, {64801,3062,3},{64814,3055,3},{64818,3053,3},{64819,3053,3},{64824,3050,3}, {64826,3050,3},{64824,3053,3},{64826,3055,3},{64833,3055,3},{64834,3058,3}, {64839,3057,3},{64856,3040,3},{64861,3040,3},{64873,3032,3},{64874,3028,3}, {64889,3015,3},{64891,3007,3},{64886,2995,3},{64888,2995,3},{64891,2990,3}, {64899,2982,3},{64908,2975,3},{64909,2972,3},{64916,2973,3},{64924,2972,3}, {64931,2973,3},{64936,2978,3},{64936,2983,3},{64941,2988,3},{64944,2995,3}, {64948,2995,3},{64959,2993,3},{64966,2990,3},{64979,2985,3},{64991,2973,3}, {64994,2975,3},{65003,2978,3},{65009,2978,3},{65009,2980,3},{65013,2980,3}, {65014,2982,3},{65016,2982,3},{65018,2980,3},{65019,2982,3},{65026,2982,3}, {65031,2977,3},{65034,2978,3},{65039,2973,3},{65041,2968,3},{65043,2967,3}, {65044,2962,3},{65044,2960,3},{65046,2958,3},{65049,2962,3},{65051,2960,3}, {65058,2960,3},{65078,2965,3},{65091,2965,3},{65091,2967,3},{65089,2975,3}, {65094,2977,3},{65096,2980,3},{65099,2982,3},{65099,2985,3},{65103,2993,3}, {65106,2997,3},{65109,3003,3},{65113,3005,3},{65119,3007,3},{65123,3013,3}, {65128,3017,3},{65134,3022,3},{65143,3023,3},{65151,3030,3},{65158,3032,3}, {65159,3035,3},{65158,3040,3},{65166,3040,3},{65174,3045,3},{65181,3045,3}, {65186,3048,3},{65184,3052,3},{65188,3053,3},{65191,3063,3},{65194,3067,3}, {65198,3067,3},{65199,3062,3},{65203,3065,3},{65206,3073,3},{65208,3073,3}, {65206,3077,3},{65211,3083,3},{65214,3082,3},{65216,3085,3},{65221,3085,3}, {65224,3083,3},{65228,3083,3},{65231,3080,3},{65238,3085,3},{65238,3075,3}, {65238,3067,3},{65241,3065,3},{65246,3057,3},{65241,3050,3},{65241,3048,3}, {65246,3047,3},{65246,3045,3},{65249,3043,3},{65251,3042,3},{65256,3043,3}, {65258,3045,3},{65261,3043,3},{65264,3047,3},{65266,3048,3},{65271,3052,3}, {65268,3045,3},{65268,3043,3},{65271,3043,3},{65278,3048,3},{65291,3052,3}, {65296,3057,3},{65298,3058,3},{65296,3065,3},{65301,3070,3},{65298,3078,3}, {65301,3083,3},{65306,3085,3},{65318,3085,3},{65328,3090,3},{65343,3082,3}, {65356,3083,3},{65366,3082,3},{65369,3083,3},{65384,3075,3},{65393,3073,3}, {65398,3068,3},{65398,3063,3},{65401,3060,3},{65403,3057,3},{65409,3055,3}, {65414,3052,3},{65419,3052,3},{65419,3047,3},{65423,3048,3},{65426,3045,3}, {65429,3048,3},{65428,3052,3},{65429,3057,3},{65429,3063,3},{65429,3067,3}, {65434,3068,3},{65436,3075,3},{65436,3080,3},{65436,3087,3},{65436,3092,3}, {65436,3097,3},{65436,3103,3},{65436,3108,3},{65436,3113,3},{65436,3118,3}, {65436,3125,3},{65436,3130,3},{65436,3135,3},{65436,3142,3},{65436,3147,3}, {65436,3152,3},{65436,3157,3},{65436,3163,3},{65436,3168,3},{65436,3173,3}, {65436,3178,3},{65433,3177,3},{65431,3177,3},{65431,3180,3},{65438,3183,3}, {65433,3183,3},{65434,3185,3},{65433,3187,3},{65429,3185,3},{65426,3187,3}, {65423,3185,3},{65419,3187,3},{65411,3187,3},{65404,3185,3},{65401,3182,3}, {65388,3180,3},{65388,3178,3},{65389,3177,3},{65388,3175,3},{65386,3173,3}, {65381,3175,3},{65379,3175,3},{65374,3177,3},{65369,3172,3},{65364,3172,3}, {65346,3168,3},{65341,3163,3},{65334,3162,3},{65331,3162,3},{65333,3167,3}, {65336,3168,3},{65336,3170,3},{65331,3168,3},{65328,3170,3},{65324,3168,3}, {65321,3168,3},{65303,3163,3},{65299,3163,3},{65301,3170,3},{65303,3170,3}, {65303,3175,3},{65301,3175,3},{65299,3178,3},{65299,3175,3},{65296,3175,3}, {65294,3180,3},{65289,3180,3},{65286,3177,3},{65286,3172,3},{65281,3172,3}, {65281,3175,3},{65274,3175,3},{65273,3177,3},{65274,3180,3},{65274,3187,3}, {65274,3182,3},{65271,3182,3},{65271,3178,3},{65269,3177,3},{65268,3178,3}, {65264,3175,3},{65264,3178,3},{65263,3178,3},{65253,3178,3},{65253,3182,3}, {65256,3183,3},{65259,3185,3},{65264,3182,3},{65268,3185,3},{65266,3188,3}, {65264,3187,3},{65264,3190,3},{65273,3190,3},{65271,3190,3},{65271,3193,3}, {65268,3193,3},{65264,3197,3},{65259,3197,3},{65259,3198,3},{65259,3202,3}, {65264,3200,3},{65268,3200,3},{65268,3198,3},{65273,3197,3},{65276,3193,3}, {65276,3198,3},{65286,3198,3},{65288,3200,3},{65286,3202,3},{65288,3203,3}, {65283,3207,3},{65284,3207,3},{65286,3210,3},{65283,3212,3},{65281,3217,3}, {65286,3217,3},{65288,3215,3},{65289,3212,3},{65293,3210,3},{65293,3207,3}, {65296,3207,3},{65298,3207,3},{65299,3207,3},{65299,3212,3},{65298,3212,3}, {65298,3217,3},{65304,3220,3},{65304,3222,3},{65311,3222,3},{65309,3223,3}, {65308,3225,3},{65309,3232,3},{65304,3232,3},{65303,3235,3},{65303,3232,3}, {65301,3232,3},{65296,3233,3},{65296,3237,3},{65294,3237,3},{65294,3235,3}, {65293,3237,3},{65293,3243,3},{65289,3243,3},{65291,3248,3},{65289,3250,3}, {65291,3255,3},{65286,3255,3},{65284,3252,3},{65281,3250,3},{65279,3252,3}, {65288,3262,3},{65298,3265,3},{65296,3267,3},{65293,3265,3},{65288,3270,3}, {65284,3267,3},{65284,3268,3},{65288,3273,3},{65283,3273,3},{65286,3277,3}, {65288,3280,3},{65284,3283,3},{65279,3280,3},{65279,3283,3},{65278,3283,3}, {65276,3282,3},{65273,3282,3},{65271,3280,3},{65269,3282,3},{65268,3285,3}, {65264,3282,3},{65264,3287,3},{65261,3287,3},{65256,3285,3},{65253,3285,3}, {65249,3272,3},{65248,3272,3},{65248,3275,3},{65244,3280,3},{65243,3275,3}, {65238,3275,3},{65234,3275,3},{65239,3282,3},{65248,3283,3},{65251,3285,3}, {65253,3288,3},{65256,3290,3},{65251,3292,3},{65249,3295,3},{65248,3303,3}, {65251,3302,3},{65251,3297,3},{65253,3297,3},{65254,3293,3},{65256,3293,3}, {65258,3297,3},{65259,3292,3},{65264,3288,3},{65266,3288,3},{65268,3292,3}, {65273,3287,3},{65279,3288,3},{65279,3292,3},{65288,3287,3},{65289,3290,3}, {65291,3290,3},{65294,3292,3},{65298,3295,3},{65298,3302,3},{65298,3310,3}, {65294,3313,3},{65289,3313,3},{65289,3317,3},{65284,3320,3},{65286,3330,3}, {65284,3333,3},{65286,3333,3},{65284,3335,3},{65283,3335,3},{65283,3338,3}, {65281,3340,3},{65281,3343,3},{65283,3342,3},{65283,3345,3},{65286,3347,3}, {65289,3340,3},{65291,3347,3},{65291,3353,3},{65293,3353,3},{65294,3350,3}, {65298,3353,3},{65299,3360,3},{65304,3365,3},{65306,3368,3},{65308,3372,3}, {65308,3375,3},{65314,3383,3},{65323,3382,3},{65328,3377,3},{65324,3368,3}, {65319,3362,3},{65318,3360,3},{65321,3343,3},{65319,3337,3},{65323,3333,3}, {65324,3327,3},{65323,3322,3},{65324,3320,3},{65328,3322,3},{65331,3322,3}, {65329,3330,3},{65333,3328,3},{65334,3327,3},{65336,3328,3},{65334,3330,3}, {65331,3332,3},{65334,3333,3},{65331,3338,3},{65333,3340,3},{65338,3338,3}, {65339,3340,3},{65334,3348,3},{65333,3355,3},{65338,3357,3},{65338,3353,3}, {65339,3353,3},{65341,3347,3},{65343,3348,3},{65344,3348,3},{65346,3345,3}, {65348,3347,3},{65348,3345,3},{65344,3335,3},{65343,3333,3},{65343,3330,3}, {65344,3328,3},{65344,3330,3},{65351,3332,3},{65356,3338,3},{65356,3345,3}, {65353,3345,3},{65351,3347,3},{65353,3352,3},{65354,3353,3},{65354,3355,3}, {65359,3357,3},{65358,3365,3},{65359,3365,3},{65368,3353,3},{65368,3370,3}, {65373,3372,3},{65373,3367,3},{65374,3368,3},{65376,3368,3},{65378,3365,3}, {65379,3365,3},{65379,3362,3},{65381,3367,3},{65383,3368,3},{65384,3368,3}, {65388,3365,3},{65389,3368,3},{65386,3372,3},{65388,3378,3},{65389,3380,3}, {65384,3383,3},{65384,3388,3},{65383,3392,3},{65384,3395,3},{65386,3393,3}, {65388,3393,3},{65386,3390,3},{65389,3388,3},{65389,3387,3},{65393,3385,3}, {65393,3378,3},{65394,3378,3},{65398,3380,3},{65396,3382,3},{65394,3385,3}, {65398,3383,3},{65398,3382,3},{65399,3382,3},{65403,3380,3},{65404,3390,3}, {65403,3397,3},{65401,3398,3},{65399,3397,3},{65399,3398,3},{65403,3398,3}, {65406,3393,3},{65408,3393,3},{65408,3390,3},{65411,3387,3},{65416,3392,3}, {65419,3398,3},{65423,3400,3},{65424,3398,3},{65426,3398,3},{65426,3403,3}, {65429,3407,3},{65433,3407,3},{65433,3408,3},{65429,3412,3},{65426,3417,3}, {65424,3422,3},{65421,3427,3},{65418,3432,3},{65416,3437,3},{65413,3442,3}, {65411,3447,3},{65408,3452,3},{65404,3457,3},{65403,3462,3},{65399,3467,3}, {65396,3472,3},{65394,3475,3},{65391,3480,3},{65388,3485,3},{65386,3490,3}, {65383,3495,3},{65381,3500,3},{65378,3505,3},{65374,3510,3},{65373,3515,3}, {65369,3520,3},{65366,3525,3},{65364,3530,3},{65361,3535,3},{65358,3540,3}, {65356,3543,3},{65353,3548,3},{65351,3553,3},{65348,3558,3},{65344,3563,3}, {65343,3568,3},{65339,3573,3},{65336,3578,3},{65334,3583,3},{65331,3588,3}, {65328,3593,3},{65326,3598,3},{65323,3603,3},{65321,3608,3},{65318,3613,3}, {65314,3617,3},{65313,3622,3},{65309,3627,3},{65308,3630,3},{65306,3633,3}, {65303,3640,3},{65299,3645,3},{65296,3650,3},{65293,3657,3},{65289,3662,3}, {65288,3667,3},{65284,3673,3},{65281,3678,3},{65278,3683,3},{65274,3690,3}, {65271,3695,3},{65269,3700,3},{65266,3705,3},{65263,3712,3},{65259,3717,3}, {65256,3722,3},{65253,3728,3},{65251,3733,3},{65248,3738,3},{65244,3743,3}, {65243,3750,3},{65239,3755,3},{65236,3760,3},{65233,3765,3},{65231,3768,3}, {65204,3772,3},{65204,3768,3},{65201,3768,3},{65201,3767,3},{65194,3760,3}, {65191,3760,3},{65191,3763,3},{65186,3762,3},{65186,3768,3},{65184,3770,3}, {65183,3773,3},{65171,3778,3},{65168,3782,3},{65164,3787,3},{65163,3790,3}, {65159,3795,3},{65156,3798,3},{65153,3803,3},{65151,3807,3},{65148,3812,3}, {65144,3815,3},{65141,3820,3},{65138,3823,3},{65136,3828,3},{65133,3832,3}, {65129,3837,3},{65126,3840,3},{65123,3845,3},{65121,3848,3},{65118,3853,3}, {65114,3857,3},{65111,3862,3},{65109,3865,3},{65106,3870,3},{65103,3873,3}, {65099,3878,3},{65096,3882,3},{65094,3887,3},{65091,3890,3},{65088,3893,3}, {65084,3898,3},{65083,3902,3},{65079,3907,3},{65076,3910,3},{65073,3915,3}, {65069,3918,3},{65069,3920,3},{65068,3918,3},{65068,3922,3},{65061,3922,3}, {65059,3920,3},{65061,3918,3},{65058,3917,3},{65058,3922,3},{65051,3922,3}, {65044,3918,3},{65043,3917,3},{65043,3915,3},{65049,3917,3},{65051,3917,3}, {65044,3913,3},{65044,3912,3},{65041,3913,3},{65036,3912,3},{65034,3913,3}, {65034,3910,3},{65031,3908,3},{65029,3910,3},{65029,3912,3},{65026,3913,3}, {65021,3908,3},{65018,3908,3},{65016,3907,3},{65013,3903,3},{65011,3905,3}, {65014,3907,3},{65013,3908,3},{64998,3902,3},{64996,3898,3},{64993,3897,3}, {64991,3900,3},{64981,3897,3},{64971,3890,3},{64964,3890,3},{64953,3883,3}, {64943,3882,3},{64936,3878,3},{64931,3878,3},{64923,3882,3},{64919,3887,3}, {64904,3885,3},{64898,3887,3},{64896,3890,3},{64893,3892,3},{64889,3897,3}, {64888,3903,3},{64889,3903,3},{64891,3898,3},{64888,3905,3},{64881,3912,3}, {64878,3915,3},{64874,3917,3},{64873,3920,3},{64863,3925,3},{64861,3927,3}, {64863,3928,3},{64861,3928,3},{64854,3928,3},{64851,3928,3},{64851,3930,3}, {64854,3930,3},{64853,3933,3},{64851,3937,3},{64849,3947,3},{64836,3955,3}, {64831,3953,3},{64823,3955,3},{64823,3952,3},{64818,3950,3},{64818,3948,3}, {64821,3948,3},{64818,3943,3},{64813,3942,3},{64811,3940,3},{64809,3938,3}, {64809,3937,3},{64806,3937,3},{64804,3932,3},{64803,3935,3},{64799,3935,3}, {64793,3933,3},{64789,3930,3},{64778,3927,3},{64768,3930,3},{64764,3928,3}, {64759,3930,3},{64758,3928,3},{64754,3925,3},{64754,3928,3},{64759,3932,3}, {64763,3932,3},{64761,3937,3},{64758,3933,3},{64758,3940,3},{64754,3945,3}, {64749,3943,3},{64746,3942,3},{64743,3943,3},{64736,3943,3},{64736,3945,3}, {64738,3945,3},{64734,3945,3},{64723,3938,3},{64716,3937,3},{64716,3935,3}, {64708,3935,3},{64708,3933,3},{64706,3933,3},{64706,3932,3},{64709,3930,3}, {64706,3930,3},{64704,3928,3},{64698,3930,3},{64684,3930,3},{64681,3935,3}, {64674,3937,3},{64669,3937,3},{64666,3938,3},{64666,3937,3},{64663,3943,3}, {64656,3947,3},{64654,3950,3},{64646,3952,3},{64644,3957,3},{64644,3952,3}, {64646,3950,3},{64649,3943,3},{64649,3940,3},{64644,3938,3},{64646,3947,3}, {64644,3945,3},{64643,3945,3},{64643,3950,3},{64638,3948,3},{64634,3950,3}, {64631,3950,3},{64629,3950,3},{64628,3950,3},{64623,3950,3},{64626,3957,3}, {64616,3965,3},{64609,3963,3},{64608,3965,3},{64598,3965,3},{64596,3962,3}, {64594,3960,3},{64596,3957,3},{64591,3957,3},{64591,3960,3},{64593,3962,3}, {64591,3965,3},{64589,3965,3},{64586,3968,3},{64576,3970,3},{64574,3973,3}, {64573,3972,3},{64571,3972,3},{64569,3975,3},{64566,3973,3},{64566,3975,3}, {64561,3970,3},{64561,3975,3},{64551,3980,3},{64548,3980,3},{64548,3975,3}, {64544,3978,3},{64543,3978,3},{64539,3970,3},{64536,3973,3},{64531,3968,3}, {64533,3973,3},{64538,3975,3},{64538,3982,3},{64534,3985,3},{64534,3988,3}, {64529,3993,3},{64526,3993,3},{64523,3997,3},{64514,3998,3},{64518,4000,3}, {64523,3998,3},{64523,4000,3},{64518,4013,3},{64516,4012,3},{64511,4013,3}, {64509,4012,3},{64508,4012,3},{64509,4013,3},{64508,4017,3},{64509,4017,3}, {64509,4018,3},{64506,4023,3},{64508,4023,3},{64508,4027,3},{64511,4020,3}, {64516,4023,3},{64513,4025,3},{64509,4030,3},{64501,4033,3},{64501,4037,3}, {64499,4040,3},{64503,4043,3},{64504,4042,3},{64504,4038,3},{64506,4042,3}, {64501,4045,3},{64498,4042,3},{64496,4043,3},{64493,4042,3},{64488,4043,3}, {64486,4042,3},{64479,4033,3},{64476,4023,3},{64469,4017,3},{64459,4003,3}, {64456,4000,3},{64453,3990,3},{64444,3977,3},{64441,3968,3},{64441,3963,3}, {64436,3952,3},{64429,3943,3},{64426,3935,3},{64419,3927,3},{64419,3920,3}, {64421,3913,3},{64419,3903,3},{64419,3890,3},{64409,3877,3},{64409,3870,3}, {64408,3865,3},{64403,3860,3},{64399,3853,3},{64394,3850,3},{64398,3838,3}, {64408,3827,3},{64409,3823,3},{64408,3815,3},{64411,3810,3},{64408,3793,3}, {64403,3787,3},{64394,3785,3},{64388,3782,3},{64384,3782,3},{64381,3780,3}, {64378,3770,3},{64371,3765,3},{64373,3758,3},{64369,3753,3},{64363,3745,3}, {64364,3740,3},{64368,3735,3},{64366,3728,3},{64369,3713,3},{64373,3708,3}, {64379,3703,3},{64378,3700,3},{64376,3690,3},{64379,3687,3},{64379,3683,3}, {64369,3673,3},{64366,3668,3},{64364,3668,3},{64364,3660,3},{64363,3655,3}, {64366,3650,3},{64368,3648,3},{64368,3638,3},{64366,3637,3},{64366,3618,3}, {64369,3617,3},{64376,3617,3},{64379,3613,3},{64384,3603,3},{64386,3597,3}, {64389,3597,3},{64393,3595,3},{64393,3590,3},{64394,3583,3},{64394,3582,3}, {64388,3577,3},{64388,3570,3},{64384,3570,3},{64379,3567,3},{64378,3565,3}, {64376,3562,3},{64376,3557,3},{64376,3553,3},{64374,3553,3},{64378,3550,3}, {64376,3548,3},{64376,3543,3},{64379,3542,3},{64379,3495,3},{65263,2902,131}, {65266,2898,3},{65268,2893,3},{65271,2888,3},{65279,2888,3},{65284,2885,3}, {65288,2888,3},{65291,2887,3},{65296,2890,3},{65298,2898,3},{65299,2900,3}, {65306,2902,3},{65306,2903,3},{65299,2907,3},{65298,2905,3},{65296,2905,3}, {65304,2908,3},{65304,2910,3},{65308,2912,3},{65303,2912,3},{65309,2915,3}, {65311,2917,3},{65309,2918,3},{65311,2920,3},{65313,2918,3},{65316,2918,3}, {65316,2922,3},{65319,2920,3},{65321,2923,3},{65319,2928,3},{65321,2927,3}, {65323,2925,3},{65326,2925,3},{65328,2927,3},{65324,2927,3},{65323,2927,3}, {65329,2928,3},{65326,2932,3},{65329,2932,3},{65329,2933,3},{65333,2933,3}, {65331,2937,3},{65333,2937,3},{65336,2933,3},{65338,2935,3},{65338,2933,3}, {65343,2932,3},{65343,2930,3},{65346,2928,3},{65353,2928,3},{65358,2927,3}, {65363,2927,3},{65363,2925,3},{65366,2925,3},{65368,2922,3},{65373,2927,3}, {65376,2932,3},{65384,2937,3},{65386,2945,3},{65391,2950,3},{65398,2960,3}, {65398,2968,3},{65401,2973,3},{65401,2977,3},{65399,2980,3},{65401,2980,3}, {65404,2983,3},{65403,2985,3},{65398,2988,3},{65391,2990,3},{65388,2993,3}, {65389,2998,3},{65393,3003,3},{65393,3005,3},{65396,3007,3},{65399,3008,3}, {65399,3013,3},{65403,3017,3},{65408,3018,3},{65409,3023,3},{65413,3025,3}, {65414,3028,3},{65421,3032,3},{65423,3035,3},{65429,3037,3},{65429,3048,3}, {65426,3045,3},{65423,3048,3},{65419,3047,3},{65419,3052,3},{65414,3052,3}, {65409,3055,3},{65403,3057,3},{65401,3060,3},{65398,3063,3},{65398,3068,3}, {65393,3073,3},{65384,3075,3},{65369,3083,3},{65366,3082,3},{65356,3083,3}, {65343,3082,3},{65328,3090,3},{65318,3085,3},{65306,3085,3},{65301,3083,3}, {65298,3078,3},{65301,3070,3},{65296,3065,3},{65298,3058,3},{65296,3057,3}, {65298,3050,3},{65301,3047,3},{65306,3045,3},{65304,3042,3},{65306,3038,3}, {65303,3035,3},{65301,3028,3},{65303,3022,3},{65299,3022,3},{65293,3015,3}, {65294,3010,3},{65303,3002,3},{65303,2998,3},{65304,2995,3},{65299,2993,3}, {65288,2995,3},{65284,2992,3},{65271,2992,3},{65261,2987,3},{65261,2985,3}, {65259,2982,3},{65259,2977,3},{65256,2973,3},{65256,2970,3},{65258,2963,3}, {65256,2960,3},{65256,2957,3},{65253,2953,3},{65256,2945,3},{65253,2937,3}, {65256,2935,3},{65259,2933,3},{65264,2935,3},{65268,2933,3},{65271,2933,3}, {65274,2918,3},{65278,2913,3},{65276,2907,3},{65269,2905,3},{65266,2905,3}, {65263,2902,3},{65091,2965,131},{65093,2965,3},{65094,2967,3},{65098,2965,3}, {65101,2960,3},{65111,2955,3},{65116,2953,3},{65119,2950,3},{65126,2948,3}, {65134,2943,3},{65139,2943,3},{65146,2938,3},{65154,2937,3},{65159,2933,3}, {65178,2935,3},{65183,2933,3},{65198,2935,3},{65201,2932,3},{65203,2920,3}, {65206,2920,3},{65209,2923,3},{65213,2922,3},{65214,2922,3},{65221,2922,3}, {65224,2923,3},{65229,2923,3},{65234,2922,3},{65234,2918,3},{65236,2915,3}, {65239,2913,3},{65244,2908,3},{65248,2908,3},{65249,2905,3},{65254,2905,3}, {65254,2898,3},{65259,2898,3},{65263,2902,3},{65266,2905,3},{65269,2905,3}, {65276,2907,3},{65278,2913,3},{65274,2918,3},{65271,2933,3},{65268,2933,3}, {65264,2935,3},{65259,2933,3},{65256,2935,3},{65253,2937,3},{65256,2945,3}, {65253,2953,3},{65256,2957,3},{65256,2960,3},{65258,2963,3},{65256,2970,3}, {65256,2973,3},{65259,2977,3},{65259,2982,3},{65261,2985,3},{65261,2987,3}, {65271,2992,3},{65284,2992,3},{65288,2995,3},{65299,2993,3},{65304,2995,3}, {65303,2998,3},{65303,3002,3},{65294,3010,3},{65293,3015,3},{65299,3022,3}, {65303,3022,3},{65301,3028,3},{65303,3035,3},{65306,3038,3},{65304,3042,3}, {65306,3045,3},{65301,3047,3},{65298,3050,3},{65296,3057,3},{65291,3052,3}, {65278,3048,3},{65271,3043,3},{65268,3043,3},{65268,3045,3},{65271,3052,3}, {65266,3048,3},{65264,3047,3},{65261,3043,3},{65258,3045,3},{65256,3043,3}, {65251,3042,3},{65249,3043,3},{65246,3045,3},{65246,3047,3},{65241,3048,3}, {65241,3050,3},{65246,3057,3},{65241,3065,3},{65238,3067,3},{65238,3075,3}, {65238,3085,3},{65231,3080,3},{65228,3083,3},{65224,3083,3},{65221,3085,3}, {65216,3085,3},{65214,3082,3},{65211,3083,3},{65206,3077,3},{65208,3073,3}, {65206,3073,3},{65203,3065,3},{65199,3062,3},{65198,3067,3},{65194,3067,3}, {65191,3063,3},{65188,3053,3},{65184,3052,3},{65186,3048,3},{65181,3045,3}, {65174,3045,3},{65166,3040,3},{65158,3040,3},{65159,3035,3},{65158,3032,3}, {65151,3030,3},{65143,3023,3},{65134,3022,3},{65128,3017,3},{65123,3013,3}, {65119,3007,3},{65113,3005,3},{65109,3003,3},{65106,2997,3},{65103,2993,3}, {65099,2985,3},{65099,2982,3},{65096,2980,3},{65094,2977,3},{65089,2975,3}, {65091,2967,3},{65091,2965,3},{62853,3213,131},{62886,3213,3},{62896,3207,3}, {62909,3207,3},{62919,3210,3},{62933,3207,3},{62934,3208,3},{62938,3200,3}, {62941,3197,3},{62954,3192,3},{62969,3198,3},{62971,3202,3},{62983,3200,3}, {62984,3198,3},{62994,3198,3},{62998,3202,3},{63033,3202,3},{63069,3200,3}, {63089,3202,3},{63104,3197,3},{63119,3188,3},{63143,3188,3},{63151,3177,3}, {63168,3168,3},{63174,3168,3},{63188,3155,3},{63194,3153,3},{63199,3155,3}, {63206,3155,3},{63211,3155,3},{63218,3157,3},{63223,3155,3},{63228,3152,3}, {63234,3150,3},{63239,3148,3},{63244,3147,3},{63249,3145,3},{63256,3143,3}, {63261,3142,3},{63266,3140,3},{63271,3138,3},{63278,3137,3},{63283,3133,3}, {63288,3132,3},{63294,3130,3},{63298,3135,3},{63303,3140,3},{63306,3145,3}, {63311,3150,3},{63314,3153,3},{63319,3158,3},{63323,3162,3},{63328,3167,3}, {63333,3170,3},{63336,3175,3},{63341,3178,3},{63344,3183,3},{63349,3187,3}, {63353,3192,3},{63358,3195,3},{63363,3200,3},{63366,3203,3},{63371,3208,3}, {63374,3212,3},{63379,3217,3},{63384,3220,3},{63388,3225,3},{63393,3228,3}, {63396,3233,3},{63401,3237,3},{63404,3242,3},{63401,3250,3},{63416,3238,3}, {63419,3240,3},{63423,3237,3},{63436,3248,3},{63444,3252,3},{63469,3248,3}, {63476,3250,3},{63481,3255,3},{63481,3267,3},{63494,3275,3},{63501,3282,3}, {63504,3283,3},{63509,3287,3},{63513,3288,3},{63518,3287,3},{63519,3290,3}, {63526,3290,3},{63528,3295,3},{63533,3295,3},{63533,3303,3},{63543,3302,3}, {63549,3303,3},{63554,3303,3},{63558,3307,3},{63563,3297,3},{63568,3298,3}, {63571,3297,3},{63568,3292,3},{63566,3292,3},{63568,3285,3},{63571,3283,3}, {63573,3285,3},{63586,3285,3},{63589,3283,3},{63588,3280,3},{63589,3278,3}, {63599,3278,3},{63608,3285,3},{63614,3285,3},{63626,3288,3},{63629,3285,3}, {63634,3283,3},{63634,3272,3},{63641,3270,3},{63644,3273,3},{63644,3272,3}, {63653,3270,3},{63658,3282,3},{63658,3290,3},{63659,3292,3},{63668,3295,3}, {63679,3288,3},{63683,3288,3},{63689,3302,3},{63691,3302,3},{63696,3300,3}, {63694,3302,3},{63698,3303,3},{63699,3305,3},{63701,3307,3},{63711,3297,3}, {63718,3300,3},{63731,3295,3},{63736,3297,3},{63738,3295,3},{63739,3297,3}, {63743,3297,3},{63748,3295,3},{63754,3297,3},{63756,3302,3},{63761,3303,3}, {63763,3302,3},{63774,3305,3},{63778,3303,3},{63781,3297,3},{63786,3295,3}, {63789,3298,3},{63801,3305,3},{63806,3300,3},{63821,3297,3},{63843,3285,3}, {63851,3293,3},{63864,3298,3},{63866,3293,3},{63864,3290,3},{63864,3277,3}, {63868,3270,3},{63876,3270,3},{63889,3238,3},{63893,3225,3},{63891,3207,3}, {63894,3190,3},{63901,3190,3},{63904,3182,3},{63906,3182,3},{63914,3172,3}, {63916,3155,3},{63918,3152,3},{63919,3148,3},{63919,3143,3},{63921,3142,3}, {63921,3140,3},{63923,3140,3},{63926,3135,3},{63929,3133,3},{63933,3132,3}, {63934,3128,3},{63936,3113,3},{63934,3110,3},{63934,3107,3},{63929,3102,3}, {63929,3100,3},{63931,3098,3},{63936,3093,3},{63936,3085,3},{63936,3080,3}, {63936,3075,3},{63936,3070,3},{63936,3063,3},{63936,3058,3},{63936,3053,3}, {63936,3048,3},{63936,3042,3},{63941,3042,3},{63946,3042,3},{63951,3042,3}, {63956,3042,3},{63963,3042,3},{63968,3042,3},{63973,3042,3},{63978,3038,3}, {63981,3035,3},{63988,3038,3},{63991,3037,3},{64003,3037,3},{64009,3028,3}, {64014,3025,3},{64026,3022,3},{64038,3022,3},{64038,3025,3},{64039,3030,3}, {64039,3035,3},{64044,3043,3},{64048,3050,3},{64049,3055,3},{64051,3060,3}, {64053,3067,3},{64054,3072,3},{64058,3077,3},{64061,3087,3},{64074,3148,3}, {64086,3170,3},{64088,3182,3},{64093,3192,3},{64096,3205,3},{64101,3213,3}, {64106,3237,3},{64108,3245,3},{64109,3250,3},{64111,3255,3},{64113,3262,3}, {64116,3267,3},{64118,3272,3},{64119,3278,3},{64121,3283,3},{64123,3288,3}, {64124,3295,3},{64128,3300,3},{64129,3305,3},{64131,3312,3},{64133,3317,3}, {64134,3322,3},{64129,3330,3},{64121,3330,3},{64114,3335,3},{64114,3338,3}, {64094,3348,3},{64093,3355,3},{64088,3357,3},{64086,3362,3},{64079,3363,3}, {64076,3368,3},{64084,3370,3},{64088,3373,3},{64083,3382,3},{64088,3393,3}, {64086,3407,3},{64089,3412,3},{64091,3418,3},{64089,3422,3},{64094,3437,3}, {64093,3440,3},{64081,3447,3},{64078,3453,3},{64069,3455,3},{64064,3455,3}, {64054,3458,3},{64046,3458,3},{64036,3462,3},{64021,3458,3},{64011,3462,3}, {64004,3458,3},{64001,3453,3},{63994,3452,3},{63991,3447,3},{63986,3445,3}, {63974,3445,3},{63966,3442,3},{63964,3438,3},{63961,3437,3},{63958,3432,3}, {63953,3427,3},{63944,3425,3},{63941,3433,3},{63929,3443,3},{63926,3443,3}, {63923,3440,3},{63916,3440,3},{63908,3445,3},{63904,3457,3},{63896,3460,3}, {63891,3465,3},{63886,3468,3},{63883,3477,3},{63878,3478,3},{63874,3483,3}, {63868,3487,3},{63866,3492,3},{63863,3493,3},{63861,3498,3},{63856,3500,3}, {63854,3503,3},{63854,3512,3},{63853,3513,3},{63841,3513,3},{63834,3505,3}, {63831,3505,3},{63828,3510,3},{63823,3508,3},{63823,3528,3},{63826,3530,3}, {63829,3530,3},{63833,3530,3},{63838,3532,3},{63841,3527,3},{63854,3530,3}, {63858,3528,3},{63866,3528,3},{63871,3523,3},{63874,3517,3},{63881,3513,3}, {63889,3525,3},{63896,3525,3},{63899,3528,3},{63903,3527,3},{63913,3528,3}, {63923,3540,3},{63924,3543,3},{63923,3548,3},{63919,3550,3},{63919,3553,3}, {63923,3555,3},{63923,3560,3},{63924,3567,3},{63924,3572,3},{63929,3578,3}, {63934,3582,3},{63941,3582,3},{63944,3583,3},{63994,3587,3},{64018,3580,3}, {64048,3592,3},{64048,3588,3},{64071,3588,3},{64109,3555,3},{64121,3548,3}, {64151,3520,3},{64168,3510,3},{64186,3487,3},{64188,3487,3},{64194,3485,3}, {64198,3487,3},{64204,3478,3},{64214,3482,3},{64219,3480,3},{64228,3482,3}, {64236,3478,3},{64241,3475,3},{64249,3477,3},{64253,3478,3},{64256,3478,3}, {64259,3480,3},{64261,3482,3},{64266,3482,3},{64266,3480,3},{64271,3480,3}, {64276,3477,3},{64283,3475,3},{64288,3470,3},{64293,3470,3},{64296,3470,3}, {64306,3470,3},{64309,3472,3},{64318,3470,3},{64324,3477,3},{64326,3480,3}, {64329,3482,3},{64331,3487,3},{64333,3488,3},{64341,3490,3},{64349,3493,3}, {64356,3497,3},{64364,3495,3},{64369,3497,3},{64379,3495,3},{64379,3542,3}, {64376,3543,3},{64376,3548,3},{64378,3550,3},{64374,3553,3},{64376,3553,3}, {64376,3557,3},{64376,3562,3},{64378,3565,3},{64379,3567,3},{64384,3570,3}, {64388,3570,3},{64388,3577,3},{64394,3582,3},{64394,3583,3},{64393,3590,3}, {64393,3595,3},{64389,3597,3},{64386,3597,3},{64384,3603,3},{64379,3613,3}, {64376,3617,3},{64369,3617,3},{64366,3618,3},{64366,3637,3},{64368,3638,3}, {64368,3648,3},{64366,3650,3},{64363,3655,3},{64364,3660,3},{64364,3668,3}, {64366,3668,3},{64369,3673,3},{64379,3683,3},{64379,3687,3},{64376,3690,3}, {64378,3700,3},{64379,3703,3},{64373,3708,3},{64369,3713,3},{64366,3728,3}, {64368,3735,3},{64364,3740,3},{64363,3745,3},{64369,3753,3},{64373,3758,3}, {64371,3765,3},{64378,3770,3},{64381,3780,3},{64384,3782,3},{64388,3782,3}, {64394,3785,3},{64403,3787,3},{64408,3793,3},{64411,3810,3},{64408,3815,3}, {64409,3823,3},{64408,3827,3},{64398,3838,3},{64394,3850,3},{64399,3853,3}, {64403,3860,3},{64408,3865,3},{64409,3870,3},{64409,3877,3},{64419,3890,3}, {64419,3903,3},{64421,3913,3},{64419,3920,3},{64419,3927,3},{64426,3935,3}, {64429,3943,3},{64436,3952,3},{64441,3963,3},{64441,3968,3},{64444,3977,3}, {64453,3990,3},{64456,4000,3},{64459,4003,3},{64469,4017,3},{64476,4023,3}, {64479,4033,3},{64486,4042,3},{64488,4043,3},{64489,4045,3},{64488,4052,3}, {64488,4053,3},{64483,4057,3},{64481,4055,3},{64481,4052,3},{64478,4053,3}, {64479,4055,3},{64478,4060,3},{64471,4058,3},{64468,4065,3},{64466,4063,3}, {64468,4058,3},{64459,4048,3},{64456,4048,3},{64458,4052,3},{64453,4062,3}, {64449,4062,3},{64446,4053,3},{64441,4050,3},{64433,4050,3},{64433,4053,3}, {64434,4053,3},{64434,4057,3},{64433,4057,3},{64421,4050,3},{64416,4050,3}, {64411,4043,3},{64404,4038,3},{64404,4035,3},{64399,4037,3},{64401,4038,3}, {64396,4043,3},{64398,4047,3},{64394,4048,3},{64393,4047,3},{64384,4045,3}, {64381,4042,3},{64376,4045,3},{64371,4042,3},{64369,4045,3},{64363,4045,3}, {64361,4047,3},{64354,4047,3},{64353,4048,3},{64353,4052,3},{64344,4048,3}, {64336,4053,3},{64333,4052,3},{64328,4052,3},{64323,4050,3},{64316,4052,3}, {64311,4050,3},{64313,4047,3},{64309,4045,3},{64311,4047,3},{64308,4050,3}, {64304,4052,3},{64298,4050,3},{64298,4055,3},{64296,4057,3},{64293,4052,3}, {64286,4047,3},{64283,4057,3},{64276,4057,3},{64273,4058,3},{64273,4062,3}, {64271,4062,3},{64269,4062,3},{64271,4057,3},{64266,4057,3},{64264,4062,3}, {64263,4062,3},{64259,4065,3},{64258,4065,3},{64256,4062,3},{64256,4058,3}, {64258,4057,3},{64258,4055,3},{64254,4057,3},{64254,4052,3},{64251,4055,3}, {64246,4053,3},{64244,4052,3},{64248,4052,3},{64248,4048,3},{64243,4042,3}, {64239,4042,3},{64234,4047,3},{64233,4048,3},{64234,4052,3},{64236,4053,3}, {64238,4053,3},{64239,4050,3},{64239,4058,3},{64238,4060,3},{64228,4057,3}, {64219,4057,3},{64209,4057,3},{64206,4053,3},{64204,4053,3},{64208,4057,3}, {64199,4057,3},{64201,4058,3},{64198,4058,3},{64193,4055,3},{64186,4053,3}, {64184,4053,3},{64178,4060,3},{64176,4057,3},{64171,4053,3},{64166,4055,3}, {64164,4057,3},{64146,4060,3},{64141,4063,3},{64134,4065,3},{64128,4065,3}, {64128,4060,3},{64123,4062,3},{64119,4053,3},{64114,4057,3},{64113,4057,3}, {64113,4058,3},{64114,4058,3},{64114,4060,3},{64113,4058,3},{64111,4060,3}, {64109,4058,3},{64109,4060,3},{64109,4062,3},{64114,4063,3},{64118,4070,3}, {64116,4072,3},{64111,4072,3},{64108,4075,3},{64103,4073,3},{64099,4067,3}, {64103,4063,3},{64091,4065,3},{64091,4063,3},{64089,4063,3},{64089,4065,3}, {64086,4062,3},{64086,4063,3},{64079,4063,3},{64083,4067,3},{64093,4068,3}, {64096,4077,3},{64096,4080,3},{64091,4083,3},{64086,4083,3},{64084,4077,3}, {64081,4077,3},{64081,4078,3},{64084,4080,3},{64084,4083,3},{64081,4083,3}, {64074,4080,3},{64066,4085,3},{64058,4083,3},{64056,4083,3},{64053,4078,3}, {64048,4073,3},{64046,4067,3},{64049,4065,3},{64049,4063,3},{64044,4067,3}, {64043,4068,3},{64044,4070,3},{64043,4077,3},{64036,4078,3},{64036,4070,3}, {64039,4067,3},{64036,4065,3},{64033,4070,3},{64028,4072,3},{64028,4063,3}, {64023,4060,3},{64023,4053,3},{64018,4052,3},{64016,4058,3},{64021,4062,3}, {64018,4067,3},{64011,4068,3},{64008,4067,3},{64001,4062,3},{63998,4062,3}, {63991,4057,3},{63988,4057,3},{63988,4058,3},{63984,4057,3},{63983,4053,3}, {63983,4050,3},{63979,4048,3},{63974,4043,3},{63964,4037,3},{63951,4023,3}, {63944,4018,3},{63941,4012,3},{63938,4012,3},{63936,4007,3},{63934,4008,3}, {63939,4013,3},{63936,4013,3},{63928,4010,3},{63924,4007,3},{63919,4003,3}, {63913,3998,3},{63913,3988,3},{63906,3978,3},{63894,3982,3},{63893,3985,3}, {63889,3980,3},{63891,3978,3},{63891,3975,3},{63889,3977,3},{63888,3972,3}, {63883,3970,3},{63881,3967,3},{63861,3930,3},{63853,3920,3},{63849,3917,3}, {63848,3915,3},{63849,3913,3},{63846,3913,3},{63846,3912,3},{63844,3908,3}, {63843,3908,3},{63843,3913,3},{63836,3908,3},{63836,3898,3},{63833,3890,3}, {63829,3872,3},{63833,3867,3},{63831,3868,3},{63829,3867,3},{63829,3868,3}, {63828,3868,3},{63826,3860,3},{63829,3858,3},{63824,3857,3},{63823,3853,3}, {63826,3852,3},{63824,3850,3},{63823,3850,3},{63823,3852,3},{63821,3850,3}, {63813,3825,3},{63806,3815,3},{63809,3813,3},{63816,3813,3},{63818,3812,3}, {63814,3812,3},{63818,3808,3},{63811,3813,3},{63808,3812,3},{63808,3813,3}, {63804,3812,3},{63799,3792,3},{63793,3778,3},{63789,3773,3},{63789,3770,3}, {63791,3772,3},{63791,3770,3},{63788,3768,3},{63784,3762,3},{63783,3757,3}, {63781,3755,3},{63776,3743,3},{63769,3738,3},{63771,3735,3},{63768,3733,3}, {63768,3728,3},{63764,3728,3},{63763,3723,3},{63761,3722,3},{63763,3718,3}, {63759,3720,3},{63748,3708,3},{63734,3698,3},{63736,3698,3},{63741,3692,3}, {63748,3690,3},{63748,3683,3},{63746,3682,3},{63748,3687,3},{63734,3690,3}, {63733,3695,3},{63729,3697,3},{63719,3690,3},{63716,3688,3},{63718,3683,3}, {63716,3680,3},{63713,3678,3},{63716,3685,3},{63706,3678,3},{63698,3668,3}, {63686,3657,3},{63686,3655,3},{63683,3655,3},{63683,3652,3},{63683,3650,3}, {63681,3652,3},{63681,3647,3},{63678,3648,3},{63673,3643,3},{63666,3642,3}, {63664,3640,3},{63666,3640,3},{63668,3638,3},{63666,3638,3},{63661,3638,3}, {63663,3640,3},{63659,3642,3},{63656,3640,3},{63656,3635,3},{63658,3628,3}, {63666,3623,3},{63659,3623,3},{63653,3627,3},{63649,3625,3},{63646,3627,3}, {63648,3622,3},{63646,3613,3},{63651,3612,3},{63654,3613,3},{63656,3612,3}, {63654,3610,3},{63644,3603,3},{63643,3598,3},{63648,3598,3},{63641,3595,3}, {63639,3590,3},{63641,3588,3},{63641,3585,3},{63638,3585,3},{63639,3587,3}, {63638,3588,3},{63631,3578,3},{63624,3570,3},{63624,3567,3},{63619,3563,3}, {63619,3567,3},{63611,3557,3},{63611,3558,3},{63609,3558,3},{63604,3553,3}, {63603,3550,3},{63594,3545,3},{63584,3535,3},{63576,3523,3},{63564,3512,3}, {63564,3510,3},{63564,3508,3},{63556,3500,3},{63556,3497,3},{63549,3488,3}, {63551,3483,3},{63558,3482,3},{63561,3475,3},{63563,3468,3},{63574,3462,3}, {63574,3457,3},{63573,3462,3},{63559,3467,3},{63558,3473,3},{63549,3478,3}, {63548,3477,3},{63548,3473,3},{63546,3468,3},{63546,3473,3},{63544,3475,3}, {63539,3475,3},{63536,3477,3},{63533,3475,3},{63521,3477,3},{63518,3477,3}, {63519,3470,3},{63518,3468,3},{63513,3473,3},{63503,3470,3},{63501,3467,3}, {63501,3470,3},{63496,3470,3},{63494,3467,3},{63493,3465,3},{63491,3470,3}, {63488,3472,3},{63483,3467,3},{63484,3473,3},{63481,3473,3},{63481,3477,3}, {63478,3477,3},{63478,3482,3},{63473,3483,3},{63471,3485,3},{63469,3485,3}, {63471,3488,3},{63469,3490,3},{63466,3487,3},{63464,3487,3},{63466,3488,3}, {63466,3495,3},{63463,3498,3},{63458,3500,3},{63458,3502,3},{63456,3502,3}, {63454,3500,3},{63448,3505,3},{63443,3503,3},{63441,3503,3},{63444,3507,3}, {63443,3512,3},{63439,3510,3},{63439,3512,3},{63436,3512,3},{63434,3507,3}, {63433,3508,3},{63428,3508,3},{63426,3505,3},{63428,3503,3},{63424,3502,3}, {63423,3507,3},{63419,3505,3},{63416,3507,3},{63413,3508,3},{63411,3505,3}, {63409,3507,3},{63404,3507,3},{63404,3508,3},{63418,3513,3},{63404,3512,3}, {63398,3512,3},{63384,3518,3},{63378,3525,3},{63371,3527,3},{63354,3528,3}, {63344,3532,3},{63339,3532,3},{63336,3533,3},{63326,3533,3},{63318,3533,3}, {63311,3533,3},{63303,3530,3},{63296,3530,3},{63286,3540,3},{63293,3540,3}, {63294,3543,3},{63301,3540,3},{63309,3540,3},{63313,3540,3},{63314,3542,3}, {63311,3543,3},{63313,3545,3},{63318,3542,3},{63324,3545,3},{63326,3547,3}, {63326,3550,3},{63304,3552,3},{63314,3553,3},{63318,3555,3},{63294,3553,3}, {63279,3550,3},{63268,3548,3},{63244,3552,3},{63241,3553,3},{63244,3555,3}, {63243,3558,3},{63246,3558,3},{63244,3562,3},{63218,3548,3},{63208,3548,3}, {63184,3542,3},{63168,3542,3},{63163,3542,3},{63161,3538,3},{63163,3538,3}, {63166,3538,3},{63168,3537,3},{63168,3533,3},{63166,3537,3},{63164,3537,3}, {63151,3535,3},{63146,3533,3},{63144,3535,3},{63141,3533,3},{63139,3535,3}, {63144,3538,3},{63149,3537,3},{63153,3538,3},{63148,3547,3},{63149,3547,3}, {63151,3548,3},{63156,3548,3},{63158,3548,3},{63156,3553,3},{63149,3555,3}, {63131,3548,3},{63126,3550,3},{63109,3538,3},{63088,3520,3},{63083,3518,3}, {63073,3505,3},{63061,3478,3},{63058,3470,3},{63056,3465,3},{63054,3460,3}, {63053,3453,3},{63051,3448,3},{63049,3447,3},{63048,3442,3},{63046,3435,3}, {63043,3430,3},{63041,3425,3},{63041,3420,3},{63039,3413,3},{63036,3408,3}, {63034,3403,3},{63033,3398,3},{63033,3392,3},{63029,3387,3},{63028,3382,3}, {63026,3375,3},{63024,3372,3},{63006,3330,3},{63006,3327,3},{63009,3333,3}, {63011,3333,3},{63008,3325,3},{63006,3322,3},{63004,3322,3},{63004,3323,3}, {63003,3323,3},{62994,3307,3},{62983,3288,3},{62976,3282,3},{62968,3277,3}, {62958,3273,3},{62949,3275,3},{62956,3273,3},{62953,3270,3},{62948,3268,3}, {62939,3260,3},{62938,3258,3},{62941,3252,3},{62938,3247,3},{62934,3250,3}, {62938,3250,3},{62939,3252,3},{62938,3255,3},{62926,3265,3},{62918,3268,3}, {62918,3270,3},{62916,3275,3},{62914,3278,3},{62909,3280,3},{62906,3283,3}, {62908,3288,3},{62916,3287,3},{62924,3290,3},{62928,3295,3},{62906,3292,3}, {62884,3292,3},{62871,3290,3},{62863,3290,3},{62854,3288,3},{62851,3288,3}, {62849,3233,3},{62853,3223,3},{62851,3218,3},{62853,3213,3},{64134,3322,131}, {64144,3317,3},{64139,3313,3},{64138,3308,3},{64131,3305,3},{64131,3302,3}, {64134,3300,3},{64141,3300,3},{64143,3297,3},{64146,3295,3},{64148,3292,3}, {64153,3292,3},{64154,3288,3},{64154,3282,3},{64158,3277,3},{64159,3277,3}, {64164,3285,3},{64166,3285,3},{64171,3278,3},{64171,3272,3},{64174,3268,3}, {64178,3272,3},{64179,3275,3},{64184,3285,3},{64189,3287,3},{64189,3288,3}, {64196,3292,3},{64208,3295,3},{64216,3302,3},{64221,3298,3},{64226,3298,3}, {64233,3300,3},{64246,3303,3},{64248,3303,3},{64251,3297,3},{64259,3297,3}, {64276,3305,3},{64274,3315,3},{64273,3318,3},{64276,3323,3},{64281,3330,3}, {64283,3338,3},{64288,3345,3},{64293,3348,3},{64298,3353,3},{64301,3352,3}, {64303,3347,3},{64301,3338,3},{64311,3333,3},{64316,3332,3},{64323,3327,3}, {64329,3328,3},{64338,3333,3},{64343,3335,3},{64348,3333,3},{64353,3333,3}, {64374,3333,3},{64376,3330,3},{64378,3325,3},{64381,3323,3},{64383,3327,3}, {64394,3325,3},{64391,3328,3},{64394,3330,3},{64398,3330,3},{64398,3332,3}, {64401,3332,3},{64409,3338,3},{64419,3342,3},{64421,3340,3},{64424,3338,3}, {64426,3337,3},{64431,3335,3},{64434,3332,3},{64443,3330,3},{64448,3327,3}, {64451,3328,3},{64449,3332,3},{64451,3333,3},{64456,3337,3},{64456,3340,3}, {64456,3342,3},{64456,3347,3},{64458,3348,3},{64458,3352,3},{64461,3352,3}, {64461,3353,3},{64466,3355,3},{64471,3362,3},{64471,3363,3},{64474,3363,3}, {64476,3367,3},{64479,3370,3},{64481,3368,3},{64484,3368,3},{64486,3365,3}, {64491,3363,3},{64496,3357,3},{64501,3355,3},{64514,3355,3},{64521,3347,3}, {64526,3340,3},{64528,3335,3},{64531,3332,3},{64543,3337,3},{64544,3338,3}, {64554,3337,3},{64554,3332,3},{64556,3330,3},{64566,3325,3},{64573,3323,3}, {64576,3320,3},{64576,3313,3},{64578,3312,3},{64576,3312,3},{64569,3310,3}, {64571,3308,3},{64574,3307,3},{64573,3302,3},{64573,3300,3},{64579,3300,3}, {64584,3302,3},{64588,3298,3},{64588,3295,3},{64596,3293,3},{64599,3300,3}, {64594,3303,3},{64586,3313,3},{64586,3318,3},{64584,3320,3},{64588,3323,3}, {64586,3327,3},{64588,3332,3},{64583,3340,3},{64574,3343,3},{64574,3353,3}, {64578,3358,3},{64574,3365,3},{64574,3370,3},{64578,3373,3},{64578,3375,3}, {64574,3380,3},{64568,3392,3},{64566,3392,3},{64563,3390,3},{64553,3390,3}, {64548,3393,3},{64546,3395,3},{64539,3395,3},{64538,3398,3},{64531,3400,3}, {64523,3402,3},{64521,3403,3},{64514,3408,3},{64509,3415,3},{64508,3415,3}, {64504,3418,3},{64503,3422,3},{64496,3425,3},{64494,3427,3},{64494,3423,3}, {64491,3420,3},{64488,3420,3},{64484,3422,3},{64479,3417,3},{64476,3420,3}, {64466,3420,3},{64463,3423,3},{64456,3422,3},{64439,3425,3},{64434,3423,3}, {64426,3425,3},{64419,3422,3},{64416,3422,3},{64414,3423,3},{64408,3423,3}, {64406,3427,3},{64384,3428,3},{64381,3430,3},{64378,3430,3},{64371,3433,3}, {64368,3432,3},{64364,3432,3},{64363,3427,3},{64359,3425,3},{64354,3420,3}, {64348,3418,3},{64346,3418,3},{64341,3413,3},{64336,3410,3},{64331,3405,3}, {64329,3407,3},{64324,3407,3},{64321,3403,3},{64311,3400,3},{64303,3403,3}, {64299,3410,3},{64298,3408,3},{64298,3415,3},{64296,3417,3},{64286,3420,3}, {64279,3418,3},{64269,3420,3},{64264,3423,3},{64263,3428,3},{64253,3427,3}, {64249,3432,3},{64246,3430,3},{64243,3432,3},{64246,3433,3},{64241,3432,3}, {64234,3435,3},{64228,3433,3},{64209,3435,3},{64204,3432,3},{64199,3432,3}, {64179,3443,3},{64178,3447,3},{64179,3452,3},{64174,3455,3},{64166,3463,3}, {64164,3463,3},{64161,3462,3},{64158,3462,3},{64154,3458,3},{64151,3460,3}, {64146,3458,3},{64143,3455,3},{64138,3452,3},{64124,3457,3},{64123,3458,3}, {64116,3463,3},{64114,3470,3},{64108,3470,3},{64111,3480,3},{64113,3482,3}, {64116,3483,3},{64119,3482,3},{64123,3482,3},{64126,3487,3},{64133,3483,3}, {64136,3487,3},{64131,3493,3},{64128,3493,3},{64121,3495,3},{64119,3503,3}, {64118,3505,3},{64116,3508,3},{64111,3508,3},{64106,3512,3},{64106,3515,3}, {64101,3518,3},{64096,3523,3},{64098,3527,3},{64101,3528,3},{64109,3525,3}, {64111,3523,3},{64118,3522,3},{64126,3518,3},{64131,3518,3},{64141,3512,3}, {64151,3512,3},{64154,3508,3},{64163,3507,3},{64163,3490,3},{64164,3487,3}, {64169,3485,3},{64173,3485,3},{64183,3485,3},{64188,3487,3},{64186,3487,3}, {64168,3510,3},{64151,3520,3},{64121,3548,3},{64109,3555,3},{64071,3588,3}, {64048,3588,3},{64048,3592,3},{64018,3580,3},{63994,3587,3},{63944,3583,3}, {63941,3582,3},{63934,3582,3},{63929,3578,3},{63924,3572,3},{63924,3567,3}, {63923,3560,3},{63923,3555,3},{63919,3553,3},{63919,3550,3},{63923,3548,3}, {63924,3543,3},{63923,3540,3},{63913,3528,3},{63903,3527,3},{63899,3528,3}, {63896,3525,3},{63889,3525,3},{63881,3513,3},{63874,3517,3},{63871,3523,3}, {63866,3528,3},{63858,3528,3},{63854,3530,3},{63841,3527,3},{63838,3532,3}, {63833,3530,3},{63829,3530,3},{63826,3530,3},{63823,3528,3},{63823,3508,3}, {63828,3510,3},{63831,3505,3},{63834,3505,3},{63841,3513,3},{63853,3513,3}, {63854,3512,3},{63854,3503,3},{63856,3500,3},{63861,3498,3},{63863,3493,3}, {63866,3492,3},{63868,3487,3},{63874,3483,3},{63878,3478,3},{63883,3477,3}, {63886,3468,3},{63891,3465,3},{63896,3460,3},{63904,3457,3},{63908,3445,3}, {63916,3440,3},{63923,3440,3},{63926,3443,3},{63929,3443,3},{63941,3433,3}, {63944,3425,3},{63953,3427,3},{63958,3432,3},{63961,3437,3},{63964,3438,3}, {63966,3442,3},{63974,3445,3},{63986,3445,3},{63991,3447,3},{63994,3452,3}, {64001,3453,3},{64004,3458,3},{64011,3462,3},{64021,3458,3},{64036,3462,3}, {64046,3458,3},{64054,3458,3},{64064,3455,3},{64069,3455,3},{64078,3453,3}, {64081,3447,3},{64093,3440,3},{64094,3437,3},{64089,3422,3},{64091,3418,3}, {64089,3412,3},{64086,3407,3},{64088,3393,3},{64083,3382,3},{64088,3373,3}, {64084,3370,3},{64076,3368,3},{64079,3363,3},{64086,3362,3},{64088,3357,3}, {64093,3355,3},{64094,3348,3},{64114,3338,3},{64114,3335,3},{64121,3330,3}, {64129,3330,3},{64134,3322,3},{63294,3130,131},{63299,3127,3},{63299,3120,3}, {63304,3117,3},{63303,3108,3},{63304,3103,3},{63308,3090,3},{63306,3067,3}, {63303,3063,3},{63304,3058,3},{63304,3057,3},{63304,3048,3},{63303,3040,3}, {63301,3030,3},{63306,3025,3},{63306,3012,3},{63318,2993,3},{63318,2983,3}, {63323,2977,3},{63323,2967,3},{63324,2965,3},{63323,2963,3},{63321,2962,3}, {63323,2958,3},{63321,2955,3},{63318,2953,3},{63319,2947,3},{63318,2937,3}, {63324,2928,3},{63329,2925,3},{63328,2918,3},{63329,2912,3},{63333,2907,3}, {63343,2903,3},{63348,2903,3},{63353,2908,3},{63356,2907,3},{63359,2900,3}, {63361,2887,3},{63368,2868,3},{63371,2865,3},{63373,2857,3},{63369,2850,3}, {63378,2828,3},{63376,2822,3},{63378,2813,3},{63379,2802,3},{63384,2798,3}, {63386,2797,3},{63388,2798,3},{63389,2795,3},{63391,2797,3},{63401,2792,3}, {63404,2792,3},{63414,2783,3},{63419,2780,3},{63423,2773,3},{63429,2768,3}, {63438,2770,3},{63443,2768,3},{63449,2770,3},{63453,2772,3},{63461,2773,3}, {63476,2770,3},{63479,2772,3},{63484,2772,3},{63488,2770,3},{63488,2763,3}, {63489,2762,3},{63488,2757,3},{63489,2747,3},{63489,2733,3},{63486,2728,3}, {63511,2728,3},{63526,2722,3},{63529,2718,3},{63529,2713,3},{63534,2707,3}, {63536,2703,3},{63534,2698,3},{63536,2693,3},{63541,2682,3},{63543,2673,3}, {63548,2670,3},{63551,2662,3},{63558,2657,3},{63561,2652,3},{63563,2643,3}, {63569,2640,3},{63571,2633,3},{63574,2635,3},{63578,2633,3},{63579,2630,3}, {63579,2625,3},{63583,2617,3},{63608,2605,3},{63616,2603,3},{63626,2597,3}, {63629,2597,3},{63636,2598,3},{63641,2597,3},{63646,2595,3},{63653,2585,3}, {63656,2582,3},{63674,2578,3},{63679,2568,3},{63686,2563,3},{63688,2560,3}, {63696,2553,3},{63708,2548,3},{63723,2540,3},{63729,2532,3},{63744,2523,3}, {63749,2523,3},{63756,2527,3},{63751,2533,3},{63749,2552,3},{63751,2555,3}, {63753,2562,3},{63756,2568,3},{63753,2570,3},{63751,2575,3},{63748,2580,3}, {63744,2585,3},{63743,2583,3},{63738,2587,3},{63736,2597,3},{63738,2600,3}, {63738,2603,3},{63739,2603,3},{63739,2610,3},{63743,2610,3},{63744,2617,3}, {63748,2622,3},{63744,2623,3},{63743,2632,3},{63743,2640,3},{63736,2650,3}, {63736,2657,3},{63731,2660,3},{63728,2670,3},{63733,2677,3},{63734,2683,3}, {63736,2683,3},{63738,2688,3},{63739,2702,3},{63738,2703,3},{63738,2708,3}, {63741,2707,3},{63743,2710,3},{63744,2708,3},{63748,2713,3},{63749,2717,3}, {63753,2717,3},{63754,2715,3},{63758,2720,3},{63758,2723,3},{63761,2722,3}, {63763,2722,3},{63778,2737,3},{63778,2745,3},{63779,2747,3},{63781,2747,3}, {63779,2745,3},{63779,2743,3},{63781,2745,3},{63784,2747,3},{63786,2755,3}, {63791,2755,3},{63791,2757,3},{63788,2757,3},{63798,2762,3},{63799,2760,3}, {63803,2765,3},{63806,2765,3},{63808,2768,3},{63813,2765,3},{63811,2768,3}, {63813,2768,3},{63814,2772,3},{63816,2768,3},{63821,2780,3},{63819,2785,3}, {63823,2783,3},{63826,2792,3},{63831,2793,3},{63831,2797,3},{63833,2795,3}, {63833,2797,3},{63833,2800,3},{63831,2800,3},{63831,2803,3},{63828,2805,3}, {63831,2807,3},{63833,2810,3},{63836,2808,3},{63838,2812,3},{63836,2805,3}, {63838,2805,3},{63839,2807,3},{63843,2807,3},{63844,2812,3},{63846,2808,3}, {63851,2812,3},{63854,2818,3},{63856,2827,3},{63854,2827,3},{63854,2832,3}, {63858,2833,3},{63856,2835,3},{63861,2835,3},{63861,2837,3},{63859,2838,3}, {63856,2837,3},{63853,2838,3},{63851,2845,3},{63848,2845,3},{63846,2847,3}, {63851,2847,3},{63854,2843,3},{63854,2847,3},{63859,2848,3},{63861,2853,3}, {63863,2855,3},{63863,2858,3},{63864,2858,3},{63864,2863,3},{63866,2863,3}, {63868,2868,3},{63868,2870,3},{63864,2868,3},{63863,2872,3},{63859,2868,3}, {63854,2873,3},{63856,2880,3},{63859,2880,3},{63858,2883,3},{63859,2887,3}, {63864,2888,3},{63866,2885,3},{63868,2885,3},{63869,2888,3},{63868,2890,3}, {63864,2892,3},{63869,2893,3},{63869,2895,3},{63873,2893,3},{63874,2900,3}, {63876,2893,3},{63879,2895,3},{63878,2888,3},{63879,2883,3},{63879,2888,3}, {63883,2887,3},{63883,2870,3},{63884,2877,3},{63888,2882,3},{63896,2885,3}, {63906,2883,3},{63913,2887,3},{63919,2885,3},{63924,2887,3},{63931,2887,3}, {63939,2893,3},{63941,2897,3},{63941,2905,3},{63948,2908,3},{63949,2913,3}, {63958,2925,3},{63966,2943,3},{63966,2952,3},{63969,2957,3},{63969,2963,3}, {63971,2970,3},{63974,2983,3},{63973,2995,3},{63971,3000,3},{63973,3008,3}, {63973,3017,3},{63969,3022,3},{63973,3025,3},{63969,3035,3},{63973,3042,3}, {63968,3042,3},{63963,3042,3},{63956,3042,3},{63951,3042,3},{63946,3042,3}, {63941,3042,3},{63936,3042,3},{63936,3048,3},{63936,3053,3},{63936,3058,3}, {63936,3063,3},{63936,3070,3},{63936,3075,3},{63936,3080,3},{63936,3085,3}, {63936,3093,3},{63931,3098,3},{63929,3100,3},{63929,3102,3},{63934,3107,3}, {63934,3110,3},{63936,3113,3},{63934,3128,3},{63933,3132,3},{63929,3133,3}, {63926,3135,3},{63923,3140,3},{63921,3140,3},{63921,3142,3},{63919,3143,3}, {63919,3148,3},{63918,3152,3},{63916,3155,3},{63914,3172,3},{63906,3182,3}, {63904,3182,3},{63901,3190,3},{63894,3190,3},{63891,3207,3},{63893,3225,3}, {63889,3238,3},{63876,3270,3},{63868,3270,3},{63864,3277,3},{63864,3290,3}, {63866,3293,3},{63864,3298,3},{63851,3293,3},{63843,3285,3},{63821,3297,3}, {63806,3300,3},{63801,3305,3},{63789,3298,3},{63786,3295,3},{63781,3297,3}, {63778,3303,3},{63774,3305,3},{63763,3302,3},{63761,3303,3},{63756,3302,3}, {63754,3297,3},{63748,3295,3},{63743,3297,3},{63739,3297,3},{63738,3295,3}, {63736,3297,3},{63731,3295,3},{63718,3300,3},{63711,3297,3},{63701,3307,3}, {63699,3305,3},{63698,3303,3},{63694,3302,3},{63696,3300,3},{63691,3302,3}, {63689,3302,3},{63683,3288,3},{63679,3288,3},{63668,3295,3},{63659,3292,3}, {63658,3290,3},{63658,3282,3},{63653,3270,3},{63644,3272,3},{63644,3273,3}, {63641,3270,3},{63634,3272,3},{63634,3283,3},{63629,3285,3},{63626,3288,3}, {63614,3285,3},{63608,3285,3},{63599,3278,3},{63589,3278,3},{63588,3280,3}, {63589,3283,3},{63586,3285,3},{63573,3285,3},{63571,3283,3},{63568,3285,3}, {63566,3292,3},{63568,3292,3},{63571,3297,3},{63568,3298,3},{63563,3297,3}, {63558,3307,3},{63554,3303,3},{63549,3303,3},{63543,3302,3},{63533,3303,3}, {63533,3295,3},{63528,3295,3},{63526,3290,3},{63519,3290,3},{63518,3287,3}, {63513,3288,3},{63509,3287,3},{63504,3283,3},{63501,3282,3},{63494,3275,3}, {63481,3267,3},{63481,3255,3},{63476,3250,3},{63469,3248,3},{63444,3252,3}, {63436,3248,3},{63423,3237,3},{63419,3240,3},{63416,3238,3},{63401,3250,3}, {63404,3242,3},{63401,3237,3},{63396,3233,3},{63393,3228,3},{63388,3225,3}, {63384,3220,3},{63379,3217,3},{63374,3212,3},{63371,3208,3},{63366,3203,3}, {63363,3200,3},{63358,3195,3},{63353,3192,3},{63349,3187,3},{63344,3183,3}, {63341,3178,3},{63336,3175,3},{63333,3170,3},{63328,3167,3},{63323,3162,3}, {63319,3158,3},{63314,3153,3},{63311,3150,3},{63306,3145,3},{63303,3140,3}, {63298,3135,3},{63294,3130,3},{63756,2527,131},{63759,2523,3},{63759,2518,3}, {63768,2513,3},{63766,2512,3},{63768,2510,3},{63771,2510,3},{63774,2507,3}, {63774,2503,3},{63778,2503,3},{63778,2498,3},{63781,2497,3},{63784,2487,3}, {63784,2478,3},{63784,2477,3},{63786,2467,3},{63786,2463,3},{63783,2458,3}, {63783,2457,3},{63788,2445,3},{63789,2437,3},{63788,2433,3},{63788,2430,3}, {63788,2425,3},{63788,2423,3},{63788,2418,3},{63786,2412,3},{63784,2407,3}, {63784,2400,3},{63783,2395,3},{63781,2390,3},{63781,2383,3},{63779,2378,3}, {63778,2372,3},{63778,2367,3},{63776,2360,3},{63774,2355,3},{63773,2348,3}, {63788,2320,3},{63803,2307,3},{63833,2273,3},{63859,2248,3},{63874,2230,3}, {63876,2227,3},{63879,2225,3},{63879,2222,3},{63888,2213,3},{63903,2212,3}, {63908,2208,3},{63913,2207,3},{63919,2200,3},{63924,2200,3},{63929,2200,3}, {63934,2200,3},{63939,2200,3},{63944,2200,3},{63949,2200,3},{63954,2200,3}, {63959,2200,3},{63966,2200,3},{63971,2200,3},{63976,2200,3},{63981,2200,3}, {63986,2200,3},{63991,2200,3},{63996,2200,3},{64001,2200,3},{64006,2200,3}, {64011,2200,3},{64016,2200,3},{64021,2200,3},{64028,2200,3},{64033,2200,3}, {64038,2200,3},{64043,2200,3},{64048,2200,3},{64053,2200,3},{64058,2200,3}, {64063,2200,3},{64068,2200,3},{64074,2200,3},{64079,2200,3},{64084,2200,3}, {64089,2200,3},{64094,2200,3},{64099,2200,3},{64104,2200,3},{64109,2200,3}, {64114,2200,3},{64119,2200,3},{64124,2200,3},{64131,2200,3},{64136,2200,3}, {64141,2200,3},{64146,2200,3},{64151,2200,3},{64156,2200,3},{64161,2200,3}, {64166,2200,3},{64171,2200,3},{64178,2200,3},{64183,2200,3},{64188,2200,3}, {64193,2200,3},{64198,2200,3},{64203,2200,3},{64209,2200,3},{64211,2200,3}, {64214,2200,3},{64219,2200,3},{64224,2200,3},{64229,2200,3},{64236,2200,3}, {64236,2205,3},{64236,2212,3},{64236,2217,3},{64236,2222,3},{64236,2228,3}, {64236,2233,3},{64236,2238,3},{64236,2245,3},{64236,2250,3},{64236,2257,3}, {64236,2262,3},{64236,2267,3},{64236,2273,3},{64236,2278,3},{64236,2283,3}, {64236,2290,3},{64236,2295,3},{64236,2300,3},{64236,2307,3},{64236,2312,3}, {64236,2318,3},{64236,2323,3},{64236,2328,3},{64236,2335,3},{64236,2340,3}, {64236,2345,3},{64236,2352,3},{64236,2357,3},{64236,2363,3},{64236,2368,3}, {64236,2373,3},{64236,2380,3},{64236,2385,3},{64236,2390,3},{64236,2397,3}, {64236,2402,3},{64243,2400,3},{64253,2390,3},{64258,2388,3},{64266,2392,3}, {64281,2395,3},{64298,2405,3},{64309,2403,3},{64316,2397,3},{64348,2398,3}, {64354,2402,3},{64358,2400,3},{64366,2400,3},{64371,2397,3},{64378,2400,3}, {64383,2403,3},{64391,2403,3},{64396,2408,3},{64408,2403,3},{64423,2403,3}, {64424,2400,3},{64439,2402,3},{64444,2398,3},{64449,2398,3},{64448,2407,3}, {64444,2413,3},{64441,2413,3},{64438,2415,3},{64434,2413,3},{64433,2415,3}, {64433,2420,3},{64431,2425,3},{64431,2432,3},{64424,2440,3},{64419,2438,3}, {64416,2442,3},{64408,2442,3},{64401,2437,3},{64399,2430,3},{64398,2430,3}, {64396,2432,3},{64394,2438,3},{64389,2445,3},{64389,2452,3},{64393,2458,3}, {64396,2460,3},{64398,2465,3},{64403,2470,3},{64404,2475,3},{64404,2482,3}, {64408,2488,3},{64409,2497,3},{64411,2518,3},{64416,2533,3},{64416,2535,3}, {64411,2533,3},{64408,2535,3},{64406,2530,3},{64401,2532,3},{64401,2530,3}, {64398,2528,3},{64389,2533,3},{64386,2532,3},{64381,2532,3},{64373,2537,3}, {64371,2540,3},{64369,2543,3},{64364,2550,3},{64361,2550,3},{64359,2550,3}, {64358,2552,3},{64361,2555,3},{64361,2558,3},{64363,2558,3},{64364,2563,3}, {64358,2573,3},{64356,2583,3},{64358,2587,3},{64354,2590,3},{64351,2597,3}, {64346,2598,3},{64346,2620,3},{64343,2625,3},{64343,2628,3},{64343,2632,3}, {64344,2637,3},{64344,2645,3},{64344,2647,3},{64341,2650,3},{64338,2667,3}, {64334,2672,3},{64339,2678,3},{64339,2687,3},{64339,2690,3},{64346,2697,3}, {64351,2700,3},{64361,2700,3},{64366,2705,3},{64376,2703,3},{64378,2715,3}, {64379,2720,3},{64374,2722,3},{64358,2723,3},{64341,2747,3},{64338,2748,3}, {64329,2750,3},{64319,2753,3},{64314,2757,3},{64309,2763,3},{64306,2767,3}, {64306,2778,3},{64308,2782,3},{64311,2783,3},{64311,2787,3},{64304,2797,3}, {64299,2798,3},{64299,2803,3},{64298,2812,3},{64293,2815,3},{64296,2820,3}, {64293,2823,3},{64293,2835,3},{64284,2845,3},{64274,2848,3},{64269,2853,3}, {64266,2853,3},{64264,2850,3},{64261,2850,3},{64258,2852,3},{64254,2857,3}, {64248,2857,3},{64246,2858,3},{64251,2863,3},{64251,2868,3},{64246,2873,3}, {64239,2877,3},{64238,2882,3},{64233,2883,3},{64231,2885,3},{64228,2885,3}, {64226,2887,3},{64223,2888,3},{64219,2892,3},{64201,2897,3},{64196,2902,3}, {64198,2915,3},{64196,2917,3},{64193,2918,3},{64193,2920,3},{64196,2923,3}, {64199,2930,3},{64201,2933,3},{64201,2937,3},{64203,2938,3},{64206,2947,3}, {64213,2955,3},{64214,2958,3},{64211,2963,3},{64211,2968,3},{64209,2968,3}, {64206,2968,3},{64204,2965,3},{64201,2965,3},{64199,2962,3},{64194,2963,3}, {64191,2972,3},{64191,2980,3},{64194,2980,3},{64199,2980,3},{64206,2980,3}, {64211,2980,3},{64216,2980,3},{64221,2980,3},{64228,2980,3},{64233,2980,3}, {64238,2980,3},{64244,2980,3},{64249,2980,3},{64254,2980,3},{64259,2980,3}, {64266,2980,3},{64271,2980,3},{64276,2980,3},{64283,2980,3},{64288,2980,3}, {64293,2980,3},{64298,2980,3},{64304,2980,3},{64309,2980,3},{64314,2980,3}, {64321,2980,3},{64321,2975,3},{64318,2972,3},{64314,2963,3},{64316,2960,3}, {64318,2957,3},{64314,2955,3},{64313,2948,3},{64301,2945,3},{64298,2948,3}, {64296,2948,3},{64298,2952,3},{64293,2953,3},{64289,2948,3},{64291,2947,3}, {64293,2940,3},{64294,2938,3},{64294,2930,3},{64298,2928,3},{64299,2925,3}, {64298,2923,3},{64299,2918,3},{64298,2913,3},{64296,2910,3},{64298,2910,3}, {64299,2910,3},{64298,2903,3},{64306,2900,3},{64316,2893,3},{64323,2885,3}, {64329,2880,3},{64331,2877,3},{64338,2875,3},{64338,2868,3},{64341,2862,3}, {64344,2860,3},{64344,2857,3},{64346,2855,3},{64349,2853,3},{64349,2850,3}, {64354,2848,3},{64358,2845,3},{64364,2845,3},{64368,2842,3},{64369,2843,3}, {64381,2837,3},{64391,2837,3},{64401,2843,3},{64408,2843,3},{64413,2847,3}, {64419,2848,3},{64428,2848,3},{64443,2855,3},{64453,2855,3},{64464,2862,3}, {64464,2867,3},{64468,2867,3},{64471,2870,3},{64474,2867,3},{64479,2867,3}, {64484,2863,3},{64493,2865,3},{64499,2862,3},{64506,2863,3},{64514,2857,3}, {64521,2862,3},{64541,2863,3},{64554,2867,3},{64558,2870,3},{64561,2867,3}, {64564,2863,3},{64576,2862,3},{64579,2858,3},{64581,2862,3},{64581,2857,3}, {64588,2857,3},{64589,2853,3},{64594,2853,3},{64596,2862,3},{64596,2867,3}, {64591,2870,3},{64591,2872,3},{64599,2873,3},{64603,2870,3},{64604,2872,3}, {64616,2880,3},{64623,2885,3},{64628,2890,3},{64633,2892,3},{64636,2900,3}, {64649,2905,3},{64651,2908,3},{64656,2910,3},{64671,2915,3},{64676,2910,3}, {64688,2890,3},{64689,2893,3},{64689,2900,3},{64691,2905,3},{64691,2910,3}, {64693,2917,3},{64693,2922,3},{64694,2927,3},{64694,2933,3},{64696,2938,3}, {64696,2943,3},{64698,2950,3},{64698,2955,3},{64699,2960,3},{64699,2967,3}, {64701,2972,3},{64701,2977,3},{64703,2983,3},{64703,2988,3},{64704,2993,3}, {64704,3000,3},{64706,3005,3},{64706,3010,3},{64708,3017,3},{64708,3022,3}, {64709,3027,3},{64709,3033,3},{64711,3038,3},{64711,3043,3},{64713,3050,3}, {64713,3055,3},{64713,3057,3},{64711,3057,3},{64708,3057,3},{64706,3057,3}, {64701,3047,3},{64693,3043,3},{64689,3045,3},{64686,3047,3},{64684,3047,3}, {64683,3050,3},{64684,3058,3},{64681,3057,3},{64678,3053,3},{64678,3055,3}, {64679,3062,3},{64684,3065,3},{64686,3065,3},{64686,3063,3},{64688,3068,3}, {64683,3068,3},{64683,3072,3},{64679,3072,3},{64679,3078,3},{64669,3090,3}, {64658,3102,3},{64656,3103,3},{64659,3110,3},{64661,3110,3},{64663,3113,3}, {64664,3113,3},{64661,3117,3},{64661,3118,3},{64673,3120,3},{64676,3118,3}, {64678,3122,3},{64678,3123,3},{64674,3128,3},{64676,3132,3},{64676,3135,3}, {64678,3137,3},{64678,3138,3},{64673,3140,3},{64673,3147,3},{64669,3148,3}, {64666,3157,3},{64654,3157,3},{64646,3168,3},{64644,3172,3},{64646,3175,3}, {64648,3178,3},{64644,3188,3},{64643,3195,3},{64639,3193,3},{64634,3193,3}, {64629,3198,3},{64633,3205,3},{64629,3212,3},{64629,3217,3},{64624,3222,3}, {64623,3227,3},{64623,3243,3},{64619,3248,3},{64614,3250,3},{64609,3255,3}, {64608,3275,3},{64603,3277,3},{64603,3282,3},{64599,3285,3},{64588,3298,3}, {64584,3302,3},{64579,3300,3},{64573,3300,3},{64573,3302,3},{64574,3307,3}, {64571,3308,3},{64569,3310,3},{64576,3312,3},{64578,3312,3},{64576,3313,3}, {64576,3320,3},{64573,3323,3},{64566,3325,3},{64556,3330,3},{64554,3332,3}, {64554,3337,3},{64544,3338,3},{64543,3337,3},{64531,3332,3},{64528,3335,3}, {64526,3340,3},{64521,3347,3},{64514,3355,3},{64501,3355,3},{64496,3357,3}, {64491,3363,3},{64486,3365,3},{64484,3368,3},{64481,3368,3},{64479,3370,3}, {64476,3367,3},{64474,3363,3},{64471,3363,3},{64471,3362,3},{64466,3355,3}, {64461,3353,3},{64461,3352,3},{64458,3352,3},{64458,3348,3},{64456,3347,3}, {64456,3342,3},{64456,3340,3},{64456,3337,3},{64451,3333,3},{64449,3332,3}, {64451,3328,3},{64448,3327,3},{64443,3330,3},{64434,3332,3},{64431,3335,3}, {64426,3337,3},{64424,3338,3},{64421,3340,3},{64419,3342,3},{64409,3338,3}, {64401,3332,3},{64398,3332,3},{64398,3330,3},{64394,3330,3},{64391,3328,3}, {64394,3325,3},{64383,3327,3},{64381,3323,3},{64378,3325,3},{64376,3330,3}, {64374,3333,3},{64353,3333,3},{64348,3333,3},{64343,3335,3},{64338,3333,3}, {64329,3328,3},{64323,3327,3},{64316,3332,3},{64311,3333,3},{64301,3338,3}, {64303,3347,3},{64301,3352,3},{64298,3353,3},{64293,3348,3},{64288,3345,3}, {64283,3338,3},{64281,3330,3},{64276,3323,3},{64273,3318,3},{64274,3315,3}, {64276,3305,3},{64259,3297,3},{64251,3297,3},{64248,3303,3},{64246,3303,3}, {64233,3300,3},{64226,3298,3},{64221,3298,3},{64216,3302,3},{64208,3295,3}, {64196,3292,3},{64189,3288,3},{64189,3287,3},{64184,3285,3},{64179,3275,3}, {64178,3272,3},{64174,3268,3},{64171,3272,3},{64171,3278,3},{64166,3285,3}, {64164,3285,3},{64159,3277,3},{64158,3277,3},{64154,3282,3},{64154,3288,3}, {64153,3292,3},{64148,3292,3},{64146,3295,3},{64143,3297,3},{64141,3300,3}, {64134,3300,3},{64131,3302,3},{64131,3305,3},{64138,3308,3},{64139,3313,3}, {64144,3317,3},{64134,3322,3},{64133,3317,3},{64131,3312,3},{64129,3305,3}, {64128,3300,3},{64124,3295,3},{64123,3288,3},{64121,3283,3},{64119,3278,3}, {64118,3272,3},{64116,3267,3},{64113,3262,3},{64111,3255,3},{64109,3250,3}, {64108,3245,3},{64106,3237,3},{64101,3213,3},{64096,3205,3},{64093,3192,3}, {64088,3182,3},{64086,3170,3},{64074,3148,3},{64061,3087,3},{64058,3077,3}, {64054,3072,3},{64053,3067,3},{64051,3060,3},{64049,3055,3},{64048,3050,3}, {64044,3043,3},{64039,3035,3},{64039,3030,3},{64038,3025,3},{64038,3022,3}, {64026,3022,3},{64014,3025,3},{64009,3028,3},{64003,3037,3},{63991,3037,3}, {63988,3038,3},{63981,3035,3},{63978,3038,3},{63973,3042,3},{63969,3035,3}, {63973,3025,3},{63969,3022,3},{63973,3017,3},{63973,3008,3},{63971,3000,3}, {63973,2995,3},{63974,2983,3},{63971,2970,3},{63969,2963,3},{63969,2957,3}, {63966,2952,3},{63966,2943,3},{63958,2925,3},{63949,2913,3},{63948,2908,3}, {63941,2905,3},{63941,2897,3},{63939,2893,3},{63931,2887,3},{63924,2887,3}, {63919,2885,3},{63913,2887,3},{63906,2883,3},{63896,2885,3},{63888,2882,3}, {63884,2877,3},{63883,2870,3},{63886,2868,3},{63888,2865,3},{63886,2863,3}, {63884,2855,3},{63883,2853,3},{63883,2857,3},{63879,2852,3},{63883,2852,3}, {63884,2848,3},{63883,2848,3},{63881,2845,3},{63876,2840,3},{63878,2837,3}, {63881,2838,3},{63879,2833,3},{63883,2832,3},{63883,2828,3},{63881,2830,3}, {63879,2828,3},{63878,2832,3},{63876,2833,3},{63874,2827,3},{63874,2825,3}, {63873,2825,3},{63871,2825,3},{63869,2822,3},{63873,2820,3},{63873,2817,3}, {63871,2818,3},{63868,2817,3},{63868,2820,3},{63866,2820,3},{63864,2813,3}, {63861,2813,3},{63859,2813,3},{63861,2808,3},{63858,2808,3},{63856,2807,3}, {63854,2808,3},{63853,2807,3},{63849,2802,3},{63851,2797,3},{63853,2797,3}, {63854,2797,3},{63854,2793,3},{63851,2783,3},{63853,2780,3},{63849,2780,3}, {63846,2787,3},{63846,2782,3},{63843,2775,3},{63844,2773,3},{63841,2768,3}, {63839,2773,3},{63838,2773,3},{63834,2765,3},{63831,2770,3},{63829,2772,3}, {63826,2767,3},{63828,2765,3},{63829,2767,3},{63831,2762,3},{63823,2755,3}, {63819,2755,3},{63818,2752,3},{63813,2750,3},{63809,2747,3},{63809,2745,3}, {63808,2742,3},{63804,2745,3},{63791,2732,3},{63789,2738,3},{63788,2737,3}, {63784,2737,3},{63783,2737,3},{63783,2733,3},{63779,2735,3},{63779,2730,3}, {63776,2730,3},{63774,2727,3},{63776,2725,3},{63774,2725,3},{63774,2722,3}, {63773,2723,3},{63771,2722,3},{63769,2718,3},{63766,2718,3},{63768,2717,3}, {63761,2713,3},{63758,2708,3},{63756,2710,3},{63756,2708,3},{63753,2708,3}, {63751,2710,3},{63753,2713,3},{63748,2708,3},{63746,2708,3},{63746,2707,3}, {63743,2705,3},{63741,2702,3},{63739,2702,3},{63738,2688,3},{63736,2683,3}, {63734,2683,3},{63733,2677,3},{63728,2670,3},{63731,2660,3},{63736,2657,3}, {63736,2650,3},{63743,2640,3},{63743,2632,3},{63744,2623,3},{63748,2622,3}, {63744,2617,3},{63743,2610,3},{63739,2610,3},{63739,2603,3},{63738,2603,3}, {63738,2600,3},{63736,2597,3},{63738,2587,3},{63743,2583,3},{63744,2585,3}, {63748,2580,3},{63751,2575,3},{63753,2570,3},{63756,2568,3},{63753,2562,3}, {63751,2555,3},{63749,2552,3},{63751,2533,3},{63756,2527,3},{64951,1318,131}, {64949,1310,3},{64951,1305,3},{64951,1300,3},{64954,1297,3},{64954,1288,3}, {64949,1275,3},{64939,1270,3},{64938,1267,3},{64938,1257,3},{64933,1248,3}, {64933,1245,3},{64934,1242,3},{64936,1245,3},{64939,1245,3},{64941,1240,3}, {64936,1238,3},{64939,1237,3},{64951,1225,3},{64958,1220,3},{64963,1228,3}, {64963,1237,3},{64963,1242,3},{64963,1247,3},{64964,1253,3},{64969,1253,3}, {64976,1253,3},{64981,1253,3},{64986,1253,3},{64993,1253,3},{64998,1253,3}, {65003,1253,3},{65009,1253,3},{65014,1253,3},{65019,1253,3},{65024,1253,3}, {65026,1247,3},{65031,1247,3},{65031,1250,3},{65036,1260,3},{65043,1262,3}, {65043,1270,3},{65049,1272,3},{65053,1278,3},{65056,1278,3},{65063,1282,3}, {65064,1287,3},{65064,1292,3},{65068,1302,3},{65069,1307,3},{65069,1308,3}, {65073,1308,3},{65078,1308,3},{65079,1312,3},{65078,1313,3},{65073,1318,3}, {65068,1320,3},{65059,1330,3},{65058,1338,3},{65051,1338,3},{65048,1342,3}, {65051,1343,3},{65056,1352,3},{65059,1350,3},{65061,1353,3},{65058,1358,3}, {65058,1360,3},{65063,1363,3},{65063,1370,3},{65066,1370,3},{65066,1373,3}, {65071,1372,3},{65083,1373,3},{65091,1373,3},{65094,1382,3},{65091,1385,3}, {65088,1388,3},{65086,1397,3},{65091,1402,3},{65093,1402,3},{65096,1407,3}, {65098,1418,3},{65104,1430,3},{65109,1442,3},{65103,1440,3},{65096,1445,3}, {65093,1448,3},{65084,1443,3},{65084,1440,3},{65081,1437,3},{65073,1438,3}, {65068,1443,3},{65061,1442,3},{65058,1443,3},{65053,1442,3},{65048,1442,3}, {65053,1448,3},{65051,1455,3},{65048,1458,3},{65044,1467,3},{65054,1483,3}, {65071,1492,3},{65081,1502,3},{65086,1510,3},{65103,1522,3},{65108,1533,3}, {65106,1542,3},{65109,1545,3},{65114,1548,3},{65123,1548,3},{65131,1555,3}, {65138,1570,3},{65139,1583,3},{65144,1590,3},{65151,1593,3},{65168,1603,3}, {65174,1605,3},{65179,1610,3},{65191,1615,3},{65194,1618,3},{65203,1623,3}, {65208,1622,3},{65211,1618,3},{65216,1620,3},{65221,1618,3},{65236,1620,3}, {65248,1618,3},{65264,1620,3},{65273,1623,3},{65298,1618,3},{65311,1618,3}, {65318,1620,3},{65326,1625,3},{65334,1637,3},{65349,1652,3},{65371,1665,3}, {65394,1675,3},{65404,1680,3},{65413,1688,3},{65421,1697,3},{65429,1712,3}, {65433,1728,3},{65436,1733,3},{65458,1755,3},{65474,1768,3},{65483,1772,3}, {65498,1775,3},{65513,1772,3},{65523,1772,3},{15,1780,3},{22,1785,3},{35,1795,3}, {45,1797,3},{48,1797,3},{60,1790,3},{68,1788,3},{82,1790,3},{100,1787,3}, {105,1788,3},{113,1793,3},{125,1798,3},{132,1798,3},{153,1807,3},{172,1808,3}, {185,1807,3},{195,1808,3},{205,1807,3},{213,1810,3},{222,1810,3},{230,1812,3}, {233,1817,3},{242,1822,3},{252,1823,3},{257,1832,3},{262,1835,3},{273,1840,3}, {283,1843,3},{297,1850,3},{308,1853,3},{315,1862,3},{322,1865,3},{327,1863,3}, {332,1865,3},{348,1863,3},{373,1858,3},{388,1862,3},{398,1865,3},{403,1865,3}, {413,1863,3},{423,1858,3},{430,1853,3},{432,1853,3},{437,1858,3},{435,1865,3}, {437,1870,3},{440,1875,3},{447,1880,3},{457,1883,3},{462,1888,3},{465,1890,3}, {467,1893,3},{472,1895,3},{475,1900,3},{480,1902,3},{483,1905,3},{490,1907,3}, {493,1912,3},{493,1918,3},{497,1920,3},{500,1923,3},{508,1937,3},{513,1942,3}, {513,1950,3},{515,1955,3},{513,1962,3},{513,1972,3},{508,1983,3},{500,1990,3}, {498,2000,3},{492,2008,3},{487,2018,3},{480,2023,3},{477,2035,3},{467,2040,3}, {462,2045,3},{455,2043,3},{452,2045,3},{442,2058,3},{442,2078,3},{443,2082,3}, {445,2083,3},{443,2097,3},{440,2107,3},{433,2112,3},{428,2122,3},{428,2123,3}, {432,2125,3},{433,2128,3},{428,2135,3},{427,2147,3},{425,2153,3},{430,2163,3}, {430,2175,3},{427,2177,3},{427,2183,3},{423,2187,3},{423,2195,3},{425,2200,3}, {422,2210,3},{417,2217,3},{415,2220,3},{413,2233,3},{415,2245,3},{422,2253,3}, {428,2253,3},{433,2257,3},{437,2262,3},{442,2258,3},{447,2260,3},{448,2260,3}, {448,2268,3},{453,2270,3},{457,2272,3},{462,2273,3},{465,2275,3},{472,2278,3}, {472,2280,3},{470,2285,3},{473,2287,3},{475,2288,3},{482,2288,3},{482,2293,3}, {483,2297,3},{482,2298,3},{475,2302,3},{473,2307,3},{472,2308,3},{470,2310,3}, {473,2317,3},{467,2323,3},{465,2327,3},{462,2327,3},{463,2330,3},{460,2333,3}, {458,2343,3},{465,2345,3},{467,2350,3},{473,2358,3},{477,2370,3},{478,2375,3}, {482,2380,3},{482,2383,3},{482,2385,3},{482,2388,3},{482,2395,3},{485,2393,3}, {487,2395,3},{485,2398,3},{490,2407,3},{492,2410,3},{490,2415,3},{493,2418,3}, {497,2423,3},{493,2425,3},{493,2427,3},{498,2427,3},{500,2428,3},{500,2437,3}, {502,2438,3},{503,2440,3},{505,2440,3},{505,2435,3},{510,2438,3},{512,2440,3}, {507,2443,3},{510,2443,3},{510,2447,3},{508,2453,3},{503,2457,3},{503,2460,3}, {498,2462,3},{495,2467,3},{492,2465,3},{492,2472,3},{492,2473,3},{492,2477,3}, {492,2478,3},{493,2482,3},{493,2487,3},{497,2488,3},{498,2498,3},{495,2507,3}, {502,2513,3},{500,2518,3},{502,2528,3},{505,2532,3},{508,2532,3},{512,2535,3}, {515,2535,3},{517,2532,3},{518,2532,3},{528,2535,3},{530,2538,3},{532,2537,3}, {533,2540,3},{532,2542,3},{533,2547,3},{535,2547,3},{535,2548,3},{533,2550,3}, {535,2553,3},{538,2555,3},{537,2558,3},{533,2558,3},{533,2562,3},{532,2560,3}, {530,2563,3},{532,2565,3},{528,2572,3},{527,2572,3},{525,2575,3},{525,2577,3}, {527,2577,3},{527,2578,3},{527,2580,3},{523,2580,3},{523,2582,3},{522,2580,3}, {520,2583,3},{522,2585,3},{522,2588,3},{517,2590,3},{517,2592,3},{520,2592,3}, {520,2593,3},{520,2595,3},{523,2597,3},{522,2600,3},{520,2602,3},{518,2603,3}, {520,2605,3},{520,2610,3},{523,2608,3},{523,2612,3},{525,2613,3},{525,2615,3}, {523,2615,3},{523,2620,3},{520,2622,3},{518,2625,3},{517,2625,3},{515,2628,3}, {513,2632,3},{515,2635,3},{513,2637,3},{515,2638,3},{510,2645,3},{507,2647,3}, {505,2650,3},{505,2655,3},{508,2658,3},{508,2662,3},{507,2662,3},{508,2663,3}, {507,2667,3},{508,2668,3},{510,2673,3},{508,2677,3},{503,2680,3},{505,2683,3}, {503,2687,3},{513,2693,3},{520,2708,3},{520,2715,3},{515,2722,3},{512,2732,3}, {510,2733,3},{508,2740,3},{507,2743,3},{502,2743,3},{502,2745,3},{497,2752,3}, {493,2753,3},{490,2758,3},{490,2767,3},{483,2770,3},{478,2770,3},{478,2777,3}, {472,2778,3},{467,2777,3},{460,2778,3},{460,2782,3},{455,2787,3},{455,2793,3}, {458,2795,3},{455,2797,3},{457,2803,3},{448,2803,3},{442,2807,3},{445,2812,3}, {443,2813,3},{442,2813,3},{440,2813,3},{438,2817,3},{435,2820,3},{435,2827,3}, {435,2833,3},{428,2837,3},{428,2845,3},{432,2847,3},{437,2850,3},{437,2857,3}, {442,2860,3},{442,2865,3},{453,2872,3},{453,2875,3},{457,2878,3},{452,2880,3}, {450,2880,3},{448,2882,3},{448,2898,3},{450,2900,3},{448,2903,3},{447,2903,3}, {445,2907,3},{443,2907,3},{443,2912,3},{435,2920,3},{435,2925,3},{438,2925,3}, {438,2932,3},{447,2935,3},{448,2940,3},{453,2943,3},{457,2943,3},{458,2947,3}, {467,2947,3},{468,2948,3},{468,2950,3},{465,2953,3},{467,2955,3},{465,2958,3}, {465,2962,3},{465,2965,3},{462,2970,3},{458,2973,3},{457,2982,3},{453,2980,3}, {448,2980,3},{438,2980,3},{435,2983,3},{435,2990,3},{430,2995,3},{425,2995,3}, {423,2998,3},{420,3003,3},{413,3007,3},{410,3015,3},{405,3015,3},{400,3020,3}, {397,3022,3},{397,3028,3},{393,3033,3},{388,3042,3},{387,3048,3},{387,3053,3}, {387,3055,3},{370,3058,3},{362,3057,3},{362,3063,3},{365,3068,3},{363,3073,3}, {368,3077,3},{367,3078,3},{362,3080,3},{357,3085,3},{352,3085,3},{348,3087,3}, {353,3092,3},{350,3093,3},{347,3092,3},{340,3093,3},{328,3087,3},{328,3083,3}, {323,3083,3},{305,3077,3},{297,3085,3},{288,3088,3},{285,3088,3},{278,3085,3}, {277,3082,3},{270,3080,3},{267,3078,3},{262,3078,3},{260,3075,3},{252,3075,3}, {248,3073,3},{245,3073,3},{245,3083,3},{240,3083,3},{233,3088,3},{233,3092,3}, {240,3093,3},{242,3095,3},{240,3098,3},{233,3107,3},{230,3105,3},{228,3112,3}, {230,3120,3},{223,3120,3},{218,3128,3},{217,3127,3},{215,3125,3},{212,3123,3}, {210,3122,3},{208,3118,3},{207,3117,3},{203,3113,3},{202,3110,3},{200,3107,3}, {195,3102,3},{193,3100,3},{193,3095,3},{190,3092,3},{183,3085,3},{182,3083,3}, {178,3080,3},{177,3077,3},{175,3075,3},{172,3073,3},{170,3072,3},{168,3068,3}, {167,3067,3},{165,3065,3},{162,3063,3},{160,3062,3},{158,3060,3},{157,3055,3}, {155,3053,3},{152,3050,3},{148,3048,3},{147,3048,3},{142,3047,3},{140,3045,3}, {138,3043,3},{135,3043,3},{132,3038,3},{127,3038,3},{125,3040,3},{127,3040,3}, {123,3043,3},{123,3045,3},{127,3045,3},{127,3047,3},{123,3047,3},{122,3045,3}, {120,3038,3},{120,3035,3},{115,3033,3},{117,3028,3},{115,3027,3},{113,3023,3}, {107,3022,3},{100,3022,3},{90,3015,3},{90,3010,3},{87,3002,3},{83,2997,3}, {77,2995,3},{72,2995,3},{63,2993,3},{48,2997,3},{37,2987,3},{15,2982,3}, {17,2978,3},{15,2977,3},{13,2977,3},{12,2973,3},{7,2972,3},{0,2973,3},{65529,2972,3}, {65528,2972,3},{65528,2970,3},{65524,2967,3},{65519,2950,3},{65511,2945,3}, {65503,2943,3},{65498,2938,3},{65494,2938,3},{65489,2937,3},{65488,2932,3}, {65483,2935,3},{65479,2932,3},{65478,2930,3},{65476,2932,3},{65478,2933,3}, {65474,2938,3},{65466,2937,3},{65469,2942,3},{65476,2943,3},{65474,2947,3}, {65473,2948,3},{65476,2957,3},{65479,2960,3},{65488,2963,3},{65489,2965,3}, {65486,2967,3},{65479,2967,3},{65476,2963,3},{65474,2965,3},{65471,2963,3}, {65463,2962,3},{65458,2963,3},{65448,2963,3},{65446,2958,3},{65439,2958,3}, {65436,2957,3},{65429,2958,3},{65418,2957,3},{65414,2960,3},{65409,2958,3}, {65404,2960,3},{65398,2960,3},{65391,2950,3},{65386,2945,3},{65384,2937,3}, {65376,2932,3},{65373,2927,3},{65368,2922,3},{65369,2918,3},{65373,2915,3}, {65373,2912,3},{65378,2905,3},{65374,2903,3},{65369,2902,3},{65366,2902,3}, {65373,2907,3},{65374,2908,3},{65369,2910,3},{65361,2903,3},{65361,2902,3}, {65358,2902,3},{65356,2903,3},{65353,2900,3},{65343,2895,3},{65339,2893,3}, {65339,2890,3},{65334,2888,3},{65331,2888,3},{65331,2890,3},{65333,2892,3}, {65334,2890,3},{65338,2893,3},{65336,2895,3},{65331,2897,3},{65326,2892,3}, {65326,2890,3},{65323,2885,3},{65321,2890,3},{65319,2888,3},{65319,2887,3}, {65318,2887,3},{65314,2885,3},{65309,2887,3},{65311,2888,3},{65313,2892,3}, {65311,2893,3},{65308,2892,3},{65303,2888,3},{65311,2897,3},{65309,2897,3}, {65304,2895,3},{65304,2893,3},{65299,2885,3},{65291,2883,3},{65289,2885,3}, {65291,2887,3},{65288,2888,3},{65284,2885,3},{65279,2888,3},{65271,2888,3}, {65268,2893,3},{65266,2898,3},{65263,2902,3},{65259,2898,3},{65254,2898,3}, {65254,2905,3},{65249,2905,3},{65248,2908,3},{65244,2908,3},{65239,2913,3}, {65236,2915,3},{65234,2918,3},{65234,2922,3},{65229,2923,3},{65224,2923,3}, {65221,2922,3},{65214,2922,3},{65213,2922,3},{65209,2923,3},{65206,2920,3}, {65203,2920,3},{65201,2915,3},{65193,2913,3},{65169,2915,3},{65159,2910,3}, {65153,2913,3},{65149,2910,3},{65146,2912,3},{65144,2910,3},{65136,2910,3}, {65133,2908,3},{65126,2910,3},{65121,2908,3},{65118,2910,3},{65114,2910,3}, {65108,2905,3},{65104,2905,3},{65101,2915,3},{65124,2922,3},{65131,2923,3}, {65124,2927,3},{65106,2922,3},{65101,2922,3},{65094,2920,3},{65084,2920,3}, {65086,2918,3},{65086,2917,3},{65081,2915,3},{65074,2910,3},{65068,2912,3}, {65058,2910,3},{65034,2912,3},{65028,2910,3},{65023,2913,3},{65013,2915,3}, {64989,2928,3},{64983,2933,3},{64973,2938,3},{64971,2937,3},{64974,2933,3}, {64973,2933,3},{64964,2935,3},{64961,2933,3},{64961,2935,3},{64959,2933,3}, {64954,2932,3},{64946,2923,3},{64944,2918,3},{64928,2918,3},{64923,2927,3}, {64919,2928,3},{64918,2932,3},{64914,2933,3},{64908,2933,3},{64894,2940,3}, {64889,2940,3},{64884,2943,3},{64883,2947,3},{64884,2948,3},{64883,2948,3}, {64879,2948,3},{64874,2948,3},{64866,2950,3},{64858,2955,3},{64853,2963,3}, {64846,2967,3},{64841,2972,3},{64831,2978,3},{64828,2985,3},{64824,2997,3}, {64816,3008,3},{64813,3012,3},{64806,3015,3},{64803,3015,3},{64799,3018,3}, {64794,3018,3},{64789,3022,3},{64781,3022,3},{64774,3020,3},{64766,3023,3}, {64759,3027,3},{64751,3027,3},{64748,3030,3},{64748,3033,3},{64746,3035,3}, {64743,3038,3},{64741,3042,3},{64739,3042,3},{64736,3045,3},{64734,3045,3}, {64733,3050,3},{64729,3053,3},{64726,3053,3},{64721,3058,3},{64716,3057,3}, {64713,3057,3},{64713,3055,3},{64713,3050,3},{64711,3043,3},{64711,3038,3}, {64709,3033,3},{64709,3027,3},{64708,3022,3},{64708,3017,3},{64706,3010,3}, {64706,3005,3},{64704,3000,3},{64704,2993,3},{64703,2988,3},{64703,2983,3}, {64701,2977,3},{64701,2972,3},{64699,2967,3},{64699,2960,3},{64698,2955,3}, {64698,2950,3},{64696,2943,3},{64696,2938,3},{64694,2933,3},{64694,2927,3}, {64693,2922,3},{64693,2917,3},{64691,2910,3},{64691,2905,3},{64689,2900,3}, {64689,2893,3},{64688,2890,3},{64688,2888,3},{64686,2887,3},{64668,2873,3}, {64648,2853,3},{64639,2848,3},{64628,2833,3},{64619,2832,3},{64614,2835,3}, {64608,2832,3},{64606,2833,3},{64598,2832,3},{64596,2833,3},{64593,2835,3}, {64583,2832,3},{64583,2833,3},{64584,2835,3},{64583,2845,3},{64586,2853,3}, {64589,2850,3},{64589,2847,3},{64591,2848,3},{64594,2848,3},{64598,2848,3}, {64599,2850,3},{64598,2852,3},{64593,2852,3},{64589,2853,3},{64588,2857,3}, {64581,2857,3},{64581,2862,3},{64579,2858,3},{64576,2862,3},{64564,2863,3}, {64561,2867,3},{64558,2870,3},{64554,2867,3},{64541,2863,3},{64521,2862,3}, {64514,2857,3},{64506,2863,3},{64499,2862,3},{64493,2865,3},{64484,2863,3}, {64479,2867,3},{64474,2867,3},{64471,2870,3},{64468,2867,3},{64464,2867,3}, {64464,2862,3},{64453,2855,3},{64443,2855,3},{64428,2848,3},{64419,2848,3}, {64413,2847,3},{64408,2843,3},{64401,2843,3},{64391,2837,3},{64381,2837,3}, {64369,2843,3},{64368,2842,3},{64364,2845,3},{64358,2845,3},{64354,2848,3}, {64349,2850,3},{64349,2853,3},{64346,2855,3},{64344,2857,3},{64344,2860,3}, {64341,2862,3},{64338,2868,3},{64338,2875,3},{64331,2877,3},{64329,2880,3}, {64323,2885,3},{64316,2893,3},{64306,2900,3},{64298,2903,3},{64299,2910,3}, {64298,2910,3},{64296,2910,3},{64298,2913,3},{64299,2918,3},{64298,2923,3}, {64299,2925,3},{64298,2928,3},{64294,2930,3},{64294,2938,3},{64293,2940,3}, {64291,2947,3},{64289,2948,3},{64293,2953,3},{64298,2952,3},{64296,2948,3}, {64298,2948,3},{64301,2945,3},{64313,2948,3},{64314,2955,3},{64318,2957,3}, {64316,2960,3},{64314,2963,3},{64318,2972,3},{64321,2975,3},{64321,2980,3}, {64314,2980,3},{64309,2980,3},{64304,2980,3},{64298,2980,3},{64293,2980,3}, {64288,2980,3},{64283,2980,3},{64276,2980,3},{64271,2980,3},{64266,2980,3}, {64259,2980,3},{64254,2980,3},{64249,2980,3},{64244,2980,3},{64238,2980,3}, {64233,2980,3},{64228,2980,3},{64221,2980,3},{64216,2980,3},{64211,2980,3}, {64206,2980,3},{64199,2980,3},{64194,2980,3},{64191,2980,3},{64191,2972,3}, {64194,2963,3},{64199,2962,3},{64201,2965,3},{64204,2965,3},{64206,2968,3}, {64209,2968,3},{64211,2968,3},{64211,2963,3},{64214,2958,3},{64213,2955,3}, {64206,2947,3},{64203,2938,3},{64201,2937,3},{64201,2933,3},{64199,2930,3}, {64196,2923,3},{64193,2920,3},{64193,2918,3},{64196,2917,3},{64198,2915,3}, {64196,2902,3},{64201,2897,3},{64219,2892,3},{64223,2888,3},{64226,2887,3}, {64228,2885,3},{64231,2885,3},{64233,2883,3},{64238,2882,3},{64239,2877,3}, {64246,2873,3},{64251,2868,3},{64251,2863,3},{64246,2858,3},{64248,2857,3}, {64254,2857,3},{64258,2852,3},{64261,2850,3},{64264,2850,3},{64266,2853,3}, {64269,2853,3},{64274,2848,3},{64284,2845,3},{64293,2835,3},{64293,2823,3}, {64296,2820,3},{64293,2815,3},{64298,2812,3},{64299,2803,3},{64299,2798,3}, {64304,2797,3},{64311,2787,3},{64311,2783,3},{64308,2782,3},{64306,2778,3}, {64306,2767,3},{64309,2763,3},{64314,2757,3},{64319,2753,3},{64329,2750,3}, {64338,2748,3},{64341,2747,3},{64358,2723,3},{64374,2722,3},{64379,2720,3}, {64378,2715,3},{64376,2703,3},{64366,2705,3},{64361,2700,3},{64351,2700,3}, {64346,2697,3},{64339,2690,3},{64339,2687,3},{64339,2678,3},{64334,2672,3}, {64338,2667,3},{64341,2650,3},{64344,2647,3},{64344,2645,3},{64344,2637,3}, {64343,2632,3},{64343,2628,3},{64343,2625,3},{64346,2620,3},{64346,2598,3}, {64351,2597,3},{64354,2590,3},{64358,2587,3},{64356,2583,3},{64358,2573,3}, {64364,2563,3},{64363,2558,3},{64361,2558,3},{64361,2555,3},{64358,2552,3}, {64359,2550,3},{64361,2550,3},{64364,2550,3},{64369,2543,3},{64371,2540,3}, {64373,2537,3},{64381,2532,3},{64386,2532,3},{64389,2533,3},{64398,2528,3}, {64401,2530,3},{64401,2532,3},{64406,2530,3},{64408,2535,3},{64411,2533,3}, {64416,2535,3},{64416,2533,3},{64411,2518,3},{64409,2497,3},{64408,2488,3}, {64404,2482,3},{64404,2475,3},{64403,2470,3},{64398,2465,3},{64396,2460,3}, {64393,2458,3},{64389,2452,3},{64389,2445,3},{64394,2438,3},{64396,2432,3}, {64398,2430,3},{64399,2430,3},{64401,2437,3},{64408,2442,3},{64416,2442,3}, {64419,2438,3},{64424,2440,3},{64431,2432,3},{64431,2425,3},{64433,2420,3}, {64433,2415,3},{64434,2413,3},{64438,2415,3},{64441,2413,3},{64444,2413,3}, {64448,2407,3},{64449,2398,3},{64448,2397,3},{64443,2395,3},{64439,2390,3}, {64434,2388,3},{64433,2385,3},{64436,2377,3},{64434,2367,3},{64439,2348,3}, {64438,2337,3},{64428,2322,3},{64428,2315,3},{64426,2308,3},{64426,2295,3}, {64429,2290,3},{64431,2287,3},{64426,2278,3},{64426,2272,3},{64429,2265,3}, {64433,2260,3},{64433,2253,3},{64431,2252,3},{64423,2248,3},{64418,2233,3}, {64413,2230,3},{64411,2225,3},{64411,2223,3},{64418,2227,3},{64429,2225,3}, {64438,2218,3},{64441,2220,3},{64449,2217,3},{64454,2220,3},{64458,2230,3}, {64461,2232,3},{64466,2232,3},{64469,2230,3},{64483,2230,3},{64486,2227,3}, {64494,2230,3},{64499,2232,3},{64506,2227,3},{64509,2227,3},{64521,2220,3}, {64531,2220,3},{64536,2217,3},{64543,2217,3},{64546,2210,3},{64549,2208,3}, {64548,2207,3},{64549,2205,3},{64551,2202,3},{64558,2198,3},{64561,2198,3}, {64561,2195,3},{64563,2195,3},{64569,2187,3},{64574,2185,3},{64591,2182,3}, {64596,2178,3},{64613,2185,3},{64628,2183,3},{64633,2185,3},{64653,2187,3}, {64659,2188,3},{64673,2190,3},{64676,2193,3},{64678,2192,3},{64681,2193,3}, {64688,2193,3},{64694,2193,3},{64701,2190,3},{64704,2192,3},{64708,2188,3}, {64721,2187,3},{64724,2182,3},{64731,2180,3},{64736,2175,3},{64743,2175,3}, {64748,2177,3},{64751,2177,3},{64758,2177,3},{64778,2185,3},{64783,2183,3}, {64788,2187,3},{64791,2185,3},{64794,2185,3},{64796,2183,3},{64799,2183,3}, {64808,2178,3},{64808,2173,3},{64808,2167,3},{64808,2162,3},{64808,2157,3}, {64808,2150,3},{64808,2145,3},{64808,2140,3},{64808,2133,3},{64808,2128,3}, {64808,2123,3},{64808,2117,3},{64808,2112,3},{64808,2107,3},{64808,2100,3}, {64808,2095,3},{64808,2090,3},{64808,2083,3},{64808,2078,3},{64808,2073,3}, {64808,2067,3},{64808,2062,3},{64808,2053,3},{64813,2053,3},{64824,2055,3}, {64829,2057,3},{64844,2063,3},{64844,2058,3},{64844,2033,3},{64836,2032,3}, {64836,2027,3},{64836,2020,3},{64836,2015,3},{64836,2010,3},{64836,2003,3}, {64836,1998,3},{64836,1993,3},{64836,1987,3},{64836,1982,3},{64836,1977,3}, {64836,1970,3},{64836,1965,3},{64836,1960,3},{64836,1955,3},{64831,1957,3}, {64826,1953,3},{64821,1950,3},{64809,1948,3},{64799,1950,3},{64789,1953,3}, {64788,1953,3},{64784,1948,3},{64779,1947,3},{64778,1937,3},{64768,1940,3}, {64748,1935,3},{64736,1937,3},{64736,1932,3},{64736,1927,3},{64736,1920,3}, {64736,1915,3},{64736,1910,3},{64736,1903,3},{64736,1898,3},{64736,1893,3}, {64736,1890,3},{64736,1880,3},{64739,1877,3},{64743,1877,3},{64743,1868,3}, {64743,1853,3},{64741,1852,3},{64736,1853,3},{64736,1842,3},{64734,1838,3}, {64736,1833,3},{64736,1820,3},{64733,1812,3},{64726,1812,3},{64726,1800,3}, {64731,1795,3},{64731,1790,3},{64731,1785,3},{64728,1780,3},{64729,1773,3}, {64726,1763,3},{64728,1753,3},{64729,1752,3},{64733,1755,3},{64734,1755,3}, {64736,1750,3},{64741,1748,3},{64741,1747,3},{64743,1747,3},{64744,1743,3}, {64748,1745,3},{64749,1742,3},{64751,1742,3},{64751,1738,3},{64753,1740,3}, {64754,1737,3},{64758,1737,3},{64758,1733,3},{64761,1732,3},{64764,1732,3}, {64764,1730,3},{64766,1730,3},{64766,1728,3},{64773,1728,3},{64778,1722,3}, {64784,1718,3},{64789,1715,3},{64791,1715,3},{64791,1718,3},{64793,1718,3}, {64794,1715,3},{64794,1713,3},{64793,1712,3},{64794,1710,3},{64801,1710,3}, {64806,1700,3},{64811,1698,3},{64816,1695,3},{64819,1695,3},{64821,1693,3}, {64828,1692,3},{64829,1693,3},{64829,1697,3},{64834,1697,3},{64838,1695,3}, {64839,1692,3},{64846,1693,3},{64849,1690,3},{64851,1687,3},{64854,1687,3}, {64858,1683,3},{64864,1682,3},{64868,1678,3},{64876,1677,3},{64879,1673,3}, {64883,1675,3},{64886,1672,3},{64889,1672,3},{64889,1670,3},{64894,1672,3}, {64896,1668,3},{64899,1670,3},{64901,1668,3},{64901,1672,3},{64903,1672,3}, {64908,1670,3},{64916,1672,3},{64919,1672,3},{64923,1668,3},{64924,1665,3}, {64926,1663,3},{64928,1662,3},{64929,1663,3},{64929,1660,3},{64938,1660,3}, {64938,1658,3},{64939,1658,3},{64944,1660,3},{64946,1658,3},{64948,1652,3}, {64946,1643,3},{64948,1640,3},{64951,1637,3},{64951,1632,3},{64951,1622,3}, {64951,1617,3},{64949,1612,3},{64949,1605,3},{64949,1600,3},{64949,1595,3}, {64949,1588,3},{64949,1582,3},{64949,1577,3},{64949,1572,3},{64951,1567,3}, {64951,1562,3},{64951,1555,3},{64949,1550,3},{64949,1545,3},{64949,1538,3}, {64949,1533,3},{64949,1528,3},{64949,1522,3},{64949,1517,3},{64949,1512,3}, {64949,1505,3},{64949,1500,3},{64949,1495,3},{64949,1490,3},{64949,1483,3}, {64948,1478,3},{64949,1470,3},{64946,1460,3},{64948,1450,3},{64946,1447,3}, {64948,1425,3},{64949,1418,3},{64948,1403,3},{64953,1398,3},{64949,1377,3}, {64949,1353,3},{64951,1345,3},{64949,1338,3},{64948,1333,3},{64949,1325,3}, {64951,1318,3},{222,1620,131},{225,1618,3},{227,1618,3},{242,1612,3},{247,1612,3}, {252,1608,3},{258,1612,3},{265,1610,3},{270,1612,3},{270,1608,3},{275,1608,3}, {278,1607,3},{282,1612,3},{290,1610,3},{298,1605,3},{298,1600,3},{305,1598,3}, {310,1593,3},{312,1590,3},{310,1582,3},{333,1560,3},{368,1525,3},{392,1508,3}, {403,1505,3},{402,1512,3},{405,1515,3},{405,1518,3},{407,1518,3},{407,1515,3}, {410,1513,3},{413,1510,3},{430,1508,3},{437,1503,3},{442,1502,3},{453,1480,3}, {462,1473,3},{477,1470,3},{480,1472,3},{485,1470,3},{488,1472,3},{495,1468,3}, {498,1470,3},{502,1467,3},{503,1468,3},{510,1468,3},{512,1468,3},{518,1467,3}, {522,1465,3},{525,1458,3},{530,1453,3},{538,1458,3},{542,1460,3},{545,1460,3}, {552,1462,3},{560,1458,3},{572,1463,3},{590,1462,3},{592,1460,3},{593,1458,3}, {590,1455,3},{592,1448,3},{597,1447,3},{600,1442,3},{605,1442,3},{608,1443,3}, {610,1447,3},{613,1448,3},{613,1452,3},{615,1452,3},{620,1455,3},{618,1458,3}, {627,1473,3},{633,1480,3},{635,1480,3},{638,1480,3},{673,1497,3},{675,1500,3}, {678,1507,3},{683,1507,3},{697,1513,3},{705,1515,3},{710,1520,3},{718,1520,3}, {723,1523,3},{730,1530,3},{732,1535,3},{735,1537,3},{737,1542,3},{740,1542,3}, {740,1547,3},{743,1543,3},{753,1550,3},{752,1568,3},{752,1572,3},{747,1573,3}, {745,1578,3},{750,1597,3},{753,1602,3},{758,1603,3},{760,1608,3},{762,1622,3}, {767,1632,3},{768,1640,3},{770,1640,3},{780,1642,3},{778,1647,3},{785,1650,3}, {787,1657,3},{778,1657,3},{777,1662,3},{773,1663,3},{768,1663,3},{765,1670,3}, {760,1675,3},{755,1678,3},{755,1682,3},{757,1685,3},{757,1688,3},{760,1687,3}, {763,1687,3},{765,1700,3},{767,1702,3},{767,1707,3},{770,1707,3},{768,1713,3}, {777,1718,3},{777,1720,3},{777,1722,3},{780,1723,3},{783,1727,3},{783,1730,3}, {788,1738,3},{787,1742,3},{790,1743,3},{790,1745,3},{788,1748,3},{793,1752,3}, {793,1758,3},{797,1763,3},{798,1763,3},{795,1788,3},{802,1805,3},{803,1858,3}, {808,1863,3},{813,1863,3},{820,1867,3},{822,1870,3},{825,1880,3},{828,1883,3}, {832,1887,3},{833,1887,3},{835,1888,3},{843,1893,3},{853,1905,3},{860,1907,3}, {867,1913,3},{870,1912,3},{872,1907,3},{875,1903,3},{877,1898,3},{880,1895,3}, {880,1893,3},{885,1890,3},{883,1888,3},{885,1887,3},{888,1888,3},{893,1897,3}, {897,1898,3},{902,1908,3},{900,1917,3},{902,1920,3},{902,1925,3},{900,1928,3}, {902,1930,3},{900,1938,3},{902,1942,3},{900,1947,3},{900,1955,3},{903,1958,3}, {902,1968,3},{903,1977,3},{905,1983,3},{903,1990,3},{907,1992,3},{907,1995,3}, {908,1995,3},{908,1998,3},{910,2002,3},{908,2003,3},{912,2003,3},{913,2007,3}, {913,2010,3},{915,2010,3},{912,2015,3},{913,2020,3},{912,2025,3},{910,2033,3}, {910,2037,3},{913,2042,3},{913,2043,3},{920,2048,3},{922,2052,3},{927,2050,3}, {928,2053,3},{932,2053,3},{930,2060,3},{930,2067,3},{933,2065,3},{937,2068,3}, {938,2077,3},{940,2077,3},{942,2082,3},{948,2083,3},{952,2090,3},{960,2095,3}, {960,2098,3},{963,2098,3},{963,2100,3},{968,2100,3},{972,2102,3},{975,2102,3}, {977,2105,3},{975,2107,3},{977,2110,3},{983,2113,3},{987,2117,3},{988,2120,3}, {993,2122,3},{998,2127,3},{995,2133,3},{997,2137,3},{1005,2143,3},{1012,2145,3}, {1020,2153,3},{1022,2163,3},{1023,2167,3},{1028,2168,3},{1028,2172,3},{1037,2172,3}, {1040,2175,3},{1045,2173,3},{1052,2170,3},{1063,2172,3},{1065,2177,3},{1067,2178,3}, {1068,2182,3},{1067,2185,3},{1072,2190,3},{1073,2195,3},{1073,2200,3},{1080,2200,3}, {1082,2202,3},{1083,2205,3},{1083,2210,3},{1082,2218,3},{1087,2220,3},{1092,2225,3}, {1090,2228,3},{1093,2232,3},{1095,2237,3},{1095,2240,3},{1098,2243,3},{1100,2247,3}, {1100,2252,3},{1097,2255,3},{1098,2260,3},{1097,2265,3},{1095,2277,3},{1088,2288,3}, {1070,2302,3},{1062,2313,3},{1048,2325,3},{1047,2330,3},{1042,2333,3},{1037,2337,3}, {1033,2338,3},{1028,2342,3},{1025,2343,3},{1020,2347,3},{1015,2350,3},{1012,2352,3}, {1007,2355,3},{1003,2357,3},{998,2360,3},{992,2363,3},{987,2367,3},{983,2367,3}, {977,2368,3},{972,2368,3},{967,2370,3},{960,2367,3},{957,2363,3},{953,2362,3}, {952,2363,3},{945,2363,3},{943,2367,3},{933,2363,3},{928,2365,3},{918,2357,3}, {917,2350,3},{902,2345,3},{898,2347,3},{897,2350,3},{897,2353,3},{900,2357,3}, {900,2358,3},{890,2358,3},{878,2350,3},{872,2352,3},{873,2363,3},{872,2367,3}, {870,2373,3},{873,2382,3},{870,2388,3},{872,2393,3},{870,2397,3},{870,2400,3}, {870,2402,3},{868,2413,3},{870,2417,3},{868,2420,3},{870,2425,3},{867,2425,3}, {863,2423,3},{858,2427,3},{855,2423,3},{847,2417,3},{838,2415,3},{832,2418,3}, {828,2423,3},{827,2432,3},{825,2435,3},{827,2440,3},{827,2447,3},{823,2448,3}, {820,2453,3},{822,2463,3},{820,2473,3},{818,2477,3},{817,2485,3},{803,2490,3}, {802,2493,3},{797,2497,3},{793,2505,3},{790,2508,3},{790,2515,3},{790,2518,3}, {787,2522,3},{778,2528,3},{768,2530,3},{760,2522,3},{750,2520,3},{747,2525,3}, {747,2530,3},{742,2535,3},{735,2537,3},{727,2548,3},{725,2557,3},{722,2563,3}, {717,2568,3},{717,2577,3},{710,2583,3},{708,2592,3},{702,2597,3},{698,2603,3}, {692,2607,3},{687,2613,3},{670,2628,3},{667,2635,3},{665,2642,3},{662,2642,3}, {660,2637,3},{657,2635,3},{652,2637,3},{647,2632,3},{642,2633,3},{637,2633,3}, {633,2635,3},{632,2640,3},{628,2642,3},{628,2650,3},{622,2653,3},{620,2658,3}, {615,2658,3},{610,2652,3},{608,2650,3},{607,2653,3},{608,2658,3},{603,2662,3}, {598,2667,3},{600,2675,3},{598,2683,3},{588,2692,3},{585,2702,3},{578,2708,3}, {578,2713,3},{572,2720,3},{567,2723,3},{562,2723,3},{555,2730,3},{548,2727,3}, {542,2727,3},{533,2730,3},{527,2732,3},{513,2745,3},{508,2748,3},{503,2748,3}, {502,2745,3},{502,2743,3},{507,2743,3},{508,2740,3},{510,2733,3},{512,2732,3}, {515,2722,3},{520,2715,3},{520,2708,3},{513,2693,3},{503,2687,3},{505,2683,3}, {503,2680,3},{508,2677,3},{510,2673,3},{508,2668,3},{507,2667,3},{508,2663,3}, {507,2662,3},{508,2662,3},{508,2658,3},{505,2655,3},{505,2650,3},{507,2647,3}, {510,2645,3},{515,2638,3},{513,2637,3},{515,2635,3},{513,2632,3},{515,2628,3}, {517,2625,3},{518,2625,3},{520,2622,3},{523,2620,3},{523,2615,3},{525,2615,3}, {525,2613,3},{523,2612,3},{523,2608,3},{520,2610,3},{520,2605,3},{518,2603,3}, {520,2602,3},{522,2600,3},{523,2597,3},{520,2595,3},{520,2593,3},{520,2592,3}, {517,2592,3},{517,2590,3},{522,2588,3},{522,2585,3},{520,2583,3},{522,2580,3}, {523,2582,3},{523,2580,3},{527,2580,3},{527,2578,3},{527,2577,3},{525,2577,3}, {525,2575,3},{527,2572,3},{528,2572,3},{532,2565,3},{530,2563,3},{532,2560,3}, {533,2562,3},{533,2558,3},{537,2558,3},{538,2555,3},{535,2553,3},{533,2550,3}, {535,2548,3},{535,2547,3},{533,2547,3},{532,2542,3},{533,2540,3},{532,2537,3}, {530,2538,3},{528,2535,3},{518,2532,3},{517,2532,3},{515,2535,3},{512,2535,3}, {508,2532,3},{505,2532,3},{502,2528,3},{500,2518,3},{502,2513,3},{495,2507,3}, {498,2498,3},{497,2488,3},{493,2487,3},{493,2482,3},{492,2478,3},{492,2477,3}, {492,2473,3},{492,2472,3},{492,2465,3},{495,2467,3},{498,2462,3},{503,2460,3}, {503,2457,3},{508,2453,3},{510,2447,3},{510,2443,3},{507,2443,3},{512,2440,3}, {510,2438,3},{505,2435,3},{505,2440,3},{503,2440,3},{502,2438,3},{500,2437,3}, {500,2428,3},{498,2427,3},{493,2427,3},{493,2425,3},{497,2423,3},{493,2418,3}, {490,2415,3},{492,2410,3},{490,2407,3},{485,2398,3},{487,2395,3},{485,2393,3}, {482,2395,3},{482,2388,3},{482,2385,3},{482,2383,3},{482,2380,3},{478,2375,3}, {477,2370,3},{473,2358,3},{467,2350,3},{465,2345,3},{458,2343,3},{460,2333,3}, {463,2330,3},{462,2327,3},{465,2327,3},{467,2323,3},{473,2317,3},{470,2310,3}, {472,2308,3},{473,2307,3},{475,2302,3},{482,2298,3},{483,2297,3},{482,2293,3}, {482,2288,3},{475,2288,3},{473,2287,3},{470,2285,3},{472,2280,3},{472,2278,3}, {465,2275,3},{462,2273,3},{457,2272,3},{453,2270,3},{448,2268,3},{448,2260,3}, {447,2260,3},{442,2258,3},{437,2262,3},{433,2257,3},{428,2253,3},{422,2253,3}, {415,2245,3},{413,2233,3},{415,2220,3},{417,2217,3},{422,2210,3},{425,2200,3}, {423,2195,3},{423,2187,3},{427,2183,3},{427,2177,3},{430,2175,3},{430,2163,3}, {425,2153,3},{427,2147,3},{428,2135,3},{433,2128,3},{432,2125,3},{428,2123,3}, {428,2122,3},{433,2112,3},{440,2107,3},{443,2097,3},{445,2083,3},{443,2082,3}, {442,2078,3},{442,2058,3},{452,2045,3},{455,2043,3},{462,2045,3},{467,2040,3}, {477,2035,3},{480,2023,3},{487,2018,3},{492,2008,3},{498,2000,3},{500,1990,3}, {508,1983,3},{513,1972,3},{513,1962,3},{515,1955,3},{513,1950,3},{513,1942,3}, {508,1937,3},{500,1923,3},{497,1920,3},{493,1918,3},{493,1912,3},{490,1907,3}, {483,1905,3},{480,1902,3},{475,1900,3},{472,1895,3},{467,1893,3},{465,1890,3}, {462,1888,3},{457,1883,3},{447,1880,3},{440,1875,3},{437,1870,3},{435,1865,3}, {437,1858,3},{432,1853,3},{430,1853,3},{423,1858,3},{413,1863,3},{403,1865,3}, {398,1865,3},{388,1862,3},{373,1858,3},{348,1863,3},{348,1858,3},{360,1853,3}, {363,1848,3},{360,1845,3},{360,1840,3},{358,1840,3},{358,1837,3},{358,1827,3}, {350,1823,3},{348,1820,3},{348,1817,3},{355,1815,3},{357,1810,3},{357,1803,3}, {353,1798,3},{358,1793,3},{357,1793,3},{353,1787,3},{362,1783,3},{362,1777,3}, {363,1773,3},{363,1772,3},{363,1762,3},{372,1748,3},{368,1745,3},{367,1740,3}, {362,1735,3},{363,1730,3},{362,1725,3},{358,1723,3},{358,1715,3},{357,1712,3}, {358,1708,3},{355,1705,3},{353,1698,3},{355,1697,3},{357,1688,3},{353,1687,3}, {352,1685,3},{352,1680,3},{355,1677,3},{355,1670,3},{353,1667,3},{348,1658,3}, {332,1655,3},{328,1653,3},{325,1653,3},{315,1648,3},{307,1652,3},{300,1647,3}, {292,1647,3},{288,1650,3},{285,1650,3},{278,1647,3},{273,1645,3},{268,1643,3}, {263,1640,3},{260,1638,3},{255,1637,3},{250,1633,3},{245,1632,3},{240,1630,3}, {235,1627,3},{230,1625,3},{227,1623,3},{222,1620,3},{62678,1648,131},{62683,1660,3}, {62686,1662,3},{62689,1668,3},{62686,1670,3},{62686,1673,3},{62691,1678,3}, {62696,1677,3},{62699,1680,3},{62708,1677,3},{62709,1677,3},{62711,1678,3}, {62709,1682,3},{62714,1680,3},{62714,1685,3},{62716,1685,3},{62718,1683,3}, {62719,1685,3},{62718,1688,3},{62726,1688,3},{62729,1692,3},{62729,1695,3}, {62731,1698,3},{62729,1700,3},{62733,1703,3},{62733,1707,3},{62731,1710,3}, {62726,1713,3},{62726,1718,3},{62716,1718,3},{62713,1722,3},{62711,1723,3}, {62714,1732,3},{62713,1735,3},{62706,1737,3},{62701,1740,3},{62696,1740,3}, {62693,1738,3},{62689,1732,3},{62686,1735,3},{62681,1737,3},{62679,1740,3}, {62678,1742,3},{62668,1740,3},{62664,1742,3},{62666,1755,3},{62668,1758,3}, {62666,1760,3},{62661,1760,3},{62659,1763,3},{62659,1767,3},{62661,1770,3}, {62659,1772,3},{62661,1775,3},{62658,1792,3},{62656,1797,3},{62649,1805,3}, {62644,1818,3},{62648,1822,3},{62648,1833,3},{62646,1838,3},{62648,1847,3}, {62648,1850,3},{62649,1855,3},{62653,1872,3},{62649,1895,3},{62643,1902,3}, {62643,1905,3},{62639,1912,3},{62643,1918,3},{62646,1923,3},{62646,1928,3}, {62648,1930,3},{62651,1927,3},{62656,1923,3},{62661,1927,3},{62663,1937,3}, {62666,1947,3},{62669,1950,3},{62676,1952,3},{62678,1953,3},{62683,1957,3}, {62684,1965,3},{62684,1967,3},{62686,1972,3},{62688,1973,3},{62686,1980,3}, {62688,1983,3},{62693,1987,3},{62693,2000,3},{62694,2000,3},{62701,2000,3}, {62706,2000,3},{62711,2000,3},{62718,2000,3},{62723,2000,3},{62728,2000,3}, {62734,2000,3},{62739,2000,3},{62744,2000,3},{62751,2000,3},{62756,2000,3}, {62761,2000,3},{62766,2000,3},{62773,2000,3},{62778,2000,3},{62783,2000,3}, {62789,2000,3},{62794,2000,3},{62799,2000,3},{62806,2000,3},{62811,2000,3}, {62816,2000,3},{62823,2000,3},{62828,2000,3},{62833,2000,3},{62838,2000,3}, {62844,2000,3},{62849,2000,3},{62854,2000,3},{62861,2000,3},{62866,2000,3}, {62871,2000,3},{62878,2000,3},{62883,2000,3},{62888,2000,3},{62894,2000,3}, {62899,2000,3},{62904,2000,3},{62911,2000,3},{62916,2000,3},{62921,2000,3}, {62926,2000,3},{62933,2000,3},{62938,2000,3},{62943,2000,3},{62949,2000,3}, {62954,2000,3},{62959,2000,3},{62966,2000,3},{62971,2000,3},{62976,2000,3}, {62983,2000,3},{62988,2000,3},{62993,2000,3},{62999,2000,3},{63004,2000,3}, {63009,2000,3},{63016,2000,3},{63021,2000,3},{63026,2000,3},{63031,2000,3}, {63038,2000,3},{63043,2000,3},{63048,2000,3},{63054,2000,3},{63059,2000,3}, {63048,2013,3},{63044,2025,3},{63038,2030,3},{63033,2038,3},{63028,2040,3}, {63019,2047,3},{63016,2045,3},{63013,2050,3},{63009,2050,3},{63008,2053,3}, {63004,2053,3},{62998,2057,3},{62996,2062,3},{62993,2062,3},{62993,2063,3}, {62989,2063,3},{62989,2068,3},{62989,2067,3},{62988,2063,3},{62983,2063,3}, {62979,2068,3},{62978,2068,3},{62974,2065,3},{62971,2068,3},{62968,2068,3}, {62964,2073,3},{62958,2077,3},{62953,2075,3},{62954,2078,3},{62951,2078,3}, {62948,2082,3},{62939,2083,3},{62936,2082,3},{62929,2082,3},{62921,2087,3}, {62918,2082,3},{62911,2080,3},{62904,2075,3},{62901,2070,3},{62898,2068,3}, {62891,2062,3},{62881,2060,3},{62878,2063,3},{62868,2060,3},{62853,2065,3}, {62851,2068,3},{62846,2070,3},{62849,2072,3},{62849,2077,3},{62854,2083,3}, {62856,2090,3},{62854,2097,3},{62851,2100,3},{62849,2110,3},{62849,2115,3}, {62851,2123,3},{62851,2130,3},{62854,2138,3},{62853,2145,3},{62851,2152,3}, {62851,2158,3},{62849,2162,3},{62849,2167,3},{62854,2175,3},{62856,2177,3}, {62859,2178,3},{62866,2177,3},{62868,2177,3},{62869,2182,3},{62869,2195,3}, {62873,2205,3},{62883,2213,3},{62896,2220,3},{62899,2223,3},{62903,2225,3}, {62904,2235,3},{62908,2237,3},{62909,2240,3},{62913,2242,3},{62916,2250,3}, {62914,2253,3},{62918,2257,3},{62921,2257,3},{62924,2262,3},{62928,2263,3}, {62929,2267,3},{62934,2265,3},{62936,2272,3},{62944,2273,3},{62948,2270,3}, {62949,2273,3},{62951,2273,3},{62953,2277,3},{62954,2277,3},{62958,2273,3}, {62959,2275,3},{62963,2277,3},{62969,2282,3},{62971,2280,3},{62974,2282,3}, {62974,2283,3},{62979,2282,3},{62984,2285,3},{62988,2283,3},{62989,2288,3}, {62996,2292,3},{62999,2297,3},{63003,2297,3},{63004,2300,3},{63006,2302,3}, {63006,2305,3},{63004,2307,3},{63003,2308,3},{63006,2310,3},{63009,2322,3}, {63009,2330,3},{63006,2342,3},{63008,2347,3},{63003,2350,3},{63003,2353,3}, {62998,2358,3},{62998,2362,3},{62991,2368,3},{62989,2375,3},{62986,2377,3}, {62984,2382,3},{62979,2383,3},{62978,2387,3},{62974,2390,3},{62973,2393,3}, {62974,2397,3},{62974,2400,3},{62969,2400,3},{62974,2413,3},{62973,2417,3}, {62974,2418,3},{62966,2428,3},{62964,2428,3},{62964,2432,3},{62961,2435,3}, {62959,2440,3},{62963,2445,3},{62958,2458,3},{62954,2463,3},{62953,2470,3}, {62954,2473,3},{62953,2480,3},{62954,2490,3},{62963,2503,3},{62963,2510,3}, {62961,2513,3},{62961,2535,3},{62969,2552,3},{62974,2558,3},{62993,2568,3}, {63009,2573,3},{63014,2577,3},{63044,2587,3},{63063,2587,3},{63061,2590,3}, {63064,2595,3},{63063,2598,3},{63064,2602,3},{63073,2627,3},{63073,2642,3}, {63078,2647,3},{63086,2650,3},{63093,2655,3},{63096,2663,3},{63101,2665,3}, {63104,2672,3},{63109,2685,3},{63121,2687,3},{63124,2687,3},{63128,2688,3}, {63166,2697,3},{63168,2698,3},{63169,2700,3},{63173,2702,3},{63169,2703,3}, {63168,2705,3},{63169,2707,3},{63174,2707,3},{63176,2710,3},{63179,2712,3}, {63179,2715,3},{63183,2713,3},{63183,2720,3},{63186,2720,3},{63189,2728,3}, {63196,2735,3},{63194,2738,3},{63198,2740,3},{63198,2742,3},{63194,2743,3}, {63198,2745,3},{63198,2753,3},{63203,2757,3},{63209,2757,3},{63213,2760,3}, {63213,2765,3},{63216,2770,3},{63214,2772,3},{63213,2775,3},{63219,2778,3}, {63223,2777,3},{63223,2782,3},{63226,2782,3},{63228,2788,3},{63231,2795,3}, {63241,2793,3},{63241,2797,3},{63244,2803,3},{63248,2805,3},{63253,2805,3}, {63253,2808,3},{63256,2812,3},{63258,2815,3},{63266,2817,3},{63269,2820,3}, {63271,2827,3},{63274,2830,3},{63279,2837,3},{63279,2845,3},{63278,2853,3}, {63279,2857,3},{63279,2863,3},{63284,2873,3},{63288,2883,3},{63289,2883,3}, {63291,2888,3},{63291,2892,3},{63298,2897,3},{63304,2897,3},{63311,2902,3}, {63313,2902,3},{63314,2917,3},{63316,2920,3},{63318,2923,3},{63318,2937,3}, {63319,2947,3},{63318,2953,3},{63321,2955,3},{63323,2958,3},{63321,2962,3}, {63323,2963,3},{63324,2965,3},{63323,2967,3},{63323,2977,3},{63318,2983,3}, {63318,2993,3},{63306,3012,3},{63306,3025,3},{63301,3030,3},{63303,3040,3}, {63304,3048,3},{63304,3057,3},{63304,3058,3},{63303,3063,3},{63306,3067,3}, {63308,3090,3},{63304,3103,3},{63303,3108,3},{63304,3117,3},{63299,3120,3}, {63299,3127,3},{63294,3130,3},{63288,3132,3},{63283,3133,3},{63278,3137,3}, {63271,3138,3},{63266,3140,3},{63261,3142,3},{63256,3143,3},{63249,3145,3}, {63244,3147,3},{63239,3148,3},{63234,3150,3},{63228,3152,3},{63223,3155,3}, {63218,3157,3},{63211,3155,3},{63206,3155,3},{63199,3155,3},{63194,3153,3}, {63188,3155,3},{63174,3168,3},{63168,3168,3},{63151,3177,3},{63143,3188,3}, {63119,3188,3},{63104,3197,3},{63089,3202,3},{63069,3200,3},{63033,3202,3}, {62998,3202,3},{62994,3198,3},{62984,3198,3},{62983,3200,3},{62971,3202,3}, {62969,3198,3},{62954,3192,3},{62941,3197,3},{62936,3188,3},{62939,3182,3}, {62963,3142,3},{62961,3132,3},{62944,3113,3},{62941,3112,3},{62926,3107,3}, {62913,3097,3},{62898,3083,3},{62889,3080,3},{62856,3082,3},{62854,3082,3}, {62856,3087,3},{62859,3090,3},{62856,3090,3},{62853,3092,3},{62848,3097,3}, {62846,3098,3},{62843,3098,3},{62839,3097,3},{62833,3098,3},{62828,3105,3}, {62819,3115,3},{62806,3148,3},{62808,3198,3},{62809,3197,3},{62824,3197,3}, {62843,3200,3},{62854,3200,3},{62854,3208,3},{62853,3213,3},{62851,3218,3}, {62853,3223,3},{62849,3233,3},{62851,3288,3},{62824,3283,3},{62819,3280,3}, {62811,3278,3},{62806,3277,3},{62801,3275,3},{62796,3272,3},{62791,3270,3}, {62786,3268,3},{62781,3267,3},{62776,3265,3},{62771,3263,3},{62766,3263,3}, {62759,3262,3},{62754,3260,3},{62748,3258,3},{62743,3260,3},{62719,3255,3}, {62698,3243,3},{62696,3240,3},{62696,3242,3},{62693,3243,3},{62683,3238,3}, {62673,3228,3},{62669,3223,3},{62664,3218,3},{62656,3210,3},{62658,3205,3}, {62656,3200,3},{62654,3200,3},{62653,3202,3},{62654,3207,3},{62648,3200,3}, {62643,3188,3},{62643,3183,3},{62643,3177,3},{62641,3178,3},{62634,3172,3}, {62631,3167,3},{62628,3163,3},{62623,3158,3},{62619,3155,3},{62616,3150,3}, {62611,3147,3},{62608,3143,3},{62601,3137,3},{62594,3132,3},{62591,3128,3}, {62586,3123,3},{62581,3120,3},{62578,3118,3},{62571,3113,3},{62568,3112,3}, {62563,3110,3},{62559,3107,3},{62554,3105,3},{62549,3105,3},{62549,3102,3}, {62546,3100,3},{62548,3107,3},{62546,3105,3},{62528,3087,3},{62503,3073,3}, {62488,3063,3},{62486,3062,3},{62471,3052,3},{62451,3040,3},{62444,3032,3}, {62439,3030,3},{62418,3010,3},{62408,3002,3},{62394,2985,3},{62391,2977,3}, {62381,2963,3},{62378,2963,3},{62374,2955,3},{62373,2953,3},{62368,2940,3}, {62366,2942,3},{62363,2940,3},{62361,2937,3},{62358,2935,3},{62356,2932,3}, {62341,2922,3},{62338,2915,3},{62329,2910,3},{62316,2895,3},{62308,2887,3}, {62301,2878,3},{62298,2873,3},{62291,2865,3},{62289,2865,3},{62283,2857,3}, {62279,2853,3},{62268,2837,3},{62266,2837,3},{62256,2813,3},{62246,2807,3}, {62238,2793,3},{62233,2790,3},{62224,2773,3},{62216,2763,3},{62211,2752,3}, {62208,2750,3},{62208,2747,3},{62206,2747,3},{62201,2738,3},{62199,2733,3}, {62191,2722,3},{62186,2712,3},{62183,2710,3},{62179,2700,3},{62178,2692,3}, {62173,2685,3},{62171,2673,3},{62168,2665,3},{62164,2663,3},{62164,2658,3}, {62161,2653,3},{62159,2648,3},{62159,2645,3},{62161,2637,3},{62159,2628,3}, {62164,2608,3},{62164,2598,3},{62163,2585,3},{62159,2572,3},{62156,2568,3}, {62151,2563,3},{62143,2562,3},{62136,2568,3},{62133,2570,3},{62133,2565,3}, {62131,2563,3},{62131,2557,3},{62133,2548,3},{62133,2540,3},{62139,2523,3}, {62139,2503,3},{62136,2492,3},{62128,2492,3},{62123,2483,3},{62119,2483,3}, {62118,2487,3},{62116,2483,3},{62118,2480,3},{62118,2470,3},{62119,2465,3}, {62118,2460,3},{62119,2452,3},{62126,2438,3},{62126,2427,3},{62131,2415,3}, {62133,2397,3},{62138,2368,3},{62138,2355,3},{62134,2340,3},{62131,2337,3}, {62128,2337,3},{62124,2340,3},{62128,2307,3},{62131,2305,3},{62133,2300,3}, {62128,2305,3},{62128,2300,3},{62128,2297,3},{62131,2280,3},{62134,2278,3}, {62136,2280,3},{62138,2273,3},{62133,2278,3},{62133,2277,3},{62136,2258,3}, {62136,2255,3},{62131,2247,3},{62129,2240,3},{62131,2230,3},{62126,2215,3}, {62121,2212,3},{62118,2215,3},{62114,2195,3},{62109,2192,3},{62106,2193,3}, {62103,2190,3},{62098,2180,3},{62098,2165,3},{62101,2153,3},{62098,2143,3}, {62096,2142,3},{62093,2130,3},{62099,2107,3},{62099,2095,3},{62096,2082,3}, {62094,2085,3},{62091,2087,3},{62089,2085,3},{62093,2067,3},{62089,2050,3}, {62086,2043,3},{62079,2038,3},{62074,2027,3},{62068,2022,3},{62068,2017,3}, {62063,2007,3},{62059,2005,3},{62056,2005,3},{62054,2000,3},{62054,1997,3}, {62058,1990,3},{62061,1985,3},{62061,1968,3},{62058,1965,3},{62064,1955,3}, {62069,1952,3},{62071,1945,3},{62074,1942,3},{62076,1938,3},{62074,1930,3}, {62083,1937,3},{62089,1933,3},{62094,1928,3},{62093,1922,3},{62096,1912,3}, {62099,1908,3},{62101,1912,3},{62106,1913,3},{62101,1908,3},{62103,1900,3}, {62099,1897,3},{62101,1893,3},{62098,1882,3},{62101,1880,3},{62103,1882,3}, {62106,1880,3},{62111,1885,3},{62118,1882,3},{62121,1885,3},{62126,1882,3}, {62128,1877,3},{62129,1862,3},{62126,1848,3},{62123,1845,3},{62119,1843,3}, {62113,1848,3},{62103,1847,3},{62101,1848,3},{62104,1842,3},{62111,1838,3}, {62113,1838,3},{62118,1837,3},{62119,1832,3},{62123,1832,3},{62124,1835,3}, {62129,1835,3},{62129,1833,3},{62133,1832,3},{62138,1837,3},{62144,1837,3}, {62144,1847,3},{62148,1848,3},{62151,1848,3},{62159,1843,3},{62166,1843,3}, {62173,1840,3},{62174,1837,3},{62178,1833,3},{62179,1832,3},{62186,1832,3}, {62189,1830,3},{62194,1823,3},{62201,1815,3},{62203,1817,3},{62214,1808,3}, {62218,1805,3},{62223,1797,3},{62226,1795,3},{62226,1800,3},{62221,1803,3}, {62216,1810,3},{62216,1812,3},{62218,1813,3},{62221,1810,3},{62226,1803,3}, {62233,1803,3},{62236,1798,3},{62234,1795,3},{62233,1795,3},{62231,1792,3}, {62233,1790,3},{62234,1790,3},{62236,1788,3},{62243,1788,3},{62244,1787,3}, {62249,1788,3},{62253,1785,3},{62256,1790,3},{62263,1790,3},{62264,1792,3}, {62264,1795,3},{62266,1797,3},{62263,1798,3},{62258,1805,3},{62258,1813,3}, {62268,1825,3},{62273,1828,3},{62288,1833,3},{62303,1832,3},{62308,1835,3}, {62326,1830,3},{62331,1830,3},{62341,1827,3},{62346,1828,3},{62353,1823,3}, {62361,1822,3},{62368,1818,3},{62391,1800,3},{62399,1792,3},{62411,1785,3}, {62414,1780,3},{62433,1768,3},{62444,1760,3},{62456,1755,3},{62461,1753,3}, {62468,1748,3},{62476,1745,3},{62501,1728,3},{62509,1727,3},{62521,1720,3}, {62539,1715,3},{62553,1708,3},{62568,1705,3},{62579,1700,3},{62583,1700,3}, {62599,1693,3},{62606,1688,3},{62611,1687,3},{62614,1685,3},{62628,1682,3}, {62633,1675,3},{62638,1673,3},{62646,1667,3},{62649,1660,3},{62659,1657,3}, {62664,1657,3},{62673,1647,3},{62678,1648,3},{62674,2870,131},{62668,2872,3}, {62666,2878,3},{62661,2880,3},{62659,2887,3},{62648,2895,3},{62644,2900,3}, {62646,2902,3},{62643,2907,3},{62639,2907,3},{62634,2918,3},{62629,2923,3}, {62628,2933,3},{62621,2933,3},{62619,2937,3},{62601,2945,3},{62598,2943,3}, {62593,2942,3},{62591,2935,3},{62588,2930,3},{62581,2930,3},{62579,2932,3}, {62578,2930,3},{62574,2930,3},{62573,2922,3},{62569,2917,3},{62566,2917,3}, {62564,2915,3},{62561,2913,3},{62554,2912,3},{62551,2915,3},{62544,2917,3}, {62543,2912,3},{62541,2910,3},{62528,2883,3},{62526,2873,3},{62523,2867,3}, {62524,2855,3},{62521,2848,3},{62523,2842,3},{62519,2838,3},{62511,2832,3}, {62511,2825,3},{62508,2822,3},{62503,2825,3},{62499,2825,3},{62496,2823,3}, {62491,2815,3},{62488,2817,3},{62481,2815,3},{62476,2810,3},{62469,2810,3}, {62471,2807,3},{62473,2793,3},{62476,2788,3},{62474,2785,3},{62476,2773,3}, {62484,2767,3},{62488,2762,3},{62496,2757,3},{62501,2747,3},{62504,2747,3}, {62504,2745,3},{62504,2738,3},{62506,2738,3},{62511,2737,3},{62514,2737,3}, {62523,2740,3},{62523,2733,3},{62531,2730,3},{62536,2723,3},{62563,2710,3}, {62566,2707,3},{62568,2703,3},{62573,2702,3},{62574,2703,3},{62573,2705,3}, {62576,2707,3},{62574,2708,3},{62578,2712,3},{62579,2720,3},{62583,2730,3}, {62588,2732,3},{62588,2735,3},{62591,2737,3},{62596,2742,3},{62599,2740,3}, {62603,2745,3},{62608,2747,3},{62609,2752,3},{62614,2752,3},{62621,2760,3}, {62628,2765,3},{62629,2763,3},{62629,2767,3},{62633,2763,3},{62633,2767,3}, {62636,2768,3},{62638,2772,3},{62641,2772,3},{62643,2775,3},{62644,2775,3}, {62644,2788,3},{62649,2790,3},{62651,2793,3},{62648,2797,3},{62648,2800,3}, {62648,2802,3},{62651,2802,3},{62654,2807,3},{62663,2812,3},{62666,2817,3}, {62664,2820,3},{62666,2835,3},{62673,2840,3},{62674,2857,3},{62679,2865,3}, {62674,2870,3},{62853,3213,131},{62854,3208,3},{62854,3200,3},{62843,3200,3}, {62824,3197,3},{62809,3197,3},{62808,3198,3},{62806,3148,3},{62819,3115,3}, {62828,3105,3},{62833,3098,3},{62839,3097,3},{62843,3098,3},{62846,3098,3}, {62848,3097,3},{62853,3092,3},{62856,3090,3},{62859,3090,3},{62856,3087,3}, {62854,3082,3},{62856,3082,3},{62889,3080,3},{62898,3083,3},{62913,3097,3}, {62926,3107,3},{62941,3112,3},{62944,3113,3},{62961,3132,3},{62963,3142,3}, {62939,3182,3},{62936,3188,3},{62941,3197,3},{62938,3200,3},{62934,3208,3}, {62933,3207,3},{62919,3210,3},{62909,3207,3},{62896,3207,3},{62886,3213,3}, {62853,3213,3},{63059,2000,131},{63064,2000,3},{63071,2000,3},{63076,2000,3}, {63081,2000,3},{63088,2000,3},{63093,2000,3},{63098,2000,3},{63104,2000,3}, {63109,2000,3},{63114,2000,3},{63121,2000,3},{63126,2000,3},{63131,2000,3}, {63136,2000,3},{63143,2000,3},{63148,2000,3},{63153,2000,3},{63159,2000,3}, {63164,2000,3},{63169,2000,3},{63176,2000,3},{63181,2000,3},{63186,2000,3}, {63193,2000,3},{63198,2000,3},{63203,2000,3},{63209,2000,3},{63214,2000,3}, {63219,2000,3},{63224,2000,3},{63231,2000,3},{63236,2000,3},{63241,2000,3}, {63248,2000,3},{63253,2000,3},{63258,2000,3},{63264,2000,3},{63269,2000,3}, {63274,2000,3},{63281,2000,3},{63286,2000,3},{63291,2000,3},{63298,2000,3}, {63303,2000,3},{63308,2000,3},{63313,2000,3},{63319,2000,3},{63324,2000,3}, {63329,2000,3},{63336,2000,3},{63336,2005,3},{63336,2012,3},{63336,2017,3}, {63336,2023,3},{63336,2030,3},{63336,2035,3},{63336,2042,3},{63336,2047,3}, {63336,2053,3},{63336,2058,3},{63336,2065,3},{63336,2072,3},{63336,2077,3}, {63336,2083,3},{63336,2088,3},{63336,2095,3},{63336,2098,3},{63336,2100,3}, {63341,2100,3},{63348,2100,3},{63353,2100,3},{63358,2100,3},{63364,2100,3}, {63369,2100,3},{63374,2100,3},{63381,2100,3},{63386,2100,3},{63391,2100,3}, {63398,2100,3},{63403,2100,3},{63408,2100,3},{63413,2100,3},{63419,2100,3}, {63424,2100,3},{63429,2100,3},{63436,2100,3},{63441,2100,3},{63446,2100,3}, {63453,2100,3},{63458,2100,3},{63463,2100,3},{63469,2100,3},{63474,2100,3}, {63479,2100,3},{63484,2100,3},{63491,2100,3},{63496,2100,3},{63501,2100,3}, {63508,2100,3},{63513,2100,3},{63518,2100,3},{63524,2100,3},{63529,2100,3}, {63534,2100,3},{63539,2100,3},{63546,2100,3},{63551,2100,3},{63556,2100,3}, {63563,2100,3},{63568,2100,3},{63573,2100,3},{63579,2100,3},{63584,2100,3}, {63589,2100,3},{63594,2100,3},{63601,2100,3},{63606,2100,3},{63611,2100,3}, {63618,2100,3},{63623,2100,3},{63628,2100,3},{63634,2100,3},{63639,2100,3}, {63644,2100,3},{63649,2100,3},{63656,2100,3},{63661,2100,3},{63666,2100,3}, {63673,2100,3},{63678,2100,3},{63683,2100,3},{63688,2100,3},{63694,2100,3}, {63699,2100,3},{63704,2100,3},{63704,2105,3},{63704,2112,3},{63704,2117,3}, {63704,2123,3},{63704,2130,3},{63706,2137,3},{63706,2147,3},{63708,2157,3}, {63709,2162,3},{63709,2168,3},{63711,2175,3},{63713,2182,3},{63713,2188,3}, {63714,2195,3},{63716,2200,3},{63718,2207,3},{63718,2213,3},{63719,2220,3}, {63721,2227,3},{63721,2232,3},{63723,2238,3},{63724,2245,3},{63724,2252,3}, {63726,2257,3},{63728,2263,3},{63728,2270,3},{63729,2277,3},{63731,2283,3}, {63733,2288,3},{63733,2295,3},{63734,2302,3},{63736,2308,3},{63736,2330,3}, {63734,2332,3},{63728,2333,3},{63719,2340,3},{63716,2340,3},{63716,2345,3}, {63713,2347,3},{63713,2350,3},{63709,2352,3},{63706,2352,3},{63703,2355,3}, {63701,2357,3},{63699,2355,3},{63696,2357,3},{63689,2357,3},{63688,2362,3}, {63689,2365,3},{63693,2368,3},{63693,2372,3},{63709,2387,3},{63711,2390,3}, {63716,2392,3},{63719,2400,3},{63724,2405,3},{63724,2410,3},{63733,2418,3}, {63736,2423,3},{63733,2430,3},{63741,2437,3},{63741,2442,3},{63731,2450,3}, {63731,2457,3},{63734,2462,3},{63741,2465,3},{63743,2470,3},{63746,2473,3}, {63748,2477,3},{63749,2477,3},{63753,2483,3},{63754,2493,3},{63756,2495,3}, {63758,2497,3},{63754,2498,3},{63754,2500,3},{63753,2502,3},{63754,2505,3}, {63753,2505,3},{63753,2507,3},{63753,2510,3},{63756,2513,3},{63758,2518,3}, {63756,2527,3},{63749,2523,3},{63744,2523,3},{63729,2532,3},{63723,2540,3}, {63708,2548,3},{63696,2553,3},{63688,2560,3},{63686,2563,3},{63679,2568,3}, {63674,2578,3},{63656,2582,3},{63653,2585,3},{63646,2595,3},{63641,2597,3}, {63636,2598,3},{63629,2597,3},{63626,2597,3},{63616,2603,3},{63608,2605,3}, {63583,2617,3},{63579,2625,3},{63579,2630,3},{63578,2633,3},{63574,2635,3}, {63571,2633,3},{63569,2640,3},{63563,2643,3},{63561,2652,3},{63558,2657,3}, {63551,2662,3},{63548,2670,3},{63543,2673,3},{63541,2682,3},{63536,2693,3}, {63534,2698,3},{63536,2703,3},{63534,2707,3},{63529,2713,3},{63529,2718,3}, {63526,2722,3},{63511,2728,3},{63486,2728,3},{63489,2733,3},{63489,2747,3}, {63488,2757,3},{63489,2762,3},{63488,2763,3},{63488,2770,3},{63484,2772,3}, {63479,2772,3},{63476,2770,3},{63461,2773,3},{63453,2772,3},{63449,2770,3}, {63443,2768,3},{63438,2770,3},{63429,2768,3},{63423,2773,3},{63419,2780,3}, {63414,2783,3},{63404,2792,3},{63401,2792,3},{63391,2797,3},{63389,2795,3}, {63388,2798,3},{63386,2797,3},{63384,2798,3},{63379,2802,3},{63378,2813,3}, {63376,2822,3},{63378,2828,3},{63369,2850,3},{63373,2857,3},{63371,2865,3}, {63368,2868,3},{63361,2887,3},{63359,2900,3},{63356,2907,3},{63353,2908,3}, {63348,2903,3},{63343,2903,3},{63333,2907,3},{63329,2912,3},{63328,2918,3}, {63329,2925,3},{63324,2928,3},{63318,2937,3},{63318,2923,3},{63316,2920,3}, {63314,2917,3},{63313,2902,3},{63311,2902,3},{63304,2897,3},{63298,2897,3}, {63291,2892,3},{63291,2888,3},{63289,2883,3},{63288,2883,3},{63284,2873,3}, {63279,2863,3},{63279,2857,3},{63278,2853,3},{63279,2845,3},{63279,2837,3}, {63274,2830,3},{63271,2827,3},{63269,2820,3},{63266,2817,3},{63258,2815,3}, {63256,2812,3},{63253,2808,3},{63253,2805,3},{63248,2805,3},{63244,2803,3}, {63241,2797,3},{63241,2793,3},{63231,2795,3},{63228,2788,3},{63226,2782,3}, {63223,2782,3},{63223,2777,3},{63219,2778,3},{63213,2775,3},{63214,2772,3}, {63216,2770,3},{63213,2765,3},{63213,2760,3},{63209,2757,3},{63203,2757,3}, {63198,2753,3},{63198,2745,3},{63194,2743,3},{63198,2742,3},{63198,2740,3}, {63194,2738,3},{63196,2735,3},{63189,2728,3},{63186,2720,3},{63183,2720,3}, {63183,2713,3},{63179,2715,3},{63179,2712,3},{63176,2710,3},{63174,2707,3}, {63169,2707,3},{63168,2705,3},{63169,2703,3},{63173,2702,3},{63169,2700,3}, {63168,2698,3},{63166,2697,3},{63128,2688,3},{63124,2687,3},{63121,2687,3}, {63109,2685,3},{63104,2672,3},{63101,2665,3},{63096,2663,3},{63093,2655,3}, {63086,2650,3},{63078,2647,3},{63073,2642,3},{63073,2627,3},{63064,2602,3}, {63063,2598,3},{63064,2595,3},{63061,2590,3},{63063,2587,3},{63044,2587,3}, {63014,2577,3},{63009,2573,3},{62993,2568,3},{62974,2558,3},{62969,2552,3}, {62961,2535,3},{62961,2513,3},{62963,2510,3},{62963,2503,3},{62954,2490,3}, {62953,2480,3},{62954,2473,3},{62953,2470,3},{62954,2463,3},{62958,2458,3}, {62963,2445,3},{62959,2440,3},{62961,2435,3},{62964,2432,3},{62964,2428,3}, {62966,2428,3},{62974,2418,3},{62973,2417,3},{62974,2413,3},{62969,2400,3}, {62974,2400,3},{62974,2397,3},{62973,2393,3},{62974,2390,3},{62978,2387,3}, {62979,2383,3},{62984,2382,3},{62986,2377,3},{62989,2375,3},{62991,2368,3}, {62998,2362,3},{62998,2358,3},{63003,2353,3},{63003,2350,3},{63008,2347,3}, {63006,2342,3},{63009,2330,3},{63009,2322,3},{63006,2310,3},{63003,2308,3}, {63004,2307,3},{63006,2305,3},{63006,2302,3},{63004,2300,3},{63003,2297,3}, {62999,2297,3},{62996,2292,3},{62989,2288,3},{62988,2283,3},{62984,2285,3}, {62979,2282,3},{62974,2283,3},{62974,2282,3},{62971,2280,3},{62969,2282,3}, {62963,2277,3},{62959,2275,3},{62958,2273,3},{62954,2277,3},{62953,2277,3}, {62951,2273,3},{62949,2273,3},{62948,2270,3},{62944,2273,3},{62936,2272,3}, {62934,2265,3},{62929,2267,3},{62928,2263,3},{62924,2262,3},{62921,2257,3}, {62918,2257,3},{62914,2253,3},{62916,2250,3},{62913,2242,3},{62909,2240,3}, {62908,2237,3},{62904,2235,3},{62903,2225,3},{62899,2223,3},{62896,2220,3}, {62883,2213,3},{62873,2205,3},{62869,2195,3},{62869,2182,3},{62868,2177,3}, {62866,2177,3},{62859,2178,3},{62856,2177,3},{62854,2175,3},{62849,2167,3}, {62849,2162,3},{62851,2158,3},{62851,2152,3},{62853,2145,3},{62854,2138,3}, {62851,2130,3},{62851,2123,3},{62849,2115,3},{62849,2110,3},{62851,2100,3}, {62854,2097,3},{62856,2090,3},{62854,2083,3},{62849,2077,3},{62849,2072,3}, {62846,2070,3},{62851,2068,3},{62853,2065,3},{62868,2060,3},{62878,2063,3}, {62881,2060,3},{62891,2062,3},{62898,2068,3},{62901,2070,3},{62904,2075,3}, {62911,2080,3},{62918,2082,3},{62921,2087,3},{62929,2082,3},{62936,2082,3}, {62939,2083,3},{62948,2082,3},{62951,2078,3},{62954,2078,3},{62953,2075,3}, {62958,2077,3},{62964,2073,3},{62968,2068,3},{62971,2068,3},{62974,2065,3}, {62978,2068,3},{62979,2068,3},{62983,2063,3},{62988,2063,3},{62989,2067,3}, {62989,2068,3},{62989,2063,3},{62993,2063,3},{62993,2062,3},{62996,2062,3}, {62998,2057,3},{63004,2053,3},{63008,2053,3},{63009,2050,3},{63013,2050,3}, {63016,2045,3},{63019,2047,3},{63028,2040,3},{63033,2038,3},{63038,2030,3}, {63044,2025,3},{63048,2013,3},{63059,2000,3},{63811,1177,131},{63813,1175,3}, {63834,1177,3},{63844,1178,3},{63853,1177,3},{63854,1182,3},{63868,1182,3}, {63873,1182,3},{63889,1182,3},{63926,1178,3},{63936,1182,3},{63949,1173,3}, {63953,1173,3},{63959,1175,3},{63961,1177,3},{63961,1183,3},{63961,1185,3}, {63959,1183,3},{63958,1183,3},{63959,1187,3},{63964,1192,3},{63971,1192,3}, {63976,1200,3},{63988,1203,3},{63996,1203,3},{64003,1205,3},{64014,1205,3}, {64018,1210,3},{64018,1213,3},{64019,1215,3},{64024,1213,3},{64023,1212,3}, {64026,1210,3},{64034,1215,3},{64041,1217,3},{64043,1218,3},{64053,1220,3}, {64054,1223,3},{64061,1228,3},{64068,1227,3},{64069,1228,3},{64088,1230,3}, {64098,1233,3},{64109,1235,3},{64118,1232,3},{64118,1233,3},{64121,1235,3}, {64126,1233,3},{64131,1233,3},{64133,1237,3},{64138,1238,3},{64141,1240,3}, {64148,1240,3},{64149,1245,3},{64148,1248,3},{64151,1250,3},{64171,1252,3}, {64174,1252,3},{64179,1253,3},{64181,1252,3},{64184,1253,3},{64193,1252,3}, {64196,1253,3},{64196,1257,3},{64199,1260,3},{64201,1263,3},{64204,1265,3}, {64206,1263,3},{64211,1267,3},{64211,1268,3},{64214,1270,3},{64213,1272,3}, {64216,1277,3},{64221,1278,3},{64226,1285,3},{64231,1288,3},{64236,1293,3}, {64241,1297,3},{64253,1293,3},{64258,1297,3},{64276,1318,3},{64274,1320,3}, {64274,1323,3},{64276,1325,3},{64278,1327,3},{64278,1330,3},{64276,1332,3}, {64276,1337,3},{64286,1347,3},{64293,1347,3},{64299,1352,3},{64304,1358,3}, {64303,1355,3},{64303,1358,3},{64311,1365,3},{64319,1367,3},{64326,1370,3}, {64336,1372,3},{64343,1377,3},{64356,1380,3},{64378,1378,3},{64398,1380,3}, {64403,1378,3},{64406,1382,3},{64436,1385,3},{64443,1383,3},{64459,1372,3}, {64463,1373,3},{64466,1377,3},{64468,1377,3},{64488,1360,3},{64496,1353,3}, {64501,1353,3},{64508,1352,3},{64516,1345,3},{64524,1342,3},{64529,1337,3}, {64539,1332,3},{64541,1333,3},{64546,1333,3},{64553,1330,3},{64566,1318,3}, {64568,1318,3},{64571,1322,3},{64574,1322,3},{64579,1320,3},{64583,1320,3}, {64589,1317,3},{64594,1317,3},{64603,1315,3},{64628,1298,3},{64641,1303,3}, {64649,1313,3},{64638,1303,3},{64631,1300,3},{64628,1302,3},{64639,1308,3}, {64641,1313,3},{64646,1315,3},{64649,1318,3},{64654,1318,3},{64658,1322,3}, {64659,1325,3},{64656,1322,3},{64653,1320,3},{64656,1323,3},{64658,1327,3}, {64661,1328,3},{64659,1335,3},{64663,1338,3},{64671,1340,3},{64676,1337,3}, {64689,1335,3},{64689,1338,3},{64698,1338,3},{64704,1337,3},{64713,1330,3}, {64718,1328,3},{64719,1327,3},{64723,1327,3},{64731,1320,3},{64743,1315,3}, {64751,1310,3},{64756,1308,3},{64763,1305,3},{64766,1305,3},{64776,1298,3}, {64781,1298,3},{64789,1293,3},{64804,1288,3},{64811,1283,3},{64828,1283,3}, {64839,1280,3},{64843,1278,3},{64844,1280,3},{64846,1277,3},{64859,1267,3}, {64871,1255,3},{64898,1240,3},{64913,1235,3},{64926,1225,3},{64928,1225,3}, {64931,1230,3},{64929,1230,3},{64928,1227,3},{64926,1230,3},{64924,1228,3}, {64928,1235,3},{64929,1248,3},{64931,1253,3},{64931,1255,3},{64933,1257,3}, {64933,1263,3},{64934,1267,3},{64936,1268,3},{64934,1270,3},{64934,1280,3}, {64939,1290,3},{64948,1297,3},{64948,1305,3},{64946,1310,3},{64951,1318,3}, {64949,1325,3},{64948,1333,3},{64949,1338,3},{64951,1345,3},{64949,1353,3}, {64949,1377,3},{64953,1398,3},{64948,1403,3},{64949,1418,3},{64948,1425,3}, {64946,1447,3},{64948,1450,3},{64946,1460,3},{64949,1470,3},{64948,1478,3}, {64949,1483,3},{64949,1490,3},{64949,1495,3},{64949,1500,3},{64949,1505,3}, {64949,1512,3},{64949,1517,3},{64949,1522,3},{64949,1528,3},{64949,1533,3}, {64949,1538,3},{64949,1545,3},{64949,1550,3},{64951,1555,3},{64951,1562,3}, {64951,1567,3},{64949,1572,3},{64949,1577,3},{64949,1582,3},{64949,1588,3}, {64949,1595,3},{64949,1600,3},{64949,1605,3},{64949,1612,3},{64951,1617,3}, {64951,1622,3},{64951,1632,3},{64951,1637,3},{64948,1640,3},{64946,1643,3}, {64948,1652,3},{64946,1658,3},{64944,1660,3},{64939,1658,3},{64938,1658,3}, {64938,1660,3},{64929,1660,3},{64929,1663,3},{64928,1662,3},{64926,1663,3}, {64924,1665,3},{64923,1668,3},{64919,1672,3},{64916,1672,3},{64908,1670,3}, {64903,1672,3},{64901,1672,3},{64901,1668,3},{64899,1670,3},{64896,1668,3}, {64894,1672,3},{64889,1670,3},{64889,1672,3},{64886,1672,3},{64883,1675,3}, {64879,1673,3},{64876,1677,3},{64868,1678,3},{64864,1682,3},{64858,1683,3}, {64854,1687,3},{64851,1687,3},{64849,1690,3},{64846,1693,3},{64839,1692,3}, {64838,1695,3},{64834,1697,3},{64829,1697,3},{64829,1693,3},{64828,1692,3}, {64821,1693,3},{64819,1695,3},{64816,1695,3},{64811,1698,3},{64806,1700,3}, {64801,1710,3},{64794,1710,3},{64793,1712,3},{64794,1713,3},{64794,1715,3}, {64793,1718,3},{64791,1718,3},{64791,1715,3},{64789,1715,3},{64784,1718,3}, {64778,1722,3},{64773,1728,3},{64766,1728,3},{64766,1730,3},{64764,1730,3}, {64764,1732,3},{64761,1732,3},{64758,1733,3},{64758,1737,3},{64754,1737,3}, {64753,1740,3},{64751,1738,3},{64751,1742,3},{64749,1742,3},{64748,1745,3}, {64744,1743,3},{64743,1747,3},{64741,1747,3},{64741,1748,3},{64736,1750,3}, {64734,1755,3},{64733,1755,3},{64729,1752,3},{64728,1753,3},{64726,1763,3}, {64729,1773,3},{64728,1780,3},{64731,1785,3},{64731,1790,3},{64731,1795,3}, {64726,1800,3},{64726,1812,3},{64733,1812,3},{64736,1820,3},{64736,1833,3}, {64734,1838,3},{64736,1842,3},{64736,1853,3},{64741,1852,3},{64743,1853,3}, {64743,1868,3},{64743,1877,3},{64739,1877,3},{64736,1880,3},{64736,1890,3}, {64736,1893,3},{64736,1898,3},{64736,1903,3},{64736,1910,3},{64736,1915,3}, {64736,1920,3},{64736,1927,3},{64736,1932,3},{64736,1937,3},{64748,1935,3}, {64768,1940,3},{64778,1937,3},{64779,1947,3},{64784,1948,3},{64788,1953,3}, {64789,1953,3},{64799,1950,3},{64809,1948,3},{64821,1950,3},{64826,1953,3}, {64831,1957,3},{64836,1955,3},{64836,1960,3},{64836,1965,3},{64836,1970,3}, {64836,1977,3},{64836,1982,3},{64836,1987,3},{64836,1993,3},{64836,1998,3}, {64836,2003,3},{64836,2010,3},{64836,2015,3},{64836,2020,3},{64836,2027,3}, {64836,2032,3},{64844,2033,3},{64844,2058,3},{64844,2063,3},{64829,2057,3}, {64824,2055,3},{64813,2053,3},{64808,2053,3},{64808,2062,3},{64808,2067,3}, {64808,2073,3},{64808,2078,3},{64808,2083,3},{64808,2090,3},{64808,2095,3}, {64808,2100,3},{64808,2107,3},{64808,2112,3},{64808,2117,3},{64808,2123,3}, {64808,2128,3},{64808,2133,3},{64808,2140,3},{64808,2145,3},{64808,2150,3}, {64808,2157,3},{64808,2162,3},{64808,2167,3},{64808,2173,3},{64808,2178,3}, {64799,2183,3},{64796,2183,3},{64794,2185,3},{64791,2185,3},{64788,2187,3}, {64783,2183,3},{64778,2185,3},{64758,2177,3},{64751,2177,3},{64748,2177,3}, {64743,2175,3},{64736,2175,3},{64731,2180,3},{64724,2182,3},{64721,2187,3}, {64708,2188,3},{64704,2192,3},{64701,2190,3},{64694,2193,3},{64688,2193,3}, {64681,2193,3},{64678,2192,3},{64676,2193,3},{64673,2190,3},{64659,2188,3}, {64653,2187,3},{64633,2185,3},{64628,2183,3},{64613,2185,3},{64596,2178,3}, {64591,2182,3},{64574,2185,3},{64569,2187,3},{64563,2195,3},{64561,2195,3}, {64561,2198,3},{64558,2198,3},{64551,2202,3},{64549,2205,3},{64548,2207,3}, {64549,2208,3},{64546,2210,3},{64543,2217,3},{64536,2217,3},{64531,2220,3}, {64521,2220,3},{64509,2227,3},{64506,2227,3},{64499,2232,3},{64494,2230,3}, {64486,2227,3},{64483,2230,3},{64469,2230,3},{64466,2232,3},{64461,2232,3}, {64458,2230,3},{64454,2220,3},{64449,2217,3},{64441,2220,3},{64438,2218,3}, {64429,2225,3},{64418,2227,3},{64411,2223,3},{64411,2225,3},{64413,2230,3}, {64418,2233,3},{64423,2248,3},{64431,2252,3},{64433,2253,3},{64433,2260,3}, {64429,2265,3},{64426,2272,3},{64426,2278,3},{64431,2287,3},{64429,2290,3}, {64426,2295,3},{64426,2308,3},{64428,2315,3},{64428,2322,3},{64438,2337,3}, {64439,2348,3},{64434,2367,3},{64436,2377,3},{64433,2385,3},{64434,2388,3}, {64439,2390,3},{64443,2395,3},{64448,2397,3},{64449,2398,3},{64444,2398,3}, {64439,2402,3},{64424,2400,3},{64423,2403,3},{64408,2403,3},{64396,2408,3}, {64391,2403,3},{64383,2403,3},{64378,2400,3},{64371,2397,3},{64366,2400,3}, {64358,2400,3},{64354,2402,3},{64348,2398,3},{64316,2397,3},{64309,2403,3}, {64298,2405,3},{64281,2395,3},{64266,2392,3},{64258,2388,3},{64253,2390,3}, {64243,2400,3},{64236,2402,3},{64236,2397,3},{64236,2390,3},{64236,2385,3}, {64236,2380,3},{64236,2373,3},{64236,2368,3},{64236,2363,3},{64236,2357,3}, {64236,2352,3},{64236,2345,3},{64236,2340,3},{64236,2335,3},{64236,2328,3}, {64236,2323,3},{64236,2318,3},{64236,2312,3},{64236,2307,3},{64236,2300,3}, {64236,2295,3},{64236,2290,3},{64236,2283,3},{64236,2278,3},{64236,2273,3}, {64236,2267,3},{64236,2262,3},{64236,2257,3},{64236,2250,3},{64236,2245,3}, {64236,2238,3},{64236,2233,3},{64236,2228,3},{64236,2222,3},{64236,2217,3}, {64236,2212,3},{64236,2205,3},{64236,2200,3},{64229,2200,3},{64224,2200,3}, {64219,2200,3},{64214,2200,3},{64211,2200,3},{64209,2200,3},{64203,2200,3}, {64198,2200,3},{64193,2200,3},{64188,2200,3},{64183,2200,3},{64178,2200,3}, {64171,2200,3},{64166,2200,3},{64161,2200,3},{64156,2200,3},{64151,2200,3}, {64146,2200,3},{64141,2200,3},{64136,2200,3},{64131,2200,3},{64124,2200,3}, {64119,2200,3},{64114,2200,3},{64109,2200,3},{64104,2200,3},{64099,2200,3}, {64094,2200,3},{64089,2200,3},{64084,2200,3},{64079,2200,3},{64074,2200,3}, {64068,2200,3},{64063,2200,3},{64058,2200,3},{64053,2200,3},{64048,2200,3}, {64043,2200,3},{64038,2200,3},{64033,2200,3},{64028,2200,3},{64021,2200,3}, {64016,2200,3},{64011,2200,3},{64006,2200,3},{64001,2200,3},{63996,2200,3}, {63991,2200,3},{63986,2200,3},{63981,2200,3},{63976,2200,3},{63971,2200,3}, {63966,2200,3},{63959,2200,3},{63954,2200,3},{63949,2200,3},{63944,2200,3}, {63939,2200,3},{63934,2200,3},{63929,2200,3},{63924,2200,3},{63919,2200,3}, {63913,2207,3},{63908,2208,3},{63903,2212,3},{63888,2213,3},{63879,2222,3}, {63879,2225,3},{63876,2227,3},{63874,2230,3},{63859,2248,3},{63833,2273,3}, {63803,2307,3},{63788,2320,3},{63773,2348,3},{63773,2343,3},{63771,2338,3}, {63771,2332,3},{63769,2325,3},{63768,2320,3},{63768,2313,3},{63766,2308,3}, {63764,2302,3},{63764,2297,3},{63763,2292,3},{63761,2285,3},{63761,2280,3}, {63759,2273,3},{63758,2268,3},{63758,2262,3},{63756,2257,3},{63754,2250,3}, {63754,2245,3},{63753,2238,3},{63753,2233,3},{63751,2228,3},{63749,2222,3}, {63749,2217,3},{63748,2210,3},{63746,2205,3},{63746,2198,3},{63744,2193,3}, {63743,2187,3},{63743,2182,3},{63741,2175,3},{63741,2170,3},{63739,2163,3}, {63738,2158,3},{63738,2152,3},{63736,2147,3},{63734,2142,3},{63734,2137,3}, {63736,2135,3},{63739,2125,3},{63744,2120,3},{63739,2095,3},{63736,2088,3}, {63734,2088,3},{63734,2085,3},{63733,2082,3},{63734,2078,3},{63734,2077,3}, {63736,2075,3},{63734,2072,3},{63738,2063,3},{63738,2055,3},{63739,2052,3}, {63741,2047,3},{63744,2043,3},{63748,2032,3},{63746,2023,3},{63748,2017,3}, {63744,2010,3},{63746,2008,3},{63748,1997,3},{63749,1992,3},{63748,1985,3}, {63748,1978,3},{63746,1975,3},{63748,1973,3},{63748,1970,3},{63751,1967,3}, {63749,1955,3},{63751,1933,3},{63753,1933,3},{63753,1922,3},{63754,1920,3}, {63753,1917,3},{63754,1913,3},{63751,1912,3},{63753,1895,3},{63761,1875,3}, {63769,1867,3},{63773,1862,3},{63776,1860,3},{63778,1857,3},{63779,1853,3}, {63783,1853,3},{63788,1848,3},{63793,1845,3},{63798,1840,3},{63798,1835,3}, {63798,1828,3},{63798,1823,3},{63798,1817,3},{63798,1812,3},{63798,1807,3}, {63798,1800,3},{63798,1795,3},{63798,1790,3},{63798,1783,3},{63798,1778,3}, {63798,1772,3},{63798,1767,3},{63798,1760,3},{63798,1755,3},{63796,1748,3}, {63796,1742,3},{63796,1737,3},{63796,1732,3},{63796,1725,3},{63796,1720,3}, {63796,1713,3},{63796,1708,3},{63796,1702,3},{63796,1697,3},{63796,1690,3}, {63796,1685,3},{63798,1680,3},{63798,1673,3},{63798,1668,3},{63798,1662,3}, {63798,1657,3},{63798,1650,3},{63798,1645,3},{63798,1638,3},{63798,1633,3}, {63798,1628,3},{63798,1622,3},{63798,1617,3},{63798,1610,3},{63798,1605,3}, {63798,1598,3},{63798,1593,3},{63798,1587,3},{63798,1582,3},{63798,1575,3}, {63798,1570,3},{63798,1563,3},{63798,1558,3},{63798,1553,3},{63798,1547,3}, {63798,1542,3},{63798,1535,3},{63798,1530,3},{63798,1523,3},{63798,1518,3}, {63798,1512,3},{63798,1507,3},{63798,1500,3},{63798,1495,3},{63798,1490,3}, {63798,1483,3},{63798,1478,3},{63798,1472,3},{63798,1467,3},{63798,1460,3}, {63798,1455,3},{63798,1448,3},{63798,1443,3},{63798,1438,3},{63798,1432,3}, {63798,1427,3},{63798,1420,3},{63794,1418,3},{63793,1413,3},{63793,1398,3}, {63799,1388,3},{63809,1375,3},{63821,1352,3},{63824,1352,3},{63831,1347,3}, {63836,1337,3},{63836,1322,3},{63838,1315,3},{63838,1308,3},{63838,1298,3}, {63829,1283,3},{63823,1270,3},{63819,1262,3},{63814,1258,3},{63811,1245,3}, {63811,1242,3},{63814,1240,3},{63814,1238,3},{63813,1238,3},{63811,1223,3}, {63814,1217,3},{63818,1215,3},{63819,1203,3},{63816,1193,3},{63811,1187,3}, {63811,1183,3},{63809,1182,3},{63811,1177,3},{62678,1648,131},{62674,1645,3}, {62679,1635,3},{62693,1623,3},{62696,1618,3},{62711,1603,3},{62719,1590,3}, {62728,1582,3},{62733,1575,3},{62741,1568,3},{62749,1567,3},{62763,1553,3}, {62768,1552,3},{62771,1553,3},{62781,1547,3},{62791,1540,3},{62791,1537,3}, {62804,1530,3},{62811,1528,3},{62814,1527,3},{62819,1527,3},{62828,1527,3}, {62833,1523,3},{62839,1523,3},{62843,1522,3},{62844,1518,3},{62846,1515,3}, {62849,1517,3},{62866,1508,3},{62871,1508,3},{62873,1510,3},{62873,1513,3}, {62868,1515,3},{62876,1517,3},{62896,1508,3},{62903,1497,3},{62916,1497,3}, {62923,1493,3},{62923,1498,3},{62931,1498,3},{62938,1497,3},{62944,1490,3}, {62951,1492,3},{62956,1485,3},{62961,1483,3},{62964,1485,3},{62971,1485,3}, {62979,1488,3},{62981,1488,3},{62989,1485,3},{62993,1485,3},{62999,1482,3}, {63008,1480,3},{63018,1483,3},{63031,1485,3},{63041,1480,3},{63051,1480,3}, {63056,1478,3},{63064,1473,3},{63079,1460,3},{63083,1460,3},{63086,1462,3}, {63091,1462,3},{63111,1452,3},{63123,1447,3},{63139,1445,3},{63146,1452,3}, {63153,1452,3},{63161,1448,3},{63176,1450,3},{63194,1443,3},{63201,1448,3}, {63198,1448,3},{63203,1450,3},{63223,1445,3},{63218,1467,3},{63213,1475,3}, {63239,1467,3},{63273,1468,3},{63273,1463,3},{63268,1458,3},{63268,1453,3}, {63281,1452,3},{63308,1438,3},{63318,1430,3},{63324,1428,3},{63353,1402,3}, {63358,1395,3},{63364,1397,3},{63376,1388,3},{63388,1385,3},{63401,1373,3}, {63411,1368,3},{63423,1358,3},{63434,1352,3},{63451,1340,3},{63456,1338,3}, {63463,1338,3},{63471,1335,3},{63489,1325,3},{63506,1322,3},{63518,1318,3}, {63523,1313,3},{63529,1305,3},{63539,1302,3},{63543,1300,3},{63548,1297,3}, {63553,1295,3},{63558,1292,3},{63563,1288,3},{63568,1287,3},{63571,1283,3}, {63576,1282,3},{63581,1278,3},{63586,1275,3},{63589,1273,3},{63594,1270,3}, {63604,1268,3},{63613,1263,3},{63626,1257,3},{63631,1252,3},{63636,1247,3}, {63643,1247,3},{63664,1230,3},{63678,1213,3},{63689,1202,3},{63694,1200,3}, {63699,1200,3},{63704,1197,3},{63711,1195,3},{63728,1180,3},{63739,1177,3}, {63749,1177,3},{63754,1173,3},{63781,1172,3},{63798,1173,3},{63809,1175,3}, {63811,1177,3},{63809,1182,3},{63811,1183,3},{63811,1187,3},{63816,1193,3}, {63819,1203,3},{63818,1215,3},{63814,1217,3},{63811,1223,3},{63813,1238,3}, {63814,1238,3},{63814,1240,3},{63811,1242,3},{63811,1245,3},{63814,1258,3}, {63819,1262,3},{63823,1270,3},{63829,1283,3},{63838,1298,3},{63838,1308,3}, {63838,1315,3},{63836,1322,3},{63836,1337,3},{63831,1347,3},{63824,1352,3}, {63821,1352,3},{63809,1375,3},{63799,1388,3},{63793,1398,3},{63793,1413,3}, {63794,1418,3},{63798,1420,3},{63798,1427,3},{63798,1432,3},{63798,1438,3}, {63798,1443,3},{63798,1448,3},{63798,1455,3},{63798,1460,3},{63798,1467,3}, {63798,1472,3},{63798,1478,3},{63798,1483,3},{63798,1490,3},{63798,1495,3}, {63798,1500,3},{63798,1507,3},{63798,1512,3},{63798,1518,3},{63798,1523,3}, {63798,1530,3},{63798,1535,3},{63798,1542,3},{63798,1547,3},{63798,1553,3}, {63798,1558,3},{63798,1563,3},{63798,1570,3},{63798,1575,3},{63798,1582,3}, {63798,1587,3},{63798,1593,3},{63798,1598,3},{63798,1605,3},{63798,1610,3}, {63798,1617,3},{63798,1622,3},{63798,1628,3},{63798,1633,3},{63798,1638,3}, {63798,1645,3},{63798,1650,3},{63798,1657,3},{63798,1662,3},{63798,1668,3}, {63798,1673,3},{63798,1680,3},{63796,1685,3},{63796,1690,3},{63796,1697,3}, {63796,1702,3},{63796,1708,3},{63796,1713,3},{63796,1720,3},{63796,1725,3}, {63796,1732,3},{63796,1737,3},{63796,1742,3},{63796,1748,3},{63798,1755,3}, {63798,1760,3},{63798,1767,3},{63798,1772,3},{63798,1778,3},{63798,1783,3}, {63798,1790,3},{63798,1795,3},{63798,1800,3},{63798,1807,3},{63798,1812,3}, {63798,1817,3},{63798,1823,3},{63798,1828,3},{63798,1835,3},{63798,1840,3}, {63793,1845,3},{63788,1848,3},{63783,1853,3},{63779,1853,3},{63778,1857,3}, {63776,1860,3},{63773,1862,3},{63769,1867,3},{63761,1875,3},{63753,1895,3}, {63751,1912,3},{63754,1913,3},{63753,1917,3},{63754,1920,3},{63753,1922,3}, {63753,1933,3},{63751,1933,3},{63749,1955,3},{63751,1967,3},{63748,1970,3}, {63748,1973,3},{63746,1975,3},{63748,1978,3},{63748,1985,3},{63749,1992,3}, {63748,1997,3},{63746,2008,3},{63744,2010,3},{63748,2017,3},{63746,2023,3}, {63748,2032,3},{63744,2043,3},{63741,2047,3},{63739,2052,3},{63738,2055,3}, {63738,2063,3},{63734,2072,3},{63736,2075,3},{63734,2077,3},{63734,2078,3}, {63733,2082,3},{63734,2085,3},{63734,2088,3},{63736,2088,3},{63739,2095,3}, {63744,2120,3},{63739,2125,3},{63736,2135,3},{63734,2137,3},{63734,2142,3}, {63736,2147,3},{63738,2152,3},{63738,2158,3},{63739,2163,3},{63741,2170,3}, {63741,2175,3},{63743,2182,3},{63743,2187,3},{63744,2193,3},{63746,2198,3}, {63746,2205,3},{63748,2210,3},{63749,2217,3},{63749,2222,3},{63751,2228,3}, {63753,2233,3},{63753,2238,3},{63754,2245,3},{63754,2250,3},{63756,2257,3}, {63758,2262,3},{63758,2268,3},{63759,2273,3},{63761,2280,3},{63761,2285,3}, {63763,2292,3},{63764,2297,3},{63764,2302,3},{63766,2308,3},{63768,2313,3}, {63768,2320,3},{63769,2325,3},{63771,2332,3},{63771,2338,3},{63773,2343,3}, {63773,2348,3},{63774,2355,3},{63776,2360,3},{63778,2367,3},{63778,2372,3}, {63779,2378,3},{63781,2383,3},{63781,2390,3},{63783,2395,3},{63784,2400,3}, {63784,2407,3},{63786,2412,3},{63788,2418,3},{63788,2423,3},{63788,2425,3}, {63788,2430,3},{63788,2433,3},{63789,2437,3},{63788,2445,3},{63783,2457,3}, {63783,2458,3},{63786,2463,3},{63786,2467,3},{63784,2477,3},{63784,2478,3}, {63784,2487,3},{63781,2497,3},{63778,2498,3},{63778,2503,3},{63774,2503,3}, {63774,2507,3},{63771,2510,3},{63768,2510,3},{63766,2512,3},{63768,2513,3}, {63759,2518,3},{63759,2523,3},{63756,2527,3},{63758,2518,3},{63756,2513,3}, {63753,2510,3},{63753,2507,3},{63753,2505,3},{63754,2505,3},{63753,2502,3}, {63754,2500,3},{63754,2498,3},{63758,2497,3},{63756,2495,3},{63754,2493,3}, {63753,2483,3},{63749,2477,3},{63748,2477,3},{63746,2473,3},{63743,2470,3}, {63741,2465,3},{63734,2462,3},{63731,2457,3},{63731,2450,3},{63741,2442,3}, {63741,2437,3},{63733,2430,3},{63736,2423,3},{63733,2418,3},{63724,2410,3}, {63724,2405,3},{63719,2400,3},{63716,2392,3},{63711,2390,3},{63709,2387,3}, {63693,2372,3},{63693,2368,3},{63689,2365,3},{63688,2362,3},{63689,2357,3}, {63696,2357,3},{63699,2355,3},{63701,2357,3},{63703,2355,3},{63706,2352,3}, {63709,2352,3},{63713,2350,3},{63713,2347,3},{63716,2345,3},{63716,2340,3}, {63719,2340,3},{63728,2333,3},{63734,2332,3},{63736,2330,3},{63736,2308,3}, {63734,2302,3},{63733,2295,3},{63733,2288,3},{63731,2283,3},{63729,2277,3}, {63728,2270,3},{63728,2263,3},{63726,2257,3},{63724,2252,3},{63724,2245,3}, {63723,2238,3},{63721,2232,3},{63721,2227,3},{63719,2220,3},{63718,2213,3}, {63718,2207,3},{63716,2200,3},{63714,2195,3},{63713,2188,3},{63713,2182,3}, {63711,2175,3},{63709,2168,3},{63709,2162,3},{63708,2157,3},{63706,2147,3}, {63706,2137,3},{63704,2130,3},{63704,2123,3},{63704,2117,3},{63704,2112,3}, {63704,2105,3},{63704,2100,3},{63699,2100,3},{63694,2100,3},{63688,2100,3}, {63683,2100,3},{63678,2100,3},{63673,2100,3},{63666,2100,3},{63661,2100,3}, {63656,2100,3},{63649,2100,3},{63644,2100,3},{63639,2100,3},{63634,2100,3}, {63628,2100,3},{63623,2100,3},{63618,2100,3},{63611,2100,3},{63606,2100,3}, {63601,2100,3},{63594,2100,3},{63589,2100,3},{63584,2100,3},{63579,2100,3}, {63573,2100,3},{63568,2100,3},{63563,2100,3},{63556,2100,3},{63551,2100,3}, {63546,2100,3},{63539,2100,3},{63534,2100,3},{63529,2100,3},{63524,2100,3}, {63518,2100,3},{63513,2100,3},{63508,2100,3},{63501,2100,3},{63496,2100,3}, {63491,2100,3},{63484,2100,3},{63479,2100,3},{63474,2100,3},{63469,2100,3}, {63463,2100,3},{63458,2100,3},{63453,2100,3},{63446,2100,3},{63441,2100,3}, {63436,2100,3},{63429,2100,3},{63424,2100,3},{63419,2100,3},{63413,2100,3}, {63408,2100,3},{63403,2100,3},{63398,2100,3},{63391,2100,3},{63386,2100,3}, {63381,2100,3},{63374,2100,3},{63369,2100,3},{63364,2100,3},{63358,2100,3}, {63353,2100,3},{63348,2100,3},{63341,2100,3},{63336,2100,3},{63336,2098,3}, {63336,2095,3},{63336,2088,3},{63336,2083,3},{63336,2077,3},{63336,2072,3}, {63336,2065,3},{63336,2058,3},{63336,2053,3},{63336,2047,3},{63336,2042,3}, {63336,2035,3},{63336,2030,3},{63336,2023,3},{63336,2017,3},{63336,2012,3}, {63336,2005,3},{63336,2000,3},{63329,2000,3},{63324,2000,3},{63319,2000,3}, {63313,2000,3},{63308,2000,3},{63303,2000,3},{63298,2000,3},{63291,2000,3}, {63286,2000,3},{63281,2000,3},{63274,2000,3},{63269,2000,3},{63264,2000,3}, {63258,2000,3},{63253,2000,3},{63248,2000,3},{63241,2000,3},{63236,2000,3}, {63231,2000,3},{63224,2000,3},{63219,2000,3},{63214,2000,3},{63209,2000,3}, {63203,2000,3},{63198,2000,3},{63193,2000,3},{63186,2000,3},{63181,2000,3}, {63176,2000,3},{63169,2000,3},{63164,2000,3},{63159,2000,3},{63153,2000,3}, {63148,2000,3},{63143,2000,3},{63136,2000,3},{63131,2000,3},{63126,2000,3}, {63121,2000,3},{63114,2000,3},{63109,2000,3},{63104,2000,3},{63098,2000,3}, {63093,2000,3},{63088,2000,3},{63081,2000,3},{63076,2000,3},{63071,2000,3}, {63064,2000,3},{63059,2000,3},{63054,2000,3},{63048,2000,3},{63043,2000,3}, {63038,2000,3},{63031,2000,3},{63026,2000,3},{63021,2000,3},{63016,2000,3}, {63009,2000,3},{63004,2000,3},{62999,2000,3},{62993,2000,3},{62988,2000,3}, {62983,2000,3},{62976,2000,3},{62971,2000,3},{62966,2000,3},{62959,2000,3}, {62954,2000,3},{62949,2000,3},{62943,2000,3},{62938,2000,3},{62933,2000,3}, {62926,2000,3},{62921,2000,3},{62916,2000,3},{62911,2000,3},{62904,2000,3}, {62899,2000,3},{62894,2000,3},{62888,2000,3},{62883,2000,3},{62878,2000,3}, {62871,2000,3},{62866,2000,3},{62861,2000,3},{62854,2000,3},{62849,2000,3}, {62844,2000,3},{62838,2000,3},{62833,2000,3},{62828,2000,3},{62823,2000,3}, {62816,2000,3},{62811,2000,3},{62806,2000,3},{62799,2000,3},{62794,2000,3}, {62789,2000,3},{62783,2000,3},{62778,2000,3},{62773,2000,3},{62766,2000,3}, {62761,2000,3},{62756,2000,3},{62751,2000,3},{62744,2000,3},{62739,2000,3}, {62734,2000,3},{62728,2000,3},{62723,2000,3},{62718,2000,3},{62711,2000,3}, {62706,2000,3},{62701,2000,3},{62694,2000,3},{62693,2000,3},{62693,1987,3}, {62688,1983,3},{62686,1980,3},{62688,1973,3},{62686,1972,3},{62684,1967,3}, {62684,1965,3},{62683,1957,3},{62678,1953,3},{62676,1952,3},{62669,1950,3}, {62666,1947,3},{62663,1937,3},{62661,1927,3},{62656,1923,3},{62651,1927,3}, {62648,1930,3},{62646,1928,3},{62646,1923,3},{62643,1918,3},{62639,1912,3}, {62643,1905,3},{62643,1902,3},{62649,1895,3},{62653,1872,3},{62649,1855,3}, {62648,1850,3},{62648,1847,3},{62646,1838,3},{62648,1833,3},{62648,1822,3}, {62644,1818,3},{62649,1805,3},{62656,1797,3},{62658,1792,3},{62661,1775,3}, {62659,1772,3},{62661,1770,3},{62659,1767,3},{62659,1763,3},{62661,1760,3}, {62666,1760,3},{62668,1758,3},{62666,1755,3},{62664,1742,3},{62668,1740,3}, {62678,1742,3},{62679,1740,3},{62681,1737,3},{62686,1735,3},{62689,1732,3}, {62693,1738,3},{62696,1740,3},{62701,1740,3},{62706,1737,3},{62713,1735,3}, {62714,1732,3},{62711,1723,3},{62713,1722,3},{62716,1718,3},{62726,1718,3}, {62726,1713,3},{62731,1710,3},{62733,1707,3},{62733,1703,3},{62729,1700,3}, {62731,1698,3},{62729,1695,3},{62729,1692,3},{62726,1688,3},{62718,1688,3}, {62719,1685,3},{62718,1683,3},{62716,1685,3},{62714,1685,3},{62714,1680,3}, {62709,1682,3},{62711,1678,3},{62709,1677,3},{62708,1677,3},{62699,1680,3}, {62696,1677,3},{62691,1678,3},{62686,1673,3},{62686,1670,3},{62689,1668,3}, {62686,1662,3},{62683,1660,3},{62678,1648,3},{62683,1660,3},{62678,1648,3}, {63223,1445,131},{63233,1442,3},{63239,1442,3},{63248,1443,3},{63248,1445,3}, {63241,1443,3},{63239,1447,3},{63236,1447,3},{63244,1453,3},{63256,1453,3}, {63268,1453,3},{63268,1458,3},{63273,1463,3},{63273,1468,3},{63239,1467,3}, {63213,1475,3},{63218,1467,3},{63223,1445,3},{65034,1202,131},{65051,1188,3}, {65058,1180,3},{65061,1180,3},{65059,1182,3},{65063,1183,3},{65071,1175,3}, {65076,1180,3},{65083,1177,3},{65116,1138,3},{65119,1137,3},{65126,1135,3}, {65141,1117,3},{65156,1122,3},{65159,1120,3},{65168,1123,3},{65176,1135,3}, {65178,1143,3},{65184,1148,3},{65193,1148,3},{65194,1153,3},{65194,1157,3}, {65191,1162,3},{65169,1175,3},{65163,1187,3},{65168,1193,3},{65171,1193,3}, {65178,1187,3},{65183,1187,3},{65186,1187,3},{65188,1193,3},{65191,1197,3}, {65201,1197,3},{65206,1200,3},{65208,1200,3},{65216,1185,3},{65228,1173,3}, {65231,1175,3},{65234,1180,3},{65241,1185,3},{65241,1187,3},{65248,1185,3}, {65253,1182,3},{65258,1163,3},{65253,1158,3},{65251,1158,3},{65251,1155,3}, {65256,1155,3},{65264,1162,3},{65274,1165,3},{65281,1163,3},{65286,1160,3}, {65293,1160,3},{65303,1158,3},{65303,1162,3},{65301,1168,3},{65296,1168,3}, {65296,1173,3},{65293,1173,3},{65293,1175,3},{65298,1180,3},{65299,1192,3}, {65303,1195,3},{65301,1198,3},{65294,1203,3},{65293,1208,3},{65293,1250,3}, {65301,1250,3},{65303,1247,3},{65306,1247,3},{65313,1250,3},{65319,1248,3}, {65326,1253,3},{65328,1248,3},{65333,1245,3},{65343,1247,3},{65348,1245,3}, {65349,1247,3},{65348,1247,3},{65344,1252,3},{65348,1253,3},{65349,1252,3}, {65354,1258,3},{65353,1263,3},{65354,1267,3},{65351,1273,3},{65348,1277,3}, {65348,1280,3},{65346,1283,3},{65343,1283,3},{65341,1285,3},{65336,1285,3}, {65331,1288,3},{65328,1292,3},{65326,1290,3},{65324,1292,3},{65321,1290,3}, {65318,1293,3},{65316,1295,3},{65318,1298,3},{65311,1302,3},{65309,1302,3}, {65308,1305,3},{65306,1302,3},{65303,1302,3},{65298,1300,3},{65303,1305,3}, {65298,1315,3},{65299,1322,3},{65293,1340,3},{65294,1343,3},{65293,1350,3}, {65296,1352,3},{65299,1357,3},{65303,1360,3},{65303,1363,3},{65306,1363,3}, {65318,1373,3},{65321,1373,3},{65326,1377,3},{65321,1382,3},{65313,1385,3}, {65306,1390,3},{65303,1390,3},{65301,1395,3},{65298,1392,3},{65296,1392,3}, {65294,1388,3},{65289,1388,3},{65286,1393,3},{65289,1400,3},{65286,1402,3}, {65288,1408,3},{65286,1408,3},{65286,1412,3},{65293,1417,3},{65296,1417,3}, {65299,1422,3},{65301,1427,3},{65306,1423,3},{65308,1420,3},{65311,1418,3}, {65311,1417,3},{65314,1420,3},{65316,1423,3},{65319,1423,3},{65321,1427,3}, {65331,1428,3},{65334,1427,3},{65338,1427,3},{65339,1432,3},{65341,1433,3}, {65343,1440,3},{65346,1445,3},{65349,1443,3},{65356,1445,3},{65361,1443,3}, {65366,1445,3},{65368,1448,3},{65368,1443,3},{65373,1443,3},{65374,1440,3}, {65376,1443,3},{65379,1447,3},{65381,1450,3},{65383,1450,3},{65386,1447,3}, {65388,1448,3},{65391,1448,3},{65393,1452,3},{65394,1452,3},{65398,1452,3}, {65401,1447,3},{65404,1447,3},{65408,1450,3},{65413,1450,3},{65416,1448,3}, {65419,1447,3},{65423,1447,3},{65433,1443,3},{65443,1443,3},{65449,1448,3}, {65453,1448,3},{65456,1447,3},{65463,1448,3},{65469,1453,3},{65473,1453,3}, {65474,1453,3},{65476,1452,3},{65484,1448,3},{65484,1445,3},{65488,1445,3}, {65489,1442,3},{65493,1435,3},{65494,1430,3},{65493,1428,3},{65493,1427,3}, {65494,1423,3},{65491,1420,3},{65499,1418,3},{65508,1415,3},{65508,1412,3}, {65511,1410,3},{65513,1407,3},{65509,1405,3},{65511,1402,3},{65521,1390,3}, {65523,1388,3},{65526,1392,3},{65526,1397,3},{65528,1402,3},{65531,1400,3}, {65534,1400,3},{0,1395,3},{2,1393,3},{5,1395,3},{7,1392,3},{13,1392,3}, {22,1388,3},{28,1393,3},{38,1397,3},{43,1407,3},{48,1408,3},{50,1407,3}, {53,1408,3},{57,1415,3},{55,1417,3},{53,1423,3},{63,1438,3},{68,1437,3}, {75,1442,3},{78,1443,3},{80,1447,3},{85,1448,3},{88,1447,3},{90,1450,3}, {93,1450,3},{98,1443,3},{105,1440,3},{110,1440,3},{115,1435,3},{120,1435,3}, {125,1430,3},{130,1430,3},{132,1428,3},{138,1420,3},{140,1413,3},{138,1407,3}, {142,1400,3},{142,1398,3},{143,1390,3},{143,1380,3},{137,1378,3},{138,1375,3}, {137,1372,3},{135,1365,3},{133,1363,3},{133,1360,3},{128,1357,3},{128,1353,3}, {127,1352,3},{130,1342,3},{130,1337,3},{127,1337,3},{127,1332,3},{123,1332,3}, {122,1320,3},{123,1317,3},{125,1315,3},{125,1317,3},{128,1318,3},{130,1322,3}, {133,1325,3},{135,1323,3},{138,1325,3},{143,1323,3},{143,1322,3},{145,1322,3}, {150,1318,3},{153,1318,3},{153,1315,3},{158,1313,3},{162,1315,3},{167,1313,3}, {170,1315,3},{173,1317,3},{175,1315,3},{177,1317,3},{178,1317,3},{182,1320,3}, {187,1318,3},{190,1317,3},{190,1318,3},{195,1322,3},{198,1322,3},{205,1328,3}, {217,1330,3},{217,1337,3},{217,1343,3},{217,1348,3},{217,1353,3},{217,1360,3}, {217,1365,3},{217,1370,3},{217,1375,3},{217,1382,3},{217,1387,3},{217,1392,3}, {217,1398,3},{215,1403,3},{215,1408,3},{215,1413,3},{215,1420,3},{215,1428,3}, {217,1435,3},{217,1442,3},{213,1443,3},{215,1447,3},{217,1457,3},{220,1457,3}, {220,1458,3},{215,1463,3},{213,1465,3},{213,1468,3},{210,1472,3},{213,1472,3}, {212,1475,3},{208,1473,3},{210,1477,3},{207,1477,3},{207,1480,3},{207,1482,3}, {208,1485,3},{210,1485,3},{212,1487,3},{207,1488,3},{205,1492,3},{202,1488,3}, {200,1490,3},{200,1497,3},{203,1498,3},{198,1503,3},{200,1507,3},{198,1507,3}, {198,1508,3},{202,1512,3},{200,1513,3},{203,1515,3},{203,1517,3},{202,1518,3}, {203,1522,3},{203,1523,3},{200,1525,3},{198,1530,3},{193,1530,3},{193,1532,3}, {192,1535,3},{197,1543,3},{198,1548,3},{193,1565,3},{193,1570,3},{192,1573,3}, {192,1575,3},{187,1580,3},{182,1588,3},{180,1588,3},{180,1592,3},{178,1593,3}, {177,1600,3},{175,1603,3},{172,1602,3},{168,1603,3},{165,1607,3},{172,1610,3}, {172,1615,3},{173,1617,3},{195,1610,3},{197,1607,3},{202,1607,3},{205,1608,3}, {208,1607,3},{210,1610,3},{217,1608,3},{217,1610,3},{220,1610,3},{218,1617,3}, {222,1620,3},{227,1623,3},{230,1625,3},{235,1627,3},{240,1630,3},{245,1632,3}, {250,1633,3},{255,1637,3},{260,1638,3},{263,1640,3},{268,1643,3},{273,1645,3}, {278,1647,3},{285,1650,3},{288,1650,3},{292,1647,3},{300,1647,3},{307,1652,3}, {315,1648,3},{325,1653,3},{328,1653,3},{332,1655,3},{348,1658,3},{353,1667,3}, {355,1670,3},{355,1677,3},{352,1680,3},{352,1685,3},{353,1687,3},{357,1688,3}, {355,1697,3},{353,1698,3},{355,1705,3},{358,1708,3},{357,1712,3},{358,1715,3}, {358,1723,3},{362,1725,3},{363,1730,3},{362,1735,3},{367,1740,3},{368,1745,3}, {372,1748,3},{363,1762,3},{363,1772,3},{363,1773,3},{362,1777,3},{362,1783,3}, {353,1787,3},{357,1793,3},{358,1793,3},{353,1798,3},{357,1803,3},{357,1810,3}, {355,1815,3},{348,1817,3},{348,1820,3},{350,1823,3},{358,1827,3},{358,1837,3}, {358,1840,3},{360,1840,3},{360,1845,3},{363,1848,3},{360,1853,3},{348,1858,3}, {348,1863,3},{332,1865,3},{327,1863,3},{322,1865,3},{315,1862,3},{308,1853,3}, {297,1850,3},{283,1843,3},{273,1840,3},{262,1835,3},{257,1832,3},{252,1823,3}, {242,1822,3},{233,1817,3},{230,1812,3},{222,1810,3},{213,1810,3},{205,1807,3}, {195,1808,3},{185,1807,3},{172,1808,3},{153,1807,3},{132,1798,3},{125,1798,3}, {113,1793,3},{105,1788,3},{100,1787,3},{82,1790,3},{68,1788,3},{60,1790,3}, {48,1797,3},{45,1797,3},{35,1795,3},{22,1785,3},{15,1780,3},{65523,1772,3}, {65513,1772,3},{65498,1775,3},{65483,1772,3},{65474,1768,3},{65458,1755,3}, {65436,1733,3},{65433,1728,3},{65429,1712,3},{65421,1697,3},{65413,1688,3}, {65404,1680,3},{65394,1675,3},{65371,1665,3},{65349,1652,3},{65334,1637,3}, {65326,1625,3},{65318,1620,3},{65311,1618,3},{65298,1618,3},{65273,1623,3}, {65264,1620,3},{65248,1618,3},{65236,1620,3},{65221,1618,3},{65216,1620,3}, {65211,1618,3},{65208,1622,3},{65203,1623,3},{65194,1618,3},{65191,1615,3}, {65179,1610,3},{65174,1605,3},{65168,1603,3},{65151,1593,3},{65144,1590,3}, {65139,1583,3},{65138,1570,3},{65131,1555,3},{65123,1548,3},{65114,1548,3}, {65109,1545,3},{65106,1542,3},{65108,1533,3},{65103,1522,3},{65086,1510,3}, {65081,1502,3},{65071,1492,3},{65054,1483,3},{65044,1467,3},{65048,1458,3}, {65051,1455,3},{65053,1448,3},{65048,1442,3},{65053,1442,3},{65058,1443,3}, {65061,1442,3},{65068,1443,3},{65073,1438,3},{65081,1437,3},{65084,1440,3}, {65084,1443,3},{65093,1448,3},{65096,1445,3},{65103,1440,3},{65109,1442,3}, {65104,1430,3},{65098,1418,3},{65096,1407,3},{65093,1402,3},{65091,1402,3}, {65086,1397,3},{65088,1388,3},{65091,1385,3},{65094,1382,3},{65091,1373,3}, {65083,1373,3},{65071,1372,3},{65066,1373,3},{65066,1370,3},{65063,1370,3}, {65063,1363,3},{65058,1360,3},{65058,1358,3},{65061,1353,3},{65059,1350,3}, {65056,1352,3},{65051,1343,3},{65048,1342,3},{65051,1338,3},{65058,1338,3}, {65059,1330,3},{65068,1320,3},{65073,1318,3},{65078,1313,3},{65079,1312,3}, {65078,1308,3},{65073,1308,3},{65076,1303,3},{65084,1297,3},{65088,1292,3}, {65094,1290,3},{65096,1287,3},{65094,1282,3},{65098,1278,3},{65093,1273,3}, {65089,1272,3},{65088,1270,3},{65079,1265,3},{65076,1247,3},{65076,1243,3}, {65076,1242,3},{65073,1238,3},{65069,1240,3},{65058,1235,3},{65056,1228,3}, {65058,1227,3},{65056,1225,3},{65058,1223,3},{65061,1222,3},{65058,1220,3}, {65046,1217,3},{65034,1202,3},{64958,1220,131},{64968,1213,3},{64974,1212,3}, {64983,1215,3},{64984,1220,3},{64991,1220,3},{65019,1210,3},{65033,1202,3}, {65033,1205,3},{65031,1208,3},{65036,1212,3},{65038,1210,3},{65034,1208,3}, {65034,1202,3},{65046,1217,3},{65058,1220,3},{65061,1222,3},{65058,1223,3}, {65056,1225,3},{65058,1227,3},{65056,1228,3},{65058,1235,3},{65069,1240,3}, {65073,1238,3},{65076,1242,3},{65076,1243,3},{65076,1247,3},{65079,1265,3}, {65088,1270,3},{65089,1272,3},{65093,1273,3},{65098,1278,3},{65094,1282,3}, {65096,1287,3},{65094,1290,3},{65088,1292,3},{65084,1297,3},{65076,1303,3}, {65073,1308,3},{65069,1308,3},{65069,1307,3},{65068,1302,3},{65064,1292,3}, {65064,1287,3},{65063,1282,3},{65056,1278,3},{65053,1278,3},{65049,1272,3}, {65043,1270,3},{65043,1262,3},{65036,1260,3},{65031,1250,3},{65031,1247,3}, {65026,1247,3},{65024,1253,3},{65019,1253,3},{65014,1253,3},{65009,1253,3}, {65003,1253,3},{64998,1253,3},{64993,1253,3},{64986,1253,3},{64981,1253,3}, {64976,1253,3},{64969,1253,3},{64964,1253,3},{64963,1247,3},{64963,1242,3}, {64963,1237,3},{64963,1228,3},{64958,1220,3},{235,982,131},{255,982,3}, {275,987,3},{282,988,3},{283,987,3},{295,990,3},{298,992,3},{302,995,3}, {308,997,3},{325,990,3},{327,993,3},{327,988,3},{340,982,3},{348,972,3}, {353,965,3},{357,970,3},{362,975,3},{362,982,3},{363,978,3},{360,970,3}, {360,963,3},{362,962,3},{363,963,3},{365,963,3},{382,955,3},{378,958,3}, {375,960,3},{375,965,3},{377,960,3},{382,960,3},{385,960,3},{387,962,3}, {383,967,3},{383,968,3},{385,970,3},{382,975,3},{387,975,3},{387,970,3}, {390,968,3},{392,970,3},{393,977,3},{395,977,3},{393,963,3},{395,962,3}, {402,965,3},{402,967,3},{407,970,3},{412,975,3},{413,975,3},{412,972,3}, {410,970,3},{412,970,3},{412,968,3},{403,963,3},{402,958,3},{402,957,3}, {403,955,3},{403,953,3},{407,950,3},{412,950,3},{412,948,3},{407,945,3}, {407,948,3},{403,948,3},{402,952,3},{398,953,3},{397,950,3},{400,948,3}, {402,942,3},{400,942,3},{398,947,3},{393,945,3},{392,947,3},{390,943,3}, {390,935,3},{393,932,3},{398,930,3},{402,932,3},{403,933,3},{403,930,3}, {398,927,3},{395,925,3},{397,922,3},{402,920,3},{402,912,3},{405,908,3}, {410,897,3},{422,898,3},{425,895,3},{430,892,3},{443,890,3},{450,890,3}, {453,893,3},{455,893,3},{452,892,3},{452,890,3},{458,890,3},{463,883,3}, {462,883,3},{458,887,3},{457,887,3},{455,888,3},{453,887,3},{457,883,3}, {460,880,3},{457,882,3},{453,878,3},{457,873,3},{467,868,3},{468,867,3}, {473,865,3},{470,863,3},{465,867,3},{458,867,3},{455,868,3},{452,872,3}, {450,870,3},{450,862,3},{448,858,3},{450,857,3},{453,858,3},{453,857,3}, {450,853,3},{453,850,3},{457,850,3},{457,853,3},{460,855,3},{460,852,3}, {463,852,3},{467,853,3},{470,858,3},{473,857,3},{475,858,3},{478,858,3}, {480,858,3},{483,863,3},{490,862,3},{492,865,3},{503,873,3},{507,873,3}, {512,877,3},{515,882,3},{518,882,3},{530,885,3},{532,883,3},{537,883,3}, {543,887,3},{550,887,3},{560,892,3},{563,890,3},{570,883,3},{575,887,3}, {578,888,3},{582,887,3},{583,887,3},{587,892,3},{590,893,3},{590,895,3}, {590,900,3},{595,900,3},{595,903,3},{608,913,3},{620,930,3},{633,937,3}, {633,943,3},{640,947,3},{645,958,3},{652,962,3},{652,972,3},{680,980,3}, {678,987,3},{702,1017,3},{698,1018,3},{692,1020,3},{688,1023,3},{688,1052,3}, {693,1052,3},{695,1055,3},{702,1057,3},{713,1060,3},{712,1062,3},{705,1062,3}, {703,1068,3},{697,1078,3},{697,1085,3},{688,1088,3},{683,1088,3},{680,1090,3}, {678,1093,3},{678,1102,3},{673,1107,3},{668,1108,3},{658,1107,3},{643,1112,3}, {643,1118,3},{645,1125,3},{643,1127,3},{645,1130,3},{643,1133,3},{645,1138,3}, {648,1142,3},{658,1143,3},{660,1152,3},{665,1155,3},{678,1158,3},{682,1155,3}, {690,1158,3},{695,1163,3},{697,1168,3},{700,1172,3},{700,1177,3},{703,1177,3}, {707,1182,3},{708,1188,3},{712,1190,3},{722,1182,3},{725,1178,3},{725,1175,3}, {727,1175,3},{730,1180,3},{740,1187,3},{745,1192,3},{757,1202,3},{757,1203,3}, {763,1203,3},{767,1202,3},{773,1203,3},{792,1217,3},{797,1222,3},{810,1220,3}, {820,1225,3},{832,1223,3},{840,1225,3},{842,1227,3},{843,1230,3},{842,1233,3}, {850,1242,3},{862,1238,3},{860,1243,3},{863,1250,3},{860,1257,3},{867,1268,3}, {877,1273,3},{875,1278,3},{877,1280,3},{885,1282,3},{902,1285,3},{907,1283,3}, {928,1292,3},{935,1292,3},{935,1287,3},{937,1285,3},{937,1287,3},{938,1288,3}, {942,1295,3},{945,1297,3},{950,1302,3},{953,1318,3},{958,1323,3},{965,1323,3}, {967,1325,3},{973,1325,3},{980,1328,3},{987,1323,3},{992,1323,3},{993,1325,3}, {998,1327,3},{1002,1325,3},{1007,1325,3},{1008,1328,3},{1012,1340,3},{1017,1347,3}, {1020,1347,3},{1023,1347,3},{1030,1348,3},{1045,1350,3},{1065,1357,3},{1068,1358,3}, {1085,1370,3},{1090,1372,3},{1093,1377,3},{1103,1378,3},{1107,1385,3},{1117,1388,3}, {1128,1400,3},{1125,1412,3},{1123,1415,3},{1125,1418,3},{1130,1425,3},{1132,1430,3}, {1140,1440,3},{1142,1447,3},{1145,1452,3},{1150,1462,3},{1157,1465,3},{1165,1463,3}, {1170,1455,3},{1177,1462,3},{1183,1462,3},{1192,1465,3},{1197,1465,3},{1203,1462,3}, {1205,1465,3},{1207,1463,3},{1212,1465,3},{1215,1467,3},{1218,1467,3},{1218,1465,3}, {1218,1462,3},{1220,1460,3},{1223,1455,3},{1225,1457,3},{1228,1453,3},{1228,1452,3}, {1232,1452,3},{1233,1448,3},{1235,1443,3},{1235,1422,3},{1238,1417,3},{1245,1418,3}, {1245,1420,3},{1247,1420,3},{1252,1422,3},{1258,1427,3},{1265,1420,3},{1267,1422,3}, {1268,1423,3},{1268,1425,3},{1270,1427,3},{1270,1432,3},{1268,1433,3},{1268,1435,3}, {1267,1437,3},{1267,1447,3},{1272,1448,3},{1277,1452,3},{1285,1452,3},{1285,1453,3}, {1283,1455,3},{1277,1455,3},{1277,1457,3},{1273,1458,3},{1277,1462,3},{1273,1462,3}, {1272,1465,3},{1272,1472,3},{1265,1470,3},{1268,1473,3},{1263,1477,3},{1263,1483,3}, {1250,1487,3},{1245,1485,3},{1245,1487,3},{1238,1490,3},{1220,1490,3},{1218,1492,3}, {1215,1488,3},{1210,1495,3},{1208,1498,3},{1210,1500,3},{1208,1505,3},{1200,1505,3}, {1197,1508,3},{1197,1505,3},{1193,1507,3},{1188,1503,3},{1185,1505,3},{1185,1508,3}, {1178,1512,3},{1175,1508,3},{1172,1510,3},{1172,1507,3},{1168,1507,3},{1158,1508,3}, {1155,1513,3},{1152,1513,3},{1143,1507,3},{1140,1505,3},{1135,1505,3},{1130,1507,3}, {1120,1502,3},{1098,1503,3},{1090,1508,3},{1080,1505,3},{1062,1515,3},{1053,1513,3}, {1050,1515,3},{1050,1518,3},{1048,1522,3},{1038,1528,3},{1033,1528,3},{1030,1530,3}, {1028,1535,3},{1020,1540,3},{1020,1543,3},{1010,1550,3},{998,1568,3},{993,1542,3}, {998,1523,3},{998,1517,3},{998,1510,3},{995,1508,3},{995,1503,3},{997,1492,3}, {992,1478,3},{998,1453,3},{1000,1445,3},{998,1418,3},{993,1418,3},{983,1412,3}, {978,1408,3},{975,1402,3},{963,1395,3},{960,1403,3},{923,1435,3},{920,1435,3}, {900,1457,3},{882,1482,3},{882,1487,3},{877,1492,3},{875,1493,3},{873,1497,3}, {868,1497,3},{865,1507,3},{855,1512,3},{848,1520,3},{822,1532,3},{812,1538,3}, {803,1538,3},{782,1548,3},{777,1550,3},{775,1558,3},{763,1557,3},{753,1550,3}, {743,1543,3},{740,1547,3},{740,1542,3},{737,1542,3},{735,1537,3},{732,1535,3}, {730,1530,3},{723,1523,3},{718,1520,3},{710,1520,3},{705,1515,3},{697,1513,3}, {683,1507,3},{678,1507,3},{675,1500,3},{673,1497,3},{638,1480,3},{635,1480,3}, {633,1480,3},{627,1473,3},{618,1458,3},{620,1455,3},{615,1452,3},{613,1452,3}, {613,1448,3},{610,1447,3},{608,1443,3},{605,1442,3},{600,1442,3},{597,1447,3}, {592,1448,3},{590,1455,3},{593,1458,3},{592,1460,3},{590,1462,3},{572,1463,3}, {560,1458,3},{552,1462,3},{545,1460,3},{542,1460,3},{538,1458,3},{530,1453,3}, {525,1458,3},{522,1465,3},{518,1467,3},{512,1468,3},{510,1468,3},{503,1468,3}, {502,1467,3},{498,1470,3},{495,1468,3},{488,1472,3},{485,1470,3},{480,1472,3}, {477,1470,3},{462,1473,3},{453,1480,3},{442,1502,3},{437,1503,3},{430,1508,3}, {413,1510,3},{410,1513,3},{407,1515,3},{407,1518,3},{405,1518,3},{405,1515,3}, {402,1512,3},{403,1505,3},{392,1508,3},{368,1525,3},{333,1560,3},{310,1582,3}, {312,1590,3},{310,1593,3},{305,1598,3},{298,1600,3},{298,1605,3},{290,1610,3}, {282,1612,3},{278,1607,3},{275,1608,3},{270,1608,3},{270,1612,3},{265,1610,3}, {258,1612,3},{252,1608,3},{247,1612,3},{242,1612,3},{227,1618,3},{225,1618,3}, {222,1620,3},{218,1617,3},{220,1610,3},{217,1610,3},{217,1608,3},{210,1610,3}, {208,1607,3},{205,1608,3},{202,1607,3},{197,1607,3},{195,1610,3},{173,1617,3}, {172,1615,3},{172,1610,3},{165,1607,3},{168,1603,3},{172,1602,3},{175,1603,3}, {177,1600,3},{178,1593,3},{180,1592,3},{180,1588,3},{182,1588,3},{187,1580,3}, {192,1575,3},{192,1573,3},{193,1570,3},{193,1565,3},{198,1548,3},{197,1543,3}, {192,1535,3},{193,1532,3},{193,1530,3},{198,1530,3},{200,1525,3},{203,1523,3}, {203,1522,3},{202,1518,3},{203,1517,3},{203,1515,3},{200,1513,3},{202,1512,3}, {198,1508,3},{198,1507,3},{200,1507,3},{198,1503,3},{203,1498,3},{200,1497,3}, {200,1490,3},{202,1488,3},{205,1492,3},{207,1488,3},{212,1487,3},{210,1485,3}, {208,1485,3},{207,1482,3},{207,1480,3},{207,1477,3},{210,1477,3},{208,1473,3}, {212,1475,3},{213,1472,3},{210,1472,3},{213,1468,3},{213,1465,3},{215,1463,3}, {220,1458,3},{220,1457,3},{217,1457,3},{215,1447,3},{213,1443,3},{217,1442,3}, {217,1435,3},{215,1428,3},{215,1420,3},{215,1413,3},{215,1408,3},{215,1403,3}, {217,1398,3},{217,1392,3},{217,1387,3},{217,1382,3},{217,1375,3},{217,1370,3}, {217,1365,3},{217,1360,3},{217,1353,3},{217,1348,3},{217,1343,3},{217,1337,3}, {217,1330,3},{222,1330,3},{223,1328,3},{227,1327,3},{227,1320,3},{228,1317,3}, {228,1313,3},{225,1308,3},{225,1305,3},{225,1300,3},{225,1288,3},{223,1287,3}, {227,1282,3},{225,1280,3},{223,1275,3},{227,1260,3},{228,1257,3},{230,1248,3}, {228,1240,3},{232,1233,3},{228,1222,3},{230,1192,3},{228,1175,3},{233,1168,3}, {232,1160,3},{230,1137,3},{227,1137,3},{223,1135,3},{217,1133,3},{217,1128,3}, {217,1123,3},{217,1118,3},{217,1112,3},{217,1107,3},{217,1102,3},{217,1097,3}, {217,1090,3},{217,1085,3},{217,1080,3},{217,1075,3},{217,1068,3},{217,1063,3}, {217,1058,3},{217,1052,3},{217,1047,3},{217,1042,3},{217,1037,3},{217,1030,3}, {217,1025,3},{217,1020,3},{217,1015,3},{217,1008,3},{217,1002,3},{220,993,3}, {225,983,3},{228,983,3},{233,983,3},{235,982,3},{65141,1117,131},{65151,1103,3}, {65161,1098,3},{65166,1098,3},{65171,1093,3},{65183,1080,3},{65194,1065,3}, {65196,1063,3},{65201,1065,3},{65204,1063,3},{65213,1053,3},{65219,1048,3}, {65244,1023,3},{65248,1017,3},{65271,988,3},{65276,985,3},{65291,970,3}, {65284,978,3},{65286,982,3},{65289,983,3},{65286,983,3},{65286,985,3},{65281,985,3}, {65283,990,3},{65281,993,3},{65278,993,3},{65276,993,3},{65278,997,3},{65273,997,3}, {65274,1000,3},{65273,1002,3},{65274,1003,3},{65278,1005,3},{65278,1015,3}, {65279,1017,3},{65281,1013,3},{65284,1013,3},{65284,1010,3},{65286,1008,3}, {65279,1010,3},{65279,1008,3},{65284,1005,3},{65286,1002,3},{65281,1000,3}, {65279,998,3},{65281,997,3},{65286,995,3},{65286,997,3},{65286,998,3},{65288,992,3}, {65294,988,3},{65293,982,3},{65288,977,3},{65293,972,3},{65294,975,3},{65296,972,3}, {65298,973,3},{65298,970,3},{65294,972,3},{65293,970,3},{65298,965,3},{65298,963,3}, {65293,967,3},{65298,962,3},{65303,958,3},{65314,957,3},{65329,942,3},{65334,940,3}, {65334,938,3},{65341,935,3},{65349,927,3},{65349,928,3},{65346,932,3},{65346,935,3}, {65344,935,3},{65344,937,3},{65348,937,3},{65344,938,3},{65343,938,3},{65344,938,3}, {65344,945,3},{65344,947,3},{65341,948,3},{65338,947,3},{65336,950,3},{65333,950,3}, {65329,953,3},{65331,957,3},{65333,957,3},{65336,955,3},{65339,950,3},{65341,950,3}, {65343,952,3},{65349,948,3},{65351,947,3},{65349,945,3},{65351,943,3},{65348,943,3}, {65353,940,3},{65354,937,3},{65348,933,3},{65349,930,3},{65351,932,3},{65353,928,3}, {65351,925,3},{65358,925,3},{65363,925,3},{65376,922,3},{65403,903,3},{65413,898,3}, {65404,902,3},{65401,908,3},{65398,908,3},{65396,912,3},{65389,915,3},{65386,920,3}, {65383,927,3},{65374,927,3},{65371,927,3},{65368,928,3},{65369,930,3},{65373,928,3}, {65371,932,3},{65373,932,3},{65374,940,3},{65371,938,3},{65369,942,3},{65371,942,3}, {65376,942,3},{65374,957,3},{65378,950,3},{65381,948,3},{65388,948,3},{65389,945,3}, {65388,943,3},{65384,943,3},{65379,940,3},{65378,932,3},{65379,928,3},{65384,928,3}, {65386,925,3},{65389,925,3},{65389,928,3},{65393,930,3},{65394,928,3},{65396,933,3}, {65403,935,3},{65406,933,3},{65408,932,3},{65401,933,3},{65399,933,3},{65398,930,3}, {65399,927,3},{65394,923,3},{65396,920,3},{65394,918,3},{65398,915,3},{65401,917,3}, {65403,915,3},{65399,912,3},{65406,903,3},{65409,902,3},{65413,902,3},{65414,903,3}, {65418,903,3},{65419,900,3},{65418,902,3},{65414,900,3},{65424,897,3},{65438,887,3}, {65434,892,3},{65436,892,3},{65436,890,3},{65439,893,3},{65439,887,3},{65444,887,3}, {65443,883,3},{65448,883,3},{65454,878,3},{65464,875,3},{65473,872,3},{65476,870,3}, {65479,872,3},{65474,872,3},{65476,875,3},{65473,875,3},{65473,878,3},{65464,880,3}, {65461,880,3},{65459,883,3},{65456,885,3},{65458,885,3},{65464,887,3},{65463,892,3}, {65466,888,3},{65468,890,3},{65468,893,3},{65461,897,3},{65456,900,3},{65448,900,3}, {65451,902,3},{65458,902,3},{65463,905,3},{65464,905,3},{65468,908,3},{65469,908,3}, {65469,910,3},{65468,912,3},{65471,912,3},{65473,908,3},{65476,910,3},{65484,918,3}, {65501,930,3},{65514,930,3},{65524,935,3},{65533,933,3},{2,935,3},{18,932,3}, {32,930,3},{37,935,3},{33,937,3},{28,938,3},{25,937,3},{22,938,3},{18,935,3}, {18,937,3},{20,938,3},{20,942,3},{18,943,3},{17,947,3},{13,947,3},{10,947,3}, {10,950,3},{17,948,3},{18,950,3},{17,957,3},{13,958,3},{12,958,3},{13,960,3}, {15,963,3},{13,967,3},{13,972,3},{10,975,3},{3,978,3},{2,982,3},{10,977,3}, {13,977,3},{13,980,3},{12,982,3},{15,985,3},{18,992,3},{17,997,3},{18,1003,3}, {18,998,3},{22,993,3},{18,985,3},{18,978,3},{22,972,3},{22,968,3},{28,958,3}, {32,957,3},{30,955,3},{30,952,3},{28,950,3},{48,940,3},{53,935,3},{53,930,3}, {62,932,3},{63,937,3},{65,942,3},{65,945,3},{67,953,3},{65,957,3},{62,957,3}, {62,950,3},{60,947,3},{60,952,3},{58,955,3},{57,955,3},{57,957,3},{60,958,3}, {48,958,3},{47,960,3},{52,960,3},{55,963,3},{60,963,3},{63,962,3},{78,963,3}, {82,962,3},{85,960,3},{93,958,3},{95,957,3},{98,957,3},{102,960,3},{102,962,3}, {102,965,3},{105,967,3},{105,973,3},{103,977,3},{97,980,3},{100,980,3}, {100,982,3},{100,988,3},{100,993,3},{100,998,3},{100,1005,3},{100,1010,3}, {100,1015,3},{100,1020,3},{100,1027,3},{100,1032,3},{100,1037,3},{100,1042,3}, {100,1048,3},{100,1053,3},{100,1058,3},{100,1065,3},{100,1070,3},{100,1075,3}, {100,1080,3},{100,1087,3},{100,1092,3},{100,1097,3},{100,1103,3},{100,1108,3}, {100,1113,3},{100,1118,3},{100,1125,3},{100,1130,3},{100,1135,3},{103,1135,3}, {108,1135,3},{113,1135,3},{118,1135,3},{125,1135,3},{130,1135,3},{135,1135,3}, {140,1135,3},{147,1135,3},{152,1135,3},{157,1135,3},{163,1135,3},{168,1135,3}, {173,1135,3},{178,1135,3},{185,1135,3},{190,1135,3},{195,1135,3},{200,1135,3}, {207,1135,3},{212,1135,3},{217,1133,3},{223,1135,3},{227,1137,3},{230,1137,3}, {232,1160,3},{233,1168,3},{228,1175,3},{230,1192,3},{228,1222,3},{232,1233,3}, {228,1240,3},{230,1248,3},{228,1257,3},{227,1260,3},{223,1275,3},{225,1280,3}, {227,1282,3},{223,1287,3},{225,1288,3},{225,1300,3},{225,1305,3},{225,1308,3}, {228,1313,3},{228,1317,3},{227,1320,3},{227,1327,3},{223,1328,3},{222,1330,3}, {217,1330,3},{205,1328,3},{198,1322,3},{195,1322,3},{190,1318,3},{190,1317,3}, {187,1318,3},{182,1320,3},{178,1317,3},{177,1317,3},{175,1315,3},{173,1317,3}, {170,1315,3},{167,1313,3},{162,1315,3},{158,1313,3},{153,1315,3},{153,1318,3}, {150,1318,3},{145,1322,3},{143,1322,3},{143,1323,3},{138,1325,3},{135,1323,3}, {133,1325,3},{130,1322,3},{128,1318,3},{125,1317,3},{125,1315,3},{123,1317,3}, {122,1320,3},{123,1332,3},{127,1332,3},{127,1337,3},{130,1337,3},{130,1342,3}, {127,1352,3},{128,1353,3},{128,1357,3},{133,1360,3},{133,1363,3},{135,1365,3}, {137,1372,3},{138,1375,3},{137,1378,3},{143,1380,3},{143,1390,3},{142,1398,3}, {142,1400,3},{138,1407,3},{140,1413,3},{138,1420,3},{132,1428,3},{130,1430,3}, {125,1430,3},{120,1435,3},{115,1435,3},{110,1440,3},{105,1440,3},{98,1443,3}, {93,1450,3},{90,1450,3},{88,1447,3},{85,1448,3},{80,1447,3},{78,1443,3}, {75,1442,3},{68,1437,3},{63,1438,3},{53,1423,3},{55,1417,3},{57,1415,3}, {53,1408,3},{50,1407,3},{48,1408,3},{43,1407,3},{38,1397,3},{28,1393,3}, {22,1388,3},{13,1392,3},{7,1392,3},{5,1395,3},{2,1393,3},{0,1395,3},{65534,1400,3}, {65531,1400,3},{65528,1402,3},{65526,1397,3},{65526,1392,3},{65523,1388,3}, {65521,1390,3},{65511,1402,3},{65509,1405,3},{65513,1407,3},{65511,1410,3}, {65508,1412,3},{65508,1415,3},{65499,1418,3},{65491,1420,3},{65494,1423,3}, {65493,1427,3},{65493,1428,3},{65494,1430,3},{65493,1435,3},{65489,1442,3}, {65488,1445,3},{65484,1445,3},{65484,1448,3},{65476,1452,3},{65474,1453,3}, {65473,1453,3},{65469,1453,3},{65463,1448,3},{65456,1447,3},{65453,1448,3}, {65449,1448,3},{65443,1443,3},{65433,1443,3},{65423,1447,3},{65419,1447,3}, {65416,1448,3},{65413,1450,3},{65408,1450,3},{65404,1447,3},{65401,1447,3}, {65398,1452,3},{65394,1452,3},{65393,1452,3},{65391,1448,3},{65388,1448,3}, {65386,1447,3},{65383,1450,3},{65381,1450,3},{65379,1447,3},{65376,1443,3}, {65374,1440,3},{65373,1443,3},{65368,1443,3},{65368,1448,3},{65366,1445,3}, {65361,1443,3},{65356,1445,3},{65349,1443,3},{65346,1445,3},{65343,1440,3}, {65341,1433,3},{65339,1432,3},{65338,1427,3},{65334,1427,3},{65331,1428,3}, {65321,1427,3},{65319,1423,3},{65316,1423,3},{65314,1420,3},{65311,1417,3}, {65311,1418,3},{65308,1420,3},{65306,1423,3},{65301,1427,3},{65299,1422,3}, {65296,1417,3},{65293,1417,3},{65286,1412,3},{65286,1408,3},{65288,1408,3}, {65286,1402,3},{65289,1400,3},{65286,1393,3},{65289,1388,3},{65294,1388,3}, {65296,1392,3},{65298,1392,3},{65301,1395,3},{65303,1390,3},{65306,1390,3}, {65313,1385,3},{65321,1382,3},{65326,1377,3},{65321,1373,3},{65318,1373,3}, {65306,1363,3},{65303,1363,3},{65303,1360,3},{65299,1357,3},{65296,1352,3}, {65293,1350,3},{65294,1343,3},{65293,1340,3},{65299,1322,3},{65298,1315,3}, {65303,1305,3},{65298,1300,3},{65303,1302,3},{65306,1302,3},{65308,1305,3}, {65309,1302,3},{65311,1302,3},{65318,1298,3},{65316,1295,3},{65318,1293,3}, {65321,1290,3},{65324,1292,3},{65326,1290,3},{65328,1292,3},{65331,1288,3}, {65336,1285,3},{65341,1285,3},{65343,1283,3},{65346,1283,3},{65348,1280,3}, {65348,1277,3},{65351,1273,3},{65354,1267,3},{65353,1263,3},{65354,1258,3}, {65349,1252,3},{65348,1253,3},{65344,1252,3},{65348,1247,3},{65349,1247,3}, {65348,1245,3},{65343,1247,3},{65333,1245,3},{65328,1248,3},{65326,1253,3}, {65319,1248,3},{65313,1250,3},{65306,1247,3},{65303,1247,3},{65301,1250,3}, {65293,1250,3},{65293,1208,3},{65294,1203,3},{65301,1198,3},{65303,1195,3}, {65299,1192,3},{65298,1180,3},{65293,1175,3},{65293,1173,3},{65296,1173,3}, {65296,1168,3},{65301,1168,3},{65303,1162,3},{65303,1158,3},{65293,1160,3}, {65286,1160,3},{65281,1163,3},{65274,1165,3},{65264,1162,3},{65256,1155,3}, {65251,1155,3},{65251,1158,3},{65253,1158,3},{65258,1163,3},{65253,1182,3}, {65248,1185,3},{65241,1187,3},{65241,1185,3},{65234,1180,3},{65231,1175,3}, {65228,1173,3},{65216,1185,3},{65208,1200,3},{65206,1200,3},{65201,1197,3}, {65191,1197,3},{65188,1193,3},{65186,1187,3},{65183,1187,3},{65178,1187,3}, {65171,1193,3},{65168,1193,3},{65163,1187,3},{65169,1175,3},{65191,1162,3}, {65194,1157,3},{65194,1153,3},{65193,1148,3},{65184,1148,3},{65178,1143,3}, {65176,1135,3},{65168,1123,3},{65159,1120,3},{65156,1122,3},{65141,1117,3}, {100,980,131},{105,978,3},{108,985,3},{108,982,3},{110,978,3},{110,970,3}, {113,972,3},{112,968,3},{107,965,3},{103,958,3},{112,955,3},{113,948,3}, {110,940,3},{115,937,3},{118,935,3},{118,937,3},{127,940,3},{133,945,3}, {138,945,3},{150,957,3},{157,960,3},{158,962,3},{157,965,3},{157,970,3}, {160,973,3},{158,970,3},{158,965,3},{163,962,3},{167,962,3},{177,972,3}, {182,975,3},{185,975,3},{192,982,3},{210,977,3},{213,978,3},{232,977,3}, {235,982,3},{233,983,3},{228,983,3},{225,983,3},{220,993,3},{217,1002,3}, {217,1008,3},{217,1015,3},{217,1020,3},{217,1025,3},{217,1030,3},{217,1037,3}, {217,1042,3},{217,1047,3},{217,1052,3},{217,1058,3},{217,1063,3},{217,1068,3}, {217,1075,3},{217,1080,3},{217,1085,3},{217,1090,3},{217,1097,3},{217,1102,3}, {217,1107,3},{217,1112,3},{217,1118,3},{217,1123,3},{217,1128,3},{217,1133,3}, {212,1135,3},{207,1135,3},{200,1135,3},{195,1135,3},{190,1135,3},{185,1135,3}, {178,1135,3},{173,1135,3},{168,1135,3},{163,1135,3},{157,1135,3},{152,1135,3}, {147,1135,3},{140,1135,3},{135,1135,3},{130,1135,3},{125,1135,3},{118,1135,3}, {113,1135,3},{108,1135,3},{103,1135,3},{100,1135,3},{100,1130,3},{100,1125,3}, {100,1118,3},{100,1113,3},{100,1108,3},{100,1103,3},{100,1097,3},{100,1092,3}, {100,1087,3},{100,1080,3},{100,1075,3},{100,1070,3},{100,1065,3},{100,1058,3}, {100,1053,3},{100,1048,3},{100,1042,3},{100,1037,3},{100,1032,3},{100,1027,3}, {100,1020,3},{100,1015,3},{100,1010,3},{100,1005,3},{100,998,3},{100,993,3}, {100,988,3},{100,982,3},{100,980,3},{637,272,131},{645,272,3},{657,275,3}, {662,273,3},{667,277,3},{668,280,3},{677,278,3},{677,275,3},{680,273,3}, {692,275,3},{695,273,3},{700,275,3},{703,280,3},{710,275,3},{713,278,3}, {742,275,3},{743,277,3},{742,280,3},{750,282,3},{757,273,3},{765,273,3}, {782,275,3},{790,268,3},{793,270,3},{813,272,3},{815,273,3},{820,275,3}, {833,272,3},{842,272,3},{847,275,3},{852,277,3},{867,275,3},{872,275,3}, {878,273,3},{882,277,3},{885,277,3},{890,278,3},{892,277,3},{893,278,3}, {905,278,3},{907,282,3},{905,288,3},{908,290,3},{908,297,3},{907,298,3}, {908,310,3},{925,315,3},{927,317,3},{937,317,3},{943,313,3},{950,317,3}, {950,320,3},{958,327,3},{963,327,3},{965,330,3},{963,332,3},{968,337,3}, {975,333,3},{982,335,3},{985,348,3},{985,353,3},{995,362,3},{1007,363,3}, {1010,367,3},{1017,368,3},{1018,368,3},{1020,365,3},{1027,358,3},{1038,363,3}, {1042,363,3},{1045,368,3},{1040,380,3},{1047,382,3},{1050,382,3},{1058,385,3}, {1070,385,3},{1072,380,3},{1078,378,3},{1080,375,3},{1090,378,3},{1102,375,3}, {1103,373,3},{1112,373,3},{1112,370,3},{1143,347,3},{1155,352,3},{1157,353,3}, {1165,357,3},{1168,360,3},{1173,357,3},{1175,357,3},{1175,368,3},{1182,367,3}, {1183,363,3},{1192,362,3},{1198,367,3},{1210,363,3},{1225,367,3},{1253,365,3}, {1275,395,3},{1300,410,3},{1318,413,3},{1348,415,3},{1348,425,3},{1368,447,3}, {1378,488,3},{1373,492,3},{1373,500,3},{1375,512,3},{1375,528,3},{1378,533,3}, {1385,537,3},{1388,555,3},{1382,567,3},{1367,612,3},{1365,617,3},{1368,623,3}, {1368,628,3},{1360,642,3},{1335,668,3},{1310,680,3},{1300,693,3},{1300,708,3}, {1313,722,3},{1310,738,3},{1335,782,3},{1330,812,3},{1322,823,3},{1322,827,3}, {1307,843,3},{1308,848,3},{1307,857,3},{1300,863,3},{1295,867,3},{1285,898,3}, {1282,932,3},{1283,940,3},{1282,942,3},{1280,963,3},{1308,988,3},{1307,992,3}, {1313,993,3},{1327,1015,3},{1332,1047,3},{1338,1070,3},{1338,1085,3},{1337,1107,3}, {1338,1128,3},{1338,1145,3},{1327,1182,3},{1317,1202,3},{1312,1207,3},{1310,1215,3}, {1312,1218,3},{1312,1220,3},{1312,1225,3},{1308,1227,3},{1310,1230,3},{1307,1233,3}, {1307,1243,3},{1305,1248,3},{1308,1250,3},{1313,1250,3},{1315,1255,3},{1318,1255,3}, {1320,1253,3},{1322,1257,3},{1323,1257,3},{1327,1258,3},{1327,1262,3},{1330,1263,3}, {1328,1265,3},{1328,1268,3},{1332,1268,3},{1332,1272,3},{1333,1275,3},{1338,1277,3}, {1337,1280,3},{1340,1280,3},{1340,1283,3},{1343,1283,3},{1345,1287,3},{1348,1285,3}, {1347,1288,3},{1350,1288,3},{1348,1292,3},{1355,1307,3},{1355,1308,3},{1352,1308,3}, {1353,1312,3},{1352,1312,3},{1352,1313,3},{1355,1313,3},{1355,1315,3},{1352,1315,3}, {1353,1318,3},{1353,1320,3},{1357,1325,3},{1358,1323,3},{1360,1327,3},{1362,1325,3}, {1368,1332,3},{1363,1337,3},{1355,1335,3},{1353,1337,3},{1350,1338,3},{1342,1338,3}, {1337,1343,3},{1333,1348,3},{1332,1350,3},{1327,1352,3},{1322,1355,3},{1317,1360,3}, {1317,1362,3},{1313,1362,3},{1312,1360,3},{1310,1362,3},{1313,1367,3},{1313,1368,3}, {1312,1372,3},{1308,1372,3},{1307,1373,3},{1307,1377,3},{1310,1382,3},{1310,1383,3}, {1313,1385,3},{1313,1390,3},{1310,1388,3},{1305,1383,3},{1298,1378,3},{1297,1378,3}, {1300,1382,3},{1300,1385,3},{1295,1380,3},{1293,1378,3},{1293,1380,3},{1298,1387,3}, {1298,1388,3},{1297,1388,3},{1297,1387,3},{1295,1385,3},{1295,1387,3},{1288,1387,3}, {1285,1380,3},{1283,1385,3},{1282,1387,3},{1278,1385,3},{1280,1383,3},{1280,1382,3}, {1277,1385,3},{1273,1383,3},{1272,1385,3},{1270,1385,3},{1267,1383,3},{1260,1392,3}, {1258,1395,3},{1253,1397,3},{1252,1397,3},{1250,1398,3},{1248,1402,3},{1248,1405,3}, {1255,1412,3},{1255,1413,3},{1250,1418,3},{1245,1418,3},{1238,1417,3},{1235,1422,3}, {1235,1443,3},{1233,1448,3},{1232,1452,3},{1228,1452,3},{1228,1453,3},{1225,1457,3}, {1223,1455,3},{1220,1460,3},{1218,1462,3},{1218,1465,3},{1218,1467,3},{1215,1467,3}, {1212,1465,3},{1207,1463,3},{1205,1465,3},{1203,1462,3},{1197,1465,3},{1192,1465,3}, {1183,1462,3},{1177,1462,3},{1170,1455,3},{1165,1463,3},{1157,1465,3},{1150,1462,3}, {1145,1452,3},{1142,1447,3},{1140,1440,3},{1132,1430,3},{1130,1425,3},{1125,1418,3}, {1123,1415,3},{1125,1412,3},{1128,1400,3},{1117,1388,3},{1107,1385,3},{1103,1378,3}, {1093,1377,3},{1090,1372,3},{1085,1370,3},{1068,1358,3},{1065,1357,3},{1045,1350,3}, {1030,1348,3},{1023,1347,3},{1020,1347,3},{1017,1347,3},{1012,1340,3},{1008,1328,3}, {1007,1325,3},{1002,1325,3},{998,1327,3},{993,1325,3},{992,1323,3},{987,1323,3}, {980,1328,3},{973,1325,3},{967,1325,3},{965,1323,3},{958,1323,3},{953,1318,3}, {950,1302,3},{945,1297,3},{942,1295,3},{938,1288,3},{937,1287,3},{937,1285,3}, {935,1287,3},{935,1292,3},{928,1292,3},{907,1283,3},{902,1285,3},{885,1282,3}, {877,1280,3},{875,1278,3},{877,1273,3},{867,1268,3},{860,1257,3},{863,1250,3}, {860,1243,3},{862,1238,3},{850,1242,3},{842,1233,3},{843,1230,3},{842,1227,3}, {840,1225,3},{832,1223,3},{820,1225,3},{810,1220,3},{797,1222,3},{792,1217,3}, {773,1203,3},{767,1202,3},{763,1203,3},{757,1203,3},{757,1202,3},{745,1192,3}, {740,1187,3},{730,1180,3},{727,1175,3},{725,1175,3},{725,1178,3},{722,1182,3}, {712,1190,3},{708,1188,3},{707,1182,3},{703,1177,3},{700,1177,3},{700,1172,3}, {697,1168,3},{695,1163,3},{690,1158,3},{682,1155,3},{678,1158,3},{665,1155,3}, {660,1152,3},{658,1143,3},{648,1142,3},{645,1138,3},{643,1133,3},{645,1130,3}, {643,1127,3},{645,1125,3},{643,1118,3},{643,1112,3},{658,1107,3},{668,1108,3}, {673,1107,3},{678,1102,3},{678,1093,3},{680,1090,3},{683,1088,3},{688,1088,3}, {697,1085,3},{697,1078,3},{703,1068,3},{705,1062,3},{712,1062,3},{713,1060,3}, {702,1057,3},{695,1055,3},{693,1052,3},{688,1052,3},{688,1023,3},{692,1020,3}, {698,1018,3},{702,1017,3},{678,987,3},{680,980,3},{652,972,3},{652,962,3}, {645,958,3},{640,947,3},{633,943,3},{633,937,3},{620,930,3},{608,913,3}, {595,903,3},{595,900,3},{590,900,3},{590,895,3},{590,893,3},{587,892,3}, {583,887,3},{582,887,3},{578,888,3},{575,887,3},{570,883,3},{563,890,3}, {560,892,3},{550,887,3},{543,887,3},{537,883,3},{532,883,3},{530,885,3}, {518,882,3},{515,882,3},{512,877,3},{507,873,3},{503,873,3},{492,865,3}, {490,862,3},{483,863,3},{480,858,3},{482,860,3},{482,857,3},{478,853,3}, {470,853,3},{470,848,3},{475,848,3},{473,845,3},{475,840,3},{482,843,3}, {485,842,3},{480,840,3},{478,838,3},{480,835,3},{483,833,3},{483,832,3}, {487,832,3},{490,825,3},{493,823,3},{498,818,3},{497,818,3},{492,825,3}, {485,827,3},{482,827,3},{475,832,3},{472,833,3},{467,832,3},{463,837,3}, {460,833,3},{460,832,3},{455,830,3},{455,803,3},{453,798,3},{452,773,3}, {450,775,3},{450,767,3},{452,767,3},{453,757,3},{453,753,3},{457,755,3}, {463,753,3},{467,753,3},{470,755,3},{468,752,3},{463,752,3},{460,753,3}, {457,750,3},{457,747,3},{455,745,3},{455,742,3},{460,732,3},{460,728,3}, {457,727,3},{455,727,3},{453,730,3},{453,733,3},{450,733,3},{450,728,3}, {462,718,3},{467,718,3},{465,715,3},{468,710,3},{475,707,3},{472,705,3}, {472,708,3},{467,708,3},{463,715,3},{460,717,3},{457,718,3},{455,715,3}, {453,718,3},{452,718,3},{447,717,3},{447,712,3},{445,710,3},{447,708,3}, {450,708,3},{448,705,3},{443,708,3},{443,705,3},{458,700,3},{458,702,3}, {465,703,3},{472,700,3},{468,698,3},{472,697,3},{468,697,3},{460,698,3}, {462,695,3},{468,690,3},{460,693,3},{458,692,3},{457,693,3},{460,695,3}, {458,698,3},{448,698,3},{438,702,3},{437,700,3},{438,697,3},{437,697,3}, {438,692,3},{438,687,3},{445,687,3},{445,685,3},{455,682,3},{457,682,3}, {460,685,3},{467,678,3},{475,677,3},{480,678,3},{480,677,3},{483,675,3}, {482,673,3},{483,672,3},{478,672,3},{477,675,3},{467,677,3},{460,682,3}, {457,680,3},{453,680,3},{440,683,3},{435,687,3},{433,673,3},{435,672,3}, {448,672,3},{457,675,3},{460,673,3},{452,670,3},{442,670,3},{450,668,3}, {453,668,3},{450,665,3},{442,667,3},{440,668,3},{433,670,3},{433,662,3}, {438,660,3},{447,660,3},{450,655,3},{447,658,3},{437,657,3},{433,658,3}, {432,647,3},{435,643,3},{433,640,3},{432,642,3},{430,625,3},{432,625,3}, {437,627,3},{443,633,3},{443,630,3},{442,630,3},{438,627,3},{445,627,3}, {450,623,3},{443,625,3},{440,625,3},{443,623,3},{443,620,3},{438,623,3}, {433,622,3},{432,620,3},{430,620,3},{430,622,3},{428,623,3},{427,610,3}, {428,608,3},{433,608,3},{437,610,3},{437,608,3},{442,608,3},{442,605,3}, {435,605,3},{432,607,3},{428,605,3},{430,603,3},{432,600,3},{433,598,3}, {435,600,3},{438,600,3},{442,598,3},{438,598,3},{438,597,3},{438,595,3}, {435,597,3},{433,597,3},{438,587,3},{440,585,3},{443,587,3},{443,585,3}, {442,585,3},{445,578,3},{447,580,3},{448,573,3},{463,560,3},{472,555,3}, {472,557,3},{472,558,3},{473,557,3},{475,553,3},{485,547,3},{483,552,3}, {490,547,3},{502,543,3},{512,538,3},{513,538,3},{513,543,3},{508,547,3}, {515,545,3},{515,550,3},{518,545,3},{515,543,3},{515,537,3},{530,535,3}, {535,533,3},{537,542,3},{537,545,3},{533,547,3},{538,550,3},{538,558,3}, {540,555,3},{548,553,3},{550,555,3},{550,562,3},{553,563,3},{552,560,3}, {552,555,3},{548,552,3},{543,550,3},{540,548,3},{540,545,3},{543,545,3}, {543,542,3},{540,542,3},{540,543,3},{538,538,3},{543,525,3},{550,520,3}, {555,518,3},{558,522,3},{558,530,3},{555,538,3},{563,543,3},{558,552,3}, {562,550,3},{565,545,3},{563,542,3},{562,540,3},{560,538,3},{562,532,3}, {563,532,3},{570,535,3},{572,533,3},{562,528,3},{560,523,3},{557,518,3}, {560,515,3},{570,508,3},{577,510,3},{580,512,3},{577,515,3},{582,515,3}, {585,520,3},{585,525,3},{590,528,3},{590,527,3},{587,523,3},{587,520,3}, {580,510,3},{575,505,3},{585,502,3},{597,492,3},{605,482,3},{613,475,3}, {625,458,3},{630,453,3},{637,440,3},{642,408,3},{643,380,3},{642,342,3}, {645,338,3},{645,340,3},{645,342,3},{645,343,3},{643,343,3},{642,343,3}, {645,347,3},{645,353,3},{647,357,3},{650,357,3},{653,372,3},{653,375,3}, {658,377,3},{660,385,3},{662,385,3},{662,377,3},{660,372,3},{655,363,3}, {655,358,3},{652,352,3},{653,348,3},{658,348,3},{660,347,3},{655,343,3}, {655,340,3},{650,340,3},{645,337,3},{642,338,3},{642,340,3},{638,338,3}, {640,323,3},{638,310,3},{638,293,3},{637,272,3},{1175,357,131},{1185,347,3}, {1185,343,3},{1188,338,3},{1188,332,3},{1195,327,3},{1202,325,3},{1205,322,3}, {1212,317,3},{1218,305,3},{1227,302,3},{1230,295,3},{1233,292,3},{1240,283,3}, {1238,278,3},{1235,275,3},{1235,272,3},{1228,268,3},{1230,267,3},{1230,265,3}, {1228,262,3},{1230,260,3},{1227,253,3},{1228,252,3},{1227,250,3},{1227,247,3}, {1225,247,3},{1227,243,3},{1223,238,3},{1208,240,3},{1203,243,3},{1202,247,3}, {1198,247,3},{1198,245,3},{1195,243,3},{1195,240,3},{1193,238,3},{1190,242,3}, {1188,240,3},{1195,235,3},{1200,232,3},{1205,228,3},{1212,223,3},{1217,220,3}, {1222,217,3},{1227,212,3},{1235,207,3},{1238,208,3},{1238,212,3},{1242,217,3}, {1240,217,3},{1242,227,3},{1247,227,3},{1252,223,3},{1260,222,3},{1263,220,3}, {1265,215,3},{1270,215,3},{1273,210,3},{1272,203,3},{1273,198,3},{1272,197,3}, {1270,193,3},{1263,188,3},{1262,187,3},{1262,180,3},{1262,175,3},{1262,170,3}, {1263,165,3},{1263,158,3},{1270,150,3},{1273,145,3},{1278,140,3},{1283,135,3}, {1287,128,3},{1292,123,3},{1295,118,3},{1302,112,3},{1302,102,3},{1305,98,3}, {1335,98,3},{1337,100,3},{1337,102,3},{1332,118,3},{1335,120,3},{1337,120,3}, {1335,123,3},{1333,125,3},{1335,128,3},{1340,125,3},{1340,117,3},{1347,103,3}, {1357,100,3},{1362,90,3},{1362,83,3},{1365,77,3},{1367,78,3},{1368,77,3}, {1368,62,3},{1372,60,3},{1378,62,3},{1378,58,3},{1392,47,3},{1395,47,3}, {1398,42,3},{1402,42,3},{1405,38,3},{1408,40,3},{1413,35,3},{1418,40,3}, {1423,40,3},{1425,42,3},{1437,32,3},{1437,30,3},{1447,18,3},{1452,17,3}, {1475,23,3},{1483,20,3},{1488,23,3},{1492,23,3},{1500,23,3},{1497,40,3}, {1500,52,3},{1495,70,3},{1497,75,3},{1498,97,3},{1500,100,3},{1528,132,3}, {1528,140,3},{1530,145,3},{1530,152,3},{1530,157,3},{1530,162,3},{1530,167,3}, {1530,172,3},{1532,178,3},{1532,183,3},{1532,188,3},{1532,193,3},{1532,200,3}, {1532,205,3},{1533,210,3},{1533,215,3},{1533,220,3},{1533,227,3},{1533,232,3}, {1533,237,3},{1533,242,3},{1535,247,3},{1535,253,3},{1535,263,3},{1533,302,3}, {1543,303,3},{1535,352,3},{1550,353,3},{1555,362,3},{1565,372,3},{1567,382,3}, {1572,388,3},{1575,390,3},{1590,392,3},{1598,400,3},{1608,398,3},{1623,405,3}, {1630,407,3},{1635,412,3},{1640,420,3},{1645,420,3},{1650,420,3},{1655,420,3}, {1660,420,3},{1665,420,3},{1670,420,3},{1675,420,3},{1680,420,3},{1685,422,3}, {1690,422,3},{1697,422,3},{1698,422,3},{1700,425,3},{1705,425,3},{1710,425,3}, {1715,425,3},{1720,425,3},{1725,425,3},{1730,425,3},{1735,425,3},{1740,425,3}, {1747,425,3},{1752,425,3},{1757,425,3},{1762,425,3},{1767,425,3},{1772,425,3}, {1777,425,3},{1782,425,3},{1787,425,3},{1792,425,3},{1797,425,3},{1803,425,3}, {1808,425,3},{1813,425,3},{1818,425,3},{1823,425,3},{1828,425,3},{1835,425,3}, {1840,425,3},{1845,425,3},{1850,425,3},{1855,425,3},{1860,425,3},{1867,425,3}, {1872,425,3},{1877,425,3},{1882,425,3},{1887,425,3},{1892,425,3},{1897,425,3}, {1902,425,3},{1907,425,3},{1912,425,3},{1915,425,3},{1915,430,3},{1917,435,3}, {1918,442,3},{1918,447,3},{1920,452,3},{1922,458,3},{1922,463,3},{1923,468,3}, {1925,473,3},{1925,480,3},{1927,485,3},{1927,490,3},{1928,497,3},{1930,502,3}, {1930,507,3},{1932,513,3},{1933,518,3},{1933,523,3},{1935,528,3},{1935,535,3}, {1937,540,3},{1938,545,3},{1938,552,3},{1940,557,3},{1942,562,3},{1942,568,3}, {1943,573,3},{1943,578,3},{1948,585,3},{1953,590,3},{1958,597,3},{1963,602,3}, {1967,608,3},{1972,613,3},{1977,618,3},{1982,625,3},{1987,630,3},{1992,637,3}, {1997,642,3},{2002,647,3},{2007,653,3},{2012,658,3},{2017,665,3},{2022,670,3}, {2027,677,3},{2032,682,3},{2037,687,3},{2040,693,3},{2045,698,3},{2050,705,3}, {2055,710,3},{2060,717,3},{2065,722,3},{2070,727,3},{2075,733,3},{2080,738,3}, {2085,745,3},{2088,750,3},{2092,757,3},{2095,762,3},{2098,768,3},{2102,773,3}, {2107,780,3},{2110,785,3},{2113,792,3},{2117,798,3},{2120,803,3},{2123,810,3}, {2128,815,3},{2132,822,3},{2135,827,3},{2138,833,3},{2142,838,3},{2145,845,3}, {2148,850,3},{2153,857,3},{2157,863,3},{2160,868,3},{2163,875,3},{2167,880,3}, {2170,887,3},{2173,892,3},{2178,898,3},{2182,905,3},{2185,910,3},{2188,917,3}, {2192,922,3},{2195,928,3},{2198,935,3},{2202,940,3},{2207,947,3},{2210,952,3}, {2213,958,3},{2217,963,3},{2220,970,3},{2223,977,3},{2227,982,3},{2230,988,3}, {2235,993,3},{2238,1000,3},{2242,1007,3},{2245,1012,3},{2248,1018,3},{2252,1023,3}, {2255,1030,3},{2258,1037,3},{2262,1042,3},{2267,1048,3},{2270,1055,3},{2273,1060,3}, {2277,1067,3},{2280,1072,3},{2283,1078,3},{2287,1085,3},{2290,1090,3},{2293,1097,3}, {2297,1102,3},{2300,1108,3},{2305,1115,3},{2308,1120,3},{2312,1127,3},{2315,1133,3}, {2318,1138,3},{2322,1145,3},{2325,1152,3},{2328,1157,3},{2332,1163,3},{2335,1170,3}, {2338,1175,3},{2342,1182,3},{2347,1187,3},{2350,1193,3},{2352,1198,3},{2350,1207,3}, {2348,1213,3},{2348,1218,3},{2347,1225,3},{2345,1232,3},{2343,1237,3},{2343,1243,3}, {2342,1248,3},{2340,1255,3},{2338,1260,3},{2338,1267,3},{2337,1272,3},{2335,1278,3}, {2333,1285,3},{2333,1290,3},{2332,1297,3},{2330,1302,3},{2328,1308,3},{2327,1313,3}, {2327,1320,3},{2325,1325,3},{2323,1332,3},{2322,1337,3},{2320,1343,3},{2318,1350,3}, {2317,1355,3},{2313,1360,3},{2310,1363,3},{2307,1368,3},{2303,1372,3},{2300,1377,3}, {2297,1382,3},{2293,1385,3},{2290,1390,3},{2287,1393,3},{2282,1398,3},{2278,1402,3}, {2275,1407,3},{2272,1410,3},{2268,1415,3},{2265,1420,3},{2262,1423,3},{2263,1427,3}, {2267,1432,3},{2268,1438,3},{2272,1445,3},{2275,1452,3},{2278,1457,3},{2282,1463,3}, {2285,1470,3},{2288,1475,3},{2292,1482,3},{2293,1488,3},{2297,1493,3},{2300,1500,3}, {2295,1502,3},{2288,1502,3},{2283,1503,3},{2278,1505,3},{2272,1505,3},{2267,1507,3}, {2262,1507,3},{2255,1508,3},{2250,1510,3},{2245,1510,3},{2240,1512,3},{2233,1513,3}, {2228,1513,3},{2223,1515,3},{2217,1517,3},{2212,1517,3},{2207,1518,3},{2200,1520,3}, {2195,1520,3},{2188,1520,3},{2183,1520,3},{2178,1520,3},{2172,1520,3},{2167,1520,3}, {2162,1520,3},{2157,1520,3},{2150,1520,3},{2147,1525,3},{2143,1530,3},{2138,1532,3}, {2135,1535,3},{2130,1538,3},{2127,1542,3},{2122,1545,3},{2117,1547,3},{2113,1550,3}, {2108,1553,3},{2105,1557,3},{2100,1560,3},{2097,1562,3},{2093,1558,3},{2088,1555,3}, {2083,1555,3},{2078,1557,3},{2073,1562,3},{2070,1565,3},{2067,1570,3},{2062,1575,3}, {2058,1578,3},{2053,1582,3},{2050,1587,3},{2045,1590,3},{2040,1595,3},{2037,1598,3}, {2032,1597,3},{2027,1595,3},{2020,1592,3},{2015,1588,3},{2010,1585,3},{2005,1582,3}, {2000,1578,3},{1993,1577,3},{1988,1575,3},{1982,1573,3},{1977,1573,3},{1972,1573,3}, {1967,1572,3},{1960,1572,3},{1955,1570,3},{1950,1570,3},{1945,1568,3},{1938,1568,3}, {1933,1567,3},{1928,1567,3},{1922,1567,3},{1917,1565,3},{1912,1565,3},{1907,1563,3}, {1900,1563,3},{1895,1563,3},{1890,1562,3},{1885,1562,3},{1878,1560,3},{1873,1560,3}, {1867,1560,3},{1862,1560,3},{1857,1558,3},{1852,1558,3},{1845,1558,3},{1840,1558,3}, {1835,1558,3},{1828,1557,3},{1823,1557,3},{1818,1557,3},{1813,1557,3},{1807,1557,3}, {1802,1557,3},{1797,1555,3},{1790,1555,3},{1785,1555,3},{1780,1555,3},{1775,1555,3}, {1768,1555,3},{1763,1553,3},{1758,1553,3},{1752,1553,3},{1747,1553,3},{1742,1553,3}, {1737,1552,3},{1733,1552,3},{1728,1552,3},{1723,1552,3},{1717,1550,3},{1712,1550,3}, {1707,1550,3},{1702,1550,3},{1695,1550,3},{1690,1548,3},{1685,1545,3},{1682,1540,3}, {1677,1537,3},{1673,1533,3},{1670,1528,3},{1665,1525,3},{1662,1522,3},{1657,1517,3}, {1653,1513,3},{1650,1510,3},{1645,1507,3},{1642,1502,3},{1637,1498,3},{1633,1495,3}, {1630,1490,3},{1625,1487,3},{1622,1483,3},{1617,1478,3},{1613,1475,3},{1610,1472,3}, {1605,1467,3},{1602,1463,3},{1597,1460,3},{1593,1457,3},{1590,1452,3},{1585,1448,3}, {1582,1445,3},{1577,1440,3},{1573,1437,3},{1568,1433,3},{1562,1428,3},{1557,1425,3}, {1552,1422,3},{1547,1418,3},{1540,1413,3},{1535,1410,3},{1530,1407,3},{1525,1402,3}, {1520,1398,3},{1517,1395,3},{1512,1392,3},{1508,1390,3},{1502,1385,3},{1497,1383,3}, {1492,1380,3},{1487,1377,3},{1480,1378,3},{1475,1378,3},{1470,1377,3},{1472,1373,3}, {1468,1370,3},{1463,1367,3},{1462,1368,3},{1457,1368,3},{1453,1363,3},{1452,1358,3}, {1450,1353,3},{1448,1348,3},{1443,1347,3},{1438,1347,3},{1433,1348,3},{1427,1350,3}, {1422,1352,3},{1417,1352,3},{1410,1353,3},{1405,1355,3},{1400,1357,3},{1397,1352,3}, {1393,1347,3},{1393,1337,3},{1392,1333,3},{1390,1328,3},{1388,1323,3},{1385,1322,3}, {1382,1325,3},{1378,1325,3},{1377,1327,3},{1375,1333,3},{1372,1335,3},{1370,1332,3}, {1368,1332,3},{1362,1325,3},{1360,1327,3},{1358,1323,3},{1357,1325,3},{1353,1320,3}, {1353,1318,3},{1352,1315,3},{1355,1315,3},{1355,1313,3},{1352,1313,3},{1352,1312,3}, {1353,1312,3},{1352,1308,3},{1355,1308,3},{1355,1307,3},{1348,1292,3},{1350,1288,3}, {1347,1288,3},{1348,1285,3},{1345,1287,3},{1343,1283,3},{1340,1283,3},{1340,1280,3}, {1337,1280,3},{1338,1277,3},{1333,1275,3},{1332,1272,3},{1332,1268,3},{1328,1268,3}, {1328,1265,3},{1330,1263,3},{1327,1262,3},{1327,1258,3},{1323,1257,3},{1322,1257,3}, {1320,1253,3},{1318,1255,3},{1315,1255,3},{1313,1250,3},{1308,1250,3},{1305,1248,3}, {1307,1243,3},{1307,1233,3},{1310,1230,3},{1308,1227,3},{1312,1225,3},{1312,1220,3}, {1312,1218,3},{1310,1215,3},{1312,1207,3},{1317,1202,3},{1327,1182,3},{1338,1145,3}, {1338,1128,3},{1337,1107,3},{1338,1085,3},{1338,1070,3},{1332,1047,3},{1327,1015,3}, {1313,993,3},{1307,992,3},{1308,988,3},{1280,963,3},{1282,942,3},{1283,940,3}, {1282,932,3},{1285,898,3},{1295,867,3},{1300,863,3},{1307,857,3},{1308,848,3}, {1307,843,3},{1322,827,3},{1322,823,3},{1330,812,3},{1335,782,3},{1310,738,3}, {1313,722,3},{1300,708,3},{1300,693,3},{1310,680,3},{1335,668,3},{1360,642,3}, {1368,628,3},{1368,623,3},{1365,617,3},{1367,612,3},{1382,567,3},{1388,555,3}, {1385,537,3},{1378,533,3},{1375,528,3},{1375,512,3},{1373,500,3},{1373,492,3}, {1378,488,3},{1368,447,3},{1348,425,3},{1348,415,3},{1318,413,3},{1300,410,3}, {1275,395,3},{1253,365,3},{1225,367,3},{1210,363,3},{1198,367,3},{1192,362,3}, {1183,363,3},{1182,367,3},{1175,368,3},{1175,357,3},{3023,953,131},{3028,952,3}, {3035,952,3},{3040,950,3},{3045,948,3},{3052,947,3},{3057,945,3},{3062,943,3}, {3067,943,3},{3073,942,3},{3078,940,3},{3083,938,3},{3090,937,3},{3095,935,3}, {3100,933,3},{3107,933,3},{3112,932,3},{3117,930,3},{3122,928,3},{3128,927,3}, {3133,925,3},{3138,923,3},{3145,923,3},{3150,922,3},{3155,920,3},{3162,918,3}, {3167,917,3},{3172,915,3},{3178,913,3},{3183,913,3},{3188,912,3},{3193,910,3}, {3200,908,3},{3205,907,3},{3210,905,3},{3213,898,3},{3217,895,3},{3220,888,3}, {3223,883,3},{3228,877,3},{3230,872,3},{3235,865,3},{3238,858,3},{3242,855,3}, {3245,848,3},{3248,843,3},{3253,835,3},{3257,835,3},{3263,833,3},{3268,833,3}, {3273,832,3},{3280,832,3},{3283,830,3},{3312,808,3},{3312,802,3},{3320,787,3}, {3320,778,3},{3323,773,3},{3343,772,3},{3368,755,3},{3375,755,3},{3378,752,3}, {3388,750,3},{3410,753,3},{3413,758,3},{3420,763,3},{3425,778,3},{3433,782,3}, {3438,783,3},{3442,785,3},{3453,812,3},{3458,818,3},{3462,820,3},{3465,825,3}, {3468,822,3},{3475,828,3},{3492,827,3},{3502,832,3},{3512,833,3},{3515,838,3}, {3520,840,3},{3523,845,3},{3527,843,3},{3528,833,3},{3533,832,3},{3543,832,3}, {3553,837,3},{3568,833,3},{3575,828,3},{3582,827,3},{3590,827,3},{3607,830,3}, {3615,833,3},{3622,832,3},{3628,833,3},{3635,837,3},{3645,837,3},{3648,830,3}, {3648,820,3},{3652,818,3},{3655,820,3},{3660,835,3},{3663,838,3},{3667,845,3}, {3675,848,3},{3675,847,3},{3677,842,3},{3680,843,3},{3680,848,3},{3680,855,3}, {3683,865,3},{3687,865,3},{3690,862,3},{3693,862,3},{3697,870,3},{3697,877,3}, {3698,883,3},{3703,892,3},{3715,905,3},{3718,915,3},{3723,920,3},{3723,933,3}, {3727,942,3},{3727,945,3},{3730,953,3},{3730,958,3},{3733,965,3},{3733,973,3}, {3733,985,3},{3728,987,3},{3725,985,3},{3723,978,3},{3718,978,3},{3715,980,3}, {3713,985,3},{3715,990,3},{3720,993,3},{3722,993,3},{3722,982,3},{3727,988,3}, {3725,992,3},{3725,998,3},{3727,1005,3},{3723,1008,3},{3723,1013,3},{3720,1020,3}, {3718,1022,3},{3718,1027,3},{3717,1023,3},{3715,1022,3},{3717,1022,3},{3717,1015,3}, {3715,1013,3},{3713,1022,3},{3712,1023,3},{3710,1023,3},{3710,1020,3},{3707,1017,3}, {3703,1017,3},{3698,1020,3},{3688,1035,3},{3683,1030,3},{3682,1028,3},{3683,1028,3}, {3685,1027,3},{3683,1020,3},{3678,1020,3},{3678,1025,3},{3680,1028,3},{3678,1028,3}, {3675,1032,3},{3672,1042,3},{3678,1053,3},{3685,1057,3},{3688,1060,3},{3688,1072,3}, {3700,1088,3},{3705,1090,3},{3708,1105,3},{3705,1107,3},{3702,1105,3},{3687,1112,3}, {3675,1098,3},{3665,1090,3},{3647,1080,3},{3643,1068,3},{3637,1053,3},{3625,1047,3}, {3612,1045,3},{3605,1047,3},{3600,1052,3},{3597,1052,3},{3592,1058,3},{3585,1062,3}, {3580,1068,3},{3578,1070,3},{3577,1073,3},{3578,1082,3},{3573,1082,3},{3570,1083,3}, {3563,1103,3},{3555,1102,3},{3552,1103,3},{3552,1105,3},{3540,1102,3},{3535,1102,3}, {3530,1107,3},{3523,1115,3},{3523,1112,3},{3517,1107,3},{3513,1102,3},{3505,1102,3}, {3497,1092,3},{3487,1090,3},{3483,1085,3},{3480,1085,3},{3475,1077,3},{3467,1073,3}, {3463,1063,3},{3453,1057,3},{3450,1043,3},{3440,1033,3},{3442,1028,3},{3438,1027,3}, {3432,1012,3},{3417,1000,3},{3402,1003,3},{3393,1008,3},{3383,1017,3},{3370,1033,3}, {3363,1048,3},{3367,1060,3},{3370,1067,3},{3370,1072,3},{3360,1072,3},{3353,1067,3}, {3348,1070,3},{3347,1075,3},{3355,1092,3},{3358,1093,3},{3362,1090,3},{3362,1097,3}, {3363,1098,3},{3362,1105,3},{3358,1108,3},{3353,1112,3},{3337,1110,3},{3337,1113,3}, {3333,1117,3},{3328,1128,3},{3330,1113,3},{3328,1112,3},{3325,1117,3},{3322,1117,3}, {3322,1123,3},{3318,1135,3},{3318,1142,3},{3320,1143,3},{3327,1133,3},{3320,1143,3}, {3317,1153,3},{3290,1147,3},{3283,1148,3},{3265,1147,3},{3262,1148,3},{3255,1155,3}, {3252,1157,3},{3248,1158,3},{3245,1157,3},{3237,1145,3},{3213,1088,3},{3202,1080,3}, {3200,1075,3},{3197,1072,3},{3197,1070,3},{3198,1065,3},{3197,1062,3},{3187,1062,3}, {3175,1052,3},{3173,1048,3},{3173,1033,3},{3170,1028,3},{3160,1022,3},{3152,1013,3}, {3142,1012,3},{3107,1027,3},{3100,1025,3},{3092,1028,3},{3073,1022,3},{3065,1012,3}, {3058,1008,3},{3035,988,3},{3035,977,3},{3032,973,3},{3023,953,3},{1915,425,131}, {1913,418,3},{1913,413,3},{1912,408,3},{1910,403,3},{1910,397,3},{1908,392,3}, {1908,387,3},{1907,380,3},{1905,375,3},{1905,370,3},{1903,365,3},{1902,358,3}, {1902,353,3},{1900,348,3},{1900,342,3},{1898,337,3},{1898,333,3},{1905,325,3}, {1907,320,3},{1912,313,3},{1915,312,3},{1923,315,3},{1925,320,3},{1933,320,3}, {1938,328,3},{1942,327,3},{1945,325,3},{1952,325,3},{1953,322,3},{1957,322,3}, {1982,323,3},{1985,315,3},{1990,308,3},{1995,297,3},{1997,282,3},{2000,272,3}, {2000,258,3},{2002,257,3},{2002,252,3},{2005,248,3},{2005,242,3},{2018,235,3}, {2023,228,3},{2028,220,3},{2023,212,3},{2022,208,3},{2027,198,3},{2023,193,3}, {2023,190,3},{2030,188,3},{2030,180,3},{2042,167,3},{2053,167,3},{2057,163,3}, {2063,148,3},{2065,137,3},{2073,132,3},{2073,117,3},{2080,117,3},{2100,120,3}, {2110,117,3},{2112,115,3},{2115,110,3},{2117,105,3},{2120,100,3},{2123,95,3}, {2127,90,3},{2130,85,3},{2133,80,3},{2137,75,3},{2140,70,3},{2142,65,3}, {2145,60,3},{2148,55,3},{2152,50,3},{2155,45,3},{2158,40,3},{2162,35,3}, {2163,30,3},{2167,25,3},{2170,20,3},{2173,15,3},{2177,10,3},{2180,5,3}, {2183,0,3},{2185,65533,3},{2188,65528,3},{2192,65523,3},{2195,65518,3}, {2200,65513,3},{2203,65508,3},{2207,65503,3},{2210,65498,3},{2213,65493,3}, {2217,65488,3},{2220,65483,3},{2223,65478,3},{2227,65473,3},{2230,65468,3}, {2233,65463,3},{2237,65458,3},{2240,65453,3},{2243,65448,3},{2248,65443,3}, {2252,65436,3},{2255,65431,3},{2258,65426,3},{2262,65421,3},{2265,65416,3}, {2268,65411,3},{2272,65406,3},{2275,65401,3},{2278,65396,3},{2282,65391,3}, {2285,65386,3},{2288,65381,3},{2292,65376,3},{2295,65371,3},{2298,65366,3}, {2302,65361,3},{2305,65356,3},{2308,65351,3},{2313,65346,3},{2317,65341,3}, {2320,65336,3},{2323,65331,3},{2327,65326,3},{2330,65321,3},{2333,65314,3}, {2337,65309,3},{2340,65304,3},{2343,65299,3},{2347,65294,3},{2350,65289,3}, {2353,65284,3},{2357,65279,3},{2360,65274,3},{2363,65269,3},{2367,65264,3}, {2370,65259,3},{2373,65253,3},{2377,65248,3},{2380,65243,3},{2383,65238,3}, {2387,65233,3},{2390,65228,3},{2393,65223,3},{2397,65218,3},{2400,65213,3}, {2403,65208,3},{2407,65201,3},{2410,65196,3},{2413,65191,3},{2417,65186,3}, {2420,65181,3},{2423,65176,3},{2427,65171,3},{2430,65166,3},{2433,65161,3}, {2437,65154,3},{2440,65149,3},{2443,65144,3},{2447,65139,3},{2450,65134,3}, {2453,65129,3},{2457,65124,3},{2460,65118,3},{2463,65113,3},{2467,65108,3}, {2470,65103,3},{2473,65098,3},{2477,65093,3},{2480,65088,3},{2483,65081,3}, {2487,65076,3},{2490,65071,3},{2493,65066,3},{2497,65061,3},{2500,65056,3}, {2502,65053,3},{2505,65048,3},{2508,65043,3},{2512,65038,3},{2515,65031,3}, {2518,65026,3},{2522,65021,3},{2525,65016,3},{2528,65011,3},{2532,65006,3}, {2535,64999,3},{2538,64994,3},{2540,64989,3},{2543,64984,3},{2547,64979,3}, {2550,64973,3},{2553,64968,3},{2557,64963,3},{2560,64958,3},{2563,64953,3}, {2567,64946,3},{2570,64941,3},{2573,64936,3},{2577,64931,3},{2580,64926,3}, {2583,64919,3},{2587,64914,3},{2590,64909,3},{2593,64904,3},{2595,64898,3}, {2598,64893,3},{2602,64888,3},{2605,64883,3},{2608,64878,3},{2612,64871,3}, {2615,64866,3},{2618,64861,3},{2622,64856,3},{2625,64849,3},{2628,64844,3}, {2632,64839,3},{2635,64834,3},{2637,64828,3},{2640,64823,3},{2643,64818,3}, {2647,64813,3},{2650,64806,3},{2653,64801,3},{2657,64796,3},{2660,64791,3}, {2663,64784,3},{2667,64779,3},{2670,64774,3},{2672,64768,3},{2675,64763,3}, {2678,64758,3},{2682,64753,3},{2685,64746,3},{2688,64741,3},{2692,64736,3}, {2695,64731,3},{2698,64724,3},{2700,64719,3},{2703,64714,3},{2707,64708,3}, {2710,64703,3},{2713,64698,3},{2717,64691,3},{2720,64686,3},{2723,64681,3}, {2725,64676,3},{2728,64669,3},{2767,64669,3},{2770,64669,3},{2777,64669,3}, {2783,64669,3},{2790,64669,3},{2797,64669,3},{2803,64669,3},{2810,64669,3}, {2817,64669,3},{2823,64669,3},{2830,64669,3},{2835,64669,3},{2840,64669,3}, {2847,64669,3},{2853,64669,3},{2860,64669,3},{2867,64669,3},{2872,64669,3}, {2878,64686,3},{2883,64689,3},{2885,64694,3},{2892,64699,3},{2895,64706,3}, {2905,64719,3},{2912,64736,3},{2915,64739,3},{2925,64756,3},{2930,64761,3}, {2932,64766,3},{2938,64771,3},{2940,64778,3},{2938,64788,3},{2940,64793,3}, {2947,64801,3},{2953,64806,3},{2963,64824,3},{2962,64838,3},{2962,64853,3}, {2957,64866,3},{2957,64878,3},{2963,64886,3},{2975,64888,3},{2982,64888,3}, {2983,64889,3},{2980,64896,3},{2982,64904,3},{2980,64914,3},{2985,64921,3}, {2983,64936,3},{2988,64958,3},{2990,64983,3},{2995,64988,3},{3000,65001,3}, {3010,65014,3},{3025,65028,3},{3045,65039,3},{3050,65044,3},{3058,65068,3}, {3063,65078,3},{3063,65089,3},{3065,65096,3},{3068,65101,3},{3077,65119,3}, {3092,65134,3},{3093,65151,3},{3093,65164,3},{3097,65173,3},{3102,65176,3}, {3110,65176,3},{3112,65171,3},{3117,65166,3},{3118,65163,3},{3117,65159,3}, {3115,65156,3},{3117,65153,3},{3123,65156,3},{3133,65156,3},{3140,65164,3}, {3143,65161,3},{3143,65154,3},{3148,65151,3},{3165,65153,3},{3170,65154,3}, {3172,65168,3},{3167,65184,3},{3173,65198,3},{3175,65209,3},{3183,65236,3}, {3185,65239,3},{3190,65241,3},{3203,65243,3},{3208,65251,3},{3208,65263,3}, {3213,65286,3},{3215,65303,3},{3212,65359,3},{3212,65391,3},{3208,65411,3}, {3210,65418,3},{3213,65419,3},{3217,65416,3},{3217,65414,3},{3217,65406,3}, {3222,65411,3},{3230,65413,3},{3233,65411,3},{3240,65416,3},{3242,65424,3}, {3245,65429,3},{3250,65434,3},{3267,65409,3},{3270,65406,3},{3272,65398,3}, {3293,65381,3},{3298,65388,3},{3307,65388,3},{3310,65381,3},{3315,65378,3}, {3320,65376,3},{3323,65371,3},{3327,65369,3},{3338,65369,3},{3352,65376,3}, {3355,65376,3},{3360,65376,3},{3365,65371,3},{3370,65363,3},{3377,65368,3}, {3388,65364,3},{3408,65371,3},{3435,65361,3},{3438,65356,3},{3448,65368,3}, {3450,65363,3},{3462,65351,3},{3465,65356,3},{3472,65358,3},{3475,65361,3}, {3482,65348,3},{3487,65339,3},{3493,65336,3},{3493,65329,3},{3500,65323,3}, {3502,65318,3},{3503,65316,3},{3508,65316,3},{3508,65318,3},{3510,65321,3}, {3507,65329,3},{3508,65336,3},{3507,65339,3},{3512,65358,3},{3517,65366,3}, {3518,65371,3},{3523,65376,3},{3530,65389,3},{3532,65399,3},{3538,65409,3}, {3557,65418,3},{3557,65421,3},{3563,65429,3},{3568,65433,3},{3570,65438,3}, {3572,65443,3},{3572,65446,3},{3573,65451,3},{3577,65454,3},{3577,65456,3}, {3575,65458,3},{3575,65464,3},{3572,65466,3},{3572,65471,3},{3572,65474,3}, {3577,65479,3},{3577,65483,3},{3583,65488,3},{3588,65488,3},{3588,65493,3}, {3590,65499,3},{3590,65501,3},{3587,65506,3},{3583,65506,3},{3580,65513,3}, {3578,65524,3},{3583,0,3},{3588,5,3},{3605,13,3},{3612,22,3},{3613,30,3}, {3620,35,3},{3622,45,3},{3633,65,3},{3633,75,3},{3638,87,3},{3640,92,3}, {3645,95,3},{3648,105,3},{3648,115,3},{3650,117,3},{3650,127,3},{3655,135,3}, {3652,148,3},{3653,153,3},{3653,157,3},{3657,183,3},{3657,203,3},{3663,233,3}, {3662,240,3},{3660,242,3},{3658,257,3},{3660,263,3},{3668,278,3},{3672,283,3}, {3675,285,3},{3680,290,3},{3680,293,3},{3680,303,3},{3675,308,3},{3673,313,3}, {3675,322,3},{3678,323,3},{3680,322,3},{3682,325,3},{3678,330,3},{3677,348,3}, {3682,363,3},{3688,375,3},{3692,388,3},{3690,393,3},{3688,410,3},{3690,415,3}, {3688,420,3},{3690,427,3},{3690,438,3},{3692,443,3},{3690,448,3},{3688,455,3}, {3690,478,3},{3677,510,3},{3672,508,3},{3667,517,3},{3665,525,3},{3663,533,3}, {3665,542,3},{3670,553,3},{3677,558,3},{3678,565,3},{3682,572,3},{3683,577,3}, {3682,582,3},{3683,600,3},{3692,623,3},{3695,627,3},{3698,625,3},{3702,627,3}, {3708,637,3},{3708,647,3},{3705,655,3},{3702,658,3},{3700,657,3},{3697,660,3}, {3695,667,3},{3695,675,3},{3695,678,3},{3695,683,3},{3693,685,3},{3692,687,3}, {3690,688,3},{3688,695,3},{3692,707,3},{3692,713,3},{3692,717,3},{3698,725,3}, {3703,725,3},{3707,718,3},{3708,722,3},{3707,727,3},{3708,728,3},{3707,733,3}, {3708,738,3},{3705,738,3},{3705,740,3},{3705,748,3},{3698,758,3},{3697,763,3}, {3698,767,3},{3695,772,3},{3697,777,3},{3698,780,3},{3693,777,3},{3692,778,3}, {3690,777,3},{3688,778,3},{3685,793,3},{3688,805,3},{3693,820,3},{3695,823,3}, {3692,828,3},{3692,835,3},{3690,845,3},{3693,862,3},{3690,862,3},{3687,865,3}, {3683,865,3},{3680,855,3},{3680,848,3},{3680,843,3},{3677,842,3},{3675,847,3}, {3675,848,3},{3667,845,3},{3663,838,3},{3660,835,3},{3655,820,3},{3652,818,3}, {3648,820,3},{3648,830,3},{3645,837,3},{3635,837,3},{3628,833,3},{3622,832,3}, {3615,833,3},{3607,830,3},{3590,827,3},{3582,827,3},{3575,828,3},{3568,833,3}, {3553,837,3},{3543,832,3},{3533,832,3},{3528,833,3},{3527,843,3},{3523,845,3}, {3520,840,3},{3515,838,3},{3512,833,3},{3502,832,3},{3492,827,3},{3475,828,3}, {3468,822,3},{3465,825,3},{3462,820,3},{3458,818,3},{3453,812,3},{3442,785,3}, {3438,783,3},{3433,782,3},{3425,778,3},{3420,763,3},{3413,758,3},{3410,753,3}, {3388,750,3},{3378,752,3},{3375,755,3},{3368,755,3},{3343,772,3},{3323,773,3}, {3320,778,3},{3320,787,3},{3312,802,3},{3312,808,3},{3283,830,3},{3280,832,3}, {3273,832,3},{3268,833,3},{3263,833,3},{3257,835,3},{3253,835,3},{3248,843,3}, {3245,848,3},{3242,855,3},{3238,858,3},{3235,865,3},{3230,872,3},{3228,877,3}, {3223,883,3},{3220,888,3},{3217,895,3},{3213,898,3},{3210,905,3},{3205,907,3}, {3200,908,3},{3193,910,3},{3188,912,3},{3183,913,3},{3178,913,3},{3172,915,3}, {3167,917,3},{3162,918,3},{3155,920,3},{3150,922,3},{3145,923,3},{3138,923,3}, {3133,925,3},{3128,927,3},{3122,928,3},{3117,930,3},{3112,932,3},{3107,933,3}, {3100,933,3},{3095,935,3},{3090,937,3},{3083,938,3},{3078,940,3},{3073,942,3}, {3067,943,3},{3062,943,3},{3057,945,3},{3052,947,3},{3045,948,3},{3040,950,3}, {3035,952,3},{3028,952,3},{3023,953,3},{3012,930,3},{2997,945,3},{2978,958,3}, {2963,967,3},{2945,975,3},{2915,983,3},{2895,987,3},{2880,987,3},{2872,987,3}, {2867,985,3},{2862,985,3},{2855,983,3},{2850,983,3},{2845,982,3},{2840,982,3}, {2833,980,3},{2828,980,3},{2825,978,3},{2817,982,3},{2812,985,3},{2807,987,3}, {2800,990,3},{2795,992,3},{2785,997,3},{2760,988,3},{2757,982,3},{2750,983,3}, {2743,978,3},{2737,977,3},{2732,973,3},{2727,975,3},{2705,982,3},{2690,985,3}, {2687,993,3},{2670,990,3},{2667,992,3},{2652,987,3},{2635,950,3},{2630,950,3}, {2628,945,3},{2622,942,3},{2620,940,3},{2615,940,3},{2610,943,3},{2607,947,3}, {2602,950,3},{2598,953,3},{2593,957,3},{2590,960,3},{2585,963,3},{2582,967,3}, {2577,970,3},{2573,973,3},{2568,975,3},{2565,980,3},{2560,982,3},{2557,985,3}, {2552,988,3},{2548,992,3},{2543,995,3},{2540,998,3},{2535,1002,3},{2532,1003,3}, {2523,1003,3},{2518,1005,3},{2513,1005,3},{2507,1005,3},{2502,1005,3},{2497,1005,3}, {2490,1005,3},{2483,1005,3},{2475,1022,3},{2460,1025,3},{2448,1042,3},{2448,1048,3}, {2457,1072,3},{2447,1100,3},{2445,1105,3},{2443,1112,3},{2442,1117,3},{2440,1123,3}, {2438,1128,3},{2437,1135,3},{2435,1142,3},{2433,1147,3},{2432,1153,3},{2430,1157,3}, {2422,1160,3},{2417,1163,3},{2412,1167,3},{2405,1170,3},{2400,1173,3},{2393,1175,3}, {2388,1178,3},{2383,1182,3},{2377,1185,3},{2372,1188,3},{2367,1192,3},{2360,1193,3}, {2352,1198,3},{2350,1193,3},{2347,1187,3},{2342,1182,3},{2338,1175,3},{2335,1170,3}, {2332,1163,3},{2328,1157,3},{2325,1152,3},{2322,1145,3},{2318,1138,3},{2315,1133,3}, {2312,1127,3},{2308,1120,3},{2305,1115,3},{2300,1108,3},{2297,1102,3},{2293,1097,3}, {2290,1090,3},{2287,1085,3},{2283,1078,3},{2280,1072,3},{2277,1067,3},{2273,1060,3}, {2270,1055,3},{2267,1048,3},{2262,1042,3},{2258,1037,3},{2255,1030,3},{2252,1023,3}, {2248,1018,3},{2245,1012,3},{2242,1007,3},{2238,1000,3},{2235,993,3},{2230,988,3}, {2227,982,3},{2223,977,3},{2220,970,3},{2217,963,3},{2213,958,3},{2210,952,3}, {2207,947,3},{2202,940,3},{2198,935,3},{2195,928,3},{2192,922,3},{2188,917,3}, {2185,910,3},{2182,905,3},{2178,898,3},{2173,892,3},{2170,887,3},{2167,880,3}, {2163,875,3},{2160,868,3},{2157,863,3},{2153,857,3},{2148,850,3},{2145,845,3}, {2142,838,3},{2138,833,3},{2135,827,3},{2132,822,3},{2128,815,3},{2123,810,3}, {2120,803,3},{2117,798,3},{2113,792,3},{2110,785,3},{2107,780,3},{2102,773,3}, {2098,768,3},{2095,762,3},{2092,757,3},{2088,750,3},{2085,745,3},{2080,738,3}, {2075,733,3},{2070,727,3},{2065,722,3},{2060,717,3},{2055,710,3},{2050,705,3}, {2045,698,3},{2040,693,3},{2037,687,3},{2032,682,3},{2027,677,3},{2022,670,3}, {2017,665,3},{2012,658,3},{2007,653,3},{2002,647,3},{1997,642,3},{1992,637,3}, {1987,630,3},{1982,625,3},{1977,618,3},{1972,613,3},{1967,608,3},{1963,602,3}, {1958,597,3},{1953,590,3},{1948,585,3},{1943,578,3},{1943,573,3},{1942,568,3}, {1942,562,3},{1940,557,3},{1938,552,3},{1938,545,3},{1937,540,3},{1935,535,3}, {1935,528,3},{1933,523,3},{1933,518,3},{1932,513,3},{1930,507,3},{1930,502,3}, {1928,497,3},{1927,490,3},{1927,485,3},{1925,480,3},{1925,473,3},{1923,468,3}, {1922,463,3},{1922,458,3},{1920,452,3},{1918,447,3},{1918,442,3},{1917,435,3}, {1915,430,3},{1915,425,3},{622,163,131},{623,163,3},{625,165,3},{628,180,3}, {640,177,3},{642,177,3},{643,175,3},{645,175,3},{648,173,3},{650,170,3}, {653,170,3},{655,167,3},{658,167,3},{657,165,3},{658,162,3},{663,160,3}, {665,162,3},{668,158,3},{672,158,3},{673,162,3},{675,162,3},{680,160,3}, {682,160,3},{690,160,3},{692,158,3},{700,155,3},{700,165,3},{745,165,3}, {753,165,3},{763,163,3},{770,163,3},{777,165,3},{783,165,3},{788,163,3}, {793,163,3},{798,163,3},{805,163,3},{810,163,3},{815,163,3},{820,163,3}, {825,163,3},{835,163,3},{837,162,3},{845,163,3},{850,167,3},{855,162,3}, {905,162,3},{910,160,3},{917,157,3},{922,150,3},{932,142,3},{948,138,3}, {950,138,3},{948,137,3},{955,133,3},{960,137,3},{965,137,3},{1000,135,3}, {1018,105,3},{1038,78,3},{1052,78,3},{1058,80,3},{1072,80,3},{1080,88,3}, {1087,88,3},{1088,90,3},{1092,88,3},{1100,95,3},{1103,95,3},{1108,98,3}, {1105,103,3},{1105,110,3},{1103,112,3},{1112,108,3},{1113,105,3},{1117,112,3}, {1117,113,3},{1117,115,3},{1122,115,3},{1125,113,3},{1127,113,3},{1128,117,3}, {1127,118,3},{1127,123,3},{1125,127,3},{1127,128,3},{1130,127,3},{1132,128,3}, {1128,130,3},{1130,132,3},{1128,133,3},{1130,135,3},{1135,133,3},{1140,140,3}, {1142,138,3},{1147,143,3},{1145,157,3},{1143,157,3},{1143,158,3},{1140,158,3}, {1138,162,3},{1142,172,3},{1142,175,3},{1143,180,3},{1145,187,3},{1143,190,3}, {1142,202,3},{1160,220,3},{1167,232,3},{1173,232,3},{1178,237,3},{1185,237,3}, {1187,240,3},{1188,240,3},{1190,242,3},{1193,238,3},{1195,240,3},{1195,243,3}, {1198,245,3},{1198,247,3},{1202,247,3},{1203,243,3},{1208,240,3},{1223,238,3}, {1227,243,3},{1225,247,3},{1227,247,3},{1227,250,3},{1228,252,3},{1227,253,3}, {1230,260,3},{1228,262,3},{1230,265,3},{1230,267,3},{1228,268,3},{1235,272,3}, {1235,275,3},{1238,278,3},{1240,283,3},{1233,292,3},{1230,295,3},{1227,302,3}, {1218,305,3},{1212,317,3},{1205,322,3},{1202,325,3},{1195,327,3},{1188,332,3}, {1188,338,3},{1185,343,3},{1185,347,3},{1175,357,3},{1173,357,3},{1168,360,3}, {1165,357,3},{1157,353,3},{1155,352,3},{1143,347,3},{1112,370,3},{1112,373,3}, {1103,373,3},{1102,375,3},{1090,378,3},{1080,375,3},{1078,378,3},{1072,380,3}, {1070,385,3},{1058,385,3},{1050,382,3},{1047,382,3},{1040,380,3},{1045,368,3}, {1042,363,3},{1038,363,3},{1027,358,3},{1020,365,3},{1018,368,3},{1017,368,3}, {1010,367,3},{1007,363,3},{995,362,3},{985,353,3},{985,348,3},{982,335,3}, {975,333,3},{968,337,3},{963,332,3},{965,330,3},{963,327,3},{958,327,3}, {950,320,3},{950,317,3},{943,313,3},{937,317,3},{927,317,3},{925,315,3}, {908,310,3},{907,298,3},{908,297,3},{908,290,3},{905,288,3},{907,282,3}, {905,278,3},{893,278,3},{892,277,3},{890,278,3},{885,277,3},{882,277,3}, {878,273,3},{872,275,3},{867,275,3},{852,277,3},{847,275,3},{842,272,3}, {833,272,3},{820,275,3},{815,273,3},{813,272,3},{793,270,3},{790,268,3}, {782,275,3},{765,273,3},{757,273,3},{750,282,3},{742,280,3},{743,277,3}, {742,275,3},{713,278,3},{710,275,3},{703,280,3},{700,275,3},{695,273,3}, {692,275,3},{680,273,3},{677,275,3},{677,278,3},{668,280,3},{667,277,3}, {662,273,3},{657,275,3},{645,272,3},{637,272,3},{637,268,3},{635,263,3}, {635,257,3},{635,252,3},{633,247,3},{633,242,3},{633,235,3},{633,230,3}, {632,225,3},{630,220,3},{630,215,3},{630,210,3},{628,203,3},{628,198,3}, {628,193,3},{627,187,3},{627,183,3},{625,177,3},{623,172,3},{623,167,3}, {622,163,3},{610,120,131},{617,120,3},{617,110,3},{622,107,3},{623,103,3}, {633,100,3},{633,90,3},{638,85,3},{642,78,3},{650,73,3},{653,72,3},{655,75,3}, {658,75,3},{658,68,3},{663,65,3},{673,65,3},{677,58,3},{682,57,3},{683,53,3}, {692,57,3},{693,55,3},{695,52,3},{698,52,3},{700,58,3},{702,60,3},{710,62,3}, {715,62,3},{720,63,3},{727,65,3},{730,67,3},{740,65,3},{738,58,3},{740,55,3}, {747,52,3},{758,52,3},{762,58,3},{770,60,3},{770,63,3},{775,62,3},{778,63,3}, {782,62,3},{792,62,3},{795,60,3},{802,62,3},{813,58,3},{815,60,3},{817,62,3}, {820,58,3},{822,60,3},{823,63,3},{825,63,3},{828,73,3},{832,73,3},{833,70,3}, {838,70,3},{842,65,3},{847,65,3},{850,63,3},{852,57,3},{855,53,3},{860,47,3}, {877,38,3},{878,40,3},{877,43,3},{880,45,3},{880,48,3},{883,50,3},{885,52,3}, {892,52,3},{903,45,3},{910,48,3},{915,48,3},{915,50,3},{920,53,3},{927,50,3}, {928,52,3},{930,55,3},{932,53,3},{942,55,3},{943,50,3},{947,50,3},{950,43,3}, {948,37,3},{943,33,3},{942,28,3},{943,23,3},{945,23,3},{945,22,3},{948,23,3}, {948,28,3},{950,30,3},{952,23,3},{957,23,3},{957,35,3},{958,38,3},{962,35,3}, {958,28,3},{965,25,3},{968,28,3},{965,33,3},{967,35,3},{972,35,3},{973,32,3}, {980,33,3},{983,35,3},{990,33,3},{993,38,3},{998,35,3},{1003,35,3},{1003,40,3}, {1007,40,3},{1010,35,3},{1020,35,3},{1025,37,3},{1030,40,3},{1030,33,3}, {1033,33,3},{1037,30,3},{1038,30,3},{1042,28,3},{1040,27,3},{1042,22,3}, {1040,20,3},{1052,13,3},{1055,7,3},{1058,5,3},{1060,0,3},{1063,65529,3}, {1070,65528,3},{1077,65529,3},{1082,65534,3},{1085,65534,3},{1092,0,3}, {1097,0,3},{1098,3,3},{1105,3,3},{1108,3,3},{1110,0,3},{1110,65526,3},{1112,65523,3}, {1113,65521,3},{1110,2,3},{1100,50,3},{1098,50,3},{1098,52,3},{1093,50,3}, {1100,67,3},{1100,95,3},{1092,88,3},{1088,90,3},{1087,88,3},{1080,88,3}, {1072,80,3},{1058,80,3},{1052,78,3},{1038,78,3},{1018,105,3},{1000,135,3}, {965,137,3},{960,137,3},{955,133,3},{948,137,3},{950,138,3},{948,138,3}, {932,142,3},{922,150,3},{917,157,3},{910,160,3},{905,162,3},{855,162,3}, {850,167,3},{845,163,3},{837,162,3},{835,163,3},{825,163,3},{820,163,3}, {815,163,3},{810,163,3},{805,163,3},{798,163,3},{793,163,3},{788,163,3}, {783,165,3},{777,165,3},{770,163,3},{763,163,3},{753,165,3},{745,165,3}, {700,165,3},{700,155,3},{692,158,3},{690,160,3},{682,160,3},{680,160,3}, {675,162,3},{673,162,3},{672,158,3},{668,158,3},{665,162,3},{663,160,3}, {658,162,3},{657,165,3},{658,167,3},{655,167,3},{653,170,3},{650,170,3}, {648,173,3},{645,175,3},{643,175,3},{642,177,3},{640,177,3},{628,180,3}, {625,165,3},{623,163,3},{622,163,3},{613,130,3},{610,120,3},{508,65226,131}, {512,65226,3},{512,65233,3},{510,65243,3},{512,65249,3},{512,65251,3},{510,65261,3}, {512,65263,3},{513,65263,3},{518,65263,3},{520,65259,3},{525,65261,3},{525,65259,3}, {528,65258,3},{530,65259,3},{535,65259,3},{535,65264,3},{540,65264,3},{553,65259,3}, {558,65259,3},{562,65258,3},{562,65254,3},{565,65251,3},{562,65246,3},{562,65243,3}, {563,65239,3},{572,65241,3},{570,65234,3},{585,65236,3},{600,65229,3},{615,65226,3}, {625,65221,3},{625,65219,3},{655,65213,3},{658,65213,3},{662,65211,3},{665,65211,3}, {665,65214,3},{670,65216,3},{672,65218,3},{677,65213,3},{682,65214,3},{707,65228,3}, {707,65234,3},{713,65234,3},{723,65241,3},{727,65239,3},{760,65244,3},{775,65253,3}, {782,65254,3},{785,65258,3},{795,65259,3},{793,65261,3},{795,65263,3},{802,65268,3}, {803,65278,3},{807,65278,3},{813,65274,3},{817,65278,3},{817,65281,3},{820,65288,3}, {825,65286,3},{830,65286,3},{835,65284,3},{840,65284,3},{845,65283,3},{850,65283,3}, {857,65281,3},{862,65281,3},{867,65279,3},{872,65279,3},{878,65278,3},{878,65274,3}, {882,65276,3},{888,65274,3},{892,65274,3},{893,65271,3},{902,65271,3},{903,65261,3}, {905,65259,3},{910,65259,3},{913,65259,3},{915,65263,3},{920,65264,3},{925,65269,3}, {932,65264,3},{938,65269,3},{942,65268,3},{947,65269,3},{948,65268,3},{957,65259,3}, {962,65259,3},{965,65261,3},{968,65259,3},{968,65258,3},{973,65256,3},{980,65259,3}, {982,65263,3},{988,65259,3},{997,65261,3},{1005,65256,3},{1015,65258,3}, {1018,65256,3},{1023,65259,3},{1027,65261,3},{1027,65258,3},{1032,65251,3}, {1038,65254,3},{1040,65258,3},{1042,65259,3},{1042,65254,3},{1045,65251,3}, {1062,65243,3},{1068,65246,3},{1072,65243,3},{1075,65246,3},{1088,65249,3}, {1088,65253,3},{1092,65254,3},{1097,65253,3},{1100,65253,3},{1100,65261,3}, {1098,65266,3},{1098,65271,3},{1100,65278,3},{1100,65283,3},{1100,65288,3}, {1100,65294,3},{1100,65299,3},{1100,65304,3},{1100,65309,3},{1100,65314,3}, {1100,65319,3},{1100,65326,3},{1100,65331,3},{1100,65338,3},{1100,65343,3}, {1100,65348,3},{1100,65353,3},{1100,65358,3},{1100,65363,3},{1100,65368,3}, {1100,65374,3},{1100,65379,3},{1103,65379,3},{1103,65384,3},{1103,65389,3}, {1103,65394,3},{1102,65398,3},{1100,65406,3},{1100,65411,3},{1100,65416,3}, {1100,65421,3},{1100,65428,3},{1102,65426,3},{1102,65433,3},{1100,65439,3}, {1100,65446,3},{1098,65446,3},{1098,65448,3},{1097,65448,3},{1097,65449,3}, {1100,65451,3},{1102,65456,3},{1100,65456,3},{1100,65468,3},{1098,65468,3}, {1098,65471,3},{1097,65469,3},{1092,65474,3},{1093,65476,3},{1098,65479,3}, {1100,65486,3},{1103,65493,3},{1107,65493,3},{1110,65494,3},{1110,65499,3}, {1107,65501,3},{1112,65508,3},{1113,65508,3},{1117,65508,3},{1113,65521,3}, {1112,65523,3},{1110,65526,3},{1110,0,3},{1108,3,3},{1105,3,3},{1098,3,3}, {1097,0,3},{1092,0,3},{1085,65534,3},{1082,65534,3},{1077,65529,3},{1070,65528,3}, {1063,65529,3},{1060,0,3},{1058,5,3},{1055,7,3},{1052,13,3},{1040,20,3}, {1042,22,3},{1040,27,3},{1042,28,3},{1038,30,3},{1037,30,3},{1033,33,3}, {1030,33,3},{1030,40,3},{1025,37,3},{1020,35,3},{1010,35,3},{1007,40,3}, {1003,40,3},{1003,35,3},{998,35,3},{993,38,3},{990,33,3},{983,35,3},{980,33,3}, {973,32,3},{972,35,3},{967,35,3},{965,33,3},{968,28,3},{965,25,3},{958,28,3}, {962,35,3},{958,38,3},{957,35,3},{957,23,3},{952,23,3},{950,30,3},{948,28,3}, {948,23,3},{945,22,3},{945,23,3},{943,23,3},{942,28,3},{943,33,3},{948,37,3}, {950,43,3},{947,50,3},{943,50,3},{942,55,3},{932,53,3},{930,55,3},{928,52,3}, {927,50,3},{920,53,3},{915,50,3},{915,48,3},{910,48,3},{903,45,3},{892,52,3}, {885,52,3},{883,50,3},{880,48,3},{880,45,3},{877,43,3},{878,40,3},{877,38,3}, {860,47,3},{855,53,3},{852,57,3},{850,63,3},{847,65,3},{842,65,3},{838,70,3}, {833,70,3},{832,73,3},{828,73,3},{825,63,3},{823,63,3},{822,60,3},{820,58,3}, {817,62,3},{815,60,3},{813,58,3},{802,62,3},{795,60,3},{792,62,3},{782,62,3}, {778,63,3},{775,62,3},{770,63,3},{770,60,3},{762,58,3},{758,52,3},{747,52,3}, {740,55,3},{738,58,3},{740,65,3},{730,67,3},{727,65,3},{720,63,3},{715,62,3}, {710,62,3},{702,60,3},{700,58,3},{698,52,3},{695,52,3},{693,55,3},{692,57,3}, {683,53,3},{682,57,3},{677,58,3},{673,65,3},{663,65,3},{658,68,3},{658,75,3}, {655,75,3},{653,72,3},{650,73,3},{642,78,3},{638,85,3},{633,90,3},{633,100,3}, {623,103,3},{622,107,3},{617,110,3},{617,120,3},{610,120,3},{603,108,3}, {597,103,3},{588,100,3},{583,100,3},{580,97,3},{577,92,3},{575,70,3},{577,68,3}, {577,70,3},{583,65,3},{588,65,3},{595,63,3},{605,52,3},{608,42,3},{605,37,3}, {605,32,3},{610,27,3},{610,22,3},{608,20,3},{608,27,3},{603,32,3},{602,38,3}, {607,42,3},{607,43,3},{603,50,3},{600,53,3},{598,57,3},{595,62,3},{588,65,3}, {582,63,3},{578,65,3},{577,65,3},{575,67,3},{578,32,3},{572,13,3},{567,7,3}, {563,3,3},{562,0,3},{558,65529,3},{548,65498,3},{537,65486,3},{535,65478,3}, {532,65473,3},{533,65473,3},{530,65466,3},{520,65456,3},{520,65446,3},{522,65446,3}, {520,65438,3},{522,65436,3},{520,65434,3},{520,65429,3},{512,65418,3},{508,65409,3}, {508,65404,3},{507,65393,3},{503,65388,3},{502,65374,3},{500,65373,3},{498,65374,3}, {497,65373,3},{495,65366,3},{492,65363,3},{487,65361,3},{487,65354,3},{485,65353,3}, {482,65346,3},{475,65339,3},{475,65334,3},{473,65328,3},{475,65326,3},{477,65326,3}, {478,65321,3},{480,65319,3},{485,65313,3},{488,65309,3},{492,65303,3},{497,65278,3}, {500,65268,3},{502,65251,3},{508,65226,3},{948,65268,131},{940,65263,3}, {940,65261,3},{942,65258,3},{948,65251,3},{957,65244,3},{972,65238,3},{973,65236,3}, {972,65229,3},{983,65224,3},{985,65221,3},{983,65218,3},{992,65218,3},{985,65209,3}, {985,65206,3},{990,65206,3},{988,65203,3},{992,65199,3},{993,65189,3},{993,65179,3}, {992,65176,3},{995,65173,3},{993,65169,3},{995,65168,3},{993,65159,3},{990,65156,3}, {990,65148,3},{987,65143,3},{987,65139,3},{983,65139,3},{982,65133,3},{980,65133,3}, {983,65123,3},{977,65118,3},{973,65109,3},{973,65111,3},{968,65108,3},{965,65108,3}, {960,65104,3},{962,65103,3},{962,65099,3},{960,65099,3},{958,65099,3},{960,65098,3}, {963,65096,3},{965,65093,3},{965,65084,3},{970,65084,3},{973,65086,3},{975,65084,3}, {975,65081,3},{972,65081,3},{968,65079,3},{968,65078,3},{972,65076,3},{970,65074,3}, {970,65071,3},{968,65071,3},{967,65068,3},{975,65063,3},{975,65059,3},{973,65059,3}, {975,65058,3},{975,65056,3},{977,65056,3},{977,65054,3},{978,65058,3},{980,65056,3}, {983,65058,3},{983,65054,3},{987,65053,3},{988,65046,3},{987,65043,3},{990,65039,3}, {995,65041,3},{1000,65038,3},{1002,65041,3},{1005,65038,3},{1007,65036,3}, {1008,65034,3},{1008,65031,3},{1010,65031,3},{1012,65029,3},{1012,65033,3}, {1015,65029,3},{1018,65029,3},{1018,65026,3},{1022,65028,3},{1020,65024,3}, {1025,65024,3},{1027,65026,3},{1030,65024,3},{1028,65019,3},{1028,65016,3}, {1030,65016,3},{1032,65016,3},{1032,65008,3},{1030,65004,3},{1028,64999,3}, {1030,64994,3},{1033,64994,3},{1035,64989,3},{1037,64989,3},{1038,64988,3}, {1042,64984,3},{1043,64984,3},{1047,64984,3},{1055,64989,3},{1062,64988,3}, {1065,64989,3},{1075,64991,3},{1077,64993,3},{1085,64994,3},{1090,64991,3}, {1098,64991,3},{1097,64988,3},{1108,64988,3},{1110,64999,3},{1113,65006,3}, {1120,65006,3},{1125,65011,3},{1140,65011,3},{1142,65016,3},{1145,65014,3}, {1153,65016,3},{1158,65014,3},{1160,65013,3},{1160,65008,3},{1162,65008,3}, {1167,65009,3},{1175,65009,3},{1178,65008,3},{1180,65001,3},{1183,64996,3}, {1183,65004,3},{1185,65008,3},{1183,65009,3},{1187,65011,3},{1195,65021,3}, {1198,65029,3},{1198,65038,3},{1202,65043,3},{1200,65048,3},{1202,65053,3}, {1200,65058,3},{1202,65059,3},{1200,65061,3},{1207,65066,3},{1207,65073,3}, {1212,65074,3},{1213,65076,3},{1213,65083,3},{1220,65079,3},{1228,65089,3}, {1232,65089,3},{1233,65091,3},{1232,65093,3},{1230,65094,3},{1230,65098,3}, {1235,65096,3},{1243,65093,3},{1253,65099,3},{1262,65094,3},{1265,65089,3}, {1273,65089,3},{1275,65101,3},{1272,65106,3},{1273,65113,3},{1277,65116,3}, {1283,65116,3},{1285,65114,3},{1297,65114,3},{1300,65109,3},{1312,65103,3}, {1318,65106,3},{1318,65114,3},{1323,65111,3},{1327,65116,3},{1328,65121,3}, {1340,65128,3},{1342,65133,3},{1343,65134,3},{1343,65138,3},{1347,65141,3}, {1348,65141,3},{1348,65138,3},{1350,65139,3},{1348,65141,3},{1347,65143,3}, {1345,65146,3},{1340,65139,3},{1338,65141,3},{1338,65148,3},{1335,65153,3}, {1335,65158,3},{1330,65163,3},{1327,65169,3},{1320,65178,3},{1320,65181,3}, {1318,65183,3},{1318,65193,3},{1328,65193,3},{1328,65213,3},{1355,65209,3}, {1358,65211,3},{1368,65211,3},{1370,65209,3},{1372,65209,3},{1370,65214,3}, {1368,65218,3},{1368,65226,3},{1365,65229,3},{1362,65231,3},{1362,65233,3}, {1365,65234,3},{1363,65241,3},{1365,65248,3},{1372,65246,3},{1382,65246,3}, {1385,65248,3},{1388,65248,3},{1400,65253,3},{1400,65251,3},{1403,65253,3}, {1413,65268,3},{1422,65276,3},{1428,65289,3},{1425,65306,3},{1415,65326,3}, {1418,65336,3},{1423,65336,3},{1430,65336,3},{1435,65336,3},{1440,65338,3}, {1448,65338,3},{1448,65346,3},{1448,65351,3},{1448,65358,3},{1450,65364,3}, {1452,65371,3},{1457,65378,3},{1460,65384,3},{1465,65391,3},{1468,65398,3}, {1473,65404,3},{1475,65411,3},{1477,65418,3},{1478,65423,3},{1478,65429,3}, {1483,65434,3},{1488,65441,3},{1495,65448,3},{1500,65454,3},{1505,65461,3}, {1508,65464,3},{1508,65493,3},{1500,65498,3},{1508,65513,3},{1500,0,3}, {1497,7,3},{1495,13,3},{1493,20,3},{1492,23,3},{1488,23,3},{1483,20,3}, {1475,23,3},{1452,17,3},{1447,18,3},{1437,30,3},{1437,32,3},{1425,42,3}, {1423,40,3},{1418,40,3},{1413,35,3},{1408,40,3},{1405,38,3},{1402,42,3}, {1398,42,3},{1395,47,3},{1392,47,3},{1378,58,3},{1378,62,3},{1372,60,3}, {1368,62,3},{1368,77,3},{1367,78,3},{1365,77,3},{1362,83,3},{1362,90,3}, {1357,100,3},{1347,103,3},{1340,117,3},{1340,125,3},{1335,128,3},{1333,125,3}, {1335,123,3},{1337,120,3},{1335,120,3},{1332,118,3},{1337,102,3},{1337,100,3}, {1335,98,3},{1305,98,3},{1302,102,3},{1302,112,3},{1295,118,3},{1292,123,3}, {1287,128,3},{1283,135,3},{1278,140,3},{1273,145,3},{1270,150,3},{1263,158,3}, {1263,165,3},{1262,170,3},{1262,175,3},{1262,180,3},{1262,187,3},{1263,188,3}, {1270,193,3},{1272,197,3},{1273,198,3},{1272,203,3},{1273,210,3},{1270,215,3}, {1265,215,3},{1263,220,3},{1260,222,3},{1252,223,3},{1247,227,3},{1242,227,3}, {1240,217,3},{1242,217,3},{1238,212,3},{1238,208,3},{1235,207,3},{1227,212,3}, {1222,217,3},{1217,220,3},{1212,223,3},{1205,228,3},{1200,232,3},{1195,235,3}, {1188,240,3},{1187,240,3},{1185,237,3},{1178,237,3},{1173,232,3},{1167,232,3}, {1160,220,3},{1142,202,3},{1143,190,3},{1145,187,3},{1143,180,3},{1142,175,3}, {1142,172,3},{1138,162,3},{1140,158,3},{1143,158,3},{1143,157,3},{1145,157,3}, {1147,143,3},{1142,138,3},{1140,140,3},{1135,133,3},{1130,135,3},{1128,133,3}, {1130,132,3},{1128,130,3},{1132,128,3},{1130,127,3},{1127,128,3},{1125,127,3}, {1127,123,3},{1127,118,3},{1128,117,3},{1127,113,3},{1125,113,3},{1122,115,3}, {1117,115,3},{1117,113,3},{1117,112,3},{1113,105,3},{1112,108,3},{1103,112,3}, {1105,110,3},{1105,103,3},{1108,98,3},{1103,95,3},{1100,95,3},{1100,67,3}, {1093,50,3},{1098,52,3},{1098,50,3},{1100,50,3},{1110,2,3},{1113,65521,3}, {1117,65508,3},{1113,65508,3},{1112,65508,3},{1107,65501,3},{1110,65499,3}, {1110,65494,3},{1107,65493,3},{1103,65493,3},{1100,65486,3},{1098,65479,3}, {1093,65476,3},{1092,65474,3},{1097,65469,3},{1098,65471,3},{1098,65468,3}, {1100,65468,3},{1100,65456,3},{1102,65456,3},{1100,65451,3},{1097,65449,3}, {1097,65448,3},{1098,65448,3},{1098,65446,3},{1100,65446,3},{1100,65439,3}, {1102,65433,3},{1102,65426,3},{1100,65428,3},{1100,65421,3},{1100,65416,3}, {1100,65411,3},{1100,65406,3},{1102,65398,3},{1103,65394,3},{1103,65389,3}, {1103,65384,3},{1103,65379,3},{1100,65379,3},{1100,65374,3},{1100,65368,3}, {1100,65363,3},{1100,65358,3},{1100,65353,3},{1100,65348,3},{1100,65343,3}, {1100,65338,3},{1100,65331,3},{1100,65326,3},{1100,65319,3},{1100,65314,3}, {1100,65309,3},{1100,65304,3},{1100,65299,3},{1100,65294,3},{1100,65288,3}, {1100,65283,3},{1100,65278,3},{1098,65271,3},{1098,65266,3},{1100,65261,3}, {1100,65253,3},{1097,65253,3},{1092,65254,3},{1088,65253,3},{1088,65249,3}, {1075,65246,3},{1072,65243,3},{1068,65246,3},{1062,65243,3},{1045,65251,3}, {1042,65254,3},{1042,65259,3},{1040,65258,3},{1038,65254,3},{1032,65251,3}, {1027,65258,3},{1027,65261,3},{1023,65259,3},{1018,65256,3},{1015,65258,3}, {1005,65256,3},{997,65261,3},{988,65259,3},{982,65263,3},{980,65259,3}, {973,65256,3},{968,65258,3},{968,65259,3},{965,65261,3},{962,65259,3},{957,65259,3}, {948,65268,3},{435,64784,131},{440,64779,3},{442,64781,3},{445,64779,3}, {450,64781,3},{457,64779,3},{460,64781,3},{467,64779,3},{475,64781,3},{478,64779,3}, {482,64778,3},{483,64778,3},{490,64778,3},{492,64779,3},{492,64783,3},{495,64783,3}, {497,64781,3},{507,64779,3},{508,64781,3},{510,64784,3},{510,64786,3},{513,64788,3}, {517,64789,3},{523,64789,3},{525,64789,3},{527,64789,3},{530,64794,3},{527,64794,3}, {527,64796,3},{532,64799,3},{537,64798,3},{537,64796,3},{543,64793,3},{543,64794,3}, {548,64794,3},{552,64798,3},{553,64796,3},{553,64798,3},{557,64796,3},{557,64799,3}, {565,64794,3},{572,64793,3},{583,64794,3},{587,64793,3},{587,64789,3},{582,64789,3}, {582,64788,3},{585,64786,3},{585,64784,3},{587,64784,3},{585,64781,3},{587,64779,3}, {588,64779,3},{592,64771,3},{595,64771,3},{593,64768,3},{590,64768,3},{595,64761,3}, {598,64758,3},{602,64758,3},{603,64759,3},{605,64758,3},{607,64758,3},{608,64754,3}, {608,64751,3},{613,64751,3},{620,64754,3},{625,64746,3},{628,64746,3},{627,64744,3}, {628,64738,3},{630,64734,3},{627,64719,3},{630,64716,3},{632,64708,3},{635,64708,3}, {633,64706,3},{637,64703,3},{637,64699,3},{635,64696,3},{635,64694,3},{638,64698,3}, {642,64696,3},{645,64698,3},{647,64694,3},{648,64691,3},{645,64689,3},{643,64688,3}, {648,64683,3},{650,64676,3},{653,64676,3},{653,64678,3},{655,64679,3},{657,64679,3}, {657,64683,3},{660,64683,3},{658,64684,3},{662,64686,3},{662,64688,3},{663,64688,3}, {663,64691,3},{665,64691,3},{665,64693,3},{667,64694,3},{672,64696,3},{673,64701,3}, {677,64701,3},{677,64703,3},{678,64703,3},{687,64706,3},{688,64703,3},{690,64704,3}, {697,64704,3},{700,64708,3},{708,64706,3},{718,64708,3},{723,64699,3},{727,64701,3}, {732,64698,3},{750,64694,3},{757,64689,3},{762,64696,3},{760,64698,3},{758,64698,3}, {758,64701,3},{760,64706,3},{758,64708,3},{755,64714,3},{757,64718,3},{763,64718,3}, {767,64721,3},{768,64723,3},{772,64726,3},{777,64726,3},{780,64728,3},{785,64724,3}, {787,64724,3},{797,64731,3},{802,64731,3},{803,64731,3},{803,64736,3},{802,64738,3}, {802,64741,3},{807,64739,3},{810,64736,3},{818,64738,3},{817,64729,3},{820,64719,3}, {823,64714,3},{825,64711,3},{828,64713,3},{838,64714,3},{840,64714,3},{845,64711,3}, {850,64716,3},{850,64721,3},{848,64721,3},{848,64726,3},{850,64728,3},{850,64731,3}, {850,64743,3},{843,64746,3},{842,64751,3},{843,64753,3},{847,64753,3},{848,64754,3}, {845,64758,3},{838,64761,3},{838,64771,3},{843,64768,3},{850,64771,3},{857,64768,3}, {862,64768,3},{867,64763,3},{872,64761,3},{875,64758,3},{877,64744,3},{880,64741,3}, {897,64743,3},{902,64744,3},{903,64751,3},{907,64754,3},{907,64761,3},{908,64763,3}, {910,64763,3},{912,64756,3},{917,64753,3},{917,64748,3},{920,64744,3},{923,64744,3}, {930,64748,3},{935,64748,3},{942,64751,3},{942,64744,3},{938,64741,3},{938,64734,3}, {940,64731,3},{950,64723,3},{962,64721,3},{967,64724,3},{975,64723,3},{982,64726,3}, {987,64726,3},{987,64721,3},{988,64723,3},{990,64723,3},{992,64721,3},{995,64719,3}, {997,64724,3},{998,64724,3},{998,64721,3},{1005,64724,3},{1008,64734,3}, {1015,64739,3},{1015,64743,3},{1017,64748,3},{1020,64749,3},{1020,64754,3}, {1030,64761,3},{1033,64759,3},{1033,64761,3},{1035,64763,3},{1038,64763,3}, {1040,64766,3},{1040,64769,3},{1045,64773,3},{1042,64776,3},{1042,64783,3}, {1045,64784,3},{1047,64788,3},{1045,64791,3},{1042,64791,3},{1038,64791,3}, {1037,64793,3},{1033,64793,3},{1035,64799,3},{1033,64801,3},{1028,64799,3}, {1025,64801,3},{1025,64808,3},{1022,64823,3},{1020,64829,3},{1015,64833,3}, {1013,64834,3},{1015,64838,3},{1018,64841,3},{1022,64841,3},{1025,64838,3}, {1033,64839,3},{1035,64841,3},{1035,64851,3},{1038,64858,3},{1033,64868,3}, {1037,64871,3},{1040,64871,3},{1043,64873,3},{1047,64869,3},{1048,64868,3}, {1052,64868,3},{1053,64869,3},{1058,64869,3},{1060,64868,3},{1067,64871,3}, {1065,64874,3},{1062,64876,3},{1060,64881,3},{1058,64883,3},{1055,64894,3}, {1058,64898,3},{1062,64894,3},{1068,64894,3},{1070,64904,3},{1073,64911,3}, {1072,64914,3},{1067,64913,3},{1063,64918,3},{1060,64914,3},{1057,64914,3}, {1052,64911,3},{1052,64914,3},{1050,64916,3},{1050,64919,3},{1043,64918,3}, {1042,64921,3},{1040,64918,3},{1035,64919,3},{1033,64916,3},{1032,64918,3}, {1032,64913,3},{1025,64914,3},{1025,64916,3},{1023,64916,3},{1020,64926,3}, {1018,64936,3},{1023,64939,3},{1027,64939,3},{1028,64941,3},{1028,64948,3}, {1037,64948,3},{1042,64956,3},{1042,64963,3},{1045,64971,3},{1045,64979,3}, {1043,64984,3},{1042,64984,3},{1038,64988,3},{1037,64989,3},{1035,64989,3}, {1033,64994,3},{1030,64994,3},{1028,64999,3},{1030,65004,3},{1032,65008,3}, {1032,65016,3},{1030,65016,3},{1028,65016,3},{1028,65019,3},{1030,65024,3}, {1027,65026,3},{1025,65024,3},{1020,65024,3},{1022,65028,3},{1018,65026,3}, {1018,65029,3},{1015,65029,3},{1012,65033,3},{1012,65029,3},{1010,65031,3}, {1008,65031,3},{1008,65034,3},{1007,65036,3},{1005,65038,3},{1002,65041,3}, {1000,65038,3},{995,65041,3},{990,65039,3},{987,65043,3},{988,65046,3}, {987,65053,3},{983,65054,3},{983,65058,3},{980,65056,3},{978,65058,3},{977,65054,3}, {977,65056,3},{975,65056,3},{975,65058,3},{973,65059,3},{975,65059,3},{975,65063,3}, {967,65068,3},{968,65071,3},{970,65071,3},{970,65074,3},{972,65076,3},{968,65078,3}, {968,65079,3},{972,65081,3},{975,65081,3},{975,65084,3},{973,65086,3},{970,65084,3}, {965,65084,3},{965,65093,3},{963,65096,3},{960,65098,3},{958,65099,3},{960,65099,3}, {962,65099,3},{962,65103,3},{960,65104,3},{965,65108,3},{968,65108,3},{973,65111,3}, {973,65109,3},{977,65118,3},{983,65123,3},{980,65133,3},{982,65133,3},{983,65139,3}, {987,65139,3},{987,65143,3},{990,65148,3},{990,65156,3},{993,65159,3},{995,65168,3}, {993,65169,3},{995,65173,3},{992,65176,3},{993,65179,3},{993,65189,3},{992,65199,3}, {988,65203,3},{990,65206,3},{985,65206,3},{985,65209,3},{992,65218,3},{983,65218,3}, {985,65221,3},{983,65224,3},{972,65229,3},{973,65236,3},{972,65238,3},{957,65244,3}, {948,65251,3},{942,65258,3},{940,65261,3},{940,65263,3},{948,65268,3},{947,65269,3}, {942,65268,3},{938,65269,3},{932,65264,3},{925,65269,3},{920,65264,3},{915,65263,3}, {913,65259,3},{910,65259,3},{905,65259,3},{903,65261,3},{902,65271,3},{893,65271,3}, {892,65274,3},{888,65274,3},{882,65276,3},{878,65274,3},{878,65278,3},{872,65279,3}, {867,65279,3},{862,65281,3},{857,65281,3},{850,65283,3},{845,65283,3},{840,65284,3}, {835,65284,3},{830,65286,3},{825,65286,3},{820,65288,3},{817,65281,3},{817,65278,3}, {813,65274,3},{807,65278,3},{803,65278,3},{802,65268,3},{795,65263,3},{793,65261,3}, {795,65259,3},{785,65258,3},{782,65254,3},{775,65253,3},{760,65244,3},{727,65239,3}, {723,65241,3},{713,65234,3},{707,65234,3},{707,65228,3},{682,65214,3},{677,65213,3}, {672,65218,3},{670,65216,3},{665,65214,3},{665,65211,3},{662,65211,3},{658,65213,3}, {655,65213,3},{625,65219,3},{625,65221,3},{615,65226,3},{600,65229,3},{585,65236,3}, {570,65234,3},{572,65241,3},{563,65239,3},{562,65243,3},{562,65246,3},{565,65251,3}, {562,65254,3},{562,65258,3},{558,65259,3},{553,65259,3},{540,65264,3},{535,65264,3}, {535,65259,3},{530,65259,3},{528,65258,3},{525,65259,3},{525,65261,3},{520,65259,3}, {518,65263,3},{513,65263,3},{512,65263,3},{510,65261,3},{512,65251,3},{512,65249,3}, {510,65243,3},{512,65233,3},{512,65226,3},{508,65226,3},{512,65209,3},{513,65209,3}, {515,65213,3},{512,65221,3},{510,65223,3},{510,65236,3},{508,65239,3},{510,65243,3}, {512,65243,3},{513,65253,3},{517,65251,3},{518,65249,3},{518,65248,3},{517,65241,3}, {513,65243,3},{512,65239,3},{513,65231,3},{515,65223,3},{520,65216,3},{523,65216,3}, {525,65219,3},{530,65219,3},{533,65224,3},{535,65223,3},{537,65221,3},{535,65213,3}, {533,65211,3},{530,65213,3},{528,65208,3},{525,65208,3},{523,65211,3},{522,65209,3}, {520,65206,3},{520,65204,3},{518,65204,3},{518,65206,3},{515,65206,3},{515,65208,3}, {512,65208,3},{512,65204,3},{518,65166,3},{518,65164,3},{520,65164,3},{523,65163,3}, {518,65161,3},{520,65154,3},{523,65138,3},{525,65136,3},{525,65139,3},{528,65143,3}, {525,65146,3},{527,65148,3},{528,65146,3},{528,65148,3},{527,65151,3},{527,65154,3}, {523,65159,3},{525,65158,3},{527,65163,3},{528,65164,3},{532,65161,3},{535,65161,3}, {537,65159,3},{538,65156,3},{537,65154,3},{528,65163,3},{527,65161,3},{527,65156,3}, {530,65154,3},{528,65153,3},{530,65148,3},{532,65148,3},{532,65146,3},{535,65146,3}, {532,65144,3},{532,65134,3},{530,65136,3},{530,65141,3},{528,65141,3},{527,65138,3}, {530,65129,3},{528,65128,3},{530,65123,3},{528,65118,3},{530,65116,3},{528,65113,3}, {528,65111,3},{530,65111,3},{532,65108,3},{530,65106,3},{532,65104,3},{527,65101,3}, {530,65098,3},{527,65094,3},{530,65094,3},{530,65089,3},{528,65088,3},{527,65091,3}, {525,65091,3},{525,65084,3},{527,65081,3},{530,65079,3},{527,65079,3},{523,65074,3}, {525,65073,3},{523,65068,3},{523,65066,3},{525,65064,3},{525,65069,3},{527,65068,3}, {532,65069,3},{527,65066,3},{527,65061,3},{525,65063,3},{523,65063,3},{522,65056,3}, {518,65054,3},{517,65056,3},{517,65061,3},{520,65063,3},{522,65066,3},{520,65068,3}, {520,65069,3},{522,65076,3},{518,65079,3},{520,65083,3},{520,65079,3},{522,65079,3}, {523,65083,3},{522,65091,3},{522,65096,3},{525,65098,3},{523,65106,3},{525,65114,3}, {527,65116,3},{528,65131,3},{527,65133,3},{527,65129,3},{523,65136,3},{520,65116,3}, {518,65073,3},{515,65061,3},{513,65041,3},{513,65038,3},{515,65039,3},{515,65034,3}, {522,65036,3},{522,65033,3},{518,65024,3},{522,65021,3},{522,65013,3},{520,65011,3}, {523,65004,3},{520,65003,3},{520,65006,3},{517,65006,3},{515,65003,3},{518,65003,3}, {513,65001,3},{517,64996,3},{515,64994,3},{513,64998,3},{512,64999,3},{512,65008,3}, {513,65008,3},{515,65003,3},{515,65006,3},{517,65008,3},{515,65018,3},{517,65018,3}, {517,65016,3},{518,65016,3},{520,65013,3},{520,65018,3},{517,65026,3},{518,65028,3}, {518,65031,3},{518,65033,3},{513,65034,3},{513,65036,3},{508,64984,3},{512,64981,3}, {510,64979,3},{508,64981,3},{507,64976,3},{502,64948,3},{497,64936,3},{495,64929,3}, {493,64928,3},{487,64914,3},{482,64896,3},{478,64891,3},{477,64879,3},{472,64874,3}, {468,64863,3},{467,64846,3},{462,64843,3},{453,64831,3},{452,64823,3},{452,64816,3}, {447,64811,3},{445,64806,3},{435,64793,3},{435,64784,3},{1015,64739,131}, {1023,64743,3},{1033,64739,3},{1035,64736,3},{1035,64728,3},{1042,64724,3}, {1043,64723,3},{1042,64723,3},{1042,64714,3},{1047,64713,3},{1050,64709,3}, {1062,64708,3},{1068,64708,3},{1072,64706,3},{1075,64706,3},{1077,64704,3}, {1077,64703,3},{1083,64706,3},{1085,64708,3},{1095,64708,3},{1100,64708,3}, {1105,64701,3},{1105,64698,3},{1107,64688,3},{1100,64684,3},{1097,64681,3}, {1097,64673,3},{1097,64668,3},{1102,64669,3},{1108,64676,3},{1113,64676,3}, {1115,64679,3},{1120,64681,3},{1123,64688,3},{1127,64688,3},{1128,64688,3}, {1130,64691,3},{1128,64699,3},{1133,64701,3},{1133,64696,3},{1135,64694,3}, {1137,64699,3},{1142,64689,3},{1143,64684,3},{1150,64683,3},{1147,64678,3}, {1150,64673,3},{1155,64669,3},{1167,64666,3},{1163,64661,3},{1167,64653,3}, {1193,64658,3},{1197,64656,3},{1200,64656,3},{1203,64653,3},{1203,64649,3}, {1205,64646,3},{1208,64644,3},{1215,64648,3},{1220,64644,3},{1218,64639,3}, {1222,64638,3},{1227,64638,3},{1235,64641,3},{1240,64638,3},{1243,64631,3}, {1243,64628,3},{1248,64621,3},{1250,64611,3},{1248,64608,3},{1250,64604,3}, {1248,64603,3},{1248,64599,3},{1245,64596,3},{1240,64603,3},{1237,64604,3}, {1237,64606,3},{1232,64606,3},{1232,64604,3},{1227,64604,3},{1225,64601,3}, {1227,64594,3},{1225,64589,3},{1222,64586,3},{1217,64573,3},{1213,64569,3}, {1208,64569,3},{1203,64566,3},{1203,64561,3},{1205,64556,3},{1205,64549,3}, {1210,64544,3},{1210,64539,3},{1215,64533,3},{1215,64529,3},{1218,64526,3}, {1218,64521,3},{1220,64518,3},{1220,64513,3},{1222,64511,3},{1222,64508,3}, {1218,64506,3},{1222,64503,3},{1218,64503,3},{1218,64501,3},{1217,64501,3}, {1217,64496,3},{1212,64491,3},{1212,64484,3},{1208,64486,3},{1207,64484,3}, {1205,64484,3},{1203,64479,3},{1200,64479,3},{1197,64478,3},{1197,64474,3}, {1190,64471,3},{1192,64463,3},{1197,64461,3},{1203,64456,3},{1207,64458,3}, {1210,64458,3},{1212,64454,3},{1215,64449,3},{1220,64446,3},{1223,64441,3}, {1222,64433,3},{1213,64429,3},{1212,64426,3},{1208,64424,3},{1208,64421,3}, {1205,64421,3},{1203,64419,3},{1202,64418,3},{1200,64411,3},{1203,64404,3}, {1205,64401,3},{1210,64398,3},{1213,64391,3},{1217,64386,3},{1222,64388,3}, {1223,64391,3},{1228,64393,3},{1237,64393,3},{1238,64393,3},{1238,64398,3}, {1247,64401,3},{1250,64399,3},{1248,64398,3},{1253,64396,3},{1253,64394,3}, {1252,64394,3},{1255,64391,3},{1257,64394,3},{1258,64394,3},{1262,64393,3}, {1265,64394,3},{1267,64391,3},{1268,64391,3},{1270,64393,3},{1272,64393,3}, {1273,64398,3},{1277,64396,3},{1278,64398,3},{1283,64396,3},{1283,64394,3}, {1290,64396,3},{1292,64394,3},{1293,64399,3},{1298,64398,3},{1300,64398,3}, {1297,64396,3},{1297,64394,3},{1300,64394,3},{1302,64396,3},{1305,64391,3}, {1308,64393,3},{1312,64384,3},{1315,64383,3},{1318,64384,3},{1322,64381,3}, {1325,64383,3},{1332,64378,3},{1337,64376,3},{1337,64373,3},{1340,64373,3}, {1338,64368,3},{1342,64366,3},{1342,64363,3},{1335,64359,3},{1330,64354,3}, {1335,64353,3},{1338,64348,3},{1343,64349,3},{1347,64349,3},{1348,64346,3}, {1352,64343,3},{1353,64339,3},{1362,64333,3},{1365,64333,3},{1370,64328,3}, {1377,64339,3},{1383,64341,3},{1390,64341,3},{1397,64336,3},{1402,64334,3}, {1407,64336,3},{1408,64338,3},{1417,64338,3},{1428,64333,3},{1428,64328,3}, {1432,64324,3},{1433,64326,3},{1437,64326,3},{1440,64316,3},{1445,64316,3}, {1450,64313,3},{1455,64314,3},{1455,64318,3},{1460,64318,3},{1462,64321,3}, {1465,64321,3},{1467,64318,3},{1470,64319,3},{1470,64314,3},{1473,64314,3}, {1475,64311,3},{1472,64331,3},{1477,64331,3},{1477,64339,3},{1482,64341,3}, {1483,64349,3},{1487,64353,3},{1490,64353,3},{1490,64356,3},{1493,64354,3}, {1503,64356,3},{1505,64354,3},{1505,64351,3},{1508,64353,3},{1510,64351,3}, {1513,64354,3},{1520,64353,3},{1523,64354,3},{1532,64356,3},{1535,64359,3}, {1547,64361,3},{1550,64364,3},{1555,64364,3},{1552,64371,3},{1555,64376,3}, {1558,64379,3},{1560,64386,3},{1562,64386,3},{1565,64386,3},{1563,64394,3}, {1545,64408,3},{1525,64436,3},{1520,64439,3},{1510,64446,3},{1520,64449,3}, {1522,64453,3},{1528,64453,3},{1535,64463,3},{1543,64464,3},{1543,64469,3}, {1543,64474,3},{1543,64481,3},{1543,64486,3},{1543,64491,3},{1543,64496,3}, {1543,64503,3},{1543,64508,3},{1542,64513,3},{1542,64519,3},{1538,64523,3}, {1537,64529,3},{1537,64534,3},{1538,64539,3},{1538,64544,3},{1538,64549,3}, {1538,64556,3},{1540,64561,3},{1542,64564,3},{1543,64571,3},{1543,64578,3}, {1543,64583,3},{1543,64588,3},{1545,64593,3},{1545,64594,3},{1550,64594,3}, {1555,64593,3},{1560,64591,3},{1565,64596,3},{1570,64603,3},{1568,64604,3}, {1563,64604,3},{1558,64603,3},{1553,64603,3},{1552,64603,3},{1550,64608,3}, {1550,64613,3},{1550,64619,3},{1550,64626,3},{1550,64631,3},{1550,64636,3}, {1550,64641,3},{1550,64648,3},{1550,64653,3},{1550,64658,3},{1550,64663,3}, {1550,64669,3},{1550,64674,3},{1550,64679,3},{1550,64684,3},{1550,64691,3}, {1550,64696,3},{1550,64701,3},{1550,64706,3},{1550,64713,3},{1550,64718,3}, {1550,64723,3},{1550,64728,3},{1550,64734,3},{1550,64739,3},{1550,64744,3}, {1550,64751,3},{1550,64756,3},{1550,64761,3},{1550,64766,3},{1550,64771,3}, {1550,64778,3},{1550,64783,3},{1550,64788,3},{1550,64793,3},{1550,64798,3}, {1550,64804,3},{1550,64809,3},{1550,64814,3},{1550,64819,3},{1550,64826,3}, {1550,64831,3},{1550,64836,3},{1550,64841,3},{1550,64848,3},{1550,64853,3}, {1550,64858,3},{1550,64863,3},{1550,64868,3},{1550,64874,3},{1550,64879,3}, {1550,64884,3},{1550,64889,3},{1550,64896,3},{1550,64901,3},{1550,64908,3}, {1550,64913,3},{1550,64918,3},{1550,64923,3},{1550,64928,3},{1550,64934,3}, {1550,64939,3},{1550,64946,3},{1550,64951,3},{1550,64956,3},{1550,64961,3}, {1550,64968,3},{1550,64973,3},{1550,64978,3},{1550,64983,3},{1550,64986,3}, {1555,64988,3},{1560,64988,3},{1565,64989,3},{1570,64991,3},{1575,64991,3}, {1580,64993,3},{1587,64993,3},{1592,64994,3},{1597,64996,3},{1602,64996,3}, {1607,64998,3},{1612,64998,3},{1617,64999,3},{1622,65001,3},{1627,65001,3}, {1632,65003,3},{1637,64998,3},{1640,64991,3},{1643,64986,3},{1647,64981,3}, {1650,64976,3},{1657,64976,3},{1662,64974,3},{1667,64974,3},{1672,64974,3}, {1677,64973,3},{1682,64973,3},{1687,64973,3},{1692,64971,3},{1697,64971,3}, {1702,64971,3},{1708,64969,3},{1713,64969,3},{1718,64968,3},{1723,64968,3}, {1728,64968,3},{1733,64966,3},{1738,64966,3},{1743,64966,3},{1748,64964,3}, {1753,64964,3},{1758,64964,3},{1765,64963,3},{1770,64963,3},{1775,64963,3}, {1780,64961,3},{1785,64961,3},{1790,64961,3},{1795,64959,3},{1802,64959,3}, {1807,64959,3},{1812,64958,3},{1817,64958,3},{1822,64958,3},{1827,64956,3}, {1832,64956,3},{1838,64956,3},{1843,64954,3},{1848,64954,3},{1853,64953,3}, {1858,64953,3},{1863,64953,3},{1868,64951,3},{1873,64951,3},{1878,64951,3}, {1883,64949,3},{1888,64949,3},{1895,64949,3},{1900,64948,3},{1905,64948,3}, {1910,64948,3},{1915,64946,3},{1920,64946,3},{1925,64946,3},{1930,64944,3}, {1935,64944,3},{1940,64944,3},{1945,64943,3},{1950,64943,3},{1955,64943,3}, {1962,64941,3},{1967,64941,3},{1972,64941,3},{1977,64939,3},{1982,64939,3}, {1987,64939,3},{1992,64938,3},{1997,64938,3},{2003,64936,3},{2008,64936,3}, {2013,64936,3},{2018,64934,3},{2023,64934,3},{2028,64934,3},{2033,64933,3}, {2038,64933,3},{2043,64933,3},{2048,64931,3},{2055,64931,3},{2060,64929,3}, {2065,64929,3},{2070,64929,3},{2075,64928,3},{2080,64928,3},{2085,64928,3}, {2090,64926,3},{2095,64926,3},{2102,64924,3},{2107,64924,3},{2112,64924,3}, {2117,64923,3},{2122,64923,3},{2127,64923,3},{2132,64921,3},{2137,64921,3}, {2143,64921,3},{2148,64919,3},{2153,64919,3},{2158,64919,3},{2163,64918,3}, {2168,64918,3},{2173,64918,3},{2178,64916,3},{2183,64916,3},{2188,64916,3}, {2193,64914,3},{2198,64914,3},{2203,64913,3},{2208,64913,3},{2213,64913,3}, {2220,64911,3},{2225,64911,3},{2230,64911,3},{2235,64909,3},{2240,64909,3}, {2245,64909,3},{2250,64908,3},{2255,64908,3},{2260,64908,3},{2265,64906,3}, {2270,64906,3},{2275,64906,3},{2280,64904,3},{2285,64904,3},{2290,64903,3}, {2295,64903,3},{2302,64903,3},{2307,64901,3},{2313,64901,3},{2315,64901,3}, {2317,64901,3},{2322,64899,3},{2327,64899,3},{2332,64898,3},{2338,64898,3}, {2343,64898,3},{2348,64896,3},{2353,64896,3},{2358,64896,3},{2363,64894,3}, {2368,64894,3},{2375,64893,3},{2380,64893,3},{2385,64893,3},{2390,64891,3}, {2395,64891,3},{2400,64891,3},{2405,64889,3},{2412,64889,3},{2417,64888,3}, {2422,64888,3},{2427,64888,3},{2432,64886,3},{2437,64886,3},{2442,64886,3}, {2448,64884,3},{2453,64884,3},{2458,64883,3},{2463,64883,3},{2468,64883,3}, {2473,64881,3},{2478,64881,3},{2485,64881,3},{2490,64879,3},{2495,64879,3}, {2500,64878,3},{2500,64886,3},{2500,64893,3},{2500,64899,3},{2500,64906,3}, {2500,64913,3},{2500,64919,3},{2500,64926,3},{2500,64933,3},{2500,64939,3}, {2500,64946,3},{2500,64953,3},{2500,64959,3},{2500,64966,3},{2500,64973,3}, {2500,64979,3},{2500,64986,3},{2500,64993,3},{2500,64999,3},{2500,65006,3}, {2500,65013,3},{2500,65019,3},{2500,65026,3},{2500,65033,3},{2500,65039,3}, {2500,65046,3},{2500,65053,3},{2500,65056,3},{2497,65061,3},{2493,65066,3}, {2490,65071,3},{2487,65076,3},{2483,65081,3},{2480,65088,3},{2477,65093,3}, {2473,65098,3},{2470,65103,3},{2467,65108,3},{2463,65113,3},{2460,65118,3}, {2457,65124,3},{2453,65129,3},{2450,65134,3},{2447,65139,3},{2443,65144,3}, {2440,65149,3},{2437,65154,3},{2433,65161,3},{2430,65166,3},{2427,65171,3}, {2423,65176,3},{2420,65181,3},{2417,65186,3},{2413,65191,3},{2410,65196,3}, {2407,65201,3},{2403,65208,3},{2400,65213,3},{2397,65218,3},{2393,65223,3}, {2390,65228,3},{2387,65233,3},{2383,65238,3},{2380,65243,3},{2377,65248,3}, {2373,65253,3},{2370,65259,3},{2367,65264,3},{2363,65269,3},{2360,65274,3}, {2357,65279,3},{2353,65284,3},{2350,65289,3},{2347,65294,3},{2343,65299,3}, {2340,65304,3},{2337,65309,3},{2333,65314,3},{2330,65321,3},{2327,65326,3}, {2323,65331,3},{2320,65336,3},{2317,65341,3},{2313,65346,3},{2308,65351,3}, {2305,65356,3},{2302,65361,3},{2298,65366,3},{2295,65371,3},{2292,65376,3}, {2288,65381,3},{2285,65386,3},{2282,65391,3},{2278,65396,3},{2275,65401,3}, {2272,65406,3},{2268,65411,3},{2265,65416,3},{2262,65421,3},{2258,65426,3}, {2255,65431,3},{2252,65436,3},{2248,65443,3},{2243,65448,3},{2240,65453,3}, {2237,65458,3},{2233,65463,3},{2230,65468,3},{2227,65473,3},{2223,65478,3}, {2220,65483,3},{2217,65488,3},{2213,65493,3},{2210,65498,3},{2207,65503,3}, {2203,65508,3},{2200,65513,3},{2195,65518,3},{2192,65523,3},{2188,65528,3}, {2185,65533,3},{2183,0,3},{2180,5,3},{2177,10,3},{2173,15,3},{2170,20,3}, {2167,25,3},{2163,30,3},{2162,35,3},{2158,40,3},{2155,45,3},{2152,50,3}, {2148,55,3},{2145,60,3},{2142,65,3},{2140,70,3},{2137,75,3},{2133,80,3}, {2130,85,3},{2127,90,3},{2123,95,3},{2120,100,3},{2117,105,3},{2115,110,3}, {2112,115,3},{2110,117,3},{2100,120,3},{2080,117,3},{2073,117,3},{2073,132,3}, {2065,137,3},{2063,148,3},{2057,163,3},{2053,167,3},{2042,167,3},{2030,180,3}, {2030,188,3},{2023,190,3},{2023,193,3},{2027,198,3},{2022,208,3},{2023,212,3}, {2028,220,3},{2023,228,3},{2018,235,3},{2005,242,3},{2005,248,3},{2002,252,3}, {2002,257,3},{2000,258,3},{2000,272,3},{1997,282,3},{1995,297,3},{1990,308,3}, {1985,315,3},{1982,323,3},{1957,322,3},{1953,322,3},{1952,325,3},{1945,325,3}, {1942,327,3},{1938,328,3},{1933,320,3},{1925,320,3},{1923,315,3},{1915,312,3}, {1912,313,3},{1907,320,3},{1905,325,3},{1898,333,3},{1898,337,3},{1900,342,3}, {1900,348,3},{1902,353,3},{1902,358,3},{1903,365,3},{1905,370,3},{1905,375,3}, {1907,380,3},{1908,387,3},{1908,392,3},{1910,397,3},{1910,403,3},{1912,408,3}, {1913,413,3},{1913,418,3},{1915,425,3},{1912,425,3},{1907,425,3},{1902,425,3}, {1897,425,3},{1892,425,3},{1887,425,3},{1882,425,3},{1877,425,3},{1872,425,3}, {1867,425,3},{1860,425,3},{1855,425,3},{1850,425,3},{1845,425,3},{1840,425,3}, {1835,425,3},{1828,425,3},{1823,425,3},{1818,425,3},{1813,425,3},{1808,425,3}, {1803,425,3},{1797,425,3},{1792,425,3},{1787,425,3},{1782,425,3},{1777,425,3}, {1772,425,3},{1767,425,3},{1762,425,3},{1757,425,3},{1752,425,3},{1747,425,3}, {1740,425,3},{1735,425,3},{1730,425,3},{1725,425,3},{1720,425,3},{1715,425,3}, {1710,425,3},{1705,425,3},{1700,425,3},{1698,422,3},{1697,422,3},{1690,422,3}, {1685,422,3},{1680,420,3},{1675,420,3},{1670,420,3},{1665,420,3},{1660,420,3}, {1655,420,3},{1650,420,3},{1645,420,3},{1640,420,3},{1635,412,3},{1630,407,3}, {1623,405,3},{1608,398,3},{1598,400,3},{1590,392,3},{1575,390,3},{1572,388,3}, {1567,382,3},{1565,372,3},{1555,362,3},{1550,353,3},{1535,352,3},{1543,303,3}, {1533,302,3},{1535,263,3},{1535,253,3},{1535,247,3},{1533,242,3},{1533,237,3}, {1533,232,3},{1533,227,3},{1533,220,3},{1533,215,3},{1533,210,3},{1532,205,3}, {1532,200,3},{1532,193,3},{1532,188,3},{1532,183,3},{1532,178,3},{1530,172,3}, {1530,167,3},{1530,162,3},{1530,157,3},{1530,152,3},{1530,145,3},{1528,140,3}, {1528,132,3},{1500,100,3},{1498,97,3},{1497,75,3},{1495,70,3},{1500,52,3}, {1497,40,3},{1500,23,3},{1492,23,3},{1493,20,3},{1495,13,3},{1497,7,3}, {1500,0,3},{1508,65513,3},{1500,65498,3},{1508,65493,3},{1508,65464,3}, {1505,65461,3},{1500,65454,3},{1495,65448,3},{1488,65441,3},{1483,65434,3}, {1478,65429,3},{1478,65423,3},{1477,65418,3},{1475,65411,3},{1473,65404,3}, {1468,65398,3},{1465,65391,3},{1460,65384,3},{1457,65378,3},{1452,65371,3}, {1450,65364,3},{1448,65358,3},{1448,65351,3},{1448,65346,3},{1448,65338,3}, {1440,65338,3},{1435,65336,3},{1430,65336,3},{1423,65336,3},{1418,65336,3}, {1415,65326,3},{1425,65306,3},{1428,65289,3},{1422,65276,3},{1413,65268,3}, {1403,65253,3},{1400,65251,3},{1400,65253,3},{1388,65248,3},{1385,65248,3}, {1382,65246,3},{1372,65246,3},{1365,65248,3},{1363,65241,3},{1365,65234,3}, {1362,65233,3},{1362,65231,3},{1365,65229,3},{1368,65226,3},{1368,65218,3}, {1370,65214,3},{1372,65209,3},{1370,65209,3},{1368,65211,3},{1358,65211,3}, {1355,65209,3},{1328,65213,3},{1328,65193,3},{1318,65193,3},{1318,65183,3}, {1320,65181,3},{1320,65178,3},{1327,65169,3},{1330,65163,3},{1335,65158,3}, {1335,65153,3},{1338,65148,3},{1338,65141,3},{1340,65139,3},{1345,65146,3}, {1347,65143,3},{1348,65141,3},{1350,65139,3},{1348,65138,3},{1348,65141,3}, {1347,65141,3},{1343,65138,3},{1343,65134,3},{1342,65133,3},{1340,65128,3}, {1328,65121,3},{1327,65116,3},{1323,65111,3},{1318,65114,3},{1318,65106,3}, {1312,65103,3},{1300,65109,3},{1297,65114,3},{1285,65114,3},{1283,65116,3}, {1277,65116,3},{1273,65113,3},{1272,65106,3},{1275,65101,3},{1273,65089,3}, {1265,65089,3},{1262,65094,3},{1253,65099,3},{1243,65093,3},{1235,65096,3}, {1230,65098,3},{1230,65094,3},{1232,65093,3},{1233,65091,3},{1232,65089,3}, {1228,65089,3},{1220,65079,3},{1213,65083,3},{1213,65076,3},{1212,65074,3}, {1207,65073,3},{1207,65066,3},{1200,65061,3},{1202,65059,3},{1200,65058,3}, {1202,65053,3},{1200,65048,3},{1202,65043,3},{1198,65038,3},{1198,65029,3}, {1195,65021,3},{1187,65011,3},{1183,65009,3},{1185,65008,3},{1183,65004,3}, {1183,64996,3},{1180,65001,3},{1178,65008,3},{1175,65009,3},{1167,65009,3}, {1162,65008,3},{1160,65008,3},{1160,65013,3},{1158,65014,3},{1153,65016,3}, {1145,65014,3},{1142,65016,3},{1140,65011,3},{1125,65011,3},{1120,65006,3}, {1113,65006,3},{1110,64999,3},{1108,64988,3},{1097,64988,3},{1098,64991,3}, {1090,64991,3},{1085,64994,3},{1077,64993,3},{1075,64991,3},{1065,64989,3}, {1062,64988,3},{1055,64989,3},{1047,64984,3},{1043,64984,3},{1045,64979,3}, {1045,64971,3},{1042,64963,3},{1042,64956,3},{1037,64948,3},{1028,64948,3}, {1028,64941,3},{1027,64939,3},{1023,64939,3},{1018,64936,3},{1020,64926,3}, {1023,64916,3},{1025,64916,3},{1025,64914,3},{1032,64913,3},{1032,64918,3}, {1033,64916,3},{1035,64919,3},{1040,64918,3},{1042,64921,3},{1043,64918,3}, {1050,64919,3},{1050,64916,3},{1052,64914,3},{1052,64911,3},{1057,64914,3}, {1060,64914,3},{1063,64918,3},{1067,64913,3},{1072,64914,3},{1073,64911,3}, {1070,64904,3},{1068,64894,3},{1062,64894,3},{1058,64898,3},{1055,64894,3}, {1058,64883,3},{1060,64881,3},{1062,64876,3},{1065,64874,3},{1067,64871,3}, {1060,64868,3},{1058,64869,3},{1053,64869,3},{1052,64868,3},{1048,64868,3}, {1047,64869,3},{1043,64873,3},{1040,64871,3},{1037,64871,3},{1033,64868,3}, {1038,64858,3},{1035,64851,3},{1035,64841,3},{1033,64839,3},{1025,64838,3}, {1022,64841,3},{1018,64841,3},{1015,64838,3},{1013,64834,3},{1015,64833,3}, {1020,64829,3},{1022,64823,3},{1025,64808,3},{1025,64801,3},{1028,64799,3}, {1033,64801,3},{1035,64799,3},{1033,64793,3},{1037,64793,3},{1038,64791,3}, {1042,64791,3},{1045,64791,3},{1047,64788,3},{1045,64784,3},{1042,64783,3}, {1042,64776,3},{1045,64773,3},{1040,64769,3},{1040,64766,3},{1038,64763,3}, {1035,64763,3},{1033,64761,3},{1033,64759,3},{1030,64761,3},{1020,64754,3}, {1020,64749,3},{1017,64748,3},{1015,64743,3},{1015,64739,3},{2767,64219,131}, {2770,64219,3},{2777,64233,3},{2792,64239,3},{2795,64246,3},{2798,64264,3}, {2798,64279,3},{2808,64329,3},{2813,64338,3},{2830,64384,3},{2835,64391,3}, {2850,64403,3},{2868,64426,3},{2873,64428,3},{2900,64479,3},{2910,64493,3}, {2923,64501,3},{2932,64513,3},{2940,64518,3},{2943,64523,3},{2952,64528,3}, {2958,64529,3},{2987,64556,3},{3008,64569,3},{3017,64573,3},{3042,64574,3}, {3043,64571,3},{3055,64566,3},{3055,64563,3},{3062,64556,3},{3063,64548,3}, {3068,64548,3},{3082,64554,3},{3085,64553,3},{3088,64554,3},{3107,64554,3}, {3112,64551,3},{3132,64556,3},{3138,64554,3},{3140,64551,3},{3148,64558,3}, {3152,64559,3},{3163,64568,3},{3170,64568,3},{3193,64589,3},{3203,64599,3}, {3212,64603,3},{3218,64608,3},{3232,64609,3},{3235,64608,3},{3237,64606,3}, {3247,64611,3},{3253,64608,3},{3255,64608,3},{3265,64621,3},{3277,64634,3}, {3287,64648,3},{3312,64673,3},{3318,64674,3},{3327,64684,3},{3327,64691,3}, {3328,64696,3},{3338,64706,3},{3343,64726,3},{3350,64744,3},{3353,64751,3}, {3355,64761,3},{3362,64769,3},{3360,64776,3},{3363,64783,3},{3372,64796,3}, {3372,64801,3},{3380,64814,3},{3387,64833,3},{3393,64843,3},{3405,64856,3}, {3430,64871,3},{3443,64881,3},{3483,64904,3},{3502,64913,3},{3538,64928,3}, {3548,64933,3},{3578,64944,3},{3580,64948,3},{3578,64959,3},{3582,64964,3}, {3583,64974,3},{3582,64976,3},{3585,64983,3},{3590,64988,3},{3592,64994,3}, {3590,65008,3},{3587,65003,3},{3583,65001,3},{3570,65004,3},{3568,65009,3}, {3558,65011,3},{3553,65019,3},{3542,65029,3},{3540,65036,3},{3532,65044,3}, {3522,65066,3},{3515,65101,3},{3518,65109,3},{3520,65123,3},{3525,65134,3}, {3523,65138,3},{3527,65144,3},{3522,65146,3},{3520,65154,3},{3522,65159,3}, {3527,65161,3},{3528,65169,3},{3523,65178,3},{3518,65203,3},{3523,65218,3}, {3528,65224,3},{3528,65226,3},{3528,65229,3},{3543,65239,3},{3543,65241,3}, {3537,65239,3},{3527,65246,3},{3525,65244,3},{3518,65244,3},{3513,65249,3}, {3512,65261,3},{3517,65254,3},{3523,65248,3},{3525,65248,3},{3513,65261,3}, {3510,65273,3},{3510,65281,3},{3510,65288,3},{3515,65294,3},{3510,65311,3}, {3508,65314,3},{3508,65316,3},{3503,65316,3},{3502,65318,3},{3500,65323,3}, {3493,65329,3},{3493,65336,3},{3487,65339,3},{3482,65348,3},{3475,65361,3}, {3472,65358,3},{3465,65356,3},{3462,65351,3},{3450,65363,3},{3448,65368,3}, {3438,65356,3},{3435,65361,3},{3408,65371,3},{3388,65364,3},{3377,65368,3}, {3370,65363,3},{3365,65371,3},{3360,65376,3},{3355,65376,3},{3352,65376,3}, {3338,65369,3},{3327,65369,3},{3323,65371,3},{3320,65376,3},{3315,65378,3}, {3310,65381,3},{3307,65388,3},{3298,65388,3},{3293,65381,3},{3272,65398,3}, {3270,65406,3},{3267,65409,3},{3250,65434,3},{3245,65429,3},{3242,65424,3}, {3240,65416,3},{3233,65411,3},{3230,65413,3},{3222,65411,3},{3217,65406,3}, {3217,65414,3},{3217,65416,3},{3213,65419,3},{3210,65418,3},{3208,65411,3}, {3212,65391,3},{3212,65359,3},{3215,65303,3},{3213,65286,3},{3208,65263,3}, {3208,65251,3},{3203,65243,3},{3190,65241,3},{3185,65239,3},{3183,65236,3}, {3175,65209,3},{3173,65198,3},{3167,65184,3},{3172,65168,3},{3170,65154,3}, {3165,65153,3},{3148,65151,3},{3143,65154,3},{3143,65161,3},{3140,65164,3}, {3133,65156,3},{3123,65156,3},{3117,65153,3},{3115,65156,3},{3117,65159,3}, {3118,65163,3},{3117,65166,3},{3112,65171,3},{3110,65176,3},{3102,65176,3}, {3097,65173,3},{3093,65164,3},{3093,65151,3},{3092,65134,3},{3077,65119,3}, {3068,65101,3},{3065,65096,3},{3063,65089,3},{3063,65078,3},{3058,65068,3}, {3050,65044,3},{3045,65039,3},{3025,65028,3},{3010,65014,3},{3000,65001,3}, {2995,64988,3},{2990,64983,3},{2988,64958,3},{2983,64936,3},{2985,64921,3}, {2980,64914,3},{2982,64904,3},{2980,64896,3},{2983,64889,3},{2982,64888,3}, {2975,64888,3},{2963,64886,3},{2957,64878,3},{2957,64866,3},{2962,64853,3}, {2962,64838,3},{2963,64824,3},{2953,64806,3},{2947,64801,3},{2940,64793,3}, {2938,64788,3},{2940,64778,3},{2938,64771,3},{2932,64766,3},{2930,64761,3}, {2925,64756,3},{2915,64739,3},{2912,64736,3},{2905,64719,3},{2895,64706,3}, {2892,64699,3},{2885,64694,3},{2883,64689,3},{2878,64686,3},{2872,64669,3}, {2867,64669,3},{2860,64669,3},{2853,64669,3},{2847,64669,3},{2840,64669,3}, {2835,64669,3},{2830,64669,3},{2823,64669,3},{2817,64669,3},{2810,64669,3}, {2803,64669,3},{2797,64669,3},{2790,64669,3},{2783,64669,3},{2777,64669,3}, {2770,64669,3},{2767,64669,3},{2767,64666,3},{2767,64659,3},{2767,64653,3}, {2767,64646,3},{2767,64639,3},{2767,64633,3},{2767,64626,3},{2767,64619,3}, {2767,64613,3},{2767,64606,3},{2767,64599,3},{2767,64593,3},{2767,64586,3}, {2767,64579,3},{2767,64573,3},{2767,64566,3},{2767,64559,3},{2767,64553,3}, {2767,64546,3},{2767,64539,3},{2767,64533,3},{2767,64526,3},{2767,64519,3}, {2767,64513,3},{2767,64506,3},{2767,64499,3},{2767,64493,3},{2767,64486,3}, {2767,64479,3},{2767,64473,3},{2767,64466,3},{2767,64459,3},{2767,64453,3}, {2767,64446,3},{2767,64439,3},{2767,64433,3},{2767,64426,3},{2767,64419,3}, {2767,64413,3},{2767,64406,3},{2767,64399,3},{2767,64393,3},{2767,64386,3}, {2767,64379,3},{2767,64373,3},{2767,64366,3},{2767,64359,3},{2767,64353,3}, {2767,64346,3},{2767,64339,3},{2767,64333,3},{2767,64326,3},{2767,64319,3}, {2767,64313,3},{2767,64306,3},{2767,64299,3},{2767,64293,3},{2767,64286,3}, {2767,64279,3},{2767,64273,3},{2767,64266,3},{2767,64259,3},{2767,64253,3}, {2767,64244,3},{2767,64238,3},{2767,64231,3},{2767,64224,3},{2767,64219,3}, {1603,63884,131},{1630,63883,3},{1648,63889,3},{1662,63889,3},{1697,63903,3}, {1707,63911,3},{1737,63923,3},{1773,63933,3},{1808,63933,3},{1837,63929,3}, {1842,63931,3},{1867,63923,3},{1892,63918,3},{1913,63908,3},{1920,63901,3}, {1925,63889,3},{1938,63883,3},{1938,63884,3},{1937,63891,3},{1940,63898,3}, {1947,63904,3},{1952,63908,3},{1953,63904,3},{1947,63898,3},{1953,63901,3}, {1953,63899,3},{1947,63893,3},{1942,63893,3},{1940,63889,3},{1945,63889,3}, {1950,63893,3},{1953,63894,3},{1963,63903,3},{1973,63909,3},{1975,63909,3}, {1978,63913,3},{1983,63911,3},{1985,63913,3},{1987,63913,3},{1985,63909,3}, {1988,63911,3},{1990,63908,3},{1987,63906,3},{1988,63904,3},{2000,63914,3}, {2007,63914,3},{2013,63909,3},{2015,63913,3},{2022,63916,3},{2028,63913,3}, {2030,63909,3},{2033,63908,3},{2035,63906,3},{2037,63904,3},{2042,63901,3}, {2043,63903,3},{2058,63896,3},{2058,63894,3},{2065,63893,3},{2063,63891,3}, {2065,63889,3},{2067,63894,3},{2067,63888,3},{2072,63886,3},{2073,63883,3}, {2058,63883,3},{2057,63881,3},{2065,63873,3},{2068,63868,3},{2070,63871,3}, {2073,63869,3},{2077,63866,3},{2093,63858,3},{2093,63856,3},{2115,63846,3}, {2117,63843,3},{2107,63839,3},{2105,63834,3},{2102,63834,3},{2102,63836,3}, {2097,63836,3},{2092,63836,3},{2090,63831,3},{2085,63834,3},{2077,63831,3}, {2082,63829,3},{2087,63829,3},{2093,63829,3},{2097,63831,3},{2102,63833,3}, {2107,63834,3},{2112,63836,3},{2118,63838,3},{2123,63839,3},{2128,63839,3}, {2133,63841,3},{2133,63846,3},{2133,63851,3},{2133,63858,3},{2133,63863,3}, {2133,63868,3},{2133,63874,3},{2133,63879,3},{2133,63884,3},{2133,63891,3}, {2133,63896,3},{2133,63901,3},{2133,63906,3},{2133,63913,3},{2133,63918,3}, {2133,63923,3},{2133,63929,3},{2133,63934,3},{2133,63941,3},{2133,63946,3}, {2133,63953,3},{2133,63958,3},{2133,63964,3},{2133,63969,3},{2133,63974,3}, {2133,63981,3},{2133,63986,3},{2133,63991,3},{2133,63998,3},{2133,64003,3}, {2133,64008,3},{2133,64013,3},{2133,64019,3},{2133,64024,3},{2133,64029,3}, {2133,64036,3},{2133,64041,3},{2133,64048,3},{2133,64053,3},{2133,64058,3}, {2133,64064,3},{2133,64069,3},{2133,64074,3},{2133,64079,3},{2133,64086,3}, {2133,64091,3},{2133,64096,3},{2135,64103,3},{2135,64109,3},{2135,64114,3}, {2135,64121,3},{2135,64126,3},{2135,64131,3},{2135,64138,3},{2135,64143,3}, {2135,64149,3},{2135,64154,3},{2135,64159,3},{2135,64166,3},{2133,64171,3}, {2133,64176,3},{2133,64181,3},{2133,64188,3},{2133,64193,3},{2133,64198,3}, {2133,64204,3},{2133,64209,3},{2133,64214,3},{2133,64221,3},{2133,64226,3}, {2133,64231,3},{2133,64236,3},{2138,64236,3},{2143,64236,3},{2148,64234,3}, {2155,64234,3},{2160,64234,3},{2165,64234,3},{2170,64234,3},{2175,64233,3}, {2180,64233,3},{2185,64233,3},{2190,64233,3},{2195,64231,3},{2200,64231,3}, {2207,64231,3},{2212,64231,3},{2217,64231,3},{2222,64229,3},{2227,64229,3}, {2232,64229,3},{2237,64229,3},{2243,64229,3},{2248,64228,3},{2253,64228,3}, {2258,64226,3},{2263,64224,3},{2268,64223,3},{2273,64221,3},{2280,64223,3}, {2285,64224,3},{2290,64226,3},{2295,64229,3},{2300,64234,3},{2303,64238,3}, {2307,64243,3},{2310,64249,3},{2313,64254,3},{2317,64259,3},{2320,64264,3}, {2323,64271,3},{2327,64276,3},{2330,64283,3},{2330,64288,3},{2332,64294,3}, {2332,64299,3},{2335,64306,3},{2337,64311,3},{2340,64316,3},{2342,64323,3}, {2343,64328,3},{2345,64334,3},{2345,64336,3},{2353,64336,3},{2358,64336,3}, {2365,64336,3},{2372,64336,3},{2377,64336,3},{2383,64336,3},{2390,64336,3}, {2397,64336,3},{2403,64336,3},{2410,64336,3},{2417,64336,3},{2423,64336,3}, {2430,64336,3},{2437,64336,3},{2443,64336,3},{2450,64336,3},{2457,64336,3}, {2463,64336,3},{2470,64336,3},{2477,64336,3},{2483,64336,3},{2490,64336,3}, {2497,64336,3},{2503,64336,3},{2510,64336,3},{2517,64336,3},{2523,64336,3}, {2530,64336,3},{2537,64336,3},{2543,64336,3},{2550,64336,3},{2557,64336,3}, {2563,64336,3},{2570,64336,3},{2577,64336,3},{2583,64336,3},{2590,64336,3}, {2597,64336,3},{2600,64336,3},{2600,64343,3},{2600,64349,3},{2600,64356,3}, {2600,64363,3},{2600,64369,3},{2600,64376,3},{2600,64383,3},{2600,64389,3}, {2600,64396,3},{2600,64403,3},{2600,64409,3},{2600,64416,3},{2600,64423,3}, {2600,64429,3},{2600,64436,3},{2600,64443,3},{2600,64449,3},{2600,64456,3}, {2600,64463,3},{2600,64469,3},{2600,64476,3},{2600,64483,3},{2600,64489,3}, {2600,64496,3},{2600,64503,3},{2600,64509,3},{2600,64516,3},{2600,64523,3}, {2600,64529,3},{2600,64536,3},{2600,64543,3},{2600,64549,3},{2600,64556,3}, {2600,64563,3},{2600,64569,3},{2600,64576,3},{2600,64583,3},{2600,64589,3}, {2600,64596,3},{2600,64603,3},{2600,64609,3},{2600,64616,3},{2600,64623,3}, {2600,64629,3},{2600,64636,3},{2600,64643,3},{2600,64649,3},{2600,64656,3}, {2600,64663,3},{2600,64669,3},{2607,64669,3},{2612,64669,3},{2617,64669,3}, {2623,64669,3},{2630,64669,3},{2637,64669,3},{2643,64669,3},{2650,64669,3}, {2655,64669,3},{2660,64669,3},{2667,64669,3},{2673,64669,3},{2678,64669,3}, {2683,64669,3},{2690,64669,3},{2697,64669,3},{2702,64669,3},{2707,64669,3}, {2713,64669,3},{2720,64669,3},{2728,64669,3},{2725,64676,3},{2723,64681,3}, {2720,64686,3},{2717,64691,3},{2713,64698,3},{2710,64703,3},{2707,64708,3}, {2703,64714,3},{2700,64719,3},{2698,64724,3},{2695,64731,3},{2692,64736,3}, {2688,64741,3},{2685,64746,3},{2682,64753,3},{2678,64758,3},{2675,64763,3}, {2672,64768,3},{2670,64774,3},{2667,64779,3},{2663,64784,3},{2660,64791,3}, {2657,64796,3},{2653,64801,3},{2650,64806,3},{2647,64813,3},{2643,64818,3}, {2640,64823,3},{2637,64828,3},{2635,64834,3},{2632,64839,3},{2628,64844,3}, {2625,64849,3},{2622,64856,3},{2618,64861,3},{2615,64866,3},{2612,64871,3}, {2608,64878,3},{2605,64883,3},{2602,64888,3},{2598,64893,3},{2595,64898,3}, {2593,64904,3},{2590,64909,3},{2587,64914,3},{2583,64919,3},{2580,64926,3}, {2577,64931,3},{2573,64936,3},{2570,64941,3},{2567,64946,3},{2563,64953,3}, {2560,64958,3},{2557,64963,3},{2553,64968,3},{2550,64973,3},{2547,64979,3}, {2543,64984,3},{2540,64989,3},{2538,64994,3},{2535,64999,3},{2532,65006,3}, {2528,65011,3},{2525,65016,3},{2522,65021,3},{2518,65026,3},{2515,65031,3}, {2512,65038,3},{2508,65043,3},{2505,65048,3},{2502,65053,3},{2500,65056,3}, {2500,65053,3},{2500,65046,3},{2500,65039,3},{2500,65033,3},{2500,65026,3}, {2500,65019,3},{2500,65013,3},{2500,65006,3},{2500,64999,3},{2500,64993,3}, {2500,64986,3},{2500,64979,3},{2500,64973,3},{2500,64966,3},{2500,64959,3}, {2500,64953,3},{2500,64946,3},{2500,64939,3},{2500,64933,3},{2500,64926,3}, {2500,64919,3},{2500,64913,3},{2500,64906,3},{2500,64899,3},{2500,64893,3}, {2500,64886,3},{2500,64878,3},{2495,64879,3},{2490,64879,3},{2485,64881,3}, {2478,64881,3},{2473,64881,3},{2468,64883,3},{2463,64883,3},{2458,64883,3}, {2453,64884,3},{2448,64884,3},{2442,64886,3},{2437,64886,3},{2432,64886,3}, {2427,64888,3},{2422,64888,3},{2417,64888,3},{2412,64889,3},{2405,64889,3}, {2400,64891,3},{2395,64891,3},{2390,64891,3},{2385,64893,3},{2380,64893,3}, {2375,64893,3},{2368,64894,3},{2363,64894,3},{2358,64896,3},{2353,64896,3}, {2348,64896,3},{2343,64898,3},{2338,64898,3},{2332,64898,3},{2327,64899,3}, {2322,64899,3},{2317,64901,3},{2315,64901,3},{2313,64901,3},{2307,64901,3}, {2302,64903,3},{2295,64903,3},{2290,64903,3},{2285,64904,3},{2280,64904,3}, {2275,64906,3},{2270,64906,3},{2265,64906,3},{2260,64908,3},{2255,64908,3}, {2250,64908,3},{2245,64909,3},{2240,64909,3},{2235,64909,3},{2230,64911,3}, {2225,64911,3},{2220,64911,3},{2213,64913,3},{2208,64913,3},{2203,64913,3}, {2198,64914,3},{2193,64914,3},{2188,64916,3},{2183,64916,3},{2178,64916,3}, {2173,64918,3},{2168,64918,3},{2163,64918,3},{2158,64919,3},{2153,64919,3}, {2148,64919,3},{2143,64921,3},{2137,64921,3},{2132,64921,3},{2127,64923,3}, {2122,64923,3},{2117,64923,3},{2112,64924,3},{2107,64924,3},{2102,64924,3}, {2095,64926,3},{2090,64926,3},{2085,64928,3},{2080,64928,3},{2075,64928,3}, {2070,64929,3},{2065,64929,3},{2060,64929,3},{2055,64931,3},{2048,64931,3}, {2043,64933,3},{2038,64933,3},{2033,64933,3},{2028,64934,3},{2023,64934,3}, {2018,64934,3},{2013,64936,3},{2008,64936,3},{2003,64936,3},{1997,64938,3}, {1992,64938,3},{1987,64939,3},{1982,64939,3},{1977,64939,3},{1972,64941,3}, {1967,64941,3},{1962,64941,3},{1955,64943,3},{1950,64943,3},{1945,64943,3}, {1940,64944,3},{1935,64944,3},{1930,64944,3},{1925,64946,3},{1920,64946,3}, {1915,64946,3},{1910,64948,3},{1905,64948,3},{1900,64948,3},{1895,64949,3}, {1888,64949,3},{1883,64949,3},{1878,64951,3},{1873,64951,3},{1868,64951,3}, {1863,64953,3},{1858,64953,3},{1853,64953,3},{1848,64954,3},{1843,64954,3}, {1838,64956,3},{1832,64956,3},{1827,64956,3},{1822,64958,3},{1817,64958,3}, {1812,64958,3},{1807,64959,3},{1802,64959,3},{1795,64959,3},{1790,64961,3}, {1785,64961,3},{1780,64961,3},{1775,64963,3},{1770,64963,3},{1765,64963,3}, {1758,64964,3},{1753,64964,3},{1748,64964,3},{1743,64966,3},{1738,64966,3}, {1733,64966,3},{1728,64968,3},{1723,64968,3},{1718,64968,3},{1713,64969,3}, {1708,64969,3},{1702,64971,3},{1697,64971,3},{1692,64971,3},{1687,64973,3}, {1682,64973,3},{1677,64973,3},{1672,64974,3},{1667,64974,3},{1662,64974,3}, {1657,64976,3},{1650,64976,3},{1647,64981,3},{1643,64986,3},{1640,64991,3}, {1637,64998,3},{1632,65003,3},{1627,65001,3},{1622,65001,3},{1617,64999,3}, {1612,64998,3},{1607,64998,3},{1602,64996,3},{1597,64996,3},{1592,64994,3}, {1587,64993,3},{1580,64993,3},{1575,64991,3},{1570,64991,3},{1565,64989,3}, {1560,64988,3},{1555,64988,3},{1550,64986,3},{1550,64983,3},{1550,64978,3}, {1550,64973,3},{1550,64968,3},{1550,64961,3},{1550,64956,3},{1550,64951,3}, {1550,64946,3},{1550,64939,3},{1550,64934,3},{1550,64928,3},{1550,64923,3}, {1550,64918,3},{1550,64913,3},{1550,64908,3},{1550,64901,3},{1550,64896,3}, {1550,64889,3},{1550,64884,3},{1550,64879,3},{1550,64874,3},{1550,64868,3}, {1550,64863,3},{1550,64858,3},{1550,64853,3},{1550,64848,3},{1550,64841,3}, {1550,64836,3},{1550,64831,3},{1550,64826,3},{1550,64819,3},{1550,64814,3}, {1550,64809,3},{1550,64804,3},{1550,64798,3},{1550,64793,3},{1550,64788,3}, {1550,64783,3},{1550,64778,3},{1550,64771,3},{1550,64766,3},{1550,64761,3}, {1550,64756,3},{1550,64751,3},{1550,64744,3},{1550,64739,3},{1550,64734,3}, {1550,64728,3},{1550,64723,3},{1550,64718,3},{1550,64713,3},{1550,64706,3}, {1550,64701,3},{1550,64696,3},{1550,64691,3},{1550,64684,3},{1550,64679,3}, {1550,64674,3},{1550,64669,3},{1550,64663,3},{1550,64658,3},{1550,64653,3}, {1550,64648,3},{1550,64641,3},{1550,64636,3},{1550,64631,3},{1550,64626,3}, {1550,64619,3},{1550,64613,3},{1550,64608,3},{1552,64603,3},{1553,64603,3}, {1558,64603,3},{1563,64604,3},{1568,64604,3},{1570,64603,3},{1565,64596,3}, {1560,64591,3},{1555,64593,3},{1550,64594,3},{1545,64594,3},{1545,64593,3}, {1543,64588,3},{1543,64583,3},{1543,64578,3},{1543,64571,3},{1542,64564,3}, {1540,64561,3},{1538,64556,3},{1538,64549,3},{1538,64544,3},{1538,64539,3}, {1537,64534,3},{1537,64529,3},{1538,64523,3},{1542,64519,3},{1542,64513,3}, {1543,64508,3},{1543,64503,3},{1543,64496,3},{1543,64491,3},{1543,64486,3}, {1543,64481,3},{1543,64474,3},{1543,64469,3},{1543,64464,3},{1535,64463,3}, {1528,64453,3},{1522,64453,3},{1520,64449,3},{1510,64446,3},{1520,64439,3}, {1525,64436,3},{1545,64408,3},{1563,64394,3},{1565,64386,3},{1562,64386,3}, {1560,64386,3},{1558,64379,3},{1555,64376,3},{1552,64371,3},{1555,64364,3}, {1550,64364,3},{1547,64361,3},{1535,64359,3},{1532,64356,3},{1523,64354,3}, {1520,64353,3},{1513,64354,3},{1510,64351,3},{1508,64353,3},{1505,64351,3}, {1505,64354,3},{1503,64356,3},{1493,64354,3},{1490,64356,3},{1490,64353,3}, {1487,64353,3},{1483,64349,3},{1482,64341,3},{1477,64339,3},{1477,64331,3}, {1472,64331,3},{1477,64324,3},{1478,64321,3},{1477,64311,3},{1483,64303,3}, {1485,64298,3},{1490,64291,3},{1495,64291,3},{1502,64288,3},{1505,64281,3}, {1508,64274,3},{1510,64271,3},{1508,64266,3},{1515,64258,3},{1520,64258,3}, {1522,64251,3},{1527,64246,3},{1527,64251,3},{1530,64253,3},{1533,64249,3}, {1537,64243,3},{1543,64243,3},{1545,64241,3},{1550,64239,3},{1548,64229,3}, {1552,64226,3},{1558,64226,3},{1562,64219,3},{1562,64213,3},{1567,64211,3}, {1570,64214,3},{1577,64208,3},{1578,64208,3},{1580,64209,3},{1583,64206,3}, {1588,64206,3},{1590,64203,3},{1593,64204,3},{1598,64199,3},{1603,64198,3}, {1607,64196,3},{1608,64193,3},{1610,64189,3},{1608,64188,3},{1608,64186,3}, {1608,64184,3},{1612,64184,3},{1613,64188,3},{1615,64186,3},{1613,64184,3}, {1613,64178,3},{1610,64168,3},{1613,64164,3},{1617,64166,3},{1618,64164,3}, {1615,64161,3},{1612,64151,3},{1615,64149,3},{1620,64149,3},{1623,64139,3}, {1627,64139,3},{1630,64138,3},{1633,64139,3},{1635,64136,3},{1635,64133,3}, {1655,64114,3},{1653,64109,3},{1658,64108,3},{1658,64103,3},{1663,64103,3}, {1663,64101,3},{1663,64098,3},{1665,64093,3},{1663,64091,3},{1663,64086,3}, {1663,64081,3},{1663,64073,3},{1665,64071,3},{1663,64064,3},{1662,64063,3}, {1665,64059,3},{1663,64058,3},{1665,64054,3},{1663,64051,3},{1665,64048,3}, {1663,64046,3},{1665,64041,3},{1668,64039,3},{1670,64038,3},{1663,64034,3}, {1663,64031,3},{1667,64028,3},{1667,64026,3},{1665,64024,3},{1662,64028,3}, {1658,64024,3},{1657,64004,3},{1655,63996,3},{1658,63991,3},{1657,63986,3}, {1652,63983,3},{1652,63974,3},{1650,63973,3},{1648,63968,3},{1650,63951,3}, {1652,63946,3},{1648,63939,3},{1650,63936,3},{1648,63931,3},{1652,63926,3}, {1655,63926,3},{1655,63924,3},{1655,63921,3},{1652,63918,3},{1652,63908,3}, {1645,63904,3},{1623,63898,3},{1618,63889,3},{1610,63889,3},{1605,63888,3}, {1610,63886,3},{1603,63884,3},{2077,63831,131},{2085,63826,3},{2090,63828,3}, {2095,63826,3},{2098,63829,3},{2110,63829,3},{2117,63833,3},{2120,63831,3}, {2127,63833,3},{2133,63833,3},{2143,63834,3},{2157,63839,3},{2167,63839,3}, {2173,63841,3},{2177,63839,3},{2182,63839,3},{2195,63844,3},{2202,63849,3}, {2208,63851,3},{2222,63861,3},{2222,63863,3},{2227,63864,3},{2230,63869,3}, {2227,63874,3},{2233,63888,3},{2252,63893,3},{2257,63901,3},{2277,63903,3}, {2285,63908,3},{2287,63904,3},{2288,63906,3},{2290,63908,3},{2290,63911,3}, {2293,63916,3},{2300,63921,3},{2307,63921,3},{2308,63918,3},{2307,63914,3}, {2308,63914,3},{2312,63916,3},{2318,63923,3},{2332,63928,3},{2342,63936,3}, {2352,63939,3},{2358,63944,3},{2363,63948,3},{2368,63953,3},{2373,63954,3}, {2378,63959,3},{2387,63959,3},{2392,63958,3},{2385,63956,3},{2383,63951,3}, {2380,63948,3},{2368,63941,3},{2365,63936,3},{2367,63936,3},{2370,63939,3}, {2382,63944,3},{2388,63951,3},{2397,63961,3},{2402,63974,3},{2415,63984,3}, {2418,63989,3},{2422,63991,3},{2433,64006,3},{2443,64013,3},{2448,64018,3}, {2453,64033,3},{2463,64038,3},{2468,64046,3},{2478,64048,3},{2492,64053,3}, {2520,64051,3},{2532,64053,3},{2543,64058,3},{2552,64064,3},{2558,64068,3}, {2577,64073,3},{2593,64084,3},{2602,64088,3},{2617,64088,3},{2627,64094,3}, {2630,64108,3},{2637,64113,3},{2642,64118,3},{2645,64134,3},{2663,64164,3}, {2673,64179,3},{2690,64188,3},{2710,64194,3},{2718,64196,3},{2732,64206,3}, {2745,64211,3},{2767,64219,3},{2767,64224,3},{2767,64231,3},{2767,64238,3}, {2767,64244,3},{2767,64253,3},{2767,64259,3},{2767,64266,3},{2767,64273,3}, {2767,64279,3},{2767,64286,3},{2767,64293,3},{2767,64299,3},{2767,64306,3}, {2767,64313,3},{2767,64319,3},{2767,64326,3},{2767,64333,3},{2767,64339,3}, {2767,64346,3},{2767,64353,3},{2767,64359,3},{2767,64366,3},{2767,64373,3}, {2767,64379,3},{2767,64386,3},{2767,64393,3},{2767,64399,3},{2767,64406,3}, {2767,64413,3},{2767,64419,3},{2767,64426,3},{2767,64433,3},{2767,64439,3}, {2767,64446,3},{2767,64453,3},{2767,64459,3},{2767,64466,3},{2767,64473,3}, {2767,64479,3},{2767,64486,3},{2767,64493,3},{2767,64499,3},{2767,64506,3}, {2767,64513,3},{2767,64519,3},{2767,64526,3},{2767,64533,3},{2767,64539,3}, {2767,64546,3},{2767,64553,3},{2767,64559,3},{2767,64566,3},{2767,64573,3}, {2767,64579,3},{2767,64586,3},{2767,64593,3},{2767,64599,3},{2767,64606,3}, {2767,64613,3},{2767,64619,3},{2767,64626,3},{2767,64633,3},{2767,64639,3}, {2767,64646,3},{2767,64653,3},{2767,64659,3},{2767,64666,3},{2767,64669,3}, {2728,64669,3},{2720,64669,3},{2713,64669,3},{2707,64669,3},{2702,64669,3}, {2697,64669,3},{2690,64669,3},{2683,64669,3},{2678,64669,3},{2673,64669,3}, {2667,64669,3},{2660,64669,3},{2655,64669,3},{2650,64669,3},{2643,64669,3}, {2637,64669,3},{2630,64669,3},{2623,64669,3},{2617,64669,3},{2612,64669,3}, {2607,64669,3},{2600,64669,3},{2600,64663,3},{2600,64656,3},{2600,64649,3}, {2600,64643,3},{2600,64636,3},{2600,64629,3},{2600,64623,3},{2600,64616,3}, {2600,64609,3},{2600,64603,3},{2600,64596,3},{2600,64589,3},{2600,64583,3}, {2600,64576,3},{2600,64569,3},{2600,64563,3},{2600,64556,3},{2600,64549,3}, {2600,64543,3},{2600,64536,3},{2600,64529,3},{2600,64523,3},{2600,64516,3}, {2600,64509,3},{2600,64503,3},{2600,64496,3},{2600,64489,3},{2600,64483,3}, {2600,64476,3},{2600,64469,3},{2600,64463,3},{2600,64456,3},{2600,64449,3}, {2600,64443,3},{2600,64436,3},{2600,64429,3},{2600,64423,3},{2600,64416,3}, {2600,64409,3},{2600,64403,3},{2600,64396,3},{2600,64389,3},{2600,64383,3}, {2600,64376,3},{2600,64369,3},{2600,64363,3},{2600,64356,3},{2600,64349,3}, {2600,64343,3},{2600,64336,3},{2597,64336,3},{2590,64336,3},{2583,64336,3}, {2577,64336,3},{2570,64336,3},{2563,64336,3},{2557,64336,3},{2550,64336,3}, {2543,64336,3},{2537,64336,3},{2530,64336,3},{2523,64336,3},{2517,64336,3}, {2510,64336,3},{2503,64336,3},{2497,64336,3},{2490,64336,3},{2483,64336,3}, {2477,64336,3},{2470,64336,3},{2463,64336,3},{2457,64336,3},{2450,64336,3}, {2443,64336,3},{2437,64336,3},{2430,64336,3},{2423,64336,3},{2417,64336,3}, {2410,64336,3},{2403,64336,3},{2397,64336,3},{2390,64336,3},{2383,64336,3}, {2377,64336,3},{2372,64336,3},{2365,64336,3},{2358,64336,3},{2353,64336,3}, {2345,64336,3},{2345,64334,3},{2343,64328,3},{2342,64323,3},{2340,64316,3}, {2337,64311,3},{2335,64306,3},{2332,64299,3},{2332,64294,3},{2330,64288,3}, {2330,64283,3},{2327,64276,3},{2323,64271,3},{2320,64264,3},{2317,64259,3}, {2313,64254,3},{2310,64249,3},{2307,64243,3},{2303,64238,3},{2300,64234,3}, {2295,64229,3},{2290,64226,3},{2285,64224,3},{2280,64223,3},{2273,64221,3}, {2268,64223,3},{2263,64224,3},{2258,64226,3},{2253,64228,3},{2248,64228,3}, {2243,64229,3},{2237,64229,3},{2232,64229,3},{2227,64229,3},{2222,64229,3}, {2217,64231,3},{2212,64231,3},{2207,64231,3},{2200,64231,3},{2195,64231,3}, {2190,64233,3},{2185,64233,3},{2180,64233,3},{2175,64233,3},{2170,64234,3}, {2165,64234,3},{2160,64234,3},{2155,64234,3},{2148,64234,3},{2143,64236,3}, {2138,64236,3},{2133,64236,3},{2133,64231,3},{2133,64226,3},{2133,64221,3}, {2133,64214,3},{2133,64209,3},{2133,64204,3},{2133,64198,3},{2133,64193,3}, {2133,64188,3},{2133,64181,3},{2133,64176,3},{2133,64171,3},{2135,64166,3}, {2135,64159,3},{2135,64154,3},{2135,64149,3},{2135,64143,3},{2135,64138,3}, {2135,64131,3},{2135,64126,3},{2135,64121,3},{2135,64114,3},{2135,64109,3}, {2135,64103,3},{2133,64096,3},{2133,64091,3},{2133,64086,3},{2133,64079,3}, {2133,64074,3},{2133,64069,3},{2133,64064,3},{2133,64058,3},{2133,64053,3}, {2133,64048,3},{2133,64041,3},{2133,64036,3},{2133,64029,3},{2133,64024,3}, {2133,64019,3},{2133,64013,3},{2133,64008,3},{2133,64003,3},{2133,63998,3}, {2133,63991,3},{2133,63986,3},{2133,63981,3},{2133,63974,3},{2133,63969,3}, {2133,63964,3},{2133,63958,3},{2133,63953,3},{2133,63946,3},{2133,63941,3}, {2133,63934,3},{2133,63929,3},{2133,63923,3},{2133,63918,3},{2133,63913,3}, {2133,63906,3},{2133,63901,3},{2133,63896,3},{2133,63891,3},{2133,63884,3}, {2133,63879,3},{2133,63874,3},{2133,63868,3},{2133,63863,3},{2133,63858,3}, {2133,63851,3},{2133,63846,3},{2133,63841,3},{2128,63839,3},{2123,63839,3}, {2118,63838,3},{2112,63836,3},{2107,63834,3},{2102,63833,3},{2097,63831,3}, {2093,63829,3},{2087,63829,3},{2082,63829,3},{2077,63831,3},{692,64388,131}, {692,64389,3},{693,64391,3},{693,64394,3},{697,64393,3},{702,64398,3},{707,64398,3}, {710,64403,3},{715,64401,3},{717,64404,3},{722,64406,3},{725,64418,3},{728,64418,3}, {738,64426,3},{742,64431,3},{752,64443,3},{750,64444,3},{753,64449,3},{760,64456,3}, {773,64468,3},{777,64476,3},{803,64476,3},{805,64479,3},{812,64483,3},{813,64486,3}, {815,64501,3},{818,64506,3},{822,64506,3},{827,64504,3},{832,64508,3},{837,64506,3}, {843,64509,3},{848,64511,3},{850,64514,3},{848,64514,3},{852,64519,3},{853,64519,3}, {852,64528,3},{850,64531,3},{843,64529,3},{842,64531,3},{845,64538,3},{847,64539,3}, {850,64544,3},{850,64551,3},{848,64551,3},{852,64558,3},{853,64556,3},{857,64559,3}, {853,64563,3},{852,64561,3},{847,64564,3},{843,64566,3},{847,64566,3},{848,64566,3}, {850,64568,3},{847,64573,3},{843,64573,3},{840,64569,3},{838,64569,3},{840,64576,3}, {842,64578,3},{838,64581,3},{837,64584,3},{835,64588,3},{832,64584,3},{827,64586,3}, {825,64584,3},{822,64586,3},{818,64584,3},{817,64589,3},{807,64591,3},{803,64589,3}, {805,64593,3},{802,64596,3},{795,64593,3},{790,64593,3},{783,64594,3},{780,64599,3}, {775,64601,3},{765,64598,3},{762,64601,3},{757,64598,3},{748,64594,3},{743,64589,3}, {737,64588,3},{742,64594,3},{738,64596,3},{740,64599,3},{743,64599,3},{742,64603,3}, {743,64604,3},{742,64606,3},{738,64608,3},{738,64616,3},{732,64616,3},{728,64619,3}, {728,64623,3},{725,64623,3},{723,64626,3},{720,64624,3},{722,64629,3},{725,64634,3}, {725,64639,3},{727,64639,3},{727,64641,3},{728,64643,3},{727,64644,3},{725,64644,3}, {727,64651,3},{732,64653,3},{735,64651,3},{740,64654,3},{742,64658,3},{745,64658,3}, {747,64661,3},{752,64664,3},{755,64664,3},{757,64664,3},{763,64664,3},{770,64669,3}, {768,64681,3},{762,64681,3},{757,64689,3},{750,64694,3},{732,64698,3},{727,64701,3}, {723,64699,3},{718,64708,3},{708,64706,3},{700,64708,3},{697,64704,3},{690,64704,3}, {688,64703,3},{687,64706,3},{678,64703,3},{677,64703,3},{677,64701,3},{673,64701,3}, {672,64696,3},{667,64694,3},{665,64693,3},{665,64691,3},{663,64691,3},{663,64688,3}, {662,64688,3},{662,64686,3},{658,64684,3},{660,64683,3},{657,64683,3},{657,64679,3}, {655,64679,3},{653,64678,3},{653,64676,3},{650,64676,3},{648,64683,3},{643,64688,3}, {645,64689,3},{648,64691,3},{647,64694,3},{645,64698,3},{642,64696,3},{638,64698,3}, {635,64694,3},{635,64696,3},{637,64699,3},{637,64703,3},{633,64706,3},{635,64708,3}, {632,64708,3},{630,64716,3},{627,64719,3},{630,64734,3},{628,64738,3},{627,64744,3}, {628,64746,3},{625,64746,3},{620,64754,3},{613,64751,3},{608,64751,3},{608,64754,3}, {607,64758,3},{605,64758,3},{603,64759,3},{602,64758,3},{598,64758,3},{595,64761,3}, {590,64768,3},{593,64768,3},{595,64771,3},{592,64771,3},{588,64779,3},{587,64779,3}, {585,64781,3},{587,64784,3},{585,64784,3},{585,64786,3},{582,64788,3},{582,64789,3}, {587,64789,3},{587,64793,3},{583,64794,3},{572,64793,3},{565,64794,3},{557,64799,3}, {557,64796,3},{553,64798,3},{553,64796,3},{552,64798,3},{548,64794,3},{543,64794,3}, {543,64793,3},{537,64796,3},{537,64798,3},{532,64799,3},{527,64796,3},{527,64794,3}, {530,64794,3},{527,64789,3},{525,64789,3},{523,64789,3},{517,64789,3},{513,64788,3}, {510,64786,3},{510,64784,3},{508,64781,3},{507,64779,3},{497,64781,3},{495,64783,3}, {492,64783,3},{492,64779,3},{490,64778,3},{483,64778,3},{482,64778,3},{478,64779,3}, {475,64781,3},{467,64779,3},{460,64781,3},{457,64779,3},{450,64781,3},{445,64779,3}, {442,64781,3},{440,64779,3},{435,64784,3},{435,64776,3},{435,64773,3},{435,64764,3}, {438,64763,3},{442,64754,3},{445,64753,3},{450,64741,3},{455,64726,3},{457,64711,3}, {463,64703,3},{467,64693,3},{475,64683,3},{485,64658,3},{492,64651,3},{498,64634,3}, {500,64634,3},{502,64626,3},{505,64624,3},{513,64609,3},{515,64608,3},{517,64608,3}, {527,64594,3},{530,64591,3},{538,64586,3},{542,64583,3},{543,64576,3},{545,64578,3}, {548,64576,3},{560,64558,3},{570,64549,3},{585,64531,3},{590,64531,3},{592,64529,3}, {598,64519,3},{607,64511,3},{610,64499,3},{612,64499,3},{612,64503,3},{613,64503,3}, {613,64499,3},{617,64498,3},{620,64493,3},{620,64489,3},{615,64498,3},{613,64498,3}, {617,64491,3},{622,64471,3},{627,64459,3},{632,64454,3},{632,64456,3},{630,64459,3}, {633,64456,3},{637,64456,3},{640,64461,3},{638,64456,3},{643,64453,3},{650,64446,3}, {660,64428,3},{670,64399,3},{675,64398,3},{680,64399,3},{683,64398,3},{692,64388,3}, {903,64206,131},{907,64203,3},{908,64206,3},{913,64209,3},{917,64214,3}, {917,64218,3},{918,64221,3},{918,64211,3},{927,64213,3},{923,64209,3},{918,64208,3}, {917,64208,3},{918,64204,3},{920,64206,3},{925,64206,3},{927,64204,3},{932,64203,3}, {932,64204,3},{932,64206,3},{935,64206,3},{933,64201,3},{928,64199,3},{928,64196,3}, {928,64194,3},{932,64196,3},{937,64193,3},{943,64196,3},{942,64194,3},{942,64186,3}, {947,64184,3},{950,64184,3},{957,64188,3},{950,64183,3},{953,64178,3},{957,64178,3}, {950,64164,3},{957,64169,3},{963,64173,3},{973,64174,3},{978,64179,3},{978,64174,3}, {980,64174,3},{985,64171,3},{983,64169,3},{980,64171,3},{977,64171,3},{973,64166,3}, {977,64161,3},{978,64161,3},{983,64163,3},{990,64168,3},{995,64168,3},{992,64166,3}, {987,64163,3},{985,64159,3},{985,64158,3},{985,64153,3},{995,64143,3},{997,64141,3}, {997,64138,3},{1000,64134,3},{1000,64133,3},{1003,64129,3},{1008,64131,3}, {1010,64134,3},{1008,64136,3},{1012,64134,3},{1010,64131,3},{1012,64129,3}, {1020,64136,3},{1013,64128,3},{1007,64128,3},{1005,64123,3},{1008,64118,3}, {1010,64118,3},{1013,64119,3},{1015,64123,3},{1017,64123,3},{1018,64123,3}, {1017,64121,3},{1015,64118,3},{1012,64118,3},{1010,64114,3},{1015,64111,3}, {1018,64111,3},{1015,64109,3},{1020,64103,3},{1023,64098,3},{1023,64093,3}, {1020,64091,3},{1025,64089,3},{1030,64091,3},{1033,64089,3},{1035,64086,3}, {1042,64081,3},{1047,64081,3},{1050,64083,3},{1048,64079,3},{1048,64069,3}, {1057,64071,3},{1057,64073,3},{1060,64076,3},{1062,64073,3},{1070,64074,3}, {1070,64076,3},{1073,64079,3},{1077,64079,3},{1083,64086,3},{1088,64086,3}, {1088,64083,3},{1085,64084,3},{1080,64078,3},{1068,64073,3},{1063,64066,3}, {1067,64066,3},{1068,64068,3},{1070,64064,3},{1075,64066,3},{1082,64073,3}, {1082,64069,3},{1078,64068,3},{1077,64064,3},{1070,64061,3},{1075,64056,3}, {1078,64059,3},{1083,64063,3},{1087,64063,3},{1083,64059,3},{1083,64054,3}, {1088,64054,3},{1090,64056,3},{1090,64054,3},{1093,64054,3},{1097,64063,3}, {1100,64064,3},{1103,64069,3},{1105,64068,3},{1103,64066,3},{1102,64063,3}, {1100,64063,3},{1098,64061,3},{1098,64056,3},{1100,64056,3},{1102,64056,3}, {1097,64049,3},{1097,64048,3},{1103,64048,3},{1103,64044,3},{1100,64046,3}, {1097,64046,3},{1097,64044,3},{1098,64041,3},{1093,64044,3},{1092,64046,3}, {1087,64041,3},{1087,64038,3},{1083,64039,3},{1083,64038,3},{1080,64041,3}, {1077,64041,3},{1077,64038,3},{1078,64033,3},{1085,64028,3},{1090,64029,3}, {1092,64033,3},{1095,64034,3},{1102,64039,3},{1120,64051,3},{1135,64056,3}, {1152,64068,3},{1152,64084,3},{1162,64104,3},{1168,64108,3},{1167,64111,3}, {1167,64121,3},{1163,64126,3},{1165,64131,3},{1163,64138,3},{1167,64141,3}, {1168,64143,3},{1167,64148,3},{1168,64149,3},{1173,64151,3},{1173,64149,3}, {1175,64151,3},{1172,64154,3},{1172,64156,3},{1170,64156,3},{1168,64158,3}, {1172,64164,3},{1178,64166,3},{1190,64164,3},{1202,64166,3},{1205,64156,3}, {1210,64154,3},{1212,64149,3},{1215,64148,3},{1215,64139,3},{1220,64139,3}, {1223,64144,3},{1225,64151,3},{1228,64149,3},{1227,64153,3},{1228,64154,3}, {1230,64154,3},{1228,64156,3},{1225,64156,3},{1227,64161,3},{1225,64164,3}, {1228,64166,3},{1230,64168,3},{1232,64169,3},{1237,64169,3},{1240,64169,3}, {1243,64171,3},{1247,64171,3},{1257,64164,3},{1268,64164,3},{1267,64201,3}, {1263,64204,3},{1267,64209,3},{1265,64214,3},{1265,64216,3},{1263,64218,3}, {1263,64229,3},{1258,64233,3},{1253,64229,3},{1250,64229,3},{1247,64233,3}, {1247,64239,3},{1248,64241,3},{1253,64241,3},{1255,64246,3},{1250,64253,3}, {1248,64253,3},{1247,64259,3},{1243,64259,3},{1243,64273,3},{1238,64278,3}, {1237,64279,3},{1238,64284,3},{1240,64288,3},{1238,64291,3},{1237,64296,3}, {1230,64301,3},{1235,64311,3},{1235,64319,3},{1242,64326,3},{1238,64339,3}, {1243,64346,3},{1242,64346,3},{1238,64353,3},{1240,64356,3},{1238,64363,3}, {1240,64368,3},{1243,64373,3},{1242,64374,3},{1243,64388,3},{1240,64398,3}, {1247,64401,3},{1238,64398,3},{1238,64393,3},{1237,64393,3},{1228,64393,3}, {1223,64391,3},{1222,64388,3},{1217,64386,3},{1213,64391,3},{1210,64398,3}, {1205,64401,3},{1203,64404,3},{1200,64411,3},{1202,64418,3},{1203,64419,3}, {1205,64421,3},{1208,64421,3},{1208,64424,3},{1212,64426,3},{1213,64429,3}, {1222,64433,3},{1223,64441,3},{1220,64446,3},{1215,64449,3},{1212,64454,3}, {1210,64458,3},{1207,64458,3},{1203,64456,3},{1197,64461,3},{1192,64463,3}, {1190,64471,3},{1197,64474,3},{1197,64478,3},{1200,64479,3},{1203,64479,3}, {1205,64484,3},{1207,64484,3},{1208,64486,3},{1212,64484,3},{1212,64491,3}, {1217,64496,3},{1217,64501,3},{1218,64501,3},{1218,64503,3},{1222,64503,3}, {1218,64506,3},{1222,64508,3},{1222,64511,3},{1220,64513,3},{1220,64518,3}, {1218,64521,3},{1218,64526,3},{1215,64529,3},{1215,64533,3},{1210,64539,3}, {1210,64544,3},{1205,64549,3},{1205,64556,3},{1203,64561,3},{1203,64566,3}, {1208,64569,3},{1213,64569,3},{1217,64573,3},{1222,64586,3},{1225,64589,3}, {1227,64594,3},{1225,64601,3},{1227,64604,3},{1232,64604,3},{1232,64606,3}, {1237,64606,3},{1237,64604,3},{1240,64603,3},{1245,64596,3},{1248,64599,3}, {1248,64603,3},{1250,64604,3},{1248,64608,3},{1250,64611,3},{1248,64621,3}, {1243,64628,3},{1243,64631,3},{1240,64638,3},{1235,64641,3},{1227,64638,3}, {1222,64638,3},{1218,64639,3},{1220,64644,3},{1215,64648,3},{1208,64644,3}, {1205,64646,3},{1203,64649,3},{1203,64653,3},{1200,64656,3},{1197,64656,3}, {1193,64658,3},{1167,64653,3},{1163,64661,3},{1167,64666,3},{1155,64669,3}, {1150,64673,3},{1147,64678,3},{1150,64683,3},{1143,64684,3},{1142,64689,3}, {1137,64699,3},{1135,64694,3},{1133,64696,3},{1133,64701,3},{1128,64699,3}, {1130,64691,3},{1128,64688,3},{1127,64688,3},{1123,64688,3},{1120,64681,3}, {1115,64679,3},{1113,64676,3},{1108,64676,3},{1102,64669,3},{1097,64668,3}, {1097,64673,3},{1097,64681,3},{1100,64684,3},{1107,64688,3},{1105,64698,3}, {1105,64701,3},{1100,64708,3},{1095,64708,3},{1085,64708,3},{1083,64706,3}, {1077,64703,3},{1077,64704,3},{1075,64706,3},{1072,64706,3},{1068,64708,3}, {1062,64708,3},{1050,64709,3},{1047,64713,3},{1042,64714,3},{1042,64723,3}, {1043,64723,3},{1042,64724,3},{1035,64728,3},{1035,64736,3},{1033,64739,3}, {1023,64743,3},{1015,64739,3},{1008,64734,3},{1005,64724,3},{998,64721,3}, {998,64724,3},{997,64724,3},{995,64719,3},{992,64721,3},{990,64723,3},{988,64723,3}, {987,64721,3},{987,64726,3},{982,64726,3},{975,64723,3},{967,64724,3},{962,64721,3}, {950,64723,3},{940,64731,3},{938,64734,3},{938,64741,3},{942,64744,3},{942,64751,3}, {935,64748,3},{930,64748,3},{923,64744,3},{920,64744,3},{917,64748,3},{917,64753,3}, {912,64756,3},{910,64763,3},{908,64763,3},{907,64761,3},{907,64754,3},{903,64751,3}, {902,64744,3},{897,64743,3},{880,64741,3},{877,64744,3},{875,64758,3},{872,64761,3}, {867,64763,3},{862,64768,3},{857,64768,3},{850,64771,3},{843,64768,3},{838,64771,3}, {838,64761,3},{845,64758,3},{848,64754,3},{847,64753,3},{843,64753,3},{842,64751,3}, {843,64746,3},{850,64743,3},{850,64731,3},{850,64728,3},{848,64726,3},{848,64721,3}, {850,64721,3},{850,64716,3},{845,64711,3},{840,64714,3},{838,64714,3},{828,64713,3}, {825,64711,3},{823,64714,3},{820,64719,3},{817,64729,3},{818,64738,3},{810,64736,3}, {807,64739,3},{802,64741,3},{802,64738,3},{803,64736,3},{803,64731,3},{802,64731,3}, {797,64731,3},{787,64724,3},{785,64724,3},{780,64728,3},{777,64726,3},{772,64726,3}, {768,64723,3},{767,64721,3},{763,64718,3},{757,64718,3},{755,64714,3},{758,64708,3}, {760,64706,3},{758,64701,3},{758,64698,3},{760,64698,3},{762,64696,3},{757,64689,3}, {762,64681,3},{768,64681,3},{770,64669,3},{763,64664,3},{757,64664,3},{755,64664,3}, {752,64664,3},{747,64661,3},{745,64658,3},{742,64658,3},{740,64654,3},{735,64651,3}, {732,64653,3},{727,64651,3},{725,64644,3},{727,64644,3},{728,64643,3},{727,64641,3}, {727,64639,3},{725,64639,3},{725,64634,3},{722,64629,3},{720,64624,3},{723,64626,3}, {725,64623,3},{728,64623,3},{728,64619,3},{732,64616,3},{738,64616,3},{738,64608,3}, {742,64606,3},{743,64604,3},{742,64603,3},{743,64599,3},{740,64599,3},{738,64596,3}, {742,64594,3},{737,64588,3},{743,64589,3},{748,64594,3},{757,64598,3},{762,64601,3}, {765,64598,3},{775,64601,3},{780,64599,3},{783,64594,3},{790,64593,3},{795,64593,3}, {802,64596,3},{805,64593,3},{803,64589,3},{807,64591,3},{817,64589,3},{818,64584,3}, {822,64586,3},{825,64584,3},{827,64586,3},{832,64584,3},{835,64588,3},{837,64584,3}, {838,64581,3},{842,64578,3},{840,64576,3},{838,64569,3},{840,64569,3},{843,64573,3}, {847,64573,3},{850,64568,3},{848,64566,3},{847,64566,3},{843,64566,3},{847,64564,3}, {852,64561,3},{853,64563,3},{857,64559,3},{853,64556,3},{852,64558,3},{848,64551,3}, {850,64551,3},{850,64544,3},{847,64539,3},{845,64538,3},{842,64531,3},{843,64529,3}, {850,64531,3},{852,64528,3},{853,64519,3},{852,64519,3},{848,64514,3},{850,64514,3}, {848,64511,3},{848,64508,3},{852,64504,3},{848,64496,3},{840,64493,3},{833,64484,3}, {830,64479,3},{833,64478,3},{833,64468,3},{827,64466,3},{828,64464,3},{832,64464,3}, {835,64466,3},{840,64471,3},{848,64473,3},{848,64474,3},{855,64474,3},{855,64476,3}, {860,64478,3},{862,64486,3},{865,64489,3},{868,64489,3},{872,64486,3},{873,64484,3}, {880,64479,3},{882,64478,3},{895,64476,3},{907,64479,3},{908,64463,3},{918,64463,3}, {923,64469,3},{927,64469,3},{930,64471,3},{938,64461,3},{940,64454,3},{942,64456,3}, {945,64453,3},{952,64453,3},{953,64449,3},{958,64449,3},{960,64444,3},{965,64443,3}, {967,64439,3},{973,64438,3},{978,64434,3},{985,64426,3},{987,64421,3},{997,64419,3}, {1000,64414,3},{1000,64409,3},{1000,64404,3},{1000,64399,3},{1000,64394,3}, {1000,64388,3},{1000,64383,3},{1000,64376,3},{1000,64371,3},{1000,64366,3}, {1000,64361,3},{1000,64356,3},{1000,64351,3},{1000,64346,3},{993,64346,3}, {988,64324,3},{990,64314,3},{993,64313,3},{988,64291,3},{987,64289,3},{987,64286,3}, {982,64288,3},{977,64284,3},{975,64286,3},{973,64284,3},{970,64284,3},{970,64279,3}, {967,64279,3},{965,64278,3},{960,64278,3},{960,64274,3},{955,64273,3},{955,64271,3}, {952,64271,3},{942,64268,3},{942,64266,3},{940,64266,3},{940,64261,3},{935,64261,3}, {935,64259,3},{930,64256,3},{928,64251,3},{928,64248,3},{927,64246,3},{928,64244,3}, {928,64241,3},{922,64239,3},{918,64243,3},{917,64238,3},{910,64236,3},{908,64229,3}, {905,64228,3},{905,64223,3},{908,64218,3},{907,64209,3},{903,64206,3},{692,64388,131}, {695,64379,3},{697,64378,3},{698,64379,3},{698,64374,3},{702,64371,3},{707,64366,3}, {710,64361,3},{712,64356,3},{715,64353,3},{717,64348,3},{718,64343,3},{720,64336,3}, {722,64331,3},{723,64326,3},{725,64321,3},{728,64316,3},{730,64311,3},{732,64306,3}, {733,64303,3},{735,64296,3},{737,64291,3},{738,64286,3},{740,64288,3},{742,64293,3}, {738,64299,3},{743,64294,3},{743,64289,3},{745,64286,3},{753,64293,3},{753,64303,3}, {753,64306,3},{755,64309,3},{755,64313,3},{757,64313,3},{757,64316,3},{760,64318,3}, {762,64311,3},{758,64309,3},{757,64306,3},{755,64289,3},{762,64286,3},{765,64288,3}, {763,64284,3},{762,64284,3},{765,64283,3},{770,64284,3},{772,64289,3},{777,64289,3}, {777,64291,3},{778,64289,3},{778,64288,3},{773,64286,3},{770,64281,3},{768,64276,3}, {770,64274,3},{770,64266,3},{775,64258,3},{780,64256,3},{782,64259,3},{782,64258,3}, {780,64254,3},{780,64253,3},{782,64249,3},{787,64246,3},{787,64244,3},{790,64239,3}, {792,64244,3},{793,64248,3},{792,64254,3},{797,64248,3},{802,64246,3},{805,64246,3}, {810,64248,3},{810,64244,3},{815,64243,3},{817,64241,3},{818,64238,3},{825,64238,3}, {823,64236,3},{823,64229,3},{817,64219,3},{822,64221,3},{827,64219,3},{833,64216,3}, {835,64214,3},{842,64209,3},{842,64208,3},{845,64209,3},{850,64208,3},{850,64216,3}, {842,64223,3},{840,64226,3},{837,64229,3},{837,64231,3},{838,64233,3},{840,64229,3}, {842,64231,3},{842,64226,3},{843,64223,3},{845,64223,3},{848,64226,3},{850,64231,3}, {852,64231,3},{852,64233,3},{855,64234,3},{855,64246,3},{857,64249,3},{858,64243,3}, {858,64244,3},{868,64248,3},{860,64243,3},{860,64234,3},{858,64231,3},{860,64228,3}, {862,64231,3},{865,64233,3},{867,64231,3},{862,64229,3},{862,64228,3},{865,64221,3}, {867,64221,3},{865,64219,3},{863,64223,3},{862,64223,3},{860,64226,3},{858,64226,3}, {857,64223,3},{852,64223,3},{852,64221,3},{867,64213,3},{882,64213,3},{885,64214,3}, {887,64216,3},{883,64219,3},{885,64238,3},{887,64234,3},{887,64223,3},{888,64219,3}, {892,64224,3},{893,64229,3},{893,64228,3},{892,64216,3},{897,64213,3},{895,64208,3}, {903,64206,3},{907,64209,3},{908,64218,3},{905,64223,3},{905,64228,3},{908,64229,3}, {910,64236,3},{917,64238,3},{918,64243,3},{922,64239,3},{928,64241,3},{928,64244,3}, {927,64246,3},{928,64248,3},{928,64251,3},{930,64256,3},{935,64259,3},{935,64261,3}, {940,64261,3},{940,64266,3},{942,64266,3},{942,64268,3},{952,64271,3},{955,64271,3}, {955,64273,3},{960,64274,3},{960,64278,3},{965,64278,3},{967,64279,3},{970,64279,3}, {970,64284,3},{973,64284,3},{975,64286,3},{977,64284,3},{982,64288,3},{987,64286,3}, {987,64289,3},{988,64291,3},{993,64313,3},{990,64314,3},{988,64324,3},{993,64346,3}, {1000,64346,3},{1000,64351,3},{1000,64356,3},{1000,64361,3},{1000,64366,3}, {1000,64371,3},{1000,64376,3},{1000,64383,3},{1000,64388,3},{1000,64394,3}, {1000,64399,3},{1000,64404,3},{1000,64409,3},{1000,64414,3},{997,64419,3}, {987,64421,3},{985,64426,3},{978,64434,3},{973,64438,3},{967,64439,3},{965,64443,3}, {960,64444,3},{958,64449,3},{953,64449,3},{952,64453,3},{945,64453,3},{942,64456,3}, {940,64454,3},{938,64461,3},{930,64471,3},{927,64469,3},{923,64469,3},{918,64463,3}, {908,64463,3},{907,64479,3},{895,64476,3},{882,64478,3},{880,64479,3},{873,64484,3}, {872,64486,3},{868,64489,3},{865,64489,3},{862,64486,3},{860,64478,3},{855,64476,3}, {855,64474,3},{848,64474,3},{848,64473,3},{840,64471,3},{835,64466,3},{832,64464,3}, {828,64464,3},{827,64466,3},{833,64468,3},{833,64478,3},{830,64479,3},{833,64484,3}, {840,64493,3},{848,64496,3},{852,64504,3},{848,64508,3},{848,64511,3},{843,64509,3}, {837,64506,3},{832,64508,3},{827,64504,3},{822,64506,3},{818,64506,3},{815,64501,3}, {813,64486,3},{812,64483,3},{805,64479,3},{803,64476,3},{777,64476,3},{773,64468,3}, {760,64456,3},{753,64449,3},{750,64444,3},{752,64443,3},{742,64431,3},{738,64426,3}, {728,64418,3},{725,64418,3},{722,64406,3},{717,64404,3},{715,64401,3},{710,64403,3}, {707,64398,3},{702,64398,3},{697,64393,3},{693,64394,3},{693,64391,3},{692,64389,3}, {692,64388,3},{1232,63864,131},{1237,63861,3},{1243,63856,3},{1248,63856,3}, {1253,63861,3},{1255,63866,3},{1255,63868,3},{1263,63878,3},{1262,63881,3}, {1257,63881,3},{1255,63883,3},{1258,63883,3},{1260,63886,3},{1255,63899,3}, {1260,63906,3},{1258,63911,3},{1260,63914,3},{1258,63916,3},{1263,63934,3}, {1258,63943,3},{1258,63949,3},{1255,63953,3},{1255,63954,3},{1258,63958,3}, {1258,63963,3},{1258,63968,3},{1253,63968,3},{1253,63973,3},{1257,63979,3}, {1260,63981,3},{1263,63986,3},{1272,63983,3},{1278,63983,3},{1278,63989,3}, {1282,63991,3},{1280,63996,3},{1283,63998,3},{1282,63994,3},{1283,63991,3}, {1280,63986,3},{1280,63984,3},{1282,63984,3},{1280,63983,3},{1273,63979,3}, {1265,63983,3},{1257,63973,3},{1255,63971,3},{1257,63969,3},{1260,63969,3}, {1262,63966,3},{1260,63963,3},{1262,63959,3},{1262,63956,3},{1260,63954,3}, {1258,63953,3},{1262,63951,3},{1260,63944,3},{1268,63934,3},{1273,63934,3}, {1268,63931,3},{1267,63931,3},{1263,63929,3},{1263,63923,3},{1262,63921,3}, {1262,63913,3},{1260,63908,3},{1262,63904,3},{1260,63901,3},{1257,63899,3}, {1257,63898,3},{1258,63894,3},{1263,63888,3},{1265,63888,3},{1267,63889,3}, {1267,63888,3},{1270,63886,3},{1267,63886,3},{1262,63884,3},{1265,63881,3}, {1267,63879,3},{1268,63879,3},{1267,63876,3},{1267,63873,3},{1270,63873,3}, {1273,63876,3},{1278,63876,3},{1273,63874,3},{1272,63871,3},{1263,63871,3}, {1257,63861,3},{1258,63858,3},{1268,63858,3},{1272,63861,3},{1273,63866,3}, {1275,63863,3},{1272,63859,3},{1272,63856,3},{1275,63858,3},{1278,63859,3}, {1282,63858,3},{1278,63856,3},{1282,63856,3},{1288,63859,3},{1303,63861,3}, {1315,63866,3},{1317,63869,3},{1317,63874,3},{1317,63879,3},{1317,63884,3}, {1317,63889,3},{1317,63896,3},{1317,63901,3},{1317,63906,3},{1317,63911,3}, {1317,63916,3},{1317,63923,3},{1317,63928,3},{1317,63933,3},{1317,63939,3}, {1317,63944,3},{1317,63949,3},{1317,63954,3},{1320,63954,3},{1325,63954,3}, {1330,63956,3},{1335,63956,3},{1335,63964,3},{1337,63968,3},{1337,63979,3}, {1340,63986,3},{1338,63994,3},{1337,64003,3},{1338,64008,3},{1343,64014,3}, {1353,64016,3},{1358,64021,3},{1360,64024,3},{1353,64031,3},{1348,64039,3}, {1345,64046,3},{1345,64051,3},{1343,64054,3},{1343,64059,3},{1338,64061,3}, {1337,64064,3},{1335,64071,3},{1337,64079,3},{1332,64084,3},{1330,64091,3}, {1327,64093,3},{1325,64098,3},{1325,64109,3},{1323,64114,3},{1325,64123,3}, {1328,64124,3},{1330,64136,3},{1332,64141,3},{1332,64149,3},{1338,64156,3}, {1343,64156,3},{1348,64153,3},{1352,64149,3},{1357,64146,3},{1358,64139,3}, {1358,64138,3},{1357,64134,3},{1357,64128,3},{1353,64124,3},{1352,64116,3}, {1348,64113,3},{1345,64103,3},{1353,64089,3},{1362,64086,3},{1365,64083,3}, {1367,64073,3},{1362,64064,3},{1365,64058,3},{1373,64054,3},{1378,64049,3}, {1380,64048,3},{1380,64041,3},{1380,64038,3},{1383,64029,3},{1378,64018,3}, {1375,64011,3},{1378,64008,3},{1380,64004,3},{1378,63999,3},{1370,63991,3}, {1358,63988,3},{1358,63983,3},{1358,63976,3},{1358,63971,3},{1358,63966,3}, {1358,63961,3},{1360,63956,3},{1360,63949,3},{1360,63944,3},{1360,63939,3}, {1360,63933,3},{1360,63928,3},{1360,63923,3},{1360,63918,3},{1360,63911,3}, {1360,63906,3},{1358,63901,3},{1358,63896,3},{1358,63891,3},{1358,63886,3}, {1358,63879,3},{1363,63878,3},{1365,63879,3},{1368,63884,3},{1370,63884,3}, {1373,63886,3},{1375,63884,3},{1368,63881,3},{1365,63876,3},{1370,63871,3}, {1375,63873,3},{1383,63879,3},{1382,63881,3},{1383,63881,3},{1385,63884,3}, {1382,63884,3},{1380,63888,3},{1383,63886,3},{1387,63886,3},{1388,63884,3}, {1395,63888,3},{1400,63888,3},{1387,63881,3},{1383,63871,3},{1380,63869,3}, {1377,63866,3},{1385,63861,3},{1387,63863,3},{1395,63861,3},{1398,63864,3}, {1400,63868,3},{1398,63873,3},{1395,63873,3},{1398,63874,3},{1400,63876,3}, {1398,63879,3},{1402,63879,3},{1403,63881,3},{1403,63879,3},{1403,63878,3}, {1407,63881,3},{1412,63886,3},{1413,63891,3},{1415,63893,3},{1415,63896,3}, {1417,63899,3},{1415,63894,3},{1417,63891,3},{1420,63891,3},{1418,63888,3}, {1415,63889,3},{1415,63884,3},{1407,63879,3},{1405,63876,3},{1400,63873,3}, {1400,63869,3},{1402,63864,3},{1403,63866,3},{1405,63866,3},{1407,63869,3}, {1410,63869,3},{1407,63868,3},{1407,63864,3},{1403,63864,3},{1402,63863,3}, {1400,63863,3},{1397,63859,3},{1385,63859,3},{1383,63858,3},{1395,63858,3}, {1402,63858,3},{1413,63854,3},{1417,63849,3},{1425,63846,3},{1430,63841,3}, {1438,63841,3},{1442,63838,3},{1445,63829,3},{1465,63818,3},{1468,63813,3}, {1475,63798,3},{1472,63793,3},{1470,63794,3},{1468,63793,3},{1467,63793,3}, {1465,63791,3},{1475,63783,3},{1480,63798,3},{1490,63819,3},{1522,63848,3}, {1540,63858,3},{1555,63869,3},{1577,63883,3},{1582,63881,3},{1590,63883,3}, {1603,63884,3},{1610,63886,3},{1605,63888,3},{1610,63889,3},{1618,63889,3}, {1623,63898,3},{1645,63904,3},{1652,63908,3},{1652,63918,3},{1655,63921,3}, {1655,63924,3},{1655,63926,3},{1652,63926,3},{1648,63931,3},{1650,63936,3}, {1648,63939,3},{1652,63946,3},{1650,63951,3},{1648,63968,3},{1650,63973,3}, {1652,63974,3},{1652,63983,3},{1657,63986,3},{1658,63991,3},{1655,63996,3}, {1657,64004,3},{1658,64024,3},{1662,64028,3},{1665,64024,3},{1667,64026,3}, {1667,64028,3},{1663,64031,3},{1663,64034,3},{1670,64038,3},{1668,64039,3}, {1665,64041,3},{1663,64046,3},{1665,64048,3},{1663,64051,3},{1665,64054,3}, {1663,64058,3},{1665,64059,3},{1662,64063,3},{1663,64064,3},{1665,64071,3}, {1663,64073,3},{1663,64081,3},{1663,64086,3},{1663,64091,3},{1665,64093,3}, {1663,64098,3},{1663,64101,3},{1663,64103,3},{1658,64103,3},{1658,64108,3}, {1653,64109,3},{1655,64114,3},{1635,64133,3},{1635,64136,3},{1633,64139,3}, {1630,64138,3},{1627,64139,3},{1623,64139,3},{1620,64149,3},{1615,64149,3}, {1612,64151,3},{1615,64161,3},{1618,64164,3},{1617,64166,3},{1613,64164,3}, {1610,64168,3},{1613,64178,3},{1613,64184,3},{1615,64186,3},{1613,64188,3}, {1612,64184,3},{1608,64184,3},{1608,64186,3},{1608,64188,3},{1610,64189,3}, {1608,64193,3},{1607,64196,3},{1603,64198,3},{1598,64199,3},{1593,64204,3}, {1590,64203,3},{1588,64206,3},{1583,64206,3},{1580,64209,3},{1578,64208,3}, {1577,64208,3},{1570,64214,3},{1567,64211,3},{1562,64213,3},{1562,64219,3}, {1558,64226,3},{1552,64226,3},{1548,64229,3},{1550,64239,3},{1545,64241,3}, {1543,64243,3},{1537,64243,3},{1533,64249,3},{1530,64253,3},{1527,64251,3}, {1527,64246,3},{1522,64251,3},{1520,64258,3},{1515,64258,3},{1508,64266,3}, {1510,64271,3},{1508,64274,3},{1505,64281,3},{1502,64288,3},{1495,64291,3}, {1490,64291,3},{1485,64298,3},{1483,64303,3},{1477,64311,3},{1478,64321,3}, {1477,64324,3},{1472,64331,3},{1475,64311,3},{1473,64314,3},{1470,64314,3}, {1470,64319,3},{1467,64318,3},{1465,64321,3},{1462,64321,3},{1460,64318,3}, {1455,64318,3},{1455,64314,3},{1450,64313,3},{1445,64316,3},{1440,64316,3}, {1437,64326,3},{1433,64326,3},{1432,64324,3},{1428,64328,3},{1428,64333,3}, {1417,64338,3},{1408,64338,3},{1407,64336,3},{1402,64334,3},{1397,64336,3}, {1390,64341,3},{1383,64341,3},{1377,64339,3},{1370,64328,3},{1365,64333,3}, {1362,64333,3},{1353,64339,3},{1352,64343,3},{1348,64346,3},{1347,64349,3}, {1343,64349,3},{1338,64348,3},{1335,64353,3},{1330,64354,3},{1335,64359,3}, {1342,64363,3},{1342,64366,3},{1338,64368,3},{1340,64373,3},{1337,64373,3}, {1337,64376,3},{1332,64378,3},{1325,64383,3},{1322,64381,3},{1318,64384,3}, {1315,64383,3},{1312,64384,3},{1308,64393,3},{1305,64391,3},{1302,64396,3}, {1300,64394,3},{1297,64394,3},{1297,64396,3},{1300,64398,3},{1298,64398,3}, {1293,64399,3},{1292,64394,3},{1290,64396,3},{1283,64394,3},{1283,64396,3}, {1278,64398,3},{1277,64396,3},{1273,64398,3},{1272,64393,3},{1270,64393,3}, {1268,64391,3},{1267,64391,3},{1265,64394,3},{1262,64393,3},{1258,64394,3}, {1257,64394,3},{1255,64391,3},{1252,64394,3},{1253,64394,3},{1253,64396,3}, {1248,64398,3},{1250,64399,3},{1247,64401,3},{1240,64398,3},{1243,64388,3}, {1242,64374,3},{1243,64373,3},{1240,64368,3},{1238,64363,3},{1240,64356,3}, {1238,64353,3},{1242,64346,3},{1243,64346,3},{1238,64339,3},{1242,64326,3}, {1235,64319,3},{1235,64311,3},{1230,64301,3},{1237,64296,3},{1238,64291,3}, {1240,64288,3},{1238,64284,3},{1237,64279,3},{1238,64278,3},{1243,64273,3}, {1243,64259,3},{1247,64259,3},{1248,64253,3},{1250,64253,3},{1255,64246,3}, {1253,64241,3},{1248,64241,3},{1247,64239,3},{1247,64233,3},{1250,64229,3}, {1253,64229,3},{1258,64233,3},{1263,64229,3},{1263,64218,3},{1265,64216,3}, {1265,64214,3},{1267,64209,3},{1263,64204,3},{1267,64201,3},{1268,64164,3}, {1268,64161,3},{1268,64156,3},{1268,64151,3},{1268,64144,3},{1268,64139,3}, {1268,64134,3},{1268,64129,3},{1268,64123,3},{1268,64118,3},{1268,64113,3}, {1268,64108,3},{1268,64103,3},{1268,64096,3},{1268,64091,3},{1268,64086,3}, {1268,64081,3},{1268,64076,3},{1268,64071,3},{1268,64064,3},{1268,64059,3}, {1268,64054,3},{1268,64049,3},{1268,64044,3},{1268,64038,3},{1268,64033,3}, {1268,64028,3},{1268,64021,3},{1268,64014,3},{1267,64013,3},{1263,64008,3}, {1262,64001,3},{1255,63996,3},{1243,63968,3},{1245,63948,3},{1243,63939,3}, {1247,63928,3},{1245,63919,3},{1247,63914,3},{1243,63908,3},{1235,63896,3}, {1235,63884,3},{1235,63881,3},{1235,63868,3},{1232,63864,3},{1303,63861,131}, {1307,63861,3},{1307,63858,3},{1312,63859,3},{1317,63856,3},{1323,63856,3}, {1327,63854,3},{1333,63853,3},{1335,63854,3},{1337,63854,3},{1342,63861,3}, {1345,63863,3},{1348,63868,3},{1347,63869,3},{1348,63873,3},{1347,63878,3}, {1343,63878,3},{1343,63874,3},{1333,63878,3},{1328,63881,3},{1328,63889,3}, {1327,63889,3},{1325,63894,3},{1320,63894,3},{1322,63898,3},{1327,63894,3}, {1327,63893,3},{1328,63898,3},{1325,63899,3},{1332,63911,3},{1330,63913,3}, {1327,63914,3},{1325,63914,3},{1327,63919,3},{1328,63921,3},{1327,63916,3}, {1330,63916,3},{1335,63914,3},{1337,63914,3},{1340,63918,3},{1342,63919,3}, {1340,63931,3},{1342,63946,3},{1343,63949,3},{1343,63959,3},{1347,63969,3}, {1345,63974,3},{1350,63981,3},{1350,63984,3},{1350,63989,3},{1345,63994,3}, {1343,64001,3},{1343,64004,3},{1345,64006,3},{1348,64006,3},{1345,64004,3}, {1345,63999,3},{1350,63989,3},{1350,63986,3},{1353,63981,3},{1348,63974,3}, {1350,63969,3},{1345,63958,3},{1347,63949,3},{1343,63928,3},{1345,63921,3}, {1342,63913,3},{1335,63909,3},{1335,63908,3},{1340,63908,3},{1338,63906,3}, {1338,63904,3},{1337,63906,3},{1337,63904,3},{1333,63904,3},{1333,63896,3}, {1335,63889,3},{1335,63884,3},{1342,63886,3},{1348,63879,3},{1353,63881,3}, {1358,63879,3},{1358,63886,3},{1358,63891,3},{1358,63896,3},{1358,63901,3}, {1360,63906,3},{1360,63911,3},{1360,63918,3},{1360,63923,3},{1360,63928,3}, {1360,63933,3},{1360,63939,3},{1360,63944,3},{1360,63949,3},{1360,63956,3}, {1358,63961,3},{1358,63966,3},{1358,63971,3},{1358,63976,3},{1358,63983,3}, {1358,63988,3},{1370,63991,3},{1378,63999,3},{1380,64004,3},{1378,64008,3}, {1375,64011,3},{1378,64018,3},{1383,64029,3},{1380,64038,3},{1380,64041,3}, {1380,64048,3},{1378,64049,3},{1373,64054,3},{1365,64058,3},{1362,64064,3}, {1367,64073,3},{1365,64083,3},{1362,64086,3},{1353,64089,3},{1345,64103,3}, {1348,64113,3},{1352,64116,3},{1353,64124,3},{1357,64128,3},{1357,64134,3}, {1358,64138,3},{1358,64139,3},{1357,64146,3},{1352,64149,3},{1348,64153,3}, {1343,64156,3},{1338,64156,3},{1332,64149,3},{1332,64141,3},{1330,64136,3}, {1328,64124,3},{1325,64123,3},{1323,64114,3},{1325,64109,3},{1325,64098,3}, {1327,64093,3},{1330,64091,3},{1332,64084,3},{1337,64079,3},{1335,64071,3}, {1337,64064,3},{1338,64061,3},{1343,64059,3},{1343,64054,3},{1345,64051,3}, {1345,64046,3},{1348,64039,3},{1353,64031,3},{1360,64024,3},{1358,64021,3}, {1353,64016,3},{1343,64014,3},{1338,64008,3},{1337,64003,3},{1338,63994,3}, {1340,63986,3},{1337,63979,3},{1337,63968,3},{1335,63964,3},{1335,63956,3}, {1330,63956,3},{1325,63954,3},{1320,63954,3},{1317,63954,3},{1317,63949,3}, {1317,63944,3},{1317,63939,3},{1317,63933,3},{1317,63928,3},{1317,63923,3}, {1317,63916,3},{1317,63911,3},{1317,63906,3},{1317,63901,3},{1317,63896,3}, {1317,63889,3},{1317,63884,3},{1317,63879,3},{1317,63874,3},{1317,63869,3}, {1315,63866,3},{1303,63861,3},{1095,64034,131},{1097,64034,3},{1093,64031,3}, {1092,64028,3},{1095,64026,3},{1095,64029,3},{1098,64031,3},{1100,64031,3}, {1097,64029,3},{1097,64028,3},{1097,64024,3},{1107,64026,3},{1107,64028,3}, {1110,64029,3},{1112,64033,3},{1113,64033,3},{1113,64036,3},{1117,64034,3}, {1118,64036,3},{1123,64034,3},{1117,64031,3},{1117,64028,3},{1113,64028,3}, {1113,64026,3},{1112,64024,3},{1110,64023,3},{1107,64019,3},{1100,64016,3}, {1100,64013,3},{1103,64009,3},{1108,64014,3},{1117,64016,3},{1122,64014,3}, {1123,64016,3},{1123,64013,3},{1122,64013,3},{1113,64014,3},{1112,64011,3}, {1113,64001,3},{1117,63999,3},{1118,63996,3},{1127,63996,3},{1130,63993,3}, {1137,63998,3},{1137,64003,3},{1140,64008,3},{1143,64009,3},{1138,64003,3}, {1138,64001,3},{1143,64001,3},{1145,64003,3},{1147,64001,3},{1135,63991,3}, {1138,63988,3},{1145,63991,3},{1145,63989,3},{1148,63989,3},{1150,63993,3}, {1148,63993,3},{1150,63994,3},{1148,63996,3},{1150,63996,3},{1153,63996,3}, {1153,63999,3},{1152,64001,3},{1157,64001,3},{1155,64004,3},{1153,64004,3}, {1153,64006,3},{1157,64008,3},{1157,64003,3},{1158,64003,3},{1160,64006,3}, {1157,64009,3},{1157,64011,3},{1162,64008,3},{1162,64013,3},{1158,64013,3}, {1157,64016,3},{1160,64016,3},{1162,64014,3},{1163,64018,3},{1162,64021,3}, {1160,64023,3},{1160,64024,3},{1162,64023,3},{1162,64024,3},{1158,64026,3}, {1158,64021,3},{1157,64023,3},{1153,64024,3},{1157,64026,3},{1157,64033,3}, {1158,64034,3},{1162,64034,3},{1160,64033,3},{1158,64029,3},{1160,64028,3}, {1162,64029,3},{1165,64029,3},{1162,64026,3},{1163,64026,3},{1163,64024,3}, {1165,64024,3},{1168,64024,3},{1165,64023,3},{1165,64019,3},{1167,64019,3}, {1168,64023,3},{1170,64023,3},{1170,64019,3},{1167,64018,3},{1165,64016,3}, {1168,64014,3},{1165,64013,3},{1168,64013,3},{1168,64016,3},{1170,64014,3}, {1172,64014,3},{1172,64018,3},{1175,64016,3},{1175,64014,3},{1173,64013,3}, {1173,64011,3},{1170,64011,3},{1167,64009,3},{1168,64009,3},{1170,64009,3}, {1175,64009,3},{1170,64008,3},{1170,64004,3},{1168,64004,3},{1167,64008,3}, {1165,64006,3},{1167,64004,3},{1163,64004,3},{1168,64003,3},{1168,64001,3}, {1167,64003,3},{1165,64001,3},{1160,64001,3},{1165,63998,3},{1163,63996,3}, {1158,63999,3},{1160,63998,3},{1158,63998,3},{1158,63996,3},{1160,63994,3}, {1157,63993,3},{1155,63991,3},{1160,63989,3},{1167,63994,3},{1168,63994,3}, {1165,63991,3},{1165,63988,3},{1170,63988,3},{1170,63984,3},{1168,63984,3}, {1167,63983,3},{1168,63981,3},{1172,63981,3},{1178,63983,3},{1183,63991,3}, {1187,63989,3},{1188,63993,3},{1187,63993,3},{1188,63994,3},{1188,63998,3}, {1187,64004,3},{1187,64016,3},{1190,64023,3},{1193,64029,3},{1192,64029,3}, {1185,64028,3},{1180,64029,3},{1178,64034,3},{1175,64038,3},{1175,64043,3}, {1177,64044,3},{1175,64041,3},{1180,64036,3},{1182,64031,3},{1183,64029,3}, {1195,64033,3},{1195,64038,3},{1197,64036,3},{1198,64028,3},{1197,64023,3}, {1192,64019,3},{1190,64016,3},{1192,64004,3},{1197,64001,3},{1197,63993,3}, {1193,63991,3},{1193,63986,3},{1183,63976,3},{1180,63971,3},{1178,63961,3}, {1175,63954,3},{1187,63956,3},{1187,63958,3},{1187,63963,3},{1188,63956,3}, {1177,63951,3},{1177,63948,3},{1182,63949,3},{1182,63948,3},{1180,63946,3}, {1177,63946,3},{1173,63939,3},{1178,63939,3},{1188,63943,3},{1197,63949,3}, {1200,63956,3},{1197,63963,3},{1202,63966,3},{1198,63961,3},{1202,63958,3}, {1202,63953,3},{1203,63949,3},{1200,63949,3},{1198,63943,3},{1197,63943,3}, {1198,63941,3},{1195,63943,3},{1192,63939,3},{1192,63928,3},{1188,63923,3}, {1190,63921,3},{1190,63916,3},{1193,63911,3},{1198,63908,3},{1200,63903,3}, {1210,63899,3},{1217,63903,3},{1220,63908,3},{1217,63908,3},{1217,63909,3}, {1222,63909,3},{1228,63918,3},{1228,63923,3},{1233,63924,3},{1235,63929,3}, {1233,63924,3},{1230,63921,3},{1228,63914,3},{1222,63904,3},{1223,63903,3}, {1225,63904,3},{1228,63904,3},{1223,63903,3},{1220,63903,3},{1218,63899,3}, {1220,63896,3},{1218,63894,3},{1217,63891,3},{1218,63886,3},{1222,63886,3}, {1227,63881,3},{1227,63876,3},{1232,63871,3},{1233,63868,3},{1232,63864,3}, {1235,63868,3},{1235,63881,3},{1235,63884,3},{1235,63896,3},{1243,63908,3}, {1247,63914,3},{1245,63919,3},{1247,63928,3},{1243,63939,3},{1245,63948,3}, {1243,63968,3},{1255,63996,3},{1262,64001,3},{1263,64008,3},{1267,64013,3}, {1268,64014,3},{1268,64021,3},{1268,64028,3},{1268,64033,3},{1268,64038,3}, {1268,64044,3},{1268,64049,3},{1268,64054,3},{1268,64059,3},{1268,64064,3}, {1268,64071,3},{1268,64076,3},{1268,64081,3},{1268,64086,3},{1268,64091,3}, {1268,64096,3},{1268,64103,3},{1268,64108,3},{1268,64113,3},{1268,64118,3}, {1268,64123,3},{1268,64129,3},{1268,64134,3},{1268,64139,3},{1268,64144,3}, {1268,64151,3},{1268,64156,3},{1268,64161,3},{1268,64164,3},{1257,64164,3}, {1247,64171,3},{1243,64171,3},{1240,64169,3},{1237,64169,3},{1232,64169,3}, {1230,64168,3},{1228,64166,3},{1225,64164,3},{1227,64161,3},{1225,64156,3}, {1228,64156,3},{1230,64154,3},{1228,64154,3},{1227,64153,3},{1228,64149,3}, {1225,64151,3},{1223,64144,3},{1220,64139,3},{1215,64139,3},{1215,64148,3}, {1212,64149,3},{1210,64154,3},{1205,64156,3},{1202,64166,3},{1190,64164,3}, {1178,64166,3},{1172,64164,3},{1168,64158,3},{1170,64156,3},{1172,64156,3}, {1172,64154,3},{1175,64151,3},{1173,64149,3},{1173,64151,3},{1168,64149,3}, {1167,64148,3},{1168,64143,3},{1167,64141,3},{1163,64138,3},{1165,64131,3}, {1163,64126,3},{1167,64121,3},{1167,64111,3},{1168,64108,3},{1162,64104,3}, {1152,64084,3},{1152,64068,3},{1135,64056,3},{1120,64051,3},{1102,64039,3}, {1095,64034,3},{57034,48988,128},{57031,49064,0},{57028,49184,0},{57013,49271,0}, {57008,49364,0},{57004,49409,0},{57004,49524,0},{57003,49601,0},{56991,49786,0}, {56991,49813,0},{56999,49969,0},{57003,50051,0},{57003,50293,0},{56999,50339,0}, {56991,50418,0},{56989,50486,0},{56993,50556,0},{57006,50563,0},{57023,50641,0}, {57026,50698,0},{57024,50951,0},{57021,51163,0},{57013,51439,0},{57011,51531,0}, {57013,51591,0},{57014,51623,0},{57028,51626,0},{57038,51674,0},{57039,51666,0}, {57048,51506,0},{57078,50648,0},{57091,50474,0},{57099,50391,0},{57109,50338,0}, {57133,50236,0},{57144,50213,0},{57156,50214,0},{57166,50236,0},{57178,50243,0}, {57221,50231,0},{57243,50264,0},{57264,50343,0},{57274,50358,0},{57279,50354,0}, {57289,50316,0},{57301,50244,0},{57323,50141,0},{57329,50093,0},{57339,50091,0}, {57346,50046,0},{57356,50061,0},{57371,50136,0},{57378,50128,0},{57386,50086,0}, {57398,49994,0},{57403,49946,0},{57404,49874,0},{57406,49848,0},{57411,49839,0}, {57423,49864,0},{57428,49889,0},{57436,50018,0},{57436,50056,0},{57429,50169,0}, {57428,50229,0},{57424,50279,0},{57423,50356,0},{57421,50378,0},{57408,50429,0}, {57403,50491,0},{57401,50544,0},{57401,50663,0},{57394,50851,0},{57396,50904,0}, {57398,50954,0},{57413,51043,0},{57431,51104,0},{57451,51143,0},{57466,51144,0}, {57473,51134,0},{57478,51108,0},{57489,50991,0},{57503,50913,0},{57523,50848,0}, {57548,50808,0},{57554,50793,0},{57558,50778,0},{57559,50758,0},{57566,50566,0}, {57574,50514,0},{57581,50453,0},{57593,50306,0},{57596,50276,0},{57599,50243,0}, {57621,50134,0},{57623,50098,0},{57621,50056,0},{57623,50011,0},{57628,49963,0}, {57634,49926,0},{57646,49901,0},{57651,49899,0},{57661,49904,0},{57674,49931,0}, {57684,49986,0},{57694,50116,0},{57701,50134,0},{57714,50151,0},{57723,50141,0}, {57729,50093,0},{57721,50033,0},{57719,49933,0},{57713,49908,0},{57711,49891,0}, {57711,49878,0},{57716,49866,0},{57726,49808,0},{57733,49793,0},{57734,49768,0}, {57738,49751,0},{57743,49738,0},{57751,49729,0},{57756,49741,0},{57769,49748,0}, {57779,49766,0},{57786,49756,0},{57793,49769,0},{57798,49754,0},{57803,49749,0}, {57808,49751,0},{57813,49763,0},{57821,49749,0},{57826,49768,0},{57826,49794,0}, {57818,49809,0},{57811,49829,0},{57808,49851,0},{57803,49863,0},{57799,49888,0}, {57811,49929,0},{57818,49913,0},{57821,49918,0},{57826,49938,0},{57828,49958,0}, {57828,49979,0},{57824,50013,0},{57828,50033,0},{57821,50046,0},{57823,50074,0}, {57821,50091,0},{57818,50114,0},{57819,50143,0},{57818,50154,0},{57814,50169,0}, {57811,50204,0},{57808,50226,0},{57799,50238,0},{57798,50229,0},{57796,50204,0}, {57793,50203,0},{57791,50209,0},{57791,50244,0},{57788,50294,0},{57789,50304,0}, {57791,50304,0},{57796,50316,0},{57806,50318,0},{57808,50326,0},{57806,50356,0}, {57803,50374,0},{57798,50414,0},{57794,50424,0},{57788,50419,0},{57788,50434,0}, {57776,50493,0},{57764,50536,0},{57759,50564,0},{57759,50586,0},{57761,50603,0}, {57768,50629,0},{57769,50603,0},{57774,50588,0},{57776,50584,0},{57779,50591,0}, {57778,50621,0},{57773,50654,0},{57776,50676,0},{57779,50678,0},{57786,50676,0}, {57791,50733,0},{57791,50756,0},{57793,50776,0},{57804,50783,0},{57806,50789,0}, {57803,50816,0},{57799,50818,0},{57798,50824,0},{57799,50828,0},{57811,50823,0}, {57814,50836,0},{57814,50849,0},{57804,50881,0},{57789,50904,0},{57789,50914,0}, {57794,50934,0},{57801,50933,0},{57804,50946,0},{57806,50948,0},{57813,50919,0}, {57821,50911,0},{57819,50929,0},{57821,50938,0},{57824,50944,0},{57824,50953,0}, {57828,50946,0},{57831,50918,0},{57836,50904,0},{57838,50913,0},{57836,50944,0}, {57834,50969,0},{57831,50996,0},{57833,51006,0},{57834,50998,0},{57836,50999,0}, {57843,50993,0},{57844,50984,0},{57844,50961,0},{57851,50924,0},{57853,50931,0}, {57856,50983,0},{57858,50991,0},{57863,50986,0},{57871,50921,0},{57883,50883,0}, {57891,50841,0},{57891,50808,0},{57894,50748,0},{57891,50728,0},{57886,50719,0}, {57886,50711,0},{57893,50591,0},{57898,50586,0},{57901,50588,0},{57906,50603,0}, {57908,50621,0},{57908,50646,0},{57913,50694,0},{57918,50681,0},{57924,50703,0}, {57924,50738,0},{57919,50761,0},{57913,50823,0},{57906,50843,0},{57899,50879,0}, {57898,50901,0},{57891,50964,0},{57893,50994,0},{57899,50998,0},{57903,50993,0}, {57906,50988,0},{57908,50963,0},{57909,50948,0},{57923,50919,0},{57928,50896,0}, {57936,50916,0},{57943,50924,0},{57946,50934,0},{57946,50944,0},{57944,51016,0}, {57946,51031,0},{57949,51059,0},{57949,51089,0},{57953,51104,0},{57953,51119,0}, {57961,51109,0},{57968,51109,0},{57969,51113,0},{57971,51143,0},{57978,51201,0}, {57974,51216,0},{57974,51234,0},{57971,51258,0},{57974,51269,0},{57983,51268,0}, {57986,51276,0},{57983,51314,0},{57986,51318,0},{57988,51331,0},{57989,51369,0}, {57986,51376,0},{57981,51383,0},{57979,51423,0},{57981,51456,0},{57983,51463,0}, {57989,51461,0},{57993,51474,0},{57996,51471,0},{57999,51474,0},{58003,51486,0}, {57999,51514,0},{58001,51521,0},{58004,51531,0},{58011,51528,0},{58019,51553,0}, {58019,51603,0},{58023,51658,0},{58019,51671,0},{58006,51693,0},{57999,51716,0}, {57999,51733,0},{58009,51763,0},{58014,51771,0},{58018,51758,0},{58028,51749,0}, {58039,51809,0},{58048,51833,0},{58054,51826,0},{58064,51826,0},{58064,51858,0}, {58071,51889,0},{58069,51924,0},{58074,51938,0},{58074,51953,0},{58074,51956,0}, {58081,51964,0},{58088,51988,0},{58086,52029,0},{58084,52043,0},{58079,52053,0}, {58079,52069,0},{58083,52118,0},{58078,52108,0},{58073,52108,0},{58069,52114,0}, {58066,52134,0},{58054,52126,0},{58051,52146,0},{58054,52154,0},{58054,52161,0}, {58051,52171,0},{58054,52191,0},{58056,52226,0},{58063,52274,0},{58058,52303,0}, {58063,52326,0},{58063,52348,0},{58063,52364,0},{58056,52394,0},{58058,52453,0}, {58058,52491,0},{58051,52526,0},{58049,52564,0},{58053,52603,0},{58053,52624,0}, {58058,52649,0},{58058,52671,0},{58063,52693,0},{58066,52734,0},{58068,52751,0}, {58068,52786,0},{58071,52801,0},{58069,52819,0},{58071,52846,0},{58071,52863,0}, {58069,52883,0},{58059,52918,0},{58058,52929,0},{58069,53069,0},{58068,53121,0}, {58069,53156,0},{58073,53201,0},{58071,53258,0},{58078,53326,0},{58076,53368,0}, {58076,53439,0},{58078,53451,0},{58083,53468,0},{58084,53478,0},{58084,53488,0}, {58081,53501,0},{58079,53534,0},{58088,53638,0},{58084,53671,0},{58096,53711,0}, {58106,53733,0},{58113,53754,0},{58111,53764,0},{58101,53778,0},{58099,53796,0}, {58098,53809,0},{58089,53813,0},{58089,53826,0},{58084,53849,0},{58084,53888,0}, {58084,53896,0},{58088,53916,0},{58088,53946,0},{58096,53948,0},{58099,53961,0}, {58098,53964,0},{58093,53964,0},{58088,53989,0},{58088,54009,0},{58091,54038,0}, {58089,54064,0},{58091,54069,0},{58103,54071,0},{58108,54061,0},{58118,54046,0}, {58129,54044,0},{58148,54088,0},{58148,54111,0},{58153,54133,0},{58153,54144,0}, {58148,54168,0},{58138,54176,0},{58134,54206,0},{58131,54218,0},{58119,54216,0}, {58118,54209,0},{58113,54184,0},{58108,54193,0},{58099,54176,0},{58096,54188,0}, {58098,54204,0},{58096,54213,0},{58094,54216,0},{58096,54231,0},{58096,54236,0}, {58089,54238,0},{58083,54253,0},{58069,54234,0},{58069,54249,0},{58068,54258,0}, {58069,54264,0},{58068,54274,0},{58061,54274,0},{58054,54264,0},{58051,54273,0}, {58056,54294,0},{58059,54388,0},{58078,54363,0},{58086,54371,0},{58088,54391,0}, {58089,54394,0},{58098,54379,0},{58109,54369,0},{58113,54373,0},{58119,54394,0}, {58118,54441,0},{58114,54456,0},{58109,54464,0},{58109,54471,0},{58111,54486,0}, {58111,54506,0},{58106,54523,0},{58081,54541,0},{58076,54541,0},{58071,54549,0}, {58069,54564,0},{58071,54568,0},{58074,54573,0},{58076,54606,0},{58071,54629,0}, {58069,54628,0},{58066,54609,0},{58064,54606,0},{58063,54626,0},{58058,54654,0}, {58061,54651,0},{58064,54658,0},{58066,54691,0},{58064,54693,0},{58061,54669,0}, {58059,54684,0},{58061,54696,0},{58063,54706,0},{58061,54708,0},{58058,54713,0}, {58053,54694,0},{58049,54706,0},{58049,54714,0},{58054,54721,0},{58058,54738,0}, {58066,54718,0},{58068,54719,0},{58069,54738,0},{58076,54703,0},{58078,54703,0}, {58078,54769,0},{58079,54788,0},{58081,54856,0},{58078,54856,0},{58076,54879,0}, {58074,54884,0},{58061,54874,0},{58054,54879,0},{58053,54886,0},{58039,54894,0}, {58024,54894,0},{58029,54909,0},{58038,54913,0},{58041,54924,0},{58044,54911,0}, {58048,54924,0},{58054,54928,0},{58059,54953,0},{58058,54986,0},{58059,54996,0}, {58059,55006,0},{58053,55043,0},{58051,55051,0},{58044,55061,0},{58038,55109,0}, {58034,55114,0},{58029,55133,0},{58029,55138,0},{58033,55136,0},{58029,55166,0}, {58026,55173,0},{58028,55214,0},{58026,55223,0},{58026,55234,0},{58026,55258,0}, {58023,55274,0},{58024,55296,0},{58023,55328,0},{58019,55336,0},{58016,55331,0}, {58014,55346,0},{58004,55359,0},{58001,55376,0},{57999,55474,0},{58008,55478,0}, {58018,55421,0},{58031,55359,0},{58044,55359,0},{58068,55384,0},{58071,55383,0}, {58073,55388,0},{58069,55403,0},{58064,55411,0},{58051,55471,0},{58051,55483,0}, {58054,55499,0},{58054,55509,0},{58051,55519,0},{58051,55529,0},{58053,55531,0}, {58063,55521,0},{58064,55518,0},{58064,55503,0},{58064,55496,0},{58068,55504,0}, {58068,55536,0},{58073,55524,0},{58083,55519,0},{58086,55531,0},{58088,55516,0}, {58089,55508,0},{58086,55464,0},{58083,55449,0},{58081,55438,0},{58079,55421,0}, {58083,55408,0},{58083,55394,0},{58088,55383,0},{58099,55383,0},{58106,55394,0}, {58108,55386,0},{58113,55389,0},{58119,55383,0},{58133,55364,0},{58143,55376,0}, {58141,55333,0},{58139,55319,0},{58139,55296,0},{58141,55283,0},{58141,55254,0}, {58143,55239,0},{58149,55229,0},{58161,55239,0},{58166,55224,0},{58173,55218,0}, {58176,55229,0},{58176,55248,0},{58173,55296,0},{58171,55321,0},{58168,55344,0}, {58168,55386,0},{58166,55394,0},{58158,55408,0},{58158,55429,0},{58154,55443,0}, {58156,55461,0},{58161,55483,0},{58159,55528,0},{58159,55543,0},{58166,55564,0}, {58171,55571,0},{58168,55594,0},{58171,55611,0},{58174,55618,0},{58176,55594,0}, {58179,55576,0},{58184,55566,0},{58186,55551,0},{58194,55544,0},{58196,55514,0}, {58199,55489,0},{58201,55414,0},{58203,55393,0},{58201,55351,0},{58204,55329,0}, {58201,55271,0},{58203,55236,0},{58219,55193,0},{58228,55194,0},{58246,55178,0}, {58256,55188,0},{58261,55211,0},{58261,55239,0},{58259,55256,0},{58261,55278,0}, {58256,55304,0},{58244,55301,0},{58243,55291,0},{58239,55294,0},{58238,55271,0}, {58234,55268,0},{58233,55279,0},{58236,55321,0},{58234,55328,0},{58229,55319,0}, {58228,55324,0},{58228,55341,0},{58236,55409,0},{58234,55458,0},{58226,55481,0}, {58228,55498,0},{58231,55504,0},{58231,55523,0},{58233,55534,0},{58229,55551,0}, {58234,55579,0},{58236,55613,0},{58236,55633,0},{58239,55646,0},{58236,55721,0}, {58234,55728,0},{58236,55749,0},{58233,55749,0},{58223,55729,0},{58219,55733,0}, {58219,55749,0},{58224,55773,0},{58219,55803,0},{58214,55833,0},{58208,55911,0}, {58201,55938,0},{58204,55956,0},{58211,55953,0},{58213,55964,0},{58213,55981,0}, {58216,56001,0},{58216,56016,0},{58213,56036,0},{58214,56054,0},{58218,56081,0}, {58219,56099,0},{58226,56104,0},{58234,56094,0},{58243,56091,0},{58244,56094,0}, {58233,56124,0},{58231,56138,0},{58218,56148,0},{58214,56164,0},{58214,56179,0}, {58218,56178,0},{58219,56189,0},{58219,56204,0},{58216,56216,0},{58216,56224,0}, {58214,56246,0},{58218,56244,0},{58221,56291,0},{58214,56346,0},{58211,56369,0}, {58211,56396,0},{58209,56413,0},{58203,56449,0},{58221,56504,0},{58219,56536,0}, {58219,56549,0},{58221,56568,0},{58226,56578,0},{58229,56603,0},{58246,56613,0}, {58259,56608,0},{58268,56601,0},{58271,56584,0},{58273,56581,0},{58276,56589,0}, {58276,56596,0},{58273,56651,0},{58271,56671,0},{58269,56699,0},{58268,56713,0}, {58261,56728,0},{58256,56728,0},{58253,56721,0},{58248,56701,0},{58243,56699,0}, {58234,56678,0},{58231,56678,0},{58224,56733,0},{58228,56743,0},{58224,56758,0}, {58223,56786,0},{58216,56809,0},{58213,56828,0},{58206,56839,0},{58204,56853,0}, {58204,56871,0},{58208,56889,0},{58214,56906,0},{58214,56929,0},{58216,56936,0}, {58221,56944,0},{58228,56946,0},{58236,56956,0},{58236,56961,0},{58223,56963,0}, {58214,56981,0},{58203,56989,0},{58199,56999,0},{58194,57026,0},{58184,57068,0}, {58183,57088,0},{58184,57114,0},{58184,57148,0},{58183,57176,0},{58184,57191,0}, {58183,57209,0},{58179,57214,0},{58176,57211,0},{58174,57214,0},{58156,57293,0}, {58143,57348,0},{58143,57354,0},{58148,57368,0},{58151,57423,0},{58159,57458,0}, {58168,57458,0},{58173,57464,0},{58179,57444,0},{58189,57433,0},{58196,57438,0}, {58204,57436,0},{58206,57439,0},{58208,57468,0},{58208,57483,0},{58201,57494,0}, {58196,57508,0},{58196,57524,0},{58199,57533,0},{58204,57531,0},{58221,57506,0}, {58231,57508,0},{58234,57516,0},{58226,57593,0},{58216,57614,0},{58208,57641,0}, {58203,57646,0},{58198,57673,0},{58191,57683,0},{58176,57674,0},{58174,57674,0}, {58171,57681,0},{58171,57703,0},{58176,57724,0},{58184,57799,0},{58181,57824,0}, {58183,57854,0},{58183,57864,0},{58176,57876,0},{58154,57826,0},{58151,57824,0}, {58149,57834,0},{58149,57849,0},{58154,57868,0},{58158,57894,0},{58158,57899,0}, {58154,57904,0},{58154,57924,0},{58163,57969,0},{58166,57998,0},{58169,58016,0}, {58169,58054,0},{58161,58079,0},{58166,58091,0},{58171,58121,0},{58169,58128,0}, {58164,58143,0},{58174,58163,0},{58178,58181,0},{58183,58189,0},{58183,58196,0}, {58179,58206,0},{58179,58216,0},{58184,58218,0},{58188,58229,0},{58189,58249,0}, {58188,58276,0},{58193,58289,0},{58194,58301,0},{58198,58363,0},{58196,58388,0}, {58201,58398,0},{58208,58421,0},{58209,58459,0},{58206,58501,0},{58208,58509,0}, {58211,58528,0},{58218,58601,0},{58223,58624,0},{58231,58673,0},{58234,58684,0}, {58248,58738,0},{58249,58764,0},{58253,58778,0},{58261,58791,0},{58278,58808,0}, {58296,58856,0},{58306,58844,0},{58309,58848,0},{58316,58841,0},{58326,58841,0}, {58333,58848,0},{58338,58838,0},{58346,58849,0},{58353,58838,0},{58364,58826,0}, {58366,58819,0},{58369,58804,0},{58376,58793,0},{58389,58783,0},{58403,58784,0}, {58409,58786,0},{58418,58796,0},{58433,58796,0},{58436,58793,0},{58436,58784,0}, {58456,58779,0},{58469,58763,0},{58476,58766,0},{58484,58754,0},{58491,58753,0}, {58496,58748,0},{58499,58748,0},{58511,58739,0},{58514,58721,0},{58518,58718,0}, {58521,58703,0},{58524,58696,0},{58533,58694,0},{58543,58686,0},{58551,58701,0}, {58568,58703,0},{58573,58691,0},{58581,58681,0},{58594,58653,0},{58598,58656,0}, {58598,58664,0},{58598,58709,0},{58599,58713,0},{58608,58709,0},{58609,58716,0}, {58608,58724,0},{58601,58734,0},{58599,58759,0},{58599,58786,0},{58601,58801,0}, {58611,58831,0},{58629,58859,0},{58636,58866,0},{58639,58864,0},{58641,58859,0}, {58639,58836,0},{58641,58828,0},{58644,58803,0},{58649,58791,0},{58654,58786,0}, {58656,58789,0},{58658,58796,0},{58656,58819,0},{58656,58834,0},{58659,58843,0}, {58673,58833,0},{58686,58818,0},{58688,58823,0},{58693,58841,0},{58698,58843,0}, {58701,58838,0},{58703,58824,0},{58706,58819,0},{58708,58824,0},{58706,58853,0}, {58708,58861,0},{58713,58878,0},{58718,58868,0},{58716,58858,0},{58713,58851,0}, {58714,58844,0},{58718,58839,0},{58729,58813,0},{58731,58824,0},{58738,58811,0}, {58739,58814,0},{58744,58856,0},{58748,58858,0},{58753,58851,0},{58754,58854,0}, {58754,58864,0},{58756,58864,0},{58758,58851,0},{58756,58833,0},{58758,58833,0}, {58761,58839,0},{58763,58868,0},{58764,58864,0},{58764,58846,0},{58769,58846,0}, {58776,58864,0},{58776,58884,0},{58783,58893,0},{58784,58891,0},{58781,58879,0}, {58783,58858,0},{58786,58853,0},{58788,58819,0},{58783,58808,0},{58781,58791,0}, {58781,58773,0},{58783,58774,0},{58786,58778,0},{58788,58771,0},{58788,58769,0}, {58796,58776,0},{58803,58788,0},{58806,58781,0},{58809,58778,0},{58816,58788,0}, {58818,58776,0},{58828,58786,0},{58831,58788,0},{58831,58793,0},{58828,58794,0}, {58828,58801,0},{58828,58806,0},{58831,58809,0},{58843,58819,0},{58841,58826,0}, {58843,58828,0},{58844,58831,0},{58846,58838,0},{58846,58844,0},{58843,58851,0}, {58839,58848,0},{58831,58849,0},{58823,58848,0},{58816,58853,0},{58813,58863,0}, {58816,58869,0},{58814,58878,0},{58804,58888,0},{58803,58893,0},{58804,58896,0}, {58811,58894,0},{58821,58896,0},{58824,58889,0},{58828,58896,0},{58829,58894,0}, {58833,58878,0},{58844,58889,0},{58849,58898,0},{58853,58898,0},{58859,58883,0}, {58874,58886,0},{58876,58891,0},{58881,58918,0},{58879,58924,0},{58874,58939,0}, {58869,58939,0},{58866,58958,0},{58869,58964,0},{58873,58958,0},{58874,58958,0}, {58879,58964,128},{58881,58969,0},{58884,58964,0},{58889,58969,0},{58893,58968,0}, {58893,58976,0},{58896,58978,0},{58903,58964,0},{58906,58953,0},{58911,58964,0}, {58919,58969,0},{58923,58966,0},{58926,58978,0},{58924,58986,0},{58923,58988,0}, {58921,59003,0},{58919,59013,0},{58921,59018,0},{58923,59019,0},{58928,59013,0}, {58931,59006,0},{58938,59008,0},{58939,59021,0},{58938,59026,0},{58941,59029,0}, {58939,59034,0},{58943,59043,0},{58943,59056,0},{58939,59054,0},{58931,59069,0}, {58933,59076,0},{58938,59089,0},{58941,59094,0},{58953,59071,0},{58963,59069,0}, {58963,59073,0},{58958,59103,0},{58958,59104,0},{58963,59104,0},{58964,59109,0}, {58966,59108,0},{58969,59101,0},{58974,59096,0},{58973,59113,0},{58969,59119,0}, {58968,59133,0},{58971,59133,0},{58976,59119,0},{58978,59121,0},{58978,59126,0}, {58981,59119,0},{58983,59119,0},{58984,59124,0},{58984,59131,0},{58983,59139,0}, {58979,59141,0},{58978,59146,0},{58979,59151,0},{58983,59149,0},{58984,59151,0}, {58984,59161,0},{58986,59164,0},{58989,59154,0},{58988,59148,0},{58991,59148,0}, {58991,59136,0},{58993,59131,0},{58998,59138,0},{59001,59139,0},{59003,59131,0}, {59006,59126,0},{59006,59134,0},{59018,59128,0},{59021,59138,0},{59024,59134,0}, {59028,59144,0},{59029,59141,0},{59033,59143,0},{59036,59154,0},{59033,59153,0}, {59033,59171,0},{59028,59196,0},{59029,59209,0},{59026,59214,0},{59021,59214,0}, {59024,59219,0},{59023,59226,0},{59024,59233,0},{59026,59239,0},{59033,59233,0}, {59034,59234,0},{59036,59223,0},{59043,59218,0},{59043,59221,0},{59044,59231,0}, {59046,59234,0},{59046,59253,0},{59051,59259,0},{59056,59243,0},{59056,59266,0}, {59046,59283,0},{59049,59301,0},{59051,59303,0},{59051,59294,0},{59053,59286,0}, {59058,59283,0},{59061,59274,0},{59063,59288,0},{59071,59284,0},{59073,59291,0}, {59078,59291,0},{59076,59298,0},{59071,59301,0},{59073,59306,0},{59071,59309,0}, {59066,59304,0},{59066,59311,0},{59063,59308,0},{59059,59313,0},{59061,59318,0}, {59063,59316,0},{59064,59321,0},{59068,59326,0},{59068,59331,0},{59064,59333,0}, {59068,59344,0},{59073,59346,0},{59076,59343,0},{59079,59351,0},{59076,59356,0}, {59078,59359,0},{59084,59361,0},{59084,59364,0},{59083,59363,0},{59079,59371,0}, {59081,59376,0},{59084,59379,0},{59083,59386,0},{59084,59389,0},{59086,59393,0}, {59088,59384,0},{59093,59381,0},{59094,59386,0},{59096,59394,0},{59099,59398,0}, {59099,59408,0},{59098,59403,0},{59096,59408,0},{59098,59414,0},{59098,59429,0}, {59101,59428,0},{59104,59428,0},{59109,59443,0},{59113,59443,0},{59114,59438,0}, {59118,59443,0},{59121,59439,0},{59123,59451,0},{59129,59434,0},{59133,59438,0}, {59134,59446,0},{59133,59451,0},{59131,59458,0},{59133,59461,0},{59136,59466,0}, {59138,59486,0},{59144,59508,0},{59143,59534,0},{59146,59541,0},{59149,59539,0}, {59151,59549,0},{59156,59546,0},{59159,59551,0},{59158,59554,0},{59151,59553,0}, {59149,59556,0},{59151,59563,0},{59149,59569,0},{59148,59579,0},{59146,59589,0}, {59149,59596,0},{59149,59603,0},{59153,59603,0},{59153,59594,0},{59154,59593,0}, {59158,59603,0},{59166,59603,0},{59169,59618,0},{59166,59628,0},{59169,59634,0}, {59171,59644,0},{59173,59648,0},{59176,59644,0},{59183,59644,0},{59188,59683,0}, {59191,59698,0},{59189,59719,0},{59193,59724,0},{59196,59721,0},{59199,59723,0}, {59194,59733,0},{59196,59738,0},{59199,59739,0},{59206,59749,0},{59206,59758,0}, {59209,59768,0},{59209,59781,0},{59214,59808,0},{59214,59821,0},{59211,59834,0}, {59209,59838,0},{59201,59838,0},{59199,59843,0},{59198,59841,0},{59194,59846,0}, {59191,59841,0},{59181,59864,0},{59176,59863,0},{59171,59856,0},{59173,59848,0}, {59174,59843,0},{59173,59838,0},{59173,59823,0},{59174,59819,0},{59184,59824,0}, {59189,59821,0},{59189,59799,0},{59186,59794,0},{59183,59799,0},{59181,59799,0}, {59183,59786,0},{59181,59778,0},{59178,59769,0},{59176,59778,0},{59174,59774,0}, {59171,59756,0},{59169,59749,0},{59169,59731,0},{59166,59726,0},{59164,59716,0}, {59153,59701,0},{59153,59696,0},{59146,59694,0},{59144,59684,0},{59141,59676,0}, {59136,59669,0},{59116,59654,0},{59113,59644,0},{59109,59646,0},{59108,59658,0}, {59106,59659,0},{59103,59658,0},{59099,59644,0},{59096,59649,0},{59096,59659,0}, {59094,59663,0},{59088,59663,0},{59083,59658,0},{59086,59636,0},{59093,59636,0}, {59089,59619,0},{59093,59609,0},{59099,59604,0},{59104,59591,0},{59103,59581,0}, {59101,59578,0},{59091,59584,0},{59086,59589,0},{59083,59586,0},{59083,59578,0}, {59084,59566,0},{59096,59568,0},{59098,59564,0},{59094,59541,0},{59088,59529,0}, {59084,59518,0},{59083,59518,0},{59079,59514,0},{59078,59499,0},{59073,59494,0}, {59066,59474,0},{59053,59459,0},{59044,59441,0},{59041,59431,0},{59039,59429,0}, {59038,59436,0},{59036,59433,0},{59038,59421,0},{59036,59411,0},{59033,59404,0}, {59031,59393,0},{59029,59384,0},{59021,59376,0},{59014,59376,0},{59013,59373,0}, {59013,59359,0},{59018,59348,0},{59018,59339,0},{59011,59333,0},{59006,59323,0}, {58999,59331,0},{58993,59328,0},{58988,59338,0},{58984,59364,0},{58983,59368,0}, {58981,59364,0},{58979,59358,0},{58981,59333,0},{58979,59326,0},{58976,59323,0}, {58973,59324,0},{58964,59316,0},{58959,59298,0},{58944,59291,0},{58936,59299,0}, {58934,59321,0},{58924,59331,0},{58923,59336,0},{58923,59344,0},{58919,59349,0}, {58923,59364,0},{58926,59363,0},{58928,59371,0},{58933,59378,0},{58931,59386,0}, {58929,59401,0},{58936,59403,0},{58941,59398,0},{58944,59404,0},{58944,59411,0}, {58939,59421,0},{58931,59426,0},{58929,59429,0},{58931,59434,0},{58936,59438,0}, {58944,59434,0},{58946,59436,0},{58946,59441,0},{58943,59451,0},{58943,59476,0}, {58941,59481,0},{58931,59469,0},{58924,59463,0},{58921,59451,0},{58913,59446,0}, {58906,59433,0},{58903,59423,0},{58908,59416,0},{58913,59416,0},{58916,59413,0}, {58924,59396,0},{58921,59389,0},{58913,59384,0},{58911,59371,0},{58908,59368,0}, {58893,59371,0},{58889,59364,0},{58893,59354,0},{58904,59349,0},{58916,59331,0}, {58918,59316,0},{58918,59294,0},{58914,59283,0},{58914,59263,0},{58913,59258,0}, {58909,59248,0},{58908,59248,0},{58901,59271,0},{58893,59293,0},{58888,59278,0}, {58881,59268,0},{58878,59269,0},{58876,59283,0},{58871,59279,0},{58869,59281,0}, {58869,59293,0},{58864,59288,0},{58863,59274,0},{58868,59263,0},{58884,59251,0}, {58896,59229,0},{58903,59221,0},{58906,59219,0},{58911,59194,0},{58914,59186,0}, {58919,59184,0},{58916,59176,0},{58914,59168,0},{58908,59156,0},{58901,59158,0}, {58901,59176,0},{58898,59178,0},{58896,59171,0},{58896,59149,0},{58894,59149,0}, {58891,59158,0},{58889,59139,0},{58888,59138,0},{58884,59146,0},{58883,59154,0}, {58878,59156,0},{58878,59146,0},{58878,59139,0},{58879,59133,0},{58879,59126,0}, {58878,59123,0},{58869,59121,0},{58869,59126,0},{58864,59116,0},{58859,59123,0}, {58861,59131,0},{58859,59143,0},{58858,59158,0},{58851,59164,0},{58846,59161,0}, {58844,59153,0},{58843,59143,0},{58848,59101,0},{58848,59078,0},{58844,59069,0}, {58841,59066,0},{58843,59054,0},{58839,59053,0},{58836,59043,0},{58834,59043,0}, {58831,59053,0},{58826,59053,0},{58826,59066,0},{58821,59069,0},{58814,59044,0}, {58813,59048,0},{58811,59059,0},{58804,59059,0},{58803,59053,0},{58804,59041,0}, {58801,59036,0},{58804,59021,0},{58798,59008,0},{58803,59004,0},{58803,58998,0}, {58796,58984,0},{58793,58989,0},{58786,58978,0},{58779,58974,0},{58778,58978,0}, {58774,58998,0},{58771,58998,0},{58769,59011,0},{58764,58994,0},{58761,58981,0}, {58758,58979,0},{58753,58986,0},{58748,58974,0},{58741,58988,0},{58741,59001,0}, {58739,59003,0},{58726,58964,0},{58723,58963,0},{58719,58969,0},{58723,58983,0}, {58723,59001,0},{58719,59006,0},{58723,59018,0},{58734,59039,0},{58729,59044,0}, {58729,59054,0},{58724,59059,0},{58721,59058,0},{58716,59048,0},{58714,59036,0}, {58716,59024,0},{58708,59006,0},{58704,58988,0},{58699,58991,0},{58699,59031,0}, {58696,59039,0},{58691,59036,0},{58689,59024,0},{58686,59019,0},{58683,59004,0}, {58679,59011,0},{58674,59014,0},{58673,59021,0},{58673,59036,0},{58668,59044,0}, {58666,59053,0},{58669,59071,0},{58659,59088,0},{58658,59103,0},{58658,59123,0}, {58661,59123,0},{58661,59136,0},{58663,59136,0},{58669,59114,0},{58676,59111,0}, {58676,59114,0},{58676,59118,0},{58673,59126,0},{58676,59131,0},{58678,59129,0}, {58681,59141,0},{58686,59146,0},{58689,59154,0},{58691,59166,0},{58693,59198,0}, {58689,59224,0},{58689,59243,0},{58686,59243,0},{58683,59234,0},{58688,59216,0}, {58681,59176,0},{58678,59164,0},{58669,59156,0},{58668,59149,0},{58664,59153,0}, {58659,59198,0},{58653,59214,0},{58651,59211,0},{58653,59196,0},{58646,59199,0}, {58644,59191,0},{58643,59199,0},{58641,59178,0},{58638,59168,0},{58636,59164,0}, {58633,59179,0},{58633,59206,0},{58631,59208,0},{58629,59208,0},{58623,59193,0}, {58618,59186,0},{58614,59188,0},{58614,59199,0},{58621,59218,0},{58613,59231,0}, {58609,59234,0},{58604,59231,0},{58601,59234,0},{58599,59243,0},{58601,59259,0}, {58599,59269,0},{58598,59274,0},{58588,59283,0},{58586,59299,0},{58583,59296,0}, {58578,59299,0},{58563,59298,0},{58559,59293,0},{58558,59278,0},{58551,59276,0}, {58546,59298,0},{58539,59294,0},{58538,59299,0},{58529,59343,0},{58521,59349,0}, {58516,59346,0},{58508,59336,0},{58499,59293,0},{58488,59306,0},{58483,59314,0}, {58481,59323,0},{58486,59353,0},{58486,59388,0},{58484,59393,0},{58479,59399,0}, {58476,59396,0},{58474,59381,0},{58473,59376,0},{58466,59373,0},{58464,59361,0}, {58461,59356,0},{58461,59346,0},{58459,59334,0},{58444,59328,0},{58443,59331,0}, {58443,59341,0},{58443,59356,0},{58446,59363,0},{58451,59378,0},{58453,59386,0}, {58451,59401,0},{58446,59409,0},{58436,59404,0},{58431,59394,0},{58429,59406,0}, {58426,59408,0},{58424,59424,0},{58416,59441,0},{58414,59438,0},{58413,59411,0}, {58411,59408,0},{58409,59413,0},{58408,59434,0},{58399,59441,0},{58399,59436,0}, {58399,59428,0},{58403,59413,0},{58403,59408,0},{58399,59408,0},{58394,59424,0}, {58391,59411,0},{58393,59393,0},{58391,59384,0},{58389,59383,0},{58386,59393,0}, {58381,59389,0},{58379,59393,0},{58379,59401,0},{58384,59411,0},{58384,59421,0}, {58374,59433,0},{58371,59454,0},{58361,59459,0},{58358,59454,0},{58359,59436,0}, {58353,59423,0},{58349,59406,0},{58348,59349,0},{58344,59341,0},{58341,59344,0}, {58334,59343,0},{58331,59349,0},{58329,59368,0},{58328,59388,0},{58329,59413,0}, {58333,59434,0},{58328,59451,0},{58329,59456,0},{58333,59456,0},{58338,59461,0}, {58336,59468,0},{58334,59469,0},{58326,59469,0},{58324,59461,0},{58318,59433,0}, {58318,59449,0},{58314,59463,0},{58304,59471,0},{58306,59448,0},{58306,59443,0}, {58304,59441,0},{58299,59438,0},{58299,59463,0},{58296,59474,0},{58291,59468,0}, {58289,59456,0},{58289,59436,0},{58293,59406,0},{58291,59393,0},{58288,59393,0}, {58283,59381,0},{58279,59398,0},{58274,59398,0},{58269,59384,0},{58268,59389,0}, {58264,59443,0},{58271,59468,0},{58271,59479,0},{58269,59484,0},{58263,59489,0}, {58256,59488,0},{58253,59486,0},{58246,59473,0},{58244,59478,0},{58238,59471,0}, {58233,59474,0},{58241,59491,0},{58238,59509,0},{58238,59523,0},{58248,59531,0}, {58251,59539,0},{58249,59551,0},{58246,59559,0},{58236,59558,0},{58228,59548,0}, {58213,59551,0},{58208,59519,0},{58209,59511,0},{58213,59503,0},{58219,59499,0}, {58221,59489,0},{58221,59486,0},{58213,59483,0},{58204,59481,0},{58199,59474,0}, {58201,59461,0},{58208,59464,0},{58214,59456,0},{58209,59456,0},{58204,59446,0}, {58208,59426,0},{58218,59414,0},{58221,59394,0},{58224,59366,0},{58224,59353,0}, {58221,59343,0},{58219,59348,0},{58214,59381,0},{58211,59383,0},{58211,59379,0}, {58214,59358,0},{58208,59368,0},{58206,59364,0},{58204,59383,0},{58201,59391,0}, {58199,59386,0},{58201,59361,0},{58201,59351,0},{58198,59351,0},{58191,59374,0}, {58183,59374,0},{58183,59383,0},{58189,59391,0},{58191,59398,0},{58186,59423,0}, {58183,59454,0},{58179,59468,0},{58166,59443,0},{58164,59448,0},{58168,59471,0}, {58168,59476,0},{58164,59476,0},{58161,59468,0},{58156,59464,0},{58154,59451,0}, {58151,59459,0},{58141,59443,0},{58139,59429,0},{58141,59413,0},{58148,59403,0}, {58148,59396,0},{58146,59384,0},{58148,59369,0},{58144,59358,0},{58141,59374,0}, {58134,59381,0},{58134,59391,0},{58129,59404,0},{58129,59428,0},{58128,59433,0}, {58116,59416,0},{58111,59394,0},{58111,59379,0},{58106,59374,0},{58103,59393,0}, {58106,59423,0},{58111,59451,0},{58109,59468,0},{58106,59469,0},{58099,59463,0}, {58094,59433,0},{58091,59439,0},{58088,59438,0},{58083,59423,0},{58083,59393,0}, {58086,59378,0},{58084,59348,0},{58093,59316,0},{58091,59309,0},{58089,59306,0}, {58073,59328,0},{58066,59344,0},{58054,59349,0},{58041,59324,0},{58038,59296,0}, {58038,59281,0},{58041,59276,0},{58059,59273,0},{58064,59261,0},{58069,59231,0}, {58076,59216,0},{58074,59208,0},{58064,59213,0},{58053,59229,0},{58046,59229,0}, {58044,59214,0},{58048,59189,0},{58046,59181,0},{58039,59171,0},{58036,59134,0}, {58034,59139,0},{58034,59158,0},{58034,59208,0},{58034,59213,0},{58023,59228,0}, {58021,59221,0},{58021,59183,0},{58019,59171,0},{58016,59124,0},{58009,59098,0}, {58004,59089,0},{58003,59111,0},{58006,59151,0},{58004,59218,0},{58004,59226,0}, {58001,59224,0},{57986,59174,0},{57968,59086,0},{57959,59031,0},{57963,59003,0}, {57959,58986,0},{57958,58978,0},{57951,58991,0},{57948,58979,0},{57933,58856,0}, {57928,58771,0},{57929,58733,0},{57923,58708,0},{57918,58668,0},{57916,58633,0}, {57913,58614,0},{57913,58598,0},{57914,58533,0},{57919,58518,0},{57923,58498,0}, {57928,58488,0},{57933,58489,0},{57934,58484,0},{57933,58468,0},{57931,58449,0}, {57929,58424,0},{57933,58399,0},{57933,58364,0},{57931,58299,0},{57933,58284,0}, {57934,58264,0},{57941,58236,0},{57943,58204,0},{57943,58133,0},{57946,58066,0}, {57953,57971,0},{57958,57888,0},{57956,57834,0},{57954,57749,0},{57949,57703,0}, {57941,57611,0},{57921,57456,0},{57896,57271,0},{57889,57236,0},{57873,57141,0}, {57859,57078,0},{57851,57046,0},{57841,57026,0},{57818,57006,0},{57809,57008,0}, {57803,57026,0},{57796,57101,0},{57783,57204,0},{57773,57268,0},{57763,57318,0}, {57761,57319,0},{57754,57299,0},{57754,57333,0},{57751,57353,0},{57749,57374,0}, {57741,57428,0},{57733,57483,0},{57726,57593,0},{57716,57689,0},{57706,57758,0}, {57694,57808,0},{57688,57814,0},{57679,57799,0},{57666,57751,0},{57658,57674,0}, {57654,57618,0},{57653,57581,0},{57656,57498,0},{57661,57446,0},{57661,57433,0}, {57658,57414,0},{57651,57408,0},{57631,57434,0},{57624,57408,0},{57623,57371,0}, {57621,57368,0},{57618,57383,0},{57604,57411,0},{57594,57416,0},{57586,57433,0}, {57583,57453,0},{57574,57459,0},{57559,57496,0},{57571,57534,0},{57576,57543,0}, {57603,57501,0},{57608,57504,0},{57609,57518,0},{57609,57566,0},{57606,57638,0}, {57606,57751,0},{57604,57873,0},{57601,57899,0},{57598,57921,0},{57583,57973,0}, {57566,57988,0},{57553,57958,0},{57543,57913,0},{57538,57876,0},{57536,57823,0}, {57533,57746,0},{57534,57699,0},{57534,57661,0},{57541,57558,0},{57541,57534,0}, {57539,57526,0},{57534,57544,0},{57533,57581,0},{57528,57604,0},{57523,57653,0}, {57516,57768,0},{57519,57813,0},{57518,57843,0},{57506,57888,0},{57479,57956,0}, {57463,58019,0},{57451,58099,0},{57444,58168,0},{57433,58329,0},{57423,58543,0}, {57401,58743,0},{57373,58944,0},{57313,59378,0},{57293,59573,0},{57281,59628,0}, {57273,59658,0},{57248,59624,0},{57239,59629,0},{57233,59668,0},{57233,59711,0}, {57236,59748,0},{57291,59959,0},{57303,60016,0},{57323,60173,0},{57331,60296,0}, {57333,60349,0},{57343,60471,0},{57348,60591,0},{57356,60821,0},{57354,60964,0}, {57348,61108,0},{57351,61223,0},{57361,61284,0},{57366,61303,0},{57386,61323,0}, {57399,61383,0},{57451,61744,0},{57479,61881,0},{57494,61964,0},{57499,62011,0}, {57503,62049,0},{57503,62099,0},{57499,62233,0},{57498,62294,0},{57488,62411,0}, {57488,62474,0},{57491,62493,0},{57501,62481,0},{57521,62528,0},{57533,62538,0}, {57554,62509,0},{57569,62518,0},{57578,62481,0},{57581,62473,0},{57594,62521,0}, {57608,62588,0},{57613,62593,0},{57619,62558,0},{57621,62531,0},{57631,62209,0}, {57644,62083,0},{57651,61996,0},{57654,61968,0},{57661,61951,0},{57678,61941,0}, {57686,61924,0},{57691,61939,0},{57691,61983,0},{57694,61969,0},{57698,61978,0}, {57698,61948,0},{57699,61943,0},{57709,61941,0},{57721,61953,0},{57728,61963,0}, {57729,61976,0},{57726,62019,0},{57726,62056,0},{57729,62024,0},{57731,62011,0}, {57744,62001,0},{57751,62014,0},{57753,62036,0},{57754,62093,0},{57769,62149,0}, {57789,62258,0},{57803,62349,0},{57808,62369,0},{57814,62379,0},{57826,62358,0}, {57831,62389,0},{57831,62403,0},{57824,62418,0},{57823,62431,0},{57831,62469,0}, {57838,62494,0},{57874,62698,0},{57879,62721,0},{57884,62729,0},{57899,62718,0}, {57904,62729,0},{57913,62728,0},{57913,62743,0},{57904,62774,0},{57901,62798,0}, {57916,62879,0},{57918,62884,0},{57919,62881,0},{57923,62858,0},{57923,62826,0}, {57921,62801,0},{57928,62829,0},{57931,62821,0},{57933,62824,0},{57934,62853,0}, {57933,62876,0},{57929,62904,0},{57933,62923,0},{57939,62948,0},{57943,62978,0}, {57948,63016,0},{57953,63093,0},{57968,63188,0},{57973,63244,0},{57981,63274,0}, {57986,63331,0},{57986,63348,0},{57981,63356,0},{57981,63366,0},{57988,63404,0}, {57986,63434,0},{57988,63449,0},{57993,63461,0},{57996,63478,0},{57996,63536,0}, {57999,63603,0},{58009,63634,0},{58016,63638,0},{58018,63628,0},{58019,63616,0}, {58016,63569,0},{58016,63566,0},{58019,63566,0},{58029,63593,0},{58031,63609,0}, {58036,63624,0},{58053,63661,0},{58056,63703,0},{58061,63724,0},{58079,63753,0}, {58086,63789,0},{58091,63876,0},{58094,63899,0},{58093,63943,0},{58099,63968,0}, {58103,63998,0},{58121,64053,0},{58124,64103,0},{58141,64164,0},{58143,64163,0}, {58143,64143,0},{58146,64124,0},{58144,64096,0},{58153,64089,0},{58154,64079,0}, {58153,64068,0},{58144,64053,0},{58139,64026,0},{58133,63994,0},{58129,63956,0}, {58129,63901,0},{58136,63851,0},{58138,63844,0},{58139,63848,0},{58141,63859,0}, {58141,63873,0},{58143,63879,0},{58153,63904,0},{58159,63928,0},{58161,63929,0}, {58163,63924,0},{58161,63911,0},{58158,63898,0},{58158,63879,0},{58153,63858,0}, {58154,63849,0},{58158,63846,0},{58168,63868,0},{58178,63903,0},{58194,63909,0}, {58204,63934,0},{58204,63954,0},{58209,63978,0},{58216,63999,0},{58218,64008,0}, {58216,64059,0},{58213,64081,0},{58213,64089,0},{58221,64114,0},{58223,64134,0}, {58228,64144,0},{58229,64159,0},{58236,64163,0},{58236,64138,0},{58244,64126,0}, {58251,64093,0},{58256,64089,0},{58258,64101,0},{58256,64166,0},{58253,64191,0}, {58256,64208,0},{58263,64221,0},{58271,64274,0},{58281,64313,0},{58293,64328,0}, {58301,64364,0},{58313,64391,0},{58324,64403,0},{58333,64404,0},{58348,64396,0}, {58364,64353,0},{58371,64323,0},{58393,64306,0},{58398,64308,0},{58401,64314,0}, {58408,64351,0},{58408,64378,0},{58408,64381,0},{58396,64373,0},{58379,64376,0}, {58373,64394,0},{58369,64408,0},{58369,64421,0},{58371,64434,0},{58373,64444,0}, {58399,64481,0},{58421,64528,0},{58424,64531,0},{58429,64529,0},{58431,64504,0}, {58436,64493,0},{58438,64493,0},{58441,64514,0},{58446,64558,0},{58444,64589,0}, {58441,64591,0},{58438,64584,0},{58436,64571,0},{58433,64569,0},{58429,64598,0}, {58424,64618,0},{58416,64638,0},{58409,64648,0},{58399,64654,0},{58361,64673,0}, {58356,64681,0},{58353,64699,0},{58364,64746,0},{58364,64789,0},{58366,64803,0}, {58373,64803,0},{58389,64764,0},{58396,64768,0},{58404,64783,0},{58436,64833,0}, {58448,64871,0},{58461,64899,0},{58464,64916,0},{58466,64944,0},{58466,64958,0}, {58463,64968,0},{58454,64988,0},{58448,64993,0},{58444,64988,0},{58421,64926,0}, {58401,64923,0},{58398,64926,0},{58394,64934,0},{58393,64951,0},{58394,64961,0}, {58398,65011,0},{58401,65036,0},{58408,65064,0},{58403,65116,0},{58408,65144,0}, {58403,65173,0},{58408,65211,0},{58406,65226,0},{58411,65249,0},{58413,65283,0}, {58419,65309,0},{58406,65303,0},{58399,65316,0},{58393,65318,0},{58388,65326,0}, {58388,65333,0},{58393,65334,0},{58396,65343,0},{58396,65368,0},{58393,65376,0}, {58393,65384,0},{58394,65391,0},{58404,65404,0},{58408,65421,0},{58408,65438,0}, {58401,65453,0},{58396,65458,0},{58378,65444,0},{58374,65476,0},{58369,65506,0}, {58386,0,0},{58391,8,0},{58398,12,0},{58403,33,0},{58409,45,0},{58414,70,0}, {58421,100,0},{58424,133,0},{58436,197,0},{58443,223,0},{58453,288,0},{58454,307,0}, {58454,343,0},{58463,395,0},{58468,442,0},{58473,545,0},{58476,585,0},{58476,662,0}, {58483,693,0},{58488,708,0},{58511,733,0},{58516,742,0},{58519,755,0},{58519,790,0}, {58518,797,0},{58514,803,0},{58498,823,0},{58493,833,0},{58488,848,0},{58489,867,0}, {58501,903,0},{58504,908,0},{58526,862,0},{58528,863,0},{58529,868,0},{58529,913,0}, {58524,932,0},{58506,987,0},{58498,1003,0},{58494,1025,0},{58479,1045,0}, {58469,1075,0},{58464,1127,0},{58466,1148,0},{58464,1162,0},{58463,1195,0}, {58464,1203,0},{58466,1208,0},{58494,1247,0},{58506,1265,0},{58508,1273,0}, {58509,1347,0},{58518,1395,0},{58519,1417,0},{58519,1432,0},{58508,1487,0}, {58508,1513,0},{58508,1570,0},{58511,1595,0},{58539,1803,0},{58538,1815,0}, {58531,1835,0},{58528,1853,0},{58519,1952,0},{58513,2003,0},{58498,2082,0}, {58496,2120,0},{58496,2185,0},{58494,2203,0},{58486,2240,0},{58481,2278,0}, {58483,2340,0},{58504,2548,0},{58506,2597,0},{58514,2627,0},{58521,2695,0}, {58523,2717,0},{58521,2730,0},{58519,2743,0},{58519,2753,0},{58524,2773,0}, {58526,2790,0},{58531,2807,0},{58536,2863,0},{58553,2948,0},{58554,2972,0}, {58554,3018,0},{58558,3098,0},{58559,3113,0},{58576,3165,0},{58584,3208,0}, {58598,3258,0},{58609,3293,0},{58614,3298,0},{58631,3303,0},{58636,3315,0}, {58641,3345,0},{58651,3332,0},{58659,3330,0},{58664,3332,0},{58671,3343,0}, {58681,3370,0},{58686,3397,0},{58688,3413,0},{58686,3442,0},{58683,3465,0}, {58664,3482,0},{58649,3485,0},{58641,3505,0},{58624,3555,0},{58608,3563,0}, {58589,3593,0},{58586,3607,0},{58584,3622,0},{58576,3650,0},{58569,3708,0}, {58566,3710,0},{58556,3710,0},{58558,3725,0},{58563,3733,0},{58566,3748,0}, {58573,3765,0},{58573,3775,0},{58569,3780,0},{58559,3785,0},{58559,3790,0}, {58563,3803,0},{58561,3818,0},{58554,3828,0},{58539,3838,0},{58536,3848,0}, {58541,3850,0},{58543,3863,0},{58543,3870,0},{58539,3873,0},{58541,3883,0}, {58548,3897,0},{58551,3897,0},{58551,3908,0},{58551,3912,0},{58556,3910,0}, {58564,3918,0},{58569,3942,0},{58571,3943,0},{58571,3972,0},{58574,3963,0}, {58576,3972,0},{58581,3968,0},{58584,3972,0},{58588,3960,0},{58591,3955,0}, {58594,3960,0},{58591,3973,0},{58593,3980,0},{58596,3982,0},{58596,3990,0}, {58598,3988,0},{58599,3977,0},{58608,3970,0},{58611,3972,0},{58613,3963,0}, {58618,3965,0},{58618,3980,0},{58619,3982,0},{58628,3975,0},{58639,3975,0}, {58646,3992,0},{58651,3997,0},{58658,4040,0},{58666,4057,0},{58669,4093,0}, {58678,4103,0},{58683,4105,0},{58684,4110,0},{58686,4138,0},{58698,4198,0}, {58698,4218,0},{58699,4228,0},{58709,4252,0},{58718,4263,0},{58721,4263,0}, {58723,4280,0},{58726,4282,0},{58728,4303,0},{58731,4312,0},{58733,4338,0}, {58731,4350,0},{58729,4375,0},{58733,4383,0},{58739,4405,0},{58738,4425,0}, {58738,4450,0},{58744,4457,0},{58748,4468,0},{58754,4477,0},{58763,4500,0}, {58766,4543,0},{58766,4552,0},{58763,4557,0},{58761,4560,0},{58759,4565,0}, {58759,4572,0},{58763,4575,0},{58766,4575,0},{58769,4583,0},{58771,4603,0}, {58771,4630,0},{58778,4640,0},{58784,4627,0},{58789,4630,0},{58794,4623,0}, {58799,4623,0},{58804,4633,0},{58808,4648,0},{58809,4690,0},{58808,4697,0}, {58808,4698,0},{58803,4697,0},{58801,4700,0},{58801,4720,0},{58799,4732,0}, {58791,4750,0},{58786,4753,0},{58784,4763,0},{58779,4762,0},{58778,4767,0}, {58778,4775,0},{58779,4783,0},{58778,4788,0},{58774,4793,0},{58773,4818,0}, {58776,4830,0},{58778,4845,0},{58791,4865,0},{58794,4883,0},{58799,4912,0}, {58808,4928,0},{58806,4888,0},{58806,4875,0},{58808,4870,0},{58813,4873,0}, {58813,4860,0},{58818,4842,0},{58823,4835,0},{58834,4833,0},{58838,4837,0}, {58841,4843,0},{58841,4860,0},{58846,4888,0},{58848,4907,0},{58853,4923,0}, {58853,4932,0},{58841,4940,0},{58836,4957,0},{58833,4985,0},{58824,4993,0}, {58823,4998,0},{58823,5007,0},{58826,5010,0},{58824,5023,0},{58819,5043,0}, {58818,5057,0},{58821,5073,0},{58821,5083,0},{58824,5095,0},{58828,5097,0}, {58826,5083,0},{58828,5080,0},{58828,5072,0},{58831,5058,0},{58831,5045,0}, {58836,5050,0},{58839,5045,0},{58843,5048,0},{58849,5060,0},{58853,5065,0}, {58856,5077,0},{58859,5043,0},{58859,5033,0},{58863,5023,0},{58866,5022,0}, {58884,5028,0},{58894,5038,0},{58906,5063,0},{58911,5113,0},{58916,5125,0}, {58918,5135,0},{58933,5175,0},{58938,5197,0},{58943,5248,0},{58941,5272,0}, {58943,5288,0},{58946,5312,0},{58951,5378,0},{58951,5390,0},{58948,5398,0}, {58948,5407,0},{58948,5450,0},{58946,5477,0},{58948,5493,0},{58944,5527,0}, {58941,5533,0},{58936,5552,0},{58934,5562,0},{58929,5570,0},{58913,5600,0}, {58906,5608,0},{58904,5617,0},{58896,5627,0},{58896,5668,0},{58891,5683,0}, {58884,5717,0},{58881,5728,0},{58866,5732,0},{58866,5697,0},{58866,5687,0}, {58856,5675,0},{58854,5662,0},{58848,5663,0},{58846,5652,0},{58844,5655,0}, {58843,5668,0},{58836,5670,0},{58834,5677,0},{58831,5678,0},{58829,5702,0}, {58831,5700,0},{58833,5690,0},{58834,5690,0},{58834,5707,0},{58839,5722,0}, {58839,5725,0},{58834,5727,0},{58834,5730,0},{58836,5748,0},{58834,5770,0}, {58831,5780,0},{58829,5792,0},{58826,5797,0},{58829,5805,0},{58829,5820,0}, {58823,5822,0},{58819,5837,0},{58818,5842,0},{58818,5852,0},{58819,5867,0}, {58819,5885,0},{58816,5895,0},{58809,5900,0},{58806,5907,0},{58804,5902,0}, {58806,5887,0},{58804,5885,0},{58799,5892,0},{58794,5912,0},{58798,5930,0}, {58798,5938,0},{58801,5945,0},{58799,5950,0},{58794,5950,0},{58793,5955,0}, {58798,5963,0},{58799,5975,0},{58796,6013,0},{58799,6053,0},{58796,6067,0}, {58791,6088,0},{58791,6103,0},{58788,6110,0},{58786,6133,0},{58788,6137,0}, {58789,6148,0},{58784,6140,0},{58781,6143,0},{58783,6167,0},{58781,6213,0}, {58778,6228,0},{58778,6242,0},{58774,6248,0},{58771,6275,0},{58773,6285,0}, {58783,6312,0},{58784,6348,0},{58784,6377,0},{58778,6433,0},{58769,6485,0}, {58769,6530,0},{58766,6568,0},{58763,6595,0},{58761,6650,0},{58758,6677,0}, {58758,6702,0},{58759,6720,0},{58758,6732,0},{58754,6750,0},{58753,6798,0}, {58748,6840,0},{58749,6855,0},{58749,6905,0},{58753,6918,0},{58759,6922,0}, {58761,6938,0},{58763,6957,0},{58761,6962,0},{58759,6965,0},{58748,6970,0}, {58731,6965,0},{58721,6967,0},{58716,6970,0},{58704,6992,0},{58691,6988,0}, {58679,6977,0},{58673,6992,0},{58666,6990,0},{58659,6980,0},{58653,6950,0}, {58651,6918,0},{58646,6918,0},{58643,6902,0},{58639,6897,0},{58646,6975,0}, {58644,6982,0},{58643,6982,0},{58638,6972,0},{58629,6937,0},{58626,6888,0}, {58624,6883,0},{58621,6885,0},{58619,6897,0},{58619,6953,0},{58614,6967,0}, {58609,6968,0},{58606,6958,0},{58603,6937,0},{58604,6915,0},{58609,6885,0}, {58609,6858,0},{58608,6847,0},{58604,6845,0},{58601,6848,0},{58598,6873,0}, {58593,6878,0},{58591,6872,0},{58589,6852,0},{58586,6850,0},{58581,6862,0}, {58579,6863,0},{58581,6842,0},{58581,6833,0},{58578,6828,0},{58574,6828,0}, {58564,6900,0},{58558,6910,0},{58551,6912,0},{58549,6908,0},{58544,6885,0}, {58544,6848,0},{58549,6837,0},{58548,6825,0},{58546,6810,0},{58543,6815,0}, {58541,6813,0},{58538,6803,0},{58534,6800,0},{58529,6805,0},{58521,6807,0}, {58514,6800,0},{58509,6827,0},{58499,6847,0},{58498,6857,0},{58499,6867,0}, {58506,6880,0},{58506,6897,0},{58498,6908,0},{58491,6912,0},{58461,6908,0}, {58458,6912,0},{58441,6988,0},{58438,7027,0},{58439,7062,0},{58438,7087,0}, {58436,7118,0},{58424,7107,0},{58418,7107,0},{58411,7118,0},{58408,7140,0}, {58421,7155,0},{58443,7218,0},{58459,7232,0},{58471,7230,0},{58478,7235,0}, {58489,7197,0},{58496,7183,0},{58503,7180,0},{58509,7188,0},{58516,7223,0}, {58518,7243,0},{58519,7257,0},{58526,7267,0},{58528,7277,0},{58534,7288,0}, {58538,7303,0},{58541,7312,0},{58546,7315,0},{58554,7347,0},{58556,7358,0}, {58556,7378,0},{58563,7402,0},{58564,7417,0},{58564,7430,0},{58563,7450,0}, {58563,7472,0},{58558,7483,0},{58558,7507,0},{58563,7548,0},{58564,7568,0}, {58568,7575,0},{58573,7577,0},{58583,7590,0},{58584,7597,0},{58586,7598,0}, {58589,7608,0},{58593,7597,0},{58594,7607,0},{58596,7605,0},{58598,7617,0}, {58594,7618,0},{58596,7632,0},{58599,7633,0},{58596,7647,0},{58598,7655,0}, {58609,7672,0},{58608,7683,0},{58609,7688,0},{58611,7688,0},{58614,7710,0}, {58614,7727,0},{58618,7743,0},{58623,7750,0},{58629,7787,128},{58631,7792,0}, {58634,7788,0},{58638,7793,0},{58648,7792,0},{58654,7800,0},{58658,7813,0}, {58661,7808,0},{58664,7792,0},{58668,7785,0},{58669,7785,0},{58669,7792,0}, {58673,7785,0},{58679,7790,0},{58684,7810,0},{58688,7807,0},{58691,7815,0}, {58694,7825,0},{58691,7827,0},{58696,7833,0},{58694,7835,0},{58691,7833,0}, {58691,7838,0},{58696,7845,0},{58703,7862,0},{58719,7887,0},{58723,7895,0}, {58728,7915,0},{58731,7952,0},{58736,7968,0},{58746,8028,0},{58748,8043,0}, {58748,8063,0},{58749,8078,0},{58749,8092,0},{58756,8130,0},{58759,8142,0}, {58771,8140,0},{58774,8147,0},{58768,8175,0},{58769,8205,0},{58773,8202,0}, {58776,8188,0},{58781,8168,0},{58784,8150,0},{58786,8147,0},{58788,8150,0}, {58789,8163,0},{58793,8173,0},{58801,8188,0},{58811,8200,0},{58814,8220,0}, {58813,8235,0},{58799,8253,0},{58796,8265,0},{58798,8272,0},{58806,8282,0}, {58811,8293,0},{58818,8320,0},{58819,8337,0},{58821,8382,0},{58819,8408,0}, {58821,8417,0},{58823,8458,0},{58821,8507,0},{58818,8540,0},{58818,8580,0}, {58823,8593,0},{58824,8598,0},{58828,8600,0},{58829,8607,0},{58834,8693,0}, {58844,8725,0},{58846,8748,0},{58851,8758,0},{58854,8775,0},{58858,8780,0}, {58866,8780,0},{58869,8785,0},{58871,8812,0},{58933,8823,0},{58931,8838,0}, {58928,8848,0},{58923,8848,0},{58916,8855,0},{58894,8868,0},{58891,8877,0}, {58884,8885,0},{58876,8877,0},{58864,8875,0},{58863,8888,0},{58858,8897,0}, {58858,8920,0},{58854,8937,0},{58853,8960,0},{58854,8973,0},{58859,8995,0}, {58858,9028,0},{58859,9033,0},{58859,9047,0},{58866,9060,0},{58868,9088,0}, {58871,9102,0},{58873,9112,0},{58878,9118,0},{58876,9143,0},{58878,9153,0}, {58881,9168,0},{58884,9193,0},{58886,9198,0},{58883,9237,0},{58874,9267,0}, {58873,9277,0},{58873,9285,0},{58881,9300,0},{58881,9307,0},{58878,9320,0}, {58878,9358,0},{58876,9372,0},{58879,9367,0},{58886,9378,0},{58886,9405,0}, {58883,9413,0},{58878,9418,0},{58876,9413,0},{58873,9418,0},{58869,9417,0}, {58869,9420,0},{58873,9435,0},{58884,9455,0},{58889,9478,0},{58899,9483,0}, {58896,9503,0},{58891,9520,0},{58891,9525,0},{58896,9523,0},{58911,9507,0}, {58914,9507,0},{58916,9510,0},{58913,9528,0},{58914,9540,0},{58909,9550,0}, {58896,9570,0},{58889,9578,0},{58883,9582,0},{58878,9577,0},{58876,9580,0}, {58878,9632,0},{58879,9643,0},{58878,9662,0},{58879,9682,0},{58888,9705,0}, {58886,9730,0},{58883,9735,0},{58881,9748,0},{58884,9755,0},{58884,9777,0}, {58881,9785,0},{58878,9788,0},{58886,9810,0},{58891,9832,0},{58893,9847,0}, {58891,9865,0},{58898,9867,0},{58901,9870,0},{58898,9890,0},{58899,9900,0}, {58906,9898,0},{58908,9905,0},{58911,9903,0},{58946,9878,0},{58956,9875,0}, {58958,9888,0},{58956,9900,0},{58954,9912,0},{58956,9925,0},{58956,9930,0}, {58954,9935,0},{58943,9943,0},{58938,9955,0},{58941,9957,0},{58946,9955,0}, {58954,9962,0},{58961,9952,0},{58961,9955,0},{58963,9972,0},{58968,9990,0}, {58971,10003,0},{58968,10025,0},{58966,10028,0},{58953,10030,0},{58934,10027,0}, {58928,10032,0},{58921,10032,0},{58921,10042,0},{58918,10045,0},{58923,10062,0}, {58928,10103,0},{58926,10110,0},{58923,10098,0},{58921,10083,0},{58918,10080,0}, {58914,10085,0},{58916,10090,0},{58914,10097,0},{58913,10102,0},{58921,10130,0}, {58926,10128,0},{58928,10120,0},{58928,10132,0},{58931,10140,0},{58933,10128,0}, {58934,10102,0},{58936,10105,0},{58938,10132,0},{58941,10155,0},{58939,10180,0}, {58939,10212,0},{58943,10247,0},{58949,10263,0},{58951,10277,0},{58951,10283,0}, {58944,10317,0},{58946,10322,0},{58944,10333,0},{58941,10343,0},{58938,10362,0}, {58939,10377,0},{58953,10383,0},{58956,10395,0},{58956,10400,0},{58953,10408,0}, {58949,10410,0},{58943,10395,0},{58941,10395,0},{58938,10417,0},{58936,10435,0}, {58934,10448,0},{58926,10468,0},{58926,10488,0},{58924,10498,0},{58918,10535,0}, {58916,10548,0},{58911,10563,0},{58909,10588,0},{58903,10617,0},{58896,10660,0}, {58893,10673,0},{58891,10687,0},{58891,10715,0},{58886,10742,0},{58881,10753,0}, {58879,10780,0},{58878,10792,0},{58878,10805,0},{58874,10818,0},{58866,10832,0}, {58864,10842,0},{58861,10845,0},{58859,10860,0},{58844,10880,0},{58844,10887,0}, {58848,10898,0},{58846,10917,0},{58849,10920,0},{58848,10927,0},{58848,10933,0}, {58849,10933,0},{58853,10922,0},{58854,10918,0},{58861,10928,0},{58864,10928,0}, {58869,10933,0},{58869,10950,0},{58874,10945,0},{58876,10947,0},{58876,10958,0}, {58879,10982,0},{58878,10990,0},{58874,11000,0},{58874,11025,0},{58876,11027,0}, {58878,11020,0},{58879,11020,0},{58886,11037,0},{58886,11043,0},{58884,11048,0}, {58883,11053,0},{58891,11060,0},{58896,11068,0},{58899,11055,0},{58906,11055,0}, {58929,11088,0},{58939,11135,0},{58948,11210,0},{58949,11250,0},{58958,11293,0}, {58964,11317,0},{58964,11340,0},{58963,11350,0},{58951,11365,0},{58948,11375,0}, {58934,11400,0},{58933,11412,0},{58919,11437,0},{58916,11453,0},{58914,11453,0}, {58913,11445,0},{58909,11443,0},{58904,11457,0},{58893,11450,0},{58889,11452,0}, {58891,11472,0},{58889,11478,0},{58883,11482,0},{58889,11495,0},{58889,11517,0}, {58891,11518,0},{58896,11535,0},{58899,11553,0},{58901,11592,0},{58899,11618,0}, {58898,11627,0},{58891,11635,0},{58889,11645,0},{58881,11660,0},{58879,11673,0}, {58873,11677,0},{58858,11690,0},{58853,11692,0},{58843,11740,0},{58841,11760,0}, {58838,11777,0},{58841,11795,0},{58839,11807,0},{58838,11832,0},{58839,11837,0}, {58846,11847,0},{58848,11863,0},{58844,11888,0},{58844,11928,0},{58843,11950,0}, {58848,11973,0},{58851,12007,0},{58853,12050,0},{58856,12062,0},{58854,12073,0}, {58853,12080,0},{58854,12090,0},{58853,12102,0},{58868,12132,0},{58869,12157,0}, {58873,12167,0},{58881,12212,0},{58874,12245,0},{58874,12272,0},{58869,12302,0}, {58868,12305,0},{58859,12300,0},{58858,12302,0},{58858,12313,0},{58864,12323,0}, {58864,12330,0},{58861,12337,0},{58859,12358,0},{58861,12367,0},{58866,12363,0}, {58868,12367,0},{58868,12382,0},{58874,12393,0},{58878,12412,0},{58884,12428,0}, {58886,12440,0},{58886,12450,0},{58884,12462,0},{58876,12480,0},{58876,12492,0}, {58866,12495,0},{58864,12502,0},{58868,12507,0},{58871,12503,0},{58876,12507,0}, {58878,12513,0},{58876,12518,0},{58873,12523,0},{58869,12530,0},{58871,12537,0}, {58874,12538,0},{58879,12532,0},{58878,12545,0},{58888,12548,0},{58896,12562,0}, {58906,12592,0},{58909,12625,0},{58908,12638,0},{58896,12655,0},{58894,12665,0}, {58891,12675,0},{58891,12692,0},{58888,12697,0},{58884,12707,0},{58883,12723,0}, {58881,12747,0},{58879,12753,0},{58874,12762,0},{58866,12765,0},{58861,12775,0}, {58853,12780,0},{58838,12798,0},{58833,12828,0},{58834,12842,0},{58834,12858,0}, {58834,12862,0},{58838,12865,0},{58839,12878,0},{58838,12907,0},{58834,12925,0}, {58833,12937,0},{58834,12943,0},{58839,12957,0},{58853,12973,0},{58856,12973,0}, {58859,12978,0},{58866,12980,0},{58871,12970,0},{58879,12972,0},{58883,12975,0}, {58891,12987,0},{58901,12995,0},{58913,13027,0},{58913,13040,0},{58916,13055,0}, {58914,13077,0},{58916,13082,0},{58923,13082,0},{58923,13085,0},{58923,13110,0}, {58918,13140,0},{58916,13197,0},{58921,13223,0},{58923,13252,0},{58919,13267,0}, {58919,13285,0},{58923,13303,0},{58926,13315,0},{58929,13348,0},{58929,13360,0}, {58928,13365,0},{58926,13385,0},{58923,13393,0},{58918,13398,0},{58914,13417,0}, {58916,13422,0},{58923,13430,0},{58931,13465,0},{58929,13478,0},{58926,13497,0}, {58926,13507,0},{58934,13540,0},{58933,13550,0},{58929,13557,0},{58929,13568,0}, {58926,13580,0},{58919,13592,0},{58919,13600,0},{58916,13603,0},{58911,13622,0}, {58908,13627,0},{58908,13637,0},{58899,13650,0},{58901,13668,0},{58903,13675,0}, {58906,13698,0},{58901,13738,0},{58903,13747,0},{58899,13763,0},{58899,13773,0}, {58896,13780,0},{58894,13790,0},{58889,13808,0},{58889,13828,0},{58886,13833,0}, {58883,13847,0},{58886,13868,0},{58881,13877,0},{58883,13898,0},{58881,13910,0}, {58883,13933,0},{58878,13955,0},{58878,13967,0},{58876,13970,0},{58874,13978,0}, {58871,13992,0},{58871,14010,0},{58869,14017,0},{58864,14018,0},{58863,14023,0}, {58863,14095,0},{58859,14108,0},{58861,14115,0},{58853,14135,0},{58853,14140,0}, {58856,14143,0},{58858,14152,0},{58859,14170,0},{58859,14195,0},{58856,14215,0}, {58851,14225,0},{58841,14237,0},{58838,14247,0},{58836,14257,0},{58836,14288,0}, {58838,14298,0},{58851,14328,0},{58851,14340,0},{58846,14372,0},{58839,14380,0}, {58831,14380,0},{58826,14388,0},{58829,14408,0},{58836,14430,0},{58834,14445,0}, {58828,14455,0},{58819,14460,0},{58814,14457,0},{58811,14458,0},{58813,14465,0}, {58821,14482,0},{58826,14502,0},{58831,14513,0},{58834,14537,0},{58833,14540,0}, {58826,14537,0},{58824,14540,0},{58821,14578,0},{58816,14583,0},{58803,14560,0}, {58793,14550,0},{58783,14533,0},{58774,14525,0},{58771,14570,0},{58774,14603,0}, {58774,14613,0},{58771,14628,0},{58764,14637,0},{58764,14658,0},{58754,14667,0}, {58751,14688,0},{58743,14698,0},{58736,14737,0},{58734,14762,0},{58738,14793,0}, {58736,14815,0},{58726,14832,0},{58713,14842,0},{58709,14838,0},{58713,14820,0}, {58709,14802,0},{58708,14792,0},{58699,14795,0},{58696,14803,0},{58693,14847,0}, {58694,14860,0},{58696,14867,0},{58699,14882,0},{58701,14905,0},{58704,14918,0}, {58703,14938,0},{58698,14960,0},{58696,14983,0},{58691,14980,0},{58689,14983,0}, {58689,14990,0},{58698,15053,0},{58701,15112,0},{58701,15115,0},{58698,15118,0}, {58691,15115,0},{58684,15107,0},{58669,15098,0},{58661,15127,0},{58651,15153,0}, {58649,15167,0},{58651,15170,0},{58654,15185,0},{58658,15215,0},{58654,15268,0}, {58649,15288,0},{58648,15307,0},{58654,15345,0},{58658,15352,0},{58654,15367,0}, {58658,15398,0},{58659,15402,0},{58666,15403,0},{58671,15400,0},{58673,15397,0}, {58676,15380,0},{58679,15375,0},{58684,15375,0},{58684,15392,0},{58686,15395,0}, {58688,15393,0},{58693,15373,0},{58698,15368,0},{58703,15370,0},{58704,15382,0}, {58694,15415,0},{58686,15425,0},{58683,15438,0},{58686,15448,0},{58686,15457,0}, {58681,15472,0},{58674,15478,0},{58674,15450,0},{58671,15455,0},{58666,15467,0}, {58661,15462,0},{58659,15448,0},{58658,15447,0},{58643,15472,0},{58636,15490,0}, {58626,15488,0},{58621,15478,0},{58618,15497,0},{58618,15520,0},{58621,15520,0}, {58626,15525,0},{58631,15543,0},{58629,15550,0},{58619,15563,0},{58619,15568,0}, {58624,15568,0},{58618,15587,0},{58618,15602,0},{58621,15605,0},{58624,15612,0}, {58628,15605,0},{58633,15605,0},{58636,15605,0},{58638,15610,0},{58634,15652,0}, {58616,15690,0},{58621,15697,0},{58618,15702,0},{58621,15707,0},{58621,15720,0}, {58629,15717,0},{58633,15722,0},{58629,15733,0},{58619,15743,0},{58618,15752,0}, {58621,15763,0},{58619,15787,0},{58623,15792,0},{58614,15828,0},{58601,15847,0}, {58601,15860,0},{58603,15867,0},{58603,15885,0},{58601,15893,0},{58598,15900,0}, {58601,15900,0},{58604,15898,0},{58606,15902,0},{58601,15913,0},{58596,15917,0}, {58591,15935,0},{58584,15953,0},{58581,15978,0},{58566,16013,0},{58558,16037,0}, {58554,16042,0},{58549,16038,0},{58548,16055,0},{58543,16067,0},{58539,16065,0}, {58539,16047,0},{58536,16042,0},{58533,16048,0},{58526,16082,0},{58509,16105,0}, {58514,16162,0},{58514,16168,0},{58509,16172,0},{58506,16180,0},{58503,16180,0}, {58499,16185,0},{58501,16190,0},{58504,16188,0},{58514,16200,0},{58514,16205,0}, {58509,16207,0},{58508,16202,0},{58498,16198,0},{58493,16203,0},{58499,16210,0}, {58506,16220,0},{58509,16252,0},{58508,16275,0},{58506,16280,0},{58498,16287,0}, {58494,16297,0},{58493,16292,0},{58489,16297,0},{58484,16300,0},{58483,16317,0}, {58474,16320,0},{58469,16352,0},{58469,16360,0},{58473,16378,0},{58479,16360,0}, {58481,16365,0},{58483,16363,0},{58486,16352,0},{58489,16352,0},{58489,16355,0}, {58488,16365,0},{58483,16372,0},{58483,16383,0},{58484,16390,0},{58483,16393,0}, {58483,16398,0},{58488,16410,0},{58488,16437,0},{58486,16465,0},{58481,16473,0}, {58481,16490,0},{58478,16495,0},{58481,16515,0},{58479,16538,0},{58478,16550,0}, {58471,16563,0},{58468,16580,0},{58464,16580,0},{58473,16608,0},{58476,16632,0}, {58474,16677,0},{58473,16683,0},{58466,16690,0},{58466,16672,0},{58469,16660,0}, {58466,16647,0},{58459,16660,0},{58458,16673,0},{58459,16680,0},{58459,16698,0}, {58463,16720,0},{58461,16738,0},{58463,16748,0},{58459,16772,0},{58456,16780,0}, {58449,16792,0},{58443,16790,0},{58441,16778,0},{58438,16783,0},{58428,16815,0}, {58421,16823,0},{58419,16833,0},{58418,16847,0},{58413,16892,0},{58411,16892,0}, {58408,16903,0},{58404,16905,0},{58401,16923,0},{58394,16922,0},{58393,16925,0}, {58394,16947,0},{58393,16955,0},{58388,16957,0},{58386,16965,0},{58386,16987,0}, {58379,16993,0},{58379,17002,0},{58374,17010,0},{58371,17025,0},{58371,17030,0}, {58376,17027,0},{58379,17033,0},{58383,17033,0},{58388,17043,0},{58393,17033,0}, {58408,17022,0},{58406,17030,0},{58401,17045,0},{58386,17058,0},{58369,17080,0}, {58361,17083,0},{58349,17100,0},{58339,17078,0},{58339,17062,0},{58333,17038,0}, {58336,17025,0},{58331,17020,0},{58329,17005,0},{58323,17008,0},{58318,16998,0}, {58308,17007,0},{58304,17002,0},{58301,17002,0},{58298,16987,0},{58296,17002,0}, {58298,17008,0},{58304,17020,0},{58306,17028,0},{58298,17032,0},{58288,17035,0}, {58278,17032,0},{58274,17023,0},{58276,17013,0},{58276,17005,0},{58268,17020,0}, {58266,17002,0},{58249,16990,0},{58241,16970,0},{58233,16972,0},{58229,16963,0}, {58226,16952,0},{58228,16927,0},{58221,16925,0},{58216,16932,0},{58211,16927,0}, {58211,16918,0},{58211,16902,0},{58211,16900,0},{58206,16910,0},{58203,16910,0}, {58199,16905,0},{58193,16920,0},{58189,16917,0},{58186,16900,0},{58189,16888,0}, {58198,16862,0},{58189,16858,0},{58184,16853,0},{58181,16838,0},{58186,16827,0}, {58198,16810,0},{58194,16785,0},{58189,16775,0},{58186,16773,0},{58184,16762,0}, {58181,16755,0},{58178,16732,0},{58179,16718,0},{58178,16700,0},{58171,16707,0}, {58169,16690,0},{58163,16667,0},{58159,16648,0},{58164,16628,0},{58163,16617,0}, {58156,16618,0},{58156,16593,0},{58154,16582,0},{58151,16592,0},{58148,16613,0}, {58144,16628,0},{58143,16622,0},{58144,16615,0},{58148,16587,0},{58143,16573,0}, {58138,16622,0},{58136,16627,0},{58129,16632,0},{58128,16612,0},{58129,16592,0}, {58134,16532,0},{58131,16512,0},{58119,16512,0},{58119,16503,0},{58126,16490,0}, {58121,16482,0},{58118,16483,0},{58111,16510,0},{58106,16507,0},{58101,16512,0}, {58098,16522,0},{58089,16537,0},{58086,16557,0},{58083,16552,0},{58074,16553,0}, {58073,16548,0},{58073,16538,0},{58079,16532,0},{58081,16525,0},{58078,16492,0}, {58078,16452,0},{58066,16462,0},{58071,16433,0},{58071,16423,0},{58069,16422,0}, {58063,16428,0},{58059,16418,0},{58058,16402,0},{58056,16408,0},{58054,16410,0}, {58046,16393,0},{58046,16388,0},{58051,16395,0},{58054,16387,0},{58059,16383,0}, {58061,16337,0},{58068,16315,0},{58066,16305,0},{58073,16295,0},{58071,16287,0}, {58063,16280,0},{58061,16263,0},{58058,16253,0},{58053,16225,0},{58046,16238,0}, {58043,16253,0},{58036,16250,0},{58034,16265,0},{58031,16270,0},{58026,16272,0}, {58024,16257,0},{58019,16273,0},{58016,16278,0},{58014,16325,0},{58009,16362,0}, {58011,16427,0},{58001,16447,0},{57993,16438,0},{57993,16450,0},{57998,16468,0}, {57996,16480,0},{57994,16482,0},{57979,16477,0},{57984,16423,0},{57986,16378,0}, {57989,16322,0},{57989,16293,0},{57979,16310,0},{57966,16292,0},{57961,16310,0}, {57958,16307,0},{57958,16293,0},{57953,16297,0},{57946,16288,0},{57943,16308,0}, {57941,16312,0},{57941,16303,0},{57941,16283,0},{57928,16277,0},{57926,16255,0}, {57924,16263,0},{57924,16260,0},{57926,16247,0},{57926,16243,0},{57921,16257,0}, {57921,16292,0},{57916,16287,0},{57914,16267,0},{57913,16283,0},{57911,16288,0}, {57903,16278,0},{57893,16295,0},{57884,16285,0},{57881,16277,0},{57881,16288,0}, {57878,16293,0},{57876,16270,0},{57874,16262,0},{57871,16268,0},{57866,16300,0}, {57863,16307,0},{57861,16300,0},{57851,16290,0},{57851,16263,0},{57844,16257,0}, {57841,16233,0},{57839,16250,0},{57836,16243,0},{57838,16263,0},{57838,16270,0}, {57834,16270,0},{57833,16317,0},{57831,16325,0},{57828,16322,0},{57823,16338,0}, {57821,16337,0},{57811,16355,0},{57799,16363,0},{57794,16383,0},{57789,16390,0}, {57786,16387,0},{57781,16360,0},{57774,16375,0},{57769,16358,0},{57766,16360,0}, {57768,16387,0},{57771,16407,0},{57771,16430,0},{57766,16447,0},{57763,16457,0}, {57754,16448,0},{57746,16460,0},{57736,16457,128},{57734,16447,0},{57728,16445,0}, {57724,16423,0},{57721,16420,0},{57723,16448,0},{57728,16460,0},{57733,16493,0}, {57726,16500,0},{57723,16492,0},{57711,16495,0},{57716,16520,0},{57721,16515,0}, {57729,16538,0},{57736,16550,0},{57729,16570,0},{57723,16562,0},{57718,16545,0}, {57706,16578,0},{57696,16568,0},{57691,16607,0},{57688,16645,0},{57688,16693,0}, {57686,16708,0},{57683,16720,0},{57674,16728,0},{57669,16722,0},{57668,16697,0}, {57668,16690,0},{57669,16692,0},{57671,16700,0},{57676,16697,0},{57681,16665,0}, {57684,16618,0},{57683,16590,0},{57678,16548,0},{57679,16483,0},{57679,16447,0}, {57678,16432,0},{57676,16418,0},{57671,16403,0},{57669,16405,0},{57668,16398,0}, {57666,16355,0},{57659,16335,0},{57656,16308,0},{57654,16288,0},{57643,16283,0}, {57641,16278,0},{57643,16255,0},{57648,16252,0},{57651,16240,0},{57649,16178,0}, {57639,16175,0},{57638,16125,0},{57633,16107,0},{57631,16092,0},{57636,16045,0}, {57643,16015,0},{57643,16000,0},{57638,15985,0},{57634,15985,0},{57626,16027,0}, {57623,16047,0},{57609,16052,0},{57606,16028,0},{57603,16052,0},{57599,16050,0}, {57593,16067,0},{57591,16053,0},{57584,16043,0},{57579,16008,0},{57569,16008,0}, {57561,15980,0},{57556,15975,0},{57549,15952,0},{57548,15925,0},{57546,15920,0}, {57543,15932,0},{57544,16000,0},{57549,16037,0},{57548,16047,0},{57543,16058,0}, {57538,16048,0},{57531,16052,0},{57531,16028,0},{57526,16027,0},{57519,15942,0}, {57513,15917,0},{57506,15938,0},{57494,15953,0},{57496,15982,0},{57496,16013,0}, {57499,16078,0},{57499,16093,0},{57489,16105,0},{57484,16098,0},{57484,16073,0}, {57483,16065,0},{57479,16027,0},{57481,16013,0},{57483,16013,0},{57483,16007,0}, {57479,15978,0},{57476,15992,0},{57471,16020,0},{57473,16062,0},{57478,16092,0}, {57473,16103,0},{57473,16122,0},{57468,16123,0},{57468,16105,0},{57464,16087,0}, {57461,16082,0},{57461,16070,0},{57458,16073,0},{57458,16045,0},{57459,16028,0}, {57458,16005,0},{57454,16007,0},{57453,16037,0},{57449,16043,0},{57449,16062,0}, {57446,16058,0},{57446,16090,0},{57441,16055,0},{57431,16070,0},{57428,16090,0}, {57426,16085,0},{57424,16062,0},{57419,16080,0},{57416,16065,0},{57414,16077,0}, {57414,16105,0},{57411,16103,0},{57413,16163,0},{57416,16210,0},{57413,16227,0}, {57404,16220,0},{57398,16153,0},{57389,16150,0},{57384,16128,0},{57383,16085,0}, {57381,16080,0},{57376,16102,0},{57379,16148,0},{57376,16185,0},{57373,16192,0}, {57369,16238,0},{57361,16245,0},{57358,16237,0},{57353,16293,0},{57348,16297,0}, {57346,16283,0},{57343,16297,0},{57341,16327,0},{57338,16330,0},{57334,16353,0}, {57331,16352,0},{57331,16367,0},{57329,16380,0},{57318,16393,0},{57314,16387,0}, {57311,16348,0},{57303,16335,0},{57298,16348,0},{57296,16363,0},{57298,16417,0}, {57301,16477,0},{57298,16503,0},{57293,16543,0},{57284,16553,0},{57279,16532,0}, {57274,16570,0},{57273,16618,0},{57269,16653,0},{57259,16638,0},{57259,16660,0}, {57263,16685,0},{57259,16730,0},{57256,16743,0},{57254,16730,0},{57253,16692,0}, {57251,16683,0},{57248,16697,0},{57244,16728,0},{57241,16705,0},{57239,16705,0}, {57238,16742,0},{57236,16753,0},{57231,16748,0},{57231,16770,0},{57236,16783,0}, {57238,16803,0},{57238,16828,0},{57234,16855,0},{57231,16850,0},{57226,16868,0}, {57219,16878,0},{57211,16858,0},{57208,16880,0},{57203,16903,0},{57203,16935,0}, {57199,16955,0},{57198,16998,0},{57193,17028,0},{57191,17078,0},{57186,17088,0}, {57189,17117,0},{57188,17137,0},{57181,17157,0},{57168,17230,0},{57163,17328,0}, {57159,17343,0},{57156,17337,0},{57151,17378,0},{57154,17458,0},{57154,17488,0}, {57151,17505,0},{57146,17520,0},{57143,17510,0},{57141,17532,0},{57141,17573,0}, {57136,17650,0},{57129,17703,0},{57129,17753,0},{57128,17800,0},{57123,17828,0}, {57124,17872,0},{57123,17915,0},{57114,17965,0},{57113,17968,0},{57108,17940,0}, {57103,17973,0},{57101,47541,0},{57103,47566,0},{57109,47688,0},{57108,47711,0}, {57103,47719,0},{57093,47691,0},{57096,47776,0},{57094,47873,0},{57093,47899,0}, {57093,48089,0},{57079,48408,0},{57076,48456,0},{57069,48619,0},{57064,48668,0}, {57059,48696,0},{57056,48679,0},{57053,48683,0},{57051,48763,0},{57048,48798,0}, {57048,48843,0},{57044,48889,0},{57038,48916,0},{57034,48986,0},{58183,52861,129}, {58193,52871,1},{58198,52846,1},{58204,52848,1},{58211,52841,1},{58216,52844,1}, {58221,52856,1},{58226,52876,1},{58223,52888,1},{58226,52904,1},{58224,52923,1}, {58221,52938,1},{58219,52953,1},{58221,52964,1},{58224,52976,1},{58224,52986,1}, {58224,52991,1},{58221,52993,1},{58218,52979,1},{58211,52979,1},{58204,52969,1}, {58203,52969,1},{58199,52994,1},{58203,53006,1},{58206,53014,1},{58208,53024,1}, {58204,53041,1},{58199,53046,1},{58191,53048,1},{58188,53064,1},{58183,53068,1}, {58178,53059,1},{58173,53028,1},{58169,53016,1},{58163,53034,1},{58163,53048,1}, {58168,53063,1},{58166,53088,1},{58161,53093,1},{58161,53098,1},{58163,53099,1}, {58168,53101,1},{58169,53113,1},{58176,53129,1},{58176,53136,1},{58174,53141,1}, {58168,53139,1},{58159,53153,1},{58158,53169,1},{58153,53171,1},{58148,53189,1}, {58143,53198,1},{58131,53196,1},{58124,53189,1},{58123,53183,1},{58124,53176,1}, {58128,53159,1},{58126,53139,1},{58128,53126,1},{58126,53104,1},{58128,53091,1}, {58134,53063,1},{58141,53054,1},{58143,53026,1},{58151,52999,1},{58151,52973,1}, {58153,52959,1},{58183,52921,1},{58191,52916,1},{58191,52909,1},{58184,52906,1}, {58178,52888,1},{58179,52864,1},{58183,52861,1},{58111,53288,129},{58119,53269,1}, {58124,53273,1},{58129,53288,1},{58136,53276,1},{58139,53283,1},{58143,53298,1}, {58148,53299,1},{58149,53309,1},{58151,53311,1},{58156,53306,1},{58158,53293,1}, {58161,53289,1},{58163,53276,1},{58163,53253,1},{58168,53259,1},{58173,53261,1}, {58178,53271,1},{58178,53361,1},{58173,53389,1},{58173,53404,1},{58169,53441,1}, {58171,53449,1},{58168,53483,1},{58171,53506,1},{58163,53534,1},{58161,53548,1}, {58163,53568,1},{58161,53583,1},{58164,53616,1},{58164,53653,1},{58163,53664,1}, {58156,53673,1},{58148,53663,1},{58139,53639,1},{58129,53579,1},{58114,53549,1}, {58106,53511,1},{58108,53448,1},{58106,53428,1},{58106,53411,1},{58106,53396,1}, {58104,53374,1},{58108,53333,1},{58111,53288,1},{57636,49438,129},{57648,49416,1}, {57653,49398,1},{57661,49326,1},{57663,49283,1},{57663,49229,1},{57661,49199,1}, {57658,49186,1},{57646,49181,1},{57641,49168,1},{57634,49141,1},{57629,49111,1}, {57623,49098,1},{57616,49109,1},{57606,49113,1},{57584,49193,1},{57571,49273,1}, {57563,49344,1},{57556,49483,1},{57554,49521,1},{57556,49598,1},{57561,49614,1}, {57566,49611,1},{57573,49583,1},{57586,49563,1},{57598,49558,1},{57613,49491,1}, {57636,49438,1},{57759,16710,129},{57773,16762,1},{57771,16817,1},{57768,16830,1}, {57768,16850,1},{57768,16860,1},{57771,16868,1},{57773,16893,1},{57783,16942,1}, {57789,16945,1},{57791,16935,1},{57793,16912,1},{57796,16900,1},{57796,16873,1}, {57801,16835,1},{57801,16823,1},{57796,16803,1},{57794,16780,1},{57798,16738,1}, {57804,16713,1},{57808,16715,1},{57816,16705,1},{57818,16690,1},{57819,16672,1}, {57818,16660,1},{57809,16637,1},{57799,16662,1},{57793,16650,1},{57786,16640,1}, {57783,16622,1},{57779,16623,1},{57774,16637,1},{57771,16653,1},{57769,16688,1}, {57766,16682,1},{57766,16655,1},{57764,16658,1},{57764,16687,1},{57753,16668,1}, {57751,16675,1},{57751,16685,1},{57753,16687,1},{57758,16693,1},{57759,16710,1}, {58283,55934,129},{58281,55916,1},{58283,55904,1},{58281,55871,1},{58283,55858,1}, {58281,55836,1},{58283,55809,1},{58286,55809,1},{58288,55804,1},{58286,55789,1}, {58284,55726,1},{58281,55713,1},{58283,55664,1},{58284,55659,1},{58286,55658,1}, {58289,55666,1},{58291,55661,1},{58293,55613,1},{58291,55593,1},{58291,55583,1}, {58296,55584,1},{58299,55593,1},{58303,55616,1},{58304,55611,1},{58304,55591,1}, {58304,55568,1},{58303,55543,1},{58304,55538,1},{58308,55536,1},{58309,55509,1}, {58308,55494,1},{58313,55483,1},{58314,55473,1},{58316,55369,1},{58314,55333,1}, {58316,55326,1},{58321,55319,1},{58321,55306,1},{58328,55299,1},{58333,55313,1}, {58343,55373,1},{58341,55393,1},{58343,55414,1},{58351,55444,1},{58349,55458,1}, {58349,55473,1},{58356,55481,1},{58358,55491,1},{58356,55504,1},{58353,55519,1}, {58348,55519,1},{58344,55484,1},{58341,55476,1},{58344,55521,1},{58341,55533,1}, {58338,55529,1},{58334,55516,1},{58333,55516,1},{58333,55528,1},{58336,55549,1}, {58339,55548,1},{58339,55554,1},{58344,55559,1},{58348,55558,1},{58349,55566,1}, {58348,55573,1},{58343,55581,1},{58339,55583,1},{58333,55576,1},{58331,55579,1}, {58331,55588,1},{58339,55594,1},{58341,55604,1},{58339,55618,1},{58334,55626,1}, {58336,55646,1},{58334,55651,1},{58331,55663,1},{58336,55666,1},{58341,55658,1}, {58344,55649,1},{58348,55619,1},{58349,55618,1},{58353,55621,1},{58354,55611,1}, {58359,55616,1},{58364,55638,1},{58373,55638,1},{58376,55653,1},{58376,55673,1}, {58373,55693,1},{58363,55721,1},{58361,55739,1},{58358,55739,1},{58353,55729,1}, {58351,55721,1},{58349,55704,1},{58339,55713,1},{58328,55701,1},{58326,55701,1}, {58328,55708,1},{58338,55728,1},{58336,55741,1},{58333,55746,1},{58328,55744,1}, {58324,55734,1},{58323,55736,1},{58328,55758,1},{58333,55764,1},{58336,55761,1}, {58343,55748,1},{58351,55756,1},{58356,55749,1},{58358,55751,1},{58359,55763,1}, {58358,55771,1},{58356,55779,1},{58354,55784,1},{58349,55773,1},{58351,55788,1}, {58349,55793,1},{58348,55798,1},{58341,55798,1},{58336,55774,1},{58334,55773,1}, {58319,55801,1},{58323,55804,1},{58329,55808,1},{58341,55824,1},{58356,55826,1}, {58361,55834,1},{58364,55851,1},{58359,55871,1},{58363,55894,1},{58361,55911,1}, {58358,55926,1},{58354,55931,1},{58344,55928,1},{58341,55911,1},{58338,55909,1}, {58334,55891,1},{58334,55873,1},{58323,55833,1},{58321,55838,1},{58318,55868,1}, {58318,55874,1},{58323,55889,1},{58326,55929,1},{58329,55953,1},{58333,55956,1}, {58336,55966,1},{58333,55978,1},{58329,55974,1},{58328,55988,1},{58324,55988,1}, {58323,55979,1},{58319,55973,1},{58318,55963,1},{58319,55939,1},{58318,55914,1}, {58316,55894,1},{58313,55884,1},{58313,55946,1},{58306,55956,1},{58306,55998,1}, {58303,55993,1},{58294,55949,1},{58289,55938,1},{58284,55943,1},{58283,55934,1}, {58263,57811,129},{58254,57809,1},{58249,57798,1},{58239,57794,1},{58233,57733,1}, {58226,57716,1},{58216,57683,1},{58216,57668,1},{58219,57658,1},{58233,57631,1}, {58238,57636,1},{58243,57649,1},{58244,57664,1},{58243,57673,1},{58239,57686,1}, {58243,57696,1},{58248,57711,1},{58256,57723,1},{58268,57719,1},{58269,57726,1}, {58269,57768,1},{58266,57784,1},{58266,57806,1},{58263,57811,1},{58238,58114,129}, {58231,58118,1},{58211,58091,1},{58204,58086,1},{58196,58088,1},{58183,58109,1}, {58171,58089,1},{58171,58073,1},{58174,58069,1},{58176,58049,1},{58194,57969,1}, {58204,57941,1},{58209,57938,1},{58214,57928,1},{58218,57928,1},{58228,57941,1}, {58223,57966,1},{58226,57973,1},{58228,57991,1},{58229,57996,1},{58234,58001,1}, {58236,57998,1},{58236,57971,1},{58241,57964,1},{58246,57978,1},{58251,57988,1}, {58254,57998,1},{58253,58053,1},{58243,58101,1},{58238,58114,1},{58273,58328,129}, {58289,58278,1},{58301,58294,1},{58309,58314,1},{58313,58338,1},{58311,58383,1}, {58311,58396,1},{58308,58426,1},{58308,58443,1},{58308,58466,1},{58309,58478,1}, {58313,58481,1},{58316,58468,1},{58319,58441,1},{58323,58436,1},{58328,58441,1}, {58334,58469,1},{58338,58473,1},{58338,58448,1},{58338,58444,1},{58338,58438,1}, {58354,58421,1},{58356,58411,1},{58353,58399,1},{58354,58393,1},{58366,58386,1}, {58371,58369,1},{58376,58361,1},{58374,58346,1},{58376,58343,1},{58378,58339,1}, {58381,58319,1},{58379,58304,1},{58376,58298,1},{58363,58289,1},{58353,58309,1}, {58351,58304,1},{58351,58293,1},{58353,58278,1},{58363,58258,1},{58359,58216,1}, {58358,58204,1},{58354,58201,1},{58353,58203,1},{58348,58229,1},{58344,58243,1}, {58333,58213,1},{58328,58211,1},{58324,58201,1},{58319,58184,1},{58321,58178,1}, {58329,58171,1},{58329,58116,1},{58338,58103,1},{58346,58056,1},{58353,58028,1}, {58371,57988,1},{58391,57969,1},{58398,57973,1},{58401,57986,1},{58399,58001,1}, {58391,58018,1},{58376,58038,1},{58376,58043,1},{58378,58049,1},{58376,58053,1}, {58373,58066,1},{58374,58074,1},{58381,58073,1},{58391,58048,1},{58408,58034,1}, {58413,58044,1},{58414,58054,1},{58411,58091,1},{58403,58101,1},{58393,58124,1}, {58388,58154,1},{58383,58176,1},{58376,58183,1},{58378,58194,1},{58381,58203,1}, {58388,58201,1},{58393,58194,1},{58393,58178,1},{58403,58148,1},{58409,58131,1}, {58416,58131,1},{58419,58139,1},{58421,58151,1},{58421,58183,1},{58416,58209,1}, {58413,58221,1},{58404,58233,1},{58403,58244,1},{58403,58251,1},{58408,58261,1}, {58409,58298,1},{58411,58303,1},{58414,58298,1},{58414,58259,1},{58416,58243,1}, {58423,58223,1},{58428,58218,1},{58433,58221,1},{58434,58246,1},{58441,58266,1}, {58439,58341,1},{58441,58363,1},{58444,58379,1},{58453,58396,1},{58456,58419,1}, {58456,58429,1},{58453,58436,1},{58439,58446,1},{58436,58453,1},{58438,58468,1}, {58441,58476,1},{58444,58476,1},{58449,58468,1},{58456,58446,1},{58461,58443,1}, {58468,58428,1},{58473,58423,1},{58481,58386,1},{58491,58381,1},{58498,58386,1}, {58508,58399,1},{58511,58419,1},{58511,58458,1},{58509,58483,1},{58513,58504,1}, {58511,58533,1},{58516,58536,1},{58519,58528,1},{58519,58514,1},{58518,58484,1}, {58518,58471,1},{58523,58458,1},{58528,58434,1},{58533,58419,1},{58539,58421,1}, {58539,58398,1},{58551,58374,1},{58556,58349,1},{58569,58351,1},{58574,58354,1}, {58584,58344,1},{58593,58359,1},{58596,58359,1},{58603,58374,1},{58606,58368,1}, {58606,58373,1},{58608,58373,1},{58613,58354,1},{58614,58353,1},{58614,58346,1}, {58619,58344,1},{58623,58323,1},{58628,58324,1},{58629,58329,1},{58638,58363,1}, {58643,58376,1},{58646,58393,1},{58648,58408,1},{58649,58418,1},{58649,58438,1}, {58654,58451,1},{58659,58484,1},{58658,58496,1},{58651,58521,1},{58646,58528,1}, {58634,58528,1},{58631,58533,1},{58626,58536,1},{58624,58528,1},{58618,58529,1}, {58609,58526,1},{58606,58538,1},{58608,58561,1},{58593,58574,1},{58589,58584,1}, {58581,58586,1},{58573,58601,1},{58556,58604,1},{58551,58611,1},{58541,58613,1}, {58529,58626,1},{58516,58629,1},{58508,58646,1},{58506,58661,1},{58501,58671,1}, {58496,58671,1},{58483,58688,1},{58469,58698,1},{58461,58699,1},{58456,58704,1}, {58454,58694,1},{58449,58706,1},{58439,58704,1},{58429,58711,1},{58406,58718,1}, {58399,58711,1},{58378,58721,1},{58373,58728,1},{58363,58721,1},{58346,58719,1}, {58341,58699,1},{58338,58693,1},{58328,58703,1},{58308,58694,1},{58306,58686,1}, {58308,58674,1},{58309,58659,1},{58308,58644,1},{58303,58633,1},{58296,58634,1}, {58289,58628,1},{58289,58636,1},{58293,58646,1},{58291,58649,1},{58284,58636,1}, {58283,58626,1},{58284,58621,1},{58284,58618,1},{58283,58614,1},{58279,58619,1}, {58278,58611,1},{58276,58598,1},{58269,58571,1},{58269,58541,1},{58268,58523,1}, {58269,58501,1},{58266,58479,1},{58269,58456,1},{58269,58379,1},{58266,58348,1}, {58268,58339,1},{58273,58328,1},{58538,58071,129},{58541,58023,1},{58541,58009,1}, {58539,57999,1},{58539,57986,1},{58538,57979,1},{58538,57971,1},{58543,57943,1}, {58549,57949,1},{58553,57949,1},{58569,57931,1},{58571,57943,1},{58574,57958,1}, {58573,57979,1},{58574,58008,1},{58576,58013,1},{58581,58009,1},{58583,58018,1}, {58581,58056,1},{58578,58071,1},{58573,58073,1},{58569,58079,1},{58566,58076,1}, {58561,58089,1},{58554,58096,1},{58544,58081,1},{58539,58078,1},{58538,58071,1}, {58783,58614,129},{58786,58619,1},{58803,58653,1},{58818,58666,1},{58833,58674,1}, {58863,58718,1},{58874,58754,1},{58876,58764,1},{58876,58776,1},{58873,58778,1}, {58866,58769,1},{58851,58746,1},{58846,58744,1},{58839,58748,1},{58836,58744,1}, {58831,58744,1},{58828,58759,1},{58824,58759,1},{58821,58769,1},{58816,58761,1}, {58803,58721,1},{58798,58723,1},{58796,58738,1},{58794,58741,1},{58783,58731,1}, {58781,58724,1},{58783,58711,1},{58783,58703,1},{58779,58696,1},{58776,58698,1}, {58771,58696,1},{58761,58681,1},{58759,58649,1},{58761,58641,1},{58769,58629,1}, {58773,58619,1},{58783,58614,1},{59066,59111,129},{59071,59118,1},{59079,59119,1}, {59084,59151,1},{59086,59153,1},{59091,59148,1},{59093,59153,1},{59094,59169,1}, {59099,59174,1},{59104,59174,1},{59106,59183,1},{59108,59184,1},{59111,59209,1}, {59108,59226,1},{59106,59226,1},{59103,59221,1},{59101,59209,1},{59099,59213,1}, {59093,59206,1},{59093,59213,1},{59098,59223,1},{59096,59228,1},{59089,59221,1}, {59091,59228,1},{59089,59229,1},{59081,59213,1},{59079,59224,1},{59081,59228,1}, {59086,59241,1},{59084,59243,1},{59086,59253,1},{59083,59253,1},{59079,59259,1}, {59073,59233,1},{59073,59228,1},{59061,59206,1},{59061,59199,1},{59063,59198,1}, {59063,59189,1},{59059,59188,1},{59053,59173,1},{59058,59161,1},{59059,59133,1}, {59063,59128,1},{59064,59111,1},{59066,59111,1},{59273,59423,129},{59274,59424,1}, {59278,59419,1},{59279,59421,1},{59276,59439,1},{59281,59454,1},{59291,59458,1}, {59288,59468,1},{59283,59473,1},{59281,59484,1},{59283,59506,1},{59289,59521,1}, {59289,59528,1},{59284,59534,1},{59281,59529,1},{59278,59531,1},{59274,59539,1}, {59276,59548,1},{59274,59554,1},{59268,59536,1},{59259,59511,1},{59261,59506,1}, {59263,59503,1},{59268,59506,1},{59266,59499,1},{59268,59496,1},{59271,59501,1}, {59274,59503,1},{59274,59499,1},{59273,59483,1},{59274,59473,1},{59269,59456,1}, {59271,59441,1},{59271,59421,1},{59273,59423,1},{59316,59638,129},{59329,59659,1}, {59331,59668,1},{59336,59671,1},{59336,59679,1},{59343,59696,1},{59341,59713,1}, {59343,59721,1},{59346,59738,1},{59343,59756,1},{59348,59769,1},{59348,59771,1}, {59344,59774,1},{59339,59771,1},{59334,59778,1},{59336,59763,1},{59334,59759,1}, {59329,59743,1},{59329,59724,1},{59324,59723,1},{59323,59726,1},{59319,59716,1}, {59319,59706,1},{59321,59701,1},{59326,59701,1},{59328,59709,1},{59331,59699,1}, {59329,59694,1},{59326,59693,1},{59321,59679,1},{59319,59681,1},{59321,59691,1}, {59319,59694,1},{59316,59694,1},{59313,59688,1},{59311,59678,1},{59311,59673,1}, {59313,59671,1},{59313,59663,1},{59314,59659,1},{59313,59653,1},{59316,59649,1}, {59314,59639,1},{59316,59638,1},{59411,60001,129},{59416,59996,1},{59419,59998,1}, {59423,59986,1},{59429,59998,1},{59428,60008,1},{59428,60021,1},{59426,60033,1}, {59426,60043,1},{59426,60071,1},{59423,60061,1},{59419,60033,1},{59416,60029,1}, {59414,60021,1},{59408,60014,1},{59409,60009,1},{59411,60001,1},{59193,59894,129}, {59198,59891,1},{59198,59883,1},{59203,59883,1},{59204,59891,1},{59208,59891,1}, {59214,59901,1},{59216,59914,1},{59223,59934,1},{59224,59953,1},{59223,59958,1}, {59221,59963,1},{59223,59969,1},{59224,59978,1},{59223,59988,1},{59221,59989,1}, {59218,59989,1},{59216,59993,1},{59218,60003,1},{59214,60031,1},{59213,60034,1}, {59208,60036,1},{59203,60029,1},{59199,60013,1},{59199,60003,1},{59203,59989,1}, {59203,59973,1},{59206,59964,1},{59204,59956,1},{59206,59949,1},{59203,59944,1}, {59203,59938,1},{59198,59933,1},{59193,59908,1},{59193,59894,1},{59091,59741,129}, {59094,59736,1},{59099,59736,1},{59098,59728,1},{59099,59719,1},{59104,59713,1}, {59108,59716,1},{59111,59728,1},{59116,59721,1},{59124,59729,1},{59128,59728,1}, {59128,59719,1},{59123,59709,1},{59124,59694,1},{59128,59693,1},{59136,59701,1}, {59138,59718,1},{59139,59716,1},{59141,59708,1},{59144,59711,1},{59148,59718,1}, {59146,59726,1},{59151,59733,1},{59151,59743,1},{59153,59739,1},{59156,59743,1}, {59158,59758,1},{59146,59761,1},{59138,59754,1},{59136,59759,1},{59129,59756,1}, {59128,59764,1},{59129,59771,1},{59134,59766,1},{59144,59788,1},{59144,59791,1}, {59141,59788,1},{59133,59789,1},{59131,59796,1},{59131,59808,1},{59128,59821,1}, {59121,59821,1},{59121,59831,1},{59119,59833,1},{59106,59801,1},{59103,59803,1}, {59099,59813,1},{59098,59806,1},{59099,59788,1},{59096,59771,1},{59096,59764,1}, {59091,59746,1},{59091,59741,1},{57796,58249,129},{57783,58253,1},{57764,58221,1}, {57741,58148,1},{57731,58094,1},{57729,58066,1},{57733,58001,1},{57746,57861,1}, {57748,57806,1},{57759,57653,1},{57763,57638,1},{57783,57624,1},{57788,57604,1}, {57788,57583,1},{57781,57553,1},{57784,57484,1},{57789,57446,1},{57796,57434,1}, {57808,57451,1},{57818,57451,1},{57826,57464,1},{57829,57484,1},{57823,57789,1}, {57806,58174,1},{57799,58226,1},{57796,58249,1},{57693,58878,129},{57673,58841,1}, {57668,58821,1},{57664,58783,1},{57651,58731,1},{57631,58668,1},{57611,58634,1}, {57598,58564,1},{57594,58563,1},{57578,58604,1},{57568,58588,1},{57566,58569,1}, {57568,58526,1},{57576,58446,1},{57606,58426,1},{57626,58436,1},{57631,58449,1}, {57643,58508,1},{57653,58576,1},{57668,58621,1},{57674,58664,1},{57684,58741,1}, {57693,58778,1},{57696,58799,1},{57698,58848,1},{57696,58874,1},{57693,58878,1}, {57544,59573,129},{57536,59598,1},{57529,59608,1},{57499,59591,1},{57484,59569,1}, {57468,59558,1},{57456,59579,1},{57439,59541,1},{57433,59516,1},{57433,59471,1}, {57439,59368,1},{57444,59323,1},{57454,59276,1},{57468,59256,1},{57471,59236,1}, {57469,59196,1},{57461,59139,1},{57463,59118,1},{57474,59034,1},{57493,58944,1}, {57496,58928,1},{57503,58924,1},{57509,58946,1},{57509,58958,1},{57506,58968,1}, {57498,58986,1},{57489,59059,1},{57486,59181,1},{57484,59319,1},{57488,59381,1}, {57489,59409,1},{57496,59443,1},{57508,59468,1},{57543,59539,1},{57546,59554,1}, {57544,59573,1},{57741,60864,129},{57738,60908,1},{57728,60996,1},{57713,61073,1}, {57704,61099,1},{57683,61106,1},{57666,61089,1},{57663,61063,1},{57661,61004,1}, {57659,60953,1},{57651,60904,1},{57644,60894,1},{57641,60906,1},{57641,60991,1}, {57643,61038,1},{57643,61099,1},{57639,61121,1},{57619,61123,1},{57613,61103,1}, {57604,61061,1},{57603,61058,1},{57601,61066,1},{57598,61158,1},{57593,61176,1}, {57574,61203,1},{57553,61208,1},{57541,61198,1},{57536,61186,1},{57536,61129,1}, {57533,61111,1},{57531,61111,1},{57523,61154,1},{57519,61159,1},{57506,61114,1}, {57491,61034,1},{57473,60876,1},{57466,60736,1},{57461,60631,1},{57453,60561,1}, {57449,60509,1},{57444,60379,1},{57441,60266,1},{57443,60166,1},{57444,60119,1}, {57449,60081,1},{57458,60058,1},{57471,60046,1},{57481,60048,1},{57493,60061,1}, {57548,60151,1},{57573,60178,1},{57643,60284,1},{57658,60326,1},{57671,60376,1}, {57684,60446,1},{57704,60574,1},{57723,60638,1},{57729,60664,1},{57739,60729,1}, {57743,60756,1},{57744,60804,1},{57743,60841,1},{57741,60864,1},{1037,10445,128}, {1038,10450,0},{1042,10452,0},{1038,10453,0},{1037,10450,0},{1033,10453,0}, {1028,10453,0},{1028,10457,0},{1027,10458,0},{1015,10462,0},{1015,10465,0}, {1020,10468,0},{1023,10473,0},{1020,10480,0},{1010,10490,0},{1010,10498,0}, {1002,10507,0},{995,10510,0},{992,10510,0},{985,10512,0},{993,10508,0}, {993,10507,0},{992,10503,0},{983,10495,0},{982,10490,0},{968,10487,0},{955,10483,0}, {915,10482,0},{905,10482,0},{903,10482,0},{900,10480,0},{898,10483,0},{895,10482,0}, {888,10482,0},{880,10480,0},{877,10482,0},{882,10493,0},{880,10492,0},{873,10492,0}, {872,10490,0},{872,10485,0},{870,10487,0},{872,10497,0},{868,10490,0},{870,10482,0}, {865,10483,0},{860,10477,0},{862,10472,0},{860,10473,0},{857,10485,0},{858,10502,0}, {863,10512,0},{873,10520,0},{877,10530,0},{883,10535,0},{900,10540,0},{900,10542,0}, {905,10545,0},{913,10553,0},{930,10600,0},{937,10620,0},{940,10620,0},{942,10617,0}, {948,10622,0},{952,10622,0},{955,10618,0},{965,10612,0},{977,10605,0},{1000,10582,0}, {997,10592,0},{992,10598,0},{978,10608,0},{963,10625,0},{957,10635,0},{953,10640,0}, {955,10650,0},{958,10655,0},{965,10658,0},{973,10657,0},{977,10652,0},{980,10652,0}, {985,10648,0},{1000,10632,0},{1007,10627,0},{1012,10618,0},{1015,10617,0}, {1018,10617,0},{1023,10612,0},{1015,10622,0},{998,10638,0},{992,10650,0}, {982,10660,0},{983,10665,0},{988,10667,0},{987,10668,0},{983,10667,0},{985,10668,0}, {987,10670,0},{990,10668,0},{997,10657,0},{1000,10648,0},{1013,10638,0}, {1022,10635,0},{1025,10628,0},{1025,10632,0},{1022,10637,0},{1003,10648,0}, {998,10660,0},{997,10665,0},{1000,10665,0},{1000,10668,0},{1003,10667,0}, {1008,10670,0},{1003,10672,0},{1008,10678,0},{1012,10680,0},{1015,10680,0}, {1020,10670,0},{1027,10648,0},{1032,10642,0},{1028,10665,0},{1028,10668,0}, {1028,10678,0},{1030,10680,0},{1038,10680,0},{1047,10673,0},{1043,10667,0}, {1047,10665,0},{1045,10663,0},{1043,10658,0},{1048,10658,0},{1047,10658,0}, {1043,10658,0},{1045,10663,0},{1048,10667,0},{1052,10665,0},{1050,10668,0}, {1052,10673,0},{1057,10673,0},{1058,10677,0},{1067,10673,0},{1068,10677,0}, {1067,10680,0},{1063,10683,0},{1065,10688,0},{1060,10693,0},{1057,10693,0}, {1053,10693,0},{1050,10697,0},{1047,10697,0},{1050,10698,0},{1052,10702,0}, {1055,10698,0},{1062,10698,0},{1055,10700,0},{1053,10702,0},{1057,10702,0}, {1058,10702,0},{1063,10700,0},{1065,10702,0},{1067,10698,0},{1070,10698,0}, {1067,10702,0},{1063,10703,0},{1063,10700,0},{1058,10703,0},{1055,10703,0}, {1053,10703,0},{1050,10702,0},{1050,10700,0},{1048,10700,0},{1050,10702,0}, {1047,10703,0},{1048,10705,0},{1050,10707,0},{1048,10707,0},{1048,10712,0}, {1047,10713,0},{1047,10715,0},{1048,10717,0},{1042,10722,0},{1040,10718,0}, {1040,10723,0},{1038,10725,0},{1045,10733,0},{1047,10738,0},{1047,10745,0}, {1050,10752,0},{1057,10758,0},{1063,10777,0},{1070,10783,0},{1072,10790,0}, {1070,10800,0},{1085,10807,0},{1092,10810,0},{1095,10823,0},{1093,10828,0}, {1092,10830,0},{1095,10832,0},{1095,10835,0},{1103,10838,0},{1105,10848,0}, {1110,10850,0},{1115,10855,0},{1118,10858,0},{1118,10867,0},{1117,10872,0}, {1118,10873,0},{1128,10877,0},{1132,10880,0},{1133,10887,0},{1130,10893,0}, {1132,10897,0},{1135,10902,0},{1153,10903,0},{1153,10902,0},{1153,10903,0}, {1157,10903,0},{1158,10905,0},{1163,10902,0},{1163,10903,0},{1162,10905,0}, {1158,10907,0},{1158,10910,0},{1157,10913,0},{1163,10918,0},{1167,10918,0}, {1168,10920,0},{1172,10920,0},{1172,10925,0},{1180,10920,0},{1182,10920,0}, {1183,10918,0},{1187,10920,0},{1182,10915,0},{1182,10913,0},{1185,10912,0}, {1190,10913,0},{1193,10918,0},{1198,10922,0},{1210,10917,0},{1212,10918,0}, {1205,10920,0},{1198,10923,0},{1188,10922,0},{1187,10925,0},{1187,10928,0}, {1192,10927,0},{1193,10928,0},{1197,10928,0},{1198,10925,0},{1208,10920,0}, {1210,10920,0},{1213,10923,0},{1215,10920,0},{1218,10922,0},{1220,10918,0}, {1220,10922,0},{1222,10920,0},{1225,10920,0},{1227,10917,0},{1227,10922,0}, {1228,10922,0},{1230,10925,0},{1233,10922,0},{1238,10920,0},{1240,10917,0}, {1243,10915,0},{1243,10917,0},{1245,10915,0},{1247,10917,0},{1243,10922,0}, {1235,10927,0},{1235,10930,0},{1238,10932,0},{1237,10933,0},{1238,10933,0}, {1240,10935,0},{1243,10930,0},{1247,10930,0},{1253,10923,0},{1255,10923,0}, {1258,10925,0},{1258,10923,0},{1257,10922,0},{1253,10922,0},{1258,10920,0}, {1262,10922,0},{1263,10920,0},{1268,10923,0},{1277,10933,0},{1280,10935,0}, {1280,10937,0},{1277,10937,0},{1270,10938,0},{1265,10935,0},{1263,10937,0}, {1265,10938,0},{1267,10938,0},{1268,10940,0},{1265,10942,0},{1263,10942,0}, {1262,10940,0},{1260,10942,0},{1257,10943,0},{1257,10945,0},{1263,10943,0}, {1265,10947,0},{1268,10943,0},{1275,10938,0},{1282,10937,0},{1287,10943,0}, {1287,10945,0},{1285,10943,0},{1285,10947,0},{1290,10947,0},{1307,10935,0}, {1308,10932,0},{1310,10933,0},{1313,10930,0},{1327,10932,0},{1330,10930,0}, {1327,10928,0},{1323,10930,0},{1325,10927,0},{1328,10925,0},{1332,10927,0}, {1330,10930,0},{1333,10928,0},{1333,10930,0},{1335,10930,0},{1335,10927,0}, {1338,10925,0},{1338,10923,0},{1348,10923,0},{1348,10925,0},{1348,10928,0}, {1345,10930,0},{1343,10927,0},{1342,10928,0},{1342,10933,0},{1345,10933,0}, {1347,10933,0},{1347,10932,0},{1350,10930,0},{1352,10932,0},{1352,10927,0}, {1355,10927,0},{1362,10922,0},{1365,10922,0},{1362,10923,0},{1355,10928,0}, {1353,10928,0},{1355,10928,0},{1357,10930,0},{1358,10928,0},{1363,10923,0}, {1368,10925,0},{1373,10922,0},{1377,10925,0},{1378,10923,0},{1380,10923,0}, {1382,10922,0},{1385,10923,0},{1390,10925,0},{1387,10927,0},{1375,10927,0}, {1377,10930,0},{1382,10930,0},{1388,10932,0},{1388,10928,0},{1392,10927,0}, {1402,10927,0},{1412,10922,0},{1413,10918,0},{1417,10917,0},{1417,10918,0}, {1417,10920,0},{1413,10922,0},{1413,10923,0},{1420,10920,0},{1423,10920,0}, {1428,10918,0},{1437,10913,0},{1447,10913,0},{1450,10910,0},{1457,10908,0}, {1455,10907,0},{1457,10907,0},{1458,10908,0},{1468,10907,0},{1467,10908,0}, {1468,10908,0},{1472,10908,0},{1482,10902,0},{1483,10898,0},{1483,10900,0}, {1500,10893,0},{1513,10890,0},{1512,10890,0},{1513,10888,0},{1515,10887,0}, {1515,10890,0},{1520,10890,0},{1520,10892,0},{1522,10890,0},{1522,10893,0}, {1525,10895,0},{1528,10888,0},{1535,10888,0},{1537,10883,0},{1542,10883,0}, {1542,10880,0},{1540,10882,0},{1538,10878,0},{1535,10878,0},{1535,10882,0}, {1533,10878,0},{1532,10877,0},{1538,10877,0},{1543,10872,0},{1548,10870,0}, {1543,10867,0},{1545,10863,0},{1548,10863,0},{1548,10867,0},{1552,10868,0}, {1550,10867,0},{1552,10863,0},{1555,10860,0},{1568,10848,0},{1580,10842,0}, {1588,10840,0},{1587,10837,0},{1588,10838,0},{1593,10832,0},{1598,10828,0}, {1607,10827,0},{1610,10827,0},{1610,10832,0},{1612,10835,0},{1615,10833,0}, {1613,10832,0},{1615,10827,0},{1615,10823,0},{1613,10822,0},{1612,10825,0}, {1608,10823,0},{1602,10827,0},{1602,10825,0},{1600,10820,0},{1603,10823,0}, {1608,10823,0},{1607,10820,0},{1608,10818,0},{1612,10813,0},{1615,10815,0}, {1622,10820,0},{1623,10807,0},{1625,10805,0},{1627,10805,0},{1623,10810,0}, {1635,10803,0},{1632,10800,0},{1635,10795,0},{1633,10793,0},{1630,10793,0}, {1628,10790,0},{1630,10782,0},{1638,10778,0},{1637,10783,0},{1652,10770,0}, {1650,10767,0},{1652,10767,0},{1652,10765,0},{1655,10767,0},{1655,10760,0}, {1655,10763,0},{1658,10760,0},{1658,10757,0},{1663,10745,0},{1665,10745,0}, {1663,10750,0},{1657,10762,0},{1658,10763,0},{1668,10747,0},{1690,10722,0}, {1690,10720,0},{1687,10718,0},{1687,10715,0},{1692,10720,0},{1702,10713,0}, {1702,10712,0},{1708,10712,0},{1733,10675,0},{1747,10663,0},{1757,10658,0}, {1768,10650,0},{1772,10642,0},{1770,10640,0},{1768,10640,0},{1768,10638,0}, {1770,10637,0},{1772,10638,0},{1773,10643,0},{1775,10630,0},{1777,10628,0}, {1777,10635,0},{1773,10642,0},{1770,10647,0},{1770,10650,0},{1772,10650,0}, {1778,10645,0},{1787,10645,0},{1787,10643,0},{1788,10645,0},{1792,10648,0}, {1795,10653,0},{1803,10645,0},{1808,10642,0},{1812,10643,0},{1812,10642,0}, {1810,10640,0},{1810,10637,0},{1807,10635,0},{1810,10633,0},{1810,10632,0}, {1812,10635,0},{1822,10625,0},{1827,10617,0},{1825,10610,0},{1828,10612,0}, {1833,10603,0},{1840,10597,0},{1847,10595,0},{1847,10592,0},{1857,10583,0}, {1867,10580,0},{1875,10578,0},{1875,10575,0},{1868,10577,0},{1867,10575,0}, {1870,10575,0},{1873,10573,0},{1877,10575,0},{1882,10572,0},{1882,10570,0}, {1885,10567,0},{1885,10572,0},{1890,10563,0},{1900,10560,0},{1908,10565,0}, {1908,10567,0},{1908,10570,0},{1910,10573,0},{1922,10575,0},{1923,10573,0}, {1923,10577,0},{1930,10582,0},{1932,10580,0},{1932,10582,0},{1940,10577,0}, {1942,10582,0},{1957,10582,0},{1960,10582,0},{1958,10578,0},{1960,10578,0}, {1962,10582,0},{1958,10582,0},{1960,10582,0},{1965,10583,0},{1970,10587,0}, {1972,10588,0},{1972,10590,0},{1977,10593,0},{1977,10587,0},{1980,10592,0}, {1980,10593,0},{1985,10593,0},{1988,10595,0},{1992,10595,0},{2000,10603,0}, {1997,10608,0},{2000,10610,0},{2003,10612,0},{1997,10610,0},{2000,10618,0}, {2003,10620,0},{2000,10620,0},{2003,10623,0},{2013,10632,0},{2018,10635,0}, {2020,10638,0},{2022,10648,0},{2027,10655,0},{2030,10653,0},{2030,10650,0}, {2032,10652,0},{2028,10657,0},{2030,10657,0},{2033,10658,0},{2037,10657,0}, {2038,10658,0},{2043,10660,0},{2045,10657,0},{2043,10652,0},{2048,10658,0}, {2052,10657,0},{2055,10658,0},{2053,10655,0},{2053,10652,0},{2055,10655,0}, {2058,10662,0},{2062,10663,0},{2063,10660,0},{2067,10658,0},{2063,10662,0}, {2063,10665,0},{2067,10670,0},{2070,10667,0},{2070,10673,0},{2070,10677,0}, {2068,10680,0},{2073,10678,0},{2075,10675,0},{2080,10672,0},{2080,10675,0}, {2083,10675,0},{2088,10670,0},{2090,10672,0},{2088,10673,0},{2093,10677,0}, {2095,10668,0},{2100,10665,0},{2100,10668,0},{2102,10665,0},{2100,10672,0}, {2103,10673,0},{2102,10675,0},{2102,10678,0},{2103,10678,0},{2102,10682,0}, {2100,10680,0},{2097,10683,0},{2097,10680,0},{2097,10678,0},{2093,10677,0}, {2093,10683,0},{2087,10687,0},{2090,10688,0},{2093,10688,0},{2090,10690,0}, {2090,10695,0},{2093,10692,0},{2097,10687,0},{2098,10685,0},{2098,10687,0}, {2100,10687,0},{2097,10688,0},{2095,10697,0},{2098,10702,0},{2102,10700,0}, {2100,10703,0},{2103,10703,0},{2100,10705,0},{2103,10705,0},{2100,10707,0}, {2103,10708,0},{2100,10708,0},{2103,10713,0},{2103,10715,0},{2100,10710,0}, {2095,10707,0},{2093,10715,0},{2093,10720,0},{2097,10720,0},{2098,10723,0}, {2100,10722,0},{2100,10733,0},{2102,10737,0},{2107,10735,0},{2108,10737,0}, {2110,10737,0},{2113,10738,0},{2118,10738,0},{2118,10735,0},{2123,10737,0}, {2127,10737,0},{2128,10745,0},{2130,10742,0},{2133,10742,0},{2132,10747,0}, {2128,10748,0},{2130,10748,0},{2130,10753,0},{2133,10752,0},{2135,10753,0}, {2133,10753,0},{2128,10757,0},{2130,10760,0},{2133,10762,0},{2135,10763,0}, {2138,10763,0},{2138,10767,0},{2140,10767,0},{2138,10770,0},{2142,10772,0}, {2142,10775,0},{2145,10777,0},{2145,10778,0},{2148,10778,0},{2148,10780,0}, {2150,10778,0},{2150,10775,0},{2152,10778,0},{2148,10782,0},{2152,10782,0}, {2152,10783,0},{2148,10783,0},{2152,10785,0},{2152,10787,0},{2153,10788,0}, {2152,10792,0},{2148,10793,0},{2147,10792,0},{2145,10792,0},{2145,10795,0}, {2147,10795,0},{2148,10798,0},{2143,10797,0},{2147,10800,0},{2148,10808,0}, {2150,10805,0},{2148,10802,0},{2152,10802,0},{2152,10803,0},{2155,10798,0}, {1163,10292,128},{1157,10295,0},{1160,10297,0},{1163,10297,0},{1165,10295,0}, {1172,10297,0},{1175,10295,0},{1178,10290,0},{1183,10290,0},{1178,10292,0}, {1177,10295,0},{1172,10298,0},{1173,10302,0},{1172,10305,0},{1172,10308,0}, {1170,10307,0},{1172,10302,0},{1167,10297,0},{1163,10297,0},{1167,10298,0}, {1167,10300,0},{1165,10300,0},{1165,10302,0},{1163,10302,0},{1163,10305,0}, {1162,10302,0},{1163,10300,0},{1163,10298,0},{1157,10298,0},{1155,10300,0}, {1157,10298,0},{1155,10297,0},{1153,10298,0},{1155,10303,0},{1160,10303,0}, {1158,10305,0},{1155,10305,0},{1150,10307,0},{1147,10310,0},{1148,10313,0}, {1150,10313,0},{1147,10315,0},{1143,10317,0},{1147,10313,0},{1143,10308,0}, {1143,10307,0},{1142,10310,0},{1135,10310,0},{1135,10313,0},{1130,10315,0}, {1132,10313,0},{1130,10312,0},{1128,10308,0},{1123,10308,0},{1122,10305,0}, {1122,10308,0},{1115,10312,0},{1108,10312,0},{1108,10310,0},{1097,10312,0}, {1093,10310,0},{1090,10313,0},{1087,10313,0},{1087,10322,0},{1088,10322,0}, {1093,10328,0},{1090,10333,0},{1087,10335,0},{1088,10342,0},{1097,10342,0}, {1108,10347,0},{1108,10345,0},{1113,10348,0},{1115,10347,0},{1113,10348,0}, {1115,10350,0},{1117,10350,0},{1115,10355,0},{1108,10360,0},{1107,10367,0}, {1103,10367,0},{1098,10367,0},{1087,10372,0},{1083,10372,0},{1080,10368,0}, {1077,10368,0},{1077,10367,0},{1073,10368,0},{1072,10357,0},{1062,10350,0}, {1060,10350,0},{1060,10353,0},{1053,10357,0},{1055,10362,0},{1050,10362,0}, {1048,10363,0},{1050,10370,0},{1050,10375,0},{1052,10373,0},{1055,10370,0}, {1053,10377,0},{1055,10383,0},{1060,10387,0},{1070,10387,0},{1065,10387,0}, {1065,10390,0},{1058,10393,0},{1055,10410,0},{1057,10417,0},{1053,10418,0}, {1057,10422,0},{1057,10425,0},{1053,10428,0},{1048,10430,0},{1050,10435,0}, {1048,10437,0},{1045,10440,0},{1045,10443,0},{1042,10445,0},{623,10210,128}, {632,10198,0},{642,10188,0},{645,10182,0},{648,10178,0},{683,10157,0},{685,10153,0}, {690,10140,0},{695,10130,0},{693,10127,0},{692,10133,0},{688,10137,0},{687,10135,0}, {687,10130,0},{690,10128,0},{687,10122,0},{687,10108,0},{685,10105,0},{685,10102,0}, {695,10085,0},{695,10080,0},{697,10078,0},{722,10060,0},{717,10058,0},{713,10053,0}, {713,10047,0},{715,10048,0},{717,10042,0},{722,10038,0},{725,10042,0},{727,10038,0}, {733,10037,0},{733,10032,0},{738,10027,0},{748,10023,0},{752,10018,0},{762,10015,0}, {772,10015,0},{773,10015,0},{775,10020,0},{778,10022,0},{780,10027,0},{778,10030,0}, {773,10032,0},{762,10032,0},{758,10030,0},{758,10028,0},{752,10027,0},{753,10030,0}, {755,10032,0},{757,10035,0},{757,10038,0},{753,10040,0},{730,10043,0},{727,10042,0}, {725,10043,0},{725,10048,0},{718,10057,0},{722,10058,0},{730,10052,0},{747,10043,0}, {778,10038,0},{812,10030,0},{830,10027,0},{843,10022,0},{850,10017,0},{852,10013,0}, {850,10015,0},{847,10018,0},{842,10017,0},{840,10018,0},{838,10017,0},{840,10013,0}, {843,10008,0},{853,10005,0},{857,9998,0},{862,9997,0},{887,9993,0},{898,9992,0}, {900,9993,0},{903,9992,0},{910,9992,0},{915,9988,0},{922,9988,0},{923,9987,0}, {930,9985,0},{932,9975,0},{930,9973,0},{932,9970,0},{930,9968,0},{930,9965,0}, {927,9962,0},{928,9953,0},{922,9950,0},{918,9945,0},{920,9937,0},{923,9930,0}, {922,9927,0},{925,9923,0},{933,9923,0},{938,9930,0},{940,9932,0},{947,9927,0}, {955,9922,0},{960,9922,0},{963,9918,0},{977,9915,0},{980,9915,0},{985,9917,0}, {998,9915,0},{1000,9917,0},{1002,9918,0},{1005,9918,0},{1007,9915,0},{1012,9915,0}, {1020,9920,0},{1020,9923,0},{1023,9925,0},{1023,9922,0},{1025,9920,0},{1027,9918,0}, {1030,9917,0},{1037,9915,0},{1037,9922,0},{1035,9923,0},{1037,9928,0},{1042,9928,0}, {1045,9923,0},{1047,9923,0},{1050,9927,0},{1052,9923,0},{1055,9928,0},{1065,9932,0}, {1067,9933,0},{1068,9937,0},{1070,9937,0},{1080,9943,0},{1087,9943,0},{1088,9948,0}, {1087,9950,0},{1090,9952,0},{1095,9950,0},{1103,9952,0},{1107,9950,0},{1112,9948,0}, {1118,9953,0},{1120,9955,0},{1118,9957,0},{1118,9958,0},{1122,9958,0},{1127,9957,0}, {1132,9957,0},{1140,9962,0},{1152,9963,0},{1168,9973,0},{1173,9978,0},{1173,9982,0}, {1177,9980,0},{1178,9982,0},{1182,9980,0},{1183,9983,0},{1188,9982,0},{1198,9987,0}, {1208,9997,0},{1215,9998,0},{1218,10002,0},{1223,10002,0},{1227,9998,0}, {1237,10002,0},{1247,9997,0},{1253,9998,0},{1262,9997,0},{1267,9997,0}, {1275,9997,0},{1287,10003,0},{1295,10005,0},{1305,10010,0},{1308,10008,0}, {1315,10007,0},{1322,10000,0},{1327,9997,0},{1330,9995,0},{1335,10002,0}, {1337,10002,0},{1337,10000,0},{1337,10003,0},{1342,10005,0},{1348,10025,0}, {1352,10027,0},{1348,10033,0},{1352,10057,0},{1353,10058,0},{1357,10058,0}, {1360,10060,0},{1355,10058,0},{1352,10065,0},{1347,10092,0},{1347,10097,0}, {1350,10100,0},{1345,10097,0},{1337,10098,0},{1333,10093,0},{1330,10092,0}, {1320,10095,0},{1308,10088,0},{1305,10092,0},{1302,10093,0},{1298,10092,0}, {1297,10090,0},{1293,10088,0},{1292,10087,0},{1287,10090,0},{1280,10092,0}, {1277,10090,0},{1277,10087,0},{1273,10083,0},{1270,10083,0},{1270,10087,0}, {1268,10085,0},{1267,10087,0},{1265,10087,0},{1265,10092,0},{1265,10093,0}, {1262,10092,0},{1260,10097,0},{1263,10098,0},{1268,10108,0},{1265,10128,0}, {1258,10142,0},{1263,10145,0},{1263,10157,0},{1265,10158,0},{1265,10165,0}, {1270,10168,0},{1270,10175,0},{1265,10187,0},{1260,10188,0},{1260,10190,0}, {1258,10192,0},{1257,10190,0},{1252,10195,0},{1258,10193,0},{1260,10195,0}, {1253,10195,0},{1253,10198,0},{1252,10203,0},{1247,10205,0},{1252,10207,0}, {1252,10203,0},{1255,10202,0},{1255,10200,0},{1257,10207,0},{1255,10203,0}, {1253,10203,0},{1253,10210,0},{1253,10208,0},{1252,10208,0},{1253,10210,0}, {1253,10212,0},{1252,10208,0},{1248,10210,0},{1250,10208,0},{1248,10207,0}, {1243,10212,0},{1240,10212,0},{1240,10215,0},{1232,10223,0},{1230,10227,0}, {1230,10228,0},{1237,10225,0},{1240,10223,0},{1240,10220,0},{1242,10222,0}, {1243,10220,0},{1243,10222,0},{1242,10223,0},{1243,10227,0},{1242,10227,0}, {1238,10227,0},{1242,10230,0},{1237,10227,0},{1232,10230,0},{1233,10235,0}, {1235,10233,0},{1237,10232,0},{1237,10233,0},{1235,10237,0},{1228,10232,0}, {1228,10228,0},{1228,10227,0},{1223,10228,0},{1220,10228,0},{1218,10230,0}, {1218,10232,0},{1220,10233,0},{1218,10237,0},{1217,10240,0},{1215,10247,0}, {1213,10247,0},{1212,10252,0},{1208,10255,0},{1205,10255,0},{1205,10258,0}, {1220,10255,0},{1222,10260,0},{1220,10260,0},{1217,10265,0},{1215,10263,0}, {1203,10277,0},{1195,10278,0},{1190,10277,0},{1175,10290,0},{1163,10292,0}, {642,10013,128},{628,10018,0},{620,10025,0},{608,10030,0},{603,10033,0}, {597,10035,0},{582,10038,0},{570,10037,0},{567,10038,0},{567,10033,0},{557,10035,0}, {552,10038,0},{538,10037,0},{528,10043,0},{525,10042,0},{520,10043,0},{512,10040,0}, {508,10037,0},{498,10040,0},{497,10042,0},{492,10043,0},{492,10045,0},{492,10048,0}, {490,10052,0},{488,10052,0},{488,10050,0},{487,10050,0},{487,10055,0},{485,10057,0}, {482,10057,0},{480,10057,0},{480,10062,0},{477,10062,0},{475,10063,0},{475,10058,0}, {465,10060,0},{467,10067,0},{463,10063,0},{463,10060,0},{460,10058,0},{457,10060,0}, {455,10065,0},{443,10062,0},{440,10058,0},{432,10057,0},{430,10058,0},{427,10060,0}, {425,10062,0},{423,10060,0},{417,10062,0},{417,10068,0},{412,10073,0},{410,10077,0}, {403,10077,0},{402,10078,0},{403,10083,0},{402,10087,0},{398,10077,0},{400,10072,0}, {392,10070,0},{388,10070,0},{383,10077,0},{385,10085,0},{380,10082,0},{378,10082,0}, {377,10087,0},{370,10093,0},{363,10102,0},{360,10105,0},{347,10112,0},{335,10120,0}, {333,10123,0},{327,10130,0},{313,10132,0},{308,10137,0},{300,10137,0},{290,10128,0}, {288,10130,0},{283,10128,0},{280,10140,0},{270,10148,0},{267,10153,0},{262,10168,0}, {260,10170,0},{258,10177,0},{257,10178,0},{252,10180,0},{247,10185,0},{240,10185,0}, {242,10193,0},{240,10198,0},{237,10198,0},{233,10205,0},{227,10210,0},{222,10217,0}, {210,10247,0},{205,10255,0},{202,10255,0},{193,10265,0},{185,10270,0},{185,10283,0}, {175,10293,0},{173,10302,0},{162,10320,0},{153,10337,0},{148,10340,0},{132,10345,0}, {127,10352,0},{133,10355,0},{138,10355,0},{135,10358,0},{138,10363,0},{145,10368,0}, {145,10377,0},{148,10382,0},{143,10392,0},{142,10397,0},{143,10400,0},{147,10402,0}, {150,10400,0},{153,10402,0},{160,10397,0},{163,10395,0},{165,10397,0},{157,10403,0}, {150,10405,0},{153,10412,0},{155,10415,0},{152,10413,0},{150,10408,0},{147,10405,0}, {142,10410,0},{138,10410,0},{137,10412,0},{133,10420,0},{137,10425,0},{137,10428,0}, {142,10428,0},{145,10430,0},{155,10427,0},{163,10425,0},{180,10418,0},{185,10417,0}, {183,10415,0},{185,10413,0},{198,10412,0},{202,10407,0},{213,10402,0},{220,10397,0}, {225,10398,0},{233,10395,0},{235,10392,0},{247,10383,0},{252,10383,0},{258,10382,0}, {262,10377,0},{265,10377,0},{263,10372,0},{265,10370,0},{267,10367,0},{267,10363,0}, {268,10362,0},{280,10352,0},{293,10343,0},{305,10343,0},{318,10345,0},{340,10343,0}, {350,10348,0},{350,10345,0},{353,10347,0},{363,10337,0},{375,10333,0},{380,10335,0}, {380,10338,0},{390,10338,0},{395,10340,0},{395,10343,0},{405,10340,0},{410,10340,0}, {415,10342,0},{417,10345,0},{422,10345,0},{423,10347,0},{432,10350,0},{447,10345,0}, {455,10347,0},{473,10343,0},{480,10345,0},{508,10328,0},{523,10322,0},{538,10312,0}, {547,10305,0},{553,10297,0},{558,10285,0},{572,10267,0},{580,10262,0},{588,10250,0}, {608,10242,0},{618,10233,0},{623,10218,0},{622,10217,0},{620,10220,0},{620,10217,0}, {623,10210,0},{1035,9875,128},{1033,9875,0},{1017,9870,0},{997,9860,0}, {995,9860,0},{997,9863,0},{995,9863,0},{995,9858,0},{993,9858,0},{992,9857,0}, {990,9858,0},{988,9857,0},{987,9857,0},{988,9855,0},{987,9853,0},{985,9852,0}, {980,9855,0},{983,9857,0},{983,9858,0},{978,9855,0},{978,9852,0},{973,9850,0}, {975,9852,0},{973,9857,0},{970,9853,0},{972,9850,0},{968,9852,0},{967,9850,0}, {965,9852,0},{963,9850,0},{963,9847,0},{962,9847,0},{957,9848,0},{957,9853,0}, {953,9848,0},{955,9845,0},{942,9842,0},{940,9840,0},{932,9838,0},{925,9835,0}, {922,9837,0},{920,9835,0},{920,9833,0},{920,9832,0},{913,9835,0},{908,9838,0}, {907,9837,0},{905,9833,0},{902,9832,0},{902,9833,0},{903,9838,0},{900,9835,0}, {897,9837,0},{897,9832,0},{892,9830,0},{890,9830,0},{885,9827,0},{877,9825,0}, {873,9822,0},{867,9823,0},{857,9822,0},{853,9825,0},{852,9825,0},{855,9822,0}, {858,9820,0},{857,9820,0},{830,9827,0},{822,9828,0},{820,9832,0},{818,9833,0}, {818,9835,0},{815,9837,0},{813,9840,0},{817,9840,0},{815,9842,0},{815,9843,0}, {818,9845,0},{822,9847,0},{828,9845,0},{832,9842,0},{833,9847,0},{832,9848,0}, {833,9850,0},{833,9853,0},{835,9853,0},{837,9860,0},{840,9860,0},{838,9862,0}, {838,9865,0},{835,9863,0},{828,9862,0},{828,9865,0},{830,9868,0},{828,9870,0}, {822,9870,0},{825,9873,0},{822,9873,0},{813,9873,0},{813,9875,0},{808,9875,0}, {802,9877,0},{805,9880,0},{800,9883,0},{802,9888,0},{805,9892,0},{802,9895,0}, {793,9897,0},{793,9900,0},{790,9903,0},{792,9907,0},{785,9905,0},{782,9902,0}, {770,9903,0},{768,9910,0},{770,9912,0},{777,9913,0},{773,9913,0},{772,9918,0}, {768,9920,0},{765,9927,0},{762,9925,0},{762,9928,0},{757,9930,0},{753,9932,0}, {750,9930,0},{750,9933,0},{745,9935,0},{737,9933,0},{730,9940,0},{727,9947,0}, {730,9948,0},{737,9948,0},{738,9952,0},{737,9952,0},{730,9953,0},{730,9955,0}, {737,9960,0},{728,9958,0},{727,9955,0},{723,9953,0},{715,9958,0},{713,9958,0}, {715,9962,0},{713,9962,0},{715,9963,0},{717,9967,0},{715,9967,0},{712,9968,0}, {713,9975,0},{703,9968,0},{697,9968,0},{697,9970,0},{693,9972,0},{693,9968,0}, {688,9968,0},{685,9970,0},{683,9978,0},{677,9982,0},{677,9985,0},{672,9988,0}, {672,9992,0},{667,9993,0},{665,9995,0},{663,9997,0},{658,9997,0},{658,9998,0}, {652,10005,0},{653,10010,0},{652,10010,0},{648,10008,0},{647,10012,0},{642,10013,0}, {2115,9220,128},{2105,9227,0},{2095,9228,0},{2078,9237,0},{2070,9237,0}, {2067,9245,0},{2065,9247,0},{2062,9250,0},{2053,9253,0},{2043,9265,0},{2028,9272,0}, {2025,9273,0},{2028,9273,0},{2032,9273,0},{2043,9273,0},{2050,9272,0},{2058,9272,0}, {2070,9263,0},{2058,9272,0},{2048,9275,0},{2048,9277,0},{2047,9277,0},{2045,9277,0}, {2047,9280,0},{2050,9280,0},{2048,9283,0},{2045,9283,0},{2045,9282,0},{2040,9285,0}, {2038,9283,0},{2035,9287,0},{2035,9288,0},{2032,9290,0},{2032,9293,0},{2030,9287,0}, {2027,9280,0},{2022,9277,0},{2012,9287,0},{2012,9290,0},{2020,9292,0},{2030,9300,0}, {2045,9302,0},{2055,9308,0},{2052,9308,0},{2043,9303,0},{2038,9303,0},{2037,9305,0}, {2038,9307,0},{2042,9308,0},{2043,9310,0},{2040,9308,0},{2038,9310,0},{2033,9303,0}, {2030,9303,0},{2022,9298,0},{2017,9298,0},{2013,9300,0},{2017,9303,0},{2022,9312,0}, {2018,9312,0},{2015,9308,0},{2017,9308,0},{2015,9307,0},{2013,9307,0},{2012,9297,0}, {2007,9298,0},{2000,9305,0},{1997,9305,0},{1985,9312,0},{1983,9315,0},{1980,9317,0}, {1985,9313,0},{1995,9310,0},{1998,9310,0},{2000,9313,0},{1983,9322,0},{1982,9323,0}, {1983,9325,0},{1992,9320,0},{2008,9313,0},{2005,9317,0},{2007,9318,0},{2005,9325,0}, {2005,9330,0},{2010,9333,0},{2008,9335,0},{2002,9337,0},{2008,9338,0},{1997,9342,0}, {1995,9345,0},{1998,9347,0},{1997,9350,0},{2000,9352,0},{1998,9353,0},{1997,9352,0}, {1995,9352,0},{1995,9353,0},{1993,9352,0},{1992,9357,0},{1988,9355,0},{1988,9358,0}, {1990,9362,0},{1992,9370,0},{1993,9372,0},{1992,9375,0},{1990,9372,0},{1988,9373,0}, {1987,9365,0},{1982,9363,0},{1978,9360,0},{1972,9360,0},{1972,9362,0},{1975,9363,0}, {1972,9363,0},{1972,9368,0},{1977,9370,0},{1977,9372,0},{1975,9375,0},{1973,9372,0}, {1972,9372,0},{1968,9372,0},{1967,9375,0},{1968,9377,0},{1973,9380,0},{1972,9382,0}, {1970,9382,0},{1968,9380,0},{1965,9380,0},{1965,9375,0},{1965,9373,0},{1963,9373,0}, {1960,9378,0},{1957,9380,0},{1950,9387,0},{1950,9393,0},{1947,9390,0},{1947,9392,0}, {1945,9395,0},{1947,9398,0},{1942,9398,0},{1938,9400,0},{1927,9388,0},{1923,9382,0}, {1925,9373,0},{1927,9373,0},{1927,9372,0},{1928,9372,0},{1930,9367,0},{1933,9362,0}, {1935,9363,0},{1940,9362,0},{1940,9357,0},{1943,9355,0},{1942,9350,0},{1940,9348,0}, {1938,9348,0},{1935,9348,0},{1932,9350,0},{1922,9357,0},{1917,9360,0},{1913,9365,0}, {1907,9367,0},{1902,9368,0},{1902,9372,0},{1897,9373,0},{1893,9383,0},{1885,9393,0}, {1888,9393,0},{1890,9397,0},{1897,9398,0},{1902,9395,0},{1907,9395,0},{1912,9395,0}, {1920,9392,0},{1920,9393,0},{1917,9393,0},{1915,9397,0},{1915,9400,0},{1920,9403,0}, {1932,9403,0},{1938,9407,0},{1938,9408,0},{1930,9405,0},{1925,9405,0},{1923,9407,0}, {1915,9403,0},{1912,9403,0},{1908,9403,0},{1908,9410,0},{1905,9405,0},{1903,9407,0}, {1900,9403,0},{1893,9405,0},{1890,9403,0},{1885,9403,0},{1882,9412,0},{1887,9413,0}, {1885,9415,0},{1882,9415,0},{1878,9418,0},{1873,9422,0},{1875,9425,0},{1873,9427,0}, {1872,9422,0},{1873,9418,0},{1872,9417,0},{1873,9415,0},{1865,9423,0},{1853,9427,0}, {1853,9425,0},{1843,9432,0},{1837,9435,0},{1835,9440,0},{1830,9440,0},{1828,9438,0}, {1830,9433,0},{1825,9433,0},{1825,9440,0},{1822,9443,0},{1818,9443,0},{1817,9445,0}, {1805,9448,0},{1802,9448,0},{1798,9443,0},{1790,9448,0},{1780,9448,0},{1773,9455,0}, {1765,9457,0},{1763,9458,0},{1755,9462,0},{1755,9460,0},{1758,9457,0},{1755,9455,0}, {1750,9457,0},{1740,9457,0},{1733,9457,0},{1730,9460,0},{1732,9455,0},{1728,9453,0}, {1728,9452,0},{1722,9450,0},{1720,9453,0},{1717,9453,0},{1718,9447,0},{1718,9445,0}, {1715,9445,0},{1712,9448,0},{1707,9445,0},{1695,9445,0},{1695,9447,0},{1690,9442,0}, {1688,9438,0},{1680,9440,0},{1672,9437,0},{1663,9437,0},{1660,9433,0},{1658,9435,0}, {1655,9435,0},{1652,9432,0},{1653,9428,0},{1653,9427,0},{1648,9427,0},{1637,9425,0}, {1635,9423,0},{1627,9425,0},{1623,9423,0},{1603,9420,0},{1597,9425,0},{1598,9428,0}, {1598,9433,0},{1605,9437,0},{1607,9443,0},{1612,9445,0},{1618,9452,0},{1630,9452,0}, {1630,9453,0},{1627,9457,0},{1630,9460,0},{1633,9460,0},{1635,9463,0},{1633,9465,0}, {1632,9462,0},{1630,9462,0},{1625,9458,0},{1623,9458,0},{1627,9463,0},{1635,9468,0}, {1653,9467,0},{1650,9468,0},{1652,9473,0},{1648,9470,0},{1638,9472,0},{1635,9473,0}, {1635,9470,0},{1625,9467,0},{1620,9468,0},{1612,9468,0},{1603,9463,0},{1597,9457,0}, {1595,9457,0},{1593,9458,0},{1595,9462,0},{1602,9472,0},{1607,9472,0},{1610,9475,0}, {1613,9477,0},{1615,9480,0},{1613,9477,0},{1610,9477,0},{1607,9473,0},{1600,9473,0}, {1595,9467,0},{1592,9460,0},{1588,9462,0},{1590,9463,0},{1587,9463,0},{1585,9465,0}, {1585,9468,0},{1585,9472,0},{1595,9478,0},{1600,9483,0},{1603,9487,0},{1613,9485,0}, {1618,9487,0},{1620,9490,0},{1622,9497,0},{1625,9498,0},{1620,9497,0},{1618,9490,0}, {1613,9487,0},{1602,9488,0},{1603,9492,0},{1602,9492,0},{1600,9490,0},{1600,9487,0}, {1595,9483,0},{1588,9485,0},{1585,9485,0},{1583,9485,0},{1585,9487,0},{1587,9488,0}, {1583,9490,0},{1582,9488,0},{1580,9485,0},{1578,9485,0},{1575,9497,0},{1578,9498,0}, {1578,9500,0},{1580,9503,0},{1595,9507,0},{1605,9507,0},{1615,9513,0},{1613,9515,0}, {1612,9523,0},{1612,9518,0},{1608,9513,0},{1607,9512,0},{1603,9510,0},{1598,9510,0}, {1603,9513,0},{1590,9512,0},{1582,9512,0},{1578,9515,0},{1578,9518,0},{1578,9522,0}, {1588,9522,0},{1593,9523,0},{1600,9527,0},{1597,9528,0},{1588,9523,0},{1587,9523,0}, {1587,9528,0},{1598,9533,0},{1605,9535,0},{1610,9532,0},{1613,9537,0},{1610,9533,0}, {1605,9537,0},{1597,9537,0},{1593,9535,0},{1590,9532,0},{1587,9532,0},{1583,9528,0}, {1572,9528,0},{1572,9538,0},{1573,9543,0},{1580,9552,0},{1595,9567,0},{1598,9568,0}, {1605,9568,0},{1612,9573,0},{1622,9573,0},{1615,9575,0},{1613,9578,0},{1623,9588,0}, {1620,9588,0},{1622,9592,0},{1625,9595,0},{1622,9593,0},{1622,9597,0},{1632,9608,0}, {1633,9607,0},{1638,9600,0},{1635,9608,0},{1632,9612,0},{1643,9633,0},{1645,9633,0}, {1647,9630,0},{1658,9623,0},{1665,9625,0},{1667,9622,0},{1672,9620,0},{1677,9617,0}, {1677,9620,0},{1682,9627,0},{1682,9628,0},{1680,9628,0},{1677,9623,0},{1675,9622,0}, {1668,9623,0},{1665,9627,0},{1660,9627,0},{1655,9630,0},{1650,9640,0},{1650,9650,0}, {1655,9660,0},{1672,9678,0},{1673,9680,0},{1675,9678,0},{1677,9682,0},{1685,9685,0}, {1687,9685,0},{1690,9680,0},{1690,9685,0},{1693,9683,0},{1692,9688,0},{1703,9692,0}, {1708,9690,0},{1720,9685,0},{1730,9692,0},{1733,9690,0},{1735,9685,0},{1737,9685,0}, {1738,9682,0},{1742,9683,0},{1738,9685,0},{1745,9688,0},{1738,9690,0},{1730,9700,0}, {1727,9702,0},{1725,9707,0},{1718,9708,0},{1718,9710,0},{1715,9710,0},{1708,9712,0}, {1708,9713,0},{1712,9715,0},{1713,9718,0},{1710,9725,0},{1708,9723,0},{1712,9718,0}, {1710,9717,0},{1707,9715,0},{1702,9720,0},{1692,9718,0},{1690,9718,0},{1690,9722,0}, {1682,9722,0},{1687,9723,0},{1683,9723,0},{1682,9725,0},{1677,9725,0},{1675,9727,0}, {1670,9727,0},{1667,9730,0},{1667,9735,0},{1663,9733,0},{1648,9737,0},{1652,9742,0}, {1652,9750,0},{1653,9752,0},{1652,9763,0},{1653,9765,0},{1657,9770,0},{1657,9773,0}, {1655,9768,0},{1648,9763,0},{1635,9762,0},{1627,9765,0},{1612,9762,0},{1607,9757,0}, {1603,9758,0},{1602,9758,0},{1600,9760,0},{1595,9763,0},{1592,9770,0},{1588,9772,0}, {1585,9770,0},{1585,9773,0},{1577,9773,0},{1575,9772,0},{1573,9773,0},{1560,9775,0}, {1553,9777,0},{1550,9775,0},{1542,9778,0},{1538,9775,0},{1535,9775,0},{1535,9773,0}, {1530,9775,0},{1525,9773,0},{1520,9778,0},{1520,9782,0},{1518,9780,0},{1515,9782,0}, {1507,9780,0},{1503,9780,0},{1502,9778,0},{1500,9780,0},{1497,9782,0},{1487,9780,0}, {1472,9785,0},{1472,9788,0},{1473,9790,0},{1480,9790,0},{1475,9793,0},{1480,9795,0}, {1477,9797,0},{1473,9797,0},{1472,9800,0},{1470,9798,0},{1465,9803,0},{1467,9798,0}, {1472,9795,0},{1472,9792,0},{1467,9788,0},{1462,9790,0},{1462,9792,0},{1457,9792,0}, {1452,9795,0},{1443,9797,0},{1447,9800,0},{1437,9798,0},{1430,9800,0},{1420,9807,0}, {1418,9808,0},{1420,9810,0},{1417,9810,0},{1412,9810,0},{1405,9808,0},{1403,9807,0}, {1402,9807,0},{1392,9808,0},{1390,9810,0},{1385,9810,0},{1378,9812,0},{1378,9808,0}, {1377,9808,0},{1372,9810,0},{1373,9812,0},{1370,9810,0},{1368,9812,0},{1368,9817,0}, {1367,9817,0},{1367,9815,0},{1363,9815,0},{1362,9813,0},{1360,9815,0},{1358,9813,0}, {1357,9815,0},{1353,9813,0},{1355,9815,0},{1353,9817,0},{1353,9818,0},{1357,9817,0}, {1362,9817,0},{1367,9820,0},{1375,9817,0},{1387,9820,0},{1393,9818,0},{1397,9820,0}, {1402,9818,0},{1407,9818,0},{1400,9823,0},{1392,9823,0},{1387,9825,0},{1370,9823,0}, {1370,9830,0},{1368,9828,0},{1365,9830,0},{1362,9833,0},{1358,9833,0},{1358,9837,0}, {1355,9837,0},{1355,9838,0},{1347,9843,0},{1345,9842,0},{1340,9845,0},{1338,9845,0}, {1340,9847,0},{1337,9845,0},{1328,9847,0},{1330,9850,0},{1328,9850,0},{1325,9850,0}, {1323,9853,0},{1317,9858,0},{1312,9857,0},{1308,9858,0},{1302,9858,0},{1295,9862,0}, {1292,9858,0},{1287,9863,0},{1280,9865,0},{1278,9865,0},{1277,9860,0},{1275,9863,0}, {1275,9868,0},{1275,9867,0},{1273,9863,0},{1272,9870,0},{1265,9865,0},{1262,9867,0}, {1262,9865,0},{1255,9862,0},{1250,9872,0},{1248,9862,0},{1242,9860,0},{1238,9865,0}, {1238,9867,0},{1233,9870,0},{1230,9867,0},{1228,9857,0},{1225,9853,0},{1222,9855,0}, {1220,9860,0},{1223,9867,0},{1222,9872,0},{1220,9872,0},{1217,9865,0},{1215,9867,0}, {1213,9863,0},{1212,9863,0},{1208,9863,0},{1207,9865,0},{1207,9872,0},{1203,9870,0}, {1202,9872,0},{1198,9872,0},{1197,9872,0},{1195,9868,0},{1192,9865,0},{1190,9857,0}, {1188,9855,0},{1188,9865,0},{1190,9868,0},{1188,9870,0},{1187,9867,0},{1185,9865,0}, {1183,9865,0},{1182,9862,0},{1180,9860,0},{1180,9863,0},{1175,9860,0},{1172,9862,0}, {1168,9867,0},{1170,9870,0},{1173,9872,0},{1177,9877,0},{1178,9877,0},{1182,9882,0}, {1185,9882,0},{1182,9882,0},{1178,9878,0},{1175,9878,0},{1173,9882,0},{1173,9885,0}, {1170,9888,0},{1168,9888,0},{1170,9883,0},{1170,9882,0},{1167,9880,0},{1168,9875,0}, {1162,9873,0},{1157,9873,0},{1157,9872,0},{1152,9872,0},{1152,9875,0},{1145,9877,0}, {1145,9872,0},{1138,9870,0},{1138,9872,0},{1135,9872,0},{1133,9873,0},{1127,9877,0}, {1122,9873,0},{1117,9873,0},{1113,9870,0},{1113,9867,0},{1108,9868,0},{1110,9870,0}, {1108,9870,0},{1105,9873,0},{1102,9870,0},{1100,9868,0},{1098,9872,0},{1092,9872,0}, {1090,9867,0},{1092,9863,0},{1088,9862,0},{1087,9858,0},{1085,9863,0},{1083,9860,0}, {1080,9860,0},{1077,9857,0},{1073,9857,0},{1075,9852,0},{1070,9853,0},{1070,9852,0}, {1073,9850,0},{1072,9845,0},{1062,9847,0},{1055,9850,0},{1045,9850,0},{1035,9853,0}, {1030,9850,0},{1025,9852,0},{1018,9848,0},{1015,9852,0},{1008,9850,0},{1007,9852,0}, {1002,9852,0},{998,9853,0},{998,9855,0},{1010,9862,0},{1022,9868,0},{1035,9875,0}, {2192,8903,128},{2193,8907,0},{2202,8907,0},{2208,8903,0},{2213,8905,0}, {2212,8907,0},{2205,8907,0},{2202,8908,0},{2192,8908,0},{2185,8910,0},{2182,8910,0}, {2178,8915,0},{2182,8918,0},{2172,8922,0},{2165,8920,0},{2163,8923,0},{2167,8930,0}, {2168,8927,0},{2175,8930,0},{2182,8928,0},{2182,8932,0},{2187,8932,0},{2188,8935,0}, {2197,8935,0},{2190,8938,0},{2187,8938,0},{2183,8937,0},{2177,8937,0},{2173,8937,0}, {2172,8940,0},{2172,8942,0},{2177,8947,0},{2178,8947,0},{2185,8945,0},{2188,8948,0}, {2190,8952,0},{2192,8952,0},{2197,8952,0},{2203,8948,0},{2205,8952,0},{2208,8952,0}, {2213,8950,0},{2210,8948,0},{2213,8947,0},{2218,8947,0},{2222,8947,0},{2228,8947,0}, {2227,8950,0},{2218,8948,0},{2208,8953,0},{2202,8952,0},{2198,8953,0},{2198,8955,0}, {2212,8958,0},{2220,8955,0},{2223,8958,0},{2227,8958,0},{2233,8962,0},{2223,8960,0}, {2220,8957,0},{2210,8960,0},{2198,8955,0},{2193,8957,0},{2188,8957,0},{2182,8952,0}, {2172,8955,0},{2170,8958,0},{2170,8960,0},{2172,8960,0},{2175,8958,0},{2177,8960,0}, {2175,8965,0},{2177,8970,0},{2178,8970,0},{2185,8962,0},{2192,8965,0},{2190,8967,0}, {2185,8967,0},{2182,8973,0},{2185,8975,0},{2183,8977,0},{2183,8982,0},{2187,8983,0}, {2188,8988,0},{2192,8988,0},{2197,8985,0},{2203,8985,0},{2207,8980,0},{2208,8987,0}, {2217,8987,0},{2227,8983,0},{2235,8988,0},{2242,8987,0},{2238,8990,0},{2242,8993,0}, {2247,8998,0},{2245,8998,0},{2237,8992,0},{2228,8988,0},{2218,8990,0},{2212,8992,0}, {2203,8992,0},{2200,8995,0},{2205,8998,0},{2200,9000,0},{2200,9005,0},{2207,9008,0}, {2208,9012,0},{2203,9008,0},{2198,9007,0},{2195,9002,0},{2187,9003,0},{2183,9002,0}, {2183,9003,0},{2183,9007,0},{2190,9010,0},{2190,9012,0},{2185,9010,0},{2183,9008,0}, {2180,9010,0},{2178,9015,0},{2180,9020,0},{2183,9025,0},{2185,9025,0},{2187,9023,0}, {2192,9028,0},{2200,9032,0},{2208,9037,0},{2207,9043,0},{2208,9045,0},{2218,9050,0}, {2222,9057,0},{2223,9057,0},{2227,9060,0},{2237,9062,0},{2245,9062,0},{2247,9058,0}, {2255,9057,0},{2262,9050,0},{2272,9048,0},{2275,9045,0},{2278,9047,0},{2280,9045,0}, {2278,9042,0},{2283,9038,0},{2285,9040,0},{2282,9045,0},{2282,9055,0},{2283,9060,0}, {2288,9067,0},{2290,9067,0},{2290,9065,0},{2293,9062,0},{2295,9055,0},{2297,9053,0}, {2302,9038,0},{2303,9043,0},{2310,9045,0},{2310,9052,0},{2312,9053,0},{2313,9053,0}, {2315,9052,0},{2318,9050,0},{2327,9055,0},{2330,9055,0},{2333,9053,0},{2335,9047,0}, {2342,9035,0},{2338,9035,0},{2347,9018,0},{2345,9018,0},{2338,9018,0},{2343,9015,0}, {2353,9013,0},{2358,9010,0},{2360,9005,0},{2358,9000,0},{2357,8997,0},{2358,8995,0}, {2370,8985,0},{2377,8978,0},{2377,8972,0},{2380,8963,0},{2378,8950,0},{2385,8943,0}, {2388,8937,0},{2388,8927,0},{2392,8922,0},{2395,8925,0},{2395,8935,0},{2385,8945,0}, {2382,8962,0},{2382,8968,0},{2383,8972,0},{2390,8972,0},{2393,8968,0},{2397,8968,0}, {2400,8967,0},{2398,8975,0},{2397,8972,0},{2395,8972,0},{2390,8977,0},{2380,8978,0}, {2373,8987,0},{2368,8990,0},{2362,9010,0},{2353,9017,0},{2347,9028,0},{2340,9052,0}, {2343,9055,0},{2347,9057,0},{2353,9057,0},{2358,9052,0},{2357,9047,0},{2360,9050,0}, {2358,9057,0},{2350,9058,0},{2352,9063,0},{2348,9058,0},{2338,9058,0},{2335,9060,0}, {2333,9063,0},{2327,9065,0},{2315,9058,0},{2310,9057,0},{2302,9062,0},{2297,9068,0}, {2290,9073,0},{2288,9077,0},{2288,9080,0},{2290,9080,0},{2293,9077,0},{2288,9083,0}, {2287,9093,0},{2282,9102,0},{2282,9110,0},{2283,9110,0},{2282,9113,0},{2280,9125,0}, {2282,9128,0},{2282,9132,0},{2278,9133,0},{2285,9132,0},{2288,9133,0},{2283,9135,0}, {2277,9138,0},{2277,9142,0},{2285,9145,0},{2288,9147,0},{2290,9145,0},{2292,9148,0}, {2290,9147,0},{2287,9148,0},{2280,9143,0},{2278,9145,0},{2265,9160,0},{2260,9162,0}, {2248,9170,0},{2238,9175,0},{2223,9178,0},{2223,9182,0},{2227,9182,0},{2227,9183,0}, {2222,9183,0},{2218,9182,0},{2212,9183,0},{2212,9185,0},{2193,9192,0},{2185,9192,0}, {2178,9190,0},{2180,9193,0},{2178,9195,0},{2168,9195,0},{2168,9197,0},{2165,9198,0}, {2167,9202,0},{2163,9200,0},{2160,9202,0},{2157,9200,0},{2152,9200,0},{2145,9195,0}, {2130,9203,0},{2117,9203,0},{2102,9218,0},{2095,9220,0},{2075,9232,0},{2075,9233,0}, {2080,9233,0},{2088,9230,0},{2093,9225,0},{2107,9225,0},{2112,9220,0},{2115,9220,0}, {2377,6820,128},{2372,6820,0},{2368,6822,0},{2367,6825,0},{2368,6828,0}, {2367,6828,0},{2365,6823,0},{2367,6820,0},{2363,6817,0},{2362,6815,0},{2360,6813,0}, {2358,6818,0},{2358,6827,0},{2360,6833,0},{2362,6835,0},{2363,6833,0},{2363,6837,0}, {2368,6838,0},{2373,6845,0},{2377,6858,0},{2383,6863,0},{2383,6870,0},{2385,6873,0}, {2387,6877,0},{2388,6880,0},{2387,6882,0},{2382,6872,0},{2382,6867,0},{2375,6863,0}, {2372,6857,0},{2368,6853,0},{2365,6847,0},{2363,6847,0},{2363,6850,0},{2362,6848,0}, {2363,6843,0},{2362,6842,0},{2352,6840,0},{2348,6842,0},{2350,6843,0},{2350,6845,0}, {2355,6843,0},{2352,6848,0},{2348,6845,0},{2345,6843,0},{2343,6843,0},{2343,6847,0}, {2342,6847,0},{2340,6848,0},{2340,6850,0},{2342,6850,0},{2342,6855,0},{2342,6852,0}, {2337,6852,0},{2335,6857,0},{2333,6857,0},{2333,6860,0},{2332,6860,0},{2332,6857,0}, {2327,6853,0},{2325,6857,0},{2325,6860,0},{2327,6862,0},{2323,6862,0},{2323,6860,0}, {2318,6862,0},{2318,6865,0},{2315,6865,0},{2315,6867,0},{2300,6890,0},{2293,6905,0}, {2287,6915,0},{2283,6922,0},{2282,6928,0},{2283,6933,0},{2278,6948,0},{2278,6957,0}, {2275,6958,0},{2275,6968,0},{2275,6970,0},{2277,6975,0},{2280,6975,0},{2283,6980,0}, {2288,6997,0},{2292,7013,0},{2293,7013,0},{2295,7012,0},{2298,7013,0},{2297,7013,0}, {2295,7017,0},{2295,7022,0},{2297,7023,0},{2300,7023,0},{2295,7027,0},{2293,7035,0}, {2293,7038,0},{2302,7042,0},{2305,7040,0},{2308,7040,0},{2313,7048,0},{2310,7050,0}, {2305,7053,0},{2298,7052,0},{2297,7048,0},{2297,7043,0},{2293,7042,0},{2288,7037,0}, {2282,7032,0},{2277,7032,0},{2273,7027,0},{2270,7027,0},{2255,7017,0},{2255,7003,0}, {2255,7002,0},{2253,6995,0},{2252,6993,0},{2250,6992,0},{2247,6988,0},{2247,6983,0}, {2242,6980,0},{2247,6973,0},{2240,6970,0},{2240,6967,0},{2237,6965,0},{2238,6962,0}, {2235,6962,0},{2237,6958,0},{2237,6955,0},{2245,6955,0},{2243,6953,0},{2245,6952,0}, {2243,6950,0},{2238,6953,0},{2233,6948,0},{2232,6940,0},{2233,6935,0},{2228,6932,0}, {2227,6923,0},{2227,6922,0},{2232,6917,0},{2237,6918,0},{2240,6920,0},{2242,6920,0}, {2240,6915,0},{2240,6908,0},{2240,6907,0},{2242,6905,0},{2243,6905,0},{2245,6908,0}, {2248,6908,0},{2248,6907,0},{2245,6900,0},{2240,6898,0},{2233,6895,0},{2230,6895,0}, {2220,6900,0},{2197,6922,0},{2185,6937,0},{2187,6938,0},{2183,6938,0},{2178,6942,0}, {2173,6948,0},{2165,6957,0},{2160,6965,0},{2150,6975,0},{2147,6982,0},{2145,6980,0}, {2132,6990,0},{2125,6997,0},{2118,7002,0},{2107,7015,0},{2092,7033,0},{2090,7040,0}, {2085,7047,0},{2078,7058,0},{2075,7068,0},{2072,7073,0},{2072,7078,0},{2070,7083,0}, {2070,7097,0},{2072,7100,0},{2073,7102,0},{2077,7113,0},{2083,7132,0},{2088,7147,0}, {2093,7148,0},{2098,7157,0},{2095,7155,0},{2102,7170,0},{2103,7178,0},{2107,7182,0}, {2113,7192,0},{2113,7200,0},{2120,7212,0},{2125,7208,0},{2127,7210,0},{2132,7210,0}, {2147,7225,0},{2158,7228,0},{2163,7230,0},{2168,7227,0},{2170,7222,0},{2173,7222,0}, {2177,7218,0},{2178,7217,0},{2177,7212,0},{2178,7207,0},{2177,7202,0},{2180,7202,0}, {2178,7200,0},{2185,7200,0},{2187,7200,0},{2183,7208,0},{2183,7210,0},{2185,7208,0}, {2187,7208,0},{2188,7205,0},{2190,7207,0},{2188,7210,0},{2185,7213,0},{2183,7215,0}, {2185,7217,0},{2188,7217,0},{2192,7215,0},{2193,7215,0},{2192,7212,0},{2193,7205,0}, {2195,7203,0},{2195,7210,0},{2197,7208,0},{2198,7213,0},{2202,7210,0},{2197,7217,0}, {2200,7218,0},{2198,7222,0},{2200,7222,0},{2202,7227,0},{2205,7227,0},{2207,7230,0}, {2215,7233,0},{2223,7230,0},{2223,7223,0},{2228,7223,0},{2225,7222,0},{2225,7218,0}, {2228,7215,0},{2230,7227,0},{2228,7227,0},{2227,7227,0},{2225,7230,0},{2227,7233,0}, {2228,7233,0},{2237,7238,0},{2235,7242,0},{2230,7238,0},{2225,7238,0},{2223,7242,0}, {2227,7245,0},{2225,7247,0},{2223,7245,0},{2223,7247,0},{2223,7250,0},{2228,7258,0}, {2227,7262,0},{2227,7268,0},{2223,7275,0},{2227,7282,0},{2227,7290,0},{2228,7290,0}, {2227,7292,0},{2222,7292,0},{2222,7288,0},{2223,7282,0},{2222,7278,0},{2217,7275,0}, {2218,7272,0},{2218,7268,0},{2222,7263,0},{2220,7258,0},{2213,7253,0},{2198,7250,0}, {2192,7253,0},{2190,7255,0},{2197,7262,0},{2197,7268,0},{2200,7272,0},{2198,7273,0}, {2198,7272,0},{2193,7268,0},{2193,7263,0},{2185,7257,0},{2177,7255,0},{2170,7253,0}, {2167,7253,0},{2168,7262,0},{2167,7268,0},{2168,7275,0},{2167,7278,0},{2168,7285,0}, {2168,7293,0},{2177,7312,0},{2175,7313,0},{2173,7312,0},{2172,7307,0},{2165,7290,0}, {2163,7282,0},{2157,7277,0},{2155,7272,0},{2148,7263,0},{2142,7258,0},{2143,7265,0}, {2147,7272,0},{2147,7275,0},{2145,7275,0},{2145,7270,0},{2142,7265,0},{2138,7257,0}, {2137,7257,0},{2137,7265,0},{2133,7258,0},{2125,7262,0},{2127,7263,0},{2125,7265,0}, {2120,7273,0},{2113,7262,0},{2110,7262,0},{2108,7263,0},{2110,7267,0},{2115,7267,0}, {2117,7272,0},{2115,7273,0},{2112,7270,0},{2107,7270,0},{2108,7273,0},{2112,7273,0}, {2112,7278,0},{2113,7280,0},{2110,7283,0},{2107,7283,0},{2107,7285,0},{2103,7285,0}, {2103,7277,0},{2100,7278,0},{2100,7282,0},{2097,7283,0},{2098,7288,0},{2097,7290,0}, {2095,7288,0},{2093,7283,0},{2090,7287,0},{2088,7285,0},{2085,7285,0},{2083,7283,0}, {2087,7290,0},{2083,7288,0},{2078,7290,0},{2082,7292,0},{2078,7292,0},{2077,7295,0}, {2073,7290,0},{2072,7292,0},{2063,7290,0},{2062,7288,0},{2050,7288,0},{2045,7283,0}, {2037,7282,0},{2035,7278,0},{2030,7275,0},{2022,7273,0},{2022,7275,0},{2010,7272,0}, {2007,7270,0},{1998,7270,0},{1993,7267,0},{1988,7267,0},{1983,7265,0},{1980,7268,0}, {1975,7268,0},{1978,7273,0},{1975,7273,0},{1975,7272,0},{1970,7273,0},{1970,7270,0}, {1972,7268,0},{1962,7272,0},{1960,7270,0},{1952,7273,0},{1952,7275,0},{1953,7273,0}, {1958,7273,0},{1957,7277,0},{1952,7280,0},{1953,7283,0},{1953,7288,0},{1947,7273,0}, {1937,7275,0},{1933,7280,0},{1933,7283,0},{1933,7288,0},{1930,7292,0},{1932,7297,0}, {1928,7300,0},{1925,7303,0},{1923,7302,0},{1922,7305,0},{1920,7303,0},{1922,7302,0}, {1928,7297,0},{1928,7290,0},{1932,7285,0},{1930,7280,0},{1932,7278,0},{1922,7277,0}, {1920,7278,0},{1925,7282,0},{1925,7283,0},{1917,7278,0},{1915,7278,0},{1917,7282,0}, {1907,7282,0},{1905,7283,0},{1903,7280,0},{1900,7280,0},{1895,7277,0},{1895,7280,0}, {1895,7282,0},{1890,7280,0},{1890,7282,0},{1895,7283,0},{1902,7288,0},{1898,7288,0}, {1902,7292,0},{1905,7295,0},{1907,7293,0},{1912,7293,0},{1917,7297,0},{1908,7297,0}, {1907,7300,0},{1900,7298,0},{1902,7305,0},{1900,7305,0},{1897,7295,0},{1895,7298,0}, {1893,7297,0},{1895,7293,0},{1892,7293,0},{1890,7293,0},{1892,7290,0},{1888,7290,0}, {1885,7292,0},{1887,7298,0},{1885,7297,0},{1883,7298,0},{1882,7302,0},{1880,7300,0}, {1873,7298,0},{1875,7297,0},{1878,7297,0},{1882,7293,0},{1878,7290,0},{1880,7288,0}, {1880,7285,0},{1867,7285,0},{1863,7288,0},{1855,7292,0},{1855,7297,0},{1848,7300,0}, {1847,7302,0},{1845,7300,0},{1847,7298,0},{1852,7297,0},{1853,7293,0},{1852,7290,0}, {1847,7288,0},{1842,7290,0},{1838,7292,0},{1835,7292,0},{1833,7295,0},{1833,7297,0}, {1830,7297,0},{1828,7298,0},{1827,7303,0},{1828,7305,0},{1827,7307,0},{1822,7308,0}, {1818,7307,0},{1818,7305,0},{1822,7305,0},{1825,7300,0},{1823,7297,0},{1827,7297,0}, {1828,7293,0},{1823,7292,0},{1822,7295,0},{1818,7297,0},{1812,7297,0},{1808,7298,0}, {1807,7298,0},{1803,7300,0},{1805,7305,0},{1805,7303,0},{1802,7300,0},{1798,7302,0}, {1798,7303,0},{1797,7302,0},{1795,7302,0},{1792,7305,0},{1790,7305,0},{1777,7312,0}, {1772,7312,0},{1768,7310,0},{1765,7312,0},{1763,7312,0},{1760,7313,0},{1758,7320,0}, {1757,7317,0},{1757,7313,0},{1753,7313,0},{1747,7318,0},{1743,7318,0},{1740,7317,0}, {1738,7317,0},{1737,7320,0},{1728,7325,0},{1730,7318,0},{1722,7323,0},{1720,7323,0}, {1717,7325,0},{1708,7327,0},{1703,7327,0},{1703,7325,0},{1700,7325,0},{1698,7328,0}, {1690,7327,0},{1690,7328,0},{1687,7327,0},{1682,7328,0},{1680,7332,0},{1675,7328,0}, {1672,7330,0},{1668,7333,0},{1665,7332,0},{1662,7332,0},{1663,7337,0},{1660,7338,0}, {1662,7335,0},{1660,7333,0},{1660,7332,0},{1657,7333,0},{1655,7337,0},{1653,7335,0}, {1652,7338,0},{1652,7333,0},{1655,7332,0},{1655,7330,0},{1652,7330,0},{1642,7335,0}, {1640,7338,0},{1637,7335,0},{1635,7338,0},{1622,7342,0},{1622,7343,0},{1618,7343,0}, {1612,7345,0},{1617,7345,0},{1618,7348,0},{1615,7347,0},{1608,7347,0},{1607,7345,0}, {1602,7348,0},{1602,7352,0},{1600,7348,0},{1598,7348,0},{1588,7360,0},{1578,7365,0}, {1573,7365,0},{1572,7367,0},{1572,7370,0},{1570,7368,0},{1562,7372,0},{1565,7378,0}, {1565,7383,0},{1565,7378,0},{1560,7373,0},{1550,7377,0},{1550,7380,0},{1553,7387,0}, {1550,7387,0},{1550,7382,0},{1545,7378,0},{1542,7392,0},{1540,7395,0},{1537,7397,0}, {1540,7392,0},{1540,7378,0},{1537,7382,0},{1537,7388,0},{1530,7390,0},{1527,7390,0}, {1515,7395,0},{1515,7397,0},{1512,7392,0},{1508,7392,0},{1507,7395,0},{1502,7400,0}, {1500,7402,0},{1497,7403,0},{1492,7403,0},{1490,7408,0},{1485,7412,0},{1485,7413,0}, {1490,7422,0},{1488,7420,0},{1487,7423,0},{1487,7418,0},{1483,7417,0},{1483,7415,0}, {1483,7412,0},{1480,7412,0},{1480,7408,0},{1477,7413,0},{1475,7415,0},{1475,7417,0}, {1472,7420,0},{1473,7422,0},{1472,7425,0},{1468,7427,0},{1462,7427,0},{1460,7428,0}, {1462,7432,0},{1460,7433,0},{1458,7428,0},{1452,7430,0},{1452,7433,0},{1455,7433,0}, {1457,7435,0},{1455,7435,0},{1453,7438,0},{1453,7437,0},{1452,7438,0},{1450,7440,0}, {1448,7442,0},{1447,7440,0},{1445,7440,0},{1447,7438,0},{1448,7438,0},{1453,7437,0}, {1452,7435,0},{1442,7438,0},{1442,7440,0},{1430,7442,0},{1425,7452,0},{1425,7443,0}, {1418,7447,0},{1405,7450,0},{1402,7450,0},{1398,7452,0},{1393,7457,0},{1383,7462,0}, {1368,7463,0},{1367,7465,0},{1370,7468,0},{1370,7470,0},{1368,7468,0},{1365,7470,0}, {1365,7473,0},{1363,7470,0},{1365,7468,0},{1362,7467,0},{1363,7467,0},{1352,7468,0}, {1347,7470,0},{1347,7472,0},{1343,7470,0},{1342,7472,0},{1342,7470,0},{1342,7468,0}, {1347,7468,0},{1338,7468,0},{1335,7472,0},{1322,7473,0},{1310,7477,0},{1308,7478,0}, {1302,7477,0},{1287,7482,0},{1285,7485,0},{1287,7492,0},{1287,7493,0},{1285,7488,0}, {1282,7487,0},{1283,7482,0},{1278,7485,0},{1275,7485,0},{1252,7497,0},{1233,7507,0}, {1222,7510,0},{1225,7513,0},{1220,7513,0},{1210,7518,0},{1200,7520,0},{1202,7522,0}, {1200,7523,0},{1197,7528,0},{1198,7527,0},{1202,7527,0},{1203,7530,0},{1202,7532,0}, {1200,7533,0},{1200,7527,0},{1198,7528,0},{1195,7532,0},{1195,7535,0},{1197,7540,0}, {1193,7538,0},{1192,7540,0},{1193,7530,0},{1192,7532,0},{1190,7532,0},{1185,7535,0}, {1185,7538,0},{1170,7553,0},{1147,7562,0},{1145,7568,0},{1137,7572,0},{1137,7573,0}, {1133,7573,0},{1108,7583,0},{1093,7588,0},{1080,7590,0},{1080,7593,0},{1077,7592,0}, {1075,7592,0},{1055,7602,0},{1050,7605,0},{1042,7608,0},{1037,7612,0},{1018,7617,0}, {1020,7620,0},{1027,7620,0},{1023,7622,0},{1023,7623,0},{1020,7623,0},{1017,7618,0}, {1008,7618,0},{998,7623,0},{1007,7623,0},{1012,7620,0},{1013,7622,0},{1012,7622,0}, {1010,7623,0},{1012,7623,0},{1008,7625,0},{1007,7625,0},{1003,7627,0},{998,7627,0}, {997,7628,0},{995,7630,0},{997,7632,0},{992,7637,0},{982,7640,0},{978,7638,0}, {973,7640,0},{970,7638,0},{970,7640,0},{968,7642,0},{967,7642,0},{970,7637,0}, {982,7637,0},{987,7633,0},{985,7632,0},{982,7633,0},{973,7635,0},{970,7633,0}, {987,7632,0},{987,7630,0},{983,7628,0},{987,7628,0},{988,7628,0},{987,7627,0}, {988,7627,0},{992,7627,0},{992,7630,0},{997,7625,0},{995,7623,0},{975,7628,0}, {968,7628,0},{948,7632,0},{928,7638,0},{915,7645,0},{925,7642,0},{925,7643,0}, {915,7647,0},{917,7647,0},{917,7648,0},{912,7648,0},{913,7647,0},{912,7645,0}, {900,7652,0},{893,7653,0},{900,7657,0},{895,7657,0},{900,7658,0},{900,7665,0}, {900,7667,0},{898,7663,0},{897,7667,0},{897,7660,0},{892,7657,0},{892,7662,0}, {890,7658,0},{893,7655,0},{892,7653,0},{890,7655,0},{880,7667,0},{840,7697,0}, {818,7723,0},{815,7728,0},{812,7730,0},{807,7753,0},{808,7757,0},{812,7757,0}, {813,7758,0},{818,7778,0},{822,7780,0},{825,7785,0},{833,7798,0},{837,7807,0}, {840,7807,0},{848,7813,0},{862,7813,0},{865,7812,0},{865,7813,0},{873,7817,0}, {875,7820,0},{877,7822,0},{878,7820,0},{877,7820,0},{877,7817,0},{887,7817,0}, {890,7820,0},{897,7823,0},{910,7842,0},{915,7865,0},{918,7867,0},{918,7873,0}, {923,7882,0},{925,7888,0},{925,7892,0},{927,7897,0},{925,7912,0},{927,7917,0}, {925,7923,0},{925,7928,0},{923,7933,0},{917,7940,0},{915,7945,0},{918,7943,0}, {925,7933,0},{932,7935,0},{932,7930,0},{928,7927,0},{928,7922,0},{928,7910,0}, {932,7903,0},{940,7895,0},{948,7890,0},{950,7893,0},{960,7895,0},{963,7897,0}, {967,7898,0},{973,7903,0},{983,7912,0},{992,7917,0},{1002,7925,0},{1003,7928,0}, {1008,7923,0},{1018,7923,0},{1018,7927,0},{1022,7927,0},{1028,7932,0},{1028,7937,0}, {1032,7940,0},{1032,7952,0},{1032,7953,0},{1033,7953,0},{1033,7957,0},{1033,7960,0}, {1032,7960,0},{1032,7955,0},{1030,7955,0},{1027,7973,0},{1027,7977,0},{1030,7975,0}, {1028,7972,0},{1030,7968,0},{1030,7962,0},{1032,7963,0},{1030,7970,0},{1032,7973,0}, {1028,7978,0},{1027,7978,0},{1028,7985,0},{1038,7987,0},{1082,7983,0},{1117,7985,0}, {1123,7983,0},{1135,7983,0},{1137,7977,0},{1135,7975,0},{1130,7970,0},{1130,7967,0}, {1138,7977,0},{1137,7982,0},{1143,7982,0},{1145,7978,0},{1143,7980,0},{1143,7978,0}, {1155,7975,0},{1177,7978,0},{1180,7980,0},{1183,7980,0},{1197,7985,0},{1203,7987,0}, {1223,8000,0},{1220,7995,0},{1222,7995,0},{1223,7998,0},{1228,8003,0},{1232,8005,0}, {1235,8010,0},{1248,8017,0},{1278,8027,0},{1295,8027,0},{1307,8028,0},{1310,8032,0}, {1313,8030,0},{1320,8033,0},{1322,8033,0},{1322,8032,0},{1325,8032,0},{1325,8033,0}, {1333,8035,0},{1345,8033,0},{1338,8033,0},{1342,8032,0},{1343,8027,0},{1347,8027,0}, {1348,8023,0},{1348,8017,0},{1350,8012,0},{1362,8005,0},{1362,8007,0},{1365,8007,0}, {1365,8008,0},{1368,8010,0},{1367,8012,0},{1362,8012,0},{1362,8013,0},{1365,8015,0}, {1373,8015,0},{1367,8018,0},{1365,8018,0},{1362,8022,0},{1352,8028,0},{1345,8030,0}, {1343,8032,0},{1345,8032,0},{1368,8023,0},{1373,8023,0},{1377,8025,0},{1382,8025,0}, {1402,8015,0},{1415,8013,0},{1423,8013,0},{1420,8008,0},{1420,8003,0},{1425,8008,0}, {1427,8015,0},{1435,8018,0},{1448,8018,0},{1457,8020,0},{1457,8015,0},{1458,8018,0}, {1460,8018,0},{1467,8015,0},{1470,8010,0},{1478,8010,0},{1483,8008,0},{1508,8005,0}, {1518,8007,0},{1522,8008,0},{1532,8008,0},{1540,8013,0},{1548,8020,0},{1550,8020,0}, {1570,8028,0},{1577,8037,0},{1585,8052,0},{1588,8055,0},{1587,8057,0},{1588,8060,0}, {1588,8068,0},{1588,8065,0},{1590,8067,0},{1588,8078,0},{1583,8080,0},{1573,8080,0}, {1572,8082,0},{1583,8085,0},{1592,8090,0},{1602,8088,0},{1600,8088,0},{1602,8088,0}, {1603,8090,0},{1593,8092,0},{1585,8090,0},{1578,8102,0},{1585,8100,0},{1597,8113,0}, {1597,8115,0},{1605,8115,0},{1618,8120,0},{1628,8127,0},{1632,8125,0},{1637,8132,0}, {1637,8135,0},{1637,8138,0},{1638,8142,0},{1637,8143,0},{1633,8142,0},{1635,8147,0}, {1635,8155,0},{1637,8153,0},{1637,8157,0},{1635,8157,0},{1633,8165,0},{1630,8170,0}, {1637,8183,0},{1638,8193,0},{1640,8195,0},{1642,8200,0},{1645,8203,0},{1645,8207,0}, {1657,8230,0},{1662,8228,0},{1660,8230,0},{1662,8232,0},{1680,8237,0},{1687,8237,0}, {1695,8235,0},{1693,8237,0},{1685,8237,0},{1682,8237,0},{1685,8235,0},{1687,8228,0}, {1688,8225,0},{1692,8225,0},{1693,8227,0},{1705,8232,0},{1720,8248,0},{1725,8253,0}, {1737,8277,0},{1740,8285,0},{1742,8288,0},{1742,8290,0},{1745,8298,0},{1750,8302,0}, {1755,8317,0},{1760,8323,0},{1763,8322,0},{1763,8325,0},{1767,8330,0},{1770,8325,0}, {1772,8323,0},{1772,8328,0},{1768,8330,0},{1772,8335,0},{1788,8345,0},{1792,8345,0}, {1790,8347,0},{1793,8352,0},{1802,8358,0},{1815,8378,0},{1820,8390,0},{1820,8393,0}, {1822,8393,0},{1823,8402,0},{1830,8412,0},{1837,8413,0},{1855,8435,0},{1850,8428,0}, {1850,8423,0},{1852,8425,0},{1852,8427,0},{1853,8428,0},{1865,8443,0},{1868,8445,0}, {1877,8453,0},{1888,8462,0},{1898,8470,0},{1910,8478,0},{1910,8475,0},{1907,8473,0}, {1910,8472,0},{1915,8473,0},{1913,8477,0},{1912,8477,0},{1912,8478,0},{1915,8482,0}, {1922,8487,0},{1933,8502,0},{1937,8507,0},{1942,8510,0},{1947,8517,0},{1958,8533,0}, {1968,8558,0},{1957,8532,0},{1960,8528,0},{1960,8532,0},{1962,8532,0},{1958,8533,0}, {1962,8538,0},{1963,8538,0},{1965,8540,0},{1967,8540,0},{1968,8538,0},{1967,8538,0}, {1967,8535,0},{1963,8530,0},{1965,8525,0},{1963,8523,0},{1960,8525,0},{1958,8522,0}, {1958,8520,0},{1955,8523,0},{1955,8518,0},{1953,8520,0},{1950,8520,0},{1950,8517,0}, {1947,8513,0},{1952,8512,0},{1952,8510,0},{1953,8510,0},{1955,8513,0},{1955,8515,0}, {1960,8513,0},{1968,8520,0},{1972,8520,0},{1977,8525,0},{1978,8532,0},{1983,8535,0}, {1990,8547,0},{1988,8557,0},{1983,8558,0},{1980,8557,0},{1975,8555,0},{1973,8557,0}, {1972,8552,0},{1973,8552,0},{1970,8542,0},{1968,8542,0},{1968,8545,0},{1967,8545,0}, {1968,8553,0},{1973,8562,0},{1972,8563,0},{1972,8562,0},{1977,8573,0},{1983,8602,0}, {1985,8605,0},{1985,8610,0},{1990,8627,0},{1995,8632,0},{1997,8638,0},{1998,8632,0}, {2002,8630,0},{2002,8623,0},{2007,8617,0},{2008,8615,0},{2013,8615,0},{2008,8618,0}, {2005,8623,0},{2007,8628,0},{1998,8637,0},{1998,8642,0},{2000,8642,0},{2000,8640,0}, {2002,8640,0},{2010,8648,0},{2010,8647,0},{2018,8648,0},{2028,8670,0},{2032,8675,0}, {2028,8670,0},{2030,8670,0},{2032,8675,0},{2038,8680,0},{2043,8680,0},{2038,8678,0}, {2040,8677,0},{2037,8672,0},{2038,8672,0},{2045,8673,0},{2048,8675,0},{2070,8705,0}, {2067,8703,0},{2067,8700,0},{2068,8698,0},{2070,8693,0},{2072,8695,0},{2070,8700,0}, {2075,8698,0},{2075,8693,0},{2077,8688,0},{2078,8690,0},{2078,8697,0},{2080,8697,0}, {2095,8690,0},{2098,8688,0},{2115,8683,0},{2120,8683,0},{2127,8688,0},{2138,8697,0}, {2148,8707,0},{2155,8722,0},{2157,8737,0},{2160,8745,0},{2165,8763,0},{2165,8767,0}, {2170,8780,0},{2177,8788,0},{2180,8790,0},{2185,8798,0},{2197,8803,0},{2202,8805,0}, {2202,8808,0},{2208,8817,0},{2212,8817,0},{2217,8815,0},{2220,8802,0},{2222,8798,0}, {2227,8795,0},{2240,8792,0},{2242,8790,0},{2242,8793,0},{2230,8797,0},{2223,8800,0}, {2222,8803,0},{2223,8808,0},{2222,8808,0},{2218,8817,0},{2215,8820,0},{2207,8822,0}, {2198,8815,0},{2195,8815,0},{2192,8817,0},{2187,8815,0},{2180,8820,0},{2172,8820,0}, {2168,8818,0},{2167,8818,0},{2162,8820,0},{2160,8820,0},{2162,8822,0},{2155,8825,0}, {2157,8830,0},{2160,8828,0},{2167,8830,0},{2178,8825,0},{2180,8827,0},{2177,8830,0}, {2160,8832,0},{2162,8835,0},{2167,8835,0},{2170,8832,0},{2172,8833,0},{2168,8835,0}, {2170,8838,0},{2163,8838,0},{2158,8838,0},{2162,8845,0},{2167,8847,0},{2173,8845,0}, {2180,8847,0},{2180,8850,0},{2185,8848,0},{2188,8847,0},{2192,8850,0},{2195,8850,0}, {2192,8852,0},{2187,8850,0},{2182,8853,0},{2178,8853,0},{2175,8850,0},{2167,8853,0}, {2160,8852,0},{2158,8850,0},{2155,8848,0},{2152,8850,0},{2153,8855,0},{2155,8853,0}, {2157,8853,0},{2155,8855,0},{2157,8857,0},{2162,8857,0},{2162,8860,0},{2170,8858,0}, {2170,8862,0},{2175,8863,0},{2178,8862,0},{2177,8857,0},{2182,8855,0},{2193,8860,0}, {2198,8860,0},{2203,8863,0},{2210,8862,0},{2220,8867,0},{2220,8868,0},{2217,8868,0}, {2215,8865,0},{2210,8863,0},{2202,8867,0},{2197,8862,0},{2193,8863,0},{2193,8868,0}, {2202,8873,0},{2208,8868,0},{2212,8873,0},{2213,8877,0},{2207,8872,0},{2203,8875,0}, {2200,8877,0},{2195,8872,0},{2188,8872,0},{2185,8870,0},{2170,8868,0},{2162,8872,0}, {2157,8872,0},{2155,8873,0},{2157,8878,0},{2158,8880,0},{2162,8877,0},{2165,8878,0}, {2167,8880,0},{2168,8880,0},{2165,8882,0},{2163,8880,0},{2162,8882,0},{2163,8885,0}, {2168,8883,0},{2177,8887,0},{2170,8887,0},{2165,8890,0},{2163,8893,0},{2160,8900,0}, {2163,8903,0},{2160,8905,0},{2162,8908,0},{2167,8908,0},{2178,8902,0},{2187,8902,0}, {2192,8893,0},{2195,8890,0},{2198,8892,0},{2198,8893,0},{2193,8895,0},{2190,8900,0}, {2190,8902,0},{2193,8902,0},{2192,8903,0},{2520,6162,128},{2520,6170,0}, {2517,6175,0},{2518,6178,0},{2517,6178,0},{2510,6175,0},{2508,6173,0},{2505,6172,0}, {2503,6177,0},{2505,6180,0},{2503,6185,0},{2507,6185,0},{2507,6187,0},{2510,6187,0}, {2512,6193,0},{2510,6210,0},{2515,6207,0},{2518,6208,0},{2520,6210,0},{2522,6217,0}, {2522,6225,0},{2520,6230,0},{2517,6232,0},{2515,6232,0},{2512,6230,0},{2512,6228,0}, {2510,6228,0},{2510,6238,0},{2512,6238,0},{2513,6233,0},{2517,6235,0},{2520,6242,0}, {2522,6248,0},{2522,6247,0},{2525,6248,0},{2527,6255,0},{2525,6275,0},{2522,6300,0}, {2523,6308,0},{2525,6312,0},{2525,6315,0},{2522,6330,0},{2522,6342,0},{2518,6350,0}, {2522,6352,0},{2525,6348,0},{2528,6347,0},{2528,6350,0},{2532,6352,0},{2537,6357,0}, {2538,6373,0},{2533,6393,0},{2533,6407,0},{2537,6407,0},{2542,6405,0},{2538,6402,0}, {2542,6400,0},{2542,6398,0},{2545,6403,0},{2543,6407,0},{2545,6412,0},{2545,6415,0}, {2542,6413,0},{2543,6410,0},{2542,6408,0},{2537,6412,0},{2535,6410,0},{2533,6410,0}, {2532,6425,0},{2530,6427,0},{2527,6438,0},{2523,6443,0},{2523,6448,0},{2527,6450,0}, {2527,6455,0},{2523,6462,0},{2522,6463,0},{2517,6460,0},{2517,6467,0},{2518,6472,0}, {2522,6467,0},{2528,6468,0},{2532,6475,0},{2532,6507,0},{2528,6513,0},{2530,6517,0}, {2532,6520,0},{2535,6520,0},{2537,6525,0},{2537,6528,0},{2538,6532,0},{2538,6535,0}, {2538,6540,0},{2537,6538,0},{2538,6545,0},{2535,6567,0},{2537,6570,0},{2538,6578,0}, {2542,6585,0},{2542,6600,0},{2545,6608,0},{2545,6617,0},{2547,6627,0},{2545,6640,0}, {2540,6650,0},{2540,6652,0},{2542,6650,0},{2545,6647,0},{2548,6648,0},{2548,6642,0}, {2552,6640,0},{2553,6635,0},{2555,6633,0},{2555,6627,0},{2548,6622,0},{2547,6610,0}, {2550,6613,0},{2557,6617,0},{2560,6620,0},{2562,6627,0},{2560,6632,0},{2562,6637,0}, {2558,6638,0},{2560,6643,0},{2552,6650,0},{2552,6653,0},{2545,6655,0},{2542,6658,0}, {2538,6658,0},{2538,6655,0},{2537,6655,0},{2525,6670,0},{2520,6673,0},{2515,6673,0}, {2512,6670,0},{2495,6668,0},{2493,6667,0},{2490,6668,0},{2488,6670,0},{2488,6667,0}, {2483,6665,0},{2485,6675,0},{2483,6682,0},{2485,6685,0},{2480,6695,0},{2483,6695,0}, {2483,6697,0},{2480,6702,0},{2477,6707,0},{2477,6708,0},{2480,6708,0},{2478,6712,0}, {2480,6715,0},{2475,6718,0},{2477,6723,0},{2475,6725,0},{2473,6725,0},{2472,6720,0}, {2465,6715,0},{2462,6715,0},{2460,6722,0},{2458,6725,0},{2458,6718,0},{2453,6720,0}, {2453,6723,0},{2450,6722,0},{2445,6725,0},{2442,6725,0},{2443,6728,0},{2435,6728,0}, {2435,6737,0},{2433,6730,0},{2428,6728,0},{2425,6730,0},{2422,6730,0},{2413,6733,0}, {2408,6733,0},{2407,6738,0},{2407,6747,0},{2405,6750,0},{2407,6753,0},{2403,6750,0}, {2403,6747,0},{2398,6745,0},{2397,6747,0},{2397,6750,0},{2392,6750,0},{2393,6753,0}, {2390,6752,0},{2390,6748,0},{2388,6748,0},{2387,6755,0},{2388,6753,0},{2388,6752,0}, {2390,6753,0},{2387,6757,0},{2388,6758,0},{2385,6758,0},{2385,6762,0},{2388,6763,0}, {2392,6763,0},{2393,6765,0},{2388,6765,0},{2380,6763,0},{2378,6772,0},{2380,6775,0}, {2383,6772,0},{2382,6780,0},{2382,6783,0},{2388,6785,0},{2392,6785,0},{2390,6787,0}, {2388,6785,0},{2385,6787,0},{2387,6788,0},{2387,6790,0},{2383,6790,0},{2380,6795,0}, {2380,6800,0},{2377,6802,0},{2383,6805,0},{2393,6802,0},{2392,6807,0},{2388,6805,0}, {2382,6810,0},{2380,6807,0},{2377,6808,0},{2372,6805,0},{2370,6810,0},{2373,6810,0}, {2372,6812,0},{2370,6812,0},{2368,6815,0},{2372,6817,0},{2375,6815,0},{2383,6817,0}, {2388,6815,0},{2390,6815,0},{2387,6817,0},{2383,6818,0},{2375,6817,0},{2375,6818,0}, {2377,6820,0},{2997,4853,128},{2995,4860,0},{2997,4865,0},{3000,4867,0}, {3003,4863,0},{3005,4865,0},{3003,4870,0},{3003,4888,0},{3003,4892,0},{3017,4895,0}, {3025,4892,0},{3030,4887,0},{3032,4887,0},{3033,4888,0},{3035,4887,0},{3042,4892,0}, {3042,4903,0},{3043,4903,0},{3047,4902,0},{3047,4895,0},{3048,4895,0},{3052,4898,0}, {3052,4903,0},{3050,4907,0},{3052,4910,0},{3050,4913,0},{3050,4917,0},{3047,4917,0}, {3050,4920,0},{3045,4923,0},{3045,4927,0},{3043,4927,0},{3038,4922,0},{3035,4922,0}, {3040,4907,0},{3038,4900,0},{3040,4895,0},{3038,4892,0},{3035,4900,0},{3030,4900,0}, {3028,4905,0},{3025,4908,0},{3025,4913,0},{3022,4917,0},{3023,4918,0},{3027,4922,0}, {3022,4922,0},{3020,4923,0},{3015,4923,0},{3015,4930,0},{3017,4935,0},{3017,4938,0}, {3017,4942,0},{3015,4948,0},{3005,4950,0},{3000,4957,0},{3020,4993,0},{3022,5000,0}, {3020,5005,0},{3015,5010,0},{3012,5013,0},{3010,5012,0},{3005,5015,0},{3000,5013,0}, {2998,5015,0},{2998,5013,0},{2995,5013,0},{2990,5018,0},{2987,5023,0},{2965,5040,0}, {2962,5047,0},{2947,5060,0},{2950,5062,0},{2947,5063,0},{2940,5067,0},{2932,5067,0}, {2928,5068,0},{2925,5068,0},{2925,5065,0},{2920,5063,0},{2913,5063,0},{2912,5068,0}, {2913,5072,0},{2913,5083,0},{2910,5085,0},{2910,5088,0},{2907,5090,0},{2907,5093,0}, {2902,5093,0},{2897,5090,0},{2895,5090,0},{2900,5083,0},{2897,5080,0},{2893,5080,0}, {2883,5088,0},{2880,5100,0},{2873,5105,0},{2850,5108,0},{2838,5115,0},{2823,5128,0}, {2820,5128,0},{2813,5127,0},{2807,5132,0},{2802,5145,0},{2793,5147,0},{2787,5158,0}, {2785,5158,0},{2783,5172,0},{2785,5180,0},{2783,5188,0},{2783,5202,0},{2768,5222,0}, {2765,5238,0},{2765,5243,0},{2762,5250,0},{2755,5257,0},{2747,5260,0},{2745,5267,0}, {2740,5267,0},{2740,5257,0},{2738,5257,0},{2735,5260,0},{2728,5275,0},{2722,5285,0}, {2720,5290,0},{2717,5293,0},{2713,5298,0},{2710,5303,0},{2708,5313,0},{2700,5333,0}, {2700,5338,0},{2697,5343,0},{2695,5347,0},{2688,5347,0},{2685,5348,0},{2680,5357,0}, {2678,5358,0},{2673,5368,0},{2670,5372,0},{2670,5393,0},{2673,5398,0},{2675,5402,0}, {2670,5413,0},{2670,5423,0},{2672,5428,0},{2670,5433,0},{2660,5440,0},{2658,5443,0}, {2658,5455,0},{2657,5458,0},{2652,5460,0},{2650,5463,0},{2650,5468,0},{2650,5480,0}, {2658,5495,0},{2662,5498,0},{2665,5505,0},{2670,5510,0},{2672,5520,0},{2678,5525,0}, {2678,5535,0},{2677,5537,0},{2675,5540,0},{2677,5548,0},{2682,5557,0},{2690,5558,0}, {2690,5555,0},{2698,5565,0},{2700,5570,0},{2698,5575,0},{2702,5580,0},{2702,5595,0}, {2707,5597,0},{2712,5608,0},{2715,5613,0},{2720,5635,0},{2717,5642,0},{2717,5652,0}, {2715,5655,0},{2715,5670,0},{2715,5673,0},{2713,5672,0},{2712,5677,0},{2713,5682,0}, {2708,5685,0},{2707,5688,0},{2703,5683,0},{2703,5687,0},{2700,5687,0},{2702,5690,0}, {2698,5692,0},{2700,5697,0},{2697,5697,0},{2695,5695,0},{2695,5693,0},{2685,5702,0}, {2667,5708,0},{2657,5710,0},{2645,5707,0},{2640,5708,0},{2635,5713,0},{2627,5713,0}, {2617,5722,0},{2612,5717,0},{2607,5717,0},{2600,5720,0},{2598,5723,0},{2592,5727,0}, {2578,5732,0},{2577,5740,0},{2575,5743,0},{2577,5745,0},{2575,5745,0},{2573,5752,0}, {2575,5775,0},{2570,5778,0},{2563,5778,0},{2568,5787,0},{2570,5795,0},{2568,5798,0}, {2563,5800,0},{2557,5805,0},{2553,5815,0},{2555,5823,0},{2557,5823,0},{2557,5827,0}, {2558,5830,0},{2558,5832,0},{2560,5835,0},{2562,5842,0},{2558,5840,0},{2558,5847,0}, {2560,5855,0},{2558,5860,0},{2557,5870,0},{2555,5872,0},{2557,5882,0},{2553,5885,0}, {2552,5892,0},{2540,5900,0},{2540,5905,0},{2540,5913,0},{2548,5945,0},{2547,5950,0}, {2542,5957,0},{2538,5962,0},{2542,5983,0},{2535,5990,0},{2537,5993,0},{2538,6002,0}, {2538,6008,0},{2533,6012,0},{2532,6018,0},{2537,6020,0},{2538,6030,0},{2535,6030,0}, {2533,6030,0},{2532,6040,0},{2527,6047,0},{2530,6045,0},{2533,6045,0},{2533,6040,0}, {2538,6040,0},{2543,6045,0},{2543,6055,0},{2540,6060,0},{2533,6060,0},{2528,6063,0}, {2528,6062,0},{2527,6062,0},{2517,6117,0},{2517,6120,0},{2512,6123,0},{2508,6140,0}, {2508,6145,0},{2508,6142,0},{2510,6143,0},{2512,6150,0},{2517,6152,0},{2520,6148,0}, {2520,6152,0},{2520,6155,0},{2522,6153,0},{2525,6155,0},{2523,6158,0},{2520,6158,0}, {2520,6162,0},{3002,4795,128},{3010,4793,0},{3000,4797,0},{3005,4810,0}, {3003,4817,0},{3000,4825,0},{2995,4835,0},{2993,4845,0},{2993,4855,0},{2995,4857,0}, {2995,4853,0},{2997,4853,0},{2855,4842,128},{2860,4838,0},{2865,4838,0}, {2863,4835,0},{2865,4835,0},{2867,4838,0},{2868,4837,0},{2867,4838,0},{2873,4838,0}, {2875,4837,0},{2877,4832,0},{2883,4828,0},{2888,4828,0},{2892,4822,0},{2903,4815,0}, {2927,4808,0},{2935,4808,0},{2935,4805,0},{2937,4802,0},{2940,4798,0},{2933,4788,0}, {2933,4783,0},{2935,4780,0},{2940,4783,0},{2938,4770,0},{2938,4768,0},{2940,4770,0}, {2942,4773,0},{2953,4785,0},{2957,4792,0},{2963,4797,0},{2963,4802,0},{2962,4803,0}, {2960,4802,0},{2960,4808,0},{2957,4810,0},{2955,4815,0},{2955,4817,0},{2958,4817,0}, {2973,4808,0},{2973,4805,0},{2980,4800,0},{2987,4798,0},{2993,4798,0},{3002,4795,0}, {2475,5083,128},{2472,5078,0},{2475,5075,0},{2477,5073,0},{2487,5073,0}, {2490,5068,0},{2495,5067,0},{2505,5060,0},{2507,5058,0},{2503,5057,0},{2505,5057,0}, {2512,5053,0},{2518,5055,0},{2523,5052,0},{2530,5052,0},{2542,5048,0},{2545,5045,0}, {2545,5042,0},{2548,5038,0},{2552,5038,0},{2548,5037,0},{2545,5037,0},{2563,5022,0}, {2568,5020,0},{2570,5015,0},{2573,5015,0},{2568,5023,0},{2565,5023,0},{2563,5025,0}, {2563,5027,0},{2567,5025,0},{2573,5022,0},{2577,5017,0},{2585,5012,0},{2592,5010,0}, {2593,5013,0},{2598,5010,0},{2600,5007,0},{2602,5007,0},{2602,5005,0},{2603,5003,0}, {2600,5003,0},{2598,5000,0},{2600,5000,0},{2607,4998,0},{2608,5002,0},{2613,4998,0}, {2620,5002,0},{2618,5007,0},{2613,5007,0},{2610,5010,0},{2603,5013,0},{2617,5017,0}, {2615,5018,0},{2617,5020,0},{2620,5022,0},{2630,5022,0},{2637,5022,0},{2642,5018,0}, {2645,5008,0},{2647,5005,0},{2657,5000,0},{2665,5002,0},{2667,4998,0},{2673,4998,0}, {2675,5000,0},{2673,5002,0},{2668,5003,0},{2668,5012,0},{2663,5015,0},{2665,5017,0}, {2672,5008,0},{2685,4995,0},{2685,4987,0},{2698,4967,0},{2705,4962,0},{2710,4957,0}, {2715,4955,0},{2718,4957,0},{2717,4955,0},{2718,4952,0},{2718,4950,0},{2715,4950,0}, {2713,4952,0},{2715,4947,0},{2713,4943,0},{2717,4943,0},{2713,4942,0},{2715,4937,0}, {2715,4940,0},{2720,4942,0},{2722,4938,0},{2720,4937,0},{2717,4935,0},{2720,4933,0}, {2720,4932,0},{2735,4930,0},{2735,4928,0},{2735,4925,0},{2733,4922,0},{2738,4923,0}, {2742,4927,0},{2742,4923,0},{2740,4920,0},{2742,4917,0},{2743,4912,0},{2747,4917,0}, {2743,4918,0},{2745,4922,0},{2745,4927,0},{2747,4928,0},{2745,4928,0},{2745,4930,0}, {2748,4930,0},{2750,4927,0},{2753,4925,0},{2755,4918,0},{2753,4915,0},{2755,4907,0}, {2753,4907,0},{2755,4905,0},{2757,4907,0},{2762,4897,0},{2760,4892,0},{2757,4892,0}, {2757,4890,0},{2758,4888,0},{2763,4890,0},{2760,4887,0},{2762,4883,0},{2762,4885,0}, {2762,4887,0},{2763,4885,0},{2765,4888,0},{2768,4888,0},{2765,4885,0},{2770,4885,0}, {2768,4882,0},{2773,4880,0},{2772,4880,0},{2772,4877,0},{2783,4882,0},{2782,4883,0}, {2775,4880,0},{2782,4885,0},{2780,4885,0},{2773,4883,0},{2773,4885,0},{2777,4888,0}, {2783,4888,0},{2797,4875,0},{2798,4875,0},{2798,4878,0},{2800,4878,0},{2803,4865,0}, {2807,4865,0},{2813,4860,0},{2818,4860,0},{2820,4862,0},{2828,4855,0},{2833,4852,0}, {2837,4852,0},{2840,4853,0},{2838,4847,0},{2840,4847,0},{2840,4850,0},{2842,4852,0}, {2845,4850,0},{2850,4850,0},{2850,4847,0},{2855,4842,0},{2462,5122,128}, {2463,5122,0},{2465,5127,0},{2467,5128,0},{2465,5128,0},{2463,5135,0},{2460,5133,0}, {2457,5133,0},{2460,5137,0},{2463,5138,0},{2467,5143,0},{2485,5150,0},{2492,5157,0}, {2502,5162,0},{2527,5160,0},{2528,5158,0},{2530,5152,0},{2543,5152,0},{2552,5147,0}, {2557,5150,0},{2562,5148,0},{2562,5153,0},{2563,5155,0},{2568,5153,0},{2568,5150,0}, {2570,5155,0},{2568,5155,0},{2570,5158,0},{2573,5158,0},{2573,5153,0},{2573,5155,0}, {2577,5157,0},{2573,5158,0},{2575,5160,0},{2590,5157,0},{2595,5150,0},{2595,5142,0}, {2597,5140,0},{2602,5138,0},{2603,5135,0},{2610,5133,0},{2615,5125,0},{2613,5118,0}, {2608,5113,0},{2605,5105,0},{2597,5100,0},{2597,5098,0},{2590,5098,0},{2585,5095,0}, {2583,5095,0},{2582,5097,0},{2580,5098,0},{2577,5097,0},{2580,5093,0},{2578,5090,0}, {2575,5092,0},{2572,5088,0},{2567,5088,0},{2563,5092,0},{2563,5098,0},{2560,5095,0}, {2560,5092,0},{2553,5090,0},{2553,5087,0},{2557,5087,0},{2563,5087,0},{2562,5080,0}, {2560,5078,0},{2560,5083,0},{2555,5083,0},{2552,5082,0},{2547,5085,0},{2547,5082,0}, {2552,5078,0},{2548,5075,0},{2548,5077,0},{2543,5075,0},{2510,5077,0},{2505,5080,0}, {2498,5080,0},{2492,5085,0},{2483,5085,0},{2480,5087,0},{2475,5083,0},{2450,5660,128}, {2468,5650,0},{2473,5648,0},{2497,5638,0},{2507,5635,0},{2523,5637,0},{2530,5638,0}, {2533,5638,0},{2537,5635,0},{2553,5637,0},{2560,5635,0},{2562,5628,0},{2567,5627,0}, {2575,5628,0},{2575,5630,0},{2573,5630,0},{2575,5632,0},{2580,5637,0},{2585,5637,0}, {2590,5640,0},{2593,5638,0},{2593,5643,0},{2595,5645,0},{2595,5642,0},{2597,5642,0}, {2598,5640,0},{2600,5642,0},{2602,5642,0},{2602,5638,0},{2605,5638,0},{2605,5643,0}, {2608,5643,0},{2608,5647,0},{2610,5643,0},{2608,5642,0},{2610,5638,0},{2610,5637,0}, {2615,5637,0},{2612,5633,0},{2615,5633,0},{2617,5632,0},{2620,5637,0},{2620,5638,0}, {2617,5638,0},{2618,5640,0},{2617,5640,0},{2615,5642,0},{2613,5647,0},{2615,5647,0}, {2617,5647,0},{2618,5643,0},{2622,5643,0},{2622,5645,0},{2620,5647,0},{2622,5648,0}, {2625,5648,0},{2625,5640,0},{2628,5640,0},{2632,5647,0},{2632,5652,0},{2635,5650,0}, {2635,5648,0},{2633,5648,0},{2633,5643,0},{2635,5643,0},{2635,5640,0},{2637,5640,0}, {2635,5638,0},{2637,5637,0},{2638,5637,0},{2632,5635,0},{2632,5632,0},{2627,5637,0}, {2627,5633,0},{2628,5632,0},{2627,5632,0},{2622,5630,0},{2625,5638,0},{2623,5640,0}, {2622,5640,0},{2622,5635,0},{2620,5630,0},{2623,5627,0},{2620,5622,0},{2622,5622,0}, {2627,5622,0},{2627,5620,0},{2622,5617,0},{2610,5608,0},{2598,5605,0},{2592,5602,0}, {2593,5603,0},{2592,5603,0},{2588,5603,0},{2583,5597,0},{2577,5595,0},{2577,5593,0}, {2582,5595,0},{2572,5587,0},{2568,5577,0},{2562,5568,0},{2558,5565,0},{2553,5563,0}, {2552,5555,0},{2553,5553,0},{2558,5557,0},{2558,5555,0},{2548,5548,0},{2547,5550,0}, {2542,5548,0},{2540,5545,0},{2542,5543,0},{2535,5538,0},{2537,5537,0},{2532,5537,0}, {2532,5533,0},{2527,5530,0},{2525,5533,0},{2520,5533,0},{2518,5530,0},{2520,5530,0}, {2522,5532,0},{2527,5528,0},{2520,5523,0},{2502,5507,0},{2483,5477,0},{2480,5477,0}, {2478,5475,0},{2480,5470,0},{2473,5463,0},{2472,5463,0},{2472,5465,0},{2468,5465,0}, {2467,5467,0},{2465,5463,0},{2462,5463,0},{2462,5460,0},{2460,5463,0},{2452,5458,0}, {2452,5455,0},{2450,5457,0},{2450,5455,0},{2452,5452,0},{2457,5448,0},{2457,5447,0}, {2453,5447,0},{2457,5447,0},{2453,5442,0},{2450,5447,0},{2448,5448,0},{2448,5457,0}, {2447,5458,0},{2445,5457,0},{2447,5452,0},{2443,5453,0},{2443,5448,0},{2443,5450,0}, {2440,5448,0},{2438,5448,0},{2428,5442,0},{2425,5438,0},{2427,5433,0},{2422,5427,0}, {2420,5418,0},{2413,5412,0},{2410,5395,0},{2407,5387,0},{2407,5368,0},{2405,5358,0}, {2408,5353,0},{2410,5347,0},{2412,5343,0},{2410,5342,0},{2410,5333,0},{2408,5330,0}, {2410,5325,0},{2413,5322,0},{2417,5315,0},{2413,5315,0},{2412,5315,0},{2413,5312,0}, {2412,5305,0},{2417,5300,0},{2413,5295,0},{2415,5285,0},{2413,5277,0},{2415,5270,0}, {2413,5268,0},{2420,5263,0},{2420,5262,0},{2420,5258,0},{2415,5258,0},{2413,5253,0}, {2408,5245,0},{2405,5243,0},{2403,5237,0},{2400,5233,0},{2400,5228,0},{2397,5220,0}, {2397,5210,0},{2395,5208,0},{2400,5202,0},{2398,5200,0},{2398,5193,0},{2395,5193,0}, {2398,5190,0},{2400,5182,0},{2405,5178,0},{2412,5177,0},{2427,5178,0},{2428,5175,0}, {2427,5173,0},{2422,5172,0},{2427,5167,0},{2423,5167,0},{2422,5163,0},{2427,5162,0}, {2435,5162,0},{2438,5158,0},{2435,5158,0},{2427,5158,0},{2425,5157,0},{2425,5153,0}, {2430,5150,0},{2432,5143,0},{2432,5138,0},{2428,5135,0},{2430,5128,0},{2433,5128,0}, {2435,5130,0},{2442,5132,0},{2448,5140,0},{2453,5142,0},{2457,5150,0},{2460,5148,0}, {2458,5145,0},{2462,5143,0},{2462,5142,0},{2462,5140,0},{2458,5138,0},{2452,5130,0}, {2457,5130,0},{2460,5130,0},{2460,5128,0},{2462,5127,0},{2462,5122,0},{1663,5310,128}, {1667,5313,0},{1673,5337,0},{1675,5348,0},{1673,5358,0},{1677,5362,0},{1678,5367,0}, {1682,5368,0},{1687,5375,0},{1690,5393,0},{1692,5398,0},{1693,5402,0},{1698,5402,0}, {1702,5410,0},{1702,5437,0},{1703,5442,0},{1702,5447,0},{1703,5450,0},{1702,5472,0}, {1697,5472,0},{1695,5477,0},{1697,5482,0},{1695,5482,0},{1697,5485,0},{1698,5485,0}, {1698,5487,0},{1697,5487,0},{1698,5488,0},{1698,5497,0},{1700,5498,0},{1702,5505,0}, {1702,5507,0},{1708,5515,0},{1715,5520,0},{1720,5522,0},{1723,5527,0},{1728,5525,0}, {1737,5530,0},{1740,5530,0},{1745,5528,0},{1747,5523,0},{1755,5523,0},{1762,5527,0}, {1768,5537,0},{1775,5538,0},{1783,5543,0},{1788,5565,0},{1790,5580,0},{1790,5588,0}, {1793,5603,0},{1793,5615,0},{1795,5618,0},{1793,5635,0},{1797,5635,0},{1802,5643,0}, {1808,5647,0},{1810,5652,0},{1813,5657,0},{1820,5655,0},{1833,5662,0},{1840,5662,0}, {1845,5663,0},{1858,5665,0},{1875,5682,0},{1880,5690,0},{1885,5703,0},{1892,5725,0}, {1895,5752,0},{1893,5772,0},{1897,5775,0},{1897,5780,0},{1903,5783,0},{1908,5780,0}, {1915,5782,0},{1918,5778,0},{1928,5775,0},{1937,5777,0},{1942,5777,0},{1953,5770,0}, {1967,5772,0},{1968,5770,0},{1972,5768,0},{1975,5770,0},{1985,5777,0},{1992,5778,0}, {1998,5782,0},{2002,5782,0},{2013,5785,0},{2018,5782,0},{2022,5783,0},{2027,5787,0}, {2032,5797,0},{2035,5798,0},{2038,5795,0},{2040,5797,0},{2043,5800,0},{2047,5807,0}, {2050,5807,0},{2055,5808,0},{2062,5822,0},{2062,5825,0},{2058,5827,0},{2048,5823,0}, {2042,5823,0},{2043,5822,0},{2047,5822,0},{2043,5820,0},{2040,5822,0},{2038,5827,0}, {2038,5830,0},{2037,5827,0},{2038,5835,0},{2035,5842,0},{2035,5845,0},{2040,5848,0}, {2042,5852,0},{2052,5853,0},{2057,5857,0},{2065,5860,0},{2070,5865,0},{2073,5867,0}, {2077,5873,0},{2078,5872,0},{2075,5870,0},{2077,5867,0},{2080,5867,0},{2082,5868,0}, {2085,5873,0},{2088,5873,0},{2093,5880,0},{2100,5880,0},{2103,5883,0},{2128,5905,0}, {2137,5917,0},{2143,5935,0},{2148,5935,0},{2162,5945,0},{2177,5950,0},{2183,5958,0}, {2187,5958,0},{2192,5962,0},{2193,5965,0},{2207,5968,0},{2210,5972,0},{2222,5980,0}, {2243,5985,0},{2253,5980,0},{2252,5978,0},{2253,5975,0},{2248,5977,0},{2250,5972,0}, {2253,5972,0},{2257,5963,0},{2255,5952,0},{2257,5952,0},{2258,5953,0},{2268,5940,0}, {2275,5935,0},{2280,5930,0},{2295,5923,0},{2305,5908,0},{2308,5907,0},{2315,5902,0}, {2320,5900,0},{2325,5895,0},{2332,5893,0},{2340,5882,0},{2342,5880,0},{2350,5878,0}, {2353,5877,0},{2352,5873,0},{2355,5872,0},{2353,5872,0},{2353,5870,0},{2357,5867,0}, {2357,5865,0},{2360,5862,0},{2363,5862,0},{2365,5858,0},{2365,5852,0},{2365,5850,0}, {2365,5848,0},{2362,5845,0},{2362,5835,0},{2365,5827,0},{2368,5820,0},{2372,5810,0}, {2372,5788,0},{2375,5782,0},{2378,5778,0},{2380,5762,0},{2383,5750,0},{2393,5717,0}, {2400,5708,0},{2413,5690,0},{2423,5683,0},{2432,5680,0},{2450,5660,0},{1268,4353,128}, {1273,4357,0},{1275,4360,0},{1268,4382,0},{1265,4387,0},{1265,4390,0},{1262,4392,0}, {1260,4395,0},{1260,4398,0},{1260,4407,0},{1265,4415,0},{1265,4420,0},{1263,4418,0}, {1263,4413,0},{1262,4417,0},{1263,4423,0},{1263,4428,0},{1268,4440,0},{1267,4443,0}, {1268,4443,0},{1278,4453,0},{1282,4460,0},{1280,4470,0},{1277,4473,0},{1275,4473,0}, {1277,4477,0},{1277,4483,0},{1273,4483,0},{1273,4487,0},{1273,4490,0},{1277,4492,0}, {1278,4488,0},{1277,4487,0},{1280,4488,0},{1278,4490,0},{1283,4495,0},{1283,4500,0}, {1285,4502,0},{1280,4503,0},{1280,4498,0},{1278,4498,0},{1275,4505,0},{1287,4507,0}, {1297,4513,0},{1302,4520,0},{1307,4540,0},{1318,4550,0},{1333,4565,0},{1335,4577,0}, {1338,4582,0},{1340,4605,0},{1340,4612,0},{1343,4623,0},{1340,4635,0},{1342,4642,0}, {1340,4647,0},{1342,4652,0},{1343,4663,0},{1343,4668,0},{1348,4685,0},{1353,4693,0}, {1360,4720,0},{1365,4740,0},{1387,4765,0},{1390,4772,0},{1393,4782,0},{1397,4788,0}, {1402,4793,0},{1405,4800,0},{1402,4815,0},{1400,4818,0},{1397,4818,0},{1398,4823,0}, {1400,4832,0},{1400,4835,0},{1402,4835,0},{1400,4843,0},{1402,4845,0},{1398,4847,0}, {1403,4855,0},{1403,4870,0},{1412,4878,0},{1417,4885,0},{1422,4888,0},{1425,4888,0}, {1425,4893,0},{1430,4895,0},{1432,4900,0},{1437,4900,0},{1443,4902,0},{1450,4908,0}, {1453,4913,0},{1452,4918,0},{1453,4918,0},{1463,4937,0},{1468,4952,0},{1473,4958,0}, {1480,4987,0},{1485,4997,0},{1485,5003,0},{1482,5005,0},{1485,5013,0},{1483,5018,0}, {1487,5022,0},{1492,5030,0},{1492,5035,0},{1500,5045,0},{1505,5055,0},{1508,5080,0}, {1512,5090,0},{1518,5123,0},{1523,5135,0},{1523,5138,0},{1525,5138,0},{1527,5147,0}, {1532,5152,0},{1533,5168,0},{1535,5168,0},{1537,5167,0},{1540,5167,0},{1543,5173,0}, {1547,5183,0},{1545,5187,0},{1547,5187,0},{1552,5190,0},{1553,5200,0},{1558,5208,0}, {1562,5222,0},{1565,5225,0},{1575,5222,0},{1583,5223,0},{1587,5218,0},{1593,5218,0}, {1598,5215,0},{1608,5220,0},{1610,5222,0},{1617,5222,0},{1627,5230,0},{1640,5245,0}, {1648,5260,0},{1650,5273,0},{1653,5278,0},{1655,5287,0},{1662,5298,0},{1665,5312,0}, {1640,4278,128},{1610,4285,0},{1588,4283,0},{1583,4275,0},{1575,4275,0}, {1573,4270,0},{1570,4270,0},{1568,4272,0},{1563,4270,0},{1558,4273,0},{1557,4272,0}, {1553,4275,0},{1547,4278,0},{1543,4277,0},{1535,4282,0},{1527,4282,0},{1523,4280,0}, {1523,4278,0},{1520,4278,0},{1522,4278,0},{1525,4278,0},{1530,4272,0},{1530,4270,0}, {1533,4272,0},{1537,4272,0},{1530,4268,0},{1527,4270,0},{1523,4268,0},{1523,4262,0}, {1518,4263,0},{1518,4267,0},{1520,4268,0},{1522,4270,0},{1518,4278,0},{1513,4287,0}, {1510,4288,0},{1507,4287,0},{1500,4288,0},{1495,4293,0},{1487,4295,0},{1482,4295,0}, {1483,4292,0},{1487,4288,0},{1492,4288,0},{1487,4288,0},{1478,4295,0},{1470,4297,0}, {1467,4300,0},{1462,4298,0},{1455,4303,0},{1443,4302,0},{1445,4300,0},{1452,4298,0}, {1452,4295,0},{1448,4298,0},{1437,4302,0},{1432,4305,0},{1418,4310,0},{1413,4308,0}, {1400,4308,0},{1387,4323,0},{1380,4323,0},{1372,4328,0},{1360,4328,0},{1358,4330,0}, {1352,4325,0},{1330,4325,0},{1330,4323,0},{1327,4323,0},{1320,4325,0},{1312,4332,0}, {1297,4340,0},{1293,4340,0},{1283,4348,0},{1278,4348,0},{1268,4347,0},{1270,4355,0}, {2937,3497,128},{2933,3495,0},{2930,3495,0},{2928,3493,0},{2925,3493,0}, {2923,3492,0},{2907,3488,0},{2903,3485,0},{2900,3487,0},{2890,3483,0},{2888,3485,0}, {2882,3483,0},{2868,3478,0},{2853,3480,0},{2827,3468,0},{2827,3467,0},{2822,3467,0}, {2820,3465,0},{2817,3467,0},{2818,3463,0},{2817,3462,0},{2810,3457,0},{2808,3457,0}, {2810,3460,0},{2808,3460,0},{2802,3462,0},{2803,3465,0},{2807,3465,0},{2807,3467,0}, {2810,3465,0},{2813,3468,0},{2813,3470,0},{2812,3472,0},{2810,3477,0},{2812,3482,0}, {2810,3482,0},{2808,3478,0},{2807,3480,0},{2810,3483,0},{2810,3482,0},{2812,3485,0}, {2812,3487,0},{2810,3483,0},{2807,3485,0},{2808,3488,0},{2808,3493,0},{2810,3495,0}, {2812,3500,0},{2810,3503,0},{2812,3502,0},{2812,3505,0},{2807,3510,0},{2807,3515,0}, {2805,3517,0},{2805,3522,0},{2803,3522,0},{2802,3517,0},{2800,3517,0},{2795,3525,0}, {2792,3527,0},{2785,3533,0},{2780,3535,0},{2778,3538,0},{2767,3545,0},{2763,3550,0}, {2755,3552,0},{2745,3557,0},{2735,3565,0},{2732,3573,0},{2728,3573,0},{2722,3578,0}, {2713,3577,0},{2710,3578,0},{2702,3585,0},{2688,3602,0},{2685,3602,0},{2675,3607,0}, {2662,3620,0},{2653,3627,0},{2632,3637,0},{2623,3643,0},{2615,3645,0},{2608,3653,0}, {2608,3662,0},{2607,3665,0},{2602,3667,0},{2593,3665,0},{2588,3660,0},{2582,3667,0}, {2578,3667,0},{2575,3673,0},{2578,3675,0},{2568,3687,0},{2565,3690,0},{2555,3693,0}, {2548,3700,0},{2543,3700,0},{2535,3703,0},{2530,3708,0},{2528,3712,0},{2522,3718,0}, {2515,3720,0},{2512,3718,0},{2502,3723,0},{2495,3720,0},{2487,3723,0},{2483,3718,0}, {2483,3713,0},{2478,3717,0},{2478,3722,0},{2477,3722,0},{2475,3718,0},{2468,3722,0}, {2467,3728,0},{2457,3738,0},{2455,3738,0},{2450,3742,0},{2447,3743,0},{2445,3745,0}, {2440,3748,0},{2440,3745,0},{2437,3745,0},{2435,3748,0},{2432,3748,0},{2427,3753,0}, {2427,3757,0},{2425,3760,0},{2425,3763,0},{2428,3762,0},{2428,3765,0},{2430,3767,0}, {2425,3773,0},{2427,3775,0},{2417,3783,0},{2417,3790,0},{2420,3788,0},{2422,3793,0}, {2418,3792,0},{2418,3795,0},{2417,3792,0},{2408,3803,0},{2408,3808,0},{2407,3808,0}, {2403,3813,0},{2400,3817,0},{2395,3825,0},{2388,3830,0},{2388,3833,0},{2382,3838,0}, {2378,3845,0},{2373,3845,0},{2362,3852,0},{2353,3855,0},{2352,3858,0},{2353,3858,0}, {2355,3855,0},{2357,3860,0},{2353,3860,0},{2350,3863,0},{2342,3865,0},{2342,3867,0}, {2335,3868,0},{2333,3870,0},{2328,3870,0},{2327,3872,0},{2325,3870,0},{2320,3875,0}, {2320,3877,0},{2317,3877,0},{2318,3878,0},{2315,3880,0},{2313,3878,0},{2308,3880,0}, {2303,3878,0},{2300,3878,0},{2298,3882,0},{2298,3887,0},{2297,3890,0},{2292,3892,0}, {2290,3893,0},{2287,3897,0},{2285,3895,0},{2285,3892,0},{2292,3888,0},{2292,3885,0}, {2275,3897,0},{2278,3897,0},{2283,3893,0},{2277,3902,0},{2272,3898,0},{2257,3908,0}, {2242,3907,0},{2237,3908,0},{2238,3910,0},{2242,3912,0},{2240,3915,0},{2233,3910,0}, {2232,3908,0},{2227,3907,0},{2222,3903,0},{2217,3903,0},{2212,3902,0},{2215,3905,0}, {2208,3903,0},{2205,3902,0},{2195,3900,0},{2185,3902,0},{2183,3903,0},{2183,3902,0}, {2190,3900,0},{2192,3895,0},{2188,3897,0},{2185,3897,0},{2180,3903,0},{2172,3907,0}, {2173,3908,0},{2175,3910,0},{2173,3912,0},{2168,3908,0},{2162,3910,0},{2158,3908,0}, {2152,3912,0},{2153,3915,0},{2152,3915,0},{2150,3917,0},{2148,3915,0},{2147,3917,0}, {2142,3917,0},{2137,3915,0},{2132,3908,0},{2122,3915,0},{2118,3917,0},{2115,3915,0}, {2110,3918,0},{2107,3923,0},{2103,3925,0},{2098,3925,0},{2092,3930,0},{2092,3935,0}, {2088,3937,0},{2090,3933,0},{2087,3935,0},{2082,3940,0},{2085,3942,0},{2082,3945,0}, {2080,3945,0},{2080,3942,0},{2077,3943,0},{2073,3947,0},{2075,3947,0},{2075,3950,0}, {2070,3948,0},{2067,3952,0},{2062,3955,0},{2058,3960,0},{2057,3957,0},{2052,3960,0}, {2043,3967,0},{2043,3968,0},{2035,3977,0},{2025,3993,0},{2027,3995,0},{2028,3990,0}, {2030,3990,0},{2027,3998,0},{2028,4005,0},{2027,4010,0},{2022,4013,0},{2020,4017,0}, {2018,4023,0},{2017,4023,0},{2012,4027,0},{2007,4033,0},{2007,4040,0},{2002,4045,0}, {1997,4053,0},{1995,4053,0},{1990,4053,0},{1988,4058,0},{1983,4060,0},{1982,4062,0}, {1977,4063,0},{1977,4065,0},{1978,4065,0},{1980,4067,0},{1978,4073,0},{1977,4075,0}, {1972,4078,0},{1967,4080,0},{1960,4080,0},{1962,4075,0},{1953,4085,0},{1950,4095,0}, {1947,4095,0},{1942,4093,0},{1935,4097,0},{1933,4095,0},{1932,4100,0},{1923,4105,0}, {1922,4103,0},{1918,4105,0},{1912,4108,0},{1907,4117,0},{1895,4113,0},{1887,4117,0}, {1887,4120,0},{1883,4125,0},{1875,4122,0},{1870,4120,0},{1865,4125,0},{1860,4127,0}, {1857,4130,0},{1858,4132,0},{1857,4137,0},{1853,4137,0},{1850,4140,0},{1847,4143,0}, {1840,4143,0},{1830,4148,0},{1828,4147,0},{1827,4152,0},{1822,4150,0},{1822,4153,0}, {1820,4153,0},{1820,4152,0},{1818,4157,0},{1817,4155,0},{1812,4160,0},{1808,4160,0}, {1803,4165,0},{1802,4165,0},{1800,4168,0},{1798,4167,0},{1795,4168,0},{1788,4175,0}, {1787,4178,0},{1783,4178,0},{1783,4182,0},{1780,4185,0},{1782,4188,0},{1778,4190,0}, {1777,4193,0},{1772,4198,0},{1772,4202,0},{1765,4205,0},{1765,4210,0},{1757,4213,0}, {1758,4215,0},{1757,4217,0},{1745,4227,0},{1745,4230,0},{1740,4232,0},{1733,4232,0}, {1730,4233,0},{1723,4233,0},{1713,4235,0},{1702,4237,0},{1703,4238,0},{1710,4237,0}, {1712,4238,0},{1718,4237,0},{1715,4242,0},{1712,4240,0},{1703,4245,0},{1703,4252,0}, {1700,4255,0},{1692,4255,0},{1687,4253,0},{1683,4257,0},{1682,4265,0},{1675,4268,0}, {1673,4272,0},{1672,4270,0},{1667,4272,0},{1667,4273,0},{1657,4272,0},{1652,4273,0}, {1647,4278,0},{1642,4278,0},{1638,4278,0},{2955,3498,128},{2953,3500,0}, {2945,3497,0},{2937,3497,0},{2955,3497,128},{2955,3498,0},{3310,3510,128}, {3297,3507,0},{3292,3507,0},{3292,3508,0},{3285,3507,0},{3282,3502,0},{3283,3498,0}, {3282,3495,0},{3273,3495,0},{3270,3492,0},{3242,3487,0},{3215,3478,0},{3195,3472,0}, {3175,3460,0},{3158,3448,0},{3148,3440,0},{3133,3422,0},{3465,3597,128}, {3460,3598,0},{3453,3598,0},{3452,3597,0},{3447,3590,0},{3447,3580,0},{3442,3582,0}, {3438,3573,0},{3432,3572,0},{3432,3570,0},{3432,3568,0},{3428,3565,0},{3423,3565,0}, {3420,3563,0},{3415,3562,0},{3410,3565,0},{3403,3562,0},{3400,3563,0},{3398,3560,0}, {3390,3557,0},{3390,3547,0},{3387,3548,0},{3380,3548,0},{3375,3545,0},{3372,3545,0}, {3370,3542,0},{3367,3542,0},{3365,3540,0},{3353,3535,0},{3345,3527,0},{3333,3525,0}, {3328,3520,0},{3328,3518,0},{3325,3522,0},{3322,3520,0},{3310,3510,0},{3465,3597,128}, {3492,3587,0},{3498,3588,0},{3502,3590,0},{3510,3588,0},{3517,3593,0},{3520,3597,0}, {3528,3592,0},{3542,3592,0},{3550,3582,0},{3550,3577,0},{3553,3577,0},{3557,3573,0}, {3558,3575,0},{3558,3573,0},{3560,3577,0},{3563,3578,0},{3565,3577,0},{3568,3580,0}, {3573,3585,0},{3585,3580,0},{3585,3585,0},{3593,3592,0},{3600,3598,0},{3610,3595,0}, {3625,3583,0},{3628,3578,0},{3632,3578,0},{3635,3582,0},{3637,3587,0},{3645,3592,0}, {3648,3600,0},{3653,3603,0},{3653,3608,0},{3658,3615,0},{3660,3618,0},{3665,3622,0}, {3670,3620,0},{3677,3620,0},{3678,3620,0},{3687,3612,0},{3692,3607,0},{3693,3602,0}, {3688,3595,0},{3678,3582,0},{3675,3565,0},{3672,3562,0},{3673,3562,0},{3672,3558,0}, {3668,3558,0},{3670,3560,0},{3668,3562,0},{3672,3562,0},{3670,3563,0},{3673,3563,0}, {3672,3567,0},{3672,3572,0},{3670,3565,0},{3665,3560,0},{3665,3562,0},{3670,3570,0}, {3667,3565,0},{3660,3562,0},{3658,3557,0},{3662,3550,0},{3660,3548,0},{3658,3553,0}, {3658,3543,0},{3653,3533,0},{3657,3530,0},{3672,3498,0},{3672,3490,0},{3673,3490,0}, {3677,3488,0},{3680,3483,0},{3682,3473,0},{3680,3467,0},{3678,3463,0},{3677,3457,0}, {3665,3442,0},{3663,3435,0},{3657,3427,0},{3647,3417,0},{3645,3413,0},{3640,3408,0}, {3632,3408,0},{3630,3400,0},{3628,3398,0},{3628,3400,0},{3622,3397,0},{3622,3395,0}, {3623,3395,0},{3628,3393,0},{3632,3388,0},{3627,3382,0},{3625,3383,0},{3623,3380,0}, {3618,3370,0},{3613,3368,0},{3618,3365,0},{3618,3360,0},{3613,3357,0},{3612,3353,0}, {3613,3353,0},{3615,3345,0},{3613,3340,0},{3615,3335,0},{3612,3328,0},{3613,3313,0}, {3607,3308,0},{3608,3305,0},{3610,3293,0},{3607,3287,0},{3602,3280,0},{3603,3267,0}, {3610,3255,0},{3610,3250,0},{3617,3237,0},{3622,3233,0},{3625,3228,0},{3628,3228,0}, {3635,3220,0},{3643,3215,0},{3652,3207,0},{3655,3202,0},{3655,3193,0},{3658,3185,0}, {3660,3178,0},{3663,3173,0},{3665,3167,0},{3672,3153,0},{3677,3138,0},{3678,3138,0}, {3680,3135,0},{3685,3105,0},{3685,3075,0},{3688,3068,0},{3685,3062,0},{3678,3057,0}, {3673,3057,0},{3668,3057,0},{3662,3055,0},{3660,3058,0},{3657,3058,0},{3652,3057,0}, {3645,3050,0},{3643,3050,0},{3643,3048,0},{3640,3047,0},{3633,3052,0},{3630,3047,0}, {3628,3047,0},{3628,3048,0},{3627,3048,0},{3625,3045,0},{3620,3040,0},{3623,3038,0}, {3627,3040,0},{3627,3037,0},{3630,3025,0},{3628,3015,0},{3625,3015,0},{3627,3013,0}, {3625,3013,0},{3623,3010,0},{3627,3005,0},{3625,3003,0},{3625,3005,0},{3620,2998,0}, {3622,2992,0},{3618,2988,0},{3617,2980,0},{3615,2982,0},{3613,2978,0},{3613,2977,0}, {3615,2978,0},{3617,2972,0},{3612,2968,0},{3615,2967,0},{3617,2963,0},{3617,2962,0}, {3617,2963,0},{3618,2963,0},{3618,2958,0},{3620,2962,0},{3620,2950,0},{3623,2945,0}, {3623,2942,0},{3625,2942,0},{3627,2940,0},{3627,2937,0},{3623,2935,0},{3632,2923,0}, {3633,2917,0},{3635,2915,0},{3637,2913,0},{3638,2910,0},{3642,2913,0},{3645,2912,0}, {3648,2910,0},{3648,2913,0},{3653,2913,0},{3657,2908,0},{3655,2905,0},{3653,2905,0}, {3655,2902,0},{3655,2905,0},{3658,2902,0},{3662,2903,0},{3662,2908,0},{3665,2908,0}, {3663,2910,0},{3662,2908,0},{3663,2912,0},{3667,2908,0},{3668,2905,0},{3672,2902,0}, {3670,2898,0},{3675,2893,0},{3670,2888,0},{3670,2890,0},{3668,2887,0},{3663,2885,0}, {3665,2890,0},{3667,2888,0},{3665,2890,0},{3662,2887,0},{3660,2887,0},{3658,2883,0}, {3662,2882,0},{3663,2885,0},{3665,2882,0},{3665,2878,0},{3667,2880,0},{3670,2872,0}, {3668,2867,0},{3672,2863,0},{3670,2862,0},{3673,2860,0},{3677,2862,0},{3682,2862,0}, {3680,2860,0},{3682,2858,0},{3683,2855,0},{3682,2853,0},{3682,2852,0},{3678,2852,0}, {3680,2848,0},{3682,2850,0},{3682,2847,0},{3683,2845,0},{3685,2847,0},{3688,2847,0}, {3687,2843,0},{3687,2840,0},{3685,2838,0},{3683,2838,0},{3683,2842,0},{3678,2840,0}, {3682,2832,0},{3678,2830,0},{3680,2827,0},{3682,2827,0},{3682,2832,0},{3685,2828,0}, {3683,2825,0},{3680,2823,0},{3675,2827,0},{3675,2830,0},{3672,2830,0},{3673,2828,0}, {3672,2825,0},{3668,2822,0},{3668,2817,0},{3660,2812,0},{3658,2808,0},{3658,2807,0}, {3657,2803,0},{3657,2802,0},{3657,2798,0},{3660,2797,0},{3660,2805,0},{3663,2808,0}, {3665,2807,0},{3663,2805,0},{3667,2807,0},{3668,2803,0},{3667,2803,0},{3667,2802,0}, {3668,2797,0},{3670,2803,0},{3672,2805,0},{3672,2808,0},{3670,2808,0},{3672,2812,0}, {3675,2808,0},{3677,2810,0},{3675,2813,0},{3680,2812,0},{3680,2808,0},{3675,2805,0}, {3677,2803,0},{3675,2802,0},{3675,2797,0},{3675,2795,0},{3673,2792,0},{3675,2790,0}, {3673,2788,0},{3675,2788,0},{3673,2787,0},{3675,2782,0},{3675,2772,0},{3672,2768,0}, {3672,2770,0},{3670,2767,0},{3665,2767,0},{3668,2755,0},{3665,2748,0},{3667,2740,0}, {3668,2740,0},{3668,2737,0},{3670,2737,0},{3670,2742,0},{3673,2743,0},{3675,2747,0}, {3677,2762,0},{3680,2763,0},{3678,2768,0},{3678,2773,0},{3682,2782,0},{3682,2792,0}, {3680,2793,0},{3680,2798,0},{3678,2803,0},{3680,2805,0},{3682,2805,0},{3682,2802,0}, {3683,2803,0},{3685,2800,0},{3687,2805,0},{3690,2802,0},{3690,2803,0},{3692,2802,0}, {3692,2807,0},{3693,2805,0},{3693,2810,0},{3693,2815,0},{3690,2817,0},{3692,2817,0}, {3693,2815,0},{3695,2820,0},{3697,2822,0},{3698,2820,0},{3700,2822,0},{3698,2825,0}, {3700,2825,0},{3702,2827,0},{3702,2832,0},{3703,2833,0},{3703,2810,0},{3702,2810,0}, {3703,2808,0},{3703,2792,0},{3698,2777,0},{3700,2768,0},{3698,2763,0},{3700,2757,0}, {3697,2757,0},{3700,2752,0},{3698,2748,0},{3703,2742,0},{3702,2742,0},{3702,2740,0}, {3700,2738,0},{3702,2738,0},{3702,2733,0},{3700,2733,0},{3697,2730,0},{3695,2730,0}, {3697,2730,0},{3695,2727,0},{3697,2725,0},{3702,2725,0},{3703,2723,0},{3708,2723,0}, {3710,2728,0},{3712,2725,0},{3713,2727,0},{3712,2732,0},{3715,2733,0},{3713,2735,0}, {3715,2737,0},{3715,2738,0},{3712,2738,0},{3712,2743,0},{3708,2747,0},{3712,2753,0}, {3712,2757,0},{3713,2757,0},{3713,2755,0},{3715,2755,0},{3718,2753,0},{3720,2757,0}, {3720,2758,0},{3718,2758,0},{3720,2762,0},{3722,2758,0},{3727,2762,0},{3728,2760,0}, {3727,2755,0},{3725,2755,0},{3722,2752,0},{3723,2750,0},{3727,2752,0},{3727,2748,0}, {3725,2747,0},{3727,2747,0},{3732,2750,0},{3733,2747,0},{3730,2745,0},{3730,2740,0}, {3735,2738,0},{3738,2743,0},{3742,2742,0},{3740,2737,0},{3737,2735,0},{3737,2732,0}, {3733,2733,0},{3735,2720,0},{3740,2722,0},{3747,2722,0},{3747,2718,0},{3750,2718,0}, {3755,2718,0},{3755,2722,0},{3758,2722,0},{3763,2713,0},{3765,2700,0},{3768,2702,0}, {3768,2712,0},{3772,2723,0},{3782,2727,0},{3783,2723,0},{3790,2727,0},{3795,2727,0}, {3798,2723,0},{3798,2713,0},{3800,2710,0},{3802,2707,0},{3803,2707,0},{3807,2698,0}, {3807,2692,0},{3803,2687,0},{3815,2682,0},{3817,2677,0},{3820,2678,0},{3822,2677,0}, {3820,2673,0},{3820,2663,0},{3810,2660,0},{3810,2658,0},{3813,2657,0},{3812,2655,0}, {3813,2653,0},{3817,2652,0},{3817,2648,0},{3822,2643,0},{3822,2642,0},{3820,2642,0}, {3822,2638,0},{3823,2640,0},{3827,2638,0},{3825,2638,0},{3822,2635,0},{3823,2632,0}, {3827,2628,0},{3827,2623,0},{3828,2623,0},{3828,2628,0},{3832,2628,0},{3832,2630,0}, {3833,2628,0},{3837,2628,0},{3835,2630,0},{3837,2632,0},{3833,2632,0},{3830,2637,0}, {3832,2638,0},{3833,2638,0},{3833,2640,0},{3835,2645,0},{3837,2648,0},{3842,2645,0}, {3840,2650,0},{3842,2652,0},{3847,2643,0},{3845,2640,0},{3845,2638,0},{3850,2640,0}, {3852,2637,0},{3863,2635,0},{3865,2637,0},{3867,2642,0},{3867,2648,0},{3865,2653,0}, {3860,2657,0},{3857,2657,0},{3852,2663,0},{3847,2663,0},{3847,2660,0},{3845,2660,0}, {3842,2658,0},{3842,2662,0},{3833,2665,0},{3830,2668,0},{3832,2670,0},{3838,2667,0}, {3843,2670,0},{3842,2673,0},{3837,2677,0},{3835,2680,0},{3838,2698,0},{3840,2702,0}, {3840,2708,0},{3845,2717,0},{3847,2705,0},{3845,2698,0},{3843,2693,0},{3845,2692,0}, {3847,2692,0},{3843,2690,0},{3843,2695,0},{3850,2688,0},{3853,2682,0},{3853,2683,0}, {3850,2688,0},{3855,2683,0},{3860,2685,0},{3862,2683,0},{3858,2680,0},{3860,2680,0}, {3862,2675,0},{3863,2677,0},{3865,2672,0},{3867,2675,0},{3868,2672,0},{3873,2673,0}, {3875,2683,0},{3873,2683,0},{3875,2685,0},{3873,2690,0},{3875,2692,0},{3875,2693,0}, {3882,2690,0},{3883,2693,0},{3880,2695,0},{3882,2697,0},{3885,2697,0},{3887,2702,0}, {3885,2703,0},{3887,2707,0},{3890,2703,0},{3892,2707,0},{3893,2705,0},{3892,2700,0}, {3893,2697,0},{3892,2685,0},{3893,2685,0},{3895,2680,0},{3898,2680,0},{3902,2682,0}, {3903,2680,0},{3907,2688,0},{3917,2682,0},{3917,2677,0},{3920,2673,0},{3925,2672,0}, {3927,2662,0},{3930,2663,0},{3932,2665,0},{3928,2663,0},{3928,2667,0},{3930,2667,0}, {3932,2670,0},{3933,2670,0},{3940,2680,0},{3943,2680,0},{3943,2687,0},{3947,2687,0}, {3948,2693,0},{3955,2695,0},{3957,2693,0},{3957,2688,0},{3955,2683,0},{3957,2678,0}, {3955,2667,0},{3952,2645,0},{3948,2637,0},{3948,2627,0},{3947,2625,0},{3947,2623,0}, {3945,2613,0},{3948,2607,0},{3957,2610,0},{3963,2615,0},{3967,2617,0},{3975,2613,0}, {3978,2615,0},{3982,2615,0},{3983,2613,0},{3995,2615,0},{4000,2620,0},{3998,2625,0}, {4000,2628,0},{4002,2633,0},{4010,2637,0},{4012,2640,0},{4020,2642,0},{4022,2652,0}, {4028,2657,0},{4028,2660,0},{4035,2668,0},{4038,2672,0},{4038,2670,0},{4040,2677,0}, {4040,2692,0},{4038,2697,0},{4040,2703,0},{4045,2708,0},{4045,2715,0},{4043,2718,0}, {4045,2723,0},{4047,2728,0},{4042,2733,0},{4040,2730,0},{4038,2730,0},{4032,2743,0}, {4030,2755,0},{4033,2762,0},{4032,2768,0},{4032,2778,0},{4037,2788,0},{4040,2783,0}, {4040,2778,0},{4043,2775,0},{4045,2775,0},{4048,2768,0},{4050,2768,0},{4052,2772,0}, {4053,2773,0},{4052,2775,0},{4053,2775,0},{4053,2778,0},{4050,2778,0},{4052,2780,0}, {4048,2803,0},{4045,2802,0},{4040,2790,0},{4037,2792,0},{4035,2795,0},{4040,2825,0}, {4040,2848,0},{4038,2847,0},{4040,2852,0},{4037,2867,0},{4037,2868,0},{4040,2878,0}, {4038,2887,0},{4037,2893,0},{4037,2907,0},{4042,2908,0},{4043,2915,0},{4047,2908,0}, {4047,2900,0},{4047,2897,0},{4047,2890,0},{4050,2885,0},{4052,2878,0},{4055,2880,0}, {4060,2893,0},{4063,2898,0},{4065,2910,0},{4067,2915,0},{4065,2927,0},{4070,2938,0}, {4068,2943,0},{4073,2952,0},{4068,2955,0},{4073,2980,0},{4072,2990,0},{4072,2993,0}, {4077,2993,0},{4075,2977,0},{4077,2975,0},{4078,2970,0},{4077,2952,0},{4078,2948,0}, {4077,2942,0},{4075,2938,0},{4077,2935,0},{4082,2933,0},{4080,2925,0},{4083,2928,0}, {4085,2928,0},{4088,2923,0},{4090,2915,0},{4095,2910,0},{4098,2902,0},{4103,2902,0}, {4105,2905,0},{4112,2907,0},{4112,2910,0},{4117,2907,0},{4123,2917,0},{4123,2922,0}, {4122,2930,0},{4117,2958,0},{4118,2962,0},{4115,2973,0},{4113,3007,0},{4113,3017,0}, {4117,3022,0},{4118,3023,0},{4122,3028,0},{4120,3033,0},{4118,3037,0},{4115,3050,0}, {4113,3063,0},{4108,3075,0},{4107,3097,0},{4110,3113,0},{4108,3123,0},{4113,3133,0}, {4117,3137,0},{4122,3142,0},{4123,3140,0},{4128,3142,0},{4130,3140,0},{4132,3140,0}, {4132,3147,0},{4135,3150,0},{4138,3162,0},{4143,3175,0},{4145,3177,0},{4150,3188,0}, {4155,3200,0},{4157,3203,0},{4160,3215,0},{4172,3228,0},{4172,3235,0},{4175,3238,0}, {4173,3242,0},{4177,3245,0},{4178,3250,0},{4182,3253,0},{4182,3257,0},{4183,3260,0}, {4183,3268,0},{4187,3278,0},{4187,3287,0},{4188,3295,0},{4193,3305,0},{4198,3325,0}, {4202,3333,0},{4198,3378,0},{4198,3410,0},{4193,3432,0},{4197,3447,0},{4197,3448,0}, {4195,3457,0},{4195,3472,0},{4198,3485,0},{4202,3492,0},{4210,3495,0},{4208,3502,0}, {4203,3505,0},{4202,3508,0},{4202,3515,0},{4203,3518,0},{4202,3522,0},{4202,3512,0}, {4192,3510,0},{4185,3515,0},{4180,3522,0},{4180,3520,0},{4177,3522,0},{4172,3528,0}, {4168,3542,0},{4165,3545,0},{4163,3558,0},{4167,3577,0},{4173,3595,0},{4168,3592,0}, {4163,3592,0},{4173,3597,0},{4168,3603,0},{4170,3603,0},{4168,3605,0},{4160,3613,0}, {4153,3613,0},{4150,3612,0},{4147,3613,0},{4135,3623,0},{4132,3633,0},{4128,3635,0}, {4125,3643,0},{4125,3648,0},{4127,3653,0},{4135,3662,0},{4137,3662,0},{4137,3665,0}, {4135,3687,0},{4128,3702,0},{4125,3703,0},{4120,3703,0},{4117,3705,0},{4115,3715,0}, {4115,3730,0},{4112,3732,0},{4110,3738,0},{4108,3742,0},{4107,3747,0},{4103,3753,0}, {4105,3760,0},{4112,3765,0},{4113,3768,0},{4112,3770,0},{4112,3778,0},{4107,3778,0}, {4105,3780,0},{4103,3782,0},{4102,3787,0},{4098,3790,0},{4098,3802,0},{4093,3820,0}, {4095,3828,0},{4092,3837,0},{4092,3838,0},{4092,3843,0},{4092,3852,0},{4097,3863,0}, {4095,3867,0},{4095,3870,0},{4102,3882,0},{4102,3887,0},{4103,3892,0},{4103,3902,0}, {4103,3905,0},{4107,3915,0},{4108,3917,0},{4105,3928,0},{4112,3942,0},{4110,3950,0}, {4102,3958,0},{4100,3965,0},{4102,3973,0},{4100,3978,0},{4095,3988,0},{4098,4000,0}, {4093,4007,0},{4092,4015,0},{4098,4033,0},{4102,4037,0},{4103,4045,0},{4103,4055,0}, {4107,4062,0},{4110,4068,0},{4115,4075,0},{4120,4083,0},{4120,4095,0},{4123,4105,0}, {4127,4110,0},{4128,4118,0},{4137,4132,0},{4137,4138,0},{4142,4143,0},{4145,4143,0}, {4150,4152,0},{4338,4000,128},{4337,4007,0},{4333,4013,0},{4332,4022,0}, {4323,4027,0},{4322,4027,0},{4317,4032,0},{4313,4033,0},{4317,4037,0},{4313,4045,0}, {4312,4052,0},{4308,4058,0},{4310,4065,0},{4308,4080,0},{4307,4085,0},{4297,4093,0}, {4298,4100,0},{4297,4103,0},{4292,4108,0},{4285,4110,0},{4278,4115,0},{4280,4120,0}, {4278,4125,0},{4275,4142,0},{4270,4147,0},{4255,4153,0},{4238,4155,0},{4235,4160,0}, {4227,4163,0},{4213,4165,0},{4200,4177,0},{4183,4178,0},{4172,4173,0},{4165,4165,0}, {4163,4162,0},{4150,4152,0},{4712,3825,128},{4713,3830,0},{4713,3845,0}, {4717,3847,0},{4723,3857,0},{4725,3878,0},{4728,3882,0},{4725,3878,0},{4722,3855,0}, {4713,3848,0},{4712,3855,0},{4713,3855,0},{4713,3862,0},{4715,3875,0},{4717,3885,0}, {4718,3888,0},{4718,3893,0},{4722,3893,0},{4725,3895,0},{4725,3903,0},{4728,3908,0}, {4725,3927,0},{4720,3928,0},{4718,3925,0},{4715,3925,0},{4713,3927,0},{4708,3927,0}, {4713,3933,0},{4712,3938,0},{4708,3930,0},{4700,3927,0},{4702,3917,0},{4700,3910,0}, {4703,3908,0},{4700,3903,0},{4695,3893,0},{4695,3887,0},{4688,3878,0},{4683,3855,0}, {4687,3848,0},{4683,3842,0},{4677,3840,0},{4675,3837,0},{4672,3838,0},{4673,3838,0}, {4675,3842,0},{4673,3850,0},{4670,3857,0},{4668,3860,0},{4665,3858,0},{4663,3847,0}, {4665,3838,0},{4668,3830,0},{4673,3827,0},{4668,3820,0},{4668,3812,0},{4662,3802,0}, {4662,3785,0},{4667,3773,0},{4648,3782,0},{4640,3790,0},{4635,3800,0},{4637,3802,0}, {4638,3797,0},{4640,3800,0},{4640,3808,0},{4635,3817,0},{4627,3827,0},{4622,3830,0}, {4610,3857,0},{4603,3857,0},{4602,3847,0},{4603,3843,0},{4613,3823,0},{4612,3817,0}, {4605,3817,0},{4603,3813,0},{4588,3808,0},{4585,3805,0},{4582,3805,0},{4583,3800,0}, {4590,3807,0},{4593,3808,0},{4595,3807,0},{4597,3803,0},{4603,3807,0},{4602,3803,0}, {4605,3810,0},{4607,3807,0},{4605,3802,0},{4603,3793,0},{4598,3792,0},{4583,3788,0}, {4577,3783,0},{4573,3780,0},{4567,3767,0},{4562,3770,0},{4563,3762,0},{4565,3763,0}, {4567,3762,0},{4563,3758,0},{4543,3758,0},{4542,3762,0},{4543,3763,0},{4545,3765,0}, {4550,3763,0},{4552,3765,0},{4555,3763,0},{4555,3767,0},{4557,3762,0},{4560,3763,0}, {4558,3765,0},{4557,3770,0},{4548,3768,0},{4545,3775,0},{4545,3770,0},{4542,3773,0}, {4538,3772,0},{4540,3777,0},{4537,3773,0},{4533,3770,0},{4530,3773,0},{4532,3767,0}, {4530,3765,0},{4533,3763,0},{4530,3762,0},{4530,3757,0},{4530,3760,0},{4533,3760,0}, {4535,3755,0},{4533,3750,0},{4537,3752,0},{4530,3738,0},{4533,3737,0},{4533,3717,0}, {4532,3715,0},{4530,3717,0},{4528,3732,0},{4527,3725,0},{4525,3723,0},{4523,3712,0}, {4523,3708,0},{4525,3707,0},{4527,3707,0},{4527,3712,0},{4530,3710,0},{4533,3713,0}, {4543,3683,0},{4542,3675,0},{4533,3667,0},{4533,3670,0},{4538,3677,0},{4537,3682,0}, {4537,3685,0},{4533,3682,0},{4532,3680,0},{4535,3678,0},{4535,3677,0},{4535,3675,0}, {4533,3677,0},{4530,3678,0},{4532,3697,0},{4527,3697,0},{4523,3683,0},{4523,3677,0}, {4522,3675,0},{4520,3670,0},{4520,3658,0},{4518,3658,0},{4513,3662,0},{4510,3670,0}, {4510,3685,0},{4498,3720,0},{4490,3732,0},{4487,3730,0},{4485,3732,0},{4473,3738,0}, {4472,3743,0},{4467,3748,0},{4465,3757,0},{4467,3763,0},{4463,3775,0},{4463,3782,0}, {4467,3782,0},{4473,3778,0},{4470,3787,0},{4467,3788,0},{4463,3793,0},{4460,3793,0}, {4455,3800,0},{4457,3803,0},{4455,3807,0},{4452,3805,0},{4448,3812,0},{4442,3815,0}, {4438,3820,0},{4438,3828,0},{4435,3833,0},{4433,3860,0},{4427,3875,0},{4417,3887,0}, {4415,3897,0},{4403,3910,0},{4392,3930,0},{4365,3962,0},{4362,3968,0},{4357,3972,0}, {4350,3987,0},{4340,3992,0},{4338,4002,0},{4687,3703,128},{4693,3723,0}, {4690,3732,0},{4687,3732,0},{4687,3733,0},{4702,3747,0},{4708,3757,0},{4707,3773,0}, {4710,3787,0},{4708,3793,0},{4710,3797,0},{4708,3803,0},{4710,3807,0},{4708,3808,0}, {4707,3813,0},{4702,3812,0},{4710,3822,0},{4712,3827,0},{4522,2967,128}, {4522,2970,0},{4522,2972,0},{4523,2973,0},{4525,2973,0},{4532,2977,0},{4540,2975,0}, {4542,2973,0},{4542,2975,0},{4547,2973,0},{4543,2972,0},{4547,2970,0},{4545,2968,0}, {4547,2967,0},{4543,2965,0},{4547,2960,0},{4557,2970,0},{4553,2967,0},{4555,2960,0}, {4557,2960,0},{4568,2960,0},{4572,2963,0},{4573,2962,0},{4578,2965,0},{4582,2963,0}, {4580,2968,0},{4578,2970,0},{4570,2968,0},{4565,2973,0},{4562,2973,0},{4563,2978,0}, {4565,2978,0},{4565,2982,0},{4567,2987,0},{4572,2980,0},{4573,2980,0},{4577,2988,0}, {4572,2993,0},{4580,2992,0},{4582,2993,0},{4577,2995,0},{4580,2997,0},{4585,2997,0}, {4583,3003,0},{4580,3007,0},{4582,3008,0},{4582,3010,0},{4585,3010,0},{4590,3012,0}, {4587,3013,0},{4582,3013,0},{4587,3025,0},{4598,3033,0},{4608,3050,0},{4613,3052,0}, {4625,3067,0},{4632,3068,0},{4635,3065,0},{4633,3072,0},{4635,3072,0},{4638,3077,0}, {4645,3080,0},{4650,3075,0},{4655,3078,0},{4655,3085,0},{4662,3107,0},{4663,3118,0}, {4660,3133,0},{4662,3142,0},{4672,3150,0},{4675,3145,0},{4680,3145,0},{4675,3147,0}, {4673,3152,0},{4677,3153,0},{4678,3158,0},{4682,3160,0},{4682,3162,0},{4677,3157,0}, {4667,3152,0},{4665,3148,0},{4663,3148,0},{4660,3157,0},{4663,3158,0},{4665,3163,0}, {4662,3182,0},{4663,3187,0},{4665,3190,0},{4673,3192,0},{4680,3187,0},{4683,3188,0}, {4685,3195,0},{4692,3197,0},{4693,3190,0},{4700,3193,0},{4698,3188,0},{4700,3185,0}, {4703,3183,0},{4708,3187,0},{4712,3182,0},{4717,3182,0},{4718,3180,0},{4722,3173,0}, {4725,3173,0},{4725,3175,0},{4722,3175,0},{4718,3183,0},{4713,3185,0},{4710,3190,0}, {4702,3187,0},{4700,3198,0},{4695,3193,0},{4693,3195,0},{4693,3200,0},{4692,3202,0}, {4685,3198,0},{4682,3193,0},{4677,3193,0},{4663,3202,0},{4662,3212,0},{4657,3213,0}, {4660,3223,0},{4655,3232,0},{4657,3240,0},{4663,3265,0},{4660,3260,0},{4658,3248,0}, {4653,3242,0},{4650,3240,0},{4648,3242,0},{4647,3235,0},{4652,3210,0},{4652,3187,0}, {4655,3177,0},{4655,3158,0},{4658,3152,0},{4655,3153,0},{4647,3167,0},{4643,3168,0}, {4648,3170,0},{4650,3172,0},{4648,3178,0},{4645,3193,0},{4645,3200,0},{4642,3205,0}, {4638,3207,0},{4638,3202,0},{4635,3198,0},{4635,3183,0},{4632,3177,0},{4628,3180,0}, {4628,3190,0},{4632,3188,0},{4630,3195,0},{4627,3197,0},{4625,3205,0},{4620,3213,0}, {4618,3223,0},{4620,3227,0},{4617,3225,0},{4613,3227,0},{4607,3252,0},{4613,3277,0}, {4612,3290,0},{4612,3302,0},{4613,3303,0},{4617,3303,0},{4613,3312,0},{4617,3320,0}, {4622,3323,0},{4615,3323,0},{4613,3322,0},{4613,3325,0},{4612,3332,0},{4610,3332,0}, {4608,3330,0},{4610,3333,0},{4608,3338,0},{4605,3343,0},{4605,3352,0},{4607,3350,0}, {4608,3355,0},{4610,3352,0},{4612,3353,0},{4615,3360,0},{4608,3365,0},{4603,3363,0}, {4602,3365,0},{4600,3363,0},{4597,3365,0},{4593,3362,0},{4595,3367,0},{4593,3377,0}, {4592,3377,0},{4590,3368,0},{4585,3368,0},{4588,3362,0},{4587,3357,0},{4583,3355,0}, {4585,3348,0},{4575,3325,0},{4575,3322,0},{4578,3317,0},{4577,3317,0},{4573,3318,0}, {4565,3290,0},{4560,3282,0},{4557,3283,0},{4555,3275,0},{4553,3270,0},{4552,3263,0}, {4547,3253,0},{4540,3248,0},{4533,3250,0},{4532,3258,0},{4532,3267,0},{4535,3273,0}, {4535,3288,0},{4535,3293,0},{4527,3307,0},{4520,3317,0},{4518,3322,0},{4515,3325,0}, {4518,3338,0},{4515,3345,0},{4510,3355,0},{4492,3362,0},{4485,3360,0},{4483,3355,0}, {4478,3352,0},{4470,3355,0},{4463,3352,0},{4462,3357,0},{4460,3343,0},{4458,3340,0}, {4458,3337,0},{4452,3347,0},{4448,3353,0},{4448,3358,0},{4443,3363,0},{4438,3372,0}, {4438,3393,0},{4443,3412,0},{4448,3418,0},{4450,3423,0},{4455,3427,0},{4455,3433,0}, {4463,3438,0},{4472,3445,0},{4475,3453,0},{4477,3465,0},{4482,3473,0},{4482,3483,0}, {4482,3487,0},{4482,3490,0},{4483,3492,0},{4483,3497,0},{4483,3500,0},{4478,3505,0}, {4478,3508,0},{4488,3515,0},{4492,3523,0},{4495,3525,0},{4495,3537,0},{4498,3537,0}, {4500,3543,0},{4502,3540,0},{4505,3540,0},{4512,3552,0},{4512,3563,0},{4508,3572,0}, {4505,3578,0},{4500,3583,0},{4498,3585,0},{4500,3593,0},{4500,3598,0},{4503,3605,0}, {4500,3622,0},{4503,3627,0},{4503,3637,0},{4508,3645,0},{4515,3640,0},{4528,3643,0}, {4528,3650,0},{4533,3648,0},{4533,3650,0},{4533,3660,0},{4535,3663,0},{4538,3663,0}, {4542,3660,0},{4540,3653,0},{4542,3652,0},{4543,3648,0},{4543,3640,0},{4545,3635,0}, {4543,3630,0},{4547,3630,0},{4547,3613,0},{4542,3607,0},{4537,3603,0},{4535,3600,0}, {4537,3595,0},{4540,3587,0},{4543,3585,0},{4545,3587,0},{4547,3585,0},{4547,3582,0}, {4542,3580,0},{4533,3572,0},{4528,3550,0},{4535,3537,0},{4542,3528,0},{4565,3507,0}, {4578,3495,0},{4593,3487,0},{4603,3483,0},{4618,3482,0},{4622,3488,0},{4625,3490,0}, {4623,3493,0},{4625,3505,0},{4630,3512,0},{4640,3522,0},{4647,3517,0},{4650,3518,0}, {4645,3523,0},{4643,3528,0},{4640,3527,0},{4635,3527,0},{4633,3530,0},{4635,3535,0}, {4618,3520,0},{4613,3505,0},{4612,3505,0},{4608,3498,0},{4607,3498,0},{4613,3518,0}, {4635,3537,0},{4645,3548,0},{4648,3563,0},{4658,3573,0},{4662,3582,0},{4665,3590,0}, {4667,3607,0},{4665,3612,0},{4667,3620,0},{4663,3623,0},{4660,3623,0},{4662,3627,0}, {4660,3627,0},{4662,3628,0},{4672,3638,0},{4675,3652,0},{4675,3658,0},{4677,3662,0}, {4677,3673,0},{4673,3680,0},{4668,3680,0},{4663,3677,0},{4665,3675,0},{4663,3677,0}, {4677,3687,0},{4680,3687,0},{4688,3705,0},{4522,2967,128},{4522,2962,0}, {4517,2965,0},{4517,2970,0},{4512,2967,0},{4500,2965,0},{4490,2963,0},{4488,2960,0}, {4485,2962,0},{4482,2957,0},{4478,2917,0},{4473,2907,0},{4468,2900,0},{4475,2898,0}, {4475,2903,0},{4478,2912,0},{4480,2915,0},{4487,2910,0},{4483,2910,0},{4482,2907,0}, {4487,2905,0},{4492,2903,0},{4497,2912,0},{4500,2903,0},{4500,2898,0},{4495,2887,0}, {4492,2887,0},{4490,2888,0},{4488,2887,0},{4482,2895,0},{4478,2892,0},{4477,2895,0}, {4475,2887,0},{4472,2880,0},{4468,2878,0},{4468,2882,0},{4467,2878,0},{4465,2878,0}, {4465,2885,0},{4468,2892,0},{4472,2890,0},{4468,2900,0},{4463,2895,0},{4468,2898,0}, {4468,2897,0},{4467,2895,0},{4467,2892,0},{4460,2878,0},{4463,2880,0},{4463,2877,0}, {4460,2877,0},{4458,2878,0},{4457,2873,0},{4455,2877,0},{4447,2875,0},{4452,2880,0}, {4457,2885,0},{4458,2890,0},{4462,2893,0},{4448,2883,0},{4442,2875,0},{4433,2868,0}, {4435,2868,0},{4433,2865,0},{4432,2863,0},{4423,2863,0},{4417,2867,0},{4415,2863,0}, {4398,2867,0},{4382,2858,0},{4375,2858,0},{4360,2857,0},{4353,2860,0},{4345,2855,0}, {4340,2848,0},{4337,2847,0},{4338,2845,0},{4342,2833,0},{4340,2825,0},{4340,2815,0}, {4337,2808,0},{4323,2802,0},{4320,2790,0},{4317,2795,0},{4307,2792,0},{4303,2788,0}, {4295,2790,0},{4285,2790,0},{4285,2788,0},{4278,2790,0},{4270,2790,0},{4272,2777,0}, {4270,2772,0},{4267,2772,0},{4267,2773,0},{4262,2763,0},{4255,2765,0},{4257,2762,0}, {4255,2752,0},{4248,2748,0},{4248,2745,0},{4243,2747,0},{4247,2748,0},{4243,2750,0}, {4245,2753,0},{4245,2760,0},{4245,2762,0},{4242,2765,0},{4243,2768,0},{4242,2770,0}, {4242,2772,0},{4240,2770,0},{4238,2772,0},{4237,2770,0},{4235,2772,0},{4233,2773,0}, {4233,2778,0},{4230,2778,0},{4228,2775,0},{4227,2777,0},{4225,2775,0},{4225,2778,0}, {4212,2790,0},{4207,2798,0},{4200,2802,0},{4198,2802,0},{4188,2805,0},{4188,2798,0}, {4182,2797,0},{4175,2803,0},{4173,2803,0},{4167,2808,0},{4165,2808,0},{4158,2813,0}, {4157,2817,0},{4153,2820,0},{4142,2847,0},{4135,2863,0},{4135,2868,0},{4128,2883,0}, {4125,2900,0},{4125,2905,0},{4123,2910,0},{4120,2910,0},{4115,2903,0},{4112,2907,0}, {4108,2905,0},{4105,2903,0},{4103,2898,0},{4100,2898,0},{4100,2893,0},{4095,2882,0}, {4098,2875,0},{4097,2860,0},{4100,2860,0},{4102,2858,0},{4105,2858,0},{4107,2857,0}, {4108,2853,0},{4107,2853,0},{4105,2857,0},{4102,2857,0},{4098,2855,0},{4100,2850,0}, {4105,2842,0},{4108,2823,0},{4108,2815,0},{4103,2802,0},{4097,2795,0},{4097,2787,0}, {4100,2782,0},{4102,2773,0},{4098,2750,0},{4092,2747,0},{4085,2745,0},{4077,2733,0}, {4070,2730,0},{4063,2718,0},{4060,2705,0},{4055,2698,0},{4055,2690,0},{4045,2668,0}, {4042,2668,0},{4038,2662,0},{4037,2662,0},{4033,2658,0},{4028,2648,0},{4027,2647,0}, {4022,2642,0},{4020,2635,0},{4015,2637,0},{4005,2622,0},{4005,2618,0},{4005,2617,0}, {4007,2617,0},{4018,2625,0},{4025,2627,0},{4028,2622,0},{4032,2623,0},{4032,2622,0}, {4037,2632,0},{4043,2643,0},{4050,2660,0},{4052,2668,0},{4055,2672,0},{4055,2678,0}, {4060,2683,0},{4065,2680,0},{4067,2677,0},{4063,2668,0},{4063,2658,0},{4060,2652,0}, {4062,2645,0},{4060,2632,0},{4060,2612,0},{4062,2607,0},{4072,2605,0},{4073,2603,0}, {4073,2605,0},{4078,2603,0},{4080,2602,0},{4082,2607,0},{4083,2605,0},{4082,2602,0}, {4083,2600,0},{4082,2600,0},{4085,2592,0},{4085,2572,0},{4087,2563,0},{4087,2555,0}, {4092,2537,0},{4093,2535,0},{4093,2530,0},{4093,2527,0},{4095,2513,0},{4098,2513,0}, {4098,2517,0},{4102,2513,0},{4100,2503,0},{4098,2503,0},{4097,2500,0},{4093,2498,0}, {4092,2488,0},{4085,2480,0},{4085,2470,0},{4087,2467,0},{4085,2463,0},{4095,2457,0}, {4093,2440,0},{4088,2432,0},{4085,2433,0},{4083,2430,0},{4083,2433,0},{4072,2410,0}, {4073,2398,0},{4078,2385,0},{4075,2373,0},{4072,2370,0},{4067,2368,0},{4063,2377,0}, {4058,2380,0},{4053,2392,0},{4052,2390,0},{4052,2383,0},{4050,2382,0},{4047,2382,0}, {4040,2387,0},{4038,2397,0},{4038,2400,0},{4040,2400,0},{4045,2400,0},{4040,2403,0}, {4037,2407,0},{4035,2418,0},{4032,2418,0},{4032,2423,0},{4025,2428,0},{4015,2440,0}, {4013,2438,0},{4012,2430,0},{4015,2428,0},{4020,2422,0},{4022,2422,0},{4028,2417,0}, {4030,2405,0},{4037,2393,0},{4037,2385,0},{4033,2378,0},{4035,2373,0},{4032,2370,0}, {4028,2370,0},{4020,2377,0},{4017,2390,0},{4012,2398,0},{4008,2398,0},{4007,2400,0}, {4003,2398,0},{4003,2402,0},{4002,2402,0},{3998,2398,0},{3997,2400,0},{3997,2397,0}, {3995,2398,0},{3995,2393,0},{3995,2392,0},{3997,2393,0},{3997,2390,0},{4002,2385,0}, {4002,2382,0},{4012,2377,0},{4023,2365,0},{4025,2353,0},{4028,2340,0},{4023,2333,0}, {4020,2333,0},{4015,2337,0},{4013,2340,0},{4003,2350,0},{3998,2367,0},{3993,2370,0}, {3993,2375,0},{3992,2372,0},{3992,2360,0},{3997,2345,0},{3997,2337,0},{4000,2338,0}, {4007,2333,0},{4008,2332,0},{4018,2332,0},{4023,2332,0},{4033,2302,0},{4035,2302,0}, {4038,2295,0},{4038,2288,0},{4040,2290,0},{4050,2282,0},{4052,2292,0},{4053,2298,0}, {4057,2298,0},{4058,2293,0},{4063,2293,0},{4065,2290,0},{4063,2285,0},{4060,2285,0}, {4057,2282,0},{4057,2275,0},{4052,2275,0},{4052,2272,0},{4050,2272,0},{4053,2268,0}, {4052,2265,0},{4050,2267,0},{4047,2265,0},{4048,2262,0},{4047,2258,0},{4040,2262,0}, {4037,2267,0},{4015,2255,0},{4010,2257,0},{4005,2257,0},{4002,2260,0},{3995,2272,0}, {3987,2273,0},{3980,2285,0},{3958,2293,0},{3953,2302,0},{3950,2308,0},{3947,2312,0}, {3932,2327,0},{3918,2335,0},{3915,2332,0},{3913,2323,0},{3913,2322,0},{3912,2323,0}, {3910,2320,0},{3908,2312,0},{3910,2305,0},{3915,2308,0},{3913,2312,0},{3910,2310,0}, {3913,2317,0},{3917,2318,0},{3915,2322,0},{3918,2322,0},{3922,2318,0},{3925,2318,0}, {3930,2312,0},{3932,2302,0},{3935,2300,0},{3937,2295,0},{3932,2293,0},{3930,2293,0}, {3928,2285,0},{3927,2282,0},{3918,2285,0},{3915,2285,0},{3917,2288,0},{3918,2287,0}, {3918,2288,0},{3917,2292,0},{3912,2292,0},{3910,2297,0},{3905,2300,0},{3903,2297,0}, {3900,2297,0},{3903,2303,0},{3903,2307,0},{3900,2302,0},{3895,2300,0},{3895,2293,0}, {3893,2293,0},{3892,2290,0},{3893,2285,0},{3888,2283,0},{3887,2275,0},{3888,2272,0}, {3888,2267,0},{3890,2265,0},{3892,2262,0},{3888,2258,0},{3888,2253,0},{3885,2252,0}, {3885,2257,0},{3883,2255,0},{3882,2260,0},{3885,2270,0},{3878,2275,0},{3878,2282,0}, {3875,2287,0},{3877,2290,0},{3875,2298,0},{3875,2303,0},{3872,2307,0},{3863,2308,0}, {3863,2312,0},{3865,2318,0},{3868,2317,0},{3868,2320,0},{3865,2325,0},{3865,2332,0}, {3860,2333,0},{3858,2330,0},{3855,2328,0},{3853,2338,0},{3852,2333,0},{3850,2333,0}, {3850,2337,0},{3850,2347,0},{3848,2353,0},{3850,2355,0},{3850,2358,0},{3847,2360,0}, {3845,2357,0},{3845,2360,0},{3842,2360,0},{3842,2363,0},{3835,2368,0},{3833,2370,0}, {3833,2377,0},{3832,2380,0},{3830,2393,0},{3820,2407,0},{3813,2407,0},{3815,2405,0}, {3813,2402,0},{3810,2398,0},{3800,2403,0},{3797,2402,0},{3793,2402,0},{3790,2405,0}, {3788,2402,0},{3787,2407,0},{3782,2405,0},{3780,2408,0},{3778,2408,0},{3775,2408,0}, {3773,2407,0},{3768,2407,0},{3765,2403,0},{3767,2395,0},{3772,2395,0},{3773,2392,0}, {3777,2390,0},{3782,2383,0},{3782,2382,0},{3780,2380,0},{3782,2378,0},{3780,2378,0}, {3782,2377,0},{3783,2377,0},{3785,2375,0},{3793,2368,0},{3793,2363,0},{3795,2365,0}, {3795,2362,0},{3797,2362,0},{3797,2357,0},{3798,2355,0},{3802,2360,0},{3805,2357,0}, {3802,2347,0},{3798,2340,0},{3798,2343,0},{3797,2342,0},{3797,2322,0},{3792,2313,0}, {3792,2302,0},{3790,2302,0},{3788,2298,0},{3785,2302,0},{3785,2312,0},{3780,2318,0}, {3777,2318,0},{3777,2312,0},{3773,2312,0},{3772,2317,0},{3768,2315,0},{3765,2317,0}, {3762,2317,0},{3753,2333,0},{3755,2337,0},{3762,2332,0},{3763,2338,0},{3762,2342,0}, {3757,2338,0},{3755,2337,0},{3753,2342,0},{3752,2340,0},{3750,2345,0},{3747,2352,0}, {3743,2352,0},{3742,2342,0},{3742,2335,0},{3740,2330,0},{3740,2327,0},{3738,2325,0}, {3738,2327,0},{3738,2323,0},{3737,2323,0},{3737,2325,0},{3735,2325,0},{3733,2327,0}, {3733,2318,0},{3730,2320,0},{3728,2318,0},{3730,2315,0},{3733,2315,0},{3732,2312,0}, {3733,2313,0},{3735,2312,0},{3737,2307,0},{3740,2307,0},{3740,2312,0},{3742,2312,0}, {3742,2313,0},{3745,2313,0},{3745,2305,0},{3747,2307,0},{3748,2305,0},{3745,2300,0}, {3752,2298,0},{3752,2293,0},{3753,2293,0},{3753,2290,0},{3752,2292,0},{3752,2285,0}, {3753,2282,0},{3758,2278,0},{3757,2272,0},{3752,2273,0},{3748,2273,0},{3742,2277,0}, {3740,2275,0},{3733,2283,0},{3725,2287,0},{3720,2292,0},{3712,2290,0},{3712,2295,0}, {3708,2297,0},{3708,2298,0},{3707,2298,0},{3708,2297,0},{3702,2300,0},{3698,2302,0}, {3698,2300,0},{3695,2302,0},{3687,2305,0},{3685,2305,0},{3682,2308,0},{3680,2310,0}, {3678,2308,0},{3677,2312,0},{3675,2308,0},{3673,2308,0},{3673,2307,0},{3673,2303,0}, {3668,2303,0},{3668,2307,0},{3667,2303,0},{3663,2303,0},{3658,2308,0},{3657,2313,0}, {3653,2315,0},{3650,2313,0},{3647,2320,0},{3643,2320,0},{3643,2308,0},{3652,2305,0}, {3652,2297,0},{3658,2295,0},{3663,2288,0},{3665,2288,0},{3667,2287,0},{3668,2283,0}, {3665,2282,0},{3667,2282,0},{3672,2282,0},{3680,2278,0},{3680,2273,0},{3680,2263,0}, {3678,2260,0},{3677,2257,0},{3673,2258,0},{3672,2253,0},{3668,2253,0},{3668,2255,0}, {3665,2255,0},{3667,2252,0},{3665,2252,0},{3662,2253,0},{3660,2252,0},{3662,2248,0}, {3660,2248,0},{3653,2248,0},{3645,2252,0},{3643,2248,0},{3640,2250,0},{3638,2248,0}, {3645,2247,0},{3648,2240,0},{3648,2238,0},{3652,2235,0},{3655,2237,0},{3653,2238,0}, {3658,2238,0},{3660,2238,0},{3660,2237,0},{3663,2237,0},{3665,2238,0},{3667,2237,0}, {3670,2238,0},{3670,2235,0},{3672,2233,0},{3682,2230,0},{3688,2223,0},{3690,2220,0}, {3688,2217,0},{3692,2213,0},{3693,2215,0},{3700,2217,0},{3702,2215,0},{3702,2203,0}, {3698,2193,0},{3687,2192,0},{3682,2193,0},{3680,2197,0},{3672,2188,0},{3680,2182,0}, {3678,2177,0},{3682,2170,0},{3688,2168,0},{3695,2172,0},{3695,2167,0},{3697,2168,0}, {3695,2165,0},{3700,2165,0},{3707,2158,0},{3715,2157,0},{3720,2158,0},{3727,2167,0}, {3730,2170,0},{3745,2165,0},{3753,2157,0},{3762,2145,0},{3765,2140,0},{3767,2133,0}, {3765,2132,0},{3763,2132,0},{3767,2130,0},{3772,2132,0},{3778,2130,0},{3782,2122,0}, {3783,2112,0},{3785,2110,0},{3793,2113,0},{3793,2117,0},{3793,2120,0},{3800,2128,0}, {3800,2130,0},{3802,2132,0},{3802,2128,0},{3812,2137,0},{3822,2137,0},{3818,2140,0}, {3822,2140,0},{3820,2142,0},{3820,2147,0},{3817,2153,0},{3815,2160,0},{3817,2167,0}, {3822,2172,0},{3827,2173,0},{3830,2177,0},{3833,2185,0},{3832,2202,0},{3827,2205,0}, {3825,2213,0},{3818,2222,128},{3817,2233,0},{3813,2242,0},{3813,2250,0}, {3808,2265,0},{3805,2272,0},{3797,2280,0},{3793,2287,0},{3795,2295,0},{3798,2298,0}, {3803,2288,0},{3803,2285,0},{3808,2295,0},{3805,2305,0},{3807,2317,0},{3810,2322,0}, {3815,2318,0},{3815,2323,0},{3817,2318,0},{3817,2313,0},{3818,2315,0},{3822,2312,0}, {3817,2307,0},{3818,2303,0},{3820,2305,0},{3822,2303,0},{3822,2293,0},{3820,2292,0}, {3820,2297,0},{3818,2297,0},{3818,2295,0},{3818,2292,0},{3823,2290,0},{3823,2288,0}, {3823,2278,0},{3825,2277,0},{3828,2280,0},{3832,2270,0},{3837,2268,0},{3838,2265,0}, {3837,2263,0},{3837,2265,0},{3835,2265,0},{3835,2262,0},{3833,2260,0},{3833,2258,0}, {3832,2260,0},{3828,2258,0},{3828,2255,0},{3833,2252,0},{3835,2253,0},{3842,2247,0}, {3843,2243,0},{3845,2240,0},{3842,2242,0},{3838,2238,0},{3837,2240,0},{3833,2238,0}, {3835,2230,0},{3833,2230,0},{3837,2225,0},{3833,2220,0},{3832,2218,0},{3833,2217,0}, {3837,2213,0},{3840,2205,0},{3842,2195,0},{3837,2188,0},{3840,2183,0},{3837,2178,0}, {3833,2177,0},{3835,2172,0},{3835,2165,0},{3833,2157,0},{3830,2152,0},{3833,2143,0}, {3832,2147,0},{3830,2148,0},{3833,2148,0},{3835,2148,0},{3837,2147,0},{3837,2143,0}, {3838,2142,0},{3840,2137,0},{3847,2137,0},{3850,2133,0},{3848,2130,0},{3845,2135,0}, {3838,2133,0},{3838,2130,0},{3837,2130,0},{3837,2127,0},{3833,2127,0},{3832,2123,0}, {3833,2120,0},{3832,2118,0},{3832,2120,0},{3830,2117,0},{3830,2118,0},{3830,2115,0}, {3833,2113,0},{3833,2108,0},{3835,2112,0},{3837,2110,0},{3838,2110,0},{3837,2110,0}, {3840,2113,0},{3842,2112,0},{3840,2110,0},{3842,2108,0},{3843,2108,0},{3842,2110,0}, {3843,2112,0},{3843,2110,0},{3848,2110,0},{3848,2108,0},{3848,2110,0},{3853,2110,0}, {3850,2103,0},{3853,2102,0},{3860,2103,0},{3865,2098,0},{3867,2098,0},{3867,2092,0}, {3880,2087,0},{3880,2085,0},{3877,2082,0},{3877,2080,0},{3875,2078,0},{3877,2077,0}, {3878,2077,0},{3880,2073,0},{3885,2073,0},{3887,2080,0},{3892,2075,0},{3895,2077,0}, {3893,2078,0},{3892,2082,0},{3893,2085,0},{3897,2087,0},{3893,2088,0},{3892,2087,0}, {3892,2090,0},{3895,2092,0},{3893,2095,0},{3895,2098,0},{3893,2100,0},{3893,2103,0}, {3890,2102,0},{3887,2108,0},{3892,2110,0},{3890,2115,0},{3887,2117,0},{3887,2118,0}, {3890,2117,0},{3892,2113,0},{3897,2113,0},{3898,2117,0},{3905,2108,0},{3903,2108,0}, {3902,2103,0},{3900,2107,0},{3900,2098,0},{3902,2100,0},{3903,2098,0},{3903,2095,0}, {3905,2093,0},{3903,2093,0},{3907,2095,0},{3907,2090,0},{3903,2087,0},{3903,2090,0}, {3905,2083,0},{3903,2083,0},{3903,2085,0},{3907,2087,0},{3907,2082,0},{3908,2085,0}, {3912,2082,0},{3908,2077,0},{3908,2080,0},{3902,2075,0},{3902,2073,0},{3897,2082,0}, {3895,2083,0},{3898,2077,0},{3895,2075,0},{3895,2073,0},{3898,2070,0},{3902,2072,0}, {3907,2068,0},{3912,2060,0},{3918,2055,0},{3922,2048,0},{3928,2048,0},{3928,2038,0}, {3928,2035,0},{3932,2030,0},{3938,2028,0},{3940,2023,0},{3943,2022,0},{3945,2027,0}, {3948,2022,0},{3950,2025,0},{3952,2025,0},{3952,2023,0},{3950,2022,0},{3952,2018,0}, {3952,2017,0},{3952,2020,0},{3953,2018,0},{3953,2013,0},{3957,2015,0},{3957,2017,0}, {3962,2018,0},{3965,2012,0},{3965,2010,0},{3968,2007,0},{3968,2002,0},{3970,1998,0}, {3975,2000,0},{3975,1998,0},{3977,2000,0},{3987,2002,0},{3990,1992,0},{3993,1993,0}, {4003,1987,0},{4005,1983,0},{4005,1980,0},{4007,1978,0},{4007,1977,0},{4010,1975,0}, {4013,1965,0},{4022,1947,0},{4030,1938,0},{4037,1935,0},{4042,1928,0},{4043,1932,0}, {4042,1935,0},{4038,1940,0},{4033,1942,0},{4035,1948,0},{4043,1948,0},{4053,1938,0}, {4050,1943,0},{4053,1945,0},{4057,1945,0},{4058,1940,0},{4057,1938,0},{4055,1938,0}, {4057,1938,0},{4065,1930,0},{4070,1935,0},{4080,1937,0},{4082,1940,0},{4085,1940,0}, {4087,1942,0},{4090,1938,0},{4095,1945,0},{4093,1942,0},{4090,1943,0},{4087,1943,0}, {4088,1943,0},{4087,1943,0},{4092,1952,0},{4100,1950,0},{4092,1945,0},{4098,1947,0}, {4100,1947,0},{4102,1943,0},{4110,1945,0},{4113,1943,0},{4115,1947,0},{4125,1952,0}, {4130,1950,0},{4130,1943,0},{4133,1942,0},{4138,1942,0},{4140,1938,0},{4140,1940,0}, {4140,1945,0},{4143,1945,0},{4145,1948,0},{4150,1952,0},{4153,1952,0},{4155,1947,0}, {4158,1945,0},{4157,1950,0},{4158,1957,0},{4162,1958,0},{4160,1960,0},{4160,1962,0}, {4163,1960,0},{4165,1957,0},{4170,1958,0},{4175,1957,0},{4177,1960,0},{4182,1960,0}, {4187,1943,0},{4185,1937,0},{4190,1928,0},{4192,1922,0},{4195,1915,0},{4198,1913,0}, {4198,1915,0},{4205,1913,0},{4208,1907,0},{4210,1908,0},{4213,1905,0},{4213,1900,0}, {4217,1900,0},{4222,1890,0},{4228,1888,0},{4227,1878,0},{4228,1877,0},{4232,1872,0}, {4238,1868,0},{4237,1862,0},{4238,1858,0},{4242,1855,0},{4243,1857,0},{4240,1870,0}, {4248,1868,0},{4243,1862,0},{4245,1852,0},{4240,1852,0},{4245,1847,0},{4245,1842,0}, {4248,1838,0},{4257,1823,0},{4258,1822,0},{4260,1823,0},{4262,1820,0},{4265,1807,0}, {4267,1805,0},{4267,1807,0},{4270,1805,0},{4268,1803,0},{4270,1800,0},{4277,1788,0}, {4278,1788,0},{4282,1780,0},{4280,1777,0},{4282,1772,0},{4278,1775,0},{4287,1745,0}, {4288,1745,0},{4292,1742,0},{4292,1737,0},{4298,1722,0},{4298,1712,0},{4300,1702,0}, {4302,1703,0},{4305,1700,0},{4305,1702,0},{4302,1707,0},{4302,1723,0},{4300,1730,0}, {4295,1743,0},{4292,1747,0},{4290,1757,0},{4283,1773,0},{4285,1770,0},{4288,1772,0}, {4287,1770,0},{4288,1767,0},{4293,1755,0},{4292,1762,0},{4293,1760,0},{4295,1752,0}, {4300,1747,0},{4303,1750,0},{4302,1743,0},{4303,1745,0},{4303,1743,0},{4307,1742,0}, {4303,1740,0},{4312,1733,0},{4317,1717,0},{4323,1710,0},{4323,1707,0},{4340,1688,0}, {4342,1675,0},{4345,1668,0},{4343,1663,0},{4350,1653,0},{4352,1640,0},{4353,1647,0}, {4355,1643,0},{4355,1632,0},{4352,1618,0},{4352,1613,0},{4352,1612,0},{4350,1617,0}, {4348,1617,0},{4348,1612,0},{4348,1610,0},{4350,1595,0},{4352,1595,0},{4352,1598,0}, {4355,1598,0},{4355,1593,0},{4357,1595,0},{4357,1592,0},{4358,1593,0},{4363,1592,0}, {4363,1597,0},{4365,1590,0},{4365,1595,0},{4367,1593,0},{4368,1595,0},{4367,1593,0}, {4370,1588,0},{4375,1578,0},{4377,1570,0},{4380,1567,0},{4382,1562,0},{4380,1568,0}, {4393,1545,0},{4403,1533,0},{4407,1528,0},{4410,1527,0},{4413,1520,0},{4415,1520,0}, {4418,1515,0},{4423,1517,0},{4427,1512,0},{4428,1512,0},{4428,1515,0},{4425,1518,0}, {4425,1520,0},{4428,1518,0},{4428,1520,0},{4430,1520,0},{4425,1528,0},{4428,1528,0}, {4428,1530,0},{4433,1527,0},{4427,1542,0},{4427,1543,0},{4425,1552,0},{4427,1553,0}, {4428,1552,0},{4428,1545,0},{4432,1542,0},{4437,1528,0},{4452,1510,0},{4458,1498,0}, {4472,1488,0},{4485,1488,0},{4497,1492,0},{4512,1485,0},{4515,1472,0},{4523,1462,0}, {4527,1457,0},{4528,1458,0},{4530,1457,0},{4530,1453,0},{4528,1455,0},{4530,1450,0}, {4532,1448,0},{4535,1433,0},{4530,1428,0},{4515,1423,0},{4512,1420,0},{4513,1418,0}, {4510,1420,0},{4508,1415,0},{4505,1415,0},{4498,1417,0},{4497,1415,0},{4497,1410,0}, {4495,1407,0},{4498,1408,0},{4503,1405,0},{4500,1403,0},{4498,1407,0},{4495,1405,0}, {4495,1403,0},{4492,1403,0},{4492,1402,0},{4490,1402,0},{4490,1398,0},{4488,1400,0}, {4482,1397,0},{4480,1400,0},{4482,1393,0},{4483,1392,0},{4482,1388,0},{4482,1392,0}, {4477,1392,0},{4477,1390,0},{4482,1390,0},{4482,1385,0},{4485,1385,0},{4487,1380,0}, {4487,1383,0},{4488,1385,0},{4490,1380,0},{4492,1380,0},{4497,1378,0},{4503,1368,0}, {4505,1368,0},{4507,1363,0},{4510,1363,0},{4512,1360,0},{4513,1362,0},{4513,1373,0}, {4513,1360,0},{4520,1358,0},{4525,1360,0},{4527,1358,0},{4528,1360,0},{4530,1358,0}, {4532,1360,0},{4533,1353,0},{4537,1355,0},{4548,1350,0},{4550,1350,0},{4548,1358,0}, {4548,1360,0},{4552,1360,0},{4553,1357,0},{4555,1375,0},{4557,1373,0},{4558,1370,0}, {4560,1372,0},{4562,1373,0},{4562,1380,0},{4563,1377,0},{4563,1375,0},{4567,1375,0}, {4570,1373,0},{4577,1363,0},{4578,1355,0},{4577,1353,0},{4575,1352,0},{4573,1355,0}, {4567,1340,0},{4568,1338,0},{4570,1343,0},{4573,1340,0},{4575,1325,0},{4578,1322,0}, {4577,1318,0},{4575,1315,0},{4577,1313,0},{4577,1312,0},{4573,1312,0},{4572,1307,0}, {4570,1307,0},{4568,1310,0},{4570,1315,0},{4563,1308,0},{4563,1298,0},{4562,1290,0}, {4555,1275,0},{4543,1242,0},{4548,1243,0},{4548,1247,0},{4550,1247,0},{4550,1250,0}, {4548,1250,0},{4548,1252,0},{4552,1253,0},{4555,1258,0},{4553,1255,0},{4555,1252,0}, {4557,1250,0},{4557,1248,0},{4553,1243,0},{4552,1245,0},{4553,1238,0},{4552,1238,0}, {4550,1242,0},{4550,1238,0},{4550,1237,0},{4548,1233,0},{4545,1227,0},{4537,1225,0}, {4535,1222,0},{4530,1222,0},{4532,1215,0},{4527,1217,0},{4527,1220,0},{4530,1220,0}, {4528,1223,0},{4527,1222,0},{4522,1222,0},{4520,1225,0},{4520,1227,0},{4520,1228,0}, {4523,1230,0},{4520,1230,0},{4515,1233,0},{4510,1233,0},{4512,1232,0},{4510,1230,0}, {4508,1230,0},{4508,1235,0},{4503,1238,0},{4502,1237,0},{4502,1238,0},{4503,1238,0}, {4507,1237,0},{4502,1243,0},{4503,1243,0},{4497,1248,0},{4497,1250,0},{4498,1248,0}, {4498,1252,0},{4497,1253,0},{4495,1252,0},{4492,1252,0},{4492,1250,0},{4487,1248,0}, {4482,1245,0},{4485,1243,0},{4490,1243,0},{4490,1242,0},{4487,1238,0},{4483,1242,0}, {4482,1240,0},{4482,1243,0},{4480,1242,0},{4480,1235,0},{4485,1230,0},{4483,1228,0}, {4472,1225,0},{4465,1225,0},{4460,1228,0},{4447,1228,0},{4440,1232,0},{4435,1232,0}, {4422,1238,0},{4398,1268,0},{4397,1282,0},{4383,1305,0},{4367,1330,0},{4362,1347,0}, {4363,1352,0},{4357,1357,0},{4355,1362,0},{4350,1363,0},{4310,1385,0},{4295,1388,0}, {4268,1402,0},{4253,1413,0},{4243,1427,0},{4238,1438,0},{4225,1452,0},{4222,1457,0}, {4217,1472,0},{4210,1472,0},{4208,1473,0},{4202,1488,0},{4200,1500,0},{4195,1507,0}, {4192,1517,0},{4192,1528,0},{4190,1540,0},{4193,1563,0},{4192,1568,0},{4192,1583,0}, {4195,1602,0},{4192,1615,0},{4188,1618,0},{4178,1618,0},{4168,1603,0},{4163,1593,0}, {4162,1590,0},{4152,1590,0},{4143,1598,0},{4123,1653,0},{4120,1658,0},{4108,1705,0}, {4103,1718,0},{4097,1728,0},{4090,1735,0},{4088,1740,0},{4083,1748,0},{4077,1770,0}, {4070,1783,0},{4068,1793,0},{4067,1797,0},{4065,1795,0},{4065,1802,0},{4060,1805,0}, {4055,1803,0},{4050,1813,0},{4045,1825,0},{4028,1843,0},{4013,1852,0},{4010,1852,0}, {4005,1848,0},{4003,1843,0},{4000,1842,0},{3992,1840,0},{3982,1838,0},{3980,1837,0}, {3980,1833,0},{3983,1827,0},{3983,1820,0},{3993,1805,0},{4000,1800,0},{4000,1802,0}, {4003,1802,0},{4005,1797,0},{4008,1800,0},{4010,1802,0},{4013,1798,0},{4017,1793,0}, {4025,1792,0},{4028,1787,0},{4030,1767,0},{4030,1752,0},{4033,1743,0},{4033,1740,0}, {4042,1720,0},{4045,1725,0},{4047,1723,0},{4047,1732,0},{4050,1732,0},{4048,1727,0}, {4050,1725,0},{4050,1723,0},{4048,1720,0},{4050,1718,0},{4052,1708,0},{4050,1700,0}, {4045,1692,0},{4032,1680,0},{4015,1670,0},{4010,1662,0},{4005,1660,0},{3997,1663,0}, {3987,1653,0},{3980,1648,0},{3975,1650,0},{3972,1653,0},{3967,1653,0},{3965,1655,0}, {3962,1663,0},{3962,1677,0},{3953,1688,0},{3950,1697,0},{3948,1702,0},{3943,1705,0}, {3940,1717,0},{3932,1712,0},{3927,1712,0},{3920,1715,0},{3910,1712,0},{3905,1715,0}, {3902,1720,0},{3900,1717,0},{3895,1717,0},{3890,1710,0},{3892,1708,0},{3890,1702,0}, {3892,1700,0},{3893,1697,0},{3892,1683,0},{3890,1678,0},{3880,1660,0},{3870,1653,0}, {3868,1655,0},{3857,1657,0},{3843,1657,0},{3835,1648,0},{3830,1633,0},{3813,1617,0}, {3798,1612,0},{3792,1607,0},{3792,1575,0},{3795,1567,0},{3800,1563,0},{3803,1565,0}, {3808,1563,0},{3815,1565,0},{3820,1563,0},{3823,1563,0},{3827,1575,0},{3830,1582,0}, {3852,1592,0},{3855,1592,0},{3862,1583,0},{3863,1583,0},{3867,1585,0},{3872,1598,0}, {3872,1610,0},{3872,1613,0},{3875,1618,0},{3883,1622,0},{3892,1622,0},{3893,1622,0}, {3895,1615,0},{3902,1610,0},{3913,1607,0},{3935,1603,0},{3952,1593,0},{3955,1587,0}, {3970,1580,0},{3980,1578,0},{3983,1577,0},{3987,1578,0},{4003,1567,0},{4005,1563,0}, {4007,1563,0},{4008,1557,0},{4007,1550,0},{3998,1542,0},{4000,1537,0},{4003,1532,0}, {4003,1527,0},{4005,1528,0},{4007,1527,0},{4017,1513,0},{4017,1503,0},{4022,1498,0}, {4023,1492,0},{4027,1490,0},{4028,1493,0},{4033,1493,0},{4035,1498,0},{4040,1500,0}, {4057,1490,0},{4067,1478,0},{4067,1473,0},{4063,1468,0},{4065,1463,0},{4062,1458,0}, {4062,1452,0},{4063,1448,0},{4062,1445,0},{4057,1435,0},{4058,1432,0},{4062,1433,0}, {4063,1438,0},{4067,1443,0},{4070,1448,0},{4075,1445,0},{4077,1440,0},{4082,1432,0}, {4083,1427,0},{4082,1422,0},{4080,1418,0},{4083,1410,0},{4082,1407,0},{4078,1408,0}, {4080,1405,0},{4087,1405,0},{4097,1398,0},{4102,1392,0},{4108,1390,0},{4118,1380,0}, {4125,1372,0},{4125,1360,0},{4123,1357,0},{4122,1358,0},{4120,1357,0},{4128,1335,0}, {4130,1330,0},{4127,1317,0},{4122,1310,0},{4122,1305,0},{4130,1300,0},{4138,1292,0}, {4142,1283,0},{4140,1277,0},{4147,1267,0},{4145,1262,0},{4162,1247,0},{4168,1235,0}, {4173,1223,0},{4187,1218,0},{4193,1212,0},{4195,1203,0},{4198,1202,0},{4203,1192,0}, {4203,1183,0},{4213,1175,0},{4222,1170,0},{4230,1162,0},{4240,1138,0},{4240,1140,0}, {4240,1137,0},{4240,1128,0},{4242,1127,0},{4240,1120,0},{4237,1118,0},{4237,1115,0}, {4240,1110,0},{4243,1108,0},{4245,1110,0},{4245,1117,0},{4252,1118,0},{4257,1115,0}, {4257,1112,0},{4263,1108,0},{4265,1100,0},{4270,1098,0},{4275,1093,0},{4278,1078,0}, {4280,1073,0},{4282,1077,0},{4288,1078,0},{4292,1075,0},{4295,1067,0},{4295,1058,0}, {4295,1055,0},{4292,1053,0},{4293,1050,0},{4298,1048,0},{4300,1052,0},{4307,1053,0}, {4315,1055,0},{4323,1053,0},{4340,1042,0},{4345,1037,0},{4347,1032,0},{4355,1030,0}, {4383,1025,0},{4390,1022,0},{4402,1010,0},{4405,1000,0},{4403,997,0},{4410,983,0}, {4408,982,0},{4407,985,0},{4405,983,0},{4403,985,0},{4403,983,0},{4405,982,0}, {4410,973,0},{4413,967,0},{4413,962,0},{4417,960,0},{4422,950,0},{4423,948,0}, {4423,943,0},{4425,942,0},{4425,940,0},{4430,933,0},{4435,923,0},{4433,922,0}, {4430,922,0},{4432,915,0},{4437,913,0},{4438,895,0},{4442,892,0},{4443,877,0}, {4432,850,0},{4428,843,0},{4425,845,0},{4422,842,0},{4418,842,0},{4413,827,0}, {4410,823,0},{4405,823,0},{4400,815,0},{4395,817,0},{4390,807,0},{4385,795,0}, {4382,777,0},{4378,768,0},{4378,760,0},{4378,753,0},{4378,750,0},{4378,748,0}, {4375,747,0},{4375,743,0},{4375,745,128},{4372,738,0},{4373,740,128},{4372,733,0}, {4368,733,0},{4372,732,0},{4370,723,0},{4367,722,0},{4367,715,0},{4363,713,0}, {4357,713,0},{4358,710,0},{4357,702,0},{4355,697,0},{4352,695,0},{4350,695,0}, {4343,688,0},{4342,685,0},{4343,675,0},{4337,672,0},{4335,667,0},{4332,667,0}, {4328,658,0},{4328,670,0},{4323,667,0},{4322,668,0},{4320,663,0},{4318,663,0}, {4317,662,0},{4318,660,0},{4320,660,0},{4320,657,0},{4317,650,0},{4317,640,0}, {4313,637,0},{4308,637,0},{4313,627,0},{4313,618,0},{4310,617,0},{4307,615,0}, {4307,618,0},{4305,617,0},{4305,608,0},{4307,612,0},{4310,612,0},{4310,603,0}, {4312,602,0},{4312,593,0},{4313,593,0},{4312,588,0},{4308,593,0},{4308,590,0}, {4305,587,0},{4307,583,0},{4308,577,0},{4312,582,0},{4312,578,0},{4315,577,0}, {4315,570,0},{4318,568,0},{4318,562,0},{4318,560,0},{4318,558,0},{4322,553,0}, {4320,550,0},{4322,547,0},{4322,537,0},{4323,535,0},{4327,537,0},{4328,535,0}, {4333,537,0},{4337,532,0},{4333,522,0},{4335,503,0},{4338,502,0},{4340,502,0}, {4342,507,0},{4342,515,0},{4347,523,0},{4350,522,0},{4348,517,0},{4350,512,0}, {4353,512,0},{4353,505,0},{4355,503,0},{4350,500,0},{4348,502,0},{4347,505,0}, {4343,507,0},{4342,498,0},{4343,492,0},{4342,487,0},{4340,485,0},{4338,487,0}, {4337,487,0},{4343,475,0},{4352,475,0},{4357,472,0},{4357,470,0},{4355,470,0}, {4352,473,0},{4342,473,0},{4338,482,0},{4337,482,0},{4335,480,0},{4337,460,0}, {4338,457,0},{4343,460,0},{4345,453,0},{4345,437,0},{4348,418,0},{4350,415,0}, {4353,415,0},{4357,412,0},{4357,395,0},{4358,408,0},{4362,410,0},{4355,388,0}, {4353,387,0},{4352,382,0},{4348,380,0},{4343,370,0},{4345,377,0},{4353,388,0}, {4355,393,0},{4342,370,0},{4338,362,0},{4328,352,0},{4328,340,0},{4322,327,0}, {4308,315,0},{4310,312,0},{4312,313,0},{4312,310,0},{4308,310,0},{4307,313,0}, {4305,313,0},{4295,308,0},{4295,307,0},{4298,308,0},{4298,307,0},{4297,305,0}, {4293,310,0},{4290,310,0},{4290,305,0},{4287,305,0},{4283,300,0},{4282,302,0}, {4280,308,0},{4268,308,0},{4270,305,0},{4268,305,0},{4265,308,0},{4255,310,0}, {4252,315,0},{4243,322,0},{4238,320,0},{4235,323,0},{4235,325,0},{4233,332,0}, {4232,335,0},{4225,330,0},{4225,322,0},{4227,320,0},{4225,317,0},{4222,315,0}, {4215,315,0},{4208,323,0},{4202,323,0},{4197,327,0},{4188,322,0},{4185,313,0}, {4180,308,0},{4173,297,0},{4172,287,0},{4163,275,0},{4145,228,0},{4132,215,0}, {4127,207,0},{4125,193,0},{4120,168,0},{4118,152,0},{4113,140,0},{4112,123,0}, {4107,118,0},{4108,113,0},{4107,105,0},{4103,98,0},{4097,88,0},{4080,72,0}, {4077,78,0},{4080,77,0},{4080,80,0},{4072,90,0},{4068,87,0},{4067,77,0}, {4057,67,0},{4060,62,0},{4060,70,0},{4065,73,0},{4063,62,0},{4060,58,0}, {4030,37,0},{4025,30,0},{4022,28,0},{4017,20,0},{4007,13,0},{4003,5,0}, {3995,0,0},{3992,65534,0},{3980,65523,0},{3970,65516,0},{3965,65514,0}, {3955,65504,0},{3950,65503,0},{3938,65503,0},{3918,65513,0},{3917,65511,0}, {3912,65511,0},{3893,65524,0},{3887,0,0},{3885,10,0},{3882,17,0},{3880,18,0}, {3880,17,0},{3877,22,0},{3873,22,0},{3872,17,0},{3868,13,0},{3867,8,0}, {3863,7,0},{3862,0,0},{3860,65529,0},{3858,65529,0},{3855,65529,0},{3853,65526,0}, {3853,65519,0},{3845,65498,0},{3840,65494,0},{3835,65494,0},{3835,65489,0}, {3833,65488,0},{3833,65484,0},{3820,65483,0},{3818,65474,0},{3815,65469,0}, {3805,65469,0},{3798,65471,0},{3795,65466,0},{3790,65461,0},{3783,65459,0}, {3780,65461,0},{3782,65458,0},{3780,65456,0},{3777,65454,0},{3775,65451,0}, {3773,65449,0},{3767,65454,0},{3763,65461,0},{3765,65464,0},{3763,65466,0}, {3762,65464,0},{3755,65444,0},{3758,65438,0},{3758,65429,0},{3757,65424,0}, {3753,65424,0},{3757,65414,0},{3755,65401,0},{3748,65389,0},{3743,65386,0}, {3743,65383,0},{3742,65379,0},{3738,65371,0},{3720,65354,0},{3698,65344,0}, {3695,65346,0},{3693,65341,0},{3690,65336,0},{3685,65334,0},{3673,65323,0}, {3673,65318,0},{3673,65314,0},{3680,65308,0},{3683,65299,0},{3682,65293,0}, {3682,65278,0},{3673,65271,0},{3670,65264,0},{3670,65259,0},{3672,65254,0}, {3670,65251,0},{3675,65244,0},{3677,65226,0},{3675,65203,0},{3670,65191,0}, {3675,65173,0},{3673,65163,0},{3675,65151,0},{3673,65141,0},{3675,65128,0}, {3673,65124,0},{3672,65113,0},{3672,65094,0},{3662,65086,0},{3657,65076,0}, {3650,65071,0},{3648,65061,0},{3652,65049,0},{3650,65043,0},{3647,65036,0}, {3642,65018,0},{3635,65011,0},{3630,65009,0},{3627,65004,0},{3615,64999,0}, {3617,64999,128},{3610,64999,0},{3615,64998,0},{3617,64993,0},{3615,64989,0}, {3607,64991,0},{3605,64989,0},{3600,64974,0},{3605,64968,0},{3607,64959,0}, {3608,64954,0},{3618,64943,0},{3618,64931,0},{3628,64924,0},{3632,64919,0}, {3637,64918,0},{3645,64913,0},{3653,64904,0},{3655,64906,0},{3653,64908,0}, {3648,64913,0},{3652,64918,0},{3652,64914,0},{3652,64911,0},{3657,64913,0}, {3662,64906,0},{3663,64898,0},{3673,64893,0},{3675,64893,0},{3680,64903,0}, {3687,64901,0},{3690,64903,0},{3690,64906,0},{3690,64914,0},{3693,64916,0}, {3692,64913,0},{3690,64903,0},{3682,64901,0},{3680,64899,0},{3682,64896,0}, {3693,64889,0},{3703,64876,0},{3718,64846,0},{3722,64844,0},{3728,64851,0}, {3722,64843,0},{3723,64839,0},{3717,64843,0},{3722,64828,0},{3722,64823,0}, {3720,64826,0},{3720,64803,0},{3718,64798,0},{3718,64794,0},{3717,64794,0}, {3718,64791,0},{3717,64783,0},{3698,64753,0},{3702,64746,0},{3700,64739,0}, {3700,64736,0},{3698,64739,0},{3705,64729,0},{3707,64721,0},{3707,64706,0}, {3710,64699,0},{3708,64691,0},{3712,64683,0},{3712,64676,0},{3712,64671,0}, {3708,64668,0},{3705,64651,0},{3700,64641,0},{3703,64636,0},{3715,64644,0}, {3718,64644,0},{3725,64648,0},{3732,64648,0},{3743,64654,0},{3753,64656,0}, {3760,64653,0},{3768,64654,0},{3770,64658,0},{3770,64661,0},{3773,64663,0}, {3772,64656,0},{3773,64654,0},{3788,64654,0},{3792,64653,0},{3795,64646,0}, {3813,64656,0},{3825,64656,0},{3840,64653,0},{3848,64641,0},{3848,64646,0}, {3845,64651,0},{3843,64656,0},{3842,64658,0},{3843,64659,0},{3840,64666,0}, {3842,64676,0},{3842,64668,0},{3845,64663,0},{3850,64661,0},{3852,64663,0}, {3857,64659,0},{3853,64658,0},{3852,64654,0},{3852,64658,0},{3848,64656,0}, {3848,64653,0},{3852,64644,0},{3847,64636,0},{3845,64629,0},{3842,64613,0}, {3847,64616,0},{3872,64586,0},{3875,64588,0},{3880,64586,0},{3893,64593,0}, {3908,64593,0},{3923,64601,0},{3932,64601,0},{3937,64594,0},{3938,64603,0}, {3943,64611,0},{3940,64613,0},{3942,64616,0},{3945,64613,0},{3955,64623,0}, {3972,64629,0},{3983,64636,0},{4013,64649,0},{4012,64654,0},{4012,64658,0}, {4015,64654,0},{4015,64648,0},{4018,64644,0},{4040,64654,0},{4062,64659,0}, {4063,64661,0},{4062,64661,0},{4065,64664,0},{4065,64668,0},{4067,64668,0}, {4067,64669,0},{4070,64671,0},{4070,64669,0},{4072,64669,0},{4073,64674,0}, {4075,64679,0},{4073,64673,0},{4073,64669,0},{4075,64668,0},{4078,64668,0}, {4082,64673,0},{4083,64671,0},{4080,64669,0},{4082,64668,0},{4075,64666,0}, {4067,64663,0},{4067,64661,0},{4097,64671,0},{4113,64669,0},{4115,64671,0}, {4117,64666,0},{4120,64664,0},{4133,64661,0},{4133,64659,0},{4140,64658,0}, {4152,64656,0},{4153,64658,0},{4155,64656,0},{4167,64653,0},{4170,64663,0}, {4172,64666,0},{4168,64654,0},{4170,64651,0},{4172,64648,0},{4175,64646,0}, {4180,64648,0},{4183,64648,0},{4192,64659,0},{4197,64661,0},{4188,64649,0}, {4197,64648,0},{4212,64646,0},{4213,64651,0},{4212,64654,0},{4213,64654,0}, {4217,64651,0},{4217,64654,0},{4223,64659,0},{4230,64673,0},{4235,64674,0}, {4233,64671,0},{4230,64669,0},{4225,64658,0},{4227,64649,0},{4230,64651,0}, {4228,64654,0},{4233,64653,0},{4233,64659,0},{4243,64671,0},{4243,64666,0}, {4240,64659,0},{4240,64653,0},{4242,64649,0},{4243,64648,0},{4247,64646,0}, {4247,64643,0},{4248,64643,0},{4250,64648,0},{4248,64649,0},{4247,64649,0}, {4247,64654,0},{4247,64653,0},{4250,64654,0},{4257,64653,0},{4260,64659,0}, {4268,64663,0},{4265,64661,0},{4263,64656,0},{4268,64651,0},{4262,64649,0}, {4262,64648,0},{4263,64646,0},{4262,64644,0},{4258,64644,0},{4258,64639,0}, {4255,64638,0},{4253,64636,0},{4253,64633,0},{4258,64633,0},{4260,64629,0}, {4268,64633,0},{4273,64634,0},{4275,64641,0},{4278,64643,0},{4280,64646,0}, {4283,64648,0},{4283,64644,0},{4282,64644,0},{4280,64641,0},{4280,64631,0}, {4278,64631,0},{4275,64628,0},{4277,64626,0},{4282,64623,0},{4283,64626,0}, {4287,64621,0},{4292,64623,0},{4295,64618,0},{4292,64616,0},{4295,64613,0}, {4292,64611,0},{4290,64609,0},{4293,64608,0},{4302,64611,0},{4307,64608,0}, {4307,64611,0},{4310,64611,0},{4310,64614,0},{4312,64614,0},{4310,64618,0}, {4312,64619,0},{4313,64621,0},{4315,64626,0},{4313,64616,0},{4315,64614,0}, {4318,64618,0},{4320,64629,0},{4325,64634,0},{4323,64638,0},{4323,64643,0}, {4378,64746,0},{4377,64749,0},{4372,64751,0},{4373,64749,0},{4368,64749,0}, {4368,64746,0},{4367,64749,0},{4368,64751,0},{4372,64749,0},{4372,64754,0}, {4373,64754,0},{4377,64763,0},{4380,64768,0},{4378,64769,0},{4373,64766,0}, {4377,64771,0},{4373,64774,0},{4370,64774,0},{4373,64779,0},{4373,64788,0}, {4372,64788,0},{4368,64799,0},{4362,64806,0},{4360,64809,0},{4357,64809,0}, {4358,64833,0},{4357,64833,0},{4353,64831,0},{4350,64831,0},{4355,64834,0}, {4357,64834,0},{4358,64841,0},{4357,64864,0},{4358,64871,0},{4358,64876,0}, {4357,64886,0},{4357,64889,0},{4358,64889,0},{4357,64894,0},{4358,64904,0}, {4362,64913,0},{4358,64918,0},{4358,64929,0},{4360,64934,0},{4360,64944,0}, {4365,64946,0},{4365,64949,0},{4368,64951,0},{4365,64958,0},{4358,64966,0}, {4360,64966,0},{4357,64969,0},{4357,64996,0},{4355,64998,0},{4352,64994,0}, {4355,64999,0},{4355,65006,0},{4350,65016,0},{4350,65028,0},{4348,65031,0}, {4348,65039,0},{4348,65041,0},{4343,65063,0},{4342,65083,0},{4342,65086,0}, {4340,65088,0},{4342,65093,0},{4340,65098,0},{4342,65101,0},{4340,65104,0}, {4342,65113,0},{4345,65128,0},{4345,65133,0},{4347,65134,0},{4345,65139,0}, {4347,65139,0},{4350,65143,0},{4352,65154,0},{4350,65159,0},{4347,65153,0}, {4343,65154,0},{4347,65159,0},{4345,65163,0},{4348,65161,0},{4348,65163,0}, {4350,65164,0},{4350,65168,0},{4353,65178,0},{4350,65186,0},{4348,65193,0}, {4347,65193,0},{4345,65186,0},{4342,65189,0},{4345,65191,0},{4342,65211,0}, {4338,65219,0},{4337,65229,0},{4333,65234,0},{4340,65233,0},{4343,65241,0}, {4345,65243,0},{4345,65254,0},{4347,65261,0},{4343,65266,0},{4338,65268,0}, {4342,65269,0},{4340,65284,0},{4332,65301,0},{4332,65318,0},{4332,65321,0}, {4330,65323,0},{4335,65339,0},{4333,65346,0},{4335,65344,0},{4342,65356,0}, {4340,65359,0},{4343,65376,0},{4353,65386,0},{4390,65398,0},{4427,65408,0}, {4450,65411,0},{4455,65409,0},{4467,65416,0},{4465,65423,0},{4467,65431,0}, {4467,65433,0},{4472,65429,0},{4477,65419,0},{4468,65413,0},{4463,65411,0}, {4467,65409,0},{4512,65416,0},{4523,65419,0},{4548,65421,0},{4555,65428,0}, {4557,65429,0},{4555,65431,0},{4552,65431,0},{4548,65436,0},{4545,65443,0}, {4535,65456,0},{4523,65463,0},{4510,65466,0},{4505,65471,0},{4498,65479,0}, {4490,65481,0},{4498,65483,0},{4502,65476,0},{4502,65481,0},{4500,65486,0}, {4503,65484,0},{4505,65476,0},{4508,65471,0},{4513,65469,0},{4535,65464,0}, {4547,65458,0},{4555,65444,0},{4558,65438,0},{4562,65436,0},{4568,65421,0}, {4570,65418,0},{4570,65411,0},{4580,65413,0},{4580,65421,0},{4575,65426,0}, {4572,65438,0},{4578,65426,0},{4587,65421,0},{4587,65424,0},{4590,65424,0}, {4590,65429,0},{4595,65428,0},{4597,65429,0},{4602,65424,0},{4600,65428,0}, {4602,65431,0},{4603,65431,0},{4605,65428,0},{4610,65426,0},{4612,65423,0}, {4612,65424,0},{4615,65421,0},{4615,65416,0},{4617,65414,0},{4622,65418,0}, {4627,65426,0},{4632,65424,0},{4633,65419,0},{4632,65416,0},{4627,65414,0}, {4633,65406,0},{4632,65406,0},{4635,65401,0},{4633,65391,0},{4640,65389,0}, {4642,65386,0},{4642,65373,0},{4645,65373,0},{4645,65368,0},{4648,65361,0}, {4652,65358,0},{4650,65358,0},{4648,65356,0},{4660,65354,0},{4660,65351,0}, {4663,65349,0},{4670,65344,0},{4670,65339,0},{4677,65336,0},{4683,65323,0}, {4690,65323,0},{4692,65326,0},{4693,65328,0},{4695,65331,0},{4700,65333,0}, {4703,65338,0},{4710,65331,0},{4713,65313,0},{4717,65319,0},{4727,65319,0}, {4730,65334,0},{4727,65341,0},{4728,65343,0},{4727,65346,0},{4727,65344,0}, {4725,65346,0},{4722,65356,0},{4722,65363,0},{4723,65356,0},{4728,65348,0}, {4732,65334,0},{4732,65319,0},{4728,65318,0},{4723,65308,0},{4728,65299,0}, {4728,65294,0},{4727,65293,0},{4728,65288,0},{4730,65283,0},{4728,65289,0}, {4730,65293,0},{4733,65288,0},{4732,65286,0},{4735,65286,0},{4738,65281,0}, {4742,65289,0},{4740,65293,0},{4742,65293,0},{4742,65298,0},{4742,65291,0}, {4745,65291,0},{4745,65288,0},{4750,65288,0},{4750,65299,0},{4750,65293,0}, {4753,65284,0},{4752,65273,0},{4755,65279,0},{4753,65273,0},{4752,65274,0}, {4753,65269,0},{4750,65268,0},{4750,65251,0},{4753,65249,0},{4755,65244,0}, {4757,65244,0},{4757,65249,0},{4755,65251,0},{4755,65254,0},{4757,65254,0}, {4755,65256,0},{4755,65263,0},{4757,65264,0},{4760,65268,0},{4763,65266,0}, {4760,65266,0},{4762,65259,0},{4762,65263,0},{4763,65261,0},{4765,65258,0}, {4763,65258,0},{4762,65251,0},{4760,65251,0},{4760,65248,0},{4758,65248,0}, {4758,65244,0},{4760,65244,0},{4760,65243,0},{4763,65243,0},{4765,65238,0}, {4763,65239,0},{4757,65243,0},{4757,65239,0},{4760,65236,0},{4757,65236,0}, {4760,65234,0},{4757,65234,0},{4757,65226,0},{4758,65228,0},{4760,65224,0}, {4750,65224,0},{4747,65228,0},{4747,65223,0},{4752,65221,0},{4758,65223,0}, {4762,65221,0},{4763,65216,0},{4768,65218,0},{4770,65224,0},{4773,65224,0}, {4772,65223,0},{4775,65223,0},{4773,65221,0},{4775,65218,0},{4773,65219,0}, {4772,65219,0},{4770,65216,0},{4768,65216,0},{4765,65214,0},{4770,65204,0}, {4770,65201,0},{4768,65208,0},{4770,65204,0},{4772,65201,0},{4778,65208,0}, {4773,65201,0},{4773,65196,0},{4773,65199,0},{4772,65199,0},{4770,65191,0}, {4777,65183,0},{4778,65168,0},{4782,65164,0},{4780,65159,0},{4780,65151,0}, {4790,65141,0},{4790,65138,0},{4787,65138,0},{4785,65133,0},{4787,65136,0}, {4787,65128,0},{4792,65123,0},{4790,65121,0},{4787,65124,0},{4785,65121,0}, {4787,65119,0},{4788,65118,0},{4787,65118,0},{4783,65118,0},{4783,65121,0}, {4780,65118,0},{4780,65111,0},{4780,65099,0},{4783,65099,0},{4783,65101,0}, {4787,65101,0},{4797,65093,0},{4802,65083,0},{4800,65079,0},{4803,65073,0}, {4803,65063,0},{4807,65066,0},{4808,65081,0},{4812,65099,0},{4810,65106,0}, {4812,65108,0},{4815,65108,0},{4820,65104,0},{4820,65099,0},{4823,65093,0}, {4823,65086,0},{4820,65084,0},{4817,65081,0},{4820,65081,0},{4823,65079,0}, {4825,65081,0},{4827,65074,0},{4828,65074,0},{4828,65078,0},{4832,65078,0}, {4833,65079,0},{4833,65083,0},{4830,65081,0},{4828,65086,0},{4830,65106,0}, {4828,65111,0},{4830,65118,0},{4830,65113,0},{4832,65113,0},{4830,65111,0}, {4832,65108,0},{4832,65104,0},{4835,65109,0},{4835,65104,0},{4833,65098,0}, {4833,65096,0},{4835,65096,0},{4833,65091,0},{4837,65093,0},{4843,65106,0}, {4835,65076,0},{4833,65059,0},{4837,65058,0},{4838,65059,0},{4843,65058,0}, {4847,65059,0},{4847,65061,0},{4852,65058,0},{4857,65066,0},{4857,65078,0}, {4858,65076,0},{4860,65076,0},{4860,65083,0},{4862,65079,0},{4863,65083,0}, {4863,65086,0},{4863,65094,0},{4865,65094,0},{4868,65103,0},{4867,65106,0}, {4863,65106,0},{4865,65113,0},{4865,65116,0},{4867,65114,0},{4868,65118,0}, {4870,65126,0},{4868,65129,0},{4868,65131,0},{4872,65131,0},{4873,65138,0}, {4865,65141,0},{4868,65144,0},{4867,65146,0},{4865,65146,0},{4863,65151,0}, {4868,65149,0},{4867,65151,0},{4868,65153,0},{4870,65151,0},{4873,65154,0}, {4870,65169,0},{4870,65171,0},{4868,65173,0},{4868,65178,0},{4873,65178,0}, {4873,65183,0},{4877,65178,0},{4880,65179,0},{4880,65183,0},{4883,65183,0}, {4883,65189,0},{4882,65191,0},{4882,65194,0},{4880,65193,0},{4883,65204,0}, {4883,65208,0},{4887,65214,0},{4883,65216,0},{4880,65214,0},{4885,65218,0}, {4887,65226,0},{4887,65228,0},{4882,65228,0},{4875,65224,0},{4882,65229,0}, {4882,65234,0},{4880,65236,0},{4878,65231,0},{4877,65239,0},{4877,65241,0}, {4875,65243,0},{4873,65243,0},{4865,65254,0},{4860,65254,0},{4855,65264,0}, {4853,65263,0},{4850,65268,0},{4853,65269,0},{4853,65273,0},{4860,65281,0}, {4862,65289,0},{4863,65289,0},{4865,65288,0},{4865,65294,0},{4863,65294,0}, {4865,65298,0},{4867,65303,0},{4870,65304,0},{4867,65308,0},{4862,65303,0}, {4865,65311,0},{4863,65313,0},{4858,65314,0},{4862,65316,0},{4858,65318,0}, {4862,65321,0},{4862,65323,0},{4863,65321,0},{4865,65326,0},{4865,65331,0}, {4853,65339,0},{4852,65338,0},{4853,65343,0},{4853,65339,0},{4858,65338,0}, {4858,65341,0},{4860,65336,0},{4865,65333,0},{4867,65336,0},{4868,65338,0}, {4868,65343,0},{4870,65343,0},{4872,65351,0},{4870,65351,0},{4865,65349,0}, {4863,65351,0},{4860,65359,0},{4862,65373,0},{4863,65378,0},{4863,65386,0}, {4865,65394,0},{4863,65401,0},{4867,65396,0},{4868,65386,0},{4872,65384,0}, {4875,65379,0},{4883,65379,0},{4883,65376,0},{4887,65378,0},{4893,65381,0}, {4895,65379,0},{4902,65381,0},{4902,65386,0},{4903,65383,0},{4902,65379,0}, {4900,65378,0},{4903,65376,0},{4908,65378,0},{4910,65374,0},{4913,65376,0}, {4913,65379,0},{4915,65376,0},{4922,65374,0},{4922,65381,0},{4923,65374,0}, {4922,65374,0},{4922,65373,0},{4928,65369,0},{4932,65366,0},{4933,65368,0}, {4935,65366,0},{4933,65364,0},{4938,65359,0},{4938,65354,0},{4945,65354,0}, {4950,65351,0},{4953,65348,0},{4958,65353,0},{4963,65351,0},{4965,65349,0}, {4968,65341,0},{4973,65343,0},{4970,65348,0},{4972,65351,0},{4968,65354,0}, {4967,65368,0},{4967,65369,0},{4965,65376,0},{4967,65384,0},{4970,65389,0}, {4970,65411,0},{4962,65413,0},{4962,65411,0},{4958,65409,0},{4958,65406,0}, {4955,65406,0},{4940,65419,0},{4935,65418,0},{4935,65423,0},{4933,65423,0}, {4935,65426,0},{4937,65424,0},{4940,65429,0},{4940,65438,0},{4940,65444,0}, {4937,65453,0},{4933,65496,0},{4928,65511,0},{4927,65513,0},{4928,65516,0}, {4930,65526,0},{4933,0,0},{4937,8,0},{4942,15,0},{4943,22,0},{4945,42,0}, {4948,50,0},{4945,35,0},{4947,25,0},{4948,18,0},{4947,18,0},{4947,17,0}, {4952,8,0},{4968,17,0},{4972,22,0},{4975,35,0},{4987,63,0},{4987,78,0}, {4992,97,0},{4993,107,0},{4998,123,0},{5010,143,0},{5020,152,0},{5022,155,0}, {5020,158,0},{5018,167,0},{5020,165,0},{5022,167,0},{5022,163,0},{5028,153,0}, {5037,155,0},{5037,162,0},{5040,155,0},{5053,158,0},{5055,160,0},{5058,158,0}, {5068,157,0},{5078,160,0},{5087,158,0},{5088,165,0},{5095,173,0},{5098,185,0}, {5102,212,0},{5105,232,0},{5105,242,0},{5108,255,0},{5132,310,0},{5138,338,0}, {5137,337,128},{5142,353,0},{5138,368,0},{5135,373,0},{5133,387,0},{5137,397,0}, {5140,398,0},{5140,403,0},{5137,407,0},{5135,412,0},{5137,422,0},{5130,427,0}, {5128,432,0},{5127,430,0},{5128,433,0},{5132,428,0},{5142,425,0},{5140,415,0}, {5142,408,0},{5145,398,0},{5145,393,0},{5140,390,0},{5140,380,0},{5142,375,0}, {5147,368,0},{5145,362,0},{5145,353,0},{5153,343,0},{5160,357,0},{5160,383,0}, {5160,387,0},{5157,390,0},{5155,387,0},{5153,397,0},{5150,405,0},{5145,410,0}, {5143,415,0},{5145,428,0},{5148,428,0},{5152,423,0},{5153,408,0},{5158,400,0}, {5162,408,0},{5160,417,0},{5158,422,0},{5162,420,0},{5162,413,0},{5165,412,0}, {5162,398,0},{5163,390,0},{5167,388,0},{5170,382,0},{5167,372,0},{5168,368,0}, {5172,368,0},{5173,372,0},{5175,383,0},{5178,387,0},{5182,388,0},{5185,398,0}, {5183,405,0},{5183,408,0},{5188,403,0},{5192,405,0},{5198,402,0},{5198,412,0}, {5200,415,0},{5223,443,0},{5245,457,0},{5247,460,0},{5248,458,0},{5275,465,0}, {5297,473,0},{5297,482,0},{5292,482,0},{5290,488,0},{5297,510,0},{5307,528,0}, {5308,538,0},{5322,545,0},{5328,558,0},{5340,598,0},{5342,625,0},{5340,632,0}, {5347,675,0},{5343,687,0},{5340,688,0},{5335,690,0},{5332,695,0},{5330,705,0}, {5330,708,0},{5327,707,0},{5325,710,0},{5323,718,0},{5325,722,0},{5492,867,128}, {5483,863,0},{5475,870,0},{5473,868,0},{5468,882,0},{5462,885,0},{5460,882,0}, {5460,890,0},{5450,902,0},{5445,900,0},{5445,895,0},{5440,887,0},{5440,863,0}, {5437,863,0},{5435,870,0},{5435,862,0},{5433,860,0},{5428,863,0},{5427,868,0}, {5430,873,0},{5428,890,0},{5432,897,0},{5427,892,0},{5425,885,0},{5418,882,0}, {5412,887,0},{5415,895,0},{5415,898,0},{5412,898,0},{5408,902,0},{5403,900,0}, {5402,898,0},{5405,888,0},{5403,883,0},{5398,888,0},{5395,890,0},{5388,898,0}, {5390,903,0},{5388,922,0},{5385,933,0},{5382,940,0},{5373,943,0},{5370,953,0}, {5362,957,0},{5357,968,0},{5355,982,0},{5353,983,0},{5355,968,0},{5358,957,0}, {5387,928,0},{5385,908,0},{5385,902,0},{5383,902,0},{5383,890,0},{5383,880,0}, {5385,873,0},{5390,867,0},{5388,860,0},{5385,858,0},{5370,848,0},{5365,848,0}, {5353,857,0},{5347,850,0},{5335,850,0},{5347,848,0},{5353,855,0},{5357,838,0}, {5362,835,0},{5362,832,0},{5360,825,0},{5353,823,0},{5352,823,0},{5352,832,0}, {5343,830,0},{5340,823,0},{5340,820,0},{5345,815,0},{5343,810,0},{5347,807,0}, {5350,807,0},{5352,817,0},{5353,817,0},{5357,815,0},{5357,812,0},{5358,812,0}, {5363,805,0},{5370,803,0},{5372,797,0},{5370,768,0},{5367,752,0},{5368,747,0}, {5368,730,0},{5367,723,0},{5358,710,0},{5357,708,0},{5353,715,0},{5352,710,0}, {5350,705,0},{5340,702,0},{5333,705,0},{5332,733,0},{5330,737,0},{5332,728,0}, {5330,723,0},{5325,723,0},{5323,720,0},{5490,867,128},{5495,868,0},{5502,863,0}, {5513,868,0},{5513,857,0},{5513,855,0},{5508,857,0},{5507,850,0},{5507,847,0}, {5512,845,0},{5518,848,0},{5520,850,0},{5518,860,0},{5515,857,0},{5513,865,0}, {5513,868,0},{5528,865,0},{5533,867,0},{5543,862,0},{5545,858,0},{5545,843,0}, {5555,830,0},{5558,832,0},{5558,827,0},{5555,823,0},{5553,827,0},{5552,825,0}, {5550,830,0},{5547,832,0},{5552,820,0},{5555,808,0},{5572,818,0},{5597,815,0}, {5587,820,0},{5582,818,0},{5583,830,0},{5590,840,0},{5603,830,0},{5608,823,0}, {5610,813,0},{5608,813,0},{5598,815,0},{5598,812,0},{5607,810,0},{5622,813,0}, {5635,812,0},{5632,815,0},{5632,825,0},{5628,825,0},{5632,832,0},{5632,828,0}, {5637,818,0},{5640,818,0},{5638,825,0},{5640,823,0},{5642,818,0},{5642,813,0}, {5637,812,0},{5658,813,0},{5667,818,0},{5668,823,0},{5662,820,0},{5658,823,0}, {5658,830,0},{5655,830,0},{5657,833,0},{5657,842,0},{5653,852,0},{5657,855,0}, {5655,858,0},{5648,860,0},{5647,867,0},{5648,875,0},{5652,873,0},{5655,875,0}, {5658,870,0},{5660,868,0},{5662,868,0},{5662,875,0},{5667,882,0},{5668,890,0}, {5670,892,0},{5672,885,0},{5678,892,0},{5678,897,0},{5680,905,0},{5678,908,0}, {5672,915,0},{5665,912,0},{5662,905,0},{5655,907,0},{5655,910,0},{5660,912,0}, {5660,915,0},{5662,913,0},{5663,915,0},{5662,917,0},{5660,928,0},{5657,925,0}, {5652,930,0},{5653,938,0},{5657,937,0},{5655,932,0},{5657,928,0},{5663,932,0}, {5668,930,0},{5668,922,0},{5665,920,0},{5667,917,0},{5675,925,0},{5677,918,0}, {5680,917,0},{5685,920,0},{5687,917,0},{5690,918,0},{5698,932,0},{5700,942,0}, {5698,958,0},{5695,953,0},{5692,957,0},{5695,957,0},{5698,965,0},{5703,970,0}, {5703,985,0},{5705,995,0},{5705,993,0},{5705,988,0},{5710,978,0},{5705,973,0}, {5705,962,0},{5703,955,0},{5703,952,0},{5705,952,0},{5698,923,0},{5705,910,0}, {5712,903,0},{5710,902,0},{5703,912,0},{5702,912,0},{5698,892,0},{5702,887,0}, {5698,885,0},{5700,880,0},{5697,882,0},{5693,875,0},{5693,868,0},{5688,862,0}, {5685,862,0},{5678,848,0},{5675,850,0},{5670,848,0},{5670,852,0},{5668,852,0}, {5667,843,0},{5667,848,0},{5665,852,0},{5667,858,0},{5660,858,0},{5657,855,0}, {5658,852,0},{5663,848,0},{5668,833,0},{5675,830,0},{5677,827,0},{5675,825,0}, {5672,827,0},{5670,825,0},{5675,823,0},{5682,825,0},{5693,837,0},{5710,858,0}, {5708,875,0},{5710,883,0},{5715,902,0},{5713,918,0},{5715,940,0},{5723,958,0}, {5745,977,0},{5757,995,0},{5758,1012,0},{5760,1027,0},{5772,1048,0},{5773,1055,0}, {5772,1063,0},{5765,1047,0},{5758,1042,0},{5752,1043,0},{5747,1050,0},{5743,1055,0}, {5737,1052,0},{5722,1053,0},{5713,1043,0},{5698,1033,0},{5698,1025,0},{5698,1020,0}, {5708,1002,0},{5708,998,0},{5705,995,0},{5707,998,0},{5705,1002,0},{5698,1017,0}, {5697,1028,0},{5682,1025,0},{5670,1033,0},{5668,1030,0},{5670,1025,0},{5670,1015,0}, {5668,1018,0},{5668,1025,0},{5665,1033,0},{5662,1035,0},{5655,1022,0},{5650,1022,0}, {5647,1018,0},{5647,1023,0},{5655,1023,0},{5658,1032,0},{5653,1038,0},{5650,1047,0}, {5653,1077,0},{5652,1083,0},{5643,1095,0},{5638,1090,0},{5633,1090,0},{5620,1072,0}, {5613,1070,0},{5613,1068,0},{5617,1063,0},{5620,1067,0},{5622,1062,0},{5622,1057,0}, {5617,1052,0},{5612,1055,0},{5610,1053,0},{5610,1050,0},{5613,1047,0},{5613,1050,0}, {5617,1050,0},{5615,1038,0},{5620,1033,0},{5622,1040,0},{5620,1043,0},{5623,1043,0}, {5627,1048,0},{5628,1040,0},{5627,1037,0},{5625,1033,0},{5617,1023,0},{5610,1023,0}, {5605,1027,0},{5602,1023,0},{5602,1028,0},{5598,1025,0},{5592,1025,0},{5588,1018,0}, {5583,1018,0},{5583,1015,0},{5587,1013,0},{5588,1010,0},{5587,998,0},{5585,995,0}, {5585,987,0},{5583,990,0},{5582,1005,0},{5575,1002,0},{5575,1007,0},{5573,1000,0}, {5570,1002,0},{5567,982,0},{5568,973,0},{5572,967,0},{5570,955,0},{5570,957,0}, {5570,963,0},{5565,972,0},{5562,975,0},{5562,985,0},{5557,975,0},{5555,972,0}, {5553,970,0},{5552,962,0},{5552,957,0},{5550,955,0},{5550,950,0},{5548,952,0}, {5548,962,0},{5547,967,0},{5545,965,0},{5543,960,0},{5542,958,0},{5540,962,0}, {5537,960,0},{5535,962,0},{5532,962,0},{5530,963,0},{5528,962,0},{5523,970,0}, {5517,962,0},{5518,958,0},{5515,948,0},{5513,952,0},{5513,947,0},{5512,947,0}, {5510,950,0},{5507,952,0},{5503,943,0},{5503,953,0},{5505,957,0},{5503,958,0}, {5500,962,0},{5498,972,0},{5488,977,0},{5488,970,0},{5487,975,0},{5483,973,0}, {5485,968,0},{5485,962,0},{5488,963,0},{5490,960,0},{5492,965,0},{5493,962,0}, {5492,958,0},{5488,955,0},{5487,950,0},{5482,945,0},{5395,1090,128},{5398,1087,0}, {5400,1078,0},{5405,1075,0},{5410,1080,0},{5410,1088,0},{5420,1110,0},{5435,1107,0}, {5437,1112,0},{5438,1113,0},{5437,1105,0},{5438,1093,0},{5430,1077,0},{5432,1068,0}, {5437,1062,0},{5443,1033,0},{5442,1028,0},{5442,1023,0},{5433,1018,0},{5432,1015,0}, {5437,1013,0},{5440,1020,0},{5443,1017,0},{5447,1020,0},{5448,1012,0},{5445,987,0}, {5448,985,0},{5452,998,0},{5455,1003,0},{5467,1003,0},{5467,993,0},{5470,998,0}, {5470,1002,0},{5477,997,0},{5480,990,0},{5477,990,0},{5475,987,0},{5477,982,0}, {5480,972,0},{5482,958,0},{5487,958,0},{5483,955,0},{5483,952,0},{5480,945,0}, {5483,945,0},{5373,1427,128},{5377,1423,0},{5373,1418,0},{5373,1408,0}, {5377,1397,0},{5383,1385,0},{5385,1382,0},{5388,1382,0},{5392,1392,0},{5403,1375,0}, {5405,1378,0},{5410,1380,0},{5415,1370,0},{5417,1372,0},{5413,1363,0},{5412,1348,0}, {5408,1350,0},{5410,1345,0},{5415,1342,0},{5415,1338,0},{5417,1340,0},{5417,1332,0}, {5418,1335,0},{5420,1330,0},{5423,1328,0},{5423,1322,0},{5427,1318,0},{5425,1315,0}, {5427,1317,0},{5428,1312,0},{5433,1307,0},{5437,1310,0},{5440,1303,0},{5443,1303,0}, {5440,1290,0},{5437,1288,0},{5435,1282,0},{5438,1278,0},{5437,1277,0},{5437,1273,0}, {5440,1272,0},{5437,1268,0},{5442,1272,0},{5437,1260,0},{5438,1257,0},{5435,1255,0}, {5433,1248,0},{5430,1248,0},{5428,1242,0},{5427,1242,0},{5425,1245,0},{5425,1238,0}, {5430,1237,0},{5440,1247,0},{5437,1253,0},{5438,1255,0},{5438,1260,0},{5440,1258,0}, {5442,1263,0},{5442,1267,0},{5443,1270,0},{5442,1280,0},{5442,1292,0},{5445,1290,0}, {5445,1265,0},{5445,1255,0},{5448,1253,0},{5430,1235,0},{5425,1220,0},{5418,1210,0}, {5417,1213,0},{5415,1210,0},{5410,1212,0},{5412,1208,0},{5418,1208,0},{5415,1182,0}, {5415,1168,0},{5410,1162,0},{5410,1163,0},{5403,1158,0},{5403,1152,0},{5402,1153,0}, {5397,1147,0},{5393,1148,0},{5390,1145,0},{5395,1133,0},{5393,1130,0},{5393,1125,0}, {5398,1125,0},{5398,1120,0},{5402,1118,0},{5400,1105,0},{5395,1090,0},{5387,1422,128}, {5380,1435,0},{5382,1433,0},{5385,1442,0},{5387,1442,0},{5388,1437,0},{5390,1438,0}, {5390,1443,0},{5387,1443,0},{5385,1457,0},{5380,1458,0},{5385,1463,0},{5377,1462,0}, {5375,1457,0},{5370,1453,0},{5367,1457,0},{5365,1462,0},{5360,1460,0},{5367,1453,0}, {5368,1442,0},{5373,1433,0},{5373,1428,0},{5370,1430,0},{5370,1422,0},{5375,1427,0}, {5393,1423,128},{5407,1400,0},{5410,1388,0},{5417,1382,0},{5417,1377,0}, {5415,1375,0},{5410,1382,0},{5402,1378,0},{5402,1380,0},{5405,1387,0},{5403,1388,0}, {5400,1385,0},{5402,1390,0},{5407,1392,0},{5405,1398,0},{5398,1405,0},{5393,1405,0}, {5395,1402,0},{5397,1402,0},{5397,1398,0},{5393,1397,0},{5398,1397,0},{5398,1390,0}, {5392,1393,0},{5388,1390,0},{5387,1383,0},{5385,1382,0},{5383,1390,0},{5385,1400,0}, {5387,1403,0},{5387,1408,0},{5387,1423,0},{5447,1962,128},{5440,1952,0}, {5438,1942,0},{5435,1905,0},{5435,1888,0},{5438,1872,0},{5442,1867,0},{5443,1860,0}, {5445,1857,0},{5455,1857,0},{5463,1852,0},{5463,1850,0},{5463,1847,0},{5470,1848,0}, {5473,1840,0},{5478,1843,0},{5470,1870,0},{5460,1882,0},{5463,1883,0},{5470,1870,0}, {5483,1833,0},{5483,1792,0},{5477,1758,0},{5473,1727,0},{5467,1707,0},{5460,1692,0}, {5455,1655,0},{5450,1645,0},{5450,1648,0},{5447,1647,0},{5447,1643,0},{5448,1643,0}, {5437,1628,0},{5438,1632,0},{5435,1633,0},{5432,1625,0},{5432,1623,0},{5435,1627,0}, {5428,1613,0},{5430,1620,0},{5428,1622,0},{5427,1622,0},{5427,1617,0},{5427,1607,0}, {5428,1613,0},{5427,1605,0},{5425,1585,0},{5420,1565,0},{5415,1532,0},{5405,1493,0}, {5403,1475,0},{5397,1452,0},{5392,1442,0},{5393,1423,0},{5948,2803,128}, {5942,2795,0},{5940,2785,0},{5945,2743,0},{5945,2697,0},{5948,2682,0},{5955,2665,0}, {5953,2650,0},{5955,2643,0},{5958,2625,0},{5958,2610,0},{5962,2605,0},{5963,2598,0}, {5958,2597,0},{5963,2588,0},{5958,2585,0},{5957,2582,0},{5958,2578,0},{5963,2577,0}, {5967,2570,0},{5965,2567,0},{5958,2572,0},{5957,2567,0},{5957,2563,0},{5967,2548,0}, {5957,2548,0},{5953,2555,0},{5952,2552,0},{5953,2542,0},{5948,2540,0},{5953,2512,0}, {5953,2510,0},{5950,2510,0},{5952,2503,0},{5950,2492,0},{5955,2487,0},{5957,2478,0}, {5952,2478,0},{5948,2482,0},{5945,2477,0},{5945,2473,0},{5950,2468,0},{5947,2467,0}, {5947,2462,0},{5945,2467,0},{5943,2463,0},{5947,2457,0},{5943,2450,0},{5947,2440,0}, {5947,2433,0},{5943,2432,0},{5942,2430,0},{5940,2425,0},{5940,2417,0},{5937,2422,0}, {5935,2422,0},{5940,2408,0},{5938,2403,0},{5935,2402,0},{5930,2410,0},{5927,2408,0}, {5928,2403,0},{5927,2390,0},{5928,2383,0},{5927,2372,0},{5923,2375,0},{5923,2373,0}, {5925,2365,0},{5922,2357,0},{5922,2347,0},{5918,2347,0},{5913,2352,0},{5907,2352,0}, {5908,2350,0},{5907,2343,0},{5902,2343,0},{5902,2340,0},{5898,2345,0},{5897,2355,0}, {5900,2357,0},{5902,2362,0},{5905,2357,0},{5902,2362,0},{5897,2363,0},{5895,2358,0}, {5893,2343,0},{5890,2342,0},{5885,2348,0},{5882,2353,0},{5880,2347,0},{5877,2343,0}, {5878,2360,0},{5878,2375,0},{5880,2378,0},{5877,2388,0},{5878,2378,0},{5877,2378,0}, {5873,2380,0},{5872,2378,0},{5875,2368,0},{5873,2360,0},{5875,2353,0},{5873,2352,0}, {5870,2355,0},{5870,2350,0},{5860,2352,0},{5857,2350,0},{5858,2355,0},{5857,2357,0}, {5852,2363,0},{5853,2368,0},{5843,2367,0},{5840,2372,0},{5833,2373,0},{5835,2383,0}, {5833,2385,0},{5832,2388,0},{5832,2397,0},{5823,2412,0},{5827,2415,0},{5828,2425,0}, {5838,2433,0},{5838,2447,0},{5832,2457,0},{5828,2455,0},{5825,2447,0},{5807,2445,0}, {5797,2437,0},{5782,2428,0},{5773,2430,0},{5768,2435,0},{5762,2438,0},{5753,2437,0}, {5733,2442,0},{5723,2440,0},{5712,2422,0},{5707,2403,0},{5702,2398,0},{5697,2378,0}, {5697,2368,0},{5698,2358,0},{5703,2350,0},{5705,2335,0},{5710,2327,0},{5717,2323,0}, {5723,2320,0},{5737,2313,0},{5742,2295,0},{5750,2285,0},{5758,2263,0},{5768,2258,0}, {5775,2260,0},{5773,2247,0},{5760,2200,0},{5760,2187,0},{5757,2172,0},{5728,2142,0}, {5720,2142,0},{5707,2142,0},{5698,2137,0},{5692,2127,0},{5683,2105,0},{5668,2105,0}, {5653,2098,0},{5650,2107,0},{5640,2108,0},{5638,2107,0},{5640,2103,0},{5645,2105,0}, {5652,2102,0},{5650,2100,0},{5643,2100,0},{5637,2097,0},{5630,2098,0},{5623,2098,0}, {5613,2103,0},{5605,2107,0},{5592,2105,0},{5578,2107,0},{5573,2108,0},{5568,2115,0}, {5547,2125,0},{5542,2125,0},{5533,2118,0},{5537,2125,0},{5533,2127,0},{5528,2128,0}, {5528,2127,0},{5520,2127,0},{5520,2118,0},{5495,2125,0},{5490,2108,0},{5490,2107,0}, {5490,2098,0},{5490,2087,0},{5493,2078,0},{5493,2057,0},{5497,2053,0},{5515,2083,0}, {5523,2090,0},{5527,2098,0},{5528,2098,0},{5533,2105,0},{5537,2105,0},{5542,2110,0}, {5543,2108,0},{5557,2113,0},{5568,2113,0},{5572,2108,0},{5553,2110,0},{5542,2105,0}, {5528,2093,0},{5517,2082,0},{5503,2063,0},{5495,2042,0},{5495,2030,0},{5497,2027,0}, {5495,2003,0},{5495,1997,0},{5487,1992,0},{5477,1997,0},{5472,1993,0},{5470,1990,0}, {5467,1990,0},{5455,1977,0},{5447,1963,0},{6057,2787,128},{6052,2790,0}, {6053,2792,0},{6052,2805,0},{6053,2807,0},{6053,2815,0},{6055,2815,0},{6053,2822,0}, {6057,2823,0},{6060,2828,0},{6060,2833,0},{6062,2832,0},{6062,2838,0},{6067,2840,0}, {6068,2858,0},{6073,2867,0},{6072,2873,0},{6067,2873,0},{6067,2865,0},{6062,2868,0}, {6062,2863,0},{6063,2858,0},{6060,2855,0},{6057,2860,0},{6060,2862,0},{6058,2865,0}, {6057,2867,0},{6047,2872,0},{6045,2868,0},{6052,2853,0},{6055,2850,0},{6057,2843,0}, {6043,2858,0},{6038,2860,0},{6033,2878,0},{6037,2882,0},{6032,2883,0},{6025,2897,0}, {6018,2902,0},{6017,2917,0},{6017,2942,0},{6020,2955,0},{6018,2977,0},{6013,2988,0}, {6008,2990,0},{6002,2995,0},{5998,3022,0},{5997,3025,0},{5995,3020,0},{5988,3022,0}, {5987,3015,0},{5987,3003,0},{5993,2977,0},{6000,2920,0},{5998,2910,0},{5997,2905,0}, {5993,2903,0},{5993,2898,0},{5990,2903,0},{5983,2898,0},{5982,2888,0},{5978,2883,0}, {5980,2878,0},{5978,2873,0},{5978,2870,0},{5982,2867,0},{5983,2858,0},{5987,2853,0}, {5985,2850,0},{5982,2843,0},{5970,2842,0},{5967,2837,0},{5968,2822,0},{5975,2818,0}, {5980,2808,0},{5977,2802,0},{5970,2800,0},{5960,2807,0},{5955,2807,0},{5948,2803,0}, {6582,2417,128},{6578,2418,0},{6577,2423,0},{6578,2425,0},{6582,2423,0}, {6577,2442,0},{6580,2445,0},{6580,2453,0},{6582,2455,0},{6588,2462,0},{6592,2470,0}, {6588,2470,0},{6588,2463,0},{6582,2458,0},{6578,2455,0},{6573,2455,0},{6570,2460,0}, {6568,2467,0},{6563,2467,0},{6563,2473,0},{6565,2478,0},{6565,2490,0},{6562,2493,0}, {6562,2507,0},{6555,2512,0},{6555,2522,0},{6552,2532,0},{6548,2535,0},{6542,2535,0}, {6537,2530,0},{6538,2527,0},{6533,2533,0},{6525,2528,0},{6525,2532,0},{6523,2530,0}, {6522,2533,0},{6522,2528,0},{6518,2527,0},{6515,2522,0},{6512,2522,0},{6508,2537,0}, {6495,2545,0},{6495,2542,0},{6495,2538,0},{6498,2532,0},{6498,2522,0},{6497,2518,0}, {6490,2530,0},{6490,2537,0},{6483,2537,0},{6482,2532,0},{6482,2523,0},{6483,2527,0}, {6483,2520,0},{6488,2517,0},{6488,2512,0},{6490,2512,0},{6492,2508,0},{6487,2492,0}, {6485,2473,0},{6483,2473,0},{6482,2467,0},{6478,2468,0},{6480,2458,0},{6480,2455,0}, {6477,2458,0},{6477,2453,0},{6472,2453,0},{6468,2443,0},{6463,2438,0},{6452,2435,0}, {6452,2428,0},{6448,2427,0},{6448,2422,0},{6445,2422,0},{6443,2410,0},{6440,2408,0}, {6438,2400,0},{6433,2398,0},{6428,2392,0},{6425,2395,0},{6427,2388,0},{6425,2385,0}, {6422,2378,0},{6420,2372,0},{6417,2372,0},{6413,2365,0},{6410,2362,0},{6410,2357,0}, {6405,2362,0},{6402,2362,0},{6403,2350,0},{6403,2347,0},{6405,2342,0},{6405,2338,0}, {6403,2338,0},{6395,2337,0},{6392,2342,0},{6390,2338,0},{6388,2315,0},{6387,2317,0}, {6385,2313,0},{6385,2307,0},{6382,2298,0},{6375,2300,0},{6380,2295,0},{6380,2290,0}, {6375,2293,0},{6373,2287,0},{6372,2290,0},{6372,2283,0},{6370,2290,0},{6368,2285,0}, {6363,2282,0},{6363,2278,0},{6363,2273,0},{6370,2268,0},{6370,2265,0},{6368,2263,0}, {6370,2258,0},{6365,2258,0},{6365,2253,0},{6362,2250,0},{6357,2255,0},{6357,2250,0}, {6355,2245,0},{6345,2240,0},{6348,2238,0},{6350,2233,0},{6352,2233,0},{6352,2228,0}, {6348,2227,0},{6342,2240,0},{6342,2233,0},{6347,2225,0},{6345,2218,0},{6343,2218,0}, {6335,2235,0},{6332,2237,0},{6327,2233,0},{6330,2228,0},{6328,2225,0},{6323,2222,0}, {6325,2218,0},{6322,2217,0},{6323,2213,0},{6322,2208,0},{6323,2205,0},{6323,2203,0}, {6320,2200,0},{6318,2197,0},{6313,2197,0},{6317,2188,0},{6325,2188,0},{6323,2180,0}, {6325,2175,0},{6322,2170,0},{6320,2175,0},{6322,2167,0},{6320,2165,0},{6320,2163,0}, {6323,2155,0},{6322,2150,0},{6318,2150,0},{6317,2155,0},{6317,2150,0},{6312,2152,0}, {6312,2157,0},{6308,2157,0},{6302,2168,0},{6302,2160,0},{6307,2150,0},{6303,2148,0}, {6305,2143,0},{6303,2143,0},{6295,2147,0},{6293,2142,0},{6287,2137,0},{6287,2125,0}, {6287,2123,0},{6280,2120,0},{6278,2117,0},{6278,2113,0},{6277,2110,0},{6273,2113,0}, {6272,2117,0},{6268,2113,0},{6267,2108,0},{6260,2107,0},{6262,2110,0},{6260,2112,0}, {6260,2117,0},{6258,2122,0},{6255,2113,0},{6252,2115,0},{6250,2112,0},{6245,2112,0}, {6245,2115,0},{6240,2113,0},{6242,2120,0},{6240,2118,0},{6233,2122,0},{6237,2122,0}, {6240,2127,0},{6237,2125,0},{6233,2128,0},{6235,2133,0},{6223,2132,0},{6227,2135,0}, {6223,2135,0},{6220,2138,0},{6218,2138,0},{6217,2133,0},{6210,2132,0},{6212,2128,0}, {6198,2123,0},{6198,2128,0},{6195,2128,0},{6193,2132,0},{6193,2138,0},{6190,2142,0}, {6188,2140,0},{6180,2148,0},{6175,2147,0},{6170,2158,0},{6172,2153,0},{6170,2152,0}, {6165,2153,0},{6152,2172,0},{6157,2150,0},{6155,2145,0},{6152,2150,0},{6152,2152,0}, {6152,2157,0},{6148,2158,0},{6148,2142,0},{6145,2152,0},{6142,2157,0},{6140,2145,0}, {6137,2153,0},{6132,2155,0},{6128,2155,0},{6127,2150,0},{6127,2152,0},{6125,2148,0}, {6123,2153,0},{6120,2157,0},{6120,2150,0},{6117,2150,0},{6117,2145,0},{6115,2145,0}, {6115,2147,0},{6113,2143,0},{6110,2147,0},{6108,2145,0},{6105,2148,0},{6107,2138,0}, {6105,2137,0},{6105,2140,0},{6103,2140,0},{6105,2130,0},{6090,2142,0},{6092,2138,0}, {6090,2135,0},{6088,2137,0},{6087,2143,0},{6087,2132,0},{6085,2135,0},{6082,2132,0}, {6082,2137,0},{6078,2137,0},{6077,2142,0},{6075,2138,0},{6073,2147,0},{6072,2142,0}, {6068,2143,0},{6068,2135,0},{6065,2137,0},{6060,2147,0},{6060,2142,0},{6058,2142,0}, {6057,2145,0},{6057,2150,0},{6057,2158,0},{6057,2152,0},{6052,2158,0},{6048,2157,0}, {6048,2158,0},{6050,2165,0},{6057,2167,0},{6058,2173,0},{6062,2183,0},{6060,2183,0}, {6058,2185,0},{6058,2182,0},{6057,2180,0},{6048,2178,0},{6048,2187,0},{6052,2183,0}, {6052,2195,0},{6048,2195,0},{6048,2198,0},{6047,2198,0},{6043,2205,0},{6047,2210,0}, {6043,2212,0},{6043,2218,0},{6037,2228,0},{6040,2247,0},{6040,2248,0},{6037,2247,0}, {6037,2258,0},{6040,2263,0},{6025,2245,0},{6025,2253,0},{6028,2263,0},{6027,2263,0}, {6025,2257,0},{6023,2258,0},{6020,2253,0},{6025,2277,0},{6030,2290,0},{6030,2300,0}, {6035,2305,0},{6035,2308,0},{6032,2303,0},{6028,2302,0},{6022,2290,0},{6018,2287,0}, {6017,2288,0},{6015,2288,0},{6012,2297,0},{6010,2297,0},{6013,2302,0},{6012,2305,0}, {6007,2298,0},{6003,2305,0},{6005,2318,0},{6003,2327,0},{6000,2322,0},{5997,2312,0}, {5992,2310,0},{5995,2313,0},{5993,2317,0},{5995,2318,0},{5993,2322,0},{6002,2330,0}, {6002,2332,0},{5992,2325,0},{5988,2317,0},{5985,2302,0},{5980,2288,0},{5982,2317,0}, {5983,2320,0},{5987,2320,0},{5993,2335,0},{6000,2345,0},{6007,2350,0},{6007,2353,0}, {6003,2355,0},{6002,2348,0},{5995,2343,0},{5997,2358,0},{5995,2362,0},{5997,2365,0}, {5997,2378,0},{5995,2380,0},{6000,2388,0},{6000,2395,0},{6003,2400,0},{6000,2400,0}, {6002,2408,0},{6003,2410,0},{6002,2418,0},{6005,2417,0},{6003,2425,0},{6005,2428,0}, {6007,2428,0},{6007,2433,0},{6007,2437,0},{6000,2432,0},{6002,2437,0},{6000,2438,0}, {6005,2445,0},{5998,2442,0},{5998,2447,0},{6007,2458,0},{6007,2457,0},{6010,2462,0}, {6008,2455,0},{6012,2460,0},{6013,2455,0},{6015,2455,0},{6013,2463,0},{6010,2467,0}, {6013,2468,0},{6013,2478,0},{6017,2482,0},{6018,2480,0},{6018,2482,0},{6017,2488,0}, {6015,2483,0},{6013,2485,0},{6013,2497,0},{6017,2497,0},{6018,2495,0},{6020,2498,0}, {6018,2502,0},{6015,2500,0},{6015,2507,0},{6018,2505,0},{6017,2510,0},{6018,2518,0}, {6020,2517,0},{6020,2520,0},{6022,2515,0},{6022,2520,0},{6025,2520,0},{6023,2528,0}, {6025,2532,0},{6027,2532,0},{6027,2537,0},{6023,2537,0},{6023,2550,0},{6028,2555,0}, {6032,2553,0},{6033,2562,0},{6037,2567,0},{6033,2570,0},{6033,2565,0},{6032,2568,0}, {6032,2565,0},{6030,2565,0},{6025,2572,0},{6027,2585,0},{6028,2575,0},{6032,2575,0}, {6028,2582,0},{6028,2587,0},{6025,2588,0},{6023,2592,0},{6032,2588,0},{6032,2590,0}, {6035,2592,0},{6040,2583,0},{6035,2595,0},{6037,2600,0},{6035,2600,0},{6032,2605,0}, {6030,2605,0},{6030,2608,0},{6033,2612,0},{6038,2600,0},{6042,2605,0},{6048,2592,0}, {6047,2597,0},{6040,2615,0},{6042,2618,0},{6040,2627,0},{6043,2623,0},{6045,2625,0}, {6037,2633,0},{6040,2635,0},{6038,2638,0},{6042,2638,0},{6038,2642,0},{6042,2643,0}, {6043,2648,0},{6048,2645,0},{6050,2647,0},{6060,2657,0},{6055,2657,0},{6047,2648,0}, {6045,2650,0},{6042,2657,0},{6045,2658,0},{6045,2665,0},{6042,2670,0},{6043,2675,0}, {6047,2675,0},{6048,2680,0},{6045,2682,0},{6045,2687,0},{6048,2690,0},{6045,2697,0}, {6048,2693,0},{6048,2700,0},{6053,2703,0},{6052,2708,0},{6053,2712,0},{6052,2713,0}, {6052,2718,0},{6053,2720,0},{6057,2718,0},{6058,2722,0},{6055,2722,0},{6052,2732,0}, {6052,2723,0},{6050,2723,0},{6050,2737,0},{6047,2745,0},{6045,2750,0},{6047,2748,0}, {6050,2748,0},{6047,2763,0},{6050,2760,0},{6052,2767,0},{6052,2770,0},{6050,2768,0}, {6048,2763,0},{6048,2772,0},{6050,2775,0},{6050,2773,0},{6052,2775,0},{6057,2775,0}, {6057,2778,0},{6052,2780,0},{6057,2787,0},{5898,1143,128},{5910,1132,0}, {5907,1118,0},{5900,1112,0},{5898,1118,0},{5895,1110,0},{5892,1120,0},{5887,1120,0}, {5885,1123,0},{5880,1123,0},{5877,1120,0},{5875,1122,0},{5875,1118,0},{5872,1118,0}, {5870,1122,0},{5867,1122,0},{5865,1125,0},{5860,1125,0},{5857,1128,0},{5855,1125,0}, {5850,1123,0},{5847,1128,0},{5845,1125,0},{5842,1125,0},{5840,1120,0},{5833,1122,0}, {5837,1127,0},{5835,1132,0},{5843,1143,0},{5835,1135,0},{5833,1135,0},{5835,1138,0}, {5838,1142,0},{5835,1142,0},{5835,1145,0},{5833,1145,0},{5833,1138,0},{5830,1140,0}, {5832,1145,0},{5827,1140,0},{5828,1148,0},{5833,1153,0},{5842,1157,0},{5847,1155,0}, {5840,1160,0},{5843,1163,0},{5842,1167,0},{5840,1162,0},{5838,1162,0},{5830,1152,0}, {5823,1150,0},{5823,1153,0},{5825,1153,0},{5825,1158,0},{5830,1165,0},{5830,1172,0}, {5833,1172,0},{5833,1188,0},{5830,1180,0},{5822,1185,0},{5822,1188,0},{5818,1187,0}, {5818,1183,0},{5812,1183,0},{5807,1178,0},{5805,1180,0},{5800,1180,0},{5793,1173,0}, {5792,1177,0},{5790,1175,0},{5788,1168,0},{5787,1170,0},{5783,1167,0},{5783,1170,0}, {5778,1173,0},{5778,1182,0},{5773,1172,0},{5770,1170,0},{5770,1175,0},{5772,1175,0}, {5770,1180,0},{5768,1187,0},{5767,1183,0},{5763,1187,0},{5760,1187,0},{5760,1188,0}, {5762,1190,0},{5762,1192,0},{5752,1190,0},{5750,1193,0},{5750,1192,0},{5748,1195,0}, {5747,1192,0},{5738,1190,0},{5738,1195,0},{5735,1193,0},{5737,1197,0},{5735,1198,0}, {5743,1202,0},{5745,1203,0},{5743,1210,0},{5740,1210,0},{5740,1207,0},{5738,1210,0}, {5733,1205,0},{5733,1212,0},{5732,1215,0},{5728,1215,0},{5725,1210,0},{5723,1215,0}, {5723,1210,0},{5722,1213,0},{5722,1220,0},{5718,1215,0},{5718,1220,0},{5713,1222,0}, {5712,1223,0},{5708,1222,0},{5707,1223,0},{5702,1233,0},{5692,1235,0},{5688,1248,0}, {5685,1253,0},{5683,1257,0},{5675,1262,0},{5672,1267,0},{5668,1267,0},{5667,1270,0}, {5665,1272,0},{5665,1278,0},{5665,1282,0},{5663,1288,0},{5653,1293,0},{5645,1290,0}, {5643,1285,0},{5647,1273,0},{5645,1267,0},{5642,1262,0},{5638,1263,0},{5637,1273,0}, {5630,1277,0},{5627,1283,0},{5623,1282,0},{5622,1272,0},{5623,1267,0},{5627,1263,0}, {5630,1245,0},{5623,1253,0},{5613,1257,0},{5603,1270,0},{5600,1270,0},{5587,1282,0}, {5585,1288,0},{5582,1293,0},{5578,1293,0},{5575,1292,0},{5573,1297,0},{5572,1297,0}, {5572,1302,0},{5567,1307,0},{5562,1303,0},{5558,1293,0},{5557,1292,0},{5543,1298,0}, {5545,1297,0},{5543,1295,0},{5542,1293,0},{5543,1287,0},{5540,1283,0},{5538,1283,0}, {5538,1288,0},{5538,1293,0},{5540,1295,0},{5538,1302,0},{5535,1307,0},{5535,1317,0}, {5533,1330,0},{5533,1338,0},{5538,1352,0},{5537,1358,0},{5542,1365,0},{5542,1385,0}, {5543,1388,0},{5543,1393,0},{5538,1407,0},{5538,1420,0},{5553,1437,0},{5562,1428,0}, {5567,1427,0},{5572,1420,0},{5583,1422,0},{5588,1427,0},{5590,1432,0},{5593,1433,0}, {5600,1445,0},{5603,1448,0},{5605,1457,0},{5603,1457,0},{5605,1460,0},{5603,1460,0}, {5600,1462,0},{5600,1468,0},{5602,1470,0},{5600,1473,0},{5603,1477,0},{5612,1468,0}, {5617,1470,0},{5617,1480,0},{5613,1483,0},{5617,1485,0},{5615,1505,0},{5618,1503,0}, {5618,1507,0},{5615,1512,0},{5617,1515,0},{5615,1523,0},{5618,1530,0},{5617,1532,0}, {5613,1530,0},{5613,1537,0},{5618,1542,0},{5615,1547,0},{5617,1548,0},{5617,1550,0}, {5620,1560,0},{5617,1558,0},{5618,1565,0},{5615,1577,0},{5617,1580,0},{5615,1582,0}, {5613,1582,0},{5610,1578,0},{5608,1585,0},{5620,1595,0},{5620,1600,0},{5625,1605,0}, {5642,1610,0},{5653,1618,0},{5653,1622,0},{5660,1622,0},{5665,1627,0},{5667,1638,0}, {5675,1635,0},{5677,1642,0},{5677,1645,0},{5677,1648,0},{5680,1647,0},{5678,1643,0}, {5680,1640,0},{5687,1645,0},{5692,1643,0},{5695,1647,0},{5698,1643,0},{5702,1643,0}, {5702,1647,0},{5705,1645,0},{5705,1652,0},{5707,1653,0},{5705,1653,0},{5705,1658,0}, {5707,1655,0},{5708,1657,0},{5712,1655,0},{5712,1652,0},{5717,1647,0},{5723,1647,0}, {5723,1650,0},{5728,1647,0},{5730,1648,0},{5732,1657,0},{5733,1653,0},{5733,1657,0}, {5738,1655,0},{5738,1663,0},{5740,1663,0},{5742,1667,0},{5742,1663,0},{5745,1663,0}, {5745,1667,0},{5747,1667,0},{5747,1670,0},{5755,1663,0},{5757,1652,0},{5757,1655,0}, {5758,1652,0},{5760,1653,0},{5762,1652,0},{5762,1655,0},{5758,1657,0},{5763,1663,0}, {5765,1658,0},{5765,1663,0},{5767,1663,0},{5770,1657,0},{5768,1665,0},{5768,1672,0}, {5770,1670,0},{5770,1672,0},{5773,1665,0},{5773,1667,0},{5778,1658,0},{5780,1657,0}, {5785,1645,0},{5790,1642,0},{5773,1670,0},{5777,1668,0},{5790,1647,0},{5790,1648,0}, {5792,1648,0},{5788,1657,0},{5790,1658,0},{5793,1658,0},{5795,1652,0},{5798,1650,0}, {5800,1652,0},{5798,1655,0},{5792,1665,0},{5792,1660,0},{5790,1662,0},{5790,1668,0}, {5792,1670,0},{5787,1673,0},{5788,1677,0},{5792,1673,0},{5792,1678,0},{5797,1673,0}, {5797,1672,0},{5798,1668,0},{5798,1662,0},{5798,1667,0},{5802,1663,0},{5805,1665,0}, {5800,1668,0},{5800,1670,0},{5802,1668,0},{5802,1675,0},{5805,1673,0},{5805,1668,0}, {5805,1672,0},{5808,1675,0},{5810,1670,0},{5813,1667,0},{5815,1668,0},{5820,1662,0}, {5820,1663,0},{5818,1665,0},{5812,1677,0},{5813,1680,0},{5817,1678,0},{5818,1683,0}, {5820,1682,0},{5823,1682,0},{5823,1678,0},{5825,1680,0},{5827,1670,0},{5828,1675,0}, {5832,1680,0},{5832,1673,0},{5828,1672,0},{5832,1670,0},{5835,1663,0},{5833,1673,0}, {5835,1677,0},{5837,1677,0},{5835,1675,0},{5837,1670,0},{5840,1672,0},{5847,1642,0}, {5848,1650,0},{5842,1675,0},{5845,1683,0},{5848,1685,0},{5848,1693,0},{5852,1683,0}, {5853,1685,0},{5855,1682,0},{5855,1683,0},{5858,1678,0},{5860,1678,0},{5860,1673,0}, {5860,1675,0},{5860,1668,0},{5863,1657,0},{5862,1652,0},{5863,1643,0},{5858,1640,0}, {5863,1633,0},{5862,1628,0},{5863,1618,0},{5863,1627,0},{5867,1625,0},{5862,1690,0}, {5863,1695,0},{5863,1703,0},{5867,1702,0},{5867,1695,0},{5867,1705,0},{5865,1708,0}, {5868,1712,0},{5870,1715,0},{5870,1707,0},{5873,1708,0},{5875,1703,0},{5877,1708,0}, {5875,1712,0},{5873,1715,0},{5872,1725,0},{5875,1730,0},{5875,1737,0},{5878,1738,0}, {5880,1733,0},{5880,1748,0},{5882,1745,0},{5887,1747,0},{5890,1745,0},{5885,1758,0}, {5887,1758,0},{5890,1753,0},{5890,1763,0},{5892,1763,0},{5892,1760,0},{5893,1762,0}, {5895,1758,0},{5897,1762,0},{5908,1762,0},{5912,1767,0},{5917,1767,0},{5912,1768,0}, {5908,1767,0},{5905,1770,0},{5905,1772,0},{5912,1773,0},{5913,1777,0},{5912,1777,0}, {5892,1775,0},{5892,1778,0},{5888,1778,0},{5890,1780,0},{5897,1778,0},{5892,1782,0}, {5892,1787,0},{5887,1790,0},{5892,1790,0},{5892,1793,0},{5893,1798,0},{5897,1797,0}, {5902,1802,0},{5903,1800,0},{5903,1805,0},{5905,1805,0},{5907,1812,0},{5908,1813,0}, {5912,1822,0},{5912,1825,0},{5910,1825,0},{5907,1820,0},{5910,1832,0},{5912,1828,0}, {5913,1830,0},{5913,1842,0},{5917,1843,0},{5917,1838,0},{5918,1840,0},{5918,1837,0}, {5920,1838,0},{5922,1832,0},{5923,1832,0},{5920,1842,0},{5927,1828,0},{5927,1827,0}, {5928,1832,0},{5932,1828,0},{5933,1832,0},{5933,1835,0},{5932,1833,0},{5930,1835,0}, {5930,1852,0},{5932,1865,0},{5935,1863,0},{5937,1855,0},{5937,1862,0},{5943,1848,0}, {5943,1843,0},{5940,1850,0},{5940,1845,0},{5933,1847,0},{5933,1843,0},{5935,1843,0}, {5937,1835,0},{5937,1827,0},{5932,1822,0},{5933,1820,0},{5932,1815,0},{5933,1797,0}, {5928,1788,0},{5922,1787,0},{5927,1787,0},{5927,1775,0},{5925,1778,0},{5923,1773,0}, {5925,1772,0},{5925,1773,0},{5927,1770,0},{5928,1763,0},{5928,1758,0},{5922,1760,0}, {5927,1755,0},{5932,1737,0},{5928,1737,0},{5925,1740,0},{5925,1722,0},{5927,1728,0}, {5932,1725,0},{5932,1730,0},{5935,1732,0},{5937,1717,0},{5937,1703,0},{5945,1692,0}, {5948,1683,0},{5947,1682,0},{5947,1670,0},{5940,1688,0},{5938,1688,0},{5938,1687,0}, {5938,1682,0},{5947,1667,0},{5945,1660,0},{5947,1645,0},{5943,1618,0},{5945,1608,0}, {5950,1602,0},{5947,1618,0},{5948,1623,0},{5948,1622,0},{5950,1623,0},{5950,1627,0}, {5947,1628,0},{5945,1632,0},{5948,1633,0},{5948,1635,0},{5952,1638,0},{5950,1642,0}, {5950,1648,0},{5952,1648,0},{5952,1645,0},{5953,1653,0},{5955,1655,0},{5960,1650,0}, {5962,1655,0},{5958,1662,0},{5953,1668,0},{5952,1673,0},{5958,1682,0},{5958,1690,0}, {5955,1695,0},{5953,1707,0},{5958,1702,0},{5960,1707,0},{5955,1712,0},{5955,1722,0}, {5947,1735,0},{5947,1737,0},{5950,1735,0},{5947,1740,0},{5948,1742,0},{5952,1738,0}, {5955,1740,0},{5962,1733,0},{5965,1738,0},{5962,1737,0},{5957,1743,0},{5953,1750,0}, {5955,1755,0},{5952,1752,0},{5948,1755,0},{5950,1758,0},{5948,1767,0},{5945,1768,0}, {5945,1772,0},{5948,1775,0},{5953,1778,0},{5958,1775,0},{5965,1757,0},{5970,1762,0}, {5973,1762,0},{5973,1753,0},{5972,1755,0},{5970,1752,0},{5965,1750,0},{5957,1753,0}, {5967,1748,0},{5968,1745,0},{5973,1750,0},{5975,1737,0},{5975,1753,0},{5980,1760,0}, {5978,1763,0},{5975,1763,0},{5973,1768,0},{5972,1765,0},{5967,1765,0},{5965,1760,0}, {5962,1772,0},{5965,1772,0},{5970,1772,0},{5965,1775,0},{5962,1775,0},{5958,1782,0}, {5957,1782,0},{5953,1785,0},{5950,1778,0},{5942,1775,0},{5937,1782,0},{5933,1793,0}, {5935,1798,0},{5933,1813,0},{5937,1808,0},{5940,1802,0},{5938,1805,0},{5940,1810,0}, {5943,1808,0},{5945,1812,0},{5943,1815,0},{5945,1818,0},{5942,1822,0},{5942,1817,0}, {5940,1817,0},{5938,1832,0},{5940,1833,0},{5942,1828,0},{5943,1828,0},{5945,1825,0}, {5945,1830,0},{5947,1827,0},{5947,1840,0},{5953,1847,0},{5958,1867,0},{5962,1868,0}, {5963,1865,0},{5962,1870,0},{5963,1873,0},{5965,1873,0},{5965,1870,0},{5967,1872,0}, {5967,1875,0},{5968,1875,0},{5972,1887,0},{5975,1892,0},{5973,1893,0},{5972,1898,0}, {5972,1903,0},{5973,1908,0},{5977,1907,0},{5978,1897,0},{5977,1873,0},{5978,1873,0}, {5980,1887,0},{5985,1893,0},{5993,1888,0},{5982,1905,0},{5988,1907,0},{5988,1903,0}, {5988,1902,0},{5992,1900,0},{5992,1893,0},{5993,1890,0},{6007,1882,0},{6012,1882,0}, {6010,1877,0},{6010,1875,0},{6000,1880,0},{6005,1875,0},{6012,1873,0},{6012,1868,0}, {6015,1863,0},{6013,1858,0},{6012,1858,0},{6007,1858,0},{6018,1855,0},{6015,1852,0}, {6018,1842,0},{6023,1840,0},{6020,1843,0},{6022,1845,0},{6025,1837,0},{6030,1832,0}, {6023,1847,0},{6022,1855,0},{6023,1860,0},{6028,1843,0},{6028,1848,0},{6035,1843,0}, {6035,1832,0},{6035,1827,0},{6033,1823,0},{6035,1820,0},{6038,1827,0},{6038,1817,0}, {6048,1803,0},{6050,1797,0},{6055,1800,0},{6060,1797,0},{6060,1787,0},{6057,1777,0}, {6053,1773,0},{6048,1773,0},{6052,1763,0},{6058,1760,0},{6060,1765,0},{6063,1762,0}, {6065,1755,0},{6063,1740,0},{6062,1733,0},{6063,1732,0},{6065,1737,0},{6068,1728,0}, {6070,1727,0},{6070,1718,0},{6073,1730,0},{6077,1733,0},{6078,1728,0},{6080,1728,0}, {6082,1725,0},{6083,1728,0},{6090,1723,0},{6090,1720,0},{6093,1720,0},{6095,1715,0}, {6100,1717,0},{6102,1725,0},{6102,1717,0},{6103,1718,0},{6105,1717,0},{6110,1720,0}, {6112,1715,0},{6113,1718,0},{6115,1717,0},{6117,1718,0},{6118,1718,0},{6122,1715,0}, {6123,1722,0},{6132,1710,0},{6132,1713,0},{6128,1720,0},{6128,1725,0},{6130,1717,0}, {6132,1715,0},{6130,1723,0},{6132,1727,0},{6133,1720,0},{6140,1710,0},{6143,1713,0}, {6142,1717,0},{6142,1722,0},{6143,1722,0},{6145,1717,0},{6148,1718,0},{6152,1712,0}, {6152,1717,0},{6155,1708,0},{6155,1718,0},{6158,1705,0},{6160,1715,0},{6162,1710,0}, {6160,1720,0},{6160,1725,0},{6163,1710,0},{6165,1713,0},{6163,1718,0},{6165,1717,0}, {6168,1727,0},{6170,1717,0},{6172,1715,0},{6172,1727,0},{6170,1730,0},{6168,1730,0}, {6167,1733,0},{6172,1733,0},{6168,1738,0},{6163,1743,0},{6163,1750,0},{6170,1752,0}, {6173,1748,0},{6172,1740,0},{6180,1737,0},{6182,1740,0},{6182,1733,0},{6185,1735,0}, {6187,1733,0},{6188,1737,0},{6190,1735,0},{6195,1735,0},{6195,1738,0},{6198,1740,0}, {6200,1747,0},{6203,1743,0},{6205,1747,0},{6207,1745,0},{6208,1748,0},{6223,1752,0}, {6223,1757,0},{6220,1753,0},{6220,1755,0},{6223,1765,0},{6227,1747,0},{6228,1747,0}, {6228,1748,0},{6232,1745,0},{6233,1742,0},{6232,1738,0},{6240,1733,0},{6240,1737,0}, {6243,1738,0},{6248,1733,0},{6250,1738,0},{6253,1742,0},{6245,1755,0},{6243,1762,0}, {6243,1770,0},{6247,1765,0},{6250,1770,0},{6248,1785,0},{6252,1788,0},{6253,1788,0}, {6255,1792,0},{6262,1793,0},{6260,1795,0},{6255,1797,0},{6260,1807,0},{6262,1805,0}, {6267,1788,0},{6265,1800,0},{6273,1800,0},{6277,1795,0},{6278,1795,0},{6282,1788,0}, {6285,1790,0},{6293,1783,0},{6300,1770,0},{6297,1777,0},{6298,1778,0},{6300,1783,0}, {6298,1782,0},{6292,1788,0},{6290,1793,0},{6282,1792,0},{6280,1797,0},{6282,1798,0}, {6285,1807,0},{6283,1807,0},{6282,1815,0},{6280,1813,0},{6280,1800,0},{6278,1808,0}, {6277,1808,0},{6277,1813,0},{6282,1818,0},{6278,1820,0},{6282,1827,0},{6283,1828,0}, {6282,1823,0},{6283,1822,0},{6287,1820,0},{6287,1825,0},{6288,1825,0},{6288,1828,0}, {6287,1828,0},{6283,1837,0},{6285,1847,0},{6288,1847,0},{6290,1840,0},{6290,1848,0}, {6290,1850,0},{6292,1853,0},{6292,1845,0},{6295,1838,0},{6297,1843,0},{6295,1845,0}, {6295,1853,0},{6297,1853,0},{6295,1858,0},{6298,1855,0},{6300,1823,0},{6302,1833,0}, {6303,1835,0},{6302,1838,0},{6302,1843,0},{6305,1838,0},{6305,1843,0},{6302,1848,0}, {6305,1850,0},{6307,1855,0},{6307,1853,0},{6312,1857,0},{6310,1863,0},{6312,1865,0}, {6313,1865,0},{6317,1857,0},{6315,1875,0},{6322,1870,0},{6322,1882,0},{6320,1875,0}, {6317,1878,0},{6318,1880,0},{6318,1890,0},{6322,1890,0},{6325,1873,0},{6325,1875,0}, {6325,1883,0},{6325,1887,0},{6327,1887,0},{6327,1888,0},{6325,1892,0},{6325,1895,0}, {6322,1897,0},{6318,1903,0},{6318,1907,0},{6320,1907,0},{6320,1912,0},{6322,1905,0}, {6325,1905,0},{6323,1910,0},{6325,1913,0},{6325,1912,0},{6330,1915,0},{6332,1913,0}, {6332,1920,0},{6333,1923,0},{6332,1925,0},{6333,1927,0},{6347,1930,0},{6343,1935,0}, {6345,1937,0},{6348,1935,0},{6345,1942,0},{6342,1947,0},{6340,1952,0},{6347,1947,0}, {6348,1952,0},{6350,1945,0},{6353,1947,0},{6355,1942,0},{6357,1945,0},{6352,1958,0}, {6343,1967,0},{6345,1977,0},{6352,1975,0},{6355,1983,0},{6362,1990,0},{6360,1992,0}, {6362,1993,0},{6360,2000,0},{6360,2003,0},{6362,2002,0},{6365,2002,0},{6367,2005,0}, {6363,2013,0},{6365,2023,0},{6373,2028,0},{6367,2027,0},{6365,2030,0},{6375,2032,0}, {6372,2037,0},{6368,2035,0},{6367,2038,0},{6370,2042,0},{6377,2042,0},{6377,2045,0}, {6382,2050,0},{6377,2055,0},{6382,2062,0},{6378,2065,0},{6380,2068,0},{6382,2072,0}, {6383,2067,0},{6387,2078,0},{6395,2082,0},{6398,2090,0},{6405,2090,0},{6410,2097,0}, {6413,2095,0},{6422,2107,0},{6422,2110,0},{6423,2113,0},{6427,2120,0},{6432,2125,0}, {6430,2127,0},{6432,2133,0},{6437,2132,0},{6433,2135,0},{6437,2145,0},{6442,2152,0}, {6445,2160,0},{6448,2158,0},{6447,2158,0},{6445,2148,0},{6452,2148,0},{6452,2138,0}, {6453,2135,0},{6452,2140,0},{6455,2145,0},{6452,2150,0},{6453,2155,0},{6453,2150,0}, {6458,2148,0},{6455,2145,0},{6460,2137,0},{6457,2137,0},{6458,2132,0},{6460,2130,0}, {6463,2123,0},{6465,2125,0},{6468,2112,0},{6472,2110,0},{6473,2113,0},{6467,2128,0}, {6468,2128,0},{6468,2132,0},{6475,2123,0},{6475,2130,0},{6477,2130,0},{6478,2122,0}, {6478,2110,0},{6483,2103,0},{6485,2107,0},{6482,2112,0},{6483,2118,0},{6485,2117,0}, {6487,2122,0},{6488,2120,0},{6492,2125,0},{6495,2125,0},{6497,2138,0},{6498,2137,0}, {6502,2142,0},{6502,2150,0},{6505,2147,0},{6507,2158,0},{6508,2153,0},{6512,2157,0}, {6513,2155,0},{6515,2162,0},{6532,2140,0},{6533,2127,0},{6535,2133,0},{6537,2132,0}, {6532,2142,0},{6532,2148,0},{6523,2157,0},{6525,2167,0},{6528,2170,0},{6533,2158,0}, {6532,2158,0},{6532,2153,0},{6535,2145,0},{6537,2148,0},{6538,2147,0},{6538,2160,0}, {6540,2155,0},{6542,2158,0},{6538,2167,0},{6540,2170,0},{6542,2172,0},{6540,2175,0}, {6540,2185,0},{6542,2187,0},{6540,2193,0},{6545,2195,0},{6542,2200,0},{6547,2203,0}, {6552,2193,0},{6548,2195,0},{6548,2192,0},{6553,2185,0},{6552,2200,0},{6552,2205,0}, {6552,2207,0},{6553,2208,0},{6553,2213,0},{6555,2220,0},{6555,2217,0},{6558,2212,0}, {6560,2202,0},{6565,2185,0},{6570,2177,0},{6572,2177,0},{6567,2187,0},{6565,2193,0}, {6555,2223,0},{6558,2225,0},{6557,2232,0},{6557,2235,0},{6553,2240,0},{6557,2242,0}, {6560,2233,0},{6563,2238,0},{6563,2233,0},{6567,2232,0},{6567,2228,0},{6563,2232,0}, {6560,2228,0},{6562,2218,0},{6562,2228,0},{6568,2225,0},{6570,2228,0},{6567,2235,0}, {6567,2238,0},{6572,2237,0},{6572,2225,0},{6575,2222,0},{6573,2232,0},{6575,2235,0}, {6580,2232,0},{6580,2237,0},{6583,2233,0},{6583,2237,0},{6587,2237,0},{6585,2248,0}, {6583,2247,0},{6582,2253,0},{6577,2250,0},{6580,2260,0},{6577,2265,0},{6575,2265,0}, {6577,2268,0},{6580,2270,0},{6587,2268,0},{6590,2263,0},{6590,2268,0},{6585,2278,0}, {6580,2283,0},{6578,2288,0},{6580,2290,0},{6575,2302,0},{6575,2305,0},{6570,2308,0}, {6572,2313,0},{6575,2315,0},{6577,2323,0},{6578,2318,0},{6583,2320,0},{6578,2332,0}, {6582,2333,0},{6582,2337,0},{6578,2338,0},{6577,2343,0},{6580,2342,0},{6583,2348,0}, {6580,2350,0},{6580,2360,0},{6578,2362,0},{6582,2368,0},{6582,2373,0},{6580,2377,0}, {6578,2387,0},{6575,2393,0},{6580,2398,0},{6578,2405,0},{6580,2403,0},{6582,2417,0}, {6978,3078,128},{6977,3072,0},{6978,3070,0},{6980,3072,0},{6982,3055,0}, {6982,3045,0},{6978,3045,0},{6968,3045,0},{6967,3042,0},{6967,3033,0},{6968,3040,0}, {6970,3042,0},{6983,3040,0},{6983,3038,0},{6983,3028,0},{6987,3033,0},{6988,3030,0}, {6987,3017,0},{6980,3015,0},{6977,3022,0},{6975,3012,0},{6968,3018,0},{6970,3012,0}, {6973,3007,0},{6968,2993,0},{6970,2993,0},{6973,3003,0},{6977,3005,0},{6975,2995,0}, {6973,2990,0},{6973,2980,0},{6973,2967,0},{6965,2948,0},{6970,2955,0},{6970,2952,0}, {6972,2958,0},{6977,2963,0},{6978,2970,0},{6983,2977,0},{6992,2972,0},{6990,2965,0}, {6992,2953,0},{6985,2943,0},{6985,2937,0},{6990,2943,0},{6997,2968,0},{7002,2933,0}, {7000,2913,0},{7003,2918,0},{7003,2913,0},{7005,2913,0},{7008,2877,0},{7008,2875,0}, {7010,2885,0},{7010,2862,0},{7017,2875,0},{7017,2860,0},{7018,2870,0},{7013,2902,0}, {7013,2915,0},{7007,2980,0},{7007,3015,0},{7008,3012,0},{7010,3023,0},{7013,3035,0}, {7015,3038,0},{7018,3037,0},{7020,3050,0},{7023,3052,0},{7027,3077,0},{7027,3092,0}, {7028,3107,0},{7033,3102,0},{7037,3105,0},{7045,3095,0},{7043,3083,0},{7042,3080,0}, {7045,3075,0},{7047,3072,0},{7050,3057,0},{7053,3060,0},{7053,3058,0},{7055,3045,0}, {7053,3032,0},{7052,3015,0},{7053,3000,0},{7053,3017,0},{7055,3012,0},{7055,3023,0}, {7060,3035,0},{7063,3022,0},{7063,3010,0},{7067,3020,0},{7072,3010,0},{7070,2995,0}, {7063,2985,0},{7062,2970,0},{7062,2968,0},{7067,2977,0},{7070,2978,0},{7073,2978,0}, {7075,2970,0},{7070,2955,0},{7070,2940,0},{7067,2933,0},{7065,2928,0},{7068,2930,0}, {7070,2937,0},{7072,2933,0},{7073,2942,0},{7073,2930,0},{7078,2940,0},{7080,2928,0}, {7085,2925,0},{7085,2907,0},{7087,2910,0},{7088,2890,0},{7087,2882,0},{7087,2875,0}, {7078,2865,0},{7073,2855,0},{7070,2853,0},{7067,2862,0},{7067,2850,0},{7055,2840,0}, {7052,2847,0},{7050,2855,0},{7048,2850,0},{7045,2852,0},{7045,2847,0},{7048,2845,0}, {7047,2833,0},{7043,2832,0},{7042,2825,0},{7028,2818,0},{7017,2823,0},{7008,2813,0}, {7007,2802,0},{7008,2810,0},{7015,2818,0},{7037,2815,0},{7050,2833,0},{7050,2823,0}, {7043,2812,0},{7047,2813,0},{7043,2807,0},{7045,2803,0},{7050,2818,0},{7047,2795,0}, {7048,2797,0},{7043,2788,0},{7048,2785,0},{7062,2822,0},{7065,2828,0},{7072,2830,0}, {7067,2813,0},{7062,2783,0},{7060,2765,0},{7065,2787,0},{7067,2788,0},{7070,2807,0}, {7073,2813,0},{7077,2788,0},{7073,2777,0},{7077,2783,0},{7078,2777,0},{7078,2793,0}, {7082,2800,0},{7078,2802,0},{7078,2813,0},{7078,2827,0},{7080,2830,0},{7083,2822,0}, {7083,2837,0},{7085,2835,0},{7085,2843,0},{7087,2845,0},{7088,2837,0},{7088,2847,0}, {7097,2855,0},{7098,2848,0},{7100,2835,0},{7097,2822,0},{7100,2823,0},{7100,2818,0}, {7102,2820,0},{7105,2827,0},{7108,2820,0},{7107,2813,0},{7103,2808,0},{7107,2803,0}, {7103,2788,0},{7105,2777,0},{7105,2775,0},{7107,2770,0},{7110,2773,0},{7112,2765,0}, {7108,2765,0},{7108,2752,0},{7102,2753,0},{7102,2758,0},{7095,2757,0},{7095,2752,0}, {7100,2748,0},{7103,2727,0},{7100,2722,0},{7093,2735,0},{7097,2717,0},{7095,2713,0}, {7092,2712,0},{7090,2717,0},{7088,2730,0},{7088,2735,0},{7092,2740,0},{7090,2740,0}, {7087,2738,0},{7087,2752,0},{7083,2753,0},{7082,2748,0},{7080,2763,0},{7082,2733,0}, {7080,2730,0},{7077,2728,0},{7075,2735,0},{7073,2732,0},{7075,2725,0},{7073,2713,0}, {7070,2708,0},{7068,2715,0},{7063,2710,0},{7058,2727,0},{7062,2707,0},{7057,2697,0}, {7055,2700,0},{7053,2697,0},{7047,2710,0},{7045,2695,0},{7047,2693,0},{7048,2695,0}, {7048,2685,0},{7047,2680,0},{7042,2675,0},{7042,2665,0},{7040,2663,0},{7038,2665,0}, {7037,2658,0},{7035,2655,0},{7037,2650,0},{7043,2652,0},{7047,2657,0},{7052,2657,0}, {7053,2660,0},{7063,2665,0},{7065,2655,0},{7063,2635,0},{7070,2663,0},{7073,2668,0}, {7083,2675,0},{7083,2667,0},{7085,2667,0},{7090,2673,0},{7095,2670,0},{7093,2655,0}, {7087,2637,0},{7077,2617,0},{7072,2613,0},{7072,2607,0},{7060,2600,0},{7035,2545,0}, {7032,2542,0},{7030,2553,0},{7028,2553,0},{7020,2538,0},{7018,2532,0},{7008,2523,0}, {7008,2515,0},{7008,2508,0},{7012,2508,0},{7013,2513,0},{7012,2507,0},{7015,2508,0}, {7012,2500,0},{7007,2505,0},{7007,2500,0},{7010,2493,0},{7022,2498,0},{7030,2520,0}, {7033,2518,0},{7032,2512,0},{7035,2513,0},{7037,2508,0},{7040,2518,0},{7038,2525,0}, {7040,2527,0},{7043,2525,0},{7047,2528,0},{7048,2505,0},{7048,2510,0},{7048,2527,0}, {7052,2527,0},{7050,2507,0},{7057,2525,0},{7067,2545,0},{7072,2563,0},{7073,2565,0}, {7075,2563,0},{7078,2575,0},{7087,2593,0},{7088,2590,0},{7090,2585,0},{7085,2577,0}, {7088,2572,0},{7088,2563,0},{7085,2553,0},{7087,2552,0},{7083,2547,0},{7085,2543,0}, {7087,2545,0},{7090,2553,0},{7097,2537,0},{7095,2533,0},{7090,2540,0},{7085,2538,0}, {7082,2535,0},{7080,2528,0},{7078,2525,0},{7085,2525,0},{7092,2517,0},{7088,2508,0}, {7085,2507,0},{7087,2492,0},{7093,2507,0},{7097,2498,0},{7092,2498,0},{7090,2483,0}, {7093,2487,0},{7097,2478,0},{7097,2460,0},{7095,2465,0},{7093,2457,0},{7090,2463,0}, {7090,2462,0},{7087,2473,0},{7085,2460,0},{7078,2463,0},{7082,2447,0},{7087,2440,0}, {7083,2427,0},{7077,2425,0},{7073,2457,0},{7065,2473,0},{7062,2473,0},{7062,2468,0}, {7062,2462,0},{7067,2448,0},{7068,2438,0},{7068,2437,0},{7067,2428,0},{7062,2427,0}, {7060,2427,0},{7053,2410,0},{7052,2425,0},{7045,2435,0},{7048,2425,0},{7052,2398,0}, {7048,2382,0},{7045,2377,0},{7037,2352,0},{7032,2347,0},{7032,2353,0},{7030,2353,0}, {7030,2362,0},{7028,2343,0},{7025,2330,0},{7023,2332,0},{7025,2343,0},{7023,2353,0}, {7022,2325,0},{7018,2332,0},{7018,2342,0},{7017,2330,0},{7013,2340,0},{7010,2337,0}, {7008,2318,0},{7003,2333,0},{7002,2353,0},{6998,2347,0},{6993,2332,0},{6997,2335,0}, {7000,2332,0},{6993,2313,0},{6995,2310,0},{6997,2315,0},{6998,2312,0},{7003,2313,0}, {7002,2305,0},{7003,2302,0},{7015,2300,0},{7010,2287,0},{7003,2230,0},{7008,2245,0}, {7012,2282,0},{7020,2297,0},{7022,2270,0},{7022,2260,0},{7023,2258,0},{7025,2240,0}, {7020,2235,0},{7017,2233,0},{7013,2252,0},{7012,2255,0},{7015,2237,0},{7013,2223,0}, {7017,2230,0},{7020,2228,0},{7023,2227,0},{7028,2232,0},{7028,2215,0},{7023,2213,0}, {7030,2210,0},{7028,2198,0},{7032,2203,0},{7032,2200,0},{7025,2180,0},{7022,2182,0}, {7020,2188,0},{7018,2185,0},{7015,2187,0},{7020,2180,0},{7027,2162,0},{7032,2157,0}, {7030,2152,0},{7022,2150,0},{7023,2145,0},{7027,2142,0},{7025,2130,0},{7020,2120,0}, {7020,2125,0},{7017,2132,0},{7017,2148,0},{7015,2143,0},{7010,2147,0},{7008,2155,0}, {7010,2162,0},{7005,2173,0},{7007,2182,0},{7008,2183,0},{7008,2188,0},{7008,2200,0}, {7012,2210,0},{7007,2202,0},{7005,2185,0},{7003,2180,0},{7002,2192,0},{7003,2212,0}, {7002,2205,0},{6993,2207,0},{6995,2203,0},{6997,2203,0},{6998,2200,0},{6998,2193,0}, {6993,2190,0},{6987,2193,0},{6985,2202,0},{6983,2200,0},{6983,2192,0},{6980,2205,0}, {6973,2210,0},{6973,2198,0},{6975,2205,0},{6977,2195,0},{6983,2188,0},{6988,2178,0}, {6988,2168,0},{6992,2158,0},{6995,2160,0},{6998,2155,0},{7002,2142,0},{7002,2132,0}, {7000,2125,0},{6993,2120,0},{6990,2133,0},{6990,2122,0},{6985,2123,0},{6982,2117,0}, {6982,2113,0},{6987,2118,0},{6987,2107,0},{6983,2105,0},{6982,2100,0},{6980,2105,0}, {6978,2102,0},{6982,2095,0},{6983,2097,0},{6985,2090,0},{6995,2108,0},{6992,2092,0}, {6987,2078,0},{6983,2083,0},{6980,2080,0},{6977,2062,0},{6977,2048,0},{6970,2055,0}, {6963,2048,0},{6958,2065,0},{6953,2072,0},{6948,2085,0},{6953,2062,0},{6958,2048,0}, {6948,2038,0},{6938,2028,0},{6938,2020,0},{6932,2003,0},{6925,1995,0},{6928,1992,0}, {6932,2000,0},{6933,1998,0},{6940,2018,0},{6947,2022,0},{6945,2025,0},{6953,2030,0}, {6957,2028,0},{6958,2037,0},{6960,2038,0},{6967,2032,0},{6988,2042,0},{6997,2028,0}, {6992,2020,0},{6985,2022,0},{6988,2017,0},{6993,2017,0},{6992,2015,0},{6978,2003,0}, {6977,1998,0},{6977,1997,0},{6983,2002,0},{6977,1988,0},{6968,1982,0},{6962,1987,0}, {6958,2012,0},{6958,1997,0},{6962,1980,0},{6960,1975,0},{6958,1975,0},{6943,1968,0}, {6943,1963,0},{6940,1955,0},{6942,1955,0},{6947,1965,0},{6950,1962,0},{6963,1973,0}, {6967,1968,0},{6980,1977,0},{6980,1957,0},{6977,1942,0},{6978,1927,0},{6975,1918,0}, {6973,1910,0},{6968,1908,0},{6962,1895,0},{6957,1895,0},{6953,1902,0},{6955,1908,0}, {6957,1923,0},{6952,1927,0},{6955,1918,0},{6952,1900,0},{6945,1900,0},{6942,1908,0}, {6938,1912,0},{6938,1930,0},{6935,1942,0},{6932,1945,0},{6925,1945,0},{6922,1950,0}, {6923,1940,0},{6922,1935,0},{6923,1928,0},{6923,1925,0},{6927,1928,0},{6927,1925,0}, {6925,1917,0},{6928,1920,0},{6928,1935,0},{6932,1937,0},{6935,1930,0},{6935,1912,0}, {6940,1902,0},{6942,1900,0},{6950,1885,0},{6955,1885,0},{6953,1877,0},{6955,1862,0}, {6952,1847,0},{6945,1845,0},{6943,1857,0},{6937,1863,0},{6932,1895,0},{6928,1900,0}, {6930,1892,0},{6932,1888,0},{6932,1877,0},{6932,1867,0},{6928,1870,0},{6925,1868,0}, {6928,1863,0},{6935,1855,0},{6923,1852,0},{6928,1850,0},{6937,1850,0},{6940,1842,0}, {6938,1837,0},{6945,1837,0},{6948,1828,0},{6945,1815,0},{6938,1817,0},{6932,1810,0}, {6930,1802,0},{6923,1798,0},{6923,1810,0},{6917,1807,0},{6915,1815,0},{6915,1800,0}, {6912,1785,0},{6910,1763,0},{6908,1767,0},{6898,1748,0},{6898,1753,0},{6895,1753,0}, {6895,1748,0},{6890,1743,0},{6892,1752,0},{6893,1770,0},{6890,1773,0},{6888,1783,0}, {6887,1783,0},{6887,1775,0},{6888,1773,0},{6888,1765,0},{6883,1747,0},{6878,1767,0}, {6878,1777,0},{6875,1778,0},{6882,1745,0},{6875,1723,0},{6873,1730,0},{6873,1742,0}, {6868,1747,0},{6868,1762,0},{6865,1768,0},{6867,1758,0},{6867,1747,0},{6872,1737,0}, {6872,1725,0},{6868,1710,0},{6865,1713,0},{6865,1718,0},{6863,1717,0},{6863,1710,0}, {6870,1698,0},{6865,1665,0},{6860,1657,0},{6853,1663,0},{6853,1652,0},{6850,1647,0}, {6843,1650,0},{6843,1653,0},{6845,1685,0},{6850,1700,0},{6847,1710,0},{6845,1708,0}, {6845,1702,0},{6843,1702,0},{6845,1722,0},{6850,1735,0},{6853,1753,0},{6850,1755,0}, {6845,1747,0},{6845,1763,0},{6840,1778,0},{6838,1787,0},{6837,1782,0},{6838,1778,0}, {6842,1758,0},{6842,1737,0},{6837,1757,0},{6835,1757,0},{6840,1733,0},{6840,1725,0}, {6838,1725,0},{6837,1720,0},{6833,1722,0},{6825,1742,0},{6823,1742,0},{6823,1735,0}, {6818,1737,0},{6817,1733,0},{6825,1733,0},{6830,1720,0},{6837,1713,0},{6837,1703,0}, {6832,1683,0},{6837,1688,0},{6840,1670,0},{6838,1647,0},{6835,1623,0},{6835,1628,0}, {6832,1625,0},{6830,1648,0},{6827,1658,0},{6820,1663,0},{6813,1680,0},{6813,1673,0}, {6820,1657,0},{6825,1652,0},{6827,1642,0},{6828,1637,0},{6828,1632,0},{6830,1630,0}, {6830,1622,0},{6832,1618,0},{6830,1615,0},{6827,1610,0},{6825,1627,0},{6825,1632,0}, {6823,1637,0},{6822,1617,0},{6820,1617,0},{6820,1642,0},{6822,1645,0},{6820,1647,0}, {6817,1658,0},{6818,1642,0},{6817,1647,0},{6815,1647,0},{6815,1640,0},{6813,1640,0}, {6815,1637,0},{6812,1632,0},{6813,1625,0},{6810,1630,0},{6808,1630,0},{6807,1635,0}, {6812,1648,0},{6808,1657,0},{6807,1672,0},{6807,1667,0},{6805,1667,0},{6807,1653,0}, {6810,1647,0},{6807,1640,0},{6803,1637,0},{6802,1650,0},{6798,1647,0},{6797,1653,0}, {6797,1645,0},{6800,1640,0},{6800,1633,0},{6798,1633,0},{6795,1642,0},{6793,1647,0}, {6790,1645,0},{6792,1640,0},{6800,1627,0},{6800,1620,0},{6797,1628,0},{6788,1625,0}, {6785,1645,0},{6782,1643,0},{6780,1652,0},{6788,1622,0},{6797,1620,0},{6803,1603,0}, {6807,1610,0},{6810,1607,0},{6817,1610,0},{6815,1605,0},{6817,1603,0},{6823,1605,0}, {6825,1597,0},{6818,1595,0},{6818,1587,0},{6813,1592,0},{6808,1585,0},{6808,1575,0}, {6807,1573,0},{6807,1567,0},{6805,1565,0},{6805,1562,0},{6810,1562,0},{6810,1573,0}, {6812,1570,0},{6813,1573,0},{6815,1567,0},{6817,1565,0},{6813,1563,0},{6812,1555,0}, {6808,1553,0},{6813,1550,0},{6812,1543,0},{6807,1535,0},{6805,1535,0},{6803,1528,0}, {6800,1532,0},{6798,1540,0},{6800,1543,0},{6802,1538,0},{6805,1550,0},{6808,1553,0}, {6803,1560,0},{6803,1580,0},{6807,1587,0},{6805,1590,0},{6803,1585,0},{6802,1587,0}, {6802,1605,0},{6800,1605,0},{6800,1597,0},{6797,1595,0},{6793,1588,0},{6790,1587,0}, {6795,1577,0},{6793,1560,0},{6792,1560,0},{6788,1553,0},{6785,1553,0},{6787,1550,0}, {6792,1555,0},{6788,1533,0},{6790,1533,0},{6783,1520,0},{6787,1523,0},{6790,1500,0}, {6787,1488,0},{6783,1485,0},{6785,1507,0},{6785,1510,0},{6783,1508,0},{6783,1497,0}, {6782,1488,0},{6782,1480,0},{6780,1475,0},{6778,1477,0},{6778,1483,0},{6775,1483,0}, {6778,1498,0},{6778,1503,0},{6775,1498,0},{6775,1502,0},{6773,1512,0},{6772,1478,0}, {6770,1482,0},{6770,1488,0},{6765,1473,0},{6763,1482,0},{6767,1500,0},{6772,1518,0}, {6773,1520,0},{6780,1537,0},{6785,1537,0},{6782,1540,0},{6785,1542,0},{6783,1545,0}, {6778,1542,0},{6777,1558,0},{6778,1570,0},{6777,1563,0},{6773,1578,0},{6767,1583,0}, {6775,1560,0},{6773,1540,0},{6770,1547,0},{6770,1558,0},{6767,1565,0},{6768,1553,0}, {6767,1553,0},{6768,1550,0},{6772,1532,0},{6768,1527,0},{6768,1533,0},{6767,1525,0}, {6762,1518,0},{6760,1537,0},{6762,1538,0},{6763,1540,0},{6762,1543,0},{6755,1545,0}, {6758,1542,0},{6760,1530,0},{6758,1525,0},{6753,1523,0},{6752,1537,0},{6752,1557,0}, {6755,1572,0},{6757,1590,0},{6755,1588,0},{6753,1570,0},{6748,1555,0},{6747,1553,0}, {6745,1558,0},{6743,1552,0},{6738,1560,0},{6733,1562,0},{6730,1570,0},{6727,1563,0}, {6728,1560,0},{6730,1565,0},{6735,1553,0},{6740,1553,0},{6747,1545,0},{6748,1532,0}, {6747,1523,0},{6742,1515,0},{6747,1517,0},{6748,1515,0},{6748,1522,0},{6752,1518,0}, {6747,1498,0},{6747,1483,0},{6748,1498,0},{6750,1505,0},{6755,1498,0},{6755,1500,0}, {6753,1510,0},{6753,1515,0},{6755,1515,0},{6757,1507,0},{6755,1492,0},{6750,1473,0}, {6747,1478,0},{6747,1477,0},{6745,1483,0},{6743,1483,0},{6743,1505,0},{6742,1488,0}, {6737,1482,0},{6742,1480,0},{6742,1463,0},{6740,1457,0},{6738,1462,0},{6733,1455,0}, {6723,1433,0},{6725,1455,0},{6728,1470,0},{6723,1470,0},{6722,1462,0},{6722,1470,0}, {6723,1477,0},{6725,1483,0},{6727,1478,0},{6727,1487,0},{6727,1497,0},{6730,1503,0}, {6732,1515,0},{6727,1515,0},{6725,1507,0},{6723,1520,0},{6723,1533,0},{6722,1532,0}, {6722,1527,0},{6720,1530,0},{6723,1540,0},{6720,1558,0},{6722,1570,0},{6717,1573,0}, {6720,1548,0},{6720,1538,0},{6718,1538,0},{6715,1548,0},{6710,1543,0},{6707,1550,0}, {6708,1540,0},{6717,1538,0},{6717,1528,0},{6718,1523,0},{6718,1515,0},{6722,1508,0}, {6720,1502,0},{6715,1493,0},{6712,1500,0},{6708,1498,0},{6715,1488,128}, {6720,1493,0},{6722,1498,0},{6720,1477,0},{6718,1468,0},{6718,1452,0},{6717,1472,0}, {6713,1475,0},{6712,1473,0},{6715,1470,0},{6715,1447,0},{6710,1443,0},{6712,1442,0}, {6717,1445,0},{6715,1435,0},{6708,1427,0},{6705,1457,0},{6703,1460,0},{6702,1457,0}, {6702,1455,0},{6705,1453,0},{6707,1440,0},{6705,1425,0},{6702,1427,0},{6698,1423,0}, {6697,1415,0},{6695,1413,0},{6697,1415,0},{6700,1410,0},{6705,1408,0},{6705,1405,0}, {6705,1403,0},{6702,1402,0},{6698,1405,0},{6693,1393,0},{6692,1395,0},{6692,1392,0}, {6695,1388,0},{6698,1397,0},{6700,1395,0},{6698,1388,0},{6697,1383,0},{6697,1377,0}, {6693,1378,0},{6693,1358,0},{6692,1353,0},{6690,1353,0},{6690,1362,0},{6687,1363,0}, {6685,1370,0},{6683,1370,0},{6683,1377,0},{6682,1380,0},{6680,1393,0},{6678,1398,0}, {6678,1382,0},{6680,1362,0},{6678,1350,0},{6677,1355,0},{6675,1375,0},{6675,1357,0}, {6672,1355,0},{6672,1362,0},{6673,1365,0},{6673,1390,0},{6672,1370,0},{6668,1370,0}, {6668,1357,0},{6672,1348,0},{6672,1328,0},{6672,1323,0},{6668,1330,0},{6667,1348,0}, {6663,1353,0},{6665,1345,0},{6667,1318,0},{6665,1317,0},{6663,1322,0},{6662,1340,0}, {6660,1323,0},{6657,1320,0},{6653,1327,0},{6655,1342,0},{6660,1353,0},{6660,1373,0}, {6660,1357,0},{6657,1345,0},{6653,1362,0},{6652,1367,0},{6655,1347,0},{6653,1333,0}, {6652,1327,0},{6650,1330,0},{6647,1327,0},{6645,1338,0},{6645,1323,0},{6652,1322,0}, {6653,1310,0},{6652,1297,0},{6647,1317,0},{6645,1310,0},{6643,1315,0},{6640,1317,0}, {6635,1300,0},{6632,1302,0},{6632,1308,0},{6632,1317,0},{6630,1313,0},{6630,1320,0}, {6632,1333,0},{6637,1332,0},{6633,1337,0},{6633,1345,0},{6632,1340,0},{6630,1353,0}, {6630,1333,0},{6627,1322,0},{6620,1303,0},{6618,1305,0},{6620,1318,0},{6625,1330,0}, {6625,1345,0},{6628,1358,0},{6628,1362,0},{6625,1357,0},{6623,1362,0},{6625,1372,0}, {6628,1375,0},{6627,1380,0},{6627,1392,0},{6630,1397,0},{6630,1403,0},{6633,1412,0}, {6632,1415,0},{6627,1400,0},{6623,1398,0},{6622,1385,0},{6620,1378,0},{6620,1377,0}, {6623,1380,0},{6623,1367,0},{6618,1362,0},{6617,1368,0},{6618,1378,0},{6617,1383,0}, {6615,1383,0},{6617,1375,0},{6615,1362,0},{6610,1355,0},{6612,1353,0},{6615,1355,0}, {6618,1358,0},{6618,1350,0},{6620,1358,0},{6623,1358,0},{6623,1355,0},{6622,1332,0}, {6613,1308,0},{6615,1305,0},{6613,1285,0},{6607,1267,0},{6605,1273,0},{6603,1273,0}, {6605,1288,0},{6608,1302,0},{6607,1303,0},{6605,1297,0},{6600,1297,0},{6598,1292,0}, {6595,1298,0},{6593,1312,0},{6585,1318,0},{6592,1303,0},{6592,1297,0},{6597,1283,0}, {6592,1267,0},{6585,1262,0},{6582,1262,0},{6583,1270,0},{6578,1272,0},{6580,1265,0}, {6578,1262,0},{6575,1255,0},{6570,1265,0},{6565,1267,0},{6565,1278,0},{6563,1278,0}, {6565,1262,0},{6568,1263,0},{6568,1258,0},{6572,1258,0},{6573,1252,0},{6570,1243,0}, {6565,1237,0},{6558,1235,0},{6558,1242,0},{6555,1238,0},{6552,1243,0},{6558,1253,0}, {6552,1247,0},{6552,1250,0},{6553,1255,0},{6558,1258,0},{6553,1258,0},{6553,1262,0}, {6550,1257,0},{6548,1260,0},{6548,1265,0},{6547,1260,0},{6545,1278,0},{6545,1267,0}, {6543,1263,0},{6537,1272,0},{6543,1260,0},{6542,1257,0},{6545,1255,0},{6545,1248,0}, {6537,1253,0},{6535,1265,0},{6533,1268,0},{6535,1260,0},{6535,1252,0},{6537,1252,0}, {6532,1242,0},{6533,1248,0},{6530,1242,0},{6530,1233,0},{6523,1225,0},{6527,1235,0}, {6527,1242,0},{6525,1245,0},{6527,1253,0},{6525,1260,0},{6527,1260,0},{6527,1265,0}, {6525,1272,0},{6523,1238,0},{6522,1235,0},{6523,1242,0},{6522,1243,0},{6518,1250,0}, {6517,1237,0},{6513,1240,0},{6513,1250,0},{6520,1267,0},{6533,1292,0},{6533,1295,0}, {6530,1293,0},{6525,1282,0},{6520,1278,0},{6518,1270,0},{6515,1267,0},{6513,1260,0}, {6512,1263,0},{6512,1250,0},{6508,1245,0},{6508,1233,0},{6507,1230,0},{6505,1220,0}, {6498,1218,0},{6503,1215,0},{6503,1207,0},{6505,1207,0},{6503,1203,0},{6503,1200,0}, {6505,1202,0},{6507,1197,0},{6502,1182,0},{6497,1182,0},{6495,1167,0},{6497,1162,0}, {6493,1163,0},{6495,1158,0},{6493,1148,0},{6490,1153,0},{6492,1160,0},{6488,1153,0}, {6492,1145,0},{6488,1130,0},{6485,1125,0},{6488,1157,0},{6490,1170,0},{6487,1155,0}, {6483,1127,0},{6482,1125,0},{6480,1143,0},{6477,1135,0},{6473,1125,0},{6475,1138,0}, {6482,1147,0},{6482,1155,0},{6483,1162,0},{6487,1162,0},{6495,1192,0},{6495,1198,0}, {6497,1203,0},{6497,1213,0},{6493,1222,0},{6495,1210,0},{6493,1200,0},{6493,1193,0}, {6488,1173,0},{6483,1165,0},{6485,1178,0},{6483,1178,0},{6482,1165,0},{6480,1183,0}, {6477,1173,0},{6478,1172,0},{6477,1157,0},{6477,1155,0},{6475,1160,0},{6473,1162,0}, {6475,1153,0},{6473,1152,0},{6470,1140,0},{6470,1142,0},{6467,1140,0},{6463,1142,0}, {6457,1152,0},{6458,1158,0},{6460,1158,0},{6460,1155,0},{6462,1160,0},{6462,1163,0}, {6458,1163,0},{6460,1172,0},{6458,1178,0},{6453,1157,0},{6453,1155,0},{6455,1157,0}, {6455,1152,0},{6452,1155,0},{6450,1145,0},{6447,1145,0},{6447,1165,0},{6447,1152,0}, {6443,1145,0},{6445,1142,0},{6442,1137,0},{6440,1138,0},{6438,1135,0},{6432,1123,0}, {6443,1133,0},{6445,1127,0},{6445,1122,0},{6443,1120,0},{6445,1117,0},{6448,1118,0}, {6452,1110,0},{6452,1107,0},{6457,1107,0},{6460,1097,0},{6458,1092,0},{6455,1097,0}, {6450,1097,0},{6450,1092,0},{6448,1097,0},{6448,1092,0},{6447,1090,0},{6448,1088,0}, {6450,1082,0},{6447,1083,0},{6447,1070,0},{6445,1065,0},{6443,1070,0},{6443,1078,0}, {6440,1078,0},{6437,1085,0},{6438,1077,0},{6440,1073,0},{6442,1067,0},{6445,1062,0}, {6443,1057,0},{6440,1063,0},{6443,1055,0},{6443,1050,0},{6440,1047,0},{6440,1057,0}, {6437,1060,0},{6435,1065,0},{6433,1060,0},{6437,1055,0},{6435,1052,0},{6433,1055,0}, {6435,1047,0},{6430,1045,0},{6430,1050,0},{6428,1043,0},{6428,1040,0},{6425,1040,0}, {6427,1035,0},{6425,1033,0},{6423,1025,0},{6422,1037,0},{6418,1037,0},{6420,1028,0}, {6418,1023,0},{6420,1018,0},{6418,1017,0},{6415,1020,0},{6415,1017,0},{6413,1017,0}, {6413,1013,0},{6412,1012,0},{6412,1022,0},{6410,1020,0},{6408,1010,0},{6412,1003,0}, {6410,1000,0},{6405,1003,0},{6395,993,0},{6398,1007,0},{6397,1007,0},{6398,1013,0}, {6392,995,0},{6393,1005,0},{6397,1015,0},{6393,1018,0},{6392,1003,0},{6388,992,0}, {6390,990,0},{6388,980,0},{6387,983,0},{6387,987,0},{6382,963,0},{6377,955,0}, {6375,958,0},{6377,978,0},{6372,955,0},{6370,957,0},{6367,953,0},{6367,957,0}, {6370,965,0},{6372,985,0},{6375,992,0},{6378,1003,0},{6375,1000,0},{6377,1010,0}, {6372,1000,0},{6368,982,0},{6367,978,0},{6365,983,0},{6362,980,0},{6360,983,0}, {6358,990,0},{6350,992,0},{6348,998,0},{6350,1010,0},{6355,1023,0},{6357,1040,0}, {6363,1062,0},{6367,1063,0},{6373,1092,0},{6375,1097,0},{6380,1100,0},{6383,1108,0}, {6388,1103,0},{6390,1092,0},{6385,1080,0},{6380,1057,0},{6387,1070,0},{6388,1080,0}, {6398,1112,0},{6402,1120,0},{6407,1122,0},{6412,1130,0},{6410,1135,0},{6407,1123,0}, {6403,1125,0},{6402,1135,0},{6403,1142,0},{6402,1145,0},{6402,1150,0},{6400,1150,0}, {6398,1143,0},{6397,1127,0},{6392,1120,0},{6390,1110,0},{6385,1110,0},{6385,1113,0}, {6387,1127,0},{6385,1135,0},{6385,1142,0},{6378,1145,0},{6377,1125,0},{6370,1115,0}, {6370,1097,0},{6363,1085,0},{6360,1072,0},{6355,1067,0},{6360,1088,0},{6360,1092,0}, {6358,1090,0},{6357,1085,0},{6357,1092,0},{6355,1092,0},{6353,1080,0},{6352,1077,0}, {6348,1078,0},{6347,1092,0},{6343,1083,0},{6342,1080,0},{6345,1068,0},{6343,1057,0}, {6345,1045,0},{6343,1037,0},{6347,1030,0},{6343,1008,0},{6338,1005,0},{6335,1012,0}, {6333,1025,0},{6332,1028,0},{6327,1027,0},{6332,1025,0},{6333,1023,0},{6333,1010,0}, {6335,1000,0},{6332,983,0},{6338,993,0},{6343,997,0},{6352,982,0},{6353,982,0}, {6363,972,0},{6358,950,0},{6358,955,0},{6353,957,0},{6357,953,0},{6357,947,0}, {6352,942,0},{6352,937,0},{6357,937,0},{6353,930,0},{6353,925,0},{6352,923,0}, {6350,923,0},{6350,915,0},{6347,915,0},{6345,922,0},{6345,928,0},{6347,927,0}, {6350,927,0},{6347,933,0},{6348,948,0},{6343,918,0},{6338,917,0},{6337,920,0}, {6338,942,0},{6340,948,0},{6337,940,0},{6335,923,0},{6330,908,0},{6335,910,0}, {6337,915,0},{6342,912,0},{6347,902,0},{6343,897,0},{6342,900,0},{6342,888,0}, {6340,888,0},{6343,882,0},{6342,873,0},{6340,872,0},{6342,868,0},{6340,865,0}, {6338,865,0},{6333,877,0},{6330,848,0},{6325,858,0},{6320,860,0},{6320,893,0}, {6318,863,0},{6317,857,0},{6313,857,0},{6312,863,0},{6310,863,0},{6313,853,0}, {6313,837,0},{6315,830,0},{6313,823,0},{6312,832,0},{6308,832,0},{6308,828,0}, {6313,822,0},{6312,817,0},{6307,822,0},{6303,823,0},{6302,832,0},{6302,847,0}, {6300,832,0},{6297,837,0},{6302,858,0},{6298,852,0},{6298,867,0},{6297,865,0}, {6297,845,0},{6295,842,0},{6290,848,0},{6288,862,0},{6282,870,0},{6287,858,0}, {6288,847,0},{6288,843,0},{6287,853,0},{6283,853,0},{6288,840,0},{6287,833,0}, {6293,830,0},{6297,833,0},{6303,813,0},{6307,813,0},{6310,808,0},{6308,798,0}, {6305,797,0},{6300,788,0},{6300,790,0},{6300,797,0},{6302,795,0},{6303,797,0}, {6300,800,0},{6295,813,0},{6292,818,0},{6290,820,0},{6288,817,0},{6283,818,0}, {6280,832,0},{6278,835,0},{6272,855,0},{6267,857,0},{6265,855,0},{6272,848,0}, {6272,842,0},{6278,830,0},{6282,817,0},{6293,808,0},{6297,798,0},{6290,768,0}, {6295,778,0},{6297,777,0},{6297,765,0},{6293,757,0},{6292,747,0},{6292,745,0}, {6295,742,0},{6302,727,0},{6298,710,0},{6293,700,0},{6292,688,0},{6290,695,0}, {6283,700,0},{6285,713,0},{6283,715,0},{6282,722,0},{6282,707,0},{6280,700,0}, {6277,695,0},{6275,698,0},{6272,697,0},{6275,737,0},{6278,747,0},{6280,763,0}, {6278,768,0},{6277,750,0},{6273,737,0},{6272,742,0},{6268,737,0},{6268,750,0}, {6273,768,0},{6277,807,0},{6275,805,0},{6270,815,0},{6273,798,0},{6272,797,0}, {6273,790,0},{6273,780,0},{6267,752,0},{6265,750,0},{6262,753,0},{6258,752,0}, {6258,750,0},{6263,748,0},{6262,742,0},{6257,745,0},{6257,752,0},{6258,772,0}, {6257,778,0},{6255,757,0},{6250,753,0},{6255,750,0},{6255,743,0},{6260,735,0}, {6263,717,0},{6260,713,0},{6257,715,0},{6253,713,0},{6262,710,0},{6262,703,0}, {6265,708,0},{6265,690,0},{6262,693,0},{6257,690,0},{6260,688,0},{6265,675,0}, {6260,665,0},{6262,662,0},{6257,662,0},{6262,655,0},{6260,643,0},{6262,633,0}, {6258,625,0},{6252,627,0},{6253,653,0},{6253,657,0},{6252,653,0},{6252,648,0}, {6250,650,0},{6252,662,0},{6248,668,0},{6248,643,0},{6247,623,0},{6245,623,0}, {6245,633,0},{6242,638,0},{6243,655,0},{6248,670,0},{6247,672,0},{6248,678,0}, {6245,677,0},{6245,685,0},{6237,697,0},{6237,692,0},{6232,698,0},{6228,717,0}, {6228,737,0},{6223,742,0},{6228,730,0},{6225,722,0},{6227,712,0},{6227,702,0}, {6218,703,0},{6212,697,0},{6210,703,0},{6213,713,0},{6212,717,0},{6210,718,0}, {6212,713,0},{6208,703,0},{6208,698,0},{6210,695,0},{6213,695,0},{6218,702,0}, {6228,698,0},{6235,688,0},{6242,688,0},{6245,670,0},{6240,655,0},{6235,657,0}, {6240,650,0},{6240,643,0},{6237,638,0},{6232,642,0},{6215,658,0},{6213,658,0}, {6210,653,0},{6215,657,0},{6225,645,0},{6227,640,0},{6237,632,0},{6230,602,0}, {6225,595,0},{6222,600,0},{6220,607,0},{6220,600,0},{6223,593,0},{6220,592,0}, {6210,608,0},{6208,627,0},{6207,635,0},{6205,635,0},{6208,615,0},{6207,605,0}, {6210,605,0},{6213,597,0},{6207,593,0},{6202,585,0},{6205,585,0},{6210,592,0}, {6215,593,0},{6218,592,0},{6220,587,0},{6217,567,0},{6213,568,0},{6208,575,0}, {6212,567,0},{6217,563,0},{6218,548,0},{6218,542,0},{6212,538,0},{6207,560,0}, {6207,558,0},{6207,553,0},{6200,547,0},{6205,545,0},{6212,528,0},{6217,528,0}, {6222,517,0},{6222,515,0},{6218,515,0},{6218,508,0},{6215,507,0},{6213,513,0}, {6210,510,0},{6210,520,0},{6202,540,0},{6202,530,0},{6195,523,0},{6197,522,0}, {6195,518,0},{6197,517,0},{6197,515,0},{6192,510,0},{6190,515,0},{6193,543,0}, {6192,545,0},{6192,560,0},{6192,567,0},{6192,597,0},{6188,573,0},{6185,578,0}, {6188,590,0},{6187,603,0},{6183,612,0},{6185,628,0},{6182,648,0},{6187,655,0}, {6190,667,0},{6188,670,0},{6187,682,0},{6183,678,0},{6187,668,0},{6187,658,0}, {6182,653,0},{6180,647,0},{6182,635,0},{6183,627,0},{6183,607,0},{6177,618,0}, {6177,617,0},{6177,610,0},{6180,605,0},{6183,597,0},{6177,595,0},{6173,590,0}, {6177,593,0},{6185,593,0},{6183,568,0},{6182,563,0},{6183,570,0},{6185,575,0}, {6188,567,0},{6192,542,0},{6190,535,0},{6187,528,0},{6185,528,0},{6183,533,0}, {6183,525,0},{6182,527,0},{6177,507,0},{6177,523,0},{6175,513,0},{6172,517,0}, {6170,513,0},{6175,505,0},{6173,498,0},{6168,493,0},{6163,497,0},{6163,525,0}, {6165,535,0},{6163,535,0},{6160,510,0},{6162,523,0},{6160,537,0},{6158,542,0}, {6158,532,0},{6160,533,0},{6160,527,0},{6158,515,0},{6155,535,0},{6155,515,0}, {6152,515,0},{6148,528,0},{6148,543,0},{6145,545,0},{6145,555,0},{6148,563,0}, {6150,570,0},{6148,577,0},{6145,580,0},{6148,567,0},{6145,562,0},{6145,555,0}, {6143,553,0},{6147,532,0},{6145,533,0},{6145,532,0},{6147,518,0},{6145,518,0}, {6145,508,0},{6142,495,0},{6140,498,0},{6142,512,0},{6140,508,0},{6137,507,0}, {6140,505,0},{6138,500,0},{6135,500,0},{6133,507,0},{6132,503,0},{6132,505,0}, {6135,515,0},{6137,527,0},{6138,540,0},{6137,563,0},{6137,545,0},{6137,537,0}, {6135,527,0},{6132,532,0},{6125,533,0},{6132,528,0},{6133,522,0},{6133,517,0}, {6130,517,0},{6130,510,0},{6125,495,0},{6125,500,0},{6123,500,0},{6123,507,0}, {6122,500,0},{6122,515,0},{6118,523,0},{6117,522,0},{6118,510,0},{6117,505,0}, {6113,512,0},{6115,517,0},{6113,522,0},{6113,517,0},{6110,520,0},{6112,530,0}, {6110,533,0},{6107,540,0},{6110,548,0},{6113,555,0},{6113,567,0},{6115,575,0}, {6120,578,0},{6115,578,0},{6117,592,0},{6120,603,0},{6118,603,0},{6117,597,0}, {6115,600,0},{6115,613,0},{6118,618,0},{6115,618,0},{6113,623,0},{6112,635,0}, {6112,643,0},{6113,650,0},{6115,652,0},{6120,647,0},{6120,653,0},{6127,650,0}, {6128,652,0},{6125,655,0},{6127,658,0},{6140,670,0},{6133,670,0},{6127,663,0}, {6123,657,0},{6122,657,0},{6118,672,0},{6118,683,0},{6117,692,0},{6118,700,0}, {6115,692,0},{6112,693,0},{6112,695,0},{6113,700,0},{6115,715,0},{6117,717,0}, {6118,722,0},{6117,730,0},{6118,737,0},{6122,730,0},{6127,728,128},{6128,723,0}, {6135,732,0},{6138,727,0},{6138,733,0},{6140,735,0},{6148,757,0},{6137,737,0}, {6133,737,0},{6128,730,0},{6127,733,0},{6122,735,0},{6120,738,0},{6120,760,0}, {6123,763,0},{6123,770,0},{6120,765,0},{6118,743,0},{6115,735,0},{6112,738,0}, {6110,743,0},{6113,723,0},{6112,718,0},{6110,700,0},{6097,707,0},{6095,717,0}, {6090,717,0},{6087,712,0},{6093,713,0},{6097,703,0},{6093,687,0},{6100,700,0}, {6108,695,0},{6108,687,0},{6113,685,0},{6113,682,0},{6115,667,0},{6117,662,0}, {6110,655,0},{6107,640,0},{6100,637,0},{6102,633,0},{6107,637,0},{6107,630,0}, {6103,625,0},{6107,627,0},{6110,627,0},{6112,612,0},{6112,583,0},{6108,583,0}, {6107,578,0},{6110,578,0},{6112,577,0},{6108,568,0},{6108,560,0},{6105,563,0}, {6107,557,0},{6105,547,0},{6100,545,0},{6103,542,0},{6103,528,0},{6105,523,0}, {6107,507,0},{6103,500,0},{6098,500,0},{6097,508,0},{6098,513,0},{6097,515,0}, {6095,510,0},{6087,510,0},{6088,508,0},{6095,508,0},{6097,500,0},{6095,498,0}, {6083,505,0},{6083,513,0},{6082,512,0},{6080,515,0},{6085,517,0},{6083,517,0}, {6082,525,0},{6083,532,0},{6087,533,0},{6090,548,0},{6088,547,0},{6087,553,0}, {6087,550,0},{6085,537,0},{6083,533,0},{6080,535,0},{6080,528,0},{6077,523,0}, {6075,525,0},{6073,537,0},{6065,543,0},{6068,540,0},{6067,537,0},{6063,543,0}, {6067,535,0},{6063,537,0},{6063,533,0},{6072,528,0},{6077,505,0},{6080,500,0}, {6080,493,0},{6077,502,0},{6073,505,0},{6072,513,0},{6070,515,0},{6070,508,0}, {6065,518,0},{6062,523,0},{6067,513,0},{6065,508,0},{6055,527,0},{6057,537,0}, {6060,540,0},{6063,553,0},{6068,553,0},{6070,560,0},{6075,568,0},{6070,567,0}, {6070,575,0},{6067,572,0},{6065,575,0},{6063,572,0},{6047,572,0},{6045,570,0}, {6045,565,0},{6042,563,0},{6042,550,0},{6052,530,0},{6047,523,0},{6038,530,0}, {6038,520,0},{6037,515,0},{6035,515,0},{6033,515,0},{6035,520,0},{6032,523,0}, {6032,517,0},{6028,517,0},{6027,532,0},{6020,522,0},{6022,530,0},{6020,535,0}, {6018,530,0},{6017,537,0},{6015,535,0},{6013,542,0},{6017,543,0},{6022,553,0}, {6035,562,0},{6038,572,0},{6038,573,0},{6037,572,0},{6035,567,0},{6025,557,0}, {6023,558,0},{6027,563,0},{6023,560,0},{6023,570,0},{6020,557,0},{6017,558,0}, {6015,555,0},{6013,558,0},{6015,565,0},{6018,567,0},{6020,578,0},{6017,570,0}, {6013,573,0},{6010,570,0},{6008,572,0},{6007,575,0},{6008,575,0},{6008,580,0}, {6007,577,0},{6007,568,0},{6000,570,0},{5998,575,0},{6002,577,0},{6000,578,0}, {6003,588,0},{6017,585,0},{6017,592,0},{6027,600,0},{6023,612,0},{6025,613,0}, {6028,617,0},{6030,615,0},{6035,618,0},{6037,612,0},{6037,625,0},{6042,618,0}, {6047,618,0},{6040,623,0},{6038,628,0},{6042,638,0},{6047,657,0},{6052,668,0}, {6050,670,0},{6047,660,0},{6045,660,0},{6043,663,0},{6045,670,0},{6047,673,0}, {6050,685,0},{6053,690,0},{6058,700,0},{6055,697,0},{6050,690,0},{6050,710,0}, {6047,705,0},{6048,693,0},{6047,682,0},{6043,673,0},{6038,670,0},{6037,665,0}, {6027,657,0},{6023,658,0},{6017,653,0},{6008,652,0},{6012,650,0},{6027,653,0}, {6042,663,0},{6043,653,0},{6042,647,0},{6038,643,0},{6037,633,0},{6033,633,0}, {6032,627,0},{6030,620,0},{6027,622,0},{6022,615,0},{6018,607,0},{6010,612,0}, {6012,618,0},{6015,625,0},{6013,625,0},{6012,628,0},{6007,603,0},{6000,595,0}, {5997,598,0},{5995,597,0},{5993,577,0},{5990,573,0},{5987,573,0},{5985,565,0}, {5985,570,0},{5985,572,0},{5985,570,0},{5983,570,0},{5977,583,0},{5978,592,0}, {5985,593,0},{5985,597,0},{5985,595,0},{5982,597,0},{5978,593,0},{5977,595,0}, {5975,598,0},{5977,605,0},{5983,620,0},{5985,630,0},{5982,622,0},{5975,607,0}, {5973,595,0},{5975,593,0},{5977,590,0},{5973,588,0},{5972,582,0},{5968,573,0}, {5967,578,0},{5967,588,0},{5965,588,0},{5965,577,0},{5960,577,0},{5960,572,0}, {5963,573,0},{5965,572,0},{5967,557,0},{5963,553,0},{5958,553,0},{5955,552,0}, {5950,542,0},{5953,542,0},{5953,545,0},{5957,550,0},{5962,548,0},{5970,552,0}, {5973,548,0},{5967,540,0},{5962,543,0},{5960,542,0},{5965,537,0},{5958,527,0}, {5953,520,0},{5952,525,0},{5950,518,0},{5943,520,0},{5940,527,0},{5935,528,0}, {5933,532,0},{5935,533,0},{5942,533,0},{5930,538,0},{5930,542,0},{5937,540,0}, {5940,543,0},{5930,543,0},{5927,552,0},{5933,558,0},{5940,558,0},{5942,555,0}, {5940,560,0},{5933,565,0},{5928,562,0},{5930,568,0},{5933,572,0},{5935,585,0}, {5938,587,0},{5943,578,0},{5940,565,0},{5943,572,0},{5947,570,0},{5945,573,0}, {5947,580,0},{5952,578,0},{5953,580,0},{5948,588,0},{5948,615,0},{5945,598,0}, {5945,588,0},{5942,588,0},{5935,593,0},{5938,600,0},{5940,597,0},{5943,598,0}, {5940,602,0},{5942,607,0},{5945,615,0},{5953,622,0},{5965,630,0},{5965,632,0}, {5952,625,0},{5957,638,0},{5955,655,0},{5955,645,0},{5950,623,0},{5943,618,0}, {5938,603,0},{5933,600,0},{5932,602,0},{5933,605,0},{5932,610,0},{5933,615,0}, {5932,618,0},{5933,620,0},{5937,620,0},{5933,623,0},{5930,623,0},{5930,608,0}, {5925,612,0},{5928,625,0},{5932,633,0},{5932,647,0},{5932,633,0},{5927,627,0}, {5925,617,0},{5917,600,0},{5913,602,0},{5915,612,0},{5910,590,0},{5907,587,0}, {5902,593,0},{5902,602,0},{5898,605,0},{5898,600,0},{5897,597,0},{5890,603,0}, {5897,610,0},{5900,615,0},{5903,640,0},{5905,662,0},{5902,637,0},{5895,612,0}, {5888,605,0},{5885,613,0},{5883,622,0},{5883,617,0},{5885,608,0},{5890,595,0}, {5893,593,0},{5897,585,0},{5895,582,0},{5892,582,0},{5893,575,0},{5887,572,0}, {5897,572,0},{5903,555,0},{5898,553,0},{5898,558,0},{5897,555,0},{5892,563,0}, {5890,562,0},{5895,555,0},{5893,553,0},{5888,557,0},{5887,553,0},{5880,552,0}, {5875,545,0},{5870,552,0},{5867,552,0},{5862,557,0},{5855,563,0},{5852,572,0}, {5848,575,0},{5847,595,0},{5842,597,0},{5838,602,0},{5830,628,0},{5827,633,0}, {5827,647,0},{5823,660,0},{5825,662,0},{5832,662,0},{5832,670,0},{5830,670,0}, {5828,665,0},{5828,663,0},{5822,668,0},{5827,685,0},{5820,667,0},{5818,665,0}, {5817,667,0},{5817,660,0},{5813,657,0},{5812,653,0},{5807,660,0},{5805,677,0}, {5807,678,0},{5812,668,0},{5818,672,0},{5812,673,0},{5812,682,0},{5818,678,0}, {5818,680,0},{5815,682,0},{5812,690,0},{5813,698,0},{5812,695,0},{5812,685,0}, {5808,680,0},{5807,688,0},{5810,690,0},{5808,692,0},{5805,692,0},{5810,697,0}, {5810,700,0},{5808,698,0},{5803,695,0},{5810,715,0},{5805,712,0},{5807,708,0}, {5805,705,0},{5803,700,0},{5798,700,0},{5800,707,0},{5803,707,0},{5805,715,0}, {5803,717,0},{5805,725,0},{5803,727,0},{5800,748,0},{5802,758,0},{5803,758,0}, {5802,760,0},{5802,762,0},{5805,763,0},{5805,767,0},{5807,767,0},{5805,770,0}, {5807,773,0},{5807,788,0},{5808,795,0},{5812,795,0},{5815,802,0},{5822,802,0}, {5815,808,0},{5813,803,0},{5810,805,0},{5810,812,0},{5810,813,0},{5815,817,0}, {5812,822,0},{5815,822,0},{5818,827,0},{5820,825,0},{5825,837,0},{5823,840,0}, {5827,840,0},{5825,843,0},{5825,850,0},{5828,850,0},{5835,858,0},{5832,860,0}, {5837,863,0},{5837,868,0},{5843,872,0},{5848,883,0},{5855,895,0},{5858,895,0}, {5860,892,0},{5858,897,0},{5860,903,0},{5867,920,0},{5868,918,0},{5868,905,0}, {5870,920,0},{5872,922,0},{5873,910,0},{5872,917,0},{5872,907,0},{5873,907,0}, {5873,930,0},{5878,940,0},{5878,937,0},{5883,945,0},{5885,940,0},{5882,930,0}, {5883,927,0},{5887,930,0},{5885,933,0},{5887,940,0},{5888,940,0},{5888,937,0}, {5890,938,0},{5888,945,0},{5890,947,0},{5890,950,0},{5890,952,0},{5893,947,0}, {5892,958,0},{5893,960,0},{5895,965,0},{5895,968,0},{5898,965,0},{5900,970,0}, {5898,972,0},{5902,972,0},{5903,963,0},{5908,962,0},{5912,953,0},{5912,960,0}, {5913,963,0},{5912,963,0},{5907,965,0},{5905,968,0},{5908,970,0},{5903,975,0}, {5905,978,0},{5900,985,0},{5897,985,0},{5897,982,0},{5895,983,0},{5897,1002,0}, {5903,1003,0},{5902,1007,0},{5905,1013,0},{5905,1017,0},{5903,1017,0},{5902,1012,0}, {5900,1013,0},{5902,1022,0},{5907,1020,0},{5912,1023,0},{5903,1027,0},{5910,1027,0}, {5905,1030,0},{5913,1028,0},{5912,1032,0},{5920,1033,0},{5922,1037,0},{5927,1037,0}, {5925,1043,0},{5923,1045,0},{5927,1048,0},{5932,1052,0},{5935,1045,0},{5942,1047,0}, {5945,1043,0},{5945,1037,0},{5955,1023,0},{5952,1037,0},{5955,1038,0},{5958,1040,0}, {5967,1038,0},{5970,1027,0},{5973,1022,0},{5973,1027,0},{5973,1030,0},{5970,1033,0}, {5970,1037,0},{5967,1042,0},{5953,1042,0},{5952,1045,0},{5955,1055,0},{5960,1062,0}, {5963,1060,0},{5968,1052,0},{5973,1050,0},{5983,1050,0},{5985,1047,0},{5987,1050,0}, {5988,1057,0},{5987,1060,0},{5990,1062,0},{5988,1067,0},{5990,1068,0},{5988,1075,0}, {5983,1077,0},{5973,1072,0},{5983,1067,0},{5985,1063,0},{5973,1055,0},{5968,1058,0}, {5968,1062,0},{5952,1065,0},{5947,1070,0},{5943,1067,0},{5948,1067,0},{5947,1062,0}, {5942,1058,0},{5940,1065,0},{5937,1065,0},{5932,1068,0},{5932,1072,0},{5933,1073,0}, {5932,1078,0},{5928,1075,0},{5922,1073,0},{5925,1077,0},{5922,1078,0},{5918,1078,0}, {5918,1080,0},{5915,1083,0},{5918,1085,0},{5920,1090,0},{5913,1090,0},{5913,1095,0}, {5918,1095,0},{5917,1100,0},{5915,1103,0},{5913,1103,0},{5912,1107,0},{5913,1110,0}, {5917,1108,0},{5913,1112,0},{5917,1115,0},{5918,1113,0},{5920,1117,0},{5915,1118,0}, {5915,1120,0},{5912,1117,0},{5910,1122,0},{5912,1130,0},{5910,1137,0},{5898,1143,0}, {6927,6505,128},{6925,6492,0},{6920,6495,0},{6915,6480,0},{6917,6477,0}, {6922,6480,0},{6925,6478,0},{6930,6487,0},{6928,6493,0},{6928,6500,0},{6932,6498,0}, {6952,6428,0},{6967,6342,0},{6970,6308,0},{6975,6250,0},{6975,6202,0},{6978,6173,0}, {6977,6158,0},{6980,6140,0},{6983,6127,0},{6983,6115,0},{6987,6110,0},{6985,6105,0}, {6987,6087,0},{6985,6077,0},{6982,6070,0},{6973,6072,0},{6972,6063,0},{6967,6067,0}, {6967,6050,0},{6967,6028,0},{6963,6015,0},{6957,6013,0},{6955,6022,0},{6952,6022,0}, {6947,6030,0},{6932,6055,0},{6922,6060,0},{6913,6058,0},{6912,6063,0},{6912,6073,0}, {6917,6073,0},{6913,6088,0},{6908,6093,0},{6900,6095,0},{6892,6092,0},{6890,6097,0}, {6890,6083,0},{6875,6060,0},{6872,6047,0},{6868,6008,0},{6870,6000,0},{6872,5995,0}, {6872,5990,0},{6868,5982,0},{6863,5977,0},{6860,5987,0},{6847,5997,0},{6837,5983,0}, {6833,5965,0},{6838,5937,0},{6840,5913,0},{6842,5907,0},{6848,5908,0},{6853,5912,0}, {6857,5907,0},{6862,5907,0},{6863,5912,0},{6870,5918,0},{6872,5927,0},{6870,5940,0}, {6875,5943,0},{6877,5942,0},{6890,5910,0},{6893,5888,0},{6897,5902,0},{6898,5923,0}, {6900,5923,0},{6900,5893,0},{6895,5852,0},{6890,5828,0},{6883,5825,0},{6878,5828,0}, {6877,5843,0},{6873,5842,0},{6873,5833,0},{6875,5837,0},{6878,5825,0},{6883,5820,0}, {6887,5825,0},{6888,5823,0},{6885,5797,0},{6882,5795,0},{6878,5798,0},{6875,5792,0}, {6873,5758,0},{6868,5753,0},{6865,5745,0},{6858,5740,0},{6855,5728,0},{6853,5708,0}, {6857,5687,0},{6863,5663,0},{6863,5657,0},{6858,5650,0},{6862,5653,0},{6863,5652,0}, {6860,5633,0},{6863,5613,0},{6867,5597,0},{6860,5583,0},{6857,5568,0},{6857,5558,0}, {6857,5547,0},{6855,5532,0},{6852,5523,0},{6850,5520,0},{6847,5510,0},{6843,5507,0}, {6843,5500,0},{6840,5493,0},{6833,5492,0},{6832,5485,0},{6828,5492,0},{6825,5493,0}, {6817,5482,0},{6818,5465,0},{6830,5455,0},{6830,5452,0},{6830,5447,0},{6820,5423,0}, {6820,5420,0},{6825,5417,0},{6832,5420,0},{6825,5410,0},{6822,5400,0},{6822,5387,0}, {6823,5383,0},{6825,5370,0},{6825,5347,0},{6823,5333,0},{6825,5325,0},{6827,5320,0}, {6835,5333,0},{6833,5337,0},{6835,5338,0},{6837,5343,0},{6835,5358,0},{6833,5367,0}, {6835,5368,0},{6840,5358,0},{6840,5362,0},{6840,5368,0},{6833,5380,0},{6835,5382,0}, {6838,5385,0},{6840,5395,0},{6850,5390,0},{6860,5375,0},{6865,5372,0},{6870,5383,0}, {6875,5382,0},{6880,5385,0},{6882,5398,0},{6885,5402,0},{6888,5372,0},{6888,5368,0}, {6885,5373,0},{6885,5368,0},{6888,5360,0},{6890,5360,0},{6893,5375,0},{6893,5397,0}, {6895,5433,0},{6898,5445,0},{6897,5452,0},{6900,5457,0},{6902,5443,0},{6897,5383,0}, {6892,5347,0},{6887,5322,0},{6860,5228,0},{6858,5240,0},{6862,5245,0},{6863,5252,0}, {6865,5263,0},{6862,5262,0},{6862,5250,0},{6858,5248,0},{6853,5258,0},{6848,5272,0}, {6847,5273,0},{6842,5267,0},{6840,5257,0},{6835,5245,0},{6833,5232,0},{6830,5227,0}, {6838,5213,0},{6842,5228,0},{6847,5228,0},{6847,5235,0},{6848,5235,0},{6850,5218,0}, {6848,5205,0},{6850,5205,0},{6853,5218,0},{6858,5220,0},{6853,5205,0},{6848,5178,0}, {6848,5158,0},{6845,5153,0},{6845,5158,0},{6843,5157,0},{6842,5150,0},{6843,5143,0}, {6838,5128,0},{6838,5113,0},{6835,5108,0},{6833,5088,0},{6835,5083,0},{6837,5078,0}, {6827,5058,0},{6812,5007,0},{6807,5003,0},{6803,4997,0},{6802,4985,0},{6805,4998,0}, {6808,5002,0},{6798,4965,0},{6787,4923,0},{6785,4895,0},{6787,4880,0},{6793,4867,0}, {6793,4858,0},{6783,4880,0},{6777,4880,0},{6773,4877,0},{6772,4888,0},{6767,4905,0}, {6765,4905,0},{6763,4910,0},{6763,4900,0},{6765,4897,0},{6767,4898,0},{6770,4885,0}, {6768,4882,0},{6768,4872,0},{6770,4873,0},{6772,4868,0},{6770,4863,0},{6767,4853,0}, {6767,4843,0},{6768,4835,0},{6768,4825,0},{6758,4810,0},{6760,4807,0},{6763,4810,0}, {6765,4800,0},{6758,4783,0},{6757,4782,0},{6747,4793,0},{6743,4795,0},{6733,4777,0}, {6723,4778,0},{6718,4768,0},{6712,4775,0},{6703,4775,0},{6698,4770,0},{6693,4758,0}, {6688,4760,0},{6687,4757,0},{6690,4757,0},{6692,4740,0},{6685,4705,0},{6685,4695,0}, {6683,4692,0},{6682,4658,0},{6677,4650,0},{6673,4638,0},{6678,4648,0},{6682,4653,0}, {6683,4660,0},{6687,4657,0},{6682,4603,0},{6685,4598,0},{6690,4582,0},{6697,4578,0}, {6708,4565,0},{6717,4560,0},{6728,4513,0},{6735,4492,0},{6748,4495,0},{6758,4515,0}, {6758,4530,0},{6760,4533,0},{6768,4535,0},{6770,4530,0},{6773,4538,0},{6777,4562,0}, {6777,4582,0},{6780,4615,0},{6783,4633,0},{6780,4667,0},{6782,4672,0},{6792,4672,0}, {6793,4665,0},{6800,4657,0},{6810,4655,0},{6810,4647,0},{6812,4652,0},{6813,4653,0}, {6822,4635,0},{6820,4633,0},{6822,4628,0},{6832,4610,0},{6832,4603,0},{6843,4593,0}, {6845,4595,0},{6845,4602,0},{6847,4600,0},{6857,4527,0},{6857,4480,0},{6853,4420,0}, {6853,4407,0},{6858,4385,0},{6863,4375,0},{6863,4363,0},{6868,4350,0},{6868,4337,0}, {6867,4327,0},{6862,4332,0},{6847,4373,0},{6840,4400,0},{6828,4423,0},{6803,4418,0}, {6805,4428,0},{6807,4442,0},{6805,4433,0},{6800,4415,0},{6798,4415,0},{6798,4422,0}, {6797,4413,0},{6795,4413,0},{6792,4413,0},{6793,4422,0},{6792,4427,0},{6788,4420,0}, {6788,4410,0},{6788,4408,0},{6778,4413,0},{6770,4407,0},{6770,4415,0},{6768,4415,0}, {6765,4412,0},{6768,4408,0},{6767,4403,0},{6743,4382,0},{6733,4375,0},{6722,4375,0}, {6720,4378,0},{6717,4390,0},{6718,4403,0},{6717,4417,0},{6708,4427,0},{6710,4438,0}, {6705,4430,0},{6702,4440,0},{6693,4448,0},{6692,4452,0},{6690,4447,0},{6683,4448,0}, {6680,4437,0},{6678,4437,0},{6667,4448,0},{6667,4457,0},{6662,4440,0},{6650,4437,0}, {6647,4425,0},{6632,4412,0},{6618,4408,0},{6608,4417,0},{6600,4412,0},{6593,4418,0}, {6587,4418,0},{6602,4402,0},{6608,4405,0},{6618,4385,0},{6618,4370,0},{6615,4363,0}, {6613,4350,0},{6608,4338,0},{6607,4338,0},{6603,4352,0},{6597,4352,0},{6603,4345,0}, {6603,4335,0},{6610,4330,0},{6610,4337,0},{6615,4345,0},{6620,4363,0},{6623,4370,0}, {6627,4367,0},{6632,4357,0},{6633,4338,0},{6642,4330,0},{6642,4300,0},{6638,4255,0}, {6640,4258,0},{6642,4267,0},{6645,4265,0},{6647,4258,0},{6653,4222,0},{6650,4213,0}, {6633,4192,0},{6618,4165,0},{6617,4165,0},{6615,4153,0},{6607,4135,0},{6600,4100,0}, {6597,4070,0},{6578,4042,0},{6568,4012,0},{6562,3985,0},{6557,3977,0},{6552,3972,0}, {6538,3972,0},{6522,3995,0},{6505,4013,0},{6502,4028,0},{6493,4037,0},{6480,4045,0}, {6477,4052,0},{6475,4052,0},{6477,4047,0},{6475,4042,0},{6473,4042,0},{6457,4053,0}, {6453,4050,0},{6457,4035,0},{6455,4018,0},{6462,4005,0},{6467,3983,0},{6460,3978,0}, {6462,3988,0},{6460,3992,0},{6458,3975,0},{6455,3975,0},{6457,3955,0},{6475,3893,0}, {6478,3865,0},{6482,3847,0},{6480,3842,0},{6477,3848,0},{6475,3848,0},{6475,3835,0}, {6475,3830,0},{6472,3818,0},{6467,3817,0},{6463,3805,0},{6465,3803,0},{6470,3813,0}, {6473,3803,0},{6477,3805,0},{6478,3817,0},{6478,3825,0},{6480,3832,0},{6477,3840,0}, {6480,3837,0},{6487,3842,0},{6485,3822,0},{6485,3807,0},{6488,3798,0},{6497,3775,0}, {6502,3775,0},{6505,3772,0},{6513,3743,0},{6515,3730,0},{6520,3703,0},{6518,3685,0}, {6517,3683,0},{6508,3687,0},{6502,3682,0},{6498,3683,0},{6492,3665,0},{6493,3658,0}, {6495,3652,0},{6495,3643,0},{6487,3647,0},{6483,3657,0},{6483,3650,0},{6475,3655,0}, {6472,3672,0},{6450,3700,0},{6438,3718,0},{6435,3735,0},{6438,3750,0},{6438,3758,0}, {6437,3763,0},{6440,3767,0},{6443,3770,0},{6445,3777,0},{6445,3780,0},{6438,3780,0}, {6437,3785,0},{6435,3795,0},{6433,3790,0},{6430,3802,0},{6423,3790,0},{6415,3805,0}, {6402,3808,0},{6393,3800,0},{6390,3782,0},{6392,3765,0},{6388,3758,0},{6385,3758,0}, {6382,3753,0},{6380,3740,0},{6382,3728,0},{6388,3717,0},{6390,3698,0},{6393,3693,0}, {6390,3685,0},{6393,3677,0},{6392,3668,0},{6397,3660,0},{6397,3648,0},{6400,3645,0}, {6402,3628,0},{6407,3628,0},{6410,3622,0},{6415,3628,0},{6415,3622,0},{6425,3608,0}, {6423,3603,0},{6418,3600,0},{6425,3590,0},{6432,3587,0},{6440,3557,0},{6433,3558,0}, {6435,3553,0},{6433,3533,128},{6437,3532,0},{6438,3513,0},{6443,3510,0}, {6445,3495,0},{6452,3495,0},{6452,3485,0},{6455,3475,0},{6455,3482,0},{6458,3483,0}, {6463,3497,0},{6470,3483,0},{6472,3482,0},{6477,3502,0},{6478,3490,0},{6477,3483,0}, {6475,3480,0},{6477,3475,0},{6480,3487,0},{6485,3495,0},{6497,3477,0},{6498,3470,0}, {6503,3482,0},{6505,3480,0},{6505,3475,0},{6510,3478,0},{6512,3467,0},{6515,3467,0}, {6517,3463,0},{6518,3468,0},{6523,3460,0},{6525,3463,0},{6525,3453,0},{6528,3453,0}, {6528,3447,0},{6535,3447,0},{6538,3440,0},{6538,3430,0},{6538,3432,0},{6538,3438,0}, {6542,3437,0},{6540,3450,0},{6545,3450,0},{6545,3468,0},{6548,3463,0},{6552,3472,0}, {6558,3473,0},{6560,3478,0},{6567,3473,0},{6567,3470,0},{6572,3475,0},{6572,3468,0}, {6580,3468,0},{6570,3492,0},{6572,3497,0},{6575,3490,0},{6577,3487,0},{6583,3490,0}, {6582,3483,0},{6588,3487,0},{6590,3485,0},{6592,3477,0},{6590,3470,0},{6593,3472,0}, {6595,3467,0},{6598,3472,0},{6605,3462,0},{6607,3457,0},{6608,3455,0},{6615,3435,0}, {6618,3415,0},{6620,3417,0},{6625,3410,0},{6625,3397,0},{6622,3390,0},{6627,3388,0}, {6630,3362,0},{6632,3365,0},{6633,3362,0},{6632,3350,0},{6632,3332,0},{6635,3343,0}, {6635,3367,0},{6637,3365,0},{6640,3352,0},{6642,3372,0},{6643,3373,0},{6645,3358,0}, {6648,3363,0},{6648,3360,0},{6647,3353,0},{6648,3332,0},{6652,3330,0},{6653,3322,0}, {6650,3312,0},{6652,3295,0},{6653,3295,0},{6655,3307,0},{6655,3317,0},{6657,3317,0}, {6652,3348,0},{6652,3353,0},{6653,3353,0},{6655,3345,0},{6658,3342,0},{6662,3325,0}, {6662,3322,0},{6658,3322,0},{6660,3312,0},{6657,3310,0},{6658,3287,0},{6660,3288,0}, {6660,3307,0},{6665,3313,0},{6662,3332,0},{6665,3332,0},{6668,3318,0},{6668,3297,0}, {6672,3280,0},{6673,3277,0},{6673,3285,0},{6673,3287,0},{6673,3293,0},{6677,3292,0}, {6680,3268,0},{6683,3268,0},{6688,3255,0},{6688,3242,0},{6690,3248,0},{6693,3250,0}, {6695,3238,0},{6695,3253,0},{6697,3257,0},{6703,3250,0},{6707,3228,0},{6708,3235,0}, {6712,3225,0},{6712,3210,0},{6712,3192,0},{6715,3192,0},{6715,3185,0},{6717,3188,0}, {6713,3207,0},{6717,3237,0},{6713,3245,0},{6713,3260,0},{6708,3277,0},{6708,3297,0}, {6705,3280,0},{6698,3282,0},{6682,3318,0},{6672,3353,0},{6673,3355,0},{6677,3348,0}, {6673,3355,0},{6678,3352,0},{6675,3363,0},{6678,3353,0},{6682,3352,0},{6678,3358,0}, {6683,3358,0},{6680,3363,0},{6680,3367,0},{6677,3377,0},{6670,3383,0},{6670,3387,0}, {6672,3388,0},{6668,3393,0},{6668,3402,0},{6670,3403,0},{6668,3405,0},{6670,3410,0}, {6677,3415,0},{6672,3415,0},{6667,3408,0},{6667,3415,0},{6668,3417,0},{6667,3420,0}, {6667,3432,0},{6665,3448,0},{6665,3452,0},{6663,3452,0},{6663,3437,0},{6662,3435,0}, {6653,3447,0},{6653,3455,0},{6660,3478,0},{6660,3488,0},{6653,3503,0},{6647,3520,0}, {6645,3533,0},{6642,3538,0},{6638,3552,0},{6638,3568,0},{6630,3638,0},{6627,3697,0}, {6625,3715,0},{6620,3740,0},{6613,3760,0},{6608,3797,0},{6605,3855,0},{6608,3883,0}, {6610,3893,0},{6612,3925,0},{6613,3935,0},{6618,3953,0},{6620,3973,0},{6623,3985,0}, {6628,4007,0},{6633,4018,0},{6640,4045,0},{6645,4057,0},{6650,4060,0},{6653,4072,0}, {6658,4073,0},{6678,4113,0},{6683,4122,0},{6695,4130,0},{6700,4127,0},{6700,4133,0}, {6702,4137,0},{6708,4133,0},{6712,4138,0},{6715,4133,0},{6720,4137,0},{6723,4132,0}, {6722,4125,0},{6723,4113,0},{6725,4112,0},{6742,4115,0},{6747,4108,0},{6747,4100,0}, {6753,4102,0},{6755,4098,0},{6763,4105,0},{6772,4100,0},{6773,4092,0},{6772,4082,0}, {6778,4068,0},{6782,4067,0},{6780,4057,0},{6775,4055,0},{6775,4048,0},{6783,4032,0}, {6785,4042,0},{6790,4037,0},{6790,4028,0},{6793,4027,0},{6795,4013,0},{6800,4008,0}, {6803,3998,0},{6810,3993,0},{6817,3978,0},{6817,3973,0},{6817,3970,0},{6812,3978,0}, {6803,3985,0},{6807,3952,0},{6813,3937,0},{6827,3893,0},{6828,3895,0},{6830,3893,0}, {6832,3878,0},{6838,3862,0},{6838,3860,0},{6835,3860,0},{6837,3852,0},{6837,3850,0}, {6828,3877,0},{6835,3845,0},{6833,3840,0},{6840,3840,0},{6843,3833,0},{6847,3822,0}, {6848,3820,0},{6850,3807,0},{6855,3803,0},{6865,3782,0},{6873,3758,0},{6873,3745,0}, {6878,3737,0},{6880,3723,0},{6883,3723,0},{6895,3675,0},{6902,3660,0},{6905,3633,0}, {6907,3627,0},{6910,3625,0},{6913,3608,0},{6912,3607,0},{6917,3598,0},{6927,3533,0}, {6927,3515,0},{6922,3527,0},{6918,3518,0},{6922,3510,0},{6922,3503,0},{6918,3497,0}, {6923,3498,0},{6925,3467,0},{6927,3460,0},{6928,3442,0},{6930,3442,0},{6932,3435,0}, {6932,3408,0},{6933,3395,0},{6933,3385,0},{6930,3387,0},{6932,3378,0},{6930,3372,0}, {6932,3375,0},{6933,3372,0},{6932,3358,0},{6920,3357,0},{6915,3350,0},{6913,3345,0}, {6910,3343,0},{6905,3307,0},{6895,3302,0},{6907,3303,0},{6908,3312,0},{6910,3327,0}, {6915,3340,0},{6918,3352,0},{6922,3353,0},{6920,3342,0},{6922,3340,0},{6923,3340,0}, {6923,3330,0},{6925,3343,0},{6927,3347,0},{6928,3340,0},{6927,3325,0},{6927,3323,0}, {6930,3328,0},{6930,3337,0},{6935,3348,0},{6937,3350,0},{6937,3342,0},{6940,3350,0}, {6942,3352,0},{6945,3345,0},{6943,3335,0},{6945,3332,0},{6940,3308,0},{6938,3297,0}, {6930,3290,0},{6932,3287,0},{6930,3282,0},{6935,3283,0},{6947,3308,0},{6947,3290,0}, {6942,3278,0},{6945,3280,0},{6947,3290,0},{6948,3287,0},{6950,3267,0},{6948,3262,0}, {6948,3258,0},{6950,3255,0},{6948,3253,0},{6948,3245,0},{6947,3242,0},{6943,3228,0}, {6943,3218,0},{6943,3228,0},{6950,3242,0},{6950,3250,0},{6953,3240,0},{6957,3243,0}, {6958,3238,0},{6957,3228,0},{6960,3213,0},{6957,3202,0},{6963,3207,0},{6965,3197,0}, {6967,3210,0},{6975,3212,0},{6972,3218,0},{6965,3217,0},{6963,3237,0},{6965,3243,0}, {6963,3248,0},{6958,3287,0},{6962,3305,0},{6965,3312,0},{6973,3313,0},{6975,3310,0}, {6980,3270,0},{6978,3265,0},{6978,3258,0},{6980,3250,0},{6985,3250,0},{6988,3235,0}, {6988,3225,0},{6995,3208,0},{6997,3193,0},{6992,3192,0},{6990,3198,0},{6978,3210,0}, {6978,3207,0},{6977,3205,0},{6980,3202,0},{6985,3182,0},{6983,3173,0},{6980,3172,0}, {6973,3168,0},{6970,3180,0},{6968,3180,0},{6970,3153,0},{6968,3153,0},{6970,3145,0}, {6968,3143,0},{6962,3130,0},{6968,3140,0},{6972,3140,0},{6975,3127,0},{6980,3088,0}, {6978,3078,0},{7387,11130,128},{7398,11120,0},{7400,11127,0},{7398,11138,0}, {7400,11145,0},{7400,11153,0},{7403,11157,0},{7405,11145,0},{7403,11120,0}, {7402,11110,0},{7398,11107,0},{7395,11110,0},{7390,11100,0},{7392,11090,0}, {7395,11078,0},{7395,11072,0},{7400,11057,0},{7402,11020,0},{7402,11007,0}, {7397,10988,0},{7388,10983,0},{7383,10957,0},{7382,10952,0},{7375,10953,0}, {7368,10965,0},{7367,10975,0},{7368,10975,0},{7370,10980,0},{7370,11027,0}, {7375,11048,0},{7375,11060,0},{7378,11065,0},{7377,11092,0},{7373,11088,0}, {7370,11092,0},{7368,11088,0},{7367,11067,0},{7365,11062,0},{7365,11047,0}, {7363,11040,0},{7360,11042,0},{7358,11012,0},{7355,11008,0},{7355,11015,0}, {7350,11010,0},{7350,11002,0},{7347,10982,0},{7345,10960,0},{7345,10950,0}, {7355,10922,0},{7355,10917,0},{7352,10918,0},{7348,10932,0},{7345,10943,0}, {7342,10942,0},{7347,10922,0},{7345,10920,0},{7342,10927,0},{7338,10915,0}, {7335,10893,0},{7333,10872,0},{7332,10858,0},{7330,10823,0},{7327,10820,0}, {7327,10838,0},{7322,10835,0},{7322,10822,0},{7325,10810,0},{7322,10795,0}, {7318,10783,0},{7317,10773,0},{7318,10703,0},{7315,10692,0},{7313,10680,0}, {7318,10635,0},{7315,10627,0},{7313,10620,0},{7310,10617,0},{7298,10622,0}, {7297,10628,0},{7295,10600,0},{7288,10595,0},{7287,10577,0},{7282,10567,0}, {7277,10545,0},{7277,10507,0},{7278,10507,0},{7280,10530,0},{7283,10535,0}, {7290,10567,0},{7295,10570,0},{7300,10583,0},{7310,10585,0},{7315,10602,0}, {7328,10607,0},{7332,10628,0},{7332,10655,0},{7330,10665,0},{7333,10680,0}, {7343,10688,0},{7353,10717,0},{7355,10717,0},{7357,10710,0},{7362,10715,0}, {7362,10732,0},{7363,10735,0},{7362,10743,0},{7363,10767,0},{7360,10775,0}, {7362,10778,0},{7367,10797,0},{7367,10803,0},{7365,10810,0},{7363,10807,0}, {7377,10848,0},{7382,10843,0},{7380,10850,0},{7382,10857,0},{7393,10877,0}, {7397,10892,0},{7403,10908,0},{7407,10923,0},{7408,10950,0},{7418,10985,0}, {7423,10995,0},{7430,10998,0},{7428,10972,0},{7430,10962,0},{7430,10955,0}, {7432,10963,0},{7432,10978,0},{7432,10980,0},{7432,10990,0},{7437,11003,0}, {7437,11020,0},{7443,11038,0},{7448,11028,0},{7448,11035,0},{7447,11050,0}, {7448,11060,0},{7453,11082,0},{7455,11095,0},{7457,11105,0},{7460,11100,0}, {7460,11112,0},{7468,11140,0},{7468,11160,0},{7467,11173,0},{7467,11180,0}, {7472,11195,0},{7473,11190,0},{7477,11195,0},{7478,11205,0},{7485,11208,0}, {7488,11213,0},{7492,11257,0},{7498,11288,0},{7507,11302,0},{7508,11310,0}, {7528,11360,0},{7537,11367,0},{7538,11363,0},{7538,11355,0},{7540,11353,0}, {7540,11372,0},{7552,11363,0},{7550,11355,0},{7552,11338,0},{7555,11327,0}, {7565,11328,0},{7562,11300,0},{7555,11302,0},{7555,11283,0},{7558,11278,0}, {7565,11288,0},{7570,11275,0},{7568,11282,0},{7570,11287,0},{7577,11268,0}, {7577,11252,0},{7583,11245,0},{7585,11233,0},{7583,11260,0},{7573,11305,0}, {7570,11313,0},{7567,11303,0},{7568,11330,0},{7567,11343,0},{7565,11360,0}, {7562,11358,0},{7553,11342,0},{7553,11352,0},{7560,11372,0},{7572,11375,0}, {7585,11390,0},{7588,11382,0},{7592,11385,0},{7593,11378,0},{7592,11375,0}, {7592,11372,0},{7592,11362,0},{7587,11363,0},{7585,11348,0},{7587,11355,0}, {7588,11357,0},{7593,11352,0},{7593,11343,0},{7595,11355,0},{7598,11350,0}, {7602,11355,0},{7603,11345,0},{7613,11347,0},{7618,11340,0},{7620,11335,0}, {7620,11323,0},{7622,11323,0},{7623,11330,0},{7625,11327,0},{7625,11293,0}, {7622,11300,0},{7617,11328,0},{7613,11325,0},{7612,11330,0},{7615,11322,0}, {7615,11310,0},{7613,11298,0},{7612,11303,0},{7607,11302,0},{7605,11293,0}, {7605,11257,0},{7608,11280,0},{7613,11285,0},{7620,11278,0},{7620,11260,0}, {7623,11250,0},{7622,11265,0},{7623,11268,0},{7627,11273,0},{7632,11265,0}, {7633,11275,0},{7637,11265,0},{7645,11223,0},{7638,11202,0},{7633,11183,0}, {7648,11220,0},{7660,11177,0},{7662,11165,0},{7662,11147,0},{7662,11145,0}, {7665,11155,0},{7667,11148,0},{7668,11155,0},{7670,11123,0},{7668,11110,0}, {7672,11107,0},{7675,11113,0},{7675,11110,0},{7675,11090,0},{7673,11092,0}, {7672,11073,0},{7673,11063,0},{7677,11060,0},{7675,11045,0},{7673,11030,0}, {7668,11003,0},{7670,10997,0},{7670,10988,0},{7672,10985,0},{7672,10968,0}, {7673,10960,0},{7673,10942,0},{7675,10937,0},{7672,10915,0},{7673,10907,0}, {7672,10880,0},{7672,10845,0},{7670,10830,0},{7673,10828,0},{7673,10795,0}, {7667,10790,0},{7663,10800,0},{7653,10788,0},{7650,10763,0},{7653,10735,0}, {7650,10702,0},{7650,10688,0},{7647,10682,0},{7650,10670,0},{7652,10640,0}, {7660,10638,0},{7660,10645,0},{7660,10653,0},{7655,10658,0},{7658,10668,0}, {7667,10680,0},{7672,10672,0},{7672,10675,0},{7670,10690,0},{7672,10697,0}, {7673,10697,0},{7675,10705,0},{7680,10707,0},{7680,10722,0},{7683,10728,0}, {7685,10720,0},{7687,10735,0},{7688,10727,0},{7690,10748,0},{7693,10750,0}, {7695,10733,0},{7700,10723,0},{7702,10727,0},{7700,10700,0},{7702,10698,0}, {7703,10702,0},{7705,10682,0},{7703,10677,0},{7703,10665,0},{7700,10677,0}, {7700,10673,0},{7700,10665,0},{7702,10657,0},{7702,10650,0},{7703,10648,0}, {7707,10620,0},{7698,10592,0},{7698,10577,0},{7697,10567,0},{7698,10553,0}, {7697,10545,0},{7702,10545,0},{7703,10578,0},{7705,10573,0},{7708,10588,0}, {7713,10592,0},{7712,10585,0},{7712,10560,0},{7708,10535,0},{7710,10515,0}, {7708,10507,0},{7708,10492,0},{7712,10477,0},{7710,10470,0},{7708,10437,0}, {7708,10412,0},{7713,10437,0},{7713,10452,0},{7717,10472,0},{7717,10487,0}, {7717,10495,0},{7720,10527,0},{7723,10530,0},{7725,10552,0},{7728,10545,0}, {7730,10562,0},{7733,10573,0},{7737,10573,0},{7737,10605,0},{7735,10618,0}, {7737,10630,0},{7740,10612,0},{7742,10600,0},{7747,10592,0},{7752,10590,0}, {7753,10583,0},{7757,10587,0},{7757,10565,0},{7753,10538,0},{7757,10523,0}, {7758,10492,0},{7763,10480,0},{7770,10475,0},{7770,10462,0},{7767,10437,0}, {7768,10427,0},{7770,10427,0},{7772,10433,0},{7773,10430,0},{7773,10407,0}, {7763,10365,0},{7762,10335,0},{7765,10327,0},{7763,10305,0},{7758,10290,0}, {7755,10292,0},{7750,10255,0},{7738,10228,0},{7738,10222,0},{7740,10215,0}, {7738,10207,0},{7728,10185,0},{7723,10162,0},{7717,10145,0},{7710,10120,0}, {7707,10117,0},{7705,10123,0},{7698,10122,0},{7698,10095,0},{7697,10092,0}, {7683,10087,0},{7678,10100,0},{7677,10118,0},{7675,10123,0},{7673,10113,0}, {7658,10107,0},{7655,10088,0},{7652,10103,0},{7650,10142,0},{7647,10157,0}, {7647,10178,0},{7642,10198,0},{7640,10218,0},{7638,10225,0},{7640,10188,0}, {7645,10170,0},{7645,10148,0},{7648,10132,0},{7647,10125,0},{7645,10102,0}, {7648,10105,0},{7653,10085,0},{7650,10065,0},{7647,10030,0},{7648,10023,0}, {7647,9943,0},{7652,9892,0},{7650,9882,0},{7647,9883,0},{7640,9902,0},{7635,9903,0}, {7635,9927,0},{7628,9940,0},{7627,9960,0},{7620,9963,0},{7615,9980,0},{7608,9988,0}, {7602,9982,0},{7595,9992,0},{7590,9988,0},{7585,9970,0},{7577,9958,0},{7577,9935,0}, {7575,9928,0},{7570,9935,0},{7568,9925,0},{7557,9918,0},{7555,9923,0},{7553,9938,0}, {7548,9960,0},{7547,9982,0},{7537,9980,0},{7528,10008,0},{7523,10008,0}, {7520,10020,0},{7517,10018,0},{7518,10017,0},{7523,10003,0},{7530,10002,0}, {7537,9977,0},{7542,9970,0},{7547,9975,0},{7547,9958,0},{7555,9910,0},{7567,9915,0}, {7572,9927,0},{7577,9923,0},{7582,9953,0},{7585,9967,0},{7597,9968,0},{7605,9977,0}, {7608,9963,0},{7607,9957,0},{7608,9958,0},{7610,9947,0},{7612,9960,0},{7615,9957,0}, {7613,9923,0},{7613,9915,0},{7617,9908,0},{7617,9923,0},{7617,9920,0},{7620,9930,0}, {7622,9928,0},{7620,9915,0},{7622,9903,0},{7622,9892,0},{7620,9885,0},{7620,9872,0}, {7627,9880,0},{7617,9837,0},{7617,9815,0},{7613,9810,0},{7615,9807,0},{7615,9802,0}, {7612,9793,0},{7610,9802,0},{7610,9822,0},{7608,9815,0},{7605,9790,0},{7610,9777,0}, {7608,9767,0},{7605,9755,0},{7605,9772,0},{7600,9783,0},{7598,9782,0},{7600,9755,0}, {7598,9735,0},{7597,9730,0},{7593,9733,0},{7593,9718,0},{7595,9725,0},{7598,9718,0}, {7605,9737,0},{7603,9722,0},{7598,9705,0},{7593,9693,0},{7592,9683,0},{7588,9683,0}, {7590,9667,0},{7588,9660,0},{7587,9645,0},{7597,9667,0},{7598,9662,0},{7598,9650,0}, {7600,9655,0},{7602,9652,0},{7598,9627,0},{7597,9633,0},{7595,9630,0},{7595,9593,0}, {7592,9582,0},{7585,9575,0},{7588,9557,0},{7590,9572,0},{7598,9588,0},{7598,9600,0}, {7603,9598,0},{7605,9608,0},{7607,9600,0},{7608,9620,0},{7610,9615,0},{7613,9582,0}, {7615,9542,0},{7613,9532,0},{7612,9527,0},{7612,9508,0},{7610,9505,0},{7612,9490,0}, {7615,9477,0},{7615,9455,0},{7615,9457,0},{7615,9467,0},{7612,9473,0},{7610,9460,0}, {7607,9460,0},{7605,9447,0},{7612,9438,0},{7610,9420,0},{7612,9410,0},{7612,9397,0}, {7612,9367,0},{7610,9367,0},{7607,9395,0},{7605,9400,0},{7603,9375,0},{7605,9370,0}, {7603,9363,0},{7605,9355,0},{7602,9342,0},{7603,9342,0},{7607,9333,0},{7610,9343,0}, {7608,9325,0},{7610,9315,0},{7608,9312,0},{7607,9322,0},{7603,9320,0},{7602,9312,0}, {7603,9310,0},{7607,9302,0},{7605,9292,0},{7598,9292,0},{7597,9283,0},{7592,9290,0}, {7590,9288,0},{7590,9308,0},{7590,9310,0},{7593,9297,0},{7598,9328,0},{7597,9332,0}, {7595,9327,0},{7587,9342,0},{7588,9348,0},{7592,9343,0},{7595,9355,0},{7590,9367,0}, {7593,9407,0},{7595,9413,0},{7595,9417,0},{7592,9407,0},{7583,9335,0},{7577,9250,0}, {7575,9240,0},{7575,9218,0},{7572,9205,0},{7572,9178,0},{7573,9172,0},{7570,9163,0}, {7563,9162,0},{7563,9123,0},{7563,9118,0},{7567,9117,0},{7562,9098,0},{7563,9092,0}, {7567,9090,0},{7563,9068,0},{7562,9063,0},{7558,9005,0},{7555,8992,0},{7553,9003,0}, {7552,9005,0},{7552,8988,0},{7548,8962,0},{7547,8962,0},{7543,8972,0},{7543,8938,0}, {7547,8940,0},{7547,8932,0},{7550,8925,0},{7545,8913,0},{7540,8873,0},{7543,8898,0}, {7540,8908,0},{7540,8887,0},{7537,8877,0},{7537,8882,0},{7535,8878,0},{7533,8860,0}, {7532,8855,0},{7527,8863,0},{7528,8852,0},{7525,8840,0},{7523,8832,0},{7517,8830,0}, {7513,8813,0},{7513,8807,0},{7510,8798,0},{7517,8728,0},{7515,8700,0},{7512,8692,0}, {7507,8692,0},{7508,8707,0},{7507,8725,0},{7503,8738,0},{7503,8777,0},{7502,8778,0}, {7500,8768,0},{7498,8768,0},{7497,8757,0},{7493,8760,0},{7493,8755,0},{7495,8743,0}, {7497,8748,0},{7500,8743,0},{7498,8718,0},{7495,8725,0},{7495,8737,0},{7493,8738,0}, {7485,8707,0},{7472,8707,0},{7472,8702,0},{7475,8698,0},{7475,8687,0},{7470,8677,0}, {7468,8677,0},{7468,8695,0},{7465,8690,0},{7460,8697,0},{7462,8685,0},{7462,8670,0}, {7465,8668,0},{7467,8660,0},{7470,8663,0},{7470,8655,0},{7472,8652,0},{7470,8633,0}, {7477,8622,0},{7475,8633,0},{7477,8638,0},{7482,8620,0},{7480,8615,0},{7482,8610,0}, {7482,8603,0},{7477,8612,0},{7472,8607,0},{7472,8587,0},{7470,8583,0},{7467,8587,0}, {7463,8575,0},{7463,8585,0},{7460,8595,0},{7462,8612,0},{7460,8632,0},{7457,8650,0}, {7455,8678,0},{7453,8660,0},{7450,8655,0},{7447,8668,0},{7442,8678,0},{7443,8708,0}, {7440,8707,0},{7435,8727,0},{7437,8702,0},{7435,8700,0},{7430,8705,0},{7427,8700,0}, {7428,8697,0},{7433,8697,0},{7433,8690,0},{7430,8685,0},{7432,8670,0},{7435,8690,0}, {7438,8695,0},{7438,8682,0},{7437,8680,0},{7438,8673,0},{7438,8660,0},{7440,8663,0}, {7443,8658,0},{7445,8648,0},{7443,8638,0},{7445,8632,0},{7442,8625,0},{7442,8622,0}, {7442,8607,0},{7440,8607,0},{7438,8627,0},{7432,8630,0},{7432,8625,0},{7437,8612,0}, {7437,8597,0},{7435,8590,0},{7432,8597,0},{7428,8595,0},{7427,8607,0},{7425,8657,0}, {7420,8677,0},{7418,8680,0},{7413,8672,0},{7410,8687,0},{7407,8685,0},{7405,8737,0}, {7402,8742,0},{7400,8740,0},{7405,8720,0},{7405,8697,0},{7403,8693,0},{7393,8713,0}, {7387,8720,0},{7383,8732,0},{7382,8743,0},{7383,8750,0},{7392,8753,0},{7390,8767,0}, {7383,8763,0},{7373,8730,0},{7368,8725,0},{7370,8735,0},{7362,8718,0},{7360,8710,0}, {7360,8687,0},{7357,8665,0},{7357,8622,0},{7347,8585,0},{7333,8588,0},{7332,8597,0}, {7325,8633,0},{7318,8645,0},{7317,8663,0},{7307,8677,0},{7298,8678,0},{7312,8667,0}, {7315,8652,0},{7318,8632,0},{7327,8622,0},{7333,8583,0},{7347,8578,0},{7350,8583,0}, {7353,8598,0},{7358,8612,0},{7362,8635,0},{7367,8652,0},{7367,8662,0},{7372,8675,0}, {7375,8685,0},{7378,8703,0},{7385,8710,0},{7390,8678,0},{7388,8667,0},{7388,8640,0}, {7385,8625,0},{7387,8602,0},{7382,8587,0},{7382,8558,0},{7377,8547,0},{7372,8548,0}, {7370,8522,0},{7372,8510,0},{7370,8500,0},{7372,8502,0},{7373,8490,0},{7377,8478,0}, {7375,8458,0},{7370,8435,0},{7370,8375,0},{7365,8340,0},{7367,8248,0},{7365,8217,0}, {7365,8152,0},{7362,8132,0},{7360,8125,0},{7358,8092,0},{7357,8085,0},{7358,8072,0}, {7357,8052,0},{7348,8052,0},{7352,8063,0},{7350,8068,0},{7343,8058,0},{7342,8048,0}, {7337,8042,0},{7338,8038,0},{7338,8035,0},{7332,8025,0},{7328,8033,0},{7328,8045,0}, {7327,8055,0},{7322,8057,0},{7320,8048,0},{7320,8032,0},{7317,8023,0},{7317,8033,0}, {7313,8057,0},{7312,8058,0},{7310,8043,0},{7307,8068,0},{7297,8082,0},{7285,8080,0}, {7278,8075,0},{7273,8063,0},{7265,8068,0},{7262,8083,0},{7257,8078,0},{7255,8072,0}, {7253,8072,0},{7247,8085,0},{7235,8117,0},{7233,8172,0},{7227,8212,0},{7228,8220,0}, {7223,8228,0},{7213,8230,0},{7208,8218,0},{7200,8250,0},{7195,8262,0},{7187,8267,0}, {7190,8280,0},{7187,8318,0},{7183,8338,0},{7180,8342,0},{7175,8342,0},{7162,8363,0}, {7157,8363,0},{7152,8358,0},{7148,8352,0},{7147,8338,0},{7135,8337,0},{7128,8328,0}, {7125,8315,0},{7112,8327,0},{7110,8323,0},{7112,8312,0},{7107,8317,0},{7105,8333,0}, {7102,8340,0},{7097,8338,0},{7092,8348,0},{7080,8353,0},{7077,8360,0},{7070,8360,0}, {7055,8377,0},{7050,8373,0},{7047,8377,0},{7033,8352,0},{7032,8333,0},{7032,8318,0}, {7033,8302,0},{7032,8295,0},{7023,8305,0},{7020,8313,0},{7012,8320,0},{7008,8317,0}, {7007,8307,0},{7008,8288,0},{7013,8282,0},{7017,8263,0},{7020,8267,0},{7025,8265,0}, {7038,8290,0},{7042,8300,0},{7050,8305,0},{7057,8300,0},{7060,8307,0},{7067,8305,0}, {7077,8313,0},{7087,8315,0},{7090,8310,0},{7092,8300,0},{7100,8290,0},{7100,8288,0}, {7092,8287,0},{7095,8285,0},{7095,8277,0},{7097,8275,0},{7095,8268,0},{7090,8258,0}, {7085,8258,0},{7080,8248,0},{7077,8257,0},{7075,8250,0},{7070,8248,0},{7068,8243,0}, {7060,8247,0},{7058,8217,0},{7050,8223,0},{7040,8225,0},{7020,8235,0},{7028,8223,0}, {7050,8215,0},{7057,8208,0},{7062,8220,0},{7068,8222,0},{7077,8242,0},{7083,8232,0}, {7092,8230,0},{7100,8220,0},{7108,8235,0},{7127,8225,0},{7130,8237,0},{7137,8270,0}, {7140,8303,0},{7145,8298,0},{7155,8302,0},{7157,8317,0},{7165,8330,0},{7168,8332,0}, {7172,8327,0},{7173,8320,0},{7173,8298,0},{7177,8292,0},{7178,8282,0},{7170,8213,0}, {7170,8167,0},{7172,8163,0},{7177,8130,0},{7185,8125,0},{7203,8063,128}, {7207,8067,0},{7208,8078,0},{7203,8073,0},{7202,8082,0},{7203,8085,0},{7208,8083,0}, {7218,8012,0},{7225,7980,0},{7237,7948,0},{7238,7930,0},{7237,7885,0},{7240,7852,0}, {7238,7850,0},{7240,7843,0},{7238,7832,0},{7237,7827,0},{7238,7813,0},{7233,7807,0}, {7232,7790,0},{7222,7775,0},{7218,7767,0},{7222,7752,0},{7222,7747,0},{7217,7748,0}, {7212,7738,0},{7208,7738,0},{7207,7748,0},{7212,7780,0},{7212,7795,0},{7210,7802,0}, {7197,7823,0},{7190,7817,0},{7188,7810,0},{7182,7770,0},{7183,7752,0},{7187,7743,0}, {7192,7737,0},{7205,7690,0},{7200,7638,0},{7192,7600,0},{7163,7627,0},{7158,7625,0}, {7157,7632,0},{7153,7655,0},{7147,7673,0},{7142,7700,0},{7142,7712,0},{7137,7720,0}, {7130,7752,0},{7133,7745,0},{7128,7772,0},{7128,7775,0},{7132,7773,0},{7133,7787,0}, {7135,7787,0},{7137,7800,0},{7135,7800,0},{7132,7790,0},{7125,7793,0},{7128,7803,0}, {7125,7828,0},{7122,7832,0},{7112,7823,0},{7110,7825,0},{7103,7845,0},{7105,7850,0}, {7110,7835,0},{7112,7845,0},{7110,7852,0},{7107,7850,0},{7105,7855,0},{7102,7847,0}, {7100,7848,0},{7092,7843,0},{7097,7858,0},{7093,7872,0},{7093,7880,0},{7098,7890,0}, {7098,7878,0},{7100,7883,0},{7098,7897,0},{7102,7903,0},{7102,7910,0},{7098,7908,0}, {7097,7902,0},{7095,7907,0},{7093,7903,0},{7092,7895,0},{7093,7895,0},{7093,7890,0}, {7092,7887,0},{7092,7855,0},{7088,7845,0},{7088,7840,0},{7093,7827,0},{7095,7805,0}, {7097,7795,0},{7102,7788,0},{7110,7787,0},{7115,7768,0},{7118,7703,0},{7115,7693,0}, {7112,7697,0},{7107,7692,0},{7115,7688,0},{7118,7690,0},{7122,7663,0},{7120,7638,0}, {7123,7615,0},{7118,7612,0},{7123,7603,0},{7130,7545,0},{7137,7527,0},{7145,7523,0}, {7147,7528,0},{7145,7543,0},{7150,7542,0},{7153,7553,0},{7157,7550,0},{7162,7538,0}, {7163,7550,0},{7167,7550,0},{7173,7527,0},{7178,7522,0},{7183,7522,0},{7190,7528,0}, {7195,7527,0},{7198,7543,0},{7203,7542,0},{7208,7553,0},{7215,7552,0},{7222,7560,0}, {7227,7575,0},{7230,7577,0},{7232,7567,0},{7233,7568,0},{7248,7555,0},{7253,7557,0}, {7253,7568,0},{7255,7572,0},{7263,7550,0},{7268,7542,0},{7268,7533,0},{7272,7540,0}, {7270,7545,0},{7273,7553,0},{7275,7552,0},{7282,7533,0},{7283,7520,0},{7287,7508,0}, {7288,7500,0},{7282,7473,0},{7270,7495,0},{7258,7507,0},{7238,7512,0},{7225,7510,0}, {7212,7495,0},{7195,7435,0},{7197,7432,0},{7195,7425,0},{7193,7412,0},{7190,7387,0}, {7182,7353,0},{7177,7347,0},{7172,7353,0},{7167,7350,0},{7142,7302,0},{7133,7333,0}, {7127,7353,0},{7105,7373,0},{7097,7390,0},{7085,7393,0},{7068,7430,0},{7053,7433,0}, {7042,7417,0},{7037,7407,0},{7030,7400,0},{7015,7368,0},{7008,7377,0},{7002,7370,0}, {6995,7370,0},{6982,7363,0},{6975,7352,0},{6970,7355,0},{6955,7377,0},{6943,7390,0}, {6935,7388,0},{6920,7375,0},{6917,7375,0},{6913,7380,0},{6907,7395,0},{6913,7418,0}, {6913,7450,0},{6908,7475,0},{6910,7515,0},{6913,7510,0},{6918,7522,0},{6925,7548,0}, {6927,7557,0},{6923,7577,0},{6923,7603,0},{6915,7637,0},{6913,7653,0},{6915,7663,0}, {6910,7678,0},{6902,7692,0},{6898,7722,0},{6893,7740,0},{6890,7763,0},{6887,7770,0}, {6868,7775,0},{6862,7772,0},{6857,7777,0},{6852,7777,0},{6852,7780,0},{6853,7788,0}, {6852,7793,0},{6848,7795,0},{6845,7790,0},{6838,7797,0},{6835,7808,0},{6832,7808,0}, {6827,7817,0},{6825,7815,0},{6822,7773,0},{6815,7757,0},{6808,7750,0},{6803,7752,0}, {6798,7747,0},{6793,7752,0},{6793,7758,0},{6792,7748,0},{6790,7747,0},{6777,7747,0}, {6773,7753,0},{6772,7765,0},{6773,7775,0},{6778,7777,0},{6777,7780,0},{6773,7783,0}, {6772,7795,0},{6770,7787,0},{6768,7787,0},{6770,7798,0},{6768,7805,0},{6765,7813,0}, {6767,7818,0},{6765,7823,0},{6767,7832,0},{6763,7840,0},{6770,7843,0},{6765,7850,0}, {6767,7853,0},{6767,7862,0},{6763,7858,0},{6763,7847,0},{6762,7850,0},{6760,7858,0}, {6762,7867,0},{6765,7872,0},{6765,7878,0},{6765,7887,0},{6763,7880,0},{6762,7883,0}, {6760,7897,0},{6757,7905,0},{6755,7895,0},{6757,7887,0},{6758,7872,0},{6758,7867,0}, {6758,7858,0},{6755,7848,0},{6755,7833,0},{6758,7825,0},{6753,7805,0},{6755,7798,0}, {6757,7795,0},{6755,7790,0},{6757,7785,0},{6755,7768,0},{6757,7768,0},{6762,7767,0}, {6778,7710,0},{6783,7708,0},{6785,7715,0},{6782,7717,0},{6783,7723,0},{6790,7730,0}, {6798,7718,0},{6805,7725,0},{6810,7722,0},{6815,7730,0},{6823,7737,0},{6827,7718,0}, {6830,7717,0},{6838,7730,0},{6845,7725,0},{6852,7732,0},{6860,7717,0},{6860,7710,0}, {6858,7715,0},{6857,7710,0},{6865,7702,0},{6877,7663,0},{6880,7662,0},{6887,7670,0}, {6897,7660,0},{6898,7655,0},{6898,7633,0},{6897,7612,0},{6893,7583,0},{6890,7562,0}, {6890,7547,0},{6878,7467,0},{6872,7448,0},{6862,7442,0},{6850,7447,0},{6837,7433,0}, {6823,7462,0},{6815,7473,0},{6793,7482,0},{6768,7473,0},{6742,7408,0},{6730,7392,0}, {6722,7395,0},{6712,7390,0},{6707,7392,0},{6705,7387,0},{6698,7385,0},{6693,7363,0}, {6683,7352,0},{6678,7320,0},{6675,7310,0},{6673,7300,0},{6665,7295,0},{6660,7247,0}, {6655,7245,0},{6650,7228,0},{6652,7238,0},{6650,7242,0},{6647,7237,0},{6638,7240,0}, {6630,7235,0},{6628,7223,0},{6623,7207,0},{6623,7203,0},{6622,7200,0},{6625,7193,0}, {6623,7185,0},{6623,7182,0},{6630,7175,0},{6632,7168,0},{6637,7132,0},{6637,7088,0}, {6633,7038,0},{6642,6990,0},{6647,6975,0},{6650,6938,0},{6660,6912,0},{6677,6912,0}, {6678,6908,0},{6678,6900,0},{6680,6897,0},{6683,6917,0},{6682,6932,0},{6683,6940,0}, {6678,6960,0},{6680,6963,0},{6682,6957,0},{6683,6958,0},{6682,6970,0},{6682,6978,0}, {6683,6990,0},{6685,6988,0},{6687,6990,0},{6685,6995,0},{6680,6998,0},{6675,7008,0}, {6673,7018,0},{6672,7015,0},{6668,7032,0},{6670,7055,0},{6672,7047,0},{6673,7062,0}, {6673,7053,0},{6675,7057,0},{6675,7073,0},{6673,7073,0},{6672,7068,0},{6672,7063,0}, {6668,7060,0},{6668,7047,0},{6665,7040,0},{6665,7032,0},{6662,7028,0},{6658,7033,0}, {6650,7072,0},{6653,7098,0},{6655,7098,0},{6658,7095,0},{6657,7103,0},{6658,7112,0}, {6660,7105,0},{6663,7107,0},{6662,7123,0},{6665,7117,0},{6663,7127,0},{6665,7133,0}, {6668,7137,0},{6663,7137,0},{6665,7157,0},{6672,7160,0},{6677,7152,0},{6678,7155,0}, {6683,7148,0},{6687,7152,0},{6690,7138,0},{6692,7145,0},{6693,7133,0},{6695,7132,0}, {6697,7137,0},{6695,7143,0},{6692,7153,0},{6693,7158,0},{6695,7163,0},{6692,7172,0}, {6692,7175,0},{6697,7180,0},{6698,7187,0},{6703,7193,0},{6707,7202,0},{6708,7198,0}, {6712,7202,0},{6713,7192,0},{6715,7213,0},{6720,7212,0},{6715,7217,0},{6717,7223,0}, {6723,7220,0},{6727,7203,0},{6730,7203,0},{6730,7213,0},{6733,7218,0},{6730,7227,0}, {6732,7240,0},{6740,7245,0},{6747,7240,0},{6752,7255,0},{6760,7255,0},{6762,7262,0}, {6763,7285,0},{6765,7288,0},{6768,7288,0},{6768,7295,0},{6772,7305,0},{6768,7312,0}, {6772,7315,0},{6782,7307,0},{6785,7320,0},{6795,7320,0},{6808,7307,0},{6817,7313,0}, {6822,7310,0},{6837,7342,0},{6845,7347,0},{6848,7360,0},{6843,7360,0},{6845,7365,0}, {6848,7365,0},{6858,7352,0},{6885,7272,0},{6888,7263,0},{6898,7255,0},{6918,7248,0}, {6922,7252,0},{6928,7265,0},{6938,7257,0},{6942,7248,0},{6942,7258,0},{6943,7263,0}, {6952,7262,0},{6965,7250,0},{6967,7257,0},{6968,7255,0},{6975,7265,0},{6985,7268,0}, {6990,7265,0},{6998,7253,0},{7005,7248,0},{7008,7257,0},{7018,7262,0},{7027,7242,0}, {7035,7253,0},{7040,7268,0},{7042,7278,0},{7053,7277,0},{7062,7268,0},{7070,7277,0}, {7087,7283,0},{7102,7262,0},{7108,7268,0},{7113,7263,0},{7115,7258,0},{7120,7235,0}, {7130,7205,0},{7147,7180,0},{7152,7182,0},{7158,7195,0},{7157,7202,0},{7157,7207,0}, {7160,7220,0},{7168,7223,0},{7172,7237,0},{7182,7232,0},{7185,7233,0},{7192,7252,0}, {7203,7257,0},{7212,7272,0},{7220,7273,0},{7228,7288,0},{7240,7280,0},{7248,7280,0}, {7252,7285,0},{7255,7277,0},{7260,7272,0},{7265,7282,0},{7267,7273,0},{7270,7272,0}, {7270,7283,0},{7283,7210,0},{7280,7188,0},{7282,7183,0},{7282,7195,0},{7283,7200,0}, {7287,7177,0},{7292,7153,0},{7290,7123,0},{7290,7098,0},{7288,7075,0},{7290,7030,0}, {7288,6960,0},{7288,6955,0},{7292,6957,0},{7293,6978,0},{7295,6980,0},{7297,6975,0}, {7297,6953,0},{7297,6937,0},{7293,6932,0},{7280,6923,0},{7272,6902,0},{7267,6898,0}, {7265,6905,0},{7265,6897,0},{7253,6887,0},{7248,6892,0},{7245,6885,0},{7232,6882,0}, {7232,6878,0},{7223,6873,0},{7203,6865,0},{7198,6857,0},{7192,6855,0},{7182,6847,0}, {7172,6830,0},{7167,6835,0},{7168,6828,0},{7167,6822,0},{7152,6795,0},{7150,6785,0}, {7143,6758,0},{7142,6758,0},{7130,6708,0},{7130,6692,0},{7117,6682,0},{7105,6662,0}, {7102,6662,0},{7100,6668,0},{7102,6677,0},{7105,6675,0},{7107,6682,0},{7110,6682,0}, {7108,6690,0},{7105,6683,0},{7100,6683,0},{7095,6677,0},{7088,6662,0},{7077,6668,0}, {7078,6678,0},{7080,6700,0},{7083,6710,0},{7082,6727,0},{7075,6733,0},{7053,6722,0}, {7047,6730,0},{7045,6725,0},{7042,6727,0},{7038,6720,0},{7022,6708,0},{7013,6723,0}, {7018,6725,0},{7015,6730,0},{7010,6728,0},{7010,6733,0},{7002,6725,0},{6998,6718,0}, {6995,6702,0},{6998,6697,0},{7002,6700,0},{7005,6698,0},{7003,6692,0},{7000,6687,0}, {6975,6677,0},{6957,6680,0},{6952,6693,0},{6957,6692,0},{6963,6685,0},{6965,6698,0}, {6965,6700,0},{6970,6698,0},{6968,6708,0},{6962,6735,0},{6962,6750,0},{6958,6763,0}, {6952,6778,0},{6948,6795,0},{6948,6803,0},{6952,6800,0},{6955,6807,0},{6955,6810,0}, {6938,6812,0},{6935,6803,0},{6928,6805,0},{6908,6835,0},{6898,6847,0},{6892,6865,0}, {6892,6878,0},{6897,6902,0},{6893,6903,0},{6895,6922,0},{6893,6907,0},{6892,6913,0}, {6892,6912,0},{6890,6895,0},{6887,6898,0},{6887,6912,0},{6883,6910,0},{6880,6902,0}, {6860,6890,0},{6837,6857,0},{6833,6857,0},{6832,6865,0},{6832,6857,0},{6822,6843,0}, {6822,6838,0},{6818,6828,0},{6823,6827,0},{6823,6818,0},{6830,6823,0},{6833,6825,0}, {6842,6817,0},{6847,6790,0},{6848,6778,0},{6852,6770,0},{6850,6780,0},{6858,6763,0}, {6868,6733,0},{6870,6720,0},{6875,6715,0},{6880,6703,0},{6885,6712,0},{6888,6688,0}, {6890,6658,0},{6895,6635,0},{6900,6625,0},{6903,6610,0},{6908,6568,0},{6913,6565,0}, {6912,6573,0},{6910,6577,0},{6910,6590,0},{6913,6587,0},{6918,6538,0},{6927,6505,0}, {6967,16243,128},{6970,16233,0},{6965,16230,0},{6965,16220,0},{6963,16217,0}, {6962,16220,0},{6958,16202,0},{6953,16200,0},{6952,16192,0},{6953,16182,0}, {6950,16177,0},{6948,16168,0},{6942,16160,0},{6938,16143,0},{6935,16148,0}, {6933,16147,0},{6933,16142,0},{6928,16147,0},{6922,16138,0},{6917,16147,0}, {6907,16150,0},{6902,16157,0},{6892,16158,0},{6880,16132,0},{6873,16130,0}, {6870,16133,0},{6868,16128,0},{6855,16113,0},{6853,16105,0},{6852,16095,0}, {6853,16080,0},{6857,16075,0},{6855,16100,0},{6857,16107,0},{6868,16122,0}, {6878,16122,0},{6892,16138,0},{6898,16142,0},{6905,16125,0},{6907,16103,0}, {6910,16097,0},{6917,16105,0},{6923,16100,0},{6930,16102,0},{6947,16092,0}, {6958,16100,0},{6963,16092,0},{6963,16087,0},{6965,16080,0},{6968,16057,0}, {6968,16038,0},{6965,16032,0},{6970,16030,0},{6973,16017,0},{6972,16013,0}, {6970,16018,0},{6980,15987,0},{6973,15973,0},{6980,15980,0},{6983,15973,0}, {6983,15977,0},{6990,15968,0},{6995,15975,0},{7000,15987,0},{7003,15985,0}, {7010,15992,0},{7010,15983,0},{7013,15968,0},{7012,15993,0},{7013,15995,0}, {7020,16000,0},{7023,16008,0},{7028,16010,0},{7042,16003,0},{7062,15978,0}, {7067,15967,0},{7082,15925,0},{7095,15858,0},{7105,15797,0},{7110,15682,0}, {7108,15655,0},{7110,15593,0},{7107,15560,0},{7097,15553,0},{7100,15550,0}, {7105,15550,0},{7103,15500,0},{7097,15442,0},{7097,15423,0},{7093,15417,0}, {7085,15365,0},{7088,15362,0},{7087,15347,0},{7088,15345,0},{7087,15333,0}, {7085,15332,0},{7085,15312,0},{7083,15308,0},{7083,15275,0},{7083,15258,0}, {7078,15253,0},{7085,15253,0},{7088,15222,0},{7093,15203,0},{7098,15167,0}, {7098,15165,0},{7097,15192,0},{7098,15207,0},{7098,15213,0},{7100,15213,0}, {7118,15177,0},{7125,15173,0},{7130,15163,0},{7135,15145,0},{7137,15117,0}, {7140,15103,0},{7137,15087,0},{7133,15078,0},{7127,15060,0},{7137,15067,0}, {7138,15073,0},{7138,15063,0},{7133,15057,0},{7127,15038,0},{7127,15028,0}, {7122,15015,0},{7120,15002,0},{7122,15002,0},{7127,15018,0},{7128,15030,0}, {7132,15033,0},{7133,15052,0},{7140,15055,0},{7145,15065,0},{7150,15065,0}, {7152,15055,0},{7150,15047,0},{7152,15043,0},{7150,15032,0},{7152,15027,0}, {7150,15005,0},{7147,14987,0},{7150,14988,0},{7153,14997,0},{7157,14993,0}, {7160,14997,0},{7160,15002,0},{7157,15000,0},{7158,15010,0},{7167,14997,0}, {7165,14968,0},{7167,14943,0},{7170,14910,0},{7167,14900,0},{7167,14882,0}, {7170,14885,0},{7170,14898,0},{7175,14903,0},{7177,14888,0},{7182,14883,0}, {7177,14910,0},{7177,14915,0},{7182,14920,0},{7185,14930,0},{7187,14932,0}, {7188,14928,0},{7190,14937,0},{7182,14957,0},{7177,14963,0},{7177,14972,0}, {7182,14987,0},{7183,14998,0},{7188,15007,0},{7195,15002,0},{7212,14972,0}, {7217,14953,0},{7222,14918,0},{7227,14872,0},{7230,14850,0},{7232,14827,0}, {7233,14748,0},{7232,14713,0},{7208,14663,0},{7190,14635,0},{7187,14625,0}, {7178,14607,0},{7177,14593,0},{7172,14575,0},{7173,14555,0},{7165,14532,0}, {7168,14525,0},{7170,14508,0},{7167,14502,0},{7170,14497,0},{7167,14488,0}, {7173,14492,0},{7178,14488,0},{7178,14507,0},{7183,14522,0},{7185,14522,0}, {7188,14505,0},{7192,14497,0},{7197,14498,0},{7193,14508,0},{7192,14520,0}, {7187,14535,0},{7192,14558,0},{7192,14575,0},{7193,14580,0},{7202,14580,0}, {7203,14575,0},{7202,14568,0},{7208,14562,0},{7222,14575,0},{7222,14568,0}, {7225,14562,0},{7223,14577,0},{7220,14590,0},{7218,14583,0},{7215,14585,0}, {7215,14595,0},{7210,14593,0},{7207,14598,0},{7212,14607,0},{7217,14607,0}, {7217,14620,0},{7217,14625,0},{7215,14623,0},{7213,14633,0},{7203,14610,0}, {7203,14598,0},{7193,14600,0},{7185,14595,0},{7187,14602,0},{7203,14643,0}, {7225,14687,0},{7232,14693,0},{7230,14605,0},{7227,14508,0},{7223,14490,0}, {7223,14475,0},{7218,14463,0},{7217,14453,0},{7217,14440,0},{7222,14418,0}, {7227,14410,0},{7227,14420,0},{7227,14423,0},{7230,14428,0},{7228,14440,0}, {7222,14452,0},{7227,14458,0},{7240,14477,0},{7243,14497,0},{7240,14508,0}, {7242,14517,0},{7240,14525,0},{7233,14535,0},{7235,14545,0},{7233,14632,0}, {7235,14647,0},{7233,14675,0},{7235,14685,0},{7240,14652,0},{7245,14620,0}, {7250,14582,0},{7257,14537,0},{7260,14467,0},{7263,14440,0},{7265,14413,0}, {7265,14382,0},{7268,14355,0},{7268,14305,0},{7270,14260,0},{7270,14242,0}, {7273,14187,0},{7277,14157,0},{7285,14135,0},{7290,14065,0},{7287,14058,0}, {7280,14067,0},{7278,14075,0},{7268,14102,0},{7258,14095,0},{7258,14110,0}, {7257,14093,0},{7253,14087,0},{7253,14077,0},{7250,14067,0},{7248,14040,0}, {7247,14010,0},{7248,13998,0},{7250,13978,0},{7250,13953,0},{7242,13938,0}, {7242,13933,0},{7233,13917,0},{7223,13908,0},{7217,13918,0},{7213,13933,0}, {7213,13935,0},{7215,13927,0},{7218,13925,0},{7217,13937,0},{7217,13955,0}, {7218,13943,0},{7223,13957,0},{7223,14003,0},{7220,14020,0},{7217,14020,0}, {7213,14007,0},{7217,13995,0},{7217,13987,0},{7207,13972,0},{7200,13972,0}, {7195,13963,0},{7195,13933,0},{7192,13962,0},{7187,13970,0},{7185,13980,0}, {7185,13975,0},{7178,13968,0},{7167,13973,0},{7158,13983,0},{7153,14000,0}, {7150,13998,0},{7147,14003,0},{7148,13985,0},{7145,13972,0},{7147,13968,0}, {7148,13963,0},{7150,13945,0},{7147,13938,0},{7142,13935,0},{7142,13922,0}, {7143,13912,0},{7145,13915,0},{7147,13912,0},{7157,13905,0},{7158,13892,0}, {7165,13872,0},{7160,13855,0},{7158,13860,0},{7155,13858,0},{7153,13847,0}, {7155,13843,0},{7157,13840,0},{7158,13840,0},{7162,13848,0},{7157,13807,0}, {7145,13798,0},{7140,13788,0},{7138,13783,0},{7137,13788,0},{7138,13795,0}, {7137,13793,0},{7133,13800,0},{7135,13805,0},{7133,13832,0},{7132,13837,0}, {7132,13808,0},{7130,13800,0},{7127,13823,0},{7123,13817,0},{7123,13808,0}, {7122,13805,0},{7122,13793,0},{7125,13783,0},{7123,13775,0},{7122,13775,0}, {7120,13785,0},{7118,13785,0},{7120,13790,0},{7118,13802,0},{7113,13807,0}, {7110,13798,0},{7112,13795,0},{7113,13797,0},{7115,13792,0},{7112,13785,0}, {7112,13780,0},{7118,13772,0},{7120,13753,0},{7122,13757,0},{7122,13767,0}, {7125,13773,0},{7125,13767,0},{7128,13770,0},{7123,13755,0},{7127,13750,0}, {7128,13742,0},{7128,13748,0},{7132,13745,0},{7135,13748,0},{7135,13738,0}, {7137,13735,0},{7137,13740,0},{7135,13728,0},{7137,13723,0},{7137,13727,0}, {7140,13723,0},{7142,13707,0},{7145,13697,0},{7147,13688,0},{7150,13682,0}, {7153,13672,0},{7152,13662,0},{7147,13655,0},{7150,13657,0},{7152,13652,0}, {7157,13648,0},{7158,13625,0},{7162,13613,0},{7163,13587,0},{7162,13558,0}, {7157,13537,0},{7157,13533,0},{7153,13542,0},{7153,13532,0},{7155,13523,0}, {7153,13517,0},{7150,13512,0},{7153,13507,0},{7153,13502,0},{7148,13482,0}, {7142,13477,0},{7142,13470,0},{7135,13477,0},{7127,13467,0},{7130,13465,0}, {7137,13475,0},{7140,13462,0},{7137,13445,0},{7138,13407,0},{7147,13353,0}, {7157,13317,0},{7173,13292,0},{7177,13272,0},{7183,13277,0},{7195,13273,0}, {7188,13253,0},{7168,13227,0},{7130,13195,0},{7125,13195,0},{7123,13212,0}, {7122,13218,0},{7123,13200,0},{7120,13185,0},{7118,13182,0},{7117,13187,0}, {7115,13187,0},{7113,13175,0},{7110,13177,0},{7088,13153,0},{7075,13122,0}, {7073,13102,0},{7075,13092,0},{7077,13088,0},{7083,13090,0},{7097,13080,0}, {7095,13072,0},{7088,13070,0},{7087,13063,0},{7088,13050,0},{7093,13047,0}, {7093,13032,0},{7097,13017,0},{7098,13022,0},{7108,13007,0},{7105,12993,0}, {7108,12993,0},{7110,12988,0},{7108,12963,0},{7112,12973,0},{7113,12975,0}, {7122,12970,0},{7127,12965,0},{7128,12952,0},{7133,12938,0},{7147,12932,0}, {7150,12923,0},{7153,12925,0},{7158,12918,0},{7160,12910,0},{7160,12890,0}, {7160,12885,0},{7165,12882,0},{7170,12890,0},{7172,12912,0},{7177,12930,0}, {7173,12943,0},{7172,12952,0},{7172,12953,0},{7180,12930,0},{7187,12930,0}, {7202,12907,0},{7200,12902,0},{7180,12918,0},{7173,12895,0},{7178,12865,0}, {7188,12862,0},{7190,12853,0},{7197,12843,0},{7202,12843,0},{7218,12807,0}, {7223,12787,0},{7223,12775,0},{7225,12775,0},{7225,12785,0},{7235,12767,0}, {7235,12745,0},{7240,12718,0},{7240,12695,0},{7240,12672,0},{7238,12672,0}, {7228,12690,0},{7207,12697,0},{7200,12705,0},{7197,12722,0},{7190,12733,0}, {7183,12723,0},{7175,12718,0},{7148,12732,0},{7138,12728,0},{7140,12722,0}, {7158,12720,0},{7177,12708,0},{7185,12713,0},{7202,12680,0},{7213,12675,0}, {7218,12658,0},{7223,12658,0},{7235,12637,0},{7228,12625,0},{7227,12612,0}, {7233,12588,0},{7233,12570,0},{7235,12562,0},{7242,12545,0},{7245,12525,0}, {7253,12513,0},{7258,12480,0},{7263,12473,0},{7263,12435,0},{7272,12412,0}, {7275,12378,0},{7275,12367,0},{7272,12347,0},{7273,12335,0},{7278,12305,0}, {7282,12265,0},{7287,12242,0},{7288,12205,0},{7292,12192,0},{7295,12197,0}, {7297,12187,0},{7297,12178,0},{7295,12175,0},{7297,12168,0},{7297,12138,0}, {7293,12103,0},{7297,12070,0},{7298,12058,0},{7302,11982,0},{7300,11975,0}, {7297,11982,0},{7295,11990,0},{7293,12017,0},{7290,12043,0},{7288,12057,0}, {7287,12055,0},{7290,12027,0},{7293,11982,0},{7300,11967,0},{7300,11958,0}, {7307,11953,0},{7307,11925,0},{7310,11898,0},{7320,11848,0},{7323,11840,0}, {7328,11835,0},{7333,11837,0},{7337,11843,0},{7338,11837,0},{7342,11835,0}, {7348,11848,0},{7348,11858,0},{7345,11868,0},{7347,11873,0},{7345,11892,0}, {7348,11900,0},{7355,11883,0},{7357,11863,0},{7358,11795,0},{7358,11772,0}, {7358,11725,0},{7367,11658,0},{7367,11613,0},{7370,11582,0},{7370,11543,0}, {7368,11517,0},{7360,11487,0},{7358,11453,0},{7358,11410,0},{7353,11385,0}, {7350,11348,0},{7343,11353,0},{7335,11377,0},{7335,11385,0},{7335,11397,0}, {7333,11403,0},{7332,11385,0},{7332,11370,0},{7328,11365,0},{7325,11357,0}, {7317,11353,0},{7310,11360,0},{7302,11352,0},{7297,11353,0},{7288,11337,0}, {7285,11315,0},{7273,11322,0},{7268,11335,0},{7263,11372,0},{7262,11397,0}, {7260,11408,0},{7262,11362,0},{7268,11330,0},{7272,11320,0},{7283,11308,0}, {7287,11313,0},{7288,11330,0},{7295,11348,0},{7300,11345,0},{7310,11352,0}, {7317,11348,0},{7333,11350,0},{7337,11327,0},{7342,11322,0},{7345,11313,0}, {7357,11328,0},{7358,11340,0},{7360,11343,0},{7368,11340,0},{7388,11313,0}, {7392,11298,0},{7400,11282,0},{7395,11282,0},{7388,11293,0},{7380,11295,0}, {7373,11278,0},{7372,11248,0},{7370,11225,0},{7372,11202,0},{7377,11165,0}, {7387,11130,0},{4228,13070,128},{4235,13075,0},{4245,13078,0},{4247,13083,0}, {4252,13083,0},{4252,13087,0},{4255,13085,0},{4257,13078,0},{4260,13077,0}, {4257,13073,0},{4262,13073,0},{4265,13067,0},{4267,13068,0},{4268,13072,0}, {4268,13075,0},{4268,13083,0},{4267,13083,0},{4265,13078,0},{4263,13080,0}, {4265,13088,0},{4265,13095,0},{4262,13093,0},{4263,13087,0},{4263,13082,0}, {4260,13093,0},{4263,13097,0},{4265,13102,0},{4262,13110,0},{4263,13110,0}, {4267,13112,0},{4262,13113,0},{4260,13120,0},{4257,13117,0},{4255,13120,0}, {4257,13123,0},{4260,13123,0},{4262,13122,0},{4267,13122,0},{4267,13125,0}, {4270,13125,0},{4277,13128,0},{4278,13132,0},{4277,13137,0},{4280,13135,0}, {4283,13137,0},{4287,13147,0},{4288,13140,0},{4290,13142,0},{4292,13138,0}, {4293,13138,0},{4293,13143,0},{4295,13150,0},{4300,13150,0},{4300,13152,0}, {4298,13155,0},{4300,13157,0},{4303,13157,0},{4315,13168,0},{4317,13170,0}, {4315,13165,0},{4317,13167,0},{4318,13167,0},{4318,13170,0},{4317,13173,0}, {4317,13175,0},{4318,13177,0},{4320,13172,0},{4322,13175,0},{4328,13177,0}, {4333,13182,0},{4333,13183,0},{4330,13183,0},{4330,13197,0},{4327,13198,0}, {4332,13202,0},{4332,13205,0},{4328,13205,0},{4323,13200,0},{4320,13192,0}, {4308,13183,0},{4312,13192,0},{4308,13188,0},{4308,13190,0},{4308,13198,0}, {4312,13203,0},{4318,13210,0},{4323,13223,0},{4328,13228,0},{4332,13228,0}, {4332,13230,0},{4328,13235,0},{4325,13230,0},{4322,13232,0},{4322,13237,0}, {4320,13238,0},{4317,13235,0},{4317,13232,0},{4313,13233,0},{4308,13230,0}, {4307,13228,0},{4302,13230,0},{4297,13228,0},{4288,13228,0},{4285,13232,0}, {4285,13235,0},{4290,13235,0},{4292,13238,0},{4293,13240,0},{4293,13247,0}, {4292,13250,0},{4287,13250,0},{4283,13258,0},{4285,13260,0},{4285,13268,0}, {4287,13268,0},{4290,13273,0},{4290,13277,0},{4288,13277,0},{4283,13277,0}, {4282,13280,0},{4277,13280,0},{4273,13285,0},{4277,13288,0},{4282,13290,0}, {4282,13293,0},{4282,13300,0},{4280,13300,0},{4273,13308,0},{4273,13303,0}, {4272,13300,0},{4268,13303,0},{4268,13317,0},{4275,13323,0},{4277,13332,0}, {4275,13337,0},{4280,13348,0},{4282,13352,0},{4282,13353,0},{4282,13357,0}, {4285,13360,0},{4285,13368,0},{4282,13372,0},{4285,13373,0},{4290,13387,0}, {4287,13390,0},{4297,13403,0},{4300,13412,0},{4308,13418,0},{4310,13430,0}, {4312,13432,0},{4312,13435,0},{4315,13442,0},{4323,13455,0},{4323,13460,0}, {4330,13470,0},{4330,13477,0},{4338,13483,0},{4343,13495,0},{4345,13497,0}, {4350,13507,0},{4350,13513,0},{4360,13517,0},{4363,13522,0},{4368,13523,0}, {4372,13518,0},{4372,13522,0},{4373,13523,0},{4373,13525,0},{4372,13525,0}, {4368,13527,0},{4372,13532,0},{4372,13535,0},{4375,13538,0},{4375,13542,0}, {4388,13552,0},{4390,13547,0},{4392,13547,0},{4395,13545,0},{4395,13548,0}, {4392,13552,0},{4395,13552,0},{4395,13553,0},{4398,13553,0},{4400,13555,0}, {4403,13563,0},{4412,13567,0},{4417,13565,0},{4418,13568,0},{4423,13572,0}, {4427,13580,0},{4432,13583,0},{4435,13583,0},{4440,13588,0},{4443,13598,0}, {4445,13600,0},{4445,13607,0},{4452,13618,0},{4455,13620,0},{4458,13623,0}, {4462,13622,0},{4467,13625,0},{4468,13627,0},{4470,13633,0},{4473,13630,0}, {4475,13633,0},{4478,13637,0},{4477,13643,0},{4483,13645,0},{4483,13648,0}, {4488,13653,0},{4488,13655,0},{4493,13655,0},{4503,13665,0},{4503,13668,0}, {4508,13677,0},{4518,13682,0},{4533,13705,0},{4537,13713,0},{4560,13737,0}, {4568,13752,0},{4580,13767,0},{4587,13770,0},{4593,13778,0},{4607,13793,0}, {4610,13795,0},{4613,13802,0},{4622,13810,0},{4628,13812,0},{4645,13820,0}, {4648,13823,0},{4653,13833,0},{4663,13835,0},{4673,13838,0},{4680,13842,0}, {4687,13850,0},{4692,13850,0},{4703,13857,0},{4708,13862,0},{4718,13877,0}, {4730,13888,0},{4732,13897,0},{4737,13898,0},{4742,13905,0},{4747,13905,0}, {4763,13917,0},{4765,13920,0},{4773,13922,0},{4782,13928,0},{4792,13940,0}, {4797,13952,0},{4807,13965,0},{4817,13973,0},{4830,13993,0},{4833,14003,0}, {4842,14008,0},{4845,14018,0},{4852,14020,0},{4857,14017,0},{4858,14020,0}, {4867,14018,0},{4877,14022,0},{4885,14025,0},{4890,14035,0},{4898,14040,0}, {4898,14037,0},{4902,14035,0},{4898,14030,0},{4897,14030,0},{4897,14028,0}, {4897,14025,0},{4900,14028,0},{4900,14022,0},{4903,14035,0},{4907,14033,0}, {4908,14030,0},{4908,14035,0},{4910,14035,0},{4915,14037,0},{4917,14035,0}, {4920,14037,0},{4920,14033,0},{4927,14040,0},{4927,14033,0},{4928,14033,0}, {4928,14043,0},{4940,14045,0},{4957,14055,0},{4968,14052,0},{4977,14053,0}, {4980,14047,0},{4987,14040,0},{4988,14043,0},{4998,14048,0},{5003,14063,0}, {5008,14070,0},{5010,14068,0},{5008,14062,0},{5007,14058,0},{5008,14058,0}, {5017,14052,0},{5022,14053,0},{5030,14052,0},{5033,14055,0},{5045,14050,0}, {5053,14043,0},{5060,14048,0},{5062,14052,0},{5070,14047,0},{5082,14055,0}, {5087,14053,0},{5092,14060,0},{5095,14068,0},{5100,14067,0},{5102,14070,0}, {5105,14072,0},{5110,14070,0},{5113,14067,0},{5118,14068,0},{5122,14065,0}, {5125,14072,0},{5127,14070,0},{5132,14068,0},{5133,14077,0},{5133,14080,0}, {5137,14087,0},{5142,14090,0},{5142,14082,0},{5143,14082,0},{5145,14078,0}, {5148,14083,0},{5150,14090,0},{5162,14092,0},{5167,14102,0},{5168,14108,0}, {5167,14112,0},{5170,14112,0},{5177,14118,0},{5183,14122,0},{5188,14128,0}, {5192,14142,0},{5195,14143,0},{5202,14130,0},{5208,14137,0},{5210,14135,0}, {5217,14150,0},{5215,14153,0},{5215,14155,0},{5222,14153,0},{5222,14140,0}, {5227,14133,0},{5228,14128,0},{5233,14123,0},{5235,14117,0},{5240,14113,0}, {5247,14113,0},{5252,14122,0},{5258,14128,0},{5263,14128,0},{5265,14132,0}, {5268,14128,0},{5273,14127,0},{5277,14120,0},{5285,14127,0},{5285,14118,0}, {5288,14108,0},{5292,14105,0},{5293,14097,0},{5298,14093,0},{5302,14095,0}, {5303,14085,0},{5310,14077,0},{5312,14070,0},{5312,14080,0},{5312,14087,0}, {5307,14090,0},{5305,14097,0},{5298,14115,0},{5298,14122,0},{5302,14125,0}, {5303,14118,0},{5308,14125,0},{5307,14135,0},{5307,14137,0},{5308,14137,0}, {5312,14138,0},{5315,14143,0},{5318,14142,0},{5322,14142,0},{5322,14135,0}, {5328,14142,0},{5332,14130,0},{5330,14123,0},{5337,14112,0},{5340,14112,0}, {5340,14103,0},{5345,14100,0},{5343,14093,0},{5347,14093,0},{5350,14097,0}, {5347,14110,0},{5357,14077,0},{5365,14055,0},{5368,14052,0},{5372,14053,0}, {5375,14045,0},{5378,14037,0},{5387,14025,0},{5390,14025,0},{5397,14033,0}, {5400,14023,0},{5405,14025,0},{5408,14015,0},{5412,14002,0},{5418,13990,0}, {5420,13992,0},{5422,13982,0},{5423,13978,0},{5430,13982,0},{5432,13975,0}, {5425,13963,0},{5418,13933,0},{5423,13900,0},{5432,13873,0},{5430,13865,0}, {5427,13872,0},{5423,13875,0},{5420,13872,0},{5417,13873,0},{5407,13867,0}, {5410,13877,0},{5407,13878,0},{5402,13878,0},{5395,13875,0},{5390,13868,0}, {5385,13868,0},{5383,13870,0},{5367,13862,0},{5357,13855,0},{5352,13845,0}, {5352,13828,0},{5352,13825,0},{5348,13822,0},{5353,13825,0},{5357,13823,0}, {5360,13835,0},{5365,13835,0},{5368,13837,0},{5382,13857,0},{5387,13858,0}, {5393,13857,0},{5398,13858,0},{5400,13858,0},{5390,13835,0},{5373,13828,0}, {5367,13813,0},{5363,13802,0},{5357,13790,0},{5355,13768,0},{5353,13748,0}, {5352,13738,0},{5353,13732,0},{5357,13722,0},{5358,13720,0},{5360,13722,0}, {5362,13728,0},{5367,13735,0},{5367,13748,0},{5368,13750,0},{5372,13757,0}, {5377,13755,0},{5378,13760,0},{5383,13760,0},{5388,13770,0},{5390,13778,0}, {5397,13787,0},{5393,13775,0},{5397,13767,0},{5395,13760,0},{5397,13757,0}, {5403,13743,0},{5405,13730,0},{5412,13730,0},{5415,13742,0},{5413,13745,0}, {5408,13745,0},{5408,13748,0},{5412,13748,0},{5413,13752,0},{5415,13752,0}, {5418,13758,0},{5423,13762,0},{5430,13773,0},{5432,13773,0},{5432,13768,0}, {5430,13765,0},{5430,13762,0},{5430,13753,0},{5432,13748,0},{5430,13738,0}, {5428,13737,0},{5427,13728,0},{5422,13725,0},{5422,13718,0},{5418,13717,0}, {5413,13707,0},{5403,13717,0},{5403,13728,0},{5387,13720,0},{5380,13712,0}, {5382,13708,0},{5385,13703,0},{5385,13695,0},{5383,13685,0},{5378,13682,0}, {5377,13678,0},{5382,13668,0},{5393,13665,0},{5402,13670,0},{5405,13677,0}, {5408,13677,0},{5415,13682,0},{5422,13675,0},{5425,13682,0},{5428,13675,0}, {5432,13682,0},{5435,13677,0},{5442,13673,0},{5443,13677,0},{5442,13682,0}, {5443,13683,0},{5447,13682,0},{5448,13683,0},{5452,13682,0},{5458,13688,0}, {5460,13682,0},{5465,13682,0},{5465,13677,0},{5462,13670,0},{5463,13665,0}, {5468,13667,0},{5465,13662,0},{5458,13653,0},{5460,13628,0},{5462,13622,0}, {5460,13610,0},{5457,13600,0},{5457,13573,0},{5458,13570,0},{5467,13567,0}, {5468,13547,0},{5472,13533,0},{5470,13523,0},{5472,13527,0},{5480,13517,0}, {5487,13515,0},{5493,13522,0},{5512,13555,0},{5513,13572,0},{5520,13580,0}, {5520,13587,0},{5525,13595,0},{5530,13607,0},{5530,13613,0},{5535,13618,0}, {5543,13630,0},{5553,13635,0},{5558,13643,0},{5558,13652,0},{5563,13655,0}, {5563,13660,0},{5567,13668,0},{5565,13675,0},{5565,13678,0},{5572,13682,0}, {5577,13690,0},{5580,13698,0},{5580,13707,0},{5588,13717,0},{5593,13730,0}, {5597,13733,0},{5597,13737,0},{5593,13742,0},{5595,13740,0},{5597,13743,0}, {5600,13743,0},{5602,13745,0},{5605,13745,0},{5612,13757,0},{5615,13773,0}, {5617,13773,0},{5620,13777,0},{5623,13777,0},{5625,13785,0},{5630,13788,0}, {5638,13792,0},{5638,13802,0},{5640,13807,0},{5645,13808,0},{5645,13817,0}, {5643,13823,0},{5648,13825,0},{5650,13815,0},{5657,13812,0},{5663,13822,0}, {5663,13827,0},{5667,13827,0},{5668,13830,0},{5672,13830,0},{5673,13840,0}, {5685,13848,0},{5687,13858,0},{5698,13863,0},{5700,13875,0},{5702,13882,0}, {5705,13882,0},{5702,13890,0},{5707,13897,0},{5713,13895,0},{5715,13897,0}, {5713,13907,0},{5715,13907,0},{5727,13917,0},{5730,13937,0},{5732,13940,0}, {5732,13948,0},{5738,13957,0},{5745,13960,0},{5748,13970,0},{5752,13983,0}, {5765,13993,0},{5772,14005,0},{5777,14028,0},{5775,14035,0},{5780,14042,0}, {5782,14050,0},{5793,14052,0},{5808,14062,0},{5823,14068,0},{5830,14078,0}, {5847,14108,0},{5848,14122,0},{5852,14133,0},{5865,14162,0},{5868,14170,0}, {5882,14183,0},{5897,14198,0},{5912,14225,0},{5923,14258,0},{5935,14315,0}, {5937,14313,0},{5938,14320,0},{5937,14333,0},{5933,14343,0},{5933,14353,0}, {5940,14378,0},{5942,14390,0},{5942,14405,0},{5938,14428,0},{5940,14432,0}, {5940,14438,0},{5938,14445,0},{5937,14442,0},{5937,14468,0},{5938,14463,0}, {5940,14462,0},{5940,14477,0},{5938,14480,0},{5938,14477,0},{5938,14493,0}, {5938,14507,0},{5942,14525,0},{5942,14528,0},{5938,14532,0},{5942,14562,0}, {5943,14567,0},{5942,14567,0},{5938,14577,0},{5942,14582,0},{5940,14583,0}, {5942,14592,0},{5935,14592,0},{5933,14587,0},{5927,14580,0},{5922,14585,0}, {5922,14593,0},{5915,14595,0},{5915,14603,0},{5920,14618,0},{5918,14632,0}, {5920,14635,0},{5927,14632,0},{5938,14632,0},{5945,14647,0},{5947,14653,0}, {5942,14667,0},{5937,14673,0},{5935,14687,0},{5937,14700,0},{5932,14717,0}, {5932,14730,0},{5923,14748,0},{5925,14755,0},{5928,14755,0},{5930,14760,0}, {5930,14767,0},{5927,14770,0},{5928,14782,0},{5930,14783,0},{5935,14778,0}, {5938,14783,0},{5942,14822,0},{5938,14837,0},{5935,14840,0},{5933,14837,0}, {5930,14840,0},{5927,14840,0},{5927,14842,0},{5925,14855,0},{5927,14868,0}, {5923,14872,0},{5925,14877,0},{5928,14880,0},{5925,14887,0},{5923,14890,0}, {5925,14895,0},{5932,14892,0},{5938,14897,0},{5940,14892,0},{5938,14892,0}, {5935,14887,0},{5940,14887,0},{5937,14878,0},{5938,14870,0},{5945,14870,0}, {5948,14875,0},{5955,14885,0},{5953,14888,0},{5952,14883,0},{5948,14885,0}, {5947,14890,0},{5947,14895,0},{5945,14897,0},{5950,14912,0},{5947,14922,0}, {5950,14922,0},{5953,14918,0},{5955,14908,0},{5958,14910,0},{5962,14903,0}, {5963,14903,0},{5965,14910,0},{5968,14918,0},{5973,14933,0},{5973,14935,0}, {5975,14932,0},{5977,14935,0},{5975,14937,0},{5977,14962,0},{5970,15003,0}, {5965,15013,0},{5965,15027,0},{5962,15035,0},{5962,15042,0},{5960,15045,0}, {5958,15043,0},{5955,15052,0},{5957,15073,0},{5955,15073,0},{5952,15050,0}, {5948,15043,0},{5952,15067,0},{5950,15072,0},{5948,15073,0},{5947,15068,0}, {5945,15068,0},{5945,15087,0},{5947,15093,0},{5948,15092,0},{5950,15093,0}, {5955,15087,0},{5957,15090,0},{5958,15110,0},{5957,15123,0},{5957,15130,0}, {5960,15133,0},{5960,15137,0},{5957,15140,0},{5955,15145,0},{5950,15148,0}, {5948,15160,0},{5943,15167,0},{5938,15167,0},{5935,15172,0},{5932,15167,0}, {5930,15170,0},{5930,15187,0},{5927,15198,0},{5928,15208,0},{5930,15213,0}, {5927,15217,0},{5923,15228,0},{5920,15228,0},{5920,15217,0},{5915,15205,0}, {5915,15187,0},{5915,15180,0},{5913,15172,0},{5915,15167,0},{5917,15162,0}, {5917,15140,0},{5915,15137,0},{5912,15133,0},{5908,15117,0},{5912,15107,0}, {5903,15113,0},{5902,15118,0},{5895,15122,0},{5892,15128,0},{5883,15132,0}, {5887,15145,0},{5885,15157,0},{5890,15208,0},{5892,15212,0},{5898,15212,0}, {5900,15220,0},{5902,15235,0},{5905,15235,0},{5903,15240,0},{5902,15240,0}, {5900,15247,0},{5895,15255,0},{5895,15263,0},{5890,15272,0},{5893,15282,0}, {5890,15290,0},{5895,15288,0},{5907,15298,0},{5910,15315,0},{5908,15330,0}, {5913,15332,0},{5913,15327,0},{5915,15332,0},{5922,15332,0},{5925,15337,0}, {5922,15352,0},{5920,15358,0},{5927,15375,0},{5925,15373,0},{5922,15373,0}, {5918,15367,0},{5917,15380,0},{5908,15390,0},{5905,15403,0},{5910,15415,0}, {5908,15427,0},{5912,15430,0},{5912,15435,0},{5918,15432,0},{5920,15433,0}, {5922,15445,0},{5920,15452,0},{5913,15465,0},{5913,15470,0},{5912,15477,0}, {5917,15473,0},{5920,15477,0},{5918,15500,0},{5920,15507,0},{5917,15518,0}, {5922,15513,0},{5925,15518,0},{5928,15513,0},{5937,15518,0},{5940,15507,0}, {5950,15497,0},{5948,15490,0},{5945,15485,0},{5948,15483,0},{5948,15475,0}, {5955,15463,0},{5953,15457,0},{5955,15442,0},{5950,15442,0},{5943,15450,0}, {5942,15443,0},{5947,15438,0},{5950,15440,0},{5953,15438,0},{5952,15435,0}, {5948,15435,0},{5945,15428,0},{5945,15413,0},{5947,15410,0},{5952,15407,0}, {5955,15413,0},{5965,15422,0},{5958,15430,0},{5958,15437,0},{5972,15423,0}, {5988,15423,0},{5990,15440,0},{5988,15443,0},{5985,15440,0},{5988,15448,0}, {5992,15447,0},{6005,15453,0},{6027,15480,0},{6035,15493,0},{6040,15508,0}, {6042,15513,0},{6047,15518,0},{6052,15533,0},{6053,15538,0},{6052,15542,0}, {6052,15545,0},{6053,15548,0},{6058,15548,0},{6058,15552,0},{6062,15555,0}, {6065,15565,0},{6067,15570,0},{6073,15582,0},{6072,15590,0},{6085,15590,0}, {6088,15592,0},{6102,15610,0},{6118,15642,0},{6122,15658,0},{6122,15667,0}, {6128,15663,0},{6133,15667,0},{6142,15663,0},{6153,15670,0},{6153,15687,0}, {6160,15698,0},{6165,15702,0},{6170,15715,0},{6172,15728,0},{6170,15737,0}, {6177,15737,0},{6180,15748,0},{6178,15790,0},{6173,15803,0},{6175,15812,0}, {6182,15832,0},{6182,15845,0},{6178,15852,0},{6183,15863,0},{6182,15885,0}, {6185,15883,0},{6188,15888,0},{6192,15920,0},{6188,15937,0},{6185,15938,0}, {6183,15933,0},{6177,15945,0},{6182,15950,128},{6182,15953,0},{6172,15948,0}, {6168,15948,0},{6167,15953,0},{6170,15967,0},{6172,15967,0},{6170,15972,0}, {6173,15975,0},{6172,15983,0},{6178,15992,0},{6182,15997,0},{6188,16010,0}, {6188,16015,0},{6195,16033,0},{6195,16035,0},{6192,16033,0},{6190,16037,0}, {6187,16035,0},{6185,16037,0},{6182,16035,0},{6177,16037,0},{6170,16023,0}, {6167,16028,0},{6163,16023,0},{6158,16022,0},{6157,16023,0},{6152,16017,0}, {6152,16008,0},{6147,16002,0},{6145,16008,0},{6142,16003,0},{6138,16003,0}, {6140,15997,0},{6138,15995,0},{6137,15995,0},{6133,15988,0},{6130,15992,0}, {6132,16000,0},{6128,15993,0},{6132,15985,0},{6130,15983,0},{6125,15975,0}, {6127,15985,0},{6125,15992,0},{6122,15990,0},{6118,15995,0},{6115,15993,0}, {6112,15998,0},{6110,15993,0},{6103,15990,0},{6098,15980,0},{6093,15978,0}, {6095,15992,0},{6098,15993,0},{6105,16017,0},{6107,16035,0},{6105,16043,0}, {6103,16038,0},{6100,16040,0},{6095,16033,0},{6092,16035,0},{6090,16032,0}, {6092,16030,0},{6090,16023,0},{6085,16023,0},{6083,16017,0},{6078,16022,0}, {6073,16022,0},{6072,16018,0},{6068,16018,0},{6068,16012,0},{6058,16013,0}, {6063,16027,0},{6067,16028,0},{6070,16035,0},{6072,16033,0},{6075,16038,0}, {6075,16042,0},{6073,16040,0},{6072,16045,0},{6075,16057,0},{6073,16058,0}, {6073,16062,0},{6078,16067,0},{6073,16080,0},{6080,16082,0},{6092,16090,0}, {6092,16095,0},{6097,16103,0},{6100,16117,0},{6107,16122,0},{6108,16130,0}, {6113,16143,0},{6117,16142,0},{6120,16147,0},{6120,16157,0},{6123,16162,0}, {6127,16157,0},{6127,16165,0},{6130,16175,0},{6138,16180,0},{6135,16187,0}, {6143,16188,0},{6138,16193,0},{6142,16203,0},{6145,16205,0},{6147,16208,0}, {6153,16222,0},{6157,16222,0},{6158,16228,0},{6162,16228,0},{6163,16235,0}, {6167,16240,0},{6167,16253,0},{6162,16267,0},{6160,16275,0},{6163,16275,0}, {6163,16270,0},{6167,16263,0},{6168,16265,0},{6172,16280,0},{6172,16285,0}, {6167,16293,0},{6163,16285,0},{6162,16290,0},{6158,16288,0},{6158,16295,0}, {6152,16300,0},{6155,16308,0},{6160,16307,0},{6162,16310,0},{6163,16313,0}, {6162,16322,0},{6165,16320,0},{6167,16328,0},{6168,16332,0},{6172,16330,0}, {6175,16323,0},{6178,16298,0},{6180,16295,0},{6192,16305,0},{6193,16300,0}, {6197,16303,0},{6198,16310,0},{6202,16310,0},{6207,16317,0},{6210,16308,0}, {6212,16313,0},{6220,16308,0},{6228,16312,0},{6230,16317,0},{6230,16322,0}, {6233,16323,0},{6235,16335,0},{6238,16332,0},{6240,16323,0},{6243,16322,0}, {6245,16317,0},{6247,16322,0},{6252,16322,0},{6255,16327,0},{6257,16348,0}, {6262,16373,0},{6260,16392,0},{6265,16395,0},{6268,16427,0},{6272,16437,0}, {6268,16458,0},{6258,16470,0},{6255,16492,0},{6252,16503,0},{6250,16532,0}, {6245,16565,0},{6243,16562,0},{6245,16547,0},{6248,16535,0},{6247,16513,0}, {6245,16508,0},{6240,16523,0},{6232,16533,0},{6232,16528,0},{6238,16523,0}, {6242,16508,0},{6242,16492,0},{6247,16472,0},{6247,16458,0},{6245,16452,0}, {6242,16443,0},{6237,16440,0},{6233,16423,0},{6227,16412,0},{6220,16408,0}, {6215,16410,0},{6210,16407,0},{6203,16410,0},{6198,16405,0},{6188,16407,0}, {6183,16403,0},{6178,16407,0},{6168,16402,0},{6163,16385,0},{6157,16383,0}, {6145,16375,0},{6142,16378,0},{6145,16385,0},{6143,16397,0},{6137,16402,0}, {6133,16402,0},{6130,16395,0},{6123,16393,0},{6115,16363,0},{6112,16360,0}, {6107,16360,0},{6105,16352,0},{6102,16347,0},{6100,16347,0},{6100,16352,0}, {6093,16375,0},{6087,16370,0},{6087,16357,0},{6083,16340,0},{6075,16330,0}, {6072,16332,0},{6075,16327,0},{6080,16330,0},{6082,16330,0},{6082,16318,0}, {6080,16310,0},{6078,16312,0},{6077,16308,0},{6078,16302,0},{6077,16288,0}, {6065,16277,0},{6060,16262,0},{6062,16250,0},{6055,16240,0},{6053,16220,0}, {6048,16212,0},{6042,16192,0},{6032,16187,0},{6033,16192,0},{6032,16192,0}, {6025,16193,0},{6017,16182,0},{6012,16172,0},{6010,16163,0},{6007,16158,0}, {6007,16150,0},{6005,16147,0},{5985,16125,0},{5977,16110,0},{5972,16097,0}, {5962,16087,0},{5955,16048,0},{5945,16045,0},{5935,16033,0},{5932,16020,0}, {5923,16005,0},{5917,15990,0},{5908,15978,0},{5905,15978,0},{5902,15973,0}, {5895,15975,0},{5887,15972,0},{5883,15962,0},{5880,15962,0},{5872,15950,0}, {5868,15948,0},{5867,15940,0},{5853,15918,0},{5847,15923,0},{5852,15915,0}, {5845,15910,0},{5842,15903,0},{5827,15867,0},{5803,15823,0},{5803,15828,0}, {5800,15830,0},{5797,15835,0},{5795,15833,0},{5800,15827,0},{5802,15822,0}, {5798,15805,0},{5798,15792,0},{5798,15780,0},{5802,15772,0},{5802,15765,0}, {5798,15763,0},{5795,15758,0},{5788,15757,0},{5782,15750,0},{5778,15743,0}, {5777,15733,0},{5777,15717,0},{5780,15707,0},{5785,15698,0},{5782,15690,0}, {5780,15687,0},{5773,15675,0},{5773,15685,0},{5765,15693,0},{5753,15698,0}, {5743,15698,0},{5712,15670,0},{5708,15672,0},{5703,15667,0},{5707,15665,0}, {5710,15655,0},{5708,15653,0},{5702,15652,0},{5695,15645,0},{5685,15620,0}, {5682,15620,0},{5678,15613,0},{5672,15607,0},{5677,15607,0},{5683,15617,0}, {5685,15617,0},{5682,15612,0},{5667,15595,0},{5660,15593,0},{5613,15573,0}, {5610,15577,0},{5610,15572,0},{5605,15568,0},{5592,15565,0},{5562,15562,0}, {5557,15558,0},{5533,15555,0},{5513,15557,0},{5492,15560,0},{5482,15565,0}, {5478,15563,0},{5445,15572,0},{5385,15593,0},{5383,15592,0},{5310,15608,0}, {5285,15610,0},{5257,15627,0},{5255,15630,0},{5252,15635,0},{5252,15643,0}, {5248,15643,0},{5245,15637,0},{5250,15637,0},{5252,15628,0},{5228,15640,0}, {5193,15650,0},{5175,15650,0},{5152,15647,0},{5147,15648,0},{5142,15652,0}, {5132,15652,0},{5127,15657,0},{5125,15663,0},{5123,15667,0},{5118,15670,0}, {5110,15670,0},{5107,15675,0},{5098,15675,0},{5088,15665,0},{5088,15670,0}, {5095,15678,0},{5102,15682,0},{5107,15695,0},{5120,15715,0},{5120,15722,0}, {5123,15725,0},{5133,15735,0},{5135,15747,0},{5138,15747,0},{5140,15752,0}, {5143,15748,0},{5148,15753,0},{5155,15768,0},{5157,15777,0},{5163,15788,0}, {5163,15792,0},{5167,15792,0},{5172,15798,0},{5177,15802,0},{5180,15812,0}, {5190,15818,0},{5193,15828,0},{5203,15828,0},{5207,15833,0},{5212,15832,0}, {5213,15833,0},{5212,15837,0},{5218,15843,0},{5222,15838,0},{5223,15843,0}, {5227,15842,0},{5227,15852,0},{5230,15855,0},{5233,15855,0},{5235,15850,0}, {5238,15857,0},{5243,15853,0},{5242,15842,0},{5243,15847,0},{5247,15847,0}, {5248,15853,0},{5250,15850,0},{5252,15852,0},{5257,15852,0},{5260,15843,0}, {5262,15845,0},{5265,15842,0},{5262,15853,0},{5265,15857,0},{5272,15860,0}, {5273,15857,0},{5275,15850,0},{5275,15848,0},{5278,15850,0},{5278,15857,0}, {5283,15855,0},{5282,15858,0},{5285,15863,0},{5287,15860,0},{5290,15865,0}, {5293,15863,0},{5295,15852,0},{5293,15848,0},{5290,15853,0},{5292,15848,0}, {5290,15845,0},{5295,15842,0},{5297,15845,0},{5300,15842,0},{5302,15843,0}, {5303,15850,0},{5307,15853,0},{5305,15860,0},{5302,15863,0},{5298,15868,0}, {5295,15867,0},{5288,15872,0},{5302,15892,0},{5308,15903,0},{5317,15928,0}, {5315,15938,0},{5323,15948,0},{5327,15962,0},{5323,15972,0},{5327,15977,0}, {5328,15982,0},{5325,15978,0},{5322,15977,0},{5315,15993,0},{5310,15997,0}, {5310,16005,0},{5327,16002,0},{5327,15997,0},{5320,15997,0},{5327,15992,0}, {5330,15997,0},{5333,15997,0},{5333,15992,0},{5338,15993,0},{5340,15988,0}, {5348,15985,0},{5348,15980,0},{5350,15982,0},{5352,15980,0},{5353,15982,0}, {5352,15985,0},{5347,15993,0},{5352,15997,0},{5357,15997,0},{5367,15990,0}, {5367,15987,0},{5358,15992,0},{5365,15982,0},{5368,15987,0},{5375,15983,0}, {5385,15985,0},{5398,15990,0},{5407,15998,0},{5412,15998,0},{5420,16010,0}, {5425,16025,0},{5437,16040,0},{5452,16072,0},{5453,16072,0},{5455,16085,0}, {5458,16112,0},{5458,16118,0},{5455,16122,0},{5452,16123,0},{5448,16130,0}, {5452,16147,0},{5450,16152,0},{5452,16162,0},{5450,16173,0},{5458,16182,0}, {5465,16198,0},{5470,16200,0},{5477,16212,0},{5482,16210,0},{5483,16215,0}, {5487,16215,0},{5490,16207,0},{5502,16197,0},{5507,16188,0},{5512,16183,0}, {5513,16182,0},{5537,16172,0},{5548,16172,0},{5563,16175,0},{5572,16182,0}, {5580,16192,0},{5587,16193,0},{5595,16202,0},{5602,16205,0},{5607,16203,0}, {5610,16210,0},{5617,16222,0},{5620,16243,0},{5623,16248,0},{5623,16252,0}, {5627,16257,0},{5633,16248,0},{5638,16240,0},{5640,16240,0},{5640,16247,0}, {5643,16252,0},{5642,16257,0},{5648,16263,0},{5648,16270,0},{5648,16275,0}, {5643,16290,0},{5645,16293,0},{5652,16293,0},{5655,16298,0},{5652,16310,0}, {5647,16307,0},{5643,16293,0},{5640,16292,0},{5637,16285,0},{5635,16272,0}, {5627,16267,0},{5623,16260,0},{5622,16252,0},{5622,16258,0},{5615,16270,0}, {5610,16275,0},{5603,16288,0},{5602,16303,0},{5603,16305,0},{5612,16313,0}, {5620,16335,0},{5625,16333,0},{5630,16332,0},{5632,16333,0},{5638,16332,0}, {5645,16323,0},{5648,16327,0},{5655,16323,0},{5657,16325,0},{5663,16322,0}, {5670,16325,0},{5673,16322,0},{5673,16312,0},{5675,16308,0},{5673,16300,0}, {5670,16292,0},{5673,16285,0},{5678,16278,0},{5688,16278,0},{5705,16283,0}, {5722,16275,0},{5735,16277,0},{5735,16273,0},{5743,16285,0},{5748,16305,0}, {5758,16312,0},{5760,16320,0},{5763,16322,0},{5767,16320,0},{5775,16328,0}, {5777,16327,0},{5785,16320,0},{5785,16300,0},{5792,16285,0},{5793,16277,0}, {5797,16270,0},{5795,16265,0},{5795,16255,0},{5792,16250,0},{5787,16247,0}, {5777,16248,0},{5768,16237,0},{5768,16233,0},{5772,16233,0},{5773,16240,0}, {5778,16243,0},{5780,16225,0},{5785,16210,0},{5790,16203,0},{5803,16193,0}, {5807,16193,0},{5845,16213,0},{5867,16240,0},{5875,16252,0},{5883,16277,0}, {5887,16278,0},{5885,16277,0},{5887,16272,0},{5883,16272,0},{5887,16267,0}, {5890,16280,0},{5898,16288,0},{5895,16292,0},{5893,16285,0},{5895,16298,0}, {5898,16303,0},{5903,16305,0},{5903,16300,0},{5913,16288,0},{5913,16293,0}, {5917,16295,0},{5915,16298,0},{5917,16302,0},{5913,16307,0},{5912,16307,0}, {5908,16317,0},{5903,16315,0},{5905,16320,0},{5915,16318,0},{5918,16312,0}, {5920,16307,0},{5920,16308,0},{5923,16307,0},{5927,16308,0},{5930,16317,0}, {5928,16320,0},{5930,16328,0},{5925,16323,0},{5925,16328,0},{5938,16333,0}, {5943,16330,0},{5950,16317,0},{5955,16320,0},{5957,16317,0},{5958,16327,0}, {5958,16333,0},{5962,16338,0},{5982,16337,0},{5985,16345,0},{5990,16350,0}, {5988,16368,0},{5998,16380,0},{5997,16372,0},{5997,16368,0},{5998,16365,0}, {6002,16362,0},{6003,16363,0},{6005,16373,0},{6005,16382,0},{6005,16383,0}, {6003,16387,0},{6002,16385,0},{6003,16390,0},{6003,16403,0},{5998,16412,0}, {6000,16420,0},{5992,16410,0},{5990,16403,0},{5987,16405,0},{5985,16418,0}, {5992,16410,0},{5997,16417,0},{5998,16430,0},{6000,16435,0},{6002,16437,0}, {6005,16432,0},{6008,16432,0},{6007,16435,0},{6012,16445,0},{6008,16453,0}, {6003,16460,0},{5993,16473,0},{5985,16478,0},{5982,16477,0},{5978,16482,0}, {5982,16492,0},{5983,16500,0},{5997,16515,0},{5998,16522,0},{6003,16515,0}, {6008,16512,0},{6008,16507,0},{6007,16505,0},{6008,16500,0},{6013,16500,0}, {6012,16505,0},{6013,16512,0},{6017,16518,0},{6015,16518,0},{6013,16515,0}, {6008,16520,0},{6010,16525,0},{6013,16528,0},{6018,16543,0},{6025,16543,0}, {6022,16545,0},{6022,16552,0},{6025,16565,0},{6028,16577,0},{6033,16585,0}, {6038,16598,0},{6043,16605,0},{6045,16620,0},{6042,16605,0},{6037,16595,0}, {6038,16592,0},{6043,16600,0},{6048,16622,0},{6048,16630,0},{6047,16632,0}, {6050,16638,0},{6048,16640,0},{6045,16635,0},{6040,16633,0},{6038,16627,0}, {6040,16623,0},{6033,16627,0},{6025,16627,0},{6020,16628,0},{6017,16625,0}, {6012,16617,0},{6002,16613,0},{5997,16615,0},{5992,16610,0},{5983,16610,0}, {5982,16612,0},{5985,16630,0},{6000,16655,0},{6022,16683,0},{6025,16693,0}, {6028,16693,0},{6030,16690,0},{6032,16705,0},{6043,16702,0},{6042,16707,0}, {6038,16712,0},{6035,16718,0},{6037,16730,0},{6038,16730,0},{6042,16728,0}, {6040,16737,0},{6047,16733,0},{6042,16745,0},{6043,16747,0},{6047,16748,0}, {6043,16753,0},{6045,16762,0},{6047,16768,0},{6048,16777,0},{6053,16775,0}, {6055,16777,0},{6052,16782,0},{6053,16797,0},{6058,16818,0},{6060,16833,0}, {6060,16848,0},{6055,16867,0},{6057,16877,0},{6055,16892,0},{6057,16903,0}, {6057,16915,0},{6058,16913,0},{6058,16920,0},{6062,16922,0},{6062,16928,0}, {6057,16937,0},{6055,16933,0},{6057,16927,0},{6055,16925,0},{6047,16953,0}, {6047,16957,0},{6043,16960,0},{6042,16970,0},{6028,16975,0},{6023,16982,0}, {6025,16988,0},{6023,16997,0},{6022,16985,0},{6018,16983,0},{6007,16993,0}, {6003,17008,0},{6002,17012,0},{5998,17010,0},{5992,17025,0},{5997,17040,0}, {6022,17047,0},{6027,17050,0},{6033,17067,0},{6035,17065,0},{6037,17060,0}, {6038,17062,0},{6043,17058,0},{6043,17052,0},{6045,17052,0},{6045,17060,0}, {6043,17062,0},{6042,17065,0},{6045,17078,0},{6050,17080,0},{6050,17075,0}, {6053,17075,0},{6050,17085,0},{6053,17100,0},{6057,17108,0},{6055,17118,0}, {6063,17137,0},{6068,17137,0},{6072,17140,0},{6078,17140,0},{6073,17147,0}, {6068,17142,0},{6072,17148,0},{6075,17163,0},{6077,17162,0},{6080,17153,0}, {6082,17167,0},{6085,17173,0},{6083,17185,0},{6085,17195,0},{6095,17195,0}, {6092,17200,0},{6088,17198,0},{6085,17202,0},{6087,17207,0},{6093,17212,0}, {6095,17218,0},{6097,17220,0},{6102,17217,0},{6103,17212,0},{6110,17202,0}, {6107,17215,0},{6102,17222,0},{6102,17228,0},{6102,17238,0},{6105,17248,0}, {6108,17248,0},{6107,17243,0},{6108,17242,0},{6110,17238,0},{6110,17230,0}, {6113,17225,0},{6112,17232,0},{6113,17243,0},{6117,17237,0},{6123,17235,0}, {6118,17255,0},{6120,17265,0},{6123,17267,0},{6127,17277,0},{6133,17267,0}, {6128,17285,0},{6130,17295,0},{6137,17290,0},{6143,17272,0},{6147,17288,0}, {6145,17292,0},{6145,17295,0},{6142,17298,0},{6138,17308,0},{6143,17322,0}, {6147,17330,0},{6152,17328,0},{6155,17335,0},{6155,17348,0},{6165,17347,0}, {6175,17357,0},{6175,17362,0},{6170,17370,0},{6168,17382,0},{6165,17380,0}, {6170,17392,0},{6172,17398,0},{6175,17402,0},{6178,17410,0},{6178,17403,0}, {6182,17400,0},{6183,17408,0},{6183,17407,0},{6182,17418,0},{6182,17420,0}, {6180,17415,0},{6182,17418,0},{6180,17428,0},{6185,17435,0},{6183,17438,0}, {6182,17437,0},{6180,17445,0},{6183,17460,0},{6187,17470,0},{6188,17473,0}, {6195,17462,0},{6198,17460,0},{6195,17470,0},{6195,17478,0},{6193,17480,0}, {6192,17477,0},{6193,17482,0},{6202,17517,0},{6205,17525,0},{6217,17527,0}, {6210,17530,0},{6212,17540,0},{6207,17530,0},{6217,17553,0},{6223,17580,0}, {6232,17628,0},{6240,17642,0},{6247,17663,0},{6247,17660,0},{6248,17660,0}, {6253,17668,0},{6253,17672,0},{6252,17668,0},{6250,17668,0},{6253,17685,0}, {6257,17727,0},{6258,17717,0},{6258,17705,0},{6262,17702,0},{6267,17693,0}, {6270,17693,0},{6272,17697,0},{6277,17705,0},{6278,17700,0},{6287,17698,0}, {6285,17703,0},{6283,17703,0},{6278,17715,0},{6272,17713,0},{6270,17720,0}, {6272,17727,0},{6273,17725,0},{6280,17733,0},{6282,17745,0},{6278,17742,0}, {6277,17743,0},{6277,17740,0},{6277,17733,0},{6273,17732,0},{6268,17733,0}, {6262,17727,0},{6258,17733,0},{6258,17730,0},{6257,17772,0},{6255,17803,0}, {6248,17828,0},{6235,17897,0},{6228,17907,0},{6228,17910,0},{6233,17915,0}, {6242,17915,0},{6247,17910,0},{6250,17918,0},{6250,17935,0},{6253,17940,0}, {6262,17943,0},{6262,17957,0},{6267,17955,0},{6270,17960,0},{6275,17960,0}, {6287,17950,0},{6290,17932,0},{6300,17923,0},{6302,17925,0},{6305,17930,0}, {6307,17937,0},{6305,17940,0},{6315,17942,0},{6322,17927,0},{6323,17920,0}, {6323,17913,0},{6328,17905,0},{6330,17893,0},{6333,17890,0},{6333,17883,0}, {6335,17882,0},{6338,17880,0},{6340,17883,0},{6332,17900,0},{6350,17880,0}, {6358,17878,0},{6358,17875,0},{6353,17875,0},{6343,17883,0},{6340,17877,0}, {6338,17868,0},{6342,17858,128},{6343,17863,0},{6345,17865,0},{6348,17872,0}, {6357,17872,0},{6357,17867,0},{6358,17852,0},{6357,17847,0},{6352,17840,0}, {6352,17837,0},{6357,17827,0},{6358,17827,0},{6363,17835,0},{6362,17847,0}, {6360,17847,0},{6358,17850,0},{6362,17853,0},{6363,17852,0},{6362,17862,0}, {6358,17863,0},{6360,17872,0},{6362,17872,0},{6362,17865,0},{6367,17860,0}, {6365,17872,0},{6363,17877,0},{6390,17870,0},{6400,17863,0},{6395,17865,0}, {6395,17858,0},{6397,17853,0},{6397,17842,0},{6397,17838,0},{6398,17848,0}, {6400,17838,0},{6403,17840,0},{6407,17847,0},{6407,17852,0},{6403,17858,0}, {6417,17843,0},{6427,17837,0},{6445,17818,0},{6440,17818,0},{6443,17820,0}, {6442,17823,0},{6435,17828,0},{6428,17820,0},{6425,17808,0},{6423,17810,0}, {6420,17818,0},{6420,17810,0},{6422,17795,0},{6425,17782,0},{6430,17767,0}, {6443,17742,0},{6455,17737,0},{6465,17745,0},{6475,17748,0},{6478,17733,0}, {6472,17715,0},{6470,17698,0},{6463,17685,0},{6460,17683,0},{6457,17673,0}, {6462,17670,0},{6468,17650,0},{6468,17645,0},{6462,17633,0},{6462,17622,0}, {6457,17613,0},{6453,17612,0},{6463,17615,0},{6465,17632,0},{6472,17642,0}, {6477,17630,0},{6482,17628,0},{6483,17623,0},{6487,17620,0},{6490,17603,0}, {6478,17583,0},{6475,17570,0},{6475,17548,0},{6473,17528,0},{6473,17505,0}, {6467,17477,0},{6467,17465,0},{6467,17452,0},{6468,17443,0},{6468,17470,0}, {6468,17477,0},{6477,17505,0},{6475,17515,0},{6477,17523,0},{6475,17532,0}, {6477,17538,0},{6478,17555,0},{6478,17572,0},{6483,17587,0},{6487,17593,0}, {6490,17593,0},{6495,17607,0},{6492,17608,0},{6492,17618,0},{6485,17640,0}, {6480,17643,0},{6482,17653,0},{6487,17663,0},{6487,17675,0},{6485,17678,0}, {6485,17688,0},{6480,17693,0},{6478,17700,0},{6477,17703,0},{6478,17718,0}, {6482,17728,0},{6483,17730,0},{6485,17722,0},{6488,17725,0},{6492,17722,0}, {6498,17707,0},{6500,17700,0},{6503,17697,0},{6505,17688,0},{6503,17682,0}, {6500,17670,0},{6500,17657,0},{6500,17650,0},{6503,17643,0},{6503,17633,0}, {6505,17630,0},{6505,17638,0},{6508,17638,0},{6508,17642,0},{6502,17658,0}, {6508,17690,0},{6502,17717,0},{6493,17725,0},{6492,17743,0},{6485,17748,0}, {6483,17738,0},{6482,17742,0},{6482,17750,0},{6478,17748,0},{6478,17755,0}, {6475,17763,0},{6472,17762,0},{6470,17778,0},{6470,17792,0},{6467,17800,0}, {6468,17808,0},{6468,17825,0},{6465,17827,0},{6465,17825,0},{6470,17873,0}, {6467,17875,0},{6463,17870,0},{6462,17850,0},{6458,17850,0},{6460,17862,0}, {6478,17915,0},{6480,17925,0},{6482,17942,0},{6482,17945,0},{6482,17948,0}, {6493,17968,0},{6502,17980,0},{6507,18000,0},{6515,47554,0},{6517,47566,0}, {6527,47579,0},{6543,47583,0},{6553,47604,0},{6560,47599,0},{6563,47603,0}, {6580,47561,0},{6595,47554,0},{6612,47559,0},{6618,47566,0},{6615,47578,0}, {6613,47578,0},{6613,47568,0},{6612,47573,0},{6613,47598,0},{6618,47611,0}, {6635,47594,0},{6632,47603,0},{6630,47606,0},{6628,47618,0},{6635,47618,0}, {6642,47618,0},{6638,47624,0},{6630,47628,0},{6625,47624,0},{6620,47629,0}, {6617,47639,0},{6620,47658,0},{6632,47671,0},{6637,47673,0},{6637,47678,0}, {6637,47679,0},{6640,47683,0},{6640,47686,0},{6630,47686,0},{6627,47683,0}, {6623,47684,0},{6618,47679,0},{6617,47681,0},{6612,47676,0},{6612,47669,0}, {6602,47666,0},{6598,47658,0},{6605,47638,0},{6593,47649,0},{6592,47646,0}, {6588,47649,0},{6585,47658,0},{6578,47668,0},{6578,47673,0},{6577,47671,0}, {6575,47674,0},{6575,47684,0},{6573,47689,0},{6563,47688,0},{6562,47683,0}, {6557,47684,0},{6555,47679,0},{6552,47681,0},{6548,47699,0},{6548,47716,0}, {6548,47766,0},{6548,47786,0},{6550,47796,0},{6558,47814,0},{6562,47829,0}, {6555,47879,0},{6548,47903,0},{6548,47918,0},{6548,47926,0},{6540,47943,0}, {6535,47943,0},{6530,47948,0},{6528,47944,0},{6517,47958,0},{6507,47954,0}, {6502,47944,0},{6495,47954,0},{6492,47973,0},{6488,47979,0},{6485,47983,0}, {6485,47994,0},{6483,47994,0},{6482,47984,0},{6478,47988,0},{6478,47996,0}, {6478,48023,0},{6478,48034,0},{6487,48034,0},{6485,48038,0},{6482,48036,0}, {6478,48051,0},{6467,48091,0},{6467,48108,0},{6465,48108,0},{6463,48101,0}, {6455,48124,0},{6442,48131,0},{6435,48168,0},{6435,48178,0},{6440,48189,0}, {6447,48199,0},{6450,48201,0},{6462,48194,0},{6458,48198,0},{6458,48203,0}, {6455,48201,0},{6452,48208,0},{6445,48204,0},{6445,48209,0},{6437,48194,0}, {6432,48193,0},{6425,48218,0},{6428,48236,0},{6432,48239,0},{6433,48246,0}, {6442,48246,0},{6445,48248,0},{6447,48244,0},{6447,48229,0},{6450,48234,0}, {6450,48241,0},{6452,48243,0},{6452,48253,0},{6450,48254,0},{6447,48259,0}, {6442,48256,0},{6442,48263,0},{6438,48273,0},{6440,48286,0},{6442,48291,0}, {6443,48308,0},{6450,48293,0},{6455,48289,0},{6457,48281,0},{6458,48269,0}, {6460,48263,0},{6463,48258,0},{6462,48248,0},{6458,48241,0},{6458,48234,0}, {6462,48241,0},{6467,48249,0},{6468,48246,0},{6467,48231,0},{6467,48228,0}, {6472,48239,0},{6472,48249,0},{6473,48249,0},{6477,48258,0},{6478,48258,0}, {6485,48239,0},{6478,48219,0},{6478,48216,0},{6482,48226,0},{6485,48228,0}, {6487,48231,0},{6488,48241,0},{6485,48256,0},{6487,48261,0},{6488,48266,0}, {6490,48276,0},{6492,48283,0},{6492,48286,0},{6492,48289,0},{6508,48323,0}, {6510,48323,0},{6508,48316,0},{6513,48311,0},{6513,48318,0},{6520,48311,0}, {6522,48306,0},{6522,48274,0},{6523,48268,0},{6525,48266,0},{6527,48269,0}, {6527,48274,0},{6523,48278,0},{6525,48283,0},{6527,48298,0},{6527,48308,0}, {6523,48311,0},{6525,48311,0},{6535,48311,0},{6550,48321,0},{6543,48308,0}, {6542,48296,0},{6547,48289,0},{6548,48303,0},{6553,48293,0},{6560,48296,0}, {6562,48269,0},{6563,48268,0},{6567,48269,0},{6567,48256,0},{6570,48251,0}, {6568,48256,0},{6570,48271,0},{6568,48274,0},{6568,48279,0},{6567,48294,0}, {6567,48301,0},{6563,48299,0},{6558,48308,0},{6555,48303,0},{6553,48313,0}, {6557,48324,0},{6555,48329,0},{6553,48333,0},{6553,48353,0},{6552,48354,0}, {6550,48343,0},{6548,48329,0},{6553,48396,0},{6548,48419,0},{6548,48431,0}, {6560,48434,0},{6560,48429,0},{6563,48423,0},{6567,48408,0},{6572,48399,0}, {6573,48404,0},{6575,48393,0},{6582,48388,0},{6583,48383,0},{6582,48394,0}, {6577,48409,0},{6570,48416,0},{6568,48428,0},{6565,48446,0},{6562,48448,0}, {6560,48468,0},{6562,48478,0},{6567,48483,0},{6573,48483,0},{6577,48479,0}, {6583,48484,0},{6585,48481,0},{6585,48474,0},{6602,48524,0},{6603,48536,0}, {6602,48543,0},{6598,48554,0},{6600,48558,0},{6607,48568,0},{6613,48564,0}, {6618,48533,0},{6617,48544,0},{6613,48543,0},{6617,48521,0},{6615,48518,0}, {6615,48513,0},{6618,48503,0},{6620,48506,0},{6618,48518,0},{6620,48523,0}, {6630,48504,0},{6630,48491,0},{6623,48481,0},{6623,48471,0},{6628,48481,0}, {6630,48479,0},{6632,48494,0},{6635,48478,0},{6645,48463,0},{6652,48448,0}, {6657,48426,0},{6665,48403,0},{6672,48393,0},{6675,48396,0},{6677,48394,0}, {6680,48376,0},{6685,48366,0},{6693,48368,0},{6695,48363,0},{6695,48344,0}, {6698,48341,0},{6695,48331,0},{6697,48303,0},{6702,48258,0},{6700,48286,0}, {6702,48274,0},{6705,48231,0},{6705,48229,0},{6703,48231,0},{6697,48281,0}, {6693,48293,0},{6692,48278,0},{6693,48271,0},{6690,48258,0},{6693,48233,0}, {6695,48228,0},{6700,48224,0},{6698,48214,0},{6695,48214,0},{6692,48208,0}, {6692,48216,0},{6688,48214,0},{6687,48221,0},{6683,48214,0},{6683,48199,0}, {6687,48199,0},{6688,48203,0},{6692,48199,0},{6692,48203,0},{6695,48201,0}, {6697,48201,0},{6700,48206,0},{6700,48214,0},{6702,48218,0},{6703,48206,0}, {6707,48206,0},{6705,48213,0},{6705,48223,0},{6708,48193,0},{6703,48189,0}, {6703,48184,0},{6705,48183,0},{6708,48186,0},{6710,48184,0},{6713,48168,0}, {6710,48161,0},{6708,48153,0},{6710,48098,0},{6708,48074,0},{6707,48071,0}, {6705,48074,0},{6708,48094,0},{6707,48093,0},{6705,48079,0},{6703,48083,0}, {6705,48108,0},{6702,48111,0},{6700,48104,0},{6698,48106,0},{6698,48124,0}, {6693,48128,0},{6690,48128,0},{6685,48134,0},{6670,48136,0},{6668,48141,0}, {6667,48138,0},{6668,48134,0},{6658,48106,0},{6655,48114,0},{6652,48144,0}, {6648,48148,0},{6645,48161,0},{6637,48158,0},{6635,48153,0},{6633,48143,0}, {6632,48151,0},{6627,48138,0},{6622,48134,0},{6625,48128,0},{6632,48129,0}, {6635,48138,0},{6640,48131,0},{6645,48138,0},{6648,48134,0},{6648,48121,0}, {6647,48116,0},{6647,48109,0},{6642,48114,0},{6640,48104,0},{6635,48096,0}, {6632,48101,0},{6630,48093,0},{6630,48089,0},{6633,48086,0},{6635,48094,0}, {6638,48086,0},{6645,48084,0},{6647,48088,0},{6645,48094,0},{6653,48088,0}, {6658,48071,0},{6662,48046,0},{6667,48036,0},{6668,48041,0},{6670,48041,0}, {6672,48048,0},{6675,48049,0},{6675,48059,0},{6673,48061,0},{6687,48059,0}, {6690,48056,0},{6693,48063,0},{6693,48056,0},{6698,48044,0},{6710,48041,0}, {6728,48046,0},{6732,48053,0},{6728,48056,0},{6730,48058,0},{6738,48053,0}, {6738,48049,0},{6740,48043,0},{6742,48041,0},{6742,48043,0},{6748,48028,0}, {6745,48031,0},{6737,48026,0},{6735,48016,0},{6735,47998,0},{6745,48014,0}, {6750,48014,0},{6752,48009,0},{6750,48023,0},{6753,48019,0},{6755,48009,0}, {6765,47999,0},{6765,48006,0},{6767,48006,0},{6768,47996,0},{6783,47946,0}, {6790,47921,0},{6817,47829,0},{6813,47819,0},{6815,47811,0},{6817,47813,0}, {6820,47809,0},{6820,47819,0},{6825,47799,0},{6822,47781,0},{6818,47773,0}, {6822,47774,0},{6822,47768,0},{6825,47759,0},{6828,47773,0},{6830,47776,0}, {6828,47789,0},{6830,47781,0},{6840,47753,0},{6855,47698,0},{6853,47701,0}, {6833,47766,0},{6828,47741,0},{6825,47739,0},{6825,47729,0},{6827,47728,0}, {6833,47741,0},{6843,47733,0},{6848,47711,0},{6848,47698,0},{6850,47693,0}, {6853,47663,0},{6867,47661,0},{6860,47679,0},{6858,47688,0},{6877,47644,0}, {6878,47619,0},{6882,47614,0},{6882,47596,0},{6885,47594,0},{6885,47601,0}, {6887,47603,0},{6890,47593,0},{6895,47584,0},{6895,47581,0},{6892,47584,0}, {6890,47578,0},{6892,47559,0},{6898,18000,128},{6898,17975,0},{6902,17967,0}, {6907,17965,0},{6908,17958,0},{6912,17957,0},{6900,17983,0},{6900,17995,0}, {6922,17935,0},{6927,17928,0},{6930,17907,0},{6928,17900,0},{6930,17888,0}, {6928,17872,0},{6930,17867,0},{6938,17867,0},{6937,17868,0},{6935,17885,0}, {6932,17888,0},{6932,17907,0},{6935,17900,0},{6947,17848,0},{6948,17833,0}, {6947,17825,0},{6947,17830,0},{6943,17823,0},{6947,17808,0},{6950,17790,0}, {6953,17773,0},{6953,17765,0},{6955,17760,0},{6955,17768,0},{6960,17745,0}, {6963,17703,0},{6967,17673,0},{6975,17650,0},{6978,17623,0},{6980,17628,0}, {6988,17612,0},{6988,17583,0},{6990,17572,0},{6988,17552,0},{6985,17543,0}, {6985,17530,0},{6985,17515,0},{6987,17515,0},{6988,17538,0},{6985,17505,0}, {6987,17445,0},{6988,17432,0},{6988,17403,0},{6985,17390,0},{6988,17377,0}, {6983,17375,0},{6987,17368,0},{6988,17370,0},{6995,17347,0},{6993,17322,0}, {6990,17317,0},{6988,17317,0},{6990,17320,0},{6992,17327,0},{6987,17340,0}, {6985,17347,0},{6982,17347,0},{6978,17337,0},{6978,17322,0},{6978,17317,0}, {6982,17322,0},{6985,17317,0},{6987,17303,0},{6990,17283,0},{6998,17273,0}, {6997,17250,0},{6998,17215,0},{7000,17193,0},{7007,17138,0},{7010,17080,0}, {7013,17047,0},{7012,17040,0},{7010,17053,0},{7007,17057,0},{6993,17052,0}, {6988,17057,0},{6980,17055,0},{6978,17057,0},{6975,17050,0},{6973,17028,0}, {6967,17015,0},{6962,17012,0},{6960,17017,0},{6958,17025,0},{6960,17047,0}, {6960,17058,0},{6953,17067,0},{6947,17068,0},{6945,17073,0},{6938,17075,0}, {6930,17092,0},{6923,17093,0},{6917,17088,0},{6915,17097,0},{6905,17103,0}, {6903,17117,0},{6902,17105,0},{6905,17098,0},{6903,17095,0},{6898,17090,0}, {6893,17068,0},{6883,17073,0},{6880,17070,0},{6892,17067,0},{6887,17045,0}, {6883,17043,0},{6882,17057,0},{6880,17053,0},{6875,17062,0},{6880,17050,0}, {6882,17035,0},{6878,16978,0},{6878,16958,0},{6883,16945,0},{6898,16943,0}, {6908,16937,0},{6910,16925,0},{6910,16913,0},{6920,16873,0},{6922,16842,0}, {6923,16828,0},{6928,16823,0},{6938,16820,0},{6955,16825,0},{6965,16792,0}, {6972,16807,0},{6972,16792,0},{6978,16778,0},{6975,16765,0},{6957,16717,0}, {6948,16687,0},{6950,16668,0},{6952,16670,0},{6952,16665,0},{6952,16613,0}, {6957,16583,0},{6958,16563,0},{6958,16475,0},{6960,16453,0},{6963,16438,0}, {6972,16415,0},{6975,16410,0},{6977,16402,0},{6970,16375,0},{6968,16360,0}, {6972,16322,0},{6965,16283,0},{6965,16272,0},{6968,16260,0},{6967,16243,0}, {3862,12837,128},{3868,12837,0},{3875,12828,0},{3872,12820,0},{3875,12818,0}, {3882,12812,0},{3887,12800,0},{3892,12797,0},{3893,12792,0},{3897,12792,0}, {3897,12788,0},{3898,12785,0},{3912,12777,0},{3912,12765,0},{3915,12762,0}, {3913,12753,0},{3920,12748,0},{3917,12747,0},{3917,12745,0},{3922,12738,0}, {3925,12737,0},{3930,12740,0},{3933,12738,0},{3933,12742,0},{3935,12747,0}, {3937,12745,0},{3935,12742,0},{3937,12737,0},{3940,12742,0},{3938,12743,0}, {3942,12745,0},{3943,12748,0},{3942,12752,0},{3937,12753,0},{3932,12752,0}, {3930,12753,0},{3930,12757,0},{3950,12753,0},{3960,12758,0},{3963,12755,0}, {3965,12750,0},{3972,12750,0},{3978,12757,0},{3982,12762,0},{3980,12767,0}, {3982,12768,0},{3985,12772,0},{3985,12778,0},{3987,12780,0},{3988,12778,0}, {3988,12787,0},{3997,12790,0},{3997,12793,0},{4002,12800,0},{4003,12800,0}, {4003,12813,0},{4002,12815,0},{4003,12823,0},{4007,12825,0},{4005,12828,0}, {4002,12832,0},{4003,12833,0},{4008,12838,0},{4013,12852,0},{4017,12860,0}, {4018,12865,0},{4022,12868,0},{4027,12863,0},{4030,12865,0},{4037,12888,0}, {4045,12898,0},{4047,12910,0},{4055,12917,0},{4068,12922,0},{4070,12927,0}, {4067,12930,0},{4068,12932,0},{4073,12935,0},{4078,12948,0},{4078,12953,0}, {4082,12957,0},{4083,12972,0},{4093,12975,0},{4098,12972,0},{4118,12972,0}, {4125,12975,0},{4128,12975,0},{4137,12980,0},{4143,12970,0},{4148,12967,0}, {4155,12967,0},{4165,12970,0},{4167,12973,0},{4175,12978,0},{4177,12985,0}, {4180,12988,0},{4187,12988,0},{4190,12990,0},{4188,12997,0},{4195,12998,0}, {4197,13000,0},{4198,12998,0},{4200,13000,0},{4200,13003,0},{4205,13005,0}, {4205,13008,0},{4207,13010,0},{4207,13017,0},{4208,13017,0},{4210,13020,0}, {4217,13022,0},{4222,13030,0},{4218,13030,0},{4218,13033,0},{4223,13037,0}, {4225,13040,0},{4227,13038,0},{4232,13040,0},{4230,13043,0},{4232,13048,0}, {4230,13058,0},{4228,13060,0},{4225,13060,0},{4228,13070,0},{3783,12670,128}, {3777,12668,0},{3773,12670,0},{3768,12668,0},{3763,12675,0},{3767,12667,0}, {3773,12667,0},{3777,12665,0},{3775,12660,0},{3777,12653,0},{3765,12655,0}, {3762,12658,0},{3760,12662,0},{3758,12665,0},{3752,12665,0},{3748,12667,0}, {3748,12663,0},{3747,12663,0},{3740,12667,0},{3738,12675,0},{3735,12675,0}, {3733,12670,0},{3733,12675,0},{3730,12677,0},{3730,12680,0},{3730,12685,0}, {3727,12687,0},{3728,12682,0},{3727,12680,0},{3722,12678,0},{3725,12677,0}, {3727,12670,0},{3725,12667,0},{3722,12668,0},{3722,12672,0},{3718,12667,0}, {3715,12667,0},{3715,12670,0},{3713,12668,0},{3712,12670,0},{3718,12680,0}, {3717,12680,0},{3718,12687,0},{3715,12687,0},{3713,12687,0},{3712,12678,0}, {3708,12677,0},{3707,12678,0},{3705,12675,0},{3703,12680,0},{3705,12683,0}, {3703,12685,0},{3705,12687,0},{3710,12688,0},{3705,12688,0},{3703,12692,0}, {3702,12692,0},{3702,12687,0},{3700,12688,0},{3700,12682,0},{3692,12690,0}, {3693,12698,0},{3698,12698,0},{3698,12703,0},{3698,12705,0},{3697,12698,0}, {3692,12700,0},{3687,12687,0},{3685,12687,0},{3682,12690,0},{3683,12687,0}, {3682,12687,0},{3680,12687,0},{3675,12685,0},{3677,12683,0},{3680,12685,0}, {3683,12683,0},{3690,12683,0},{3692,12682,0},{3688,12678,0},{3693,12680,0}, {3697,12678,0},{3697,12675,0},{3693,12672,0},{3697,12672,0},{3698,12670,0}, {3697,12668,0},{3695,12665,0},{3692,12663,0},{3697,12662,0},{3702,12657,0}, {3705,12652,0},{3705,12650,0},{3703,12653,0},{3700,12653,0},{3698,12657,0}, {3697,12658,0},{3697,12653,0},{3700,12650,0},{3700,12648,0},{3695,12655,0}, {3690,12658,0},{3695,12652,0},{3690,12650,0},{3683,12648,0},{3690,12645,0}, {3693,12648,0},{3695,12645,0},{3695,12643,0},{3698,12645,0},{3700,12643,0}, {3700,12638,0},{3698,12640,0},{3700,12637,0},{3698,12633,0},{3697,12638,0}, {3697,12637,0},{3697,12635,0},{3695,12635,0},{3692,12642,0},{3690,12642,0}, {3687,12638,0},{3685,12640,0},{3683,12637,0},{3685,12633,0},{3683,12633,0}, {3678,12635,0},{3680,12632,0},{3678,12628,0},{3680,12628,0},{3683,12632,0}, {3685,12630,0},{3688,12632,0},{3697,12630,0},{3695,12628,0},{3687,12628,0}, {3687,12623,0},{3690,12623,0},{3688,12620,0},{3688,12618,0},{3685,12622,0}, {3682,12620,0},{3680,12623,0},{3680,12620,0},{3677,12620,0},{3678,12618,0}, {3680,12617,0},{3677,12612,0},{3670,12613,0},{3672,12615,0},{3675,12615,0}, {3675,12620,0},{3673,12618,0},{3673,12620,0},{3670,12622,0},{3670,12617,0}, {3667,12617,0},{3668,12623,0},{3672,12627,0},{3668,12628,0},{3668,12627,0}, {3663,12630,0},{3658,12630,0},{3662,12635,0},{3662,12633,0},{3665,12633,0}, {3670,12630,0},{3670,12633,0},{3673,12635,0},{3670,12638,0},{3663,12638,0}, {3665,12642,0},{3670,12643,0},{3672,12643,0},{3672,12645,0},{3675,12647,0}, {3672,12650,0},{3668,12648,0},{3667,12652,0},{3665,12650,0},{3663,12652,0}, {3660,12653,0},{3658,12647,0},{3657,12647,0},{3653,12647,0},{3653,12652,0}, {3650,12648,0},{3645,12648,0},{3643,12652,0},{3647,12657,0},{3647,12662,0}, {3642,12650,0},{3640,12652,0},{3640,12650,0},{3637,12652,0},{3637,12657,0}, {3635,12658,0},{3632,12652,0},{3630,12653,0},{3630,12658,0},{3622,12653,0}, {3620,12655,0},{3620,12658,0},{3617,12660,0},{3615,12652,0},{3612,12650,0}, {3613,12652,0},{3612,12660,0},{3610,12662,0},{3608,12665,0},{3607,12663,0}, {3600,12668,0},{3600,12673,0},{3603,12677,0},{3605,12687,0},{3603,12685,0}, {3602,12677,0},{3598,12675,0},{3597,12663,0},{3593,12662,0},{3588,12662,0}, {3590,12665,0},{3588,12673,0},{3590,12683,0},{3587,12680,0},{3587,12673,0}, {3585,12670,0},{3580,12678,0},{3577,12678,0},{3578,12675,0},{3577,12670,0}, {3572,12668,0},{3575,12667,0},{3575,12665,0},{3563,12647,0},{3562,12647,0}, {3558,12650,0},{3558,12667,0},{3553,12668,0},{3555,12665,0},{3553,12662,0}, {3553,12653,0},{3552,12650,0},{3540,12642,0},{3533,12645,0},{3537,12642,0}, {3533,12638,0},{3528,12638,0},{3525,12635,0},{3525,12638,0},{3525,12632,0}, {3523,12632,0},{3523,12637,0},{3522,12637,0},{3520,12638,0},{3518,12637,0}, {3512,12642,0},{3508,12647,0},{3502,12643,0},{3503,12640,0},{3507,12640,0}, {3507,12637,0},{3510,12633,0},{3513,12635,0},{3515,12635,0},{3512,12632,0}, {3513,12628,0},{3512,12625,0},{3508,12628,0},{3505,12627,0},{3505,12630,0}, {3505,12632,0},{3508,12630,0},{3503,12637,0},{3500,12638,0},{3498,12633,0}, {3497,12635,0},{3497,12630,0},{3495,12632,0},{3493,12632,0},{3492,12635,0}, {3493,12637,0},{3497,12637,0},{3498,12640,0},{3497,12643,0},{3495,12640,0}, {3490,12640,0},{3488,12642,0},{3487,12640,0},{3485,12642,0},{3480,12637,0}, {3478,12638,0},{3482,12648,0},{3478,12650,0},{3478,12652,0},{3485,12655,0}, {3488,12653,0},{3490,12658,0},{3488,12658,0},{3485,12657,0},{3482,12658,0}, {3482,12667,0},{3480,12663,0},{3478,12663,0},{3480,12655,0},{3477,12653,0}, {3475,12653,0},{3477,12648,0},{3475,12645,0},{3477,12640,0},{3473,12637,0}, {3472,12638,0},{3473,12642,0},{3472,12650,0},{3463,12658,0},{3462,12662,0}, {3463,12653,0},{3462,12653,0},{3462,12652,0},{3465,12645,0},{3468,12645,0}, {3470,12640,0},{3465,12638,0},{3465,12642,0},{3462,12643,0},{3460,12648,0}, {3458,12645,0},{3460,12638,0},{3462,12637,0},{3465,12635,0},{3470,12635,0}, {3475,12630,0},{3468,12627,0},{3463,12628,0},{3462,12632,0},{3460,12632,0}, {3460,12630,0},{3458,12628,0},{3457,12632,0},{3458,12635,0},{3455,12637,0}, {3455,12638,0},{3453,12640,0},{3455,12642,0},{3453,12645,0},{3455,12647,0}, {3457,12653,0},{3455,12653,0},{3453,12652,0},{3450,12653,0},{3450,12648,0}, {3448,12647,0},{3447,12648,0},{3443,12648,0},{3442,12652,0},{3438,12648,0}, {3435,12648,0},{3433,12652,0},{3428,12652,0},{3430,12657,0},{3430,12660,0}, {3440,12663,0},{3442,12668,0},{3443,12668,0},{3443,12673,0},{3445,12670,0}, {3448,12677,0},{3452,12673,0},{3452,12677,0},{3455,12675,0},{3458,12677,0}, {3457,12680,0},{3445,12682,0},{3442,12688,0},{3445,12690,0},{3445,12695,0}, {3450,12693,0},{3453,12698,0},{3462,12700,0},{3465,12710,0},{3468,12713,0}, {3468,12720,0},{3477,12725,0},{3472,12730,0},{3473,12733,0},{3470,12735,0}, {3465,12733,0},{3465,12730,0},{3470,12728,0},{3468,12727,0},{3467,12723,0}, {3462,12727,0},{3457,12725,0},{3457,12720,0},{3463,12720,0},{3458,12718,0}, {3457,12713,0},{3453,12712,0},{3452,12713,0},{3452,12717,0},{3453,12722,0}, {3453,12723,0},{3452,12725,0},{3448,12728,0},{3443,12732,0},{3443,12733,0}, {3447,12733,0},{3447,12738,0},{3453,12743,0},{3453,12737,0},{3458,12733,0}, {3460,12738,0},{3457,12748,0},{3458,12752,0},{3462,12750,0},{3463,12745,0}, {3463,12748,0},{3470,12738,0},{3475,12740,0},{3475,12737,0},{3477,12735,0}, {3477,12740,0},{3480,12742,0},{3482,12737,0},{3483,12748,0},{3487,12750,0}, {3488,12752,0},{3482,12753,0},{3480,12753,0},{3480,12755,0},{3475,12758,0}, {3470,12755,0},{3465,12755,0},{3462,12763,0},{3470,12763,0},{3473,12765,0}, {3472,12770,0},{3472,12775,0},{3482,12777,0},{3485,12777,0},{3483,12775,0}, {3483,12772,0},{3482,12767,0},{3482,12763,0},{3488,12758,0},{3492,12757,0}, {3493,12760,0},{3490,12765,0},{3493,12772,0},{3498,12772,0},{3495,12773,0}, {3493,12787,0},{3497,12792,0},{3502,12793,0},{3498,12795,0},{3498,12798,0}, {3498,12802,0},{3503,12800,0},{3503,12803,0},{3508,12807,0},{3503,12805,0}, {3497,12807,0},{3495,12805,0},{3492,12807,0},{3492,12812,0},{3488,12813,0}, {3490,12815,0},{3488,12820,0},{3492,12820,0},{3493,12823,0},{3493,12827,0}, {3490,12828,0},{3495,12833,0},{3490,12835,0},{3490,12832,0},{3488,12832,0}, {3487,12842,0},{3485,12840,0},{3483,12842,0},{3483,12845,0},{3488,12847,0}, {3490,12845,0},{3488,12845,0},{3488,12843,0},{3497,12845,0},{3498,12842,0}, {3500,12848,0},{3500,12850,0},{3505,12848,0},{3500,12838,0},{3503,12838,0}, {3507,12848,0},{3510,12847,0},{3510,12850,0},{3510,12858,0},{3505,12860,0}, {3505,12865,0},{3517,12857,0},{3522,12860,0},{3520,12862,0},{3513,12862,0}, {3515,12863,0},{3513,12865,0},{3512,12867,0},{3513,12868,0},{3513,12870,0}, {3510,12870,0},{3510,12880,0},{3508,12880,0},{3510,12888,0},{3512,12890,0}, {3510,12892,0},{3510,12893,0},{3513,12898,0},{3503,12897,0},{3503,12900,0}, {3507,12900,0},{3505,12903,0},{3507,12903,0},{3512,12907,0},{3510,12912,0}, {3512,12913,0},{3513,12912,0},{3515,12915,0},{3515,12918,0},{3518,12923,0}, {3530,12928,0},{3535,12937,0},{3538,12935,0},{3542,12937,0},{3545,12935,0}, {3547,12938,0},{3553,12937,0},{3552,12940,0},{3547,12942,0},{3548,12943,0}, {3558,12948,0},{3563,12947,0},{3585,12955,0},{3592,12953,0},{3602,12958,0}, {3608,12955,0},{3600,12945,0},{3600,12942,0},{3603,12938,0},{3608,12943,0}, {3620,12938,0},{3632,12938,0},{3640,12943,0},{3650,12945,0},{3662,12942,0}, {3667,12943,0},{3668,12947,0},{3672,12947,0},{3677,12948,0},{3687,12943,0}, {3695,12942,0},{3702,12942,0},{3707,12943,0},{3715,12935,0},{3725,12935,0}, {3732,12928,0},{3747,12918,0},{3752,12913,0},{3757,12913,0},{3762,12907,0}, {3767,12907,0},{3787,12885,0},{3802,12873,0},{3813,12863,0},{3830,12855,0}, {3862,12837,0},{4010,12437,128},{4005,12438,0},{4002,12450,0},{4002,12447,0}, {4002,12443,0},{4002,12438,0},{3993,12437,0},{3992,12432,0},{3987,12437,0}, {3987,12440,0},{3982,12442,0},{3982,12457,0},{3978,12457,0},{3977,12458,0}, {3972,12458,0},{3968,12465,0},{3962,12462,0},{3960,12462,0},{3963,12470,0}, {3963,12475,0},{3968,12475,0},{3970,12473,0},{3973,12475,0},{3977,12473,0}, {3978,12475,0},{3972,12480,0},{3972,12485,0},{3970,12488,0},{3965,12492,0}, {3965,12493,0},{3967,12495,0},{3963,12497,0},{3963,12500,0},{3960,12505,0}, {3960,12510,0},{3955,12512,0},{3957,12517,0},{3958,12517,0},{3958,12522,0}, {3957,12522,0},{3957,12523,0},{3952,12528,0},{3958,12545,0},{3955,12545,0}, {3953,12540,0},{3948,12538,0},{3945,12533,0},{3943,12535,0},{3943,12538,0}, {3940,12535,0},{3940,12537,0},{3938,12545,0},{3937,12543,0},{3937,12540,0}, {3935,12542,0},{3932,12542,0},{3930,12545,0},{3923,12538,0},{3922,12542,0}, {3922,12537,0},{3918,12533,0},{3917,12533,0},{3915,12528,0},{3912,12528,0}, {3908,12533,0},{3907,12527,0},{3900,12522,0},{3898,12523,0},{3893,12518,0}, {3892,12520,0},{3888,12515,0},{3880,12513,0},{3878,12515,0},{3878,12520,0}, {3873,12522,0},{3880,12523,0},{3878,12523,0},{3875,12527,0},{3872,12523,0}, {3870,12528,0},{3870,12530,0},{3873,12530,0},{3870,12533,0},{3873,12537,0}, {3870,12537,0},{3872,12542,0},{3873,12543,0},{3875,12542,0},{3878,12545,0}, {3872,12548,0},{3870,12553,0},{3865,12560,0},{3865,12563,0},{3863,12565,0}, {3863,12560,0},{3868,12555,0},{3865,12552,0},{3868,12552,0},{3870,12545,0}, {3868,12543,0},{3867,12533,0},{3865,12532,0},{3867,12527,0},{3865,12522,0}, {3867,12520,0},{3862,12518,0},{3867,12512,0},{3865,12512,0},{3862,12513,0}, {3858,12513,0},{3857,12510,0},{3855,12508,0},{3855,12505,0},{3858,12507,0}, {3858,12500,0},{3853,12498,0},{3850,12502,0},{3843,12498,0},{3847,12495,0}, {3833,12487,0},{3825,12487,0},{3822,12492,0},{3823,12497,0},{3822,12498,0}, {3818,12493,0},{3822,12490,0},{3823,12487,0},{3822,12485,0},{3818,12482,0}, {3818,12478,0},{3813,12473,0},{3813,12467,0},{3812,12467,0},{3810,12478,0}, {3810,12487,0},{3813,12488,0},{3812,12492,0},{3808,12495,0},{3807,12502,0}, {3808,12513,0},{3807,12527,0},{3802,12525,0},{3802,12522,0},{3805,12520,0}, {3803,12510,0},{3798,12510,0},{3798,12515,0},{3798,12518,0},{3797,12517,0}, {3797,12510,0},{3797,12507,0},{3795,12500,0},{3792,12498,0},{3793,12502,0}, {3790,12502,0},{3787,12517,0},{3788,12522,0},{3793,12523,0},{3793,12525,0}, {3790,12525,0},{3790,12528,0},{3788,12532,0},{3782,12523,0},{3782,12530,0}, {3780,12532,0},{3785,12538,0},{3785,12535,0},{3787,12537,0},{3785,12545,0}, {3787,12543,0},{3788,12538,0},{3788,12543,0},{3792,12545,0},{3790,12547,0}, {3788,12552,0},{3785,12548,0},{3783,12548,0},{3783,12553,0},{3782,12552,0}, {3780,12550,0},{3782,12548,0},{3782,12543,0},{3780,12538,0},{3778,12538,0}, {3777,12538,0},{3777,12545,0},{3775,12540,0},{3775,12537,0},{3772,12533,0}, {3767,12535,0},{3772,12538,0},{3772,12547,0},{3780,12552,0},{3777,12553,0}, {3778,12555,0},{3778,12558,0},{3777,12558,0},{3775,12562,0},{3778,12562,0}, {3780,12562,0},{3782,12565,0},{3783,12563,0},{3785,12563,0},{3792,12563,0}, {3788,12567,0},{3792,12573,0},{3792,12570,0},{3795,12572,0},{3795,12568,0}, {3798,12568,0},{3797,12565,0},{3798,12562,0},{3798,12560,0},{3802,12557,0}, {3803,12558,0},{3802,12567,0},{3800,12570,0},{3798,12580,0},{3795,12580,0}, {3793,12583,0},{3783,12592,0},{3782,12598,0},{3783,12598,0},{3787,12597,0}, {3788,12595,0},{3790,12597,0},{3790,12598,0},{3785,12602,0},{3787,12605,0}, {3780,12605,0},{3778,12610,0},{3775,12610,0},{3773,12613,0},{3773,12615,0}, {3777,12617,0},{3782,12615,0},{3785,12622,0},{3783,12625,0},{3788,12638,0}, {3788,12640,0},{3785,12643,0},{3777,12658,0},{3778,12665,0},{3782,12667,0}, {3783,12670,0},{3998,11987,128},{4003,11995,0},{4013,12023,0},{4018,12032,0}, {4020,12045,0},{4025,12050,0},{4030,12050,0},{4035,12060,0},{4037,12058,0}, {4037,12053,0},{4040,12055,0},{4042,12060,0},{4045,12060,0},{4047,12062,0}, {4047,12067,0},{4052,12068,0},{4060,12080,0},{4067,12083,0},{4068,12093,0}, {4070,12098,0},{4072,12103,0},{4073,12100,0},{4073,12093,0},{4077,12093,0}, {4078,12097,0},{4082,12097,0},{4083,12100,0},{4082,12108,0},{4087,12108,0}, {4087,12112,0},{4093,12118,0},{4090,12125,0},{4092,12127,0},{4090,12128,0}, {4093,12135,0},{4093,12138,0},{4092,12143,0},{4088,12145,0},{4090,12148,0}, {4088,12152,0},{4083,12155,0},{4083,12160,0},{4085,12175,0},{4088,12178,0}, {4095,12180,0},{4098,12187,0},{4093,12183,0},{4082,12187,0},{4078,12192,0}, {4075,12205,0},{4068,12212,0},{4070,12215,0},{4060,12215,0},{4057,12225,0}, {4050,12230,0},{4043,12225,0},{4042,12220,0},{4038,12222,0},{4035,12218,0}, {4030,12212,0},{4023,12210,0},{4018,12202,0},{4018,12198,0},{4013,12200,0}, {4010,12193,0},{4003,12188,0},{4002,12183,0},{4002,12188,0},{4000,12188,0}, {3995,12180,0},{3992,12177,0},{3993,12170,0},{3992,12167,0},{3987,12160,0}, {3987,12155,0},{3982,12147,0},{3978,12148,0},{3973,12145,0},{3968,12150,0}, {3968,12155,0},{3965,12153,0},{3962,12153,0},{3965,12147,0},{3963,12147,0}, {3960,12142,0},{3960,12132,0},{3953,12123,0},{3952,12122,0},{3952,12128,0}, {3950,12130,0},{3952,12135,0},{3952,12143,0},{3938,12148,0},{3937,12153,0}, {3937,12172,0},{3938,12170,0},{3940,12172,0},{3938,12185,0},{3940,12192,0}, {3942,12192,0},{3940,12193,0},{3937,12187,0},{3937,12178,0},{3933,12173,0}, {3930,12173,0},{3927,12168,0},{3925,12160,0},{3923,12163,0},{3922,12160,0}, {3918,12158,0},{3917,12162,0},{3918,12163,0},{3912,12168,0},{3908,12167,0}, {3902,12145,0},{3902,12142,0},{3905,12137,0},{3900,12132,0},{3898,12135,0}, {3897,12133,0},{3897,12128,0},{3893,12123,0},{3895,12118,0},{3895,12113,0}, {3892,12110,0},{3890,12108,0},{3890,12115,0},{3885,12112,0},{3883,12112,0}, {3878,12113,0},{3877,12112,0},{3873,12113,0},{3872,12118,0},{3877,12123,0}, {3878,12122,0},{3880,12123,0},{3878,12130,0},{3880,12132,0},{3882,12135,0}, {3880,12148,0},{3887,12158,0},{3887,12170,0},{3890,12172,0},{3892,12167,0}, {3893,12158,0},{3895,12165,0},{3898,12167,0},{3900,12163,0},{3902,12167,0}, {3900,12173,0},{3902,12172,0},{3903,12173,0},{3902,12177,0},{3897,12180,0}, {3895,12183,0},{3895,12187,0},{3898,12190,0},{3903,12183,0},{3903,12187,0}, {3900,12192,0},{3905,12188,0},{3903,12197,0},{3907,12200,0},{3907,12205,0}, {3910,12205,0},{3915,12217,0},{3917,12210,0},{3920,12212,0},{3927,12223,0}, {3932,12225,0},{3932,12227,0},{3935,12230,0},{3942,12240,0},{3942,12247,0}, {3945,12255,0},{3948,12255,0},{3947,12258,0},{3948,12262,0},{3953,12265,0}, {3952,12268,0},{3955,12272,0},{3955,12277,0},{3962,12285,0},{3962,12293,0}, {3962,12295,0},{3962,12297,0},{3963,12300,0},{3967,12297,0},{3968,12302,0}, {3967,12305,0},{3968,12308,0},{3970,12310,0},{3968,12312,0},{3965,12315,0}, {3967,12322,0},{3968,12322,0},{3970,12327,0},{3972,12325,0},{3972,12322,0}, {3973,12320,0},{3975,12322,0},{3975,12327,0},{3982,12323,0},{3980,12325,0}, {3980,12328,0},{3978,12332,0},{3978,12338,0},{3982,12340,0},{3982,12342,0}, {3973,12340,0},{3973,12342,0},{3973,12347,0},{3978,12348,0},{3978,12355,0}, {3977,12357,0},{3978,12360,0},{3982,12360,0},{3992,12365,0},{3987,12365,0}, {3983,12370,0},{3982,12390,0},{3983,12393,0},{3983,12395,0},{3982,12398,0}, {3985,12408,0},{3983,12413,0},{3992,12425,0},{3993,12428,0},{3997,12430,0}, {3998,12435,0},{4002,12437,0},{4007,12435,0},{4010,12437,0},{3828,11778,128}, {3835,11772,0},{3843,11765,0},{3860,11755,0},{3868,11753,0},{3880,11758,0}, {3895,11770,0},{3898,11770,0},{3898,11775,0},{3902,11773,0},{3907,11773,0}, {3910,11772,0},{3912,11775,0},{3915,11780,0},{3920,11788,0},{3922,11805,0}, {3918,11817,0},{3912,11823,0},{3907,11825,0},{3907,11830,0},{3903,11832,0}, {3912,11850,0},{3917,11853,0},{3918,11860,0},{3918,11867,0},{3918,11868,0}, {3915,11870,0},{3915,11875,0},{3918,11883,0},{3922,11887,0},{3918,11887,0}, {3918,11888,0},{3917,11888,0},{3918,11897,0},{3912,11888,0},{3913,11892,0}, {3923,11907,0},{3927,11905,0},{3930,11912,0},{3933,11913,0},{3940,11925,0}, {3942,11927,0},{3945,11923,0},{3957,11927,0},{3953,11923,0},{3957,11925,0}, {3955,11922,0},{3957,11920,0},{3960,11925,0},{3958,11928,0},{3972,11935,0}, {3978,11945,0},{3980,11952,0},{3987,11952,0},{3990,11958,0},{3995,11977,0}, {3997,11980,0},{3998,11987,0},{3507,11928,128},{3512,11937,0},{3522,11938,0}, {3532,11943,0},{3533,11952,0},{3558,11965,0},{3562,11973,0},{3562,11975,0}, {3557,11975,0},{3558,11977,0},{3565,11983,0},{3562,11983,0},{3560,11985,0}, {3562,11990,0},{3568,11990,0},{3570,11993,0},{3573,11990,0},{3575,11992,0}, {3575,11995,0},{3572,11998,0},{3575,12002,0},{3582,12002,0},{3587,12005,0}, {3590,12010,0},{3590,12013,0},{3593,12018,0},{3588,12017,0},{3593,12022,0}, {3597,12030,0},{3598,12030,0},{3602,12028,0},{3597,12023,0},{3600,12023,0}, {3598,12018,0},{3607,12017,0},{3612,12008,0},{3613,12008,0},{3618,12012,0}, {3620,12008,0},{3622,12008,0},{3622,12012,0},{3620,12013,0},{3622,12022,0}, {3620,12022,0},{3617,12027,0},{3618,12030,0},{3620,12028,0},{3622,12028,0}, {3627,12028,0},{3627,12030,0},{3622,12032,0},{3622,12035,0},{3617,12035,0}, {3610,12030,0},{3608,12032,0},{3607,12028,0},{3603,12035,0},{3605,12043,0}, {3608,12047,0},{3608,12053,0},{3612,12057,0},{3610,12058,0},{3612,12063,0}, {3613,12068,0},{3622,12068,0},{3632,12063,0},{3633,12067,0},{3632,12070,0}, {3632,12072,0},{3637,12068,0},{3642,12070,0},{3647,12077,0},{3647,12078,0}, {3645,12083,0},{3642,12085,0},{3638,12085,0},{3637,12087,0},{3642,12090,0}, {3645,12090,0},{3645,12095,0},{3650,12093,0},{3653,12097,0},{3653,12092,0}, {3655,12092,0},{3657,12088,0},{3660,12085,0},{3658,12082,0},{3653,12078,0}, {3653,12075,0},{3657,12073,0},{3658,12075,0},{3662,12075,0},{3665,12083,0}, {3662,12093,0},{3660,12093,0},{3658,12095,0},{3658,12103,0},{3663,12103,0}, {3660,12105,0},{3662,12108,0},{3668,12120,0},{3672,12133,0},{3670,12140,0}, {3672,12137,0},{3675,12138,0},{3675,12145,0},{3678,12147,0},{3683,12145,0}, {3682,12148,0},{3680,12150,0},{3683,12155,0},{3683,12162,0},{3683,12160,0}, {3678,12155,0},{3678,12150,0},{3677,12148,0},{3675,12153,0},{3677,12155,0}, {3675,12157,0},{3677,12158,0},{3673,12162,0},{3682,12162,0},{3683,12167,0}, {3683,12168,0},{3682,12165,0},{3683,12172,0},{3688,12178,0},{3693,12193,0}, {3693,12195,0},{3697,12192,0},{3698,12192,0},{3700,12195,0},{3697,12200,0}, {3698,12205,0},{3695,12203,0},{3690,12203,0},{3692,12208,0},{3695,12210,0}, {3693,12213,0},{3700,12215,0},{3700,12218,0},{3693,12217,0},{3690,12227,0}, {3688,12218,0},{3683,12220,0},{3682,12232,0},{3683,12237,0},{3685,12238,0}, {3685,12242,0},{3688,12243,0},{3690,12240,0},{3692,12240,0},{3693,12252,0}, {3692,12252,0},{3690,12250,0},{3692,12253,0},{3702,12253,0},{3702,12243,0}, {3700,12242,0},{3703,12240,0},{3707,12245,0},{3710,12243,0},{3715,12245,0}, {3715,12247,0},{3710,12247,0},{3715,12248,0},{3715,12258,0},{3718,12257,0}, {3718,12262,0},{3727,12255,0},{3732,12255,0},{3730,12258,0},{3732,12258,0}, {3735,12257,0},{3737,12263,0},{3737,12268,0},{3740,12270,0},{3742,12268,0}, {3742,12262,0},{3740,12257,0},{3740,12253,0},{3742,12247,0},{3742,12242,0}, {3742,12232,0},{3742,12228,0},{3745,12227,0},{3745,12223,0},{3742,12218,0}, {3742,12217,0},{3748,12212,0},{3752,12215,0},{3755,12213,0},{3755,12212,0}, {3755,12208,0},{3757,12207,0},{3753,12207,0},{3753,12202,0},{3747,12198,0}, {3742,12200,0},{3742,12195,0},{3745,12195,0},{3747,12193,0},{3747,12168,0}, {3748,12163,0},{3745,12158,0},{3747,12163,0},{3745,12165,0},{3743,12167,0}, {3742,12157,0},{3745,12153,0},{3747,12148,0},{3752,12145,0},{3755,12138,0}, {3758,12138,0},{3758,12143,0},{3763,12137,0},{3763,12135,0},{3760,12137,0}, {3758,12135,0},{3757,12122,0},{3758,12115,0},{3763,12113,0},{3765,12113,0}, {3770,12115,0},{3772,12102,0},{3773,12100,0},{3778,12093,0},{3782,12093,0}, {3783,12087,0},{3782,12083,0},{3783,12073,0},{3778,12065,0},{3778,12062,0}, {3775,12055,0},{3773,12043,0},{3768,12037,0},{3768,12022,0},{3765,12032,0}, {3760,12030,0},{3750,12018,0},{3743,12007,0},{3737,11985,0},{3733,11985,0}, {3727,11990,0},{3725,11988,0},{3715,11975,0},{3712,11940,0},{3715,11923,0}, {3722,11905,0},{3727,11902,0},{3727,11897,0},{3735,11893,0},{3760,11897,0}, {3767,11903,0},{3767,11907,0},{3772,11910,0},{3778,11903,0},{3782,11902,0}, {3788,11903,0},{3803,11895,0},{3805,11892,0},{3805,11887,0},{3808,11883,0}, {3815,11885,0},{3813,11862,0},{3810,11858,0},{3807,11855,0},{3812,11843,0}, {3813,11835,0},{3812,11832,0},{3815,11818,0},{3815,11812,0},{3813,11808,0}, {3815,11807,0},{3815,11803,0},{3818,11802,0},{3818,11797,0},{3825,11790,0}, {3825,11783,0},{3828,11778,0},{2722,12043,128},{2722,12047,0},{2718,12047,0}, {2717,12047,0},{2720,12052,0},{2722,12050,0},{2723,12053,0},{2727,12052,0}, {2728,12053,0},{2732,12055,0},{2733,12050,0},{2735,12053,0},{2738,12055,0}, {2740,12055,0},{2737,12063,0},{2743,12063,0},{2745,12067,0},{2748,12068,0}, {2750,12065,0},{2750,12060,0},{2758,12057,0},{2760,12063,0},{2765,12067,0}, {2767,12065,0},{2772,12067,0},{2775,12063,0},{2772,12072,0},{2775,12073,0}, {2785,12080,0},{2787,12083,0},{2793,12085,0},{2795,12083,0},{2797,12073,0}, {2802,12070,0},{2803,12058,0},{2807,12058,0},{2812,12057,0},{2810,12058,0}, {2803,12060,0},{2803,12070,0},{2798,12080,0},{2798,12093,0},{2800,12095,0}, {2805,12098,0},{2812,12098,0},{2815,12102,0},{2817,12108,0},{2823,12112,0}, {2827,12110,0},{2827,12105,0},{2830,12102,0},{2828,12108,0},{2830,12110,0}, {2833,12113,0},{2835,12117,0},{2838,12117,0},{2835,12122,0},{2837,12127,0}, {2835,12122,0},{2832,12120,0},{2828,12125,0},{2820,12125,0},{2813,12135,0}, {2818,12138,0},{2818,12135,0},{2822,12137,0},{2825,12142,0},{2827,12142,0}, {2827,12140,0},{2830,12140,0},{2830,12143,0},{2833,12145,0},{2833,12152,0}, {2830,12157,0},{2828,12158,0},{2825,12157,0},{2828,12163,0},{2833,12165,0}, {2835,12158,0},{2840,12160,0},{2843,12157,0},{2848,12157,0},{2848,12152,0}, {2850,12157,0},{2855,12152,0},{2867,12148,0},{2870,12133,0},{2867,12125,0}, {2870,12130,0},{2873,12128,0},{2875,12123,0},{2880,12122,0},{2880,12117,0}, {2883,12113,0},{2883,12115,0},{2882,12117,0},{2880,12122,0},{2877,12123,0}, {2875,12130,0},{2872,12132,0},{2870,12150,0},{2872,12162,0},{2877,12162,0}, {2880,12167,0},{2880,12163,0},{2882,12167,0},{2883,12165,0},{2883,12162,0}, {2888,12163,0},{2890,12160,0},{2890,12153,0},{2893,12148,0},{2895,12150,0}, {2895,12153,0},{2892,12158,0},{2895,12158,0},{2892,12163,0},{2892,12168,0}, {2895,12172,0},{2897,12165,0},{2900,12165,0},{2902,12168,0},{2903,12165,0}, {2905,12165,0},{2905,12155,0},{2902,12155,0},{2902,12153,0},{2905,12153,0}, {2907,12155,0},{2905,12162,0},{2910,12163,0},{2910,12147,0},{2910,12140,0}, {2913,12147,0},{2913,12143,0},{2915,12143,0},{2915,12142,0},{2917,12142,0}, {2917,12145,0},{2920,12147,0},{2917,12148,0},{2918,12150,0},{2920,12150,0}, {2925,12153,0},{2927,12152,0},{2927,12157,0},{2930,12157,0},{2928,12158,0}, {2918,12162,0},{2920,12163,0},{2930,12162,0},{2930,12163,0},{2930,12165,0}, {2927,12165,0},{2920,12165,0},{2918,12167,0},{2920,12172,0},{2920,12175,0}, {2927,12177,0},{2935,12177,0},{2937,12177,0},{2937,12180,0},{2932,12178,0}, {2932,12183,0},{2930,12180,0},{2928,12183,0},{2927,12182,0},{2925,12183,0}, {2920,12180,0},{2918,12182,0},{2917,12185,0},{2918,12190,0},{2920,12195,0}, {2922,12193,0},{2922,12197,0},{2925,12195,0},{2925,12198,0},{2928,12198,0}, {2927,12195,0},{2927,12192,0},{2930,12190,0},{2930,12192,0},{2932,12190,0}, {2932,12193,0},{2933,12193,0},{2933,12192,0},{2937,12192,0},{2938,12188,0}, {2942,12190,0},{2940,12195,0},{2942,12195,0},{2943,12197,0},{2948,12193,0}, {2950,12195,0},{2952,12190,0},{2953,12195,0},{2955,12193,0},{2955,12197,0}, {2958,12198,0},{2960,12193,0},{2962,12193,0},{2963,12190,0},{2960,12185,0}, {2960,12180,0},{2958,12177,0},{2957,12173,0},{2955,12173,0},{2955,12182,0}, {2953,12185,0},{2952,12182,0},{2948,12180,0},{2947,12175,0},{2948,12175,0}, {2952,12177,0},{2952,12172,0},{2953,12172,0},{2952,12168,0},{2952,12170,0}, {2950,12168,0},{2948,12157,0},{2942,12153,0},{2940,12148,0},{2940,12147,0}, {2945,12152,0},{2945,12148,0},{2948,12150,0},{2947,12147,0},{2942,12145,0}, {2942,12143,0},{2945,12143,0},{2950,12145,0},{2952,12145,0},{2952,12147,0}, {2955,12150,0},{2950,12152,0},{2955,12155,0},{2957,12170,0},{2958,12170,0}, {2958,12172,0},{2970,12183,0},{2977,12188,0},{2985,12207,0},{2988,12213,0}, {2990,12212,0},{2988,12203,0},{2988,12192,0},{2992,12188,0},{2993,12182,0}, {2997,12178,0},{2997,12168,0},{3002,12162,0},{3003,12162,0},{3007,12157,0}, {3010,12157,0},{3012,12153,0},{3018,12148,0},{3025,12140,0},{3030,12128,0}, {3030,12115,0},{3013,12083,0},{3012,12070,0},{3013,12067,0},{3015,12063,0}, {3010,12067,0},{3010,12077,0},{3007,12080,0},{3008,12077,0},{3008,12068,0}, {3012,12062,0},{3017,12057,0},{3023,12057,0},{3032,12052,0},{3032,12047,0}, {3028,12042,0},{3022,12037,0},{3022,12030,0},{3027,12025,0},{3022,12020,0}, {3020,12015,0},{3028,12023,0},{3030,12027,0},{3028,12032,0},{3030,12035,0}, {3037,12038,0},{3040,12045,0},{3038,12068,0},{3033,12075,0},{3033,12080,0}, {3037,12092,0},{3040,12090,0},{3042,12093,0},{3048,12093,0},{3055,12097,0}, {3057,12100,0},{3060,12113,0},{3063,12115,0},{3067,12122,0},{3070,12135,0}, {3077,12138,0},{3082,12147,0},{3085,12157,0},{3087,12170,0},{3085,12180,0}, {3085,12187,0},{3092,12190,0},{3097,12188,0},{3122,12175,0},{3132,12167,0}, {3135,12160,0},{3137,12152,0},{3138,12150,0},{3145,12142,0},{3150,12132,0}, {3162,12123,0},{3172,12108,0},{3172,12103,0},{3175,12097,0},{3175,12087,0}, {3182,12072,0},{3185,12072,0},{3183,12073,0},{3182,12077,0},{3182,12078,0}, {3187,12078,0},{3198,12072,0},{3200,12068,0},{3198,12060,0},{3202,12050,0}, {3202,12043,0},{3198,12045,0},{3195,12042,0},{3195,12032,0},{3190,12023,0}, {3190,12018,0},{3192,12010,0},{3198,11990,0},{3202,11987,0},{3207,11987,0}, {3212,11977,0},{3217,11977,0},{3220,11978,0},{3222,11973,0},{3223,11970,0}, {3220,11965,0},{3218,11962,0},{3222,11965,0},{3230,11968,0},{3235,11962,0}, {3235,11965,0},{3232,11970,0},{3233,11977,0},{3228,11985,0},{3220,11988,0}, {3220,11992,0},{3215,11990,0},{3212,11992,0},{3200,12000,0},{3195,12010,0}, {3193,12022,0},{3195,12028,0},{3208,12043,0},{3210,12050,0},{3208,12057,0}, {3210,12062,0},{3202,12082,0},{3190,12092,0},{3188,12095,0},{3185,12095,0}, {3183,12098,0},{3187,12108,0},{3183,12117,0},{3187,12128,0},{3183,12145,0}, {3182,12148,0},{3178,12152,0},{3175,12158,0},{3172,12165,0},{3168,12183,0}, {3168,12188,0},{3173,12190,0},{3180,12187,0},{3192,12183,0},{3202,12173,0}, {3212,12153,0},{3210,12148,0},{3212,12143,0},{3217,12143,0},{3217,12138,0}, {3220,12138,0},{3223,12137,0},{3225,12142,0},{3228,12140,0},{3235,12142,0}, {3238,12140,0},{3245,12128,0},{3247,12120,0},{3248,12118,0},{3250,12113,0}, {3250,12110,0},{3253,12108,0},{3257,12097,0},{3263,12083,0},{3272,12083,0}, {3270,12087,0},{3278,12085,0},{3280,12090,0},{3282,12090,0},{3297,12088,0}, {3302,12090,0},{3303,12087,0},{3302,12083,0},{3302,12082,0},{3310,12082,0}, {3310,12080,0},{3312,12080,0},{3317,12078,0},{3320,12073,0},{3322,12075,0}, {3325,12073,0},{3327,12075,0},{3328,12070,0},{3332,12067,0},{3347,12063,0}, {3350,12060,0},{3358,12053,0},{3363,12048,0},{3365,12048,0},{3365,12050,0}, {3373,12050,0},{3377,12045,0},{3380,12045,0},{3385,12043,0},{3387,12040,0}, {3390,12042,0},{3403,12037,0},{3408,12035,0},{3415,12033,0},{3423,12027,0}, {3432,12025,0},{3437,12008,0},{3445,11993,0},{3447,11980,0},{3452,11973,0}, {3453,11965,0},{3455,11963,0},{3460,11953,0},{3467,11947,0},{3470,11948,0}, {3475,11943,0},{3475,11938,0},{3477,11935,0},{3475,11932,0},{3477,11923,0}, {3475,11922,0},{3472,11920,0},{3475,11918,0},{3478,11920,0},{3485,11917,0}, {3490,11920,0},{3502,11920,0},{3507,11922,0},{3507,11930,0},{2362,11718,128}, {2363,11720,0},{2365,11720,0},{2368,11723,0},{2365,11723,0},{2362,11722,0}, {2363,11727,0},{2367,11725,0},{2372,11727,0},{2375,11728,0},{2378,11728,0}, {2378,11730,0},{2375,11730,0},{2375,11733,0},{2380,11737,0},{2377,11743,0}, {2387,11748,0},{2390,11747,0},{2392,11742,0},{2393,11740,0},{2395,11742,0}, {2392,11747,0},{2390,11757,0},{2388,11758,0},{2382,11760,0},{2372,11757,0}, {2378,11763,0},{2385,11762,0},{2392,11763,0},{2395,11770,0},{2398,11768,0}, {2403,11770,0},{2403,11767,0},{2405,11767,0},{2403,11773,0},{2403,11775,0}, {2407,11775,0},{2405,11777,0},{2403,11777,0},{2402,11775,0},{2402,11778,0}, {2402,11780,0},{2395,11773,0},{2390,11773,0},{2392,11777,0},{2395,11777,0}, {2402,11783,0},{2403,11790,0},{2410,11790,0},{2415,11793,0},{2418,11792,0}, {2420,11793,0},{2420,11797,0},{2415,11797,0},{2425,11805,0},{2425,11812,0}, {2435,11808,0},{2435,11805,0},{2432,11802,0},{2435,11802,0},{2435,11805,0}, {2440,11805,0},{2438,11790,0},{2440,11787,0},{2447,11778,0},{2445,11790,0}, {2447,11788,0},{2447,11783,0},{2448,11785,0},{2443,11802,0},{2445,11803,0}, {2445,11802,0},{2447,11800,0},{2448,11800,0},{2450,11805,0},{2452,11805,0}, {2455,11797,0},{2458,11800,0},{2457,11800,0},{2455,11802,0},{2457,11805,0}, {2462,11805,0},{2460,11808,0},{2458,11810,0},{2458,11812,0},{2468,11817,0}, {2465,11820,0},{2462,11818,0},{2460,11822,0},{2460,11818,0},{2457,11818,0}, {2453,11822,0},{2453,11823,0},{2457,11825,0},{2457,11828,0},{2460,11828,0}, {2458,11835,0},{2460,11838,0},{2460,11842,0},{2462,11842,0},{2467,11840,0}, {2470,11842,0},{2468,11843,0},{2463,11843,0},{2457,11858,0},{2455,11855,0}, {2452,11855,0},{2455,11862,0},{2457,11865,0},{2462,11867,0},{2463,11863,0}, {2468,11863,0},{2468,11865,0},{2468,11867,0},{2467,11868,0},{2468,11872,0}, {2477,11877,0},{2477,11872,0},{2480,11870,0},{2477,11863,0},{2485,11862,0}, {2488,11857,0},{2485,11865,0},{2488,11867,0},{2492,11863,0},{2495,11867,0}, {2493,11868,0},{2490,11868,0},{2493,11870,0},{2490,11873,0},{2487,11870,0}, {2485,11870,0},{2485,11877,0},{2488,11880,0},{2487,11882,0},{2488,11887,0}, {2487,11890,0},{2488,11898,0},{2490,11897,0},{2488,11893,0},{2493,11890,0}, {2495,11892,0},{2495,11897,0},{2493,11898,0},{2495,11902,0},{2495,11900,0}, {2498,11898,0},{2502,11900,0},{2505,11900,0},{2502,11898,0},{2500,11895,0}, {2503,11888,0},{2508,11885,0},{2510,11887,0},{2510,11893,0},{2513,11895,0}, {2517,11897,0},{2518,11895,0},{2518,11890,0},{2522,11892,0},{2522,11887,0}, {2525,11888,0},{2528,11898,0},{2527,11907,0},{2525,11905,0},{2525,11898,0}, {2522,11898,0},{2523,11905,0},{2522,11907,0},{2517,11905,0},{2517,11903,0}, {2513,11903,0},{2512,11903,0},{2513,11905,0},{2517,11907,0},{2515,11907,0}, {2513,11907,0},{2512,11907,0},{2510,11908,0},{2512,11910,0},{2513,11908,0}, {2512,11915,0},{2513,11915,0},{2515,11915,0},{2515,11913,0},{2517,11912,0}, {2517,11908,0},{2525,11913,0},{2523,11915,0},{2520,11913,0},{2518,11915,0}, {2517,11925,0},{2520,11928,0},{2523,11927,0},{2525,11935,0},{2527,11935,0}, {2528,11930,0},{2532,11928,0},{2532,11927,0},{2532,11925,0},{2525,11922,0}, {2525,11920,0},{2528,11918,0},{2532,11922,0},{2533,11922,0},{2532,11917,0}, {2535,11917,0},{2535,11915,0},{2537,11915,0},{2538,11912,0},{2540,11910,0}, {2542,11910,0},{2547,11923,0},{2553,11928,0},{2557,11928,0},{2557,11932,0}, {2560,11932,0},{2560,11935,0},{2558,11935,0},{2558,11938,0},{2555,11935,0}, {2552,11935,0},{2550,11945,0},{2543,11943,0},{2547,11947,0},{2547,11952,0}, {2545,11948,0},{2542,11950,0},{2537,11948,0},{2538,11952,0},{2537,11953,0}, {2540,11957,0},{2542,11953,0},{2543,11953,0},{2545,11953,0},{2547,11957,0}, {2543,11958,0},{2542,11958,0},{2537,11960,0},{2533,11958,0},{2533,11962,0}, {2535,11965,0},{2537,11962,0},{2538,11965,0},{2542,11965,0},{2543,11962,0}, {2547,11962,0},{2547,11960,0},{2550,11960,0},{2548,11958,0},{2548,11957,0}, {2550,11960,0},{2552,11957,0},{2552,11958,0},{2553,11957,0},{2558,11958,0}, {2557,11955,0},{2557,11953,0},{2555,11952,0},{2558,11948,0},{2562,11948,0}, {2562,11945,0},{2568,11945,0},{2568,11952,0},{2570,11953,0},{2568,11957,0}, {2568,11958,0},{2573,11960,0},{2575,11962,0},{2577,11960,0},{2580,11960,0}, {2583,11957,0},{2587,11958,0},{2588,11957,0},{2587,11958,0},{2583,11960,0}, {2590,11962,0},{2590,11967,0},{2600,11970,0},{2602,11968,0},{2605,11953,0}, {2603,11950,0},{2598,11948,0},{2597,11945,0},{2593,11937,0},{2597,11923,0}, {2600,11923,0},{2608,11920,0},{2608,11915,0},{2615,11910,0},{2612,11915,0}, {2610,11922,0},{2605,11927,0},{2605,11933,0},{2598,11945,0},{2602,11948,0}, {2612,11957,0},{2613,11960,0},{2617,11960,0},{2622,11967,0},{2625,11967,0}, {2625,11963,0},{2628,11967,0},{2628,11975,0},{2628,11980,0},{2630,11978,0}, {2633,11982,0},{2632,11990,0},{2637,11995,0},{2635,11988,0},{2637,11985,0}, {2640,11985,0},{2642,11982,0},{2640,11978,0},{2637,11977,0},{2637,11975,0}, {2632,11975,0},{2632,11968,0},{2633,11968,0},{2633,11965,0},{2635,11965,0}, {2640,11965,0},{2645,11963,0},{2643,11962,0},{2643,11957,0},{2647,11958,0}, {2647,11963,0},{2650,11965,0},{2645,11968,0},{2643,11975,0},{2640,11977,0}, {2642,11978,0},{2643,11980,0},{2645,11982,0},{2648,11980,0},{2650,11978,0}, {2652,11980,0},{2652,11977,0},{2655,11975,0},{2655,11977,0},{2655,11978,0}, {2657,11978,0},{2658,11973,0},{2662,11973,0},{2660,11967,0},{2657,11960,0}, {2662,11955,0},{2665,11953,0},{2665,11960,0},{2668,11960,0},{2670,11960,0}, {2670,11955,0},{2677,11955,0},{2677,11957,0},{2678,11958,0},{2680,11962,0}, {2678,11963,0},{2675,11962,0},{2675,11965,0},{2670,11970,0},{2672,11973,0}, {2677,11968,0},{2682,11968,0},{2680,11972,0},{2673,11973,0},{2673,11977,0}, {2677,11977,0},{2678,11975,0},{2682,11978,0},{2683,11980,0},{2685,11983,0}, {2683,11983,0},{2682,11980,0},{2680,11978,0},{2678,11983,0},{2677,11980,0}, {2668,11980,0},{2672,11982,0},{2668,11985,0},{2665,11985,0},{2665,11987,0}, {2665,11990,0},{2670,11990,0},{2675,11993,0},{2680,11993,0},{2678,12000,0}, {2678,12008,0},{2677,12005,0},{2673,12003,0},{2672,12003,0},{2672,12000,0}, {2670,11998,0},{2665,11998,0},{2660,11985,0},{2657,11985,0},{2657,11983,0}, {2653,11983,0},{2652,11987,0},{2652,11988,0},{2655,11993,0},{2662,11995,0}, {2660,12000,0},{2662,12002,0},{2663,12008,0},{2662,12008,0},{2663,12013,0}, {2665,12013,0},{2665,12012,0},{2670,12010,0},{2672,12015,0},{2673,12013,0}, {2673,12010,0},{2675,12010,0},{2678,12012,0},{2682,12007,0},{2682,12003,0}, {2687,12002,0},{2688,12007,0},{2690,12003,0},{2688,12010,0},{2690,12012,0}, {2693,12012,0},{2692,12022,0},{2693,12023,0},{2697,12023,0},{2698,12015,0}, {2698,12020,0},{2698,12022,0},{2700,12025,0},{2703,12025,0},{2703,12022,0}, {2705,12025,0},{2707,12025,0},{2705,12028,0},{2710,12027,0},{2710,12025,0}, {2713,12025,0},{2712,12028,0},{2710,12037,0},{2710,12038,0},{2710,12037,0}, {2712,12037,0},{2713,12042,0},{2715,12038,0},{2715,12042,0},{2718,12038,0}, {2718,12035,0},{2722,12037,0},{2723,12035,0},{2722,12030,0},{2725,12025,0}, {2723,12022,0},{2722,12020,0},{2722,12018,0},{2723,12017,0},{2725,12020,0}, {2728,12020,0},{2727,12022,0},{2728,12025,0},{2730,12023,0},{2730,12027,0}, {2732,12027,0},{2730,12028,0},{2732,12032,0},{2730,12030,0},{2728,12032,0}, {2727,12030,0},{2725,12030,0},{2723,12038,0},{2717,12042,0},{2722,12042,0}, {2723,12045,0},{2155,10798,128},{2153,10807,0},{2155,10807,0},{2157,10807,0}, {2155,10808,0},{2157,10812,0},{2157,10813,0},{2158,10813,0},{2157,10817,0}, {2160,10820,0},{2163,10820,0},{2163,10822,0},{2163,10823,0},{2162,10822,0}, {2158,10827,0},{2150,10820,0},{2155,10828,0},{2158,10832,0},{2158,10828,0}, {2162,10832,0},{2162,10830,0},{2163,10832,0},{2167,10830,0},{2168,10832,0}, {2170,10832,0},{2172,10833,0},{2170,10833,0},{2168,10835,0},{2167,10840,0}, {2168,10842,0},{2165,10842,0},{2167,10847,0},{2162,10842,0},{2162,10845,0}, {2158,10843,0},{2158,10842,0},{2160,10842,0},{2160,10838,0},{2155,10840,0}, {2157,10847,0},{2157,10845,0},{2157,10847,0},{2160,10848,0},{2162,10848,0}, {2160,10850,0},{2160,10848,0},{2158,10848,0},{2162,10852,0},{2162,10853,0}, {2163,10852,0},{2163,10855,0},{2167,10855,0},{2167,10857,0},{2168,10857,0}, {2170,10855,0},{2167,10852,0},{2168,10852,0},{2172,10853,0},{2170,10852,0}, {2167,10850,0},{2168,10850,0},{2170,10848,0},{2172,10850,0},{2173,10847,0}, {2173,10850,0},{2177,10850,0},{2178,10850,0},{2180,10850,0},{2180,10847,0}, {2182,10848,0},{2187,10845,0},{2188,10845,0},{2190,10845,0},{2193,10847,0}, {2193,10848,0},{2187,10845,0},{2185,10847,0},{2185,10848,0},{2187,10848,0}, {2188,10852,0},{2190,10852,0},{2192,10853,0},{2195,10855,0},{2195,10857,0}, {2192,10857,0},{2190,10855,0},{2190,10858,0},{2192,10860,0},{2188,10863,0}, {2180,10857,0},{2178,10857,0},{2178,10858,0},{2178,10860,0},{2173,10860,0}, {2175,10863,0},{2178,10862,0},{2177,10863,0},{2178,10863,0},{2182,10865,0}, {2178,10865,0},{2180,10868,0},{2178,10867,0},{2175,10863,0},{2173,10868,0}, {2173,10865,0},{2170,10868,0},{2173,10870,0},{2173,10873,0},{2168,10870,0}, {2167,10872,0},{2167,10873,0},{2168,10875,0},{2165,10875,0},{2167,10873,0}, {2165,10872,0},{2163,10873,0},{2160,10873,0},{2162,10873,0},{2163,10878,0}, {2162,10883,0},{2163,10887,0},{2163,10882,0},{2167,10883,0},{2168,10883,0}, {2172,10880,0},{2172,10878,0},{2173,10878,0},{2173,10880,0},{2175,10880,0}, {2170,10883,0},{2175,10885,0},{2177,10885,0},{2178,10882,0},{2180,10882,0}, {2182,10878,0},{2182,10880,0},{2180,10883,0},{2182,10887,0},{2178,10885,0}, {2180,10887,0},{2178,10887,0},{2175,10887,0},{2177,10890,0},{2177,10892,0}, {2173,10887,0},{2172,10887,0},{2168,10885,0},{2167,10890,0},{2162,10892,0}, {2160,10897,0},{2162,10903,0},{2165,10907,0},{2162,10905,0},{2160,10905,0}, {2162,10907,0},{2160,10908,0},{2160,10910,0},{2158,10912,0},{2160,10913,0}, {2153,10915,0},{2152,10915,0},{2148,10912,0},{2148,10907,0},{2143,10903,0}, {2140,10913,0},{2140,10915,0},{2143,10915,0},{2142,10917,0},{2142,10922,0}, {2145,10922,0},{2148,10923,0},{2143,10925,0},{2143,10928,0},{2147,10932,0}, {2145,10935,0},{2145,10943,0},{2150,10947,0},{2147,10947,0},{2148,10953,0}, {2152,10955,0},{2155,10955,0},{2158,10958,0},{2163,10953,0},{2165,10947,0}, {2165,10952,0},{2168,10952,0},{2168,10950,0},{2170,10950,0},{2175,10957,0}, {2173,10960,0},{2170,10955,0},{2167,10957,0},{2163,10958,0},{2165,10962,0}, {2162,10960,0},{2157,10962,0},{2157,10963,0},{2160,10963,0},{2162,10968,0}, {2152,10965,0},{2150,10967,0},{2147,10973,0},{2148,10975,0},{2148,10977,0}, {2150,10977,0},{2157,10975,0},{2158,10977,0},{2153,10977,0},{2155,10980,0}, {2147,10980,0},{2147,10983,0},{2150,10983,0},{2147,10990,0},{2148,10995,0}, {2147,10992,0},{2145,10995,0},{2142,10992,0},{2140,10990,0},{2137,10992,0}, {2137,10985,0},{2135,10983,0},{2135,10982,0},{2133,10978,0},{2135,10978,0}, {2135,10977,0},{2122,10977,0},{2118,10975,0},{2117,10975,0},{2117,10973,0}, {2118,10973,0},{2117,10970,0},{2113,10967,0},{2103,10972,0},{2103,10970,0}, {2098,10967,0},{2095,10968,0},{2095,10967,0},{2092,10967,0},{2087,10967,0}, {2082,10970,0},{2080,10972,0},{2083,10970,0},{2080,10973,0},{2082,10973,0}, {2085,10973,0},{2087,10975,0},{2083,10975,0},{2082,10977,0},{2080,10975,0}, {2077,10977,0},{2073,10975,0},{2072,10985,128},{2068,10983,0},{2068,10980,0}, {2068,10977,0},{2067,10975,0},{2063,10975,0},{2063,10978,0},{2062,10980,0}, {2058,10982,0},{2055,10982,0},{2058,10985,0},{2055,10985,0},{2053,10982,0}, {2052,10982,0},{2048,10990,0},{2045,10992,0},{2050,10993,0},{2045,10995,0}, {2047,10997,0},{2043,11002,0},{2035,10998,0},{2042,10993,0},{2040,10987,0}, {2038,10988,0},{2037,10988,0},{2033,10992,0},{2030,10993,0},{2025,10992,0}, {2023,10992,0},{2028,10998,0},{2027,11000,0},{2030,11003,0},{2027,11010,0}, {2023,11012,0},{2023,11017,0},{2027,11020,0},{2028,11023,0},{2025,11028,0}, {2027,11028,0},{2027,11032,0},{2030,11037,0},{2030,11040,0},{2043,11052,0}, {2048,11053,0},{2057,11048,0},{2057,11047,0},{2057,11043,0},{2058,11042,0}, {2060,11038,0},{2063,11038,0},{2062,11037,0},{2063,11037,0},{2063,11032,0}, {2067,11032,0},{2065,11030,0},{2068,11030,0},{2072,11033,0},{2075,11032,0}, {2075,11033,0},{2078,11032,0},{2082,11033,0},{2082,11035,0},{2073,11035,0}, {2070,11038,0},{2072,11040,0},{2077,11040,0},{2083,11038,0},{2085,11033,0}, {2083,11025,0},{2085,11015,0},{2087,11015,0},{2087,11017,0},{2093,11015,0}, {2097,11017,0},{2098,11015,0},{2098,11017,0},{2102,11018,0},{2107,11020,0}, {2108,11020,0},{2107,11020,0},{2105,11020,0},{2102,11022,0},{2107,11025,0}, {2112,11033,0},{2117,11040,0},{2123,11042,0},{2128,11037,0},{2130,11037,0}, {2132,11035,0},{2133,11033,0},{2132,11038,0},{2133,11038,0},{2133,11040,0}, {2143,11035,0},{2145,11038,0},{2142,11037,0},{2138,11040,0},{2138,11042,0}, {2140,11043,0},{2130,11042,0},{2132,11045,0},{2133,11045,0},{2133,11047,0}, {2133,11048,0},{2130,11045,0},{2130,11048,0},{2127,11047,0},{2128,11047,0}, {2128,11043,0},{2127,11042,0},{2125,11043,0},{2118,11043,0},{2122,11048,0}, {2122,11053,0},{2122,11058,0},{2125,11058,0},{2123,11063,0},{2125,11063,0}, {2132,11062,0},{2137,11062,0},{2142,11070,0},{2142,11075,0},{2143,11077,0}, {2140,11075,0},{2135,11063,0},{2132,11063,0},{2135,11067,0},{2132,11065,0}, {2125,11065,0},{2135,11070,0},{2140,11080,0},{2138,11087,0},{2140,11092,0}, {2142,11093,0},{2143,11100,0},{2147,11103,0},{2147,11107,0},{2148,11105,0}, {2147,11102,0},{2145,11100,0},{2145,11098,0},{2145,11100,0},{2148,11102,0}, {2152,11098,0},{2152,11102,0},{2153,11103,0},{2152,11107,0},{2148,11108,0}, {2150,11112,0},{2148,11112,0},{2147,11108,0},{2147,11110,0},{2147,11115,0}, {2150,11122,0},{2150,11117,0},{2152,11115,0},{2153,11120,0},{2152,11122,0}, {2150,11130,0},{2145,11128,0},{2143,11125,0},{2143,11127,0},{2152,11140,0}, {2153,11135,0},{2153,11143,0},{2157,11140,0},{2160,11143,0},{2155,11145,0}, {2155,11147,0},{2152,11147,0},{2152,11152,0},{2153,11152,0},{2152,11153,0}, {2153,11160,0},{2155,11158,0},{2158,11158,0},{2155,11160,0},{2152,11163,0}, {2162,11170,0},{2162,11178,0},{2163,11175,0},{2165,11178,0},{2172,11177,0}, {2178,11168,0},{2175,11177,0},{2175,11178,0},{2173,11180,0},{2177,11183,0}, {2172,11182,0},{2172,11188,0},{2170,11188,0},{2168,11183,0},{2167,11185,0}, {2168,11188,0},{2172,11190,0},{2177,11200,0},{2182,11190,0},{2192,11190,0}, {2192,11192,0},{2182,11197,0},{2185,11202,0},{2188,11203,0},{2185,11203,0}, {2182,11200,0},{2180,11203,0},{2180,11218,0},{2183,11220,0},{2180,11220,0}, {2175,11218,0},{2173,11223,0},{2172,11223,0},{2170,11228,0},{2172,11233,0}, {2177,11238,0},{2182,11240,0},{2200,11235,0},{2207,11238,0},{2205,11240,0}, {2198,11237,0},{2195,11240,0},{2195,11250,0},{2190,11242,0},{2183,11242,0}, {2177,11257,0},{2180,11263,0},{2185,11265,0},{2185,11268,0},{2188,11270,0}, {2188,11273,0},{2193,11275,0},{2195,11280,0},{2197,11282,0},{2195,11285,0}, {2188,11287,0},{2185,11290,0},{2187,11295,0},{2192,11298,0},{2195,11302,0}, {2202,11300,0},{2210,11298,0},{2222,11310,0},{2215,11313,0},{2208,11312,0}, {2205,11318,0},{2208,11320,0},{2205,11320,0},{2203,11322,0},{2207,11325,0}, {2212,11325,0},{2215,11328,0},{2218,11330,0},{2218,11338,0},{2223,11337,0}, {2227,11332,0},{2233,11330,0},{2237,11325,0},{2242,11323,0},{2247,11317,0}, {2257,11317,0},{2247,11323,0},{2238,11327,0},{2230,11335,0},{2227,11337,0}, {2218,11343,0},{2217,11347,0},{2218,11352,0},{2220,11353,0},{2218,11355,0}, {2222,11355,0},{2225,11358,0},{2230,11357,0},{2232,11360,0},{2235,11358,0}, {2237,11360,0},{2240,11353,0},{2248,11357,0},{2255,11357,0},{2267,11352,0}, {2272,11347,0},{2275,11338,0},{2273,11343,0},{2277,11345,0},{2277,11350,0}, {2280,11343,0},{2288,11337,0},{2288,11327,0},{2290,11322,0},{2288,11330,0}, {2290,11335,0},{2293,11342,0},{2292,11348,0},{2303,11350,0},{2307,11347,0}, {2305,11342,0},{2308,11340,0},{2310,11340,0},{2308,11347,0},{2305,11352,0}, {2308,11355,0},{2310,11358,0},{2312,11360,0},{2312,11363,0},{2315,11370,0}, {2313,11382,0},{2312,11383,0},{2313,11372,0},{2312,11365,0},{2307,11353,0}, {2305,11353,0},{2302,11352,0},{2298,11355,0},{2302,11358,0},{2293,11358,0}, {2300,11358,0},{2303,11362,0},{2298,11360,0},{2292,11360,0},{2300,11360,0}, {2303,11363,0},{2292,11362,0},{2290,11360,0},{2287,11360,0},{2290,11362,0}, {2283,11360,0},{2283,11362,0},{2288,11362,0},{2283,11365,0},{2280,11367,0}, {2275,11365,0},{2275,11368,0},{2277,11372,0},{2275,11375,0},{2258,11382,0}, {2252,11388,0},{2247,11387,0},{2248,11392,0},{2252,11392,0},{2252,11395,0}, {2252,11403,0},{2247,11402,0},{2247,11398,0},{2240,11390,0},{2237,11392,0}, {2237,11395,0},{2238,11395,0},{2237,11398,0},{2235,11403,0},{2237,11405,0}, {2237,11410,0},{2230,11417,0},{2232,11420,0},{2230,11423,0},{2232,11425,0}, {2227,11428,0},{2228,11430,0},{2255,11423,0},{2260,11430,0},{2262,11438,0}, {2255,11447,0},{2248,11448,0},{2245,11450,0},{2248,11452,0},{2250,11462,0}, {2253,11460,0},{2255,11457,0},{2257,11453,0},{2255,11452,0},{2255,11450,0}, {2258,11450,0},{2260,11457,0},{2265,11458,0},{2265,11450,0},{2268,11452,0}, {2270,11452,0},{2270,11457,0},{2273,11455,0},{2275,11462,0},{2278,11468,0}, {2277,11472,0},{2278,11475,0},{2282,11477,0},{2278,11482,0},{2275,11475,0}, {2272,11472,0},{2267,11473,0},{2263,11472,0},{2260,11473,0},{2258,11475,0}, {2258,11487,0},{2257,11488,0},{2253,11487,0},{2255,11490,0},{2262,11492,0}, {2267,11495,0},{2272,11490,0},{2270,11488,0},{2273,11487,0},{2273,11485,0}, {2275,11485,0},{2273,11490,0},{2275,11493,0},{2270,11495,0},{2268,11498,0}, {2270,11502,0},{2273,11502,0},{2273,11503,0},{2278,11505,0},{2280,11513,0}, {2278,11515,0},{2277,11517,0},{2282,11517,0},{2283,11525,0},{2285,11525,0}, {2290,11530,0},{2283,11532,0},{2282,11527,0},{2278,11522,0},{2278,11532,0}, {2277,11535,0},{2278,11540,0},{2275,11542,0},{2273,11535,0},{2270,11535,0}, {2268,11538,0},{2268,11545,0},{2265,11557,0},{2267,11557,0},{2270,11555,0}, {2273,11560,0},{2275,11555,0},{2273,11555,0},{2272,11553,0},{2275,11552,0}, {2280,11553,0},{2285,11558,0},{2287,11560,0},{2283,11557,0},{2285,11547,0}, {2287,11550,0},{2288,11550,0},{2290,11547,0},{2290,11545,0},{2290,11542,0}, {2292,11542,0},{2292,11543,0},{2293,11545,0},{2292,11547,0},{2288,11552,0}, {2290,11555,0},{2288,11555,0},{2287,11553,0},{2285,11555,0},{2288,11558,0}, {2290,11567,0},{2293,11568,0},{2293,11573,0},{2288,11567,0},{2285,11572,0}, {2282,11580,0},{2277,11582,0},{2280,11578,0},{2275,11578,0},{2273,11580,0}, {2278,11585,0},{2280,11593,0},{2283,11595,0},{2280,11595,0},{2285,11602,0}, {2285,11605,0},{2290,11607,0},{2293,11603,0},{2290,11610,0},{2287,11608,0}, {2283,11608,0},{2285,11613,0},{2292,11618,0},{2295,11627,0},{2297,11622,0}, {2298,11620,0},{2297,11625,0},{2298,11627,0},{2300,11628,0},{2298,11628,0}, {2295,11630,0},{2293,11635,0},{2295,11645,0},{2293,11648,0},{2300,11650,0}, {2302,11653,0},{2307,11652,0},{2310,11653,0},{2313,11652,0},{2320,11658,0}, {2322,11658,0},{2322,11653,0},{2322,11650,0},{2325,11657,0},{2322,11660,0}, {2318,11660,0},{2317,11662,0},{2323,11667,0},{2325,11672,0},{2327,11667,0}, {2328,11667,0},{2327,11670,0},{2320,11678,0},{2323,11678,0},{2325,11677,0}, {2332,11673,0},{2332,11668,0},{2333,11665,0},{2332,11660,0},{2333,11655,0}, {2337,11653,0},{2342,11652,0},{2337,11660,0},{2335,11668,0},{2337,11673,0}, {2335,11675,0},{2342,11683,0},{2345,11685,0},{2347,11687,0},{2352,11685,0}, {2355,11688,0},{2358,11688,0},{2360,11687,0},{2367,11692,0},{2365,11693,0}, {2362,11692,0},{2362,11695,0},{2362,11697,0},{2365,11697,0},{2365,11698,0}, {2362,11702,0},{2365,11702,0},{2365,11703,0},{2363,11707,0},{2355,11707,0}, {2357,11710,0},{2360,11713,0},{2362,11718,0},{6385,63399,128},{6382,63373,0}, {6387,63363,0},{6387,63356,0},{6385,63351,0},{6383,63336,0},{6383,63318,0}, {6387,63303,0},{6383,63296,0},{6385,63293,0},{6382,63284,0},{6382,63271,0}, {6380,63268,0},{6383,63264,0},{6387,63266,0},{6388,63263,0},{6393,63268,0}, {6395,63273,0},{6395,63266,0},{6398,63263,0},{6408,63266,0},{6408,63269,0}, {6405,63278,0},{6398,63281,0},{6397,63296,0},{6402,63299,0},{6403,63311,0}, {6402,63316,0},{6405,63326,0},{6405,63334,0},{6408,63339,0},{6410,63331,0}, {6412,63336,0},{6412,63339,0},{6410,63338,0},{6410,63344,0},{6412,63343,0}, {6412,63344,0},{6415,63333,0},{6415,63349,0},{6413,63354,0},{6413,63358,0}, {6413,63354,0},{6415,63356,0},{6417,63354,0},{6418,63366,0},{6418,63359,0}, {6422,63364,0},{6422,63354,0},{6423,63354,0},{6423,63343,0},{6435,63361,0}, {6435,63371,0},{6435,63368,0},{6438,63378,0},{6437,63379,0},{6435,63389,0}, {6438,63399,0},{6437,63391,0},{6437,63388,0},{6440,63391,0},{6440,63373,0}, {6438,63363,0},{6433,63356,0},{6430,63341,0},{6432,63326,0},{6435,63336,0}, {6437,63338,0},{6437,63348,0},{6438,63349,0},{6440,63333,0},{6450,63338,0}, {6453,63348,0},{6453,63358,0},{6455,63354,0},{6460,63366,0},{6460,63371,0}, {6458,63371,0},{6458,63376,0},{6457,63378,0},{6457,63386,0},{6460,63374,0}, {6462,63378,0},{6462,63368,0},{6465,63374,0},{6465,63386,0},{6465,63376,0}, {6465,63373,0},{6463,63366,0},{6465,63369,0},{6465,63366,0},{6458,63359,0}, {6458,63353,0},{6457,63351,0},{6455,63341,0},{6452,63336,0},{6453,63333,0}, {6457,63333,0},{6447,63328,0},{6445,63319,0},{6450,63314,0},{6448,63311,0}, {6452,63314,0},{6455,63314,0},{6455,63309,0},{6457,63311,0},{6455,63303,0}, {6457,63301,0},{6462,63301,0},{6467,63293,0},{6463,63299,0},{6465,63303,0}, {6467,63301,0},{6468,63303,0},{6473,63318,0},{6467,63296,0},{6468,63294,0}, {6472,63301,0},{6475,63304,0},{6477,63293,0},{6482,63294,0},{6480,63293,0}, {6480,63289,0},{6480,63283,0},{6478,63278,0},{6477,63279,0},{6477,63271,0}, {6477,63268,0},{6478,63273,0},{6480,63268,0},{6480,63258,0},{6477,63264,0}, {6480,63249,0},{6480,63219,0},{6483,63208,0},{6482,63198,0},{6478,63191,0}, {6480,63179,0},{6482,63183,0},{6482,63179,0},{6478,63173,0},{6475,63173,0}, {6473,63169,0},{6473,63153,0},{6473,63148,0},{6475,63141,0},{6487,63131,0}, {6488,63129,0},{6488,63136,0},{6492,63139,0},{6492,63154,0},{6488,63169,0}, {6492,63181,0},{6495,63186,0},{6495,63198,0},{6497,63196,0},{6497,63201,0}, {6493,63203,0},{6492,63211,0},{6495,63214,0},{6498,63213,0},{6502,63218,0}, {6500,63228,0},{6495,63219,0},{6492,63224,0},{6497,63224,0},{6497,63229,0}, {6500,63233,0},{6500,63239,0},{6498,63241,0},{6502,63253,0},{6503,63258,0}, {6503,63249,0},{6508,63264,0},{6505,63266,0},{6502,63261,0},{6502,63268,0}, {6500,63269,0},{6497,63278,0},{6500,63274,0},{6502,63274,0},{6505,63283,0}, {6507,63301,0},{6505,63308,0},{6503,63321,0},{6503,63324,0},{6503,63341,0}, {6503,63356,0},{6505,63358,0},{6507,63351,0},{6515,63363,0},{6520,63361,0}, {6520,63354,0},{6515,63349,0},{6510,63329,0},{6512,63311,0},{6517,63296,0}, {6515,63289,0},{6515,63281,0},{6517,63279,0},{6518,63291,0},{6518,63281,0}, {6523,63286,0},{6523,63294,0},{6527,63294,0},{6527,63299,0},{6530,63303,0}, {6533,63319,0},{6540,63338,0},{6538,63343,0},{6540,63341,0},{6542,63344,0}, {6543,63358,0},{6545,63366,0},{6543,63354,0},{6545,63349,0},{6543,63339,0}, {6545,63341,0},{6547,63343,0},{6550,63336,0},{6550,63333,0},{6548,63331,0}, {6550,63328,0},{6552,63326,0},{6548,63324,0},{6543,63316,0},{6545,63306,0}, {6548,63298,0},{6550,63298,0},{6552,63316,0},{6560,63326,0},{6553,63311,0}, {6553,63301,0},{6557,63306,0},{6553,63299,0},{6555,63294,0},{6552,63296,0}, {6550,63289,0},{6552,63286,0},{6557,63286,0},{6563,63281,0},{6557,63283,0}, {6555,63281,0},{6553,63278,0},{6555,63276,0},{6557,63274,0},{6555,63273,0}, {6552,63271,0},{6553,63268,0},{6557,63264,0},{6563,63268,0},{6562,63264,0}, {6563,63259,0},{6550,63263,0},{6550,63258,0},{6553,63256,0},{6553,63248,0}, {6560,63256,0},{6562,63251,0},{6558,63249,0},{6557,63244,0},{6560,63241,0}, {6555,63239,0},{6553,63234,0},{6555,63221,0},{6558,63221,0},{6558,63218,0}, {6553,63216,0},{6552,63218,0},{6548,63213,0},{6550,63199,0},{6552,63196,0}, {6550,63196,0},{6547,63186,0},{6547,63171,0},{6542,63164,0},{6540,63149,0}, {6542,63138,0},{6545,63136,0},{6545,63139,0},{6547,63139,0},{6547,63133,0}, {6550,63116,0},{6548,63089,0},{6550,63083,0},{6553,63089,0},{6557,63098,0}, {6560,63099,0},{6563,63104,0},{6560,63121,0},{6552,63146,0},{6553,63156,0}, {6553,63148,0},{6563,63129,0},{6565,63129,0},{6565,63139,0},{6560,63156,0}, {6570,63129,0},{6578,63123,0},{6580,63126,0},{6570,63174,0},{6567,63181,0}, {6560,63179,0},{6563,63186,0},{6563,63196,0},{6565,63196,0},{6567,63208,0}, {6567,63191,0},{6570,63184,0},{6572,63183,0},{6573,63189,0},{6573,63201,0}, {6575,63203,0},{6573,63213,0},{6575,63211,0},{6578,63216,0},{6575,63184,0}, {6577,63163,0},{6587,63149,0},{6592,63154,0},{6590,63173,0},{6587,63176,0}, {6588,63186,0},{6587,63189,0},{6583,63214,0},{6590,63178,0},{6602,63154,0}, {6605,63156,0},{6607,63159,0},{6602,63193,0},{6598,63198,0},{6600,63196,0}, {6603,63193,0},{6605,63183,0},{6612,63169,0},{6613,63181,0},{6612,63191,0}, {6610,63196,0},{6613,63189,0},{6615,63176,0},{6618,63183,0},{6618,63188,0}, {6620,63189,0},{6618,63201,0},{6615,63219,0},{6612,63224,0},{6608,63226,0}, {6610,63233,0},{6608,63238,0},{6603,63238,0},{6597,63229,0},{6605,63243,0}, {6600,63246,0},{6602,63249,0},{6602,63251,0},{6593,63243,0},{6595,63249,0}, {6600,63253,0},{6597,63256,0},{6592,63254,0},{6605,63259,0},{6605,63268,0}, {6603,63269,0},{6597,63279,0},{6583,63271,0},{6597,63284,0},{6593,63288,0}, {6593,63291,0},{6590,63291,0},{6592,63294,0},{6583,63289,0},{6583,63293,0}, {6590,63296,0},{6590,63301,0},{6598,63294,0},{6603,63288,0},{6607,63289,0}, {6608,63298,0},{6608,63288,0},{6608,63279,0},{6612,63276,0},{6615,63253,0}, {6623,63238,0},{6627,63256,0},{6625,63268,0},{6625,63276,0},{6622,63278,0}, {6623,63281,0},{6625,63281,0},{6627,63296,0},{6627,63299,0},{6627,63286,0}, {6627,63279,0},{6632,63289,0},{6633,63286,0},{6632,63286,0},{6628,63276,0}, {6630,63266,0},{6635,63269,0},{6637,63274,0},{6637,63268,0},{6632,63254,0}, {6633,63253,0},{6637,63256,0},{6630,63243,0},{6632,63229,0},{6635,63218,0}, {6637,63233,0},{6638,63234,0},{6642,63224,0},{6643,63224,0},{6642,63234,0}, {6643,63234,0},{6643,63246,0},{6642,63249,0},{6643,63249,0},{6647,63241,0}, {6647,63244,0},{6643,63263,0},{6642,63268,0},{6647,63276,0},{6647,63281,0}, {6642,63289,0},{6643,63294,0},{6647,63291,0},{6643,63298,0},{6640,63301,0}, {6638,63309,0},{6633,63311,0},{6633,63316,0},{6632,63313,0},{6630,63314,0}, {6627,63313,0},{6627,63324,0},{6628,63326,0},{6627,63328,0},{6627,63339,0}, {6623,63344,0},{6620,63338,0},{6622,63343,0},{6618,63349,0},{6618,63361,0}, {6607,63364,0},{6607,63371,0},{6605,63373,0},{6602,63369,0},{6605,63374,0}, {6608,63373,0},{6610,63381,0},{6605,63384,0},{6605,63381,0},{6602,63383,0}, {6602,63403,0},{6598,63404,0},{6595,63376,0},{6593,63378,0},{6597,63389,0}, {6595,63398,0},{6593,63393,0},{6592,63408,0},{6588,63408,0},{6587,63404,0}, {6587,63408,0},{6583,63406,0},{6578,63401,0},{6577,63388,0},{6577,63396,0}, {6573,63403,0},{6568,63391,0},{6568,63378,0},{6577,63369,0},{6577,63364,0}, {6577,63358,0},{6575,63366,0},{6572,63369,0},{6568,63368,0},{6565,63371,0}, {6563,63378,0},{6563,63396,0},{6555,63388,0},{6558,63398,0},{6560,63404,0}, {6552,63406,0},{6543,63388,0},{6548,63406,0},{6543,63416,0},{6530,63416,0}, {6517,63428,0},{6518,63429,0},{6527,63424,0},{6533,63429,0},{6545,63426,0}, {6545,63431,0},{6535,63439,0},{6533,63444,0},{6545,63438,0},{6552,63438,0}, {6558,63443,0},{6567,63463,0},{6568,63468,0},{6567,63474,0},{6555,63471,0}, {6555,63474,0},{6558,63474,0},{6558,63479,0},{6553,63478,0},{6548,63486,0}, {6550,63491,0},{6555,63493,0},{6557,63484,0},{6560,63494,0},{6557,63496,0}, {6552,63496,0},{6557,63498,0},{6565,63504,0},{6567,63509,0},{6568,63504,0}, {6572,63509,0},{6577,63509,0},{6582,63503,0},{6585,63506,0},{6593,63496,0}, {6602,63494,0},{6602,63491,0},{6608,63494,0},{6610,63511,0},{6613,63518,0}, {6612,63524,0},{6612,63526,0},{6608,63529,0},{6608,63533,0},{6590,63549,0}, {6588,63561,0},{6587,63566,0},{6575,63573,0},{6573,63579,0},{6575,63581,0}, {6577,63583,0},{6575,63586,0},{6575,63593,0},{6573,63589,0},{6573,63594,0}, {6583,63598,0},{6592,63591,0},{6595,63584,0},{6598,63588,0},{6600,63594,0}, {6607,63591,0},{6608,63598,0},{6608,63613,0},{6607,63619,0},{6610,63623,0}, {6607,63631,0},{6610,63626,0},{6617,63629,0},{6618,63643,0},{6618,63644,0}, {6615,63644,0},{6617,63648,0},{6620,63651,0},{6618,63658,0},{6613,63656,0}, {6617,63666,0},{6613,63673,0},{6612,63674,0},{6608,63669,0},{6610,63676,0}, {6608,63681,0},{6607,63681,0},{6602,63684,0},{6597,63683,0},{6595,63703,0}, {6587,63709,0},{6587,63716,0},{6573,63718,0},{6570,63726,0},{6565,63729,0}, {6567,63731,0},{6573,63724,0},{6585,63729,0},{6592,63721,0},{6592,63719,0}, {6593,63714,0},{6597,63714,0},{6602,63706,0},{6615,63703,0},{6617,63706,0}, {6617,63726,0},{6615,63728,0},{6615,63746,0},{6612,63748,0},{6612,63754,0}, {6603,63768,0},{6602,63768,0},{6592,63781,0},{6597,63779,0},{6598,63786,0}, {6598,63774,0},{6600,63793,0},{6598,63793,0},{6595,63794,0},{6598,63794,0}, {6605,63801,0},{6610,63801,0},{6613,63809,0},{6617,63809,0},{6618,63813,0}, {6620,63821,0},{6622,63821,0},{6620,63833,0},{6618,63839,0},{6612,63843,0}, {6612,63846,0},{6613,63846,0},{6615,63864,0},{6613,63858,0},{6612,63861,0}, {6613,63864,0},{6608,63876,0},{6617,63868,0},{6620,63886,0},{6617,63873,0}, {6618,63884,0},{6617,63888,0},{6613,63893,0},{6617,63891,0},{6618,63888,0}, {6627,63894,0},{6637,63884,0},{6642,63886,0},{6647,63878,0},{6650,63879,0}, {6650,63883,0},{6648,63884,0},{6650,63886,0},{6652,63888,0},{6652,63893,0}, {6648,63894,0},{6652,63898,0},{6648,63906,0},{6648,63904,0},{6648,63911,0}, {6652,63913,0},{6650,63914,0},{6653,63919,0},{6652,63928,0},{6653,63934,0}, {6648,63946,0},{6648,63943,0},{6642,63943,0},{6642,63953,0},{6640,63953,0}, {6640,63964,0},{6633,63968,0},{6628,63959,0},{6627,63959,0},{6627,63968,0}, {6622,63968,0},{6622,63983,0},{6615,63998,0},{6618,64003,0},{6625,64003,0}, {6628,64026,0},{6630,64026,0},{6633,64034,0},{6638,64041,0},{6638,64048,0}, {6637,64063,0},{6638,64081,0},{6627,64036,0},{6622,64043,0},{6618,64041,0}, {6615,64034,0},{6613,64021,0},{6612,64018,0},{6610,64021,0},{6610,64029,0}, {6607,64031,0},{6605,64028,0},{6605,64043,0},{6603,64048,0},{6607,64058,0}, {6607,64064,0},{6605,64069,0},{6600,64071,0},{6600,64074,0},{6595,64076,0}, {6588,64071,0},{6583,64056,0},{6580,64054,0},{6575,64048,0},{6578,64058,0}, {6575,64054,0},{6573,64051,0},{6572,64054,0},{6578,64101,0},{6575,64101,0}, {6572,64096,0},{6567,64109,0},{6565,64101,0},{6553,64083,0},{6550,64079,0}, {6565,64106,0},{6563,64118,0},{6565,64111,0},{6560,64136,0},{6562,64149,0}, {6558,64151,0},{6557,64149,0},{6557,64154,0},{6552,64154,0},{6555,64166,0}, {6552,64173,0},{6550,64176,0},{6547,64173,0},{6537,64168,0},{6537,64153,0}, {6533,64163,0},{6532,64163,0},{6532,64151,0},{6527,64136,0},{6530,64166,0}, {6530,64173,0},{6527,64179,0},{6522,64173,0},{6522,64166,0},{6520,64133,0}, {6520,64174,0},{6515,64173,0},{6513,64161,0},{6513,64171,0},{6512,64168,0}, {6512,64173,0},{6510,64174,0},{6517,64183,0},{6517,64184,0},{6513,64184,0}, {6507,64186,0},{6503,64181,0},{6503,64176,0},{6500,64178,0},{6498,64169,0}, {6498,64156,0},{6503,64151,0},{6508,64133,0},{6503,64136,0},{6503,64113,0}, {6502,64116,0},{6502,64144,0},{6497,64149,0},{6495,64156,0},{6493,64166,0}, {6492,64166,0},{6493,64131,0},{6492,64133,0},{6490,64151,0},{6487,64159,0}, {6482,64153,0},{6483,64139,0},{6480,64153,0},{6478,64133,0},{6473,64138,0}, {6472,64128,0},{6468,64111,0},{6470,64103,0},{6478,64094,0},{6480,64084,0}, {6478,64091,0},{6475,64089,0},{6473,64098,0},{6468,64103,0},{6467,64109,0}, {6465,64106,0},{6467,64098,0},{6467,64088,0},{6463,64089,0},{6463,64096,0}, {6460,64094,0},{6458,64078,0},{6457,64079,0},{6455,64086,0},{6460,64101,0}, {6460,64103,0},{6453,64089,0},{6440,64081,0},{6438,64061,0},{6442,64079,0}, {6443,64071,0},{6443,64064,0},{6440,64064,0},{6432,64046,0},{6435,64046,0}, {6430,64041,0},{6430,64048,0},{6428,64048,0},{6425,64039,0},{6427,64034,0}, {6430,64026,0},{6427,64014,0},{6430,64016,0},{6428,64013,0},{6430,64011,0}, {6433,64008,0},{6430,64008,0},{6430,64004,0},{6435,64001,0},{6438,63996,0}, {6440,63989,0},{6438,63996,0},{6435,63998,0},{6433,63999,0},{6433,63996,0}, {6432,63999,0},{6428,63998,0},{6427,63993,0},{6427,63986,0},{6425,63993,0}, {6423,63986,0},{6422,63968,0},{6418,63956,0},{6420,63964,0},{6418,63964,0}, {6413,63934,0},{6413,63933,0},{6412,63938,0},{6405,63921,0},{6407,63919,0}, {6405,63916,0},{6403,63918,0},{6402,63911,0},{6403,63909,0},{6400,63901,0}, {6398,63901,0},{6400,63906,0},{6390,63888,0},{6390,63886,0},{6392,63889,0}, {6387,63874,0},{6385,63864,0},{6387,63858,0},{6385,63861,0},{6383,63858,0}, {6380,63856,0},{6383,63856,0},{6387,63848,0},{6380,63846,0},{6387,63843,0}, {6378,63843,0},{6378,63839,0},{6380,63839,0},{6388,63843,0},{6392,63839,0}, {6387,63839,0},{6385,63833,0},{6378,63836,0},{6378,63823,0},{6380,63819,0}, {6380,63816,0},{6382,63816,0},{6378,63808,0},{6375,63781,0},{6378,63781,0}, {6375,63779,0},{6375,63776,0},{6373,63778,0},{6370,63764,0},{6372,63764,0}, {6375,63774,0},{6377,63764,0},{6375,63764,0},{6375,63754,0},{6373,63756,0}, {6373,63749,0},{6368,63746,0},{6367,63739,0},{6365,63741,0},{6367,63748,0}, {6365,63751,0},{6367,63756,0},{6363,63753,0},{6362,63739,0},{6360,63741,0}, {6360,63751,0},{6353,63743,0},{6347,63716,0},{6347,63714,0},{6350,63714,0}, {6353,63724,0},{6352,63716,0},{6353,63708,0},{6355,63704,0},{6345,63709,0}, {6347,63719,0},{6343,63693,0},{6338,63663,0},{6342,63638,0},{6342,63629,0}, {6343,63624,0},{6342,63621,0},{6343,63611,0},{6347,63598,0},{6353,63563,0}, {6355,63564,0},{6353,63559,0},{6355,63549,0},{6353,63559,0},{6353,63531,0}, {6355,63528,0},{6353,63529,0},{6353,63519,0},{6360,63501,0},{6360,63506,0}, {6362,63503,0},{6363,63503,0},{6362,63499,0},{6362,63496,0},{6363,63499,0}, {6367,63491,0},{6370,63489,0},{6370,63486,0},{6363,63493,0},{6370,63481,0}, {6375,63481,0},{6377,63488,0},{6373,63504,0},{6378,63491,0},{6382,63496,0}, {6383,63494,0},{6380,63491,0},{6375,63479,0},{6370,63479,0},{6377,63459,0}, {6375,63471,0},{6377,63476,0},{6377,63473,0},{6378,63473,0},{6377,63468,0}, {6378,63464,0},{6382,63469,0},{6387,63466,0},{6387,63464,0},{6383,63468,0}, {6380,63461,0},{6380,63453,0},{6378,63454,0},{6382,63446,0},{6383,63429,0}, {6387,63419,0},{6393,63418,0},{6395,63431,0},{6395,63418,0},{6393,63409,0}, {6392,63406,0},{6388,63416,0},{6388,63403,0},{6387,63399,0},{6385,63399,0}, {5507,64811,128},{5505,64811,0},{5503,64826,0},{5507,64834,0},{5515,64839,0}, {5518,64839,0},{5517,64849,0},{5517,64861,0},{5518,64866,0},{5522,64881,0}, {5525,64888,0},{5523,64894,0},{5523,64901,0},{5520,64913,0},{5522,64921,0}, {5522,64926,0},{5515,64933,0},{5505,64931,0},{5505,64936,0},{5503,64939,0}, {5498,64936,0},{5497,64943,0},{5490,64951,0},{5487,64954,0},{5482,64954,0}, {5482,64959,0},{5478,64964,0},{5483,64956,0},{5485,64958,0},{5485,64963,0}, {5483,64966,0},{5480,64968,0},{5475,64966,0},{5472,64963,0},{5470,64949,0}, {5463,64944,0},{5460,64946,0},{5463,64951,0},{5468,64961,0},{5468,64973,0}, {5468,64979,0},{5463,64983,0},{5457,64988,0},{5452,64988,0},{5448,64993,0}, {5442,64989,0},{5438,64989,0},{5437,64988,0},{5435,64989,0},{5433,64984,0}, {5435,64983,0},{5440,64979,0},{5445,64983,0},{5450,64981,0},{5452,64979,0}, {5457,64969,0},{5457,64966,0},{5453,64964,0},{5452,64969,0},{5450,64968,0}, {5448,64971,0},{5442,64973,0},{5435,64964,0},{5438,64978,0},{5435,64981,0}, {5432,64983,0},{5428,64979,0},{5423,64971,0},{5425,64968,0},{5425,64961,0}, {5422,64949,0},{5417,64949,0},{5410,64946,0},{5403,64931,0},{5403,64926,0}, {5405,64928,0},{5407,64918,0},{5408,64916,0},{5408,64909,0},{5408,64911,0}, {5408,64909,128},{5407,64916,0},{5403,64918,0},{5403,64923,0},{5400,64924,0}, {5398,64918,0},{5402,64903,0},{5402,64899,0},{5400,64901,0},{5398,64899,0}, {5392,64898,0},{5387,64903,0},{5387,64911,0},{5380,64911,0},{5378,64914,0}, {5375,64911,0},{5368,64913,0},{5363,64914,0},{5357,64928,0},{5352,64928,0}, {5345,64921,0},{5340,64924,0},{5338,64931,0},{5337,64931,0},{5338,64923,0}, {5337,64918,0},{5335,64914,0},{5330,64919,0},{5327,64926,0},{5322,64926,0}, {5310,64933,0},{5300,64931,0},{5297,64936,0},{5285,64929,0},{5283,64924,0}, {5273,64921,0},{5267,64914,0},{5255,64916,0},{5242,64901,0},{5235,64899,0}, {5237,64894,0},{5235,64893,0},{5232,64893,0},{5230,64896,0},{5233,64898,0}, {5227,64898,0},{5225,64904,0},{5218,64899,0},{5218,64896,0},{5220,64898,0}, {5218,64889,0},{5220,64891,0},{5220,64888,0},{5217,64878,0},{5222,64866,0}, {5220,64856,0},{5225,64859,0},{5223,64856,0},{5223,64853,0},{5222,64853,0}, {5220,64854,0},{5217,64853,0},{5215,64848,0},{5212,64843,0},{5213,64843,0}, {5215,64846,0},{5218,64846,0},{5222,64844,0},{5225,64839,0},{5228,64836,0}, {5222,64839,0},{5218,64838,0},{5218,64841,0},{5213,64836,0},{5213,64826,0}, {5217,64829,0},{5217,64826,0},{5217,64824,0},{5215,64826,0},{5215,64819,0}, {5213,64818,0},{5213,64793,0},{5210,64781,0},{5208,64781,0},{5210,64776,0}, {5208,64774,0},{5207,64776,0},{5205,64783,0},{5203,64778,0},{5200,64778,0}, {5198,64764,0},{5195,64763,0},{5195,64758,0},{5195,64753,0},{5197,64749,0}, {5192,64746,0},{5192,64744,0},{5188,64748,0},{5187,64736,0},{5183,64733,0}, {5182,64734,0},{5180,64719,0},{5180,64711,0},{5182,64709,0},{5185,64718,0}, {5188,64719,0},{5187,64706,0},{5188,64698,0},{5187,64696,0},{5187,64703,0}, {5182,64708,0},{5178,64704,0},{5177,64706,0},{5172,64701,0},{5170,64693,0}, {5168,64691,0},{5170,64683,0},{5168,64684,0},{5165,64681,0},{5160,64683,0}, {5163,64678,0},{5163,64668,0},{5157,64666,0},{5157,64661,0},{5158,64659,0}, {5158,64649,0},{5155,64648,0},{5155,64643,0},{5153,64643,0},{5157,64636,0}, {5155,64629,0},{5157,64623,0},{5153,64624,0},{5152,64619,0},{5153,64618,0}, {5150,64618,0},{5148,64614,0},{5148,64609,0},{5150,64609,0},{5150,64606,0}, {5148,64606,0},{5147,64601,0},{5147,64598,0},{5150,64594,0},{5155,64596,0}, {5157,64591,0},{5153,64591,0},{5152,64584,0},{5153,64581,0},{5150,64581,0}, {5150,64578,0},{5148,64576,0},{5148,64573,0},{5152,64571,0},{5148,64564,0}, {5147,64566,0},{5145,64559,0},{5147,64559,0},{5145,64554,0},{5147,64554,0}, {5148,64553,0},{5153,64563,0},{5155,64571,0},{5162,64581,0},{5162,64578,0}, {5155,64556,0},{5155,64551,0},{5157,64558,0},{5160,64561,0},{5168,64589,0}, {5168,64591,0},{5172,64591,0},{5172,64588,0},{5173,64584,0},{5175,64581,0}, {5173,64581,0},{5168,64576,0},{5165,64544,0},{5162,64541,0},{5160,64533,0}, {5160,64529,0},{5160,64523,0},{5158,64521,0},{5162,64521,0},{5163,64529,0}, {5165,64529,0},{5167,64526,0},{5167,64528,0},{5168,64538,0},{5172,64541,0}, {5172,64536,0},{5173,64538,0},{5177,64546,0},{5173,64548,0},{5177,64551,0}, {5177,64558,0},{5178,64554,0},{5183,64563,0},{5185,64571,0},{5187,64578,0}, {5185,64564,0},{5182,64556,0},{5182,64553,0},{5180,64549,0},{5182,64548,0}, {5173,64523,0},{5175,64523,0},{5177,64514,0},{5178,64518,0},{5182,64519,0}, {5185,64516,0},{5183,64511,0},{5178,64503,0},{5185,64503,0},{5185,64498,0}, {5188,64496,0},{5190,64508,0},{5190,64511,0},{5193,64509,0},{5195,64506,0}, {5197,64509,0},{5198,64509,0},{5205,64536,0},{5208,64539,0},{5207,64539,0}, {5205,64543,0},{5213,64546,0},{5212,64549,0},{5213,64559,0},{5215,64548,0}, {5215,64539,0},{5210,64541,0},{5213,64536,0},{5210,64518,0},{5213,64514,0}, {5213,64509,0},{5212,64506,0},{5212,64509,0},{5210,64508,0},{5212,64499,0}, {5210,64501,0},{5210,64493,0},{5210,64489,0},{5212,64489,0},{5215,64489,0}, {5217,64491,0},{5218,64489,0},{5220,64494,0},{5217,64494,0},{5218,64499,0}, {5223,64499,0},{5223,64504,0},{5227,64509,0},{5228,64519,0},{5223,64519,0}, {5225,64528,0},{5228,64533,0},{5230,64531,0},{5230,64534,0},{5227,64534,0}, {5223,64541,0},{5223,64549,0},{5225,64554,0},{5223,64554,0},{5225,64563,0}, {5227,64561,0},{5227,64548,0},{5230,64548,0},{5230,64551,0},{5232,64553,0}, {5238,64553,0},{5240,64541,0},{5242,64543,0},{5245,64559,0},{5248,64566,0}, {5247,64573,0},{5248,64571,0},{5248,64568,0},{5252,64568,0},{5255,64569,0}, {5257,64573,0},{5255,64589,0},{5258,64593,0},{5257,64608,0},{5263,64629,0}, {5262,64631,0},{5262,64636,0},{5265,64641,0},{5267,64653,0},{5265,64656,0}, {5267,64663,0},{5270,64649,0},{5268,64641,0},{5272,64643,0},{5277,64639,0}, {5275,64633,0},{5272,64633,0},{5262,64621,0},{5262,64611,0},{5258,64608,0}, {5260,64603,0},{5263,64609,0},{5260,64596,0},{5263,64583,0},{5267,64581,0}, {5265,64578,0},{5263,64579,0},{5260,64566,0},{5258,64566,0},{5255,64548,0}, {5257,64543,0},{5260,64554,0},{5268,64569,0},{5273,64576,0},{5275,64586,0}, {5280,64588,0},{5283,64593,0},{5288,64593,0},{5293,64601,0},{5293,64599,0}, {5293,64589,0},{5297,64593,0},{5315,64609,0},{5312,64621,0},{5313,64628,0}, {5315,64624,0},{5315,64638,0},{5317,64629,0},{5317,64639,0},{5315,64639,0}, {5313,64643,0},{5315,64643,0},{5318,64643,0},{5322,64646,0},{5320,64641,0}, {5322,64636,0},{5323,64639,0},{5325,64639,0},{5325,64643,0},{5327,64643,0}, {5327,64633,0},{5323,64618,0},{5322,64588,0},{5323,64581,0},{5328,64581,0}, {5327,64579,0},{5323,64578,0},{5323,64574,0},{5325,64573,0},{5328,64576,0}, {5332,64574,0},{5332,64578,0},{5333,64579,0},{5335,64576,0},{5333,64576,0}, {5333,64571,0},{5333,64569,0},{5337,64574,0},{5335,64568,0},{5332,64563,0}, {5330,64559,0},{5332,64551,0},{5332,64546,0},{5335,64548,0},{5335,64546,0}, {5338,64558,0},{5340,64558,0},{5340,64554,0},{5342,64556,0},{5340,64549,0}, {5342,64548,0},{5342,64549,0},{5342,64546,0},{5338,64543,0},{5337,64539,0}, {5338,64533,0},{5342,64529,0},{5340,64524,0},{5342,64521,0},{5340,64518,0}, {5345,64521,0},{5345,64531,0},{5350,64524,0},{5352,64524,0},{5353,64521,0}, {5355,64516,0},{5355,64526,0},{5357,64526,0},{5357,64536,0},{5360,64531,0}, {5362,64548,0},{5368,64544,0},{5375,64546,0},{5378,64558,0},{5377,64576,0}, {5380,64581,0},{5382,64574,0},{5383,64576,0},{5383,64574,0},{5387,64579,0}, {5387,64578,0},{5390,64579,0},{5390,64559,0},{5387,64553,0},{5385,64544,0}, {5387,64543,0},{5395,64546,0},{5393,64554,0},{5392,64556,0},{5392,64558,0}, {5397,64556,0},{5397,64554,0},{5395,64554,0},{5397,64553,0},{5400,64551,0}, {5402,64546,0},{5405,64546,0},{5407,64549,0},{5408,64548,0},{5412,64553,0}, {5412,64548,0},{5408,64546,0},{5407,64543,0},{5407,64539,0},{5410,64538,0}, {5412,64544,0},{5413,64539,0},{5415,64543,0},{5417,64539,0},{5418,64541,0}, {5418,64543,0},{5422,64534,0},{5418,64534,0},{5418,64531,0},{5417,64533,0}, {5415,64528,0},{5413,64529,0},{5412,64528,0},{5408,64529,0},{5410,64524,0}, {5420,64526,0},{5422,64529,0},{5423,64524,0},{5423,64528,0},{5425,64528,0}, {5430,64536,0},{5427,64539,0},{5425,64546,0},{5422,64544,0},{5423,64538,0}, {5422,64539,0},{5420,64546,0},{5427,64551,0},{5425,64559,0},{5428,64556,0}, {5430,64549,0},{5433,64556,0},{5432,64568,0},{5432,64588,0},{5428,64598,0}, {5432,64603,0},{5430,64609,0},{5427,64611,0},{5427,64616,0},{5425,64614,0}, {5423,64616,0},{5422,64614,0},{5420,64619,0},{5417,64623,0},{5428,64631,0}, {5428,64643,0},{5425,64653,0},{5427,64659,0},{5427,64663,0},{5427,64668,0}, {5420,64678,0},{5420,64684,0},{5425,64678,0},{5425,64674,0},{5428,64678,0}, {5427,64689,0},{5432,64679,0},{5430,64686,0},{5432,64686,0},{5433,64679,0}, {5432,64671,0},{5435,64669,0},{5438,64679,0},{5440,64679,0},{5440,64683,0}, {5443,64689,0},{5445,64688,0},{5447,64689,0},{5445,64693,0},{5447,64708,0}, {5452,64711,0},{5455,64714,0},{5462,64721,0},{5460,64723,0},{5462,64726,0}, {5463,64723,0},{5460,64709,0},{5460,64706,0},{5463,64708,0},{5463,64706,0}, {5462,64701,0},{5455,64691,0},{5458,64691,0},{5462,64698,0},{5460,64689,0}, {5462,64688,0},{5460,64678,0},{5462,64669,0},{5465,64656,0},{5468,64658,0}, {5468,64656,0},{5470,64661,0},{5473,64661,0},{5477,64669,0},{5475,64691,0}, {5477,64689,0},{5478,64683,0},{5478,64689,0},{5475,64696,0},{5482,64681,0}, {5483,64688,0},{5483,64704,0},{5485,64698,0},{5487,64698,0},{5487,64704,0}, {5488,64706,0},{5490,64703,0},{5490,64698,0},{5488,64698,0},{5490,64691,0}, {5493,64691,0},{5495,64699,0},{5495,64696,0},{5500,64691,0},{5500,64696,0}, {5503,64696,0},{5503,64701,0},{5505,64701,0},{5505,64704,0},{5507,64703,0}, {5508,64706,0},{5510,64704,0},{5515,64708,0},{5515,64719,0},{5515,64721,0}, {5515,64723,0},{5512,64719,0},{5515,64728,0},{5517,64734,0},{5520,64734,0}, {5522,64738,0},{5520,64741,0},{5518,64741,0},{5518,64746,0},{5517,64748,0}, {5515,64746,0},{5515,64751,0},{5513,64746,0},{5513,64751,0},{5515,64751,0}, {5518,64753,0},{5518,64749,0},{5522,64748,0},{5522,64753,0},{5525,64756,0}, {5517,64754,0},{5517,64761,0},{5515,64766,0},{5510,64766,0},{5513,64769,0}, {5522,64766,0},{5517,64764,0},{5518,64763,0},{5520,64763,0},{5520,64756,0}, {5525,64761,0},{5525,64766,0},{5528,64771,0},{5523,64776,0},{5518,64774,0}, {5515,64781,0},{5512,64783,0},{5508,64783,0},{5503,64773,0},{5503,64778,0}, {5503,64779,0},{5500,64773,0},{5497,64771,0},{5502,64779,0},{5505,64789,0}, {5508,64788,0},{5513,64788,0},{5520,64781,0},{5525,64784,0},{5527,64783,0}, {5527,64788,0},{5528,64788,0},{5527,64791,0},{5530,64799,0},{5530,64803,0}, {5528,64801,0},{5527,64809,0},{5530,64803,0},{5533,64799,0},{5533,64803,0}, {5535,64798,0},{5537,64796,0},{5535,64811,0},{5533,64818,0},{5528,64823,0}, {5523,64843,0},{5522,64841,0},{5513,64819,0},{5507,64811,0},{5863,65036,128}, {5862,65039,0},{5862,65048,0},{5858,65053,0},{5857,65054,0},{5858,65059,0}, {5860,65056,0},{5860,65058,0},{5857,65061,0},{5855,65069,0},{5853,65069,0}, {5845,65059,0},{5848,65068,0},{5852,65069,0},{5853,65076,0},{5858,65076,0}, {5857,65084,0},{5855,65093,0},{5852,65093,0},{5845,65088,0},{5853,65099,0}, {5853,65108,0},{5852,65113,0},{5853,65113,0},{5855,65114,0},{5853,65118,0}, {5857,65123,0},{5855,65129,0},{5860,65134,0},{5857,65134,0},{5857,65146,0}, {5857,65158,0},{5862,65169,0},{5862,65181,0},{5860,65181,0},{5860,65184,0}, {5862,65189,0},{5860,65199,0},{5862,65201,0},{5865,65194,0},{5867,65199,0}, {5865,65201,0},{5865,65219,0},{5863,65221,0},{5865,65233,0},{5863,65234,0}, {5850,65223,0},{5847,65226,0},{5847,65234,0},{5837,65224,0},{5835,65221,0}, {5830,65216,0},{5827,65199,0},{5817,65184,0},{5807,65161,0},{5803,65154,0}, {5800,65151,0},{5795,65138,0},{5787,65134,0},{5787,65128,0},{5785,65124,0}, {5785,65116,0},{5783,65118,0},{5782,65131,0},{5783,65139,0},{5783,65143,0}, {5780,65141,0},{5782,65151,0},{5787,65156,0},{5785,65159,0},{5777,65149,0}, {5768,65138,0},{5768,65134,0},{5773,65133,0},{5772,65126,0},{5768,65119,0}, {5768,65106,0},{5765,65106,0},{5760,65094,0},{5757,65093,0},{5767,65113,0}, {5767,65128,0},{5768,65131,0},{5767,65136,0},{5760,65126,0},{5758,65124,0}, {5757,65126,0},{5757,65119,0},{5755,65118,0},{5755,65109,0},{5753,65114,0}, {5750,65111,0},{5748,65116,0},{5750,65119,0},{5752,65121,0},{5755,65133,0}, {5757,65133,0},{5758,65128,0},{5758,65151,0},{5765,65168,0},{5767,65181,0}, {5770,65188,0},{5772,65203,0},{5767,65234,0},{5770,65251,0},{5768,65253,0}, {5768,65263,0},{5767,65298,0},{5767,65303,0},{5768,65308,0},{5767,65318,0}, {5768,65324,0},{5768,65336,0},{5767,65338,0},{5767,65344,0},{5762,65349,0}, {5760,65354,0},{5757,65354,0},{5750,65359,0},{5750,65358,0},{5747,65358,0}, {5747,65361,0},{5727,65334,0},{5715,65329,0},{5712,65331,0},{5697,65318,0}, {5692,65318,0},{5682,65309,0},{5677,65299,0},{5677,65296,0},{5670,65293,0}, {5668,65294,0},{5665,65286,0},{5662,65289,0},{5657,65283,0},{5650,65264,0}, {5647,65263,0},{5647,65256,0},{5645,65249,0},{5647,65243,0},{5645,65239,0}, {5645,65231,0},{5637,65213,0},{5637,65204,0},{5635,65209,0},{5637,65218,0}, {5645,65246,0},{5643,65256,0},{5638,65254,0},{5637,65253,0},{5637,65254,0}, {5633,65259,0},{5632,65273,0},{5627,65278,0},{5622,65268,0},{5618,65256,0}, {5620,65244,0},{5620,65239,0},{5612,65223,0},{5605,65219,0},{5605,65209,0}, {5602,65196,0},{5605,65178,0},{5605,65168,0},{5602,65168,0},{5600,65171,0}, {5600,65184,0},{5598,65199,0},{5600,65203,0},{5598,65208,0},{5597,65223,0}, {5595,65228,0},{5595,65236,0},{5597,65241,0},{5597,65246,0},{5602,65251,0}, {5603,65251,0},{5607,65256,0},{5607,65271,0},{5602,65279,0},{5600,65279,0}, {5598,65289,0},{5593,65304,0},{5590,65323,0},{5588,65323,0},{5587,65328,0}, {5575,65338,0},{5563,65354,0},{5565,65358,0},{5563,65359,0},{5562,65361,0}, {5560,65359,0},{5560,65368,0},{5558,65373,0},{5553,65373,0},{5548,65378,0}, {5542,65379,0},{5538,65376,0},{5532,65381,0},{5528,65379,0},{5518,65386,0}, {5515,65384,0},{5500,65394,0},{5497,65401,0},{5492,65399,0},{5477,65406,0}, {5472,65411,0},{5470,65419,0},{5468,65416,0},{5465,65419,0},{5460,65418,0}, {5460,65419,0},{5460,65423,0},{5463,65423,0},{5458,65439,0},{5455,65458,0}, {5450,65473,0},{5448,65479,0},{5445,65484,0},{5442,65484,0},{5437,65491,0}, {5425,65499,0},{5422,65509,0},{5417,65511,0},{5412,65528,0},{5408,65519,0}, {5402,65514,0},{5387,65524,0},{5377,0,0},{5363,13,0},{5358,13,0},{5357,12,0}, {5360,13,0},{5362,12,0},{5363,5,0},{5363,0,0},{5362,65529,0},{5363,65524,0}, {5372,65511,0},{5373,65508,0},{5370,65494,0},{5370,65481,0},{5372,65473,0}, {5370,65464,0},{5368,65466,0},{5370,65474,0},{5367,65483,0},{5368,65489,0}, {5370,65506,0},{5368,65511,0},{5363,65516,0},{5357,65526,0},{5357,65531,0}, {5353,0,0},{5348,8,0},{5347,15,0},{5343,18,0},{5340,23,0},{5323,33,0},{5317,35,0}, {5308,33,0},{5302,17,0},{5292,7,0},{5292,3,0},{5288,0,0},{5288,8,0},{5288,12,0}, {5287,17,0},{5280,23,0},{5280,33,0},{5277,38,0},{5278,38,0},{5283,43,0}, {5293,48,0},{5297,55,0},{5295,60,0},{5297,67,0},{5295,85,0},{5297,88,0}, {5295,90,0},{5295,97,0},{5295,102,0},{5297,97,0},{5297,98,0},{5297,103,0}, {5295,110,0},{5293,128,0},{5287,143,0},{5277,165,0},{5273,168,0},{5262,175,0}, {5255,175,0},{5248,177,0},{5245,173,0},{5238,173,0},{5227,163,0},{5218,163,0}, {5208,158,0},{5205,147,0},{5193,133,0},{5200,125,0},{5195,127,0},{5197,117,0}, {5195,112,0},{5195,128,0},{5187,120,0},{5187,125,0},{5188,127,0},{5187,130,0}, {5185,128,0},{5180,120,0},{5177,113,0},{5178,103,0},{5180,100,0},{5180,93,0}, {5177,88,0},{5175,85,0},{5173,72,0},{5170,78,0},{5172,80,0},{5175,92,0}, {5173,95,0},{5168,97,0},{5163,93,0},{5163,90,0},{5163,82,0},{5162,87,0}, {5160,87,0},{5162,90,0},{5162,95,0},{5160,95,0},{5153,80,0},{5153,65,0}, {5150,57,0},{5150,47,0},{5147,43,0},{5145,38,0},{5145,45,0},{5148,48,0}, {5148,55,0},{5147,70,0},{5145,73,0},{5143,72,0},{5143,65,0},{5142,60,0}, {5142,55,0},{5138,62,0},{5138,65,0},{5138,68,0},{5138,70,0},{5142,70,0}, {5140,73,0},{5142,73,0},{5145,75,0},{5142,90,0},{5137,95,0},{5135,90,0}, {5137,80,0},{5133,92,0},{5138,122,0},{5140,145,0},{5135,143,0},{5132,138,0}, {5122,142,0},{5115,138,0},{5113,135,0},{5110,122,0},{5108,118,0},{5107,110,0}, {5103,103,0},{5098,97,0},{5092,98,0},{5093,80,0},{5092,73,0},{5087,67,0}, {5082,37,0},{5075,27,0},{5073,23,0},{5078,0,0},{5083,65516,0},{5077,65466,0}, {5075,65463,0},{5077,65461,0},{5073,65461,0},{5073,65454,0},{5077,65444,0}, {5080,65449,0},{5083,65446,0},{5082,65444,0},{5083,65443,0},{5083,65439,0}, {5082,65441,0},{5077,65441,0},{5078,65434,0},{5080,65438,0},{5083,65438,0}, {5083,65433,0},{5080,65433,0},{5078,65428,0},{5080,65426,0},{5083,65429,0}, {5085,65428,0},{5083,65419,0},{5082,65424,0},{5078,65421,0},{5083,65406,0}, {5088,65399,0},{5092,65389,0},{5090,65389,0},{5088,65396,0},{5082,65406,0}, {5078,65401,0},{5077,65389,0},{5072,65381,0},{5073,65368,0},{5073,65361,0}, {5072,65363,0},{5072,65354,0},{5072,65349,0},{5068,65343,0},{5072,65341,0}, {5072,65331,0},{5068,65329,0},{5070,65333,0},{5067,65333,0},{5067,65343,0}, {5065,65341,0},{5063,65346,0},{5062,65343,0},{5058,65341,0},{5058,65331,0}, {5058,65329,0},{5062,65316,0},{5063,65296,0},{5062,65293,0},{5058,65291,0}, {5055,65294,0},{5050,65291,0},{5057,65291,0},{5065,65274,0},{5070,65258,0}, {5073,65246,0},{5070,65239,0},{5068,65226,0},{5068,65214,0},{5060,65199,0}, {5062,65194,0},{5067,65189,0},{5060,65193,0},{5052,65186,0},{5047,65188,0}, {5043,65181,0},{5040,65183,0},{5038,65188,0},{5037,65186,0},{5035,65184,0}, {5033,65179,0},{5032,65179,0},{5030,65173,0},{5027,65171,0},{5022,65171,0}, {5020,65164,0},{5022,65159,0},{5022,65158,0},{5022,65154,0},{5027,65149,0}, {5030,65141,0},{5030,65133,0},{5032,65124,0},{5035,65123,0},{5037,65116,0}, {5035,65114,0},{5035,65119,0},{5032,65118,0},{5032,65114,0},{5035,65109,0}, {5035,65104,0},{5035,65094,0},{5033,65089,0},{5032,65071,0},{5032,65069,0}, {5033,65068,0},{5033,65061,0},{5023,65056,0},{5022,65049,0},{5020,65046,0}, {5020,65041,0},{5015,65038,0},{5013,65034,0},{5015,65036,0},{5015,65034,0}, {5022,65034,0},{5022,65033,0},{5020,65029,0},{5017,65031,0},{5015,65029,0}, {5015,65031,0},{5013,65028,0},{5010,65028,0},{5010,65024,0},{5008,65029,0}, {5005,65029,0},{5000,65026,0},{5000,65019,0},{4995,65016,0},{5000,65011,0}, {5007,65008,0},{5008,65003,0},{5013,64988,0},{5012,64983,0},{5008,64983,0}, {5005,64979,0},{5003,64969,0},{5007,64964,0},{5008,64966,0},{5013,64964,0}, {5015,64968,0},{5022,64984,0},{5020,64993,0},{5023,64998,0},{5023,65003,0}, {5027,65009,0},{5032,65014,0},{5035,65021,0},{5040,65021,0},{5042,65031,0}, {5047,65034,0},{5050,65033,0},{5053,65034,0},{5053,65038,0},{5057,65041,0}, {5055,65043,0},{5058,65044,0},{5060,65058,0},{5067,65061,0},{5070,65068,0}, {5073,65071,0},{5078,65081,0},{5090,65081,0},{5102,65084,0},{5102,65089,0}, {5098,65101,0},{5098,65104,0},{5103,65113,0},{5107,65116,0},{5113,65111,0}, {5115,65114,0},{5118,65114,0},{5118,65116,0},{5123,65158,0},{5122,65176,0}, {5122,65179,0},{5120,65193,0},{5118,65196,0},{5117,65208,0},{5120,65216,0}, {5120,65229,0},{5122,65236,0},{5123,65236,0},{5132,65234,0},{5132,65238,0}, {5138,65239,0},{5140,65244,0},{5148,65258,0},{5150,65264,0},{5172,65289,0}, {5175,65298,0},{5178,65296,0},{5175,65296,0},{5173,65288,0},{5158,65264,0}, {5153,65248,0},{5153,65239,0},{5155,65239,0},{5155,65238,0},{5153,65234,0}, {5148,65224,0},{5145,65223,0},{5145,65219,0},{5140,65218,0},{5138,65209,0}, {5138,65194,0},{5140,65181,0},{5147,65171,0},{5147,65164,0},{5155,65159,0}, {5162,65153,0},{5160,65138,0},{5158,65136,0},{5155,65138,0},{5155,65121,0}, {5153,65121,0},{5153,65114,0},{5155,65106,0},{5158,65108,0},{5162,65108,0}, {5163,65113,0},{5162,65114,0},{5163,65124,0},{5165,65128,0},{5167,65129,0}, {5165,65123,0},{5168,65118,0},{5167,65106,0},{5172,65098,0},{5173,65098,0}, {5172,65104,0},{5175,65099,0},{5178,65099,0},{5175,65096,0},{5177,65091,0}, {5173,65093,0},{5172,65069,0},{5165,65066,0},{5165,65061,0},{5163,65058,0}, {5163,65049,0},{5160,65043,0},{5162,65031,0},{5165,65031,0},{5167,65026,0}, {5168,65024,0},{5167,65029,0},{5168,65033,0},{5168,65039,0},{5172,65048,0}, {5170,65038,0},{5172,65019,0},{5168,65019,0},{5172,65013,0},{5173,65011,0}, {5173,65016,0},{5177,65019,0},{5177,65026,0},{5185,65024,0},{5187,65018,0}, {5187,65004,0},{5192,65006,0},{5192,65013,0},{5195,65018,0},{5197,65026,0}, {5202,65028,0},{5202,65038,0},{5200,65039,0},{5202,65044,0},{5203,65044,0}, {5202,65048,0},{5202,65053,0},{5205,65053,0},{5207,65059,0},{5210,65063,0}, {5210,65066,0},{5213,65066,0},{5213,65086,0},{5222,65098,0},{5222,65103,0}, {5225,65113,0},{5232,65121,0},{5238,65126,0},{5252,65131,0},{5253,65136,0}, {5255,65141,0},{5255,65129,0},{5260,65123,0},{5270,65129,0},{5273,65138,0}, {5272,65133,0},{5273,65129,0},{5278,65123,0},{5280,65121,0},{5285,65124,0}, {5290,65119,0},{5288,65098,0},{5287,65091,0},{5282,65088,0},{5280,65089,0}, {5277,65084,0},{5282,65076,0},{5280,65073,0},{5280,65064,0},{5278,65061,0}, {5280,65061,0},{5285,65064,0},{5292,65074,0},{5293,65083,0},{5303,65099,0}, {5312,65101,0},{5310,65104,0},{5312,65106,0},{5322,65118,0},{5323,65123,0}, {5323,65129,0},{5328,65148,0},{5328,65153,0},{5333,65149,0},{5332,65158,0}, {5328,65163,0},{5328,65174,0},{5335,65198,0},{5335,65206,0},{5333,65208,0}, {5323,65228,0},{5327,65229,0},{5338,65216,0},{5340,65219,0},{5343,65231,0}, {5340,65234,0},{5332,65243,0},{5328,65253,0},{5330,65261,0},{5333,65263,0}, {5333,65258,0},{5333,65248,0},{5338,65239,0},{5355,65226,0},{5368,65238,0}, {5373,65253,0},{5373,65233,0},{5380,65229,0},{5392,65231,0},{5395,65244,0}, {5393,65248,0},{5397,65253,0},{5397,65249,0},{5400,65251,0},{5400,65246,0}, {5403,65244,0},{5407,65249,0},{5410,65254,0},{5412,65256,0},{5418,65251,0}, {5420,65254,0},{5420,65248,0},{5415,65243,0},{5415,65239,0},{5420,65233,0}, {5412,65228,0},{5408,65221,0},{5407,65223,0},{5412,65213,0},{5415,65213,0}, {5417,65211,0},{5417,65214,0},{5427,65216,0},{5420,65211,0},{5420,65204,0}, {5428,65194,0},{5435,65194,0},{5452,65173,0},{5458,65178,0},{5465,65179,0}, {5472,65184,0},{5477,65193,0},{5480,65193,0},{5487,65198,0},{5490,65204,0}, {5488,65204,0},{5487,65209,0},{5490,65211,0},{5490,65208,0},{5492,65208,0}, {5495,65214,0},{5492,65226,0},{5493,65233,0},{5495,65233,0},{5495,65228,0}, {5497,65229,0},{5497,65234,0},{5498,65234,0},{5497,65223,0},{5497,65211,0}, {5498,65193,0},{5498,65191,0},{5498,65184,0},{5497,65183,0},{5498,65179,0}, {5488,65179,0},{5487,65176,0},{5487,65164,0},{5485,65161,0},{5487,65156,0}, {5485,65154,0},{5487,65154,0},{5487,65156,0},{5485,65151,0},{5482,65154,0}, {5477,65139,0},{5477,65131,0},{5483,65131,0},{5477,65128,0},{5477,65123,0}, {5483,65114,0},{5487,65116,0},{5483,65109,0},{5487,65101,0},{5490,65099,0}, {5492,65096,0},{5488,65096,0},{5487,65093,0},{5483,65094,0},{5480,65103,0}, {5478,65099,0},{5470,65101,0},{5468,65098,0},{5470,65086,0},{5478,65076,0}, {5483,65058,0},{5487,65056,0},{5487,65053,0},{5483,65043,0},{5480,65039,0}, {5470,65046,0},{5468,65049,0},{5465,65048,0},{5463,65051,0},{5463,65049,0}, {5465,65041,0},{5472,65041,0},{5485,65023,0},{5493,65018,0},{5500,65019,0}, {5502,65024,0},{5500,65028,0},{5493,65029,0},{5490,65036,0},{5492,65038,0}, {5500,65031,0},{5503,65029,0},{5513,65034,0},{5522,65049,0},{5532,65053,0}, {5535,65058,0},{5542,65061,0},{5545,65073,0},{5548,65074,0},{5553,65071,0}, {5553,65068,0},{5555,65071,0},{5560,65066,0},{5563,65054,0},{5565,65054,0}, {5570,65044,0},{5575,65051,0},{5582,65046,0},{5588,65046,0},{5593,65048,0}, {5597,65058,0},{5593,65064,0},{5592,65088,0},{5595,65071,0},{5602,65058,0}, {5607,65053,0},{5602,65054,0},{5598,65059,0},{5598,65056,0},{5598,65051,0}, {5605,65048,0},{5612,65054,0},{5608,65049,0},{5612,65048,0},{5615,65046,0}, {5610,65044,0},{5607,65048,0},{5598,65046,0},{5598,65041,0},{5597,65044,0}, {5587,65038,0},{5587,65031,0},{5593,65029,0},{5597,65026,0},{5590,65028,0}, {5593,65019,0},{5597,65018,0},{5597,65016,0},{5592,65016,0},{5588,65013,0}, {5583,65016,0},{5585,65004,0},{5592,65001,0},{5598,65001,0},{5605,65006,0}, {5610,65014,0},{5612,65016,0},{5615,65028,0},{5620,65031,0},{5627,65043,0}, {5623,65034,0},{5623,65029,0},{5617,65024,0},{5612,65011,0},{5600,64998,0}, {5600,64993,0},{5602,64991,0},{5595,64991,0},{5593,64993,0},{5587,64996,0}, {5578,65004,0},{5577,65003,0},{5575,64998,0},{5572,64991,0},{5565,64988,0}, {5560,64988,0},{5558,64991,0},{5557,64988,0},{5553,64988,0},{5543,64981,0}, {5542,64978,0},{5542,64981,0},{5537,64984,0},{5532,64978,0},{5528,64964,0}, {5530,64954,0},{5540,64956,0},{5543,64964,0},{5553,64966,0},{5557,64964,0}, {5562,64968,0},{5567,64968,0},{5583,64991,0},{5577,64976,0},{5580,64969,0}, {5583,64969,0},{5593,64979,0},{5588,64968,0},{5593,64968,0},{5603,64979,0}, {5602,64974,0},{5593,64968,0},{5593,64964,0},{5598,64966,0},{5602,64971,0}, {5605,64973,0},{5608,64978,0},{5608,64983,0},{5612,64979,0},{5618,64984,0}, {5612,64976,0},{5613,64974,0},{5622,64981,0},{5623,64976,0},{5633,64978,0}, {5635,64983,0},{5645,64991,0},{5643,65011,0},{5647,65001,0},{5645,64996,0}, {5650,64993,0},{5647,64991,0},{5648,64989,0},{5652,64993,0},{5650,64998,0}, {5652,65004,0},{5655,65011,0},{5652,64999,0},{5655,64994,0},{5662,65001,0}, {5663,65006,0},{5665,65004,0},{5668,65014,0},{5668,65024,0},{5670,65029,0}, {5668,65023,0},{5670,65011,0},{5682,65024,0},{5677,65016,0},{5677,65013,0}, {5670,65008,0},{5668,65001,0},{5667,64999,0},{5662,64988,0},{5653,64979,0}, {5648,64966,0},{5650,64964,0},{5652,64958,0},{5653,64959,0},{5655,64946,0}, {5658,64939,0},{5663,64934,0},{5665,64941,0},{5665,64948,0},{5670,64961,0}, {5667,64973,0},{5668,64979,0},{5668,64968,0},{5670,64959,0},{5667,64953,0}, {5667,64948,0},{5668,64916,0},{5672,64913,0},{5675,64921,0},{5675,64933,0}, {5677,64939,0},{5675,64944,0},{5675,64949,0},{5678,64948,0},{5677,64949,0}, {5678,64958,0},{5682,64951,0},{5683,64949,0},{5685,64959,0},{5683,64963,0}, {5687,64969,0},{5687,64964,0},{5685,64963,0},{5687,64958,0},{5688,64963,0}, {5688,64943,0},{5690,64946,0},{5690,64951,0},{5692,64948,0},{5700,64953,0}, {5702,64963,0},{5700,64963,0},{5697,64971,0},{5700,64984,0},{5698,64974,0}, {5700,64969,0},{5702,64968,0},{5703,64968,0},{5705,64958,0},{5708,64958,0}, {5712,64964,0},{5712,64971,0},{5708,64983,0},{5710,64993,0},{5710,64981,0}, {5713,64979,0},{5715,64969,0},{5717,64968,0},{5720,64973,0},{5722,64973,0}, {5723,64971,0},{5725,64973,0},{5727,64981,0},{5725,64984,0},{5722,64994,0}, {5723,64998,0},{5723,64989,0},{5727,64983,0},{5728,64966,0},{5728,64963,0}, {5733,64969,0},{5737,64984,0},{5742,64991,0},{5737,64981,0},{5735,64976,0}, {5737,64973,0},{5738,64976,0},{5740,64974,0},{5735,64961,0},{5735,64954,0}, {5738,64954,0},{5740,64956,0},{5742,64954,0},{5743,64956,0},{5745,64949,0}, {5748,64949,0},{5757,64953,0},{5757,64958,0},{5753,64961,0},{5755,64964,0}, {5750,64971,0},{5753,64971,0},{5752,64974,0},{5753,64984,0},{5755,64978,0}, {5755,64969,0},{5757,64966,0},{5757,64968,0},{5758,64963,0},{5762,64961,0}, {5763,64954,0},{5770,64958,0},{5770,64968,0},{5772,64966,0},{5772,64961,0}, {5775,64954,0},{5778,64956,0},{5785,64953,0},{5787,64966,0},{5785,64968,0}, {5778,64969,0},{5777,64974,0},{5778,64974,0},{5778,64978,0},{5783,64978,0}, {5788,64971,0},{5792,64974,0},{5790,64978,0},{5792,64981,0},{5787,64981,0}, {5785,64989,0},{5790,64994,0},{5785,65014,0},{5787,65011,0},{5792,64998,0}, {5793,64996,0},{5793,64999,0},{5790,65006,0},{5792,65013,0},{5787,65023,0}, {5783,65028,0},{5785,65028,0},{5792,65014,0},{5793,65018,0},{5795,65016,0}, {5798,65006,0},{5802,64999,0},{5803,64993,0},{5805,64993,0},{5807,64989,0}, {5810,64993,0},{5807,64999,0},{5808,65001,0},{5807,65009,0},{5808,65011,0}, {5812,65009,0},{5812,65013,0},{5813,65008,0},{5813,65013,0},{5815,65008,0}, {5817,65008,0},{5818,65003,0},{5820,65003,0},{5823,64996,0},{5825,64998,0}, {5822,65008,0},{5825,65016,0},{5823,65019,0},{5827,65026,0},{5823,65041,0}, {5825,65038,0},{5825,65043,0},{5825,65031,0},{5828,65023,0},{5832,65024,0}, {5832,65021,0},{5833,65019,0},{5840,65023,0},{5838,65033,0},{5840,65031,0}, {5842,65026,0},{5842,65029,0},{5843,65028,0},{5845,65031,0},{5843,65038,0}, {5847,65034,0},{5848,65026,0},{5852,65024,0},{5855,65033,0},{5863,65036,0}, {3567,3458,128},{3563,3457,0},{3558,3443,0},{3553,3438,0},{3540,3412,0}, {3537,3408,0},{3532,3405,0},{3532,3397,0},{3527,3392,0},{3517,3390,0},{3503,3403,0}, {3495,3410,0},{3498,3397,0},{3497,3390,0},{3493,3387,0},{3497,3382,0},{3497,3377,0}, {3497,3370,0},{3495,3367,0},{3492,3363,0},{3487,3363,0},{3482,3360,0},{3482,3355,0}, {3478,3352,0},{3475,3342,0},{3477,3340,0},{3475,3340,0},{3472,3333,0},{3472,3328,0}, {3470,3325,0},{3470,3312,0},{3468,3307,0},{3463,3300,0},{3460,3300,0},{3457,3303,0}, {3457,3298,0},{3457,3293,0},{3465,3292,0},{3467,3288,0},{3467,3278,0},{3463,3272,0}, {3467,3262,0},{3470,3255,0},{3470,3250,0},{3475,3240,0},{3483,3238,0},{3485,3235,0}, {3490,3232,0},{3492,3233,0},{3495,3230,0},{3498,3232,0},{3507,3227,0},{3510,3228,0}, {3503,3238,0},{3505,3243,0},{3507,3247,0},{3517,3255,0},{3518,3265,0},{3518,3273,0}, {3515,3282,0},{3515,3287,0},{3518,3292,0},{3527,3293,0},{3532,3293,0},{3540,3292,0}, {3535,3307,0},{3537,3312,0},{3535,3323,0},{3533,3338,0},{3533,3357,0},{3537,3367,0}, {3540,3375,0},{3540,3385,0},{3543,3397,0},{3550,3413,0},{3555,3418,0},{3555,3423,0}, {3557,3430,0},{3562,3437,0},{3565,3450,0},{3567,3450,0},{3568,3455,0},{3568,3458,0}, {3567,3458,0},{2623,5050,128},{2623,5055,0},{2623,5058,0},{2620,5062,0}, {2618,5060,0},{2620,5057,0},{2618,5055,0},{2613,5062,0},{2603,5063,0},{2587,5060,0}, {2578,5057,0},{2590,5053,0},{2593,5047,0},{2597,5047,0},{2605,5048,0},{2615,5045,0}, {2622,5045,0},{2623,5047,0},{2623,5050,0},{760,7980,128},{760,7978,0},{757,7978,0}, {727,7983,0},{720,7983,0},{718,7985,0},{715,7987,0},{712,7985,0},{715,7983,0}, {720,7982,0},{720,7980,0},{702,7987,0},{698,7987,0},{693,7983,0},{680,7985,0}, {657,7997,0},{648,7998,0},{647,7997,0},{645,7998,0},{638,8000,0},{632,8002,0}, {627,8003,0},{613,8010,0},{603,8018,0},{597,8033,0},{595,8040,0},{597,8043,0}, {593,8047,0},{593,8057,0},{592,8058,0},{593,8062,0},{595,8065,0},{595,8072,0}, {603,8082,0},{603,8087,0},{610,8098,0},{612,8112,0},{615,8117,0},{618,8120,0}, {617,8120,0},{620,8132,0},{625,8142,0},{635,8152,0},{643,8167,0},{662,8178,0}, {667,8178,0},{677,8183,0},{680,8183,0},{683,8185,0},{700,8188,0},{712,8187,0}, {728,8188,0},{747,8183,0},{747,8182,0},{740,8180,0},{747,8180,0},{745,8177,0}, {747,8178,0},{750,8175,0},{752,8177,0},{753,8175,0},{757,8177,0},{762,8175,0}, {763,8173,0},{762,8172,0},{765,8170,0},{772,8167,0},{773,8160,0},{777,8162,0}, {773,8167,0},{770,8168,0},{772,8172,0},{775,8170,0},{778,8165,0},{783,8163,0}, {783,8160,0},{790,8157,0},{792,8160,0},{797,8155,0},{798,8157,0},{800,8157,0}, {798,8153,0},{800,8153,0},{800,8152,0},{803,8150,0},{805,8148,0},{812,8147,0}, {808,8145,0},{808,8142,0},{813,8138,0},{818,8140,0},{810,8143,0},{817,8145,0}, {820,8142,0},{833,8140,0},{835,8137,0},{837,8135,0},{840,8135,0},{837,8138,0}, {848,8137,0},{852,8133,0},{850,8128,0},{847,8128,0},{845,8127,0},{847,8122,0}, {850,8120,0},{852,8117,0},{848,8115,0},{850,8113,0},{853,8117,0},{850,8122,0}, {857,8120,0},{857,8122,0},{853,8123,0},{855,8125,0},{862,8123,0},{860,8120,0}, {862,8123,0},{865,8123,0},{870,8118,0},{872,8118,0},{870,8117,0},{875,8117,0}, {880,8112,0},{887,8108,0},{888,8105,0},{897,8098,0},{893,8097,0},{893,8093,0}, {893,8092,0},{895,8092,0},{897,8093,0},{897,8092,0},{898,8093,0},{903,8088,0}, {903,8092,0},{900,8095,0},{900,8097,0},{902,8095,0},{912,8090,0},{910,8088,0}, {912,8088,0},{913,8087,0},{913,8083,0},{915,8085,0},{913,8088,0},{927,8082,0}, {927,8080,0},{923,8082,0},{927,8078,0},{930,8073,0},{930,8077,0},{928,8078,0}, {930,8080,0},{943,8067,0},{965,8037,0},{977,8027,0},{983,8025,0},{982,8015,0}, {980,8013,0},{977,8018,0},{977,8023,0},{967,8032,0},{957,8045,0},{965,8032,0}, {975,8023,0},{977,8013,0},{982,8012,0},{982,7998,0},{977,7992,0},{968,7995,0}, {967,8000,0},{965,8002,0},{960,8012,0},{960,8013,0},{963,8010,0},{958,8018,0}, {960,8020,0},{963,8017,0},{965,8018,0},{960,8027,0},{952,8038,0},{953,8045,0}, {952,8048,0},{945,8062,0},{945,8057,0},{948,8048,0},{950,8040,0},{945,8032,0}, {947,8027,0},{950,8028,0},{953,8025,0},{955,8017,0},{960,8007,0},{960,8005,0}, {958,8005,0},{952,8015,0},{947,8020,0},{945,8017,0},{942,8013,0},{940,8005,0}, {933,8007,0},{930,8012,0},{927,8012,0},{925,8012,0},{902,8005,0},{895,7995,0}, {893,7992,0},{887,7993,0},{880,7992,0},{873,7995,0},{863,7995,0},{860,7992,0}, {857,7992,0},{853,7987,0},{847,7987,0},{843,7985,0},{838,7985,0},{827,7983,0}, {823,7980,0},{820,7982,0},{817,7982,0},{813,7983,0},{807,7978,0},{800,7983,0}, {798,7980,0},{798,7975,0},{802,7973,0},{805,7975,0},{808,7973,0},{813,7973,0}, {817,7973,0},{820,7973,0},{822,7977,0},{825,7978,0},{827,7975,0},{828,7975,0}, {835,7978,0},{822,7970,0},{813,7970,0},{810,7970,0},{775,7978,0},{760,7980,0}, {138,10398,128},{137,10400,0},{133,10398,0},{132,10395,0},{128,10387,0}, {127,10385,0},{127,10380,0},{130,10375,0},{130,10365,0},{133,10365,0},{137,10367,0}, {140,10367,0},{143,10370,0},{143,10377,0},{145,10382,0},{143,10387,0},{138,10398,0}, {2252,11403,128},{2247,11402,0},{2247,11398,0},{2240,11390,0},{2237,11392,0}, {2237,11395,0},{2238,11395,0},{2237,11398,0},{2235,11403,0},{2237,11405,0}, {2237,11410,0},{2230,11417,0},{2232,11420,0},{2230,11423,0},{2232,11425,0}, {2227,11428,0},{2228,11430,0},{2235,11425,0},{2238,11427,0},{2238,11428,0}, {2237,11437,0},{2237,11438,0},{2240,11437,0},{2243,11438,0},{2245,11437,0}, {2243,11433,0},{2247,11433,0},{2248,11432,0},{2245,11428,0},{2242,11428,0}, {2242,11423,0},{2238,11420,0},{2242,11420,0},{2243,11417,0},{2245,11417,0}, {2245,11420,0},{2248,11427,0},{2247,11427,0},{2250,11432,0},{2250,11427,0}, {2253,11425,0},{2253,11422,0},{2255,11422,0},{2512,12128,128},{2517,12140,0}, {2513,12143,0},{2518,12140,0},{2525,12145,0},{2528,12152,0},{2528,12157,0}, {2527,12160,0},{2518,12165,0},{2520,12167,0},{2520,12168,0},{2517,12167,0}, {2513,12173,0},{2512,12190,0},{2502,12192,0},{2500,12200,0},{2497,12192,0}, {2485,12182,0},{2475,12180,0},{2472,12182,0},{2463,12182,0},{2462,12183,0}, {2460,12188,0},{2458,12183,0},{2452,12185,0},{2450,12182,0},{2448,12183,0}, {2443,12178,0},{2433,12177,0},{2430,12177,0},{2423,12170,0},{2422,12170,0}, {2420,12167,0},{2412,12165,0},{2408,12160,0},{2403,12162,0},{2402,12163,0}, {2397,12160,0},{2390,12160,0},{2363,12152,0},{2348,12150,0},{2333,12145,0}, {2323,12140,0},{2318,12140,0},{2318,12142,0},{2312,12138,0},{2308,12133,0}, {2295,12130,0},{2290,12127,0},{2283,12118,0},{2280,12118,0},{2277,12117,0}, {2273,12113,0},{2272,12108,0},{2263,12102,0},{2258,12100,0},{2257,12097,0}, {2245,12093,0},{2232,12087,0},{2203,12088,0},{2198,12083,0},{2190,12083,0}, {2195,12080,0},{2197,12075,0},{2193,12072,0},{2193,12070,0},{2198,12070,0}, {2202,12067,0},{2210,12070,0},{2217,12068,0},{2230,12062,0},{2233,12058,0}, {2237,12057,0},{2242,12050,0},{2248,12042,0},{2248,12038,0},{2250,12035,0}, {2258,12027,0},{2253,12030,0},{2252,12033,0},{2260,12030,0},{2265,12023,0}, {2268,12025,0},{2278,12020,0},{2283,12020,0},{2285,12018,0},{2295,12017,0}, {2298,12013,0},{2298,12017,0},{2302,12017,0},{2300,12012,0},{2302,12010,0}, {2303,12012,0},{2305,12008,0},{2303,12007,0},{2305,12005,0},{2307,12005,0}, {2310,12010,0},{2312,12005,0},{2312,12010,0},{2315,12005,0},{2318,12008,0}, {2323,12008,0},{2323,12010,0},{2332,12013,0},{2333,12015,0},{2333,12012,0}, {2335,12013,0},{2338,12015,0},{2342,12013,0},{2345,12013,0},{2347,12013,0}, {2348,12013,0},{2362,12012,0},{2368,12015,0},{2370,12017,0},{2378,12020,0}, {2390,12028,0},{2403,12035,0},{2405,12038,0},{2413,12042,0},{2420,12047,0}, {2437,12055,0},{2448,12065,0},{2460,12070,0},{2462,12075,0},{2467,12077,0}, {2467,12083,0},{2468,12082,0},{2473,12087,0},{2488,12092,0},{2490,12095,0}, {2492,12095,0},{2500,12100,0},{2505,12107,0},{2508,12117,0},{2512,12120,0}, {2512,12128,0},{3245,13165,128},{3247,13167,0},{3247,13170,0},{3248,13173,0}, {3250,13172,0},{3252,13168,0},{3258,13170,0},{3258,13173,0},{3262,13177,0}, {3265,13177,0},{3268,13182,0},{3268,13185,0},{3278,13188,0},{3277,13193,0}, {3278,13197,0},{3282,13200,0},{3283,13200,0},{3282,13195,0},{3287,13200,0}, {3290,13198,0},{3293,13207,0},{3293,13205,0},{3293,13200,0},{3293,13202,0}, {3295,13193,0},{3297,13190,0},{3303,13193,0},{3305,13202,0},{3308,13200,0}, {3305,13198,0},{3307,13195,0},{3308,13195,0},{3305,13193,0},{3307,13190,0}, {3307,13187,0},{3308,13188,0},{3312,13192,0},{3312,13182,0},{3315,13183,0}, {3318,13187,0},{3325,13190,0},{3323,13182,0},{3323,13177,0},{3325,13170,0}, {3325,13158,0},{3327,13152,0},{3332,13150,0},{3335,13150,0},{3335,13158,0}, {3337,13162,0},{3337,13163,0},{3342,13163,0},{3342,13170,0},{3347,13173,0}, {3355,13173,0},{3365,13167,0},{3368,13158,0},{3367,13157,0},{3367,13150,0}, {3365,13150,0},{3358,13145,0},{3357,13142,0},{3357,13135,0},{3357,13127,0}, {3358,13125,0},{3360,13120,0},{3362,13110,0},{3365,13107,0},{3370,13103,0}, {3377,13100,0},{3382,13095,0},{3383,13098,0},{3388,13098,0},{3388,13100,0}, {3395,13102,0},{3395,13097,0},{3388,13090,0},{3388,13087,0},{3392,13085,0}, {3392,13080,0},{3392,13075,0},{3393,13070,0},{3392,13067,0},{3388,13063,0}, {3388,13053,0},{3385,13052,0},{3385,13048,0},{3380,13045,0},{3373,13047,0}, {3365,13033,0},{3363,13033,0},{3367,13042,0},{3365,13042,0},{3360,13040,0}, {3357,13030,0},{3358,13027,0},{3360,13027,0},{3362,13023,0},{3365,13022,0}, {3363,13020,0},{3362,13017,0},{3358,13015,0},{3358,13010,0},{3355,13010,0}, {3355,13012,0},{3353,13012,0},{3355,13017,0},{3353,13017,0},{3350,13012,0}, {3348,13005,0},{3345,13002,0},{3345,12998,0},{3347,12997,0},{3347,12995,0}, {3350,12997,0},{3353,12993,0},{3353,12987,0},{3348,12985,0},{3343,12987,0}, {3343,12985,0},{3347,12982,0},{3345,12980,0},{3340,12983,0},{3340,12987,0}, {3338,12988,0},{3333,12985,0},{3328,12985,0},{3328,12982,0},{3337,12980,0}, {3333,12972,0},{3335,12968,0},{3338,12968,0},{3335,12965,0},{3337,12960,0}, {3335,12958,0},{3330,12957,0},{3328,12960,0},{3325,12957,0},{3320,12957,0}, {3318,12965,0},{3313,12968,0},{3312,12967,0},{3310,12967,0},{3312,12970,0}, {3315,12972,0},{3312,12973,0},{3313,12977,0},{3312,12977,0},{3308,12973,0}, {3305,12977,0},{3307,12980,0},{3305,12982,0},{3303,12982,0},{3305,12988,0}, {3302,12993,0},{3298,12995,0},{3292,12993,0},{3283,13000,0},{3283,12998,0}, {3287,12990,0},{3283,12988,0},{3283,12983,0},{3285,12980,0},{3287,12982,0}, {3288,12980,0},{3292,12980,0},{3293,12980,0},{3290,12982,0},{3292,12983,0}, {3298,12982,0},{3300,12977,0},{3298,12975,0},{3302,12975,0},{3303,12977,0}, {3305,12973,0},{3307,12973,0},{3308,12968,0},{3298,12965,0},{3297,12963,0}, {3283,12968,0},{3280,12973,0},{3282,12975,0},{3282,12978,0},{3278,12977,0}, {3277,12980,0},{3273,12982,0},{3272,12983,0},{3272,12987,0},{3268,12985,0}, {3257,12975,0},{3258,12982,0},{3262,12985,0},{3265,12990,0},{3275,12995,0}, {3275,12998,0},{3278,13008,0},{3278,13018,0},{3275,13018,0},{3273,13020,0}, {3272,13020,0},{3268,13017,0},{3267,13013,0},{3262,13013,0},{3260,13017,0}, {3258,13017,0},{3262,13023,0},{3263,13027,0},{3267,13035,0},{3277,13038,0}, {3285,13033,0},{3287,13030,0},{3287,13025,0},{3285,13022,0},{3283,13017,0}, {3283,13012,0},{3285,13010,0},{3290,13018,0},{3295,13022,0},{3312,13012,0}, {3310,13013,0},{3312,13015,0},{3318,13022,0},{3317,13028,0},{3315,13030,0}, {3313,13037,0},{3312,13037,0},{3308,13042,0},{3305,13043,0},{3300,13042,0}, {3292,13043,0},{3287,13052,0},{3285,13052,0},{3283,13055,0},{3278,13060,0}, {3273,13060,0},{3270,13063,0},{3270,13057,0},{3262,13045,0},{3263,13060,0}, {3265,13065,0},{3263,13067,0},{3260,13065,0},{3255,13057,0},{3253,13057,0}, {3250,13060,0},{3250,13055,0},{3245,13057,0},{3238,13050,0},{3233,13052,0}, {3233,13048,0},{3235,13047,0},{3233,13047,0},{3230,13047,0},{3220,13037,0}, {3212,13032,0},{3210,13028,0},{3213,13025,0},{3212,13020,0},{3210,13018,0}, {3207,13020,0},{3200,13017,0},{3198,13020,0},{3192,13022,0},{3185,13020,0}, {3182,13023,0},{3183,13018,0},{3182,13018,0},{3177,13018,0},{3172,13025,0}, {3162,13033,0},{3145,13030,0},{3142,13027,0},{3138,13022,0},{3142,13017,0}, {3140,13012,0},{3133,13020,0},{3132,13020,0},{3130,13022,0},{3125,13023,0}, {3123,13048,0},{3120,13052,0},{3117,13052,0},{3117,13057,0},{3115,13058,0}, {3118,13063,0},{3127,13067,0},{3132,13057,0},{3140,13053,0},{3147,13052,0}, {3160,13057,0},{3162,13060,0},{3170,13062,0},{3172,13068,0},{3170,13080,0}, {3165,13080,0},{3160,13080,0},{3155,13075,0},{3157,13072,0},{3160,13072,0}, {3162,13068,0},{3160,13062,0},{3158,13060,0},{3155,13063,0},{3153,13070,0}, {3148,13070,0},{3140,13077,0},{3132,13080,0},{3125,13080,0},{3112,13073,0}, {3107,13068,0},{3100,13067,0},{3100,13070,0},{3105,13075,0},{3112,13095,0}, {3115,13098,0},{3122,13102,0},{3127,13113,0},{3128,13110,0},{3132,13112,0}, {3133,13110,0},{3135,13100,0},{3145,13107,0},{3147,13113,0},{3147,13120,0}, {3145,13122,0},{3142,13123,0},{3138,13125,0},{3138,13132,0},{3137,13133,0}, {3137,13135,0},{3147,13137,0},{3148,13140,0},{3152,13138,0},{3155,13138,0}, {3162,13145,0},{3172,13147,0},{3178,13150,0},{3182,13147,0},{3183,13145,0}, {3187,13145,0},{3190,13145,0},{3197,13147,0},{3202,13152,0},{3213,13155,0}, {3215,13153,0},{3215,13155,0},{3222,13155,0},{3232,13160,0},{3233,13162,0}, {3238,13163,0},{3242,13167,0},{3245,13165,0},{3408,13460,128},{3403,13458,0}, {3398,13460,0},{3398,13465,0},{3392,13470,0},{3390,13470,0},{3387,13465,0}, {3383,13465,0},{3383,13472,0},{3382,13468,0},{3382,13475,0},{3377,13463,0}, {3368,13450,0},{3362,13438,0},{3357,13437,0},{3355,13432,0},{3345,13425,0}, {3333,13420,0},{3323,13418,0},{3328,13412,0},{3335,13405,0},{3338,13403,0}, {3343,13397,0},{3347,13393,0},{3352,13373,0},{3350,13360,0},{3347,13355,0}, {3343,13345,0},{3340,13345,0},{3338,13335,0},{3335,13333,0},{3337,13332,0}, {3337,13328,0},{3332,13325,0},{3328,13325,0},{3325,13327,0},{3323,13325,0}, {3317,13322,0},{3315,13323,0},{3313,13317,0},{3307,13312,0},{3302,13310,0}, {3302,13303,0},{3300,13302,0},{3287,13300,0},{3283,13297,0},{3280,13297,0}, {3275,13303,0},{3270,13302,0},{3272,13298,0},{3277,13295,0},{3277,13290,0}, {3275,13288,0},{3277,13287,0},{3273,13280,0},{3275,13275,0},{3278,13272,0}, {3275,13265,0},{3277,13263,0},{3283,13267,0},{3288,13272,0},{3290,13272,0}, {3290,13260,0},{3293,13257,0},{3292,13257,0},{3293,13253,0},{3292,13252,0}, {3288,13253,0},{3290,13248,0},{3300,13250,0},{3300,13248,0},{3303,13248,0}, {3303,13242,0},{3305,13248,0},{3307,13247,0},{3308,13247,0},{3312,13245,0}, {3312,13248,0},{3313,13243,0},{3315,13243,0},{3317,13245,0},{3318,13243,0}, {3318,13240,0},{3317,13242,0},{3318,13240,0},{3318,13242,0},{3317,13247,0}, {3318,13250,0},{3325,13253,0},{3325,13250,0},{3325,13248,0},{3327,13248,0}, {3330,13252,0},{3328,13242,0},{3330,13240,0},{3332,13238,0},{3333,13238,0}, {3333,13242,0},{3337,13242,0},{3335,13240,0},{3337,13238,0},{3342,13240,0}, {3343,13240,0},{3345,13242,0},{3347,13237,0},{3345,13235,0},{3345,13230,0}, {3338,13218,0},{3335,13215,0},{3335,13210,0},{3337,13210,0},{3333,13205,0}, {3333,13202,0},{3340,13210,0},{3340,13215,0},{3342,13215,0},{3345,13225,0}, {3347,13227,0},{3352,13240,0},{3360,13248,0},{3367,13263,0},{3375,13270,0}, {3388,13272,0},{3390,13277,0},{3398,13278,0},{3405,13292,0},{3410,13292,0}, {3410,13290,0},{3413,13293,0},{3410,13298,0},{3402,13305,0},{3395,13307,0}, {3392,13315,0},{3392,13322,0},{3395,13325,0},{3397,13327,0},{3398,13332,0}, {3397,13333,0},{3398,13335,0},{3397,13337,0},{3397,13353,0},{3405,13362,0}, {3410,13365,0},{3420,13363,0},{3425,13357,0},{3423,13365,0},{3422,13367,0}, {3425,13375,0},{3428,13375,0},{3433,13388,0},{3437,13390,0},{3433,13408,0}, {3437,13410,0},{3435,13412,0},{3437,13413,0},{3438,13413,0},{3437,13417,0}, {3432,13417,0},{3432,13418,0},{3435,13422,0},{3432,13427,0},{3428,13427,0}, {3425,13435,0},{3425,13440,0},{3422,13443,0},{3422,13457,0},{3423,13462,0}, {3420,13460,0},{3420,13462,0},{3423,13465,0},{3418,13463,0},{3418,13460,0}, {3417,13463,0},{3413,13462,0},{3407,13460,0},{4143,14113,128},{4137,14122,0}, {4135,14127,0},{4135,14135,0},{4137,14142,0},{4142,14145,0},{4140,14147,0}, {4137,14147,0},{4132,14145,0},{4117,14140,0},{4110,14140,0},{4073,14142,0}, {4060,14147,0},{4053,14148,0},{4052,14152,0},{4053,14158,0},{4043,14168,0}, {4027,14182,0},{4022,14183,0},{4018,14180,0},{4013,14188,0},{4010,14183,0}, {4007,14183,0},{4000,14190,0},{3998,14195,0},{3995,14195,0},{3992,14193,0}, {3988,14197,0},{3978,14198,0},{3978,14200,0},{3958,14195,0},{3963,14202,0}, {3963,14203,0},{3958,14203,0},{3957,14203,0},{3955,14207,0},{3948,14200,0}, {3947,14197,0},{3945,14195,0},{3943,14197,0},{3948,14203,0},{3947,14205,0}, {3945,14205,0},{3942,14203,0},{3942,14198,0},{3938,14193,0},{3937,14197,0}, {3935,14197,0},{3935,14192,0},{3933,14190,0},{3935,14198,0},{3930,14197,0}, {3930,14190,0},{3928,14193,0},{3927,14190,0},{3925,14190,0},{3925,14195,0}, {3922,14195,0},{3920,14187,0},{3918,14193,0},{3915,14190,0},{3915,14185,0}, {3910,14192,0},{3908,14188,0},{3910,14182,0},{3907,14187,0},{3905,14187,0}, {3905,14182,0},{3902,14185,0},{3903,14180,0},{3902,14175,0},{3903,14172,0}, {3898,14175,0},{3897,14172,0},{3897,14173,0},{3895,14172,0},{3897,14167,0}, {3900,14168,0},{3900,14163,0},{3885,14168,0},{3888,14163,0},{3888,14160,0}, {3885,14158,0},{3882,14160,0},{3877,14152,0},{3873,14157,0},{3870,14157,0}, {3870,14153,0},{3868,14152,0},{3865,14147,0},{3863,14153,0},{3858,14150,0}, {3857,14147,0},{3855,14150,0},{3853,14150,0},{3855,14153,0},{3853,14153,0}, {3852,14155,0},{3848,14153,0},{3850,14150,0},{3847,14150,0},{3843,14150,0}, {3843,14147,0},{3840,14148,0},{3838,14155,0},{3837,14150,0},{3835,14153,0}, {3832,14152,0},{3830,14153,0},{3827,14153,0},{3830,14145,0},{3833,14147,0}, {3833,14143,0},{3837,14143,0},{3838,14142,0},{3840,14130,0},{3837,14118,0}, {3832,14117,0},{3832,14113,0},{3837,14113,0},{3837,14108,0},{3832,14105,0}, {3830,14108,0},{3827,14103,0},{3815,14095,0},{3803,14092,0},{3793,14092,0}, {3778,14097,0},{3772,14102,0},{3767,14100,0},{3763,14103,0},{3748,14103,0}, {3737,14103,0},{3718,14100,0},{3715,14102,0},{3708,14098,0},{3697,14097,0}, {3693,14093,0},{3693,14090,0},{3690,14082,0},{3687,14080,0},{3683,14080,0}, {3678,14075,0},{3665,14072,0},{3647,14062,0},{3635,14062,0},{3627,14057,0}, {3608,14060,0},{3580,14078,0},{3575,14083,0},{3573,14087,0},{3570,14088,0}, {3568,14087,0},{3570,14085,0},{3567,14063,0},{3553,14047,0},{3538,14040,0}, {3522,14042,0},{3517,14038,0},{3517,14035,0},{3513,14033,0},{3510,14022,0}, {3510,14013,0},{3507,14012,0},{3500,14000,0},{3492,13995,0},{3488,13987,0}, {3490,13983,0},{3495,13977,0},{3500,13987,0},{3502,13985,0},{3503,13983,0}, {3505,13985,0},{3513,13983,0},{3517,13983,0},{3520,13987,0},{3522,13988,0}, {3528,13985,0},{3530,13978,0},{3533,13990,0},{3537,13992,0},{3542,13992,0}, {3543,13997,0},{3555,14012,0},{3557,14010,0},{3558,14008,0},{3563,14007,0}, {3567,13997,0},{3565,13993,0},{3562,13988,0},{3565,13985,0},{3562,13983,0}, {3562,13980,0},{3563,13978,0},{3557,13977,0},{3552,13978,0},{3550,13978,0}, {3547,13965,0},{3540,13970,0},{3538,13963,0},{3535,13965,0},{3532,13963,0}, {3528,13965,0},{3525,13975,0},{3520,13972,0},{3518,13967,0},{3513,13968,0}, {3512,13963,0},{3513,13962,0},{3518,13962,0},{3522,13962,0},{3528,13955,0}, {3530,13943,0},{3528,13927,0},{3523,13917,0},{3518,13913,0},{3513,13917,0}, {3513,13912,0},{3505,13908,0},{3503,13910,0},{3498,13908,0},{3493,13915,0}, {3487,13913,0},{3483,13908,0},{3477,13907,0},{3473,13900,0},{3468,13898,0}, {3463,13898,0},{3463,13897,0},{3465,13895,0},{3465,13893,0},{3460,13885,0}, {3460,13880,0},{3467,13877,0},{3468,13875,0},{3472,13875,0},{3475,13878,0}, {3477,13877,0},{3483,13877,0},{3487,13875,0},{3490,13880,0},{3495,13877,0}, {3500,13878,0},{3502,13890,0},{3503,13892,0},{3508,13883,0},{3512,13875,0}, {3510,13857,0},{3500,13850,0},{3498,13850,0},{3500,13852,0},{3500,13853,0}, {3498,13853,0},{3488,13835,0},{3485,13833,0},{3480,13833,0},{3475,13830,0}, {3472,13823,0},{3467,13820,0},{3462,13820,0},{3458,13823,0},{3465,13798,0}, {3463,13782,0},{3465,13768,0},{3467,13760,0},{3463,13733,0},{3457,13713,0}, {3458,13702,0},{3463,13707,0},{3463,13708,0},{3462,13712,0},{3465,13715,0}, {3465,13718,0},{3470,13730,0},{3472,13735,0},{3473,13733,0},{3477,13732,0}, {3480,13728,0},{3478,13725,0},{3480,13722,0},{3477,13717,0},{3477,13702,0}, {3483,13698,0},{3492,13698,0},{3485,13693,0},{3478,13692,0},{3468,13697,0}, {3468,13693,0},{3473,13687,0},{3475,13685,0},{3482,13687,0},{3487,13683,0}, {3492,13682,0},{3495,13683,0},{3500,13688,0},{3505,13690,0},{3508,13690,0}, {3507,13687,0},{3508,13685,0},{3502,13675,0},{3502,13672,0},{3498,13665,0}, {3495,13663,0},{3492,13665,0},{3485,13663,0},{3475,13653,0},{3470,13652,0}, {3465,13655,0},{3460,13653,0},{3458,13663,0},{3455,13667,0},{3450,13677,0}, {3448,13685,0},{3443,13688,0},{3443,13692,0},{3437,13692,0},{3437,13688,0}, {3435,13688,0},{3435,13690,0},{3433,13688,0},{3427,13690,0},{3423,13683,0}, {3427,13677,0},{3427,13685,0},{3427,13683,0},{3428,13685,0},{3430,13685,0}, {3432,13682,0},{3428,13680,0},{3430,13677,0},{3428,13677,0},{3428,13670,0}, {3433,13673,0},{3433,13670,0},{3432,13665,0},{3430,13667,0},{3425,13660,0}, {3427,13657,0},{3425,13655,0},{3427,13652,0},{3422,13650,0},{3420,13635,0}, {3417,13630,0},{3413,13628,0},{3412,13632,0},{3408,13632,0},{3408,13628,0}, {3408,13627,0},{3410,13625,0},{3408,13623,0},{3407,13622,0},{3402,13628,0}, {3397,13627,0},{3397,13625,0},{3398,13623,0},{3397,13620,0},{3393,13623,0}, {3393,13620,0},{3392,13620,0},{3392,13617,0},{3388,13615,0},{3387,13610,0}, {3365,13598,0},{3363,13595,0},{3360,13593,0},{3358,13593,0},{3358,13597,0}, {3352,13588,0},{3350,13582,0},{3347,13578,0},{3343,13578,0},{3343,13577,0}, {3345,13577,0},{3353,13545,0},{3358,13540,0},{3363,13538,0},{3365,13533,0}, {3368,13535,0},{3368,13538,0},{3370,13540,0},{3375,13532,0},{3377,13525,0}, {3382,13518,0},{3387,13515,0},{3388,13507,0},{3390,13508,0},{3392,13508,0}, {3395,13512,0},{3395,13508,0},{3397,13508,0},{3400,13515,0},{3403,13517,0}, {3405,13513,0},{3407,13510,0},{3412,13513,0},{3413,13520,0},{3418,13513,0}, {3420,13513,0},{3423,13512,0},{3425,13507,0},{3428,13507,0},{3432,13512,0}, {3435,13522,0},{3438,13530,0},{3447,13538,0},{3450,13540,0},{3452,13543,0}, {3455,13545,0},{3460,13545,0},{3463,13545,0},{3465,13542,0},{3470,13542,0}, {3470,13537,0},{3472,13533,0},{3468,13522,0},{3463,13517,0},{3462,13507,0}, {3463,13497,0},{3475,13477,0},{3478,13467,0},{3475,13450,0},{3478,13448,0}, {3472,13442,0},{3473,13438,0},{3472,13435,0},{3470,13435,0},{3470,13433,0}, {3473,13423,0},{3473,13422,0},{3472,13422,0},{3468,13428,0},{3463,13417,0}, {3462,13418,0},{3458,13413,0},{3458,13410,0},{3458,13407,0},{3460,13403,0}, {3460,13400,0},{3458,13393,0},{3457,13393,0},{3455,13395,0},{3458,13398,0}, {3458,13405,0},{3455,13403,0},{3453,13400,0},{3452,13400,0},{3453,13398,0}, {3452,13397,0},{3445,13393,0},{3447,13383,0},{3445,13382,0},{3443,13382,0}, {3443,13380,0},{3445,13378,0},{3448,13377,0},{3452,13370,0},{3442,13347,0}, {3443,13347,0},{3447,13352,0},{3448,13352,0},{3447,13342,0},{3445,13342,0}, {3437,13337,0},{3432,13327,0},{3433,13327,0},{3437,13332,0},{3438,13328,0}, {3438,13325,0},{3442,13327,0},{3442,13325,0},{3435,13322,0},{3435,13318,0}, {3432,13320,0},{3428,13320,0},{3428,13317,0},{3428,13313,0},{3425,13308,0}, {3432,13307,0},{3432,13308,0},{3435,13310,0},{3433,13312,0},{3432,13312,0}, {3432,13313,0},{3435,13315,0},{3435,13317,0},{3438,13315,0},{3438,13308,0}, {3433,13307,0},{3432,13303,0},{3432,13290,0},{3428,13285,0},{3430,13282,0}, {3428,13280,0},{3427,13277,0},{3423,13278,0},{3423,13277,0},{3420,13263,0}, {3422,13260,0},{3418,13257,0},{3420,13255,0},{3422,13257,0},{3425,13252,0}, {3428,13250,0},{3432,13250,0},{3433,13253,0},{3435,13252,0},{3435,13243,0}, {3437,13240,0},{3435,13237,0},{3433,13232,0},{3423,13222,0},{3415,13223,0}, {3413,13223,0},{3412,13222,0},{3410,13220,0},{3398,13222,0},{3395,13218,0}, {3395,13213,0},{3393,13213,0},{3383,13215,0},{3377,13205,0},{3377,13203,0}, {3380,13207,0},{3383,13207,0},{3383,13210,0},{3387,13210,0},{3390,13207,0}, {3392,13197,0},{3400,13185,0},{3398,13182,0},{3397,13182,0},{3397,13178,0}, {3398,13178,0},{3402,13183,0},{3405,13175,0},{3402,13162,0},{3403,13160,0}, {3402,13158,0},{3400,13160,0},{3398,13158,0},{3400,13155,0},{3400,13152,0}, {3403,13148,0},{3400,13147,0},{3400,13145,0},{3398,13145,0},{3398,13143,0}, {3400,13142,0},{3398,13140,0},{3400,13140,0},{3403,13138,0},{3395,13133,0}, {3392,13127,0},{3395,13122,0},{3393,13120,0},{3393,13117,0},{3398,13117,0}, {3402,13110,0},{3403,13103,0},{3398,13098,0},{3395,13093,0},{3392,13092,0}, {3393,13088,0},{3395,13090,0},{3403,13090,0},{3410,13087,0},{3418,13093,0}, {3428,13087,0},{3435,13090,0},{3437,13102,0},{3438,13100,0},{3438,13093,0}, {3442,13095,0},{3443,13098,0},{3440,13102,0},{3442,13107,0},{3442,13112,0}, {3437,13115,0},{3438,13118,0},{3442,13117,0},{3442,13118,0},{3443,13123,0}, {3442,13125,0},{3440,13127,0},{3440,13122,0},{3437,13120,0},{3438,13123,0}, {3438,13128,0},{3440,13133,0},{3442,13140,0},{3445,13138,0},{3448,13145,0}, {3452,13147,0},{3455,13153,0},{3460,13155,0},{3460,13160,0},{3463,13158,0}, {3465,13160,0},{3465,13167,0},{3470,13185,0},{3473,13187,0},{3482,13198,0}, {3487,13202,0},{3487,13205,0},{3492,13208,0},{3500,13222,0},{3503,13230,0}, {3512,13238,0},{3517,13242,0},{3528,13263,0},{3537,13268,0},{3540,13263,0}, {3542,13263,0},{3543,13268,0},{3543,13275,0},{3545,13273,0},{3550,13285,0}, {3550,13297,0},{3552,13297,0},{3555,13305,0},{3558,13308,0},{3555,13315,0}, {3557,13332,0},{3553,13325,0},{3550,13325,0},{3545,13332,0},{3545,13338,0}, {3545,13342,0},{3550,13348,0},{3552,13357,0},{3548,13378,0},{3552,13400,0}, {3552,13412,0},{3553,13427,0},{3558,13430,0},{3565,13452,0},{3563,13462,0}, {3565,13477,0},{3563,13483,0},{3565,13487,0},{3563,13492,0},{3567,13498,0}, {3568,13503,0},{3573,13508,0},{3577,13522,0},{3572,13528,0},{3568,13530,0}, {3565,13530,0},{3565,13527,0},{3557,13520,0},{3553,13518,0},{3553,13522,0}, {3555,13522,0},{3558,13523,0},{3555,13527,0},{3553,13525,0},{3550,13530,0}, {3552,13532,0},{3543,13532,0},{3548,13535,0},{3547,13538,0},{3548,13540,0}, {3550,13540,0},{3550,13535,0},{3553,13535,0},{3555,13540,0},{3558,13545,0}, {3552,13548,0},{3553,13552,0},{3548,13552,0},{3550,13558,0},{3553,13567,0}, {3552,13567,0},{3548,13562,0},{3548,13573,0},{3552,13577,0},{3552,13572,0}, {3555,13570,0},{3553,13577,0},{3552,13580,0},{3553,13583,0},{3557,13582,0}, {3557,13585,0},{3558,13585,0},{3560,13583,0},{3563,13583,0},{3560,13587,0}, {3562,13597,0},{3563,13598,0},{3565,13597,0},{3568,13598,0},{3570,13597,0}, {3573,13602,0},{3573,13603,0},{3570,13605,0},{3567,13603,0},{3565,13605,0}, {3565,13608,0},{3578,13610,0},{3587,13600,0},{3592,13600,0},{3595,13597,0}, {3598,13597,0},{3600,13600,0},{3610,13605,0},{3615,13612,0},{3623,13613,0}, {3625,13622,0},{3633,13630,0},{3637,13638,0},{3660,13660,0},{3675,13672,0}, {3688,13677,0},{3697,13677,0},{3705,13672,0},{3713,13673,0},{3713,13668,0}, {3718,13668,0},{3725,13673,0},{3732,13673,0},{3735,13677,0},{3738,13685,0}, {3738,13692,0},{3742,13703,0},{3748,13713,0},{3752,13727,0},{3750,13735,0}, {3747,13735,0},{3743,13737,0},{3742,13727,0},{3737,13723,0},{3735,13727,0}, {3732,13727,0},{3728,13723,0},{3728,13712,0},{3720,13707,0},{3718,13703,0}, {3718,13700,0},{3722,13693,0},{3713,13687,0},{3712,13688,0},{3710,13687,0}, {3707,13687,0},{3708,13692,0},{3707,13693,0},{3703,13698,0},{3708,13703,0}, {3708,13705,0},{3695,13705,0},{3685,13698,0},{3678,13708,0},{3675,13720,0}, {3675,13732,0},{3678,13738,0},{3685,13742,0},{3690,13742,0},{3693,13745,0}, {3698,13768,0},{3707,13793,0},{3710,13802,0},{3717,13810,0},{3717,13825,0}, {3730,13842,0},{3737,13855,0},{3752,13865,0},{3758,13873,0},{3773,13880,0}, {3780,13883,0},{3790,13898,0},{3800,13923,0},{3807,13935,0},{3815,13942,0}, {3822,13945,0},{3835,13945,0},{3843,13948,0},{3867,13962,0},{3872,13970,0}, {3878,13977,0},{3907,13988,0},{3927,13992,0},{3930,13997,0},{3938,14002,0}, {3958,14007,0},{3980,14003,0},{3985,14000,0},{3988,13992,0},{3988,13987,0}, {3987,13985,0},{3985,13983,0},{3985,13975,0},{3993,13970,0},{3993,13972,0}, {4000,13970,0},{3995,13982,0},{3998,13990,0},{4022,14002,0},{4033,14002,0}, {4042,13993,0},{4053,13993,0},{4057,13990,0},{4058,13987,0},{4060,13985,0}, {4067,13997,0},{4073,14000,0},{4075,14002,0},{4073,14010,0},{4075,14015,0}, {4080,14027,0},{4102,14032,0},{4098,14037,0},{4098,14038,0},{4102,14037,0}, {4102,14038,0},{4103,14033,0},{4110,14032,0},{4112,14027,0},{4113,14032,0}, {4125,14035,0},{4118,14047,0},{4122,14057,0},{4118,14065,0},{4108,14063,0}, {4093,14065,0},{4088,14068,0},{4083,14072,0},{4082,14075,0},{4083,14082,0}, {4085,14083,0},{4090,14087,0},{4093,14085,0},{4100,14088,0},{4097,14095,0}, {4093,14098,0},{4087,14108,0},{4085,14113,0},{4087,14115,0},{4088,14118,0}, {4098,14123,0},{4108,14125,0},{4115,14128,0},{4123,14123,0},{4127,14118,0}, {4127,14117,0},{4125,14113,0},{4123,14115,0},{4118,14107,0},{4118,14100,0}, {4117,14095,0},{4115,14087,0},{4112,14080,0},{4113,14078,0},{4117,14077,0}, {4123,14078,0},{4133,14083,0},{4140,14083,0},{4145,14088,0},{4153,14092,0}, {4148,14102,0},{4147,14108,0},{4143,14113,0},{4552,14195,128},{4538,14207,0}, {4533,14218,0},{4518,14235,0},{4505,14252,0},{4490,14262,0},{4470,14282,0}, {4448,14313,0},{4440,14328,0},{4437,14337,0},{4433,14338,0},{4427,14350,0}, {4418,14378,0},{4418,14368,0},{4412,14373,0},{4410,14377,0},{4410,14390,0}, {4410,14393,0},{4413,14398,0},{4413,14402,0},{4412,14417,0},{4410,14417,0}, {4408,14413,0},{4407,14412,0},{4403,14410,0},{4402,14415,0},{4403,14418,0}, {4410,14420,0},{4410,14427,0},{4405,14427,0},{4395,14437,0},{4392,14472,0}, {4392,14478,0},{4395,14483,0},{4408,14500,0},{4420,14518,0},{4435,14535,0}, {4427,14538,0},{4417,14532,0},{4413,14527,0},{4405,14525,0},{4400,14518,0}, {4393,14513,0},{4390,14512,0},{4383,14512,0},{4377,14507,0},{4367,14513,0}, {4362,14520,0},{4358,14522,0},{4337,14530,0},{4330,14538,0},{4332,14533,0}, {4335,14528,0},{4333,14527,0},{4332,14525,0},{4330,14532,0},{4328,14530,0}, {4327,14532,0},{4325,14547,0},{4323,14552,0},{4327,14550,0},{4333,14558,0}, {4335,14563,0},{4338,14565,0},{4338,14572,0},{4338,14575,0},{4337,14582,0}, {4330,14568,0},{4330,14562,0},{4327,14557,0},{4322,14557,0},{4318,14552,0}, {4317,14553,0},{4318,14547,0},{4317,14528,0},{4313,14520,0},{4313,14515,0}, {4310,14512,0},{4307,14517,0},{4307,14510,0},{4303,14510,0},{4302,14507,0}, {4303,14500,0},{4300,14503,0},{4298,14498,0},{4298,14487,0},{4300,14483,0}, {4303,14485,0},{4305,14480,0},{4298,14473,0},{4292,14477,0},{4295,14457,0}, {4293,14447,0},{4295,14438,0},{4300,14433,0},{4297,14415,0},{4290,14398,0}, {4285,14390,0},{4273,14377,0},{4263,14360,0},{4238,14338,0},{4228,14333,0}, {4217,14333,0},{4205,14332,0},{4198,14327,0},{4192,14323,0},{4197,14318,0}, {4203,14310,0},{4212,14293,0},{4213,14280,0},{4218,14265,0},{4223,14258,0}, {4225,14248,0},{4235,14230,0},{4243,14218,0},{4248,14202,0},{4255,14192,0}, {4260,14178,0},{4262,14167,0},{4260,14157,0},{4257,14143,0},{4245,14122,0}, {4240,14112,0},{4230,14098,0},{4232,14093,0},{4233,14093,0},{4232,14098,0}, {4233,14098,0},{4237,14092,0},{4243,14088,0},{4250,14080,0},{4255,14075,0}, {4258,14068,0},{4257,14047,0},{4247,14035,0},{4238,14030,0},{4232,14028,0}, {4225,14028,0},{4218,14043,0},{4210,14053,0},{4212,14073,0},{4207,14080,0}, {4202,14083,0},{4198,14090,0},{4190,14097,0},{4188,14110,0},{4180,14120,0}, {4178,14113,0},{4172,14103,0},{4170,14098,0},{4175,14092,0},{4177,14082,0}, {4177,14077,0},{4173,14070,0},{4177,14070,0},{4178,14072,0},{4180,14073,0}, {4182,14070,0},{4182,14065,0},{4178,14062,0},{4173,14060,0},{4168,14045,0}, {4163,14043,0},{4153,14045,0},{4152,14042,0},{4148,14028,0},{4140,14020,0}, {4142,14015,0},{4142,14007,0},{4145,14003,0},{4153,13998,0},{4160,13998,0}, {4168,14002,0},{4175,14007,0},{4180,14008,0},{4182,14013,0},{4187,14012,0}, {4190,14015,0},{4198,14013,0},{4208,14005,0},{4213,13993,0},{4218,13988,0}, {4222,13982,0},{4225,13978,0},{4232,13977,0},{4245,13983,0},{4262,13983,0}, {4265,13987,0},{4268,13990,0},{4268,14005,0},{4273,14010,0},{4275,14013,0}, {4282,14018,0},{4280,14022,0},{4275,14027,0},{4277,14030,0},{4282,14032,0}, {4288,14038,0},{4300,14053,0},{4315,14042,0},{4318,14035,0},{4323,14032,0}, {4332,14037,0},{4333,14043,0},{4337,14047,0},{4330,14063,0},{4327,14067,0}, {4323,14073,0},{4318,14080,0},{4323,14102,0},{4322,14102,0},{4318,14100,0}, {4313,14117,0},{4313,14120,0},{4318,14128,0},{4328,14140,0},{4338,14143,0}, {4352,14135,0},{4358,14138,0},{4372,14133,0},{4378,14138,0},{4382,14143,0}, {4382,14148,0},{4385,14157,0},{4395,14165,0},{4403,14167,0},{4430,14165,0}, {4443,14175,0},{4462,14180,0},{4485,14177,0},{4497,14172,0},{4513,14160,0}, {4518,14158,0},{4523,14158,0},{4535,14165,0},{4540,14163,0},{4543,14165,0}, {4543,14168,0},{4540,14170,0},{4542,14182,0},{4543,14187,0},{4550,14190,0}, {4552,14193,0},{4550,14197,0},{5433,1312,129},{5437,1313,1},{5438,1327,1}, {5438,1323,1},{5442,1323,1},{5443,1322,1},{5442,1315,1},{5445,1318,1},{5448,1327,1}, {5448,1323,1},{5452,1323,1},{5452,1317,1},{5455,1315,1},{5455,1327,1},{5452,1330,1}, {5455,1330,1},{5458,1337,1},{5452,1335,1},{5453,1340,1},{5455,1337,1},{5455,1338,1}, {5452,1342,1},{5450,1342,1},{5448,1347,1},{5448,1350,1},{5455,1350,1},{5457,1352,1}, {5455,1347,1},{5458,1338,1},{5462,1337,1},{5457,1330,1},{5457,1325,1},{5463,1330,1}, {5463,1323,1},{5463,1322,1},{5465,1323,1},{5467,1328,1},{5468,1342,1},{5467,1345,1}, {5463,1338,1},{5458,1342,1},{5457,1347,1},{5458,1365,1},{5457,1368,1},{5453,1368,1}, {5448,1358,1},{5445,1358,1},{5440,1362,1},{5440,1368,1},{5433,1377,1},{5432,1373,1}, {5427,1372,1},{5428,1370,1},{5428,1372,1},{5430,1372,1},{5430,1365,1},{5432,1372,1}, {5432,1362,1},{5435,1368,1},{5435,1365,1},{5433,1362,1},{5435,1358,1},{5433,1350,1}, {5428,1340,1},{5427,1335,1},{5425,1337,1},{5427,1337,1},{5427,1342,1},{5423,1343,1}, {5422,1340,1},{5425,1330,1},{5425,1332,1},{5428,1333,1},{5425,1327,1},{5427,1320,1}, {5430,1320,1},{5428,1315,1},{5430,1315,1},{5430,1318,1},{5433,1312,1},{5447,1100,129}, {5453,1107,1},{5450,1123,1},{5442,1132,1},{5442,1120,1},{5442,1117,1},{5440,1118,1}, {5442,1112,1},{5445,1110,1},{5445,1102,1},{5443,1103,1},{5445,1102,1},{5447,1100,1}, {5895,65268,129},{5892,65266,1},{5892,65259,1},{5888,65253,1},{5890,65249,1}, {5888,65244,1},{5897,65239,1},{5893,65228,1},{5893,65229,1},{5893,65224,1}, {5892,65224,1},{5892,65216,1},{5897,65213,1},{5900,65216,1},{5903,65214,1}, {5902,65211,1},{5900,65213,1},{5902,65208,1},{5898,65211,1},{5895,65206,1}, {5897,65201,1},{5902,65199,1},{5905,65203,1},{5912,65201,1},{5913,65204,1}, {5915,65214,1},{5912,65226,1},{5912,65228,1},{5910,65231,1},{5910,65229,1}, {5907,65236,1},{5903,65234,1},{5905,65229,1},{5900,65223,1},{5898,65229,1}, {5900,65231,1},{5902,65234,1},{5900,65241,1},{5902,65241,1},{5900,65244,1}, {5897,65251,1},{5898,65251,1},{5898,65258,1},{5897,65258,1},{5895,65253,1}, {5893,65254,1},{5897,65261,1},{5895,65268,1},{5442,65101,129},{5433,65099,1}, {5430,65106,1},{5423,65099,1},{5422,65096,1},{5418,65096,1},{5415,65089,1}, {5413,65088,1},{5408,65078,1},{5405,65074,1},{5407,65073,1},{5407,65069,1}, {5408,65066,1},{5407,65061,1},{5407,65058,1},{5413,65063,1},{5422,65064,1}, {5425,65074,1},{5437,65083,1},{5438,65088,1},{5442,65099,1},{5442,65101,1}, {5840,64919,129},{5835,64916,1},{5833,64921,1},{5828,64909,1},{5822,64901,1}, {5820,64908,1},{5822,64913,1},{5825,64921,1},{5820,64923,1},{5817,64913,1}, {5818,64908,1},{5820,64898,1},{5813,64901,1},{5808,64883,1},{5808,64893,1}, {5810,64896,1},{5807,64899,1},{5800,64896,1},{5802,64881,1},{5798,64889,1}, {5793,64888,1},{5793,64884,1},{5793,64881,1},{5792,64881,1},{5792,64878,1}, {5795,64873,1},{5792,64874,1},{5793,64868,1},{5798,64863,1},{5803,64866,1}, {5800,64861,1},{5793,64864,1},{5788,64868,1},{5788,64858,1},{5788,64854,1}, {5783,64859,1},{5782,64856,1},{5780,64856,1},{5782,64849,1},{5777,64846,1}, {5775,64841,1},{5772,64839,1},{5783,64819,1},{5783,64826,1},{5780,64828,1}, {5787,64836,1},{5787,64843,1},{5788,64839,1},{5790,64841,1},{5790,64853,1}, {5792,64849,1},{5792,64851,1},{5795,64838,1},{5795,64831,1},{5798,64823,1}, {5802,64826,1},{5803,64834,1},{5803,64829,1},{5805,64831,1},{5807,64826,1}, {5810,64826,1},{5812,64823,1},{5815,64826,1},{5817,64826,1},{5818,64834,1}, {5820,64829,1},{5823,64833,1},{5822,64839,1},{5823,64841,1},{5820,64844,1}, {5820,64841,1},{5818,64844,1},{5817,64849,1},{5818,64854,1},{5818,64861,1}, {5817,64864,1},{5818,64866,1},{5818,64861,1},{5823,64858,1},{5827,64856,1}, {5827,64854,1},{5830,64856,1},{5830,64861,1},{5835,64869,1},{5835,64883,1}, {5838,64884,1},{5847,64906,1},{5850,64908,1},{5850,64914,1},{5847,64919,1}, {5840,64919,1},{6047,65418,129},{6050,65414,1},{6047,65411,1},{6048,65409,1}, {6047,65406,1},{6043,65413,1},{6043,65404,1},{6040,65403,1},{6040,65399,1}, {6048,65406,1},{6048,65403,1},{6053,65404,1},{6053,65403,1},{6055,65406,1}, {6063,65406,1},{6062,65403,1},{6060,65404,1},{6062,65396,1},{6060,65394,1}, {6057,65394,1},{6053,65388,1},{6052,65394,1},{6052,65398,1},{6050,65396,1}, {6052,65389,1},{6055,65384,1},{6055,65381,1},{6052,65381,1},{6050,65376,1}, {6047,65374,1},{6048,65381,1},{6048,65388,1},{6047,65386,1},{6045,65388,1}, {6048,65391,1},{6042,65393,1},{6042,65398,1},{6038,65396,1},{6038,65403,1}, {6037,65401,1},{6035,65409,1},{6035,65403,1},{6033,65404,1},{6033,65401,1}, {6032,65399,1},{6030,65403,1},{6028,65399,1},{6032,65398,1},{6032,65394,1}, {6032,65391,1},{6030,65393,1},{6030,65389,1},{6028,65391,1},{6028,65389,1}, {6032,65388,1},{6030,65383,1},{6030,65384,1},{6030,65381,1},{6028,65381,1}, {6030,65376,1},{6028,65368,1},{6023,65369,1},{6022,65374,1},{6023,65381,1}, {6020,65383,1},{6022,65384,1},{6025,65386,1},{6022,65389,1},{6018,65383,1}, {6015,65391,1},{6018,65394,1},{6017,65394,1},{6018,65396,1},{6022,65396,1}, {6020,65401,1},{6023,65399,1},{6025,65394,1},{6025,65401,1},{6020,65403,1}, {6023,65406,1},{6023,65409,1},{6017,65404,1},{6018,65408,1},{6017,65408,1}, {6013,65408,1},{6013,65409,1},{6010,65409,1},{6000,65403,1},{5997,65404,1}, {5997,65401,1},{5995,65404,1},{5993,65401,1},{5988,65399,1},{5988,65401,1}, {5990,65404,1},{5987,65404,1},{5985,65409,1},{5988,65409,1},{6000,65411,1}, {5998,65414,1},{6000,65416,1},{6003,65414,1},{6005,65419,1},{6010,65414,1}, {6012,65418,1},{6013,65416,1},{6013,65421,1},{6015,65423,1},{6017,65421,1}, {6020,65421,1},{6018,65416,1},{6022,65419,1},{6020,65416,1},{6023,65418,1}, {6023,65414,1},{6025,65418,1},{6027,65416,1},{6023,65421,1},{6027,65426,1}, {6028,65426,1},{6028,65423,1},{6032,65429,1},{6033,65421,1},{6035,65419,1}, {6035,65429,1},{6038,65429,1},{6038,65426,1},{6037,65424,1},{6038,65424,1}, {6045,65433,1},{6043,65428,1},{6042,65426,1},{6038,65421,1},{6040,65421,1}, {6040,65413,1},{6042,65418,1},{6042,65421,1},{6047,65418,1},{5528,1480,129}, {5525,1488,1},{5522,1500,1},{5517,1503,1},{5513,1517,1},{5502,1515,1},{5498,1507,1}, {5502,1493,1},{5508,1473,1},{5510,1470,1},{5520,1472,1},{5530,1477,1},{5528,1480,1}, {5495,1123,129},{5495,1128,1},{5487,1140,1},{5480,1160,1},{5483,1157,1}, {5485,1163,1},{5488,1163,1},{5490,1165,1},{5487,1172,1},{5483,1173,1},{5483,1177,1}, {5475,1185,1},{5472,1180,1},{5470,1180,1},{5468,1183,1},{5463,1178,1},{5467,1165,1}, {5467,1158,1},{5463,1152,1},{5460,1145,1},{5472,1120,1},{5475,1102,1},{5478,1098,1}, {5480,1100,1},{5482,1098,1},{5480,1103,1},{5482,1110,1},{5488,1102,1},{5493,1105,1}, {5495,1113,1},{5495,1123,1},{5495,1183,129},{5492,1188,1},{5493,1190,1}, {5492,1195,1},{5490,1197,1},{5488,1208,1},{5483,1213,1},{5477,1202,1},{5473,1200,1}, {5470,1193,1},{5457,1195,1},{5458,1190,1},{5467,1185,1},{5472,1188,1},{5480,1180,1}, {5483,1178,1},{5487,1173,1},{5492,1173,1},{5493,1168,1},{5495,1173,1},{5493,1178,1}, {5497,1182,1},{5495,1183,1},{5505,1227,129},{5503,1230,1},{5500,1247,1}, {5498,1252,1},{5495,1252,1},{5493,1250,1},{5495,1233,1},{5495,1228,1},{5488,1222,1}, {5488,1217,1},{5490,1208,1},{5492,1208,1},{5493,1212,1},{5497,1210,1},{5497,1215,1}, {5498,1215,1},{5498,1223,1},{5503,1225,1},{5505,1223,1},{5505,1227,1},{5607,1253,129}, {5605,1258,1},{5602,1260,1},{5590,1250,1},{5577,1260,1},{5572,1260,1},{5565,1255,1}, {5562,1248,1},{5560,1247,1},{5560,1240,1},{5560,1235,1},{5555,1223,1},{5552,1220,1}, {5547,1217,1},{5543,1218,1},{5535,1242,1},{5528,1245,1},{5525,1242,1},{5523,1233,1}, {5523,1222,1},{5522,1215,1},{5518,1208,1},{5513,1208,1},{5515,1205,1},{5517,1207,1}, {5517,1202,1},{5513,1203,1},{5512,1215,1},{5508,1215,1},{5508,1207,1},{5500,1215,1}, {5497,1200,1},{5500,1192,1},{5498,1187,1},{5500,1183,1},{5503,1178,1},{5507,1163,1}, {5503,1182,1},{5512,1170,1},{5513,1180,1},{5515,1170,1},{5520,1170,1},{5517,1163,1}, {5522,1143,1},{5520,1130,1},{5518,1132,1},{5520,1125,1},{5523,1123,1},{5523,1128,1}, {5525,1128,1},{5525,1123,1},{5528,1123,1},{5532,1115,1},{5533,1118,1},{5535,1118,1}, {5535,1113,1},{5533,1113,1},{5535,1108,1},{5540,1120,1},{5550,1113,1},{5552,1108,1}, {5553,1108,1},{5555,1115,1},{5558,1115,1},{5563,1107,1},{5567,1093,1},{5567,1108,1}, {5568,1102,1},{5572,1097,1},{5573,1087,1},{5573,1108,1},{5575,1113,1},{5573,1117,1}, {5573,1112,1},{5572,1115,1},{5570,1120,1},{5570,1122,1},{5573,1118,1},{5573,1127,1}, {5577,1137,1},{5580,1138,1},{5583,1135,1},{5582,1140,1},{5583,1143,1},{5583,1148,1}, {5592,1152,1},{5593,1147,1},{5597,1130,1},{5598,1127,1},{5597,1140,1},{5595,1157,1}, {5593,1160,1},{5597,1177,1},{5592,1173,1},{5588,1175,1},{5590,1167,1},{5590,1165,1}, {5580,1172,1},{5580,1163,1},{5578,1163,1},{5578,1160,1},{5577,1163,1},{5578,1172,1}, {5577,1175,1},{5575,1173,1},{5568,1180,1},{5567,1178,1},{5568,1182,1},{5573,1185,1}, {5577,1183,1},{5580,1187,1},{5583,1193,1},{5590,1190,1},{5593,1192,1},{5590,1200,1}, {5585,1198,1},{5583,1202,1},{5575,1205,1},{5572,1203,1},{5572,1197,1},{5565,1192,1}, {5567,1197,1},{5565,1205,1},{5573,1208,1},{5592,1205,1},{5595,1202,1},{5593,1188,1}, {5595,1185,1},{5597,1185,1},{5608,1212,1},{5610,1223,1},{5610,1232,1},{5607,1253,1}, {5513,1093,129},{5502,1088,1},{5495,1082,1},{5473,1070,1},{5473,1067,1}, {5480,1065,1},{5483,1060,1},{5483,1063,1},{5487,1065,1},{5488,1070,1},{5492,1067,1}, {5505,1085,1},{5513,1088,1},{5515,1092,1},{5513,1093,1},{5558,1065,129}, {5548,1073,1},{5547,1068,1},{5543,1068,1},{5530,1083,1},{5530,1078,1},{5528,1078,1}, {5520,1080,1},{5507,1073,1},{5507,1062,1},{5503,1052,1},{5507,1030,1},{5510,1022,1}, {5507,1020,1},{5508,1015,1},{5508,1007,1},{5513,1015,1},{5518,1012,1},{5518,1010,1}, {5517,1008,1},{5518,1005,1},{5520,1000,1},{5518,998,1},{5513,1003,1},{5512,1002,1}, {5513,998,1},{5515,1000,1},{5518,997,1},{5520,998,1},{5522,992,1},{5525,988,1}, {5535,988,1},{5535,983,1},{5537,978,1},{5538,983,1},{5542,978,1},{5542,982,1}, {5543,975,1},{5547,970,1},{5543,982,1},{5550,968,1},{5552,973,1},{5553,975,1}, {5555,982,1},{5552,985,1},{5550,992,1},{5560,1020,1},{5560,1027,1},{5558,1028,1}, {5562,1028,1},{5562,1032,1},{5558,1040,1},{5555,1045,1},{5552,1053,1},{5552,1047,1}, {5550,1048,1},{5547,1042,1},{5543,1043,1},{5543,1048,1},{5547,1050,1},{5548,1060,1}, {5550,1060,1},{5552,1057,1},{5552,1062,1},{5560,1060,1},{5558,1065,1},{7800,2308,129}, {7793,2342,1},{7787,2365,1},{7785,2388,1},{7787,2400,1},{7788,2405,1},{7790,2432,1}, {7787,2437,1},{7785,2455,1},{7782,2458,1},{7775,2492,1},{7773,2485,1},{7772,2452,1}, {7768,2420,1},{7760,2400,1},{7750,2388,1},{7745,2375,1},{7742,2355,1},{7737,2337,1}, {7740,2320,1},{7738,2308,1},{7733,2292,1},{7728,2290,1},{7725,2263,1},{7727,2255,1}, {7725,2242,1},{7730,2238,1},{7733,2250,1},{7742,2240,1},{7748,2260,1},{7750,2270,1}, {7755,2277,1},{7753,2263,1},{7752,2258,1},{7757,2258,1},{7757,2247,1},{7755,2232,1}, {7752,2223,1},{7750,2213,1},{7748,2160,1},{7743,2112,1},{7745,2088,1},{7748,2087,1}, {7750,2093,1},{7753,2083,1},{7758,2097,1},{7758,2112,1},{7762,2122,1},{7773,2125,1}, {7785,2155,1},{7790,2153,1},{7792,2165,1},{7793,2163,1},{7797,2135,1},{7808,2087,1}, {7812,2093,1},{7818,2147,1},{7822,2187,1},{7820,2240,1},{7823,2252,1},{7825,2283,1}, {7822,2322,1},{7815,2347,1},{7810,2337,1},{7808,2310,1},{7800,2308,1},{7825,2200,129}, {7825,2217,1},{7827,2227,1},{7843,2220,1},{7848,2223,1},{7852,2213,1},{7858,2208,1}, {7857,2195,1},{7858,2188,1},{7860,2172,1},{7857,2150,1},{7860,2145,1},{7862,2120,1}, {7858,2110,1},{7855,2105,1},{7855,2087,1},{7848,2017,1},{7847,2012,1},{7843,2052,1}, {7838,2067,1},{7835,2068,1},{7833,2053,1},{7832,2047,1},{7830,2067,1},{7828,2078,1}, {7827,2078,1},{7825,2070,1},{7820,2063,1},{7818,2067,1},{7822,2085,1},{7822,2102,1}, {7820,2105,1},{7823,2132,1},{7825,2172,1},{7825,2200,1},{7880,2662,129}, {7872,2678,1},{7870,2690,1},{7870,2702,1},{7865,2693,1},{7862,2673,1},{7865,2670,1}, {7870,2647,1},{7878,2642,1},{7882,2652,1},{7880,2662,1},{7897,2865,129}, {7895,2888,1},{7890,2910,1},{7892,2968,1},{7888,2970,1},{7888,2950,1},{7885,2932,1}, {7885,2912,1},{7890,2885,1},{7888,2865,1},{7888,2842,1},{7882,2810,1},{7883,2785,1}, {7887,2802,1},{7892,2815,1},{7892,2838,1},{7897,2842,1},{7897,2865,1},{8035,2485,129}, {8032,2490,1},{8025,2478,1},{8025,2505,1},{8028,2532,1},{8025,2523,1},{8022,2527,1}, {8023,2555,1},{8020,2562,1},{8022,2568,1},{8022,2577,1},{8017,2570,1},{8018,2598,1}, {8018,2663,1},{8017,2680,1},{8010,2700,1},{8010,2722,1},{7997,2710,1},{7990,2723,1}, {7985,2712,1},{7983,2687,1},{7978,2678,1},{7978,2665,1},{7972,2647,1},{7962,2580,1}, {7952,2598,1},{7940,2572,1},{7933,2515,1},{7933,2497,1},{7937,2493,1},{7937,2480,1}, {7932,2452,1},{7930,2428,1},{7922,2423,1},{7918,2407,1},{7918,2392,1},{7918,2332,1}, {7922,2297,1},{7923,2283,1},{7928,2267,1},{7933,2265,1},{7937,2265,1},{7942,2290,1}, {7940,2262,1},{7940,2215,1},{7937,2173,1},{7940,2142,1},{7937,2093,1},{7937,2080,1}, {7942,2083,1},{7947,2075,1},{7945,2060,1},{7947,2022,1},{7952,2000,1},{7955,1968,1}, {7962,1967,1},{7965,2015,1},{7958,2043,1},{7958,2087,1},{7957,2112,1},{7958,2110,1}, {7962,2065,1},{7968,2048,1},{7972,2118,1},{7970,2183,1},{7975,2188,1},{7977,2227,1}, {7978,2235,1},{7980,2232,1},{7977,2180,1},{7978,2183,1},{7978,2173,1},{7980,2177,1}, {7982,2188,1},{7983,2167,1},{7978,2033,1},{7975,1998,1},{7972,1952,1},{7973,1940,1}, {7972,1915,1},{7973,1893,1},{7972,1877,1},{7978,1868,1},{7980,1860,1},{7978,1847,1}, {7988,1823,1},{7990,1812,1},{7993,1830,1},{7997,1865,1},{7997,1868,1},{7997,1855,1}, {8000,1865,1},{7997,1880,1},{8000,1878,1},{8005,1893,1},{8002,1873,1},{8005,1822,1}, {8008,1815,1},{8008,1837,1},{8010,1822,1},{8010,1813,1},{8013,1803,1},{8010,1802,1}, {8013,1792,1},{8013,1778,1},{8018,1803,1},{8017,1805,1},{8018,1817,1},{8017,1840,1}, {8018,1845,1},{8018,1860,1},{8015,1872,1},{8020,1873,1},{8018,1892,1},{8008,1928,1}, {8013,1940,1},{8013,1957,1},{8017,1955,1},{8017,1932,1},{8020,1922,1},{8033,1898,1}, {8035,1902,1},{8033,1933,1},{8022,1962,1},{8022,1982,1},{8022,1985,1},{8025,1972,1}, {8028,1983,1},{8032,1977,1},{8033,1985,1},{8035,1977,1},{8038,1992,1},{8040,1972,1}, {8038,1955,1},{8040,1948,1},{8047,1948,1},{8043,1968,1},{8050,1967,1},{8047,1985,1}, {8047,2003,1},{8037,2008,1},{8042,2018,1},{8042,2033,1},{8042,2043,1},{8037,2048,1}, {8028,2062,1},{8032,2083,1},{8027,2075,1},{8022,2083,1},{8022,2113,1},{8025,2132,1}, {8020,2132,1},{8022,2138,1},{8027,2148,1},{8023,2168,1},{8027,2167,1},{8027,2187,1}, {8020,2190,1},{8012,2160,1},{8012,2168,1},{8015,2180,1},{8010,2205,1},{8005,2222,1}, {7998,2223,1},{8000,2235,1},{8003,2233,1},{8003,2240,1},{8000,2243,1},{8002,2248,1}, {8007,2235,1},{8005,2245,1},{8007,2247,1},{8012,2238,1},{8027,2245,1},{8030,2258,1}, {8035,2233,1},{8042,2237,1},{8043,2250,1},{8042,2268,1},{8042,2267,1},{8035,2262,1}, {8032,2275,1},{8035,2270,1},{8042,2283,1},{8052,2277,1},{8052,2285,1},{8047,2295,1}, {8045,2328,1},{8043,2337,1},{8040,2330,1},{8038,2312,1},{8037,2322,1},{8035,2320,1}, {8033,2335,1},{8028,2330,1},{8025,2305,1},{8015,2300,1},{8012,2315,1},{8012,2323,1}, {8017,2308,1},{8017,2323,1},{8020,2325,1},{8013,2338,1},{8020,2342,1},{8018,2350,1}, {8017,2347,1},{8013,2355,1},{8017,2367,1},{8018,2383,1},{8023,2373,1},{8025,2380,1}, {8025,2372,1},{8030,2377,1},{8028,2385,1},{8027,2402,1},{8030,2390,1},{8032,2393,1}, {8027,2418,1},{8030,2422,1},{8028,2435,1},{8032,2430,1},{8032,2440,1},{8033,2418,1}, {8037,2418,1},{8037,2438,1},{8033,2457,1},{8032,2460,1},{8030,2448,1},{8027,2447,1}, {8025,2453,1},{8030,2473,1},{8035,2480,1},{8035,2485,1},{8022,3310,129}, {8025,3332,1},{8022,3360,1},{8020,3360,1},{8017,3302,1},{8013,3283,1},{8008,3232,1}, {8007,3158,1},{8008,3147,1},{8012,3150,1},{8018,3285,1},{8022,3310,1},{7953,1068,129}, {7945,1092,1},{7940,1085,1},{7938,1092,1},{7937,1085,1},{7923,1113,1},{7910,1123,1}, {7917,1172,1},{7928,1155,1},{7932,1163,1},{7932,1170,1},{7922,1183,1},{7923,1192,1}, {7928,1183,1},{7928,1203,1},{7930,1208,1},{7930,1212,1},{7923,1205,1},{7922,1213,1}, {7920,1195,1},{7913,1185,1},{7913,1188,1},{7907,1168,1},{7902,1208,1},{7900,1212,1}, {7898,1198,1},{7897,1207,1},{7900,1227,1},{7900,1243,1},{7890,1250,1},{7888,1228,1}, {7890,1220,1},{7898,1160,1},{7897,1133,1},{7895,1135,1},{7887,1162,1},{7883,1193,1}, {7882,1190,1},{7882,1182,1},{7882,1173,1},{7873,1163,1},{7870,1175,1},{7870,1185,1}, {7863,1193,1},{7858,1222,1},{7858,1235,1},{7855,1238,1},{7852,1283,1},{7855,1310,1}, {7853,1320,1},{7850,1293,1},{7850,1252,1},{7848,1237,1},{7837,1270,1},{7835,1287,1}, {7833,1290,1},{7832,1285,1},{7827,1295,1},{7823,1292,1},{7820,1300,1},{7822,1315,1}, {7820,1360,1},{7820,1382,1},{7822,1387,1},{7827,1375,1},{7822,1395,1},{7828,1398,1}, {7828,1408,1},{7825,1403,1},{7823,1408,1},{7830,1433,1},{7835,1425,1},{7838,1428,1}, {7838,1437,1},{7837,1443,1},{7838,1447,1},{7838,1473,1},{7845,1467,1},{7848,1440,1}, {7853,1445,1},{7855,1458,1},{7865,1455,1},{7867,1445,1},{7868,1458,1},{7872,1468,1}, {7873,1482,1},{7867,1485,1},{7863,1480,1},{7860,1500,1},{7863,1505,1},{7865,1525,1}, {7867,1523,1},{7877,1522,1},{7885,1538,1},{7880,1548,1},{7878,1542,1},{7872,1550,1}, {7863,1545,1},{7862,1540,1},{7862,1523,1},{7858,1520,1},{7857,1527,1},{7850,1530,1}, {7845,1543,1},{7845,1568,1},{7848,1603,1},{7852,1605,1},{7857,1632,1},{7865,1637,1}, {7872,1655,1},{7867,1662,1},{7867,1683,1},{7865,1683,1},{7857,1655,1},{7848,1645,1}, {7845,1633,1},{7843,1640,1},{7843,1657,1},{7840,1660,1},{7838,1685,1},{7843,1722,1}, {7842,1730,1},{7833,1677,1},{7833,1627,1},{7835,1610,1},{7833,1592,1},{7833,1577,1}, {7830,1560,1},{7822,1573,1},{7823,1550,1},{7822,1530,1},{7813,1500,1},{7810,1498,1}, {7812,1477,1},{7808,1447,1},{7810,1425,1},{7808,1422,1},{7802,1433,1},{7797,1435,1}, {7797,1428,1},{7802,1423,1},{7808,1397,1},{7808,1385,1},{7805,1358,1},{7800,1368,1}, {7795,1363,1},{7785,1365,1},{7780,1382,1},{7775,1372,1},{7773,1377,1},{7775,1387,1}, {7772,1395,1},{7778,1415,1},{7777,1422,1},{7775,1427,1},{7775,1442,1},{7777,1463,1}, {7778,1452,1},{7778,1455,1},{7777,1472,1},{7778,1480,1},{7780,1510,1},{7787,1535,1}, {7788,1557,1},{7785,1572,1},{7783,1587,1},{7785,1615,1},{7785,1667,1},{7790,1673,1}, {7793,1700,1},{7792,1697,1},{7790,1700,1},{7787,1688,1},{7788,1682,1},{7788,1678,1}, {7783,1687,1},{7777,1712,1},{7780,1680,1},{7778,1647,1},{7780,1637,1},{7777,1627,1}, {7777,1605,1},{7773,1545,1},{7767,1473,1},{7762,1488,1},{7762,1520,1},{7760,1528,1}, {7757,1592,1},{7750,1605,1},{7747,1630,1},{7747,1620,1},{7743,1622,1},{7745,1608,1}, {7753,1583,1},{7753,1542,1},{7757,1500,1},{7755,1477,1},{7748,1472,1},{7748,1453,1}, {7753,1460,1},{7758,1448,1},{7757,1413,1},{7753,1392,1},{7750,1393,1},{7745,1405,1}, {7745,1395,1},{7740,1397,1},{7735,1417,1},{7728,1415,1},{7728,1432,1},{7723,1430,1}, {7717,1447,1},{7718,1463,1},{7717,1477,1},{7712,1505,1},{7710,1505,1},{7708,1513,1}, {7705,1513,1},{7702,1523,1},{7700,1535,1},{7702,1590,1},{7707,1587,1},{7705,1595,1}, {7707,1597,1},{7708,1602,1},{7702,1608,1},{7702,1620,1},{7698,1625,1},{7700,1637,1}, {7700,1653,1},{7698,1632,1},{7695,1633,1},{7693,1623,1},{7695,1623,1},{7698,1615,1}, {7697,1593,1},{7693,1585,1},{7695,1577,1},{7693,1572,1},{7692,1557,1},{7688,1550,1}, {7683,1573,1},{7675,1598,1},{7670,1630,1},{7665,1633,1},{7658,1630,1},{7657,1635,1}, {7662,1643,1},{7660,1655,1},{7657,1662,1},{7657,1683,1},{7660,1700,1},{7663,1700,1}, {7663,1710,1},{7667,1710,1},{7670,1720,1},{7675,1712,1},{7678,1692,1},{7682,1695,1}, {7683,1707,1},{7685,1705,1},{7697,1732,1},{7705,1710,1},{7705,1735,1},{7707,1733,1}, {7715,1745,1},{7722,1743,1},{7725,1752,1},{7733,1750,1},{7737,1762,1},{7742,1767,1}, {7743,1762,1},{7745,1773,1},{7750,1775,1},{7750,1793,1},{7750,1802,1},{7750,1825,1}, {7750,1830,1},{7758,1828,1},{7778,1845,1},{7785,1845,1},{7790,1833,1},{7793,1837,1}, {7797,1850,1},{7802,1842,1},{7805,1855,1},{7803,1870,1},{7803,1883,1},{7810,1910,1}, {7817,1892,1},{7822,1908,1},{7828,1895,1},{7837,1907,1},{7845,1897,1},{7850,1950,1}, {7850,1967,1},{7857,1958,1},{7862,1972,1},{7862,1990,1},{7860,2002,1},{7862,2002,1}, {7863,2010,1},{7862,2017,1},{7865,2023,1},{7865,2042,1},{7862,2057,1},{7868,2067,1}, {7868,2075,1},{7867,2082,1},{7868,2087,1},{7863,2108,1},{7867,2122,1},{7865,2138,1}, {7870,2135,1},{7877,2155,1},{7885,2153,1},{7888,2112,1},{7892,2098,1},{7892,2078,1}, {7893,2052,1},{7898,2027,1},{7902,2005,1},{7902,1990,1},{7905,1993,1},{7910,1982,1}, {7915,1983,1},{7915,1960,1},{7918,1940,1},{7917,1942,1},{7918,1930,1},{7915,1918,1}, {7917,1892,1},{7922,1895,1},{7925,1887,1},{7925,1860,1},{7928,1880,1},{7930,1887,1}, {7943,1888,1},{7947,1877,1},{7953,1875,1},{7963,1835,1},{7962,1820,1},{7958,1810,1}, {7942,1793,1},{7938,1782,1},{7937,1768,1},{7937,1763,1},{7942,1777,1},{7950,1778,1}, {7955,1777,1},{7955,1760,1},{7957,1773,1},{7960,1775,1},{7965,1788,1},{7970,1808,1}, {7973,1810,1},{7988,1757,1},{7993,1728,1},{7997,1698,1},{7993,1688,1},{7988,1690,1}, {7987,1682,1},{7992,1670,1},{7995,1672,1},{8003,1655,1},{8007,1630,1},{8002,1605,1}, {7997,1598,1},{7993,1595,1},{7987,1613,1},{7987,1580,1},{7987,1568,1},{7977,1565,1}, {7958,1583,1},{7955,1592,1},{7952,1585,1},{7930,1597,1},{7923,1613,1},{7913,1620,1}, {7898,1637,1},{7893,1650,1},{7890,1645,1},{7892,1633,1},{7898,1615,1},{7905,1613,1}, {7915,1588,1},{7915,1580,1},{7910,1568,1},{7913,1565,1},{7922,1578,1},{7930,1563,1}, {7933,1548,1},{7952,1530,1},{7960,1528,1},{7977,1487,1},{7980,1458,1},{7980,1452,1}, {7968,1425,1},{7967,1432,1},{7963,1415,1},{7960,1427,1},{7960,1407,1},{7953,1388,1}, {7942,1405,1},{7940,1402,1},{7933,1415,1},{7927,1407,1},{7928,1400,1},{7928,1390,1}, {7938,1387,1},{7948,1360,1},{7948,1345,1},{7943,1347,1},{7947,1325,1},{7952,1327,1}, {7953,1342,1},{7958,1348,1},{7960,1327,1},{7958,1295,1},{7955,1260,1},{7957,1245,1}, {7958,1250,1},{7960,1270,1},{7967,1302,1},{7968,1302,1},{7970,1325,1},{7970,1328,1}, {7970,1337,1},{7970,1363,1},{7973,1388,1},{7977,1397,1},{7982,1397,1},{7987,1382,1}, {7982,1302,1},{7978,1283,1},{7977,1267,1},{7975,1252,1},{7978,1255,1},{7982,1243,1}, {7983,1233,1},{7983,1220,1},{7978,1217,1},{7972,1235,1},{7967,1232,1},{7970,1217,1}, {7967,1217,1},{7968,1205,1},{7973,1203,1},{7975,1193,1},{7983,1183,1},{7983,1170,1}, {7980,1163,1},{7980,1152,1},{7977,1153,1},{7978,1120,1},{7972,1120,1},{7965,1147,1}, {7963,1145,1},{7965,1102,1},{7962,1093,1},{7960,1085,1},{7957,1118,1},{7955,1072,1}, {7953,1068,1},{7873,1063,129},{7877,1053,1},{7883,1058,1},{7890,1048,1}, {7888,1083,1},{7883,1100,1},{7878,1100,1},{7877,1112,1},{7873,1118,1},{7868,1107,1}, {7867,1115,1},{7862,1115,1},{7862,1127,1},{7853,1127,1},{7855,1142,1},{7852,1147,1}, {7847,1163,1},{7845,1177,1},{7843,1188,1},{7840,1187,1},{7828,1210,1},{7822,1217,1}, {7820,1215,1},{7823,1188,1},{7830,1183,1},{7845,1135,1},{7843,1117,1},{7843,1110,1}, {7868,1080,1},{7873,1063,1},{6892,1542,129},{6898,1542,1},{6910,1557,1}, {6912,1562,1},{6915,1577,1},{6925,1587,1},{6928,1600,1},{6932,1612,1},{6928,1615,1}, {6915,1608,1},{6905,1587,1},{6903,1587,1},{6898,1562,1},{6902,1555,1},{6897,1557,1}, {6890,1552,1},{6887,1547,1},{6892,1542,1},{6827,1498,129},{6830,1500,1}, {6833,1507,1},{6837,1510,1},{6845,1523,1},{6845,1537,1},{6847,1525,1},{6848,1525,1}, {6848,1533,1},{6850,1528,1},{6852,1527,1},{6852,1518,1},{6855,1522,1},{6855,1532,1}, {6858,1532,1},{6858,1537,1},{6855,1545,1},{6860,1538,1},{6860,1545,1},{6862,1543,1}, {6860,1563,1},{6863,1558,1},{6865,1547,1},{6870,1543,1},{6873,1547,1},{6873,1562,1}, {6870,1572,1},{6873,1565,1},{6873,1550,1},{6877,1545,1},{6880,1547,1},{6882,1563,1}, {6883,1557,1},{6885,1555,1},{6888,1557,1},{6888,1562,1},{6890,1560,1},{6895,1563,1}, {6895,1580,1},{6897,1587,1},{6895,1592,1},{6892,1590,1},{6888,1593,1},{6880,1588,1}, {6873,1577,1},{6878,1593,1},{6878,1598,1},{6875,1598,1},{6868,1593,1},{6862,1577,1}, {6855,1578,1},{6853,1573,1},{6855,1582,1},{6862,1582,1},{6867,1598,1},{6867,1603,1}, {6863,1603,1},{6863,1608,1},{6868,1608,1},{6870,1603,1},{6872,1607,1},{6873,1622,1}, {6877,1620,1},{6878,1612,1},{6882,1608,1},{6885,1620,1},{6883,1630,1},{6890,1625,1}, {6887,1633,1},{6885,1645,1},{6882,1645,1},{6882,1655,1},{6878,1650,1},{6877,1655,1}, {6875,1652,1},{6870,1657,1},{6868,1653,1},{6863,1657,1},{6860,1648,1},{6855,1650,1}, {6855,1622,1},{6852,1615,1},{6853,1610,1},{6837,1593,1},{6837,1587,1},{6848,1587,1}, {6843,1585,1},{6842,1583,1},{6843,1577,1},{6838,1582,1},{6840,1578,1},{6842,1575,1}, {6837,1573,1},{6837,1567,1},{6835,1570,1},{6830,1562,1},{6833,1552,1},{6833,1532,1}, {6847,1562,1},{6850,1555,1},{6847,1555,1},{6842,1543,1},{6842,1537,1},{6837,1527,1}, {6835,1520,1},{6833,1523,1},{6830,1513,1},{6825,1503,1},{6827,1498,1},{7452,1898,129}, {7452,1913,1},{7452,1918,1},{7447,1930,1},{7437,1918,1},{7435,1907,1},{7448,1878,1}, {7450,1883,1},{7452,1898,1},{5733,1712,129},{5732,1712,1},{5727,1705,1}, {5723,1707,1},{5718,1705,1},{5717,1702,1},{5703,1695,1},{5703,1690,1},{5702,1693,1}, {5697,1687,1},{5692,1688,1},{5685,1685,1},{5680,1677,1},{5660,1668,1},{5655,1663,1}, {5637,1658,1},{5623,1650,1},{5622,1643,1},{5623,1642,1},{5642,1642,1},{5647,1638,1}, {5658,1642,1},{5687,1662,1},{5690,1673,1},{5698,1678,1},{5710,1688,1},{5720,1690,1}, {5723,1697,1},{5732,1698,1},{5737,1705,1},{5733,1708,1},{5735,1710,1},{5733,1712,1}, {5790,1900,129},{5782,1908,1},{5782,1902,1},{5777,1898,1},{5778,1895,1}, {5772,1893,1},{5773,1882,1},{5762,1877,1},{5760,1880,1},{5750,1877,1},{5747,1877,1}, {5747,1880,1},{5745,1878,1},{5743,1882,1},{5743,1892,1},{5740,1892,1},{5738,1890,1}, {5738,1887,1},{5737,1878,1},{5733,1873,1},{5728,1867,1},{5727,1868,1},{5727,1872,1}, {5723,1872,1},{5720,1857,1},{5720,1858,1},{5718,1855,1},{5713,1840,1},{5712,1840,1}, {5712,1845,1},{5708,1835,1},{5702,1833,1},{5700,1840,1},{5700,1835,1},{5698,1835,1}, {5693,1830,1},{5692,1822,1},{5692,1813,1},{5698,1820,1},{5702,1820,1},{5703,1827,1}, {5708,1828,1},{5705,1823,1},{5707,1820,1},{5708,1822,1},{5713,1823,1},{5713,1817,1}, {5723,1815,1},{5725,1810,1},{5728,1810,1},{5732,1815,1},{5738,1818,1},{5740,1815,1}, {5745,1812,1},{5753,1812,1},{5760,1818,1},{5765,1830,1},{5782,1847,1},{5783,1855,1}, {5783,1862,1},{5788,1863,1},{5792,1868,1},{5792,1872,1},{5792,1875,1},{5782,1880,1}, {5788,1885,1},{5792,1885,1},{5792,1892,1},{5788,1890,1},{5788,1895,1},{5790,1895,1}, {5790,1900,1},{6232,64848,129},{6233,64841,1},{6230,64833,1},{6232,64828,1}, {6230,64828,1},{6218,64841,1},{6217,64846,1},{6215,64851,1},{6210,64861,1}, {6213,64863,1},{6218,64854,1},{6218,64861,1},{6213,64866,1},{6208,64866,1}, {6205,64869,1},{6210,64871,1},{6210,64876,1},{6215,64869,1},{6213,64879,1}, {6218,64864,1},{6220,64866,1},{6218,64874,1},{6220,64876,1},{6222,64866,1}, {6223,64858,1},{6223,64861,1},{6227,64863,1},{6227,64854,1},{6228,64856,1}, {6228,64846,1},{6223,64844,1},{6228,64843,1},{6232,64848,1},{6230,64819,129}, {6228,64829,1},{6220,64838,1},{6218,64836,1},{6213,64851,1},{6212,64851,1}, {6210,64846,1},{6210,64854,1},{6207,64858,1},{6205,64851,1},{6203,64864,1}, {6200,64863,1},{6198,64866,1},{6193,64864,1},{6200,64849,1},{6203,64846,1}, {6205,64839,1},{6210,64834,1},{6212,64824,1},{6213,64823,1},{6215,64824,1}, {6215,64819,1},{6215,64816,1},{6217,64813,1},{6223,64818,1},{6228,64814,1}, {6230,64816,1},{6230,64819,1},{7113,64703,129},{7118,64736,1},{7113,64743,1}, {7110,64736,1},{7103,64738,1},{7100,64723,1},{7097,64696,1},{7097,64689,1}, {7097,64674,1},{7082,64638,1},{7082,64628,1},{7087,64624,1},{7087,64631,1}, {7092,64643,1},{7093,64654,1},{7097,64663,1},{7102,64684,1},{7113,64703,1}, {3997,318,129},{3995,320,1},{3990,310,1},{3988,310,1},{3987,312,1},{3990,322,1}, {3985,318,1},{3983,313,1},{3978,313,1},{3975,327,1},{3978,335,1},{3978,338,1}, {3975,347,1},{3972,348,1},{3965,345,1},{3963,342,1},{3960,340,1},{3950,330,1}, {3943,328,1},{3937,323,1},{3927,307,1},{3937,297,1},{3937,280,1},{3942,275,1}, {3948,273,1},{3952,275,1},{3957,268,1},{3957,263,1},{3953,255,1},{3947,252,1}, {3948,248,1},{3952,247,1},{3952,248,1},{3953,245,1},{3953,238,1},{3953,237,1}, {3958,235,1},{3962,237,1},{3967,247,1},{3970,252,1},{3972,258,1},{3977,263,1}, {3977,265,1},{3987,282,1},{3987,285,1},{3992,295,1},{3993,303,1},{3993,307,1}, {3997,318,1},{4003,422,129},{3998,428,1},{3997,428,1},{3995,427,1},{3995,430,1}, {3988,435,1},{3988,432,1},{3987,433,1},{3983,433,1},{3982,432,1},{3982,430,1}, {3983,422,1},{3993,405,1},{3995,398,1},{3993,392,1},{3993,385,1},{4000,387,1}, {4003,382,1},{4007,387,1},{4007,410,1},{4008,412,1},{4007,412,1},{4007,415,1}, {4003,415,1},{4005,417,1},{4007,418,1},{4007,420,1},{4003,420,1},{4003,422,1}, {3912,155,129},{3912,162,1},{3910,162,1},{3907,160,1},{3903,163,1},{3903,160,1}, {3900,158,1},{3898,155,1},{3895,153,1},{3892,147,1},{3892,145,1},{3885,140,1}, {3883,138,1},{3888,135,1},{3888,123,1},{3892,122,1},{3897,123,1},{3898,130,1}, {3903,130,1},{3908,137,1},{3913,153,1},{3912,155,1},{4300,943,129},{4298,947,1}, {4297,945,1},{4282,948,1},{4263,943,1},{4258,948,1},{4257,952,1},{4265,945,1}, {4262,948,1},{4253,953,1},{4250,953,1},{4243,955,1},{4238,953,1},{4227,957,1}, {4213,955,1},{4195,942,1},{4195,940,1},{4192,942,1},{4188,940,1},{4170,940,1}, {4168,937,1},{4165,938,1},{4163,935,1},{4162,935,1},{4162,930,1},{4160,928,1}, {4158,928,1},{4160,932,1},{4158,935,1},{4157,935,1},{4153,927,1},{4150,927,1}, {4150,928,1},{4147,927,1},{4145,922,1},{4142,922,1},{4140,922,1},{4142,925,1}, {4137,922,1},{4137,917,1},{4140,913,1},{4140,910,1},{4143,912,1},{4145,907,1}, {4148,908,1},{4147,903,1},{4148,892,1},{4150,892,1},{4150,888,1},{4152,888,1}, {4152,885,1},{4153,885,1},{4155,878,1},{4158,880,1},{4158,878,1},{4163,880,1}, {4165,887,1},{4167,888,1},{4168,892,1},{4172,882,1},{4170,878,1},{4172,877,1}, {4173,878,1},{4172,872,1},{4173,870,1},{4175,865,1},{4177,872,1},{4180,872,1}, {4182,877,1},{4183,878,1},{4185,875,1},{4185,878,1},{4188,878,1},{4190,880,1}, {4193,878,1},{4193,875,1},{4192,872,1},{4190,862,1},{4193,862,1},{4197,858,1}, {4197,865,1},{4198,867,1},{4200,865,1},{4202,867,1},{4205,875,1},{4207,872,1}, {4212,870,1},{4212,865,1},{4213,862,1},{4213,858,1},{4215,858,1},{4215,857,1}, {4217,858,1},{4217,857,1},{4218,858,1},{4220,858,1},{4223,855,1},{4227,868,1}, {4230,867,1},{4232,860,1},{4233,863,1},{4235,862,1},{4233,855,1},{4238,855,1}, {4238,862,1},{4242,862,1},{4242,867,1},{4243,865,1},{4247,868,1},{4248,865,1}, {4252,867,1},{4252,872,1},{4258,872,1},{4257,872,1},{4255,877,1},{4258,880,1}, {4260,882,1},{4262,887,1},{4263,888,1},{4263,902,1},{4267,905,1},{4268,905,1}, {4273,912,1},{4272,925,1},{4268,930,1},{4273,935,1},{4280,933,1},{4283,930,1}, {4287,933,1},{4290,932,1},{4292,937,1},{4300,933,1},{4300,938,1},{4300,943,1}, {3825,1562,129},{3823,1557,1},{3820,1555,1},{3820,1557,1},{3817,1553,1}, {3808,1550,1},{3795,1537,1},{3785,1530,1},{3775,1522,1},{3770,1522,1},{3763,1518,1}, {3758,1518,1},{3748,1508,1},{3732,1510,1},{3730,1517,1},{3730,1522,1},{3727,1525,1}, {3723,1527,1},{3725,1523,1},{3723,1523,1},{3722,1523,1},{3725,1522,1},{3723,1520,1}, {3718,1518,1},{3715,1522,1},{3715,1525,1},{3715,1523,1},{3712,1523,1},{3710,1530,1}, {3707,1530,1},{3705,1528,1},{3703,1528,1},{3705,1532,1},{3702,1533,1},{3700,1528,1}, {3697,1527,1},{3697,1522,1},{3692,1515,1},{3680,1510,1},{3667,1513,1},{3665,1508,1}, {3670,1502,1},{3668,1497,1},{3670,1493,1},{3672,1492,1},{3673,1487,1},{3670,1478,1}, {3672,1473,1},{3672,1470,1},{3675,1467,1},{3677,1458,1},{3678,1450,1},{3682,1447,1}, {3687,1443,1},{3697,1437,1},{3707,1425,1},{3712,1410,1},{3710,1388,1},{3715,1382,1}, {3715,1375,1},{3718,1367,1},{3728,1357,1},{3728,1348,1},{3730,1343,1},{3735,1338,1}, {3738,1328,1},{3745,1322,1},{3748,1317,1},{3750,1302,1},{3755,1298,1},{3757,1292,1}, {3757,1275,1},{3755,1265,1},{3763,1260,1},{3767,1257,1},{3765,1252,1},{3770,1247,1}, {3773,1247,1},{3780,1242,1},{3782,1245,1},{3787,1248,1},{3792,1245,1},{3797,1250,1}, {3800,1250,1},{3802,1250,1},{3802,1252,1},{3807,1257,1},{3808,1263,1},{3812,1267,1}, {3812,1272,1},{3815,1273,1},{3817,1272,1},{3818,1273,1},{3818,1277,1},{3815,1277,1}, {3815,1278,1},{3812,1278,1},{3807,1282,1},{3802,1290,1},{3803,1295,1},{3808,1307,1}, {3810,1307,1},{3813,1305,1},{3818,1310,1},{3818,1315,1},{3817,1318,1},{3818,1323,1}, {3820,1323,1},{3822,1332,1},{3817,1337,1},{3813,1337,1},{3810,1338,1},{3810,1345,1}, {3812,1350,1},{3810,1353,1},{3807,1353,1},{3803,1357,1},{3800,1365,1},{3798,1372,1}, {3797,1377,1},{3805,1402,1},{3802,1407,1},{3802,1425,1},{3802,1437,1},{3805,1443,1}, {3805,1452,1},{3808,1465,1},{3817,1473,1},{3815,1478,1},{3817,1488,1},{3818,1492,1}, {3815,1498,1},{3815,1503,1},{3812,1508,1},{3818,1520,1},{3822,1523,1},{3827,1523,1}, {3825,1525,1},{3822,1525,1},{3820,1528,1},{3823,1542,1},{3830,1553,1},{3827,1565,1}, {3825,1562,1},{4125,925,129},{4123,927,1},{4118,927,1},{4122,928,1},{4120,928,1}, {4118,942,1},{4117,940,1},{4113,943,1},{4108,945,1},{4113,947,1},{4113,952,1}, {4115,952,1},{4113,953,1},{4112,953,1},{4112,957,1},{4108,957,1},{4108,953,1}, {4102,952,1},{4103,955,1},{4100,955,1},{4100,967,1},{4098,965,1},{4100,960,1}, {4098,958,1},{4093,957,1},{4092,950,1},{4092,957,1},{4090,958,1},{4092,962,1}, {4092,963,1},{4088,962,1},{4088,965,1},{4085,967,1},{4083,972,1},{4083,968,1}, {4080,968,1},{4080,967,1},{4078,967,1},{4075,972,1},{4070,972,1},{4068,975,1}, {4060,975,1},{4053,983,1},{4040,977,1},{4035,970,1},{4025,962,1},{4020,962,1}, {4015,965,1},{4008,973,1},{4007,973,1},{3997,968,1},{3995,968,1},{3993,970,1}, {3993,972,1},{3992,972,1},{3990,968,1},{3972,968,1},{3967,965,1},{3957,965,1}, {3950,963,1},{3945,965,1},{3933,960,1},{3930,963,1},{3928,960,1},{3925,958,1}, {3915,957,1},{3912,952,1},{3910,952,1},{3913,950,1},{3913,940,1},{3915,940,1}, {3920,932,1},{3923,923,1},{3920,917,1},{3918,917,1},{3920,912,1},{3925,908,1}, {3925,905,1},{3927,902,1},{3922,903,1},{3922,908,1},{3917,903,1},{3913,902,1}, {3908,902,1},{3905,905,1},{3898,902,1},{3898,900,1},{3888,885,1},{3890,880,1}, {3888,880,1},{3893,872,1},{3888,865,1},{3887,865,1},{3887,863,1},{3890,863,1}, {3890,860,1},{3895,862,1},{3897,860,1},{3895,858,1},{3905,857,1},{3907,850,1}, {3908,852,1},{3908,848,1},{3905,847,1},{3897,843,1},{3897,840,1},{3903,837,1}, {3908,835,1},{3912,837,1},{3910,838,1},{3910,843,1},{3907,847,1},{3908,848,1}, {3912,847,1},{3912,843,1},{3917,843,1},{3918,842,1},{3917,840,1},{3920,840,1}, {3922,837,1},{3923,837,1},{3927,842,1},{3930,843,1},{3933,842,1},{3933,840,1}, {3937,837,1},{3943,840,1},{3947,838,1},{3952,843,1},{3960,847,1},{3963,845,1}, {3975,845,1},{3975,847,1},{3972,848,1},{3970,855,1},{3970,857,1},{3970,855,1}, {3972,850,1},{3975,853,1},{3978,855,1},{3975,852,1},{3980,855,1},{3987,855,1}, {3990,852,1},{3990,845,1},{3988,843,1},{3990,847,1},{3985,843,1},{3988,843,1}, {3990,840,1},{3997,838,1},{4002,842,1},{4003,838,1},{4005,845,1},{4008,848,1}, {4017,845,1},{4028,848,1},{4032,847,1},{4035,838,1},{4042,840,1},{4050,837,1}, {4052,833,1},{4058,830,1},{4057,822,1},{4057,820,1},{4058,820,1},{4060,822,1}, {4062,818,1},{4058,817,1},{4057,817,1},{4062,815,1},{4063,818,1},{4068,820,1}, {4073,813,1},{4088,822,1},{4093,818,1},{4097,820,1},{4095,823,1},{4090,823,1}, {4085,828,1},{4082,847,1},{4085,860,1},{4088,863,1},{4092,870,1},{4092,878,1}, {4097,885,1},{4102,887,1},{4103,892,1},{4112,902,1},{4113,910,1},{4115,913,1}, {4115,915,1},{4118,917,1},{4120,915,1},{4123,917,1},{4127,923,1},{4125,925,1}, {4050,2565,129},{4047,2570,1},{4042,2570,1},{4040,2560,1},{4040,2555,1}, {4048,2545,1},{4052,2555,1},{4050,2565,1},{4000,2545,129},{3998,2545,1}, {3995,2540,1},{3992,2538,1},{3992,2535,1},{3990,2537,1},{3988,2533,1},{3987,2535,1}, {3985,2533,1},{3982,2537,1},{3978,2535,1},{3980,2530,1},{3985,2527,1},{3985,2523,1}, {3988,2528,1},{3992,2527,1},{3992,2523,1},{3988,2520,1},{3988,2522,1},{3985,2518,1}, {3985,2520,1},{3980,2522,1},{3982,2513,1},{3985,2517,1},{3983,2513,1},{3985,2512,1}, {3983,2505,1},{3985,2507,1},{3988,2505,1},{3992,2507,1},{3993,2505,1},{3998,2503,1}, {4000,2513,1},{4000,2515,1},{3998,2527,1},{3995,2528,1},{3997,2532,1},{3997,2535,1}, {3998,2533,1},{4002,2537,1},{4003,2545,1},{4002,2543,1},{4000,2545,1},{3532,2632,129}, {3527,2627,1},{3520,2627,1},{3518,2632,1},{3517,2628,1},{3508,2627,1},{3503,2623,1}, {3502,2620,1},{3500,2612,1},{3502,2608,1},{3502,2600,1},{3503,2598,1},{3500,2580,1}, {3502,2570,1},{3502,2560,1},{3498,2550,1},{3500,2538,1},{3495,2520,1},{3493,2497,1}, {3493,2483,1},{3492,2480,1},{3493,2473,1},{3502,2477,1},{3508,2472,1},{3510,2457,1}, {3515,2453,1},{3515,2445,1},{3518,2438,1},{3517,2428,1},{3520,2420,1},{3518,2405,1}, {3523,2400,1},{3522,2392,1},{3525,2382,1},{3523,2378,1},{3523,2360,1},{3525,2358,1}, {3528,2353,1},{3530,2352,1},{3532,2355,1},{3538,2353,1},{3543,2357,1},{3547,2355,1}, {3548,2358,1},{3550,2357,1},{3562,2360,1},{3552,2362,1},{3550,2365,1},{3552,2373,1}, {3557,2373,1},{3560,2372,1},{3562,2372,1},{3565,2370,1},{3568,2373,1},{3567,2378,1}, {3565,2377,1},{3555,2378,1},{3552,2385,1},{3552,2405,1},{3555,2405,1},{3555,2410,1}, {3558,2408,1},{3560,2413,1},{3558,2418,1},{3555,2420,1},{3552,2418,1},{3550,2417,1}, {3552,2408,1},{3550,2407,1},{3545,2420,1},{3547,2425,1},{3545,2427,1},{3537,2427,1}, {3535,2432,1},{3538,2460,1},{3542,2465,1},{3543,2472,1},{3540,2483,1},{3542,2488,1}, {3540,2492,1},{3540,2497,1},{3542,2498,1},{3542,2502,1},{3540,2505,1},{3538,2505,1}, {3535,2507,1},{3535,2518,1},{3533,2523,1},{3533,2538,1},{3528,2545,1},{3533,2565,1}, {3533,2577,1},{3530,2573,1},{3527,2572,1},{3527,2573,1},{3528,2575,1},{3525,2575,1}, {3525,2573,1},{3517,2572,1},{3513,2573,1},{3510,2580,1},{3512,2583,1},{3515,2585,1}, {3517,2590,1},{3518,2590,1},{3520,2598,1},{3523,2603,1},{3522,2612,1},{3520,2612,1}, {3520,2617,1},{3525,2623,1},{3527,2623,1},{3528,2628,1},{3530,2630,1},{3532,2632,1}, {5315,14183,129},{5307,14192,1},{5302,14193,1},{5287,14185,1},{5278,14187,1}, {5273,14183,1},{5270,14185,1},{5265,14185,1},{5260,14180,1},{5258,14183,1}, {5245,14177,1},{5238,14167,1},{5232,14163,1},{5227,14167,1},{5222,14165,1}, {5217,14170,1},{5208,14163,1},{5195,14168,1},{5188,14163,1},{5183,14177,1}, {5178,14182,1},{5173,14183,1},{5172,14180,1},{5175,14170,1},{5173,14168,1}, {5168,14178,1},{5160,14188,1},{5162,14193,1},{5158,14195,1},{5157,14193,1}, {5147,14208,1},{5143,14210,1},{5142,14208,1},{5140,14208,1},{5132,14218,1}, {5127,14217,1},{5112,14227,1},{5097,14222,1},{5088,14213,1},{5085,14213,1}, {5082,14210,1},{5077,14210,1},{5053,14205,1},{5035,14215,1},{5028,14213,1}, {5025,14215,1},{5008,14218,1},{4988,14213,1},{4978,14217,1},{4955,14213,1}, {4933,14207,1},{4920,14208,1},{4913,14203,1},{4905,14203,1},{4895,14200,1}, {4892,14197,1},{4885,14197,1},{4878,14187,1},{4875,14185,1},{4862,14192,1}, {4840,14208,1},{4832,14213,1},{4797,14218,1},{4792,14217,1},{4785,14208,1}, {4777,14207,1},{4770,14200,1},{4760,14197,1},{4745,14195,1},{4735,14198,1}, {4728,14197,1},{4723,14203,1},{4708,14207,1},{4698,14202,1},{4658,14182,1}, {4643,14183,1},{4628,14190,1},{4608,14193,1},{4603,14193,1},{4588,14208,1}, {4600,14212,1},{4603,14220,1},{4608,14220,1},{4617,14225,1},{4628,14227,1}, {4658,14242,1},{4667,14250,1},{4670,14258,1},{4672,14268,1},{4675,14272,1}, {4670,14273,1},{4660,14278,1},{4660,14293,1},{4660,14298,1},{4658,14307,1}, {4658,14317,1},{4657,14323,1},{4652,14330,1},{4655,14328,1},{4655,14338,1}, {4650,14338,1},{4648,14333,1},{4645,14335,1},{4638,14335,1},{4620,14343,1}, {4612,14343,1},{4608,14340,1},{4602,14343,1},{4610,14347,1},{4618,14348,1}, {4622,14352,1},{4628,14353,1},{4630,14357,1},{4635,14358,1},{4637,14362,1}, {4640,14357,1},{4642,14358,1},{4658,14352,1},{4672,14352,1},{4683,14347,1}, {4683,14343,1},{4678,14342,1},{4678,14337,1},{4683,14318,1},{4680,14317,1}, {4678,14318,1},{4673,14337,1},{4670,14340,1},{4668,14337,1},{4672,14323,1}, {4670,14317,1},{4677,14313,1},{4680,14308,1},{4683,14310,1},{4683,14317,1}, {4685,14317,1},{4687,14315,1},{4685,14313,1},{4687,14310,1},{4688,14313,1}, {4707,14303,1},{4717,14303,1},{4725,14302,1},{4738,14287,1},{4743,14278,1}, {4743,14272,1},{4743,14275,1},{4760,14262,1},{4768,14257,1},{4778,14253,1}, {4790,14253,1},{4797,14255,1},{4800,14253,1},{4855,14278,1},{4892,14298,1}, {4903,14297,1},{4913,14302,1},{4922,14313,1},{4927,14327,1},{4930,14347,1}, {4930,14367,1},{4932,14360,1},{4932,14332,1},{4933,14333,1},{4935,14327,1}, {4938,14325,1},{4940,14338,1},{4938,14343,1},{4933,14350,1},{4933,14372,1}, {4932,14372,1},{4930,14368,1},{4927,14397,1},{4923,14410,1},{4913,14425,1}, {4907,14428,1},{4902,14435,1},{4898,14445,1},{4892,14453,1},{4878,14463,1}, {4865,14468,1},{4863,14475,1},{4867,14472,1},{4872,14468,1},{4875,14468,1}, {4878,14470,1},{4887,14468,1},{4903,14440,1},{4923,14428,1},{4942,14422,1}, {4952,14423,1},{4965,14413,1},{4977,14412,1},{4993,14402,1},{5002,14400,1}, {5028,14380,1},{5057,14370,1},{5080,14367,1},{5095,14360,1},{5125,14353,1}, {5130,14350,1},{5123,14352,1},{5122,14352,1},{5122,14348,1},{5128,14347,1}, {5135,14338,1},{5137,14343,1},{5133,14347,1},{5135,14347,1},{5148,14345,1}, {5157,14338,1},{5163,14338,1},{5163,14337,1},{5163,14335,1},{5162,14333,1}, {5150,14335,1},{5152,14330,1},{5150,14323,1},{5153,14322,1},{5167,14325,1}, {5172,14328,1},{5170,14332,1},{5173,14332,1},{5188,14323,1},{5185,14320,1}, {5187,14317,1},{5188,14317,1},{5192,14317,1},{5192,14313,1},{5197,14312,1}, {5197,14315,1},{5198,14317,1},{5203,14313,1},{5210,14313,1},{5210,14310,1}, {5215,14312,1},{5212,14315,1},{5232,14318,1},{5235,14317,1},{5232,14313,1}, {5233,14312,1},{5235,14312,1},{5233,14312,1},{5238,14315,1},{5248,14320,1}, {5252,14323,1},{5260,14325,1},{5258,14330,1},{5247,14323,1},{5247,14327,1}, {5245,14327,1},{5245,14323,1},{5245,14322,1},{5242,14320,1},{5233,14320,1}, {5247,14330,1},{5272,14333,1},{5280,14332,1},{5285,14335,1},{5332,14323,1}, {5340,14318,1},{5338,14312,1},{5338,14308,1},{5342,14312,1},{5345,14307,1}, {5348,14313,1},{5355,14310,1},{5353,14305,1},{5357,14298,1},{5358,14302,1}, {5360,14307,1},{5362,14305,1},{5362,14298,1},{5365,14303,1},{5367,14302,1}, {5367,14297,1},{5368,14298,1},{5370,14295,1},{5373,14295,1},{5377,14290,1}, {5382,14288,1},{5383,14293,1},{5380,14295,1},{5370,14300,1},{5387,14293,1}, {5387,14285,1},{5390,14287,1},{5390,14290,1},{5398,14293,1},{5407,14300,1}, {5413,14302,1},{5417,14295,1},{5425,14288,1},{5430,14282,1},{5442,14273,1}, {5442,14270,1},{5440,14268,1},{5435,14268,1},{5432,14262,1},{5428,14265,1}, {5427,14263,1},{5428,14258,1},{5427,14258,1},{5423,14258,1},{5423,14257,1}, {5423,14253,1},{5428,14252,1},{5432,14260,1},{5427,14243,1},{5427,14238,1}, {5430,14228,1},{5423,14240,1},{5413,14248,1},{5393,14272,1},{5387,14272,1}, {5368,14260,1},{5372,14268,1},{5383,14273,1},{5383,14277,1},{5370,14280,1}, {5363,14273,1},{5363,14268,1},{5368,14263,1},{5367,14260,1},{5367,14252,1}, {5365,14250,1},{5353,14252,1},{5357,14257,1},{5357,14260,1},{5355,14267,1}, {5353,14268,1},{5352,14268,1},{5352,14263,1},{5350,14258,1},{5338,14248,1}, {5337,14242,1},{5338,14238,1},{5335,14235,1},{5338,14225,1},{5347,14223,1}, {5348,14225,1},{5352,14223,1},{5353,14225,1},{5348,14207,1},{5338,14178,1}, {5337,14177,1},{5333,14180,1},{5330,14182,1},{5327,14180,1},{5320,14183,1}, {5315,14183,1},{4552,14880,129},{4547,14887,1},{4542,14880,1},{4537,14885,1}, {4533,14883,1},{4532,14875,1},{4532,14858,1},{4525,14847,1},{4522,14828,1}, {4508,14803,1},{4500,14795,1},{4497,14785,1},{4497,14780,1},{4493,14777,1}, {4497,14770,1},{4497,14762,1},{4492,14758,1},{4490,14762,1},{4480,14753,1}, {4467,14728,1},{4458,14723,1},{4455,14720,1},{4453,14708,1},{4450,14702,1}, {4440,14695,1},{4440,14688,1},{4440,14685,1},{4445,14683,1},{4452,14692,1}, {4458,14692,1},{4460,14693,1},{4455,14693,1},{4455,14698,1},{4457,14700,1}, {4462,14698,1},{4462,14707,1},{4462,14710,1},{4467,14715,1},{4472,14717,1}, {4475,14710,1},{4478,14708,1},{4480,14712,1},{4477,14717,1},{4478,14720,1}, {4485,14725,1},{4488,14733,1},{4497,14748,1},{4508,14750,1},{4508,14757,1}, {4505,14758,1},{4508,14767,1},{4518,14775,1},{4522,14788,1},{4535,14785,1}, {4542,14792,1},{4542,14797,1},{4537,14797,1},{4532,14800,1},{4527,14800,1}, {4525,14805,1},{4527,14832,1},{4535,14843,1},{4540,14847,1},{4545,14855,1}, {4547,14860,1},{4550,14863,1},{4552,14872,1},{4552,14880,1},{4560,14947,129}, {4558,14943,1},{4560,14957,1},{4563,14958,1},{4560,14960,1},{4563,14967,1}, {4577,14987,1},{4578,14992,1},{4583,14998,1},{4583,15003,1},{4590,15017,1}, {4593,15020,1},{4602,15023,1},{4622,15057,1},{4620,15050,1},{4622,15043,1}, {4622,15035,1},{4615,15022,1},{4610,15018,1},{4608,15013,1},{4608,15008,1}, {4600,14993,1},{4590,14985,1},{4588,14982,1},{4587,14978,1},{4585,14967,1}, {4580,14963,1},{4578,14960,1},{4575,14958,1},{4570,14955,1},{4568,14950,1}, {4560,14947,1},{4713,15220,129},{4717,15223,1},{4708,15212,1},{4698,15203,1}, {4693,15193,1},{4687,15187,1},{4687,15175,1},{4685,15170,1},{4680,15172,1}, {4677,15177,1},{4678,15183,1},{4683,15190,1},{4687,15193,1},{4688,15202,1}, {4697,15208,1},{4700,15215,1},{4707,15217,1},{4715,15230,1},{4717,15227,1}, {4715,15223,1},{4712,15220,1},{5005,15523,129},{5005,15538,1},{5003,15538,1}, {5000,15537,1},{5000,15538,1},{5002,15542,1},{5005,15543,1},{5012,15548,1}, {5018,15560,1},{5018,15578,1},{5023,15580,1},{5025,15588,1},{5037,15598,1}, {5042,15603,1},{5048,15605,1},{5048,15607,1},{5048,15612,1},{5052,15615,1}, {5057,15613,1},{5060,15617,1},{5063,15612,1},{5075,15612,1},{5078,15607,1}, {5077,15602,1},{5068,15588,1},{5058,15585,1},{5053,15578,1},{5045,15577,1}, {5038,15567,1},{5037,15543,1},{5035,15540,1},{5028,15533,1},{5030,15525,1}, {5028,15520,1},{5025,15518,1},{5022,15525,1},{5013,15525,1},{5008,15522,1}, {5005,15523,1},{5533,16623,129},{5532,16617,1},{5533,16610,1},{5537,16595,1}, {5535,16592,1},{5532,16590,1},{5528,16573,1},{5525,16590,1},{5522,16598,1}, {5518,16597,1},{5515,16605,1},{5510,16608,1},{5507,16607,1},{5498,16617,1}, {5493,16620,1},{5490,16628,1},{5482,16638,1},{5483,16640,1},{5482,16650,1}, {5478,16648,1},{5467,16667,1},{5470,16665,1},{5473,16667,1},{5480,16663,1}, {5485,16665,1},{5490,16658,1},{5495,16647,1},{5500,16638,1},{5508,16633,1}, {5515,16625,1},{5525,16622,1},{5530,16628,1},{5533,16625,1},{5857,16338,129}, {5847,16345,1},{5858,16358,1},{5860,16367,1},{5868,16382,1},{5872,16392,1}, {5873,16395,1},{5877,16408,1},{5882,16415,1},{5882,16427,1},{5883,16430,1}, {5885,16437,1},{5887,16442,1},{5887,16460,1},{5890,16467,1},{5898,16467,1}, {5903,16472,1},{5910,16463,1},{5918,16462,1},{5918,16458,1},{5923,16457,1}, {5920,16443,1},{5913,16432,1},{5905,16403,1},{5903,16392,1},{5902,16375,1}, {5900,16368,1},{5900,16367,1},{5902,16375,1},{5900,16385,1},{5902,16388,1}, {5900,16390,1},{5892,16377,1},{5875,16370,1},{5863,16357,1},{5858,16348,1}, {5857,16338,1},{7080,17878,129},{7087,17905,1},{7088,17927,1},{7087,17945,1}, {7090,17968,1},{7095,17980,1},{7100,17998,1},{7100,47544,1},{7097,47554,1}, {7095,47571,1},{7092,47588,1},{7092,47603,1},{7090,47604,1},{7097,47649,1}, {7100,47684,1},{7103,47714,1},{7103,47743,1},{7108,47754,1},{7112,47773,1}, {7117,47786,1},{7122,47791,1},{7128,47786,1},{7130,47764,1},{7137,47751,1}, {7140,47733,1},{7145,47734,1},{7148,47723,1},{7148,47711,1},{7152,47703,1}, {7150,47709,1},{7157,47679,1},{7158,47639,1},{7160,47633,1},{7158,47618,1}, {7155,47606,1},{7158,47574,1},{7157,47566,1},{7158,47563,1},{7157,47553,1}, {7155,47546,1},{7153,47549,1},{7153,17993,1},{7152,17985,1},{7148,17987,1}, {7148,17977,1},{7147,17977,1},{7145,17972,1},{7143,17953,1},{7140,17947,1}, {7130,17920,1},{7122,17887,1},{7118,17885,1},{7108,17865,1},{7103,17862,1}, {7090,17875,1},{7080,17878,1},{6977,16942,129},{6982,16945,1},{6987,16940,1}, {6990,16922,1},{6993,16887,1},{6997,16877,1},{7002,16827,1},{7000,16815,1}, {6998,16813,1},{6993,16795,1},{6983,16775,1},{6980,16780,1},{6977,16805,1}, {6970,16815,1},{6960,16865,1},{6957,16887,1},{6957,16920,1},{6965,16930,1}, {6975,16927,1},{6977,16930,1},{6977,16942,1},{7425,13542,129},{7425,13535,1}, {7415,13545,1},{7415,13557,1},{7410,13567,1},{7403,13573,1},{7393,13603,1}, {7390,13607,1},{7387,13615,1},{7390,13623,1},{7398,13627,1},{7408,13607,1}, {7423,13557,1},{7425,13542,1},{7388,14058,129},{7390,14048,1},{7393,14030,1}, {7403,14012,1},{7408,14007,1},{7418,14008,1},{7423,14022,1},{7427,14032,1}, {7428,14057,1},{7428,14080,1},{7425,14098,1},{7422,14108,1},{7417,14112,1}, {7413,14107,1},{7402,14105,1},{7397,14097,1},{7397,14082,1},{7390,14045,1}, {7388,14115,129},{7387,14108,1},{7382,14092,1},{7355,14060,1},{7345,14030,1}, {7343,13970,1},{7340,13965,1},{7337,13968,1},{7335,13973,1},{7335,14002,1}, {7342,14030,1},{7345,14063,1},{7345,14082,1},{7338,14113,1},{7337,14138,1}, {7330,14163,1},{7327,14222,1},{7323,14238,1},{7325,14265,1},{7320,14318,1}, {7323,14345,1},{7323,14355,1},{7332,14348,1},{7340,14343,1},{7345,14353,1}, {7352,14343,1},{7363,14318,1},{7367,14302,1},{7383,14252,1},{7387,14225,1}, {7392,14203,1},{7392,14172,1},{7387,14135,1},{7387,14123,1},{7388,14117,1}, {7558,14650,129},{7558,14642,1},{7557,14637,1},{7550,14633,1},{7547,14640,1}, {7545,14630,1},{7542,14625,1},{7540,14627,1},{7538,14617,1},{7528,14617,1}, {7522,14608,1},{7517,14632,1},{7510,14673,1},{7500,14713,1},{7497,14732,1}, {7497,14755,1},{7495,14770,1},{7492,14773,1},{7488,14787,1},{7478,14825,1}, {7477,14868,1},{7475,14917,1},{7477,14933,1},{7477,14970,1},{7478,14975,1}, {7483,15005,1},{7488,15047,1},{7488,15060,1},{7493,15068,1},{7500,15065,1}, {7505,15077,1},{7512,15085,1},{7513,15095,1},{7517,15083,1},{7515,15068,1}, {7513,15067,1},{7512,15063,1},{7508,15050,1},{7510,15047,1},{7513,15055,1}, {7513,15040,1},{7517,15028,1},{7515,15015,1},{7518,15022,1},{7522,15015,1}, {7528,14933,1},{7527,14908,1},{7522,14888,1},{7522,14858,1},{7528,14845,1}, {7538,14857,1},{7542,14838,1},{7540,14815,1},{7542,14782,1},{7543,14760,1}, {7543,14735,1},{7542,14738,1},{7538,14743,1},{7538,14737,1},{7540,14737,1}, {7538,14722,1},{7537,14717,1},{7535,14718,1},{7537,14732,1},{7535,14735,1}, {7533,14713,1},{7533,14697,1},{7537,14677,1},{7542,14663,1},{7548,14668,1}, {7550,14677,1},{7558,14650,1},{7480,13983,129},{7483,14030,1},{7490,14092,1}, {7493,14152,1},{7500,14192,1},{7500,14223,1},{7497,14223,1},{7492,14235,1}, {7497,14207,1},{7495,14198,1},{7493,14197,1},{7488,14207,1},{7482,14243,1}, {7482,14255,1},{7483,14270,1},{7485,14272,1},{7485,14262,1},{7490,14270,1}, {7487,14282,1},{7488,14293,1},{7490,14348,1},{7493,14370,1},{7498,14367,1}, {7502,14358,1},{7500,14342,1},{7502,14332,1},{7505,14310,1},{7507,14285,1}, {7510,14262,1},{7517,14255,1},{7522,14242,1},{7525,14242,1},{7538,14215,1}, {7547,14218,1},{7553,14207,1},{7558,14213,1},{7562,14200,1},{7563,14222,1}, {7565,14202,1},{7567,14203,1},{7565,14223,1},{7567,14242,1},{7568,14240,1}, {7572,14230,1},{7573,14267,1},{7572,14270,1},{7572,14293,1},{7567,14303,1}, {7560,14302,1},{7555,14273,1},{7545,14250,1},{7542,14253,1},{7537,14250,1}, {7530,14265,1},{7523,14272,1},{7522,14283,1},{7513,14290,1},{7513,14300,1}, {7507,14337,1},{7508,14355,1},{7507,14375,1},{7503,14397,1},{7505,14418,1}, {7505,14440,1},{7512,14452,1},{7517,14470,1},{7525,14473,1},{7527,14493,1}, {7530,14488,1},{7533,14467,1},{7540,14468,1},{7543,14475,1},{7552,14520,1}, {7552,14540,1},{7560,14520,1},{7563,14483,1},{7568,14472,1},{7572,14448,1}, {7583,14390,1},{7582,14378,1},{7583,14378,1},{7587,14363,1},{7583,14338,1}, {7580,14337,1},{7582,14325,1},{7580,14308,1},{7585,14257,1},{7588,14247,1}, {7593,14237,1},{7612,14170,1},{7613,14155,1},{7618,14135,1},{7617,14130,1}, {7615,14138,1},{7605,14150,1},{7600,14162,1},{7605,14118,1},{7605,14100,1}, {7600,14092,1},{7573,14087,1},{7565,14107,1},{7560,14092,1},{7563,14077,1}, {7562,14068,1},{7565,14043,1},{7572,14047,1},{7575,14053,1},{7580,14050,1}, {7582,14043,1},{7582,14027,1},{7580,14015,1},{7582,14013,1},{7583,13997,1}, {7588,13978,1},{7593,13983,1},{7592,13990,1},{7597,13983,1},{7598,13965,1}, {7603,13947,1},{7607,13918,1},{7612,13902,1},{7620,13897,1},{7622,13887,1}, {7623,13905,1},{7622,13873,1},{7620,13857,1},{7617,13850,1},{7605,13843,1}, {7613,13833,1},{7615,13837,1},{7612,13817,1},{7605,13797,1},{7608,13810,1}, {7607,13810,1},{7602,13800,1},{7600,13772,1},{7595,13742,1},{7588,13743,1}, {7580,13762,1},{7578,13772,1},{7575,13775,1},{7578,13752,1},{7577,13747,1}, {7578,13730,1},{7578,13718,1},{7572,13707,1},{7568,13715,1},{7565,13715,1}, {7560,13697,1},{7558,13698,1},{7557,13708,1},{7562,13697,1},{7565,13713,1}, {7558,13728,1},{7558,13718,1},{7553,13718,1},{7547,13730,1},{7547,13715,1}, {7542,13713,1},{7540,13717,1},{7542,13725,1},{7542,13740,1},{7538,13743,1}, {7535,13738,1},{7533,13722,1},{7535,13710,1},{7538,13705,1},{7538,13693,1}, {7535,13687,1},{7530,13693,1},{7527,13692,1},{7513,13713,1},{7503,13748,1}, {7502,13762,1},{7502,13765,1},{7498,13778,1},{7485,13788,1},{7477,13817,1}, {7472,13875,1},{7465,13907,1},{7465,13922,1},{7468,13935,1},{7477,13950,1}, {7483,13955,1},{7488,13965,1},{7485,13957,1},{7487,13948,1},{7488,13947,1}, {7493,13947,1},{7498,13965,1},{7497,13973,1},{7497,13985,1},{7492,13987,1}, {7490,13997,1},{7482,14007,1},{7537,13545,129},{7537,13550,1},{7537,13582,1}, {7540,13593,1},{7543,13603,1},{7550,13597,1},{7562,13618,1},{7570,13587,1}, {7587,13570,1},{7567,13553,1},{7562,13558,1},{7557,13558,1},{7545,13545,1}, {7538,13545,1},{7410,11282,129},{7420,11297,1},{7422,11317,1},{7428,11328,1}, {7430,11323,1},{7435,11337,1},{7438,11338,1},{7438,11343,1},{7445,11340,1}, {7448,11328,1},{7450,11310,1},{7450,11272,1},{7455,11213,1},{7453,11203,1}, {7447,11197,1},{7445,11200,1},{7438,11198,1},{7435,11188,1},{7437,11170,1}, {7435,11148,1},{7430,11147,1},{7425,11158,1},{7422,11197,1},{7413,11217,1}, {7413,11232,1},{7410,11258,1},{7410,11282,1},{7795,9947,129},{7793,9952,1}, {7797,9965,1},{7795,9988,1},{7795,10002,1},{7803,10048,1},{7807,10062,1}, {7807,10072,1},{7810,10092,1},{7817,10113,1},{7820,10128,1},{7820,10200,1}, {7818,10203,1},{7820,10208,1},{7822,10255,1},{7822,10267,1},{7817,10268,1}, {7818,10285,1},{7822,10287,1},{7825,10300,1},{7823,10317,1},{7827,10360,1}, {7827,10383,1},{7832,10418,1},{7835,10465,1},{7833,10477,1},{7850,10537,1}, {7858,10540,1},{7860,10532,1},{7865,10533,1},{7882,10517,1},{7885,10492,1}, {7883,10472,1},{7880,10473,1},{7877,10458,1},{7883,10465,1},{7885,10437,1}, {7885,10448,1},{7888,10452,1},{7897,10443,1},{7898,10430,1},{7900,10407,1}, {7903,10408,1},{7907,10398,1},{7912,10402,1},{7913,10395,1},{7913,10382,1}, {7915,10383,1},{7913,10363,1},{7917,10365,1},{7915,10353,1},{7910,10345,1}, {7910,10330,1},{7908,10330,1},{7905,10312,1},{7905,10292,1},{7888,10267,1}, {7883,10253,1},{7882,10238,1},{7903,10270,1},{7907,10267,1},{7913,10280,1}, {7915,10273,1},{7922,10283,1},{7927,10290,1},{7928,10297,1},{7928,10308,1}, {7932,10317,1},{7933,10312,1},{7933,10297,1},{7938,10290,1},{7943,10237,1}, {7942,10222,1},{7935,10213,1},{7923,10225,1},{7927,10195,1},{7930,10197,1}, {7937,10182,1},{7935,10155,1},{7925,10153,1},{7923,10128,1},{7920,10120,1}, {7917,10112,1},{7913,10127,1},{7913,10110,1},{7912,10103,1},{7907,10098,1}, {7898,10162,1},{7898,10150,1},{7903,10108,1},{7898,10090,1},{7888,10078,1}, {7880,10083,1},{7878,10110,1},{7875,10117,1},{7880,10060,1},{7875,10038,1}, {7865,10025,1},{7857,10027,1},{7843,10008,1},{7842,10000,1},{7833,10005,1}, {7825,9973,1},{7817,9952,1},{7808,9943,1},{7803,9927,1},{7798,9942,1},{7795,9937,1}, {7795,9945,1},{7925,9947,129},{7930,9967,1},{7937,9975,1},{7947,9968,1}, {7952,9978,1},{7957,9972,1},{7968,9988,1},{7973,9982,1},{7975,9997,1},{7977,10008,1}, {7980,10000,1},{7982,10002,1},{7993,9968,1},{7993,9950,1},{7997,9955,1}, {7998,9937,1},{8002,9937,1},{8002,9917,1},{8003,9922,1},{8003,9877,1},{8003,9865,1}, {8005,9853,1},{8002,9843,1},{7997,9858,1},{7992,9843,1},{7987,9838,1},{7987,9828,1}, {7990,9805,1},{7990,9790,1},{7987,9788,1},{7985,9792,1},{7980,9772,1},{7977,9772,1}, {7970,9723,1},{7972,9722,1},{7978,9762,1},{7980,9752,1},{7982,9755,1},{7983,9765,1}, {7985,9758,1},{7988,9777,1},{7998,9785,1},{8002,9798,1},{8005,9808,1},{8008,9793,1}, {8015,9770,1},{8017,9753,1},{8017,9715,1},{8013,9692,1},{8012,9673,1},{8013,9660,1}, {8010,9650,1},{8010,9637,1},{8012,9628,1},{8010,9623,1},{8008,9618,1},{8008,9610,1}, {8012,9607,1},{8010,9588,1},{8012,9558,1},{8008,9540,1},{8003,9535,1},{8002,9527,1}, {8005,9510,1},{8010,9500,1},{8010,9493,1},{8007,9493,1},{8003,9480,1},{8002,9477,1}, {7997,9447,1},{7997,9433,1},{7993,9438,1},{7990,9423,1},{7988,9433,1},{7987,9435,1}, {7985,9450,1},{7982,9468,1},{7977,9408,1},{7968,9380,1},{7965,9378,1},{7962,9365,1}, {7955,9328,1},{7955,9308,1},{7957,9292,1},{7955,9285,1},{7953,9312,1},{7952,9302,1}, {7952,9307,1},{7952,9328,1},{7950,9330,1},{7947,9312,1},{7943,9320,1},{7948,9352,1}, {7950,9345,1},{7952,9347,1},{7955,9367,1},{7960,9380,1},{7960,9388,1},{7953,9368,1}, {7948,9398,1},{7945,9372,1},{7943,9395,1},{7943,9407,1},{7947,9407,1},{7947,9433,1}, {7925,9432,1},{7920,9463,1},{7913,9462,1},{7907,9483,1},{7907,9498,1},{7905,9498,1}, {7903,9505,1},{7907,9528,1},{7910,9550,1},{7907,9565,1},{7900,9570,1},{7900,9603,1}, {7902,9627,1},{7902,9637,1},{7898,9630,1},{7900,9675,1},{7897,9687,1},{7895,9685,1}, {7887,9722,1},{7885,9725,1},{7883,9760,1},{7883,9742,1},{7882,9742,1},{7882,9775,1}, {7880,9780,1},{7882,9808,1},{7880,9808,1},{7880,9825,1},{7878,9830,1},{7878,9858,1}, {7880,9858,1},{7880,9900,1},{7883,9922,1},{7882,9943,1},{7883,9952,1},{7893,9992,1}, {7897,9995,1},{7902,9987,1},{7908,9985,1},{7913,9950,1},{7917,9960,1},{7928,9905,1}, {7930,9905,1},{7930,9915,1},{7928,9930,1},{7925,9945,1},{8128,9560,129}, {8127,9510,1},{8123,9507,1},{8122,9555,1},{8122,9513,1},{8112,9475,1},{8110,9450,1}, {8110,9435,1},{8107,9407,1},{8105,9368,1},{8103,9365,1},{8103,9347,1},{8100,9307,1}, {8092,9315,1},{8088,9270,1},{8085,9273,1},{8077,9248,1},{8075,9253,1},{8075,9268,1}, {8077,9277,1},{8077,9287,1},{8077,9312,1},{8080,9333,1},{8065,9283,1},{8052,9278,1}, {8050,9230,1},{8045,9188,1},{8042,9208,1},{8040,9252,1},{8038,9262,1},{8038,9230,1}, {8040,9213,1},{8040,9207,1},{8038,9212,1},{8038,9168,1},{8037,9168,1},{8035,9153,1}, {8032,9142,1},{8030,9147,1},{8032,9163,1},{8028,9157,1},{8030,9245,1},{8032,9285,1}, {8030,9325,1},{8027,9328,1},{8030,9282,1},{8028,9240,1},{8028,9210,1},{8023,9225,1}, {8017,9288,1},{8018,9233,1},{8020,9220,1},{8017,9207,1},{8015,9262,1},{8008,9308,1}, {8003,9330,1},{8002,9357,1},{8000,9368,1},{8007,9438,1},{8013,9452,1},{8012,9468,1}, {8013,9482,1},{8013,9507,1},{8017,9543,1},{8020,9557,1},{8022,9597,1},{8023,9720,1}, {8030,9742,1},{8033,9735,1},{8035,9720,1},{8043,9720,1},{8052,9702,1},{8058,9705,1}, {8065,9720,1},{8067,9713,1},{8065,9735,1},{8067,9758,1},{8067,9773,1},{8068,9777,1}, {8070,9797,1},{8072,9797,1},{8073,9775,1},{8077,9788,1},{8080,9775,1},{8082,9778,1}, {8083,9752,1},{8083,9742,1},{8085,9742,1},{8090,9695,1},{8093,9690,1},{8095,9675,1}, {8098,9663,1},{8100,9673,1},{8103,9653,1},{8108,9655,1},{8117,9617,1},{8120,9615,1}, {8120,9597,1},{8123,9602,1},{8128,9578,1},{8128,9560,1},{7233,7687,129}, {7235,7688,1},{7247,7723,1},{7255,7733,1},{7263,7762,1},{7258,7818,1},{7252,7835,1}, {7248,7838,1},{7242,7818,1},{7237,7793,1},{7230,7778,1},{7228,7757,1},{7228,7722,1}, {7227,7710,1},{7230,7688,1},{7235,7687,1},{7303,6987,129},{7313,6992,1}, {7318,7002,1},{7323,7007,1},{7340,6997,1},{7345,7020,1},{7350,7048,1},{7347,7052,1}, {7352,7088,1},{7348,7108,1},{7345,7125,1},{7343,7125,1},{7343,7110,1},{7340,7115,1}, {7335,7108,1},{7330,7110,1},{7328,7107,1},{7328,7100,1},{7327,7098,1},{7327,7108,1}, {7327,7125,1},{7325,7128,1},{7327,7128,1},{7328,7128,1},{7332,7140,1},{7335,7143,1}, {7327,7162,1},{7318,7168,1},{7317,7135,1},{7313,7127,1},{7312,7108,1},{7313,7090,1}, {7307,7053,1},{7303,7042,1},{7303,7022,1},{7310,7010,1},{7305,7000,1},{7303,7010,1}, {7302,7010,1},{7303,6988,1},{7305,6987,1},{6908,4823,129},{6925,4828,1}, {6935,4842,1},{6945,4867,1},{6950,4892,1},{6952,4902,1},{6950,4932,1},{6928,5012,1}, {6915,5032,1},{6912,5033,1},{6907,5027,1},{6900,5015,1},{6900,5012,1},{6903,5012,1}, {6915,5023,1},{6915,5020,1},{6907,4995,1},{6902,4985,1},{6900,4992,1},{6900,4990,1}, {6888,4968,1},{6882,4948,1},{6882,4930,1},{6880,4930,1},{6877,4918,1},{6872,4878,1}, {6875,4872,1},{6873,4868,1},{6873,4858,1},{6885,4830,1},{6888,4833,1},{6890,4827,1}, {6888,4823,1},{6895,4823,1},{6898,4827,1},{6900,4822,1},{6903,4827,1},{6905,4822,1}, {6908,4825,1},{7178,5140,129},{7193,5145,1},{7208,5160,1},{7217,5187,1}, {7212,5193,1},{7210,5205,1},{7207,5207,1},{7213,5220,1},{7208,5220,1},{7207,5233,1}, {7208,5242,1},{7215,5237,1},{7215,5248,1},{7217,5250,1},{7222,5240,1},{7222,5248,1}, {7222,5247,1},{7223,5248,1},{7228,5242,1},{7225,5258,1},{7228,5258,1},{7232,5268,1}, {7233,5268,1},{7237,5258,1},{7233,5275,1},{7235,5287,1},{7237,5270,1},{7243,5267,1}, {7245,5282,1},{7247,5277,1},{7248,5267,1},{7252,5275,1},{7252,5287,1},{7257,5292,1}, {7260,5310,1},{7258,5292,1},{7255,5275,1},{7260,5278,1},{7262,5282,1},{7262,5273,1}, {7263,5277,1},{7267,5297,1},{7265,5322,1},{7268,5298,1},{7267,5273,1},{7267,5255,1}, {7270,5250,1},{7272,5238,1},{7273,5238,1},{7275,5240,1},{7275,5247,1},{7278,5248,1}, {7285,5260,1},{7292,5297,1},{7292,5307,1},{7287,5332,1},{7288,5338,1},{7290,5328,1}, {7290,5338,1},{7293,5340,1},{7293,5323,1},{7297,5313,1},{7302,5315,1},{7300,5338,1}, {7307,5327,1},{7307,5318,1},{7308,5313,1},{7312,5317,1},{7315,5315,1},{7322,5333,1}, {7323,5345,1},{7323,5357,1},{7327,5365,1},{7330,5377,1},{7328,5397,1},{7327,5405,1}, {7327,5423,1},{7330,5433,1},{7332,5442,1},{7338,5457,1},{7342,5493,1},{7338,5517,1}, {7333,5533,1},{7332,5545,1},{7332,5577,1},{7328,5580,1},{7325,5603,1},{7325,5620,1}, {7323,5643,1},{7317,5657,1},{7313,5658,1},{7312,5655,1},{7307,5580,1},{7307,5627,1}, {7305,5643,1},{7305,5647,1},{7300,5635,1},{7300,5608,1},{7297,5562,1},{7295,5568,1}, {7293,5600,1},{7297,5618,1},{7297,5625,1},{7297,5627,1},{7288,5623,1},{7282,5622,1}, {7278,5613,1},{7278,5598,1},{7280,5587,1},{7277,5573,1},{7278,5567,1},{7282,5550,1}, {7278,5543,1},{7278,5557,1},{7275,5572,1},{7275,5583,1},{7267,5595,1},{7267,5580,1}, {7270,5563,1},{7267,5565,1},{7263,5573,1},{7262,5570,1},{7262,5562,1},{7257,5568,1}, {7253,5560,1},{7253,5557,1},{7258,5545,1},{7258,5527,1},{7257,5545,1},{7253,5547,1}, {7252,5555,1},{7247,5555,1},{7245,5538,1},{7245,5512,1},{7243,5547,1},{7235,5547,1}, {7230,5537,1},{7225,5553,1},{7220,5558,1},{7207,5535,1},{7205,5545,1},{7198,5535,1}, {7193,5538,1},{7195,5527,1},{7193,5525,1},{7192,5522,1},{7192,5540,1},{7188,5552,1}, {7177,5553,1},{7160,5567,1},{7138,5602,1},{7127,5608,1},{7120,5623,1},{7107,5655,1}, {7100,5667,1},{7095,5685,1},{7087,5705,1},{7082,5732,1},{7082,5745,1},{7078,5748,1}, {7073,5763,1},{7073,5753,1},{7075,5745,1},{7073,5743,1},{7070,5755,1},{7063,5745,1}, {7062,5740,1},{7060,5745,1},{7060,5740,1},{7067,5703,1},{7067,5698,1},{7065,5698,1}, {7067,5688,1},{7070,5682,1},{7070,5673,1},{7063,5685,1},{7062,5707,1},{7063,5715,1}, {7060,5718,1},{7057,5735,1},{7057,5732,1},{7060,5693,1},{7063,5673,1},{7067,5662,1}, {7065,5660,1},{7063,5670,1},{7063,5660,1},{7067,5650,1},{7072,5652,1},{7073,5658,1}, {7075,5652,1},{7073,5645,1},{7072,5643,1},{7073,5623,1},{7072,5622,1},{7070,5632,1}, {7070,5620,1},{7068,5630,1},{7067,5622,1},{7065,5623,1},{7065,5638,1},{7068,5635,1}, {7067,5645,1},{7065,5648,1},{7063,5653,1},{7063,5647,1},{7062,5647,1},{7058,5665,1}, {7055,5655,1},{7057,5637,1},{7057,5655,1},{7058,5653,1},{7060,5628,1},{7067,5607,1}, {7065,5603,1},{7063,5612,1},{7062,5618,1},{7058,5617,1},{7060,5613,1},{7065,5597,1}, {7068,5582,1},{7065,5585,1},{7058,5605,1},{7057,5602,1},{7060,5595,1},{7058,5588,1}, {7062,5583,1},{7062,5568,1},{7063,5560,1},{7062,5570,1},{7062,5572,1},{7067,5560,1}, {7063,5573,1},{7063,5580,1},{7070,5575,1},{7073,5562,1},{7072,5560,1},{7068,5570,1}, {7065,5575,1},{7068,5565,1},{7070,5550,1},{7075,5542,1},{7070,5535,1},{7068,5543,1}, {7065,5547,1},{7068,5540,1},{7067,5538,1},{7068,5528,1},{7065,5523,1},{7060,5530,1}, {7058,5527,1},{7058,5522,1},{7055,5520,1},{7055,5517,1},{7063,5497,1},{7068,5475,1}, {7072,5470,1},{7075,5472,1},{7078,5457,1},{7082,5452,1},{7077,5457,1},{7078,5450,1}, {7073,5448,1},{7070,5465,1},{7068,5462,1},{7067,5473,1},{7065,5475,1},{7065,5467,1}, {7068,5453,1},{7070,5455,1},{7072,5443,1},{7077,5428,1},{7077,5427,1},{7073,5428,1}, {7073,5422,1},{7075,5413,1},{7073,5412,1},{7073,5405,1},{7082,5385,1},{7078,5388,1}, {7080,5382,1},{7080,5372,1},{7082,5365,1},{7083,5355,1},{7085,5357,1},{7083,5353,1}, {7080,5353,1},{7082,5347,1},{7085,5340,1},{7087,5330,1},{7087,5343,1},{7087,5352,1}, {7088,5357,1},{7087,5362,1},{7083,5368,1},{7087,5368,1},{7090,5367,1},{7095,5375,1}, {7098,5370,1},{7107,5350,1},{7110,5348,1},{7107,5360,1},{7107,5368,1},{7108,5367,1}, {7110,5370,1},{7105,5392,1},{7113,5382,1},{7113,5393,1},{7113,5403,1},{7112,5407,1}, {7113,5393,1},{7112,5393,1},{7110,5392,1},{7110,5408,1},{7112,5423,1},{7113,5423,1}, {7112,5415,1},{7115,5398,1},{7118,5403,1},{7118,5410,1},{7120,5405,1},{7122,5407,1}, {7120,5417,1},{7123,5408,1},{7123,5403,1},{7117,5395,1},{7120,5387,1},{7120,5380,1}, {7115,5382,1},{7117,5370,1},{7118,5372,1},{7120,5357,1},{7125,5345,1},{7130,5360,1}, {7140,5372,1},{7142,5388,1},{7147,5395,1},{7147,5387,1},{7143,5382,1},{7138,5357,1}, {7132,5353,1},{7128,5348,1},{7132,5337,1},{7145,5325,1},{7147,5333,1},{7152,5335,1}, {7153,5343,1},{7157,5335,1},{7150,5320,1},{7142,5313,1},{7150,5305,1},{7148,5300,1}, {7143,5303,1},{7143,5297,1},{7140,5297,1},{7138,5290,1},{7147,5285,1},{7147,5280,1}, {7142,5282,1},{7143,5273,1},{7148,5270,1},{7147,5263,1},{7147,5262,1},{7153,5265,1}, {7158,5255,1},{7162,5257,1},{7163,5252,1},{7157,5250,1},{7153,5237,1},{7147,5240,1}, {7152,5227,1},{7158,5225,1},{7153,5213,1},{7147,5228,1},{7148,5215,1},{7147,5208,1}, {7147,5195,1},{7145,5182,1},{7150,5173,1},{7153,5160,1},{7157,5153,1},{7160,5155,1}, {7168,5147,1},{7172,5147,1},{7172,5142,1},{7180,5140,1},{7468,5698,129}, {7467,5678,1},{7468,5650,1},{7470,5643,1},{7472,5642,1},{7465,5592,1},{7467,5587,1}, {7468,5587,1},{7468,5573,1},{7465,5553,1},{7462,5557,1},{7457,5550,1},{7457,5567,1}, {7455,5570,1},{7452,5565,1},{7455,5585,1},{7453,5605,1},{7452,5608,1},{7450,5602,1}, {7448,5603,1},{7448,5617,1},{7450,5623,1},{7448,5628,1},{7445,5590,1},{7445,5560,1}, {7443,5545,1},{7443,5537,1},{7437,5523,1},{7435,5550,1},{7432,5558,1},{7433,5567,1}, {7430,5575,1},{7427,5573,1},{7427,5567,1},{7430,5565,1},{7428,5557,1},{7427,5525,1}, {7430,5523,1},{7427,5513,1},{7427,5507,1},{7423,5513,1},{7423,5532,1},{7420,5558,1}, {7415,5563,1},{7413,5580,1},{7410,5587,1},{7412,5565,1},{7415,5548,1},{7415,5527,1}, {7418,5517,1},{7417,5510,1},{7417,5502,1},{7410,5478,1},{7402,5458,1},{7398,5478,1}, {7397,5480,1},{7395,5448,1},{7392,5425,1},{7387,5408,1},{7383,5407,1},{7378,5388,1}, {7378,5375,1},{7380,5368,1},{7380,5365,1},{7375,5363,1},{7365,5395,1},{7363,5393,1}, {7360,5407,1},{7360,5422,1},{7363,5440,1},{7370,5448,1},{7370,5455,1},{7372,5477,1}, {7373,5485,1},{7368,5485,1},{7372,5497,1},{7372,5535,1},{7370,5512,1},{7365,5487,1}, {7367,5475,1},{7362,5467,1},{7357,5437,1},{7348,5418,1},{7347,5430,1},{7347,5442,1}, {7345,5432,1},{7342,5428,1},{7338,5405,1},{7337,5405,1},{7335,5420,1},{7332,5422,1}, {7337,5440,1},{7340,5453,1},{7340,5468,1},{7343,5478,1},{7345,5497,1},{7340,5520,1}, {7333,5542,1},{7335,5570,1},{7333,5582,1},{7330,5593,1},{7333,5598,1},{7335,5598,1}, {7340,5597,1},{7343,5587,1},{7343,5590,1},{7342,5602,1},{7335,5603,1},{7330,5607,1}, {7328,5613,1},{7325,5672,1},{7325,5677,1},{7327,5672,1},{7332,5680,1},{7333,5673,1}, {7337,5677,1},{7332,5688,1},{7335,5700,1},{7342,5717,1},{7345,5718,1},{7345,5725,1}, {7350,5725,1},{7360,5690,1},{7360,5675,1},{7362,5685,1},{7365,5675,1},{7367,5672,1}, {7367,5682,1},{7363,5687,1},{7358,5702,1},{7355,5733,1},{7358,5735,1},{7362,5760,1}, {7370,5758,1},{7383,5732,1},{7385,5670,1},{7388,5655,1},{7383,5740,1},{7382,5752,1}, {7372,5770,1},{7380,5793,1},{7387,5790,1},{7390,5782,1},{7392,5792,1},{7400,5767,1}, {7407,5755,1},{7408,5725,1},{7408,5732,1},{7408,5747,1},{7408,5753,1},{7412,5752,1}, {7418,5742,1},{7418,5755,1},{7405,5770,1},{7402,5790,1},{7398,5812,1},{7400,5822,1}, {7405,5820,1},{7405,5810,1},{7410,5817,1},{7413,5813,1},{7413,5825,1},{7408,5830,1}, {7413,5837,1},{7413,5852,1},{7415,5850,1},{7417,5830,1},{7418,5825,1},{7422,5827,1}, {7422,5833,1},{7418,5833,1},{7420,5838,1},{7417,5850,1},{7418,5858,1},{7422,5852,1}, {7422,5865,1},{7423,5853,1},{7423,5872,1},{7425,5868,1},{7427,5875,1},{7438,5857,1}, {7442,5863,1},{7448,5845,1},{7450,5843,1},{7455,5818,1},{7457,5818,1},{7450,5872,1}, {7447,5878,1},{7443,5905,1},{7443,5915,1},{7450,5910,1},{7458,5918,1},{7462,5922,1}, {7465,5908,1},{7467,5915,1},{7463,5928,1},{7472,5910,1},{7475,5912,1},{7462,5953,1}, {7458,5975,1},{7463,5988,1},{7468,5987,1},{7472,5978,1},{7473,5963,1},{7480,5952,1}, {7475,5970,1},{7473,5982,1},{7472,5997,1},{7475,6027,1},{7478,6037,1},{7482,6027,1}, {7485,6020,1},{7487,6057,1},{7492,6068,1},{7495,6063,1},{7497,6058,1},{7497,6010,1}, {7500,5993,1},{7498,6013,1},{7500,6018,1},{7502,6023,1},{7498,6023,1},{7500,6032,1}, {7502,6045,1},{7512,6050,1},{7510,6060,1},{7503,6058,1},{7502,6067,1},{7502,6073,1}, {7508,6082,1},{7510,6075,1},{7515,6085,1},{7522,6117,1},{7528,6130,1},{7533,6128,1}, {7532,6138,1},{7525,6138,1},{7522,6147,1},{7528,6165,1},{7537,6170,1},{7535,6182,1}, {7537,6183,1},{7545,6203,1},{7543,6222,1},{7545,6230,1},{7550,6253,1},{7553,6280,1}, {7558,6303,1},{7558,6330,1},{7563,6355,1},{7570,6362,1},{7570,6357,1},{7570,6367,1}, {7563,6373,1},{7567,6385,1},{7568,6402,1},{7572,6412,1},{7572,6433,1},{7580,6487,1}, {7580,6513,1},{7583,6520,1},{7588,6545,1},{7595,6597,1},{7595,6610,1},{7600,6628,1}, {7600,6645,1},{7605,6668,1},{7610,6710,1},{7618,6745,1},{7627,6800,1},{7628,6832,1}, {7630,6832,1},{7632,6817,1},{7633,6833,1},{7638,6843,1},{7640,6840,1},{7643,6858,1}, {7657,6893,1},{7658,6878,1},{7665,6885,1},{7670,6903,1},{7673,6890,1},{7678,6893,1}, {7682,6875,1},{7687,6882,1},{7688,6868,1},{7692,6858,1},{7693,6847,1},{7695,6850,1}, {7697,6813,1},{7700,6807,1},{7700,6795,1},{7702,6757,1},{7698,6733,1},{7695,6718,1}, {7695,6700,1},{7692,6688,1},{7690,6668,1},{7687,6660,1},{7685,6643,1},{7680,6633,1}, {7678,6623,1},{7675,6612,1},{7675,6595,1},{7668,6577,1},{7667,6575,1},{7663,6588,1}, {7658,6593,1},{7655,6602,1},{7653,6600,1},{7653,6590,1},{7658,6558,1},{7655,6540,1}, {7652,6535,1},{7650,6523,1},{7647,6517,1},{7647,6507,1},{7650,6507,1},{7647,6480,1}, {7645,6480,1},{7645,6472,1},{7642,6467,1},{7637,6467,1},{7640,6452,1},{7637,6443,1}, {7635,6428,1},{7632,6412,1},{7632,6403,1},{7635,6395,1},{7633,6385,1},{7635,6372,1}, {7632,6352,1},{7628,6348,1},{7627,6325,1},{7622,6298,1},{7622,6290,1},{7623,6292,1}, {7623,6285,1},{7627,6283,1},{7627,6275,1},{7625,6270,1},{7620,6263,1},{7622,6255,1}, {7618,6250,1},{7620,6238,1},{7627,6240,1},{7625,6223,1},{7627,6198,1},{7630,6192,1}, {7628,6182,1},{7632,6168,1},{7628,6157,1},{7627,6107,1},{7625,6098,1},{7622,6102,1}, {7615,6090,1},{7613,6097,1},{7615,6112,1},{7612,6115,1},{7607,6107,1},{7605,6082,1}, {7600,6073,1},{7602,6047,1},{7612,6083,1},{7612,6082,1},{7612,6043,1},{7610,6027,1}, {7605,6003,1},{7602,6033,1},{7598,6032,1},{7598,6003,1},{7592,5972,1},{7593,5962,1}, {7593,5940,1},{7588,5933,1},{7585,5912,1},{7587,5892,1},{7583,5877,1},{7578,5873,1}, {7578,5860,1},{7575,5853,1},{7572,5858,1},{7567,5798,1},{7562,5793,1},{7562,5815,1}, {7560,5820,1},{7557,5817,1},{7557,5802,1},{7553,5765,1},{7550,5750,1},{7545,5755,1}, {7545,5762,1},{7542,5767,1},{7532,5773,1},{7533,5753,1},{7537,5742,1},{7538,5718,1}, {7538,5705,1},{7535,5685,1},{7532,5677,1},{7528,5673,1},{7528,5688,1},{7523,5690,1}, {7507,5648,1},{7518,5638,1},{7515,5618,1},{7517,5615,1},{7520,5623,1},{7520,5608,1}, {7522,5610,1},{7522,5605,1},{7520,5593,1},{7515,5580,1},{7508,5573,1},{7508,5593,1}, {7500,5587,1},{7500,5605,1},{7502,5617,1},{7503,5642,1},{7502,5647,1},{7500,5642,1}, {7495,5630,1},{7497,5638,1},{7493,5635,1},{7497,5665,1},{7495,5668,1},{7495,5660,1}, {7492,5652,1},{7492,5638,1},{7487,5610,1},{7483,5585,1},{7480,5582,1},{7477,5593,1}, {7478,5608,1},{7480,5620,1},{7480,5648,1},{7475,5642,1},{7475,5653,1},{7470,5660,1}, {7470,5692,1},{7468,5697,1},{8083,6255,129},{8092,6297,1},{8097,6312,1}, {8098,6333,1},{8097,6393,1},{8098,6410,1},{8102,6418,1},{8105,6422,1},{8110,6412,1}, {8117,6425,1},{8120,6455,1},{8118,6487,1},{8113,6523,1},{8103,6545,1},{8100,6530,1}, {8098,6542,1},{8092,6547,1},{8080,6500,1},{8075,6458,1},{8073,6423,1},{8072,6380,1}, {8072,6365,1},{8068,6322,1},{8068,6308,1},{8072,6302,1},{8080,6252,1},{8085,6255,1}, {7993,5833,129},{7998,5867,1},{7993,5873,1},{7990,5898,1},{7987,5887,1}, {7992,5853,1},{7993,5828,1},{7993,5837,1},{8000,5880,129},{8003,5880,1}, {8012,5945,1},{8008,5982,1},{8000,5988,1},{7998,5992,1},{7995,5968,1},{7995,5943,1}, {7992,5937,1},{7993,5918,1},{7995,5917,1},{8000,5880,1},{8010,5763,129}, {8012,5753,1},{8013,5740,1},{8017,5727,1},{8033,5727,1},{8035,5720,1},{8040,5727,1}, {8048,5697,1},{8050,5737,1},{8048,5752,1},{8048,5793,1},{8047,5840,1},{8042,5892,1}, {8037,5920,1},{8033,5928,1},{8032,5922,1},{8033,5870,1},{8033,5858,1},{8032,5858,1}, {8032,5837,1},{8028,5813,1},{8025,5808,1},{8023,5847,1},{8017,5843,1},{8018,5807,1}, {8020,5805,1},{8017,5790,1},{8012,5802,1},{8010,5797,1},{8012,5763,1},{8012,5577,129}, {8018,5605,1},{8025,5595,1},{8033,5598,1},{8035,5618,1},{8032,5657,1},{8033,5667,1}, {8037,5675,1},{8035,5710,1},{8025,5708,1},{8020,5715,1},{8015,5703,1},{8012,5712,1}, {8007,5702,1},{8007,5673,1},{8007,5650,1},{8007,5597,1},{8010,5572,1},{8013,5580,1}, {8020,5232,129},{8027,5218,1},{8028,5235,1},{8028,5257,1},{8032,5260,1}, {8032,5273,1},{8035,5270,1},{8042,5293,1},{8040,5302,1},{8042,5315,1},{8040,5330,1}, {8033,5343,1},{8030,5362,1},{8028,5383,1},{8025,5387,1},{8022,5372,1},{8025,5365,1}, {8023,5358,1},{8018,5352,1},{8017,5343,1},{8018,5313,1},{8017,5272,1},{8020,5260,1}, {8020,5233,1},{8022,5232,1},{7998,5005,129},{8000,5028,1},{7998,5045,1}, {7998,5057,1},{8005,5067,1},{8007,5087,1},{8010,5097,1},{8007,5107,1},{8005,5127,1}, {8000,5120,1},{7997,5137,1},{7995,5135,1},{7993,5150,1},{7992,5137,1},{7993,5052,1}, {7995,5042,1},{7997,5008,1},{7998,5007,1},{8008,4762,129},{8017,4778,1}, {8020,4808,1},{8020,4785,1},{8023,4795,1},{8023,4745,1},{8022,4733,1},{8018,4738,1}, {8018,4717,1},{8017,4712,1},{8018,4692,1},{8023,4690,1},{8023,4683,1},{8028,4663,1}, {8030,4663,1},{8037,4703,1},{8037,4715,1},{8030,4725,1},{8032,4742,1},{8030,4753,1}, {8032,4768,1},{8030,4800,1},{8032,4795,1},{8033,4818,1},{8037,4788,1},{8037,4767,1}, {8040,4762,1},{8042,4822,1},{8043,4810,1},{8047,4812,1},{8047,4772,1},{8045,4743,1}, {8045,4740,1},{8053,4802,1},{8053,4822,1},{8057,4840,1},{8053,4857,1},{8050,4855,1}, {8050,4872,1},{8048,4878,1},{8053,4892,1},{8053,4922,1},{8055,4918,1},{8060,4942,1}, {8063,4928,1},{8065,4943,1},{8063,4967,1},{8068,4962,1},{8072,4968,1},{8068,4923,1}, {8073,4933,1},{8072,4910,1},{8072,4900,1},{8073,4895,1},{8077,4912,1},{8077,4900,1}, {8083,4962,1},{8088,4982,1},{8093,5025,1},{8090,5043,1},{8088,5015,1},{8087,5002,1}, {8085,5017,1},{8088,5067,1},{8092,5085,1},{8085,5103,1},{8083,5102,1},{8082,5077,1}, {8080,5068,1},{8080,5047,1},{8078,5053,1},{8075,5025,1},{8072,5035,1},{8077,5065,1}, {8073,5077,1},{8077,5097,1},{8075,5113,1},{8077,5115,1},{8078,5127,1},{8073,5148,1}, {8072,5175,1},{8068,5173,1},{8063,5142,1},{8062,5118,1},{8053,5092,1},{8052,5017,1}, {8050,5005,1},{8048,4970,1},{8045,4980,1},{8040,4983,1},{8037,4960,1},{8038,4920,1}, {8038,4882,1},{8033,4880,1},{8030,4863,1},{8028,4872,1},{8028,4892,1},{8023,4903,1}, {8020,4898,1},{8018,4912,1},{8017,4898,1},{8015,4898,1},{8015,4877,1},{8020,4853,1}, {8015,4855,1},{8008,4837,1},{8013,4817,1},{8012,4803,1},{8008,4802,1},{8007,4765,1}, {8008,4760,1},{8010,4763,1},{8063,4495,129},{8067,4547,1},{8067,4595,1}, {8070,4637,1},{8072,4652,1},{8073,4640,1},{8073,4643,1},{8075,4703,1},{8080,4720,1}, {8083,4712,1},{8085,4750,1},{8080,4793,1},{8083,4825,1},{8078,4853,1},{8075,4865,1}, {8075,4852,1},{8072,4845,1},{8065,4875,1},{8062,4872,1},{8063,4852,1},{8065,4847,1}, {8067,4803,1},{8072,4800,1},{8072,4790,1},{8077,4775,1},{8073,4757,1},{8072,4762,1}, {8073,4748,1},{8067,4755,1},{8068,4742,1},{8065,4730,1},{8058,4742,1},{8063,4717,1}, {8055,4700,1},{8055,4665,1},{8052,4668,1},{8052,4650,1},{8047,4652,1},{8043,4608,1}, {8057,4603,1},{8055,4583,1},{8055,4575,1},{8052,4553,1},{8057,4537,1},{8060,4490,1}, {8062,4485,1},{8063,4497,1},{8053,5930,129},{8055,5937,1},{8058,5925,1}, {8065,5922,1},{8070,5928,1},{8078,5957,1},{8080,5950,1},{8085,5992,1},{8085,6020,1}, {8083,6027,1},{8080,5997,1},{8080,6035,1},{8078,6035,1},{8082,6068,1},{8083,6103,1}, {8085,6115,1},{8085,6138,1},{8087,6155,1},{8088,6160,1},{8088,6205,1},{8083,6217,1}, {8077,6228,1},{8067,6203,1},{8063,6213,1},{8060,6193,1},{8060,6170,1},{8055,6158,1}, {8053,6160,1},{8050,6127,1},{8048,6138,1},{8040,6103,1},{8043,6062,1},{8050,6025,1}, {8043,5995,1},{8042,5967,1},{8047,5952,1},{8052,5925,1},{8053,5932,1},{8083,6255,129}, {8092,6297,1},{8097,6312,1},{8098,6333,1},{8097,6393,1},{8098,6410,1},{8102,6418,1}, {8105,6422,1},{8110,6412,1},{8117,6425,1},{8120,6455,1},{8118,6487,1},{8113,6523,1}, {8103,6545,1},{8100,6530,1},{8098,6542,1},{8092,6547,1},{8080,6500,1},{8075,6458,1}, {8073,6423,1},{8072,6380,1},{8072,6365,1},{8068,6322,1},{8068,6308,1},{8072,6302,1}, {8080,6252,1},{8085,6255,1},{8100,6007,129},{8110,6067,1},{8112,6147,1}, {8110,6170,1},{8108,6162,1},{8103,6160,1},{8100,6148,1},{8093,6115,1},{8092,6092,1}, {8093,6037,1},{8097,6025,1},{8098,6005,1},{8100,6010,1},{8083,5793,129}, {8087,5818,1},{8090,5872,1},{8087,5897,1},{8083,5902,1},{8077,5892,1},{8077,5863,1}, {8075,5847,1},{8078,5787,1},{8082,5782,1},{8083,5795,1},{8110,5610,129}, {8112,5615,1},{8110,5628,1},{8110,5675,1},{8105,5717,1},{8107,5725,1},{8105,5748,1}, {8102,5765,1},{8097,5777,1},{8092,5827,1},{8085,5777,1},{8090,5723,1},{8092,5723,1}, {8095,5718,1},{8097,5693,1},{8102,5692,1},{8108,5612,1},{8110,5610,1},{8083,5400,129}, {8085,5408,1},{8085,5453,1},{8087,5467,1},{8087,5477,1},{8083,5482,1},{8088,5493,1}, {8090,5505,1},{8088,5525,1},{8085,5537,1},{8080,5598,1},{8075,5515,1},{8072,5488,1}, {8073,5467,1},{8078,5465,1},{8077,5422,1},{8078,5410,1},{8080,5398,1},{8083,5400,1}, {8102,5443,129},{8112,5468,1},{8108,5487,1},{8107,5517,1},{8100,5552,1}, {8103,5602,1},{8102,5623,1},{8097,5663,1},{8093,5665,1},{8090,5685,1},{8087,5730,1}, {8080,5772,1},{8073,5753,1},{8070,5713,1},{8070,5702,1},{8080,5663,1},{8083,5600,1}, {8085,5578,1},{8088,5577,1},{8090,5553,1},{8093,5538,1},{8097,5537,1},{8095,5502,1}, {8097,5490,1},{8100,5485,1},{8098,5467,1},{8100,5443,1},{8102,5443,1},{8072,5547,129}, {8073,5558,1},{8073,5573,1},{8075,5578,1},{8078,5648,1},{8072,5685,1},{8070,5695,1}, {8067,5693,1},{8063,5670,1},{8062,5638,1},{8065,5630,1},{8063,5605,1},{8063,5583,1}, {8065,5565,1},{8067,5560,1},{8070,5570,1},{8070,5545,1},{8072,5550,1},{8122,5557,129}, {8127,5562,1},{8127,5543,1},{8130,5553,1},{8132,5548,1},{8132,5577,1},{8132,5590,1}, {8130,5590,1},{8127,5625,1},{8125,5660,1},{8132,5638,1},{8138,5637,1},{8138,5675,1}, {8137,5682,1},{8138,5702,1},{8133,5742,1},{8132,5745,1},{8133,5765,1},{8132,5777,1}, {8128,5790,1},{8127,5778,1},{8127,5745,1},{8125,5708,1},{8117,5652,1},{8117,5638,1}, {8122,5632,1},{8118,5585,1},{8120,5558,1},{8122,5555,1},{8147,5685,129}, {8150,5700,1},{8152,5695,1},{8153,5747,1},{8155,5750,1},{8157,5772,1},{8155,5782,1}, {8148,5787,1},{8147,5838,1},{8140,5855,1},{8137,5808,1},{8140,5757,1},{8143,5743,1}, {8145,5677,1},{8147,5685,1},{8168,6217,129},{8172,6275,1},{8172,6280,1}, {8170,6272,1},{8172,6322,1},{8172,6347,1},{8168,6375,1},{8163,6377,1},{8158,6347,1}, {8162,6273,1},{8165,6252,1},{8167,6210,1},{8168,6220,1},{4452,14617,129}, {4450,14620,1},{4445,14627,1},{4442,14635,1},{4442,14647,1},{4445,14657,1}, {4438,14653,1},{4435,14652,1},{4438,14647,1},{4437,14640,1},{4428,14630,1}, {4425,14612,1},{4418,14605,1},{4413,14593,1},{4407,14588,1},{4402,14588,1}, {4402,14583,1},{4393,14578,1},{4390,14572,1},{4390,14565,1},{4387,14560,1}, {4382,14558,1},{4365,14555,1},{4373,14553,1},{4372,14543,1},{4380,14543,1}, {4383,14542,1},{4385,14545,1},{4390,14548,1},{4392,14555,1},{4405,14575,1}, {4412,14577,1},{4415,14578,1},{4418,14585,1},{4425,14588,1},{4428,14597,1}, {4438,14602,1},{4442,14605,1},{4447,14608,1},{4450,14613,1},{4450,14617,1}, {5908,2263,129},{5907,2272,1},{5905,2270,1},{5900,2272,1},{5900,2287,1}, {5898,2293,1},{5897,2295,1},{5892,2295,1},{5890,2300,1},{5885,2305,1},{5882,2302,1}, {5885,2297,1},{5883,2295,1},{5883,2288,1},{5882,2287,1},{5882,2288,1},{5878,2288,1}, {5877,2285,1},{5878,2278,1},{5880,2278,1},{5882,2283,1},{5882,2278,1},{5878,2272,1}, {5870,2267,1},{5868,2257,1},{5870,2247,1},{5873,2250,1},{5880,2245,1},{5883,2245,1}, {5888,2238,1},{5888,2218,1},{5893,2205,1},{5895,2207,1},{5895,2238,1},{5897,2247,1}, {5898,2243,1},{5898,2248,1},{5898,2250,1},{5902,2248,1},{5903,2257,1},{5908,2258,1}, {5908,2263,1},{5905,2318,129},{5903,2327,1},{5903,2333,1},{5898,2340,1}, {5897,2337,1},{5897,2317,1},{5902,2312,1},{5903,2320,1},{5867,2323,129}, {5863,2335,1},{5860,2335,1},{5857,2340,1},{5853,2338,1},{5855,2327,1},{5853,2322,1}, {5857,2315,1},{5858,2307,1},{5862,2307,1},{5862,2312,1},{5867,2313,1},{5868,2320,1}, {5867,2325,1},{5782,2325,129},{5778,2328,1},{5778,2322,1},{5782,2322,1}, {5782,2325,1},{5860,2300,129},{5857,2308,1},{5852,2313,1},{5850,2327,1}, {5845,2333,1},{5843,2333,1},{5847,2327,1},{5845,2323,1},{5843,2328,1},{5843,2323,1}, {5848,2315,1},{5843,2313,1},{5843,2310,1},{5840,2308,1},{5835,2303,1},{5838,2295,1}, {5835,2297,1},{5830,2292,1},{5827,2282,1},{5827,2272,1},{5823,2275,1},{5822,2273,1}, {5822,2265,1},{5825,2263,1},{5825,2258,1},{5822,2257,1},{5825,2253,1},{5822,2250,1}, {5823,2248,1},{5818,2228,1},{5817,2227,1},{5810,2227,1},{5802,2220,1},{5798,2220,1}, {5792,2205,1},{5792,2200,1},{5798,2197,1},{5798,2200,1},{5808,2208,1},{5807,2215,1}, {5815,2220,1},{5817,2218,1},{5817,2208,1},{5823,2200,1},{5825,2190,1},{5828,2185,1}, {5830,2185,1},{5830,2192,1},{5833,2187,1},{5833,2190,1},{5832,2195,1},{5835,2197,1}, {5835,2200,1},{5847,2192,1},{5850,2183,1},{5848,2192,1},{5852,2192,1},{5850,2202,1}, {5842,2208,1},{5848,2210,1},{5852,2217,1},{5855,2218,1},{5853,2222,1},{5850,2223,1}, {5850,2228,1},{5857,2230,1},{5858,2245,1},{5863,2257,1},{5858,2265,1},{5860,2268,1}, {5858,2275,1},{5862,2280,1},{5862,2292,1},{5860,2298,1},{6988,5895,129}, {7003,5862,1},{7008,5857,1},{7010,5860,1},{7013,5855,1},{7013,5862,1},{7015,5857,1}, {7018,5858,1},{7020,5845,1},{7023,5850,1},{7023,5845,1},{7025,5842,1},{7027,5843,1}, {7027,5848,1},{7025,5862,1},{7022,5880,1},{7025,5878,1},{7033,5850,1},{7035,5868,1}, {7038,5877,1},{7042,5873,1},{7043,5888,1},{7048,5903,1},{7045,5905,1},{7037,5932,1}, {7028,5947,1},{7025,5953,1},{7020,5955,1},{7020,5962,1},{7017,5977,1},{7013,5978,1}, {7010,5995,1},{7010,6002,1},{7007,6005,1},{6997,6032,1},{6995,6032,1},{6995,6042,1}, {6992,6048,1},{6987,6045,1},{6980,6055,1},{6975,6043,1},{6972,6047,1},{6973,6037,1}, {6972,6035,1},{6968,6020,1},{6972,6000,1},{6967,5992,1},{6970,5987,1},{6968,5975,1}, {6972,5957,1},{6975,5953,1},{6978,5955,1},{6978,5962,1},{6980,5962,1},{6988,5942,1}, {6988,5925,1},{6992,5918,1},{6992,5908,1},{6993,5897,1},{6993,5893,1},{6988,5912,1}, {6987,5913,1},{6987,5902,1},{6990,5893,1},{2068,5892,129},{2060,5890,1}, {2057,5893,1},{2052,5895,1},{2043,5883,1},{2038,5880,1},{2040,5878,1},{2038,5877,1}, {2037,5877,1},{2035,5880,1},{2028,5878,1},{2025,5877,1},{2028,5875,1},{2027,5872,1}, {2025,5873,1},{2022,5873,1},{2017,5865,1},{2020,5863,1},{2035,5863,1},{2043,5872,1}, {2043,5877,1},{2047,5878,1},{2053,5880,1},{2062,5887,1},{2068,5888,1},{2068,5892,1}, {2695,5628,129},{2693,5625,1},{2692,5618,1},{2685,5615,1},{2678,5608,1}, {2673,5598,1},{2668,5595,1},{2670,5592,1},{2673,5588,1},{2668,5577,1},{2668,5570,1}, {2660,5550,1},{2658,5545,1},{2657,5537,1},{2657,5535,1},{2653,5530,1},{2655,5528,1}, {2665,5528,1},{2663,5533,1},{2665,5537,1},{2665,5538,1},{2668,5542,1},{2672,5557,1}, {2677,5567,1},{2680,5577,1},{2685,5578,1},{2690,5578,1},{2693,5573,1},{2695,5575,1}, {2695,5578,1},{2690,5588,1},{2692,5593,1},{2697,5600,1},{2700,5617,1},{2700,5623,1}, {2697,5628,1},{2695,5628,1},{1353,9307,129},{1343,9305,1},{1340,9305,1}, {1340,9308,1},{1335,9303,1},{1333,9300,1},{1335,9300,1},{1335,9298,1},{1333,9298,1}, {1332,9298,1},{1332,9303,1},{1327,9307,1},{1327,9308,1},{1322,9305,1},{1307,9305,1}, {1303,9303,1},{1302,9298,1},{1303,9297,1},{1308,9297,1},{1307,9295,1},{1307,9293,1}, {1300,9293,1},{1297,9297,1},{1295,9293,1},{1298,9292,1},{1297,9290,1},{1292,9287,1}, {1290,9288,1},{1292,9292,1},{1292,9293,1},{1290,9293,1},{1287,9297,1},{1280,9297,1}, {1278,9297,1},{1275,9298,1},{1272,9300,1},{1263,9298,1},{1252,9300,1},{1248,9295,1}, {1247,9297,1},{1243,9293,1},{1242,9293,1},{1245,9290,1},{1243,9290,1},{1243,9285,1}, {1238,9287,1},{1235,9290,1},{1233,9292,1},{1230,9287,1},{1228,9290,1},{1223,9288,1}, {1220,9290,1},{1220,9287,1},{1217,9287,1},{1217,9285,1},{1213,9282,1},{1212,9283,1}, {1210,9282,1},{1207,9275,1},{1203,9278,1},{1203,9277,1},{1198,9273,1},{1188,9273,1}, {1195,9277,1},{1192,9280,1},{1188,9280,1},{1185,9278,1},{1170,9275,1},{1170,9272,1}, {1165,9268,1},{1162,9268,1},{1162,9270,1},{1165,9270,1},{1165,9273,1},{1168,9273,1}, {1167,9275,1},{1165,9277,1},{1150,9273,1},{1148,9272,1},{1152,9270,1},{1152,9267,1}, {1157,9265,1},{1160,9262,1},{1163,9265,1},{1165,9262,1},{1172,9260,1},{1172,9257,1}, {1183,9257,1},{1183,9253,1},{1185,9252,1},{1192,9255,1},{1193,9257,1},{1190,9258,1}, {1190,9262,1},{1187,9262,1},{1198,9262,1},{1212,9265,1},{1213,9263,1},{1222,9267,1}, {1222,9270,1},{1223,9272,1},{1222,9272,1},{1217,9272,1},{1218,9278,1},{1220,9278,1}, {1225,9278,1},{1227,9275,1},{1228,9275,1},{1227,9278,1},{1230,9278,1},{1232,9273,1}, {1235,9272,1},{1248,9273,1},{1260,9272,1},{1265,9275,1},{1265,9278,1},{1268,9275,1}, {1282,9273,1},{1287,9280,1},{1295,9282,1},{1298,9283,1},{1305,9280,1},{1310,9283,1}, {1312,9283,1},{1313,9287,1},{1317,9283,1},{1318,9285,1},{1322,9285,1},{1325,9287,1}, {1328,9285,1},{1330,9285,1},{1333,9283,1},{1337,9287,1},{1338,9288,1},{1343,9290,1}, {1347,9290,1},{1347,9292,1},{1350,9295,1},{1355,9295,1},{1355,9300,1},{1357,9302,1}, {1355,9302,1},{1357,9305,1},{1353,9307,1},{923,9278,129},{920,9280,1},{915,9280,1}, {913,9278,1},{913,9273,1},{917,9272,1},{922,9272,1},{922,9275,1},{927,9277,1}, {923,9278,1},{1998,10957,129},{2000,10962,1},{2000,10972,1},{2000,10973,1}, {1995,10972,1},{1998,10973,1},{1997,10978,1},{1995,10980,1},{1998,10982,1}, {1998,10983,1},{1993,10983,1},{1995,10987,1},{1998,10988,1},{1998,10995,1}, {1993,10998,1},{1992,10995,1},{1990,10998,1},{1990,11000,1},{1993,11000,1}, {1993,11002,1},{1995,11002,1},{1998,11003,1},{1997,11012,1},{1998,11013,1}, {2000,11015,1},{1998,11012,1},{1998,11007,1},{2000,11012,1},{2007,11015,1}, {2003,11025,1},{2003,11030,1},{2005,11032,1},{2005,11035,1},{2003,11037,1}, {2000,11037,1},{1997,11040,1},{1992,11042,1},{1997,11042,1},{2000,11038,1}, {2005,11037,1},{2008,11038,1},{2007,11042,1},{2003,11042,1},{2003,11043,1}, {2005,11042,1},{2002,11048,1},{2002,11053,1},{2000,11052,1},{1998,11055,1}, {2000,11057,1},{1992,11060,1},{1993,11062,1},{1997,11062,1},{2002,11060,1}, {2003,11057,1},{2008,11057,1},{2012,11060,1},{2012,11065,1},{2015,11068,1}, {2008,11070,1},{2002,11077,1},{1998,11087,1},{2000,11092,1},{1997,11095,1}, {1980,11098,1},{1968,11100,1},{1968,11102,1},{1963,11103,1},{1963,11097,1}, {1953,11085,1},{1955,11082,1},{1960,11082,1},{1960,11085,1},{1962,11085,1}, {1962,11080,1},{1955,11082,1},{1953,11080,1},{1948,11080,1},{1945,11075,1}, {1943,11075,1},{1942,11073,1},{1940,11070,1},{1938,11067,1},{1933,11068,1}, {1930,11063,1},{1928,11063,1},{1915,11058,1},{1917,11048,1},{1912,11052,1}, {1913,11055,1},{1908,11055,1},{1913,11057,1},{1913,11058,1},{1905,11057,1}, {1903,11053,1},{1898,11052,1},{1890,11052,1},{1888,11047,1},{1885,11047,1}, {1882,11043,1},{1880,11045,1},{1880,11050,1},{1882,11050,1},{1887,11050,1}, {1888,11050,1},{1878,11053,1},{1877,11047,1},{1873,11043,1},{1868,11043,1}, {1867,11042,1},{1867,11033,1},{1868,11040,1},{1870,11040,1},{1868,11038,1}, {1868,11033,1},{1867,11030,1},{1865,11025,1},{1853,11010,1},{1850,11008,1}, {1850,11003,1},{1848,11005,1},{1848,11008,1},{1840,11007,1},{1843,11005,1}, {1843,11003,1},{1840,11005,1},{1838,11005,1},{1838,10997,1},{1840,10997,1}, {1840,11002,1},{1845,11002,1},{1843,11000,1},{1843,10998,1},{1842,10997,1}, {1842,10992,1},{1840,10988,1},{1838,10983,1},{1840,10980,1},{1840,10975,1}, {1830,10972,1},{1827,10973,1},{1827,10972,1},{1828,10970,1},{1827,10967,1}, {1825,10973,1},{1823,10973,1},{1820,10970,1},{1820,10968,1},{1823,10968,1}, {1823,10963,1},{1820,10960,1},{1817,10960,1},{1817,10957,1},{1820,10957,1}, {1822,10955,1},{1823,10957,1},{1825,10957,1},{1823,10953,1},{1822,10953,1}, {1820,10950,1},{1818,10948,1},{1820,10947,1},{1823,10952,1},{1825,10950,1}, {1823,10948,1},{1827,10948,1},{1828,10945,1},{1830,10928,1},{1830,10922,1}, {1828,10917,1},{1830,10913,1},{1835,10913,1},{1837,10905,1},{1837,10898,1}, {1840,10895,1},{1843,10888,1},{1848,10880,1},{1850,10868,1},{1857,10867,1}, {1862,10870,1},{1872,10870,1},{1878,10867,1},{1883,10862,1},{1893,10865,1}, {1910,10862,1},{1915,10867,1},{1915,10868,1},{1920,10867,1},{1922,10862,1}, {1932,10865,1},{1930,10867,1},{1935,10867,1},{1938,10868,1},{1938,10877,1}, {1942,10878,1},{1945,10887,1},{1950,10892,1},{1950,10893,1},{1952,10893,1}, {1960,10902,1},{1962,10908,1},{1965,10917,1},{1968,10920,1},{1972,10920,1}, {1972,10930,1},{1975,10927,1},{1977,10930,1},{1977,10928,1},{1978,10930,1}, {1978,10927,1},{1973,10920,1},{1972,10917,1},{1980,10917,1},{1982,10920,1}, {1987,10922,1},{1987,10925,1},{1990,10927,1},{1990,10928,1},{1992,10930,1}, {1992,10932,1},{1988,10932,1},{1988,10937,1},{1985,10942,1},{1987,10945,1}, {1983,10947,1},{1987,10952,1},{1985,10953,1},{1985,10955,1},{1985,10958,1}, {1988,10952,1},{1992,10952,1},{1992,10955,1},{1993,10955,1},{1992,10953,1}, {1995,10953,1},{1998,10958,1},{3492,12793,129},{3488,12793,1},{3487,12790,1}, {3483,12792,1},{3480,12795,1},{3482,12800,1},{3480,12807,1},{3472,12805,1}, {3470,12807,1},{3472,12802,1},{3470,12797,1},{3477,12793,1},{3477,12792,1}, {3472,12790,1},{3472,12785,1},{3477,12787,1},{3485,12782,1},{3488,12783,1}, {3490,12787,1},{3493,12788,1},{3493,12792,1},{3490,12793,1},{3495,12872,129}, {3493,12873,1},{3487,12872,1},{3488,12875,1},{3483,12873,1},{3483,12872,1}, {3478,12875,1},{3480,12868,1},{3478,12868,1},{3475,12865,1},{3473,12868,1}, {3472,12868,1},{3470,12858,1},{3472,12862,1},{3473,12860,1},{3475,12860,1}, {3475,12857,1},{3477,12855,1},{3478,12860,1},{3483,12860,1},{3482,12855,1}, {3480,12853,1},{3483,12850,1},{3488,12850,1},{3492,12853,1},{3488,12865,1}, {3493,12860,1},{3495,12862,1},{3495,12865,1},{3498,12868,1},{3502,12868,1}, {3503,12870,1},{3502,12873,1},{3498,12872,1},{3495,12873,1},{3353,12683,129}, {3353,12685,1},{3352,12690,1},{3350,12690,1},{3350,12692,1},{3347,12692,1}, {3347,12693,1},{3347,12695,1},{3345,12693,1},{3338,12692,1},{3330,12685,1}, {3323,12660,1},{3322,12648,1},{3323,12642,1},{3323,12633,1},{3318,12627,1}, {3323,12620,1},{3328,12615,1},{3332,12615,1},{3335,12618,1},{3345,12632,1}, {3355,12665,1},{3353,12683,1},{3468,12947,129},{3465,12950,1},{3462,12950,1}, {3462,12945,1},{3458,12948,1},{3453,12948,1},{3443,12938,1},{3438,12937,1}, {3438,12940,1},{3432,12938,1},{3430,12933,1},{3432,12932,1},{3433,12937,1}, {3437,12935,1},{3433,12932,1},{3438,12932,1},{3437,12930,1},{3433,12928,1}, {3435,12923,1},{3437,12927,1},{3442,12928,1},{3445,12932,1},{3445,12928,1}, {3452,12932,1},{3452,12933,1},{3455,12930,1},{3463,12933,1},{3463,12940,1}, {3468,12943,1},{3468,12947,1},{3423,12933,129},{3422,12933,1},{3420,12930,1}, {3412,12928,1},{3407,12922,1},{3408,12922,1},{3410,12918,1},{3432,12922,1}, {3432,12923,1},{3428,12923,1},{3430,12928,1},{3430,12930,1},{3427,12932,1}, {3428,12935,1},{3423,12933,1},{3245,13023,129},{3252,13033,1},{3250,13040,1}, {3252,13045,1},{3252,13047,1},{3250,13045,1},{3237,13037,1},{3242,13035,1}, {3240,13023,1},{3243,13020,1},{3247,13023,1},{3235,12997,129},{3242,12998,1}, {3247,13002,1},{3250,13003,1},{3252,13000,1},{3253,13000,1},{3252,13003,1}, {3253,13010,1},{3253,13018,1},{3248,13020,1},{3233,13020,1},{3230,13017,1}, {3232,13017,1},{3227,13013,1},{3220,13005,1},{3218,13000,1},{3220,12998,1}, {3220,13000,1},{3225,13002,1},{3223,12995,1},{3228,13000,1},{3230,13007,1}, {3230,13000,1},{3235,12997,1},{2850,12968,129},{2843,12972,1},{2840,12962,1}, {2828,12950,1},{2828,12945,1},{2827,12945,1},{2825,12942,1},{2822,12947,1}, {2818,12940,1},{2815,12940,1},{2817,12935,1},{2813,12938,1},{2812,12938,1}, {2818,12928,1},{2822,12927,1},{2820,12925,1},{2822,12923,1},{2823,12918,1}, {2825,12915,1},{2825,12927,1},{2828,12928,1},{2828,12923,1},{2830,12923,1}, {2832,12925,1},{2835,12932,1},{2837,12933,1},{2835,12937,1},{2837,12938,1}, {2837,12940,1},{2838,12942,1},{2838,12945,1},{2842,12947,1},{2838,12952,1}, {2843,12953,1},{2848,12962,1},{2843,12960,1},{2843,12965,1},{2848,12967,1}, {2850,12967,1},{2850,12968,1},{2687,12828,129},{2683,12832,1},{2680,12833,1}, {2677,12833,1},{2670,12830,1},{2663,12823,1},{2662,12817,1},{2660,12815,1}, {2658,12813,1},{2657,12815,1},{2655,12813,1},{2655,12805,1},{2652,12803,1}, {2648,12798,1},{2647,12795,1},{2645,12795,1},{2645,12787,1},{2643,12783,1}, {2642,12783,1},{2640,12787,1},{2637,12787,1},{2630,12792,1},{2632,12783,1}, {2630,12782,1},{2620,12777,1},{2618,12777,1},{2618,12782,1},{2615,12782,1}, {2612,12778,1},{2612,12773,1},{2608,12772,1},{2608,12765,1},{2613,12765,1}, {2620,12763,1},{2620,12767,1},{2627,12770,1},{2627,12772,1},{2630,12773,1}, {2630,12775,1},{2643,12772,1},{2645,12780,1},{2647,12782,1},{2648,12783,1}, {2650,12788,1},{2655,12797,1},{2658,12797,1},{2660,12795,1},{2662,12788,1}, {2668,12788,1},{2668,12800,1},{2663,12798,1},{2663,12802,1},{2667,12810,1}, {2668,12810,1},{2672,12813,1},{2672,12815,1},{2675,12815,1},{2677,12817,1}, {2680,12823,1},{2688,12825,1},{2685,12828,1},{2793,63954,129},{2792,63954,1}, {2783,63958,1},{2775,63969,1},{2773,63978,1},{2775,63981,1},{2780,63993,1}, {2787,63999,1},{2790,63998,1},{2793,63999,1},{2797,63998,1},{2802,63999,1}, {2803,63996,1},{2810,63996,1},{2812,63994,1},{2817,63996,1},{2818,63994,1}, {2817,63993,1},{2813,63993,1},{2813,63989,1},{2815,63984,1},{2815,63974,1}, {2817,63966,1},{2807,63966,1},{2802,63958,1},{2800,63954,1},{2793,63954,1}, {2857,63913,129},{2857,63904,1},{2853,63901,1},{2853,63898,1},{2842,63888,1}, {2842,63883,1},{2838,63879,1},{2838,63871,1},{2837,63866,1},{2837,63861,1}, {2837,63851,1},{2835,63844,1},{2825,63851,1},{2820,63853,1},{2807,63864,1}, {2798,63868,1},{2802,63883,1},{2812,63891,1},{2813,63894,1},{2822,63896,1}, {2830,63901,1},{2837,63901,1},{2840,63908,1},{2847,63913,1},{2852,63924,1}, {2855,63924,1},{2858,63924,1},{2855,63916,1},{2857,63913,1},{375,892,129}, {370,897,1},{363,895,1},{352,887,1},{342,882,1},{338,878,1},{332,878,1}, {327,873,1},{320,868,1},{323,860,1},{325,850,1},{327,845,1},{333,842,1}, {343,845,1},{347,847,1},{347,858,1},{352,858,1},{355,862,1},{367,863,1}, {377,870,1},{375,882,1},{375,892,1},{64398,4328,129},{64399,4335,1},{64398,4338,1}, {64396,4340,1},{64374,4337,1},{64363,4343,1},{64356,4345,1},{64348,4350,1}, {64344,4348,1},{64343,4347,1},{64343,4343,1},{64351,4337,1},{64351,4332,1}, {64353,4328,1},{64359,4322,1},{64363,4322,1},{64369,4325,1},{64379,4325,1}, {64393,4325,1},{64396,4327,1},{64398,4328,1},{64943,3918,129},{64934,3918,1}, {64929,3922,1},{64924,3922,1},{64921,3920,1},{64919,3918,1},{64918,3920,1}, {64911,3920,1},{64906,3925,1},{64904,3928,1},{64909,3927,1},{64909,3930,1}, {64911,3928,1},{64911,3930,1},{64906,3933,1},{64906,3935,1},{64903,3938,1}, {64899,3938,1},{64898,3940,1},{64901,3942,1},{64904,3938,1},{64906,3942,1}, {64893,3945,1},{64889,3948,1},{64889,3953,1},{64891,3957,1},{64898,3957,1}, {64906,3953,1},{64918,3953,1},{64923,3950,1},{64921,3948,1},{64916,3950,1}, {64918,3947,1},{64914,3945,1},{64918,3943,1},{64918,3942,1},{64921,3943,1}, {64924,3942,1},{64929,3943,1},{64931,3940,1},{64941,3937,1},{64946,3935,1}, {64956,3937,1},{64963,3932,1},{64963,3930,1},{64956,3930,1},{64951,3928,1}, {64949,3923,1},{64944,3920,1},{64946,3920,1},{64943,3918,1},{4473,6145,130}, {4477,6148,2},{4473,6150,2},{4483,6157,2},{4483,6160,2},{4480,6160,2},{4480,6163,2}, {4488,6167,2},{4485,6170,2},{4488,6173,2},{4487,6177,2},{4490,6175,2},{4495,6182,2}, {4495,6187,2},{4497,6185,2},{4498,6185,2},{4498,6192,2},{4497,6192,2},{4497,6195,2}, {4502,6193,2},{4502,6197,2},{4505,6197,2},{4502,6183,2},{4505,6182,2},{4512,6183,2}, {4503,6175,2},{4498,6173,2},{4500,6173,2},{4503,6175,2},{4505,6172,2},{4510,6172,2}, {4510,6175,2},{4515,6175,2},{4517,6178,2},{4513,6182,2},{4515,6185,2},{4518,6177,2}, {4515,6173,2},{4522,6172,2},{4518,6168,2},{4517,6170,2},{4513,6165,2},{4518,6162,2}, {4517,6155,2},{4515,6153,2},{4518,6150,2},{4523,6152,2},{4530,6152,2},{4533,6148,2}, {4538,6137,2},{4545,6135,2},{4548,6130,2},{4548,6125,2},{4552,6125,2},{4555,6123,2}, {4557,6130,2},{4560,6128,2},{4562,6130,2},{4565,6127,2},{4567,6127,2},{4570,6117,2}, {4573,6117,2},{4577,6115,2},{4573,6115,2},{4572,6113,2},{4570,6103,2},{4562,6097,2}, {4563,6093,2},{4568,6092,2},{4572,6092,2},{4573,6093,2},{4573,6098,2},{4580,6105,2}, {4587,6100,2},{4585,6103,2},{4587,6110,2},{4590,6113,2},{4590,6103,2},{4593,6108,2}, {4597,6103,2},{4602,6107,2},{4602,6102,2},{4607,6098,2},{4608,6092,2},{4610,6090,2}, {4613,6103,2},{4610,6115,2},{4615,6120,2},{4615,6123,2},{4620,6127,2},{4622,6123,2}, {4623,6125,2},{4625,6127,2},{4625,6130,2},{4627,6130,2},{4628,6127,2},{4633,6132,2}, {4630,6133,2},{4632,6137,2},{4648,6140,2},{4648,6142,2},{4645,6145,2},{4648,6152,2}, {4670,6165,2},{4672,6173,2},{4675,6170,2},{4678,6165,2},{4678,6155,2},{4682,6158,2}, {4687,6157,2},{4685,6150,2},{4680,6150,2},{4677,6133,2},{4675,6130,2},{4670,6132,2}, {4667,6130,2},{4667,6115,2},{4663,6115,2},{4665,6120,2},{4663,6122,2},{4658,6118,2}, {4652,6120,2},{4648,6112,2},{4648,6090,2},{4652,6087,2},{4655,6085,2},{4658,6082,2}, {4667,6085,2},{4670,6092,2},{4675,6090,2},{4678,6082,2},{4677,6068,2},{4680,6058,2}, {4680,6055,2},{4677,6052,2},{4680,6050,2},{4680,6048,2},{4675,6045,2},{4673,6045,2}, {4675,6050,2},{4673,6053,2},{4673,6058,2},{4665,6072,2},{4658,6063,2},{4658,6057,2}, {4665,6050,2},{4660,6043,2},{4663,6042,2},{4665,6043,2},{4667,6040,2},{4672,6040,2}, {4670,6037,2},{4667,6038,2},{4670,6033,2},{4673,6032,2},{4672,6023,2},{4663,6010,2}, {4662,6003,2},{4660,6000,2},{4658,5992,2},{4653,5990,2},{4657,5987,2},{4653,5983,2}, {4653,5980,2},{4652,5980,2},{4652,5983,2},{4652,5992,2},{4648,5993,2},{4647,5987,2}, {4643,5988,2},{4638,5995,2},{4638,6002,2},{4635,6003,2},{4632,6008,2},{4628,6008,2}, {4627,6012,2},{4623,6012,2},{4620,5998,2},{4613,5995,2},{4608,5987,2},{4610,5985,2}, {4617,5987,2},{4620,5982,2},{4628,5982,2},{4633,5973,2},{4635,5965,2},{4633,5962,2}, {4637,5955,2},{4633,5948,2},{4632,5947,2},{4632,5943,2},{4628,5947,2},{4627,5952,2}, {4623,5953,2},{4613,5957,2},{4612,5957,2},{4613,5953,2},{4603,5948,2},{4602,5950,2}, {4603,5952,2},{4603,5953,2},{4592,5953,2},{4587,5948,2},{4582,5950,2},{4582,5948,2}, {4582,5935,2},{4577,5930,2},{4582,5927,2},{4590,5933,2},{4595,5938,2},{4595,5943,2}, {4602,5945,2},{4603,5938,2},{4602,5925,2},{4597,5917,2},{4597,5908,2},{4598,5908,2}, {4600,5912,2},{4602,5910,2},{4600,5898,2},{4595,5890,2},{4593,5880,2},{4590,5872,2}, {4578,5865,2},{4560,5860,2},{4555,5855,2},{4542,5852,2},{4535,5845,2},{4525,5837,2}, {4510,5833,2},{4505,5827,2},{4483,5818,2},{4468,5822,2},{4462,5830,2},{4460,5830,2}, {4458,5825,2},{4452,5820,2},{4450,5822,2},{4443,5820,2},{4440,5822,2},{4427,5825,2}, {4417,5840,2},{4402,5838,2},{4390,5833,2},{4377,5833,2},{4368,5838,2},{4365,5843,2}, {4363,5843,2},{4367,5857,2},{4370,5860,2},{4370,5867,2},{4372,5870,2},{4372,5873,2}, {4370,5870,2},{4368,5872,2},{4373,5883,2},{4373,5885,2},{4373,5893,2},{4375,5897,2}, {4373,5897,2},{4372,5897,2},{4370,5895,2},{4368,5897,2},{4372,5902,2},{4377,5902,2}, {4380,5898,2},{4382,5890,2},{4382,5883,2},{4390,5885,2},{4385,5897,2},{4388,5895,2}, {4393,5882,2},{4393,5873,2},{4393,5887,2},{4388,5895,2},{4380,5905,2},{4372,5908,2}, {4368,5913,2},{4373,5915,2},{4375,5918,2},{4378,5917,2},{4380,5918,2},{4380,5930,2}, {4377,5933,2},{4373,5940,2},{4380,5950,2},{4373,5950,2},{4370,5955,2},{4367,5965,2}, {4367,5968,2},{4367,5977,2},{4363,5980,2},{4362,5968,2},{4358,5968,2},{4347,5972,2}, {4343,5977,2},{4338,5975,2},{4340,5980,2},{4345,5983,2},{4345,5987,2},{4347,5990,2}, {4347,5997,2},{4350,5998,2},{4348,6002,2},{4348,6005,2},{4352,6010,2},{4350,6010,2}, {4348,6010,2},{4347,6015,2},{4348,6018,2},{4358,6018,2},{4357,6023,2},{4360,6035,2}, {4360,6037,2},{4358,6037,2},{4363,6040,2},{4363,6043,2},{4358,6042,2},{4358,6047,2}, {4357,6047,2},{4362,6048,2},{4358,6052,2},{4363,6052,2},{4360,6055,2},{4355,6057,2}, {4360,6063,2},{4358,6067,2},{4358,6070,2},{4362,6070,2},{4360,6073,2},{4362,6073,2}, {4358,6077,2},{4367,6080,2},{4365,6082,2},{4360,6080,2},{4360,6085,2},{4358,6085,2}, {4360,6090,2},{4365,6088,2},{4368,6090,2},{4368,6093,2},{4363,6098,2},{4363,6102,2}, {4365,6103,2},{4367,6100,2},{4370,6100,2},{4373,6100,2},{4380,6105,2},{4378,6100,2}, {4380,6100,2},{4383,6100,2},{4382,6095,2},{4385,6093,2},{4383,6090,2},{4380,6090,2}, {4385,6087,2},{4388,6090,2},{4390,6085,2},{4393,6085,2},{4387,6082,2},{4388,6078,2}, {4387,6077,2},{4388,6075,2},{4393,6075,2},{4397,6073,2},{4402,6073,2},{4403,6073,2}, {4400,6078,2},{4403,6082,2},{4402,6083,2},{4402,6085,2},{4407,6087,2},{4407,6088,2}, {4422,6090,2},{4422,6095,2},{4418,6097,2},{4422,6098,2},{4433,6097,2},{4432,6100,2}, {4423,6103,2},{4417,6102,2},{4417,6107,2},{4410,6110,2},{4422,6108,2},{4423,6105,2}, {4435,6103,2},{4438,6105,2},{4435,6107,2},{4433,6107,2},{4432,6108,2},{4423,6110,2}, {4422,6113,2},{4418,6113,2},{4422,6115,2},{4428,6112,2},{4433,6113,2},{4433,6117,2}, {4428,6118,2},{4433,6118,2},{4435,6117,2},{4440,6118,2},{4440,6122,2},{4438,6123,2}, {4445,6123,2},{4440,6115,2},{4443,6112,2},{4445,6113,2},{4448,6117,2},{4450,6113,2}, {4453,6112,2},{4453,6107,2},{4457,6108,2},{4458,6112,2},{4460,6112,2},{4457,6117,2}, {4460,6117,2},{4462,6122,2},{4463,6120,2},{4463,6113,2},{4465,6112,2},{4467,6117,2}, {4465,6118,2},{4468,6123,2},{4463,6127,2},{4463,6128,2},{4465,6128,2},{4467,6130,2}, {4468,6142,2},{4473,6145,2},{4643,7418,130},{4643,7422,2},{4645,7423,2}, {4648,7428,2},{4650,7437,2},{4657,7442,2},{4660,7453,2},{4672,7457,2},{4675,7458,2}, {4673,7462,2},{4673,7463,2},{4677,7462,2},{4677,7485,2},{4682,7488,2},{4680,7493,2}, {4682,7495,2},{4683,7497,2},{4682,7500,2},{4678,7497,2},{4677,7500,2},{4680,7507,2}, {4685,7507,2},{4685,7508,2},{4678,7512,2},{4672,7530,2},{4673,7550,2},{4680,7570,2}, {4678,7572,2},{4680,7575,2},{4678,7583,2},{4680,7585,2},{4683,7592,2},{4682,7595,2}, {4680,7593,2},{4678,7597,2},{4677,7595,2},{4677,7600,2},{4680,7605,2},{4678,7607,2}, {4680,7610,2},{4680,7617,2},{4673,7637,2},{4667,7638,2},{4663,7640,2},{4665,7640,2}, {4662,7652,2},{4665,7653,2},{4667,7660,2},{4665,7668,2},{4668,7672,2},{4665,7673,2}, {4663,7672,2},{4657,7693,2},{4665,7683,2},{4668,7685,2},{4663,7693,2},{4665,7700,2}, {4663,7707,2},{4655,7713,2},{4655,7723,2},{4658,7725,2},{4662,7728,2},{4662,7740,2}, {4665,7748,2},{4663,7753,2},{4663,7763,2},{4663,7765,2},{4667,7762,2},{4665,7767,2}, {4667,7770,2},{4665,7775,2},{4665,7788,2},{4663,7793,2},{4658,7805,2},{4662,7812,2}, {4660,7815,2},{4655,7818,2},{4655,7823,2},{4648,7825,2},{4645,7832,2},{4650,7833,2}, {4653,7837,2},{4660,7835,2},{4667,7835,2},{4667,7838,2},{4660,7838,2},{4660,7842,2}, {4663,7840,2},{4667,7845,2},{4667,7847,2},{4663,7843,2},{4660,7847,2},{4667,7850,2}, {4675,7860,2},{4672,7877,2},{4667,7882,2},{4662,7880,2},{4662,7892,2},{4663,7893,2}, {4670,7882,2},{4675,7877,2},{4678,7878,2},{4680,7888,2},{4678,7893,2},{4675,7897,2}, {4673,7902,2},{4678,7902,2},{4682,7902,2},{4682,7903,2},{4680,7917,2},{4672,7923,2}, {4667,7925,2},{4662,7923,2},{4660,7908,2},{4647,7907,2},{4637,7893,2},{4637,7888,2}, {4638,7873,2},{4637,7867,2},{4638,7860,2},{4640,7855,2},{4640,7852,2},{4640,7845,2}, {4637,7842,2},{4633,7842,2},{4632,7848,2},{4628,7843,2},{4628,7840,2},{4633,7838,2}, {4637,7832,2},{4635,7828,2},{4633,7827,2},{4635,7812,2},{4633,7812,2},{4632,7818,2}, {4632,7805,2},{4643,7785,2},{4642,7777,2},{4642,7775,2},{4640,7783,2},{4640,7777,2}, {4637,7770,2},{4640,7773,2},{4640,7760,2},{4650,7742,2},{4648,7733,2},{4645,7725,2}, {4647,7723,2},{4648,7717,2},{4645,7710,2},{4645,7703,2},{4647,7693,2},{4645,7692,2}, {4647,7690,2},{4652,7677,2},{4653,7668,2},{4653,7660,2},{4653,7645,2},{4653,7640,2}, {4657,7633,2},{4657,7627,2},{4657,7628,2},{4657,7625,2},{4653,7625,2},{4655,7623,2}, {4655,7620,2},{4652,7620,2},{4653,7610,2},{4655,7607,2},{4653,7605,2},{4652,7608,2}, {4650,7607,2},{4652,7603,2},{4650,7593,2},{4652,7597,2},{4653,7595,2},{4655,7590,2}, {4652,7585,2},{4650,7577,2},{4652,7577,2},{4652,7568,2},{4648,7567,2},{4650,7565,2}, {4647,7555,2},{4648,7553,2},{4650,7558,2},{4652,7558,2},{4655,7552,2},{4662,7547,2}, {4665,7552,2},{4662,7552,2},{4662,7557,2},{4663,7555,2},{4667,7558,2},{4667,7547,2}, {4660,7540,2},{4648,7547,2},{4648,7543,2},{4648,7540,2},{4645,7537,2},{4648,7533,2}, {4652,7535,2},{4653,7532,2},{4652,7527,2},{4650,7525,2},{4648,7528,2},{4648,7525,2}, {4645,7528,2},{4642,7522,2},{4643,7515,2},{4642,7513,2},{4643,7508,2},{4648,7515,2}, {4648,7512,2},{4647,7508,2},{4640,7505,2},{4638,7500,2},{4642,7492,2},{4640,7490,2}, {4633,7487,2},{4627,7485,2},{4618,7478,2},{4613,7482,2},{4610,7478,2},{4607,7472,2}, {4608,7470,2},{4608,7467,2},{4605,7462,2},{4603,7462,2},{4602,7458,2},{4600,7457,2}, {4602,7455,2},{4598,7452,2},{4598,7450,2},{4603,7443,2},{4602,7435,2},{4602,7430,2}, {4598,7423,2},{4595,7423,2},{4590,7427,2},{4578,7432,2},{4575,7428,2},{4577,7428,2}, {4577,7423,2},{4572,7423,2},{4572,7428,2},{4570,7433,2},{4567,7433,2},{4565,7432,2}, {4568,7425,2},{4567,7425,2},{4565,7427,2},{4562,7427,2},{4555,7410,2},{4550,7407,2}, {4547,7410,2},{4542,7407,2},{4537,7410,2},{4533,7407,2},{4532,7410,2},{4533,7415,2}, {4535,7415,2},{4533,7417,2},{4518,7413,2},{4508,7417,2},{4505,7412,2},{4505,7407,2}, {4502,7408,2},{4503,7413,2},{4500,7412,2},{4498,7413,2},{4497,7413,2},{4498,7410,2}, {4500,7400,2},{4503,7400,2},{4505,7403,2},{4510,7398,2},{4513,7398,2},{4513,7403,2}, {4515,7400,2},{4518,7400,2},{4520,7398,2},{4522,7400,2},{4522,7388,2},{4525,7387,2}, {4528,7380,2},{4530,7382,2},{4535,7373,2},{4535,7377,2},{4538,7370,2},{4550,7363,2}, {4557,7353,2},{4557,7347,2},{4558,7343,2},{4568,7345,2},{4567,7350,2},{4568,7352,2}, {4572,7352,2},{4575,7357,2},{4578,7343,2},{4580,7342,2},{4582,7347,2},{4583,7348,2}, {4582,7352,2},{4580,7358,2},{4587,7360,2},{4587,7362,2},{4588,7360,2},{4588,7363,2}, {4592,7365,2},{4593,7363,2},{4597,7368,2},{4597,7365,2},{4598,7365,2},{4597,7375,2}, {4598,7373,2},{4602,7373,2},{4608,7363,2},{4612,7365,2},{4613,7363,2},{4615,7367,2}, {4618,7368,2},{4618,7373,2},{4623,7375,2},{4622,7378,2},{4620,7378,2},{4617,7383,2}, {4620,7385,2},{4620,7388,2},{4620,7393,2},{4618,7397,2},{4618,7400,2},{4622,7405,2}, {4622,7400,2},{4625,7400,2},{4627,7398,2},{4625,7395,2},{4630,7395,2},{4632,7398,2}, {4633,7398,2},{4642,7408,2},{4645,7415,2},{4643,7420,2},{4272,7800,130}, {4275,7820,2},{4273,7830,2},{4273,7827,2},{4272,7825,2},{4272,7820,2},{4267,7817,2}, {4267,7812,2},{4262,7808,2},{4260,7810,2},{4258,7823,2},{4260,7830,2},{4258,7832,2}, {4257,7832,2},{4257,7812,2},{4248,7803,2},{4243,7785,2},{4242,7782,2},{4240,7782,2}, {4238,7788,2},{4237,7792,2},{4235,7783,2},{4228,7780,2},{4220,7768,2},{4218,7755,2}, {4217,7750,2},{4217,7747,2},{4217,7737,2},{4217,7728,2},{4215,7707,2},{4218,7697,2}, {4217,7693,2},{4218,7692,2},{4222,7682,2},{4225,7675,2},{4227,7657,2},{4233,7640,2}, {4233,7635,2},{4232,7632,2},{4232,7627,2},{4238,7620,2},{4240,7622,2},{4245,7618,2}, {4247,7620,2},{4248,7630,2},{4247,7645,2},{4250,7650,2},{4252,7662,2},{4255,7665,2}, {4257,7668,2},{4262,7698,2},{4260,7702,2},{4263,7707,2},{4265,7717,2},{4265,7723,2}, {4268,7735,2},{4265,7750,2},{4272,7780,2},{4272,7785,2},{4272,7803,2},{7448,10280,130}, {7453,10272,2},{7458,10318,2},{7458,10347,2},{7463,10357,2},{7463,10368,2}, {7462,10397,2},{7465,10403,2},{7467,10397,2},{7472,10395,2},{7468,10408,2}, {7472,10433,2},{7478,10477,2},{7477,10497,2},{7475,10513,2},{7480,10563,2}, {7483,10580,2},{7485,10568,2},{7483,10538,2},{7483,10520,2},{7492,10473,2}, {7510,10450,2},{7513,10420,2},{7512,10413,2},{7502,10410,2},{7498,10393,2}, {7498,10383,2},{7492,10380,2},{7487,10402,2},{7485,10403,2},{7488,10420,2}, {7488,10442,2},{7483,10435,2},{7478,10418,2},{7480,10397,2},{7480,10385,2}, {7473,10367,2},{7472,10353,2},{7468,10343,2},{7468,10323,2},{7462,10303,2}, {7465,10300,2},{7463,10288,2},{7462,10272,2},{7465,10248,2},{7463,10197,2}, {7462,10193,2},{7463,10183,2},{7462,10137,2},{7467,10107,2},{7473,10083,2}, {7475,10065,2},{7477,10062,2},{7480,10055,2},{7490,10057,2},{7490,10040,2}, {7492,10047,2},{7492,10057,2},{7498,10065,2},{7503,10063,2},{7508,10057,2}, {7508,10038,2},{7513,10037,2},{7513,10022,2},{7515,10023,2},{7517,10018,2}, {7517,10007,2},{7513,10000,2},{7510,10007,2},{7507,10002,2},{7507,10052,2}, {7505,10055,2},{7502,10050,2},{7497,10055,2},{7493,10045,2},{7493,10038,2}, {7495,10038,2},{7495,10030,2},{7493,10030,2},{7488,10005,2},{7487,10012,2}, {7483,10012,2},{7482,10040,2},{7473,10038,2},{7460,10057,2},{7457,10047,2}, {7453,10047,2},{7455,10042,2},{7453,10037,2},{7450,10022,2},{7445,10022,2}, {7437,10005,2},{7438,9990,2},{7443,9968,2},{7443,9952,2},{7442,9947,2}, {7443,9938,2},{7442,9917,2},{7440,9913,2},{7437,9932,2},{7437,9975,2},{7433,9987,2}, {7430,9978,2},{7433,9997,2},{7433,10018,2},{7435,10030,2},{7433,10045,2}, {7430,10048,2},{7428,10057,2},{7430,10065,2},{7432,10080,2},{7423,10095,2}, {7412,10100,2},{7403,10115,2},{7392,10102,2},{7390,10092,2},{7383,10092,2}, {7387,10107,2},{7385,10133,2},{7382,10145,2},{7383,10157,2},{7395,10148,2}, {7398,10157,2},{7400,10148,2},{7417,10122,2},{7423,10118,2},{7433,10103,2}, {7438,10113,2},{7442,10112,2},{7443,10093,2},{7440,10083,2},{7442,10072,2}, {7443,10058,2},{7447,10085,2},{7448,10113,2},{7450,10120,2},{7450,10132,2}, {7448,10140,2},{7443,10132,2},{7438,10133,2},{7432,10157,2},{7425,10175,2}, {7425,10198,2},{7422,10198,2},{7425,10208,2},{7422,10217,2},{7423,10220,2}, {7427,10218,2},{7427,10208,2},{7430,10205,2},{7432,10208,2},{7437,10203,2}, {7447,10188,2},{7452,10192,2},{7453,10243,2},{7452,10253,2},{7448,10280,2}, {6287,3463,130},{6283,3467,2},{6282,3473,2},{6285,3477,2},{6283,3488,2}, {6277,3505,2},{6275,3507,2},{6277,3497,2},{6273,3505,2},{6272,3517,2},{6268,3522,2}, {6267,3540,2},{6263,3542,2},{6262,3542,2},{6257,3550,2},{6262,3548,2},{6263,3552,2}, {6255,3555,2},{6257,3558,2},{6255,3570,2},{6248,3580,2},{6242,3585,2},{6232,3583,2}, {6218,3577,2},{6210,3568,2},{6205,3565,2},{6200,3572,2},{6197,3582,2},{6195,3587,2}, {6190,3583,2},{6187,3585,2},{6185,3582,2},{6183,3583,2},{6180,3595,2},{6172,3603,2}, {6165,3602,2},{6158,3618,2},{6152,3623,2},{6148,3623,2},{6145,3637,2},{6140,3643,2}, {6130,3643,2},{6128,3640,2},{6128,3637,2},{6125,3633,2},{6117,3645,2},{6117,3638,2}, {6113,3633,2},{6107,3622,2},{6108,3608,2},{6102,3605,2},{6095,3595,2},{6093,3580,2}, {6093,3585,2},{6092,3583,2},{6092,3595,2},{6088,3593,2},{6085,3587,2},{6088,3580,2}, {6087,3575,2},{6090,3578,2},{6092,3577,2},{6088,3563,2},{6090,3555,2},{6095,3550,2}, {6098,3552,2},{6105,3538,2},{6105,3533,2},{6100,3527,2},{6102,3522,2},{6098,3513,2}, {6100,3510,2},{6102,3515,2},{6105,3512,2},{6107,3497,2},{6108,3493,2},{6110,3490,2}, {6108,3487,2},{6105,3492,2},{6102,3483,2},{6113,3478,2},{6115,3482,2},{6123,3482,2}, {6122,3490,2},{6118,3498,2},{6120,3505,2},{6122,3510,2},{6118,3517,2},{6117,3525,2}, {6117,3522,2},{6113,3522,2},{6118,3510,2},{6117,3505,2},{6112,3503,2},{6105,3517,2}, {6105,3523,2},{6108,3530,2},{6107,3542,2},{6105,3545,2},{6100,3555,2},{6112,3570,2}, {6115,3568,2},{6118,3560,2},{6123,3562,2},{6127,3555,2},{6132,3555,2},{6133,3550,2}, {6137,3548,2},{6138,3537,2},{6142,3535,2},{6145,3528,2},{6148,3525,2},{6148,3518,2}, {6150,3512,2},{6148,3505,2},{6153,3503,2},{6153,3488,2},{6158,3478,2},{6158,3472,2}, {6163,3467,2},{6165,3463,2},{6177,3445,2},{6182,3432,2},{6183,3435,2},{6188,3428,2}, {6190,3430,2},{6185,3437,2},{6183,3437,2},{6182,3448,2},{6177,3457,2},{6185,3458,2}, {6185,3463,2},{6190,3462,2},{6203,3450,2},{6212,3428,2},{6215,3430,2},{6218,3423,2}, {6222,3428,2},{6227,3427,2},{6233,3415,2},{6240,3410,2},{6242,3403,2},{6240,3403,2}, {6237,3402,2},{6237,3398,2},{6247,3393,2},{6253,3397,2},{6252,3407,2},{6243,3407,2}, {6243,3412,2},{6235,3418,2},{6225,3437,2},{6223,3432,2},{6218,3432,2},{6210,3448,2}, {6208,3460,2},{6202,3473,2},{6205,3475,2},{6223,3457,2},{6223,3460,2},{6225,3462,2}, {6223,3463,2},{6217,3472,2},{6223,3470,2},{6233,3457,2},{6247,3443,2},{6235,3463,2}, {6225,3477,2},{6225,3480,2},{6232,3478,2},{6235,3475,2},{6245,3457,2},{6250,3455,2}, {6253,3448,2},{6260,3447,2},{6255,3450,2},{6245,3470,2},{6235,3482,2},{6227,3485,2}, {6232,3487,2},{6225,3487,2},{6225,3483,2},{6218,3488,2},{6205,3505,2},{6203,3515,2}, {6205,3515,2},{6210,3520,2},{6222,3502,2},{6222,3505,2},{6225,3502,2},{6222,3510,2}, {6217,3517,2},{6217,3528,2},{6212,3535,2},{6217,3538,2},{6217,3548,2},{6223,3558,2}, {6238,3553,2},{6248,3543,2},{6253,3535,2},{6257,3533,2},{6257,3530,2},{6252,3530,2}, {6255,3515,2},{6255,3510,2},{6257,3508,2},{6265,3495,2},{6265,3492,2},{6262,3497,2}, {6263,3490,2},{6263,3485,2},{6260,3483,2},{6257,3490,2},{6250,3498,2},{6242,3503,2}, {6255,3492,2},{6255,3488,2},{6253,3490,2},{6257,3483,2},{6267,3473,2},{6265,3470,2}, {6260,3477,2},{6260,3473,2},{6270,3467,2},{6275,3457,2},{6280,3457,2},{6285,3453,2}, {6285,3452,2},{6285,3448,2},{6290,3445,2},{6292,3448,2},{6292,3455,2},{6288,3458,2}, {6287,3463,2},{5895,3812,130},{5888,3820,2},{5855,3872,2},{5848,3892,2}, {5850,3907,2},{5847,3897,2},{5843,3895,2},{5840,3897,2},{5833,3908,2},{5835,3900,2}, {5835,3892,2},{5833,3885,2},{5827,3880,2},{5818,3880,2},{5810,3885,2},{5812,3878,2}, {5818,3875,2},{5825,3858,2},{5823,3857,2},{5810,3870,2},{5812,3863,2},{5808,3858,2}, {5810,3855,2},{5813,3848,2},{5815,3840,2},{5810,3833,2},{5808,3832,2},{5803,3842,2}, {5802,3843,2},{5803,3835,2},{5803,3825,2},{5810,3823,2},{5822,3827,2},{5825,3823,2}, {5825,3813,2},{5825,3808,2},{5827,3810,2},{5832,3792,2},{5830,3790,2},{5827,3792,2}, {5827,3790,2},{5833,3785,2},{5840,3775,2},{5840,3772,2},{5843,3768,2},{5843,3763,2}, {5845,3765,2},{5848,3758,2},{5852,3755,2},{5852,3750,2},{5858,3748,2},{5858,3743,2}, {5863,3738,2},{5865,3732,2},{5870,3725,2},{5868,3715,2},{5868,3708,2},{5872,3717,2}, {5872,3722,2},{5877,3715,2},{5882,3713,2},{5882,3717,2},{5888,3712,2},{5883,3720,2}, {5877,3727,2},{5877,3733,2},{5872,3735,2},{5873,3748,2},{5867,3737,2},{5862,3747,2}, {5862,3752,2},{5863,3752,2},{5862,3757,2},{5858,3755,2},{5855,3757,2},{5853,3763,2}, {5855,3767,2},{5858,3770,2},{5860,3768,2},{5858,3763,2},{5862,3763,2},{5863,3760,2}, {5865,3762,2},{5865,3767,2},{5860,3773,2},{5863,3773,2},{5863,3777,2},{5855,3793,2}, {5852,3808,2},{5853,3810,2},{5858,3808,2},{5860,3805,2},{5860,3813,2},{5862,3813,2}, {5867,3802,2},{5867,3795,2},{5868,3802,2},{5870,3800,2},{5872,3792,2},{5872,3795,2}, {5875,3793,2},{5872,3802,2},{5872,3805,2},{5877,3805,2},{5880,3798,2},{5888,3800,2}, {5887,3797,2},{5883,3793,2},{5885,3790,2},{5888,3790,2},{5888,3785,2},{5892,3785,2}, {5895,3773,2},{5892,3768,2},{5892,3753,2},{5883,3753,2},{5882,3750,2},{5887,3743,2}, {5890,3748,2},{5895,3748,2},{5895,3755,2},{5898,3758,2},{5897,3763,2},{5902,3773,2}, {5903,3768,2},{5905,3770,2},{5908,3767,2},{5910,3770,2},{5912,3770,2},{5918,3753,2}, {5913,3773,2},{5915,3778,2},{5913,3783,2},{5913,3788,2},{5915,3793,2},{5920,3798,2}, {5920,3805,2},{5918,3800,2},{5913,3795,2},{5908,3815,2},{5910,3818,2},{5915,3818,2}, {5918,3817,2},{5920,3810,2},{5922,3812,2},{5922,3820,2},{5918,3818,2},{5915,3827,2}, {5913,3833,2},{5913,3837,2},{5920,3842,2},{5918,3845,2},{5908,3837,2},{5908,3830,2}, {5907,3832,2},{5907,3825,2},{5907,3820,2},{5905,3820,2},{5905,3813,2},{5908,3810,2}, {5912,3793,2},{5910,3787,2},{5908,3777,2},{5903,3792,2},{5905,3795,2},{5898,3802,2}, {5900,3807,2},{5893,3813,2},{6173,3092,130},{6170,3107,2},{6163,3107,2}, {6162,3112,2},{6162,3117,2},{6163,3117,2},{6163,3122,2},{6167,3125,2},{6158,3130,2}, {6163,3133,2},{6162,3137,2},{6152,3153,2},{6143,3158,2},{6140,3165,2},{6142,3165,2}, {6145,3160,2},{6148,3160,2},{6138,3173,2},{6135,3187,2},{6132,3190,2},{6123,3223,2}, {6113,3252,2},{6107,3258,2},{6098,3258,2},{6098,3263,2},{6097,3263,2},{6085,3280,2}, {6072,3282,2},{6068,3292,2},{6065,3295,2},{6045,3278,2},{6050,3278,2},{6055,3265,2}, {6055,3262,2},{6052,3258,2},{6040,3268,2},{6035,3263,2},{6035,3257,2},{6025,3262,2}, {6018,3253,2},{6013,3228,2},{6018,3220,2},{6022,3217,2},{6022,3210,2},{6023,3210,2}, {6025,3198,2},{6023,3190,2},{6025,3183,2},{6023,3178,2},{6025,3173,2},{6023,3172,2}, {6017,3162,2},{6015,3157,2},{6013,3157,2},{6015,3160,2},{6013,3162,2},{6005,3153,2}, {5998,3158,2},{5993,3155,2},{5990,3148,2},{5990,3142,2},{5990,3138,2},{5993,3137,2}, {5993,3133,2},{5993,3125,2},{5992,3117,2},{5993,3105,2},{6002,3115,2},{6003,3117,2}, {6007,3108,2},{6010,3112,2},{6013,3112,2},{6020,3097,2},{6045,3085,2},{6047,3082,2}, {6043,3080,2},{6045,3077,2},{6052,3077,2},{6053,3072,2},{6058,3070,2},{6063,3052,2}, {6068,3053,2},{6073,3050,2},{6073,3053,2},{6083,3052,2},{6087,3043,2},{6088,3047,2}, {6095,3037,2},{6100,3028,2},{6103,3025,2},{6117,2988,2},{6122,2980,2},{6120,2992,2}, {6117,2995,2},{6115,3000,2},{6118,3002,2},{6122,2998,2},{6122,2988,2},{6123,2992,2}, {6125,2983,2},{6127,2987,2},{6130,2990,2},{6122,3007,2},{6125,3007,2},{6125,3010,2}, {6127,3007,2},{6130,3010,2},{6130,3020,2},{6130,3027,2},{6132,3025,2},{6133,3018,2}, {6133,3025,2},{6135,3023,2},{6135,3015,2},{6137,3015,2},{6138,3022,2},{6142,3020,2}, {6145,3025,2},{6143,3032,2},{6145,3035,2},{6148,3023,2},{6152,3023,2},{6152,3032,2}, {6148,3047,2},{6148,3048,2},{6153,3047,2},{6152,3052,2},{6153,3063,2},{6160,3055,2}, {6160,3060,2},{6170,3070,2},{6172,3075,2},{6175,3075,2},{6178,3083,2},{6177,3085,2}, {6175,3090,2},{6173,3087,2},{6173,3095,2},{5572,10948,130},{5575,10952,2}, {5577,10960,2},{5573,10982,2},{5575,10978,2},{5578,10962,2},{5578,10963,2}, {5578,10970,2},{5577,10975,2},{5578,10980,2},{5575,10987,2},{5572,10987,2}, {5567,10997,2},{5555,10983,2},{5553,10988,2},{5550,10985,2},{5547,10985,2}, {5547,10990,2},{5545,10985,2},{5535,10982,2},{5530,10977,2},{5523,10980,2}, {5515,10973,2},{5513,10975,2},{5510,10975,2},{5503,10978,2},{5498,10972,2}, {5492,10972,2},{5487,10967,2},{5483,10968,2},{5480,10963,2},{5468,10963,2}, {5465,10955,2},{5462,10952,2},{5443,10952,2},{5438,10948,2},{5433,10952,2}, {5430,10947,2},{5415,10957,2},{5412,10952,2},{5402,10947,2},{5388,10927,2}, {5382,10922,2},{5380,10918,2},{5378,10918,2},{5375,10922,2},{5368,10918,2}, {5367,10922,2},{5362,10917,2},{5362,10903,2},{5363,10898,2},{5367,10903,2}, {5373,10908,2},{5377,10902,2},{5382,10907,2},{5387,10903,2},{5385,10890,2}, {5378,10880,2},{5362,10867,2},{5352,10853,2},{5352,10857,2},{5355,10867,2}, {5360,10887,2},{5358,10890,2},{5350,10898,2},{5340,10900,2},{5335,10897,2}, {5332,10885,2},{5328,10882,2},{5327,10875,2},{5330,10868,2},{5328,10862,2}, {5320,10845,2},{5317,10843,2},{5310,10830,2},{5307,10830,2},{5305,10833,2}, {5302,10833,2},{5292,10818,2},{5283,10800,2},{5278,10797,2},{5272,10780,2}, {5270,10753,2},{5267,10742,2},{5262,10733,2},{5257,10713,2},{5245,10690,2}, {5238,10687,2},{5232,10682,2},{5232,10678,2},{5233,10673,2},{5237,10665,2}, {5238,10655,2},{5237,10647,2},{5233,10640,2},{5233,10633,2},{5225,10623,2}, {5213,10628,2},{5208,10625,2},{5210,10623,2},{5205,10622,2},{5200,10617,2}, {5195,10620,2},{5190,10610,2},{5187,10607,2},{5182,10600,2},{5173,10592,2}, {5173,10585,2},{5170,10580,2},{5165,10553,2},{5160,10538,2},{5157,10513,2}, {5153,10493,2},{5150,10488,2},{5147,10477,2},{5148,10463,2},{5147,10452,2}, {5150,10442,2},{5150,10427,2},{5160,10393,2},{5162,10385,2},{5168,10372,2}, {5170,10372,2},{5172,10373,2},{5175,10408,2},{5180,10440,2},{5178,10463,2}, {5187,10475,2},{5187,10498,2},{5190,10508,2},{5192,10523,2},{5198,10530,2}, {5203,10545,2},{5212,10558,2},{5218,10567,2},{5223,10570,2},{5247,10595,2}, {5257,10617,2},{5263,10643,2},{5273,10658,2},{5277,10657,2},{5277,10662,2}, {5282,10665,2},{5287,10677,2},{5293,10680,2},{5298,10692,2},{5303,10685,2}, {5302,10678,2},{5302,10673,2},{5308,10683,2},{5310,10688,2},{5313,10690,2}, {5317,10698,2},{5322,10702,2},{5328,10715,2},{5343,10753,2},{5347,10757,2}, {5350,10755,2},{5363,10765,2},{5382,10802,2},{5383,10807,2},{5392,10820,2}, {5400,10823,2},{5405,10828,2},{5415,10830,2},{5418,10838,2},{5428,10847,2}, {5430,10850,2},{5448,10858,2},{5460,10873,2},{5472,10882,2},{5478,10885,2}, {5482,10885,2},{5485,10892,2},{5492,10895,2},{5495,10890,2},{5503,10903,2}, {5505,10910,2},{5510,10912,2},{5518,10918,2},{5532,10920,2},{5538,10922,2}, {5543,10918,2},{5545,10920,2},{5547,10917,2},{5555,10920,2},{5558,10923,2}, {5562,10935,2},{5565,10937,2},{5568,10943,2},{5575,10950,2},{5620,10223,130}, {5622,10227,2},{5623,10230,2},{5625,10228,2},{5625,10223,2},{5628,10225,2}, {5623,10238,2},{5625,10250,2},{5627,10245,2},{5628,10250,2},{5632,10248,2}, {5635,10245,2},{5637,10250,2},{5632,10253,2},{5632,10258,2},{5635,10258,2}, {5633,10262,2},{5632,10262,2},{5630,10258,2},{5623,10258,2},{5622,10277,2}, {5623,10278,2},{5628,10280,2},{5630,10282,2},{5623,10282,2},{5620,10283,2}, {5618,10287,2},{5620,10288,2},{5620,10290,2},{5618,10290,2},{5617,10293,2}, {5618,10298,2},{5623,10300,2},{5623,10305,2},{5620,10305,2},{5613,10297,2}, {5605,10305,2},{5603,10302,2},{5592,10302,2},{5583,10307,2},{5577,10322,2}, {5575,10322,2},{5570,10327,2},{5568,10323,2},{5563,10325,2},{5562,10322,2}, {5557,10320,2},{5553,10320,2},{5552,10323,2},{5550,10320,2},{5530,10335,2}, {5512,10335,2},{5508,10333,2},{5500,10327,2},{5492,10312,2},{5477,10308,2}, {5473,10310,2},{5470,10322,2},{5463,10325,2},{5463,10330,2},{5462,10327,2}, {5443,10327,2},{5443,10333,2},{5442,10330,2},{5438,10333,2},{5430,10333,2}, {5420,10340,2},{5413,10352,2},{5417,10340,2},{5425,10333,2},{5437,10332,2}, {5438,10327,2},{5437,10320,2},{5425,10305,2},{5415,10300,2},{5407,10305,2}, {5403,10312,2},{5397,10318,2},{5390,10328,2},{5388,10327,2},{5385,10333,2}, {5385,10328,2},{5382,10328,2},{5363,10345,2},{5362,10353,2},{5363,10357,2}, {5365,10357,2},{5363,10358,2},{5360,10360,2},{5358,10367,2},{5358,10370,2}, {5363,10373,2},{5363,10378,2},{5353,10370,2},{5347,10377,2},{5347,10373,2}, {5350,10368,2},{5355,10365,2},{5358,10352,2},{5358,10343,2},{5355,10342,2}, {5352,10342,2},{5353,10338,2},{5335,10343,2},{5327,10343,2},{5317,10337,2}, {5310,10338,2},{5310,10337,2},{5317,10333,2},{5328,10338,2},{5340,10338,2}, {5353,10333,2},{5365,10335,2},{5370,10333,2},{5372,10330,2},{5373,10310,2}, {5378,10292,2},{5378,10282,2},{5382,10292,2},{5375,10317,2},{5375,10325,2}, {5377,10325,2},{5387,10322,2},{5397,10315,2},{5400,10307,2},{5402,10307,2}, {5407,10298,2},{5415,10297,2},{5425,10302,2},{5437,10315,2},{5442,10312,2}, {5443,10305,2},{5443,10313,2},{5438,10320,2},{5443,10325,2},{5465,10322,2}, {5468,10318,2},{5473,10307,2},{5480,10305,2},{5492,10308,2},{5503,10325,2}, {5513,10332,2},{5530,10332,2},{5538,10327,2},{5548,10315,2},{5562,10318,2}, {5572,10318,2},{5580,10308,2},{5583,10298,2},{5595,10295,2},{5598,10297,2}, {5603,10295,2},{5610,10288,2},{5613,10283,2},{5608,10278,2},{5610,10277,2}, {5613,10278,2},{5615,10277,2},{5615,10265,2},{5615,10262,2},{5615,10258,2}, {5617,10253,2},{5615,10252,2},{5615,10245,2},{5610,10252,2},{5610,10248,2}, {5613,10243,2},{5612,10240,2},{5610,10238,2},{5605,10253,2},{5602,10255,2}, {5607,10242,2},{5607,10235,2},{5613,10233,2},{5610,10218,2},{5607,10222,2}, {5607,10212,2},{5603,10217,2},{5607,10207,2},{5605,10200,2},{5603,10202,2}, {5602,10195,2},{5600,10195,2},{5600,10200,2},{5598,10200,2},{5598,10202,2}, {5597,10198,2},{5593,10202,2},{5590,10197,2},{5587,10197,2},{5582,10185,2}, {5575,10185,2},{5573,10192,2},{5572,10195,2},{5572,10205,2},{5573,10208,2}, {5568,10217,2},{5567,10217,2},{5568,10198,2},{5568,10195,2},{5560,10213,2}, {5562,10220,2},{5558,10237,2},{5555,10240,2},{5548,10238,2},{5542,10228,2}, {5533,10233,2},{5528,10228,2},{5532,10237,2},{5530,10242,2},{5528,10243,2}, {5525,10242,2},{5525,10228,2},{5518,10235,2},{5515,10233,2},{5512,10223,2}, {5510,10225,2},{5507,10223,2},{5505,10213,2},{5503,10208,2},{5503,10207,2}, {5507,10210,2},{5508,10220,2},{5512,10217,2},{5513,10218,2},{5517,10230,2}, {5522,10227,2},{5525,10227,2},{5528,10242,2},{5530,10238,2},{5527,10230,2}, {5528,10225,2},{5533,10232,2},{5543,10225,2},{5545,10228,2},{5548,10235,2}, {5553,10233,2},{5553,10218,2},{5552,10218,2},{5550,10222,2},{5548,10222,2}, {5550,10217,2},{5547,10198,2},{5543,10185,2},{5540,10185,2},{5542,10182,2}, {5540,10173,2},{5542,10182,2},{5545,10173,2},{5547,10173,2},{5548,10167,2}, {5548,10173,2},{5547,10187,2},{5548,10195,2},{5550,10203,2},{5552,10212,2}, {5553,10213,2},{5558,10185,2},{5560,10187,2},{5563,10180,2},{5568,10180,2}, {5568,10177,2},{5572,10182,2},{5578,10182,2},{5580,10173,2},{5583,10173,2}, {5583,10170,2},{5583,10162,2},{5585,10162,2},{5587,10150,2},{5588,10148,2}, {5590,10155,2},{5592,10150,2},{5595,10147,2},{5595,10140,2},{5590,10142,2}, {5588,10135,2},{5592,10137,2},{5593,10135,2},{5600,10118,2},{5600,10127,2}, {5597,10138,2},{5598,10147,2},{5590,10165,2},{5598,10158,2},{5598,10162,2}, {5598,10167,2},{5593,10168,2},{5592,10170,2},{5597,10175,2},{5598,10172,2}, {5600,10175,2},{5605,10168,2},{5603,10182,2},{5607,10175,2},{5608,10177,2}, {5610,10160,2},{5612,10167,2},{5615,10167,2},{5617,10173,2},{5622,10168,2}, {5627,10168,2},{5628,10173,2},{5628,10180,2},{5627,10183,2},{5622,10182,2}, {5620,10185,2},{5622,10193,2},{5627,10197,2},{5625,10203,2},{5623,10203,2}, {5623,10198,2},{5620,10197,2},{5620,10190,2},{5617,10195,2},{5617,10185,2}, {5615,10188,2},{5613,10178,2},{5612,10178,2},{5608,10187,2},{5612,10190,2}, {5617,10212,2},{5618,10212,2},{5620,10223,2},{5895,2772,130},{5890,2772,2}, {5885,2780,2},{5867,2777,2},{5857,2783,2},{5848,2785,2},{5843,2780,2},{5843,2777,2}, {5847,2778,2},{5835,2763,2},{5830,2765,2},{5832,2753,2},{5823,2752,2},{5823,2758,2}, {5818,2760,2},{5817,2758,2},{5817,2760,2},{5813,2762,2},{5815,2765,2},{5817,2775,2}, {5818,2780,2},{5817,2785,2},{5817,2795,2},{5815,2797,2},{5812,2803,2},{5807,2805,2}, {5800,2815,2},{5797,2813,2},{5792,2818,2},{5785,2813,2},{5787,2808,2},{5785,2795,2}, {5790,2792,2},{5792,2785,2},{5793,2790,2},{5795,2790,2},{5798,2780,2},{5802,2778,2}, {5803,2773,2},{5803,2765,2},{5802,2767,2},{5797,2760,2},{5803,2758,2},{5808,2760,2}, {5810,2755,2},{5820,2747,2},{5825,2747,2},{5828,2742,2},{5837,2742,2},{5840,2733,2}, {5840,2727,2},{5842,2723,2},{5862,2720,2},{5872,2712,2},{5878,2695,2},{5883,2695,2}, {5888,2698,2},{5895,2707,2},{5898,2727,2},{5902,2752,2},{5898,2773,2},{5895,2772,2}, {5838,2612,130},{5833,2615,2},{5822,2613,2},{5817,2608,2},{5810,2608,2}, {5818,2605,2},{5820,2600,2},{5825,2598,2},{5832,2592,2},{5842,2598,2},{5840,2608,2}, {5838,2612,2},{5572,10948,130},{5575,10952,2},{5577,10960,2},{5573,10982,2}, {5575,10978,2},{5578,10962,2},{5578,10963,2},{5578,10970,2},{5577,10975,2}, {5578,10980,2},{5575,10987,2},{5572,10987,2},{5567,10997,2},{5555,10983,2}, {5553,10988,2},{5550,10985,2},{5547,10985,2},{5547,10990,2},{5545,10985,2}, {5535,10982,2},{5530,10977,2},{5523,10980,2},{5515,10973,2},{5513,10975,2}, {5510,10975,2},{5503,10978,2},{5498,10972,2},{5492,10972,2},{5487,10967,2}, {5483,10968,2},{5480,10963,2},{5468,10963,2},{5465,10955,2},{5462,10952,2}, {5443,10952,2},{5438,10948,2},{5433,10952,2},{5430,10947,2},{5415,10957,2}, {5412,10952,2},{5402,10947,2},{5388,10927,2},{5382,10922,2},{5380,10918,2}, {5378,10918,2},{5375,10922,2},{5368,10918,2},{5367,10922,2},{5362,10917,2}, {5362,10903,2},{5363,10898,2},{5367,10903,2},{5373,10908,2},{5377,10902,2}, {5382,10907,2},{5387,10903,2},{5385,10890,2},{5378,10880,2},{5362,10867,2}, {5352,10853,2},{5352,10857,2},{5355,10867,2},{5360,10887,2},{5358,10890,2}, {5350,10898,2},{5340,10900,2},{5335,10897,2},{5332,10885,2},{5328,10882,2}, {5327,10875,2},{5330,10868,2},{5328,10862,2},{5320,10845,2},{5317,10843,2}, {5310,10830,2},{5307,10830,2},{5305,10833,2},{5302,10833,2},{5292,10818,2}, {5283,10800,2},{5278,10797,2},{5272,10780,2},{5270,10753,2},{5267,10742,2}, {5262,10733,2},{5257,10713,2},{5245,10690,2},{5238,10687,2},{5232,10682,2}, {5232,10678,2},{5233,10673,2},{5237,10665,2},{5238,10655,2},{5237,10647,2}, {5233,10640,2},{5233,10633,2},{5225,10623,2},{5213,10628,2},{5208,10625,2}, {5210,10623,2},{5205,10622,2},{5200,10617,2},{5195,10620,2},{5190,10610,2}, {5187,10607,2},{5182,10600,2},{5173,10592,2},{5173,10585,2},{5170,10580,2}, {5165,10553,2},{5160,10538,2},{5157,10513,2},{5153,10493,2},{5150,10488,2}, {5147,10477,2},{5148,10463,2},{5147,10452,2},{5150,10442,2},{5150,10427,2}, {5160,10393,2},{5162,10385,2},{5168,10372,2},{5170,10372,2},{5172,10373,2}, {5175,10408,2},{5180,10440,2},{5178,10463,2},{5187,10475,2},{5187,10498,2}, {5190,10508,2},{5192,10523,2},{5198,10530,2},{5203,10545,2},{5212,10558,2}, {5218,10567,2},{5223,10570,2},{5247,10595,2},{5257,10617,2},{5263,10643,2}, {5273,10658,2},{5277,10657,2},{5277,10662,2},{5282,10665,2},{5287,10677,2}, {5293,10680,2},{5298,10692,2},{5303,10685,2},{5302,10678,2},{5302,10673,2}, {5308,10683,2},{5310,10688,2},{5313,10690,2},{5317,10698,2},{5322,10702,2}, {5328,10715,2},{5343,10753,2},{5347,10757,2},{5350,10755,2},{5363,10765,2}, {5382,10802,2},{5383,10807,2},{5392,10820,2},{5400,10823,2},{5405,10828,2}, {5415,10830,2},{5418,10838,2},{5428,10847,2},{5430,10850,2},{5448,10858,2}, {5460,10873,2},{5472,10882,2},{5478,10885,2},{5482,10885,2},{5485,10892,2}, {5492,10895,2},{5495,10890,2},{5503,10903,2},{5505,10910,2},{5510,10912,2}, {5518,10918,2},{5532,10920,2},{5538,10922,2},{5543,10918,2},{5545,10920,2}, {5547,10917,2},{5555,10920,2},{5558,10923,2},{5562,10935,2},{5565,10937,2}, {5568,10943,2},{5575,10950,2},{5223,10440,130},{5220,10443,2},{5220,10447,2}, {5217,10447,2},{5218,10452,2},{5215,10448,2},{5212,10457,2},{5200,10467,2}, {5192,10480,2},{5193,10472,2},{5198,10467,2},{5200,10462,2},{5210,10452,2}, {5210,10450,2},{5205,10447,2},{5205,10443,2},{5208,10447,2},{5213,10443,2}, {5215,10445,2},{5217,10442,2},{5215,10438,2},{5218,10440,2},{5220,10438,2}, {5220,10435,2},{5223,10433,2},{5225,10433,2},{5223,10440,2},{5620,10223,130}, {5622,10227,2},{5623,10230,2},{5625,10228,2},{5625,10223,2},{5628,10225,2}, {5623,10238,2},{5625,10250,2},{5627,10245,2},{5628,10250,2},{5632,10248,2}, {5635,10245,2},{5637,10250,2},{5632,10253,2},{5632,10258,2},{5635,10258,2}, {5633,10262,2},{5632,10262,2},{5630,10258,2},{5623,10258,2},{5622,10277,2}, {5623,10278,2},{5628,10280,2},{5630,10282,2},{5623,10282,2},{5620,10283,2}, {5618,10287,2},{5620,10288,2},{5620,10290,2},{5618,10290,2},{5617,10293,2}, {5618,10298,2},{5623,10300,2},{5623,10305,2},{5620,10305,2},{5613,10297,2}, {5605,10305,2},{5603,10302,2},{5592,10302,2},{5583,10307,2},{5577,10322,2}, {5575,10322,2},{5570,10327,2},{5568,10323,2},{5563,10325,2},{5562,10322,2}, {5557,10320,2},{5553,10320,2},{5552,10323,2},{5550,10320,2},{5530,10335,2}, {5512,10335,2},{5508,10333,2},{5500,10327,2},{5492,10312,2},{5477,10308,2}, {5473,10310,2},{5470,10322,2},{5463,10325,2},{5463,10330,2},{5462,10327,2}, {5443,10327,2},{5443,10333,2},{5442,10330,2},{5438,10333,2},{5430,10333,2}, {5420,10340,2},{5413,10352,2},{5417,10340,2},{5425,10333,2},{5437,10332,2}, {5438,10327,2},{5437,10320,2},{5425,10305,2},{5415,10300,2},{5407,10305,2}, {5403,10312,2},{5397,10318,2},{5390,10328,2},{5388,10327,2},{5385,10333,2}, {5385,10328,2},{5382,10328,2},{5363,10345,2},{5362,10353,2},{5363,10357,2}, {5365,10357,2},{5363,10358,2},{5360,10360,2},{5358,10367,2},{5358,10370,2}, {5363,10373,2},{5363,10378,2},{5353,10370,2},{5347,10377,2},{5347,10373,2}, {5350,10368,2},{5355,10365,2},{5358,10352,2},{5358,10343,2},{5355,10342,2}, {5352,10342,2},{5353,10338,2},{5335,10343,2},{5327,10343,2},{5317,10337,2}, {5310,10338,2},{5310,10337,2},{5317,10333,2},{5328,10338,2},{5340,10338,2}, {5353,10333,2},{5365,10335,2},{5370,10333,2},{5372,10330,2},{5373,10310,2}, {5378,10292,2},{5378,10282,2},{5382,10292,2},{5375,10317,2},{5375,10325,2}, {5377,10325,2},{5387,10322,2},{5397,10315,2},{5400,10307,2},{5402,10307,2}, {5407,10298,2},{5415,10297,2},{5425,10302,2},{5437,10315,2},{5442,10312,2}, {5443,10305,2},{5443,10313,2},{5438,10320,2},{5443,10325,2},{5465,10322,2}, {5468,10318,2},{5473,10307,2},{5480,10305,2},{5492,10308,2},{5503,10325,2}, {5513,10332,2},{5530,10332,2},{5538,10327,2},{5548,10315,2},{5562,10318,2}, {5572,10318,2},{5580,10308,2},{5583,10298,2},{5595,10295,2},{5598,10297,2}, {5603,10295,2},{5610,10288,2},{5613,10283,2},{5608,10278,2},{5610,10277,2}, {5613,10278,2},{5615,10277,2},{5615,10265,2},{5615,10262,2},{5615,10258,2}, {5617,10253,2},{5615,10252,2},{5615,10245,2},{5610,10252,2},{5610,10248,2}, {5613,10243,2},{5612,10240,2},{5610,10238,2},{5605,10253,2},{5602,10255,2}, {5607,10242,2},{5607,10235,2},{5613,10233,2},{5610,10218,2},{5607,10222,2}, {5607,10212,2},{5603,10217,2},{5607,10207,2},{5605,10200,2},{5603,10202,2}, {5602,10195,2},{5600,10195,2},{5600,10200,2},{5598,10200,2},{5598,10202,2}, {5597,10198,2},{5593,10202,2},{5590,10197,2},{5587,10197,2},{5582,10185,2}, {5575,10185,2},{5573,10192,2},{5572,10195,2},{5572,10205,2},{5573,10208,2}, {5568,10217,2},{5567,10217,2},{5568,10198,2},{5568,10195,2},{5560,10213,2}, {5562,10220,2},{5558,10237,2},{5555,10240,2},{5548,10238,2},{5542,10228,2}, {5533,10233,2},{5528,10228,2},{5532,10237,2},{5530,10242,2},{5528,10243,2}, {5525,10242,2},{5525,10228,2},{5518,10235,2},{5515,10233,2},{5512,10223,2}, {5510,10225,2},{5507,10223,2},{5505,10213,2},{5503,10208,2},{5503,10207,2}, {5507,10210,2},{5508,10220,2},{5512,10217,2},{5513,10218,2},{5517,10230,2}, {5522,10227,2},{5525,10227,2},{5528,10242,2},{5530,10238,2},{5527,10230,2}, {5528,10225,2},{5533,10232,2},{5543,10225,2},{5545,10228,2},{5548,10235,2}, {5553,10233,2},{5553,10218,2},{5552,10218,2},{5550,10222,2},{5548,10222,2}, {5550,10217,2},{5547,10198,2},{5543,10185,2},{5540,10185,2},{5542,10182,2}, {5540,10173,2},{5542,10182,2},{5545,10173,2},{5547,10173,2},{5548,10167,2}, {5548,10173,2},{5547,10187,2},{5548,10195,2},{5550,10203,2},{5552,10212,2}, {5553,10213,2},{5558,10185,2},{5560,10187,2},{5563,10180,2},{5568,10180,2}, {5568,10177,2},{5572,10182,2},{5578,10182,2},{5580,10173,2},{5583,10173,2}, {5583,10170,2},{5583,10162,2},{5585,10162,2},{5587,10150,2},{5588,10148,2}, {5590,10155,2},{5592,10150,2},{5595,10147,2},{5595,10140,2},{5590,10142,2}, {5588,10135,2},{5592,10137,2},{5593,10135,2},{5600,10118,2},{5600,10127,2}, {5597,10138,2},{5598,10147,2},{5590,10165,2},{5598,10158,2},{5598,10162,2}, {5598,10167,2},{5593,10168,2},{5592,10170,2},{5597,10175,2},{5598,10172,2}, {5600,10175,2},{5605,10168,2},{5603,10182,2},{5607,10175,2},{5608,10177,2}, {5610,10160,2},{5612,10167,2},{5615,10167,2},{5617,10173,2},{5622,10168,2}, {5627,10168,2},{5628,10173,2},{5628,10180,2},{5627,10183,2},{5622,10182,2}, {5620,10185,2},{5622,10193,2},{5627,10197,2},{5625,10203,2},{5623,10203,2}, {5623,10198,2},{5620,10197,2},{5620,10190,2},{5617,10195,2},{5617,10185,2}, {5615,10188,2},{5613,10178,2},{5612,10178,2},{5608,10187,2},{5612,10190,2}, {5617,10212,2},{5618,10212,2},{5620,10223,2},{5473,9092,130},{5488,9092,2}, {5503,9105,2},{5508,9115,2},{5508,9137,2},{5515,9153,2},{5517,9183,2},{5520,9193,2}, {5520,9203,2},{5525,9208,2},{5528,9205,2},{5528,9215,2},{5533,9222,2},{5535,9225,2}, {5547,9233,2},{5550,9240,2},{5545,9242,2},{5538,9237,2},{5533,9245,2},{5537,9250,2}, {5532,9250,2},{5530,9253,2},{5530,9262,2},{5527,9262,2},{5527,9257,2},{5525,9255,2}, {5527,9253,2},{5530,9250,2},{5530,9243,2},{5535,9235,2},{5533,9232,2},{5527,9227,2}, {5523,9220,2},{5520,9220,2},{5520,9213,2},{5517,9202,2},{5515,9190,2},{5513,9187,2}, {5512,9188,2},{5510,9188,2},{5512,9183,2},{5510,9172,2},{5505,9163,2},{5508,9165,2}, {5505,9137,2},{5502,9132,2},{5503,9132,2},{5505,9128,2},{5503,9115,2},{5497,9103,2}, {5492,9100,2},{5482,9097,2},{5470,9098,2},{5465,9097,2},{5453,9127,2},{5447,9132,2}, {5440,9132,2},{5437,9137,2},{5438,9143,2},{5438,9153,2},{5437,9155,2},{5437,9158,2}, {5438,9167,2},{5437,9173,2},{5433,9155,2},{5433,9152,2},{5438,9145,2},{5435,9138,2}, {5427,9150,2},{5417,9155,2},{5403,9158,2},{5397,9155,2},{5397,9160,2},{5398,9165,2}, {5400,9175,2},{5398,9180,2},{5395,9183,2},{5393,9178,2},{5395,9165,2},{5392,9152,2}, {5387,9145,2},{5377,9152,2},{5373,9152,2},{5378,9140,2},{5383,9142,2},{5387,9138,2}, {5390,9142,2},{5395,9142,2},{5400,9152,2},{5408,9153,2},{5408,9150,2},{5410,9148,2}, {5410,9143,2},{5413,9145,2},{5418,9138,2},{5425,9135,2},{5427,9132,2},{5430,9128,2}, {5432,9122,2},{5437,9125,2},{5442,9122,2},{5450,9123,2},{5457,9110,2},{5462,9095,2}, {5467,9087,2},{5472,9087,2},{5473,9092,2},{5392,8123,130},{5397,8123,2}, {5403,8128,2},{5408,8138,2},{5410,8148,2},{5415,8160,2},{5418,8165,2},{5430,8173,2}, {5435,8193,2},{5437,8193,2},{5437,8202,2},{5440,8212,2},{5452,8232,2},{5463,8242,2}, {5468,8263,2},{5478,8277,2},{5485,8300,2},{5483,8308,2},{5478,8310,2},{5477,8318,2}, {5478,8320,2},{5473,8327,2},{5470,8328,2},{5470,8325,2},{5473,8322,2},{5478,8307,2}, {5478,8305,2},{5470,8302,2},{5468,8295,2},{5465,8288,2},{5467,8285,2},{5465,8277,2}, {5455,8260,2},{5453,8247,2},{5450,8242,2},{5445,8232,2},{5443,8223,2},{5435,8208,2}, {5428,8175,2},{5423,8172,2},{5417,8168,2},{5412,8162,2},{5405,8143,2},{5400,8135,2}, {5403,8135,2},{5395,8132,2},{5388,8133,2},{5392,8130,2},{5400,8130,2},{5397,8127,2}, {5393,8128,2},{5388,8125,2},{5388,8123,2},{5393,8123,2},{4772,8423,130}, {4782,8408,2},{4787,8393,2},{4787,8385,2},{4790,8380,2},{4797,8377,2},{4797,8370,2}, {4802,8365,2},{4802,8353,2},{4807,8342,2},{4803,8335,2},{4805,8330,2},{4810,8320,2}, {4815,8317,2},{4815,8310,2},{4817,8305,2},{4823,8300,2},{4827,8303,2},{4822,8310,2}, {4825,8317,2},{4828,8327,2},{4825,8335,2},{4827,8348,2},{4833,8350,2},{4837,8355,2}, {4837,8360,2},{4842,8345,2},{4850,8338,2},{4857,8337,2},{4858,8342,2},{4865,8345,2}, {4877,8342,2},{4887,8345,2},{4895,8355,2},{4897,8363,2},{4903,8373,2},{4908,8402,2}, {4912,8415,2},{4915,8418,2},{4920,8418,2},{4925,8413,2},{4925,8412,2},{4935,8400,2}, {4938,8392,2},{4943,8387,2},{4945,8370,2},{4942,8365,2},{4948,8363,2},{4955,8352,2}, {4952,8348,2},{4953,8347,2},{4953,8343,2},{4957,8343,2},{4963,8337,2},{4962,8343,2}, {4958,8348,2},{4962,8358,2},{4958,8367,2},{4958,8373,2},{4963,8375,2},{4963,8378,2}, {4965,8382,2},{4972,8387,2},{4972,8397,2},{4973,8400,2},{4970,8397,2},{4968,8388,2}, {4962,8380,2},{4958,8378,2},{4955,8382,2},{4957,8372,2},{4955,8370,2},{4953,8373,2}, {4952,8368,2},{4950,8367,2},{4948,8380,2},{4948,8383,2},{4947,8382,2},{4945,8392,2}, {4940,8393,2},{4940,8398,2},{4928,8412,2},{4920,8430,2},{4920,8445,2},{4918,8448,2}, {4917,8442,2},{4917,8438,2},{4913,8435,2},{4912,8428,2},{4905,8400,2},{4900,8393,2}, {4900,8383,2},{4893,8367,2},{4893,8358,2},{4880,8348,2},{4872,8345,2},{4865,8352,2}, {4850,8353,2},{4845,8357,2},{4840,8363,2},{4838,8375,2},{4840,8378,2},{4842,8382,2}, {4840,8388,2},{4840,8395,2},{4840,8397,2},{4837,8393,2},{4835,8385,2},{4837,8377,2}, {4837,8368,2},{4830,8352,2},{4827,8350,2},{4825,8352,2},{4823,8357,2},{4822,8372,2}, {4813,8388,2},{4812,8400,2},{4808,8407,2},{4803,8410,2},{4807,8415,2},{4803,8422,2}, {4802,8435,2},{4800,8440,2},{4797,8445,2},{4793,8455,2},{4790,8445,2},{4785,8443,2}, {4782,8437,2},{4777,8438,2},{4775,8435,2},{4777,8423,2},{4773,8427,2},{4773,8435,2}, {4770,8430,2},{4773,8422,2},{5895,3812,130},{5888,3820,2},{5855,3872,2}, {5848,3892,2},{5850,3907,2},{5847,3897,2},{5843,3895,2},{5840,3897,2},{5833,3908,2}, {5835,3900,2},{5835,3892,2},{5833,3885,2},{5827,3880,2},{5818,3880,2},{5810,3885,2}, {5812,3878,2},{5818,3875,2},{5825,3858,2},{5823,3857,2},{5810,3870,2},{5812,3863,2}, {5808,3858,2},{5810,3855,2},{5813,3848,2},{5815,3840,2},{5810,3833,2},{5808,3832,2}, {5803,3842,2},{5802,3843,2},{5803,3835,2},{5803,3825,2},{5810,3823,2},{5822,3827,2}, {5825,3823,2},{5825,3813,2},{5825,3808,2},{5827,3810,2},{5832,3792,2},{5830,3790,2}, {5827,3792,2},{5827,3790,2},{5833,3785,2},{5840,3775,2},{5840,3772,2},{5843,3768,2}, {5843,3763,2},{5845,3765,2},{5848,3758,2},{5852,3755,2},{5852,3750,2},{5858,3748,2}, {5858,3743,2},{5863,3738,2},{5865,3732,2},{5870,3725,2},{5868,3715,2},{5868,3708,2}, {5872,3717,2},{5872,3722,2},{5877,3715,2},{5882,3713,2},{5882,3717,2},{5888,3712,2}, {5883,3720,2},{5877,3727,2},{5877,3733,2},{5872,3735,2},{5873,3748,2},{5867,3737,2}, {5862,3747,2},{5862,3752,2},{5863,3752,2},{5862,3757,2},{5858,3755,2},{5855,3757,2}, {5853,3763,2},{5855,3767,2},{5858,3770,2},{5860,3768,2},{5858,3763,2},{5862,3763,2}, {5863,3760,2},{5865,3762,2},{5865,3767,2},{5860,3773,2},{5863,3773,2},{5863,3777,2}, {5855,3793,2},{5852,3808,2},{5853,3810,2},{5858,3808,2},{5860,3805,2},{5860,3813,2}, {5862,3813,2},{5867,3802,2},{5867,3795,2},{5868,3802,2},{5870,3800,2},{5872,3792,2}, {5872,3795,2},{5875,3793,2},{5872,3802,2},{5872,3805,2},{5877,3805,2},{5880,3798,2}, {5888,3800,2},{5887,3797,2},{5883,3793,2},{5885,3790,2},{5888,3790,2},{5888,3785,2}, {5892,3785,2},{5895,3773,2},{5892,3768,2},{5892,3753,2},{5883,3753,2},{5882,3750,2}, {5887,3743,2},{5890,3748,2},{5895,3748,2},{5895,3755,2},{5898,3758,2},{5897,3763,2}, {5902,3773,2},{5903,3768,2},{5905,3770,2},{5908,3767,2},{5910,3770,2},{5912,3770,2}, {5918,3753,2},{5913,3773,2},{5915,3778,2},{5913,3783,2},{5913,3788,2},{5915,3793,2}, {5920,3798,2},{5920,3805,2},{5918,3800,2},{5913,3795,2},{5908,3815,2},{5910,3818,2}, {5915,3818,2},{5918,3817,2},{5920,3810,2},{5922,3812,2},{5922,3820,2},{5918,3818,2}, {5915,3827,2},{5913,3833,2},{5913,3837,2},{5920,3842,2},{5918,3845,2},{5908,3837,2}, {5908,3830,2},{5907,3832,2},{5907,3825,2},{5907,3820,2},{5905,3820,2},{5905,3813,2}, {5908,3810,2},{5912,3793,2},{5910,3787,2},{5908,3777,2},{5903,3792,2},{5905,3795,2}, {5898,3802,2},{5900,3807,2},{5893,3813,2},{4950,4355,130},{4948,4360,2}, {4938,4370,2},{4933,4372,2},{4928,4368,2},{4927,4372,2},{4923,4370,2},{4918,4375,2}, {4918,4378,2},{4923,4387,2},{4923,4392,2},{4920,4398,2},{4917,4403,2},{4913,4398,2}, {4910,4397,2},{4908,4395,2},{4903,4397,2},{4893,4390,2},{4892,4382,2},{4892,4365,2}, {4883,4362,2},{4880,4358,2},{4878,4352,2},{4875,4347,2},{4870,4348,2},{4865,4357,2}, {4865,4370,2},{4867,4373,2},{4867,4378,2},{4862,4368,2},{4858,4353,2},{4852,4350,2}, {4852,4362,2},{4850,4360,2},{4848,4345,2},{4843,4337,2},{4840,4337,2},{4833,4330,2}, {4828,4335,2},{4832,4327,2},{4828,4318,2},{4827,4315,2},{4822,4313,2},{4818,4315,2}, {4815,4312,2},{4808,4308,2},{4807,4312,2},{4805,4313,2},{4800,4325,2},{4800,4310,2}, {4795,4305,2},{4792,4305,2},{4782,4310,2},{4778,4308,2},{4768,4308,2},{4768,4307,2}, {4768,4303,2},{4777,4303,2},{4780,4305,2},{4785,4300,2},{4780,4295,2},{4777,4290,2}, {4777,4278,2},{4775,4267,2},{4768,4262,2},{4763,4252,2},{4760,4253,2},{4763,4245,2}, {4762,4240,2},{4760,4238,2},{4758,4240,2},{4757,4237,2},{4758,4235,2},{4758,4225,2}, {4757,4222,2},{4755,4223,2},{4753,4217,2},{4758,4215,2},{4760,4212,2},{4767,4212,2}, {4768,4213,2},{4772,4223,2},{4773,4225,2},{4778,4217,2},{4780,4220,2},{4778,4223,2}, {4780,4228,2},{4783,4227,2},{4785,4220,2},{4783,4232,2},{4785,4235,2},{4792,4237,2}, {4795,4228,2},{4798,4225,2},{4800,4222,2},{4795,4233,2},{4797,4238,2},{4800,4240,2}, {4800,4242,2},{4793,4243,2},{4792,4247,2},{4783,4245,2},{4780,4257,2},{4788,4280,2}, {4797,4287,2},{4793,4280,2},{4795,4280,2},{4800,4285,2},{4805,4283,2},{4815,4287,2}, {4817,4285,2},{4817,4277,2},{4818,4292,2},{4822,4290,2},{4822,4303,2},{4827,4307,2}, {4838,4310,2},{4847,4305,2},{4855,4292,2},{4855,4298,2},{4852,4302,2},{4850,4305,2}, {4853,4313,2},{4848,4310,2},{4845,4315,2},{4847,4317,2},{4845,4320,2},{4847,4327,2}, {4847,4333,2},{4853,4343,2},{4857,4343,2},{4862,4350,2},{4865,4352,2},{4870,4345,2}, {4878,4345,2},{4883,4355,2},{4885,4358,2},{4893,4365,2},{4893,4382,2},{4895,4387,2}, {4898,4390,2},{4908,4392,2},{4918,4398,2},{4920,4390,2},{4917,4378,2},{4918,4373,2}, {4920,4368,2},{4923,4368,2},{4925,4370,2},{4927,4365,2},{4933,4368,2},{4937,4368,2}, {4950,4355,2},{5208,4778,130},{5215,4782,2},{5218,4793,2},{5228,4802,2}, {5232,4808,2},{5252,4818,2},{5258,4820,2},{5267,4827,2},{5272,4837,2},{5277,4842,2}, {5287,4858,2},{5280,4853,2},{5275,4843,2},{5272,4842,2},{5268,4837,2},{5270,4850,2}, {5260,4827,2},{5247,4822,2},{5237,4813,2},{5232,4815,2},{5228,4810,2},{5225,4812,2}, {5222,4823,2},{5223,4828,2},{5222,4832,2},{5220,4823,2},{5222,4818,2},{5222,4808,2}, {5218,4802,2},{5213,4798,2},{5210,4795,2},{5208,4782,2},{5205,4773,2},{5208,4778,2}, {5468,4897,130},{5465,4897,2},{5465,4898,2},{5463,4915,2},{5460,4907,2}, {5462,4895,2},{5465,4892,2},{5463,4890,2},{5455,4888,2},{5455,4892,2},{5452,4892,2}, {5450,4883,2},{5447,4887,2},{5440,4888,2},{5445,4885,2},{5443,4880,2},{5447,4878,2}, {5445,4875,2},{5443,4860,2},{5440,4855,2},{5438,4853,2},{5437,4847,2},{5423,4852,2}, {5417,4858,2},{5415,4870,2},{5415,4880,2},{5413,4877,2},{5408,4885,2},{5408,4878,2}, {5407,4877,2},{5405,4883,2},{5398,4890,2},{5393,4900,2},{5395,4903,2},{5403,4917,2}, {5405,4922,2},{5408,4928,2},{5410,4932,2},{5410,4938,2},{5415,4942,2},{5413,4947,2}, {5415,4950,2},{5420,4958,2},{5420,4967,2},{5423,4973,2},{5423,4975,2},{5420,4972,2}, {5418,4972,2},{5415,4982,2},{5413,4977,2},{5415,4972,2},{5418,4963,2},{5417,4958,2}, {5415,4957,2},{5413,4955,2},{5412,4950,2},{5408,4945,2},{5408,4955,2},{5402,4937,2}, {5398,4942,2},{5398,4932,2},{5395,4928,2},{5397,4927,2},{5395,4922,2},{5390,4920,2}, {5378,4927,2},{5377,4928,2},{5378,4930,2},{5380,4933,2},{5378,4933,2},{5377,4935,2}, {5373,4940,2},{5370,4940,2},{5367,4937,2},{5368,4935,2},{5370,4935,2},{5375,4932,2}, {5372,4927,2},{5375,4927,2},{5383,4915,2},{5380,4908,2},{5370,4908,2},{5362,4903,2}, {5357,4905,2},{5352,4910,2},{5350,4920,2},{5347,4955,2},{5347,4987,2},{5343,4995,2}, {5345,4983,2},{5343,4978,2},{5345,4950,2},{5343,4942,2},{5340,4927,2},{5335,4923,2}, {5330,4927,2},{5327,4920,2},{5328,4910,2},{5327,4902,2},{5327,4882,2},{5337,4865,2}, {5337,4870,2},{5327,4888,2},{5328,4903,2},{5330,4907,2},{5332,4920,2},{5333,4922,2}, {5335,4918,2},{5337,4922,2},{5340,4923,2},{5342,4918,2},{5340,4912,2},{5338,4907,2}, {5342,4905,2},{5345,4893,2},{5345,4902,2},{5347,4905,2},{5350,4903,2},{5358,4888,2}, {5363,4885,2},{5375,4885,2},{5378,4890,2},{5382,4888,2},{5383,4890,2},{5382,4893,2}, {5383,4893,2},{5395,4887,2},{5402,4872,2},{5410,4862,2},{5410,4857,2},{5408,4853,2}, {5410,4852,2},{5410,4845,2},{5413,4845,2},{5417,4837,2},{5420,4837,2},{5437,4843,2}, {5440,4838,2},{5460,4842,2},{5465,4855,2},{5465,4882,2},{5468,4883,2},{5472,4878,2}, {5480,4882,2},{5487,4890,2},{5492,4885,2},{5500,4885,2},{5515,4923,2},{5515,4928,2}, {5518,4930,2},{5525,4920,2},{5530,4918,2},{5542,4902,2},{5545,4903,2},{5543,4907,2}, {5545,4907,2},{5548,4905,2},{5548,4907,2},{5545,4910,2},{5538,4917,2},{5538,4922,2}, {5533,4918,2},{5525,4928,2},{5528,4928,2},{5527,4933,2},{5528,4942,2},{5532,4942,2}, {5537,4930,2},{5540,4937,2},{5542,4932,2},{5545,4933,2},{5548,4930,2},{5552,4933,2}, {5557,4940,2},{5550,4933,2},{5537,4943,2},{5538,4957,2},{5537,4962,2},{5542,4970,2}, {5535,4987,2},{5537,4998,2},{5545,5002,2},{5545,5007,2},{5547,5012,2},{5545,5010,2}, {5545,5022,2},{5542,5028,2},{5542,5033,2},{5540,5035,2},{5545,5047,2},{5548,5050,2}, {5547,5050,2},{5545,5062,2},{5542,5063,2},{5552,5083,2},{5548,5097,2},{5547,5100,2}, {5548,5112,2},{5552,5120,2},{5548,5137,2},{5548,5138,2},{5548,5132,2},{5547,5142,2}, {5550,5148,2},{5553,5148,2},{5568,5138,2},{5572,5142,2},{5578,5138,2},{5580,5142,2}, {5578,5147,2},{5587,5147,2},{5580,5150,2},{5577,5143,2},{5575,5143,2},{5573,5148,2}, {5568,5143,2},{5560,5150,2},{5560,5155,2},{5563,5167,2},{5568,5172,2},{5572,5178,2}, {5568,5187,2},{5572,5195,2},{5572,5200,2},{5567,5187,2},{5567,5183,2},{5570,5180,2}, {5568,5175,2},{5555,5170,2},{5558,5162,2},{5557,5153,2},{5555,5153,2},{5552,5155,2}, {5545,5143,2},{5550,5118,2},{5547,5123,2},{5547,5112,2},{5545,5120,2},{5542,5123,2}, {5538,5123,2},{5533,5118,2},{5535,5113,2},{5538,5120,2},{5540,5122,2},{5545,5115,2}, {5543,5110,2},{5545,5098,2},{5548,5083,2},{5547,5080,2},{5542,5070,2},{5543,5077,2}, {5543,5078,2},{5540,5077,2},{5538,5072,2},{5540,5068,2},{5537,5063,2},{5537,5048,2}, {5537,5038,2},{5533,5037,2},{5533,5032,2},{5537,5027,2},{5537,5022,2},{5532,5012,2}, {5530,4993,2},{5532,4992,2},{5532,4990,2},{5525,4985,2},{5522,4975,2},{5517,4968,2}, {5518,4962,2},{5517,4963,2},{5513,4958,2},{5510,4960,2},{5512,4953,2},{5515,4953,2}, {5512,4945,2},{5505,4940,2},{5508,4947,2},{5507,4947,2},{5498,4938,2},{5502,4937,2}, {5503,4918,2},{5502,4917,2},{5500,4922,2},{5498,4922,2},{5498,4895,2},{5493,4892,2}, {5478,4895,2},{5480,4898,2},{5482,4903,2},{5480,4912,2},{5477,4917,2},{5478,4905,2}, {5477,4903,2},{5475,4903,2},{5468,4892,2},{5468,4897,2},{4852,4457,130}, {4858,4448,2},{4863,4448,2},{4870,4457,2},{4873,4463,2},{4892,4477,2},{4898,4485,2}, {4903,4488,2},{4917,4502,2},{4925,4498,2},{4942,4505,2},{4947,4513,2},{4953,4513,2}, {4960,4518,2},{4963,4528,2},{4972,4532,2},{4978,4538,2},{4985,4535,2},{4993,4537,2}, {5008,4547,2},{5013,4560,2},{5020,4567,2},{5020,4572,2},{5017,4577,2},{5020,4583,2}, {5023,4585,2},{5027,4593,2},{5025,4605,2},{5027,4612,2},{5028,4615,2},{5027,4618,2}, {5025,4617,2},{5025,4622,2},{5023,4620,2},{5020,4620,2},{5022,4623,2},{5025,4625,2}, {5022,4632,2},{5018,4632,2},{5017,4633,2},{5020,4637,2},{5022,4640,2},{5023,4633,2}, {5028,4638,2},{5030,4643,2},{5033,4642,2},{5035,4645,2},{5037,4643,2},{5035,4640,2}, {5035,4637,2},{5032,4637,2},{5030,4633,2},{5027,4628,2},{5028,4625,2},{5032,4625,2}, {5032,4613,2},{5032,4608,2},{5033,4603,2},{5030,4603,2},{5028,4585,2},{5035,4593,2}, {5042,4592,2},{5050,4587,2},{5055,4578,2},{5065,4572,2},{5072,4577,2},{5073,4573,2}, {5077,4583,2},{5075,4588,2},{5078,4590,2},{5077,4600,2},{5087,4607,2},{5092,4607,2}, {5097,4602,2},{5103,4605,2},{5115,4585,2},{5123,4587,2},{5132,4595,2},{5135,4600,2}, {5140,4600,2},{5143,4603,2},{5143,4598,2},{5147,4598,2},{5148,4603,2},{5152,4615,2}, {5158,4622,2},{5163,4633,2},{5167,4633,2},{5163,4625,2},{5172,4632,2},{5172,4638,2}, {5177,4648,2},{5172,4655,2},{5172,4660,2},{5172,4675,2},{5175,4680,2},{5175,4687,2}, {5182,4698,2},{5188,4703,2},{5183,4693,2},{5180,4683,2},{5173,4673,2},{5177,4667,2}, {5178,4652,2},{5180,4653,2},{5180,4660,2},{5183,4655,2},{5190,4657,2},{5180,4648,2}, {5178,4633,2},{5175,4628,2},{5177,4625,2},{5168,4625,2},{5165,4622,2},{5165,4618,2}, {5157,4617,2},{5148,4597,2},{5142,4595,2},{5138,4585,2},{5133,4580,2},{5127,4577,2}, {5115,4580,2},{5108,4583,2},{5103,4600,2},{5095,4597,2},{5088,4603,2},{5082,4590,2}, {5080,4578,2},{5077,4568,2},{5072,4563,2},{5060,4565,2},{5055,4573,2},{5042,4587,2}, {5032,4570,2},{5022,4563,2},{5017,4552,2},{5013,4548,2},{5008,4542,2},{4993,4533,2}, {4978,4533,2},{4965,4518,2},{4955,4512,2},{4952,4507,2},{4953,4503,2},{4955,4503,2}, {4957,4505,2},{4957,4500,2},{4953,4500,2},{4948,4502,2},{4950,4505,2},{4948,4508,2}, {4943,4503,2},{4938,4502,2},{4928,4495,2},{4918,4497,2},{4912,4488,2},{4907,4485,2}, {4893,4468,2},{4882,4463,2},{4870,4450,2},{4862,4443,2},{4857,4445,2},{4852,4452,2}, {4852,4457,2},{5752,4283,130},{5748,4282,2},{5748,4277,2},{5745,4278,2}, {5745,4268,2},{5742,4258,2},{5742,4272,2},{5742,4278,2},{5740,4282,2},{5727,4268,2}, {5730,4275,2},{5733,4278,2},{5735,4282,2},{5735,4285,2},{5737,4287,2},{5735,4293,2}, {5737,4298,2},{5735,4310,2},{5730,4310,2},{5722,4293,2},{5717,4290,2},{5718,4297,2}, {5717,4298,2},{5713,4305,2},{5708,4302,2},{5707,4307,2},{5703,4307,2},{5698,4318,2}, {5695,4320,2},{5693,4317,2},{5693,4312,2},{5697,4303,2},{5693,4302,2},{5693,4305,2}, {5690,4305,2},{5690,4312,2},{5688,4315,2},{5690,4318,2},{5690,4320,2},{5682,4323,2}, {5678,4327,2},{5675,4322,2},{5675,4325,2},{5672,4323,2},{5673,4313,2},{5673,4307,2}, {5672,4308,2},{5673,4313,2},{5672,4320,2},{5668,4325,2},{5667,4312,2},{5660,4305,2}, {5667,4317,2},{5665,4332,2},{5667,4343,2},{5673,4337,2},{5678,4337,2},{5680,4340,2}, {5682,4337,2},{5687,4338,2},{5687,4335,2},{5692,4330,2},{5693,4330,2},{5693,4337,2}, {5695,4340,2},{5695,4337,2},{5698,4337,2},{5697,4332,2},{5700,4323,2},{5703,4322,2}, {5705,4323,2},{5705,4318,2},{5713,4325,2},{5712,4322,2},{5705,4317,2},{5713,4313,2}, {5730,4322,2},{5735,4327,2},{5737,4327,2},{5740,4332,2},{5740,4337,2},{5743,4333,2}, {5747,4337,2},{5748,4335,2},{5757,4352,2},{5760,4352,2},{5760,4360,2},{5762,4357,2}, {5767,4363,2},{5772,4370,2},{5770,4363,2},{5763,4355,2},{5762,4348,2},{5757,4342,2}, {5752,4332,2},{5743,4328,2},{5742,4325,2},{5742,4320,2},{5745,4318,2},{5763,4320,2}, {5758,4317,2},{5748,4318,2},{5743,4315,2},{5742,4313,2},{5740,4303,2},{5738,4302,2}, {5738,4288,2},{5742,4282,2},{5747,4283,2},{5748,4287,2},{5752,4283,2},{5680,5408,130}, {5677,5408,2},{5680,5418,2},{5695,5423,2},{5695,5437,2},{5703,5457,2},{5700,5467,2}, {5703,5478,2},{5702,5485,2},{5705,5487,2},{5707,5495,2},{5708,5502,2},{5713,5505,2}, {5718,5505,2},{5727,5510,2},{5728,5507,2},{5732,5512,2},{5727,5527,2},{5732,5543,2}, {5730,5547,2},{5722,5555,2},{5723,5558,2},{5730,5555,2},{5735,5558,2},{5745,5552,2}, {5750,5557,2},{5755,5557,2},{5760,5552,2},{5760,5540,2},{5763,5540,2},{5768,5545,2}, {5772,5545,2},{5782,5523,2},{5787,5525,2},{5785,5518,2},{5783,5517,2},{5778,5525,2}, {5775,5528,2},{5773,5537,2},{5772,5538,2},{5770,5537,2},{5770,5530,2},{5765,5535,2}, {5760,5533,2},{5758,5542,2},{5757,5552,2},{5750,5552,2},{5743,5540,2},{5742,5548,2}, {5737,5552,2},{5733,5545,2},{5732,5533,2},{5737,5513,2},{5740,5508,2},{5735,5502,2}, {5735,5495,2},{5733,5500,2},{5730,5500,2},{5722,5495,2},{5715,5497,2},{5712,5495,2}, {5710,5490,2},{5712,5480,2},{5708,5478,2},{5707,5473,2},{5708,5467,2},{5710,5453,2}, {5712,5447,2},{5708,5447,2},{5702,5437,2},{5700,5420,2},{5695,5410,2},{5680,5410,2}, {5927,5625,130},{5932,5640,2},{5937,5648,2},{5938,5640,2},{5942,5638,2}, {5937,5655,2},{5938,5667,2},{5942,5668,2},{5943,5668,2},{5948,5658,2},{5955,5667,2}, {5960,5662,2},{5960,5667,2},{5965,5660,2},{5973,5655,2},{5977,5657,2},{5992,5637,2}, {5990,5643,2},{5987,5647,2},{5982,5657,2},{5973,5667,2},{5963,5665,2},{5960,5673,2}, {5955,5670,2},{5955,5673,2},{5947,5668,2},{5942,5673,2},{5935,5665,2},{5928,5672,2}, {5930,5663,2},{5927,5650,2},{5928,5642,2},{5925,5638,2},{5925,5628,2},{5922,5622,2}, {5917,5623,2},{5917,5632,2},{5913,5635,2},{5912,5627,2},{5912,5622,2},{5905,5620,2}, {5907,5625,2},{5905,5628,2},{5903,5630,2},{5905,5638,2},{5902,5632,2},{5898,5633,2}, {5895,5628,2},{5890,5630,2},{5892,5640,2},{5895,5645,2},{5893,5648,2},{5892,5667,2}, {5890,5665,2},{5885,5667,2},{5883,5670,2},{5885,5665,2},{5890,5657,2},{5888,5642,2}, {5883,5637,2},{5878,5633,2},{5877,5640,2},{5873,5642,2},{5877,5633,2},{5873,5630,2}, {5870,5625,2},{5868,5630,2},{5867,5622,2},{5860,5610,2},{5852,5628,2},{5848,5633,2}, {5850,5638,2},{5845,5638,2},{5842,5645,2},{5837,5645,2},{5835,5640,2},{5832,5640,2}, {5833,5627,2},{5832,5625,2},{5825,5638,2},{5820,5638,2},{5817,5635,2},{5818,5642,2}, {5817,5650,2},{5813,5657,2},{5813,5658,2},{5818,5655,2},{5817,5665,2},{5822,5662,2}, {5825,5667,2},{5820,5672,2},{5822,5672,2},{5825,5673,2},{5828,5677,2},{5830,5682,2}, {5832,5685,2},{5832,5688,2},{5827,5683,2},{5818,5685,2},{5817,5693,2},{5815,5700,2}, {5820,5705,2},{5817,5710,2},{5817,5705,2},{5812,5702,2},{5815,5690,2},{5813,5682,2}, {5817,5680,2},{5827,5678,2},{5823,5675,2},{5818,5675,2},{5820,5668,2},{5818,5667,2}, {5815,5668,2},{5815,5662,2},{5812,5667,2},{5807,5670,2},{5807,5673,2},{5803,5680,2}, {5800,5682,2},{5797,5678,2},{5797,5672,2},{5797,5667,2},{5795,5673,2},{5792,5670,2}, {5793,5677,2},{5792,5678,2},{5790,5680,2},{5788,5675,2},{5785,5683,2},{5782,5677,2}, {5780,5678,2},{5782,5685,2},{5775,5687,2},{5775,5683,2},{5768,5687,2},{5775,5678,2}, {5777,5685,2},{5778,5685,2},{5777,5677,2},{5778,5673,2},{5783,5673,2},{5785,5678,2}, {5785,5670,2},{5790,5673,2},{5788,5670,2},{5790,5667,2},{5793,5668,2},{5795,5663,2}, {5798,5665,2},{5800,5677,2},{5802,5678,2},{5805,5670,2},{5810,5662,2},{5817,5643,2}, {5815,5637,2},{5805,5630,2},{5817,5630,2},{5825,5635,2},{5828,5623,2},{5832,5620,2}, {5835,5623,2},{5837,5638,2},{5838,5642,2},{5842,5638,2},{5850,5625,2},{5847,5618,2}, {5853,5622,2},{5853,5613,2},{5847,5607,2},{5852,5605,2},{5850,5597,2},{5853,5600,2}, {5857,5598,2},{5863,5603,2},{5865,5602,2},{5860,5593,2},{5863,5590,2},{5860,5575,2}, {5860,5567,2},{5857,5563,2},{5858,5557,2},{5855,5548,2},{5857,5537,2},{5857,5548,2}, {5860,5555,2},{5860,5563,2},{5867,5592,2},{5877,5615,2},{5878,5600,2},{5880,5598,2}, {5880,5600,2},{5880,5607,2},{5877,5617,2},{5878,5622,2},{5882,5620,2},{5890,5608,2}, {5893,5612,2},{5893,5600,2},{5897,5583,2},{5897,5562,2},{5898,5558,2},{5900,5583,2}, {5898,5595,2},{5897,5603,2},{5895,5608,2},{5895,5620,2},{5898,5622,2},{5908,5612,2}, {5913,5618,2},{5923,5620,2},{5927,5625,2},{6032,3788,130},{6022,3802,2}, {6018,3802,2},{6010,3798,2},{6008,3798,2},{6007,3803,2},{6005,3778,2},{6005,3760,2}, {6008,3738,2},{6013,3725,2},{6018,3722,2},{6025,3728,2},{6030,3740,2},{6033,3755,2}, {6033,3772,2},{6032,3790,2},{3092,4672,130},{3092,4675,2},{3090,4675,2}, {3088,4677,2},{3092,4685,2},{3093,4688,2},{3092,4690,2},{3083,4703,2},{3085,4707,2}, {3085,4715,2},{3088,4718,2},{3088,4720,2},{3087,4723,2},{3083,4718,2},{3082,4722,2}, {3077,4723,2},{3077,4725,2},{3077,4730,2},{3075,4732,2},{3077,4735,2},{3078,4733,2}, {3087,4738,2},{3087,4747,2},{3080,4755,2},{3077,4750,2},{3077,4747,2},{3075,4745,2}, {3075,4757,2},{3072,4763,2},{3063,4767,2},{3060,4770,2},{3060,4767,2},{3065,4762,2}, {3060,4762,2},{3058,4767,2},{3057,4767,2},{3053,4760,2},{3057,4758,2},{3055,4757,2}, {3052,4757,2},{3052,4753,2},{3057,4747,2},{3055,4747,2},{3053,4745,2},{3057,4743,2}, {3065,4742,2},{3065,4723,2},{3070,4722,2},{3070,4718,2},{3073,4712,2},{3072,4695,2}, {3075,4697,2},{3077,4695,2},{3077,4692,2},{3078,4692,2},{3080,4690,2},{3078,4687,2}, {3073,4693,2},{3072,4692,2},{3070,4682,2},{3072,4675,2},{3070,4675,2},{3070,4672,2}, {3067,4667,2},{3067,4660,2},{3067,4658,2},{3072,4658,2},{3075,4660,2},{3075,4675,2}, {3077,4678,2},{3078,4670,2},{3082,4668,2},{3083,4665,2},{3087,4663,2},{3090,4667,2}, {3092,4672,2},{3823,4540,130},{3820,4545,2},{3812,4550,2},{3807,4550,2}, {3803,4547,2},{3803,4548,2},{3798,4548,2},{3797,4547,2},{3795,4547,2},{3793,4543,2}, {3790,4540,2},{3780,4542,2},{3777,4543,2},{3775,4548,2},{3773,4550,2},{3773,4553,2}, {3777,4553,2},{3777,4557,2},{3775,4568,2},{3770,4575,2},{3772,4575,2},{3768,4577,2}, {3767,4580,2},{3763,4578,2},{3765,4568,2},{3763,4565,2},{3760,4572,2},{3757,4572,2}, {3752,4580,2},{3747,4580,2},{3742,4587,2},{3738,4592,2},{3737,4592,2},{3737,4588,2}, {3737,4585,2},{3732,4582,2},{3728,4573,2},{3728,4572,2},{3732,4570,2},{3730,4567,2}, {3727,4562,2},{3720,4562,2},{3713,4558,2},{3712,4555,2},{3715,4552,2},{3713,4550,2}, {3712,4550,2},{3712,4547,2},{3718,4540,2},{3720,4535,2},{3735,4528,2},{3738,4532,2}, {3748,4530,2},{3750,4527,2},{3757,4528,2},{3760,4525,2},{3763,4527,2},{3767,4523,2}, {3770,4527,2},{3775,4527,2},{3783,4517,2},{3785,4507,2},{3795,4505,2},{3800,4508,2}, {3803,4518,2},{3805,4520,2},{3807,4518,2},{3812,4520,2},{3817,4517,2},{3812,4513,2}, {3815,4512,2},{3812,4505,2},{3813,4500,2},{3815,4500,2},{3820,4505,2},{3825,4505,2}, {3827,4510,2},{3827,4533,2},{3823,4540,2},{5728,3775,130},{5723,3785,2}, {5727,3790,2},{5730,3800,2},{5742,3813,2},{5748,3827,2},{5757,3830,2},{5750,3825,2}, {5758,3832,2},{5742,3810,2},{5732,3798,2},{5728,3787,2},{5727,3785,2},{5728,3778,2}, {5670,3637,130},{5663,3650,2},{5662,3650,2},{5660,3642,2},{5660,3635,2}, {5658,3630,2},{5658,3623,2},{5657,3617,2},{5650,3612,2},{5660,3657,2},{5668,3668,2}, {5670,3677,2},{5677,3677,2},{5677,3680,2},{5678,3682,2},{5677,3695,2},{5672,3698,2}, {5677,3702,2},{5670,3703,2},{5670,3707,2},{5673,3707,2},{5672,3712,2},{5673,3713,2}, {5675,3715,2},{5675,3713,2},{5678,3708,2},{5682,3707,2},{5680,3702,2},{5683,3700,2}, {5685,3693,2},{5682,3687,2},{5680,3675,2},{5677,3668,2},{5677,3673,2},{5672,3675,2}, {5662,3658,2},{5667,3655,2},{5670,3635,2},{5675,3635,2},{5757,4002,130}, {5758,4012,2},{5767,4018,2},{5772,4032,2},{5775,4037,2},{5777,4057,2},{5780,4060,2}, {5780,4067,2},{5782,4063,2},{5783,4065,2},{5788,4060,2},{5788,4055,2},{5792,4055,2}, {5792,4050,2},{5793,4047,2},{5793,4057,2},{5793,4058,2},{5793,4060,2},{5792,4063,2}, {5793,4067,2},{5797,4062,2},{5797,4063,2},{5798,4063,2},{5800,4072,2},{5800,4073,2}, {5795,4073,2},{5795,4083,2},{5802,4082,2},{5803,4088,2},{5802,4090,2},{5792,4087,2}, {5790,4090,2},{5790,4072,2},{5787,4073,2},{5787,4067,2},{5785,4065,2},{5782,4072,2}, {5782,4083,2},{5778,4092,2},{5767,4105,2},{5768,4115,2},{5762,4110,2},{5757,4113,2}, {5752,4120,2},{5748,4150,2},{5743,4165,2},{5747,4172,2},{5743,4182,2},{5743,4185,2}, {5752,4197,2},{5750,4208,2},{5747,4218,2},{5747,4225,2},{5750,4225,2},{5750,4228,2}, {5748,4230,2},{5742,4257,2},{5740,4250,2},{5743,4247,2},{5743,4242,2},{5745,4230,2}, {5743,4218,2},{5748,4205,2},{5748,4198,2},{5740,4180,2},{5737,4175,2},{5740,4175,2}, {5742,4178,2},{5743,4175,2},{5742,4162,2},{5748,4125,2},{5747,4120,2},{5743,4122,2}, {5745,4118,2},{5748,4118,2},{5748,4110,2},{5755,4103,2},{5752,4113,2},{5758,4107,2}, {5763,4105,2},{5768,4097,2},{5775,4093,2},{5777,4087,2},{5778,4077,2},{5778,4082,2}, {5780,4077,2},{5777,4060,2},{5772,4055,2},{5770,4055,2},{5775,4052,2},{5767,4035,2}, {5768,4032,2},{5763,4020,2},{5757,4017,2},{5548,4908,130},{5563,4902,2}, {5580,4908,2},{5578,4897,2},{5578,4887,2},{5582,4880,2},{5583,4838,2},{5588,4823,2}, {5593,4825,2},{5592,4822,2},{5592,4813,2},{5592,4808,2},{5597,4802,2},{5595,4800,2}, {5602,4793,2},{5615,4793,2},{5615,4788,2},{5617,4763,2},{5615,4753,2},{5618,4727,2}, {5617,4697,2},{5620,4683,2},{5633,4673,2},{5637,4657,2},{5637,4652,2},{5633,4647,2}, {5633,4642,2},{5628,4635,2},{5627,4617,2},{5618,4608,2},{5615,4597,2},{5618,4595,2}, {5622,4588,2},{5622,4583,2},{5620,4580,2},{5617,4577,2},{5615,4562,2},{5617,4557,2}, {5617,4550,2},{5608,4542,2},{5610,4537,2},{5617,4525,2},{5613,4517,2},{5610,4508,2}, {5610,4487,2},{5607,4473,2},{5607,4467,2},{5608,4458,2},{5612,4453,2},{5612,4447,2}, {5618,4438,2},{5620,4433,2},{5618,4423,2},{5628,4420,2},{5635,4410,2},{5635,4398,2}, {5642,4388,2},{5643,4373,2},{5657,4358,2},{5667,4343,2},{5667,4342,2},{5643,4370,2}, {5640,4387,2},{5632,4397,2},{5633,4402,2},{5632,4408,2},{5628,4415,2},{5622,4422,2}, {5618,4420,2},{5617,4423,2},{5617,4437,2},{5610,4445,2},{5610,4452,2},{5607,4458,2}, {5605,4467,2},{5607,4477,2},{5608,4485,2},{5608,4508,2},{5613,4517,2},{5615,4525,2}, {5608,4535,2},{5608,4542,2},{5610,4547,2},{5615,4552,2},{5613,4560,2},{5615,4577,2}, {5618,4582,2},{5620,4585,2},{5618,4592,2},{5613,4595,2},{5613,4597,2},{5618,4612,2}, {5625,4618,2},{5628,4637,2},{5635,4658,2},{5632,4672,2},{5620,4680,2},{5615,4692,2}, {5613,4698,2},{5617,4712,2},{5613,4750,2},{5612,4758,2},{5608,4758,2},{5607,4755,2}, {5603,4758,2},{5613,4763,2},{5612,4785,2},{5610,4790,2},{5602,4792,2},{5593,4797,2}, {5590,4807,2},{5588,4815,2},{5587,4808,2},{5587,4812,2},{5587,4817,2},{5582,4825,2}, {5580,4862,2},{5577,4858,2},{5575,4865,2},{5572,4857,2},{5562,4843,2},{5570,4858,2}, {5572,4868,2},{5570,4872,2},{5573,4872,2},{5575,4870,2},{5577,4873,2},{5577,4882,2}, {5575,4885,2},{5577,4888,2},{5575,4897,2},{5572,4898,2},{5560,4895,2},{5548,4905,2}, {4725,4023,130},{4722,4018,2},{4725,4017,2},{4723,4008,2},{4725,4000,2}, {4722,3995,2},{4720,3972,2},{4718,3957,2},{4713,3953,2},{4712,3938,2},{4710,3938,2}, {4710,3945,2},{4712,3950,2},{4713,3955,2},{4717,3958,2},{4718,3972,2},{4720,3985,2}, {4720,3995,2},{4722,4000,2},{4722,4007,2},{4723,4013,2},{4722,4015,2},{4720,4020,2}, {4702,4740,130},{4700,4748,2},{4695,4758,2},{4687,4755,2},{4683,4757,2}, {4683,4760,2},{4685,4770,2},{4683,4773,2},{4677,4777,2},{4672,4783,2},{4655,4792,2}, {4652,4800,2},{4645,4795,2},{4642,4797,2},{4638,4802,2},{4635,4800,2},{4637,4803,2}, {4643,4798,2},{4648,4803,2},{4653,4803,2},{4658,4793,2},{4672,4788,2},{4675,4783,2}, {4677,4778,2},{4685,4775,2},{4687,4770,2},{4685,4762,2},{4685,4758,2},{4693,4762,2}, {4702,4753,2},{4703,4748,2},{4702,4740,2},{6200,4513,130},{6203,4507,2}, {6210,4510,2},{6220,4500,2},{6223,4483,2},{6230,4475,2},{6232,4470,2},{6235,4460,2}, {6233,4445,2},{6233,4430,2},{6237,4413,2},{6240,4392,2},{6250,4380,2},{6258,4363,2}, {6277,4308,2},{6290,4263,2},{6293,4260,2},{6302,4258,2},{6305,4248,2},{6305,4227,2}, {6310,4203,2},{6323,4200,2},{6330,4205,2},{6345,4183,2},{6357,4188,2},{6360,4175,2}, {6363,4172,2},{6365,4152,2},{6370,4148,2},{6375,4138,2},{6380,4143,2},{6387,4162,2}, {6392,4160,2},{6395,4167,2},{6402,4173,2},{6405,4168,2},{6413,4172,2},{6417,4175,2}, {6417,4187,2},{6427,4183,2},{6430,4175,2},{6430,4158,2},{6433,4145,2},{6435,4118,2}, {6437,4105,2},{6445,4088,2},{6453,4053,2},{6457,4053,2},{6457,4060,2},{6452,4072,2}, {6448,4087,2},{6438,4112,2},{6435,4152,2},{6428,4185,2},{6415,4193,2},{6413,4177,2}, {6407,4175,2},{6402,4178,2},{6390,4163,2},{6385,4163,2},{6378,4145,2},{6375,4143,2}, {6365,4157,2},{6367,4172,2},{6358,4192,2},{6345,4188,2},{6328,4208,2},{6322,4203,2}, {6310,4210,2},{6307,4230,2},{6307,4247,2},{6305,4255,2},{6302,4263,2},{6293,4265,2}, {6290,4268,2},{6282,4305,2},{6260,4363,2},{6248,4388,2},{6240,4395,2},{6238,4417,2}, {6235,4428,2},{6235,4467,2},{6232,4477,2},{6225,4487,2},{6223,4500,2},{6208,4513,2}, {6200,4512,2},{6613,6565,130},{6622,6585,2},{6635,6618,2},{6642,6623,2}, {6650,6638,2},{6662,6645,2},{6665,6652,2},{6665,6667,2},{6657,6707,2},{6658,6718,2}, {6663,6725,2},{6665,6730,2},{6665,6747,2},{6660,6758,2},{6658,6790,2},{6653,6807,2}, {6653,6818,2},{6663,6845,2},{6668,6853,2},{6665,6833,2},{6667,6827,2},{6668,6828,2}, {6672,6842,2},{6675,6842,2},{6675,6857,2},{6677,6853,2},{6677,6863,2},{6680,6873,2}, {6680,6897,2},{6678,6900,2},{6677,6880,2},{6677,6875,2},{6672,6865,2},{6660,6850,2}, {6652,6827,2},{6648,6805,2},{6650,6797,2},{6655,6785,2},{6657,6762,2},{6662,6745,2}, {6663,6733,2},{6653,6717,2},{6652,6708,2},{6662,6667,2},{6662,6653,2},{6660,6650,2}, {6650,6652,2},{6643,6637,2},{6633,6627,2},{6627,6615,2},{6620,6588,2},{6613,6577,2}, {6302,6510,130},{6300,6508,2},{6297,6512,2},{6292,6528,2},{6287,6538,2}, {6280,6540,2},{6277,6545,2},{6268,6565,2},{6258,6575,2},{6248,6595,2},{6248,6608,2}, {6243,6638,2},{6237,6650,2},{6230,6653,2},{6228,6657,2},{6227,6688,2},{6223,6708,2}, {6220,6718,2},{6212,6733,2},{6205,6738,2},{6190,6745,2},{6183,6758,2},{6172,6758,2}, {6167,6765,2},{6165,6772,2},{6165,6783,2},{6158,6810,2},{6150,6823,2},{6145,6837,2}, {6135,6840,2},{6127,6832,2},{6122,6830,2},{6120,6832,2},{6118,6843,2},{6110,6857,2}, {6110,6878,2},{6117,6885,2},{6120,6892,2},{6122,6895,2},{6120,6902,2},{6123,6913,2}, {6120,6925,2},{6123,6928,2},{6125,6938,2},{6128,6942,2},{6130,6950,2},{6127,6960,2}, {6128,6967,2},{6128,6977,2},{6127,6988,2},{6123,6995,2},{6123,7015,2},{6128,7023,2}, {6128,7035,2},{6132,7045,2},{6128,7057,2},{6127,7082,2},{6132,7095,2},{6128,7100,2}, {6127,7117,2},{6120,7122,2},{6120,7125,2},{6125,7143,2},{6123,7157,2},{6128,7170,2}, {6125,7213,2},{6130,7223,2},{6132,7230,2},{6130,7250,2},{6122,7260,2},{6127,7283,2}, {6123,7295,2},{6125,7305,2},{6125,7325,2},{6122,7338,2},{6125,7353,2},{6123,7358,2}, {6118,7367,2},{6125,7382,2},{6120,7390,2},{6118,7408,2},{6120,7420,2},{6123,7430,2}, {6122,7435,2},{6117,7438,2},{6115,7442,2},{6122,7442,2},{6123,7445,2},{6122,7455,2}, {6120,7460,2},{6122,7472,2},{6117,7480,2},{6117,7497,2},{6112,7508,2},{6112,7513,2}, {6117,7520,2},{6112,7530,2},{6112,7548,2},{6107,7552,2},{6100,7565,2},{6102,7572,2}, {6107,7585,2},{6103,7592,2},{6103,7603,2},{6100,7618,2},{6095,7620,2},{6095,7630,2}, {6088,7643,2},{6093,7653,2},{6093,7662,2},{6085,7670,2},{6085,7680,2},{6078,7683,2}, {6078,7690,2},{6073,7702,2},{6073,7717,2},{6065,7735,2},{6065,7740,2},{6070,7750,2}, {6070,7757,2},{6062,7773,2},{6052,7777,2},{6048,7785,2},{6043,7793,2},{6040,7805,2}, {6040,7808,2},{6043,7823,2},{6040,7837,2},{6035,7842,2},{6028,7832,2},{6030,7840,2}, {6030,7847,2},{6025,7852,2},{6022,7850,2},{6022,7858,2},{6015,7873,2},{6013,7892,2}, {6012,7892,2},{6008,7885,2},{6007,7895,2},{6003,7905,2},{6000,7903,2},{5997,7895,2}, {5987,7903,2},{5978,7920,2},{5970,7915,2},{5962,7923,2},{5958,7930,2},{5952,7935,2}, {5952,7942,2},{5953,7947,2},{5953,7952,2},{5945,7967,2},{5940,7968,2},{5943,7975,2}, {5945,7983,2},{5942,7997,2},{5945,8007,2},{5942,8010,2},{5938,8022,2},{5935,8022,2}, {5933,8012,2},{5932,8013,2},{5928,8025,2},{5932,8030,2},{5933,8035,2},{5935,8043,2}, {5933,8052,2},{5927,8057,2},{5923,8053,2},{5923,8060,2},{5917,8062,2},{5917,8072,2}, {5913,8075,2},{5912,8083,2},{5908,8087,2},{5908,8098,2},{5908,8102,2},{5912,8102,2}, {5913,8107,2},{5912,8125,2},{5905,8132,2},{5900,8143,2},{5895,8143,2},{5895,8148,2}, {5893,8153,2},{5890,8153,2},{5887,8152,2},{5883,8162,2},{5882,8165,2},{5877,8165,2}, {5873,8153,2},{5873,8162,2},{5870,8168,2},{5875,8170,2},{5875,8173,2},{5870,8180,2}, {5868,8192,2},{5860,8192,2},{5858,8217,2},{5855,8222,2},{5852,8220,2},{5850,8227,2}, {5845,8232,2},{5842,8247,2},{5838,8243,2},{5835,8245,2},{5838,8257,2},{5833,8263,2}, {5830,8265,2},{5830,8268,2},{5832,8275,2},{5832,8285,2},{5830,8300,2},{5827,8300,2}, {5823,8292,2},{5817,8295,2},{5813,8308,2},{5813,8317,2},{5812,8323,2},{5803,8323,2}, {5792,8335,2},{5785,8332,2},{5783,8340,2},{5773,8348,2},{5770,8368,2},{5773,8375,2}, {5775,8380,2},{5773,8387,2},{5770,8387,2},{5762,8380,2},{5757,8388,2},{5750,8388,2}, {5747,8395,2},{5735,8397,2},{5732,8403,2},{5728,8403,2},{5730,8410,2},{5727,8418,2}, {5727,8428,2},{5725,8437,2},{5722,8440,2},{5715,8437,2},{5715,8445,2},{5712,8448,2}, {5707,8443,2},{5700,8440,2},{5690,8445,2},{5677,8442,2},{5672,8437,2},{5665,8425,2}, {5652,8415,2},{5648,8408,2},{5638,8405,2},{5633,8408,2},{5630,8400,2},{5633,8407,2}, {5640,8402,2},{5652,8407,2},{5653,8412,2},{5668,8423,2},{5673,8435,2},{5680,8440,2}, {5690,8442,2},{5698,8437,2},{5708,8440,2},{5712,8445,2},{5713,8433,2},{5720,8437,2}, {5723,8435,2},{5725,8425,2},{5725,8417,2},{5728,8412,2},{5727,8400,2},{5732,8398,2}, {5733,8392,2},{5745,8393,2},{5750,8383,2},{5755,8385,2},{5760,8377,2},{5772,8383,2}, {5773,8380,2},{5772,8375,2},{5768,8370,2},{5773,8342,2},{5782,8337,2},{5785,8328,2}, {5792,8332,2},{5803,8318,2},{5810,8317,2},{5815,8295,2},{5820,8288,2},{5825,8288,2}, {5827,8295,2},{5830,8295,2},{5830,8273,2},{5827,8267,2},{5830,8262,2},{5833,8260,2}, {5837,8255,2},{5833,8242,2},{5838,8240,2},{5842,8242,2},{5843,8230,2},{5848,8225,2}, {5850,8217,2},{5855,8215,2},{5857,8212,2},{5857,8190,2},{5862,8187,2},{5867,8188,2}, {5867,8178,2},{5873,8173,2},{5872,8170,2},{5867,8168,2},{5872,8148,2},{5875,8148,2}, {5877,8153,2},{5878,8163,2},{5880,8163,2},{5885,8148,2},{5892,8150,2},{5892,8143,2}, {5895,8140,2},{5900,8140,2},{5902,8130,2},{5910,8122,2},{5912,8108,2},{5912,8107,2}, {5907,8105,2},{5907,8102,2},{5907,8085,2},{5908,8082,2},{5910,8080,2},{5912,8072,2}, {5913,8068,2},{5915,8070,2},{5915,8058,2},{5920,8058,2},{5920,8052,2},{5923,8047,2}, {5927,8052,2},{5932,8048,2},{5932,8037,2},{5925,8027,2},{5932,8007,2},{5935,8007,2}, {5937,8015,2},{5942,8005,2},{5940,7997,2},{5943,7980,2},{5942,7975,2},{5938,7970,2}, {5938,7965,2},{5943,7962,2},{5950,7952,2},{5950,7947,2},{5948,7945,2},{5950,7932,2}, {5957,7927,2},{5960,7920,2},{5968,7910,2},{5978,7915,2},{5985,7898,2},{5997,7890,2}, {5998,7890,2},{6003,7898,2},{6005,7885,2},{6008,7880,2},{6012,7887,2},{6012,7873,2}, {6020,7857,2},{6020,7847,2},{6022,7845,2},{6027,7848,2},{6028,7843,2},{6025,7830,2}, {6030,7828,2},{6035,7837,2},{6038,7837,2},{6042,7822,2},{6038,7810,2},{6038,7805,2}, {6043,7788,2},{6047,7783,2},{6048,7773,2},{6057,7768,2},{6060,7768,2},{6067,7755,2}, {6067,7750,2},{6062,7740,2},{6065,7727,2},{6072,7717,2},{6070,7700,2},{6075,7692,2}, {6077,7682,2},{6082,7678,2},{6083,7667,2},{6092,7658,2},{6087,7640,2},{6092,7628,2}, {6093,7618,2},{6093,7615,2},{6097,7615,2},{6098,7612,2},{6102,7600,2},{6100,7592,2}, {6103,7585,2},{6098,7572,2},{6098,7565,2},{6103,7552,2},{6108,7545,2},{6110,7530,2}, {6113,7522,2},{6110,7513,2},{6110,7508,2},{6113,7497,2},{6115,7478,2},{6118,7468,2}, {6117,7460,2},{6120,7447,2},{6118,7445,2},{6115,7447,2},{6113,7443,2},{6115,7435,2}, {6120,7428,2},{6117,7417,2},{6115,7408,2},{6118,7390,2},{6122,7382,2},{6117,7372,2}, {6117,7367,2},{6122,7352,2},{6120,7337,2},{6122,7323,2},{6122,7313,2},{6123,7305,2}, {6122,7295,2},{6123,7282,2},{6120,7263,2},{6122,7255,2},{6127,7247,2},{6130,7230,2}, {6123,7218,2},{6123,7197,2},{6125,7190,2},{6123,7182,2},{6125,7172,2},{6123,7167,2}, {6122,7153,2},{6122,7143,2},{6117,7127,2},{6118,7118,2},{6123,7117,2},{6125,7110,2}, {6128,7093,2},{6125,7083,2},{6125,7050,2},{6128,7045,2},{6127,7037,2},{6125,7025,2}, {6122,7022,2},{6122,7013,2},{6122,6990,2},{6125,6985,2},{6127,6973,2},{6123,6960,2}, {6128,6948,2},{6123,6942,2},{6122,6933,2},{6118,6930,2},{6117,6925,2},{6122,6912,2}, {6118,6895,2},{6112,6890,2},{6110,6897,2},{6107,6898,2},{6102,6900,2},{6100,6905,2}, {6097,6932,2},{6095,6938,2},{6095,6947,2},{6088,6952,2},{6085,6958,2},{6070,6968,2}, {6068,6985,2},{6065,6988,2},{6058,6983,2},{6052,6977,2},{6043,6983,2},{6035,6977,2}, {6035,6985,2},{6023,6990,2},{6022,6987,2},{6022,6982,2},{6020,6982,2},{6012,6970,2}, {6010,6972,2},{6013,6977,2},{6012,6982,2},{6007,6987,2},{6002,6993,2},{5997,6992,2}, {5993,6993,2},{5990,6987,2},{5982,6995,2},{5980,6992,2},{5983,6982,2},{5982,6978,2}, {5977,6978,2},{5973,6977,2},{5975,6957,2},{5965,6947,2},{5963,6932,2},{5955,6932,2}, {5953,6923,2},{5955,6910,2},{5950,6912,2},{5943,6905,2},{5943,6900,2},{5943,6890,2}, {5942,6895,2},{5938,6897,2},{5933,6890,2},{5928,6887,2},{5925,6882,2},{5917,6883,2}, {5918,6890,2},{5917,6893,2},{5917,6895,2},{5913,6893,2},{5910,6885,2},{5902,6892,2}, {5898,6887,2},{5902,6878,2},{5902,6877,2},{5895,6888,2},{5893,6888,2},{5892,6885,2}, {5892,6877,2},{5890,6875,2},{5888,6880,2},{5887,6880,2},{5885,6870,2},{5882,6878,2}, {5877,6877,2},{5873,6868,2},{5877,6860,2},{5863,6857,2},{5862,6863,2},{5857,6860,2}, {5852,6865,2},{5850,6865,2},{5848,6853,2},{5850,6842,2},{5847,6842,2},{5845,6835,2}, {5840,6837,2},{5835,6833,2},{5833,6830,2},{5832,6817,2},{5828,6823,2},{5823,6825,2}, {5817,6822,2},{5815,6827,2},{5817,6822,2},{5818,6820,2},{5827,6822,2},{5832,6813,2}, {5833,6813,2},{5837,6830,2},{5840,6833,2},{5847,6833,2},{5852,6838,2},{5850,6853,2}, {5852,6862,2},{5855,6855,2},{5860,6860,2},{5863,6855,2},{5875,6858,2},{5880,6855,2}, {5880,6863,2},{5875,6870,2},{5880,6875,2},{5882,6875,2},{5883,6867,2},{5885,6867,2}, {5887,6877,2},{5888,6870,2},{5890,6868,2},{5895,6877,2},{5893,6885,2},{5895,6887,2}, {5898,6873,2},{5902,6872,2},{5905,6873,2},{5903,6880,2},{5900,6885,2},{5902,6888,2}, {5910,6882,2},{5917,6890,2},{5915,6882,2},{5917,6880,2},{5923,6882,2},{5927,6878,2}, {5930,6885,2},{5935,6887,2},{5938,6893,2},{5940,6893,2},{5945,6887,2},{5947,6903,2}, {5950,6908,2},{5955,6907,2},{5957,6908,2},{5957,6928,2},{5963,6927,2},{5968,6945,2}, {5977,6955,2},{5975,6975,2},{5985,6977,2},{5983,6992,2},{5992,6982,2},{5995,6990,2}, {6003,6990,2},{6010,6978,2},{6008,6972,2},{6008,6967,2},{6010,6965,2},{6015,6967,2}, {6022,6977,2},{6023,6977,2},{6025,6987,2},{6032,6983,2},{6033,6975,2},{6037,6973,2}, {6038,6973,2},{6043,6978,2},{6053,6973,2},{6065,6983,2},{6067,6972,2},{6068,6963,2}, {6075,6962,2},{6080,6955,2},{6083,6955,2},{6087,6947,2},{6093,6943,2},{6092,6940,2}, {6093,6935,2},{6095,6932,2},{6093,6922,2},{6098,6913,2},{6098,6903,2},{6102,6897,2}, {6107,6895,2},{6108,6893,2},{6107,6882,2},{6107,6853,2},{6113,6843,2},{6117,6830,2}, {6123,6823,2},{6130,6825,2},{6138,6835,2},{6142,6833,2},{6148,6822,2},{6153,6800,2}, {6160,6788,2},{6162,6778,2},{6162,6768,2},{6168,6755,2},{6173,6752,2},{6182,6753,2}, {6190,6740,2},{6205,6732,2},{6215,6720,2},{6218,6712,2},{6223,6690,2},{6223,6673,2}, {6227,6665,2},{6227,6652,2},{6237,6645,2},{6242,6635,2},{6247,6590,2},{6253,6578,2}, {6268,6558,2},{6275,6540,2},{6287,6530,2},{6290,6523,2},{6292,6515,2},{6300,6502,2}, {6302,6503,2},{6308,6492,2},{6313,6490,2},{6320,6500,2},{6332,6497,2},{6338,6505,2}, {6342,6520,2},{6345,6525,2},{6352,6518,2},{6357,6520,2},{6363,6515,2},{6368,6517,2}, {6370,6522,2},{6370,6533,2},{6373,6533,2},{6377,6530,2},{6385,6532,2},{6387,6540,2}, {6392,6552,2},{6403,6560,2},{6413,6555,2},{6417,6555,2},{6422,6545,2},{6428,6550,2}, {6432,6540,2},{6438,6542,2},{6442,6533,2},{6447,6540,2},{6453,6540,2},{6457,6535,2}, {6462,6525,2},{6465,6522,2},{6475,6523,2},{6483,6517,2},{6488,6523,2},{6493,6513,2}, {6495,6505,2},{6498,6497,2},{6505,6498,2},{6508,6488,2},{6522,6482,2},{6527,6473,2}, {6535,6472,2},{6542,6473,2},{6550,6465,2},{6557,6478,2},{6565,6483,2},{6573,6500,2}, {6583,6510,2},{6587,6518,2},{6592,6545,2},{6597,6545,2},{6607,6560,2},{6612,6565,2}, {6612,6567,2},{6608,6580,2},{6605,6587,2},{6585,6582,2},{6570,6565,2},{6558,6558,2}, {6542,6557,2},{6535,6542,2},{6530,6537,2},{6525,6527,2},{6508,6520,2},{6502,6530,2}, {6500,6545,2},{6502,6558,2},{6502,6563,2},{6497,6563,2},{6490,6547,2},{6482,6552,2}, {6473,6545,2},{6470,6550,2},{6463,6573,2},{6462,6572,2},{6460,6562,2},{6458,6558,2}, {6448,6573,2},{6445,6582,2},{6437,6585,2},{6433,6592,2},{6425,6582,2},{6422,6597,2}, {6413,6602,2},{6413,6588,2},{6412,6583,2},{6408,6585,2},{6408,6580,2},{6407,6577,2}, {6398,6578,2},{6395,6575,2},{6392,6580,2},{6387,6573,2},{6378,6585,2},{6378,6568,2}, {6377,6565,2},{6370,6573,2},{6363,6570,2},{6355,6575,2},{6352,6568,2},{6352,6560,2}, {6348,6555,2},{6347,6542,2},{6342,6550,2},{6335,6548,2},{6332,6540,2},{6327,6522,2}, {6320,6517,2},{6308,6515,2},{6303,6505,2},{6302,6503,130},{6308,6492,2}, {6313,6490,2},{6320,6500,2},{6332,6497,2},{6338,6505,2},{6342,6520,2},{6345,6525,2}, {6352,6518,2},{6357,6520,2},{6363,6515,2},{6368,6517,2},{6370,6522,2},{6370,6533,2}, {6373,6533,2},{6377,6530,2},{6385,6532,2},{6387,6540,2},{6392,6552,2},{6403,6560,2}, {6413,6555,2},{6417,6555,2},{6422,6545,2},{6428,6550,2},{6432,6540,2},{6438,6542,2}, {6442,6533,2},{6447,6540,2},{6453,6540,2},{6457,6535,2},{6462,6525,2},{6465,6522,2}, {6475,6523,2},{6483,6517,2},{6488,6523,2},{6493,6513,2},{6495,6505,2},{6498,6497,2}, {6505,6498,2},{6508,6488,2},{6522,6482,2},{6527,6473,2},{6535,6472,2},{6542,6473,2}, {6550,6465,2},{6557,6478,2},{6565,6483,2},{6573,6500,2},{6583,6510,2},{6587,6518,2}, {6592,6545,2},{6597,6545,2},{6607,6560,2},{6612,6565,2},{6612,6567,2},{6608,6580,2}, {6605,6587,2},{6585,6582,2},{6570,6565,2},{6558,6558,2},{6542,6557,2},{6535,6542,2}, {6530,6537,2},{6525,6527,2},{6508,6520,2},{6502,6530,2},{6500,6545,2},{6502,6558,2}, {6502,6563,2},{6497,6563,2},{6490,6547,2},{6482,6552,2},{6473,6545,2},{6470,6550,2}, {6463,6573,2},{6462,6572,2},{6460,6562,2},{6458,6558,2},{6448,6573,2},{6445,6582,2}, {6437,6585,2},{6433,6592,2},{6425,6582,2},{6422,6597,2},{6413,6602,2},{6413,6588,2}, {6412,6583,2},{6408,6585,2},{6408,6580,2},{6407,6577,2},{6398,6578,2},{6395,6575,2}, {6392,6580,2},{6387,6573,2},{6378,6585,2},{6378,6568,2},{6377,6565,2},{6370,6573,2}, {6363,6570,2},{6355,6575,2},{6352,6568,2},{6352,6560,2},{6348,6555,2},{6347,6542,2}, {6342,6550,2},{6335,6548,2},{6332,6540,2},{6327,6522,2},{6320,6517,2},{6308,6515,2}, {6303,6505,2},{6438,9208,130},{6440,9200,2},{6442,9185,2},{6445,9173,2}, {6447,9140,2},{6448,9127,2},{6455,9105,2},{6458,9092,2},{6470,9080,2},{6473,9073,2}, {6477,9058,2},{6477,9040,2},{6487,9027,2},{6497,9025,2},{6503,9017,2},{6507,9013,2}, {6508,9002,2},{6512,8997,2},{6517,8998,2},{6528,8993,2},{6543,8993,2},{6553,8998,2}, {6562,8998,2},{6568,8983,2},{6568,8973,2},{6573,8965,2},{6575,8948,2},{6578,8938,2}, {6587,8925,2},{6590,8912,2},{6593,8903,2},{6595,8888,2},{6592,8858,2},{6587,8845,2}, {6580,8837,2},{6583,8822,2},{6580,8815,2},{6578,8802,2},{6577,8807,2},{6567,8810,2}, {6555,8807,2},{6542,8800,2},{6530,8800,2},{6522,8792,2},{6513,8795,2},{6497,8783,2}, {6480,8783,2},{6472,8777,2},{6467,8763,2},{6443,8757,2},{6437,8762,2},{6430,8762,2}, {6408,8755,2},{6398,8765,2},{6393,8763,2},{6383,8753,2},{6370,8737,2},{6368,8735,2}, {6362,8742,2},{6348,8737,2},{6340,8727,2},{6337,8727,2},{6328,8763,2},{6320,8788,2}, {6308,8812,2},{6293,8820,2},{6287,8843,2},{6280,8850,2},{6275,8848,2},{6262,8862,2}, {6250,8880,2},{6245,8902,2},{6240,8905,2},{6237,8902,2},{6228,8900,2},{6242,8900,2}, {6248,8880,2},{6262,8857,2},{6273,8843,2},{6278,8847,2},{6283,8843,2},{6292,8818,2}, {6308,8803,2},{6317,8785,2},{6322,8768,2},{6327,8753,2},{6333,8730,2},{6337,8722,2}, {6342,8722,2},{6350,8733,2},{6358,8735,2},{6372,8732,2},{6395,8760,2},{6398,8760,2}, {6408,8750,2},{6437,8757,2},{6450,8747,2},{6463,8750,2},{6470,8760,2},{6473,8768,2}, {6485,8777,2},{6497,8777,2},{6508,8787,2},{6520,8785,2},{6533,8793,2},{6548,8793,2}, {6560,8802,2},{6570,8802,2},{6575,8797,2},{6577,8777,2},{6593,8768,2},{6595,8773,2}, {6597,8790,2},{6602,8792,2},{6607,8788,2},{6612,8730,2},{6617,8722,2},{6622,8718,2}, {6627,8720,2},{6632,8745,2},{6635,8748,2},{6637,8748,2},{6640,8728,2},{6658,8687,2}, {6660,8673,2},{6658,8665,2},{6653,8642,2},{6655,8625,2},{6658,8622,2},{6672,8635,2}, {6675,8660,2},{6678,8668,2},{6682,8670,2},{6695,8660,2},{6710,8662,2},{6723,8648,2}, {6733,8653,2},{6740,8652,2},{6742,8650,2},{6742,8642,2},{6743,8637,2},{6753,8630,2}, {6760,8620,2},{6780,8633,2},{6787,8650,2},{6788,8652,2},{6792,8652,2},{6795,8640,2}, {6803,8628,2},{6812,8637,2},{6822,8655,2},{6825,8657,2},{6830,8652,2},{6832,8642,2}, {6835,8635,2},{6842,8628,2},{6847,8625,2},{6855,8630,2},{6870,8620,2},{6873,8607,2}, {6883,8585,2},{6888,8582,2},{6893,8582,2},{6903,8602,2},{6910,8607,2},{6915,8603,2}, {6922,8575,2},{6928,8572,2},{6933,8578,2},{6940,8602,2},{6945,8605,2},{6960,8572,2}, {6965,8543,2},{6973,8532,2},{6977,8513,2},{6975,8495,2},{6968,8472,2},{6957,8442,2}, {6957,8422,2},{6960,8413,2},{6970,8403,2},{6973,8393,2},{6973,8358,2},{6975,8348,2}, {6987,8332,2},{6985,8338,2},{6988,8343,2},{7002,8333,2},{7005,8322,2},{7007,8308,2}, {7008,8318,2},{7007,8342,2},{7002,8350,2},{6997,8355,2},{6993,8365,2},{6987,8372,2}, {6983,8390,2},{6978,8392,2},{6972,8412,2},{6970,8437,2},{6965,8445,2},{6978,8480,2}, {6982,8532,2},{6980,8547,2},{6973,8568,2},{6962,8580,2},{6953,8595,2},{6945,8620,2}, {6938,8615,2},{6933,8603,2},{6928,8602,2},{6923,8593,2},{6915,8612,2},{6912,8615,2}, {6905,8613,2},{6887,8598,2},{6878,8607,2},{6870,8627,2},{6865,8635,2},{6857,8640,2}, {6843,8637,2},{6837,8643,2},{6832,8658,2},{6825,8663,2},{6817,8655,2},{6810,8645,2}, {6807,8643,2},{6795,8652,2},{6787,8663,2},{6783,8657,2},{6778,8642,2},{6768,8632,2}, {6760,8628,2},{6752,8640,2},{6747,8640,2},{6748,8660,2},{6747,8667,2},{6743,8668,2}, {6740,8667,2},{6728,8672,2},{6720,8667,2},{6715,8675,2},{6710,8677,2},{6703,8673,2}, {6698,8677,2},{6690,8672,2},{6678,8678,2},{6673,8675,2},{6662,8633,2},{6658,8633,2}, {6657,8642,2},{6658,8650,2},{6663,8667,2},{6663,8682,2},{6660,8697,2},{6657,8702,2}, {6650,8718,2},{6648,8723,2},{6643,8728,2},{6638,8753,2},{6635,8757,2},{6628,8757,2}, {6625,8752,2},{6620,8733,2},{6617,8732,2},{6613,8740,2},{6612,8757,2},{6612,8787,2}, {6608,8798,2},{6598,8800,2},{6585,8783,2},{6580,8788,2},{6580,8802,2},{6585,8815,2}, {6583,8825,2},{6582,8832,2},{6593,8848,2},{6595,8857,2},{6597,8887,2},{6597,8903,2}, {6592,8917,2},{6590,8925,2},{6580,8943,2},{6577,8965,2},{6567,8998,2},{6560,9005,2}, {6545,8998,2},{6528,9000,2},{6522,9005,2},{6512,9002,2},{6505,9022,2},{6495,9032,2}, {6490,9032,2},{6480,9045,2},{6478,9058,2},{6473,9082,2},{6458,9095,2},{6455,9117,2}, {6450,9128,2},{6447,9138,2},{6448,9152,2},{6447,9173,2},{6443,9183,2},{6442,9197,2}, {6438,9207,2},{4338,4002,131},{4340,3992,3},{4350,3987,3},{4357,3972,3}, {4362,3968,3},{4365,3962,3},{4392,3930,3},{4403,3910,3},{4415,3897,3},{4417,3887,3}, {4427,3875,3},{4433,3860,3},{4435,3833,3},{4438,3828,3},{4438,3820,3},{4442,3815,3}, {4448,3812,3},{4452,3805,3},{4455,3807,3},{4457,3803,3},{4455,3800,3},{4460,3793,3}, {4463,3793,3},{4467,3788,3},{4470,3787,3},{4473,3778,3},{4467,3782,3},{4463,3782,3}, {4463,3775,3},{4467,3763,3},{4465,3757,3},{4467,3748,3},{4472,3743,3},{4473,3738,3}, {4485,3732,3},{4487,3730,3},{4490,3732,3},{4498,3720,3},{4510,3685,3},{4510,3670,3}, {4513,3662,3},{4518,3658,3},{4520,3658,3},{4520,3670,3},{4522,3675,3},{4523,3677,3}, {4523,3683,3},{4527,3697,3},{4532,3697,3},{4530,3678,3},{4533,3677,3},{4535,3675,3}, {4535,3677,3},{4535,3678,3},{4532,3680,3},{4533,3682,3},{4537,3685,3},{4537,3682,3}, {4538,3677,3},{4533,3670,3},{4533,3667,3},{4542,3675,3},{4543,3683,3},{4533,3713,3}, {4530,3710,3},{4527,3712,3},{4527,3707,3},{4525,3707,3},{4523,3708,3},{4523,3712,3}, {4525,3723,3},{4527,3725,3},{4528,3732,3},{4530,3717,3},{4532,3715,3},{4533,3717,3}, {4533,3737,3},{4530,3738,3},{4537,3752,3},{4533,3750,3},{4535,3755,3},{4533,3760,3}, {4530,3760,3},{4530,3757,3},{4530,3762,3},{4533,3763,3},{4530,3765,3},{4532,3767,3}, {4530,3773,3},{4533,3770,3},{4537,3773,3},{4540,3777,3},{4538,3772,3},{4542,3773,3}, {4545,3770,3},{4545,3775,3},{4548,3768,3},{4557,3770,3},{4558,3765,3},{4560,3763,3}, {4557,3762,3},{4555,3767,3},{4555,3763,3},{4552,3765,3},{4550,3763,3},{4545,3765,3}, {4543,3763,3},{4542,3762,3},{4543,3758,3},{4563,3758,3},{4567,3762,3},{4565,3763,3}, {4563,3762,3},{4562,3770,3},{4567,3767,3},{4573,3780,3},{4577,3783,3},{4583,3788,3}, {4598,3792,3},{4603,3793,3},{4605,3802,3},{4607,3807,3},{4605,3810,3},{4602,3803,3}, {4603,3807,3},{4597,3803,3},{4595,3807,3},{4593,3808,3},{4590,3807,3},{4583,3800,3}, {4582,3805,3},{4585,3805,3},{4588,3808,3},{4603,3813,3},{4605,3817,3},{4612,3817,3}, {4613,3823,3},{4603,3843,3},{4602,3847,3},{4603,3857,3},{4610,3857,3},{4622,3830,3}, {4627,3827,3},{4635,3817,3},{4640,3808,3},{4640,3800,3},{4638,3797,3},{4637,3802,3}, {4635,3800,3},{4640,3790,3},{4648,3782,3},{4667,3773,3},{4662,3785,3},{4662,3802,3}, {4668,3812,3},{4668,3820,3},{4673,3827,3},{4668,3830,3},{4665,3838,3},{4663,3847,3}, {4665,3858,3},{4668,3860,3},{4670,3857,3},{4673,3850,3},{4675,3842,3},{4673,3838,3}, {4672,3838,3},{4675,3837,3},{4677,3840,3},{4683,3842,3},{4687,3848,3},{4683,3855,3}, {4688,3878,3},{4695,3887,3},{4695,3893,3},{4700,3903,3},{4703,3908,3},{4700,3910,3}, {4702,3917,3},{4700,3927,3},{4708,3930,3},{4712,3938,3},{4713,3933,3},{4708,3927,3}, {4713,3927,3},{4715,3925,3},{4718,3925,3},{4720,3928,3},{4725,3927,3},{4728,3908,3}, {4725,3903,3},{4725,3895,3},{4722,3893,3},{4718,3893,3},{4718,3888,3},{4717,3885,3}, {4715,3875,3},{4713,3862,3},{4713,3855,3},{4712,3855,3},{4713,3848,3},{4722,3855,3}, {4725,3878,3},{4728,3882,3},{4725,3878,3},{4723,3857,3},{4717,3847,3},{4713,3845,3}, {4713,3830,3},{4712,3823,3},{4713,3823,3},{4718,3823,3},{4723,3827,3},{4725,3833,3}, {4730,3832,3},{4730,3823,3},{4732,3823,3},{4737,3827,3},{4738,3830,3},{4742,3832,3}, {4747,3830,3},{4753,3830,3},{4757,3833,3},{4762,3838,3},{4762,3847,3},{4763,3845,3}, {4763,3853,3},{4765,3863,3},{4770,3868,3},{4768,3877,3},{4770,3878,3},{4775,3878,3}, {4782,3880,3},{4782,3883,3},{4787,3883,3},{4787,3887,3},{4787,3895,3},{4787,3903,3}, {4783,3912,3},{4785,3920,3},{4787,3928,3},{4788,3937,3},{4785,3943,3},{4787,3947,3}, {4783,3953,3},{4783,3957,3},{4783,3965,3},{4783,3975,3},{4788,3978,3},{4793,3980,3}, {4800,3982,3},{4805,3982,3},{4808,3988,3},{4813,3990,3},{4818,3995,3},{4822,3995,3}, {4823,4002,3},{4827,4002,3},{4832,3998,3},{4830,3993,3},{4832,3985,3},{4835,3992,3}, {4838,3992,3},{4843,3990,3},{4847,3985,3},{4850,3985,3},{4852,3987,3},{4858,3983,3}, {4858,3977,3},{4860,3968,3},{4863,3968,3},{4868,3972,3},{4873,3972,3},{4878,3977,3}, {4883,3980,3},{4890,3983,3},{4893,3978,3},{4900,3972,3},{4905,3967,3},{4907,3970,3}, {4905,3978,3},{4907,3987,3},{4907,3993,3},{4908,3995,3},{4912,3998,3},{4918,4003,3}, {4918,4008,3},{4923,4013,3},{4925,4020,3},{4932,4018,3},{4940,4017,3},{4945,4017,3}, {4950,4022,3},{4957,4022,3},{4962,4015,3},{4962,4005,3},{4960,3997,3},{4957,3990,3}, {4957,3980,3},{4962,3968,3},{4967,3963,3},{4973,3962,3},{4975,3958,3},{4977,3947,3}, {4975,3935,3},{4977,3927,3},{4985,3922,3},{4988,3917,3},{4983,3910,3},{4982,3903,3}, {4982,3895,3},{4987,3893,3},{4987,3885,3},{4990,3878,3},{4993,3870,3},{4998,3870,3}, {4998,3868,3},{4997,3865,3},{4998,3862,3},{4997,3853,3},{5000,3847,3},{5000,3837,3}, {5003,3837,3},{5008,3833,3},{5008,3830,3},{5008,3828,3},{5007,3820,3},{5005,3820,3}, {4997,3822,3},{4993,3815,3},{4993,3812,3},{4992,3805,3},{4995,3802,3},{4997,3802,3}, {5000,3795,3},{5005,3792,3},{5005,3787,3},{5008,3780,3},{5013,3772,3},{5018,3765,3}, {5025,3763,3},{5030,3763,3},{5030,3762,3},{5033,3753,3},{5038,3747,3},{5043,3747,3}, {5043,3743,3},{5043,3735,3},{5038,3728,3},{5035,3717,3},{5035,3710,3},{5035,3700,3}, {5035,3693,3},{5032,3680,3},{5027,3668,3},{5023,3662,3},{5028,3657,3},{5030,3660,3}, {5030,3652,3},{5033,3643,3},{5030,3632,3},{5035,3630,3},{5037,3627,3},{5042,3622,3}, {5043,3618,3},{5045,3607,3},{5045,3598,3},{5043,3582,3},{5040,3580,3},{5037,3570,3}, {5038,3562,3},{5045,3560,3},{5048,3553,3},{5052,3547,3},{5060,3542,3},{5060,3543,3}, {5065,3542,3},{5067,3550,3},{5072,3548,3},{5078,3548,3},{5082,3542,3},{5088,3538,3}, {5093,3540,3},{5095,3535,3},{5102,3533,3},{5103,3542,3},{5107,3542,3},{5107,3530,3}, {5105,3528,3},{5105,3522,3},{5110,3518,3},{5115,3513,3},{5122,3513,3},{5122,3505,3}, {5123,3497,3},{5120,3490,3},{5118,3482,3},{5118,3475,3},{5120,3468,3},{5125,3465,3}, {5125,3463,3},{5125,3455,3},{5123,3445,3},{5127,3438,3},{5125,3430,3},{5125,3427,3}, {5132,3432,3},{5138,3432,3},{5137,3428,3},{5140,3422,3},{5145,3427,3},{5152,3430,3}, {5157,3427,3},{5160,3420,3},{5163,3413,3},{5168,3413,3},{5170,3425,3},{5172,3433,3}, {5173,3445,3},{5177,3445,3},{5183,3443,3},{5185,3438,3},{5185,3427,3},{5192,3425,3}, {5192,3422,3},{5197,3413,3},{5202,3410,3},{5208,3408,3},{5208,3412,3},{5213,3413,3}, {5215,3408,3},{5218,3407,3},{5222,3400,3},{5225,3393,3},{5230,3392,3},{5230,3387,3}, {5237,3382,3},{5235,3370,3},{5233,3362,3},{5230,3355,3},{5235,3352,3},{5235,3350,3}, {5235,3345,3},{5237,3338,3},{5235,3330,3},{5238,3320,3},{5233,3313,3},{5230,3305,3}, {5227,3298,3},{5225,3290,3},{5228,3283,3},{5225,3280,3},{5225,3270,3},{5227,3268,3}, {5232,3258,3},{5232,3247,3},{5233,3237,3},{5230,3237,3},{5225,3238,3},{5218,3235,3}, {5213,3237,3},{5210,3230,3},{5208,3223,3},{5205,3213,3},{5205,3205,3},{5203,3197,3}, {5203,3195,3},{5208,3193,3},{5210,3190,3},{5210,3180,3},{5212,3180,3},{5218,3178,3}, {5220,3172,3},{5222,3172,3},{5227,3170,3},{5227,3168,3},{5230,3162,3},{5237,3163,3}, {5242,3162,3},{5247,3162,3},{5252,3160,3},{5253,3163,3},{5253,3167,3},{5257,3167,3}, {5258,3158,3},{5263,3157,3},{5270,3153,3},{5273,3162,3},{5280,3158,3},{5285,3155,3}, {5287,3147,3},{5295,3138,3},{5300,3132,3},{5303,3125,3},{5303,3130,3},{5303,3132,3}, {5308,3135,3},{5310,3138,3},{5315,3138,3},{5320,3143,3},{5320,3147,3},{5320,3150,3}, {5318,3158,3},{5322,3163,3},{5322,3168,3},{5317,3178,3},{5312,3185,3},{5312,3190,3}, {5308,3197,3},{5308,3207,3},{5308,3215,3},{5310,3218,3},{5310,3223,3},{5313,3230,3}, {5318,3237,3},{5318,3242,3},{5323,3248,3},{5328,3253,3},{5330,3257,3},{5333,3265,3}, {5333,3273,3},{5335,3273,3},{5340,3277,3},{5347,3277,3},{5347,3265,3},{5350,3263,3}, {5348,3260,3},{5352,3260,3},{5355,3252,3},{5358,3245,3},{5365,3245,3},{5365,3242,3}, {5368,3250,3},{5373,3247,3},{5373,3237,3},{5377,3230,3},{5378,3222,3},{5380,3215,3}, {5380,3205,3},{5380,3197,3},{5378,3187,3},{5380,3180,3},{5380,3177,3},{5382,3178,3}, {5383,3178,3},{5388,3182,3},{5393,3185,3},{5398,3187,3},{5403,3190,3},{5407,3182,3}, {5412,3178,3},{5412,3168,3},{5413,3167,3},{5413,3157,3},{5417,3150,3},{5420,3148,3}, {5423,3140,3},{5425,3132,3},{5432,3132,3},{5437,3130,3},{5442,3128,3},{5447,3123,3}, {5448,3120,3},{5450,3110,3},{5455,3113,3},{5458,3118,3},{5467,3120,3},{5467,3118,3}, {5467,3108,3},{5468,3100,3},{5470,3102,3},{5473,3093,3},{5478,3085,3},{5480,3077,3}, {5483,3077,3},{5488,3083,3},{5495,3087,3},{5497,3095,3},{5500,3097,3},{5503,3093,3}, {5503,3102,3},{5510,3100,3},{5515,3102,3},{5517,3098,3},{5518,3098,3},{5520,3095,3}, {5525,3092,3},{5528,3085,3},{5533,3083,3},{5535,3088,3},{5540,3093,3},{5545,3090,3}, {5550,3095,3},{5557,3097,3},{5562,3093,3},{5563,3085,3},{5560,3077,3},{5565,3072,3}, {5565,3068,3},{5570,3065,3},{5573,3062,3},{5577,3052,3},{5582,3047,3},{5582,3037,3}, {5585,3028,3},{5587,3020,3},{5583,3010,3},{5585,3000,3},{5585,2990,3},{5582,2983,3}, {5578,2978,3},{5578,2977,3},{5580,2975,3},{5580,2972,3},{5578,2962,3},{5572,2957,3}, {5570,2948,3},{5573,2945,3},{5575,2937,3},{5578,2937,3},{5583,2940,3},{5588,2942,3}, {5593,2947,3},{5597,2938,3},{5598,2927,3},{5602,2917,3},{5605,2910,3},{5603,2900,3}, {5600,2892,3},{5595,2885,3},{5597,2880,3},{5598,2872,3},{5603,2870,3},{5610,2867,3}, {5612,2855,3},{5608,2845,3},{5605,2837,3},{5605,2832,3},{5608,2828,3},{5613,2823,3}, {5617,2815,3},{5617,2818,3},{5623,2820,3},{5632,2822,3},{5638,2817,3},{5640,2818,3}, {5647,2815,3},{5652,2810,3},{5658,2813,3},{5662,2803,3},{5667,2802,3},{5672,2797,3}, {5677,2793,3},{5682,2798,3},{5683,2795,3},{5683,2792,3},{5687,2785,3},{5687,2777,3}, {5685,2767,3},{5687,2768,3},{5692,2768,3},{5692,2772,3},{5698,2773,3},{5703,2773,3}, {5708,2775,3},{5710,2772,3},{5712,2775,3},{5717,2782,3},{5722,2785,3},{5727,2787,3}, {5732,2783,3},{5735,2777,3},{5738,2768,3},{5742,2762,3},{5743,2752,3},{5747,2752,3}, {5748,2755,3},{5753,2753,3},{5753,2742,3},{5755,2732,3},{5760,2737,3},{5765,2738,3}, {5770,2742,3},{5772,2753,3},{5775,2753,3},{5780,2750,3},{5782,2755,3},{5783,2765,3}, {5783,2775,3},{5787,2783,3},{5792,2780,3},{5792,2775,3},{5795,2768,3},{5800,2770,3}, {5800,2765,3},{5802,2767,3},{5803,2765,3},{5803,2773,3},{5802,2778,3},{5798,2780,3}, {5795,2790,3},{5793,2790,3},{5792,2785,3},{5790,2792,3},{5785,2795,3},{5787,2808,3}, {5785,2813,3},{5792,2818,3},{5797,2813,3},{5800,2815,3},{5807,2805,3},{5812,2803,3}, {5815,2797,3},{5817,2795,3},{5817,2785,3},{5818,2780,3},{5817,2775,3},{5815,2765,3}, {5813,2762,3},{5817,2760,3},{5817,2758,3},{5818,2760,3},{5823,2758,3},{5823,2752,3}, {5832,2753,3},{5830,2765,3},{5835,2763,3},{5847,2778,3},{5843,2777,3},{5843,2780,3}, {5848,2785,3},{5857,2783,3},{5867,2777,3},{5885,2780,3},{5890,2772,3},{5895,2772,3}, {5898,2773,3},{5903,2777,3},{5910,2778,3},{5915,2783,3},{5918,2788,3},{5923,2790,3}, {5927,2797,3},{5928,2807,3},{5932,2818,3},{5933,2818,3},{5940,2822,3},{5943,2813,3}, {5947,2805,3},{5955,2807,3},{5960,2807,3},{5970,2800,3},{5977,2802,3},{5980,2808,3}, {5975,2818,3},{5968,2822,3},{5967,2837,3},{5970,2842,3},{5982,2843,3},{5985,2850,3}, {5987,2853,3},{5983,2858,3},{5982,2867,3},{5978,2870,3},{5978,2873,3},{5980,2878,3}, {5978,2883,3},{5982,2888,3},{5983,2898,3},{5990,2903,3},{5993,2898,3},{5993,2903,3}, {5997,2905,3},{5998,2910,3},{6000,2920,3},{5993,2977,3},{5987,3003,3},{5987,3015,3}, {5988,3022,3},{5995,3020,3},{5997,3025,3},{5998,3022,3},{6002,2995,3},{6008,2990,3}, {6013,2988,3},{6018,2977,3},{6020,2955,3},{6017,2942,3},{6017,2917,3},{6018,2902,3}, {6025,2897,3},{6032,2883,3},{6037,2882,3},{6033,2878,3},{6038,2860,3},{6043,2858,3}, {6057,2843,3},{6055,2850,3},{6052,2853,3},{6045,2868,3},{6047,2872,3},{6057,2867,3}, {6058,2865,3},{6060,2862,3},{6057,2860,3},{6060,2855,3},{6063,2858,3},{6062,2863,3}, {6062,2868,3},{6067,2865,3},{6067,2873,3},{6072,2873,3},{6073,2867,3},{6068,2858,3}, {6067,2840,3},{6062,2838,3},{6062,2832,3},{6060,2833,3},{6060,2828,3},{6057,2823,3}, {6053,2822,3},{6055,2815,3},{6053,2815,3},{6053,2807,3},{6052,2805,3},{6053,2792,3}, {6052,2790,3},{6057,2785,3},{6072,2810,3},{6077,2815,3},{6080,2827,3},{6087,2835,3}, {6095,2852,3},{6097,2863,3},{6103,2870,3},{6110,2882,3},{6125,2922,3},{6137,2937,3}, {6143,2948,3},{6148,2953,3},{6152,2965,3},{6160,2982,3},{6165,2983,3},{6173,2998,3}, {6198,3033,3},{6217,3063,3},{6220,3065,3},{6230,3093,3},{6237,3098,3},{6245,3115,3}, {6247,3117,3},{6250,3127,3},{6262,3132,3},{6265,3138,3},{6280,3147,3},{6292,3158,3}, {6293,3153,3},{6298,3152,3},{6312,3128,3},{6322,3122,3},{6332,3097,3},{6335,3092,3}, {6340,3078,3},{6348,3048,3},{6355,3040,3},{6360,3025,3},{6373,3000,3},{6375,3002,3}, {6382,3027,3},{6392,3035,3},{6402,3055,3},{6408,3062,3},{6418,3055,3},{6422,3058,3}, {6425,3057,3},{6425,3045,3},{6432,3038,3},{6435,3015,3},{6440,3005,3},{6447,3008,3}, {6452,3005,3},{6458,3007,3},{6463,3018,3},{6467,3022,3},{6473,3012,3},{6477,3013,3}, {6480,3005,3},{6480,2980,3},{6492,2965,3},{6500,2960,3},{6507,2963,3},{6512,2987,3}, {6515,2982,3},{6518,2987,3},{6522,2985,3},{6522,2963,3},{6525,2960,3},{6535,2975,3}, {6552,2975,3},{6557,2987,3},{6563,2972,3},{6568,3002,3},{6567,3012,3},{6572,3013,3}, {6583,3010,3},{6598,2998,3},{6613,2992,3},{6632,2963,3},{6650,2955,3},{6658,2943,3}, {6670,2933,3},{6683,2910,3},{6692,2908,3},{6702,2913,3},{6730,2953,3},{6752,2993,3}, {6757,2998,3},{6767,2998,3},{6770,3003,3},{6782,2970,3},{6808,2935,3},{6820,2870,3}, {6853,2845,3},{6873,2875,3},{6885,2882,3},{6888,2873,3},{6887,2848,3},{6890,2843,3}, {6892,2845,3},{6903,2885,3},{6905,2895,3},{6903,2900,3},{6903,2912,3},{6912,2925,3}, {6925,2932,3},{6932,2932,3},{6938,2968,3},{6943,2982,3},{6943,2995,3},{6950,3010,3}, {6955,3013,3},{6958,3018,3},{6963,3015,3},{6963,3007,3},{6965,3007,3},{6967,3015,3}, {6963,3030,3},{6955,3052,3},{6953,3080,3},{6955,3092,3},{6958,3095,3},{6968,3095,3}, {6970,3090,3},{6978,3080,3},{6980,3088,3},{6975,3127,3},{6972,3140,3},{6968,3140,3}, {6962,3130,3},{6968,3143,3},{6970,3145,3},{6968,3153,3},{6970,3153,3},{6968,3180,3}, {6970,3180,3},{6973,3168,3},{6980,3172,3},{6983,3173,3},{6985,3182,3},{6980,3202,3}, {6977,3205,3},{6978,3207,3},{6978,3210,3},{6990,3198,3},{6992,3192,3},{6997,3193,3}, {6995,3208,3},{6988,3225,3},{6988,3235,3},{6985,3250,3},{6980,3250,3},{6978,3258,3}, {6978,3265,3},{6980,3270,3},{6975,3310,3},{6973,3313,3},{6965,3312,3},{6962,3305,3}, {6958,3287,3},{6963,3248,3},{6965,3243,3},{6963,3237,3},{6965,3217,3},{6972,3218,3}, {6975,3212,3},{6967,3210,3},{6965,3197,3},{6963,3207,3},{6957,3202,3},{6960,3213,3}, {6957,3228,3},{6958,3238,3},{6957,3243,3},{6953,3240,3},{6950,3250,3},{6950,3242,3}, {6943,3228,3},{6943,3218,3},{6943,3228,3},{6947,3242,3},{6948,3245,3},{6948,3253,3}, {6950,3255,3},{6948,3258,3},{6948,3262,3},{6950,3267,3},{6948,3287,3},{6947,3290,3}, {6945,3280,3},{6942,3278,3},{6947,3290,3},{6947,3308,3},{6935,3283,3},{6930,3282,3}, {6932,3287,3},{6930,3290,3},{6938,3297,3},{6940,3308,3},{6945,3332,3},{6943,3335,3}, {6945,3345,3},{6942,3352,3},{6940,3350,3},{6937,3342,3},{6937,3350,3},{6935,3348,3}, {6930,3337,3},{6930,3328,3},{6927,3323,3},{6927,3325,3},{6928,3340,3},{6927,3347,3}, {6925,3343,3},{6923,3330,3},{6923,3340,3},{6922,3340,3},{6920,3342,3},{6922,3353,3}, {6918,3352,3},{6915,3340,3},{6910,3327,3},{6908,3312,3},{6907,3303,3},{6895,3302,3}, {6905,3307,3},{6910,3343,3},{6913,3345,3},{6915,3350,3},{6920,3357,3},{6932,3358,3}, {6933,3372,3},{6932,3375,3},{6930,3372,3},{6932,3378,3},{6930,3387,3},{6933,3385,3}, {6933,3395,3},{6932,3408,3},{6932,3435,3},{6930,3442,3},{6928,3442,3},{6927,3460,3}, {6925,3467,3},{6923,3498,3},{6918,3497,3},{6922,3503,3},{6922,3510,3},{6918,3518,3}, {6922,3527,3},{6927,3515,3},{6927,3533,3},{6917,3598,3},{6912,3607,3},{6913,3608,3}, {6910,3625,3},{6907,3627,3},{6905,3633,3},{6902,3660,3},{6895,3675,3},{6883,3723,3}, {6880,3723,3},{6878,3737,3},{6873,3745,3},{6873,3758,3},{6865,3782,3},{6855,3803,3}, {6850,3807,3},{6848,3820,3},{6847,3822,3},{6843,3833,3},{6840,3840,3},{6833,3840,3}, {6835,3845,3},{6828,3877,3},{6837,3850,3},{6837,3852,3},{6835,3860,3},{6838,3860,3}, {6838,3862,3},{6832,3878,3},{6830,3893,3},{6828,3895,3},{6827,3893,3},{6813,3937,3}, {6807,3952,3},{6803,3985,3},{6812,3978,3},{6817,3970,3},{6817,3973,3},{6817,3978,3}, {6810,3993,3},{6803,3998,3},{6800,4008,3},{6795,4013,3},{6793,4027,3},{6790,4028,3}, {6790,4037,3},{6785,4042,3},{6783,4032,3},{6775,4048,3},{6775,4055,3},{6780,4057,3}, {6782,4067,3},{6778,4068,3},{6772,4082,3},{6773,4092,3},{6772,4100,3},{6763,4105,3}, {6755,4098,3},{6753,4102,3},{6747,4100,3},{6747,4108,3},{6742,4115,3},{6725,4112,3}, {6723,4113,3},{6722,4125,3},{6723,4132,3},{6720,4137,3},{6715,4133,3},{6712,4138,3}, {6708,4133,3},{6702,4137,3},{6700,4133,3},{6700,4127,3},{6695,4130,3},{6683,4122,3}, {6678,4113,3},{6658,4073,3},{6653,4072,3},{6650,4060,3},{6645,4057,3},{6640,4045,3}, {6633,4018,3},{6628,4007,3},{6623,3985,3},{6620,3973,3},{6618,3953,3},{6613,3935,3}, {6612,3925,3},{6610,3893,3},{6608,3883,3},{6605,3855,3},{6608,3797,3},{6613,3760,3}, {6620,3740,3},{6625,3715,3},{6627,3697,3},{6630,3638,3},{6638,3568,3},{6638,3552,3}, {6642,3538,3},{6645,3533,3},{6647,3520,3},{6653,3503,3},{6660,3488,3},{6660,3478,3}, {6653,3455,3},{6653,3447,3},{6662,3435,3},{6663,3437,3},{6663,3452,3},{6665,3452,3}, {6665,3448,3},{6667,3432,3},{6667,3420,3},{6668,3417,3},{6667,3415,3},{6667,3408,3}, {6672,3415,3},{6677,3415,3},{6670,3410,3},{6668,3405,3},{6670,3403,3},{6668,3402,3}, {6668,3393,3},{6672,3388,3},{6670,3387,3},{6670,3383,3},{6677,3377,3},{6680,3367,3}, {6680,3363,3},{6683,3358,3},{6678,3358,3},{6682,3352,3},{6678,3353,3},{6675,3363,3}, {6678,3352,3},{6673,3355,3},{6677,3348,3},{6673,3355,3},{6672,3353,3},{6682,3318,3}, {6698,3282,3},{6705,3280,3},{6708,3297,3},{6708,3277,3},{6713,3260,3},{6713,3245,3}, {6717,3237,3},{6713,3207,3},{6717,3188,3},{6715,3185,3},{6715,3192,3},{6712,3192,3}, {6712,3210,3},{6712,3225,3},{6708,3235,3},{6707,3228,3},{6703,3250,3},{6697,3257,3}, {6695,3253,3},{6695,3238,3},{6693,3250,3},{6690,3248,3},{6688,3242,3},{6688,3255,3}, {6683,3268,3},{6680,3268,3},{6677,3292,3},{6673,3293,3},{6673,3287,3},{6673,3285,3}, {6673,3277,3},{6672,3280,3},{6668,3297,3},{6668,3318,3},{6665,3332,3},{6662,3332,3}, {6665,3313,3},{6660,3307,3},{6660,3288,3},{6658,3287,3},{6657,3310,3},{6660,3312,3}, {6658,3322,3},{6662,3322,3},{6662,3325,3},{6658,3342,3},{6655,3345,3},{6653,3353,3}, {6652,3353,3},{6652,3348,3},{6657,3317,3},{6655,3317,3},{6655,3307,3},{6653,3295,3}, {6652,3295,3},{6650,3312,3},{6653,3322,3},{6652,3330,3},{6648,3332,3},{6647,3353,3}, {6648,3360,3},{6648,3363,3},{6645,3358,3},{6643,3373,3},{6642,3372,3},{6640,3352,3}, {6637,3365,3},{6635,3367,3},{6635,3343,3},{6632,3332,3},{6632,3350,3},{6633,3362,3}, {6632,3365,3},{6630,3362,3},{6627,3388,3},{6622,3390,3},{6625,3397,3},{6625,3410,3}, {6620,3417,3},{6618,3415,3},{6615,3435,3},{6608,3455,3},{6607,3457,3},{6605,3462,3}, {6598,3472,3},{6595,3467,3},{6593,3472,3},{6590,3470,3},{6592,3477,3},{6590,3485,3}, {6588,3487,3},{6582,3483,3},{6583,3490,3},{6577,3487,3},{6575,3490,3},{6572,3497,3}, {6570,3492,3},{6580,3468,3},{6572,3468,3},{6572,3475,3},{6567,3470,3},{6567,3473,3}, {6560,3478,3},{6558,3473,3},{6552,3472,3},{6548,3463,3},{6545,3468,3},{6545,3450,3}, {6540,3450,3},{6542,3437,3},{6538,3438,3},{6538,3432,3},{6538,3430,3},{6538,3440,3}, {6535,3447,3},{6528,3447,3},{6528,3453,3},{6525,3453,3},{6525,3463,3},{6523,3460,3}, {6518,3468,3},{6517,3463,3},{6515,3467,3},{6512,3467,3},{6510,3478,3},{6505,3475,3}, {6505,3480,3},{6503,3482,3},{6498,3470,3},{6497,3477,3},{6485,3495,3},{6480,3487,3}, {6477,3475,3},{6475,3480,3},{6477,3483,3},{6478,3490,3},{6477,3502,3},{6472,3482,3}, {6470,3483,3},{6463,3497,3},{6458,3483,3},{6455,3482,3},{6455,3475,3},{6452,3485,3}, {6452,3495,3},{6445,3495,3},{6443,3510,3},{6438,3513,3},{6437,3532,3},{6433,3543,3}, {6433,3558,3},{6440,3557,3},{6432,3587,3},{6425,3590,3},{6418,3600,3},{6423,3603,3}, {6425,3608,3},{6415,3622,3},{6415,3628,3},{6410,3622,3},{6407,3628,3},{6402,3628,3}, {6400,3645,3},{6397,3648,3},{6397,3660,3},{6392,3668,3},{6393,3677,3},{6390,3685,3}, {6393,3693,3},{6390,3698,3},{6388,3717,3},{6382,3728,3},{6380,3740,3},{6382,3753,3}, {6385,3758,3},{6388,3758,3},{6392,3765,3},{6390,3782,3},{6393,3800,3},{6402,3808,3}, {6415,3805,3},{6423,3790,3},{6430,3802,3},{6433,3790,3},{6435,3795,3},{6437,3785,3}, {6438,3780,3},{6445,3780,3},{6445,3777,3},{6443,3770,3},{6440,3767,3},{6437,3763,3}, {6438,3758,3},{6438,3750,3},{6435,3735,3},{6438,3718,3},{6450,3700,3},{6472,3672,3}, {6475,3655,3},{6483,3650,3},{6483,3657,3},{6487,3647,3},{6495,3643,3},{6495,3652,3}, {6493,3658,3},{6492,3665,3},{6498,3683,3},{6502,3682,3},{6508,3687,3},{6517,3683,3}, {6518,3685,3},{6520,3703,3},{6515,3730,3},{6513,3743,3},{6505,3772,3},{6502,3775,3}, {6497,3775,3},{6488,3798,3},{6485,3807,3},{6485,3822,3},{6487,3842,3},{6480,3837,3}, {6477,3840,3},{6480,3832,3},{6478,3825,3},{6478,3817,3},{6477,3805,3},{6473,3803,3}, {6470,3813,3},{6465,3803,3},{6463,3805,3},{6467,3817,3},{6472,3818,3},{6475,3830,3}, {6475,3835,3},{6475,3848,3},{6477,3848,3},{6480,3842,3},{6482,3847,3},{6478,3865,3}, {6475,3893,3},{6457,3955,3},{6455,3975,3},{6458,3975,3},{6460,3992,3},{6462,3988,3}, {6460,3978,3},{6467,3983,3},{6462,4005,3},{6455,4018,3},{6457,4035,3},{6453,4050,3}, {6457,4053,3},{6473,4042,3},{6475,4042,3},{6477,4047,3},{6475,4052,3},{6477,4052,3}, {6480,4045,3},{6493,4037,3},{6502,4028,3},{6505,4013,3},{6522,3995,3},{6538,3972,3}, {6552,3972,3},{6557,3977,3},{6562,3985,3},{6568,4012,3},{6578,4042,3},{6597,4070,3}, {6600,4100,3},{6607,4135,3},{6615,4153,3},{6617,4165,3},{6618,4165,3},{6633,4192,3}, {6650,4213,3},{6653,4222,3},{6647,4258,3},{6645,4265,3},{6642,4267,3},{6640,4258,3}, {6638,4255,3},{6642,4300,3},{6642,4330,3},{6633,4338,3},{6632,4357,3},{6627,4367,3}, {6623,4370,3},{6620,4363,3},{6615,4345,3},{6610,4337,3},{6610,4330,3},{6603,4335,3}, {6603,4345,3},{6597,4352,3},{6603,4352,3},{6607,4338,3},{6608,4338,3},{6613,4350,3}, {6615,4363,3},{6618,4370,3},{6618,4385,3},{6608,4405,3},{6602,4402,3},{6587,4418,3}, {6593,4418,3},{6600,4412,3},{6608,4417,3},{6618,4408,3},{6632,4412,3},{6647,4425,3}, {6650,4437,3},{6662,4440,3},{6667,4457,3},{6667,4448,3},{6678,4437,3},{6680,4437,3}, {6683,4448,3},{6690,4447,3},{6692,4452,3},{6693,4448,3},{6702,4440,3},{6705,4430,3}, {6710,4438,3},{6708,4427,3},{6717,4417,3},{6718,4403,3},{6717,4390,3},{6720,4378,3}, {6722,4375,3},{6733,4375,3},{6743,4382,3},{6767,4403,3},{6768,4408,3},{6765,4412,3}, {6768,4415,3},{6770,4415,3},{6770,4407,3},{6778,4413,3},{6788,4408,3},{6788,4410,3}, {6788,4420,3},{6792,4427,3},{6793,4422,3},{6792,4413,3},{6795,4413,3},{6797,4413,3}, {6798,4422,3},{6798,4415,3},{6800,4415,3},{6805,4433,3},{6807,4442,3},{6805,4428,3}, {6803,4418,3},{6828,4423,3},{6840,4400,3},{6847,4373,3},{6862,4332,3},{6867,4327,3}, {6868,4337,3},{6868,4350,3},{6863,4363,3},{6863,4375,3},{6858,4385,3},{6853,4407,3}, {6853,4420,3},{6857,4480,3},{6857,4527,3},{6847,4600,3},{6845,4602,3},{6845,4595,3}, {6843,4593,3},{6832,4603,3},{6832,4610,3},{6822,4628,3},{6820,4633,3},{6822,4635,3}, {6813,4653,3},{6812,4652,3},{6810,4647,3},{6810,4655,3},{6800,4657,3},{6793,4665,3}, {6792,4672,3},{6782,4672,3},{6780,4667,3},{6783,4633,3},{6780,4615,3},{6777,4582,3}, {6777,4562,3},{6773,4538,3},{6770,4530,3},{6768,4535,3},{6760,4533,3},{6758,4530,3}, {6758,4515,3},{6748,4495,3},{6735,4492,3},{6728,4513,3},{6717,4560,3},{6708,4565,3}, {6697,4578,3},{6690,4582,3},{6685,4598,3},{6682,4603,3},{6687,4657,3},{6683,4660,3}, {6682,4653,3},{6678,4648,3},{6673,4638,3},{6677,4650,3},{6682,4658,3},{6683,4692,3}, {6685,4695,3},{6685,4705,3},{6692,4740,3},{6690,4757,3},{6687,4757,3},{6688,4760,3}, {6693,4758,3},{6698,4770,3},{6703,4775,3},{6712,4775,3},{6718,4768,3},{6723,4778,3}, {6733,4777,3},{6743,4795,3},{6747,4793,3},{6757,4782,3},{6758,4783,3},{6765,4800,3}, {6763,4810,3},{6760,4807,3},{6758,4810,3},{6768,4825,3},{6768,4835,3},{6767,4843,3}, {6767,4853,3},{6770,4863,3},{6772,4868,3},{6770,4873,3},{6768,4872,3},{6768,4882,3}, {6770,4885,3},{6767,4898,3},{6765,4897,3},{6763,4900,3},{6763,4910,3},{6765,4905,3}, {6767,4905,3},{6772,4888,3},{6773,4877,3},{6777,4880,3},{6783,4880,3},{6793,4858,3}, {6793,4867,3},{6787,4880,3},{6785,4895,3},{6787,4923,3},{6798,4965,3},{6808,5002,3}, {6805,4998,3},{6802,4985,3},{6803,4997,3},{6807,5003,3},{6812,5007,3},{6827,5058,3}, {6837,5078,3},{6835,5083,3},{6833,5088,3},{6835,5108,3},{6838,5113,3},{6838,5128,3}, {6843,5143,3},{6842,5150,3},{6843,5157,3},{6845,5158,3},{6845,5153,3},{6848,5158,3}, {6848,5178,3},{6853,5205,3},{6858,5220,3},{6853,5218,3},{6850,5205,3},{6848,5205,3}, {6850,5218,3},{6848,5235,3},{6847,5235,3},{6847,5228,3},{6842,5228,3},{6838,5213,3}, {6830,5227,3},{6833,5232,3},{6835,5245,3},{6840,5257,3},{6842,5267,3},{6847,5273,3}, {6848,5272,3},{6853,5258,3},{6858,5248,3},{6862,5250,3},{6862,5262,3},{6865,5263,3}, {6863,5252,3},{6862,5245,3},{6858,5240,3},{6860,5228,3},{6887,5322,3},{6892,5347,3}, {6897,5383,3},{6902,5443,3},{6900,5457,3},{6897,5452,3},{6898,5445,3},{6895,5433,3}, {6893,5397,3},{6893,5375,3},{6890,5360,3},{6888,5360,3},{6885,5368,3},{6885,5373,3}, {6888,5368,3},{6888,5372,3},{6885,5402,3},{6882,5398,3},{6880,5385,3},{6875,5382,3}, {6870,5383,3},{6865,5372,3},{6860,5375,3},{6850,5390,3},{6840,5395,3},{6838,5385,3}, {6835,5382,3},{6833,5380,3},{6840,5368,3},{6840,5362,3},{6840,5358,3},{6835,5368,3}, {6833,5367,3},{6835,5358,3},{6837,5343,3},{6835,5338,3},{6833,5337,3},{6835,5333,3}, {6827,5320,3},{6825,5325,3},{6823,5333,3},{6825,5347,3},{6825,5370,3},{6823,5383,3}, {6822,5387,3},{6822,5400,3},{6825,5410,3},{6832,5420,3},{6825,5417,3},{6820,5420,3}, {6820,5423,3},{6830,5447,3},{6830,5452,3},{6830,5455,3},{6818,5465,3},{6817,5482,3}, {6825,5493,3},{6828,5492,3},{6832,5485,3},{6833,5492,3},{6840,5493,3},{6843,5500,3}, {6843,5507,3},{6847,5510,3},{6850,5520,3},{6852,5523,3},{6855,5532,3},{6857,5547,3}, {6857,5558,3},{6857,5568,3},{6860,5583,3},{6867,5597,3},{6863,5613,3},{6860,5633,3}, {6863,5652,3},{6862,5653,3},{6858,5650,3},{6863,5657,3},{6863,5663,3},{6857,5687,3}, {6853,5708,3},{6855,5728,3},{6858,5740,3},{6865,5745,3},{6868,5753,3},{6873,5758,3}, {6875,5792,3},{6878,5798,3},{6882,5795,3},{6885,5797,3},{6888,5823,3},{6887,5825,3}, {6883,5820,3},{6878,5825,3},{6875,5837,3},{6873,5833,3},{6873,5842,3},{6877,5843,3}, {6878,5828,3},{6883,5825,3},{6890,5828,3},{6895,5852,3},{6900,5893,3},{6900,5923,3}, {6898,5923,3},{6897,5902,3},{6893,5888,3},{6890,5910,3},{6877,5942,3},{6875,5943,3}, {6870,5940,3},{6872,5927,3},{6870,5918,3},{6863,5912,3},{6862,5907,3},{6857,5907,3}, {6853,5912,3},{6848,5908,3},{6842,5907,3},{6840,5913,3},{6838,5937,3},{6833,5965,3}, {6837,5983,3},{6847,5997,3},{6860,5987,3},{6863,5977,3},{6868,5982,3},{6872,5990,3}, {6872,5995,3},{6870,6000,3},{6868,6008,3},{6872,6047,3},{6875,6060,3},{6890,6083,3}, {6890,6097,3},{6892,6092,3},{6900,6095,3},{6908,6093,3},{6913,6088,3},{6917,6073,3}, {6912,6073,3},{6912,6063,3},{6913,6058,3},{6922,6060,3},{6932,6055,3},{6947,6030,3}, {6952,6022,3},{6955,6022,3},{6957,6013,3},{6963,6015,3},{6967,6028,3},{6967,6050,3}, {6967,6067,3},{6972,6063,3},{6973,6072,3},{6982,6070,3},{6985,6077,3},{6987,6087,3}, {6985,6105,3},{6987,6110,3},{6983,6115,3},{6983,6127,3},{6980,6140,3},{6977,6158,3}, {6978,6173,3},{6975,6202,3},{6975,6250,3},{6970,6308,3},{6967,6342,3},{6952,6428,3}, {6932,6498,3},{6928,6500,3},{6928,6493,3},{6930,6487,3},{6925,6478,3},{6922,6480,3}, {6917,6477,3},{6915,6480,3},{6920,6495,3},{6925,6492,3},{6927,6505,3},{6918,6538,3}, {6913,6587,3},{6910,6590,3},{6910,6577,3},{6912,6573,3},{6913,6565,3},{6908,6568,3}, {6903,6610,3},{6900,6625,3},{6895,6635,3},{6890,6658,3},{6888,6688,3},{6885,6712,3}, {6880,6703,3},{6875,6715,3},{6870,6720,3},{6868,6733,3},{6858,6763,3},{6850,6780,3}, {6852,6770,3},{6848,6778,3},{6847,6790,3},{6842,6817,3},{6833,6825,3},{6830,6823,3}, {6823,6818,3},{6823,6827,3},{6818,6828,3},{6822,6838,3},{6822,6843,3},{6832,6857,3}, {6832,6865,3},{6833,6857,3},{6837,6857,3},{6860,6890,3},{6880,6902,3},{6883,6910,3}, {6887,6912,3},{6887,6898,3},{6890,6895,3},{6892,6912,3},{6892,6913,3},{6893,6907,3}, {6895,6922,3},{6893,6903,3},{6897,6902,3},{6892,6878,3},{6892,6865,3},{6898,6847,3}, {6908,6835,3},{6928,6805,3},{6935,6803,3},{6938,6812,3},{6955,6810,3},{6955,6807,3}, {6952,6800,3},{6948,6803,3},{6948,6795,3},{6952,6778,3},{6958,6763,3},{6962,6750,3}, {6962,6735,3},{6968,6708,3},{6970,6698,3},{6965,6700,3},{6965,6698,3},{6963,6685,3}, {6957,6692,3},{6952,6693,3},{6957,6680,3},{6975,6677,3},{7000,6687,3},{7003,6692,3}, {7005,6698,3},{7002,6700,3},{6998,6697,3},{6995,6702,3},{6998,6718,3},{7002,6725,3}, {7010,6733,3},{7010,6728,3},{7015,6730,3},{7018,6725,3},{7013,6723,3},{7022,6708,3}, {7038,6720,3},{7042,6727,3},{7045,6725,3},{7047,6730,3},{7053,6722,3},{7075,6733,3}, {7082,6727,3},{7083,6710,3},{7080,6700,3},{7078,6678,3},{7077,6668,3},{7088,6662,3}, {7095,6677,3},{7100,6683,3},{7105,6683,3},{7108,6690,3},{7110,6682,3},{7107,6682,3}, {7105,6675,3},{7102,6677,3},{7100,6668,3},{7102,6662,3},{7105,6662,3},{7117,6682,3}, {7130,6692,3},{7130,6708,3},{7142,6758,3},{7143,6758,3},{7150,6785,3},{7152,6795,3}, {7167,6822,3},{7168,6828,3},{7167,6835,3},{7172,6830,3},{7182,6847,3},{7192,6855,3}, {7198,6857,3},{7203,6865,3},{7223,6873,3},{7232,6878,3},{7232,6882,3},{7245,6885,3}, {7248,6892,3},{7253,6887,3},{7265,6897,3},{7265,6905,3},{7267,6898,3},{7272,6902,3}, {7280,6923,3},{7293,6932,3},{7297,6937,3},{7297,6953,3},{7297,6975,3},{7295,6980,3}, {7293,6978,3},{7292,6957,3},{7288,6955,3},{7288,6960,3},{7290,7030,3},{7288,7075,3}, {7290,7098,3},{7290,7123,3},{7292,7153,3},{7287,7177,3},{7283,7200,3},{7282,7195,3}, {7282,7183,3},{7280,7188,3},{7283,7210,3},{7270,7283,3},{7270,7272,3},{7267,7273,3}, {7265,7282,3},{7260,7272,3},{7255,7277,3},{7252,7285,3},{7248,7280,3},{7240,7280,3}, {7228,7288,3},{7220,7273,3},{7212,7272,3},{7203,7257,3},{7192,7252,3},{7185,7233,3}, {7182,7232,3},{7172,7237,3},{7168,7223,3},{7160,7220,3},{7157,7207,3},{7157,7202,3}, {7158,7195,3},{7152,7182,3},{7147,7180,3},{7130,7205,3},{7120,7235,3},{7115,7258,3}, {7113,7263,3},{7108,7268,3},{7102,7262,3},{7087,7283,3},{7070,7277,3},{7062,7268,3}, {7053,7277,3},{7042,7278,3},{7040,7268,3},{7035,7253,3},{7027,7242,3},{7018,7262,3}, {7008,7257,3},{7005,7248,3},{6998,7253,3},{6990,7265,3},{6985,7268,3},{6975,7265,3}, {6968,7255,3},{6967,7257,3},{6965,7250,3},{6952,7262,3},{6943,7263,3},{6942,7258,3}, {6942,7248,3},{6938,7257,3},{6928,7265,3},{6922,7252,3},{6918,7248,3},{6898,7255,3}, {6888,7263,3},{6885,7272,3},{6858,7352,3},{6848,7365,3},{6845,7365,3},{6843,7360,3}, {6848,7360,3},{6845,7347,3},{6837,7342,3},{6822,7310,3},{6817,7313,3},{6808,7307,3}, {6795,7320,3},{6785,7320,3},{6782,7307,3},{6772,7315,3},{6768,7312,3},{6772,7305,3}, {6768,7295,3},{6768,7288,3},{6765,7288,3},{6763,7285,3},{6762,7262,3},{6760,7255,3}, {6752,7255,3},{6747,7240,3},{6740,7245,3},{6732,7240,3},{6730,7227,3},{6733,7218,3}, {6730,7213,3},{6730,7203,3},{6727,7203,3},{6723,7220,3},{6717,7223,3},{6715,7217,3}, {6720,7212,3},{6715,7213,3},{6713,7192,3},{6712,7202,3},{6708,7198,3},{6707,7202,3}, {6703,7193,3},{6698,7187,3},{6697,7180,3},{6692,7175,3},{6692,7172,3},{6695,7163,3}, {6693,7158,3},{6692,7153,3},{6695,7143,3},{6697,7137,3},{6695,7132,3},{6693,7133,3}, {6692,7145,3},{6690,7138,3},{6687,7152,3},{6683,7148,3},{6678,7155,3},{6677,7152,3}, {6672,7160,3},{6665,7157,3},{6663,7137,3},{6668,7137,3},{6665,7133,3},{6663,7127,3}, {6665,7117,3},{6662,7123,3},{6663,7107,3},{6660,7105,3},{6658,7112,3},{6657,7103,3}, {6658,7095,3},{6655,7098,3},{6653,7098,3},{6650,7072,3},{6658,7033,3},{6662,7028,3}, {6665,7032,3},{6665,7040,3},{6668,7047,3},{6668,7060,3},{6672,7063,3},{6672,7068,3}, {6673,7073,3},{6675,7073,3},{6675,7057,3},{6673,7053,3},{6673,7062,3},{6672,7047,3}, {6670,7055,3},{6668,7032,3},{6672,7015,3},{6673,7018,3},{6675,7008,3},{6680,6998,3}, {6685,6995,3},{6687,6990,3},{6685,6988,3},{6683,6990,3},{6682,6978,3},{6682,6970,3}, {6683,6958,3},{6682,6957,3},{6680,6963,3},{6678,6960,3},{6683,6940,3},{6682,6932,3}, {6683,6917,3},{6680,6897,3},{6678,6900,3},{6678,6908,3},{6677,6912,3},{6660,6912,3}, {6650,6938,3},{6647,6975,3},{6642,6990,3},{6633,7038,3},{6637,7088,3},{6637,7132,3}, {6632,7168,3},{6630,7175,3},{6623,7182,3},{6623,7185,3},{6625,7193,3},{6622,7200,3}, {6623,7203,3},{6623,7207,3},{6628,7223,3},{6630,7235,3},{6638,7240,3},{6647,7237,3}, {6650,7242,3},{6652,7238,3},{6650,7228,3},{6655,7245,3},{6660,7247,3},{6665,7295,3}, {6673,7300,3},{6675,7310,3},{6678,7320,3},{6683,7352,3},{6693,7363,3},{6698,7385,3}, {6705,7387,3},{6707,7392,3},{6712,7390,3},{6722,7395,3},{6730,7392,3},{6742,7408,3}, {6768,7473,3},{6793,7482,3},{6815,7473,3},{6823,7462,3},{6837,7433,3},{6850,7447,3}, {6862,7442,3},{6872,7448,3},{6878,7467,3},{6890,7547,3},{6890,7562,3},{6893,7583,3}, {6897,7612,3},{6898,7633,3},{6898,7655,3},{6897,7660,3},{6887,7670,3},{6880,7662,3}, {6877,7663,3},{6865,7702,3},{6857,7710,3},{6858,7715,3},{6860,7710,3},{6860,7717,3}, {6852,7732,3},{6845,7725,3},{6838,7730,3},{6830,7717,3},{6827,7718,3},{6823,7737,3}, {6815,7730,3},{6810,7722,3},{6805,7725,3},{6798,7718,3},{6790,7730,3},{6783,7723,3}, {6782,7717,3},{6785,7715,3},{6783,7708,3},{6778,7710,3},{6762,7767,3},{6757,7768,3}, {6755,7768,3},{6757,7785,3},{6755,7790,3},{6757,7795,3},{6755,7798,3},{6753,7805,3}, {6758,7825,3},{6755,7833,3},{6755,7848,3},{6758,7858,3},{6758,7867,3},{6758,7872,3}, {6757,7887,3},{6755,7895,3},{6757,7905,3},{6760,7897,3},{6762,7883,3},{6763,7880,3}, {6765,7887,3},{6765,7878,3},{6765,7872,3},{6762,7867,3},{6760,7858,3},{6762,7850,3}, {6763,7847,3},{6763,7858,3},{6767,7862,3},{6767,7853,3},{6765,7850,3},{6770,7843,3}, {6763,7840,3},{6767,7832,3},{6765,7823,3},{6767,7818,3},{6765,7813,3},{6768,7805,3}, {6770,7798,3},{6768,7787,3},{6770,7787,3},{6772,7795,3},{6773,7783,3},{6777,7780,3}, {6778,7777,3},{6773,7775,3},{6772,7765,3},{6773,7753,3},{6777,7747,3},{6790,7747,3}, {6792,7748,3},{6793,7758,3},{6793,7752,3},{6798,7747,3},{6803,7752,3},{6808,7750,3}, {6815,7757,3},{6822,7773,3},{6825,7815,3},{6827,7817,3},{6832,7808,3},{6835,7808,3}, {6838,7797,3},{6845,7790,3},{6848,7795,3},{6852,7793,3},{6853,7788,3},{6852,7780,3}, {6852,7777,3},{6857,7777,3},{6862,7772,3},{6868,7775,3},{6887,7770,3},{6890,7763,3}, {6893,7740,3},{6898,7722,3},{6902,7692,3},{6910,7678,3},{6915,7663,3},{6913,7653,3}, {6915,7637,3},{6923,7603,3},{6923,7577,3},{6927,7557,3},{6925,7548,3},{6918,7522,3}, {6913,7510,3},{6910,7515,3},{6908,7475,3},{6913,7450,3},{6913,7418,3},{6907,7395,3}, {6913,7380,3},{6917,7375,3},{6920,7375,3},{6935,7388,3},{6943,7390,3},{6955,7377,3}, {6970,7355,3},{6975,7352,3},{6982,7363,3},{6995,7370,3},{7002,7370,3},{7008,7377,3}, {7015,7368,3},{7030,7400,3},{7037,7407,3},{7042,7417,3},{7053,7433,3},{7068,7430,3}, {7085,7393,3},{7097,7390,3},{7105,7373,3},{7127,7353,3},{7133,7333,3},{7142,7302,3}, {7167,7350,3},{7172,7353,3},{7177,7347,3},{7182,7353,3},{7190,7387,3},{7193,7412,3}, {7195,7425,3},{7197,7432,3},{7195,7435,3},{7212,7495,3},{7225,7510,3},{7238,7512,3}, {7258,7507,3},{7270,7495,3},{7282,7473,3},{7288,7500,3},{7287,7508,3},{7283,7520,3}, {7282,7533,3},{7275,7552,3},{7273,7553,3},{7270,7545,3},{7272,7540,3},{7268,7533,3}, {7268,7542,3},{7263,7550,3},{7255,7572,3},{7253,7568,3},{7253,7557,3},{7248,7555,3}, {7233,7568,3},{7232,7567,3},{7230,7577,3},{7227,7575,3},{7222,7560,3},{7215,7552,3}, {7208,7553,3},{7203,7542,3},{7198,7543,3},{7195,7527,3},{7190,7528,3},{7183,7522,3}, {7178,7522,3},{7173,7527,3},{7167,7550,3},{7163,7550,3},{7162,7538,3},{7157,7550,3}, {7153,7553,3},{7150,7542,3},{7145,7543,3},{7147,7528,3},{7145,7523,3},{7137,7527,3}, {7130,7545,3},{7123,7603,3},{7118,7612,3},{7123,7615,3},{7120,7638,3},{7122,7663,3}, {7118,7690,3},{7115,7688,3},{7107,7692,3},{7112,7697,3},{7115,7693,3},{7118,7703,3}, {7115,7768,3},{7110,7787,3},{7102,7788,3},{7097,7795,3},{7095,7805,3},{7093,7827,3}, {7088,7840,3},{7088,7845,3},{7092,7855,3},{7092,7887,3},{7093,7890,3},{7093,7895,3}, {7092,7895,3},{7093,7903,3},{7095,7907,3},{7097,7902,3},{7098,7908,3},{7102,7910,3}, {7102,7903,3},{7098,7897,3},{7100,7883,3},{7098,7878,3},{7098,7890,3},{7093,7880,3}, {7093,7872,3},{7097,7858,3},{7092,7843,3},{7100,7848,3},{7102,7847,3},{7105,7855,3}, {7107,7850,3},{7110,7852,3},{7112,7845,3},{7110,7835,3},{7105,7850,3},{7103,7845,3}, {7110,7825,3},{7112,7823,3},{7122,7832,3},{7125,7828,3},{7128,7803,3},{7125,7793,3}, {7132,7790,3},{7135,7800,3},{7137,7800,3},{7135,7787,3},{7133,7787,3},{7132,7773,3}, {7128,7775,3},{7128,7772,3},{7133,7745,3},{7130,7752,3},{7137,7720,3},{7142,7712,3}, {7142,7700,3},{7147,7673,3},{7153,7655,3},{7157,7632,3},{7158,7625,3},{7163,7627,3}, {7192,7600,3},{7200,7638,3},{7205,7690,3},{7192,7737,3},{7187,7743,3},{7183,7752,3}, {7182,7770,3},{7188,7810,3},{7190,7817,3},{7197,7823,3},{7210,7802,3},{7212,7795,3}, {7212,7780,3},{7207,7748,3},{7208,7738,3},{7212,7738,3},{7217,7748,3},{7222,7747,3}, {7222,7752,3},{7218,7767,3},{7222,7775,3},{7232,7790,3},{7233,7807,3},{7238,7813,3}, {7237,7827,3},{7238,7832,3},{7240,7843,3},{7238,7850,3},{7240,7852,3},{7237,7885,3}, {7238,7930,3},{7237,7948,3},{7225,7980,3},{7218,8012,3},{7208,8083,3},{7203,8085,3}, {7202,8082,3},{7203,8073,3},{7208,8078,3},{7207,8067,3},{7203,8063,3},{7185,8125,3}, {7177,8130,3},{7172,8163,3},{7170,8167,3},{7170,8213,3},{7178,8282,3},{7177,8292,3}, {7173,8298,3},{7173,8320,3},{7172,8327,3},{7168,8332,3},{7165,8330,3},{7157,8317,3}, {7155,8302,3},{7145,8298,3},{7140,8303,3},{7137,8270,3},{7130,8237,3},{7127,8225,3}, {7108,8235,3},{7100,8220,3},{7092,8230,3},{7083,8232,3},{7077,8242,3},{7068,8222,3}, {7062,8220,3},{7057,8208,3},{7050,8215,3},{7028,8223,3},{7020,8235,3},{7040,8225,3}, {7050,8223,3},{7058,8217,3},{7060,8247,3},{7068,8243,3},{7070,8248,3},{7075,8250,3}, {7077,8257,3},{7080,8248,3},{7085,8258,3},{7090,8258,3},{7095,8268,3},{7097,8275,3}, {7095,8277,3},{7095,8285,3},{7092,8287,3},{7100,8288,3},{7100,8290,3},{7092,8300,3}, {7090,8310,3},{7087,8315,3},{7077,8313,3},{7067,8305,3},{7060,8307,3},{7057,8300,3}, {7050,8305,3},{7042,8300,3},{7038,8290,3},{7025,8265,3},{7020,8267,3},{7017,8263,3}, {7013,8282,3},{7008,8288,3},{7007,8307,3},{7008,8317,3},{7012,8320,3},{7020,8313,3}, {7023,8305,3},{7032,8295,3},{7033,8302,3},{7032,8318,3},{7032,8333,3},{7033,8352,3}, {7047,8377,3},{7050,8373,3},{7055,8377,3},{7070,8360,3},{7077,8360,3},{7080,8353,3}, {7092,8348,3},{7097,8338,3},{7102,8340,3},{7105,8333,3},{7107,8317,3},{7112,8312,3}, {7110,8323,3},{7112,8327,3},{7125,8315,3},{7128,8328,3},{7135,8337,3},{7147,8338,3}, {7148,8352,3},{7152,8358,3},{7157,8363,3},{7162,8363,3},{7175,8342,3},{7180,8342,3}, {7183,8338,3},{7187,8318,3},{7190,8280,3},{7187,8267,3},{7195,8262,3},{7200,8250,3}, {7208,8218,3},{7213,8230,3},{7223,8228,3},{7228,8220,3},{7227,8212,3},{7233,8172,3}, {7235,8117,3},{7247,8085,3},{7253,8072,3},{7255,8072,3},{7257,8078,3},{7262,8083,3}, {7265,8068,3},{7273,8063,3},{7278,8075,3},{7285,8080,3},{7297,8082,3},{7307,8068,3}, {7310,8043,3},{7312,8058,3},{7313,8057,3},{7317,8033,3},{7317,8023,3},{7320,8032,3}, {7320,8048,3},{7322,8057,3},{7327,8055,3},{7328,8045,3},{7328,8033,3},{7332,8025,3}, {7338,8035,3},{7338,8038,3},{7337,8042,3},{7342,8048,3},{7343,8058,3},{7350,8068,3}, {7352,8063,3},{7348,8052,3},{7357,8052,3},{7358,8072,3},{7357,8085,3},{7358,8092,3}, {7360,8125,3},{7362,8132,3},{7365,8152,3},{7365,8217,3},{7367,8248,3},{7365,8340,3}, {7370,8375,3},{7370,8435,3},{7375,8458,3},{7377,8478,3},{7373,8490,3},{7372,8502,3}, {7370,8500,3},{7372,8510,3},{7370,8522,3},{7372,8548,3},{7377,8547,3},{7382,8558,3}, {7382,8587,3},{7387,8602,3},{7385,8625,3},{7388,8640,3},{7388,8667,3},{7390,8678,3}, {7385,8710,3},{7378,8703,3},{7375,8685,3},{7372,8675,3},{7367,8662,3},{7367,8652,3}, {7362,8635,3},{7358,8612,3},{7353,8598,3},{7350,8583,3},{7347,8578,3},{7333,8583,3}, {7327,8622,3},{7318,8632,3},{7315,8652,3},{7312,8667,3},{7298,8678,3},{7307,8677,3}, {7317,8663,3},{7318,8645,3},{7325,8633,3},{7332,8597,3},{7333,8588,3},{7347,8585,3}, {7357,8622,3},{7357,8665,3},{7360,8687,3},{7360,8710,3},{7362,8718,3},{7370,8735,3}, {7368,8725,3},{7373,8730,3},{7383,8763,3},{7390,8767,3},{7392,8753,3},{7383,8750,3}, {7382,8743,3},{7383,8732,3},{7387,8720,3},{7393,8713,3},{7403,8693,3},{7405,8697,3}, {7405,8720,3},{7400,8740,3},{7402,8742,3},{7405,8737,3},{7407,8685,3},{7410,8687,3}, {7413,8672,3},{7418,8680,3},{7420,8677,3},{7425,8657,3},{7427,8607,3},{7428,8595,3}, {7432,8597,3},{7435,8590,3},{7437,8597,3},{7437,8612,3},{7432,8625,3},{7432,8630,3}, {7438,8627,3},{7440,8607,3},{7442,8607,3},{7442,8622,3},{7442,8625,3},{7445,8632,3}, {7443,8638,3},{7445,8648,3},{7443,8658,3},{7440,8663,3},{7438,8660,3},{7438,8673,3}, {7437,8680,3},{7438,8682,3},{7438,8695,3},{7435,8690,3},{7432,8670,3},{7430,8685,3}, {7433,8690,3},{7433,8697,3},{7428,8697,3},{7427,8700,3},{7430,8705,3},{7435,8700,3}, {7437,8702,3},{7435,8727,3},{7440,8707,3},{7443,8708,3},{7442,8678,3},{7447,8668,3}, {7450,8655,3},{7453,8660,3},{7455,8678,3},{7457,8650,3},{7460,8632,3},{7462,8612,3}, {7460,8595,3},{7463,8585,3},{7463,8575,3},{7467,8587,3},{7470,8583,3},{7472,8587,3}, {7472,8607,3},{7477,8612,3},{7482,8603,3},{7482,8610,3},{7480,8615,3},{7482,8620,3}, {7477,8638,3},{7475,8633,3},{7477,8622,3},{7470,8633,3},{7472,8652,3},{7470,8655,3}, {7470,8663,3},{7467,8660,3},{7465,8668,3},{7462,8670,3},{7462,8685,3},{7460,8697,3}, {7465,8690,3},{7468,8695,3},{7468,8677,3},{7470,8677,3},{7475,8687,3},{7475,8698,3}, {7472,8702,3},{7472,8707,3},{7485,8707,3},{7493,8738,3},{7495,8737,3},{7495,8725,3}, {7498,8718,3},{7500,8743,3},{7497,8748,3},{7495,8743,3},{7493,8755,3},{7493,8760,3}, {7497,8757,3},{7498,8768,3},{7500,8768,3},{7502,8778,3},{7503,8777,3},{7503,8738,3}, {7507,8725,3},{7508,8707,3},{7507,8692,3},{7512,8692,3},{7515,8700,3},{7517,8728,3}, {7510,8798,3},{7513,8807,3},{7513,8813,3},{7517,8830,3},{7523,8832,3},{7525,8840,3}, {7528,8852,3},{7527,8863,3},{7532,8855,3},{7533,8860,3},{7535,8878,3},{7537,8882,3}, {7537,8877,3},{7540,8887,3},{7540,8908,3},{7543,8898,3},{7540,8873,3},{7545,8913,3}, {7550,8925,3},{7547,8932,3},{7547,8940,3},{7543,8938,3},{7543,8972,3},{7547,8962,3}, {7548,8962,3},{7552,8988,3},{7552,9005,3},{7553,9003,3},{7555,8992,3},{7558,9005,3}, {7562,9063,3},{7563,9068,3},{7567,9090,3},{7563,9092,3},{7562,9098,3},{7567,9117,3}, {7563,9118,3},{7563,9123,3},{7563,9162,3},{7570,9163,3},{7573,9172,3},{7572,9178,3}, {7572,9205,3},{7575,9218,3},{7575,9240,3},{7577,9250,3},{7583,9335,3},{7592,9407,3}, {7595,9417,3},{7595,9413,3},{7593,9407,3},{7590,9367,3},{7595,9355,3},{7592,9343,3}, {7588,9348,3},{7587,9342,3},{7595,9327,3},{7597,9332,3},{7598,9328,3},{7593,9297,3}, {7590,9310,3},{7590,9308,3},{7590,9288,3},{7592,9290,3},{7597,9283,3},{7598,9292,3}, {7605,9292,3},{7607,9302,3},{7603,9310,3},{7602,9312,3},{7603,9320,3},{7607,9322,3}, {7608,9312,3},{7610,9315,3},{7608,9325,3},{7610,9343,3},{7607,9333,3},{7603,9342,3}, {7602,9342,3},{7605,9355,3},{7603,9363,3},{7605,9370,3},{7603,9375,3},{7605,9400,3}, {7607,9395,3},{7610,9367,3},{7612,9367,3},{7612,9397,3},{7612,9410,3},{7610,9420,3}, {7612,9438,3},{7605,9447,3},{7607,9460,3},{7610,9460,3},{7612,9473,3},{7615,9467,3}, {7615,9457,3},{7615,9455,3},{7615,9477,3},{7612,9490,3},{7610,9505,3},{7612,9508,3}, {7612,9527,3},{7613,9532,3},{7615,9542,3},{7613,9582,3},{7610,9615,3},{7608,9620,3}, {7607,9600,3},{7605,9608,3},{7603,9598,3},{7598,9600,3},{7598,9588,3},{7590,9572,3}, {7588,9557,3},{7585,9575,3},{7592,9582,3},{7595,9593,3},{7595,9630,3},{7597,9633,3}, {7598,9627,3},{7602,9652,3},{7600,9655,3},{7598,9650,3},{7598,9662,3},{7597,9667,3}, {7587,9645,3},{7588,9660,3},{7590,9667,3},{7588,9683,3},{7592,9683,3},{7593,9693,3}, {7598,9705,3},{7603,9722,3},{7605,9737,3},{7598,9718,3},{7595,9725,3},{7593,9718,3}, {7593,9733,3},{7597,9730,3},{7598,9735,3},{7600,9755,3},{7598,9782,3},{7600,9783,3}, {7605,9772,3},{7605,9755,3},{7608,9767,3},{7610,9777,3},{7605,9790,3},{7608,9815,3}, {7610,9822,3},{7610,9802,3},{7612,9793,3},{7615,9802,3},{7615,9807,3},{7613,9810,3}, {7617,9815,3},{7617,9837,3},{7627,9880,3},{7620,9872,3},{7620,9885,3},{7622,9892,3}, {7622,9903,3},{7620,9915,3},{7622,9928,3},{7620,9930,3},{7617,9920,3},{7617,9923,3}, {7617,9908,3},{7613,9915,3},{7613,9923,3},{7615,9957,3},{7612,9960,3},{7610,9947,3}, {7608,9958,3},{7607,9957,3},{7608,9963,3},{7605,9977,3},{7597,9968,3},{7585,9967,3}, {7582,9953,3},{7577,9923,3},{7572,9927,3},{7567,9915,3},{7555,9910,3},{7547,9958,3}, {7547,9975,3},{7542,9970,3},{7537,9977,3},{7530,10002,3},{7523,10003,3}, {7518,10017,3},{7517,10018,3},{7520,10020,3},{7523,10008,3},{7528,10008,3}, {7537,9980,3},{7547,9982,3},{7548,9960,3},{7553,9938,3},{7555,9923,3},{7557,9918,3}, {7568,9925,3},{7570,9935,3},{7575,9928,3},{7577,9935,3},{7577,9958,3},{7585,9970,3}, {7590,9988,3},{7595,9992,3},{7602,9982,3},{7608,9988,3},{7615,9980,3},{7620,9963,3}, {7627,9960,3},{7628,9940,3},{7635,9927,3},{7635,9903,3},{7640,9902,3},{7647,9883,3}, {7650,9882,3},{7652,9892,3},{7647,9943,3},{7648,10023,3},{7647,10030,3}, {7650,10065,3},{7653,10085,3},{7648,10105,3},{7645,10102,3},{7647,10125,3}, {7648,10132,3},{7645,10148,3},{7645,10170,3},{7640,10188,3},{7638,10225,3}, {7640,10218,3},{7642,10198,3},{7647,10178,3},{7647,10157,3},{7650,10142,3}, {7652,10103,3},{7655,10088,3},{7658,10107,3},{7673,10113,3},{7675,10123,3}, {7677,10118,3},{7678,10100,3},{7683,10087,3},{7697,10092,3},{7698,10095,3}, {7698,10122,3},{7705,10123,3},{7707,10117,3},{7710,10120,3},{7717,10145,3}, {7723,10162,3},{7728,10185,3},{7738,10207,3},{7740,10215,3},{7738,10222,3}, {7738,10228,3},{7750,10255,3},{7755,10292,3},{7758,10290,3},{7763,10305,3}, {7765,10327,3},{7762,10335,3},{7763,10365,3},{7773,10407,3},{7773,10430,3}, {7772,10433,3},{7770,10427,3},{7768,10427,3},{7767,10437,3},{7770,10462,3}, {7770,10475,3},{7763,10480,3},{7758,10492,3},{7757,10523,3},{7753,10538,3}, {7757,10565,3},{7757,10587,3},{7753,10583,3},{7752,10590,3},{7747,10592,3}, {7742,10600,3},{7740,10612,3},{7737,10630,3},{7735,10618,3},{7737,10605,3}, {7737,10573,3},{7733,10573,3},{7730,10562,3},{7728,10545,3},{7725,10552,3}, {7723,10530,3},{7720,10527,3},{7717,10495,3},{7717,10487,3},{7717,10472,3}, {7713,10452,3},{7713,10437,3},{7708,10412,3},{7708,10437,3},{7710,10470,3}, {7712,10477,3},{7708,10492,3},{7708,10507,3},{7710,10515,3},{7708,10535,3}, {7712,10560,3},{7712,10585,3},{7713,10592,3},{7708,10588,3},{7705,10573,3}, {7703,10578,3},{7702,10545,3},{7697,10545,3},{7698,10553,3},{7697,10567,3}, {7698,10577,3},{7698,10592,3},{7707,10620,3},{7703,10648,3},{7702,10650,3}, {7702,10657,3},{7700,10665,3},{7700,10673,3},{7700,10677,3},{7703,10665,3}, {7703,10677,3},{7705,10682,3},{7703,10702,3},{7702,10698,3},{7700,10700,3}, {7702,10727,3},{7700,10723,3},{7695,10733,3},{7693,10750,3},{7690,10748,3}, {7688,10727,3},{7687,10735,3},{7685,10720,3},{7683,10728,3},{7680,10722,3}, {7680,10707,3},{7675,10705,3},{7673,10697,3},{7672,10697,3},{7670,10690,3}, {7672,10675,3},{7672,10672,3},{7667,10680,3},{7658,10668,3},{7655,10658,3}, {7660,10653,3},{7660,10645,3},{7660,10638,3},{7652,10640,3},{7650,10670,3}, {7647,10682,3},{7650,10688,3},{7650,10702,3},{7653,10735,3},{7650,10763,3}, {7653,10788,3},{7663,10800,3},{7667,10790,3},{7673,10795,3},{7673,10828,3}, {7670,10830,3},{7672,10845,3},{7672,10880,3},{7673,10907,3},{7672,10915,3}, {7675,10937,3},{7673,10942,3},{7673,10960,3},{7672,10968,3},{7672,10985,3}, {7670,10988,3},{7670,10997,3},{7668,11003,3},{7673,11030,3},{7675,11045,3}, {7677,11060,3},{7673,11063,3},{7672,11073,3},{7673,11092,3},{7675,11090,3}, {7675,11110,3},{7675,11113,3},{7672,11107,3},{7668,11110,3},{7670,11123,3}, {7668,11155,3},{7667,11148,3},{7665,11155,3},{7662,11145,3},{7662,11147,3}, {7662,11165,3},{7660,11177,3},{7648,11220,3},{7633,11183,3},{7638,11202,3}, {7645,11223,3},{7637,11265,3},{7633,11275,3},{7632,11265,3},{7627,11273,3}, {7623,11268,3},{7622,11265,3},{7623,11250,3},{7620,11260,3},{7620,11278,3}, {7613,11285,3},{7608,11280,3},{7605,11257,3},{7605,11293,3},{7607,11302,3}, {7612,11303,3},{7613,11298,3},{7615,11310,3},{7615,11322,3},{7612,11330,3}, {7613,11325,3},{7617,11328,3},{7622,11300,3},{7625,11293,3},{7625,11327,3}, {7623,11330,3},{7622,11323,3},{7620,11323,3},{7620,11335,3},{7618,11340,3}, {7613,11347,3},{7603,11345,3},{7602,11355,3},{7598,11350,3},{7595,11355,3}, {7593,11343,3},{7593,11352,3},{7588,11357,3},{7587,11355,3},{7585,11348,3}, {7587,11363,3},{7592,11362,3},{7592,11372,3},{7592,11375,3},{7593,11378,3}, {7592,11385,3},{7588,11382,3},{7585,11390,3},{7572,11375,3},{7560,11372,3}, {7553,11352,3},{7553,11342,3},{7562,11358,3},{7565,11360,3},{7567,11343,3}, {7568,11330,3},{7567,11303,3},{7570,11313,3},{7573,11305,3},{7583,11260,3}, {7585,11233,3},{7583,11245,3},{7577,11252,3},{7577,11268,3},{7570,11287,3}, {7568,11282,3},{7570,11275,3},{7565,11288,3},{7558,11278,3},{7555,11283,3}, {7555,11302,3},{7562,11300,3},{7565,11328,3},{7555,11327,3},{7552,11338,3}, {7550,11355,3},{7552,11363,3},{7540,11372,3},{7540,11353,3},{7538,11355,3}, {7538,11363,3},{7537,11367,3},{7528,11360,3},{7508,11310,3},{7507,11302,3}, {7498,11288,3},{7492,11257,3},{7488,11213,3},{7485,11208,3},{7478,11205,3}, {7477,11195,3},{7473,11190,3},{7472,11195,3},{7467,11180,3},{7467,11173,3}, {7468,11160,3},{7468,11140,3},{7460,11112,3},{7460,11100,3},{7457,11105,3}, {7455,11095,3},{7453,11082,3},{7448,11060,3},{7447,11050,3},{7448,11035,3}, {7448,11028,3},{7443,11038,3},{7437,11020,3},{7437,11003,3},{7432,10990,3}, {7432,10980,3},{7432,10978,3},{7432,10963,3},{7430,10955,3},{7430,10962,3}, {7428,10972,3},{7430,10998,3},{7423,10995,3},{7418,10985,3},{7408,10950,3}, {7407,10923,3},{7403,10908,3},{7397,10892,3},{7393,10877,3},{7382,10857,3}, {7380,10850,3},{7382,10843,3},{7377,10848,3},{7363,10807,3},{7365,10810,3}, {7367,10803,3},{7367,10797,3},{7362,10778,3},{7360,10775,3},{7363,10767,3}, {7362,10743,3},{7363,10735,3},{7362,10732,3},{7362,10715,3},{7357,10710,3}, {7355,10717,3},{7353,10717,3},{7343,10688,3},{7333,10680,3},{7330,10665,3}, {7332,10655,3},{7332,10628,3},{7328,10607,3},{7315,10602,3},{7310,10585,3}, {7300,10583,3},{7295,10570,3},{7290,10567,3},{7283,10535,3},{7280,10530,3}, {7278,10507,3},{7277,10507,3},{7277,10545,3},{7282,10567,3},{7287,10577,3}, {7288,10595,3},{7295,10600,3},{7297,10628,3},{7298,10622,3},{7310,10617,3}, {7313,10620,3},{7315,10627,3},{7318,10635,3},{7313,10680,3},{7315,10692,3}, {7318,10703,3},{7317,10773,3},{7318,10783,3},{7322,10795,3},{7325,10810,3}, {7322,10822,3},{7322,10835,3},{7327,10838,3},{7327,10820,3},{7330,10823,3}, {7332,10858,3},{7333,10872,3},{7335,10893,3},{7338,10915,3},{7342,10927,3}, {7345,10920,3},{7347,10922,3},{7342,10942,3},{7345,10943,3},{7348,10932,3}, {7352,10918,3},{7355,10917,3},{7355,10922,3},{7345,10950,3},{7345,10960,3}, {7347,10982,3},{7350,11002,3},{7350,11010,3},{7355,11015,3},{7355,11008,3}, {7358,11012,3},{7360,11042,3},{7363,11040,3},{7365,11047,3},{7365,11062,3}, {7367,11067,3},{7368,11088,3},{7370,11092,3},{7373,11088,3},{7377,11092,3}, {7378,11065,3},{7375,11060,3},{7375,11048,3},{7370,11027,3},{7370,10980,3}, {7368,10975,3},{7367,10975,3},{7368,10965,3},{7375,10953,3},{7382,10952,3}, {7383,10957,3},{7388,10983,3},{7397,10988,3},{7402,11007,3},{7402,11020,3}, {7400,11057,3},{7395,11072,3},{7395,11078,3},{7392,11090,3},{7390,11100,3}, {7395,11110,3},{7398,11107,3},{7402,11110,3},{7403,11120,3},{7405,11145,3}, {7403,11157,3},{7400,11153,3},{7400,11145,3},{7398,11138,3},{7400,11127,3}, {7398,11120,3},{7387,11130,3},{7377,11165,3},{7372,11202,3},{7370,11225,3}, {7372,11248,3},{7373,11278,3},{7380,11295,3},{7388,11293,3},{7395,11282,3}, {7400,11282,3},{7392,11298,3},{7388,11313,3},{7368,11340,3},{7360,11343,3}, {7358,11340,3},{7357,11328,3},{7345,11313,3},{7342,11322,3},{7337,11327,3}, {7333,11350,3},{7317,11348,3},{7310,11352,3},{7300,11345,3},{7295,11348,3}, {7288,11330,3},{7287,11313,3},{7283,11308,3},{7272,11320,3},{7268,11330,3}, {7262,11362,3},{7260,11408,3},{7262,11397,3},{7263,11372,3},{7268,11335,3}, {7273,11322,3},{7285,11315,3},{7288,11337,3},{7297,11353,3},{7302,11352,3}, {7310,11360,3},{7317,11353,3},{7325,11357,3},{7328,11365,3},{7332,11370,3}, {7332,11385,3},{7333,11403,3},{7335,11397,3},{7335,11385,3},{7335,11377,3}, {7343,11353,3},{7350,11348,3},{7353,11385,3},{7358,11410,3},{7358,11453,3}, {7360,11487,3},{7368,11517,3},{7370,11543,3},{7370,11582,3},{7367,11613,3}, {7367,11658,3},{7358,11725,3},{7358,11772,3},{7358,11795,3},{7357,11863,3}, {7355,11883,3},{7348,11900,3},{7345,11892,3},{7347,11873,3},{7345,11868,3}, {7348,11858,3},{7348,11848,3},{7342,11835,3},{7338,11837,3},{7337,11843,3}, {7333,11837,3},{7328,11835,3},{7323,11840,3},{7320,11848,3},{7310,11898,3}, {7307,11925,3},{7307,11953,3},{7300,11958,3},{7300,11967,3},{7293,11982,3}, {7290,12027,3},{7287,12055,3},{7288,12057,3},{7290,12043,3},{7293,12017,3}, {7295,11990,3},{7297,11982,3},{7300,11975,3},{7302,11982,3},{7298,12058,3}, {7297,12070,3},{7293,12103,3},{7297,12138,3},{7297,12168,3},{7295,12175,3}, {7297,12178,3},{7297,12187,3},{7295,12197,3},{7292,12192,3},{7288,12205,3}, {7287,12242,3},{7282,12265,3},{7278,12305,3},{7273,12335,3},{7272,12347,3}, {7275,12367,3},{7275,12378,3},{7272,12412,3},{7263,12435,3},{7263,12473,3}, {7258,12480,3},{7253,12513,3},{7245,12525,3},{7242,12545,3},{7235,12562,3}, {7233,12570,3},{7233,12588,3},{7227,12612,3},{7228,12625,3},{7235,12637,3}, {7223,12658,3},{7218,12658,3},{7213,12675,3},{7202,12680,3},{7185,12713,3}, {7177,12708,3},{7158,12720,3},{7140,12722,3},{7138,12728,3},{7148,12732,3}, {7175,12718,3},{7183,12723,3},{7190,12733,3},{7197,12722,3},{7200,12705,3}, {7207,12697,3},{7228,12690,3},{7238,12672,3},{7240,12672,3},{7240,12695,3}, {7240,12718,3},{7235,12745,3},{7235,12767,3},{7225,12785,3},{7225,12775,3}, {7223,12775,3},{7223,12787,3},{7218,12807,3},{7202,12843,3},{7197,12843,3}, {7190,12853,3},{7188,12862,3},{7178,12865,3},{7173,12895,3},{7180,12918,3}, {7200,12902,3},{7202,12907,3},{7187,12930,3},{7180,12930,3},{7172,12953,3}, {7172,12952,3},{7173,12943,3},{7177,12930,3},{7172,12912,3},{7170,12890,3}, {7165,12882,3},{7160,12885,3},{7160,12890,3},{7160,12910,3},{7158,12918,3}, {7153,12925,3},{7150,12923,3},{7147,12932,3},{7133,12938,3},{7128,12952,3}, {7127,12965,3},{7122,12970,3},{7113,12975,3},{7112,12973,3},{7108,12963,3}, {7110,12988,3},{7108,12993,3},{7105,12993,3},{7108,13007,3},{7098,13022,3}, {7097,13017,3},{7093,13032,3},{7093,13047,3},{7088,13050,3},{7087,13063,3}, {7088,13070,3},{7095,13072,3},{7097,13080,3},{7083,13090,3},{7077,13088,3}, {7075,13092,3},{7073,13102,3},{7075,13122,3},{7088,13153,3},{7110,13177,3}, {7113,13175,3},{7115,13187,3},{7117,13187,3},{7118,13182,3},{7120,13185,3}, {7123,13200,3},{7122,13218,3},{7123,13212,3},{7125,13195,3},{7130,13195,3}, {7168,13227,3},{7188,13253,3},{7195,13273,3},{7183,13277,3},{7177,13272,3}, {7173,13292,3},{7157,13317,3},{7147,13353,3},{7138,13407,3},{7137,13445,3}, {7140,13462,3},{7137,13475,3},{7130,13465,3},{7127,13467,3},{7135,13477,3}, {7142,13470,3},{7142,13477,3},{7148,13482,3},{7153,13502,3},{7153,13507,3}, {7150,13512,3},{7153,13517,3},{7155,13523,3},{7153,13532,3},{7153,13542,3}, {7157,13533,3},{7157,13537,3},{7162,13558,3},{7163,13587,3},{7162,13613,3}, {7158,13625,3},{7157,13648,3},{7152,13652,3},{7150,13657,3},{7147,13655,3}, {7152,13662,3},{7153,13672,3},{7150,13682,3},{7147,13688,3},{7145,13697,3}, {7142,13707,3},{7140,13723,3},{7137,13727,3},{7137,13723,3},{7135,13728,3}, {7137,13740,3},{7137,13735,3},{7135,13738,3},{7135,13748,3},{7132,13745,3}, {7128,13748,3},{7128,13742,3},{7127,13750,3},{7123,13755,3},{7128,13770,3}, {7125,13767,3},{7125,13773,3},{7122,13767,3},{7122,13757,3},{7120,13753,3}, {7118,13772,3},{7112,13780,3},{7112,13785,3},{7115,13792,3},{7113,13797,3}, {7112,13795,3},{7110,13798,3},{7113,13807,3},{7118,13802,3},{7120,13790,3}, {7118,13785,3},{7120,13785,3},{7122,13775,3},{7123,13775,3},{7125,13783,3}, {7122,13793,3},{7122,13805,3},{7123,13808,3},{7123,13817,3},{7127,13823,3}, {7130,13800,3},{7132,13808,3},{7132,13837,3},{7133,13832,3},{7135,13805,3}, {7133,13800,3},{7137,13793,3},{7138,13795,3},{7137,13788,3},{7138,13783,3}, {7140,13788,3},{7145,13798,3},{7157,13807,3},{7162,13848,3},{7158,13840,3}, {7157,13840,3},{7155,13843,3},{7153,13847,3},{7155,13858,3},{7158,13860,3}, {7160,13855,3},{7165,13872,3},{7158,13892,3},{7157,13905,3},{7147,13912,3}, {7145,13915,3},{7143,13912,3},{7142,13922,3},{7142,13935,3},{7147,13938,3}, {7150,13945,3},{7148,13963,3},{7147,13968,3},{7145,13972,3},{7148,13985,3}, {7147,14003,3},{7150,13998,3},{7153,14000,3},{7158,13983,3},{7167,13973,3}, {7178,13968,3},{7185,13975,3},{7185,13980,3},{7187,13970,3},{7192,13962,3}, {7195,13933,3},{7195,13963,3},{7200,13972,3},{7207,13972,3},{7217,13987,3}, {7217,13995,3},{7213,14007,3},{7217,14020,3},{7220,14020,3},{7223,14003,3}, {7223,13957,3},{7218,13943,3},{7217,13955,3},{7217,13937,3},{7218,13925,3}, {7215,13927,3},{7213,13935,3},{7213,13933,3},{7217,13918,3},{7223,13908,3}, {7233,13917,3},{7242,13933,3},{7242,13938,3},{7250,13953,3},{7250,13978,3}, {7248,13998,3},{7247,14010,3},{7248,14040,3},{7250,14067,3},{7253,14077,3}, {7253,14087,3},{7257,14093,3},{7258,14110,3},{7258,14095,3},{7268,14102,3}, {7278,14075,3},{7280,14067,3},{7287,14058,3},{7290,14065,3},{7285,14135,3}, {7277,14157,3},{7273,14187,3},{7270,14242,3},{7270,14260,3},{7268,14305,3}, {7268,14355,3},{7265,14382,3},{7265,14413,3},{7263,14440,3},{7260,14467,3}, {7257,14537,3},{7250,14582,3},{7245,14620,3},{7240,14652,3},{7235,14685,3}, {7233,14675,3},{7235,14647,3},{7233,14632,3},{7235,14545,3},{7233,14535,3}, {7240,14525,3},{7242,14517,3},{7240,14508,3},{7243,14497,3},{7240,14477,3}, {7227,14458,3},{7222,14452,3},{7228,14440,3},{7230,14428,3},{7227,14423,3}, {7227,14420,3},{7227,14410,3},{7222,14418,3},{7217,14440,3},{7217,14453,3}, {7218,14463,3},{7223,14475,3},{7223,14490,3},{7227,14508,3},{7230,14605,3}, {7232,14693,3},{7225,14687,3},{7203,14643,3},{7187,14602,3},{7185,14595,3}, {7193,14600,3},{7203,14598,3},{7203,14610,3},{7213,14633,3},{7215,14623,3}, {7217,14625,3},{7217,14620,3},{7217,14607,3},{7212,14607,3},{7207,14598,3}, {7210,14593,3},{7215,14595,3},{7215,14585,3},{7218,14583,3},{7220,14590,3}, {7223,14577,3},{7225,14562,3},{7222,14568,3},{7222,14575,3},{7208,14562,3}, {7202,14568,3},{7203,14575,3},{7202,14580,3},{7193,14580,3},{7192,14575,3}, {7192,14558,3},{7187,14535,3},{7192,14520,3},{7193,14508,3},{7197,14498,3}, {7192,14497,3},{7188,14505,3},{7185,14522,3},{7183,14522,3},{7178,14507,3}, {7178,14488,3},{7173,14492,3},{7167,14488,3},{7170,14497,3},{7167,14502,3}, {7170,14508,3},{7168,14525,3},{7165,14532,3},{7173,14555,3},{7172,14575,3}, {7177,14593,3},{7178,14607,3},{7187,14625,3},{7190,14635,3},{7208,14663,3}, {7232,14713,3},{7233,14748,3},{7232,14827,3},{7230,14850,3},{7227,14872,3}, {7222,14918,3},{7217,14953,3},{7212,14972,3},{7195,15002,3},{7188,15007,3}, {7183,14998,3},{7182,14987,3},{7177,14972,3},{7177,14963,3},{7182,14957,3}, {7190,14937,3},{7188,14928,3},{7187,14932,3},{7185,14930,3},{7182,14920,3}, {7177,14915,3},{7177,14910,3},{7182,14883,3},{7177,14888,3},{7175,14903,3}, {7170,14898,3},{7170,14885,3},{7167,14882,3},{7167,14900,3},{7170,14910,3}, {7167,14943,3},{7165,14968,3},{7167,14997,3},{7158,15010,3},{7157,15000,3}, {7160,15002,3},{7160,14997,3},{7157,14993,3},{7153,14997,3},{7150,14988,3}, {7147,14987,3},{7150,15005,3},{7152,15027,3},{7150,15032,3},{7152,15043,3}, {7150,15047,3},{7152,15055,3},{7150,15065,3},{7145,15065,3},{7140,15055,3}, {7133,15052,3},{7132,15033,3},{7128,15030,3},{7127,15018,3},{7122,15002,3}, {7120,15002,3},{7122,15015,3},{7127,15028,3},{7127,15038,3},{7133,15057,3}, {7138,15063,3},{7138,15073,3},{7137,15067,3},{7127,15060,3},{7133,15078,3}, {7137,15087,3},{7140,15103,3},{7137,15117,3},{7135,15145,3},{7130,15163,3}, {7125,15173,3},{7118,15177,3},{7100,15213,3},{7098,15213,3},{7098,15207,3}, {7097,15192,3},{7098,15165,3},{7098,15167,3},{7093,15203,3},{7088,15222,3}, {7085,15253,3},{7078,15253,3},{7083,15258,3},{7083,15275,3},{7083,15308,3}, {7085,15312,3},{7085,15332,3},{7087,15333,3},{7088,15345,3},{7087,15347,3}, {7088,15362,3},{7085,15365,3},{7093,15417,3},{7097,15423,3},{7097,15442,3}, {7103,15500,3},{7105,15550,3},{7100,15550,3},{7097,15553,3},{7107,15560,3}, {7110,15593,3},{7108,15655,3},{7110,15682,3},{7105,15797,3},{7095,15858,3}, {7082,15925,3},{7067,15967,3},{7062,15978,3},{7042,16003,3},{7028,16010,3}, {7023,16008,3},{7020,16000,3},{7013,15995,3},{7012,15993,3},{7013,15968,3}, {7010,15983,3},{7010,15992,3},{7003,15985,3},{7000,15987,3},{6995,15975,3}, {6990,15968,3},{6983,15977,3},{6983,15973,3},{6980,15980,3},{6973,15973,3}, {6980,15987,3},{6970,16018,3},{6972,16013,3},{6973,16017,3},{6970,16030,3}, {6965,16032,3},{6968,16038,3},{6968,16057,3},{6965,16080,3},{6963,16087,3}, {6963,16092,3},{6958,16100,3},{6947,16092,3},{6930,16102,3},{6923,16100,3}, {6917,16105,3},{6910,16097,3},{6907,16103,3},{6905,16125,3},{6898,16142,3}, {6892,16138,3},{6878,16122,3},{6868,16122,3},{6857,16107,3},{6855,16100,3}, {6857,16075,3},{6853,16080,3},{6852,16095,3},{6853,16105,3},{6855,16113,3}, {6868,16128,3},{6870,16133,3},{6873,16130,3},{6880,16132,3},{6892,16158,3}, {6902,16157,3},{6907,16150,3},{6917,16147,3},{6922,16138,3},{6928,16147,3}, {6933,16142,3},{6933,16147,3},{6935,16148,3},{6938,16143,3},{6942,16160,3}, {6948,16168,3},{6950,16177,3},{6953,16182,3},{6952,16192,3},{6953,16200,3}, {6958,16202,3},{6962,16220,3},{6963,16217,3},{6965,16220,3},{6965,16230,3}, {6970,16233,3},{6967,16243,3},{6968,16260,3},{6965,16272,3},{6965,16283,3}, {6972,16322,3},{6968,16360,3},{6970,16375,3},{6977,16402,3},{6975,16410,3}, {6972,16415,3},{6963,16438,3},{6960,16453,3},{6958,16475,3},{6958,16563,3}, {6957,16583,3},{6952,16613,3},{6952,16665,3},{6952,16670,3},{6950,16668,3}, {6948,16687,3},{6957,16717,3},{6975,16765,3},{6978,16778,3},{6972,16792,3}, {6972,16807,3},{6965,16792,3},{6955,16825,3},{6938,16820,3},{6928,16823,3}, {6923,16828,3},{6922,16842,3},{6920,16873,3},{6910,16913,3},{6910,16925,3}, {6908,16937,3},{6898,16943,3},{6883,16945,3},{6878,16958,3},{6878,16978,3}, {6882,17035,3},{6880,17050,3},{6875,17062,3},{6880,17053,3},{6882,17057,3}, {6883,17043,3},{6887,17045,3},{6892,17067,3},{6880,17070,3},{6883,17073,3}, {6893,17068,3},{6898,17090,3},{6903,17095,3},{6905,17098,3},{6902,17105,3}, {6903,17117,3},{6905,17103,3},{6915,17097,3},{6917,17088,3},{6923,17093,3}, {6930,17092,3},{6938,17075,3},{6945,17073,3},{6947,17068,3},{6953,17067,3}, {6960,17058,3},{6960,17047,3},{6958,17025,3},{6960,17017,3},{6962,17012,3}, {6967,17015,3},{6973,17028,3},{6975,17050,3},{6978,17057,3},{6980,17055,3}, {6988,17057,3},{6993,17052,3},{7007,17057,3},{7010,17053,3},{7012,17040,3}, {7013,17047,3},{7010,17080,3},{7007,17138,3},{7000,17193,3},{6998,17215,3}, {6997,17250,3},{6998,17273,3},{6990,17283,3},{6987,17303,3},{6985,17317,3}, {6982,17322,3},{6978,17317,3},{6978,17322,3},{6978,17337,3},{6982,17347,3}, {6985,17347,3},{6987,17340,3},{6992,17327,3},{6990,17320,3},{6988,17317,3}, {6990,17317,3},{6993,17322,3},{6995,17347,3},{6988,17370,3},{6987,17368,3}, {6983,17375,3},{6988,17377,3},{6985,17390,3},{6988,17403,3},{6988,17432,3}, {6987,17445,3},{6985,17505,3},{6988,17538,3},{6987,17515,3},{6985,17515,3}, {6985,17530,3},{6985,17543,3},{6988,17552,3},{6990,17572,3},{6988,17583,3}, {6988,17612,3},{6980,17628,3},{6978,17623,3},{6975,17650,3},{6967,17673,3}, {6963,17703,3},{6960,17745,3},{6955,17768,3},{6955,17760,3},{6953,17765,3}, {6953,17773,3},{6950,17790,3},{6947,17808,3},{6943,17823,3},{6947,17830,3}, {6947,17825,3},{6948,17833,3},{6947,17848,3},{6935,17900,3},{6932,17907,3}, {6932,17888,3},{6935,17885,3},{6937,17868,3},{6938,17867,3},{6930,17867,3}, {6928,17872,3},{6930,17888,3},{6928,17900,3},{6930,17907,3},{6927,17928,3}, {6922,17935,3},{6900,17995,3},{6900,17983,3},{6912,17957,3},{6908,17958,3}, {6907,17965,3},{6902,17967,3},{6898,17975,3},{6898,18000,3},{6892,47559,3}, {6890,47578,3},{6892,47584,3},{6895,47581,3},{6895,47584,3},{6890,47593,3}, {6887,47603,3},{6885,47601,3},{6885,47594,3},{6882,47596,3},{6882,47614,3}, {6878,47619,3},{6877,47644,3},{6858,47688,3},{6860,47679,3},{6867,47661,3}, {6853,47663,3},{6850,47693,3},{6848,47698,3},{6848,47711,3},{6843,47733,3}, {6833,47741,3},{6827,47728,3},{6825,47729,3},{6825,47739,3},{6828,47741,3}, {6833,47766,3},{6853,47701,3},{6855,47698,3},{6840,47753,3},{6830,47781,3}, {6828,47789,3},{6830,47776,3},{6828,47773,3},{6825,47759,3},{6822,47768,3}, {6822,47774,3},{6818,47773,3},{6822,47781,3},{6825,47799,3},{6820,47819,3}, {6820,47809,3},{6817,47813,3},{6815,47811,3},{6813,47819,3},{6817,47829,3}, {6790,47921,3},{6783,47946,3},{6768,47996,3},{6767,48006,3},{6765,48006,3}, {6765,47999,3},{6755,48009,3},{6753,48019,3},{6750,48023,3},{6752,48009,3}, {6750,48014,3},{6745,48014,3},{6735,47998,3},{6735,48016,3},{6737,48026,3}, {6745,48031,3},{6748,48028,3},{6742,48043,3},{6742,48041,3},{6740,48043,3}, {6738,48049,3},{6738,48053,3},{6730,48058,3},{6728,48056,3},{6732,48053,3}, {6728,48046,3},{6710,48041,3},{6698,48044,3},{6693,48056,3},{6693,48063,3}, {6690,48056,3},{6687,48059,3},{6673,48061,3},{6675,48059,3},{6675,48049,3}, {6672,48048,3},{6670,48041,3},{6668,48041,3},{6667,48036,3},{6662,48046,3}, {6658,48071,3},{6653,48088,3},{6645,48094,3},{6647,48088,3},{6645,48084,3}, {6638,48086,3},{6635,48094,3},{6633,48086,3},{6630,48089,3},{6630,48093,3}, {6632,48101,3},{6635,48096,3},{6640,48104,3},{6642,48114,3},{6647,48109,3}, {6647,48116,3},{6648,48121,3},{6648,48134,3},{6645,48138,3},{6640,48131,3}, {6635,48138,3},{6632,48129,3},{6625,48128,3},{6622,48134,3},{6627,48138,3}, {6632,48151,3},{6633,48143,3},{6635,48153,3},{6637,48158,3},{6645,48161,3}, {6648,48148,3},{6652,48144,3},{6655,48114,3},{6658,48106,3},{6668,48134,3}, {6667,48138,3},{6668,48141,3},{6670,48136,3},{6685,48134,3},{6690,48128,3}, {6693,48128,3},{6698,48124,3},{6698,48106,3},{6700,48104,3},{6702,48111,3}, {6705,48108,3},{6703,48083,3},{6705,48079,3},{6707,48093,3},{6708,48094,3}, {6705,48074,3},{6707,48071,3},{6708,48074,3},{6710,48098,3},{6708,48153,3}, {6710,48161,3},{6713,48168,3},{6710,48184,3},{6708,48186,3},{6705,48183,3}, {6703,48184,3},{6703,48189,3},{6708,48193,3},{6705,48223,3},{6705,48213,3}, {6707,48206,3},{6703,48206,3},{6702,48218,3},{6700,48214,3},{6700,48206,3}, {6697,48201,3},{6695,48201,3},{6692,48203,3},{6692,48199,3},{6688,48203,3}, {6687,48199,3},{6683,48199,3},{6683,48214,3},{6687,48221,3},{6688,48214,3}, {6692,48216,3},{6692,48208,3},{6695,48214,3},{6698,48214,3},{6700,48224,3}, {6695,48228,3},{6693,48233,3},{6690,48258,3},{6693,48271,3},{6692,48278,3}, {6693,48293,3},{6697,48281,3},{6703,48231,3},{6705,48229,3},{6705,48231,3}, {6702,48274,3},{6700,48286,3},{6702,48258,3},{6697,48303,3},{6695,48331,3}, {6698,48341,3},{6695,48344,3},{6695,48363,3},{6693,48368,3},{6685,48366,3}, {6680,48376,3},{6677,48394,3},{6675,48396,3},{6672,48393,3},{6665,48403,3}, {6657,48426,3},{6652,48448,3},{6645,48463,3},{6635,48478,3},{6632,48494,3}, {6630,48479,3},{6628,48481,3},{6623,48471,3},{6623,48481,3},{6630,48491,3}, {6630,48504,3},{6620,48523,3},{6618,48518,3},{6620,48506,3},{6618,48503,3}, {6615,48513,3},{6615,48518,3},{6617,48521,3},{6613,48543,3},{6617,48544,3}, {6618,48533,3},{6613,48564,3},{6607,48568,3},{6600,48558,3},{6598,48554,3}, {6602,48543,3},{6603,48536,3},{6602,48524,3},{6585,48474,3},{6585,48481,3}, {6583,48484,3},{6577,48479,3},{6573,48483,3},{6567,48483,3},{6562,48478,3}, {6560,48468,3},{6562,48448,3},{6565,48446,3},{6568,48428,3},{6570,48416,3}, {6577,48409,3},{6582,48394,3},{6583,48383,3},{6582,48388,3},{6575,48393,3}, {6573,48404,3},{6572,48399,3},{6567,48408,3},{6563,48423,3},{6560,48429,3}, {6560,48434,3},{6548,48431,3},{6548,48419,3},{6553,48396,3},{6548,48329,3}, {6550,48343,3},{6552,48354,3},{6553,48353,3},{6553,48333,3},{6555,48329,3}, {6557,48324,3},{6553,48313,3},{6555,48303,3},{6558,48308,3},{6563,48299,3}, {6567,48301,3},{6567,48294,3},{6568,48279,3},{6568,48274,3},{6570,48271,3}, {6568,48256,3},{6570,48251,3},{6567,48256,3},{6567,48269,3},{6563,48268,3}, {6562,48269,3},{6560,48296,3},{6553,48293,3},{6548,48303,3},{6547,48289,3}, {6542,48296,3},{6543,48308,3},{6550,48321,3},{6535,48311,3},{6525,48311,3}, {6523,48311,3},{6527,48308,3},{6527,48298,3},{6525,48283,3},{6523,48278,3}, {6527,48274,3},{6527,48269,3},{6525,48266,3},{6523,48268,3},{6522,48274,3}, {6522,48306,3},{6520,48311,3},{6513,48318,3},{6513,48311,3},{6508,48316,3}, {6510,48323,3},{6508,48323,3},{6492,48289,3},{6492,48286,3},{6492,48283,3}, {6490,48276,3},{6488,48266,3},{6487,48261,3},{6485,48256,3},{6488,48241,3}, {6487,48231,3},{6485,48228,3},{6482,48226,3},{6478,48216,3},{6478,48219,3}, {6485,48239,3},{6478,48258,3},{6477,48258,3},{6473,48249,3},{6472,48249,3}, {6472,48239,3},{6467,48228,3},{6467,48231,3},{6468,48246,3},{6467,48249,3}, {6462,48241,3},{6458,48234,3},{6458,48241,3},{6462,48248,3},{6463,48258,3}, {6460,48263,3},{6458,48269,3},{6457,48281,3},{6455,48289,3},{6450,48293,3}, {6443,48308,3},{6442,48291,3},{6440,48286,3},{6438,48273,3},{6442,48263,3}, {6442,48256,3},{6447,48259,3},{6450,48254,3},{6452,48253,3},{6452,48243,3}, {6450,48241,3},{6450,48234,3},{6447,48229,3},{6447,48244,3},{6445,48248,3}, {6442,48246,3},{6433,48246,3},{6432,48239,3},{6428,48236,3},{6425,48218,3}, {6432,48193,3},{6437,48194,3},{6445,48209,3},{6445,48204,3},{6452,48208,3}, {6455,48201,3},{6458,48203,3},{6458,48198,3},{6462,48194,3},{6450,48201,3}, {6447,48199,3},{6440,48189,3},{6435,48178,3},{6435,48168,3},{6442,48131,3}, {6455,48124,3},{6463,48101,3},{6465,48108,3},{6467,48108,3},{6467,48091,3}, {6478,48051,3},{6482,48036,3},{6485,48038,3},{6487,48034,3},{6478,48034,3}, {6478,48023,3},{6478,47996,3},{6478,47988,3},{6482,47984,3},{6483,47994,3}, {6485,47994,3},{6485,47983,3},{6488,47979,3},{6492,47973,3},{6495,47954,3}, {6502,47944,3},{6507,47954,3},{6517,47958,3},{6528,47944,3},{6530,47948,3}, {6535,47943,3},{6540,47943,3},{6548,47926,3},{6548,47918,3},{6548,47903,3}, {6555,47879,3},{6562,47829,3},{6558,47814,3},{6550,47796,3},{6548,47786,3}, {6548,47766,3},{6548,47716,3},{6548,47699,3},{6552,47681,3},{6555,47679,3}, {6557,47684,3},{6562,47683,3},{6563,47688,3},{6573,47689,3},{6575,47684,3}, {6575,47674,3},{6577,47671,3},{6578,47673,3},{6578,47668,3},{6585,47658,3}, {6588,47649,3},{6592,47646,3},{6593,47649,3},{6605,47638,3},{6598,47658,3}, {6602,47666,3},{6612,47669,3},{6612,47676,3},{6617,47681,3},{6618,47679,3}, {6623,47684,3},{6627,47683,3},{6630,47686,3},{6640,47686,3},{6640,47683,3}, {6637,47679,3},{6637,47678,3},{6637,47673,3},{6632,47671,3},{6620,47658,3}, {6617,47639,3},{6620,47629,3},{6625,47624,3},{6630,47628,3},{6638,47624,3}, {6642,47618,3},{6635,47618,3},{6628,47618,3},{6630,47606,3},{6632,47603,3}, {6635,47594,3},{6618,47611,3},{6613,47598,3},{6612,47573,3},{6613,47568,3}, {6613,47578,3},{6615,47578,3},{6618,47566,3},{6612,47559,3},{6595,47554,3}, {6580,47561,3},{6563,47603,3},{6560,47599,3},{6553,47604,3},{6543,47583,3}, {6527,47579,3},{6517,47566,3},{6515,47554,3},{6507,18000,3},{6502,17980,3}, {6493,17968,3},{6482,17948,3},{6482,17945,3},{6482,17942,3},{6480,17925,3}, {6478,17915,3},{6460,17862,3},{6458,17850,3},{6462,17850,3},{6463,17870,3}, {6467,17875,3},{6470,17873,3},{6465,17825,3},{6465,17827,3},{6468,17825,3}, {6468,17808,3},{6467,17800,3},{6470,17792,3},{6470,17778,3},{6472,17762,3}, {6475,17763,3},{6478,17755,3},{6478,17748,3},{6482,17750,3},{6482,17742,3}, {6483,17738,3},{6485,17748,3},{6492,17743,3},{6493,17725,3},{6502,17717,3}, {6508,17690,3},{6502,17658,3},{6508,17642,3},{6508,17638,3},{6505,17638,3}, {6505,17630,3},{6503,17633,3},{6503,17643,3},{6500,17650,3},{6500,17657,3}, {6500,17670,3},{6503,17682,3},{6505,17688,3},{6503,17697,3},{6500,17700,3}, {6498,17707,3},{6492,17722,3},{6488,17725,3},{6485,17722,3},{6483,17730,3}, {6482,17728,3},{6478,17718,3},{6477,17703,3},{6478,17700,3},{6480,17693,3}, {6485,17688,3},{6485,17678,3},{6487,17675,3},{6487,17663,3},{6482,17653,3}, {6480,17643,3},{6485,17640,3},{6492,17618,3},{6492,17608,3},{6495,17607,3}, {6490,17593,3},{6487,17593,3},{6483,17587,3},{6478,17572,3},{6478,17555,3}, {6477,17538,3},{6475,17532,3},{6477,17523,3},{6475,17515,3},{6477,17505,3}, {6468,17477,3},{6468,17470,3},{6468,17443,3},{6467,17452,3},{6467,17465,3}, {6467,17477,3},{6473,17505,3},{6473,17528,3},{6475,17548,3},{6475,17570,3}, {6478,17583,3},{6490,17603,3},{6487,17620,3},{6483,17623,3},{6482,17628,3}, {6477,17630,3},{6472,17642,3},{6465,17632,3},{6463,17615,3},{6453,17612,3}, {6457,17613,3},{6462,17622,3},{6462,17633,3},{6468,17645,3},{6468,17650,3}, {6462,17670,3},{6457,17673,3},{6460,17683,3},{6463,17685,3},{6470,17698,3}, {6472,17715,3},{6478,17733,3},{6475,17748,3},{6465,17745,3},{6455,17737,3}, {6443,17742,3},{6430,17767,3},{6425,17782,3},{6422,17795,3},{6420,17810,3}, {6420,17818,3},{6423,17810,3},{6425,17808,3},{6428,17820,3},{6435,17828,3}, {6442,17823,3},{6443,17820,3},{6440,17818,3},{6445,17818,3},{6427,17837,3}, {6417,17843,3},{6403,17858,3},{6407,17852,3},{6407,17847,3},{6403,17840,3}, {6400,17838,3},{6398,17848,3},{6397,17838,3},{6397,17842,3},{6397,17853,3}, {6395,17858,3},{6395,17865,3},{6400,17863,3},{6390,17870,3},{6363,17877,3}, {6365,17872,3},{6367,17860,3},{6362,17865,3},{6362,17872,3},{6360,17872,3}, {6358,17863,3},{6362,17862,3},{6363,17852,3},{6362,17853,3},{6358,17850,3}, {6360,17847,3},{6362,17847,3},{6363,17835,3},{6358,17827,3},{6357,17827,3}, {6352,17837,3},{6352,17840,3},{6357,17847,3},{6358,17852,3},{6357,17867,3}, {6357,17872,3},{6348,17872,3},{6345,17865,3},{6343,17863,3},{6342,17858,3}, {6338,17868,3},{6340,17877,3},{6343,17883,3},{6353,17875,3},{6358,17875,3}, {6358,17878,3},{6350,17880,3},{6332,17900,3},{6340,17883,3},{6338,17880,3}, {6335,17882,3},{6333,17883,3},{6333,17890,3},{6330,17893,3},{6328,17905,3}, {6323,17913,3},{6323,17920,3},{6322,17927,3},{6315,17942,3},{6305,17940,3}, {6307,17937,3},{6305,17930,3},{6302,17925,3},{6300,17923,3},{6290,17932,3}, {6287,17950,3},{6275,17960,3},{6270,17960,3},{6267,17955,3},{6262,17957,3}, {6262,17943,3},{6253,17940,3},{6250,17935,3},{6250,17918,3},{6247,17910,3}, {6242,17915,3},{6233,17915,3},{6228,17910,3},{6228,17907,3},{6235,17897,3}, {6248,17828,3},{6255,17803,3},{6257,17772,3},{6258,17730,3},{6258,17733,3}, {6262,17727,3},{6268,17733,3},{6273,17732,3},{6277,17733,3},{6277,17740,3}, {6277,17743,3},{6278,17742,3},{6282,17745,3},{6280,17733,3},{6273,17725,3}, {6272,17727,3},{6270,17720,3},{6272,17713,3},{6278,17715,3},{6283,17703,3}, {6285,17703,3},{6287,17698,3},{6278,17700,3},{6277,17705,3},{6272,17697,3}, {6270,17693,3},{6267,17693,3},{6262,17702,3},{6258,17705,3},{6258,17717,3}, {6257,17727,3},{6253,17685,3},{6250,17668,3},{6252,17668,3},{6253,17672,3}, {6253,17668,3},{6248,17660,3},{6247,17660,3},{6247,17663,3},{6240,17642,3}, {6232,17628,3},{6223,17580,3},{6217,17553,3},{6207,17530,3},{6212,17540,3}, {6210,17530,3},{6217,17527,3},{6205,17525,3},{6202,17517,3},{6193,17482,3}, {6192,17477,3},{6193,17480,3},{6195,17478,3},{6195,17470,3},{6198,17460,3}, {6195,17462,3},{6188,17473,3},{6187,17470,3},{6183,17460,3},{6180,17445,3}, {6182,17437,3},{6183,17438,3},{6185,17435,3},{6180,17428,3},{6182,17418,3}, {6180,17415,3},{6182,17420,3},{6182,17418,3},{6183,17407,3},{6183,17408,3}, {6182,17400,3},{6178,17403,3},{6178,17410,3},{6175,17402,3},{6172,17398,3}, {6170,17392,3},{6165,17380,3},{6168,17382,3},{6170,17370,3},{6175,17362,3}, {6175,17357,3},{6165,17347,3},{6155,17348,3},{6155,17335,3},{6152,17328,3}, {6147,17330,3},{6143,17322,3},{6138,17308,3},{6142,17298,3},{6145,17295,3}, {6145,17292,3},{6147,17288,3},{6143,17272,3},{6137,17290,3},{6130,17295,3}, {6128,17285,3},{6133,17267,3},{6127,17277,3},{6123,17267,3},{6120,17265,3}, {6118,17255,3},{6123,17235,3},{6117,17237,3},{6113,17243,3},{6112,17232,3}, {6113,17225,3},{6110,17230,3},{6110,17238,3},{6108,17242,3},{6107,17243,3}, {6108,17248,3},{6105,17248,3},{6102,17238,3},{6102,17228,3},{6102,17222,3}, {6107,17215,3},{6110,17202,3},{6103,17212,3},{6102,17217,3},{6097,17220,3}, {6095,17218,3},{6093,17212,3},{6087,17207,3},{6085,17202,3},{6088,17198,3}, {6092,17200,3},{6095,17195,3},{6085,17195,3},{6083,17185,3},{6085,17173,3}, {6082,17167,3},{6080,17153,3},{6077,17162,3},{6075,17163,3},{6072,17148,3}, {6068,17142,3},{6073,17147,3},{6078,17140,3},{6072,17140,3},{6068,17137,3}, {6063,17137,3},{6055,17118,3},{6057,17108,3},{6053,17100,3},{6050,17085,3}, {6053,17075,3},{6050,17075,3},{6050,17080,3},{6045,17078,3},{6042,17065,3}, {6043,17062,3},{6045,17060,3},{6045,17052,3},{6043,17052,3},{6043,17058,3}, {6038,17062,3},{6037,17060,3},{6035,17065,3},{6033,17067,3},{6027,17050,3}, {6022,17047,3},{5997,17040,3},{5992,17025,3},{5998,17010,3},{6002,17012,3}, {6003,17008,3},{6007,16993,3},{6018,16983,3},{6022,16985,3},{6023,16997,3}, {6025,16988,3},{6023,16982,3},{6028,16975,3},{6042,16970,3},{6043,16960,3}, {6047,16957,3},{6047,16953,3},{6055,16925,3},{6057,16927,3},{6055,16933,3}, {6057,16937,3},{6062,16928,3},{6062,16922,3},{6058,16920,3},{6058,16913,3}, {6057,16915,3},{6057,16903,3},{6055,16892,3},{6057,16877,3},{6055,16867,3}, {6060,16848,3},{6060,16833,3},{6058,16818,3},{6053,16797,3},{6052,16782,3}, {6055,16777,3},{6053,16775,3},{6048,16777,3},{6047,16768,3},{6045,16762,3}, {6043,16753,3},{6047,16748,3},{6043,16747,3},{6042,16745,3},{6047,16733,3}, {6040,16737,3},{6042,16728,3},{6038,16730,3},{6037,16730,3},{6035,16718,3}, {6038,16712,3},{6042,16707,3},{6043,16702,3},{6032,16705,3},{6030,16690,3}, {6028,16693,3},{6025,16693,3},{6022,16683,3},{6000,16655,3},{5985,16630,3}, {5982,16612,3},{5983,16610,3},{5992,16610,3},{5997,16615,3},{6002,16613,3}, {6012,16617,3},{6017,16625,3},{6020,16628,3},{6025,16627,3},{6033,16627,3}, {6040,16623,3},{6038,16627,3},{6040,16633,3},{6045,16635,3},{6048,16640,3}, {6050,16638,3},{6047,16632,3},{6048,16630,3},{6048,16622,3},{6043,16600,3}, {6038,16592,3},{6037,16595,3},{6042,16605,3},{6045,16620,3},{6043,16605,3}, {6038,16598,3},{6033,16585,3},{6028,16577,3},{6025,16565,3},{6022,16552,3}, {6022,16545,3},{6025,16543,3},{6018,16543,3},{6013,16528,3},{6010,16525,3}, {6008,16520,3},{6013,16515,3},{6015,16518,3},{6017,16518,3},{6013,16512,3}, {6012,16505,3},{6013,16500,3},{6008,16500,3},{6007,16505,3},{6008,16507,3}, {6008,16512,3},{6003,16515,3},{5998,16522,3},{5997,16515,3},{5983,16500,3}, {5982,16492,3},{5978,16482,3},{5982,16477,3},{5985,16478,3},{5993,16473,3}, {6003,16460,3},{6008,16453,3},{6012,16445,3},{6007,16435,3},{6008,16432,3}, {6005,16432,3},{6002,16437,3},{6000,16435,3},{5998,16430,3},{5997,16417,3}, {5992,16410,3},{5985,16418,3},{5987,16405,3},{5990,16403,3},{5992,16410,3}, {6000,16420,3},{5998,16412,3},{6003,16403,3},{6003,16390,3},{6002,16385,3}, {6003,16387,3},{6005,16383,3},{6005,16382,3},{6005,16373,3},{6003,16363,3}, {6002,16362,3},{5998,16365,3},{5997,16368,3},{5997,16372,3},{5998,16380,3}, {5988,16368,3},{5990,16350,3},{5985,16345,3},{5982,16337,3},{5962,16338,3}, {5958,16333,3},{5958,16327,3},{5957,16317,3},{5955,16320,3},{5950,16317,3}, {5943,16330,3},{5938,16333,3},{5925,16328,3},{5925,16323,3},{5930,16328,3}, {5928,16320,3},{5930,16317,3},{5927,16308,3},{5923,16307,3},{5920,16308,3}, {5920,16307,3},{5918,16312,3},{5915,16318,3},{5905,16320,3},{5903,16315,3}, {5908,16317,3},{5912,16307,3},{5913,16307,3},{5917,16302,3},{5915,16298,3}, {5917,16295,3},{5913,16293,3},{5913,16288,3},{5903,16300,3},{5903,16305,3}, {5898,16303,3},{5895,16298,3},{5893,16285,3},{5895,16292,3},{5898,16288,3}, {5890,16280,3},{5887,16267,3},{5883,16272,3},{5887,16272,3},{5885,16277,3}, {5887,16278,3},{5883,16277,3},{5875,16252,3},{5867,16240,3},{5845,16213,3}, {5807,16193,3},{5803,16193,3},{5790,16203,3},{5785,16210,3},{5780,16225,3}, {5778,16243,3},{5773,16240,3},{5772,16233,3},{5768,16233,3},{5768,16237,3}, {5777,16248,3},{5787,16247,3},{5792,16250,3},{5795,16255,3},{5795,16265,3}, {5797,16270,3},{5793,16277,3},{5792,16285,3},{5785,16300,3},{5785,16320,3}, {5777,16327,3},{5775,16328,3},{5767,16320,3},{5763,16322,3},{5760,16320,3}, {5758,16312,3},{5748,16305,3},{5743,16285,3},{5735,16273,3},{5735,16277,3}, {5722,16275,3},{5705,16283,3},{5688,16278,3},{5678,16278,3},{5673,16285,3}, {5670,16292,3},{5673,16300,3},{5675,16308,3},{5673,16312,3},{5673,16322,3}, {5670,16325,3},{5663,16322,3},{5657,16325,3},{5655,16323,3},{5648,16327,3}, {5645,16323,3},{5638,16332,3},{5632,16333,3},{5630,16332,3},{5625,16333,3}, {5620,16335,3},{5612,16313,3},{5603,16305,3},{5602,16303,3},{5603,16288,3}, {5610,16275,3},{5615,16270,3},{5622,16258,3},{5622,16252,3},{5623,16260,3}, {5627,16267,3},{5635,16272,3},{5637,16285,3},{5640,16292,3},{5643,16293,3}, {5647,16307,3},{5652,16310,3},{5655,16298,3},{5652,16293,3},{5645,16293,3}, {5643,16290,3},{5648,16275,3},{5648,16270,3},{5648,16263,3},{5642,16257,3}, {5643,16252,3},{5640,16247,3},{5640,16240,3},{5638,16240,3},{5633,16248,3}, {5627,16257,3},{5623,16252,3},{5623,16248,3},{5620,16243,3},{5617,16222,3}, {5610,16210,3},{5607,16203,3},{5602,16205,3},{5595,16202,3},{5587,16193,3}, {5580,16192,3},{5572,16182,3},{5563,16175,3},{5548,16172,3},{5537,16172,3}, {5513,16182,3},{5512,16183,3},{5507,16188,3},{5502,16197,3},{5490,16207,3}, {5487,16215,3},{5483,16215,3},{5482,16210,3},{5477,16212,3},{5470,16200,3}, {5465,16198,3},{5458,16182,3},{5450,16173,3},{5452,16162,3},{5450,16152,3}, {5452,16147,3},{5448,16130,3},{5452,16123,3},{5455,16122,3},{5458,16118,3}, {5458,16112,3},{5455,16085,3},{5453,16072,3},{5452,16072,3},{5437,16040,3}, {5425,16025,3},{5420,16010,3},{5412,15998,3},{5407,15998,3},{5398,15990,3}, {5385,15985,3},{5375,15983,3},{5368,15987,3},{5365,15982,3},{5358,15992,3}, {5367,15987,3},{5367,15990,3},{5357,15997,3},{5352,15997,3},{5347,15993,3}, {5352,15985,3},{5353,15982,3},{5352,15980,3},{5350,15982,3},{5348,15980,3}, {5348,15985,3},{5340,15988,3},{5338,15993,3},{5333,15992,3},{5333,15997,3}, {5330,15997,3},{5327,15992,3},{5320,15997,3},{5327,15997,3},{5327,16002,3}, {5310,16005,3},{5310,15997,3},{5315,15993,3},{5322,15977,3},{5325,15978,3}, {5328,15982,3},{5327,15977,3},{5323,15972,3},{5327,15962,3},{5323,15948,3}, {5315,15938,3},{5317,15928,3},{5308,15903,3},{5302,15892,3},{5288,15872,3}, {5295,15867,3},{5298,15868,3},{5302,15863,3},{5305,15860,3},{5307,15853,3}, {5303,15850,3},{5302,15843,3},{5300,15842,3},{5297,15845,3},{5295,15842,3}, {5290,15845,3},{5292,15848,3},{5290,15853,3},{5293,15848,3},{5295,15852,3}, {5293,15863,3},{5290,15865,3},{5287,15860,3},{5285,15863,3},{5282,15858,3}, {5283,15855,3},{5278,15857,3},{5278,15850,3},{5275,15848,3},{5275,15850,3}, {5273,15857,3},{5272,15860,3},{5265,15857,3},{5262,15853,3},{5265,15842,3}, {5262,15845,3},{5260,15843,3},{5257,15852,3},{5252,15852,3},{5250,15850,3}, {5248,15853,3},{5247,15847,3},{5243,15847,3},{5242,15842,3},{5243,15853,3}, {5238,15857,3},{5235,15850,3},{5233,15855,3},{5230,15855,3},{5227,15852,3}, {5227,15842,3},{5223,15843,3},{5222,15838,3},{5218,15843,3},{5212,15837,3}, {5213,15833,3},{5212,15832,3},{5207,15833,3},{5203,15828,3},{5193,15828,3}, {5190,15818,3},{5180,15812,3},{5177,15802,3},{5172,15798,3},{5167,15792,3}, {5163,15792,3},{5163,15788,3},{5157,15777,3},{5155,15768,3},{5148,15753,3}, {5143,15748,3},{5140,15752,3},{5138,15747,3},{5135,15747,3},{5133,15735,3}, {5123,15725,3},{5120,15722,3},{5120,15715,3},{5107,15695,3},{5102,15682,3}, {5095,15678,3},{5088,15670,3},{5088,15665,3},{5098,15675,3},{5107,15675,3}, {5110,15670,3},{5118,15670,3},{5123,15667,3},{5125,15663,3},{5127,15657,3}, {5132,15652,3},{5142,15652,3},{5147,15648,3},{5152,15647,3},{5175,15650,3}, {5193,15650,3},{5228,15640,3},{5252,15628,3},{5250,15637,3},{5245,15637,3}, {5248,15643,3},{5252,15643,3},{5252,15635,3},{5255,15630,3},{5257,15627,3}, {5285,15610,3},{5292,15610,3},{5297,15610,3},{5302,15610,3},{5307,15608,3}, {5310,15608,3},{5317,15607,3},{5323,15605,3},{5328,15605,3},{5333,15603,3}, {5338,15602,3},{5345,15600,3},{5350,15600,3},{5355,15598,3},{5362,15597,3}, {5367,15597,3},{5372,15595,3},{5377,15595,3},{5383,15592,3},{5385,15593,3}, {5392,15590,3},{5397,15588,3},{5403,15588,3},{5408,15587,3},{5413,15585,3}, {5418,15580,3},{5423,15578,3},{5430,15577,3},{5435,15575,3},{5440,15573,3}, {5445,15572,3},{5452,15570,3},{5457,15568,3},{5462,15567,3},{5468,15567,3}, {5473,15565,3},{5478,15563,3},{5482,15565,3},{5492,15560,3},{5513,15557,3}, {5533,15555,3},{5557,15558,3},{5562,15562,3},{5592,15565,3},{5605,15568,3}, {5610,15572,3},{5610,15577,3},{5613,15573,3},{5660,15593,3},{5667,15595,3}, {5682,15612,3},{5685,15617,3},{5683,15617,3},{5677,15607,3},{5672,15607,3}, {5678,15613,3},{5682,15620,3},{5685,15620,3},{5695,15645,3},{5702,15652,3}, {5708,15653,3},{5710,15655,3},{5707,15665,3},{5703,15667,3},{5708,15672,3}, {5712,15670,3},{5743,15698,3},{5753,15698,3},{5765,15693,3},{5773,15685,3}, {5773,15675,3},{5780,15687,3},{5782,15690,3},{5785,15698,3},{5780,15707,3}, {5777,15717,3},{5777,15733,3},{5778,15743,3},{5782,15750,3},{5788,15757,3}, {5795,15758,3},{5798,15763,3},{5802,15765,3},{5802,15772,3},{5798,15780,3}, {5798,15792,3},{5798,15805,3},{5802,15822,3},{5800,15827,3},{5795,15833,3}, {5797,15835,3},{5800,15830,3},{5803,15828,3},{5803,15823,3},{5827,15867,3}, {5842,15903,3},{5845,15910,3},{5852,15915,3},{5847,15923,3},{5853,15918,3}, {5867,15940,3},{5868,15948,3},{5872,15950,3},{5880,15962,3},{5883,15962,3}, {5887,15972,3},{5895,15975,3},{5902,15973,3},{5905,15978,3},{5908,15978,3}, {5917,15990,3},{5923,16005,3},{5932,16020,3},{5935,16033,3},{5945,16045,3}, {5955,16048,3},{5962,16087,3},{5972,16097,3},{5977,16110,3},{5985,16125,3}, {6005,16147,3},{6007,16150,3},{6007,16158,3},{6010,16163,3},{6012,16172,3}, {6017,16182,3},{6025,16193,3},{6032,16192,3},{6033,16192,3},{6032,16187,3}, {6042,16192,3},{6048,16212,3},{6053,16220,3},{6055,16240,3},{6062,16250,3}, {6060,16262,3},{6065,16277,3},{6077,16288,3},{6078,16302,3},{6077,16308,3}, {6078,16312,3},{6080,16310,3},{6082,16318,3},{6082,16330,3},{6080,16330,3}, {6075,16327,3},{6072,16332,3},{6075,16330,3},{6083,16340,3},{6087,16357,3}, {6087,16370,3},{6093,16375,3},{6100,16352,3},{6100,16347,3},{6102,16347,3}, {6105,16352,3},{6107,16360,3},{6112,16360,3},{6115,16363,3},{6123,16393,3}, {6130,16395,3},{6133,16402,3},{6137,16402,3},{6143,16397,3},{6145,16385,3}, {6142,16378,3},{6145,16375,3},{6157,16383,3},{6163,16385,3},{6168,16402,3}, {6178,16407,3},{6183,16403,3},{6188,16407,3},{6198,16405,3},{6203,16410,3}, {6210,16407,3},{6215,16410,3},{6220,16408,3},{6227,16412,3},{6233,16423,3}, {6237,16440,3},{6242,16443,3},{6245,16452,3},{6247,16458,3},{6247,16472,3}, {6242,16492,3},{6242,16508,3},{6238,16523,3},{6232,16528,3},{6232,16533,3}, {6240,16523,3},{6245,16508,3},{6247,16513,3},{6248,16535,3},{6245,16547,3}, {6243,16562,3},{6245,16565,3},{6250,16532,3},{6252,16503,3},{6255,16492,3}, {6258,16470,3},{6268,16458,3},{6272,16437,3},{6268,16427,3},{6265,16395,3}, {6260,16392,3},{6262,16373,3},{6257,16348,3},{6255,16327,3},{6252,16322,3}, {6247,16322,3},{6245,16317,3},{6243,16322,3},{6240,16323,3},{6238,16332,3}, {6235,16335,3},{6233,16323,3},{6230,16322,3},{6230,16317,3},{6228,16312,3}, {6220,16308,3},{6212,16313,3},{6210,16308,3},{6207,16317,3},{6202,16310,3}, {6198,16310,3},{6197,16303,3},{6193,16300,3},{6192,16305,3},{6180,16295,3}, {6178,16298,3},{6175,16323,3},{6172,16330,3},{6168,16332,3},{6167,16328,3}, {6165,16320,3},{6162,16322,3},{6163,16313,3},{6162,16310,3},{6160,16307,3}, {6155,16308,3},{6152,16300,3},{6158,16295,3},{6158,16288,3},{6162,16290,3}, {6163,16285,3},{6167,16293,3},{6172,16285,3},{6172,16280,3},{6168,16265,3}, {6167,16263,3},{6163,16270,3},{6163,16275,3},{6160,16275,3},{6162,16267,3}, {6167,16253,3},{6167,16240,3},{6163,16235,3},{6162,16228,3},{6158,16228,3}, {6157,16222,3},{6153,16222,3},{6147,16208,3},{6145,16205,3},{6142,16203,3}, {6138,16193,3},{6143,16188,3},{6135,16187,3},{6138,16180,3},{6130,16175,3}, {6127,16165,3},{6127,16157,3},{6123,16162,3},{6120,16157,3},{6120,16147,3}, {6117,16142,3},{6113,16143,3},{6108,16130,3},{6107,16122,3},{6100,16117,3}, {6097,16103,3},{6092,16095,3},{6092,16090,3},{6080,16082,3},{6073,16080,3}, {6078,16067,3},{6073,16062,3},{6073,16058,3},{6075,16057,3},{6072,16045,3}, {6073,16040,3},{6075,16042,3},{6075,16038,3},{6072,16033,3},{6070,16035,3}, {6067,16028,3},{6063,16027,3},{6058,16013,3},{6068,16012,3},{6068,16018,3}, {6072,16018,3},{6073,16022,3},{6078,16022,3},{6083,16017,3},{6085,16023,3}, {6090,16023,3},{6092,16030,3},{6090,16032,3},{6092,16035,3},{6095,16033,3}, {6100,16040,3},{6103,16038,3},{6105,16043,3},{6107,16035,3},{6105,16017,3}, {6098,15993,3},{6095,15992,3},{6093,15978,3},{6098,15980,3},{6103,15990,3}, {6110,15993,3},{6112,15998,3},{6115,15993,3},{6118,15995,3},{6122,15990,3}, {6125,15992,3},{6127,15985,3},{6125,15975,3},{6130,15983,3},{6132,15985,3}, {6128,15993,3},{6132,16000,3},{6130,15992,3},{6133,15988,3},{6137,15995,3}, {6138,15995,3},{6140,15997,3},{6138,16003,3},{6142,16003,3},{6145,16008,3}, {6147,16002,3},{6152,16008,3},{6152,16017,3},{6157,16023,3},{6158,16022,3}, {6163,16023,3},{6167,16028,3},{6170,16023,3},{6177,16037,3},{6182,16035,3}, {6185,16037,3},{6187,16035,3},{6190,16037,3},{6192,16033,3},{6195,16035,3}, {6195,16033,3},{6188,16015,3},{6188,16010,3},{6182,15997,3},{6178,15992,3}, {6172,15983,3},{6173,15975,3},{6170,15972,3},{6172,15967,3},{6170,15967,3}, {6167,15953,3},{6168,15948,3},{6172,15948,3},{6182,15953,3},{6182,15950,3}, {6177,15945,3},{6183,15933,3},{6185,15938,3},{6188,15937,3},{6192,15920,3}, {6188,15888,3},{6185,15883,3},{6182,15885,3},{6183,15863,3},{6178,15852,3}, {6182,15845,3},{6182,15832,3},{6175,15812,3},{6173,15803,3},{6178,15790,3}, {6180,15748,3},{6177,15737,3},{6170,15737,3},{6172,15728,3},{6170,15715,3}, {6165,15702,3},{6160,15698,3},{6153,15687,3},{6153,15670,3},{6142,15663,3}, {6133,15667,3},{6128,15663,3},{6122,15667,3},{6122,15658,3},{6118,15642,3}, {6102,15610,3},{6088,15592,3},{6085,15590,3},{6072,15590,3},{6073,15582,3}, {6067,15570,3},{6065,15565,3},{6062,15555,3},{6058,15552,3},{6058,15548,3}, {6053,15548,3},{6052,15545,3},{6052,15542,3},{6053,15538,3},{6052,15533,3}, {6047,15518,3},{6042,15513,3},{6040,15508,3},{6035,15493,3},{6027,15480,3}, {6005,15453,3},{5992,15447,3},{5988,15448,3},{5985,15440,3},{5988,15443,3}, {5990,15440,3},{5988,15423,3},{5972,15423,3},{5958,15437,3},{5958,15430,3}, {5965,15422,3},{5955,15413,3},{5952,15407,3},{5947,15410,3},{5945,15413,3}, {5945,15428,3},{5948,15435,3},{5952,15435,3},{5953,15438,3},{5950,15440,3}, {5947,15438,3},{5942,15443,3},{5943,15450,3},{5950,15442,3},{5955,15442,3}, {5953,15457,3},{5955,15463,3},{5948,15475,3},{5948,15483,3},{5945,15485,3}, {5948,15490,3},{5950,15497,3},{5940,15507,3},{5937,15518,3},{5928,15513,3}, {5925,15518,3},{5922,15513,3},{5917,15518,3},{5920,15507,3},{5918,15500,3}, {5920,15477,3},{5917,15473,3},{5912,15477,3},{5913,15470,3},{5913,15465,3}, {5920,15452,3},{5922,15445,3},{5920,15433,3},{5918,15432,3},{5912,15435,3}, {5912,15430,3},{5908,15427,3},{5910,15415,3},{5905,15403,3},{5908,15390,3}, {5917,15380,3},{5918,15367,3},{5922,15373,3},{5925,15373,3},{5927,15375,3}, {5920,15358,3},{5922,15352,3},{5925,15337,3},{5922,15332,3},{5915,15332,3}, {5913,15327,3},{5913,15332,3},{5908,15330,3},{5910,15315,3},{5907,15298,3}, {5895,15288,3},{5890,15290,3},{5893,15282,3},{5890,15272,3},{5895,15263,3}, {5895,15255,3},{5900,15247,3},{5902,15240,3},{5903,15240,3},{5905,15235,3}, {5902,15235,3},{5900,15220,3},{5898,15212,3},{5892,15212,3},{5890,15208,3}, {5885,15157,3},{5887,15145,3},{5883,15132,3},{5892,15128,3},{5895,15122,3}, {5902,15118,3},{5903,15113,3},{5912,15107,3},{5908,15117,3},{5912,15133,3}, {5915,15137,3},{5917,15140,3},{5917,15162,3},{5915,15167,3},{5913,15172,3}, {5915,15180,3},{5915,15187,3},{5915,15205,3},{5920,15217,3},{5920,15228,3}, {5923,15228,3},{5927,15217,3},{5930,15213,3},{5928,15208,3},{5927,15198,3}, {5930,15187,3},{5930,15170,3},{5932,15167,3},{5935,15172,3},{5938,15167,3}, {5943,15167,3},{5948,15160,3},{5950,15148,3},{5955,15145,3},{5957,15140,3}, {5960,15137,3},{5960,15133,3},{5957,15130,3},{5957,15123,3},{5958,15110,3}, {5957,15090,3},{5955,15087,3},{5950,15093,3},{5948,15092,3},{5947,15093,3}, {5945,15087,3},{5945,15068,3},{5947,15068,3},{5948,15073,3},{5950,15072,3}, {5952,15067,3},{5948,15043,3},{5952,15050,3},{5955,15073,3},{5957,15073,3}, {5955,15052,3},{5958,15043,3},{5960,15045,3},{5962,15042,3},{5962,15035,3}, {5965,15027,3},{5965,15013,3},{5970,15003,3},{5977,14962,3},{5975,14937,3}, {5977,14935,3},{5975,14932,3},{5973,14935,3},{5973,14933,3},{5968,14918,3}, {5965,14910,3},{5963,14903,3},{5962,14903,3},{5958,14910,3},{5955,14908,3}, {5953,14918,3},{5950,14922,3},{5947,14922,3},{5950,14912,3},{5945,14897,3}, {5947,14895,3},{5947,14890,3},{5948,14885,3},{5952,14883,3},{5953,14888,3}, {5955,14885,3},{5948,14875,3},{5945,14870,3},{5938,14870,3},{5937,14878,3}, {5940,14887,3},{5935,14887,3},{5938,14892,3},{5940,14892,3},{5938,14897,3}, {5932,14892,3},{5925,14895,3},{5923,14890,3},{5925,14887,3},{5928,14880,3}, {5925,14877,3},{5923,14872,3},{5927,14868,3},{5925,14855,3},{5927,14842,3}, {5927,14840,3},{5930,14840,3},{5933,14837,3},{5935,14840,3},{5938,14837,3}, {5942,14822,3},{5938,14783,3},{5935,14778,3},{5930,14783,3},{5928,14782,3}, {5927,14770,3},{5930,14767,3},{5930,14760,3},{5928,14755,3},{5925,14755,3}, {5923,14748,3},{5932,14730,3},{5932,14717,3},{5937,14700,3},{5935,14687,3}, {5937,14673,3},{5942,14667,3},{5947,14653,3},{5945,14647,3},{5938,14632,3}, {5927,14632,3},{5920,14635,3},{5918,14632,3},{5920,14618,3},{5915,14603,3}, {5915,14595,3},{5922,14593,3},{5922,14585,3},{5927,14580,3},{5933,14587,3}, {5935,14592,3},{5942,14592,3},{5940,14583,3},{5942,14582,3},{5938,14577,3}, {5942,14567,3},{5943,14567,3},{5942,14562,3},{5938,14532,3},{5942,14528,3}, {5942,14525,3},{5938,14507,3},{5938,14493,3},{5938,14477,3},{5938,14480,3}, {5940,14477,3},{5940,14462,3},{5938,14463,3},{5937,14468,3},{5937,14442,3}, {5938,14445,3},{5940,14438,3},{5940,14432,3},{5938,14428,3},{5942,14405,3}, {5942,14390,3},{5940,14378,3},{5933,14353,3},{5933,14343,3},{5937,14333,3}, {5938,14320,3},{5937,14313,3},{5935,14315,3},{5923,14258,3},{5912,14225,3}, {5897,14198,3},{5882,14183,3},{5868,14170,3},{5865,14162,3},{5852,14133,3}, {5848,14122,3},{5847,14108,3},{5830,14078,3},{5823,14068,3},{5808,14062,3}, {5793,14052,3},{5782,14050,3},{5780,14042,3},{5775,14035,3},{5777,14028,3}, {5772,14005,3},{5765,13993,3},{5752,13983,3},{5748,13970,3},{5745,13960,3}, {5738,13957,3},{5732,13948,3},{5732,13940,3},{5730,13937,3},{5727,13917,3}, {5715,13907,3},{5713,13907,3},{5715,13897,3},{5713,13895,3},{5707,13897,3}, {5702,13890,3},{5705,13882,3},{5702,13882,3},{5700,13875,3},{5698,13863,3}, {5687,13858,3},{5685,13848,3},{5673,13840,3},{5672,13830,3},{5668,13830,3}, {5667,13827,3},{5663,13827,3},{5663,13822,3},{5657,13812,3},{5650,13815,3}, {5648,13825,3},{5643,13823,3},{5645,13817,3},{5645,13808,3},{5640,13807,3}, {5638,13802,3},{5638,13792,3},{5630,13788,3},{5625,13785,3},{5623,13777,3}, {5620,13777,3},{5617,13773,3},{5615,13773,3},{5612,13757,3},{5605,13745,3}, {5602,13745,3},{5600,13743,3},{5597,13743,3},{5595,13740,3},{5593,13742,3}, {5597,13737,3},{5597,13733,3},{5593,13730,3},{5588,13717,3},{5580,13707,3}, {5580,13698,3},{5577,13690,3},{5572,13682,3},{5565,13678,3},{5565,13675,3}, {5567,13668,3},{5563,13660,3},{5563,13655,3},{5558,13652,3},{5558,13643,3}, {5553,13635,3},{5543,13630,3},{5535,13618,3},{5530,13613,3},{5530,13607,3}, {5525,13595,3},{5520,13587,3},{5520,13580,3},{5513,13572,3},{5512,13555,3}, {5493,13522,3},{5487,13515,3},{5480,13517,3},{5472,13527,3},{5470,13523,3}, {5472,13533,3},{5468,13547,3},{5467,13567,3},{5458,13570,3},{5457,13573,3}, {5457,13600,3},{5460,13610,3},{5462,13622,3},{5460,13628,3},{5458,13653,3}, {5465,13662,3},{5468,13667,3},{5463,13665,3},{5462,13670,3},{5465,13677,3}, {5465,13682,3},{5460,13682,3},{5458,13688,3},{5452,13682,3},{5448,13683,3}, {5447,13682,3},{5443,13683,3},{5442,13682,3},{5443,13677,3},{5442,13673,3}, {5435,13677,3},{5432,13682,3},{5428,13675,3},{5425,13682,3},{5422,13675,3}, {5415,13682,3},{5408,13677,3},{5405,13677,3},{5402,13670,3},{5393,13665,3}, {5382,13668,3},{5377,13678,3},{5378,13682,3},{5383,13685,3},{5385,13695,3}, {5385,13703,3},{5382,13708,3},{5380,13712,3},{5387,13720,3},{5403,13728,3}, {5403,13717,3},{5413,13707,3},{5418,13717,3},{5422,13718,3},{5422,13725,3}, {5427,13728,3},{5428,13737,3},{5430,13738,3},{5432,13748,3},{5430,13753,3}, {5430,13762,3},{5430,13765,3},{5432,13768,3},{5432,13773,3},{5430,13773,3}, {5423,13762,3},{5418,13758,3},{5415,13752,3},{5413,13752,3},{5412,13748,3}, {5408,13748,3},{5408,13745,3},{5413,13745,3},{5415,13742,3},{5412,13730,3}, {5405,13730,3},{5403,13743,3},{5397,13757,3},{5395,13760,3},{5397,13767,3}, {5393,13775,3},{5397,13787,3},{5390,13778,3},{5388,13770,3},{5383,13760,3}, {5378,13760,3},{5377,13755,3},{5372,13757,3},{5368,13750,3},{5367,13748,3}, {5367,13735,3},{5362,13728,3},{5360,13722,3},{5358,13720,3},{5357,13722,3}, {5353,13732,3},{5352,13738,3},{5353,13748,3},{5355,13768,3},{5357,13790,3}, {5363,13802,3},{5367,13813,3},{5373,13828,3},{5390,13835,3},{5400,13858,3}, {5398,13858,3},{5393,13857,3},{5387,13858,3},{5382,13857,3},{5368,13837,3}, {5365,13835,3},{5360,13835,3},{5357,13823,3},{5353,13825,3},{5348,13822,3}, {5352,13825,3},{5352,13828,3},{5352,13845,3},{5357,13855,3},{5367,13862,3}, {5383,13870,3},{5385,13868,3},{5390,13868,3},{5395,13875,3},{5402,13878,3}, {5407,13878,3},{5410,13877,3},{5407,13867,3},{5417,13873,3},{5420,13872,3}, {5423,13875,3},{5427,13872,3},{5430,13865,3},{5432,13873,3},{5423,13900,3}, {5418,13933,3},{5425,13963,3},{5432,13975,3},{5430,13982,3},{5423,13978,3}, {5422,13982,3},{5420,13992,3},{5418,13990,3},{5412,14002,3},{5408,14015,3}, {5405,14025,3},{5400,14023,3},{5397,14033,3},{5390,14025,3},{5387,14025,3}, {5378,14037,3},{5375,14045,3},{5372,14053,3},{5368,14052,3},{5365,14055,3}, {5357,14077,3},{5347,14110,3},{5350,14097,3},{5347,14093,3},{5343,14093,3}, {5345,14100,3},{5340,14103,3},{5340,14112,3},{5337,14112,3},{5330,14123,3}, {5332,14130,3},{5328,14142,3},{5322,14135,3},{5322,14142,3},{5318,14142,3}, {5315,14143,3},{5312,14138,3},{5308,14137,3},{5307,14137,3},{5307,14135,3}, {5308,14125,3},{5303,14118,3},{5302,14125,3},{5298,14122,3},{5298,14115,3}, {5305,14097,3},{5307,14090,3},{5312,14087,3},{5312,14080,3},{5312,14070,3}, {5310,14077,3},{5303,14085,3},{5302,14095,3},{5298,14093,3},{5293,14097,3}, {5292,14105,3},{5288,14108,3},{5285,14118,3},{5285,14127,3},{5277,14120,3}, {5273,14127,3},{5268,14128,3},{5265,14132,3},{5263,14128,3},{5258,14128,3}, {5252,14122,3},{5247,14113,3},{5240,14113,3},{5235,14117,3},{5233,14123,3}, {5228,14128,3},{5227,14133,3},{5222,14140,3},{5222,14153,3},{5215,14155,3}, {5215,14153,3},{5217,14150,3},{5210,14135,3},{5208,14137,3},{5202,14130,3}, {5195,14143,3},{5192,14142,3},{5188,14128,3},{5183,14122,3},{5177,14118,3}, {5170,14112,3},{5167,14112,3},{5168,14108,3},{5167,14102,3},{5162,14092,3}, {5150,14090,3},{5148,14083,3},{5145,14078,3},{5143,14082,3},{5142,14082,3}, {5142,14090,3},{5137,14087,3},{5133,14080,3},{5133,14077,3},{5132,14068,3}, {5127,14070,3},{5125,14072,3},{5122,14065,3},{5118,14068,3},{5113,14067,3}, {5110,14070,3},{5105,14072,3},{5102,14070,3},{5100,14067,3},{5095,14068,3}, {5092,14060,3},{5087,14053,3},{5082,14055,3},{5070,14047,3},{5062,14052,3}, {5060,14048,3},{5053,14043,3},{5045,14050,3},{5033,14055,3},{5030,14052,3}, {5022,14053,3},{5017,14052,3},{5008,14058,3},{5007,14058,3},{5008,14062,3}, {5010,14068,3},{5008,14070,3},{5003,14063,3},{4998,14048,3},{4988,14043,3}, {4987,14040,3},{4980,14047,3},{4977,14053,3},{4968,14052,3},{4957,14055,3}, {4940,14045,3},{4928,14043,3},{4928,14033,3},{4927,14033,3},{4927,14040,3}, {4920,14033,3},{4920,14037,3},{4917,14035,3},{4915,14037,3},{4910,14035,3}, {4908,14035,3},{4908,14030,3},{4907,14033,3},{4903,14035,3},{4900,14022,3}, {4900,14028,3},{4897,14025,3},{4897,14028,3},{4897,14030,3},{4898,14030,3}, {4902,14035,3},{4898,14037,3},{4898,14040,3},{4890,14035,3},{4885,14025,3}, {4877,14022,3},{4867,14018,3},{4858,14020,3},{4857,14017,3},{4852,14020,3}, {4845,14018,3},{4842,14008,3},{4833,14003,3},{4830,13993,3},{4817,13973,3}, {4807,13965,3},{4797,13952,3},{4792,13940,3},{4782,13928,3},{4773,13922,3}, {4765,13920,3},{4763,13917,3},{4747,13905,3},{4742,13905,3},{4737,13898,3}, {4732,13897,3},{4730,13888,3},{4718,13877,3},{4708,13862,3},{4703,13857,3}, {4692,13850,3},{4687,13850,3},{4680,13842,3},{4673,13838,3},{4663,13835,3}, {4653,13833,3},{4648,13823,3},{4645,13820,3},{4628,13812,3},{4622,13810,3}, {4613,13802,3},{4610,13795,3},{4607,13793,3},{4593,13778,3},{4587,13770,3}, {4580,13767,3},{4568,13752,3},{4560,13737,3},{4537,13713,3},{4533,13705,3}, {4518,13682,3},{4508,13677,3},{4503,13668,3},{4503,13665,3},{4493,13655,3}, {4488,13655,3},{4488,13653,3},{4483,13648,3},{4483,13645,3},{4477,13643,3}, {4478,13637,3},{4475,13633,3},{4473,13630,3},{4470,13633,3},{4468,13627,3}, {4467,13625,3},{4462,13622,3},{4458,13623,3},{4455,13620,3},{4452,13618,3}, {4445,13607,3},{4445,13600,3},{4443,13598,3},{4440,13588,3},{4435,13583,3}, {4432,13583,3},{4427,13580,3},{4423,13572,3},{4418,13568,3},{4417,13565,3}, {4412,13567,3},{4403,13563,3},{4400,13555,3},{4398,13553,3},{4395,13553,3}, {4395,13552,3},{4392,13552,3},{4395,13548,3},{4395,13545,3},{4392,13547,3}, {4390,13547,3},{4388,13552,3},{4375,13542,3},{4375,13538,3},{4372,13535,3}, {4372,13532,3},{4368,13527,3},{4372,13525,3},{4373,13525,3},{4373,13523,3}, {4372,13522,3},{4372,13518,3},{4368,13523,3},{4363,13522,3},{4360,13517,3}, {4350,13513,3},{4350,13507,3},{4345,13497,3},{4343,13495,3},{4338,13483,3}, {4330,13477,3},{4330,13470,3},{4323,13460,3},{4323,13455,3},{4315,13442,3}, {4312,13435,3},{4312,13432,3},{4310,13430,3},{4308,13418,3},{4300,13412,3}, {4297,13403,3},{4287,13390,3},{4290,13387,3},{4285,13373,3},{4282,13372,3}, {4285,13368,3},{4285,13360,3},{4282,13357,3},{4282,13353,3},{4282,13352,3}, {4280,13348,3},{4275,13337,3},{4277,13332,3},{4275,13323,3},{4268,13317,3}, {4268,13303,3},{4272,13300,3},{4273,13303,3},{4273,13308,3},{4280,13300,3}, {4282,13300,3},{4282,13293,3},{4282,13290,3},{4277,13288,3},{4273,13285,3}, {4277,13280,3},{4282,13280,3},{4283,13277,3},{4288,13277,3},{4290,13277,3}, {4290,13273,3},{4287,13268,3},{4285,13268,3},{4285,13260,3},{4283,13258,3}, {4287,13250,3},{4292,13250,3},{4293,13247,3},{4293,13240,3},{4292,13238,3}, {4290,13235,3},{4285,13235,3},{4285,13232,3},{4288,13228,3},{4297,13228,3}, {4302,13230,3},{4307,13228,3},{4308,13230,3},{4313,13233,3},{4317,13232,3}, {4317,13235,3},{4320,13238,3},{4322,13237,3},{4322,13232,3},{4325,13230,3}, {4328,13235,3},{4332,13230,3},{4332,13228,3},{4328,13228,3},{4323,13223,3}, {4318,13210,3},{4312,13203,3},{4308,13198,3},{4308,13190,3},{4308,13188,3}, {4312,13192,3},{4308,13183,3},{4320,13192,3},{4323,13200,3},{4328,13205,3}, {4332,13205,3},{4332,13202,3},{4327,13198,3},{4330,13197,3},{4330,13183,3}, {4333,13183,3},{4333,13182,3},{4328,13177,3},{4322,13175,3},{4320,13172,3}, {4318,13177,3},{4317,13175,3},{4317,13173,3},{4318,13170,3},{4318,13167,3}, {4317,13167,3},{4315,13165,3},{4317,13170,3},{4315,13168,3},{4303,13157,3}, {4300,13157,3},{4298,13155,3},{4300,13152,3},{4300,13150,3},{4295,13150,3}, {4293,13143,3},{4293,13138,3},{4292,13138,3},{4290,13142,3},{4288,13140,3}, {4287,13147,3},{4283,13137,3},{4280,13135,3},{4277,13137,3},{4278,13132,3}, {4277,13128,3},{4270,13125,3},{4267,13125,3},{4267,13122,3},{4262,13122,3}, {4260,13123,3},{4257,13123,3},{4255,13120,3},{4257,13117,3},{4260,13120,3}, {4262,13113,3},{4267,13112,3},{4263,13110,3},{4262,13110,3},{4265,13102,3}, {4263,13097,3},{4260,13093,3},{4263,13082,3},{4263,13087,3},{4262,13093,3}, {4265,13095,3},{4265,13088,3},{4263,13080,3},{4265,13078,3},{4267,13083,3}, {4268,13083,3},{4268,13075,3},{4268,13072,3},{4267,13068,3},{4265,13067,3}, {4262,13073,3},{4257,13073,3},{4260,13077,3},{4257,13078,3},{4255,13085,3}, {4252,13087,3},{4252,13083,3},{4247,13083,3},{4245,13078,3},{4235,13075,3}, {4228,13068,3},{4232,13065,3},{4238,13065,3},{4242,13060,3},{4250,13057,3}, {4255,13057,3},{4258,13062,3},{4262,13060,3},{4268,13053,3},{4268,13047,3}, {4270,13042,3},{4272,13040,3},{4275,13043,3},{4283,13063,3},{4283,13077,3}, {4285,13078,3},{4288,13082,3},{4285,13087,3},{4285,13102,3},{4290,13105,3}, {4292,13112,3},{4293,13113,3},{4297,13110,3},{4303,13110,3},{4313,13122,3}, {4315,13122,3},{4320,13118,3},{4327,13127,3},{4337,13127,3},{4340,13132,3}, {4345,13130,3},{4353,13120,3},{4355,13118,3},{4360,13122,3},{4362,13120,3}, {4367,13122,3},{4370,13120,3},{4373,13122,3},{4382,13120,3},{4392,13125,3}, {4397,13123,3},{4403,13125,3},{4405,13130,3},{4408,13128,3},{4413,13127,3}, {4420,13125,3},{4425,13123,3},{4430,13122,3},{4435,13120,3},{4440,13118,3}, {4445,13117,3},{4452,13115,3},{4457,13113,3},{4462,13112,3},{4468,13110,3}, {4470,13107,3},{4475,13105,3},{4478,13100,3},{4483,13095,3},{4487,13105,3}, {4488,13107,3},{4492,13107,3},{4493,13113,3},{4492,13122,3},{4492,13127,3}, {4497,13133,3},{4497,13147,3},{4498,13148,3},{4512,13165,3},{4513,13165,3}, {4517,13163,3},{4520,13165,3},{4522,13167,3},{4522,13175,3},{4533,13183,3}, {4535,13187,3},{4533,13190,3},{4528,13193,3},{4523,13202,3},{4522,13210,3}, {4520,13217,3},{4518,13225,3},{4517,13232,3},{4515,13240,3},{4513,13247,3}, {4512,13253,3},{4510,13262,3},{4508,13268,3},{4507,13277,3},{4505,13283,3}, {4502,13293,3},{4505,13303,3},{4512,13312,3},{4517,13313,3},{4525,13310,3}, {4545,13315,3},{4550,13318,3},{4557,13337,3},{4557,13342,3},{4560,13342,3}, {4562,13347,3},{4565,13345,3},{4567,13348,3},{4568,13348,3},{4570,13345,3}, {4573,13348,3},{4577,13348,3},{4578,13350,3},{4580,13347,3},{4583,13348,3}, {4583,13350,3},{4588,13352,3},{4588,13355,3},{4587,13358,3},{4590,13360,3}, {4593,13362,3},{4593,13367,3},{4607,13372,3},{4615,13368,3},{4615,13375,3}, {4620,13378,3},{4622,13380,3},{4620,13383,3},{4622,13385,3},{4623,13385,3}, {4625,13390,3},{4630,13388,3},{4632,13392,3},{4633,13387,3},{4635,13388,3}, {4637,13392,3},{4640,13393,3},{4642,13390,3},{4643,13385,3},{4647,13385,3}, {4653,13390,3},{4657,13390,3},{4662,13398,3},{4667,13402,3},{4677,13405,3}, {4682,13402,3},{4692,13407,3},{4697,13407,3},{4708,13413,3},{4708,13420,3}, {4712,13422,3},{4713,13422,3},{4717,13418,3},{4720,13420,3},{4725,13415,3}, {4732,13418,3},{4735,13423,3},{4742,13432,3},{4743,13448,3},{4747,13455,3}, {4750,13457,3},{4757,13467,3},{4763,13468,3},{4770,13477,3},{4773,13477,3}, {4780,13468,3},{4787,13467,3},{4790,13460,3},{4795,13460,3},{4800,13455,3}, {4807,13458,3},{4810,13467,3},{4823,13468,3},{4827,13473,3},{4830,13462,3}, {4837,13457,3},{4835,13448,3},{4838,13442,3},{4837,13425,3},{4833,13418,3}, {4832,13405,3},{4830,13402,3},{4827,13398,3},{4827,13388,3},{4825,13375,3}, {4818,13370,3},{4817,13360,3},{4810,13353,3},{4807,13352,3},{4807,13348,3}, {4810,13340,3},{4810,13332,3},{4812,13322,3},{4810,13308,3},{4803,13302,3}, {4800,13288,3},{4795,13283,3},{4793,13277,3},{4795,13275,3},{4795,13267,3}, {4793,13265,3},{4787,13267,3},{4780,13258,3},{4773,13258,3},{4772,13253,3}, {4775,13235,3},{4770,13217,3},{4770,13200,3},{4767,13192,3},{4768,13187,3}, {4767,13182,3},{4770,13168,3},{4767,13162,3},{4765,13158,3},{4767,13155,3}, {4772,13153,3},{4773,13142,3},{4773,13127,3},{4770,13117,3},{4767,13110,3}, {4770,13098,3},{4772,13093,3},{4780,13095,3},{4790,13088,3},{4805,13068,3}, {4810,13067,3},{4813,13067,3},{4818,13075,3},{4825,13077,3},{4828,13083,3}, {4833,13082,3},{4835,13077,3},{4842,13073,3},{4848,13077,3},{4850,13073,3}, {4848,13063,3},{4852,13062,3},{4857,13062,3},{4860,13052,3},{4880,13063,3}, {4885,13067,3},{4887,13067,3},{4888,13062,3},{4885,13052,3},{4888,13047,3}, {4890,13042,3},{4887,13028,3},{4887,13022,3},{4900,12998,3},{4903,12990,3}, {4908,12992,3},{4912,12983,3},{4915,12985,3},{4917,12977,3},{4920,12973,3}, {4927,12972,3},{4928,12968,3},{4927,12960,3},{4930,12955,3},{4938,12953,3}, {4942,12948,3},{4942,12938,3},{4940,12937,3},{4935,12937,3},{4935,12932,3}, {4938,12925,3},{4938,12920,3},{4935,12910,3},{4937,12905,3},{4943,12900,3}, {4945,12892,3},{4947,12890,3},{4948,12885,3},{4947,12875,3},{4950,12875,3}, {4953,12880,3},{4957,12878,3},{4958,12872,3},{4962,12867,3},{4957,12862,3}, {4958,12850,3},{4957,12837,3},{4953,12833,3},{4955,12827,3},{4953,12822,3}, {4953,12810,3},{4958,12800,3},{4960,12795,3},{4958,12790,3},{4958,12782,3}, {4963,12777,3},{4967,12768,3},{4975,12767,3},{4980,12753,3},{4983,12750,3}, {4992,12753,3},{4998,12748,3},{5005,12748,3},{5013,12757,3},{5020,12758,3}, {5032,12733,3},{5042,12735,3},{5047,12728,3},{5057,12737,3},{5068,12728,3}, {5073,12730,3},{5078,12722,3},{5092,12713,3},{5097,12703,3},{5105,12693,3}, {5118,12690,3},{5128,12697,3},{5130,12698,3},{5133,12695,3},{5130,12687,3}, {5127,12688,3},{5125,12690,3},{5123,12688,3},{5125,12685,3},{5127,12682,3}, {5133,12682,3},{5133,12690,3},{5138,12692,3},{5140,12690,3},{5142,12678,3}, {5145,12678,3},{5150,12682,3},{5153,12680,3},{5157,12667,3},{5160,12667,3}, {5163,12673,3},{5167,12670,3},{5170,12672,3},{5172,12670,3},{5173,12667,3}, {5175,12663,3},{5190,12652,3},{5193,12647,3},{5200,12643,3},{5203,12647,3}, {5203,12652,3},{5213,12655,3},{5217,12647,3},{5220,12632,3},{5223,12633,3}, {5228,12643,3},{5230,12632,3},{5238,12633,3},{5247,12627,3},{5247,12620,3}, {5252,12622,3},{5253,12618,3},{5258,12607,3},{5257,12605,3},{5257,12602,3}, {5262,12598,3},{5265,12598,3},{5268,12607,3},{5273,12603,3},{5275,12610,3}, {5277,12610,3},{5278,12605,3},{5277,12597,3},{5285,12587,3},{5288,12587,3}, {5290,12583,3},{5288,12565,3},{5292,12565,3},{5295,12572,3},{5298,12573,3}, {5302,12565,3},{5305,12562,3},{5305,12557,3},{5303,12550,3},{5308,12547,3}, {5320,12517,3},{5320,12507,3},{5317,12488,3},{5310,12490,3},{5308,12485,3}, {5313,12480,3},{5313,12470,3},{5317,12470,3},{5318,12465,3},{5318,12450,3}, {5322,12440,3},{5325,12433,3},{5337,12425,3},{5337,12418,3},{5333,12412,3}, {5340,12402,3},{5343,12398,3},{5347,12388,3},{5350,12370,3},{5355,12362,3}, {5353,12358,3},{5350,12353,3},{5353,12355,3},{5355,12350,3},{5350,12348,3}, {5352,12345,3},{5355,12327,3},{5350,12315,3},{5348,12297,3},{5345,12282,3}, {5345,12262,3},{5343,12242,3},{5348,12232,3},{5347,12225,3},{5347,12217,3}, {5342,12210,3},{5342,12202,3},{5342,12197,3},{5342,12182,3},{5338,12173,3}, {5338,12167,3},{5333,12150,3},{5332,12133,3},{5328,12123,3},{5327,12113,3}, {5328,12107,3},{5328,12103,3},{5328,12087,3},{5327,12083,3},{5323,12083,3}, {5318,12072,3},{5310,12063,3},{5302,12048,3},{5285,12027,3},{5280,12017,3}, {5280,12012,3},{5277,12003,3},{5270,12005,3},{5262,12003,3},{5258,12007,3}, {5258,12018,3},{5262,12028,3},{5262,12038,3},{5263,12043,3},{5253,12072,3}, {5243,12068,3},{5233,12062,3},{5230,12065,3},{5223,12077,3},{5212,12078,3}, {5207,12075,3},{5205,12070,3},{5198,12072,3},{5192,12065,3},{5190,12057,3}, {5188,12055,3},{5188,12048,3},{5183,12047,3},{5183,12040,3},{5177,12032,3}, {5167,12018,3},{5167,12010,3},{5162,12005,3},{5155,12005,3},{5150,11998,3}, {5143,11998,3},{5138,11995,3},{5137,11988,3},{5133,11992,3},{5128,11987,3}, {5127,11982,3},{5122,11982,3},{5120,11975,3},{5117,11978,3},{5115,11977,3}, {5107,11975,3},{5100,11967,3},{5097,11958,3},{5093,11957,3},{5090,11952,3}, {5088,11953,3},{5083,11950,3},{5080,11952,3},{5075,11950,3},{5068,11945,3}, {5067,11938,3},{5063,11937,3},{5060,11928,3},{5045,11925,3},{5042,11920,3}, {5042,11917,3},{5040,11913,3},{5037,11913,3},{5037,11918,3},{5035,11918,3}, {5035,11935,3},{5032,11937,3},{5027,11933,3},{5017,11935,3},{5010,11933,3}, {5002,11923,3},{4998,11907,3},{4998,11892,3},{4995,11872,3},{4995,11863,3}, {4990,11853,3},{4982,11847,3},{4982,11838,3},{4978,11837,3},{4973,11823,3}, {4967,11817,3},{4965,11812,3},{4960,11803,3},{4955,11790,3},{4950,11787,3}, {4952,11778,3},{4962,11750,3},{4963,11728,3},{4965,11717,3},{4972,11697,3}, {4983,11672,3},{4993,11662,3},{4997,11643,3},{5003,11622,3},{5000,11607,3}, {4990,11580,3},{4988,11573,3},{4990,11563,3},{4990,11540,3},{5000,11520,3}, {5015,11502,3},{5023,11485,3},{5025,11478,3},{5027,11467,3},{5025,11455,3}, {5025,11445,3},{5028,11432,3},{5025,11418,3},{5018,11407,3},{5017,11400,3}, {5008,11387,3},{5008,11378,3},{5002,11357,3},{4997,11348,3},{4993,11345,3}, {4980,11320,3},{4967,11310,3},{4960,11308,3},{4958,11298,3},{4953,11290,3}, {4950,11277,3},{4950,11270,3},{4953,11263,3},{4953,11248,3},{4943,11213,3}, {4940,11197,3},{4940,11183,3},{4940,11168,3},{4935,11153,3},{4935,11148,3}, {4937,11137,3},{4933,11130,3},{4930,11118,3},{4918,11095,3},{4915,11078,3}, {4915,11070,3},{4920,11047,3},{4925,11040,3},{4918,11030,3},{4917,11020,3}, {4918,11008,3},{4920,10990,3},{4918,10985,3},{4923,10975,3},{4923,10955,3}, {4925,10950,3},{4928,10948,3},{4930,10943,3},{4933,10935,3},{4937,10920,3}, {4933,10907,3},{4935,10895,3},{4935,10888,3},{4933,10855,3},{4943,10837,3}, {4953,10827,3},{4955,10815,3},{4958,10807,3},{4962,10803,3},{4967,10803,3}, {4967,10797,3},{4968,10795,3},{4975,10798,3},{4985,10795,3},{4995,10798,3}, {4995,10790,3},{4997,10785,3},{4995,10782,3},{4998,10775,3},{4998,10742,3}, {5002,10732,3},{5000,10727,3},{5003,10718,3},{5005,10715,3},{5008,10708,3}, {5015,10703,3},{5020,10700,3},{5033,10673,3},{5035,10655,3},{5030,10625,3}, {5033,10617,3},{5035,10607,3},{5038,10607,3},{5042,10598,3},{5043,10585,3}, {5043,10580,3},{5043,10563,3},{5048,10535,3},{5047,10528,3},{5042,10518,3}, {5040,10512,3},{5040,10502,3},{5037,10490,3},{5035,10483,3},{5035,10472,3}, {5030,10463,3},{5030,10442,3},{5025,10435,3},{5023,10430,3},{5020,10427,3}, {5017,10425,3},{5013,10407,3},{5020,10382,3},{5015,10373,3},{5013,10367,3}, {5020,10347,3},{5020,10332,3},{5022,10328,3},{5030,10325,3},{5032,10318,3}, {5030,10300,3},{5032,10292,3},{5038,10278,3},{5042,10262,3},{5052,10253,3}, {5053,10248,3},{5055,10237,3},{5057,10233,3},{5065,10230,3},{5072,10235,3}, {5075,10233,3},{5078,10227,3},{5083,10223,3},{5085,10223,3},{5090,10227,3}, {5095,10223,3},{5098,10225,3},{5112,10217,3},{5120,10218,3},{5125,10215,3}, {5130,10223,3},{5133,10222,3},{5138,10208,3},{5140,10200,3},{5142,10193,3}, {5143,10182,3},{5145,10177,3},{5145,10167,3},{5148,10158,3},{5145,10138,3}, {5152,10127,3},{5153,10115,3},{5157,10110,3},{5170,10070,3},{5172,10060,3}, {5173,10055,3},{5173,10025,3},{5175,9995,3},{5178,9988,3},{5188,9973,3}, {5190,9957,3},{5195,9932,3},{5200,9925,3},{5207,9903,3},{5212,9900,3},{5215,9893,3}, {5212,9888,3},{5203,9887,3},{5183,9870,3},{5178,9862,3},{5172,9833,3},{5158,9825,3}, {5152,9827,3},{5145,9823,3},{5145,9820,3},{5147,9812,3},{5145,9805,3},{5132,9793,3}, {5122,9797,3},{5117,9792,3},{5107,9788,3},{5100,9783,3},{5093,9788,3},{5090,9795,3}, {5087,9797,3},{5085,9802,3},{5078,9797,3},{5063,9807,3},{5057,9817,3},{5057,9827,3}, {5052,9832,3},{5047,9833,3},{5040,9828,3},{5030,9828,3},{5005,9810,3},{4998,9795,3}, {4993,9787,3},{4997,9778,3},{4993,9760,3},{4992,9758,3},{4988,9760,3},{4985,9758,3}, {4978,9748,3},{4973,9733,3},{4973,9728,3},{4977,9717,3},{4980,9715,3},{4982,9708,3}, {4990,9700,3},{4992,9672,3},{4987,9662,3},{4987,9660,3},{4993,9655,3},{4993,9650,3}, {4990,9638,3},{4995,9630,3},{5000,9607,3},{4995,9597,3},{5002,9590,3},{5002,9583,3}, {4995,9575,3},{4993,9560,3},{4990,9553,3},{4995,9542,3},{4995,9508,3},{5002,9502,3}, {5005,9498,3},{5007,9483,3},{5002,9463,3},{5007,9460,3},{5012,9453,3},{5017,9452,3}, {5018,9442,3},{5022,9438,3},{5030,9437,3},{5042,9435,3},{5050,9430,3},{5055,9430,3}, {5057,9428,3},{5058,9355,3},{5062,9343,3},{5060,9335,3},{5062,9322,3},{5060,9310,3}, {5062,9302,3},{5063,9302,3},{5065,9297,3},{5075,9300,3},{5078,9298,3},{5080,9280,3}, {5072,9277,3},{5068,9270,3},{5068,9267,3},{5075,9257,3},{5078,9247,3},{5087,9242,3}, {5087,9238,3},{5085,9233,3},{5075,9230,3},{5070,9222,3},{5068,9212,3},{5072,9192,3}, {5070,9178,3},{5065,9167,3},{5057,9160,3},{5053,9147,3},{5048,9145,3},{5047,9143,3}, {5048,9130,3},{5043,9117,3},{5043,9103,3},{5033,9087,3},{5030,9075,3},{5025,9073,3}, {5022,9070,3},{5022,9065,3},{5022,9052,3},{5018,9045,3},{5018,9035,3},{5012,9025,3}, {5008,9005,3},{5005,9002,3},{5000,9002,3},{4997,8998,3},{4995,8990,3},{4995,8978,3}, {4992,8967,3},{4990,8963,3},{4985,8963,3},{4982,8967,3},{4980,8965,3},{4975,8973,3}, {4972,8973,3},{4968,8963,3},{4965,8947,3},{4958,8938,3},{4963,8927,3},{4963,8923,3}, {4962,8920,3},{4957,8923,3},{4953,8923,3},{4950,8918,3},{4947,8902,3},{4947,8898,3}, {4953,8895,3},{4955,8892,3},{4953,8888,3},{4947,8888,3},{4947,8890,3},{4945,8890,3}, {4943,8885,3},{4945,8873,3},{4950,8865,3},{4948,8857,3},{4948,8835,3},{4947,8822,3}, {4937,8813,3},{4930,8817,3},{4927,8817,3},{4923,8805,3},{4918,8798,3},{4917,8783,3}, {4917,8772,3},{4913,8760,3},{4913,8753,3},{4910,8750,3},{4908,8743,3},{4910,8732,3}, {4917,8730,3},{4922,8727,3},{4925,8718,3},{4925,8710,3},{4925,8705,3},{4930,8700,3}, {4930,8697,3},{4935,8690,3},{4940,8692,3},{4945,8682,3},{4950,8682,3},{4953,8678,3}, {4957,8672,3},{4957,8667,3},{4962,8662,3},{4967,8665,3},{4970,8675,3},{4972,8678,3}, {4980,8680,3},{4980,8672,3},{4980,8665,3},{4980,8662,3},{4975,8660,3},{4972,8653,3}, {4968,8647,3},{4962,8638,3},{4960,8630,3},{4958,8625,3},{4953,8623,3},{4952,8620,3}, {4947,8617,3},{4952,8612,3},{4952,8603,3},{4948,8598,3},{4950,8595,3},{4955,8593,3}, {4955,8585,3},{4957,8577,3},{4955,8570,3},{4958,8562,3},{4960,8555,3},{4958,8545,3}, {4957,8543,3},{4957,8537,3},{4960,8533,3},{4958,8528,3},{4963,8522,3},{4970,8520,3}, {4975,8518,3},{4983,8512,3},{4988,8510,3},{4990,8502,3},{4993,8498,3},{5000,8498,3}, {5000,8502,3},{5005,8502,3},{5008,8493,3},{5010,8485,3},{5013,8480,3},{5017,8470,3}, {5018,8462,3},{5022,8452,3},{5025,8450,3},{5025,8447,3},{5022,8437,3},{5022,8433,3}, {5027,8427,3},{5030,8423,3},{5035,8425,3},{5043,8422,3},{5050,8423,3},{5055,8420,3}, {5060,8412,3},{5067,8405,3},{5070,8400,3},{5075,8397,3},{5082,8392,3},{5087,8383,3}, {5090,8372,3},{5092,8365,3},{5095,8358,3},{5095,8348,3},{5098,8342,3},{5102,8343,3}, {5100,8335,3},{5102,8325,3},{5100,8320,3},{5102,8312,3},{5095,8308,3},{5092,8302,3}, {5090,8293,3},{5093,8282,3},{5093,8273,3},{5087,8272,3},{5082,8270,3},{5077,8257,3}, {5077,8248,3},{5078,8238,3},{5078,8228,3},{5075,8222,3},{5075,8212,3},{5080,8203,3}, {5080,8195,3},{5080,8183,3},{5082,8180,3},{5077,8177,3},{5077,8168,3},{5075,8160,3}, {5075,8148,3},{5077,8145,3},{5082,8147,3},{5087,8147,3},{5087,8143,3},{5093,8143,3}, {5098,8140,3},{5097,8130,3},{5095,8122,3},{5095,8112,3},{5095,8107,3},{5100,8108,3}, {5105,8110,3},{5115,8115,3},{5120,8113,3},{5117,8107,3},{5122,8093,3},{5125,8093,3}, {5127,8085,3},{5130,8075,3},{5130,8065,3},{5125,8063,3},{5122,8063,3},{5120,8062,3}, {5122,8048,3},{5122,8045,3},{5113,8043,3},{5108,8048,3},{5102,8047,3},{5097,8047,3}, {5097,8043,3},{5093,8038,3},{5093,8027,3},{5090,8020,3},{5083,8020,3},{5083,8010,3}, {5085,8007,3},{5078,8007,3},{5077,8008,3},{5082,8003,3},{5088,7998,3},{5093,7993,3}, {5100,7990,3},{5108,7982,3},{5115,7978,3},{5125,7970,3},{5130,7967,3},{5137,7962,3}, {5142,7957,3},{5147,7953,3},{5152,7950,3},{5158,7945,3},{5163,7940,3},{5170,7937,3}, {5175,7932,3},{5182,7927,3},{5187,7922,3},{5193,7917,3},{5200,7912,3},{5207,7905,3}, {5213,7900,3},{5217,7895,3},{5223,7890,3},{5232,7885,3},{5237,7880,3},{5243,7873,3}, {5248,7868,3},{5255,7862,3},{5260,7858,3},{5263,7853,3},{5270,7848,3},{5275,7845,3}, {5285,7835,3},{5292,7828,3},{5295,7825,3},{5300,7820,3},{5307,7812,3},{5312,7807,3}, {5317,7802,3},{5322,7798,3},{5327,7793,3},{5332,7787,3},{5337,7777,3},{5342,7770,3}, {5345,7762,3},{5352,7752,3},{5357,7740,3},{5360,7733,3},{5363,7725,3},{5367,7718,3}, {5372,7707,3},{5375,7700,3},{5380,7690,3},{5383,7683,3},{5387,7677,3},{5392,7667,3}, {5397,7658,3},{5402,7653,3},{5408,7650,3},{5413,7643,3},{5415,7642,3},{5417,7643,3}, {5417,7652,3},{5417,7662,3},{5413,7663,3},{5415,7672,3},{5420,7677,3},{5423,7685,3}, {5430,7687,3},{5435,7687,3},{5438,7678,3},{5442,7688,3},{5443,7693,3},{5445,7693,3}, {5442,7678,3},{5442,7675,3},{5437,7668,3},{5435,7658,3},{5433,7650,3},{5433,7640,3}, {5433,7630,3},{5435,7625,3},{5430,7620,3},{5425,7615,3},{5423,7607,3},{5420,7597,3}, {5418,7588,3},{5415,7580,3},{5413,7570,3},{5410,7562,3},{5412,7553,3},{5408,7542,3}, {5403,7545,3},{5398,7547,3},{5395,7538,3},{5392,7532,3},{5388,7523,3},{5385,7517,3}, {5380,7507,3},{5378,7503,3},{5382,7493,3},{5382,7485,3},{5382,7482,3},{5377,7478,3}, {5375,7468,3},{5370,7467,3},{5367,7465,3},{5368,7455,3},{5368,7447,3},{5360,7443,3}, {5358,7448,3},{5347,7442,3},{5347,7440,3},{5348,7428,3},{5355,7427,3},{5360,7425,3}, {5360,7418,3},{5355,7415,3},{5355,7407,3},{5363,7407,3},{5365,7395,3},{5365,7390,3}, {5360,7385,3},{5362,7375,3},{5362,7367,3},{5357,7365,3},{5357,7360,3},{5350,7355,3}, {5345,7345,3},{5348,7338,3},{5353,7340,3},{5355,7333,3},{5357,7325,3},{5365,7328,3}, {5368,7327,3},{5368,7332,3},{5375,7335,3},{5380,7335,3},{5382,7345,3},{5385,7343,3}, {5388,7345,3},{5387,7358,3},{5387,7368,3},{5392,7372,3},{5400,7373,3},{5405,7375,3}, {5407,7363,3},{5403,7360,3},{5400,7352,3},{5395,7353,3},{5398,7345,3},{5398,7342,3}, {5397,7342,3},{5395,7332,3},{5397,7322,3},{5398,7308,3},{5405,7305,3},{5405,7298,3}, {5410,7298,3},{5410,7283,3},{5413,7275,3},{5413,7260,3},{5408,7253,3},{5405,7252,3}, {5405,7262,3},{5405,7265,3},{5400,7272,3},{5398,7272,3},{5395,7272,3},{5398,7255,3}, {5392,7250,3},{5393,7240,3},{5395,7238,3},{5403,7242,3},{5408,7237,3},{5410,7237,3}, {5412,7245,3},{5412,7248,3},{5413,7250,3},{5415,7240,3},{5418,7230,3},{5423,7232,3}, {5425,7228,3},{5432,7227,3},{5437,7218,3},{5437,7207,3},{5433,7207,3},{5428,7213,3}, {5425,7208,3},{5420,7217,3},{5418,7220,3},{5413,7217,3},{5415,7210,3},{5420,7207,3}, {5423,7190,3},{5425,7177,3},{5420,7173,3},{5415,7175,3},{5412,7168,3},{5412,7158,3}, {5412,7152,3},{5417,7148,3},{5418,7140,3},{5418,7132,3},{5412,7122,3},{5412,7117,3}, {5418,7113,3},{5422,7107,3},{5427,7110,3},{5430,7102,3},{5435,7102,3},{5432,7115,3}, {5432,7118,3},{5438,7123,3},{5445,7120,3},{5450,7120,3},{5458,7120,3},{5462,7130,3}, {5467,7130,3},{5470,7120,3},{5473,7110,3},{5478,7105,3},{5485,7103,3},{5490,7100,3}, {5498,7102,3},{5505,7102,3},{5512,7098,3},{5517,7093,3},{5523,7085,3},{5528,7083,3}, {5530,7073,3},{5527,7065,3},{5527,7053,3},{5528,7048,3},{5527,7045,3},{5522,7042,3}, {5518,7032,3},{5513,7023,3},{5513,7013,3},{5518,7005,3},{5520,7000,3},{5522,6992,3}, {5528,6988,3},{5532,6980,3},{5533,6968,3},{5535,6960,3},{5533,6948,3},{5537,6940,3}, {5535,6927,3},{5533,6920,3},{5538,6913,3},{5542,6905,3},{5543,6895,3},{5537,6892,3}, {5533,6900,3},{5528,6900,3},{5532,6890,3},{5535,6882,3},{5533,6872,3},{5528,6870,3}, {5523,6863,3},{5518,6862,3},{5520,6852,3},{5520,6840,3},{5518,6835,3},{5518,6825,3}, {5518,6822,3},{5518,6818,3},{5513,6820,3},{5508,6827,3},{5502,6822,3},{5497,6822,3}, {5495,6810,3},{5495,6802,3},{5497,6793,3},{5497,6785,3},{5492,6778,3},{5487,6772,3}, {5485,6763,3},{5483,6755,3},{5485,6743,3},{5487,6735,3},{5487,6732,3},{5482,6727,3}, {5480,6717,3},{5478,6707,3},{5478,6695,3},{5477,6685,3},{5475,6675,3},{5473,6673,3}, {5472,6660,3},{5472,6652,3},{5470,6640,3},{5468,6630,3},{5465,6618,3},{5463,6605,3}, {5462,6597,3},{5470,6597,3},{5470,6587,3},{5465,6582,3},{5460,6577,3},{5463,6567,3}, {5463,6558,3},{5465,6550,3},{5465,6547,3},{5458,6548,3},{5457,6548,3},{5458,6538,3}, {5457,6528,3},{5453,6522,3},{5445,6518,3},{5440,6523,3},{5433,6522,3},{5433,6512,3}, {5440,6503,3},{5442,6495,3},{5438,6485,3},{5435,6475,3},{5440,6475,3},{5440,6465,3}, {5437,6457,3},{5437,6448,3},{5433,6445,3},{5433,6435,3},{5432,6427,3},{5432,6417,3}, {5432,6408,3},{5428,6402,3},{5430,6402,3},{5432,6400,3},{5428,6398,3},{5428,6388,3}, {5427,6380,3},{5425,6372,3},{5423,6363,3},{5422,6355,3},{5420,6345,3},{5420,6333,3}, {5420,6325,3},{5418,6317,3},{5413,6317,3},{5410,6308,3},{5410,6298,3},{5412,6288,3}, {5412,6283,3},{5407,6277,3},{5403,6270,3},{5400,6263,3},{5397,6258,3},{5392,6257,3}, {5390,6253,3},{5393,6245,3},{5398,6242,3},{5402,6248,3},{5405,6242,3},{5403,6233,3}, {5403,6225,3},{5403,6213,3},{5405,6210,3},{5403,6202,3},{5398,6203,3},{5397,6205,3}, {5395,6195,3},{5397,6187,3},{5402,6190,3},{5403,6185,3},{5398,6180,3},{5403,6173,3}, {5400,6163,3},{5397,6163,3},{5395,6162,3},{5400,6157,3},{5403,6150,3},{5408,6147,3}, {5408,6137,3},{5408,6133,3},{5403,6125,3},{5398,6128,3},{5393,6125,3},{5392,6125,3}, {5392,6120,3},{5395,6117,3},{5395,6107,3},{5395,6103,3},{5390,6098,3},{5388,6107,3}, {5388,6112,3},{5385,6118,3},{5382,6122,3},{5377,6118,3},{5372,6112,3},{5370,6105,3}, {5365,6105,3},{5367,6093,3},{5362,6092,3},{5362,6102,3},{5360,6110,3},{5357,6117,3}, {5357,6127,3},{5357,6135,3},{5360,6143,3},{5358,6152,3},{5353,6158,3},{5350,6158,3}, {5347,6152,3},{5347,6142,3},{5348,6138,3},{5350,6130,3},{5350,6127,3},{5343,6123,3}, {5340,6117,3},{5332,6117,3},{5327,6125,3},{5327,6133,3},{5325,6143,3},{5322,6152,3}, {5322,6162,3},{5325,6167,3},{5322,6173,3},{5317,6180,3},{5313,6190,3},{5313,6198,3}, {5312,6208,3},{5312,6212,3},{5307,6213,3},{5300,6213,3},{5297,6207,3},{5295,6198,3}, {5302,6190,3},{5300,6180,3},{5300,6172,3},{5297,6165,3},{5300,6158,3},{5303,6150,3}, {5303,6147,3},{5300,6140,3},{5300,6132,3},{5303,6123,3},{5300,6115,3},{5297,6112,3}, {5298,6103,3},{5293,6107,3},{5288,6102,3},{5283,6095,3},{5280,6088,3},{5277,6083,3}, {5275,6073,3},{5270,6072,3},{5265,6075,3},{5263,6083,3},{5258,6085,3},{5252,6085,3}, {5250,6093,3},{5250,6097,3},{5243,6100,3},{5237,6105,3},{5230,6100,3},{5227,6093,3}, {5223,6085,3},{5223,6080,3},{5218,6075,3},{5217,6067,3},{5217,6055,3},{5213,6047,3}, {5210,6040,3},{5203,6033,3},{5200,6023,3},{5200,6015,3},{5198,6007,3},{5193,6005,3}, {5188,6010,3},{5187,6018,3},{5188,6018,3},{5190,6017,3},{5188,6025,3},{5185,6033,3}, {5182,6040,3},{5180,6052,3},{5173,6045,3},{5170,6040,3},{5165,6048,3},{5162,6060,3}, {5162,6070,3},{5162,6078,3},{5162,6090,3},{5155,6093,3},{5150,6097,3},{5147,6103,3}, {5145,6112,3},{5145,6113,3},{5145,6118,3},{5142,6128,3},{5140,6138,3},{5143,6145,3}, {5140,6152,3},{5133,6155,3},{5130,6163,3},{5127,6168,3},{5125,6158,3},{5118,6157,3}, {5113,6155,3},{5103,6152,3},{5098,6150,3},{5090,6148,3},{5083,6147,3},{5078,6138,3}, {5075,6125,3},{5073,6118,3},{5070,6103,3},{5068,6093,3},{5067,6083,3},{5067,6068,3}, {5067,6058,3},{5067,6048,3},{5068,6038,3},{5070,6032,3},{5075,6023,3},{5080,6018,3}, {5083,6018,3},{5087,6008,3},{5083,6000,3},{5082,6000,3},{5077,5997,3},{5070,5993,3}, {5065,5990,3},{5060,5983,3},{5057,5972,3},{5053,5962,3},{5052,5953,3},{5058,5952,3}, {5065,5948,3},{5065,5938,3},{5067,5930,3},{5065,5928,3},{5068,5918,3},{5070,5903,3}, {5070,5895,3},{5072,5887,3},{5075,5885,3},{5078,5878,3},{5083,5878,3},{5083,5870,3}, {5082,5862,3},{5088,5857,3},{5093,5857,3},{5100,5860,3},{5107,5857,3},{5108,5848,3}, {5108,5840,3},{5108,5837,3},{5115,5833,3},{5117,5830,3},{5113,5822,3},{5110,5822,3}, {5107,5818,3},{5108,5810,3},{5110,5810,3},{5112,5810,3},{5113,5808,3},{5110,5802,3}, {5110,5793,3},{5112,5785,3},{5113,5783,3},{5113,5780,3},{5113,5778,3},{5108,5775,3}, {5100,5775,3},{5093,5773,3},{5092,5772,3},{5092,5768,3},{5095,5765,3},{5093,5757,3}, {5092,5753,3},{5088,5753,3},{5088,5743,3},{5093,5735,3},{5098,5732,3},{5102,5727,3}, {5107,5720,3},{5110,5718,3},{5107,5708,3},{5105,5700,3},{5107,5698,3},{5105,5690,3}, {5108,5682,3},{5108,5673,3},{5102,5673,3},{5097,5673,3},{5098,5665,3},{5103,5658,3}, {5107,5653,3},{5108,5652,3},{5108,5650,3},{5105,5647,3},{5098,5648,3},{5098,5647,3}, {5097,5640,3},{5092,5638,3},{5092,5630,3},{5093,5622,3},{5092,5617,3},{5085,5615,3}, {5080,5613,3},{5075,5612,3},{5072,5603,3},{5068,5595,3},{5065,5587,3},{5062,5577,3}, {5058,5572,3},{5057,5570,3},{5060,5562,3},{5063,5553,3},{5067,5548,3},{5067,5540,3}, {5065,5538,3},{5070,5530,3},{5075,5522,3},{5078,5515,3},{5082,5507,3},{5087,5510,3}, {5090,5510,3},{5093,5505,3},{5092,5502,3},{5088,5500,3},{5087,5492,3},{5085,5490,3}, {5085,5485,3},{5088,5483,3},{5088,5473,3},{5088,5472,3},{5082,5467,3},{5075,5467,3}, {5068,5472,3},{5063,5473,3},{5058,5465,3},{5055,5463,3},{5053,5453,3},{5053,5450,3}, {5058,5447,3},{5063,5442,3},{5068,5445,3},{5073,5445,3},{5078,5447,3},{5083,5452,3}, {5087,5445,3},{5088,5432,3},{5093,5425,3},{5098,5420,3},{5102,5417,3},{5103,5420,3}, {5105,5415,3},{5112,5413,3},{5113,5407,3},{5117,5403,3},{5118,5395,3},{5120,5387,3}, {5120,5378,3},{5120,5375,3},{5123,5368,3},{5127,5365,3},{5132,5362,3},{5137,5363,3}, {5142,5358,3},{5143,5350,3},{5148,5345,3},{5152,5338,3},{5150,5330,3},{5150,5322,3}, {5152,5318,3},{5153,5320,3},{5153,5315,3},{5150,5317,3},{5148,5312,3},{5148,5310,3}, {5148,5305,3},{5148,5297,3},{5147,5297,3},{5148,5295,3},{5150,5293,3},{5148,5292,3}, {5148,5288,3},{5150,5288,3},{5150,5280,3},{5153,5278,3},{5150,5275,3},{5148,5268,3}, {5147,5270,3},{5148,5267,3},{5145,5263,3},{5147,5260,3},{5147,5257,3},{5150,5252,3}, {5155,5250,3},{5162,5245,3},{5165,5238,3},{5175,5237,3},{5177,5235,3},{5177,5233,3}, {5172,5228,3},{5172,5218,3},{5167,5213,3},{5167,5205,3},{5167,5197,3},{5168,5185,3}, {5163,5180,3},{5158,5175,3},{5153,5180,3},{5148,5172,3},{5147,5163,3},{5153,5163,3}, {5153,5158,3},{5155,5157,3},{5157,5155,3},{5152,5152,3},{5148,5143,3},{5148,5132,3}, {5150,5128,3},{5155,5125,3},{5157,5135,3},{5165,5137,3},{5167,5130,3},{5168,5128,3}, {5168,5118,3},{5167,5107,3},{5168,5097,3},{5168,5088,3},{5173,5087,3},{5177,5077,3}, {5177,5075,3},{5170,5073,3},{5167,5080,3},{5160,5078,3},{5157,5068,3},{5157,5067,3}, {5163,5072,3},{5165,5062,3},{5165,5060,3},{5160,5055,3},{5160,5052,3},{5155,5050,3}, {5148,5052,3},{5147,5047,3},{5145,5047,3},{5143,5037,3},{5138,5033,3},{5132,5030,3}, {5130,5022,3},{5128,5012,3},{5125,5000,3},{5120,4987,3},{5115,4980,3},{5112,4973,3}, {5112,4963,3},{5112,4955,3},{5112,4947,3},{5113,4942,3},{5110,4937,3},{5103,4935,3}, {5100,4932,3},{5093,4940,3},{5088,4942,3},{5083,4933,3},{5083,4925,3},{5080,4915,3}, {5077,4907,3},{5072,4902,3},{5067,4895,3},{5063,4887,3},{5060,4882,3},{5062,4872,3}, {5067,4863,3},{5067,4860,3},{5065,4855,3},{5062,4857,3},{5058,4863,3},{5047,4867,3}, {5042,4867,3},{5033,4868,3},{5025,4872,3},{5020,4877,3},{5013,4877,3},{5010,4877,3}, {5008,4885,3},{5002,4888,3},{4997,4880,3},{4993,4873,3},{4990,4865,3},{4988,4857,3}, {4983,4843,3},{4982,4843,3},{4983,4838,3},{4983,4835,3},{4987,4830,3},{4987,4828,3}, {4987,4825,3},{4987,4822,3},{4993,4818,3},{5000,4813,3},{5005,4812,3},{5010,4808,3}, {5013,4802,3},{5018,4797,3},{5023,4792,3},{5028,4785,3},{5033,4780,3},{5037,4773,3}, {5040,4767,3},{5045,4758,3},{5045,4752,3},{5042,4745,3},{5037,4740,3},{5033,4740,3}, {5033,4732,3},{5027,4730,3},{5020,4727,3},{5013,4733,3},{5005,4730,3},{5000,4727,3}, {4993,4717,3},{4988,4700,3},{4987,4692,3},{4980,4688,3},{4975,4687,3},{4968,4687,3}, {4963,4687,3},{4957,4683,3},{4952,4682,3},{4945,4680,3},{4938,4678,3},{4933,4678,3}, {4930,4687,3},{4925,4697,3},{4922,4702,3},{4913,4705,3},{4907,4700,3},{4900,4693,3}, {4897,4685,3},{4893,4678,3},{4885,4672,3},{4880,4670,3},{4875,4667,3},{4868,4663,3}, {4862,4658,3},{4855,4655,3},{4850,4652,3},{4845,4650,3},{4842,4658,3},{4838,4668,3}, {4837,4675,3},{4833,4688,3},{4833,4692,3},{4827,4700,3},{4822,4707,3},{4822,4710,3}, {4817,4712,3},{4810,4710,3},{4808,4718,3},{4803,4713,3},{4800,4702,3},{4795,4707,3}, {4790,4712,3},{4785,4715,3},{4782,4712,3},{4777,4717,3},{4772,4727,3},{4768,4735,3}, {4768,4737,3},{4773,4740,3},{4778,4742,3},{4780,4740,3},{4778,4750,3},{4777,4758,3}, {4775,4767,3},{4775,4778,3},{4775,4792,3},{4777,4800,3},{4775,4808,3},{4770,4817,3}, {4763,4822,3},{4758,4827,3},{4750,4832,3},{4747,4837,3},{4742,4843,3},{4742,4853,3}, {4742,4858,3},{4737,4862,3},{4732,4863,3},{4725,4865,3},{4717,4868,3},{4708,4873,3}, {4703,4877,3},{4697,4883,3},{4690,4890,3},{4683,4897,3},{4678,4900,3},{4673,4897,3}, {4670,4892,3},{4668,4883,3},{4668,4875,3},{4673,4870,3},{4677,4865,3},{4677,4858,3}, {4673,4852,3},{4668,4848,3},{4665,4848,3},{4663,4855,3},{4660,4857,3},{4660,4863,3}, {4657,4867,3},{4655,4875,3},{4650,4880,3},{4648,4882,3},{4645,4890,3},{4643,4897,3}, {4640,4903,3},{4638,4910,3},{4637,4917,3},{4638,4922,3},{4635,4922,3},{4630,4923,3}, {4625,4930,3},{4625,4928,3},{4627,4925,3},{4628,4915,3},{4632,4915,3},{4633,4917,3}, {4633,4913,3},{4625,4905,3},{4623,4912,3},{4615,4912,3},{4615,4910,3},{4618,4907,3}, {4620,4903,3},{4617,4902,3},{4617,4898,3},{4613,4893,3},{4610,4895,3},{4608,4895,3}, {4615,4888,3},{4610,4888,3},{4613,4887,3},{4613,4883,3},{4608,4888,3},{4607,4885,3}, {4612,4883,3},{4613,4878,3},{4610,4882,3},{4605,4882,3},{4608,4878,3},{4613,4870,3}, {4612,4870,3},{4612,4867,3},{4608,4867,3},{4608,4863,3},{4607,4870,3},{4602,4873,3}, {4598,4872,3},{4597,4865,3},{4597,4873,3},{4593,4877,3},{4592,4873,3},{4588,4875,3}, {4587,4878,3},{4585,4878,3},{4583,4878,3},{4585,4877,3},{4583,4872,3},{4582,4872,3}, {4587,4868,3},{4588,4870,3},{4588,4867,3},{4595,4860,3},{4597,4857,3},{4593,4850,3}, {4593,4845,3},{4587,4840,3},{4588,4837,3},{4585,4837,3},{4585,4840,3},{4583,4840,3}, {4583,4828,3},{4577,4825,3},{4577,4822,3},{4572,4825,3},{4572,4823,3},{4573,4820,3}, {4573,4815,3},{4572,4813,3},{4575,4807,3},{4572,4803,3},{4570,4800,3},{4572,4798,3}, {4572,4793,3},{4568,4790,3},{4572,4788,3},{4572,4785,3},{4565,4783,3},{4563,4785,3}, {4560,4782,3},{4568,4777,3},{4570,4767,3},{4573,4765,3},{4575,4762,3},{4577,4755,3}, {4573,4755,3},{4575,4758,3},{4572,4758,3},{4572,4763,3},{4567,4763,3},{4567,4760,3}, {4563,4760,3},{4562,4765,3},{4558,4763,3},{4557,4765,3},{4555,4763,3},{4557,4762,3}, {4565,4755,3},{4568,4743,3},{4572,4745,3},{4572,4750,3},{4572,4748,3},{4575,4738,3}, {4567,4742,3},{4563,4755,3},{4557,4757,3},{4553,4755,3},{4558,4750,3},{4557,4748,3}, {4550,4755,3},{4548,4750,3},{4542,4748,3},{4542,4738,3},{4540,4740,3},{4540,4745,3}, {4538,4747,3},{4537,4742,3},{4530,4738,3},{4518,4738,3},{4518,4730,3},{4497,4720,3}, {4497,4717,3},{4493,4715,3},{4495,4710,3},{4487,4712,3},{4478,4708,3},{4485,4702,3}, {4490,4702,3},{4492,4700,3},{4482,4702,3},{4477,4697,3},{4477,4693,3},{4473,4687,3}, {4470,4683,3},{4470,4678,3},{4465,4675,3},{4465,4672,3},{4457,4670,3},{4455,4672,3}, {4452,4668,3},{4445,4670,3},{4440,4677,3},{4438,4680,3},{4440,4683,3},{4437,4702,3}, {4433,4705,3},{4423,4710,3},{4420,4718,3},{4422,4720,3},{4422,4723,3},{4408,4728,3}, {4403,4735,3},{4392,4742,3},{4388,4743,3},{4387,4747,3},{4382,4743,3},{4382,4748,3}, {4377,4750,3},{4373,4743,3},{4368,4745,3},{4362,4740,3},{4360,4738,3},{4362,4737,3}, {4355,4738,3},{4353,4740,3},{4350,4740,3},{4350,4743,3},{4353,4747,3},{4363,4747,3}, {4368,4750,3},{4372,4750,3},{4380,4753,3},{4387,4753,3},{4390,4763,3},{4387,4770,3}, {4383,4765,3},{4372,4758,3},{4357,4753,3},{4352,4753,3},{4345,4748,3},{4330,4748,3}, {4328,4750,3},{4333,4757,3},{4330,4758,3},{4320,4748,3},{4312,4748,3},{4308,4745,3}, {4302,4747,3},{4295,4755,3},{4295,4758,3},{4290,4762,3},{4287,4770,3},{4277,4772,3}, {4272,4770,3},{4263,4773,3},{4260,4787,3},{4247,4795,3},{4238,4802,3},{4233,4812,3}, {4217,4823,3},{4210,4830,3},{4193,4838,3},{4190,4843,3},{4188,4853,3},{4185,4850,3}, {4178,4847,3},{4173,4845,3},{4167,4843,3},{4162,4840,3},{4157,4832,3},{4153,4827,3}, {4150,4820,3},{4150,4812,3},{4148,4805,3},{4143,4803,3},{4138,4798,3},{4135,4793,3}, {4130,4792,3},{4123,4790,3},{4122,4788,3},{4122,4780,3},{4118,4775,3},{4122,4770,3}, {4123,4763,3},{4122,4757,3},{4123,4750,3},{4125,4750,3},{4127,4743,3},{4128,4737,3}, {4130,4730,3},{4132,4727,3},{4138,4725,3},{4142,4722,3},{4148,4718,3},{4152,4717,3}, {4157,4712,3},{4158,4712,3},{4155,4707,3},{4155,4702,3},{4160,4698,3},{4163,4700,3}, {4163,4697,3},{4168,4692,3},{4172,4692,3},{4173,4685,3},{4178,4678,3},{4183,4677,3}, {4185,4677,3},{4187,4675,3},{4183,4670,3},{4182,4662,3},{4180,4658,3},{4182,4655,3}, {4187,4653,3},{4188,4647,3},{4190,4642,3},{4195,4638,3},{4193,4632,3},{4198,4627,3}, {4200,4625,3},{4198,4618,3},{4202,4612,3},{4200,4612,3},{4198,4610,3},{4203,4607,3}, {4203,4605,3},{4203,4597,3},{4203,4595,3},{4207,4590,3},{4212,4587,3},{4212,4580,3}, {4215,4573,3},{4218,4567,3},{4222,4562,3},{4228,4563,3},{4228,4572,3},{4230,4573,3}, {4235,4573,3},{4243,4577,3},{4248,4577,3},{4250,4567,3},{4253,4558,3},{4253,4552,3}, {4255,4545,3},{4253,4537,3},{4253,4535,3},{4257,4530,3},{4262,4527,3},{4267,4520,3}, {4270,4515,3},{4270,4508,3},{4273,4500,3},{4275,4493,3},{4273,4487,3},{4267,4482,3}, {4262,4478,3},{4268,4473,3},{4273,4472,3},{4275,4465,3},{4275,4452,3},{4273,4445,3}, {4272,4440,3},{4272,4432,3},{4268,4425,3},{4263,4422,3},{4262,4417,3},{4262,4408,3}, {4260,4402,3},{4257,4397,3},{4257,4390,3},{4258,4382,3},{4258,4378,3},{4263,4373,3}, {4267,4377,3},{4272,4380,3},{4275,4380,3},{4277,4372,3},{4280,4365,3},{4283,4360,3}, {4287,4355,3},{4288,4348,3},{4290,4340,3},{4290,4333,3},{4292,4327,3},{4293,4320,3}, {4300,4312,3},{4303,4305,3},{4307,4303,3},{4310,4303,3},{4312,4297,3},{4312,4293,3}, {4317,4290,3},{4317,4283,3},{4318,4275,3},{4317,4268,3},{4315,4268,3},{4317,4262,3}, {4318,4255,3},{4320,4248,3},{4322,4247,3},{4323,4247,3},{4325,4245,3},{4325,4238,3}, {4322,4232,3},{4322,4228,3},{4323,4222,3},{4322,4215,3},{4320,4208,3},{4320,4205,3}, {4322,4198,3},{4323,4188,3},{4325,4188,3},{4320,4183,3},{4322,4177,3},{4323,4173,3}, {4322,4172,3},{4322,4163,3},{4325,4157,3},{4327,4152,3},{4330,4143,3},{4335,4142,3}, {4337,4137,3},{4333,4132,3},{4337,4123,3},{4338,4117,3},{4340,4113,3},{4338,4110,3}, {4338,4107,3},{4343,4100,3},{4343,4093,3},{4347,4090,3},{4348,4083,3},{4352,4077,3}, {4353,4070,3},{4355,4068,3},{4357,4065,3},{4352,4058,3},{4353,4052,3},{4355,4045,3}, {4355,4037,3},{4357,4030,3},{4358,4023,3},{4358,4017,3},{4355,4010,3},{4352,4007,3}, {4345,4003,3},{4340,4002,3},{4338,4002,3},{3783,12668,131},{3795,12668,3}, {3795,12675,3},{3800,12680,3},{3810,12688,3},{3813,12695,3},{3822,12698,3}, {3828,12710,3},{3832,12722,3},{3833,12740,3},{3830,12750,3},{3832,12757,3}, {3833,12778,3},{3830,12783,3},{3832,12790,3},{3832,12807,3},{3835,12818,3}, {3843,12828,3},{3850,12832,3},{3858,12830,3},{3862,12837,3},{3830,12855,3}, {3813,12863,3},{3802,12873,3},{3787,12885,3},{3767,12907,3},{3762,12907,3}, {3757,12913,3},{3752,12913,3},{3747,12918,3},{3732,12928,3},{3725,12935,3}, {3715,12935,3},{3707,12943,3},{3702,12942,3},{3695,12942,3},{3687,12943,3}, {3677,12948,3},{3672,12947,3},{3668,12947,3},{3667,12943,3},{3662,12942,3}, {3650,12945,3},{3640,12943,3},{3632,12938,3},{3620,12938,3},{3608,12943,3}, {3603,12938,3},{3600,12942,3},{3600,12945,3},{3608,12955,3},{3602,12958,3}, {3592,12953,3},{3585,12955,3},{3563,12947,3},{3558,12948,3},{3548,12943,3}, {3547,12942,3},{3552,12940,3},{3553,12937,3},{3547,12938,3},{3545,12935,3}, {3542,12937,3},{3538,12935,3},{3535,12937,3},{3530,12928,3},{3518,12923,3}, {3515,12918,3},{3515,12915,3},{3513,12912,3},{3512,12913,3},{3510,12912,3}, {3512,12907,3},{3507,12903,3},{3505,12903,3},{3507,12900,3},{3503,12900,3}, {3503,12897,3},{3513,12898,3},{3510,12893,3},{3510,12892,3},{3512,12890,3}, {3510,12888,3},{3508,12880,3},{3510,12880,3},{3510,12870,3},{3513,12870,3}, {3513,12868,3},{3512,12867,3},{3513,12865,3},{3515,12863,3},{3513,12862,3}, {3520,12862,3},{3522,12860,3},{3517,12857,3},{3505,12865,3},{3505,12860,3}, {3510,12858,3},{3510,12850,3},{3510,12847,3},{3507,12848,3},{3503,12838,3}, {3500,12838,3},{3505,12848,3},{3500,12850,3},{3500,12848,3},{3498,12842,3}, {3497,12845,3},{3488,12843,3},{3488,12845,3},{3490,12845,3},{3488,12847,3}, {3483,12845,3},{3483,12842,3},{3485,12840,3},{3487,12842,3},{3488,12832,3}, {3490,12832,3},{3490,12835,3},{3495,12833,3},{3490,12828,3},{3493,12827,3}, {3493,12823,3},{3492,12820,3},{3488,12820,3},{3490,12815,3},{3488,12813,3}, {3492,12812,3},{3492,12807,3},{3495,12805,3},{3497,12807,3},{3503,12805,3}, {3508,12807,3},{3503,12803,3},{3503,12800,3},{3498,12802,3},{3498,12798,3}, {3498,12795,3},{3502,12793,3},{3497,12792,3},{3493,12787,3},{3495,12773,3}, {3498,12772,3},{3493,12772,3},{3490,12765,3},{3493,12760,3},{3492,12757,3}, {3488,12758,3},{3482,12763,3},{3482,12767,3},{3483,12772,3},{3483,12775,3}, {3485,12777,3},{3482,12777,3},{3472,12775,3},{3472,12770,3},{3473,12765,3}, {3470,12763,3},{3462,12763,3},{3465,12755,3},{3470,12755,3},{3475,12758,3}, {3480,12755,3},{3480,12753,3},{3482,12753,3},{3488,12752,3},{3487,12750,3}, {3483,12748,3},{3482,12737,3},{3480,12742,3},{3477,12740,3},{3477,12735,3}, {3475,12737,3},{3475,12740,3},{3470,12738,3},{3463,12748,3},{3463,12745,3}, {3462,12750,3},{3458,12752,3},{3457,12748,3},{3460,12738,3},{3458,12733,3}, {3453,12737,3},{3453,12743,3},{3447,12738,3},{3447,12733,3},{3443,12733,3}, {3443,12732,3},{3448,12728,3},{3452,12725,3},{3453,12723,3},{3453,12722,3}, {3452,12717,3},{3452,12713,3},{3453,12712,3},{3457,12713,3},{3458,12718,3}, {3463,12720,3},{3457,12720,3},{3457,12725,3},{3462,12727,3},{3467,12723,3}, {3468,12727,3},{3470,12728,3},{3465,12730,3},{3465,12733,3},{3470,12735,3}, {3473,12733,3},{3472,12730,3},{3477,12725,3},{3468,12720,3},{3468,12713,3}, {3465,12710,3},{3462,12700,3},{3453,12698,3},{3450,12693,3},{3445,12695,3}, {3445,12690,3},{3442,12688,3},{3445,12682,3},{3457,12680,3},{3458,12677,3}, {3455,12675,3},{3452,12677,3},{3452,12673,3},{3448,12677,3},{3445,12670,3}, {3443,12673,3},{3443,12668,3},{3442,12668,3},{3440,12663,3},{3430,12660,3}, {3430,12657,3},{3428,12652,3},{3433,12652,3},{3435,12648,3},{3438,12648,3}, {3442,12652,3},{3443,12648,3},{3447,12648,3},{3448,12647,3},{3450,12648,3}, {3450,12653,3},{3453,12652,3},{3455,12653,3},{3457,12653,3},{3455,12647,3}, {3453,12645,3},{3455,12642,3},{3453,12640,3},{3455,12638,3},{3455,12637,3}, {3458,12635,3},{3457,12632,3},{3458,12628,3},{3460,12630,3},{3460,12632,3}, {3462,12632,3},{3463,12628,3},{3468,12627,3},{3475,12630,3},{3470,12635,3}, {3465,12635,3},{3462,12637,3},{3460,12638,3},{3458,12645,3},{3460,12648,3}, {3462,12643,3},{3465,12642,3},{3465,12638,3},{3470,12640,3},{3468,12645,3}, {3465,12645,3},{3462,12652,3},{3462,12653,3},{3463,12653,3},{3462,12662,3}, {3463,12658,3},{3472,12650,3},{3473,12642,3},{3472,12638,3},{3473,12637,3}, {3477,12640,3},{3475,12645,3},{3477,12648,3},{3475,12653,3},{3477,12653,3}, {3480,12655,3},{3478,12663,3},{3480,12663,3},{3482,12667,3},{3482,12658,3}, {3485,12657,3},{3488,12658,3},{3490,12658,3},{3488,12653,3},{3485,12655,3}, {3478,12652,3},{3478,12650,3},{3482,12648,3},{3478,12638,3},{3480,12637,3}, {3485,12642,3},{3487,12640,3},{3488,12642,3},{3490,12640,3},{3495,12640,3}, {3497,12643,3},{3498,12640,3},{3497,12637,3},{3493,12637,3},{3492,12635,3}, {3493,12632,3},{3495,12632,3},{3497,12630,3},{3497,12635,3},{3498,12633,3}, {3500,12638,3},{3503,12637,3},{3508,12630,3},{3505,12632,3},{3505,12630,3}, {3505,12627,3},{3508,12628,3},{3512,12625,3},{3513,12628,3},{3512,12632,3}, {3515,12635,3},{3513,12635,3},{3510,12633,3},{3507,12637,3},{3507,12640,3}, {3503,12640,3},{3502,12643,3},{3508,12647,3},{3512,12642,3},{3518,12637,3}, {3520,12638,3},{3522,12637,3},{3523,12637,3},{3523,12632,3},{3525,12632,3}, {3525,12638,3},{3525,12635,3},{3528,12638,3},{3533,12638,3},{3537,12642,3}, {3533,12645,3},{3540,12642,3},{3552,12650,3},{3553,12653,3},{3553,12662,3}, {3555,12665,3},{3553,12668,3},{3558,12667,3},{3558,12650,3},{3562,12647,3}, {3563,12647,3},{3575,12665,3},{3575,12667,3},{3572,12668,3},{3577,12670,3}, {3578,12675,3},{3577,12678,3},{3580,12678,3},{3585,12670,3},{3587,12673,3}, {3587,12680,3},{3590,12683,3},{3588,12673,3},{3590,12665,3},{3588,12662,3}, {3593,12662,3},{3597,12663,3},{3598,12675,3},{3602,12677,3},{3603,12685,3}, {3605,12687,3},{3603,12677,3},{3600,12673,3},{3600,12668,3},{3607,12663,3}, {3608,12665,3},{3610,12662,3},{3612,12660,3},{3613,12652,3},{3612,12650,3}, {3615,12652,3},{3617,12660,3},{3620,12658,3},{3620,12655,3},{3622,12653,3}, {3630,12658,3},{3630,12653,3},{3632,12652,3},{3635,12658,3},{3637,12657,3}, {3637,12652,3},{3640,12650,3},{3640,12652,3},{3642,12650,3},{3647,12662,3}, {3647,12657,3},{3643,12652,3},{3645,12648,3},{3650,12648,3},{3653,12652,3}, {3653,12647,3},{3657,12647,3},{3658,12647,3},{3660,12653,3},{3663,12652,3}, {3665,12650,3},{3667,12652,3},{3668,12648,3},{3672,12650,3},{3675,12647,3}, {3672,12645,3},{3672,12643,3},{3670,12643,3},{3665,12642,3},{3663,12638,3}, {3670,12638,3},{3673,12635,3},{3670,12633,3},{3670,12630,3},{3665,12633,3}, {3662,12633,3},{3662,12635,3},{3658,12630,3},{3663,12630,3},{3668,12627,3}, {3668,12628,3},{3672,12627,3},{3668,12623,3},{3667,12617,3},{3670,12617,3}, {3670,12622,3},{3673,12620,3},{3673,12618,3},{3675,12620,3},{3675,12615,3}, {3672,12615,3},{3670,12613,3},{3677,12612,3},{3680,12617,3},{3678,12618,3}, {3677,12620,3},{3680,12620,3},{3680,12623,3},{3682,12620,3},{3685,12622,3}, {3688,12618,3},{3688,12620,3},{3690,12623,3},{3687,12623,3},{3687,12628,3}, {3695,12628,3},{3697,12630,3},{3688,12632,3},{3685,12630,3},{3683,12632,3}, {3680,12628,3},{3678,12628,3},{3680,12632,3},{3678,12635,3},{3683,12633,3}, {3685,12633,3},{3683,12637,3},{3685,12640,3},{3687,12638,3},{3690,12642,3}, {3692,12642,3},{3695,12635,3},{3697,12635,3},{3697,12637,3},{3697,12638,3}, {3698,12633,3},{3700,12637,3},{3698,12640,3},{3700,12638,3},{3700,12643,3}, {3698,12645,3},{3695,12643,3},{3695,12645,3},{3693,12648,3},{3690,12645,3}, {3683,12648,3},{3690,12650,3},{3695,12652,3},{3690,12658,3},{3695,12655,3}, {3700,12648,3},{3700,12650,3},{3697,12653,3},{3697,12658,3},{3698,12657,3}, {3700,12653,3},{3703,12653,3},{3705,12650,3},{3705,12652,3},{3702,12657,3}, {3697,12662,3},{3692,12663,3},{3695,12665,3},{3697,12668,3},{3698,12670,3}, {3697,12672,3},{3693,12672,3},{3697,12675,3},{3697,12678,3},{3693,12680,3}, {3688,12678,3},{3692,12682,3},{3690,12683,3},{3683,12683,3},{3680,12685,3}, {3677,12683,3},{3675,12685,3},{3680,12687,3},{3682,12687,3},{3683,12687,3}, {3682,12690,3},{3685,12687,3},{3687,12687,3},{3692,12700,3},{3697,12698,3}, {3698,12705,3},{3698,12703,3},{3698,12698,3},{3693,12698,3},{3692,12690,3}, {3700,12682,3},{3700,12688,3},{3702,12687,3},{3702,12692,3},{3703,12692,3}, {3705,12688,3},{3710,12688,3},{3705,12687,3},{3703,12685,3},{3705,12683,3}, {3703,12680,3},{3705,12675,3},{3707,12678,3},{3708,12677,3},{3712,12678,3}, {3713,12687,3},{3715,12687,3},{3718,12687,3},{3717,12680,3},{3718,12680,3}, {3712,12670,3},{3713,12668,3},{3715,12670,3},{3715,12667,3},{3718,12667,3}, {3722,12672,3},{3722,12668,3},{3725,12667,3},{3727,12670,3},{3725,12677,3}, {3722,12678,3},{3727,12680,3},{3728,12682,3},{3727,12687,3},{3730,12685,3}, {3730,12680,3},{3730,12677,3},{3733,12675,3},{3733,12670,3},{3735,12675,3}, {3738,12675,3},{3740,12667,3},{3747,12663,3},{3748,12663,3},{3748,12667,3}, {3752,12665,3},{3758,12665,3},{3760,12662,3},{3762,12658,3},{3765,12655,3}, {3777,12653,3},{3775,12660,3},{3777,12665,3},{3773,12667,3},{3767,12667,3}, {3763,12675,3},{3768,12668,3},{3773,12670,3},{3777,12668,3},{3783,12668,3}, {3782,12667,3},{3778,12665,3},{3777,12658,3},{3785,12643,3},{3788,12640,3}, {3788,12638,3},{3783,12625,3},{3785,12622,3},{3782,12615,3},{3777,12617,3}, {3773,12615,3},{3773,12613,3},{3775,12610,3},{3778,12610,3},{3780,12605,3}, {3787,12605,3},{3785,12602,3},{3790,12598,3},{3790,12597,3},{3788,12595,3}, {3787,12597,3},{3783,12598,3},{3782,12598,3},{3783,12592,3},{3793,12583,3}, {3795,12580,3},{3798,12580,3},{3800,12570,3},{3802,12567,3},{3803,12558,3}, {3802,12557,3},{3798,12560,3},{3798,12562,3},{3797,12565,3},{3798,12568,3}, {3795,12568,3},{3795,12572,3},{3792,12570,3},{3792,12573,3},{3788,12567,3}, {3792,12563,3},{3785,12563,3},{3783,12563,3},{3782,12565,3},{3780,12562,3}, {3778,12562,3},{3775,12562,3},{3777,12558,3},{3778,12558,3},{3778,12555,3}, {3777,12553,3},{3780,12552,3},{3772,12547,3},{3772,12538,3},{3767,12535,3}, {3772,12533,3},{3775,12537,3},{3775,12540,3},{3777,12545,3},{3777,12538,3}, {3778,12538,3},{3780,12538,3},{3782,12543,3},{3782,12548,3},{3780,12550,3}, {3782,12552,3},{3783,12553,3},{3783,12548,3},{3785,12548,3},{3788,12552,3}, {3790,12547,3},{3792,12545,3},{3788,12543,3},{3788,12538,3},{3787,12543,3}, {3785,12545,3},{3787,12537,3},{3785,12535,3},{3785,12538,3},{3780,12532,3}, {3782,12530,3},{3782,12523,3},{3788,12532,3},{3790,12528,3},{3790,12525,3}, {3793,12525,3},{3793,12523,3},{3788,12522,3},{3787,12517,3},{3790,12502,3}, {3793,12502,3},{3792,12498,3},{3795,12500,3},{3797,12507,3},{3797,12510,3}, {3797,12517,3},{3798,12518,3},{3798,12515,3},{3798,12510,3},{3803,12510,3}, {3805,12520,3},{3802,12522,3},{3802,12525,3},{3807,12527,3},{3808,12513,3}, {3807,12502,3},{3808,12495,3},{3812,12492,3},{3813,12488,3},{3810,12487,3}, {3810,12478,3},{3812,12467,3},{3813,12467,3},{3813,12473,3},{3818,12478,3}, {3818,12482,3},{3822,12485,3},{3823,12487,3},{3822,12490,3},{3818,12493,3}, {3822,12498,3},{3823,12497,3},{3822,12492,3},{3825,12487,3},{3833,12487,3}, {3847,12495,3},{3843,12498,3},{3850,12502,3},{3853,12498,3},{3858,12500,3}, {3858,12507,3},{3855,12505,3},{3855,12508,3},{3857,12510,3},{3858,12513,3}, {3862,12513,3},{3865,12512,3},{3867,12512,3},{3862,12518,3},{3867,12520,3}, {3865,12522,3},{3867,12527,3},{3865,12532,3},{3867,12533,3},{3868,12543,3}, {3870,12545,3},{3868,12552,3},{3865,12552,3},{3868,12555,3},{3863,12560,3}, {3863,12565,3},{3865,12563,3},{3865,12560,3},{3870,12553,3},{3872,12548,3}, {3878,12545,3},{3875,12542,3},{3873,12543,3},{3872,12542,3},{3870,12537,3}, {3873,12537,3},{3870,12533,3},{3873,12530,3},{3870,12530,3},{3870,12528,3}, {3872,12523,3},{3875,12527,3},{3878,12523,3},{3880,12523,3},{3873,12522,3}, {3878,12520,3},{3878,12515,3},{3880,12513,3},{3888,12515,3},{3892,12520,3}, {3893,12518,3},{3898,12523,3},{3900,12522,3},{3907,12527,3},{3908,12533,3}, {3912,12528,3},{3915,12528,3},{3917,12533,3},{3918,12533,3},{3922,12537,3}, {3922,12542,3},{3923,12538,3},{3930,12545,3},{3932,12542,3},{3935,12542,3}, {3937,12540,3},{3937,12543,3},{3938,12545,3},{3940,12537,3},{3940,12535,3}, {3943,12538,3},{3943,12535,3},{3945,12533,3},{3948,12538,3},{3953,12540,3}, {3955,12545,3},{3958,12545,3},{3952,12528,3},{3957,12523,3},{3957,12522,3}, {3958,12522,3},{3958,12517,3},{3957,12517,3},{3955,12512,3},{3960,12510,3}, {3960,12505,3},{3963,12500,3},{3963,12497,3},{3967,12495,3},{3965,12493,3}, {3965,12492,3},{3970,12488,3},{3972,12485,3},{3972,12480,3},{3978,12475,3}, {3977,12473,3},{3973,12475,3},{3970,12473,3},{3968,12475,3},{3963,12475,3}, {3963,12470,3},{3960,12462,3},{3962,12462,3},{3968,12465,3},{3972,12458,3}, {3977,12458,3},{3978,12457,3},{3982,12457,3},{3982,12442,3},{3987,12440,3}, {3987,12437,3},{3992,12432,3},{3993,12437,3},{4002,12438,3},{4002,12443,3}, {4002,12447,3},{4002,12450,3},{4005,12438,3},{4010,12437,3},{4022,12455,3}, {4025,12455,3},{4028,12462,3},{4030,12472,3},{4037,12475,3},{4042,12483,3}, {4048,12488,3},{4045,12492,3},{4045,12503,3},{4047,12505,3},{4052,12500,3}, {4053,12503,3},{4055,12508,3},{4058,12515,3},{4060,12525,3},{4062,12525,3}, {4065,12528,3},{4065,12532,3},{4063,12533,3},{4063,12537,3},{4062,12540,3}, {4067,12542,3},{4067,12547,3},{4072,12547,3},{4072,12555,3},{4077,12555,3}, {4078,12558,3},{4077,12560,3},{4075,12562,3},{4077,12568,3},{4080,12565,3}, {4082,12565,3},{4087,12570,3},{4087,12573,3},{4088,12577,3},{4087,12582,3}, {4090,12588,3},{4090,12592,3},{4088,12593,3},{4090,12602,3},{4092,12598,3}, {4093,12603,3},{4097,12607,3},{4100,12607,3},{4100,12610,3},{4102,12610,3}, {4105,12613,3},{4108,12612,3},{4110,12618,3},{4115,12628,3},{4122,12632,3}, {4123,12635,3},{4127,12637,3},{4135,12645,3},{4137,12650,3},{4133,12650,3}, {4135,12653,3},{4143,12650,3},{4150,12655,3},{4157,12658,3},{4162,12657,3}, {4163,12660,3},{4167,12662,3},{4167,12667,3},{4170,12672,3},{4172,12668,3}, {4173,12670,3},{4170,12678,3},{4173,12680,3},{4173,12685,3},{4178,12690,3}, {4180,12693,3},{4177,12693,3},{4173,12703,3},{4168,12708,3},{4167,12703,3}, {4165,12703,3},{4163,12710,3},{4162,12710,3},{4160,12713,3},{4158,12718,3}, {4153,12710,3},{4152,12713,3},{4153,12717,3},{4152,12718,3},{4152,12722,3}, {4150,12723,3},{4150,12728,3},{4147,12727,3},{4147,12753,3},{4143,12755,3}, {4140,12763,3},{4142,12765,3},{4140,12785,3},{4143,12787,3},{4143,12790,3}, {4145,12793,3},{4142,12798,3},{4145,12800,3},{4142,12802,3},{4140,12802,3}, {4142,12805,3},{4138,12805,3},{4138,12808,3},{4140,12810,3},{4137,12812,3}, {4142,12820,3},{4158,12830,3},{4165,12827,3},{4170,12817,3},{4177,12813,3}, {4180,12810,3},{4192,12807,3},{4200,12807,3},{4203,12833,3},{4203,12842,3}, {4200,12847,3},{4200,12850,3},{4200,12857,3},{4202,12860,3},{4203,12863,3}, {4202,12868,3},{4205,12873,3},{4202,12893,3},{4208,12895,3},{4210,12903,3}, {4213,12907,3},{4213,12912,3},{4222,12922,3},{4223,12920,3},{4223,12918,3}, {4230,12922,3},{4232,12918,3},{4232,12923,3},{4233,12923,3},{4235,12922,3}, {4237,12923,3},{4238,12930,3},{4242,12930,3},{4242,12935,3},{4243,12933,3}, {4245,12935,3},{4243,12937,3},{4243,12945,3},{4237,12953,3},{4240,12957,3}, {4242,12960,3},{4243,12958,3},{4245,12960,3},{4243,12967,3},{4243,12970,3}, {4248,12973,3},{4257,12973,3},{4260,12977,3},{4262,12975,3},{4263,12975,3}, {4265,12977,3},{4267,12978,3},{4270,12975,3},{4285,12980,3},{4292,12985,3}, {4297,12985,3},{4297,12990,3},{4298,12988,3},{4300,12992,3},{4298,12995,3}, {4295,13005,3},{4298,13010,3},{4297,13013,3},{4292,13010,3},{4290,13025,3}, {4272,13025,3},{4260,13038,3},{4260,13043,3},{4255,13043,3},{4255,13045,3}, {4255,13047,3},{4260,13047,3},{4260,13052,3},{4248,13055,3},{4247,13057,3}, {4243,13057,3},{4242,13060,3},{4238,13065,3},{4232,13065,3},{4228,13068,3}, {4225,13060,3},{4228,13060,3},{4230,13058,3},{4232,13048,3},{4230,13043,3}, {4232,13040,3},{4227,13038,3},{4225,13040,3},{4223,13037,3},{4218,13033,3}, {4218,13030,3},{4222,13030,3},{4217,13022,3},{4210,13020,3},{4208,13017,3}, {4207,13017,3},{4207,13010,3},{4205,13008,3},{4205,13005,3},{4200,13003,3}, {4200,13000,3},{4198,12998,3},{4197,13000,3},{4195,12998,3},{4188,12997,3}, {4190,12990,3},{4187,12988,3},{4180,12988,3},{4177,12985,3},{4175,12978,3}, {4167,12973,3},{4165,12970,3},{4155,12967,3},{4148,12967,3},{4143,12970,3}, {4137,12980,3},{4128,12975,3},{4125,12975,3},{4118,12972,3},{4098,12972,3}, {4093,12975,3},{4083,12972,3},{4082,12957,3},{4078,12953,3},{4078,12948,3}, {4073,12935,3},{4068,12932,3},{4067,12930,3},{4070,12927,3},{4068,12922,3}, {4055,12917,3},{4047,12910,3},{4045,12898,3},{4037,12888,3},{4030,12865,3}, {4027,12863,3},{4022,12868,3},{4018,12865,3},{4017,12860,3},{4013,12852,3}, {4008,12838,3},{4003,12833,3},{4002,12832,3},{4005,12828,3},{4007,12825,3}, {4003,12823,3},{4002,12815,3},{4003,12813,3},{4003,12800,3},{4002,12800,3}, {3997,12793,3},{3997,12790,3},{3988,12787,3},{3988,12778,3},{3987,12780,3}, {3985,12778,3},{3985,12772,3},{3982,12768,3},{3980,12767,3},{3982,12762,3}, {3978,12757,3},{3972,12750,3},{3965,12750,3},{3963,12755,3},{3960,12758,3}, {3950,12753,3},{3930,12757,3},{3930,12753,3},{3932,12752,3},{3937,12753,3}, {3942,12752,3},{3943,12748,3},{3942,12745,3},{3938,12743,3},{3940,12742,3}, {3937,12737,3},{3935,12742,3},{3937,12745,3},{3935,12747,3},{3933,12742,3}, {3933,12738,3},{3930,12740,3},{3925,12737,3},{3922,12738,3},{3917,12745,3}, {3917,12747,3},{3920,12748,3},{3913,12753,3},{3915,12762,3},{3912,12765,3}, {3912,12777,3},{3898,12785,3},{3897,12788,3},{3897,12792,3},{3893,12792,3}, {3892,12797,3},{3887,12800,3},{3882,12812,3},{3875,12818,3},{3872,12820,3}, {3875,12828,3},{3868,12837,3},{3862,12837,3},{3858,12830,3},{3850,12832,3}, {3843,12828,3},{3835,12818,3},{3832,12807,3},{3832,12790,3},{3830,12783,3}, {3833,12778,3},{3832,12757,3},{3830,12750,3},{3833,12740,3},{3832,12722,3}, {3828,12710,3},{3822,12698,3},{3813,12695,3},{3810,12688,3},{3800,12680,3}, {3795,12675,3},{3795,12668,3},{3783,12668,3},{4917,8783,131},{4912,8787,3}, {4902,8787,3},{4893,8780,3},{4892,8772,3},{4890,8770,3},{4887,8773,3},{4885,8782,3}, {4880,8783,3},{4875,8795,3},{4875,8798,3},{4872,8798,3},{4868,8808,3},{4865,8808,3}, {4862,8802,3},{4857,8798,3},{4850,8797,3},{4850,8808,3},{4845,8820,3},{4847,8833,3}, {4845,8837,3},{4842,8837,3},{4837,8845,3},{4838,8853,3},{4835,8857,3},{4830,8865,3}, {4823,8860,3},{4823,8865,3},{4818,8868,3},{4815,8875,3},{4807,8885,3},{4792,8890,3}, {4793,8917,3},{4798,8930,3},{4802,8928,3},{4803,8937,3},{4802,8960,3},{4797,8958,3}, {4790,8965,3},{4787,8973,3},{4782,8977,3},{4780,8988,3},{4782,8995,3},{4785,8995,3}, {4787,8998,3},{4783,9007,3},{4773,9012,3},{4768,9030,3},{4765,9035,3},{4762,9035,3}, {4750,9045,3},{4740,9047,3},{4738,9052,3},{4732,9050,3},{4727,9053,3},{4722,9055,3}, {4708,9067,3},{4707,9070,3},{4700,9073,3},{4698,9083,3},{4695,9090,3},{4688,9090,3}, {4685,9095,3},{4682,9092,3},{4675,9100,3},{4675,9098,3},{4673,9103,3},{4667,9105,3}, {4650,9102,3},{4647,9095,3},{4638,9090,3},{4630,9090,3},{4612,9100,3},{4602,9102,3}, {4597,9098,3},{4587,9085,3},{4577,9077,3},{4560,9067,3},{4548,9067,3},{4532,9070,3}, {4520,9090,3},{4520,9117,3},{4510,9148,3},{4508,9167,3},{4505,9177,3},{4505,9198,3}, {4500,9228,3},{4500,9290,3},{4502,9313,3},{4500,9318,3},{4498,9327,3},{4498,9337,3}, {4493,9350,3},{4492,9362,3},{4485,9375,3},{4468,9393,3},{4467,9400,3},{4468,9413,3}, {4452,9437,3},{4452,9447,3},{4445,9458,3},{4435,9467,3},{4433,9472,3},{4433,9487,3}, {4425,9503,3},{4427,9540,3},{4425,9540,3},{4418,9533,3},{4403,9532,3},{4402,9533,3}, {4398,9552,3},{4368,9567,3},{4340,9585,3},{4330,9590,3},{4323,9590,3},{4315,9598,3}, {4287,9637,3},{4273,9638,3},{4272,9638,3},{4270,9687,3},{4267,9712,3},{4262,9730,3}, {4262,9745,3},{4267,9757,3},{4262,9800,3},{4260,9840,3},{4255,9878,3},{4253,9908,3}, {4252,9933,3},{4255,9947,3},{4255,9965,3},{4258,9992,3},{4265,10003,3}, {4265,10010,3},{4265,10018,3},{4263,10025,3},{4268,10030,3},{4268,10037,3}, {4268,10045,3},{4268,10052,3},{4268,10058,3},{4268,10065,3},{4268,10073,3}, {4268,10080,3},{4267,10088,3},{4265,10095,3},{4265,10102,3},{4263,10108,3}, {4262,10115,3},{4260,10122,3},{4258,10128,3},{4258,10135,3},{4257,10143,3}, {4255,10150,3},{4253,10157,3},{4253,10163,3},{4252,10170,3},{4252,10178,3}, {4247,10183,3},{4220,10207,3},{4215,10218,3},{4212,10237,3},{4210,10253,3}, {4200,10302,3},{4190,10328,3},{4180,10382,3},{4180,10413,3},{4182,10432,3}, {4185,10448,3},{4185,10455,3},{4162,10453,3},{4153,10493,3},{4173,10520,3}, {4173,10523,3},{4177,10533,3},{4188,10558,3},{4200,10587,3},{4208,10618,3}, {4218,10643,3},{4228,10683,3},{4235,10728,3},{4240,10730,3},{4245,10748,3}, {4242,10758,3},{4242,10763,3},{4240,10790,3},{4247,10825,3},{4243,10833,3}, {4243,10858,3},{4240,10885,3},{4245,10898,3},{4243,10932,3},{4245,10935,3}, {4245,10952,3},{4248,10953,3},{4248,10957,3},{4255,10968,3},{4265,10995,3}, {4265,11013,3},{4267,11013,3},{4277,11040,3},{4287,11050,3},{4290,11057,3}, {4302,11068,3},{4308,11070,3},{4312,11077,3},{4332,11100,3},{4342,11123,3}, {4345,11133,3},{4350,11143,3},{4350,11157,3},{4367,11178,3},{4367,11192,3}, {4370,11197,3},{4378,11198,3},{4390,11190,3},{4398,11180,3},{4407,11167,3}, {4418,11155,3},{4430,11148,3},{4432,11143,3},{4435,11142,3},{4443,11143,3}, {4457,11155,3},{4468,11157,3},{4500,11178,3},{4510,11200,3},{4508,11217,3}, {4508,11243,3},{4498,11253,3},{4493,11258,3},{4483,11283,3},{4485,11293,3}, {4483,11300,3},{4478,11323,3},{4480,11348,3},{4475,11360,3},{4487,11378,3}, {4487,11385,3},{4493,11392,3},{4493,11407,3},{4503,11417,3},{4508,11425,3}, {4522,11447,3},{4540,11458,3},{4543,11477,3},{4538,11493,3},{4540,11518,3}, {4540,11538,3},{4545,11570,3},{4555,11582,3},{4568,11605,3},{4568,11613,3}, {4572,11620,3},{4580,11628,3},{4590,11623,3},{4598,11628,3},{4613,11640,3}, {4625,11658,3},{4628,11660,3},{4632,11673,3},{4635,11678,3},{4635,11682,3}, {4640,11683,3},{4637,11710,3},{4638,11735,3},{4647,11737,3},{4652,11743,3}, {4658,11742,3},{4660,11762,3},{4658,11762,3},{4652,11768,3},{4653,11782,3}, {4658,11785,3},{4662,11790,3},{4665,11805,3},{4668,11812,3},{4670,11818,3}, {4675,11833,3},{4672,11847,3},{4673,11863,3},{4670,11870,3},{4670,11877,3}, {4673,11878,3},{4677,11885,3},{4677,11888,3},{4673,11890,3},{4675,11898,3}, {4665,11908,3},{4667,11925,3},{4660,11932,3},{4663,11945,3},{4662,11958,3}, {4658,11963,3},{4660,11968,3},{4667,11973,3},{4667,11983,3},{4663,11987,3}, {4667,11990,3},{4677,11988,3},{4688,11990,3},{4693,11985,3},{4698,11985,3}, {4703,11980,3},{4712,11977,3},{4728,11957,3},{4730,11952,3},{4742,11935,3}, {4743,11932,3},{4748,11933,3},{4753,11913,3},{4767,11912,3},{4770,11913,3}, {4780,11878,3},{4795,11853,3},{4800,11843,3},{4802,11835,3},{4800,11828,3}, {4803,11822,3},{4803,11817,3},{4800,11803,3},{4800,11797,3},{4802,11790,3}, {4803,11783,3},{4800,11778,3},{4795,11768,3},{4763,11738,3},{4780,11713,3}, {4787,11692,3},{4788,11680,3},{4783,11643,3},{4787,11625,3},{4778,11607,3}, {4767,11597,3},{4788,11558,3},{4818,11548,3},{4827,11583,3},{4852,11582,3}, {4880,11612,3},{4887,11605,3},{4892,11608,3},{4895,11612,3},{4900,11615,3}, {4905,11618,3},{4910,11622,3},{4915,11625,3},{4918,11627,3},{4923,11630,3}, {4928,11633,3},{4933,11637,3},{4938,11640,3},{4942,11643,3},{4947,11647,3}, {4952,11650,3},{4957,11653,3},{4960,11657,3},{4965,11658,3},{4970,11662,3}, {4975,11665,3},{4980,11668,3},{4983,11672,3},{4972,11697,3},{4965,11717,3}, {4963,11728,3},{4962,11750,3},{4952,11778,3},{4950,11787,3},{4955,11790,3}, {4960,11803,3},{4965,11812,3},{4967,11817,3},{4973,11823,3},{4978,11837,3}, {4982,11838,3},{4982,11847,3},{4990,11853,3},{4995,11863,3},{4995,11872,3}, {4998,11892,3},{4998,11907,3},{5002,11923,3},{5010,11933,3},{5017,11935,3}, {5027,11933,3},{5032,11937,3},{5035,11935,3},{5035,11918,3},{5037,11918,3}, {5037,11913,3},{5040,11913,3},{5042,11917,3},{5042,11920,3},{5045,11925,3}, {5060,11928,3},{5063,11937,3},{5067,11938,3},{5068,11945,3},{5075,11950,3}, {5080,11952,3},{5083,11950,3},{5088,11953,3},{5090,11952,3},{5093,11957,3}, {5097,11958,3},{5100,11967,3},{5107,11975,3},{5115,11977,3},{5117,11978,3}, {5120,11975,3},{5122,11982,3},{5127,11982,3},{5128,11987,3},{5133,11992,3}, {5137,11988,3},{5138,11995,3},{5143,11998,3},{5150,11998,3},{5155,12005,3}, {5162,12005,3},{5167,12010,3},{5167,12018,3},{5177,12032,3},{5183,12040,3}, {5183,12047,3},{5188,12048,3},{5188,12055,3},{5190,12057,3},{5192,12065,3}, {5198,12072,3},{5205,12070,3},{5207,12075,3},{5212,12078,3},{5223,12077,3}, {5230,12065,3},{5233,12062,3},{5243,12068,3},{5253,12072,3},{5263,12043,3}, {5262,12038,3},{5262,12028,3},{5258,12018,3},{5258,12007,3},{5262,12003,3}, {5270,12005,3},{5277,12003,3},{5280,12012,3},{5280,12017,3},{5285,12027,3}, {5302,12048,3},{5310,12063,3},{5318,12072,3},{5323,12083,3},{5327,12083,3}, {5328,12087,3},{5328,12103,3},{5328,12107,3},{5327,12113,3},{5328,12123,3}, {5332,12133,3},{5333,12150,3},{5338,12167,3},{5338,12173,3},{5342,12182,3}, {5342,12197,3},{5342,12202,3},{5342,12210,3},{5347,12217,3},{5347,12225,3}, {5348,12232,3},{5343,12242,3},{5345,12262,3},{5345,12282,3},{5348,12297,3}, {5350,12315,3},{5355,12327,3},{5352,12345,3},{5350,12348,3},{5355,12350,3}, {5353,12355,3},{5350,12353,3},{5353,12358,3},{5355,12362,3},{5350,12370,3}, {5347,12388,3},{5343,12398,3},{5340,12402,3},{5333,12412,3},{5337,12418,3}, {5337,12425,3},{5325,12433,3},{5322,12440,3},{5318,12450,3},{5318,12465,3}, {5317,12470,3},{5313,12470,3},{5313,12480,3},{5308,12485,3},{5310,12490,3}, {5317,12488,3},{5320,12507,3},{5320,12517,3},{5308,12547,3},{5303,12550,3}, {5305,12557,3},{5305,12562,3},{5302,12565,3},{5298,12573,3},{5295,12572,3}, {5292,12565,3},{5288,12565,3},{5290,12583,3},{5288,12587,3},{5285,12587,3}, {5277,12597,3},{5278,12605,3},{5277,12610,3},{5275,12610,3},{5273,12603,3}, {5268,12607,3},{5265,12598,3},{5262,12598,3},{5257,12602,3},{5257,12605,3}, {5258,12607,3},{5253,12618,3},{5252,12622,3},{5247,12620,3},{5247,12627,3}, {5238,12633,3},{5230,12632,3},{5228,12643,3},{5223,12633,3},{5220,12632,3}, {5217,12647,3},{5213,12655,3},{5203,12652,3},{5203,12647,3},{5200,12643,3}, {5193,12647,3},{5190,12652,3},{5175,12663,3},{5173,12667,3},{5172,12670,3}, {5170,12672,3},{5167,12670,3},{5163,12673,3},{5160,12667,3},{5157,12667,3}, {5153,12680,3},{5150,12682,3},{5145,12678,3},{5142,12678,3},{5140,12690,3}, {5138,12692,3},{5133,12690,3},{5133,12682,3},{5127,12682,3},{5125,12685,3}, {5123,12688,3},{5125,12690,3},{5127,12688,3},{5130,12687,3},{5133,12695,3}, {5130,12698,3},{5128,12697,3},{5118,12690,3},{5105,12693,3},{5097,12703,3}, {5092,12713,3},{5078,12722,3},{5073,12730,3},{5068,12728,3},{5057,12737,3}, {5047,12728,3},{5042,12735,3},{5032,12733,3},{5020,12758,3},{5013,12757,3}, {5005,12748,3},{4998,12748,3},{4992,12753,3},{4983,12750,3},{4980,12753,3}, {4975,12767,3},{4967,12768,3},{4963,12777,3},{4958,12782,3},{4958,12790,3}, {4960,12795,3},{4958,12800,3},{4953,12810,3},{4953,12822,3},{4955,12827,3}, {4953,12833,3},{4957,12837,3},{4958,12850,3},{4957,12862,3},{4962,12867,3}, {4958,12872,3},{4957,12878,3},{4953,12880,3},{4950,12875,3},{4947,12875,3}, {4948,12885,3},{4947,12890,3},{4945,12892,3},{4943,12900,3},{4937,12905,3}, {4935,12910,3},{4938,12920,3},{4938,12925,3},{4935,12932,3},{4935,12937,3}, {4940,12937,3},{4942,12938,3},{4942,12948,3},{4938,12953,3},{4930,12955,3}, {4927,12960,3},{4928,12968,3},{4927,12972,3},{4920,12973,3},{4917,12977,3}, {4915,12985,3},{4912,12983,3},{4908,12992,3},{4903,12990,3},{4900,12998,3}, {4887,13022,3},{4887,13028,3},{4890,13042,3},{4888,13047,3},{4885,13052,3}, {4888,13062,3},{4887,13067,3},{4885,13067,3},{4880,13063,3},{4860,13052,3}, {4857,13062,3},{4852,13062,3},{4848,13063,3},{4850,13073,3},{4848,13077,3}, {4842,13073,3},{4835,13077,3},{4833,13082,3},{4828,13083,3},{4825,13077,3}, {4818,13075,3},{4813,13067,3},{4810,13067,3},{4805,13068,3},{4790,13088,3}, {4780,13095,3},{4772,13093,3},{4770,13098,3},{4767,13110,3},{4770,13117,3}, {4773,13127,3},{4773,13142,3},{4772,13153,3},{4767,13155,3},{4765,13158,3}, {4767,13162,3},{4770,13168,3},{4767,13182,3},{4768,13187,3},{4767,13192,3}, {4770,13200,3},{4770,13217,3},{4775,13235,3},{4772,13253,3},{4773,13258,3}, {4780,13258,3},{4787,13267,3},{4793,13265,3},{4795,13267,3},{4795,13275,3}, {4793,13277,3},{4795,13283,3},{4800,13288,3},{4803,13302,3},{4810,13308,3}, {4812,13322,3},{4810,13332,3},{4810,13340,3},{4807,13348,3},{4807,13352,3}, {4810,13353,3},{4817,13360,3},{4818,13370,3},{4825,13375,3},{4827,13388,3}, {4827,13398,3},{4830,13402,3},{4832,13405,3},{4833,13418,3},{4837,13425,3}, {4838,13442,3},{4835,13448,3},{4837,13457,3},{4830,13462,3},{4827,13473,3}, {4823,13468,3},{4810,13467,3},{4807,13458,3},{4800,13455,3},{4795,13460,3}, {4790,13460,3},{4787,13467,3},{4780,13468,3},{4773,13477,3},{4770,13477,3}, {4763,13468,3},{4757,13467,3},{4750,13457,3},{4747,13455,3},{4743,13448,3}, {4742,13432,3},{4735,13423,3},{4732,13418,3},{4725,13415,3},{4720,13420,3}, {4717,13418,3},{4713,13422,3},{4712,13422,3},{4708,13420,3},{4708,13413,3}, {4697,13407,3},{4692,13407,3},{4682,13402,3},{4677,13405,3},{4667,13402,3}, {4662,13398,3},{4657,13390,3},{4653,13390,3},{4647,13385,3},{4643,13385,3}, {4642,13390,3},{4640,13393,3},{4637,13392,3},{4635,13388,3},{4633,13387,3}, {4632,13392,3},{4630,13388,3},{4625,13390,3},{4623,13385,3},{4622,13385,3}, {4620,13383,3},{4622,13380,3},{4620,13378,3},{4615,13375,3},{4615,13368,3}, {4607,13372,3},{4593,13367,3},{4593,13362,3},{4590,13360,3},{4587,13358,3}, {4588,13355,3},{4588,13352,3},{4583,13350,3},{4583,13348,3},{4580,13347,3}, {4578,13350,3},{4577,13348,3},{4573,13348,3},{4570,13345,3},{4568,13348,3}, {4567,13348,3},{4565,13345,3},{4562,13347,3},{4560,13342,3},{4557,13342,3}, {4557,13337,3},{4550,13318,3},{4545,13315,3},{4525,13310,3},{4517,13313,3}, {4512,13312,3},{4505,13303,3},{4502,13293,3},{4505,13283,3},{4507,13277,3}, {4508,13268,3},{4510,13262,3},{4512,13253,3},{4513,13247,3},{4515,13240,3}, {4517,13232,3},{4518,13225,3},{4520,13217,3},{4522,13210,3},{4523,13202,3}, {4528,13193,3},{4533,13190,3},{4535,13187,3},{4533,13183,3},{4522,13175,3}, {4522,13167,3},{4520,13165,3},{4517,13163,3},{4513,13165,3},{4512,13165,3}, {4498,13148,3},{4497,13147,3},{4497,13133,3},{4492,13127,3},{4492,13122,3}, {4493,13113,3},{4492,13107,3},{4488,13107,3},{4487,13105,3},{4483,13095,3}, {4478,13100,3},{4475,13105,3},{4470,13107,3},{4468,13110,3},{4462,13112,3}, {4457,13113,3},{4452,13115,3},{4445,13117,3},{4440,13118,3},{4435,13120,3}, {4430,13122,3},{4425,13123,3},{4420,13125,3},{4413,13127,3},{4408,13128,3}, {4405,13130,3},{4403,13125,3},{4397,13123,3},{4392,13125,3},{4382,13120,3}, {4373,13122,3},{4370,13120,3},{4367,13122,3},{4362,13120,3},{4360,13122,3}, {4355,13118,3},{4353,13120,3},{4345,13130,3},{4340,13132,3},{4337,13127,3}, {4327,13127,3},{4320,13118,3},{4315,13122,3},{4313,13122,3},{4303,13110,3}, {4297,13110,3},{4293,13113,3},{4292,13112,3},{4290,13105,3},{4285,13102,3}, {4285,13087,3},{4288,13082,3},{4285,13078,3},{4283,13077,3},{4283,13063,3}, {4275,13043,3},{4272,13040,3},{4270,13042,3},{4268,13047,3},{4268,13053,3}, {4262,13060,3},{4258,13062,3},{4255,13057,3},{4250,13057,3},{4242,13060,3}, {4238,13065,3},{4232,13065,3},{4228,13068,3},{4242,13060,3},{4243,13057,3}, {4247,13057,3},{4248,13055,3},{4260,13052,3},{4260,13047,3},{4255,13047,3}, {4255,13045,3},{4255,13043,3},{4260,13043,3},{4260,13038,3},{4272,13025,3}, {4290,13025,3},{4292,13010,3},{4297,13013,3},{4298,13010,3},{4295,13005,3}, {4298,12995,3},{4300,12992,3},{4298,12988,3},{4297,12990,3},{4297,12985,3}, {4292,12985,3},{4285,12980,3},{4270,12975,3},{4267,12978,3},{4265,12977,3}, {4263,12975,3},{4262,12975,3},{4260,12977,3},{4257,12973,3},{4248,12973,3}, {4243,12970,3},{4243,12967,3},{4245,12960,3},{4243,12958,3},{4242,12960,3}, {4240,12957,3},{4237,12953,3},{4243,12945,3},{4243,12937,3},{4245,12935,3}, {4243,12933,3},{4242,12935,3},{4242,12930,3},{4238,12930,3},{4237,12923,3}, {4235,12922,3},{4233,12923,3},{4232,12923,3},{4232,12918,3},{4230,12922,3}, {4223,12918,3},{4223,12920,3},{4222,12922,3},{4213,12912,3},{4213,12907,3}, {4210,12903,3},{4208,12895,3},{4202,12893,3},{4205,12873,3},{4202,12868,3}, {4203,12863,3},{4202,12860,3},{4200,12857,3},{4200,12850,3},{4200,12847,3}, {4203,12842,3},{4203,12833,3},{4200,12807,3},{4192,12807,3},{4180,12810,3}, {4177,12813,3},{4170,12817,3},{4165,12827,3},{4158,12830,3},{4142,12820,3}, {4137,12812,3},{4140,12810,3},{4138,12808,3},{4138,12805,3},{4142,12805,3}, {4140,12802,3},{4142,12802,3},{4145,12800,3},{4142,12798,3},{4145,12793,3}, {4143,12790,3},{4143,12787,3},{4140,12785,3},{4142,12765,3},{4140,12763,3}, {4143,12755,3},{4147,12753,3},{4147,12727,3},{4150,12728,3},{4150,12723,3}, {4152,12722,3},{4152,12718,3},{4153,12717,3},{4152,12713,3},{4153,12710,3}, {4158,12718,3},{4160,12713,3},{4162,12710,3},{4163,12710,3},{4165,12703,3}, {4167,12703,3},{4168,12708,3},{4173,12703,3},{4177,12693,3},{4180,12693,3}, {4178,12690,3},{4173,12685,3},{4173,12680,3},{4170,12678,3},{4173,12670,3}, {4172,12668,3},{4170,12672,3},{4167,12667,3},{4167,12662,3},{4163,12660,3}, {4162,12657,3},{4157,12658,3},{4150,12655,3},{4143,12650,3},{4135,12653,3}, {4133,12650,3},{4137,12650,3},{4135,12645,3},{4127,12637,3},{4123,12635,3}, {4122,12632,3},{4115,12628,3},{4110,12618,3},{4108,12612,3},{4105,12613,3}, {4102,12610,3},{4100,12610,3},{4100,12607,3},{4097,12607,3},{4093,12603,3}, {4092,12598,3},{4090,12602,3},{4088,12593,3},{4090,12592,3},{4090,12588,3}, {4087,12582,3},{4088,12577,3},{4087,12573,3},{4087,12570,3},{4082,12565,3}, {4080,12565,3},{4077,12568,3},{4075,12562,3},{4077,12560,3},{4078,12558,3}, {4077,12555,3},{4072,12555,3},{4072,12547,3},{4067,12547,3},{4067,12542,3}, {4062,12540,3},{4063,12537,3},{4063,12533,3},{4065,12532,3},{4065,12528,3}, {4062,12525,3},{4060,12525,3},{4058,12515,3},{4055,12508,3},{4053,12503,3}, {4052,12500,3},{4047,12505,3},{4045,12503,3},{4045,12492,3},{4048,12488,3}, {4042,12483,3},{4037,12475,3},{4030,12472,3},{4028,12462,3},{4025,12455,3}, {4022,12455,3},{4010,12437,3},{4007,12435,3},{4002,12437,3},{3998,12435,3}, {3997,12430,3},{3993,12428,3},{3992,12425,3},{3983,12413,3},{3985,12408,3}, {3982,12398,3},{3983,12395,3},{3983,12393,3},{3982,12390,3},{3983,12370,3}, {3987,12365,3},{3992,12365,3},{3982,12360,3},{3978,12360,3},{3977,12357,3}, {3978,12355,3},{3978,12348,3},{3973,12347,3},{3973,12342,3},{3973,12340,3}, {3982,12342,3},{3982,12340,3},{3978,12338,3},{3978,12332,3},{3980,12328,3}, {3980,12325,3},{3982,12323,3},{3975,12327,3},{3975,12322,3},{3973,12320,3}, {3972,12322,3},{3972,12325,3},{3970,12327,3},{3968,12322,3},{3967,12322,3}, {3965,12315,3},{3968,12312,3},{3970,12310,3},{3968,12308,3},{3967,12305,3}, {3968,12302,3},{3967,12297,3},{3963,12300,3},{3962,12297,3},{3962,12295,3}, {3962,12293,3},{3962,12285,3},{3955,12277,3},{3955,12272,3},{3952,12268,3}, {3953,12265,3},{3948,12262,3},{3947,12258,3},{3948,12255,3},{3945,12255,3}, {3942,12247,3},{3942,12240,3},{3935,12230,3},{3932,12227,3},{3932,12225,3}, {3927,12223,3},{3920,12212,3},{3917,12210,3},{3915,12217,3},{3910,12205,3}, {3907,12205,3},{3907,12200,3},{3903,12197,3},{3905,12188,3},{3900,12192,3}, {3903,12187,3},{3903,12183,3},{3898,12190,3},{3895,12187,3},{3895,12183,3}, {3897,12180,3},{3902,12177,3},{3903,12173,3},{3902,12172,3},{3900,12173,3}, {3902,12167,3},{3900,12163,3},{3898,12167,3},{3895,12165,3},{3893,12158,3}, {3892,12167,3},{3890,12172,3},{3887,12170,3},{3887,12158,3},{3880,12148,3}, {3882,12135,3},{3880,12132,3},{3878,12130,3},{3880,12123,3},{3878,12122,3}, {3877,12123,3},{3872,12118,3},{3873,12113,3},{3877,12112,3},{3878,12113,3}, {3883,12112,3},{3885,12112,3},{3890,12115,3},{3890,12108,3},{3892,12110,3}, {3895,12113,3},{3895,12118,3},{3893,12123,3},{3897,12128,3},{3897,12133,3}, {3898,12135,3},{3900,12132,3},{3905,12137,3},{3902,12142,3},{3902,12145,3}, {3908,12167,3},{3912,12168,3},{3918,12163,3},{3917,12162,3},{3918,12158,3}, {3922,12160,3},{3923,12163,3},{3925,12160,3},{3927,12168,3},{3930,12173,3}, {3933,12173,3},{3937,12178,3},{3937,12187,3},{3940,12193,3},{3942,12192,3}, {3940,12192,3},{3938,12185,3},{3940,12172,3},{3938,12170,3},{3937,12172,3}, {3937,12153,3},{3938,12148,3},{3952,12143,3},{3952,12135,3},{3950,12130,3}, {3952,12128,3},{3952,12122,3},{3953,12123,3},{3960,12132,3},{3960,12142,3}, {3963,12147,3},{3965,12147,3},{3962,12153,3},{3965,12153,3},{3968,12155,3}, {3968,12150,3},{3973,12145,3},{3978,12148,3},{3982,12147,3},{3987,12155,3}, {3987,12160,3},{3992,12167,3},{3993,12170,3},{3992,12177,3},{3995,12180,3}, {4000,12188,3},{4002,12188,3},{4002,12183,3},{4003,12188,3},{4010,12193,3}, {4013,12200,3},{4018,12198,3},{4018,12202,3},{4023,12210,3},{4030,12212,3}, {4035,12218,3},{4038,12222,3},{4042,12220,3},{4043,12225,3},{4050,12230,3}, {4057,12225,3},{4060,12215,3},{4070,12215,3},{4068,12212,3},{4075,12205,3}, {4078,12192,3},{4082,12187,3},{4093,12183,3},{4098,12187,3},{4095,12180,3}, {4088,12178,3},{4085,12175,3},{4083,12160,3},{4083,12155,3},{4088,12152,3}, {4090,12148,3},{4088,12145,3},{4092,12143,3},{4093,12138,3},{4093,12135,3}, {4090,12128,3},{4092,12127,3},{4090,12125,3},{4093,12118,3},{4087,12112,3}, {4087,12108,3},{4082,12108,3},{4083,12100,3},{4082,12097,3},{4078,12097,3}, {4077,12093,3},{4073,12093,3},{4073,12100,3},{4072,12103,3},{4070,12098,3}, {4068,12093,3},{4067,12083,3},{4060,12080,3},{4052,12068,3},{4047,12067,3}, {4047,12062,3},{4045,12060,3},{4042,12060,3},{4040,12055,3},{4037,12053,3}, {4037,12058,3},{4035,12060,3},{4030,12050,3},{4025,12050,3},{4020,12045,3}, {4018,12032,3},{4013,12023,3},{4003,11995,3},{3998,11987,3},{3997,11980,3}, {3995,11977,3},{3990,11958,3},{3987,11952,3},{3980,11952,3},{3978,11945,3}, {3972,11935,3},{3958,11928,3},{3960,11925,3},{3957,11920,3},{3955,11922,3}, {3957,11925,3},{3953,11923,3},{3957,11927,3},{3945,11923,3},{3942,11927,3}, {3940,11925,3},{3933,11913,3},{3930,11912,3},{3927,11905,3},{3923,11907,3}, {3913,11892,3},{3912,11888,3},{3918,11897,3},{3917,11888,3},{3918,11888,3}, {3918,11887,3},{3922,11887,3},{3918,11883,3},{3915,11875,3},{3915,11870,3}, {3918,11868,3},{3918,11867,3},{3918,11860,3},{3917,11853,3},{3912,11850,3}, {3903,11832,3},{3907,11830,3},{3907,11825,3},{3912,11823,3},{3918,11817,3}, {3922,11805,3},{3920,11788,3},{3915,11780,3},{3912,11775,3},{3910,11772,3}, {3907,11773,3},{3902,11773,3},{3898,11775,3},{3898,11770,3},{3895,11770,3}, {3880,11758,3},{3868,11753,3},{3860,11755,3},{3843,11765,3},{3835,11772,3}, {3828,11778,3},{3825,11783,3},{3825,11790,3},{3818,11797,3},{3818,11802,3}, {3815,11803,3},{3815,11807,3},{3813,11808,3},{3815,11812,3},{3815,11818,3}, {3812,11832,3},{3813,11835,3},{3812,11843,3},{3807,11855,3},{3810,11858,3}, {3813,11862,3},{3815,11885,3},{3808,11883,3},{3805,11887,3},{3805,11892,3}, {3803,11895,3},{3788,11903,3},{3782,11902,3},{3778,11903,3},{3772,11910,3}, {3767,11907,3},{3767,11903,3},{3760,11897,3},{3735,11893,3},{3727,11897,3}, {3727,11902,3},{3722,11905,3},{3715,11923,3},{3712,11940,3},{3715,11975,3}, {3725,11988,3},{3727,11990,3},{3733,11985,3},{3737,11985,3},{3743,12007,3}, {3750,12018,3},{3760,12030,3},{3765,12032,3},{3768,12022,3},{3768,12037,3}, {3773,12043,3},{3775,12055,3},{3778,12062,3},{3778,12065,3},{3783,12073,3}, {3782,12083,3},{3783,12087,3},{3782,12093,3},{3778,12093,3},{3773,12100,3}, {3772,12102,3},{3770,12115,3},{3765,12113,3},{3763,12113,3},{3758,12115,3}, {3757,12122,3},{3758,12135,3},{3760,12137,3},{3763,12135,3},{3763,12137,3}, {3758,12143,3},{3758,12138,3},{3755,12138,3},{3752,12145,3},{3747,12148,3}, {3745,12153,3},{3742,12157,3},{3743,12167,3},{3745,12165,3},{3747,12163,3}, {3745,12158,3},{3748,12163,3},{3747,12168,3},{3747,12193,3},{3745,12195,3}, {3742,12195,3},{3742,12200,3},{3747,12198,3},{3753,12202,3},{3753,12207,3}, {3757,12207,3},{3755,12208,3},{3755,12212,3},{3755,12213,3},{3752,12215,3}, {3748,12212,3},{3742,12217,3},{3742,12218,3},{3745,12223,3},{3745,12227,3}, {3742,12228,3},{3742,12232,3},{3742,12242,3},{3742,12247,3},{3740,12253,3}, {3740,12257,3},{3742,12262,3},{3742,12268,3},{3740,12270,3},{3737,12268,3}, {3737,12263,3},{3735,12257,3},{3732,12258,3},{3730,12258,3},{3732,12255,3}, {3727,12255,3},{3718,12262,3},{3718,12257,3},{3715,12258,3},{3715,12248,3}, {3710,12247,3},{3715,12247,3},{3715,12245,3},{3710,12243,3},{3707,12245,3}, {3703,12240,3},{3700,12242,3},{3702,12243,3},{3702,12253,3},{3692,12253,3}, {3690,12250,3},{3692,12252,3},{3693,12252,3},{3692,12240,3},{3690,12240,3}, {3688,12243,3},{3685,12242,3},{3685,12238,3},{3683,12237,3},{3682,12232,3}, {3683,12220,3},{3688,12218,3},{3690,12227,3},{3693,12217,3},{3700,12218,3}, {3700,12215,3},{3693,12213,3},{3695,12210,3},{3692,12208,3},{3690,12203,3}, {3695,12203,3},{3698,12205,3},{3697,12200,3},{3700,12195,3},{3698,12192,3}, {3697,12192,3},{3693,12195,3},{3693,12193,3},{3688,12178,3},{3683,12172,3}, {3682,12165,3},{3683,12168,3},{3683,12167,3},{3682,12162,3},{3673,12162,3}, {3677,12158,3},{3675,12157,3},{3677,12155,3},{3675,12153,3},{3677,12148,3}, {3678,12150,3},{3678,12155,3},{3683,12160,3},{3683,12162,3},{3683,12155,3}, {3680,12150,3},{3682,12148,3},{3683,12145,3},{3678,12147,3},{3675,12145,3}, {3675,12138,3},{3672,12137,3},{3670,12140,3},{3672,12133,3},{3668,12120,3}, {3662,12108,3},{3660,12105,3},{3663,12103,3},{3658,12103,3},{3658,12095,3}, {3660,12093,3},{3662,12093,3},{3665,12083,3},{3662,12075,3},{3658,12075,3}, {3657,12073,3},{3653,12075,3},{3653,12078,3},{3658,12082,3},{3660,12085,3}, {3657,12088,3},{3655,12092,3},{3653,12092,3},{3653,12097,3},{3650,12093,3}, {3645,12095,3},{3645,12090,3},{3642,12090,3},{3637,12087,3},{3638,12085,3}, {3642,12085,3},{3645,12083,3},{3647,12078,3},{3647,12077,3},{3642,12070,3}, {3637,12068,3},{3632,12072,3},{3632,12070,3},{3633,12067,3},{3632,12063,3}, {3622,12068,3},{3613,12068,3},{3612,12063,3},{3610,12058,3},{3612,12057,3}, {3608,12053,3},{3608,12047,3},{3605,12043,3},{3603,12035,3},{3607,12028,3}, {3608,12032,3},{3610,12030,3},{3617,12035,3},{3622,12035,3},{3622,12032,3}, {3627,12030,3},{3627,12028,3},{3622,12028,3},{3620,12028,3},{3618,12030,3}, {3617,12027,3},{3620,12022,3},{3622,12022,3},{3620,12013,3},{3622,12012,3}, {3622,12008,3},{3620,12008,3},{3618,12012,3},{3613,12008,3},{3612,12008,3}, {3607,12017,3},{3598,12018,3},{3600,12023,3},{3597,12023,3},{3602,12028,3}, {3598,12030,3},{3597,12030,3},{3593,12022,3},{3588,12017,3},{3593,12018,3}, {3590,12013,3},{3590,12010,3},{3587,12005,3},{3582,12002,3},{3575,12002,3}, {3572,11998,3},{3575,11995,3},{3575,11992,3},{3573,11990,3},{3570,11993,3}, {3568,11990,3},{3562,11990,3},{3560,11985,3},{3562,11983,3},{3565,11983,3}, {3558,11977,3},{3557,11975,3},{3562,11975,3},{3562,11973,3},{3558,11965,3}, {3533,11952,3},{3532,11943,3},{3522,11938,3},{3512,11937,3},{3507,11928,3}, {3507,11922,3},{3502,11920,3},{3490,11920,3},{3485,11917,3},{3478,11920,3}, {3475,11918,3},{3472,11920,3},{3475,11922,3},{3477,11923,3},{3475,11932,3}, {3477,11935,3},{3475,11938,3},{3475,11943,3},{3470,11948,3},{3467,11947,3}, {3460,11953,3},{3455,11963,3},{3453,11965,3},{3452,11973,3},{3447,11980,3}, {3445,11993,3},{3437,12008,3},{3432,12025,3},{3423,12027,3},{3415,12033,3}, {3408,12035,3},{3403,12037,3},{3390,12042,3},{3387,12040,3},{3385,12043,3}, {3380,12045,3},{3377,12045,3},{3373,12050,3},{3365,12050,3},{3365,12048,3}, {3363,12048,3},{3358,12053,3},{3350,12060,3},{3347,12063,3},{3332,12067,3}, {3328,12070,3},{3327,12075,3},{3325,12073,3},{3322,12075,3},{3320,12073,3}, {3317,12078,3},{3312,12080,3},{3310,12080,3},{3310,12082,3},{3302,12082,3}, {3302,12083,3},{3303,12087,3},{3302,12090,3},{3297,12088,3},{3282,12090,3}, {3280,12090,3},{3278,12085,3},{3270,12087,3},{3272,12083,3},{3263,12083,3}, {3257,12097,3},{3253,12108,3},{3250,12110,3},{3250,12113,3},{3248,12118,3}, {3247,12120,3},{3245,12128,3},{3238,12140,3},{3235,12142,3},{3228,12140,3}, {3225,12142,3},{3223,12137,3},{3220,12138,3},{3217,12138,3},{3217,12143,3}, {3212,12143,3},{3210,12148,3},{3212,12153,3},{3202,12173,3},{3192,12183,3}, {3180,12187,3},{3173,12190,3},{3168,12188,3},{3168,12183,3},{3172,12165,3}, {3175,12158,3},{3178,12152,3},{3182,12148,3},{3183,12145,3},{3187,12128,3}, {3183,12117,3},{3187,12108,3},{3183,12098,3},{3185,12095,3},{3188,12095,3}, {3190,12092,3},{3202,12082,3},{3210,12062,3},{3208,12057,3},{3210,12050,3}, {3208,12043,3},{3195,12028,3},{3193,12022,3},{3195,12010,3},{3200,12000,3}, {3212,11992,3},{3215,11990,3},{3220,11992,3},{3220,11988,3},{3228,11985,3}, {3233,11977,3},{3232,11970,3},{3235,11965,3},{3235,11962,3},{3230,11968,3}, {3222,11965,3},{3218,11962,3},{3220,11965,3},{3223,11970,3},{3222,11973,3}, {3220,11978,3},{3217,11977,3},{3212,11977,3},{3207,11987,3},{3202,11987,3}, {3198,11990,3},{3192,12010,3},{3190,12018,3},{3190,12023,3},{3195,12032,3}, {3195,12042,3},{3198,12045,3},{3202,12043,3},{3202,12050,3},{3198,12060,3}, {3200,12068,3},{3198,12072,3},{3187,12078,3},{3182,12078,3},{3182,12077,3}, {3183,12073,3},{3185,12072,3},{3182,12072,3},{3175,12087,3},{3175,12097,3}, {3172,12103,3},{3172,12108,3},{3162,12123,3},{3150,12132,3},{3145,12142,3}, {3138,12150,3},{3137,12152,3},{3135,12160,3},{3132,12167,3},{3122,12175,3}, {3097,12188,3},{3092,12190,3},{3085,12187,3},{3085,12180,3},{3087,12170,3}, {3085,12157,3},{3082,12147,3},{3077,12138,3},{3070,12135,3},{3067,12122,3}, {3063,12115,3},{3060,12113,3},{3057,12100,3},{3055,12097,3},{3048,12093,3}, {3042,12093,3},{3040,12090,3},{3037,12092,3},{3033,12080,3},{3033,12075,3}, {3038,12068,3},{3040,12045,3},{3037,12038,3},{3030,12035,3},{3028,12032,3}, {3030,12027,3},{3028,12023,3},{3020,12015,3},{3022,12020,3},{3027,12025,3}, {3022,12030,3},{3022,12037,3},{3028,12042,3},{3032,12047,3},{3032,12052,3}, {3023,12057,3},{3017,12057,3},{3012,12062,3},{3008,12068,3},{3008,12077,3}, {3007,12080,3},{3010,12077,3},{3010,12067,3},{3015,12063,3},{3013,12067,3}, {3012,12070,3},{3013,12083,3},{3030,12115,3},{3030,12128,3},{3025,12140,3}, {3018,12148,3},{3012,12153,3},{3010,12157,3},{3007,12157,3},{3003,12162,3}, {3002,12162,3},{2997,12168,3},{2997,12178,3},{2993,12182,3},{2992,12188,3}, {2988,12192,3},{2988,12203,3},{2990,12212,3},{2988,12213,3},{2985,12207,3}, {2977,12188,3},{2970,12183,3},{2958,12172,3},{2958,12170,3},{2957,12170,3}, {2955,12155,3},{2950,12152,3},{2955,12150,3},{2952,12147,3},{2952,12145,3}, {2950,12145,3},{2945,12143,3},{2942,12143,3},{2942,12145,3},{2947,12147,3}, {2948,12150,3},{2945,12148,3},{2945,12152,3},{2940,12147,3},{2940,12148,3}, {2942,12153,3},{2948,12157,3},{2950,12168,3},{2952,12170,3},{2952,12168,3}, {2953,12172,3},{2952,12172,3},{2952,12177,3},{2948,12175,3},{2947,12175,3}, {2948,12180,3},{2952,12182,3},{2953,12185,3},{2955,12182,3},{2955,12173,3}, {2957,12173,3},{2958,12177,3},{2960,12180,3},{2960,12185,3},{2963,12190,3}, {2962,12193,3},{2960,12193,3},{2958,12198,3},{2955,12197,3},{2955,12193,3}, {2953,12195,3},{2952,12190,3},{2950,12195,3},{2948,12193,3},{2943,12197,3}, {2942,12195,3},{2940,12195,3},{2942,12190,3},{2938,12188,3},{2937,12192,3}, {2933,12192,3},{2933,12193,3},{2932,12193,3},{2932,12190,3},{2930,12192,3}, {2930,12190,3},{2927,12192,3},{2927,12195,3},{2928,12198,3},{2925,12198,3}, {2925,12195,3},{2922,12197,3},{2922,12193,3},{2920,12195,3},{2918,12190,3}, {2917,12185,3},{2918,12182,3},{2920,12180,3},{2925,12183,3},{2927,12182,3}, {2928,12183,3},{2930,12180,3},{2932,12183,3},{2932,12178,3},{2937,12180,3}, {2937,12177,3},{2935,12177,3},{2927,12177,3},{2920,12175,3},{2920,12172,3}, {2918,12167,3},{2920,12165,3},{2927,12165,3},{2930,12165,3},{2930,12163,3}, {2930,12162,3},{2920,12163,3},{2918,12162,3},{2928,12158,3},{2930,12157,3}, {2927,12157,3},{2927,12152,3},{2925,12153,3},{2920,12150,3},{2918,12150,3}, {2917,12148,3},{2920,12147,3},{2917,12145,3},{2917,12142,3},{2915,12142,3}, {2915,12143,3},{2913,12143,3},{2913,12147,3},{2910,12140,3},{2910,12147,3}, {2910,12163,3},{2905,12162,3},{2907,12155,3},{2905,12153,3},{2902,12153,3}, {2902,12155,3},{2905,12155,3},{2905,12165,3},{2903,12165,3},{2902,12168,3}, {2900,12165,3},{2897,12165,3},{2895,12172,3},{2892,12168,3},{2892,12163,3}, {2895,12158,3},{2892,12158,3},{2895,12153,3},{2895,12150,3},{2893,12148,3}, {2890,12153,3},{2890,12160,3},{2888,12163,3},{2883,12162,3},{2883,12165,3}, {2882,12167,3},{2880,12163,3},{2880,12167,3},{2877,12162,3},{2872,12162,3}, {2870,12150,3},{2872,12132,3},{2875,12130,3},{2877,12123,3},{2880,12122,3}, {2882,12117,3},{2883,12115,3},{2883,12113,3},{2880,12117,3},{2880,12122,3}, {2875,12123,3},{2873,12128,3},{2870,12130,3},{2867,12125,3},{2870,12133,3}, {2867,12148,3},{2855,12152,3},{2850,12157,3},{2848,12152,3},{2848,12157,3}, {2843,12157,3},{2840,12160,3},{2835,12158,3},{2833,12165,3},{2828,12163,3}, {2825,12157,3},{2828,12158,3},{2830,12157,3},{2833,12152,3},{2833,12145,3}, {2830,12143,3},{2830,12140,3},{2827,12140,3},{2827,12142,3},{2825,12142,3}, {2822,12137,3},{2818,12135,3},{2818,12138,3},{2813,12135,3},{2820,12125,3}, {2828,12125,3},{2832,12120,3},{2835,12122,3},{2837,12127,3},{2835,12122,3}, {2838,12117,3},{2835,12117,3},{2833,12113,3},{2830,12110,3},{2828,12108,3}, {2830,12102,3},{2827,12105,3},{2827,12110,3},{2823,12112,3},{2817,12108,3}, {2815,12102,3},{2812,12098,3},{2805,12098,3},{2800,12095,3},{2798,12093,3}, {2798,12080,3},{2803,12070,3},{2803,12060,3},{2810,12058,3},{2812,12057,3}, {2807,12058,3},{2803,12058,3},{2802,12070,3},{2797,12073,3},{2795,12083,3}, {2793,12085,3},{2787,12083,3},{2785,12080,3},{2775,12073,3},{2772,12072,3}, {2775,12063,3},{2772,12067,3},{2767,12065,3},{2765,12067,3},{2760,12063,3}, {2758,12057,3},{2750,12060,3},{2750,12065,3},{2748,12068,3},{2745,12067,3}, {2743,12063,3},{2737,12063,3},{2740,12055,3},{2738,12055,3},{2735,12053,3}, {2733,12050,3},{2732,12055,3},{2728,12053,3},{2727,12052,3},{2723,12053,3}, {2722,12050,3},{2720,12052,3},{2717,12047,3},{2718,12047,3},{2722,12047,3}, {2722,12043,3},{2722,12042,3},{2717,12042,3},{2723,12038,3},{2725,12030,3}, {2727,12030,3},{2728,12032,3},{2730,12030,3},{2732,12032,3},{2730,12028,3}, {2732,12027,3},{2730,12027,3},{2730,12023,3},{2728,12025,3},{2727,12022,3}, {2728,12020,3},{2725,12020,3},{2723,12017,3},{2722,12018,3},{2722,12020,3}, {2723,12022,3},{2725,12025,3},{2722,12030,3},{2723,12035,3},{2722,12037,3}, {2718,12035,3},{2718,12038,3},{2715,12042,3},{2715,12038,3},{2713,12042,3}, {2712,12037,3},{2710,12037,3},{2710,12038,3},{2710,12037,3},{2712,12028,3}, {2713,12025,3},{2710,12025,3},{2710,12027,3},{2705,12028,3},{2707,12025,3}, {2705,12025,3},{2703,12022,3},{2703,12025,3},{2700,12025,3},{2698,12022,3}, {2698,12020,3},{2698,12015,3},{2697,12023,3},{2693,12023,3},{2692,12022,3}, {2693,12012,3},{2690,12012,3},{2688,12010,3},{2690,12003,3},{2688,12007,3}, {2687,12002,3},{2682,12003,3},{2682,12007,3},{2678,12012,3},{2675,12010,3}, {2673,12010,3},{2673,12013,3},{2672,12015,3},{2670,12010,3},{2665,12012,3}, {2665,12013,3},{2663,12013,3},{2662,12008,3},{2663,12008,3},{2662,12002,3}, {2660,12000,3},{2662,11995,3},{2655,11993,3},{2652,11988,3},{2652,11987,3}, {2653,11983,3},{2657,11983,3},{2657,11985,3},{2660,11985,3},{2665,11998,3}, {2670,11998,3},{2672,12000,3},{2672,12003,3},{2673,12003,3},{2677,12005,3}, {2678,12008,3},{2678,12000,3},{2680,11993,3},{2675,11993,3},{2670,11990,3}, {2665,11990,3},{2665,11987,3},{2665,11985,3},{2668,11985,3},{2672,11982,3}, {2668,11980,3},{2677,11980,3},{2678,11983,3},{2680,11978,3},{2682,11980,3}, {2683,11983,3},{2685,11983,3},{2683,11980,3},{2682,11978,3},{2678,11975,3}, {2677,11977,3},{2673,11977,3},{2673,11973,3},{2680,11972,3},{2682,11968,3}, {2677,11968,3},{2672,11973,3},{2670,11970,3},{2675,11965,3},{2675,11962,3}, {2678,11963,3},{2680,11962,3},{2678,11958,3},{2677,11957,3},{2677,11955,3}, {2670,11955,3},{2670,11960,3},{2668,11960,3},{2665,11960,3},{2665,11953,3}, {2662,11955,3},{2657,11960,3},{2660,11967,3},{2662,11973,3},{2658,11973,3}, {2657,11978,3},{2655,11978,3},{2655,11977,3},{2655,11975,3},{2652,11977,3}, {2652,11980,3},{2650,11978,3},{2648,11980,3},{2645,11982,3},{2643,11980,3}, {2642,11978,3},{2640,11977,3},{2643,11975,3},{2645,11968,3},{2650,11965,3}, {2647,11963,3},{2647,11958,3},{2643,11957,3},{2643,11962,3},{2645,11963,3}, {2640,11965,3},{2635,11965,3},{2633,11965,3},{2633,11968,3},{2632,11968,3}, {2632,11975,3},{2637,11975,3},{2637,11977,3},{2640,11978,3},{2642,11982,3}, {2640,11985,3},{2637,11985,3},{2635,11988,3},{2637,11995,3},{2632,11990,3}, {2633,11982,3},{2630,11978,3},{2628,11980,3},{2628,11975,3},{2628,11967,3}, {2625,11963,3},{2625,11967,3},{2622,11967,3},{2617,11960,3},{2613,11960,3}, {2612,11957,3},{2602,11948,3},{2598,11945,3},{2605,11933,3},{2605,11927,3}, {2610,11922,3},{2612,11915,3},{2615,11910,3},{2608,11915,3},{2608,11920,3}, {2600,11923,3},{2597,11923,3},{2593,11937,3},{2597,11945,3},{2598,11948,3}, {2603,11950,3},{2605,11953,3},{2602,11968,3},{2600,11970,3},{2590,11967,3}, {2590,11962,3},{2583,11960,3},{2587,11958,3},{2588,11957,3},{2587,11958,3}, {2583,11957,3},{2580,11960,3},{2577,11960,3},{2575,11962,3},{2573,11960,3}, {2568,11958,3},{2568,11957,3},{2570,11953,3},{2568,11952,3},{2568,11945,3}, {2562,11945,3},{2562,11948,3},{2558,11948,3},{2555,11952,3},{2557,11953,3}, {2557,11955,3},{2558,11958,3},{2553,11957,3},{2552,11958,3},{2552,11957,3}, {2550,11960,3},{2548,11957,3},{2548,11958,3},{2550,11960,3},{2547,11960,3}, {2547,11962,3},{2543,11962,3},{2542,11965,3},{2538,11965,3},{2537,11962,3}, {2535,11965,3},{2533,11962,3},{2533,11958,3},{2537,11960,3},{2542,11958,3}, {2543,11958,3},{2547,11957,3},{2545,11953,3},{2543,11953,3},{2542,11953,3}, {2540,11957,3},{2537,11953,3},{2538,11952,3},{2537,11948,3},{2542,11950,3}, {2545,11948,3},{2547,11952,3},{2547,11947,3},{2543,11943,3},{2550,11945,3}, {2552,11935,3},{2555,11935,3},{2558,11938,3},{2558,11935,3},{2560,11935,3}, {2560,11932,3},{2557,11932,3},{2557,11928,3},{2553,11928,3},{2547,11923,3}, {2542,11910,3},{2540,11910,3},{2538,11912,3},{2537,11915,3},{2535,11915,3}, {2535,11917,3},{2532,11917,3},{2533,11922,3},{2532,11922,3},{2528,11918,3}, {2525,11920,3},{2525,11922,3},{2532,11925,3},{2532,11927,3},{2532,11928,3}, {2528,11930,3},{2527,11935,3},{2525,11935,3},{2523,11927,3},{2520,11928,3}, {2517,11925,3},{2518,11915,3},{2520,11913,3},{2523,11915,3},{2525,11913,3}, {2517,11908,3},{2517,11912,3},{2515,11913,3},{2515,11915,3},{2513,11915,3}, {2512,11915,3},{2513,11908,3},{2512,11910,3},{2510,11908,3},{2512,11907,3}, {2513,11907,3},{2515,11907,3},{2517,11907,3},{2513,11905,3},{2512,11903,3}, {2513,11903,3},{2517,11903,3},{2517,11905,3},{2522,11907,3},{2523,11905,3}, {2522,11898,3},{2525,11898,3},{2525,11905,3},{2527,11907,3},{2528,11898,3}, {2525,11888,3},{2522,11887,3},{2522,11892,3},{2518,11890,3},{2518,11895,3}, {2517,11897,3},{2513,11895,3},{2510,11893,3},{2510,11887,3},{2508,11885,3}, {2503,11888,3},{2500,11895,3},{2502,11898,3},{2505,11900,3},{2502,11900,3}, {2498,11898,3},{2495,11900,3},{2495,11902,3},{2493,11898,3},{2495,11897,3}, {2495,11892,3},{2493,11890,3},{2488,11893,3},{2490,11897,3},{2488,11898,3}, {2487,11890,3},{2488,11887,3},{2487,11882,3},{2488,11880,3},{2485,11877,3}, {2485,11870,3},{2487,11870,3},{2490,11873,3},{2493,11870,3},{2490,11868,3}, {2493,11868,3},{2495,11867,3},{2492,11863,3},{2488,11867,3},{2485,11865,3}, {2488,11857,3},{2485,11862,3},{2477,11863,3},{2480,11870,3},{2477,11872,3}, {2477,11877,3},{2468,11872,3},{2467,11868,3},{2468,11867,3},{2468,11865,3}, {2468,11863,3},{2463,11863,3},{2462,11867,3},{2457,11865,3},{2455,11862,3}, {2452,11855,3},{2455,11855,3},{2457,11858,3},{2463,11843,3},{2468,11843,3}, {2470,11842,3},{2467,11840,3},{2462,11842,3},{2460,11842,3},{2460,11838,3}, {2458,11835,3},{2460,11828,3},{2457,11828,3},{2457,11825,3},{2453,11823,3}, {2453,11822,3},{2457,11818,3},{2460,11818,3},{2460,11822,3},{2462,11818,3}, {2465,11820,3},{2468,11817,3},{2458,11812,3},{2458,11810,3},{2460,11808,3}, {2462,11805,3},{2457,11805,3},{2455,11802,3},{2457,11800,3},{2458,11800,3}, {2455,11797,3},{2452,11805,3},{2450,11805,3},{2448,11800,3},{2447,11800,3}, {2445,11802,3},{2445,11803,3},{2443,11802,3},{2448,11785,3},{2447,11783,3}, {2447,11788,3},{2445,11790,3},{2447,11778,3},{2440,11787,3},{2438,11790,3}, {2440,11805,3},{2435,11805,3},{2435,11802,3},{2432,11802,3},{2435,11805,3}, {2435,11808,3},{2425,11812,3},{2425,11805,3},{2415,11797,3},{2420,11797,3}, {2420,11793,3},{2418,11792,3},{2415,11793,3},{2410,11790,3},{2403,11790,3}, {2402,11783,3},{2395,11777,3},{2392,11777,3},{2390,11773,3},{2395,11773,3}, {2402,11780,3},{2402,11778,3},{2402,11775,3},{2403,11777,3},{2405,11777,3}, {2407,11775,3},{2403,11775,3},{2403,11773,3},{2405,11767,3},{2403,11767,3}, {2403,11770,3},{2398,11768,3},{2395,11770,3},{2392,11763,3},{2385,11762,3}, {2378,11763,3},{2372,11757,3},{2382,11760,3},{2388,11758,3},{2390,11757,3}, {2392,11747,3},{2395,11742,3},{2393,11740,3},{2392,11742,3},{2390,11747,3}, {2387,11748,3},{2377,11743,3},{2380,11737,3},{2375,11733,3},{2375,11730,3}, {2378,11730,3},{2378,11728,3},{2375,11728,3},{2372,11727,3},{2367,11725,3}, {2363,11727,3},{2362,11722,3},{2365,11723,3},{2368,11723,3},{2365,11720,3}, {2363,11720,3},{2362,11718,3},{2360,11713,3},{2357,11710,3},{2355,11707,3}, {2363,11707,3},{2365,11703,3},{2365,11702,3},{2362,11702,3},{2365,11698,3}, {2365,11697,3},{2362,11697,3},{2362,11695,3},{2362,11692,3},{2365,11693,3}, {2367,11692,3},{2360,11687,3},{2358,11688,3},{2355,11688,3},{2352,11685,3}, {2347,11687,3},{2345,11685,3},{2342,11683,3},{2335,11675,3},{2337,11673,3}, {2335,11668,3},{2337,11660,3},{2342,11652,3},{2337,11653,3},{2333,11655,3}, {2332,11660,3},{2333,11665,3},{2332,11668,3},{2332,11673,3},{2325,11677,3}, {2323,11678,3},{2320,11678,3},{2327,11670,3},{2328,11667,3},{2327,11667,3}, {2325,11672,3},{2323,11667,3},{2317,11662,3},{2318,11660,3},{2322,11660,3}, {2325,11657,3},{2322,11650,3},{2322,11653,3},{2322,11658,3},{2320,11658,3}, {2313,11652,3},{2310,11653,3},{2307,11652,3},{2302,11653,3},{2300,11650,3}, {2293,11648,3},{2295,11645,3},{2293,11635,3},{2295,11630,3},{2298,11628,3}, {2300,11628,3},{2298,11627,3},{2297,11625,3},{2298,11620,3},{2297,11622,3}, {2295,11627,3},{2292,11618,3},{2285,11613,3},{2283,11608,3},{2287,11608,3}, {2290,11610,3},{2293,11603,3},{2290,11607,3},{2285,11605,3},{2285,11602,3}, {2280,11595,3},{2283,11595,3},{2280,11593,3},{2278,11585,3},{2273,11580,3}, {2275,11578,3},{2280,11578,3},{2277,11582,3},{2282,11580,3},{2285,11572,3}, {2288,11567,3},{2293,11573,3},{2293,11568,3},{2290,11567,3},{2288,11558,3}, {2285,11555,3},{2287,11553,3},{2288,11555,3},{2290,11555,3},{2288,11552,3}, {2292,11547,3},{2293,11545,3},{2292,11543,3},{2292,11542,3},{2290,11542,3}, {2290,11545,3},{2290,11547,3},{2288,11550,3},{2287,11550,3},{2285,11547,3}, {2283,11557,3},{2287,11560,3},{2285,11558,3},{2280,11553,3},{2275,11552,3}, {2272,11553,3},{2273,11555,3},{2275,11555,3},{2273,11560,3},{2270,11555,3}, {2267,11557,3},{2265,11557,3},{2268,11545,3},{2268,11538,3},{2270,11535,3}, {2273,11535,3},{2275,11542,3},{2278,11540,3},{2277,11535,3},{2278,11532,3}, {2278,11522,3},{2282,11527,3},{2283,11532,3},{2290,11530,3},{2285,11525,3}, {2283,11525,3},{2282,11517,3},{2277,11517,3},{2278,11515,3},{2280,11513,3}, {2278,11505,3},{2273,11503,3},{2273,11502,3},{2270,11502,3},{2268,11498,3}, {2270,11495,3},{2275,11493,3},{2273,11490,3},{2275,11485,3},{2273,11485,3}, {2273,11487,3},{2270,11488,3},{2272,11490,3},{2267,11495,3},{2262,11492,3}, {2255,11490,3},{2253,11487,3},{2257,11488,3},{2258,11487,3},{2258,11475,3}, {2260,11473,3},{2263,11472,3},{2267,11473,3},{2272,11472,3},{2275,11475,3}, {2278,11482,3},{2282,11477,3},{2278,11475,3},{2277,11472,3},{2278,11468,3}, {2275,11462,3},{2273,11455,3},{2270,11457,3},{2270,11452,3},{2268,11452,3}, {2265,11450,3},{2265,11458,3},{2260,11457,3},{2258,11450,3},{2255,11450,3}, {2255,11452,3},{2257,11453,3},{2255,11457,3},{2253,11460,3},{2250,11462,3}, {2248,11452,3},{2245,11450,3},{2248,11448,3},{2255,11447,3},{2262,11438,3}, {2260,11430,3},{2255,11423,3},{2253,11422,3},{2253,11425,3},{2250,11427,3}, {2250,11432,3},{2247,11427,3},{2248,11427,3},{2245,11420,3},{2245,11417,3}, {2243,11417,3},{2242,11420,3},{2238,11420,3},{2242,11423,3},{2242,11428,3}, {2245,11428,3},{2248,11432,3},{2247,11433,3},{2243,11433,3},{2245,11437,3}, {2243,11438,3},{2240,11437,3},{2237,11438,3},{2237,11437,3},{2238,11428,3}, {2238,11427,3},{2235,11425,3},{2228,11430,3},{2227,11428,3},{2232,11425,3}, {2230,11423,3},{2232,11420,3},{2230,11417,3},{2237,11410,3},{2237,11405,3}, {2235,11403,3},{2237,11398,3},{2238,11395,3},{2237,11395,3},{2237,11392,3}, {2240,11390,3},{2247,11398,3},{2247,11402,3},{2252,11403,3},{2252,11395,3}, {2252,11392,3},{2248,11392,3},{2247,11387,3},{2252,11388,3},{2258,11382,3}, {2275,11375,3},{2277,11372,3},{2275,11368,3},{2275,11365,3},{2280,11367,3}, {2283,11365,3},{2288,11362,3},{2283,11362,3},{2283,11360,3},{2290,11362,3}, {2287,11360,3},{2290,11360,3},{2292,11362,3},{2303,11363,3},{2300,11360,3}, {2292,11360,3},{2298,11360,3},{2303,11362,3},{2300,11358,3},{2293,11358,3}, {2302,11358,3},{2298,11355,3},{2302,11352,3},{2305,11353,3},{2307,11353,3}, {2312,11365,3},{2313,11372,3},{2312,11383,3},{2313,11382,3},{2315,11370,3}, {2312,11363,3},{2312,11360,3},{2310,11358,3},{2308,11355,3},{2305,11352,3}, {2308,11347,3},{2310,11340,3},{2308,11340,3},{2305,11342,3},{2307,11347,3}, {2303,11350,3},{2292,11348,3},{2293,11342,3},{2290,11335,3},{2288,11330,3}, {2290,11322,3},{2288,11327,3},{2288,11337,3},{2280,11343,3},{2277,11350,3}, {2277,11345,3},{2273,11343,3},{2275,11338,3},{2272,11347,3},{2267,11352,3}, {2255,11357,3},{2248,11357,3},{2240,11353,3},{2237,11360,3},{2235,11358,3}, {2232,11360,3},{2230,11357,3},{2225,11358,3},{2222,11355,3},{2218,11355,3}, {2220,11353,3},{2218,11352,3},{2217,11347,3},{2218,11343,3},{2227,11337,3}, {2230,11335,3},{2238,11327,3},{2247,11323,3},{2257,11317,3},{2247,11317,3}, {2242,11323,3},{2237,11325,3},{2233,11330,3},{2227,11332,3},{2223,11337,3}, {2218,11338,3},{2218,11330,3},{2215,11328,3},{2212,11325,3},{2207,11325,3}, {2203,11322,3},{2205,11320,3},{2208,11320,3},{2205,11318,3},{2208,11312,3}, {2215,11313,3},{2222,11310,3},{2210,11298,3},{2202,11300,3},{2195,11302,3}, {2192,11298,3},{2187,11295,3},{2185,11290,3},{2188,11287,3},{2195,11285,3}, {2197,11282,3},{2195,11280,3},{2193,11275,3},{2188,11273,3},{2188,11270,3}, {2185,11268,3},{2185,11265,3},{2180,11263,3},{2177,11257,3},{2183,11242,3}, {2190,11242,3},{2195,11250,3},{2195,11240,3},{2198,11237,3},{2205,11240,3}, {2207,11238,3},{2200,11235,3},{2182,11240,3},{2177,11238,3},{2172,11233,3}, {2170,11228,3},{2172,11223,3},{2173,11223,3},{2175,11218,3},{2180,11220,3}, {2183,11220,3},{2180,11218,3},{2180,11203,3},{2182,11200,3},{2185,11203,3}, {2188,11203,3},{2185,11202,3},{2182,11197,3},{2192,11192,3},{2192,11190,3}, {2182,11190,3},{2177,11200,3},{2172,11190,3},{2168,11188,3},{2167,11185,3}, {2168,11183,3},{2170,11188,3},{2172,11188,3},{2172,11182,3},{2177,11183,3}, {2173,11180,3},{2175,11178,3},{2175,11177,3},{2178,11168,3},{2172,11177,3}, {2165,11178,3},{2163,11175,3},{2162,11178,3},{2162,11170,3},{2152,11163,3}, {2155,11160,3},{2158,11158,3},{2155,11158,3},{2153,11160,3},{2152,11153,3}, {2153,11152,3},{2152,11152,3},{2152,11147,3},{2155,11147,3},{2155,11145,3}, {2160,11143,3},{2157,11140,3},{2153,11143,3},{2153,11135,3},{2152,11140,3}, {2143,11127,3},{2143,11125,3},{2145,11128,3},{2150,11130,3},{2152,11122,3}, {2153,11120,3},{2152,11115,3},{2150,11117,3},{2150,11122,3},{2147,11115,3}, {2147,11110,3},{2147,11108,3},{2148,11112,3},{2150,11112,3},{2148,11108,3}, {2152,11107,3},{2153,11103,3},{2152,11102,3},{2152,11098,3},{2148,11102,3}, {2145,11100,3},{2145,11098,3},{2145,11100,3},{2147,11102,3},{2148,11105,3}, {2147,11107,3},{2147,11103,3},{2143,11100,3},{2142,11093,3},{2140,11092,3}, {2138,11087,3},{2140,11080,3},{2135,11070,3},{2125,11065,3},{2132,11065,3}, {2135,11067,3},{2132,11063,3},{2135,11063,3},{2140,11075,3},{2143,11077,3}, {2142,11075,3},{2142,11070,3},{2137,11062,3},{2132,11062,3},{2125,11063,3}, {2123,11063,3},{2125,11058,3},{2122,11058,3},{2122,11053,3},{2122,11048,3}, {2118,11043,3},{2125,11043,3},{2127,11042,3},{2128,11043,3},{2128,11047,3}, {2127,11047,3},{2130,11048,3},{2130,11045,3},{2133,11048,3},{2133,11047,3}, {2133,11045,3},{2132,11045,3},{2130,11042,3},{2140,11043,3},{2138,11042,3}, {2138,11040,3},{2142,11037,3},{2145,11038,3},{2143,11035,3},{2133,11040,3}, {2133,11038,3},{2132,11038,3},{2133,11033,3},{2132,11035,3},{2130,11037,3}, {2128,11037,3},{2123,11042,3},{2117,11040,3},{2112,11033,3},{2107,11025,3}, {2102,11022,3},{2105,11020,3},{2107,11020,3},{2108,11020,3},{2107,11020,3}, {2102,11018,3},{2098,11017,3},{2098,11015,3},{2097,11017,3},{2093,11015,3}, {2087,11017,3},{2087,11015,3},{2085,11015,3},{2083,11025,3},{2085,11033,3}, {2083,11038,3},{2077,11040,3},{2072,11040,3},{2070,11038,3},{2073,11035,3}, {2082,11035,3},{2082,11033,3},{2078,11032,3},{2075,11033,3},{2075,11032,3}, {2072,11033,3},{2068,11030,3},{2065,11030,3},{2067,11032,3},{2063,11032,3}, {2063,11037,3},{2062,11037,3},{2063,11038,3},{2060,11038,3},{2058,11042,3}, {2057,11043,3},{2057,11047,3},{2057,11048,3},{2048,11053,3},{2043,11052,3}, {2030,11040,3},{2030,11037,3},{2027,11032,3},{2027,11028,3},{2025,11028,3}, {2028,11023,3},{2027,11020,3},{2023,11017,3},{2023,11012,3},{2027,11010,3}, {2030,11003,3},{2027,11000,3},{2028,10998,3},{2023,10992,3},{2025,10992,3}, {2030,10993,3},{2033,10992,3},{2037,10988,3},{2038,10988,3},{2040,10987,3}, {2042,10993,3},{2035,10998,3},{2043,11002,3},{2047,10997,3},{2045,10995,3}, {2050,10993,3},{2045,10992,3},{2048,10990,3},{2052,10982,3},{2053,10982,3}, {2055,10985,3},{2058,10985,3},{2055,10982,3},{2058,10982,3},{2062,10980,3}, {2063,10978,3},{2063,10975,3},{2067,10975,3},{2068,10977,3},{2068,10980,3}, {2068,10983,3},{2072,10980,3},{2077,10977,3},{2080,10975,3},{2082,10977,3}, {2083,10975,3},{2087,10975,3},{2085,10973,3},{2082,10973,3},{2080,10973,3}, {2083,10970,3},{2080,10972,3},{2082,10970,3},{2087,10967,3},{2092,10967,3}, {2095,10967,3},{2095,10968,3},{2098,10967,3},{2103,10970,3},{2103,10972,3}, {2113,10967,3},{2117,10970,3},{2118,10973,3},{2117,10973,3},{2117,10975,3}, {2118,10975,3},{2122,10977,3},{2135,10977,3},{2135,10978,3},{2133,10978,3}, {2135,10982,3},{2135,10983,3},{2137,10985,3},{2137,10992,3},{2140,10990,3}, {2142,10992,3},{2145,10995,3},{2147,10992,3},{2148,10995,3},{2147,10990,3}, {2150,10983,3},{2147,10983,3},{2147,10980,3},{2155,10980,3},{2153,10977,3}, {2158,10977,3},{2157,10975,3},{2150,10977,3},{2148,10977,3},{2148,10975,3}, {2147,10973,3},{2150,10967,3},{2152,10965,3},{2162,10968,3},{2160,10963,3}, {2157,10963,3},{2157,10962,3},{2162,10960,3},{2165,10962,3},{2163,10958,3}, {2167,10957,3},{2170,10955,3},{2173,10960,3},{2175,10957,3},{2170,10950,3}, {2168,10950,3},{2168,10952,3},{2165,10952,3},{2165,10947,3},{2163,10953,3}, {2158,10958,3},{2155,10955,3},{2152,10955,3},{2148,10953,3},{2147,10947,3}, {2150,10947,3},{2145,10943,3},{2145,10935,3},{2147,10932,3},{2143,10928,3}, {2143,10925,3},{2148,10923,3},{2145,10922,3},{2142,10922,3},{2142,10917,3}, {2143,10915,3},{2140,10915,3},{2140,10913,3},{2143,10903,3},{2148,10907,3}, {2148,10912,3},{2152,10915,3},{2153,10915,3},{2160,10913,3},{2158,10912,3}, {2160,10910,3},{2160,10908,3},{2162,10907,3},{2160,10905,3},{2162,10905,3}, {2165,10907,3},{2162,10903,3},{2160,10897,3},{2162,10892,3},{2167,10890,3}, {2168,10885,3},{2172,10887,3},{2173,10887,3},{2177,10892,3},{2177,10890,3}, {2175,10887,3},{2178,10887,3},{2180,10887,3},{2178,10885,3},{2182,10887,3}, {2180,10883,3},{2182,10880,3},{2182,10878,3},{2180,10882,3},{2178,10882,3}, {2177,10885,3},{2175,10885,3},{2170,10883,3},{2175,10880,3},{2173,10880,3}, {2173,10878,3},{2172,10878,3},{2172,10880,3},{2168,10883,3},{2167,10883,3}, {2163,10882,3},{2163,10887,3},{2162,10883,3},{2163,10878,3},{2162,10873,3}, {2160,10873,3},{2163,10873,3},{2165,10872,3},{2167,10873,3},{2165,10875,3}, {2168,10875,3},{2167,10873,3},{2167,10872,3},{2168,10870,3},{2173,10873,3}, {2173,10870,3},{2170,10868,3},{2173,10865,3},{2173,10868,3},{2175,10863,3}, {2178,10867,3},{2180,10868,3},{2178,10865,3},{2182,10865,3},{2178,10863,3}, {2177,10863,3},{2178,10862,3},{2175,10863,3},{2173,10860,3},{2178,10860,3}, {2178,10858,3},{2178,10857,3},{2180,10857,3},{2188,10863,3},{2192,10860,3}, {2190,10858,3},{2190,10855,3},{2192,10857,3},{2195,10857,3},{2195,10855,3}, {2192,10853,3},{2190,10852,3},{2188,10852,3},{2187,10848,3},{2185,10848,3}, {2185,10847,3},{2187,10845,3},{2193,10848,3},{2193,10847,3},{2190,10845,3}, {2188,10845,3},{2187,10845,3},{2182,10848,3},{2180,10847,3},{2180,10850,3}, {2178,10850,3},{2177,10850,3},{2173,10850,3},{2173,10847,3},{2172,10850,3}, {2170,10848,3},{2168,10850,3},{2167,10850,3},{2170,10852,3},{2172,10853,3}, {2168,10852,3},{2167,10852,3},{2170,10855,3},{2168,10857,3},{2167,10857,3}, {2167,10855,3},{2163,10855,3},{2163,10852,3},{2162,10853,3},{2162,10852,3}, {2158,10848,3},{2160,10848,3},{2160,10850,3},{2162,10848,3},{2160,10848,3}, {2157,10847,3},{2157,10845,3},{2157,10847,3},{2155,10840,3},{2160,10838,3}, {2160,10842,3},{2158,10842,3},{2158,10843,3},{2162,10845,3},{2162,10842,3}, {2167,10847,3},{2165,10842,3},{2168,10842,3},{2167,10840,3},{2168,10835,3}, {2170,10833,3},{2172,10833,3},{2170,10832,3},{2168,10832,3},{2167,10830,3}, {2163,10832,3},{2162,10830,3},{2162,10832,3},{2158,10828,3},{2158,10832,3}, {2155,10828,3},{2150,10820,3},{2158,10827,3},{2162,10822,3},{2163,10823,3}, {2163,10822,3},{2163,10820,3},{2160,10820,3},{2157,10817,3},{2158,10813,3}, {2157,10813,3},{2157,10812,3},{2155,10808,3},{2157,10807,3},{2155,10807,3}, {2153,10807,3},{2155,10798,3},{2153,10807,3},{2153,10795,3},{2158,10793,3}, {2160,10790,3},{2165,10787,3},{2167,10778,3},{2162,10767,3},{2162,10757,3}, {2158,10753,3},{2160,10748,3},{2163,10748,3},{2165,10745,3},{2165,10742,3}, {2160,10738,3},{2162,10735,3},{2168,10735,3},{2173,10730,3},{2170,10722,3}, {2180,10710,3},{2182,10702,3},{2185,10702,3},{2190,10705,3},{2193,10703,3}, {2193,10693,3},{2197,10690,3},{2197,10682,3},{2202,10675,3},{2198,10673,3}, {2197,10668,3},{2200,10667,3},{2203,10670,3},{2208,10670,3},{2220,10667,3}, {2222,10670,3},{2233,10665,3},{2235,10657,3},{2245,10655,3},{2248,10658,3}, {2260,10660,3},{2262,10663,3},{2258,10665,3},{2257,10668,3},{2258,10672,3}, {2265,10673,3},{2270,10677,3},{2275,10677,3},{2278,10682,3},{2280,10682,3}, {2280,10677,3},{2282,10677,3},{2285,10672,3},{2287,10670,3},{2288,10668,3}, {2285,10665,3},{2287,10662,3},{2292,10660,3},{2292,10655,3},{2293,10652,3}, {2290,10650,3},{2287,10642,3},{2285,10628,3},{2287,10625,3},{2292,10625,3}, {2297,10620,3},{2298,10608,3},{2298,10602,3},{2293,10598,3},{2293,10592,3}, {2292,10587,3},{2302,10578,3},{2303,10573,3},{2305,10572,3},{2307,10557,3}, {2315,10555,3},{2318,10552,3},{2320,10550,3},{2328,10545,3},{2328,10540,3}, {2332,10535,3},{2337,10535,3},{2338,10533,3},{2333,10527,3},{2327,10523,3}, {2325,10522,3},{2327,10518,3},{2325,10513,3},{2325,10508,3},{2318,10497,3}, {2317,10495,3},{2318,10490,3},{2312,10488,3},{2310,10482,3},{2293,10487,3}, {2290,10478,3},{2282,10473,3},{2282,10467,3},{2283,10463,3},{2282,10460,3}, {2285,10458,3},{2275,10448,3},{2268,10437,3},{2273,10427,3},{2280,10425,3}, {2283,10427,3},{2283,10425,3},{2280,10412,3},{2268,10403,3},{2253,10402,3}, {2250,10397,3},{2260,10383,3},{2278,10365,3},{2278,10362,3},{2273,10360,3}, {2270,10357,3},{2265,10358,3},{2258,10353,3},{2265,10345,3},{2270,10343,3}, {2275,10343,3},{2278,10337,3},{2280,10333,3},{2273,10330,3},{2267,10328,3}, {2263,10318,3},{2258,10315,3},{2255,10317,3},{2250,10307,3},{2245,10307,3}, {2243,10303,3},{2247,10298,3},{2248,10293,3},{2260,10287,3},{2262,10278,3}, {2268,10268,3},{2270,10263,3},{2272,10260,3},{2270,10258,3},{2270,10257,3}, {2275,10255,3},{2277,10248,3},{2275,10245,3},{2268,10243,3},{2268,10238,3}, {2265,10238,3},{2263,10242,3},{2248,10227,3},{2242,10225,3},{2243,10218,3}, {2240,10213,3},{2243,10212,3},{2245,10203,3},{2243,10198,3},{2243,10192,3}, {2238,10190,3},{2238,10188,3},{2248,10180,3},{2250,10173,3},{2247,10168,3}, {2245,10167,3},{2242,10167,3},{2238,10168,3},{2237,10165,3},{2228,10163,3}, {2228,10157,3},{2225,10153,3},{2220,10158,3},{2217,10160,3},{2213,10160,3}, {2212,10157,3},{2200,10163,3},{2197,10163,3},{2193,10167,3},{2193,10170,3}, {2188,10172,3},{2187,10175,3},{2183,10175,3},{2182,10178,3},{2172,10175,3}, {2170,10178,3},{2165,10178,3},{2163,10183,3},{2160,10182,3},{2158,10177,3}, {2152,10178,3},{2148,10175,3},{2145,10177,3},{2132,10173,3},{2130,10177,3}, {2128,10182,3},{2125,10185,3},{2122,10183,3},{2122,10178,3},{2115,10178,3}, {2113,10173,3},{2115,10172,3},{2118,10170,3},{2120,10167,3},{2118,10160,3}, {2123,10162,3},{2125,10152,3},{2123,10140,3},{2118,10133,3},{2118,10128,3}, {2125,10123,3},{2130,10125,3},{2132,10123,3},{2138,10127,3},{2142,10120,3}, {2148,10122,3},{2155,10122,3},{2157,10115,3},{2163,10117,3},{2170,10112,3}, {2177,10112,3},{2172,10102,3},{2168,10088,3},{2165,10087,3},{2163,10083,3}, {2158,10080,3},{2152,10073,3},{2150,10068,3},{2148,10067,3},{2145,10060,3}, {2145,10057,3},{2147,10052,3},{2145,10048,3},{2153,10043,3},{2153,10038,3}, {2153,10035,3},{2148,10030,3},{2145,10022,3},{2143,10022,3},{2145,10018,3}, {2148,10015,3},{2150,10012,3},{2158,10010,3},{2163,10013,3},{2165,10017,3}, {2168,10012,3},{2170,10000,3},{2182,9995,3},{2185,9995,3},{2197,9998,3}, {2203,9997,3},{2205,9997,3},{2207,9988,3},{2203,9987,3},{2202,9985,3},{2205,9982,3}, {2207,9975,3},{2203,9970,3},{2207,9968,3},{2210,9965,3},{2208,9962,3},{2212,9957,3}, {2210,9952,3},{2213,9947,3},{2210,9937,3},{2212,9923,3},{2217,9917,3},{2217,9920,3}, {2220,9918,3},{2227,9923,3},{2232,9925,3},{2235,9927,3},{2238,9927,3},{2243,9933,3}, {2250,9938,3},{2253,9937,3},{2260,9938,3},{2275,9933,3},{2278,9938,3},{2287,9943,3}, {2293,9943,3},{2295,9945,3},{2292,9948,3},{2292,9953,3},{2292,9955,3},{2293,9957,3}, {2302,9952,3},{2307,9952,3},{2308,9950,3},{2310,9940,3},{2313,9935,3},{2312,9932,3}, {2312,9927,3},{2310,9923,3},{2312,9915,3},{2310,9912,3},{2313,9905,3},{2317,9907,3}, {2317,9902,3},{2318,9893,3},{2318,9888,3},{2332,9893,3},{2333,9892,3},{2333,9888,3}, {2337,9892,3},{2342,9892,3},{2348,9888,3},{2348,9882,3},{2353,9880,3},{2355,9882,3}, {2362,9888,3},{2363,9885,3},{2368,9885,3},{2370,9882,3},{2377,9882,3},{2380,9868,3}, {2383,9870,3},{2392,9868,3},{2395,9870,3},{2397,9868,3},{2400,9875,3},{2410,9890,3}, {2412,9890,3},{2417,9888,3},{2413,9885,3},{2412,9872,3},{2408,9860,3},{2412,9855,3}, {2413,9843,3},{2410,9835,3},{2413,9822,3},{2408,9805,3},{2403,9795,3},{2403,9792,3}, {2395,9783,3},{2395,9778,3},{2388,9772,3},{2387,9767,3},{2385,9765,3},{2390,9762,3}, {2393,9753,3},{2397,9755,3},{2400,9762,3},{2407,9765,3},{2412,9772,3},{2417,9775,3}, {2422,9773,3},{2425,9777,3},{2428,9775,3},{2430,9767,3},{2433,9767,3},{2435,9772,3}, {2440,9768,3},{2443,9767,3},{2443,9753,3},{2457,9757,3},{2467,9757,3},{2475,9755,3}, {2483,9768,3},{2483,9777,3},{2485,9780,3},{2492,9773,3},{2508,9772,3},{2508,9775,3}, {2513,9778,3},{2527,9783,3},{2527,9787,3},{2522,9790,3},{2522,9793,3},{2530,9802,3}, {2532,9807,3},{2538,9810,3},{2538,9813,3},{2547,9815,3},{2550,9813,3},{2555,9817,3}, {2562,9817,3},{2558,9827,3},{2555,9830,3},{2555,9833,3},{2558,9838,3},{2565,9840,3}, {2568,9843,3},{2573,9845,3},{2577,9848,3},{2580,9848,3},{2585,9853,3},{2580,9863,3}, {2587,9872,3},{2590,9872,3},{2592,9868,3},{2598,9865,3},{2600,9860,3},{2605,9860,3}, {2612,9857,3},{2615,9865,3},{2610,9865,3},{2610,9867,3},{2613,9870,3},{2617,9872,3}, {2618,9873,3},{2625,9870,3},{2625,9867,3},{2627,9867,3},{2632,9868,3},{2638,9873,3}, {2658,9875,3},{2660,9878,3},{2670,9877,3},{2672,9875,3},{2678,9878,3},{2687,9873,3}, {2690,9877,3},{2700,9873,3},{2705,9877,3},{2708,9875,3},{2710,9870,3},{2715,9872,3}, {2720,9870,3},{2733,9873,3},{2737,9873,3},{2738,9870,3},{2747,9868,3},{2758,9870,3}, {2760,9870,3},{2762,9867,3},{2760,9863,3},{2760,9860,3},{2767,9855,3},{2765,9852,3}, {2768,9843,3},{2760,9843,3},{2755,9842,3},{2755,9840,3},{2753,9835,3},{2755,9832,3}, {2768,9827,3},{2773,9823,3},{2777,9823,3},{2780,9822,3},{2782,9823,3},{2785,9818,3}, {2787,9817,3},{2788,9817,3},{2790,9820,3},{2792,9820,3},{2795,9818,3},{2797,9813,3}, {2802,9815,3},{2813,9815,3},{2818,9810,3},{2822,9807,3},{2822,9802,3},{2828,9802,3}, {2830,9797,3},{2835,9793,3},{2838,9790,3},{2837,9785,3},{2835,9783,3},{2835,9780,3}, {2842,9775,3},{2852,9772,3},{2852,9768,3},{2848,9763,3},{2855,9758,3},{2855,9757,3}, {2845,9752,3},{2838,9747,3},{2835,9748,3},{2830,9747,3},{2830,9742,3},{2827,9740,3}, {2825,9737,3},{2822,9735,3},{2823,9730,3},{2828,9725,3},{2832,9723,3},{2832,9720,3}, {2838,9713,3},{2838,9708,3},{2833,9702,3},{2833,9698,3},{2835,9693,3},{2837,9692,3}, {2837,9678,3},{2843,9673,3},{2847,9665,3},{2847,9660,3},{2843,9653,3},{2842,9645,3}, {2835,9640,3},{2840,9637,3},{2838,9632,3},{2842,9628,3},{2842,9627,3},{2848,9637,3}, {2853,9633,3},{2855,9633,3},{2857,9640,3},{2858,9640,3},{2858,9643,3},{2863,9648,3}, {2868,9647,3},{2873,9660,3},{2878,9662,3},{2890,9653,3},{2897,9652,3},{2897,9648,3}, {2907,9650,3},{2905,9643,3},{2903,9635,3},{2893,9625,3},{2890,9620,3},{2890,9617,3}, {2895,9615,3},{2900,9618,3},{2907,9615,3},{2908,9612,3},{2910,9618,3},{2915,9622,3}, {2917,9625,3},{2918,9635,3},{2925,9640,3},{2928,9637,3},{2925,9632,3},{2923,9628,3}, {2925,9623,3},{2932,9618,3},{2935,9618,3},{2947,9608,3},{2940,9595,3},{2940,9588,3}, {2937,9583,3},{2935,9577,3},{2930,9572,3},{2930,9568,3},{2925,9563,3},{2925,9558,3}, {2922,9558,3},{2922,9553,3},{2913,9555,3},{2913,9550,3},{2905,9547,3},{2903,9538,3}, {2907,9525,3},{2910,9522,3},{2912,9512,3},{2915,9508,3},{2915,9502,3},{2917,9498,3}, {2913,9502,3},{2912,9502,3},{2915,9495,3},{2918,9487,3},{2917,9480,3},{2922,9480,3}, {2927,9475,3},{2932,9470,3},{2933,9463,3},{2927,9457,3},{2922,9455,3},{2922,9442,3}, {2920,9440,3},{2915,9435,3},{2915,9428,3},{2908,9422,3},{2898,9413,3},{2897,9403,3}, {2888,9405,3},{2887,9405,3},{2883,9400,3},{2883,9393,3},{2880,9393,3},{2880,9390,3}, {2878,9390,3},{2877,9385,3},{2875,9380,3},{2870,9373,3},{2872,9370,3},{2868,9365,3}, {2868,9357,3},{2867,9332,3},{2863,9328,3},{2863,9323,3},{2838,9313,3},{2837,9308,3}, {2827,9298,3},{2825,9293,3},{2820,9288,3},{2818,9282,3},{2820,9280,3},{2813,9268,3}, {2807,9267,3},{2805,9273,3},{2797,9272,3},{2792,9263,3},{2790,9258,3},{2787,9255,3}, {2783,9245,3},{2785,9243,3},{2787,9242,3},{2782,9240,3},{2780,9238,3},{2785,9235,3}, {2780,9233,3},{2780,9230,3},{2787,9227,3},{2787,9225,3},{2782,9225,3},{2782,9213,3}, {2778,9208,3},{2777,9207,3},{2773,9202,3},{2773,9197,3},{2773,9188,3},{2777,9183,3}, {2777,9165,3},{2787,9165,3},{2792,9168,3},{2793,9167,3},{2797,9160,3},{2800,9143,3}, {2805,9133,3},{2810,9132,3},{2807,9130,3},{2807,9122,3},{2798,9113,3},{2797,9108,3}, {2798,9102,3},{2803,9095,3},{2805,9092,3},{2805,9083,3},{2808,9073,3},{2810,9068,3}, {2807,9060,3},{2808,9053,3},{2807,9047,3},{2808,9037,3},{2812,9035,3},{2820,9040,3}, {2823,9040,3},{2825,9038,3},{2830,9018,3},{2832,9000,3},{2830,8998,3},{2828,8993,3}, {2830,8990,3},{2823,8980,3},{2820,8980,3},{2815,8958,3},{2808,8955,3},{2805,8948,3}, {2787,8937,3},{2780,8923,3},{2762,8913,3},{2757,8913,3},{2750,8900,3},{2747,8897,3}, {2732,8892,3},{2738,8885,3},{2738,8882,3},{2743,8878,3},{2745,8878,3},{2752,8878,3}, {2755,8877,3},{2767,8883,3},{2787,8888,3},{2790,8887,3},{2793,8883,3},{2800,8883,3}, {2807,8875,3},{2808,8867,3},{2812,8863,3},{2807,8855,3},{2803,8853,3},{2803,8848,3}, {2798,8840,3},{2795,8815,3},{2790,8812,3},{2787,8815,3},{2785,8808,3},{2790,8805,3}, {2792,8803,3},{2790,8798,3},{2783,8795,3},{2782,8790,3},{2782,8785,3},{2780,8780,3}, {2782,8773,3},{2780,8765,3},{2780,8762,3},{2785,8755,3},{2783,8752,3},{2785,8750,3}, {2782,8742,3},{2787,8742,3},{2778,8727,3},{2780,8720,3},{2783,8715,3},{2788,8713,3}, {2797,8693,3},{2800,8687,3},{2803,8677,3},{2810,8673,3},{2810,8670,3},{2808,8667,3}, {2807,8663,3},{2808,8657,3},{2803,8655,3},{2802,8652,3},{2797,8653,3},{2793,8653,3}, {2792,8652,3},{2792,8643,3},{2795,8642,3},{2795,8635,3},{2797,8623,3},{2807,8620,3}, {2810,8620,3},{2813,8617,3},{2810,8613,3},{2807,8607,3},{2793,8608,3},{2792,8608,3}, {2792,8607,3},{2793,8595,3},{2797,8595,3},{2802,8592,3},{2810,8592,3},{2820,8585,3}, {2820,8580,3},{2822,8577,3},{2818,8573,3},{2830,8557,3},{2832,8548,3},{2832,8542,3}, {2827,8537,3},{2828,8533,3},{2827,8530,3},{2832,8522,3},{2833,8515,3},{2843,8510,3}, {2857,8512,3},{2863,8512,3},{2868,8510,3},{2867,8505,3},{2863,8500,3},{2858,8485,3}, {2862,8468,3},{2865,8468,3},{2867,8463,3},{2872,8460,3},{2870,8447,3},{2873,8442,3}, {2873,8435,3},{2880,8433,3},{2882,8425,3},{2880,8420,3},{2880,8415,3},{2887,8412,3}, {2898,8415,3},{2905,8410,3},{2912,8412,3},{2918,8408,3},{2928,8412,3},{2928,8400,3}, {2933,8397,3},{2930,8388,3},{2913,8380,3},{2907,8372,3},{2905,8363,3},{2908,8358,3}, {2913,8353,3},{2917,8345,3},{2940,8340,3},{2955,8325,3},{2967,8308,3},{2967,8295,3}, {2975,8283,3},{2977,8277,3},{2995,8260,3},{3002,8245,3},{3003,8233,3},{3008,8223,3}, {3015,8217,3},{3017,8195,3},{3025,8182,3},{3022,8180,3},{3027,8175,3},{3033,8173,3}, {3042,8167,3},{3045,8162,3},{3030,8148,3},{3027,8143,3},{3025,8138,3},{3020,8137,3}, {3015,8135,3},{3015,8125,3},{3008,8128,3},{3002,8123,3},{3002,8113,3},{3005,8108,3}, {3010,8110,3},{3012,8108,3},{3015,8107,3},{3020,8102,3},{3022,8103,3},{3027,8100,3}, {3032,8082,3},{3040,8075,3},{3047,8060,3},{3047,8053,3},{3057,8032,3},{3057,8023,3}, {3057,8020,3},{3062,8023,3},{3068,8018,3},{3068,8023,3},{3073,8025,3},{3077,8022,3}, {3080,8020,3},{3080,8017,3},{3078,8012,3},{3078,8008,3},{3085,8005,3},{3088,7997,3}, {3088,7992,3},{3097,7988,3},{3098,7975,3},{3098,7972,3},{3097,7967,3},{3093,7960,3}, {3097,7955,3},{3102,7950,3},{3103,7942,3},{3110,7940,3},{3115,7930,3},{3122,7928,3}, {3123,7925,3},{3127,7925,3},{3130,7922,3},{3133,7922,3},{3135,7917,3},{3140,7917,3}, {3142,7912,3},{3143,7908,3},{3142,7902,3},{3133,7900,3},{3137,7895,3},{3130,7890,3}, {3130,7887,3},{3130,7885,3},{3128,7882,3},{3130,7877,3},{3135,7877,3},{3145,7880,3}, {3147,7877,3},{3148,7872,3},{3152,7872,3},{3162,7885,3},{3165,7880,3},{3168,7878,3}, {3167,7877,3},{3168,7875,3},{3173,7872,3},{3175,7872,3},{3178,7870,3},{3182,7872,3}, {3198,7877,3},{3205,7867,3},{3212,7860,3},{3222,7855,3},{3223,7848,3},{3225,7848,3}, {3235,7848,3},{3238,7845,3},{3242,7848,3},{3253,7840,3},{3257,7842,3},{3258,7848,3}, {3257,7857,3},{3258,7865,3},{3260,7868,3},{3263,7870,3},{3263,7877,3},{3260,7878,3}, {3257,7875,3},{3247,7878,3},{3243,7887,3},{3237,7893,3},{3235,7897,3},{3238,7903,3}, {3238,7910,3},{3242,7912,3},{3247,7912,3},{3250,7917,3},{3252,7927,3},{3250,7932,3}, {3253,7935,3},{3260,7945,3},{3265,7950,3},{3275,7953,3},{3280,7947,3},{3288,7945,3}, {3293,7938,3},{3297,7935,3},{3310,7937,3},{3313,7940,3},{3317,7940,3},{3318,7937,3}, {3320,7925,3},{3323,7915,3},{3322,7910,3},{3328,7908,3},{3332,7900,3},{3340,7893,3}, {3353,7893,3},{3357,7890,3},{3363,7892,3},{3363,7895,3},{3362,7902,3},{3363,7903,3}, {3372,7902,3},{3375,7902,3},{3383,7895,3},{3397,7890,3},{3402,7897,3},{3400,7910,3}, {3403,7913,3},{3402,7942,3},{3403,7943,3},{3407,7947,3},{3412,7952,3},{3418,7952,3}, {3418,7955,3},{3420,7958,3},{3440,7953,3},{3443,7953,3},{3442,7972,3},{3445,7977,3}, {3450,7973,3},{3453,7972,3},{3455,7977,3},{3457,7985,3},{3467,7988,3},{3465,8002,3}, {3467,8007,3},{3477,8010,3},{3485,8018,3},{3490,8020,3},{3510,8020,3},{3520,8030,3}, {3523,8030,3},{3532,8028,3},{3535,8030,3},{3542,8038,3},{3547,8038,3},{3552,8038,3}, {3552,8035,3},{3550,8030,3},{3555,8025,3},{3557,8020,3},{3545,8013,3},{3542,8008,3}, {3542,8005,3},{3545,8002,3},{3560,7997,3},{3562,7992,3},{3557,7987,3},{3557,7983,3}, {3563,7982,3},{3565,7970,3},{3577,7963,3},{3580,7967,3},{3582,7965,3},{3583,7960,3}, {3587,7960,3},{3587,7957,3},{3585,7947,3},{3588,7943,3},{3593,7945,3},{3597,7943,3}, {3598,7933,3},{3595,7923,3},{3595,7912,3},{3592,7902,3},{3590,7893,3},{3592,7883,3}, {3592,7875,3},{3585,7868,3},{3582,7863,3},{3577,7853,3},{3577,7843,3},{3572,7838,3}, {3570,7830,3},{3567,7827,3},{3562,7817,3},{3555,7813,3},{3557,7800,3},{3555,7797,3}, {3550,7797,3},{3548,7795,3},{3547,7792,3},{3550,7782,3},{3550,7778,3},{3547,7773,3}, {3547,7770,3},{3547,7763,3},{3548,7752,3},{3547,7742,3},{3553,7732,3},{3553,7718,3}, {3555,7712,3},{3558,7708,3},{3560,7692,3},{3565,7687,3},{3565,7678,3},{3572,7672,3}, {3575,7658,3},{3582,7657,3},{3590,7658,3},{3592,7657,3},{3587,7653,3},{3587,7645,3}, {3583,7642,3},{3583,7637,3},{3582,7633,3},{3582,7628,3},{3582,7618,3},{3583,7615,3}, {3590,7615,3},{3598,7612,3},{3600,7608,3},{3602,7597,3},{3608,7593,3},{3612,7592,3}, {3617,7600,3},{3618,7600,3},{3620,7600,3},{3623,7603,3},{3632,7598,3},{3642,7602,3}, {3645,7600,3},{3655,7593,3},{3662,7590,3},{3667,7585,3},{3673,7575,3},{3677,7567,3}, {3677,7557,3},{3677,7553,3},{3673,7553,3},{3673,7545,3},{3677,7543,3},{3685,7543,3}, {3692,7540,3},{3697,7520,3},{3700,7515,3},{3698,7497,3},{3695,7492,3},{3692,7490,3}, {3697,7488,3},{3702,7482,3},{3702,7473,3},{3707,7468,3},{3703,7457,3},{3703,7453,3}, {3708,7450,3},{3713,7440,3},{3717,7438,3},{3718,7440,3},{3718,7447,3},{3723,7452,3}, {3723,7458,3},{3725,7460,3},{3723,7465,3},{3727,7467,3},{3727,7470,3},{3730,7475,3}, {3723,7480,3},{3722,7482,3},{3723,7490,3},{3723,7493,3},{3728,7497,3},{3732,7510,3}, {3738,7512,3},{3740,7518,3},{3743,7513,3},{3752,7505,3},{3757,7495,3},{3765,7490,3}, {3770,7495,3},{3773,7495,3},{3778,7498,3},{3785,7490,3},{3788,7493,3},{3792,7490,3}, {3793,7492,3},{3802,7492,3},{3808,7482,3},{3820,7480,3},{3830,7480,3},{3838,7487,3}, {3847,7485,3},{3853,7478,3},{3853,7472,3},{3858,7465,3},{3867,7435,3},{3865,7425,3}, {3865,7420,3},{3868,7417,3},{3867,7413,3},{3862,7412,3},{3860,7407,3},{3855,7408,3}, {3853,7395,3},{3862,7382,3},{3870,7378,3},{3873,7375,3},{3880,7377,3},{3887,7370,3}, {3892,7373,3},{3893,7383,3},{3897,7385,3},{3900,7383,3},{3908,7372,3},{3915,7370,3}, {3917,7367,3},{3923,7362,3},{3935,7367,3},{3943,7365,3},{3947,7367,3},{3948,7385,3}, {3957,7390,3},{3960,7395,3},{3963,7393,3},{3972,7392,3},{3975,7385,3},{3978,7385,3}, {3983,7385,3},{3987,7390,3},{3993,7392,3},{3997,7397,3},{4005,7400,3},{4007,7403,3}, {4007,7410,3},{4012,7422,3},{4010,7430,3},{4010,7437,3},{4013,7443,3},{4027,7460,3}, {4028,7467,3},{4035,7473,3},{4033,7488,3},{4035,7488,3},{4042,7482,3},{4052,7487,3}, {4045,7507,3},{4047,7517,3},{4045,7523,3},{4048,7525,3},{4048,7528,3},{4052,7533,3}, {4063,7552,3},{4065,7558,3},{4060,7562,3},{4048,7565,3},{4045,7570,3},{4040,7567,3}, {4030,7570,3},{4032,7578,3},{4030,7593,3},{4037,7598,3},{4040,7607,3},{4038,7620,3}, {4045,7628,3},{4043,7630,3},{4037,7632,3},{4035,7635,3},{4043,7648,3},{4055,7657,3}, {4060,7663,3},{4075,7665,3},{4082,7670,3},{4085,7678,3},{4093,7678,3},{4102,7687,3}, {4105,7702,3},{4105,7708,3},{4102,7713,3},{4100,7727,3},{4103,7738,3},{4098,7750,3}, {4098,7755,3},{4100,7760,3},{4100,7768,3},{4107,7787,3},{4105,7803,3},{4103,7808,3}, {4110,7818,3},{4115,7823,3},{4123,7828,3},{4128,7837,3},{4130,7838,3},{4135,7837,3}, {4138,7838,3},{4147,7853,3},{4148,7863,3},{4153,7868,3},{4157,7882,3},{4163,7892,3}, {4165,7900,3},{4172,7913,3},{4173,7922,3},{4178,7932,3},{4178,7940,3},{4178,7945,3}, {4188,7965,3},{4188,7978,3},{4192,7982,3},{4198,7983,3},{4202,7988,3},{4203,8003,3}, {4203,8020,3},{4205,8027,3},{4210,8028,3},{4213,8025,3},{4220,8023,3},{4222,8028,3}, {4225,8030,3},{4228,8027,3},{4232,8028,3},{4237,8023,3},{4245,8022,3},{4248,8025,3}, {4257,8018,3},{4263,8015,3},{4265,8017,3},{4273,8023,3},{4278,8025,3},{4283,8027,3}, {4283,8038,3},{4288,8058,3},{4293,8057,3},{4295,8045,3},{4300,8038,3},{4303,8038,3}, {4307,8048,3},{4313,8065,3},{4310,8077,3},{4313,8080,3},{4315,8082,3},{4328,8077,3}, {4330,8068,3},{4333,8067,3},{4342,8073,3},{4348,8073,3},{4367,8062,3},{4392,8050,3}, {4398,8045,3},{4407,8042,3},{4413,8037,3},{4425,8040,3},{4445,8035,3},{4460,8040,3}, {4465,8038,3},{4468,8043,3},{4470,8052,3},{4473,8052,3},{4477,8043,3},{4477,8037,3}, {4482,8027,3},{4480,8000,3},{4487,7988,3},{4490,7987,3},{4493,7995,3},{4502,8008,3}, {4503,8012,3},{4505,8040,3},{4505,8042,3},{4510,8045,3},{4512,8047,3},{4512,8060,3}, {4515,8077,3},{4513,8087,3},{4517,8097,3},{4517,8105,3},{4523,8123,3},{4530,8155,3}, {4533,8163,3},{4535,8170,3},{4535,8175,3},{4530,8180,3},{4520,8182,3},{4518,8190,3}, {4515,8195,3},{4517,8202,3},{4522,8217,3},{4523,8230,3},{4523,8233,3},{4513,8248,3}, {4513,8257,3},{4525,8263,3},{4535,8267,3},{4543,8265,3},{4547,8257,3},{4550,8237,3}, {4553,8232,3},{4557,8232,3},{4577,8242,3},{4590,8252,3},{4617,8257,3},{4635,8272,3}, {4677,8287,3},{4697,8302,3},{4722,8303,3},{4723,8313,3},{4722,8318,3},{4718,8323,3}, {4713,8342,3},{4707,8357,3},{4702,8378,3},{4697,8392,3},{4698,8413,3},{4700,8418,3}, {4700,8430,3},{4700,8445,3},{4698,8453,3},{4700,8468,3},{4693,8478,3},{4688,8477,3}, {4683,8473,3},{4683,8477,3},{4687,8497,3},{4690,8498,3},{4693,8507,3},{4700,8518,3}, {4705,8523,3},{4707,8552,3},{4718,8558,3},{4720,8568,3},{4728,8570,3},{4732,8568,3}, {4737,8570,3},{4752,8560,3},{4762,8562,3},{4795,8553,3},{4807,8560,3},{4815,8562,3}, {4838,8577,3},{4842,8580,3},{4842,8587,3},{4843,8602,3},{4842,8623,3},{4845,8630,3}, {4850,8633,3},{4850,8647,3},{4853,8660,3},{4862,8665,3},{4863,8668,3},{4873,8678,3}, {4880,8677,3},{4885,8682,3},{4890,8675,3},{4897,8673,3},{4902,8677,3},{4907,8685,3}, {4910,8687,3},{4910,8703,3},{4913,8717,3},{4912,8722,3},{4910,8732,3},{4908,8743,3}, {4910,8750,3},{4913,8753,3},{4913,8760,3},{4917,8772,3},{4917,8783,3},{4273,9638,131}, {4287,9637,3},{4315,9598,3},{4323,9590,3},{4330,9590,3},{4340,9585,3},{4368,9567,3}, {4398,9552,3},{4402,9533,3},{4403,9532,3},{4418,9533,3},{4425,9540,3},{4427,9540,3}, {4425,9503,3},{4433,9487,3},{4433,9472,3},{4435,9467,3},{4445,9458,3},{4452,9447,3}, {4452,9437,3},{4468,9413,3},{4467,9400,3},{4468,9393,3},{4485,9375,3},{4492,9362,3}, {4493,9350,3},{4498,9337,3},{4498,9327,3},{4500,9318,3},{4502,9313,3},{4500,9290,3}, {4500,9228,3},{4505,9198,3},{4505,9177,3},{4508,9167,3},{4510,9148,3},{4520,9117,3}, {4520,9090,3},{4532,9070,3},{4548,9067,3},{4560,9067,3},{4577,9077,3},{4587,9085,3}, {4597,9098,3},{4602,9102,3},{4612,9100,3},{4630,9090,3},{4638,9090,3},{4647,9095,3}, {4650,9102,3},{4667,9105,3},{4673,9103,3},{4675,9098,3},{4675,9100,3},{4682,9092,3}, {4685,9095,3},{4688,9090,3},{4695,9090,3},{4698,9083,3},{4700,9073,3},{4707,9070,3}, {4708,9067,3},{4722,9055,3},{4727,9053,3},{4732,9050,3},{4738,9052,3},{4740,9047,3}, {4750,9045,3},{4762,9035,3},{4765,9035,3},{4768,9030,3},{4773,9012,3},{4783,9007,3}, {4787,8998,3},{4785,8995,3},{4782,8995,3},{4780,8988,3},{4782,8977,3},{4787,8973,3}, {4790,8965,3},{4797,8958,3},{4802,8960,3},{4803,8937,3},{4802,8928,3},{4798,8930,3}, {4793,8917,3},{4792,8890,3},{4807,8885,3},{4815,8875,3},{4818,8868,3},{4823,8865,3}, {4823,8860,3},{4830,8865,3},{4835,8857,3},{4838,8853,3},{4837,8845,3},{4842,8837,3}, {4845,8837,3},{4847,8833,3},{4845,8820,3},{4850,8808,3},{4850,8797,3},{4857,8798,3}, {4862,8802,3},{4865,8808,3},{4868,8808,3},{4872,8798,3},{4875,8798,3},{4875,8795,3}, {4880,8783,3},{4885,8782,3},{4887,8773,3},{4890,8770,3},{4892,8772,3},{4893,8780,3}, {4902,8787,3},{4912,8787,3},{4917,8783,3},{4918,8798,3},{4923,8805,3},{4927,8817,3}, {4930,8817,3},{4937,8813,3},{4947,8822,3},{4948,8835,3},{4948,8857,3},{4950,8865,3}, {4945,8873,3},{4943,8885,3},{4945,8890,3},{4947,8890,3},{4947,8888,3},{4953,8888,3}, {4955,8892,3},{4953,8895,3},{4947,8898,3},{4947,8902,3},{4950,8918,3},{4953,8923,3}, {4957,8923,3},{4962,8920,3},{4963,8923,3},{4963,8927,3},{4958,8938,3},{4965,8947,3}, {4968,8963,3},{4972,8973,3},{4975,8973,3},{4980,8965,3},{4982,8967,3},{4985,8963,3}, {4990,8963,3},{4992,8967,3},{4995,8978,3},{4995,8990,3},{4997,8998,3},{5000,9002,3}, {5005,9002,3},{5008,9005,3},{5012,9025,3},{5018,9035,3},{5018,9045,3},{5022,9052,3}, {5022,9065,3},{5022,9070,3},{5025,9073,3},{5030,9075,3},{5033,9087,3},{5043,9103,3}, {5043,9117,3},{5048,9130,3},{5047,9143,3},{5048,9145,3},{5053,9147,3},{5057,9160,3}, {5065,9167,3},{5070,9178,3},{5072,9192,3},{5068,9212,3},{5070,9222,3},{5075,9230,3}, {5085,9233,3},{5087,9238,3},{5087,9242,3},{5078,9247,3},{5075,9257,3},{5068,9267,3}, {5068,9270,3},{5072,9277,3},{5080,9280,3},{5078,9298,3},{5075,9300,3},{5065,9297,3}, {5063,9302,3},{5062,9302,3},{5060,9310,3},{5062,9322,3},{5060,9335,3},{5062,9343,3}, {5058,9355,3},{5057,9428,3},{5055,9430,3},{5050,9430,3},{5042,9435,3},{5030,9437,3}, {5022,9438,3},{5018,9442,3},{5017,9452,3},{5012,9453,3},{5007,9460,3},{5002,9463,3}, {5007,9483,3},{5005,9498,3},{5002,9502,3},{4995,9508,3},{4995,9542,3},{4990,9553,3}, {4993,9560,3},{4995,9575,3},{5002,9583,3},{5002,9590,3},{4995,9597,3},{5000,9607,3}, {4995,9630,3},{4990,9638,3},{4993,9650,3},{4993,9655,3},{4987,9660,3},{4987,9662,3}, {4992,9672,3},{4990,9700,3},{4982,9708,3},{4980,9715,3},{4977,9717,3},{4973,9728,3}, {4973,9733,3},{4978,9748,3},{4985,9758,3},{4988,9760,3},{4992,9758,3},{4993,9760,3}, {4997,9778,3},{4993,9787,3},{4998,9795,3},{5005,9810,3},{5030,9828,3},{5040,9828,3}, {5047,9833,3},{5052,9832,3},{5057,9827,3},{5057,9817,3},{5063,9807,3},{5078,9797,3}, {5085,9802,3},{5087,9797,3},{5090,9795,3},{5093,9788,3},{5100,9783,3},{5107,9788,3}, {5117,9792,3},{5122,9797,3},{5132,9793,3},{5145,9805,3},{5147,9812,3},{5145,9820,3}, {5145,9823,3},{5152,9827,3},{5158,9825,3},{5172,9833,3},{5178,9862,3},{5183,9870,3}, {5203,9887,3},{5212,9888,3},{5215,9893,3},{5212,9900,3},{5207,9903,3},{5200,9925,3}, {5195,9932,3},{5190,9957,3},{5188,9973,3},{5178,9988,3},{5175,9995,3},{5173,10025,3}, {5173,10055,3},{5172,10060,3},{5170,10070,3},{5157,10110,3},{5153,10115,3}, {5152,10127,3},{5145,10138,3},{5148,10158,3},{5145,10167,3},{5145,10177,3}, {5143,10182,3},{5142,10193,3},{5140,10200,3},{5138,10208,3},{5133,10222,3}, {5130,10223,3},{5125,10215,3},{5120,10218,3},{5112,10217,3},{5098,10225,3}, {5095,10223,3},{5090,10227,3},{5085,10223,3},{5083,10223,3},{5078,10227,3}, {5075,10233,3},{5072,10235,3},{5065,10230,3},{5057,10233,3},{5055,10237,3}, {5053,10248,3},{5052,10253,3},{5042,10262,3},{5038,10278,3},{5032,10292,3}, {5030,10300,3},{5032,10318,3},{5030,10325,3},{5022,10328,3},{5020,10332,3}, {5020,10347,3},{5013,10367,3},{5015,10373,3},{5020,10382,3},{5013,10407,3}, {5017,10425,3},{5020,10427,3},{5023,10430,3},{5025,10435,3},{5030,10442,3}, {5030,10463,3},{5035,10472,3},{5035,10483,3},{5037,10490,3},{5040,10502,3}, {5040,10512,3},{5042,10518,3},{5047,10528,3},{5048,10535,3},{5043,10563,3}, {5043,10580,3},{5043,10585,3},{5042,10598,3},{5038,10607,3},{5035,10607,3}, {5033,10617,3},{5030,10625,3},{5035,10655,3},{5033,10673,3},{5020,10700,3}, {5015,10703,3},{5008,10708,3},{5005,10715,3},{5003,10718,3},{5000,10727,3}, {5002,10732,3},{4998,10742,3},{4998,10775,3},{4995,10782,3},{4997,10785,3}, {4995,10790,3},{4995,10798,3},{4985,10795,3},{4975,10798,3},{4968,10795,3}, {4967,10797,3},{4967,10803,3},{4962,10803,3},{4958,10807,3},{4955,10815,3}, {4953,10827,3},{4943,10837,3},{4933,10855,3},{4935,10888,3},{4935,10895,3}, {4933,10907,3},{4937,10920,3},{4933,10935,3},{4930,10943,3},{4928,10948,3}, {4925,10950,3},{4923,10955,3},{4923,10975,3},{4918,10985,3},{4920,10990,3}, {4918,11008,3},{4917,11020,3},{4918,11030,3},{4925,11040,3},{4920,11047,3}, {4915,11070,3},{4915,11078,3},{4918,11095,3},{4930,11118,3},{4933,11130,3}, {4937,11137,3},{4935,11148,3},{4935,11153,3},{4940,11168,3},{4940,11183,3}, {4940,11197,3},{4943,11213,3},{4953,11248,3},{4953,11263,3},{4950,11270,3}, {4950,11277,3},{4953,11290,3},{4958,11298,3},{4960,11308,3},{4967,11310,3}, {4980,11320,3},{4993,11345,3},{4997,11348,3},{5002,11357,3},{5008,11378,3}, {5008,11387,3},{5017,11400,3},{5018,11407,3},{5025,11418,3},{5028,11432,3}, {5025,11445,3},{5025,11455,3},{5027,11467,3},{5025,11478,3},{5023,11485,3}, {5015,11502,3},{5000,11520,3},{4990,11540,3},{4990,11563,3},{4988,11573,3}, {4990,11580,3},{5000,11607,3},{5003,11622,3},{4997,11643,3},{4993,11662,3}, {4983,11672,3},{4980,11668,3},{4975,11665,3},{4970,11662,3},{4965,11658,3}, {4960,11657,3},{4957,11653,3},{4952,11650,3},{4947,11647,3},{4942,11643,3}, {4938,11640,3},{4933,11637,3},{4928,11633,3},{4923,11630,3},{4918,11627,3}, {4915,11625,3},{4910,11622,3},{4905,11618,3},{4900,11615,3},{4895,11612,3}, {4892,11608,3},{4887,11605,3},{4880,11612,3},{4852,11582,3},{4827,11583,3}, {4818,11548,3},{4788,11558,3},{4767,11597,3},{4778,11607,3},{4787,11625,3}, {4783,11643,3},{4788,11680,3},{4787,11692,3},{4780,11713,3},{4763,11738,3}, {4795,11768,3},{4800,11778,3},{4803,11783,3},{4802,11790,3},{4800,11797,3}, {4800,11803,3},{4803,11817,3},{4803,11822,3},{4800,11828,3},{4802,11835,3}, {4800,11843,3},{4795,11853,3},{4780,11878,3},{4770,11913,3},{4767,11912,3}, {4753,11913,3},{4748,11933,3},{4743,11932,3},{4742,11935,3},{4730,11952,3}, {4728,11957,3},{4712,11977,3},{4703,11980,3},{4698,11985,3},{4693,11985,3}, {4688,11990,3},{4677,11988,3},{4667,11990,3},{4663,11987,3},{4667,11983,3}, {4667,11973,3},{4660,11968,3},{4658,11963,3},{4662,11958,3},{4663,11945,3}, {4660,11932,3},{4667,11925,3},{4665,11908,3},{4675,11898,3},{4673,11890,3}, {4677,11888,3},{4677,11885,3},{4673,11878,3},{4670,11877,3},{4670,11870,3}, {4673,11863,3},{4672,11847,3},{4675,11833,3},{4670,11818,3},{4668,11812,3}, {4665,11805,3},{4662,11790,3},{4658,11785,3},{4653,11782,3},{4652,11768,3}, {4658,11762,3},{4660,11762,3},{4658,11742,3},{4652,11743,3},{4647,11737,3}, {4638,11735,3},{4637,11710,3},{4640,11683,3},{4635,11682,3},{4635,11678,3}, {4632,11673,3},{4628,11660,3},{4625,11658,3},{4613,11640,3},{4598,11628,3}, {4590,11623,3},{4580,11628,3},{4572,11620,3},{4568,11613,3},{4568,11605,3}, {4555,11582,3},{4545,11570,3},{4540,11538,3},{4540,11518,3},{4538,11493,3}, {4543,11477,3},{4540,11458,3},{4522,11447,3},{4508,11425,3},{4503,11417,3}, {4493,11407,3},{4493,11392,3},{4487,11385,3},{4487,11378,3},{4475,11360,3}, {4480,11348,3},{4478,11323,3},{4483,11300,3},{4485,11293,3},{4483,11283,3}, {4493,11258,3},{4498,11253,3},{4508,11243,3},{4508,11217,3},{4510,11200,3}, {4500,11178,3},{4468,11157,3},{4457,11155,3},{4443,11143,3},{4435,11142,3}, {4432,11143,3},{4430,11148,3},{4418,11155,3},{4407,11167,3},{4398,11180,3}, {4390,11190,3},{4378,11198,3},{4370,11197,3},{4367,11192,3},{4367,11178,3}, {4350,11157,3},{4350,11143,3},{4345,11133,3},{4342,11123,3},{4332,11100,3}, {4312,11077,3},{4308,11070,3},{4302,11068,3},{4290,11057,3},{4287,11050,3}, {4277,11040,3},{4267,11013,3},{4265,11013,3},{4265,10995,3},{4255,10968,3}, {4248,10957,3},{4248,10953,3},{4245,10952,3},{4245,10935,3},{4243,10932,3}, {4245,10898,3},{4240,10885,3},{4243,10858,3},{4243,10833,3},{4247,10825,3}, {4240,10790,3},{4242,10763,3},{4242,10758,3},{4245,10748,3},{4240,10730,3}, {4235,10728,3},{4228,10683,3},{4218,10643,3},{4208,10618,3},{4200,10587,3}, {4188,10558,3},{4177,10533,3},{4173,10523,3},{4173,10520,3},{4153,10493,3}, {4162,10453,3},{4185,10455,3},{4185,10448,3},{4182,10432,3},{4180,10413,3}, {4180,10382,3},{4190,10328,3},{4200,10302,3},{4210,10253,3},{4212,10237,3}, {4215,10218,3},{4220,10207,3},{4247,10183,3},{4252,10178,3},{4252,10170,3}, {4253,10163,3},{4253,10157,3},{4255,10150,3},{4257,10143,3},{4258,10135,3}, {4258,10128,3},{4260,10122,3},{4262,10115,3},{4263,10108,3},{4265,10102,3}, {4265,10095,3},{4267,10088,3},{4268,10080,3},{4268,10073,3},{4268,10065,3}, {4268,10058,3},{4268,10052,3},{4268,10045,3},{4268,10037,3},{4268,10030,3}, {4263,10025,3},{4265,10018,3},{4265,10010,3},{4265,10003,3},{4258,9992,3}, {4255,9965,3},{4255,9947,3},{4252,9933,3},{4253,9908,3},{4255,9878,3},{4260,9840,3}, {4262,9800,3},{4267,9757,3},{4262,9745,3},{4262,9730,3},{4267,9712,3},{4270,9687,3}, {4272,9638,3},{4273,9638,3},{4177,5243,131},{4190,5250,3},{4197,5247,3}, {4200,5243,3},{4205,5243,3},{4210,5240,3},{4218,5243,3},{4218,5248,3},{4233,5260,3}, {4240,5260,3},{4242,5263,3},{4253,5268,3},{4262,5265,3},{4272,5257,3},{4275,5258,3}, {4272,5258,3},{4265,5267,3},{4258,5272,3},{4265,5275,3},{4272,5273,3},{4275,5268,3}, {4275,5262,3},{4277,5263,3},{4280,5258,3},{4283,5243,3},{4282,5233,3},{4278,5228,3}, {4283,5223,3},{4287,5220,3},{4288,5217,3},{4288,5208,3},{4283,5195,3},{4283,5192,3}, {4292,5183,3},{4303,5177,3},{4308,5172,3},{4310,5167,3},{4315,5168,3},{4318,5165,3}, {4317,5153,3},{4315,5152,3},{4317,5140,3},{4315,5127,3},{4320,5127,3},{4330,5132,3}, {4345,5132,3},{4355,5127,3},{4358,5122,3},{4362,5122,3},{4362,5115,3},{4367,5112,3}, {4380,5102,3},{4392,5098,3},{4400,5092,3},{4403,5085,3},{4408,5087,3},{4420,5083,3}, {4427,5068,3},{4428,5042,3},{4433,5028,3},{4437,5023,3},{4457,5022,3},{4458,5023,3}, {4457,5027,3},{4465,5032,3},{4463,5043,3},{4463,5055,3},{4463,5058,3},{4462,5063,3}, {4462,5072,3},{4460,5075,3},{4463,5078,3},{4463,5087,3},{4457,5095,3},{4457,5100,3}, {4453,5098,3},{4452,5103,3},{4448,5112,3},{4448,5120,3},{4452,5127,3},{4455,5128,3}, {4455,5137,3},{4455,5138,3},{4453,5137,3},{4452,5138,3},{4452,5140,3},{4452,5143,3}, {4453,5145,3},{4452,5150,3},{4452,5157,3},{4453,5157,3},{4458,5147,3},{4462,5142,3}, {4460,5130,3},{4473,5122,3},{4480,5110,3},{4482,5102,3},{4487,5095,3},{4493,5100,3}, {4495,5095,3},{4498,5097,3},{4498,5107,3},{4503,5110,3},{4507,5120,3},{4502,5125,3}, {4502,5128,3},{4510,5125,3},{4517,5125,3},{4532,5138,3},{4535,5142,3},{4538,5142,3}, {4533,5147,3},{4533,5158,3},{4538,5165,3},{4540,5172,3},{4543,5173,3},{4545,5175,3}, {4543,5178,3},{4540,5178,3},{4540,5188,3},{4537,5193,3},{4538,5200,3},{4538,5215,3}, {4540,5245,3},{4540,5248,3},{4533,5283,3},{4532,5290,3},{4532,5298,3},{4530,5310,3}, {4533,5320,3},{4533,5325,3},{4537,5325,3},{4538,5315,3},{4540,5310,3},{4540,5307,3}, {4547,5292,3},{4547,5288,3},{4548,5285,3},{4552,5275,3},{4555,5273,3},{4565,5275,3}, {4565,5278,3},{4577,5287,3},{4580,5293,3},{4600,5308,3},{4605,5308,3},{4610,5312,3}, {4628,5317,3},{4637,5315,3},{4647,5303,3},{4645,5310,3},{4648,5307,3},{4652,5307,3}, {4648,5305,3},{4648,5300,3},{4657,5303,3},{4655,5303,3},{4655,5308,3},{4662,5310,3}, {4660,5312,3},{4663,5315,3},{4663,5320,3},{4668,5320,3},{4672,5320,3},{4672,5313,3}, {4675,5310,3},{4685,5308,3},{4690,5305,3},{4690,5300,3},{4697,5290,3},{4695,5283,3}, {4695,5262,3},{4695,5257,3},{4698,5253,3},{4700,5245,3},{4688,5235,3},{4687,5218,3}, {4682,5225,3},{4680,5220,3},{4682,5207,3},{4685,5207,3},{4685,5203,3},{4688,5200,3}, {4690,5200,3},{4693,5202,3},{4693,5200,3},{4687,5193,3},{4688,5187,3},{4690,5187,3}, {4693,5188,3},{4690,5177,3},{4695,5168,3},{4705,5168,3},{4705,5165,3},{4705,5163,3}, {4698,5160,3},{4705,5153,3},{4712,5120,3},{4707,5112,3},{4705,5097,3},{4702,5088,3}, {4703,5085,3},{4700,5085,3},{4690,5077,3},{4692,5073,3},{4693,5073,3},{4697,5075,3}, {4693,5068,3},{4693,5062,3},{4685,5060,3},{4682,5055,3},{4688,5058,3},{4687,5050,3}, {4690,5043,3},{4680,5037,3},{4685,5037,3},{4680,5033,3},{4680,5030,3},{4672,5023,3}, {4672,5022,3},{4677,5023,3},{4675,5020,3},{4668,5007,3},{4663,5003,3},{4663,4997,3}, {4658,4988,3},{4657,4983,3},{4655,4982,3},{4653,4980,3},{4657,4977,3},{4653,4975,3}, {4655,4970,3},{4652,4970,3},{4655,4968,3},{4658,4962,3},{4652,4963,3},{4652,4960,3}, {4650,4958,3},{4653,4957,3},{4657,4947,3},{4658,4947,3},{4650,4950,3},{4650,4947,3}, {4653,4947,3},{4655,4943,3},{4653,4942,3},{4658,4930,3},{4648,4940,3},{4648,4932,3}, {4652,4930,3},{4652,4928,3},{4650,4930,3},{4648,4928,3},{4643,4935,3},{4640,4937,3}, {4638,4937,3},{4640,4933,3},{4643,4928,3},{4647,4927,3},{4647,4922,3},{4645,4925,3}, {4642,4925,3},{4640,4928,3},{4638,4925,3},{4642,4917,3},{4637,4917,3},{4638,4910,3}, {4640,4903,3},{4643,4897,3},{4645,4890,3},{4648,4882,3},{4650,4880,3},{4655,4875,3}, {4657,4867,3},{4660,4863,3},{4660,4857,3},{4663,4855,3},{4665,4848,3},{4668,4848,3}, {4673,4852,3},{4677,4858,3},{4677,4865,3},{4673,4870,3},{4668,4875,3},{4668,4883,3}, {4670,4892,3},{4673,4897,3},{4678,4900,3},{4683,4897,3},{4690,4890,3},{4697,4883,3}, {4703,4877,3},{4708,4873,3},{4717,4868,3},{4725,4865,3},{4732,4863,3},{4737,4862,3}, {4742,4858,3},{4742,4853,3},{4742,4843,3},{4747,4837,3},{4750,4832,3},{4758,4827,3}, {4763,4822,3},{4770,4817,3},{4775,4808,3},{4777,4800,3},{4775,4792,3},{4775,4778,3}, {4775,4767,3},{4777,4758,3},{4778,4750,3},{4780,4740,3},{4778,4742,3},{4773,4740,3}, {4768,4737,3},{4768,4735,3},{4772,4727,3},{4777,4717,3},{4782,4712,3},{4785,4715,3}, {4790,4712,3},{4795,4707,3},{4800,4702,3},{4803,4713,3},{4808,4718,3},{4810,4710,3}, {4817,4712,3},{4822,4710,3},{4822,4707,3},{4827,4700,3},{4833,4692,3},{4833,4688,3}, {4837,4675,3},{4838,4668,3},{4842,4658,3},{4845,4650,3},{4850,4652,3},{4855,4655,3}, {4862,4658,3},{4868,4663,3},{4875,4667,3},{4880,4670,3},{4885,4672,3},{4893,4678,3}, {4897,4685,3},{4900,4693,3},{4907,4700,3},{4913,4705,3},{4922,4702,3},{4925,4697,3}, {4930,4687,3},{4933,4678,3},{4938,4678,3},{4945,4680,3},{4952,4682,3},{4957,4683,3}, {4963,4687,3},{4968,4687,3},{4975,4687,3},{4980,4688,3},{4987,4692,3},{4988,4700,3}, {4993,4717,3},{5000,4727,3},{5005,4730,3},{5013,4733,3},{5020,4727,3},{5027,4730,3}, {5033,4732,3},{5033,4740,3},{5037,4740,3},{5042,4745,3},{5045,4752,3},{5045,4758,3}, {5040,4767,3},{5037,4773,3},{5033,4780,3},{5028,4785,3},{5023,4792,3},{5018,4797,3}, {5013,4802,3},{5010,4808,3},{5005,4812,3},{5000,4813,3},{4993,4818,3},{4987,4822,3}, {4987,4825,3},{4987,4828,3},{4987,4830,3},{4983,4835,3},{4983,4838,3},{4982,4843,3}, {4983,4843,3},{4988,4857,3},{4990,4865,3},{4993,4873,3},{4997,4880,3},{5002,4888,3}, {5008,4885,3},{5010,4877,3},{5013,4877,3},{5020,4877,3},{5025,4872,3},{5033,4868,3}, {5042,4867,3},{5047,4867,3},{5058,4863,3},{5062,4857,3},{5065,4855,3},{5067,4860,3}, {5067,4863,3},{5062,4872,3},{5060,4882,3},{5063,4887,3},{5067,4895,3},{5072,4902,3}, {5077,4907,3},{5080,4915,3},{5083,4925,3},{5083,4933,3},{5088,4942,3},{5093,4940,3}, {5100,4932,3},{5103,4935,3},{5110,4937,3},{5113,4942,3},{5112,4947,3},{5112,4955,3}, {5112,4963,3},{5112,4973,3},{5115,4980,3},{5120,4987,3},{5125,5000,3},{5128,5012,3}, {5130,5022,3},{5132,5030,3},{5138,5033,3},{5143,5037,3},{5145,5047,3},{5147,5047,3}, {5148,5052,3},{5155,5050,3},{5160,5052,3},{5160,5055,3},{5165,5060,3},{5165,5062,3}, {5163,5072,3},{5157,5067,3},{5157,5068,3},{5160,5078,3},{5167,5080,3},{5170,5073,3}, {5177,5075,3},{5177,5077,3},{5173,5087,3},{5168,5088,3},{5168,5097,3},{5167,5107,3}, {5168,5118,3},{5168,5128,3},{5167,5130,3},{5165,5137,3},{5157,5135,3},{5155,5125,3}, {5150,5128,3},{5148,5132,3},{5148,5143,3},{5152,5152,3},{5157,5155,3},{5155,5157,3}, {5153,5158,3},{5153,5163,3},{5147,5163,3},{5148,5172,3},{5153,5180,3},{5158,5175,3}, {5163,5180,3},{5168,5185,3},{5167,5197,3},{5167,5205,3},{5167,5213,3},{5172,5218,3}, {5172,5228,3},{5177,5233,3},{5177,5235,3},{5175,5237,3},{5165,5238,3},{5162,5245,3}, {5155,5250,3},{5150,5252,3},{5147,5257,3},{5147,5260,3},{5145,5263,3},{5148,5267,3}, {5147,5270,3},{5148,5268,3},{5150,5275,3},{5153,5278,3},{5150,5280,3},{5150,5288,3}, {5148,5288,3},{5148,5292,3},{5150,5293,3},{5148,5295,3},{5147,5297,3},{5148,5297,3}, {5148,5305,3},{5148,5310,3},{5148,5312,3},{5150,5317,3},{5153,5315,3},{5153,5320,3}, {5152,5318,3},{5150,5322,3},{5150,5330,3},{5152,5338,3},{5148,5345,3},{5143,5350,3}, {5142,5358,3},{5137,5363,3},{5132,5362,3},{5127,5365,3},{5123,5368,3},{5120,5375,3}, {5120,5378,3},{5120,5387,3},{5118,5395,3},{5117,5403,3},{5113,5407,3},{5112,5413,3}, {5105,5415,3},{5103,5420,3},{5102,5417,3},{5098,5420,3},{5093,5425,3},{5088,5432,3}, {5087,5445,3},{5083,5452,3},{5078,5447,3},{5073,5445,3},{5068,5445,3},{5063,5442,3}, {5058,5447,3},{5053,5450,3},{5053,5453,3},{5055,5463,3},{5058,5465,3},{5063,5473,3}, {5068,5472,3},{5075,5467,3},{5082,5467,3},{5088,5472,3},{5088,5473,3},{5088,5483,3}, {5085,5485,3},{5085,5490,3},{5087,5492,3},{5088,5500,3},{5092,5502,3},{5093,5505,3}, {5090,5510,3},{5087,5510,3},{5082,5507,3},{5078,5515,3},{5075,5522,3},{5070,5530,3}, {5065,5538,3},{5067,5540,3},{5067,5548,3},{5063,5553,3},{5060,5562,3},{5057,5570,3}, {5058,5572,3},{5062,5577,3},{5065,5587,3},{5068,5595,3},{5072,5603,3},{5075,5612,3}, {5080,5613,3},{5085,5615,3},{5092,5617,3},{5093,5622,3},{5092,5630,3},{5092,5638,3}, {5097,5640,3},{5098,5647,3},{5098,5648,3},{5105,5647,3},{5108,5650,3},{5108,5652,3}, {5107,5653,3},{5103,5658,3},{5098,5665,3},{5097,5673,3},{5102,5673,3},{5108,5673,3}, {5108,5682,3},{5105,5690,3},{5107,5698,3},{5105,5700,3},{5107,5708,3},{5110,5718,3}, {5107,5720,3},{5102,5727,3},{5098,5732,3},{5093,5735,3},{5088,5743,3},{5088,5753,3}, {5092,5753,3},{5093,5757,3},{5095,5765,3},{5092,5768,3},{5092,5772,3},{5093,5773,3}, {5100,5775,3},{5108,5775,3},{5113,5778,3},{5113,5780,3},{5113,5783,3},{5112,5785,3}, {5110,5793,3},{5110,5802,3},{5113,5808,3},{5112,5810,3},{5110,5810,3},{5108,5810,3}, {5107,5818,3},{5110,5822,3},{5113,5822,3},{5117,5830,3},{5115,5833,3},{5108,5837,3}, {5108,5840,3},{5108,5848,3},{5107,5857,3},{5100,5860,3},{5093,5857,3},{5088,5857,3}, {5082,5862,3},{5083,5870,3},{5083,5878,3},{5078,5878,3},{5075,5885,3},{5072,5887,3}, {5070,5895,3},{5070,5903,3},{5068,5918,3},{5065,5928,3},{5067,5930,3},{5065,5938,3}, {5065,5948,3},{5058,5952,3},{5052,5953,3},{5053,5962,3},{5057,5972,3},{5060,5983,3}, {5065,5990,3},{5070,5993,3},{5077,5997,3},{5082,6000,3},{5083,6000,3},{5087,6008,3}, {5083,6018,3},{5080,6018,3},{5075,6023,3},{5070,6032,3},{5068,6038,3},{5067,6048,3}, {5067,6058,3},{5067,6068,3},{5067,6083,3},{5068,6093,3},{5070,6103,3},{5073,6118,3}, {5075,6125,3},{5078,6138,3},{5083,6147,3},{5090,6148,3},{5098,6150,3},{5103,6152,3}, {5113,6155,3},{5118,6157,3},{5125,6158,3},{5127,6168,3},{5130,6163,3},{5133,6155,3}, {5140,6152,3},{5143,6145,3},{5140,6138,3},{5142,6128,3},{5145,6118,3},{5145,6113,3}, {5145,6112,3},{5147,6103,3},{5150,6097,3},{5155,6093,3},{5162,6090,3},{5162,6078,3}, {5162,6070,3},{5162,6060,3},{5165,6048,3},{5170,6040,3},{5173,6045,3},{5180,6052,3}, {5182,6040,3},{5185,6033,3},{5188,6025,3},{5190,6017,3},{5188,6018,3},{5187,6018,3}, {5188,6010,3},{5193,6005,3},{5198,6007,3},{5200,6015,3},{5200,6023,3},{5203,6033,3}, {5210,6040,3},{5213,6047,3},{5217,6055,3},{5217,6067,3},{5218,6075,3},{5223,6080,3}, {5223,6085,3},{5227,6093,3},{5230,6100,3},{5237,6105,3},{5243,6100,3},{5250,6097,3}, {5250,6093,3},{5252,6085,3},{5258,6085,3},{5263,6083,3},{5265,6075,3},{5270,6072,3}, {5275,6073,3},{5277,6083,3},{5280,6088,3},{5283,6095,3},{5288,6102,3},{5293,6107,3}, {5298,6103,3},{5297,6112,3},{5300,6115,3},{5303,6123,3},{5300,6132,3},{5300,6140,3}, {5303,6147,3},{5303,6150,3},{5300,6158,3},{5297,6165,3},{5300,6172,3},{5300,6180,3}, {5302,6190,3},{5295,6198,3},{5297,6207,3},{5300,6213,3},{5307,6213,3},{5312,6212,3}, {5312,6208,3},{5313,6198,3},{5313,6190,3},{5317,6180,3},{5322,6173,3},{5325,6167,3}, {5322,6162,3},{5322,6152,3},{5325,6143,3},{5327,6133,3},{5327,6125,3},{5332,6117,3}, {5340,6117,3},{5343,6123,3},{5350,6127,3},{5350,6130,3},{5348,6138,3},{5347,6142,3}, {5347,6152,3},{5350,6158,3},{5353,6158,3},{5358,6152,3},{5360,6143,3},{5357,6135,3}, {5357,6127,3},{5357,6117,3},{5360,6110,3},{5362,6102,3},{5362,6092,3},{5367,6093,3}, {5365,6105,3},{5370,6105,3},{5372,6112,3},{5377,6118,3},{5382,6122,3},{5385,6118,3}, {5388,6112,3},{5388,6107,3},{5390,6098,3},{5395,6103,3},{5395,6107,3},{5395,6117,3}, {5392,6120,3},{5392,6125,3},{5393,6125,3},{5398,6128,3},{5403,6125,3},{5408,6133,3}, {5408,6137,3},{5408,6147,3},{5403,6150,3},{5400,6157,3},{5395,6162,3},{5397,6163,3}, {5400,6163,3},{5403,6173,3},{5398,6180,3},{5403,6185,3},{5402,6190,3},{5397,6187,3}, {5395,6195,3},{5397,6205,3},{5398,6203,3},{5403,6202,3},{5405,6210,3},{5403,6213,3}, {5403,6225,3},{5403,6233,3},{5405,6242,3},{5402,6248,3},{5398,6242,3},{5393,6245,3}, {5390,6253,3},{5392,6257,3},{5397,6258,3},{5400,6263,3},{5403,6270,3},{5407,6277,3}, {5412,6283,3},{5412,6288,3},{5410,6298,3},{5410,6308,3},{5413,6317,3},{5418,6317,3}, {5420,6325,3},{5420,6333,3},{5420,6345,3},{5422,6355,3},{5423,6363,3},{5425,6372,3}, {5427,6380,3},{5428,6388,3},{5428,6398,3},{5432,6400,3},{5430,6402,3},{5428,6402,3}, {5432,6408,3},{5432,6417,3},{5432,6427,3},{5433,6435,3},{5433,6445,3},{5437,6448,3}, {5437,6457,3},{5440,6465,3},{5440,6475,3},{5435,6475,3},{5438,6485,3},{5442,6495,3}, {5440,6503,3},{5433,6512,3},{5433,6522,3},{5440,6523,3},{5445,6518,3},{5453,6522,3}, {5457,6528,3},{5458,6538,3},{5457,6548,3},{5458,6548,3},{5465,6547,3},{5465,6550,3}, {5463,6558,3},{5463,6567,3},{5460,6577,3},{5465,6582,3},{5470,6587,3},{5470,6597,3}, {5462,6597,3},{5463,6605,3},{5465,6618,3},{5468,6630,3},{5470,6640,3},{5472,6652,3}, {5472,6660,3},{5473,6673,3},{5475,6675,3},{5477,6685,3},{5478,6695,3},{5478,6707,3}, {5480,6717,3},{5482,6727,3},{5487,6732,3},{5487,6735,3},{5485,6743,3},{5483,6755,3}, {5485,6763,3},{5487,6772,3},{5492,6778,3},{5497,6785,3},{5497,6793,3},{5495,6802,3}, {5495,6810,3},{5497,6822,3},{5502,6822,3},{5508,6827,3},{5513,6820,3},{5518,6818,3}, {5518,6822,3},{5518,6825,3},{5518,6835,3},{5520,6840,3},{5520,6852,3},{5518,6862,3}, {5523,6863,3},{5528,6870,3},{5533,6872,3},{5535,6882,3},{5532,6890,3},{5528,6900,3}, {5533,6900,3},{5537,6892,3},{5543,6895,3},{5542,6905,3},{5538,6913,3},{5533,6920,3}, {5535,6927,3},{5537,6940,3},{5533,6948,3},{5535,6960,3},{5533,6968,3},{5532,6980,3}, {5528,6988,3},{5522,6992,3},{5520,7000,3},{5518,7005,3},{5513,7013,3},{5513,7023,3}, {5518,7032,3},{5522,7042,3},{5527,7045,3},{5528,7048,3},{5527,7053,3},{5527,7065,3}, {5530,7073,3},{5528,7083,3},{5523,7085,3},{5517,7093,3},{5512,7098,3},{5505,7102,3}, {5498,7102,3},{5490,7100,3},{5485,7103,3},{5478,7105,3},{5473,7110,3},{5470,7120,3}, {5467,7130,3},{5462,7130,3},{5458,7120,3},{5450,7120,3},{5445,7120,3},{5438,7123,3}, {5432,7118,3},{5432,7115,3},{5435,7102,3},{5430,7102,3},{5427,7110,3},{5422,7107,3}, {5418,7113,3},{5412,7117,3},{5412,7122,3},{5418,7132,3},{5418,7140,3},{5417,7148,3}, {5412,7152,3},{5412,7158,3},{5412,7168,3},{5415,7175,3},{5420,7173,3},{5425,7177,3}, {5423,7190,3},{5420,7207,3},{5415,7210,3},{5413,7217,3},{5418,7220,3},{5420,7217,3}, {5425,7208,3},{5428,7213,3},{5433,7207,3},{5437,7207,3},{5437,7218,3},{5432,7227,3}, {5425,7228,3},{5423,7232,3},{5418,7230,3},{5415,7240,3},{5413,7250,3},{5412,7248,3}, {5412,7245,3},{5410,7237,3},{5408,7237,3},{5403,7242,3},{5395,7238,3},{5393,7240,3}, {5392,7250,3},{5398,7255,3},{5395,7272,3},{5398,7272,3},{5400,7272,3},{5405,7265,3}, {5405,7262,3},{5405,7252,3},{5408,7253,3},{5413,7260,3},{5413,7275,3},{5410,7283,3}, {5410,7298,3},{5405,7298,3},{5405,7305,3},{5398,7308,3},{5397,7322,3},{5395,7332,3}, {5397,7342,3},{5398,7342,3},{5398,7345,3},{5395,7353,3},{5400,7352,3},{5403,7360,3}, {5407,7363,3},{5405,7375,3},{5400,7373,3},{5392,7372,3},{5387,7368,3},{5387,7358,3}, {5388,7345,3},{5385,7343,3},{5382,7345,3},{5380,7335,3},{5375,7335,3},{5368,7332,3}, {5368,7327,3},{5365,7328,3},{5357,7325,3},{5355,7333,3},{5353,7340,3},{5348,7338,3}, {5345,7345,3},{5350,7355,3},{5357,7360,3},{5357,7365,3},{5362,7367,3},{5362,7375,3}, {5360,7385,3},{5365,7390,3},{5365,7395,3},{5363,7407,3},{5355,7407,3},{5355,7415,3}, {5360,7418,3},{5360,7425,3},{5355,7427,3},{5348,7428,3},{5347,7440,3},{5347,7442,3}, {5358,7448,3},{5360,7443,3},{5368,7447,3},{5368,7455,3},{5367,7465,3},{5370,7467,3}, {5375,7468,3},{5377,7478,3},{5382,7482,3},{5382,7485,3},{5382,7493,3},{5378,7503,3}, {5380,7507,3},{5385,7517,3},{5388,7523,3},{5392,7532,3},{5395,7538,3},{5398,7547,3}, {5403,7545,3},{5408,7542,3},{5412,7553,3},{5410,7562,3},{5413,7570,3},{5415,7580,3}, {5418,7588,3},{5420,7597,3},{5423,7607,3},{5425,7615,3},{5430,7620,3},{5435,7625,3}, {5433,7630,3},{5433,7640,3},{5433,7650,3},{5435,7658,3},{5437,7668,3},{5442,7675,3}, {5442,7678,3},{5445,7693,3},{5443,7693,3},{5442,7688,3},{5438,7678,3},{5435,7687,3}, {5430,7687,3},{5423,7685,3},{5420,7677,3},{5415,7672,3},{5413,7663,3},{5417,7662,3}, {5417,7652,3},{5417,7643,3},{5415,7642,3},{5413,7643,3},{5408,7650,3},{5402,7653,3}, {5397,7658,3},{5392,7667,3},{5387,7677,3},{5383,7683,3},{5380,7690,3},{5375,7700,3}, {5372,7707,3},{5367,7718,3},{5363,7725,3},{5360,7733,3},{5357,7740,3},{5352,7752,3}, {5345,7762,3},{5342,7770,3},{5337,7777,3},{5332,7787,3},{5327,7793,3},{5322,7798,3}, {5317,7802,3},{5312,7807,3},{5307,7812,3},{5300,7820,3},{5295,7825,3},{5292,7828,3}, {5285,7835,3},{5275,7845,3},{5270,7848,3},{5263,7853,3},{5260,7858,3},{5255,7862,3}, {5248,7868,3},{5243,7873,3},{5237,7880,3},{5232,7885,3},{5223,7890,3},{5217,7895,3}, {5213,7900,3},{5207,7905,3},{5200,7912,3},{5193,7917,3},{5187,7922,3},{5182,7927,3}, {5175,7932,3},{5170,7937,3},{5163,7940,3},{5158,7945,3},{5152,7950,3},{5147,7953,3}, {5142,7957,3},{5137,7962,3},{5130,7967,3},{5125,7970,3},{5115,7978,3},{5108,7982,3}, {5100,7990,3},{5093,7993,3},{5088,7998,3},{5082,8003,3},{5077,8008,3},{5078,8007,3}, {5085,8007,3},{5083,8010,3},{5083,8020,3},{5090,8020,3},{5093,8027,3},{5093,8038,3}, {5097,8043,3},{5097,8047,3},{5102,8047,3},{5108,8048,3},{5113,8043,3},{5122,8045,3}, {5122,8048,3},{5120,8062,3},{5122,8063,3},{5125,8063,3},{5130,8065,3},{5130,8075,3}, {5127,8085,3},{5125,8093,3},{5122,8093,3},{5117,8107,3},{5120,8113,3},{5115,8115,3}, {5105,8110,3},{5100,8108,3},{5095,8107,3},{5095,8112,3},{5095,8122,3},{5097,8130,3}, {5098,8140,3},{5093,8143,3},{5087,8143,3},{5087,8147,3},{5082,8147,3},{5077,8145,3}, {5075,8148,3},{5075,8160,3},{5077,8168,3},{5077,8177,3},{5082,8180,3},{5080,8183,3}, {5080,8195,3},{5080,8203,3},{5075,8212,3},{5075,8222,3},{5078,8228,3},{5078,8238,3}, {5077,8248,3},{5077,8257,3},{5082,8270,3},{5087,8272,3},{5093,8273,3},{5093,8282,3}, {5090,8293,3},{5092,8302,3},{5095,8308,3},{5102,8312,3},{5100,8320,3},{5102,8325,3}, {5100,8335,3},{5102,8343,3},{5098,8342,3},{5095,8348,3},{5095,8358,3},{5092,8365,3}, {5090,8372,3},{5087,8383,3},{5082,8392,3},{5075,8397,3},{5070,8400,3},{5067,8405,3}, {5060,8412,3},{5055,8420,3},{5050,8423,3},{5043,8422,3},{5035,8425,3},{5030,8423,3}, {5027,8427,3},{5022,8433,3},{5022,8437,3},{5025,8447,3},{5025,8450,3},{5022,8452,3}, {5018,8462,3},{5017,8470,3},{5013,8480,3},{5010,8485,3},{5008,8493,3},{5005,8502,3}, {5000,8502,3},{5000,8498,3},{4993,8498,3},{4990,8502,3},{4988,8510,3},{4983,8512,3}, {4975,8518,3},{4970,8520,3},{4963,8522,3},{4958,8528,3},{4960,8533,3},{4957,8537,3}, {4957,8543,3},{4958,8545,3},{4960,8555,3},{4958,8562,3},{4955,8570,3},{4957,8577,3}, {4955,8585,3},{4955,8593,3},{4950,8595,3},{4948,8598,3},{4952,8603,3},{4952,8612,3}, {4947,8617,3},{4952,8620,3},{4953,8623,3},{4958,8625,3},{4960,8630,3},{4962,8638,3}, {4968,8647,3},{4972,8653,3},{4975,8660,3},{4980,8662,3},{4980,8665,3},{4980,8672,3}, {4980,8680,3},{4972,8678,3},{4970,8675,3},{4967,8665,3},{4962,8662,3},{4957,8667,3}, {4957,8672,3},{4953,8678,3},{4950,8682,3},{4945,8682,3},{4940,8692,3},{4935,8690,3}, {4930,8697,3},{4930,8700,3},{4925,8705,3},{4925,8710,3},{4925,8718,3},{4922,8727,3}, {4917,8730,3},{4910,8732,3},{4912,8722,3},{4913,8717,3},{4910,8703,3},{4910,8687,3}, {4907,8685,3},{4902,8677,3},{4897,8673,3},{4890,8675,3},{4885,8682,3},{4880,8677,3}, {4873,8678,3},{4863,8668,3},{4862,8665,3},{4853,8660,3},{4850,8647,3},{4850,8633,3}, {4845,8630,3},{4842,8623,3},{4843,8602,3},{4842,8587,3},{4842,8580,3},{4838,8577,3}, {4815,8562,3},{4807,8560,3},{4795,8553,3},{4762,8562,3},{4752,8560,3},{4737,8570,3}, {4732,8568,3},{4728,8570,3},{4720,8568,3},{4718,8558,3},{4707,8552,3},{4705,8523,3}, {4700,8518,3},{4693,8507,3},{4690,8498,3},{4687,8497,3},{4683,8477,3},{4683,8473,3}, {4688,8477,3},{4693,8478,3},{4700,8468,3},{4698,8453,3},{4700,8445,3},{4700,8430,3}, {4700,8418,3},{4698,8413,3},{4697,8392,3},{4702,8378,3},{4707,8357,3},{4713,8342,3}, {4718,8323,3},{4722,8318,3},{4723,8313,3},{4722,8303,3},{4697,8302,3},{4677,8287,3}, {4635,8272,3},{4617,8257,3},{4590,8252,3},{4577,8242,3},{4557,8232,3},{4553,8232,3}, {4550,8237,3},{4547,8257,3},{4543,8265,3},{4535,8267,3},{4525,8263,3},{4513,8257,3}, {4513,8248,3},{4523,8233,3},{4523,8230,3},{4522,8217,3},{4517,8202,3},{4515,8195,3}, {4518,8190,3},{4520,8182,3},{4530,8180,3},{4535,8175,3},{4535,8170,3},{4533,8163,3}, {4530,8155,3},{4523,8123,3},{4517,8105,3},{4517,8097,3},{4513,8087,3},{4515,8077,3}, {4512,8060,3},{4512,8047,3},{4510,8045,3},{4505,8042,3},{4505,8040,3},{4503,8012,3}, {4502,8008,3},{4493,7995,3},{4490,7987,3},{4487,7988,3},{4480,8000,3},{4482,8027,3}, {4477,8037,3},{4477,8043,3},{4473,8052,3},{4470,8052,3},{4468,8043,3},{4465,8038,3}, {4460,8040,3},{4445,8035,3},{4425,8040,3},{4413,8037,3},{4407,8042,3},{4398,8045,3}, {4392,8050,3},{4367,8062,3},{4348,8073,3},{4342,8073,3},{4333,8067,3},{4330,8068,3}, {4328,8077,3},{4315,8082,3},{4313,8080,3},{4310,8077,3},{4313,8065,3},{4307,8048,3}, {4303,8038,3},{4300,8038,3},{4295,8045,3},{4293,8057,3},{4288,8058,3},{4283,8038,3}, {4283,8027,3},{4278,8025,3},{4273,8023,3},{4265,8017,3},{4263,8015,3},{4257,8018,3}, {4248,8025,3},{4245,8022,3},{4237,8023,3},{4232,8028,3},{4228,8027,3},{4225,8030,3}, {4222,8028,3},{4223,8022,3},{4223,8020,3},{4220,8012,3},{4222,8012,3},{4230,8010,3}, {4233,8007,3},{4235,8002,3},{4240,7997,3},{4243,7993,3},{4243,7985,3},{4245,7985,3}, {4245,7980,3},{4247,7973,3},{4248,7965,3},{4245,7962,3},{4245,7957,3},{4247,7950,3}, {4250,7947,3},{4253,7940,3},{4258,7935,3},{4262,7928,3},{4265,7922,3},{4270,7918,3}, {4278,7918,3},{4278,7915,3},{4273,7907,3},{4278,7902,3},{4278,7895,3},{4278,7888,3}, {4280,7882,3},{4282,7875,3},{4283,7867,3},{4285,7865,3},{4287,7858,3},{4290,7852,3}, {4288,7845,3},{4288,7838,3},{4285,7832,3},{4287,7825,3},{4288,7817,3},{4285,7815,3}, {4287,7808,3},{4283,7807,3},{4287,7803,3},{4285,7797,3},{4287,7793,3},{4288,7785,3}, {4292,7778,3},{4290,7775,3},{4292,7768,3},{4292,7758,3},{4293,7752,3},{4293,7742,3}, {4292,7735,3},{4292,7722,3},{4297,7718,3},{4297,7708,3},{4297,7700,3},{4298,7693,3}, {4298,7685,3},{4295,7678,3},{4290,7673,3},{4290,7665,3},{4292,7658,3},{4292,7652,3}, {4288,7648,3},{4288,7645,3},{4287,7638,3},{4288,7632,3},{4292,7627,3},{4292,7618,3}, {4292,7612,3},{4292,7603,3},{4293,7600,3},{4295,7593,3},{4295,7585,3},{4290,7578,3}, {4283,7577,3},{4280,7572,3},{4282,7563,3},{4282,7562,3},{4282,7558,3},{4283,7548,3}, {4282,7542,3},{4285,7532,3},{4283,7523,3},{4285,7515,3},{4288,7510,3},{4292,7503,3}, {4295,7497,3},{4298,7492,3},{4300,7485,3},{4298,7478,3},{4302,7472,3},{4307,7468,3}, {4310,7462,3},{4313,7458,3},{4317,7450,3},{4318,7448,3},{4320,7442,3},{4320,7435,3}, {4323,7428,3},{4323,7415,3},{4322,7417,3},{4318,7417,3},{4317,7410,3},{4317,7402,3}, {4320,7395,3},{4315,7392,3},{4310,7390,3},{4310,7387,3},{4312,7378,3},{4308,7370,3}, {4305,7363,3},{4302,7355,3},{4297,7353,3},{4290,7350,3},{4283,7350,3},{4275,7348,3}, {4270,7345,3},{4263,7342,3},{4257,7342,3},{4250,7345,3},{4247,7350,3},{4242,7350,3}, {4240,7348,3},{4242,7345,3},{4243,7338,3},{4245,7330,3},{4250,7330,3},{4252,7318,3}, {4253,7308,3},{4253,7300,3},{4253,7292,3},{4255,7283,3},{4260,7278,3},{4263,7275,3}, {4265,7267,3},{4268,7258,3},{4268,7250,3},{4272,7240,3},{4275,7233,3},{4277,7227,3}, {4275,7218,3},{4273,7212,3},{4277,7205,3},{4278,7198,3},{4282,7190,3},{4283,7183,3}, {4280,7177,3},{4280,7170,3},{4277,7162,3},{4277,7157,3},{4282,7152,3},{4280,7143,3}, {4278,7137,3},{4277,7127,3},{4275,7127,3},{4270,7123,3},{4267,7117,3},{4260,7115,3}, {4260,7113,3},{4260,7105,3},{4255,7102,3},{4253,7103,3},{4250,7110,3},{4247,7107,3}, {4250,7100,3},{4248,7098,3},{4243,7095,3},{4237,7092,3},{4232,7087,3},{4225,7088,3}, {4227,7093,3},{4225,7093,3},{4220,7087,3},{4220,7078,3},{4215,7073,3},{4212,7068,3}, {4207,7065,3},{4200,7063,3},{4200,7060,3},{4202,7058,3},{4207,7055,3},{4210,7048,3}, {4213,7042,3},{4212,7040,3},{4207,7037,3},{4203,7032,3},{4198,7033,3},{4197,7032,3}, {4193,7023,3},{4190,7018,3},{4183,7015,3},{4182,7007,3},{4177,7003,3},{4177,7002,3}, {4178,6998,3},{4172,6995,3},{4170,6990,3},{4172,6983,3},{4170,6975,3},{4167,6968,3}, {4165,6962,3},{4162,6957,3},{4157,6952,3},{4155,6945,3},{4150,6940,3},{4145,6942,3}, {4145,6935,3},{4147,6928,3},{4145,6922,3},{4142,6917,3},{4138,6912,3},{4133,6907,3}, {4135,6903,3},{4130,6898,3},{4125,6898,3},{4120,6895,3},{4120,6892,3},{4115,6887,3}, {4108,6880,3},{4102,6875,3},{4097,6872,3},{4093,6865,3},{4095,6863,3},{4097,6863,3}, {4098,6867,3},{4100,6865,3},{4100,6862,3},{4103,6860,3},{4100,6855,3},{4102,6852,3}, {4108,6850,3},{4108,6847,3},{4112,6843,3},{4112,6835,3},{4113,6827,3},{4115,6818,3}, {4117,6807,3},{4118,6805,3},{4120,6798,3},{4118,6790,3},{4117,6785,3},{4120,6778,3}, {4120,6775,3},{4120,6767,3},{4120,6760,3},{4120,6752,3},{4122,6740,3},{4120,6733,3}, {4122,6725,3},{4122,6712,3},{4123,6700,3},{4123,6693,3},{4123,6682,3},{4125,6673,3}, {4125,6660,3},{4128,6660,3},{4135,6660,3},{4142,6658,3},{4152,6658,3},{4158,6657,3}, {4168,6655,3},{4177,6655,3},{4183,6653,3},{4190,6653,3},{4190,6642,3},{4192,6630,3}, {4192,6622,3},{4193,6610,3},{4195,6602,3},{4200,6602,3},{4205,6602,3},{4212,6602,3}, {4217,6602,3},{4222,6602,3},{4227,6602,3},{4232,6602,3},{4238,6602,3},{4235,6610,3}, {4237,6610,3},{4247,6610,3},{4255,6610,3},{4262,6610,3},{4268,6610,3},{4278,6610,3}, {4288,6610,3},{4297,6610,3},{4293,6600,3},{4290,6592,3},{4287,6583,3},{4290,6582,3}, {4295,6580,3},{4302,6577,3},{4307,6573,3},{4315,6572,3},{4320,6568,3},{4330,6565,3}, {4337,6557,3},{4342,6548,3},{4345,6542,3},{4352,6533,3},{4357,6528,3},{4362,6525,3}, {4372,6518,3},{4377,6515,3},{4378,6508,3},{4377,6500,3},{4373,6492,3},{4372,6485,3}, {4368,6477,3},{4363,6462,3},{4360,6453,3},{4360,6447,3},{4360,6432,3},{4362,6422,3}, {4362,6415,3},{4362,6400,3},{4363,6392,3},{4363,6380,3},{4365,6367,3},{4365,6358,3}, {4367,6345,3},{4367,6338,3},{4367,6330,3},{4365,6320,3},{4363,6308,3},{4362,6298,3}, {4362,6290,3},{4358,6273,3},{4357,6258,3},{4355,6248,3},{4355,6242,3},{4353,6232,3}, {4352,6222,3},{4350,6213,3},{4350,6200,3},{4352,6198,3},{4358,6190,3},{4363,6183,3}, {4372,6175,3},{4378,6168,3},{4387,6158,3},{4392,6153,3},{4397,6147,3},{4402,6142,3}, {4405,6137,3},{4410,6132,3},{4413,6128,3},{4422,6118,3},{4428,6112,3},{4433,6113,3}, {4433,6117,3},{4428,6118,3},{4433,6118,3},{4435,6117,3},{4440,6118,3},{4440,6122,3}, {4438,6123,3},{4445,6123,3},{4440,6115,3},{4443,6112,3},{4445,6113,3},{4448,6117,3}, {4450,6113,3},{4453,6112,3},{4453,6107,3},{4457,6108,3},{4458,6112,3},{4460,6112,3}, {4457,6117,3},{4460,6117,3},{4462,6122,3},{4463,6120,3},{4463,6113,3},{4465,6112,3}, {4467,6117,3},{4465,6118,3},{4468,6123,3},{4463,6127,3},{4463,6128,3},{4465,6128,3}, {4467,6130,3},{4468,6142,3},{4473,6145,3},{4477,6148,3},{4473,6150,3},{4483,6157,3}, {4483,6160,3},{4480,6160,3},{4480,6163,3},{4488,6167,3},{4485,6170,3},{4488,6173,3}, {4487,6177,3},{4490,6175,3},{4495,6182,3},{4495,6187,3},{4497,6185,3},{4498,6185,3}, {4498,6192,3},{4497,6192,3},{4497,6195,3},{4502,6193,3},{4502,6197,3},{4505,6197,3}, {4502,6183,3},{4505,6182,3},{4512,6183,3},{4503,6175,3},{4498,6173,3},{4500,6173,3}, {4503,6175,3},{4505,6172,3},{4510,6172,3},{4510,6175,3},{4515,6175,3},{4517,6178,3}, {4513,6182,3},{4515,6185,3},{4518,6177,3},{4515,6173,3},{4522,6172,3},{4518,6168,3}, {4517,6170,3},{4513,6165,3},{4518,6162,3},{4517,6155,3},{4515,6153,3},{4518,6150,3}, {4523,6152,3},{4530,6152,3},{4533,6148,3},{4538,6137,3},{4545,6135,3},{4548,6130,3}, {4548,6125,3},{4552,6125,3},{4555,6123,3},{4557,6130,3},{4560,6128,3},{4562,6130,3}, {4565,6127,3},{4567,6127,3},{4570,6117,3},{4573,6117,3},{4577,6115,3},{4573,6115,3}, {4572,6113,3},{4570,6103,3},{4562,6097,3},{4563,6093,3},{4568,6092,3},{4572,6092,3}, {4573,6093,3},{4573,6098,3},{4580,6105,3},{4587,6100,3},{4585,6103,3},{4587,6110,3}, {4590,6113,3},{4590,6103,3},{4593,6108,3},{4597,6103,3},{4602,6107,3},{4602,6102,3}, {4607,6098,3},{4608,6092,3},{4610,6090,3},{4613,6103,3},{4610,6115,3},{4615,6120,3}, {4615,6123,3},{4620,6127,3},{4622,6123,3},{4623,6125,3},{4625,6127,3},{4625,6130,3}, {4627,6130,3},{4628,6127,3},{4633,6132,3},{4630,6133,3},{4632,6137,3},{4648,6140,3}, {4648,6142,3},{4645,6145,3},{4648,6152,3},{4670,6165,3},{4672,6173,3},{4675,6170,3}, {4678,6165,3},{4678,6155,3},{4682,6158,3},{4687,6157,3},{4685,6150,3},{4680,6150,3}, {4677,6133,3},{4675,6130,3},{4670,6132,3},{4667,6130,3},{4667,6115,3},{4663,6115,3}, {4665,6120,3},{4663,6122,3},{4658,6118,3},{4652,6120,3},{4648,6112,3},{4648,6090,3}, {4652,6087,3},{4655,6085,3},{4658,6082,3},{4667,6085,3},{4670,6092,3},{4675,6090,3}, {4678,6082,3},{4677,6068,3},{4680,6058,3},{4680,6055,3},{4677,6052,3},{4680,6050,3}, {4680,6048,3},{4675,6045,3},{4673,6045,3},{4675,6050,3},{4673,6053,3},{4673,6058,3}, {4665,6072,3},{4658,6063,3},{4658,6057,3},{4665,6050,3},{4660,6043,3},{4663,6042,3}, {4665,6043,3},{4667,6040,3},{4672,6040,3},{4670,6037,3},{4667,6038,3},{4670,6033,3}, {4673,6032,3},{4672,6023,3},{4663,6010,3},{4662,6003,3},{4660,6000,3},{4658,5992,3}, {4653,5990,3},{4657,5987,3},{4653,5983,3},{4653,5980,3},{4652,5980,3},{4652,5983,3}, {4652,5992,3},{4648,5993,3},{4647,5987,3},{4643,5988,3},{4638,5995,3},{4638,6002,3}, {4635,6003,3},{4632,6008,3},{4628,6008,3},{4627,6012,3},{4623,6012,3},{4620,5998,3}, {4613,5995,3},{4608,5987,3},{4610,5985,3},{4617,5987,3},{4620,5982,3},{4628,5982,3}, {4633,5973,3},{4635,5965,3},{4633,5962,3},{4637,5955,3},{4633,5948,3},{4632,5947,3}, {4632,5943,3},{4628,5947,3},{4627,5952,3},{4623,5953,3},{4613,5957,3},{4612,5957,3}, {4613,5953,3},{4603,5948,3},{4602,5950,3},{4603,5952,3},{4603,5953,3},{4592,5953,3}, {4587,5948,3},{4582,5950,3},{4582,5948,3},{4582,5935,3},{4577,5930,3},{4582,5927,3}, {4590,5933,3},{4595,5938,3},{4595,5943,3},{4602,5945,3},{4603,5938,3},{4602,5925,3}, {4597,5917,3},{4597,5908,3},{4598,5908,3},{4600,5912,3},{4602,5910,3},{4600,5898,3}, {4595,5890,3},{4593,5880,3},{4590,5872,3},{4578,5865,3},{4560,5860,3},{4558,5852,3}, {4557,5843,3},{4553,5832,3},{4550,5820,3},{4548,5813,3},{4545,5798,3},{4542,5785,3}, {4540,5775,3},{4538,5767,3},{4537,5758,3},{4533,5750,3},{4532,5735,3},{4530,5728,3}, {4528,5720,3},{4525,5708,3},{4523,5700,3},{4522,5692,3},{4518,5677,3},{4517,5668,3}, {4513,5658,3},{4512,5647,3},{4508,5637,3},{4507,5630,3},{4503,5615,3},{4502,5608,3}, {4500,5600,3},{4497,5600,3},{4492,5600,3},{4487,5600,3},{4480,5600,3},{4475,5600,3}, {4470,5600,3},{4463,5600,3},{4458,5600,3},{4453,5600,3},{4447,5600,3},{4442,5600,3}, {4437,5600,3},{4430,5600,3},{4425,5600,3},{4420,5600,3},{4413,5600,3},{4408,5600,3}, {4403,5600,3},{4397,5600,3},{4392,5600,3},{4387,5600,3},{4382,5600,3},{4375,5600,3}, {4370,5600,3},{4365,5600,3},{4358,5600,3},{4353,5600,3},{4348,5600,3},{4342,5600,3}, {4337,5600,3},{4332,5600,3},{4325,5600,3},{4320,5600,3},{4315,5600,3},{4308,5600,3}, {4303,5600,3},{4298,5600,3},{4292,5600,3},{4287,5600,3},{4282,5600,3},{4275,5600,3}, {4270,5600,3},{4265,5600,3},{4258,5600,3},{4253,5600,3},{4248,5600,3},{4242,5600,3}, {4237,5600,3},{4232,5600,3},{4227,5600,3},{4220,5600,3},{4215,5600,3},{4210,5600,3}, {4203,5600,3},{4198,5600,3},{4193,5600,3},{4187,5600,3},{4182,5600,3},{4177,5600,3}, {4170,5600,3},{4165,5600,3},{4160,5600,3},{4153,5600,3},{4148,5600,3},{4143,5600,3}, {4137,5600,3},{4132,5600,3},{4132,5593,3},{4132,5585,3},{4128,5580,3},{4128,5573,3}, {4128,5565,3},{4125,5560,3},{4128,5555,3},{4125,5553,3},{4128,5547,3},{4133,5540,3}, {4138,5533,3},{4143,5527,3},{4150,5522,3},{4155,5517,3},{4160,5513,3},{4167,5510,3}, {4173,5505,3},{4178,5500,3},{4182,5495,3},{4188,5495,3},{4193,5493,3},{4198,5488,3}, {4202,5483,3},{4207,5477,3},{4210,5470,3},{4215,5458,3},{4222,5448,3},{4225,5442,3}, {4227,5435,3},{4230,5428,3},{4233,5418,3},{4233,5410,3},{4233,5403,3},{4233,5395,3}, {4233,5387,3},{4232,5378,3},{4230,5370,3},{4230,5363,3},{4228,5357,3},{4227,5342,3}, {4222,5332,3},{4220,5323,3},{4217,5313,3},{4213,5303,3},{4210,5297,3},{4205,5288,3}, {4200,5282,3},{4197,5275,3},{4193,5270,3},{4188,5263,3},{4185,5257,3},{4182,5252,3}, {4177,5243,3},{1038,10445,131},{1042,10450,3},{1053,10458,3},{1053,10467,3}, {1053,10487,3},{1063,10497,3},{1072,10510,3},{1075,10510,3},{1077,10507,3}, {1088,10503,3},{1093,10507,3},{1095,10510,3},{1095,10512,3},{1092,10512,3}, {1088,10527,3},{1085,10535,3},{1090,10537,3},{1097,10543,3},{1095,10547,3}, {1095,10555,3},{1102,10578,3},{1092,10587,3},{1085,10587,3},{1083,10593,3}, {1090,10595,3},{1085,10602,3},{1080,10608,3},{1078,10618,3},{1077,10620,3}, {1087,10618,3},{1092,10615,3},{1093,10615,3},{1097,10615,3},{1098,10622,3}, {1105,10618,3},{1110,10615,3},{1108,10613,3},{1107,10612,3},{1108,10610,3}, {1115,10603,3},{1118,10602,3},{1120,10595,3},{1123,10592,3},{1127,10592,3}, {1130,10587,3},{1138,10588,3},{1143,10590,3},{1147,10588,3},{1155,10588,3}, {1157,10583,3},{1162,10582,3},{1162,10583,3},{1167,10585,3},{1167,10588,3}, {1165,10597,3},{1172,10602,3},{1177,10602,3},{1178,10605,3},{1175,10613,3}, {1175,10618,3},{1173,10627,3},{1168,10630,3},{1170,10638,3},{1167,10647,3}, {1168,10647,3},{1177,10642,3},{1182,10645,3},{1185,10645,3},{1187,10647,3}, {1197,10642,3},{1198,10647,3},{1195,10650,3},{1198,10652,3},{1198,10662,3}, {1197,10663,3},{1197,10667,3},{1198,10667,3},{1197,10672,3},{1207,10678,3}, {1207,10692,3},{1208,10698,3},{1213,10703,3},{1213,10705,3},{1228,10717,3}, {1233,10732,3},{1233,10735,3},{1225,10742,3},{1225,10743,3},{1230,10747,3}, {1233,10752,3},{1235,10755,3},{1242,10755,3},{1248,10758,3},{1252,10757,3}, {1255,10760,3},{1260,10760,3},{1265,10758,3},{1268,10758,3},{1272,10757,3}, {1280,10757,3},{1288,10752,3},{1295,10750,3},{1300,10750,3},{1302,10748,3}, {1338,10763,3},{1355,10763,3},{1360,10758,3},{1372,10753,3},{1380,10747,3}, {1385,10748,3},{1388,10747,3},{1392,10748,3},{1395,10745,3},{1398,10745,3}, {1400,10745,3},{1400,10738,3},{1403,10737,3},{1408,10737,3},{1412,10733,3}, {1425,10738,3},{1435,10738,3},{1443,10742,3},{1443,10743,3},{1442,10747,3}, {1445,10748,3},{1453,10752,3},{1455,10753,3},{1460,10753,3},{1465,10755,3}, {1470,10755,3},{1472,10755,3},{1475,10752,3},{1477,10753,3},{1480,10752,3}, {1488,10758,3},{1497,10748,3},{1502,10747,3},{1505,10753,3},{1505,10758,3}, {1507,10762,3},{1510,10760,3},{1513,10765,3},{1522,10765,3},{1520,10768,3}, {1527,10770,3},{1535,10762,3},{1538,10760,3},{1542,10760,3},{1542,10755,3}, {1543,10752,3},{1550,10752,3},{1548,10748,3},{1552,10747,3},{1550,10745,3}, {1552,10743,3},{1550,10740,3},{1560,10735,3},{1562,10730,3},{1565,10727,3}, {1573,10725,3},{1577,10718,3},{1578,10718,3},{1587,10720,3},{1587,10723,3}, {1585,10727,3},{1592,10733,3},{1592,10740,3},{1602,10748,3},{1605,10745,3}, {1608,10747,3},{1608,10742,3},{1607,10740,3},{1607,10733,3},{1615,10725,3}, {1615,10720,3},{1618,10717,3},{1627,10715,3},{1630,10710,3},{1630,10702,3}, {1630,10698,3},{1635,10698,3},{1640,10690,3},{1642,10692,3},{1642,10688,3}, {1647,10690,3},{1652,10690,3},{1653,10687,3},{1653,10683,3},{1648,10682,3}, {1647,10678,3},{1643,10678,3},{1642,10675,3},{1643,10675,3},{1643,10672,3}, {1645,10668,3},{1653,10667,3},{1658,10667,3},{1660,10667,3},{1658,10663,3}, {1662,10663,3},{1662,10660,3},{1668,10657,3},{1700,10657,3},{1697,10652,3}, {1698,10645,3},{1703,10642,3},{1707,10642,3},{1712,10638,3},{1720,10633,3}, {1723,10633,3},{1725,10632,3},{1728,10632,3},{1728,10628,3},{1727,10627,3}, {1725,10625,3},{1727,10622,3},{1740,10603,3},{1762,10587,3},{1767,10575,3}, {1775,10572,3},{1778,10568,3},{1782,10568,3},{1787,10562,3},{1798,10563,3}, {1800,10562,3},{1802,10558,3},{1805,10558,3},{1808,10553,3},{1812,10553,3}, {1813,10550,3},{1817,10550,3},{1820,10548,3},{1820,10543,3},{1820,10542,3}, {1815,10540,3},{1820,10532,3},{1827,10532,3},{1825,10527,3},{1828,10523,3}, {1832,10518,3},{1838,10518,3},{1840,10515,3},{1845,10510,3},{1860,10515,3}, {1860,10518,3},{1862,10520,3},{1865,10520,3},{1867,10515,3},{1870,10513,3}, {1870,10510,3},{1872,10503,3},{1873,10502,3},{1873,10495,3},{1878,10492,3}, {1878,10485,3},{1880,10473,3},{1883,10470,3},{1883,10467,3},{1888,10462,3}, {1890,10457,3},{1898,10452,3},{1898,10445,3},{1907,10438,3},{1908,10432,3}, {1912,10428,3},{1912,10422,3},{1915,10422,3},{1917,10420,3},{1920,10417,3}, {1920,10412,3},{1923,10408,3},{1923,10405,3},{1923,10400,3},{1927,10393,3}, {1930,10392,3},{1930,10390,3},{1930,10388,3},{1932,10388,3},{1935,10393,3}, {1938,10397,3},{1942,10402,3},{1942,10405,3},{1942,10407,3},{1945,10407,3}, {1948,10408,3},{1950,10412,3},{1952,10410,3},{1957,10410,3},{1957,10407,3}, {1962,10403,3},{1963,10403,3},{1967,10402,3},{1970,10403,3},{1967,10410,3}, {1967,10413,3},{1968,10415,3},{1970,10425,3},{1968,10432,3},{1967,10432,3}, {1968,10437,3},{1970,10442,3},{1965,10445,3},{1963,10448,3},{1962,10452,3}, {1960,10457,3},{1962,10460,3},{1962,10463,3},{1968,10467,3},{1975,10472,3}, {1975,10477,3},{1978,10478,3},{1978,10483,3},{1985,10485,3},{1987,10483,3}, {1987,10478,3},{1988,10478,3},{1993,10485,3},{1997,10490,3},{1998,10490,3}, {1998,10495,3},{2000,10498,3},{2007,10497,3},{2010,10500,3},{2010,10497,3}, {2013,10493,3},{2018,10495,3},{2022,10487,3},{2023,10480,3},{2020,10473,3}, {2022,10468,3},{2028,10468,3},{2028,10472,3},{2033,10472,3},{2037,10465,3}, {2042,10462,3},{2040,10452,3},{2042,10442,3},{2045,10438,3},{2047,10438,3}, {2052,10447,3},{2053,10447,3},{2052,10452,3},{2052,10455,3},{2055,10458,3}, {2058,10458,3},{2063,10463,3},{2067,10465,3},{2072,10450,3},{2077,10448,3}, {2078,10442,3},{2082,10438,3},{2083,10435,3},{2087,10433,3},{2090,10430,3}, {2090,10427,3},{2090,10425,3},{2093,10423,3},{2095,10418,3},{2095,10413,3}, {2098,10410,3},{2095,10407,3},{2090,10403,3},{2090,10398,3},{2088,10393,3}, {2088,10390,3},{2085,10387,3},{2085,10380,3},{2080,10378,3},{2075,10378,3}, {2073,10373,3},{2067,10373,3},{2065,10368,3},{2073,10362,3},{2075,10352,3}, {2083,10345,3},{2082,10345,3},{2080,10343,3},{2078,10338,3},{2082,10330,3}, {2083,10328,3},{2082,10325,3},{2085,10317,3},{2093,10308,3},{2097,10308,3}, {2105,10303,3},{2108,10297,3},{2115,10295,3},{2117,10292,3},{2123,10292,3}, {2125,10288,3},{2125,10282,3},{2130,10287,3},{2130,10290,3},{2138,10290,3}, {2145,10295,3},{2147,10293,3},{2143,10288,3},{2147,10290,3},{2158,10300,3}, {2173,10298,3},{2175,10297,3},{2173,10295,3},{2172,10287,3},{2182,10287,3}, {2185,10285,3},{2185,10282,3},{2182,10280,3},{2173,10282,3},{2167,10275,3}, {2165,10268,3},{2173,10265,3},{2178,10267,3},{2185,10265,3},{2187,10263,3}, {2193,10260,3},{2197,10250,3},{2200,10250,3},{2203,10252,3},{2205,10245,3}, {2212,10242,3},{2220,10232,3},{2222,10227,3},{2223,10223,3},{2228,10222,3}, {2230,10218,3},{2233,10218,3},{2240,10213,3},{2243,10218,3},{2242,10225,3}, {2248,10227,3},{2263,10242,3},{2265,10238,3},{2268,10238,3},{2268,10243,3}, {2275,10245,3},{2277,10248,3},{2275,10255,3},{2270,10257,3},{2270,10258,3}, {2272,10260,3},{2270,10263,3},{2268,10268,3},{2262,10278,3},{2260,10287,3}, {2248,10293,3},{2247,10298,3},{2243,10303,3},{2245,10307,3},{2250,10307,3}, {2255,10317,3},{2258,10315,3},{2263,10318,3},{2267,10328,3},{2273,10330,3}, {2280,10333,3},{2278,10337,3},{2275,10343,3},{2270,10343,3},{2265,10345,3}, {2258,10353,3},{2265,10358,3},{2270,10357,3},{2273,10360,3},{2278,10362,3}, {2278,10365,3},{2260,10383,3},{2250,10397,3},{2253,10402,3},{2268,10403,3}, {2280,10412,3},{2283,10425,3},{2283,10427,3},{2280,10425,3},{2273,10427,3}, {2268,10437,3},{2275,10448,3},{2285,10458,3},{2282,10460,3},{2283,10463,3}, {2282,10467,3},{2282,10473,3},{2290,10478,3},{2293,10487,3},{2310,10482,3}, {2312,10488,3},{2318,10490,3},{2317,10495,3},{2318,10497,3},{2325,10508,3}, {2325,10513,3},{2327,10518,3},{2325,10522,3},{2327,10523,3},{2333,10527,3}, {2338,10533,3},{2337,10535,3},{2332,10535,3},{2328,10540,3},{2328,10545,3}, {2320,10550,3},{2318,10552,3},{2315,10555,3},{2307,10557,3},{2305,10572,3}, {2303,10573,3},{2302,10578,3},{2292,10587,3},{2293,10592,3},{2293,10598,3}, {2298,10602,3},{2298,10608,3},{2297,10620,3},{2292,10625,3},{2287,10625,3}, {2285,10628,3},{2287,10642,3},{2290,10650,3},{2293,10652,3},{2292,10655,3}, {2292,10660,3},{2287,10662,3},{2285,10665,3},{2288,10668,3},{2287,10670,3}, {2285,10672,3},{2282,10677,3},{2280,10677,3},{2280,10682,3},{2278,10682,3}, {2275,10677,3},{2270,10677,3},{2265,10673,3},{2258,10672,3},{2257,10668,3}, {2258,10665,3},{2262,10663,3},{2260,10660,3},{2248,10658,3},{2245,10655,3}, {2235,10657,3},{2233,10665,3},{2222,10670,3},{2220,10667,3},{2208,10670,3}, {2203,10670,3},{2200,10667,3},{2197,10668,3},{2198,10673,3},{2202,10675,3}, {2197,10682,3},{2197,10690,3},{2193,10693,3},{2193,10703,3},{2190,10705,3}, {2185,10702,3},{2182,10702,3},{2180,10710,3},{2170,10722,3},{2173,10730,3}, {2168,10735,3},{2162,10735,3},{2160,10738,3},{2165,10742,3},{2165,10745,3}, {2163,10748,3},{2160,10748,3},{2158,10753,3},{2162,10757,3},{2162,10767,3}, {2167,10778,3},{2165,10787,3},{2160,10790,3},{2158,10793,3},{2153,10795,3}, {2153,10807,3},{2155,10798,3},{2152,10803,3},{2152,10802,3},{2148,10802,3}, {2150,10805,3},{2148,10808,3},{2147,10800,3},{2143,10797,3},{2148,10798,3}, {2147,10795,3},{2145,10795,3},{2145,10792,3},{2147,10792,3},{2148,10793,3}, {2152,10792,3},{2153,10788,3},{2152,10787,3},{2152,10785,3},{2148,10783,3}, {2152,10783,3},{2152,10782,3},{2148,10782,3},{2152,10778,3},{2150,10775,3}, {2150,10778,3},{2148,10780,3},{2148,10778,3},{2145,10778,3},{2145,10777,3}, {2142,10775,3},{2142,10772,3},{2138,10770,3},{2140,10767,3},{2138,10767,3}, {2138,10763,3},{2135,10763,3},{2133,10762,3},{2130,10760,3},{2128,10757,3}, {2133,10753,3},{2135,10753,3},{2133,10752,3},{2130,10753,3},{2130,10748,3}, {2128,10748,3},{2132,10747,3},{2133,10742,3},{2130,10742,3},{2128,10745,3}, {2127,10737,3},{2123,10737,3},{2118,10735,3},{2118,10738,3},{2113,10738,3}, {2110,10737,3},{2108,10737,3},{2107,10735,3},{2102,10737,3},{2100,10733,3}, {2100,10722,3},{2098,10723,3},{2097,10720,3},{2093,10720,3},{2093,10715,3}, {2095,10707,3},{2100,10710,3},{2103,10715,3},{2103,10713,3},{2100,10708,3}, {2103,10708,3},{2100,10707,3},{2103,10705,3},{2100,10705,3},{2103,10703,3}, {2100,10703,3},{2102,10700,3},{2098,10702,3},{2095,10697,3},{2097,10688,3}, {2100,10687,3},{2098,10687,3},{2098,10685,3},{2097,10687,3},{2093,10692,3}, {2090,10695,3},{2090,10690,3},{2093,10688,3},{2090,10688,3},{2087,10687,3}, {2093,10683,3},{2093,10677,3},{2097,10678,3},{2097,10680,3},{2097,10683,3}, {2100,10680,3},{2102,10682,3},{2103,10678,3},{2102,10678,3},{2102,10675,3}, {2103,10673,3},{2100,10672,3},{2102,10665,3},{2100,10668,3},{2100,10665,3}, {2095,10668,3},{2093,10677,3},{2088,10673,3},{2090,10672,3},{2088,10670,3}, {2083,10675,3},{2080,10675,3},{2080,10672,3},{2075,10675,3},{2073,10678,3}, {2068,10680,3},{2070,10677,3},{2070,10673,3},{2070,10667,3},{2067,10670,3}, {2063,10665,3},{2063,10662,3},{2067,10658,3},{2063,10660,3},{2062,10663,3}, {2058,10662,3},{2055,10655,3},{2053,10652,3},{2053,10655,3},{2055,10658,3}, {2052,10657,3},{2048,10658,3},{2043,10652,3},{2045,10657,3},{2043,10660,3}, {2038,10658,3},{2037,10657,3},{2033,10658,3},{2030,10657,3},{2028,10657,3}, {2032,10652,3},{2030,10650,3},{2030,10653,3},{2027,10655,3},{2022,10648,3}, {2020,10638,3},{2018,10635,3},{2013,10632,3},{2003,10623,3},{2000,10620,3}, {2003,10620,3},{2000,10618,3},{1997,10610,3},{2003,10612,3},{2000,10610,3}, {1997,10608,3},{2000,10603,3},{1992,10595,3},{1988,10595,3},{1985,10593,3}, {1980,10593,3},{1980,10592,3},{1977,10587,3},{1977,10593,3},{1972,10590,3}, {1972,10588,3},{1970,10587,3},{1965,10583,3},{1960,10582,3},{1958,10582,3}, {1962,10582,3},{1960,10578,3},{1958,10578,3},{1960,10582,3},{1957,10582,3}, {1942,10582,3},{1940,10577,3},{1932,10582,3},{1932,10580,3},{1930,10582,3}, {1923,10577,3},{1923,10573,3},{1922,10575,3},{1910,10573,3},{1908,10570,3}, {1908,10567,3},{1908,10565,3},{1900,10560,3},{1890,10563,3},{1885,10572,3}, {1885,10567,3},{1882,10570,3},{1882,10572,3},{1877,10575,3},{1873,10573,3}, {1870,10575,3},{1867,10575,3},{1868,10577,3},{1875,10575,3},{1875,10578,3}, {1867,10580,3},{1857,10583,3},{1847,10592,3},{1847,10595,3},{1840,10597,3}, {1833,10603,3},{1828,10612,3},{1825,10610,3},{1827,10617,3},{1822,10625,3}, {1812,10635,3},{1810,10632,3},{1810,10633,3},{1807,10635,3},{1810,10637,3}, {1810,10640,3},{1812,10642,3},{1812,10643,3},{1808,10642,3},{1803,10645,3}, {1795,10653,3},{1792,10648,3},{1788,10645,3},{1787,10643,3},{1787,10645,3}, {1778,10645,3},{1772,10650,3},{1770,10650,3},{1770,10647,3},{1773,10642,3}, {1777,10635,3},{1777,10628,3},{1775,10630,3},{1773,10643,3},{1772,10638,3}, {1770,10637,3},{1768,10638,3},{1768,10640,3},{1770,10640,3},{1772,10642,3}, {1768,10650,3},{1757,10658,3},{1747,10663,3},{1733,10675,3},{1708,10712,3}, {1702,10712,3},{1702,10713,3},{1692,10720,3},{1687,10715,3},{1687,10718,3}, {1690,10720,3},{1690,10722,3},{1668,10747,3},{1658,10763,3},{1657,10762,3}, {1663,10750,3},{1665,10745,3},{1663,10745,3},{1658,10757,3},{1658,10760,3}, {1655,10763,3},{1655,10760,3},{1655,10767,3},{1652,10765,3},{1652,10767,3}, {1650,10767,3},{1652,10770,3},{1637,10783,3},{1638,10778,3},{1630,10782,3}, {1628,10790,3},{1630,10793,3},{1633,10793,3},{1635,10795,3},{1632,10800,3}, {1635,10803,3},{1623,10810,3},{1627,10805,3},{1625,10805,3},{1623,10807,3}, {1622,10820,3},{1615,10815,3},{1612,10813,3},{1608,10818,3},{1607,10820,3}, {1608,10823,3},{1603,10823,3},{1600,10820,3},{1602,10825,3},{1602,10827,3}, {1608,10823,3},{1612,10825,3},{1613,10822,3},{1615,10823,3},{1615,10827,3}, {1613,10832,3},{1615,10833,3},{1612,10835,3},{1610,10832,3},{1610,10827,3}, {1607,10827,3},{1598,10828,3},{1593,10832,3},{1588,10838,3},{1587,10837,3}, {1588,10840,3},{1580,10842,3},{1568,10848,3},{1555,10860,3},{1552,10863,3}, {1550,10867,3},{1552,10868,3},{1548,10867,3},{1548,10863,3},{1545,10863,3}, {1543,10867,3},{1548,10870,3},{1543,10872,3},{1538,10877,3},{1532,10877,3}, {1533,10878,3},{1535,10882,3},{1535,10878,3},{1538,10878,3},{1540,10882,3}, {1542,10880,3},{1542,10883,3},{1537,10883,3},{1535,10888,3},{1528,10888,3}, {1525,10895,3},{1522,10893,3},{1522,10890,3},{1520,10892,3},{1520,10890,3}, {1515,10890,3},{1515,10887,3},{1513,10888,3},{1512,10890,3},{1513,10890,3}, {1500,10893,3},{1483,10900,3},{1483,10898,3},{1482,10902,3},{1472,10908,3}, {1468,10908,3},{1467,10908,3},{1468,10907,3},{1458,10908,3},{1457,10907,3}, {1455,10907,3},{1457,10908,3},{1450,10910,3},{1447,10913,3},{1437,10913,3}, {1428,10918,3},{1423,10920,3},{1420,10920,3},{1413,10923,3},{1413,10922,3}, {1417,10920,3},{1417,10918,3},{1417,10917,3},{1413,10918,3},{1412,10922,3}, {1402,10927,3},{1392,10927,3},{1388,10928,3},{1388,10932,3},{1382,10930,3}, {1377,10930,3},{1375,10927,3},{1387,10927,3},{1390,10925,3},{1385,10923,3}, {1382,10922,3},{1380,10923,3},{1378,10923,3},{1377,10925,3},{1373,10922,3}, {1368,10925,3},{1363,10923,3},{1358,10928,3},{1357,10930,3},{1355,10928,3}, {1353,10928,3},{1355,10928,3},{1362,10923,3},{1365,10922,3},{1362,10922,3}, {1355,10927,3},{1352,10927,3},{1352,10932,3},{1350,10930,3},{1347,10932,3}, {1347,10933,3},{1345,10933,3},{1342,10933,3},{1342,10928,3},{1343,10927,3}, {1345,10930,3},{1348,10928,3},{1348,10925,3},{1348,10923,3},{1338,10923,3}, {1338,10925,3},{1335,10927,3},{1335,10930,3},{1333,10930,3},{1333,10928,3}, {1330,10930,3},{1332,10927,3},{1328,10925,3},{1325,10927,3},{1323,10930,3}, {1327,10928,3},{1330,10930,3},{1327,10932,3},{1313,10930,3},{1310,10933,3}, {1308,10932,3},{1307,10935,3},{1290,10947,3},{1285,10947,3},{1285,10943,3}, {1287,10945,3},{1287,10943,3},{1282,10937,3},{1275,10938,3},{1268,10943,3}, {1265,10947,3},{1263,10943,3},{1257,10945,3},{1257,10943,3},{1260,10942,3}, {1262,10940,3},{1263,10942,3},{1265,10942,3},{1268,10940,3},{1267,10938,3}, {1265,10938,3},{1263,10937,3},{1265,10935,3},{1270,10938,3},{1277,10937,3}, {1280,10937,3},{1280,10935,3},{1277,10933,3},{1268,10923,3},{1263,10920,3}, {1262,10922,3},{1258,10920,3},{1253,10922,3},{1257,10922,3},{1258,10923,3}, {1258,10925,3},{1255,10923,3},{1253,10923,3},{1247,10930,3},{1243,10930,3}, {1240,10935,3},{1238,10933,3},{1237,10933,3},{1238,10932,3},{1235,10930,3}, {1235,10927,3},{1243,10922,3},{1247,10917,3},{1245,10915,3},{1243,10917,3}, {1243,10915,3},{1240,10917,3},{1238,10920,3},{1233,10922,3},{1230,10925,3}, {1228,10922,3},{1227,10922,3},{1227,10917,3},{1225,10920,3},{1222,10920,3}, {1220,10922,3},{1220,10918,3},{1218,10922,3},{1215,10920,3},{1213,10923,3}, {1210,10920,3},{1208,10920,3},{1198,10925,3},{1197,10928,3},{1193,10928,3}, {1192,10927,3},{1187,10928,3},{1187,10925,3},{1188,10922,3},{1198,10923,3}, {1205,10920,3},{1212,10918,3},{1210,10917,3},{1198,10922,3},{1193,10918,3}, {1190,10913,3},{1185,10912,3},{1182,10913,3},{1182,10915,3},{1187,10920,3}, {1183,10918,3},{1182,10920,3},{1180,10920,3},{1172,10925,3},{1172,10920,3}, {1168,10920,3},{1167,10918,3},{1163,10918,3},{1157,10913,3},{1158,10910,3}, {1158,10907,3},{1162,10905,3},{1163,10903,3},{1163,10902,3},{1158,10905,3}, {1157,10903,3},{1153,10903,3},{1153,10902,3},{1153,10903,3},{1135,10902,3}, {1132,10897,3},{1130,10893,3},{1133,10887,3},{1132,10880,3},{1128,10877,3}, {1118,10873,3},{1117,10872,3},{1118,10867,3},{1118,10858,3},{1115,10855,3}, {1110,10850,3},{1105,10848,3},{1103,10838,3},{1095,10835,3},{1095,10832,3}, {1092,10830,3},{1093,10828,3},{1095,10823,3},{1092,10810,3},{1085,10807,3}, {1070,10800,3},{1072,10790,3},{1070,10783,3},{1063,10777,3},{1057,10758,3}, {1050,10752,3},{1047,10745,3},{1047,10738,3},{1045,10733,3},{1038,10725,3}, {1040,10723,3},{1040,10718,3},{1042,10722,3},{1048,10717,3},{1047,10715,3}, {1047,10713,3},{1048,10712,3},{1048,10707,3},{1050,10707,3},{1048,10705,3}, {1047,10703,3},{1050,10702,3},{1048,10700,3},{1050,10700,3},{1050,10702,3}, {1053,10703,3},{1055,10703,3},{1058,10703,3},{1063,10700,3},{1063,10703,3}, {1067,10702,3},{1070,10698,3},{1067,10698,3},{1065,10702,3},{1063,10700,3}, {1058,10702,3},{1057,10702,3},{1053,10702,3},{1055,10700,3},{1062,10698,3}, {1055,10698,3},{1052,10702,3},{1050,10698,3},{1047,10697,3},{1050,10697,3}, {1053,10693,3},{1057,10693,3},{1060,10693,3},{1065,10688,3},{1063,10683,3}, {1067,10680,3},{1068,10677,3},{1067,10673,3},{1058,10677,3},{1057,10673,3}, {1052,10673,3},{1050,10668,3},{1052,10665,3},{1048,10667,3},{1045,10663,3}, {1043,10658,3},{1047,10658,3},{1048,10658,3},{1043,10658,3},{1045,10663,3}, {1047,10665,3},{1043,10667,3},{1047,10673,3},{1038,10680,3},{1030,10680,3}, {1028,10678,3},{1028,10668,3},{1028,10665,3},{1032,10642,3},{1027,10648,3}, {1020,10670,3},{1015,10680,3},{1012,10680,3},{1008,10678,3},{1003,10672,3}, {1008,10670,3},{1003,10667,3},{1000,10668,3},{1000,10665,3},{997,10665,3}, {998,10660,3},{1003,10648,3},{1022,10637,3},{1025,10632,3},{1025,10628,3}, {1022,10635,3},{1013,10638,3},{1000,10648,3},{997,10657,3},{990,10668,3}, {987,10670,3},{985,10668,3},{983,10667,3},{987,10668,3},{988,10667,3},{983,10665,3}, {982,10660,3},{992,10650,3},{998,10638,3},{1015,10622,3},{1023,10612,3}, {1018,10617,3},{1015,10617,3},{1012,10618,3},{1007,10627,3},{1000,10632,3}, {985,10648,3},{980,10652,3},{977,10652,3},{973,10657,3},{965,10658,3},{958,10655,3}, {955,10650,3},{953,10640,3},{957,10635,3},{963,10625,3},{978,10608,3},{992,10598,3}, {997,10592,3},{1000,10582,3},{977,10605,3},{965,10612,3},{955,10618,3}, {952,10622,3},{948,10622,3},{942,10617,3},{940,10620,3},{937,10620,3},{930,10600,3}, {913,10553,3},{905,10545,3},{900,10542,3},{900,10540,3},{883,10535,3},{877,10530,3}, {873,10520,3},{863,10512,3},{858,10502,3},{857,10485,3},{860,10473,3},{862,10472,3}, {860,10477,3},{865,10483,3},{870,10482,3},{868,10490,3},{872,10497,3},{870,10487,3}, {872,10485,3},{872,10490,3},{873,10492,3},{880,10492,3},{882,10493,3},{877,10482,3}, {880,10480,3},{888,10482,3},{895,10482,3},{898,10483,3},{900,10480,3},{903,10482,3}, {905,10482,3},{915,10482,3},{955,10483,3},{968,10487,3},{982,10490,3},{983,10495,3}, {992,10503,3},{993,10507,3},{993,10508,3},{985,10512,3},{992,10510,3},{995,10510,3}, {1002,10507,3},{1010,10498,3},{1010,10490,3},{1020,10480,3},{1023,10473,3}, {1020,10468,3},{1015,10465,3},{1015,10462,3},{1027,10458,3},{1028,10457,3}, {1028,10453,3},{1033,10453,3},{1037,10450,3},{1038,10453,3},{1042,10452,3}, {1038,10450,3},{1038,10445,3},{1045,10443,3},{1045,10440,3},{1048,10437,3}, {1050,10435,3},{1048,10430,3},{1053,10428,3},{1057,10425,3},{1057,10422,3}, {1053,10418,3},{1057,10417,3},{1055,10410,3},{1058,10393,3},{1065,10390,3}, {1065,10387,3},{1070,10387,3},{1060,10387,3},{1055,10383,3},{1053,10377,3}, {1055,10370,3},{1052,10373,3},{1050,10375,3},{1050,10370,3},{1048,10363,3}, {1050,10362,3},{1055,10362,3},{1053,10357,3},{1060,10353,3},{1060,10350,3}, {1062,10350,3},{1072,10357,3},{1073,10368,3},{1077,10367,3},{1077,10368,3}, {1080,10368,3},{1083,10372,3},{1087,10372,3},{1098,10367,3},{1103,10367,3}, {1107,10367,3},{1108,10360,3},{1115,10355,3},{1117,10350,3},{1115,10350,3}, {1113,10348,3},{1115,10347,3},{1113,10348,3},{1108,10345,3},{1108,10347,3}, {1097,10342,3},{1088,10342,3},{1087,10335,3},{1090,10333,3},{1093,10328,3}, {1088,10322,3},{1087,10322,3},{1087,10313,3},{1090,10313,3},{1093,10310,3}, {1097,10312,3},{1108,10310,3},{1108,10312,3},{1115,10312,3},{1122,10308,3}, {1122,10305,3},{1123,10308,3},{1128,10308,3},{1130,10312,3},{1132,10313,3}, {1130,10315,3},{1135,10313,3},{1135,10310,3},{1142,10310,3},{1143,10307,3}, {1143,10308,3},{1147,10313,3},{1143,10317,3},{1147,10315,3},{1150,10313,3}, {1148,10313,3},{1147,10310,3},{1150,10307,3},{1155,10305,3},{1158,10305,3}, {1160,10303,3},{1155,10303,3},{1153,10298,3},{1155,10297,3},{1157,10298,3}, {1155,10300,3},{1157,10298,3},{1163,10298,3},{1163,10300,3},{1162,10302,3}, {1163,10305,3},{1163,10302,3},{1165,10302,3},{1165,10300,3},{1167,10300,3}, {1167,10298,3},{1163,10297,3},{1167,10297,3},{1172,10302,3},{1170,10307,3}, {1172,10308,3},{1172,10305,3},{1173,10302,3},{1172,10298,3},{1177,10295,3}, {1178,10292,3},{1183,10290,3},{1178,10290,3},{1175,10295,3},{1172,10297,3}, {1165,10295,3},{1163,10297,3},{1160,10297,3},{1157,10295,3},{1163,10292,3}, {1165,10293,3},{1175,10292,3},{1183,10285,3},{1190,10283,3},{1198,10278,3}, {1205,10278,3},{1217,10272,3},{1237,10273,3},{1240,10278,3},{1243,10278,3}, {1247,10273,3},{1252,10272,3},{1255,10268,3},{1260,10263,3},{1267,10250,3}, {1273,10250,3},{1275,10252,3},{1280,10253,3},{1285,10250,3},{1288,10252,3}, {1293,10248,3},{1295,10250,3},{1298,10250,3},{1300,10252,3},{1302,10250,3}, {1307,10247,3},{1312,10242,3},{1323,10237,3},{1328,10235,3},{1350,10237,3}, {1355,10233,3},{1358,10237,3},{1357,10245,3},{1357,10253,3},{1360,10260,3}, {1360,10262,3},{1365,10257,3},{1368,10257,3},{1377,10272,3},{1393,10278,3}, {1402,10290,3},{1408,10290,3},{1413,10293,3},{1418,10295,3},{1423,10303,3}, {1430,10310,3},{1433,10318,3},{1433,10323,3},{1435,10328,3},{1435,10340,3}, {1440,10345,3},{1437,10347,3},{1443,10357,3},{1440,10362,3},{1442,10365,3}, {1445,10367,3},{1443,10370,3},{1438,10370,3},{1437,10380,3},{1438,10385,3}, {1435,10388,3},{1433,10392,3},{1435,10395,3},{1437,10395,3},{1437,10400,3}, {1435,10403,3},{1438,10413,3},{1437,10415,3},{1437,10417,3},{1442,10420,3}, {1438,10420,3},{1438,10422,3},{1442,10427,3},{1438,10433,3},{1437,10443,3}, {1435,10447,3},{1438,10452,3},{1437,10455,3},{1437,10458,3},{1443,10465,3}, {1440,10468,3},{1443,10472,3},{1442,10473,3},{1445,10480,3},{1445,10482,3}, {1442,10485,3},{1442,10490,3},{1438,10500,3},{1432,10500,3},{1425,10503,3}, {1422,10508,3},{1425,10515,3},{1432,10518,3},{1435,10518,3},{1435,10522,3}, {1428,10522,3},{1418,10528,3},{1417,10533,3},{1412,10537,3},{1412,10547,3}, {1417,10557,3},{1415,10558,3},{1413,10563,3},{1410,10565,3},{1412,10567,3}, {1410,10570,3},{1412,10573,3},{1408,10578,3},{1402,10580,3},{1393,10592,3}, {1392,10597,3},{1393,10602,3},{1392,10610,3},{1400,10612,3},{1405,10618,3}, {1408,10617,3},{1412,10613,3},{1418,10610,3},{1423,10603,3},{1430,10603,3}, {1433,10600,3},{1437,10600,3},{1435,10607,3},{1437,10607,3},{1435,10608,3}, {1438,10610,3},{1437,10617,3},{1438,10622,3},{1442,10623,3},{1450,10625,3}, {1448,10627,3},{1448,10628,3},{1445,10633,3},{1445,10642,3},{1448,10643,3}, {1452,10643,3},{1452,10648,3},{1457,10647,3},{1460,10653,3},{1455,10657,3}, {1452,10657,3},{1450,10660,3},{1447,10663,3},{1447,10667,3},{1443,10672,3}, {1445,10673,3},{1435,10680,3},{1430,10685,3},{1435,10692,3},{1433,10697,3}, {1437,10698,3},{1437,10700,3},{1442,10705,3},{1445,10705,3},{1440,10712,3}, {1443,10717,3},{1447,10720,3},{1450,10720,3},{1450,10725,3},{1453,10725,3}, {1460,10732,3},{1460,10735,3},{1457,10737,3},{1455,10743,3},{1455,10745,3}, {1463,10747,3},{1465,10750,3},{1470,10755,3},{1465,10755,3},{1460,10753,3}, {1455,10753,3},{1453,10752,3},{1445,10748,3},{1442,10747,3},{1443,10743,3}, {1443,10742,3},{1435,10738,3},{1425,10738,3},{1412,10733,3},{1408,10737,3}, {1403,10737,3},{1400,10738,3},{1400,10745,3},{1398,10745,3},{1395,10745,3}, {1392,10748,3},{1388,10747,3},{1385,10748,3},{1380,10747,3},{1372,10753,3}, {1360,10758,3},{1355,10763,3},{1338,10763,3},{1302,10748,3},{1300,10750,3}, {1295,10750,3},{1288,10752,3},{1280,10757,3},{1272,10757,3},{1268,10758,3}, {1265,10758,3},{1260,10760,3},{1255,10760,3},{1252,10757,3},{1248,10758,3}, {1242,10755,3},{1235,10755,3},{1233,10752,3},{1230,10747,3},{1225,10743,3}, {1225,10742,3},{1233,10735,3},{1233,10732,3},{1228,10717,3},{1213,10705,3}, {1213,10703,3},{1208,10698,3},{1207,10692,3},{1207,10678,3},{1197,10672,3}, {1198,10667,3},{1197,10667,3},{1197,10663,3},{1198,10662,3},{1198,10652,3}, {1195,10650,3},{1198,10647,3},{1197,10642,3},{1187,10647,3},{1185,10645,3}, {1182,10645,3},{1177,10642,3},{1168,10647,3},{1167,10647,3},{1170,10638,3}, {1168,10630,3},{1173,10627,3},{1175,10618,3},{1175,10613,3},{1178,10605,3}, {1177,10602,3},{1172,10602,3},{1165,10597,3},{1167,10588,3},{1167,10585,3}, {1162,10583,3},{1162,10582,3},{1157,10583,3},{1155,10588,3},{1147,10588,3}, {1143,10590,3},{1138,10588,3},{1130,10587,3},{1127,10592,3},{1123,10592,3}, {1120,10595,3},{1118,10602,3},{1115,10603,3},{1108,10610,3},{1107,10612,3}, {1108,10613,3},{1110,10615,3},{1105,10618,3},{1098,10622,3},{1097,10615,3}, {1093,10615,3},{1092,10615,3},{1087,10618,3},{1077,10620,3},{1078,10618,3}, {1080,10608,3},{1085,10602,3},{1090,10595,3},{1083,10593,3},{1085,10587,3}, {1092,10587,3},{1102,10578,3},{1095,10555,3},{1095,10547,3},{1097,10543,3}, {1090,10537,3},{1085,10535,3},{1088,10527,3},{1092,10512,3},{1095,10512,3}, {1095,10510,3},{1093,10507,3},{1088,10503,3},{1077,10507,3},{1075,10510,3}, {1072,10510,3},{1063,10497,3},{1053,10487,3},{1053,10467,3},{1053,10458,3}, {1042,10450,3},{1038,10445,3},{2035,10008,131},{2040,10013,3},{2063,10017,3}, {2075,10025,3},{2078,10035,3},{2083,10037,3},{2080,10052,3},{2083,10058,3}, {2087,10065,3},{2088,10063,3},{2087,10055,3},{2087,10052,3},{2088,10052,3}, {2095,10052,3},{2098,10055,3},{2102,10055,3},{2105,10062,3},{2113,10067,3}, {2118,10070,3},{2130,10072,3},{2130,10078,3},{2130,10085,3},{2137,10090,3}, {2140,10100,3},{2148,10113,3},{2153,10117,3},{2157,10115,3},{2155,10122,3}, {2148,10122,3},{2142,10120,3},{2138,10127,3},{2132,10123,3},{2130,10125,3}, {2125,10123,3},{2118,10128,3},{2118,10133,3},{2123,10140,3},{2125,10152,3}, {2123,10162,3},{2118,10160,3},{2120,10167,3},{2118,10170,3},{2115,10172,3}, {2113,10173,3},{2115,10178,3},{2122,10178,3},{2122,10183,3},{2125,10185,3}, {2128,10182,3},{2130,10177,3},{2132,10173,3},{2145,10177,3},{2148,10175,3}, {2152,10178,3},{2158,10177,3},{2160,10182,3},{2163,10183,3},{2165,10178,3}, {2170,10178,3},{2172,10175,3},{2182,10178,3},{2183,10175,3},{2187,10175,3}, {2188,10172,3},{2193,10170,3},{2193,10167,3},{2197,10163,3},{2200,10163,3}, {2212,10157,3},{2213,10160,3},{2217,10160,3},{2220,10158,3},{2225,10153,3}, {2228,10157,3},{2228,10163,3},{2237,10165,3},{2238,10168,3},{2242,10167,3}, {2245,10167,3},{2247,10168,3},{2250,10173,3},{2248,10180,3},{2238,10188,3}, {2238,10190,3},{2243,10192,3},{2243,10198,3},{2245,10203,3},{2243,10212,3}, {2240,10213,3},{2233,10218,3},{2230,10218,3},{2228,10222,3},{2223,10223,3}, {2222,10227,3},{2220,10232,3},{2212,10242,3},{2205,10245,3},{2203,10252,3}, {2200,10250,3},{2197,10250,3},{2193,10260,3},{2187,10263,3},{2185,10265,3}, {2178,10267,3},{2173,10265,3},{2165,10268,3},{2167,10275,3},{2173,10282,3}, {2182,10280,3},{2185,10282,3},{2185,10285,3},{2182,10287,3},{2172,10287,3}, {2173,10295,3},{2175,10297,3},{2173,10298,3},{2158,10300,3},{2147,10290,3}, {2143,10288,3},{2147,10293,3},{2145,10295,3},{2138,10290,3},{2130,10290,3}, {2130,10287,3},{2125,10282,3},{2125,10288,3},{2123,10292,3},{2117,10292,3}, {2115,10295,3},{2108,10297,3},{2105,10303,3},{2097,10308,3},{2093,10308,3}, {2085,10317,3},{2082,10325,3},{2083,10328,3},{2082,10330,3},{2078,10338,3}, {2080,10343,3},{2082,10345,3},{2083,10345,3},{2075,10352,3},{2073,10362,3}, {2065,10368,3},{2067,10373,3},{2073,10373,3},{2075,10378,3},{2080,10378,3}, {2085,10380,3},{2085,10387,3},{2088,10390,3},{2088,10393,3},{2090,10398,3}, {2090,10403,3},{2095,10407,3},{2098,10410,3},{2095,10413,3},{2095,10418,3}, {2093,10423,3},{2090,10425,3},{2090,10427,3},{2090,10430,3},{2087,10433,3}, {2083,10435,3},{2082,10438,3},{2078,10442,3},{2077,10448,3},{2072,10450,3}, {2067,10465,3},{2063,10463,3},{2058,10458,3},{2055,10458,3},{2052,10455,3}, {2052,10452,3},{2053,10447,3},{2052,10447,3},{2047,10438,3},{2045,10438,3}, {2042,10442,3},{2040,10452,3},{2042,10462,3},{2037,10465,3},{2033,10472,3}, {2028,10472,3},{2028,10468,3},{2022,10468,3},{2020,10473,3},{2023,10480,3}, {2022,10487,3},{2018,10495,3},{2013,10493,3},{2010,10497,3},{2010,10500,3}, {2007,10497,3},{2000,10498,3},{1998,10495,3},{1998,10490,3},{1997,10490,3}, {1993,10485,3},{1988,10478,3},{1987,10478,3},{1987,10483,3},{1985,10485,3}, {1978,10483,3},{1978,10478,3},{1975,10477,3},{1975,10472,3},{1968,10467,3}, {1962,10463,3},{1962,10460,3},{1960,10457,3},{1962,10452,3},{1963,10448,3}, {1965,10445,3},{1970,10442,3},{1968,10437,3},{1967,10432,3},{1968,10432,3}, {1970,10425,3},{1968,10415,3},{1967,10413,3},{1967,10410,3},{1970,10403,3}, {1967,10402,3},{1963,10403,3},{1962,10403,3},{1957,10407,3},{1957,10410,3}, {1952,10410,3},{1950,10412,3},{1948,10408,3},{1945,10407,3},{1942,10407,3}, {1942,10405,3},{1942,10402,3},{1938,10397,3},{1935,10393,3},{1932,10388,3}, {1930,10388,3},{1930,10390,3},{1930,10392,3},{1927,10393,3},{1923,10400,3}, {1923,10405,3},{1923,10408,3},{1920,10412,3},{1920,10417,3},{1917,10420,3}, {1915,10422,3},{1912,10422,3},{1912,10428,3},{1908,10432,3},{1907,10438,3}, {1898,10445,3},{1898,10452,3},{1890,10457,3},{1888,10462,3},{1883,10467,3}, {1883,10470,3},{1880,10473,3},{1878,10485,3},{1878,10492,3},{1873,10495,3}, {1873,10502,3},{1872,10503,3},{1870,10510,3},{1870,10513,3},{1867,10515,3}, {1865,10520,3},{1862,10520,3},{1860,10518,3},{1860,10515,3},{1845,10510,3}, {1840,10515,3},{1838,10518,3},{1832,10518,3},{1828,10523,3},{1825,10527,3}, {1827,10532,3},{1820,10532,3},{1815,10540,3},{1820,10542,3},{1820,10543,3}, {1820,10548,3},{1817,10550,3},{1813,10550,3},{1812,10553,3},{1808,10553,3}, {1805,10558,3},{1802,10558,3},{1800,10562,3},{1798,10563,3},{1787,10562,3}, {1782,10568,3},{1778,10568,3},{1775,10572,3},{1767,10575,3},{1762,10587,3}, {1740,10603,3},{1727,10622,3},{1725,10625,3},{1727,10627,3},{1728,10628,3}, {1728,10632,3},{1725,10632,3},{1723,10633,3},{1720,10633,3},{1712,10638,3}, {1707,10642,3},{1703,10642,3},{1698,10645,3},{1697,10652,3},{1700,10657,3}, {1668,10657,3},{1662,10660,3},{1662,10663,3},{1658,10663,3},{1660,10667,3}, {1658,10667,3},{1653,10667,3},{1645,10668,3},{1643,10672,3},{1643,10675,3}, {1642,10675,3},{1643,10678,3},{1647,10678,3},{1648,10682,3},{1653,10683,3}, {1653,10687,3},{1652,10690,3},{1647,10690,3},{1642,10688,3},{1642,10692,3}, {1640,10690,3},{1635,10698,3},{1630,10698,3},{1630,10702,3},{1630,10710,3}, {1627,10715,3},{1618,10717,3},{1615,10720,3},{1615,10725,3},{1607,10733,3}, {1607,10740,3},{1608,10742,3},{1608,10747,3},{1605,10745,3},{1602,10748,3}, {1592,10740,3},{1592,10733,3},{1585,10727,3},{1587,10723,3},{1587,10720,3}, {1578,10718,3},{1577,10718,3},{1573,10725,3},{1565,10727,3},{1562,10730,3}, {1560,10735,3},{1550,10740,3},{1552,10743,3},{1550,10745,3},{1552,10747,3}, {1548,10748,3},{1550,10752,3},{1543,10752,3},{1542,10755,3},{1542,10760,3}, {1538,10760,3},{1535,10762,3},{1527,10770,3},{1520,10768,3},{1522,10765,3}, {1513,10765,3},{1510,10760,3},{1507,10762,3},{1505,10758,3},{1505,10753,3}, {1502,10747,3},{1497,10748,3},{1488,10758,3},{1480,10752,3},{1477,10753,3}, {1475,10752,3},{1472,10755,3},{1470,10755,3},{1465,10750,3},{1463,10747,3}, {1455,10745,3},{1455,10743,3},{1457,10737,3},{1460,10735,3},{1460,10732,3}, {1453,10725,3},{1450,10725,3},{1450,10720,3},{1447,10720,3},{1443,10717,3}, {1440,10712,3},{1445,10705,3},{1442,10705,3},{1437,10700,3},{1437,10698,3}, {1433,10697,3},{1435,10692,3},{1430,10685,3},{1435,10680,3},{1445,10673,3}, {1443,10672,3},{1447,10667,3},{1447,10663,3},{1450,10660,3},{1452,10657,3}, {1455,10657,3},{1460,10653,3},{1457,10647,3},{1452,10648,3},{1452,10643,3}, {1448,10643,3},{1445,10642,3},{1445,10633,3},{1448,10628,3},{1448,10627,3}, {1450,10625,3},{1442,10623,3},{1438,10622,3},{1437,10617,3},{1438,10610,3}, {1435,10608,3},{1437,10607,3},{1435,10607,3},{1437,10600,3},{1433,10600,3}, {1430,10603,3},{1423,10603,3},{1418,10610,3},{1412,10613,3},{1408,10617,3}, {1405,10618,3},{1400,10612,3},{1392,10610,3},{1393,10602,3},{1392,10597,3}, {1393,10592,3},{1402,10580,3},{1408,10578,3},{1412,10573,3},{1410,10570,3}, {1412,10567,3},{1410,10565,3},{1413,10563,3},{1415,10558,3},{1417,10557,3}, {1412,10547,3},{1412,10537,3},{1417,10533,3},{1418,10528,3},{1428,10522,3}, {1435,10522,3},{1433,10523,3},{1437,10525,3},{1437,10530,3},{1440,10532,3}, {1438,10535,3},{1442,10538,3},{1443,10545,3},{1447,10545,3},{1455,10553,3}, {1462,10553,3},{1467,10552,3},{1473,10553,3},{1477,10552,3},{1482,10552,3}, {1483,10555,3},{1488,10553,3},{1490,10558,3},{1495,10555,3},{1498,10562,3}, {1500,10558,3},{1507,10555,3},{1507,10552,3},{1512,10547,3},{1520,10548,3}, {1525,10555,3},{1527,10560,3},{1533,10558,3},{1533,10550,3},{1535,10547,3}, {1538,10550,3},{1540,10557,3},{1543,10560,3},{1552,10560,3},{1558,10563,3}, {1567,10563,3},{1573,10560,3},{1575,10553,3},{1577,10550,3},{1575,10545,3}, {1580,10540,3},{1593,10535,3},{1598,10538,3},{1600,10543,3},{1602,10542,3}, {1605,10518,3},{1610,10508,3},{1613,10505,3},{1625,10502,3},{1635,10490,3}, {1645,10485,3},{1653,10475,3},{1657,10475,3},{1672,10477,3},{1680,10475,3}, {1687,10477,3},{1692,10475,3},{1702,10473,3},{1713,10480,3},{1728,10482,3}, {1738,10480,3},{1742,10478,3},{1745,10475,3},{1750,10472,3},{1753,10468,3}, {1765,10447,3},{1773,10440,3},{1782,10435,3},{1785,10428,3},{1798,10422,3}, {1810,10410,3},{1820,10407,3},{1832,10398,3},{1833,10395,3},{1828,10388,3}, {1828,10387,3},{1833,10380,3},{1833,10372,3},{1840,10360,3},{1843,10340,3}, {1842,10330,3},{1837,10325,3},{1835,10323,3},{1832,10328,3},{1828,10328,3}, {1823,10317,3},{1817,10313,3},{1812,10307,3},{1803,10307,3},{1798,10305,3}, {1798,10302,3},{1800,10295,3},{1797,10287,3},{1793,10278,3},{1788,10275,3}, {1787,10267,3},{1780,10268,3},{1783,10258,3},{1790,10262,3},{1795,10260,3}, {1797,10253,3},{1797,10248,3},{1798,10242,3},{1803,10237,3},{1805,10230,3}, {1807,10228,3},{1815,10218,3},{1820,10218,3},{1822,10208,3},{1820,10205,3}, {1815,10202,3},{1807,10193,3},{1803,10192,3},{1803,10188,3},{1807,10178,3}, {1803,10177,3},{1792,10173,3},{1790,10165,3},{1787,10162,3},{1785,10160,3}, {1787,10158,3},{1782,10157,3},{1778,10158,3},{1777,10152,3},{1773,10150,3}, {1773,10148,3},{1775,10148,3},{1773,10145,3},{1773,10142,3},{1772,10143,3}, {1768,10142,3},{1770,10138,3},{1765,10135,3},{1765,10132,3},{1757,10125,3}, {1753,10123,3},{1752,10118,3},{1747,10117,3},{1747,10112,3},{1750,10110,3}, {1750,10108,3},{1755,10103,3},{1757,10092,3},{1760,10092,3},{1765,10095,3}, {1772,10098,3},{1777,10098,3},{1778,10100,3},{1782,10098,3},{1783,10103,3}, {1790,10102,3},{1793,10108,3},{1797,10112,3},{1802,10113,3},{1805,10118,3}, {1812,10117,3},{1820,10118,3},{1822,10117,3},{1825,10115,3},{1830,10115,3}, {1833,10118,3},{1837,10110,3},{1843,10105,3},{1848,10110,3},{1852,10110,3}, {1852,10113,3},{1857,10118,3},{1860,10118,3},{1863,10123,3},{1868,10127,3}, {1872,10123,3},{1878,10125,3},{1888,10125,3},{1895,10130,3},{1898,10130,3}, {1903,10135,3},{1905,10135,3},{1913,10127,3},{1923,10125,3},{1930,10123,3}, {1933,10123,3},{1937,10120,3},{1947,10122,3},{1948,10127,3},{1952,10128,3}, {1957,10128,3},{1958,10125,3},{1960,10122,3},{1957,10120,3},{1957,10112,3}, {1962,10103,3},{1962,10090,3},{1952,10082,3},{1948,10078,3},{1952,10073,3}, {1955,10065,3},{1955,10062,3},{1952,10060,3},{1950,10058,3},{1952,10053,3}, {1952,10052,3},{1955,10048,3},{1958,10048,3},{1963,10045,3},{1970,10043,3}, {1975,10040,3},{1985,10045,3},{1988,10050,3},{2015,10058,3},{2017,10055,3}, {2015,10052,3},{2018,10047,3},{2023,10043,3},{2023,10042,3},{2035,10037,3}, {2038,10033,3},{2038,10025,3},{2035,10022,3},{2032,10022,3},{2028,10017,3}, {2025,10017,3},{2023,10017,3},{2025,10010,3},{2032,10010,3},{2035,10008,3}, {1435,10522,131},{1435,10518,3},{1432,10518,3},{1425,10515,3},{1422,10508,3}, {1425,10503,3},{1432,10500,3},{1438,10500,3},{1442,10490,3},{1442,10485,3}, {1445,10482,3},{1445,10480,3},{1442,10473,3},{1443,10472,3},{1440,10468,3}, {1443,10465,3},{1437,10458,3},{1437,10455,3},{1438,10452,3},{1435,10447,3}, {1437,10443,3},{1438,10433,3},{1442,10427,3},{1438,10422,3},{1438,10420,3}, {1442,10420,3},{1437,10417,3},{1437,10415,3},{1438,10413,3},{1435,10403,3}, {1437,10400,3},{1437,10395,3},{1435,10395,3},{1433,10392,3},{1435,10388,3}, {1438,10385,3},{1437,10380,3},{1438,10370,3},{1443,10370,3},{1445,10367,3}, {1442,10365,3},{1440,10362,3},{1443,10357,3},{1437,10347,3},{1440,10345,3}, {1435,10340,3},{1435,10328,3},{1433,10323,3},{1433,10318,3},{1430,10310,3}, {1423,10303,3},{1418,10295,3},{1413,10293,3},{1408,10290,3},{1402,10290,3}, {1393,10278,3},{1377,10272,3},{1368,10257,3},{1365,10257,3},{1360,10262,3}, {1360,10260,3},{1357,10253,3},{1357,10245,3},{1358,10237,3},{1355,10233,3}, {1350,10237,3},{1328,10235,3},{1323,10237,3},{1312,10242,3},{1307,10247,3}, {1302,10250,3},{1300,10252,3},{1298,10250,3},{1295,10250,3},{1293,10248,3}, {1288,10252,3},{1285,10250,3},{1280,10253,3},{1275,10252,3},{1273,10250,3}, {1267,10250,3},{1260,10263,3},{1255,10268,3},{1252,10272,3},{1247,10273,3}, {1243,10278,3},{1240,10278,3},{1237,10273,3},{1217,10272,3},{1205,10278,3}, {1198,10278,3},{1190,10283,3},{1183,10285,3},{1175,10292,3},{1165,10293,3}, {1163,10292,3},{1175,10290,3},{1190,10277,3},{1195,10278,3},{1203,10277,3}, {1215,10263,3},{1217,10265,3},{1220,10260,3},{1222,10260,3},{1220,10255,3}, {1205,10258,3},{1205,10255,3},{1208,10255,3},{1212,10252,3},{1213,10247,3}, {1215,10247,3},{1217,10240,3},{1218,10237,3},{1220,10233,3},{1218,10232,3}, {1218,10230,3},{1220,10228,3},{1223,10228,3},{1228,10227,3},{1228,10228,3}, {1228,10232,3},{1235,10237,3},{1237,10233,3},{1237,10232,3},{1235,10233,3}, {1233,10235,3},{1232,10230,3},{1237,10227,3},{1242,10230,3},{1238,10227,3}, {1242,10227,3},{1243,10227,3},{1242,10223,3},{1243,10222,3},{1243,10220,3}, {1242,10222,3},{1240,10220,3},{1240,10223,3},{1237,10225,3},{1230,10228,3}, {1230,10227,3},{1232,10223,3},{1240,10215,3},{1240,10212,3},{1243,10212,3}, {1248,10207,3},{1250,10208,3},{1248,10210,3},{1252,10208,3},{1253,10212,3}, {1253,10210,3},{1252,10208,3},{1253,10208,3},{1253,10210,3},{1253,10203,3}, {1255,10203,3},{1257,10207,3},{1255,10200,3},{1255,10202,3},{1252,10203,3}, {1252,10207,3},{1247,10205,3},{1252,10203,3},{1253,10198,3},{1253,10195,3}, {1260,10195,3},{1258,10193,3},{1252,10195,3},{1257,10190,3},{1258,10192,3}, {1260,10190,3},{1260,10188,3},{1265,10187,3},{1270,10175,3},{1270,10168,3}, {1265,10165,3},{1265,10158,3},{1263,10157,3},{1263,10145,3},{1258,10142,3}, {1265,10128,3},{1268,10108,3},{1263,10098,3},{1260,10097,3},{1262,10092,3}, {1265,10093,3},{1265,10092,3},{1265,10087,3},{1267,10087,3},{1268,10085,3}, {1270,10087,3},{1270,10083,3},{1273,10083,3},{1277,10087,3},{1277,10090,3}, {1280,10092,3},{1287,10090,3},{1292,10087,3},{1293,10088,3},{1297,10090,3}, {1298,10092,3},{1302,10093,3},{1305,10092,3},{1308,10088,3},{1320,10095,3}, {1330,10092,3},{1333,10093,3},{1337,10098,3},{1345,10097,3},{1350,10100,3}, {1347,10097,3},{1347,10092,3},{1352,10065,3},{1355,10058,3},{1360,10060,3}, {1357,10058,3},{1353,10058,3},{1352,10057,3},{1348,10033,3},{1352,10027,3}, {1348,10025,3},{1342,10005,3},{1337,10003,3},{1337,10000,3},{1337,10002,3}, {1335,10002,3},{1330,9995,3},{1327,9997,3},{1322,10000,3},{1315,10007,3}, {1308,10008,3},{1305,10010,3},{1295,10005,3},{1287,10003,3},{1275,9997,3}, {1267,9997,3},{1262,9997,3},{1253,9998,3},{1247,9997,3},{1237,10002,3}, {1227,9998,3},{1223,10002,3},{1218,10002,3},{1215,9998,3},{1208,9997,3}, {1198,9987,3},{1188,9982,3},{1183,9983,3},{1182,9980,3},{1178,9982,3},{1177,9980,3}, {1173,9982,3},{1173,9978,3},{1168,9973,3},{1152,9963,3},{1140,9962,3},{1132,9957,3}, {1127,9957,3},{1122,9958,3},{1118,9958,3},{1118,9957,3},{1120,9955,3},{1118,9953,3}, {1112,9948,3},{1107,9950,3},{1103,9952,3},{1095,9950,3},{1090,9952,3},{1087,9950,3}, {1088,9948,3},{1087,9943,3},{1080,9943,3},{1070,9937,3},{1068,9937,3},{1067,9933,3}, {1065,9932,3},{1055,9928,3},{1052,9923,3},{1050,9927,3},{1047,9923,3},{1045,9923,3}, {1042,9928,3},{1037,9928,3},{1035,9923,3},{1037,9922,3},{1037,9915,3},{1030,9917,3}, {1027,9918,3},{1025,9920,3},{1023,9922,3},{1023,9925,3},{1020,9923,3},{1020,9920,3}, {1012,9915,3},{1007,9915,3},{1005,9918,3},{1002,9918,3},{1000,9917,3},{998,9915,3}, {985,9917,3},{980,9915,3},{977,9915,3},{963,9918,3},{960,9922,3},{955,9922,3}, {947,9927,3},{940,9932,3},{938,9930,3},{933,9923,3},{925,9923,3},{922,9927,3}, {923,9930,3},{920,9937,3},{918,9945,3},{922,9950,3},{928,9953,3},{927,9962,3}, {930,9965,3},{930,9968,3},{932,9970,3},{930,9973,3},{932,9975,3},{930,9985,3}, {923,9987,3},{922,9988,3},{915,9988,3},{910,9992,3},{903,9992,3},{900,9993,3}, {898,9992,3},{887,9993,3},{862,9997,3},{857,9998,3},{853,10005,3},{843,10008,3}, {840,10013,3},{838,10017,3},{840,10018,3},{842,10017,3},{847,10018,3},{850,10015,3}, {852,10013,3},{850,10017,3},{843,10022,3},{830,10027,3},{812,10030,3},{778,10038,3}, {747,10043,3},{730,10052,3},{722,10058,3},{718,10057,3},{725,10048,3},{725,10043,3}, {727,10042,3},{730,10043,3},{753,10040,3},{757,10038,3},{757,10035,3},{755,10032,3}, {753,10030,3},{752,10027,3},{758,10028,3},{758,10030,3},{762,10032,3},{773,10032,3}, {778,10030,3},{780,10027,3},{778,10022,3},{775,10020,3},{773,10015,3},{772,10015,3}, {762,10015,3},{752,10018,3},{748,10023,3},{738,10027,3},{733,10032,3},{733,10037,3}, {727,10038,3},{725,10042,3},{722,10038,3},{717,10042,3},{715,10048,3},{713,10047,3}, {713,10053,3},{717,10058,3},{722,10060,3},{697,10078,3},{695,10080,3},{695,10085,3}, {685,10102,3},{685,10105,3},{687,10108,3},{687,10122,3},{690,10128,3},{687,10130,3}, {687,10135,3},{688,10137,3},{692,10133,3},{693,10127,3},{695,10130,3},{690,10140,3}, {685,10153,3},{683,10157,3},{648,10178,3},{645,10182,3},{642,10188,3},{632,10198,3}, {623,10210,3},{612,10208,3},{597,10195,3},{587,10195,3},{578,10185,3},{575,10183,3}, {575,10180,3},{578,10177,3},{578,10175,3},{577,10168,3},{582,10167,3},{587,10167,3}, {587,10163,3},{590,10162,3},{592,10157,3},{587,10150,3},{587,10142,3},{580,10135,3}, {580,10128,3},{577,10127,3},{570,10125,3},{567,10122,3},{563,10115,3},{572,10108,3}, {573,10102,3},{578,10098,3},{590,10103,3},{593,10110,3},{598,10112,3},{603,10110,3}, {610,10112,3},{615,10108,3},{617,10108,3},{618,10112,3},{625,10112,3},{625,10103,3}, {628,10098,3},{623,10095,3},{625,10088,3},{623,10085,3},{628,10085,3},{633,10085,3}, {637,10083,3},{642,10083,3},{645,10080,3},{645,10077,3},{650,10075,3},{645,10067,3}, {648,10053,3},{652,10052,3},{652,10043,3},{655,10037,3},{658,10033,3},{670,10030,3}, {670,10027,3},{668,10025,3},{672,10022,3},{670,10018,3},{663,10017,3},{657,10020,3}, {653,10017,3},{648,10017,3},{642,10012,3},{647,10012,3},{648,10008,3},{652,10010,3}, {653,10010,3},{652,10005,3},{658,9998,3},{658,9997,3},{663,9997,3},{665,9995,3}, {667,9993,3},{672,9992,3},{672,9988,3},{677,9985,3},{677,9982,3},{683,9978,3}, {685,9970,3},{688,9968,3},{693,9968,3},{693,9972,3},{697,9970,3},{697,9968,3}, {703,9968,3},{713,9975,3},{712,9968,3},{715,9967,3},{717,9967,3},{715,9963,3}, {713,9962,3},{715,9962,3},{713,9958,3},{715,9958,3},{723,9953,3},{727,9955,3}, {728,9958,3},{737,9960,3},{730,9955,3},{730,9953,3},{737,9952,3},{738,9952,3}, {737,9948,3},{730,9948,3},{727,9947,3},{730,9940,3},{737,9933,3},{745,9935,3}, {750,9933,3},{750,9930,3},{753,9932,3},{757,9930,3},{762,9928,3},{762,9925,3}, {765,9927,3},{768,9920,3},{772,9918,3},{773,9913,3},{777,9913,3},{770,9912,3}, {768,9910,3},{770,9903,3},{782,9902,3},{785,9905,3},{792,9907,3},{790,9903,3}, {793,9900,3},{793,9897,3},{802,9895,3},{805,9892,3},{802,9888,3},{800,9883,3}, {805,9880,3},{802,9877,3},{808,9875,3},{813,9875,3},{813,9873,3},{822,9873,3}, {825,9873,3},{822,9870,3},{828,9870,3},{830,9868,3},{828,9865,3},{828,9862,3}, {835,9863,3},{838,9865,3},{838,9862,3},{840,9860,3},{837,9860,3},{835,9853,3}, {833,9853,3},{833,9850,3},{832,9848,3},{833,9847,3},{832,9842,3},{828,9845,3}, {822,9847,3},{818,9845,3},{815,9843,3},{815,9842,3},{817,9840,3},{813,9840,3}, {815,9837,3},{818,9835,3},{818,9833,3},{820,9832,3},{822,9828,3},{830,9827,3}, {857,9820,3},{858,9820,3},{855,9822,3},{852,9825,3},{853,9825,3},{857,9822,3}, {867,9823,3},{873,9822,3},{877,9825,3},{885,9827,3},{890,9830,3},{892,9830,3}, {897,9832,3},{897,9837,3},{900,9835,3},{903,9838,3},{902,9833,3},{902,9832,3}, {905,9833,3},{907,9837,3},{908,9838,3},{913,9835,3},{920,9832,3},{920,9833,3}, {920,9835,3},{922,9837,3},{925,9835,3},{932,9838,3},{940,9840,3},{942,9842,3}, {955,9845,3},{953,9848,3},{957,9853,3},{957,9848,3},{962,9847,3},{963,9847,3}, {963,9850,3},{965,9852,3},{967,9850,3},{968,9852,3},{972,9850,3},{970,9853,3}, {973,9857,3},{975,9852,3},{973,9850,3},{978,9852,3},{978,9855,3},{983,9858,3}, {983,9857,3},{980,9855,3},{985,9852,3},{987,9853,3},{988,9855,3},{987,9857,3}, {988,9857,3},{990,9858,3},{992,9857,3},{993,9858,3},{995,9858,3},{995,9863,3}, {997,9863,3},{995,9860,3},{997,9860,3},{1017,9870,3},{1033,9875,3},{1035,9875,3}, {1042,9877,3},{1047,9880,3},{1052,9882,3},{1058,9880,3},{1062,9877,3},{1068,9878,3}, {1077,9887,3},{1078,9890,3},{1082,9892,3},{1082,9893,3},{1082,9897,3},{1083,9898,3}, {1083,9900,3},{1088,9902,3},{1092,9900,3},{1097,9902,3},{1095,9907,3},{1097,9908,3}, {1102,9910,3},{1103,9917,3},{1108,9920,3},{1110,9923,3},{1123,9928,3},{1128,9932,3}, {1132,9933,3},{1138,9940,3},{1145,9940,3},{1147,9945,3},{1152,9947,3},{1162,9947,3}, {1163,9948,3},{1163,9957,3},{1168,9960,3},{1173,9963,3},{1183,9967,3},{1183,9963,3}, {1188,9958,3},{1197,9960,3},{1200,9960,3},{1202,9955,3},{1205,9955,3},{1213,9957,3}, {1213,9947,3},{1218,9950,3},{1222,9948,3},{1227,9948,3},{1232,9945,3},{1240,9945,3}, {1247,9942,3},{1250,9943,3},{1258,9943,3},{1260,9942,3},{1260,9938,3},{1265,9935,3}, {1267,9930,3},{1272,9928,3},{1272,9925,3},{1280,9923,3},{1283,9920,3},{1292,9918,3}, {1297,9920,3},{1305,9912,3},{1313,9913,3},{1318,9912,3},{1322,9922,3},{1332,9920,3}, {1333,9922,3},{1340,9922,3},{1347,9922,3},{1357,9917,3},{1358,9918,3},{1363,9917,3}, {1372,9918,3},{1375,9917,3},{1377,9913,3},{1383,9912,3},{1388,9912,3},{1393,9903,3}, {1402,9900,3},{1403,9897,3},{1408,9897,3},{1412,9890,3},{1415,9887,3},{1422,9877,3}, {1428,9873,3},{1428,9868,3},{1432,9862,3},{1437,9860,3},{1438,9857,3},{1453,9850,3}, {1453,9847,3},{1458,9847,3},{1460,9845,3},{1472,9832,3},{1477,9830,3},{1480,9827,3}, {1485,9827,3},{1487,9825,3},{1492,9825,3},{1500,9822,3},{1505,9823,3},{1510,9818,3}, {1518,9822,3},{1522,9820,3},{1523,9827,3},{1530,9832,3},{1528,9838,3},{1527,9842,3}, {1528,9842,3},{1530,9840,3},{1532,9840,3},{1532,9842,3},{1537,9843,3},{1537,9847,3}, {1538,9850,3},{1537,9855,3},{1533,9857,3},{1535,9858,3},{1545,9860,3},{1558,9857,3}, {1567,9858,3},{1572,9857,3},{1587,9862,3},{1593,9858,3},{1597,9862,3},{1602,9860,3}, {1605,9857,3},{1605,9865,3},{1608,9867,3},{1612,9868,3},{1613,9870,3},{1612,9878,3}, {1610,9880,3},{1613,9885,3},{1622,9887,3},{1627,9892,3},{1632,9892,3},{1638,9893,3}, {1643,9887,3},{1648,9887,3},{1645,9883,3},{1638,9882,3},{1633,9875,3},{1627,9872,3}, {1628,9868,3},{1638,9867,3},{1642,9865,3},{1645,9867,3},{1655,9858,3},{1658,9860,3}, {1662,9858,3},{1663,9853,3},{1672,9852,3},{1673,9848,3},{1678,9850,3},{1678,9853,3}, {1680,9853,3},{1680,9855,3},{1683,9852,3},{1687,9852,3},{1685,9855,3},{1688,9855,3}, {1692,9850,3},{1693,9852,3},{1697,9848,3},{1698,9848,3},{1698,9847,3},{1702,9847,3}, {1705,9842,3},{1705,9833,3},{1708,9832,3},{1710,9832,3},{1712,9830,3},{1713,9830,3}, {1720,9825,3},{1722,9825,3},{1722,9822,3},{1732,9812,3},{1738,9812,3},{1742,9805,3}, {1745,9805,3},{1747,9803,3},{1750,9802,3},{1753,9795,3},{1770,9778,3},{1775,9777,3}, {1783,9770,3},{1787,9768,3},{1793,9770,3},{1795,9773,3},{1797,9775,3},{1805,9772,3}, {1805,9768,3},{1808,9770,3},{1812,9768,3},{1815,9768,3},{1823,9762,3},{1825,9762,3}, {1827,9765,3},{1828,9765,3},{1832,9762,3},{1833,9758,3},{1832,9755,3},{1827,9753,3}, {1828,9748,3},{1833,9745,3},{1842,9743,3},{1855,9735,3},{1858,9737,3},{1855,9737,3}, {1855,9742,3},{1850,9745,3},{1848,9753,3},{1853,9762,3},{1855,9762,3},{1857,9767,3}, {1857,9777,3},{1868,9778,3},{1873,9777,3},{1887,9775,3},{1893,9768,3},{1897,9773,3}, {1903,9775,3},{1910,9783,3},{1922,9783,3},{1928,9778,3},{1930,9783,3},{1940,9780,3}, {1950,9788,3},{1953,9787,3},{1957,9787,3},{1957,9790,3},{1960,9797,3},{1963,9800,3}, {1965,9803,3},{1972,9803,3},{1980,9805,3},{1980,9808,3},{1977,9810,3},{1978,9813,3}, {1973,9820,3},{1972,9823,3},{1968,9825,3},{1967,9827,3},{1970,9833,3},{1970,9847,3}, {1972,9852,3},{1968,9857,3},{1970,9858,3},{1972,9862,3},{1973,9865,3},{1977,9878,3}, {1982,9883,3},{1975,9892,3},{1978,9897,3},{1978,9900,3},{1980,9900,3},{1985,9903,3}, {1993,9902,3},{1993,9903,3},{1997,9903,3},{2005,9905,3},{2010,9908,3},{2013,9918,3}, {2010,9927,3},{2007,9933,3},{2010,9947,3},{2015,9952,3},{2015,9953,3},{2020,9955,3}, {2025,9952,3},{2032,9950,3},{2037,9945,3},{2038,9945,3},{2035,9953,3},{2032,9967,3}, {2033,9973,3},{2033,9982,3},{2042,9987,3},{2045,9997,3},{2038,10002,3}, {2038,10007,3},{2035,10007,3},{2035,10008,3},{2032,10010,3},{2025,10010,3}, {2023,10017,3},{2025,10017,3},{2028,10017,3},{2032,10022,3},{2035,10022,3}, {2038,10025,3},{2038,10033,3},{2035,10037,3},{2023,10042,3},{2023,10043,3}, {2018,10047,3},{2015,10052,3},{2017,10055,3},{2015,10058,3},{1988,10050,3}, {1985,10045,3},{1975,10040,3},{1970,10043,3},{1963,10045,3},{1958,10048,3}, {1955,10048,3},{1952,10052,3},{1952,10053,3},{1950,10058,3},{1952,10060,3}, {1955,10062,3},{1955,10065,3},{1952,10073,3},{1948,10078,3},{1952,10082,3}, {1962,10090,3},{1962,10103,3},{1957,10112,3},{1957,10120,3},{1960,10122,3}, {1958,10125,3},{1957,10128,3},{1952,10128,3},{1948,10127,3},{1947,10122,3}, {1937,10120,3},{1933,10123,3},{1930,10123,3},{1923,10125,3},{1913,10127,3}, {1905,10135,3},{1903,10135,3},{1898,10130,3},{1895,10130,3},{1888,10125,3}, {1878,10125,3},{1872,10123,3},{1868,10127,3},{1863,10123,3},{1860,10118,3}, {1857,10118,3},{1852,10113,3},{1852,10110,3},{1848,10110,3},{1843,10105,3}, {1837,10110,3},{1833,10118,3},{1830,10115,3},{1825,10115,3},{1822,10117,3}, {1820,10118,3},{1812,10117,3},{1805,10118,3},{1802,10113,3},{1797,10112,3}, {1793,10108,3},{1790,10102,3},{1783,10103,3},{1782,10098,3},{1778,10100,3}, {1777,10098,3},{1772,10098,3},{1765,10095,3},{1760,10092,3},{1757,10092,3}, {1755,10103,3},{1750,10108,3},{1750,10110,3},{1747,10112,3},{1747,10117,3}, {1752,10118,3},{1753,10123,3},{1757,10125,3},{1765,10132,3},{1765,10135,3}, {1770,10138,3},{1768,10142,3},{1772,10143,3},{1773,10142,3},{1773,10145,3}, {1775,10148,3},{1773,10148,3},{1773,10150,3},{1777,10152,3},{1778,10158,3}, {1782,10157,3},{1787,10158,3},{1785,10160,3},{1787,10162,3},{1790,10165,3}, {1792,10173,3},{1803,10177,3},{1807,10178,3},{1803,10188,3},{1803,10192,3}, {1807,10193,3},{1815,10202,3},{1820,10205,3},{1822,10208,3},{1820,10218,3}, {1815,10218,3},{1807,10228,3},{1805,10230,3},{1803,10237,3},{1798,10242,3}, {1797,10248,3},{1797,10253,3},{1795,10260,3},{1790,10262,3},{1783,10258,3}, {1780,10268,3},{1787,10267,3},{1788,10275,3},{1793,10278,3},{1797,10287,3}, {1800,10295,3},{1798,10302,3},{1798,10305,3},{1803,10307,3},{1812,10307,3}, {1817,10313,3},{1823,10317,3},{1828,10328,3},{1832,10328,3},{1835,10323,3}, {1837,10325,3},{1842,10330,3},{1843,10340,3},{1840,10360,3},{1833,10372,3}, {1833,10380,3},{1828,10387,3},{1828,10388,3},{1833,10395,3},{1832,10398,3}, {1820,10407,3},{1810,10410,3},{1798,10422,3},{1785,10428,3},{1782,10435,3}, {1773,10440,3},{1765,10447,3},{1753,10468,3},{1750,10472,3},{1745,10475,3}, {1742,10478,3},{1738,10480,3},{1728,10482,3},{1713,10480,3},{1702,10473,3}, {1692,10475,3},{1687,10477,3},{1680,10475,3},{1672,10477,3},{1657,10475,3}, {1653,10475,3},{1645,10485,3},{1635,10490,3},{1625,10502,3},{1613,10505,3}, {1610,10508,3},{1605,10518,3},{1602,10542,3},{1600,10543,3},{1598,10538,3}, {1593,10535,3},{1580,10540,3},{1575,10545,3},{1577,10550,3},{1575,10553,3}, {1573,10560,3},{1567,10563,3},{1558,10563,3},{1552,10560,3},{1543,10560,3}, {1540,10557,3},{1538,10550,3},{1535,10547,3},{1533,10550,3},{1533,10558,3}, {1527,10560,3},{1525,10555,3},{1520,10548,3},{1512,10547,3},{1507,10552,3}, {1507,10555,3},{1500,10558,3},{1498,10562,3},{1495,10555,3},{1490,10558,3}, {1488,10553,3},{1483,10555,3},{1482,10552,3},{1477,10552,3},{1473,10553,3}, {1467,10552,3},{1462,10553,3},{1455,10553,3},{1447,10545,3},{1443,10545,3}, {1442,10538,3},{1438,10535,3},{1440,10532,3},{1437,10530,3},{1437,10525,3}, {1433,10523,3},{1435,10522,3},{642,10012,131},{648,10017,3},{653,10017,3}, {657,10020,3},{663,10017,3},{670,10018,3},{672,10022,3},{668,10025,3},{670,10027,3}, {670,10030,3},{658,10033,3},{655,10037,3},{652,10043,3},{652,10052,3},{648,10053,3}, {645,10067,3},{650,10075,3},{645,10077,3},{645,10080,3},{642,10083,3},{637,10083,3}, {633,10085,3},{628,10085,3},{623,10085,3},{625,10088,3},{623,10095,3},{628,10098,3}, {625,10103,3},{625,10112,3},{618,10112,3},{617,10108,3},{615,10108,3},{610,10112,3}, {603,10110,3},{598,10112,3},{593,10110,3},{590,10103,3},{578,10098,3},{573,10102,3}, {572,10108,3},{563,10115,3},{567,10122,3},{570,10125,3},{577,10127,3},{580,10128,3}, {580,10135,3},{587,10142,3},{587,10150,3},{592,10157,3},{590,10162,3},{587,10163,3}, {587,10167,3},{582,10167,3},{577,10168,3},{578,10175,3},{578,10177,3},{575,10180,3}, {575,10183,3},{578,10185,3},{587,10195,3},{597,10195,3},{612,10208,3},{623,10210,3}, {620,10217,3},{620,10220,3},{622,10217,3},{623,10218,3},{618,10233,3},{608,10242,3}, {588,10250,3},{580,10262,3},{572,10267,3},{558,10285,3},{553,10297,3},{547,10305,3}, {538,10312,3},{523,10322,3},{508,10328,3},{480,10345,3},{473,10343,3},{455,10347,3}, {447,10345,3},{432,10350,3},{423,10347,3},{422,10345,3},{417,10345,3},{415,10342,3}, {410,10340,3},{405,10340,3},{395,10343,3},{395,10340,3},{390,10338,3},{380,10338,3}, {380,10335,3},{375,10333,3},{363,10337,3},{353,10347,3},{350,10345,3},{350,10348,3}, {340,10343,3},{318,10345,3},{305,10343,3},{293,10343,3},{280,10352,3},{268,10362,3}, {267,10363,3},{267,10367,3},{265,10370,3},{263,10372,3},{265,10377,3},{262,10377,3}, {258,10382,3},{252,10383,3},{247,10383,3},{235,10392,3},{233,10395,3},{225,10398,3}, {220,10397,3},{213,10402,3},{202,10407,3},{198,10412,3},{185,10413,3},{183,10415,3}, {185,10417,3},{180,10418,3},{163,10425,3},{155,10427,3},{145,10430,3},{142,10428,3}, {137,10428,3},{137,10425,3},{133,10420,3},{137,10412,3},{138,10410,3},{142,10410,3}, {147,10405,3},{150,10408,3},{152,10413,3},{155,10415,3},{153,10412,3},{150,10405,3}, {157,10403,3},{165,10397,3},{163,10395,3},{160,10397,3},{153,10402,3},{150,10400,3}, {147,10402,3},{143,10400,3},{142,10397,3},{143,10392,3},{148,10382,3},{145,10377,3}, {145,10368,3},{138,10363,3},{135,10358,3},{138,10355,3},{133,10355,3},{127,10352,3}, {132,10345,3},{148,10340,3},{153,10337,3},{162,10320,3},{173,10302,3},{175,10293,3}, {185,10283,3},{185,10270,3},{193,10265,3},{202,10255,3},{205,10255,3},{210,10247,3}, {222,10217,3},{227,10210,3},{233,10205,3},{237,10198,3},{240,10198,3},{242,10193,3}, {240,10185,3},{247,10185,3},{252,10180,3},{257,10178,3},{258,10177,3},{260,10170,3}, {262,10168,3},{267,10153,3},{270,10148,3},{280,10140,3},{283,10128,3},{288,10130,3}, {290,10128,3},{300,10137,3},{308,10137,3},{313,10132,3},{327,10130,3},{333,10123,3}, {335,10120,3},{347,10112,3},{360,10105,3},{363,10102,3},{370,10093,3},{377,10087,3}, {378,10082,3},{380,10082,3},{385,10085,3},{383,10077,3},{388,10070,3},{392,10070,3}, {400,10072,3},{398,10077,3},{402,10087,3},{403,10083,3},{402,10078,3},{403,10077,3}, {410,10077,3},{412,10073,3},{417,10068,3},{417,10062,3},{423,10060,3},{425,10062,3}, {427,10060,3},{430,10058,3},{432,10057,3},{440,10058,3},{443,10062,3},{455,10065,3}, {457,10060,3},{460,10058,3},{463,10060,3},{463,10063,3},{467,10067,3},{465,10060,3}, {475,10058,3},{475,10063,3},{477,10062,3},{480,10062,3},{480,10057,3},{482,10057,3}, {485,10057,3},{487,10055,3},{487,10050,3},{488,10050,3},{488,10052,3},{490,10052,3}, {492,10048,3},{492,10045,3},{492,10043,3},{497,10042,3},{498,10040,3},{508,10037,3}, {512,10040,3},{520,10043,3},{525,10042,3},{528,10043,3},{538,10037,3},{552,10038,3}, {557,10035,3},{567,10033,3},{567,10038,3},{570,10037,3},{582,10038,3},{597,10035,3}, {603,10033,3},{608,10030,3},{620,10025,3},{628,10018,3},{642,10012,3},{1035,9875,131}, {1022,9868,3},{1010,9862,3},{998,9855,3},{998,9853,3},{1002,9852,3},{1007,9852,3}, {1008,9850,3},{1015,9852,3},{1018,9848,3},{1025,9852,3},{1030,9850,3},{1035,9853,3}, {1045,9850,3},{1055,9850,3},{1062,9847,3},{1072,9845,3},{1073,9850,3},{1070,9852,3}, {1070,9853,3},{1075,9852,3},{1073,9857,3},{1077,9857,3},{1080,9860,3},{1083,9860,3}, {1085,9863,3},{1087,9858,3},{1088,9862,3},{1092,9863,3},{1090,9867,3},{1092,9872,3}, {1098,9872,3},{1100,9868,3},{1102,9870,3},{1105,9873,3},{1108,9870,3},{1110,9870,3}, {1108,9868,3},{1113,9867,3},{1113,9870,3},{1117,9873,3},{1122,9873,3},{1127,9877,3}, {1133,9873,3},{1135,9872,3},{1138,9872,3},{1138,9870,3},{1145,9872,3},{1145,9877,3}, {1152,9875,3},{1152,9872,3},{1157,9872,3},{1157,9873,3},{1162,9873,3},{1168,9875,3}, {1167,9880,3},{1170,9882,3},{1170,9883,3},{1168,9888,3},{1170,9888,3},{1173,9885,3}, {1173,9882,3},{1175,9878,3},{1178,9878,3},{1182,9882,3},{1185,9882,3},{1182,9882,3}, {1178,9877,3},{1177,9877,3},{1173,9872,3},{1170,9870,3},{1168,9867,3},{1172,9862,3}, {1175,9860,3},{1180,9863,3},{1180,9860,3},{1182,9862,3},{1183,9865,3},{1185,9865,3}, {1187,9867,3},{1188,9870,3},{1190,9868,3},{1188,9865,3},{1188,9855,3},{1190,9857,3}, {1192,9865,3},{1195,9868,3},{1197,9872,3},{1198,9872,3},{1202,9872,3},{1203,9870,3}, {1207,9872,3},{1207,9865,3},{1208,9863,3},{1212,9863,3},{1213,9863,3},{1215,9867,3}, {1217,9865,3},{1220,9872,3},{1222,9872,3},{1223,9867,3},{1220,9860,3},{1222,9855,3}, {1225,9853,3},{1228,9857,3},{1230,9867,3},{1233,9870,3},{1238,9867,3},{1238,9865,3}, {1242,9860,3},{1248,9862,3},{1250,9872,3},{1255,9862,3},{1262,9865,3},{1262,9867,3}, {1265,9865,3},{1272,9870,3},{1273,9863,3},{1275,9867,3},{1275,9868,3},{1275,9863,3}, {1277,9860,3},{1278,9865,3},{1280,9865,3},{1287,9863,3},{1292,9858,3},{1295,9862,3}, {1302,9858,3},{1308,9858,3},{1312,9857,3},{1317,9858,3},{1323,9853,3},{1325,9850,3}, {1328,9850,3},{1330,9850,3},{1328,9847,3},{1337,9845,3},{1340,9847,3},{1338,9845,3}, {1340,9845,3},{1345,9842,3},{1347,9843,3},{1355,9838,3},{1355,9837,3},{1358,9837,3}, {1358,9833,3},{1362,9833,3},{1365,9830,3},{1368,9828,3},{1370,9830,3},{1370,9823,3}, {1387,9825,3},{1392,9823,3},{1400,9823,3},{1407,9818,3},{1402,9818,3},{1397,9820,3}, {1393,9818,3},{1387,9820,3},{1375,9817,3},{1367,9820,3},{1362,9817,3},{1357,9817,3}, {1353,9818,3},{1353,9817,3},{1355,9815,3},{1353,9813,3},{1357,9815,3},{1358,9813,3}, {1360,9815,3},{1362,9813,3},{1363,9815,3},{1367,9815,3},{1367,9817,3},{1368,9817,3}, {1368,9812,3},{1370,9810,3},{1373,9812,3},{1372,9810,3},{1377,9808,3},{1378,9808,3}, {1378,9812,3},{1385,9810,3},{1390,9810,3},{1392,9808,3},{1402,9807,3},{1403,9807,3}, {1405,9808,3},{1412,9810,3},{1417,9810,3},{1420,9810,3},{1418,9808,3},{1420,9807,3}, {1430,9800,3},{1437,9798,3},{1447,9800,3},{1443,9797,3},{1452,9795,3},{1457,9792,3}, {1462,9792,3},{1462,9790,3},{1467,9788,3},{1472,9792,3},{1472,9795,3},{1467,9798,3}, {1465,9803,3},{1470,9798,3},{1472,9800,3},{1473,9797,3},{1477,9797,3},{1480,9795,3}, {1475,9793,3},{1480,9790,3},{1473,9790,3},{1472,9788,3},{1472,9785,3},{1487,9780,3}, {1497,9782,3},{1500,9780,3},{1502,9778,3},{1503,9780,3},{1507,9780,3},{1515,9782,3}, {1518,9780,3},{1520,9782,3},{1520,9778,3},{1525,9773,3},{1530,9775,3},{1535,9773,3}, {1535,9775,3},{1538,9775,3},{1542,9778,3},{1550,9775,3},{1553,9777,3},{1560,9775,3}, {1573,9773,3},{1575,9772,3},{1577,9773,3},{1585,9773,3},{1585,9770,3},{1588,9772,3}, {1592,9770,3},{1595,9763,3},{1600,9760,3},{1602,9758,3},{1603,9758,3},{1607,9757,3}, {1612,9762,3},{1627,9765,3},{1635,9762,3},{1648,9763,3},{1655,9768,3},{1657,9773,3}, {1657,9770,3},{1653,9765,3},{1652,9763,3},{1653,9752,3},{1652,9750,3},{1652,9742,3}, {1648,9737,3},{1663,9733,3},{1667,9735,3},{1667,9730,3},{1670,9727,3},{1675,9727,3}, {1677,9725,3},{1682,9725,3},{1683,9723,3},{1687,9723,3},{1682,9722,3},{1690,9722,3}, {1690,9718,3},{1692,9718,3},{1702,9720,3},{1707,9715,3},{1710,9717,3},{1712,9718,3}, {1708,9723,3},{1710,9725,3},{1713,9718,3},{1712,9715,3},{1708,9713,3},{1708,9712,3}, {1715,9710,3},{1718,9710,3},{1718,9708,3},{1725,9707,3},{1727,9702,3},{1730,9700,3}, {1738,9690,3},{1745,9688,3},{1738,9685,3},{1742,9683,3},{1738,9682,3},{1737,9685,3}, {1735,9685,3},{1733,9690,3},{1730,9692,3},{1720,9685,3},{1708,9690,3},{1703,9692,3}, {1692,9688,3},{1693,9683,3},{1690,9685,3},{1690,9680,3},{1687,9685,3},{1685,9685,3}, {1677,9682,3},{1675,9678,3},{1673,9680,3},{1672,9678,3},{1655,9660,3},{1650,9650,3}, {1650,9640,3},{1655,9630,3},{1660,9627,3},{1665,9627,3},{1668,9623,3},{1675,9622,3}, {1677,9623,3},{1680,9628,3},{1682,9628,3},{1682,9627,3},{1677,9620,3},{1677,9617,3}, {1672,9620,3},{1667,9622,3},{1665,9625,3},{1658,9623,3},{1647,9630,3},{1645,9633,3}, {1643,9633,3},{1632,9612,3},{1635,9608,3},{1638,9600,3},{1633,9607,3},{1632,9608,3}, {1622,9597,3},{1622,9593,3},{1625,9595,3},{1622,9592,3},{1620,9588,3},{1623,9588,3}, {1613,9578,3},{1615,9575,3},{1622,9573,3},{1612,9573,3},{1605,9568,3},{1598,9568,3}, {1595,9567,3},{1580,9552,3},{1573,9543,3},{1572,9538,3},{1572,9528,3},{1583,9528,3}, {1587,9532,3},{1590,9532,3},{1593,9535,3},{1597,9537,3},{1605,9537,3},{1610,9533,3}, {1613,9537,3},{1610,9532,3},{1605,9535,3},{1598,9533,3},{1587,9528,3},{1587,9523,3}, {1588,9523,3},{1597,9528,3},{1600,9527,3},{1593,9523,3},{1588,9522,3},{1578,9522,3}, {1578,9518,3},{1578,9515,3},{1582,9512,3},{1590,9512,3},{1603,9513,3},{1598,9510,3}, {1603,9510,3},{1607,9512,3},{1608,9513,3},{1612,9518,3},{1612,9523,3},{1613,9515,3}, {1615,9513,3},{1605,9507,3},{1595,9507,3},{1580,9503,3},{1578,9500,3},{1578,9498,3}, {1575,9497,3},{1578,9485,3},{1580,9485,3},{1582,9488,3},{1583,9490,3},{1587,9488,3}, {1585,9487,3},{1583,9485,3},{1585,9485,3},{1588,9485,3},{1595,9483,3},{1600,9487,3}, {1600,9490,3},{1602,9492,3},{1603,9492,3},{1602,9488,3},{1613,9487,3},{1618,9490,3}, {1620,9497,3},{1625,9498,3},{1622,9497,3},{1620,9490,3},{1618,9487,3},{1613,9485,3}, {1603,9487,3},{1600,9483,3},{1595,9478,3},{1585,9472,3},{1585,9468,3},{1585,9465,3}, {1587,9463,3},{1590,9463,3},{1588,9462,3},{1592,9460,3},{1595,9467,3},{1600,9473,3}, {1607,9473,3},{1610,9477,3},{1613,9477,3},{1615,9480,3},{1613,9477,3},{1610,9475,3}, {1607,9472,3},{1602,9472,3},{1595,9462,3},{1593,9458,3},{1595,9457,3},{1597,9457,3}, {1603,9463,3},{1612,9468,3},{1620,9468,3},{1625,9467,3},{1635,9470,3},{1635,9473,3}, {1638,9472,3},{1648,9470,3},{1652,9473,3},{1650,9468,3},{1653,9467,3},{1635,9468,3}, {1627,9463,3},{1623,9458,3},{1625,9458,3},{1630,9462,3},{1632,9462,3},{1633,9465,3}, {1635,9463,3},{1633,9460,3},{1630,9460,3},{1627,9457,3},{1630,9453,3},{1630,9452,3}, {1618,9452,3},{1612,9445,3},{1607,9443,3},{1605,9437,3},{1598,9433,3},{1598,9428,3}, {1597,9425,3},{1603,9420,3},{1623,9423,3},{1627,9425,3},{1635,9423,3},{1637,9425,3}, {1648,9427,3},{1653,9427,3},{1653,9428,3},{1652,9432,3},{1655,9435,3},{1658,9435,3}, {1660,9433,3},{1663,9437,3},{1672,9437,3},{1680,9440,3},{1688,9438,3},{1690,9442,3}, {1695,9447,3},{1695,9445,3},{1707,9445,3},{1712,9448,3},{1715,9445,3},{1718,9445,3}, {1718,9447,3},{1717,9453,3},{1720,9453,3},{1722,9450,3},{1728,9452,3},{1728,9453,3}, {1732,9455,3},{1730,9460,3},{1733,9457,3},{1740,9457,3},{1750,9457,3},{1755,9455,3}, {1758,9457,3},{1755,9460,3},{1755,9462,3},{1763,9458,3},{1765,9457,3},{1773,9455,3}, {1780,9448,3},{1790,9448,3},{1798,9443,3},{1802,9448,3},{1805,9448,3},{1817,9445,3}, {1818,9443,3},{1822,9443,3},{1825,9440,3},{1825,9433,3},{1830,9433,3},{1828,9438,3}, {1830,9440,3},{1835,9440,3},{1837,9435,3},{1843,9432,3},{1853,9425,3},{1853,9427,3}, {1865,9423,3},{1873,9415,3},{1872,9417,3},{1873,9418,3},{1872,9422,3},{1873,9427,3}, {1875,9425,3},{1873,9422,3},{1878,9418,3},{1882,9415,3},{1885,9415,3},{1887,9413,3}, {1882,9412,3},{1885,9403,3},{1890,9403,3},{1893,9405,3},{1900,9403,3},{1903,9407,3}, {1905,9405,3},{1908,9410,3},{1908,9403,3},{1912,9403,3},{1915,9403,3},{1923,9407,3}, {1925,9405,3},{1930,9405,3},{1938,9408,3},{1938,9407,3},{1932,9403,3},{1920,9403,3}, {1915,9400,3},{1915,9397,3},{1917,9393,3},{1920,9393,3},{1920,9392,3},{1912,9395,3}, {1907,9395,3},{1902,9395,3},{1897,9398,3},{1890,9397,3},{1888,9393,3},{1885,9393,3}, {1893,9383,3},{1897,9373,3},{1902,9372,3},{1902,9368,3},{1907,9367,3},{1913,9365,3}, {1917,9360,3},{1922,9357,3},{1932,9350,3},{1935,9348,3},{1938,9348,3},{1940,9348,3}, {1942,9350,3},{1943,9355,3},{1940,9357,3},{1940,9362,3},{1935,9363,3},{1933,9362,3}, {1930,9367,3},{1928,9372,3},{1927,9372,3},{1927,9373,3},{1925,9373,3},{1923,9382,3}, {1927,9388,3},{1938,9400,3},{1942,9398,3},{1947,9398,3},{1945,9395,3},{1947,9392,3}, {1947,9390,3},{1950,9393,3},{1950,9387,3},{1957,9380,3},{1960,9378,3},{1963,9373,3}, {1965,9373,3},{1965,9375,3},{1965,9380,3},{1968,9380,3},{1970,9382,3},{1972,9382,3}, {1973,9380,3},{1968,9377,3},{1967,9375,3},{1968,9372,3},{1972,9372,3},{1973,9372,3}, {1975,9375,3},{1977,9372,3},{1977,9370,3},{1972,9368,3},{1972,9363,3},{1975,9363,3}, {1972,9362,3},{1972,9360,3},{1978,9360,3},{1982,9363,3},{1987,9365,3},{1988,9373,3}, {1990,9372,3},{1992,9375,3},{1993,9372,3},{1992,9370,3},{1990,9362,3},{1988,9358,3}, {1988,9355,3},{1992,9357,3},{1993,9352,3},{1995,9353,3},{1995,9352,3},{1997,9352,3}, {1998,9353,3},{2000,9352,3},{1997,9350,3},{1998,9347,3},{1995,9345,3},{1997,9342,3}, {2008,9338,3},{2002,9337,3},{2008,9335,3},{2010,9333,3},{2005,9330,3},{2005,9325,3}, {2007,9318,3},{2005,9317,3},{2008,9313,3},{1992,9320,3},{1983,9325,3},{1982,9323,3}, {1983,9322,3},{2000,9313,3},{1998,9310,3},{1995,9310,3},{1985,9313,3},{1980,9317,3}, {1983,9315,3},{1985,9312,3},{1997,9305,3},{2000,9305,3},{2007,9298,3},{2012,9297,3}, {2013,9307,3},{2015,9307,3},{2017,9308,3},{2015,9308,3},{2018,9312,3},{2022,9312,3}, {2017,9303,3},{2013,9300,3},{2017,9298,3},{2022,9298,3},{2030,9303,3},{2033,9303,3}, {2038,9310,3},{2040,9308,3},{2043,9310,3},{2042,9308,3},{2038,9307,3},{2037,9305,3}, {2038,9303,3},{2043,9303,3},{2052,9308,3},{2055,9308,3},{2045,9302,3},{2030,9300,3}, {2020,9292,3},{2012,9290,3},{2012,9287,3},{2022,9277,3},{2027,9280,3},{2030,9287,3}, {2032,9293,3},{2032,9290,3},{2035,9288,3},{2035,9287,3},{2038,9283,3},{2040,9285,3}, {2045,9282,3},{2045,9283,3},{2048,9283,3},{2050,9280,3},{2047,9280,3},{2045,9277,3}, {2047,9277,3},{2048,9277,3},{2048,9275,3},{2058,9272,3},{2070,9263,3},{2058,9272,3}, {2050,9272,3},{2043,9273,3},{2032,9273,3},{2028,9273,3},{2025,9273,3},{2028,9272,3}, {2043,9265,3},{2053,9253,3},{2062,9250,3},{2065,9247,3},{2067,9245,3},{2070,9237,3}, {2078,9237,3},{2095,9228,3},{2105,9227,3},{2113,9220,3},{2118,9220,3},{2123,9222,3}, {2130,9220,3},{2133,9220,3},{2137,9225,3},{2142,9227,3},{2142,9232,3},{2147,9237,3}, {2143,9242,3},{2137,9243,3},{2135,9248,3},{2138,9255,3},{2130,9258,3},{2125,9260,3}, {2130,9267,3},{2147,9262,3},{2163,9260,3},{2180,9260,3},{2188,9262,3},{2198,9260,3}, {2202,9265,3},{2203,9268,3},{2210,9268,3},{2210,9270,3},{2215,9270,3},{2217,9272,3}, {2205,9287,3},{2198,9288,3},{2195,9290,3},{2200,9292,3},{2202,9293,3},{2203,9295,3}, {2200,9300,3},{2207,9298,3},{2210,9302,3},{2212,9305,3},{2220,9305,3},{2222,9308,3}, {2218,9315,3},{2220,9317,3},{2223,9315,3},{2225,9320,3},{2243,9318,3},{2247,9313,3}, {2253,9312,3},{2260,9313,3},{2267,9310,3},{2278,9310,3},{2288,9312,3},{2288,9313,3}, {2292,9315,3},{2292,9317,3},{2302,9313,3},{2305,9313,3},{2307,9320,3},{2302,9323,3}, {2302,9330,3},{2307,9335,3},{2312,9335,3},{2313,9338,3},{2317,9337,3},{2323,9338,3}, {2335,9337,3},{2338,9340,3},{2350,9340,3},{2360,9342,3},{2365,9342,3},{2368,9343,3}, {2373,9340,3},{2387,9338,3},{2392,9338,3},{2398,9333,3},{2407,9333,3},{2408,9337,3}, {2408,9340,3},{2397,9348,3},{2397,9353,3},{2398,9357,3},{2397,9360,3},{2400,9362,3}, {2402,9363,3},{2400,9375,3},{2393,9382,3},{2395,9393,3},{2392,9403,3},{2390,9405,3}, {2388,9410,3},{2385,9412,3},{2385,9413,3},{2387,9415,3},{2393,9417,3},{2400,9422,3}, {2415,9425,3},{2428,9432,3},{2433,9432,3},{2437,9437,3},{2440,9435,3},{2442,9438,3}, {2448,9438,3},{2450,9442,3},{2457,9445,3},{2462,9452,3},{2472,9453,3},{2472,9458,3}, {2472,9460,3},{2477,9462,3},{2482,9462,3},{2487,9467,3},{2493,9470,3},{2498,9470,3}, {2502,9473,3},{2513,9473,3},{2518,9460,3},{2522,9458,3},{2528,9458,3},{2533,9462,3}, {2540,9463,3},{2547,9470,3},{2550,9473,3},{2550,9478,3},{2557,9485,3},{2557,9488,3}, {2558,9488,3},{2573,9500,3},{2575,9503,3},{2593,9502,3},{2597,9508,3},{2605,9518,3}, {2608,9517,3},{2612,9512,3},{2618,9510,3},{2620,9512,3},{2622,9508,3},{2633,9507,3}, {2642,9510,3},{2648,9507,3},{2657,9515,3},{2662,9513,3},{2663,9520,3},{2668,9523,3}, {2668,9525,3},{2665,9525,3},{2665,9527,3},{2672,9543,3},{2682,9552,3},{2682,9562,3}, {2688,9565,3},{2688,9572,3},{2697,9575,3},{2700,9580,3},{2703,9590,3},{2708,9597,3}, {2717,9602,3},{2723,9610,3},{2727,9620,3},{2728,9630,3},{2730,9643,3},{2730,9652,3}, {2732,9657,3},{2737,9662,3},{2735,9665,3},{2733,9667,3},{2737,9672,3},{2735,9678,3}, {2732,9682,3},{2727,9685,3},{2725,9688,3},{2722,9687,3},{2718,9688,3},{2713,9702,3}, {2710,9707,3},{2710,9710,3},{2708,9713,3},{2713,9717,3},{2717,9713,3},{2718,9713,3}, {2722,9710,3},{2745,9690,3},{2747,9690,3},{2750,9692,3},{2758,9688,3},{2762,9688,3}, {2767,9693,3},{2767,9697,3},{2773,9702,3},{2775,9708,3},{2778,9708,3},{2780,9712,3}, {2790,9723,3},{2792,9728,3},{2790,9732,3},{2788,9732,3},{2790,9737,3},{2795,9737,3}, {2802,9740,3},{2808,9732,3},{2817,9733,3},{2820,9737,3},{2822,9735,3},{2825,9737,3}, {2827,9740,3},{2830,9742,3},{2830,9747,3},{2835,9748,3},{2838,9747,3},{2845,9752,3}, {2855,9757,3},{2855,9758,3},{2848,9763,3},{2852,9768,3},{2852,9772,3},{2842,9775,3}, {2835,9780,3},{2835,9783,3},{2837,9785,3},{2838,9790,3},{2835,9793,3},{2830,9797,3}, {2828,9802,3},{2822,9802,3},{2822,9807,3},{2818,9810,3},{2813,9815,3},{2802,9815,3}, {2797,9813,3},{2795,9818,3},{2792,9820,3},{2790,9820,3},{2788,9817,3},{2787,9817,3}, {2785,9818,3},{2782,9823,3},{2780,9822,3},{2777,9823,3},{2773,9823,3},{2768,9827,3}, {2755,9832,3},{2753,9835,3},{2755,9840,3},{2755,9842,3},{2760,9843,3},{2768,9843,3}, {2765,9852,3},{2767,9855,3},{2760,9860,3},{2760,9863,3},{2762,9867,3},{2760,9870,3}, {2758,9870,3},{2747,9868,3},{2738,9870,3},{2737,9873,3},{2733,9873,3},{2720,9870,3}, {2715,9872,3},{2710,9870,3},{2708,9875,3},{2705,9877,3},{2700,9873,3},{2690,9877,3}, {2687,9873,3},{2678,9878,3},{2672,9875,3},{2670,9877,3},{2660,9878,3},{2658,9875,3}, {2638,9873,3},{2632,9868,3},{2627,9867,3},{2625,9867,3},{2625,9870,3},{2618,9873,3}, {2617,9872,3},{2613,9870,3},{2610,9867,3},{2610,9865,3},{2615,9865,3},{2612,9857,3}, {2605,9860,3},{2600,9860,3},{2598,9865,3},{2592,9868,3},{2590,9872,3},{2587,9872,3}, {2580,9863,3},{2585,9853,3},{2580,9848,3},{2577,9848,3},{2573,9845,3},{2568,9843,3}, {2565,9840,3},{2558,9838,3},{2555,9833,3},{2555,9830,3},{2558,9827,3},{2562,9817,3}, {2555,9817,3},{2550,9813,3},{2547,9815,3},{2538,9813,3},{2538,9810,3},{2532,9807,3}, {2530,9802,3},{2522,9793,3},{2522,9790,3},{2527,9787,3},{2527,9783,3},{2513,9778,3}, {2508,9775,3},{2508,9772,3},{2492,9773,3},{2485,9780,3},{2483,9777,3},{2483,9768,3}, {2475,9755,3},{2467,9757,3},{2457,9757,3},{2443,9753,3},{2443,9767,3},{2440,9768,3}, {2435,9772,3},{2433,9767,3},{2430,9767,3},{2428,9775,3},{2425,9777,3},{2422,9773,3}, {2417,9775,3},{2412,9772,3},{2407,9765,3},{2400,9762,3},{2397,9755,3},{2393,9753,3}, {2390,9762,3},{2385,9765,3},{2387,9767,3},{2388,9772,3},{2395,9778,3},{2395,9783,3}, {2403,9792,3},{2403,9795,3},{2408,9805,3},{2413,9822,3},{2410,9835,3},{2413,9843,3}, {2412,9855,3},{2408,9860,3},{2412,9872,3},{2413,9885,3},{2417,9888,3},{2412,9890,3}, {2410,9890,3},{2400,9875,3},{2397,9868,3},{2395,9870,3},{2392,9868,3},{2383,9870,3}, {2380,9868,3},{2377,9882,3},{2370,9882,3},{2368,9885,3},{2363,9885,3},{2362,9888,3}, {2355,9882,3},{2353,9880,3},{2348,9882,3},{2348,9888,3},{2342,9892,3},{2337,9892,3}, {2333,9888,3},{2333,9892,3},{2332,9893,3},{2318,9888,3},{2318,9893,3},{2317,9902,3}, {2317,9907,3},{2313,9905,3},{2310,9912,3},{2312,9915,3},{2310,9923,3},{2312,9927,3}, {2312,9932,3},{2313,9935,3},{2310,9940,3},{2308,9950,3},{2307,9952,3},{2302,9952,3}, {2293,9957,3},{2292,9955,3},{2292,9953,3},{2292,9948,3},{2295,9945,3},{2293,9943,3}, {2287,9943,3},{2278,9938,3},{2275,9933,3},{2260,9938,3},{2253,9937,3},{2250,9938,3}, {2243,9933,3},{2238,9927,3},{2235,9927,3},{2232,9925,3},{2227,9923,3},{2220,9918,3}, {2217,9920,3},{2217,9917,3},{2212,9923,3},{2210,9937,3},{2213,9947,3},{2210,9952,3}, {2212,9957,3},{2208,9962,3},{2210,9965,3},{2207,9968,3},{2203,9970,3},{2207,9975,3}, {2205,9982,3},{2202,9985,3},{2203,9987,3},{2207,9988,3},{2205,9997,3},{2203,9997,3}, {2197,9998,3},{2185,9995,3},{2182,9995,3},{2170,10000,3},{2168,10012,3}, {2165,10017,3},{2163,10013,3},{2158,10010,3},{2150,10012,3},{2148,10015,3}, {2145,10018,3},{2143,10022,3},{2145,10022,3},{2148,10030,3},{2153,10035,3}, {2153,10038,3},{2153,10043,3},{2145,10048,3},{2147,10052,3},{2145,10057,3}, {2145,10060,3},{2148,10067,3},{2150,10068,3},{2152,10073,3},{2158,10080,3}, {2163,10083,3},{2165,10087,3},{2168,10088,3},{2172,10102,3},{2177,10112,3}, {2170,10112,3},{2163,10117,3},{2157,10115,3},{2153,10117,3},{2148,10113,3}, {2140,10100,3},{2137,10090,3},{2130,10085,3},{2130,10078,3},{2130,10072,3}, {2118,10070,3},{2113,10067,3},{2105,10062,3},{2102,10055,3},{2098,10055,3}, {2095,10052,3},{2088,10052,3},{2087,10052,3},{2087,10055,3},{2088,10063,3}, {2087,10065,3},{2083,10058,3},{2080,10052,3},{2083,10037,3},{2078,10035,3}, {2075,10025,3},{2063,10017,3},{2040,10013,3},{2035,10008,3},{2035,10007,3}, {2038,10007,3},{2038,10002,3},{2045,9997,3},{2042,9987,3},{2033,9982,3}, {2033,9973,3},{2032,9967,3},{2035,9953,3},{2038,9945,3},{2037,9945,3},{2032,9950,3}, {2025,9952,3},{2020,9955,3},{2015,9953,3},{2015,9952,3},{2010,9947,3},{2007,9933,3}, {2010,9927,3},{2013,9918,3},{2010,9908,3},{2005,9905,3},{1997,9903,3},{1993,9903,3}, {1993,9902,3},{1985,9903,3},{1980,9900,3},{1978,9900,3},{1978,9897,3},{1975,9892,3}, {1982,9883,3},{1977,9878,3},{1973,9865,3},{1972,9862,3},{1970,9858,3},{1968,9857,3}, {1972,9852,3},{1970,9847,3},{1970,9833,3},{1967,9827,3},{1968,9825,3},{1972,9823,3}, {1973,9820,3},{1978,9813,3},{1977,9810,3},{1980,9808,3},{1980,9805,3},{1972,9803,3}, {1965,9803,3},{1963,9800,3},{1960,9797,3},{1957,9790,3},{1957,9787,3},{1953,9787,3}, {1950,9788,3},{1940,9780,3},{1930,9783,3},{1928,9778,3},{1922,9783,3},{1910,9783,3}, {1903,9775,3},{1897,9773,3},{1893,9768,3},{1887,9775,3},{1873,9777,3},{1868,9778,3}, {1857,9777,3},{1857,9767,3},{1855,9762,3},{1853,9762,3},{1848,9753,3},{1850,9745,3}, {1855,9742,3},{1855,9737,3},{1858,9737,3},{1855,9735,3},{1842,9743,3},{1833,9745,3}, {1828,9748,3},{1827,9753,3},{1832,9755,3},{1833,9758,3},{1832,9762,3},{1828,9765,3}, {1827,9765,3},{1825,9762,3},{1823,9762,3},{1815,9768,3},{1812,9768,3},{1808,9770,3}, {1805,9768,3},{1805,9772,3},{1797,9775,3},{1795,9773,3},{1793,9770,3},{1787,9768,3}, {1783,9770,3},{1775,9777,3},{1770,9778,3},{1753,9795,3},{1750,9802,3},{1747,9803,3}, {1745,9805,3},{1742,9805,3},{1738,9812,3},{1732,9812,3},{1722,9822,3},{1722,9825,3}, {1720,9825,3},{1713,9830,3},{1712,9830,3},{1710,9832,3},{1708,9832,3},{1705,9833,3}, {1705,9842,3},{1702,9847,3},{1698,9847,3},{1698,9848,3},{1697,9848,3},{1693,9852,3}, {1692,9850,3},{1688,9855,3},{1685,9855,3},{1687,9852,3},{1683,9852,3},{1680,9855,3}, {1680,9853,3},{1678,9853,3},{1678,9850,3},{1673,9848,3},{1672,9852,3},{1663,9853,3}, {1662,9858,3},{1658,9860,3},{1655,9858,3},{1645,9867,3},{1642,9865,3},{1638,9867,3}, {1628,9868,3},{1627,9872,3},{1633,9875,3},{1638,9882,3},{1645,9883,3},{1648,9887,3}, {1643,9887,3},{1638,9893,3},{1632,9892,3},{1627,9892,3},{1622,9887,3},{1613,9885,3}, {1610,9880,3},{1612,9878,3},{1613,9870,3},{1612,9868,3},{1608,9867,3},{1605,9865,3}, {1605,9857,3},{1602,9860,3},{1597,9862,3},{1593,9858,3},{1587,9862,3},{1572,9857,3}, {1567,9858,3},{1558,9857,3},{1545,9860,3},{1535,9858,3},{1533,9857,3},{1537,9855,3}, {1538,9850,3},{1537,9847,3},{1537,9843,3},{1532,9842,3},{1532,9840,3},{1530,9840,3}, {1528,9842,3},{1527,9842,3},{1528,9838,3},{1530,9832,3},{1523,9827,3},{1522,9820,3}, {1518,9822,3},{1510,9818,3},{1505,9823,3},{1500,9822,3},{1492,9825,3},{1487,9825,3}, {1485,9827,3},{1480,9827,3},{1477,9830,3},{1472,9832,3},{1460,9845,3},{1458,9847,3}, {1453,9847,3},{1453,9850,3},{1438,9857,3},{1437,9860,3},{1432,9862,3},{1428,9868,3}, {1428,9873,3},{1422,9877,3},{1415,9887,3},{1412,9890,3},{1408,9897,3},{1403,9897,3}, {1402,9900,3},{1393,9903,3},{1388,9912,3},{1383,9912,3},{1377,9913,3},{1375,9917,3}, {1372,9918,3},{1363,9917,3},{1358,9918,3},{1357,9917,3},{1347,9922,3},{1340,9922,3}, {1333,9922,3},{1332,9920,3},{1322,9922,3},{1318,9912,3},{1313,9913,3},{1305,9912,3}, {1297,9920,3},{1292,9918,3},{1283,9920,3},{1280,9923,3},{1272,9925,3},{1272,9928,3}, {1267,9930,3},{1265,9935,3},{1260,9938,3},{1260,9942,3},{1258,9943,3},{1250,9943,3}, {1247,9942,3},{1240,9945,3},{1232,9945,3},{1227,9948,3},{1222,9948,3},{1218,9950,3}, {1213,9947,3},{1213,9957,3},{1205,9955,3},{1202,9955,3},{1200,9960,3},{1197,9960,3}, {1188,9958,3},{1183,9963,3},{1183,9967,3},{1173,9963,3},{1168,9960,3},{1163,9957,3}, {1163,9948,3},{1162,9947,3},{1152,9947,3},{1147,9945,3},{1145,9940,3},{1138,9940,3}, {1132,9933,3},{1128,9932,3},{1123,9928,3},{1110,9923,3},{1108,9920,3},{1103,9917,3}, {1102,9910,3},{1097,9908,3},{1095,9907,3},{1097,9902,3},{1092,9900,3},{1088,9902,3}, {1083,9900,3},{1083,9898,3},{1082,9897,3},{1082,9893,3},{1082,9892,3},{1078,9890,3}, {1077,9887,3},{1068,9878,3},{1062,9877,3},{1058,9880,3},{1052,9882,3},{1047,9880,3}, {1042,9877,3},{1035,9875,3},{2377,6820,131},{2388,6822,3},{2390,6828,3}, {2392,6827,3},{2395,6830,3},{2392,6832,3},{2392,6833,3},{2393,6835,3},{2397,6835,3}, {2397,6837,3},{2395,6838,3},{2397,6838,3},{2397,6875,3},{2432,6875,3},{2433,6878,3}, {2433,6882,3},{2428,6885,3},{2427,6883,3},{2423,6885,3},{2425,6887,3},{2432,6890,3}, {2433,6893,3},{2425,6898,3},{2428,6905,3},{2430,6908,3},{2425,6918,3},{2428,6925,3}, {2430,6932,3},{2428,6960,3},{2417,6972,3},{2417,7003,3},{2420,7007,3},{2432,7012,3}, {2433,7025,3},{2437,7032,3},{2437,7038,3},{2442,7043,3},{2443,7058,3},{2442,7060,3}, {2437,7057,3},{2428,7058,3},{2425,7065,3},{2423,7072,3},{2423,7078,3},{2427,7088,3}, {2432,7087,3},{2437,7093,3},{2437,7097,3},{2437,7103,3},{2440,7105,3},{2442,7110,3}, {2443,7110,3},{2445,7108,3},{2445,7100,3},{2448,7100,3},{2453,7100,3},{2455,7098,3}, {2460,7098,3},{2465,7100,3},{2468,7108,3},{2475,7105,3},{2483,7102,3},{2493,7095,3}, {2515,7088,3},{2527,7075,3},{2533,7073,3},{2540,7068,3},{2568,7067,3},{2572,7062,3}, {2568,7053,3},{2567,7038,3},{2570,7028,3},{2580,7022,3},{2583,7018,3},{2590,7013,3}, {2598,7008,3},{2608,7010,3},{2625,7017,3},{2632,7017,3},{2638,7018,3},{2643,7018,3}, {2653,7018,3},{2657,7015,3},{2660,7010,3},{2658,6985,3},{2660,6980,3},{2667,6972,3}, {2675,6952,3},{2682,6948,3},{2700,6952,3},{2718,6958,3},{2728,6970,3},{2732,6975,3}, {2742,6988,3},{2750,6993,3},{2760,7003,3},{2783,7013,3},{2795,7028,3},{2802,7037,3}, {2805,7048,3},{2803,7053,3},{2800,7058,3},{2793,7067,3},{2787,7067,3},{2773,7073,3}, {2770,7083,3},{2772,7093,3},{2785,7123,3},{2787,7140,3},{2788,7163,3},{2797,7190,3}, {2812,7192,3},{2822,7200,3},{2833,7213,3},{2840,7220,3},{2868,7230,3},{2877,7238,3}, {2895,7273,3},{2903,7295,3},{2915,7298,3},{2925,7308,3},{2957,7327,3},{2995,7340,3}, {3002,7358,3},{3007,7380,3},{3020,7397,3},{3032,7393,3},{3033,7390,3},{3037,7385,3}, {3038,7387,3},{3040,7390,3},{3042,7390,3},{3042,7393,3},{3048,7393,3},{3047,7397,3}, {3050,7397,3},{3053,7400,3},{3053,7408,3},{3062,7410,3},{3068,7420,3},{3072,7423,3}, {3073,7427,3},{3077,7427,3},{3080,7430,3},{3083,7432,3},{3085,7437,3},{3090,7437,3}, {3092,7442,3},{3097,7447,3},{3098,7452,3},{3107,7455,3},{3102,7463,3},{3105,7465,3}, {3107,7468,3},{3108,7468,3},{3112,7463,3},{3112,7457,3},{3115,7453,3},{3128,7455,3}, {3140,7458,3},{3145,7463,3},{3148,7463,3},{3152,7460,3},{3160,7460,3},{3173,7452,3}, {3177,7452,3},{3177,7455,3},{3182,7453,3},{3188,7465,3},{3195,7470,3},{3195,7478,3}, {3202,7482,3},{3202,7487,3},{3203,7488,3},{3203,7497,3},{3207,7498,3},{3207,7503,3}, {3208,7502,3},{3210,7502,3},{3210,7505,3},{3207,7510,3},{3208,7513,3},{3208,7517,3}, {3210,7517,3},{3212,7518,3},{3215,7525,3},{3215,7530,3},{3217,7533,3},{3220,7533,3}, {3223,7537,3},{3228,7538,3},{3235,7532,3},{3240,7522,3},{3242,7515,3},{3247,7507,3}, {3248,7502,3},{3245,7493,3},{3248,7488,3},{3248,7485,3},{3247,7475,3},{3248,7472,3}, {3250,7468,3},{3260,7465,3},{3267,7468,3},{3273,7467,3},{3283,7472,3},{3283,7470,3}, {3282,7463,3},{3277,7463,3},{3275,7463,3},{3275,7458,3},{3277,7455,3},{3273,7452,3}, {3277,7448,3},{3278,7447,3},{3277,7442,3},{3303,7432,3},{3305,7425,3},{3317,7412,3}, {3322,7402,3},{3325,7400,3},{3327,7402,3},{3328,7410,3},{3332,7417,3},{3342,7418,3}, {3358,7413,3},{3360,7407,3},{3365,7400,3},{3368,7400,3},{3375,7402,3},{3378,7405,3}, {3382,7413,3},{3388,7423,3},{3395,7430,3},{3398,7428,3},{3405,7422,3},{3403,7402,3}, {3405,7397,3},{3407,7395,3},{3410,7393,3},{3413,7395,3},{3415,7403,3},{3418,7407,3}, {3428,7407,3},{3432,7405,3},{3433,7398,3},{3433,7387,3},{3435,7385,3},{3432,7377,3}, {3433,7375,3},{3440,7378,3},{3445,7387,3},{3455,7392,3},{3457,7395,3},{3462,7393,3}, {3465,7395,3},{3467,7397,3},{3468,7405,3},{3465,7417,3},{3470,7417,3},{3473,7420,3}, {3478,7432,3},{3478,7437,3},{3477,7455,3},{3472,7462,3},{3468,7470,3},{3470,7482,3}, {3467,7495,3},{3467,7517,3},{3462,7527,3},{3450,7540,3},{3447,7553,3},{3450,7582,3}, {3463,7610,3},{3465,7620,3},{3463,7635,3},{3470,7640,3},{3475,7650,3},{3478,7663,3}, {3475,7673,3},{3473,7682,3},{3475,7690,3},{3478,7695,3},{3487,7695,3},{3492,7695,3}, {3497,7700,3},{3500,7705,3},{3505,7707,3},{3510,7705,3},{3513,7708,3},{3515,7715,3}, {3518,7720,3},{3522,7727,3},{3523,7732,3},{3527,7737,3},{3530,7743,3},{3533,7748,3}, {3535,7753,3},{3538,7760,3},{3542,7765,3},{3543,7770,3},{3547,7777,3},{3550,7782,3}, {3547,7792,3},{3548,7795,3},{3550,7797,3},{3555,7797,3},{3557,7800,3},{3555,7813,3}, {3562,7817,3},{3567,7827,3},{3570,7830,3},{3572,7838,3},{3577,7843,3},{3577,7853,3}, {3582,7863,3},{3585,7868,3},{3592,7875,3},{3592,7883,3},{3590,7893,3},{3592,7902,3}, {3595,7912,3},{3595,7923,3},{3598,7933,3},{3597,7943,3},{3593,7945,3},{3588,7943,3}, {3585,7947,3},{3587,7957,3},{3587,7960,3},{3583,7960,3},{3582,7965,3},{3580,7967,3}, {3577,7963,3},{3565,7970,3},{3563,7982,3},{3557,7983,3},{3557,7987,3},{3562,7992,3}, {3560,7997,3},{3545,8002,3},{3542,8005,3},{3542,8008,3},{3545,8013,3},{3557,8020,3}, {3555,8025,3},{3550,8030,3},{3552,8035,3},{3552,8038,3},{3547,8038,3},{3542,8038,3}, {3535,8030,3},{3532,8028,3},{3523,8030,3},{3520,8030,3},{3510,8020,3},{3490,8020,3}, {3485,8018,3},{3477,8010,3},{3467,8007,3},{3465,8002,3},{3467,7988,3},{3457,7985,3}, {3455,7977,3},{3453,7972,3},{3450,7973,3},{3445,7977,3},{3442,7972,3},{3443,7953,3}, {3440,7953,3},{3420,7958,3},{3418,7955,3},{3418,7952,3},{3412,7952,3},{3407,7947,3}, {3403,7943,3},{3402,7942,3},{3403,7913,3},{3400,7910,3},{3402,7897,3},{3397,7890,3}, {3383,7895,3},{3375,7902,3},{3372,7902,3},{3363,7903,3},{3362,7902,3},{3363,7895,3}, {3363,7892,3},{3357,7890,3},{3353,7893,3},{3340,7893,3},{3332,7900,3},{3328,7908,3}, {3322,7910,3},{3323,7915,3},{3320,7925,3},{3318,7937,3},{3317,7940,3},{3313,7940,3}, {3310,7937,3},{3297,7935,3},{3293,7938,3},{3288,7945,3},{3280,7947,3},{3275,7953,3}, {3265,7950,3},{3260,7945,3},{3253,7935,3},{3250,7932,3},{3252,7927,3},{3250,7917,3}, {3247,7912,3},{3242,7912,3},{3238,7910,3},{3238,7903,3},{3235,7897,3},{3237,7893,3}, {3243,7887,3},{3247,7878,3},{3257,7875,3},{3260,7878,3},{3263,7877,3},{3263,7870,3}, {3260,7868,3},{3258,7865,3},{3257,7857,3},{3258,7848,3},{3257,7842,3},{3253,7840,3}, {3242,7848,3},{3238,7845,3},{3235,7848,3},{3225,7848,3},{3223,7848,3},{3222,7855,3}, {3212,7860,3},{3205,7867,3},{3198,7877,3},{3182,7872,3},{3178,7870,3},{3175,7872,3}, {3173,7872,3},{3168,7875,3},{3167,7877,3},{3168,7878,3},{3165,7880,3},{3162,7885,3}, {3152,7872,3},{3148,7872,3},{3147,7877,3},{3145,7880,3},{3135,7877,3},{3130,7877,3}, {3128,7882,3},{3130,7885,3},{3130,7887,3},{3130,7890,3},{3137,7895,3},{3133,7900,3}, {3142,7902,3},{3143,7908,3},{3142,7912,3},{3140,7917,3},{3135,7917,3},{3133,7922,3}, {3130,7922,3},{3127,7925,3},{3123,7925,3},{3122,7928,3},{3115,7930,3},{3110,7940,3}, {3103,7942,3},{3102,7950,3},{3097,7955,3},{3093,7960,3},{3097,7967,3},{3098,7972,3}, {3098,7975,3},{3097,7988,3},{3088,7992,3},{3088,7997,3},{3085,8005,3},{3078,8008,3}, {3078,8012,3},{3080,8017,3},{3080,8020,3},{3077,8022,3},{3073,8025,3},{3068,8023,3}, {3068,8018,3},{3062,8023,3},{3057,8020,3},{3057,8023,3},{3057,8032,3},{3047,8053,3}, {3047,8060,3},{3040,8075,3},{3032,8082,3},{3027,8100,3},{3022,8103,3},{3020,8102,3}, {3018,8095,3},{3018,8092,3},{3022,8092,3},{3020,8088,3},{3017,8087,3},{3013,8087,3}, {3005,8077,3},{3002,8075,3},{3002,8072,3},{2997,8068,3},{2995,8060,3},{2985,8053,3}, {2980,8048,3},{2978,8042,3},{2975,8037,3},{2967,8038,3},{2965,8042,3},{2960,8040,3}, {2955,8035,3},{2952,8035,3},{2948,8028,3},{2945,8028,3},{2945,8025,3},{2942,8023,3}, {2938,8027,3},{2932,8028,3},{2932,8030,3},{2920,8028,3},{2922,8025,3},{2920,8023,3}, {2915,8025,3},{2913,8023,3},{2912,8017,3},{2910,8015,3},{2903,8012,3},{2900,8013,3}, {2895,8007,3},{2892,8005,3},{2883,8007,3},{2882,8013,3},{2877,8018,3},{2875,8025,3}, {2872,8027,3},{2870,8032,3},{2863,8035,3},{2863,8043,3},{2857,8052,3},{2858,8052,3}, {2865,8050,3},{2868,8053,3},{2868,8058,3},{2865,8058,3},{2863,8067,3},{2858,8070,3}, {2857,8075,3},{2853,8078,3},{2850,8083,3},{2850,8090,3},{2847,8090,3},{2843,8093,3}, {2843,8102,3},{2840,8102,3},{2837,8120,3},{2825,8125,3},{2820,8132,3},{2817,8132,3}, {2815,8130,3},{2815,8132,3},{2813,8132,3},{2813,8137,3},{2817,8138,3},{2815,8143,3}, {2813,8147,3},{2808,8148,3},{2802,8160,3},{2798,8163,3},{2797,8170,3},{2792,8178,3}, {2785,8188,3},{2787,8192,3},{2790,8195,3},{2792,8200,3},{2792,8208,3},{2787,8212,3}, {2785,8217,3},{2775,8232,3},{2773,8235,3},{2768,8242,3},{2767,8245,3},{2772,8270,3}, {2768,8272,3},{2755,8275,3},{2750,8277,3},{2750,8292,3},{2747,8295,3},{2745,8303,3}, {2745,8318,3},{2738,8325,3},{2735,8327,3},{2733,8332,3},{2735,8335,3},{2740,8338,3}, {2742,8340,3},{2745,8338,3},{2748,8340,3},{2747,8360,3},{2735,8385,3},{2737,8388,3}, {2742,8383,3},{2743,8383,3},{2745,8392,3},{2745,8403,3},{2752,8410,3},{2752,8415,3}, {2750,8415,3},{2747,8420,3},{2743,8422,3},{2745,8425,3},{2740,8428,3},{2738,8432,3}, {2733,8462,3},{2730,8465,3},{2722,8468,3},{2713,8468,3},{2705,8465,3},{2700,8475,3}, {2702,8485,3},{2697,8490,3},{2695,8497,3},{2690,8497,3},{2688,8503,3},{2685,8503,3}, {2687,8512,3},{2687,8518,3},{2685,8520,3},{2680,8518,3},{2677,8522,3},{2673,8533,3}, {2677,8538,3},{2680,8542,3},{2680,8548,3},{2687,8563,3},{2680,8573,3},{2677,8573,3}, {2667,8573,3},{2660,8580,3},{2660,8583,3},{2657,8585,3},{2662,8595,3},{2665,8597,3}, {2667,8603,3},{2660,8613,3},{2660,8620,3},{2658,8620,3},{2662,8628,3},{2662,8633,3}, {2660,8633,3},{2658,8633,3},{2658,8638,3},{2657,8642,3},{2653,8653,3},{2650,8657,3}, {2648,8662,3},{2642,8673,3},{2645,8677,3},{2643,8683,3},{2647,8688,3},{2650,8690,3}, {2653,8693,3},{2653,8700,3},{2658,8707,3},{2645,8710,3},{2642,8713,3},{2640,8715,3}, {2642,8725,3},{2637,8727,3},{2635,8733,3},{2635,8735,3},{2640,8737,3},{2643,8747,3}, {2642,8753,3},{2638,8760,3},{2640,8765,3},{2643,8768,3},{2642,8777,3},{2645,8778,3}, {2647,8778,3},{2643,8785,3},{2647,8788,3},{2647,8790,3},{2645,8793,3},{2643,8792,3}, {2640,8795,3},{2637,8802,3},{2643,8810,3},{2648,8812,3},{2653,8810,3},{2660,8813,3}, {2667,8817,3},{2677,8820,3},{2687,8818,3},{2693,8813,3},{2698,8812,3},{2703,8807,3}, {2705,8803,3},{2712,8800,3},{2715,8802,3},{2723,8802,3},{2733,8807,3},{2740,8803,3}, {2743,8807,3},{2748,8805,3},{2753,8805,3},{2758,8808,3},{2760,8812,3},{2778,8818,3}, {2782,8818,3},{2785,8820,3},{2787,8815,3},{2790,8812,3},{2795,8815,3},{2798,8840,3}, {2803,8848,3},{2803,8853,3},{2807,8855,3},{2812,8863,3},{2808,8867,3},{2807,8875,3}, {2800,8883,3},{2793,8883,3},{2790,8887,3},{2787,8888,3},{2767,8883,3},{2755,8877,3}, {2752,8878,3},{2745,8878,3},{2743,8878,3},{2738,8882,3},{2738,8885,3},{2732,8892,3}, {2728,8890,3},{2725,8880,3},{2715,8875,3},{2713,8880,3},{2708,8887,3},{2695,8888,3}, {2698,8892,3},{2697,8895,3},{2693,8895,3},{2692,8898,3},{2693,8903,3},{2688,8908,3}, {2683,8910,3},{2682,8913,3},{2682,8920,3},{2682,8927,3},{2685,8930,3},{2687,8937,3}, {2680,8947,3},{2682,8953,3},{2677,8965,3},{2673,8962,3},{2672,8963,3},{2673,8968,3}, {2670,8977,3},{2670,8985,3},{2673,8985,3},{2672,8990,3},{2675,9015,3},{2678,9018,3}, {2682,9018,3},{2685,9022,3},{2685,9030,3},{2690,9035,3},{2690,9038,3},{2680,9057,3}, {2677,9070,3},{2678,9103,3},{2682,9108,3},{2680,9123,3},{2678,9128,3},{2678,9132,3}, {2680,9138,3},{2688,9142,3},{2687,9150,3},{2680,9155,3},{2682,9162,3},{2680,9167,3}, {2682,9170,3},{2680,9172,3},{2687,9185,3},{2685,9187,3},{2682,9188,3},{2680,9190,3}, {2683,9192,3},{2685,9190,3},{2687,9193,3},{2690,9192,3},{2685,9198,3},{2685,9202,3}, {2687,9208,3},{2690,9210,3},{2693,9212,3},{2702,9208,3},{2708,9202,3},{2710,9202,3}, {2717,9202,3},{2718,9205,3},{2725,9207,3},{2728,9212,3},{2737,9208,3},{2748,9200,3}, {2745,9195,3},{2745,9187,3},{2742,9178,3},{2742,9177,3},{2745,9177,3},{2748,9167,3}, {2755,9162,3},{2765,9160,3},{2767,9160,3},{2772,9165,3},{2777,9165,3},{2777,9183,3}, {2773,9188,3},{2773,9197,3},{2773,9202,3},{2777,9207,3},{2778,9208,3},{2782,9213,3}, {2782,9225,3},{2787,9225,3},{2787,9227,3},{2780,9230,3},{2780,9233,3},{2785,9235,3}, {2780,9238,3},{2782,9240,3},{2787,9242,3},{2785,9243,3},{2783,9245,3},{2787,9255,3}, {2790,9258,3},{2792,9263,3},{2797,9272,3},{2805,9273,3},{2807,9267,3},{2813,9268,3}, {2820,9280,3},{2818,9282,3},{2820,9288,3},{2825,9293,3},{2827,9298,3},{2837,9308,3}, {2838,9313,3},{2863,9323,3},{2863,9328,3},{2867,9332,3},{2868,9357,3},{2868,9365,3}, {2872,9370,3},{2870,9373,3},{2875,9380,3},{2877,9385,3},{2878,9390,3},{2880,9390,3}, {2880,9393,3},{2883,9393,3},{2883,9400,3},{2887,9405,3},{2888,9405,3},{2897,9403,3}, {2898,9413,3},{2908,9422,3},{2915,9428,3},{2915,9435,3},{2920,9440,3},{2922,9442,3}, {2922,9455,3},{2927,9457,3},{2933,9463,3},{2932,9470,3},{2927,9475,3},{2922,9480,3}, {2917,9480,3},{2918,9487,3},{2915,9495,3},{2912,9502,3},{2913,9502,3},{2917,9498,3}, {2915,9502,3},{2915,9508,3},{2912,9512,3},{2910,9522,3},{2907,9525,3},{2903,9538,3}, {2905,9547,3},{2913,9550,3},{2913,9555,3},{2922,9553,3},{2922,9558,3},{2925,9558,3}, {2925,9563,3},{2930,9568,3},{2930,9572,3},{2935,9577,3},{2937,9583,3},{2940,9588,3}, {2940,9595,3},{2947,9608,3},{2935,9618,3},{2932,9618,3},{2925,9623,3},{2923,9628,3}, {2925,9632,3},{2928,9637,3},{2925,9640,3},{2918,9635,3},{2917,9625,3},{2915,9622,3}, {2910,9618,3},{2908,9612,3},{2907,9615,3},{2900,9618,3},{2895,9615,3},{2890,9617,3}, {2890,9620,3},{2893,9625,3},{2903,9635,3},{2905,9643,3},{2907,9650,3},{2897,9648,3}, {2897,9652,3},{2890,9653,3},{2878,9662,3},{2873,9660,3},{2868,9647,3},{2863,9648,3}, {2858,9643,3},{2858,9640,3},{2857,9640,3},{2855,9633,3},{2853,9633,3},{2848,9637,3}, {2842,9627,3},{2842,9628,3},{2838,9632,3},{2840,9637,3},{2835,9640,3},{2842,9645,3}, {2843,9653,3},{2847,9660,3},{2847,9665,3},{2843,9673,3},{2837,9678,3},{2837,9692,3}, {2835,9693,3},{2833,9698,3},{2833,9702,3},{2838,9708,3},{2838,9713,3},{2832,9720,3}, {2832,9723,3},{2828,9725,3},{2823,9730,3},{2822,9735,3},{2820,9737,3},{2817,9733,3}, {2808,9732,3},{2802,9740,3},{2795,9737,3},{2790,9737,3},{2788,9732,3},{2790,9732,3}, {2792,9728,3},{2790,9723,3},{2780,9712,3},{2778,9708,3},{2775,9708,3},{2773,9702,3}, {2767,9697,3},{2767,9693,3},{2762,9688,3},{2758,9688,3},{2750,9692,3},{2747,9690,3}, {2745,9690,3},{2722,9710,3},{2718,9713,3},{2717,9713,3},{2713,9717,3},{2708,9713,3}, {2710,9710,3},{2710,9707,3},{2713,9702,3},{2718,9688,3},{2722,9687,3},{2725,9688,3}, {2727,9685,3},{2732,9682,3},{2735,9678,3},{2737,9672,3},{2733,9667,3},{2735,9665,3}, {2737,9662,3},{2732,9657,3},{2730,9652,3},{2730,9643,3},{2728,9630,3},{2727,9620,3}, {2723,9610,3},{2717,9602,3},{2708,9597,3},{2703,9590,3},{2700,9580,3},{2697,9575,3}, {2688,9572,3},{2688,9565,3},{2682,9562,3},{2682,9552,3},{2672,9543,3},{2665,9527,3}, {2665,9525,3},{2668,9525,3},{2668,9523,3},{2663,9520,3},{2662,9513,3},{2657,9515,3}, {2648,9507,3},{2642,9510,3},{2633,9507,3},{2622,9508,3},{2620,9512,3},{2618,9510,3}, {2612,9512,3},{2608,9517,3},{2605,9518,3},{2597,9508,3},{2593,9502,3},{2575,9503,3}, {2573,9500,3},{2558,9488,3},{2557,9488,3},{2557,9485,3},{2550,9478,3},{2550,9473,3}, {2547,9470,3},{2540,9463,3},{2533,9462,3},{2528,9458,3},{2522,9458,3},{2518,9460,3}, {2513,9473,3},{2502,9473,3},{2498,9470,3},{2493,9470,3},{2487,9467,3},{2482,9462,3}, {2477,9462,3},{2472,9460,3},{2472,9458,3},{2472,9453,3},{2462,9452,3},{2457,9445,3}, {2450,9442,3},{2448,9438,3},{2442,9438,3},{2440,9435,3},{2437,9437,3},{2433,9432,3}, {2428,9432,3},{2415,9425,3},{2400,9422,3},{2393,9417,3},{2387,9415,3},{2385,9413,3}, {2385,9412,3},{2388,9410,3},{2390,9405,3},{2392,9403,3},{2395,9393,3},{2393,9382,3}, {2400,9375,3},{2402,9363,3},{2400,9362,3},{2397,9360,3},{2398,9357,3},{2397,9353,3}, {2397,9348,3},{2408,9340,3},{2408,9337,3},{2407,9333,3},{2398,9333,3},{2392,9338,3}, {2387,9338,3},{2373,9340,3},{2368,9343,3},{2365,9342,3},{2360,9342,3},{2350,9340,3}, {2338,9340,3},{2335,9337,3},{2323,9338,3},{2317,9337,3},{2313,9338,3},{2312,9335,3}, {2307,9335,3},{2302,9330,3},{2302,9323,3},{2307,9320,3},{2305,9313,3},{2302,9313,3}, {2292,9317,3},{2292,9315,3},{2288,9313,3},{2288,9312,3},{2278,9310,3},{2267,9310,3}, {2260,9313,3},{2253,9312,3},{2247,9313,3},{2243,9318,3},{2225,9320,3},{2223,9315,3}, {2220,9317,3},{2218,9315,3},{2222,9308,3},{2220,9305,3},{2212,9305,3},{2210,9302,3}, {2207,9298,3},{2200,9300,3},{2203,9295,3},{2202,9293,3},{2200,9292,3},{2195,9290,3}, {2198,9288,3},{2205,9287,3},{2217,9272,3},{2215,9270,3},{2210,9270,3},{2210,9268,3}, {2203,9268,3},{2202,9265,3},{2198,9260,3},{2213,9257,3},{2213,9260,3},{2217,9260,3}, {2220,9258,3},{2252,9255,3},{2255,9253,3},{2260,9253,3},{2272,9252,3},{2277,9247,3}, {2283,9245,3},{2285,9247,3},{2288,9245,3},{2293,9238,3},{2305,9238,3},{2310,9237,3}, {2322,9235,3},{2328,9238,3},{2337,9237,3},{2343,9232,3},{2355,9230,3},{2360,9228,3}, {2363,9228,3},{2370,9228,3},{2372,9227,3},{2372,9225,3},{2365,9222,3},{2365,9220,3}, {2372,9220,3},{2373,9217,3},{2373,9213,3},{2365,9207,3},{2365,9203,3},{2373,9197,3}, {2373,9195,3},{2367,9193,3},{2358,9197,3},{2350,9197,3},{2345,9193,3},{2343,9188,3}, {2342,9185,3},{2327,9177,3},{2308,9182,3},{2307,9178,3},{2303,9178,3},{2300,9172,3}, {2298,9165,3},{2295,9162,3},{2297,9160,3},{2298,9157,3},{2300,9155,3},{2305,9155,3}, {2307,9152,3},{2308,9153,3},{2318,9150,3},{2320,9147,3},{2322,9147,3},{2322,9145,3}, {2323,9145,3},{2327,9143,3},{2327,9140,3},{2320,9138,3},{2308,9140,3},{2307,9138,3}, {2308,9135,3},{2313,9133,3},{2332,9130,3},{2333,9128,3},{2337,9132,3},{2337,9128,3}, {2348,9125,3},{2352,9120,3},{2355,9120,3},{2363,9117,3},{2367,9117,3},{2365,9118,3}, {2368,9120,3},{2370,9117,3},{2373,9117,3},{2377,9122,3},{2385,9125,3},{2390,9123,3}, {2397,9127,3},{2400,9132,3},{2398,9135,3},{2400,9137,3},{2405,9138,3},{2410,9137,3}, {2412,9142,3},{2408,9153,3},{2410,9162,3},{2412,9163,3},{2415,9163,3},{2422,9165,3}, {2415,9170,3},{2415,9175,3},{2423,9175,3},{2423,9183,3},{2418,9183,3},{2415,9190,3}, {2427,9193,3},{2433,9192,3},{2435,9195,3},{2432,9198,3},{2433,9200,3},{2437,9197,3}, {2438,9197,3},{2437,9208,3},{2440,9212,3},{2443,9213,3},{2452,9213,3},{2457,9218,3}, {2463,9220,3},{2475,9225,3},{2482,9227,3},{2488,9225,3},{2490,9225,3},{2490,9230,3}, {2485,9238,3},{2487,9248,3},{2488,9250,3},{2493,9248,3},{2495,9245,3},{2497,9245,3}, {2497,9242,3},{2503,9240,3},{2505,9235,3},{2508,9233,3},{2510,9223,3},{2513,9220,3}, {2515,9215,3},{2517,9212,3},{2518,9203,3},{2517,9198,3},{2518,9193,3},{2517,9175,3}, {2515,9175,3},{2517,9172,3},{2513,9170,3},{2513,9165,3},{2513,9160,3},{2517,9158,3}, {2515,9155,3},{2513,9148,3},{2517,9140,3},{2517,9133,3},{2520,9125,3},{2520,9123,3}, {2520,9108,3},{2517,9097,3},{2515,9087,3},{2515,9082,3},{2518,9077,3},{2517,9075,3}, {2517,9068,3},{2518,9065,3},{2517,9052,3},{2515,9043,3},{2515,9038,3},{2520,9028,3}, {2522,9012,3},{2528,8997,3},{2532,8992,3},{2528,8988,3},{2528,8985,3},{2537,8982,3}, {2552,8985,3},{2563,8987,3},{2573,8982,3},{2577,8983,3},{2582,8980,3},{2593,8987,3}, {2595,8982,3},{2598,8985,3},{2600,8983,3},{2598,8982,3},{2605,8978,3},{2608,8978,3}, {2615,8973,3},{2617,8968,3},{2620,8968,3},{2623,8968,3},{2622,8963,3},{2618,8963,3}, {2617,8965,3},{2618,8962,3},{2615,8958,3},{2613,8960,3},{2613,8963,3},{2610,8960,3}, {2610,8958,3},{2608,8963,3},{2607,8963,3},{2603,8958,3},{2600,8958,3},{2597,8957,3}, {2597,8955,3},{2600,8952,3},{2600,8943,3},{2603,8940,3},{2600,8937,3},{2602,8932,3}, {2607,8928,3},{2607,8925,3},{2610,8925,3},{2612,8923,3},{2613,8915,3},{2627,8912,3}, {2632,8908,3},{2633,8910,3},{2632,8912,3},{2633,8913,3},{2635,8907,3},{2638,8907,3}, {2640,8903,3},{2645,8897,3},{2642,8892,3},{2637,8892,3},{2635,8895,3},{2633,8897,3}, {2633,8900,3},{2630,8900,3},{2630,8903,3},{2627,8903,3},{2627,8905,3},{2627,8907,3}, {2623,8905,3},{2623,8900,3},{2623,8895,3},{2628,8893,3},{2628,8890,3},{2627,8887,3}, {2623,8887,3},{2623,8885,3},{2623,8883,3},{2628,8880,3},{2630,8877,3},{2627,8868,3}, {2628,8867,3},{2628,8870,3},{2630,8872,3},{2632,8873,3},{2635,8873,3},{2637,8870,3}, {2638,8870,3},{2640,8867,3},{2642,8868,3},{2642,8865,3},{2647,8862,3},{2647,8857,3}, {2653,8848,3},{2655,8843,3},{2663,8842,3},{2658,8837,3},{2647,8833,3},{2645,8837,3}, {2648,8838,3},{2647,8848,3},{2637,8853,3},{2637,8845,3},{2633,8843,3},{2632,8840,3}, {2628,8835,3},{2622,8835,3},{2618,8825,3},{2615,8818,3},{2612,8818,3},{2610,8815,3}, {2607,8818,3},{2603,8818,3},{2602,8815,3},{2593,8812,3},{2592,8810,3},{2583,8812,3}, {2580,8813,3},{2578,8815,3},{2580,8822,3},{2582,8825,3},{2580,8828,3},{2573,8835,3}, {2567,8845,3},{2560,8845,3},{2557,8850,3},{2553,8852,3},{2553,8855,3},{2552,8855,3}, {2550,8862,3},{2547,8870,3},{2550,8872,3},{2552,8880,3},{2547,8883,3},{2543,8883,3}, {2540,8882,3},{2537,8885,3},{2533,8888,3},{2533,8890,3},{2532,8892,3},{2532,8900,3}, {2528,8902,3},{2523,8895,3},{2520,8897,3},{2520,8893,3},{2518,8893,3},{2517,8895,3}, {2517,8893,3},{2518,8888,3},{2520,8883,3},{2517,8880,3},{2517,8875,3},{2518,8873,3}, {2520,8862,3},{2517,8858,3},{2518,8853,3},{2520,8850,3},{2518,8845,3},{2507,8847,3}, {2500,8842,3},{2493,8840,3},{2487,8835,3},{2488,8827,3},{2492,8825,3},{2495,8822,3}, {2492,8813,3},{2485,8817,3},{2482,8813,3},{2482,8812,3},{2477,8810,3},{2477,8808,3}, {2472,8807,3},{2468,8805,3},{2460,8810,3},{2452,8812,3},{2450,8813,3},{2443,8832,3}, {2432,8850,3},{2432,8858,3},{2430,8865,3},{2432,8868,3},{2425,8873,3},{2420,8875,3}, {2417,8872,3},{2408,8870,3},{2407,8873,3},{2403,8873,3},{2403,8875,3},{2400,8872,3}, {2398,8875,3},{2392,8873,3},{2390,8870,3},{2387,8867,3},{2387,8862,3},{2387,8860,3}, {2382,8860,3},{2377,8858,3},{2375,8858,3},{2365,8857,3},{2363,8858,3},{2360,8858,3}, {2358,8863,3},{2355,8865,3},{2352,8870,3},{2350,8873,3},{2347,8875,3},{2350,8878,3}, {2350,8880,3},{2347,8878,3},{2340,8875,3},{2337,8875,3},{2332,8872,3},{2325,8872,3}, {2322,8880,3},{2325,8883,3},{2322,8893,3},{2320,8898,3},{2318,8898,3},{2317,8895,3}, {2312,8892,3},{2310,8887,3},{2297,8887,3},{2293,8890,3},{2287,8893,3},{2285,8897,3}, {2278,8897,3},{2275,8893,3},{2268,8895,3},{2263,8895,3},{2258,8897,3},{2255,8895,3}, {2255,8893,3},{2252,8897,3},{2247,8900,3},{2242,8900,3},{2240,8898,3},{2232,8900,3}, {2230,8902,3},{2228,8900,3},{2227,8902,3},{2218,8907,3},{2215,8908,3},{2215,8910,3}, {2208,8905,3},{2198,8908,3},{2193,8907,3},{2192,8903,3},{2193,8902,3},{2190,8902,3}, {2190,8900,3},{2193,8895,3},{2198,8893,3},{2198,8892,3},{2195,8890,3},{2192,8893,3}, {2187,8902,3},{2178,8902,3},{2167,8908,3},{2162,8908,3},{2160,8905,3},{2163,8903,3}, {2160,8900,3},{2163,8893,3},{2165,8890,3},{2170,8887,3},{2177,8887,3},{2168,8883,3}, {2163,8885,3},{2162,8882,3},{2163,8880,3},{2165,8882,3},{2168,8880,3},{2167,8880,3}, {2165,8878,3},{2162,8877,3},{2158,8880,3},{2157,8878,3},{2155,8873,3},{2157,8872,3}, {2162,8872,3},{2170,8868,3},{2185,8870,3},{2188,8872,3},{2195,8872,3},{2200,8877,3}, {2203,8875,3},{2207,8872,3},{2213,8877,3},{2212,8873,3},{2208,8868,3},{2202,8873,3}, {2193,8868,3},{2193,8863,3},{2197,8862,3},{2202,8867,3},{2210,8863,3},{2215,8865,3}, {2217,8868,3},{2220,8868,3},{2220,8867,3},{2210,8862,3},{2203,8863,3},{2198,8860,3}, {2193,8860,3},{2182,8855,3},{2177,8857,3},{2178,8862,3},{2175,8863,3},{2170,8862,3}, {2170,8858,3},{2162,8860,3},{2162,8857,3},{2157,8857,3},{2155,8855,3},{2157,8853,3}, {2155,8853,3},{2153,8855,3},{2152,8850,3},{2155,8848,3},{2158,8850,3},{2160,8852,3}, {2167,8853,3},{2175,8850,3},{2178,8853,3},{2182,8853,3},{2187,8850,3},{2192,8852,3}, {2195,8850,3},{2192,8850,3},{2188,8847,3},{2185,8848,3},{2180,8850,3},{2180,8847,3}, {2173,8845,3},{2167,8847,3},{2162,8845,3},{2158,8838,3},{2163,8838,3},{2170,8838,3}, {2168,8835,3},{2172,8833,3},{2170,8832,3},{2167,8835,3},{2162,8835,3},{2160,8832,3}, {2177,8830,3},{2180,8827,3},{2178,8825,3},{2167,8830,3},{2160,8828,3},{2157,8830,3}, {2155,8825,3},{2162,8822,3},{2160,8820,3},{2162,8820,3},{2167,8818,3},{2168,8818,3}, {2172,8820,3},{2180,8820,3},{2187,8815,3},{2192,8817,3},{2195,8815,3},{2198,8815,3}, {2207,8822,3},{2215,8820,3},{2218,8817,3},{2222,8808,3},{2223,8808,3},{2222,8803,3}, {2223,8800,3},{2230,8797,3},{2242,8793,3},{2242,8790,3},{2240,8792,3},{2227,8795,3}, {2222,8798,3},{2220,8802,3},{2217,8815,3},{2212,8817,3},{2208,8817,3},{2202,8808,3}, {2202,8805,3},{2197,8803,3},{2185,8798,3},{2180,8790,3},{2177,8788,3},{2170,8780,3}, {2165,8767,3},{2165,8763,3},{2160,8745,3},{2157,8737,3},{2155,8722,3},{2148,8707,3}, {2138,8697,3},{2127,8688,3},{2120,8683,3},{2115,8683,3},{2098,8688,3},{2095,8690,3}, {2080,8697,3},{2078,8697,3},{2078,8690,3},{2077,8688,3},{2075,8693,3},{2075,8698,3}, {2070,8700,3},{2072,8695,3},{2070,8693,3},{2068,8698,3},{2067,8700,3},{2067,8703,3}, {2070,8705,3},{2048,8675,3},{2045,8673,3},{2038,8672,3},{2037,8672,3},{2040,8677,3}, {2038,8678,3},{2043,8680,3},{2038,8680,3},{2032,8675,3},{2030,8670,3},{2028,8670,3}, {2032,8675,3},{2028,8670,3},{2018,8648,3},{2010,8647,3},{2010,8648,3},{2002,8640,3}, {2000,8640,3},{2000,8642,3},{1998,8642,3},{1998,8637,3},{2007,8628,3},{2005,8623,3}, {2008,8618,3},{2013,8615,3},{2008,8615,3},{2007,8617,3},{2002,8623,3},{2002,8630,3}, {1998,8632,3},{1997,8638,3},{1995,8632,3},{1990,8627,3},{1985,8610,3},{1985,8605,3}, {1983,8602,3},{1977,8573,3},{1972,8562,3},{1972,8563,3},{1973,8562,3},{1968,8553,3}, {1967,8545,3},{1968,8545,3},{1968,8542,3},{1970,8542,3},{1973,8552,3},{1972,8552,3}, {1973,8557,3},{1975,8555,3},{1980,8557,3},{1983,8558,3},{1988,8557,3},{1990,8547,3}, {1983,8535,3},{1978,8532,3},{1977,8525,3},{1972,8520,3},{1968,8520,3},{1960,8513,3}, {1955,8515,3},{1955,8513,3},{1953,8510,3},{1952,8510,3},{1952,8512,3},{1947,8513,3}, {1950,8517,3},{1950,8520,3},{1953,8520,3},{1955,8518,3},{1955,8523,3},{1958,8520,3}, {1958,8522,3},{1960,8525,3},{1963,8523,3},{1965,8525,3},{1963,8530,3},{1967,8535,3}, {1967,8538,3},{1968,8538,3},{1967,8540,3},{1965,8540,3},{1963,8538,3},{1962,8538,3}, {1958,8533,3},{1962,8532,3},{1960,8532,3},{1960,8528,3},{1957,8532,3},{1968,8558,3}, {1958,8533,3},{1947,8517,3},{1942,8510,3},{1937,8507,3},{1933,8502,3},{1922,8487,3}, {1915,8482,3},{1912,8478,3},{1912,8477,3},{1913,8477,3},{1915,8473,3},{1910,8472,3}, {1907,8473,3},{1910,8475,3},{1910,8478,3},{1898,8470,3},{1888,8462,3},{1877,8453,3}, {1868,8445,3},{1865,8443,3},{1853,8428,3},{1852,8427,3},{1852,8425,3},{1850,8423,3}, {1850,8428,3},{1855,8435,3},{1837,8413,3},{1830,8412,3},{1823,8402,3},{1822,8393,3}, {1820,8393,3},{1820,8390,3},{1815,8378,3},{1802,8358,3},{1793,8352,3},{1790,8347,3}, {1792,8345,3},{1788,8345,3},{1772,8335,3},{1768,8330,3},{1772,8328,3},{1772,8323,3}, {1770,8325,3},{1767,8330,3},{1763,8325,3},{1763,8322,3},{1760,8323,3},{1755,8317,3}, {1750,8302,3},{1745,8298,3},{1742,8290,3},{1742,8288,3},{1740,8285,3},{1737,8277,3}, {1725,8253,3},{1720,8248,3},{1705,8232,3},{1693,8227,3},{1692,8225,3},{1688,8225,3}, {1687,8228,3},{1685,8235,3},{1682,8237,3},{1685,8237,3},{1693,8237,3},{1695,8235,3}, {1687,8237,3},{1680,8237,3},{1662,8232,3},{1660,8230,3},{1662,8228,3},{1657,8230,3}, {1645,8207,3},{1645,8203,3},{1642,8200,3},{1640,8195,3},{1638,8193,3},{1637,8183,3}, {1630,8170,3},{1633,8165,3},{1635,8157,3},{1637,8157,3},{1637,8153,3},{1635,8155,3}, {1635,8147,3},{1633,8142,3},{1637,8143,3},{1638,8142,3},{1637,8138,3},{1637,8135,3}, {1637,8132,3},{1632,8125,3},{1628,8127,3},{1618,8120,3},{1605,8115,3},{1597,8115,3}, {1597,8113,3},{1585,8100,3},{1578,8102,3},{1585,8090,3},{1593,8092,3},{1603,8090,3}, {1602,8088,3},{1600,8088,3},{1602,8088,3},{1592,8090,3},{1583,8085,3},{1572,8082,3}, {1573,8080,3},{1583,8080,3},{1588,8078,3},{1590,8067,3},{1588,8065,3},{1588,8068,3}, {1588,8060,3},{1587,8057,3},{1588,8055,3},{1585,8052,3},{1577,8037,3},{1570,8028,3}, {1550,8020,3},{1548,8020,3},{1540,8013,3},{1532,8008,3},{1522,8008,3},{1518,8007,3}, {1508,8005,3},{1483,8008,3},{1478,8010,3},{1470,8010,3},{1467,8015,3},{1460,8018,3}, {1458,8018,3},{1457,8015,3},{1457,8020,3},{1448,8018,3},{1435,8018,3},{1427,8015,3}, {1425,8008,3},{1420,8003,3},{1420,8008,3},{1423,8013,3},{1415,8013,3},{1402,8015,3}, {1382,8025,3},{1377,8025,3},{1373,8023,3},{1368,8023,3},{1345,8032,3},{1343,8032,3}, {1345,8030,3},{1352,8028,3},{1362,8022,3},{1365,8018,3},{1367,8018,3},{1373,8015,3}, {1365,8015,3},{1362,8013,3},{1362,8012,3},{1367,8012,3},{1368,8010,3},{1365,8008,3}, {1365,8007,3},{1362,8007,3},{1362,8005,3},{1350,8012,3},{1348,8017,3},{1348,8023,3}, {1347,8027,3},{1343,8027,3},{1342,8032,3},{1338,8033,3},{1345,8033,3},{1333,8035,3}, {1325,8033,3},{1325,8032,3},{1322,8032,3},{1322,8033,3},{1320,8033,3},{1313,8030,3}, {1310,8032,3},{1307,8028,3},{1295,8027,3},{1278,8027,3},{1248,8017,3},{1235,8010,3}, {1232,8005,3},{1228,8003,3},{1223,7998,3},{1222,7995,3},{1220,7995,3},{1223,8000,3}, {1203,7987,3},{1197,7985,3},{1183,7980,3},{1180,7980,3},{1177,7978,3},{1155,7975,3}, {1143,7978,3},{1143,7980,3},{1145,7978,3},{1143,7982,3},{1137,7982,3},{1138,7977,3}, {1130,7967,3},{1130,7970,3},{1135,7975,3},{1137,7977,3},{1135,7983,3},{1123,7983,3}, {1117,7985,3},{1082,7983,3},{1038,7987,3},{1028,7985,3},{1027,7978,3},{1028,7978,3}, {1032,7973,3},{1030,7970,3},{1032,7963,3},{1030,7962,3},{1030,7968,3},{1028,7972,3}, {1030,7975,3},{1027,7977,3},{1027,7973,3},{1030,7955,3},{1032,7955,3},{1032,7960,3}, {1033,7960,3},{1033,7957,3},{1033,7953,3},{1032,7953,3},{1032,7952,3},{1032,7940,3}, {1028,7937,3},{1028,7932,3},{1022,7927,3},{1018,7927,3},{1018,7923,3},{1008,7923,3}, {1003,7928,3},{1002,7925,3},{992,7917,3},{983,7912,3},{973,7903,3},{967,7898,3}, {963,7897,3},{960,7895,3},{950,7893,3},{948,7890,3},{940,7895,3},{932,7903,3}, {928,7910,3},{928,7922,3},{928,7927,3},{932,7930,3},{932,7935,3},{925,7933,3}, {918,7943,3},{915,7945,3},{917,7940,3},{923,7933,3},{925,7928,3},{925,7923,3}, {927,7917,3},{925,7912,3},{927,7897,3},{925,7892,3},{925,7888,3},{923,7882,3}, {918,7873,3},{918,7867,3},{915,7865,3},{910,7842,3},{897,7823,3},{890,7820,3}, {887,7817,3},{877,7817,3},{877,7820,3},{878,7820,3},{877,7822,3},{875,7820,3}, {873,7817,3},{865,7813,3},{865,7812,3},{862,7813,3},{848,7813,3},{840,7807,3}, {837,7807,3},{833,7798,3},{825,7785,3},{822,7780,3},{818,7778,3},{813,7758,3}, {812,7757,3},{808,7757,3},{807,7753,3},{812,7730,3},{815,7728,3},{818,7723,3}, {840,7697,3},{880,7667,3},{890,7655,3},{892,7653,3},{893,7655,3},{890,7658,3}, {892,7662,3},{892,7657,3},{897,7660,3},{897,7667,3},{898,7663,3},{900,7667,3}, {900,7665,3},{900,7658,3},{895,7657,3},{900,7657,3},{893,7653,3},{900,7652,3}, {912,7645,3},{913,7647,3},{912,7648,3},{917,7648,3},{917,7647,3},{915,7647,3}, {925,7643,3},{925,7642,3},{915,7645,3},{928,7638,3},{948,7632,3},{968,7628,3}, {975,7628,3},{995,7623,3},{997,7625,3},{992,7630,3},{992,7627,3},{988,7627,3}, {987,7627,3},{988,7628,3},{987,7628,3},{983,7628,3},{987,7630,3},{987,7632,3}, {970,7633,3},{973,7635,3},{982,7633,3},{985,7632,3},{987,7633,3},{982,7637,3}, {970,7637,3},{967,7642,3},{968,7642,3},{970,7640,3},{970,7638,3},{973,7640,3}, {978,7638,3},{982,7640,3},{992,7637,3},{997,7632,3},{995,7630,3},{997,7628,3}, {998,7627,3},{1003,7627,3},{1007,7625,3},{1008,7625,3},{1012,7623,3},{1010,7623,3}, {1012,7622,3},{1013,7622,3},{1012,7620,3},{1007,7623,3},{998,7623,3},{1008,7618,3}, {1017,7618,3},{1020,7623,3},{1023,7623,3},{1023,7622,3},{1027,7620,3},{1020,7620,3}, {1018,7617,3},{1037,7612,3},{1042,7608,3},{1050,7605,3},{1055,7602,3},{1075,7592,3}, {1077,7592,3},{1080,7593,3},{1080,7590,3},{1093,7588,3},{1108,7583,3},{1133,7573,3}, {1137,7573,3},{1137,7572,3},{1145,7568,3},{1147,7562,3},{1170,7553,3},{1185,7538,3}, {1185,7535,3},{1190,7532,3},{1192,7532,3},{1193,7530,3},{1192,7540,3},{1193,7538,3}, {1197,7540,3},{1195,7535,3},{1195,7532,3},{1198,7528,3},{1200,7527,3},{1200,7533,3}, {1202,7532,3},{1203,7530,3},{1202,7527,3},{1198,7527,3},{1197,7528,3},{1200,7523,3}, {1202,7522,3},{1200,7520,3},{1210,7518,3},{1220,7513,3},{1225,7513,3},{1222,7510,3}, {1233,7507,3},{1252,7497,3},{1275,7485,3},{1278,7485,3},{1283,7482,3},{1282,7487,3}, {1285,7488,3},{1287,7493,3},{1287,7492,3},{1285,7485,3},{1287,7482,3},{1302,7477,3}, {1308,7478,3},{1310,7477,3},{1322,7473,3},{1335,7472,3},{1338,7468,3},{1347,7468,3}, {1342,7468,3},{1342,7470,3},{1342,7472,3},{1343,7470,3},{1347,7472,3},{1347,7470,3}, {1352,7468,3},{1363,7467,3},{1362,7467,3},{1365,7468,3},{1363,7470,3},{1365,7473,3}, {1365,7470,3},{1368,7468,3},{1370,7470,3},{1370,7468,3},{1367,7465,3},{1368,7463,3}, {1383,7462,3},{1393,7457,3},{1398,7452,3},{1402,7450,3},{1405,7450,3},{1418,7447,3}, {1425,7443,3},{1425,7452,3},{1430,7442,3},{1442,7440,3},{1442,7438,3},{1452,7435,3}, {1453,7437,3},{1448,7438,3},{1447,7438,3},{1445,7440,3},{1447,7440,3},{1448,7442,3}, {1450,7440,3},{1452,7438,3},{1453,7437,3},{1453,7438,3},{1455,7435,3},{1457,7435,3}, {1455,7433,3},{1452,7433,3},{1452,7430,3},{1458,7428,3},{1460,7433,3},{1462,7432,3}, {1460,7428,3},{1462,7427,3},{1468,7427,3},{1472,7425,3},{1473,7422,3},{1472,7420,3}, {1475,7417,3},{1475,7415,3},{1477,7413,3},{1480,7408,3},{1480,7412,3},{1483,7412,3}, {1483,7415,3},{1483,7417,3},{1487,7418,3},{1487,7423,3},{1488,7420,3},{1490,7422,3}, {1485,7413,3},{1485,7412,3},{1490,7408,3},{1492,7403,3},{1497,7403,3},{1500,7402,3}, {1502,7400,3},{1507,7395,3},{1508,7392,3},{1512,7392,3},{1515,7397,3},{1515,7395,3}, {1527,7390,3},{1530,7390,3},{1537,7388,3},{1537,7382,3},{1540,7378,3},{1540,7392,3}, {1537,7397,3},{1540,7395,3},{1542,7392,3},{1545,7378,3},{1550,7382,3},{1550,7387,3}, {1553,7387,3},{1550,7380,3},{1550,7377,3},{1560,7373,3},{1565,7378,3},{1565,7383,3}, {1565,7378,3},{1562,7372,3},{1570,7368,3},{1572,7370,3},{1572,7367,3},{1573,7365,3}, {1578,7365,3},{1588,7360,3},{1598,7348,3},{1600,7348,3},{1602,7352,3},{1602,7348,3}, {1607,7345,3},{1608,7347,3},{1615,7347,3},{1618,7348,3},{1617,7345,3},{1612,7345,3}, {1618,7343,3},{1622,7343,3},{1622,7342,3},{1635,7338,3},{1637,7335,3},{1640,7338,3}, {1642,7335,3},{1652,7330,3},{1655,7330,3},{1655,7332,3},{1652,7333,3},{1652,7338,3}, {1653,7335,3},{1655,7337,3},{1657,7333,3},{1660,7332,3},{1660,7333,3},{1662,7335,3}, {1660,7338,3},{1663,7337,3},{1662,7332,3},{1665,7332,3},{1668,7333,3},{1672,7330,3}, {1675,7328,3},{1680,7332,3},{1682,7328,3},{1687,7327,3},{1690,7328,3},{1690,7327,3}, {1698,7328,3},{1700,7325,3},{1703,7325,3},{1703,7327,3},{1708,7327,3},{1717,7325,3}, {1720,7323,3},{1722,7323,3},{1730,7318,3},{1728,7325,3},{1737,7320,3},{1738,7317,3}, {1740,7317,3},{1743,7318,3},{1747,7318,3},{1753,7313,3},{1757,7313,3},{1757,7317,3}, {1758,7320,3},{1760,7313,3},{1763,7312,3},{1765,7312,3},{1768,7310,3},{1772,7312,3}, {1777,7312,3},{1790,7305,3},{1792,7305,3},{1795,7302,3},{1797,7302,3},{1798,7303,3}, {1798,7302,3},{1802,7300,3},{1805,7303,3},{1805,7305,3},{1803,7300,3},{1807,7298,3}, {1808,7298,3},{1812,7297,3},{1818,7297,3},{1822,7295,3},{1823,7292,3},{1828,7293,3}, {1827,7297,3},{1823,7297,3},{1825,7300,3},{1822,7305,3},{1818,7305,3},{1818,7307,3}, {1822,7308,3},{1827,7307,3},{1828,7305,3},{1827,7303,3},{1828,7298,3},{1830,7297,3}, {1833,7297,3},{1833,7295,3},{1835,7292,3},{1838,7292,3},{1842,7290,3},{1847,7288,3}, {1852,7290,3},{1853,7293,3},{1852,7297,3},{1847,7298,3},{1845,7300,3},{1847,7302,3}, {1848,7300,3},{1855,7297,3},{1855,7292,3},{1863,7288,3},{1867,7285,3},{1880,7285,3}, {1880,7288,3},{1878,7290,3},{1882,7293,3},{1878,7297,3},{1875,7297,3},{1873,7298,3}, {1880,7300,3},{1882,7302,3},{1883,7298,3},{1885,7297,3},{1887,7298,3},{1885,7292,3}, {1888,7290,3},{1892,7290,3},{1890,7293,3},{1892,7293,3},{1895,7293,3},{1893,7297,3}, {1895,7298,3},{1897,7295,3},{1900,7305,3},{1902,7305,3},{1900,7298,3},{1907,7300,3}, {1908,7297,3},{1917,7297,3},{1912,7293,3},{1907,7293,3},{1905,7295,3},{1902,7292,3}, {1898,7288,3},{1902,7288,3},{1895,7283,3},{1890,7282,3},{1890,7280,3},{1895,7282,3}, {1895,7280,3},{1895,7277,3},{1900,7280,3},{1903,7280,3},{1905,7283,3},{1907,7282,3}, {1917,7282,3},{1915,7278,3},{1917,7278,3},{1925,7283,3},{1925,7282,3},{1920,7278,3}, {1922,7277,3},{1932,7278,3},{1930,7280,3},{1932,7285,3},{1928,7290,3},{1928,7297,3}, {1922,7302,3},{1920,7303,3},{1922,7305,3},{1923,7302,3},{1925,7303,3},{1928,7300,3}, {1932,7297,3},{1930,7292,3},{1933,7288,3},{1933,7283,3},{1933,7280,3},{1937,7275,3}, {1947,7273,3},{1953,7288,3},{1953,7283,3},{1952,7280,3},{1957,7277,3},{1958,7273,3}, {1953,7273,3},{1952,7275,3},{1952,7273,3},{1960,7270,3},{1962,7272,3},{1972,7268,3}, {1970,7270,3},{1970,7273,3},{1975,7272,3},{1975,7273,3},{1978,7273,3},{1975,7268,3}, {1980,7268,3},{1983,7265,3},{1988,7267,3},{1993,7267,3},{1998,7270,3},{2007,7270,3}, {2010,7272,3},{2022,7275,3},{2022,7273,3},{2030,7275,3},{2035,7278,3},{2037,7282,3}, {2045,7283,3},{2050,7288,3},{2062,7288,3},{2063,7290,3},{2072,7292,3},{2073,7290,3}, {2077,7295,3},{2078,7292,3},{2082,7292,3},{2078,7290,3},{2083,7288,3},{2087,7290,3}, {2083,7283,3},{2085,7285,3},{2088,7285,3},{2090,7287,3},{2093,7283,3},{2095,7288,3}, {2097,7290,3},{2098,7288,3},{2097,7283,3},{2100,7282,3},{2100,7278,3},{2103,7277,3}, {2103,7285,3},{2107,7285,3},{2107,7283,3},{2110,7283,3},{2113,7280,3},{2112,7278,3}, {2112,7273,3},{2108,7273,3},{2107,7270,3},{2112,7270,3},{2115,7273,3},{2117,7272,3}, {2115,7267,3},{2110,7267,3},{2108,7263,3},{2110,7262,3},{2113,7262,3},{2120,7273,3}, {2125,7265,3},{2127,7263,3},{2125,7262,3},{2133,7258,3},{2137,7265,3},{2137,7257,3}, {2138,7257,3},{2142,7265,3},{2145,7270,3},{2145,7275,3},{2147,7275,3},{2147,7272,3}, {2143,7265,3},{2142,7258,3},{2148,7263,3},{2155,7272,3},{2157,7277,3},{2163,7282,3}, {2165,7290,3},{2172,7307,3},{2173,7312,3},{2175,7313,3},{2177,7312,3},{2168,7293,3}, {2168,7285,3},{2167,7278,3},{2168,7275,3},{2167,7268,3},{2168,7262,3},{2167,7253,3}, {2170,7253,3},{2177,7255,3},{2185,7257,3},{2193,7263,3},{2193,7268,3},{2198,7272,3}, {2198,7273,3},{2200,7272,3},{2197,7268,3},{2197,7262,3},{2190,7255,3},{2192,7253,3}, {2198,7250,3},{2213,7253,3},{2220,7258,3},{2222,7263,3},{2218,7268,3},{2218,7272,3}, {2217,7275,3},{2222,7278,3},{2223,7282,3},{2222,7288,3},{2222,7292,3},{2227,7292,3}, {2228,7290,3},{2227,7290,3},{2227,7282,3},{2223,7275,3},{2227,7268,3},{2227,7262,3}, {2228,7258,3},{2223,7250,3},{2223,7247,3},{2223,7245,3},{2225,7247,3},{2227,7245,3}, {2223,7242,3},{2225,7238,3},{2230,7238,3},{2235,7242,3},{2237,7238,3},{2228,7233,3}, {2227,7233,3},{2225,7230,3},{2227,7227,3},{2228,7227,3},{2230,7227,3},{2228,7215,3}, {2225,7218,3},{2225,7222,3},{2228,7223,3},{2223,7223,3},{2223,7230,3},{2215,7233,3}, {2207,7230,3},{2205,7227,3},{2202,7227,3},{2200,7222,3},{2198,7222,3},{2200,7218,3}, {2197,7217,3},{2202,7210,3},{2198,7213,3},{2197,7208,3},{2195,7210,3},{2195,7203,3}, {2193,7205,3},{2192,7212,3},{2193,7215,3},{2192,7215,3},{2188,7217,3},{2185,7217,3}, {2183,7215,3},{2185,7213,3},{2188,7210,3},{2190,7207,3},{2188,7205,3},{2187,7208,3}, {2185,7208,3},{2183,7210,3},{2183,7208,3},{2187,7200,3},{2185,7200,3},{2178,7200,3}, {2180,7202,3},{2177,7202,3},{2178,7207,3},{2177,7212,3},{2178,7217,3},{2177,7218,3}, {2173,7222,3},{2170,7222,3},{2168,7227,3},{2163,7230,3},{2158,7228,3},{2147,7225,3}, {2132,7210,3},{2127,7210,3},{2125,7208,3},{2120,7212,3},{2113,7200,3},{2113,7192,3}, {2107,7182,3},{2103,7178,3},{2102,7170,3},{2095,7155,3},{2098,7157,3},{2093,7148,3}, {2088,7147,3},{2083,7132,3},{2077,7113,3},{2073,7102,3},{2072,7100,3},{2070,7097,3}, {2070,7083,3},{2072,7078,3},{2072,7073,3},{2075,7068,3},{2078,7058,3},{2085,7047,3}, {2090,7040,3},{2092,7033,3},{2107,7015,3},{2118,7002,3},{2125,6997,3},{2132,6990,3}, {2145,6980,3},{2147,6982,3},{2150,6975,3},{2160,6965,3},{2165,6957,3},{2173,6948,3}, {2178,6942,3},{2183,6938,3},{2187,6938,3},{2185,6937,3},{2197,6922,3},{2220,6900,3}, {2230,6895,3},{2233,6895,3},{2240,6898,3},{2245,6900,3},{2248,6907,3},{2248,6908,3}, {2245,6908,3},{2243,6905,3},{2242,6905,3},{2240,6907,3},{2240,6908,3},{2240,6915,3}, {2242,6920,3},{2240,6920,3},{2237,6918,3},{2232,6917,3},{2227,6922,3},{2227,6923,3}, {2228,6932,3},{2233,6935,3},{2232,6940,3},{2233,6948,3},{2238,6953,3},{2243,6950,3}, {2245,6952,3},{2243,6953,3},{2245,6955,3},{2237,6955,3},{2237,6958,3},{2235,6962,3}, {2238,6962,3},{2237,6965,3},{2240,6967,3},{2240,6970,3},{2247,6973,3},{2242,6980,3}, {2247,6983,3},{2247,6988,3},{2250,6992,3},{2252,6993,3},{2253,6995,3},{2255,7002,3}, {2255,7003,3},{2255,7017,3},{2270,7027,3},{2273,7027,3},{2277,7032,3},{2282,7032,3}, {2288,7037,3},{2293,7042,3},{2297,7043,3},{2297,7048,3},{2298,7052,3},{2305,7053,3}, {2310,7050,3},{2313,7048,3},{2308,7040,3},{2305,7040,3},{2302,7042,3},{2293,7038,3}, {2293,7035,3},{2295,7027,3},{2300,7023,3},{2297,7023,3},{2295,7022,3},{2295,7017,3}, {2297,7013,3},{2298,7013,3},{2295,7012,3},{2293,7013,3},{2292,7013,3},{2288,6997,3}, {2283,6980,3},{2280,6975,3},{2277,6975,3},{2275,6970,3},{2275,6968,3},{2275,6958,3}, {2278,6957,3},{2278,6948,3},{2283,6933,3},{2282,6928,3},{2283,6922,3},{2287,6915,3}, {2293,6905,3},{2300,6890,3},{2315,6867,3},{2315,6865,3},{2318,6865,3},{2318,6862,3}, {2323,6860,3},{2323,6862,3},{2327,6862,3},{2325,6860,3},{2325,6857,3},{2327,6853,3}, {2332,6857,3},{2332,6860,3},{2333,6860,3},{2333,6857,3},{2335,6857,3},{2337,6852,3}, {2342,6852,3},{2342,6855,3},{2342,6850,3},{2340,6850,3},{2340,6848,3},{2342,6847,3}, {2343,6847,3},{2343,6843,3},{2345,6843,3},{2348,6845,3},{2352,6848,3},{2355,6843,3}, {2350,6845,3},{2350,6843,3},{2348,6842,3},{2352,6840,3},{2362,6842,3},{2363,6843,3}, {2362,6848,3},{2363,6850,3},{2363,6847,3},{2365,6847,3},{2368,6853,3},{2372,6857,3}, {2375,6863,3},{2382,6867,3},{2382,6872,3},{2387,6882,3},{2388,6880,3},{2387,6877,3}, {2385,6873,3},{2383,6870,3},{2383,6863,3},{2377,6858,3},{2373,6845,3},{2368,6838,3}, {2363,6837,3},{2363,6833,3},{2362,6835,3},{2360,6833,3},{2358,6827,3},{2358,6818,3}, {2360,6813,3},{2362,6815,3},{2363,6817,3},{2367,6820,3},{2365,6823,3},{2367,6828,3}, {2368,6828,3},{2367,6825,3},{2368,6822,3},{2372,6820,3},{2377,6820,3},{2192,8903,131}, {2193,8907,3},{2198,8908,3},{2208,8905,3},{2215,8910,3},{2215,8908,3},{2218,8907,3}, {2227,8902,3},{2228,8900,3},{2230,8902,3},{2232,8900,3},{2240,8898,3},{2242,8900,3}, {2247,8900,3},{2252,8897,3},{2255,8893,3},{2255,8895,3},{2258,8897,3},{2263,8895,3}, {2268,8895,3},{2275,8893,3},{2278,8897,3},{2285,8897,3},{2287,8893,3},{2293,8890,3}, {2297,8887,3},{2310,8887,3},{2312,8892,3},{2317,8895,3},{2318,8898,3},{2320,8898,3}, {2322,8893,3},{2325,8883,3},{2322,8880,3},{2325,8872,3},{2332,8872,3},{2337,8875,3}, {2340,8875,3},{2347,8878,3},{2350,8880,3},{2350,8878,3},{2347,8875,3},{2350,8873,3}, {2352,8870,3},{2355,8865,3},{2358,8863,3},{2360,8858,3},{2363,8858,3},{2365,8857,3}, {2375,8858,3},{2377,8858,3},{2382,8860,3},{2387,8860,3},{2387,8862,3},{2387,8867,3}, {2390,8870,3},{2392,8873,3},{2398,8875,3},{2400,8872,3},{2403,8875,3},{2403,8873,3}, {2407,8873,3},{2408,8870,3},{2417,8872,3},{2420,8875,3},{2425,8873,3},{2432,8868,3}, {2430,8865,3},{2432,8858,3},{2432,8850,3},{2443,8832,3},{2450,8813,3},{2452,8812,3}, {2460,8810,3},{2468,8805,3},{2472,8807,3},{2477,8808,3},{2477,8810,3},{2482,8812,3}, {2482,8813,3},{2485,8817,3},{2492,8813,3},{2495,8822,3},{2492,8825,3},{2488,8827,3}, {2487,8835,3},{2493,8840,3},{2500,8842,3},{2507,8847,3},{2518,8845,3},{2520,8850,3}, {2518,8853,3},{2517,8858,3},{2520,8862,3},{2518,8873,3},{2517,8875,3},{2517,8880,3}, {2520,8883,3},{2518,8888,3},{2517,8893,3},{2517,8895,3},{2518,8893,3},{2520,8893,3}, {2520,8897,3},{2523,8895,3},{2528,8902,3},{2532,8900,3},{2532,8892,3},{2533,8890,3}, {2533,8888,3},{2537,8885,3},{2540,8882,3},{2543,8883,3},{2547,8883,3},{2552,8880,3}, {2550,8872,3},{2547,8870,3},{2550,8862,3},{2552,8855,3},{2553,8855,3},{2553,8852,3}, {2557,8850,3},{2560,8845,3},{2567,8845,3},{2573,8835,3},{2580,8828,3},{2582,8825,3}, {2580,8822,3},{2578,8815,3},{2580,8813,3},{2583,8812,3},{2592,8810,3},{2593,8812,3}, {2602,8815,3},{2603,8818,3},{2607,8818,3},{2610,8815,3},{2612,8818,3},{2615,8818,3}, {2618,8825,3},{2622,8835,3},{2628,8835,3},{2632,8840,3},{2633,8843,3},{2637,8845,3}, {2637,8853,3},{2647,8848,3},{2648,8838,3},{2645,8837,3},{2647,8833,3},{2658,8837,3}, {2663,8842,3},{2655,8843,3},{2653,8848,3},{2647,8857,3},{2647,8862,3},{2642,8865,3}, {2642,8868,3},{2640,8867,3},{2638,8870,3},{2637,8870,3},{2635,8873,3},{2632,8873,3}, {2630,8872,3},{2628,8870,3},{2628,8867,3},{2627,8868,3},{2630,8877,3},{2628,8880,3}, {2623,8883,3},{2623,8885,3},{2623,8887,3},{2627,8887,3},{2628,8890,3},{2628,8893,3}, {2623,8895,3},{2623,8900,3},{2623,8905,3},{2627,8907,3},{2627,8905,3},{2627,8903,3}, {2630,8903,3},{2630,8900,3},{2633,8900,3},{2633,8897,3},{2635,8895,3},{2637,8892,3}, {2642,8892,3},{2645,8897,3},{2640,8903,3},{2638,8907,3},{2635,8907,3},{2633,8913,3}, {2632,8912,3},{2633,8910,3},{2632,8908,3},{2627,8912,3},{2613,8915,3},{2612,8923,3}, {2610,8925,3},{2607,8925,3},{2607,8928,3},{2602,8932,3},{2600,8937,3},{2603,8940,3}, {2600,8943,3},{2600,8952,3},{2597,8955,3},{2597,8957,3},{2600,8958,3},{2603,8958,3}, {2607,8963,3},{2608,8963,3},{2610,8958,3},{2610,8960,3},{2613,8963,3},{2613,8960,3}, {2615,8958,3},{2618,8962,3},{2617,8965,3},{2618,8963,3},{2622,8963,3},{2623,8968,3}, {2620,8968,3},{2617,8968,3},{2615,8973,3},{2608,8978,3},{2605,8978,3},{2598,8982,3}, {2600,8983,3},{2598,8985,3},{2595,8982,3},{2593,8987,3},{2582,8980,3},{2577,8983,3}, {2573,8982,3},{2563,8987,3},{2552,8985,3},{2537,8982,3},{2528,8985,3},{2528,8988,3}, {2532,8992,3},{2528,8997,3},{2522,9012,3},{2520,9028,3},{2515,9038,3},{2515,9043,3}, {2517,9052,3},{2518,9065,3},{2517,9068,3},{2517,9075,3},{2518,9077,3},{2515,9082,3}, {2515,9087,3},{2517,9097,3},{2520,9108,3},{2520,9123,3},{2520,9125,3},{2517,9133,3}, {2517,9140,3},{2513,9148,3},{2515,9155,3},{2517,9158,3},{2513,9160,3},{2513,9165,3}, {2513,9170,3},{2517,9172,3},{2515,9175,3},{2517,9175,3},{2518,9193,3},{2517,9198,3}, {2518,9203,3},{2517,9212,3},{2515,9215,3},{2513,9220,3},{2510,9223,3},{2508,9233,3}, {2505,9235,3},{2503,9240,3},{2497,9242,3},{2497,9245,3},{2495,9245,3},{2493,9248,3}, {2488,9250,3},{2487,9248,3},{2485,9238,3},{2490,9230,3},{2490,9225,3},{2488,9225,3}, {2482,9227,3},{2475,9225,3},{2463,9220,3},{2457,9218,3},{2452,9213,3},{2443,9213,3}, {2440,9212,3},{2437,9208,3},{2438,9197,3},{2437,9197,3},{2433,9200,3},{2432,9198,3}, {2435,9195,3},{2433,9192,3},{2427,9193,3},{2415,9190,3},{2418,9183,3},{2423,9183,3}, {2423,9175,3},{2415,9175,3},{2415,9170,3},{2422,9165,3},{2415,9163,3},{2412,9163,3}, {2410,9162,3},{2408,9153,3},{2412,9142,3},{2410,9137,3},{2405,9138,3},{2400,9137,3}, {2398,9135,3},{2400,9132,3},{2397,9127,3},{2390,9123,3},{2385,9125,3},{2377,9122,3}, {2373,9117,3},{2370,9117,3},{2368,9120,3},{2365,9118,3},{2367,9117,3},{2363,9117,3}, {2355,9120,3},{2352,9120,3},{2348,9125,3},{2337,9128,3},{2337,9132,3},{2333,9128,3}, {2332,9130,3},{2313,9133,3},{2308,9135,3},{2307,9138,3},{2308,9140,3},{2320,9138,3}, {2327,9140,3},{2327,9143,3},{2323,9145,3},{2322,9145,3},{2322,9147,3},{2320,9147,3}, {2318,9150,3},{2308,9153,3},{2307,9152,3},{2305,9155,3},{2300,9155,3},{2298,9157,3}, {2297,9160,3},{2295,9162,3},{2298,9165,3},{2300,9172,3},{2303,9178,3},{2307,9178,3}, {2308,9182,3},{2327,9177,3},{2342,9185,3},{2343,9188,3},{2345,9193,3},{2350,9197,3}, {2358,9197,3},{2367,9193,3},{2373,9195,3},{2373,9197,3},{2365,9203,3},{2365,9207,3}, {2373,9213,3},{2373,9217,3},{2372,9220,3},{2365,9220,3},{2365,9222,3},{2372,9225,3}, {2372,9227,3},{2370,9228,3},{2363,9228,3},{2360,9228,3},{2355,9230,3},{2343,9232,3}, {2337,9237,3},{2328,9238,3},{2322,9235,3},{2310,9237,3},{2305,9238,3},{2293,9238,3}, {2288,9245,3},{2285,9247,3},{2283,9245,3},{2277,9247,3},{2272,9252,3},{2260,9253,3}, {2255,9253,3},{2252,9255,3},{2220,9258,3},{2217,9260,3},{2213,9260,3},{2213,9257,3}, {2198,9260,3},{2188,9262,3},{2180,9260,3},{2163,9260,3},{2147,9262,3},{2130,9267,3}, {2125,9260,3},{2130,9258,3},{2138,9255,3},{2135,9248,3},{2137,9243,3},{2143,9242,3}, {2147,9237,3},{2142,9232,3},{2142,9227,3},{2137,9225,3},{2133,9220,3},{2130,9220,3}, {2123,9222,3},{2118,9220,3},{2113,9220,3},{2112,9220,3},{2107,9225,3},{2093,9225,3}, {2088,9230,3},{2080,9233,3},{2075,9233,3},{2075,9232,3},{2095,9220,3},{2102,9218,3}, {2117,9203,3},{2130,9203,3},{2145,9195,3},{2152,9200,3},{2157,9200,3},{2160,9202,3}, {2163,9200,3},{2167,9202,3},{2165,9198,3},{2168,9197,3},{2168,9195,3},{2178,9195,3}, {2180,9193,3},{2178,9190,3},{2185,9192,3},{2193,9192,3},{2212,9185,3},{2212,9183,3}, {2218,9182,3},{2222,9183,3},{2227,9183,3},{2227,9182,3},{2223,9182,3},{2223,9178,3}, {2238,9175,3},{2248,9170,3},{2260,9162,3},{2265,9160,3},{2278,9145,3},{2280,9143,3}, {2287,9148,3},{2290,9147,3},{2292,9148,3},{2290,9145,3},{2288,9147,3},{2285,9145,3}, {2277,9142,3},{2277,9138,3},{2283,9135,3},{2288,9133,3},{2285,9132,3},{2278,9133,3}, {2282,9132,3},{2282,9128,3},{2280,9125,3},{2282,9113,3},{2283,9110,3},{2282,9110,3}, {2282,9102,3},{2287,9093,3},{2288,9083,3},{2293,9077,3},{2290,9080,3},{2288,9080,3}, {2288,9077,3},{2290,9073,3},{2297,9068,3},{2302,9062,3},{2310,9057,3},{2315,9058,3}, {2327,9065,3},{2333,9063,3},{2335,9060,3},{2338,9058,3},{2348,9058,3},{2352,9063,3}, {2350,9058,3},{2358,9057,3},{2360,9050,3},{2357,9047,3},{2358,9052,3},{2353,9057,3}, {2347,9057,3},{2343,9055,3},{2340,9052,3},{2347,9028,3},{2353,9017,3},{2362,9010,3}, {2368,8990,3},{2373,8987,3},{2380,8978,3},{2390,8977,3},{2395,8972,3},{2397,8972,3}, {2398,8975,3},{2400,8967,3},{2397,8968,3},{2393,8968,3},{2390,8972,3},{2383,8972,3}, {2382,8968,3},{2382,8962,3},{2385,8945,3},{2395,8935,3},{2395,8925,3},{2392,8922,3}, {2388,8927,3},{2388,8937,3},{2385,8943,3},{2378,8950,3},{2380,8963,3},{2377,8972,3}, {2377,8978,3},{2370,8985,3},{2358,8995,3},{2357,8997,3},{2358,9000,3},{2360,9005,3}, {2358,9010,3},{2353,9013,3},{2343,9015,3},{2338,9018,3},{2345,9018,3},{2347,9018,3}, {2338,9035,3},{2342,9035,3},{2335,9047,3},{2333,9053,3},{2330,9055,3},{2327,9055,3}, {2318,9050,3},{2315,9052,3},{2313,9053,3},{2312,9053,3},{2310,9052,3},{2310,9045,3}, {2303,9043,3},{2302,9038,3},{2297,9053,3},{2295,9055,3},{2293,9062,3},{2290,9065,3}, {2290,9067,3},{2288,9067,3},{2283,9060,3},{2282,9055,3},{2282,9045,3},{2285,9040,3}, {2283,9038,3},{2278,9042,3},{2280,9045,3},{2278,9047,3},{2275,9045,3},{2272,9048,3}, {2262,9050,3},{2255,9057,3},{2247,9058,3},{2245,9062,3},{2237,9062,3},{2227,9060,3}, {2223,9057,3},{2222,9057,3},{2218,9050,3},{2208,9045,3},{2207,9043,3},{2208,9037,3}, {2200,9032,3},{2192,9028,3},{2187,9023,3},{2185,9025,3},{2183,9025,3},{2180,9020,3}, {2178,9015,3},{2180,9010,3},{2183,9008,3},{2185,9010,3},{2190,9012,3},{2190,9010,3}, {2183,9007,3},{2183,9003,3},{2183,9002,3},{2187,9003,3},{2195,9002,3},{2198,9007,3}, {2203,9008,3},{2208,9012,3},{2207,9008,3},{2200,9005,3},{2200,9000,3},{2205,8998,3}, {2200,8995,3},{2203,8992,3},{2212,8992,3},{2218,8990,3},{2228,8988,3},{2237,8992,3}, {2245,8998,3},{2247,8998,3},{2242,8993,3},{2238,8990,3},{2242,8987,3},{2235,8988,3}, {2227,8983,3},{2217,8987,3},{2208,8987,3},{2207,8980,3},{2203,8985,3},{2197,8985,3}, {2192,8988,3},{2188,8988,3},{2187,8983,3},{2183,8982,3},{2183,8977,3},{2185,8975,3}, {2182,8973,3},{2185,8967,3},{2190,8967,3},{2192,8965,3},{2185,8962,3},{2178,8970,3}, {2177,8970,3},{2175,8965,3},{2177,8960,3},{2175,8958,3},{2172,8960,3},{2170,8960,3}, {2170,8958,3},{2172,8955,3},{2182,8952,3},{2188,8957,3},{2193,8957,3},{2198,8955,3}, {2210,8960,3},{2220,8957,3},{2223,8960,3},{2233,8962,3},{2227,8958,3},{2223,8958,3}, {2220,8955,3},{2212,8958,3},{2198,8955,3},{2198,8953,3},{2202,8952,3},{2208,8953,3}, {2218,8948,3},{2227,8950,3},{2228,8947,3},{2222,8947,3},{2218,8947,3},{2213,8947,3}, {2210,8948,3},{2213,8950,3},{2208,8952,3},{2205,8952,3},{2203,8948,3},{2197,8952,3}, {2192,8952,3},{2190,8952,3},{2188,8948,3},{2185,8945,3},{2178,8947,3},{2177,8947,3}, {2172,8942,3},{2172,8940,3},{2173,8937,3},{2177,8937,3},{2183,8937,3},{2187,8938,3}, {2190,8938,3},{2197,8935,3},{2188,8935,3},{2187,8932,3},{2182,8932,3},{2182,8928,3}, {2175,8930,3},{2168,8927,3},{2167,8930,3},{2163,8923,3},{2165,8920,3},{2172,8922,3}, {2182,8918,3},{2178,8915,3},{2182,8910,3},{2185,8910,3},{2192,8908,3},{2202,8908,3}, {2205,8907,3},{2212,8907,3},{2213,8905,3},{2208,8903,3},{2202,8907,3},{2193,8907,3}, {2192,8903,3},{2732,8892,131},{2747,8897,3},{2750,8900,3},{2757,8913,3}, {2762,8913,3},{2780,8923,3},{2787,8937,3},{2805,8948,3},{2808,8955,3},{2815,8958,3}, {2820,8980,3},{2823,8980,3},{2830,8990,3},{2828,8993,3},{2830,8998,3},{2832,9000,3}, {2830,9018,3},{2825,9038,3},{2823,9040,3},{2820,9040,3},{2812,9035,3},{2808,9037,3}, {2807,9047,3},{2808,9053,3},{2807,9060,3},{2810,9068,3},{2808,9073,3},{2805,9083,3}, {2805,9092,3},{2803,9095,3},{2798,9102,3},{2797,9108,3},{2798,9113,3},{2807,9122,3}, {2807,9130,3},{2810,9132,3},{2805,9133,3},{2800,9143,3},{2797,9160,3},{2793,9167,3}, {2792,9168,3},{2787,9165,3},{2777,9165,3},{2772,9165,3},{2767,9160,3},{2765,9160,3}, {2755,9162,3},{2748,9167,3},{2745,9177,3},{2742,9177,3},{2742,9178,3},{2745,9187,3}, {2745,9195,3},{2748,9200,3},{2737,9208,3},{2728,9212,3},{2725,9207,3},{2718,9205,3}, {2717,9202,3},{2710,9202,3},{2708,9202,3},{2702,9208,3},{2693,9212,3},{2690,9210,3}, {2687,9208,3},{2685,9202,3},{2685,9198,3},{2690,9192,3},{2687,9193,3},{2685,9190,3}, {2683,9192,3},{2680,9190,3},{2682,9188,3},{2685,9187,3},{2687,9185,3},{2680,9172,3}, {2682,9170,3},{2680,9167,3},{2682,9162,3},{2680,9155,3},{2687,9150,3},{2688,9142,3}, {2680,9138,3},{2678,9132,3},{2678,9128,3},{2680,9123,3},{2682,9108,3},{2678,9103,3}, {2677,9070,3},{2680,9057,3},{2690,9038,3},{2690,9035,3},{2685,9030,3},{2685,9022,3}, {2682,9018,3},{2678,9018,3},{2675,9015,3},{2672,8990,3},{2673,8985,3},{2670,8985,3}, {2670,8977,3},{2673,8968,3},{2672,8963,3},{2673,8962,3},{2677,8965,3},{2682,8953,3}, {2680,8947,3},{2687,8937,3},{2685,8930,3},{2682,8927,3},{2682,8920,3},{2682,8913,3}, {2683,8910,3},{2688,8908,3},{2693,8903,3},{2692,8898,3},{2693,8895,3},{2697,8895,3}, {2698,8892,3},{2695,8888,3},{2708,8887,3},{2713,8880,3},{2715,8875,3},{2725,8880,3}, {2728,8890,3},{2732,8892,3},{3020,8102,131},{3015,8107,3},{3012,8108,3}, {3010,8110,3},{3005,8108,3},{3002,8113,3},{3002,8123,3},{3008,8128,3},{3015,8125,3}, {3015,8135,3},{3020,8137,3},{3025,8138,3},{3027,8143,3},{3030,8148,3},{3045,8162,3}, {3042,8167,3},{3033,8173,3},{3027,8175,3},{3022,8180,3},{3025,8182,3},{3017,8195,3}, {3015,8217,3},{3008,8223,3},{3003,8233,3},{3002,8245,3},{2995,8260,3},{2977,8277,3}, {2975,8283,3},{2967,8295,3},{2967,8308,3},{2955,8325,3},{2940,8340,3},{2917,8345,3}, {2913,8353,3},{2908,8358,3},{2905,8363,3},{2907,8372,3},{2913,8380,3},{2930,8388,3}, {2933,8397,3},{2928,8400,3},{2928,8412,3},{2918,8408,3},{2912,8412,3},{2905,8410,3}, {2898,8415,3},{2887,8412,3},{2880,8415,3},{2880,8420,3},{2882,8425,3},{2880,8433,3}, {2873,8435,3},{2873,8442,3},{2870,8447,3},{2872,8460,3},{2867,8463,3},{2865,8468,3}, {2862,8468,3},{2858,8485,3},{2863,8500,3},{2867,8505,3},{2868,8510,3},{2863,8512,3}, {2857,8512,3},{2843,8510,3},{2833,8515,3},{2832,8522,3},{2827,8530,3},{2828,8533,3}, {2827,8537,3},{2832,8542,3},{2832,8548,3},{2830,8557,3},{2818,8573,3},{2822,8577,3}, {2820,8580,3},{2820,8585,3},{2810,8592,3},{2802,8592,3},{2797,8595,3},{2793,8595,3}, {2792,8607,3},{2792,8608,3},{2793,8608,3},{2807,8607,3},{2810,8613,3},{2813,8617,3}, {2810,8620,3},{2807,8620,3},{2797,8623,3},{2795,8635,3},{2795,8642,3},{2792,8643,3}, {2792,8652,3},{2793,8653,3},{2797,8653,3},{2802,8652,3},{2803,8655,3},{2808,8657,3}, {2807,8663,3},{2808,8667,3},{2810,8670,3},{2810,8673,3},{2803,8677,3},{2800,8687,3}, {2797,8693,3},{2788,8713,3},{2783,8715,3},{2780,8720,3},{2778,8727,3},{2787,8742,3}, {2782,8742,3},{2785,8750,3},{2783,8752,3},{2785,8755,3},{2780,8762,3},{2780,8765,3}, {2782,8773,3},{2780,8780,3},{2782,8785,3},{2782,8790,3},{2783,8795,3},{2790,8798,3}, {2792,8803,3},{2790,8805,3},{2785,8808,3},{2787,8815,3},{2785,8820,3},{2782,8818,3}, {2778,8818,3},{2760,8812,3},{2758,8808,3},{2753,8805,3},{2748,8805,3},{2743,8807,3}, {2740,8803,3},{2733,8807,3},{2723,8802,3},{2715,8802,3},{2712,8800,3},{2705,8803,3}, {2703,8807,3},{2698,8812,3},{2693,8813,3},{2687,8818,3},{2677,8820,3},{2667,8817,3}, {2660,8813,3},{2653,8810,3},{2648,8812,3},{2643,8810,3},{2637,8802,3},{2640,8795,3}, {2643,8792,3},{2645,8793,3},{2647,8790,3},{2647,8788,3},{2643,8785,3},{2647,8778,3}, {2645,8778,3},{2642,8777,3},{2643,8768,3},{2640,8765,3},{2638,8760,3},{2642,8753,3}, {2643,8747,3},{2640,8737,3},{2635,8735,3},{2635,8733,3},{2637,8727,3},{2642,8725,3}, {2640,8715,3},{2642,8713,3},{2645,8710,3},{2658,8707,3},{2653,8700,3},{2653,8693,3}, {2650,8690,3},{2647,8688,3},{2643,8683,3},{2645,8677,3},{2642,8673,3},{2648,8662,3}, {2650,8657,3},{2653,8653,3},{2657,8642,3},{2658,8638,3},{2658,8633,3},{2660,8633,3}, {2662,8633,3},{2662,8628,3},{2658,8620,3},{2660,8620,3},{2660,8613,3},{2667,8603,3}, {2665,8597,3},{2662,8595,3},{2657,8585,3},{2660,8583,3},{2660,8580,3},{2667,8573,3}, {2677,8573,3},{2680,8573,3},{2687,8563,3},{2680,8548,3},{2680,8542,3},{2677,8538,3}, {2673,8533,3},{2677,8522,3},{2680,8518,3},{2685,8520,3},{2687,8518,3},{2687,8512,3}, {2685,8503,3},{2688,8503,3},{2690,8497,3},{2695,8497,3},{2697,8490,3},{2702,8485,3}, {2700,8475,3},{2705,8465,3},{2713,8468,3},{2722,8468,3},{2730,8465,3},{2733,8462,3}, {2738,8432,3},{2740,8428,3},{2745,8425,3},{2743,8422,3},{2747,8420,3},{2750,8415,3}, {2752,8415,3},{2752,8410,3},{2745,8403,3},{2745,8392,3},{2743,8383,3},{2742,8383,3}, {2737,8388,3},{2735,8385,3},{2747,8360,3},{2748,8340,3},{2745,8338,3},{2742,8340,3}, {2740,8338,3},{2735,8335,3},{2733,8332,3},{2735,8327,3},{2738,8325,3},{2745,8318,3}, {2745,8303,3},{2747,8295,3},{2750,8292,3},{2750,8277,3},{2755,8275,3},{2768,8272,3}, {2772,8270,3},{2767,8245,3},{2768,8242,3},{2773,8235,3},{2775,8232,3},{2785,8217,3}, {2787,8212,3},{2792,8208,3},{2792,8200,3},{2790,8195,3},{2787,8192,3},{2785,8188,3}, {2792,8178,3},{2797,8170,3},{2798,8163,3},{2802,8160,3},{2808,8148,3},{2813,8147,3}, {2815,8143,3},{2817,8138,3},{2813,8137,3},{2813,8132,3},{2815,8132,3},{2815,8130,3}, {2817,8132,3},{2820,8132,3},{2825,8125,3},{2837,8120,3},{2840,8102,3},{2843,8102,3}, {2843,8093,3},{2847,8090,3},{2850,8090,3},{2850,8083,3},{2853,8078,3},{2857,8075,3}, {2858,8070,3},{2863,8067,3},{2865,8058,3},{2868,8058,3},{2868,8053,3},{2865,8050,3}, {2858,8052,3},{2857,8052,3},{2863,8043,3},{2863,8035,3},{2870,8032,3},{2872,8027,3}, {2875,8025,3},{2877,8018,3},{2882,8013,3},{2883,8007,3},{2892,8005,3},{2895,8007,3}, {2900,8013,3},{2903,8012,3},{2910,8015,3},{2912,8017,3},{2913,8023,3},{2915,8025,3}, {2920,8023,3},{2922,8025,3},{2920,8028,3},{2932,8030,3},{2932,8028,3},{2938,8027,3}, {2942,8023,3},{2945,8025,3},{2945,8028,3},{2948,8028,3},{2952,8035,3},{2955,8035,3}, {2960,8040,3},{2965,8042,3},{2967,8038,3},{2975,8037,3},{2978,8042,3},{2980,8048,3}, {2985,8053,3},{2995,8060,3},{2997,8068,3},{3002,8072,3},{3002,8075,3},{3005,8077,3}, {3013,8087,3},{3017,8087,3},{3020,8088,3},{3022,8092,3},{3018,8092,3},{3018,8095,3}, {3020,8102,3},{2520,6162,131},{2532,6165,3},{2565,6167,3},{2568,6168,3}, {2573,6173,3},{2572,6180,3},{2575,6183,3},{2582,6183,3},{2585,6182,3},{2587,6185,3}, {2588,6188,3},{2592,6183,3},{2597,6182,3},{2600,6185,3},{2607,6183,3},{2627,6188,3}, {2628,6197,3},{2633,6203,3},{2632,6208,3},{2628,6212,3},{2628,6223,3},{2632,6225,3}, {2633,6223,3},{2633,6227,3},{2637,6228,3},{2642,6227,3},{2647,6232,3},{2650,6232,3}, {2653,6237,3},{2655,6242,3},{2657,6243,3},{2658,6262,3},{2662,6267,3},{2660,6270,3}, {2662,6275,3},{2663,6277,3},{2665,6283,3},{2663,6318,3},{2672,6320,3},{2682,6318,3}, {2685,6325,3},{2708,6325,3},{2713,6333,3},{2723,6327,3},{2723,6323,3},{2727,6320,3}, {2727,6318,3},{2725,6315,3},{2725,6305,3},{2722,6295,3},{2722,6285,3},{2727,6278,3}, {2728,6280,3},{2732,6282,3},{2737,6280,3},{2748,6285,3},{2775,6283,3},{2803,6277,3}, {2822,6280,3},{2828,6278,3},{2827,6260,3},{2832,6253,3},{2838,6250,3},{2838,6247,3}, {2842,6243,3},{2845,6233,3},{2852,6207,3},{2857,6190,3},{2865,6182,3},{2873,6173,3}, {2878,6167,3},{2887,6160,3},{2902,6153,3},{2905,6148,3},{2908,6152,3},{2910,6148,3}, {2913,6147,3},{2915,6143,3},{2922,6140,3},{2927,6137,3},{2930,6135,3},{2935,6137,3}, {2938,6137,3},{2940,6132,3},{2943,6128,3},{2948,6123,3},{2953,6120,3},{2957,6115,3}, {2962,6112,3},{2965,6107,3},{2970,6103,3},{2973,6098,3},{2978,6095,3},{2982,6092,3}, {2987,6087,3},{2985,6092,3},{2983,6098,3},{2982,6103,3},{2980,6110,3},{2978,6117,3}, {2977,6122,3},{2975,6128,3},{2973,6135,3},{2972,6140,3},{2970,6147,3},{2968,6153,3}, {2967,6158,3},{2965,6165,3},{2962,6172,3},{2960,6177,3},{2958,6183,3},{2957,6188,3}, {2955,6195,3},{2953,6202,3},{2952,6207,3},{2950,6213,3},{2948,6220,3},{2947,6225,3}, {2945,6232,3},{2943,6238,3},{2942,6243,3},{2940,6248,3},{2942,6257,3},{2942,6262,3}, {2942,6268,3},{2943,6273,3},{2943,6280,3},{2943,6287,3},{2945,6292,3},{2945,6298,3}, {2945,6305,3},{2947,6312,3},{2947,6317,3},{2947,6323,3},{2948,6330,3},{2948,6335,3}, {2948,6342,3},{2950,6347,3},{2950,6353,3},{2950,6358,3},{2950,6365,3},{2948,6372,3}, {2947,6377,3},{2947,6383,3},{2945,6390,3},{2943,6397,3},{2943,6402,3},{2940,6407,3}, {2938,6412,3},{2942,6413,3},{2945,6417,3},{2950,6420,3},{2952,6427,3},{2953,6432,3}, {2955,6438,3},{2957,6443,3},{2958,6450,3},{2958,6455,3},{2958,6462,3},{2958,6467,3}, {2958,6473,3},{2958,6480,3},{2957,6485,3},{2957,6492,3},{2955,6498,3},{2953,6503,3}, {2957,6510,3},{2957,6517,3},{2958,6522,3},{2960,6528,3},{2962,6533,3},{2963,6540,3}, {2965,6547,3},{2967,6552,3},{2968,6558,3},{2970,6563,3},{2972,6570,3},{2973,6577,3}, {2975,6582,3},{2975,6588,3},{2977,6593,3},{2978,6600,3},{2980,6607,3},{2982,6612,3}, {2983,6618,3},{2985,6625,3},{2990,6632,3},{2995,6633,3},{2995,6637,3},{3005,6625,3}, {3007,6623,3},{3023,6633,3},{3030,6632,3},{3045,6635,3},{3050,6633,3},{3052,6630,3}, {3057,6628,3},{3093,6640,3},{3098,6658,3},{3108,6668,3},{3122,6672,3},{3122,6680,3}, {3128,6685,3},{3132,6697,3},{3132,6705,3},{3125,6703,3},{3125,6705,3},{3125,6717,3}, {3122,6720,3},{3122,6728,3},{3122,6738,3},{3127,6758,3},{3127,6762,3},{3133,6772,3}, {3133,6778,3},{3135,6780,3},{3140,6778,3},{3142,6773,3},{3140,6767,3},{3143,6762,3}, {3147,6762,3},{3153,6758,3},{3153,6772,3},{3158,6782,3},{3163,6787,3},{3163,6798,3}, {3167,6800,3},{3170,6807,3},{3173,6808,3},{3177,6813,3},{3183,6817,3},{3182,6823,3}, {3178,6827,3},{3177,6837,3},{3173,6853,3},{3177,6857,3},{3178,6843,3},{3180,6845,3}, {3183,6855,3},{3182,6858,3},{3178,6862,3},{3178,6870,3},{3170,6873,3},{3167,6878,3}, {3162,6880,3},{3160,6883,3},{3162,6893,3},{3165,6895,3},{3165,6903,3},{3177,6917,3}, {3187,6922,3},{3193,6933,3},{3215,6927,3},{3232,6928,3},{3245,6925,3},{3253,6928,3}, {3257,6938,3},{3267,6945,3},{3273,6943,3},{3277,6940,3},{3285,6948,3},{3287,6952,3}, {3300,6948,3},{3303,6950,3},{3308,6958,3},{3308,6968,3},{3308,6970,3},{3313,6978,3}, {3310,6983,3},{3308,6988,3},{3313,6997,3},{3313,7003,3},{3320,7007,3},{3320,7015,3}, {3333,7033,3},{3342,7028,3},{3347,7023,3},{3347,7020,3},{3352,7017,3},{3360,7020,3}, {3363,7020,3},{3367,7015,3},{3373,7013,3},{3373,7010,3},{3375,6998,3},{3382,6995,3}, {3385,6992,3},{3390,6990,3},{3393,6987,3},{3398,6990,3},{3402,6990,3},{3403,6990,3}, {3405,7000,3},{3402,7010,3},{3402,7017,3},{3400,7020,3},{3398,7030,3},{3397,7033,3}, {3395,7078,3},{3397,7088,3},{3398,7092,3},{3402,7090,3},{3402,7098,3},{3403,7100,3}, {3405,7107,3},{3407,7108,3},{3412,7108,3},{3417,7113,3},{3427,7112,3},{3435,7117,3}, {3437,7115,3},{3438,7108,3},{3447,7100,3},{3450,7098,3},{3455,7098,3},{3457,7108,3}, {3462,7110,3},{3467,7110,3},{3473,7118,3},{3475,7123,3},{3477,7123,3},{3482,7128,3}, {3487,7130,3},{3488,7132,3},{3495,7150,3},{3502,7153,3},{3505,7153,3},{3508,7153,3}, {3512,7157,3},{3513,7162,3},{3520,7167,3},{3530,7155,3},{3533,7155,3},{3542,7165,3}, {3550,7160,3},{3557,7162,3},{3562,7152,3},{3572,7155,3},{3575,7148,3},{3578,7150,3}, {3587,7143,3},{3590,7138,3},{3595,7138,3},{3597,7128,3},{3605,7118,3},{3610,7123,3}, {3613,7125,3},{3617,7133,3},{3620,7133,3},{3622,7142,3},{3632,7150,3},{3633,7158,3}, {3637,7157,3},{3640,7160,3},{3647,7163,3},{3647,7165,3},{3640,7177,3},{3640,7180,3}, {3642,7182,3},{3647,7178,3},{3648,7180,3},{3650,7190,3},{3658,7202,3},{3658,7207,3}, {3663,7207,3},{3665,7218,3},{3667,7220,3},{3670,7217,3},{3672,7218,3},{3675,7232,3}, {3677,7247,3},{3682,7257,3},{3683,7287,3},{3687,7297,3},{3685,7302,3},{3688,7310,3}, {3688,7323,3},{3687,7330,3},{3688,7337,3},{3690,7348,3},{3688,7355,3},{3690,7358,3}, {3692,7367,3},{3690,7385,3},{3682,7403,3},{3683,7412,3},{3690,7415,3},{3690,7425,3}, {3697,7435,3},{3700,7442,3},{3702,7448,3},{3697,7455,3},{3703,7457,3},{3707,7468,3}, {3702,7473,3},{3702,7482,3},{3697,7488,3},{3692,7490,3},{3695,7492,3},{3698,7497,3}, {3700,7515,3},{3697,7520,3},{3692,7540,3},{3685,7543,3},{3677,7543,3},{3673,7545,3}, {3673,7553,3},{3677,7553,3},{3677,7557,3},{3677,7567,3},{3673,7575,3},{3667,7585,3}, {3662,7590,3},{3655,7593,3},{3645,7600,3},{3642,7602,3},{3632,7598,3},{3623,7603,3}, {3620,7600,3},{3618,7600,3},{3617,7600,3},{3612,7592,3},{3608,7593,3},{3602,7597,3}, {3600,7608,3},{3598,7612,3},{3590,7615,3},{3583,7615,3},{3582,7618,3},{3582,7628,3}, {3582,7633,3},{3583,7637,3},{3583,7642,3},{3587,7645,3},{3587,7653,3},{3592,7657,3}, {3590,7658,3},{3582,7657,3},{3575,7658,3},{3572,7672,3},{3565,7678,3},{3565,7687,3}, {3560,7692,3},{3558,7708,3},{3555,7712,3},{3553,7718,3},{3553,7732,3},{3547,7742,3}, {3548,7752,3},{3547,7763,3},{3547,7770,3},{3547,7773,3},{3550,7778,3},{3550,7782,3}, {3547,7777,3},{3543,7770,3},{3542,7765,3},{3538,7760,3},{3535,7753,3},{3533,7748,3}, {3530,7743,3},{3527,7737,3},{3523,7732,3},{3522,7727,3},{3518,7720,3},{3515,7715,3}, {3513,7708,3},{3510,7705,3},{3505,7707,3},{3500,7705,3},{3497,7700,3},{3492,7695,3}, {3487,7695,3},{3478,7695,3},{3475,7690,3},{3473,7682,3},{3475,7673,3},{3478,7663,3}, {3475,7650,3},{3470,7640,3},{3463,7635,3},{3465,7620,3},{3463,7610,3},{3450,7582,3}, {3447,7553,3},{3450,7540,3},{3462,7527,3},{3467,7517,3},{3467,7495,3},{3470,7482,3}, {3468,7470,3},{3472,7462,3},{3477,7455,3},{3478,7437,3},{3478,7432,3},{3473,7420,3}, {3470,7417,3},{3465,7417,3},{3468,7405,3},{3467,7397,3},{3465,7395,3},{3462,7393,3}, {3457,7395,3},{3455,7392,3},{3445,7387,3},{3440,7378,3},{3433,7375,3},{3432,7377,3}, {3435,7385,3},{3433,7387,3},{3433,7398,3},{3432,7405,3},{3428,7407,3},{3418,7407,3}, {3415,7403,3},{3413,7395,3},{3410,7393,3},{3407,7395,3},{3405,7397,3},{3403,7402,3}, {3405,7422,3},{3398,7428,3},{3395,7430,3},{3388,7423,3},{3382,7413,3},{3378,7405,3}, {3375,7402,3},{3368,7400,3},{3365,7400,3},{3360,7407,3},{3358,7413,3},{3342,7418,3}, {3332,7417,3},{3328,7410,3},{3327,7402,3},{3325,7400,3},{3322,7402,3},{3317,7412,3}, {3305,7425,3},{3303,7432,3},{3277,7442,3},{3278,7447,3},{3277,7448,3},{3273,7452,3}, {3277,7455,3},{3275,7458,3},{3275,7463,3},{3277,7463,3},{3282,7463,3},{3283,7470,3}, {3283,7472,3},{3273,7467,3},{3267,7468,3},{3260,7465,3},{3250,7468,3},{3248,7472,3}, {3247,7475,3},{3248,7485,3},{3248,7488,3},{3245,7493,3},{3248,7502,3},{3247,7507,3}, {3242,7515,3},{3240,7522,3},{3235,7532,3},{3228,7538,3},{3223,7537,3},{3220,7533,3}, {3217,7533,3},{3215,7530,3},{3215,7525,3},{3212,7518,3},{3210,7517,3},{3208,7517,3}, {3208,7513,3},{3207,7510,3},{3210,7505,3},{3210,7502,3},{3208,7502,3},{3207,7503,3}, {3207,7498,3},{3203,7497,3},{3203,7488,3},{3202,7487,3},{3202,7482,3},{3195,7478,3}, {3195,7470,3},{3188,7465,3},{3182,7453,3},{3177,7455,3},{3177,7452,3},{3173,7452,3}, {3160,7460,3},{3152,7460,3},{3148,7463,3},{3145,7463,3},{3140,7458,3},{3128,7455,3}, {3115,7453,3},{3112,7457,3},{3112,7463,3},{3108,7468,3},{3107,7468,3},{3105,7465,3}, {3102,7463,3},{3107,7455,3},{3098,7452,3},{3097,7447,3},{3092,7442,3},{3090,7437,3}, {3085,7437,3},{3083,7432,3},{3080,7430,3},{3077,7427,3},{3073,7427,3},{3072,7423,3}, {3068,7420,3},{3062,7410,3},{3053,7408,3},{3053,7400,3},{3050,7397,3},{3047,7397,3}, {3048,7393,3},{3042,7393,3},{3042,7390,3},{3040,7390,3},{3038,7387,3},{3037,7385,3}, {3033,7390,3},{3032,7393,3},{3020,7397,3},{3007,7380,3},{3002,7358,3},{2995,7340,3}, {2957,7327,3},{2925,7308,3},{2915,7298,3},{2903,7295,3},{2895,7273,3},{2877,7238,3}, {2868,7230,3},{2840,7220,3},{2833,7213,3},{2822,7200,3},{2812,7192,3},{2797,7190,3}, {2788,7163,3},{2787,7140,3},{2785,7123,3},{2772,7093,3},{2770,7083,3},{2773,7073,3}, {2787,7067,3},{2793,7067,3},{2800,7058,3},{2803,7053,3},{2805,7048,3},{2802,7037,3}, {2795,7028,3},{2783,7013,3},{2760,7003,3},{2750,6993,3},{2742,6988,3},{2732,6975,3}, {2728,6970,3},{2718,6958,3},{2700,6952,3},{2682,6948,3},{2675,6952,3},{2667,6972,3}, {2660,6980,3},{2658,6985,3},{2660,7010,3},{2657,7015,3},{2653,7018,3},{2643,7018,3}, {2638,7018,3},{2632,7017,3},{2625,7017,3},{2608,7010,3},{2598,7008,3},{2590,7013,3}, {2583,7018,3},{2580,7022,3},{2570,7028,3},{2567,7038,3},{2568,7053,3},{2572,7062,3}, {2568,7067,3},{2540,7068,3},{2533,7073,3},{2527,7075,3},{2515,7088,3},{2493,7095,3}, {2483,7102,3},{2475,7105,3},{2468,7108,3},{2465,7100,3},{2460,7098,3},{2455,7098,3}, {2453,7100,3},{2448,7100,3},{2445,7100,3},{2445,7108,3},{2443,7110,3},{2442,7110,3}, {2440,7105,3},{2437,7103,3},{2437,7097,3},{2437,7093,3},{2432,7087,3},{2427,7088,3}, {2423,7078,3},{2423,7072,3},{2425,7065,3},{2428,7058,3},{2437,7057,3},{2442,7060,3}, {2443,7058,3},{2442,7043,3},{2437,7038,3},{2437,7032,3},{2433,7025,3},{2432,7012,3}, {2420,7007,3},{2417,7003,3},{2417,6972,3},{2428,6960,3},{2430,6932,3},{2428,6925,3}, {2425,6918,3},{2430,6908,3},{2428,6905,3},{2425,6898,3},{2433,6893,3},{2432,6890,3}, {2425,6887,3},{2423,6885,3},{2427,6883,3},{2428,6885,3},{2433,6882,3},{2433,6878,3}, {2432,6875,3},{2397,6875,3},{2397,6838,3},{2395,6838,3},{2397,6837,3},{2397,6835,3}, {2393,6835,3},{2392,6833,3},{2392,6832,3},{2395,6830,3},{2392,6827,3},{2390,6828,3}, {2388,6822,3},{2377,6820,3},{2375,6818,3},{2375,6817,3},{2383,6818,3},{2387,6817,3}, {2390,6815,3},{2388,6815,3},{2383,6817,3},{2375,6815,3},{2372,6817,3},{2368,6815,3}, {2370,6812,3},{2372,6812,3},{2373,6810,3},{2370,6810,3},{2372,6805,3},{2377,6808,3}, {2380,6807,3},{2382,6810,3},{2388,6805,3},{2392,6807,3},{2393,6802,3},{2383,6805,3}, {2377,6802,3},{2380,6800,3},{2380,6795,3},{2383,6790,3},{2387,6790,3},{2387,6788,3}, {2385,6787,3},{2388,6785,3},{2390,6787,3},{2392,6785,3},{2388,6785,3},{2382,6783,3}, {2382,6780,3},{2383,6772,3},{2380,6775,3},{2378,6772,3},{2380,6763,3},{2388,6765,3}, {2393,6765,3},{2392,6763,3},{2388,6763,3},{2385,6762,3},{2385,6758,3},{2388,6758,3}, {2387,6757,3},{2390,6753,3},{2388,6752,3},{2388,6753,3},{2387,6755,3},{2388,6748,3}, {2390,6748,3},{2390,6752,3},{2393,6753,3},{2392,6750,3},{2397,6750,3},{2397,6747,3}, {2398,6745,3},{2403,6747,3},{2403,6750,3},{2407,6753,3},{2405,6750,3},{2407,6747,3}, {2407,6738,3},{2408,6733,3},{2413,6733,3},{2422,6730,3},{2425,6730,3},{2428,6728,3}, {2433,6730,3},{2435,6737,3},{2435,6728,3},{2443,6728,3},{2442,6725,3},{2445,6725,3}, {2450,6722,3},{2453,6723,3},{2453,6720,3},{2458,6718,3},{2458,6725,3},{2460,6722,3}, {2462,6715,3},{2465,6715,3},{2472,6720,3},{2473,6725,3},{2475,6725,3},{2477,6723,3}, {2475,6718,3},{2480,6715,3},{2478,6712,3},{2480,6708,3},{2477,6708,3},{2477,6707,3}, {2480,6702,3},{2483,6697,3},{2483,6695,3},{2480,6695,3},{2485,6685,3},{2483,6682,3}, {2485,6675,3},{2483,6665,3},{2488,6667,3},{2488,6670,3},{2490,6668,3},{2493,6667,3}, {2495,6668,3},{2512,6670,3},{2515,6673,3},{2520,6673,3},{2525,6670,3},{2537,6655,3}, {2538,6655,3},{2538,6658,3},{2542,6658,3},{2545,6655,3},{2552,6653,3},{2552,6650,3}, {2560,6643,3},{2558,6638,3},{2562,6637,3},{2560,6632,3},{2562,6627,3},{2560,6620,3}, {2557,6617,3},{2550,6613,3},{2547,6610,3},{2548,6622,3},{2555,6627,3},{2555,6633,3}, {2553,6635,3},{2552,6640,3},{2548,6642,3},{2548,6648,3},{2545,6647,3},{2542,6650,3}, {2540,6652,3},{2540,6650,3},{2545,6640,3},{2547,6627,3},{2545,6617,3},{2545,6608,3}, {2542,6600,3},{2542,6585,3},{2538,6578,3},{2537,6570,3},{2535,6567,3},{2538,6545,3}, {2537,6538,3},{2538,6540,3},{2538,6535,3},{2538,6532,3},{2537,6528,3},{2537,6525,3}, {2535,6520,3},{2532,6520,3},{2530,6517,3},{2528,6513,3},{2532,6507,3},{2532,6475,3}, {2528,6468,3},{2522,6467,3},{2518,6472,3},{2517,6467,3},{2517,6460,3},{2522,6463,3}, {2523,6462,3},{2527,6455,3},{2527,6450,3},{2523,6448,3},{2523,6443,3},{2527,6438,3}, {2530,6427,3},{2532,6425,3},{2533,6410,3},{2535,6410,3},{2537,6412,3},{2542,6408,3}, {2543,6410,3},{2542,6413,3},{2545,6415,3},{2545,6412,3},{2543,6407,3},{2545,6403,3}, {2542,6398,3},{2542,6400,3},{2538,6402,3},{2542,6405,3},{2537,6407,3},{2533,6407,3}, {2533,6393,3},{2538,6373,3},{2537,6357,3},{2532,6352,3},{2528,6350,3},{2528,6347,3}, {2525,6348,3},{2522,6352,3},{2518,6350,3},{2522,6342,3},{2522,6330,3},{2525,6315,3}, {2525,6312,3},{2523,6308,3},{2522,6300,3},{2525,6275,3},{2527,6255,3},{2525,6248,3}, {2522,6247,3},{2522,6248,3},{2520,6242,3},{2517,6235,3},{2513,6233,3},{2512,6238,3}, {2510,6238,3},{2510,6228,3},{2512,6228,3},{2512,6230,3},{2515,6232,3},{2517,6232,3}, {2520,6230,3},{2522,6225,3},{2522,6217,3},{2520,6210,3},{2518,6208,3},{2515,6207,3}, {2510,6210,3},{2512,6193,3},{2510,6187,3},{2507,6187,3},{2507,6185,3},{2503,6185,3}, {2505,6180,3},{2503,6177,3},{2505,6172,3},{2508,6173,3},{2510,6175,3},{2517,6178,3}, {2518,6178,3},{2517,6175,3},{2520,6170,3},{2520,6162,3},{4023,7097,131}, {4027,7097,3},{4027,7098,3},{4028,7102,3},{4030,7108,3},{4032,7115,3},{4033,7122,3}, {4030,7130,3},{4030,7137,3},{4027,7143,3},{4025,7150,3},{4023,7148,3},{4020,7155,3}, {4018,7162,3},{4020,7162,3},{4025,7162,3},{4025,7163,3},{4025,7167,3},{4018,7168,3}, {4015,7173,3},{4017,7178,3},{4020,7185,3},{4025,7185,3},{4025,7187,3},{4023,7195,3}, {4027,7200,3},{4032,7197,3},{4035,7203,3},{4040,7208,3},{4047,7210,3},{4045,7212,3}, {4045,7215,3},{4050,7218,3},{4050,7225,3},{4047,7227,3},{4043,7233,3},{4040,7242,3}, {4042,7242,3},{4047,7243,3},{4052,7242,3},{4052,7238,3},{4057,7242,3},{4062,7237,3}, {4062,7238,3},{4062,7242,3},{4060,7245,3},{4055,7248,3},{4057,7250,3},{4053,7257,3}, {4052,7263,3},{4053,7265,3},{4060,7268,3},{4057,7277,3},{4058,7277,3},{4067,7277,3}, {4068,7283,3},{4072,7290,3},{4073,7297,3},{4077,7305,3},{4080,7312,3},{4085,7313,3}, {4085,7307,3},{4088,7298,3},{4087,7298,3},{4083,7300,3},{4083,7298,3},{4082,7292,3}, {4083,7290,3},{4087,7285,3},{4087,7282,3},{4085,7273,3},{4087,7265,3},{4088,7258,3}, {4093,7255,3},{4098,7250,3},{4098,7248,3},{4103,7250,3},{4103,7248,3},{4105,7240,3}, {4105,7233,3},{4102,7228,3},{4100,7220,3},{4102,7218,3},{4105,7223,3},{4110,7222,3}, {4115,7220,3},{4117,7212,3},{4115,7207,3},{4117,7200,3},{4117,7193,3},{4120,7187,3}, {4127,7190,3},{4132,7193,3},{4132,7192,3},{4138,7187,3},{4137,7183,3},{4142,7182,3}, {4147,7177,3},{4145,7172,3},{4142,7170,3},{4143,7170,3},{4145,7170,3},{4150,7172,3}, {4155,7172,3},{4155,7170,3},{4153,7168,3},{4150,7162,3},{4147,7167,3},{4143,7167,3}, {4138,7167,3},{4133,7162,3},{4130,7157,3},{4132,7153,3},{4130,7145,3},{4123,7145,3}, {4118,7145,3},{4112,7143,3},{4110,7140,3},{4112,7138,3},{4117,7135,3},{4115,7133,3}, {4110,7130,3},{4112,7127,3},{4115,7128,3},{4118,7123,3},{4118,7122,3},{4117,7122,3}, {4118,7118,3},{4115,7112,3},{4117,7108,3},{4120,7102,3},{4117,7097,3},{4118,7095,3}, {4120,7092,3},{4123,7085,3},{4117,7082,3},{4118,7080,3},{4118,7078,3},{4120,7078,3}, {4125,7080,3},{4128,7078,3},{4135,7078,3},{4138,7077,3},{4147,7072,3},{4147,7068,3}, {4145,7060,3},{4142,7055,3},{4140,7048,3},{4145,7043,3},{4148,7037,3},{4152,7032,3}, {4152,7025,3},{4152,7018,3},{4155,7018,3},{4160,7020,3},{4160,7027,3},{4163,7035,3}, {4168,7040,3},{4172,7050,3},{4178,7052,3},{4182,7058,3},{4187,7063,3},{4192,7068,3}, {4192,7075,3},{4193,7075,3},{4192,7082,3},{4195,7085,3},{4200,7083,3},{4205,7087,3}, {4205,7090,3},{4203,7097,3},{4205,7103,3},{4208,7108,3},{4213,7115,3},{4213,7122,3}, {4215,7123,3},{4220,7125,3},{4222,7123,3},{4227,7115,3},{4228,7110,3},{4228,7102,3}, {4227,7093,3},{4225,7088,3},{4232,7087,3},{4237,7092,3},{4243,7095,3},{4248,7098,3}, {4250,7100,3},{4247,7107,3},{4250,7110,3},{4253,7103,3},{4255,7102,3},{4260,7105,3}, {4260,7113,3},{4260,7115,3},{4267,7117,3},{4270,7123,3},{4275,7127,3},{4277,7127,3}, {4278,7137,3},{4280,7143,3},{4282,7152,3},{4277,7157,3},{4277,7162,3},{4280,7170,3}, {4280,7177,3},{4283,7183,3},{4282,7190,3},{4278,7198,3},{4277,7205,3},{4273,7212,3}, {4275,7218,3},{4277,7227,3},{4275,7233,3},{4272,7240,3},{4268,7250,3},{4268,7258,3}, {4265,7267,3},{4263,7275,3},{4260,7278,3},{4255,7283,3},{4253,7292,3},{4253,7300,3}, {4253,7308,3},{4252,7318,3},{4250,7330,3},{4245,7330,3},{4243,7338,3},{4242,7345,3}, {4240,7348,3},{4242,7350,3},{4247,7350,3},{4250,7345,3},{4257,7342,3},{4263,7342,3}, {4270,7345,3},{4275,7348,3},{4283,7350,3},{4290,7350,3},{4297,7353,3},{4302,7355,3}, {4305,7363,3},{4308,7370,3},{4312,7378,3},{4310,7387,3},{4310,7390,3},{4315,7392,3}, {4320,7395,3},{4317,7402,3},{4317,7410,3},{4318,7417,3},{4322,7417,3},{4323,7415,3}, {4323,7428,3},{4320,7435,3},{4320,7442,3},{4318,7448,3},{4317,7450,3},{4313,7458,3}, {4310,7462,3},{4307,7468,3},{4302,7472,3},{4298,7478,3},{4300,7485,3},{4298,7492,3}, {4295,7497,3},{4292,7503,3},{4288,7510,3},{4285,7515,3},{4283,7523,3},{4285,7532,3}, {4282,7542,3},{4283,7548,3},{4282,7558,3},{4282,7562,3},{4282,7563,3},{4280,7572,3}, {4283,7577,3},{4290,7578,3},{4295,7585,3},{4295,7593,3},{4293,7600,3},{4292,7603,3}, {4292,7612,3},{4292,7618,3},{4292,7627,3},{4288,7632,3},{4287,7638,3},{4288,7645,3}, {4288,7648,3},{4292,7652,3},{4292,7658,3},{4290,7665,3},{4290,7673,3},{4295,7678,3}, {4298,7685,3},{4298,7693,3},{4297,7700,3},{4297,7708,3},{4297,7718,3},{4292,7722,3}, {4292,7735,3},{4293,7742,3},{4293,7752,3},{4292,7758,3},{4292,7768,3},{4290,7775,3}, {4292,7778,3},{4288,7785,3},{4287,7793,3},{4285,7797,3},{4287,7803,3},{4283,7807,3}, {4287,7808,3},{4285,7815,3},{4288,7817,3},{4287,7825,3},{4285,7832,3},{4288,7838,3}, {4288,7845,3},{4290,7852,3},{4287,7858,3},{4285,7865,3},{4283,7867,3},{4282,7875,3}, {4280,7882,3},{4278,7888,3},{4278,7895,3},{4278,7902,3},{4273,7907,3},{4278,7915,3}, {4278,7918,3},{4270,7918,3},{4265,7922,3},{4262,7928,3},{4258,7935,3},{4253,7940,3}, {4250,7947,3},{4247,7950,3},{4245,7957,3},{4245,7962,3},{4248,7965,3},{4247,7973,3}, {4245,7980,3},{4245,7985,3},{4243,7985,3},{4243,7993,3},{4240,7997,3},{4235,8002,3}, {4233,8007,3},{4230,8010,3},{4222,8012,3},{4220,8012,3},{4223,8020,3},{4223,8022,3}, {4222,8028,3},{4220,8023,3},{4213,8025,3},{4210,8028,3},{4205,8027,3},{4203,8020,3}, {4203,8003,3},{4202,7988,3},{4198,7983,3},{4192,7982,3},{4188,7978,3},{4188,7965,3}, {4178,7945,3},{4178,7940,3},{4178,7932,3},{4173,7922,3},{4172,7913,3},{4165,7900,3}, {4163,7892,3},{4157,7882,3},{4153,7868,3},{4148,7863,3},{4147,7853,3},{4138,7838,3}, {4135,7837,3},{4130,7838,3},{4128,7837,3},{4123,7828,3},{4115,7823,3},{4110,7818,3}, {4103,7808,3},{4105,7803,3},{4107,7787,3},{4100,7768,3},{4100,7760,3},{4098,7755,3}, {4098,7750,3},{4103,7738,3},{4100,7727,3},{4102,7713,3},{4105,7708,3},{4105,7702,3}, {4102,7687,3},{4093,7678,3},{4085,7678,3},{4082,7670,3},{4075,7665,3},{4060,7663,3}, {4055,7657,3},{4043,7648,3},{4035,7635,3},{4037,7632,3},{4043,7630,3},{4045,7628,3}, {4038,7620,3},{4040,7607,3},{4037,7598,3},{4030,7593,3},{4032,7578,3},{4030,7570,3}, {4040,7567,3},{4045,7570,3},{4048,7565,3},{4060,7562,3},{4065,7558,3},{4063,7552,3}, {4052,7533,3},{4048,7528,3},{4048,7525,3},{4045,7523,3},{4047,7517,3},{4045,7507,3}, {4052,7487,3},{4042,7482,3},{4035,7488,3},{4033,7488,3},{4035,7473,3},{4028,7467,3}, {4027,7460,3},{4013,7443,3},{4010,7437,3},{4010,7430,3},{4012,7422,3},{4007,7410,3}, {4007,7403,3},{4005,7400,3},{3997,7397,3},{3993,7392,3},{3987,7390,3},{3983,7385,3}, {3978,7385,3},{3975,7385,3},{3972,7392,3},{3963,7393,3},{3960,7395,3},{3957,7390,3}, {3948,7385,3},{3947,7367,3},{3947,7362,3},{3945,7355,3},{3947,7347,3},{3945,7338,3}, {3940,7335,3},{3938,7332,3},{3940,7323,3},{3935,7322,3},{3935,7315,3},{3937,7308,3}, {3937,7300,3},{3937,7292,3},{3935,7285,3},{3935,7277,3},{3938,7268,3},{3938,7263,3}, {3935,7258,3},{3938,7252,3},{3937,7248,3},{3933,7242,3},{3933,7235,3},{3930,7230,3}, {3923,7227,3},{3918,7225,3},{3918,7223,3},{3923,7222,3},{3927,7217,3},{3927,7212,3}, {3930,7208,3},{3937,7203,3},{3935,7202,3},{3933,7195,3},{3928,7192,3},{3928,7185,3}, {3928,7178,3},{3935,7175,3},{3940,7180,3},{3945,7177,3},{3945,7168,3},{3945,7162,3}, {3947,7155,3},{3953,7155,3},{3958,7155,3},{3960,7148,3},{3957,7142,3},{3957,7133,3}, {3955,7133,3},{3952,7128,3},{3955,7125,3},{3953,7123,3},{3950,7117,3},{3950,7108,3}, {3947,7108,3},{3942,7107,3},{3940,7100,3},{3943,7093,3},{3938,7092,3},{3938,7083,3}, {3940,7077,3},{3947,7077,3},{3950,7070,3},{3957,7067,3},{3958,7062,3},{3960,7055,3}, {3962,7050,3},{3958,7045,3},{3958,7043,3},{3958,7037,3},{3953,7030,3},{3953,7027,3}, {3955,7025,3},{3960,7020,3},{3955,7017,3},{3958,7012,3},{3953,7005,3},{3955,7007,3}, {3957,7003,3},{3953,7002,3},{3955,6998,3},{3957,6998,3},{3957,6990,3},{3953,6987,3}, {3957,6982,3},{3958,6975,3},{3958,6967,3},{3957,6960,3},{3955,6953,3},{3953,6947,3}, {3955,6940,3},{3952,6937,3},{3953,6933,3},{3958,6937,3},{3960,6933,3},{3967,6932,3}, {3973,6930,3},{3978,6928,3},{3983,6930,3},{3988,6930,3},{3993,6935,3},{4000,6935,3}, {4000,6938,3},{3998,6940,3},{3990,6943,3},{3990,6945,3},{3990,6948,3},{3992,6950,3}, {3998,6953,3},{4003,6950,3},{4008,6953,3},{4012,6962,3},{4012,6970,3},{4015,6977,3}, {4017,6983,3},{4018,6990,3},{4022,6998,3},{4023,7005,3},{4020,7010,3},{4017,7017,3}, {4013,7022,3},{4012,7030,3},{4010,7037,3},{4007,7043,3},{4005,7050,3},{4002,7057,3}, {3998,7052,3},{3993,7047,3},{3993,7050,3},{3995,7057,3},{3997,7063,3},{4002,7065,3}, {4008,7067,3},{4008,7068,3},{4008,7072,3},{4012,7082,3},{4017,7085,3},{4015,7092,3}, {4017,7097,3},{4023,7097,3},{3825,6837,131},{3830,6830,3},{3833,6823,3}, {3838,6822,3},{3842,6815,3},{3842,6812,3},{3847,6815,3},{3852,6810,3},{3858,6807,3}, {3865,6808,3},{3872,6807,3},{3873,6813,3},{3880,6807,3},{3882,6813,3},{3887,6820,3}, {3893,6820,3},{3897,6813,3},{3902,6812,3},{3902,6803,3},{3903,6797,3},{3902,6790,3}, {3900,6788,3},{3902,6782,3},{3900,6775,3},{3902,6768,3},{3908,6767,3},{3915,6768,3}, {3915,6763,3},{3918,6762,3},{3918,6757,3},{3920,6750,3},{3922,6743,3},{3930,6740,3}, {3932,6743,3},{3932,6752,3},{3935,6750,3},{3942,6748,3},{3948,6743,3},{3953,6745,3}, {3953,6748,3},{3958,6752,3},{3960,6763,3},{3963,6765,3},{3965,6770,3},{3965,6773,3}, {3965,6780,3},{3963,6788,3},{3960,6793,3},{3958,6802,3},{3957,6808,3},{3957,6815,3}, {3955,6823,3},{3955,6830,3},{3953,6837,3},{3955,6840,3},{3953,6847,3},{3955,6853,3}, {3957,6853,3},{3960,6858,3},{3968,6863,3},{3975,6860,3},{3975,6862,3},{3980,6865,3}, {3985,6867,3},{3987,6873,3},{3983,6877,3},{3987,6882,3},{3992,6880,3},{3998,6878,3}, {3998,6880,3},{3993,6883,3},{3987,6887,3},{3987,6890,3},{3992,6890,3},{3998,6885,3}, {4003,6882,3},{4008,6882,3},{4007,6883,3},{4003,6885,3},{4005,6887,3},{4007,6887,3}, {4007,6893,3},{4007,6900,3},{4008,6902,3},{4015,6898,3},{4013,6885,3},{4012,6877,3}, {4010,6868,3},{4010,6862,3},{4013,6853,3},{4015,6860,3},{4017,6867,3},{4020,6878,3}, {4020,6885,3},{4022,6893,3},{4022,6900,3},{4022,6908,3},{4020,6917,3},{4020,6923,3}, {4020,6930,3},{4022,6932,3},{4025,6925,3},{4028,6925,3},{4028,6927,3},{4028,6930,3}, {4035,6933,3},{4040,6930,3},{4045,6927,3},{4050,6927,3},{4055,6923,3},{4057,6927,3}, {4058,6933,3},{4060,6935,3},{4067,6935,3},{4073,6937,3},{4078,6940,3},{4078,6945,3}, {4075,6955,3},{4070,6957,3},{4067,6963,3},{4063,6968,3},{4065,6975,3},{4070,6980,3}, {4070,6982,3},{4072,6988,3},{4070,6992,3},{4073,6997,3},{4075,7005,3},{4078,7012,3}, {4083,7018,3},{4085,7025,3},{4087,7030,3},{4088,7037,3},{4092,7038,3},{4098,7040,3}, {4103,7042,3},{4103,7048,3},{4100,7053,3},{4093,7058,3},{4088,7063,3},{4083,7068,3}, {4078,7070,3},{4078,7068,3},{4082,7067,3},{4075,7067,3},{4075,7068,3},{4073,7078,3}, {4072,7078,3},{4065,7073,3},{4065,7068,3},{4062,7063,3},{4057,7058,3},{4055,7052,3}, {4050,7047,3},{4048,7040,3},{4047,7033,3},{4043,7033,3},{4042,7035,3},{4040,7035,3}, {4037,7040,3},{4038,7042,3},{4037,7048,3},{4033,7057,3},{4032,7057,3},{4025,7057,3}, {4020,7060,3},{4017,7065,3},{4017,7068,3},{4018,7075,3},{4020,7083,3},{4023,7090,3}, {4023,7097,3},{4017,7097,3},{4015,7092,3},{4017,7085,3},{4012,7082,3},{4008,7072,3}, {4008,7068,3},{4008,7067,3},{4002,7065,3},{3997,7063,3},{3995,7057,3},{3993,7050,3}, {3993,7047,3},{3998,7052,3},{4002,7057,3},{4005,7050,3},{4007,7043,3},{4010,7037,3}, {4012,7030,3},{4013,7022,3},{4017,7017,3},{4020,7010,3},{4023,7005,3},{4022,6998,3}, {4018,6990,3},{4017,6983,3},{4015,6977,3},{4012,6970,3},{4012,6962,3},{4008,6953,3}, {4003,6950,3},{3998,6953,3},{3992,6950,3},{3990,6948,3},{3990,6945,3},{3990,6943,3}, {3998,6940,3},{4000,6938,3},{4000,6935,3},{3993,6935,3},{3988,6930,3},{3983,6930,3}, {3978,6928,3},{3973,6930,3},{3967,6932,3},{3960,6933,3},{3958,6937,3},{3953,6933,3}, {3952,6937,3},{3955,6940,3},{3953,6947,3},{3955,6953,3},{3957,6960,3},{3958,6967,3}, {3958,6975,3},{3957,6982,3},{3953,6987,3},{3957,6990,3},{3957,6998,3},{3955,6998,3}, {3953,7002,3},{3957,7003,3},{3955,7007,3},{3953,7005,3},{3958,7012,3},{3955,7017,3}, {3960,7020,3},{3955,7025,3},{3953,7027,3},{3953,7030,3},{3958,7037,3},{3958,7043,3}, {3958,7045,3},{3962,7050,3},{3960,7055,3},{3958,7062,3},{3957,7067,3},{3950,7070,3}, {3947,7077,3},{3940,7077,3},{3938,7083,3},{3938,7092,3},{3943,7093,3},{3940,7100,3}, {3942,7107,3},{3947,7108,3},{3950,7108,3},{3950,7117,3},{3953,7123,3},{3955,7125,3}, {3952,7128,3},{3955,7133,3},{3957,7133,3},{3957,7142,3},{3960,7148,3},{3958,7155,3}, {3953,7155,3},{3947,7155,3},{3945,7162,3},{3945,7168,3},{3945,7177,3},{3940,7180,3}, {3935,7175,3},{3928,7178,3},{3928,7185,3},{3928,7192,3},{3933,7195,3},{3935,7202,3}, {3937,7203,3},{3930,7208,3},{3927,7212,3},{3927,7217,3},{3923,7222,3},{3918,7223,3}, {3918,7225,3},{3923,7227,3},{3930,7230,3},{3933,7235,3},{3933,7242,3},{3937,7248,3}, {3938,7252,3},{3935,7258,3},{3938,7263,3},{3938,7268,3},{3935,7277,3},{3935,7285,3}, {3937,7292,3},{3937,7300,3},{3937,7308,3},{3935,7315,3},{3935,7322,3},{3940,7323,3}, {3938,7332,3},{3940,7335,3},{3945,7338,3},{3947,7347,3},{3945,7355,3},{3947,7362,3}, {3947,7367,3},{3943,7365,3},{3935,7367,3},{3923,7362,3},{3917,7367,3},{3915,7370,3}, {3908,7372,3},{3900,7383,3},{3897,7385,3},{3893,7383,3},{3892,7373,3},{3887,7370,3}, {3880,7377,3},{3873,7375,3},{3870,7378,3},{3862,7382,3},{3853,7395,3},{3855,7408,3}, {3860,7407,3},{3862,7412,3},{3867,7413,3},{3868,7417,3},{3865,7420,3},{3865,7425,3}, {3867,7435,3},{3858,7465,3},{3853,7472,3},{3853,7478,3},{3847,7485,3},{3838,7487,3}, {3830,7480,3},{3820,7480,3},{3808,7482,3},{3802,7492,3},{3793,7492,3},{3792,7490,3}, {3788,7493,3},{3785,7490,3},{3778,7498,3},{3773,7495,3},{3770,7495,3},{3765,7490,3}, {3757,7495,3},{3752,7505,3},{3743,7513,3},{3740,7518,3},{3738,7512,3},{3732,7510,3}, {3728,7497,3},{3723,7493,3},{3723,7490,3},{3725,7488,3},{3733,7482,3},{3740,7468,3}, {3738,7463,3},{3738,7455,3},{3740,7448,3},{3740,7440,3},{3743,7437,3},{3740,7432,3}, {3740,7423,3},{3737,7423,3},{3733,7420,3},{3732,7407,3},{3727,7393,3},{3727,7387,3}, {3723,7382,3},{3723,7377,3},{3722,7373,3},{3723,7372,3},{3725,7368,3},{3723,7363,3}, {3727,7362,3},{3730,7365,3},{3732,7373,3},{3733,7377,3},{3743,7378,3},{3743,7362,3}, {3747,7353,3},{3748,7343,3},{3745,7337,3},{3747,7330,3},{3740,7320,3},{3740,7315,3}, {3732,7307,3},{3730,7298,3},{3725,7288,3},{3723,7280,3},{3708,7270,3},{3707,7267,3}, {3702,7267,3},{3703,7262,3},{3700,7253,3},{3700,7242,3},{3698,7230,3},{3693,7222,3}, {3670,7185,3},{3668,7177,3},{3668,7168,3},{3670,7162,3},{3677,7155,3},{3685,7153,3}, {3695,7145,3},{3698,7147,3},{3708,7143,3},{3720,7145,3},{3728,7148,3},{3737,7150,3}, {3742,7148,3},{3747,7152,3},{3755,7150,3},{3772,7153,3},{3777,7153,3},{3782,7158,3}, {3790,7160,3},{3795,7155,3},{3795,7152,3},{3788,7133,3},{3792,7130,3},{3792,7125,3}, {3798,7127,3},{3817,7137,3},{3825,7137,3},{3830,7132,3},{3832,7123,3},{3838,7115,3}, {3840,7110,3},{3840,7105,3},{3845,7102,3},{3847,7095,3},{3847,7093,3},{3845,7095,3}, {3843,7093,3},{3845,7087,3},{3845,7077,3},{3842,7073,3},{3842,7067,3},{3840,7067,3}, {3838,7068,3},{3835,7060,3},{3828,7058,3},{3825,7055,3},{3812,7047,3},{3810,7042,3}, {3805,7035,3},{3802,7035,3},{3797,7025,3},{3793,7025,3},{3793,7023,3},{3792,7020,3}, {3793,7017,3},{3787,7017,3},{3782,7025,3},{3770,7028,3},{3765,7025,3},{3762,7025,3}, {3762,7022,3},{3758,7020,3},{3753,7017,3},{3753,7013,3},{3755,7002,3},{3758,6995,3}, {3760,6993,3},{3762,6990,3},{3758,6980,3},{3760,6973,3},{3758,6968,3},{3757,6965,3}, {3758,6952,3},{3753,6948,3},{3745,6938,3},{3738,6937,3},{3735,6938,3},{3730,6942,3}, {3723,6942,3},{3723,6945,3},{3720,6942,3},{3717,6940,3},{3712,6933,3},{3710,6925,3}, {3717,6912,3},{3720,6910,3},{3725,6903,3},{3732,6898,3},{3733,6888,3},{3732,6888,3}, {3728,6892,3},{3727,6890,3},{3732,6887,3},{3733,6883,3},{3732,6880,3},{3725,6882,3}, {3725,6880,3},{3727,6877,3},{3727,6867,3},{3725,6867,3},{3723,6863,3},{3720,6863,3}, {3718,6855,3},{3717,6852,3},{3715,6842,3},{3712,6842,3},{3710,6838,3},{3710,6830,3}, {3708,6828,3},{3702,6827,3},{3700,6825,3},{3702,6818,3},{3692,6803,3},{3693,6800,3}, {3698,6797,3},{3702,6792,3},{3707,6788,3},{3710,6778,3},{3718,6778,3},{3720,6780,3}, {3727,6783,3},{3735,6783,3},{3747,6783,3},{3755,6788,3},{3763,6793,3},{3768,6798,3}, {3773,6805,3},{3780,6808,3},{3788,6813,3},{3788,6822,3},{3792,6828,3},{3798,6828,3}, {3803,6832,3},{3810,6837,3},{3820,6840,3},{3825,6837,3},{2987,6087,131}, {2993,6093,3},{2998,6098,3},{3002,6102,3},{3007,6107,3},{3010,6110,3},{3015,6115,3}, {3020,6118,3},{3023,6123,3},{3028,6127,3},{3032,6132,3},{3037,6135,3},{3040,6140,3}, {3045,6143,3},{3050,6148,3},{3053,6152,3},{3058,6157,3},{3062,6160,3},{3067,6163,3}, {3072,6168,3},{3075,6172,3},{3080,6177,3},{3083,6182,3},{3088,6182,3},{3095,6180,3}, {3102,6185,3},{3113,6180,3},{3118,6182,3},{3125,6177,3},{3132,6177,3},{3138,6172,3}, {3140,6162,3},{3140,6155,3},{3142,6148,3},{3142,6142,3},{3143,6135,3},{3143,6130,3}, {3145,6123,3},{3145,6117,3},{3147,6110,3},{3147,6103,3},{3148,6097,3},{3148,6092,3}, {3150,6085,3},{3157,6083,3},{3162,6082,3},{3167,6082,3},{3173,6083,3},{3187,6082,3}, {3195,6082,3},{3198,6080,3},{3202,6082,3},{3203,6080,3},{3208,6083,3},{3213,6083,3}, {3218,6085,3},{3223,6085,3},{3228,6083,3},{3233,6082,3},{3238,6080,3},{3243,6078,3}, {3248,6078,3},{3253,6075,3},{3258,6073,3},{3263,6072,3},{3268,6070,3},{3273,6068,3}, {3278,6067,3},{3283,6065,3},{3288,6065,3},{3293,6062,3},{3298,6060,3},{3307,6058,3}, {3315,6058,3},{3337,6077,3},{3342,6085,3},{3348,6085,3},{3350,6093,3},{3352,6095,3}, {3355,6090,3},{3357,6067,3},{3363,6053,3},{3373,6050,3},{3382,6055,3},{3413,6050,3}, {3420,6055,3},{3425,6062,3},{3428,6068,3},{3432,6067,3},{3432,6092,3},{3440,6083,3}, {3447,6080,3},{3448,6077,3},{3452,6075,3},{3452,6072,3},{3455,6075,3},{3457,6085,3}, {3463,6092,3},{3465,6097,3},{3473,6098,3},{3482,6107,3},{3493,6107,3},{3502,6112,3}, {3507,6112,3},{3510,6115,3},{3513,6113,3},{3518,6110,3},{3520,6112,3},{3523,6110,3}, {3528,6110,3},{3530,6118,3},{3540,6120,3},{3543,6123,3},{3548,6123,3},{3552,6128,3}, {3555,6128,3},{3560,6128,3},{3563,6128,3},{3563,6137,3},{3563,6138,3},{3560,6137,3}, {3560,6140,3},{3557,6140,3},{3555,6145,3},{3552,6147,3},{3545,6160,3},{3542,6180,3}, {3545,6197,3},{3545,6203,3},{3533,6215,3},{3532,6223,3},{3530,6227,3},{3522,6228,3}, {3520,6227,3},{3513,6232,3},{3528,6247,3},{3528,6252,3},{3523,6255,3},{3522,6262,3}, {3525,6272,3},{3528,6275,3},{3542,6298,3},{3543,6310,3},{3553,6313,3},{3555,6310,3}, {3563,6310,3},{3570,6323,3},{3577,6315,3},{3577,6313,3},{3580,6313,3},{3583,6310,3}, {3587,6312,3},{3585,6330,3},{3587,6337,3},{3590,6353,3},{3597,6360,3},{3598,6378,3}, {3603,6392,3},{3603,6400,3},{3600,6407,3},{3608,6407,3},{3612,6410,3},{3617,6418,3}, {3617,6427,3},{3615,6428,3},{3622,6433,3},{3625,6447,3},{3640,6460,3},{3650,6463,3}, {3660,6462,3},{3665,6462,3},{3693,6480,3},{3707,6478,3},{3712,6478,3},{3725,6507,3}, {3723,6523,3},{3725,6530,3},{3725,6555,3},{3735,6565,3},{3745,6565,3},{3752,6568,3}, {3753,6572,3},{3753,6577,3},{3757,6578,3},{3750,6585,3},{3743,6608,3},{3737,6617,3}, {3737,6623,3},{3732,6630,3},{3735,6642,3},{3732,6643,3},{3733,6647,3},{3737,6652,3}, {3737,6662,3},{3733,6667,3},{3737,6677,3},{3738,6700,3},{3735,6710,3},{3732,6710,3}, {3728,6712,3},{3725,6718,3},{3718,6725,3},{3722,6740,3},{3728,6750,3},{3727,6753,3}, {3722,6755,3},{3725,6760,3},{3723,6773,3},{3718,6778,3},{3710,6778,3},{3707,6788,3}, {3702,6792,3},{3698,6797,3},{3693,6800,3},{3692,6803,3},{3702,6818,3},{3700,6825,3}, {3702,6827,3},{3708,6828,3},{3710,6830,3},{3710,6838,3},{3712,6842,3},{3715,6842,3}, {3717,6852,3},{3718,6855,3},{3720,6863,3},{3723,6863,3},{3725,6867,3},{3727,6867,3}, {3727,6877,3},{3725,6880,3},{3725,6882,3},{3732,6880,3},{3733,6883,3},{3732,6887,3}, {3727,6890,3},{3728,6892,3},{3732,6888,3},{3733,6888,3},{3732,6898,3},{3725,6903,3}, {3720,6910,3},{3717,6912,3},{3710,6925,3},{3712,6933,3},{3717,6940,3},{3720,6942,3}, {3723,6945,3},{3723,6942,3},{3730,6942,3},{3735,6938,3},{3738,6937,3},{3745,6938,3}, {3753,6948,3},{3758,6952,3},{3757,6965,3},{3758,6968,3},{3760,6973,3},{3758,6980,3}, {3762,6990,3},{3760,6993,3},{3758,6995,3},{3755,7002,3},{3753,7013,3},{3753,7017,3}, {3758,7020,3},{3762,7022,3},{3762,7025,3},{3765,7025,3},{3770,7028,3},{3782,7025,3}, {3787,7017,3},{3793,7017,3},{3792,7020,3},{3793,7023,3},{3793,7025,3},{3797,7025,3}, {3802,7035,3},{3805,7035,3},{3810,7042,3},{3812,7047,3},{3825,7055,3},{3828,7058,3}, {3835,7060,3},{3838,7068,3},{3840,7067,3},{3842,7067,3},{3842,7073,3},{3845,7077,3}, {3845,7087,3},{3843,7093,3},{3845,7095,3},{3847,7093,3},{3847,7095,3},{3845,7102,3}, {3840,7105,3},{3840,7110,3},{3838,7115,3},{3832,7123,3},{3830,7132,3},{3825,7137,3}, {3817,7137,3},{3798,7127,3},{3792,7125,3},{3792,7130,3},{3788,7133,3},{3795,7152,3}, {3795,7155,3},{3790,7160,3},{3782,7158,3},{3777,7153,3},{3772,7153,3},{3755,7150,3}, {3747,7152,3},{3742,7148,3},{3737,7150,3},{3728,7148,3},{3720,7145,3},{3708,7143,3}, {3698,7147,3},{3695,7145,3},{3685,7153,3},{3677,7155,3},{3670,7162,3},{3668,7168,3}, {3668,7177,3},{3670,7185,3},{3693,7222,3},{3698,7230,3},{3700,7242,3},{3700,7253,3}, {3703,7262,3},{3702,7267,3},{3707,7267,3},{3708,7270,3},{3723,7280,3},{3725,7288,3}, {3730,7298,3},{3732,7307,3},{3740,7315,3},{3740,7320,3},{3747,7330,3},{3745,7337,3}, {3748,7343,3},{3747,7353,3},{3743,7362,3},{3743,7378,3},{3733,7377,3},{3732,7373,3}, {3730,7365,3},{3727,7362,3},{3723,7363,3},{3725,7368,3},{3723,7372,3},{3722,7373,3}, {3723,7377,3},{3723,7382,3},{3727,7387,3},{3727,7393,3},{3732,7407,3},{3733,7420,3}, {3737,7423,3},{3740,7423,3},{3740,7432,3},{3743,7437,3},{3740,7440,3},{3740,7448,3}, {3738,7455,3},{3738,7463,3},{3740,7468,3},{3733,7482,3},{3725,7488,3},{3723,7490,3}, {3722,7482,3},{3723,7480,3},{3730,7475,3},{3727,7470,3},{3727,7467,3},{3723,7465,3}, {3725,7460,3},{3723,7458,3},{3723,7452,3},{3718,7447,3},{3718,7440,3},{3717,7438,3}, {3713,7440,3},{3708,7450,3},{3703,7453,3},{3703,7457,3},{3697,7455,3},{3702,7448,3}, {3700,7442,3},{3697,7435,3},{3690,7425,3},{3690,7415,3},{3683,7412,3},{3682,7403,3}, {3690,7385,3},{3692,7367,3},{3690,7358,3},{3688,7355,3},{3690,7348,3},{3688,7337,3}, {3687,7330,3},{3688,7323,3},{3688,7310,3},{3685,7302,3},{3687,7297,3},{3683,7287,3}, {3682,7257,3},{3677,7247,3},{3675,7232,3},{3672,7218,3},{3670,7217,3},{3667,7220,3}, {3665,7218,3},{3663,7207,3},{3658,7207,3},{3658,7202,3},{3650,7190,3},{3648,7180,3}, {3647,7178,3},{3642,7182,3},{3640,7180,3},{3640,7177,3},{3647,7165,3},{3647,7163,3}, {3640,7160,3},{3637,7157,3},{3633,7158,3},{3632,7150,3},{3622,7142,3},{3620,7133,3}, {3617,7133,3},{3613,7125,3},{3610,7123,3},{3605,7118,3},{3597,7128,3},{3595,7138,3}, {3590,7138,3},{3587,7143,3},{3578,7150,3},{3575,7148,3},{3572,7155,3},{3562,7152,3}, {3557,7162,3},{3550,7160,3},{3542,7165,3},{3533,7155,3},{3530,7155,3},{3520,7167,3}, {3513,7162,3},{3512,7157,3},{3508,7153,3},{3505,7153,3},{3502,7153,3},{3495,7150,3}, {3488,7132,3},{3487,7130,3},{3482,7128,3},{3477,7123,3},{3475,7123,3},{3473,7118,3}, {3467,7110,3},{3462,7110,3},{3457,7108,3},{3455,7098,3},{3450,7098,3},{3447,7100,3}, {3438,7108,3},{3437,7115,3},{3435,7117,3},{3427,7112,3},{3417,7113,3},{3412,7108,3}, {3407,7108,3},{3405,7107,3},{3403,7100,3},{3402,7098,3},{3402,7090,3},{3398,7092,3}, {3397,7088,3},{3395,7078,3},{3397,7033,3},{3398,7030,3},{3400,7020,3},{3402,7017,3}, {3402,7010,3},{3405,7000,3},{3403,6990,3},{3402,6990,3},{3398,6990,3},{3393,6987,3}, {3390,6990,3},{3385,6992,3},{3382,6995,3},{3375,6998,3},{3373,7010,3},{3373,7013,3}, {3367,7015,3},{3363,7020,3},{3360,7020,3},{3352,7017,3},{3347,7020,3},{3347,7023,3}, {3342,7028,3},{3333,7033,3},{3320,7015,3},{3320,7007,3},{3313,7003,3},{3313,6997,3}, {3308,6988,3},{3310,6983,3},{3313,6978,3},{3308,6970,3},{3308,6968,3},{3308,6958,3}, {3303,6950,3},{3300,6948,3},{3287,6952,3},{3285,6948,3},{3277,6940,3},{3273,6943,3}, {3267,6945,3},{3257,6938,3},{3253,6928,3},{3245,6925,3},{3232,6928,3},{3215,6927,3}, {3193,6933,3},{3187,6922,3},{3177,6917,3},{3165,6903,3},{3165,6895,3},{3162,6893,3}, {3160,6883,3},{3162,6880,3},{3167,6878,3},{3170,6873,3},{3178,6870,3},{3178,6862,3}, {3182,6858,3},{3183,6855,3},{3180,6845,3},{3178,6843,3},{3177,6857,3},{3173,6853,3}, {3177,6837,3},{3178,6827,3},{3182,6823,3},{3183,6817,3},{3177,6813,3},{3173,6808,3}, {3170,6807,3},{3167,6800,3},{3163,6798,3},{3163,6787,3},{3158,6782,3},{3153,6772,3}, {3153,6758,3},{3147,6762,3},{3143,6762,3},{3140,6767,3},{3142,6773,3},{3140,6778,3}, {3135,6780,3},{3133,6778,3},{3133,6772,3},{3127,6762,3},{3127,6758,3},{3122,6738,3}, {3122,6728,3},{3122,6720,3},{3125,6717,3},{3125,6705,3},{3125,6703,3},{3132,6705,3}, {3132,6697,3},{3128,6685,3},{3122,6680,3},{3122,6672,3},{3108,6668,3},{3098,6658,3}, {3093,6640,3},{3057,6628,3},{3052,6630,3},{3050,6633,3},{3045,6635,3},{3030,6632,3}, {3023,6633,3},{3007,6623,3},{3005,6625,3},{2995,6637,3},{2995,6633,3},{2990,6632,3}, {2985,6625,3},{2983,6618,3},{2982,6612,3},{2980,6607,3},{2978,6600,3},{2977,6593,3}, {2975,6588,3},{2975,6582,3},{2973,6577,3},{2972,6570,3},{2970,6563,3},{2968,6558,3}, {2967,6552,3},{2965,6547,3},{2963,6540,3},{2962,6533,3},{2960,6528,3},{2958,6522,3}, {2957,6517,3},{2957,6510,3},{2953,6503,3},{2955,6498,3},{2957,6492,3},{2957,6485,3}, {2958,6480,3},{2958,6473,3},{2958,6467,3},{2958,6462,3},{2958,6455,3},{2958,6450,3}, {2957,6443,3},{2955,6438,3},{2953,6432,3},{2952,6427,3},{2950,6420,3},{2945,6417,3}, {2942,6413,3},{2938,6412,3},{2940,6407,3},{2943,6402,3},{2943,6397,3},{2945,6390,3}, {2947,6383,3},{2947,6377,3},{2948,6372,3},{2950,6365,3},{2950,6358,3},{2950,6353,3}, {2950,6347,3},{2948,6342,3},{2948,6335,3},{2948,6330,3},{2947,6323,3},{2947,6317,3}, {2947,6312,3},{2945,6305,3},{2945,6298,3},{2945,6292,3},{2943,6287,3},{2943,6280,3}, {2943,6273,3},{2942,6268,3},{2942,6262,3},{2942,6257,3},{2940,6248,3},{2942,6243,3}, {2943,6238,3},{2945,6232,3},{2947,6225,3},{2948,6220,3},{2950,6213,3},{2952,6207,3}, {2953,6202,3},{2955,6195,3},{2957,6188,3},{2958,6183,3},{2960,6177,3},{2962,6172,3}, {2965,6165,3},{2967,6158,3},{2968,6153,3},{2970,6147,3},{2972,6140,3},{2973,6135,3}, {2975,6128,3},{2977,6122,3},{2978,6117,3},{2980,6110,3},{2982,6103,3},{2983,6098,3}, {2985,6092,3},{2987,6087,3},{4132,5600,131},{4137,5600,3},{4143,5600,3}, {4148,5600,3},{4153,5600,3},{4160,5600,3},{4165,5600,3},{4170,5600,3},{4177,5600,3}, {4182,5600,3},{4187,5600,3},{4193,5600,3},{4198,5600,3},{4203,5600,3},{4210,5600,3}, {4215,5600,3},{4220,5600,3},{4227,5600,3},{4232,5600,3},{4237,5600,3},{4242,5600,3}, {4248,5600,3},{4253,5600,3},{4258,5600,3},{4265,5600,3},{4270,5600,3},{4275,5600,3}, {4282,5600,3},{4287,5600,3},{4292,5600,3},{4298,5600,3},{4303,5600,3},{4308,5600,3}, {4315,5600,3},{4320,5600,3},{4325,5600,3},{4332,5600,3},{4337,5600,3},{4342,5600,3}, {4348,5600,3},{4353,5600,3},{4358,5600,3},{4365,5600,3},{4370,5600,3},{4375,5600,3}, {4382,5600,3},{4387,5600,3},{4392,5600,3},{4397,5600,3},{4403,5600,3},{4408,5600,3}, {4413,5600,3},{4420,5600,3},{4425,5600,3},{4430,5600,3},{4437,5600,3},{4442,5600,3}, {4447,5600,3},{4453,5600,3},{4458,5600,3},{4463,5600,3},{4470,5600,3},{4475,5600,3}, {4480,5600,3},{4487,5600,3},{4492,5600,3},{4497,5600,3},{4500,5600,3},{4502,5608,3}, {4503,5615,3},{4507,5630,3},{4508,5637,3},{4512,5647,3},{4513,5658,3},{4517,5668,3}, {4518,5677,3},{4522,5692,3},{4523,5700,3},{4525,5708,3},{4528,5720,3},{4530,5728,3}, {4532,5735,3},{4533,5750,3},{4537,5758,3},{4538,5767,3},{4540,5775,3},{4542,5785,3}, {4545,5798,3},{4548,5813,3},{4550,5820,3},{4553,5832,3},{4557,5843,3},{4558,5852,3}, {4560,5860,3},{4555,5855,3},{4542,5852,3},{4535,5845,3},{4525,5837,3},{4510,5833,3}, {4505,5827,3},{4483,5818,3},{4468,5822,3},{4462,5830,3},{4460,5830,3},{4458,5825,3}, {4452,5820,3},{4450,5822,3},{4443,5820,3},{4440,5822,3},{4427,5825,3},{4417,5840,3}, {4402,5838,3},{4390,5833,3},{4377,5833,3},{4368,5838,3},{4365,5843,3},{4363,5843,3}, {4367,5857,3},{4370,5860,3},{4370,5867,3},{4372,5870,3},{4372,5873,3},{4370,5870,3}, {4368,5872,3},{4373,5883,3},{4373,5885,3},{4373,5893,3},{4375,5897,3},{4373,5897,3}, {4372,5897,3},{4370,5895,3},{4368,5897,3},{4372,5902,3},{4377,5902,3},{4380,5898,3}, {4382,5890,3},{4382,5883,3},{4390,5885,3},{4385,5897,3},{4388,5895,3},{4393,5882,3}, {4393,5873,3},{4393,5887,3},{4388,5895,3},{4380,5905,3},{4372,5908,3},{4368,5913,3}, {4373,5915,3},{4375,5918,3},{4378,5917,3},{4380,5918,3},{4380,5930,3},{4377,5933,3}, {4373,5940,3},{4380,5950,3},{4373,5950,3},{4370,5955,3},{4367,5965,3},{4367,5968,3}, {4367,5977,3},{4363,5980,3},{4362,5968,3},{4358,5968,3},{4347,5972,3},{4343,5977,3}, {4338,5975,3},{4340,5980,3},{4345,5983,3},{4345,5987,3},{4347,5990,3},{4347,5997,3}, {4350,5998,3},{4348,6002,3},{4348,6005,3},{4352,6010,3},{4350,6010,3},{4348,6010,3}, {4347,6015,3},{4348,6018,3},{4358,6018,3},{4357,6023,3},{4360,6035,3},{4360,6037,3}, {4358,6037,3},{4363,6040,3},{4363,6043,3},{4358,6042,3},{4358,6047,3},{4357,6047,3}, {4362,6048,3},{4358,6052,3},{4363,6052,3},{4360,6055,3},{4355,6057,3},{4360,6063,3}, {4358,6067,3},{4358,6070,3},{4362,6070,3},{4360,6073,3},{4362,6073,3},{4358,6077,3}, {4367,6080,3},{4365,6082,3},{4360,6080,3},{4360,6085,3},{4358,6085,3},{4360,6090,3}, {4365,6088,3},{4368,6090,3},{4368,6093,3},{4363,6098,3},{4363,6102,3},{4365,6103,3}, {4367,6100,3},{4370,6100,3},{4373,6100,3},{4380,6105,3},{4378,6100,3},{4380,6100,3}, {4383,6100,3},{4382,6095,3},{4385,6093,3},{4383,6090,3},{4380,6090,3},{4385,6087,3}, {4388,6090,3},{4390,6085,3},{4393,6085,3},{4387,6082,3},{4388,6078,3},{4387,6077,3}, {4388,6075,3},{4393,6075,3},{4397,6073,3},{4402,6073,3},{4403,6073,3},{4400,6078,3}, {4403,6082,3},{4402,6083,3},{4402,6085,3},{4407,6087,3},{4407,6088,3},{4422,6090,3}, {4422,6095,3},{4418,6097,3},{4422,6098,3},{4433,6097,3},{4432,6100,3},{4423,6103,3}, {4417,6102,3},{4417,6107,3},{4410,6110,3},{4422,6108,3},{4423,6105,3},{4435,6103,3}, {4438,6105,3},{4435,6107,3},{4433,6107,3},{4432,6108,3},{4423,6110,3},{4422,6113,3}, {4418,6113,3},{4422,6115,3},{4428,6112,3},{4422,6118,3},{4413,6128,3},{4410,6132,3}, {4405,6137,3},{4402,6142,3},{4397,6147,3},{4392,6153,3},{4387,6158,3},{4378,6168,3}, {4372,6175,3},{4363,6183,3},{4358,6190,3},{4352,6198,3},{4350,6200,3},{4350,6213,3}, {4352,6222,3},{4353,6232,3},{4355,6242,3},{4355,6248,3},{4357,6258,3},{4358,6273,3}, {4362,6290,3},{4362,6298,3},{4363,6308,3},{4365,6320,3},{4367,6330,3},{4367,6338,3}, {4367,6345,3},{4365,6358,3},{4365,6367,3},{4363,6380,3},{4363,6392,3},{4362,6400,3}, {4362,6415,3},{4362,6422,3},{4360,6432,3},{4360,6447,3},{4360,6453,3},{4363,6462,3}, {4368,6477,3},{4372,6485,3},{4373,6492,3},{4377,6500,3},{4378,6508,3},{4377,6515,3}, {4372,6518,3},{4362,6525,3},{4357,6528,3},{4352,6533,3},{4345,6542,3},{4342,6548,3}, {4337,6557,3},{4330,6565,3},{4320,6568,3},{4315,6572,3},{4307,6573,3},{4302,6577,3}, {4295,6580,3},{4290,6582,3},{4287,6583,3},{4290,6592,3},{4293,6600,3},{4297,6610,3}, {4288,6610,3},{4278,6610,3},{4268,6610,3},{4262,6610,3},{4255,6610,3},{4247,6610,3}, {4237,6610,3},{4235,6610,3},{4238,6602,3},{4232,6602,3},{4227,6602,3},{4222,6602,3}, {4217,6602,3},{4212,6602,3},{4205,6602,3},{4200,6602,3},{4195,6602,3},{4193,6610,3}, {4192,6622,3},{4192,6630,3},{4190,6642,3},{4190,6653,3},{4183,6653,3},{4177,6655,3}, {4168,6655,3},{4158,6657,3},{4152,6658,3},{4142,6658,3},{4135,6660,3},{4128,6660,3}, {4125,6660,3},{4125,6673,3},{4123,6682,3},{4123,6693,3},{4123,6700,3},{4122,6712,3}, {4122,6725,3},{4120,6733,3},{4122,6740,3},{4120,6752,3},{4120,6760,3},{4120,6767,3}, {4120,6775,3},{4120,6778,3},{4117,6785,3},{4118,6790,3},{4120,6798,3},{4118,6805,3}, {4117,6807,3},{4115,6818,3},{4113,6827,3},{4112,6835,3},{4112,6843,3},{4108,6847,3}, {4108,6850,3},{4102,6852,3},{4100,6855,3},{4103,6860,3},{4100,6862,3},{4100,6865,3}, {4098,6867,3},{4097,6863,3},{4095,6863,3},{4093,6865,3},{4097,6872,3},{4102,6875,3}, {4108,6880,3},{4115,6887,3},{4120,6892,3},{4120,6895,3},{4125,6898,3},{4130,6898,3}, {4135,6903,3},{4133,6907,3},{4138,6912,3},{4142,6917,3},{4145,6922,3},{4147,6928,3}, {4145,6935,3},{4145,6942,3},{4150,6940,3},{4155,6945,3},{4157,6952,3},{4162,6957,3}, {4165,6962,3},{4167,6968,3},{4170,6975,3},{4172,6983,3},{4170,6990,3},{4172,6995,3}, {4178,6998,3},{4177,7002,3},{4177,7003,3},{4182,7007,3},{4183,7015,3},{4190,7018,3}, {4193,7023,3},{4197,7032,3},{4198,7033,3},{4203,7032,3},{4207,7037,3},{4212,7040,3}, {4213,7042,3},{4210,7048,3},{4207,7055,3},{4202,7058,3},{4200,7060,3},{4200,7063,3}, {4207,7065,3},{4212,7068,3},{4215,7073,3},{4220,7078,3},{4220,7087,3},{4225,7093,3}, {4227,7093,3},{4228,7102,3},{4228,7110,3},{4227,7115,3},{4222,7123,3},{4220,7125,3}, {4215,7123,3},{4213,7122,3},{4213,7115,3},{4208,7108,3},{4205,7103,3},{4203,7097,3}, {4205,7090,3},{4205,7087,3},{4200,7083,3},{4195,7085,3},{4192,7082,3},{4193,7075,3}, {4192,7075,3},{4192,7068,3},{4187,7063,3},{4182,7058,3},{4178,7052,3},{4172,7050,3}, {4168,7040,3},{4163,7035,3},{4160,7027,3},{4160,7020,3},{4155,7018,3},{4152,7018,3}, {4152,7025,3},{4152,7032,3},{4148,7037,3},{4145,7043,3},{4140,7048,3},{4142,7055,3}, {4145,7060,3},{4147,7068,3},{4147,7072,3},{4138,7077,3},{4135,7078,3},{4128,7078,3}, {4125,7080,3},{4120,7078,3},{4118,7078,3},{4118,7080,3},{4117,7082,3},{4123,7085,3}, {4120,7092,3},{4118,7095,3},{4117,7097,3},{4120,7102,3},{4117,7108,3},{4115,7112,3}, {4118,7118,3},{4117,7122,3},{4118,7122,3},{4118,7123,3},{4115,7128,3},{4112,7127,3}, {4110,7130,3},{4115,7133,3},{4117,7135,3},{4112,7138,3},{4110,7140,3},{4112,7143,3}, {4118,7145,3},{4123,7145,3},{4130,7145,3},{4132,7153,3},{4130,7157,3},{4133,7162,3}, {4138,7167,3},{4143,7167,3},{4147,7167,3},{4150,7162,3},{4153,7168,3},{4155,7170,3}, {4155,7172,3},{4150,7172,3},{4145,7170,3},{4143,7170,3},{4142,7170,3},{4145,7172,3}, {4147,7177,3},{4142,7182,3},{4137,7183,3},{4138,7187,3},{4132,7192,3},{4132,7193,3}, {4127,7190,3},{4120,7187,3},{4117,7193,3},{4117,7200,3},{4115,7207,3},{4117,7212,3}, {4115,7220,3},{4110,7222,3},{4105,7223,3},{4102,7218,3},{4100,7220,3},{4102,7228,3}, {4105,7233,3},{4105,7240,3},{4103,7248,3},{4103,7250,3},{4098,7248,3},{4098,7250,3}, {4093,7255,3},{4088,7258,3},{4087,7265,3},{4085,7273,3},{4087,7282,3},{4087,7285,3}, {4083,7290,3},{4082,7292,3},{4083,7298,3},{4083,7300,3},{4087,7298,3},{4088,7298,3}, {4085,7307,3},{4085,7313,3},{4080,7312,3},{4077,7305,3},{4073,7297,3},{4072,7290,3}, {4068,7283,3},{4067,7277,3},{4058,7277,3},{4057,7277,3},{4060,7268,3},{4053,7265,3}, {4052,7263,3},{4053,7257,3},{4057,7250,3},{4055,7248,3},{4060,7245,3},{4062,7242,3}, {4062,7238,3},{4062,7237,3},{4057,7242,3},{4052,7238,3},{4052,7242,3},{4047,7243,3}, {4042,7242,3},{4040,7242,3},{4043,7233,3},{4047,7227,3},{4050,7225,3},{4050,7218,3}, {4045,7215,3},{4045,7212,3},{4047,7210,3},{4040,7208,3},{4035,7203,3},{4032,7197,3}, {4027,7200,3},{4023,7195,3},{4025,7187,3},{4025,7185,3},{4020,7185,3},{4017,7178,3}, {4015,7173,3},{4018,7168,3},{4025,7167,3},{4025,7163,3},{4025,7162,3},{4020,7162,3}, {4018,7162,3},{4020,7155,3},{4023,7148,3},{4025,7150,3},{4027,7143,3},{4030,7137,3}, {4030,7130,3},{4033,7122,3},{4032,7115,3},{4030,7108,3},{4028,7102,3},{4027,7098,3}, {4027,7097,3},{4023,7097,3},{4023,7090,3},{4020,7083,3},{4018,7075,3},{4017,7068,3}, {4017,7065,3},{4020,7060,3},{4025,7057,3},{4032,7057,3},{4033,7057,3},{4037,7048,3}, {4038,7042,3},{4037,7040,3},{4040,7035,3},{4042,7035,3},{4043,7033,3},{4047,7033,3}, {4048,7040,3},{4050,7047,3},{4055,7052,3},{4057,7058,3},{4062,7063,3},{4065,7068,3}, {4065,7073,3},{4072,7078,3},{4073,7078,3},{4075,7068,3},{4075,7067,3},{4082,7067,3}, {4078,7068,3},{4078,7070,3},{4083,7068,3},{4088,7063,3},{4093,7058,3},{4100,7053,3}, {4103,7048,3},{4103,7042,3},{4098,7040,3},{4092,7038,3},{4088,7037,3},{4087,7030,3}, {4085,7025,3},{4083,7018,3},{4078,7012,3},{4075,7005,3},{4073,6997,3},{4070,6992,3}, {4072,6988,3},{4070,6982,3},{4070,6980,3},{4065,6975,3},{4063,6968,3},{4067,6963,3}, {4070,6957,3},{4075,6955,3},{4078,6945,3},{4078,6940,3},{4073,6937,3},{4067,6935,3}, {4060,6935,3},{4058,6933,3},{4057,6927,3},{4055,6923,3},{4050,6927,3},{4045,6927,3}, {4040,6930,3},{4035,6933,3},{4028,6930,3},{4028,6927,3},{4028,6925,3},{4025,6925,3}, {4022,6932,3},{4020,6930,3},{4020,6923,3},{4020,6917,3},{4022,6908,3},{4022,6900,3}, {4022,6893,3},{4020,6885,3},{4020,6878,3},{4017,6867,3},{4015,6860,3},{4013,6853,3}, {4010,6862,3},{4010,6868,3},{4012,6877,3},{4013,6885,3},{4015,6898,3},{4008,6902,3}, {4007,6900,3},{4007,6893,3},{4007,6887,3},{4005,6887,3},{4003,6885,3},{4007,6883,3}, {4008,6882,3},{4003,6882,3},{3998,6885,3},{3992,6890,3},{3987,6890,3},{3987,6887,3}, {3993,6883,3},{3998,6880,3},{3998,6878,3},{3992,6880,3},{3987,6882,3},{3983,6877,3}, {3987,6873,3},{3985,6867,3},{3980,6865,3},{3975,6862,3},{3975,6860,3},{3968,6863,3}, {3960,6858,3},{3957,6853,3},{3955,6853,3},{3953,6847,3},{3955,6840,3},{3953,6837,3}, {3955,6830,3},{3955,6823,3},{3957,6815,3},{3957,6808,3},{3958,6802,3},{3960,6793,3}, {3963,6788,3},{3965,6780,3},{3965,6773,3},{3965,6770,3},{3963,6765,3},{3960,6763,3}, {3958,6752,3},{3953,6748,3},{3953,6745,3},{3948,6743,3},{3942,6748,3},{3935,6750,3}, {3932,6752,3},{3932,6743,3},{3930,6740,3},{3922,6743,3},{3920,6750,3},{3918,6757,3}, {3918,6762,3},{3915,6763,3},{3915,6768,3},{3908,6767,3},{3902,6768,3},{3900,6775,3}, {3902,6782,3},{3900,6788,3},{3902,6790,3},{3903,6797,3},{3902,6803,3},{3902,6812,3}, {3897,6813,3},{3893,6820,3},{3887,6820,3},{3882,6813,3},{3880,6807,3},{3873,6813,3}, {3872,6807,3},{3865,6808,3},{3858,6807,3},{3852,6810,3},{3847,6815,3},{3842,6812,3}, {3842,6815,3},{3838,6822,3},{3833,6823,3},{3830,6830,3},{3825,6837,3},{3820,6840,3}, {3810,6837,3},{3803,6832,3},{3798,6828,3},{3792,6828,3},{3788,6822,3},{3788,6813,3}, {3780,6808,3},{3773,6805,3},{3768,6798,3},{3763,6793,3},{3755,6788,3},{3747,6783,3}, {3735,6783,3},{3727,6783,3},{3720,6780,3},{3718,6778,3},{3723,6773,3},{3725,6760,3}, {3722,6755,3},{3727,6753,3},{3728,6750,3},{3722,6740,3},{3718,6725,3},{3725,6718,3}, {3728,6712,3},{3732,6710,3},{3735,6710,3},{3738,6700,3},{3737,6677,3},{3733,6667,3}, {3737,6662,3},{3737,6652,3},{3738,6652,3},{3740,6652,3},{3742,6657,3},{3743,6663,3}, {3748,6663,3},{3753,6658,3},{3760,6653,3},{3768,6655,3},{3775,6653,3},{3782,6657,3}, {3788,6662,3},{3792,6667,3},{3797,6668,3},{3802,6662,3},{3803,6655,3},{3803,6643,3}, {3805,6638,3},{3807,6633,3},{3812,6627,3},{3817,6623,3},{3817,6620,3},{3818,6612,3}, {3822,6607,3},{3823,6600,3},{3827,6593,3},{3827,6585,3},{3823,6580,3},{3825,6570,3}, {3827,6563,3},{3830,6553,3},{3833,6543,3},{3838,6537,3},{3843,6527,3},{3848,6520,3}, {3852,6515,3},{3857,6508,3},{3862,6500,3},{3863,6493,3},{3867,6485,3},{3870,6480,3}, {3873,6473,3},{3877,6465,3},{3880,6458,3},{3883,6452,3},{3890,6443,3},{3895,6437,3}, {3898,6432,3},{3898,6430,3},{3895,6420,3},{3898,6413,3},{3903,6405,3},{3907,6398,3}, {3910,6393,3},{3915,6385,3},{3918,6378,3},{3923,6372,3},{3928,6367,3},{3935,6358,3}, {3940,6352,3},{3945,6342,3},{3947,6337,3},{3953,6327,3},{3957,6317,3},{3960,6312,3}, {3963,6307,3},{3967,6300,3},{3970,6295,3},{3973,6287,3},{3978,6280,3},{3982,6272,3}, {3987,6265,3},{3990,6257,3},{3997,6247,3},{4003,6243,3},{4010,6240,3},{4015,6242,3}, {4022,6240,3},{4028,6238,3},{4033,6238,3},{4038,6233,3},{4043,6235,3},{4045,6232,3}, {4048,6227,3},{4052,6220,3},{4055,6215,3},{4060,6212,3},{4065,6208,3},{4072,6205,3}, {4077,6203,3},{4082,6200,3},{4087,6200,3},{4092,6200,3},{4098,6198,3},{4103,6197,3}, {4105,6190,3},{4108,6190,3},{4112,6185,3},{4118,6175,3},{4122,6172,3},{4123,6165,3}, {4128,6160,3},{4127,6152,3},{4128,6145,3},{4125,6140,3},{4118,6138,3},{4115,6133,3}, {4115,6125,3},{4117,6118,3},{4120,6113,3},{4122,6107,3},{4123,6100,3},{4123,6093,3}, {4123,6087,3},{4123,6077,3},{4123,6068,3},{4122,6057,3},{4122,6047,3},{4125,6040,3}, {4130,6033,3},{4133,6027,3},{4137,6020,3},{4140,6013,3},{4145,6010,3},{4150,6010,3}, {4157,6013,3},{4162,6017,3},{4165,6013,3},{4172,6008,3},{4177,6007,3},{4182,6010,3}, {4180,6018,3},{4177,6023,3},{4177,6032,3},{4178,6030,3},{4182,6023,3},{4185,6015,3}, {4190,6012,3},{4192,6005,3},{4197,5995,3},{4200,5995,3},{4200,6003,3},{4203,6002,3}, {4208,6000,3},{4215,5997,3},{4217,6005,3},{4222,6000,3},{4223,5993,3},{4228,5990,3}, {4230,5982,3},{4227,5980,3},{4228,5972,3},{4228,5963,3},{4228,5957,3},{4228,5948,3}, {4228,5940,3},{4233,5935,3},{4237,5930,3},{4243,5928,3},{4248,5922,3},{4253,5915,3}, {4252,5908,3},{4253,5900,3},{4255,5893,3},{4258,5887,3},{4263,5880,3},{4268,5877,3}, {4273,5870,3},{4278,5863,3},{4277,5862,3},{4275,5863,3},{4270,5860,3},{4265,5857,3}, {4265,5853,3},{4265,5847,3},{4267,5840,3},{4268,5830,3},{4267,5822,3},{4263,5817,3}, {4262,5815,3},{4257,5823,3},{4255,5830,3},{4248,5835,3},{4242,5840,3},{4237,5842,3}, {4235,5845,3},{4232,5852,3},{4230,5852,3},{4228,5850,3},{4228,5840,3},{4235,5840,3}, {4242,5838,3},{4245,5832,3},{4247,5820,3},{4245,5812,3},{4247,5812,3},{4250,5807,3}, {4248,5800,3},{4245,5795,3},{4245,5792,3},{4240,5793,3},{4235,5793,3},{4228,5793,3}, {4223,5792,3},{4223,5783,3},{4217,5785,3},{4217,5783,3},{4217,5772,3},{4215,5765,3}, {4217,5762,3},{4217,5752,3},{4217,5745,3},{4215,5737,3},{4212,5727,3},{4207,5722,3}, {4202,5718,3},{4197,5715,3},{4193,5708,3},{4190,5700,3},{4183,5698,3},{4178,5697,3}, {4172,5698,3},{4165,5698,3},{4160,5702,3},{4155,5703,3},{4150,5702,3},{4143,5703,3}, {4138,5708,3},{4138,5715,3},{4135,5713,3},{4130,5707,3},{4127,5703,3},{4127,5695,3}, {4127,5688,3},{4128,5678,3},{4128,5667,3},{4128,5660,3},{4130,5650,3},{4130,5643,3}, {4130,5635,3},{4130,5627,3},{4132,5620,3},{4132,5612,3},{4132,5600,3},{3735,5390,131}, {3750,5388,3},{3755,5387,3},{3773,5382,3},{3788,5380,3},{3803,5382,3},{3822,5385,3}, {3835,5387,3},{3842,5383,3},{3852,5382,3},{3867,5385,3},{3877,5392,3},{3880,5392,3}, {3892,5398,3},{3892,5397,3},{3893,5397,3},{3893,5393,3},{3898,5388,3},{3903,5387,3}, {3903,5382,3},{3905,5380,3},{3903,5377,3},{3912,5372,3},{3907,5373,3},{3907,5370,3}, {3913,5370,3},{3917,5373,3},{3917,5370,3},{3920,5370,3},{3923,5372,3},{3920,5367,3}, {3918,5368,3},{3908,5368,3},{3912,5363,3},{3918,5362,3},{3918,5360,3},{3923,5360,3}, {3920,5358,3},{3920,5357,3},{3928,5358,3},{3928,5357,3},{3932,5358,3},{3932,5355,3}, {3935,5357,3},{3933,5353,3},{3933,5350,3},{3932,5345,3},{3933,5343,3},{3930,5338,3}, {3933,5340,3},{3932,5328,3},{3935,5330,3},{3937,5323,3},{3933,5315,3},{3932,5320,3}, {3927,5317,3},{3918,5318,3},{3918,5317,3},{3932,5315,3},{3940,5308,3},{3952,5318,3}, {3962,5323,3},{3965,5327,3},{3967,5330,3},{3965,5332,3},{3962,5327,3},{3952,5320,3}, {3952,5325,3},{3953,5342,3},{3948,5348,3},{3947,5355,3},{3947,5357,3},{3948,5358,3}, {3950,5357,3},{3952,5358,3},{3948,5363,3},{3952,5365,3},{3952,5370,3},{3950,5372,3}, {3952,5373,3},{3955,5370,3},{3955,5365,3},{3957,5363,3},{3957,5365,3},{3960,5365,3}, {3962,5363,3},{3962,5360,3},{3962,5357,3},{3967,5355,3},{3967,5353,3},{3963,5353,3}, {3970,5345,3},{3968,5345,3},{3967,5345,3},{3968,5343,3},{3963,5345,3},{3967,5342,3}, {3975,5343,3},{3977,5338,3},{3977,5342,3},{3987,5350,3},{3988,5348,3},{3990,5353,3}, {3992,5352,3},{3997,5358,3},{3997,5348,3},{4000,5342,3},{4000,5338,3},{3993,5328,3}, {4000,5317,3},{3997,5312,3},{3997,5307,3},{3997,5305,3},{4000,5308,3},{3997,5300,3}, {3998,5293,3},{4002,5293,3},{4002,5290,3},{3990,5292,3},{3975,5305,3},{3978,5300,3}, {3973,5303,3},{3977,5300,3},{3983,5297,3},{3987,5290,3},{3995,5288,3},{3997,5283,3}, {4005,5273,3},{4017,5277,3},{4018,5273,3},{4022,5273,3},{4027,5268,3},{4037,5273,3}, {4045,5272,3},{4052,5275,3},{4068,5287,3},{4072,5283,3},{4075,5283,3},{4077,5287,3}, {4078,5287,3},{4087,5288,3},{4095,5293,3},{4102,5292,3},{4107,5292,3},{4108,5292,3}, {4107,5295,3},{4103,5297,3},{4102,5295,3},{4093,5302,3},{4090,5303,3},{4087,5307,3}, {4087,5312,3},{4083,5307,3},{4077,5312,3},{4077,5318,3},{4082,5325,3},{4077,5323,3}, {4077,5332,3},{4078,5333,3},{4082,5335,3},{4083,5338,3},{4078,5338,3},{4073,5347,3}, {4077,5355,3},{4085,5355,3},{4088,5358,3},{4090,5360,3},{4088,5363,3},{4085,5365,3}, {4083,5365,3},{4080,5367,3},{4078,5365,3},{4072,5368,3},{4068,5373,3},{4063,5370,3}, {4062,5375,3},{4063,5377,3},{4063,5387,3},{4065,5390,3},{4067,5395,3},{4065,5403,3}, {4068,5410,3},{4072,5407,3},{4073,5423,3},{4072,5423,3},{4068,5422,3},{4067,5427,3}, {4067,5440,3},{4068,5437,3},{4072,5443,3},{4072,5432,3},{4083,5427,3},{4087,5427,3}, {4088,5425,3},{4093,5433,3},{4090,5440,3},{4087,5442,3},{4087,5447,3},{4083,5445,3}, {4082,5443,3},{4080,5448,3},{4083,5463,3},{4087,5467,3},{4088,5472,3},{4097,5477,3}, {4107,5468,3},{4103,5477,3},{4108,5472,3},{4110,5473,3},{4112,5465,3},{4115,5463,3}, {4125,5452,3},{4133,5430,3},{4140,5420,3},{4145,5415,3},{4148,5407,3},{4160,5402,3}, {4170,5402,3},{4180,5398,3},{4188,5393,3},{4190,5390,3},{4197,5390,3},{4200,5392,3}, {4207,5390,3},{4212,5382,3},{4215,5367,3},{4210,5347,3},{4210,5337,3},{4207,5328,3}, {4210,5315,3},{4207,5308,3},{4203,5307,3},{4200,5297,3},{4197,5295,3},{4178,5283,3}, {4172,5278,3},{4167,5277,3},{4167,5278,3},{4170,5282,3},{4170,5283,3},{4170,5287,3}, {4167,5292,3},{4163,5290,3},{4157,5290,3},{4138,5282,3},{4123,5285,3},{4112,5292,3}, {4105,5288,3},{4107,5285,3},{4115,5285,3},{4123,5282,3},{4132,5278,3},{4137,5277,3}, {4138,5272,3},{4142,5272,3},{4143,5270,3},{4145,5265,3},{4148,5263,3},{4152,5255,3}, {4157,5258,3},{4165,5258,3},{4168,5257,3},{4168,5253,3},{4177,5243,3},{4182,5252,3}, {4185,5257,3},{4188,5263,3},{4193,5270,3},{4197,5275,3},{4200,5282,3},{4205,5288,3}, {4210,5297,3},{4213,5303,3},{4217,5313,3},{4220,5323,3},{4222,5332,3},{4227,5342,3}, {4228,5357,3},{4230,5363,3},{4230,5370,3},{4232,5378,3},{4233,5387,3},{4233,5395,3}, {4233,5403,3},{4233,5410,3},{4233,5418,3},{4230,5428,3},{4227,5435,3},{4225,5442,3}, {4222,5448,3},{4215,5458,3},{4210,5470,3},{4207,5477,3},{4202,5483,3},{4198,5488,3}, {4193,5493,3},{4188,5495,3},{4182,5495,3},{4178,5500,3},{4173,5505,3},{4167,5510,3}, {4160,5513,3},{4155,5517,3},{4150,5522,3},{4143,5527,3},{4138,5533,3},{4133,5540,3}, {4128,5547,3},{4125,5553,3},{4128,5555,3},{4125,5560,3},{4128,5565,3},{4128,5573,3}, {4128,5580,3},{4132,5585,3},{4132,5593,3},{4132,5600,3},{4132,5612,3},{4132,5620,3}, {4130,5627,3},{4130,5635,3},{4130,5643,3},{4130,5650,3},{4128,5660,3},{4128,5667,3}, {4128,5678,3},{4127,5688,3},{4127,5695,3},{4127,5703,3},{4130,5707,3},{4135,5713,3}, {4138,5715,3},{4138,5708,3},{4143,5703,3},{4150,5702,3},{4155,5703,3},{4160,5702,3}, {4165,5698,3},{4172,5698,3},{4178,5697,3},{4183,5698,3},{4190,5700,3},{4193,5708,3}, {4197,5715,3},{4202,5718,3},{4207,5722,3},{4212,5727,3},{4215,5737,3},{4217,5745,3}, {4217,5752,3},{4217,5762,3},{4215,5765,3},{4217,5772,3},{4217,5783,3},{4217,5785,3}, {4223,5783,3},{4223,5792,3},{4228,5793,3},{4235,5793,3},{4240,5793,3},{4245,5792,3}, {4245,5795,3},{4248,5800,3},{4250,5807,3},{4247,5812,3},{4245,5812,3},{4247,5820,3}, {4245,5832,3},{4242,5838,3},{4235,5840,3},{4228,5840,3},{4228,5850,3},{4230,5852,3}, {4232,5852,3},{4235,5845,3},{4237,5842,3},{4242,5840,3},{4248,5835,3},{4255,5830,3}, {4257,5823,3},{4262,5815,3},{4263,5817,3},{4267,5822,3},{4268,5830,3},{4267,5840,3}, {4265,5847,3},{4265,5853,3},{4265,5857,3},{4270,5860,3},{4275,5863,3},{4277,5862,3}, {4278,5863,3},{4273,5870,3},{4268,5877,3},{4263,5880,3},{4258,5887,3},{4255,5893,3}, {4253,5900,3},{4252,5908,3},{4253,5915,3},{4248,5922,3},{4243,5928,3},{4237,5930,3}, {4233,5935,3},{4228,5940,3},{4228,5948,3},{4228,5957,3},{4228,5963,3},{4228,5972,3}, {4227,5980,3},{4230,5982,3},{4228,5990,3},{4223,5993,3},{4222,6000,3},{4217,6005,3}, {4215,5997,3},{4208,6000,3},{4203,6002,3},{4200,6003,3},{4200,5995,3},{4197,5995,3}, {4192,6005,3},{4190,6012,3},{4185,6015,3},{4182,6023,3},{4178,6030,3},{4177,6032,3}, {4177,6023,3},{4180,6018,3},{4182,6010,3},{4177,6007,3},{4172,6008,3},{4165,6013,3}, {4162,6017,3},{4157,6013,3},{4150,6010,3},{4145,6010,3},{4140,6013,3},{4137,6020,3}, {4133,6027,3},{4130,6033,3},{4125,6040,3},{4122,6047,3},{4122,6057,3},{4123,6068,3}, {4123,6077,3},{4123,6087,3},{4123,6093,3},{4123,6100,3},{4122,6107,3},{4120,6113,3}, {4117,6118,3},{4115,6125,3},{4115,6133,3},{4118,6138,3},{4125,6140,3},{4128,6145,3}, {4127,6152,3},{4128,6160,3},{4123,6165,3},{4122,6172,3},{4118,6175,3},{4112,6185,3}, {4108,6190,3},{4105,6190,3},{4103,6197,3},{4098,6198,3},{4092,6200,3},{4087,6200,3}, {4082,6200,3},{4077,6203,3},{4072,6205,3},{4065,6208,3},{4060,6212,3},{4055,6215,3}, {4052,6220,3},{4048,6227,3},{4045,6232,3},{4043,6235,3},{4038,6233,3},{4033,6238,3}, {4028,6238,3},{4022,6240,3},{4015,6242,3},{4010,6240,3},{4003,6243,3},{3997,6247,3}, {3990,6257,3},{3987,6265,3},{3982,6272,3},{3978,6280,3},{3973,6287,3},{3970,6295,3}, {3967,6300,3},{3963,6307,3},{3960,6312,3},{3957,6317,3},{3953,6327,3},{3947,6337,3}, {3945,6342,3},{3940,6352,3},{3935,6358,3},{3928,6367,3},{3923,6372,3},{3918,6378,3}, {3915,6385,3},{3910,6393,3},{3907,6398,3},{3903,6405,3},{3898,6413,3},{3895,6420,3}, {3898,6430,3},{3898,6432,3},{3895,6437,3},{3890,6443,3},{3883,6452,3},{3880,6458,3}, {3877,6465,3},{3873,6473,3},{3870,6480,3},{3867,6485,3},{3863,6493,3},{3862,6500,3}, {3857,6508,3},{3852,6515,3},{3848,6520,3},{3843,6527,3},{3838,6537,3},{3833,6543,3}, {3830,6553,3},{3827,6563,3},{3825,6570,3},{3823,6580,3},{3827,6585,3},{3827,6593,3}, {3823,6600,3},{3822,6607,3},{3818,6612,3},{3817,6620,3},{3817,6623,3},{3812,6627,3}, {3807,6633,3},{3805,6638,3},{3803,6643,3},{3803,6655,3},{3802,6662,3},{3797,6668,3}, {3792,6667,3},{3788,6662,3},{3782,6657,3},{3775,6653,3},{3768,6655,3},{3760,6653,3}, {3753,6658,3},{3748,6663,3},{3743,6663,3},{3742,6657,3},{3740,6652,3},{3738,6652,3}, {3737,6652,3},{3733,6647,3},{3732,6643,3},{3735,6642,3},{3732,6630,3},{3737,6623,3}, {3737,6617,3},{3743,6608,3},{3750,6585,3},{3757,6578,3},{3753,6577,3},{3753,6572,3}, {3752,6568,3},{3745,6565,3},{3735,6565,3},{3725,6555,3},{3725,6530,3},{3723,6523,3}, {3725,6507,3},{3712,6478,3},{3707,6478,3},{3693,6480,3},{3665,6462,3},{3660,6462,3}, {3650,6463,3},{3640,6460,3},{3625,6447,3},{3622,6433,3},{3615,6428,3},{3617,6427,3}, {3617,6418,3},{3612,6410,3},{3608,6407,3},{3600,6407,3},{3603,6400,3},{3603,6392,3}, {3598,6378,3},{3597,6360,3},{3590,6353,3},{3587,6337,3},{3585,6330,3},{3587,6312,3}, {3583,6310,3},{3580,6313,3},{3577,6313,3},{3577,6315,3},{3570,6323,3},{3563,6310,3}, {3555,6310,3},{3553,6313,3},{3543,6310,3},{3542,6298,3},{3528,6275,3},{3525,6272,3}, {3522,6262,3},{3523,6255,3},{3528,6252,3},{3528,6247,3},{3513,6232,3},{3520,6227,3}, {3522,6228,3},{3530,6227,3},{3532,6223,3},{3533,6215,3},{3545,6203,3},{3545,6197,3}, {3542,6180,3},{3545,6160,3},{3552,6147,3},{3555,6145,3},{3557,6140,3},{3560,6140,3}, {3560,6137,3},{3563,6138,3},{3563,6137,3},{3563,6128,3},{3560,6128,3},{3568,6123,3}, {3582,6127,3},{3590,6125,3},{3590,6123,3},{3593,6120,3},{3598,6112,3},{3600,6117,3}, {3603,6117,3},{3605,6120,3},{3612,6123,3},{3628,6118,3},{3632,6115,3},{3640,6115,3}, {3643,6117,3},{3650,6117,3},{3657,6118,3},{3665,6115,3},{3665,6107,3},{3665,6100,3}, {3665,6093,3},{3665,6087,3},{3665,6080,3},{3665,6073,3},{3665,6065,3},{3665,6058,3}, {3665,6052,3},{3665,6045,3},{3665,6037,3},{3665,6033,3},{3670,6030,3},{3675,6028,3}, {3687,6017,3},{3703,6005,3},{3705,6000,3},{3707,5992,3},{3712,5982,3},{3713,5973,3}, {3715,5967,3},{3713,5962,3},{3718,5960,3},{3722,5957,3},{3720,5953,3},{3722,5948,3}, {3725,5948,3},{3732,5940,3},{3742,5937,3},{3743,5938,3},{3748,5938,3},{3753,5933,3}, {3753,5930,3},{3752,5925,3},{3763,5905,3},{3767,5893,3},{3767,5888,3},{3770,5882,3}, {3767,5880,3},{3767,5875,3},{3765,5873,3},{3765,5868,3},{3772,5857,3},{3770,5853,3}, {3765,5850,3},{3763,5838,3},{3767,5837,3},{3768,5823,3},{3778,5820,3},{3780,5817,3}, {3782,5805,3},{3785,5797,3},{3787,5790,3},{3787,5782,3},{3790,5778,3},{3790,5775,3}, {3793,5770,3},{3792,5763,3},{3793,5757,3},{3793,5752,3},{3793,5745,3},{3800,5735,3}, {3810,5737,3},{3815,5732,3},{3817,5728,3},{3820,5728,3},{3823,5725,3},{3827,5725,3}, {3828,5720,3},{3828,5717,3},{3823,5713,3},{3820,5705,3},{3823,5687,3},{3825,5680,3}, {3828,5675,3},{3827,5665,3},{3823,5662,3},{3827,5657,3},{3827,5645,3},{3818,5632,3}, {3817,5632,3},{3813,5635,3},{3808,5633,3},{3808,5632,3},{3807,5622,3},{3810,5617,3}, {3807,5598,3},{3808,5593,3},{3810,5587,3},{3812,5580,3},{3813,5575,3},{3808,5545,3}, {3803,5538,3},{3798,5525,3},{3797,5520,3},{3795,5513,3},{3780,5495,3},{3775,5483,3}, {3765,5478,3},{3758,5482,3},{3752,5478,3},{3747,5468,3},{3745,5468,3},{3745,5458,3}, {3735,5433,3},{3737,5428,3},{3733,5423,3},{3735,5390,3},{2997,4853,131}, {3000,4845,3},{3007,4843,3},{3013,4838,3},{3018,4842,3},{3022,4840,3},{3033,4828,3}, {3033,4820,3},{3042,4817,3},{3047,4807,3},{3048,4803,3},{3100,4803,3},{3100,4770,3}, {3140,4770,3},{3180,4787,3},{3187,4778,3},{3190,4778,3},{3193,4773,3},{3202,4768,3}, {3202,4767,3},{3205,4763,3},{3208,4763,3},{3212,4758,3},{3212,4757,3},{3215,4755,3}, {3215,4750,3},{3223,4753,3},{3233,4742,3},{3238,4743,3},{3240,4743,3},{3248,4735,3}, {3248,4732,3},{3248,4728,3},{3247,4725,3},{3247,4713,3},{3260,4695,3},{3268,4683,3}, {3270,4678,3},{3277,4673,3},{3293,4642,3},{3297,4628,3},{3295,4617,3},{3297,4610,3}, {3300,4610,3},{3303,4613,3},{3307,4615,3},{3308,4610,3},{3308,4605,3},{3310,4605,3}, {3312,4605,3},{3312,4612,3},{3318,4618,3},{3320,4620,3},{3320,4618,3},{3327,4618,3}, {3338,4605,3},{3343,4605,3},{3350,4600,3},{3350,4597,3},{3348,4595,3},{3348,4587,3}, {3352,4588,3},{3355,4595,3},{3360,4590,3},{3363,4590,3},{3363,4583,3},{3358,4577,3}, {3360,4575,3},{3363,4575,3},{3367,4570,3},{3372,4565,3},{3378,4563,3},{3380,4560,3}, {3395,4550,3},{3395,4545,3},{3397,4540,3},{3402,4547,3},{3408,4547,3},{3415,4557,3}, {3418,4555,3},{3423,4557,3},{3432,4558,3},{3435,4553,3},{3433,4548,3},{3445,4543,3}, {3447,4545,3},{3447,4550,3},{3450,4552,3},{3452,4553,3},{3457,4552,3},{3458,4552,3}, {3460,4553,3},{3458,4557,3},{3457,4562,3},{3457,4565,3},{3455,4572,3},{3458,4573,3}, {3460,4572,3},{3467,4572,3},{3472,4565,3},{3473,4565,3},{3477,4570,3},{3482,4570,3}, {3485,4577,3},{3492,4577,3},{3490,4585,3},{3490,4587,3},{3493,4587,3},{3497,4590,3}, {3503,4588,3},{3505,4592,3},{3510,4593,3},{3507,4602,3},{3505,4603,3},{3508,4608,3}, {3510,4615,3},{3512,4617,3},{3517,4615,3},{3518,4618,3},{3522,4620,3},{3525,4612,3}, {3532,4615,3},{3533,4613,3},{3540,4605,3},{3550,4598,3},{3553,4600,3},{3558,4598,3}, {3558,4602,3},{3568,4602,3},{3570,4605,3},{3570,4615,3},{3572,4620,3},{3572,4623,3}, {3578,4633,3},{3580,4635,3},{3583,4633,3},{3583,4632,3},{3582,4627,3},{3580,4618,3}, {3582,4615,3},{3585,4613,3},{3587,4608,3},{3585,4603,3},{3583,4590,3},{3582,4587,3}, {3582,4577,3},{3593,4567,3},{3600,4555,3},{3602,4550,3},{3598,4538,3},{3598,4535,3}, {3602,4533,3},{3608,4537,3},{3615,4532,3},{3623,4532,3},{3625,4528,3},{3628,4530,3}, {3630,4527,3},{3638,4528,3},{3643,4523,3},{3642,4515,3},{3643,4508,3},{3650,4507,3}, {3653,4502,3},{3657,4503,3},{3660,4503,3},{3665,4507,3},{3668,4507,3},{3675,4502,3}, {3677,4497,3},{3678,4495,3},{3678,4487,3},{3680,4485,3},{3683,4485,3},{3688,4490,3}, {3693,4490,3},{3697,4488,3},{3702,4492,3},{3705,4487,3},{3705,4483,3},{3707,4482,3}, {3708,4478,3},{3712,4477,3},{3715,4478,3},{3723,4477,3},{3727,4482,3},{3730,4482,3}, {3735,4475,3},{3738,4472,3},{3738,4467,3},{3743,4465,3},{3745,4458,3},{3748,4460,3}, {3757,4460,3},{3760,4462,3},{3762,4458,3},{3765,4455,3},{3770,4462,3},{3773,4462,3}, {3777,4458,3},{3778,4453,3},{3777,4445,3},{3782,4445,3},{3782,4442,3},{3787,4440,3}, {3788,4433,3},{3787,4428,3},{3790,4422,3},{3802,4427,3},{3803,4428,3},{3810,4432,3}, {3810,4435,3},{3813,4435,3},{3817,4438,3},{3827,4440,3},{3832,4447,3},{3835,4448,3}, {3840,4443,3},{3837,4438,3},{3838,4430,3},{3845,4430,3},{3852,4432,3},{3863,4432,3}, {3867,4427,3},{3870,4428,3},{3872,4427,3},{3883,4430,3},{3887,4428,3},{3887,4425,3}, {3890,4420,3},{3895,4420,3},{3900,4417,3},{3903,4420,3},{3908,4418,3},{3913,4422,3}, {3920,4410,3},{3923,4410,3},{3925,4408,3},{3928,4410,3},{3938,4403,3},{3942,4407,3}, {3942,4412,3},{3940,4413,3},{3942,4420,3},{3942,4423,3},{3938,4430,3},{3942,4442,3}, {3945,4443,3},{3957,4443,3},{3965,4448,3},{3970,4447,3},{3978,4460,3},{3972,4468,3}, {3970,4473,3},{3963,4480,3},{3972,4477,3},{3968,4480,3},{3963,4480,3},{3962,4483,3}, {3962,4487,3},{3960,4488,3},{3948,4493,3},{3945,4495,3},{3943,4495,3},{3942,4500,3}, {3937,4507,3},{3928,4513,3},{3922,4515,3},{3918,4527,3},{3920,4532,3},{3917,4532,3}, {3917,4535,3},{3913,4535,3},{3910,4538,3},{3907,4540,3},{3905,4543,3},{3902,4542,3}, {3900,4543,3},{3897,4553,3},{3897,4557,3},{3895,4562,3},{3893,4577,3},{3888,4588,3}, {3888,4595,3},{3888,4605,3},{3885,4613,3},{3883,4617,3},{3892,4635,3},{3888,4642,3}, {3887,4653,3},{3890,4655,3},{3898,4665,3},{3902,4667,3},{3903,4673,3},{3908,4675,3}, {3915,4683,3},{3917,4690,3},{3915,4695,3},{3920,4703,3},{3925,4705,3},{3930,4710,3}, {3938,4730,3},{3947,4740,3},{3950,4747,3},{3952,4753,3},{3955,4758,3},{3963,4777,3}, {3968,4780,3},{3968,4793,3},{3972,4798,3},{3968,4805,3},{3960,4813,3},{3943,4833,3}, {3938,4837,3},{3935,4827,3},{3933,4818,3},{3930,4815,3},{3927,4812,3},{3922,4813,3}, {3915,4822,3},{3912,4828,3},{3903,4833,3},{3900,4830,3},{3898,4827,3},{3895,4807,3}, {3893,4807,3},{3890,4802,3},{3883,4802,3},{3877,4812,3},{3873,4825,3},{3867,4825,3}, {3865,4828,3},{3860,4833,3},{3862,4845,3},{3857,4845,3},{3855,4848,3},{3840,4863,3}, {3842,4873,3},{3845,4878,3},{3843,4888,3},{3830,4887,3},{3805,4892,3},{3797,4895,3}, {3790,4895,3},{3783,4898,3},{3780,4898,3},{3775,4900,3},{3763,4912,3},{3755,4927,3}, {3748,4943,3},{3745,4983,3},{3748,4993,3},{3745,4997,3},{3747,4995,3},{3745,4993,3}, {3745,4995,3},{3738,5018,3},{3737,5022,3},{3728,5023,3},{3715,5032,3},{3712,5035,3}, {3707,5045,3},{3703,5048,3},{3683,5088,3},{3677,5100,3},{3673,5110,3},{3668,5142,3}, {3658,5187,3},{3658,5197,3},{3660,5210,3},{3668,5243,3},{3670,5255,3},{3672,5267,3}, {3675,5282,3},{3685,5322,3},{3688,5348,3},{3692,5393,3},{3695,5402,3},{3690,5400,3}, {3690,5398,3},{3687,5382,3},{3687,5360,3},{3685,5367,3},{3685,5363,3},{3682,5368,3}, {3680,5388,3},{3680,5395,3},{3682,5403,3},{3695,5403,3},{3697,5403,3},{3698,5398,3}, {3702,5402,3},{3710,5397,3},{3718,5395,3},{3727,5392,3},{3735,5390,3},{3733,5423,3}, {3737,5428,3},{3735,5433,3},{3745,5458,3},{3745,5468,3},{3747,5468,3},{3752,5478,3}, {3758,5482,3},{3765,5478,3},{3775,5483,3},{3780,5495,3},{3795,5513,3},{3797,5520,3}, {3798,5525,3},{3803,5538,3},{3808,5545,3},{3813,5575,3},{3812,5580,3},{3810,5587,3}, {3808,5593,3},{3807,5598,3},{3810,5617,3},{3807,5622,3},{3808,5632,3},{3808,5633,3}, {3813,5635,3},{3817,5632,3},{3818,5632,3},{3827,5645,3},{3827,5657,3},{3823,5662,3}, {3827,5665,3},{3828,5675,3},{3825,5680,3},{3823,5687,3},{3820,5705,3},{3823,5713,3}, {3828,5717,3},{3828,5720,3},{3827,5725,3},{3823,5725,3},{3820,5728,3},{3817,5728,3}, {3815,5732,3},{3810,5737,3},{3800,5735,3},{3793,5745,3},{3793,5752,3},{3793,5757,3}, {3792,5763,3},{3793,5770,3},{3790,5775,3},{3790,5778,3},{3787,5782,3},{3787,5790,3}, {3785,5797,3},{3782,5805,3},{3780,5817,3},{3778,5820,3},{3768,5823,3},{3767,5837,3}, {3763,5838,3},{3765,5850,3},{3770,5853,3},{3772,5857,3},{3765,5868,3},{3765,5873,3}, {3767,5875,3},{3767,5880,3},{3770,5882,3},{3767,5888,3},{3767,5893,3},{3763,5905,3}, {3752,5925,3},{3753,5930,3},{3753,5933,3},{3748,5938,3},{3743,5938,3},{3742,5937,3}, {3732,5940,3},{3725,5948,3},{3722,5948,3},{3720,5953,3},{3722,5957,3},{3718,5960,3}, {3713,5962,3},{3715,5967,3},{3713,5973,3},{3712,5982,3},{3707,5992,3},{3705,6000,3}, {3703,6005,3},{3687,6017,3},{3675,6028,3},{3670,6030,3},{3665,6033,3},{3665,6037,3}, {3665,6045,3},{3665,6052,3},{3665,6058,3},{3665,6065,3},{3665,6073,3},{3665,6080,3}, {3665,6087,3},{3665,6093,3},{3665,6100,3},{3665,6107,3},{3665,6115,3},{3657,6118,3}, {3650,6117,3},{3643,6117,3},{3640,6115,3},{3632,6115,3},{3628,6118,3},{3612,6123,3}, {3605,6120,3},{3603,6117,3},{3600,6117,3},{3598,6112,3},{3593,6120,3},{3590,6123,3}, {3590,6125,3},{3582,6127,3},{3568,6123,3},{3560,6128,3},{3555,6128,3},{3552,6128,3}, {3548,6123,3},{3543,6123,3},{3540,6120,3},{3530,6118,3},{3528,6110,3},{3523,6110,3}, {3520,6112,3},{3518,6110,3},{3513,6113,3},{3510,6115,3},{3507,6112,3},{3502,6112,3}, {3493,6107,3},{3482,6107,3},{3473,6098,3},{3465,6097,3},{3463,6092,3},{3457,6085,3}, {3455,6075,3},{3452,6072,3},{3452,6075,3},{3448,6077,3},{3447,6080,3},{3440,6083,3}, {3432,6092,3},{3432,6067,3},{3428,6068,3},{3425,6062,3},{3420,6055,3},{3413,6050,3}, {3382,6055,3},{3373,6050,3},{3363,6053,3},{3357,6067,3},{3355,6090,3},{3352,6095,3}, {3350,6093,3},{3348,6085,3},{3342,6085,3},{3337,6077,3},{3315,6058,3},{3307,6058,3}, {3298,6060,3},{3293,6062,3},{3288,6065,3},{3283,6065,3},{3278,6067,3},{3273,6068,3}, {3268,6070,3},{3263,6072,3},{3258,6073,3},{3253,6075,3},{3248,6078,3},{3243,6078,3}, {3238,6080,3},{3233,6082,3},{3228,6083,3},{3223,6085,3},{3218,6085,3},{3213,6083,3}, {3208,6083,3},{3203,6080,3},{3202,6082,3},{3198,6080,3},{3195,6082,3},{3187,6082,3}, {3173,6083,3},{3167,6082,3},{3162,6082,3},{3157,6083,3},{3150,6085,3},{3148,6092,3}, {3148,6097,3},{3147,6103,3},{3147,6110,3},{3145,6117,3},{3145,6123,3},{3143,6130,3}, {3143,6135,3},{3142,6142,3},{3142,6148,3},{3140,6155,3},{3140,6162,3},{3138,6172,3}, {3132,6177,3},{3125,6177,3},{3118,6182,3},{3113,6180,3},{3102,6185,3},{3095,6180,3}, {3088,6182,3},{3083,6182,3},{3080,6177,3},{3075,6172,3},{3072,6168,3},{3067,6163,3}, {3062,6160,3},{3058,6157,3},{3053,6152,3},{3050,6148,3},{3045,6143,3},{3040,6140,3}, {3037,6135,3},{3032,6132,3},{3028,6127,3},{3023,6123,3},{3020,6118,3},{3015,6115,3}, {3010,6110,3},{3007,6107,3},{3002,6102,3},{2998,6098,3},{2993,6093,3},{2987,6087,3}, {2982,6092,3},{2978,6095,3},{2973,6098,3},{2970,6103,3},{2965,6107,3},{2962,6112,3}, {2957,6115,3},{2953,6120,3},{2948,6123,3},{2943,6128,3},{2940,6132,3},{2938,6137,3}, {2935,6137,3},{2930,6135,3},{2927,6137,3},{2922,6140,3},{2915,6143,3},{2913,6147,3}, {2910,6148,3},{2908,6152,3},{2905,6148,3},{2902,6153,3},{2887,6160,3},{2878,6167,3}, {2873,6173,3},{2865,6182,3},{2857,6190,3},{2852,6207,3},{2845,6233,3},{2842,6243,3}, {2838,6247,3},{2838,6250,3},{2832,6253,3},{2827,6260,3},{2828,6278,3},{2822,6280,3}, {2803,6277,3},{2775,6283,3},{2748,6285,3},{2737,6280,3},{2732,6282,3},{2728,6280,3}, {2727,6278,3},{2722,6285,3},{2722,6295,3},{2725,6305,3},{2725,6315,3},{2727,6318,3}, {2727,6320,3},{2723,6323,3},{2723,6327,3},{2713,6333,3},{2708,6325,3},{2685,6325,3}, {2682,6318,3},{2672,6320,3},{2663,6318,3},{2665,6283,3},{2663,6277,3},{2662,6275,3}, {2660,6270,3},{2662,6267,3},{2658,6262,3},{2657,6243,3},{2655,6242,3},{2653,6237,3}, {2650,6232,3},{2647,6232,3},{2642,6227,3},{2637,6228,3},{2633,6227,3},{2633,6223,3}, {2632,6225,3},{2628,6223,3},{2628,6212,3},{2632,6208,3},{2633,6203,3},{2628,6197,3}, {2627,6188,3},{2607,6183,3},{2600,6185,3},{2597,6182,3},{2592,6183,3},{2588,6188,3}, {2587,6185,3},{2585,6182,3},{2582,6183,3},{2575,6183,3},{2572,6180,3},{2573,6173,3}, {2568,6168,3},{2565,6167,3},{2532,6165,3},{2520,6162,3},{2520,6158,3},{2523,6158,3}, {2525,6155,3},{2522,6153,3},{2520,6155,3},{2520,6152,3},{2520,6148,3},{2517,6152,3}, {2512,6150,3},{2510,6143,3},{2508,6142,3},{2508,6145,3},{2508,6140,3},{2512,6123,3}, {2517,6120,3},{2517,6117,3},{2527,6062,3},{2528,6062,3},{2528,6063,3},{2533,6060,3}, {2540,6060,3},{2543,6055,3},{2543,6045,3},{2538,6040,3},{2533,6040,3},{2533,6045,3}, {2530,6045,3},{2527,6047,3},{2532,6040,3},{2533,6030,3},{2535,6030,3},{2538,6030,3}, {2537,6020,3},{2532,6018,3},{2533,6012,3},{2538,6008,3},{2538,6002,3},{2537,5993,3}, {2535,5990,3},{2542,5983,3},{2538,5962,3},{2542,5957,3},{2547,5950,3},{2548,5945,3}, {2540,5913,3},{2540,5905,3},{2540,5900,3},{2552,5892,3},{2553,5885,3},{2557,5882,3}, {2555,5872,3},{2557,5870,3},{2558,5860,3},{2560,5855,3},{2558,5847,3},{2558,5840,3}, {2562,5842,3},{2560,5835,3},{2558,5832,3},{2558,5830,3},{2557,5827,3},{2557,5823,3}, {2555,5823,3},{2553,5815,3},{2557,5805,3},{2563,5800,3},{2568,5798,3},{2570,5795,3}, {2568,5787,3},{2563,5778,3},{2570,5778,3},{2575,5775,3},{2573,5752,3},{2575,5745,3}, {2577,5745,3},{2575,5743,3},{2577,5740,3},{2578,5732,3},{2592,5727,3},{2598,5723,3}, {2600,5720,3},{2607,5717,3},{2612,5717,3},{2617,5722,3},{2627,5713,3},{2635,5713,3}, {2640,5708,3},{2645,5707,3},{2657,5710,3},{2667,5708,3},{2685,5702,3},{2695,5693,3}, {2695,5695,3},{2697,5697,3},{2700,5697,3},{2698,5692,3},{2702,5690,3},{2700,5687,3}, {2703,5687,3},{2703,5683,3},{2707,5688,3},{2708,5685,3},{2713,5682,3},{2712,5677,3}, {2713,5672,3},{2715,5673,3},{2715,5670,3},{2715,5655,3},{2717,5652,3},{2717,5642,3}, {2720,5635,3},{2715,5613,3},{2712,5608,3},{2707,5597,3},{2702,5595,3},{2702,5580,3}, {2698,5575,3},{2700,5570,3},{2698,5565,3},{2690,5555,3},{2690,5558,3},{2682,5557,3}, {2677,5548,3},{2675,5540,3},{2677,5537,3},{2678,5535,3},{2678,5525,3},{2672,5520,3}, {2670,5510,3},{2665,5505,3},{2662,5498,3},{2658,5495,3},{2650,5480,3},{2650,5468,3}, {2650,5463,3},{2652,5460,3},{2657,5458,3},{2658,5455,3},{2658,5443,3},{2660,5440,3}, {2670,5433,3},{2672,5428,3},{2670,5423,3},{2670,5413,3},{2675,5402,3},{2673,5398,3}, {2670,5393,3},{2670,5372,3},{2673,5368,3},{2678,5358,3},{2680,5357,3},{2685,5348,3}, {2688,5347,3},{2695,5347,3},{2697,5343,3},{2700,5338,3},{2700,5333,3},{2708,5313,3}, {2710,5303,3},{2713,5298,3},{2717,5293,3},{2720,5290,3},{2722,5285,3},{2728,5275,3}, {2735,5260,3},{2738,5257,3},{2740,5257,3},{2740,5267,3},{2745,5267,3},{2747,5260,3}, {2755,5257,3},{2762,5250,3},{2765,5243,3},{2765,5238,3},{2768,5222,3},{2783,5202,3}, {2783,5188,3},{2785,5180,3},{2783,5172,3},{2785,5158,3},{2787,5158,3},{2793,5147,3}, {2802,5145,3},{2807,5132,3},{2813,5127,3},{2820,5128,3},{2823,5128,3},{2838,5115,3}, {2850,5108,3},{2873,5105,3},{2880,5100,3},{2883,5088,3},{2893,5080,3},{2897,5080,3}, {2900,5083,3},{2895,5090,3},{2897,5090,3},{2902,5093,3},{2907,5093,3},{2907,5090,3}, {2910,5088,3},{2910,5085,3},{2913,5083,3},{2913,5072,3},{2912,5068,3},{2913,5063,3}, {2920,5063,3},{2925,5065,3},{2925,5068,3},{2928,5068,3},{2932,5067,3},{2940,5067,3}, {2947,5063,3},{2950,5062,3},{2947,5060,3},{2962,5047,3},{2965,5040,3},{2987,5023,3}, {2990,5018,3},{2995,5013,3},{2998,5013,3},{2998,5015,3},{3000,5013,3},{3005,5015,3}, {3010,5012,3},{3012,5013,3},{3015,5010,3},{3020,5005,3},{3022,5000,3},{3020,4993,3}, {3000,4957,3},{3005,4950,3},{3015,4948,3},{3017,4942,3},{3017,4938,3},{3017,4935,3}, {3015,4930,3},{3015,4923,3},{3020,4923,3},{3022,4922,3},{3027,4922,3},{3023,4918,3}, {3022,4917,3},{3025,4913,3},{3025,4908,3},{3028,4905,3},{3030,4900,3},{3035,4900,3}, {3038,4892,3},{3040,4895,3},{3038,4900,3},{3040,4907,3},{3035,4922,3},{3038,4922,3}, {3043,4927,3},{3045,4927,3},{3045,4923,3},{3050,4920,3},{3047,4917,3},{3050,4917,3}, {3050,4913,3},{3052,4910,3},{3050,4907,3},{3052,4903,3},{3052,4898,3},{3048,4895,3}, {3047,4895,3},{3047,4902,3},{3043,4903,3},{3042,4903,3},{3042,4892,3},{3035,4887,3}, {3033,4888,3},{3032,4887,3},{3030,4887,3},{3025,4892,3},{3017,4895,3},{3003,4892,3}, {3003,4888,3},{3003,4870,3},{3005,4865,3},{3003,4863,3},{3000,4867,3},{2997,4865,3}, {2995,4860,3},{2997,4853,3},{3890,4655,131},{3895,4652,3},{3900,4653,3}, {3905,4655,3},{3910,4652,3},{3915,4648,3},{3915,4645,3},{3920,4645,3},{3920,4647,3}, {3920,4653,3},{3918,4653,3},{3917,4655,3},{3918,4657,3},{3920,4657,3},{3923,4662,3}, {3925,4657,3},{3930,4653,3},{3933,4650,3},{3935,4643,3},{3940,4640,3},{3945,4640,3}, {3945,4643,3},{3945,4645,3},{3948,4650,3},{3948,4655,3},{3952,4652,3},{3955,4657,3}, {3958,4650,3},{3957,4643,3},{3962,4642,3},{3962,4640,3},{3963,4637,3},{3963,4633,3}, {3960,4627,3},{3960,4620,3},{3958,4618,3},{3960,4618,3},{3962,4617,3},{3965,4613,3}, {3968,4608,3},{3972,4603,3},{3977,4600,3},{3980,4595,3},{3983,4583,3},{3985,4583,3}, {3993,4578,3},{3997,4572,3},{3997,4563,3},{4000,4562,3},{4000,4558,3},{4003,4562,3}, {4003,4568,3},{4003,4577,3},{4000,4582,3},{4003,4588,3},{4007,4590,3},{4012,4592,3}, {4017,4597,3},{4023,4597,3},{4027,4592,3},{4027,4595,3},{4030,4592,3},{4030,4585,3}, {4032,4582,3},{4035,4575,3},{4037,4567,3},{4040,4562,3},{4043,4557,3},{4048,4552,3}, {4050,4545,3},{4055,4545,3},{4060,4543,3},{4062,4537,3},{4067,4535,3},{4072,4540,3}, {4075,4545,3},{4078,4550,3},{4085,4558,3},{4090,4558,3},{4090,4555,3},{4093,4550,3}, {4098,4547,3},{4098,4542,3},{4103,4543,3},{4103,4540,3},{4100,4533,3},{4103,4528,3}, {4103,4527,3},{4102,4525,3},{4102,4522,3},{4107,4515,3},{4110,4515,3},{4110,4513,3}, {4108,4512,3},{4108,4513,3},{4105,4507,3},{4107,4505,3},{4112,4508,3},{4113,4518,3}, {4117,4520,3},{4117,4515,3},{4122,4512,3},{4120,4507,3},{4122,4502,3},{4125,4503,3}, {4130,4500,3},{4132,4505,3},{4135,4512,3},{4138,4515,3},{4142,4522,3},{4147,4527,3}, {4147,4532,3},{4145,4535,3},{4143,4542,3},{4145,4543,3},{4142,4550,3},{4140,4557,3}, {4138,4558,3},{4137,4565,3},{4137,4572,3},{4135,4572,3},{4130,4568,3},{4125,4575,3}, {4122,4580,3},{4122,4587,3},{4118,4595,3},{4118,4603,3},{4118,4610,3},{4120,4612,3}, {4118,4615,3},{4118,4625,3},{4113,4630,3},{4110,4637,3},{4108,4642,3},{4103,4647,3}, {4105,4653,3},{4107,4662,3},{4107,4663,3},{4113,4665,3},{4120,4665,3},{4125,4668,3}, {4130,4672,3},{4130,4668,3},{4135,4665,3},{4138,4660,3},{4142,4653,3},{4143,4647,3}, {4147,4642,3},{4150,4635,3},{4155,4632,3},{4160,4630,3},{4160,4627,3},{4167,4625,3}, {4172,4627,3},{4178,4628,3},{4182,4633,3},{4185,4640,3},{4190,4642,3},{4188,4647,3}, {4187,4653,3},{4182,4655,3},{4180,4658,3},{4182,4662,3},{4183,4670,3},{4187,4675,3}, {4185,4677,3},{4183,4677,3},{4178,4678,3},{4173,4685,3},{4172,4692,3},{4168,4692,3}, {4163,4697,3},{4163,4700,3},{4160,4698,3},{4155,4702,3},{4155,4707,3},{4158,4712,3}, {4157,4712,3},{4152,4717,3},{4148,4718,3},{4142,4722,3},{4138,4725,3},{4132,4727,3}, {4130,4730,3},{4128,4737,3},{4127,4743,3},{4125,4750,3},{4123,4750,3},{4122,4757,3}, {4123,4763,3},{4122,4770,3},{4118,4775,3},{4122,4780,3},{4122,4788,3},{4123,4790,3}, {4130,4792,3},{4135,4793,3},{4138,4798,3},{4143,4803,3},{4148,4805,3},{4150,4812,3}, {4150,4820,3},{4153,4827,3},{4157,4832,3},{4162,4840,3},{4167,4843,3},{4173,4845,3}, {4178,4847,3},{4185,4850,3},{4188,4853,3},{4183,4858,3},{4178,4868,3},{4168,4878,3}, {4163,4880,3},{4160,4885,3},{4153,4890,3},{4150,4895,3},{4145,4898,3},{4142,4903,3}, {4127,4913,3},{4115,4915,3},{4103,4922,3},{4085,4940,3},{4082,4948,3},{4078,4953,3}, {4070,4952,3},{4067,4953,3},{4062,4958,3},{4062,4965,3},{4058,4970,3},{4057,4983,3}, {4058,4992,3},{4058,5007,3},{4057,5007,3},{4052,5012,3},{4050,5023,3},{4043,5028,3}, {4040,5033,3},{4037,5037,3},{4028,5037,3},{4023,5040,3},{4022,5038,3},{4028,5035,3}, {4033,5027,3},{4035,5012,3},{4035,5010,3},{4035,5003,3},{4033,5002,3},{4032,4998,3}, {4035,4997,3},{4037,4988,3},{4033,4983,3},{4032,4985,3},{4028,4982,3},{4027,4970,3}, {4023,4967,3},{4022,4957,3},{4015,4948,3},{4008,4950,3},{4005,4942,3},{3998,4948,3}, {3995,4943,3},{3992,4942,3},{3987,4945,3},{3983,4942,3},{3982,4942,3},{3978,4940,3}, {3970,4942,3},{3968,4938,3},{3962,4932,3},{3950,4928,3},{3947,4930,3},{3938,4942,3}, {3935,4940,3},{3932,4940,3},{3935,4937,3},{3928,4940,3},{3930,4937,3},{3933,4933,3}, {3935,4930,3},{3933,4927,3},{3928,4923,3},{3915,4923,3},{3908,4920,3},{3902,4920,3}, {3898,4913,3},{3897,4907,3},{3900,4905,3},{3903,4912,3},{3910,4915,3},{3910,4907,3}, {3915,4907,3},{3917,4905,3},{3918,4900,3},{3917,4897,3},{3912,4893,3},{3905,4893,3}, {3902,4895,3},{3895,4893,3},{3888,4888,3},{3887,4883,3},{3882,4883,3},{3875,4887,3}, {3843,4888,3},{3845,4878,3},{3842,4873,3},{3840,4863,3},{3855,4848,3},{3857,4845,3}, {3862,4845,3},{3860,4833,3},{3865,4828,3},{3867,4825,3},{3873,4825,3},{3877,4812,3}, {3883,4802,3},{3890,4802,3},{3893,4807,3},{3895,4807,3},{3898,4827,3},{3900,4830,3}, {3903,4833,3},{3912,4828,3},{3915,4822,3},{3922,4813,3},{3927,4812,3},{3930,4815,3}, {3933,4818,3},{3935,4827,3},{3938,4837,3},{3943,4833,3},{3960,4813,3},{3968,4805,3}, {3972,4798,3},{3968,4793,3},{3968,4780,3},{3963,4777,3},{3955,4758,3},{3952,4753,3}, {3950,4747,3},{3947,4740,3},{3938,4730,3},{3930,4710,3},{3925,4705,3},{3920,4703,3}, {3915,4695,3},{3917,4690,3},{3915,4683,3},{3908,4675,3},{3903,4673,3},{3902,4667,3}, {3898,4665,3},{3890,4655,3},{4150,4152,131},{4163,4162,3},{4165,4165,3}, {4172,4173,3},{4183,4178,3},{4200,4177,3},{4213,4165,3},{4227,4163,3},{4235,4160,3}, {4238,4155,3},{4255,4153,3},{4270,4147,3},{4275,4142,3},{4278,4125,3},{4280,4120,3}, {4278,4115,3},{4285,4110,3},{4292,4108,3},{4297,4103,3},{4298,4100,3},{4297,4093,3}, {4307,4085,3},{4308,4080,3},{4310,4065,3},{4308,4058,3},{4312,4052,3},{4313,4045,3}, {4317,4037,3},{4313,4033,3},{4317,4032,3},{4322,4027,3},{4323,4027,3},{4332,4022,3}, {4333,4013,3},{4337,4007,3},{4338,4002,3},{4340,4002,3},{4345,4003,3},{4352,4007,3}, {4355,4010,3},{4358,4017,3},{4358,4023,3},{4357,4030,3},{4355,4037,3},{4355,4045,3}, {4353,4052,3},{4352,4058,3},{4357,4065,3},{4355,4068,3},{4353,4070,3},{4352,4077,3}, {4348,4083,3},{4347,4090,3},{4343,4093,3},{4343,4100,3},{4338,4107,3},{4338,4110,3}, {4340,4113,3},{4338,4117,3},{4337,4123,3},{4333,4132,3},{4337,4137,3},{4335,4142,3}, {4330,4143,3},{4327,4152,3},{4325,4157,3},{4322,4163,3},{4322,4172,3},{4323,4173,3}, {4322,4177,3},{4320,4183,3},{4325,4188,3},{4323,4188,3},{4322,4198,3},{4320,4205,3}, {4320,4208,3},{4322,4215,3},{4323,4222,3},{4322,4228,3},{4322,4232,3},{4325,4238,3}, {4325,4245,3},{4323,4247,3},{4322,4247,3},{4320,4248,3},{4318,4255,3},{4317,4262,3}, {4315,4268,3},{4317,4268,3},{4318,4275,3},{4317,4283,3},{4317,4290,3},{4312,4293,3}, {4312,4297,3},{4310,4303,3},{4307,4303,3},{4303,4305,3},{4300,4312,3},{4293,4320,3}, {4292,4327,3},{4290,4333,3},{4290,4340,3},{4288,4348,3},{4287,4355,3},{4283,4360,3}, {4280,4365,3},{4277,4372,3},{4275,4380,3},{4272,4380,3},{4267,4377,3},{4263,4373,3}, {4258,4378,3},{4258,4382,3},{4257,4390,3},{4257,4397,3},{4260,4402,3},{4262,4408,3}, {4262,4417,3},{4263,4422,3},{4268,4425,3},{4272,4432,3},{4272,4440,3},{4273,4445,3}, {4275,4452,3},{4275,4465,3},{4273,4472,3},{4268,4473,3},{4262,4478,3},{4267,4482,3}, {4273,4487,3},{4275,4493,3},{4273,4500,3},{4270,4508,3},{4270,4515,3},{4267,4520,3}, {4262,4527,3},{4257,4530,3},{4253,4535,3},{4253,4537,3},{4255,4545,3},{4253,4552,3}, {4253,4558,3},{4250,4567,3},{4248,4577,3},{4243,4577,3},{4235,4573,3},{4230,4573,3}, {4228,4572,3},{4228,4563,3},{4222,4562,3},{4218,4567,3},{4215,4573,3},{4212,4580,3}, {4212,4587,3},{4207,4590,3},{4203,4595,3},{4203,4597,3},{4203,4605,3},{4203,4607,3}, {4198,4610,3},{4200,4612,3},{4202,4612,3},{4198,4618,3},{4200,4625,3},{4198,4627,3}, {4193,4632,3},{4195,4638,3},{4190,4642,3},{4185,4640,3},{4182,4633,3},{4178,4628,3}, {4172,4627,3},{4167,4625,3},{4160,4627,3},{4160,4630,3},{4155,4632,3},{4150,4635,3}, {4147,4642,3},{4143,4647,3},{4142,4653,3},{4138,4660,3},{4135,4665,3},{4130,4668,3}, {4130,4672,3},{4125,4668,3},{4120,4665,3},{4113,4665,3},{4107,4663,3},{4107,4662,3}, {4105,4653,3},{4103,4647,3},{4108,4642,3},{4110,4637,3},{4113,4630,3},{4118,4625,3}, {4118,4615,3},{4120,4612,3},{4118,4610,3},{4118,4603,3},{4118,4595,3},{4122,4587,3}, {4122,4580,3},{4125,4575,3},{4130,4568,3},{4135,4572,3},{4137,4572,3},{4137,4565,3}, {4138,4558,3},{4140,4557,3},{4142,4550,3},{4145,4543,3},{4143,4542,3},{4145,4535,3}, {4147,4532,3},{4147,4527,3},{4142,4522,3},{4138,4515,3},{4135,4512,3},{4132,4505,3}, {4130,4500,3},{4127,4495,3},{4127,4488,3},{4130,4482,3},{4127,4480,3},{4123,4483,3}, {4122,4487,3},{4122,4480,3},{4122,4473,3},{4123,4467,3},{4123,4462,3},{4118,4458,3}, {4120,4458,3},{4120,4450,3},{4118,4443,3},{4123,4435,3},{4122,4433,3},{4122,4427,3}, {4123,4423,3},{4123,4417,3},{4118,4415,3},{4118,4407,3},{4118,4400,3},{4115,4398,3}, {4117,4390,3},{4115,4382,3},{4113,4377,3},{4112,4375,3},{4113,4368,3},{4113,4362,3}, {4115,4355,3},{4113,4348,3},{4113,4347,3},{4118,4343,3},{4120,4337,3},{4118,4323,3}, {4125,4320,3},{4125,4312,3},{4128,4320,3},{4130,4320,3},{4132,4313,3},{4137,4308,3}, {4137,4303,3},{4145,4298,3},{4148,4290,3},{4150,4290,3},{4147,4285,3},{4152,4278,3}, {4153,4282,3},{4158,4283,3},{4160,4267,3},{4158,4258,3},{4150,4257,3},{4147,4252,3}, {4145,4252,3},{4143,4247,3},{4148,4228,3},{4148,4220,3},{4150,4218,3},{4150,4210,3}, {4148,4205,3},{4152,4197,3},{4143,4183,3},{4147,4177,3},{4147,4172,3},{4150,4172,3}, {4148,4165,3},{4150,4152,3},{4113,4347,131},{4113,4348,3},{4115,4355,3}, {4113,4362,3},{4113,4368,3},{4112,4375,3},{4113,4377,3},{4115,4382,3},{4117,4390,3}, {4115,4398,3},{4118,4400,3},{4118,4407,3},{4118,4415,3},{4123,4417,3},{4123,4423,3}, {4122,4427,3},{4122,4433,3},{4123,4435,3},{4118,4443,3},{4120,4450,3},{4120,4458,3}, {4118,4458,3},{4123,4462,3},{4123,4467,3},{4122,4473,3},{4122,4480,3},{4122,4487,3}, {4123,4483,3},{4127,4480,3},{4130,4482,3},{4127,4488,3},{4127,4495,3},{4130,4500,3}, {4125,4503,3},{4122,4502,3},{4120,4507,3},{4122,4512,3},{4117,4515,3},{4117,4520,3}, {4113,4518,3},{4112,4508,3},{4107,4505,3},{4105,4507,3},{4108,4513,3},{4108,4512,3}, {4110,4513,3},{4110,4515,3},{4107,4515,3},{4102,4522,3},{4102,4525,3},{4103,4527,3}, {4103,4528,3},{4100,4533,3},{4103,4540,3},{4103,4543,3},{4098,4542,3},{4098,4547,3}, {4093,4550,3},{4090,4555,3},{4090,4558,3},{4085,4558,3},{4078,4550,3},{4075,4545,3}, {4072,4540,3},{4067,4535,3},{4062,4537,3},{4060,4543,3},{4055,4545,3},{4050,4545,3}, {4048,4552,3},{4043,4557,3},{4040,4562,3},{4037,4567,3},{4035,4575,3},{4032,4582,3}, {4030,4585,3},{4030,4592,3},{4027,4595,3},{4027,4592,3},{4023,4597,3},{4017,4597,3}, {4012,4592,3},{4007,4590,3},{4003,4588,3},{4000,4582,3},{4003,4577,3},{4003,4568,3}, {4003,4562,3},{4000,4558,3},{4000,4562,3},{3997,4563,3},{3997,4572,3},{3993,4578,3}, {3985,4583,3},{3983,4583,3},{3980,4595,3},{3977,4600,3},{3972,4603,3},{3968,4608,3}, {3965,4613,3},{3962,4617,3},{3960,4618,3},{3958,4618,3},{3960,4620,3},{3960,4627,3}, {3963,4633,3},{3963,4637,3},{3962,4640,3},{3962,4642,3},{3957,4643,3},{3958,4650,3}, {3955,4657,3},{3952,4652,3},{3948,4655,3},{3948,4650,3},{3945,4645,3},{3945,4643,3}, {3945,4640,3},{3940,4640,3},{3935,4643,3},{3933,4650,3},{3930,4653,3},{3925,4657,3}, {3923,4662,3},{3920,4657,3},{3918,4657,3},{3917,4655,3},{3918,4653,3},{3920,4653,3}, {3920,4647,3},{3920,4645,3},{3915,4645,3},{3915,4648,3},{3910,4652,3},{3905,4655,3}, {3900,4653,3},{3895,4652,3},{3890,4655,3},{3887,4653,3},{3888,4642,3},{3892,4635,3}, {3883,4617,3},{3885,4613,3},{3887,4615,3},{3892,4613,3},{3898,4610,3},{3903,4608,3}, {3908,4605,3},{3913,4603,3},{3917,4602,3},{3923,4600,3},{3930,4600,3},{3932,4595,3}, {3935,4588,3},{3937,4582,3},{3942,4582,3},{3947,4583,3},{3950,4582,3},{3955,4582,3}, {3958,4577,3},{3960,4568,3},{3957,4562,3},{3953,4553,3},{3950,4547,3},{3953,4542,3}, {3957,4533,3},{3962,4527,3},{3958,4522,3},{3960,4518,3},{3965,4520,3},{3970,4518,3}, {3977,4513,3},{3978,4507,3},{3973,4497,3},{3973,4490,3},{3972,4477,3},{3977,4470,3}, {3978,4470,3},{3980,4465,3},{3983,4462,3},{3983,4460,3},{3992,4455,3},{3997,4448,3}, {4000,4438,3},{4005,4428,3},{4003,4418,3},{4002,4415,3},{4003,4410,3},{4002,4405,3}, {4002,4393,3},{4012,4365,3},{4013,4365,3},{4017,4372,3},{4022,4367,3},{4023,4370,3}, {4027,4368,3},{4033,4360,3},{4042,4362,3},{4047,4355,3},{4052,4362,3},{4053,4365,3}, {4055,4365,3},{4068,4375,3},{4070,4373,3},{4077,4375,3},{4083,4368,3},{4092,4367,3}, {4100,4360,3},{4102,4348,3},{4110,4345,3},{4113,4347,3},{3885,4613,131}, {3888,4605,3},{3888,4595,3},{3888,4588,3},{3893,4577,3},{3895,4562,3},{3897,4557,3}, {3897,4553,3},{3900,4543,3},{3902,4542,3},{3905,4543,3},{3907,4540,3},{3910,4538,3}, {3913,4535,3},{3917,4535,3},{3917,4532,3},{3920,4532,3},{3918,4527,3},{3922,4515,3}, {3928,4513,3},{3937,4507,3},{3942,4500,3},{3943,4495,3},{3945,4495,3},{3948,4493,3}, {3960,4488,3},{3962,4487,3},{3962,4483,3},{3963,4480,3},{3968,4480,3},{3972,4477,3}, {3973,4490,3},{3973,4497,3},{3978,4507,3},{3977,4513,3},{3970,4518,3},{3965,4520,3}, {3960,4518,3},{3958,4522,3},{3962,4527,3},{3957,4533,3},{3953,4542,3},{3950,4547,3}, {3953,4553,3},{3957,4562,3},{3960,4568,3},{3958,4577,3},{3955,4582,3},{3950,4582,3}, {3947,4583,3},{3942,4582,3},{3937,4582,3},{3935,4588,3},{3932,4595,3},{3930,4600,3}, {3923,4600,3},{3917,4602,3},{3913,4603,3},{3908,4605,3},{3903,4608,3},{3898,4610,3}, {3892,4613,3},{3887,4615,3},{3885,4613,3},{3593,3592,131},{3600,3598,3}, {3610,3595,3},{3625,3583,3},{3628,3578,3},{3632,3578,3},{3635,3582,3},{3637,3587,3}, {3645,3592,3},{3648,3600,3},{3653,3603,3},{3653,3608,3},{3658,3615,3},{3660,3618,3}, {3665,3622,3},{3670,3620,3},{3677,3620,3},{3678,3620,3},{3687,3612,3},{3692,3607,3}, {3693,3602,3},{3688,3595,3},{3678,3582,3},{3675,3565,3},{3672,3562,3},{3673,3562,3}, {3672,3558,3},{3668,3558,3},{3670,3560,3},{3668,3562,3},{3672,3562,3},{3670,3563,3}, {3673,3563,3},{3672,3567,3},{3672,3572,3},{3670,3565,3},{3665,3560,3},{3665,3562,3}, {3670,3570,3},{3667,3565,3},{3660,3562,3},{3658,3557,3},{3662,3550,3},{3660,3548,3}, {3658,3553,3},{3658,3543,3},{3653,3533,3},{3657,3530,3},{3672,3498,3},{3672,3490,3}, {3673,3490,3},{3677,3488,3},{3680,3483,3},{3682,3473,3},{3680,3467,3},{3678,3463,3}, {3677,3457,3},{3665,3442,3},{3663,3435,3},{3657,3427,3},{3647,3417,3},{3645,3413,3}, {3640,3408,3},{3632,3408,3},{3630,3400,3},{3628,3398,3},{3628,3400,3},{3622,3397,3}, {3622,3395,3},{3623,3395,3},{3628,3393,3},{3632,3388,3},{3627,3382,3},{3625,3383,3}, {3623,3380,3},{3618,3370,3},{3613,3368,3},{3618,3365,3},{3618,3360,3},{3613,3357,3}, {3612,3353,3},{3613,3353,3},{3615,3345,3},{3613,3340,3},{3615,3335,3},{3612,3328,3}, {3613,3313,3},{3607,3308,3},{3608,3305,3},{3610,3293,3},{3607,3287,3},{3602,3280,3}, {3603,3267,3},{3610,3255,3},{3610,3250,3},{3617,3237,3},{3622,3233,3},{3625,3228,3}, {3628,3228,3},{3635,3220,3},{3643,3215,3},{3652,3207,3},{3655,3202,3},{3655,3193,3}, {3658,3185,3},{3660,3178,3},{3663,3173,3},{3665,3167,3},{3672,3153,3},{3677,3138,3}, {3678,3138,3},{3680,3135,3},{3685,3105,3},{3685,3075,3},{3688,3068,3},{3685,3062,3}, {3678,3057,3},{3673,3057,3},{3668,3057,3},{3662,3055,3},{3660,3058,3},{3657,3058,3}, {3652,3057,3},{3645,3050,3},{3643,3050,3},{3643,3048,3},{3640,3047,3},{3633,3052,3}, {3630,3047,3},{3628,3047,3},{3628,3048,3},{3627,3048,3},{3625,3045,3},{3620,3040,3}, {3623,3038,3},{3627,3040,3},{3627,3037,3},{3630,3025,3},{3628,3015,3},{3625,3015,3}, {3627,3013,3},{3625,3013,3},{3623,3010,3},{3627,3005,3},{3625,3003,3},{3625,3005,3}, {3620,2998,3},{3622,2992,3},{3618,2988,3},{3617,2980,3},{3615,2982,3},{3613,2978,3}, {3613,2977,3},{3615,2978,3},{3617,2972,3},{3612,2968,3},{3615,2967,3},{3617,2963,3}, {3617,2962,3},{3617,2963,3},{3618,2963,3},{3618,2958,3},{3620,2962,3},{3620,2950,3}, {3623,2945,3},{3623,2942,3},{3625,2942,3},{3627,2940,3},{3627,2937,3},{3623,2935,3}, {3632,2923,3},{3633,2917,3},{3635,2915,3},{3637,2913,3},{3638,2910,3},{3642,2913,3}, {3645,2912,3},{3648,2910,3},{3648,2913,3},{3653,2913,3},{3657,2908,3},{3655,2905,3}, {3653,2905,3},{3655,2902,3},{3655,2905,3},{3658,2902,3},{3662,2903,3},{3662,2908,3}, {3665,2908,3},{3663,2910,3},{3662,2908,3},{3663,2912,3},{3667,2908,3},{3668,2905,3}, {3672,2902,3},{3670,2898,3},{3675,2893,3},{3670,2888,3},{3670,2890,3},{3668,2887,3}, {3663,2885,3},{3665,2890,3},{3667,2888,3},{3665,2890,3},{3662,2887,3},{3660,2887,3}, {3658,2883,3},{3662,2882,3},{3663,2885,3},{3665,2882,3},{3665,2878,3},{3667,2880,3}, {3670,2872,3},{3668,2867,3},{3672,2863,3},{3670,2862,3},{3673,2860,3},{3677,2862,3}, {3682,2862,3},{3680,2860,3},{3682,2858,3},{3683,2855,3},{3682,2853,3},{3682,2852,3}, {3678,2852,3},{3680,2848,3},{3682,2850,3},{3682,2847,3},{3683,2845,3},{3685,2847,3}, {3688,2847,3},{3687,2843,3},{3687,2840,3},{3685,2838,3},{3683,2838,3},{3683,2842,3}, {3678,2840,3},{3682,2832,3},{3678,2830,3},{3680,2827,3},{3682,2827,3},{3682,2832,3}, {3685,2828,3},{3683,2825,3},{3680,2823,3},{3675,2827,3},{3675,2830,3},{3672,2830,3}, {3673,2828,3},{3672,2825,3},{3668,2822,3},{3668,2817,3},{3660,2812,3},{3658,2808,3}, {3658,2807,3},{3657,2803,3},{3657,2802,3},{3657,2798,3},{3660,2797,3},{3660,2805,3}, {3663,2808,3},{3665,2807,3},{3663,2805,3},{3667,2807,3},{3668,2803,3},{3667,2803,3}, {3667,2802,3},{3668,2797,3},{3670,2803,3},{3672,2805,3},{3672,2808,3},{3670,2808,3}, {3672,2812,3},{3675,2808,3},{3677,2810,3},{3675,2813,3},{3680,2812,3},{3680,2808,3}, {3675,2805,3},{3677,2803,3},{3675,2802,3},{3675,2797,3},{3675,2795,3},{3673,2792,3}, {3675,2790,3},{3673,2788,3},{3675,2788,3},{3673,2787,3},{3675,2782,3},{3675,2772,3}, {3672,2768,3},{3672,2770,3},{3670,2767,3},{3665,2767,3},{3668,2755,3},{3665,2748,3}, {3667,2740,3},{3668,2740,3},{3668,2737,3},{3670,2737,3},{3670,2742,3},{3673,2743,3}, {3675,2747,3},{3677,2762,3},{3680,2763,3},{3678,2768,3},{3678,2773,3},{3682,2782,3}, {3682,2792,3},{3680,2793,3},{3680,2798,3},{3678,2803,3},{3680,2805,3},{3682,2805,3}, {3682,2802,3},{3683,2803,3},{3685,2800,3},{3687,2805,3},{3690,2802,3},{3690,2803,3}, {3692,2802,3},{3692,2807,3},{3693,2805,3},{3693,2810,3},{3693,2815,3},{3690,2817,3}, {3692,2817,3},{3693,2815,3},{3695,2820,3},{3697,2822,3},{3698,2820,3},{3700,2822,3}, {3698,2825,3},{3700,2825,3},{3702,2827,3},{3702,2832,3},{3703,2833,3},{3703,2810,3}, {3702,2810,3},{3703,2808,3},{3703,2792,3},{3698,2777,3},{3700,2768,3},{3698,2763,3}, {3700,2757,3},{3697,2757,3},{3700,2752,3},{3698,2748,3},{3703,2742,3},{3702,2742,3}, {3702,2740,3},{3700,2738,3},{3702,2738,3},{3702,2733,3},{3700,2733,3},{3697,2730,3}, {3695,2730,3},{3697,2730,3},{3695,2727,3},{3697,2725,3},{3702,2725,3},{3703,2723,3}, {3708,2723,3},{3710,2728,3},{3712,2725,3},{3713,2727,3},{3712,2732,3},{3715,2733,3}, {3713,2735,3},{3715,2737,3},{3715,2738,3},{3712,2738,3},{3712,2743,3},{3708,2747,3}, {3712,2753,3},{3712,2757,3},{3713,2757,3},{3713,2755,3},{3715,2755,3},{3718,2753,3}, {3720,2757,3},{3720,2758,3},{3718,2758,3},{3720,2762,3},{3722,2758,3},{3727,2762,3}, {3728,2760,3},{3727,2755,3},{3725,2755,3},{3722,2752,3},{3723,2750,3},{3727,2752,3}, {3727,2748,3},{3725,2747,3},{3727,2747,3},{3732,2750,3},{3733,2747,3},{3730,2745,3}, {3730,2740,3},{3735,2738,3},{3738,2743,3},{3742,2742,3},{3740,2737,3},{3737,2735,3}, {3737,2732,3},{3733,2733,3},{3735,2720,3},{3740,2722,3},{3747,2722,3},{3747,2718,3}, {3750,2718,3},{3755,2718,3},{3755,2722,3},{3758,2722,3},{3763,2713,3},{3765,2700,3}, {3768,2702,3},{3768,2712,3},{3772,2723,3},{3782,2727,3},{3783,2723,3},{3790,2727,3}, {3795,2727,3},{3798,2723,3},{3798,2713,3},{3800,2710,3},{3802,2707,3},{3803,2707,3}, {3807,2698,3},{3807,2692,3},{3803,2687,3},{3815,2682,3},{3817,2677,3},{3820,2678,3}, {3822,2677,3},{3820,2673,3},{3820,2663,3},{3810,2660,3},{3810,2658,3},{3813,2657,3}, {3812,2655,3},{3813,2653,3},{3817,2652,3},{3817,2648,3},{3822,2643,3},{3822,2642,3}, {3820,2642,3},{3822,2638,3},{3823,2640,3},{3827,2638,3},{3825,2638,3},{3822,2635,3}, {3823,2632,3},{3827,2628,3},{3827,2623,3},{3828,2623,3},{3828,2628,3},{3832,2628,3}, {3832,2630,3},{3833,2628,3},{3837,2628,3},{3835,2630,3},{3837,2632,3},{3833,2632,3}, {3830,2637,3},{3832,2638,3},{3833,2638,3},{3833,2640,3},{3835,2645,3},{3837,2648,3}, {3842,2645,3},{3840,2650,3},{3842,2652,3},{3847,2643,3},{3845,2640,3},{3845,2638,3}, {3850,2640,3},{3852,2637,3},{3863,2635,3},{3865,2637,3},{3867,2642,3},{3867,2648,3}, {3865,2653,3},{3860,2657,3},{3857,2657,3},{3852,2663,3},{3847,2663,3},{3847,2660,3}, {3845,2660,3},{3842,2658,3},{3842,2662,3},{3833,2665,3},{3830,2668,3},{3832,2670,3}, {3838,2667,3},{3843,2670,3},{3842,2673,3},{3837,2677,3},{3835,2680,3},{3838,2698,3}, {3840,2702,3},{3840,2708,3},{3845,2717,3},{3847,2705,3},{3845,2698,3},{3843,2693,3}, {3845,2692,3},{3847,2692,3},{3843,2690,3},{3843,2695,3},{3850,2688,3},{3853,2682,3}, {3853,2683,3},{3850,2688,3},{3855,2683,3},{3860,2685,3},{3862,2683,3},{3858,2680,3}, {3860,2680,3},{3862,2675,3},{3863,2677,3},{3865,2672,3},{3867,2675,3},{3868,2672,3}, {3873,2673,3},{3875,2683,3},{3873,2683,3},{3875,2685,3},{3873,2690,3},{3875,2692,3}, {3875,2693,3},{3882,2690,3},{3883,2693,3},{3880,2695,3},{3882,2697,3},{3885,2697,3}, {3887,2702,3},{3885,2703,3},{3887,2707,3},{3890,2703,3},{3892,2707,3},{3893,2705,3}, {3892,2700,3},{3893,2697,3},{3892,2685,3},{3893,2685,3},{3895,2680,3},{3898,2680,3}, {3902,2682,3},{3903,2680,3},{3907,2688,3},{3917,2682,3},{3917,2677,3},{3920,2673,3}, {3925,2672,3},{3927,2662,3},{3930,2663,3},{3932,2665,3},{3928,2663,3},{3928,2667,3}, {3930,2667,3},{3932,2670,3},{3933,2670,3},{3940,2680,3},{3943,2680,3},{3943,2687,3}, {3947,2687,3},{3948,2693,3},{3955,2695,3},{3957,2693,3},{3957,2688,3},{3955,2683,3}, {3957,2678,3},{3955,2667,3},{3952,2645,3},{3948,2637,3},{3948,2627,3},{3947,2625,3}, {3947,2623,3},{3945,2613,3},{3948,2607,3},{3957,2610,3},{3963,2615,3},{3967,2617,3}, {3975,2613,3},{3978,2615,3},{3982,2615,3},{3983,2613,3},{3995,2615,3},{4000,2620,3}, {3998,2625,3},{4000,2628,3},{4002,2633,3},{4010,2637,3},{4012,2640,3},{4020,2642,3}, {4022,2652,3},{4028,2657,3},{4028,2660,3},{4035,2668,3},{4038,2672,3},{4038,2670,3}, {4040,2677,3},{4040,2692,3},{4038,2697,3},{4040,2703,3},{4045,2708,3},{4045,2715,3}, {4043,2718,3},{4045,2723,3},{4047,2728,3},{4042,2733,3},{4040,2730,3},{4038,2730,3}, {4032,2743,3},{4030,2755,3},{4033,2762,3},{4032,2768,3},{4032,2778,3},{4037,2788,3}, {4040,2783,3},{4040,2778,3},{4043,2775,3},{4045,2775,3},{4048,2768,3},{4050,2768,3}, {4052,2772,3},{4053,2773,3},{4052,2775,3},{4053,2775,3},{4053,2778,3},{4050,2778,3}, {4052,2780,3},{4048,2803,3},{4045,2802,3},{4040,2790,3},{4037,2792,3},{4035,2795,3}, {4040,2825,3},{4040,2848,3},{4038,2847,3},{4040,2852,3},{4037,2867,3},{4037,2868,3}, {4040,2878,3},{4038,2887,3},{4037,2893,3},{4037,2907,3},{4042,2908,3},{4043,2915,3}, {4047,2908,3},{4047,2900,3},{4047,2897,3},{4047,2890,3},{4050,2885,3},{4052,2878,3}, {4055,2880,3},{4060,2893,3},{4063,2898,3},{4065,2910,3},{4067,2915,3},{4065,2927,3}, {4070,2938,3},{4068,2943,3},{4073,2952,3},{4068,2955,3},{4073,2980,3},{4072,2990,3}, {4072,2993,3},{4077,2993,3},{4075,2977,3},{4077,2975,3},{4078,2970,3},{4077,2952,3}, {4078,2948,3},{4077,2942,3},{4075,2938,3},{4077,2935,3},{4082,2933,3},{4080,2925,3}, {4083,2928,3},{4085,2928,3},{4088,2923,3},{4090,2915,3},{4095,2910,3},{4098,2902,3}, {4103,2902,3},{4105,2905,3},{4112,2907,3},{4112,2910,3},{4117,2907,3},{4123,2917,3}, {4123,2922,3},{4122,2930,3},{4117,2958,3},{4118,2962,3},{4115,2973,3},{4113,3007,3}, {4113,3017,3},{4117,3022,3},{4118,3023,3},{4122,3028,3},{4120,3033,3},{4118,3037,3}, {4115,3050,3},{4113,3063,3},{4108,3075,3},{4107,3097,3},{4110,3113,3},{4108,3123,3}, {4113,3133,3},{4117,3137,3},{4122,3142,3},{4123,3140,3},{4128,3142,3},{4130,3140,3}, {4132,3140,3},{4132,3147,3},{4135,3150,3},{4138,3162,3},{4143,3175,3},{4145,3177,3}, {4150,3188,3},{4155,3200,3},{4157,3203,3},{4160,3215,3},{4172,3228,3},{4172,3235,3}, {4175,3238,3},{4173,3242,3},{4177,3245,3},{4178,3250,3},{4182,3253,3},{4182,3257,3}, {4183,3260,3},{4183,3268,3},{4187,3278,3},{4187,3287,3},{4188,3295,3},{4193,3305,3}, {4198,3325,3},{4202,3333,3},{4198,3378,3},{4198,3410,3},{4193,3432,3},{4197,3447,3}, {4197,3448,3},{4195,3457,3},{4195,3472,3},{4198,3485,3},{4202,3492,3},{4210,3495,3}, {4208,3502,3},{4203,3505,3},{4202,3508,3},{4202,3515,3},{4203,3518,3},{4202,3522,3}, {4202,3512,3},{4192,3510,3},{4185,3515,3},{4180,3522,3},{4180,3520,3},{4177,3522,3}, {4172,3528,3},{4168,3542,3},{4165,3545,3},{4163,3558,3},{4167,3577,3},{4173,3595,3}, {4168,3592,3},{4163,3592,3},{4173,3597,3},{4168,3603,3},{4170,3603,3},{4168,3605,3}, {4160,3613,3},{4153,3613,3},{4150,3612,3},{4147,3613,3},{4135,3623,3},{4132,3633,3}, {4128,3635,3},{4125,3643,3},{4125,3648,3},{4127,3653,3},{4135,3662,3},{4137,3662,3}, {4137,3665,3},{4135,3687,3},{4128,3702,3},{4125,3703,3},{4120,3703,3},{4117,3705,3}, {4115,3715,3},{4115,3730,3},{4112,3732,3},{4110,3738,3},{4108,3742,3},{4107,3747,3}, {4103,3753,3},{4105,3760,3},{4112,3765,3},{4113,3768,3},{4112,3770,3},{4112,3778,3}, {4107,3778,3},{4105,3780,3},{4103,3782,3},{4102,3787,3},{4098,3790,3},{4098,3802,3}, {4093,3820,3},{4095,3828,3},{4092,3837,3},{4092,3838,3},{4092,3843,3},{4092,3852,3}, {4097,3863,3},{4095,3867,3},{4095,3870,3},{4102,3882,3},{4102,3887,3},{4103,3892,3}, {4103,3902,3},{4103,3905,3},{4107,3915,3},{4108,3917,3},{4105,3928,3},{4112,3942,3}, {4110,3950,3},{4102,3958,3},{4100,3965,3},{4102,3973,3},{4100,3978,3},{4095,3988,3}, {4098,4000,3},{4093,4007,3},{4092,4015,3},{4098,4033,3},{4102,4037,3},{4103,4045,3}, {4103,4055,3},{4107,4062,3},{4110,4068,3},{4115,4075,3},{4120,4083,3},{4120,4095,3}, {4123,4105,3},{4127,4110,3},{4128,4118,3},{4137,4132,3},{4137,4138,3},{4142,4143,3}, {4145,4143,3},{4150,4152,3},{4148,4165,3},{4150,4172,3},{4147,4172,3},{4147,4177,3}, {4143,4183,3},{4152,4197,3},{4148,4205,3},{4150,4210,3},{4150,4218,3},{4148,4220,3}, {4148,4228,3},{4143,4247,3},{4145,4252,3},{4147,4252,3},{4150,4257,3},{4158,4258,3}, {4160,4267,3},{4158,4283,3},{4153,4282,3},{4152,4278,3},{4147,4285,3},{4150,4290,3}, {4148,4290,3},{4145,4298,3},{4137,4303,3},{4137,4308,3},{4132,4313,3},{4130,4320,3}, {4128,4320,3},{4125,4312,3},{4125,4320,3},{4118,4323,3},{4120,4337,3},{4118,4343,3}, {4113,4347,3},{4110,4345,3},{4102,4348,3},{4100,4360,3},{4092,4367,3},{4083,4368,3}, {4077,4375,3},{4070,4373,3},{4068,4375,3},{4055,4365,3},{4053,4365,3},{4052,4362,3}, {4047,4355,3},{4042,4362,3},{4033,4360,3},{4027,4368,3},{4023,4370,3},{4022,4367,3}, {4017,4372,3},{4013,4365,3},{4012,4365,3},{4002,4393,3},{4002,4405,3},{4003,4410,3}, {4002,4415,3},{4003,4418,3},{4005,4428,3},{4000,4438,3},{3997,4448,3},{3992,4455,3}, {3983,4460,3},{3983,4462,3},{3980,4465,3},{3978,4470,3},{3977,4470,3},{3972,4477,3}, {3968,4480,3},{3963,4480,3},{3970,4473,3},{3972,4468,3},{3978,4460,3},{3970,4447,3}, {3965,4448,3},{3957,4443,3},{3945,4443,3},{3942,4442,3},{3938,4430,3},{3942,4423,3}, {3942,4420,3},{3940,4413,3},{3942,4412,3},{3942,4407,3},{3938,4403,3},{3928,4410,3}, {3925,4408,3},{3923,4410,3},{3920,4410,3},{3913,4422,3},{3908,4418,3},{3903,4420,3}, {3900,4417,3},{3895,4420,3},{3890,4420,3},{3887,4425,3},{3887,4428,3},{3883,4430,3}, {3872,4427,3},{3870,4428,3},{3867,4427,3},{3863,4432,3},{3852,4432,3},{3845,4430,3}, {3838,4430,3},{3837,4438,3},{3840,4443,3},{3835,4448,3},{3832,4447,3},{3827,4440,3}, {3817,4438,3},{3813,4435,3},{3810,4435,3},{3810,4432,3},{3803,4428,3},{3802,4427,3}, {3790,4422,3},{3787,4428,3},{3788,4433,3},{3787,4440,3},{3782,4442,3},{3782,4445,3}, {3777,4445,3},{3778,4453,3},{3777,4458,3},{3773,4462,3},{3770,4462,3},{3765,4455,3}, {3762,4458,3},{3760,4462,3},{3757,4460,3},{3748,4460,3},{3745,4458,3},{3743,4465,3}, {3738,4467,3},{3738,4472,3},{3735,4475,3},{3730,4482,3},{3727,4482,3},{3723,4477,3}, {3715,4478,3},{3717,4477,3},{3718,4463,3},{3707,4443,3},{3705,4435,3},{3702,4437,3}, {3697,4432,3},{3698,4425,3},{3705,4423,3},{3710,4420,3},{3715,4423,3},{3717,4427,3}, {3725,4427,3},{3728,4423,3},{3732,4412,3},{3732,4402,3},{3728,4397,3},{3722,4392,3}, {3722,4387,3},{3720,4383,3},{3723,4378,3},{3723,4372,3},{3723,4362,3},{3725,4358,3}, {3727,4357,3},{3725,4348,3},{3733,4335,3},{3732,4328,3},{3738,4315,3},{3735,4302,3}, {3732,4295,3},{3735,4283,3},{3738,4282,3},{3738,4278,3},{3735,4273,3},{3732,4272,3}, {3727,4265,3},{3715,4258,3},{3710,4235,3},{3713,4235,3},{3717,4233,3},{3723,4235,3}, {3728,4228,3},{3728,4222,3},{3732,4222,3},{3732,4220,3},{3727,4215,3},{3718,4205,3}, {3713,4183,3},{3712,4168,3},{3708,4155,3},{3707,4122,3},{3708,4118,3},{3713,4093,3}, {3712,4083,3},{3712,4077,3},{3708,4068,3},{3703,4052,3},{3700,4043,3},{3688,4018,3}, {3687,4012,3},{3682,4000,3},{3675,3982,3},{3675,3970,3},{3672,3963,3},{3667,3923,3}, {3667,3918,3},{3670,3903,3},{3670,3892,3},{3670,3873,3},{3685,3852,3},{3690,3838,3}, {3692,3825,3},{3690,3818,3},{3678,3788,3},{3675,3778,3},{3673,3767,3},{3663,3745,3}, {3667,3725,3},{3665,3717,3},{3667,3712,3},{3662,3708,3},{3663,3705,3},{3667,3702,3}, {3672,3705,3},{3675,3698,3},{3683,3667,3},{3680,3667,3},{3675,3662,3},{3670,3662,3}, {3663,3658,3},{3655,3658,3},{3648,3655,3},{3642,3657,3},{3640,3658,3},{3638,3662,3}, {3635,3662,3},{3633,3660,3},{3633,3665,3},{3628,3668,3},{3623,3668,3},{3622,3662,3}, {3623,3650,3},{3623,3648,3},{3620,3647,3},{3622,3638,3},{3620,3640,3},{3618,3637,3}, {3602,3638,3},{3600,3635,3},{3600,3632,3},{3600,3630,3},{3595,3630,3},{3597,3623,3}, {3595,3622,3},{3592,3618,3},{3582,3617,3},{3582,3615,3},{3587,3610,3},{3588,3602,3}, {3593,3600,3},{3593,3592,3},{2910,4655,131},{2917,4662,3},{2925,4668,3}, {2958,4693,3},{2995,4712,3},{3002,4717,3},{3008,4735,3},{3008,4772,3},{3002,4795,3}, {2993,4798,3},{2987,4798,3},{2980,4800,3},{2973,4805,3},{2973,4808,3},{2958,4817,3}, {2955,4817,3},{2955,4815,3},{2957,4810,3},{2960,4808,3},{2960,4802,3},{2962,4803,3}, {2963,4802,3},{2963,4797,3},{2957,4792,3},{2953,4785,3},{2942,4773,3},{2940,4770,3}, {2938,4768,3},{2938,4770,3},{2940,4783,3},{2935,4780,3},{2933,4783,3},{2933,4788,3}, {2940,4798,3},{2937,4802,3},{2935,4805,3},{2935,4808,3},{2927,4808,3},{2903,4815,3}, {2892,4822,3},{2888,4828,3},{2883,4828,3},{2877,4832,3},{2875,4837,3},{2873,4838,3}, {2867,4838,3},{2868,4837,3},{2867,4838,3},{2865,4835,3},{2863,4835,3},{2865,4838,3}, {2860,4838,3},{2855,4842,3},{2855,4835,3},{2855,4830,3},{2855,4823,3},{2855,4817,3}, {2855,4810,3},{2855,4805,3},{2855,4798,3},{2855,4792,3},{2853,4785,3},{2853,4780,3}, {2853,4773,3},{2855,4768,3},{2857,4768,3},{2863,4760,3},{2870,4758,3},{2878,4757,3}, {2900,4747,3},{2900,4738,3},{2902,4732,3},{2902,4725,3},{2903,4720,3},{2903,4713,3}, {2905,4707,3},{2905,4700,3},{2907,4695,3},{2907,4688,3},{2907,4682,3},{2908,4675,3}, {2908,4668,3},{2910,4663,3},{2910,4655,3},{2920,4472,3},{2923,4467,3},{2925,4460,3}, {2927,4455,3},{2928,4450,3},{2930,4443,3},{2933,4438,3},{2935,4433,3},{2937,4427,3}, {2938,4422,3},{2940,4417,3},{2943,4410,3},{2945,4405,3},{2947,4400,3},{2947,4397,3}, {2950,4390,3},{2952,4383,3},{2953,4378,3},{2957,4372,3},{2958,4365,3},{2960,4358,3}, {2965,4360,3},{2970,4360,3},{2975,4360,3},{2982,4360,3},{2987,4360,3},{2993,4360,3}, {2998,4360,3},{3005,4362,3},{3010,4362,3},{3015,4362,3},{3022,4363,3},{3027,4363,3}, {3032,4365,3},{3038,4367,3},{3038,4360,3},{3038,4353,3},{3038,4347,3},{3040,4340,3}, {3040,4333,3},{3040,4327,3},{3040,4320,3},{3042,4313,3},{3042,4307,3},{3043,4305,3}, {3050,4303,3},{3055,4302,3},{3060,4302,3},{3067,4300,3},{3073,4298,3},{3075,4293,3}, {3077,4287,3},{3080,4280,3},{3083,4275,3},{3085,4268,3},{3088,4262,3},{3090,4257,3}, {3093,4250,3},{3095,4243,3},{3098,4237,3},{3102,4232,3},{3103,4225,3},{3107,4218,3}, {3108,4213,3},{3112,4207,3},{3113,4200,3},{3117,4193,3},{3118,4187,3},{3122,4182,3}, {3123,4175,3},{3127,4168,3},{3128,4162,3},{3132,4157,3},{3133,4150,3},{3137,4143,3}, {3140,4138,3},{3142,4132,3},{3145,4127,3},{3148,4120,3},{3152,4113,3},{3155,4107,3}, {3157,4102,3},{3160,4095,3},{3163,4088,3},{3167,4083,3},{3170,4077,3},{3173,4070,3}, {3175,4063,3},{3178,4058,3},{3182,4052,3},{3185,4045,3},{3188,4038,3},{3190,4033,3}, {3193,4027,3},{3197,4020,3},{3200,4013,3},{3203,4008,3},{3207,4000,3},{3207,3995,3}, {3208,3988,3},{3210,3983,3},{3212,3977,3},{3213,3970,3},{3215,3963,3},{3217,3957,3}, {3218,3950,3},{3220,3943,3},{3222,3937,3},{3223,3930,3},{3228,3928,3},{3233,3927,3}, {3238,3923,3},{3243,3922,3},{3248,3920,3},{3253,3917,3},{3258,3915,3},{3263,3913,3}, {3268,3912,3},{3272,3908,3},{3277,3907,3},{3282,3905,3},{3287,3902,3},{3292,3900,3}, {3297,3898,3},{3302,3895,3},{3307,3893,3},{3312,3892,3},{3317,3890,3},{3322,3887,3}, {3325,3885,3},{3330,3883,3},{3335,3880,3},{3338,3880,3},{3340,3885,3},{3343,3892,3}, {3347,3898,3},{3348,3903,3},{3352,3910,3},{3355,3915,3},{3358,3922,3},{3360,3928,3}, {3363,3933,3},{3367,3940,3},{3370,3947,3},{3372,3952,3},{3375,3958,3},{3378,3965,3}, {3382,3970,3},{3383,3977,3},{3387,3983,3},{3390,3988,3},{3392,3995,3},{3395,4002,3}, {3398,4007,3},{3402,4013,3},{3403,4020,3},{3407,4027,3},{3410,4032,3},{3413,4038,3}, {3415,4045,3},{3418,4052,3},{3422,4057,3},{3425,4063,3},{3427,4070,3},{3430,4075,3}, {3433,4082,3},{3437,4088,3},{3438,4095,3},{3442,4100,3},{3460,4110,3},{3478,4123,3}, {3522,4122,3},{3540,4127,3},{3550,4128,3},{3562,4138,3},{3583,4138,3},{3605,4125,3}, {3635,4128,3},{3653,4140,3},{3660,4183,3},{3663,4188,3},{3668,4193,3},{3672,4197,3}, {3677,4202,3},{3680,4207,3},{3683,4212,3},{3688,4217,3},{3692,4220,3},{3695,4225,3}, {3700,4230,3},{3703,4235,3},{3707,4237,3},{3710,4235,3},{3715,4258,3},{3727,4265,3}, {3732,4272,3},{3735,4273,3},{3738,4278,3},{3738,4282,3},{3735,4283,3},{3732,4295,3}, {3735,4302,3},{3738,4315,3},{3732,4328,3},{3733,4335,3},{3725,4348,3},{3727,4357,3}, {3725,4358,3},{3723,4362,3},{3723,4372,3},{3723,4378,3},{3720,4383,3},{3722,4387,3}, {3722,4392,3},{3728,4397,3},{3732,4402,3},{3732,4412,3},{3728,4423,3},{3725,4427,3}, {3717,4427,3},{3715,4423,3},{3710,4420,3},{3705,4423,3},{3698,4425,3},{3697,4432,3}, {3702,4437,3},{3705,4435,3},{3707,4443,3},{3718,4463,3},{3717,4477,3},{3715,4478,3}, {3712,4477,3},{3708,4478,3},{3707,4482,3},{3705,4483,3},{3705,4487,3},{3702,4492,3}, {3697,4488,3},{3693,4490,3},{3688,4490,3},{3683,4485,3},{3680,4485,3},{3678,4487,3}, {3678,4495,3},{3677,4497,3},{3675,4502,3},{3668,4507,3},{3665,4507,3},{3660,4503,3}, {3657,4503,3},{3653,4502,3},{3650,4507,3},{3643,4508,3},{3642,4515,3},{3643,4523,3}, {3638,4528,3},{3630,4527,3},{3628,4530,3},{3625,4528,3},{3623,4532,3},{3615,4532,3}, {3608,4537,3},{3602,4533,3},{3598,4535,3},{3598,4538,3},{3602,4550,3},{3600,4555,3}, {3593,4567,3},{3582,4577,3},{3582,4587,3},{3583,4590,3},{3585,4603,3},{3587,4608,3}, {3585,4613,3},{3582,4615,3},{3580,4618,3},{3582,4627,3},{3583,4632,3},{3583,4633,3}, {3580,4635,3},{3578,4633,3},{3572,4623,3},{3572,4620,3},{3570,4615,3},{3570,4605,3}, {3568,4602,3},{3558,4602,3},{3558,4598,3},{3553,4600,3},{3550,4598,3},{3540,4605,3}, {3533,4613,3},{3532,4615,3},{3525,4612,3},{3522,4620,3},{3518,4618,3},{3517,4615,3}, {3512,4617,3},{3510,4615,3},{3508,4608,3},{3505,4603,3},{3507,4602,3},{3510,4593,3}, {3505,4592,3},{3503,4588,3},{3497,4590,3},{3493,4587,3},{3490,4587,3},{3490,4585,3}, {3492,4577,3},{3485,4577,3},{3482,4570,3},{3477,4570,3},{3473,4565,3},{3472,4565,3}, {3467,4572,3},{3460,4572,3},{3458,4573,3},{3455,4572,3},{3457,4565,3},{3457,4562,3}, {3458,4557,3},{3460,4553,3},{3458,4552,3},{3457,4552,3},{3452,4553,3},{3450,4552,3}, {3447,4550,3},{3447,4545,3},{3445,4543,3},{3433,4548,3},{3435,4553,3},{3432,4558,3}, {3423,4557,3},{3418,4555,3},{3415,4557,3},{3408,4547,3},{3402,4547,3},{3397,4540,3}, {3395,4545,3},{3395,4550,3},{3380,4560,3},{3378,4563,3},{3372,4565,3},{3367,4570,3}, {3363,4575,3},{3360,4575,3},{3358,4577,3},{3363,4583,3},{3363,4590,3},{3360,4590,3}, {3355,4595,3},{3352,4588,3},{3348,4587,3},{3348,4595,3},{3350,4597,3},{3350,4600,3}, {3343,4605,3},{3338,4605,3},{3327,4618,3},{3320,4618,3},{3320,4620,3},{3318,4618,3}, {3312,4612,3},{3312,4605,3},{3310,4605,3},{3308,4605,3},{3308,4610,3},{3307,4615,3}, {3303,4613,3},{3300,4610,3},{3297,4610,3},{3295,4617,3},{3297,4628,3},{3293,4642,3}, {3277,4673,3},{3270,4678,3},{3268,4683,3},{3260,4695,3},{3247,4713,3},{3247,4725,3}, {3248,4728,3},{3248,4732,3},{3248,4735,3},{3240,4743,3},{3238,4743,3},{3233,4742,3}, {3223,4753,3},{3215,4750,3},{3215,4755,3},{3212,4757,3},{3212,4758,3},{3208,4763,3}, {3205,4763,3},{3202,4767,3},{3202,4768,3},{3193,4773,3},{3190,4778,3},{3187,4778,3}, {3180,4787,3},{3140,4770,3},{3100,4770,3},{3100,4803,3},{3048,4803,3},{3047,4807,3}, {3042,4817,3},{3033,4820,3},{3033,4828,3},{3022,4840,3},{3018,4842,3},{3013,4838,3}, {3007,4843,3},{3000,4845,3},{2997,4853,3},{2995,4853,3},{2995,4857,3},{2993,4855,3}, {2993,4845,3},{2995,4835,3},{3000,4825,3},{3003,4817,3},{3005,4810,3},{3000,4797,3}, {3010,4793,3},{3002,4795,3},{3008,4772,3},{3008,4735,3},{3002,4717,3},{2995,4712,3}, {2958,4693,3},{2925,4668,3},{2917,4662,3},{2910,4655,3},{3325,3562,131}, {3328,3562,3},{3330,3570,3},{3333,3572,3},{3335,3580,3},{3340,3583,3},{3347,3593,3}, {3348,3595,3},{3353,3595,3},{3355,3603,3},{3358,3607,3},{3362,3603,3},{3363,3595,3}, {3365,3593,3},{3368,3597,3},{3372,3597,3},{3377,3602,3},{3377,3603,3},{3383,3607,3}, {3382,3610,3},{3385,3615,3},{3383,3620,3},{3387,3625,3},{3383,3633,3},{3383,3638,3}, {3385,3638,3},{3388,3637,3},{3388,3633,3},{3392,3628,3},{3405,3640,3},{3407,3643,3}, {3405,3647,3},{3407,3650,3},{3410,3652,3},{3413,3657,3},{3418,3660,3},{3420,3663,3}, {3423,3660,3},{3427,3658,3},{3432,3660,3},{3432,3657,3},{3437,3653,3},{3440,3655,3}, {3442,3655,3},{3447,3647,3},{3452,3645,3},{3450,3635,3},{3452,3633,3},{3455,3640,3}, {3460,3640,3},{3462,3642,3},{3460,3645,3},{3463,3647,3},{3463,3638,3},{3465,3637,3}, {3468,3635,3},{3470,3632,3},{3465,3630,3},{3463,3628,3},{3463,3625,3},{3463,3623,3}, {3465,3612,3},{3463,3603,3},{3465,3597,3},{3492,3587,3},{3498,3588,3},{3502,3590,3}, {3510,3588,3},{3517,3593,3},{3520,3597,3},{3528,3592,3},{3542,3592,3},{3550,3582,3}, {3550,3577,3},{3553,3577,3},{3557,3573,3},{3558,3575,3},{3558,3573,3},{3560,3577,3}, {3563,3578,3},{3565,3577,3},{3568,3580,3},{3573,3585,3},{3585,3580,3},{3585,3585,3}, {3593,3592,3},{3593,3600,3},{3588,3602,3},{3587,3610,3},{3582,3615,3},{3582,3617,3}, {3592,3618,3},{3595,3622,3},{3597,3623,3},{3595,3630,3},{3600,3630,3},{3600,3632,3}, {3600,3635,3},{3602,3638,3},{3618,3637,3},{3620,3640,3},{3622,3638,3},{3620,3647,3}, {3623,3648,3},{3623,3650,3},{3622,3662,3},{3623,3668,3},{3628,3668,3},{3633,3665,3}, {3633,3660,3},{3635,3662,3},{3638,3662,3},{3640,3658,3},{3642,3657,3},{3648,3655,3}, {3655,3658,3},{3663,3658,3},{3670,3662,3},{3675,3662,3},{3680,3667,3},{3683,3667,3}, {3675,3698,3},{3672,3705,3},{3667,3702,3},{3663,3705,3},{3662,3708,3},{3667,3712,3}, {3665,3717,3},{3667,3725,3},{3663,3745,3},{3673,3767,3},{3675,3778,3},{3678,3788,3}, {3690,3818,3},{3692,3825,3},{3690,3838,3},{3685,3852,3},{3670,3873,3},{3670,3892,3}, {3670,3903,3},{3667,3918,3},{3667,3923,3},{3672,3963,3},{3675,3970,3},{3675,3982,3}, {3682,4000,3},{3687,4012,3},{3688,4018,3},{3700,4043,3},{3703,4052,3},{3708,4068,3}, {3712,4077,3},{3712,4083,3},{3713,4093,3},{3708,4118,3},{3707,4122,3},{3708,4155,3}, {3712,4168,3},{3713,4183,3},{3718,4205,3},{3727,4215,3},{3732,4220,3},{3732,4222,3}, {3728,4222,3},{3728,4228,3},{3723,4235,3},{3717,4233,3},{3713,4235,3},{3710,4235,3}, {3707,4237,3},{3703,4235,3},{3700,4230,3},{3695,4225,3},{3692,4220,3},{3688,4217,3}, {3683,4212,3},{3680,4207,3},{3677,4202,3},{3672,4197,3},{3668,4193,3},{3663,4188,3}, {3660,4183,3},{3653,4140,3},{3635,4128,3},{3605,4125,3},{3583,4138,3},{3562,4138,3}, {3550,4128,3},{3540,4127,3},{3522,4122,3},{3478,4123,3},{3460,4110,3},{3442,4100,3}, {3438,4095,3},{3437,4088,3},{3433,4082,3},{3430,4075,3},{3427,4070,3},{3425,4063,3}, {3422,4057,3},{3418,4052,3},{3415,4045,3},{3413,4038,3},{3410,4032,3},{3407,4027,3}, {3403,4020,3},{3402,4013,3},{3398,4007,3},{3395,4002,3},{3392,3995,3},{3390,3988,3}, {3387,3983,3},{3383,3977,3},{3382,3970,3},{3378,3965,3},{3375,3958,3},{3372,3952,3}, {3370,3947,3},{3367,3940,3},{3363,3933,3},{3360,3928,3},{3358,3922,3},{3355,3915,3}, {3352,3910,3},{3348,3903,3},{3347,3898,3},{3343,3892,3},{3340,3885,3},{3338,3880,3}, {3337,3877,3},{3333,3872,3},{3330,3867,3},{3328,3860,3},{3325,3855,3},{3322,3850,3}, {3320,3845,3},{3317,3840,3},{3313,3833,3},{3312,3828,3},{3308,3823,3},{3305,3818,3}, {3303,3813,3},{3300,3808,3},{3297,3803,3},{3295,3797,3},{3292,3792,3},{3288,3787,3}, {3287,3782,3},{3283,3777,3},{3280,3772,3},{3278,3765,3},{3275,3760,3},{3272,3755,3}, {3268,3750,3},{3267,3745,3},{3263,3740,3},{3260,3735,3},{3258,3730,3},{3255,3723,3}, {3252,3718,3},{3248,3713,3},{3247,3708,3},{3243,3703,3},{3240,3698,3},{3238,3693,3}, {3235,3688,3},{3232,3683,3},{3233,3677,3},{3233,3672,3},{3235,3668,3},{3235,3662,3}, {3235,3657,3},{3237,3650,3},{3238,3645,3},{3238,3640,3},{3245,3632,3},{3252,3622,3}, {3253,3620,3},{3252,3617,3},{3253,3613,3},{3252,3608,3},{3258,3607,3},{3262,3603,3}, {3265,3603,3},{3267,3597,3},{3268,3595,3},{3268,3597,3},{3272,3593,3},{3273,3583,3}, {3273,3580,3},{3275,3580,3},{3270,3568,3},{3268,3567,3},{3268,3565,3},{3275,3563,3}, {3282,3563,3},{3285,3565,3},{3290,3562,3},{3293,3563,3},{3303,3563,3},{3323,3568,3}, {3325,3562,3},{3310,3510,131},{3322,3520,3},{3325,3522,3},{3328,3518,3}, {3328,3520,3},{3333,3525,3},{3345,3527,3},{3353,3535,3},{3365,3540,3},{3367,3542,3}, {3370,3542,3},{3372,3545,3},{3375,3545,3},{3380,3548,3},{3387,3548,3},{3390,3547,3}, {3390,3557,3},{3398,3560,3},{3400,3563,3},{3403,3562,3},{3410,3565,3},{3415,3562,3}, {3420,3563,3},{3423,3565,3},{3428,3565,3},{3432,3568,3},{3432,3570,3},{3432,3572,3}, {3438,3573,3},{3442,3582,3},{3447,3580,3},{3447,3590,3},{3452,3597,3},{3453,3598,3}, {3460,3598,3},{3465,3597,3},{3463,3603,3},{3465,3612,3},{3463,3623,3},{3463,3625,3}, {3463,3628,3},{3465,3630,3},{3470,3632,3},{3468,3635,3},{3465,3637,3},{3463,3638,3}, {3463,3647,3},{3460,3645,3},{3462,3642,3},{3460,3640,3},{3455,3640,3},{3452,3633,3}, {3450,3635,3},{3452,3645,3},{3447,3647,3},{3442,3655,3},{3440,3655,3},{3437,3653,3}, {3432,3657,3},{3432,3660,3},{3427,3658,3},{3423,3660,3},{3420,3663,3},{3418,3660,3}, {3413,3657,3},{3410,3652,3},{3407,3650,3},{3405,3647,3},{3407,3643,3},{3405,3640,3}, {3392,3628,3},{3388,3633,3},{3388,3637,3},{3385,3638,3},{3383,3638,3},{3383,3633,3}, {3387,3625,3},{3383,3620,3},{3385,3615,3},{3382,3610,3},{3383,3607,3},{3377,3603,3}, {3377,3602,3},{3372,3597,3},{3368,3597,3},{3365,3593,3},{3363,3595,3},{3362,3603,3}, {3358,3607,3},{3355,3603,3},{3353,3595,3},{3348,3595,3},{3347,3593,3},{3340,3583,3}, {3335,3580,3},{3333,3572,3},{3330,3570,3},{3328,3562,3},{3325,3562,3},{3328,3557,3}, {3323,3553,3},{3310,3550,3},{3310,3545,3},{3307,3543,3},{3307,3535,3},{3310,3532,3}, {3310,3530,3},{3310,3525,3},{3310,3510,3},{2475,5083,131},{2480,5087,3}, {2483,5085,3},{2492,5085,3},{2498,5080,3},{2505,5080,3},{2510,5077,3},{2543,5075,3}, {2548,5077,3},{2548,5075,3},{2552,5078,3},{2547,5082,3},{2547,5085,3},{2552,5082,3}, {2555,5083,3},{2560,5083,3},{2560,5078,3},{2562,5080,3},{2563,5087,3},{2557,5087,3}, {2553,5087,3},{2553,5090,3},{2560,5092,3},{2560,5095,3},{2563,5098,3},{2563,5092,3}, {2567,5088,3},{2572,5088,3},{2575,5092,3},{2578,5090,3},{2580,5093,3},{2577,5097,3}, {2580,5098,3},{2582,5097,3},{2583,5095,3},{2585,5095,3},{2590,5098,3},{2597,5098,3}, {2597,5100,3},{2605,5105,3},{2608,5113,3},{2613,5118,3},{2615,5125,3},{2610,5133,3}, {2603,5135,3},{2602,5138,3},{2597,5140,3},{2595,5142,3},{2595,5150,3},{2590,5157,3}, {2575,5160,3},{2573,5158,3},{2577,5157,3},{2573,5155,3},{2573,5153,3},{2573,5158,3}, {2570,5158,3},{2568,5155,3},{2570,5155,3},{2568,5150,3},{2568,5153,3},{2563,5155,3}, {2562,5153,3},{2562,5148,3},{2557,5150,3},{2552,5147,3},{2543,5152,3},{2530,5152,3}, {2528,5158,3},{2527,5160,3},{2502,5162,3},{2492,5157,3},{2485,5150,3},{2467,5143,3}, {2463,5138,3},{2460,5137,3},{2457,5133,3},{2460,5133,3},{2463,5135,3},{2465,5128,3}, {2467,5128,3},{2465,5127,3},{2463,5122,3},{2462,5122,3},{2458,5118,3},{2457,5112,3}, {2455,5112,3},{2457,5107,3},{2457,5100,3},{2460,5095,3},{2465,5090,3},{2470,5085,3}, {2475,5083,3},{1663,5308,131},{1665,5307,3},{1670,5303,3},{1675,5298,3}, {1680,5295,3},{1685,5290,3},{1690,5287,3},{1695,5282,3},{1700,5277,3},{1705,5273,3}, {1712,5272,3},{1717,5272,3},{1723,5273,3},{1730,5273,3},{1730,5275,3},{1735,5273,3}, {1740,5270,3},{1745,5267,3},{1750,5263,3},{1755,5260,3},{1760,5257,3},{1765,5253,3}, {1770,5248,3},{1775,5247,3},{1780,5243,3},{1785,5238,3},{1790,5237,3},{1790,5235,3}, {1795,5232,3},{1800,5228,3},{1805,5225,3},{1810,5222,3},{1815,5218,3},{1820,5215,3}, {1825,5210,3},{1830,5208,3},{1830,5207,3},{1835,5205,3},{1840,5200,3},{1845,5198,3}, {1845,5197,3},{1850,5193,3},{1855,5190,3},{1862,5188,3},{1868,5190,3},{1873,5193,3}, {1880,5195,3},{1887,5197,3},{1893,5198,3},{1900,5200,3},{1902,5207,3},{1905,5213,3}, {1907,5220,3},{1908,5227,3},{1912,5233,3},{1913,5240,3},{1915,5247,3},{1918,5253,3}, {1920,5260,3},{1922,5267,3},{1923,5273,3},{1927,5278,3},{1928,5285,3},{1930,5292,3}, {1933,5298,3},{1935,5305,3},{1937,5312,3},{1940,5318,3},{1942,5325,3},{1943,5332,3}, {1947,5338,3},{1948,5345,3},{1950,5352,3},{1953,5358,3},{1955,5365,3},{1957,5372,3}, {1960,5378,3},{1962,5385,3},{1963,5392,3},{1967,5398,3},{1968,5405,3},{1970,5412,3}, {1973,5418,3},{1975,5427,3},{1978,5433,3},{1980,5440,3},{1982,5447,3},{1985,5453,3}, {1987,5460,3},{1988,5467,3},{1992,5473,3},{1993,5480,3},{1995,5487,3},{1998,5493,3}, {2000,5500,3},{2007,5502,3},{2013,5505,3},{2020,5507,3},{2027,5508,3},{2033,5512,3}, {2040,5513,3},{2047,5515,3},{2053,5518,3},{2060,5520,3},{2067,5522,3},{2073,5525,3}, {2080,5527,3},{2087,5528,3},{2093,5532,3},{2100,5533,3},{2107,5535,3},{2113,5538,3}, {2120,5540,3},{2127,5542,3},{2133,5545,3},{2140,5547,3},{2147,5548,3},{2153,5552,3}, {2160,5553,3},{2167,5555,3},{2173,5558,3},{2180,5560,3},{2187,5562,3},{2193,5565,3}, {2200,5567,3},{2203,5565,3},{2210,5560,3},{2217,5555,3},{2223,5552,3},{2230,5547,3}, {2237,5542,3},{2243,5538,3},{2250,5533,3},{2257,5528,3},{2263,5525,3},{2270,5520,3}, {2275,5520,3},{2275,5522,3},{2280,5522,3},{2287,5522,3},{2293,5522,3},{2300,5522,3}, {2305,5523,3},{2310,5523,3},{2315,5527,3},{2320,5528,3},{2320,5530,3},{2325,5532,3}, {2325,5533,3},{2330,5535,3},{2335,5537,3},{2340,5538,3},{2345,5538,3},{2345,5540,3}, {2350,5540,3},{2352,5545,3},{2357,5547,3},{2362,5548,3},{2367,5550,3},{2372,5552,3}, {2372,5553,3},{2377,5557,3},{2382,5555,3},{2387,5557,3},{2392,5553,3},{2392,5550,3}, {2397,5547,3},{2398,5553,3},{2400,5560,3},{2402,5560,3},{2403,5567,3},{2402,5573,3}, {2403,5580,3},{2402,5582,3},{2403,5588,3},{2405,5595,3},{2407,5595,3},{2407,5602,3}, {2412,5600,3},{2418,5598,3},{2418,5597,3},{2423,5595,3},{2423,5592,3},{2422,5585,3}, {2423,5578,3},{2425,5578,3},{2427,5578,3},{2432,5582,3},{2437,5583,3},{2442,5583,3}, {2442,5582,3},{2447,5580,3},{2452,5580,3},{2452,5578,3},{2458,5578,3},{2458,5580,3}, {2458,5582,3},{2463,5582,3},{2463,5583,3},{2468,5583,3},{2473,5582,3},{2478,5582,3}, {2483,5580,3},{2488,5580,3},{2488,5582,3},{2493,5585,3},{2497,5590,3},{2498,5597,3}, {2497,5603,3},{2492,5603,3},{2487,5605,3},{2488,5598,3},{2487,5598,3},{2485,5598,3}, {2483,5603,3},{2478,5603,3},{2478,5605,3},{2473,5607,3},{2473,5613,3},{2478,5618,3}, {2483,5618,3},{2483,5620,3},{2483,5622,3},{2485,5628,3},{2488,5630,3},{2488,5633,3}, {2493,5633,3},{2498,5635,3},{2498,5637,3},{2473,5648,3},{2468,5650,3},{2450,5660,3}, {2432,5680,3},{2423,5683,3},{2413,5690,3},{2400,5708,3},{2393,5717,3},{2383,5750,3}, {2380,5762,3},{2378,5778,3},{2375,5782,3},{2372,5788,3},{2372,5810,3},{2368,5820,3}, {2365,5827,3},{2362,5835,3},{2362,5845,3},{2365,5848,3},{2365,5850,3},{2365,5852,3}, {2365,5858,3},{2363,5862,3},{2360,5862,3},{2357,5865,3},{2357,5867,3},{2353,5870,3}, {2353,5872,3},{2355,5872,3},{2352,5873,3},{2353,5877,3},{2350,5878,3},{2342,5880,3}, {2340,5882,3},{2332,5893,3},{2325,5895,3},{2320,5900,3},{2315,5902,3},{2308,5907,3}, {2305,5908,3},{2295,5923,3},{2280,5930,3},{2275,5935,3},{2268,5940,3},{2258,5953,3}, {2257,5952,3},{2255,5952,3},{2257,5963,3},{2253,5972,3},{2250,5972,3},{2248,5977,3}, {2253,5975,3},{2252,5978,3},{2253,5980,3},{2243,5985,3},{2222,5980,3},{2210,5972,3}, {2207,5968,3},{2193,5965,3},{2192,5962,3},{2187,5958,3},{2183,5958,3},{2177,5950,3}, {2162,5945,3},{2148,5935,3},{2143,5935,3},{2137,5917,3},{2128,5905,3},{2103,5883,3}, {2100,5880,3},{2093,5880,3},{2088,5873,3},{2085,5873,3},{2082,5868,3},{2080,5867,3}, {2077,5867,3},{2075,5870,3},{2078,5872,3},{2077,5873,3},{2073,5867,3},{2070,5865,3}, {2065,5860,3},{2057,5857,3},{2052,5853,3},{2042,5852,3},{2040,5848,3},{2035,5845,3}, {2035,5842,3},{2038,5835,3},{2037,5827,3},{2038,5830,3},{2038,5827,3},{2040,5822,3}, {2043,5820,3},{2047,5822,3},{2043,5822,3},{2042,5823,3},{2048,5823,3},{2058,5827,3}, {2062,5825,3},{2062,5822,3},{2055,5808,3},{2050,5807,3},{2047,5807,3},{2043,5800,3}, {2040,5797,3},{2038,5795,3},{2035,5798,3},{2032,5797,3},{2027,5787,3},{2022,5783,3}, {2018,5782,3},{2013,5785,3},{2002,5782,3},{1998,5782,3},{1992,5778,3},{1985,5777,3}, {1975,5770,3},{1972,5768,3},{1968,5770,3},{1967,5772,3},{1953,5770,3},{1942,5777,3}, {1937,5777,3},{1928,5775,3},{1918,5778,3},{1915,5782,3},{1908,5780,3},{1903,5783,3}, {1897,5780,3},{1897,5775,3},{1893,5772,3},{1895,5752,3},{1892,5725,3},{1885,5703,3}, {1880,5690,3},{1875,5682,3},{1858,5665,3},{1845,5663,3},{1840,5662,3},{1833,5662,3}, {1820,5655,3},{1813,5657,3},{1810,5652,3},{1808,5647,3},{1802,5643,3},{1797,5635,3}, {1793,5635,3},{1795,5618,3},{1793,5615,3},{1793,5603,3},{1790,5588,3},{1790,5580,3}, {1788,5565,3},{1783,5543,3},{1775,5538,3},{1768,5537,3},{1762,5527,3},{1755,5523,3}, {1747,5523,3},{1745,5528,3},{1740,5530,3},{1737,5530,3},{1728,5525,3},{1723,5527,3}, {1720,5522,3},{1715,5520,3},{1708,5515,3},{1702,5507,3},{1702,5505,3},{1700,5498,3}, {1698,5497,3},{1698,5488,3},{1697,5487,3},{1698,5487,3},{1698,5485,3},{1697,5485,3}, {1695,5482,3},{1697,5482,3},{1695,5477,3},{1697,5472,3},{1702,5472,3},{1703,5450,3}, {1702,5447,3},{1703,5442,3},{1702,5437,3},{1702,5410,3},{1698,5402,3},{1693,5402,3}, {1692,5398,3},{1690,5393,3},{1687,5375,3},{1682,5368,3},{1678,5367,3},{1677,5362,3}, {1673,5358,3},{1675,5348,3},{1673,5337,3},{1667,5313,3},{1663,5308,3},{2563,5627,131}, {2560,5622,3},{2562,5620,3},{2567,5615,3},{2577,5615,3},{2583,5615,3},{2590,5617,3}, {2602,5617,3},{2608,5615,3},{2608,5608,3},{2622,5617,3},{2627,5620,3},{2627,5622,3}, {2622,5622,3},{2620,5622,3},{2623,5627,3},{2620,5630,3},{2622,5635,3},{2622,5640,3}, {2623,5640,3},{2625,5638,3},{2622,5630,3},{2627,5632,3},{2628,5632,3},{2627,5633,3}, {2627,5637,3},{2632,5632,3},{2632,5635,3},{2638,5637,3},{2637,5637,3},{2635,5638,3}, {2637,5640,3},{2635,5640,3},{2635,5643,3},{2633,5643,3},{2633,5648,3},{2635,5648,3}, {2635,5650,3},{2632,5652,3},{2632,5647,3},{2628,5640,3},{2625,5640,3},{2625,5648,3}, {2622,5648,3},{2620,5647,3},{2622,5645,3},{2622,5643,3},{2618,5643,3},{2617,5647,3}, {2615,5647,3},{2613,5647,3},{2615,5642,3},{2617,5640,3},{2618,5640,3},{2617,5638,3}, {2620,5638,3},{2620,5637,3},{2617,5632,3},{2615,5633,3},{2612,5633,3},{2615,5637,3}, {2610,5637,3},{2610,5638,3},{2608,5642,3},{2610,5643,3},{2608,5647,3},{2608,5643,3}, {2605,5643,3},{2605,5638,3},{2602,5638,3},{2602,5642,3},{2600,5642,3},{2598,5640,3}, {2597,5642,3},{2595,5642,3},{2595,5645,3},{2593,5643,3},{2593,5638,3},{2590,5640,3}, {2585,5637,3},{2580,5637,3},{2575,5632,3},{2573,5630,3},{2575,5630,3},{2575,5628,3}, {2567,5627,3},{2563,5627,3},{2270,5520,131},{2267,5517,3},{2262,5512,3}, {2255,5505,3},{2250,5500,3},{2252,5493,3},{2252,5487,3},{2253,5480,3},{2255,5473,3}, {2255,5467,3},{2257,5460,3},{2258,5453,3},{2258,5447,3},{2260,5440,3},{2262,5433,3}, {2262,5427,3},{2263,5420,3},{2265,5413,3},{2265,5407,3},{2267,5400,3},{2268,5393,3}, {2268,5387,3},{2270,5380,3},{2272,5373,3},{2272,5367,3},{2273,5360,3},{2275,5353,3}, {2275,5347,3},{2277,5340,3},{2278,5333,3},{2278,5327,3},{2280,5320,3},{2282,5313,3}, {2282,5307,3},{2283,5300,3},{2285,5293,3},{2285,5287,3},{2287,5280,3},{2288,5273,3}, {2288,5267,3},{2290,5260,3},{2292,5253,3},{2292,5247,3},{2293,5240,3},{2295,5233,3}, {2295,5227,3},{2297,5220,3},{2298,5213,3},{2298,5207,3},{2300,5200,3},{2303,5198,3}, {2310,5197,3},{2317,5195,3},{2322,5193,3},{2328,5192,3},{2335,5190,3},{2342,5188,3}, {2348,5187,3},{2355,5185,3},{2362,5182,3},{2367,5180,3},{2373,5178,3},{2380,5177,3}, {2387,5175,3},{2390,5168,3},{2395,5162,3},{2398,5157,3},{2403,5150,3},{2407,5143,3}, {2410,5137,3},{2415,5130,3},{2418,5125,3},{2423,5118,3},{2427,5112,3},{2433,5112,3}, {2440,5112,3},{2447,5112,3},{2455,5112,3},{2457,5112,3},{2458,5118,3},{2462,5122,3}, {2462,5127,3},{2460,5128,3},{2460,5130,3},{2457,5130,3},{2452,5130,3},{2458,5138,3}, {2462,5140,3},{2462,5142,3},{2462,5143,3},{2458,5145,3},{2460,5148,3},{2457,5150,3}, {2453,5142,3},{2448,5140,3},{2442,5132,3},{2435,5130,3},{2433,5128,3},{2430,5128,3}, {2428,5135,3},{2432,5138,3},{2432,5143,3},{2430,5150,3},{2425,5153,3},{2425,5157,3}, {2427,5158,3},{2435,5158,3},{2438,5158,3},{2435,5162,3},{2427,5162,3},{2422,5163,3}, {2423,5167,3},{2427,5167,3},{2422,5172,3},{2427,5173,3},{2428,5175,3},{2427,5178,3}, {2412,5177,3},{2405,5178,3},{2400,5182,3},{2398,5190,3},{2395,5193,3},{2398,5193,3}, {2398,5200,3},{2400,5202,3},{2395,5208,3},{2397,5210,3},{2397,5220,3},{2400,5228,3}, {2400,5233,3},{2403,5237,3},{2405,5243,3},{2408,5245,3},{2413,5253,3},{2415,5258,3}, {2420,5258,3},{2420,5262,3},{2420,5263,3},{2413,5268,3},{2415,5270,3},{2413,5277,3}, {2415,5285,3},{2413,5295,3},{2417,5300,3},{2412,5305,3},{2413,5312,3},{2412,5315,3}, {2413,5315,3},{2417,5315,3},{2413,5322,3},{2410,5325,3},{2408,5330,3},{2410,5333,3}, {2410,5342,3},{2412,5343,3},{2410,5347,3},{2408,5353,3},{2405,5358,3},{2407,5368,3}, {2407,5387,3},{2410,5395,3},{2413,5412,3},{2420,5418,3},{2422,5427,3},{2427,5433,3}, {2425,5438,3},{2428,5442,3},{2438,5448,3},{2440,5448,3},{2443,5450,3},{2443,5448,3}, {2443,5453,3},{2447,5452,3},{2445,5457,3},{2447,5458,3},{2448,5457,3},{2448,5448,3}, {2450,5447,3},{2453,5442,3},{2457,5447,3},{2453,5447,3},{2457,5447,3},{2457,5448,3}, {2452,5452,3},{2450,5455,3},{2450,5457,3},{2452,5455,3},{2452,5458,3},{2460,5463,3}, {2462,5460,3},{2462,5463,3},{2465,5463,3},{2467,5467,3},{2468,5465,3},{2472,5465,3}, {2472,5463,3},{2473,5463,3},{2480,5470,3},{2478,5475,3},{2480,5477,3},{2483,5477,3}, {2502,5507,3},{2520,5523,3},{2527,5528,3},{2522,5532,3},{2520,5530,3},{2518,5530,3}, {2520,5533,3},{2525,5533,3},{2527,5530,3},{2532,5533,3},{2532,5537,3},{2537,5537,3}, {2535,5538,3},{2542,5543,3},{2540,5545,3},{2542,5548,3},{2547,5550,3},{2548,5548,3}, {2558,5555,3},{2558,5557,3},{2553,5553,3},{2552,5555,3},{2553,5563,3},{2558,5565,3}, {2562,5568,3},{2568,5577,3},{2572,5587,3},{2582,5595,3},{2577,5593,3},{2577,5595,3}, {2583,5597,3},{2588,5603,3},{2592,5603,3},{2593,5603,3},{2592,5602,3},{2598,5605,3}, {2608,5608,3},{2608,5615,3},{2602,5617,3},{2590,5617,3},{2583,5615,3},{2577,5615,3}, {2567,5615,3},{2562,5620,3},{2560,5622,3},{2563,5627,3},{2560,5635,3},{2553,5637,3}, {2537,5635,3},{2533,5638,3},{2530,5638,3},{2523,5637,3},{2507,5635,3},{2498,5637,3}, {2498,5635,3},{2493,5633,3},{2488,5633,3},{2488,5630,3},{2485,5628,3},{2483,5622,3}, {2483,5620,3},{2483,5618,3},{2478,5618,3},{2473,5613,3},{2473,5607,3},{2478,5605,3}, {2478,5603,3},{2483,5603,3},{2485,5598,3},{2487,5598,3},{2488,5598,3},{2487,5605,3}, {2492,5603,3},{2497,5603,3},{2498,5597,3},{2497,5590,3},{2493,5585,3},{2488,5582,3}, {2488,5580,3},{2483,5580,3},{2478,5582,3},{2473,5582,3},{2468,5583,3},{2463,5583,3}, {2463,5582,3},{2458,5582,3},{2458,5580,3},{2458,5578,3},{2452,5578,3},{2452,5580,3}, {2447,5580,3},{2442,5582,3},{2442,5583,3},{2437,5583,3},{2432,5582,3},{2427,5578,3}, {2425,5578,3},{2423,5578,3},{2422,5585,3},{2423,5592,3},{2423,5595,3},{2418,5597,3}, {2418,5598,3},{2412,5600,3},{2407,5602,3},{2407,5595,3},{2405,5595,3},{2403,5588,3}, {2402,5582,3},{2403,5580,3},{2402,5573,3},{2403,5567,3},{2402,5560,3},{2400,5560,3}, {2398,5553,3},{2397,5547,3},{2392,5550,3},{2392,5553,3},{2387,5557,3},{2382,5555,3}, {2377,5557,3},{2372,5553,3},{2372,5552,3},{2367,5550,3},{2362,5548,3},{2357,5547,3}, {2352,5545,3},{2350,5540,3},{2345,5540,3},{2345,5538,3},{2340,5538,3},{2335,5537,3}, {2330,5535,3},{2325,5533,3},{2325,5532,3},{2320,5530,3},{2320,5528,3},{2315,5527,3}, {2310,5523,3},{2305,5523,3},{2300,5522,3},{2293,5522,3},{2287,5522,3},{2280,5522,3}, {2275,5522,3},{2275,5520,3},{2270,5520,3},{1268,4353,131},{1268,4347,3}, {1278,4348,3},{1283,4348,3},{1293,4340,3},{1297,4340,3},{1312,4332,3},{1320,4325,3}, {1327,4323,3},{1330,4323,3},{1330,4325,3},{1352,4325,3},{1358,4330,3},{1360,4328,3}, {1372,4328,3},{1380,4323,3},{1387,4323,3},{1400,4308,3},{1413,4308,3},{1418,4310,3}, {1432,4305,3},{1437,4302,3},{1448,4298,3},{1452,4295,3},{1452,4298,3},{1445,4300,3}, {1443,4302,3},{1455,4303,3},{1462,4298,3},{1467,4300,3},{1470,4297,3},{1478,4295,3}, {1487,4288,3},{1492,4288,3},{1487,4288,3},{1483,4292,3},{1482,4295,3},{1487,4295,3}, {1495,4293,3},{1500,4288,3},{1507,4287,3},{1510,4288,3},{1513,4287,3},{1518,4278,3}, {1522,4270,3},{1520,4268,3},{1518,4267,3},{1518,4263,3},{1523,4262,3},{1523,4268,3}, {1527,4270,3},{1530,4268,3},{1537,4272,3},{1533,4272,3},{1530,4270,3},{1530,4272,3}, {1525,4278,3},{1522,4278,3},{1520,4278,3},{1523,4278,3},{1523,4280,3},{1527,4282,3}, {1535,4282,3},{1543,4277,3},{1547,4278,3},{1553,4275,3},{1557,4272,3},{1558,4273,3}, {1563,4270,3},{1568,4272,3},{1570,4270,3},{1573,4270,3},{1575,4275,3},{1583,4275,3}, {1588,4283,3},{1610,4285,3},{1638,4278,3},{1638,4283,3},{1642,4288,3},{1643,4293,3}, {1648,4293,3},{1648,4295,3},{1648,4297,3},{1652,4302,3},{1657,4307,3},{1662,4308,3}, {1662,4310,3},{1668,4310,3},{1668,4315,3},{1667,4315,3},{1667,4320,3},{1668,4320,3}, {1670,4320,3},{1675,4318,3},{1677,4323,3},{1682,4323,3},{1682,4322,3},{1682,4320,3}, {1683,4315,3},{1688,4315,3},{1693,4312,3},{1693,4313,3},{1698,4315,3},{1705,4315,3}, {1710,4313,3},{1715,4317,3},{1722,4317,3},{1723,4322,3},{1725,4327,3},{1727,4327,3}, {1732,4325,3},{1732,4323,3},{1733,4318,3},{1737,4323,3},{1742,4325,3},{1745,4330,3}, {1748,4335,3},{1750,4340,3},{1752,4340,3},{1753,4345,3},{1752,4350,3},{1750,4355,3}, {1748,4360,3},{1747,4365,3},{1742,4367,3},{1740,4372,3},{1735,4375,3},{1735,4380,3}, {1735,4387,3},{1737,4392,3},{1735,4392,3},{1730,4393,3},{1732,4398,3},{1735,4398,3}, {1737,4403,3},{1735,4408,3},{1737,4413,3},{1738,4413,3},{1742,4418,3},{1740,4420,3}, {1740,4427,3},{1742,4432,3},{1742,4438,3},{1742,4445,3},{1740,4450,3},{1562,4633,3}, {1568,4640,3},{1575,4645,3},{1582,4652,3},{1588,4658,3},{1595,4663,3},{1602,4670,3}, {1608,4677,3},{1615,4682,3},{1622,4688,3},{1628,4693,3},{1635,4700,3},{1642,4707,3}, {1648,4712,3},{1655,4718,3},{1662,4725,3},{1668,4730,3},{1675,4737,3},{1682,4743,3}, {1688,4748,3},{1693,4755,3},{1700,4762,3},{1707,4767,3},{1713,4773,3},{1720,4780,3}, {1727,4785,3},{1733,4792,3},{1740,4798,3},{1747,4803,3},{1753,4810,3},{1760,4815,3}, {1767,4822,3},{1773,4828,3},{1780,4833,3},{1787,4840,3},{1793,4847,3},{1800,4852,3}, {1807,4858,3},{1813,4865,3},{1820,4870,3},{1827,4877,3},{1828,4883,3},{1830,4890,3}, {1832,4897,3},{1833,4903,3},{1833,4910,3},{1835,4917,3},{1837,4923,3},{1838,4930,3}, {1840,4937,3},{1842,4943,3},{1843,4950,3},{1845,4957,3},{1847,4962,3},{1848,4968,3}, {1848,4975,3},{1850,4982,3},{1852,4988,3},{1853,4995,3},{1855,5002,3},{1857,5008,3}, {1858,5015,3},{1860,5022,3},{1862,5028,3},{1863,5035,3},{1863,5042,3},{1865,5048,3}, {1867,5055,3},{1868,5062,3},{1870,5068,3},{1872,5075,3},{1873,5082,3},{1875,5088,3}, {1877,5095,3},{1877,5102,3},{1878,5108,3},{1880,5115,3},{1882,5120,3},{1883,5127,3}, {1885,5133,3},{1887,5140,3},{1888,5147,3},{1890,5153,3},{1892,5160,3},{1892,5167,3}, {1893,5173,3},{1895,5180,3},{1897,5187,3},{1898,5193,3},{1900,5200,3},{1893,5198,3}, {1887,5197,3},{1880,5195,3},{1873,5193,3},{1868,5190,3},{1862,5188,3},{1855,5190,3}, {1850,5193,3},{1845,5197,3},{1845,5198,3},{1840,5200,3},{1835,5205,3},{1830,5207,3}, {1830,5208,3},{1825,5210,3},{1820,5215,3},{1815,5218,3},{1810,5222,3},{1805,5225,3}, {1800,5228,3},{1795,5232,3},{1790,5235,3},{1790,5237,3},{1785,5238,3},{1780,5243,3}, {1775,5247,3},{1770,5248,3},{1765,5253,3},{1760,5257,3},{1755,5260,3},{1750,5263,3}, {1745,5267,3},{1740,5270,3},{1735,5273,3},{1730,5275,3},{1730,5273,3},{1723,5273,3}, {1717,5272,3},{1712,5272,3},{1705,5273,3},{1700,5277,3},{1695,5282,3},{1690,5287,3}, {1685,5290,3},{1680,5295,3},{1675,5298,3},{1670,5303,3},{1665,5307,3},{1663,5308,3}, {1662,5298,3},{1655,5287,3},{1653,5278,3},{1650,5273,3},{1648,5260,3},{1640,5245,3}, {1627,5230,3},{1617,5222,3},{1610,5222,3},{1608,5220,3},{1598,5215,3},{1593,5218,3}, {1587,5218,3},{1583,5223,3},{1575,5222,3},{1565,5225,3},{1562,5222,3},{1558,5208,3}, {1553,5200,3},{1552,5190,3},{1547,5187,3},{1545,5187,3},{1547,5183,3},{1543,5173,3}, {1540,5167,3},{1537,5167,3},{1535,5168,3},{1533,5168,3},{1532,5152,3},{1527,5147,3}, {1525,5138,3},{1523,5138,3},{1523,5135,3},{1518,5123,3},{1512,5090,3},{1508,5080,3}, {1505,5055,3},{1500,5045,3},{1492,5035,3},{1492,5030,3},{1487,5022,3},{1483,5018,3}, {1485,5013,3},{1482,5005,3},{1485,5003,3},{1485,4997,3},{1480,4987,3},{1473,4958,3}, {1468,4952,3},{1463,4937,3},{1453,4918,3},{1452,4918,3},{1453,4913,3},{1450,4908,3}, {1443,4902,3},{1437,4900,3},{1432,4900,3},{1430,4895,3},{1425,4893,3},{1425,4888,3}, {1422,4888,3},{1417,4885,3},{1412,4878,3},{1403,4870,3},{1403,4855,3},{1398,4847,3}, {1402,4845,3},{1400,4843,3},{1402,4835,3},{1400,4835,3},{1400,4832,3},{1398,4823,3}, {1397,4818,3},{1400,4818,3},{1402,4815,3},{1405,4800,3},{1402,4793,3},{1397,4788,3}, {1393,4782,3},{1390,4772,3},{1387,4765,3},{1365,4740,3},{1360,4720,3},{1353,4693,3}, {1348,4685,3},{1343,4668,3},{1343,4663,3},{1342,4652,3},{1340,4647,3},{1342,4642,3}, {1340,4635,3},{1343,4623,3},{1340,4612,3},{1340,4605,3},{1338,4582,3},{1335,4577,3}, {1333,4565,3},{1318,4550,3},{1307,4540,3},{1302,4520,3},{1297,4513,3},{1287,4507,3}, {1275,4505,3},{1278,4498,3},{1280,4498,3},{1280,4503,3},{1285,4502,3},{1283,4500,3}, {1283,4495,3},{1278,4490,3},{1280,4488,3},{1277,4487,3},{1278,4488,3},{1277,4492,3}, {1273,4490,3},{1273,4487,3},{1273,4483,3},{1277,4483,3},{1277,4477,3},{1275,4473,3}, {1277,4473,3},{1280,4470,3},{1282,4460,3},{1278,4453,3},{1268,4443,3},{1267,4443,3}, {1268,4440,3},{1263,4428,3},{1263,4423,3},{1262,4417,3},{1263,4413,3},{1263,4418,3}, {1265,4420,3},{1265,4415,3},{1260,4407,3},{1260,4398,3},{1260,4395,3},{1262,4392,3}, {1265,4390,3},{1265,4387,3},{1268,4382,3},{1275,4360,3},{1273,4357,3},{1268,4353,3}, {1638,4278,131},{1642,4278,3},{1647,4278,3},{1652,4273,3},{1657,4272,3}, {1667,4273,3},{1667,4272,3},{1672,4270,3},{1673,4272,3},{1675,4268,3},{1682,4265,3}, {1683,4257,3},{1687,4253,3},{1692,4255,3},{1700,4255,3},{1703,4252,3},{1703,4245,3}, {1712,4240,3},{1715,4242,3},{1718,4237,3},{1712,4238,3},{1710,4237,3},{1703,4238,3}, {1702,4237,3},{1713,4235,3},{1723,4233,3},{1730,4233,3},{1733,4232,3},{1740,4232,3}, {1745,4230,3},{1745,4227,3},{1757,4217,3},{1758,4215,3},{1757,4213,3},{1765,4210,3}, {1765,4205,3},{1772,4202,3},{1772,4198,3},{1777,4193,3},{1778,4190,3},{1782,4188,3}, {1780,4185,3},{1783,4182,3},{1783,4178,3},{1787,4178,3},{1788,4175,3},{1795,4168,3}, {1798,4167,3},{1800,4168,3},{1802,4165,3},{1803,4165,3},{1808,4160,3},{1812,4160,3}, {1817,4155,3},{1818,4157,3},{1820,4152,3},{1820,4153,3},{1822,4153,3},{1822,4150,3}, {1827,4152,3},{1828,4147,3},{1830,4148,3},{1840,4143,3},{1847,4143,3},{1850,4140,3}, {1853,4137,3},{1857,4137,3},{1858,4132,3},{1857,4130,3},{1860,4127,3},{1865,4125,3}, {1870,4120,3},{1875,4122,3},{1883,4125,3},{1887,4120,3},{1887,4117,3},{1895,4113,3}, {1907,4117,3},{1912,4108,3},{1918,4105,3},{1922,4103,3},{1923,4105,3},{1932,4100,3}, {1933,4095,3},{1935,4097,3},{1942,4093,3},{1947,4095,3},{1950,4095,3},{1953,4085,3}, {1962,4075,3},{1960,4080,3},{1967,4080,3},{1972,4078,3},{1977,4075,3},{1978,4073,3}, {1980,4067,3},{1978,4065,3},{1977,4065,3},{1977,4063,3},{1982,4062,3},{1983,4060,3}, {1988,4058,3},{1990,4053,3},{1995,4053,3},{1997,4053,3},{2002,4045,3},{2007,4040,3}, {2007,4033,3},{2012,4027,3},{2017,4023,3},{2018,4023,3},{2020,4017,3},{2022,4013,3}, {2027,4010,3},{2028,4005,3},{2027,3998,3},{2030,3990,3},{2028,3990,3},{2027,3995,3}, {2025,3993,3},{2035,3977,3},{2043,3968,3},{2043,3967,3},{2052,3960,3},{2057,3957,3}, {2058,3960,3},{2062,3955,3},{2067,3952,3},{2070,3948,3},{2075,3950,3},{2075,3947,3}, {2073,3947,3},{2077,3943,3},{2080,3942,3},{2080,3945,3},{2082,3945,3},{2085,3942,3}, {2082,3940,3},{2087,3935,3},{2090,3933,3},{2088,3937,3},{2092,3935,3},{2092,3930,3}, {2098,3925,3},{2103,3925,3},{2107,3923,3},{2110,3918,3},{2115,3915,3},{2118,3917,3}, {2122,3915,3},{2132,3908,3},{2137,3915,3},{2142,3917,3},{2147,3917,3},{2148,3915,3}, {2150,3917,3},{2152,3915,3},{2153,3915,3},{2152,3912,3},{2158,3908,3},{2162,3910,3}, {2168,3908,3},{2173,3912,3},{2175,3910,3},{2173,3908,3},{2172,3907,3},{2180,3903,3}, {2185,3897,3},{2188,3897,3},{2192,3895,3},{2190,3900,3},{2183,3902,3},{2183,3903,3}, {2185,3902,3},{2195,3900,3},{2205,3902,3},{2208,3903,3},{2215,3905,3},{2212,3902,3}, {2217,3903,3},{2222,3903,3},{2227,3907,3},{2232,3908,3},{2233,3910,3},{2240,3915,3}, {2242,3912,3},{2238,3910,3},{2237,3908,3},{2242,3907,3},{2257,3908,3},{2272,3898,3}, {2277,3902,3},{2283,3893,3},{2278,3897,3},{2275,3897,3},{2292,3885,3},{2292,3888,3}, {2285,3892,3},{2285,3895,3},{2287,3897,3},{2290,3893,3},{2292,3892,3},{2297,3890,3}, {2298,3887,3},{2298,3882,3},{2300,3878,3},{2303,3878,3},{2308,3880,3},{2313,3878,3}, {2315,3880,3},{2318,3878,3},{2317,3877,3},{2320,3877,3},{2320,3875,3},{2325,3870,3}, {2327,3872,3},{2328,3870,3},{2333,3870,3},{2335,3868,3},{2342,3867,3},{2342,3865,3}, {2350,3863,3},{2353,3860,3},{2357,3860,3},{2355,3855,3},{2353,3858,3},{2352,3858,3}, {2353,3855,3},{2362,3852,3},{2373,3845,3},{2378,3845,3},{2382,3838,3},{2388,3833,3}, {2388,3830,3},{2395,3825,3},{2400,3817,3},{2403,3813,3},{2407,3808,3},{2408,3808,3}, {2408,3803,3},{2417,3792,3},{2418,3795,3},{2418,3792,3},{2422,3793,3},{2420,3788,3}, {2417,3790,3},{2417,3783,3},{2427,3775,3},{2425,3773,3},{2430,3767,3},{2428,3765,3}, {2428,3762,3},{2425,3763,3},{2425,3760,3},{2427,3757,3},{2427,3753,3},{2432,3748,3}, {2435,3748,3},{2437,3745,3},{2440,3745,3},{2440,3748,3},{2445,3745,3},{2447,3743,3}, {2450,3742,3},{2455,3738,3},{2457,3738,3},{2467,3728,3},{2468,3722,3},{2475,3718,3}, {2477,3722,3},{2478,3722,3},{2478,3717,3},{2483,3713,3},{2483,3718,3},{2487,3723,3}, {2495,3720,3},{2502,3723,3},{2512,3718,3},{2515,3720,3},{2522,3718,3},{2528,3712,3}, {2530,3708,3},{2535,3703,3},{2543,3700,3},{2548,3700,3},{2555,3693,3},{2565,3690,3}, {2568,3687,3},{2578,3675,3},{2575,3673,3},{2578,3667,3},{2582,3667,3},{2588,3660,3}, {2593,3665,3},{2602,3667,3},{2607,3665,3},{2608,3662,3},{2608,3653,3},{2615,3645,3}, {2623,3643,3},{2632,3637,3},{2653,3627,3},{2662,3620,3},{2675,3607,3},{2685,3602,3}, {2688,3602,3},{2702,3585,3},{2710,3578,3},{2713,3577,3},{2722,3578,3},{2728,3573,3}, {2732,3573,3},{2735,3565,3},{2745,3557,3},{2755,3552,3},{2763,3550,3},{2767,3545,3}, {2778,3538,3},{2780,3535,3},{2785,3533,3},{2792,3527,3},{2795,3525,3},{2800,3517,3}, {2802,3517,3},{2803,3522,3},{2805,3522,3},{2805,3517,3},{2807,3515,3},{2807,3510,3}, {2812,3505,3},{2812,3502,3},{2810,3503,3},{2812,3500,3},{2810,3495,3},{2808,3493,3}, {2808,3488,3},{2807,3485,3},{2810,3483,3},{2812,3487,3},{2812,3485,3},{2810,3482,3}, {2810,3483,3},{2807,3480,3},{2808,3478,3},{2810,3482,3},{2812,3482,3},{2810,3477,3}, {2812,3472,3},{2813,3470,3},{2813,3468,3},{2810,3465,3},{2807,3467,3},{2807,3465,3}, {2803,3465,3},{2802,3462,3},{2808,3460,3},{2810,3460,3},{2808,3457,3},{2810,3457,3}, {2817,3462,3},{2818,3463,3},{2817,3467,3},{2820,3465,3},{2822,3467,3},{2827,3467,3}, {2827,3468,3},{2853,3480,3},{2868,3478,3},{2882,3483,3},{2888,3485,3},{2890,3483,3}, {2900,3487,3},{2903,3485,3},{2907,3488,3},{2923,3492,3},{2925,3493,3},{2928,3493,3}, {2930,3495,3},{2933,3495,3},{2937,3497,3},{2935,3502,3},{2935,3508,3},{2933,3513,3}, {2933,3520,3},{2932,3525,3},{2930,3530,3},{2930,3537,3},{2928,3542,3},{2928,3548,3}, {2927,3553,3},{2927,3560,3},{2925,3565,3},{2925,3572,3},{2923,3577,3},{2923,3583,3}, {2922,3588,3},{2922,3595,3},{2920,3600,3},{2918,3607,3},{2922,3610,3},{2925,3615,3}, {2928,3620,3},{2932,3623,3},{2935,3628,3},{2938,3633,3},{2942,3638,3},{2945,3642,3}, {2948,3647,3},{2950,3650,3},{2957,3653,3},{2960,3657,3},{2965,3660,3},{2968,3663,3}, {2973,3665,3},{2978,3668,3},{2983,3672,3},{2987,3675,3},{2988,3682,3},{2988,3687,3}, {2990,3693,3},{2992,3698,3},{2992,3705,3},{2993,3710,3},{2993,3717,3},{2995,3722,3}, {2997,3728,3},{2997,3733,3},{2998,3740,3},{3000,3745,3},{3000,3750,3},{3005,3753,3}, {3010,3755,3},{3015,3758,3},{3020,3760,3},{3025,3762,3},{3030,3765,3},{3033,3767,3}, {3037,3773,3},{3040,3778,3},{3042,3783,3},{3045,3788,3},{3047,3793,3},{3050,3798,3}, {3050,3800,3},{3055,3797,3},{3058,3792,3},{3062,3788,3},{3067,3785,3},{3070,3780,3}, {3073,3777,3},{3078,3773,3},{3082,3768,3},{3087,3765,3},{3090,3762,3},{3093,3757,3}, {3098,3753,3},{3102,3750,3},{3107,3745,3},{3110,3742,3},{3113,3737,3},{3118,3733,3}, {3122,3730,3},{3125,3725,3},{3130,3722,3},{3133,3718,3},{3137,3713,3},{3142,3710,3}, {3145,3707,3},{3150,3700,3},{3152,3708,3},{3153,3713,3},{3155,3718,3},{3157,3725,3}, {3158,3730,3},{3160,3737,3},{3162,3742,3},{3163,3747,3},{3163,3753,3},{3165,3758,3}, {3167,3765,3},{3168,3770,3},{3170,3775,3},{3172,3782,3},{3172,3787,3},{3173,3793,3}, {3175,3798,3},{3177,3803,3},{3178,3810,3},{3180,3815,3},{3182,3822,3},{3182,3827,3}, {3183,3833,3},{3185,3838,3},{3187,3843,3},{3188,3850,3},{3190,3855,3},{3192,3862,3}, {3192,3867,3},{3193,3872,3},{3195,3878,3},{3197,3883,3},{3198,3890,3},{3200,3895,3}, {3200,3900,3},{3205,3905,3},{3208,3910,3},{3212,3915,3},{3215,3918,3},{3218,3923,3}, {3222,3928,3},{3223,3930,3},{3222,3937,3},{3220,3943,3},{3218,3950,3},{3217,3957,3}, {3215,3963,3},{3213,3970,3},{3212,3977,3},{3210,3983,3},{3208,3988,3},{3207,3995,3}, {3207,4000,3},{3203,4008,3},{3200,4013,3},{3197,4020,3},{3193,4027,3},{3190,4033,3}, {3188,4038,3},{3185,4045,3},{3182,4052,3},{3178,4058,3},{3175,4063,3},{3173,4070,3}, {3170,4077,3},{3167,4083,3},{3163,4088,3},{3160,4095,3},{3157,4102,3},{3155,4107,3}, {3152,4113,3},{3148,4120,3},{3145,4127,3},{3142,4132,3},{3140,4138,3},{3137,4143,3}, {3133,4150,3},{3132,4157,3},{3128,4162,3},{3127,4168,3},{3123,4175,3},{3122,4182,3}, {3118,4187,3},{3117,4193,3},{3113,4200,3},{3112,4207,3},{3108,4213,3},{3107,4218,3}, {3103,4225,3},{3102,4232,3},{3098,4237,3},{3095,4243,3},{3093,4250,3},{3090,4257,3}, {3088,4262,3},{3085,4268,3},{3083,4275,3},{3080,4280,3},{3077,4287,3},{3075,4293,3}, {3073,4298,3},{3067,4300,3},{3060,4302,3},{3055,4302,3},{3050,4303,3},{3043,4305,3}, {3042,4307,3},{3042,4313,3},{3040,4320,3},{3040,4327,3},{3040,4333,3},{3040,4340,3}, {3038,4347,3},{3038,4353,3},{3038,4360,3},{3038,4367,3},{3032,4365,3},{3027,4363,3}, {3022,4363,3},{3015,4362,3},{3010,4362,3},{3005,4362,3},{2998,4360,3},{2993,4360,3}, {2987,4360,3},{2982,4360,3},{2975,4360,3},{2970,4360,3},{2965,4360,3},{2960,4358,3}, {2958,4365,3},{2957,4372,3},{2953,4378,3},{2952,4383,3},{2950,4390,3},{2947,4397,3}, {2947,4400,3},{2945,4405,3},{2943,4410,3},{2940,4417,3},{2938,4422,3},{2937,4427,3}, {2935,4433,3},{2933,4438,3},{2930,4443,3},{2928,4450,3},{2927,4455,3},{2925,4460,3}, {2923,4467,3},{2920,4472,3},{2910,4655,3},{2910,4663,3},{2908,4668,3},{2908,4675,3}, {2907,4682,3},{2907,4688,3},{2907,4695,3},{2905,4700,3},{2905,4707,3},{2903,4713,3}, {2903,4720,3},{2902,4725,3},{2902,4732,3},{2900,4738,3},{2900,4747,3},{2878,4757,3}, {2870,4758,3},{2863,4760,3},{2857,4768,3},{2855,4768,3},{2853,4773,3},{2853,4780,3}, {2853,4785,3},{2855,4792,3},{2855,4798,3},{2855,4805,3},{2855,4810,3},{2855,4817,3}, {2855,4823,3},{2855,4830,3},{2855,4835,3},{2855,4842,3},{2850,4847,3},{2850,4850,3}, {2845,4850,3},{2842,4852,3},{2840,4850,3},{2840,4847,3},{2838,4847,3},{2840,4853,3}, {2837,4852,3},{2833,4852,3},{2828,4855,3},{2820,4862,3},{2818,4860,3},{2813,4860,3}, {2807,4865,3},{2803,4865,3},{2800,4878,3},{2798,4878,3},{2798,4875,3},{2797,4875,3}, {2783,4888,3},{2777,4888,3},{2773,4885,3},{2773,4883,3},{2780,4885,3},{2782,4885,3}, {2775,4880,3},{2782,4883,3},{2783,4882,3},{2772,4877,3},{2772,4880,3},{2773,4880,3}, {2768,4882,3},{2770,4885,3},{2765,4885,3},{2768,4888,3},{2765,4888,3},{2763,4885,3}, {2762,4887,3},{2762,4885,3},{2762,4883,3},{2760,4887,3},{2763,4890,3},{2758,4888,3}, {2757,4890,3},{2757,4892,3},{2760,4892,3},{2762,4897,3},{2757,4907,3},{2755,4905,3}, {2753,4907,3},{2755,4907,3},{2753,4915,3},{2755,4918,3},{2753,4925,3},{2750,4927,3}, {2748,4930,3},{2745,4930,3},{2745,4928,3},{2747,4928,3},{2745,4927,3},{2745,4922,3}, {2743,4918,3},{2747,4917,3},{2743,4912,3},{2742,4917,3},{2740,4920,3},{2742,4923,3}, {2742,4927,3},{2738,4923,3},{2733,4922,3},{2735,4925,3},{2735,4928,3},{2735,4930,3}, {2720,4932,3},{2720,4933,3},{2717,4935,3},{2720,4937,3},{2722,4938,3},{2720,4942,3}, {2715,4940,3},{2715,4937,3},{2713,4942,3},{2717,4943,3},{2713,4943,3},{2715,4947,3}, {2713,4952,3},{2715,4950,3},{2718,4950,3},{2718,4952,3},{2717,4955,3},{2718,4957,3}, {2715,4955,3},{2710,4957,3},{2705,4962,3},{2698,4967,3},{2685,4987,3},{2685,4995,3}, {2672,5008,3},{2665,5017,3},{2663,5015,3},{2668,5012,3},{2668,5003,3},{2673,5002,3}, {2675,5000,3},{2673,4998,3},{2667,4998,3},{2665,5002,3},{2657,5000,3},{2647,5005,3}, {2645,5008,3},{2642,5018,3},{2637,5022,3},{2630,5022,3},{2620,5022,3},{2617,5020,3}, {2615,5018,3},{2617,5017,3},{2603,5013,3},{2610,5010,3},{2613,5007,3},{2618,5007,3}, {2620,5002,3},{2613,4998,3},{2608,5002,3},{2607,4998,3},{2600,5000,3},{2598,5000,3}, {2600,5003,3},{2603,5003,3},{2602,5005,3},{2602,5007,3},{2600,5007,3},{2598,5010,3}, {2593,5013,3},{2592,5010,3},{2585,5012,3},{2577,5017,3},{2573,5022,3},{2567,5025,3}, {2563,5027,3},{2563,5025,3},{2565,5023,3},{2568,5023,3},{2573,5015,3},{2570,5015,3}, {2568,5020,3},{2563,5022,3},{2545,5037,3},{2548,5037,3},{2552,5038,3},{2548,5038,3}, {2545,5042,3},{2545,5045,3},{2542,5048,3},{2530,5052,3},{2523,5052,3},{2518,5055,3}, {2512,5053,3},{2505,5057,3},{2503,5057,3},{2507,5058,3},{2505,5060,3},{2495,5067,3}, {2490,5068,3},{2487,5073,3},{2477,5073,3},{2475,5075,3},{2472,5078,3},{2475,5083,3}, {2470,5085,3},{2465,5090,3},{2460,5095,3},{2457,5100,3},{2457,5107,3},{2455,5112,3}, {2447,5112,3},{2440,5112,3},{2433,5112,3},{2427,5112,3},{2423,5118,3},{2418,5125,3}, {2415,5130,3},{2410,5137,3},{2407,5143,3},{2403,5150,3},{2398,5157,3},{2395,5162,3}, {2390,5168,3},{2387,5175,3},{2380,5177,3},{2373,5178,3},{2367,5180,3},{2362,5182,3}, {2355,5185,3},{2348,5187,3},{2342,5188,3},{2335,5190,3},{2328,5192,3},{2322,5193,3}, {2317,5195,3},{2310,5197,3},{2303,5198,3},{2300,5200,3},{2298,5207,3},{2298,5213,3}, {2297,5220,3},{2295,5227,3},{2295,5233,3},{2293,5240,3},{2292,5247,3},{2292,5253,3}, {2290,5260,3},{2288,5267,3},{2288,5273,3},{2287,5280,3},{2285,5287,3},{2285,5293,3}, {2283,5300,3},{2282,5307,3},{2282,5313,3},{2280,5320,3},{2278,5327,3},{2278,5333,3}, {2277,5340,3},{2275,5347,3},{2275,5353,3},{2273,5360,3},{2272,5367,3},{2272,5373,3}, {2270,5380,3},{2268,5387,3},{2268,5393,3},{2267,5400,3},{2265,5407,3},{2265,5413,3}, {2263,5420,3},{2262,5427,3},{2262,5433,3},{2260,5440,3},{2258,5447,3},{2258,5453,3}, {2257,5460,3},{2255,5467,3},{2255,5473,3},{2253,5480,3},{2252,5487,3},{2252,5493,3}, {2250,5500,3},{2255,5505,3},{2262,5512,3},{2267,5517,3},{2270,5520,3},{2263,5525,3}, {2257,5528,3},{2250,5533,3},{2243,5538,3},{2237,5542,3},{2230,5547,3},{2223,5552,3}, {2217,5555,3},{2210,5560,3},{2203,5565,3},{2200,5567,3},{2193,5565,3},{2187,5562,3}, {2180,5560,3},{2173,5558,3},{2167,5555,3},{2160,5553,3},{2153,5552,3},{2147,5548,3}, {2140,5547,3},{2133,5545,3},{2127,5542,3},{2120,5540,3},{2113,5538,3},{2107,5535,3}, {2100,5533,3},{2093,5532,3},{2087,5528,3},{2080,5527,3},{2073,5525,3},{2067,5522,3}, {2060,5520,3},{2053,5518,3},{2047,5515,3},{2040,5513,3},{2033,5512,3},{2027,5508,3}, {2020,5507,3},{2013,5505,3},{2007,5502,3},{2000,5500,3},{1998,5493,3},{1995,5487,3}, {1993,5480,3},{1992,5473,3},{1988,5467,3},{1987,5460,3},{1985,5453,3},{1982,5447,3}, {1980,5440,3},{1978,5433,3},{1975,5427,3},{1973,5418,3},{1970,5412,3},{1968,5405,3}, {1967,5398,3},{1963,5392,3},{1962,5385,3},{1960,5378,3},{1957,5372,3},{1955,5365,3}, {1953,5358,3},{1950,5352,3},{1948,5345,3},{1947,5338,3},{1943,5332,3},{1942,5325,3}, {1940,5318,3},{1937,5312,3},{1935,5305,3},{1933,5298,3},{1930,5292,3},{1928,5285,3}, {1927,5278,3},{1923,5273,3},{1922,5267,3},{1920,5260,3},{1918,5253,3},{1915,5247,3}, {1913,5240,3},{1912,5233,3},{1908,5227,3},{1907,5220,3},{1905,5213,3},{1902,5207,3}, {1900,5200,3},{1898,5193,3},{1897,5187,3},{1895,5180,3},{1893,5173,3},{1892,5167,3}, {1892,5160,3},{1890,5153,3},{1888,5147,3},{1887,5140,3},{1885,5133,3},{1883,5127,3}, {1882,5120,3},{1880,5115,3},{1878,5108,3},{1877,5102,3},{1877,5095,3},{1875,5088,3}, {1873,5082,3},{1872,5075,3},{1870,5068,3},{1868,5062,3},{1867,5055,3},{1865,5048,3}, {1863,5042,3},{1863,5035,3},{1862,5028,3},{1860,5022,3},{1858,5015,3},{1857,5008,3}, {1855,5002,3},{1853,4995,3},{1852,4988,3},{1850,4982,3},{1848,4975,3},{1848,4968,3}, {1847,4962,3},{1845,4957,3},{1843,4950,3},{1842,4943,3},{1840,4937,3},{1838,4930,3}, {1837,4923,3},{1835,4917,3},{1833,4910,3},{1833,4903,3},{1832,4897,3},{1830,4890,3}, {1828,4883,3},{1827,4877,3},{1820,4870,3},{1813,4865,3},{1807,4858,3},{1800,4852,3}, {1793,4847,3},{1787,4840,3},{1780,4833,3},{1773,4828,3},{1767,4822,3},{1760,4815,3}, {1753,4810,3},{1747,4803,3},{1740,4798,3},{1733,4792,3},{1727,4785,3},{1720,4780,3}, {1713,4773,3},{1707,4767,3},{1700,4762,3},{1693,4755,3},{1688,4748,3},{1682,4743,3}, {1675,4737,3},{1668,4730,3},{1662,4725,3},{1655,4718,3},{1648,4712,3},{1642,4707,3}, {1635,4700,3},{1628,4693,3},{1622,4688,3},{1615,4682,3},{1608,4677,3},{1602,4670,3}, {1595,4663,3},{1588,4658,3},{1582,4652,3},{1575,4645,3},{1568,4640,3},{1562,4633,3}, {1740,4450,3},{1742,4445,3},{1742,4438,3},{1742,4432,3},{1740,4427,3},{1740,4420,3}, {1742,4418,3},{1738,4413,3},{1737,4413,3},{1735,4408,3},{1737,4403,3},{1735,4398,3}, {1732,4398,3},{1730,4393,3},{1735,4392,3},{1737,4392,3},{1735,4387,3},{1735,4380,3}, {1735,4375,3},{1740,4372,3},{1742,4367,3},{1747,4365,3},{1748,4360,3},{1750,4355,3}, {1752,4350,3},{1753,4345,3},{1752,4340,3},{1750,4340,3},{1748,4335,3},{1745,4330,3}, {1742,4325,3},{1737,4323,3},{1733,4318,3},{1732,4323,3},{1732,4325,3},{1727,4327,3}, {1725,4327,3},{1723,4322,3},{1722,4317,3},{1715,4317,3},{1710,4313,3},{1705,4315,3}, {1698,4315,3},{1693,4313,3},{1693,4312,3},{1688,4315,3},{1683,4315,3},{1682,4320,3}, {1682,4322,3},{1682,4323,3},{1677,4323,3},{1675,4318,3},{1670,4320,3},{1668,4320,3}, {1667,4320,3},{1667,4315,3},{1668,4315,3},{1668,4310,3},{1662,4310,3},{1662,4308,3}, {1657,4307,3},{1652,4302,3},{1648,4297,3},{1648,4295,3},{1648,4293,3},{1643,4293,3}, {1642,4288,3},{1638,4283,3},{1638,4278,3},{2937,3497,131},{2945,3497,3}, {2953,3500,3},{2955,3497,3},{2963,3500,3},{2973,3502,3},{2987,3508,3},{2995,3507,3}, {2997,3508,3},{3005,3510,3},{3013,3517,3},{3023,3513,3},{3035,3518,3},{3043,3515,3}, {3060,3520,3},{3072,3528,3},{3078,3530,3},{3082,3533,3},{3087,3533,3},{3092,3535,3}, {3095,3540,3},{3102,3540,3},{3108,3545,3},{3108,3547,3},{3110,3552,3},{3112,3552,3}, {3113,3550,3},{3115,3552,3},{3117,3553,3},{3120,3552,3},{3120,3550,3},{3122,3547,3}, {3125,3543,3},{3125,3542,3},{3123,3540,3},{3132,3543,3},{3132,3545,3},{3133,3547,3}, {3137,3550,3},{3137,3552,3},{3132,3550,3},{3130,3550,3},{3130,3552,3},{3132,3553,3}, {3133,3555,3},{3140,3555,3},{3145,3557,3},{3147,3557,3},{3148,3557,3},{3150,3555,3}, {3152,3555,3},{3153,3555,3},{3157,3555,3},{3163,3557,3},{3167,3557,3},{3168,3557,3}, {3172,3558,3},{3173,3558,3},{3175,3558,3},{3177,3557,3},{3177,3555,3},{3182,3553,3}, {3187,3555,3},{3193,3553,3},{3198,3553,3},{3203,3552,3},{3208,3553,3},{3213,3555,3}, {3218,3557,3},{3223,3557,3},{3228,3557,3},{3235,3555,3},{3240,3555,3},{3245,3557,3}, {3250,3557,3},{3255,3557,3},{3260,3557,3},{3265,3557,3},{3265,3560,3},{3268,3565,3}, {3268,3567,3},{3270,3568,3},{3275,3580,3},{3273,3580,3},{3273,3583,3},{3272,3593,3}, {3268,3597,3},{3268,3595,3},{3267,3597,3},{3265,3603,3},{3262,3603,3},{3258,3607,3}, {3252,3608,3},{3253,3613,3},{3252,3617,3},{3253,3620,3},{3252,3622,3},{3245,3632,3}, {3238,3640,3},{3238,3645,3},{3237,3650,3},{3235,3657,3},{3235,3662,3},{3235,3668,3}, {3233,3672,3},{3233,3677,3},{3232,3683,3},{3235,3688,3},{3238,3693,3},{3240,3698,3}, {3243,3703,3},{3247,3708,3},{3248,3713,3},{3252,3718,3},{3255,3723,3},{3258,3730,3}, {3260,3735,3},{3263,3740,3},{3267,3745,3},{3268,3750,3},{3272,3755,3},{3275,3760,3}, {3278,3765,3},{3280,3772,3},{3283,3777,3},{3287,3782,3},{3288,3787,3},{3292,3792,3}, {3295,3797,3},{3297,3803,3},{3300,3808,3},{3303,3813,3},{3305,3818,3},{3308,3823,3}, {3312,3828,3},{3313,3833,3},{3317,3840,3},{3320,3845,3},{3322,3850,3},{3325,3855,3}, {3328,3860,3},{3330,3867,3},{3333,3872,3},{3337,3877,3},{3338,3880,3},{3335,3880,3}, {3330,3883,3},{3325,3885,3},{3322,3887,3},{3317,3890,3},{3312,3892,3},{3307,3893,3}, {3302,3895,3},{3297,3898,3},{3292,3900,3},{3287,3902,3},{3282,3905,3},{3277,3907,3}, {3272,3908,3},{3268,3912,3},{3263,3913,3},{3258,3915,3},{3253,3917,3},{3248,3920,3}, {3243,3922,3},{3238,3923,3},{3233,3927,3},{3228,3928,3},{3223,3930,3},{3222,3928,3}, {3218,3923,3},{3215,3918,3},{3212,3915,3},{3208,3910,3},{3205,3905,3},{3200,3900,3}, {3200,3895,3},{3198,3890,3},{3197,3883,3},{3195,3878,3},{3193,3872,3},{3192,3867,3}, {3192,3862,3},{3190,3855,3},{3188,3850,3},{3187,3843,3},{3185,3838,3},{3183,3833,3}, {3182,3827,3},{3182,3822,3},{3180,3815,3},{3178,3810,3},{3177,3803,3},{3175,3798,3}, {3173,3793,3},{3172,3787,3},{3172,3782,3},{3170,3775,3},{3168,3770,3},{3167,3765,3}, {3165,3758,3},{3163,3753,3},{3163,3747,3},{3162,3742,3},{3160,3737,3},{3158,3730,3}, {3157,3725,3},{3155,3718,3},{3153,3713,3},{3152,3708,3},{3150,3700,3},{3145,3707,3}, {3142,3710,3},{3137,3713,3},{3133,3718,3},{3130,3722,3},{3125,3725,3},{3122,3730,3}, {3118,3733,3},{3113,3737,3},{3110,3742,3},{3107,3745,3},{3102,3750,3},{3098,3753,3}, {3093,3757,3},{3090,3762,3},{3087,3765,3},{3082,3768,3},{3078,3773,3},{3073,3777,3}, {3070,3780,3},{3067,3785,3},{3062,3788,3},{3058,3792,3},{3055,3797,3},{3050,3800,3}, {3050,3798,3},{3047,3793,3},{3045,3788,3},{3042,3783,3},{3040,3778,3},{3037,3773,3}, {3033,3767,3},{3030,3765,3},{3025,3762,3},{3020,3760,3},{3015,3758,3},{3010,3755,3}, {3005,3753,3},{3000,3750,3},{3000,3745,3},{2998,3740,3},{2997,3733,3},{2997,3728,3}, {2995,3722,3},{2993,3717,3},{2993,3710,3},{2992,3705,3},{2992,3698,3},{2990,3693,3}, {2988,3687,3},{2988,3682,3},{2987,3675,3},{2983,3672,3},{2978,3668,3},{2973,3665,3}, {2968,3663,3},{2965,3660,3},{2960,3657,3},{2957,3653,3},{2950,3650,3},{2948,3647,3}, {2945,3642,3},{2942,3638,3},{2938,3633,3},{2935,3628,3},{2932,3623,3},{2928,3620,3}, {2925,3615,3},{2922,3610,3},{2918,3607,3},{2920,3600,3},{2922,3595,3},{2922,3588,3}, {2923,3583,3},{2923,3577,3},{2925,3572,3},{2925,3565,3},{2927,3560,3},{2927,3553,3}, {2928,3548,3},{2928,3542,3},{2930,3537,3},{2930,3530,3},{2932,3525,3},{2933,3520,3}, {2933,3513,3},{2935,3508,3},{2935,3502,3},{2937,3497,3},{3150,3540,131}, {3147,3535,3},{3143,3530,3},{3140,3525,3},{3137,3520,3},{3137,3515,3},{3137,3508,3}, {3137,3502,3},{3135,3497,3},{3137,3490,3},{3142,3488,3},{3145,3492,3},{3150,3495,3}, {3157,3495,3},{3162,3497,3},{3165,3502,3},{3168,3507,3},{3172,3512,3},{3175,3517,3}, {3175,3523,3},{3180,3522,3},{3182,3517,3},{3183,3510,3},{3183,3507,3},{3182,3500,3}, {3187,3497,3},{3188,3503,3},{3193,3500,3},{3198,3500,3},{3200,3500,3},{3205,3500,3}, {3210,3498,3},{3215,3498,3},{3220,3498,3},{3223,3503,3},{3230,3502,3},{3235,3505,3}, {3240,3505,3},{3247,3507,3},{3248,3512,3},{3252,3517,3},{3255,3523,3},{3252,3527,3}, {3252,3533,3},{3252,3540,3},{3247,3542,3},{3242,3543,3},{3242,3550,3},{3240,3555,3}, {3235,3555,3},{3228,3557,3},{3223,3557,3},{3218,3557,3},{3213,3555,3},{3208,3553,3}, {3203,3552,3},{3198,3553,3},{3193,3553,3},{3187,3555,3},{3182,3553,3},{3177,3555,3}, {3177,3553,3},{3177,3552,3},{3175,3550,3},{3172,3547,3},{3168,3545,3},{3167,3545,3}, {3165,3543,3},{3162,3542,3},{3157,3542,3},{3155,3540,3},{3150,3540,3},{2948,3490,131}, {2953,3488,3},{2960,3487,3},{2965,3488,3},{2970,3485,3},{2975,3485,3},{3000,3475,3}, {3002,3475,3},{3037,3462,3},{3042,3455,3},{3048,3457,3},{3053,3452,3},{3058,3452,3}, {3068,3450,3},{3102,3435,3},{3122,3427,3},{3130,3437,3},{3137,3437,3},{3140,3438,3}, {3153,3457,3},{3155,3457,3},{3158,3448,3},{3175,3460,3},{3195,3472,3},{3215,3478,3}, {3242,3487,3},{3270,3492,3},{3273,3495,3},{3282,3495,3},{3283,3498,3},{3282,3502,3}, {3285,3507,3},{3292,3508,3},{3292,3507,3},{3297,3507,3},{3310,3510,3},{3310,3525,3}, {3310,3530,3},{3310,3532,3},{3307,3535,3},{3307,3543,3},{3310,3545,3},{3310,3550,3}, {3323,3553,3},{3328,3557,3},{3325,3562,3},{3323,3568,3},{3303,3563,3},{3293,3563,3}, {3290,3562,3},{3288,3558,3},{3287,3553,3},{3283,3552,3},{3282,3552,3},{3277,3555,3}, {3272,3557,3},{3272,3560,3},{3275,3563,3},{3268,3565,3},{3265,3560,3},{3265,3557,3}, {3260,3557,3},{3255,3557,3},{3250,3557,3},{3245,3557,3},{3240,3555,3},{3242,3550,3}, {3242,3543,3},{3247,3542,3},{3252,3540,3},{3252,3533,3},{3252,3527,3},{3255,3523,3}, {3252,3517,3},{3248,3512,3},{3247,3507,3},{3240,3505,3},{3235,3505,3},{3230,3502,3}, {3223,3503,3},{3220,3498,3},{3215,3498,3},{3210,3498,3},{3205,3500,3},{3200,3500,3}, {3198,3500,3},{3193,3500,3},{3188,3503,3},{3187,3497,3},{3182,3500,3},{3183,3507,3}, {3183,3510,3},{3182,3517,3},{3180,3522,3},{3175,3523,3},{3175,3517,3},{3172,3512,3}, {3168,3507,3},{3165,3502,3},{3162,3497,3},{3157,3495,3},{3150,3495,3},{3145,3492,3}, {3142,3488,3},{3137,3490,3},{3135,3497,3},{3137,3502,3},{3137,3508,3},{3137,3515,3}, {3137,3520,3},{3140,3525,3},{3143,3530,3},{3147,3535,3},{3150,3540,3},{3147,3540,3}, {3143,3538,3},{3140,3540,3},{3132,3542,3},{3132,3543,3},{3123,3540,3},{3123,3537,3}, {3122,3535,3},{3120,3537,3},{3118,3537,3},{3117,3537,3},{3115,3538,3},{3110,3540,3}, {3108,3545,3},{3102,3540,3},{3095,3540,3},{3092,3535,3},{3087,3533,3},{3082,3533,3}, {3078,3530,3},{3072,3528,3},{3060,3520,3},{3043,3515,3},{3035,3518,3},{3023,3513,3}, {3013,3517,3},{3005,3510,3},{2997,3508,3},{2995,3507,3},{2987,3508,3},{2973,3502,3}, {2963,3500,3},{2955,3497,3},{2950,3492,3},{2948,3490,3},{3122,3427,131}, {3133,3422,3},{3148,3440,3},{3158,3448,3},{3155,3457,3},{3153,3457,3},{3140,3438,3}, {3137,3437,3},{3130,3437,3},{3122,3427,3},{6057,2785,131},{6052,2780,3}, {6057,2778,3},{6057,2775,3},{6052,2775,3},{6050,2773,3},{6050,2775,3},{6048,2772,3}, {6048,2763,3},{6050,2768,3},{6052,2770,3},{6052,2767,3},{6050,2760,3},{6047,2763,3}, {6050,2748,3},{6047,2748,3},{6045,2750,3},{6047,2745,3},{6050,2737,3},{6050,2723,3}, {6052,2723,3},{6052,2732,3},{6055,2722,3},{6058,2722,3},{6057,2718,3},{6053,2720,3}, {6052,2718,3},{6052,2713,3},{6053,2712,3},{6052,2708,3},{6053,2703,3},{6048,2700,3}, {6048,2693,3},{6045,2697,3},{6048,2690,3},{6045,2687,3},{6045,2682,3},{6048,2680,3}, {6047,2675,3},{6043,2675,3},{6042,2670,3},{6045,2665,3},{6045,2658,3},{6042,2657,3}, {6045,2650,3},{6047,2648,3},{6055,2657,3},{6060,2657,3},{6050,2647,3},{6048,2645,3}, {6043,2648,3},{6042,2643,3},{6038,2642,3},{6042,2638,3},{6038,2638,3},{6040,2635,3}, {6037,2633,3},{6045,2625,3},{6043,2623,3},{6040,2627,3},{6042,2618,3},{6040,2615,3}, {6047,2597,3},{6048,2592,3},{6042,2605,3},{6038,2600,3},{6033,2612,3},{6030,2608,3}, {6030,2605,3},{6032,2605,3},{6035,2600,3},{6037,2600,3},{6035,2595,3},{6040,2583,3}, {6035,2592,3},{6032,2590,3},{6032,2588,3},{6023,2592,3},{6025,2588,3},{6028,2587,3}, {6028,2582,3},{6032,2575,3},{6028,2575,3},{6027,2585,3},{6025,2572,3},{6030,2565,3}, {6032,2565,3},{6032,2568,3},{6033,2565,3},{6033,2570,3},{6037,2567,3},{6033,2562,3}, {6032,2553,3},{6028,2555,3},{6023,2550,3},{6023,2537,3},{6027,2537,3},{6027,2532,3}, {6025,2532,3},{6023,2528,3},{6025,2520,3},{6022,2520,3},{6022,2515,3},{6020,2520,3}, {6020,2517,3},{6018,2518,3},{6017,2510,3},{6018,2505,3},{6015,2507,3},{6015,2500,3}, {6018,2502,3},{6020,2498,3},{6018,2495,3},{6017,2497,3},{6013,2497,3},{6013,2485,3}, {6015,2483,3},{6017,2488,3},{6018,2482,3},{6018,2480,3},{6017,2482,3},{6013,2478,3}, {6013,2468,3},{6010,2467,3},{6013,2463,3},{6015,2455,3},{6013,2455,3},{6012,2460,3}, {6008,2455,3},{6010,2462,3},{6007,2457,3},{6007,2458,3},{5998,2447,3},{5998,2442,3}, {6005,2445,3},{6000,2438,3},{6002,2437,3},{6000,2432,3},{6007,2437,3},{6007,2433,3}, {6007,2428,3},{6005,2428,3},{6003,2425,3},{6005,2417,3},{6002,2418,3},{6003,2410,3}, {6002,2408,3},{6000,2400,3},{6003,2400,3},{6000,2395,3},{6000,2388,3},{5995,2380,3}, {5997,2378,3},{5997,2365,3},{5995,2362,3},{5997,2358,3},{5995,2343,3},{6002,2348,3}, {6003,2355,3},{6007,2353,3},{6007,2350,3},{6000,2345,3},{5993,2335,3},{5987,2320,3}, {5983,2320,3},{5982,2317,3},{5980,2288,3},{5985,2302,3},{5988,2317,3},{5992,2325,3}, {6002,2332,3},{6002,2330,3},{5993,2322,3},{5995,2318,3},{5993,2317,3},{5995,2313,3}, {5992,2310,3},{5997,2312,3},{6000,2322,3},{6003,2327,3},{6005,2318,3},{6003,2305,3}, {6007,2298,3},{6012,2305,3},{6013,2302,3},{6010,2297,3},{6012,2297,3},{6015,2288,3}, {6017,2288,3},{6018,2287,3},{6022,2290,3},{6028,2302,3},{6032,2303,3},{6035,2308,3}, {6035,2305,3},{6030,2300,3},{6030,2290,3},{6025,2277,3},{6020,2253,3},{6023,2258,3}, {6025,2257,3},{6027,2263,3},{6028,2263,3},{6025,2253,3},{6025,2245,3},{6040,2263,3}, {6037,2258,3},{6037,2247,3},{6040,2248,3},{6040,2247,3},{6037,2228,3},{6043,2218,3}, {6043,2212,3},{6047,2210,3},{6043,2205,3},{6047,2198,3},{6048,2198,3},{6048,2195,3}, {6052,2195,3},{6052,2183,3},{6048,2187,3},{6048,2178,3},{6057,2180,3},{6058,2182,3}, {6058,2185,3},{6060,2183,3},{6062,2183,3},{6058,2173,3},{6057,2167,3},{6050,2165,3}, {6048,2158,3},{6048,2157,3},{6052,2158,3},{6057,2152,3},{6057,2158,3},{6057,2150,3}, {6057,2145,3},{6058,2142,3},{6060,2142,3},{6060,2147,3},{6065,2137,3},{6068,2135,3}, {6068,2143,3},{6072,2142,3},{6073,2147,3},{6075,2138,3},{6077,2142,3},{6078,2137,3}, {6082,2137,3},{6082,2132,3},{6085,2135,3},{6087,2132,3},{6087,2143,3},{6088,2137,3}, {6090,2135,3},{6092,2138,3},{6090,2142,3},{6105,2130,3},{6103,2140,3},{6105,2140,3}, {6105,2137,3},{6107,2138,3},{6105,2148,3},{6108,2145,3},{6110,2147,3},{6113,2143,3}, {6115,2147,3},{6115,2145,3},{6117,2145,3},{6117,2150,3},{6120,2150,3},{6120,2157,3}, {6123,2153,3},{6125,2148,3},{6127,2152,3},{6127,2150,3},{6128,2155,3},{6132,2155,3}, {6137,2153,3},{6140,2145,3},{6142,2157,3},{6145,2152,3},{6148,2142,3},{6148,2158,3}, {6152,2157,3},{6152,2152,3},{6152,2150,3},{6155,2145,3},{6157,2150,3},{6152,2172,3}, {6165,2153,3},{6170,2152,3},{6172,2153,3},{6170,2158,3},{6175,2147,3},{6180,2148,3}, {6188,2140,3},{6190,2142,3},{6193,2138,3},{6193,2132,3},{6195,2128,3},{6198,2128,3}, {6198,2123,3},{6212,2128,3},{6210,2132,3},{6217,2133,3},{6218,2138,3},{6220,2138,3}, {6223,2135,3},{6227,2135,3},{6223,2132,3},{6235,2133,3},{6233,2128,3},{6237,2125,3}, {6240,2127,3},{6237,2122,3},{6233,2122,3},{6240,2118,3},{6242,2120,3},{6240,2113,3}, {6245,2115,3},{6245,2112,3},{6250,2112,3},{6252,2115,3},{6255,2113,3},{6258,2122,3}, {6260,2117,3},{6260,2112,3},{6262,2110,3},{6260,2107,3},{6267,2108,3},{6268,2113,3}, {6272,2117,3},{6273,2113,3},{6277,2110,3},{6278,2113,3},{6278,2117,3},{6280,2120,3}, {6287,2123,3},{6287,2125,3},{6287,2137,3},{6293,2142,3},{6295,2147,3},{6303,2143,3}, {6305,2143,3},{6303,2148,3},{6307,2150,3},{6302,2160,3},{6302,2168,3},{6308,2157,3}, {6312,2157,3},{6312,2152,3},{6317,2150,3},{6317,2155,3},{6318,2150,3},{6322,2150,3}, {6323,2155,3},{6320,2163,3},{6320,2165,3},{6322,2167,3},{6320,2175,3},{6322,2170,3}, {6325,2175,3},{6323,2180,3},{6325,2188,3},{6317,2188,3},{6313,2197,3},{6318,2197,3}, {6320,2200,3},{6323,2203,3},{6323,2205,3},{6322,2208,3},{6323,2213,3},{6322,2217,3}, {6325,2218,3},{6323,2222,3},{6328,2225,3},{6330,2228,3},{6327,2233,3},{6332,2237,3}, {6335,2235,3},{6343,2218,3},{6345,2218,3},{6347,2225,3},{6342,2233,3},{6342,2240,3}, {6348,2227,3},{6352,2228,3},{6352,2233,3},{6350,2233,3},{6348,2238,3},{6345,2240,3}, {6355,2245,3},{6357,2250,3},{6357,2255,3},{6362,2250,3},{6365,2253,3},{6365,2258,3}, {6370,2258,3},{6368,2263,3},{6370,2265,3},{6370,2268,3},{6363,2273,3},{6363,2278,3}, {6363,2282,3},{6368,2285,3},{6370,2290,3},{6372,2283,3},{6372,2290,3},{6373,2287,3}, {6375,2293,3},{6380,2290,3},{6380,2295,3},{6375,2300,3},{6382,2298,3},{6385,2307,3}, {6385,2313,3},{6387,2317,3},{6388,2315,3},{6390,2338,3},{6392,2342,3},{6395,2337,3}, {6403,2338,3},{6405,2338,3},{6405,2342,3},{6403,2347,3},{6403,2350,3},{6402,2362,3}, {6405,2362,3},{6410,2357,3},{6410,2362,3},{6413,2365,3},{6417,2372,3},{6420,2372,3}, {6422,2378,3},{6425,2385,3},{6427,2388,3},{6425,2395,3},{6428,2392,3},{6433,2398,3}, {6438,2400,3},{6440,2408,3},{6443,2410,3},{6445,2422,3},{6448,2422,3},{6448,2427,3}, {6452,2428,3},{6452,2435,3},{6463,2438,3},{6468,2443,3},{6472,2453,3},{6477,2453,3}, {6477,2458,3},{6480,2455,3},{6480,2458,3},{6478,2468,3},{6482,2467,3},{6483,2473,3}, {6485,2473,3},{6487,2492,3},{6492,2508,3},{6490,2512,3},{6488,2512,3},{6488,2517,3}, {6483,2520,3},{6483,2527,3},{6482,2523,3},{6482,2532,3},{6483,2537,3},{6490,2537,3}, {6490,2530,3},{6497,2518,3},{6498,2522,3},{6498,2532,3},{6495,2538,3},{6495,2542,3}, {6495,2545,3},{6508,2537,3},{6512,2522,3},{6515,2522,3},{6518,2527,3},{6522,2528,3}, {6522,2533,3},{6523,2530,3},{6525,2532,3},{6525,2528,3},{6533,2533,3},{6538,2527,3}, {6537,2530,3},{6542,2535,3},{6548,2535,3},{6552,2532,3},{6555,2522,3},{6555,2512,3}, {6562,2507,3},{6562,2493,3},{6565,2490,3},{6565,2478,3},{6563,2473,3},{6563,2467,3}, {6568,2467,3},{6570,2460,3},{6573,2455,3},{6578,2455,3},{6582,2458,3},{6588,2463,3}, {6588,2470,3},{6592,2470,3},{6588,2462,3},{6582,2455,3},{6580,2453,3},{6580,2445,3}, {6577,2442,3},{6582,2423,3},{6578,2425,3},{6577,2423,3},{6578,2418,3},{6582,2417,3}, {6613,2393,3},{6620,2373,3},{6632,2367,3},{6637,2368,3},{6645,2365,3},{6648,2373,3}, {6650,2373,3},{6652,2380,3},{6653,2380,3},{6655,2388,3},{6675,2388,3},{6678,2393,3}, {6680,2400,3},{6688,2393,3},{6697,2383,3},{6700,2373,3},{6710,2367,3},{6715,2357,3}, {6720,2362,3},{6722,2358,3},{6727,2360,3},{6728,2375,3},{6732,2377,3},{6737,2375,3}, {6742,2377,3},{6743,2363,3},{6745,2355,3},{6743,2348,3},{6747,2343,3},{6755,2347,3}, {6758,2355,3},{6773,2348,3},{6787,2348,3},{6788,2352,3},{6792,2365,3},{6795,2365,3}, {6798,2355,3},{6800,2352,3},{6805,2340,3},{6812,2333,3},{6815,2328,3},{6812,2315,3}, {6823,2315,3},{6828,2307,3},{6833,2290,3},{6838,2282,3},{6838,2277,3},{6842,2267,3}, {6842,2263,3},{6845,2247,3},{6845,2238,3},{6847,2237,3},{6847,2232,3},{6847,2217,3}, {6848,2205,3},{6857,2190,3},{6858,2175,3},{6865,2162,3},{6868,2147,3},{6875,2140,3}, {6875,2130,3},{6882,2122,3},{6887,2108,3},{6888,2090,3},{6893,2088,3},{6895,2093,3}, {6900,2087,3},{6905,2058,3},{6910,2073,3},{6903,2103,3},{6905,2108,3},{6910,2112,3}, {6913,2105,3},{6922,2103,3},{6933,2132,3},{6928,2168,3},{6885,2235,3},{6872,2240,3}, {6873,2255,3},{6868,2280,3},{6870,2307,3},{6863,2320,3},{6868,2345,3},{6872,2368,3}, {6883,2383,3},{6883,2393,3},{6882,2405,3},{6878,2412,3},{6877,2418,3},{6875,2420,3}, {6872,2433,3},{6870,2452,3},{6867,2475,3},{6855,2490,3},{6860,2495,3},{6863,2510,3}, {6877,2515,3},{6882,2522,3},{6888,2542,3},{6888,2562,3},{6898,2575,3},{6902,2582,3}, {6912,2573,3},{6925,2572,3},{6935,2575,3},{6938,2583,3},{6943,2583,3},{6948,2587,3}, {6955,2585,3},{6957,2593,3},{6958,2595,3},{6963,2598,3},{6967,2595,3},{6970,2598,3}, {6975,2615,3},{6980,2625,3},{6985,2638,3},{6993,2647,3},{6995,2662,3},{6993,2672,3}, {6995,2680,3},{6995,2685,3},{6993,2687,3},{6990,2705,3},{6993,2720,3},{6995,2730,3}, {6998,2730,3},{7003,2753,3},{7007,2757,3},{7007,2775,3},{7008,2790,3},{7008,2795,3}, {7000,2798,3},{6993,2810,3},{6992,2817,3},{6988,2832,3},{6983,2838,3},{6970,2910,3}, {6968,2913,3},{6948,2930,3},{6937,2912,3},{6923,2882,3},{6912,2878,3},{6903,2900,3}, {6905,2895,3},{6903,2885,3},{6892,2845,3},{6890,2843,3},{6887,2848,3},{6888,2873,3}, {6885,2882,3},{6873,2875,3},{6853,2845,3},{6820,2870,3},{6808,2935,3},{6782,2970,3}, {6770,3003,3},{6767,2998,3},{6757,2998,3},{6752,2993,3},{6730,2953,3},{6702,2913,3}, {6692,2908,3},{6683,2910,3},{6670,2933,3},{6658,2943,3},{6650,2955,3},{6632,2963,3}, {6613,2992,3},{6598,2998,3},{6583,3010,3},{6572,3013,3},{6567,3012,3},{6568,3002,3}, {6563,2972,3},{6557,2987,3},{6552,2975,3},{6535,2975,3},{6525,2960,3},{6522,2963,3}, {6522,2985,3},{6518,2987,3},{6515,2982,3},{6512,2987,3},{6507,2963,3},{6500,2960,3}, {6492,2965,3},{6480,2980,3},{6480,3005,3},{6477,3013,3},{6473,3012,3},{6467,3022,3}, {6463,3018,3},{6458,3007,3},{6452,3005,3},{6447,3008,3},{6440,3005,3},{6435,3015,3}, {6432,3038,3},{6425,3045,3},{6425,3057,3},{6422,3058,3},{6418,3055,3},{6408,3062,3}, {6402,3055,3},{6392,3035,3},{6382,3027,3},{6375,3002,3},{6373,3000,3},{6360,3025,3}, {6355,3040,3},{6348,3048,3},{6340,3078,3},{6335,3092,3},{6332,3097,3},{6322,3122,3}, {6312,3128,3},{6298,3152,3},{6293,3153,3},{6292,3158,3},{6280,3147,3},{6265,3138,3}, {6262,3132,3},{6250,3127,3},{6247,3117,3},{6245,3115,3},{6237,3098,3},{6230,3093,3}, {6220,3065,3},{6217,3063,3},{6198,3033,3},{6173,2998,3},{6165,2983,3},{6160,2982,3}, {6152,2965,3},{6148,2953,3},{6143,2948,3},{6137,2937,3},{6125,2922,3},{6110,2882,3}, {6103,2870,3},{6097,2863,3},{6095,2852,3},{6087,2835,3},{6080,2827,3},{6077,2815,3}, {6072,2810,3},{6057,2785,3},{5898,1143,131},{5910,1137,3},{5912,1130,3}, {5910,1122,3},{5912,1117,3},{5915,1120,3},{5915,1118,3},{5920,1117,3},{5918,1113,3}, {5917,1115,3},{5913,1112,3},{5917,1108,3},{5913,1110,3},{5912,1107,3},{5913,1103,3}, {5915,1103,3},{5917,1100,3},{5918,1095,3},{5913,1095,3},{5913,1090,3},{5920,1090,3}, {5918,1085,3},{5915,1083,3},{5918,1080,3},{5918,1078,3},{5922,1078,3},{5925,1077,3}, {5922,1073,3},{5928,1075,3},{5932,1078,3},{5933,1073,3},{5932,1072,3},{5932,1068,3}, {5937,1065,3},{5940,1065,3},{5942,1058,3},{5947,1062,3},{5948,1067,3},{5943,1067,3}, {5947,1070,3},{5952,1065,3},{5968,1062,3},{5968,1058,3},{5973,1055,3},{5985,1063,3}, {5983,1067,3},{5973,1072,3},{5983,1077,3},{5988,1075,3},{5990,1068,3},{5988,1067,3}, {5990,1062,3},{5987,1060,3},{5988,1057,3},{5987,1050,3},{5985,1047,3},{5983,1050,3}, {5973,1050,3},{5968,1052,3},{5963,1060,3},{5960,1062,3},{5955,1055,3},{5952,1045,3}, {5953,1042,3},{5967,1042,3},{5970,1037,3},{5970,1033,3},{5973,1030,3},{5973,1027,3}, {5973,1022,3},{5970,1027,3},{5967,1038,3},{5958,1040,3},{5955,1038,3},{5952,1037,3}, {5955,1023,3},{5945,1037,3},{5945,1043,3},{5942,1047,3},{5935,1045,3},{5932,1052,3}, {5927,1048,3},{5923,1045,3},{5925,1043,3},{5927,1037,3},{5922,1037,3},{5920,1033,3}, {5912,1032,3},{5913,1028,3},{5905,1030,3},{5910,1027,3},{5903,1027,3},{5912,1023,3}, {5907,1020,3},{5902,1022,3},{5900,1013,3},{5902,1012,3},{5903,1017,3},{5905,1017,3}, {5905,1013,3},{5902,1007,3},{5903,1003,3},{5897,1002,3},{5895,983,3},{5897,982,3}, {5897,985,3},{5900,985,3},{5905,978,3},{5903,975,3},{5908,970,3},{5905,968,3}, {5907,965,3},{5912,963,3},{5913,963,3},{5912,960,3},{5912,953,3},{5908,962,3}, {5903,963,3},{5902,972,3},{5898,972,3},{5900,970,3},{5898,965,3},{5895,968,3}, {5895,965,3},{5893,960,3},{5892,958,3},{5893,947,3},{5890,952,3},{5890,950,3}, {5890,947,3},{5888,945,3},{5890,938,3},{5888,937,3},{5888,940,3},{5887,940,3}, {5885,933,3},{5887,930,3},{5883,927,3},{5882,930,3},{5885,940,3},{5883,945,3}, {5878,937,3},{5878,940,3},{5873,930,3},{5873,907,3},{5872,907,3},{5872,917,3}, {5873,910,3},{5872,922,3},{5870,920,3},{5868,905,3},{5868,918,3},{5867,920,3}, {5860,903,3},{5858,897,3},{5860,892,3},{5858,895,3},{5855,895,3},{5848,883,3}, {5843,872,3},{5837,868,3},{5837,863,3},{5832,860,3},{5835,858,3},{5828,850,3}, {5825,850,3},{5825,843,3},{5827,840,3},{5823,840,3},{5825,837,3},{5820,825,3}, {5818,827,3},{5815,822,3},{5812,822,3},{5815,817,3},{5810,813,3},{5810,812,3}, {5810,805,3},{5813,803,3},{5815,808,3},{5822,802,3},{5815,802,3},{5812,795,3}, {5808,795,3},{5807,788,3},{5807,773,3},{5805,770,3},{5807,767,3},{5805,767,3}, {5805,763,3},{5802,762,3},{5802,760,3},{5803,758,3},{5802,758,3},{5800,748,3}, {5803,727,3},{5805,725,3},{5803,717,3},{5805,715,3},{5803,707,3},{5800,707,3}, {5798,700,3},{5803,700,3},{5805,705,3},{5807,708,3},{5805,712,3},{5810,715,3}, {5803,695,3},{5808,698,3},{5810,700,3},{5810,697,3},{5805,692,3},{5808,692,3}, {5810,690,3},{5807,688,3},{5808,680,3},{5812,685,3},{5812,695,3},{5813,698,3}, {5812,690,3},{5815,682,3},{5818,680,3},{5818,678,3},{5812,682,3},{5812,673,3}, {5818,672,3},{5812,668,3},{5807,678,3},{5805,677,3},{5807,660,3},{5812,653,3}, {5813,657,3},{5817,660,3},{5817,667,3},{5818,665,3},{5820,667,3},{5827,685,3}, {5822,668,3},{5828,663,3},{5828,665,3},{5830,670,3},{5832,670,3},{5832,662,3}, {5825,662,3},{5823,660,3},{5827,647,3},{5827,633,3},{5830,628,3},{5838,602,3}, {5842,597,3},{5847,595,3},{5848,575,3},{5852,572,3},{5855,563,3},{5862,557,3}, {5867,552,3},{5870,552,3},{5875,545,3},{5880,552,3},{5887,553,3},{5888,557,3}, {5893,553,3},{5895,555,3},{5890,562,3},{5892,563,3},{5897,555,3},{5898,558,3}, {5898,553,3},{5903,555,3},{5897,572,3},{5887,572,3},{5893,575,3},{5892,582,3}, {5895,582,3},{5897,585,3},{5893,593,3},{5890,595,3},{5885,608,3},{5883,617,3}, {5883,622,3},{5885,613,3},{5888,605,3},{5895,612,3},{5902,637,3},{5905,662,3}, {5903,640,3},{5900,615,3},{5897,610,3},{5890,603,3},{5897,597,3},{5898,600,3}, {5898,605,3},{5902,602,3},{5902,593,3},{5907,587,3},{5910,590,3},{5915,612,3}, {5913,602,3},{5917,600,3},{5925,617,3},{5927,627,3},{5932,633,3},{5932,647,3}, {5932,633,3},{5928,625,3},{5925,612,3},{5930,608,3},{5930,623,3},{5933,623,3}, {5937,620,3},{5933,620,3},{5932,618,3},{5933,615,3},{5932,610,3},{5933,605,3}, {5932,602,3},{5933,600,3},{5938,603,3},{5943,618,3},{5950,623,3},{5955,645,3}, {5955,655,3},{5957,638,3},{5952,625,3},{5965,632,3},{5965,630,3},{5953,622,3}, {5945,615,3},{5942,607,3},{5940,602,3},{5943,598,3},{5940,597,3},{5938,600,3}, {5935,593,3},{5942,588,3},{5945,588,3},{5945,598,3},{5948,615,3},{5948,588,3}, {5953,580,3},{5952,578,3},{5947,580,3},{5945,573,3},{5947,570,3},{5943,572,3}, {5940,565,3},{5943,578,3},{5938,587,3},{5935,585,3},{5933,572,3},{5930,568,3}, {5928,562,3},{5933,565,3},{5940,560,3},{5942,555,3},{5940,558,3},{5933,558,3}, {5927,552,3},{5930,543,3},{5940,543,3},{5937,540,3},{5930,542,3},{5930,538,3}, {5942,533,3},{5935,533,3},{5933,532,3},{5935,528,3},{5940,527,3},{5943,520,3}, {5950,518,3},{5952,525,3},{5953,520,3},{5958,527,3},{5965,537,3},{5960,542,3}, {5962,543,3},{5967,540,3},{5973,548,3},{5970,552,3},{5962,548,3},{5957,550,3}, {5953,545,3},{5953,542,3},{5950,542,3},{5955,552,3},{5958,553,3},{5963,553,3}, {5967,557,3},{5965,572,3},{5963,573,3},{5960,572,3},{5960,577,3},{5965,577,3}, {5965,588,3},{5967,588,3},{5967,578,3},{5968,573,3},{5972,582,3},{5973,588,3}, {5977,590,3},{5975,593,3},{5973,595,3},{5975,607,3},{5982,622,3},{5985,630,3}, {5983,620,3},{5977,605,3},{5975,598,3},{5977,595,3},{5978,593,3},{5982,597,3}, {5985,595,3},{5985,597,3},{5985,593,3},{5978,592,3},{5977,583,3},{5983,570,3}, {5985,570,3},{5985,572,3},{5985,570,3},{5985,565,3},{5987,573,3},{5990,573,3}, {5993,577,3},{5995,597,3},{5997,598,3},{6000,595,3},{6007,603,3},{6012,628,3}, {6013,625,3},{6015,625,3},{6012,618,3},{6010,612,3},{6018,607,3},{6022,615,3}, {6027,622,3},{6030,620,3},{6032,627,3},{6033,633,3},{6037,633,3},{6038,643,3}, {6042,647,3},{6043,653,3},{6042,663,3},{6027,653,3},{6012,650,3},{6008,652,3}, {6017,653,3},{6023,658,3},{6027,657,3},{6037,665,3},{6038,670,3},{6043,673,3}, {6047,682,3},{6048,693,3},{6047,705,3},{6050,710,3},{6050,690,3},{6055,697,3}, {6058,700,3},{6053,690,3},{6050,685,3},{6047,673,3},{6045,670,3},{6043,663,3}, {6045,660,3},{6047,660,3},{6050,670,3},{6052,668,3},{6047,657,3},{6042,638,3}, {6038,628,3},{6040,623,3},{6047,618,3},{6042,618,3},{6037,625,3},{6037,612,3}, {6035,618,3},{6030,615,3},{6028,617,3},{6025,613,3},{6023,612,3},{6027,600,3}, {6017,592,3},{6017,585,3},{6003,588,3},{6000,578,3},{6002,577,3},{5998,575,3}, {6000,570,3},{6007,568,3},{6007,577,3},{6008,580,3},{6008,575,3},{6007,575,3}, {6008,572,3},{6010,570,3},{6013,573,3},{6017,570,3},{6020,578,3},{6018,567,3}, {6015,565,3},{6013,558,3},{6015,555,3},{6017,558,3},{6020,557,3},{6023,570,3}, {6023,560,3},{6027,563,3},{6023,558,3},{6025,557,3},{6035,567,3},{6037,572,3}, {6038,573,3},{6038,572,3},{6035,562,3},{6022,553,3},{6017,543,3},{6013,542,3}, {6015,535,3},{6017,537,3},{6018,530,3},{6020,535,3},{6022,530,3},{6020,522,3}, {6027,532,3},{6028,517,3},{6032,517,3},{6032,523,3},{6035,520,3},{6033,515,3}, {6035,515,3},{6037,515,3},{6038,520,3},{6038,530,3},{6047,523,3},{6052,530,3}, {6042,550,3},{6042,563,3},{6045,565,3},{6045,570,3},{6047,572,3},{6063,572,3}, {6065,575,3},{6067,572,3},{6070,575,3},{6070,567,3},{6075,568,3},{6070,560,3}, {6068,553,3},{6063,553,3},{6060,540,3},{6057,537,3},{6055,527,3},{6065,508,3}, {6067,513,3},{6062,523,3},{6065,518,3},{6070,508,3},{6070,515,3},{6072,513,3}, {6073,505,3},{6077,502,3},{6080,493,3},{6080,500,3},{6077,505,3},{6072,528,3}, {6063,533,3},{6063,537,3},{6067,535,3},{6063,543,3},{6067,537,3},{6068,540,3}, {6065,543,3},{6073,537,3},{6075,525,3},{6077,523,3},{6080,528,3},{6080,535,3}, {6083,533,3},{6085,537,3},{6087,550,3},{6087,553,3},{6088,547,3},{6090,548,3}, {6087,533,3},{6083,532,3},{6082,525,3},{6083,517,3},{6085,517,3},{6080,515,3}, {6082,512,3},{6083,513,3},{6083,505,3},{6095,498,3},{6097,500,3},{6095,508,3}, {6088,508,3},{6087,510,3},{6095,510,3},{6097,515,3},{6098,513,3},{6097,508,3}, {6098,500,3},{6103,500,3},{6107,507,3},{6105,523,3},{6103,528,3},{6103,542,3}, {6100,545,3},{6105,547,3},{6107,557,3},{6105,563,3},{6108,560,3},{6108,568,3}, {6112,577,3},{6110,578,3},{6107,578,3},{6108,583,3},{6112,583,3},{6112,612,3}, {6110,627,3},{6107,627,3},{6103,625,3},{6107,630,3},{6107,637,3},{6102,633,3}, {6100,637,3},{6107,640,3},{6110,655,3},{6117,662,3},{6115,667,3},{6113,682,3}, {6113,685,3},{6108,687,3},{6108,695,3},{6100,700,3},{6093,687,3},{6097,703,3}, {6093,713,3},{6087,712,3},{6090,717,3},{6095,717,3},{6097,707,3},{6110,700,3}, {6112,718,3},{6113,723,3},{6110,743,3},{6112,738,3},{6115,735,3},{6118,743,3}, {6120,765,3},{6123,770,3},{6123,763,3},{6120,760,3},{6120,738,3},{6122,735,3}, {6127,733,3},{6128,730,3},{6133,737,3},{6137,737,3},{6148,757,3},{6140,735,3}, {6138,733,3},{6138,727,3},{6135,732,3},{6128,723,3},{6127,728,3},{6122,730,3}, {6118,737,3},{6117,730,3},{6118,722,3},{6117,717,3},{6115,715,3},{6113,700,3}, {6112,695,3},{6112,693,3},{6115,692,3},{6118,700,3},{6117,692,3},{6118,683,3}, {6118,672,3},{6122,657,3},{6123,657,3},{6127,663,3},{6133,670,3},{6140,670,3}, {6127,658,3},{6125,655,3},{6128,652,3},{6127,650,3},{6120,653,3},{6120,647,3}, {6115,652,3},{6113,650,3},{6112,643,3},{6112,635,3},{6113,623,3},{6115,618,3}, {6118,618,3},{6115,613,3},{6115,600,3},{6117,597,3},{6118,603,3},{6120,603,3}, {6117,592,3},{6115,578,3},{6120,578,3},{6115,575,3},{6113,567,3},{6113,555,3}, {6110,548,3},{6107,540,3},{6110,533,3},{6112,530,3},{6110,520,3},{6113,517,3}, {6113,522,3},{6115,517,3},{6113,512,3},{6117,505,3},{6118,510,3},{6117,522,3}, {6118,523,3},{6122,515,3},{6122,500,3},{6123,507,3},{6123,500,3},{6125,500,3}, {6125,495,3},{6130,510,3},{6130,517,3},{6133,517,3},{6133,522,3},{6132,528,3}, {6125,533,3},{6132,532,3},{6135,527,3},{6137,537,3},{6137,545,3},{6137,563,3}, {6138,540,3},{6137,527,3},{6135,515,3},{6132,505,3},{6132,503,3},{6133,507,3}, {6135,500,3},{6138,500,3},{6140,505,3},{6137,507,3},{6140,508,3},{6142,512,3}, {6140,498,3},{6142,495,3},{6145,508,3},{6145,518,3},{6147,518,3},{6145,532,3}, {6145,533,3},{6147,532,3},{6143,553,3},{6145,555,3},{6145,562,3},{6148,567,3}, {6145,580,3},{6148,577,3},{6150,570,3},{6148,563,3},{6145,555,3},{6145,545,3}, {6148,543,3},{6148,528,3},{6152,515,3},{6155,515,3},{6155,535,3},{6158,515,3}, {6160,527,3},{6160,533,3},{6158,532,3},{6158,542,3},{6160,537,3},{6162,523,3}, {6160,510,3},{6163,535,3},{6165,535,3},{6163,525,3},{6163,497,3},{6168,493,3}, {6173,498,3},{6175,505,3},{6170,513,3},{6172,517,3},{6175,513,3},{6177,523,3}, {6177,507,3},{6182,527,3},{6183,525,3},{6183,533,3},{6185,528,3},{6187,528,3}, {6190,535,3},{6192,542,3},{6188,567,3},{6185,575,3},{6183,570,3},{6182,563,3}, {6183,568,3},{6185,593,3},{6177,593,3},{6173,590,3},{6177,595,3},{6183,597,3}, {6180,605,3},{6177,610,3},{6177,617,3},{6177,618,3},{6183,607,3},{6183,627,3}, {6182,635,3},{6180,647,3},{6182,653,3},{6187,658,3},{6187,668,3},{6183,678,3}, {6187,682,3},{6188,670,3},{6190,667,3},{6187,655,3},{6182,648,3},{6185,628,3}, {6183,612,3},{6187,603,3},{6188,590,3},{6185,578,3},{6188,573,3},{6192,597,3}, {6192,567,3},{6192,560,3},{6192,545,3},{6193,543,3},{6190,515,3},{6192,510,3}, {6197,515,3},{6197,517,3},{6195,518,3},{6197,522,3},{6195,523,3},{6202,530,3}, {6202,540,3},{6210,520,3},{6210,510,3},{6213,513,3},{6215,507,3},{6218,508,3}, {6218,515,3},{6222,515,3},{6222,517,3},{6217,528,3},{6212,528,3},{6205,545,3}, {6200,547,3},{6207,553,3},{6207,558,3},{6207,560,3},{6212,538,3},{6218,542,3}, {6218,548,3},{6217,563,3},{6212,567,3},{6208,575,3},{6213,568,3},{6217,567,3}, {6220,587,3},{6218,592,3},{6215,593,3},{6210,592,3},{6205,585,3},{6202,585,3}, {6207,593,3},{6213,597,3},{6210,605,3},{6207,605,3},{6208,615,3},{6205,635,3}, {6207,635,3},{6208,627,3},{6210,608,3},{6220,592,3},{6223,593,3},{6220,600,3}, {6220,607,3},{6222,600,3},{6225,595,3},{6230,602,3},{6237,632,3},{6227,640,3}, {6225,645,3},{6215,657,3},{6210,653,3},{6213,658,3},{6215,658,3},{6232,642,3}, {6237,638,3},{6240,643,3},{6240,650,3},{6235,657,3},{6240,655,3},{6245,670,3}, {6242,688,3},{6235,688,3},{6228,698,3},{6218,702,3},{6213,695,3},{6210,695,3}, {6208,698,3},{6208,703,3},{6212,713,3},{6210,718,3},{6212,717,3},{6213,713,3}, {6210,703,3},{6212,697,3},{6218,703,3},{6227,702,3},{6227,712,3},{6225,722,3}, {6228,730,3},{6223,742,3},{6228,737,3},{6228,717,3},{6232,698,3},{6237,692,3}, {6237,697,3},{6245,685,3},{6245,677,3},{6248,678,3},{6247,672,3},{6248,670,3}, {6243,655,3},{6242,638,3},{6245,633,3},{6245,623,3},{6247,623,3},{6248,643,3}, {6248,668,3},{6252,662,3},{6250,650,3},{6252,648,3},{6252,653,3},{6253,657,3}, {6253,653,3},{6252,627,3},{6258,625,3},{6262,633,3},{6260,643,3},{6262,655,3}, {6257,662,3},{6262,662,3},{6260,665,3},{6265,675,3},{6260,688,3},{6257,690,3}, {6262,693,3},{6265,690,3},{6265,708,3},{6262,703,3},{6262,710,3},{6253,713,3}, {6257,715,3},{6260,713,3},{6263,717,3},{6260,735,3},{6255,743,3},{6255,750,3}, {6250,753,3},{6255,757,3},{6257,778,3},{6258,772,3},{6257,752,3},{6257,745,3}, {6262,742,3},{6263,748,3},{6258,750,3},{6258,752,3},{6262,753,3},{6265,750,3}, {6267,752,3},{6273,780,3},{6273,790,3},{6272,797,3},{6273,798,3},{6270,815,3}, {6275,805,3},{6277,807,3},{6273,768,3},{6268,750,3},{6268,737,3},{6272,742,3}, {6273,737,3},{6277,750,3},{6278,768,3},{6280,763,3},{6278,747,3},{6275,737,3}, {6272,697,3},{6275,698,3},{6277,695,3},{6280,700,3},{6282,707,3},{6282,722,3}, {6283,715,3},{6285,713,3},{6283,700,3},{6290,695,3},{6292,688,3},{6293,700,3}, {6298,710,3},{6302,727,3},{6295,742,3},{6292,745,3},{6292,747,3},{6293,757,3}, {6297,765,3},{6297,777,3},{6295,778,3},{6290,768,3},{6297,798,3},{6293,808,3}, {6282,817,3},{6278,830,3},{6272,842,3},{6272,848,3},{6265,855,3},{6267,857,3}, {6272,855,3},{6278,835,3},{6280,832,3},{6283,818,3},{6288,817,3},{6290,820,3}, {6292,818,3},{6295,813,3},{6300,800,3},{6303,797,3},{6302,795,3},{6300,797,3}, {6300,790,3},{6300,788,3},{6305,797,3},{6308,798,3},{6310,808,3},{6307,813,3}, {6303,813,3},{6297,833,3},{6293,830,3},{6287,833,3},{6288,840,3},{6283,853,3}, {6287,853,3},{6288,843,3},{6288,847,3},{6287,858,3},{6282,870,3},{6288,862,3}, {6290,848,3},{6295,842,3},{6297,845,3},{6297,865,3},{6298,867,3},{6298,852,3}, {6302,858,3},{6297,837,3},{6300,832,3},{6302,847,3},{6302,832,3},{6303,823,3}, {6307,822,3},{6312,817,3},{6313,822,3},{6308,828,3},{6308,832,3},{6312,832,3}, {6313,823,3},{6315,830,3},{6313,837,3},{6313,853,3},{6310,863,3},{6312,863,3}, {6313,857,3},{6317,857,3},{6318,863,3},{6320,893,3},{6320,860,3},{6325,858,3}, {6330,848,3},{6333,877,3},{6338,865,3},{6340,865,3},{6342,868,3},{6340,872,3}, {6342,873,3},{6343,882,3},{6340,888,3},{6342,888,3},{6342,900,3},{6343,897,3}, {6347,902,3},{6342,912,3},{6337,915,3},{6335,910,3},{6330,908,3},{6335,923,3}, {6337,940,3},{6340,948,3},{6338,942,3},{6337,920,3},{6338,917,3},{6343,918,3}, {6348,948,3},{6347,933,3},{6350,927,3},{6347,927,3},{6345,928,3},{6345,922,3}, {6347,915,3},{6350,915,3},{6350,923,3},{6352,923,3},{6353,925,3},{6353,930,3}, {6357,937,3},{6352,937,3},{6352,942,3},{6357,947,3},{6357,953,3},{6353,957,3}, {6358,955,3},{6358,950,3},{6363,972,3},{6353,982,3},{6352,982,3},{6343,997,3}, {6338,993,3},{6332,983,3},{6335,1000,3},{6333,1010,3},{6333,1023,3},{6332,1025,3}, {6327,1027,3},{6332,1028,3},{6333,1025,3},{6335,1012,3},{6338,1005,3},{6343,1008,3}, {6347,1030,3},{6343,1037,3},{6345,1045,3},{6343,1057,3},{6345,1068,3},{6342,1080,3}, {6343,1083,3},{6347,1092,3},{6348,1078,3},{6352,1077,3},{6353,1080,3},{6355,1092,3}, {6357,1092,3},{6357,1085,3},{6358,1090,3},{6360,1092,3},{6360,1088,3},{6355,1067,3}, {6360,1072,3},{6363,1085,3},{6370,1097,3},{6370,1115,3},{6377,1125,3},{6378,1145,3}, {6385,1142,3},{6385,1135,3},{6387,1127,3},{6385,1113,3},{6385,1110,3},{6390,1110,3}, {6392,1120,3},{6397,1127,3},{6398,1143,3},{6400,1150,3},{6402,1150,3},{6402,1145,3}, {6403,1142,3},{6402,1135,3},{6403,1125,3},{6407,1123,3},{6410,1135,3},{6412,1130,3}, {6407,1122,3},{6402,1120,3},{6398,1112,3},{6388,1080,3},{6387,1070,3},{6380,1057,3}, {6385,1080,3},{6390,1092,3},{6388,1103,3},{6383,1108,3},{6380,1100,3},{6375,1097,3}, {6373,1092,3},{6367,1063,3},{6363,1062,3},{6357,1040,3},{6355,1023,3},{6350,1010,3}, {6348,998,3},{6350,992,3},{6358,990,3},{6360,983,3},{6362,980,3},{6365,983,3}, {6367,978,3},{6368,982,3},{6372,1000,3},{6377,1010,3},{6375,1000,3},{6378,1003,3}, {6375,992,3},{6372,985,3},{6370,965,3},{6367,957,3},{6367,953,3},{6370,957,3}, {6372,955,3},{6377,978,3},{6375,958,3},{6377,955,3},{6382,963,3},{6387,987,3}, {6387,983,3},{6388,980,3},{6390,990,3},{6388,992,3},{6392,1003,3},{6393,1018,3}, {6397,1015,3},{6393,1005,3},{6392,995,3},{6398,1013,3},{6397,1007,3},{6398,1007,3}, {6395,993,3},{6405,1003,3},{6410,1000,3},{6412,1003,3},{6408,1010,3},{6410,1020,3}, {6412,1022,3},{6412,1012,3},{6413,1013,3},{6413,1017,3},{6415,1017,3},{6415,1020,3}, {6418,1017,3},{6420,1018,3},{6418,1023,3},{6420,1028,3},{6418,1037,3},{6422,1037,3}, {6423,1025,3},{6425,1033,3},{6427,1035,3},{6425,1040,3},{6428,1040,3},{6428,1043,3}, {6430,1050,3},{6430,1045,3},{6435,1047,3},{6433,1055,3},{6435,1052,3},{6437,1055,3}, {6433,1060,3},{6435,1065,3},{6437,1060,3},{6440,1057,3},{6440,1047,3},{6443,1050,3}, {6443,1055,3},{6440,1063,3},{6443,1057,3},{6445,1062,3},{6442,1067,3},{6440,1073,3}, {6438,1077,3},{6437,1085,3},{6440,1078,3},{6443,1078,3},{6443,1070,3},{6445,1065,3}, {6447,1070,3},{6447,1083,3},{6450,1082,3},{6448,1088,3},{6447,1090,3},{6448,1092,3}, {6448,1097,3},{6450,1092,3},{6450,1097,3},{6455,1097,3},{6458,1092,3},{6460,1097,3}, {6457,1107,3},{6452,1107,3},{6452,1110,3},{6448,1118,3},{6445,1117,3},{6443,1120,3}, {6445,1122,3},{6445,1127,3},{6443,1133,3},{6432,1123,3},{6438,1135,3},{6440,1138,3}, {6442,1137,3},{6445,1142,3},{6443,1145,3},{6447,1152,3},{6447,1165,3},{6447,1145,3}, {6450,1145,3},{6452,1155,3},{6455,1152,3},{6455,1157,3},{6453,1155,3},{6453,1157,3}, {6458,1178,3},{6460,1172,3},{6458,1163,3},{6462,1163,3},{6462,1160,3},{6460,1155,3}, {6460,1158,3},{6458,1158,3},{6457,1152,3},{6463,1142,3},{6467,1140,3},{6470,1142,3}, {6470,1140,3},{6473,1152,3},{6475,1153,3},{6473,1162,3},{6475,1160,3},{6477,1155,3}, {6477,1157,3},{6478,1172,3},{6477,1173,3},{6480,1183,3},{6482,1165,3},{6483,1178,3}, {6485,1178,3},{6483,1165,3},{6488,1173,3},{6493,1193,3},{6493,1200,3},{6495,1210,3}, {6493,1222,3},{6497,1213,3},{6497,1203,3},{6495,1198,3},{6495,1192,3},{6487,1162,3}, {6483,1162,3},{6482,1155,3},{6482,1147,3},{6475,1138,3},{6473,1125,3},{6477,1135,3}, {6480,1143,3},{6482,1125,3},{6483,1127,3},{6487,1155,3},{6490,1170,3},{6488,1157,3}, {6485,1125,3},{6488,1130,3},{6492,1145,3},{6488,1153,3},{6492,1160,3},{6490,1153,3}, {6493,1148,3},{6495,1158,3},{6493,1163,3},{6497,1162,3},{6495,1167,3},{6497,1182,3}, {6502,1182,3},{6507,1197,3},{6505,1202,3},{6503,1200,3},{6503,1203,3},{6505,1207,3}, {6503,1207,3},{6503,1215,3},{6498,1218,3},{6505,1220,3},{6507,1230,3},{6508,1233,3}, {6508,1245,3},{6512,1250,3},{6512,1263,3},{6513,1260,3},{6515,1267,3},{6518,1270,3}, {6520,1278,3},{6525,1282,3},{6530,1293,3},{6533,1295,3},{6533,1292,3},{6520,1267,3}, {6513,1250,3},{6513,1240,3},{6517,1237,3},{6518,1250,3},{6522,1243,3},{6523,1242,3}, {6522,1235,3},{6523,1238,3},{6525,1272,3},{6527,1265,3},{6527,1260,3},{6525,1260,3}, {6527,1253,3},{6525,1245,3},{6527,1242,3},{6527,1235,3},{6523,1225,3},{6530,1233,3}, {6530,1242,3},{6533,1248,3},{6532,1242,3},{6537,1252,3},{6535,1252,3},{6535,1260,3}, {6533,1268,3},{6535,1265,3},{6537,1253,3},{6545,1248,3},{6545,1255,3},{6542,1257,3}, {6543,1260,3},{6537,1272,3},{6543,1263,3},{6545,1267,3},{6545,1278,3},{6547,1260,3}, {6548,1265,3},{6548,1260,3},{6550,1257,3},{6553,1262,3},{6553,1258,3},{6558,1258,3}, {6553,1255,3},{6552,1250,3},{6552,1247,3},{6558,1253,3},{6552,1243,3},{6555,1238,3}, {6558,1242,3},{6558,1235,3},{6565,1237,3},{6570,1243,3},{6573,1252,3},{6572,1258,3}, {6568,1258,3},{6568,1263,3},{6565,1262,3},{6563,1278,3},{6565,1278,3},{6565,1267,3}, {6570,1265,3},{6575,1255,3},{6578,1262,3},{6580,1265,3},{6578,1272,3},{6583,1270,3}, {6582,1262,3},{6585,1262,3},{6592,1267,3},{6597,1283,3},{6592,1297,3},{6592,1303,3}, {6585,1318,3},{6593,1312,3},{6595,1298,3},{6598,1292,3},{6600,1297,3},{6605,1297,3}, {6607,1303,3},{6608,1302,3},{6605,1288,3},{6603,1273,3},{6605,1273,3},{6607,1267,3}, {6613,1285,3},{6615,1305,3},{6613,1308,3},{6622,1332,3},{6623,1355,3},{6623,1358,3}, {6620,1358,3},{6618,1350,3},{6618,1358,3},{6615,1355,3},{6612,1353,3},{6610,1355,3}, {6615,1362,3},{6617,1375,3},{6615,1383,3},{6617,1383,3},{6618,1378,3},{6617,1368,3}, {6618,1362,3},{6623,1367,3},{6623,1380,3},{6620,1377,3},{6620,1378,3},{6622,1385,3}, {6623,1398,3},{6627,1400,3},{6632,1415,3},{6633,1412,3},{6630,1403,3},{6630,1397,3}, {6627,1392,3},{6627,1380,3},{6628,1375,3},{6625,1372,3},{6623,1362,3},{6625,1357,3}, {6628,1362,3},{6628,1358,3},{6625,1345,3},{6625,1330,3},{6620,1318,3},{6618,1305,3}, {6620,1303,3},{6627,1322,3},{6630,1333,3},{6630,1353,3},{6632,1340,3},{6633,1345,3}, {6633,1337,3},{6637,1332,3},{6632,1333,3},{6630,1320,3},{6630,1313,3},{6632,1317,3}, {6632,1308,3},{6632,1302,3},{6635,1300,3},{6640,1317,3},{6643,1315,3},{6645,1310,3}, {6647,1317,3},{6652,1297,3},{6653,1310,3},{6652,1322,3},{6645,1323,3},{6645,1338,3}, {6647,1327,3},{6650,1330,3},{6652,1327,3},{6653,1333,3},{6655,1347,3},{6652,1367,3}, {6653,1362,3},{6657,1345,3},{6660,1357,3},{6660,1373,3},{6660,1353,3},{6655,1342,3}, {6653,1327,3},{6657,1320,3},{6660,1323,3},{6662,1340,3},{6663,1322,3},{6665,1317,3}, {6667,1318,3},{6665,1345,3},{6663,1353,3},{6667,1348,3},{6668,1330,3},{6672,1323,3}, {6672,1328,3},{6672,1348,3},{6668,1357,3},{6668,1370,3},{6672,1370,3},{6673,1390,3}, {6673,1365,3},{6672,1362,3},{6672,1355,3},{6675,1357,3},{6675,1375,3},{6677,1355,3}, {6678,1350,3},{6680,1362,3},{6678,1382,3},{6678,1398,3},{6680,1393,3},{6682,1380,3}, {6683,1377,3},{6683,1370,3},{6685,1370,3},{6687,1363,3},{6690,1362,3},{6690,1353,3}, {6692,1353,3},{6693,1358,3},{6693,1378,3},{6697,1377,3},{6697,1383,3},{6698,1388,3}, {6700,1395,3},{6698,1397,3},{6695,1388,3},{6692,1392,3},{6692,1395,3},{6693,1393,3}, {6698,1405,3},{6702,1402,3},{6705,1403,3},{6705,1405,3},{6705,1408,3},{6700,1410,3}, {6697,1415,3},{6695,1413,3},{6697,1415,3},{6698,1423,3},{6702,1427,3},{6705,1425,3}, {6707,1440,3},{6705,1453,3},{6702,1455,3},{6702,1457,3},{6703,1460,3},{6705,1457,3}, {6708,1427,3},{6715,1435,3},{6717,1445,3},{6712,1442,3},{6710,1443,3},{6715,1447,3}, {6715,1470,3},{6712,1473,3},{6713,1475,3},{6717,1472,3},{6718,1452,3},{6718,1468,3}, {6720,1477,3},{6722,1498,3},{6720,1493,3},{6715,1488,3},{6708,1498,3},{6712,1500,3}, {6715,1493,3},{6720,1502,3},{6722,1508,3},{6718,1515,3},{6718,1523,3},{6717,1528,3}, {6717,1538,3},{6708,1540,3},{6707,1550,3},{6710,1543,3},{6715,1548,3},{6718,1538,3}, {6720,1538,3},{6720,1548,3},{6717,1573,3},{6722,1570,3},{6720,1558,3},{6723,1540,3}, {6720,1530,3},{6722,1527,3},{6722,1532,3},{6723,1533,3},{6723,1520,3},{6725,1507,3}, {6727,1515,3},{6732,1515,3},{6730,1503,3},{6727,1497,3},{6727,1487,3},{6727,1478,3}, {6725,1483,3},{6723,1477,3},{6722,1470,3},{6722,1462,3},{6723,1470,3},{6728,1470,3}, {6725,1455,3},{6723,1433,3},{6733,1455,3},{6738,1462,3},{6740,1457,3},{6742,1463,3}, {6742,1480,3},{6737,1482,3},{6742,1488,3},{6743,1505,3},{6743,1483,3},{6745,1483,3}, {6747,1477,3},{6747,1478,3},{6750,1473,3},{6755,1492,3},{6757,1507,3},{6755,1515,3}, {6753,1515,3},{6753,1510,3},{6755,1500,3},{6755,1498,3},{6750,1505,3},{6748,1498,3}, {6747,1483,3},{6747,1498,3},{6752,1518,3},{6748,1522,3},{6748,1515,3},{6747,1517,3}, {6742,1515,3},{6747,1523,3},{6748,1532,3},{6747,1545,3},{6740,1553,3},{6735,1553,3}, {6730,1565,3},{6728,1560,3},{6727,1563,3},{6730,1570,3},{6733,1562,3},{6738,1560,3}, {6743,1552,3},{6745,1558,3},{6747,1553,3},{6748,1555,3},{6753,1570,3},{6755,1588,3}, {6757,1590,3},{6755,1572,3},{6752,1557,3},{6752,1537,3},{6753,1523,3},{6758,1525,3}, {6760,1530,3},{6758,1542,3},{6755,1545,3},{6762,1543,3},{6763,1540,3},{6762,1538,3}, {6760,1537,3},{6762,1518,3},{6767,1525,3},{6768,1533,3},{6768,1527,3},{6772,1532,3}, {6768,1550,3},{6767,1553,3},{6768,1553,3},{6767,1565,3},{6770,1558,3},{6770,1547,3}, {6773,1540,3},{6775,1560,3},{6767,1583,3},{6773,1578,3},{6777,1563,3},{6778,1570,3}, {6777,1558,3},{6778,1542,3},{6783,1545,3},{6785,1542,3},{6782,1540,3},{6785,1537,3}, {6780,1537,3},{6773,1520,3},{6772,1518,3},{6767,1500,3},{6763,1482,3},{6765,1473,3}, {6770,1488,3},{6770,1482,3},{6772,1478,3},{6773,1512,3},{6775,1502,3},{6775,1498,3}, {6778,1503,3},{6778,1498,3},{6775,1483,3},{6778,1483,3},{6778,1477,3},{6780,1475,3}, {6782,1480,3},{6782,1488,3},{6783,1497,3},{6783,1508,3},{6785,1510,3},{6785,1507,3}, {6783,1485,3},{6787,1488,3},{6790,1500,3},{6787,1523,3},{6783,1520,3},{6790,1533,3}, {6788,1533,3},{6792,1555,3},{6787,1550,3},{6785,1553,3},{6788,1553,3},{6792,1560,3}, {6793,1560,3},{6795,1577,3},{6790,1587,3},{6793,1588,3},{6797,1595,3},{6800,1597,3}, {6800,1605,3},{6802,1605,3},{6802,1587,3},{6803,1585,3},{6805,1590,3},{6807,1587,3}, {6803,1580,3},{6803,1560,3},{6808,1553,3},{6805,1550,3},{6802,1538,3},{6800,1543,3}, {6798,1540,3},{6800,1532,3},{6803,1528,3},{6805,1535,3},{6807,1535,3},{6812,1543,3}, {6813,1550,3},{6808,1553,3},{6812,1555,3},{6813,1563,3},{6817,1565,3},{6815,1567,3}, {6813,1573,3},{6812,1570,3},{6810,1573,3},{6810,1562,3},{6805,1562,3},{6805,1565,3}, {6807,1567,3},{6807,1573,3},{6808,1575,3},{6808,1585,3},{6813,1592,3},{6818,1587,3}, {6818,1595,3},{6825,1597,3},{6823,1605,3},{6817,1603,3},{6815,1605,3},{6817,1610,3}, {6810,1607,3},{6807,1610,3},{6803,1603,3},{6797,1620,3},{6788,1622,3},{6780,1652,3}, {6782,1643,3},{6785,1645,3},{6788,1625,3},{6797,1628,3},{6800,1620,3},{6800,1627,3}, {6792,1640,3},{6790,1645,3},{6793,1647,3},{6795,1642,3},{6798,1633,3},{6800,1633,3}, {6800,1640,3},{6797,1645,3},{6797,1653,3},{6798,1647,3},{6802,1650,3},{6803,1637,3}, {6807,1640,3},{6810,1647,3},{6807,1653,3},{6805,1667,3},{6807,1667,3},{6807,1672,3}, {6808,1657,3},{6812,1648,3},{6807,1635,3},{6808,1630,3},{6810,1630,3},{6813,1625,3}, {6812,1632,3},{6815,1637,3},{6813,1640,3},{6815,1640,3},{6815,1647,3},{6817,1647,3}, {6818,1642,3},{6817,1658,3},{6820,1647,3},{6822,1645,3},{6820,1642,3},{6820,1617,3}, {6822,1617,3},{6823,1637,3},{6825,1632,3},{6825,1627,3},{6827,1610,3},{6830,1615,3}, {6832,1618,3},{6830,1622,3},{6830,1630,3},{6828,1632,3},{6828,1637,3},{6827,1642,3}, {6825,1652,3},{6820,1657,3},{6813,1673,3},{6813,1680,3},{6820,1663,3},{6827,1658,3}, {6830,1648,3},{6832,1625,3},{6835,1628,3},{6835,1623,3},{6838,1647,3},{6840,1670,3}, {6837,1688,3},{6832,1683,3},{6837,1703,3},{6837,1713,3},{6830,1720,3},{6825,1733,3}, {6817,1733,3},{6818,1737,3},{6823,1735,3},{6823,1742,3},{6825,1742,3},{6833,1722,3}, {6837,1720,3},{6838,1725,3},{6840,1725,3},{6840,1733,3},{6835,1757,3},{6837,1757,3}, {6842,1737,3},{6842,1758,3},{6838,1778,3},{6837,1782,3},{6838,1787,3},{6840,1778,3}, {6845,1763,3},{6845,1747,3},{6850,1755,3},{6853,1753,3},{6850,1735,3},{6845,1722,3}, {6843,1702,3},{6845,1702,3},{6845,1708,3},{6847,1710,3},{6850,1700,3},{6845,1685,3}, {6843,1653,3},{6843,1650,3},{6850,1647,3},{6853,1652,3},{6853,1663,3},{6860,1657,3}, {6865,1665,3},{6870,1698,3},{6863,1710,3},{6863,1717,3},{6865,1718,3},{6865,1713,3}, {6868,1710,3},{6872,1725,3},{6872,1737,3},{6867,1747,3},{6867,1758,3},{6865,1768,3}, {6868,1762,3},{6868,1747,3},{6873,1742,3},{6873,1730,3},{6875,1723,3},{6882,1745,3}, {6875,1778,3},{6878,1777,3},{6878,1767,3},{6883,1747,3},{6888,1765,3},{6888,1773,3}, {6887,1775,3},{6887,1783,3},{6888,1783,3},{6890,1773,3},{6893,1770,3},{6892,1752,3}, {6890,1743,3},{6895,1748,3},{6895,1753,3},{6898,1753,3},{6898,1748,3},{6908,1767,3}, {6910,1763,3},{6912,1785,3},{6915,1800,3},{6915,1815,3},{6917,1807,3},{6923,1810,3}, {6923,1798,3},{6930,1802,3},{6932,1810,3},{6938,1817,3},{6945,1815,3},{6948,1828,3}, {6945,1837,3},{6938,1837,3},{6940,1842,3},{6937,1850,3},{6928,1850,3},{6923,1852,3}, {6935,1855,3},{6928,1863,3},{6925,1868,3},{6928,1870,3},{6932,1867,3},{6932,1877,3}, {6932,1888,3},{6930,1892,3},{6928,1900,3},{6932,1895,3},{6937,1863,3},{6943,1857,3}, {6945,1845,3},{6952,1847,3},{6955,1862,3},{6953,1877,3},{6955,1885,3},{6950,1885,3}, {6942,1900,3},{6940,1902,3},{6935,1912,3},{6935,1930,3},{6932,1937,3},{6928,1935,3}, {6928,1920,3},{6925,1917,3},{6927,1925,3},{6927,1928,3},{6923,1925,3},{6923,1928,3}, {6922,1935,3},{6923,1940,3},{6922,1950,3},{6925,1945,3},{6932,1945,3},{6935,1942,3}, {6938,1930,3},{6938,1912,3},{6942,1908,3},{6945,1900,3},{6952,1900,3},{6955,1918,3}, {6952,1927,3},{6957,1923,3},{6955,1908,3},{6953,1902,3},{6957,1895,3},{6962,1895,3}, {6968,1908,3},{6973,1910,3},{6975,1918,3},{6978,1927,3},{6977,1942,3},{6980,1957,3}, {6980,1977,3},{6967,1968,3},{6963,1973,3},{6950,1962,3},{6947,1965,3},{6942,1955,3}, {6940,1955,3},{6943,1963,3},{6943,1968,3},{6958,1975,3},{6960,1975,3},{6962,1980,3}, {6958,1997,3},{6958,2012,3},{6962,1987,3},{6968,1982,3},{6977,1988,3},{6983,2002,3}, {6977,1997,3},{6977,1998,3},{6978,2003,3},{6992,2015,3},{6993,2017,3},{6988,2017,3}, {6985,2022,3},{6992,2020,3},{6997,2028,3},{6988,2042,3},{6967,2032,3},{6960,2038,3}, {6958,2037,3},{6957,2028,3},{6953,2030,3},{6945,2025,3},{6947,2022,3},{6940,2018,3}, {6933,1998,3},{6932,2000,3},{6928,1992,3},{6925,1995,3},{6932,2003,3},{6938,2020,3}, {6938,2028,3},{6948,2038,3},{6958,2048,3},{6953,2062,3},{6948,2085,3},{6953,2072,3}, {6958,2065,3},{6963,2048,3},{6970,2055,3},{6977,2048,3},{6977,2062,3},{6980,2080,3}, {6983,2083,3},{6987,2078,3},{6992,2092,3},{6995,2108,3},{6985,2090,3},{6983,2097,3}, {6982,2095,3},{6978,2102,3},{6980,2105,3},{6982,2100,3},{6983,2105,3},{6987,2107,3}, {6987,2118,3},{6982,2113,3},{6982,2117,3},{6985,2123,3},{6990,2122,3},{6990,2133,3}, {6993,2120,3},{7000,2125,3},{7002,2132,3},{7002,2142,3},{6998,2155,3},{6995,2160,3}, {6992,2158,3},{6988,2168,3},{6988,2178,3},{6983,2188,3},{6977,2195,3},{6975,2205,3}, {6973,2198,3},{6973,2210,3},{6980,2205,3},{6983,2192,3},{6983,2200,3},{6985,2202,3}, {6987,2193,3},{6993,2190,3},{6998,2193,3},{6998,2200,3},{6997,2203,3},{6995,2203,3}, {6993,2207,3},{7002,2205,3},{7003,2212,3},{7002,2192,3},{7003,2180,3},{7005,2185,3}, {7007,2202,3},{7012,2210,3},{7008,2200,3},{7008,2188,3},{7008,2183,3},{7007,2182,3}, {7005,2173,3},{7010,2162,3},{7008,2155,3},{7010,2147,3},{7015,2143,3},{7017,2148,3}, {7017,2132,3},{7020,2125,3},{7020,2120,3},{7025,2130,3},{7027,2142,3},{7023,2145,3}, {7022,2150,3},{7030,2152,3},{7032,2157,3},{7027,2162,3},{7020,2180,3},{7015,2187,3}, {7018,2185,3},{7020,2188,3},{7022,2182,3},{7025,2180,3},{7032,2200,3},{7032,2203,3}, {7028,2198,3},{7030,2210,3},{7023,2213,3},{7028,2215,3},{7028,2232,3},{7023,2227,3}, {7020,2228,3},{7017,2230,3},{7013,2223,3},{7015,2237,3},{7012,2255,3},{7013,2252,3}, {7017,2233,3},{7020,2235,3},{7025,2240,3},{7023,2258,3},{7022,2260,3},{7022,2270,3}, {7020,2297,3},{7012,2282,3},{7008,2245,3},{7003,2230,3},{7010,2287,3},{7015,2300,3}, {7003,2302,3},{7002,2305,3},{7003,2313,3},{6998,2312,3},{6997,2315,3},{6995,2310,3}, {6993,2313,3},{7000,2332,3},{6997,2335,3},{6993,2332,3},{6998,2347,3},{7002,2353,3}, {7003,2333,3},{7008,2318,3},{7010,2337,3},{7013,2340,3},{7017,2330,3},{7018,2342,3}, {7018,2332,3},{7022,2325,3},{7023,2353,3},{7025,2343,3},{7023,2332,3},{7025,2330,3}, {7028,2343,3},{7030,2362,3},{7030,2353,3},{7032,2353,3},{7032,2347,3},{7037,2352,3}, {7045,2377,3},{7048,2382,3},{7052,2398,3},{7048,2425,3},{7045,2435,3},{7052,2425,3}, {7053,2410,3},{7060,2427,3},{7062,2427,3},{7067,2428,3},{7068,2437,3},{7068,2438,3}, {7067,2448,3},{7062,2462,3},{7062,2468,3},{7062,2473,3},{7065,2473,3},{7073,2457,3}, {7077,2425,3},{7083,2427,3},{7087,2440,3},{7082,2447,3},{7078,2463,3},{7085,2460,3}, {7087,2473,3},{7090,2462,3},{7090,2463,3},{7093,2457,3},{7095,2465,3},{7097,2460,3}, {7097,2478,3},{7093,2487,3},{7090,2483,3},{7092,2498,3},{7097,2498,3},{7093,2507,3}, {7087,2492,3},{7085,2507,3},{7088,2508,3},{7092,2517,3},{7085,2525,3},{7078,2525,3}, {7080,2528,3},{7082,2535,3},{7085,2538,3},{7090,2540,3},{7095,2533,3},{7097,2537,3}, {7090,2553,3},{7087,2545,3},{7085,2543,3},{7083,2547,3},{7087,2552,3},{7085,2553,3}, {7088,2563,3},{7088,2572,3},{7085,2577,3},{7090,2585,3},{7088,2590,3},{7087,2593,3}, {7078,2575,3},{7075,2563,3},{7073,2565,3},{7072,2563,3},{7067,2545,3},{7057,2525,3}, {7050,2507,3},{7052,2527,3},{7048,2527,3},{7048,2510,3},{7048,2505,3},{7047,2528,3}, {7043,2525,3},{7040,2527,3},{7038,2525,3},{7040,2518,3},{7037,2508,3},{7035,2513,3}, {7032,2512,3},{7033,2518,3},{7030,2520,3},{7022,2498,3},{7010,2493,3},{7007,2500,3}, {7007,2505,3},{7012,2500,3},{7015,2508,3},{7012,2507,3},{7013,2513,3},{7012,2508,3}, {7008,2508,3},{7008,2515,3},{7008,2523,3},{7018,2532,3},{7020,2538,3},{7028,2553,3}, {7030,2553,3},{7032,2542,3},{7035,2545,3},{7060,2600,3},{7072,2607,3},{7072,2613,3}, {7077,2617,3},{7087,2637,3},{7093,2655,3},{7095,2670,3},{7090,2673,3},{7085,2667,3}, {7083,2667,3},{7083,2675,3},{7073,2668,3},{7070,2663,3},{7063,2635,3},{7065,2655,3}, {7063,2665,3},{7053,2660,3},{7052,2657,3},{7047,2657,3},{7043,2652,3},{7037,2650,3}, {7035,2655,3},{7037,2658,3},{7038,2665,3},{7040,2663,3},{7042,2665,3},{7042,2675,3}, {7047,2680,3},{7048,2685,3},{7048,2695,3},{7047,2693,3},{7045,2695,3},{7047,2710,3}, {7053,2697,3},{7055,2700,3},{7057,2697,3},{7062,2707,3},{7058,2727,3},{7063,2710,3}, {7068,2715,3},{7070,2708,3},{7073,2713,3},{7075,2725,3},{7073,2732,3},{7075,2735,3}, {7077,2728,3},{7080,2730,3},{7082,2733,3},{7080,2763,3},{7082,2748,3},{7083,2753,3}, {7087,2752,3},{7087,2738,3},{7090,2740,3},{7092,2740,3},{7088,2735,3},{7088,2730,3}, {7090,2717,3},{7092,2712,3},{7095,2713,3},{7097,2717,3},{7093,2735,3},{7100,2722,3}, {7103,2727,3},{7100,2748,3},{7095,2752,3},{7095,2757,3},{7102,2758,3},{7102,2753,3}, {7108,2752,3},{7108,2765,3},{7112,2765,3},{7110,2773,3},{7107,2770,3},{7105,2775,3}, {7105,2777,3},{7103,2788,3},{7107,2803,3},{7103,2808,3},{7107,2813,3},{7108,2820,3}, {7105,2827,3},{7102,2820,3},{7100,2818,3},{7100,2823,3},{7097,2822,3},{7100,2835,3}, {7098,2848,3},{7097,2855,3},{7088,2847,3},{7088,2837,3},{7087,2845,3},{7085,2843,3}, {7085,2835,3},{7083,2837,3},{7083,2822,3},{7080,2830,3},{7078,2827,3},{7078,2813,3}, {7078,2802,3},{7082,2800,3},{7078,2793,3},{7078,2777,3},{7077,2783,3},{7073,2777,3}, {7077,2788,3},{7073,2813,3},{7070,2807,3},{7067,2788,3},{7065,2787,3},{7060,2765,3}, {7062,2783,3},{7067,2813,3},{7072,2830,3},{7065,2828,3},{7062,2822,3},{7048,2785,3}, {7043,2788,3},{7048,2797,3},{7047,2795,3},{7050,2818,3},{7045,2803,3},{7043,2807,3}, {7047,2813,3},{7043,2812,3},{7050,2823,3},{7050,2833,3},{7037,2815,3},{7015,2818,3}, {7008,2810,3},{7007,2802,3},{7008,2813,3},{7017,2823,3},{7028,2818,3},{7042,2825,3}, {7043,2832,3},{7047,2833,3},{7048,2845,3},{7045,2847,3},{7045,2852,3},{7048,2850,3}, {7050,2855,3},{7052,2847,3},{7055,2840,3},{7067,2850,3},{7067,2862,3},{7070,2853,3}, {7073,2855,3},{7078,2865,3},{7087,2875,3},{7087,2882,3},{7088,2890,3},{7087,2910,3}, {7085,2907,3},{7085,2925,3},{7080,2928,3},{7078,2940,3},{7073,2930,3},{7073,2942,3}, {7072,2933,3},{7070,2937,3},{7068,2930,3},{7065,2928,3},{7067,2933,3},{7070,2940,3}, {7070,2955,3},{7075,2970,3},{7073,2978,3},{7070,2978,3},{7067,2977,3},{7062,2968,3}, {7062,2970,3},{7063,2985,3},{7070,2995,3},{7072,3010,3},{7067,3020,3},{7063,3010,3}, {7063,3022,3},{7060,3035,3},{7055,3023,3},{7055,3012,3},{7053,3017,3},{7053,3000,3}, {7052,3015,3},{7053,3032,3},{7055,3045,3},{7053,3058,3},{7053,3060,3},{7050,3057,3}, {7047,3072,3},{7045,3075,3},{7042,3080,3},{7043,3083,3},{7045,3095,3},{7037,3105,3}, {7033,3102,3},{7028,3107,3},{7027,3092,3},{7027,3077,3},{7023,3052,3},{7020,3050,3}, {7018,3037,3},{7015,3038,3},{7013,3035,3},{7010,3023,3},{7008,3012,3},{7007,3015,3}, {7007,2980,3},{7013,2915,3},{7013,2902,3},{7018,2870,3},{7017,2860,3},{7017,2875,3}, {7010,2862,3},{7010,2885,3},{7008,2875,3},{7008,2877,3},{7005,2913,3},{7003,2913,3}, {7003,2918,3},{7000,2913,3},{7002,2933,3},{6997,2968,3},{6990,2943,3},{6985,2937,3}, {6985,2943,3},{6992,2953,3},{6990,2965,3},{6992,2972,3},{6983,2977,3},{6978,2970,3}, {6977,2963,3},{6972,2958,3},{6970,2952,3},{6970,2955,3},{6965,2948,3},{6973,2967,3}, {6973,2980,3},{6973,2990,3},{6975,2995,3},{6977,3005,3},{6973,3003,3},{6970,2993,3}, {6968,2993,3},{6973,3007,3},{6970,3012,3},{6968,3018,3},{6975,3012,3},{6977,3022,3}, {6980,3015,3},{6987,3017,3},{6988,3030,3},{6987,3033,3},{6983,3028,3},{6983,3038,3}, {6983,3040,3},{6970,3042,3},{6968,3040,3},{6967,3033,3},{6967,3042,3},{6968,3045,3}, {6978,3045,3},{6982,3045,3},{6982,3055,3},{6980,3072,3},{6978,3070,3},{6977,3072,3}, {6978,3080,3},{6970,3090,3},{6968,3095,3},{6958,3095,3},{6955,3092,3},{6953,3080,3}, {6955,3052,3},{6963,3030,3},{6967,3015,3},{6965,3007,3},{6963,3007,3},{6963,3015,3}, {6958,3018,3},{6955,3013,3},{6950,3010,3},{6943,2995,3},{6943,2982,3},{6938,2968,3}, {6932,2932,3},{6925,2932,3},{6912,2925,3},{6903,2912,3},{6903,2900,3},{6912,2878,3}, {6923,2882,3},{6937,2912,3},{6948,2930,3},{6968,2913,3},{6970,2910,3},{6983,2838,3}, {6988,2832,3},{6992,2817,3},{6993,2810,3},{7000,2798,3},{7008,2795,3},{7008,2790,3}, {7007,2775,3},{7007,2757,3},{7003,2753,3},{6998,2730,3},{6995,2730,3},{6993,2720,3}, {6990,2705,3},{6993,2687,3},{6995,2685,3},{6995,2680,3},{6993,2672,3},{6995,2662,3}, {6993,2647,3},{6985,2638,3},{6980,2625,3},{6975,2615,3},{6970,2598,3},{6967,2595,3}, {6963,2598,3},{6958,2595,3},{6957,2593,3},{6955,2585,3},{6948,2587,3},{6943,2583,3}, {6938,2583,3},{6935,2575,3},{6925,2572,3},{6912,2573,3},{6902,2582,3},{6898,2575,3}, {6888,2562,3},{6888,2542,3},{6882,2522,3},{6877,2515,3},{6863,2510,3},{6860,2495,3}, {6855,2490,3},{6867,2475,3},{6870,2452,3},{6872,2433,3},{6875,2420,3},{6877,2418,3}, {6878,2412,3},{6882,2405,3},{6883,2393,3},{6883,2383,3},{6872,2368,3},{6868,2345,3}, {6863,2320,3},{6870,2307,3},{6868,2280,3},{6873,2255,3},{6872,2240,3},{6885,2235,3}, {6928,2168,3},{6933,2132,3},{6922,2103,3},{6913,2105,3},{6910,2112,3},{6905,2108,3}, {6903,2103,3},{6910,2073,3},{6905,2058,3},{6905,2010,3},{6893,2032,3},{6878,2035,3}, {6867,2020,3},{6855,1995,3},{6850,2008,3},{6848,2022,3},{6845,2018,3},{6840,2005,3}, {6833,1993,3},{6848,1895,3},{6847,1862,3},{6853,1835,3},{6850,1808,3},{6842,1805,3}, {6833,1808,3},{6817,1815,3},{6795,1788,3},{6803,1760,3},{6808,1727,3},{6803,1718,3}, {6790,1673,3},{6763,1655,3},{6752,1638,3},{6750,1620,3},{6742,1608,3},{6723,1637,3}, {6717,1640,3},{6702,1635,3},{6688,1602,3},{6660,1563,3},{6648,1537,3},{6628,1547,3}, {6615,1503,3},{6613,1450,3},{6583,1463,3},{6570,1453,3},{6558,1450,3},{6532,1450,3}, {6525,1437,3},{6507,1427,3},{6497,1410,3},{6458,1367,3},{6452,1387,3},{6447,1412,3}, {6433,1415,3},{6417,1415,3},{6402,1398,3},{6410,1323,3},{6405,1293,3},{6395,1265,3}, {6385,1248,3},{6367,1228,3},{6358,1213,3},{6348,1220,3},{6327,1193,3},{6302,1217,3}, {6290,1203,3},{6275,1208,3},{6260,1202,3},{6258,1205,3},{6250,1210,3},{6247,1215,3}, {6242,1220,3},{6237,1222,3},{6232,1227,3},{6227,1230,3},{6222,1228,3},{6217,1227,3}, {6212,1225,3},{6205,1223,3},{6200,1222,3},{6195,1220,3},{6190,1218,3},{6185,1217,3}, {6178,1215,3},{6173,1212,3},{6170,1218,3},{6165,1227,3},{6162,1235,3},{6157,1240,3}, {6157,1253,3},{6137,1285,3},{6120,1277,3},{6115,1270,3},{6107,1265,3},{6105,1257,3}, {6105,1240,3},{6100,1222,3},{6088,1232,3},{6078,1237,3},{6065,1250,3},{6060,1250,3}, {6053,1258,3},{6048,1260,3},{6040,1258,3},{6030,1248,3},{6018,1252,3},{6008,1248,3}, {5998,1232,3},{5988,1213,3},{5990,1197,3},{5988,1193,3},{5985,1182,3},{5980,1188,3}, {5970,1190,3},{5968,1183,3},{5965,1183,3},{5960,1167,3},{5927,1180,3},{5917,1175,3}, {5908,1175,3},{5902,1168,3},{5890,1162,3},{5888,1147,3},{5890,1142,3},{5898,1143,3}, {5890,1142,3},{5888,1147,3},{5890,1162,3},{5902,1168,3},{5908,1175,3},{5917,1175,3}, {5927,1180,3},{5960,1167,3},{5965,1183,3},{5968,1183,3},{5970,1190,3},{5980,1188,3}, {5985,1182,3},{5988,1193,3},{5990,1197,3},{5988,1213,3},{5998,1232,3},{6008,1248,3}, {6018,1252,3},{6030,1248,3},{6040,1258,3},{6048,1260,3},{6053,1258,3},{6060,1250,3}, {6065,1250,3},{6078,1237,3},{6088,1232,3},{6100,1222,3},{6105,1240,3},{6105,1257,3}, {6107,1265,3},{6115,1270,3},{6120,1277,3},{6137,1285,3},{6157,1253,3},{6157,1240,3}, {6162,1235,3},{6165,1227,3},{6170,1218,3},{6173,1212,3},{6178,1215,3},{6185,1217,3}, {6190,1218,3},{6195,1220,3},{6200,1222,3},{6205,1223,3},{6212,1225,3},{6217,1227,3}, {6222,1228,3},{6227,1230,3},{6232,1227,3},{6237,1222,3},{6242,1220,3},{6247,1215,3}, {6250,1210,3},{6258,1205,3},{6260,1202,3},{6275,1208,3},{6290,1203,3},{6302,1217,3}, {6327,1193,3},{6348,1220,3},{6358,1213,3},{6367,1228,3},{6385,1248,3},{6395,1265,3}, {6405,1293,3},{6410,1323,3},{6402,1398,3},{6417,1415,3},{6433,1415,3},{6447,1412,3}, {6452,1387,3},{6458,1367,3},{6497,1410,3},{6507,1427,3},{6525,1437,3},{6532,1450,3}, {6558,1450,3},{6570,1453,3},{6583,1463,3},{6613,1450,3},{6615,1503,3},{6628,1547,3}, {6648,1537,3},{6660,1563,3},{6688,1602,3},{6702,1635,3},{6717,1640,3},{6723,1637,3}, {6742,1608,3},{6750,1620,3},{6752,1638,3},{6763,1655,3},{6790,1673,3},{6803,1718,3}, {6808,1727,3},{6803,1760,3},{6795,1788,3},{6817,1815,3},{6833,1808,3},{6842,1805,3}, {6850,1808,3},{6853,1835,3},{6847,1862,3},{6848,1895,3},{6833,1993,3},{6840,2005,3}, {6845,2018,3},{6848,2022,3},{6850,2008,3},{6855,1995,3},{6867,2020,3},{6878,2035,3}, {6893,2032,3},{6905,2010,3},{6905,2058,3},{6900,2087,3},{6895,2093,3},{6893,2088,3}, {6888,2090,3},{6887,2108,3},{6882,2122,3},{6875,2130,3},{6875,2140,3},{6868,2147,3}, {6865,2162,3},{6858,2175,3},{6857,2190,3},{6848,2205,3},{6847,2217,3},{6847,2232,3}, {6847,2237,3},{6845,2238,3},{6845,2247,3},{6842,2263,3},{6842,2267,3},{6838,2277,3}, {6838,2282,3},{6833,2290,3},{6828,2307,3},{6823,2315,3},{6812,2315,3},{6815,2328,3}, {6812,2333,3},{6805,2340,3},{6800,2352,3},{6798,2355,3},{6795,2365,3},{6792,2365,3}, {6788,2352,3},{6787,2348,3},{6773,2348,3},{6758,2355,3},{6755,2347,3},{6747,2343,3}, {6743,2348,3},{6745,2355,3},{6743,2363,3},{6742,2377,3},{6737,2375,3},{6732,2377,3}, {6728,2375,3},{6727,2360,3},{6722,2358,3},{6720,2362,3},{6715,2357,3},{6710,2367,3}, {6700,2373,3},{6697,2383,3},{6688,2393,3},{6680,2400,3},{6678,2393,3},{6675,2388,3}, {6655,2388,3},{6653,2380,3},{6652,2380,3},{6650,2373,3},{6648,2373,3},{6645,2365,3}, {6637,2368,3},{6632,2367,3},{6620,2373,3},{6613,2393,3},{6582,2417,3},{6580,2403,3}, {6578,2405,3},{6580,2398,3},{6575,2393,3},{6578,2387,3},{6580,2377,3},{6582,2373,3}, {6582,2368,3},{6578,2362,3},{6580,2360,3},{6580,2350,3},{6583,2348,3},{6580,2342,3}, {6577,2343,3},{6578,2338,3},{6582,2337,3},{6582,2333,3},{6578,2332,3},{6583,2320,3}, {6578,2318,3},{6577,2323,3},{6575,2315,3},{6572,2313,3},{6570,2308,3},{6575,2305,3}, {6575,2302,3},{6580,2290,3},{6578,2288,3},{6580,2283,3},{6585,2278,3},{6590,2268,3}, {6590,2263,3},{6587,2268,3},{6580,2270,3},{6577,2268,3},{6575,2265,3},{6577,2265,3}, {6580,2260,3},{6577,2250,3},{6582,2253,3},{6583,2247,3},{6585,2248,3},{6587,2237,3}, {6583,2237,3},{6583,2233,3},{6580,2237,3},{6580,2232,3},{6575,2235,3},{6573,2232,3}, {6575,2222,3},{6572,2225,3},{6572,2237,3},{6567,2238,3},{6567,2235,3},{6570,2228,3}, {6568,2225,3},{6562,2228,3},{6562,2218,3},{6560,2228,3},{6563,2232,3},{6567,2228,3}, {6567,2232,3},{6563,2233,3},{6563,2238,3},{6560,2233,3},{6557,2242,3},{6553,2240,3}, {6557,2235,3},{6557,2232,3},{6558,2225,3},{6555,2223,3},{6565,2193,3},{6567,2187,3}, {6572,2177,3},{6570,2177,3},{6565,2185,3},{6560,2202,3},{6558,2212,3},{6555,2217,3}, {6555,2220,3},{6553,2213,3},{6553,2208,3},{6552,2207,3},{6552,2205,3},{6552,2200,3}, {6553,2185,3},{6548,2192,3},{6548,2195,3},{6552,2193,3},{6547,2203,3},{6542,2200,3}, {6545,2195,3},{6540,2193,3},{6542,2187,3},{6540,2185,3},{6540,2175,3},{6542,2172,3}, {6540,2170,3},{6538,2167,3},{6542,2158,3},{6540,2155,3},{6538,2160,3},{6538,2147,3}, {6537,2148,3},{6535,2145,3},{6532,2153,3},{6532,2158,3},{6533,2158,3},{6528,2170,3}, {6525,2167,3},{6523,2157,3},{6532,2148,3},{6532,2142,3},{6537,2132,3},{6535,2133,3}, {6533,2127,3},{6532,2140,3},{6515,2162,3},{6513,2155,3},{6512,2157,3},{6508,2153,3}, {6507,2158,3},{6505,2147,3},{6502,2150,3},{6502,2142,3},{6498,2137,3},{6497,2138,3}, {6495,2125,3},{6492,2125,3},{6488,2120,3},{6487,2122,3},{6485,2117,3},{6483,2118,3}, {6482,2112,3},{6485,2107,3},{6483,2103,3},{6478,2110,3},{6478,2122,3},{6477,2130,3}, {6475,2130,3},{6475,2123,3},{6468,2132,3},{6468,2128,3},{6467,2128,3},{6473,2113,3}, {6472,2110,3},{6468,2112,3},{6465,2125,3},{6463,2123,3},{6460,2130,3},{6458,2132,3}, {6457,2137,3},{6460,2137,3},{6455,2145,3},{6458,2148,3},{6453,2150,3},{6453,2155,3}, {6452,2150,3},{6455,2145,3},{6452,2140,3},{6453,2135,3},{6452,2138,3},{6452,2148,3}, {6445,2148,3},{6447,2158,3},{6448,2158,3},{6445,2160,3},{6442,2152,3},{6437,2145,3}, {6433,2135,3},{6437,2132,3},{6432,2133,3},{6430,2127,3},{6432,2125,3},{6427,2120,3}, {6423,2113,3},{6422,2110,3},{6422,2107,3},{6413,2095,3},{6410,2097,3},{6405,2090,3}, {6398,2090,3},{6395,2082,3},{6387,2078,3},{6383,2067,3},{6382,2072,3},{6380,2068,3}, {6378,2065,3},{6382,2062,3},{6377,2055,3},{6382,2050,3},{6377,2045,3},{6377,2042,3}, {6370,2042,3},{6367,2038,3},{6368,2035,3},{6372,2037,3},{6375,2032,3},{6365,2030,3}, {6367,2027,3},{6373,2028,3},{6365,2023,3},{6363,2013,3},{6367,2005,3},{6365,2002,3}, {6362,2002,3},{6360,2003,3},{6360,2000,3},{6362,1993,3},{6360,1992,3},{6362,1990,3}, {6355,1983,3},{6352,1975,3},{6345,1977,3},{6343,1967,3},{6352,1958,3},{6357,1945,3}, {6355,1942,3},{6353,1947,3},{6350,1945,3},{6348,1952,3},{6347,1947,3},{6340,1952,3}, {6342,1947,3},{6345,1942,3},{6348,1935,3},{6345,1937,3},{6343,1935,3},{6347,1930,3}, {6333,1927,3},{6332,1925,3},{6333,1923,3},{6332,1920,3},{6332,1913,3},{6330,1915,3}, {6325,1912,3},{6325,1913,3},{6323,1910,3},{6325,1905,3},{6322,1905,3},{6320,1912,3}, {6320,1907,3},{6318,1907,3},{6318,1903,3},{6322,1897,3},{6325,1895,3},{6325,1892,3}, {6327,1888,3},{6327,1887,3},{6325,1887,3},{6325,1883,3},{6325,1875,3},{6325,1873,3}, {6322,1890,3},{6318,1890,3},{6318,1880,3},{6317,1878,3},{6320,1875,3},{6322,1882,3}, {6322,1870,3},{6315,1875,3},{6317,1857,3},{6313,1865,3},{6312,1865,3},{6310,1863,3}, {6312,1857,3},{6307,1853,3},{6307,1855,3},{6305,1850,3},{6302,1848,3},{6305,1843,3}, {6305,1838,3},{6302,1843,3},{6302,1838,3},{6303,1835,3},{6302,1833,3},{6300,1823,3}, {6298,1855,3},{6295,1858,3},{6297,1853,3},{6295,1853,3},{6295,1845,3},{6297,1843,3}, {6295,1838,3},{6292,1845,3},{6292,1853,3},{6290,1850,3},{6290,1848,3},{6290,1840,3}, {6288,1847,3},{6285,1847,3},{6283,1837,3},{6287,1828,3},{6288,1828,3},{6288,1825,3}, {6287,1825,3},{6287,1820,3},{6283,1822,3},{6282,1823,3},{6283,1828,3},{6282,1827,3}, {6278,1820,3},{6282,1818,3},{6277,1813,3},{6277,1808,3},{6278,1808,3},{6280,1800,3}, {6280,1813,3},{6282,1815,3},{6283,1807,3},{6285,1807,3},{6282,1798,3},{6280,1797,3}, {6282,1792,3},{6290,1793,3},{6292,1788,3},{6298,1782,3},{6300,1783,3},{6298,1778,3}, {6297,1777,3},{6300,1770,3},{6293,1783,3},{6285,1790,3},{6282,1788,3},{6278,1795,3}, {6277,1795,3},{6273,1800,3},{6265,1800,3},{6267,1788,3},{6262,1805,3},{6260,1807,3}, {6255,1797,3},{6260,1795,3},{6262,1793,3},{6255,1792,3},{6253,1788,3},{6252,1788,3}, {6248,1785,3},{6250,1770,3},{6247,1765,3},{6243,1770,3},{6243,1762,3},{6245,1755,3}, {6253,1742,3},{6250,1738,3},{6248,1733,3},{6243,1738,3},{6240,1737,3},{6240,1733,3}, {6232,1738,3},{6233,1742,3},{6232,1745,3},{6228,1748,3},{6228,1747,3},{6227,1747,3}, {6223,1765,3},{6220,1755,3},{6220,1753,3},{6223,1757,3},{6223,1752,3},{6208,1748,3}, {6207,1745,3},{6205,1747,3},{6203,1743,3},{6200,1747,3},{6198,1740,3},{6195,1738,3}, {6195,1735,3},{6190,1735,3},{6188,1737,3},{6187,1733,3},{6185,1735,3},{6182,1733,3}, {6182,1740,3},{6180,1737,3},{6172,1740,3},{6173,1748,3},{6170,1752,3},{6163,1750,3}, {6163,1743,3},{6168,1738,3},{6172,1733,3},{6167,1733,3},{6168,1730,3},{6170,1730,3}, {6172,1727,3},{6172,1715,3},{6170,1717,3},{6168,1727,3},{6165,1717,3},{6163,1718,3}, {6165,1713,3},{6163,1710,3},{6160,1725,3},{6160,1720,3},{6162,1710,3},{6160,1715,3}, {6158,1705,3},{6155,1718,3},{6155,1708,3},{6152,1717,3},{6152,1712,3},{6148,1718,3}, {6145,1717,3},{6143,1722,3},{6142,1722,3},{6142,1717,3},{6143,1713,3},{6140,1710,3}, {6133,1720,3},{6132,1727,3},{6130,1723,3},{6132,1715,3},{6130,1717,3},{6128,1725,3}, {6128,1720,3},{6132,1713,3},{6132,1710,3},{6123,1722,3},{6122,1715,3},{6118,1718,3}, {6117,1718,3},{6115,1717,3},{6113,1718,3},{6112,1715,3},{6110,1720,3},{6105,1717,3}, {6103,1718,3},{6102,1717,3},{6102,1725,3},{6100,1717,3},{6095,1715,3},{6093,1720,3}, {6090,1720,3},{6090,1723,3},{6083,1728,3},{6082,1725,3},{6080,1728,3},{6078,1728,3}, {6077,1733,3},{6073,1730,3},{6070,1718,3},{6070,1727,3},{6068,1728,3},{6065,1737,3}, {6063,1732,3},{6062,1733,3},{6063,1740,3},{6065,1755,3},{6063,1762,3},{6060,1765,3}, {6058,1760,3},{6052,1763,3},{6048,1773,3},{6053,1773,3},{6057,1777,3},{6060,1787,3}, {6060,1797,3},{6055,1800,3},{6050,1797,3},{6048,1803,3},{6038,1817,3},{6038,1827,3}, {6035,1820,3},{6033,1823,3},{6035,1827,3},{6035,1832,3},{6035,1843,3},{6028,1848,3}, {6028,1843,3},{6023,1860,3},{6022,1855,3},{6023,1847,3},{6030,1832,3},{6025,1837,3}, {6022,1845,3},{6020,1843,3},{6023,1840,3},{6018,1842,3},{6015,1852,3},{6018,1855,3}, {6007,1858,3},{6012,1858,3},{6013,1858,3},{6015,1863,3},{6012,1868,3},{6012,1873,3}, {6005,1875,3},{6000,1880,3},{6010,1875,3},{6010,1877,3},{6012,1882,3},{6007,1882,3}, {5993,1890,3},{5992,1893,3},{5992,1900,3},{5988,1902,3},{5988,1903,3},{5988,1907,3}, {5982,1905,3},{5993,1888,3},{5985,1893,3},{5980,1887,3},{5978,1873,3},{5977,1873,3}, {5978,1897,3},{5977,1907,3},{5973,1908,3},{5972,1903,3},{5972,1898,3},{5973,1893,3}, {5975,1892,3},{5972,1887,3},{5968,1875,3},{5967,1875,3},{5967,1872,3},{5965,1870,3}, {5965,1873,3},{5963,1873,3},{5962,1870,3},{5963,1865,3},{5962,1868,3},{5958,1867,3}, {5953,1847,3},{5947,1840,3},{5947,1827,3},{5945,1830,3},{5945,1825,3},{5943,1828,3}, {5942,1828,3},{5940,1833,3},{5938,1832,3},{5940,1817,3},{5942,1817,3},{5942,1822,3}, {5945,1818,3},{5943,1815,3},{5945,1812,3},{5943,1808,3},{5940,1810,3},{5938,1805,3}, {5940,1802,3},{5937,1808,3},{5933,1813,3},{5935,1798,3},{5933,1793,3},{5937,1782,3}, {5942,1775,3},{5950,1778,3},{5953,1785,3},{5957,1782,3},{5958,1782,3},{5962,1775,3}, {5965,1775,3},{5970,1772,3},{5965,1772,3},{5962,1772,3},{5965,1760,3},{5967,1765,3}, {5972,1765,3},{5973,1768,3},{5975,1763,3},{5978,1763,3},{5980,1760,3},{5975,1753,3}, {5975,1737,3},{5973,1750,3},{5968,1745,3},{5967,1748,3},{5957,1753,3},{5965,1750,3}, {5970,1752,3},{5972,1755,3},{5973,1753,3},{5973,1762,3},{5970,1762,3},{5965,1757,3}, {5958,1775,3},{5953,1778,3},{5948,1775,3},{5945,1772,3},{5945,1768,3},{5948,1767,3}, {5950,1758,3},{5948,1755,3},{5952,1752,3},{5955,1755,3},{5953,1750,3},{5957,1743,3}, {5962,1737,3},{5965,1738,3},{5962,1733,3},{5955,1740,3},{5952,1738,3},{5948,1742,3}, {5947,1740,3},{5950,1735,3},{5947,1737,3},{5947,1735,3},{5955,1722,3},{5955,1712,3}, {5960,1707,3},{5958,1702,3},{5953,1707,3},{5955,1695,3},{5958,1690,3},{5958,1682,3}, {5952,1673,3},{5953,1668,3},{5958,1662,3},{5962,1655,3},{5960,1650,3},{5955,1655,3}, {5953,1653,3},{5952,1645,3},{5952,1648,3},{5950,1648,3},{5950,1642,3},{5952,1638,3}, {5948,1635,3},{5948,1633,3},{5945,1632,3},{5947,1628,3},{5950,1627,3},{5950,1623,3}, {5948,1622,3},{5948,1623,3},{5947,1618,3},{5950,1602,3},{5945,1608,3},{5943,1618,3}, {5947,1645,3},{5945,1660,3},{5947,1667,3},{5938,1682,3},{5938,1687,3},{5938,1688,3}, {5940,1688,3},{5947,1670,3},{5947,1682,3},{5948,1683,3},{5945,1692,3},{5937,1703,3}, {5937,1717,3},{5935,1732,3},{5932,1730,3},{5932,1725,3},{5927,1728,3},{5925,1722,3}, {5925,1740,3},{5928,1737,3},{5932,1737,3},{5927,1755,3},{5922,1760,3},{5928,1758,3}, {5928,1763,3},{5927,1770,3},{5925,1773,3},{5925,1772,3},{5923,1773,3},{5925,1778,3}, {5927,1775,3},{5927,1787,3},{5922,1787,3},{5928,1788,3},{5933,1797,3},{5932,1815,3}, {5933,1820,3},{5932,1822,3},{5937,1827,3},{5937,1835,3},{5935,1843,3},{5933,1843,3}, {5933,1847,3},{5940,1845,3},{5940,1850,3},{5943,1843,3},{5943,1848,3},{5937,1862,3}, {5937,1855,3},{5935,1863,3},{5932,1865,3},{5930,1852,3},{5930,1835,3},{5932,1833,3}, {5933,1835,3},{5933,1832,3},{5932,1828,3},{5928,1832,3},{5927,1827,3},{5927,1828,3}, {5920,1842,3},{5923,1832,3},{5922,1832,3},{5920,1838,3},{5918,1837,3},{5918,1840,3}, {5917,1838,3},{5917,1843,3},{5913,1842,3},{5913,1830,3},{5912,1828,3},{5910,1832,3}, {5907,1820,3},{5910,1825,3},{5912,1825,3},{5912,1822,3},{5908,1813,3},{5907,1812,3}, {5905,1805,3},{5903,1805,3},{5903,1800,3},{5902,1802,3},{5897,1797,3},{5893,1798,3}, {5892,1793,3},{5892,1790,3},{5887,1790,3},{5892,1787,3},{5892,1782,3},{5897,1778,3}, {5890,1780,3},{5888,1778,3},{5892,1778,3},{5892,1775,3},{5912,1777,3},{5913,1777,3}, {5912,1773,3},{5905,1772,3},{5905,1770,3},{5908,1767,3},{5912,1768,3},{5917,1767,3}, {5912,1767,3},{5908,1762,3},{5897,1762,3},{5895,1758,3},{5893,1762,3},{5892,1760,3}, {5892,1763,3},{5890,1763,3},{5890,1753,3},{5887,1758,3},{5885,1758,3},{5890,1745,3}, {5887,1747,3},{5882,1745,3},{5880,1748,3},{5880,1733,3},{5878,1738,3},{5875,1737,3}, {5875,1730,3},{5872,1725,3},{5873,1715,3},{5875,1712,3},{5877,1708,3},{5875,1703,3}, {5873,1708,3},{5870,1707,3},{5870,1715,3},{5868,1712,3},{5865,1708,3},{5867,1705,3}, {5867,1695,3},{5867,1702,3},{5863,1703,3},{5863,1695,3},{5862,1690,3},{5867,1625,3}, {5863,1627,3},{5863,1618,3},{5862,1628,3},{5863,1633,3},{5858,1640,3},{5863,1643,3}, {5862,1652,3},{5863,1657,3},{5860,1668,3},{5860,1675,3},{5860,1673,3},{5860,1678,3}, {5858,1678,3},{5855,1683,3},{5855,1682,3},{5853,1685,3},{5852,1683,3},{5848,1693,3}, {5848,1685,3},{5845,1683,3},{5842,1675,3},{5848,1650,3},{5847,1642,3},{5840,1672,3}, {5837,1670,3},{5835,1675,3},{5837,1677,3},{5835,1677,3},{5833,1673,3},{5835,1663,3}, {5832,1670,3},{5828,1672,3},{5832,1673,3},{5832,1680,3},{5828,1675,3},{5827,1670,3}, {5825,1680,3},{5823,1678,3},{5823,1682,3},{5820,1682,3},{5818,1683,3},{5817,1678,3}, {5813,1680,3},{5812,1677,3},{5818,1665,3},{5820,1663,3},{5820,1662,3},{5815,1668,3}, {5813,1667,3},{5810,1670,3},{5808,1675,3},{5805,1672,3},{5805,1668,3},{5805,1673,3}, {5802,1675,3},{5802,1668,3},{5800,1670,3},{5800,1668,3},{5805,1665,3},{5802,1663,3}, {5798,1667,3},{5798,1662,3},{5798,1668,3},{5797,1672,3},{5797,1673,3},{5792,1678,3}, {5792,1673,3},{5788,1677,3},{5787,1673,3},{5792,1670,3},{5790,1668,3},{5790,1662,3}, {5792,1660,3},{5792,1665,3},{5798,1655,3},{5800,1652,3},{5798,1650,3},{5795,1652,3}, {5793,1658,3},{5790,1658,3},{5788,1657,3},{5792,1648,3},{5790,1648,3},{5790,1647,3}, {5777,1668,3},{5773,1670,3},{5790,1642,3},{5785,1645,3},{5780,1657,3},{5778,1658,3}, {5773,1667,3},{5773,1665,3},{5770,1672,3},{5770,1670,3},{5768,1672,3},{5768,1665,3}, {5770,1657,3},{5767,1663,3},{5765,1663,3},{5765,1658,3},{5763,1663,3},{5758,1657,3}, {5762,1655,3},{5762,1652,3},{5760,1653,3},{5758,1652,3},{5757,1655,3},{5757,1652,3}, {5755,1663,3},{5747,1670,3},{5747,1667,3},{5745,1667,3},{5745,1663,3},{5742,1663,3}, {5742,1667,3},{5740,1663,3},{5738,1663,3},{5738,1655,3},{5733,1657,3},{5733,1653,3}, {5732,1657,3},{5730,1648,3},{5728,1647,3},{5723,1650,3},{5723,1647,3},{5717,1647,3}, {5712,1652,3},{5712,1655,3},{5708,1657,3},{5707,1655,3},{5705,1658,3},{5705,1653,3}, {5707,1653,3},{5705,1652,3},{5705,1645,3},{5702,1647,3},{5702,1643,3},{5698,1643,3}, {5695,1647,3},{5692,1643,3},{5687,1645,3},{5680,1640,3},{5678,1643,3},{5680,1647,3}, {5677,1648,3},{5677,1645,3},{5677,1642,3},{5675,1635,3},{5667,1638,3},{5665,1627,3}, {5660,1622,3},{5653,1622,3},{5653,1618,3},{5642,1610,3},{5625,1605,3},{5620,1600,3}, {5620,1595,3},{5608,1585,3},{5610,1578,3},{5613,1582,3},{5615,1582,3},{5617,1580,3}, {5615,1577,3},{5618,1565,3},{5617,1558,3},{5620,1560,3},{5617,1550,3},{5617,1548,3}, {5615,1547,3},{5618,1542,3},{5613,1537,3},{5613,1530,3},{5617,1532,3},{5618,1530,3}, {5615,1523,3},{5617,1515,3},{5615,1512,3},{5618,1507,3},{5618,1503,3},{5615,1505,3}, {5617,1485,3},{5613,1483,3},{5617,1480,3},{5617,1470,3},{5612,1468,3},{5603,1477,3}, {5600,1473,3},{5602,1470,3},{5600,1468,3},{5600,1462,3},{5603,1460,3},{5605,1460,3}, {5603,1457,3},{5605,1457,3},{5603,1448,3},{5600,1445,3},{5593,1433,3},{5590,1432,3}, {5588,1427,3},{5583,1422,3},{5572,1420,3},{5567,1427,3},{5562,1428,3},{5553,1437,3}, {5538,1420,3},{5538,1407,3},{5543,1393,3},{5543,1388,3},{5542,1385,3},{5542,1365,3}, {5537,1358,3},{5538,1352,3},{5533,1338,3},{5533,1330,3},{5535,1317,3},{5535,1307,3}, {5538,1302,3},{5540,1295,3},{5538,1293,3},{5538,1288,3},{5538,1283,3},{5540,1283,3}, {5543,1287,3},{5542,1293,3},{5543,1295,3},{5545,1297,3},{5543,1298,3},{5557,1292,3}, {5558,1293,3},{5562,1303,3},{5567,1307,3},{5572,1302,3},{5572,1297,3},{5573,1297,3}, {5575,1292,3},{5578,1293,3},{5582,1293,3},{5585,1288,3},{5587,1282,3},{5600,1270,3}, {5603,1270,3},{5613,1257,3},{5623,1253,3},{5630,1245,3},{5627,1263,3},{5623,1267,3}, {5622,1272,3},{5623,1282,3},{5627,1283,3},{5630,1277,3},{5637,1273,3},{5638,1263,3}, {5642,1262,3},{5645,1267,3},{5647,1273,3},{5643,1285,3},{5645,1290,3},{5653,1293,3}, {5663,1288,3},{5665,1282,3},{5665,1278,3},{5665,1272,3},{5667,1270,3},{5668,1267,3}, {5672,1267,3},{5675,1262,3},{5683,1257,3},{5685,1253,3},{5688,1248,3},{5692,1235,3}, {5702,1233,3},{5707,1223,3},{5708,1222,3},{5712,1223,3},{5713,1222,3},{5718,1220,3}, {5718,1215,3},{5722,1220,3},{5722,1213,3},{5723,1210,3},{5723,1215,3},{5725,1210,3}, {5728,1215,3},{5732,1215,3},{5733,1212,3},{5733,1205,3},{5738,1210,3},{5740,1207,3}, {5740,1210,3},{5743,1210,3},{5745,1203,3},{5743,1202,3},{5735,1198,3},{5737,1197,3}, {5735,1193,3},{5738,1195,3},{5738,1190,3},{5747,1192,3},{5748,1195,3},{5750,1192,3}, {5750,1193,3},{5752,1190,3},{5762,1192,3},{5762,1190,3},{5760,1188,3},{5760,1187,3}, {5763,1187,3},{5767,1183,3},{5768,1187,3},{5770,1180,3},{5772,1175,3},{5770,1175,3}, {5770,1170,3},{5773,1172,3},{5778,1182,3},{5778,1173,3},{5783,1170,3},{5783,1167,3}, {5787,1170,3},{5788,1168,3},{5790,1175,3},{5792,1177,3},{5793,1173,3},{5800,1180,3}, {5805,1180,3},{5807,1178,3},{5812,1183,3},{5818,1183,3},{5818,1187,3},{5822,1188,3}, {5822,1185,3},{5830,1180,3},{5833,1188,3},{5833,1172,3},{5830,1172,3},{5830,1165,3}, {5825,1158,3},{5825,1153,3},{5823,1153,3},{5823,1150,3},{5830,1152,3},{5838,1162,3}, {5840,1162,3},{5842,1167,3},{5843,1163,3},{5840,1160,3},{5847,1155,3},{5842,1157,3}, {5833,1153,3},{5828,1148,3},{5827,1140,3},{5832,1145,3},{5830,1140,3},{5833,1138,3}, {5833,1145,3},{5835,1145,3},{5835,1142,3},{5838,1142,3},{5835,1138,3},{5833,1135,3}, {5835,1135,3},{5843,1143,3},{5835,1132,3},{5837,1127,3},{5833,1122,3},{5840,1120,3}, {5842,1125,3},{5845,1125,3},{5847,1128,3},{5850,1123,3},{5855,1125,3},{5857,1128,3}, {5860,1125,3},{5865,1125,3},{5867,1122,3},{5870,1122,3},{5872,1118,3},{5875,1118,3}, {5875,1122,3},{5877,1120,3},{5880,1123,3},{5885,1123,3},{5887,1120,3},{5892,1120,3}, {5895,1110,3},{5898,1118,3},{5900,1112,3},{5907,1118,3},{5910,1132,3},{5898,1143,3}, {5788,2435,131},{5797,2437,3},{5807,2445,3},{5825,2447,3},{5828,2455,3}, {5832,2457,3},{5838,2447,3},{5838,2433,3},{5828,2425,3},{5827,2415,3},{5823,2412,3}, {5832,2397,3},{5832,2388,3},{5833,2385,3},{5835,2383,3},{5833,2373,3},{5840,2372,3}, {5843,2367,3},{5853,2368,3},{5852,2363,3},{5857,2357,3},{5858,2355,3},{5857,2350,3}, {5860,2352,3},{5870,2350,3},{5870,2355,3},{5873,2352,3},{5875,2353,3},{5873,2360,3}, {5875,2368,3},{5872,2378,3},{5873,2380,3},{5877,2378,3},{5878,2378,3},{5877,2388,3}, {5880,2378,3},{5878,2375,3},{5878,2360,3},{5877,2343,3},{5880,2347,3},{5882,2353,3}, {5885,2348,3},{5890,2342,3},{5893,2343,3},{5895,2358,3},{5897,2363,3},{5902,2362,3}, {5905,2357,3},{5902,2362,3},{5900,2357,3},{5897,2355,3},{5898,2345,3},{5902,2340,3}, {5902,2343,3},{5907,2343,3},{5908,2350,3},{5907,2352,3},{5913,2352,3},{5918,2347,3}, {5922,2347,3},{5922,2357,3},{5925,2365,3},{5923,2373,3},{5923,2375,3},{5927,2372,3}, {5928,2383,3},{5927,2390,3},{5928,2403,3},{5927,2408,3},{5930,2410,3},{5935,2402,3}, {5938,2403,3},{5940,2408,3},{5935,2422,3},{5937,2422,3},{5940,2417,3},{5940,2425,3}, {5942,2430,3},{5943,2432,3},{5947,2433,3},{5947,2440,3},{5943,2450,3},{5947,2457,3}, {5943,2463,3},{5945,2467,3},{5947,2462,3},{5947,2467,3},{5950,2468,3},{5945,2473,3}, {5945,2477,3},{5948,2482,3},{5952,2478,3},{5957,2478,3},{5955,2487,3},{5950,2492,3}, {5952,2503,3},{5950,2510,3},{5953,2510,3},{5953,2512,3},{5948,2540,3},{5953,2542,3}, {5952,2552,3},{5953,2555,3},{5957,2548,3},{5967,2548,3},{5957,2563,3},{5957,2567,3}, {5958,2572,3},{5965,2567,3},{5967,2570,3},{5963,2577,3},{5958,2578,3},{5957,2582,3}, {5958,2585,3},{5963,2588,3},{5958,2597,3},{5963,2598,3},{5962,2605,3},{5958,2610,3}, {5958,2625,3},{5955,2643,3},{5953,2650,3},{5955,2665,3},{5948,2682,3},{5945,2697,3}, {5945,2743,3},{5940,2785,3},{5942,2795,3},{5947,2805,3},{5943,2813,3},{5940,2822,3}, {5933,2818,3},{5932,2818,3},{5928,2807,3},{5927,2797,3},{5923,2790,3},{5918,2788,3}, {5915,2783,3},{5910,2778,3},{5903,2777,3},{5898,2773,3},{5902,2752,3},{5898,2727,3}, {5895,2707,3},{5888,2698,3},{5883,2695,3},{5878,2695,3},{5872,2712,3},{5862,2720,3}, {5842,2723,3},{5840,2727,3},{5840,2733,3},{5837,2742,3},{5828,2742,3},{5825,2747,3}, {5820,2747,3},{5810,2755,3},{5808,2760,3},{5803,2758,3},{5797,2762,3},{5800,2765,3}, {5800,2770,3},{5795,2768,3},{5792,2775,3},{5792,2780,3},{5787,2783,3},{5783,2775,3}, {5783,2765,3},{5782,2755,3},{5780,2750,3},{5775,2753,3},{5772,2753,3},{5770,2742,3}, {5765,2738,3},{5760,2737,3},{5755,2732,3},{5755,2723,3},{5757,2712,3},{5760,2702,3}, {5763,2693,3},{5763,2692,3},{5760,2683,3},{5757,2668,3},{5752,2660,3},{5752,2650,3}, {5757,2645,3},{5758,2635,3},{5762,2625,3},{5767,2622,3},{5773,2618,3},{5775,2610,3}, {5778,2602,3},{5783,2605,3},{5785,2605,3},{5785,2593,3},{5787,2583,3},{5792,2577,3}, {5792,2575,3},{5790,2572,3},{5790,2568,3},{5795,2560,3},{5797,2557,3},{5798,2547,3}, {5802,2545,3},{5803,2537,3},{5808,2530,3},{5807,2527,3},{5800,2530,3},{5800,2527,3}, {5805,2522,3},{5807,2522,3},{5808,2512,3},{5803,2505,3},{5800,2495,3},{5798,2487,3}, {5798,2475,3},{5795,2470,3},{5795,2463,3},{5795,2460,3},{5793,2452,3},{5792,2447,3}, {5788,2445,3},{5788,2435,3},{5150,2362,131},{5152,2360,3},{5155,2357,3}, {5165,2353,3},{5167,2355,3},{5175,2355,3},{5178,2362,3},{5180,2363,3},{5183,2360,3}, {5190,2363,3},{5192,2362,3},{5195,2363,3},{5198,2367,3},{5208,2363,3},{5212,2360,3}, {5212,2352,3},{5215,2348,3},{5217,2350,3},{5218,2345,3},{5217,2343,3},{5218,2338,3}, {5220,2338,3},{5222,2330,3},{5223,2330,3},{5223,2320,3},{5228,2318,3},{5228,2317,3}, {5252,2340,3},{5260,2360,3},{5262,2368,3},{5262,2375,3},{5268,2390,3},{5273,2393,3}, {5288,2393,3},{5292,2392,3},{5297,2393,3},{5302,2393,3},{5308,2388,3},{5317,2392,3}, {5320,2387,3},{5323,2385,3},{5325,2382,3},{5340,2375,3},{5348,2367,3},{5363,2362,3}, {5375,2358,3},{5378,2355,3},{5397,2350,3},{5395,2355,3},{5392,2363,3},{5393,2375,3}, {5390,2380,3},{5392,2383,3},{5393,2380,3},{5395,2385,3},{5395,2390,3},{5397,2393,3}, {5393,2403,3},{5397,2413,3},{5393,2422,3},{5392,2432,3},{5392,2443,3},{5397,2452,3}, {5400,2463,3},{5400,2472,3},{5395,2470,3},{5397,2473,3},{5398,2482,3},{5403,2483,3}, {5408,2480,3},{5413,2485,3},{5415,2493,3},{5413,2502,3},{5413,2508,3},{5418,2515,3}, {5427,2523,3},{5427,2533,3},{5430,2543,3},{5432,2552,3},{5430,2552,3},{5428,2555,3}, {5420,2558,3},{5417,2553,3},{5415,2560,3},{5415,2570,3},{5418,2580,3},{5423,2578,3}, {5423,2580,3},{5428,2575,3},{5432,2568,3},{5432,2567,3},{5433,2557,3},{5435,2555,3}, {5437,2558,3},{5442,2563,3},{5448,2565,3},{5455,2572,3},{5460,2577,3},{5465,2573,3}, {5472,2575,3},{5477,2573,3},{5483,2578,3},{5488,2585,3},{5493,2590,3},{5495,2600,3}, {5493,2603,3},{5495,2608,3},{5497,2610,3},{5498,2618,3},{5503,2625,3},{5512,2627,3}, {5515,2637,3},{5513,2647,3},{5517,2652,3},{5515,2655,3},{5515,2665,3},{5520,2668,3}, {5522,2673,3},{5527,2677,3},{5528,2685,3},{5532,2685,3},{5533,2675,3},{5533,2667,3}, {5533,2657,3},{5533,2648,3},{5537,2648,3},{5538,2657,3},{5545,2655,3},{5552,2652,3}, {5557,2660,3},{5562,2663,3},{5567,2662,3},{5570,2667,3},{5570,2670,3},{5570,2682,3}, {5573,2688,3},{5580,2693,3},{5583,2702,3},{5583,2708,3},{5585,2718,3},{5583,2720,3}, {5580,2728,3},{5582,2737,3},{5578,2747,3},{5578,2760,3},{5583,2763,3},{5588,2763,3}, {5595,2770,3},{5598,2780,3},{5603,2782,3},{5607,2793,3},{5612,2797,3},{5613,2805,3}, {5617,2815,3},{5613,2823,3},{5608,2828,3},{5605,2832,3},{5605,2837,3},{5608,2845,3}, {5612,2855,3},{5610,2867,3},{5603,2870,3},{5598,2872,3},{5597,2880,3},{5595,2885,3}, {5600,2892,3},{5603,2900,3},{5605,2910,3},{5602,2917,3},{5598,2927,3},{5597,2938,3}, {5593,2947,3},{5588,2942,3},{5583,2940,3},{5578,2937,3},{5575,2937,3},{5573,2945,3}, {5570,2948,3},{5572,2957,3},{5578,2962,3},{5580,2972,3},{5580,2975,3},{5578,2977,3}, {5578,2978,3},{5582,2983,3},{5585,2990,3},{5585,3000,3},{5583,3010,3},{5587,3020,3}, {5585,3028,3},{5582,3037,3},{5582,3047,3},{5577,3052,3},{5573,3062,3},{5570,3065,3}, {5565,3068,3},{5565,3072,3},{5560,3077,3},{5563,3085,3},{5562,3093,3},{5557,3097,3}, {5550,3095,3},{5545,3090,3},{5540,3093,3},{5535,3088,3},{5533,3083,3},{5528,3085,3}, {5525,3092,3},{5520,3095,3},{5518,3098,3},{5517,3098,3},{5515,3102,3},{5510,3100,3}, {5503,3102,3},{5503,3093,3},{5500,3097,3},{5497,3095,3},{5495,3087,3},{5488,3083,3}, {5483,3077,3},{5480,3077,3},{5478,3085,3},{5473,3093,3},{5470,3102,3},{5468,3100,3}, {5467,3108,3},{5467,3118,3},{5467,3120,3},{5458,3118,3},{5455,3113,3},{5450,3110,3}, {5448,3120,3},{5447,3123,3},{5442,3128,3},{5437,3130,3},{5432,3132,3},{5425,3132,3}, {5423,3140,3},{5420,3148,3},{5417,3150,3},{5413,3157,3},{5413,3167,3},{5412,3168,3}, {5412,3178,3},{5407,3182,3},{5403,3190,3},{5398,3187,3},{5393,3185,3},{5388,3182,3}, {5383,3178,3},{5382,3178,3},{5380,3177,3},{5380,3180,3},{5378,3187,3},{5380,3197,3}, {5380,3205,3},{5380,3215,3},{5378,3222,3},{5377,3230,3},{5373,3237,3},{5373,3247,3}, {5368,3250,3},{5365,3242,3},{5365,3245,3},{5358,3245,3},{5355,3252,3},{5352,3260,3}, {5348,3260,3},{5350,3263,3},{5347,3265,3},{5347,3277,3},{5340,3277,3},{5335,3273,3}, {5333,3273,3},{5333,3265,3},{5330,3257,3},{5328,3253,3},{5323,3248,3},{5318,3242,3}, {5318,3237,3},{5313,3230,3},{5310,3223,3},{5310,3218,3},{5308,3215,3},{5308,3207,3}, {5308,3197,3},{5312,3190,3},{5312,3185,3},{5317,3178,3},{5322,3168,3},{5322,3163,3}, {5318,3158,3},{5320,3150,3},{5320,3147,3},{5320,3143,3},{5315,3138,3},{5310,3138,3}, {5308,3135,3},{5303,3132,3},{5303,3130,3},{5303,3125,3},{5300,3132,3},{5295,3138,3}, {5287,3147,3},{5285,3155,3},{5280,3158,3},{5273,3162,3},{5270,3153,3},{5263,3157,3}, {5258,3158,3},{5257,3167,3},{5253,3167,3},{5253,3163,3},{5252,3160,3},{5247,3162,3}, {5242,3162,3},{5237,3163,3},{5230,3162,3},{5227,3168,3},{5227,3170,3},{5222,3172,3}, {5220,3172,3},{5218,3178,3},{5212,3180,3},{5210,3180,3},{5210,3170,3},{5212,3162,3}, {5212,3150,3},{5213,3142,3},{5210,3135,3},{5207,3132,3},{5205,3130,3},{5207,3120,3}, {5210,3112,3},{5208,3100,3},{5207,3093,3},{5202,3093,3},{5200,3090,3},{5198,3090,3}, {5195,3083,3},{5190,3080,3},{5190,3077,3},{5185,3070,3},{5183,3068,3},{5178,3067,3}, {5178,3063,3},{5177,3065,3},{5172,3063,3},{5172,3058,3},{5167,3058,3},{5162,3055,3}, {5160,3052,3},{5158,3057,3},{5155,3055,3},{5155,3058,3},{5150,3060,3},{5148,3062,3}, {5143,3060,3},{5142,3063,3},{5137,3067,3},{5133,3065,3},{5132,3058,3},{5125,3057,3}, {5128,3050,3},{5128,3047,3},{5130,3047,3},{5133,3038,3},{5135,3035,3},{5140,3037,3}, {5145,3030,3},{5148,3023,3},{5152,3017,3},{5150,3007,3},{5148,2995,3},{5148,2990,3}, {5147,2988,3},{5145,2980,3},{5150,2973,3},{5152,2973,3},{5150,2963,3},{5147,2958,3}, {5147,2955,3},{5142,2953,3},{5140,2950,3},{5142,2943,3},{5138,2937,3},{5140,2932,3}, {5147,2928,3},{5152,2927,3},{5158,2925,3},{5158,2922,3},{5163,2923,3},{5165,2913,3}, {5158,2902,3},{5157,2900,3},{5158,2900,3},{5158,2892,3},{5155,2883,3},{5150,2878,3}, {5145,2880,3},{5143,2880,3},{5142,2878,3},{5147,2873,3},{5145,2870,3},{5143,2868,3}, {5152,2865,3},{5157,2868,3},{5157,2860,3},{5158,2852,3},{5157,2843,3},{5155,2840,3}, {5160,2835,3},{5163,2827,3},{5168,2828,3},{5165,2818,3},{5162,2813,3},{5157,2805,3}, {5157,2795,3},{5157,2792,3},{5162,2792,3},{5163,2788,3},{5158,2783,3},{5153,2780,3}, {5147,2775,3},{5150,2768,3},{5155,2768,3},{5158,2773,3},{5160,2773,3},{5163,2765,3}, {5165,2757,3},{5165,2753,3},{5167,2753,3},{5162,2750,3},{5163,2740,3},{5162,2728,3}, {5160,2727,3},{5160,2725,3},{5165,2727,3},{5167,2727,3},{5167,2723,3},{5167,2720,3}, {5177,2720,3},{5178,2720,3},{5178,2712,3},{5178,2703,3},{5175,2695,3},{5178,2685,3}, {5180,2677,3},{5182,2667,3},{5183,2663,3},{5182,2655,3},{5180,2652,3},{5183,2645,3}, {5187,2642,3},{5187,2633,3},{5188,2622,3},{5190,2615,3},{5192,2607,3},{5192,2598,3}, {5192,2590,3},{5195,2582,3},{5192,2572,3},{5192,2560,3},{5193,2550,3},{5193,2542,3}, {5197,2533,3},{5198,2528,3},{5197,2518,3},{5195,2510,3},{5192,2503,3},{5192,2495,3}, {5193,2483,3},{5190,2475,3},{5192,2467,3},{5193,2453,3},{5193,2442,3},{5192,2438,3}, {5183,2438,3},{5178,2437,3},{5173,2432,3},{5165,2418,3},{5160,2410,3},{5158,2405,3}, {5158,2397,3},{5158,2395,3},{5165,2390,3},{5163,2382,3},{5167,2373,3},{5163,2365,3}, {5157,2363,3},{5152,2368,3},{5150,2362,3},{5607,2107,131},{5613,2103,3}, {5623,2098,3},{5630,2098,3},{5637,2097,3},{5643,2100,3},{5650,2100,3},{5652,2102,3}, {5645,2105,3},{5640,2103,3},{5638,2107,3},{5640,2108,3},{5650,2107,3},{5653,2098,3}, {5668,2105,3},{5683,2105,3},{5692,2127,3},{5698,2137,3},{5707,2142,3},{5720,2142,3}, {5728,2142,3},{5757,2172,3},{5760,2187,3},{5760,2200,3},{5773,2247,3},{5775,2260,3}, {5768,2258,3},{5758,2263,3},{5750,2285,3},{5742,2295,3},{5737,2313,3},{5723,2320,3}, {5717,2323,3},{5710,2327,3},{5705,2335,3},{5703,2350,3},{5698,2358,3},{5697,2368,3}, {5697,2378,3},{5702,2398,3},{5707,2403,3},{5712,2422,3},{5723,2440,3},{5733,2442,3}, {5753,2437,3},{5762,2438,3},{5768,2435,3},{5773,2430,3},{5782,2428,3},{5788,2435,3}, {5788,2445,3},{5792,2447,3},{5793,2452,3},{5795,2460,3},{5795,2463,3},{5795,2470,3}, {5798,2475,3},{5798,2487,3},{5800,2495,3},{5803,2505,3},{5808,2512,3},{5807,2522,3}, {5805,2522,3},{5800,2527,3},{5800,2530,3},{5807,2527,3},{5808,2530,3},{5803,2537,3}, {5802,2545,3},{5798,2547,3},{5797,2557,3},{5795,2560,3},{5790,2568,3},{5790,2572,3}, {5792,2575,3},{5792,2577,3},{5787,2583,3},{5785,2593,3},{5785,2605,3},{5783,2605,3}, {5778,2602,3},{5775,2610,3},{5773,2618,3},{5767,2622,3},{5762,2625,3},{5758,2635,3}, {5757,2645,3},{5752,2650,3},{5752,2660,3},{5757,2668,3},{5760,2683,3},{5763,2692,3}, {5763,2693,3},{5760,2702,3},{5757,2712,3},{5755,2723,3},{5755,2732,3},{5753,2742,3}, {5753,2753,3},{5748,2755,3},{5747,2752,3},{5743,2752,3},{5742,2762,3},{5738,2768,3}, {5735,2777,3},{5732,2783,3},{5727,2787,3},{5722,2785,3},{5717,2782,3},{5712,2775,3}, {5710,2772,3},{5708,2775,3},{5703,2773,3},{5698,2773,3},{5692,2772,3},{5692,2768,3}, {5687,2768,3},{5685,2767,3},{5687,2777,3},{5687,2785,3},{5683,2792,3},{5683,2795,3}, {5682,2798,3},{5677,2793,3},{5672,2797,3},{5667,2802,3},{5662,2803,3},{5658,2813,3}, {5652,2810,3},{5647,2815,3},{5640,2818,3},{5638,2817,3},{5632,2822,3},{5623,2820,3}, {5617,2818,3},{5617,2815,3},{5613,2805,3},{5612,2797,3},{5607,2793,3},{5603,2782,3}, {5598,2780,3},{5595,2770,3},{5588,2763,3},{5583,2763,3},{5578,2760,3},{5578,2747,3}, {5582,2737,3},{5580,2728,3},{5583,2720,3},{5585,2718,3},{5583,2708,3},{5583,2702,3}, {5580,2693,3},{5573,2688,3},{5570,2682,3},{5570,2670,3},{5570,2667,3},{5567,2662,3}, {5567,2653,3},{5570,2642,3},{5570,2638,3},{5573,2635,3},{5578,2625,3},{5583,2623,3}, {5590,2610,3},{5595,2605,3},{5598,2598,3},{5600,2590,3},{5600,2587,3},{5605,2582,3}, {5608,2573,3},{5610,2570,3},{5615,2568,3},{5613,2557,3},{5617,2555,3},{5615,2547,3}, {5615,2537,3},{5615,2532,3},{5618,2523,3},{5618,2515,3},{5618,2510,3},{5623,2507,3}, {5628,2503,3},{5632,2497,3},{5637,2495,3},{5642,2490,3},{5643,2492,3},{5645,2488,3}, {5640,2483,3},{5640,2473,3},{5637,2465,3},{5633,2460,3},{5630,2458,3},{5627,2450,3}, {5625,2445,3},{5628,2437,3},{5630,2430,3},{5627,2420,3},{5627,2412,3},{5632,2403,3}, {5633,2395,3},{5633,2383,3},{5633,2380,3},{5632,2378,3},{5635,2377,3},{5637,2367,3}, {5633,2357,3},{5635,2347,3},{5638,2337,3},{5637,2325,3},{5637,2317,3},{5632,2313,3}, {5632,2303,3},{5640,2302,3},{5640,2298,3},{5642,2297,3},{5637,2288,3},{5637,2277,3}, {5637,2267,3},{5638,2258,3},{5640,2247,3},{5640,2237,3},{5640,2227,3},{5643,2215,3}, {5642,2205,3},{5642,2200,3},{5637,2193,3},{5637,2183,3},{5633,2175,3},{5632,2167,3}, {5630,2157,3},{5628,2147,3},{5623,2142,3},{5622,2133,3},{5617,2127,3},{5617,2123,3}, {5608,2122,3},{5608,2112,3},{5607,2107,3},{5525,2128,131},{5528,2127,3}, {5528,2128,3},{5533,2127,3},{5537,2125,3},{5533,2118,3},{5542,2125,3},{5547,2125,3}, {5568,2115,3},{5573,2108,3},{5578,2107,3},{5592,2105,3},{5607,2107,3},{5608,2112,3}, {5608,2122,3},{5617,2123,3},{5617,2127,3},{5622,2133,3},{5623,2142,3},{5628,2147,3}, {5630,2157,3},{5632,2167,3},{5633,2175,3},{5637,2183,3},{5637,2193,3},{5642,2200,3}, {5642,2205,3},{5643,2215,3},{5640,2227,3},{5640,2237,3},{5640,2247,3},{5638,2258,3}, {5637,2267,3},{5637,2277,3},{5637,2288,3},{5642,2297,3},{5640,2298,3},{5640,2302,3}, {5632,2303,3},{5632,2313,3},{5637,2317,3},{5637,2325,3},{5638,2337,3},{5635,2347,3}, {5633,2357,3},{5637,2367,3},{5635,2377,3},{5632,2378,3},{5633,2380,3},{5633,2383,3}, {5633,2395,3},{5632,2403,3},{5627,2412,3},{5627,2420,3},{5630,2430,3},{5628,2437,3}, {5625,2445,3},{5627,2450,3},{5630,2458,3},{5633,2460,3},{5637,2465,3},{5640,2473,3}, {5640,2483,3},{5645,2488,3},{5643,2492,3},{5642,2490,3},{5637,2495,3},{5632,2497,3}, {5628,2503,3},{5623,2507,3},{5618,2510,3},{5618,2515,3},{5618,2523,3},{5615,2532,3}, {5615,2537,3},{5615,2547,3},{5617,2555,3},{5613,2557,3},{5615,2568,3},{5610,2570,3}, {5608,2573,3},{5605,2582,3},{5600,2587,3},{5600,2590,3},{5598,2598,3},{5595,2605,3}, {5590,2610,3},{5583,2623,3},{5578,2625,3},{5573,2635,3},{5570,2638,3},{5570,2642,3}, {5567,2653,3},{5567,2662,3},{5562,2663,3},{5557,2660,3},{5552,2652,3},{5545,2655,3}, {5538,2657,3},{5537,2648,3},{5533,2648,3},{5533,2657,3},{5533,2667,3},{5533,2675,3}, {5532,2685,3},{5528,2685,3},{5527,2677,3},{5522,2673,3},{5520,2668,3},{5515,2665,3}, {5515,2655,3},{5517,2652,3},{5513,2647,3},{5515,2637,3},{5512,2627,3},{5503,2625,3}, {5498,2618,3},{5497,2610,3},{5495,2608,3},{5493,2603,3},{5495,2600,3},{5493,2590,3}, {5488,2585,3},{5483,2578,3},{5477,2573,3},{5472,2575,3},{5465,2573,3},{5460,2577,3}, {5455,2572,3},{5448,2565,3},{5442,2563,3},{5437,2558,3},{5435,2555,3},{5433,2557,3}, {5432,2567,3},{5432,2568,3},{5428,2575,3},{5423,2580,3},{5423,2578,3},{5418,2580,3}, {5415,2570,3},{5415,2560,3},{5417,2553,3},{5420,2558,3},{5428,2555,3},{5430,2552,3}, {5432,2552,3},{5430,2543,3},{5427,2533,3},{5427,2523,3},{5418,2515,3},{5413,2508,3}, {5413,2502,3},{5415,2493,3},{5413,2485,3},{5408,2480,3},{5403,2483,3},{5398,2482,3}, {5397,2473,3},{5395,2470,3},{5400,2472,3},{5400,2463,3},{5397,2452,3},{5392,2443,3}, {5392,2432,3},{5393,2422,3},{5397,2413,3},{5393,2403,3},{5397,2393,3},{5395,2390,3}, {5395,2385,3},{5393,2380,3},{5392,2383,3},{5390,2380,3},{5393,2375,3},{5392,2363,3}, {5395,2355,3},{5397,2350,3},{5400,2347,3},{5402,2352,3},{5405,2352,3},{5418,2345,3}, {5418,2342,3},{5425,2333,3},{5425,2323,3},{5428,2320,3},{5430,2315,3},{5430,2307,3}, {5432,2305,3},{5435,2307,3},{5435,2302,3},{5438,2300,3},{5440,2287,3},{5440,2282,3}, {5437,2278,3},{5440,2275,3},{5447,2270,3},{5453,2268,3},{5460,2268,3},{5462,2272,3}, {5467,2273,3},{5472,2273,3},{5477,2282,3},{5480,2288,3},{5485,2287,3},{5490,2285,3}, {5492,2280,3},{5495,2273,3},{5498,2267,3},{5497,2267,3},{5502,2262,3},{5507,2257,3}, {5507,2255,3},{5505,2247,3},{5507,2238,3},{5507,2228,3},{5505,2217,3},{5503,2207,3}, {5503,2205,3},{5508,2203,3},{5508,2200,3},{5508,2190,3},{5512,2182,3},{5515,2172,3}, {5518,2163,3},{5518,2152,3},{5523,2145,3},{5528,2138,3},{5528,2135,3},{5525,2128,3}, {5528,2093,131},{5542,2105,3},{5553,2110,3},{5572,2108,3},{5568,2113,3}, {5557,2113,3},{5543,2108,3},{5542,2110,3},{5537,2105,3},{5533,2105,3},{5528,2098,3}, {5528,2093,3},{5447,1960,131},{5455,1977,3},{5467,1990,3},{5470,1990,3}, {5472,1993,3},{5477,1997,3},{5487,1992,3},{5495,1997,3},{5495,2003,3},{5497,2027,3}, {5495,2030,3},{5495,2042,3},{5503,2063,3},{5517,2082,3},{5528,2093,3},{5528,2098,3}, {5527,2098,3},{5523,2090,3},{5515,2083,3},{5497,2053,3},{5493,2057,3},{5493,2078,3}, {5490,2087,3},{5490,2098,3},{5490,2107,3},{5490,2108,3},{5495,2125,3},{5520,2118,3}, {5520,2127,3},{5525,2128,3},{5528,2135,3},{5528,2138,3},{5523,2145,3},{5518,2152,3}, {5518,2163,3},{5515,2172,3},{5512,2182,3},{5508,2190,3},{5508,2200,3},{5508,2203,3}, {5503,2205,3},{5503,2207,3},{5505,2217,3},{5507,2228,3},{5507,2238,3},{5505,2247,3}, {5507,2255,3},{5507,2257,3},{5502,2262,3},{5497,2267,3},{5498,2267,3},{5495,2273,3}, {5492,2280,3},{5490,2285,3},{5485,2287,3},{5480,2288,3},{5477,2282,3},{5472,2273,3}, {5467,2273,3},{5462,2272,3},{5460,2268,3},{5453,2268,3},{5447,2270,3},{5440,2275,3}, {5437,2278,3},{5435,2263,3},{5435,2252,3},{5435,2243,3},{5435,2233,3},{5433,2225,3}, {5433,2215,3},{5433,2207,3},{5433,2198,3},{5433,2188,3},{5433,2180,3},{5433,2170,3}, {5433,2162,3},{5433,2153,3},{5433,2142,3},{5435,2073,3},{5442,2018,3},{5442,2005,3}, {5445,1968,3},{5447,1960,3},{4545,2822,131},{4552,2825,3},{4555,2832,3}, {4552,2840,3},{4548,2845,3},{4552,2852,3},{4557,2852,3},{4558,2855,3},{4562,2853,3}, {4567,2852,3},{4568,2850,3},{4572,2853,3},{4575,2860,3},{4577,2860,3},{4577,2863,3}, {4580,2872,3},{4582,2872,3},{4585,2878,3},{4590,2878,3},{4595,2877,3},{4598,2882,3}, {4600,2890,3},{4602,2898,3},{4607,2900,3},{4612,2897,3},{4615,2902,3},{4620,2905,3}, {4622,2903,3},{4628,2895,3},{4633,2898,3},{4638,2897,3},{4647,2895,3},{4650,2902,3}, {4652,2908,3},{4653,2918,3},{4655,2917,3},{4657,2925,3},{4652,2923,3},{4650,2927,3}, {4645,2923,3},{4640,2922,3},{4638,2925,3},{4638,2927,3},{4643,2932,3},{4645,2932,3}, {4650,2933,3},{4650,2935,3},{4648,2937,3},{4645,2942,3},{4647,2940,3},{4648,2947,3}, {4645,2950,3},{4642,2957,3},{4637,2960,3},{4637,2970,3},{4640,2968,3},{4645,2968,3}, {4645,2975,3},{4648,2975,3},{4647,2978,3},{4645,2980,3},{4643,2980,3},{4638,2982,3}, {4637,2990,3},{4640,2993,3},{4638,3000,3},{4640,3007,3},{4638,3010,3},{4643,3015,3}, {4642,3015,3},{4643,3007,3},{4647,3003,3},{4652,2997,3},{4650,2993,3},{4657,2992,3}, {4657,2995,3},{4660,2997,3},{4665,2995,3},{4670,2997,3},{4677,2998,3},{4682,2995,3}, {4683,2997,3},{4683,2993,3},{4683,2992,3},{4683,2990,3},{4688,2988,3},{4688,2987,3}, {4687,2982,3},{4687,2975,3},{4692,2973,3},{4693,2965,3},{4698,2960,3},{4703,2962,3}, {4705,2963,3},{4710,2962,3},{4708,2955,3},{4713,2952,3},{4715,2958,3},{4717,2958,3}, {4727,2957,3},{4727,2960,3},{4732,2960,3},{4738,2957,3},{4735,2950,3},{4733,2950,3}, {4730,2943,3},{4732,2940,3},{4738,2940,3},{4738,2937,3},{4738,2933,3},{4745,2932,3}, {4743,2925,3},{4745,2923,3},{4745,2918,3},{4747,2917,3},{4752,2918,3},{4750,2917,3}, {4757,2915,3},{4757,2917,3},{4760,2923,3},{4767,2922,3},{4772,2922,3},{4775,2927,3}, {4782,2928,3},{4780,2925,3},{4780,2923,3},{4785,2923,3},{4790,2928,3},{4790,2925,3}, {4788,2923,3},{4788,2922,3},{4795,2920,3},{4800,2918,3},{4798,2910,3},{4795,2908,3}, {4795,2905,3},{4797,2897,3},{4795,2893,3},{4800,2890,3},{4803,2885,3},{4807,2885,3}, {4812,2885,3},{4813,2878,3},{4813,2870,3},{4817,2863,3},{4817,2855,3},{4812,2852,3}, {4807,2850,3},{4810,2845,3},{4817,2843,3},{4818,2842,3},{4818,2838,3},{4813,2833,3}, {4813,2832,3},{4815,2832,3},{4820,2837,3},{4825,2835,3},{4823,2827,3},{4822,2820,3}, {4827,2817,3},{4823,2810,3},{4825,2808,3},{4830,2810,3},{4833,2802,3},{4833,2793,3}, {4838,2788,3},{4842,2783,3},{4847,2777,3},{4845,2768,3},{4847,2760,3},{4848,2760,3}, {4848,2758,3},{4847,2752,3},{4842,2745,3},{4842,2738,3},{4845,2735,3},{4843,2732,3}, {4838,2728,3},{4837,2723,3},{4840,2720,3},{4840,2712,3},{4843,2707,3},{4843,2705,3}, {4838,2705,3},{4837,2702,3},{4837,2693,3},{4843,2687,3},{4842,2682,3},{4840,2675,3}, {4838,2675,3},{4833,2683,3},{4832,2683,3},{4827,2678,3},{4828,2677,3},{4830,2677,3}, {4832,2675,3},{4835,2670,3},{4833,2668,3},{4830,2668,3},{4830,2665,3},{4825,2662,3}, {4825,2658,3},{4820,2653,3},{4822,2647,3},{4818,2640,3},{4818,2632,3},{4817,2632,3}, {4808,2627,3},{4807,2623,3},{4800,2620,3},{4798,2617,3},{4797,2585,3},{4793,2577,3}, {4793,2555,3},{4792,2533,3},{4788,2523,3},{4775,2512,3},{4772,2492,3},{4772,2490,3}, {4782,2482,3},{4785,2468,3},{4790,2467,3},{4793,2460,3},{4795,2442,3},{4793,2437,3}, {4793,2432,3},{4790,2423,3},{4792,2413,3},{4795,2405,3},{4797,2397,3},{4793,2387,3}, {4797,2383,3},{4798,2378,3},{4798,2367,3},{4802,2355,3},{4798,2348,3},{4800,2338,3}, {4805,2330,3},{4808,2327,3},{4812,2317,3},{4808,2312,3},{4802,2308,3},{4798,2303,3}, {4802,2295,3},{4797,2293,3},{4795,2290,3},{4798,2285,3},{4805,2288,3},{4812,2280,3}, {4810,2262,3},{4818,2257,3},{4820,2258,3},{4820,2255,3},{4825,2250,3},{4825,2238,3}, {4832,2232,3},{4837,2232,3},{4837,2227,3},{4840,2227,3},{4842,2215,3},{4848,2215,3}, {4852,2217,3},{4858,2217,3},{4862,2223,3},{4865,2225,3},{4868,2233,3},{4877,2235,3}, {4880,2238,3},{4885,2238,3},{4890,2243,3},{4898,2247,3},{4900,2253,3},{4908,2255,3}, {4910,2260,3},{4905,2265,3},{4905,2268,3},{4905,2277,3},{4900,2285,3},{4900,2288,3}, {4905,2287,3},{4908,2288,3},{4913,2278,3},{4915,2278,3},{4917,2270,3},{4928,2277,3}, {4938,2273,3},{4943,2268,3},{4948,2268,3},{4952,2265,3},{4957,2268,3},{4963,2275,3}, {4968,2278,3},{4970,2283,3},{4973,2288,3},{4977,2290,3},{4980,2295,3},{4983,2297,3}, {4985,2300,3},{4998,2315,3},{5020,2345,3},{5032,2368,3},{5038,2370,3},{5040,2382,3}, {5040,2400,3},{5047,2403,3},{5050,2403,3},{5055,2413,3},{5058,2410,3},{5063,2410,3}, {5068,2407,3},{5070,2408,3},{5072,2403,3},{5077,2402,3},{5077,2398,3},{5080,2395,3}, {5083,2397,3},{5083,2412,3},{5085,2415,3},{5090,2403,3},{5095,2397,3},{5098,2397,3}, {5100,2392,3},{5107,2390,3},{5110,2387,3},{5115,2387,3},{5122,2373,3},{5128,2370,3}, {5130,2363,3},{5133,2363,3},{5137,2368,3},{5140,2370,3},{5145,2363,3},{5148,2367,3}, {5150,2362,3},{5152,2368,3},{5157,2363,3},{5163,2365,3},{5167,2373,3},{5163,2382,3}, {5165,2390,3},{5158,2395,3},{5158,2397,3},{5158,2405,3},{5160,2410,3},{5165,2418,3}, {5173,2432,3},{5178,2437,3},{5183,2438,3},{5192,2438,3},{5193,2442,3},{5193,2453,3}, {5192,2467,3},{5190,2475,3},{5193,2483,3},{5192,2495,3},{5192,2503,3},{5195,2510,3}, {5197,2518,3},{5198,2528,3},{5197,2533,3},{5193,2542,3},{5193,2550,3},{5192,2560,3}, {5192,2572,3},{5195,2582,3},{5192,2590,3},{5192,2598,3},{5192,2607,3},{5190,2615,3}, {5188,2622,3},{5187,2633,3},{5187,2642,3},{5183,2645,3},{5180,2652,3},{5182,2655,3}, {5183,2663,3},{5182,2667,3},{5180,2677,3},{5178,2685,3},{5175,2695,3},{5178,2703,3}, {5178,2712,3},{5178,2720,3},{5177,2720,3},{5167,2720,3},{5167,2723,3},{5167,2727,3}, {5165,2727,3},{5160,2725,3},{5160,2727,3},{5162,2728,3},{5163,2740,3},{5162,2750,3}, {5167,2753,3},{5165,2753,3},{5165,2757,3},{5163,2765,3},{5160,2773,3},{5158,2773,3}, {5155,2768,3},{5150,2768,3},{5147,2775,3},{5153,2780,3},{5158,2783,3},{5163,2788,3}, {5162,2792,3},{5157,2792,3},{5157,2795,3},{5157,2805,3},{5162,2813,3},{5165,2818,3}, {5168,2828,3},{5163,2827,3},{5160,2835,3},{5155,2840,3},{5157,2843,3},{5158,2852,3}, {5157,2860,3},{5157,2868,3},{5152,2865,3},{5143,2868,3},{5145,2870,3},{5147,2873,3}, {5142,2878,3},{5143,2880,3},{5145,2880,3},{5150,2878,3},{5155,2883,3},{5158,2892,3}, {5158,2900,3},{5157,2900,3},{5158,2902,3},{5165,2913,3},{5163,2923,3},{5158,2922,3}, {5158,2925,3},{5152,2927,3},{5147,2928,3},{5140,2932,3},{5138,2937,3},{5142,2943,3}, {5140,2950,3},{5142,2953,3},{5147,2955,3},{5147,2958,3},{5150,2963,3},{5152,2973,3}, {5150,2973,3},{5145,2980,3},{5147,2988,3},{5148,2990,3},{5148,2995,3},{5150,3007,3}, {5152,3017,3},{5148,3023,3},{5145,3030,3},{5140,3037,3},{5135,3035,3},{5133,3038,3}, {5130,3047,3},{5128,3047,3},{5128,3050,3},{5125,3057,3},{5132,3058,3},{5133,3065,3}, {5137,3067,3},{5142,3063,3},{5143,3060,3},{5148,3062,3},{5150,3060,3},{5155,3058,3}, {5155,3055,3},{5158,3057,3},{5160,3052,3},{5162,3055,3},{5167,3058,3},{5172,3058,3}, {5172,3063,3},{5177,3065,3},{5178,3063,3},{5178,3067,3},{5183,3068,3},{5185,3070,3}, {5190,3077,3},{5190,3080,3},{5195,3083,3},{5198,3090,3},{5200,3090,3},{5202,3093,3}, {5207,3093,3},{5208,3100,3},{5210,3112,3},{5207,3120,3},{5205,3130,3},{5207,3132,3}, {5210,3135,3},{5213,3142,3},{5212,3150,3},{5212,3162,3},{5210,3170,3},{5210,3180,3}, {5210,3190,3},{5208,3193,3},{5203,3195,3},{5203,3197,3},{5205,3205,3},{5205,3213,3}, {5208,3223,3},{5210,3230,3},{5213,3237,3},{5218,3235,3},{5225,3238,3},{5230,3237,3}, {5233,3237,3},{5232,3247,3},{5232,3258,3},{5227,3268,3},{5225,3270,3},{5225,3280,3}, {5228,3283,3},{5225,3290,3},{5227,3298,3},{5230,3305,3},{5233,3313,3},{5238,3320,3}, {5235,3330,3},{5237,3338,3},{5235,3345,3},{5235,3350,3},{5235,3352,3},{5230,3355,3}, {5233,3362,3},{5235,3370,3},{5237,3382,3},{5230,3387,3},{5230,3392,3},{5225,3393,3}, {5222,3400,3},{5218,3407,3},{5215,3408,3},{5213,3413,3},{5208,3412,3},{5208,3408,3}, {5202,3410,3},{5197,3413,3},{5192,3422,3},{5192,3425,3},{5185,3427,3},{5185,3438,3}, {5183,3443,3},{5177,3445,3},{5173,3445,3},{5172,3433,3},{5170,3425,3},{5168,3413,3}, {5163,3413,3},{5160,3420,3},{5157,3427,3},{5152,3430,3},{5145,3427,3},{5140,3422,3}, {5137,3428,3},{5138,3432,3},{5132,3432,3},{5125,3427,3},{5125,3430,3},{5127,3438,3}, {5123,3445,3},{5125,3455,3},{5125,3463,3},{5125,3465,3},{5120,3468,3},{5118,3475,3}, {5118,3482,3},{5120,3490,3},{5123,3497,3},{5122,3505,3},{5122,3513,3},{5115,3513,3}, {5110,3518,3},{5105,3522,3},{5105,3528,3},{5107,3530,3},{5107,3542,3},{5103,3542,3}, {5102,3533,3},{5095,3535,3},{5093,3540,3},{5088,3538,3},{5082,3542,3},{5078,3548,3}, {5072,3548,3},{5067,3550,3},{5065,3542,3},{5060,3543,3},{5060,3542,3},{5052,3547,3}, {5048,3553,3},{5045,3560,3},{5038,3562,3},{5037,3570,3},{5040,3580,3},{5043,3582,3}, {5045,3598,3},{5045,3607,3},{5043,3618,3},{5042,3622,3},{5037,3627,3},{5035,3630,3}, {5030,3632,3},{5033,3643,3},{5030,3652,3},{5030,3660,3},{5028,3657,3},{5023,3662,3}, {5027,3668,3},{5032,3680,3},{5035,3693,3},{5035,3700,3},{5035,3710,3},{5035,3717,3}, {5038,3728,3},{5043,3735,3},{5043,3743,3},{5043,3747,3},{5038,3747,3},{5033,3753,3}, {5030,3762,3},{5030,3763,3},{5025,3763,3},{5018,3765,3},{5013,3772,3},{5008,3780,3}, {5005,3787,3},{5005,3792,3},{5000,3795,3},{4997,3802,3},{4995,3802,3},{4992,3805,3}, {4993,3812,3},{4993,3815,3},{4997,3822,3},{5005,3820,3},{5007,3820,3},{5008,3828,3}, {5008,3830,3},{5008,3833,3},{5003,3837,3},{5000,3837,3},{5000,3847,3},{4997,3853,3}, {4998,3862,3},{4997,3865,3},{4998,3868,3},{4998,3870,3},{4993,3870,3},{4990,3878,3}, {4987,3885,3},{4987,3893,3},{4982,3895,3},{4982,3903,3},{4983,3910,3},{4988,3917,3}, {4985,3922,3},{4977,3927,3},{4975,3935,3},{4977,3947,3},{4975,3958,3},{4973,3962,3}, {4967,3963,3},{4962,3968,3},{4957,3980,3},{4957,3990,3},{4960,3997,3},{4962,4005,3}, {4962,4015,3},{4957,4022,3},{4950,4022,3},{4945,4017,3},{4940,4017,3},{4932,4018,3}, {4925,4020,3},{4923,4013,3},{4918,4008,3},{4918,4003,3},{4912,3998,3},{4908,3995,3}, {4907,3993,3},{4907,3987,3},{4905,3978,3},{4907,3970,3},{4905,3967,3},{4900,3972,3}, {4893,3978,3},{4890,3983,3},{4883,3980,3},{4878,3977,3},{4873,3972,3},{4868,3972,3}, {4863,3968,3},{4860,3968,3},{4858,3977,3},{4858,3983,3},{4852,3987,3},{4850,3985,3}, {4847,3985,3},{4843,3990,3},{4838,3992,3},{4835,3992,3},{4832,3985,3},{4830,3993,3}, {4832,3998,3},{4827,4002,3},{4823,4002,3},{4822,3995,3},{4818,3995,3},{4813,3990,3}, {4808,3988,3},{4805,3982,3},{4800,3982,3},{4793,3980,3},{4788,3978,3},{4783,3975,3}, {4783,3965,3},{4783,3957,3},{4783,3953,3},{4787,3947,3},{4785,3943,3},{4788,3937,3}, {4787,3928,3},{4785,3920,3},{4783,3912,3},{4787,3903,3},{4787,3895,3},{4787,3887,3}, {4787,3883,3},{4782,3883,3},{4782,3880,3},{4775,3878,3},{4770,3878,3},{4768,3877,3}, {4770,3868,3},{4765,3863,3},{4763,3853,3},{4763,3845,3},{4762,3847,3},{4762,3838,3}, {4757,3833,3},{4753,3830,3},{4747,3830,3},{4742,3832,3},{4738,3830,3},{4737,3827,3}, {4732,3823,3},{4730,3823,3},{4730,3832,3},{4725,3833,3},{4723,3827,3},{4718,3823,3}, {4713,3823,3},{4712,3823,3},{4687,3703,3},{4680,3687,3},{4677,3687,3},{4663,3677,3}, {4665,3675,3},{4663,3677,3},{4668,3680,3},{4673,3680,3},{4677,3673,3},{4677,3662,3}, {4675,3658,3},{4675,3652,3},{4672,3638,3},{4662,3628,3},{4660,3627,3},{4662,3627,3}, {4660,3623,3},{4663,3623,3},{4667,3620,3},{4665,3612,3},{4667,3607,3},{4665,3590,3}, {4662,3582,3},{4658,3573,3},{4648,3563,3},{4645,3548,3},{4635,3537,3},{4613,3518,3}, {4607,3498,3},{4608,3498,3},{4612,3505,3},{4613,3505,3},{4618,3520,3},{4635,3535,3}, {4633,3530,3},{4635,3527,3},{4640,3527,3},{4643,3528,3},{4645,3523,3},{4650,3518,3}, {4647,3517,3},{4640,3522,3},{4630,3512,3},{4625,3505,3},{4623,3493,3},{4625,3490,3}, {4622,3488,3},{4618,3482,3},{4603,3483,3},{4593,3487,3},{4578,3495,3},{4565,3507,3}, {4542,3528,3},{4535,3537,3},{4528,3550,3},{4533,3572,3},{4542,3580,3},{4547,3582,3}, {4547,3585,3},{4545,3587,3},{4543,3585,3},{4540,3587,3},{4537,3595,3},{4535,3600,3}, {4537,3603,3},{4542,3607,3},{4547,3613,3},{4547,3630,3},{4543,3630,3},{4545,3635,3}, {4543,3640,3},{4543,3648,3},{4542,3652,3},{4540,3653,3},{4542,3660,3},{4538,3663,3}, {4535,3663,3},{4533,3660,3},{4533,3650,3},{4533,3648,3},{4528,3650,3},{4528,3643,3}, {4515,3640,3},{4508,3645,3},{4503,3637,3},{4503,3627,3},{4500,3622,3},{4503,3605,3}, {4500,3598,3},{4500,3593,3},{4498,3585,3},{4500,3583,3},{4505,3578,3},{4508,3572,3}, {4512,3563,3},{4512,3552,3},{4505,3540,3},{4502,3540,3},{4500,3543,3},{4498,3537,3}, {4495,3537,3},{4495,3525,3},{4492,3523,3},{4488,3515,3},{4478,3508,3},{4478,3505,3}, {4483,3500,3},{4483,3497,3},{4483,3492,3},{4482,3490,3},{4482,3487,3},{4482,3483,3}, {4482,3473,3},{4477,3465,3},{4475,3453,3},{4472,3445,3},{4463,3438,3},{4455,3433,3}, {4455,3427,3},{4450,3423,3},{4448,3418,3},{4443,3412,3},{4438,3393,3},{4438,3372,3}, {4443,3363,3},{4448,3358,3},{4448,3353,3},{4452,3347,3},{4458,3337,3},{4458,3340,3}, {4460,3343,3},{4462,3357,3},{4463,3352,3},{4470,3355,3},{4478,3352,3},{4483,3355,3}, {4485,3360,3},{4492,3362,3},{4510,3355,3},{4515,3345,3},{4518,3338,3},{4515,3325,3}, {4518,3322,3},{4520,3317,3},{4527,3307,3},{4535,3293,3},{4535,3288,3},{4535,3273,3}, {4532,3267,3},{4532,3258,3},{4533,3250,3},{4540,3248,3},{4547,3253,3},{4552,3263,3}, {4553,3270,3},{4555,3275,3},{4557,3283,3},{4560,3282,3},{4565,3290,3},{4573,3318,3}, {4577,3317,3},{4578,3317,3},{4575,3322,3},{4575,3325,3},{4585,3348,3},{4583,3355,3}, {4587,3357,3},{4588,3362,3},{4585,3368,3},{4590,3368,3},{4592,3377,3},{4593,3377,3}, {4595,3367,3},{4593,3362,3},{4597,3365,3},{4600,3363,3},{4602,3365,3},{4603,3363,3}, {4608,3365,3},{4615,3360,3},{4612,3353,3},{4610,3352,3},{4608,3355,3},{4607,3350,3}, {4605,3352,3},{4605,3343,3},{4608,3338,3},{4610,3333,3},{4608,3330,3},{4610,3332,3}, {4612,3332,3},{4613,3325,3},{4613,3322,3},{4615,3323,3},{4622,3323,3},{4617,3320,3}, {4613,3312,3},{4617,3303,3},{4613,3303,3},{4612,3302,3},{4612,3290,3},{4613,3277,3}, {4607,3252,3},{4613,3227,3},{4617,3225,3},{4620,3227,3},{4618,3223,3},{4620,3213,3}, {4625,3205,3},{4627,3197,3},{4630,3195,3},{4632,3188,3},{4628,3190,3},{4628,3180,3}, {4632,3177,3},{4635,3183,3},{4635,3198,3},{4638,3202,3},{4638,3207,3},{4642,3205,3}, {4645,3200,3},{4645,3193,3},{4648,3178,3},{4650,3172,3},{4648,3170,3},{4643,3168,3}, {4647,3167,3},{4655,3153,3},{4658,3152,3},{4655,3158,3},{4655,3177,3},{4652,3187,3}, {4652,3210,3},{4647,3235,3},{4648,3242,3},{4650,3240,3},{4653,3242,3},{4658,3252,3}, {4660,3258,3},{4663,3263,3},{4665,3263,3},{4662,3255,3},{4657,3240,3},{4655,3232,3}, {4660,3223,3},{4657,3213,3},{4662,3212,3},{4663,3202,3},{4677,3193,3},{4682,3193,3}, {4685,3198,3},{4692,3202,3},{4693,3200,3},{4693,3195,3},{4695,3193,3},{4700,3198,3}, {4702,3187,3},{4710,3190,3},{4713,3185,3},{4718,3183,3},{4722,3175,3},{4725,3175,3}, {4725,3173,3},{4722,3173,3},{4718,3180,3},{4717,3182,3},{4712,3182,3},{4708,3187,3}, {4703,3183,3},{4700,3185,3},{4698,3188,3},{4700,3193,3},{4693,3190,3},{4692,3197,3}, {4685,3195,3},{4683,3188,3},{4680,3187,3},{4673,3192,3},{4665,3190,3},{4663,3187,3}, {4662,3182,3},{4665,3163,3},{4663,3158,3},{4660,3157,3},{4663,3148,3},{4665,3148,3}, {4667,3152,3},{4677,3157,3},{4682,3162,3},{4682,3160,3},{4678,3158,3},{4677,3153,3}, {4673,3152,3},{4675,3147,3},{4680,3145,3},{4675,3145,3},{4672,3150,3},{4662,3142,3}, {4660,3133,3},{4663,3118,3},{4662,3107,3},{4655,3085,3},{4655,3078,3},{4650,3075,3}, {4645,3080,3},{4638,3077,3},{4635,3072,3},{4633,3072,3},{4635,3065,3},{4632,3068,3}, {4625,3067,3},{4613,3052,3},{4608,3050,3},{4598,3033,3},{4587,3025,3},{4582,3013,3}, {4587,3013,3},{4590,3012,3},{4585,3010,3},{4582,3010,3},{4582,3008,3},{4580,3007,3}, {4583,3003,3},{4585,2997,3},{4580,2997,3},{4577,2995,3},{4582,2993,3},{4580,2992,3}, {4572,2993,3},{4577,2988,3},{4573,2980,3},{4572,2980,3},{4567,2987,3},{4565,2982,3}, {4565,2978,3},{4563,2978,3},{4562,2973,3},{4565,2973,3},{4570,2968,3},{4578,2970,3}, {4580,2968,3},{4582,2963,3},{4578,2965,3},{4573,2962,3},{4572,2963,3},{4568,2960,3}, {4557,2960,3},{4555,2960,3},{4553,2967,3},{4557,2970,3},{4547,2960,3},{4543,2965,3}, {4547,2967,3},{4545,2968,3},{4547,2970,3},{4543,2972,3},{4547,2973,3},{4542,2975,3}, {4542,2973,3},{4540,2975,3},{4532,2977,3},{4525,2973,3},{4523,2973,3},{4522,2972,3}, {4522,2970,3},{4522,2967,3},{4528,2967,3},{4535,2965,3},{4538,2958,3},{4543,2942,3}, {4543,2932,3},{4543,2930,3},{4543,2922,3},{4538,2917,3},{4537,2908,3},{4532,2902,3}, {4532,2897,3},{4528,2893,3},{4532,2880,3},{4528,2880,3},{4527,2875,3},{4523,2880,3}, {4522,2870,3},{4525,2857,3},{4532,2835,3},{4538,2828,3},{4543,2828,3},{4545,2822,3}, {5087,1483,131},{5088,1482,3},{5093,1490,3},{5105,1497,3},{5127,1503,3}, {5135,1497,3},{5143,1498,3},{5147,1495,3},{5153,1473,3},{5155,1472,3},{5160,1477,3}, {5167,1475,3},{5172,1467,3},{5178,1465,3},{5182,1460,3},{5185,1462,3},{5190,1470,3}, {5195,1472,3},{5200,1472,3},{5207,1477,3},{5212,1468,3},{5223,1472,3},{5228,1458,3}, {5238,1453,3},{5243,1455,3},{5243,1458,3},{5248,1463,3},{5253,1462,3},{5257,1463,3}, {5262,1460,3},{5265,1448,3},{5275,1435,3},{5277,1430,3},{5282,1422,3},{5283,1415,3}, {5285,1413,3},{5288,1417,3},{5297,1415,3},{5305,1435,3},{5313,1438,3},{5320,1438,3}, {5327,1445,3},{5330,1442,3},{5345,1438,3},{5355,1430,3},{5362,1432,3},{5367,1428,3}, {5373,1427,3},{5370,1422,3},{5370,1430,3},{5373,1428,3},{5373,1433,3},{5368,1442,3}, {5367,1453,3},{5360,1460,3},{5365,1462,3},{5367,1457,3},{5370,1453,3},{5375,1457,3}, {5377,1462,3},{5385,1463,3},{5380,1458,3},{5385,1457,3},{5387,1443,3},{5390,1443,3}, {5390,1438,3},{5388,1437,3},{5387,1442,3},{5385,1442,3},{5382,1433,3},{5380,1435,3}, {5387,1422,3},{5393,1423,3},{5392,1442,3},{5397,1452,3},{5403,1475,3},{5405,1493,3}, {5415,1532,3},{5420,1565,3},{5425,1585,3},{5427,1605,3},{5428,1613,3},{5427,1607,3}, {5427,1617,3},{5427,1622,3},{5428,1622,3},{5430,1620,3},{5428,1613,3},{5435,1627,3}, {5432,1623,3},{5432,1625,3},{5435,1633,3},{5438,1632,3},{5437,1628,3},{5448,1643,3}, {5447,1643,3},{5447,1647,3},{5450,1648,3},{5450,1645,3},{5455,1655,3},{5460,1692,3}, {5467,1707,3},{5473,1727,3},{5477,1758,3},{5483,1792,3},{5483,1833,3},{5470,1870,3}, {5463,1883,3},{5460,1882,3},{5470,1870,3},{5478,1843,3},{5473,1840,3},{5470,1848,3}, {5463,1847,3},{5463,1850,3},{5463,1852,3},{5455,1857,3},{5445,1857,3},{5443,1860,3}, {5442,1867,3},{5438,1872,3},{5435,1888,3},{5435,1905,3},{5438,1942,3},{5440,1952,3}, {5447,1960,3},{5445,1968,3},{5442,2005,3},{5442,2018,3},{5435,2073,3},{5433,2142,3}, {5433,2153,3},{5433,2162,3},{5433,2170,3},{5433,2180,3},{5433,2188,3},{5433,2198,3}, {5433,2207,3},{5433,2215,3},{5433,2225,3},{5435,2233,3},{5435,2243,3},{5435,2252,3}, {5435,2263,3},{5437,2278,3},{5440,2282,3},{5440,2287,3},{5438,2300,3},{5435,2302,3}, {5435,2307,3},{5432,2305,3},{5430,2307,3},{5430,2315,3},{5428,2320,3},{5425,2323,3}, {5425,2333,3},{5418,2342,3},{5418,2345,3},{5405,2352,3},{5402,2352,3},{5400,2347,3}, {5397,2350,3},{5378,2355,3},{5375,2358,3},{5363,2362,3},{5348,2367,3},{5340,2375,3}, {5325,2382,3},{5323,2385,3},{5320,2387,3},{5317,2392,3},{5308,2388,3},{5302,2393,3}, {5297,2393,3},{5292,2392,3},{5288,2393,3},{5273,2393,3},{5268,2390,3},{5262,2375,3}, {5262,2368,3},{5260,2360,3},{5252,2340,3},{5228,2317,3},{5228,2318,3},{5223,2320,3}, {5223,2330,3},{5222,2330,3},{5220,2338,3},{5218,2338,3},{5217,2343,3},{5218,2345,3}, {5217,2350,3},{5215,2348,3},{5212,2352,3},{5212,2360,3},{5208,2363,3},{5198,2367,3}, {5195,2363,3},{5192,2362,3},{5190,2363,3},{5183,2360,3},{5180,2363,3},{5178,2362,3}, {5175,2355,3},{5167,2355,3},{5165,2353,3},{5155,2357,3},{5152,2360,3},{5150,2362,3}, {5148,2367,3},{5145,2363,3},{5140,2370,3},{5137,2368,3},{5133,2363,3},{5130,2363,3}, {5128,2370,3},{5122,2373,3},{5115,2387,3},{5110,2387,3},{5107,2390,3},{5100,2392,3}, {5098,2397,3},{5095,2397,3},{5090,2403,3},{5085,2415,3},{5083,2412,3},{5083,2397,3}, {5080,2395,3},{5077,2398,3},{5077,2402,3},{5072,2403,3},{5070,2408,3},{5068,2407,3}, {5063,2410,3},{5058,2410,3},{5055,2413,3},{5050,2403,3},{5047,2403,3},{5040,2400,3}, {5040,2382,3},{5038,2370,3},{5032,2368,3},{5020,2345,3},{4998,2315,3},{4985,2300,3}, {4983,2297,3},{4980,2295,3},{4977,2290,3},{4973,2288,3},{4970,2283,3},{4968,2278,3}, {4963,2275,3},{4957,2268,3},{4952,2265,3},{4948,2268,3},{4943,2268,3},{4938,2273,3}, {4928,2277,3},{4917,2270,3},{4915,2278,3},{4913,2278,3},{4908,2288,3},{4905,2287,3}, {4900,2288,3},{4900,2285,3},{4905,2277,3},{4905,2268,3},{4905,2265,3},{4910,2260,3}, {4908,2255,3},{4910,2242,3},{4913,2235,3},{4915,2223,3},{4918,2223,3},{4922,2203,3}, {4928,2202,3},{4933,2197,3},{4933,2193,3},{4938,2183,3},{4938,2180,3},{4935,2178,3}, {4938,2175,3},{4942,2170,3},{4943,2162,3},{4942,2143,3},{4945,2128,3},{4940,2120,3}, {4943,2113,3},{4942,2107,3},{4940,2105,3},{4937,2110,3},{4937,2103,3},{4930,2098,3}, {4930,2092,3},{4933,2087,3},{4933,2082,3},{4942,2070,3},{4940,2065,3},{4942,2062,3}, {4938,2057,3},{4942,2045,3},{4938,2043,3},{4938,2040,3},{4940,2038,3},{4940,2033,3}, {4935,2032,3},{4933,2020,3},{4930,2017,3},{4932,2015,3},{4917,2008,3},{4922,2000,3}, {4923,1995,3},{4923,1992,3},{4920,1985,3},{4920,1978,3},{4922,1977,3},{4923,1977,3}, {4928,1983,3},{4930,1980,3},{4935,1980,3},{4940,1978,3},{4938,1973,3},{4940,1963,3}, {4945,1965,3},{4945,1958,3},{4957,1953,3},{4962,1947,3},{4957,1938,3},{4953,1937,3}, {4953,1928,3},{4952,1925,3},{4945,1923,3},{4943,1920,3},{4942,1920,3},{4940,1912,3}, {4942,1908,3},{4942,1907,3},{4940,1903,3},{4940,1897,3},{4950,1898,3},{4952,1885,3}, {4955,1887,3},{4962,1883,3},{4967,1882,3},{4968,1878,3},{4968,1875,3},{4970,1872,3}, {4972,1863,3},{4982,1857,3},{4987,1862,3},{4987,1858,3},{4992,1858,3},{4990,1853,3}, {4992,1847,3},{4993,1845,3},{4993,1835,3},{4992,1832,3},{4997,1827,3},{4997,1822,3}, {4998,1820,3},{5000,1812,3},{5003,1810,3},{5007,1805,3},{5005,1802,3},{5003,1802,3}, {5003,1805,3},{5000,1805,3},{5000,1797,3},{4998,1792,3},{4998,1783,3},{5008,1773,3}, {5010,1775,3},{5012,1768,3},{5010,1768,3},{5010,1765,3},{5015,1760,3},{5017,1762,3}, {5018,1770,3},{5020,1772,3},{5020,1777,3},{5023,1777,3},{5027,1773,3},{5030,1775,3}, {5032,1772,3},{5032,1770,3},{5030,1770,3},{5027,1765,3},{5027,1748,3},{5025,1745,3}, {5028,1740,3},{5028,1738,3},{5027,1737,3},{5027,1735,3},{5032,1733,3},{5032,1735,3}, {5032,1728,3},{5035,1722,3},{5038,1720,3},{5038,1715,3},{5040,1712,3},{5040,1705,3}, {5043,1690,3},{5042,1687,3},{5037,1692,3},{5032,1695,3},{5028,1702,3},{5022,1702,3}, {5023,1698,3},{5022,1697,3},{5022,1690,3},{5020,1688,3},{5020,1685,3},{5013,1678,3}, {5010,1672,3},{5012,1662,3},{5017,1657,3},{5023,1655,3},{5023,1652,3},{5032,1645,3}, {5032,1640,3},{5038,1637,3},{5037,1628,3},{5038,1627,3},{5042,1625,3},{5042,1622,3}, {5043,1620,3},{5045,1622,3},{5048,1630,3},{5050,1632,3},{5050,1637,3},{5053,1640,3}, {5057,1642,3},{5057,1645,3},{5060,1643,3},{5067,1633,3},{5067,1623,3},{5063,1622,3}, {5063,1618,3},{5067,1612,3},{5060,1605,3},{5060,1602,3},{5060,1600,3},{5063,1602,3}, {5068,1598,3},{5067,1587,3},{5075,1580,3},{5073,1575,3},{5073,1568,3},{5075,1568,3}, {5077,1560,3},{5078,1552,3},{5082,1543,3},{5078,1540,3},{5078,1538,3},{5083,1537,3}, {5085,1532,3},{5088,1528,3},{5093,1527,3},{5095,1530,3},{5100,1523,3},{5098,1518,3}, {5102,1517,3},{5102,1515,3},{5098,1513,3},{5102,1507,3},{5102,1505,3},{5103,1502,3}, {5100,1498,3},{5098,1498,3},{5098,1502,3},{5097,1502,3},{5092,1500,3},{5087,1500,3}, {5087,1483,3},{4800,1715,131},{4803,1715,3},{4803,1708,3},{4808,1708,3}, {4810,1710,3},{4815,1707,3},{4815,1703,3},{4817,1698,3},{4828,1695,3},{4828,1692,3}, {4833,1690,3},{4837,1683,3},{4847,1687,3},{4855,1695,3},{4860,1695,3},{4863,1700,3}, {4868,1702,3},{4873,1705,3},{4877,1710,3},{4882,1713,3},{4885,1720,3},{4887,1727,3}, {4885,1730,3},{4885,1733,3},{4883,1735,3},{4883,1738,3},{4885,1747,3},{4883,1753,3}, {4885,1762,3},{4887,1768,3},{4890,1775,3},{4892,1782,3},{4893,1790,3},{4898,1792,3}, {4902,1797,3},{4903,1805,3},{4907,1812,3},{4910,1817,3},{4915,1818,3},{4920,1818,3}, {4923,1818,3},{4927,1823,3},{4928,1832,3},{4932,1838,3},{4935,1843,3},{4937,1843,3}, {4940,1850,3},{4943,1855,3},{4948,1858,3},{4950,1867,3},{4950,1873,3},{4950,1882,3}, {4952,1885,3},{4950,1898,3},{4940,1897,3},{4940,1903,3},{4942,1907,3},{4942,1908,3}, {4940,1912,3},{4942,1920,3},{4943,1920,3},{4945,1923,3},{4952,1925,3},{4953,1928,3}, {4953,1937,3},{4957,1938,3},{4962,1947,3},{4957,1953,3},{4945,1958,3},{4945,1965,3}, {4940,1963,3},{4938,1973,3},{4940,1978,3},{4935,1980,3},{4930,1980,3},{4928,1983,3}, {4923,1977,3},{4922,1977,3},{4920,1978,3},{4920,1985,3},{4923,1992,3},{4923,1995,3}, {4922,2000,3},{4917,2008,3},{4932,2015,3},{4930,2017,3},{4933,2020,3},{4935,2032,3}, {4940,2033,3},{4940,2038,3},{4938,2040,3},{4938,2043,3},{4942,2045,3},{4938,2057,3}, {4942,2062,3},{4940,2065,3},{4942,2070,3},{4933,2082,3},{4933,2087,3},{4930,2092,3}, {4930,2098,3},{4937,2103,3},{4937,2110,3},{4940,2105,3},{4942,2107,3},{4943,2113,3}, {4940,2120,3},{4945,2128,3},{4942,2143,3},{4943,2162,3},{4942,2170,3},{4938,2175,3}, {4935,2178,3},{4938,2180,3},{4938,2183,3},{4933,2193,3},{4933,2197,3},{4928,2202,3}, {4922,2203,3},{4918,2223,3},{4915,2223,3},{4913,2235,3},{4910,2242,3},{4908,2255,3}, {4900,2253,3},{4898,2247,3},{4890,2243,3},{4885,2238,3},{4880,2238,3},{4877,2235,3}, {4868,2233,3},{4865,2225,3},{4862,2223,3},{4858,2217,3},{4852,2217,3},{4848,2215,3}, {4842,2215,3},{4838,2210,3},{4838,2193,3},{4837,2185,3},{4833,2182,3},{4833,2178,3}, {4837,2172,3},{4845,2163,3},{4850,2162,3},{4850,2155,3},{4855,2152,3},{4857,2145,3}, {4855,2132,3},{4852,2128,3},{4853,2123,3},{4852,2117,3},{4848,2112,3},{4852,2107,3}, {4852,2095,3},{4855,2092,3},{4855,2087,3},{4858,2082,3},{4853,2050,3},{4848,2050,3}, {4843,2043,3},{4835,2040,3},{4828,2033,3},{4827,2030,3},{4825,2028,3},{4828,2025,3}, {4827,2023,3},{4827,2015,3},{4822,2013,3},{4813,1992,3},{4815,1988,3},{4815,1978,3}, {4820,1978,3},{4820,1970,3},{4823,1967,3},{4823,1963,3},{4820,1952,3},{4808,1947,3}, {4808,1937,3},{4807,1927,3},{4805,1923,3},{4805,1907,3},{4807,1903,3},{4805,1895,3}, {4805,1885,3},{4800,1882,3},{4798,1875,3},{4797,1877,3},{4788,1877,3},{4783,1885,3}, {4782,1885,3},{4782,1875,3},{4777,1867,3},{4777,1855,3},{4775,1850,3},{4777,1845,3}, {4773,1830,3},{4777,1798,3},{4775,1778,3},{4777,1772,3},{4783,1762,3},{4783,1757,3}, {4787,1753,3},{4788,1747,3},{4800,1733,3},{4800,1727,3},{4803,1723,3},{4802,1718,3}, {4800,1715,3},{4877,1383,131},{4878,1382,3},{4880,1382,3},{4888,1373,3}, {4888,1368,3},{4890,1365,3},{4895,1363,3},{4898,1352,3},{4895,1348,3},{4898,1340,3}, {4905,1340,3},{4910,1332,3},{4913,1318,3},{4917,1318,3},{4920,1312,3},{4925,1308,3}, {4927,1303,3},{4930,1303,3},{4933,1297,3},{4935,1288,3},{4933,1288,3},{4933,1280,3}, {4940,1275,3},{4943,1267,3},{4947,1263,3},{4952,1263,3},{4953,1260,3},{4962,1257,3}, {4963,1252,3},{4968,1252,3},{4970,1245,3},{4973,1240,3},{4977,1240,3},{4978,1247,3}, {4983,1247,3},{4983,1250,3},{4992,1255,3},{4993,1248,3},{4997,1250,3},{4998,1247,3}, {4998,1243,3},{5003,1235,3},{5005,1227,3},{5008,1225,3},{5010,1220,3},{5013,1220,3}, {5017,1222,3},{5020,1218,3},{5023,1215,3},{5025,1210,3},{5028,1213,3},{5030,1212,3}, {5032,1210,3},{5032,1218,3},{5027,1220,3},{5027,1225,3},{5025,1225,3},{5022,1228,3}, {5018,1228,3},{5017,1232,3},{5023,1233,3},{5023,1235,3},{5028,1237,3},{5030,1240,3}, {5032,1240,3},{5035,1248,3},{5037,1248,3},{5040,1252,3},{5042,1262,3},{5042,1267,3}, {5040,1270,3},{5043,1275,3},{5045,1278,3},{5043,1282,3},{5045,1282,3},{5042,1293,3}, {5042,1298,3},{5045,1302,3},{5050,1303,3},{5052,1313,3},{5050,1318,3},{5058,1325,3}, {5057,1328,3},{5058,1332,3},{5063,1338,3},{5062,1342,3},{5060,1347,3},{5063,1352,3}, {5065,1352,3},{5067,1355,3},{5070,1353,3},{5070,1355,3},{5073,1377,3},{5072,1387,3}, {5075,1390,3},{5078,1390,3},{5078,1395,3},{5082,1398,3},{5080,1403,3},{5082,1407,3}, {5085,1420,3},{5088,1425,3},{5090,1440,3},{5093,1440,3},{5095,1432,3},{5097,1430,3}, {5098,1432,3},{5098,1425,3},{5105,1430,3},{5102,1442,3},{5103,1445,3},{5102,1448,3}, {5105,1450,3},{5102,1450,3},{5100,1457,3},{5098,1460,3},{5092,1457,3},{5093,1465,3}, {5085,1462,3},{5083,1472,3},{5082,1472,3},{5082,1480,3},{5087,1483,3},{5087,1500,3}, {5092,1500,3},{5097,1502,3},{5098,1502,3},{5098,1498,3},{5100,1498,3},{5103,1502,3}, {5102,1505,3},{5102,1507,3},{5098,1513,3},{5102,1515,3},{5102,1517,3},{5098,1518,3}, {5100,1523,3},{5095,1530,3},{5093,1527,3},{5088,1528,3},{5085,1532,3},{5083,1537,3}, {5078,1538,3},{5078,1540,3},{5082,1543,3},{5078,1552,3},{5077,1560,3},{5075,1568,3}, {5073,1568,3},{5073,1575,3},{5075,1580,3},{5067,1587,3},{5068,1598,3},{5063,1602,3}, {5060,1600,3},{5060,1602,3},{5060,1605,3},{5067,1612,3},{5063,1618,3},{5063,1622,3}, {5067,1623,3},{5067,1633,3},{5060,1643,3},{5057,1645,3},{5057,1642,3},{5053,1640,3}, {5050,1637,3},{5050,1632,3},{5048,1630,3},{5045,1622,3},{5043,1620,3},{5042,1622,3}, {5042,1625,3},{5038,1627,3},{5037,1628,3},{5038,1637,3},{5032,1640,3},{5032,1645,3}, {5023,1652,3},{5023,1655,3},{5017,1657,3},{5012,1662,3},{5010,1672,3},{5013,1678,3}, {5020,1685,3},{5020,1688,3},{5022,1690,3},{5022,1697,3},{5023,1698,3},{5022,1702,3}, {5028,1702,3},{5032,1695,3},{5037,1692,3},{5042,1687,3},{5043,1690,3},{5040,1705,3}, {5040,1712,3},{5038,1715,3},{5038,1720,3},{5035,1722,3},{5032,1728,3},{5032,1735,3}, {5032,1733,3},{5027,1735,3},{5027,1737,3},{5028,1738,3},{5028,1740,3},{5025,1745,3}, {5027,1748,3},{5027,1765,3},{5030,1770,3},{5032,1770,3},{5032,1772,3},{5030,1775,3}, {5027,1773,3},{5023,1777,3},{5020,1777,3},{5020,1772,3},{5018,1770,3},{5017,1762,3}, {5015,1760,3},{5010,1765,3},{5010,1768,3},{5012,1768,3},{5010,1775,3},{5008,1773,3}, {4998,1783,3},{4998,1792,3},{5000,1797,3},{5000,1805,3},{5003,1805,3},{5003,1802,3}, {5005,1802,3},{5007,1805,3},{5003,1810,3},{5000,1812,3},{4998,1820,3},{4997,1822,3}, {4997,1827,3},{4992,1832,3},{4993,1835,3},{4993,1845,3},{4992,1847,3},{4990,1853,3}, {4992,1858,3},{4987,1858,3},{4987,1862,3},{4982,1857,3},{4972,1863,3},{4970,1872,3}, {4968,1875,3},{4968,1878,3},{4967,1882,3},{4962,1883,3},{4955,1887,3},{4952,1885,3}, {4950,1882,3},{4950,1873,3},{4950,1867,3},{4948,1858,3},{4943,1855,3},{4940,1850,3}, {4937,1843,3},{4935,1843,3},{4932,1838,3},{4928,1832,3},{4927,1823,3},{4923,1818,3}, {4920,1818,3},{4915,1818,3},{4910,1817,3},{4907,1812,3},{4903,1805,3},{4902,1797,3}, {4898,1792,3},{4893,1790,3},{4892,1782,3},{4890,1775,3},{4887,1768,3},{4885,1762,3}, {4883,1753,3},{4885,1747,3},{4883,1738,3},{4883,1735,3},{4885,1733,3},{4885,1730,3}, {4887,1727,3},{4885,1720,3},{4882,1713,3},{4877,1710,3},{4873,1705,3},{4868,1702,3}, {4863,1700,3},{4860,1695,3},{4855,1695,3},{4870,1692,3},{4873,1688,3},{4872,1683,3}, {4875,1672,3},{4873,1670,3},{4878,1665,3},{4878,1660,3},{4882,1653,3},{4882,1647,3}, {4875,1642,3},{4873,1637,3},{4875,1633,3},{4873,1633,3},{4875,1610,3},{4880,1597,3}, {4883,1595,3},{4883,1590,3},{4885,1590,3},{4885,1588,3},{4887,1588,3},{4887,1585,3}, {4888,1583,3},{4887,1568,3},{4890,1562,3},{4892,1552,3},{4895,1547,3},{4895,1543,3}, {4898,1537,3},{4898,1532,3},{4900,1528,3},{4895,1527,3},{4895,1517,3},{4900,1515,3}, {4902,1503,3},{4902,1500,3},{4898,1498,3},{4892,1500,3},{4882,1495,3},{4877,1497,3}, {4878,1482,3},{4873,1480,3},{4868,1473,3},{4860,1472,3},{4858,1470,3},{4858,1467,3}, {4860,1467,3},{4860,1463,3},{4863,1462,3},{4862,1457,3},{4865,1447,3},{4860,1443,3}, {4860,1438,3},{4855,1433,3},{4857,1433,3},{4860,1420,3},{4860,1407,3},{4863,1402,3}, {4867,1405,3},{4872,1400,3},{4877,1383,3},{4545,2822,131},{4547,2818,3}, {4553,2817,3},{4555,2815,3},{4558,2807,3},{4562,2810,3},{4562,2817,3},{4567,2817,3}, {4577,2815,3},{4578,2812,3},{4582,2812,3},{4587,2813,3},{4600,2808,3},{4607,2808,3}, {4618,2815,3},{4622,2812,3},{4623,2812,3},{4623,2813,3},{4627,2813,3},{4628,2818,3}, {4630,2820,3},{4633,2818,3},{4643,2825,3},{4647,2825,3},{4650,2822,3},{4660,2825,3}, {4667,2823,3},{4683,2812,3},{4688,2812,3},{4690,2810,3},{4692,2810,3},{4698,2808,3}, {4703,2803,3},{4705,2795,3},{4707,2795,3},{4712,2785,3},{4713,2785,3},{4713,2780,3}, {4717,2782,3},{4728,2773,3},{4730,2763,3},{4737,2757,3},{4740,2758,3},{4742,2757,3}, {4745,2758,3},{4747,2755,3},{4748,2748,3},{4757,2743,3},{4758,2738,3},{4765,2730,3}, {4770,2727,3},{4772,2728,3},{4773,2730,3},{4782,2722,3},{4782,2725,3},{4783,2725,3}, {4785,2722,3},{4790,2722,3},{4792,2715,3},{4793,2717,3},{4795,2715,3},{4798,2717,3}, {4798,2713,3},{4800,2713,3},{4802,2708,3},{4803,2712,3},{4803,2707,3},{4808,2703,3}, {4812,2705,3},{4813,2697,3},{4815,2697,3},{4815,2700,3},{4817,2695,3},{4818,2695,3}, {4820,2693,3},{4818,2690,3},{4820,2690,3},{4822,2687,3},{4822,2683,3},{4825,2683,3}, {4825,2675,3},{4827,2673,3},{4825,2672,3},{4827,2670,3},{4825,2668,3},{4825,2662,3}, {4830,2665,3},{4830,2668,3},{4833,2668,3},{4835,2670,3},{4832,2675,3},{4830,2677,3}, {4828,2677,3},{4827,2678,3},{4832,2683,3},{4833,2683,3},{4838,2675,3},{4840,2675,3}, {4842,2682,3},{4843,2687,3},{4837,2693,3},{4837,2702,3},{4838,2705,3},{4843,2705,3}, {4843,2707,3},{4840,2712,3},{4840,2720,3},{4837,2723,3},{4838,2728,3},{4843,2732,3}, {4845,2735,3},{4842,2738,3},{4842,2745,3},{4847,2752,3},{4848,2758,3},{4848,2760,3}, {4847,2760,3},{4845,2768,3},{4847,2777,3},{4842,2783,3},{4838,2788,3},{4833,2793,3}, {4833,2802,3},{4830,2810,3},{4825,2808,3},{4823,2810,3},{4827,2817,3},{4822,2820,3}, {4823,2827,3},{4825,2835,3},{4820,2837,3},{4815,2832,3},{4813,2832,3},{4813,2833,3}, {4818,2838,3},{4818,2842,3},{4817,2843,3},{4810,2845,3},{4807,2850,3},{4812,2852,3}, {4817,2855,3},{4817,2863,3},{4813,2870,3},{4813,2878,3},{4812,2885,3},{4807,2885,3}, {4803,2885,3},{4800,2890,3},{4795,2893,3},{4797,2897,3},{4795,2905,3},{4795,2908,3}, {4798,2910,3},{4800,2918,3},{4795,2920,3},{4788,2922,3},{4788,2923,3},{4790,2925,3}, {4790,2928,3},{4785,2923,3},{4780,2923,3},{4780,2925,3},{4782,2928,3},{4775,2927,3}, {4772,2922,3},{4767,2922,3},{4760,2923,3},{4757,2917,3},{4757,2915,3},{4750,2917,3}, {4752,2918,3},{4747,2917,3},{4745,2918,3},{4745,2923,3},{4743,2925,3},{4745,2932,3}, {4738,2933,3},{4738,2937,3},{4738,2940,3},{4732,2940,3},{4730,2943,3},{4733,2950,3}, {4735,2950,3},{4738,2957,3},{4732,2960,3},{4727,2960,3},{4727,2957,3},{4717,2958,3}, {4715,2958,3},{4713,2952,3},{4708,2955,3},{4710,2962,3},{4705,2963,3},{4703,2962,3}, {4698,2960,3},{4693,2965,3},{4692,2973,3},{4687,2975,3},{4687,2982,3},{4688,2987,3}, {4688,2988,3},{4683,2990,3},{4683,2992,3},{4683,2993,3},{4683,2997,3},{4682,2995,3}, {4677,2998,3},{4670,2997,3},{4665,2995,3},{4660,2997,3},{4657,2995,3},{4657,2992,3}, {4650,2993,3},{4652,2997,3},{4647,3003,3},{4643,3007,3},{4642,3015,3},{4643,3015,3}, {4638,3010,3},{4640,3007,3},{4638,3000,3},{4640,2993,3},{4637,2990,3},{4638,2982,3}, {4643,2980,3},{4645,2980,3},{4647,2978,3},{4648,2975,3},{4645,2975,3},{4645,2968,3}, {4640,2968,3},{4637,2970,3},{4637,2960,3},{4642,2957,3},{4645,2950,3},{4648,2947,3}, {4647,2940,3},{4645,2942,3},{4648,2937,3},{4650,2935,3},{4650,2933,3},{4645,2932,3}, {4643,2932,3},{4638,2927,3},{4638,2925,3},{4640,2922,3},{4645,2923,3},{4650,2927,3}, {4652,2923,3},{4657,2925,3},{4655,2917,3},{4653,2918,3},{4652,2908,3},{4650,2902,3}, {4647,2895,3},{4638,2897,3},{4633,2898,3},{4628,2895,3},{4622,2903,3},{4620,2905,3}, {4615,2902,3},{4612,2897,3},{4607,2900,3},{4602,2898,3},{4600,2890,3},{4598,2882,3}, {4595,2877,3},{4590,2878,3},{4585,2878,3},{4582,2872,3},{4580,2872,3},{4577,2863,3}, {4577,2860,3},{4575,2860,3},{4572,2853,3},{4568,2850,3},{4567,2852,3},{4562,2853,3}, {4558,2855,3},{4557,2852,3},{4552,2852,3},{4548,2845,3},{4552,2840,3},{4555,2832,3}, {4552,2825,3},{4545,2822,3},{4422,2268,131},{4428,2268,3},{4430,2257,3}, {4432,2255,3},{4448,2245,3},{4448,2255,3},{4455,2258,3},{4455,2263,3},{4452,2270,3}, {4453,2275,3},{4457,2277,3},{4460,2272,3},{4463,2260,3},{4472,2248,3},{4472,2243,3}, {4468,2238,3},{4467,2232,3},{4448,2218,3},{4448,2215,3},{4450,2208,3},{4463,2200,3}, {4465,2185,3},{4467,2177,3},{4465,2172,3},{4467,2168,3},{4465,2165,3},{4468,2162,3}, {4477,2158,3},{4478,2153,3},{4478,2140,3},{4482,2137,3},{4487,2137,3},{4487,2148,3}, {4490,2157,3},{4493,2153,3},{4497,2148,3},{4497,2143,3},{4498,2140,3},{4500,2142,3}, {4500,2138,3},{4500,2137,3},{4502,2137,3},{4503,2145,3},{4510,2147,3},{4512,2152,3}, {4515,2152,3},{4518,2148,3},{4522,2142,3},{4523,2127,3},{4527,2120,3},{4532,2117,3}, {4530,2112,3},{4532,2105,3},{4543,2087,3},{4547,2085,3},{4548,2078,3},{4550,2078,3}, {4553,2082,3},{4560,2077,3},{4565,2080,3},{4577,2080,3},{4577,2078,3},{4575,2075,3}, {4575,2072,3},{4580,2067,3},{4583,2065,3},{4590,2058,3},{4592,2050,3},{4595,2045,3}, {4598,2038,3},{4607,2032,3},{4612,2027,3},{4615,2028,3},{4617,2035,3},{4615,2047,3}, {4618,2048,3},{4617,2055,3},{4613,2063,3},{4617,2072,3},{4620,2072,3},{4620,2077,3}, {4623,2075,3},{4627,2082,3},{4627,2087,3},{4625,2092,3},{4627,2095,3},{4625,2098,3}, {4627,2102,3},{4623,2105,3},{4625,2108,3},{4628,2112,3},{4630,2118,3},{4638,2120,3}, {4640,2122,3},{4642,2130,3},{4645,2130,3},{4650,2127,3},{4655,2132,3},{4662,2133,3}, {4662,2140,3},{4665,2145,3},{4668,2145,3},{4668,2148,3},{4672,2152,3},{4673,2153,3}, {4675,2148,3},{4682,2152,3},{4683,2155,3},{4685,2160,3},{4692,2160,3},{4695,2167,3}, {4698,2167,3},{4700,2170,3},{4703,2165,3},{4708,2172,3},{4712,2178,3},{4717,2180,3}, {4718,2185,3},{4723,2183,3},{4727,2187,3},{4730,2187,3},{4735,2193,3},{4738,2202,3}, {4752,2202,3},{4758,2212,3},{4760,2218,3},{4768,2223,3},{4773,2228,3},{4775,2233,3}, {4773,2238,3},{4775,2242,3},{4778,2243,3},{4780,2247,3},{4777,2255,3},{4778,2265,3}, {4783,2272,3},{4783,2277,3},{4788,2277,3},{4790,2285,3},{4795,2290,3},{4797,2293,3}, {4802,2295,3},{4798,2303,3},{4802,2308,3},{4808,2312,3},{4812,2317,3},{4808,2327,3}, {4805,2330,3},{4800,2338,3},{4798,2348,3},{4802,2355,3},{4798,2367,3},{4798,2378,3}, {4797,2383,3},{4793,2387,3},{4797,2397,3},{4795,2405,3},{4792,2413,3},{4790,2423,3}, {4793,2432,3},{4793,2437,3},{4795,2442,3},{4793,2460,3},{4790,2467,3},{4785,2468,3}, {4782,2482,3},{4772,2490,3},{4772,2492,3},{4775,2512,3},{4788,2523,3},{4792,2533,3}, {4793,2555,3},{4793,2577,3},{4797,2585,3},{4798,2617,3},{4800,2620,3},{4807,2623,3}, {4808,2627,3},{4817,2632,3},{4818,2632,3},{4818,2640,3},{4822,2647,3},{4820,2653,3}, {4825,2658,3},{4825,2662,3},{4825,2668,3},{4827,2670,3},{4825,2672,3},{4827,2673,3}, {4825,2675,3},{4825,2683,3},{4822,2683,3},{4822,2687,3},{4820,2690,3},{4818,2690,3}, {4820,2693,3},{4818,2695,3},{4817,2695,3},{4815,2700,3},{4815,2697,3},{4813,2697,3}, {4812,2705,3},{4808,2703,3},{4803,2707,3},{4803,2712,3},{4802,2708,3},{4800,2713,3}, {4798,2713,3},{4798,2717,3},{4795,2715,3},{4793,2717,3},{4792,2715,3},{4790,2722,3}, {4785,2722,3},{4783,2725,3},{4782,2725,3},{4782,2722,3},{4773,2730,3},{4772,2728,3}, {4770,2727,3},{4765,2730,3},{4758,2738,3},{4757,2743,3},{4748,2748,3},{4747,2755,3}, {4745,2758,3},{4742,2757,3},{4740,2758,3},{4737,2757,3},{4730,2763,3},{4728,2773,3}, {4717,2782,3},{4713,2780,3},{4713,2785,3},{4712,2785,3},{4707,2795,3},{4705,2795,3}, {4703,2803,3},{4698,2808,3},{4692,2810,3},{4690,2810,3},{4688,2812,3},{4683,2812,3}, {4667,2823,3},{4660,2825,3},{4650,2822,3},{4647,2825,3},{4643,2825,3},{4633,2818,3}, {4630,2820,3},{4628,2818,3},{4627,2813,3},{4623,2813,3},{4623,2812,3},{4622,2812,3}, {4618,2815,3},{4607,2808,3},{4600,2808,3},{4587,2813,3},{4582,2812,3},{4578,2812,3}, {4577,2815,3},{4567,2817,3},{4562,2817,3},{4562,2810,3},{4558,2807,3},{4555,2815,3}, {4553,2817,3},{4547,2818,3},{4545,2822,3},{4543,2828,3},{4538,2828,3},{4532,2835,3}, {4525,2857,3},{4522,2870,3},{4523,2880,3},{4527,2875,3},{4528,2880,3},{4532,2880,3}, {4528,2893,3},{4532,2897,3},{4532,2902,3},{4537,2908,3},{4538,2917,3},{4543,2922,3}, {4543,2930,3},{4543,2932,3},{4543,2942,3},{4538,2958,3},{4535,2965,3},{4528,2967,3}, {4522,2967,3},{4522,2962,3},{4517,2965,3},{4517,2970,3},{4512,2967,3},{4500,2965,3}, {4490,2963,3},{4488,2960,3},{4485,2962,3},{4482,2957,3},{4478,2917,3},{4473,2907,3}, {4468,2900,3},{4475,2898,3},{4475,2903,3},{4478,2912,3},{4480,2915,3},{4487,2910,3}, {4483,2910,3},{4482,2907,3},{4487,2905,3},{4492,2903,3},{4497,2912,3},{4500,2903,3}, {4500,2898,3},{4495,2887,3},{4492,2887,3},{4490,2888,3},{4488,2887,3},{4482,2895,3}, {4478,2892,3},{4477,2895,3},{4475,2887,3},{4472,2880,3},{4468,2878,3},{4468,2882,3}, {4467,2878,3},{4465,2878,3},{4465,2885,3},{4468,2892,3},{4472,2890,3},{4468,2900,3}, {4463,2895,3},{4468,2898,3},{4468,2897,3},{4467,2895,3},{4467,2892,3},{4460,2878,3}, {4463,2880,3},{4463,2877,3},{4460,2877,3},{4458,2878,3},{4457,2873,3},{4455,2877,3}, {4447,2875,3},{4452,2880,3},{4457,2885,3},{4458,2890,3},{4462,2893,3},{4448,2883,3}, {4442,2875,3},{4433,2868,3},{4435,2868,3},{4433,2865,3},{4432,2863,3},{4423,2863,3}, {4417,2867,3},{4415,2863,3},{4398,2867,3},{4382,2858,3},{4375,2858,3},{4373,2843,3}, {4377,2825,3},{4383,2805,3},{4387,2800,3},{4398,2795,3},{4400,2792,3},{4397,2782,3}, {4397,2773,3},{4405,2765,3},{4402,2760,3},{4402,2740,3},{4405,2737,3},{4408,2728,3}, {4413,2728,3},{4412,2722,3},{4415,2702,3},{4413,2690,3},{4408,2675,3},{4408,2670,3}, {4405,2660,3},{4405,2638,3},{4403,2630,3},{4398,2620,3},{4398,2615,3},{4395,2608,3}, {4392,2607,3},{4385,2595,3},{4378,2588,3},{4375,2582,3},{4372,2578,3},{4367,2563,3}, {4365,2557,3},{4365,2548,3},{4362,2538,3},{4368,2527,3},{4368,2508,3},{4373,2498,3}, {4372,2472,3},{4375,2460,3},{4377,2452,3},{4370,2435,3},{4368,2418,3},{4375,2400,3}, {4377,2387,3},{4380,2375,3},{4380,2362,3},{4383,2350,3},{4385,2328,3},{4380,2313,3}, {4380,2307,3},{4385,2288,3},{4388,2283,3},{4398,2288,3},{4402,2300,3},{4408,2305,3}, {4410,2300,3},{4412,2290,3},{4420,2277,3},{4422,2270,3},{4422,2268,3},{4133,2293,131}, {4137,2297,3},{4142,2295,3},{4145,2298,3},{4148,2297,3},{4153,2295,3},{4155,2297,3}, {4163,2295,3},{4165,2298,3},{4173,2303,3},{4177,2302,3},{4178,2297,3},{4185,2293,3}, {4188,2290,3},{4203,2287,3},{4203,2282,3},{4205,2280,3},{4205,2277,3},{4205,2273,3}, {4207,2272,3},{4207,2268,3},{4215,2252,3},{4220,2250,3},{4222,2247,3},{4232,2237,3}, {4233,2245,3},{4240,2248,3},{4240,2252,3},{4248,2255,3},{4252,2255,3},{4257,2243,3}, {4268,2247,3},{4270,2247,3},{4273,2250,3},{4282,2245,3},{4288,2253,3},{4287,2257,3}, {4290,2260,3},{4287,2267,3},{4290,2275,3},{4293,2277,3},{4298,2278,3},{4300,2285,3}, {4305,2290,3},{4308,2292,3},{4310,2297,3},{4320,2300,3},{4323,2290,3},{4328,2285,3}, {4333,2283,3},{4335,2280,3},{4338,2277,3},{4340,2268,3},{4343,2265,3},{4343,2263,3}, {4347,2258,3},{4347,2255,3},{4357,2250,3},{4365,2250,3},{4368,2243,3},{4377,2240,3}, {4382,2237,3},{4387,2240,3},{4400,2242,3},{4402,2245,3},{4403,2253,3},{4407,2255,3}, {4407,2262,3},{4412,2262,3},{4417,2263,3},{4417,2262,3},{4422,2268,3},{4422,2270,3}, {4420,2277,3},{4412,2290,3},{4410,2300,3},{4408,2305,3},{4402,2300,3},{4398,2288,3}, {4388,2283,3},{4385,2288,3},{4380,2307,3},{4380,2313,3},{4385,2328,3},{4383,2350,3}, {4380,2362,3},{4380,2375,3},{4377,2387,3},{4375,2400,3},{4368,2418,3},{4370,2435,3}, {4377,2452,3},{4375,2460,3},{4372,2472,3},{4373,2498,3},{4368,2508,3},{4368,2527,3}, {4362,2538,3},{4365,2548,3},{4365,2557,3},{4367,2563,3},{4372,2578,3},{4375,2582,3}, {4378,2588,3},{4385,2595,3},{4392,2607,3},{4395,2608,3},{4398,2615,3},{4398,2620,3}, {4403,2630,3},{4405,2638,3},{4405,2660,3},{4408,2670,3},{4408,2675,3},{4413,2690,3}, {4415,2702,3},{4412,2722,3},{4413,2728,3},{4408,2728,3},{4405,2737,3},{4402,2740,3}, {4402,2760,3},{4405,2765,3},{4397,2773,3},{4397,2782,3},{4400,2792,3},{4398,2795,3}, {4387,2800,3},{4383,2805,3},{4377,2825,3},{4373,2843,3},{4375,2858,3},{4360,2857,3}, {4353,2860,3},{4345,2855,3},{4340,2848,3},{4337,2847,3},{4338,2845,3},{4342,2833,3}, {4340,2825,3},{4340,2815,3},{4337,2808,3},{4323,2802,3},{4320,2790,3},{4317,2795,3}, {4307,2792,3},{4303,2788,3},{4295,2790,3},{4285,2790,3},{4285,2788,3},{4278,2790,3}, {4270,2790,3},{4272,2777,3},{4270,2772,3},{4267,2772,3},{4267,2773,3},{4262,2763,3}, {4255,2765,3},{4257,2762,3},{4255,2752,3},{4248,2748,3},{4248,2745,3},{4243,2747,3}, {4247,2748,3},{4243,2750,3},{4245,2753,3},{4245,2760,3},{4245,2762,3},{4242,2765,3}, {4243,2768,3},{4242,2770,3},{4242,2772,3},{4240,2770,3},{4238,2772,3},{4237,2770,3}, {4235,2772,3},{4233,2773,3},{4233,2778,3},{4230,2778,3},{4228,2775,3},{4227,2777,3}, {4225,2775,3},{4225,2778,3},{4212,2790,3},{4207,2798,3},{4200,2802,3},{4198,2802,3}, {4198,2798,3},{4198,2792,3},{4200,2788,3},{4200,2783,3},{4198,2782,3},{4195,2783,3}, {4198,2770,3},{4193,2758,3},{4192,2757,3},{4192,2758,3},{4190,2757,3},{4195,2752,3}, {4195,2748,3},{4200,2742,3},{4207,2737,3},{4208,2733,3},{4212,2723,3},{4208,2720,3}, {4207,2720,3},{4207,2713,3},{4208,2710,3},{4208,2705,3},{4208,2703,3},{4205,2702,3}, {4203,2698,3},{4200,2697,3},{4200,2693,3},{4198,2690,3},{4200,2687,3},{4197,2683,3}, {4198,2680,3},{4197,2675,3},{4198,2663,3},{4193,2657,3},{4190,2658,3},{4188,2658,3}, {4183,2655,3},{4182,2637,3},{4175,2633,3},{4172,2635,3},{4172,2628,3},{4175,2623,3}, {4175,2617,3},{4172,2607,3},{4167,2607,3},{4163,2610,3},{4163,2613,3},{4157,2615,3}, {4153,2618,3},{4148,2617,3},{4143,2620,3},{4142,2617,3},{4135,2613,3},{4135,2605,3}, {4132,2598,3},{4132,2593,3},{4132,2590,3},{4135,2583,3},{4132,2578,3},{4132,2572,3}, {4130,2572,3},{4132,2567,3},{4132,2557,3},{4128,2553,3},{4128,2548,3},{4125,2528,3}, {4125,2523,3},{4128,2522,3},{4135,2512,3},{4133,2508,3},{4137,2507,3},{4140,2493,3}, {4142,2492,3},{4140,2482,3},{4135,2482,3},{4137,2477,3},{4142,2472,3},{4143,2462,3}, {4147,2460,3},{4148,2457,3},{4155,2455,3},{4157,2453,3},{4155,2447,3},{4153,2447,3}, {4153,2440,3},{4152,2432,3},{4155,2430,3},{4157,2425,3},{4153,2420,3},{4152,2418,3}, {4153,2415,3},{4155,2410,3},{4152,2407,3},{4147,2408,3},{4145,2405,3},{4147,2402,3}, {4143,2397,3},{4145,2395,3},{4148,2392,3},{4145,2390,3},{4143,2380,3},{4140,2377,3}, {4142,2367,3},{4138,2363,3},{4140,2355,3},{4140,2353,3},{4142,2343,3},{4140,2340,3}, {4137,2335,3},{4140,2332,3},{4140,2330,3},{4137,2323,3},{4133,2322,3},{4132,2318,3}, {4132,2310,3},{4133,2293,3},{4073,2603,131},{4075,2612,3},{4082,2615,3}, {4083,2622,3},{4085,2620,3},{4088,2622,3},{4088,2623,3},{4090,2625,3},{4092,2627,3}, {4090,2630,3},{4093,2630,3},{4095,2637,3},{4098,2633,3},{4100,2637,3},{4103,2638,3}, {4105,2633,3},{4108,2632,3},{4112,2633,3},{4112,2632,3},{4115,2633,3},{4117,2632,3}, {4120,2633,3},{4125,2633,3},{4127,2642,3},{4135,2653,3},{4133,2658,3},{4135,2663,3}, {4142,2663,3},{4153,2660,3},{4160,2660,3},{4165,2648,3},{4167,2650,3},{4172,2635,3}, {4175,2633,3},{4182,2637,3},{4183,2655,3},{4188,2658,3},{4190,2658,3},{4193,2657,3}, {4198,2663,3},{4197,2675,3},{4198,2680,3},{4197,2683,3},{4200,2687,3},{4198,2690,3}, {4200,2693,3},{4200,2697,3},{4203,2698,3},{4205,2702,3},{4208,2703,3},{4208,2705,3}, {4208,2710,3},{4207,2713,3},{4207,2720,3},{4208,2720,3},{4212,2723,3},{4208,2733,3}, {4207,2737,3},{4200,2742,3},{4195,2748,3},{4195,2752,3},{4190,2757,3},{4192,2758,3}, {4192,2757,3},{4193,2758,3},{4198,2770,3},{4195,2783,3},{4198,2782,3},{4200,2783,3}, {4200,2788,3},{4198,2792,3},{4198,2798,3},{4198,2802,3},{4188,2805,3},{4188,2798,3}, {4182,2797,3},{4175,2803,3},{4173,2803,3},{4167,2808,3},{4165,2808,3},{4158,2813,3}, {4157,2817,3},{4153,2820,3},{4142,2847,3},{4135,2863,3},{4135,2868,3},{4128,2883,3}, {4125,2900,3},{4125,2905,3},{4123,2910,3},{4120,2910,3},{4115,2903,3},{4112,2907,3}, {4108,2905,3},{4105,2903,3},{4103,2898,3},{4100,2898,3},{4100,2893,3},{4095,2882,3}, {4098,2875,3},{4097,2860,3},{4100,2860,3},{4102,2858,3},{4105,2858,3},{4107,2857,3}, {4108,2853,3},{4107,2853,3},{4105,2857,3},{4102,2857,3},{4098,2855,3},{4100,2850,3}, {4105,2842,3},{4108,2823,3},{4108,2815,3},{4103,2802,3},{4097,2795,3},{4097,2787,3}, {4100,2782,3},{4102,2773,3},{4098,2750,3},{4092,2747,3},{4085,2745,3},{4077,2733,3}, {4070,2730,3},{4063,2718,3},{4060,2705,3},{4055,2698,3},{4055,2690,3},{4045,2668,3}, {4042,2668,3},{4038,2662,3},{4037,2662,3},{4033,2658,3},{4028,2648,3},{4027,2647,3}, {4022,2642,3},{4020,2635,3},{4015,2637,3},{4005,2622,3},{4005,2618,3},{4005,2617,3}, {4007,2617,3},{4018,2625,3},{4025,2627,3},{4028,2622,3},{4032,2623,3},{4032,2622,3}, {4037,2632,3},{4043,2643,3},{4050,2660,3},{4052,2668,3},{4055,2672,3},{4055,2678,3}, {4060,2683,3},{4065,2680,3},{4067,2677,3},{4063,2668,3},{4063,2658,3},{4060,2652,3}, {4062,2645,3},{4060,2632,3},{4060,2612,3},{4062,2607,3},{4072,2605,3},{4073,2603,3}, {3822,2217,131},{3817,2233,3},{3813,2242,3},{3813,2250,3},{3808,2265,3}, {3805,2272,3},{3797,2280,3},{3793,2287,3},{3795,2295,3},{3798,2298,3},{3803,2288,3}, {3803,2285,3},{3808,2295,3},{3805,2305,3},{3807,2317,3},{3810,2322,3},{3815,2318,3}, {3815,2323,3},{3817,2318,3},{3817,2313,3},{3818,2315,3},{3822,2312,3},{3817,2307,3}, {3818,2303,3},{3820,2305,3},{3822,2303,3},{3822,2293,3},{3820,2292,3},{3820,2297,3}, {3818,2297,3},{3818,2295,3},{3818,2292,3},{3823,2290,3},{3823,2288,3},{3823,2278,3}, {3825,2277,3},{3828,2280,3},{3832,2270,3},{3837,2268,3},{3838,2265,3},{3837,2263,3}, {3837,2265,3},{3835,2265,3},{3835,2262,3},{3833,2260,3},{3833,2258,3},{3832,2260,3}, {3828,2258,3},{3828,2255,3},{3833,2252,3},{3835,2253,3},{3842,2247,3},{3843,2243,3}, {3845,2240,3},{3842,2242,3},{3838,2238,3},{3837,2240,3},{3833,2238,3},{3835,2230,3}, {3833,2230,3},{3837,2225,3},{3833,2220,3},{3832,2218,3},{3833,2217,3},{3837,2213,3}, {3840,2205,3},{3842,2195,3},{3837,2188,3},{3840,2183,3},{3837,2178,3},{3833,2177,3}, {3835,2172,3},{3835,2165,3},{3833,2157,3},{3830,2152,3},{3833,2143,3},{3832,2147,3}, {3830,2148,3},{3833,2148,3},{3835,2148,3},{3837,2147,3},{3837,2143,3},{3838,2142,3}, {3840,2137,3},{3847,2137,3},{3850,2133,3},{3848,2130,3},{3845,2135,3},{3838,2133,3}, {3838,2130,3},{3837,2130,3},{3837,2127,3},{3833,2127,3},{3832,2123,3},{3833,2120,3}, {3832,2118,3},{3832,2120,3},{3830,2117,3},{3830,2118,3},{3830,2115,3},{3833,2113,3}, {3833,2108,3},{3835,2112,3},{3837,2110,3},{3838,2110,3},{3837,2110,3},{3840,2113,3}, {3842,2112,3},{3840,2110,3},{3842,2108,3},{3843,2108,3},{3842,2110,3},{3843,2112,3}, {3843,2110,3},{3848,2110,3},{3848,2108,3},{3848,2110,3},{3853,2110,3},{3850,2103,3}, {3853,2102,3},{3860,2103,3},{3865,2098,3},{3867,2098,3},{3867,2092,3},{3880,2087,3}, {3880,2085,3},{3877,2082,3},{3877,2080,3},{3875,2078,3},{3877,2077,3},{3878,2077,3}, {3880,2073,3},{3885,2073,3},{3887,2080,3},{3892,2075,3},{3895,2077,3},{3893,2078,3}, {3892,2082,3},{3893,2085,3},{3897,2087,3},{3893,2088,3},{3892,2087,3},{3892,2090,3}, {3895,2092,3},{3893,2095,3},{3895,2098,3},{3893,2100,3},{3893,2103,3},{3890,2102,3}, {3887,2108,3},{3892,2110,3},{3890,2115,3},{3887,2117,3},{3887,2118,3},{3890,2117,3}, {3892,2113,3},{3897,2113,3},{3898,2117,3},{3905,2108,3},{3903,2108,3},{3902,2103,3}, {3900,2107,3},{3900,2098,3},{3902,2100,3},{3903,2098,3},{3903,2095,3},{3905,2093,3}, {3903,2093,3},{3907,2095,3},{3907,2090,3},{3903,2087,3},{3903,2090,3},{3905,2083,3}, {3903,2083,3},{3903,2085,3},{3907,2087,3},{3907,2082,3},{3908,2085,3},{3912,2082,3}, {3908,2077,3},{3908,2080,3},{3902,2075,3},{3902,2073,3},{3897,2082,3},{3895,2083,3}, {3898,2077,3},{3895,2075,3},{3895,2073,3},{3898,2070,3},{3902,2072,3},{3907,2068,3}, {3912,2060,3},{3918,2055,3},{3922,2048,3},{3928,2048,3},{3928,2038,3},{3928,2035,3}, {3932,2030,3},{3938,2028,3},{3940,2023,3},{3943,2022,3},{3945,2027,3},{3948,2022,3}, {3950,2025,3},{3952,2025,3},{3952,2023,3},{3950,2022,3},{3952,2018,3},{3952,2017,3}, {3952,2020,3},{3953,2018,3},{3953,2013,3},{3957,2015,3},{3957,2017,3},{3962,2018,3}, {3965,2012,3},{3965,2010,3},{3968,2007,3},{3968,2002,3},{3968,2007,3},{3965,2013,3}, {3965,2020,3},{3965,2022,3},{3968,2023,3},{3967,2027,3},{3970,2027,3},{3973,2032,3}, {3977,2030,3},{3980,2028,3},{3980,2035,3},{3978,2038,3},{3980,2042,3},{3982,2042,3}, {3992,2037,3},{3992,2033,3},{3995,2033,3},{4000,2032,3},{4000,2040,3},{4005,2042,3}, {4007,2045,3},{4008,2052,3},{4007,2055,3},{4007,2058,3},{4010,2067,3},{4015,2068,3}, {4018,2068,3},{4022,2072,3},{4028,2072,3},{4030,2073,3},{4032,2077,3},{4033,2075,3}, {4037,2078,3},{4043,2078,3},{4045,2083,3},{4048,2085,3},{4047,2092,3},{4047,2095,3}, {4052,2098,3},{4057,2105,3},{4068,2105,3},{4077,2097,3},{4080,2098,3},{4085,2098,3}, {4087,2135,3},{4092,2142,3},{4092,2153,3},{4087,2157,3},{4087,2160,3},{4090,2165,3}, {4090,2168,3},{4093,2168,3},{4093,2180,3},{4098,2180,3},{4105,2192,3},{4110,2192,3}, {4113,2198,3},{4113,2202,3},{4115,2207,3},{4113,2208,3},{4112,2213,3},{4115,2217,3}, {4117,2225,3},{4115,2232,3},{4113,2233,3},{4113,2240,3},{4112,2243,3},{4113,2253,3}, {4112,2258,3},{4115,2263,3},{4118,2265,3},{4118,2267,3},{4115,2273,3},{4117,2275,3}, {4132,2277,3},{4133,2280,3},{4133,2293,3},{4132,2310,3},{4132,2318,3},{4133,2322,3}, {4137,2323,3},{4140,2330,3},{4140,2332,3},{4137,2335,3},{4140,2340,3},{4142,2343,3}, {4140,2353,3},{4140,2355,3},{4138,2363,3},{4142,2367,3},{4140,2377,3},{4143,2380,3}, {4145,2390,3},{4148,2392,3},{4145,2395,3},{4143,2397,3},{4147,2402,3},{4145,2405,3}, {4147,2408,3},{4152,2407,3},{4155,2410,3},{4153,2415,3},{4152,2418,3},{4153,2420,3}, {4157,2425,3},{4155,2430,3},{4152,2432,3},{4153,2440,3},{4153,2447,3},{4155,2447,3}, {4157,2453,3},{4155,2455,3},{4148,2457,3},{4147,2460,3},{4143,2462,3},{4142,2472,3}, {4137,2477,3},{4135,2482,3},{4140,2482,3},{4142,2492,3},{4140,2493,3},{4137,2507,3}, {4133,2508,3},{4135,2512,3},{4128,2522,3},{4125,2523,3},{4125,2528,3},{4128,2548,3}, {4128,2553,3},{4132,2557,3},{4132,2567,3},{4130,2572,3},{4132,2572,3},{4132,2578,3}, {4135,2583,3},{4132,2590,3},{4132,2593,3},{4132,2598,3},{4135,2605,3},{4135,2613,3}, {4142,2617,3},{4143,2620,3},{4148,2617,3},{4153,2618,3},{4157,2615,3},{4163,2613,3}, {4163,2610,3},{4167,2607,3},{4172,2607,3},{4175,2617,3},{4175,2623,3},{4172,2628,3}, {4172,2635,3},{4167,2650,3},{4165,2648,3},{4160,2660,3},{4153,2660,3},{4142,2663,3}, {4135,2663,3},{4133,2658,3},{4135,2653,3},{4127,2642,3},{4125,2633,3},{4120,2633,3}, {4117,2632,3},{4115,2633,3},{4112,2632,3},{4112,2633,3},{4108,2632,3},{4105,2633,3}, {4103,2638,3},{4100,2637,3},{4098,2633,3},{4095,2637,3},{4093,2630,3},{4090,2630,3}, {4092,2627,3},{4090,2625,3},{4088,2623,3},{4088,2622,3},{4085,2620,3},{4083,2622,3}, {4082,2615,3},{4075,2612,3},{4073,2603,3},{4073,2605,3},{4078,2603,3},{4080,2602,3}, {4082,2607,3},{4083,2605,3},{4082,2602,3},{4083,2600,3},{4082,2600,3},{4085,2592,3}, {4085,2572,3},{4087,2563,3},{4087,2555,3},{4092,2537,3},{4093,2535,3},{4093,2530,3}, {4093,2527,3},{4095,2513,3},{4098,2513,3},{4098,2517,3},{4102,2513,3},{4100,2503,3}, {4098,2503,3},{4097,2500,3},{4093,2498,3},{4092,2488,3},{4085,2480,3},{4085,2470,3}, {4087,2467,3},{4085,2463,3},{4095,2457,3},{4093,2440,3},{4088,2432,3},{4085,2433,3}, {4083,2430,3},{4083,2433,3},{4072,2410,3},{4073,2398,3},{4078,2385,3},{4075,2373,3}, {4072,2370,3},{4067,2368,3},{4063,2377,3},{4058,2380,3},{4053,2392,3},{4052,2390,3}, {4052,2383,3},{4050,2382,3},{4047,2382,3},{4040,2387,3},{4038,2397,3},{4038,2400,3}, {4040,2400,3},{4045,2400,3},{4040,2403,3},{4037,2407,3},{4035,2418,3},{4032,2418,3}, {4032,2423,3},{4025,2428,3},{4015,2440,3},{4013,2438,3},{4012,2430,3},{4015,2428,3}, {4020,2422,3},{4022,2422,3},{4028,2417,3},{4030,2405,3},{4037,2393,3},{4037,2385,3}, {4033,2378,3},{4035,2373,3},{4032,2370,3},{4028,2370,3},{4020,2377,3},{4017,2390,3}, {4012,2398,3},{4008,2398,3},{4007,2400,3},{4003,2398,3},{4003,2402,3},{4002,2402,3}, {3998,2398,3},{3997,2400,3},{3997,2397,3},{3995,2398,3},{3995,2393,3},{3995,2392,3}, {3997,2393,3},{3997,2390,3},{4002,2385,3},{4002,2382,3},{4012,2377,3},{4023,2365,3}, {4025,2353,3},{4028,2340,3},{4023,2333,3},{4020,2333,3},{4015,2337,3},{4013,2340,3}, {4003,2350,3},{3998,2367,3},{3993,2370,3},{3993,2375,3},{3992,2372,3},{3992,2360,3}, {3997,2345,3},{3997,2337,3},{4000,2338,3},{4007,2333,3},{4008,2332,3},{4018,2332,3}, {4023,2332,3},{4033,2302,3},{4035,2302,3},{4038,2295,3},{4038,2288,3},{4040,2290,3}, {4050,2282,3},{4052,2292,3},{4053,2298,3},{4057,2298,3},{4058,2293,3},{4063,2293,3}, {4065,2290,3},{4063,2285,3},{4060,2285,3},{4057,2282,3},{4057,2275,3},{4052,2275,3}, {4052,2272,3},{4050,2272,3},{4053,2268,3},{4052,2265,3},{4050,2267,3},{4047,2265,3}, {4048,2262,3},{4047,2258,3},{4040,2262,3},{4037,2267,3},{4015,2255,3},{4010,2257,3}, {4005,2257,3},{4002,2260,3},{3995,2272,3},{3987,2273,3},{3980,2285,3},{3958,2293,3}, {3953,2302,3},{3950,2308,3},{3947,2312,3},{3932,2327,3},{3918,2335,3},{3915,2332,3}, {3913,2323,3},{3913,2322,3},{3912,2323,3},{3910,2320,3},{3908,2312,3},{3910,2305,3}, {3915,2308,3},{3913,2312,3},{3910,2310,3},{3913,2317,3},{3917,2318,3},{3915,2322,3}, {3918,2322,3},{3922,2318,3},{3925,2318,3},{3930,2312,3},{3932,2302,3},{3935,2300,3}, {3937,2295,3},{3932,2293,3},{3930,2293,3},{3928,2285,3},{3927,2282,3},{3918,2285,3}, {3915,2285,3},{3917,2288,3},{3918,2287,3},{3918,2288,3},{3917,2292,3},{3912,2292,3}, {3910,2297,3},{3905,2300,3},{3903,2297,3},{3900,2297,3},{3903,2303,3},{3903,2307,3}, {3900,2302,3},{3895,2300,3},{3895,2293,3},{3893,2293,3},{3892,2290,3},{3893,2285,3}, {3888,2283,3},{3887,2275,3},{3888,2272,3},{3888,2267,3},{3890,2265,3},{3892,2262,3}, {3888,2258,3},{3888,2253,3},{3885,2252,3},{3885,2257,3},{3883,2255,3},{3882,2260,3}, {3885,2270,3},{3878,2275,3},{3878,2282,3},{3875,2287,3},{3877,2290,3},{3875,2298,3}, {3875,2303,3},{3872,2307,3},{3863,2308,3},{3863,2312,3},{3865,2318,3},{3868,2317,3}, {3868,2320,3},{3865,2325,3},{3865,2332,3},{3860,2333,3},{3858,2330,3},{3855,2328,3}, {3853,2338,3},{3852,2333,3},{3850,2333,3},{3850,2337,3},{3850,2347,3},{3848,2353,3}, {3850,2355,3},{3850,2358,3},{3847,2360,3},{3845,2357,3},{3845,2360,3},{3842,2360,3}, {3842,2363,3},{3835,2368,3},{3833,2370,3},{3833,2377,3},{3832,2380,3},{3830,2393,3}, {3820,2407,3},{3813,2407,3},{3815,2405,3},{3813,2402,3},{3810,2398,3},{3800,2403,3}, {3797,2402,3},{3793,2402,3},{3790,2405,3},{3788,2402,3},{3787,2407,3},{3782,2405,3}, {3780,2408,3},{3778,2408,3},{3775,2408,3},{3773,2407,3},{3768,2407,3},{3765,2403,3}, {3767,2395,3},{3772,2395,3},{3773,2392,3},{3777,2390,3},{3782,2383,3},{3782,2382,3}, {3780,2380,3},{3782,2378,3},{3780,2378,3},{3782,2377,3},{3783,2377,3},{3785,2375,3}, {3793,2368,3},{3793,2363,3},{3795,2365,3},{3795,2362,3},{3797,2362,3},{3797,2357,3}, {3798,2355,3},{3802,2360,3},{3805,2357,3},{3802,2347,3},{3798,2340,3},{3798,2343,3}, {3797,2342,3},{3797,2322,3},{3792,2313,3},{3792,2302,3},{3790,2302,3},{3788,2298,3}, {3785,2302,3},{3785,2312,3},{3780,2318,3},{3777,2318,3},{3777,2312,3},{3773,2312,3}, {3772,2317,3},{3768,2315,3},{3765,2317,3},{3762,2317,3},{3753,2333,3},{3755,2337,3}, {3762,2332,3},{3763,2338,3},{3762,2342,3},{3757,2338,3},{3755,2337,3},{3753,2342,3}, {3752,2340,3},{3750,2345,3},{3747,2352,3},{3743,2352,3},{3742,2342,3},{3742,2335,3}, {3740,2330,3},{3740,2327,3},{3738,2325,3},{3738,2327,3},{3738,2323,3},{3737,2323,3}, {3737,2325,3},{3735,2325,3},{3733,2327,3},{3733,2318,3},{3730,2320,3},{3728,2318,3}, {3730,2315,3},{3733,2315,3},{3732,2312,3},{3733,2313,3},{3735,2312,3},{3737,2307,3}, {3740,2307,3},{3740,2312,3},{3742,2312,3},{3742,2313,3},{3745,2313,3},{3745,2305,3}, {3747,2307,3},{3748,2305,3},{3745,2300,3},{3752,2298,3},{3752,2293,3},{3753,2293,3}, {3753,2290,3},{3752,2292,3},{3752,2285,3},{3753,2282,3},{3758,2278,3},{3757,2272,3}, {3752,2273,3},{3748,2273,3},{3742,2277,3},{3740,2275,3},{3733,2283,3},{3725,2287,3}, {3720,2292,3},{3712,2290,3},{3712,2295,3},{3708,2297,3},{3708,2298,3},{3707,2298,3}, {3708,2297,3},{3702,2300,3},{3698,2302,3},{3698,2300,3},{3695,2302,3},{3687,2305,3}, {3685,2305,3},{3682,2308,3},{3680,2310,3},{3678,2308,3},{3677,2312,3},{3675,2308,3}, {3673,2308,3},{3673,2307,3},{3673,2303,3},{3668,2303,3},{3668,2307,3},{3667,2303,3}, {3663,2303,3},{3658,2308,3},{3657,2313,3},{3653,2315,3},{3650,2313,3},{3647,2320,3}, {3643,2320,3},{3643,2308,3},{3652,2305,3},{3652,2297,3},{3658,2295,3},{3663,2288,3}, {3665,2288,3},{3667,2287,3},{3668,2283,3},{3665,2282,3},{3667,2282,3},{3672,2282,3}, {3680,2278,3},{3680,2273,3},{3680,2263,3},{3678,2260,3},{3677,2257,3},{3673,2258,3}, {3672,2253,3},{3668,2253,3},{3668,2255,3},{3665,2255,3},{3667,2252,3},{3665,2252,3}, {3662,2253,3},{3660,2252,3},{3662,2248,3},{3660,2248,3},{3653,2248,3},{3645,2252,3}, {3643,2248,3},{3640,2250,3},{3638,2248,3},{3645,2247,3},{3648,2240,3},{3648,2238,3}, {3652,2235,3},{3655,2237,3},{3653,2238,3},{3658,2238,3},{3660,2238,3},{3660,2237,3}, {3663,2237,3},{3665,2238,3},{3667,2237,3},{3670,2238,3},{3670,2235,3},{3672,2233,3}, {3682,2230,3},{3688,2223,3},{3690,2220,3},{3688,2217,3},{3692,2213,3},{3693,2215,3}, {3700,2217,3},{3702,2215,3},{3702,2203,3},{3698,2193,3},{3687,2192,3},{3682,2193,3}, {3680,2197,3},{3672,2188,3},{3680,2182,3},{3678,2177,3},{3682,2170,3},{3688,2168,3}, {3695,2172,3},{3695,2167,3},{3697,2168,3},{3695,2165,3},{3700,2165,3},{3707,2158,3}, {3715,2157,3},{3720,2158,3},{3727,2167,3},{3730,2170,3},{3745,2165,3},{3753,2157,3}, {3762,2145,3},{3765,2140,3},{3767,2133,3},{3765,2132,3},{3763,2132,3},{3767,2130,3}, {3772,2132,3},{3778,2130,3},{3782,2122,3},{3783,2112,3},{3785,2110,3},{3793,2113,3}, {3793,2117,3},{3793,2120,3},{3800,2128,3},{3800,2130,3},{3802,2132,3},{3802,2128,3}, {3812,2137,3},{3822,2137,3},{3818,2140,3},{3822,2140,3},{3820,2142,3},{3820,2147,3}, {3817,2153,3},{3815,2160,3},{3817,2167,3},{3822,2172,3},{3827,2173,3},{3830,2177,3}, {3833,2185,3},{3832,2202,3},{3827,2205,3},{3822,2217,3},{4085,2098,131}, {4090,2098,3},{4092,2095,3},{4093,2085,3},{4092,2083,3},{4090,2080,3},{4092,2073,3}, {4108,2067,3},{4110,2060,3},{4112,2058,3},{4113,2060,3},{4123,2052,3},{4133,2050,3}, {4135,2050,3},{4135,2052,3},{4137,2055,3},{4140,2057,3},{4143,2052,3},{4148,2050,3}, {4153,2045,3},{4155,2047,3},{4158,2055,3},{4165,2053,3},{4170,2053,3},{4173,2052,3}, {4178,2053,3},{4178,2057,3},{4178,2065,3},{4183,2067,3},{4187,2073,3},{4188,2073,3}, {4192,2075,3},{4192,2073,3},{4197,2073,3},{4202,2073,3},{4203,2072,3},{4205,2078,3}, {4207,2082,3},{4208,2088,3},{4212,2093,3},{4213,2100,3},{4217,2107,3},{4218,2113,3}, {4213,2117,3},{4210,2120,3},{4207,2127,3},{4207,2128,3},{4207,2130,3},{4207,2132,3}, {4212,2128,3},{4213,2128,3},{4217,2133,3},{4222,2137,3},{4222,2143,3},{4220,2152,3}, {4222,2158,3},{4222,2165,3},{4223,2172,3},{4227,2175,3},{4232,2178,3},{4230,2185,3}, {4230,2192,3},{4230,2198,3},{4228,2200,3},{4228,2202,3},{4228,2203,3},{4230,2210,3}, {4228,2212,3},{4230,2218,3},{4233,2225,3},{4235,2230,3},{4232,2237,3},{4222,2247,3}, {4220,2250,3},{4215,2252,3},{4207,2268,3},{4207,2272,3},{4205,2273,3},{4205,2277,3}, {4205,2280,3},{4203,2282,3},{4203,2287,3},{4188,2290,3},{4185,2293,3},{4178,2297,3}, {4177,2302,3},{4173,2303,3},{4165,2298,3},{4163,2295,3},{4155,2297,3},{4153,2295,3}, {4148,2297,3},{4145,2298,3},{4142,2295,3},{4137,2297,3},{4133,2293,3},{4133,2280,3}, {4132,2277,3},{4117,2275,3},{4115,2273,3},{4118,2267,3},{4118,2265,3},{4115,2263,3}, {4112,2258,3},{4113,2253,3},{4112,2243,3},{4113,2240,3},{4113,2233,3},{4115,2232,3}, {4117,2225,3},{4115,2217,3},{4112,2213,3},{4113,2208,3},{4115,2207,3},{4113,2202,3}, {4113,2198,3},{4110,2192,3},{4105,2192,3},{4098,2180,3},{4093,2180,3},{4093,2168,3}, {4090,2168,3},{4090,2165,3},{4087,2160,3},{4087,2157,3},{4092,2153,3},{4092,2142,3}, {4087,2135,3},{4085,2098,3},{4245,1852,131},{4248,1857,3},{4252,1857,3}, {4257,1858,3},{4262,1860,3},{4267,1860,3},{4272,1858,3},{4272,1857,3},{4275,1852,3}, {4278,1847,3},{4282,1847,3},{4287,1850,3},{4288,1855,3},{4293,1850,3},{4298,1853,3}, {4300,1860,3},{4300,1867,3},{4302,1875,3},{4307,1873,3},{4312,1870,3},{4315,1873,3}, {4320,1875,3},{4322,1873,3},{4327,1873,3},{4330,1880,3},{4332,1887,3},{4333,1887,3}, {4335,1888,3},{4335,1892,3},{4333,1893,3},{4332,1895,3},{4328,1895,3},{4327,1897,3}, {4323,1902,3},{4322,1903,3},{4322,1905,3},{4323,1907,3},{4327,1912,3},{4332,1917,3}, {4333,1917,3},{4335,1915,3},{4335,1913,3},{4340,1910,3},{4343,1905,3},{4347,1900,3}, {4352,1897,3},{4352,1898,3},{4352,1900,3},{4352,1907,3},{4348,1913,3},{4350,1917,3}, {4352,1923,3},{4350,1930,3},{4352,1932,3},{4352,1930,3},{4353,1928,3},{4358,1932,3}, {4358,1935,3},{4360,1942,3},{4358,1942,3},{4357,1942,3},{4355,1942,3},{4353,1943,3}, {4353,1945,3},{4355,1945,3},{4357,1952,3},{4362,1953,3},{4367,1953,3},{4372,1953,3}, {4375,1948,3},{4380,1945,3},{4383,1940,3},{4388,1937,3},{4392,1932,3},{4397,1927,3}, {4402,1927,3},{4398,1933,3},{4397,1938,3},{4395,1945,3},{4393,1953,3},{4395,1955,3}, {4398,1960,3},{4403,1963,3},{4408,1962,3},{4407,1960,3},{4407,1957,3},{4408,1955,3}, {4412,1950,3},{4415,1948,3},{4415,1947,3},{4415,1945,3},{4417,1940,3},{4422,1938,3}, {4427,1933,3},{4428,1932,3},{4428,1923,3},{4430,1917,3},{4433,1915,3},{4438,1913,3}, {4443,1915,3},{4448,1913,3},{4452,1918,3},{4455,1918,3},{4457,1920,3},{4460,1925,3}, {4465,1928,3},{4468,1932,3},{4473,1935,3},{4478,1937,3},{4483,1937,3},{4488,1937,3}, {4490,1935,3},{4492,1928,3},{4492,1922,3},{4493,1918,3},{4490,1913,3},{4487,1907,3}, {4485,1898,3},{4490,1903,3},{4493,1908,3},{4495,1910,3},{4497,1908,3},{4497,1907,3}, {4495,1907,3},{4495,1905,3},{4500,1908,3},{4505,1912,3},{4510,1910,3},{4512,1910,3}, {4510,1917,3},{4512,1920,3},{4512,1922,3},{4517,1922,3},{4518,1920,3},{4517,1928,3}, {4517,1930,3},{4518,1933,3},{4518,1940,3},{4522,1947,3},{4527,1943,3},{4523,1937,3}, {4523,1928,3},{4528,1927,3},{4528,1925,3},{4528,1923,3},{4528,1915,3},{4532,1910,3}, {4535,1903,3},{4538,1898,3},{4543,1902,3},{4547,1900,3},{4548,1900,3},{4550,1907,3}, {4550,1908,3},{4550,1910,3},{4552,1912,3},{4553,1905,3},{4555,1900,3},{4553,1893,3}, {4553,1892,3},{4558,1892,3},{4563,1895,3},{4568,1897,3},{4572,1892,3},{4575,1887,3}, {4577,1885,3},{4582,1883,3},{4587,1883,3},{4588,1880,3},{4592,1882,3},{4592,1883,3}, {4592,1888,3},{4593,1892,3},{4593,1900,3},{4595,1900,3},{4597,1902,3},{4597,1907,3}, {4602,1907,3},{4603,1910,3},{4602,1913,3},{4598,1915,3},{4598,1928,3},{4603,1930,3}, {4603,1940,3},{4607,1942,3},{4607,1947,3},{4610,1948,3},{4612,1952,3},{4615,1952,3}, {4617,1957,3},{4617,1972,3},{4613,1980,3},{4615,1985,3},{4617,1997,3},{4617,2002,3}, {4615,2005,3},{4617,2012,3},{4615,2015,3},{4615,2020,3},{4612,2027,3},{4607,2032,3}, {4598,2038,3},{4595,2045,3},{4592,2050,3},{4590,2058,3},{4583,2065,3},{4580,2067,3}, {4575,2072,3},{4575,2075,3},{4577,2078,3},{4577,2080,3},{4565,2080,3},{4560,2077,3}, {4553,2082,3},{4550,2078,3},{4548,2078,3},{4547,2085,3},{4543,2087,3},{4532,2105,3}, {4530,2112,3},{4532,2117,3},{4527,2120,3},{4523,2127,3},{4522,2142,3},{4518,2148,3}, {4515,2152,3},{4512,2152,3},{4510,2147,3},{4503,2145,3},{4502,2137,3},{4500,2137,3}, {4500,2138,3},{4500,2142,3},{4498,2140,3},{4497,2143,3},{4497,2148,3},{4493,2153,3}, {4490,2157,3},{4487,2148,3},{4487,2137,3},{4482,2137,3},{4478,2140,3},{4478,2153,3}, {4477,2158,3},{4468,2162,3},{4465,2165,3},{4467,2168,3},{4465,2172,3},{4467,2177,3}, {4465,2185,3},{4463,2200,3},{4450,2208,3},{4448,2215,3},{4448,2218,3},{4467,2232,3}, {4468,2238,3},{4472,2243,3},{4472,2248,3},{4463,2260,3},{4460,2272,3},{4457,2277,3}, {4453,2275,3},{4452,2270,3},{4455,2263,3},{4455,2258,3},{4448,2255,3},{4448,2245,3}, {4432,2255,3},{4430,2257,3},{4428,2268,3},{4422,2268,3},{4417,2262,3},{4417,2263,3}, {4412,2262,3},{4407,2262,3},{4407,2255,3},{4403,2253,3},{4402,2245,3},{4400,2242,3}, {4387,2240,3},{4382,2237,3},{4377,2240,3},{4368,2243,3},{4365,2250,3},{4357,2250,3}, {4347,2255,3},{4347,2258,3},{4343,2263,3},{4343,2265,3},{4340,2268,3},{4338,2277,3}, {4335,2280,3},{4333,2283,3},{4328,2285,3},{4323,2290,3},{4320,2300,3},{4310,2297,3}, {4308,2292,3},{4305,2290,3},{4300,2285,3},{4298,2278,3},{4293,2277,3},{4290,2275,3}, {4287,2267,3},{4290,2260,3},{4287,2257,3},{4288,2253,3},{4282,2245,3},{4273,2250,3}, {4270,2247,3},{4268,2247,3},{4257,2243,3},{4252,2255,3},{4248,2255,3},{4240,2252,3}, {4240,2248,3},{4233,2245,3},{4232,2237,3},{4235,2230,3},{4233,2225,3},{4230,2218,3}, {4228,2212,3},{4230,2210,3},{4228,2203,3},{4228,2202,3},{4228,2200,3},{4230,2198,3}, {4230,2192,3},{4230,2185,3},{4232,2178,3},{4227,2175,3},{4223,2172,3},{4222,2165,3}, {4222,2158,3},{4220,2152,3},{4222,2143,3},{4222,2137,3},{4217,2133,3},{4213,2128,3}, {4212,2128,3},{4207,2132,3},{4207,2130,3},{4207,2128,3},{4207,2127,3},{4210,2120,3}, {4213,2117,3},{4218,2113,3},{4217,2107,3},{4213,2100,3},{4212,2093,3},{4208,2088,3}, {4207,2082,3},{4205,2078,3},{4203,2072,3},{4202,2073,3},{4197,2073,3},{4192,2073,3}, {4192,2075,3},{4188,2073,3},{4187,2073,3},{4183,2067,3},{4178,2065,3},{4178,2057,3}, {4187,2057,3},{4188,2060,3},{4192,2058,3},{4193,2062,3},{4197,2062,3},{4205,2060,3}, {4207,2057,3},{4213,2057,3},{4222,2052,3},{4227,2045,3},{4232,2035,3},{4233,2035,3}, {4233,2025,3},{4238,2023,3},{4240,2022,3},{4243,2022,3},{4252,2017,3},{4257,2005,3}, {4255,2002,3},{4252,2000,3},{4252,1993,3},{4248,1990,3},{4247,1983,3},{4252,1977,3}, {4258,1975,3},{4260,1977,3},{4263,1975,3},{4267,1972,3},{4262,1965,3},{4257,1962,3}, {4255,1962,3},{4252,1957,3},{4247,1955,3},{4240,1947,3},{4238,1943,3},{4233,1942,3}, {4218,1928,3},{4210,1940,3},{4208,1938,3},{4203,1937,3},{4197,1938,3},{4195,1935,3}, {4193,1937,3},{4190,1933,3},{4188,1937,3},{4185,1937,3},{4190,1928,3},{4192,1922,3}, {4195,1915,3},{4198,1913,3},{4198,1915,3},{4205,1913,3},{4208,1907,3},{4210,1908,3}, {4213,1905,3},{4213,1900,3},{4217,1900,3},{4222,1890,3},{4228,1888,3},{4227,1878,3}, {4228,1877,3},{4232,1872,3},{4238,1868,3},{4237,1862,3},{4238,1858,3},{4242,1855,3}, {4243,1857,3},{4240,1870,3},{4248,1868,3},{4243,1862,3},{4245,1852,3},{3968,2002,131}, {3970,1998,3},{3975,2000,3},{3975,1998,3},{3977,2000,3},{3987,2002,3},{3990,1992,3}, {3993,1993,3},{4003,1987,3},{4005,1983,3},{4005,1980,3},{4007,1978,3},{4007,1977,3}, {4010,1975,3},{4013,1965,3},{4022,1947,3},{4030,1938,3},{4037,1935,3},{4042,1928,3}, {4043,1932,3},{4042,1935,3},{4038,1940,3},{4033,1942,3},{4035,1948,3},{4043,1948,3}, {4053,1938,3},{4050,1943,3},{4053,1945,3},{4057,1945,3},{4058,1940,3},{4057,1938,3}, {4055,1938,3},{4057,1938,3},{4065,1930,3},{4070,1935,3},{4080,1937,3},{4082,1940,3}, {4085,1940,3},{4087,1942,3},{4090,1938,3},{4095,1945,3},{4093,1942,3},{4090,1943,3}, {4087,1943,3},{4088,1943,3},{4087,1943,3},{4092,1952,3},{4100,1950,3},{4092,1945,3}, {4098,1947,3},{4100,1947,3},{4102,1943,3},{4110,1945,3},{4113,1943,3},{4115,1947,3}, {4125,1952,3},{4130,1950,3},{4130,1943,3},{4133,1942,3},{4138,1942,3},{4140,1938,3}, {4140,1940,3},{4140,1945,3},{4143,1945,3},{4145,1948,3},{4150,1952,3},{4153,1952,3}, {4155,1947,3},{4158,1945,3},{4157,1950,3},{4158,1957,3},{4162,1958,3},{4160,1960,3}, {4160,1962,3},{4163,1960,3},{4165,1957,3},{4170,1958,3},{4175,1957,3},{4177,1960,3}, {4182,1960,3},{4187,1943,3},{4185,1937,3},{4188,1937,3},{4190,1933,3},{4193,1937,3}, {4195,1935,3},{4197,1938,3},{4203,1937,3},{4208,1938,3},{4210,1940,3},{4218,1928,3}, {4233,1942,3},{4238,1943,3},{4240,1947,3},{4247,1955,3},{4252,1957,3},{4255,1962,3}, {4257,1962,3},{4262,1965,3},{4267,1972,3},{4263,1975,3},{4260,1977,3},{4258,1975,3}, {4252,1977,3},{4247,1983,3},{4248,1990,3},{4252,1993,3},{4252,2000,3},{4255,2002,3}, {4257,2005,3},{4252,2017,3},{4243,2022,3},{4240,2022,3},{4238,2023,3},{4233,2025,3}, {4233,2035,3},{4232,2035,3},{4227,2045,3},{4222,2052,3},{4213,2057,3},{4207,2057,3}, {4205,2060,3},{4197,2062,3},{4193,2062,3},{4192,2058,3},{4188,2060,3},{4187,2057,3}, {4178,2057,3},{4178,2053,3},{4173,2052,3},{4170,2053,3},{4165,2053,3},{4158,2055,3}, {4155,2047,3},{4153,2045,3},{4148,2050,3},{4143,2052,3},{4140,2057,3},{4137,2055,3}, {4135,2052,3},{4135,2050,3},{4133,2050,3},{4123,2052,3},{4113,2060,3},{4112,2058,3}, {4110,2060,3},{4108,2067,3},{4092,2073,3},{4090,2080,3},{4092,2083,3},{4093,2085,3}, {4092,2095,3},{4090,2098,3},{4085,2098,3},{4080,2098,3},{4077,2097,3},{4068,2105,3}, {4057,2105,3},{4052,2098,3},{4047,2095,3},{4047,2092,3},{4048,2085,3},{4045,2083,3}, {4043,2078,3},{4037,2078,3},{4033,2075,3},{4032,2077,3},{4030,2073,3},{4028,2072,3}, {4022,2072,3},{4018,2068,3},{4015,2068,3},{4010,2067,3},{4007,2058,3},{4007,2055,3}, {4008,2052,3},{4007,2045,3},{4005,2042,3},{4000,2040,3},{4000,2032,3},{3995,2033,3}, {3992,2033,3},{3992,2037,3},{3982,2042,3},{3980,2042,3},{3978,2038,3},{3980,2035,3}, {3980,2028,3},{3977,2030,3},{3973,2032,3},{3970,2027,3},{3967,2027,3},{3968,2023,3}, {3965,2022,3},{3965,2020,3},{3965,2013,3},{3968,2007,3},{3968,2002,3},{4295,1752,131}, {4295,1763,3},{4297,1770,3},{4302,1768,3},{4307,1765,3},{4308,1765,3},{4310,1763,3}, {4312,1762,3},{4310,1758,3},{4310,1755,3},{4313,1750,3},{4317,1745,3},{4320,1740,3}, {4323,1735,3},{4327,1728,3},{4332,1727,3},{4337,1727,3},{4342,1727,3},{4347,1727,3}, {4348,1722,3},{4355,1722,3},{4357,1722,3},{4358,1722,3},{4357,1715,3},{4357,1708,3}, {4357,1707,3},{4360,1702,3},{4363,1697,3},{4363,1695,3},{4368,1692,3},{4372,1687,3}, {4377,1682,3},{4380,1678,3},{4385,1675,3},{4388,1672,3},{4392,1665,3},{4395,1660,3}, {4400,1658,3},{4403,1653,3},{4407,1647,3},{4408,1645,3},{4410,1638,3},{4412,1632,3}, {4417,1628,3},{4422,1625,3},{4427,1623,3},{4432,1620,3},{4433,1620,3},{4437,1615,3}, {4438,1613,3},{4443,1615,3},{4448,1615,3},{4453,1613,3},{4453,1612,3},{4455,1612,3}, {4455,1610,3},{4453,1603,3},{4457,1598,3},{4462,1595,3},{4465,1590,3},{4467,1585,3}, {4470,1580,3},{4475,1582,3},{4480,1582,3},{4483,1577,3},{4487,1570,3},{4492,1568,3}, {4497,1572,3},{4500,1575,3},{4505,1575,3},{4510,1577,3},{4515,1577,3},{4520,1573,3}, {4522,1572,3},{4523,1572,3},{4522,1578,3},{4523,1585,3},{4523,1588,3},{4520,1595,3}, {4520,1600,3},{4515,1603,3},{4510,1607,3},{4507,1608,3},{4505,1613,3},{4503,1620,3}, {4500,1627,3},{4500,1630,3},{4502,1637,3},{4507,1640,3},{4512,1643,3},{4515,1648,3}, {4520,1652,3},{4520,1658,3},{4520,1662,3},{4518,1667,3},{4518,1675,3},{4517,1682,3}, {4520,1688,3},{4525,1692,3},{4523,1693,3},{4523,1692,3},{4522,1693,3},{4523,1697,3}, {4522,1700,3},{4518,1705,3},{4515,1710,3},{4513,1717,3},{4512,1720,3},{4512,1722,3}, {4517,1728,3},{4513,1733,3},{4512,1733,3},{4512,1735,3},{4512,1742,3},{4512,1743,3}, {4510,1743,3},{4510,1748,3},{4510,1755,3},{4510,1762,3},{4512,1765,3},{4508,1772,3}, {4505,1777,3},{4502,1783,3},{4505,1790,3},{4508,1795,3},{4513,1800,3},{4513,1802,3}, {4513,1803,3},{4512,1805,3},{4510,1805,3},{4508,1812,3},{4508,1818,3},{4512,1823,3}, {4512,1825,3},{4510,1832,3},{4508,1838,3},{4510,1840,3},{4510,1842,3},{4505,1845,3}, {4503,1852,3},{4507,1855,3},{4508,1858,3},{4508,1860,3},{4507,1862,3},{4507,1860,3}, {4505,1862,3},{4505,1863,3},{4505,1865,3},{4507,1865,3},{4507,1867,3},{4508,1867,3}, {4503,1870,3},{4502,1872,3},{4500,1875,3},{4500,1877,3},{4495,1878,3},{4493,1877,3}, {4493,1875,3},{4490,1875,3},{4487,1882,3},{4485,1887,3},{4485,1895,3},{4485,1898,3}, {4487,1907,3},{4490,1913,3},{4493,1918,3},{4492,1922,3},{4492,1928,3},{4490,1935,3}, {4488,1937,3},{4483,1937,3},{4478,1937,3},{4473,1935,3},{4468,1932,3},{4465,1928,3}, {4460,1925,3},{4457,1920,3},{4455,1918,3},{4452,1918,3},{4448,1913,3},{4443,1915,3}, {4438,1913,3},{4433,1915,3},{4430,1917,3},{4428,1923,3},{4428,1932,3},{4427,1933,3}, {4422,1938,3},{4417,1940,3},{4415,1945,3},{4415,1947,3},{4415,1948,3},{4412,1950,3}, {4408,1955,3},{4407,1957,3},{4407,1960,3},{4408,1962,3},{4403,1963,3},{4398,1960,3}, {4395,1955,3},{4393,1953,3},{4395,1945,3},{4397,1938,3},{4398,1933,3},{4402,1927,3}, {4397,1927,3},{4392,1932,3},{4388,1937,3},{4383,1940,3},{4380,1945,3},{4375,1948,3}, {4372,1953,3},{4367,1953,3},{4362,1953,3},{4357,1952,3},{4355,1945,3},{4353,1945,3}, {4353,1943,3},{4355,1942,3},{4357,1942,3},{4358,1942,3},{4360,1942,3},{4358,1935,3}, {4358,1932,3},{4353,1928,3},{4352,1930,3},{4352,1932,3},{4350,1930,3},{4352,1923,3}, {4350,1917,3},{4348,1913,3},{4352,1907,3},{4352,1900,3},{4352,1898,3},{4352,1897,3}, {4347,1900,3},{4343,1905,3},{4340,1910,3},{4335,1913,3},{4335,1915,3},{4333,1917,3}, {4332,1917,3},{4327,1912,3},{4323,1907,3},{4322,1905,3},{4322,1903,3},{4323,1902,3}, {4327,1897,3},{4328,1895,3},{4332,1895,3},{4333,1893,3},{4335,1892,3},{4335,1888,3}, {4333,1887,3},{4332,1887,3},{4330,1880,3},{4327,1873,3},{4322,1873,3},{4320,1875,3}, {4315,1873,3},{4312,1870,3},{4307,1873,3},{4302,1875,3},{4300,1867,3},{4300,1860,3}, {4298,1853,3},{4293,1850,3},{4288,1855,3},{4287,1850,3},{4282,1847,3},{4278,1847,3}, {4275,1852,3},{4272,1857,3},{4272,1858,3},{4267,1860,3},{4262,1860,3},{4257,1858,3}, {4252,1857,3},{4248,1857,3},{4245,1852,3},{4243,1852,3},{4245,1848,3},{4250,1843,3}, {4255,1842,3},{4260,1838,3},{4262,1833,3},{4262,1825,3},{4265,1820,3},{4267,1815,3}, {4272,1812,3},{4275,1807,3},{4278,1802,3},{4282,1795,3},{4285,1790,3},{4290,1788,3}, {4292,1788,3},{4292,1785,3},{4292,1783,3},{4290,1780,3},{4292,1773,3},{4290,1767,3}, {4288,1767,3},{4293,1755,3},{4292,1762,3},{4293,1760,3},{4295,1752,3},{4288,1767,131}, {4290,1767,3},{4292,1773,3},{4290,1780,3},{4292,1783,3},{4292,1785,3},{4292,1788,3}, {4290,1788,3},{4285,1790,3},{4282,1795,3},{4278,1802,3},{4275,1807,3},{4272,1812,3}, {4267,1815,3},{4265,1820,3},{4262,1825,3},{4262,1833,3},{4260,1838,3},{4255,1842,3}, {4250,1843,3},{4245,1848,3},{4243,1852,3},{4245,1852,3},{4240,1852,3},{4245,1847,3}, {4245,1842,3},{4248,1838,3},{4257,1823,3},{4258,1822,3},{4260,1823,3},{4262,1820,3}, {4265,1807,3},{4267,1805,3},{4267,1807,3},{4270,1805,3},{4268,1803,3},{4270,1800,3}, {4277,1788,3},{4278,1788,3},{4282,1780,3},{4280,1777,3},{4282,1772,3},{4278,1775,3}, {4287,1745,3},{4288,1745,3},{4292,1742,3},{4292,1737,3},{4298,1722,3},{4298,1712,3}, {4300,1702,3},{4302,1703,3},{4305,1700,3},{4305,1702,3},{4302,1707,3},{4302,1723,3}, {4300,1730,3},{4295,1743,3},{4292,1747,3},{4290,1757,3},{4283,1773,3},{4285,1770,3}, {4288,1772,3},{4287,1770,3},{4288,1767,3},{4295,1752,131},{4300,1747,3}, {4303,1750,3},{4302,1743,3},{4303,1745,3},{4303,1743,3},{4307,1742,3},{4303,1740,3}, {4312,1733,3},{4317,1717,3},{4323,1710,3},{4323,1707,3},{4340,1688,3},{4342,1675,3}, {4345,1668,3},{4343,1663,3},{4350,1653,3},{4352,1640,3},{4353,1647,3},{4355,1643,3}, {4355,1632,3},{4352,1618,3},{4352,1613,3},{4352,1612,3},{4350,1617,3},{4348,1617,3}, {4348,1612,3},{4348,1610,3},{4350,1595,3},{4352,1595,3},{4352,1598,3},{4355,1598,3}, {4355,1593,3},{4357,1595,3},{4357,1592,3},{4358,1593,3},{4363,1592,3},{4363,1597,3}, {4365,1590,3},{4365,1595,3},{4367,1593,3},{4368,1595,3},{4367,1593,3},{4370,1588,3}, {4375,1578,3},{4377,1570,3},{4380,1567,3},{4382,1562,3},{4380,1568,3},{4393,1545,3}, {4403,1533,3},{4407,1528,3},{4410,1527,3},{4413,1520,3},{4415,1520,3},{4418,1515,3}, {4423,1517,3},{4427,1512,3},{4428,1512,3},{4428,1515,3},{4425,1518,3},{4425,1520,3}, {4428,1518,3},{4428,1520,3},{4430,1520,3},{4425,1528,3},{4428,1528,3},{4428,1530,3}, {4433,1527,3},{4427,1542,3},{4427,1543,3},{4425,1552,3},{4427,1553,3},{4428,1552,3}, {4428,1545,3},{4432,1542,3},{4437,1528,3},{4452,1510,3},{4458,1498,3},{4472,1488,3}, {4485,1488,3},{4497,1492,3},{4512,1485,3},{4515,1472,3},{4523,1462,3},{4527,1457,3}, {4528,1458,3},{4530,1457,3},{4530,1453,3},{4528,1455,3},{4530,1450,3},{4532,1448,3}, {4535,1433,3},{4530,1428,3},{4515,1423,3},{4512,1420,3},{4513,1418,3},{4510,1420,3}, {4508,1415,3},{4505,1415,3},{4498,1417,3},{4497,1415,3},{4497,1410,3},{4495,1407,3}, {4498,1408,3},{4503,1405,3},{4500,1403,3},{4498,1407,3},{4495,1405,3},{4495,1403,3}, {4492,1403,3},{4492,1402,3},{4490,1402,3},{4490,1398,3},{4488,1400,3},{4482,1397,3}, {4480,1400,3},{4482,1393,3},{4483,1392,3},{4482,1388,3},{4482,1392,3},{4477,1392,3}, {4477,1390,3},{4482,1390,3},{4482,1385,3},{4485,1385,3},{4487,1380,3},{4487,1383,3}, {4488,1385,3},{4490,1380,3},{4492,1380,3},{4497,1378,3},{4503,1368,3},{4505,1368,3}, {4507,1363,3},{4510,1363,3},{4512,1360,3},{4513,1362,3},{4513,1373,3},{4513,1360,3}, {4520,1358,3},{4525,1360,3},{4527,1358,3},{4528,1360,3},{4530,1358,3},{4532,1360,3}, {4533,1353,3},{4537,1355,3},{4548,1350,3},{4550,1350,3},{4548,1358,3},{4548,1360,3}, {4545,1365,3},{4545,1367,3},{4543,1368,3},{4543,1370,3},{4545,1377,3},{4547,1383,3}, {4547,1385,3},{4545,1392,3},{4545,1395,3},{4545,1397,3},{4545,1398,3},{4545,1400,3}, {4550,1402,3},{4552,1402,3},{4552,1403,3},{4553,1405,3},{4548,1410,3},{4548,1417,3}, {4547,1423,3},{4548,1428,3},{4548,1430,3},{4547,1430,3},{4547,1432,3},{4548,1437,3}, {4550,1445,3},{4553,1450,3},{4557,1457,3},{4560,1458,3},{4562,1458,3},{4563,1458,3}, {4558,1465,3},{4555,1470,3},{4552,1473,3},{4548,1478,3},{4547,1482,3},{4547,1488,3}, {4548,1492,3},{4550,1492,3},{4548,1498,3},{4547,1503,3},{4543,1508,3},{4542,1515,3}, {4543,1522,3},{4545,1528,3},{4547,1537,3},{4552,1533,3},{4555,1530,3},{4562,1530,3}, {4563,1530,3},{4563,1538,3},{4563,1540,3},{4565,1542,3},{4568,1537,3},{4570,1537,3}, {4572,1535,3},{4570,1533,3},{4568,1532,3},{4570,1525,3},{4570,1523,3},{4573,1523,3}, {4575,1528,3},{4578,1535,3},{4582,1542,3},{4583,1548,3},{4583,1555,3},{4583,1563,3}, {4583,1565,3},{4583,1567,3},{4583,1568,3},{4588,1568,3},{4592,1572,3},{4598,1572,3}, {4603,1572,3},{4605,1572,3},{4608,1567,3},{4612,1560,3},{4615,1563,3},{4620,1567,3}, {4622,1567,3},{4622,1575,3},{4622,1578,3},{4625,1583,3},{4628,1590,3},{4630,1597,3}, {4633,1602,3},{4635,1608,3},{4638,1613,3},{4637,1620,3},{4637,1628,3},{4637,1630,3}, {4642,1630,3},{4647,1630,3},{4652,1630,3},{4653,1630,3},{4653,1637,3},{4653,1640,3}, {4652,1645,3},{4653,1652,3},{4650,1653,3},{4647,1667,3},{4640,1672,3},{4640,1675,3}, {4638,1675,3},{4640,1680,3},{4637,1682,3},{4638,1683,3},{4633,1688,3},{4628,1688,3}, {4625,1693,3},{4618,1710,3},{4618,1715,3},{4615,1718,3},{4612,1718,3},{4610,1723,3}, {4608,1720,3},{4608,1723,3},{4607,1723,3},{4607,1727,3},{4603,1725,3},{4603,1730,3}, {4602,1725,3},{4602,1730,3},{4598,1730,3},{4598,1732,3},{4597,1732,3},{4600,1733,3}, {4598,1735,3},{4600,1737,3},{4597,1737,3},{4597,1738,3},{4597,1735,3},{4595,1737,3}, {4595,1738,3},{4593,1738,3},{4593,1743,3},{4595,1743,3},{4595,1745,3},{4593,1758,3}, {4590,1763,3},{4583,1767,3},{4582,1783,3},{4577,1787,3},{4578,1790,3},{4578,1800,3}, {4577,1808,3},{4578,1815,3},{4578,1820,3},{4577,1828,3},{4577,1837,3},{4575,1840,3}, {4577,1847,3},{4580,1848,3},{4580,1857,3},{4585,1862,3},{4592,1867,3},{4592,1872,3}, {4588,1880,3},{4587,1883,3},{4582,1883,3},{4577,1885,3},{4575,1887,3},{4572,1892,3}, {4568,1897,3},{4563,1895,3},{4558,1892,3},{4553,1892,3},{4553,1893,3},{4555,1900,3}, {4553,1905,3},{4552,1912,3},{4550,1910,3},{4550,1908,3},{4550,1907,3},{4548,1900,3}, {4547,1900,3},{4543,1902,3},{4538,1898,3},{4535,1903,3},{4532,1910,3},{4528,1915,3}, {4528,1923,3},{4528,1925,3},{4528,1927,3},{4523,1928,3},{4523,1937,3},{4527,1943,3}, {4522,1947,3},{4518,1940,3},{4518,1933,3},{4517,1930,3},{4517,1928,3},{4518,1920,3}, {4517,1922,3},{4512,1922,3},{4512,1920,3},{4510,1917,3},{4512,1910,3},{4510,1910,3}, {4505,1912,3},{4500,1908,3},{4495,1905,3},{4495,1907,3},{4497,1907,3},{4497,1908,3}, {4495,1910,3},{4493,1908,3},{4490,1903,3},{4485,1898,3},{4485,1895,3},{4485,1887,3}, {4487,1882,3},{4490,1875,3},{4493,1875,3},{4493,1877,3},{4495,1878,3},{4500,1877,3}, {4500,1875,3},{4502,1872,3},{4503,1870,3},{4508,1867,3},{4507,1867,3},{4507,1865,3}, {4505,1865,3},{4505,1863,3},{4505,1862,3},{4507,1860,3},{4507,1862,3},{4508,1860,3}, {4508,1858,3},{4507,1855,3},{4503,1852,3},{4505,1845,3},{4510,1842,3},{4510,1840,3}, {4508,1838,3},{4510,1832,3},{4512,1825,3},{4512,1823,3},{4508,1818,3},{4508,1812,3}, {4510,1805,3},{4512,1805,3},{4513,1803,3},{4513,1802,3},{4513,1800,3},{4508,1795,3}, {4505,1790,3},{4502,1783,3},{4505,1777,3},{4508,1772,3},{4512,1765,3},{4510,1762,3}, {4510,1755,3},{4510,1748,3},{4510,1743,3},{4512,1743,3},{4512,1742,3},{4512,1735,3}, {4512,1733,3},{4513,1733,3},{4517,1728,3},{4512,1722,3},{4512,1720,3},{4513,1717,3}, {4515,1710,3},{4518,1705,3},{4522,1700,3},{4523,1697,3},{4522,1693,3},{4523,1692,3}, {4523,1693,3},{4525,1692,3},{4520,1688,3},{4517,1682,3},{4518,1675,3},{4518,1667,3}, {4520,1662,3},{4520,1658,3},{4520,1652,3},{4515,1648,3},{4512,1643,3},{4507,1640,3}, {4502,1637,3},{4500,1630,3},{4500,1627,3},{4503,1620,3},{4505,1613,3},{4507,1608,3}, {4510,1607,3},{4515,1603,3},{4520,1600,3},{4520,1595,3},{4523,1588,3},{4523,1585,3}, {4522,1578,3},{4523,1572,3},{4522,1572,3},{4520,1573,3},{4515,1577,3},{4510,1577,3}, {4505,1575,3},{4500,1575,3},{4497,1572,3},{4492,1568,3},{4487,1570,3},{4483,1577,3}, {4480,1582,3},{4475,1582,3},{4470,1580,3},{4467,1585,3},{4465,1590,3},{4462,1595,3}, {4457,1598,3},{4453,1603,3},{4455,1610,3},{4455,1612,3},{4453,1612,3},{4453,1613,3}, {4448,1615,3},{4443,1615,3},{4438,1613,3},{4437,1615,3},{4433,1620,3},{4432,1620,3}, {4427,1623,3},{4422,1625,3},{4417,1628,3},{4412,1632,3},{4410,1638,3},{4408,1645,3}, {4407,1647,3},{4403,1653,3},{4400,1658,3},{4395,1660,3},{4392,1665,3},{4388,1672,3}, {4385,1675,3},{4380,1678,3},{4377,1682,3},{4372,1687,3},{4368,1692,3},{4363,1695,3}, {4363,1697,3},{4360,1702,3},{4357,1707,3},{4357,1708,3},{4357,1715,3},{4358,1722,3}, {4357,1722,3},{4355,1722,3},{4348,1722,3},{4347,1727,3},{4342,1727,3},{4337,1727,3}, {4332,1727,3},{4327,1728,3},{4323,1735,3},{4320,1740,3},{4317,1745,3},{4313,1750,3}, {4310,1755,3},{4310,1758,3},{4312,1762,3},{4310,1763,3},{4308,1765,3},{4307,1765,3}, {4302,1768,3},{4297,1770,3},{4295,1763,3},{4295,1752,3},{4687,1610,131}, {4693,1620,3},{4695,1625,3},{4700,1628,3},{4702,1630,3},{4700,1630,3},{4702,1640,3}, {4700,1643,3},{4700,1652,3},{4703,1648,3},{4703,1645,3},{4705,1652,3},{4710,1647,3}, {4713,1653,3},{4715,1653,3},{4715,1645,3},{4718,1647,3},{4722,1642,3},{4725,1643,3}, {4727,1647,3},{4728,1650,3},{4733,1647,3},{4735,1645,3},{4742,1645,3},{4742,1648,3}, {4740,1650,3},{4742,1652,3},{4742,1658,3},{4743,1662,3},{4747,1667,3},{4750,1665,3}, {4752,1670,3},{4755,1672,3},{4757,1667,3},{4762,1667,3},{4763,1665,3},{4763,1658,3}, {4767,1643,3},{4770,1645,3},{4768,1648,3},{4772,1655,3},{4775,1655,3},{4777,1663,3}, {4773,1672,3},{4772,1673,3},{4768,1677,3},{4768,1682,3},{4772,1685,3},{4772,1687,3}, {4768,1688,3},{4768,1690,3},{4772,1710,3},{4773,1707,3},{4778,1707,3},{4780,1705,3}, {4782,1707,3},{4787,1702,3},{4788,1708,3},{4793,1710,3},{4797,1712,3},{4798,1710,3}, {4800,1715,3},{4802,1718,3},{4803,1723,3},{4800,1727,3},{4800,1733,3},{4788,1747,3}, {4787,1753,3},{4783,1757,3},{4783,1762,3},{4777,1772,3},{4775,1778,3},{4777,1798,3}, {4773,1830,3},{4777,1845,3},{4775,1850,3},{4777,1855,3},{4777,1867,3},{4782,1875,3}, {4782,1885,3},{4783,1885,3},{4788,1877,3},{4797,1877,3},{4798,1875,3},{4800,1882,3}, {4805,1885,3},{4805,1895,3},{4807,1903,3},{4805,1907,3},{4805,1923,3},{4807,1927,3}, {4808,1937,3},{4808,1947,3},{4820,1952,3},{4823,1963,3},{4823,1967,3},{4820,1970,3}, {4820,1978,3},{4815,1978,3},{4815,1988,3},{4813,1992,3},{4822,2013,3},{4827,2015,3}, {4827,2023,3},{4828,2025,3},{4825,2028,3},{4827,2030,3},{4828,2033,3},{4835,2040,3}, {4843,2043,3},{4848,2050,3},{4853,2050,3},{4858,2082,3},{4855,2087,3},{4855,2092,3}, {4852,2095,3},{4852,2107,3},{4848,2112,3},{4852,2117,3},{4853,2123,3},{4852,2128,3}, {4855,2132,3},{4857,2145,3},{4855,2152,3},{4850,2155,3},{4850,2162,3},{4845,2163,3}, {4837,2172,3},{4833,2178,3},{4833,2182,3},{4837,2185,3},{4838,2193,3},{4838,2210,3}, {4842,2215,3},{4840,2227,3},{4837,2227,3},{4837,2232,3},{4832,2232,3},{4825,2238,3}, {4825,2250,3},{4820,2255,3},{4820,2258,3},{4818,2257,3},{4810,2262,3},{4812,2280,3}, {4805,2288,3},{4798,2285,3},{4795,2290,3},{4790,2285,3},{4788,2277,3},{4783,2277,3}, {4783,2272,3},{4778,2265,3},{4777,2255,3},{4780,2247,3},{4778,2243,3},{4775,2242,3}, {4773,2238,3},{4775,2233,3},{4773,2228,3},{4768,2223,3},{4760,2218,3},{4758,2212,3}, {4752,2202,3},{4738,2202,3},{4735,2193,3},{4730,2187,3},{4727,2187,3},{4723,2183,3}, {4718,2185,3},{4717,2180,3},{4712,2178,3},{4708,2172,3},{4703,2165,3},{4700,2170,3}, {4698,2167,3},{4695,2167,3},{4692,2160,3},{4685,2160,3},{4683,2155,3},{4682,2152,3}, {4675,2148,3},{4673,2153,3},{4672,2152,3},{4668,2148,3},{4668,2145,3},{4665,2145,3}, {4662,2140,3},{4662,2133,3},{4655,2132,3},{4650,2127,3},{4645,2130,3},{4642,2130,3}, {4640,2122,3},{4638,2120,3},{4630,2118,3},{4628,2112,3},{4625,2108,3},{4623,2105,3}, {4627,2102,3},{4625,2098,3},{4627,2095,3},{4625,2092,3},{4627,2087,3},{4627,2082,3}, {4623,2075,3},{4620,2077,3},{4620,2072,3},{4617,2072,3},{4613,2063,3},{4617,2055,3}, {4618,2048,3},{4615,2047,3},{4617,2035,3},{4615,2028,3},{4612,2027,3},{4615,2020,3}, {4615,2015,3},{4617,2012,3},{4615,2005,3},{4617,2002,3},{4617,1997,3},{4615,1985,3}, {4613,1980,3},{4617,1972,3},{4617,1957,3},{4615,1952,3},{4612,1952,3},{4610,1948,3}, {4607,1947,3},{4607,1942,3},{4603,1940,3},{4603,1930,3},{4598,1928,3},{4598,1915,3}, {4602,1913,3},{4603,1910,3},{4602,1907,3},{4597,1907,3},{4597,1902,3},{4595,1900,3}, {4593,1900,3},{4593,1892,3},{4592,1888,3},{4592,1883,3},{4592,1882,3},{4588,1880,3}, {4592,1872,3},{4592,1867,3},{4585,1862,3},{4580,1857,3},{4580,1848,3},{4577,1847,3}, {4575,1840,3},{4577,1837,3},{4577,1828,3},{4578,1820,3},{4578,1815,3},{4577,1808,3}, {4578,1800,3},{4578,1790,3},{4577,1787,3},{4582,1783,3},{4583,1767,3},{4590,1763,3}, {4593,1758,3},{4595,1745,3},{4595,1743,3},{4593,1743,3},{4593,1738,3},{4595,1738,3}, {4595,1737,3},{4597,1735,3},{4597,1738,3},{4597,1737,3},{4600,1737,3},{4598,1735,3}, {4600,1733,3},{4597,1732,3},{4598,1732,3},{4598,1730,3},{4602,1730,3},{4602,1725,3}, {4603,1730,3},{4603,1725,3},{4607,1727,3},{4607,1723,3},{4608,1723,3},{4608,1720,3}, {4610,1723,3},{4612,1718,3},{4615,1718,3},{4618,1715,3},{4618,1710,3},{4625,1693,3}, {4628,1688,3},{4633,1688,3},{4638,1683,3},{4637,1682,3},{4640,1680,3},{4638,1675,3}, {4640,1675,3},{4640,1672,3},{4647,1667,3},{4650,1653,3},{4653,1652,3},{4657,1652,3}, {4657,1648,3},{4662,1645,3},{4665,1638,3},{4667,1638,3},{4667,1642,3},{4668,1643,3}, {4670,1638,3},{4672,1638,3},{4672,1637,3},{4675,1632,3},{4680,1632,3},{4680,1633,3}, {4685,1635,3},{4687,1630,3},{4688,1623,3},{4687,1610,3},{4707,958,131}, {4710,963,3},{4713,963,3},{4715,962,3},{4717,957,3},{4722,958,3},{4727,953,3}, {4737,962,3},{4738,967,3},{4742,965,3},{4745,965,3},{4747,960,3},{4750,957,3}, {4753,957,3},{4758,975,3},{4760,978,3},{4758,982,3},{4755,982,3},{4753,985,3}, {4755,988,3},{4753,992,3},{4755,997,3},{4753,997,3},{4748,1000,3},{4750,1005,3}, {4743,1010,3},{4742,1007,3},{4737,1010,3},{4737,1012,3},{4737,1015,3},{4738,1018,3}, {4738,1023,3},{4733,1020,3},{4732,1022,3},{4730,1018,3},{4727,1017,3},{4728,1023,3}, {4732,1033,3},{4737,1038,3},{4738,1043,3},{4743,1047,3},{4748,1047,3},{4750,1043,3}, {4755,1045,3},{4758,1043,3},{4758,1047,3},{4758,1048,3},{4755,1047,3},{4753,1050,3}, {4753,1057,3},{4757,1060,3},{4755,1075,3},{4752,1077,3},{4753,1088,3},{4752,1092,3}, {4748,1087,3},{4748,1092,3},{4743,1098,3},{4742,1097,3},{4740,1098,3},{4740,1112,3}, {4743,1122,3},{4743,1123,3},{4740,1123,3},{4740,1128,3},{4745,1133,3},{4745,1140,3}, {4747,1140,3},{4748,1138,3},{4752,1143,3},{4752,1150,3},{4752,1157,3},{4758,1160,3}, {4760,1163,3},{4758,1168,3},{4758,1183,3},{4760,1185,3},{4762,1200,3},{4762,1220,3}, {4763,1220,3},{4770,1218,3},{4775,1225,3},{4770,1223,3},{4768,1225,3},{4770,1233,3}, {4768,1237,3},{4770,1245,3},{4768,1245,3},{4767,1245,3},{4763,1252,3},{4765,1258,3}, {4767,1260,3},{4768,1267,3},{4767,1278,3},{4765,1277,3},{4762,1283,3},{4762,1280,3}, {4758,1278,3},{4755,1282,3},{4755,1285,3},{4748,1295,3},{4748,1302,3},{4750,1305,3}, {4753,1303,3},{4757,1307,3},{4758,1305,3},{4760,1307,3},{4763,1310,3},{4768,1308,3}, {4772,1302,3},{4772,1298,3},{4772,1292,3},{4778,1293,3},{4785,1302,3},{4793,1293,3}, {4797,1288,3},{4802,1285,3},{4808,1277,3},{4812,1277,3},{4817,1283,3},{4820,1287,3}, {4822,1297,3},{4827,1302,3},{4830,1317,3},{4830,1328,3},{4837,1340,3},{4843,1343,3}, {4847,1343,3},{4852,1345,3},{4857,1343,3},{4857,1345,3},{4857,1347,3},{4857,1350,3}, {4858,1352,3},{4857,1357,3},{4857,1360,3},{4852,1373,3},{4857,1375,3},{4858,1380,3}, {4862,1382,3},{4870,1382,3},{4870,1383,3},{4873,1380,3},{4877,1383,3},{4872,1400,3}, {4867,1405,3},{4863,1402,3},{4860,1407,3},{4860,1420,3},{4857,1433,3},{4855,1433,3}, {4860,1438,3},{4860,1443,3},{4865,1447,3},{4862,1457,3},{4863,1462,3},{4860,1463,3}, {4860,1467,3},{4858,1467,3},{4858,1470,3},{4860,1472,3},{4868,1473,3},{4873,1480,3}, {4878,1482,3},{4877,1497,3},{4882,1495,3},{4892,1500,3},{4898,1498,3},{4902,1500,3}, {4902,1503,3},{4900,1515,3},{4895,1517,3},{4895,1527,3},{4900,1528,3},{4898,1532,3}, {4898,1537,3},{4895,1543,3},{4895,1547,3},{4892,1552,3},{4890,1562,3},{4887,1568,3}, {4888,1583,3},{4887,1585,3},{4887,1588,3},{4885,1588,3},{4885,1590,3},{4883,1590,3}, {4883,1595,3},{4880,1597,3},{4875,1610,3},{4873,1633,3},{4875,1633,3},{4873,1637,3}, {4875,1642,3},{4882,1647,3},{4882,1653,3},{4878,1660,3},{4878,1665,3},{4873,1670,3}, {4875,1672,3},{4872,1683,3},{4873,1688,3},{4870,1692,3},{4855,1695,3},{4847,1687,3}, {4837,1683,3},{4833,1690,3},{4828,1692,3},{4828,1695,3},{4817,1698,3},{4815,1703,3}, {4815,1707,3},{4810,1710,3},{4808,1708,3},{4803,1708,3},{4803,1715,3},{4800,1715,3}, {4798,1710,3},{4797,1712,3},{4793,1710,3},{4788,1708,3},{4787,1702,3},{4782,1707,3}, {4780,1705,3},{4778,1707,3},{4773,1707,3},{4772,1710,3},{4768,1690,3},{4768,1688,3}, {4772,1687,3},{4772,1685,3},{4768,1682,3},{4768,1677,3},{4772,1673,3},{4773,1672,3}, {4777,1663,3},{4775,1655,3},{4772,1655,3},{4768,1648,3},{4770,1645,3},{4767,1643,3}, {4763,1658,3},{4763,1665,3},{4762,1667,3},{4757,1667,3},{4755,1672,3},{4752,1670,3}, {4750,1665,3},{4747,1667,3},{4743,1662,3},{4742,1658,3},{4742,1652,3},{4740,1650,3}, {4742,1648,3},{4742,1645,3},{4735,1645,3},{4733,1647,3},{4728,1650,3},{4727,1647,3}, {4725,1643,3},{4722,1642,3},{4718,1647,3},{4715,1645,3},{4715,1653,3},{4713,1653,3}, {4710,1647,3},{4705,1652,3},{4703,1645,3},{4703,1648,3},{4700,1652,3},{4700,1643,3}, {4702,1640,3},{4700,1630,3},{4702,1630,3},{4700,1628,3},{4695,1625,3},{4693,1620,3}, {4687,1610,3},{4683,1598,3},{4675,1598,3},{4670,1603,3},{4667,1603,3},{4668,1600,3}, {4672,1587,3},{4672,1580,3},{4670,1577,3},{4672,1565,3},{4668,1565,3},{4668,1563,3}, {4667,1555,3},{4663,1553,3},{4662,1550,3},{4662,1547,3},{4665,1542,3},{4665,1527,3}, {4665,1513,3},{4665,1503,3},{4662,1498,3},{4663,1495,3},{4662,1492,3},{4660,1487,3}, {4652,1482,3},{4650,1472,3},{4645,1468,3},{4643,1458,3},{4638,1457,3},{4643,1452,3}, {4643,1445,3},{4645,1443,3},{4643,1432,3},{4645,1415,3},{4648,1412,3},{4650,1405,3}, {4648,1400,3},{4652,1392,3},{4653,1372,3},{4655,1355,3},{4657,1343,3},{4658,1338,3}, {4655,1332,3},{4655,1325,3},{4660,1315,3},{4662,1285,3},{4665,1277,3},{4663,1273,3}, {4667,1270,3},{4667,1257,3},{4670,1240,3},{4678,1235,3},{4678,1228,3},{4685,1230,3}, {4688,1227,3},{4688,1222,3},{4690,1218,3},{4692,1215,3},{4693,1217,3},{4697,1213,3}, {4702,1213,3},{4703,1220,3},{4707,1223,3},{4708,1223,3},{4710,1218,3},{4708,1210,3}, {4707,1208,3},{4705,1202,3},{4703,1192,3},{4698,1175,3},{4702,1163,3},{4700,1153,3}, {4702,1148,3},{4697,1142,3},{4700,1135,3},{4697,1118,3},{4692,1110,3},{4687,1108,3}, {4682,1107,3},{4677,1102,3},{4678,1095,3},{4677,1088,3},{4678,1085,3},{4680,1073,3}, {4683,1077,3},{4685,1072,3},{4687,1070,3},{4687,1067,3},{4685,1057,3},{4687,1047,3}, {4693,1048,3},{4700,1038,3},{4700,1035,3},{4695,1030,3},{4693,1032,3},{4693,1025,3}, {4688,1023,3},{4685,1013,3},{4687,1007,3},{4690,1002,3},{4692,997,3},{4692,993,3}, {4693,988,3},{4700,990,3},{4700,987,3},{4702,988,3},{4707,968,3},{4707,958,3}, {4548,1360,131},{4552,1360,3},{4553,1357,3},{4555,1375,3},{4557,1373,3}, {4558,1370,3},{4560,1372,3},{4558,1385,3},{4563,1392,3},{4567,1387,3},{4575,1380,3}, {4578,1372,3},{4580,1368,3},{4582,1360,3},{4585,1358,3},{4595,1363,3},{4598,1363,3}, {4600,1358,3},{4597,1355,3},{4602,1348,3},{4603,1352,3},{4607,1350,3},{4610,1360,3}, {4618,1367,3},{4618,1365,3},{4618,1357,3},{4622,1355,3},{4623,1343,3},{4622,1345,3}, {4622,1342,3},{4630,1338,3},{4633,1343,3},{4637,1343,3},{4640,1357,3},{4643,1360,3}, {4645,1368,3},{4653,1372,3},{4652,1392,3},{4648,1400,3},{4650,1405,3},{4648,1412,3}, {4645,1415,3},{4643,1432,3},{4645,1443,3},{4643,1445,3},{4643,1452,3},{4638,1457,3}, {4643,1458,3},{4645,1468,3},{4650,1472,3},{4652,1482,3},{4660,1487,3},{4662,1492,3}, {4663,1495,3},{4662,1498,3},{4665,1503,3},{4665,1513,3},{4665,1527,3},{4665,1542,3}, {4662,1547,3},{4662,1550,3},{4663,1553,3},{4667,1555,3},{4668,1563,3},{4668,1565,3}, {4672,1565,3},{4670,1577,3},{4672,1580,3},{4672,1587,3},{4668,1600,3},{4667,1603,3}, {4670,1603,3},{4675,1598,3},{4683,1598,3},{4687,1610,3},{4688,1623,3},{4687,1630,3}, {4685,1635,3},{4680,1633,3},{4680,1632,3},{4675,1632,3},{4672,1637,3},{4672,1638,3}, {4670,1638,3},{4668,1643,3},{4667,1642,3},{4667,1638,3},{4665,1638,3},{4662,1645,3}, {4657,1648,3},{4657,1652,3},{4653,1652,3},{4652,1645,3},{4653,1640,3},{4653,1637,3}, {4653,1630,3},{4652,1630,3},{4647,1630,3},{4642,1630,3},{4637,1630,3},{4637,1628,3}, {4637,1620,3},{4638,1613,3},{4635,1608,3},{4633,1602,3},{4630,1597,3},{4628,1590,3}, {4625,1583,3},{4622,1578,3},{4622,1575,3},{4622,1567,3},{4620,1567,3},{4615,1563,3}, {4612,1560,3},{4608,1567,3},{4605,1572,3},{4603,1572,3},{4598,1572,3},{4592,1572,3}, {4588,1568,3},{4583,1568,3},{4583,1567,3},{4583,1565,3},{4583,1563,3},{4583,1555,3}, {4583,1548,3},{4582,1542,3},{4578,1535,3},{4575,1528,3},{4573,1523,3},{4570,1523,3}, {4570,1525,3},{4568,1532,3},{4570,1533,3},{4572,1535,3},{4570,1537,3},{4568,1537,3}, {4565,1542,3},{4563,1540,3},{4563,1538,3},{4563,1530,3},{4562,1530,3},{4555,1530,3}, {4552,1533,3},{4547,1537,3},{4545,1528,3},{4543,1522,3},{4542,1515,3},{4543,1508,3}, {4547,1503,3},{4548,1498,3},{4550,1492,3},{4548,1492,3},{4547,1488,3},{4547,1482,3}, {4548,1478,3},{4552,1473,3},{4555,1470,3},{4558,1465,3},{4563,1458,3},{4562,1458,3}, {4560,1458,3},{4557,1457,3},{4553,1450,3},{4550,1445,3},{4548,1437,3},{4547,1432,3}, {4547,1430,3},{4548,1430,3},{4548,1428,3},{4547,1423,3},{4548,1417,3},{4548,1410,3}, {4553,1405,3},{4552,1403,3},{4552,1402,3},{4550,1402,3},{4545,1400,3},{4545,1398,3}, {4545,1397,3},{4545,1395,3},{4545,1392,3},{4547,1385,3},{4547,1383,3},{4545,1377,3}, {4543,1370,3},{4543,1368,3},{4545,1367,3},{4545,1365,3},{4548,1360,3},{4378,753,131}, {4388,750,3},{4390,755,3},{4395,757,3},{4400,765,3},{4405,767,3},{4408,770,3}, {4410,770,3},{4413,765,3},{4418,767,3},{4418,762,3},{4417,762,3},{4417,755,3}, {4413,742,3},{4413,735,3},{4415,733,3},{4415,727,3},{4418,723,3},{4418,722,3}, {4422,715,3},{4422,712,3},{4425,705,3},{4425,698,3},{4428,697,3},{4432,693,3}, {4433,693,3},{4438,688,3},{4443,688,3},{4445,693,3},{4448,687,3},{4453,685,3}, {4458,693,3},{4463,697,3},{4467,695,3},{4468,698,3},{4468,707,3},{4472,707,3}, {4475,703,3},{4480,702,3},{4483,703,3},{4487,695,3},{4487,690,3},{4487,685,3}, {4492,675,3},{4502,675,3},{4503,667,3},{4508,665,3},{4512,662,3},{4515,668,3}, {4515,673,3},{4517,677,3},{4513,685,3},{4513,688,3},{4515,690,3},{4517,688,3}, {4518,693,3},{4522,697,3},{4523,705,3},{4522,707,3},{4525,710,3},{4525,713,3}, {4533,712,3},{4533,713,3},{4542,718,3},{4543,712,3},{4548,708,3},{4552,700,3}, {4560,697,3},{4565,698,3},{4567,695,3},{4567,692,3},{4568,690,3},{4570,683,3}, {4573,682,3},{4578,680,3},{4583,682,3},{4583,687,3},{4585,687,3},{4587,697,3}, {4593,703,3},{4588,710,3},{4588,718,3},{4592,730,3},{4593,743,3},{4597,748,3}, {4597,753,3},{4598,755,3},{4598,757,3},{4598,765,3},{4595,772,3},{4593,772,3}, {4593,777,3},{4592,778,3},{4592,787,3},{4593,787,3},{4598,788,3},{4600,792,3}, {4600,802,3},{4605,803,3},{4607,803,3},{4610,805,3},{4612,810,3},{4615,815,3}, {4618,817,3},{4623,813,3},{4625,808,3},{4628,810,3},{4630,813,3},{4632,820,3}, {4637,827,3},{4638,830,3},{4640,832,3},{4642,830,3},{4645,837,3},{4647,843,3}, {4645,847,3},{4640,847,3},{4628,843,3},{4625,845,3},{4622,853,3},{4617,860,3}, {4612,862,3},{4610,870,3},{4612,875,3},{4610,877,3},{4610,882,3},{4608,885,3}, {4605,885,3},{4602,880,3},{4598,878,3},{4595,890,3},{4588,893,3},{4583,892,3}, {4585,895,3},{4583,900,3},{4582,902,3},{4583,903,3},{4592,908,3},{4593,903,3}, {4597,900,3},{4600,903,3},{4603,902,3},{4607,907,3},{4612,908,3},{4618,918,3}, {4622,920,3},{4623,925,3},{4635,930,3},{4637,928,3},{4642,928,3},{4643,925,3}, {4650,928,3},{4650,937,3},{4647,940,3},{4650,945,3},{4650,947,3},{4638,947,3}, {4637,950,3},{4632,952,3},{4630,958,3},{4630,970,3},{4637,973,3},{4635,977,3}, {4637,983,3},{4638,995,3},{4635,1000,3},{4628,1000,3},{4627,1005,3},{4623,1005,3}, {4622,1007,3},{4623,1013,3},{4627,1018,3},{4633,1010,3},{4642,1017,3},{4643,1013,3}, {4642,1008,3},{4645,1005,3},{4647,1007,3},{4648,1005,3},{4653,1005,3},{4657,1008,3}, {4662,1010,3},{4663,1023,3},{4662,1025,3},{4658,1025,3},{4658,1028,3},{4655,1030,3}, {4655,1043,3},{4653,1045,3},{4655,1047,3},{4662,1048,3},{4663,1047,3},{4665,1040,3}, {4668,1038,3},{4672,1042,3},{4673,1042,3},{4677,1045,3},{4680,1043,3},{4682,1047,3}, {4687,1047,3},{4685,1057,3},{4687,1067,3},{4687,1070,3},{4685,1072,3},{4683,1077,3}, {4680,1073,3},{4678,1085,3},{4677,1088,3},{4678,1095,3},{4677,1102,3},{4682,1107,3}, {4687,1108,3},{4692,1110,3},{4697,1118,3},{4700,1135,3},{4697,1142,3},{4702,1148,3}, {4700,1153,3},{4702,1163,3},{4698,1175,3},{4703,1192,3},{4705,1202,3},{4707,1208,3}, {4708,1210,3},{4710,1218,3},{4708,1223,3},{4707,1223,3},{4703,1220,3},{4702,1213,3}, {4697,1213,3},{4693,1217,3},{4692,1215,3},{4690,1218,3},{4688,1222,3},{4688,1227,3}, {4685,1230,3},{4678,1228,3},{4678,1235,3},{4670,1240,3},{4667,1257,3},{4667,1270,3}, {4663,1273,3},{4665,1277,3},{4662,1285,3},{4660,1315,3},{4655,1325,3},{4655,1332,3}, {4658,1338,3},{4657,1343,3},{4655,1355,3},{4653,1372,3},{4645,1368,3},{4643,1360,3}, {4640,1357,3},{4637,1343,3},{4633,1343,3},{4630,1338,3},{4622,1342,3},{4622,1345,3}, {4623,1343,3},{4622,1355,3},{4618,1357,3},{4618,1365,3},{4618,1367,3},{4610,1360,3}, {4607,1350,3},{4603,1352,3},{4602,1348,3},{4597,1355,3},{4600,1358,3},{4598,1363,3}, {4595,1363,3},{4585,1358,3},{4582,1360,3},{4580,1368,3},{4578,1372,3},{4575,1380,3}, {4567,1387,3},{4563,1392,3},{4558,1385,3},{4560,1372,3},{4562,1373,3},{4562,1380,3}, {4563,1377,3},{4563,1375,3},{4567,1375,3},{4570,1373,3},{4577,1363,3},{4578,1355,3}, {4577,1353,3},{4575,1352,3},{4573,1355,3},{4567,1340,3},{4568,1338,3},{4570,1343,3}, {4573,1340,3},{4575,1325,3},{4578,1322,3},{4577,1318,3},{4575,1315,3},{4577,1313,3}, {4577,1312,3},{4573,1312,3},{4572,1307,3},{4570,1307,3},{4568,1310,3},{4570,1315,3}, {4563,1308,3},{4563,1298,3},{4562,1290,3},{4555,1275,3},{4543,1242,3},{4548,1243,3}, {4548,1247,3},{4550,1247,3},{4550,1250,3},{4548,1250,3},{4548,1252,3},{4552,1253,3}, {4555,1258,3},{4553,1255,3},{4555,1252,3},{4557,1250,3},{4557,1248,3},{4553,1243,3}, {4552,1245,3},{4553,1238,3},{4552,1238,3},{4550,1242,3},{4550,1238,3},{4550,1237,3}, {4548,1233,3},{4545,1227,3},{4537,1225,3},{4535,1222,3},{4530,1222,3},{4532,1215,3}, {4527,1217,3},{4527,1220,3},{4530,1220,3},{4528,1223,3},{4527,1222,3},{4522,1222,3}, {4520,1225,3},{4520,1227,3},{4520,1228,3},{4523,1230,3},{4520,1230,3},{4515,1233,3}, {4510,1233,3},{4512,1232,3},{4510,1230,3},{4508,1230,3},{4508,1235,3},{4503,1238,3}, {4502,1237,3},{4502,1238,3},{4503,1238,3},{4507,1237,3},{4502,1243,3},{4503,1243,3}, {4497,1248,3},{4497,1250,3},{4498,1248,3},{4498,1252,3},{4497,1253,3},{4495,1252,3}, {4492,1252,3},{4492,1250,3},{4487,1248,3},{4482,1245,3},{4485,1243,3},{4490,1243,3}, {4490,1242,3},{4487,1238,3},{4483,1242,3},{4482,1240,3},{4482,1243,3},{4480,1242,3}, {4480,1235,3},{4485,1230,3},{4483,1228,3},{4472,1225,3},{4465,1225,3},{4460,1228,3}, {4447,1228,3},{4440,1232,3},{4435,1232,3},{4422,1238,3},{4398,1268,3},{4397,1282,3}, {4383,1305,3},{4367,1330,3},{4362,1347,3},{4363,1352,3},{4357,1357,3},{4355,1362,3}, {4350,1363,3},{4310,1385,3},{4295,1388,3},{4268,1402,3},{4253,1413,3},{4243,1427,3}, {4238,1438,3},{4225,1452,3},{4222,1457,3},{4217,1472,3},{4210,1472,3},{4208,1473,3}, {4202,1488,3},{4200,1500,3},{4195,1507,3},{4192,1517,3},{4192,1528,3},{4190,1540,3}, {4193,1563,3},{4192,1568,3},{4192,1583,3},{4195,1602,3},{4192,1615,3},{4188,1618,3}, {4178,1618,3},{4168,1603,3},{4163,1593,3},{4162,1590,3},{4152,1590,3},{4143,1598,3}, {4123,1653,3},{4120,1658,3},{4108,1705,3},{4103,1718,3},{4097,1728,3},{4090,1735,3}, {4088,1740,3},{4083,1748,3},{4077,1770,3},{4070,1783,3},{4068,1793,3},{4067,1797,3}, {4065,1795,3},{4065,1802,3},{4060,1805,3},{4055,1803,3},{4050,1813,3},{4045,1825,3}, {4028,1843,3},{4013,1852,3},{4010,1852,3},{4005,1848,3},{4003,1843,3},{4000,1842,3}, {3992,1840,3},{3982,1838,3},{3980,1837,3},{3980,1833,3},{3983,1827,3},{3983,1820,3}, {3993,1805,3},{4000,1800,3},{4000,1802,3},{4003,1802,3},{4005,1797,3},{4008,1800,3}, {4010,1802,3},{4013,1798,3},{4017,1793,3},{4025,1792,3},{4028,1787,3},{4030,1767,3}, {4030,1752,3},{4033,1743,3},{4033,1740,3},{4042,1720,3},{4045,1725,3},{4047,1723,3}, {4047,1732,3},{4050,1732,3},{4048,1727,3},{4050,1725,3},{4050,1723,3},{4048,1720,3}, {4050,1718,3},{4052,1708,3},{4050,1700,3},{4045,1692,3},{4032,1680,3},{4015,1670,3}, {4010,1662,3},{4005,1660,3},{3997,1663,3},{3987,1653,3},{3980,1648,3},{3975,1650,3}, {3972,1653,3},{3967,1653,3},{3965,1655,3},{3962,1663,3},{3962,1677,3},{3953,1688,3}, {3950,1697,3},{3948,1702,3},{3943,1705,3},{3940,1717,3},{3932,1712,3},{3927,1712,3}, {3920,1715,3},{3910,1712,3},{3905,1715,3},{3902,1720,3},{3900,1717,3},{3895,1717,3}, {3890,1710,3},{3892,1708,3},{3890,1702,3},{3892,1700,3},{3893,1697,3},{3892,1683,3}, {3890,1678,3},{3880,1660,3},{3870,1653,3},{3868,1655,3},{3857,1657,3},{3843,1657,3}, {3835,1648,3},{3830,1633,3},{3813,1617,3},{3798,1612,3},{3792,1607,3},{3792,1575,3}, {3795,1567,3},{3800,1563,3},{3803,1565,3},{3808,1563,3},{3815,1565,3},{3820,1563,3}, {3823,1563,3},{3827,1575,3},{3830,1582,3},{3852,1592,3},{3855,1592,3},{3862,1583,3}, {3863,1583,3},{3867,1585,3},{3872,1598,3},{3872,1610,3},{3872,1613,3},{3875,1618,3}, {3883,1622,3},{3892,1622,3},{3893,1622,3},{3895,1615,3},{3902,1610,3},{3913,1607,3}, {3935,1603,3},{3952,1593,3},{3955,1587,3},{3970,1580,3},{3980,1578,3},{3983,1577,3}, {3987,1578,3},{4003,1567,3},{4005,1563,3},{4007,1563,3},{4008,1557,3},{4007,1550,3}, {3998,1542,3},{4000,1537,3},{4003,1532,3},{4003,1527,3},{4005,1528,3},{4007,1527,3}, {4017,1513,3},{4017,1503,3},{4022,1498,3},{4023,1492,3},{4027,1490,3},{4028,1493,3}, {4033,1493,3},{4035,1498,3},{4040,1500,3},{4057,1490,3},{4067,1478,3},{4067,1473,3}, {4063,1468,3},{4065,1463,3},{4062,1458,3},{4062,1452,3},{4063,1448,3},{4062,1445,3}, {4057,1435,3},{4058,1432,3},{4062,1433,3},{4063,1438,3},{4067,1443,3},{4070,1448,3}, {4075,1445,3},{4077,1440,3},{4082,1432,3},{4083,1427,3},{4082,1422,3},{4080,1418,3}, {4083,1410,3},{4082,1407,3},{4078,1408,3},{4080,1405,3},{4087,1405,3},{4097,1398,3}, {4102,1392,3},{4108,1390,3},{4118,1380,3},{4125,1372,3},{4125,1360,3},{4123,1357,3}, {4122,1358,3},{4120,1357,3},{4128,1335,3},{4130,1330,3},{4127,1317,3},{4122,1310,3}, {4122,1305,3},{4130,1300,3},{4138,1292,3},{4142,1283,3},{4140,1277,3},{4147,1267,3}, {4145,1262,3},{4162,1247,3},{4168,1235,3},{4173,1223,3},{4187,1218,3},{4193,1212,3}, {4195,1203,3},{4198,1202,3},{4203,1192,3},{4203,1183,3},{4213,1175,3},{4222,1170,3}, {4230,1162,3},{4240,1138,3},{4240,1140,3},{4240,1137,3},{4240,1128,3},{4242,1127,3}, {4240,1120,3},{4237,1118,3},{4237,1115,3},{4240,1110,3},{4243,1108,3},{4245,1110,3}, {4245,1117,3},{4252,1118,3},{4257,1115,3},{4257,1112,3},{4263,1108,3},{4265,1100,3}, {4270,1098,3},{4275,1093,3},{4278,1078,3},{4280,1073,3},{4282,1077,3},{4288,1078,3}, {4292,1075,3},{4295,1067,3},{4295,1058,3},{4295,1055,3},{4292,1053,3},{4293,1050,3}, {4298,1048,3},{4300,1052,3},{4307,1053,3},{4315,1055,3},{4323,1053,3},{4340,1042,3}, {4345,1037,3},{4347,1032,3},{4355,1030,3},{4383,1025,3},{4390,1022,3},{4402,1010,3}, {4405,1000,3},{4403,997,3},{4410,983,3},{4408,982,3},{4407,985,3},{4405,983,3}, {4403,985,3},{4403,983,3},{4405,982,3},{4410,973,3},{4413,967,3},{4413,962,3}, {4417,960,3},{4422,950,3},{4423,948,3},{4423,943,3},{4425,942,3},{4425,940,3}, {4430,933,3},{4435,923,3},{4433,922,3},{4430,922,3},{4432,915,3},{4437,913,3}, {4438,895,3},{4442,892,3},{4443,877,3},{4432,850,3},{4428,843,3},{4425,845,3}, {4422,842,3},{4418,842,3},{4413,827,3},{4410,823,3},{4405,823,3},{4400,815,3}, {4395,817,3},{4390,807,3},{4385,795,3},{4382,777,3},{4378,768,3},{4378,760,3}, {4378,753,3},{4392,1240,131},{4395,1242,3},{4398,1245,3},{4398,1252,3}, {4395,1252,3},{4390,1247,3},{4392,1240,3},{4758,758,131},{4763,757,3},{4767,752,3}, {4770,752,3},{4773,755,3},{4778,753,3},{4785,757,3},{4788,755,3},{4790,758,3}, {4793,758,3},{4798,762,3},{4805,757,3},{4812,758,3},{4825,768,3},{4830,770,3}, {4833,775,3},{4840,773,3},{4848,777,3},{4852,780,3},{4858,780,3},{4865,783,3}, {4870,795,3},{4875,797,3},{4875,802,3},{4878,803,3},{4880,810,3},{4890,813,3}, {4895,818,3},{4897,823,3},{4898,808,3},{4905,795,3},{4903,787,3},{4905,780,3}, {4905,777,3},{4905,765,3},{4908,760,3},{4908,753,3},{4913,748,3},{4915,750,3}, {4917,748,3},{4917,738,3},{4915,737,3},{4913,732,3},{4912,730,3},{4913,723,3}, {4912,720,3},{4913,712,3},{4915,710,3},{4915,708,3},{4913,708,3},{4912,705,3}, {4918,703,3},{4920,695,3},{4922,693,3},{4922,685,3},{4918,687,3},{4917,685,3}, {4915,683,3},{4917,673,3},{4918,672,3},{4922,673,3},{4922,670,3},{4928,667,3}, {4933,657,3},{4935,657,3},{4937,660,3},{4940,653,3},{4943,653,3},{4947,647,3}, {4948,642,3},{4947,637,3},{4953,635,3},{4955,637,3},{4957,637,3},{4963,643,3}, {4967,642,3},{4970,652,3},{4973,650,3},{4982,652,3},{4982,640,3},{4985,637,3}, {4983,632,3},{4987,630,3},{4988,625,3},{4995,622,3},{4997,618,3},{4995,618,3}, {5002,613,3},{5005,613,3},{5007,612,3},{5013,613,3},{5013,615,3},{5017,613,3}, {5018,618,3},{5023,617,3},{5027,628,3},{5032,632,3},{5030,637,3},{5033,640,3}, {5038,635,3},{5043,637,3},{5047,633,3},{5048,635,3},{5050,622,3},{5055,617,3}, {5058,623,3},{5058,625,3},{5062,627,3},{5062,617,3},{5065,618,3},{5072,612,3}, {5072,603,3},{5075,602,3},{5077,602,3},{5080,598,3},{5080,602,3},{5085,602,3}, {5085,607,3},{5092,608,3},{5093,602,3},{5097,602,3},{5097,603,3},{5098,595,3}, {5097,588,3},{5100,590,3},{5105,587,3},{5107,590,3},{5103,593,3},{5103,595,3}, {5108,600,3},{5115,617,3},{5117,615,3},{5118,617,3},{5120,617,3},{5117,608,3}, {5122,607,3},{5123,608,3},{5137,622,3},{5140,622,3},{5140,620,3},{5147,622,3}, {5152,620,3},{5160,610,3},{5165,612,3},{5167,603,3},{5172,603,3},{5173,595,3}, {5177,598,3},{5182,595,3},{5183,602,3},{5187,605,3},{5183,617,3},{5185,617,3}, {5190,612,3},{5190,617,3},{5187,620,3},{5187,628,3},{5185,632,3},{5185,637,3}, {5183,637,3},{5183,640,3},{5187,640,3},{5185,647,3},{5190,660,3},{5192,668,3}, {5190,672,3},{5197,683,3},{5202,680,3},{5203,668,3},{5207,670,3},{5208,675,3}, {5212,677,3},{5212,687,3},{5217,690,3},{5218,695,3},{5222,698,3},{5223,705,3}, {5228,703,3},{5235,707,3},{5238,707,3},{5247,698,3},{5243,695,3},{5247,685,3}, {5247,675,3},{5248,670,3},{5255,668,3},{5257,677,3},{5258,672,3},{5263,672,3}, {5263,673,3},{5265,678,3},{5263,705,3},{5282,707,3},{5287,710,3},{5293,718,3}, {5302,722,3},{5313,718,3},{5320,722,3},{5323,720,3},{5325,723,3},{5330,723,3}, {5332,728,3},{5330,737,3},{5332,733,3},{5333,705,3},{5340,702,3},{5350,705,3}, {5352,710,3},{5353,715,3},{5357,708,3},{5358,710,3},{5367,723,3},{5368,730,3}, {5368,747,3},{5367,752,3},{5370,768,3},{5372,797,3},{5370,803,3},{5363,805,3}, {5358,812,3},{5357,812,3},{5357,815,3},{5353,817,3},{5352,817,3},{5350,807,3}, {5347,807,3},{5343,810,3},{5345,815,3},{5340,820,3},{5340,823,3},{5343,830,3}, {5352,832,3},{5352,823,3},{5353,823,3},{5360,825,3},{5362,832,3},{5362,835,3}, {5357,838,3},{5353,855,3},{5347,848,3},{5335,850,3},{5347,850,3},{5353,857,3}, {5365,848,3},{5370,848,3},{5385,858,3},{5388,860,3},{5390,867,3},{5385,873,3}, {5383,880,3},{5383,890,3},{5383,902,3},{5385,902,3},{5385,908,3},{5387,928,3}, {5358,957,3},{5355,968,3},{5353,983,3},{5355,982,3},{5357,968,3},{5362,957,3}, {5370,953,3},{5373,943,3},{5382,940,3},{5385,933,3},{5388,922,3},{5390,903,3}, {5388,898,3},{5395,890,3},{5398,888,3},{5403,883,3},{5405,888,3},{5402,898,3}, {5403,900,3},{5408,902,3},{5412,898,3},{5415,898,3},{5415,895,3},{5412,887,3}, {5418,882,3},{5425,885,3},{5427,892,3},{5432,897,3},{5428,890,3},{5430,873,3}, {5427,868,3},{5428,863,3},{5433,860,3},{5435,862,3},{5435,870,3},{5437,863,3}, {5440,863,3},{5440,887,3},{5445,895,3},{5445,900,3},{5450,902,3},{5460,890,3}, {5460,882,3},{5462,885,3},{5468,882,3},{5473,868,3},{5475,870,3},{5483,863,3}, {5490,867,3},{5488,872,3},{5492,882,3},{5490,892,3},{5488,903,3},{5487,917,3}, {5485,922,3},{5482,925,3},{5480,935,3},{5483,940,3},{5482,945,3},{5480,945,3}, {5483,952,3},{5483,955,3},{5487,958,3},{5482,958,3},{5480,972,3},{5477,982,3}, {5475,987,3},{5477,990,3},{5480,990,3},{5477,997,3},{5470,1002,3},{5470,998,3}, {5467,993,3},{5467,1003,3},{5455,1003,3},{5452,998,3},{5448,985,3},{5445,987,3}, {5448,1012,3},{5447,1020,3},{5443,1017,3},{5440,1020,3},{5437,1013,3},{5432,1015,3}, {5433,1018,3},{5442,1023,3},{5442,1028,3},{5443,1033,3},{5437,1062,3},{5432,1068,3}, {5430,1077,3},{5438,1093,3},{5437,1105,3},{5438,1113,3},{5437,1112,3},{5435,1107,3}, {5420,1110,3},{5410,1088,3},{5410,1080,3},{5405,1075,3},{5400,1078,3},{5398,1087,3}, {5395,1090,3},{5400,1105,3},{5402,1118,3},{5398,1120,3},{5398,1125,3},{5393,1125,3}, {5393,1130,3},{5395,1133,3},{5390,1145,3},{5393,1148,3},{5397,1147,3},{5402,1153,3}, {5403,1152,3},{5403,1158,3},{5410,1163,3},{5410,1162,3},{5415,1168,3},{5415,1182,3}, {5418,1208,3},{5412,1208,3},{5410,1212,3},{5415,1210,3},{5417,1213,3},{5418,1210,3}, {5425,1220,3},{5430,1235,3},{5448,1253,3},{5445,1255,3},{5445,1265,3},{5445,1290,3}, {5442,1292,3},{5442,1280,3},{5443,1270,3},{5442,1267,3},{5442,1263,3},{5440,1258,3}, {5438,1260,3},{5438,1255,3},{5437,1253,3},{5440,1247,3},{5430,1237,3},{5425,1238,3}, {5425,1245,3},{5427,1242,3},{5428,1242,3},{5430,1248,3},{5433,1248,3},{5435,1255,3}, {5438,1257,3},{5437,1260,3},{5442,1272,3},{5437,1268,3},{5440,1272,3},{5437,1273,3}, {5437,1277,3},{5438,1278,3},{5435,1282,3},{5437,1288,3},{5440,1290,3},{5443,1303,3}, {5440,1303,3},{5437,1310,3},{5433,1307,3},{5428,1312,3},{5427,1317,3},{5425,1315,3}, {5427,1318,3},{5423,1322,3},{5423,1328,3},{5420,1330,3},{5418,1335,3},{5417,1332,3}, {5417,1340,3},{5415,1338,3},{5415,1342,3},{5410,1345,3},{5408,1350,3},{5412,1348,3}, {5413,1363,3},{5417,1372,3},{5415,1370,3},{5410,1380,3},{5405,1378,3},{5403,1375,3}, {5392,1392,3},{5388,1382,3},{5385,1382,3},{5383,1385,3},{5377,1397,3},{5373,1408,3}, {5373,1418,3},{5377,1423,3},{5373,1427,3},{5367,1428,3},{5362,1432,3},{5355,1430,3}, {5345,1438,3},{5330,1442,3},{5327,1445,3},{5320,1438,3},{5313,1438,3},{5305,1435,3}, {5297,1415,3},{5288,1417,3},{5285,1413,3},{5283,1415,3},{5282,1422,3},{5277,1430,3}, {5275,1435,3},{5265,1448,3},{5262,1460,3},{5257,1463,3},{5253,1462,3},{5248,1463,3}, {5243,1458,3},{5243,1455,3},{5238,1453,3},{5228,1458,3},{5223,1472,3},{5212,1468,3}, {5207,1477,3},{5200,1472,3},{5195,1472,3},{5190,1470,3},{5185,1462,3},{5182,1460,3}, {5178,1465,3},{5172,1467,3},{5167,1475,3},{5160,1477,3},{5155,1472,3},{5153,1473,3}, {5147,1495,3},{5143,1498,3},{5135,1497,3},{5127,1503,3},{5105,1497,3},{5093,1490,3}, {5088,1482,3},{5087,1483,3},{5082,1480,3},{5082,1472,3},{5083,1472,3},{5085,1462,3}, {5093,1465,3},{5092,1457,3},{5098,1460,3},{5100,1457,3},{5102,1450,3},{5105,1450,3}, {5102,1448,3},{5103,1445,3},{5102,1442,3},{5105,1430,3},{5098,1425,3},{5098,1432,3}, {5097,1430,3},{5095,1432,3},{5093,1440,3},{5090,1440,3},{5088,1425,3},{5085,1420,3}, {5082,1407,3},{5080,1403,3},{5082,1398,3},{5078,1395,3},{5078,1390,3},{5075,1390,3}, {5072,1387,3},{5073,1377,3},{5070,1355,3},{5070,1353,3},{5067,1355,3},{5065,1352,3}, {5063,1352,3},{5060,1347,3},{5062,1342,3},{5063,1338,3},{5058,1332,3},{5057,1328,3}, {5058,1325,3},{5050,1318,3},{5052,1313,3},{5050,1303,3},{5045,1302,3},{5042,1298,3}, {5042,1293,3},{5045,1282,3},{5043,1282,3},{5045,1278,3},{5043,1275,3},{5040,1270,3}, {5042,1267,3},{5042,1262,3},{5040,1252,3},{5037,1248,3},{5035,1248,3},{5032,1240,3}, {5030,1240,3},{5028,1237,3},{5023,1235,3},{5023,1233,3},{5017,1232,3},{5018,1228,3}, {5022,1228,3},{5025,1225,3},{5027,1225,3},{5027,1220,3},{5032,1218,3},{5032,1210,3}, {5030,1212,3},{5028,1213,3},{5025,1210,3},{5023,1215,3},{5020,1218,3},{5017,1222,3}, {5013,1220,3},{5010,1220,3},{5008,1225,3},{5005,1227,3},{5003,1235,3},{4998,1243,3}, {4998,1247,3},{4997,1250,3},{4993,1248,3},{4992,1255,3},{4983,1250,3},{4983,1247,3}, {4978,1247,3},{4977,1240,3},{4973,1240,3},{4970,1245,3},{4968,1252,3},{4963,1252,3}, {4962,1257,3},{4953,1260,3},{4952,1263,3},{4947,1263,3},{4943,1267,3},{4940,1275,3}, {4933,1280,3},{4933,1288,3},{4935,1288,3},{4933,1297,3},{4930,1303,3},{4927,1303,3}, {4925,1308,3},{4920,1312,3},{4917,1318,3},{4913,1318,3},{4910,1332,3},{4905,1340,3}, {4898,1340,3},{4895,1348,3},{4898,1352,3},{4895,1363,3},{4890,1365,3},{4888,1368,3}, {4888,1373,3},{4880,1382,3},{4878,1382,3},{4877,1383,3},{4873,1380,3},{4870,1383,3}, {4870,1382,3},{4862,1382,3},{4858,1380,3},{4857,1375,3},{4852,1373,3},{4857,1360,3}, {4857,1357,3},{4858,1352,3},{4857,1350,3},{4857,1347,3},{4857,1345,3},{4857,1343,3}, {4852,1345,3},{4847,1343,3},{4843,1343,3},{4837,1340,3},{4830,1328,3},{4830,1317,3}, {4827,1302,3},{4822,1297,3},{4820,1287,3},{4817,1283,3},{4812,1277,3},{4808,1277,3}, {4802,1285,3},{4797,1288,3},{4793,1293,3},{4785,1302,3},{4778,1293,3},{4772,1292,3}, {4772,1298,3},{4772,1302,3},{4768,1308,3},{4763,1310,3},{4760,1307,3},{4758,1305,3}, {4757,1307,3},{4753,1303,3},{4750,1305,3},{4748,1302,3},{4748,1295,3},{4755,1285,3}, {4755,1282,3},{4758,1278,3},{4762,1280,3},{4762,1283,3},{4765,1277,3},{4767,1278,3}, {4768,1267,3},{4767,1260,3},{4765,1258,3},{4763,1252,3},{4767,1245,3},{4768,1245,3}, {4770,1245,3},{4768,1237,3},{4770,1233,3},{4768,1225,3},{4770,1223,3},{4775,1225,3}, {4770,1218,3},{4763,1220,3},{4762,1220,3},{4762,1200,3},{4760,1185,3},{4758,1183,3}, {4758,1168,3},{4760,1163,3},{4758,1160,3},{4752,1157,3},{4752,1150,3},{4752,1143,3}, {4748,1138,3},{4747,1140,3},{4745,1140,3},{4745,1133,3},{4740,1128,3},{4740,1123,3}, {4743,1123,3},{4743,1122,3},{4740,1112,3},{4740,1098,3},{4742,1097,3},{4743,1098,3}, {4748,1092,3},{4748,1087,3},{4752,1092,3},{4753,1088,3},{4752,1077,3},{4755,1075,3}, {4757,1060,3},{4753,1057,3},{4753,1050,3},{4755,1047,3},{4758,1048,3},{4758,1047,3}, {4758,1043,3},{4755,1045,3},{4750,1043,3},{4748,1047,3},{4743,1047,3},{4738,1043,3}, {4737,1038,3},{4732,1033,3},{4728,1023,3},{4727,1017,3},{4730,1018,3},{4732,1022,3}, {4733,1020,3},{4738,1023,3},{4738,1018,3},{4737,1015,3},{4737,1012,3},{4737,1010,3}, {4742,1007,3},{4743,1010,3},{4750,1005,3},{4748,1000,3},{4753,997,3},{4755,997,3}, {4753,992,3},{4755,988,3},{4753,985,3},{4755,982,3},{4758,982,3},{4760,978,3}, {4758,975,3},{4753,957,3},{4765,930,3},{4765,917,3},{4767,913,3},{4768,905,3}, {4765,888,3},{4768,885,3},{4770,887,3},{4772,882,3},{4773,882,3},{4772,877,3}, {4770,880,3},{4768,880,3},{4770,872,3},{4772,873,3},{4773,872,3},{4777,873,3}, {4777,868,3},{4778,868,3},{4780,865,3},{4777,863,3},{4780,862,3},{4780,857,3}, {4778,857,3},{4777,848,3},{4772,845,3},{4770,840,3},{4767,842,3},{4767,845,3}, {4765,847,3},{4767,853,3},{4767,858,3},{4767,862,3},{4765,863,3},{4765,860,3}, {4762,860,3},{4760,858,3},{4762,857,3},{4763,852,3},{4760,847,3},{4758,850,3}, {4757,833,3},{4762,828,3},{4762,820,3},{4757,808,3},{4755,792,3},{4758,790,3}, {4758,782,3},{4755,778,3},{4755,767,3},{4757,762,3},{4758,767,3},{4760,767,3}, {4758,758,3},{5387,1422,131},{5387,1408,3},{5387,1403,3},{5385,1400,3}, {5383,1390,3},{5385,1382,3},{5387,1383,3},{5388,1390,3},{5392,1393,3},{5398,1390,3}, {5398,1397,3},{5393,1397,3},{5397,1398,3},{5397,1402,3},{5395,1402,3},{5393,1405,3}, {5398,1405,3},{5405,1398,3},{5407,1392,3},{5402,1390,3},{5400,1385,3},{5403,1388,3}, {5405,1387,3},{5402,1380,3},{5402,1378,3},{5410,1382,3},{5415,1375,3},{5417,1377,3}, {5417,1382,3},{5410,1388,3},{5407,1400,3},{5393,1423,3},{5392,1420,3},{5387,1422,3}, {5490,867,131},{5495,868,3},{5502,863,3},{5513,868,3},{5513,857,3},{5513,855,3}, {5508,857,3},{5507,850,3},{5507,847,3},{5512,845,3},{5518,848,3},{5520,850,3}, {5518,860,3},{5515,857,3},{5513,865,3},{5513,868,3},{5528,865,3},{5533,867,3}, {5543,862,3},{5545,858,3},{5545,843,3},{5555,830,3},{5558,832,3},{5558,827,3}, {5555,823,3},{5553,827,3},{5552,825,3},{5550,830,3},{5547,832,3},{5552,820,3}, {5555,808,3},{5572,818,3},{5597,815,3},{5587,820,3},{5582,818,3},{5583,830,3}, {5590,840,3},{5603,830,3},{5608,823,3},{5610,813,3},{5608,813,3},{5598,815,3}, {5598,812,3},{5607,810,3},{5622,813,3},{5635,812,3},{5632,815,3},{5632,825,3}, {5628,825,3},{5632,832,3},{5632,828,3},{5637,818,3},{5640,818,3},{5638,825,3}, {5640,823,3},{5642,818,3},{5642,813,3},{5637,812,3},{5658,813,3},{5667,818,3}, {5668,823,3},{5662,820,3},{5658,823,3},{5658,830,3},{5655,830,3},{5657,833,3}, {5657,842,3},{5653,852,3},{5657,855,3},{5655,858,3},{5648,860,3},{5647,867,3}, {5648,875,3},{5652,873,3},{5655,875,3},{5658,870,3},{5660,868,3},{5662,868,3}, {5662,875,3},{5667,882,3},{5668,890,3},{5670,892,3},{5672,885,3},{5678,892,3}, {5678,897,3},{5680,905,3},{5678,908,3},{5672,915,3},{5665,912,3},{5662,905,3}, {5655,907,3},{5655,910,3},{5660,912,3},{5660,915,3},{5662,913,3},{5663,915,3}, {5662,917,3},{5660,928,3},{5657,925,3},{5652,930,3},{5653,938,3},{5657,937,3}, {5655,932,3},{5657,928,3},{5663,932,3},{5668,930,3},{5668,922,3},{5665,920,3}, {5667,917,3},{5675,925,3},{5677,918,3},{5680,917,3},{5685,920,3},{5687,917,3}, {5690,918,3},{5698,932,3},{5700,942,3},{5698,958,3},{5695,953,3},{5692,957,3}, {5695,957,3},{5698,965,3},{5703,970,3},{5703,985,3},{5705,995,3},{5705,993,3}, {5705,988,3},{5710,978,3},{5705,973,3},{5705,962,3},{5703,955,3},{5703,952,3}, {5705,952,3},{5698,923,3},{5705,910,3},{5712,903,3},{5710,902,3},{5703,912,3}, {5702,912,3},{5698,892,3},{5702,887,3},{5698,885,3},{5700,880,3},{5697,882,3}, {5693,875,3},{5693,868,3},{5688,862,3},{5685,862,3},{5678,848,3},{5675,850,3}, {5670,848,3},{5670,852,3},{5668,852,3},{5667,843,3},{5667,848,3},{5665,852,3}, {5667,858,3},{5660,858,3},{5657,855,3},{5658,852,3},{5663,848,3},{5668,833,3}, {5675,830,3},{5677,827,3},{5675,825,3},{5672,827,3},{5670,825,3},{5675,823,3}, {5682,825,3},{5693,837,3},{5710,858,3},{5708,875,3},{5710,883,3},{5715,902,3}, {5713,918,3},{5715,940,3},{5723,958,3},{5745,977,3},{5757,995,3},{5758,1012,3}, {5760,1027,3},{5772,1048,3},{5773,1055,3},{5772,1063,3},{5765,1047,3},{5758,1042,3}, {5752,1043,3},{5747,1050,3},{5743,1055,3},{5737,1052,3},{5722,1053,3},{5713,1043,3}, {5698,1033,3},{5698,1025,3},{5698,1020,3},{5708,1002,3},{5708,998,3},{5705,995,3}, {5707,998,3},{5705,1002,3},{5698,1017,3},{5697,1028,3},{5682,1025,3},{5670,1033,3}, {5668,1030,3},{5670,1025,3},{5670,1015,3},{5668,1018,3},{5668,1025,3},{5665,1033,3}, {5662,1035,3},{5655,1022,3},{5650,1022,3},{5647,1018,3},{5647,1023,3},{5655,1023,3}, {5658,1032,3},{5653,1038,3},{5650,1047,3},{5653,1077,3},{5652,1083,3},{5643,1095,3}, {5638,1090,3},{5633,1090,3},{5620,1072,3},{5613,1070,3},{5613,1068,3},{5617,1063,3}, {5620,1067,3},{5622,1062,3},{5622,1057,3},{5617,1052,3},{5612,1055,3},{5610,1053,3}, {5610,1050,3},{5613,1047,3},{5613,1050,3},{5617,1050,3},{5615,1038,3},{5620,1033,3}, {5622,1040,3},{5620,1043,3},{5623,1043,3},{5627,1048,3},{5628,1040,3},{5627,1037,3}, {5625,1033,3},{5617,1023,3},{5610,1023,3},{5605,1027,3},{5602,1023,3},{5602,1028,3}, {5598,1025,3},{5592,1025,3},{5588,1018,3},{5583,1018,3},{5583,1015,3},{5587,1013,3}, {5588,1010,3},{5587,998,3},{5585,995,3},{5585,987,3},{5583,990,3},{5582,1005,3}, {5575,1002,3},{5575,1007,3},{5573,1000,3},{5570,1002,3},{5567,982,3},{5568,973,3}, {5572,967,3},{5570,955,3},{5570,957,3},{5570,963,3},{5565,972,3},{5562,975,3}, {5562,985,3},{5557,975,3},{5555,972,3},{5553,970,3},{5552,962,3},{5552,957,3}, {5550,955,3},{5550,950,3},{5548,952,3},{5548,962,3},{5547,967,3},{5545,965,3}, {5543,960,3},{5542,958,3},{5540,962,3},{5537,960,3},{5535,962,3},{5532,962,3}, {5530,963,3},{5528,962,3},{5523,970,3},{5517,962,3},{5518,958,3},{5515,948,3}, {5513,952,3},{5513,947,3},{5512,947,3},{5510,950,3},{5507,952,3},{5503,943,3}, {5503,953,3},{5505,957,3},{5503,958,3},{5500,962,3},{5498,972,3},{5488,977,3}, {5488,970,3},{5487,975,3},{5483,973,3},{5485,968,3},{5485,962,3},{5488,963,3}, {5490,960,3},{5492,965,3},{5493,962,3},{5492,958,3},{5488,955,3},{5487,950,3}, {5482,945,3},{5483,940,3},{5480,935,3},{5482,925,3},{5485,922,3},{5487,917,3}, {5488,903,3},{5490,892,3},{5492,882,3},{5488,872,3},{5490,867,3},{4707,958,131}, {4707,947,3},{4710,952,3},{4720,948,3},{4727,953,3},{4722,958,3},{4717,957,3}, {4715,962,3},{4713,963,3},{4710,963,3},{4707,958,3},{4593,703,131},{4597,703,3}, {4597,700,3},{4600,702,3},{4607,693,3},{4605,687,3},{4613,688,3},{4615,678,3}, {4622,680,3},{4627,685,3},{4635,677,3},{4638,680,3},{4642,682,3},{4643,678,3}, {4647,663,3},{4645,650,3},{4643,645,3},{4642,642,3},{4640,632,3},{4635,625,3}, {4632,623,3},{4632,625,3},{4630,625,3},{4627,627,3},{4627,630,3},{4625,630,3}, {4620,620,3},{4617,618,3},{4615,615,3},{4613,597,3},{4615,598,3},{4618,600,3}, {4622,597,3},{4627,612,3},{4630,610,3},{4637,617,3},{4643,607,3},{4645,608,3}, {4648,608,3},{4655,617,3},{4660,613,3},{4668,628,3},{4672,637,3},{4678,645,3}, {4682,643,3},{4687,647,3},{4693,643,3},{4697,648,3},{4700,663,3},{4703,670,3}, {4708,670,3},{4717,685,3},{4717,683,3},{4723,693,3},{4725,695,3},{4728,695,3}, {4730,702,3},{4732,702,3},{4735,707,3},{4737,705,3},{4737,702,3},{4735,688,3}, {4738,688,3},{4740,693,3},{4743,695,3},{4745,700,3},{4750,698,3},{4750,703,3}, {4750,708,3},{4750,713,3},{4750,720,3},{4745,718,3},{4743,723,3},{4742,725,3}, {4743,732,3},{4743,738,3},{4747,745,3},{4750,743,3},{4748,748,3},{4750,750,3}, {4752,750,3},{4753,752,3},{4755,750,3},{4758,758,3},{4760,767,3},{4758,767,3}, {4757,762,3},{4755,767,3},{4755,778,3},{4758,782,3},{4758,790,3},{4755,792,3}, {4757,808,3},{4762,820,3},{4762,828,3},{4757,833,3},{4758,850,3},{4760,847,3}, {4763,852,3},{4762,857,3},{4760,858,3},{4762,860,3},{4765,860,3},{4765,863,3}, {4767,862,3},{4767,858,3},{4767,853,3},{4765,847,3},{4767,845,3},{4767,842,3}, {4770,840,3},{4772,845,3},{4777,848,3},{4778,857,3},{4780,857,3},{4780,862,3}, {4777,863,3},{4780,865,3},{4778,868,3},{4777,868,3},{4777,873,3},{4773,872,3}, {4772,873,3},{4770,872,3},{4768,880,3},{4770,880,3},{4772,877,3},{4773,882,3}, {4772,882,3},{4770,887,3},{4768,885,3},{4765,888,3},{4768,905,3},{4767,913,3}, {4765,917,3},{4765,930,3},{4753,957,3},{4750,957,3},{4747,960,3},{4745,965,3}, {4742,965,3},{4738,967,3},{4737,962,3},{4727,953,3},{4720,948,3},{4710,952,3}, {4707,947,3},{4707,958,3},{4707,968,3},{4702,988,3},{4700,987,3},{4700,990,3}, {4693,988,3},{4692,993,3},{4692,997,3},{4690,1002,3},{4687,1007,3},{4685,1013,3}, {4688,1023,3},{4693,1025,3},{4693,1032,3},{4695,1030,3},{4700,1035,3},{4700,1038,3}, {4693,1048,3},{4687,1047,3},{4682,1047,3},{4680,1043,3},{4677,1045,3},{4673,1042,3}, {4672,1042,3},{4668,1038,3},{4665,1040,3},{4663,1047,3},{4662,1048,3},{4655,1047,3}, {4653,1045,3},{4655,1043,3},{4655,1030,3},{4658,1028,3},{4658,1025,3},{4662,1025,3}, {4663,1023,3},{4662,1010,3},{4657,1008,3},{4653,1005,3},{4648,1005,3},{4647,1007,3}, {4645,1005,3},{4642,1008,3},{4643,1013,3},{4642,1017,3},{4633,1010,3},{4627,1018,3}, {4623,1013,3},{4622,1007,3},{4623,1005,3},{4627,1005,3},{4628,1000,3},{4635,1000,3}, {4638,995,3},{4637,983,3},{4635,977,3},{4637,973,3},{4630,970,3},{4630,958,3}, {4632,952,3},{4637,950,3},{4638,947,3},{4650,947,3},{4650,945,3},{4647,940,3}, {4650,937,3},{4650,928,3},{4643,925,3},{4642,928,3},{4637,928,3},{4635,930,3}, {4623,925,3},{4622,920,3},{4618,918,3},{4612,908,3},{4607,907,3},{4603,902,3}, {4600,903,3},{4597,900,3},{4593,903,3},{4592,908,3},{4583,903,3},{4582,902,3}, {4583,900,3},{4585,895,3},{4583,892,3},{4588,893,3},{4595,890,3},{4598,878,3}, {4602,880,3},{4605,885,3},{4608,885,3},{4610,882,3},{4610,877,3},{4612,875,3}, {4610,870,3},{4612,862,3},{4617,860,3},{4622,853,3},{4625,845,3},{4628,843,3}, {4640,847,3},{4645,847,3},{4647,843,3},{4645,837,3},{4642,830,3},{4640,832,3}, {4638,830,3},{4637,827,3},{4632,820,3},{4630,813,3},{4628,810,3},{4625,808,3}, {4623,813,3},{4618,817,3},{4615,815,3},{4612,810,3},{4610,805,3},{4607,803,3}, {4605,803,3},{4600,802,3},{4600,792,3},{4598,788,3},{4593,787,3},{4592,787,3}, {4592,778,3},{4593,777,3},{4593,772,3},{4595,772,3},{4598,765,3},{4598,757,3}, {4598,755,3},{4597,753,3},{4597,748,3},{4593,743,3},{4592,730,3},{4588,718,3}, {4588,710,3},{4593,703,3},{5137,337,131},{5142,353,3},{5138,368,3},{5135,373,3}, {5133,387,3},{5137,397,3},{5140,398,3},{5140,403,3},{5137,407,3},{5135,412,3}, {5137,422,3},{5130,427,3},{5128,432,3},{5127,430,3},{5128,433,3},{5132,428,3}, {5142,425,3},{5140,415,3},{5142,408,3},{5145,398,3},{5145,393,3},{5140,390,3}, {5140,380,3},{5142,375,3},{5147,368,3},{5145,362,3},{5145,353,3},{5153,343,3}, {5160,357,3},{5160,383,3},{5160,387,3},{5157,390,3},{5155,387,3},{5153,397,3}, {5150,405,3},{5145,410,3},{5143,415,3},{5145,428,3},{5148,428,3},{5152,423,3}, {5153,408,3},{5158,400,3},{5162,408,3},{5160,417,3},{5158,422,3},{5162,420,3}, {5162,413,3},{5165,412,3},{5162,398,3},{5163,390,3},{5167,388,3},{5170,382,3}, {5167,372,3},{5168,368,3},{5172,368,3},{5173,372,3},{5175,383,3},{5178,387,3}, {5182,388,3},{5185,398,3},{5183,405,3},{5183,408,3},{5188,403,3},{5192,405,3}, {5198,402,3},{5198,412,3},{5200,415,3},{5223,443,3},{5245,457,3},{5247,460,3}, {5248,458,3},{5275,465,3},{5297,473,3},{5297,482,3},{5292,482,3},{5290,488,3}, {5297,510,3},{5307,528,3},{5308,538,3},{5322,545,3},{5328,558,3},{5340,598,3}, {5342,625,3},{5340,632,3},{5347,675,3},{5343,687,3},{5340,688,3},{5335,690,3}, {5332,695,3},{5330,705,3},{5330,708,3},{5327,707,3},{5325,710,3},{5323,718,3}, {5323,720,3},{5320,722,3},{5313,718,3},{5302,722,3},{5293,718,3},{5287,710,3}, {5282,707,3},{5263,705,3},{5265,678,3},{5263,673,3},{5263,672,3},{5258,672,3}, {5257,677,3},{5255,668,3},{5248,670,3},{5247,675,3},{5247,685,3},{5243,695,3}, {5247,698,3},{5238,707,3},{5235,707,3},{5228,703,3},{5223,705,3},{5222,698,3}, {5218,695,3},{5217,690,3},{5212,687,3},{5212,677,3},{5208,675,3},{5207,670,3}, {5203,668,3},{5202,680,3},{5197,683,3},{5190,672,3},{5192,668,3},{5190,660,3}, {5185,647,3},{5187,640,3},{5183,640,3},{5183,637,3},{5185,637,3},{5185,632,3}, {5187,628,3},{5187,620,3},{5190,617,3},{5190,612,3},{5185,617,3},{5183,617,3}, {5187,605,3},{5183,602,3},{5182,595,3},{5177,598,3},{5173,595,3},{5172,603,3}, {5167,603,3},{5165,612,3},{5160,610,3},{5152,620,3},{5147,622,3},{5140,620,3}, {5140,622,3},{5137,622,3},{5123,608,3},{5122,607,3},{5117,608,3},{5120,617,3}, {5118,617,3},{5117,615,3},{5115,617,3},{5108,600,3},{5103,595,3},{5103,593,3}, {5107,590,3},{5105,587,3},{5100,590,3},{5097,588,3},{5098,595,3},{5097,603,3}, {5097,602,3},{5093,602,3},{5092,608,3},{5085,607,3},{5085,602,3},{5080,602,3}, {5080,598,3},{5077,602,3},{5075,602,3},{5075,590,3},{5077,588,3},{5075,582,3}, {5078,577,3},{5077,575,3},{5075,570,3},{5080,570,3},{5082,565,3},{5085,563,3}, {5088,565,3},{5088,568,3},{5095,577,3},{5097,572,3},{5098,577,3},{5103,577,3}, {5107,578,3},{5105,580,3},{5110,580,3},{5110,585,3},{5112,582,3},{5115,585,3}, {5117,583,3},{5117,580,3},{5120,573,3},{5118,567,3},{5122,557,3},{5127,555,3}, {5130,552,3},{5127,540,3},{5127,523,3},{5130,523,3},{5132,513,3},{5140,508,3}, {5143,510,3},{5148,503,3},{5148,502,3},{5145,500,3},{5140,493,3},{5142,488,3}, {5142,478,3},{5143,478,3},{5142,483,3},{5148,485,3},{5150,480,3},{5150,477,3}, {5145,467,3},{5143,467,3},{5142,465,3},{5143,458,3},{5143,455,3},{5148,455,3}, {5148,448,3},{5145,440,3},{5143,442,3},{5142,440,3},{5138,443,3},{5137,443,3}, {5137,435,3},{5138,430,3},{5137,423,3},{5128,413,3},{5120,390,3},{5122,388,3}, {5122,380,3},{5127,378,3},{5130,360,3},{5128,352,3},{5125,352,3},{5125,343,3}, {5127,338,3},{5132,337,3},{5133,338,3},{5137,337,3},{4953,580,131},{4957,587,3}, {4958,587,3},{4960,585,3},{4963,590,3},{4967,590,3},{4968,585,3},{4972,587,3}, {4972,582,3},{4980,578,3},{4980,575,3},{4983,573,3},{4985,575,3},{4987,575,3}, {4987,578,3},{4990,573,3},{4995,577,3},{4998,583,3},{5002,582,3},{5003,585,3}, {5007,585,3},{5012,590,3},{5013,595,3},{5017,597,3},{5018,602,3},{5017,603,3}, {5015,607,3},{5017,610,3},{5013,613,3},{5007,612,3},{5005,613,3},{5002,613,3}, {4995,618,3},{4997,618,3},{4995,622,3},{4988,625,3},{4987,630,3},{4983,632,3}, {4985,637,3},{4982,640,3},{4982,652,3},{4973,650,3},{4970,652,3},{4967,642,3}, {4963,643,3},{4957,637,3},{4955,637,3},{4953,635,3},{4947,637,3},{4950,623,3}, {4950,615,3},{4950,617,3},{4948,612,3},{4945,608,3},{4947,607,3},{4945,603,3}, {4945,598,3},{4947,598,3},{4948,597,3},{4950,587,3},{4953,580,3},{5108,255,131}, {5132,310,3},{5137,337,3},{5133,338,3},{5132,337,3},{5127,338,3},{5125,343,3}, {5125,352,3},{5128,352,3},{5130,360,3},{5127,378,3},{5122,380,3},{5122,388,3}, {5120,390,3},{5128,413,3},{5137,423,3},{5138,430,3},{5137,435,3},{5137,443,3}, {5138,443,3},{5142,440,3},{5143,442,3},{5145,440,3},{5148,448,3},{5148,455,3}, {5143,455,3},{5143,458,3},{5142,465,3},{5143,467,3},{5145,467,3},{5150,477,3}, {5150,480,3},{5148,485,3},{5142,483,3},{5143,478,3},{5142,478,3},{5142,488,3}, {5140,493,3},{5145,500,3},{5148,502,3},{5148,503,3},{5143,510,3},{5140,508,3}, {5132,513,3},{5130,523,3},{5127,523,3},{5127,540,3},{5130,552,3},{5127,555,3}, {5122,557,3},{5118,567,3},{5120,573,3},{5117,580,3},{5117,583,3},{5115,585,3}, {5112,582,3},{5110,585,3},{5110,580,3},{5105,580,3},{5107,578,3},{5103,577,3}, {5098,577,3},{5097,572,3},{5095,577,3},{5088,568,3},{5088,565,3},{5085,563,3}, {5082,565,3},{5080,570,3},{5075,570,3},{5077,575,3},{5078,577,3},{5075,582,3}, {5077,588,3},{5075,590,3},{5075,602,3},{5072,603,3},{5072,612,3},{5065,618,3}, {5062,617,3},{5062,627,3},{5058,625,3},{5058,623,3},{5055,617,3},{5050,622,3}, {5048,635,3},{5047,633,3},{5043,637,3},{5038,635,3},{5033,640,3},{5030,637,3}, {5032,632,3},{5027,628,3},{5023,617,3},{5018,618,3},{5017,613,3},{5013,615,3}, {5013,613,3},{5017,610,3},{5015,607,3},{5017,603,3},{5018,602,3},{5017,597,3}, {5013,595,3},{5012,590,3},{5007,585,3},{5003,585,3},{5002,582,3},{4998,583,3}, {4995,577,3},{4990,573,3},{4987,578,3},{4987,575,3},{4985,575,3},{4983,573,3}, {4980,575,3},{4980,578,3},{4972,582,3},{4972,587,3},{4968,585,3},{4967,590,3}, {4963,590,3},{4960,585,3},{4958,587,3},{4957,587,3},{4953,580,3},{4955,578,3}, {4955,577,3},{4953,573,3},{4955,567,3},{4952,562,3},{4953,557,3},{4952,553,3}, {4950,547,3},{4953,548,3},{4960,543,3},{4962,540,3},{4963,535,3},{4962,532,3}, {4967,533,3},{4970,528,3},{4968,523,3},{4970,517,3},{4972,517,3},{4972,513,3}, {4977,510,3},{4977,507,3},{4980,500,3},{4980,498,3},{4980,487,3},{4983,487,3}, {4987,485,3},{4992,488,3},{4995,485,3},{4995,480,3},{4998,480,3},{5005,485,3}, {5007,483,3},{5008,485,3},{5010,487,3},{5008,488,3},{5013,490,3},{5015,488,3}, {5015,485,3},{5017,483,3},{5008,470,3},{5000,467,3},{4998,460,3},{4993,445,3}, {4997,433,3},{4997,432,3},{4997,422,3},{4998,415,3},{5003,415,3},{5007,423,3}, {5013,420,3},{5013,413,3},{5022,417,3},{5025,422,3},{5027,422,3},{5028,417,3}, {5027,417,3},{5025,415,3},{5030,412,3},{5035,403,3},{5033,390,3},{5035,385,3}, {5035,377,3},{5030,370,3},{5037,367,3},{5045,367,3},{5048,362,3},{5048,352,3}, {5052,352,3},{5053,348,3},{5052,345,3},{5050,337,3},{5053,328,3},{5060,328,3}, {5067,325,3},{5068,327,3},{5072,323,3},{5072,320,3},{5078,317,3},{5080,312,3}, {5078,308,3},{5075,295,3},{5073,293,3},{5070,290,3},{5073,285,3},{5073,280,3}, {5082,272,3},{5082,263,3},{5085,260,3},{5088,262,3},{5092,260,3},{5095,263,3}, {5100,260,3},{5100,258,3},{5108,255,3},{4340,65359,131},{4343,65376,3}, {4353,65386,3},{4390,65398,3},{4427,65408,3},{4450,65411,3},{4455,65409,3}, {4467,65416,3},{4465,65423,3},{4467,65431,3},{4467,65433,3},{4472,65429,3}, {4477,65419,3},{4468,65413,3},{4463,65411,3},{4467,65409,3},{4512,65416,3}, {4523,65419,3},{4548,65421,3},{4555,65428,3},{4557,65429,3},{4555,65431,3}, {4552,65431,3},{4548,65436,3},{4545,65443,3},{4535,65456,3},{4523,65463,3}, {4510,65466,3},{4505,65471,3},{4498,65479,3},{4490,65481,3},{4498,65483,3}, {4502,65476,3},{4502,65481,3},{4500,65486,3},{4503,65484,3},{4505,65476,3}, {4508,65471,3},{4513,65469,3},{4535,65464,3},{4547,65458,3},{4555,65444,3}, {4558,65438,3},{4562,65436,3},{4568,65421,3},{4570,65418,3},{4570,65411,3}, {4580,65413,3},{4580,65421,3},{4575,65426,3},{4572,65438,3},{4578,65426,3}, {4587,65421,3},{4587,65424,3},{4590,65424,3},{4590,65429,3},{4595,65428,3}, {4597,65429,3},{4602,65424,3},{4600,65428,3},{4602,65431,3},{4603,65431,3}, {4605,65428,3},{4610,65426,3},{4612,65423,3},{4612,65424,3},{4615,65421,3}, {4615,65416,3},{4617,65414,3},{4622,65418,3},{4627,65426,3},{4632,65424,3}, {4633,65419,3},{4632,65416,3},{4627,65414,3},{4633,65406,3},{4632,65406,3}, {4635,65401,3},{4633,65391,3},{4640,65389,3},{4642,65386,3},{4642,65373,3}, {4645,65373,3},{4645,65368,3},{4648,65361,3},{4652,65358,3},{4650,65358,3}, {4648,65356,3},{4660,65354,3},{4660,65351,3},{4663,65349,3},{4670,65344,3}, {4670,65339,3},{4677,65336,3},{4683,65323,3},{4690,65323,3},{4692,65326,3}, {4693,65328,3},{4695,65331,3},{4700,65333,3},{4703,65338,3},{4710,65331,3}, {4713,65313,3},{4717,65319,3},{4727,65319,3},{4730,65334,3},{4727,65341,3}, {4728,65343,3},{4727,65346,3},{4727,65344,3},{4725,65346,3},{4722,65356,3}, {4722,65363,3},{4723,65356,3},{4728,65348,3},{4732,65334,3},{4732,65319,3}, {4728,65318,3},{4723,65308,3},{4728,65299,3},{4728,65294,3},{4727,65293,3}, {4728,65288,3},{4730,65283,3},{4728,65289,3},{4730,65293,3},{4733,65288,3}, {4732,65286,3},{4735,65286,3},{4738,65281,3},{4742,65289,3},{4740,65293,3}, {4742,65293,3},{4742,65298,3},{4742,65291,3},{4745,65291,3},{4745,65288,3}, {4750,65288,3},{4750,65299,3},{4750,65293,3},{4753,65284,3},{4752,65273,3}, {4755,65279,3},{4753,65273,3},{4752,65274,3},{4753,65269,3},{4750,65268,3}, {4750,65251,3},{4753,65249,3},{4755,65244,3},{4757,65244,3},{4757,65249,3}, {4755,65251,3},{4755,65254,3},{4757,65254,3},{4755,65256,3},{4755,65263,3}, {4757,65264,3},{4760,65268,3},{4763,65266,3},{4760,65266,3},{4762,65259,3}, {4762,65263,3},{4763,65261,3},{4765,65258,3},{4763,65258,3},{4762,65251,3}, {4760,65251,3},{4760,65248,3},{4758,65248,3},{4758,65244,3},{4760,65244,3}, {4760,65243,3},{4763,65243,3},{4765,65238,3},{4763,65239,3},{4757,65243,3}, {4757,65239,3},{4760,65236,3},{4757,65236,3},{4760,65234,3},{4757,65234,3}, {4757,65226,3},{4758,65228,3},{4760,65224,3},{4750,65224,3},{4747,65228,3}, {4747,65223,3},{4752,65221,3},{4758,65223,3},{4762,65221,3},{4763,65216,3}, {4768,65218,3},{4770,65224,3},{4773,65224,3},{4772,65223,3},{4775,65223,3}, {4773,65221,3},{4775,65218,3},{4773,65219,3},{4772,65219,3},{4770,65216,3}, {4768,65216,3},{4765,65214,3},{4770,65204,3},{4770,65201,3},{4768,65208,3}, {4770,65204,3},{4772,65201,3},{4778,65208,3},{4773,65201,3},{4773,65196,3}, {4773,65199,3},{4772,65199,3},{4770,65191,3},{4777,65183,3},{4778,65168,3}, {4782,65164,3},{4780,65159,3},{4780,65151,3},{4790,65141,3},{4790,65138,3}, {4787,65138,3},{4785,65133,3},{4787,65136,3},{4787,65128,3},{4792,65123,3}, {4790,65121,3},{4787,65124,3},{4785,65121,3},{4787,65119,3},{4788,65118,3}, {4787,65118,3},{4783,65118,3},{4783,65121,3},{4780,65118,3},{4780,65111,3}, {4780,65099,3},{4783,65099,3},{4783,65101,3},{4787,65101,3},{4797,65093,3}, {4802,65083,3},{4800,65079,3},{4803,65073,3},{4803,65063,3},{4807,65066,3}, {4808,65081,3},{4812,65099,3},{4810,65106,3},{4812,65108,3},{4815,65108,3}, {4820,65104,3},{4820,65099,3},{4823,65093,3},{4823,65086,3},{4820,65084,3}, {4817,65081,3},{4820,65081,3},{4823,65079,3},{4825,65081,3},{4827,65074,3}, {4828,65074,3},{4828,65078,3},{4832,65078,3},{4833,65079,3},{4833,65083,3}, {4830,65081,3},{4828,65086,3},{4830,65106,3},{4828,65111,3},{4830,65118,3}, {4830,65113,3},{4832,65113,3},{4830,65111,3},{4832,65108,3},{4832,65104,3}, {4835,65109,3},{4835,65104,3},{4833,65098,3},{4833,65096,3},{4835,65096,3}, {4833,65091,3},{4837,65093,3},{4843,65106,3},{4835,65076,3},{4833,65059,3}, {4837,65058,3},{4838,65059,3},{4843,65058,3},{4847,65059,3},{4847,65061,3}, {4852,65058,3},{4857,65066,3},{4857,65078,3},{4858,65076,3},{4860,65076,3}, {4860,65083,3},{4862,65079,3},{4863,65083,3},{4863,65086,3},{4863,65094,3}, {4865,65094,3},{4868,65103,3},{4867,65106,3},{4863,65106,3},{4865,65113,3}, {4865,65116,3},{4867,65114,3},{4868,65118,3},{4870,65126,3},{4868,65129,3}, {4868,65131,3},{4872,65131,3},{4873,65138,3},{4865,65141,3},{4868,65144,3}, {4867,65146,3},{4865,65146,3},{4863,65151,3},{4868,65149,3},{4867,65151,3}, {4868,65153,3},{4870,65151,3},{4873,65154,3},{4870,65169,3},{4870,65171,3}, {4868,65173,3},{4868,65178,3},{4873,65178,3},{4873,65183,3},{4877,65178,3}, {4880,65179,3},{4880,65183,3},{4883,65183,3},{4883,65189,3},{4882,65191,3}, {4882,65194,3},{4880,65193,3},{4883,65204,3},{4883,65208,3},{4887,65214,3}, {4883,65216,3},{4880,65214,3},{4885,65218,3},{4887,65226,3},{4887,65228,3}, {4882,65228,3},{4875,65224,3},{4882,65229,3},{4882,65234,3},{4880,65236,3}, {4878,65231,3},{4877,65239,3},{4877,65241,3},{4875,65243,3},{4873,65243,3}, {4865,65254,3},{4860,65254,3},{4855,65264,3},{4853,65263,3},{4850,65268,3}, {4853,65269,3},{4853,65273,3},{4860,65281,3},{4862,65289,3},{4863,65289,3}, {4865,65288,3},{4865,65294,3},{4863,65294,3},{4865,65298,3},{4867,65303,3}, {4870,65304,3},{4867,65308,3},{4862,65303,3},{4865,65311,3},{4863,65313,3}, {4858,65314,3},{4862,65316,3},{4858,65318,3},{4862,65321,3},{4862,65323,3}, {4863,65321,3},{4865,65326,3},{4865,65331,3},{4853,65339,3},{4852,65338,3}, {4853,65343,3},{4853,65339,3},{4858,65338,3},{4858,65341,3},{4860,65336,3}, {4865,65333,3},{4867,65336,3},{4868,65338,3},{4868,65343,3},{4870,65343,3}, {4872,65351,3},{4870,65351,3},{4865,65349,3},{4863,65351,3},{4860,65359,3}, {4862,65373,3},{4863,65378,3},{4863,65386,3},{4865,65394,3},{4863,65401,3}, {4867,65396,3},{4868,65386,3},{4872,65384,3},{4875,65379,3},{4883,65379,3}, {4883,65376,3},{4887,65378,3},{4893,65381,3},{4895,65379,3},{4902,65381,3}, {4902,65386,3},{4903,65383,3},{4902,65379,3},{4900,65378,3},{4903,65376,3}, {4908,65378,3},{4910,65374,3},{4913,65376,3},{4913,65379,3},{4915,65376,3}, {4922,65374,3},{4922,65381,3},{4923,65374,3},{4922,65374,3},{4922,65373,3}, {4928,65369,3},{4932,65366,3},{4933,65368,3},{4935,65366,3},{4933,65364,3}, {4938,65359,3},{4938,65354,3},{4945,65354,3},{4950,65351,3},{4953,65348,3}, {4958,65353,3},{4963,65351,3},{4965,65349,3},{4968,65341,3},{4973,65343,3}, {4970,65348,3},{4972,65351,3},{4968,65354,3},{4967,65368,3},{4967,65369,3}, {4965,65376,3},{4967,65384,3},{4970,65389,3},{4970,65411,3},{4962,65413,3}, {4962,65411,3},{4958,65409,3},{4958,65406,3},{4955,65406,3},{4940,65419,3}, {4935,65418,3},{4935,65423,3},{4933,65423,3},{4935,65426,3},{4937,65424,3}, {4940,65429,3},{4940,65438,3},{4940,65444,3},{4937,65453,3},{4933,65496,3}, {4928,65511,3},{4927,65513,3},{4928,65516,3},{4930,65526,3},{4933,0,3}, {4937,8,3},{4942,15,3},{4943,22,3},{4945,42,3},{4948,50,3},{4945,35,3}, {4947,25,3},{4948,18,3},{4947,18,3},{4947,17,3},{4952,8,3},{4968,17,3}, {4972,22,3},{4975,35,3},{4987,63,3},{4987,78,3},{4992,97,3},{4993,107,3}, {4998,123,3},{5010,143,3},{5020,152,3},{5022,155,3},{5020,158,3},{5018,167,3}, {5020,165,3},{5022,167,3},{5022,163,3},{5028,153,3},{5037,155,3},{5037,162,3}, {5040,155,3},{5053,158,3},{5055,160,3},{5058,158,3},{5068,157,3},{5078,160,3}, {5087,158,3},{5088,165,3},{5095,173,3},{5098,185,3},{5102,212,3},{5105,232,3}, {5105,242,3},{5108,255,3},{5100,258,3},{5100,260,3},{5095,263,3},{5092,260,3}, {5088,262,3},{5085,260,3},{5082,263,3},{5082,272,3},{5073,280,3},{5073,285,3}, {5070,290,3},{5073,293,3},{5075,295,3},{5078,308,3},{5080,312,3},{5078,317,3}, {5072,320,3},{5072,323,3},{5068,327,3},{5067,325,3},{5060,328,3},{5053,328,3}, {5050,337,3},{5052,345,3},{5053,348,3},{5052,352,3},{5048,352,3},{5048,362,3}, {5045,367,3},{5037,367,3},{5030,370,3},{5035,377,3},{5035,385,3},{5033,390,3}, {5035,403,3},{5030,412,3},{5025,415,3},{5027,417,3},{5028,417,3},{5027,422,3}, {5025,422,3},{5022,417,3},{5013,413,3},{5013,420,3},{5007,423,3},{5003,415,3}, {4998,415,3},{4997,422,3},{4997,432,3},{4997,433,3},{4993,445,3},{4998,460,3}, {5000,467,3},{5008,470,3},{5017,483,3},{5015,485,3},{5015,488,3},{5013,490,3}, {5008,488,3},{5010,487,3},{5008,485,3},{5007,483,3},{5005,485,3},{4998,480,3}, {4995,480,3},{4995,485,3},{4992,488,3},{4987,485,3},{4983,487,3},{4980,487,3}, {4980,498,3},{4980,500,3},{4977,507,3},{4977,510,3},{4972,513,3},{4972,517,3}, {4970,517,3},{4968,523,3},{4970,528,3},{4967,533,3},{4962,532,3},{4963,535,3}, {4962,540,3},{4960,543,3},{4953,548,3},{4950,547,3},{4952,553,3},{4953,557,3}, {4952,562,3},{4955,567,3},{4953,573,3},{4955,577,3},{4955,578,3},{4953,580,3}, {4950,587,3},{4948,597,3},{4947,598,3},{4945,598,3},{4945,603,3},{4947,607,3}, {4945,608,3},{4948,612,3},{4950,617,3},{4950,615,3},{4950,623,3},{4947,637,3}, {4948,642,3},{4947,647,3},{4943,653,3},{4940,653,3},{4937,660,3},{4935,657,3}, {4933,657,3},{4928,667,3},{4922,670,3},{4922,673,3},{4918,672,3},{4917,673,3}, {4915,683,3},{4917,685,3},{4918,687,3},{4922,685,3},{4922,693,3},{4920,695,3}, {4918,703,3},{4912,705,3},{4913,708,3},{4915,708,3},{4915,710,3},{4913,712,3}, {4912,720,3},{4913,723,3},{4912,730,3},{4913,732,3},{4915,737,3},{4917,738,3}, {4917,748,3},{4915,750,3},{4913,748,3},{4908,753,3},{4908,760,3},{4905,765,3}, {4905,777,3},{4905,780,3},{4903,787,3},{4905,795,3},{4898,808,3},{4897,823,3}, {4895,818,3},{4890,813,3},{4880,810,3},{4878,803,3},{4875,802,3},{4875,797,3}, {4870,795,3},{4865,783,3},{4858,780,3},{4852,780,3},{4848,777,3},{4840,773,3}, {4833,775,3},{4830,770,3},{4825,768,3},{4812,758,3},{4805,757,3},{4798,762,3}, {4793,758,3},{4790,758,3},{4788,755,3},{4785,757,3},{4778,753,3},{4773,755,3}, {4770,752,3},{4767,752,3},{4763,757,3},{4758,758,3},{4755,750,3},{4753,752,3}, {4752,750,3},{4750,750,3},{4748,748,3},{4750,743,3},{4747,745,3},{4743,738,3}, {4743,732,3},{4742,725,3},{4743,723,3},{4745,718,3},{4750,720,3},{4750,713,3}, {4750,708,3},{4750,703,3},{4750,698,3},{4745,700,3},{4743,695,3},{4740,693,3}, {4738,688,3},{4735,688,3},{4737,702,3},{4737,705,3},{4735,707,3},{4732,702,3}, {4730,702,3},{4728,695,3},{4725,695,3},{4723,693,3},{4717,683,3},{4717,685,3}, {4708,670,3},{4703,670,3},{4700,663,3},{4697,648,3},{4693,643,3},{4687,647,3}, {4682,643,3},{4678,645,3},{4672,637,3},{4668,628,3},{4660,613,3},{4655,617,3}, {4648,608,3},{4645,608,3},{4643,607,3},{4637,617,3},{4630,610,3},{4627,612,3}, {4622,597,3},{4618,600,3},{4615,598,3},{4613,597,3},{4615,615,3},{4617,618,3}, {4620,620,3},{4625,630,3},{4627,630,3},{4627,627,3},{4630,625,3},{4632,625,3}, {4632,623,3},{4635,625,3},{4640,632,3},{4642,642,3},{4643,645,3},{4645,650,3}, {4647,663,3},{4643,678,3},{4642,682,3},{4638,680,3},{4635,677,3},{4627,685,3}, {4622,680,3},{4615,678,3},{4613,688,3},{4605,687,3},{4607,693,3},{4600,702,3}, {4597,700,3},{4597,703,3},{4593,703,3},{4587,697,3},{4585,687,3},{4583,687,3}, {4583,682,3},{4578,680,3},{4573,682,3},{4570,683,3},{4568,690,3},{4567,692,3}, {4567,695,3},{4565,698,3},{4560,697,3},{4552,700,3},{4548,708,3},{4543,712,3}, {4542,718,3},{4533,713,3},{4533,712,3},{4525,713,3},{4525,710,3},{4522,707,3}, {4523,705,3},{4522,697,3},{4518,693,3},{4517,688,3},{4515,690,3},{4513,688,3}, {4513,685,3},{4517,677,3},{4515,673,3},{4515,668,3},{4512,662,3},{4508,665,3}, {4503,667,3},{4502,675,3},{4492,675,3},{4487,685,3},{4487,690,3},{4487,695,3}, {4483,703,3},{4480,702,3},{4475,703,3},{4472,707,3},{4468,707,3},{4468,698,3}, {4467,695,3},{4463,697,3},{4458,693,3},{4453,685,3},{4448,687,3},{4445,693,3}, {4443,688,3},{4438,688,3},{4433,693,3},{4432,693,3},{4428,697,3},{4425,698,3}, {4425,705,3},{4422,712,3},{4422,715,3},{4418,722,3},{4418,723,3},{4415,727,3}, {4415,733,3},{4413,735,3},{4413,742,3},{4417,755,3},{4417,762,3},{4418,762,3}, {4418,767,3},{4413,765,3},{4410,770,3},{4408,770,3},{4405,767,3},{4400,765,3}, {4395,757,3},{4390,755,3},{4388,750,3},{4378,753,3},{4378,750,3},{4378,748,3}, {4375,747,3},{4375,743,3},{4372,738,3},{4375,738,3},{4377,742,3},{4375,743,3}, {4373,738,3},{4372,733,3},{4368,733,3},{4372,732,3},{4370,723,3},{4367,722,3}, {4367,715,3},{4363,713,3},{4357,713,3},{4358,710,3},{4357,702,3},{4355,697,3}, {4352,695,3},{4350,695,3},{4343,688,3},{4342,685,3},{4343,675,3},{4337,672,3}, {4335,667,3},{4332,667,3},{4328,658,3},{4328,670,3},{4323,667,3},{4322,668,3}, {4320,663,3},{4318,663,3},{4317,662,3},{4318,660,3},{4320,660,3},{4320,657,3}, {4317,650,3},{4317,640,3},{4313,637,3},{4308,637,3},{4313,627,3},{4313,618,3}, {4310,617,3},{4307,615,3},{4307,618,3},{4305,617,3},{4305,608,3},{4307,612,3}, {4310,612,3},{4310,603,3},{4312,602,3},{4312,593,3},{4313,593,3},{4312,588,3}, {4308,593,3},{4308,590,3},{4305,587,3},{4307,583,3},{4308,577,3},{4312,582,3}, {4312,578,3},{4315,577,3},{4315,570,3},{4318,568,3},{4318,562,3},{4318,560,3}, {4318,558,3},{4322,553,3},{4320,550,3},{4322,547,3},{4322,537,3},{4323,535,3}, {4327,537,3},{4328,535,3},{4333,537,3},{4337,532,3},{4333,522,3},{4335,503,3}, {4338,502,3},{4340,502,3},{4342,507,3},{4342,515,3},{4347,523,3},{4350,522,3}, {4348,517,3},{4350,512,3},{4353,512,3},{4353,505,3},{4355,503,3},{4350,500,3}, {4348,502,3},{4347,505,3},{4343,507,3},{4342,498,3},{4343,492,3},{4342,487,3}, {4340,485,3},{4338,487,3},{4337,487,3},{4343,475,3},{4352,475,3},{4357,472,3}, {4357,470,3},{4355,470,3},{4352,473,3},{4342,473,3},{4338,482,3},{4337,482,3}, {4335,480,3},{4337,460,3},{4338,457,3},{4343,460,3},{4345,453,3},{4345,437,3}, {4348,418,3},{4350,415,3},{4353,415,3},{4357,412,3},{4357,395,3},{4358,408,3}, {4362,410,3},{4355,388,3},{4353,387,3},{4352,382,3},{4348,380,3},{4343,370,3}, {4345,377,3},{4353,388,3},{4355,393,3},{4342,370,3},{4338,362,3},{4328,352,3}, {4328,340,3},{4322,327,3},{4308,315,3},{4310,312,3},{4312,313,3},{4312,310,3}, {4308,310,3},{4307,313,3},{4305,313,3},{4295,308,3},{4295,307,3},{4298,308,3}, {4298,307,3},{4297,305,3},{4293,310,3},{4290,310,3},{4290,305,3},{4287,305,3}, {4283,300,3},{4282,302,3},{4280,308,3},{4268,308,3},{4270,305,3},{4268,305,3}, {4265,308,3},{4255,310,3},{4252,315,3},{4243,322,3},{4245,315,3},{4243,312,3}, {4248,307,3},{4248,302,3},{4248,297,3},{4247,295,3},{4247,288,3},{4242,282,3}, {4243,275,3},{4242,272,3},{4238,268,3},{4235,270,3},{4233,270,3},{4237,260,3}, {4235,258,3},{4235,252,3},{4242,238,3},{4243,228,3},{4242,218,3},{4238,210,3}, {4237,207,3},{4238,202,3},{4243,200,3},{4247,197,3},{4250,175,3},{4257,178,3}, {4258,182,3},{4260,178,3},{4262,178,3},{4263,165,3},{4267,160,3},{4267,153,3}, {4262,152,3},{4260,148,3},{4267,147,3},{4273,137,3},{4273,122,3},{4273,118,3}, {4277,118,3},{4280,110,3},{4280,97,3},{4283,90,3},{4285,82,3},{4288,77,3}, {4285,70,3},{4278,70,3},{4273,72,3},{4272,72,3},{4272,47,3},{4275,40,3}, {4270,37,3},{4270,32,3},{4273,30,3},{4275,22,3},{4272,10,3},{4272,0,3}, {4273,65529,3},{4283,65521,3},{4283,65518,3},{4287,65508,3},{4285,65503,3}, {4282,65499,3},{4283,65488,3},{4280,65483,3},{4283,65483,3},{4283,65479,3}, {4290,65473,3},{4292,65466,3},{4297,65466,3},{4298,65463,3},{4297,65446,3}, {4298,65441,3},{4303,65429,3},{4307,65413,3},{4308,65409,3},{4313,65409,3}, {4312,65404,3},{4307,65403,3},{4307,65396,3},{4310,65393,3},{4320,65401,3}, {4328,65399,3},{4332,65384,3},{4328,65383,3},{4328,65379,3},{4333,65374,3}, {4332,65366,3},{4335,65364,3},{4340,65359,3},{4250,175,131},{4250,172,3}, {4248,170,3},{4247,160,3},{4245,160,3},{4245,157,3},{4245,148,3},{4248,145,3}, {4250,147,3},{4252,150,3},{4253,148,3},{4255,145,3},{4260,148,3},{4262,152,3}, {4267,153,3},{4267,160,3},{4263,165,3},{4262,178,3},{4260,178,3},{4258,182,3}, {4257,178,3},{4250,175,3},{4373,738,131},{4375,738,3},{4377,742,3},{4375,743,3}, {4373,738,3},{3718,64794,131},{3745,64789,3},{3748,64788,3},{3752,64784,3}, {3757,64784,3},{3765,64789,3},{3775,64793,3},{3782,64803,3},{3787,64808,3}, {3793,64809,3},{3798,64809,3},{3800,64814,3},{3800,64821,3},{3803,64823,3}, {3805,64824,3},{3803,64828,3},{3802,64829,3},{3803,64833,3},{3807,64833,3}, {3812,64836,3},{3818,64836,3},{3822,64841,3},{3818,64831,3},{3818,64824,3}, {3823,64823,3},{3828,64816,3},{3843,64806,3},{3843,64799,3},{3847,64803,3}, {3848,64801,3},{3855,64804,3},{3862,64809,3},{3863,64806,3},{3872,64808,3}, {3882,64821,3},{3883,64826,3},{3887,64833,3},{3890,64829,3},{3895,64831,3}, {3900,64836,3},{3905,64838,3},{3908,64836,3},{3910,64833,3},{3912,64829,3}, {3910,64819,3},{3917,64819,3},{3918,64811,3},{3923,64809,3},{3928,64809,3}, {3933,64803,3},{3940,64801,3},{3942,64804,3},{3947,64804,3},{3960,64784,3}, {3968,64781,3},{3967,64801,3},{3968,64808,3},{3967,64818,3},{3968,64836,3}, {3978,64839,3},{3982,64839,3},{3987,64846,3},{4002,64849,3},{4012,64843,3}, {4013,64834,3},{4022,64834,3},{4028,64843,3},{4028,64851,3},{4032,64851,3}, {4035,64858,3},{4037,64858,3},{4042,64853,3},{4045,64851,3},{4053,64858,3}, {4058,64853,3},{4067,64856,3},{4075,64853,3},{4085,64854,3},{4087,64856,3}, {4088,64853,3},{4103,64843,3},{4105,64856,3},{4110,64861,3},{4115,64861,3}, {4118,64864,3},{4125,64871,3},{4125,64879,3},{4128,64886,3},{4135,64896,3}, {4137,64899,3},{4140,64899,3},{4140,64904,3},{4148,64908,3},{4158,64918,3}, {4162,64913,3},{4165,64909,3},{4168,64901,3},{4168,64891,3},{4167,64886,3}, {4168,64883,3},{4175,64881,3},{4187,64884,3},{4188,64884,3},{4188,64878,3}, {4195,64881,3},{4197,64878,3},{4195,64873,3},{4195,64863,3},{4198,64859,3}, {4200,64854,3},{4195,64854,3},{4195,64846,3},{4195,64843,3},{4198,64839,3}, {4197,64834,3},{4197,64831,3},{4198,64826,3},{4198,64818,3},{4192,64819,3}, {4187,64808,3},{4185,64798,3},{4183,64794,3},{4187,64789,3},{4188,64784,3}, {4187,64783,3},{4183,64773,3},{4190,64776,3},{4190,64768,3},{4192,64764,3}, {4190,64753,3},{4187,64748,3},{4193,64746,3},{4195,64744,3},{4190,64741,3}, {4188,64736,3},{4183,64729,3},{4183,64721,3},{4183,64719,3},{4190,64718,3}, {4190,64714,3},{4192,64711,3},{4202,64718,3},{4203,64726,3},{4208,64726,3}, {4210,64724,3},{4210,64716,3},{4215,64716,3},{4210,64703,3},{4210,64689,3}, {4207,64683,3},{4205,64674,3},{4200,64669,3},{4197,64661,3},{4188,64649,3}, {4197,64648,3},{4212,64646,3},{4213,64651,3},{4212,64654,3},{4213,64654,3}, {4217,64651,3},{4217,64654,3},{4223,64659,3},{4230,64673,3},{4235,64674,3}, {4233,64671,3},{4230,64669,3},{4225,64658,3},{4227,64649,3},{4230,64651,3}, {4228,64654,3},{4233,64653,3},{4233,64659,3},{4243,64671,3},{4243,64666,3}, {4240,64659,3},{4240,64653,3},{4242,64649,3},{4243,64648,3},{4247,64646,3}, {4247,64643,3},{4248,64643,3},{4250,64648,3},{4248,64649,3},{4247,64649,3}, {4247,64654,3},{4247,64653,3},{4250,64654,3},{4257,64653,3},{4260,64659,3}, {4268,64663,3},{4265,64661,3},{4263,64656,3},{4268,64651,3},{4262,64649,3}, {4262,64648,3},{4263,64646,3},{4262,64644,3},{4258,64644,3},{4258,64639,3}, {4255,64638,3},{4253,64636,3},{4253,64633,3},{4258,64633,3},{4260,64629,3}, {4268,64633,3},{4273,64634,3},{4275,64641,3},{4278,64643,3},{4280,64646,3}, {4283,64648,3},{4283,64644,3},{4282,64644,3},{4280,64641,3},{4280,64631,3}, {4278,64631,3},{4275,64628,3},{4277,64626,3},{4282,64623,3},{4283,64626,3}, {4287,64621,3},{4292,64623,3},{4295,64618,3},{4292,64616,3},{4295,64613,3}, {4292,64611,3},{4290,64609,3},{4293,64608,3},{4302,64611,3},{4307,64608,3}, {4307,64611,3},{4310,64611,3},{4310,64614,3},{4312,64614,3},{4310,64618,3}, {4312,64619,3},{4313,64621,3},{4315,64626,3},{4313,64616,3},{4315,64614,3}, {4318,64618,3},{4320,64629,3},{4325,64634,3},{4323,64638,3},{4323,64643,3}, {4328,64638,3},{4330,64638,3},{4332,64644,3},{4335,64651,3},{4332,64658,3}, {4330,64664,3},{4332,64671,3},{4333,64678,3},{4333,64686,3},{4337,64691,3}, {4340,64696,3},{4337,64701,3},{4342,64703,3},{4340,64709,3},{4335,64713,3}, {4333,64714,3},{4338,64714,3},{4340,64714,3},{4343,64716,3},{4345,64709,3}, {4347,64706,3},{4347,64714,3},{4350,64719,3},{4348,64713,3},{4350,64711,3}, {4348,64704,3},{4353,64704,3},{4357,64704,3},{4358,64713,3},{4362,64718,3}, {4365,64723,3},{4367,64726,3},{4365,64728,3},{4365,64729,3},{4370,64729,3}, {4372,64736,3},{4375,64741,3},{4378,64746,3},{4377,64749,3},{4372,64751,3}, {4373,64749,3},{4368,64749,3},{4368,64746,3},{4367,64749,3},{4368,64751,3}, {4372,64749,3},{4372,64754,3},{4373,64754,3},{4377,64763,3},{4380,64768,3}, {4378,64769,3},{4373,64766,3},{4377,64771,3},{4373,64774,3},{4370,64774,3}, {4373,64779,3},{4373,64788,3},{4372,64788,3},{4368,64799,3},{4362,64806,3}, {4360,64809,3},{4357,64809,3},{4358,64833,3},{4357,64833,3},{4353,64831,3}, {4350,64831,3},{4355,64834,3},{4357,64834,3},{4358,64841,3},{4357,64864,3}, {4358,64871,3},{4358,64876,3},{4357,64886,3},{4357,64889,3},{4358,64889,3}, {4357,64894,3},{4358,64904,3},{4362,64913,3},{4358,64918,3},{4358,64929,3}, {4360,64934,3},{4360,64944,3},{4365,64946,3},{4365,64949,3},{4368,64951,3}, {4365,64958,3},{4358,64966,3},{4360,64966,3},{4357,64969,3},{4357,64996,3}, {4355,64998,3},{4352,64994,3},{4355,64999,3},{4355,65006,3},{4350,65016,3}, {4350,65028,3},{4348,65031,3},{4348,65039,3},{4348,65041,3},{4343,65063,3}, {4342,65083,3},{4342,65086,3},{4340,65088,3},{4342,65093,3},{4340,65098,3}, {4342,65101,3},{4340,65104,3},{4342,65113,3},{4345,65128,3},{4345,65133,3}, {4347,65134,3},{4345,65139,3},{4347,65139,3},{4350,65143,3},{4352,65154,3}, {4350,65159,3},{4347,65153,3},{4343,65154,3},{4347,65159,3},{4345,65163,3}, {4348,65161,3},{4348,65163,3},{4350,65164,3},{4350,65168,3},{4353,65178,3}, {4350,65186,3},{4348,65193,3},{4347,65193,3},{4345,65186,3},{4342,65189,3}, {4345,65191,3},{4342,65211,3},{4338,65219,3},{4337,65229,3},{4333,65234,3}, {4340,65233,3},{4343,65241,3},{4345,65243,3},{4345,65254,3},{4347,65261,3}, {4343,65266,3},{4338,65268,3},{4342,65269,3},{4340,65284,3},{4332,65301,3}, {4332,65318,3},{4332,65321,3},{4330,65323,3},{4335,65339,3},{4333,65346,3}, {4335,65344,3},{4342,65356,3},{4340,65359,3},{4335,65364,3},{4332,65366,3}, {4333,65374,3},{4328,65379,3},{4328,65383,3},{4332,65384,3},{4328,65399,3}, {4320,65401,3},{4310,65393,3},{4307,65396,3},{4307,65403,3},{4312,65404,3}, {4313,65409,3},{4308,65409,3},{4307,65413,3},{4303,65429,3},{4298,65441,3}, {4297,65446,3},{4298,65463,3},{4297,65466,3},{4292,65466,3},{4290,65473,3}, {4283,65479,3},{4283,65483,3},{4280,65483,3},{4283,65488,3},{4282,65499,3}, {4285,65503,3},{4287,65508,3},{4283,65518,3},{4283,65521,3},{4273,65529,3}, {4272,0,3},{4272,10,3},{4275,22,3},{4273,30,3},{4270,32,3},{4270,37,3}, {4275,40,3},{4272,47,3},{4272,72,3},{4273,72,3},{4278,70,3},{4285,70,3}, {4288,77,3},{4285,82,3},{4283,90,3},{4280,97,3},{4280,110,3},{4277,118,3}, {4273,118,3},{4273,122,3},{4273,137,3},{4267,147,3},{4260,148,3},{4255,145,3}, {4253,148,3},{4252,150,3},{4250,147,3},{4248,145,3},{4245,148,3},{4245,157,3}, {4245,160,3},{4247,160,3},{4248,170,3},{4250,172,3},{4250,175,3},{4247,197,3}, {4243,200,3},{4238,202,3},{4237,207,3},{4238,210,3},{4242,218,3},{4243,228,3}, {4242,238,3},{4235,252,3},{4235,258,3},{4237,260,3},{4233,270,3},{4235,270,3}, {4238,268,3},{4242,272,3},{4243,275,3},{4242,282,3},{4247,288,3},{4247,295,3}, {4248,297,3},{4248,302,3},{4248,307,3},{4243,312,3},{4245,315,3},{4243,322,3}, {4238,320,3},{4235,323,3},{4235,325,3},{4233,332,3},{4232,335,3},{4225,330,3}, {4225,322,3},{4227,320,3},{4225,317,3},{4222,315,3},{4215,315,3},{4208,323,3}, {4202,323,3},{4197,327,3},{4188,322,3},{4185,313,3},{4180,308,3},{4173,297,3}, {4172,287,3},{4163,275,3},{4145,228,3},{4132,215,3},{4127,207,3},{4125,193,3}, {4120,168,3},{4118,152,3},{4113,140,3},{4112,123,3},{4107,118,3},{4108,113,3}, {4107,105,3},{4103,98,3},{4097,88,3},{4080,72,3},{4077,78,3},{4080,77,3}, {4080,80,3},{4072,90,3},{4068,87,3},{4067,77,3},{4057,67,3},{4060,62,3}, {4060,70,3},{4065,73,3},{4063,62,3},{4060,58,3},{4030,37,3},{4025,30,3}, {4022,28,3},{4017,20,3},{4007,13,3},{4003,5,3},{3995,0,3},{3992,65534,3}, {3980,65523,3},{3970,65516,3},{3965,65514,3},{3955,65504,3},{3950,65503,3}, {3938,65503,3},{3918,65513,3},{3917,65511,3},{3912,65511,3},{3893,65524,3}, {3887,0,3},{3885,10,3},{3882,17,3},{3880,18,3},{3880,17,3},{3877,22,3}, {3873,22,3},{3872,17,3},{3868,13,3},{3867,8,3},{3863,7,3},{3862,0,3},{3860,65529,3}, {3858,65529,3},{3855,65529,3},{3853,65526,3},{3853,65519,3},{3845,65498,3}, {3840,65494,3},{3835,65494,3},{3835,65489,3},{3833,65488,3},{3833,65484,3}, {3820,65483,3},{3818,65474,3},{3815,65469,3},{3805,65469,3},{3798,65471,3}, {3795,65466,3},{3790,65461,3},{3783,65459,3},{3780,65461,3},{3782,65458,3}, {3780,65456,3},{3777,65454,3},{3775,65451,3},{3773,65449,3},{3767,65454,3}, {3763,65461,3},{3765,65464,3},{3763,65466,3},{3762,65464,3},{3755,65444,3}, {3758,65438,3},{3758,65429,3},{3757,65424,3},{3753,65424,3},{3757,65414,3}, {3755,65401,3},{3748,65389,3},{3743,65386,3},{3743,65383,3},{3742,65379,3}, {3738,65371,3},{3720,65354,3},{3698,65344,3},{3695,65346,3},{3693,65341,3}, {3690,65336,3},{3685,65334,3},{3673,65323,3},{3673,65318,3},{3673,65314,3}, {3680,65308,3},{3683,65299,3},{3682,65293,3},{3682,65278,3},{3673,65271,3}, {3670,65264,3},{3670,65259,3},{3672,65254,3},{3670,65251,3},{3675,65244,3}, {3677,65226,3},{3675,65203,3},{3670,65191,3},{3675,65173,3},{3673,65163,3}, {3675,65151,3},{3673,65141,3},{3675,65128,3},{3673,65124,3},{3672,65113,3}, {3672,65094,3},{3662,65086,3},{3657,65076,3},{3650,65071,3},{3648,65061,3}, {3652,65049,3},{3650,65043,3},{3647,65036,3},{3642,65018,3},{3635,65011,3}, {3630,65009,3},{3627,65004,3},{3615,64999,3},{3615,64998,3},{3615,64999,3}, {3615,64998,3},{3617,64993,3},{3615,64989,3},{3607,64991,3},{3605,64989,3}, {3600,64974,3},{3605,64968,3},{3607,64959,3},{3608,64954,3},{3618,64943,3}, {3618,64931,3},{3628,64924,3},{3632,64919,3},{3637,64918,3},{3645,64913,3}, {3653,64904,3},{3655,64906,3},{3653,64908,3},{3648,64913,3},{3652,64918,3}, {3652,64914,3},{3652,64911,3},{3657,64913,3},{3662,64906,3},{3663,64898,3}, {3673,64893,3},{3675,64893,3},{3680,64903,3},{3687,64901,3},{3690,64903,3}, {3690,64906,3},{3690,64914,3},{3693,64916,3},{3692,64913,3},{3690,64903,3}, {3682,64901,3},{3680,64899,3},{3682,64896,3},{3693,64889,3},{3703,64876,3}, {3718,64846,3},{3722,64844,3},{3728,64851,3},{3722,64843,3},{3723,64839,3}, {3717,64843,3},{3722,64828,3},{3722,64823,3},{3720,64826,3},{3720,64803,3}, {3718,64798,3},{3718,64794,3},{3717,64794,3},{3718,64791,3},{3717,64783,3}, {3698,64753,3},{3702,64746,3},{3700,64739,3},{3700,64736,3},{3698,64739,3}, {3705,64729,3},{3707,64721,3},{3707,64706,3},{3710,64699,3},{3708,64691,3}, {3712,64683,3},{3712,64676,3},{3712,64671,3},{3708,64668,3},{3705,64651,3}, {3700,64641,3},{3703,64636,3},{3715,64644,3},{3718,64644,3},{3725,64648,3}, {3732,64648,3},{3743,64654,3},{3753,64656,3},{3760,64653,3},{3768,64654,3}, {3770,64658,3},{3770,64661,3},{3773,64663,3},{3772,64656,3},{3773,64654,3}, {3788,64654,3},{3792,64653,3},{3795,64646,3},{3813,64656,3},{3825,64656,3}, {3840,64653,3},{3848,64641,3},{3848,64646,3},{3845,64651,3},{3843,64656,3}, {3842,64658,3},{3843,64659,3},{3840,64666,3},{3842,64676,3},{3842,64668,3}, {3845,64663,3},{3850,64661,3},{3852,64663,3},{3857,64659,3},{3853,64658,3}, {3852,64654,3},{3852,64658,3},{3848,64656,3},{3848,64653,3},{3852,64644,3}, {3847,64636,3},{3845,64629,3},{3842,64613,3},{3847,64616,3},{3872,64586,3}, {3875,64588,3},{3880,64586,3},{3893,64593,3},{3908,64593,3},{3923,64601,3}, {3932,64601,3},{3937,64594,3},{3938,64603,3},{3943,64611,3},{3940,64613,3}, {3942,64616,3},{3945,64613,3},{3955,64623,3},{3972,64629,3},{3983,64636,3}, {4013,64649,3},{4012,64654,3},{4012,64658,3},{4015,64654,3},{4015,64648,3}, {4018,64644,3},{4040,64654,3},{4062,64659,3},{4063,64661,3},{4062,64661,3}, {4065,64664,3},{4065,64668,3},{4067,64668,3},{4067,64669,3},{4070,64671,3}, {4070,64669,3},{4072,64669,3},{4073,64674,3},{4075,64679,3},{4073,64673,3}, {4073,64669,3},{4075,64668,3},{4078,64668,3},{4082,64673,3},{4083,64671,3}, {4080,64669,3},{4082,64668,3},{4075,64666,3},{4067,64663,3},{4067,64661,3}, {4097,64671,3},{4113,64669,3},{4115,64671,3},{4117,64666,3},{4120,64664,3}, {4133,64661,3},{4133,64659,3},{4140,64658,3},{4152,64656,3},{4153,64658,3}, {4155,64656,3},{4167,64653,3},{4170,64663,3},{4172,64666,3},{4168,64654,3}, {4170,64651,3},{4172,64648,3},{4175,64646,3},{4180,64648,3},{4183,64648,3}, {4192,64659,3},{4197,64661,3},{4200,64669,3},{4205,64674,3},{4207,64683,3}, {4210,64689,3},{4210,64703,3},{4215,64716,3},{4210,64716,3},{4210,64724,3}, {4208,64726,3},{4203,64726,3},{4202,64718,3},{4192,64711,3},{4190,64714,3}, {4190,64718,3},{4183,64719,3},{4183,64721,3},{4183,64729,3},{4188,64736,3}, {4190,64741,3},{4195,64744,3},{4193,64746,3},{4187,64748,3},{4190,64753,3}, {4192,64764,3},{4190,64768,3},{4190,64776,3},{4183,64773,3},{4187,64783,3}, {4188,64784,3},{4187,64789,3},{4183,64794,3},{4185,64798,3},{4187,64808,3}, {4192,64819,3},{4198,64818,3},{4198,64826,3},{4197,64831,3},{4197,64834,3}, {4198,64839,3},{4195,64843,3},{4195,64846,3},{4195,64854,3},{4200,64854,3}, {4198,64859,3},{4195,64863,3},{4195,64873,3},{4197,64878,3},{4195,64881,3}, {4188,64878,3},{4188,64884,3},{4187,64884,3},{4175,64881,3},{4168,64883,3}, {4167,64886,3},{4168,64891,3},{4168,64901,3},{4165,64909,3},{4162,64913,3}, {4158,64918,3},{4148,64908,3},{4140,64904,3},{4140,64899,3},{4137,64899,3}, {4135,64896,3},{4128,64886,3},{4125,64879,3},{4125,64871,3},{4118,64864,3}, {4115,64861,3},{4110,64861,3},{4105,64856,3},{4103,64843,3},{4088,64853,3}, {4087,64856,3},{4085,64854,3},{4075,64853,3},{4067,64856,3},{4058,64853,3}, {4053,64858,3},{4045,64851,3},{4042,64853,3},{4037,64858,3},{4035,64858,3}, {4032,64851,3},{4028,64851,3},{4028,64843,3},{4022,64834,3},{4013,64834,3}, {4012,64843,3},{4002,64849,3},{3987,64846,3},{3982,64839,3},{3978,64839,3}, {3968,64836,3},{3967,64818,3},{3968,64808,3},{3967,64801,3},{3968,64781,3}, {3960,64784,3},{3947,64804,3},{3942,64804,3},{3940,64801,3},{3933,64803,3}, {3928,64809,3},{3923,64809,3},{3918,64811,3},{3917,64819,3},{3910,64819,3}, {3912,64829,3},{3910,64833,3},{3908,64836,3},{3905,64838,3},{3900,64836,3}, {3895,64831,3},{3890,64829,3},{3887,64833,3},{3883,64826,3},{3882,64821,3}, {3872,64808,3},{3863,64806,3},{3862,64809,3},{3855,64804,3},{3848,64801,3}, {3847,64803,3},{3843,64799,3},{3843,64806,3},{3828,64816,3},{3823,64823,3}, {3818,64824,3},{3818,64831,3},{3822,64841,3},{3818,64836,3},{3812,64836,3}, {3807,64833,3},{3803,64833,3},{3802,64829,3},{3803,64828,3},{3805,64824,3}, {3803,64823,3},{3800,64821,3},{3800,64814,3},{3798,64809,3},{3793,64809,3}, {3787,64808,3},{3782,64803,3},{3775,64793,3},{3765,64789,3},{3757,64784,3}, {3752,64784,3},{3748,64788,3},{3745,64789,3},{3718,64794,3},{3615,64998,131}, {3615,64999,3},{3610,64999,3},{3615,64998,3},{5162,65269,131},{5167,65268,3}, {5167,65269,3},{5173,65268,3},{5178,65268,3},{5183,65269,3},{5185,65261,3}, {5188,65256,3},{5192,65249,3},{5193,65249,3},{5192,65241,3},{5195,65234,3}, {5198,65228,3},{5203,65228,3},{5208,65223,3},{5213,65223,3},{5215,65226,3}, {5217,65224,3},{5222,65228,3},{5227,65234,3},{5227,65238,3},{5227,65234,3}, {5232,65234,3},{5235,65238,3},{5235,65229,3},{5238,65223,3},{5242,65214,3}, {5247,65214,3},{5250,65223,3},{5250,65233,3},{5252,65236,3},{5257,65236,3}, {5255,65226,3},{5253,65223,3},{5258,65223,3},{5263,65228,3},{5268,65231,3}, {5272,65233,3},{5272,65236,3},{5272,65238,3},{5277,65233,3},{5280,65224,3}, {5278,65221,3},{5285,65221,3},{5290,65221,3},{5293,65226,3},{5293,65231,3}, {5297,65238,3},{5293,65243,3},{5295,65246,3},{5292,65254,3},{5290,65254,3}, {5293,65263,3},{5298,65264,3},{5300,65254,3},{5303,65249,3},{5308,65248,3}, {5312,65246,3},{5313,65239,3},{5318,65243,3},{5323,65238,3},{5325,65228,3}, {5327,65229,3},{5338,65216,3},{5340,65219,3},{5343,65231,3},{5340,65234,3}, {5332,65243,3},{5328,65253,3},{5330,65261,3},{5333,65263,3},{5333,65258,3}, {5333,65248,3},{5338,65239,3},{5355,65226,3},{5368,65238,3},{5373,65253,3}, {5373,65233,3},{5380,65229,3},{5392,65231,3},{5395,65244,3},{5393,65248,3}, {5397,65253,3},{5397,65249,3},{5400,65251,3},{5400,65246,3},{5403,65244,3}, {5407,65249,3},{5410,65254,3},{5412,65256,3},{5418,65251,3},{5420,65254,3}, {5420,65248,3},{5415,65243,3},{5415,65239,3},{5420,65233,3},{5412,65228,3}, {5408,65221,3},{5407,65223,3},{5412,65213,3},{5415,65213,3},{5417,65211,3}, {5417,65214,3},{5427,65216,3},{5420,65211,3},{5420,65204,3},{5428,65194,3}, {5435,65194,3},{5452,65173,3},{5458,65178,3},{5465,65179,3},{5472,65184,3}, {5477,65193,3},{5480,65193,3},{5487,65198,3},{5490,65204,3},{5488,65204,3}, {5487,65209,3},{5490,65211,3},{5490,65208,3},{5492,65208,3},{5495,65214,3}, {5492,65226,3},{5493,65233,3},{5495,65233,3},{5495,65228,3},{5497,65229,3}, {5497,65234,3},{5498,65234,3},{5498,65229,3},{5500,65231,3},{5505,65231,3}, {5507,65241,3},{5510,65248,3},{5513,65256,3},{5518,65266,3},{5523,65271,3}, {5528,65274,3},{5532,65281,3},{5535,65288,3},{5535,65298,3},{5542,65304,3}, {5545,65316,3},{5548,65318,3},{5550,65314,3},{5555,65313,3},{5558,65306,3}, {5563,65303,3},{5565,65311,3},{5570,65318,3},{5573,65324,3},{5580,65328,3}, {5582,65333,3},{5575,65338,3},{5563,65354,3},{5565,65358,3},{5563,65359,3}, {5562,65361,3},{5560,65359,3},{5560,65368,3},{5558,65373,3},{5553,65373,3}, {5548,65378,3},{5542,65379,3},{5538,65376,3},{5532,65381,3},{5528,65379,3}, {5518,65386,3},{5515,65384,3},{5500,65394,3},{5497,65401,3},{5492,65399,3}, {5477,65406,3},{5472,65411,3},{5470,65419,3},{5468,65416,3},{5465,65419,3}, {5460,65418,3},{5460,65419,3},{5460,65423,3},{5463,65423,3},{5458,65439,3}, {5455,65458,3},{5450,65473,3},{5448,65479,3},{5445,65484,3},{5442,65484,3}, {5437,65491,3},{5425,65499,3},{5422,65509,3},{5417,65511,3},{5412,65528,3}, {5408,65519,3},{5402,65514,3},{5387,65524,3},{5377,0,3},{5363,13,3},{5358,13,3}, {5357,12,3},{5360,13,3},{5362,12,3},{5363,5,3},{5363,0,3},{5362,65529,3}, {5363,65524,3},{5372,65511,3},{5373,65508,3},{5370,65494,3},{5370,65481,3}, {5372,65473,3},{5370,65464,3},{5368,65466,3},{5370,65474,3},{5367,65483,3}, {5368,65489,3},{5370,65506,3},{5368,65511,3},{5363,65516,3},{5357,65526,3}, {5357,65531,3},{5353,0,3},{5348,8,3},{5347,15,3},{5343,18,3},{5340,23,3}, {5323,33,3},{5317,35,3},{5308,33,3},{5302,17,3},{5292,7,3},{5292,3,3},{5288,0,3}, {5288,8,3},{5288,12,3},{5287,17,3},{5280,23,3},{5280,33,3},{5277,38,3}, {5278,38,3},{5283,43,3},{5293,48,3},{5297,55,3},{5295,60,3},{5297,67,3}, {5295,85,3},{5297,88,3},{5295,90,3},{5295,97,3},{5295,102,3},{5297,97,3}, {5297,98,3},{5297,103,3},{5295,110,3},{5293,128,3},{5287,143,3},{5277,165,3}, {5273,168,3},{5262,175,3},{5255,175,3},{5248,177,3},{5245,173,3},{5238,173,3}, {5227,163,3},{5218,163,3},{5208,158,3},{5205,147,3},{5193,133,3},{5200,125,3}, {5195,127,3},{5197,117,3},{5195,112,3},{5195,128,3},{5187,120,3},{5187,125,3}, {5188,127,3},{5187,130,3},{5185,128,3},{5180,120,3},{5177,113,3},{5178,103,3}, {5180,100,3},{5180,93,3},{5177,88,3},{5175,85,3},{5173,72,3},{5170,78,3}, {5172,80,3},{5175,92,3},{5173,95,3},{5168,97,3},{5163,93,3},{5163,90,3}, {5163,82,3},{5162,87,3},{5160,87,3},{5162,90,3},{5162,95,3},{5160,95,3}, {5153,80,3},{5153,65,3},{5150,57,3},{5150,47,3},{5147,43,3},{5145,38,3}, {5145,45,3},{5148,48,3},{5148,55,3},{5147,70,3},{5145,73,3},{5143,72,3}, {5143,65,3},{5142,60,3},{5142,55,3},{5138,62,3},{5138,65,3},{5138,68,3}, {5138,70,3},{5142,70,3},{5140,73,3},{5142,73,3},{5145,75,3},{5142,90,3}, {5137,95,3},{5135,90,3},{5137,80,3},{5133,92,3},{5138,122,3},{5140,145,3}, {5135,143,3},{5132,138,3},{5122,142,3},{5115,138,3},{5113,135,3},{5110,122,3}, {5108,118,3},{5107,110,3},{5103,103,3},{5098,97,3},{5092,98,3},{5093,80,3}, {5092,73,3},{5087,67,3},{5082,37,3},{5075,27,3},{5073,23,3},{5078,0,3}, {5083,65516,3},{5077,65466,3},{5075,65463,3},{5077,65461,3},{5073,65461,3}, {5073,65454,3},{5077,65444,3},{5080,65449,3},{5083,65446,3},{5082,65444,3}, {5083,65443,3},{5083,65439,3},{5082,65441,3},{5077,65441,3},{5078,65434,3}, {5080,65438,3},{5083,65438,3},{5083,65433,3},{5080,65433,3},{5078,65428,3}, {5080,65426,3},{5083,65429,3},{5085,65428,3},{5083,65419,3},{5082,65424,3}, {5078,65421,3},{5083,65406,3},{5088,65399,3},{5092,65389,3},{5090,65389,3}, {5088,65396,3},{5082,65406,3},{5078,65401,3},{5077,65389,3},{5072,65381,3}, {5073,65368,3},{5073,65361,3},{5072,65363,3},{5072,65354,3},{5072,65349,3}, {5068,65343,3},{5072,65341,3},{5072,65331,3},{5068,65329,3},{5070,65333,3}, {5067,65333,3},{5067,65343,3},{5065,65341,3},{5063,65346,3},{5062,65343,3}, {5058,65341,3},{5058,65331,3},{5058,65329,3},{5062,65316,3},{5063,65296,3}, {5062,65293,3},{5058,65291,3},{5055,65294,3},{5050,65291,3},{5057,65291,3}, {5065,65274,3},{5070,65258,3},{5073,65246,3},{5070,65239,3},{5068,65226,3}, {5068,65214,3},{5060,65199,3},{5062,65194,3},{5067,65189,3},{5060,65193,3}, {5052,65186,3},{5047,65188,3},{5043,65181,3},{5040,65183,3},{5038,65188,3}, {5037,65186,3},{5035,65184,3},{5033,65179,3},{5032,65179,3},{5030,65173,3}, {5027,65171,3},{5022,65171,3},{5020,65164,3},{5022,65159,3},{5022,65158,3}, {5022,65154,3},{5027,65149,3},{5030,65141,3},{5030,65133,3},{5032,65124,3}, {5035,65123,3},{5037,65116,3},{5035,65114,3},{5035,65119,3},{5032,65118,3}, {5032,65114,3},{5035,65109,3},{5035,65104,3},{5035,65094,3},{5033,65089,3}, {5032,65071,3},{5032,65069,3},{5033,65068,3},{5033,65061,3},{5023,65056,3}, {5022,65049,3},{5020,65046,3},{5020,65041,3},{5015,65038,3},{5013,65034,3}, {5015,65036,3},{5015,65034,3},{5022,65034,3},{5022,65033,3},{5020,65029,3}, {5017,65031,3},{5015,65029,3},{5015,65031,3},{5013,65028,3},{5010,65028,3}, {5010,65024,3},{5008,65029,3},{5005,65029,3},{5000,65026,3},{5000,65019,3}, {4995,65016,3},{5000,65011,3},{5007,65008,3},{5008,65003,3},{5013,64988,3}, {5012,64983,3},{5008,64983,3},{5005,64979,3},{5003,64969,3},{5007,64964,3}, {5008,64966,3},{5013,64964,3},{5015,64968,3},{5022,64984,3},{5020,64993,3}, {5023,64998,3},{5023,65003,3},{5027,65009,3},{5032,65014,3},{5035,65021,3}, {5040,65021,3},{5042,65031,3},{5047,65034,3},{5050,65033,3},{5053,65034,3}, {5053,65038,3},{5057,65041,3},{5055,65043,3},{5058,65044,3},{5060,65058,3}, {5067,65061,3},{5070,65068,3},{5073,65071,3},{5078,65081,3},{5090,65081,3}, {5102,65084,3},{5102,65089,3},{5098,65101,3},{5098,65104,3},{5103,65113,3}, {5107,65116,3},{5113,65111,3},{5115,65114,3},{5118,65114,3},{5118,65116,3}, {5123,65158,3},{5122,65176,3},{5122,65179,3},{5120,65193,3},{5118,65196,3}, {5117,65208,3},{5120,65216,3},{5120,65229,3},{5122,65236,3},{5123,65236,3}, {5132,65234,3},{5132,65238,3},{5138,65239,3},{5140,65244,3},{5148,65258,3}, {5150,65264,3},{5172,65289,3},{5175,65298,3},{5178,65296,3},{5175,65296,3}, {5173,65288,3},{5162,65269,3},{5498,65229,131},{5497,65223,3},{5497,65211,3}, {5498,65193,3},{5498,65191,3},{5498,65184,3},{5497,65183,3},{5498,65179,3}, {5488,65179,3},{5487,65176,3},{5487,65164,3},{5485,65161,3},{5487,65156,3}, {5485,65154,3},{5487,65154,3},{5487,65156,3},{5485,65151,3},{5482,65154,3}, {5477,65139,3},{5477,65131,3},{5483,65131,3},{5477,65128,3},{5477,65123,3}, {5483,65114,3},{5487,65116,3},{5483,65109,3},{5487,65101,3},{5490,65099,3}, {5492,65096,3},{5488,65096,3},{5487,65093,3},{5483,65094,3},{5480,65103,3}, {5478,65099,3},{5470,65101,3},{5468,65098,3},{5470,65086,3},{5478,65076,3}, {5483,65058,3},{5487,65056,3},{5487,65053,3},{5483,65043,3},{5480,65039,3}, {5470,65046,3},{5468,65049,3},{5465,65048,3},{5463,65051,3},{5463,65049,3}, {5465,65041,3},{5472,65041,3},{5485,65023,3},{5493,65018,3},{5500,65019,3}, {5502,65024,3},{5500,65028,3},{5493,65029,3},{5490,65036,3},{5492,65038,3}, {5500,65031,3},{5503,65029,3},{5513,65034,3},{5522,65049,3},{5532,65053,3}, {5535,65058,3},{5542,65061,3},{5545,65073,3},{5548,65074,3},{5553,65071,3}, {5553,65068,3},{5555,65071,3},{5560,65066,3},{5563,65054,3},{5565,65054,3}, {5570,65044,3},{5575,65051,3},{5582,65046,3},{5588,65046,3},{5593,65048,3}, {5597,65058,3},{5593,65064,3},{5592,65088,3},{5595,65071,3},{5602,65058,3}, {5607,65053,3},{5602,65054,3},{5598,65059,3},{5598,65056,3},{5598,65051,3}, {5605,65048,3},{5612,65054,3},{5608,65049,3},{5612,65048,3},{5615,65046,3}, {5610,65044,3},{5607,65048,3},{5598,65046,3},{5598,65041,3},{5597,65044,3}, {5587,65038,3},{5587,65031,3},{5593,65029,3},{5597,65026,3},{5590,65028,3}, {5593,65019,3},{5597,65018,3},{5597,65016,3},{5592,65016,3},{5588,65013,3}, {5583,65016,3},{5585,65004,3},{5592,65001,3},{5598,65001,3},{5605,65006,3}, {5610,65014,3},{5612,65016,3},{5615,65028,3},{5620,65031,3},{5627,65043,3}, {5623,65034,3},{5623,65029,3},{5617,65024,3},{5612,65011,3},{5600,64998,3}, {5600,64993,3},{5602,64991,3},{5595,64991,3},{5593,64993,3},{5587,64996,3}, {5578,65004,3},{5577,65003,3},{5575,64998,3},{5572,64991,3},{5565,64988,3}, {5560,64988,3},{5558,64991,3},{5557,64988,3},{5553,64988,3},{5543,64981,3}, {5542,64978,3},{5542,64981,3},{5537,64984,3},{5532,64978,3},{5528,64964,3}, {5530,64954,3},{5540,64956,3},{5543,64964,3},{5553,64966,3},{5557,64964,3}, {5562,64968,3},{5567,64968,3},{5583,64991,3},{5577,64976,3},{5580,64969,3}, {5583,64969,3},{5593,64979,3},{5588,64968,3},{5593,64968,3},{5603,64979,3}, {5602,64974,3},{5593,64968,3},{5593,64964,3},{5598,64966,3},{5602,64971,3}, {5605,64973,3},{5608,64978,3},{5608,64983,3},{5612,64979,3},{5618,64984,3}, {5612,64976,3},{5613,64974,3},{5622,64981,3},{5623,64976,3},{5633,64978,3}, {5635,64983,3},{5645,64991,3},{5643,65011,3},{5647,65001,3},{5645,64996,3}, {5650,64993,3},{5647,64991,3},{5648,64989,3},{5652,64993,3},{5650,64998,3}, {5652,65004,3},{5655,65011,3},{5652,64999,3},{5655,64994,3},{5662,65001,3}, {5663,65006,3},{5665,65004,3},{5668,65014,3},{5668,65024,3},{5670,65029,3}, {5668,65023,3},{5670,65011,3},{5682,65024,3},{5677,65016,3},{5677,65013,3}, {5670,65008,3},{5668,65001,3},{5667,64999,3},{5662,64988,3},{5653,64979,3}, {5648,64966,3},{5650,64964,3},{5652,64958,3},{5653,64959,3},{5655,64946,3}, {5658,64939,3},{5663,64934,3},{5665,64941,3},{5665,64948,3},{5670,64961,3}, {5667,64973,3},{5668,64979,3},{5668,64968,3},{5670,64959,3},{5667,64953,3}, {5667,64948,3},{5668,64916,3},{5672,64913,3},{5675,64921,3},{5675,64933,3}, {5677,64939,3},{5675,64944,3},{5675,64949,3},{5678,64948,3},{5677,64949,3}, {5678,64958,3},{5682,64951,3},{5683,64949,3},{5685,64959,3},{5683,64963,3}, {5687,64969,3},{5687,64964,3},{5685,64963,3},{5687,64958,3},{5688,64963,3}, {5688,64943,3},{5690,64946,3},{5690,64951,3},{5692,64948,3},{5700,64953,3}, {5702,64963,3},{5700,64963,3},{5697,64971,3},{5700,64984,3},{5698,64974,3}, {5700,64969,3},{5702,64968,3},{5703,64968,3},{5705,64958,3},{5708,64958,3}, {5712,64964,3},{5712,64971,3},{5708,64983,3},{5710,64993,3},{5710,64981,3}, {5713,64979,3},{5715,64969,3},{5717,64968,3},{5720,64973,3},{5722,64973,3}, {5723,64971,3},{5725,64973,3},{5727,64981,3},{5725,64984,3},{5722,64994,3}, {5723,64998,3},{5723,64989,3},{5727,64983,3},{5728,64966,3},{5728,64963,3}, {5733,64969,3},{5737,64984,3},{5742,64991,3},{5737,64981,3},{5735,64976,3}, {5737,64973,3},{5738,64976,3},{5740,64974,3},{5735,64961,3},{5735,64954,3}, {5738,64954,3},{5740,64956,3},{5742,64954,3},{5743,64956,3},{5745,64949,3}, {5748,64949,3},{5757,64953,3},{5757,64958,3},{5753,64961,3},{5755,64964,3}, {5750,64971,3},{5753,64971,3},{5752,64974,3},{5753,64984,3},{5755,64978,3}, {5755,64969,3},{5757,64966,3},{5757,64968,3},{5758,64963,3},{5762,64961,3}, {5763,64954,3},{5770,64958,3},{5770,64968,3},{5772,64966,3},{5772,64961,3}, {5775,64954,3},{5778,64956,3},{5785,64953,3},{5787,64966,3},{5785,64968,3}, {5778,64969,3},{5777,64974,3},{5778,64974,3},{5778,64978,3},{5783,64978,3}, {5788,64971,3},{5792,64974,3},{5790,64978,3},{5792,64981,3},{5787,64981,3}, {5785,64989,3},{5790,64994,3},{5785,65014,3},{5787,65011,3},{5792,64998,3}, {5793,64996,3},{5793,64999,3},{5790,65006,3},{5792,65013,3},{5787,65023,3}, {5783,65028,3},{5785,65028,3},{5792,65014,3},{5793,65018,3},{5795,65016,3}, {5798,65006,3},{5802,64999,3},{5803,64993,3},{5805,64993,3},{5807,64989,3}, {5810,64993,3},{5807,64999,3},{5808,65001,3},{5807,65009,3},{5808,65011,3}, {5812,65009,3},{5812,65013,3},{5813,65008,3},{5813,65013,3},{5815,65008,3}, {5817,65008,3},{5818,65003,3},{5820,65003,3},{5823,64996,3},{5825,64998,3}, {5822,65008,3},{5825,65016,3},{5823,65019,3},{5827,65026,3},{5823,65041,3}, {5825,65038,3},{5825,65043,3},{5825,65031,3},{5828,65023,3},{5832,65024,3}, {5832,65021,3},{5833,65019,3},{5840,65023,3},{5838,65033,3},{5840,65031,3}, {5842,65026,3},{5842,65029,3},{5843,65028,3},{5845,65031,3},{5843,65038,3}, {5847,65034,3},{5848,65026,3},{5852,65024,3},{5855,65033,3},{5863,65036,3}, {5862,65039,3},{5862,65048,3},{5858,65053,3},{5857,65054,3},{5858,65059,3}, {5860,65056,3},{5860,65058,3},{5857,65061,3},{5855,65069,3},{5853,65069,3}, {5845,65059,3},{5848,65068,3},{5852,65069,3},{5853,65076,3},{5858,65076,3}, {5857,65084,3},{5855,65093,3},{5852,65093,3},{5845,65088,3},{5853,65099,3}, {5853,65108,3},{5852,65113,3},{5853,65113,3},{5855,65114,3},{5853,65118,3}, {5857,65123,3},{5855,65129,3},{5860,65134,3},{5857,65134,3},{5857,65146,3}, {5857,65158,3},{5862,65169,3},{5862,65181,3},{5860,65181,3},{5860,65184,3}, {5862,65189,3},{5860,65199,3},{5862,65201,3},{5865,65194,3},{5867,65199,3}, {5865,65201,3},{5865,65219,3},{5863,65221,3},{5865,65233,3},{5863,65234,3}, {5850,65223,3},{5847,65226,3},{5847,65234,3},{5837,65224,3},{5835,65221,3}, {5830,65216,3},{5827,65199,3},{5817,65184,3},{5807,65161,3},{5803,65154,3}, {5800,65151,3},{5795,65138,3},{5787,65134,3},{5787,65128,3},{5785,65124,3}, {5785,65116,3},{5783,65118,3},{5782,65131,3},{5783,65139,3},{5783,65143,3}, {5780,65141,3},{5782,65151,3},{5787,65156,3},{5785,65159,3},{5777,65149,3}, {5768,65138,3},{5768,65134,3},{5773,65133,3},{5772,65126,3},{5768,65119,3}, {5768,65106,3},{5765,65106,3},{5760,65094,3},{5757,65093,3},{5767,65113,3}, {5767,65128,3},{5768,65131,3},{5767,65136,3},{5760,65126,3},{5758,65124,3}, {5757,65126,3},{5757,65119,3},{5755,65118,3},{5755,65109,3},{5753,65114,3}, {5750,65111,3},{5748,65116,3},{5750,65119,3},{5752,65121,3},{5755,65133,3}, {5757,65133,3},{5758,65128,3},{5758,65151,3},{5765,65168,3},{5767,65181,3}, {5770,65188,3},{5772,65203,3},{5767,65234,3},{5770,65251,3},{5768,65253,3}, {5768,65263,3},{5767,65298,3},{5767,65303,3},{5768,65308,3},{5767,65318,3}, {5768,65324,3},{5768,65336,3},{5767,65338,3},{5767,65344,3},{5762,65349,3}, {5760,65354,3},{5757,65354,3},{5750,65359,3},{5750,65358,3},{5747,65358,3}, {5747,65361,3},{5727,65334,3},{5715,65329,3},{5712,65331,3},{5697,65318,3}, {5692,65318,3},{5682,65309,3},{5677,65299,3},{5677,65296,3},{5670,65293,3}, {5668,65294,3},{5665,65286,3},{5662,65289,3},{5657,65283,3},{5650,65264,3}, {5647,65263,3},{5647,65256,3},{5645,65249,3},{5647,65243,3},{5645,65239,3}, {5645,65231,3},{5637,65213,3},{5637,65204,3},{5635,65209,3},{5637,65218,3}, {5645,65246,3},{5643,65256,3},{5638,65254,3},{5637,65253,3},{5637,65254,3}, {5633,65259,3},{5632,65273,3},{5627,65278,3},{5622,65268,3},{5618,65256,3}, {5620,65244,3},{5620,65239,3},{5612,65223,3},{5605,65219,3},{5605,65209,3}, {5602,65196,3},{5605,65178,3},{5605,65168,3},{5602,65168,3},{5600,65171,3}, {5600,65184,3},{5598,65199,3},{5600,65203,3},{5598,65208,3},{5597,65223,3}, {5595,65228,3},{5595,65236,3},{5597,65241,3},{5597,65246,3},{5602,65251,3}, {5603,65251,3},{5607,65256,3},{5607,65271,3},{5602,65279,3},{5600,65279,3}, {5598,65289,3},{5593,65304,3},{5590,65323,3},{5588,65323,3},{5587,65328,3}, {5582,65333,3},{5580,65328,3},{5573,65324,3},{5570,65318,3},{5565,65311,3}, {5563,65303,3},{5558,65306,3},{5555,65313,3},{5550,65314,3},{5548,65318,3}, {5545,65316,3},{5542,65304,3},{5535,65298,3},{5535,65288,3},{5532,65281,3}, {5528,65274,3},{5523,65271,3},{5518,65266,3},{5513,65256,3},{5510,65248,3}, {5507,65241,3},{5505,65231,3},{5500,65231,3},{5498,65229,3},{5162,65269,131}, {5158,65264,3},{5153,65248,3},{5153,65239,3},{5155,65239,3},{5155,65238,3}, {5153,65234,3},{5148,65224,3},{5145,65223,3},{5145,65219,3},{5140,65218,3}, {5138,65209,3},{5138,65194,3},{5140,65181,3},{5147,65171,3},{5147,65164,3}, {5155,65159,3},{5162,65153,3},{5160,65138,3},{5158,65136,3},{5155,65138,3}, {5155,65121,3},{5153,65121,3},{5153,65114,3},{5155,65106,3},{5158,65108,3}, {5162,65108,3},{5163,65113,3},{5162,65114,3},{5163,65124,3},{5165,65128,3}, {5167,65129,3},{5165,65123,3},{5168,65118,3},{5167,65106,3},{5172,65098,3}, {5173,65098,3},{5172,65104,3},{5175,65099,3},{5178,65099,3},{5175,65096,3}, {5177,65091,3},{5173,65093,3},{5172,65069,3},{5165,65066,3},{5165,65061,3}, {5163,65058,3},{5163,65049,3},{5160,65043,3},{5162,65031,3},{5165,65031,3}, {5167,65026,3},{5168,65024,3},{5167,65029,3},{5168,65033,3},{5168,65039,3}, {5172,65048,3},{5170,65038,3},{5172,65019,3},{5168,65019,3},{5172,65013,3}, {5173,65011,3},{5173,65016,3},{5177,65019,3},{5177,65026,3},{5185,65024,3}, {5187,65018,3},{5187,65004,3},{5192,65006,3},{5192,65013,3},{5195,65018,3}, {5197,65026,3},{5202,65028,3},{5202,65038,3},{5200,65039,3},{5202,65044,3}, {5203,65044,3},{5202,65048,3},{5202,65053,3},{5205,65053,3},{5207,65059,3}, {5210,65063,3},{5210,65066,3},{5213,65066,3},{5213,65086,3},{5222,65098,3}, {5222,65103,3},{5225,65113,3},{5232,65121,3},{5238,65126,3},{5252,65131,3}, {5253,65136,3},{5255,65141,3},{5255,65129,3},{5260,65123,3},{5270,65129,3}, {5273,65138,3},{5272,65133,3},{5273,65129,3},{5278,65123,3},{5280,65121,3}, {5285,65124,3},{5290,65119,3},{5288,65098,3},{5287,65091,3},{5282,65088,3}, {5280,65089,3},{5277,65084,3},{5282,65076,3},{5280,65073,3},{5280,65064,3}, {5278,65061,3},{5280,65061,3},{5285,65064,3},{5292,65074,3},{5293,65083,3}, {5303,65099,3},{5312,65101,3},{5310,65104,3},{5312,65106,3},{5322,65118,3}, {5323,65123,3},{5323,65129,3},{5328,65148,3},{5328,65153,3},{5333,65149,3}, {5332,65158,3},{5328,65163,3},{5328,65174,3},{5335,65198,3},{5335,65206,3}, {5333,65208,3},{5323,65228,3},{5325,65228,3},{5323,65238,3},{5318,65243,3}, {5313,65239,3},{5312,65246,3},{5308,65248,3},{5303,65249,3},{5300,65254,3}, {5298,65264,3},{5293,65263,3},{5290,65254,3},{5292,65254,3},{5295,65246,3}, {5293,65243,3},{5297,65238,3},{5293,65231,3},{5293,65226,3},{5290,65221,3}, {5285,65221,3},{5278,65221,3},{5280,65224,3},{5277,65233,3},{5272,65238,3}, {5272,65236,3},{5272,65233,3},{5268,65231,3},{5263,65228,3},{5258,65223,3}, {5253,65223,3},{5255,65226,3},{5257,65236,3},{5252,65236,3},{5250,65233,3}, {5250,65223,3},{5247,65214,3},{5242,65214,3},{5238,65223,3},{5235,65229,3}, {5235,65238,3},{5232,65234,3},{5227,65234,3},{5227,65238,3},{5227,65234,3}, {5222,65228,3},{5217,65224,3},{5215,65226,3},{5213,65223,3},{5208,65223,3}, {5203,65228,3},{5198,65228,3},{5195,65234,3},{5192,65241,3},{5193,65249,3}, {5192,65249,3},{5188,65256,3},{5185,65261,3},{5183,65269,3},{5178,65268,3}, {5173,65268,3},{5167,65269,3},{5167,65268,3},{5162,65269,3},{5408,64911,131}, {5410,64908,3},{5408,64901,3},{5407,64901,3},{5407,64896,3},{5408,64889,3}, {5405,64886,3},{5403,64876,3},{5408,64871,3},{5415,64873,3},{5418,64871,3}, {5420,64866,3},{5418,64863,3},{5422,64856,3},{5433,64848,3},{5440,64841,3}, {5442,64833,3},{5430,64814,3},{5425,64821,3},{5422,64821,3},{5422,64814,3}, {5412,64808,3},{5413,64794,3},{5417,64794,3},{5412,64788,3},{5413,64778,3}, {5420,64766,3},{5422,64751,3},{5428,64748,3},{5430,64743,3},{5435,64738,3}, {5437,64731,3},{5443,64721,3},{5445,64719,3},{5448,64731,3},{5452,64731,3}, {5453,64738,3},{5453,64739,3},{5453,64749,3},{5455,64753,3},{5460,64766,3}, {5462,64764,3},{5462,64763,3},{5463,64749,3},{5467,64744,3},{5473,64749,3}, {5473,64754,3},{5470,64761,3},{5473,64771,3},{5473,64781,3},{5482,64784,3}, {5483,64788,3},{5488,64791,3},{5493,64791,3},{5498,64796,3},{5498,64794,3}, {5503,64799,3},{5505,64811,3},{5503,64826,3},{5507,64834,3},{5515,64839,3}, {5518,64839,3},{5517,64849,3},{5517,64861,3},{5518,64866,3},{5522,64881,3}, {5525,64888,3},{5523,64894,3},{5523,64901,3},{5520,64913,3},{5522,64921,3}, {5522,64926,3},{5515,64933,3},{5505,64931,3},{5505,64936,3},{5503,64939,3}, {5498,64936,3},{5497,64943,3},{5490,64951,3},{5487,64954,3},{5482,64954,3}, {5482,64959,3},{5478,64964,3},{5483,64956,3},{5485,64958,3},{5485,64963,3}, {5483,64966,3},{5480,64968,3},{5475,64966,3},{5472,64963,3},{5470,64949,3}, {5463,64944,3},{5460,64946,3},{5463,64951,3},{5468,64961,3},{5468,64973,3}, {5468,64979,3},{5463,64983,3},{5457,64988,3},{5452,64988,3},{5448,64993,3}, {5442,64989,3},{5438,64989,3},{5437,64988,3},{5435,64989,3},{5433,64984,3}, {5435,64983,3},{5440,64979,3},{5445,64983,3},{5450,64981,3},{5452,64979,3}, {5457,64969,3},{5457,64966,3},{5453,64964,3},{5452,64969,3},{5450,64968,3}, {5448,64971,3},{5442,64973,3},{5435,64964,3},{5438,64978,3},{5435,64981,3}, {5432,64983,3},{5428,64979,3},{5423,64971,3},{5425,64968,3},{5425,64961,3}, {5422,64949,3},{5417,64949,3},{5410,64946,3},{5403,64931,3},{5403,64926,3}, {5405,64928,3},{5407,64918,3},{5408,64916,3},{5408,64909,3},{5408,64911,3}, {5407,64916,3},{5403,64918,3},{5403,64923,3},{5400,64924,3},{5398,64918,3}, {5402,64903,3},{5402,64899,3},{5400,64901,3},{5398,64899,3},{5392,64898,3}, {5387,64903,3},{5387,64911,3},{5380,64911,3},{5378,64914,3},{5375,64911,3}, {5368,64913,3},{5363,64914,3},{5357,64928,3},{5352,64928,3},{5345,64921,3}, {5340,64924,3},{5338,64931,3},{5337,64931,3},{5338,64923,3},{5337,64918,3}, {5335,64914,3},{5330,64919,3},{5327,64926,3},{5322,64926,3},{5310,64933,3}, {5300,64931,3},{5297,64936,3},{5285,64929,3},{5283,64924,3},{5273,64921,3}, {5267,64914,3},{5255,64916,3},{5242,64901,3},{5235,64899,3},{5237,64894,3}, {5235,64893,3},{5232,64893,3},{5230,64896,3},{5233,64898,3},{5227,64898,3}, {5225,64904,3},{5218,64899,3},{5218,64896,3},{5220,64898,3},{5218,64889,3}, {5220,64891,3},{5220,64888,3},{5217,64878,3},{5222,64866,3},{5220,64856,3}, {5225,64859,3},{5223,64856,3},{5223,64853,3},{5222,64853,3},{5220,64854,3}, {5217,64853,3},{5215,64848,3},{5212,64843,3},{5213,64843,3},{5215,64846,3}, {5218,64846,3},{5222,64844,3},{5225,64839,3},{5228,64836,3},{5222,64839,3}, {5218,64838,3},{5218,64841,3},{5213,64836,3},{5213,64826,3},{5217,64829,3}, {5217,64826,3},{5217,64824,3},{5215,64826,3},{5215,64819,3},{5213,64818,3}, {5213,64793,3},{5210,64781,3},{5208,64781,3},{5210,64776,3},{5208,64774,3}, {5207,64776,3},{5205,64783,3},{5203,64778,3},{5200,64778,3},{5198,64764,3}, {5195,64763,3},{5195,64758,3},{5195,64753,3},{5197,64749,3},{5192,64746,3}, {5192,64744,3},{5188,64748,3},{5187,64736,3},{5183,64733,3},{5182,64734,3}, {5180,64719,3},{5180,64711,3},{5182,64709,3},{5185,64718,3},{5188,64719,3}, {5187,64706,3},{5188,64698,3},{5187,64696,3},{5187,64703,3},{5182,64708,3}, {5178,64704,3},{5177,64706,3},{5172,64701,3},{5170,64693,3},{5168,64691,3}, {5170,64683,3},{5168,64684,3},{5165,64681,3},{5160,64683,3},{5163,64678,3}, {5163,64668,3},{5157,64666,3},{5157,64661,3},{5158,64659,3},{5158,64649,3}, {5155,64648,3},{5155,64643,3},{5153,64643,3},{5157,64636,3},{5155,64629,3}, {5157,64623,3},{5153,64624,3},{5152,64619,3},{5153,64618,3},{5150,64618,3}, {5148,64614,3},{5148,64609,3},{5150,64609,3},{5150,64606,3},{5148,64606,3}, {5147,64601,3},{5147,64598,3},{5150,64594,3},{5155,64596,3},{5157,64591,3}, {5153,64591,3},{5152,64584,3},{5153,64581,3},{5150,64581,3},{5150,64578,3}, {5148,64576,3},{5148,64573,3},{5152,64571,3},{5148,64564,3},{5147,64566,3}, {5145,64559,3},{5147,64559,3},{5145,64554,3},{5147,64554,3},{5148,64553,3}, {5153,64563,3},{5155,64571,3},{5162,64581,3},{5162,64578,3},{5155,64556,3}, {5155,64551,3},{5157,64558,3},{5160,64561,3},{5168,64589,3},{5168,64591,3}, {5172,64591,3},{5172,64588,3},{5173,64584,3},{5175,64581,3},{5173,64581,3}, {5168,64576,3},{5165,64544,3},{5162,64541,3},{5160,64533,3},{5160,64529,3}, {5160,64523,3},{5158,64521,3},{5162,64521,3},{5163,64529,3},{5165,64529,3}, {5167,64526,3},{5167,64528,3},{5168,64538,3},{5172,64541,3},{5172,64536,3}, {5173,64538,3},{5177,64546,3},{5173,64548,3},{5177,64551,3},{5177,64558,3}, {5178,64554,3},{5183,64563,3},{5185,64571,3},{5187,64578,3},{5185,64564,3}, {5182,64556,3},{5182,64553,3},{5180,64549,3},{5182,64548,3},{5173,64523,3}, {5175,64523,3},{5177,64514,3},{5178,64518,3},{5182,64519,3},{5185,64516,3}, {5183,64511,3},{5178,64503,3},{5185,64503,3},{5185,64498,3},{5188,64496,3}, {5190,64508,3},{5190,64511,3},{5193,64509,3},{5195,64506,3},{5197,64509,3}, {5198,64509,3},{5205,64536,3},{5208,64539,3},{5207,64539,3},{5205,64543,3}, {5213,64546,3},{5212,64549,3},{5213,64559,3},{5215,64548,3},{5215,64539,3}, {5210,64541,3},{5213,64536,3},{5210,64518,3},{5213,64514,3},{5213,64509,3}, {5212,64506,3},{5212,64509,3},{5210,64508,3},{5212,64499,3},{5210,64501,3}, {5210,64493,3},{5210,64489,3},{5212,64489,3},{5215,64489,3},{5217,64491,3}, {5218,64489,3},{5220,64494,3},{5217,64494,3},{5218,64499,3},{5223,64499,3}, {5223,64504,3},{5227,64509,3},{5228,64519,3},{5223,64519,3},{5225,64528,3}, {5228,64533,3},{5230,64531,3},{5230,64534,3},{5227,64534,3},{5223,64541,3}, {5223,64549,3},{5225,64554,3},{5223,64554,3},{5225,64563,3},{5227,64561,3}, {5227,64548,3},{5230,64548,3},{5230,64551,3},{5232,64553,3},{5238,64553,3}, {5240,64541,3},{5242,64543,3},{5245,64559,3},{5248,64566,3},{5247,64573,3}, {5248,64571,3},{5248,64568,3},{5252,64568,3},{5255,64569,3},{5257,64573,3}, {5255,64589,3},{5258,64593,3},{5257,64608,3},{5263,64629,3},{5262,64631,3}, {5262,64636,3},{5265,64641,3},{5267,64653,3},{5265,64656,3},{5267,64663,3}, {5270,64649,3},{5268,64641,3},{5272,64643,3},{5277,64639,3},{5275,64633,3}, {5272,64633,3},{5262,64621,3},{5262,64611,3},{5258,64608,3},{5260,64603,3}, {5263,64609,3},{5260,64596,3},{5263,64583,3},{5267,64581,3},{5265,64578,3}, {5263,64579,3},{5260,64566,3},{5258,64566,3},{5255,64548,3},{5257,64543,3}, {5260,64554,3},{5268,64569,3},{5273,64576,3},{5275,64586,3},{5280,64588,3}, {5283,64593,3},{5288,64593,3},{5293,64601,3},{5293,64599,3},{5293,64589,3}, {5297,64593,3},{5315,64609,3},{5312,64621,3},{5313,64628,3},{5315,64624,3}, {5315,64638,3},{5317,64629,3},{5317,64639,3},{5315,64639,3},{5313,64643,3}, {5315,64643,3},{5318,64643,3},{5322,64646,3},{5320,64641,3},{5322,64636,3}, {5323,64639,3},{5325,64639,3},{5325,64643,3},{5327,64643,3},{5327,64633,3}, {5323,64618,3},{5322,64588,3},{5323,64581,3},{5328,64581,3},{5327,64579,3}, {5323,64578,3},{5323,64574,3},{5325,64573,3},{5328,64576,3},{5332,64574,3}, {5332,64578,3},{5333,64579,3},{5335,64576,3},{5333,64576,3},{5333,64571,3}, {5333,64569,3},{5337,64574,3},{5335,64568,3},{5332,64563,3},{5330,64559,3}, {5332,64551,3},{5332,64546,3},{5335,64548,3},{5335,64546,3},{5338,64558,3}, {5340,64558,3},{5340,64554,3},{5342,64556,3},{5340,64549,3},{5342,64548,3}, {5342,64549,3},{5342,64546,3},{5338,64543,3},{5337,64539,3},{5338,64533,3}, {5342,64529,3},{5340,64524,3},{5342,64521,3},{5340,64518,3},{5345,64521,3}, {5345,64531,3},{5350,64524,3},{5352,64524,3},{5353,64521,3},{5355,64516,3}, {5355,64526,3},{5357,64526,3},{5357,64536,3},{5360,64531,3},{5362,64548,3}, {5368,64544,3},{5375,64546,3},{5378,64558,3},{5377,64576,3},{5380,64581,3}, {5382,64574,3},{5383,64576,3},{5383,64574,3},{5387,64579,3},{5387,64578,3}, {5390,64579,3},{5390,64559,3},{5387,64553,3},{5385,64544,3},{5387,64543,3}, {5395,64546,3},{5393,64554,3},{5392,64556,3},{5392,64558,3},{5397,64556,3}, {5397,64554,3},{5395,64554,3},{5397,64553,3},{5400,64551,3},{5402,64546,3}, {5405,64546,3},{5407,64549,3},{5408,64548,3},{5412,64553,3},{5412,64548,3}, {5408,64546,3},{5407,64543,3},{5407,64539,3},{5410,64538,3},{5412,64544,3}, {5413,64539,3},{5415,64543,3},{5417,64539,3},{5418,64541,3},{5418,64543,3}, {5422,64534,3},{5418,64534,3},{5418,64531,3},{5417,64533,3},{5415,64528,3}, {5413,64529,3},{5412,64528,3},{5408,64529,3},{5410,64524,3},{5420,64526,3}, {5422,64529,3},{5423,64524,3},{5423,64528,3},{5425,64528,3},{5430,64536,3}, {5427,64539,3},{5425,64546,3},{5422,64544,3},{5423,64538,3},{5422,64539,3}, {5420,64546,3},{5427,64551,3},{5425,64559,3},{5428,64556,3},{5430,64549,3}, {5433,64556,3},{5432,64568,3},{5432,64588,3},{5428,64598,3},{5432,64603,3}, {5430,64609,3},{5427,64611,3},{5427,64616,3},{5425,64614,3},{5423,64616,3}, {5422,64614,3},{5420,64619,3},{5417,64623,3},{5428,64631,3},{5428,64643,3}, {5425,64653,3},{5427,64659,3},{5427,64663,3},{5427,64668,3},{5420,64678,3}, {5420,64684,3},{5425,64678,3},{5425,64674,3},{5428,64678,3},{5427,64689,3}, {5432,64679,3},{5430,64686,3},{5432,64686,3},{5433,64679,3},{5432,64671,3}, {5435,64669,3},{5438,64679,3},{5440,64679,3},{5440,64683,3},{5443,64689,3}, {5445,64688,3},{5447,64689,3},{5445,64693,3},{5447,64708,3},{5452,64711,3}, {5455,64714,3},{5462,64721,3},{5460,64723,3},{5462,64726,3},{5463,64723,3}, {5460,64709,3},{5460,64706,3},{5463,64708,3},{5463,64706,3},{5462,64701,3}, {5455,64691,3},{5458,64691,3},{5462,64698,3},{5460,64689,3},{5462,64688,3}, {5460,64678,3},{5462,64669,3},{5465,64656,3},{5468,64658,3},{5468,64656,3}, {5470,64661,3},{5473,64661,3},{5477,64669,3},{5475,64691,3},{5477,64689,3}, {5478,64683,3},{5478,64689,3},{5475,64696,3},{5482,64681,3},{5483,64688,3}, {5483,64704,3},{5485,64698,3},{5487,64698,3},{5487,64704,3},{5488,64706,3}, {5490,64703,3},{5490,64698,3},{5488,64698,3},{5490,64691,3},{5493,64691,3}, {5495,64699,3},{5495,64696,3},{5500,64691,3},{5500,64696,3},{5503,64696,3}, {5503,64701,3},{5505,64701,3},{5505,64704,3},{5507,64703,3},{5508,64706,3}, {5510,64704,3},{5515,64708,3},{5515,64719,3},{5515,64721,3},{5515,64723,3}, {5512,64719,3},{5515,64728,3},{5517,64734,3},{5520,64734,3},{5522,64738,3}, {5520,64741,3},{5518,64741,3},{5518,64746,3},{5517,64748,3},{5515,64746,3}, {5515,64751,3},{5513,64746,3},{5513,64751,3},{5515,64751,3},{5518,64753,3}, {5518,64749,3},{5522,64748,3},{5522,64753,3},{5525,64756,3},{5517,64754,3}, {5517,64761,3},{5515,64766,3},{5510,64766,3},{5513,64769,3},{5522,64766,3}, {5517,64764,3},{5518,64763,3},{5520,64763,3},{5520,64756,3},{5525,64761,3}, {5525,64766,3},{5528,64771,3},{5523,64776,3},{5518,64774,3},{5515,64781,3}, {5512,64783,3},{5508,64783,3},{5503,64773,3},{5503,64778,3},{5503,64779,3}, {5500,64773,3},{5497,64771,3},{5502,64779,3},{5505,64789,3},{5508,64788,3}, {5513,64788,3},{5520,64781,3},{5525,64784,3},{5527,64783,3},{5527,64788,3}, {5528,64788,3},{5527,64791,3},{5530,64799,3},{5530,64803,3},{5528,64801,3}, {5527,64809,3},{5530,64803,3},{5533,64799,3},{5533,64803,3},{5535,64798,3}, {5537,64796,3},{5535,64811,3},{5533,64818,3},{5528,64823,3},{5523,64843,3}, {5522,64841,3},{5513,64819,3},{5505,64811,3},{5503,64799,3},{5498,64794,3}, {5498,64796,3},{5493,64791,3},{5488,64791,3},{5483,64788,3},{5482,64784,3}, {5473,64781,3},{5473,64771,3},{5470,64761,3},{5473,64754,3},{5473,64749,3}, {5467,64744,3},{5463,64749,3},{5462,64763,3},{5462,64764,3},{5460,64766,3}, {5455,64753,3},{5453,64749,3},{5453,64739,3},{5453,64738,3},{5452,64731,3}, {5448,64731,3},{5445,64719,3},{5443,64721,3},{5437,64731,3},{5435,64738,3}, {5430,64743,3},{5428,64748,3},{5422,64751,3},{5420,64766,3},{5413,64778,3}, {5412,64788,3},{5417,64794,3},{5413,64794,3},{5412,64808,3},{5422,64814,3}, {5422,64821,3},{5425,64821,3},{5430,64814,3},{5442,64833,3},{5440,64841,3}, {5433,64848,3},{5422,64856,3},{5418,64863,3},{5420,64866,3},{5418,64871,3}, {5415,64873,3},{5408,64871,3},{5403,64876,3},{5405,64886,3},{5408,64889,3}, {5407,64896,3},{5407,64901,3},{5408,64901,3},{5410,64908,3},{5408,64911,3}, {3737,5390,130},{3727,5392,2},{3718,5395,2},{3710,5397,2},{3702,5402,2}, {3698,5398,2},{3697,5403,2},{3695,5403,2},{3682,5403,2},{3680,5395,2},{3680,5388,2}, {3682,5368,2},{3685,5363,2},{3685,5367,2},{3687,5360,2},{3687,5382,2},{3690,5398,2}, {3690,5400,2},{3695,5402,2},{3692,5393,2},{3688,5348,2},{3685,5322,2},{3675,5282,2}, {3672,5267,2},{3670,5255,2},{3668,5243,2},{3660,5210,2},{3658,5197,2},{3658,5187,2}, {3668,5142,2},{3673,5110,2},{3677,5100,2},{3683,5088,2},{3703,5048,2},{3707,5045,2}, {3712,5035,2},{3715,5032,2},{3728,5023,2},{3737,5022,2},{3738,5018,2},{3745,4995,2}, {3745,4993,2},{3747,4995,2},{3745,4997,2},{3748,4993,2},{3745,4983,2},{3755,4927,2}, {3748,4943,2},{3763,4912,2},{3775,4900,2},{3780,4898,2},{3783,4898,2},{3790,4895,2}, {3797,4895,2},{3805,4892,2},{3830,4887,2},{3845,4888,2},{3843,4888,2},{3875,4887,2}, {3882,4883,2},{3887,4883,2},{3888,4888,2},{3895,4893,2},{3902,4895,2},{3905,4893,2}, {3912,4893,2},{3917,4897,2},{3918,4900,2},{3917,4905,2},{3915,4907,2},{3910,4907,2}, {3910,4915,2},{3903,4912,2},{3900,4905,2},{3897,4907,2},{3898,4913,2},{3902,4920,2}, {3908,4920,2},{3915,4923,2},{3928,4923,2},{3933,4927,2},{3935,4930,2},{3933,4933,2}, {3930,4937,2},{3928,4940,2},{3935,4937,2},{3932,4940,2},{3935,4940,2},{3938,4942,2}, {3947,4930,2},{3950,4928,2},{3962,4932,2},{3968,4938,2},{3970,4942,2},{3978,4940,2}, {3982,4942,2},{3983,4942,2},{3987,4945,2},{3992,4942,2},{3995,4943,2},{3998,4948,2}, {4005,4942,2},{4008,4950,2},{4015,4948,2},{4022,4957,2},{4023,4967,2},{4027,4970,2}, {4028,4982,2},{4032,4985,2},{4033,4983,2},{4037,4988,2},{4035,4997,2},{4032,4998,2}, {4033,5002,2},{4035,5003,2},{4035,5010,2},{4035,5012,2},{4033,5027,2},{4028,5035,2}, {4022,5038,2},{4023,5040,2},{4028,5037,2},{4037,5037,2},{4040,5033,2},{4043,5028,2}, {4050,5023,2},{4052,5012,2},{4057,5007,2},{4058,5007,2},{4058,4992,2},{4057,4983,2}, {4058,4970,2},{4062,4965,2},{4062,4958,2},{4067,4953,2},{4070,4952,2},{4078,4953,2}, {4082,4948,2},{4085,4940,2},{4103,4922,2},{4115,4915,2},{4127,4913,2},{4142,4903,2}, {4145,4898,2},{4150,4895,2},{4153,4890,2},{4160,4885,2},{4163,4880,2},{4168,4878,2}, {4178,4868,2},{4183,4858,2},{4188,4855,2},{4190,4843,2},{4193,4838,2},{4210,4830,2}, {4217,4823,2},{4233,4812,2},{4238,4802,2},{4247,4795,2},{4260,4787,2},{4263,4773,2}, {4272,4770,2},{4277,4772,2},{4287,4770,2},{4290,4762,2},{4295,4758,2},{4295,4755,2}, {4302,4747,2},{4308,4745,2},{4312,4748,2},{4320,4748,2},{4330,4758,2},{4333,4757,2}, {4328,4750,2},{4330,4748,2},{4345,4748,2},{4352,4753,2},{4357,4753,2},{4372,4758,2}, {4383,4765,2},{4387,4770,2},{4390,4763,2},{4387,4753,2},{4380,4753,2},{4372,4750,2}, {4368,4750,2},{4363,4747,2},{4353,4747,2},{4350,4743,2},{4350,4740,2},{4353,4740,2}, {4355,4738,2},{4362,4737,2},{4360,4738,2},{4362,4740,2},{4368,4745,2},{4373,4743,2}, {4377,4750,2},{4382,4748,2},{4382,4743,2},{4387,4747,2},{4388,4743,2},{4392,4742,2}, {4403,4735,2},{4408,4728,2},{4422,4723,2},{4422,4720,2},{4420,4718,2},{4423,4710,2}, {4433,4705,2},{4437,4702,2},{4440,4683,2},{4438,4680,2},{4440,4677,2},{4445,4670,2}, {4452,4668,2},{4455,4672,2},{4457,4670,2},{4465,4672,2},{4465,4675,2},{4470,4678,2}, {4470,4683,2},{4473,4687,2},{4477,4693,2},{4477,4697,2},{4482,4702,2},{4492,4700,2}, {4490,4702,2},{4485,4702,2},{4478,4708,2},{4487,4712,2},{4495,4710,2},{4493,4715,2}, {4497,4717,2},{4497,4720,2},{4518,4730,2},{4518,4738,2},{4530,4738,2},{4537,4742,2}, {4538,4747,2},{4540,4745,2},{4540,4740,2},{4542,4738,2},{4542,4748,2},{4548,4750,2}, {4550,4755,2},{4557,4748,2},{4558,4750,2},{4553,4755,2},{4557,4757,2},{4563,4755,2}, {4567,4742,2},{4575,4738,2},{4572,4748,2},{4572,4750,2},{4572,4745,2},{4568,4743,2}, {4565,4755,2},{4557,4762,2},{4555,4763,2},{4557,4765,2},{4558,4763,2},{4562,4765,2}, {4563,4760,2},{4567,4760,2},{4567,4763,2},{4572,4763,2},{4572,4758,2},{4575,4758,2}, {4573,4755,2},{4577,4755,2},{4575,4762,2},{4573,4765,2},{4570,4767,2},{4568,4777,2}, {4560,4782,2},{4563,4785,2},{4565,4783,2},{4572,4785,2},{4572,4788,2},{4568,4790,2}, {4572,4793,2},{4572,4798,2},{4570,4800,2},{4572,4803,2},{4575,4807,2},{4572,4813,2}, {4573,4815,2},{4573,4820,2},{4572,4823,2},{4572,4825,2},{4577,4822,2},{4577,4825,2}, {4583,4828,2},{4583,4840,2},{4585,4840,2},{4585,4837,2},{4588,4837,2},{4587,4840,2}, {4593,4845,2},{4593,4850,2},{4597,4857,2},{4595,4860,2},{4588,4867,2},{4588,4870,2}, {4587,4868,2},{4582,4872,2},{4583,4872,2},{4585,4877,2},{4583,4878,2},{4585,4878,2}, {4587,4878,2},{4588,4875,2},{4592,4873,2},{4593,4877,2},{4597,4873,2},{4597,4865,2}, {4598,4872,2},{4602,4873,2},{4607,4870,2},{4608,4863,2},{4608,4867,2},{4612,4867,2}, {4612,4870,2},{4613,4870,2},{4608,4878,2},{4605,4882,2},{4610,4882,2},{4613,4878,2}, {4612,4883,2},{4607,4885,2},{4608,4888,2},{4613,4883,2},{4613,4887,2},{4610,4888,2}, {4615,4888,2},{4608,4895,2},{4610,4895,2},{4613,4893,2},{4617,4898,2},{4617,4902,2}, {4620,4903,2},{4618,4907,2},{4615,4910,2},{4615,4912,2},{4623,4912,2},{4625,4905,2}, {4633,4913,2},{4633,4917,2},{4632,4915,2},{4628,4915,2},{4627,4925,2},{4625,4928,2}, {4625,4930,2},{4630,4923,2},{4637,4922,2},{4635,4922,2},{4638,4922,2},{4638,4918,2}, {4642,4917,2},{4638,4925,2},{4640,4928,2},{4642,4925,2},{4645,4925,2},{4647,4922,2}, {4647,4927,2},{4643,4928,2},{4640,4933,2},{4638,4937,2},{4640,4937,2},{4643,4935,2}, {4648,4928,2},{4650,4930,2},{4652,4928,2},{4652,4930,2},{4648,4932,2},{4648,4940,2}, {4658,4930,2},{4653,4942,2},{4655,4943,2},{4653,4947,2},{4650,4947,2},{4650,4950,2}, {4658,4947,2},{4657,4947,2},{4653,4957,2},{4650,4958,2},{4652,4960,2},{4652,4963,2}, {4658,4962,2},{4655,4968,2},{4652,4970,2},{4655,4970,2},{4653,4975,2},{4657,4977,2}, {4653,4980,2},{4655,4982,2},{4657,4983,2},{4658,4988,2},{4663,4997,2},{4663,5003,2}, {4668,5007,2},{4675,5020,2},{4677,5023,2},{4672,5022,2},{4672,5023,2},{4680,5030,2}, {4680,5033,2},{4685,5037,2},{4680,5037,2},{4690,5043,2},{4687,5050,2},{4688,5058,2}, {4682,5055,2},{4685,5060,2},{4693,5062,2},{4693,5068,2},{4697,5075,2},{4693,5073,2}, {4692,5073,2},{4690,5077,2},{4700,5085,2},{4703,5085,2},{4702,5088,2},{4705,5097,2}, {4707,5112,2},{4712,5120,2},{4705,5153,2},{4698,5160,2},{4705,5163,2},{4705,5165,2}, {4705,5168,2},{4695,5168,2},{4690,5177,2},{4693,5188,2},{4690,5187,2},{4688,5187,2}, {4687,5193,2},{4693,5200,2},{4693,5202,2},{4690,5200,2},{4688,5200,2},{4685,5203,2}, {4685,5207,2},{4682,5207,2},{4680,5220,2},{4682,5225,2},{4687,5218,2},{4688,5235,2}, {4700,5245,2},{4698,5253,2},{4695,5257,2},{4695,5262,2},{4695,5283,2},{4697,5290,2}, {4690,5300,2},{4690,5305,2},{4685,5308,2},{4675,5310,2},{4672,5313,2},{4672,5320,2}, {4668,5320,2},{4663,5320,2},{4663,5315,2},{4660,5312,2},{4662,5310,2},{4655,5308,2}, {4655,5303,2},{4657,5303,2},{4648,5300,2},{4648,5305,2},{4652,5307,2},{4648,5307,2}, {4645,5310,2},{4647,5303,2},{4637,5315,2},{4628,5317,2},{4610,5312,2},{4605,5308,2}, {4600,5308,2},{4580,5293,2},{4577,5287,2},{4565,5278,2},{4565,5275,2},{4555,5273,2}, {4552,5275,2},{4548,5285,2},{4547,5288,2},{4547,5292,2},{4540,5307,2},{4540,5310,2}, {4538,5315,2},{4537,5325,2},{4533,5325,2},{4533,5320,2},{4530,5310,2},{4532,5298,2}, {4532,5290,2},{4533,5283,2},{4540,5248,2},{4540,5245,2},{4538,5215,2},{4538,5200,2}, {4537,5193,2},{4540,5188,2},{4540,5178,2},{4543,5178,2},{4545,5175,2},{4543,5173,2}, {4540,5172,2},{4538,5165,2},{4533,5158,2},{4533,5147,2},{4538,5142,2},{4535,5142,2}, {4532,5138,2},{4517,5125,2},{4510,5125,2},{4502,5128,2},{4502,5125,2},{4507,5120,2}, {4503,5110,2},{4498,5107,2},{4498,5097,2},{4495,5095,2},{4493,5100,2},{4487,5095,2}, {4482,5102,2},{4480,5110,2},{4473,5122,2},{4460,5130,2},{4462,5142,2},{4458,5147,2}, {4453,5157,2},{4452,5157,2},{4452,5150,2},{4453,5145,2},{4452,5143,2},{4452,5140,2}, {4452,5138,2},{4453,5137,2},{4455,5138,2},{4455,5137,2},{4455,5128,2},{4452,5127,2}, {4448,5120,2},{4448,5112,2},{4452,5103,2},{4453,5098,2},{4457,5100,2},{4457,5095,2}, {4463,5087,2},{4463,5078,2},{4460,5075,2},{4462,5072,2},{4462,5063,2},{4463,5058,2}, {4463,5055,2},{4463,5043,2},{4465,5032,2},{4457,5027,2},{4458,5023,2},{4457,5022,2}, {4437,5023,2},{4433,5028,2},{4428,5042,2},{4427,5068,2},{4420,5083,2},{4408,5087,2}, {4403,5085,2},{4400,5092,2},{4392,5098,2},{4380,5102,2},{4367,5112,2},{4362,5115,2}, {4362,5122,2},{4358,5122,2},{4355,5127,2},{4345,5132,2},{4330,5132,2},{4320,5127,2}, {4315,5127,2},{4317,5140,2},{4315,5152,2},{4317,5153,2},{4318,5165,2},{4315,5168,2}, {4310,5167,2},{4308,5172,2},{4303,5177,2},{4292,5183,2},{4283,5192,2},{4283,5195,2}, {4288,5208,2},{4288,5217,2},{4287,5220,2},{4283,5223,2},{4278,5228,2},{4282,5233,2}, {4283,5243,2},{4280,5258,2},{4277,5263,2},{4275,5262,2},{4275,5268,2},{4272,5273,2}, {4265,5275,2},{4258,5272,2},{4265,5267,2},{4272,5258,2},{4275,5258,2},{4272,5257,2}, {4262,5265,2},{4253,5268,2},{4242,5263,2},{4240,5260,2},{4233,5260,2},{4218,5248,2}, {4218,5243,2},{4210,5240,2},{4205,5243,2},{4200,5243,2},{4197,5247,2},{4190,5250,2}, {4175,5243,2},{4168,5253,2},{4168,5257,2},{4165,5258,2},{4157,5258,2},{4152,5255,2}, {4148,5263,2},{4145,5265,2},{4143,5270,2},{4142,5272,2},{4138,5272,2},{4137,5277,2}, {4132,5278,2},{4123,5282,2},{4115,5285,2},{4107,5285,2},{4105,5288,2},{4112,5292,2}, {4123,5285,2},{4138,5282,2},{4157,5290,2},{4163,5290,2},{4167,5292,2},{4170,5287,2}, {4170,5283,2},{4170,5285,2},{4170,5282,2},{4167,5278,2},{4167,5277,2},{4172,5278,2}, {4178,5283,2},{4197,5295,2},{4200,5297,2},{4203,5307,2},{4207,5308,2},{4210,5315,2}, {4207,5328,2},{4210,5337,2},{4210,5347,2},{4215,5367,2},{4212,5382,2},{4207,5390,2}, {4200,5392,2},{4197,5390,2},{4190,5390,2},{4188,5393,2},{4180,5398,2},{4170,5402,2}, {4160,5402,2},{4148,5407,2},{4145,5415,2},{4140,5420,2},{4133,5430,2},{4125,5452,2}, {4115,5463,2},{4112,5465,2},{4110,5473,2},{4108,5472,2},{4103,5477,2},{4107,5468,2}, {4097,5477,2},{4088,5472,2},{4087,5467,2},{4083,5463,2},{4080,5448,2},{4082,5443,2}, {4083,5445,2},{4087,5447,2},{4087,5442,2},{4090,5440,2},{4093,5433,2},{4088,5425,2}, {4087,5427,2},{4083,5427,2},{4072,5432,2},{4072,5443,2},{4068,5437,2},{4067,5440,2}, {4067,5427,2},{4068,5422,2},{4072,5423,2},{4073,5423,2},{4072,5407,2},{4068,5410,2}, {4065,5403,2},{4067,5395,2},{4065,5390,2},{4063,5387,2},{4063,5377,2},{4062,5375,2}, {4063,5370,2},{4068,5373,2},{4072,5368,2},{4078,5365,2},{4080,5367,2},{4083,5365,2}, {4085,5365,2},{4088,5363,2},{4090,5360,2},{4088,5358,2},{4085,5355,2},{4077,5355,2}, {4073,5347,2},{4078,5338,2},{4083,5338,2},{4082,5335,2},{4078,5333,2},{4077,5332,2}, {4077,5323,2},{4082,5325,2},{4077,5318,2},{4077,5312,2},{4083,5307,2},{4087,5312,2}, {4087,5307,2},{4090,5303,2},{4093,5302,2},{4102,5295,2},{4103,5297,2},{4107,5295,2}, {4108,5292,2},{4107,5292,2},{4102,5292,2},{4095,5293,2},{4087,5288,2},{4078,5287,2}, {4077,5287,2},{4075,5283,2},{4072,5283,2},{4068,5287,2},{4052,5275,2},{4045,5272,2}, {4037,5273,2},{4027,5268,2},{4022,5273,2},{4018,5273,2},{4017,5277,2},{4005,5273,2}, {3997,5283,2},{3995,5288,2},{3987,5290,2},{3983,5297,2},{3977,5300,2},{3973,5303,2}, {3978,5300,2},{3975,5305,2},{3990,5292,2},{4002,5290,2},{4002,5293,2},{3998,5293,2}, {3997,5300,2},{4000,5308,2},{3997,5305,2},{3997,5307,2},{3997,5312,2},{4000,5317,2}, {3993,5328,2},{4000,5338,2},{4000,5342,2},{3997,5348,2},{3997,5358,2},{3992,5352,2}, {3990,5353,2},{3988,5348,2},{3987,5350,2},{3977,5342,2},{3977,5338,2},{3975,5343,2}, {3967,5342,2},{3963,5345,2},{3968,5343,2},{3967,5345,2},{3968,5345,2},{3970,5345,2}, {3963,5353,2},{3967,5353,2},{3967,5355,2},{3962,5357,2},{3962,5360,2},{3962,5363,2}, {3960,5365,2},{3957,5365,2},{3957,5363,2},{3955,5365,2},{3955,5370,2},{3952,5373,2}, {3950,5372,2},{3952,5370,2},{3952,5365,2},{3948,5363,2},{3952,5358,2},{3950,5357,2}, {3948,5358,2},{3947,5357,2},{3947,5355,2},{3948,5348,2},{3953,5342,2},{3952,5325,2}, {3952,5320,2},{3962,5327,2},{3965,5332,2},{3967,5330,2},{3965,5327,2},{3962,5323,2}, {3952,5318,2},{3940,5308,2},{3932,5315,2},{3918,5317,2},{3918,5318,2},{3927,5317,2}, {3932,5320,2},{3933,5315,2},{3937,5323,2},{3935,5330,2},{3932,5328,2},{3933,5340,2}, {3930,5338,2},{3933,5343,2},{3932,5345,2},{3933,5350,2},{3933,5353,2},{3935,5357,2}, {3932,5355,2},{3932,5358,2},{3928,5357,2},{3928,5358,2},{3920,5357,2},{3920,5358,2}, {3923,5360,2},{3918,5360,2},{3918,5362,2},{3912,5363,2},{3908,5368,2},{3918,5368,2}, {3920,5367,2},{3923,5372,2},{3920,5370,2},{3917,5370,2},{3917,5373,2},{3913,5370,2}, {3907,5370,2},{3907,5373,2},{3912,5372,2},{3903,5377,2},{3905,5380,2},{3903,5382,2}, {3903,5387,2},{3898,5388,2},{3893,5393,2},{3893,5397,2},{3892,5397,2},{3892,5398,2}, {3880,5392,2},{3877,5392,2},{3867,5385,2},{3852,5382,2},{3842,5383,2},{3835,5387,2}, {3822,5385,2},{3803,5382,2},{3788,5380,2},{3773,5382,2},{3755,5387,2},{3750,5388,2}, {3735,5390,2},{3253,53824,128},{3265,53819,0},{3268,53814,0},{3270,53816,0}, {3268,53818,0},{3262,53821,0},{3262,53824,0},{3265,53824,0},{3268,53821,0}, {3273,53814,0},{3270,53813,0},{3267,53811,0},{3268,53809,0},{3277,53811,0}, {3283,53808,0},{3288,53811,0},{3300,53808,0},{3312,53803,0},{3325,53794,0}, {3335,53786,0},{3345,53771,0},{3348,53764,0},{3355,53758,0},{3360,53751,0}, {3363,53741,0},{3377,53724,0},{3377,53716,0},{3378,53714,0},{3377,53709,0}, {3373,53709,0},{3372,53708,0},{3375,53701,0},{3375,53696,0},{3378,53694,0}, {3383,53698,0},{3385,53698,0},{3393,53693,0},{3405,53683,0},{3403,53661,0}, {3403,53658,0},{3402,53656,0},{3405,53644,0},{3408,53634,0},{3412,53624,0}, {3412,53623,0},{3412,53626,0},{3412,53624,0},{3417,53614,0},{3428,53609,0}, {3428,53604,0},{3435,53594,0},{3442,53583,0},{3442,53574,0},{3442,53568,0}, {3440,53564,0},{3442,53558,0},{3442,53549,0},{3447,53536,0},{3448,53524,0}, {3447,53506,0},{3445,53491,0},{3453,53486,0},{3457,53481,0},{3457,53474,0}, {3462,53473,0},{3470,53478,0},{3477,53474,0},{3485,53476,0},{3493,53471,0}, {3505,53476,0},{3510,53476,0},{3513,53474,0},{3518,53466,0},{3517,53461,0}, {3522,53451,0},{3525,53449,0},{3530,53449,0},{3537,53453,0},{3533,53453,0}, {3535,53456,0},{3537,53453,0},{3543,53451,0},{3547,53436,0},{3565,53421,0}, {3567,53409,0},{3573,53406,0},{3577,53406,0},{3588,53393,0},{3600,53389,0}, {3603,53381,0},{3618,53371,0},{3625,53356,0},{3628,53354,0},{3630,53349,0}, {3640,53349,0},{3652,53344,0},{3653,53346,0},{3657,53344,0},{3658,53341,0}, {3660,53341,0},{3665,53346,0},{3662,53351,0},{3663,53354,0},{3675,53358,0}, {3673,53363,0},{3675,53361,0},{3677,53359,0},{3682,53361,0},{3697,53349,0}, {3698,53346,0},{3695,53341,0},{3697,53338,0},{3695,53333,0},{3697,53328,0}, {3702,53318,0},{3712,53308,0},{3712,53306,0},{3722,53298,0},{3733,53299,0}, {3748,53294,0},{3750,53293,0},{3752,53288,0},{3758,53286,0},{3765,53289,0}, {3778,53288,0},{3782,53291,0},{3782,53298,0},{3778,53301,0},{3775,53299,0}, {3773,53303,0},{3772,53299,0},{3765,53299,0},{3762,53301,0},{3760,53306,0}, {3758,53308,0},{3758,53313,0},{3755,53313,0},{3753,53318,0},{3752,53318,0}, {3750,53324,0},{3747,53328,0},{3747,53336,0},{3748,53333,0},{3750,53333,0}, {3752,53328,0},{3770,53321,0},{3772,53319,0},{3772,53314,0},{3773,53313,0}, {3775,53316,0},{3778,53306,0},{3783,53306,0},{3783,53308,0},{3790,53306,0}, {3792,53301,0},{3797,53296,0},{3797,53299,0},{3802,53301,0},{3802,53308,0}, {3807,53314,0},{3803,53323,0},{3807,53334,0},{3802,53368,0},{3802,53369,0}, {3803,53366,0},{3805,53369,0},{3808,53371,0},{3810,53376,0},{3805,53384,0}, {3805,53388,0},{3800,53393,0},{3802,53394,0},{3812,53378,0},{3810,53371,0}, {3807,53368,0},{3805,53364,0},{3805,53361,0},{3807,53359,0},{3810,53366,0}, {3815,53369,0},{3808,53361,0},{3808,53351,0},{3807,53346,0},{3808,53348,0}, {3810,53338,0},{3815,53339,0},{3815,53336,0},{3813,53333,0},{3810,53331,0}, {3805,53323,0},{3807,53319,0},{3808,53313,0},{3812,53308,0},{3817,53298,0}, {3813,53296,0},{3812,53288,0},{3808,53289,0},{3802,53288,0},{3800,53293,0}, {3798,53293,0},{3797,53289,0},{3795,53289,0},{3793,53288,0},{3788,53294,0}, {3788,53291,0},{3790,53289,0},{3788,53289,0},{3783,53291,0},{3783,53288,0}, {3792,53273,0},{3793,53271,0},{3792,53271,0},{3790,53268,0},{3797,53261,0}, {3800,53258,0},{3805,53246,0},{3808,53244,0},{3807,53243,0},{3805,53244,0}, {3802,53241,0},{3800,53241,0},{3800,53236,0},{3805,53241,0},{3815,53243,0}, {3820,53243,0},{3823,53239,0},{3818,53246,0},{3810,53253,0},{3808,53256,0}, {3812,53253,0},{3825,53243,0},{3830,53239,0},{3833,53233,0},{3832,53233,0}, {3832,53231,0},{3837,53231,0},{3847,53226,0},{3857,53204,0},{3865,53196,0}, {3873,53191,0},{3875,53186,0},{3893,53166,0},{3897,53164,0},{3902,53169,0}, {3912,53168,0},{3918,53164,0},{3922,53161,0},{3937,53156,0},{3948,53158,0}, {3957,53163,0},{3962,53159,0},{3970,53159,0},{3977,53154,0},{3983,53154,0}, {3998,53141,0},{4002,53134,0},{4003,53131,0},{4010,53129,0},{4025,53104,0}, {4033,53104,0},{4045,53098,0},{4058,53103,0},{4065,53108,0},{4072,53109,0}, {4077,53114,0},{4072,53111,0},{4070,53114,0},{4072,53118,0},{4075,53116,0}, {4080,53119,0},{4082,53128,0},{4085,53129,0},{4085,53123,0},{4078,53118,0}, {4078,53116,0},{4087,53121,0},{4098,53126,0},{4103,53126,0},{4108,53123,0}, {4115,53123,0},{4122,53126,0},{4142,53133,0},{4153,53129,0},{4155,53131,0}, {4157,53128,0},{4170,53124,0},{4175,53121,0},{4178,53111,0},{4187,53118,0}, {4195,53119,0},{4200,53118,0},{4212,53103,0},{4222,53099,0},{4227,53096,0}, {4230,53096,0},{4233,53093,0},{4238,53096,0},{4248,53094,0},{4255,53098,0}, {4267,53098,0},{4270,53093,0},{4275,53089,0},{4275,53086,0},{4282,53086,0}, {4285,53081,0},{4303,53093,0},{4335,53099,0},{4335,53104,0},{4332,53104,0}, {4330,53106,0},{4333,53106,0},{4335,53109,0},{4337,53106,0},{4342,53111,0}, {4343,53114,0},{4338,53116,0},{4337,53123,0},{4345,53116,0},{4348,53118,0}, {4338,53104,0},{4357,53114,0},{4367,53118,0},{4370,53121,0},{4373,53124,0}, {4372,53126,0},{4372,53129,0},{4375,53124,0},{4375,53121,0},{4370,53121,0}, {4370,53118,0},{4400,53124,0},{4400,53126,0},{4407,53124,0},{4418,53126,0}, {4433,53126,0},{4443,53129,0},{4442,53136,0},{4445,53134,0},{4447,53129,0}, {4462,53131,0},{4462,53136,0},{4465,53136,0},{4465,53133,0},{4468,53131,0}, {4473,53133,0},{4483,53131,0},{4492,53134,0},{4492,53136,0},{4507,53136,0}, {4518,53141,0},{4522,53141,0},{4528,53143,0},{4533,53141,0},{4535,53138,0}, {4537,53141,0},{4543,53143,0},{4540,53143,0},{4542,53146,0},{4547,53141,0}, {4550,53141,0},{4552,53143,0},{4552,53146,0},{4548,53149,0},{4552,53153,0}, {4553,53149,0},{4558,53148,0},{4558,53144,0},{4560,53143,0},{4568,53146,0}, {4572,53151,0},{4572,53146,0},{4568,53144,0},{4572,53144,0},{4577,53141,0}, {4578,53139,0},{4582,53141,0},{4588,53143,0},{4595,53139,0},{4598,53144,0}, {4603,53144,0},{4613,53143,0},{4623,53138,0},{4617,53151,0},{4617,53156,0}, {4613,53156,0},{4612,53158,0},{4615,53159,0},{4620,53153,0},{4622,53159,0}, {4618,53164,0},{4620,53178,0},{4622,53176,0},{4622,53181,0},{4625,53186,0}, {4625,53189,0},{4622,53193,0},{4617,53196,0},{4615,53209,0},{4617,53216,0}, {4620,53219,0},{4617,53209,0},{4620,53204,0},{4623,53198,0},{4628,53193,0}, {4627,53179,0},{4628,53171,0},{4632,53168,0},{4630,53166,0},{4628,53161,0}, {4630,53158,0},{4627,53151,0},{4627,53146,0},{4633,53138,0},{4632,53134,0}, {4628,53134,0},{4628,53129,0},{4635,53133,0},{4665,53131,0},{4665,53134,0}, {4663,53133,0},{4658,53136,0},{4650,53134,0},{4640,53138,0},{4640,53143,0}, {4645,53144,0},{4642,53153,0},{4643,53153,0},{4645,53148,0},{4650,53144,0}, {4653,53148,0},{4657,53148,0},{4663,53143,0},{4662,53148,0},{4665,53144,0}, {4668,53146,0},{4672,53153,0},{4667,53158,0},{4670,53161,0},{4670,53158,0}, {4675,53149,0},{4673,53144,0},{4675,53141,0},{4672,53141,0},{4675,53129,0}, {4692,53124,0},{4693,53126,0},{4692,53128,0},{4687,53129,0},{4685,53134,0}, {4685,53136,0},{4688,53134,0},{4688,53133,0},{4690,53133,0},{4698,53156,0}, {4698,53144,0},{4700,53144,0},{4698,53139,0},{4705,53134,0},{4707,53129,0}, {4707,53126,0},{4703,53123,0},{4697,53124,0},{4693,53121,0},{4698,53121,0}, {4707,53121,0},{4722,53118,0},{4732,53113,0},{4733,53109,0},{4737,53111,0}, {4737,53106,0},{4767,53101,0},{4775,53096,0},{4777,53093,0},{4783,53089,0}, {4785,53086,0},{4788,53081,0},{4788,53078,0},{4800,53071,0},{4812,53068,0}, {4817,53064,0},{4822,53069,0},{4825,53068,0},{4833,53071,0},{4837,53066,0}, {4840,53064,0},{4838,53079,0},{4830,53096,0},{4825,53121,0},{4820,53133,0}, {4818,53143,0},{4817,53158,0},{4817,53166,0},{4815,53174,0},{4815,53188,0}, {4815,53194,0},{4813,53194,0},{4813,53201,0},{4813,53213,0},{4820,53226,0}, {4817,53221,0},{4815,53228,0},{4812,53233,0},{4807,53234,0},{4805,53236,0}, {4807,53238,0},{4810,53236,0},{4812,53241,0},{4810,53244,0},{4808,53246,0}, {4807,53249,0},{4803,53253,0},{4802,53249,0},{4800,53251,0},{4805,53254,0}, {4810,53249,0},{4812,53249,0},{4815,53253,0},{4817,53261,0},{4813,53263,0}, {4812,53258,0},{4808,53258,0},{4798,53269,0},{4795,53269,0},{4790,53276,0}, {4788,53269,0},{4785,53269,0},{4782,53264,0},{4770,53258,0},{4772,53254,0}, {4782,53258,0},{4787,53256,0},{4780,53254,0},{4783,53251,0},{4777,53253,0}, {4773,53249,0},{4767,53246,0},{4762,53239,0},{4752,53231,0},{4747,53226,0}, {4737,53221,0},{4735,53226,0},{4737,53236,0},{4745,53253,0},{4745,53249,0}, {4738,53234,0},{4740,53226,0},{4752,53234,0},{4762,53243,0},{4763,53246,0}, {4768,53261,0},{4775,53264,0},{4787,53274,0},{4785,53278,0},{4783,53279,0}, {4783,53281,0},{4793,53279,0},{4795,53276,0},{4792,53284,0},{4782,53288,0}, {4780,53288,0},{4777,53291,0},{4775,53288,0},{4777,53283,0},{4772,53278,0}, {4775,53271,0},{4770,53276,0},{4758,53278,0},{4767,53269,0},{4765,53268,0}, {4760,53269,0},{4758,53274,0},{4755,53269,0},{4757,53276,0},{4760,53283,0}, {4755,53283,0},{4753,53288,0},{4743,53281,0},{4737,53283,0},{4735,53279,0}, {4730,53283,0},{4728,53279,0},{4732,53269,0},{4733,53269,0},{4738,53274,0}, {4742,53274,0},{4740,53273,0},{4735,53264,0},{4730,53261,0},{4725,53264,0}, {4723,53263,0},{4722,53263,0},{4718,53261,0},{4722,53258,0},{4727,53254,0}, {4732,53259,0},{4742,53256,0},{4733,53253,0},{4730,53244,0},{4720,53243,0}, {4718,53239,0},{4715,53229,0},{4715,53236,0},{4712,53229,0},{4713,53234,0}, {4720,53244,0},{4718,53244,0},{4712,53241,0},{4710,53238,0},{4712,53241,0}, {4715,53244,0},{4707,53246,0},{4707,53248,0},{4710,53248,0},{4715,53248,0}, {4718,53253,0},{4715,53251,0},{4715,53256,0},{4718,53256,0},{4710,53264,0}, {4712,53268,0},{4720,53279,0},{4728,53284,0},{4733,53284,0},{4728,53294,0}, {4730,53298,0},{4733,53294,0},{4737,53304,0},{4740,53304,0},{4747,53301,0}, {4750,53301,0},{4760,53296,0},{4762,53299,0},{4758,53303,0},{4762,53303,0}, {4767,53294,0},{4773,53301,0},{4778,53298,0},{4783,53299,0},{4788,53304,0}, {4797,53308,0},{4798,53314,0},{4802,53318,0},{4803,53316,0},{4803,53313,0}, {4803,53309,0},{4808,53303,0},{4822,53298,0},{4823,53293,0},{4822,53291,0}, {4817,53289,0},{4813,53291,0},{4810,53298,0},{4805,53301,0},{4805,53298,0}, {4812,53291,0},{4812,53286,0},{4818,53283,0},{4823,53284,0},{4825,53286,0}, {4825,53293,0},{4823,53298,0},{4830,53298,0},{4837,53286,0},{4837,53283,0}, {4840,53279,0},{4843,53279,0},{4840,53273,0},{4842,53268,0},{4847,53269,0}, {4850,53266,0},{4852,53274,0},{4845,53278,0},{4848,53279,0},{4845,53283,0}, {4845,53288,0},{4853,53288,0},{4858,53279,0},{4858,53284,0},{4855,53289,0}, {4855,53291,0},{4860,53293,0},{4870,53284,0},{4873,53286,0},{4875,53284,0}, {4878,53278,0},{4875,53276,0},{4872,53273,0},{4872,53269,0},{4877,53271,0}, {4880,53268,0},{4878,53266,0},{4882,53266,0},{4887,53259,0},{4892,53261,0}, {4893,53259,0},{4893,53256,0},{4893,53254,0},{4897,53259,0},{4895,53263,0}, {4898,53261,128},{4902,53259,0},{4900,53253,0},{4903,53248,0},{4908,53249,0}, {4908,53246,0},{4905,53233,0},{4898,53233,0},{4898,53228,0},{4903,53224,0}, {4907,53221,0},{4908,53226,0},{4915,53233,0},{4910,53224,0},{4913,53214,0}, {4920,53216,0},{4920,53223,0},{4918,53223,0},{4920,53223,0},{4925,53213,0}, {4928,53211,0},{4928,53221,0},{4930,53219,0},{4930,53221,0},{4928,53224,0}, {4928,53244,0},{4933,53248,0},{4943,53251,0},{4945,53249,0},{4943,53248,0}, {4937,53246,0},{4932,53243,0},{4930,53234,0},{4933,53213,0},{4933,53209,0}, {4937,53208,0},{4938,53211,0},{4943,53213,0},{4952,53211,0},{4962,53216,0}, {4965,53216,0},{4968,53221,0},{4970,53219,0},{4967,53213,0},{4958,53211,0}, {4958,53204,0},{4955,53201,0},{4955,53198,0},{4952,53186,0},{4942,53188,0}, {4938,53184,0},{4943,53164,0},{4947,53161,0},{4947,53151,0},{4947,53148,0}, {4950,53144,0},{4952,53139,0},{4963,53129,0},{4972,53133,0},{4973,53136,0}, {4973,53143,0},{4968,53148,0},{4963,53153,0},{4950,53158,0},{4953,53161,0}, {4958,53159,0},{4960,53159,0},{4963,53168,0},{4963,53174,0},{4970,53183,0}, {4965,53169,0},{4963,53158,0},{4965,53154,0},{4970,53153,0},{4977,53143,0}, {4983,53148,0},{4988,53149,0},{4992,53148,0},{4993,53141,0},{4998,53139,0}, {5003,53149,0},{5005,53156,0},{5008,53161,0},{5015,53153,0},{5022,53138,0}, {5017,53141,0},{5015,53149,0},{5010,53154,0},{5005,53151,0},{5000,53136,0}, {4992,53138,0},{4987,53144,0},{4983,53143,0},{4983,53139,0},{4980,53138,0}, {4982,53136,0},{4992,53133,0},{4987,53129,0},{4983,53131,0},{4982,53128,0}, {4980,53128,0},{4977,53119,0},{4978,53111,0},{4975,53109,0},{4977,53101,0}, {4977,53096,0},{4977,53091,0},{4980,53084,0},{4983,53083,0},{4987,53079,0}, {4993,53066,0},{4998,53059,0},{5007,53053,0},{4998,53066,0},{5003,53066,0}, {5007,53069,0},{5010,53066,0},{5012,53069,0},{5013,53069,0},{5017,53074,0}, {5023,53076,0},{5028,53073,0},{5033,53064,0},{5035,53068,0},{5038,53071,0}, {5040,53076,0},{5040,53083,0},{5045,53094,0},{5050,53101,0},{5050,53098,0}, {5047,53093,0},{5042,53079,0},{5043,53069,0},{5035,53063,0},{5032,53053,0}, {5033,53039,0},{5037,53041,0},{5043,53036,0},{5035,53036,0},{5035,53033,0}, {5032,53031,0},{5032,53028,0},{5035,53028,0},{5037,53029,0},{5048,53031,0}, {5050,53039,0},{5055,53043,0},{5055,53048,0},{5058,53049,0},{5060,53048,0}, {5068,53049,0},{5072,53054,0},{5080,53044,0},{5088,53058,0},{5092,53054,0}, {5093,53051,0},{5092,53049,0},{5088,53049,0},{5083,53044,0},{5080,53038,0}, {5080,53041,0},{5075,53041,0},{5075,53046,0},{5073,53046,0},{5067,53044,0}, {5062,53046,0},{5060,53043,0},{5060,53041,0},{5057,53038,0},{5055,53034,0}, {5053,53033,0},{5050,53026,0},{5043,53024,0},{5042,53018,0},{5047,53011,0}, {5050,53011,0},{5045,53006,0},{5048,53003,0},{5050,53001,0},{5053,53003,0}, {5053,52999,0},{5048,52996,0},{5047,52994,0},{5047,52979,0},{5053,52983,0}, {5058,52981,0},{5063,52983,0},{5067,52986,0},{5068,52991,0},{5072,52993,0}, {5072,52989,0},{5067,52981,0},{5055,52979,0},{5050,52974,0},{5047,52974,0}, {5043,52966,0},{5043,52964,0},{5050,52956,0},{5052,52963,0},{5053,52954,0}, {5050,52949,0},{5047,52939,0},{5048,52936,0},{5047,52929,0},{5050,52928,0}, {5048,52923,0},{5050,52914,0},{5052,52908,0},{5053,52913,0},{5052,52918,0}, {5057,52918,0},{5057,52919,0},{5062,52939,0},{5063,52943,0},{5065,52938,0}, {5063,52929,0},{5058,52916,0},{5060,52911,0},{5063,52909,0},{5065,52926,0}, {5067,52933,0},{5065,52944,0},{5067,52953,0},{5068,52961,0},{5067,52964,0}, {5068,52966,0},{5073,52968,0},{5075,52974,0},{5078,52976,0},{5085,52971,0}, {5087,52976,0},{5085,52979,0},{5087,52981,0},{5093,52986,0},{5105,52981,0}, {5110,52973,0},{5107,52973,0},{5095,52978,0},{5093,52981,0},{5090,52979,0}, {5090,52974,0},{5087,52968,0},{5082,52968,0},{5080,52973,0},{5078,52971,0}, {5077,52966,0},{5070,52961,0},{5070,52951,0},{5068,52943,0},{5070,52939,0}, {5070,52936,0},{5068,52931,0},{5067,52916,0},{5067,52914,0},{5070,52914,0}, {5072,52919,0},{5080,52934,0},{5077,52921,0},{5080,52916,0},{5087,52918,0}, {5085,52914,0},{5085,52913,0},{5087,52913,0},{5085,52898,0},{5082,52893,0}, {5082,52886,0},{5083,52881,0},{5088,52881,0},{5092,52886,0},{5090,52913,0}, {5092,52918,0},{5093,52919,0},{5095,52918,0},{5092,52911,0},{5095,52889,0}, {5098,52886,0},{5107,52884,0},{5102,52881,0},{5093,52884,0},{5090,52879,0}, {5088,52871,0},{5087,52869,0},{5088,52864,0},{5093,52851,0},{5090,52846,0}, {5090,52833,0},{5093,52824,0},{5093,52818,0},{5092,52819,0},{5088,52829,0}, {5088,52844,0},{5082,52834,0},{5087,52823,0},{5088,52814,0},{5092,52811,0}, {5093,52796,0},{5095,52793,0},{5097,52794,0},{5098,52794,0},{5098,52788,0}, {5100,52783,0},{5110,52786,0},{5110,52788,0},{5112,52786,0},{5108,52773,0}, {5110,52768,0},{5112,52769,0},{5113,52766,0},{5113,52761,0},{5117,52758,0}, {5123,52758,0},{5125,52761,0},{5130,52779,0},{5128,52793,0},{5127,52799,0}, {5128,52813,0},{5133,52823,0},{5138,52824,0},{5132,52818,0},{5130,52808,0}, {5132,52784,0},{5135,52791,0},{5135,52789,0},{5133,52779,0},{5133,52758,0}, {5137,52758,0},{5138,52763,0},{5138,52769,0},{5147,52776,0},{5147,52781,0}, {5150,52781,0},{5152,52784,0},{5158,52784,0},{5162,52786,0},{5165,52798,0}, {5167,52826,0},{5165,52844,0},{5163,52866,0},{5165,52871,0},{5167,52871,0}, {5168,52874,0},{5172,52876,0},{5180,52869,0},{5172,52873,0},{5167,52866,0}, {5168,52836,0},{5170,52831,0},{5168,52816,0},{5168,52809,0},{5172,52803,0}, {5168,52799,0},{5167,52794,0},{5167,52793,0},{5175,52793,0},{5177,52799,0}, {5187,52801,0},{5178,52796,0},{5177,52791,0},{5170,52789,0},{5170,52771,0}, {5168,52778,0},{5167,52789,0},{5165,52786,0},{5163,52783,0},{5157,52778,0}, {5153,52779,0},{5147,52773,0},{5145,52766,0},{5150,52759,0},{5152,52771,0}, {5153,52768,0},{5153,52756,0},{5160,52756,0},{5160,52753,0},{5163,52753,0}, {5167,52748,0},{5173,52749,0},{5180,52748,0},{5190,52749,0},{5193,52758,0}, {5195,52769,0},{5205,52771,0},{5213,52778,0},{5215,52786,0},{5215,52789,0}, {5213,52789,0},{5212,52789,0},{5210,52786,0},{5210,52778,0},{5203,52774,0}, {5203,52778,0},{5208,52781,0},{5208,52794,0},{5218,52791,0},{5218,52796,0}, {5222,52799,0},{5223,52808,0},{5225,52811,0},{5232,52819,0},{5230,52836,0}, {5225,52843,0},{5220,52843,0},{5208,52861,0},{5198,52869,0},{5203,52869,0}, {5212,52861,0},{5220,52846,0},{5225,52846,0},{5230,52843,0},{5233,52843,0}, {5235,52849,0},{5237,52863,0},{5240,52856,0},{5237,52844,0},{5233,52838,0}, {5235,52823,0},{5238,52818,0},{5242,52818,0},{5245,52813,0},{5252,52813,0}, {5262,52829,0},{5263,52838,0},{5272,52844,0},{5283,52839,0},{5288,52829,0}, {5282,52836,0},{5270,52838,0},{5265,52831,0},{5263,52828,0},{5255,52811,0}, {5250,52808,0},{5247,52809,0},{5240,52791,0},{5233,52783,0},{5232,52776,0}, {5230,52774,0},{5230,52768,0},{5227,52763,0},{5228,52761,0},{5230,52761,0}, {5235,52764,0},{5230,52758,0},{5225,52756,0},{5220,52751,0},{5227,52748,0}, {5230,52743,0},{5235,52744,0},{5237,52753,0},{5245,52744,0},{5250,52749,0}, {5252,52748,0},{5248,52744,0},{5243,52743,0},{5238,52748,0},{5232,52739,0}, {5233,52734,0},{5240,52731,0},{5247,52729,0},{5252,52739,0},{5250,52743,0}, {5253,52743,0},{5255,52748,0},{5258,52748,0},{5255,52743,0},{5253,52733,0}, {5250,52726,0},{5243,52721,0},{5242,52721,0},{5238,52716,0},{5227,52708,0}, {5228,52696,0},{5233,52703,0},{5237,52703,0},{5240,52706,0},{5240,52711,0}, {5247,52714,0},{5257,52713,0},{5267,52718,0},{5275,52724,0},{5288,52723,0}, {5292,52733,0},{5292,52723,0},{5285,52719,0},{5283,52714,0},{5282,52713,0}, {5280,52709,0},{5282,52699,0},{5283,52698,0},{5282,52693,0},{5287,52688,0}, {5292,52686,0},{5307,52683,0},{5310,52686,0},{5310,52683,0},{5312,52681,0}, {5313,52688,0},{5315,52679,0},{5323,52669,0},{5318,52669,0},{5328,52649,0}, {5333,52648,0},{5337,52651,0},{5337,52648,0},{5340,52649,0},{5343,52648,0}, {5348,52653,0},{5348,52651,0},{5348,52648,0},{5345,52644,0},{5348,52643,0}, {5355,52639,0},{5353,52649,0},{5357,52654,0},{5355,52658,0},{5350,52661,0}, {5348,52664,0},{5345,52669,0},{5348,52666,0},{5347,52671,0},{5338,52686,0}, {5335,52686,0},{5333,52688,0},{5338,52689,0},{5340,52686,0},{5343,52688,0}, {5345,52699,0},{5348,52701,0},{5345,52713,0},{5347,52718,0},{5345,52721,0}, {5343,52726,0},{5340,52729,0},{5333,52726,0},{5337,52731,0},{5333,52741,0}, {5325,52741,0},{5322,52749,0},{5323,52749,0},{5328,52743,0},{5333,52744,0}, {5340,52731,0},{5347,52724,0},{5348,52724,0},{5347,52711,0},{5350,52699,0}, {5348,52698,0},{5347,52698,0},{5343,52684,0},{5347,52678,0},{5348,52676,0}, {5350,52673,0},{5352,52668,0},{5355,52666,0},{5357,52661,0},{5362,52654,0}, {5365,52654,0},{5372,52659,0},{5377,52656,0},{5380,52659,0},{5382,52664,0}, {5382,52668,0},{5385,52668,0},{5387,52671,0},{5383,52676,0},{5383,52689,0}, {5385,52688,0},{5387,52674,0},{5388,52668,0},{5403,52676,0},{5400,52668,0}, {5393,52664,0},{5392,52661,0},{5392,52658,0},{5388,52656,0},{5387,52653,0}, {5383,52651,0},{5377,52643,0},{5385,52646,0},{5382,52643,0},{5388,52641,0}, {5390,52636,0},{5387,52639,0},{5378,52639,0},{5377,52636,0},{5378,52633,0}, {5382,52631,0},{5378,52629,0},{5377,52633,0},{5375,52633,0},{5372,52624,0}, {5367,52621,0},{5363,52613,0},{5353,52613,0},{5352,52609,0},{5350,52613,0}, {5343,52613,0},{5340,52609,0},{5338,52609,0},{5340,52601,0},{5357,52576,0}, {5368,52563,0},{5368,52566,0},{5370,52564,0},{5372,52558,0},{5375,52554,0}, {5375,52551,0},{5385,52538,0},{5388,52539,0},{5387,52536,0},{5388,52531,0}, {5395,52526,0},{5402,52528,0},{5407,52528,0},{5415,52531,0},{5415,52541,0}, {5403,52553,0},{5400,52561,0},{5395,52564,0},{5400,52563,0},{5402,52558,0}, {5405,52553,0},{5415,52544,0},{5418,52543,0},{5422,52553,0},{5418,52573,0}, {5418,52576,0},{5422,52581,0},{5423,52589,0},{5423,52583,0},{5420,52574,0}, {5422,52568,0},{5423,52549,0},{5418,52534,0},{5418,52528,0},{5415,52524,0}, {5420,52518,0},{5420,52509,0},{5423,52508,0},{5427,52516,0},{5428,52513,0}, {5433,52509,0},{5440,52511,0},{5435,52508,0},{5433,52501,0},{5433,52489,0}, {5437,52488,0},{5443,52489,0},{5445,52498,0},{5450,52493,0},{5457,52493,0}, {5457,52498,0},{5462,52493,0},{5463,52493,0},{5460,52501,0},{5433,52531,0}, {5432,52538,0},{5433,52539,0},{5435,52533,0},{5440,52528,0},{5448,52529,0}, {5448,52536,0},{5452,52538,0},{5450,52529,0},{5443,52528,0},{5443,52524,0}, {5452,52513,0},{5458,52508,0},{5463,52499,0},{5467,52499,0},{5468,52503,0}, {5472,52513,0},{5470,52519,0},{5467,52524,0},{5467,52528,0},{5463,52531,0}, {5462,52538,0},{5462,52548,0},{5463,52549,0},{5463,52536,0},{5470,52528,0}, {5473,52516,0},{5482,52521,0},{5483,52526,0},{5488,52531,0},{5488,52528,0}, {5485,52523,0},{5485,52519,0},{5497,52533,0},{5497,52541,0},{5492,52538,0}, {5498,52554,0},{5497,52559,0},{5498,52571,0},{5500,52574,0},{5500,52558,0}, {5500,52539,0},{5502,52536,0},{5510,52539,0},{5517,52549,0},{5525,52554,0}, {5528,52561,0},{5532,52563,0},{5537,52568,0},{5543,52571,0},{5545,52576,0}, {5543,52584,0},{5547,52589,0},{5548,52588,0},{5545,52583,0},{5545,52573,0}, {5540,52566,0},{5547,52564,0},{5563,52554,0},{5553,52556,0},{5548,52559,0}, {5542,52558,0},{5538,52553,0},{5537,52553,0},{5540,52556,0},{5537,52554,0}, {5537,52558,0},{5532,52553,0},{5528,52554,0},{5523,52548,0},{5517,52544,0}, {5508,52534,0},{5505,52534,0},{5500,52529,0},{5500,52524,0},{5507,52519,0}, {5518,52528,0},{5528,52541,0},{5535,52536,0},{5547,52534,0},{5555,52526,0}, {5567,52529,0},{5572,52523,0},{5578,52526,0},{5592,52539,0},{5593,52539,0}, {5592,52536,0},{5575,52519,0},{5565,52524,0},{5553,52521,0},{5543,52529,0}, {5535,52531,0},{5528,52538,0},{5523,52529,0},{5523,52526,0},{5520,52526,0}, {5517,52521,0},{5503,52513,0},{5490,52499,0},{5480,52478,0},{5480,52476,0}, {5485,52479,0},{5485,52478,0},{5477,52468,0},{5478,52463,0},{5482,52468,0}, {5490,52463,0},{5497,52463,0},{5495,52461,0},{5488,52461,0},{5483,52463,0}, {5482,52461,0},{5482,52458,0},{5478,52458,0},{5477,52454,0},{5478,52446,0}, {5480,52444,0},{5488,52443,0},{5492,52439,0},{5493,52443,0},{5497,52443,0}, {5497,52439,0},{5500,52436,0},{5507,52439,0},{5510,52453,0},{5510,52454,0}, {5507,52456,0},{5508,52464,0},{5513,52468,0},{5522,52481,0},{5533,52489,0}, {5533,52488,0},{5528,52481,0},{5522,52476,0},{5510,52461,0},{5510,52458,0}, {5515,52454,0},{5508,52444,0},{5510,52434,0},{5513,52429,0},{5518,52429,0}, {5528,52444,0},{5530,52474,0},{5532,52469,0},{5535,52471,0},{5535,52468,0}, {5530,52464,0},{5530,52449,0},{5547,52448,0},{5558,52449,0},{5568,52446,0}, {5570,52448,0},{5578,52441,0},{5582,52444,0},{5580,52438,0},{5582,52434,0}, {5587,52431,0},{5590,52424,0},{5593,52423,0},{5593,52421,0},{5597,52419,0}, {5597,52416,0},{5600,52419,0},{5605,52431,0},{5605,52428,0},{5610,52434,0}, {5610,52429,0},{5600,52414,0},{5597,52404,0},{5597,52398,0},{5600,52394,0}, {5597,52388,0},{5598,52386,0},{5597,52384,0},{5593,52374,0},{5588,52361,0}, {5585,52344,0},{5580,52361,0},{5572,52354,0},{5572,52349,0},{5567,52354,0}, {5563,52353,0},{5562,52348,0},{5560,52348,0},{5567,52336,0},{5558,52343,0}, {5558,52341,0},{5553,52344,0},{5550,52339,0},{5558,52318,0},{5568,52316,0}, {5575,52309,0},{5575,52313,0},{5572,52319,0},{5577,52319,0},{5580,52319,0}, {5580,52331,0},{5585,52328,0},{5588,52333,0},{5593,52329,0},{5595,52333,0}, {5597,52341,0},{5617,52339,0},{5618,52349,0},{5620,52349,0},{5620,52359,0}, {5617,52376,0},{5622,52388,0},{5620,52373,0},{5623,52346,0},{5630,52339,0}, {5635,52339,0},{5638,52329,0},{5637,52326,0},{5638,52321,0},{5647,52318,0}, {5648,52311,0},{5648,52308,0},{5653,52301,0},{5660,52303,0},{5663,52304,0}, {5660,52293,0},{5663,52281,0},{5667,52284,0},{5667,52291,0},{5672,52284,0}, {5675,52289,0},{5677,52289,0},{5677,52294,0},{5680,52296,0},{5682,52299,0}, {5682,52296,0},{5678,52293,0},{5678,52288,0},{5675,52286,0},{5678,52271,0}, {5685,52259,0},{5688,52258,0},{5690,52249,0},{5693,52251,0},{5698,52244,0}, {5695,52258,0},{5698,52259,0},{5705,52254,0},{5708,52258,0},{5707,52251,0}, {5702,52248,0},{5705,52241,0},{5703,52239,0},{5707,52229,0},{5708,52221,0}, {5713,52221,0},{5715,52224,0},{5717,52221,0},{5715,52218,0},{5713,52218,0}, {5713,52214,0},{5717,52214,0},{5717,52211,0},{5712,52211,0},{5710,52206,0}, {5718,52181,0},{5722,52188,0},{5725,52186,0},{5728,52189,0},{5728,52213,0}, {5732,52219,0},{5732,52228,0},{5735,52233,0},{5737,52231,0},{5733,52224,0}, {5732,52214,0},{5733,52206,0},{5733,52198,0},{5735,52193,0},{5738,52191,0}, {5740,52201,0},{5743,52203,0},{5742,52193,0},{5743,52189,0},{5750,52184,0}, {5753,52186,0},{5757,52193,0},{5757,52203,0},{5758,52204,0},{5758,52193,0}, {5757,52183,0},{5757,52178,0},{5758,52174,0},{5763,52169,0},{5770,52173,0}, {5770,52181,0},{5767,52186,0},{5758,52218,0},{5750,52231,0},{5752,52236,0}, {5753,52228,0},{5760,52219,0},{5762,52221,0},{5762,52214,0},{5765,52209,0}, {5767,52203,0},{5772,52196,0},{5772,52189,0},{5775,52183,0},{5790,52181,0}, {5792,52183,0},{5790,52196,0},{5788,52203,0},{5785,52224,0},{5790,52218,0}, {5790,52208,0},{5790,52203,0},{5792,52196,0},{5792,52181,0},{5790,52176,0}, {5787,52178,0},{5788,52173,0},{5785,52173,0},{5782,52174,0},{5778,52171,0}, {5778,52166,0},{5785,52161,0},{5795,52151,0},{5798,52158,0},{5793,52166,0}, {5795,52168,0},{5798,52166,0},{5802,52169,0},{5802,52163,0},{5805,52159,0}, {5810,52166,0},{5813,52164,0},{5815,52169,0},{5813,52161,0},{5810,52163,0}, {5805,52156,0},{5802,52156,0},{5798,52148,0},{5802,52138,0},{5807,52134,0}, {5807,52131,0},{5810,52129,0},{5812,52133,0},{5818,52128,0},{5825,52131,0}, {5828,52129,0},{5828,52134,0},{5832,52138,0},{5840,52134,0},{5843,52141,0}, {5850,52144,0},{5852,52148,0},{5850,52156,0},{5852,52159,0},{5852,52146,0}, {5850,52138,0},{5843,52138,0},{5842,52129,0},{5840,52131,0},{5833,52129,0}, {5830,52121,0},{5825,52126,0},{5820,52121,0},{5822,52111,0},{5835,52084,0}, {5835,52073,0},{5838,52071,0},{5838,52059,0},{5848,52058,0},{5857,52048,0}, {5867,52038,0},{5865,52044,0},{5867,52044,0},{5870,52043,0},{5882,52041,0}, {5882,52036,0},{5878,52036,0},{5878,52033,0},{5873,52034,0},{5883,52021,0}, {5888,52023,0},{5893,52019,0},{5900,52019,0},{5902,52016,0},{5920,52008,0}, {5927,51999,0},{5943,52004,0},{5947,52003,0},{5945,51999,0},{5930,51996,0}, {5932,51981,0},{5928,51991,0},{5923,51993,0},{5920,52001,0},{5908,52006,0}, {5912,51998,0},{5920,51994,0},{5922,51988,0},{5923,51981,0},{5918,51989,0}, {5913,51991,0},{5908,51998,0},{5897,51998,0},{5892,52001,0},{5892,52004,0}, {5887,52003,0},{5878,52013,0},{5872,52011,0},{5863,52019,0},{5862,52014,0}, {5860,52014,0},{5853,52019,0},{5833,52031,0},{5830,52031,0},{5830,52028,0}, {5823,52028,0},{5820,52021,0},{5825,52003,0},{5848,51988,0},{5847,51984,0}, {5842,51989,0},{5837,51989,0},{5842,51973,0},{5840,51966,0},{5838,51944,0}, {5847,51949,0},{5845,51941,0},{5847,51944,0},{5847,51951,0},{5848,51949,0}, {5855,51953,0},{5858,51948,0},{5860,51954,0},{5860,51949,0},{5862,51946,0}, {5870,51943,0},{5870,51938,0},{5872,51939,0},{5882,51929,0},{5887,51943,0}, {5885,51944,0},{5888,51961,0},{5890,51956,0},{5892,51939,0},{5890,51943,0}, {5888,51941,0},{5885,51933,0},{5888,51931,0},{5892,51933,0},{5895,51926,0}, {5902,51926,0},{5903,51921,0},{5895,51923,0},{5892,51914,0},{5893,51926,0}, {5890,51924,0},{5887,51926,0},{5877,51923,0},{5875,51919,0},{5875,51911,0}, {5880,51898,0},{5882,51909,0},{5883,51889,0},{5890,51886,0},{5897,51888,0}, {5897,51883,0},{5892,51879,0},{5897,51873,0},{5902,51866,0},{5897,51869,0}, {5890,51876,0},{5890,51874,0},{5888,51871,0},{5892,51866,0},{5897,51851,0}, {5907,51831,0},{5905,51829,0},{5897,51844,0},{5893,51846,0},{5892,51844,0}, {5892,51833,0},{5882,51823,0},{5890,51838,0},{5888,51851,0},{5883,51856,0}, {5887,51858,0},{5887,51863,0},{5883,51871,0},{5883,51879,0},{5882,51883,0}, {5880,51888,0},{5877,51884,0},{5878,51883,0},{5877,51883,0},{5880,51878,0}, {5882,51873,0},{5882,51871,0},{5878,51878,0},{5877,51876,0},{5873,51884,0}, {5870,51884,0},{5867,51893,0},{5872,51886,0},{5875,51888,0},{5873,51889,0}, {5872,51898,0},{5868,51903,0},{5862,51889,0},{5862,51884,0},{5858,51888,0}, {5862,51896,0},{5860,51903,0},{5862,51903,0},{5865,51903,0},{5862,51908,0}, {5867,51906,0},{5862,51918,0},{5860,51916,0},{5858,51918,0},{5855,51924,0}, {5855,51921,0},{5852,51919,0},{5852,51914,0},{5850,51919,0},{5852,51923,0}, {5852,51928,0},{5838,51933,0},{5833,51928,0},{5830,51911,0},{5832,51908,0}, {5833,51908,0},{5835,51909,0},{5840,51904,0},{5837,51901,0},{5840,51891,0}, {5843,51886,0},{5838,51888,0},{5837,51884,0},{5837,51881,0},{5833,51888,0}, {5838,51889,0},{5837,51898,0},{5833,51901,0},{5830,51899,0},{5832,51893,0}, {5830,51888,0},{5837,51876,0},{5833,51871,0},{5827,51881,0},{5823,51878,0}, {5822,51871,0},{5825,51864,0},{5827,51866,0},{5828,51869,0},{5830,51868,0}, {5830,51863,0},{5830,51861,0},{5830,51858,0},{5833,51859,0},{5832,51854,0}, {5832,51851,0},{5835,51853,0},{5838,51849,0},{5833,51846,0},{5838,51843,0}, {5840,51836,0},{5838,51828,0},{5840,51824,0},{5858,51781,0},{5860,51774,0}, {5862,51774,0},{5862,51779,0},{5867,51793,0},{5868,51788,0},{5865,51778,0}, {5862,51771,0},{5867,51768,0},{5880,51743,0},{5885,51744,0},{5890,51739,0}, {5903,51716,0},{5907,51706,0},{5907,51708,0},{5908,51694,0},{5910,51694,0}, {5908,51698,0},{5910,51696,0},{5912,51676,0},{5913,51676,0},{5912,51686,0}, {5915,51686,0},{5918,51693,0},{5918,51691,0},{5917,51671,0},{5913,51673,0}, {5920,51661,0},{5927,51641,0},{5932,51616,0},{5930,51624,0},{5933,51619,0}, {5933,51613,0},{5938,51614,0},{5937,51608,0},{5935,51608,0},{5938,51593,0}, {5942,51586,0},{5938,51598,0},{5940,51604,0},{5942,51598,0},{5940,51591,0}, {5943,51584,0},{5943,51579,0},{5953,51551,0},{5955,51553,0},{5955,51563,0}, {5958,51568,0},{5957,51573,0},{5962,51579,0},{5962,51578,0},{5965,51578,0}, {5970,51589,0},{5980,51578,0},{5988,51574,0},{5998,51588,0},{5993,51599,0}, {5985,51606,0},{5982,51603,0},{5972,51603,0},{5962,51609,0},{5960,51604,0}, {5960,51603,0},{5957,51608,0},{5957,51611,0},{5962,51614,0},{5967,51609,0}, {5973,51609,0},{5973,51606,0},{5978,51611,0},{5983,51608,0},{5985,51623,0}, {5983,51636,0},{5980,51639,0},{5980,51646,0},{5982,51641,0},{5985,51634,0}, {5987,51613,0},{6000,51596,0},{6002,51588,0},{6005,51586,0},{6005,51583,0}, {6000,51578,0},{5995,51578,0},{5993,51568,0},{5982,51553,0},{5972,51513,0}, {5970,51498,0},{5975,51449,0},{5988,51391,0},{5992,51391,0},{5992,51396,0}, {5992,51393,0},{5988,51393,0},{5993,51408,0},{5998,51409,0},{6002,51409,0}, {6007,51406,0},{6007,51408,0},{6010,51399,0},{6013,51398,0},{6012,51388,0}, {6008,51391,0},{6003,51398,0},{5997,51374,0},{5995,51364,0},{6002,51343,0}, {6012,51264,0},{6007,51219,0},{6003,51169,0},{5998,51148,0},{6003,51134,0}, {6003,51111,0},{6003,51136,0},{6005,51136,0},{6015,51116,0},{6015,51111,0}, {6020,51118,0},{6018,51111,0},{6020,51099,0},{6018,51099,0},{6017,51093,0}, {6018,51088,0},{6020,51089,0},{6022,51086,0},{6018,51081,0},{6020,51073,0}, {6022,51068,0},{6022,51073,0},{6028,51066,0},{6030,51058,0},{6028,51056,0}, {6030,51053,0},{6030,51048,0},{6028,51046,0},{6030,51043,0},{6035,51048,0}, {6038,51044,0},{6040,51046,0},{6040,51053,0},{6043,51051,0},{6045,51056,0}, {6050,51058,0},{6047,51051,0},{6047,51048,0},{6048,51048,0},{6052,51053,0}, {6060,51056,0},{6063,51061,0},{6067,51059,0},{6067,51073,0},{6072,51074,0}, {6068,51061,0},{6065,51058,0},{6062,51051,0},{6055,51046,0},{6052,51034,0}, {6043,51026,0},{6037,51013,0},{6035,51006,0},{6035,50998,0},{6040,50988,0}, {6042,50986,0},{6047,50971,0},{6045,50948,0},{6047,50943,0},{6048,50946,0}, {6048,50949,0},{6055,50963,0},{6065,50974,0},{6067,50973,0},{6062,50951,0}, {6062,50948,0},{6065,50956,0},{6067,50948,0},{6070,50951,0},{6063,50941,0}, {6063,50936,0},{6070,50944,0},{6065,50928,0},{6063,50916,0},{6063,50911,0}, {6065,50909,0},{6072,50928,0},{6075,50931,0},{6075,50934,0},{6080,50933,0}, {6075,50924,0},{6075,50918,0},{6077,50919,0},{6075,50913,0},{6072,50909,0}, {6073,50904,0},{6077,50908,0},{6077,50906,0},{6070,50894,0},{6068,50888,0}, {6070,50886,0},{6070,50871,0},{6075,50868,0},{6073,50873,0},{6077,50876,0}, {6075,50879,0},{6075,50888,0},{6077,50883,0},{6077,50893,0},{6082,50916,0}, {6083,50911,0},{6085,50916,0},{6083,50928,0},{6090,50913,0},{6083,50906,0}, {6082,50896,0},{6085,50896,0},{6082,50888,0},{6082,50881,0},{6085,50879,0}, {6082,50874,0},{6087,50874,0},{6088,50873,0},{6087,50869,0},{6088,50866,0}, {6097,50861,0},{6095,50864,0},{6093,50868,0},{6095,50878,0},{6097,50866,0}, {6103,50869,0},{6103,50879,0},{6105,50873,0},{6107,50873,0},{6108,50876,0}, {6108,50913,0},{6113,50906,0},{6113,50894,0},{6113,50876,0},{6093,50839,0}, {6095,50833,0},{6098,50838,0},{6100,50838,0},{6100,50834,0},{6098,50834,0}, {6097,50831,0},{6100,50833,0},{6100,50824,0},{6098,50821,0},{6095,50821,0}, {6097,50816,0},{6102,50816,0},{6098,50811,0},{6100,50809,0},{6098,50808,0}, {6093,50811,0},{6093,50804,0},{6092,50806,0},{6088,50799,0},{6092,50798,0}, {6090,50791,0},{6098,50798,0},{6095,50791,0},{6098,50791,0},{6102,50793,0}, {6098,50788,0},{6092,50786,0},{6090,50783,0},{6092,50781,0},{6105,50783,0}, {6107,50788,0},{6113,50783,0},{6115,50784,0},{6115,50779,0},{6113,50778,0}, {6110,50781,0},{6102,50776,0},{6102,50769,0},{6100,50774,0},{6097,50773,0}, {6095,50776,0},{6087,50776,0},{6085,50771,0},{6087,50768,0},{6090,50769,0}, {6088,50763,0},{6095,50766,0},{6092,50758,0},{6088,50759,0},{6087,50754,0}, {6087,50759,0},{6083,50761,0},{6082,50758,0},{6083,50751,0},{6085,50746,0}, {6090,50743,0},{6095,50731,0},{6102,50741,0},{6107,50744,0},{6108,50743,0}, {6117,50758,0},{6120,50766,0},{6123,50766,0},{6122,50759,0},{6128,50764,0}, {6112,50741,0},{6105,50736,0},{6102,50731,0},{6105,50724,0},{6112,50721,0}, {6108,50716,0},{6108,50709,0},{6107,50706,0},{6105,50696,0},{6105,50701,0}, {6102,50698,0},{6100,50691,0},{6098,50693,0},{6098,50696,0},{6107,50711,0}, {6107,50721,0},{6095,50711,0},{6097,50703,0},{6092,50709,0},{6083,50704,0}, {6085,50696,0},{6083,50703,0},{6082,50703,0},{6082,50696,0},{6083,50691,0}, {6083,50676,0},{6078,50666,0},{6080,50679,0},{6080,50681,0},{6080,50691,0}, {6075,50673,0},{6068,50666,0},{6067,50669,0},{6070,50676,0},{6073,50678,0}, {6077,50684,0},{6077,50699,0},{6077,50698,0},{6075,50701,0},{6073,50696,0}, {6068,50696,0},{6067,50691,0},{6063,50694,0},{6067,50701,0},{6070,50701,0}, {6075,50708,0},{6077,50713,0},{6072,50711,0},{6063,50716,0},{6053,50703,0}, {6055,50701,0},{6057,50701,0},{6057,50694,0},{6058,50693,0},{6058,50688,0}, {6050,50671,0},{6045,50668,0},{6053,50691,0},{6052,50699,0},{6050,50698,0}, {6050,50703,0},{6048,50701,0},{6048,50709,0},{6045,50709,0},{6045,50713,0}, {6048,50714,0},{6052,50713,0},{6055,50718,0},{6050,50718,0},{6052,50721,0}, {6058,50723,0},{6060,50728,0},{6057,50733,0},{6053,50729,0},{6055,50734,0}, {6053,50736,0},{6052,50739,0},{6047,50736,0},{6045,50738,0},{6047,50743,0}, {6043,50741,0},{6043,50736,0},{6042,50738,0},{6040,50731,0},{6042,50728,0}, {6038,50728,0},{6042,50718,0},{6037,50724,0},{6035,50723,0},{6035,50716,0}, {6037,50714,0},{6038,50713,0},{6035,50709,0},{6035,50714,0},{6032,50714,0}, {6025,50704,0},{6028,50699,0},{6028,50698,0},{6023,50701,0},{6018,50693,0}, {6020,50703,0},{6025,50714,0},{6023,50718,0},{6022,50709,0},{6020,50718,0}, {6015,50716,0},{6023,50723,0},{6022,50726,0},{6015,50721,0},{6012,50709,0}, {6013,50706,0},{6017,50708,0},{6017,50704,0},{6015,50703,0},{6013,50699,0}, {6007,50698,0},{6003,50693,0},{6002,50696,0},{5995,50693,0},{5995,50689,0}, {6003,50683,0},{5998,50683,0},{5998,50679,0},{5995,50681,0},{5992,50671,0}, {5995,50669,0},{5995,50656,0},{5993,50649,0},{5997,50643,0},{5995,50634,0}, {5998,50634,0},{5997,50629,0},{5998,50624,0},{6005,50633,0},{6005,50623,0}, {6000,50616,0},{5995,50614,0},{5992,50611,0},{5990,50613,0},{5987,50609,0}, {5997,50606,0},{5998,50603,0},{6002,50606,0},{6002,50601,0},{6012,50599,0}, {6012,50594,0},{6003,50593,0},{6000,50598,0},{5998,50593,0},{5993,50589,0}, {5993,50583,0},{5992,50581,0},{5982,50573,0},{5978,50578,0},{5978,50583,0}, {5975,50581,0},{5973,50584,0},{5972,50583,0},{5975,50573,0},{5977,50576,0}, {5978,50571,0},{5980,50573,0},{5982,50569,0},{5985,50571,0},{5990,50571,0}, {5997,50564,0},{5995,50563,0},{5988,50563,0},{5983,50559,0},{5985,50553,0}, {5985,50549,0},{5978,50559,0},{5965,50561,0},{5968,50556,0},{5972,50554,0}, {5973,50549,0},{5977,50544,0},{5980,50533,0},{5977,50533,0},{5973,50539,0}, {5972,50544,0},{5970,50543,0},{5963,50534,0},{5967,50531,0},{5970,50523,0}, {5967,50526,0},{5962,50526,0},{5958,50528,0},{5957,50521,0},{5958,50518,0}, {5953,50518,0},{5953,50511,0},{5950,50511,0},{5950,50508,0},{5948,50506,0}, {5947,50498,0},{5948,50501,0},{5950,50498,0},{5950,50503,0},{5955,50501,0}, {5958,50508,0},{5960,50506,0},{5972,50514,0},{5957,50496,0},{5947,50489,0}, {5947,50486,0},{5950,50486,0},{5952,50481,0},{5960,50486,0},{5955,50471,0}, {5948,50479,0},{5947,50473,0},{5943,50476,0},{5942,50471,0},{5942,50464,0}, {5937,50458,0},{5932,50444,0},{5925,50448,0},{5923,50439,0},{5920,50441,0}, {5923,50436,0},{5927,50436,0},{5930,50431,0},{5928,50429,0},{5932,50411,0}, {5932,50409,0},{5930,50409,0},{5928,50418,0},{5925,50426,0},{5922,50424,0}, {5922,50406,0},{5927,50396,0},{5923,50384,0},{5922,50389,0},{5920,50388,0}, {5920,50376,0},{5918,50374,0},{5918,50379,0},{5917,50378,0},{5917,50364,0}, {5917,50361,0},{5922,50361,0},{5922,50351,0},{5922,50346,0},{5925,50348,0}, {5928,50338,0},{5932,50338,0},{5935,50343,0},{5935,50354,0},{5940,50346,0}, {5945,50359,0},{5945,50364,0},{5948,50368,0},{5947,50389,0},{5943,50396,0}, {5943,50399,0},{5947,50398,0},{5950,50391,0},{5953,50391,0},{5957,50401,0}, {5957,50409,0},{5960,50411,0},{5960,50419,0},{5965,50416,0},{5967,50423,0}, {5972,50426,0},{5978,50436,0},{5980,50433,0},{5977,50424,0},{5965,50391,0}, {5963,50389,0},{5960,50394,0},{5963,50388,0},{5968,50361,0},{5973,50351,0}, {5977,50348,0},{6002,50364,0},{6020,50393,0},{6027,50398,0},{6037,50398,0}, {6038,50406,0},{6053,50409,0},{6058,50403,0},{6072,50394,0},{6075,50406,0}, {6077,50411,0},{6078,50431,0},{6097,50469,0},{6103,50496,0},{6103,50503,0}, {6098,50506,0},{6093,50513,0},{6090,50531,0},{6097,50553,0},{6097,50564,0}, {6093,50573,0},{6093,50584,0},{6090,50594,0},{6088,50619,0},{6085,50633,0}, {6088,50631,0},{6095,50619,0},{6093,50603,0},{6095,50598,0},{6098,50586,0}, {6098,50574,0},{6115,50529,0},{6120,50533,0},{6120,50541,0},{6123,50546,0}, {6132,50553,0},{6133,50558,0},{6133,50563,0},{6140,50568,0},{6148,50609,0}, {6150,50611,0},{6150,50594,0},{6152,50594,0},{6150,50583,0},{6147,50566,0}, {6138,50548,0},{6127,50543,0},{6123,50536,0},{6125,50519,0},{6125,50509,0}, {6128,50506,0},{6125,50503,0},{6125,50488,0},{6128,50481,0},{6137,50483,0}, {6137,50479,0},{6128,50478,0},{6128,50473,0},{6130,50471,0},{6128,50469,0}, {6125,50464,0},{6120,50448,0},{6122,50441,0},{6117,50429,0},{6105,50419,0}, {6103,50408,0},{6102,50401,0},{6102,50386,0},{6093,50369,0},{6092,50361,0}, {6083,50356,0},{6072,50364,0},{6072,50358,0},{6075,50351,0},{6073,50349,0}, {6072,50344,0},{6067,50331,0},{6060,50326,0},{6055,50313,0},{6050,50304,0}, {6043,50303,0},{6040,50311,0},{6035,50298,0},{6028,50294,0},{6028,50286,0}, {6023,50279,0},{6022,50274,0},{6025,50268,0},{6023,50261,0},{6023,50251,0}, {6025,50253,0},{6025,50258,0},{6027,50253,0},{6025,50248,0},{6030,50248,0}, {6030,50244,0},{6030,50233,0},{6028,50226,0},{6027,50226,0},{6028,50231,0}, {6028,50241,0},{6023,50244,0},{6017,50268,0},{6013,50268,0},{6008,50278,0}, {6005,50278,0},{5997,50268,0},{5992,50266,0},{5988,50253,0},{5988,50229,0}, {5987,50213,0},{5982,50208,0},{5983,50216,0},{5982,50223,0},{5983,50231,0}, {5983,50236,0},{5982,50236,0},{5980,50236,0},{5970,50231,0},{5968,50223,0}, {5965,50216,0},{5965,50211,0},{5968,50208,0},{5967,50204,0},{5963,50204,0}, {5965,50193,0},{5967,50198,0},{5972,50199,0},{5972,50204,0},{5975,50194,0}, {5978,50191,0},{5972,50193,0},{5965,50188,0},{5963,50181,0},{5965,50179,0}, {5968,50176,0},{5970,50178,0},{5968,50173,0},{5965,50173,0},{5963,50166,0}, {5963,50173,0},{5960,50179,0},{5955,50178,0},{5955,50164,0},{5953,50158,0}, {5955,50154,0},{5955,50149,0},{5952,50159,0},{5947,50164,0},{5943,50163,0}, {5942,50156,0},{5943,50148,0},{5938,50141,0},{5940,50138,0},{5938,50134,0}, {5938,50121,0},{5935,50128,0},{5937,50138,0},{5937,50141,0},{5930,50124,0}, {5925,50121,0},{5920,50123,0},{5920,50118,0},{5917,50118,0},{5917,50113,0}, {5915,50114,0},{5915,50109,0},{5912,50111,0},{5912,50119,0},{5907,50116,0}, {5903,50118,0},{5903,50123,0},{5908,50133,0},{5905,50149,0},{5907,50154,0}, {5907,50159,0},{5907,50164,0},{5900,50178,0},{5898,50181,0},{5900,50189,0}, {5898,50189,0},{5898,50194,0},{5893,50199,0},{5893,50203,0},{5890,50203,0}, {5888,50208,0},{5887,50199,0},{5887,50211,0},{5883,50208,0},{5885,50203,0}, {5885,50199,0},{5872,50191,0},{5868,50179,0},{5863,50176,0},{5862,50159,0}, {5862,50146,0},{5860,50144,0},{5858,50148,0},{5853,50143,0},{5853,50139,0}, {5852,50144,0},{5850,50143,0},{5848,50139,0},{5848,50126,0},{5840,50129,0}, {5840,50136,0},{5838,50136,0},{5835,50129,0},{5835,50116,0},{5833,50118,0}, {5832,50108,0},{5828,50099,0},{5825,50101,0},{5827,50109,0},{5830,50109,0}, {5830,50114,0},{5832,50118,0},{5828,50124,0},{5827,50121,0},{5825,50111,0}, {5825,50118,0},{5822,50121,0},{5818,50116,0},{5818,50106,0},{5813,50114,0}, {5813,50109,0},{5813,50106,0},{5815,50103,0},{5813,50101,0},{5808,50103,0}, {5808,50099,0},{5815,50091,0},{5818,50091,0},{5820,50088,0},{5808,50089,0}, {5812,50078,0},{5810,50076,0},{5808,50081,0},{5807,50083,0},{5802,50078,0}, {5803,50073,0},{5807,50069,0},{5805,50064,0},{5802,50063,0},{5800,50058,0}, {5803,50048,0},{5802,50033,0},{5795,50031,0},{5795,50024,0},{5788,50029,0}, {5787,50018,0},{5787,50016,0},{5788,50011,0},{5783,50014,0},{5783,50009,0}, {5783,50003,0},{5780,50006,0},{5780,50001,0},{5775,50006,0},{5773,50006,0}, {5772,49998,0},{5773,49994,0},{5780,49978,0},{5778,49974,0},{5773,49973,0}, {5772,49973,0},{5768,49978,0},{5767,49978,0},{5763,49964,0},{5765,49959,0}, {5762,49963,0},{5755,49963,0},{5755,49956,0},{5758,49954,0},{5755,49949,0}, {5755,49946,0},{5753,49944,0},{5757,49934,0},{5757,49933,0},{5753,49934,0}, {5753,49926,0},{5752,49926,0},{5752,49933,0},{5743,49933,0},{5743,49924,0}, {5748,49918,0},{5743,49913,0},{5743,49909,0},{5740,49901,0},{5733,49889,0}, {5732,49881,0},{5727,49881,0},{5732,49899,0},{5728,49903,0},{5725,49901,0}, {5722,49891,0},{5722,49894,0},{5718,49901,0},{5715,49899,0},{5712,49889,0}, {5710,49888,0},{5708,49891,0},{5710,49888,0},{5708,49886,0},{5705,49886,0}, {5705,49878,0},{5707,49873,0},{5705,49874,0},{5705,49871,0},{5698,49881,0}, {5700,49868,0},{5703,49864,0},{5705,49859,0},{5703,49856,0},{5700,49859,0}, {5697,49858,0},{5692,49856,0},{5690,49853,0},{5695,49848,0},{5697,49839,0}, {5690,49841,0},{5690,49834,0},{5682,49828,0},{5685,49818,0},{5682,49821,0}, {5678,49821,0},{5677,49816,0},{5680,49806,0},{5685,49799,0},{5685,49793,0}, {5682,49789,0},{5680,49794,0},{5677,49796,0},{5677,49791,0},{5675,49789,0}, {5677,49786,0},{5672,49779,0},{5672,49776,0},{5668,49781,0},{5667,49788,0}, {5663,49791,0},{5662,49789,0},{5660,49769,0},{5662,49766,0},{5667,49761,0}, {5668,49758,0},{5665,49751,0},{5665,49744,0},{5662,49741,0},{5660,49738,0}, {5660,49734,0},{5657,49731,0},{5657,49724,0},{5653,49724,0},{5657,49744,0}, {5655,49751,0},{5652,49753,0},{5647,49748,0},{5652,49723,0},{5650,49719,0}, {5648,49721,0},{5648,49724,0},{5647,49723,0},{5647,49709,0},{5648,49703,0}, {5647,49699,0},{5645,49694,0},{5640,49689,0},{5637,49684,0},{5635,49686,0}, {5632,49676,0},{5628,49671,0},{5627,49671,0},{5625,49681,0},{5627,49681,0}, {5630,49679,0},{5633,49691,0},{5630,49693,0},{5632,49696,0},{5630,49696,0}, {5632,49703,0},{5630,49706,0},{5630,49713,0},{5628,49716,0},{5627,49714,0}, {5623,49701,0},{5623,49696,0},{5620,49694,0},{5622,49699,0},{5620,49704,0}, {5617,49703,0},{5623,49718,0},{5623,49724,0},{5622,49719,0},{5618,49716,0}, {5618,49709,0},{5617,49709,0},{5615,49701,0},{5612,49701,0},{5613,49698,0}, {5617,49698,0},{5617,49694,0},{5613,49694,0},{5613,49693,0},{5608,49696,0}, {5607,49694,0},{5610,49691,0},{5610,49686,0},{5607,49689,0},{5605,49688,0}, {5603,49689,0},{5605,49689,0},{5603,49694,0},{5600,49693,0},{5603,49686,0}, {5603,49684,0},{5598,49686,0},{5602,49679,0},{5605,49684,0},{5603,49678,0}, {5605,49676,0},{5607,49679,0},{5610,49676,0},{5612,49681,0},{5613,49681,0}, {5615,49684,0},{5617,49686,0},{5617,49689,0},{5620,49686,0},{5618,49673,0}, {5617,49679,0},{5612,49671,0},{5612,49669,0},{5615,49669,0},{5615,49666,0}, {5610,49666,0},{5610,49669,0},{5607,49669,0},{5603,49663,0},{5602,49671,0}, {5598,49671,0},{5598,49668,0},{5597,49669,0},{5595,49668,0},{5595,49661,0}, {5597,49663,0},{5600,49663,0},{5602,49659,0},{5598,49656,0},{5602,49653,0}, {5600,49649,0},{5592,49643,0},{5593,49639,0},{5592,49634,0},{5588,49634,0}, {5592,49628,0},{5590,49619,0},{5588,49618,0},{5588,49611,0},{5585,49604,0}, {5588,49601,0},{5585,49596,0},{5580,49594,0},{5578,49593,0},{5583,49588,0}, {5590,49589,0},{5588,49581,0},{5587,49581,0},{5585,49583,0},{5577,49586,0}, {5572,49581,0},{5565,49581,0},{5562,49574,0},{5557,49574,0},{5557,49563,0}, {5560,49566,0},{5560,49561,0},{5562,49568,0},{5560,49571,0},{5563,49574,0}, {5567,49566,0},{5570,49573,0},{5573,49568,0},{5582,49574,0},{5585,49563,0}, {5585,49551,0},{5578,49551,0},{5578,49549,0},{5578,49544,0},{5582,49539,0}, {5578,49539,0},{5578,49533,0},{5577,49531,0},{5572,49534,0},{5572,49526,0}, {5570,49529,0},{5570,49524,0},{5573,49521,0},{5567,49523,0},{5567,49521,0}, {5565,49511,0},{5563,49508,0},{5565,49493,0},{5563,49493,0},{5560,49499,0}, {5557,49491,0},{5550,49489,0},{5548,49484,0},{5548,49481,0},{5555,49478,0}, {5560,49476,0},{5555,49469,0},{5553,49459,0},{5552,49461,0},{5552,49469,0}, {5545,49468,0},{5545,49458,0},{5545,49454,0},{5547,49451,0},{5552,49453,0}, {5552,49448,0},{5550,49441,0},{5547,49438,0},{5543,49433,0},{5535,49411,0}, {5535,49404,0},{5538,49401,0},{5537,49386,0},{5548,49388,0},{5558,49399,0}, {5553,49408,0},{5553,49423,0},{5555,49411,0},{5558,49406,0},{5563,49394,0}, {5562,49379,0},{5560,49374,0},{5558,49374,0},{5552,49364,0},{5548,49368,0}, {5543,49364,0},{5540,49366,0},{5527,49349,0},{5522,49346,0},{5522,49341,0}, {5522,49344,0},{5523,49343,0},{5523,49331,0},{5518,49334,0},{5517,49333,0}, {5515,49338,0},{5512,49341,0},{5510,49339,0},{5507,49329,0},{5510,49323,0}, {5517,49326,0},{5515,49319,0},{5510,49314,0},{5505,49316,0},{5502,49309,0}, {5507,49304,0},{5503,49301,0},{5503,49291,0},{5510,49283,0},{5512,49288,0}, {5508,49294,0},{5510,49299,0},{5517,49288,0},{5525,49283,0},{5527,49276,0}, {5528,49281,0},{5530,49279,0},{5530,49274,0},{5528,49268,0},{5522,49264,0}, {5517,49276,0},{5513,49276,0},{5513,49273,0},{5507,49271,0},{5508,49274,0}, {5507,49274,0},{5495,49279,0},{5500,49271,0},{5502,49274,0},{5505,49271,0}, {5493,49261,0},{5493,49249,0},{5495,49246,0},{5495,49244,0},{5500,49238,0}, {5500,49244,0},{5502,49244,0},{5503,49239,0},{5508,49234,0},{5510,49226,0}, {5510,49219,0},{5512,49224,0},{5513,49219,0},{5512,49216,0},{5508,49218,0}, {5510,49213,0},{5507,49213,0},{5507,49216,0},{5503,49214,0},{5502,49216,0}, {5497,49229,0},{5495,49231,0},{5490,49223,0},{5483,49213,0},{5483,49208,0}, {5480,49203,0},{5482,49199,0},{5485,49198,0},{5488,49203,0},{5490,49204,0}, {5492,49209,0},{5492,49206,0},{5492,49201,0},{5495,49203,0},{5495,49211,0}, {5495,49213,0},{5500,49208,0},{5512,49204,0},{5518,49224,0},{5525,49234,0}, {5523,49236,0},{5520,49231,0},{5517,49229,0},{5518,49248,0},{5523,49253,0}, {5525,49249,0},{5523,49248,0},{5527,49248,0},{5527,49253,0},{5530,49258,0}, {5532,49264,0},{5538,49273,0},{5535,49273,0},{5535,49281,0},{5537,49288,0}, {5545,49286,0},{5543,49276,0},{5540,49274,0},{5543,49276,0},{5547,49283,0}, {5568,49311,0},{5572,49323,0},{5577,49328,0},{5580,49339,0},{5588,49356,0}, {5590,49368,0},{5602,49421,0},{5595,49399,0},{5595,49413,0},{5595,49424,0}, {5593,49429,0},{5595,49434,0},{5600,49448,0},{5597,49449,0},{5595,49449,0}, {5593,49449,0},{5593,49443,0},{5593,49438,0},{5590,49434,0},{5587,49436,0}, {5588,49443,0},{5582,49441,0},{5572,49456,0},{5575,49458,0},{5573,49464,0}, {5570,49468,0},{5573,49469,0},{5578,49461,0},{5588,49456,0},{5585,49469,0}, {5587,49486,0},{5583,49489,0},{5580,49489,0},{5582,49494,0},{5578,49499,0}, {5577,49511,0},{5582,49504,0},{5583,49513,0},{5585,49513,0},{5590,49491,0}, {5593,49484,0},{5593,49479,0},{5598,49483,0},{5598,49481,0},{5598,49479,0}, {5600,49479,0},{5610,49489,0},{5617,49491,0},{5628,49501,0},{5633,49511,0}, {5640,49521,0},{5647,49539,0},{5653,49553,0},{5665,49588,0},{5660,49581,0}, {5663,49594,0},{5668,49606,0},{5668,49614,0},{5670,49609,0},{5673,49613,0}, {5680,49633,0},{5690,49649,0},{5682,49634,0},{5680,49633,0},{5678,49638,0}, {5680,49638,0},{5683,49641,0},{5678,49649,0},{5678,49659,0},{5678,49668,0}, {5677,49673,0},{5683,49671,0},{5688,49666,0},{5700,49668,0},{5708,49674,0}, {5732,49708,0},{5737,49719,0},{5737,49731,0},{5738,49726,0},{5748,49741,0}, {5757,49763,0},{5757,49768,0},{5755,49766,0},{5752,49771,0},{5747,49771,0}, {5748,49773,0},{5748,49784,0},{5747,49784,0},{5747,49788,0},{5750,49796,0}, {5753,49794,0},{5757,49796,0},{5755,49791,0},{5750,49794,0},{5750,49784,0}, {5748,49779,0},{5750,49776,0},{5762,49776,0},{5763,49773,0},{5762,49773,0}, {5762,49766,0},{5765,49766,0},{5773,49764,0},{5787,49773,0},{5808,49774,0}, {5817,49783,0},{5817,49794,0},{5820,49796,0},{5820,49816,0},{5817,49823,0}, {5820,49819,0},{5822,49806,0},{5823,49803,0},{5822,49789,0},{5827,49783,0}, {5828,49783,0},{5830,49779,0},{5838,49781,0},{5850,49789,0},{5855,49801,0}, {5863,49814,0},{5870,49826,0},{5872,49834,0},{5873,49843,0},{5872,49831,0}, {5873,49829,0},{5877,49829,0},{5883,49836,0},{5887,49833,0},{5890,49838,0}, {5893,49838,0},{5900,49851,0},{5908,49851,0},{5915,49858,0},{5910,49849,0}, {5902,49848,0},{5898,49844,0},{5897,49833,0},{5890,49831,0},{5887,49824,0}, {5883,49801,0},{5863,49731,0},{5860,49718,0},{5865,49704,0},{5872,49701,0}, {5875,49698,0},{5880,49679,0},{5883,49679,0},{5885,49684,0},{5887,49684,0}, {5895,49686,0},{5897,49694,0},{5900,49691,0},{5898,49689,0},{5900,49686,0}, {5903,49699,0},{5900,49723,0},{5895,49729,0},{5892,49728,0},{5887,49733,0}, {5890,49736,0},{5892,49731,0},{5895,49733,0},{5903,49723,0},{5908,49694,0}, {5917,49683,0},{5913,49681,0},{5907,49691,0},{5903,49683,0},{5892,49674,0}, {5887,49663,0},{5888,49661,0},{5893,49663,0},{5893,49659,0},{5897,49658,0}, {5897,49663,0},{5900,49661,0},{5897,49654,0},{5892,49659,0},{5882,49656,0}, {5877,49658,0},{5873,49651,0},{5873,49648,0},{5877,49648,0},{5878,49654,0}, {5880,49654,0},{5880,49648,0},{5878,49651,0},{5877,49644,0},{5872,49646,0}, {5857,49656,0},{5857,49658,0},{5850,49659,0},{5850,49666,0},{5843,49659,0}, {5842,49654,0},{5842,49656,0},{5840,49648,0},{5843,49629,0},{5845,49633,0}, {5845,49628,0},{5848,49628,0},{5848,49624,0},{5872,49601,0},{5880,49591,0}, {5885,49581,0},{5883,49571,0},{5890,49576,0},{5895,49573,0},{5893,49559,0}, {5892,49561,0},{5888,49558,0},{5885,49559,0},{5885,49554,0},{5880,49554,0}, {5877,49544,0},{5888,49534,0},{5888,49528,0},{5887,49526,0},{5887,49521,0}, {5888,49521,0},{5892,49519,0},{5890,49511,0},{5892,49511,0},{5895,49509,0}, {5893,49508,0},{5895,49504,0},{5898,49506,0},{5898,49511,0},{5907,49503,0}, {5905,49496,0},{5892,49463,0},{5882,49453,0},{5887,49453,0},{5888,49448,0}, {5887,49439,0},{5880,49418,0},{5880,49409,0},{5882,49409,0},{5882,49406,0}, {5880,49404,0},{5878,49408,0},{5878,49414,0},{5877,49408,0},{5872,49399,0}, {5867,49398,0},{5868,49404,0},{5863,49383,0},{5860,49378,0},{5860,49374,0}, {5857,49366,0},{5855,49359,0},{5860,49364,0},{5862,49364,0},{5865,49361,0}, {5862,49359,0},{5858,49361,0},{5862,49358,0},{5863,49354,0},{5863,49326,0}, {5865,49319,0},{5867,49329,0},{5868,49331,0},{5868,49336,0},{5867,49341,0}, {5865,49343,0},{5865,49348,0},{5868,49353,0},{5872,49351,0},{5875,49356,0}, {5877,49366,0},{5880,49371,0},{5882,49366,0},{5880,49361,0},{5878,49359,0}, {5880,49359,0},{5887,49356,0},{5897,49358,0},{5903,49351,0},{5905,49354,0}, {5902,49354,0},{5903,49364,0},{5910,49379,0},{5912,49374,128},{5913,49374,0}, {5912,49366,0},{5910,49348,0},{5908,49348,0},{5907,49351,0},{5907,49348,0}, {5910,49341,0},{5915,49336,0},{5927,49331,0},{5930,49336,0},{5927,49331,0}, {5923,49334,0},{5925,49338,0},{5928,49339,0},{5938,49341,0},{5938,49346,0}, {5942,49349,0},{5942,49351,0},{5947,49356,0},{5947,49363,0},{5950,49366,0}, {5962,49349,0},{5970,49348,0},{5982,49336,0},{5988,49328,0},{5995,49326,0}, {6000,49318,0},{6007,49313,0},{6015,49316,0},{6020,49311,0},{6020,49319,0}, {6025,49321,0},{6023,49316,0},{6022,49318,0},{6022,49314,0},{6022,49309,0}, {6023,49308,0},{6022,49306,0},{6020,49308,0},{6018,49306,0},{6017,49309,0}, {6013,49304,0},{6018,49299,0},{6022,49303,0},{6030,49289,0},{6033,49298,0}, {6047,49306,0},{6052,49314,0},{6058,49314,0},{6063,49328,0},{6065,49339,0}, {6065,49343,0},{6068,49339,0},{6070,49348,0},{6070,49341,0},{6065,49328,0}, {6070,49326,0},{6073,49319,0},{6073,49318,0},{6072,49319,0},{6068,49324,0}, {6065,49324,0},{6062,49309,0},{6053,49306,0},{6047,49299,0},{6043,49298,0}, {6043,49293,0},{6038,49294,0},{6037,49291,0},{6038,49291,0},{6038,49286,0}, {6035,49286,0},{6033,49276,0},{6032,49279,0},{6030,49276,0},{6028,49281,0}, {6025,49281,0},{6027,49266,0},{6022,49286,0},{6018,49291,0},{6012,49286,0}, {6005,49289,0},{6000,49284,0},{5998,49274,0},{6000,49261,0},{5997,49263,0}, {5995,49258,0},{5985,49223,0},{5982,49199,0},{5980,49169,0},{5982,49136,0}, {5985,49121,0},{5995,49114,0},{5997,49116,0},{5997,49126,0},{5998,49126,0}, {5998,49123,0},{6000,49124,0},{6000,49121,0},{6008,49094,0},{6015,49088,0}, {6018,49088,0},{6027,49069,0},{6028,49071,0},{6030,49068,0},{6033,49071,0}, {6028,49061,0},{6033,49041,0},{6037,49033,0},{6043,49021,0},{6047,49033,0}, {6050,49036,0},{6052,49039,0},{6055,49038,0},{6055,49029,0},{6050,49016,0}, {6052,48998,0},{6055,48993,0},{6058,48998,0},{6058,49008,0},{6062,49011,0}, {6063,49018,0},{6065,49021,0},{6072,49038,0},{6078,49033,0},{6083,49048,0}, {6087,49048,0},{6090,49041,0},{6092,49041,0},{6093,49043,0},{6087,49053,0}, {6090,49063,0},{6092,49071,0},{6090,49073,0},{6085,49066,0},{6082,49071,0}, {6082,49089,0},{6080,49094,0},{6078,49109,0},{6073,49109,0},{6073,49114,0}, {6068,49114,0},{6065,49104,0},{6062,49103,0},{6062,49098,0},{6057,49093,0}, {6055,49093,0},{6057,49098,0},{6065,49109,0},{6067,49123,0},{6072,49126,0}, {6077,49133,0},{6078,49141,0},{6077,49149,0},{6075,49156,0},{6068,49153,0}, {6067,49156,0},{6063,49153,0},{6058,49156,0},{6058,49169,0},{6063,49183,0}, {6068,49193,0},{6072,49193,0},{6075,49189,0},{6075,49194,0},{6077,49194,0}, {6080,49183,0},{6085,49163,0},{6085,49143,0},{6088,49158,0},{6087,49163,0}, {6087,49169,0},{6088,49181,0},{6090,49181,0},{6093,49161,0},{6095,49161,0}, {6097,49168,0},{6100,49168,0},{6098,49161,0},{6097,49156,0},{6095,49156,0}, {6092,49148,0},{6085,49141,0},{6087,49118,0},{6085,49108,0},{6087,49096,0}, {6085,49079,0},{6087,49076,0},{6090,49078,0},{6092,49074,0},{6093,49064,0}, {6092,49061,0},{6090,49056,0},{6092,49053,0},{6095,49051,0},{6095,49046,0}, {6095,49039,0},{6090,49029,0},{6093,49021,0},{6097,49016,0},{6100,49021,0}, {6102,49039,0},{6102,49041,0},{6108,49043,0},{6107,49049,0},{6108,49051,0}, {6112,49059,0},{6112,49036,0},{6107,49036,0},{6105,49033,0},{6108,49024,0}, {6110,49024,0},{6112,49019,0},{6113,49018,0},{6115,49024,0},{6118,49024,0}, {6122,49029,0},{6125,49023,0},{6123,49024,0},{6122,49028,0},{6120,49021,0}, {6115,49021,0},{6115,49011,0},{6120,48999,0},{6125,49006,0},{6127,49016,0}, {6132,49016,0},{6133,49011,0},{6137,49021,0},{6140,49018,0},{6142,49021,0}, {6142,49031,0},{6145,49034,128},{6148,49038,0},{6150,49051,0},{6152,49053,0}, {6155,49061,0},{6158,49061,0},{6160,49066,0},{6163,49064,0},{6162,49059,0}, {6160,49061,0},{6158,49056,0},{6152,49048,0},{6150,49034,0},{6147,49034,0}, {6147,49028,0},{6143,49028,0},{6143,49019,0},{6140,49016,0},{6137,49016,0}, {6133,49008,0},{6132,49009,0},{6132,49014,0},{6128,49013,0},{6127,49014,0}, {6127,49006,0},{6120,48996,0},{6115,49003,0},{6113,48999,0},{6108,49001,0}, {6107,48998,0},{6108,48984,0},{6112,48976,0},{6123,48971,0},{6125,48976,0}, {6127,48973,0},{6128,48974,0},{6130,48963,0},{6130,48953,0},{6133,48949,0}, {6140,48944,0},{6143,48948,0},{6145,48958,0},{6148,48959,0},{6153,48954,0}, {6155,48946,0},{6153,48928,0},{6152,48928,0},{6150,48931,0},{6148,48926,0}, {6153,48921,0},{6158,48916,0},{6172,48921,0},{6163,48923,0},{6168,48959,0}, {6168,48951,0},{6173,48936,0},{6182,48926,0},{6183,48938,0},{6182,48943,0}, {6183,48954,0},{6182,48956,0},{6185,48961,0},{6185,48978,0},{6192,48966,0}, {6200,48961,0},{6212,48966,0},{6218,48979,0},{6235,48999,0},{6237,49003,0}, {6243,49009,0},{6252,49023,0},{6253,49033,0},{6253,49049,0},{6252,49049,0}, {6247,49051,0},{6247,49061,0},{6243,49068,0},{6243,49076,0},{6243,49071,0}, {6237,49061,0},{6238,49066,0},{6242,49073,0},{6243,49079,0},{6245,49078,0}, {6247,49068,0},{6252,49073,0},{6250,49069,0},{6248,49066,0},{6250,49061,0}, {6248,49053,0},{6253,49058,0},{6257,49051,0},{6263,49071,0},{6275,49088,0}, {6275,49084,0},{6263,49063,0},{6262,49056,0},{6275,49049,0},{6278,49049,0}, {6280,49059,0},{6282,49051,0},{6283,49048,0},{6293,49054,0},{6302,49068,0}, {6303,49079,0},{6302,49086,0},{6302,49089,0},{6303,49091,0},{6302,49098,0}, {6300,49104,0},{6305,49103,0},{6307,49099,0},{6308,49084,0},{6313,49078,0}, {6322,49094,0},{6327,49121,0},{6325,49138,0},{6322,49153,0},{6322,49164,0}, {6315,49173,0},{6312,49169,0},{6312,49174,0},{6313,49178,0},{6312,49183,0}, {6310,49174,0},{6305,49169,0},{6302,49156,0},{6298,49156,0},{6302,49161,0}, {6305,49174,0},{6310,49183,0},{6310,49193,0},{6302,49203,0},{6303,49206,0}, {6307,49229,0},{6315,49251,0},{6320,49254,0},{6323,49268,0},{6333,49286,0}, {6342,49294,0},{6348,49309,0},{6353,49304,0},{6352,49328,0},{6348,49334,0}, {6343,49319,0},{6343,49321,0},{6345,49333,0},{6343,49338,0},{6345,49339,0}, {6345,49354,0},{6347,49369,0},{6345,49379,0},{6347,49388,0},{6345,49391,0}, {6348,49409,0},{6352,49421,0},{6362,49434,0},{6363,49439,0},{6373,49456,0}, {6378,49459,0},{6387,49458,0},{6407,49443,0},{6422,49441,0},{6437,49416,0}, {6438,49418,0},{6440,49411,0},{6442,49418,0},{6442,49401,0},{6443,49394,0}, {6442,49386,0},{6438,49383,0},{6442,49383,0},{6445,49389,0},{6450,49389,0}, {6453,49396,0},{6450,49424,0},{6452,49434,0},{6452,49436,0},{6453,49433,0}, {6453,49428,0},{6455,49428,0},{6455,49439,0},{6462,49454,0},{6472,49458,0}, {6482,49448,0},{6487,49431,0},{6492,49421,0},{6492,49429,0},{6492,49433,0}, {6493,49438,0},{6493,49431,0},{6492,49428,0},{6493,49416,0},{6490,49414,0}, {6487,49404,0},{6478,49399,0},{6475,49381,0},{6477,49379,0},{6478,49369,0}, {6482,49364,0},{6482,49356,0},{6478,49364,0},{6477,49353,0},{6473,49343,0}, {6472,49343,0},{6475,49356,0},{6472,49348,0},{6470,49334,0},{6472,49324,0}, {6470,49329,0},{6468,49318,0},{6462,49311,0},{6452,49278,0},{6448,49274,0}, {6438,49273,0},{6437,49264,0},{6433,49258,0},{6442,49254,0},{6445,49249,0}, {6448,49249,0},{6450,49253,0},{6455,49241,0},{6455,49231,0},{6458,49233,0}, {6462,49223,0},{6465,49221,0},{6465,49214,0},{6460,49198,0},{6455,49208,0}, {6455,49216,0},{6452,49221,0},{6452,49233,0},{6448,49231,0},{6447,49224,0}, {6442,49223,0},{6440,49218,0},{6448,49208,0},{6450,49201,0},{6455,49188,0}, {6458,49154,0},{6457,49136,0},{6458,49113,0},{6457,49098,0},{6458,49109,0}, {6458,49101,0},{6448,49063,0},{6452,49069,0},{6452,49054,0},{6448,49048,0}, {6453,49043,0},{6452,49043,0},{6450,49039,0},{6447,49046,0},{6445,49044,0}, {6447,49059,0},{6445,49049,0},{6445,49034,0},{6452,48988,0},{6457,48924,0}, {6463,48901,0},{6470,48891,0},{6473,48888,0},{6478,48888,0},{6482,48891,0}, {6482,48898,0},{6483,48898,0},{6483,48894,0},{6488,48898,0},{6492,48894,0}, {6495,48884,0},{6493,48884,0},{6490,48893,0},{6495,48883,0},{6500,48866,0}, {6505,48864,0},{6508,48853,0},{6513,48844,0},{6518,48839,0},{6523,48841,0}, {6528,48848,0},{6527,48851,0},{6520,48843,0},{6515,48844,0},{6512,48861,0}, {6513,48881,0},{6518,48889,0},{6523,48888,0},{6527,48899,0},{6523,48924,0}, {6523,48931,0},{6525,48929,0},{6530,48916,0},{6532,48904,0},{6530,48899,0}, {6530,48898,0},{6537,48873,0},{6538,48843,0},{6535,48853,0},{6533,48871,0}, {6535,48853,0},{6538,48829,0},{6542,48791,0},{6545,48776,0},{6552,48766,0}, {6557,48744,0},{6558,48729,0},{6565,48723,0},{6570,48728,0},{6575,48746,0}, {6577,48751,0},{6573,48749,0},{6568,48733,0},{6565,48729,0},{6563,48733,0}, {6568,48751,0},{6572,48754,0},{6572,48776,0},{6573,48784,0},{6577,48786,0}, {6577,48781,0},{6580,48779,0},{6580,48791,0},{6583,48784,0},{6590,48808,0}, {6585,48818,0},{6588,48831,0},{6593,48849,0},{6597,48839,0},{6602,48853,0}, {6598,48849,0},{6598,48856,0},{6600,48854,0},{6607,48866,0},{6618,48909,0}, {6617,48923,0},{6615,48928,0},{6613,48921,0},{6612,48928,0},{6612,48948,0}, {6610,48956,0},{6610,48964,0},{6615,48981,0},{6615,48986,0},{6617,48984,0}, {6622,48964,0},{6622,48948,0},{6625,48949,0},{6632,48959,0},{6640,48991,0}, {6645,49019,0},{6643,49028,0},{6640,49033,0},{6647,49041,0},{6652,49063,0}, {6655,49064,0},{6660,49108,0},{6660,49143,0},{6660,49161,0},{6657,49174,0}, {6658,49151,0},{6657,49143,0},{6657,49158,0},{6652,49161,0},{6648,49159,0}, {6643,49151,0},{6640,49146,0},{6628,49151,0},{6623,49141,0},{6622,49128,0}, {6620,49126,0},{6620,49118,0},{6618,49118,0},{6620,49138,0},{6618,49138,0}, {6618,49141,0},{6622,49143,0},{6618,49146,0},{6612,49153,0},{6607,49171,0}, {6608,49186,0},{6608,49199,0},{6607,49211,0},{6607,49226,0},{6610,49241,0}, {6610,49261,0},{6607,49268,0},{6600,49269,0},{6603,49271,0},{6607,49288,0}, {6603,49299,0},{6608,49319,0},{6607,49333,0},{6603,49344,0},{6602,49339,0}, {6602,49346,0},{6598,49344,0},{6598,49356,0},{6598,49358,0},{6600,49353,0}, {6602,49353,0},{6605,49358,0},{6607,49363,0},{6608,49363,0},{6608,49358,0}, {6615,49369,0},{6625,49379,0},{6627,49388,0},{6627,49401,0},{6625,49399,0}, {6623,49403,0},{6622,49409,0},{6623,49428,0},{6613,49426,0},{6613,49418,0}, {6612,49421,0},{6613,49431,0},{6620,49436,0},{6625,49436,0},{6633,49423,0}, {6640,49381,0},{6640,49363,0},{6638,49356,0},{6637,49344,0},{6632,49344,0}, {6632,49348,0},{6628,49351,0},{6627,49344,0},{6633,49339,0},{6643,49349,0}, {6650,49349,0},{6653,49346,0},{6662,49328,0},{6672,49314,0},{6673,49286,0}, {6680,49283,0},{6687,49273,0},{6690,49273,0},{6692,49284,0},{6695,49288,0}, {6692,49294,0},{6695,49303,0},{6695,49304,0},{6682,49323,0},{6678,49334,0}, {6670,49329,0},{6665,49328,0},{6653,49348,0},{6645,49376,0},{6648,49401,0}, {6653,49416,0},{6650,49421,0},{6648,49428,0},{6643,49438,0},{6637,49458,0}, {6637,49481,0},{6638,49486,0},{6640,49513,0},{6652,49514,0},{6660,49504,0}, {6663,49504,0},{6665,49511,0},{6665,49501,0},{6662,49499,0},{6663,49488,0}, {6658,49481,0},{6660,49466,0},{6665,49458,0},{6667,49451,0},{6665,49419,0}, {6655,49409,0},{6653,49386,0},{6657,49379,0},{6658,49381,0},{6662,49366,0}, {6673,49346,0},{6677,49349,0},{6680,49348,0},{6683,49356,0},{6690,49356,0}, {6692,49364,0},{6695,49363,0},{6697,49371,0},{6695,49386,0},{6698,49386,0}, {6702,49368,0},{6700,49364,0},{6705,49351,0},{6703,49326,0},{6700,49313,0}, {6705,49311,0},{6707,49306,0},{6700,49306,0},{6698,49291,0},{6702,49289,0}, {6715,49303,0},{6717,49301,0},{6715,49293,0},{6713,49299,0},{6702,49281,0}, {6702,49271,0},{6705,49261,0},{6703,49253,0},{6705,49241,0},{6703,49241,0}, {6700,49251,0},{6700,49248,0},{6705,49221,0},{6712,49163,0},{6713,49159,0}, {6737,49153,0},{6752,49138,0},{6762,49124,0},{6772,49088,0},{6775,49086,0}, {6777,49076,0},{6783,49066,0},{6783,49059,0},{6780,49064,0},{6803,48999,0}, {6808,48978,0},{6810,48954,0},{6813,48944,0},{6822,48929,0},{6830,48908,0}, {6832,48893,0},{6835,48853,0},{6842,48891,0},{6837,48861,0},{6835,48874,0}, {6837,48883,0},{6840,48891,0},{6838,48898,0},{6842,48894,0},{6840,48904,0}, {6843,48899,0},{6847,48904,0},{6852,48906,0},{6857,48913,0},{6875,48918,0}, {6887,48913,0},{6888,48914,0},{6885,48963,0},{6888,49028,0},{6892,49073,0}, {6893,49104,0},{6900,49143,0},{6908,49166,0},{6913,49178,0},{6932,49209,0}, {6942,49218,0},{6942,49221,0},{6930,49209,0},{6935,49221,0},{6938,49224,0}, {6948,49224,0},{6952,49229,0},{6957,49229,0},{6960,49221,0},{6962,49233,0}, {6965,49229,0},{6965,49233,0},{6967,49229,0},{6968,49231,0},{6967,49238,0}, {6968,49241,0},{6970,49243,0},{6972,49241,0},{6973,49233,0},{6978,49241,0}, {6997,49284,0},{7005,49288,0},{7005,49299,0},{7010,49301,0},{7015,49314,0}, {7030,49338,0},{7032,49348,0},{7030,49353,0},{7028,49353,0},{7027,49364,0}, {7025,49366,0},{7025,49346,0},{7025,49348,0},{7023,49361,0},{7022,49351,0}, {7018,49351,0},{7017,49346,0},{7020,49336,0},{7018,49331,0},{7015,49324,0}, {7017,49351,0},{7018,49356,0},{7020,49363,0},{7020,49366,0},{7022,49363,0}, {7025,49374,0},{7025,49406,0},{7032,49433,0},{7030,49433,0},{7028,49441,0}, {7032,49438,0},{7038,49461,0},{7043,49476,0},{7038,49454,0},{7048,49489,0}, {7060,49521,0},{7058,49519,0},{7057,49524,0},{7060,49543,0},{7055,49541,0}, {7053,49544,0},{7052,49541,0},{7052,49533,0},{7048,49529,0},{7047,49516,0}, {7048,49544,0},{7032,49523,0},{7037,49539,0},{7033,49544,0},{7032,49544,0}, {7020,49559,0},{7038,49548,0},{7050,49554,0},{7047,49566,0},{7052,49586,0}, {7050,49594,0},{7053,49608,0},{7052,49593,0},{7052,49579,0},{7050,49564,0}, {7053,49556,0},{7063,49543,0},{7063,49533,0},{7060,49524,0},{7063,49526,0}, {7070,49544,0},{7070,49554,0},{7072,49551,0},{7080,49569,0},{7088,49618,0}, {7085,49599,0},{7083,49621,0},{7082,49621,0},{7080,49604,0},{7078,49591,0}, {7075,49599,0},{7077,49606,0},{7073,49604,0},{7068,49614,0},{7075,49608,0}, {7077,49611,0},{7075,49621,0},{7077,49636,0},{7078,49636,0},{7082,49628,0}, {7078,49666,0},{7082,49698,0},{7082,49703,0},{7083,49686,0},{7085,49686,0}, {7082,49713,0},{7083,49731,0},{7085,49749,0},{7095,49784,0},{7105,49809,0}, {7130,49854,0},{7140,49889,0},{7137,49898,0},{7140,49889,0},{7137,49884,0}, {7135,49876,0},{7130,49883,0},{7128,49893,0},{7127,49891,0},{7127,49913,0}, {7125,49924,0},{7122,49926,0},{7122,49931,0},{7117,49924,0},{7118,49936,0}, {7122,49941,0},{7120,49944,0},{7118,49971,0},{7117,49976,0},{7112,49981,0}, {7108,49981,0},{7103,49964,0},{7100,49963,0},{7097,49948,0},{7097,49926,0}, {7095,49934,0},{7093,49934,0},{7092,49918,0},{7092,49931,0},{7090,49928,0}, {7090,49929,0},{7090,49938,0},{7085,49943,0},{7082,49938,0},{7075,49939,0}, {7077,49946,0},{7082,49944,0},{7083,49946,0},{7083,49964,0},{7083,49971,0}, {7087,49971,0},{7083,49978,0},{7087,49983,0},{7093,49983,0},{7100,49998,0}, {7103,50008,0},{7100,50011,0},{7098,50016,0},{7103,50018,0},{7108,50008,0}, {7112,50019,0},{7108,50026,0},{7113,50024,0},{7115,50028,0},{7113,50033,0}, {7105,50033,0},{7102,50028,0},{7102,50034,0},{7112,50034,0},{7112,50039,0}, {7108,50046,0},{7110,50054,0},{7102,50076,0},{7092,50071,0},{7088,50056,0}, {7088,50068,0},{7088,50069,0},{7083,50074,0},{7082,50104,0},{7080,50111,0}, {7078,50111,0},{7078,50116,0},{7083,50133,0},{7088,50144,0},{7090,50198,0}, {7093,50216,0},{7090,50228,0},{7092,50233,0},{7090,50241,0},{7087,50244,0}, {7085,50249,0},{7088,50254,0},{7082,50266,0},{7085,50269,0},{7088,50261,0}, {7088,50271,0},{7087,50296,0},{7083,50311,0},{7082,50314,0},{7073,50293,0}, {7072,50294,0},{7070,50286,0},{7065,50286,0},{7060,50298,0},{7060,50326,0}, {7057,50328,0},{7058,50286,0},{7057,50279,0},{7057,50273,0},{7055,50274,0}, {7055,50284,0},{7055,50293,0},{7055,50311,0},{7055,50326,0},{7057,50334,0}, {7055,50363,0},{7052,50356,0},{7052,50349,0},{7050,50359,0},{7047,50339,0}, {7045,50339,0},{7043,50388,0},{7042,50403,0},{7037,50414,0},{7038,50419,0}, {7042,50414,0},{7045,50418,0},{7045,50438,0},{7047,50443,0},{7047,50449,0}, {7048,50453,0},{7047,50463,0},{7050,50458,0},{7050,50484,0},{7047,50488,0}, {7048,50494,0},{7048,50499,0},{7042,50496,0},{7045,50511,0},{7043,50524,0}, {7052,50548,0},{7048,50556,0},{7052,50566,0},{7052,50586,0},{7050,50589,0}, {7050,50588,0},{7048,50598,0},{7048,50601,0},{7050,50601,0},{7048,50619,0}, {7047,50631,0},{7042,50639,0},{7043,50644,0},{7042,50654,0},{7040,50676,0}, {7037,50684,0},{7032,50686,0},{7032,50699,0},{7037,50714,0},{7035,50726,0}, {7030,50731,0},{7032,50736,0},{7030,50738,0},{7032,50749,0},{7030,50756,0}, {7023,50756,0},{7018,50796,0},{7020,50809,0},{7017,50819,0},{7017,50838,0}, {7018,50843,0},{7017,50846,0},{7018,50848,0},{7020,50883,0},{7018,50908,0}, {7015,50928,0},{7015,50941,0},{7017,50943,0},{7013,50948,0},{7017,50948,0}, {7017,50953,0},{7008,50976,0},{7007,50976,0},{7010,50981,0},{7005,50989,0}, {7003,51003,0},{7003,51014,0},{7000,51006,0},{6998,51033,0},{6997,51039,0}, {6998,51048,0},{7000,51048,0},{6997,51059,0},{6997,51073,0},{7003,51096,0}, {7003,51119,0},{7007,51124,0},{7005,51129,0},{6998,51129,0},{7005,51134,0}, {7008,51131,0},{7007,51143,0},{7008,51148,0},{7008,51153,0},{7010,51161,0}, {7008,51168,0},{7008,51174,0},{7010,51179,0},{7012,51179,0},{7010,51184,0}, {7012,51201,0},{7005,51208,0},{7012,51208,0},{7008,51223,0},{7008,51234,0}, {7007,51238,0},{7008,51246,0},{7002,51273,0},{7000,51278,0},{6997,51276,0}, {6998,51281,0},{6997,51288,0},{6997,51284,0},{6995,51284,0},{6993,51294,0}, {6992,51294,0},{6992,51299,0},{6988,51299,0},{6988,51304,0},{6985,51309,0}, {6985,51326,0},{6980,51334,0},{6978,51339,0},{6980,51341,0},{6982,51344,0}, {6980,51348,0},{6978,51363,0},{6972,51383,0},{6963,51398,0},{6963,51411,0}, {6967,51414,0},{6968,51406,0},{6965,51434,0},{6963,51446,0},{6962,51446,0}, {6962,51453,0},{6963,51453,0},{6962,51461,0},{6960,51496,0},{6960,51509,0}, {6962,51526,0},{6962,51548,0},{6957,51578,0},{6960,51559,0},{6958,51561,0}, {6957,51576,0},{6955,51594,0},{6950,51609,0},{6950,51623,0},{6942,51639,0}, {6935,51659,0},{6928,51671,0},{6923,51676,0},{6925,51684,0},{6923,51684,0}, {6923,51691,0},{6925,51696,0},{6930,51696,0},{6928,51691,0},{6930,51696,0}, {6930,51701,0},{6923,51703,0},{6917,51714,0},{6913,51729,0},{6903,51773,0}, {6900,51798,0},{6900,51793,0},{6898,51794,0},{6897,51808,0},{6895,51811,0}, {6895,51834,0},{6892,51839,0},{6892,51848,0},{6887,51861,0},{6887,51869,0}, {6890,51876,0},{6888,51883,0},{6890,51883,0},{6892,51888,0},{6888,51916,0}, {6888,51924,0},{6883,51954,0},{6877,51964,0},{6875,51983,0},{6870,51994,0}, {6867,51996,0},{6867,52004,0},{6868,52006,0},{6865,52019,0},{6868,52014,0}, {6868,52018,0},{6873,52003,0},{6877,52001,0},{6880,51989,0},{6883,51986,0}, {6883,52003,0},{6887,51979,0},{6888,51974,0},{6893,52013,0},{6888,52019,0}, {6890,52026,0},{6888,52038,0},{6888,52041,0},{6893,52051,0},{6888,52068,0}, {6885,52073,0},{6880,52073,0},{6875,52086,0},{6872,52089,0},{6868,52104,0}, {6870,52114,0},{6877,52106,0},{6880,52096,0},{6888,52088,0},{6902,52074,0}, {6910,52083,0},{6910,52103,0},{6915,52104,0},{6917,52113,0},{6922,52114,0}, {6927,52121,0},{6928,52146,0},{6933,52149,0},{6935,52161,0},{6933,52161,0}, {6933,52166,0},{6935,52169,0},{6937,52168,0},{6938,52168,0},{6940,52181,0}, {6940,52214,0},{6942,52218,0},{6945,52228,0},{6943,52231,0},{6947,52231,0}, {6952,52239,0},{6957,52241,0},{6960,52238,0},{6965,52246,0},{6965,52258,0}, {6963,52258,0},{6965,52273,0},{6963,52283,0},{6963,52294,0},{6965,52301,0}, {6968,52303,0},{6968,52299,0},{6965,52291,0},{6968,52294,0},{6970,52291,0}, {6967,52279,0},{6968,52274,0},{6973,52283,0},{6977,52309,0},{6973,52288,0}, {6972,52294,0},{6973,52308,0},{6972,52304,0},{6968,52323,0},{6972,52326,0}, {6973,52338,0},{6977,52344,0},{6977,52353,0},{6980,52359,0},{6983,52359,0}, {6987,52373,0},{6990,52394,0},{6992,52391,0},{6995,52394,0},{6993,52413,0}, {6988,52416,0},{6985,52414,0},{6982,52418,0},{6985,52421,0},{6987,52418,0}, {6988,52419,0},{6990,52423,0},{6988,52428,0},{7000,52436,0},{7002,52443,0}, {7003,52443,0},{7003,52434,0},{7010,52446,0},{7007,52446,0},{7010,52456,0}, {7010,52459,0},{7013,52461,0},{7012,52466,0},{7008,52463,0},{7010,52471,0}, {7013,52471,0},{7013,52478,0},{7017,52481,0},{7017,52489,0},{7017,52484,0}, {7010,52483,0},{7012,52488,0},{7013,52486,0},{7013,52494,0},{7017,52496,0}, {7013,52499,0},{7013,52504,0},{7010,52503,0},{7010,52508,0},{7008,52503,0}, {7008,52514,0},{7010,52519,0},{7005,52518,0},{7012,52526,0},{7010,52529,0}, {7007,52528,0},{7010,52543,0},{7007,52538,0},{7008,52546,0},{7010,52551,0}, {7015,52551,0},{7018,52558,0},{7020,52553,0},{7022,52558,0},{7022,52563,0}, {7025,52563,0},{7027,52569,0},{7018,52578,0},{7017,52573,0},{7015,52589,0}, {7012,52586,0},{7010,52589,0},{7013,52593,0},{7012,52596,0},{7005,52589,0}, {7005,52581,0},{7002,52586,0},{6990,52536,0},{6985,52516,0},{6983,52511,0}, {6985,52506,0},{6977,52488,0},{6978,52484,0},{6970,52478,0},{6968,52458,0}, {6960,52451,0},{6960,52448,0},{6957,52443,0},{6960,52433,0},{6963,52433,0}, {6963,52418,0},{6960,52411,0},{6960,52403,0},{6957,52403,0},{6958,52394,0}, {6957,52384,0},{6958,52371,0},{6953,52371,0},{6957,52363,0},{6953,52348,0}, {6953,52336,0},{6948,52328,0},{6945,52331,0},{6945,52326,0},{6942,52326,0}, {6942,52323,0},{6938,52328,0},{6937,52326,0},{6932,52303,0},{6925,52304,0}, {6930,52298,0},{6930,52291,0},{6925,52293,0},{6923,52288,0},{6917,52288,0}, {6928,52281,0},{6928,52274,0},{6925,52269,0},{6927,52264,0},{6923,52258,0}, {6922,52253,0},{6918,52253,0},{6912,52246,0},{6910,52248,0},{6910,52253,0}, {6907,52246,0},{6898,52248,0},{6900,52243,0},{6908,52243,0},{6905,52236,0}, {6907,52228,0},{6905,52224,0},{6903,52216,0},{6898,52216,0},{6897,52211,0}, {6895,52214,0},{6892,52213,0},{6887,52204,0},{6888,52196,0},{6892,52199,0}, {6888,52189,0},{6885,52193,0},{6885,52188,0},{6880,52189,0},{6875,52204,0}, {6873,52213,0},{6872,52216,0},{6868,52233,0},{6868,52244,0},{6872,52243,0}, {6872,52221,0},{6873,52219,0},{6875,52211,0},{6878,52209,0},{6875,52219,0}, {6877,52223,0},{6880,52211,0},{6878,52203,0},{6885,52198,0},{6887,52213,0}, {6885,52218,0},{6880,52226,0},{6880,52229,0},{6882,52231,0},{6880,52243,0}, {6885,52239,0},{6885,52251,0},{6878,52264,0},{6880,52266,0},{6883,52263,0}, {6880,52288,0},{6883,52289,0},{6883,52294,0},{6887,52296,0},{6892,52281,0}, {6890,52279,0},{6888,52286,0},{6890,52276,0},{6887,52271,0},{6885,52273,0}, {6883,52268,0},{6885,52258,0},{6887,52258,0},{6888,52266,0},{6890,52256,0}, {6892,52253,0},{6893,52258,0},{6893,52268,0},{6898,52251,0},{6903,52249,0}, {6903,52253,0},{6907,52249,0},{6908,52256,0},{6908,52269,0},{6913,52279,0}, {6913,52286,0},{6923,52294,0},{6915,52294,0},{6910,52289,0},{6913,52298,0}, {6923,52304,0},{6922,52308,0},{6918,52301,0},{6918,52304,0},{6922,52316,0}, {6913,52314,0},{6923,52319,0},{6923,52328,0},{6925,52339,0},{6932,52344,0}, {6932,52348,0},{6928,52344,0},{6928,52349,0},{6940,52364,0},{6938,52356,0}, {6937,52351,0},{6940,52348,0},{6940,52341,0},{6940,52339,0},{6943,52349,0}, {6942,52353,0},{6943,52359,0},{6942,52371,0},{6945,52368,0},{6947,52371,0}, {6943,52394,0},{6940,52388,0},{6935,52388,0},{6933,52383,0},{6937,52394,0}, {6942,52396,0},{6942,52401,0},{6945,52399,0},{6945,52403,0},{6950,52404,0}, {6940,52411,0},{6950,52409,0},{6950,52413,0},{6947,52413,0},{6938,52414,0}, {6937,52404,0},{6930,52394,0},{6932,52404,0},{6937,52411,0},{6937,52416,0}, {6938,52419,0},{6950,52419,0},{6958,52411,0},{6952,52421,0},{6952,52424,0}, {6937,52423,0},{6948,52429,0},{6952,52429,0},{6958,52416,0},{6962,52423,0}, {6960,52428,0},{6957,52426,0},{6947,52433,0},{6932,52424,0},{6937,52433,0}, {6947,52439,0},{6955,52438,0},{6953,52441,0},{6942,52443,0},{6935,52431,0}, {6932,52433,0},{6940,52443,0},{6938,52446,0},{6932,52444,0},{6927,52436,0}, {6913,52434,0},{6913,52444,0},{6917,52441,0},{6927,52441,0},{6935,52456,0}, {6937,52454,0},{6940,52459,0},{6940,52468,0},{6945,52471,0},{6945,52461,0}, {6958,52491,0},{6962,52491,0},{6968,52503,0},{6970,52499,0},{6972,52521,0}, {6975,52541,0},{6978,52568,0},{6982,52576,0},{6987,52626,0},{6988,52633,0}, {6995,52639,0},{6997,52644,0},{6995,52651,0},{6995,52646,0},{6992,52646,0}, {6988,52641,0},{6985,52643,0},{6985,52623,0},{6982,52619,0},{6975,52623,0}, {6970,52621,0},{6967,52638,0},{6968,52644,0},{6972,52639,0},{6973,52639,0}, {6975,52656,0},{6987,52676,0},{6993,52696,0},{6995,52704,0},{7000,52706,0}, {7010,52699,0},{7012,52701,0},{7018,52724,0},{7018,52739,0},{7020,52749,0}, {7022,52764,0},{7023,52774,0},{7022,52784,0},{7025,52776,0},{7028,52733,0}, {7037,52724,0},{7035,52739,0},{7037,52743,0},{7040,52744,0},{7037,52733,0}, {7037,52719,0},{7038,52716,0},{7052,52723,0},{7058,52736,0},{7042,52789,0}, {7027,52819,0},{7007,52844,0},{7002,52846,0},{6997,52859,0},{6995,52856,0}, {6993,52859,0},{6990,52854,0},{6977,52866,0},{6953,52911,0},{6940,52946,0}, {6938,52959,0},{6938,52969,0},{6935,52978,0},{6932,52993,0},{6935,52999,0}, {6937,52998,0},{6938,52991,0},{6942,52991,0},{6940,52991,0},{6938,53016,0}, {6938,53023,0},{6942,53024,0},{6943,53023,0},{6945,53028,0},{6945,53021,0}, {6947,53024,0},{6947,53013,0},{6945,53009,0},{6945,53006,0},{6947,53006,0}, {6945,53001,0},{6947,52993,0},{6942,52974,0},{6947,52978,0},{6948,52981,0}, {6947,52986,0},{6950,52984,0},{6952,52989,0},{6950,53003,0},{6952,53003,0}, {6952,53008,0},{6948,53024,0},{6953,53009,0},{6955,53006,0},{6958,53014,0}, {6962,52993,0},{6962,52999,0},{6963,52994,0},{6968,52999,0},{6970,53014,0}, {6975,53029,0},{6973,53039,0},{6965,53043,0},{6968,53049,0},{6972,53049,0}, {6972,53054,0},{6975,53046,0},{6975,53034,0},{6978,53021,0},{6977,53013,0}, {6980,53008,0},{6985,53018,0},{6980,53019,0},{6980,53031,0},{6987,53034,0}, {6993,53046,0},{6997,53064,0},{6998,53066,0},{6997,53069,0},{6998,53073,0}, {7002,53068,0},{6997,53061,0},{6998,53051,0},{7002,53056,0},{7002,53053,0}, {7002,53044,0},{7000,53044,0},{7000,53038,0},{6998,53031,0},{6997,53031,0}, {6997,53024,0},{6993,53024,0},{6993,53018,0},{6993,53014,0},{6997,53018,0}, {7000,53016,0},{7008,53036,0},{7007,53039,0},{7003,53036,0},{7003,53031,0}, {7002,53034,0},{7003,53049,0},{7003,53041,0},{7007,53053,0},{7005,53056,0}, {7007,53073,0},{7002,53078,0},{7002,53083,0},{7003,53081,0},{7005,53083,0}, {7003,53093,0},{7008,53091,0},{7008,53079,0},{7010,53086,0},{7012,53081,0}, {7008,53063,0},{7010,53068,0},{7012,53061,0},{7015,53066,0},{7015,53081,0}, {7015,53084,0},{7015,53096,0},{7012,53091,0},{7007,53101,0},{7002,53098,0}, {7000,53086,0},{7000,53094,0},{6998,53093,0},{6997,53083,0},{6995,53093,0}, {6992,53093,0},{6992,53086,0},{6990,53086,0},{6988,53091,0},{6987,53091,0}, {6985,53096,0},{6978,53086,0},{6973,53086,0},{6970,53106,0},{6973,53116,0}, {6972,53126,0},{6972,53129,0},{6970,53133,0},{6967,53131,0},{6962,53116,0}, {6955,53113,0},{6947,53094,0},{6942,53094,0},{6940,53084,0},{6937,53089,0}, {6935,53103,0},{6935,53126,0},{6938,53131,0},{6935,53133,0},{6935,53138,0}, {6938,53134,0},{6940,53138,0},{6937,53148,0},{6938,53153,0},{6937,53156,0}, {6938,53161,0},{6937,53166,0},{6935,53168,0},{6938,53188,0},{6942,53198,0}, {6945,53191,0},{6948,53196,0},{6950,53209,0},{6950,53211,0},{6950,53219,0}, {6957,53223,0},{6962,53219,0},{6967,53226,0},{6975,53224,0},{6977,53221,0}, {6983,53239,0},{6980,53256,0},{6980,53261,0},{6983,53261,0},{6982,53266,0}, {6980,53291,0},{6982,53303,0},{6980,53318,0},{6982,53329,0},{6982,53343,0}, {6980,53368,0},{6977,53378,0},{6977,53391,0},{6967,53428,0},{6962,53453,0}, {6952,53474,0},{6938,53513,0},{6935,53539,0},{6933,53558,0},{6932,53573,0}, {6930,53613,0},{6927,53629,0},{6925,53653,0},{6922,53671,0},{6912,53691,0}, {6908,53709,0},{6902,53733,0},{6898,53749,0},{6895,53798,0},{6888,53821,0}, {6890,53831,0},{6890,53839,0},{6893,53836,0},{6893,53838,0},{6893,53843,0}, {6888,53853,0},{6885,53886,0},{6887,53894,0},{6888,53898,0},{6883,53914,0}, {6880,53939,0},{6882,53941,0},{6887,53924,0},{6888,53928,0},{6893,53908,0}, {6897,53903,0},{6898,53913,0},{6897,53929,0},{6892,53949,0},{6893,53953,0}, {6893,53959,0},{6897,53951,0},{6900,53943,0},{6897,53966,0},{6897,53976,0}, {6890,54004,0},{6890,54013,0},{6885,54028,0},{6887,54029,0},{6887,54038,0}, {6880,54056,0},{6875,54063,0},{6873,54078,0},{6868,54091,0},{6867,54089,0}, {6862,54096,0},{6857,54118,0},{6853,54119,0},{6852,54126,0},{6847,54129,0}, {6843,54131,0},{6842,54123,0},{6840,54126,0},{6838,54131,0},{6840,54136,0}, {6843,54139,0},{6840,54146,0},{6838,54141,0},{6832,54131,0},{6823,54134,0}, {6825,54116,0},{6823,54109,0},{6823,54099,0},{6827,54091,0},{6825,54066,0}, {6825,54054,0},{6828,54039,0},{6823,54049,0},{6818,54061,0},{6818,54053,0}, {6815,54046,0},{6818,54013,0},{6813,54019,0},{6808,54013,0},{6803,54013,0}, {6802,54024,0},{6798,54016,0},{6793,53983,0},{6790,53983,0},{6788,53984,0}, {6788,53996,0},{6788,54011,0},{6787,54008,0},{6782,54018,0},{6782,54024,0}, {6780,54026,0},{6778,54034,0},{6780,54044,0},{6782,54061,0},{6780,54069,0}, {6777,54078,0},{6778,54083,0},{6775,54091,0},{6772,54108,0},{6773,54118,0}, {6772,54139,0},{6768,54151,0},{6770,54214,0},{6767,54231,0},{6768,54251,0}, {6767,54264,0},{6768,54298,0},{6770,54303,0},{6773,54299,0},{6773,54303,0}, {6773,54316,0},{6773,54336,0},{6770,54338,0},{6768,54346,0},{6770,54349,0}, {6772,54343,0},{6773,54346,0},{6775,54344,0},{6775,54356,0},{6772,54383,0}, {6775,54379,0},{6777,54383,0},{6777,54389,0},{6773,54389,0},{6775,54396,0}, {6780,54404,0},{6783,54418,0},{6783,54421,0},{6780,54416,0},{6778,54419,0}, {6775,54416,0},{6778,54428,0},{6777,54433,0},{6780,54453,0},{6787,54463,0}, {6788,54471,0},{6788,54479,0},{6795,54496,0},{6795,54503,0},{6797,54503,0}, {6795,54513,0},{6792,54518,0},{6792,54523,0},{6797,54516,0},{6800,54519,0}, {6800,54528,0},{6795,54539,0},{6787,54536,0},{6783,54538,0},{6783,54544,0}, {6788,54543,0},{6787,54554,0},{6780,54566,0},{6778,54561,0},{6773,54574,0}, {6773,54561,0},{6772,54563,0},{6768,54583,0},{6770,54588,0},{6772,54586,0}, {6773,54586,0},{6777,54596,0},{6773,54596,0},{6773,54601,0},{6772,54629,0}, {6767,54636,0},{6757,54639,0},{6753,54644,0},{6750,54634,0},{6747,54634,0}, {6743,54638,0},{6743,54643,0},{6740,54643,0},{6742,54649,0},{6735,54654,0}, {6737,54658,0},{6745,54661,0},{6760,54663,0},{6763,54668,0},{6762,54674,0}, {6760,54678,0},{6758,54678,0},{6748,54684,0},{6735,54688,0},{6735,54693,0}, {6743,54693,0},{6745,54696,0},{6743,54701,0},{6740,54706,0},{6730,54734,0}, {6713,54749,0},{6713,54744,0},{6705,54748,0},{6708,54733,0},{6707,54728,0}, {6708,54721,0},{6702,54714,0},{6705,54703,0},{6708,54689,0},{6715,54676,0}, {6705,54683,0},{6703,54686,0},{6703,54688,0},{6707,54689,0},{6703,54694,0}, {6698,54703,0},{6695,54721,0},{6692,54724,0},{6687,54724,0},{6685,54713,0}, {6683,54719,0},{6685,54729,0},{6683,54738,0},{6678,54743,0},{6672,54741,0}, {6667,54748,0},{6673,54751,0},{6677,54748,0},{6675,54753,0},{6665,54768,0}, {6663,54764,0},{6657,54771,0},{6653,54781,0},{6655,54783,0},{6655,54784,0}, {6647,54791,0},{6643,54801,0},{6635,54811,0},{6637,54816,0},{6640,54813,0}, {6650,54794,0},{6655,54791,0},{6658,54779,0},{6670,54771,0},{6677,54756,0}, {6675,54764,0},{6677,54768,0},{6695,54759,0},{6702,54761,0},{6697,54773,0}, {6697,54776,0},{6708,54771,0},{6702,54784,0},{6692,54788,0},{6693,54776,0}, {6695,54769,0},{6693,54766,0},{6688,54773,0},{6687,54776,0},{6690,54778,0}, {6687,54783,0},{6683,54779,0},{6682,54784,0},{6685,54788,0},{6683,54789,0}, {6680,54793,0},{6682,54794,0},{6688,54788,0},{6688,54796,0},{6697,54791,0}, {6697,54794,0},{6688,54814,0},{6682,54823,0},{6682,54828,0},{6697,54813,0}, {6703,54796,0},{6707,54801,0},{6707,54811,0},{6710,54811,0},{6712,54816,0}, {6712,54806,0},{6715,54798,0},{6720,54786,0},{6732,54776,0},{6742,54764,0}, {6743,54764,0},{6740,54771,0},{6742,54773,0},{6750,54778,0},{6770,54736,0}, {6777,54734,0},{6785,54743,0},{6790,54766,0},{6793,54771,0},{6797,54759,0}, {6795,54756,0},{6798,54753,0},{6798,54744,0},{6808,54748,0},{6810,54751,0}, {6808,54756,0},{6807,54766,0},{6805,54763,0},{6805,54754,0},{6803,54756,0}, {6803,54763,0},{6802,54753,0},{6798,54758,0},{6798,54763,0},{6802,54763,0}, {6805,54768,0},{6807,54778,0},{6805,54801,0},{6813,54821,0},{6813,54824,0}, {6808,54824,0},{6810,54834,0},{6808,54839,0},{6812,54841,0},{6810,54859,0}, {6815,54861,0},{6822,54856,0},{6822,54858,0},{6822,54861,0},{6822,54868,0}, {6820,54866,0},{6817,54871,0},{6822,54873,0},{6825,54874,0},{6818,54889,0}, {6815,54893,0},{6818,54896,0},{6818,54901,0},{6823,54886,0},{6830,54894,0}, {6833,54889,0},{6835,54893,0},{6835,54903,0},{6840,54914,0},{6837,54924,0}, {6840,54931,0},{6840,54938,0},{6842,54939,0},{6840,54944,0},{6842,54951,0}, {6845,54954,0},{6842,54958,0},{6842,54963,0},{6848,54966,0},{6855,54959,0}, {6863,54971,0},{6863,54963,0},{6862,54958,0},{6863,54948,0},{6862,54933,0}, {6860,54929,0},{6852,54881,0},{6852,54894,0},{6850,54881,0},{6847,54886,0}, {6845,54883,0},{6847,54878,0},{6847,54873,0},{6842,54876,0},{6842,54886,0}, {6840,54888,0},{6835,54879,0},{6830,54883,0},{6828,54881,0},{6830,54876,0}, {6835,54871,0},{6835,54864,0},{6837,54864,0},{6842,54856,0},{6837,54856,0}, {6838,54843,0},{6837,54834,0},{6833,54833,0},{6830,54823,0},{6827,54823,0}, {6827,54809,0},{6832,54803,0},{6832,54788,0},{6835,54779,0},{6833,54763,0}, {6833,54753,0},{6827,54748,0},{6823,54761,0},{6820,54763,0},{6818,54774,0}, {6817,54776,0},{6818,54758,0},{6817,54749,0},{6815,54746,0},{6815,54734,0}, {6817,54738,0},{6817,54736,0},{6817,54716,0},{6812,54699,0},{6813,54693,0}, {6817,54696,0},{6817,54699,0},{6813,54699,0},{6817,54703,0},{6823,54701,0}, {6822,54696,0},{6818,54696,0},{6818,54691,0},{6828,54696,0},{6830,54691,0}, {6830,54686,0},{6825,54678,0},{6825,54666,0},{6823,54664,0},{6827,54654,0}, {6830,54663,0},{6835,54663,0},{6840,54678,0},{6860,54701,0},{6862,54708,0}, {6865,54761,0},{6868,54783,0},{6870,54806,0},{6873,54818,0},{6882,54854,0}, {6882,54871,0},{6885,54878,0},{6890,54909,0},{6893,54914,0},{6888,54941,0}, {6888,54956,0},{6872,54989,0},{6865,54981,0},{6852,54996,0},{6852,55003,0}, {6847,55004,0},{6850,54994,0},{6847,54989,0},{6845,54983,0},{6842,54983,0}, {6842,55003,0},{6837,55001,0},{6833,55006,0},{6825,55031,0},{6827,55036,0}, {6830,55028,0},{6832,55036,0},{6832,55043,0},{6835,55046,0},{6830,55053,0}, {6827,55049,0},{6825,55041,0},{6823,55043,0},{6822,55046,0},{6823,55051,0}, {6827,55054,0},{6825,55056,0},{6823,55076,0},{6813,55069,0},{6813,55076,0}, {6808,55076,0},{6807,55086,0},{6803,55086,0},{6803,55099,0},{6805,55106,0}, {6802,55119,0},{6805,55136,0},{6802,55149,0},{6803,55161,0},{6807,55166,0}, {6805,55176,0},{6807,55181,0},{6812,55181,0},{6817,55194,0},{6812,55203,0}, {6808,55198,0},{6803,55199,0},{6800,55199,0},{6800,55206,0},{6797,55211,0}, {6795,55223,0},{6792,55226,0},{6793,55239,0},{6782,55256,0},{6778,55289,0}, {6773,55303,0},{6772,55304,0},{6773,55311,0},{6768,55313,0},{6770,55316,0}, {6773,55314,0},{6777,55321,0},{6775,55331,0},{6777,55338,0},{6778,55338,0}, {6778,55343,0},{6775,55344,0},{6775,55351,0},{6770,55354,0},{6773,55361,0}, {6768,55369,0},{6768,55381,0},{6770,55388,0},{6770,55396,0},{6772,55391,0}, {6773,55391,0},{6772,55398,0},{6773,55403,0},{6772,55411,0},{6777,55413,0}, {6775,55418,0},{6778,55426,0},{6778,55428,0},{6773,55426,0},{6775,55446,0}, {6777,55446,0},{6782,55444,0},{6782,55449,0},{6778,55453,0},{6782,55458,0}, {6782,55464,0},{6785,55466,0},{6783,55473,0},{6783,55478,0},{6780,55478,0}, {6785,55496,0},{6785,55518,0},{6782,55528,0},{6782,55544,0},{6780,55554,0}, {6782,55558,0},{6782,55568,0},{6778,55573,0},{6780,55578,0},{6780,55586,0}, {6777,55588,0},{6780,55591,0},{6777,55598,0},{6777,55606,0},{6770,55614,0}, {6773,55624,0},{6772,55638,0},{6770,55643,0},{6775,55646,0},{6775,55663,0}, {6780,55666,0},{6778,55676,0},{6780,55701,0},{6787,55691,0},{6787,55683,0}, {6795,55664,0},{6807,55663,0},{6807,55673,0},{6810,55678,0},{6790,55713,0}, {6775,55728,0},{6775,55738,0},{6770,55743,0},{6768,55756,0},{6765,55763,0}, {6763,55771,0},{6760,55779,0},{6762,55796,0},{6767,55808,0},{6762,55816,0}, {6767,55818,0},{6767,55829,0},{6772,55821,0},{6772,55814,0},{6778,55824,0}, {6793,55813,0},{6788,55808,0},{6787,55799,0},{6788,55794,0},{6793,55789,0}, {6802,55768,0},{6797,55764,0},{6798,55759,0},{6797,55751,0},{6795,55744,0}, {6792,55741,0},{6795,55734,0},{6792,55731,0},{6783,55729,0},{6787,55718,0}, {6792,55714,0},{6800,55696,0},{6807,55691,0},{6813,55678,0},{6815,55678,0}, {6813,55683,0},{6818,55689,0},{6813,55693,0},{6810,55693,0},{6808,55696,0}, {6810,55703,0},{6817,55704,0},{6818,55698,0},{6820,55686,0},{6823,55681,0}, {6823,55688,0},{6825,55688,0},{6830,55676,0},{6837,55664,0},{6837,55676,0}, {6833,55684,0},{6837,55683,0},{6835,55688,0},{6837,55689,0},{6840,55683,0}, {6842,55683,0},{6837,55694,0},{6837,55699,0},{6830,55716,0},{6833,55721,0}, {6832,55729,0},{6837,55726,0},{6833,55744,0},{6838,55746,0},{6837,55759,0}, {6837,55761,0},{6840,55758,0},{6842,55746,0},{6845,55746,0},{6850,55734,0}, {6853,55736,0},{6853,55746,0},{6855,55751,0},{6852,55766,0},{6845,55773,0}, {6842,55783,0},{6842,55786,0},{6845,55784,0},{6845,55774,0},{6850,55779,0}, {6850,55798,0},{6847,55808,0},{6843,55814,0},{6838,55826,0},{6838,55819,0}, {6837,55819,0},{6835,55836,0},{6828,55836,0},{6830,55831,0},{6828,55828,0}, {6827,55828,0},{6827,55834,0},{6823,55844,0},{6827,55856,0},{6828,55856,0}, {6828,55869,0},{6827,55869,0},{6825,55874,0},{6822,55866,0},{6818,55873,0}, {6825,55874,0},{6832,55894,0},{6827,55889,0},{6820,55884,0},{6813,55873,0}, {6812,55874,0},{6810,55868,0},{6808,55868,0},{6807,55856,0},{6803,55854,0}, {6802,55859,0},{6802,55868,0},{6805,55871,0},{6807,55874,0},{6803,55883,0}, {6803,55891,0},{6808,55888,0},{6808,55881,0},{6815,55889,0},{6820,55906,0}, {6825,55936,0},{6830,55946,0},{6815,55928,0},{6810,55934,0},{6782,55914,0}, {6773,55918,0},{6770,55914,0},{6768,55916,0},{6770,55919,0},{6762,55918,0}, {6763,55909,0},{6770,55904,0},{6760,55903,0},{6757,55898,0},{6755,55889,0}, {6753,55893,0},{6747,55889,0},{6750,55894,0},{6747,55899,0},{6745,55898,0}, {6743,55903,0},{6745,55906,0},{6742,55916,0},{6743,55919,0},{6747,55926,0}, {6743,55929,0},{6733,55919,0},{6732,55913,0},{6725,55911,0},{6725,55921,0}, {6725,55923,0},{6722,55924,0},{6725,55934,0},{6728,55943,0},{6728,55946,0}, {6738,55963,0},{6733,55968,0},{6733,55973,0},{6738,55976,0},{6735,55984,0}, {6730,55979,0},{6717,55953,0},{6718,55961,0},{6723,55971,0},{6720,55971,0}, {6722,55981,0},{6720,55988,0},{6713,55989,0},{6715,55993,0},{6720,55993,0}, {6715,55998,0},{6712,55999,0},{6707,55994,0},{6703,56003,0},{6697,56001,0}, {6693,55983,0},{6695,55973,0},{6698,55976,0},{6698,55974,0},{6695,55953,0}, {6695,55943,0},{6700,55941,0},{6702,55936,0},{6707,55941,0},{6702,55931,0}, {6697,55934,0},{6695,55924,0},{6697,55921,0},{6698,55924,0},{6698,55923,0}, {6698,55918,0},{6700,55908,0},{6705,55909,0},{6707,55906,0},{6707,55899,0}, {6708,55898,0},{6707,55891,0},{6703,55894,0},{6700,55896,0},{6697,55908,0}, {6692,55913,0},{6690,55921,0},{6683,55926,0},{6675,55951,0},{6665,55958,0}, {6658,55954,0},{6665,55964,0},{6668,55973,0},{6673,55971,0},{6673,55968,0}, {6670,55969,0},{6667,55964,0},{6668,55959,0},{6673,55958,0},{6682,55946,0}, {6685,55936,0},{6690,55928,0},{6693,55928,0},{6695,55934,0},{6692,55948,0}, {6693,55953,0},{6693,55959,0},{6690,55964,0},{6692,55976,0},{6690,55984,0}, {6693,55993,0},{6693,55994,0},{6688,56004,0},{6693,56011,0},{6697,56014,0}, {6698,56013,0},{6700,56006,0},{6703,56008,0},{6707,56001,0},{6710,56004,0}, {6715,56001,0},{6722,56009,0},{6727,56011,0},{6727,56018,0},{6728,56019,0}, {6735,56003,0},{6743,55998,0},{6745,55994,0},{6750,56003,0},{6753,56004,0}, {6763,55989,0},{6765,55981,0},{6768,55978,0},{6770,55966,0},{6773,55964,0}, {6778,55973,0},{6778,55978,0},{6782,55983,0},{6787,55983,0},{6790,55978,0}, {6802,55994,0},{6805,55993,0},{6807,55989,0},{6807,56001,0},{6807,56008,0}, {6808,56011,0},{6808,56014,0},{6805,56013,0},{6803,56009,0},{6807,56018,0}, {6808,56026,0},{6805,56034,0},{6803,56049,0},{6807,56064,0},{6810,56066,0}, {6815,56078,0},{6827,56116,0},{6837,56114,0},{6842,56124,0},{6847,56139,0}, {6852,56169,0},{6855,56176,0},{6855,56181,0},{6860,56183,0},{6863,56199,0}, {6862,56179,0},{6863,56171,0},{6862,56161,0},{6872,56169,0},{6875,56166,0}, {6877,56173,0},{6880,56173,0},{6885,56179,0},{6890,56171,0},{6897,56171,0}, {6897,56163,0},{6897,56149,0},{6900,56153,0},{6900,56146,0},{6907,56156,0}, {6903,56143,0},{6903,56146,0},{6900,56141,0},{6897,56143,0},{6890,56129,0}, {6887,56129,0},{6887,56133,0},{6885,56128,0},{6883,56133,0},{6885,56138,0}, {6888,56143,0},{6885,56143,0},{6888,56154,0},{6877,56128,0},{6875,56114,0}, {6875,56111,0},{6872,56094,0},{6873,56089,0},{6872,56084,0},{6875,56079,0}, {6875,56073,0},{6888,56081,0},{6890,56078,0},{6892,56079,0},{6897,56076,0}, {6897,56083,0},{6897,56088,0},{6893,56089,0},{6897,56096,0},{6902,56101,0}, {6903,56106,0},{6903,56114,0},{6905,56121,0},{6908,56118,0},{6910,56119,0}, {6915,56136,0},{6912,56113,0},{6915,56103,0},{6925,56106,0},{6927,56109,0}, {6930,56104,0},{6932,56108,0},{6937,56134,0},{6935,56146,0},{6935,56148,0}, {6935,56156,0},{6940,56161,0},{6945,56179,0},{6943,56183,0},{6932,56161,0}, {6932,56156,0},{6925,56148,0},{6927,56154,0},{6922,56148,0},{6922,56149,0}, {6922,56154,0},{6918,56151,0},{6917,56153,0},{6925,56173,0},{6928,56176,0}, {6932,56189,0},{6935,56193,0},{6938,56199,0},{6935,56186,0},{6937,56183,0}, {6937,56178,0},{6948,56193,0},{6953,56178,0},{6952,56164,0},{6948,56158,0}, {6948,56154,0},{6948,56151,0},{6943,56146,0},{6943,56121,0},{6945,56106,0}, {6948,56099,0},{6955,56086,0},{6965,56079,0},{6963,56073,0},{6968,56073,0}, {6967,56061,0},{6962,56063,0},{6957,56053,0},{6958,56041,0},{6960,56039,0}, {6960,56036,0},{6962,56034,0},{6962,56026,0},{6962,56021,0},{6968,56001,0}, {6968,55996,0},{6973,55978,0},{6978,55971,0},{6978,55963,0},{6973,55958,0}, {6977,55953,0},{6978,55954,0},{6978,55958,0},{6980,55956,0},{6980,55951,0}, {6977,55949,0},{6980,55943,0},{6978,55939,0},{6980,55936,0},{6983,55929,0}, {6987,55916,0},{6988,55921,0},{6987,55924,0},{6987,55928,0},{6990,55924,0}, {6992,55928,0},{6992,55924,0},{6995,55926,0},{6997,55918,0},{6997,55911,0}, {7013,55883,0},{7023,55879,0},{7032,55881,0},{7042,55893,0},{7042,55903,0}, {7048,55904,0},{7057,55911,0},{7053,55918,0},{7053,55921,0},{7057,55923,0}, {7058,55929,0},{7055,55944,0},{7053,55956,0},{7053,55958,0},{7055,55956,0}, {7058,55938,0},{7062,55929,0},{7065,55931,0},{7072,55954,0},{7070,55946,0}, {7065,55924,0},{7062,55919,0},{7068,55898,0},{7072,55894,0},{7073,55893,0}, {7080,55874,0},{7095,55884,0},{7103,55886,0},{7105,55894,0},{7108,55899,0}, {7112,55894,0},{7108,55894,0},{7108,55888,0},{7113,55879,0},{7117,55891,0}, {7115,55898,0},{7120,55889,0},{7125,55893,0},{7128,55886,0},{7130,55893,0}, {7130,55906,0},{7138,55916,0},{7142,55931,0},{7138,55946,0},{7135,55949,0}, {7128,55969,0},{7128,55983,0},{7132,55984,0},{7135,55978,0},{7135,55988,0}, {7137,55993,0},{7143,55981,0},{7152,55998,0},{7148,55986,0},{7152,55954,0}, {7155,55941,0},{7158,55948,0},{7162,55946,0},{7163,55964,0},{7167,55969,0}, {7167,55974,0},{7172,55986,0},{7172,56009,0},{7177,56008,0},{7183,56013,0}, {7185,56048,0},{7183,56064,0},{7187,56074,0},{7183,56061,0},{7185,56049,0}, {7183,56016,0},{7187,56011,0},{7195,56014,0},{7198,56041,0},{7200,56079,0}, {7198,56088,0},{7195,56088,0},{7195,56096,0},{7192,56098,0},{7190,56086,0}, {7188,56091,0},{7185,56089,0},{7185,56079,0},{7182,56071,0},{7178,56076,0}, {7175,56074,0},{7175,56083,0},{7182,56088,0},{7178,56091,0},{7182,56096,0}, {7180,56101,0},{7175,56096,0},{7167,56094,0},{7178,56116,0},{7175,56121,0}, {7178,56133,0},{7175,56139,0},{7175,56148,0},{7178,56156,0},{7177,56163,0}, {7175,56166,0},{7172,56166,0},{7165,56154,0},{7157,56174,0},{7153,56194,0}, {7150,56199,0},{7147,56213,0},{7137,56221,0},{7137,56231,0},{7133,56239,0}, {7132,56236,0},{7128,56243,0},{7122,56243,0},{7115,56251,0},{7107,56248,0}, {7103,56251,0},{7090,56246,0},{7085,56251,0},{7083,56241,0},{7085,56239,0}, {7088,56233,0},{7087,56233,0},{7082,56241,0},{7080,56254,0},{7077,56268,0}, {7075,56268,0},{7073,56271,0},{7072,56264,0},{7072,56273,0},{7067,56268,0}, {7067,56293,0},{7063,56303,0},{7062,56306,0},{7058,56303,0},{7057,56306,0}, {7062,56311,0},{7058,56319,0},{7057,56319,0},{7057,56311,0},{7055,56309,0}, {7050,56318,0},{7048,56308,0},{7047,56321,0},{7047,56324,0},{7043,56323,0}, {7043,56329,0},{7040,56333,0},{7038,56336,0},{7032,56336,0},{7030,56328,0}, {7030,56336,0},{7028,56336,0},{7025,56341,0},{7030,56344,0},{7030,56349,0}, {7035,56346,0},{7037,56351,0},{7033,56358,0},{7037,56363,0},{7035,56366,0}, {7032,56368,0},{7030,56363,0},{7020,56366,0},{7023,56373,0},{7017,56384,0}, {7015,56384,0},{7013,56376,0},{7013,56354,0},{7012,56341,0},{7013,56333,0}, {7017,56323,0},{7018,56313,0},{7025,56308,0},{7023,56306,0},{7023,56299,0}, {7022,56309,0},{7018,56308,0},{7017,56288,0},{7017,56294,0},{7015,56298,0}, {7013,56293,0},{7008,56288,0},{7008,56278,0},{7007,56284,0},{7005,56288,0}, {7008,56293,0},{7008,56309,0},{7008,56328,0},{7005,56336,0},{7002,56343,0}, {6998,56333,0},{6998,56329,0},{6990,56314,0},{6990,56309,0},{6988,56311,0}, {6983,56293,0},{6982,56289,0},{6980,56281,0},{6977,56279,0},{6977,56274,0}, {6978,56271,0},{6977,56271,0},{6970,56249,0},{6970,56283,0},{6970,56269,0}, {6967,56263,0},{6968,56251,0},{6968,56244,0},{6967,56244,0},{6965,56269,0}, {6967,56273,0},{6970,56286,0},{6968,56296,0},{6970,56299,0},{6970,56303,0}, {6967,56299,0},{6967,56308,0},{6963,56318,0},{6962,56328,0},{6963,56306,0}, {6955,56324,0},{6953,56336,0},{6948,56356,0},{6952,56356,0},{6953,56364,0}, {6955,56363,0},{6955,56371,0},{6958,56378,0},{6962,56376,0},{6965,56386,0}, {6967,56388,0},{6967,56399,0},{6965,56403,0},{6965,56408,0},{6963,56411,0}, {6965,56416,0},{6965,56419,0},{6963,56419,0},{6963,56426,0},{6962,56426,0}, {6962,56414,0},{6955,56403,0},{6953,56384,0},{6952,56379,0},{6950,56381,0}, {6953,56389,0},{6952,56403,0},{6953,56404,0},{6957,56416,0},{6952,56426,0}, {6953,56436,0},{6952,56439,0},{6953,56448,0},{6948,56448,0},{6948,56461,0}, {6953,56464,0},{6950,56488,0},{6945,56499,0},{6945,56506,0},{6943,56496,0}, {6945,56489,0},{6942,56481,0},{6943,56474,0},{6945,56474,0},{6945,56466,0}, {6942,56473,0},{6942,56478,0},{6938,56466,0},{6940,56463,0},{6937,56456,0}, {6925,56454,0},{6925,56443,0},{6927,56446,0},{6927,56439,0},{6930,56444,0}, {6927,56429,0},{6928,56426,0},{6930,56436,0},{6935,56441,0},{6930,56428,0}, {6928,56416,0},{6935,56391,0},{6923,56426,0},{6922,56434,0},{6915,56446,0}, {6908,56469,0},{6900,56464,0},{6898,56476,0},{6893,56478,0},{6892,56473,0}, {6892,56483,0},{6887,56493,0},{6885,56488,0},{6885,56494,0},{6883,56493,0}, {6883,56483,0},{6880,56476,0},{6882,56493,0},{6880,56489,0},{6878,56491,0}, {6878,56484,0},{6875,56483,0},{6870,56488,0},{6867,56486,0},{6862,56479,0}, {6860,56486,0},{6857,56483,0},{6853,56489,0},{6845,56476,0},{6842,56481,0}, {6837,56504,0},{6833,56488,0},{6835,56501,0},{6833,56504,0},{6830,56504,0}, {6823,56511,0},{6823,56516,0},{6825,56524,0},{6832,56519,0},{6835,56533,0}, {6840,56538,0},{6843,56536,0},{6845,56546,0},{6847,56544,0},{6848,56549,0}, {6853,56553,0},{6853,56556,0},{6855,56544,0},{6860,56541,0},{6867,56546,0}, {6867,56553,0},{6872,56556,0},{6867,56561,0},{6862,56559,0},{6865,56564,0}, {6870,56563,0},{6882,56568,0},{6883,56563,0},{6885,56564,0},{6895,56561,0}, {6902,56566,0},{6912,56588,0},{6918,56596,0},{6922,56598,0},{6925,56604,0}, {6928,56623,0},{6923,56641,0},{6915,56649,0},{6910,56658,0},{6892,56716,0}, {6877,56739,0},{6865,56744,0},{6860,56741,0},{6848,56748,0},{6847,56753,0}, {6843,56753,0},{6840,56758,0},{6833,56758,0},{6825,56751,0},{6820,56743,0}, {6823,56736,0},{6823,56719,0},{6837,56716,0},{6832,56706,0},{6828,56696,0}, {6812,56708,0},{6807,56703,0},{6805,56703,0},{6803,56698,0},{6780,56709,0}, {6773,56719,0},{6768,56719,0},{6765,56724,0},{6762,56739,0},{6740,56776,0}, {6737,56788,0},{6727,56791,0},{6727,56801,0},{6725,56799,0},{6718,56786,0}, {6712,56784,0},{6717,56793,0},{6718,56799,0},{6717,56804,0},{6710,56806,0}, {6712,56808,0},{6722,56813,0},{6722,56818,0},{6723,56819,0},{6722,56824,0}, {6718,56824,0},{6722,56829,0},{6725,56831,0},{6723,56836,0},{6725,56839,0}, {6728,56836,0},{6730,56836,0},{6732,56831,0},{6735,56828,0},{6735,56834,0}, {6732,56839,0},{6735,56839,0},{6740,56849,0},{6742,56856,0},{6742,56859,0}, {6735,56871,0},{6740,56874,0},{6740,56876,0},{6735,56876,0},{6735,56884,0}, {6743,56883,0},{6747,56889,0},{6750,56886,0},{6760,56891,0},{6768,56884,0}, {6783,56899,0},{6795,56923,0},{6802,56923,0},{6802,56926,0},{6798,56926,0}, {6805,56946,0},{6810,56944,0},{6813,56951,0},{6818,56948,0},{6818,56953,0}, {6822,56958,0},{6823,56951,0},{6830,56956,0},{6832,56951,0},{6833,56958,0}, {6840,56964,0},{6843,56961,0},{6845,56969,0},{6847,56961,0},{6850,56964,0}, {6862,56961,0},{6873,56969,0},{6875,56973,0},{6873,56981,0},{6873,56988,0}, {6877,56989,0},{6878,56979,0},{6878,56984,0},{6877,56999,0},{6873,56998,0}, {6872,57013,0},{6872,57014,0},{6875,57009,0},{6875,57013,0},{6875,57023,0}, {6875,57041,0},{6873,57058,0},{6877,57061,0},{6882,57053,0},{6880,57036,0}, {6882,57028,0},{6883,57019,0},{6887,57018,0},{6888,57036,0},{6890,57029,0}, {6893,57036,0},{6893,57024,0},{6895,57023,0},{6895,57039,0},{6893,57054,0}, {6895,57056,0},{6898,57043,0},{6900,57038,0},{6902,57041,0},{6900,57051,0}, {6902,57051,0},{6903,57054,0},{6902,57059,0},{6900,57078,0},{6902,57083,0}, {6903,57063,0},{6908,57059,0},{6907,57048,0},{6908,57041,0},{6912,57039,0}, {6912,57034,0},{6913,57039,0},{6915,57036,0},{6912,57024,0},{6915,57026,0}, {6917,57036,0},{6917,57019,0},{6915,57018,0},{6913,57014,0},{6915,57006,0}, {6917,57006,0},{6918,57016,0},{6920,56998,0},{6922,56998,0},{6927,56989,0}, {6932,56986,0},{6930,56996,0},{6932,57003,0},{6933,56991,0},{6937,56993,0}, {6940,56986,0},{6942,56989,0},{6942,56998,0},{6945,56994,0},{6943,57003,0}, {6947,56996,0},{6947,56993,0},{6943,56988,0},{6945,56983,0},{6952,56983,0}, {6955,56989,0},{6957,56988,0},{6957,56998,0},{6963,56983,0},{6965,56981,0}, {6970,56993,0},{6973,56993,0},{6977,56984,0},{6978,56994,0},{6978,56998,0}, {6975,56996,0},{6978,57003,0},{6982,56999,0},{6983,56978,0},{6987,56979,0}, {6985,56999,0},{6977,57029,0},{6980,57031,0},{6982,57049,0},{6985,57048,0}, {6983,57061,0},{6987,57081,0},{6985,57101,0},{6983,57108,0},{6982,57123,0}, {6978,57126,0},{6975,57139,0},{6970,57163,0},{6968,57201,0},{6970,57211,0}, {6968,57236,0},{6968,57243,0},{6968,57269,0},{6970,57268,0},{6968,57278,0}, {6965,57286,0},{6963,57309,0},{6962,57296,0},{6963,57289,0},{6965,57278,0}, {6963,57274,0},{6962,57276,0},{6962,57271,0},{6958,57281,0},{6958,57261,0}, {6957,57274,0},{6950,57288,0},{6952,57273,0},{6952,57238,0},{6955,57213,0}, {6953,57206,0},{6950,57258,0},{6940,57313,0},{6938,57313,0},{6938,57306,0}, {6940,57298,0},{6930,57321,0},{6928,57321,0},{6928,57311,0},{6927,57313,0}, {6925,57308,0},{6923,57311,0},{6925,57333,0},{6927,57331,0},{6927,57336,0}, {6927,57366,0},{6923,57376,0},{6920,57386,0},{6920,57394,0},{6920,57399,0}, {6918,57403,0},{6908,57409,0},{6907,57389,0},{6900,57379,0},{6898,57374,0}, {6898,57368,0},{6895,57364,0},{6890,57338,0},{6887,57331,0},{6892,57354,0}, {6890,57358,0},{6890,57369,0},{6887,57376,0},{6883,57379,0},{6887,57388,0}, {6888,57394,0},{6887,57398,0},{6877,57413,0},{6875,57409,0},{6863,57409,0}, {6850,57373,0},{6852,57354,0},{6847,57353,0},{6845,57344,0},{6842,57339,0}, {6843,57334,0},{6850,57328,0},{6853,57311,0},{6852,57311,0},{6848,57318,0}, {6845,57314,0},{6848,57291,0},{6853,57281,0},{6852,57274,0},{6850,57273,0}, {6848,57278,0},{6845,57288,0},{6843,57281,0},{6843,57271,0},{6840,57273,0}, {6840,57286,0},{6835,57301,0},{6832,57301,0},{6832,57288,0},{6830,57288,0}, {6827,57298,0},{6828,57309,0},{6823,57309,0},{6817,57301,0},{6815,57304,0}, {6812,57318,0},{6815,57326,0},{6822,57331,0},{6820,57338,0},{6812,57333,0}, {6810,57324,0},{6808,57328,0},{6800,57319,0},{6790,57326,0},{6785,57339,0}, {6782,57343,0},{6780,57356,0},{6778,57353,0},{6777,57353,0},{6773,57366,0}, {6767,57376,0},{6762,57393,0},{6747,57411,0},{6743,57413,0},{6738,57406,0}, {6730,57401,0},{6708,57394,0},{6707,57393,0},{6705,57386,0},{6700,57386,0}, {6698,57383,0},{6700,57374,0},{6700,57371,0},{6697,57364,0},{6700,57353,0}, {6697,57338,0},{6692,57331,0},{6690,57334,0},{6685,57328,0},{6683,57328,0}, {6677,57318,0},{6672,57321,0},{6673,57301,0},{6672,57298,0},{6670,57298,0}, {6667,57289,0},{6665,57288,0},{6662,57281,0},{6657,57276,0},{6655,57234,0}, {6650,57234,0},{6647,57231,0},{6647,57224,0},{6640,57213,0},{6635,57196,0}, {6635,57186,0},{6635,57178,0},{6637,57179,0},{6640,57171,0},{6643,57173,0}, {6643,57176,0},{6638,57181,0},{6640,57183,0},{6648,57171,0},{6652,57169,0}, {6655,57151,0},{6660,57146,0},{6657,57141,0},{6658,57138,0},{6670,57134,0}, {6670,57138,0},{6670,57144,0},{6665,57146,0},{6668,57151,0},{6672,57141,0}, {6677,57141,0},{6677,57144,0},{6682,57148,0},{6688,57144,0},{6682,57141,0}, {6678,57131,0},{6677,57133,0},{6675,57126,0},{6672,57126,0},{6670,57123,0}, {6673,57106,0},{6675,57104,0},{6678,57109,0},{6680,57096,0},{6682,57093,0}, {6683,57113,0},{6687,57098,0},{6690,57094,0},{6692,57098,0},{6693,57088,0}, {6698,57078,0},{6697,57094,0},{6697,57099,0},{6703,57053,0},{6707,57044,0}, {6705,57043,0},{6703,57046,0},{6703,57043,0},{6700,57053,0},{6698,57049,0}, {6700,57058,0},{6698,57073,0},{6697,57031,0},{6692,57014,0},{6690,57021,0}, {6687,57013,0},{6683,57024,0},{6685,57029,0},{6685,57041,0},{6690,57046,0}, {6692,57036,0},{6692,57048,0},{6695,57051,0},{6695,57063,0},{6693,57063,0}, {6693,57074,0},{6692,57074,0},{6690,57079,0},{6690,57061,0},{6687,57078,0}, {6682,57086,0},{6685,57069,0},{6683,57068,0},{6682,57074,0},{6682,57084,0}, {6678,57091,0},{6677,57104,0},{6672,57091,0},{6670,57101,0},{6668,57104,0}, {6670,57111,0},{6668,57121,0},{6665,57121,0},{6658,57114,0},{6643,57146,0}, {6632,57149,0},{6630,57158,0},{6627,57159,0},{6622,57168,0},{6618,57166,0}, {6615,57151,0},{6620,57158,0},{6622,57156,0},{6620,57139,0},{6622,57138,0}, {6627,57123,0},{6630,57121,0},{6632,57116,0},{6630,57104,0},{6628,57104,0}, {6628,57099,0},{6637,57093,0},{6638,57089,0},{6638,57084,0},{6640,57084,0}, {6633,57073,0},{6622,57096,0},{6615,57099,0},{6617,57089,0},{6620,57081,0}, {6622,57073,0},{6620,57063,0},{6627,57049,0},{6625,57038,0},{6627,57033,0}, {6628,57028,0},{6632,57024,0},{6627,57018,0},{6627,57013,0},{6632,57006,0}, {6648,57001,0},{6658,56988,0},{6657,56978,0},{6650,56951,0},{6652,56948,0}, {6650,56923,0},{6652,56914,0},{6652,56908,0},{6655,56903,0},{6652,56898,0}, {6655,56879,0},{6655,56876,0},{6652,56878,0},{6650,56874,0},{6653,56859,0}, {6652,56858,0},{6643,56873,0},{6645,56856,0},{6643,56854,0},{6632,56873,0}, {6628,56903,0},{6618,56944,0},{6615,56946,0},{6610,56934,0},{6608,56938,0}, {6603,56939,0},{6598,56924,0},{6598,56916,0},{6593,56913,0},{6590,56903,0}, {6590,56894,0},{6580,56886,0},{6578,56891,0},{6575,56891,0},{6567,56881,0}, {6567,56873,0},{6565,56868,0},{6555,56853,0},{6553,56838,0},{6552,56838,0}, {6548,56834,0},{6548,56828,0},{6545,56824,0},{6543,56824,0},{6542,56829,0}, {6540,56828,0},{6540,56819,0},{6537,56814,0},{6532,56796,0},{6533,56766,0}, {6532,56749,0},{6535,56731,0},{6540,56714,0},{6550,56703,0},{6558,56679,0}, {6560,56671,0},{6563,56653,0},{6563,56678,0},{6562,56691,0},{6563,56694,0}, {6568,56658,0},{6570,56651,0},{6570,56646,0},{6568,56643,0},{6568,56638,0}, {6573,56624,0},{6578,56619,0},{6582,56604,0},{6583,56603,0},{6587,56593,0}, {6587,56589,0},{6585,56588,0},{6585,56584,0},{6588,56584,0},{6593,56569,0}, {6595,56536,0},{6592,56548,0},{6587,56563,0},{6583,56563,0},{6582,56559,0}, {6588,56529,0},{6587,56509,0},{6587,56494,0},{6588,56493,0},{6590,56496,0}, {6590,56513,0},{6592,56513,0},{6590,56479,0},{6592,56448,0},{6595,56424,0}, {6595,56418,0},{6597,56404,0},{6595,56386,0},{6588,56403,0},{6588,56409,0}, {6580,56434,0},{6582,56436,0},{6590,56424,0},{6592,56428,0},{6588,56463,0}, {6588,56481,0},{6578,56539,0},{6572,56561,0},{6563,56578,0},{6560,56589,0}, {6550,56596,0},{6543,56619,0},{6533,56631,0},{6530,56663,0},{6532,56671,0}, {6530,56679,0},{6527,56699,0},{6528,56724,0},{6527,56729,0},{6528,56741,0}, {6527,56759,0},{6527,56763,0},{6528,56763,0},{6528,56776,0},{6527,56779,0}, {6527,56801,0},{6523,56833,0},{6520,56831,0},{6515,56843,0},{6510,56836,0}, {6505,56839,0},{6500,56824,0},{6497,56828,0},{6488,56813,0},{6480,56806,0}, {6477,56806,0},{6475,56799,0},{6470,56791,0},{6475,56788,0},{6472,56784,0}, {6463,56784,0},{6457,56778,0},{6452,56766,0},{6452,56756,0},{6445,56751,0}, {6435,56748,0},{6425,56731,0},{6423,56731,0},{6422,56736,0},{6418,56738,0}, {6417,56731,0},{6413,56724,0},{6413,56713,0},{6405,56689,0},{6405,56681,0}, {6402,56681,0},{6400,56668,0},{6398,56669,0},{6397,56663,0},{6398,56653,0}, {6398,56651,0},{6402,56646,0},{6398,56644,0},{6398,56636,0},{6400,56636,0}, {6407,56621,0},{6417,56609,0},{6413,56608,0},{6397,56626,0},{6397,56633,0}, {6395,56633,0},{6395,56621,0},{6397,56623,0},{6397,56618,0},{6402,56609,0}, {6397,56611,0},{6403,56599,0},{6402,56593,0},{6403,56589,0},{6407,56586,0}, {6408,56581,0},{6402,56579,0},{6395,56588,0},{6408,56566,0},{6403,56564,0}, {6410,56554,0},{6413,56554,0},{6415,56563,0},{6423,56561,0},{6425,56558,0}, {6420,56554,0},{6420,56548,0},{6417,56554,0},{6415,56554,0},{6415,56548,0}, {6417,56544,0},{6415,56536,0},{6413,56524,0},{6410,56533,0},{6412,56534,0}, {6412,56538,0},{6410,56544,0},{6408,56541,0},{6405,56541,0},{6405,56546,0}, {6402,56551,0},{6402,56544,0},{6400,56544,0},{6398,56553,0},{6393,56554,0}, {6392,56553,0},{6393,56548,0},{6392,56543,0},{6393,56536,0},{6393,56541,0}, {6397,56541,0},{6398,56534,0},{6398,56533,0},{6397,56534,0},{6395,56526,0}, {6400,56519,0},{6400,56509,0},{6398,56514,0},{6392,56528,0},{6392,56524,0}, {6388,56526,0},{6382,56539,0},{6377,56538,0},{6378,56524,0},{6375,56531,0}, {6372,56526,0},{6370,56526,0},{6370,56523,0},{6365,56519,0},{6363,56521,0}, {6360,56511,0},{6362,56508,0},{6363,56514,0},{6365,56508,0},{6362,56501,0}, {6362,56491,0},{6363,56488,0},{6365,56491,0},{6367,56481,0},{6367,56488,0}, {6370,56474,0},{6368,56473,0},{6365,56466,0},{6365,56474,0},{6368,56476,0}, {6365,56481,0},{6363,56481,0},{6360,56479,0},{6362,56476,0},{6360,56469,0}, {6358,56464,0},{6357,56451,0},{6358,56438,0},{6362,56429,0},{6362,56428,0}, {6363,56421,0},{6363,56413,0},{6365,56406,0},{6367,56398,0},{6368,56396,0}, {6368,56403,0},{6368,56401,0},{6373,56383,0},{6372,56378,0},{6372,56369,0}, {6373,56368,0},{6375,56371,0},{6377,56368,0},{6377,56364,0},{6373,56361,0}, {6375,56344,0},{6378,56338,0},{6380,56348,0},{6382,56339,0},{6382,56336,0}, {6378,56336,0},{6377,56331,0},{6375,56331,0},{6375,56323,0},{6377,56313,0}, {6378,56298,0},{6383,56286,0},{6385,56266,0},{6387,56261,0},{6388,56259,0}, {6390,56244,0},{6393,56239,0},{6393,56228,0},{6398,56214,0},{6398,56208,0}, {6402,56193,0},{6407,56184,0},{6410,56174,0},{6412,56173,0},{6415,56174,0}, {6417,56166,0},{6418,56158,0},{6413,56169,0},{6408,56169,0},{6402,56181,0}, {6400,56176,0},{6400,56181,0},{6398,56178,0},{6398,56159,0},{6395,56159,0}, {6395,56166,0},{6388,56171,0},{6383,56184,0},{6383,56193,0},{6380,56203,0}, {6385,56198,0},{6383,56206,0},{6383,56214,0},{6385,56214,0},{6387,56203,0}, {6393,56191,0},{6393,56194,0},{6397,56191,0},{6397,56194,0},{6388,56226,0}, {6387,56236,0},{6383,56244,0},{6383,56261,0},{6377,56274,0},{6382,56283,0}, {6380,56293,0},{6373,56296,0},{6373,56313,0},{6372,56321,0},{6370,56326,0}, {6368,56316,0},{6365,56316,0},{6365,56319,0},{6362,56309,0},{6363,56306,0}, {6365,56303,0},{6358,56296,0},{6355,56283,0},{6352,56289,0},{6355,56293,0}, {6355,56301,0},{6357,56304,0},{6353,56313,0},{6362,56316,0},{6362,56324,0}, {6365,56329,0},{6363,56333,0},{6368,56339,0},{6372,56353,0},{6372,56359,0}, {6365,56374,0},{6358,56376,0},{6358,56384,0},{6355,56388,0},{6352,56398,0}, {6348,56398,0},{6348,56406,0},{6350,56409,0},{6348,56421,0},{6345,56429,0}, {6347,56434,0},{6340,56458,0},{6340,56448,0},{6342,56441,0},{6342,56439,0}, {6338,56443,0},{6335,56458,0},{6335,56468,0},{6333,56468,0},{6332,56461,0}, {6328,56463,0},{6328,56466,0},{6325,56464,0},{6322,56468,0},{6318,56466,0}, {6318,56463,0},{6315,56469,0},{6312,56468,0},{6308,56471,0},{6308,56468,0}, {6307,56473,0},{6303,56471,0},{6303,56466,0},{6302,56464,0},{6300,56468,0}, {6300,56461,0},{6297,56464,0},{6297,56458,0},{6293,56458,0},{6293,56429,0}, {6292,56419,0},{6285,56414,0},{6283,56404,0},{6282,56394,0},{6280,56401,0}, {6278,56401,0},{6278,56386,0},{6282,56364,0},{6283,56349,0},{6287,56324,0}, {6285,56323,0},{6282,56328,0},{6280,56326,0},{6285,56303,0},{6282,56291,0}, {6278,56291,0},{6272,56303,0},{6268,56314,0},{6268,56308,0},{6265,56318,0}, {6265,56341,0},{6262,56348,0},{6258,56346,0},{6255,56339,0},{6253,56341,0}, {6253,56331,0},{6255,56328,0},{6255,56319,0},{6257,56318,0},{6258,56321,0}, {6260,56319,0},{6260,56309,0},{6257,56311,0},{6257,56303,0},{6253,56303,0}, {6253,56298,0},{6255,56288,0},{6258,56291,0},{6260,56288,0},{6257,56286,0}, {6262,56278,0},{6262,56274,0},{6253,56283,0},{6250,56279,0},{6250,56286,0}, {6248,56286,0},{6248,56283,0},{6245,56283,0},{6247,56274,0},{6247,56264,0}, {6245,56263,0},{6238,56264,0},{6237,56268,0},{6235,56254,0},{6235,56264,0}, {6232,56276,0},{6227,56276,0},{6225,56273,0},{6222,56278,0},{6218,56279,0}, {6215,56288,0},{6217,56279,0},{6215,56276,0},{6222,56274,0},{6223,56268,0}, {6227,56266,0},{6228,56261,0},{6235,56218,0},{6237,56211,0},{6235,56218,0}, {6233,56229,0},{6228,56239,0},{6228,56244,0},{6227,56246,0},{6225,56253,0}, {6222,56259,0},{6218,56258,0},{6218,56249,0},{6220,56246,0},{6218,56243,0}, {6220,56236,0},{6217,56238,0},{6217,56229,0},{6215,56224,0},{6213,56224,0}, {6210,56228,0},{6213,56234,0},{6210,56243,0},{6207,56238,0},{6208,56229,0}, {6203,56228,0},{6205,56221,0},{6202,56223,0},{6198,56219,0},{6203,56211,0}, {6205,56206,0},{6205,56203,0},{6202,56206,0},{6203,56194,0},{6195,56214,0}, {6195,56198,0},{6192,56206,0},{6190,56208,0},{6188,56206,0},{6193,56184,0}, {6195,56174,0},{6188,56188,0},{6188,56176,0},{6185,56174,0},{6185,56186,0}, {6183,56188,0},{6182,56201,0},{6180,56193,0},{6178,56198,0},{6178,56211,0}, {6175,56211,0},{6175,56199,0},{6177,56191,0},{6175,56191,0},{6172,56194,0}, {6172,56204,0},{6168,56191,0},{6168,56184,0},{6163,56171,0},{6155,56158,0}, {6157,56153,0},{6152,56149,0},{6145,56138,0},{6142,56143,0},{6140,56139,0}, {6138,56149,0},{6135,56154,0},{6132,56151,0},{6130,56143,0},{6132,56124,0}, {6127,56134,0},{6122,56136,0},{6122,56134,0},{6120,56134,0},{6117,56126,0}, {6115,56133,0},{6112,56129,0},{6112,56136,0},{6110,56138,0},{6107,56123,0}, {6090,56113,0},{6087,56101,0},{6077,56094,0},{6072,56096,0},{6063,56086,0}, {6055,56084,0},{6052,56078,0},{6053,56069,0},{6053,56063,0},{6052,56071,0}, {6050,56071,0},{6050,56056,0},{6047,56068,0},{6038,56074,0},{6027,56066,0}, {6018,56069,0},{6013,56064,0},{6008,56066,0},{6007,56059,0},{6002,56061,0}, {6002,56056,0},{5998,56058,0},{5995,56054,0},{5993,56056,0},{5978,56059,0}, {5963,56054,0},{5957,56058,0},{5957,56059,0},{5955,56056,0},{5952,56058,0}, {5950,56061,0},{5945,56063,0},{5940,56063,0},{5937,56064,0},{5933,56063,0}, {5935,56068,0},{5935,56071,0},{5930,56059,0},{5908,56056,0},{5908,56043,0}, {5905,56036,0},{5907,56053,0},{5905,56056,0},{5902,56056,0},{5900,56064,0}, {5898,56068,0},{5893,56068,0},{5888,56063,0},{5883,56061,0},{5888,56071,0}, {5887,56078,0},{5883,56084,0},{5880,56088,0},{5872,56094,0},{5872,56103,0}, {5875,56108,0},{5878,56108,0},{5880,56116,0},{5873,56113,0},{5868,56116,0}, {5860,56108,0},{5848,56106,0},{5843,56108,0},{5840,56103,0},{5832,56103,0}, {5822,56099,0},{5840,56113,0},{5858,56111,0},{5867,56119,0},{5872,56119,0}, {5873,56123,0},{5877,56119,0},{5877,56124,0},{5877,56144,0},{5875,56149,0}, {5877,56153,0},{5877,56161,0},{5878,56164,0},{5877,56179,0},{5877,56186,0}, {5875,56189,0},{5872,56189,0},{5870,56196,0},{5875,56203,0},{5877,56213,0}, {5875,56216,0},{5873,56221,0},{5872,56219,0},{5868,56223,0},{5853,56223,0}, {5842,56231,0},{5822,56243,0},{5817,56251,0},{5815,56249,0},{5805,56256,0}, {5800,56256,0},{5787,56261,0},{5783,56258,0},{5782,56263,0},{5772,56269,0}, {5763,56276,0},{5755,56281,0},{5752,56286,0},{5745,56291,0},{5733,56294,0}, {5723,56293,0},{5705,56278,0},{5695,56264,0},{5690,56248,0},{5693,56268,0}, {5703,56289,0},{5707,56311,0},{5705,56314,0},{5698,56301,0},{5693,56289,0}, {5695,56294,0},{5697,56306,0},{5702,56313,0},{5703,56321,0},{5707,56341,0}, {5722,56413,0},{5727,56436,0},{5725,56454,0},{5723,56464,0},{5723,56476,0}, {5718,56486,0},{5720,56491,0},{5718,56498,0},{5717,56496,0},{5705,56529,0}, {5700,56541,0},{5692,56586,0},{5692,56599,0},{5687,56616,0},{5687,56628,0}, {5683,56631,0},{5687,56648,0},{5683,56649,0},{5683,56653,0},{5683,56654,0}, {5680,56653,0},{5675,56664,0},{5670,56671,0},{5665,56688,0},{5655,56701,0}, {5643,56738,0},{5638,56741,0},{5632,56751,0},{5620,56764,0},{5615,56766,0}, {5608,56778,0},{5603,56774,0},{5600,56774,0},{5605,56781,0},{5603,56788,0}, {5602,56788,0},{5600,56791,0},{5600,56801,0},{5595,56799,0},{5597,56804,0}, {5593,56828,0},{5593,56838,0},{5592,56841,0},{5590,56839,0},{5590,56849,0}, {5585,56868,0},{5582,56888,0},{5573,56908,0},{5570,56928,0},{5570,56941,0}, {5563,56954,0},{5563,56964,0},{5560,56968,0},{5557,56979,0},{5547,56986,0}, {5542,56996,0},{5535,57023,0},{5530,57024,0},{5527,57014,0},{5525,57014,0}, {5522,57009,0},{5515,57003,0},{5510,56996,0},{5507,56998,0},{5498,56994,0}, {5502,56999,0},{5513,57004,0},{5525,57016,0},{5528,57024,0},{5530,57036,0}, {5528,57051,0},{5525,57064,0},{5523,57076,0},{5528,57104,0},{5528,57118,0}, {5527,57126,0},{5532,57143,0},{5528,57153,0},{5525,57164,0},{5522,57163,0}, {5525,57168,0},{5523,57171,0},{5522,57176,0},{5518,57179,0},{5515,57178,0}, {5513,57179,0},{5515,57178,0},{5518,57181,0},{5523,57178,0},{5525,57168,0}, {5528,57166,0},{5527,57181,0},{5523,57188,0},{5522,57201,0},{5522,57213,0}, {5520,57218,0},{5523,57233,0},{5523,57239,0},{5522,57243,0},{5517,57246,0}, {5510,57241,0},{5515,57248,0},{5513,57258,0},{5515,57264,0},{5517,57269,0}, {5513,57281,0},{5517,57283,0},{5515,57291,0},{5512,57294,0},{5508,57296,0}, {5507,57304,0},{5510,57303,0},{5513,57304,0},{5517,57301,0},{5515,57306,0}, {5510,57311,0},{5503,57308,0},{5497,57311,0},{5493,57309,0},{5488,57311,0}, {5488,57314,0},{5485,57316,0},{5437,57293,0},{5422,57293,0},{5415,57299,0}, {5412,57298,0},{5412,57304,0},{5407,57311,0},{5382,57323,0},{5375,57323,0}, {5360,57314,0},{5358,57316,0},{5352,57314,0},{5342,57321,0},{5328,57324,0}, {5323,57316,0},{5322,57311,0},{5307,57306,0},{5298,57308,0},{5297,57306,0}, {5295,57309,0},{5293,57311,0},{5288,57326,0},{5278,57339,0},{5277,57338,0}, {5275,57339,0},{5268,57344,0},{5263,57354,0},{5252,57366,0},{5245,57381,0}, {5242,57379,0},{5235,57381,0},{5230,57388,0},{5232,57381,0},{5230,57373,0}, {5227,57363,0},{5225,57363,0},{5227,57358,0},{5225,57354,0},{5223,57349,0}, {5223,57354,0},{5218,57348,0},{5223,57363,0},{5223,57386,0},{5218,57393,0}, {5215,57394,0},{5210,57401,0},{5208,57409,0},{5203,57421,0},{5205,57426,0}, {5203,57429,0},{5200,57438,0},{5190,57444,0},{5188,57448,0},{5188,57454,0}, {5185,57454,0},{5180,57466,0},{5170,57478,0},{5152,57484,0},{5147,57493,0}, {5137,57493,0},{5128,57471,0},{5118,57461,0},{5115,57451,0},{5108,57446,0}, {5107,57439,0},{5103,57434,0},{5105,57443,0},{5103,57443,0},{5100,57441,0}, {5103,57444,0},{5112,57449,0},{5115,57466,0},{5128,57483,0},{5133,57496,0}, {5130,57514,0},{5130,57524,0},{5127,57528,0},{5125,57536,0},{5118,57548,0}, {5112,57563,0},{5105,57568,0},{5102,57573,0},{5087,57593,0},{5077,57601,0}, {5072,57603,0},{5078,57603,0},{5088,57594,0},{5098,57583,0},{5105,57568,0}, {5112,57564,0},{5118,57561,0},{5130,57568,0},{5140,57566,0},{5142,57574,0}, {5145,57578,0},{5147,57584,0},{5155,57581,0},{5157,57588,0},{5167,57603,0}, {5163,57613,0},{5157,57608,0},{5152,57609,0},{5152,57619,0},{5153,57623,0}, {5152,57626,0},{5147,57634,0},{5128,57643,0},{5123,57639,0},{5118,57646,0}, {5117,57651,0},{5123,57644,0},{5130,57646,0},{5135,57651,0},{5135,57654,0}, {5137,57648,0},{5140,57648,0},{5148,57659,0},{5148,57668,0},{5150,57664,0}, {5152,57654,0},{5160,57654,0},{5160,57658,0},{5162,57653,0},{5165,57648,0}, {5167,57641,0},{5170,57643,0},{5177,57633,0},{5180,57636,0},{5180,57644,0}, {5183,57653,0},{5193,57646,0},{5197,57661,0},{5202,57664,0},{5200,57666,0}, {5205,57666,0},{5205,57673,0},{5208,57671,0},{5208,57674,0},{5212,57678,0}, {5215,57679,0},{5218,57683,0},{5223,57681,0},{5225,57686,0},{5223,57696,0}, {5227,57689,0},{5227,57681,0},{5230,57681,0},{5235,57686,0},{5237,57686,0}, {5238,57683,0},{5242,57684,0},{5243,57681,0},{5247,57686,0},{5248,57683,0}, {5248,57679,0},{5250,57683,0},{5253,57678,0},{5252,57671,0},{5253,57671,0}, {5255,57668,0},{5253,57666,0},{5255,57664,0},{5257,57659,0},{5260,57668,0}, {5262,57663,0},{5262,57664,0},{5265,57664,0},{5265,57658,0},{5270,57661,0}, {5270,57654,0},{5272,57659,0},{5273,57658,0},{5275,57651,0},{5278,57653,0}, {5278,57664,0},{5282,57663,0},{5282,57659,0},{5282,57658,0},{5288,57668,0}, {5287,57656,0},{5288,57649,0},{5292,57646,0},{5293,57649,0},{5297,57649,0}, {5297,57656,0},{5298,57658,0},{5298,57653,0},{5302,57651,0},{5300,57649,0}, {5302,57638,0},{5305,57644,0},{5307,57644,0},{5307,57639,0},{5317,57644,0}, {5318,57641,0},{5320,57646,0},{5322,57643,0},{5322,57648,0},{5325,57646,0}, {5325,57644,0},{5327,57646,0},{5328,57641,0},{5332,57643,0},{5335,57639,0}, {5338,57643,0},{5345,57638,0},{5345,57634,0},{5345,57629,0},{5345,57631,0}, {5347,57628,0},{5350,57624,0},{5353,57633,0},{5353,57634,0},{5352,57631,0}, {5348,57634,0},{5352,57639,0},{5357,57633,0},{5355,57641,0},{5357,57644,0}, {5362,57638,0},{5360,57629,0},{5363,57631,0},{5363,57636,0},{5367,57631,0}, {5367,57634,0},{5368,57634,0},{5372,57621,0},{5372,57631,0},{5373,57633,0}, {5375,57629,0},{5378,57631,0},{5380,57629,0},{5382,57634,0},{5383,57631,0}, {5383,57639,0},{5382,57643,0},{5382,57646,0},{5385,57638,0},{5385,57629,0}, {5388,57629,0},{5392,57626,0},{5392,57636,0},{5393,57633,0},{5395,57623,0}, {5395,57633,0},{5397,57626,0},{5397,57633,0},{5397,57631,0},{5398,57626,0}, {5398,57629,0},{5400,57629,0},{5400,57633,0},{5400,57639,0},{5402,57638,0}, {5405,57633,0},{5403,57628,0},{5407,57626,0},{5408,57623,0},{5408,57608,0}, {5408,57619,0},{5412,57619,0},{5410,57624,0},{5412,57626,0},{5412,57623,0}, {5413,57626,0},{5415,57623,0},{5417,57629,0},{5418,57631,0},{5417,57618,0}, {5415,57616,0},{5417,57611,0},{5418,57613,0},{5420,57601,0},{5420,57598,0}, {5422,57603,0},{5425,57603,0},{5425,57608,0},{5427,57596,0},{5428,57593,0}, {5430,57594,0},{5430,57589,0},{5437,57589,0},{5437,57586,0},{5440,57586,0}, {5442,57591,0},{5442,57586,0},{5445,57588,0},{5450,57584,0},{5450,57581,0}, {5452,57584,0},{5455,57576,0},{5457,57583,0},{5458,57584,0},{5462,57579,0}, {5457,57574,0},{5458,57573,0},{5463,57578,0},{5463,57576,0},{5462,57574,0}, {5463,57568,0},{5465,57571,0},{5467,57569,0},{5467,57568,0},{5465,57568,0}, {5465,57559,0},{5470,57573,0},{5473,57573,0},{5472,57573,0},{5473,57586,0}, {5477,57589,0},{5475,57591,0},{5477,57603,0},{5482,57613,0},{5485,57638,0}, {5492,57649,0},{5492,57659,0},{5498,57679,0},{5500,57683,0},{5503,57703,0}, {5515,57723,0},{5525,57751,0},{5527,57758,0},{5537,57769,0},{5540,57781,0}, {5558,57813,0},{5565,57823,0},{5570,57828,0},{5567,57818,0},{5568,57818,0}, {5575,57829,0},{5585,57839,0},{5593,57853,0},{5598,57856,0},{5600,57864,0}, {5603,57868,0},{5612,57873,0},{5625,57878,0},{5630,57883,0},{5680,57886,0}, {5700,57881,0},{5710,57883,0},{5717,57879,0},{5723,57878,0},{5740,57871,0}, {5762,57854,0},{5767,57856,0},{5787,57834,0},{5795,57829,0},{5797,57824,0}, {5802,57821,0},{5807,57811,0},{5810,57801,0},{5813,57798,0},{5817,57788,0}, {5817,57791,0},{5820,57791,0},{5827,57774,0},{5838,57734,0},{5842,57734,0}, {5845,57729,0},{5845,57723,0},{5850,57716,0},{5852,57709,0},{5862,57698,0}, {5862,57693,0},{5860,57693,0},{5855,57704,0},{5853,57701,0},{5857,57691,0}, {5862,57689,0},{5862,57679,0},{5867,57681,0},{5867,57679,0},{5868,57684,0}, {5870,57686,0},{5870,57689,0},{5877,57681,0},{5878,57683,0},{5878,57686,0}, {5882,57688,0},{5892,57681,0},{5893,57683,0},{5893,57679,0},{5897,57679,0}, {5895,57684,0},{5892,57691,0},{5895,57693,0},{5897,57694,0},{5895,57701,0}, {5892,57701,0},{5893,57706,0},{5895,57704,0},{5897,57708,0},{5900,57711,0}, {5898,57704,0},{5902,57709,0},{5905,57708,0},{5907,57711,0},{5905,57716,0}, {5910,57714,0},{5908,57718,0},{5910,57723,0},{5915,57721,0},{5915,57728,0}, {5922,57726,0},{5923,57736,0},{5927,57741,0},{5928,57753,0},{5930,57753,0}, {5932,57748,0},{5932,57758,0},{5935,57759,0},{5937,57756,0},{5940,57768,0}, {5942,57764,0},{5940,57761,0},{5943,57758,0},{5940,57748,0},{5940,57744,0}, {5943,57746,0},{5945,57751,0},{5947,57748,0},{5950,57749,0},{5953,57764,0}, {5962,57764,0},{5963,57759,0},{5967,57756,0},{5968,57763,0},{5972,57759,0}, {5970,57766,0},{5967,57769,0},{5968,57776,0},{5970,57779,0},{5967,57779,0}, {5963,57789,0},{5958,57791,0},{5957,57804,0},{5960,57793,0},{5967,57791,0}, {5968,57783,0},{5972,57788,0},{5975,57783,0},{5975,57791,0},{5977,57791,0}, {5978,57794,0},{5980,57806,0},{5988,57799,0},{5992,57793,0},{5992,57799,0}, {5995,57798,0},{5997,57806,0},{5998,57804,0},{6000,57813,0},{6002,57806,0}, {6005,57818,0},{6003,57804,0},{6007,57801,0},{6005,57796,0},{6003,57793,0}, {6005,57789,0},{6005,57788,0},{6007,57773,0},{6008,57778,0},{6012,57776,0}, {6013,57781,0},{6013,57796,0},{6015,57786,0},{6020,57781,0},{6022,57789,0}, {6025,57784,0},{6027,57779,0},{6028,57781,0},{6027,57774,0},{6033,57776,0}, {6033,57773,0},{6037,57773,0},{6040,57761,0},{6042,57761,0},{6047,57768,0}, {6050,57779,0},{6055,57781,0},{6055,57794,0},{6057,57781,0},{6055,57769,0}, {6060,57758,0},{6063,57753,0},{6075,57776,0},{6077,57771,0},{6077,57761,0}, {6083,57784,0},{6078,57758,0},{6075,57748,0},{6080,57751,0},{6078,57739,0}, {6082,57748,0},{6083,57746,0},{6078,57716,0},{6085,57719,0},{6088,57726,0}, {6092,57726,0},{6103,57748,0},{6105,57754,0},{6115,57758,0},{6120,57766,0}, {6122,57766,0},{6123,57761,0},{6127,57764,0},{6145,57756,0},{6145,57763,0}, {6143,57766,0},{6147,57768,0},{6147,57779,0},{6148,57781,0},{6152,57769,0}, {6157,57774,0},{6153,57789,0},{6157,57783,0},{6158,57773,0},{6158,57778,0}, {6160,57778,0},{6160,57764,0},{6170,57758,0},{6168,57754,0},{6168,57746,0}, {6172,57736,0},{6178,57736,0},{6187,57728,0},{6195,57728,0},{6203,57721,0}, {6227,57719,0},{6233,57726,0},{6240,57734,0},{6240,57741,0},{6247,57759,0}, {6247,57766,0},{6252,57771,0},{6253,57781,0},{6260,57789,0},{6258,57796,0}, {6255,57799,0},{6255,57818,0},{6252,57823,0},{6253,57826,0},{6252,57831,0}, {6253,57841,0},{6252,57846,0},{6250,57861,0},{6248,57869,0},{6245,57874,0}, {6245,57883,0},{6238,57921,0},{6233,57926,0},{6235,57933,0},{6233,57934,0}, {6235,57939,0},{6233,57944,0},{6232,57954,0},{6228,57973,0},{6227,57976,0}, {6223,57966,0},{6215,57946,0},{6217,57953,0},{6218,57958,0},{6223,57976,0}, {6230,57988,0},{6232,58004,0},{6228,58021,0},{6223,58021,0},{6227,58029,0}, {6225,58043,0},{6223,58049,0},{6220,58051,0},{6217,58059,0},{6215,58059,0}, {6210,58076,0},{6212,58081,0},{6215,58068,0},{6220,58059,0},{6225,58063,0}, {6225,58094,0},{6230,58108,0},{6232,58108,0},{6233,58113,0},{6232,58121,0}, {6235,58128,0},{6235,58136,0},{6245,58149,0},{6248,58168,0},{6247,58171,0}, {6238,58179,0},{6238,58184,0},{6238,58189,0},{6237,58191,0},{6237,58198,0}, {6233,58204,0},{6232,58214,0},{6225,58218,0},{6220,58229,0},{6218,58229,0}, {6215,58244,0},{6213,58246,0},{6212,58241,0},{6212,58244,0},{6212,58251,0}, {6212,58258,0},{6213,58254,0},{6215,58263,0},{6212,58274,0},{6205,58269,0}, {6205,58276,0},{6203,58274,0},{6202,58276,0},{6197,58276,0},{6195,58268,0}, {6190,58268,0},{6183,58256,0},{6183,58263,0},{6188,58269,0},{6185,58269,0}, {6180,58274,0},{6183,58276,0},{6190,58273,0},{6195,58276,0},{6188,58296,0}, {6187,58316,0},{6183,58318,0},{6180,58323,0},{6178,58316,0},{6178,58318,0}, {6177,58314,0},{6173,58314,0},{6175,58323,0},{6173,58328,0},{6168,58338,0}, {6162,58333,0},{6160,58324,0},{6162,58313,0},{6162,58309,0},{6157,58306,0}, {6160,58314,0},{6158,58326,0},{6160,58338,0},{6167,58343,0},{6170,58339,0}, {6170,58341,0},{6167,58369,0},{6160,58379,0},{6160,58378,0},{6157,58381,0}, {6153,58351,0},{6152,58351,0},{6152,58358,0},{6150,58359,0},{6148,58356,0}, {6147,58361,0},{6143,58348,0},{6142,58351,0},{6142,58356,0},{6140,58366,0}, {6140,58378,0},{6137,58366,0},{6137,58354,0},{6135,58356,0},{6135,58354,0}, {6135,58364,0},{6133,58369,0},{6128,58363,0},{6125,58376,0},{6120,58373,0}, {6122,58378,0},{6120,58379,0},{6115,58378,0},{6117,58386,0},{6120,58383,0}, {6122,58384,0},{6122,58391,0},{6118,58391,0},{6115,58396,0},{6112,58399,0}, {6115,58399,0},{6117,58414,0},{6112,58416,0},{6113,58419,0},{6112,58424,0}, {6112,58438,0},{6110,58444,0},{6107,58443,0},{6107,58451,0},{6105,58459,0}, {6108,58458,0},{6107,58464,0},{6105,58471,0},{6102,58468,0},{6103,58474,0}, {6102,58478,0},{6100,58481,0},{6103,58479,0},{6105,58483,0},{6107,58483,0}, {6102,58493,0},{6105,58491,0},{6105,58494,0},{6108,58494,0},{6107,58501,0}, {6110,58503,0},{6108,58509,0},{6107,58511,0},{6108,58521,0},{6107,58521,0}, {6107,58526,0},{6102,58519,0},{6102,58526,0},{6098,58524,0},{6095,58528,0}, {6090,58528,0},{6088,58521,0},{6087,58529,0},{6085,58529,0},{6085,58536,0}, {6080,58543,0},{6085,58551,0},{6083,58544,0},{6085,58543,0},{6092,58561,0}, {6088,58563,0},{6087,58568,0},{6088,58571,0},{6090,58571,0},{6095,58568,0}, {6102,58568,0},{6108,58576,0},{6107,58584,0},{6093,58594,0},{6092,58593,0}, {6090,58599,0},{6087,58598,0},{6080,58598,0},{6073,58578,0},{6070,58571,0}, {6068,58564,0},{6065,58568,0},{6060,58566,0},{6060,58571,0},{6057,58571,0}, {6055,58566,0},{6053,58553,0},{6047,58561,0},{6042,58558,0},{6040,58563,0}, {6037,58564,0},{6032,58559,0},{6028,58566,0},{6023,58571,0},{6023,58576,0}, {6020,58574,0},{6018,58571,0},{6018,58576,0},{6007,58574,0},{6007,58566,0}, {6003,58564,0},{6007,58558,0},{6007,58553,0},{6002,58553,0},{6000,58559,0}, {5998,58556,0},{6002,58541,0},{6000,58514,0},{6003,58503,0},{6000,58504,0}, {6000,58481,0},{6007,58438,0},{6007,58433,0},{5997,58479,0},{5998,58513,0}, {5997,58518,0},{5995,58529,0},{5997,58563,0},{5992,58564,0},{5990,58559,0}, {5987,58579,0},{5983,58576,0},{5978,58574,0},{5977,58581,0},{5968,58571,0}, {5970,58576,0},{5967,58584,0},{5960,58581,0},{5957,58568,0},{5950,58561,0}, {5948,58561,0},{5948,58566,0},{5945,58569,0},{5942,58571,0},{5938,58569,0}, {5937,58573,0},{5937,58571,0},{5935,58561,0},{5932,58561,0},{5930,58563,0}, {5930,58571,0},{5932,58576,0},{5935,58594,0},{5933,58599,0},{5930,58599,0}, {5933,58606,0},{5932,58611,0},{5928,58609,0},{5927,58613,0},{5922,58611,0}, {5920,58608,0},{5923,58603,0},{5925,58601,0},{5922,58599,0},{5918,58599,0}, {5920,58594,0},{5922,58594,0},{5922,58593,0},{5917,58583,0},{5910,58583,0}, {5913,58589,0},{5910,58593,0},{5912,58599,0},{5908,58601,0},{5907,58594,0}, {5902,58593,0},{5907,58588,0},{5907,58586,0},{5890,58591,0},{5887,58589,0}, {5888,58584,0},{5880,58581,0},{5878,58571,0},{5880,58568,0},{5887,58564,0}, {5888,58569,0},{5893,58569,0},{5892,58566,0},{5892,58564,0},{5897,58564,0}, {5898,58561,0},{5897,58558,0},{5905,58549,0},{5898,58549,0},{5895,58546,0}, {5895,58553,0},{5893,58556,0},{5882,58556,0},{5887,58548,0},{5887,58546,0}, {5883,58546,0},{5880,58539,0},{5882,58533,0},{5878,58526,0},{5877,58511,0}, {5875,58529,0},{5873,58533,0},{5877,58544,0},{5870,58544,0},{5870,58548,0}, {5872,58551,0},{5870,58556,0},{5868,58554,0},{5865,58548,0},{5858,58554,0}, {5870,58566,0},{5870,58571,0},{5875,58576,0},{5877,58586,0},{5885,58596,0}, {5888,58608,0},{5890,58611,0},{5888,58616,0},{5890,58621,0},{5890,58638,0}, {5888,58636,0},{5887,58639,0},{5888,58649,0},{5892,58659,0},{5890,58663,0}, {5890,58673,0},{5883,58686,0},{5882,58696,0},{5878,58696,0},{5878,58701,0}, {5875,58699,0},{5870,58698,0},{5867,58703,0},{5860,58701,0},{5858,58703,0}, {5860,58708,0},{5858,58709,0},{5853,58706,0},{5855,58716,0},{5848,58714,0}, {5843,58716,0},{5833,58711,0},{5823,58704,0},{5813,58701,0},{5805,58691,0}, {5803,58686,0},{5802,58666,0},{5797,58649,0},{5797,58639,0},{5792,58634,0}, {5790,58623,0},{5787,58614,0},{5777,58599,0},{5783,58614,0},{5788,58623,0}, {5793,58641,0},{5800,58668,0},{5800,58681,0},{5803,58696,0},{5807,58698,0}, {5810,58704,0},{5820,58706,0},{5825,58713,0},{5830,58713,0},{5842,58719,0}, {5848,58719,0},{5853,58723,0},{5852,58733,0},{5858,58736,0},{5855,58739,0}, {5852,58739,0},{5850,58746,0},{5840,58744,0},{5835,58746,0},{5832,58751,0}, {5825,58746,0},{5813,58726,0},{5807,58723,0},{5813,58736,0},{5820,58739,0}, {5823,58749,0},{5827,58749,0},{5830,58756,0},{5835,58753,0},{5847,58759,0}, {5843,58769,0},{5838,58766,0},{5835,58766,0},{5832,58763,0},{5830,58764,0}, {5828,58763,0},{5828,58768,0},{5825,58771,0},{5817,58766,0},{5807,58769,0}, {5797,58763,0},{5792,58764,0},{5798,58766,0},{5805,58773,0},{5812,58771,0}, {5822,58778,0},{5823,58784,0},{5827,58788,0},{5828,58794,0},{5828,58798,0}, {5832,58803,0},{5833,58809,0},{5833,58814,0},{5838,58819,0},{5835,58828,0}, {5838,58831,0},{5842,58828,0},{5842,58834,0},{5850,58841,0},{5848,58848,0}, {5845,58846,0},{5843,58851,0},{5845,58853,0},{5847,58856,0},{5850,58856,0}, {5848,58874,0},{5853,58869,0},{5855,58874,0},{5860,58874,0},{5863,58878,0}, {5867,58876,0},{5867,58879,0},{5872,58881,0},{5872,58889,0},{5873,58891,0}, {5875,58888,0},{5880,58891,0},{5882,58889,0},{5885,58898,0},{5872,58924,0}, {5865,58929,0},{5867,58934,0},{5865,58936,0},{5863,58936,0},{5862,58943,0}, {5850,58934,0},{5840,58938,0},{5837,58928,0},{5832,58929,0},{5837,58933,0}, {5838,58939,0},{5843,58941,0},{5845,58944,0},{5848,58938,0},{5853,58946,0}, {5858,58948,0},{5857,58953,0},{5862,58949,0},{5865,58943,0},{5868,58941,0}, {5868,58933,0},{5875,58931,0},{5877,58926,0},{5887,58934,0},{5883,58938,0}, {5883,58941,0},{5883,58951,0},{5885,58956,0},{5887,58956,0},{5888,58941,0}, {5890,58938,0},{5895,58951,0},{5902,58948,0},{5893,58968,0},{5897,58968,0}, {5900,58956,0},{5902,58963,0},{5903,58958,0},{5905,58969,0},{5903,58974,0}, {5900,58979,0},{5898,58986,0},{5900,58984,0},{5902,58979,0},{5905,58978,0}, {5907,58984,0},{5903,58991,0},{5903,59004,0},{5907,59001,0},{5907,58993,0}, {5910,58981,0},{5908,58979,0},{5907,58973,0},{5915,58964,0},{5918,58964,0}, {5920,58968,0},{5922,58963,0},{5927,58961,0},{5927,58968,0},{5918,58978,0}, {5925,58974,0},{5923,58979,0},{5927,58981,0},{5925,58984,0},{5925,58986,0}, {5930,58979,0},{5938,58978,0},{5935,58988,0},{5932,58991,0},{5928,59001,0}, {5933,58996,0},{5935,58991,0},{5940,58993,0},{5940,58998,0},{5943,58986,0}, {5945,58989,0},{5945,58988,0},{5948,58979,0},{5947,58993,0},{5948,58999,0}, {5947,59018,0},{5940,59023,0},{5937,59034,0},{5938,59038,0},{5942,59024,0}, {5947,59019,0},{5948,59014,0},{5948,59009,0},{5952,59006,0},{5952,58994,0}, {5973,58981,0},{5977,58989,0},{5980,58988,0},{5978,58993,0},{5982,58994,0}, {5980,58999,0},{5982,58998,0},{5985,59003,0},{5982,59016,0},{5978,59021,0}, {5977,59038,0},{5980,59023,0},{5983,59014,0},{5985,59016,0},{5988,59013,0}, {5987,59021,0},{5988,59023,0},{5992,59014,0},{5992,59021,0},{5995,59023,0}, {5993,59029,0},{5997,59024,0},{5998,59029,0},{6002,59023,0},{6005,59024,0}, {6005,59031,0},{6007,59033,0},{6010,59029,0},{6012,59038,0},{6015,59036,0}, {6015,59039,0},{6018,59041,0},{6020,59048,0},{6025,59041,0},{6027,59046,0}, {6030,59051,0},{6033,59053,0},{6037,59051,0},{6037,59053,0},{6033,59066,0}, {6033,59069,0},{6035,59066,0},{6035,59073,0},{6025,59098,0},{6028,59074,0}, {6027,59064,0},{6023,59059,0},{6027,59073,0},{6027,59081,0},{6023,59089,0}, {6017,59079,0},{6017,59086,0},{6022,59096,0},{6020,59093,0},{6020,59096,0}, {6017,59098,0},{6012,59088,0},{6008,59088,0},{6007,59073,0},{6000,59054,0}, {5998,59054,0},{6005,59076,0},{6007,59091,0},{6013,59098,0},{6012,59099,0}, {6007,59099,0},{6007,59094,0},{6005,59099,0},{6002,59098,0},{6000,59093,0}, {6000,59078,0},{6000,59088,0},{5997,59096,0},{5993,59096,0},{5990,59084,0}, {5992,59099,0},{5995,59099,0},{5998,59103,0},{6000,59114,0},{6002,59104,0}, {6005,59104,0},{6005,59106,0},{6003,59114,0},{6002,59116,0},{6002,59119,0}, {5998,59121,0},{5995,59106,0},{5995,59114,0},{5992,59118,0},{5990,59116,0}, {5987,59109,0},{5988,59119,0},{5992,59121,0},{5990,59123,0},{5983,59119,0}, {5978,59118,0},{5977,59114,0},{5978,59109,0},{5977,59109,0},{5968,59119,0}, {5968,59141,0},{5967,59139,0},{5965,59144,0},{5963,59141,0},{5963,59131,0}, {5952,59124,0},{5955,59133,0},{5963,59136,0},{5960,59143,0},{5962,59148,0}, {5960,59149,0},{5958,59149,0},{5957,59143,0},{5950,59138,0},{5957,59149,0}, {5952,59163,0},{5942,59156,0},{5942,59138,0},{5940,59131,0},{5938,59129,0}, {5938,59153,0},{5937,59156,0},{5938,59159,0},{5938,59161,0},{5935,59161,0}, {5937,59164,0},{5927,59159,0},{5925,59154,0},{5923,59156,0},{5925,59163,0}, {5933,59166,0},{5937,59171,0},{5935,59174,0},{5935,59181,0},{5932,59184,0}, {5927,59183,0},{5923,59178,0},{5922,59173,0},{5922,59176,0},{5923,59184,0}, {5928,59191,0},{5928,59198,0},{5925,59194,0},{5923,59191,0},{5922,59193,0}, {5920,59189,0},{5922,59198,0},{5920,59201,0},{5913,59194,0},{5910,59188,0}, {5910,59183,0},{5907,59178,0},{5905,59159,0},{5908,59143,0},{5907,59138,0}, {5902,59131,0},{5903,59138,0},{5907,59143,0},{5905,59146,0},{5902,59144,0}, {5895,59149,0},{5903,59149,0},{5903,59158,0},{5902,59161,0},{5903,59171,0}, {5903,59183,0},{5907,59189,0},{5907,59194,0},{5910,59199,0},{5908,59206,0}, {5907,59208,0},{5905,59224,0},{5903,59223,0},{5903,59219,0},{5902,59203,0}, {5900,59214,0},{5895,59206,0},{5898,59216,0},{5898,59219,0},{5895,59219,0}, {5893,59213,0},{5893,59219,0},{5888,59213,0},{5885,59204,0},{5885,59218,0}, {5887,59219,0},{5885,59219,0},{5882,59219,0},{5885,59224,0},{5888,59224,0}, {5890,59229,0},{5888,59238,0},{5887,59231,0},{5885,59234,0},{5880,59246,0}, {5875,59244,0},{5870,59233,0},{5870,59239,0},{5872,59246,0},{5870,59249,0}, {5867,59251,0},{5863,59244,0},{5860,59244,0},{5855,59226,0},{5850,59219,0}, {5850,59206,0},{5850,59204,0},{5850,59194,0},{5852,59193,0},{5850,59191,0}, {5847,59184,0},{5848,59194,0},{5847,59203,0},{5845,59201,0},{5840,59194,0}, {5835,59183,0},{5830,59178,0},{5837,59194,0},{5847,59209,0},{5845,59228,0}, {5837,59219,0},{5845,59231,0},{5843,59234,0},{5847,59243,0},{5847,59254,0}, {5850,59258,0},{5845,59259,0},{5848,59261,0},{5850,59274,0},{5848,59281,0}, {5842,59271,0},{5838,59274,0},{5830,59274,0},{5828,59266,0},{5827,59264,0}, {5827,59251,0},{5822,59246,0},{5820,59248,0},{5822,59249,0},{5825,59253,0}, {5825,59268,0},{5827,59271,0},{5825,59276,0},{5822,59278,0},{5822,59274,0}, {5818,59273,0},{5817,59269,0},{5815,59229,0},{5813,59234,0},{5812,59234,0}, {5807,59214,0},{5805,59218,0},{5807,59223,0},{5803,59221,0},{5798,59203,0}, {5800,59223,0},{5802,59226,0},{5807,59228,0},{5808,59239,0},{5813,59243,0}, {5815,59253,0},{5812,59251,0},{5813,59258,0},{5812,59261,0},{5815,59264,0}, {5812,59269,0},{5813,59273,0},{5817,59279,0},{5812,59279,0},{5813,59283,0}, {5817,59283,0},{5818,59289,0},{5817,59291,0},{5810,59283,0},{5805,59284,0}, {5807,59288,0},{5810,59288,0},{5810,59291,0},{5810,59299,0},{5808,59293,0}, {5807,59298,0},{5805,59298,0},{5807,59303,0},{5803,59306,0},{5800,59298,0}, {5800,59283,0},{5797,59278,0},{5795,59271,0},{5793,59269,0},{5797,59284,0}, {5795,59294,0},{5793,59293,0},{5787,59294,0},{5795,59298,0},{5798,59301,0}, {5790,59303,0},{5795,59308,0},{5790,59316,0},{5793,59316,0},{5797,59321,0}, {5797,59323,0},{5795,59328,0},{5790,59329,0},{5783,59323,0},{5780,59324,0}, {5778,59328,0},{5777,59336,0},{5772,59341,0},{5768,59339,0},{5767,59343,0}, {5767,59346,0},{5762,59348,0},{5758,59331,0},{5757,59328,0},{5755,59329,0}, {5753,59323,0},{5753,59309,0},{5745,59303,0},{5750,59283,0},{5750,59281,0}, {5742,59299,0},{5747,59319,0},{5745,59331,0},{5742,59348,0},{5737,59356,0}, {5737,59344,0},{5733,59349,0},{5728,59349,0},{5725,59341,0},{5725,59333,0}, {5723,59334,0},{5722,59346,0},{5717,59351,0},{5720,59359,0},{5715,59358,0}, {5723,59373,0},{5722,59374,0},{5720,59369,0},{5715,59366,0},{5715,59371,0}, {5717,59388,0},{5715,59391,0},{5710,59399,0},{5705,59398,0},{5702,59401,0}, {5700,59399,0},{5698,59401,0},{5695,59401,0},{5698,59398,0},{5697,59393,0}, {5698,59388,0},{5695,59381,0},{5692,59379,0},{5688,59371,0},{5682,59371,0}, {5680,59368,0},{5678,59354,0},{5680,59346,0},{5670,59348,0},{5675,59351,0}, {5675,59359,0},{5673,59366,0},{5672,59366,0},{5670,59363,0},{5670,59354,0}, {5668,59356,0},{5665,59369,0},{5662,59369,0},{5665,59344,0},{5668,59346,0}, {5667,59336,0},{5668,59329,0},{5672,59316,0},{5677,59288,0},{5678,59286,0}, {5683,59308,0},{5682,59323,0},{5682,59329,0},{5683,59331,0},{5685,59306,0}, {5683,59293,0},{5685,59286,0},{5683,59281,0},{5680,59278,0},{5677,59284,0}, {5677,59286,0},{5675,59296,0},{5670,59303,0},{5667,59321,0},{5663,59331,0}, {5662,59344,0},{5662,59343,0},{5662,59313,0},{5662,59314,0},{5660,59333,0}, {5658,59336,0},{5658,59349,0},{5657,59358,0},{5657,59364,0},{5653,59371,0}, {5652,59371,0},{5650,59368,0},{5650,59343,0},{5650,59329,0},{5648,59328,0}, {5648,59341,0},{5647,59341,0},{5645,59336,0},{5645,59323,0},{5642,59329,0}, {5642,59339,0},{5643,59343,0},{5642,59346,0},{5640,59358,0},{5638,59351,0}, {5637,59358,0},{5633,59359,0},{5633,59364,0},{5633,59363,0},{5632,59364,0}, {5632,59371,0},{5628,59378,0},{5630,59359,0},{5630,59354,0},{5630,59356,0}, {5627,59369,0},{5625,59358,0},{5627,59353,0},{5627,59359,0},{5628,59361,0}, {5630,59348,0},{5628,59341,0},{5630,59334,0},{5628,59328,0},{5625,59336,0}, {5623,59334,0},{5622,59344,0},{5623,59349,0},{5622,59353,0},{5622,59359,0}, {5620,59359,0},{5622,59371,0},{5622,59379,0},{5620,59379,0},{5622,59401,0}, {5618,59403,0},{5617,59398,0},{5612,59394,0},{5615,59401,0},{5613,59401,0}, {5610,59403,0},{5608,59396,0},{5605,59391,0},{5603,59394,0},{5607,59404,0}, {5605,59413,0},{5603,59404,0},{5602,59409,0},{5602,59388,0},{5600,59386,0}, {5600,59398,0},{5598,59398,0},{5597,59396,0},{5600,59394,0},{5600,59389,0}, {5597,59396,0},{5597,59424,0},{5593,59429,0},{5590,59428,0},{5588,59416,0}, {5587,59416,0},{5585,59426,0},{5587,59443,0},{5585,59463,0},{5580,59463,0}, {5577,59459,0},{5575,59456,0},{5577,59454,0},{5575,59448,0},{5575,59439,0}, {5573,59441,0},{5573,59449,0},{5573,59461,0},{5582,59471,0},{5582,59476,0}, {5578,59474,0},{5570,59476,0},{5567,59471,0},{5563,59473,0},{5557,59468,0}, {5563,59476,0},{5580,59486,0},{5580,59491,0},{5577,59493,0},{5578,59496,0}, {5577,59499,0},{5578,59501,0},{5578,59503,0},{5575,59503,0},{5572,59498,0}, {5568,59499,0},{5567,59488,0},{5560,59483,0},{5563,59489,0},{5560,59498,0}, {5550,59491,0},{5558,59503,0},{5557,59504,0},{5553,59503,0},{5552,59506,0}, {5552,59504,0},{5552,59503,0},{5545,59494,0},{5545,59491,0},{5540,59493,0}, {5535,59488,0},{5538,59494,0},{5543,59494,0},{5548,59504,0},{5548,59506,0}, {5543,59499,0},{5545,59504,0},{5543,59504,0},{5543,59508,0},{5548,59508,0}, {5550,59509,0},{5548,59516,0},{5543,59514,0},{5543,59516,0},{5540,59501,0}, {5532,59494,0},{5528,59496,0},{5528,59493,0},{5528,59489,0},{5520,59483,0}, {5517,59474,0},{5518,59481,0},{5523,59488,0},{5522,59493,0},{5523,59494,0}, {5527,59499,0},{5525,59501,0},{5518,59489,0},{5512,59484,0},{5505,59469,0}, {5503,59469,0},{5500,59468,0},{5503,59474,0},{5507,59478,0},{5510,59488,0}, {5515,59491,0},{5517,59496,0},{5515,59496,0},{5517,59499,0},{5523,59509,0}, {5525,59516,0},{5528,59519,0},{5528,59523,0},{5520,59516,0},{5523,59523,0}, {5527,59531,0},{5527,59534,0},{5510,59518,0},{5510,59514,0},{5510,59513,0}, {5505,59508,0},{5502,59506,0},{5513,59526,0},{5523,59534,0},{5523,59544,0}, {5527,59544,0},{5533,59558,0},{5528,59561,0},{5527,59564,0},{5522,59561,0}, {5520,59563,0},{5520,59559,0},{5515,59549,0},{5517,59539,0},{5512,59539,0}, {5513,59544,0},{5513,59549,0},{5512,59549,0},{5510,59556,0},{5513,59559,0}, {5515,59563,0},{5513,59573,0},{5517,59583,0},{5520,59583,0},{5522,59586,0}, {5518,59588,0},{5513,59586,0},{5513,59593,0},{5510,59588,0},{5505,59584,0}, {5505,59579,0},{5500,59573,0},{5500,59568,0},{5498,59568,0},{5497,59563,0}, {5495,59564,0},{5488,59553,0},{5485,59549,0},{5485,59554,0},{5482,59553,0}, {5478,59548,0},{5475,59541,0},{5475,59543,0},{5475,59548,0},{5478,59558,0}, {5483,59556,0},{5490,59561,0},{5495,59576,0},{5507,59593,0},{5503,59596,0}, {5518,59608,0},{5522,59614,0},{5517,59614,0},{5518,59618,0},{5523,59619,0}, {5520,59623,0},{5515,59623,0},{5510,59611,0},{5505,59608,0},{5500,59599,0}, {5497,59598,0},{5502,59603,0},{5502,59606,0},{5503,59611,0},{5508,59613,0}, {5510,59618,0},{5507,59621,0},{5512,59623,0},{5512,59626,0},{5508,59624,0}, {5508,59628,0},{5515,59629,0},{5515,59633,0},{5515,59634,0},{5512,59636,0}, {5513,59639,0},{5510,59641,0},{5500,59631,0},{5502,59638,0},{5500,59639,0}, {5495,59646,0},{5490,59634,0},{5490,59643,0},{5492,59643,0},{5492,59646,0}, {5492,59648,0},{5490,59648,0},{5485,59644,0},{5485,59646,0},{5483,59653,0}, {5485,59654,0},{5485,59659,0},{5480,59661,0},{5485,59663,0},{5485,59668,0}, {5482,59668,0},{5480,59676,0},{5480,59684,0},{5477,59679,0},{5478,59686,0}, {5477,59693,0},{5473,59694,0},{5475,59698,0},{5478,59698,0},{5480,59711,0}, {5480,59718,0},{5477,59716,0},{5475,59719,0},{5473,59734,0},{5472,59736,0}, {5473,59741,0},{5473,59751,0},{5470,59756,0},{5468,59758,0},{5468,59763,0}, {5465,59764,0},{5463,59766,0},{5463,59778,0},{5467,59783,0},{5465,59791,0}, {5463,59793,0},{5462,59794,0},{5458,59794,0},{5458,59801,0},{5457,59801,0}, {5455,59793,0},{5455,59798,0},{5450,59798,0},{5448,59794,0},{5447,59766,0}, {5447,59789,0},{5445,59794,0},{5445,59791,0},{5447,59789,0},{5445,59783,0}, {5442,59784,0},{5438,59774,0},{5437,59753,0},{5438,59749,0},{5438,59743,0}, {5437,59721,0},{5435,59718,0},{5433,59718,0},{5432,59709,0},{5433,59726,0}, {5428,59711,0},{5425,59713,0},{5423,59691,0},{5415,59666,0},{5413,59644,0}, {5405,59598,0},{5407,59584,0},{5405,59579,0},{5403,59578,0},{5402,59584,0}, {5400,59584,0},{5402,59593,0},{5402,59604,0},{5407,59634,0},{5410,59654,0}, {5413,59661,0},{5412,59668,0},{5418,59679,0},{5420,59689,0},{5423,59694,0}, {5423,59699,0},{5415,59691,0},{5412,59683,0},{5410,59683,0},{5403,59673,0}, {5403,59633,0},{5402,59644,0},{5397,59638,0},{5393,59616,0},{5383,59589,0}, {5382,59576,0},{5383,59568,0},{5385,59556,0},{5383,59548,0},{5382,59549,0}, {5380,59556,0},{5378,59554,0},{5378,59544,0},{5377,59531,0},{5378,59523,0}, {5370,59534,0},{5370,59529,0},{5368,59526,0},{5362,59524,0},{5357,59529,0}, {5353,59523,0},{5355,59521,0},{5357,59516,0},{5363,59501,0},{5367,59498,0}, {5370,59484,0},{5373,59468,0},{5377,59456,0},{5383,59449,0},{5380,59451,0}, {5375,59448,0},{5373,59443,0},{5372,59444,0},{5372,59454,0},{5372,59461,0}, {5368,59483,0},{5355,59509,0},{5355,59518,0},{5350,59526,0},{5350,59531,0}, {5343,59533,0},{5347,59528,0},{5343,59518,0},{5338,59506,0},{5338,59503,0}, {5335,59499,0},{5337,59496,0},{5335,59494,0},{5333,59498,0},{5335,59518,0}, {5332,59516,0},{5327,59494,0},{5327,59511,0},{5332,59519,0},{5327,59524,0}, {5330,59528,0},{5332,59523,0},{5333,59521,0},{5335,59533,0},{5347,59546,0}, {5345,59549,0},{5348,59549,0},{5347,59554,0},{5348,59558,0},{5352,59546,0}, {5353,59548,0},{5352,59561,0},{5353,59578,0},{5358,59589,0},{5362,59598,0}, {5365,59599,0},{5365,59603,0},{5368,59606,0},{5367,59608,0},{5368,59614,0}, {5367,59619,0},{5368,59628,0},{5372,59629,0},{5372,59634,0},{5375,59634,0}, {5375,59631,0},{5380,59629,0},{5388,59648,0},{5395,59653,0},{5397,59666,0}, {5398,59676,0},{5402,59681,0},{5403,59694,0},{5405,59704,0},{5407,59714,0}, {5410,59723,0},{5407,59741,0},{5407,59758,0},{5410,59751,0},{5410,59739,0}, {5413,59733,0},{5413,59719,0},{5408,59704,0},{5413,59694,0},{5420,59701,0}, {5420,59713,0},{5423,59713,0},{5423,59718,0},{5423,59733,0},{5420,59744,0}, {5422,59748,0},{5420,59751,0},{5422,59758,0},{5418,59758,0},{5420,59771,0}, {5418,59776,0},{5417,59774,0},{5418,59779,0},{5417,59783,0},{5420,59789,0}, {5418,59793,0},{5415,59798,0},{5413,59796,0},{5413,59799,0},{5410,59799,0}, {5400,59806,0},{5397,59813,0},{5393,59821,0},{5393,59814,0},{5388,59814,0}, {5385,59821,0},{5382,59828,0},{5382,59823,0},{5380,59826,0},{5378,59821,0}, {5377,59819,0},{5373,59824,0},{5363,59788,0},{5358,59781,0},{5362,59791,0}, {5360,59791,0},{5358,59804,0},{5355,59801,0},{5353,59806,0},{5350,59806,0}, {5343,59799,0},{5343,59808,0},{5348,59808,0},{5353,59821,0},{5357,59823,0}, {5357,59819,0},{5358,59823,0},{5362,59823,0},{5363,59828,0},{5367,59829,0}, {5372,59834,0},{5373,59839,0},{5372,59848,0},{5373,59853,0},{5372,59856,0}, {5373,59858,0},{5373,59861,0},{5375,59861,0},{5375,59866,0},{5372,59869,0}, {5373,59874,0},{5375,59873,0},{5377,59874,0},{5378,59888,0},{5377,59893,0}, {5373,59893,0},{5373,59894,0},{5372,59893,0},{5370,59881,0},{5367,59876,0}, {5368,59866,0},{5367,59863,0},{5362,59888,0},{5363,59903,0},{5360,59909,0}, {5360,59903,0},{5358,59901,0},{5358,59904,0},{5357,59933,0},{5355,59938,0}, {5350,59936,0},{5352,59929,0},{5353,59931,0},{5353,59929,0},{5357,59911,0}, {5355,59909,0},{5353,59909,0},{5347,59933,0},{5343,59933,0},{5342,59939,0}, {5337,59933,0},{5337,59938,0},{5340,59944,0},{5337,59949,0},{5335,59948,0}, {5333,59956,0},{5332,59953,0},{5330,59944,0},{5328,59954,0},{5327,59954,0}, {5325,59949,0},{5323,59953,0},{5323,59958,0},{5327,59959,0},{5325,59961,0}, {5320,59958,0},{5320,59953,0},{5318,59956,0},{5318,59959,0},{5317,59959,0}, {5313,59961,0},{5310,59953,0},{5312,59941,0},{5308,59948,0},{5303,59944,0}, {5303,59931,0},{5303,59919,0},{5302,59928,0},{5298,59923,0},{5297,59924,0}, {5300,59933,0},{5300,59941,0},{5297,59948,0},{5295,59944,0},{5292,59953,0}, {5290,59953,0},{5288,59956,0},{5283,59956,0},{5282,59948,0},{5282,59946,0}, {5282,59939,0},{5280,59936,0},{5278,59944,0},{5277,59936,0},{5280,59931,0}, {5282,59919,0},{5278,59921,0},{5277,59931,0},{5272,59934,0},{5272,59936,0}, {5268,59939,0},{5268,59958,0},{5265,59963,0},{5263,59958,0},{5262,59961,0}, {5260,59956,0},{5262,59953,0},{5262,59946,0},{5263,59943,0},{5265,59931,0}, {5265,59926,0},{5265,59924,0},{5265,59931,0},{5262,59939,0},{5258,59931,0}, {5257,59938,0},{5255,59936,0},{5257,59928,0},{5253,59914,0},{5258,59903,0}, {5260,59886,0},{5257,59891,0},{5257,59901,0},{5253,59911,0},{5253,59919,0}, {5255,59924,0},{5253,59933,0},{5250,59939,0},{5252,59953,0},{5248,59951,0}, {5250,59961,0},{5247,59963,0},{5245,59959,0},{5243,59971,0},{5240,59969,0}, {5237,59973,0},{5235,59971,0},{5238,59963,0},{5238,59956,0},{5237,59954,0}, {5237,59958,0},{5235,59959,0},{5233,59958,0},{5243,59916,0},{5240,59923,0}, {5237,59939,0},{5235,59941,0},{5232,59954,0},{5230,59951,0},{5230,59958,0}, {5228,59959,0},{5230,59966,0},{5227,59964,0},{5225,59958,0},{5223,59958,0}, {5225,59963,0},{5223,59969,0},{5222,59974,0},{5222,59958,0},{5218,59961,0}, {5218,59968,0},{5213,59964,0},{5210,59968,0},{5208,59966,0},{5208,59956,0}, {5205,59959,0},{5200,59951,0},{5202,59939,0},{5197,59946,0},{5193,59944,0}, {5187,59924,0},{5182,59916,0},{5178,59914,0},{5178,59901,0},{5175,59901,0}, {5173,59896,0},{5175,59893,0},{5168,59888,0},{5165,59878,0},{5165,59868,0}, {5160,59868,0},{5157,59861,0},{5153,59859,0},{5153,59856,0},{5148,59854,0}, {5147,59851,0},{5148,59843,0},{5142,59841,0},{5142,59828,0},{5142,59821,0}, {5142,59819,0},{5142,59814,0},{5150,59811,0},{5148,59798,0},{5147,59796,0}, {5148,59793,0},{5147,59791,0},{5145,59791,0},{5145,59789,0},{5147,59788,0}, {5143,59784,0},{5143,59776,0},{5147,59778,0},{5143,59774,0},{5143,59768,0}, {5148,59768,0},{5147,59761,0},{5140,59759,0},{5142,59756,0},{5143,59756,0}, {5142,59754,0},{5132,59734,0},{5128,59723,0},{5130,59721,0},{5127,59714,0}, {5128,59709,0},{5133,59711,0},{5133,59708,0},{5132,59709,0},{5130,59708,0}, {5128,59706,0},{5127,59706,0},{5130,59694,0},{5130,59688,0},{5125,59678,0}, {5127,59676,0},{5128,59673,0},{5123,59673,0},{5123,59671,0},{5125,59669,0}, {5122,59669,0},{5118,59676,0},{5115,59674,0},{5113,59669,0},{5110,59663,0}, {5108,59658,0},{5107,59654,0},{5108,59653,0},{5105,59651,0},{5103,59653,0}, {5100,59648,0},{5100,59644,0},{5103,59648,0},{5105,59646,0},{5102,59639,0}, {5102,59636,0},{5100,59636,0},{5100,59641,0},{5095,59639,0},{5093,59641,0}, {5090,59639,0},{5088,59643,0},{5087,59638,0},{5083,59641,0},{5078,59633,0}, {5075,59634,0},{5077,59629,0},{5078,59626,0},{5082,59626,0},{5087,59631,0}, {5088,59629,0},{5088,59626,0},{5080,59624,0},{5075,59616,0},{5073,59616,0}, {5073,59614,0},{5075,59613,0},{5075,59609,0},{5072,59609,0},{5070,59604,0}, {5067,59601,0},{5067,59594,0},{5063,59594,0},{5062,59589,0},{5057,59588,0}, {5057,59584,0},{5053,59584,0},{5052,59581,0},{5048,59578,0},{5047,59564,0}, {5043,59561,0},{5043,59554,0},{5037,59548,0},{5037,59551,0},{5033,59551,0}, {5035,59554,0},{5032,59553,0},{5028,59544,0},{5025,59541,0},{5023,59533,0}, {5025,59529,0},{5023,59524,0},{5020,59523,0},{5023,59523,0},{5023,59519,0}, {5025,59521,0},{5028,59521,0},{5028,59518,0},{5023,59511,0},{5023,59509,0}, {5027,59513,0},{5027,59509,0},{5028,59508,0},{5025,59508,0},{5025,59499,0}, {5022,59499,0},{5025,59496,0},{5023,59493,0},{5027,59491,0},{5020,59478,0}, {5022,59474,0},{5025,59474,0},{5022,59469,0},{5023,59469,0},{5023,59461,0}, {5020,59458,0},{5022,59454,0},{5022,59453,0},{5027,59458,0},{5022,59444,0}, {5020,59443,0},{5022,59441,0},{5023,59433,0},{5020,59431,0},{5022,59426,0}, {5018,59424,0},{5020,59421,0},{5018,59419,0},{5020,59416,0},{5020,59406,0}, {5008,59364,0},{5010,59358,0},{5015,59376,0},{5018,59378,0},{5013,59361,0}, {5013,59356,0},{5018,59354,0},{5020,59351,0},{5023,59349,0},{5023,59314,0}, {5027,59308,0},{5027,59306,0},{5028,59304,0},{5027,59298,0},{5030,59296,0}, {5025,59291,0},{5028,59283,0},{5027,59279,0},{5028,59263,0},{5028,59261,0}, {5032,59264,0},{5030,59258,0},{5028,59256,0},{5028,59239,0},{5032,59236,0}, {5028,59229,0},{5030,59221,0},{5028,59218,0},{5025,59219,0},{5023,59213,0}, {5023,59198,0},{5022,59196,0},{5022,59193,0},{5027,59188,0},{5025,59174,0}, {5027,59173,0},{5027,59169,0},{5030,59166,0},{5030,59158,0},{5032,59154,0}, {5028,59128,0},{5027,59119,0},{5027,59109,0},{5032,59089,0},{5028,59083,0}, {5028,59073,0},{5027,59049,0},{5027,59046,0},{5030,59044,0},{5028,59038,0}, {5030,59024,0},{5028,59018,0},{5032,59011,0},{5030,59009,0},{5030,58989,0}, {5025,58964,0},{5027,58951,0},{5028,58946,0},{5028,58941,0},{5027,58936,0}, {5022,58931,0},{5022,58928,0},{5025,58926,0},{5022,58926,0},{5018,58928,0}, {5022,58913,0},{5020,58899,0},{5022,58896,0},{5027,58894,0},{5027,58889,0}, {5022,58883,0},{5018,58881,0},{5017,58884,0},{5017,58893,0},{5013,58889,0}, {5015,58881,0},{5015,58878,0},{5018,58873,0},{5015,58874,0},{5013,58869,0}, {5005,58863,0},{5002,58848,0},{4997,58839,0},{4995,58838,0},{4992,58839,0}, {4982,58833,0},{4985,58829,0},{4982,58821,0},{4975,58818,0},{4968,58819,0}, {4958,58813,0},{4948,58813,0},{4933,58799,0},{4933,58778,0},{4930,58769,0}, {4932,58764,0},{4930,58759,0},{4927,58754,0},{4930,58741,0},{4928,58736,0}, {4928,58731,0},{4925,58728,0},{4927,58724,0},{4920,58721,0},{4918,58713,0}, {4920,58706,0},{4917,58711,0},{4917,58716,0},{4912,58718,0},{4910,58711,0}, {4910,58703,0},{4905,58696,0},{4907,58691,0},{4910,58698,0},{4913,58699,0}, {4915,58696,0},{4918,58694,0},{4918,58691,0},{4918,58694,0},{4912,58696,0}, {4908,58691,0},{4905,58676,0},{4900,58673,0},{4895,58671,0},{4893,58666,0}, {4892,58671,0},{4890,58658,0},{4888,58654,0},{4882,58641,0},{4878,58639,0}, {4877,58629,0},{4860,58621,0},{4858,58619,0},{4858,58613,0},{4845,58606,0}, {4835,58596,0},{4830,58593,0},{4825,58583,0},{4823,58578,0},{4813,58568,0}, {4815,58554,0},{4822,58548,0},{4825,58541,0},{4827,58539,0},{4827,58523,0}, {4837,58499,0},{4837,58493,0},{4838,58476,0},{4838,58468,0},{4843,58459,0}, {4843,58453,0},{4847,58438,0},{4843,58429,0},{4845,58438,0},{4843,58441,0}, {4840,58458,0},{4837,58456,0},{4835,58448,0},{4832,58449,0},{4835,58459,0}, {4835,58481,0},{4832,58503,0},{4830,58504,0},{4830,58509,0},{4827,58514,0}, {4823,58518,0},{4823,58526,0},{4825,58533,0},{4823,58536,0},{4822,58544,0}, {4815,58549,0},{4812,58563,0},{4807,58558,0},{4800,58558,0},{4797,58554,0}, {4792,58553,0},{4785,58546,0},{4777,58543,0},{4775,58539,0},{4770,58534,0}, {4767,58523,0},{4763,58523,0},{4758,58516,0},{4750,58513,0},{4743,58491,0}, {4743,58486,0},{4738,58486,0},{4727,58479,0},{4710,58464,0},{4707,58454,0}, {4705,58446,0},{4700,58439,0},{4687,58418,0},{4682,58414,0},{4675,58406,0}, {4678,58414,0},{4685,58421,0},{4685,58436,0},{4690,58444,0},{4690,58451,0}, {4692,58454,0},{4692,58459,0},{4695,58463,0},{4702,58486,0},{4718,58504,0}, {4732,58516,0},{4733,58524,0},{4738,58531,0},{4745,58533,0},{4748,58534,0}, {4753,58546,0},{4782,58576,0},{4783,58581,0},{4787,58581,0},{4800,58593,0}, {4802,58603,0},{4810,58613,0},{4815,58623,0},{4825,58633,0},{4833,58651,0}, {4837,58654,0},{4837,58663,0},{4843,58674,0},{4845,58683,0},{4853,58691,0}, {4855,58701,0},{4863,58713,0},{4865,58724,0},{4868,58731,0},{4870,58739,0}, {4885,58781,0},{4887,58793,0},{4892,58803,0},{4897,58828,0},{4912,58873,0}, {4913,58888,0},{4917,58894,0},{4922,58928,0},{4922,58946,0},{4923,58959,0}, {4923,58963,0},{4927,58976,0},{4927,58991,0},{4923,59013,0},{4922,59039,0}, {4918,59056,0},{4915,59063,0},{4912,59078,0},{4897,59106,0},{4888,59114,0}, {4882,59114,0},{4875,59121,0},{4882,59106,0},{4888,59081,0},{4883,59089,0}, {4882,59083,0},{4882,59096,0},{4878,59099,0},{4878,59094,0},{4877,59093,0}, {4877,59098,0},{4875,59103,0},{4863,59119,0},{4862,59111,0},{4860,59109,0}, {4855,59108,0},{4852,59118,0},{4850,59114,0},{4847,59104,0},{4842,59104,0}, {4840,59086,0},{4835,59071,0},{4833,59064,0},{4832,59066,0},{4820,59059,0}, {4817,59043,0},{4818,59039,0},{4815,59041,0},{4803,59016,0},{4800,59006,0}, {4800,58989,0},{4805,58986,0},{4812,58954,0},{4817,58948,0},{4822,58946,0}, {4818,58944,0},{4818,58941,0},{4817,58936,0},{4812,58933,0},{4810,58928,0}, {4812,58913,0},{4812,58906,0},{4810,58909,0},{4807,58908,0},{4810,58901,0}, {4812,58894,0},{4812,58888,0},{4810,58884,0},{4805,58883,0},{4805,58873,0}, {4803,58869,0},{4800,58851,0},{4798,58861,0},{4802,58869,0},{4802,58874,0}, {4807,58893,0},{4807,58901,0},{4802,58901,0},{4800,58911,0},{4797,58921,0}, {4793,58928,0},{4792,58953,0},{4787,58961,0},{4782,58964,0},{4772,58968,0}, {4767,58973,0},{4765,58969,0},{4762,58973,0},{4767,58976,0},{4768,58988,0}, {4775,59001,0},{4780,59013,0},{4785,59031,0},{4783,59038,0},{4780,59031,0}, {4778,59029,0},{4782,59053,0},{4780,59056,0},{4778,59058,0},{4775,59056,0}, {4775,59049,0},{4773,59053,0},{4775,59058,0},{4770,59059,0},{4772,59061,0}, {4775,59059,0},{4777,59063,0},{4773,59068,0},{4772,59069,0},{4770,59061,0}, {4768,59059,0},{4767,59054,0},{4762,59054,0},{4755,59046,0},{4752,59046,0}, {4752,59049,0},{4748,59046,0},{4747,59044,0},{4745,59043,0},{4748,59046,0}, {4748,59049,0},{4745,59048,0},{4743,59048,0},{4735,59044,0},{4740,59046,0}, {4737,59043,0},{4728,59039,0},{4727,59033,0},{4713,59013,0},{4708,58999,0}, {4707,59008,0},{4708,59009,0},{4708,59016,0},{4705,59014,0},{4705,59019,0}, {4708,59026,0},{4708,59034,0},{4705,59038,0},{4708,59043,0},{4708,59056,0}, {4705,59053,0},{4698,59056,0},{4692,59046,0},{4683,59046,0},{4678,59049,0}, {4672,59058,0},{4670,59051,0},{4667,59051,0},{4670,59054,0},{4667,59061,0}, {4670,59061,0},{4668,59064,0},{4658,59064,0},{4650,59069,0},{4648,59064,0}, {4645,59068,0},{4647,59071,0},{4642,59074,0},{4633,59073,0},{4632,59066,0}, {4633,59076,0},{4633,59078,0},{4637,59079,0},{4632,59084,0},{4628,59079,0}, {4622,59079,0},{4623,59084,0},{4625,59084,0},{4622,59099,0},{4623,59111,0}, {4622,59114,0},{4620,59121,0},{4618,59119,0},{4615,59121,0},{4618,59124,0}, {4615,59128,0},{4618,59131,0},{4618,59141,0},{4612,59158,0},{4610,59159,0}, {4608,59156,0},{4608,59151,0},{4605,59144,0},{4607,59129,0},{4602,59126,0}, {4598,59133,0},{4600,59134,0},{4598,59143,0},{4597,59149,0},{4593,59149,0}, {4592,59154,0},{4588,59156,0},{4587,59164,0},{4587,59163,0},{4583,59161,0}, {4585,59168,0},{4583,59169,0},{4582,59169,0},{4583,59171,0},{4587,59171,0}, {4587,59173,0},{4587,59178,0},{4588,59188,0},{4587,59194,0},{4585,59194,0}, {4585,59188,0},{4582,59193,0},{4582,59184,0},{4580,59186,0},{4580,59213,0}, {4577,59204,0},{4577,59198,0},{4575,59199,0},{4572,59208,0},{4575,59211,0}, {4573,59211,0},{4577,59218,0},{4573,59218,0},{4577,59224,0},{4575,59229,0}, {4578,59228,0},{4580,59224,0},{4582,59226,0},{4577,59258,0},{4577,59269,0}, {4575,59264,0},{4575,59261,0},{4573,59263,0},{4573,59269,0},{4572,59273,0}, {4567,59259,0},{4563,59258,0},{4565,59261,0},{4563,59263,0},{4562,59261,0}, {4565,59266,0},{4563,59271,0},{4567,59269,0},{4568,59274,0},{4567,59281,0}, {4565,59283,0},{4565,59289,0},{4562,59284,0},{4560,59288,0},{4562,59289,0}, {4567,59301,0},{4565,59293,0},{4567,59294,0},{4570,59311,0},{4578,59328,0}, {4587,59339,0},{4588,59344,0},{4587,59346,0},{4583,59344,0},{4568,59348,0}, {4567,59354,0},{4563,59356,0},{4562,59364,0},{4562,59369,0},{4563,59373,0}, {4562,59371,0},{4562,59374,0},{4567,59379,0},{4568,59389,0},{4560,59399,0}, {4558,59399,0},{4553,59403,0},{4550,59413,0},{4545,59413,0},{4540,59399,0}, {4542,59399,0},{4538,59389,0},{4537,59388,0},{4535,59389,0},{4533,59411,0}, {4535,59424,0},{4533,59433,0},{4532,59439,0},{4527,59439,0},{4530,59433,0}, {4527,59434,0},{4523,59431,0},{4520,59424,0},{4523,59421,0},{4527,59424,0}, {4525,59419,0},{4520,59419,0},{4525,59416,0},{4525,59409,0},{4522,59399,0}, {4518,59399,0},{4518,59403,0},{4517,59401,0},{4515,59396,0},{4517,59393,0}, {4515,59391,0},{4515,59384,0},{4513,59381,0},{4515,59374,0},{4517,59373,0}, {4515,59371,0},{4518,59366,0},{4512,59373,0},{4512,59369,0},{4508,59371,0}, {4508,59366,0},{4510,59366,0},{4508,59364,0},{4510,59361,0},{4508,59361,0}, {4510,59354,0},{4507,59354,0},{4508,59351,0},{4505,59353,0},{4505,59348,0}, {4502,59348,0},{4505,59343,0},{4502,59341,0},{4502,59336,0},{4502,59334,0}, {4500,59331,0},{4498,59338,0},{4498,59329,0},{4497,59329,0},{4498,59321,0}, {4495,59318,0},{4495,59313,0},{4493,59309,0},{4492,59304,0},{4492,59303,0}, {4488,59303,0},{4492,59299,0},{4490,59296,0},{4488,59296,0},{4485,59291,0}, {4483,59291,0},{4490,59288,0},{4485,59284,0},{4487,59281,0},{4483,59279,0}, {4480,59283,0},{4480,59279,0},{4483,59278,0},{4483,59274,0},{4482,59274,0}, {4480,59269,0},{4478,59271,0},{4480,59268,0},{4478,59261,0},{4478,59256,0}, {4475,59253,0},{4472,59256,0},{4472,59253,0},{4473,59249,0},{4472,59249,0}, {4473,59243,0},{4470,59238,0},{4472,59236,0},{4477,59236,0},{4477,59234,0}, {4477,59233,0},{4477,59229,0},{4470,59234,0},{4467,59231,0},{4472,59231,0}, {4473,59226,0},{4478,59224,0},{4473,59224,0},{4468,59221,0},{4470,59219,0}, {4473,59221,0},{4467,59216,0},{4473,59213,0},{4472,59211,0},{4468,59213,0}, {4465,59208,0},{4463,59208,0},{4463,59196,0},{4465,59194,0},{4467,59198,0}, {4468,59196,0},{4467,59191,0},{4463,59194,0},{4458,59193,0},{4468,59176,0}, {4470,59174,0},{4472,59171,0},{4467,59173,0},{4467,59178,0},{4463,59179,0}, {4458,59183,0},{4455,59181,0},{4452,59184,0},{4448,59183,0},{4447,59179,0}, {4447,59178,0},{4448,59178,0},{4448,59176,0},{4443,59173,0},{4447,59173,0}, {4447,59166,0},{4445,59166,0},{4447,59161,0},{4450,59159,0},{4447,59158,0}, {4447,59156,0},{4448,59154,0},{4453,59158,0},{4450,59156,0},{4452,59153,0}, {4450,59151,0},{4448,59149,0},{4452,59143,0},{4453,59141,0},{4458,59144,0}, {4462,59143,0},{4463,59144,0},{4465,59143,0},{4468,59148,0},{4465,59138,0}, {4463,59129,0},{4458,59129,0},{4452,59134,0},{4452,59131,0},{4447,59128,0}, {4448,59124,0},{4455,59124,0},{4458,59119,0},{4457,59116,0},{4453,59114,0}, {4457,59106,0},{4450,59106,0},{4447,59104,0},{4447,59106,0},{4445,59101,0}, {4442,59103,0},{4440,59111,0},{4440,59106,0},{4438,59106,0},{4437,59114,0}, {4435,59101,0},{4433,59103,0},{4432,59106,0},{4435,59106,0},{4432,59109,0}, {4430,59108,0},{4428,59108,0},{4430,59113,0},{4427,59111,0},{4425,59108,0}, {4427,59103,0},{4430,59103,0},{4433,59094,0},{4428,59101,0},{4425,59099,0}, {4425,59096,0},{4413,59086,0},{4415,59083,0},{4415,59079,0},{4415,59076,0}, {4413,59074,0},{4412,59078,0},{4413,59079,0},{4412,59081,0},{4408,59081,0}, {4407,59078,0},{4407,59074,0},{4405,59071,0},{4405,59064,0},{4403,59069,0}, {4398,59069,0},{4398,59066,0},{4395,59063,0},{4395,59054,0},{4392,59051,0}, {4388,59056,0},{4387,59058,0},{4387,59054,0},{4382,59053,0},{4382,59051,0}, {4387,59049,0},{4388,59046,0},{4383,59048,0},{4380,59048,0},{4380,59044,0}, {4387,59039,0},{4385,59039,0},{4382,59041,0},{4380,59043,0},{4375,59039,0}, {4383,59033,0},{4375,59036,0},{4370,59033,0},{4372,59031,0},{4370,59029,0}, {4370,59028,0},{4375,59028,0},{4367,59024,0},{4368,59021,0},{4375,59023,0}, {4372,59019,0},{4370,59018,0},{4380,59013,0},{4378,59013,0},{4378,59011,0}, {4372,59014,0},{4368,59011,0},{4367,59009,0},{4368,59006,0},{4370,59003,0}, {4375,59004,0},{4377,59003,0},{4373,59003,0},{4373,58999,0},{4367,59003,0}, {4362,59001,0},{4360,58999,0},{4355,59003,0},{4357,58999,0},{4357,58996,0}, {4360,58991,0},{4357,58991,0},{4353,58996,0},{4350,58994,0},{4355,58993,0}, {4355,58991,0},{4352,58989,0},{4352,58988,0},{4347,58989,0},{4353,58981,0}, {4355,58981,0},{4357,58979,0},{4348,58971,0},{4350,58969,0},{4350,58963,0}, {4357,58963,0},{4357,58961,0},{4355,58961,0},{4357,58958,0},{4368,58958,0}, {4365,58956,0},{4362,58956,0},{4363,58954,0},{4370,58954,0},{4373,58951,0}, {4380,58949,0},{4377,58949,0},{4383,58944,0},{4382,58943,0},{4380,58943,0}, {4378,58941,0},{4378,58938,0},{4385,58938,0},{4383,58936,0},{4380,58936,0}, {4373,58939,0},{4370,58938,0},{4373,58936,0},{4368,58934,0},{4375,58931,0}, {4372,58931,0},{4373,58929,0},{4377,58928,0},{4373,58924,0},{4380,58923,0}, {4383,58926,0},{4383,58923,0},{4382,58923,0},{4383,58921,0},{4385,58919,0}, {4402,58921,0},{4408,58918,0},{4410,58914,0},{4417,58918,0},{4423,58923,0}, {4433,58924,0},{4448,58938,0},{4453,58949,0},{4458,58951,0},{4458,58941,0}, {4445,58924,0},{4438,58918,0},{4442,58918,0},{4460,58941,0},{4462,58946,0}, {4468,58958,0},{4467,58959,0},{4460,58961,0},{4462,58968,0},{4468,58976,0}, {4478,58993,0},{4468,58971,0},{4470,58968,0},{4467,58964,0},{4468,58961,0}, {4470,58961,0},{4490,58998,0},{4492,59006,0},{4500,59019,0},{4505,59033,0}, {4515,59054,0},{4522,59079,0},{4525,59093,0},{4528,59096,0},{4530,59096,0}, {4533,59088,0},{4530,59103,0},{4527,59104,0},{4523,59101,0},{4520,59099,0}, {4517,59101,0},{4515,59098,0},{4513,59098,0},{4510,59099,0},{4513,59104,0}, {4510,59114,0},{4505,59121,0},{4498,59121,0},{4500,59121,0},{4500,59126,0}, {4502,59124,0},{4505,59126,0},{4505,59124,0},{4512,59116,0},{4515,59116,0}, {4517,59119,0},{4520,59121,0},{4528,59148,0},{4527,59151,0},{4528,59156,0}, {4532,59158,0},{4530,59163,0},{4532,59164,0},{4532,59178,0},{4533,59183,0}, {4532,59188,0},{4528,59189,0},{4533,59189,0},{4537,59199,0},{4537,59184,0}, {4540,59176,0},{4538,59173,0},{4540,59161,0},{4538,59151,0},{4535,59148,0}, {4537,59144,0},{4538,59144,0},{4540,59139,0},{4538,59136,0},{4538,59131,0}, {4540,59133,0},{4542,59129,0},{4540,59114,0},{4538,59111,0},{4540,59104,0}, {4537,59104,0},{4537,59098,0},{4540,59091,0},{4542,59079,0},{4538,59069,0}, {4535,59064,0},{4533,59066,0},{4532,59061,0},{4528,59059,0},{4532,59059,0}, {4533,59059,0},{4535,59054,0},{4535,59049,0},{4532,59043,0},{4535,59043,0}, {4542,59044,0},{4545,59051,0},{4547,59056,0},{4548,59053,0},{4553,59068,0}, {4558,59073,0},{4560,59079,0},{4567,59088,0},{4568,59091,0},{4572,59093,0}, {4573,59093,0},{4575,59096,0},{4580,59099,0},{4582,59106,0},{4580,59106,0}, {4577,59103,0},{4573,59103,0},{4577,59109,0},{4577,59106,0},{4580,59108,0}, {4583,59109,0},{4588,59103,0},{4588,59099,0},{4587,59103,0},{4577,59089,0}, {4572,59088,0},{4573,59081,0},{4577,59084,0},{4582,59088,0},{4585,59083,0}, {4590,59083,0},{4587,59081,0},{4590,59078,0},{4595,59074,0},{4600,59068,0}, {4605,59068,0},{4608,59061,0},{4608,59059,0},{4603,59066,0},{4600,59066,0}, {4593,59074,0},{4585,59079,0},{4580,59076,0},{4575,59069,0},{4572,59071,0}, {4572,59066,0},{4562,59061,0},{4560,59058,0},{4563,59054,0},{4562,59044,0}, {4555,59034,0},{4545,59003,0},{4537,58984,0},{4532,58981,0},{4532,58974,0}, {4527,58964,0},{4525,58963,0},{4527,58958,0},{4525,58954,0},{4520,58946,0}, {4522,58938,0},{4528,58933,0},{4528,58926,0},{4530,58923,0},{4532,58923,0}, {4538,58934,0},{4542,58936,0},{4547,58936,0},{4542,58931,0},{4535,58928,0}, {4535,58923,0},{4533,58916,0},{4528,58921,0},{4528,58928,0},{4525,58931,0}, {4522,58923,0},{4520,58921,0},{4517,58914,0},{4522,58911,0},{4520,58904,0}, {4518,58906,0},{4518,58911,0},{4517,58911,0},{4513,58904,0},{4515,58901,0}, {4512,58901,0},{4510,58896,0},{4507,58893,0},{4508,58889,0},{4512,58889,0}, {4515,58888,0},{4513,58884,0},{4515,58883,0},{4508,58871,0},{4507,58866,0}, {4508,58864,0},{4505,58861,0},{4507,58856,0},{4508,58858,0},{4510,58858,0}, {4508,58856,0},{4508,58851,0},{4505,58848,0},{4507,58846,0},{4512,58846,0}, {4513,58851,0},{4515,58843,0},{4518,58841,0},{4515,58838,0},{4517,58833,0}, {4512,58831,0},{4508,58833,0},{4515,58824,0},{4522,58823,0},{4522,58821,0}, {4525,58818,0},{4522,58818,0},{4518,58819,0},{4518,58816,0},{4517,58816,0}, {4517,58819,0},{4508,58826,0},{4507,58826,0},{4498,58833,0},{4493,58829,0}, {4497,58826,0},{4495,58824,0},{4492,58826,0},{4490,58824,0},{4493,58818,0}, {4492,58816,0},{4488,58821,0},{4483,58823,0},{4488,58823,0},{4487,58826,0}, {4490,58826,0},{4487,58831,0},{4483,58829,0},{4485,58833,0},{4492,58831,0}, {4487,58836,0},{4487,58838,0},{4483,58839,0},{4478,58833,0},{4478,58829,0}, {4477,58829,0},{4475,58826,0},{4472,58826,0},{4467,58816,0},{4467,58818,0}, {4467,58813,0},{4468,58811,0},{4467,58809,0},{4465,58811,0},{4465,58809,0}, {4467,58804,0},{4472,58806,0},{4472,58801,0},{4470,58801,0},{4472,58798,0}, {4470,58798,0},{4468,58799,0},{4465,58799,0},{4463,58801,0},{4463,58798,0}, {4462,58796,0},{4468,58793,0},{4468,58791,0},{4462,58793,0},{4462,58786,0}, {4465,58786,0},{4463,58784,0},{4467,58783,0},{4467,58781,0},{4465,58781,0}, {4463,58778,0},{4463,58781,0},{4455,58779,0},{4455,58773,0},{4457,58773,0}, {4458,58771,0},{4455,58768,0},{4452,58766,0},{4452,58763,0},{4462,58763,0}, {4455,58759,0},{4455,58756,0},{4460,58759,0},{4462,58758,0},{4458,58756,0}, {4460,58753,0},{4455,58751,0},{4457,58749,0},{4450,58753,0},{4450,58748,0}, {4442,58746,0},{4443,58744,0},{4450,58746,0},{4450,58744,0},{4443,58743,0}, {4443,58741,0},{4452,58739,0},{4448,58738,0},{4448,58734,0},{4447,58734,0}, {4445,58738,0},{4442,58739,0},{4440,58738,0},{4442,58734,0},{4440,58734,0}, {4435,58731,0},{4437,58729,0},{4438,58729,0},{4440,58728,0},{4442,58726,0}, {4447,58726,0},{4448,58726,0},{4452,58721,0},{4447,58721,0},{4448,58718,0}, {4453,58718,0},{4453,58716,0},{4448,58714,0},{4450,58711,0},{4453,58711,0}, {4453,58706,0},{4452,58706,0},{4452,58709,0},{4447,58709,0},{4447,58701,0}, {4443,58698,0},{4442,58698,0},{4442,58694,0},{4450,58694,0},{4450,58689,0}, {4448,58691,0},{4440,58691,0},{4440,58689,0},{4445,58689,0},{4442,58684,0}, {4443,58679,0},{4438,58683,0},{4432,58681,0},{4432,58684,0},{4428,58684,0}, {4428,58683,0},{4427,58684,0},{4425,58684,0},{4430,58674,0},{4432,58668,0}, {4437,58663,0},{4433,58658,0},{4433,58654,0},{4438,58658,0},{4438,58661,0}, {4440,58661,0},{4442,58661,0},{4442,58668,0},{4445,58664,0},{4445,58661,0}, {4440,58656,0},{4443,58656,0},{4457,58663,0},{4458,58656,0},{4448,58654,0}, {4447,58653,0},{4447,58651,0},{4450,58651,0},{4448,58648,0},{4445,58644,0}, {4443,58638,0},{4435,58643,0},{4430,58636,0},{4422,58631,0},{4410,58628,0}, {4410,58631,0},{4407,58629,0},{4405,58624,0},{4402,58624,0},{4400,58618,0}, {4398,58616,0},{4397,58618,0},{4393,58611,0},{4397,58609,0},{4402,58614,0}, {4402,58613,0},{4395,58606,0},{4400,58606,0},{4398,58599,0},{4402,58603,0}, {4403,58599,0},{4407,58601,0},{4407,58599,0},{4405,58599,0},{4405,58596,0}, {4402,58598,0},{4400,58596,0},{4400,58594,0},{4385,58586,0},{4392,58583,0}, {4385,58581,0},{4390,58579,0},{4393,58581,0},{4397,58579,0},{4402,58584,0}, {4403,58583,0},{4402,58581,0},{4397,58578,0},{4390,58578,0},{4385,58579,0}, {4383,58578,0},{4387,58578,0},{4385,58576,0},{4388,58569,0},{4393,58571,0}, {4393,58574,0},{4395,58571,0},{4400,58573,0},{4403,58576,0},{4403,58573,0}, {4402,58569,0},{4392,58561,0},{4388,58561,0},{4388,58564,0},{4383,58563,0}, {4387,58566,0},{4385,58566,0},{4378,58564,0},{4377,58561,0},{4398,58556,0}, {4403,58558,0},{4407,58559,0},{4408,58559,0},{4407,58558,0},{4400,58549,0}, {4397,58549,0},{4398,58554,0},{4375,58559,0},{4372,58554,0},{4375,58553,0}, {4377,58551,0},{4380,58551,0},{4385,58553,0},{4385,58551,0},{4388,58551,0}, {4388,58549,0},{4387,58546,0},{4385,58549,0},{4380,58548,0},{4380,58546,0}, {4382,58546,0},{4380,58544,0},{4373,58538,0},{4385,58544,0},{4387,58543,0}, {4385,58543,0},{4375,58536,0},{4377,58534,0},{4387,58541,0},{4385,58538,0}, {4383,58536,0},{4387,58538,0},{4388,58538,0},{4383,58533,0},{4383,58528,0}, {4378,58519,0},{4375,58518,0},{4372,58513,0},{4367,58513,0},{4367,58508,0}, {4365,58509,0},{4365,58516,0},{4358,58518,0},{4357,58511,0},{4358,58511,0}, {4357,58509,0},{4353,58506,0},{4357,58506,0},{4357,58503,0},{4350,58499,0}, {4347,58501,0},{4348,58504,0},{4347,58504,0},{4337,58491,0},{4335,58484,0}, {4327,58478,0},{4322,58479,0},{4320,58476,0},{4318,58478,0},{4317,58474,0}, {4308,58469,0},{4312,58463,0},{4307,58461,0},{4308,58463,128},{4305,58461,0}, {4305,58466,0},{4293,58458,0},{4287,58454,0},{4142,58489,129},{4138,58498,1}, {4137,58501,1},{4135,58496,1},{4133,58483,1},{4133,58466,1},{4132,58458,1}, {4135,58453,1},{4145,58464,1},{4142,58489,1},{4288,58454,128},{4287,58454,0}, {4285,58454,0},{4272,58458,0},{4267,58464,0},{4267,58468,0},{4268,58471,0}, {4268,58474,0},{4267,58474,0},{4263,58476,0},{4262,58483,0},{4262,58484,0}, {4258,58484,0},{4258,58471,0},{4257,58461,0},{4252,58458,0},{4248,58458,0}, {4245,58451,0},{4242,58444,0},{4237,58444,0},{4233,58448,0},{4230,58448,0}, {4227,58449,0},{4223,58459,0},{4222,58469,0},{4217,58474,0},{4212,58476,0}, {4203,58476,0},{4198,58473,0},{4197,58473,0},{4193,58479,0},{4192,58488,0}, {4183,58484,0},{4177,58488,0},{4173,58501,0},{4173,58516,0},{4177,58528,0}, {4182,58538,0},{4190,58534,0},{4193,58533,0},{4190,58529,0},{4195,58529,0}, {4200,58528,0},{4205,58524,0},{4205,58519,0},{4202,58518,0},{4208,58513,0}, {4208,58521,0},{4207,58528,0},{4203,58533,0},{4197,58538,0},{4190,58541,0}, {4183,58543,0},{4173,58543,0},{4167,58543,0},{4155,58534,0},{4167,58539,0}, {4167,58524,0},{4162,58509,0},{4163,58494,0},{4157,58488,0},{4153,58468,0}, {4173,58473,0},{4175,58466,0},{4158,58451,0},{4163,58446,0},{4155,58443,0}, {4153,58439,0},{4150,58431,0},{4152,58429,0},{4153,58433,0},{4157,58431,0}, {4153,58429,0},{4155,58426,0},{4153,58426,0},{4152,58426,0},{4150,58423,0}, {4132,58353,128},{4132,58348,0},{4133,58349,0},{4133,58348,0},{4135,58339,0}, {4132,58336,0},{4132,58333,0},{4135,58328,0},{4130,58324,0},{4132,58316,0}, {4130,58316,0},{4132,58314,0},{4128,58311,0},{4128,58306,0},{4130,58301,0}, {4132,58301,0},{4135,58303,0},{4137,58298,0},{4135,58298,0},{4132,58301,0}, {4128,58301,0},{4128,58289,0},{4125,58284,0},{4127,58283,0},{4125,58283,0}, {4127,58279,0},{4128,58274,0},{4125,58268,0},{4127,58259,0},{4125,58256,0}, {4125,58248,0},{4130,58244,0},{4122,58236,0},{4122,58231,0},{4117,58226,0}, {4115,58221,0},{4117,58221,0},{4118,58219,0},{4117,58218,0},{4117,58214,0}, {4113,58211,0},{4112,58199,0},{4105,58189,0},{4105,58186,0},{4103,58184,0}, {4102,58178,0},{4102,58176,0},{4100,58171,0},{4102,58173,128},{4095,58169,0}, {4095,58164,0},{4087,58158,0},{4087,58154,0},{4082,58156,0},{4080,58144,0}, {4072,58138,0},{4072,58136,0},{4075,58136,0},{4087,58144,0},{4102,58148,0}, {4107,58149,0},{4118,58148,0},{4125,58141,0},{4130,58143,0},{4132,58141,0}, {4127,58138,0},{4120,58139,0},{4117,58144,0},{4102,58146,0},{4097,58146,0}, {4087,58141,0},{4078,58136,0},{4072,58134,0},{4067,58124,0},{4067,58123,0}, {4072,58126,0},{4070,58123,0},{4065,58116,0},{4058,58114,0},{4055,58111,0}, {4052,58111,0},{4050,58111,128},{4047,58109,0},{4045,58111,0},{4043,58116,0}, {4045,58126,0},{4040,58138,0},{4047,58136,0},{4045,58138,0},{4040,58141,0}, {4028,58141,0},{4008,58133,0},{4008,58134,0},{4005,58134,0},{3978,58128,0}, {3988,58128,0},{3997,58131,0},{4005,58131,0},{4005,58128,0},{4003,58131,0}, {4002,58129,0},{4000,58124,0},{3997,58126,0},{3993,58123,0},{3992,58128,0}, {3988,58123,0},{3985,58124,0},{3982,58121,0},{3977,58118,0},{3970,58121,0}, {3957,58104,0},{3952,58108,0},{3952,58104,0},{3953,58103,0},{3953,58098,0}, {3955,58096,0},{3952,58096,0},{3948,58098,0},{3943,58096,0},{3947,58094,0}, {3943,58091,0},{3940,58089,0},{3940,58093,0},{3935,58094,0},{3930,58083,0}, {3937,58088,0},{3935,58084,0},{3933,58081,0},{3930,58081,0},{3930,58071,0}, {3928,58071,0},{3927,58074,0},{3928,58081,0},{3922,58071,0},{3912,58066,0}, {3912,58063,0},{3912,58066,0},{3908,58064,0},{3903,58059,0},{3903,58058,0}, {3900,58058,0},{3895,58051,0},{3892,58043,0},{3893,58039,0},{3895,58039,0}, {3902,58041,0},{3913,58048,0},{3918,58046,0},{3920,58041,0},{3918,58034,0}, {3922,58033,0},{3918,58021,0},{3920,58019,0},{3923,58019,0},{3927,58013,0}, {3928,58011,0},{3930,58006,0},{3935,58003,0},{3933,57999,0},{3943,57989,0}, {3947,57984,0},{3950,57981,0},{3948,57983,0},{3950,57984,0},{3957,57984,0}, {3962,57981,0},{3965,57984,0},{3968,57986,0},{3972,57989,0},{3973,57989,0}, {3975,57991,0},{3983,58003,0},{3988,58023,0},{3990,58026,0},{3992,58024,0}, {3995,58024,0},{3997,58029,0},{4002,58033,0},{4000,58033,128},{3997,58024,0}, {3990,58021,0},{3990,58018,0},{3987,58011,0},{3985,57999,0},{3980,57993,0}, {3982,57994,128},{3978,57989,0},{3972,57988,0},{3967,57981,0},{3965,57978,0}, {3962,57976,0},{3955,57981,0},{3947,57978,0},{3942,57984,0},{3935,57986,0}, {3932,57993,0},{3925,57996,0},{3917,57996,0},{3908,57998,0},{3897,58006,0}, {3892,58006,0},{3880,58019,0},{3878,58024,0},{3880,58028,0},{3863,58029,0}, {3870,58028,0},{3870,58023,0},{3865,58024,0},{3865,58021,0},{3863,58026,0}, {3860,58016,0},{3858,58016,0},{3858,58018,0},{3857,58016,0},{3858,58023,0}, {3857,58028,0},{3858,58029,0},{3862,58029,0},{3860,58031,0},{3857,58031,0}, {3845,58033,0},{3833,58029,0},{3845,58029,0},{3845,58028,0},{3843,58028,0}, {3843,58024,0},{3840,58026,0},{3842,58021,0},{3842,58018,0},{3840,58023,0}, {3835,58023,0},{3835,58026,0},{3833,58026,0},{3823,58019,0},{3823,58016,0}, {3827,58018,0},{3823,58013,0},{3812,58008,0},{3812,58004,0},{3808,58001,0}, {3802,57999,0},{3803,57999,128},{3797,57993,0},{3793,57993,0},{3792,57994,0}, {3790,57993,0},{3787,57993,0},{3780,57986,0},{3768,57979,0},{3758,57974,0}, {3757,57978,0},{3750,57971,0},{3755,57964,0},{3752,57963,0},{3750,57966,0}, {3748,57958,0},{3745,57956,0},{3740,57956,0},{3737,57953,0},{3723,57949,0}, {3718,57949,0},{3718,57946,0},{3722,57948,0},{3715,57944,0},{3713,57941,0}, {3727,57934,0},{3732,57938,0},{3732,57936,0},{3738,57938,0},{3738,57939,0}, {3742,57941,0},{3742,57938,0},{3743,57939,0},{3747,57941,0},{3748,57944,0}, {3750,57943,0},{3748,57941,0},{3750,57941,0},{3755,57944,0},{3755,57946,0}, {3757,57943,0},{3758,57946,0},{3760,57944,0},{3762,57946,0},{3762,57949,0}, {3765,57948,0},{3767,57954,0},{3770,57953,0},{3772,57958,0},{3773,57954,0}, {3777,57959,0},{3780,57956,0},{3778,57961,0},{3780,57966,0},{3782,57964,0}, {3783,57966,0},{3783,57969,0},{3790,57968,0},{3790,57963,0},{3795,57973,0}, {3797,57971,0},{3798,57961,0},{3797,57956,0},{3793,57951,0},{3795,57948,0}, {3797,57951,0},{3798,57951,0},{3798,57948,0},{3803,57951,0},{3803,57954,0}, {3810,57961,0},{3808,57956,0},{3808,57951,0},{3810,57953,0},{3813,57954,0}, {3813,57958,0},{3815,57958,0},{3815,57946,0},{3812,57944,0},{3813,57943,0}, {3820,57943,0},{3823,57954,0},{3825,57948,0},{3828,57946,0},{3840,57953,0}, {3840,57951,0},{3832,57944,0},{3825,57941,0},{3832,57936,0},{3833,57939,0}, {3837,57939,0},{3837,57938,0},{3832,57933,0},{3828,57934,0},{3823,57933,0}, {3828,57928,0},{3830,57924,0},{3833,57921,0},{3838,57914,0},{3833,57916,0}, {3832,57914,0},{3848,57903,0},{3850,57908,0},{3848,57908,0},{3845,57909,0}, {3852,57913,0},{3853,57918,0},{3855,57918,0},{3857,57919,0},{3858,57916,0}, {3855,57913,0},{3857,57908,0},{3860,57911,0},{3862,57909,0},{3862,57914,0}, {3863,57919,0},{3860,57919,0},{3860,57923,0},{3857,57931,0},{3858,57936,0}, {3860,57939,0},{3865,57939,0},{3860,57934,0},{3862,57928,0},{3863,57926,0}, {3865,57926,0},{3865,57921,0},{3868,57926,0},{3868,57919,0},{3872,57919,0}, {3868,57916,0},{3872,57913,0},{3875,57916,0},{3877,57914,0},{3877,57913,0}, {3872,57909,0},{3872,57908,0},{3878,57909,0},{3875,57906,0},{3868,57904,0}, {3868,57903,0},{3877,57903,0},{3883,57909,0},{3882,57914,0},{3880,57914,0}, {3877,57919,0},{3880,57926,0},{3878,57921,0},{3880,57918,0},{3885,57919,0}, {3887,57926,0},{3888,57921,0},{3892,57921,0},{3888,57918,0},{3893,57918,0}, {3897,57914,0},{3893,57909,0},{3892,57909,0},{3892,57906,0},{3892,57903,0}, {3888,57904,0},{3885,57901,0},{3890,57901,0},{3903,57906,0},{3898,57913,0}, {3900,57919,0},{3902,57921,0},{3903,57921,0},{3907,57919,0},{3907,57923,0}, {3908,57923,0},{3913,57929,0},{3912,57923,0},{3912,57921,0},{3913,57921,0}, {3912,57919,0},{3912,57918,0},{3908,57918,0},{3903,57916,0},{3903,57913,0}, {3912,57913,0},{3915,57909,0},{3932,57919,0},{3933,57924,0},{3937,57924,0}, {3937,57926,0},{3937,57953,0},{3940,57934,0},{3947,57944,0},{3947,57953,0}, {3950,57946,0},{3953,57951,0},{3958,57953,0},{3957,57951,0},{3947,57936,0}, {3948,57936,0},{3955,57941,0},{3960,57943,0},{3955,57938,0},{3957,57934,0}, {3957,57929,0},{3948,57924,0},{3945,57929,0},{3937,57916,0},{3938,57913,0}, {3947,57914,0},{3947,57913,0},{3945,57911,0},{3938,57909,0},{3933,57911,0}, {3932,57908,0},{3940,57904,0},{3938,57896,0},{3937,57898,0},{3937,57901,0}, {3935,57903,0},{3933,57903,0},{3933,57899,0},{3930,57899,0},{3933,57894,0}, {3932,57893,0},{3927,57898,0},{3927,57894,0},{3930,57891,0},{3930,57888,0}, {3925,57893,0},{3923,57898,0},{3922,57894,0},{3922,57888,0},{3923,57888,0}, {3927,57879,0},{3925,57874,0},{3923,57878,0},{3922,57879,0},{3922,57884,0}, {3918,57884,0},{3917,57888,0},{3917,57891,0},{3910,57894,0},{3907,57894,0}, {3908,57891,0},{3910,57884,0},{3908,57884,0},{3905,57894,0},{3902,57896,0}, {3900,57896,0},{3900,57893,0},{3898,57891,0},{3902,57886,0},{3907,57881,0}, {3907,57879,0},{3893,57891,0},{3892,57891,0},{3897,57884,0},{3895,57883,0}, {3893,57883,0},{3890,57888,0},{3888,57886,0},{3888,57883,0},{3887,57884,0}, {3883,57883,0},{3885,57888,0},{3883,57888,0},{3877,57881,0},{3873,57881,0}, {3872,57884,0},{3853,57886,0},{3842,57896,0},{3837,57899,0},{3833,57894,0}, {3835,57891,0},{3837,57889,0},{3838,57888,0},{3842,57879,0},{3848,57873,0}, {3868,57868,0},{3848,57869,0},{3840,57878,0},{3837,57886,0},{3832,57888,0}, {3830,57891,0},{3830,57899,0},{3823,57898,0},{3817,57904,0},{3813,57904,0}, {3810,57903,0},{3805,57904,0},{3812,57894,0},{3818,57893,0},{3820,57893,0}, {3820,57891,0},{3817,57891,0},{3813,57889,0},{3817,57886,0},{3813,57886,0}, {3813,57884,0},{3820,57879,0},{3823,57874,0},{3823,57861,0},{3825,57858,0}, {3837,57854,0},{3840,57849,0},{3828,57853,0},{3827,57853,0},{3827,57849,0}, {3835,57839,0},{3848,57834,0},{3843,57833,0},{3842,57828,0},{3843,57826,0}, {3845,57826,0},{3845,57823,0},{3840,57824,0},{3837,57818,0},{3837,57816,0}, {3840,57811,0},{3848,57809,0},{3855,57813,0},{3857,57819,0},{3858,57816,0}, {3860,57818,0},{3862,57824,0},{3868,57826,0},{3870,57834,0},{3875,57836,0}, {3880,57834,0},{3887,57834,0},{3890,57829,0},{3890,57831,128},{3890,57829,0}, {3885,57833,0},{3873,57833,0},{3870,57824,0},{3868,57823,0},{3870,57823,0}, {3870,57821,0},{3868,57819,0},{3865,57823,0},{3863,57819,0},{3863,57816,0}, {3865,57816,0},{3865,57813,0},{3858,57809,0},{3857,57811,0},{3855,57808,0}, {3853,57808,0},{3850,57806,0},{3840,57806,0},{3843,57803,0},{3843,57801,0}, {3837,57808,0},{3835,57803,0},{3833,57811,0},{3835,57821,0},{3840,57833,0}, {3838,57836,0},{3835,57836,0},{3833,57836,0},{3832,57831,0},{3825,57841,0}, {3820,57841,0},{3817,57851,0},{3817,57859,0},{3813,57863,0},{3815,57868,0}, {3813,57873,0},{3815,57876,0},{3812,57878,0},{3807,57884,0},{3803,57883,0}, {3802,57883,0},{3802,57889,0},{3800,57891,0},{3798,57889,0},{3798,57894,0}, {3790,57913,0},{3788,57913,0},{3782,57911,0},{3785,57906,0},{3785,57904,0}, {3778,57908,0},{3775,57906,0},{3773,57904,0},{3770,57908,0},{3770,57904,0}, {3767,57904,0},{3767,57903,0},{3763,57904,0},{3763,57906,0},{3762,57904,0}, {3762,57899,0},{3765,57894,0},{3767,57894,0},{3765,57893,0},{3770,57889,0}, {3765,57888,0},{3767,57884,0},{3770,57884,0},{3775,57879,0},{3778,57878,0}, {3778,57874,0},{3782,57874,0},{3782,57871,0},{3783,57869,0},{3783,57864,0}, {3792,57859,0},{3795,57853,0},{3798,57853,0},{3800,57848,0},{3808,57843,0}, {3812,57833,0},{3817,57831,0},{3817,57823,0},{3813,57826,0},{3815,57831,0}, {3810,57833,0},{3807,57843,0},{3805,57844,0},{3798,57846,0},{3797,57849,0}, {3792,57853,0},{3790,57858,0},{3780,57864,0},{3778,57868,0},{3777,57869,0}, {3775,57874,0},{3763,57883,0},{3762,57893,0},{3758,57896,0},{3757,57908,0}, {3755,57904,0},{3755,57898,0},{3753,57896,0},{3748,57906,0},{3750,57908,0}, {3752,57908,0},{3750,57911,0},{3748,57911,0},{3747,57908,0},{3743,57913,0}, {3738,57913,0},{3732,57909,0},{3735,57906,0},{3738,57904,0},{3737,57901,0}, {3738,57899,0},{3743,57896,0},{3742,57893,0},{3738,57896,0},{3738,57891,0}, {3737,57891,0},{3733,57896,0},{3732,57893,0},{3732,57898,0},{3728,57899,0}, {3727,57891,0},{3732,57878,0},{3740,57871,0},{3743,57868,0},{3753,57859,0}, {3753,57858,0},{3750,57856,0},{3748,57861,0},{3730,57876,0},{3723,57891,0}, {3723,57899,0},{3717,57898,0},{3717,57904,0},{3713,57908,0},{3710,57903,0}, {3710,57909,0},{3708,57909,0},{3700,57908,0},{3700,57899,0},{3697,57896,0}, {3705,57889,0},{3707,57884,0},{3710,57883,0},{3708,57881,0},{3713,57874,0}, {3718,57874,0},{3722,57873,0},{3722,57863,0},{3720,57861,0},{3722,57859,0}, {3725,57853,0},{3727,57851,0},{3732,57849,0},{3727,57849,0},{3723,57844,0}, {3732,57836,0},{3728,57831,0},{3733,57828,0},{3732,57823,0},{3733,57813,0}, {3735,57811,0},{3732,57809,0},{3732,57808,0},{3728,57818,0},{3728,57826,0}, {3727,57829,0},{3728,57836,0},{3723,57839,0},{3720,57846,0},{3720,57856,0}, {3715,57863,0},{3718,57869,0},{3705,57871,0},{3703,57878,0},{3702,57879,0}, {3700,57878,0},{3697,57888,0},{3693,57886,0},{3690,57888,0},{3687,57884,0}, {3685,57884,0},{3690,57894,0},{3688,57901,0},{3687,57904,0},{3685,57906,0}, {3688,57904,0},{3692,57906,0},{3693,57904,0},{3697,57909,0},{3692,57919,0}, {3692,57926,0},{3690,57929,0},{3692,57936,0},{3655,57951,0},{3627,57958,0}, {3612,57964,0},{3590,57979,0},{3578,57984,0},{3585,57978,0},{3590,57976,0}, {3600,57969,0},{3600,57964,0},{3602,57964,0},{3600,57966,0},{3602,57968,0}, {3603,57968,0},{3605,57968,0},{3607,57963,0},{3618,57961,0},{3628,57954,0}, {3640,57953,0},{3653,57948,0},{3660,57948,0},{3672,57943,0},{3670,57939,0}, {3658,57938,0},{3653,57941,0},{3657,57941,0},{3657,57944,0},{3648,57946,0}, {3650,57939,0},{3652,57939,0},{3658,57931,0},{3653,57934,0},{3650,57933,0}, {3643,57939,0},{3643,57938,0},{3642,57938,0},{3635,57943,0},{3640,57941,0}, {3640,57943,0},{3642,57943,0},{3643,57944,0},{3635,57944,0},{3627,57949,0}, {3607,57958,0},{3610,57951,0},{3617,57949,0},{3622,57944,0},{3623,57946,0}, {3625,57941,0},{3628,57943,0},{3632,57939,0},{3632,57936,0},{3627,57941,0}, {3623,57939,0},{3622,57941,0},{3620,57939,0},{3617,57946,0},{3618,57934,0}, {3622,57931,0},{3625,57926,0},{3628,57923,0},{3630,57916,0},{3632,57918,0}, {3632,57916,0},{3628,57914,0},{3625,57921,0},{3622,57924,0},{3617,57931,0}, {3615,57929,0},{3612,57919,0},{3615,57914,0},{3622,57908,0},{3620,57908,0}, {3615,57911,0},{3613,57913,0},{3610,57916,0},{3610,57914,0},{3615,57899,0}, {3618,57896,0},{3618,57894,0},{3620,57889,0},{3617,57893,0},{3612,57898,0}, {3610,57904,0},{3608,57899,0},{3608,57894,0},{3607,57893,0},{3605,57894,0}, {3600,57884,0},{3602,57878,0},{3605,57874,0},{3603,57871,0},{3605,57868,0}, {3610,57866,0},{3612,57864,0},{3617,57863,0},{3623,57864,0},{3628,57869,0}, {3632,57864,0},{3628,57866,0},{3622,57861,0},{3613,57859,0},{3600,57866,0}, {3600,57868,0},{3595,57863,0},{3593,57871,0},{3595,57883,0},{3598,57896,0}, {3597,57898,0},{3593,57898,0},{3595,57901,0},{3592,57908,0},{3593,57909,0}, {3593,57906,0},{3597,57908,0},{3600,57919,0},{3598,57931,0},{3595,57934,0}, {3595,57929,0},{3592,57929,0},{3593,57934,0},{3587,57931,0},{3587,57928,0}, {3585,57931,0},{3578,57931,0},{3580,57924,0},{3578,57924,0},{3575,57931,0}, {3572,57931,0},{3568,57933,0},{3568,57926,0},{3570,57923,0},{3568,57923,0}, {3567,57926,0},{3565,57933,0},{3572,57936,0},{3588,57938,0},{3592,57943,0}, {3588,57946,0},{3587,57949,0},{3588,57951,0},{3593,57946,0},{3592,57951,0}, {3593,57954,0},{3595,57949,0},{3597,57951,0},{3597,57954,0},{3593,57954,0}, {3588,57961,0},{3582,57964,0},{3577,57963,0},{3573,57964,0},{3568,57964,0}, {3570,57959,0},{3568,57959,0},{3563,57963,0},{3562,57961,0},{3560,57958,0}, {3557,57958,0},{3557,57954,0},{3557,57953,0},{3558,57954,0},{3558,57949,0}, {3563,57948,0},{3562,57946,0},{3558,57946,0},{3555,57944,0},{3552,57938,0}, {3550,57939,0},{3548,57936,0},{3547,57936,0},{3542,57933,0},{3543,57931,0}, {3542,57929,0},{3538,57929,0},{3537,57923,0},{3533,57921,0},{3535,57919,0}, {3535,57913,0},{3537,57911,0},{3535,57909,0},{3535,57908,0},{3542,57901,0}, {3538,57899,0},{3535,57901,0},{3533,57899,0},{3535,57898,0},{3537,57894,0}, {3537,57898,0},{3538,57896,0},{3542,57898,0},{3547,57896,0},{3545,57893,0}, {3540,57893,0},{3540,57888,0},{3537,57891,0},{3538,57886,0},{3542,57884,0}, {3543,57886,0},{3543,57881,0},{3547,57881,0},{3550,57878,0},{3550,57888,0}, {3553,57889,0},{3555,57878,0},{3553,57874,0},{3552,57871,0},{3550,57874,0}, {3547,57874,0},{3540,57878,0},{3538,57878,0},{3540,57871,0},{3543,57871,0}, {3542,57861,0},{3543,57856,0},{3545,57854,0},{3547,57844,0},{3553,57831,0}, {3548,57834,0},{3547,57838,0},{3543,57838,0},{3542,57851,0},{3540,57853,0}, {3537,57864,0},{3535,57866,0},{3530,57883,0},{3530,57886,0},{3527,57889,0}, {3522,57888,0},{3523,57879,0},{3522,57884,0},{3520,57883,0},{3522,57878,0}, {3520,57876,0},{3517,57869,0},{3515,57878,0},{3515,57879,0},{3517,57878,0}, {3517,57879,0},{3515,57881,0},{3513,57881,0},{3510,57878,0},{3508,57874,0}, {3508,57876,0},{3507,57876,0},{3498,57858,0},{3500,57851,0},{3507,57841,0}, {3507,57838,0},{3515,57828,0},{3498,57841,0},{3495,57846,0},{3493,57856,0}, {3490,57861,0},{3498,57873,0},{3498,57876,0},{3495,57876,0},{3493,57881,0}, {3493,57883,0},{3497,57879,0},{3498,57879,0},{3500,57883,0},{3497,57886,0}, {3498,57888,0},{3502,57888,0},{3507,57891,0},{3505,57893,0},{3502,57893,0}, {3498,57894,0},{3497,57889,0},{3493,57891,0},{3495,57894,0},{3493,57898,0}, {3497,57898,0},{3497,57904,0},{3502,57901,0},{3502,57904,0},{3498,57908,0}, {3497,57909,0},{3493,57906,0},{3493,57901,0},{3488,57903,0},{3487,57898,0}, {3488,57896,0},{3483,57894,0},{3477,57886,0},{3473,57886,0},{3473,57878,0}, {3477,57878,0},{3478,57879,0},{3482,57874,0},{3472,57874,0},{3472,57869,0}, {3475,57869,0},{3480,57868,0},{3475,57859,0},{3475,57864,0},{3472,57866,0}, {3473,57849,0},{3472,57844,0},{3468,57826,0},{3472,57828,0},{3473,57824,0}, {3475,57824,0},{3475,57823,0},{3472,57824,0},{3468,57823,0},{3468,57819,0}, {3465,57819,0},{3455,57803,0},{3458,57796,0},{3465,57803,0},{3470,57798,0}, {3473,57799,0},{3473,57794,0},{3475,57793,0},{3468,57793,0},{3468,57796,0}, {3463,57799,0},{3462,57798,0},{3460,57791,0},{3458,57794,0},{3455,57799,0}, {3453,57798,0},{3452,57799,0},{3450,57789,0},{3438,57769,0},{3433,57764,0}, {3422,57754,0},{3415,57749,0},{3405,57748,0},{3393,57744,0},{3393,57743,0}, {3398,57744,0},{3410,57744,0},{3418,57741,0},{3402,57741,0},{3388,57734,0}, {3392,57713,0},{3390,57701,0},{3395,57699,0},{3390,57696,0},{3387,57681,0}, {3388,57681,0},{3387,57676,0},{3385,57679,0},{3383,57671,0},{3378,57661,0}, {3370,57649,0},{3363,57643,0},{3342,57623,0},{3322,57618,0},{3330,57616,0}, {3332,57609,0},{3337,57611,0},{3343,57618,0},{3337,57609,0},{3328,57606,0}, {3323,57614,0},{3318,57614,0},{3318,57618,0},{3313,57613,0},{3317,57611,0}, {3317,57609,0},{3313,57611,0},{3312,57609,0},{3313,57608,0},{3315,57603,0}, {3313,57606,0},{3312,57608,0},{3305,57598,0},{3302,57598,0},{3298,57586,0}, {3302,57586,0},{3303,57583,0},{3300,57578,0},{3295,57573,0},{3292,57574,0}, {3293,57578,0},{3292,57578,0},{3285,57566,0},{3280,57563,0},{3277,57553,0}, {3277,57549,0},{3278,57548,0},{3278,57546,0},{3285,57548,0},{3285,57546,0}, {3283,57546,0},{3285,57541,0},{3278,57543,0},{3280,57539,0},{3278,57539,0}, {3277,57541,0},{3275,57546,0},{3273,57548,0},{3273,57549,0},{3272,57549,0}, {3268,57548,0},{3265,57541,0},{3265,57534,0},{3263,57534,0},{3262,57538,0}, {3260,57536,0},{3260,57528,0},{3255,57519,0},{3262,57513,0},{3262,57509,0}, {3260,57511,0},{3257,57516,0},{3248,57503,0},{3253,57499,0},{3250,57499,0}, {3247,57496,0},{3250,57493,0},{3250,57488,0},{3255,57481,0},{3252,57483,0}, {3252,57469,0},{3250,57468,0},{3248,57481,0},{3250,57483,0},{3247,57488,0}, {3245,57478,0},{3245,57488,0},{3242,57491,0},{3240,57489,0},{3238,57486,0}, {3237,57481,0},{3235,57481,0},{3237,57489,0},{3240,57493,0},{3235,57491,0}, {3235,57489,0},{3233,57491,0},{3232,57489,0},{3225,57473,0},{3227,57471,0}, {3232,57473,0},{3238,57473,0},{3235,57471,0},{3237,57469,0},{3245,57471,0}, {3247,57471,0},{3245,57468,0},{3245,57469,0},{3237,57468,0},{3230,57469,0}, {3232,57466,0},{3238,57459,0},{3247,57456,0},{3250,57458,0},{3250,57456,0}, {3253,57453,0},{3253,57451,0},{3248,57454,0},{3240,57456,0},{3238,57458,0}, {3232,57456,0},{3225,57461,0},{3225,57466,0},{3222,57469,0},{3215,57464,0}, {3210,57454,0},{3218,57458,0},{3225,57458,0},{3222,57458,0},{3220,57458,0}, {3215,57453,0},{3212,57453,0},{3205,57446,0},{3202,57448,0},{3203,57446,128}, {3202,57451,0},{3200,57453,0},{3197,57449,0},{3195,57446,0},{3198,57443,0}, {3192,57439,0},{3190,57443,0},{3187,57438,0},{3188,57431,0},{3192,57426,0}, {3188,57424,0},{3188,57428,0},{3187,57428,0},{3187,57423,0},{3185,57423,0}, {3182,57433,0},{3177,57428,0},{3173,57424,0},{3177,57409,0},{3175,57409,0}, {3173,57414,0},{3170,57418,0},{3167,57413,0},{3167,57421,0},{3168,57419,0}, {3170,57423,0},{3160,57423,0},{3157,57419,0},{3157,57418,0},{3162,57416,0}, {3163,57413,0},{3160,57416,0},{3157,57414,0},{3155,57411,0},{3157,57406,0}, {3155,57403,0},{3153,57406,0},{3153,57409,0},{3148,57408,0},{3153,57413,0}, {3153,57419,0},{3143,57411,0},{3138,57409,0},{3140,57408,0},{3143,57406,0}, {3143,57403,0},{3135,57408,0},{3133,57408,0},{3135,57393,0},{3137,57389,0}, {3137,57388,0},{3133,57394,0},{3132,57403,0},{3128,57408,0},{3127,57409,0}, {3122,57408,0},{3122,57406,0},{3122,57404,0},{3113,57398,0},{3115,57394,0}, {3120,57396,0},{3122,57393,0},{3118,57389,0},{3112,57391,0},{3113,57386,0}, {3107,57393,0},{3110,57393,0},{3112,57396,0},{3108,57396,0},{3102,57393,0}, {3108,57388,0},{3108,57384,0},{3102,57391,0},{3098,57389,0},{3098,57384,0}, {3097,57386,0},{3097,57391,0},{3088,57386,0},{3085,57388,0},{3085,57383,0}, {3083,57384,0},{3080,57384,0},{3077,57388,0},{3072,57386,0},{3068,57388,0}, {3070,57391,0},{3068,57393,0},{3057,57391,0},{3052,57393,0},{3055,57389,0}, {3062,57388,0},{3062,57386,0},{3055,57386,0},{3047,57394,0},{3040,57394,0}, {3038,57398,0},{3027,57398,0},{3012,57403,0},{2990,57408,0},{2987,57409,0}, {2980,57411,0},{2958,57419,0},{2925,57434,0},{2908,57444,0},{2907,57444,0}, {2905,57446,0},{2872,57468,0},{2865,57473,0},{2857,57479,0},{2847,57483,0}, {2845,57483,0},{2840,57476,0},{2820,57478,0},{2808,57479,0},{2792,57489,0}, {2787,57491,0},{2793,57486,0},{2800,57483,0},{2805,57479,0},{2822,57474,0}, {2840,57474,0},{2852,57478,0},{2860,57476,0},{2860,57469,0},{2858,57468,0}, {2862,57459,0},{2865,57458,0},{2868,57458,0},{2870,57461,0},{2873,57461,0}, {2878,57451,0},{2865,57454,0},{2860,57456,0},{2842,57461,0},{2805,57478,0}, {2770,57496,0},{2742,57506,0},{2718,57518,0},{2722,57514,0},{2722,57509,0}, {2723,57508,0},{2723,57504,0},{2718,57509,0},{2720,57514,0},{2715,57519,0}, {2713,57521,0},{2695,57529,0},{2693,57524,0},{2692,57529,0},{2678,57533,0}, {2677,57531,0},{2668,57533,0},{2657,57533,0},{2653,57531,0},{2652,57531,0}, {2628,57528,0},{2612,57526,0},{2610,57524,0},{2607,57526,0},{2595,57524,0}, {2582,57524,0},{2577,57523,0},{2582,57523,0},{2590,57523,0},{2582,57518,0}, {2575,57518,0},{2573,57511,0},{2565,57509,0},{2562,57504,0},{2553,57504,0}, {2548,57501,0},{2543,57503,0},{2540,57503,0},{2538,57504,0},{2533,57501,0}, {2533,57499,0},{2523,57493,0},{2520,57494,0},{2518,57496,0},{2520,57494,0}, {2525,57491,0},{2522,57486,0},{2522,57489,0},{2517,57491,0},{2518,57491,0}, {2522,57488,0},{2520,57484,0},{2522,57484,0},{2523,57486,0},{2525,57483,0}, {2523,57478,0},{2518,57476,0},{2518,57471,0},{2517,57471,0},{2517,57468,0}, {2513,57464,0},{2515,57459,0},{2515,57456,0},{2517,57454,0},{2518,57451,0}, {2513,57444,0},{2512,57428,0},{2517,57421,0},{2523,57418,0},{2533,57423,0}, {2527,57429,0},{2523,57438,0},{2522,57436,0},{2520,57438,0},{2522,57444,0}, {2525,57444,0},{2532,57438,0},{2533,57433,0},{2538,57421,0},{2547,57419,0}, {2550,57416,0},{2555,57418,0},{2557,57413,0},{2563,57411,0},{2565,57409,0}, {2570,57408,0},{2570,57404,0},{2572,57403,0},{2577,57401,0},{2578,57404,0}, {2582,57401,0},{2585,57396,0},{2587,57389,0},{2588,57389,0},{2588,57384,0}, {2592,57381,0},{2590,57378,0},{2592,57378,0},{2595,57374,0},{2592,57371,0}, {2590,57363,0},{2595,57363,0},{2593,57366,0},{2595,57369,0},{2598,57369,0}, {2597,57364,0},{2600,57363,0},{2602,57363,0},{2607,57359,0},{2613,57358,0}, {2610,57356,0},{2627,57353,0},{2628,57354,0},{2635,57351,0},{2635,57353,0}, {2643,57351,0},{2648,57348,0},{2645,57349,0},{2643,57348,0},{2647,57341,0}, {2648,57334,0},{2652,57336,0},{2650,57338,0},{2653,57343,0},{2663,57348,0}, {2668,57354,0},{2668,57356,0},{2672,57358,0},{2667,57346,0},{2655,57341,0}, {2653,57338,0},{2653,57336,0},{2652,57333,0},{2655,57329,0},{2660,57331,0}, {2670,57328,0},{2678,57331,0},{2687,57331,0},{2690,57326,0},{2693,57331,0}, {2695,57336,0},{2700,57338,0},{2697,57334,0},{2697,57331,0},{2695,57329,0}, {2697,57324,0},{2692,57321,0},{2697,57318,0},{2695,57316,0},{2697,57313,0}, {2700,57313,0},{2702,57309,0},{2700,57309,0},{2700,57311,0},{2695,57313,0}, {2693,57318,0},{2687,57319,0},{2678,57321,0},{2678,57319,0},{2682,57319,0}, {2680,57316,0},{2683,57306,0},{2687,57304,0},{2688,57304,0},{2693,57301,0}, {2695,57299,0},{2690,57301,0},{2705,57293,0},{2718,57286,0},{2720,57286,0}, {2718,57288,0},{2722,57286,0},{2722,57284,0},{2727,57279,0},{2730,57281,0}, {2728,57281,0},{2728,57283,0},{2740,57278,0},{2745,57269,0},{2745,57268,0}, {2752,57263,0},{2748,57266,0},{2747,57271,0},{2748,57273,0},{2748,57269,0}, {2752,57269,0},{2750,57276,0},{2752,57273,0},{2752,57276,0},{2755,57279,0}, {2755,57274,0},{2755,57278,0},{2763,57281,0},{2767,57284,0},{2773,57289,0}, {2778,57296,0},{2782,57298,0},{2792,57294,0},{2793,57291,0},{2790,57288,0}, {2782,57288,0},{2783,57283,0},{2785,57281,0},{2787,57283,0},{2793,57283,0}, {2795,57279,0},{2797,57274,0},{2798,57276,0},{2802,57271,0},{2800,57271,0}, {2803,57268,0},{2800,57268,0},{2797,57268,0},{2795,57273,0},{2795,57266,0}, {2793,57264,0},{2790,57271,0},{2788,57273,0},{2788,57279,0},{2785,57276,0}, {2782,57276,0},{2778,57274,0},{2770,57273,0},{2768,57269,0},{2770,57268,0}, {2773,57268,0},{2773,57264,0},{2778,57261,0},{2783,57254,0},{2782,57254,0}, {2772,57263,0},{2765,57264,0},{2770,57261,0},{2773,57261,0},{2780,57253,0}, {2787,57251,0},{2793,57253,0},{2795,57254,0},{2788,57253,0},{2793,57254,0}, {2807,57259,0},{2810,57259,0},{2815,57256,0},{2818,57256,0},{2820,57259,0}, {2828,57263,0},{2830,57264,0},{2830,57263,0},{2832,57263,0},{2843,57269,0}, {2850,57269,0},{2853,57273,0},{2863,57271,0},{2865,57273,0},{2867,57271,0}, {2870,57273,0},{2875,57273,0},{2875,57271,0},{2880,57268,0},{2882,57269,0}, {2880,57271,0},{2878,57273,0},{2880,57273,0},{2888,57273,0},{2892,57268,0}, {2897,57263,0},{2900,57263,0},{2900,57261,0},{2907,57261,0},{2910,57256,0}, {2912,57258,0},{2913,57256,0},{2917,57256,0},{2917,57253,0},{2918,57251,0}, {2917,57249,0},{2917,57246,0},{2918,57239,0},{2917,57236,0},{2918,57231,0}, {2920,57231,0},{2922,57229,0},{2923,57229,0},{2927,57228,0},{2930,57221,0}, {2933,57221,0},{2942,57214,0},{2943,57208,0},{2950,57201,0},{2952,57196,0}, {2958,57196,0},{2960,57198,0},{2965,57196,0},{2968,57189,0},{2975,57178,0}, {2982,57178,0},{2992,57168,0},{2997,57159,0},{2998,57158,0},{2997,57156,0}, {2998,57153,0},{3002,57148,0},{3010,57134,0},{3010,57123,0},{3007,57119,0}, {3010,57116,0},{3008,57113,0},{3010,57111,0},{3010,57109,0},{3007,57108,0}, {3007,57103,0},{3005,57099,0},{3002,57099,0},{3002,57098,0},{2998,57098,0}, {2998,57101,0},{2997,57101,0},{2998,57094,0},{3002,57091,0},{2998,57089,0}, {2998,57091,0},{2997,57093,0},{2993,57103,0},{2988,57101,0},{2988,57098,0}, {2990,57099,0},{2992,57098,0},{2992,57091,0},{2990,57088,0},{2992,57084,0}, {2988,57079,0},{2978,57061,0},{2973,57048,0},{2973,57046,0},{2978,57049,0}, {2980,57049,0},{2978,57044,0},{2975,57041,0},{2975,57039,0},{2970,57034,0}, {2972,57028,0},{2970,57018,0},{2968,57003,0},{2968,56999,0},{2972,56998,0}, {2978,56994,0},{2985,56994,0},{2987,56996,0},{2985,56996,0},{2975,56998,0}, {2968,57001,0},{2970,57006,0},{2982,57006,0},{2992,56998,0},{2995,56993,0}, {2997,56984,0},{3003,56979,0},{3000,56984,0},{2998,56988,0},{3012,56968,0}, {3013,56969,0},{3012,56974,0},{3010,56974,0},{3008,56983,0},{3007,56984,0}, {3002,56991,0},{3003,56996,0},{3005,56996,0},{3005,56994,0},{3007,56993,0}, {3003,56991,0},{3005,56988,0},{3010,56988,0},{3010,56984,0},{3013,56986,0}, {3012,56983,0},{3013,56979,0},{3012,56979,0},{3015,56973,0},{3013,56973,0}, {3018,56964,0},{3020,56966,0},{3025,56969,0},{3025,56976,0},{3028,56978,0}, {3028,56981,0},{3032,56979,0},{3027,56974,0},{3028,56971,0},{3027,56968,0}, {3023,56964,0},{3028,56964,0},{3028,56961,0},{3032,56961,0},{3028,56959,0}, {3028,56953,0},{3025,56951,0},{3023,56953,0},{3025,56956,0},{3023,56959,0}, {3023,56961,0},{3022,56963,0},{3017,56961,0},{3015,56966,0},{3013,56964,0}, {3015,56963,0},{3013,56963,0},{3022,56949,0},{3030,56928,0},{3037,56904,0}, {3040,56884,0},{3042,56888,0},{3040,56896,0},{3040,56903,0},{3043,56904,0}, {3040,56908,0},{3040,56913,0},{3042,56909,0},{3043,56911,0},{3037,56926,0}, {3040,56924,0},{3043,56924,0},{3045,56921,0},{3047,56923,0},{3048,56923,0}, {3047,56919,0},{3047,56916,0},{3050,56916,0},{3048,56913,0},{3050,56909,0}, {3048,56901,0},{3045,56894,0},{3048,56893,0},{3052,56894,0},{3052,56891,0}, {3050,56889,0},{3052,56888,0},{3050,56888,0},{3047,56886,0},{3043,56881,0}, {3045,56876,0},{3042,56878,0},{3042,56858,0},{3035,56818,0},{3038,56818,0}, {3042,56836,0},{3045,56843,0},{3043,56848,0},{3047,56846,0},{3050,56834,0}, {3055,56836,0},{3057,56839,0},{3057,56836,0},{3058,56836,0},{3060,56834,0}, {3057,56834,0},{3055,56833,0},{3045,56828,0},{3045,56826,0},{3053,56826,0}, {3053,56823,0},{3055,56824,0},{3058,56819,0},{3058,56818,0},{3053,56818,0}, {3050,56821,0},{3047,56821,0},{3042,56816,0},{3040,56811,0},{3035,56809,0}, {3035,56806,0},{3032,56806,0},{3028,56784,0},{3028,56786,128},{3028,56783,0}, {3030,56786,0},{3032,56791,0},{3033,56788,0},{3033,56793,0},{3035,56794,0}, {3037,56794,0},{3040,56794,0},{3043,56803,0},{3045,56801,0},{3048,56794,0}, {3043,56796,0},{3040,56793,0},{3035,56789,0},{3035,56784,0},{3033,56784,0}, {3032,56783,0},{3032,56778,0},{3033,56778,0},{3035,56774,0},{3030,56776,0}, {3030,56779,0},{3028,56779,0},{3023,56763,0},{3023,56741,0},{3022,56736,0}, {3023,56734,0},{3023,56739,0},{3027,56743,0},{3023,56749,0},{3027,56758,0}, {3028,56761,0},{3035,56753,0},{3040,56754,0},{3042,56754,0},{3040,56753,0}, {3038,56751,0},{3042,56744,0},{3047,56744,0},{3048,56741,0},{3055,56746,0}, {3060,56744,0},{3067,56741,0},{3068,56736,0},{3073,56734,0},{3070,56734,0}, {3065,56731,0},{3060,56731,0},{3058,56728,0},{3052,56726,0},{3037,56724,0}, {3032,56723,0},{3033,56721,0},{3033,56716,0},{3037,56716,0},{3040,56706,0}, {3038,56706,0},{3040,56701,0},{3038,56696,0},{3035,56696,0},{3035,56693,0}, {3032,56689,0},{3035,56686,0},{3035,56679,0},{3040,56676,0},{3037,56674,0}, {3035,56668,0},{3035,56663,0},{3038,56658,0},{3043,56651,0},{3043,56644,0}, {3042,56638,0},{3040,56649,0},{3037,56631,0},{3035,56628,0},{3032,56611,0}, {3032,56609,0},{3035,56611,0},{3037,56606,0},{3037,56603,0},{3035,56601,0}, {3035,56604,0},{3030,56604,0},{3025,56594,0},{3018,56591,0},{3020,56589,0}, {3018,56584,0},{3015,56578,0},{3015,56574,0},{3017,56578,0},{3018,56576,0}, {3017,56573,0},{3018,56561,0},{3023,56561,0},{3022,56556,0},{3023,56551,0}, {3025,56549,0},{3027,56538,0},{3032,56536,0},{3035,56531,0},{3038,56516,0}, {3037,56513,0},{3025,56501,0},{3020,56494,0},{3015,56493,0},{3010,56494,0}, {3007,56501,0},{3007,56506,0},{3002,56523,0},{3003,56534,0},{3007,56539,0}, {3012,56546,0},{3015,56548,0},{3015,56551,0},{3012,56553,0},{3008,56558,0}, {3017,56561,0},{3017,56563,0},{3012,56561,0},{3010,56563,0},{3012,56564,0}, {3013,56568,0},{3015,56568,0},{3015,56566,0},{3017,56569,0},{3015,56569,0}, {3013,56571,0},{3012,56569,0},{3007,56568,0},{3005,56564,0},{3003,56564,0}, {3005,56558,0},{3003,56553,0},{3002,56551,0},{2995,56554,0},{2995,56561,0}, {2995,56564,0},{2992,56563,0},{2988,56568,0},{2987,56571,0},{2988,56576,0}, {2997,56579,0},{3000,56579,0},{3003,56586,0},{3008,56588,0},{3005,56593,0}, {3003,56593,0},{3005,56599,0},{3003,56599,0},{3002,56593,0},{3000,56591,0}, {3000,56593,0},{2997,56591,0},{2997,56593,0},{2997,56599,0},{2993,56599,0}, {2993,56596,0},{2995,56594,0},{2993,56593,0},{2990,56594,0},{2992,56599,0}, {2987,56598,0},{2988,56599,0},{2988,56603,0},{2983,56598,0},{2978,56601,0}, {2978,56598,0},{2977,56596,0},{2978,56596,0},{2978,56593,0},{2980,56593,0}, {2983,56589,0},{2980,56588,0},{2978,56586,0},{2975,56584,0},{2975,56579,0}, {2973,56576,0},{2968,56576,0},{2968,56581,0},{2968,56583,0},{2968,56584,0}, {2967,56586,0},{2967,56583,0},{2963,56588,0},{2967,56581,0},{2967,56574,0}, {2968,56573,0},{2970,56566,0},{2968,56571,0},{2967,56569,0},{2962,56574,0}, {2963,56561,0},{2962,56564,0},{2960,56563,0},{2958,56566,0},{2952,56568,0}, {2950,56574,0},{2950,56578,0},{2948,56578,0},{2947,56584,0},{2943,56583,0}, {2942,56583,0},{2943,56584,0},{2942,56584,0},{2940,56581,0},{2940,56594,0}, {2938,56594,0},{2938,56603,0},{2938,56599,0},{2937,56598,0},{2935,56601,0}, {2935,56609,0},{2932,56611,0},{2935,56616,0},{2932,56618,0},{2928,56623,0}, {2927,56623,0},{2925,56624,0},{2923,56621,0},{2920,56629,0},{2922,56629,0}, {2922,56633,0},{2920,56636,0},{2918,56633,0},{2918,56636,0},{2918,56633,0}, {2917,56631,0},{2918,56631,0},{2918,56629,0},{2917,56626,0},{2913,56626,0}, {2915,56629,0},{2913,56634,0},{2908,56631,0},{2912,56628,0},{2912,56626,0}, {2908,56628,0},{2910,56626,0},{2907,56623,0},{2903,56621,0},{2898,56623,0}, {2902,56618,0},{2910,56613,0},{2907,56611,0},{2905,56606,0},{2895,56599,0}, {2893,56594,0},{2897,56596,0},{2903,56601,0},{2907,56601,0},{2908,56606,0}, {2915,56609,0},{2915,56608,0},{2912,56606,0},{2918,56604,0},{2915,56603,0}, {2912,56604,0},{2908,56599,0},{2910,56596,0},{2915,56596,0},{2915,56593,0}, {2923,56588,0},{2923,56589,0},{2925,56589,0},{2925,56586,0},{2922,56586,0}, {2923,56583,0},{2925,56574,0},{2928,56574,0},{2930,56573,0},{2932,56574,0}, {2933,56574,0},{2933,56571,0},{2930,56566,0},{2932,56563,0},{2932,56554,0}, {2933,56559,0},{2937,56561,0},{2938,56559,0},{2938,56558,0},{2942,56559,0}, {2940,56554,0},{2943,56553,0},{2945,56556,0},{2947,56554,0},{2948,56551,0}, {2947,56551,0},{2945,56551,0},{2943,56549,0},{2947,56546,0},{2947,56541,0}, {2947,56539,0},{2948,56538,0},{2952,56529,0},{2953,56529,0},{2953,56523,0}, {2957,56518,0},{2953,56516,0},{2953,56518,0},{2952,56514,0},{2952,56518,0}, {2948,56519,0},{2948,56521,0},{2947,56523,0},{2947,56531,0},{2943,56533,0}, {2940,56531,0},{2938,56533,0},{2933,56533,0},{2935,56531,0},{2930,56534,0}, {2930,56531,0},{2932,56531,0},{2930,56528,0},{2928,56529,0},{2927,56526,0}, {2922,56528,0},{2922,56531,0},{2918,56529,0},{2913,56523,0},{2908,56513,0}, {2908,56511,0},{2910,56513,0},{2912,56513,0},{2917,56509,0},{2918,56511,0}, {2920,56509,0},{2922,56511,0},{2925,56511,0},{2927,56509,0},{2923,56508,0}, {2925,56506,0},{2928,56503,0},{2932,56501,0},{2925,56498,0},{2925,56496,0}, {2932,56498,0},{2933,56494,0},{2935,56493,0},{2932,56491,0},{2928,56488,0}, {2930,56486,0},{2928,56484,0},{2930,56481,0},{2932,56479,0},{2930,56476,0}, {2928,56476,0},{2928,56479,0},{2923,56476,0},{2922,56478,0},{2923,56474,0}, {2922,56473,0},{2913,56473,0},{2917,56471,0},{2917,56469,0},{2913,56468,0}, {2912,56466,0},{2913,56464,0},{2912,56461,0},{2913,56456,0},{2913,56459,0}, {2917,56459,0},{2917,56454,0},{2918,56451,0},{2915,56453,0},{2913,56448,0}, {2918,56441,0},{2918,56434,0},{2922,56438,0},{2922,56436,0},{2922,56433,0}, {2918,56431,0},{2922,56423,0},{2923,56416,0},{2925,56409,0},{2927,56406,0}, {2933,56403,0},{2932,56404,0},{2933,56408,0},{2937,56409,0},{2938,56413,0}, {2932,56416,0},{2933,56419,0},{2928,56419,0},{2925,56421,0},{2927,56424,0}, {2935,56424,0},{2940,56414,0},{2943,56413,0},{2947,56409,0},{2953,56409,0}, {2957,56414,0},{2960,56414,0},{2962,56411,0},{2960,56411,0},{2957,56411,0}, {2955,56408,0},{2952,56408,0},{2948,56406,0},{2952,56393,0},{2955,56394,0}, {2953,56381,0},{2955,56383,0},{2963,56381,0},{2963,56371,0},{2973,56374,0}, {2975,56373,0},{2973,56356,0},{2972,56351,0},{2972,56349,0},{2975,56349,0}, {2977,56348,0},{2980,56349,0},{2978,56354,0},{2983,56353,0},{2983,56344,0}, {2982,56343,0},{2983,56339,0},{2983,56338,0},{2980,56338,0},{2977,56328,0}, {2973,56323,0},{2977,56323,0},{2977,56319,0},{2975,56319,0},{2977,56316,0}, {2970,56318,0},{2972,56326,0},{2968,56323,0},{2962,56326,0},{2963,56333,0}, {2962,56334,0},{2962,56329,0},{2960,56331,0},{2958,56331,0},{2958,56318,0}, {2953,56308,0},{2960,56268,0},{2973,56233,0},{2978,56213,0},{2977,56164,0}, {2970,56153,0},{2975,56148,0},{2980,56146,0},{2983,56149,0},{2983,56156,0}, {2990,56159,0},{2997,56159,0},{3000,56156,0},{2998,56158,128},{2998,56151,0}, {2993,56148,0},{2983,56141,0},{2980,56141,0},{2973,56148,0},{2968,56151,0}, {2968,56131,0},{2965,56123,0},{2945,56071,0},{2937,56059,0},{2937,56058,0}, {2940,56058,0},{2943,56064,0},{2947,56066,0},{2948,56073,0},{2953,56079,0}, {2952,56086,0},{2957,56088,0},{2955,56084,0},{2957,56079,0},{2957,56073,0}, {2953,56058,0},{2953,56056,0},{2955,56056,0},{2955,56059,0},{2965,56064,0}, {2975,56066,0},{2978,56061,0},{2977,56053,0},{2968,56048,0},{2967,56046,0}, {2967,56043,0},{2970,56041,0},{2972,56036,0},{2972,56029,0},{2968,56033,0}, {2968,56036,0},{2963,56033,0},{2960,56038,0},{2957,56034,0},{2953,56034,0}, {2952,56036,0},{2950,56044,0},{2948,56043,0},{2947,56039,0},{2942,56041,0}, {2942,56044,0},{2943,56044,0},{2942,56046,0},{2940,56048,0},{2937,56054,0}, {2937,56046,0},{2932,56046,0},{2930,56043,0},{2932,56041,0},{2928,56036,0}, {2927,56036,0},{2922,56033,0},{2918,56026,0},{2918,56024,0},{2920,56024,0}, {2920,56019,0},{2917,56021,0},{2907,56021,0},{2905,56023,0},{2888,55999,0}, {2887,55994,0},{2873,55968,0},{2873,55961,0},{2873,55954,0},{2870,55943,0}, {2868,55941,0},{2862,55941,0},{2872,55964,0},{2865,55953,0},{2860,55938,0}, {2848,55914,0},{2853,55921,0},{2860,55936,0},{2863,55938,0},{2865,55938,0}, {2858,55914,0},{2860,55914,0},{2860,55918,0},{2863,55923,0},{2863,55914,0}, {2867,55918,0},{2870,55918,0},{2867,55909,0},{2868,55909,0},{2865,55906,0}, {2863,55901,0},{2865,55901,0},{2867,55898,0},{2872,55898,0},{2873,55896,0}, {2873,55894,0},{2877,55893,0},{2870,55893,0},{2872,55896,0},{2868,55894,0}, {2863,55894,0},{2862,55899,0},{2857,55888,0},{2860,55888,0},{2860,55893,0}, {2863,55891,0},{2862,55888,0},{2862,55886,0},{2865,55886,0},{2865,55881,0}, {2870,55879,0},{2872,55878,0},{2872,55871,0},{2868,55871,0},{2863,55876,0}, {2857,55876,0},{2855,55884,0},{2852,55888,0},{2848,55881,0},{2847,55881,0}, {2848,55886,0},{2850,55888,0},{2847,55893,0},{2845,55896,0},{2843,55896,0}, {2832,55871,0},{2833,55866,0},{2840,55866,0},{2842,55863,0},{2843,55861,0}, {2848,55858,0},{2845,55854,0},{2842,55859,0},{2840,55859,0},{2842,55853,0}, {2840,55853,0},{2835,55858,0},{2828,55856,0},{2823,55858,0},{2817,55849,0}, {2813,55848,0},{2813,55843,0},{2820,55844,0},{2822,55843,0},{2825,55846,0}, {2827,55844,0},{2822,55841,0},{2818,55843,0},{2812,55839,0},{2813,55834,0}, {2818,55836,0},{2820,55834,0},{2818,55833,0},{2815,55824,0},{2817,55821,0}, {2815,55818,0},{2812,55821,0},{2807,55814,0},{2803,55821,0},{2800,55821,0}, {2807,55826,0},{2808,55831,0},{2812,55833,0},{2810,55834,0},{2807,55833,0}, {2803,55834,0},{2797,55826,0},{2782,55816,0},{2782,55813,0},{2783,55814,0}, {2787,55811,0},{2788,55809,0},{2785,55801,0},{2787,55801,0},{2787,55791,0}, {2785,55789,0},{2788,55786,0},{2787,55784,0},{2782,55788,0},{2783,55798,0}, {2778,55796,0},{2775,55799,0},{2772,55804,0},{2770,55811,0},{2757,55804,0}, {2733,55796,0},{2730,55788,0},{2728,55784,0},{2728,55783,0},{2730,55786,0}, {2733,55786,0},{2733,55791,0},{2735,55788,0},{2740,55788,0},{2738,55784,0}, {2733,55779,0},{2733,55778,0},{2730,55776,0},{2730,55773,0},{2733,55771,0}, {2738,55768,0},{2747,55759,0},{2745,55759,0},{2740,55764,0},{2738,55763,0}, {2737,55766,0},{2735,55766,0},{2733,55768,0},{2732,55764,0},{2732,55769,0}, {2730,55769,0},{2728,55766,0},{2728,55759,0},{2727,55763,0},{2727,55771,0}, {2725,55773,0},{2723,55783,0},{2727,55794,0},{2717,55791,0},{2712,55791,0}, {2710,55786,0},{2707,55788,0},{2705,55788,0},{2702,55789,0},{2700,55786,0}, {2702,55781,0},{2700,55779,0},{2692,55781,0},{2690,55784,0},{2688,55788,0}, {2687,55788,0},{2685,55786,0},{2687,55784,0},{2690,55781,0},{2687,55781,0}, {2683,55779,0},{2682,55781,0},{2680,55786,0},{2655,55794,0},{2650,55794,0}, {2652,55793,0},{2650,55793,0},{2648,55789,0},{2648,55793,0},{2642,55791,0}, {2642,55794,0},{2637,55796,0},{2637,55799,0},{2633,55799,0},{2635,55801,0}, {2628,55799,0},{2627,55801,0},{2628,55804,0},{2625,55804,0},{2623,55803,0}, {2620,55804,0},{2617,55804,0},{2612,55806,0},{2610,55808,0},{2608,55814,0}, {2607,55814,0},{2607,55811,0},{2603,55809,0},{2598,55811,0},{2602,55818,0}, {2608,55819,0},{2597,55823,0},{2570,55819,0},{2543,55808,0},{2513,55788,0}, {2503,55784,0},{2478,55778,0},{2432,55768,0},{2407,55764,0},{2378,55763,0}, {2378,55761,0},{2378,55754,0},{2377,55761,0},{2365,55761,0},{2375,55763,0}, {2375,55764,0},{2330,55759,0},{2290,55763,0},{2285,55761,0},{2292,55761,0}, {2290,55759,0},{2277,55756,0},{2277,55753,0},{2273,55753,0},{2273,55749,0}, {2270,55751,0},{2260,55748,0},{2258,55749,0},{2260,55751,0},{2262,55751,0}, {2267,55753,0},{2265,55753,0},{2260,55753,0},{2252,55751,0},{2233,55756,0}, {2227,55758,0},{2215,55758,0},{2197,55766,0},{2177,55781,0},{2168,55791,0}, {2160,55803,0},{2157,55804,0},{2148,55804,0},{2133,55796,0},{2127,55794,0}, {2137,55793,0},{2138,55789,0},{2142,55791,0},{2143,55788,0},{2148,55796,0}, {2147,55798,0},{2150,55799,0},{2153,55799,0},{2163,55788,0},{2178,55774,0}, {2190,55771,0},{2192,55768,0},{2208,55758,0},{2193,55764,0},{2182,55764,0}, {2167,55769,0},{2148,55779,0},{2147,55783,0},{2148,55788,0},{2143,55786,0}, {2137,55788,0},{2128,55793,0},{2125,55793,0},{2125,55796,0},{2113,55798,0}, {2097,55806,0},{2080,55816,0},{2075,55818,0},{2073,55816,0},{2068,55819,0}, {2053,55831,0},{2047,55841,0},{2030,55853,0},{2015,55868,0},{2008,55871,0}, {1987,55891,0},{1973,55896,0},{1967,55896,0},{1953,55899,0},{1947,55906,0}, {1943,55904,0},{1938,55906,0},{1933,55906,0},{1923,55919,0},{1922,55924,0}, {1912,55926,0},{1907,55931,0},{1905,55939,0},{1895,55941,0},{1887,55946,0}, {1883,55953,0},{1880,55961,0},{1877,55961,0},{1880,55954,0},{1882,55948,0}, {1887,55943,0},{1887,55941,0},{1885,55941,0},{1883,55943,0},{1882,55949,0}, {1880,55949,0},{1875,55954,0},{1875,55948,0},{1872,55949,0},{1872,55954,0}, {1875,55958,0},{1872,55968,0},{1870,55974,0},{1867,55978,0},{1868,55979,0}, {1870,55978,0},{1875,55963,0},{1880,55963,0},{1873,55971,0},{1872,55979,0}, {1870,55996,0},{1872,56008,0},{1870,56018,0},{1862,56031,0},{1855,56034,0}, {1853,56041,0},{1853,56054,0},{1852,56058,0},{1840,56063,0},{1828,56074,0}, {1818,56078,0},{1815,56083,0},{1815,56089,0},{1820,56119,0},{1830,56149,0}, {1825,56148,0},{1827,56156,0},{1828,56159,0},{1832,56159,0},{1833,56163,0}, {1835,56168,0},{1833,56168,0},{1833,56171,0},{1835,56178,0},{1837,56179,0}, {1840,56179,0},{1840,56174,0},{1837,56166,0},{1835,56164,0},{1835,56159,0}, {1830,56156,0},{1832,56151,0},{1835,56158,0},{1842,56178,0},{1843,56193,0}, {1843,56221,0},{1842,56219,0},{1840,56218,0},{1837,56219,0},{1837,56223,0}, {1838,56224,0},{1837,56224,0},{1835,56223,0},{1833,56223,0},{1837,56224,0}, {1838,56228,0},{1840,56228,0},{1842,56223,0},{1843,56223,0},{1845,56226,0}, {1843,56239,0},{1845,56244,0},{1850,56256,0},{1858,56264,0},{1858,56266,0}, {1853,56268,0},{1843,56269,0},{1855,56269,0},{1862,56268,0},{1862,56278,0}, {1868,56296,0},{1868,56314,0},{1873,56338,0},{1872,56341,0},{1868,56343,0}, {1862,56351,0},{1858,56349,0},{1860,56348,0},{1858,56343,0},{1863,56341,0}, {1860,56339,0},{1862,56334,0},{1858,56338,0},{1858,56333,0},{1855,56331,0}, {1853,56336,0},{1855,56341,0},{1850,56346,0},{1855,56343,0},{1857,56339,0}, {1860,56339,0},{1857,56341,0},{1857,56346,0},{1855,56344,0},{1855,56348,0}, {1852,56349,0},{1852,56348,0},{1850,56353,0},{1843,56351,0},{1838,56356,0}, {1840,56358,0},{1845,56354,0},{1843,56358,0},{1843,56359,0},{1847,56356,0}, {1848,56356,0},{1843,56374,0},{1845,56383,0},{1847,56386,0},{1843,56386,0}, {1843,56389,0},{1848,56388,0},{1848,56386,0},{1845,56383,0},{1848,56383,0}, {1852,56388,0},{1857,56403,0},{1862,56406,0},{1862,56411,0},{1865,56418,0}, {1867,56418,0},{1863,56406,0},{1867,56408,0},{1870,56409,0},{1873,56409,0}, {1878,56404,0},{1877,56401,0},{1878,56398,0},{1882,56396,0},{1887,56399,128}, {1890,56406,0},{1895,56413,0},{1890,56404,0},{1888,56399,0},{1883,56394,0}, {1882,56394,0},{1880,56388,0},{1882,56384,0},{1890,56393,0},{1900,56419,0}, {1908,56429,0},{1912,56436,0},{1917,56444,0},{1925,56451,0},{1932,56459,0}, {1935,56463,0},{1963,56466,0},{1968,56464,0},{1977,56468,0},{1982,56473,0}, {1988,56483,0},{1997,56491,0},{2008,56486,0},{2012,56488,0},{2018,56486,0}, {2023,56488,0},{2030,56488,0},{2040,56489,0},{2052,56488,0},{2063,56489,0}, {2073,56491,0},{2082,56498,0},{2097,56503,0},{2083,56498,0},{2078,56494,0}, {2078,56493,0},{2103,56503,0},{2108,56513,0},{2113,56523,0},{2117,56526,0}, {2118,56536,0},{2123,56543,0},{2127,56554,0},{2130,56566,0},{2130,56578,0}, {2133,56594,0},{2137,56626,0},{2142,56651,0},{2143,56654,0},{2145,56666,0}, {2153,56676,0},{2155,56684,0},{2157,56691,0},{2155,56709,0},{2157,56716,0}, {2158,56728,0},{2160,56723,0},{2158,56716,0},{2157,56711,0},{2162,56724,0}, {2160,56731,0},{2160,56736,0},{2157,56748,0},{2153,56766,0},{2152,56763,0}, {2155,56751,0},{2150,56761,0},{2150,56774,0},{2152,56768,0},{2153,56768,0}, {2150,56779,0},{2150,56786,0},{2148,56788,0},{2148,56786,0},{2147,56788,0}, {2147,56796,0},{2145,56801,0},{2143,56811,0},{2148,56821,0},{2152,56823,0}, {2153,56823,0},{2155,56823,0},{2157,56821,0},{2157,56816,0},{2153,56811,0}, {2153,56803,0},{2155,56803,0},{2152,56796,0},{2150,56796,0},{2153,56794,0}, {2158,56799,0},{2157,56808,0},{2158,56814,0},{2162,56824,0},{2158,56836,0}, {2143,56846,0},{2145,56849,0},{2143,56853,0},{2137,56854,0},{2130,56853,0}, {2118,56854,0},{2115,56859,0},{2115,56863,0},{2112,56859,0},{2103,56858,0}, {2102,56854,0},{2083,56848,0},{2073,56838,0},{2062,56829,0},{2057,56819,0}, {2050,56813,0},{2030,56799,0},{2028,56799,0},{2028,56798,0},{2027,56798,0}, {2022,56793,0},{2010,56789,0},{1998,56789,0},{1990,56793,0},{1985,56793,0}, {1983,56789,0},{1978,56789,0},{1983,56788,0},{1985,56791,0},{1992,56793,0}, {1993,56789,0},{1997,56788,0},{1995,56788,0},{1987,56789,0},{1988,56791,0}, {1988,56789,0},{1980,56784,0},{1980,56783,0},{1982,56783,0},{1980,56781,0}, {1980,56778,0},{1963,56769,0},{1963,56768,0},{1968,56771,0},{1967,56763,0}, {1960,56763,0},{1958,56766,0},{1957,56768,0},{1957,56769,0},{1950,56769,0}, {1952,56771,0},{1955,56776,0},{1957,56779,0},{1955,56784,0},{1953,56786,0}, {1957,56788,0},{1957,56789,0},{1955,56789,0},{1955,56791,0},{1958,56794,0}, {1960,56793,0},{1960,56791,0},{1957,56793,0},{1958,56783,0},{1958,56791,0}, {1963,56793,0},{1958,56794,0},{1950,56793,0},{1945,56789,0},{1940,56783,0}, {1940,56779,0},{1940,56783,0},{1943,56781,0},{1940,56773,0},{1935,56769,0}, {1933,56769,0},{1935,56771,0},{1932,56771,0},{1932,56768,0},{1930,56769,0}, {1925,56768,0},{1922,56773,0},{1925,56776,0},{1928,56778,0},{1932,56779,0}, {1933,56786,0},{1932,56786,0},{1928,56784,0},{1932,56788,0},{1932,56789,0}, {1922,56783,0},{1910,56781,0},{1905,56776,0},{1905,56778,0},{1895,56774,0}, {1877,56771,0},{1867,56763,0},{1855,56763,0},{1852,56761,0},{1842,56759,0}, {1832,56753,0},{1818,56751,0},{1823,56751,0},{1822,56748,0},{1823,56748,0}, {1825,56749,0},{1832,56751,0},{1828,56748,0},{1830,56748,0},{1833,56748,0}, {1835,56746,0},{1837,56746,0},{1840,56743,0},{1843,56744,0},{1850,56729,0}, {1853,56728,0},{1855,56731,0},{1860,56731,0},{1868,56736,0},{1870,56734,0}, {1878,56736,0},{1882,56733,0},{1887,56733,0},{1885,56729,0},{1878,56726,0}, {1872,56724,0},{1873,56721,0},{1878,56723,0},{1873,56721,0},{1873,56716,0}, {1868,56711,0},{1867,56711,0},{1870,56716,0},{1873,56718,0},{1872,56718,0}, {1867,56716,0},{1870,56719,0},{1870,56721,0},{1867,56718,0},{1848,56708,0}, {1848,56706,0},{1848,56708,128},{1848,56706,0},{1845,56708,0},{1843,56706,0}, {1838,56698,0},{1835,56698,0},{1837,56704,0},{1830,56699,0},{1835,56709,0}, {1837,56714,0},{1835,56714,0},{1835,56716,0},{1833,56718,0},{1835,56721,0}, {1837,56726,0},{1835,56726,0},{1832,56721,0},{1833,56726,0},{1832,56728,0}, {1830,56728,0},{1822,56728,0},{1812,56728,0},{1797,56721,0},{1788,56716,0}, {1772,56713,0},{1762,56708,0},{1757,56709,0},{1755,56713,0},{1753,56714,0}, {1750,56719,0},{1748,56718,0},{1748,56713,0},{1748,56711,0},{1723,56706,0}, {1712,56708,0},{1708,56709,0},{1707,56713,0},{1697,56716,0},{1693,56711,0}, {1690,56708,0},{1687,56708,0},{1682,56711,0},{1680,56708,0},{1677,56706,0}, {1665,56706,0},{1660,56703,0},{1650,56701,0},{1650,56699,0},{1660,56701,0}, {1667,56704,0},{1662,56701,0},{1658,56699,0},{1655,56698,0},{1655,56699,0}, {1655,56696,0},{1653,56699,0},{1647,56694,0},{1643,56694,0},{1642,56691,0}, {1640,56693,0},{1638,56689,0},{1627,56683,0},{1627,56679,0},{1625,56678,0}, {1628,56678,0},{1625,56676,0},{1628,56673,0},{1627,56671,0},{1625,56671,0}, {1623,56663,0},{1622,56661,0},{1617,56663,0},{1613,56661,0},{1612,56658,0}, {1608,56654,0},{1607,56651,0},{1603,56651,0},{1598,56644,0},{1595,56643,0}, {1592,56646,0},{1590,56644,0},{1587,56649,0},{1587,56654,0},{1587,56656,0}, {1583,56661,0},{1582,56661,0},{1575,56674,0},{1572,56673,0},{1570,56673,0}, {1572,56676,0},{1573,56676,0},{1575,56678,0},{1577,56679,0},{1578,56681,0}, {1585,56681,0},{1583,56681,0},{1585,56688,0},{1593,56676,0},{1595,56674,0}, {1597,56676,0},{1595,56681,0},{1585,56693,0},{1580,56703,0},{1573,56711,0}, {1572,56714,0},{1568,56721,0},{1568,56724,0},{1573,56728,0},{1577,56733,0}, {1578,56733,0},{1578,56738,0},{1582,56743,0},{1583,56744,0},{1585,56741,0}, {1587,56741,0},{1587,56746,0},{1588,56749,0},{1590,56754,0},{1590,56761,0}, {1592,56764,0},{1588,56773,0},{1590,56773,0},{1593,56778,0},{1590,56774,0}, {1587,56776,0},{1580,56783,0},{1578,56789,0},{1578,56791,0},{1582,56794,0}, {1582,56798,0},{1585,56801,0},{1575,56841,0},{1577,56853,0},{1580,56859,0}, {1578,56868,0},{1580,56888,0},{1577,56894,0},{1577,56901,0},{1582,56909,0}, {1585,56913,0},{1588,56918,0},{1590,56924,0},{1590,56936,0},{1592,56941,0}, {1597,56946,0},{1600,56946,0},{1600,56939,0},{1602,56934,0},{1603,56936,0}, {1602,56946,0},{1602,56949,0},{1600,56959,0},{1597,56968,0},{1593,56968,0}, {1595,56969,0},{1592,56976,0},{1588,56986,0},{1590,57018,0},{1593,57026,0}, {1598,57033,0},{1598,57039,0},{1588,57068,0},{1587,57074,0},{1582,57073,0}, {1577,57076,0},{1578,57079,0},{1582,57079,0},{1582,57081,0},{1578,57081,0}, {1578,57084,0},{1578,57088,0},{1582,57089,0},{1582,57096,0},{1585,57079,0}, {1587,57078,0},{1583,57096,0},{1583,57109,0},{1572,57121,0},{1568,57126,0}, {1545,57151,0},{1540,57164,0},{1538,57163,0},{1543,57151,0},{1545,57146,0}, {1547,57146,0},{1552,57143,0},{1553,57136,0},{1553,57133,0},{1552,57131,0}, {1552,57128,0},{1553,57128,0},{1553,57129,0},{1555,57129,0},{1553,57126,0}, {1548,57128,0},{1555,57123,0},{1555,57114,0},{1552,57116,0},{1552,57118,0}, {1548,57118,0},{1550,57119,0},{1550,57121,0},{1553,57121,0},{1553,57123,0}, {1545,57128,0},{1543,57124,0},{1540,57124,0},{1535,57128,0},{1533,57133,0}, {1535,57134,0},{1537,57133,0},{1535,57136,0},{1532,57134,0},{1530,57136,0}, {1530,57143,0},{1528,57141,0},{1523,57144,0},{1525,57153,0},{1527,57153,0}, {1532,57146,0},{1535,57138,0},{1540,57133,0},{1542,57136,0},{1540,57141,0}, {1533,57149,0},{1532,57154,0},{1530,57156,0},{1527,57154,0},{1528,57158,0}, {1527,57159,0},{1520,57161,0},{1522,57161,0},{1520,57164,0},{1522,57164,0}, {1523,57166,0},{1525,57173,0},{1528,57174,0},{1528,57183,0},{1525,57184,0}, {1520,57181,0},{1523,57178,0},{1520,57174,0},{1517,57174,0},{1520,57176,0}, {1517,57176,0},{1515,57179,0},{1520,57184,0},{1522,57188,0},{1523,57186,0}, {1528,57186,0},{1530,57183,0},{1532,57178,0},{1530,57174,0},{1532,57174,0}, {1537,57164,0},{1540,57166,0},{1535,57174,0},{1525,57198,0},{1522,57201,0}, {1510,57204,0},{1507,57208,0},{1503,57213,0},{1500,57223,0},{1497,57219,0}, {1498,57216,0},{1480,57206,0},{1480,57203,0},{1482,57206,0},{1482,57204,0}, {1483,57204,0},{1483,57208,0},{1490,57206,0},{1492,57204,0},{1488,57199,0}, {1480,57194,0},{1480,57198,0},{1475,57198,0},{1473,57201,0},{1473,57203,0}, {1475,57204,0},{1477,57201,0},{1477,57203,0},{1475,57204,0},{1478,57204,0}, {1477,57206,0},{1463,57208,0},{1445,57216,0},{1433,57218,0},{1427,57216,0}, {1417,57209,0},{1405,57203,0},{1400,57196,0},{1395,57193,0},{1363,57184,0}, {1353,57184,0},{1345,57181,0},{1322,57179,0},{1290,57186,0},{1282,57184,0}, {1262,57183,0},{1253,57184,0},{1247,57188,0},{1240,57188,0},{1238,57186,0}, {1238,57178,0},{1237,57174,0},{1238,57173,0},{1242,57176,0},{1248,57173,0}, {1257,57173,0},{1257,57179,0},{1258,57179,0},{1267,57179,0},{1272,57181,0}, {1275,57179,0},{1277,57183,0},{1280,57181,0},{1282,57176,0},{1280,57173,0}, {1280,57171,0},{1277,57173,0},{1275,57171,0},{1273,57174,0},{1272,57174,0}, {1268,57176,0},{1262,57178,0},{1255,57166,0},{1255,57161,0},{1252,57159,0}, {1247,57158,0},{1248,57163,0},{1247,57163,0},{1233,57164,0},{1233,57166,0}, {1235,57168,0},{1233,57169,0},{1228,57169,0},{1235,57171,0},{1235,57173,0}, {1233,57174,0},{1223,57169,0},{1215,57168,0},{1198,57169,0},{1207,57164,0}, {1208,57164,0},{1210,57168,0},{1217,57164,0},{1217,57158,0},{1215,57159,0}, {1215,57163,0},{1212,57166,0},{1205,57163,0},{1205,57156,0},{1202,57161,0}, {1193,57159,0},{1187,57153,0},{1180,57159,0},{1180,57163,0},{1183,57161,0}, {1187,57163,0},{1185,57166,0},{1162,57171,0},{1160,57171,0},{1160,57168,0}, {1157,57164,0},{1155,57159,0},{1145,57158,0},{1143,57154,0},{1142,57153,0}, {1132,57149,0},{1117,57151,0},{1107,57156,0},{1092,57164,0},{1092,57166,0}, {1093,57166,0},{1092,57171,0},{1087,57176,0},{1078,57178,0},{1078,57176,0}, {1085,57174,0},{1078,57174,0},{1075,57176,0},{1072,57173,0},{1075,57176,0}, {1072,57178,0},{1077,57179,0},{1072,57179,0},{1048,57189,0},{1013,57214,0}, {1000,57226,0},{998,57229,0},{1000,57229,0},{1000,57234,0},{995,57234,0}, {975,57251,0},{973,57253,0},{973,57256,0},{970,57256,0},{967,57259,0},{963,57266,0}, {963,57273,0},{957,57279,0},{942,57299,0},{942,57303,0},{938,57301,0},{933,57298,0}, {930,57301,0},{928,57299,0},{928,57298,0},{927,57296,0},{925,57299,0},{922,57299,0}, {920,57301,0},{918,57306,0},{920,57306,0},{920,57308,0},{922,57308,0},{920,57309,0}, {918,57309,0},{918,57311,0},{922,57311,0},{918,57313,0},{922,57316,0},{918,57318,0}, {920,57319,0},{915,57319,0},{917,57316,0},{917,57311,0},{915,57309,0},{910,57311,0}, {910,57309,0},{908,57313,0},{902,57311,0},{900,57311,0},{898,57316,0},{898,57323,0}, {893,57326,0},{892,57329,0},{895,57336,0},{893,57339,0},{893,57341,0},{897,57346,0}, {895,57349,0},{895,57354,0},{893,57358,0},{897,57359,0},{900,57358,0},{902,57354,0}, {910,57348,0},{913,57343,0},{913,57349,0},{915,57346,0},{917,57346,0},{912,57354,0}, {910,57354,0},{910,57351,0},{905,57354,0},{907,57356,0},{905,57361,0},{900,57366,0}, {888,57374,0},{878,57386,0},{878,57398,0},{877,57403,0},{878,57423,0},{883,57439,0}, {888,57448,0},{888,57453,0},{898,57461,0},{907,57476,0},{913,57496,0},{915,57506,0}, {920,57523,0},{922,57526,0},{928,57533,0},{888,57576,128},{888,57571,0}, {885,57569,0},{887,57566,0},{885,57566,0},{883,57563,0},{880,57561,0},{877,57559,0}, {870,57563,0},{868,57561,0},{863,57553,0},{860,57558,0},{860,57561,0},{858,57561,0}, {853,57549,0},{852,57549,0},{848,57543,0},{845,57541,0},{840,57534,0},{830,57513,0}, {830,57498,0},{832,57498,0},{828,57498,0},{822,57489,0},{808,57488,0},{802,57491,0}, {798,57501,0},{795,57504,0},{790,57504,0},{773,57523,0},{770,57524,0},{763,57531,0}, {752,57538,0},{747,57536,0},{745,57534,0},{742,57519,0},{743,57518,0},{743,57509,0}, {742,57506,0},{742,57509,0},{738,57501,0},{737,57499,0},{732,57503,0},{730,57498,0}, {725,57493,0},{725,57486,0},{723,57484,0},{725,57479,0},{722,57464,0},{720,57449,0}, {725,57446,0},{725,57443,0},{732,57444,0},{733,57448,0},{735,57448,0},{740,57444,0}, {745,57444,0},{750,57439,0},{755,57441,0},{762,57438,0},{767,57431,0},{768,57433,0}, {768,57436,0},{770,57436,0},{772,57431,0},{772,57433,0},{775,57433,0},{777,57428,0}, {780,57429,0},{782,57434,0},{783,57434,0},{783,57431,0},{790,57431,0},{785,57428,0}, {787,57424,0},{785,57428,0},{783,57426,0},{785,57418,0},{787,57416,0},{788,57416,0}, {790,57414,0},{788,57416,0},{788,57414,0},{787,57414,0},{785,57418,0},{777,57419,0}, {775,57418,0},{773,57414,0},{775,57414,0},{775,57411,0},{772,57414,0},{772,57413,0}, {770,57413,0},{770,57416,0},{767,57416,0},{763,57418,0},{760,57414,0},{765,57406,0}, {765,57401,0},{768,57398,0},{767,57394,0},{770,57391,0},{770,57383,0},{775,57388,0}, {775,57379,0},{777,57379,0},{780,57378,0},{785,57379,0},{785,57376,0},{788,57376,0}, {788,57374,0},{792,57374,0},{793,57376,0},{795,57374,0},{798,57376,0},{798,57373,0}, {793,57374,0},{795,57373,0},{805,57368,0},{802,57366,0},{803,57364,0},{805,57366,0}, {807,57363,0},{807,57369,0},{818,57361,0},{817,57359,0},{815,57361,0},{812,57359,0}, {813,57356,0},{818,57341,0},{820,57341,0},{823,57343,0},{818,57339,0},{822,57336,0}, {820,57334,0},{823,57324,0},{815,57323,0},{817,57319,0},{818,57321,0},{822,57321,0}, {820,57318,0},{822,57314,0},{823,57316,0},{827,57314,0},{830,57314,0},{830,57316,0}, {833,57314,0},{833,57318,0},{833,57314,0},{830,57311,0},{832,57308,0},{833,57308,0}, {833,57301,0},{830,57301,0},{828,57296,0},{830,57293,0},{832,57294,0},{835,57293,0}, {835,57291,0},{832,57293,0},{832,57291,0},{832,57289,0},{828,57291,0},{827,57286,0}, {832,57269,0},{828,57254,0},{827,57251,0},{823,57249,0},{812,57249,0},{807,57251,0}, {802,57249,0},{803,57246,0},{805,57244,0},{810,57246,0},{823,57239,0},{835,57221,0}, {838,57223,0},{840,57224,0},{845,57226,0},{853,57221,0},{855,57226,0},{855,57221,0}, {857,57219,0},{860,57218,0},{862,57219,0},{860,57221,0},{857,57221,0},{858,57224,0}, {863,57219,0},{862,57218,0},{863,57213,0},{862,57213,0},{865,57211,0},{865,57206,0}, {867,57203,0},{872,57203,0},{873,57198,0},{870,57194,0},{872,57188,0},{868,57188,0}, {865,57193,0},{862,57193,0},{858,57196,0},{853,57208,0},{850,57208,0},{847,57209,0}, {843,57208,0},{842,57209,0},{838,57208,0},{837,57208,0},{840,57198,0},{842,57196,0}, {842,57199,0},{843,57196,0},{842,57196,0},{845,57188,0},{843,57179,0},{858,57166,0}, {858,57163,0},{862,57163,0},{868,57166,0},{868,57171,0},{873,57173,0},{875,57173,0}, {878,57179,0},{878,57174,0},{877,57173,0},{878,57171,0},{883,57178,0},{888,57174,0}, {888,57179,0},{890,57176,0},{890,57173,0},{892,57174,0},{893,57173,0},{897,57176,0}, {903,57173,0},{907,57169,0},{913,57163,0},{915,57159,0},{918,57159,0},{922,57153,0}, {930,57143,0},{940,57119,0},{943,57119,0},{947,57116,0},{947,57113,0},{945,57116,0}, {948,57109,0},{953,57088,0},{952,57083,0},{955,57081,0},{953,57081,0},{957,57074,0}, {960,57073,0},{962,57069,0},{965,57071,0},{965,57068,0},{968,57069,0},{975,57073,0}, {977,57073,0},{987,57066,0},{988,57064,0},{992,57066,0},{995,57063,0},{997,57063,0}, {997,57051,0},{998,57058,0},{1000,57048,0},{1005,57041,0},{1007,57039,0}, {1010,57036,0},{1012,57034,0},{1013,57029,0},{1015,57029,0},{1017,57028,0}, {1015,57023,0},{1017,57016,0},{1020,57013,0},{1023,57013,0},{1028,57008,0}, {1027,57008,0},{1023,57011,0},{1010,57013,0},{1008,57016,0},{1005,57019,0}, {1005,57021,0},{1003,57021,0},{1003,57018,0},{998,57026,0},{997,57031,0}, {993,57036,0},{993,57044,0},{990,57044,0},{988,57043,0},{985,57046,0},{983,57043,0}, {982,57049,0},{978,57044,0},{977,57043,0},{975,57041,0},{973,57041,0},{973,57036,0}, {972,57034,0},{970,57036,0},{967,57029,0},{957,57026,0},{955,57024,0},{973,57013,0}, {975,57009,0},{978,57009,0},{983,57001,0},{985,56993,0},{985,56989,0},{987,56984,0}, {987,56979,0},{990,56973,0},{990,56969,0},{992,56969,0},{997,56968,0},{1002,56963,0}, {1010,56956,0},{1025,56951,0},{1028,56951,0},{1032,56953,0},{1035,56949,0}, {1040,56953,0},{1042,56956,0},{1043,56956,0},{1045,56958,0},{1052,56956,0}, {1053,56958,0},{1055,56966,0},{1057,56966,0},{1057,56968,0},{1058,56968,0}, {1058,56971,0},{1062,56973,0},{1063,56971,0},{1060,56968,0},{1062,56966,0}, {1063,56969,0},{1063,56968,0},{1067,56968,0},{1067,56971,0},{1077,56969,0}, {1080,56968,0},{1082,56963,0},{1080,56959,0},{1082,56958,0},{1082,56956,0}, {1085,56958,0},{1085,56951,0},{1088,56946,0},{1088,56941,0},{1092,56949,0}, {1095,56949,0},{1095,56954,0},{1092,56954,0},{1090,56956,0},{1092,56958,0}, {1093,56958,0},{1093,56963,0},{1092,56964,0},{1095,56964,0},{1097,56968,0}, {1102,56961,0},{1105,56964,0},{1103,56968,0},{1103,56969,0},{1105,56969,0}, {1107,56968,0},{1112,56958,0},{1118,56954,0},{1130,56944,0},{1135,56936,0}, {1145,56926,0},{1147,56921,0},{1152,56918,0},{1162,56901,0},{1168,56898,0}, {1177,56886,0},{1185,56881,0},{1190,56876,0},{1195,56873,0},{1205,56866,0}, {1220,56858,0},{1245,56819,0},{1247,56818,0},{1243,56826,0},{1248,56821,0}, {1252,56818,0},{1248,56819,0},{1248,56818,0},{1253,56813,0},{1260,56803,0}, {1263,56803,0},{1262,56803,0},{1263,56801,0},{1275,56789,0},{1275,56791,0}, {1278,56791,0},{1282,56784,0},{1280,56784,0},{1278,56788,0},{1278,56786,0}, {1290,56768,0},{1298,56769,0},{1302,56774,0},{1308,56778,0},{1305,56778,0}, {1305,56781,0},{1302,56786,0},{1298,56789,0},{1293,56789,0},{1292,56794,0}, {1290,56799,0},{1292,56806,0},{1293,56799,0},{1295,56799,0},{1297,56803,0}, {1298,56806,128},{1303,56809,0},{1303,56804,0},{1307,56801,0},{1310,56806,0}, {1312,56796,0},{1310,56794,0},{1313,56794,0},{1323,56789,0},{1327,56788,0}, {1327,56784,0},{1335,56791,0},{1337,56798,0},{1340,56798,0},{1342,56796,0}, {1340,56793,0},{1342,56791,0},{1340,56788,0},{1335,56789,0},{1335,56783,0}, {1335,56781,0},{1337,56781,0},{1338,56778,0},{1337,56774,0},{1340,56776,0}, {1342,56774,0},{1343,56774,0},{1347,56773,0},{1343,56771,0},{1338,56769,0}, {1335,56764,0},{1335,56761,0},{1340,56758,0},{1340,56753,0},{1343,56753,0}, {1338,56749,0},{1337,56749,0},{1328,56758,0},{1323,56753,0},{1320,56744,0}, {1317,56746,0},{1315,56746,0},{1317,56731,0},{1315,56714,0},{1317,56703,0}, {1317,56701,0},{1318,56704,0},{1320,56703,0},{1323,56701,0},{1320,56703,0}, {1318,56696,0},{1317,56699,0},{1317,56693,0},{1320,56693,0},{1320,56694,0}, {1322,56694,0},{1325,56691,0},{1325,56689,0},{1322,56691,0},{1322,56686,0}, {1325,56683,0},{1327,56681,0},{1328,56676,0},{1327,56671,0},{1327,56664,0}, {1325,56671,0},{1327,56678,0},{1322,56683,0},{1323,56676,0},{1320,56688,0}, {1317,56691,0},{1318,56684,0},{1323,56659,0},{1325,56653,0},{1328,56648,0}, {1337,56631,0},{1343,56619,0},{1348,56606,0},{1350,56586,0},{1350,56584,0}, {1353,56568,0},{1353,56554,0},{1362,56551,0},{1375,56526,0},{1388,56491,0}, {1393,56476,0},{1392,56433,0},{1393,56418,0},{1398,56398,0},{1410,56374,0}, {1422,56354,0},{1455,56311,0},{1508,56258,128},{1455,56311,0},{1510,56258,0}, {1517,56251,0},{1515,56259,0},{1508,56261,0},{1513,56261,0},{1517,56259,0}, {1518,56254,0},{1518,56253,0},{1522,56251,0},{1520,56249,0},{1518,56251,0}, {1527,56238,0},{1530,56234,0},{1535,56228,0},{1548,56216,0},{1553,56209,0}, {1577,56181,0},{1592,56158,0},{1600,56143,0},{1602,56143,0},{1600,56148,0}, {1602,56151,0},{1608,56146,0},{1612,56134,0},{1613,56129,0},{1617,56126,0}, {1623,56123,0},{1620,56116,0},{1622,56106,0},{1630,56099,0},{1630,56096,0}, {1628,56094,0},{1625,56094,0},{1623,56093,0},{1623,56094,0},{1622,56093,0}, {1620,56094,0},{1615,56103,0},{1613,56109,0},{1615,56109,0},{1618,56103,0}, {1617,56114,0},{1613,56119,0},{1612,56118,0},{1608,56129,0},{1603,56133,0}, {1600,56139,0},{1617,56096,0},{1618,56088,0},{1620,56064,0},{1620,56063,0}, {1622,56063,0},{1625,56073,0},{1628,56078,0},{1632,56078,0},{1637,56069,0}, {1632,56064,0},{1630,56064,0},{1630,56061,0},{1625,56058,0},{1628,56056,0}, {1632,56059,0},{1633,56059,0},{1637,56056,0},{1638,56056,0},{1643,56049,0}, {1640,56044,0},{1632,56039,0},{1632,56033,0},{1630,56033,0},{1628,56029,0}, {1627,56029,0},{1625,56039,0},{1625,56049,0},{1628,56053,0},{1627,56054,0}, {1625,56051,0},{1623,56043,0},{1622,56058,0},{1620,56061,0},{1622,56051,0}, {1618,56028,0},{1620,56023,0},{1618,56021,0},{1617,56021,0},{1615,56014,0}, {1613,56011,0},{1610,56009,0},{1605,55999,0},{1602,55999,0},{1598,55994,0}, {1590,55963,0},{1587,55959,0},{1582,55941,0},{1575,55931,0},{1575,55928,0}, {1568,55918,0},{1567,55908,0},{1568,55893,0},{1565,55888,0},{1565,55879,0}, {1572,55863,0},{1573,55853,0},{1582,55834,0},{1590,55823,0},{1592,55816,0}, {1597,55773,0},{1595,55769,0},{1597,55758,0},{1602,55749,0},{1603,55751,0}, {1607,55749,0},{1605,55748,0},{1615,55729,0},{1620,55719,0},{1622,55719,0}, {1618,55729,0},{1620,55729,0},{1622,55726,0},{1622,55721,0},{1623,55719,0}, {1622,55718,0},{1625,55704,0},{1627,55696,0},{1632,55681,0},{1635,55679,0}, {1642,55669,0},{1653,55663,0},{1655,55659,0},{1655,55651,0},{1652,55651,0}, {1655,55644,0},{1658,55636,0},{1660,55626,0},{1663,55616,0},{1663,55606,0}, {1667,55601,0},{1670,55566,0},{1678,55551,0},{1682,55553,0},{1687,55548,0}, {1687,55546,0},{1683,55548,0},{1682,55546,0},{1688,55543,0},{1693,55528,0}, {1695,55518,0},{1700,55508,0},{1710,55483,0},{1722,55448,0},{1727,55434,0}, {1727,55431,0},{1730,55431,0},{1737,55426,0},{1747,55409,0},{1752,55394,0}, {1753,55391,0},{1758,55391,0},{1762,55386,0},{1763,55379,0},{1767,55373,0}, {1772,55371,0},{1780,55361,0},{1788,55358,0},{1798,55341,0},{1798,55333,0}, {1798,55328,0},{1792,55321,0},{1798,55301,0},{1805,55279,0},{1807,55264,0}, {1818,55233,0},{1820,55224,0},{1827,55201,0},{1833,55188,0},{1850,55178,0}, {1858,55166,0},{1862,55168,0},{1867,55164,0},{1888,55139,0},{1900,55104,0}, {1903,55103,0},{1907,55104,0},{1910,55103,0},{1912,55099,0},{1908,55096,0}, {1910,55094,0},{1910,55091,0},{1913,55086,0},{1917,55069,0},{1920,55066,0}, {1922,55064,0},{1923,55063,0},{1922,55054,0},{1928,55056,0},{1930,55054,0}, {1928,55048,0},{1928,55046,0},{1935,55036,0},{1937,55034,0},{1942,55033,0}, {1945,55029,0},{1948,55029,0},{1957,55026,0},{1962,55014,0},{1972,55006,0}, {1978,55003,0},{1992,54991,0},{2008,54981,0},{2022,54979,0},{2025,54976,0}, {2040,54968,0},{2042,54968,0},{2048,54978,0},{2052,55001,0},{2055,55006,0}, {2057,55011,0},{2065,55013,0},{2077,55004,0},{2075,54994,0},{2077,54989,0}, {2078,54986,0},{2078,54981,0},{2082,54986,0},{2082,54989,0},{2088,54993,0}, {2090,54994,0},{2093,54996,0},{2098,55003,0},{2102,55004,0},{2103,55006,0}, {2103,55011,0},{2107,55013,0},{2123,55014,0},{2135,55013,0},{2140,55014,0}, {2145,55018,0},{2150,55016,0},{2152,55014,0},{2152,55008,0},{2160,54993,0}, {2167,54991,0},{2177,54986,0},{2188,54979,0},{2198,54971,0},{2228,54973,0}, {2237,54971,0},{2250,54963,0},{2252,54963,0},{2252,54964,0},{2253,54964,0}, {2255,54963,0},{2253,54961,0},{2257,54959,0},{2267,54954,0},{2270,54949,0}, {2278,54941,0},{2282,54936,0},{2285,54938,0},{2285,54934,0},{2283,54933,0}, {2285,54931,0},{2305,54914,0},{2308,54908,0},{2318,54898,0},{2318,54894,0}, {2323,54893,0},{2330,54888,0},{2333,54888,0},{2340,54884,0},{2347,54874,0}, {2360,54864,0},{2365,54856,0},{2370,54854,0},{2373,54851,0},{2387,54844,0}, {2398,54831,0},{2413,54811,0},{2420,54799,0},{2425,54796,0},{2428,54788,0}, {2435,54779,0},{2448,54756,0},{2452,54756,0},{2452,54759,0},{2448,54759,0}, {2438,54776,0},{2437,54784,0},{2433,54786,0},{2438,54781,0},{2438,54784,0}, {2435,54786,0},{2437,54788,0},{2437,54786,0},{2438,54788,0},{2452,54784,0}, {2452,54778,0},{2450,54776,0},{2452,54779,0},{2450,54781,0},{2447,54778,0}, {2445,54773,0},{2450,54769,0},{2448,54766,0},{2450,54763,0},{2452,54761,0}, {2458,54756,0},{2458,54751,0},{2462,54749,0},{2463,54743,0},{2457,54749,0}, {2453,54756,0},{2452,54754,0},{2463,54738,0},{2473,54734,0},{2478,54729,0}, {2478,54733,0},{2475,54738,0},{2478,54739,0},{2483,54734,0},{2485,54736,0}, {2490,54736,0},{2497,54738,0},{2500,54731,0},{2497,54731,0},{2492,54733,0}, {2482,54731,0},{2483,54724,0},{2503,54713,0},{2510,54703,0},{2510,54708,0}, {2505,54713,0},{2498,54718,0},{2497,54723,0},{2502,54723,0},{2502,54719,0}, {2503,54719,0},{2503,54721,0},{2505,54721,0},{2502,54726,0},{2500,54736,0}, {2503,54734,0},{2508,54731,0},{2512,54723,0},{2510,54723,0},{2510,54719,0}, {2517,54714,0},{2515,54708,0},{2517,54701,0},{2520,54701,0},{2518,54704,0}, {2523,54704,0},{2527,54699,0},{2520,54699,0},{2515,54696,0},{2520,54696,0}, {2527,54693,0},{2533,54674,0},{2535,54663,0},{2537,54664,0},{2535,54678,0}, {2540,54671,0},{2538,54659,0},{2540,54659,0},{2540,54663,0},{2545,54661,0}, {2543,54658,0},{2555,54659,0},{2553,54656,0},{2555,54654,0},{2557,54653,0}, {2557,54648,0},{2555,54646,0},{2552,54648,0},{2550,54648,0},{2545,54644,0}, {2547,54641,0},{2550,54643,0},{2550,54641,0},{2550,54634,0},{2547,54636,0}, {2547,54633,0},{2553,54624,0},{2558,54631,0},{2557,54636,0},{2553,54638,0}, {2558,54639,0},{2563,54644,0},{2568,54646,0},{2567,54648,0},{2572,54648,0}, {2577,54653,0},{2580,54653,0},{2580,54651,0},{2577,54651,0},{2570,54646,0}, {2565,54636,0},{2560,54633,0},{2558,54629,0},{2558,54624,0},{2558,54621,0}, {2565,54619,0},{2568,54611,0},{2565,54613,0},{2558,54621,0},{2555,54621,0}, {2563,54611,0},{2563,54596,0},{2567,54599,0},{2567,54606,0},{2572,54608,0}, {2573,54606,0},{2577,54599,0},{2575,54596,0},{2568,54598,0},{2568,54596,0}, {2570,54596,0},{2577,54596,0},{2578,54593,0},{2585,54594,0},{2585,54596,0}, {2585,54594,0},{2592,54594,0},{2593,54591,0},{2603,54594,0},{2612,54601,0}, {2630,54611,0},{2627,54611,0},{2627,54609,0},{2623,54608,0},{2617,54608,0}, {2615,54608,0},{2627,54614,0},{2632,54613,0},{2633,54614,0},{2632,54619,0}, {2628,54621,0},{2627,54619,0},{2625,54621,0},{2622,54626,0},{2625,54626,0}, {2628,54628,0},{2628,54624,0},{2630,54623,0},{2638,54621,0},{2638,54618,0}, {2635,54619,0},{2635,54614,0},{2633,54611,0},{2643,54613,0},{2653,54608,0}, {2658,54603,0},{2667,54594,0},{2668,54589,0},{2670,54589,0},{2670,54593,0}, {2673,54588,0},{2673,54586,0},{2677,54584,0},{2673,54579,0},{2672,54584,0}, {2670,54583,0},{2670,54586,0},{2668,54584,0},{2670,54573,0},{2667,54569,0}, {2668,54564,0},{2673,54556,0},{2682,54549,0},{2692,54548,0},{2698,54541,0}, {2700,54541,0},{2693,54548,0},{2705,54544,0},{2710,54539,0},{2712,54534,0}, {2710,54531,0},{2710,54528,0},{2713,54514,0},{2717,54508,0},{2715,54504,0}, {2727,54494,0},{2730,54484,0},{2732,54491,0},{2738,54488,0},{2737,54481,0}, {2743,54481,0},{2747,54478,0},{2753,54478,0},{2760,54474,0},{2765,54473,0}, {2767,54473,0},{2765,54476,0},{2768,54479,0},{2770,54478,0},{2768,54476,0}, {2772,54478,0},{2773,54481,0},{2775,54476,0},{2778,54478,0},{2778,54476,0}, {2782,54474,0},{2782,54476,0},{2783,54478,0},{2783,54484,0},{2787,54484,0}, {2788,54476,0},{2788,54474,0},{2787,54476,0},{2787,54474,0},{2790,54468,0}, {2792,54458,0},{2790,54451,0},{2792,54454,0},{2795,54453,0},{2798,54454,0}, {2798,54451,0},{2793,54451,0},{2790,54448,0},{2790,54449,0},{2783,54448,0}, {2785,54446,0},{2787,54444,0},{2788,54443,0},{2790,54439,0},{2792,54443,0}, {2797,54436,0},{2793,54426,0},{2797,54426,0},{2797,54423,0},{2805,54413,0}, {2820,54403,0},{2822,54399,0},{2827,54398,0},{2833,54389,0},{2838,54393,0}, {2838,54388,0},{2847,54366,0},{2858,54359,0},{2877,54341,0},{2878,54344,0}, {2875,54349,0},{2877,54351,0},{2880,54351,0},{2880,54344,0},{2883,54339,0}, {2888,54333,0},{2890,54333,0},{2897,54324,0},{2897,54319,0},{2900,54321,0}, {2905,54318,0},{2913,54319,0},{2917,54318,0},{2918,54314,0},{2925,54316,0}, {2930,54316,0},{2933,54311,0},{2933,54303,0},{2930,54303,0},{2933,54298,0}, {2938,54294,0},{2945,54298,0},{2950,54298,0},{2952,54294,0},{2955,54293,0}, {2962,54286,0},{2968,54283,0},{2972,54278,0},{2977,54276,0},{2983,54271,0}, {2990,54269,0},{2992,54266,0},{2992,54263,0},{2992,54261,0},{3000,54263,0}, {3005,54261,0},{3022,54261,0},{3028,54254,0},{3028,54249,0},{3035,54251,0}, {3043,54249,0},{3058,54236,0},{3070,54228,0},{3082,54224,0},{3095,54228,0}, {3107,54224,0},{3108,54224,0},{3107,54226,0},{3100,54229,0},{3107,54231,0}, {3115,54233,0},{3123,54228,0},{3123,54221,0},{3120,54226,0},{3120,54224,0}, {3123,54218,0},{3128,54211,0},{3127,54209,0},{3125,54214,0},{3123,54213,0}, {3128,54193,0},{3128,54188,0},{3133,54174,0},{3135,54173,0},{3135,54174,0}, {3150,54173,0},{3158,54153,0},{3158,54149,0},{3162,54148,0},{3160,54141,0}, {3167,54139,0},{3165,54138,0},{3157,54138,0},{3157,54141,0},{3152,54138,0}, {3152,54134,0},{3150,54134,0},{3150,54121,0},{3152,54116,0},{3157,54104,0}, {3160,54103,0},{3165,54093,0},{3177,54078,0},{3177,54066,0},{3180,54063,0}, {3182,54056,0},{3190,54044,0},{3192,54036,0},{3197,54034,0},{3195,54033,0}, {3190,54034,0},{3190,54041,0},{3180,54049,0},{3180,54054,0},{3172,54054,0}, {3165,54058,0},{3158,54053,0},{3153,54051,0},{3115,54048,0},{3110,54049,0}, {3107,54054,0},{3100,54053,0},{3095,54063,0},{3092,54066,0},{3080,54068,0}, {3065,54066,0},{3057,54071,0},{3048,54074,0},{3028,54071,0},{3027,54073,0}, {3020,54069,0},{3013,54073,0},{3012,54076,0},{3000,54081,0},{2998,54088,0}, {2992,54091,0},{2992,54094,0},{2987,54096,0},{2983,54096,0},{2980,54099,0}, {2978,54103,0},{2977,54106,0},{2978,54109,0},{2977,54111,0},{2975,54116,0}, {2960,54131,0},{2947,54151,0},{2943,54154,0},{2935,54163,0},{2927,54171,0}, {2922,54171,0},{2918,54173,0},{2917,54176,0},{2912,54181,0},{2905,54183,0}, {2903,54181,0},{2897,54183,0},{2895,54181,0},{2888,54186,0},{2890,54191,0}, {2893,54189,0},{2897,54194,0},{2893,54196,0},{2895,54199,0},{2893,54199,0}, {2892,54201,0},{2888,54201,0},{2888,54203,0},{2885,54201,0},{2880,54201,0}, {2880,54206,0},{2883,54213,0},{2882,54216,0},{2878,54218,0},{2873,54218,0}, {2870,54221,0},{2865,54219,0},{2862,54223,0},{2848,54224,0},{2843,54234,0}, {2845,54244,0},{2843,54246,0},{2843,54248,0},{2843,54249,0},{2828,54249,0}, {2820,54258,0},{2813,54256,0},{2807,54259,0},{2803,54258,0},{2800,54264,0}, {2783,54261,0},{2780,54266,0},{2772,54269,0},{2772,54273,0},{2763,54279,0}, {2763,54286,0},{2757,54294,0},{2753,54301,0},{2750,54304,0},{2733,54306,0}, {2723,54316,0},{2722,54316,0},{2723,54314,0},{2723,54313,0},{2720,54314,0}, {2713,54326,0},{2710,54341,0},{2708,54341,0},{2705,54336,0},{2700,54333,0}, {2692,54339,0},{2690,54339,0},{2688,54343,0},{2683,54346,0},{2677,54346,0}, {2673,54344,0},{2672,54348,0},{2667,54351,0},{2663,54354,0},{2655,54361,0}, {2657,54364,0},{2660,54368,0},{2665,54364,0},{2670,54356,0},{2687,54349,0}, {2690,54351,0},{2690,54354,0},{2682,54364,0},{2680,54368,0},{2675,54373,0}, {2672,54379,0},{2657,54381,0},{2652,54391,0},{2647,54389,0},{2642,54388,0}, {2638,54393,0},{2637,54393,0},{2635,54396,0},{2630,54398,0},{2628,54394,0}, {2623,54396,0},{2613,54401,0},{2610,54404,0},{2603,54401,0},{2600,54403,0}, {2595,54399,0},{2585,54404,0},{2583,54406,0},{2578,54406,0},{2572,54413,0}, {2558,54419,0},{2555,54424,0},{2555,54431,0},{2553,54431,0},{2553,54434,0}, {2542,54434,0},{2532,54441,0},{2525,54441,0},{2520,54444,0},{2517,54444,0}, {2508,54451,0},{2502,54461,0},{2498,54461,0},{2490,54468,0},{2480,54469,0}, {2467,54463,0},{2458,54463,0},{2447,54466,0},{2438,54468,0},{2428,54474,0}, {2428,54478,0},{2422,54484,0},{2418,54506,0},{2417,54503,0},{2418,54499,0}, {2418,54496,0},{2413,54498,0},{2412,54499,0},{2413,54504,0},{2415,54504,0}, {2418,54509,0},{2425,54508,0},{2428,54506,0},{2433,54506,0},{2435,54514,0}, {2425,54523,0},{2417,54536,0},{2405,54539,0},{2402,54544,0},{2405,54554,0}, {2402,54556,0},{2392,54554,0},{2390,54554,0},{2380,54566,0},{2373,54566,0}, {2367,54568,0},{2358,54588,0},{2355,54589,0},{2345,54596,0},{2342,54594,0}, {2340,54596,0},{2337,54594,0},{2323,54593,0},{2313,54584,0},{2307,54573,0}, {2303,54566,0},{2298,54566,0},{2292,54553,0},{2288,54546,0},{2287,54544,0}, {2287,54541,0},{2290,54534,0},{2298,54529,0},{2313,54524,0},{2333,54519,0}, {2342,54511,0},{2357,54504,0},{2363,54496,0},{2368,54479,0},{2373,54473,0}, {2387,54459,0},{2392,54453,0},{2395,54446,0},{2402,54443,0},{2412,54433,0}, {2417,54421,0},{2418,54421,0},{2420,54414,0},{2433,54389,0},{2435,54389,0}, {2430,54399,0},{2433,54393,0},{2443,54383,0},{2443,54379,0},{2447,54376,0}, {2453,54371,0},{2458,54371,0},{2460,54368,0},{2458,54366,0},{2457,54368,0}, {2455,54366,0},{2457,54356,0},{2452,54359,0},{2452,54356,0},{2465,54353,0}, {2470,54349,0},{2475,54343,0},{2477,54343,0},{2475,54344,0},{2480,54339,0}, {2488,54336,0},{2488,54334,0},{2487,54336,0},{2483,54334,0},{2478,54339,0}, {2478,54336,0},{2475,54339,0},{2477,54336,0},{2475,54334,0},{2477,54333,0}, {2485,54333,0},{2483,54329,0},{2477,54331,0},{2473,54326,0},{2477,54329,0}, {2480,54326,0},{2487,54326,0},{2488,54323,0},{2492,54328,0},{2492,54324,0}, {2493,54324,0},{2495,54328,0},{2497,54326,0},{2503,54326,0},{2502,54324,0}, {2490,54321,0},{2490,54318,0},{2493,54319,0},{2497,54319,0},{2497,54321,0}, {2505,54324,0},{2517,54323,0},{2522,54326,0},{2523,54328,0},{2527,54329,0}, {2537,54329,0},{2542,54328,0},{2543,54329,0},{2545,54328,0},{2548,54331,0}, {2557,54329,0},{2572,54329,0},{2568,54328,0},{2557,54328,0},{2552,54326,0}, {2552,54324,0},{2572,54326,0},{2577,54324,0},{2595,54316,0},{2603,54311,0}, {2607,54306,0},{2610,54304,0},{2608,54303,0},{2622,54299,0},{2627,54296,0}, {2628,54293,0},{2627,54289,0},{2627,54286,0},{2630,54283,0},{2633,54283,0}, {2633,54273,0},{2633,54269,0},{2642,54258,0},{2643,54259,0},{2643,54254,0}, {2652,54246,0},{2655,54238,0},{2665,54226,0},{2668,54228,0},{2667,54224,0}, {2668,54219,0},{2672,54213,0},{2678,54213,0},{2688,54223,0},{2697,54223,0}, {2697,54219,0},{2695,54218,0},{2688,54218,0},{2683,54216,0},{2682,54213,0}, {2682,54216,0},{2680,54211,0},{2673,54211,0},{2680,54199,0},{2682,54191,0}, {2682,54196,0},{2685,54193,0},{2683,54189,0},{2682,54189,0},{2677,54183,0}, {2675,54183,0},{2675,54176,0},{2680,54168,0},{2682,54164,0},{2690,54161,0}, {2698,54151,0},{2700,54144,0},{2698,54136,0},{2702,54131,0},{2710,54128,0}, {2715,54119,0},{2717,54111,0},{2715,54106,0},{2718,54098,0},{2718,54094,0}, {2723,54093,0},{2725,54088,0},{2735,54088,0},{2742,54084,0},{2745,54079,0}, {2748,54076,0},{2753,54063,0},{2762,54056,0},{2765,54049,0},{2765,54051,0}, {2770,54049,0},{2770,54048,0},{2767,54046,0},{2772,54041,0},{2773,54034,0}, {2780,54033,0},{2783,54029,0},{2787,54031,0},{2783,54036,0},{2783,54046,0}, {2783,54051,0},{2782,54056,0},{2782,54061,0},{2778,54066,0},{2777,54074,0}, {2777,54088,0},{2788,54101,0},{2787,54103,0},{2778,54103,0},{2773,54108,0}, {2770,54119,0},{2772,54126,0},{2772,54133,0},{2768,54134,0},{2772,54139,0}, {2777,54133,0},{2775,54133,0},{2775,54129,0},{2772,54121,0},{2773,54119,0}, {2777,54113,0},{2780,54114,0},{2783,54113,0},{2785,54106,0},{2787,54104,0}, {2788,54108,0},{2795,54108,0},{2797,54113,0},{2805,54121,0},{2803,54121,0}, {2797,54119,0},{2800,54121,0},{2802,54123,0},{2807,54123,0},{2818,54124,0}, {2822,54123,0},{2823,54119,0},{2827,54118,0},{2840,54126,0},{2852,54129,0}, {2858,54126,0},{2860,54121,0},{2867,54119,0},{2868,54109,0},{2872,54109,0}, {2875,54103,0},{2882,54101,0},{2883,54096,0},{2888,54094,0},{2888,54093,0}, {2892,54091,0},{2893,54088,0},{2893,54083,0},{2893,54081,0},{2898,54079,0}, {2898,54078,0},{2902,54074,0},{2905,54076,0},{2912,54071,0},{2913,54064,0}, {2920,54061,0},{2928,54049,0},{2938,54041,0},{2942,54026,0},{2943,54018,0}, {2948,54013,0},{2957,53996,0},{2963,53989,0},{2963,53983,0},{2970,53979,0}, {2972,53973,0},{2977,53966,0},{2987,53966,0},{2993,53963,0},{2995,53961,0}, {2995,53954,0},{3005,53958,0},{3010,53958,0},{3015,53956,0},{3023,53956,0}, {3033,53953,0},{3038,53949,0},{3040,53939,0},{3045,53943,0},{3050,53938,0}, {3045,53941,0},{3043,53934,0},{3037,53938,0},{3038,53934,0},{3045,53933,0}, {3062,53933,0},{3080,53931,0},{3090,53916,0},{3095,53911,0},{3097,53903,0}, {3108,53906,0},{3117,53904,0},{3122,53903,0},{3135,53891,0},{3142,53886,0}, {3145,53883,0},{3147,53876,0},{3152,53874,0},{3155,53868,0},{3158,53869,0}, {3158,53873,0},{3162,53871,0},{3167,53873,0},{3172,53869,0},{3175,53864,0}, {3173,53869,0},{3175,53874,0},{3183,53876,0},{3192,53861,0},{3198,53858,0}, {3200,53851,0},{3205,53849,0},{3213,53848,0},{3223,53844,0},{3228,53834,0}, {3230,53833,0},{3245,53824,0},{3253,53824,0},{3255,53823,0},{3232,59061,128}, {3230,59058,0},{3228,59058,0},{3227,59051,0},{3227,59056,0},{3228,59059,0}, {3233,59066,0},{3235,59066,0},{3238,59069,0},{3238,59068,0},{3232,59061,0}, {1838,58809,128},{1840,58818,0},{1843,58819,0},{1848,58818,0},{1850,58821,0}, {1852,58829,0},{1848,58839,0},{1848,58858,0},{1848,58863,0},{1850,58873,0}, {1847,58889,0},{1848,58896,0},{1848,58903,0},{1847,58906,0},{1847,58918,0}, {1845,58919,0},{1848,58923,0},{1842,58926,0},{1843,58931,0},{1845,58924,0}, {1847,58924,0},{1845,58933,0},{1847,58936,0},{1845,58946,0},{1842,58954,0}, {1843,58956,0},{1842,58956,0},{1840,58959,0},{1837,58969,0},{1838,58973,0}, {1837,58974,0},{1828,58973,0},{1823,58976,0},{1818,58966,0},{1818,58963,0}, {1813,58958,0},{1807,58956,0},{1805,58953,0},{1802,58953,0},{1798,58948,0}, {1797,58941,0},{1798,58934,0},{1795,58931,0},{1795,58926,0},{1792,58916,0}, {1793,58916,0},{1795,58916,0},{1793,58913,0},{1795,58908,0},{1798,58903,0}, {1793,58896,0},{1798,58889,0},{1797,58878,0},{1797,58874,0},{1798,58873,0}, {1797,58869,0},{1798,58864,0},{1798,58859,0},{1798,58861,0},{1800,58858,0}, {1798,58856,0},{1797,58858,0},{1795,58854,0},{1795,58844,0},{1793,58843,0}, {1793,58841,0},{1797,58836,0},{1798,58831,0},{1797,58829,0},{1795,58826,0}, {1795,58819,0},{1793,58818,0},{1795,58816,0},{1798,58816,0},{1802,58819,0}, {1803,58816,0},{1807,58818,0},{1808,58818,0},{1810,58819,0},{1817,58818,0}, {1820,58821,0},{1828,58818,0},{1832,58811,0},{1837,58809,0},{1838,58809,0}, {1970,58359,128},{1970,58364,0},{1977,58363,0},{1977,58359,0},{1978,58358,0}, {1982,58361,0},{1983,58368,0},{1985,58369,0},{1990,58369,0},{1990,58383,0}, {1990,58389,0},{1985,58401,0},{1985,58406,0},{1982,58409,0},{1983,58414,0}, {1987,58416,0},{1983,58419,0},{1985,58421,0},{1985,58419,0},{1987,58419,0}, {1987,58426,0},{1992,58429,0},{1993,58436,0},{1992,58439,0},{1988,58441,0}, {1988,58443,0},{1990,58443,0},{1990,58453,0},{1987,58456,0},{1983,58458,0}, {1983,58463,0},{1975,58473,0},{1977,58484,0},{1978,58491,0},{1965,58508,0}, {1962,58524,0},{1963,58526,0},{1965,58528,0},{1968,58533,0},{1968,58541,0}, {1962,58548,0},{1953,58546,0},{1952,58549,0},{1943,58549,0},{1935,58554,0}, {1928,58561,0},{1930,58578,0},{1933,58583,0},{1932,58586,0},{1933,58591,0}, {1932,58593,0},{1930,58603,0},{1937,58613,0},{1935,58614,0},{1928,58613,0}, {1930,58621,0},{1918,58613,0},{1920,58604,0},{1918,58594,0},{1920,58589,0}, {1922,58574,0},{1922,58573,0},{1917,58574,0},{1912,58573,0},{1908,58574,0}, {1910,58583,0},{1908,58588,0},{1908,58591,0},{1910,58589,0},{1910,58591,0}, {1908,58598,0},{1907,58599,0},{1905,58601,0},{1905,58604,0},{1902,58611,0}, {1902,58618,0},{1902,58623,0},{1903,58621,0},{1905,58623,0},{1900,58626,0}, {1898,58631,0},{1898,58634,0},{1902,58634,0},{1903,58638,0},{1903,58644,0}, {1898,58649,0},{1898,58658,0},{1892,58668,0},{1878,58683,0},{1875,58689,0}, {1867,58696,0},{1865,58701,0},{1860,58704,0},{1850,58699,0},{1842,58691,0}, {1835,58691,0},{1835,58683,0},{1838,58678,0},{1837,58676,0},{1833,58676,0}, {1828,58674,0},{1820,58671,0},{1820,58661,0},{1827,58659,0},{1835,58653,0}, {1838,58649,0},{1842,58639,0},{1840,58639,0},{1838,58629,0},{1840,58619,0}, {1845,58614,0},{1843,58608,0},{1845,58604,0},{1843,58603,0},{1843,58593,0}, {1840,58584,0},{1842,58581,0},{1845,58574,0},{1840,58573,0},{1842,58569,0}, {1845,58568,0},{1847,58548,0},{1842,58539,0},{1842,58534,0},{1833,58529,0}, {1823,58521,0},{1822,58513,0},{1823,58508,0},{1823,58496,0},{1820,58484,0}, {1822,58479,0},{1823,58481,0},{1828,58476,0},{1832,58479,0},{1837,58479,0}, {1840,58478,0},{1842,58474,0},{1843,58468,0},{1842,58464,0},{1838,58466,0}, {1835,58463,0},{1835,58461,0},{1835,58456,0},{1833,58453,0},{1835,58451,0}, {1830,58449,0},{1825,58443,0},{1825,58439,0},{1830,58438,0},{1832,58431,0}, {1830,58428,0},{1825,58426,0},{1815,58431,0},{1792,58416,0},{1782,58406,0}, {1767,58399,0},{1762,58396,0},{1760,58394,0},{1775,58384,0},{1777,58378,0}, {1777,58368,0},{1783,58373,0},{1790,58369,0},{1792,58371,0},{1797,58369,0}, {1802,58363,0},{1805,58358,0},{1803,58359,128},{1805,58356,0},{1812,58353,0}, {1817,58346,0},{1820,58334,0},{1823,58329,0},{1822,58313,0},{1823,58301,0}, {1822,58284,0},{1822,58281,0},{1817,58281,0},{1818,58273,0},{1817,58261,0}, {1815,58261,0},{1813,58254,0},{1813,58248,0},{1818,58236,0},{1818,58224,0}, {1822,58218,0},{1823,58208,0},{1822,58201,0},{1823,58201,0},{1825,58204,0}, {1827,58198,0},{1825,58188,0},{1823,58183,0},{1825,58181,0},{1825,58179,0}, {1823,58179,0},{1822,58178,0},{1822,58176,0},{1822,58174,0},{1825,58174,0}, {1825,58173,0},{1822,58171,0},{1825,58171,0},{1823,58169,0},{1823,58168,0}, {1820,58164,0},{1817,58158,0},{1813,58153,0},{1810,58153,0},{1803,58158,0}, {1803,58148,0},{1813,58141,0},{1825,58126,0},{1827,58121,0},{1830,58118,0}, {1830,58113,0},{1830,58108,0},{1828,58104,0},{1830,58099,0},{1833,58091,0}, {1838,58091,0},{1843,58088,0},{1857,58094,0},{1862,58094,0},{1863,58098,0}, {1865,58104,0},{1865,58108,0},{1867,58109,0},{1867,58119,0},{1860,58133,0}, {1860,58139,0},{1857,58144,0},{1857,58151,0},{1853,58158,0},{1855,58158,0}, {1855,58163,0},{1857,58166,0},{1858,58178,0},{1857,58178,0},{1855,58176,0}, {1855,58164,0},{1853,58169,0},{1850,58171,0},{1850,58176,0},{1853,58186,0}, {1850,58199,0},{1847,58211,0},{1848,58216,0},{1848,58223,0},{1845,58226,0}, {1847,58238,0},{1845,58246,0},{1843,58248,0},{1845,58251,0},{1843,58263,0}, {1847,58268,0},{1855,58273,0},{1857,58276,0},{1855,58283,0},{1853,58293,0}, {1855,58294,0},{1853,58299,0},{1853,58301,0},{1863,58301,0},{1867,58304,0}, {1868,58303,0},{1872,58293,0},{1877,58288,0},{1878,58281,0},{1890,58273,0}, {1895,58264,0},{1900,58261,0},{1905,58254,0},{1908,58254,0},{1910,58263,0}, {1912,58264,0},{1913,58264,0},{1915,58261,0},{1922,58256,0},{1928,58259,0}, {1930,58264,0},{1932,58263,0},{1933,58259,0},{1937,58259,0},{1938,58259,0}, {1937,58263,0},{1938,58264,0},{1942,58263,0},{1940,58266,0},{1940,58268,0}, {1945,58266,0},{1945,58259,0},{1950,58256,0},{1957,58239,0},{1960,58236,0}, {1963,58226,0},{1962,58221,0},{1965,58214,0},{1962,58213,0},{1963,58196,0}, {1968,58189,0},{1975,58191,0},{1978,58194,0},{1980,58198,0},{1982,58199,0}, {1982,58194,0},{1983,58196,0},{1983,58201,0},{1985,58208,0},{1990,58218,0}, {1993,58219,0},{1992,58221,0},{1990,58231,0},{1992,58238,0},{1990,58239,0}, {1992,58243,0},{1995,58256,0},{1988,58278,0},{1982,58286,0},{1980,58296,0}, {1982,58298,0},{1975,58303,0},{1975,58301,0},{1972,58304,0},{1973,58306,0}, {1977,58304,0},{1975,58309,0},{1977,58311,0},{1978,58311,0},{1978,58316,0}, {1975,58316,0},{1975,58323,0},{1973,58324,0},{1972,58331,0},{1970,58334,0}, {1973,58339,0},{1972,58349,0},{1968,58349,0},{1968,58346,0},{1967,58348,0}, {1967,58351,0},{1965,58354,0},{1967,58356,0},{1968,58351,0},{1972,58353,0}, {1970,58361,0},{1827,57699,128},{1828,57701,0},{1837,57703,0},{1837,57704,0}, {1838,57708,0},{1838,57709,0},{1840,57709,0},{1845,57714,0},{1845,57718,0}, {1843,57719,0},{1845,57721,0},{1843,57724,0},{1845,57734,0},{1843,57739,0}, {1845,57741,0},{1852,57744,0},{1852,57749,0},{1848,57771,0},{1848,57779,0}, {1848,57788,0},{1845,57796,0},{1845,57811,0},{1843,57814,0},{1843,57819,0}, {1840,57824,0},{1842,57831,0},{1840,57841,0},{1840,57844,0},{1837,57846,0}, {1832,57854,0},{1827,57858,0},{1827,57866,0},{1825,57868,0},{1822,57873,0}, {1822,57878,0},{1820,57883,0},{1820,57888,0},{1818,57891,0},{1815,57903,0}, {1813,57903,0},{1805,57908,0},{1793,57913,0},{1792,57918,0},{1790,57916,0}, {1790,57913,0},{1787,57906,0},{1787,57904,0},{1788,57906,0},{1788,57904,0}, {1785,57901,0},{1787,57894,0},{1785,57884,0},{1787,57878,0},{1793,57871,0}, {1793,57864,0},{1792,57858,0},{1793,57853,0},{1795,57863,0},{1797,57858,0}, {1798,57853,0},{1797,57849,0},{1792,57848,0},{1785,57844,0},{1783,57841,0}, {1785,57838,0},{1785,57833,0},{1787,57834,0},{1788,57833,0},{1790,57828,0}, {1787,57823,0},{1780,57821,0},{1780,57818,0},{1778,57819,0},{1777,57814,0}, {1775,57819,0},{1775,57823,0},{1772,57823,0},{1770,57819,0},{1772,57813,0}, {1780,57804,0},{1787,57794,0},{1783,57786,0},{1787,57779,0},{1785,57764,0}, {1785,57761,0},{1788,57756,0},{1790,57756,0},{1795,57753,0},{1800,57751,0}, {1802,57749,0},{1803,57741,0},{1808,57738,0},{1813,57733,0},{1817,57733,0}, {1820,57731,0},{1820,57711,0},{1822,57703,0},{1823,57699,0},{1827,57699,0}, {2192,57044,128},{2188,57048,0},{2192,57051,0},{2193,57049,0},{2193,57054,0}, {2190,57054,0},{2192,57056,0},{2195,57061,0},{2200,57078,0},{2205,57084,0}, {2205,57088,0},{2203,57088,0},{2202,57091,0},{2205,57098,0},{2203,57099,0}, {2200,57104,0},{2202,57106,0},{2202,57108,0},{2207,57109,0},{2203,57104,0}, {2207,57104,0},{2210,57101,0},{2212,57103,0},{2215,57094,0},{2220,57094,0}, {2220,57091,0},{2225,57094,0},{2235,57098,0},{2247,57108,0},{2248,57106,0}, {2252,57114,0},{2257,57116,0},{2258,57114,0},{2258,57123,0},{2262,57123,0}, {2262,57128,0},{2265,57126,0},{2267,57128,0},{2265,57131,0},{2268,57133,0}, {2270,57129,0},{2272,57131,0},{2272,57134,0},{2268,57136,0},{2273,57144,0}, {2272,57146,0},{2275,57149,0},{2275,57156,0},{2280,57166,0},{2278,57169,0}, {2280,57173,0},{2282,57171,0},{2283,57174,0},{2282,57178,0},{2283,57181,0}, {2287,57181,0},{2288,57184,0},{2287,57188,0},{2285,57186,0},{2287,57189,0}, {2290,57191,0},{2290,57194,0},{2287,57198,0},{2295,57204,0},{2300,57213,0}, {2298,57218,0},{2295,57218,0},{2293,57219,0},{2295,57221,0},{2298,57219,0}, {2302,57231,0},{2300,57238,0},{2298,57236,0},{2297,57238,0},{2298,57243,0}, {2302,57243,0},{2303,57246,0},{2303,57264,0},{2305,57278,0},{2308,57284,0}, {2315,57296,0},{2317,57303,0},{2318,57313,0},{2320,57333,0},{2317,57339,0}, {2315,57349,0},{2315,57378,0},{2312,57383,0},{2305,57381,0},{2305,57384,0}, {2310,57388,0},{2310,57394,0},{2313,57406,0},{2322,57423,0},{2318,57423,0}, {2317,57413,0},{2312,57408,0},{2310,57414,0},{2303,57419,0},{2303,57424,0}, {2310,57428,0},{2310,57433,0},{2310,57436,0},{2310,57438,0},{2307,57438,0}, {2305,57441,0},{2310,57461,0},{2308,57469,0},{2310,57474,0},{2313,57474,0}, {2315,57473,0},{2315,57474,0},{2315,57478,0},{2308,57474,0},{2298,57481,0}, {2298,57488,0},{2295,57493,0},{2293,57496,0},{2293,57503,0},{2290,57511,0}, {2293,57521,0},{2297,57521,0},{2295,57524,0},{2293,57528,0},{2293,57531,0}, {2295,57533,0},{2293,57534,0},{2288,57538,0},{2285,57546,0},{2288,57549,0}, {2290,57556,0},{2288,57558,0},{2287,57554,0},{2287,57551,0},{2280,57551,0}, {2280,57558,0},{2277,57564,0},{2275,57566,0},{2277,57571,0},{2265,57574,0}, {2262,57581,0},{2257,57581,0},{2253,57584,0},{2253,57589,0},{2247,57594,0}, {2240,57603,0},{2240,57608,0},{2237,57611,0},{2238,57614,0},{2237,57621,0}, {2240,57623,0},{2238,57628,0},{2240,57636,0},{2238,57643,0},{2240,57648,0}, {2238,57654,0},{2240,57658,0},{2237,57659,0},{2233,57659,0},{2232,57663,0}, {2235,57664,0},{2238,57663,0},{2238,57666,0},{2235,57668,0},{2232,57679,0}, {2227,57686,0},{2225,57698,0},{2222,57698,0},{2222,57701,0},{2218,57701,0}, {2217,57704,0},{2215,57709,0},{2213,57714,0},{2213,57719,0},{2210,57721,0}, {2210,57724,0},{2208,57731,0},{2203,57734,0},{2198,57736,0},{2190,57744,0}, {2187,57748,0},{2188,57749,0},{2197,57751,0},{2197,57756,0},{2195,57751,0}, {2192,57751,0},{2187,57754,0},{2187,57758,0},{2180,57761,0},{2178,57769,0}, {2178,57778,0},{2175,57783,0},{2177,57784,0},{2178,57791,0},{2173,57794,0}, {2175,57791,0},{2173,57791,0},{2165,57793,0},{2163,57801,0},{2163,57803,0}, {2167,57803,0},{2170,57798,0},{2175,57796,0},{2177,57793,0},{2180,57791,0}, {2180,57784,0},{2185,57779,0},{2188,57778,0},{2188,57774,0},{2193,57779,0}, {2190,57784,0},{2188,57784,0},{2185,57786,0},{2183,57789,0},{2175,57806,0}, {2165,57819,0},{2167,57823,0},{2163,57823,0},{2160,57824,0},{2155,57821,0}, {2158,57818,0},{2162,57809,0},{2160,57806,0},{2162,57801,0},{2160,57799,0}, {2157,57806,0},{2157,57811,0},{2153,57811,0},{2152,57808,0},{2148,57809,0}, {2147,57811,0},{2148,57814,0},{2145,57814,0},{2148,57821,0},{2155,57823,0}, {2160,57826,0},{2160,57828,0},{2145,57841,0},{2142,57848,0},{2142,57853,0}, {2138,57853,0},{2140,57854,0},{2137,57854,0},{2135,57853,0},{2137,57851,0}, {2135,57848,0},{2133,57846,0},{2130,57846,0},{2130,57849,0},{2133,57853,0}, {2130,57853,0},{2138,57856,0},{2135,57871,0},{2132,57873,0},{2130,57871,0}, {2128,57864,0},{2130,57864,0},{2130,57863,0},{2128,57863,0},{2125,57869,0}, {2125,57874,0},{2125,57871,0},{2130,57871,0},{2130,57876,0},{2127,57881,0}, {2128,57881,0},{2123,57881,0},{2122,57874,0},{2122,57878,0},{2122,57876,0}, {2120,57876,0},{2120,57879,0},{2118,57883,0},{2122,57891,0},{2123,57883,0}, {2127,57883,0},{2128,57884,0},{2127,57899,0},{2122,57909,0},{2118,57919,0}, {2115,57923,0},{2110,57924,0},{2110,57926,0},{2112,57928,0},{2108,57933,0}, {2107,57933,0},{2108,57934,0},{2107,57934,0},{2107,57936,0},{2108,57936,0}, {2110,57941,0},{2112,57944,0},{2110,57948,0},{2108,57948,0},{2108,57949,0}, {2110,57949,0},{2113,57954,0},{2112,57958,0},{2112,57966,0},{2107,57969,0}, {2107,57974,0},{2100,57978,0},{2095,57974,0},{2092,57974,0},{2088,57969,0}, {2088,57968,0},{2092,57966,0},{2092,57963,0},{2090,57964,0},{2090,57963,0}, {2088,57961,0},{2087,57963,0},{2085,57964,0},{2087,57964,0},{2087,57968,0}, {2087,57974,0},{2082,57981,0},{2078,57979,0},{2082,57974,0},{2083,57974,0}, {2085,57973,0},{2083,57971,0},{2082,57966,0},{2083,57959,0},{2082,57959,0}, {2075,57958,0},{2072,57959,0},{2070,57963,0},{2070,57966,0},{2077,57973,0}, {2075,57976,0},{2072,57974,0},{2072,57978,0},{2070,57978,0},{2068,57981,0}, {2070,57981,0},{2068,57986,0},{2070,57988,0},{2068,57991,0},{2072,57991,0}, {2072,57989,0},{2073,57993,0},{2072,58001,0},{2070,57999,0},{2067,58003,0}, {2067,58011,0},{2072,58003,0},{2072,58011,0},{2070,58018,0},{2068,58018,0}, {2068,58019,0},{2067,58021,0},{2068,58024,0},{2067,58026,0},{2068,58026,0}, {2067,58028,0},{2068,58029,0},{2070,58033,0},{2068,58041,0},{2067,58043,0}, {2067,58046,0},{2063,58049,0},{2062,58061,0},{2060,58063,0},{2060,58061,0}, {2055,58063,0},{2053,58068,0},{2052,58069,0},{2052,58073,0},{2050,58073,0}, {2048,58076,0},{2042,58079,0},{2042,58081,0},{2035,58086,0},{2033,58093,0}, {2030,58096,0},{2028,58098,0},{2030,58099,0},{2030,58106,0},{2032,58108,0}, {2032,58114,0},{2025,58123,0},{2022,58123,0},{2018,58123,0},{2013,58114,0}, {2008,58113,0},{2005,58108,0},{2008,58104,0},{2005,58078,0},{2005,58059,0}, {2003,58053,0},{1998,58048,0},{1997,58039,0},{1993,58039,0},{1990,58034,0}, {1988,58024,0},{1988,58021,0},{1990,58019,0},{1993,58023,0},{1993,58026,0}, {1997,58023,0},{2002,58028,0},{2005,58026,0},{2003,58024,0},{2000,58023,0}, {2002,58021,0},{2000,58018,0},{2000,58021,0},{1998,58021,0},{1997,58021,0}, {1993,58019,0},{1992,58016,0},{1990,58014,0},{1988,58001,0},{1988,57994,0}, {1990,57993,0},{1988,57989,0},{1988,57976,0},{1995,57964,0},{1997,57946,0}, {1995,57939,0},{1995,57934,0},{1997,57926,0},{1998,57923,0},{1998,57919,0}, {1998,57911,0},{1995,57901,0},{1997,57894,0},{1995,57889,0},{1993,57879,0}, {1995,57871,0},{1993,57863,0},{1993,57849,0},{1990,57843,0},{1988,57836,0}, {1988,57833,0},{1988,57823,0},{1992,57818,0},{1990,57816,0},{1990,57813,0}, {1990,57806,0},{1988,57803,0},{1987,57804,0},{1985,57801,0},{1985,57789,0}, {1983,57783,0},{1985,57776,0},{1982,57768,0},{1983,57764,0},{1987,57761,0}, {1992,57766,0},{1992,57768,0},{2005,57776,0},{2005,57779,0},{2008,57778,0}, {2008,57783,0},{2015,57789,0},{2022,57798,0},{2025,57809,0},{2030,57811,0}, {2030,57814,0},{2028,57814,0},{2030,57819,0},{2033,57821,0},{2037,57824,0}, {2042,57826,0},{2047,57828,0},{2048,57824,0},{2052,57824,0},{2055,57819,0}, {2055,57816,0},{2053,57816,0},{2055,57813,0},{2058,57813,0},{2060,57816,0}, {2063,57816,0},{2067,57813,0},{2065,57809,0},{2072,57803,0},{2072,57799,0}, {2067,57788,0},{2068,57779,0},{2068,57776,0},{2067,57776,0},{2068,57773,0}, {2068,57763,0},{2073,57749,0},{2073,57746,0},{2068,57743,0},{2070,57739,0}, {2070,57731,0},{2072,57731,0},{2072,57729,0},{2075,57726,0},{2077,57721,0}, {2080,57719,0},{2083,57714,0},{2083,57713,0},{2090,57709,0},{2092,57706,0}, {2095,57703,0},{2095,57696,0},{2100,57694,0},{2105,57688,0},{2103,57686,0}, {2112,57686,0},{2120,57683,0},{2125,57683,0},{2125,57686,0},{2127,57686,0}, {2128,57684,0},{2130,57683,0},{2138,57679,0},{2152,57674,0},{2155,57668,0}, {2157,57661,0},{2158,57663,0},{2158,57668,0},{2160,57666,0},{2163,57663,0}, {2162,57651,0},{2160,57646,0},{2158,57629,0},{2155,57623,0},{2153,57614,0}, {2155,57606,0},{2160,57599,0},{2158,57594,0},{2160,57589,0},{2165,57584,0}, {2162,57583,0},{2163,57579,0},{2163,57576,0},{2167,57573,0},{2170,57569,0}, {2168,57564,0},{2170,57559,0},{2170,57553,0},{2167,57551,0},{2168,57549,0}, {2170,57546,0},{2172,57548,0},{2175,57546,0},{2173,57543,0},{2175,57536,0}, {2173,57534,0},{2172,57538,0},{2172,57536,0},{2175,57531,0},{2180,57531,0}, {2185,57516,0},{2190,57506,0},{2200,57496,0},{2203,57494,0},{2205,57491,0}, {2207,57491,0},{2207,57496,0},{2208,57496,0},{2208,57494,0},{2210,57496,0}, {2212,57491,0},{2215,57491,0},{2217,57488,0},{2218,57488,0},{2217,57486,0}, {2218,57483,0},{2217,57483,0},{2208,57489,0},{2203,57489,0},{2207,57481,0}, {2205,57476,0},{2205,57456,0},{2203,57448,0},{2205,57434,0},{2210,57426,0}, {2217,57423,0},{2222,57423,0},{2228,57418,0},{2227,57414,0},{2220,57416,0}, {2210,57416,0},{2205,57414,0},{2208,57416,0},{2215,57411,0},{2213,57411,0}, {2213,57409,0},{2210,57409,0},{2210,57404,0},{2208,57404,0},{2208,57401,0}, {2212,57398,0},{2215,57398,0},{2218,57396,0},{2218,57388,0},{2220,57383,0}, {2218,57379,0},{2222,57371,0},{2220,57369,0},{2220,57368,0},{2218,57366,0}, {2220,57363,0},{2218,57363,0},{2220,57361,0},{2217,57361,0},{2218,57354,0}, {2220,57351,0},{2225,57348,0},{2235,57326,0},{2237,57326,0},{2237,57323,0}, {2240,57319,0},{2242,57321,0},{2243,57324,0},{2243,57356,0},{2245,57361,0}, {2245,57366,0},{2248,57371,0},{2258,57371,0},{2265,57358,0},{2268,57348,0}, {2267,57328,0},{2268,57309,0},{2268,57303,0},{2268,57296,0},{2268,57284,0}, {2267,57279,0},{2268,57278,0},{2268,57271,0},{2270,57261,0},{2268,57258,0}, {2262,57256,0},{2258,57249,0},{2255,57244,0},{2255,57241,0},{2248,57229,0}, {2237,57223,0},{2233,57219,0},{2235,57211,0},{2232,57209,0},{2232,57208,0}, {2230,57206,0},{2227,57201,0},{2223,57201,0},{2222,57199,0},{2223,57199,0}, {2220,57199,0},{2222,57196,0},{2218,57196,0},{2217,57188,0},{2220,57179,0}, {2222,57181,0},{2225,57179,0},{2220,57176,0},{2217,57169,0},{2218,57169,0}, {2217,57158,0},{2218,57156,0},{2217,57154,0},{2217,57144,0},{2213,57139,0}, {2207,57139,0},{2205,57136,0},{2202,57138,0},{2203,57139,0},{2202,57141,0}, {2197,57136,0},{2195,57138,0},{2192,57133,0},{2193,57126,0},{2192,57113,0}, {2188,57106,0},{2177,57091,0},{2177,57083,0},{2187,57089,0},{2192,57089,0}, {2193,57086,0},{2192,57071,0},{2187,57063,0},{2182,57054,0},{2185,57043,0}, {2187,57041,0},{2192,57044,0},{6613,61954,128},{6612,61964,0},{6613,61966,0}, {6617,61966,0},{6618,61959,0},{6620,61961,0},{6618,61968,0},{6610,61974,0}, {6613,61978,0},{6620,61974,0},{6620,61966,0},{6625,61981,0},{6627,61969,0}, {6627,61961,0},{6630,61968,0},{6633,61969,0},{6642,61948,0},{6643,61951,0}, {6643,61963,0},{6640,61958,0},{6638,61963,0},{6628,61976,0},{6628,61986,0}, {6630,61986,0},{6633,61991,0},{6628,61991,0},{6628,61998,0},{6623,62016,0}, {6623,62029,0},{6625,62033,0},{6627,62031,0},{6632,62013,0},{6637,62013,0}, {6642,62024,0},{6633,62024,0},{6628,62039,0},{6632,62046,0},{6633,62043,0}, {6635,62051,0},{6633,62054,0},{6632,62051,0},{6632,62054,0},{6632,62058,0}, {6633,62059,0},{6633,62064,0},{6640,62063,0},{6637,62068,0},{6637,62073,0}, {6642,62073,0},{6642,62066,0},{6643,62069,0},{6645,62079,0},{6650,62083,0}, {6650,62089,0},{6653,62096,0},{6658,62084,0},{6662,62089,0},{6663,62088,0}, {6663,62083,0},{6667,62093,0},{6673,62093,0},{6673,62096,0},{6662,62096,0}, {6660,62099,0},{6663,62106,0},{6668,62106,0},{6668,62109,0},{6657,62106,0}, {6658,62109,0},{6665,62116,0},{6667,62121,0},{6672,62119,0},{6670,62126,0}, {6672,62128,0},{6675,62126,0},{6673,62131,0},{6680,62128,0},{6677,62138,0}, {6673,62138,0},{6675,62139,0},{6677,62143,0},{6678,62136,0},{6685,62134,0}, {6692,62141,0},{6695,62136,0},{6695,62149,0},{6698,62139,0},{6698,62163,0}, {6702,62159,0},{6700,62151,0},{6702,62149,0},{6705,62166,0},{6708,62169,0}, {6708,62183,0},{6712,62181,0},{6715,62184,0},{6715,62181,0},{6720,62184,0}, {6722,62178,0},{6722,62169,0},{6725,62176,0},{6723,62181,0},{6723,62194,0}, {6725,62199,0},{6727,62193,0},{6732,62193,0},{6732,62188,0},{6733,62193,0}, {6735,62186,0},{6733,62179,0},{6737,62176,0},{6737,62186,0},{6738,62186,0}, {6737,62191,0},{6738,62191,0},{6737,62196,0},{6735,62198,0},{6737,62204,0}, {6740,62208,0},{6743,62201,0},{6748,62209,0},{6748,62206,0},{6748,62201,0}, {6750,62204,0},{6755,62199,0},{6757,62203,0},{6753,62209,0},{6755,62216,0}, {6763,62231,0},{6765,62218,0},{6768,62216,0},{6768,62234,0},{6768,62244,0}, {6772,62258,0},{6777,62269,0},{6780,62268,0},{6782,62283,0},{6787,62284,0}, {6788,62301,0},{6787,62306,0},{6785,62316,0},{6785,62323,0},{6788,62318,0}, {6792,62318,0},{6790,62324,0},{6793,62324,0},{6793,62333,0},{6795,62326,0}, {6800,62329,0},{6800,62323,0},{6802,62328,0},{6803,62321,0},{6807,62328,0}, {6805,62336,0},{6810,62336,0},{6815,62331,0},{6815,62316,0},{6817,62318,0}, {6820,62301,0},{6820,62293,0},{6820,62291,0},{6823,62291,0},{6822,62314,0}, {6820,62316,0},{6818,62326,0},{6820,62329,0},{6835,62316,0},{6835,62304,0}, {6838,62293,0},{6845,62284,0},{6850,62279,0},{6850,62286,0},{6850,62294,0}, {6853,62296,0},{6855,62291,0},{6858,62286,0},{6862,62288,0},{6862,62294,0}, {6857,62299,0},{6850,62306,0},{6843,62304,0},{6842,62309,0},{6843,62316,0}, {6848,62318,0},{6848,62323,0},{6840,62319,0},{6837,62329,0},{6832,62328,0}, {6827,62336,0},{6825,62373,0},{6823,62383,0},{6822,62378,0},{6823,62366,0}, {6822,62364,0},{6822,62361,0},{6818,62368,0},{6815,62364,0},{6810,62366,0}, {6810,62373,0},{6810,62374,0},{6807,62379,0},{6808,62391,0},{6810,62394,0}, {6812,62386,0},{6815,62391,0},{6815,62403,0},{6813,62391,0},{6812,62393,0}, {6805,62424,0},{6807,62428,0},{6803,62434,0},{6805,62438,0},{6803,62444,0}, {6807,62444,0},{6808,62461,0},{6807,62468,0},{6808,62481,0},{6805,62484,0}, {6807,62494,0},{6808,62491,0},{6817,62489,0},{6825,62454,0},{6827,62463,0}, {6822,62496,0},{6815,62494,0},{6810,62501,0},{6810,62509,0},{6812,62514,0}, {6810,62521,0},{6812,62526,0},{6812,62533,0},{6813,62534,0},{6818,62524,0}, {6822,62524,0},{6825,62516,0},{6825,62506,0},{6827,62509,0},{6827,62521,0}, {6823,62529,0},{6825,62538,0},{6832,62529,0},{6833,62534,0},{6837,62536,0}, {6840,62548,0},{6842,62549,0},{6837,62558,0},{6830,62559,0},{6828,62568,0}, {6830,62574,0},{6823,62574,0},{6820,62598,0},{6822,62598,0},{6825,62589,0}, {6825,62601,0},{6830,62603,0},{6830,62613,0},{6827,62616,0},{6828,62624,0}, {6832,62626,0},{6835,62618,0},{6838,62614,0},{6838,62618,0},{6840,62623,0}, {6837,62626,0},{6833,62638,0},{6837,62638,0},{6835,62643,0},{6832,62651,0}, {6837,62653,0},{6835,62673,0},{6837,62674,0},{6838,62673,0},{6840,62676,0}, {6840,62686,0},{6845,62686,0},{6842,62708,0},{6845,62709,0},{6850,62699,0}, {6850,62706,0},{6850,62711,0},{6843,62726,0},{6847,62731,0},{6845,62734,0}, {6855,62733,0},{6857,62739,0},{6852,62744,0},{6847,62758,0},{6848,62776,0}, {6850,62774,0},{6853,62759,0},{6853,62773,0},{6858,62779,0},{6857,62788,0}, {6855,62784,0},{6853,62786,0},{6853,62803,0},{6853,62814,0},{6858,62803,0}, {6860,62804,0},{6860,62819,0},{6858,62831,0},{6860,62836,0},{6863,62836,0}, {6865,62844,0},{6863,62853,0},{6870,62864,0},{6867,62864,0},{6865,62866,0}, {6865,62878,0},{6868,62886,0},{6865,62889,0},{6867,62896,0},{6870,62909,0}, {6878,62909,0},{6878,62941,0},{6883,62951,0},{6885,62951,0},{6885,62958,0}, {6888,62954,0},{6887,62973,0},{6892,62978,0},{6893,62966,0},{6895,62966,0}, {6897,62976,0},{6895,62989,0},{6898,62993,0},{6900,62988,0},{6900,62971,0}, {6903,62983,0},{6908,62971,0},{6910,62976,0},{6908,62978,0},{6905,62989,0}, {6907,63001,0},{6903,62999,0},{6902,63006,0},{6903,63008,0},{6903,63013,0}, {6907,63014,0},{6913,63004,0},{6915,63011,0},{6913,63011,0},{6910,63018,0}, {6912,63033,0},{6915,63024,0},{6917,63036,0},{6920,63038,0},{6923,63029,0}, {6923,63008,0},{6925,63009,0},{6925,63016,0},{6927,63014,0},{6930,63026,0}, {6927,63041,0},{6925,63058,0},{6923,63056,0},{6925,63074,0},{6928,63073,0}, {6928,63059,0},{6930,63061,0},{6932,63074,0},{6937,63071,0},{6940,63061,0}, {6943,63063,0},{6940,63071,0},{6938,63089,0},{6937,63084,0},{6935,63091,0}, {6942,63101,0},{6945,63099,0},{6945,63109,0},{6942,63126,0},{6947,63121,0}, {6947,63128,0},{6953,63126,0},{6958,63104,0},{6960,63101,0},{6955,63131,0}, {6958,63133,0},{6958,63138,0},{6953,63143,0},{6950,63154,0},{6955,63169,0}, {6958,63174,0},{6960,63164,0},{6962,63178,0},{6972,63168,0},{6973,63144,0}, {6975,63143,0},{6972,63171,0},{6975,63188,0},{6975,63211,0},{6983,63204,0}, {6985,63196,0},{6985,63199,0},{6983,63211,0},{6978,63216,0},{6975,63236,0}, {6980,63244,0},{6982,63243,0},{6985,63229,0},{6985,63208,0},{6988,63214,0}, {6987,63233,0},{6992,63226,0},{6993,63229,0},{6993,63236,0},{6990,63243,0}, {6988,63256,0},{6990,63258,0},{6992,63244,0},{6995,63244,0},{6995,63258,0}, {6993,63258,0},{6995,63261,0},{6993,63278,0},{6997,63279,0},{6998,63288,0}, {7002,63289,0},{6997,63296,0},{7000,63306,0},{7010,63326,0},{7015,63326,0}, {7015,63314,0},{7010,63286,0},{7008,63258,0},{7010,63179,0},{7013,63161,0}, {7013,63153,0},{7013,63149,0},{7013,63146,0},{7015,63138,0},{7018,63133,0}, {7020,63114,0},{7022,63099,0},{7022,63089,0},{7023,63088,0},{7032,63054,0}, {7030,63048,0},{7033,63044,0},{7037,63033,0},{7033,63024,0},{7027,63013,0}, {7027,63003,0},{7032,63001,0},{7035,63009,0},{7037,62996,0},{7038,63013,0}, {7040,63016,0},{7042,63013,0},{7035,62973,0},{7020,62906,0},{7022,62884,0}, {7025,62866,0},{7025,62846,0},{7020,62836,0},{7020,62826,0},{7017,62819,0}, {7010,62818,0},{6998,62808,0},{6995,62793,0},{6997,62783,0},{7005,62781,0}, {7000,62739,0},{7007,62723,0},{7005,62699,0},{7005,62681,0},{7010,62678,0}, {7008,62689,0},{7010,62694,0},{7013,62709,0},{7015,62719,0},{7013,62728,0}, {7010,62743,0},{7010,62754,0},{7012,62764,0},{7017,62793,0},{7025,62806,0}, {7027,62823,0},{7030,62828,0},{7032,62841,0},{7028,62864,0},{7032,62891,0}, {7035,62891,0},{7037,62904,0},{7047,62886,0},{7048,62864,0},{7047,62853,0}, {7043,62834,0},{7045,62814,0},{7037,62714,0},{7042,62701,0},{7050,62706,0}, {7050,62688,0},{7047,62679,0},{7047,62659,0},{7038,62624,0},{7040,62616,0}, {7042,62619,0},{7043,62613,0},{7047,62616,0},{7047,62631,0},{7052,62661,0}, {7052,62673,0},{7053,62683,0},{7053,62693,0},{7057,62706,0},{7058,62713,0}, {7060,62704,0},{7062,62704,0},{7063,62721,0},{7072,62734,0},{7087,62744,0}, {7090,62738,0},{7088,62731,0},{7092,62729,0},{7093,62723,0},{7097,62698,0}, {7097,62694,0},{7100,62706,0},{7097,62716,0},{7100,62733,0},{7098,62738,0}, {7097,62751,0},{7093,62769,0},{7095,62774,0},{7097,62773,0},{7103,62756,0}, {7113,62744,0},{7115,62756,0},{7113,62759,0},{7093,62786,0},{7093,62818,0}, {7095,62828,0},{7093,62861,0},{7097,62888,0},{7100,62906,0},{7103,62909,0}, {7105,62934,0},{7110,62943,0},{7117,62978,0},{7125,62959,0},{7122,62984,0}, {7127,62994,0},{7137,62993,0},{7138,62983,0},{7147,62964,0},{7150,62948,0}, {7148,62924,0},{7150,62911,0},{7150,62888,0},{7148,62869,0},{7150,62863,0}, {7153,62834,0},{7150,62819,0},{7147,62814,0},{7150,62809,0},{7152,62804,0}, {7152,62811,0},{7157,62824,0},{7157,62811,0},{7160,62799,0},{7162,62776,0}, {7155,62733,0},{7153,62696,0},{7155,62689,0},{7158,62688,0},{7157,62701,0}, {7158,62739,0},{7160,62743,0},{7162,62736,0},{7163,62738,0},{7160,62749,0}, {7165,62773,0},{7163,62796,0},{7172,62804,0},{7187,62733,0},{7190,62734,0}, {7187,62756,0},{7190,62751,0},{7193,62689,0},{7198,62688,0},{7200,62699,0}, {7202,62701,0},{7208,62681,0},{7208,62666,0},{7213,62676,0},{7208,62689,0}, {7205,62704,0},{7200,62714,0},{7197,62729,0},{7198,62739,0},{7200,62741,0}, {7200,62744,0},{7197,62749,0},{7193,62766,0},{7190,62776,0},{7187,62776,0}, {7173,62814,0},{7168,62818,0},{7160,62836,0},{7155,62854,0},{7155,62884,0}, {7163,62894,0},{7157,62906,0},{7157,62921,0},{7158,62924,0},{7157,62933,0}, {7155,62941,0},{7157,62951,0},{7153,62963,0},{7153,62973,0},{7145,62989,0}, {7145,62998,0},{7137,63011,0},{7130,63028,0},{7132,63043,0},{7130,63049,0}, {7133,63056,0},{7135,63073,0},{7127,63068,0},{7127,63078,0},{7122,63079,0}, {7108,63108,0},{7102,63116,0},{7093,63113,0},{7080,63118,0},{7065,63134,0}, {7057,63153,0},{7055,63164,0},{7043,63201,0},{7042,63224,0},{7043,63264,0}, {7045,63274,0},{7058,63279,0},{7065,63271,0},{7072,63271,0},{7073,63278,0}, {7077,63274,0},{7082,63278,0},{7085,63288,0},{7083,63293,0},{7067,63289,0}, {7060,63294,0},{7050,63294,0},{7043,63298,0},{7045,63314,0},{7050,63329,0}, {7047,63343,0},{7042,63336,0},{7038,63339,0},{7043,63354,0},{7042,63361,0}, {7043,63369,0},{7047,63379,0},{7055,63388,0},{7057,63369,0},{7058,63374,0}, {7060,63368,0},{7057,63363,0},{7058,63358,0},{7062,63363,0},{7063,63361,0}, {7063,63373,0},{7067,63371,0},{7067,63378,0},{7068,63373,0},{7070,63359,0}, {7070,63381,0},{7073,63374,0},{7073,63358,0},{7077,63373,0},{7078,63373,0}, {7077,63358,0},{7078,63348,0},{7080,63343,0},{7080,63353,0},{7080,63364,0}, {7083,63366,0},{7087,63361,0},{7095,63379,0},{7093,63368,0},{7095,63369,0}, {7095,63364,0},{7093,63356,0},{7095,63358,0},{7098,63366,0},{7098,63364,0}, {7097,63348,0},{7097,63338,0},{7102,63369,0},{7107,63368,0},{7108,63359,0}, {7107,63349,0},{7105,63348,0},{7107,63334,0},{7103,63319,0},{7105,63304,0}, {7105,63303,0},{7107,63331,0},{7112,63364,0},{7115,63353,0},{7118,63351,0}, {7118,63358,0},{7113,63363,0},{7115,63368,0},{7118,63369,0},{7123,63361,0}, {7125,63364,0},{7127,63356,0},{7123,63346,0},{7125,63346,0},{7127,63339,0}, {7128,63354,0},{7132,63376,0},{7132,63356,0},{7135,63363,0},{7135,63349,0}, {7137,63351,0},{7140,63369,0},{7142,63366,0},{7142,63354,0},{7145,63363,0}, {7145,63349,0},{7148,63361,0},{7152,63359,0},{7152,63356,0},{7148,63354,0}, {7152,63348,0},{7148,63348,0},{7150,63341,0},{7147,63343,0},{7150,63328,0}, {7143,63308,0},{7135,63299,0},{7132,63303,0},{7127,63301,0},{7125,63293,0}, {7127,63289,0},{7133,63291,0},{7137,63286,0},{7148,63283,0},{7155,63284,0}, {7157,63291,0},{7160,63324,0},{7162,63324,0},{7163,63314,0},{7168,63336,0}, {7170,63334,0},{7170,63341,0},{7173,63346,0},{7173,63338,0},{7170,63323,0}, {7175,63318,0},{7173,63306,0},{7168,63306,0},{7165,63296,0},{7163,63296,0}, {7163,63288,0},{7162,63283,0},{7160,63276,0},{7157,63276,0},{7158,63273,0}, {7165,63269,0},{7175,63293,0},{7178,63296,0},{7170,63253,0},{7163,63238,0}, {7163,63228,0},{7163,63223,0},{7167,63223,0},{7173,63238,0},{7180,63259,0}, {7185,63264,0},{7187,63283,0},{7190,63286,0},{7195,63264,0},{7202,63233,0}, {7200,63223,0},{7202,63216,0},{7203,63226,0},{7207,63224,0},{7215,63179,0}, {7215,63169,0},{7210,63158,0},{7212,63154,0},{7213,63154,0},{7218,63166,0}, {7225,63161,0},{7222,63154,0},{7222,63149,0},{7223,63146,0},{7223,63154,0}, {7225,63154,0},{7228,63126,0},{7233,63113,0},{7232,63111,0},{7235,63094,0}, {7242,63084,0},{7242,63078,0},{7240,63061,0},{7243,63054,0},{7242,63049,0}, {7240,63043,0},{7235,63016,0},{7227,62999,0},{7220,62996,0},{7215,62998,0}, {7213,62993,0},{7212,62983,0},{7215,62989,0},{7223,62988,0},{7238,63008,0}, {7240,63001,0},{7240,62981,0},{7238,62961,0},{7240,62946,0},{7242,62946,0}, {7242,62964,0},{7243,62988,0},{7243,63024,0},{7247,63048,0},{7248,63058,0}, {7250,63066,0},{7253,63071,0},{7252,63074,0},{7255,63076,0},{7253,63068,0}, {7257,63069,0},{7258,63064,0},{7265,63063,0},{7267,63066,0},{7272,63051,0}, {7275,63019,0},{7280,63013,0},{7280,62999,0},{7283,62989,0},{7283,62979,0}, {7273,62946,0},{7272,62928,0},{7272,62918,0},{7262,62904,0},{7257,62889,0}, {7263,62899,0},{7273,62904,0},{7270,62864,0},{7272,62858,0},{7277,62896,0}, {7283,62863,0},{7280,62821,0},{7282,62799,0},{7285,62798,0},{7285,62804,0}, {7282,62826,0},{7287,62866,0},{7278,62909,0},{7278,62933,0},{7290,62964,0}, {7288,63004,0},{7292,63009,0},{7293,63019,0},{7300,63038,0},{7308,63031,0}, {7308,62999,0},{7312,62973,0},{7313,62959,0},{7318,62951,0},{7320,62938,0}, {7320,62891,0},{7310,62869,0},{7312,62841,0},{7315,62821,0},{7312,62809,0}, {7310,62804,0},{7297,62804,0},{7293,62791,0},{7293,62784,0},{7298,62799,0}, {7312,62796,0},{7313,62789,0},{7312,62766,0},{7313,62764,0},{7315,62773,0}, {7315,62796,0},{7318,62808,0},{7318,62824,0},{7313,62864,0},{7322,62878,0}, {7323,62898,0},{7328,62888,0},{7330,62853,0},{7335,62828,0},{7343,62803,0}, {7343,62791,0},{7345,62791,0},{7350,62803,0},{7348,62811,0},{7343,62824,0}, {7333,62854,0},{7332,62879,0},{7333,62891,0},{7330,62909,0},{7325,62918,0}, {7325,62934,0},{7325,62959,0},{7335,62991,0},{7340,62994,0},{7340,62986,0}, {7347,63004,0},{7350,63066,0},{7352,63068,0},{7358,63034,0},{7362,63028,0}, {7368,63028,0},{7375,63001,0},{7380,62981,0},{7387,62978,0},{7392,62963,0}, {7395,62968,0},{7390,62986,0},{7382,62994,0},{7382,63001,0},{7375,63018,0}, {7370,63038,0},{7362,63039,0},{7357,63063,0},{7357,63078,0},{7353,63089,0}, {7355,63098,0},{7367,63089,0},{7372,63094,0},{7375,63104,0},{7377,63103,0}, {7382,63133,0},{7373,63149,0},{7373,63186,0},{7357,63259,0},{7358,63284,0}, {7362,63294,0},{7363,63318,0},{7355,63266,0},{7355,63251,0},{7370,63183,0}, {7372,63138,0},{7370,63133,0},{7360,63138,0},{7352,63159,0},{7348,63181,0}, {7343,63188,0},{7342,63198,0},{7340,63214,0},{7335,63224,0},{7332,63246,0}, {7332,63263,0},{7325,63296,0},{7325,63318,0},{7333,63343,0},{7340,63381,0}, {7345,63374,0},{7348,63384,0},{7348,63393,0},{7345,63406,0},{7345,63486,0}, {7347,63493,0},{7353,63499,0},{7355,63484,0},{7363,63491,0},{7372,63483,0}, {7373,63493,0},{7375,63488,0},{7377,63491,0},{7378,63508,0},{7383,63511,0}, {7388,63508,0},{7390,63494,0},{7388,63473,0},{7388,63463,0},{7397,63414,0}, {7405,63381,0},{7407,63363,0},{7402,63344,0},{7393,63348,0},{7390,63356,0}, {7387,63359,0},{7375,63361,0},{7370,63366,0},{7365,63359,0},{7365,63354,0}, {7377,63351,0},{7385,63354,0},{7390,63349,0},{7393,63338,0},{7400,63338,0}, {7402,63329,0},{7403,63311,0},{7407,63288,0},{7410,63293,0},{7410,63311,0}, {7410,63318,0},{7417,63316,0},{7417,63303,0},{7422,63326,0},{7425,63333,0}, {7430,63326,0},{7428,63304,0},{7432,63288,0},{7430,63304,0},{7432,63316,0}, {7432,63336,0},{7437,63353,0},{7442,63359,0},{7453,63341,0},{7458,63324,0}, {7460,63331,0},{7457,63341,0},{7448,63354,0},{7445,63373,0},{7447,63409,0}, {7445,63456,0},{7447,63471,0},{7445,63489,0},{7443,63491,0},{7445,63499,0}, {7437,63513,0},{7428,63516,0},{7423,63568,0},{7423,63578,0},{7427,63598,0}, {7435,63618,0},{7440,63619,0},{7442,63628,0},{7448,63638,0},{7450,63634,0}, {7452,63611,0},{7455,63606,0},{7455,63598,0},{7457,63606,0},{7465,63609,0}, {7468,63599,0},{7468,63591,0},{7458,63564,0},{7458,63556,0},{7462,63549,0}, {7462,63536,0},{7465,63531,0},{7467,63516,0},{7467,63509,0},{7467,63481,0}, {7463,63451,0},{7465,63426,0},{7468,63424,0},{7465,63438,0},{7467,63458,0}, {7473,63476,0},{7485,63459,0},{7488,63468,0},{7497,63464,0},{7502,63471,0}, {7507,63473,0},{7507,63446,0},{7508,63423,0},{7497,63384,0},{7495,63361,0}, {7502,63334,0},{7503,63341,0},{7505,63341,0},{7517,63293,0},{7513,63321,0}, {7508,63343,0},{7500,63351,0},{7498,63363,0},{7503,63389,0},{7512,63413,0}, {7515,63444,0},{7512,63469,0},{7513,63484,0},{7520,63478,0},{7525,63451,0}, {7532,63436,0},{7537,63404,0},{7542,63394,0},{7547,63353,0},{7547,63328,0}, {7552,63288,0},{7553,63284,0},{7555,63288,0},{7552,63294,0},{7547,63328,0}, {7545,63396,0},{7552,63374,0},{7565,63309,0},{7567,63311,0},{7565,63328,0}, {7555,63386,0},{7547,63413,0},{7540,63419,0},{7530,63468,0},{7530,63488,0}, {7533,63506,0},{7533,63524,0},{7528,63541,0},{7522,63531,0},{7515,63548,0}, {7513,63574,0},{7520,63589,0},{7527,63598,0},{7540,63603,0},{7557,63596,0}, {7562,63584,0},{7563,63584,0},{7567,63574,0},{7573,63581,0},{7572,63599,0}, {7573,63601,0},{7577,63579,0},{7592,63554,0},{7593,63541,0},{7592,63503,0}, {7595,63484,0},{7597,63463,0},{7597,63423,0},{7595,63349,0},{7598,63339,0}, {7605,63343,0},{7600,63353,0},{7597,63368,0},{7600,63444,0},{7598,63503,0}, {7605,63538,0},{7605,63563,0},{7613,63569,0},{7623,63556,0},{7625,63543,0}, {7625,63518,0},{7622,63496,0},{7623,63479,0},{7630,63448,0},{7630,63429,0}, {7630,63428,0},{7625,63436,0},{7627,63446,0},{7622,63449,0},{7613,63494,0}, {7612,63471,0},{7613,63469,0},{7615,63479,0},{7617,63466,0},{7628,63424,0}, {7625,63403,0},{7627,63396,0},{7628,63403,0},{7628,63396,0},{7627,63391,0}, {7625,63394,0},{7623,63389,0},{7622,63386,0},{7623,63368,0},{7633,63371,0}, {7638,63381,0},{7643,63378,0},{7642,63318,0},{7643,63306,0},{7642,63296,0}, {7645,63286,0},{7645,63299,0},{7650,63293,0},{7650,63301,0},{7643,63318,0}, {7643,63346,0},{7643,63361,0},{7648,63369,0},{7650,63364,0},{7647,63346,0}, {7647,63333,0},{7648,63336,0},{7652,63368,0},{7655,63356,0},{7655,63343,0}, {7653,63338,0},{7653,63331,0},{7655,63329,0},{7655,63338,0},{7658,63356,0}, {7662,63343,0},{7662,63328,0},{7663,63329,0},{7663,63324,0},{7663,63316,0}, {7658,63303,0},{7652,63308,0},{7652,63303,0},{7655,63293,0},{7660,63284,0}, {7665,63289,0},{7667,63268,0},{7670,63261,0},{7675,63274,0},{7675,63306,0}, {7682,63298,0},{7683,63289,0},{7687,63309,0},{7685,63319,0},{7680,63326,0}, {7677,63343,0},{7667,63361,0},{7665,63374,0},{7668,63369,0},{7668,63384,0}, {7677,63406,0},{7678,63416,0},{7678,63406,0},{7680,63408,0},{7680,63416,0}, {7678,63429,0},{7682,63439,0},{7683,63458,0},{7685,63443,0},{7687,63433,0}, {7685,63389,0},{7688,63363,0},{7690,63378,0},{7688,63398,0},{7690,63424,0}, {7687,63458,0},{7693,63478,0},{7695,63461,0},{7695,63433,0},{7698,63438,0}, {7697,63449,0},{7698,63466,0},{7693,63521,0},{7697,63549,0},{7692,63571,0}, {7690,63583,0},{7687,63599,0},{7687,63611,0},{7685,63624,0},{7685,63644,0}, {7683,63658,0},{7680,63668,0},{7682,63681,0},{7673,63691,0},{7682,63684,0}, {7682,63691,0},{7680,63696,0},{7680,63706,0},{7685,63701,0},{7688,63718,0}, {7695,63724,0},{7728,63713,0},{7730,63708,0},{7732,63694,0},{7735,63696,0}, {7735,63666,0},{7738,63639,0},{7732,63628,0},{7723,63634,0},{7727,63606,0}, {7723,63594,0},{7725,63589,0},{7732,63594,0},{7738,63566,0},{7740,63549,0}, {7738,63506,0},{7742,63483,0},{7742,63459,0},{7743,63483,0},{7742,63513,0}, {7743,63529,0},{7745,63534,0},{7748,63469,0},{7755,63431,0},{7755,63443,0}, {7750,63493,0},{7752,63501,0},{7755,63494,0},{7755,63471,0},{7757,63491,0}, {7755,63511,0},{7762,63498,0},{7763,63469,0},{7767,63456,0},{7767,63444,0}, {7772,63476,0},{7770,63493,0},{7773,63511,0},{7772,63533,0},{7762,63581,0}, {7758,63606,0},{7762,63619,0},{7763,63641,0},{7777,63609,0},{7782,63543,0}, {7787,63504,0},{7793,63476,0},{7797,63476,0},{7802,63449,0},{7795,63428,0}, {7780,63399,0},{7768,63396,0},{7765,63411,0},{7763,63394,0},{7752,63363,0}, {7755,63364,0},{7765,63393,0},{7768,63393,0},{7768,63354,0},{7768,63348,0}, {7768,63333,0},{7773,63341,0},{7783,63344,0},{7785,63358,0},{7797,63378,0}, {7798,63373,0},{7792,63361,0},{7792,63353,0},{7800,63363,0},{7807,63389,0}, {7812,63396,0},{7812,63379,0},{7813,63373,0},{7813,63361,0},{7815,63369,0}, {7813,63388,0},{7822,63408,0},{7830,63398,0},{7850,63423,0},{7853,63419,0}, {7855,63428,0},{7862,63446,0},{7865,63439,0},{7862,63403,0},{7865,63393,0}, {7867,63409,0},{7867,63426,0},{7868,63443,0},{7872,63433,0},{7870,63416,0}, {7873,63429,0},{7875,63429,0},{7877,63423,0},{7878,63434,0},{7882,63418,0}, {7883,63438,0},{7883,63456,0},{7888,63469,0},{7887,63509,0},{7888,63534,0}, {7893,63546,0},{7907,63528,0},{7913,63544,0},{7912,63554,0},{7913,63566,0}, {7912,63573,0},{7912,63579,0},{7915,63584,0},{7920,63579,0},{7928,63601,0}, {7928,63619,0},{7925,63606,0},{7922,63611,0},{7917,63606,0},{7918,63626,0}, {7920,63628,0},{7922,63624,0},{7920,63618,0},{7925,63616,0},{7930,63633,0}, {7930,63618,0},{7932,63614,0},{7933,63579,0},{7925,63566,0},{7923,63568,0}, {7920,63561,0},{7920,63554,0},{7915,63556,0},{7915,63549,0},{7920,63549,0}, {7935,63571,0},{7943,63571,0},{7943,63563,0},{7945,63556,0},{7953,63564,0}, {7957,63576,0},{7967,63573,0},{7973,63591,0},{7978,63613,0},{7978,63649,0}, {7973,63693,0},{7975,63714,0},{7982,63738,0},{8005,63791,0},{8012,63768,0}, {8013,63743,0},{8013,63696,0},{8008,63639,0},{8010,63608,0},{8005,63583,0}, {8002,63546,0},{7998,63531,0},{7990,63521,0},{7988,63511,0},{7987,63518,0}, {7982,63514,0},{7983,63548,0},{7980,63523,0},{7977,63513,0},{7977,63503,0}, {7980,63506,0},{7987,63493,0},{7985,63484,0},{7987,63461,0},{7998,63489,0}, {8003,63476,0},{8005,63493,0},{8008,63499,0},{8010,63481,0},{8015,63514,0}, {8025,63536,0},{8028,63566,0},{8027,63601,0},{8023,63628,0},{8023,63658,0}, {8022,63694,0},{8023,63739,0},{8023,63793,0},{8023,63824,0},{8027,63849,0}, {8033,63878,0},{8037,63864,0},{8040,63859,0},{8040,63873,0},{8037,63868,0}, {8038,63879,0},{8050,63924,0},{8053,63914,0},{8057,63886,0},{8057,63829,0}, {8058,63828,0},{8063,63793,0},{8057,63749,0},{8055,63719,0},{8055,63681,0}, {8057,63666,0},{8057,63653,0},{8058,63648,0},{8060,63589,0},{8063,63581,0}, {8065,63539,0},{8063,63523,0},{8058,63506,0},{8055,63471,0},{8050,63461,0}, {8050,63453,0},{8055,63454,0},{8055,63418,0},{8057,63411,0},{8058,63418,0}, {8058,63454,0},{8058,63481,0},{8068,63528,0},{8067,63574,0},{8063,63599,0}, {8063,63639,0},{8062,63658,0},{8062,63678,0},{8068,63709,0},{8072,63734,0}, {8078,63726,0},{8080,63738,0},{8082,63743,0},{8075,63769,0},{8075,63823,0}, {8070,63869,0},{8073,63904,0},{8073,63936,0},{8082,63944,0},{8085,63976,0}, {8087,64041,0},{8092,64068,0},{8095,64071,0},{8100,64043,0},{8108,64023,0}, {8113,64041,0},{8113,64109,0},{8113,64133,0},{8123,64171,0},{8128,64171,0}, {8130,64184,0},{8132,64214,0},{8135,64211,0},{8140,64223,0},{8148,64278,0}, {8160,64321,0},{8165,64279,0},{8172,64258,0},{8178,64219,0},{8182,64164,0}, {8182,64144,0},{8192,64059,0},{8193,64034,0},{8190,63969,0},{8192,63938,0}, {8193,63936,0},{8192,63891,0},{8193,63866,0},{8190,63844,0},{8187,63853,0}, {8185,63846,0},{8187,63811,0},{8183,63804,0},{8187,63786,0},{8175,63783,0}, {8170,63809,0},{8168,63791,0},{8172,63776,0},{8173,63751,0},{8163,63748,0}, {8160,63776,0},{8160,63756,0},{8155,63756,0},{8158,63718,0},{8155,63733,0}, {8150,63729,0},{8147,63739,0},{8147,63721,0},{8143,63711,0},{8145,63704,0}, {8147,63688,0},{8153,63666,0},{8147,63648,0},{8155,63636,0},{8155,63613,0}, {8155,63609,0},{8157,63589,0},{8150,63544,0},{8143,63528,0},{8142,63511,0}, {8162,63511,0},{8163,63518,0},{8162,63526,0},{8168,63543,0},{8165,63526,0}, {8158,63459,0},{8147,63419,0},{8142,63391,0},{8133,63388,0},{8130,63361,0}, {8125,63359,0},{8120,63328,0},{8113,63299,0},{8103,63261,0},{8098,63258,0}, {8090,63209,0},{8088,63179,0},{8082,63186,0},{8077,63164,0},{8072,63169,0}, {8063,63141,0},{8053,63089,0},{8055,63083,0},{8057,63084,0},{8060,63104,0}, {8063,63104,0},{8068,63129,0},{8068,63119,0},{8067,63096,0},{8068,63094,0}, {8073,63138,0},{8080,63156,0},{8082,63148,0},{8088,63146,0},{8103,63198,0}, {8110,63204,0},{8118,63241,0},{8120,63236,0},{8127,63259,0},{8130,63239,0}, {8130,63264,0},{8132,63279,0},{8148,63316,0},{8177,63339,0},{8195,63333,0}, {8208,63306,0},{8205,63174,0},{8202,63154,0},{8198,63144,0},{8202,63144,0}, {8202,63136,0},{8195,63124,0},{8177,63126,0},{8170,63114,0},{8172,63078,0}, {8168,63061,0},{8170,63044,0},{8160,62994,0},{8150,62884,0},{8142,62848,0}, {8138,62803,0},{8138,62779,0},{8140,62814,0},{8145,62813,0},{8145,62784,0}, {8147,62774,0},{8150,62776,0},{8157,62853,0},{8173,62986,0},{8178,63004,0}, {8200,63013,0},{8202,62794,0},{8200,62661,0},{8200,62644,0},{8195,62588,0}, {8192,62593,0},{8187,62573,0},{8187,62561,0},{8193,62564,0},{8187,62464,0}, {8183,62373,0},{8175,62301,0},{8168,62281,0},{8168,62271,0},{8167,62233,0}, {8175,62239,0},{8177,62226,0},{8183,62236,0},{8192,62318,0},{8193,62354,0}, {8195,62358,0},{8197,62396,0},{8197,62416,0},{8200,62426,0},{8205,62516,0}, {8210,62546,0},{8213,62533,0},{8218,62491,0},{8218,62393,0},{8220,62374,0}, {8218,62499,0},{8217,62511,0},{8217,62541,0},{8213,62558,0},{8215,62579,0}, {8213,62613,0},{8218,62679,0},{8217,62709,0},{8218,62744,0},{8215,62919,0}, {8215,62988,0},{8215,63033,0},{8220,63086,0},{8228,63159,0},{8228,63231,0}, {8233,63288,0},{8238,63316,0},{8242,63306,0},{8245,63314,0},{8247,63341,0}, {8255,63393,0},{8260,63404,0},{8262,63403,0},{8267,63374,0},{8267,63361,0}, {8270,63356,0},{8272,63329,0},{8280,63271,0},{8277,63269,0},{8275,63253,0}, {8278,63241,0},{8280,63219,0},{8283,63216,0},{8285,63198,0},{8283,63168,0}, {8278,63159,0},{8275,63134,0},{8280,63148,0},{8287,63133,0},{8290,63153,0}, {8292,63136,0},{8288,63116,0},{8290,63078,0},{8283,63036,0},{8278,62988,0}, {8277,62946,0},{8278,62976,0},{8285,63023,0},{8290,63024,0},{8298,63059,0}, {8307,63038,0},{8312,63051,0},{8315,63038,0},{8317,63021,0},{8312,62929,0}, {8307,62869,0},{8307,62809,0},{8308,62743,0},{8305,62718,0},{8308,62709,0}, {8310,62681,0},{8313,62593,0},{8313,62534,0},{8308,62501,0},{8308,62454,0}, {8300,62389,0},{8293,62371,0},{8298,62359,0},{8300,62338,0},{8297,62236,0}, {8295,62183,0},{8292,62163,0},{8283,62168,0},{8278,62148,0},{8285,62156,0}, {8290,62144,0},{8290,62048,0},{8285,62006,0},{8282,62009,0},{8278,61993,0}, {8275,61999,0},{8275,61988,0},{8277,61981,0},{8282,61996,0},{8287,61994,0}, {8288,62006,0},{8290,61976,0},{8293,62123,0},{8298,62179,0},{8300,62234,0}, {8302,62243,0},{8303,62286,0},{8308,62271,0},{8312,62234,0},{8312,62211,0}, {8315,62189,0},{8313,62229,0},{8305,62339,0},{8305,62369,0},{8310,62404,0}, {8312,62453,0},{8315,62489,0},{8317,62531,0},{8317,62654,0},{8313,62766,0}, {8315,62844,0},{8320,62933,0},{8328,62969,0},{8332,62958,0},{8337,62926,0}, {8347,62798,0},{8348,62744,0},{8347,62693,0},{8343,62721,0},{8342,62676,0}, {8347,62644,0},{8348,62679,0},{8350,62679,0},{8350,62634,0},{8348,62631,0}, {8348,62621,0},{8353,62611,0},{8360,62514,0},{8360,62476,0},{8358,62456,0}, {8357,62421,0},{8360,62354,0},{8357,62308,0},{8362,62313,0},{8362,62234,0}, {8360,62168,0},{8358,62133,0},{8353,62133,0},{8348,62161,0},{8345,62148,0}, {8352,62116,0},{8360,62099,0},{8353,62084,0},{8360,62063,0},{8353,62016,0}, {8355,61928,0},{8353,61869,0},{8352,61854,0},{8350,61861,0},{8348,61846,0}, {8343,61886,0},{8342,61866,0},{8337,61893,0},{8338,61864,0},{8343,61853,0}, {8345,61814,0},{8350,61773,0},{8348,61741,0},{8345,61744,0},{8343,61731,0}, {8338,61758,0},{8337,61756,0},{8340,61728,0},{8343,61651,0},{8338,61663,0}, {8333,61654,0},{8332,61666,0},{8325,61651,0},{8320,61668,0},{8320,61738,0}, {8318,61736,0},{8317,61781,0},{8315,61773,0},{8315,61848,0},{8313,61808,0}, {8312,61718,0},{8307,61656,0},{8303,61669,0},{8303,61703,0},{8305,61764,0}, {8300,61809,0},{8303,61764,0},{8302,61723,0},{8302,61644,0},{8300,61624,0}, {8297,61623,0},{8292,61654,0},{8283,61663,0},{8282,61674,0},{8283,61688,0}, {8275,61679,0},{8283,61641,0},{8290,61636,0},{8292,61616,0},{8295,61591,0}, {8295,61529,0},{8297,61476,0},{8310,61404,0},{8313,61373,0},{8308,61343,0}, {8317,61364,0},{8318,61361,0},{8323,61328,0},{8323,61289,0},{8327,61266,0}, {8327,61218,0},{8323,61204,0},{8323,61238,0},{8322,61228,0},{8320,61243,0}, {8322,61178,0},{8320,61136,0},{8317,61178,0},{8317,61206,0},{8310,61248,0}, {8313,61209,0},{8313,61178,0},{8312,61168,0},{8317,61109,0},{8317,61064,0}, {8310,61066,0},{8317,61024,0},{8313,61008,0},{8313,60996,0},{8315,60998,0}, {8313,60984,0},{8303,61023,0},{8300,61049,0},{8292,61138,0},{8293,61193,0}, {8292,61198,0},{8292,61138,0},{8297,61061,0},{8293,61026,0},{8298,61024,0}, {8308,60934,0},{8307,60928,0},{8305,60893,0},{8302,60886,0},{8302,60868,0}, {8300,60873,0},{8297,60916,0},{8292,60938,0},{8297,60889,0},{8297,60848,0}, {8292,60883,0},{8288,60884,0},{8285,60931,0},{8285,60968,0},{8287,60974,0}, {8285,60993,0},{8285,61039,0},{8287,61049,0},{8290,61029,0},{8285,61078,0}, {8283,61156,0},{8285,61323,0},{8277,61434,0},{8272,61476,0},{8272,61523,0}, {8267,61546,0},{8262,61549,0},{8257,61534,0},{8250,61559,0},{8247,61549,0}, {8240,61561,0},{8237,61551,0},{8242,61528,0},{8248,61534,0},{8253,61514,0}, {8257,61516,0},{8258,61471,0},{8265,61438,0},{8267,61418,0},{8270,61413,0}, {8273,61381,0},{8275,61358,0},{8273,61346,0},{8263,61374,0},{8258,61368,0}, {8253,61381,0},{8248,61378,0},{8248,61368,0},{8255,61348,0},{8265,61351,0}, {8270,61319,0},{8275,61328,0},{8278,61268,0},{8278,61188,0},{8277,61114,0}, {8277,61044,0},{8278,61028,0},{8277,60961,0},{8272,60969,0},{8265,61023,0}, {8262,61034,0},{8255,61076,0},{8248,61093,0},{8240,61163,0},{8238,61148,0}, {8233,61153,0},{8228,61206,0},{8227,61261,0},{8222,61306,0},{8222,61268,0}, {8225,61263,0},{8225,61193,0},{8232,61123,0},{8230,61098,0},{8228,61074,0}, {8218,61056,0},{8210,61096,0},{8205,61069,0},{8203,61043,0},{8198,61044,0}, {8197,61089,0},{8193,61086,0},{8193,61066,0},{8193,61064,0},{8192,61081,0}, {8188,61078,0},{8188,61098,0},{8187,61103,0},{8185,61094,0},{8183,61119,0}, {8182,61108,0},{8178,61069,0},{8175,61073,0},{8178,61054,0},{8178,61023,0}, {8190,60979,0},{8193,60961,0},{8195,60933,0},{8197,60941,0},{8202,60938,0}, {8210,60896,0},{8212,60856,0},{8217,60816,0},{8217,60776,0},{8222,60779,0}, {8228,60743,0},{8233,60674,0},{8245,60636,0},{8252,60556,0},{8252,60499,0}, {8250,60428,0},{8248,60424,0},{8237,60451,0},{8218,60466,0},{8203,60524,0}, {8195,60583,0},{8192,60593,0},{8187,60554,0},{8190,60516,0},{8192,60468,0}, {8195,60439,0},{8193,60429,0},{8187,60446,0},{8185,60473,0},{8178,60486,0}, {8173,60534,0},{8167,60548,0},{8165,60574,0},{8162,60549,0},{8163,60518,0}, {8172,60508,0},{8175,60481,0},{8190,60398,0},{8192,60344,0},{8197,60323,0}, {8197,60303,0},{8203,60259,0},{8203,60246,0},{8202,60233,0},{8185,60243,0}, {8178,60223,0},{8168,60183,0},{8155,60189,0},{8153,60171,0},{8150,60189,0}, {8152,60173,0},{8155,60156,0},{8170,60154,0},{8180,60178,0},{8190,60186,0}, {8202,60174,0},{8212,60179,0},{8232,60128,0},{8237,60091,0},{8228,59976,0}, {8228,60008,0},{8215,60024,0},{8220,60004,0},{8225,60009,0},{8223,59978,0}, {8227,59946,0},{8225,59924,0},{8217,59908,0},{8220,59903,0},{8223,59881,0}, {8218,59809,0},{8217,59764,0},{8212,59706,0},{8210,59699,0},{8210,59678,0}, {8202,59608,0},{8198,59589,0},{8192,59659,0},{8188,59686,0},{8183,59689,0}, {8167,59723,0},{8165,59761,0},{8153,59818,0},{8143,59829,0},{8140,59874,0}, {8133,59891,0},{8133,59878,0},{8138,59863,0},{8143,59816,0},{8145,59808,0}, {8147,59818,0},{8153,59784,0},{8158,59771,0},{8158,59744,0},{8168,59671,0}, {8173,59659,0},{8177,59669,0},{8187,59649,0},{8188,59628,0},{8190,59576,0}, {8193,59538,0},{8193,59523,0},{8187,59449,0},{8182,59409,0},{8175,59391,0}, {8155,59433,0},{8150,59459,0},{8147,59454,0},{8135,59404,0},{8132,59419,0}, {8128,59416,0},{8122,59428,0},{8117,59448,0},{8112,59431,0},{8110,59386,0}, {8107,59381,0},{8120,59313,0},{8120,59263,0},{8123,59253,0},{8122,59229,0}, {8115,59199,0},{8098,59213,0},{8088,59238,0},{8080,59249,0},{8078,59263,0}, {8075,59258,0},{8095,59206,0},{8112,59188,0},{8115,59179,0},{8115,59168,0}, {8105,59141,0},{8103,59113,0},{8102,59093,0},{8100,59081,0},{8098,59058,0}, {8092,59063,0},{8088,59033,0},{8083,59038,0},{8078,59029,0},{8070,58964,0}, {8067,58986,0},{8067,58936,0},{8062,58924,0},{8057,58891,0},{8055,58864,0}, {8053,58856,0},{8052,58866,0},{8045,58858,0},{8045,58844,0},{8042,58836,0}, {8033,58788,0},{8027,58784,0},{8023,58793,0},{8020,58786,0},{8017,58799,0}, {8017,58816,0},{8013,58828,0},{8012,58823,0},{8005,58831,0},{8007,58881,0}, {8012,58894,0},{8007,58919,0},{8002,58928,0},{8000,58946,0},{8005,58983,0}, {8010,59008,0},{8008,59018,0},{8007,59046,0},{8008,59063,0},{8008,59083,0}, {8013,59101,0},{8025,59116,0},{8017,59119,0},{8015,59158,0},{8013,59144,0}, {8013,59121,0},{8007,59098,0},{8002,59029,0},{7995,59041,0},{7990,59031,0}, {7987,59036,0},{7985,59023,0},{7982,59036,0},{7980,59031,0},{7978,59041,0}, {7975,59033,0},{7970,59046,0},{7965,59034,0},{7962,59053,0},{7953,59054,0}, {7950,59048,0},{7945,59028,0},{7943,59031,0},{7940,59021,0},{7937,59021,0}, {7933,58994,0},{7928,58981,0},{7925,58983,0},{7925,58968,0},{7922,58969,0}, {7917,58946,0},{7913,58948,0},{7913,58956,0},{7913,58929,0},{7910,58938,0}, {7910,58934,0},{7912,58924,0},{7910,58904,0},{7913,58901,0},{7913,58891,0}, {7912,58884,0},{7915,58873,0},{7912,58858,0},{7913,58858,0},{7910,58844,0}, {7915,58841,0},{7912,58833,0},{7915,58826,0},{7915,58818,0},{7912,58814,0}, {7912,58809,0},{7912,58796,0},{7913,58788,0},{7910,58788,0},{7910,58778,0}, {7908,58763,0},{7907,58763,0},{7905,58769,0},{7903,58764,0},{7907,58733,0}, {7907,58706,0},{7905,58681,0},{7897,58626,0},{7892,58619,0},{7890,58646,0}, {7883,58658,0},{7887,58629,0},{7888,58623,0},{7880,58601,0},{7880,58594,0}, {7880,58548,0},{7878,58534,0},{7875,58539,0},{7868,58461,0},{7867,58456,0}, {7858,58456,0},{7862,58446,0},{7865,58409,0},{7863,58381,0},{7855,58346,0}, {7853,58323,0},{7855,58301,0},{7852,58281,0},{7850,58273,0},{7847,58279,0}, {7843,58269,0},{7840,58278,0},{7835,58256,0},{7832,58251,0},{7828,58291,0}, {7828,58269,0},{7825,58268,0},{7825,58256,0},{7823,58261,0},{7822,58254,0}, {7818,58263,0},{7817,58251,0},{7817,58236,0},{7815,58231,0},{7815,58249,0}, {7810,58258,0},{7805,58278,0},{7805,58306,0},{7802,58301,0},{7797,58311,0}, {7793,58313,0},{7793,58328,0},{7788,58343,0},{7792,58373,0},{7785,58376,0}, {7788,58413,0},{7785,58413,0},{7780,58393,0},{7777,58404,0},{7778,58469,0}, {7783,58484,0},{7785,58498,0},{7783,58538,0},{7782,58534,0},{7782,58513,0}, {7770,58466,0},{7768,58468,0},{7765,58504,0},{7767,58519,0},{7767,58526,0}, {7768,58534,0},{7770,58566,0},{7775,58588,0},{7768,58586,0},{7758,58511,0}, {7757,58508,0},{7755,58511,0},{7753,58529,0},{7755,58543,0},{7753,58546,0}, {7753,58556,0},{7745,58618,0},{7752,58674,0},{7755,58676,0},{7765,58654,0}, {7767,58666,0},{7757,58698,0},{7750,58699,0},{7752,58744,0},{7752,58759,0}, {7755,58798,0},{7758,58814,0},{7767,58821,0},{7768,58853,0},{7772,58869,0}, {7768,58864,0},{7767,58876,0},{7763,58886,0},{7762,58908,0},{7760,58913,0}, {7757,58906,0},{7757,58919,0},{7753,58914,0},{7750,58929,0},{7745,58929,0}, {7742,58919,0},{7743,58884,0},{7742,58869,0},{7730,58888,0},{7728,58896,0}, {7727,58914,0},{7725,58913,0},{7728,58881,0},{7735,58859,0},{7738,58781,0}, {7737,58709,0},{7737,58696,0},{7727,58626,0},{7725,58638,0},{7722,58678,0}, {7720,58719,0},{7722,58738,0},{7722,58761,0},{7715,58846,0},{7715,58871,0}, {7720,58916,0},{7717,58916,0},{7713,58891,0},{7712,58899,0},{7710,58896,0}, {7713,58883,0},{7712,58843,0},{7715,58818,0},{7715,58803,0},{7720,58753,0}, {7717,58716,0},{7717,58683,0},{7723,58584,0},{7722,58571,0},{7723,58563,0}, {7723,58554,0},{7723,58521,0},{7718,58444,0},{7717,58444,0},{7715,58466,0}, {7715,58438,0},{7713,58416,0},{7707,58413,0},{7705,58399,0},{7700,58401,0}, {7693,58424,0},{7695,58423,0},{7697,58429,0},{7693,58456,0},{7693,58468,0}, {7690,58453,0},{7690,58438,0},{7687,58444,0},{7687,58454,0},{7683,58453,0}, {7680,58469,0},{7680,58476,0},{7678,58486,0},{7680,58499,0},{7698,58558,0}, {7702,58561,0},{7702,58569,0},{7700,58581,0},{7698,58581,0},{7697,58561,0}, {7690,58546,0},{7687,58546,0},{7682,58528,0},{7680,58526,0},{7677,58536,0}, {7667,58613,0},{7668,58621,0},{7665,58658,0},{7665,58679,0},{7668,58708,0}, {7670,58726,0},{7668,58738,0},{7665,58726,0},{7662,58738,0},{7658,58733,0}, {7657,58696,0},{7658,58663,0},{7655,58646,0},{7655,58654,0},{7648,58629,0}, {7645,58604,0},{7643,58579,0},{7642,58574,0},{7637,58574,0},{7630,58603,0}, {7625,58644,0},{7622,58644,0},{7618,58661,0},{7617,58656,0},{7617,58683,0}, {7615,58693,0},{7612,58679,0},{7608,58686,0},{7602,58801,0},{7592,58891,0}, {7595,58888,0},{7600,58864,0},{7607,58831,0},{7610,58834,0},{7613,58831,0}, {7617,58806,0},{7620,58809,0},{7620,58826,0},{7623,58821,0},{7627,58833,0}, {7623,58854,0},{7622,58856,0},{7622,58869,0},{7617,58861,0},{7608,58889,0}, {7610,58899,0},{7615,58896,0},{7615,58904,0},{7620,58901,0},{7622,58914,0}, {7628,58916,0},{7625,58934,0},{7628,58959,0},{7627,58968,0},{7623,58981,0}, {7620,58959,0},{7618,58968,0},{7618,58961,0},{7613,58959,0},{7610,58948,0}, {7605,58966,0},{7605,58973,0},{7603,58973,0},{7602,58988,0},{7602,59001,0}, {7607,59006,0},{7613,58999,0},{7615,59004,0},{7617,59001,0},{7618,59014,0}, {7613,59013,0},{7612,59019,0},{7613,59033,0},{7610,59036,0},{7618,59036,0}, {7617,59051,0},{7612,59066,0},{7613,59076,0},{7617,59066,0},{7618,59069,0}, {7617,59074,0},{7617,59079,0},{7622,59069,0},{7627,59068,0},{7627,59074,0}, {7623,59079,0},{7623,59093,0},{7628,59099,0},{7635,59093,0},{7635,59101,0}, {7632,59119,0},{7630,59114,0},{7625,59114,0},{7615,59124,0},{7613,59134,0}, {7615,59158,0},{7632,59188,0},{7637,59186,0},{7637,59198,0},{7635,59209,0}, {7635,59219,0},{7633,59223,0},{7630,59248,0},{7620,59258,0},{7625,59263,0}, {7627,59276,0},{7625,59298,0},{7628,59304,0},{7628,59313,0},{7627,59321,0}, {7622,59319,0},{7623,59341,0},{7620,59351,0},{7620,59361,0},{7618,59369,0}, {7617,59388,0},{7618,59398,0},{7617,59414,0},{7615,59423,0},{7615,59451,0}, {7612,59453,0},{7608,59446,0},{7608,59454,0},{7603,59453,0},{7600,59463,0}, {7607,59486,0},{7603,59491,0},{7603,59498,0},{7602,59528,0},{7598,59523,0}, {7597,59529,0},{7597,59536,0},{7593,59536,0},{7592,59544,0},{7593,59544,0}, {7597,59559,0},{7595,59568,0},{7592,59576,0},{7587,59561,0},{7582,59554,0}, {7580,59558,0},{7580,59564,0},{7582,59569,0},{7582,59574,0},{7587,59584,0}, {7587,59614,0},{7583,59623,0},{7582,59606,0},{7580,59613,0},{7578,59614,0}, {7577,59608,0},{7577,59628,0},{7570,59629,0},{7572,59654,0},{7573,59668,0}, {7572,59696,0},{7570,59693,0},{7570,59679,0},{7567,59676,0},{7565,59686,0}, {7565,59704,0},{7557,59693,0},{7555,59704,0},{7552,59719,0},{7545,59714,0}, {7543,59699,0},{7540,59693,0},{7538,59674,0},{7535,59666,0},{7533,59684,0}, {7540,59694,0},{7540,59711,0},{7537,59699,0},{7533,59706,0},{7532,59701,0}, {7532,59693,0},{7530,59693,0},{7520,59714,0},{7520,59734,0},{7517,59744,0}, {7515,59741,0},{7510,59723,0},{7508,59729,0},{7508,59721,0},{7505,59723,0}, {7507,59731,0},{7505,59746,0},{7502,59753,0},{7502,59771,0},{7498,59781,0}, {7495,59796,0},{7493,59798,0},{7493,59803,0},{7490,59806,0},{7492,59833,0}, {7485,59836,0},{7483,59851,0},{7482,59856,0},{7480,59849,0},{7477,59838,0}, {7480,59826,0},{7477,59818,0},{7475,59823,0},{7473,59821,0},{7473,59833,0}, {7470,59828,0},{7470,59834,0},{7467,59834,0},{7470,59849,0},{7468,59853,0}, {7468,59859,0},{7465,59859,0},{7465,59889,0},{7462,59886,0},{7460,59876,0}, {7455,59894,0},{7455,59916,0},{7452,59909,0},{7450,59913,0},{7448,59921,0}, {7448,59909,0},{7445,59879,0},{7445,59856,0},{7440,59878,0},{7442,59908,0}, {7440,59919,0},{7437,59921,0},{7435,59864,0},{7432,59873,0},{7433,59883,0}, {7428,59879,0},{7430,59898,0},{7430,59906,0},{7428,59904,0},{7425,59879,0}, {7423,59878,0},{7420,59866,0},{7420,59846,0},{7417,59833,0},{7417,59821,0}, {7413,59826,0},{7415,59809,0},{7410,59804,0},{7410,59821,0},{7415,59876,0}, {7423,59909,0},{7427,59918,0},{7428,59923,0},{7420,59919,0},{7417,59911,0}, {7415,59913,0},{7412,59904,0},{7410,59906,0},{7412,59916,0},{7408,59909,0}, {7408,59899,0},{7407,59894,0},{7407,59899,0},{7405,59901,0},{7403,59939,0}, {7400,59938,0},{7402,59924,0},{7397,59926,0},{7395,59939,0},{7392,59943,0}, {7392,59954,0},{7387,59971,0},{7385,59971,0},{7383,59966,0},{7385,59941,0}, {7377,59954,0},{7375,59953,0},{7372,59963,0},{7373,59973,0},{7372,59976,0}, {7370,59973,0},{7370,59961,0},{7377,59941,0},{7372,59944,0},{7370,59934,0}, {7368,59933,0},{7368,59936,0},{7368,59948,0},{7368,59951,0},{7365,59939,0}, {7367,59929,0},{7365,59928,0},{7362,59941,0},{7362,59959,0},{7358,59958,0}, {7357,59964,0},{7358,59966,0},{7357,59973,0},{7350,59984,0},{7347,59983,0}, {7343,60004,0},{7342,60019,0},{7337,60028,0},{7335,60026,0},{7335,60023,0}, {7338,60009,0},{7333,59999,0},{7332,60004,0},{7330,60003,0},{7330,59996,0}, {7325,59989,0},{7323,60004,0},{7323,60014,0},{7322,60014,0},{7322,60023,0}, {7318,60021,0},{7318,59993,0},{7317,59994,0},{7318,60003,0},{7312,59991,0}, {7310,59984,0},{7312,59971,0},{7310,59964,0},{7307,59966,0},{7305,59971,0}, {7307,59991,0},{7303,60003,0},{7305,60009,0},{7302,60019,0},{7307,60033,0}, {7300,60031,0},{7300,60041,0},{7302,60048,0},{7300,60058,0},{7297,60051,0}, {7295,60058,0},{7293,60054,0},{7290,60066,0},{7285,60069,0},{7282,60076,0}, {7280,60066,0},{7280,60054,0},{7278,60043,0},{7275,60061,0},{7277,60073,0}, {7280,60078,0},{7278,60083,0},{7275,60071,0},{7275,60061,0},{7268,60078,0}, {7270,60063,0},{7265,60058,0},{7267,60048,0},{7263,60051,0},{7262,60066,0}, {7263,60069,0},{7262,60073,0},{7260,60063,0},{7260,60046,0},{7258,60044,0}, {7257,60036,0},{7252,60034,0},{7250,60038,0},{7252,60048,0},{7255,60056,0}, {7252,60056,0},{7250,60061,0},{7248,60076,0},{7250,60093,0},{7248,60106,0}, {7247,60104,0},{7248,60101,0},{7250,60093,0},{7247,60079,0},{7248,60058,0}, {7247,60046,0},{7252,59989,0},{7245,59973,0},{7242,59973,0},{7238,59988,0}, {7240,59994,0},{7242,59996,0},{7240,60001,0},{7247,60004,0},{7240,60008,0}, {7238,60011,0},{7237,60008,0},{7237,60013,0},{7240,60024,0},{7240,60033,0}, {7242,60034,0},{7243,60046,0},{7240,60039,0},{7238,60043,0},{7237,60058,0}, {7237,60068,0},{7235,60058,0},{7237,60041,0},{7232,60046,0},{7227,60041,0}, {7225,60048,0},{7220,60031,0},{7215,60016,0},{7210,59996,0},{7208,59996,0}, {7207,60008,0},{7207,59994,0},{7203,59983,0},{7198,59976,0},{7198,59983,0}, {7192,60011,0},{7193,60048,0},{7200,60064,0},{7202,60073,0},{7207,60071,0}, {7213,60083,0},{7218,60083,0},{7222,60094,0},{7222,60098,0},{7210,60084,0}, {7203,60083,0},{7192,60053,0},{7188,60034,0},{7188,60004,0},{7183,59998,0}, {7177,60011,0},{7180,59991,0},{7177,59979,0},{7173,59979,0},{7175,59968,0}, {7173,59959,0},{7168,59946,0},{7165,59979,0},{7162,59976,0},{7162,59968,0}, {7147,59981,0},{7138,60004,0},{7138,60019,0},{7138,60024,0},{7148,60011,0}, {7143,60024,0},{7143,60039,0},{7138,60043,0},{7135,60056,0},{7137,60096,0}, {7145,60144,0},{7155,60151,0},{7163,60126,0},{7168,60133,0},{7170,60126,0}, {7172,60129,0},{7170,60134,0},{7163,60144,0},{7163,60158,0},{7167,60164,0}, {7170,60163,0},{7173,60144,0},{7173,60173,0},{7180,60188,0},{7185,60196,0}, {7190,60188,0},{7205,60178,0},{7215,60153,0},{7225,60153,0},{7232,60141,0}, {7235,60149,0},{7235,60179,0},{7235,60178,0},{7233,60154,0},{7232,60151,0}, {7225,60161,0},{7212,60166,0},{7207,60189,0},{7203,60196,0},{7197,60194,0}, {7183,60204,0},{7177,60199,0},{7177,60203,0},{7182,60216,0},{7185,60238,0}, {7192,60234,0},{7202,60258,0},{7202,60264,0},{7200,60268,0},{7197,60256,0}, {7192,60253,0},{7192,60246,0},{7187,60246,0},{7187,60251,0},{7182,60244,0}, {7175,60219,0},{7170,60211,0},{7168,60246,0},{7168,60278,0},{7163,60279,0}, {7162,60319,0},{7165,60349,0},{7172,60358,0},{7173,60369,0},{7172,60373,0}, {7162,60363,0},{7160,60356,0},{7155,60288,0},{7152,60266,0},{7142,60238,0}, {7138,60269,0},{7138,60291,0},{7138,60306,0},{7145,60333,0},{7150,60364,0}, {7150,60383,0},{7148,60401,0},{7143,60398,0},{7145,60376,0},{7143,60338,0}, {7140,60334,0},{7135,60309,0},{7127,60309,0},{7123,60303,0},{7122,60284,0}, {7118,60281,0},{7115,60283,0},{7115,60293,0},{7118,60303,0},{7118,60311,0}, {7133,60353,0},{7137,60371,0},{7133,60368,0},{7130,60383,0},{7127,60383,0}, {7125,60374,0},{7125,60348,0},{7122,60333,0},{7117,60328,0},{7113,60313,0}, {7112,60311,0},{7110,60329,0},{7113,60351,0},{7113,60363,0},{7112,60366,0}, {7110,60376,0},{7113,60413,0},{7110,60396,0},{7108,60399,0},{7108,60408,0}, {7108,60393,0},{7105,60388,0},{7102,60414,0},{7102,60444,0},{7097,60439,0}, {7095,60413,0},{7107,60353,0},{7105,60346,0},{7102,60341,0},{7097,60369,0}, {7093,60376,0},{7088,60418,0},{7087,60416,0},{7085,60421,0},{7085,60434,0}, {7088,60451,0},{7083,60444,0},{7080,60446,0},{7078,60461,0},{7075,60463,0}, {7073,60473,0},{7072,60471,0},{7072,60458,0},{7078,60434,0},{7082,60413,0}, {7075,60408,0},{7075,60393,0},{7070,60394,0},{7068,60416,0},{7077,60431,0}, {7065,60426,0},{7068,60443,0},{7068,60451,0},{7063,60474,0},{7062,60471,0}, {7065,60458,0},{7065,60443,0},{7062,60438,0},{7060,60444,0},{7062,60453,0}, {7058,60449,0},{7055,60463,0},{7053,60458,0},{7057,60444,0},{7053,60449,0}, {7050,60448,0},{7053,60446,0},{7058,60419,0},{7062,60416,0},{7058,60403,0}, {7055,60403,0},{7052,60414,0},{7050,60414,0},{7052,60428,0},{7048,60441,0}, {7047,60441,0},{7047,60426,0},{7043,60433,0},{7042,60459,0},{7045,60466,0}, {7047,60471,0},{7052,60478,0},{7053,60483,0},{7052,60488,0},{7040,60468,0}, {7038,60469,0},{7040,60474,0},{7038,60479,0},{7035,60481,0},{7032,60476,0}, {7032,60468,0},{7035,60454,0},{7037,60436,0},{7035,60431,0},{7040,60416,0}, {7043,60398,0},{7043,60383,0},{7050,60354,0},{7070,60291,0},{7073,60269,0}, {7078,60231,0},{7075,60189,0},{7080,60168,0},{7078,60156,0},{7082,60136,0}, {7083,60121,0},{7073,60081,0},{7065,60073,0},{7065,60081,0},{7058,60101,0}, {7052,60116,0},{7047,60118,0},{7038,60144,0},{7035,60194,0},{7035,60214,0}, {7028,60248,0},{7020,60276,0},{7005,60304,0},{7005,60308,0},{7003,60319,0}, {7005,60329,0},{7000,60341,0},{7002,60353,0},{7000,60374,0},{7003,60381,0}, {6997,60379,0},{6998,60389,0},{6997,60391,0},{7007,60411,0},{7007,60429,0}, {7005,60436,0},{7003,60436,0},{7003,60444,0},{7002,60449,0},{7000,60438,0}, {7003,60434,0},{7003,60428,0},{7000,60423,0},{6997,60408,0},{6997,60443,0}, {7003,60486,0},{7005,60489,0},{7003,60494,0},{7003,60511,0},{7002,60514,0}, {6997,60504,0},{6997,60478,0},{6992,60478,0},{6990,60484,0},{6990,60498,0}, {6987,60504,0},{6983,60504,0},{6978,60509,0},{6975,60518,0},{6978,60476,0}, {6973,60471,0},{6972,60454,0},{6968,60454,0},{6967,60459,0},{6967,60476,0}, {6963,60484,0},{6965,60493,0},{6963,60489,0},{6960,60496,0},{6963,60471,0}, {6965,60456,0},{6962,60451,0},{6955,60458,0},{6948,60448,0},{6948,60451,0}, {6952,60466,0},{6952,60469,0},{6952,60464,0},{6950,60466,0},{6950,60479,0}, {6955,60493,0},{6955,60498,0},{6952,60503,0},{6952,60516,0},{6948,60508,0}, {6952,60494,0},{6948,60484,0},{6945,60488,0},{6948,60466,0},{6945,60449,0}, {6943,60453,0},{6938,60446,0},{6933,60453,0},{6935,60446,0},{6933,60446,0}, {6933,60439,0},{6932,60436,0},{6930,60439,0},{6928,60449,0},{6927,60443,0}, {6927,60436,0},{6923,60431,0},{6923,60426,0},{6920,60424,0},{6920,60433,0}, {6918,60434,0},{6917,60448,0},{6920,60461,0},{6923,60471,0},{6922,60471,0}, {6922,60476,0},{6925,60483,0},{6927,60478,0},{6932,60486,0},{6933,60496,0}, {6932,60498,0},{6930,60489,0},{6920,60489,0},{6920,60509,0},{6922,60523,0}, {6917,60519,0},{6913,60509,0},{6912,60508,0},{6912,60468,0},{6910,60468,0}, {6905,60493,0},{6908,60511,0},{6907,60514,0},{6902,60518,0},{6902,60514,0}, {6895,60514,0},{6898,60506,0},{6905,60509,0},{6905,60501,0},{6900,60501,0}, {6902,60496,0},{6902,60486,0},{6897,60491,0},{6897,60499,0},{6892,60504,0}, {6890,60501,0},{6895,60484,0},{6902,60483,0},{6905,60478,0},{6905,60473,0}, {6908,60469,0},{6905,60446,0},{6902,60446,0},{6903,60438,0},{6907,60446,0}, {6910,60463,0},{6912,60459,0},{6912,60444,0},{6913,60429,0},{6910,60429,0}, {6910,60424,0},{6905,60428,0},{6903,60423,0},{6895,60428,0},{6892,60418,0}, {6888,60418,0},{6888,60428,0},{6892,60429,0},{6893,60439,0},{6887,60428,0}, {6883,60414,0},{6882,60418,0},{6875,60406,0},{6873,60424,0},{6875,60434,0}, {6883,60458,0},{6883,60469,0},{6882,60469,0},{6880,60459,0},{6877,60458,0}, {6877,60449,0},{6873,60438,0},{6870,60439,0},{6870,60444,0},{6867,60444,0}, {6867,60456,0},{6867,60448,0},{6862,60451,0},{6862,60446,0},{6867,60439,0}, {6870,60429,0},{6865,60436,0},{6858,60433,0},{6857,60428,0},{6858,60429,0}, {6860,60426,0},{6855,60419,0},{6857,60406,0},{6858,60408,0},{6858,60403,0}, {6857,60396,0},{6855,60403,0},{6853,60399,0},{6855,60393,0},{6853,60386,0}, {6855,60389,0},{6857,60386,0},{6853,60381,0},{6852,60374,0},{6853,60358,0}, {6852,60351,0},{6853,60341,0},{6855,60344,0},{6855,60339,0},{6857,60354,0}, {6858,60349,0},{6857,60331,0},{6853,60324,0},{6857,60316,0},{6855,60288,0}, {6852,60273,0},{6850,60278,0},{6852,60296,0},{6848,60288,0},{6845,60293,0}, {6845,60274,0},{6842,60264,0},{6842,60258,0},{6840,60254,0},{6838,60258,0}, {6835,60236,0},{6830,60226,0},{6835,60213,0},{6833,60198,0},{6830,60203,0}, {6828,60199,0},{6827,60201,0},{6830,60216,0},{6828,60228,0},{6835,60276,0}, {6833,60276,0},{6833,60273,0},{6832,60271,0},{6830,60253,0},{6825,60243,0}, {6825,60251,0},{6822,60246,0},{6823,60253,0},{6822,60256,0},{6822,60264,0}, {6823,60273,0},{6825,60273,0},{6827,60254,0},{6828,60261,0},{6827,60271,0}, {6828,60284,0},{6827,60279,0},{6823,60291,0},{6818,60286,0},{6818,60294,0}, {6822,60314,0},{6822,60326,0},{6823,60331,0},{6823,60358,0},{6828,60369,0}, {6828,60413,0},{6833,60413,0},{6835,60406,0},{6837,60403,0},{6835,60398,0}, {6835,60388,0},{6840,60379,0},{6842,60373,0},{6843,60378,0},{6840,60391,0}, {6842,60414,0},{6850,60454,0},{6848,60459,0},{6847,60449,0},{6848,60454,0}, {6848,60448,0},{6845,60443,0},{6843,60426,0},{6840,60418,0},{6838,60418,0}, {6837,60423,0},{6828,60421,0},{6825,60398,0},{6825,60416,0},{6822,60424,0}, {6822,60431,0},{6818,60441,0},{6818,60426,0},{6822,60406,0},{6820,60393,0}, {6817,60399,0},{6813,60424,0},{6810,60428,0},{6812,60443,0},{6808,60431,0}, {6807,60439,0},{6805,60444,0},{6805,60451,0},{6803,60456,0},{6803,60468,0}, {6802,60469,0},{6800,60464,0},{6800,60479,0},{6797,60479,0},{6795,60498,0}, {6793,60504,0},{6793,60521,0},{6790,60514,0},{6793,60493,0},{6790,60476,0}, {6795,60466,0},{6795,60458,0},{6800,60436,0},{6807,60418,0},{6805,60368,0}, {6803,60351,0},{6805,60341,0},{6808,60326,0},{6808,60318,0},{6812,60311,0}, {6813,60301,0},{6818,60278,0},{6820,60261,0},{6817,60256,0},{6817,60266,0}, {6815,60266,0},{6815,60273,0},{6812,60273,0},{6813,60284,0},{6810,60283,0}, {6807,60298,0},{6807,60294,0},{6812,60273,0},{6812,60263,0},{6815,60248,0}, {6815,60241,0},{6820,60221,0},{6818,60204,0},{6815,60191,0},{6815,60201,0}, {6817,60209,0},{6813,60208,0},{6815,60214,0},{6815,60221,0},{6817,60221,0}, {6817,60226,0},{6815,60228,0},{6813,60221,0},{6812,60221,0},{6800,60254,0}, {6797,60268,0},{6795,60316,0},{6797,60329,0},{6795,60326,0},{6792,60318,0}, {6793,60311,0},{6795,60286,0},{6793,60278,0},{6795,60273,0},{6798,60256,0}, {6805,60234,0},{6807,60226,0},{6805,60218,0},{6802,60211,0},{6798,60209,0}, {6800,60228,0},{6798,60231,0},{6800,60238,0},{6798,60248,0},{6797,60234,0}, {6797,60211,0},{6795,60211,0},{6793,60218,0},{6792,60204,0},{6788,60211,0}, {6792,60223,0},{6790,60228,0},{6788,60231,0},{6788,60223,0},{6785,60209,0}, {6785,60208,0},{6783,60216,0},{6783,60206,0},{6788,60206,0},{6788,60201,0}, {6790,60198,0},{6788,60189,0},{6787,60189,0},{6787,60198,0},{6783,60194,0}, {6782,60211,0},{6780,60209,0},{6780,60193,0},{6782,60194,0},{6780,60188,0}, {6782,60186,0},{6782,60191,0},{6785,60188,0},{6783,60186,0},{6785,60181,0}, {6780,60166,0},{6777,60181,0},{6772,60183,0},{6768,60181,0},{6765,60166,0}, {6765,60179,0},{6760,60161,0},{6755,60164,0},{6753,60163,0},{6752,60168,0}, {6750,60168,0},{6752,60178,0},{6758,60204,0},{6777,60238,0},{6777,60244,0}, {6778,60253,0},{6778,60273,0},{6782,60289,0},{6787,60296,0},{6790,60314,0}, {6790,60343,0},{6793,60354,0},{6797,60374,0},{6797,60378,0},{6793,60376,0}, {6792,60358,0},{6788,60344,0},{6787,60323,0},{6788,60319,0},{6782,60301,0}, {6777,60311,0},{6777,60331,0},{6775,60343,0},{6775,60351,0},{6778,60354,0}, {6780,60368,0},{6777,60373,0},{6775,60356,0},{6773,60351,0},{6772,60356,0}, {6770,60354,0},{6770,60364,0},{6775,60378,0},{6775,60389,0},{6772,60384,0}, {6775,60398,0},{6778,60396,0},{6782,60404,0},{6785,60401,0},{6787,60389,0}, {6793,60379,0},{6795,60384,0},{6792,60401,0},{6797,60413,0},{6798,60433,0}, {6793,60431,0},{6792,60439,0},{6790,60439,0},{6788,60434,0},{6790,60428,0}, {6790,60416,0},{6788,60399,0},{6785,60409,0},{6782,60411,0},{6780,60418,0}, {6778,60413,0},{6777,60418,0},{6777,60431,0},{6777,60436,0},{6780,60439,0}, {6780,60451,0},{6780,60454,0},{6782,60449,0},{6782,60464,0},{6785,60471,0}, {6787,60461,0},{6785,60453,0},{6785,60448,0},{6788,60454,0},{6790,60453,0}, {6790,60458,0},{6787,60483,0},{6787,60488,0},{6788,60484,0},{6788,60488,0}, {6785,60493,0},{6783,60509,0},{6782,60508,0},{6780,60501,0},{6782,60496,0}, {6782,60473,0},{6777,60458,0},{6773,60438,0},{6772,60436,0},{6772,60413,0}, {6773,60408,0},{6772,60404,0},{6765,60429,0},{6767,60444,0},{6763,60434,0}, {6762,60441,0},{6765,60471,0},{6775,60508,0},{6773,60529,0},{6770,60541,0}, {6768,60541,0},{6768,60528,0},{6772,60528,0},{6773,60509,0},{6765,60476,0}, {6760,60448,0},{6753,60464,0},{6750,60479,0},{6752,60498,0},{6748,60511,0}, {6752,60529,0},{6748,60516,0},{6747,60516,0},{6750,60491,0},{6748,60481,0}, {6750,60471,0},{6748,60466,0},{6758,60441,0},{6763,60413,0},{6768,60403,0}, {6767,60394,0},{6767,60398,0},{6765,60396,0},{6767,60383,0},{6763,60364,0}, {6763,60348,0},{6767,60348,0},{6772,60331,0},{6770,60324,0},{6773,60303,0}, {6777,60294,0},{6777,60286,0},{6775,60273,0},{6773,60253,0},{6772,60264,0}, {6773,60283,0},{6772,60274,0},{6770,60264,0},{6772,60251,0},{6770,60233,0}, {6765,60228,0},{6768,60244,0},{6758,60213,0},{6760,60224,0},{6760,60226,0}, {6755,60203,0},{6752,60196,0},{6745,60164,0},{6740,60154,0},{6738,60156,0}, {6735,60149,0},{6733,60153,0},{6732,60149,0},{6728,60151,0},{6725,60148,0}, {6725,60153,0},{6723,60149,0},{6723,60158,0},{6720,60156,0},{6725,60178,0}, {6727,60193,0},{6727,60199,0},{6735,60218,0},{6730,60213,0},{6728,60223,0}, {6735,60279,0},{6735,60286,0},{6738,60293,0},{6737,60298,0},{6740,60321,0}, {6735,60341,0},{6737,60353,0},{6735,60374,0},{6742,60421,0},{6742,60424,0}, {6740,60421,0},{6737,60388,0},{6735,60383,0},{6732,60393,0},{6725,60398,0}, {6713,60419,0},{6715,60428,0},{6720,60456,0},{6722,60483,0},{6722,60488,0}, {6718,60491,0},{6720,60499,0},{6717,60499,0},{6717,60489,0},{6718,60476,0}, {6718,60459,0},{6713,60429,0},{6712,60418,0},{6717,60406,0},{6730,60391,0}, {6732,60384,0},{6735,60363,0},{6733,60333,0},{6737,60321,0},{6733,60294,0}, {6730,60288,0},{6732,60276,0},{6730,60254,0},{6727,60244,0},{6727,60234,0}, {6725,60228,0},{6725,60214,0},{6723,60194,0},{6723,60184,0},{6722,60178,0}, {6720,60198,0},{6718,60154,0},{6715,60149,0},{6713,60144,0},{6713,60148,0}, {6712,60143,0},{6712,60146,0},{6710,60139,0},{6708,60143,0},{6707,60139,0}, {6708,60161,0},{6708,60183,0},{6712,60196,0},{6707,60181,0},{6707,60153,0}, {6702,60156,0},{6702,60168,0},{6700,60173,0},{6702,60189,0},{6700,60201,0}, {6700,60214,0},{6698,60206,0},{6700,60193,0},{6698,60174,0},{6700,60154,0}, {6697,60154,0},{6693,60171,0},{6692,60168,0},{6692,60171,0},{6693,60228,0}, {6690,60231,0},{6690,60248,0},{6690,60251,0},{6688,60261,0},{6692,60279,0}, {6697,60284,0},{6698,60289,0},{6697,60291,0},{6695,60286,0},{6690,60288,0}, {6692,60308,0},{6688,60306,0},{6690,60301,0},{6687,60289,0},{6687,60298,0}, {6683,60301,0},{6683,60313,0},{6682,60311,0},{6682,60303,0},{6687,60279,0}, {6685,60249,0},{6683,60248,0},{6685,60238,0},{6682,60228,0},{6680,60231,0}, {6678,60226,0},{6677,60226,0},{6682,60246,0},{6680,60254,0},{6682,60263,0}, {6683,60268,0},{6682,60271,0},{6678,60269,0},{6675,60251,0},{6675,60239,0}, {6673,60224,0},{6675,60216,0},{6672,60223,0},{6670,60239,0},{6675,60259,0}, {6673,60266,0},{6673,60276,0},{6670,60278,0},{6670,60273,0},{6668,60273,0}, {6670,60259,0},{6668,60253,0},{6667,60236,0},{6670,60209,0},{6663,60191,0}, {6662,60193,0},{6660,60189,0},{6662,60203,0},{6660,60203,0},{6660,60198,0}, {6657,60193,0},{6655,60214,0},{6655,60228,0},{6658,60241,0},{6655,60278,0}, {6655,60294,0},{6652,60291,0},{6652,60288,0},{6652,60264,0},{6655,60244,0}, {6648,60219,0},{6652,60203,0},{6652,60201,0},{6652,60214,0},{6653,60199,0}, {6652,60188,0},{6653,60184,0},{6650,60179,0},{6650,60174,0},{6647,60178,0}, {6645,60171,0},{6643,60171,0},{6643,60174,0},{6648,60183,0},{6647,60186,0}, {6645,60179,0},{6640,60174,0},{6640,60169,0},{6637,60168,0},{6633,60166,0}, {6632,60173,0},{6628,60171,0},{6625,60174,0},{6627,60199,0},{6628,60206,0}, {6628,60213,0},{6628,60224,0},{6625,60201,0},{6623,60186,0},{6622,60178,0}, {6618,60179,0},{6613,60169,0},{6615,60188,0},{6612,60171,0},{6610,60188,0}, {6612,60206,0},{6620,60236,0},{6627,60251,0},{6635,60264,0},{6643,60289,0}, {6652,60323,0},{6665,60338,0},{6672,60363,0},{6682,60384,0},{6692,60418,0}, {6692,60428,0},{6698,60441,0},{6707,60504,0},{6707,60508,0},{6703,60493,0}, {6703,60481,0},{6702,60473,0},{6700,60488,0},{6702,60504,0},{6698,60514,0}, {6700,60528,0},{6698,60529,0},{6698,60536,0},{6697,60533,0},{6697,60516,0}, {6700,60503,0},{6698,60489,0},{6700,60469,0},{6693,60441,0},{6690,60436,0}, {6685,60453,0},{6685,60461,0},{6687,60469,0},{6685,60484,0},{6685,60494,0}, {6683,60503,0},{6683,60483,0},{6685,60469,0},{6682,60456,0},{6683,60443,0}, {6688,60424,0},{6687,60421,0},{6683,60426,0},{6685,60416,0},{6685,60409,0}, {6678,60399,0},{6675,60384,0},{6673,60384,0},{6672,60393,0},{6670,60391,0}, {6670,60378,0},{6663,60346,0},{6652,60333,0},{6648,60339,0},{6643,60299,0}, {6632,60266,0},{6627,60263,0},{6623,60256,0},{6605,60194,0},{6603,60189,0}, {6602,60193,0},{6603,60204,0},{6602,60208,0},{6600,60206,0},{6602,60219,0}, {6602,60226,0},{6600,60206,0},{6600,60198,0},{6598,60189,0},{6595,60189,0}, {6593,60198,0},{6593,60203,0},{6595,60206,0},{6595,60211,0},{6593,60209,0}, {6602,60239,0},{6602,60248,0},{6592,60209,0},{6588,60221,0},{6588,60214,0}, {6587,60213,0},{6585,60219,0},{6595,60258,0},{6598,60256,0},{6595,60266,0}, {6598,60274,0},{6602,60279,0},{6600,60284,0},{6595,60276,0},{6590,60284,0}, {6590,60304,0},{6600,60319,0},{6600,60324,0},{6607,60358,0},{6607,60363,0}, {6602,60349,0},{6597,60361,0},{6593,60364,0},{6592,60363,0},{6600,60348,0}, {6600,60339,0},{6593,60313,0},{6590,60309,0},{6588,60314,0},{6583,60306,0}, {6587,60303,0},{6588,60286,0},{6593,60268,0},{6590,60253,0},{6588,60254,0}, {6588,60248,0},{6585,60233,0},{6582,60228,0},{6582,60234,0},{6578,60221,0}, {6575,60214,0},{6575,60209,0},{6573,60214,0},{6575,60224,0},{6580,60244,0}, {6580,60249,0},{6575,60236,0},{6572,60219,0},{6568,60213,0},{6565,60229,0}, {6567,60243,0},{6568,60248,0},{6567,60254,0},{6580,60268,0},{6572,60268,0}, {6570,60271,0},{6570,60264,0},{6563,60259,0},{6568,60279,0},{6567,60281,0}, {6560,60256,0},{6562,60269,0},{6558,60263,0},{6557,60261,0},{6557,60256,0}, {6553,60256,0},{6552,60263,0},{6550,60264,0},{6550,60268,0},{6567,60289,0}, {6558,60284,0},{6553,60276,0},{6550,60279,0},{6548,60274,0},{6547,60278,0}, {6552,60291,0},{6543,60281,0},{6538,60286,0},{6545,60298,0},{6545,60309,0}, {6550,60318,0},{6550,60328,0},{6555,60343,0},{6557,60344,0},{6567,60338,0}, {6565,60344,0},{6577,60391,0},{6580,60413,0},{6577,60429,0},{6578,60441,0}, {6573,60453,0},{6575,60453,0},{6575,60468,0},{6572,60469,0},{6572,60458,0}, {6568,60461,0},{6572,60481,0},{6568,60483,0},{6568,60464,0},{6575,60441,0}, {6577,60411,0},{6575,60398,0},{6570,60368,0},{6562,60346,0},{6560,60348,0}, {6560,60359,0},{6558,60364,0},{6558,60353,0},{6555,60351,0},{6548,60338,0}, {6547,60321,0},{6542,60313,0},{6540,60296,0},{6532,60279,0},{6528,60286,0}, {6530,60288,0},{6530,60291,0},{6527,60291,0},{6520,60283,0},{6518,60284,0}, {6522,60293,0},{6533,60303,0},{6528,60304,0},{6533,60314,0},{6532,60318,0}, {6530,60314,0},{6528,60318,0},{6520,60304,0},{6520,60306,0},{6522,60318,0}, {6532,60336,0},{6517,60314,0},{6512,60319,0},{6512,60326,0},{6510,60319,0}, {6510,60313,0},{6508,60308,0},{6505,60314,0},{6505,60319,0},{6503,60318,0}, {6500,60319,0},{6502,60328,0},{6498,60326,0},{6498,60334,0},{6497,60334,0}, {6492,60314,0},{6488,60314,0},{6487,60321,0},{6483,60318,0},{6483,60314,0}, {6480,60314,0},{6480,60318,0},{6485,60331,0},{6492,60331,0},{6488,60334,0}, {6488,60341,0},{6483,60338,0},{6482,60328,0},{6478,60328,0},{6480,60334,0}, {6480,60338,0},{6483,60348,0},{6488,60351,0},{6487,60358,0},{6485,60356,0}, {6487,60361,0},{6490,60356,0},{6490,60353,0},{6493,60354,0},{6495,60363,0}, {6502,60366,0},{6502,60373,0},{6500,60374,0},{6498,60381,0},{6497,60378,0}, {6497,60371,0},{6492,60368,0},{6490,60369,0},{6488,60366,0},{6488,60368,0}, {6498,60398,0},{6500,60393,0},{6500,60404,0},{6503,60409,0},{6502,60411,0}, {6495,60394,0},{6485,60383,0},{6488,60374,0},{6485,60371,0},{6485,60361,0}, {6482,60348,0},{6480,60344,0},{6478,60348,0},{6478,60343,0},{6473,60339,0}, {6475,60331,0},{6472,60324,0},{6468,60321,0},{6465,60323,0},{6463,60331,0}, {6460,60331,0},{6460,60334,0},{6455,60326,0},{6452,60326,0},{6452,60331,0}, {6450,60333,0},{6448,60328,0},{6445,60324,0},{6443,60328,0},{6438,60326,0}, {6440,60333,0},{6435,60333,0},{6432,60329,0},{6430,60334,0},{6427,60336,0}, {6423,60333,0},{6420,60336,0},{6420,60343,0},{6422,60343,0},{6422,60346,0}, {6422,60354,0},{6425,60361,0},{6430,60364,0},{6430,60369,0},{6432,60368,0}, {6435,60369,0},{6437,60364,0},{6440,60376,0},{6445,60381,0},{6452,60391,0}, {6462,60394,0},{6465,60398,0},{6465,60403,0},{6473,60406,0},{6477,60414,0}, {6478,60421,0},{6478,60429,0},{6475,60434,0},{6475,60426,0},{6473,60426,0}, {6472,60421,0},{6463,60414,0},{6462,60421,0},{6462,60433,0},{6463,60436,0}, {6463,60429,0},{6467,60429,0},{6468,60446,0},{6477,60464,0},{6473,60466,0}, {6475,60473,0},{6478,60471,0},{6478,60464,0},{6483,60471,0},{6487,60459,0}, {6488,60464,0},{6490,60466,0},{6493,60463,0},{6500,60463,0},{6500,60458,0}, {6497,60451,0},{6498,60448,0},{6505,60449,0},{6507,60448,0},{6508,60441,0}, {6510,60448,0},{6513,60441,0},{6522,60438,0},{6515,60448,0},{6520,60468,0}, {6512,60453,0},{6510,60456,0},{6503,60458,0},{6502,60468,0},{6497,60464,0}, {6490,60468,0},{6487,60476,0},{6477,60479,0},{6475,60498,0},{6477,60501,0}, {6475,60506,0},{6483,60518,0},{6487,60536,0},{6480,60523,0},{6478,60523,0}, {6477,60518,0},{6473,60514,0},{6470,60521,0},{6472,60528,0},{6470,60538,0}, {6467,60531,0},{6467,60526,0},{6463,60524,0},{6453,60529,0},{6445,60551,0}, {6443,60554,0},{6443,60568,0},{6438,60568,0},{6433,60578,0},{6433,60571,0}, {6433,60566,0},{6438,60556,0},{6440,60546,0},{6447,60523,0},{6453,60514,0}, {6467,60508,0},{6472,60486,0},{6468,60469,0},{6465,60476,0},{6468,60486,0}, {6467,60491,0},{6465,60489,0},{6467,60484,0},{6463,60479,0},{6463,60474,0}, {6465,60456,0},{6463,60448,0},{6460,60444,0},{6458,60451,0},{6460,60458,0}, {6458,60464,0},{6458,60474,0},{6455,60468,0},{6452,60473,0},{6455,60493,0}, {6447,60471,0},{6442,60496,0},{6448,60516,0},{6445,60519,0},{6443,60513,0}, {6440,60511,0},{6440,60506,0},{6440,60503,0},{6438,60499,0},{6443,60473,0}, {6445,60466,0},{6440,60468,0},{6438,60476,0},{6438,60478,0},{6438,60469,0}, {6443,60458,0},{6440,60446,0},{6435,60439,0},{6433,60441,0},{6428,60433,0}, {6425,60438,0},{6427,60449,0},{6425,60451,0},{6422,60441,0},{6425,60433,0}, {6420,60423,0},{6417,60409,0},{6418,60403,0},{6422,60391,0},{6422,60374,0}, {6418,60359,0},{6418,60361,0},{6418,60366,0},{6413,60368,0},{6420,60384,0}, {6417,60396,0},{6413,60401,0},{6417,60383,0},{6412,60371,0},{6408,60381,0}, {6408,60389,0},{6408,60391,0},{6412,60429,0},{6417,60453,0},{6422,60461,0}, {6423,60476,0},{6427,60479,0},{6430,60489,0},{6433,60493,0},{6435,60499,0}, {6435,60503,0},{6425,60488,0},{6418,60481,0},{6423,60521,0},{6423,60524,0}, {6422,60523,0},{6420,60531,0},{6415,60528,0},{6410,60531,0},{6408,60529,0}, {6418,60526,0},{6420,60516,0},{6417,60503,0},{6417,60496,0},{6413,60491,0}, {6415,60486,0},{6417,60469,0},{6410,60449,0},{6410,60438,0},{6407,60433,0}, {6408,60424,0},{6405,60398,0},{6402,60406,0},{6400,60404,0},{6403,60393,0}, {6405,60379,0},{6402,60371,0},{6397,60386,0},{6398,60394,0},{6397,60399,0}, {6395,60391,0},{6390,60399,0},{6388,60396,0},{6383,60396,0},{6385,60391,0}, {6385,60388,0},{6380,60393,0},{6382,60406,0},{6390,60421,0},{6393,60438,0}, {6393,60444,0},{6383,60414,0},{6380,60414,0},{6378,60396,0},{6377,60383,0}, {6370,60381,0},{6373,60391,0},{6372,60401,0},{6368,60383,0},{6362,60398,0}, {6362,60406,0},{6358,60398,0},{6353,60394,0},{6353,60398,0},{6355,60398,0}, {6355,60408,0},{6350,60419,0},{6352,60423,0},{6362,60418,0},{6367,60428,0}, {6363,60448,0},{6365,60464,0},{6367,60486,0},{6360,60481,0},{6363,60479,0}, {6365,60478,0},{6360,60446,0},{6365,60431,0},{6362,60426,0},{6362,60423,0}, {6358,60421,0},{6352,60426,0},{6355,60456,0},{6355,60461,0},{6353,60459,0}, {6348,60421,0},{6343,60414,0},{6342,60416,0},{6343,60418,0},{6343,60423,0}, {6338,60419,0},{6337,60423,0},{6338,60426,0},{6348,60433,0},{6347,60436,0}, {6337,60428,0},{6338,60441,0},{6337,60449,0},{6340,60456,0},{6338,60458,0}, {6338,60478,0},{6342,60498,0},{6340,60508,0},{6340,60498,0},{6338,60489,0}, {6337,60478,0},{6337,60469,0},{6335,60453,0},{6335,60431,0},{6333,60426,0}, {6330,60426,0},{6328,60428,0},{6328,60436,0},{6327,60429,0},{6323,60429,0}, {6327,60436,0},{6325,60441,0},{6323,60439,0},{6323,60436,0},{6322,60431,0}, {6318,60429,0},{6315,60436,0},{6323,60453,0},{6325,60458,0},{6317,60443,0}, {6313,60446,0},{6320,60458,0},{6320,60463,0},{6322,60468,0},{6320,60474,0}, {6323,60481,0},{6320,60486,0},{6318,60484,0},{6318,60489,0},{6322,60499,0}, {6323,60499,0},{6322,60508,0},{6323,60513,0},{6322,60531,0},{6318,60498,0}, {6317,60491,0},{6315,60494,0},{6313,60493,0},{6312,60483,0},{6310,60483,0}, {6310,60479,0},{6310,60476,0},{6307,60478,0},{6303,60474,0},{6302,60481,0}, {6305,60481,0},{6305,60484,0},{6302,60486,0},{6297,60474,0},{6297,60481,0}, {6295,60483,0},{6298,60486,0},{6295,60489,0},{6293,60494,0},{6297,60508,0}, {6305,60511,0},{6302,60521,0},{6300,60519,0},{6298,60513,0},{6295,60509,0}, {6293,60504,0},{6285,60496,0},{6282,60501,0},{6278,60498,0},{6278,60501,0}, {6283,60504,0},{6285,60508,0},{6287,60509,0},{6295,60519,0},{6298,60539,0}, {6307,60556,0},{6305,60566,0},{6300,60553,0},{6293,60523,0},{6287,60516,0}, {6285,60511,0},{6275,60504,0},{6270,60509,0},{6277,60519,0},{6280,60518,0}, {6280,60521,0},{6278,60521,0},{6288,60544,0},{6288,60548,0},{6287,60544,0}, {6285,60546,0},{6278,60531,0},{6275,60529,0},{6270,60524,0},{6270,60519,0}, {6267,60514,0},{6263,60514,0},{6258,60509,0},{6248,60504,0},{6245,60513,0}, {6240,60516,0},{6235,60533,0},{6230,60536,0},{6230,60539,0},{6237,60544,0}, {6228,60548,0},{6228,60554,0},{6230,60556,0},{6227,60556,0},{6227,60549,0}, {6225,60551,0},{6225,60548,0},{6223,60553,0},{6225,60556,0},{6227,60564,0}, {6225,60574,0},{6230,60581,0},{6225,60579,0},{6227,60591,0},{6225,60601,0}, {6227,60608,0},{6223,60601,0},{6225,60589,0},{6223,60584,0},{6223,60579,0}, {6218,60576,0},{6215,60568,0},{6215,60589,0},{6220,60596,0},{6222,60599,0}, {6220,60601,0},{6217,60599,0},{6218,60606,0},{6213,60608,0},{6212,60593,0}, {6208,60603,0},{6212,60578,0},{6212,60566,0},{6208,60568,0},{6210,60573,0}, {6207,60576,0},{6208,60584,0},{6208,60589,0},{6205,60574,0},{6202,60583,0}, {6203,60569,0},{6202,60566,0},{6200,60569,0},{6198,60576,0},{6198,60581,0}, {6202,60589,0},{6207,60596,0},{6205,60598,0},{6202,60594,0},{6202,60601,0}, {6200,60593,0},{6198,60594,0},{6198,60603,0},{6202,60611,0},{6202,60619,0}, {6210,60621,0},{6217,60626,0},{6222,60633,0},{6220,60634,0},{6208,60626,0}, {6208,60629,0},{6213,60639,0},{6212,60639,0},{6208,60634,0},{6207,60643,0}, {6207,60653,0},{6205,60646,0},{6205,60638,0},{6197,60621,0},{6197,60609,0}, {6193,60596,0},{6193,60603,0},{6192,60598,0},{6188,60596,0},{6187,60598,0}, {6185,60593,0},{6183,60594,0},{6182,60593,0},{6180,60598,0},{6182,60603,0}, {6188,60608,0},{6190,60614,0},{6190,60618,0},{6188,60614,0},{6177,60601,0}, {6172,60611,0},{6172,60613,0},{6175,60618,0},{6183,60618,0},{6195,60636,0}, {6198,60648,0},{6198,60656,0},{6198,60661,0},{6195,60661,0},{6193,60646,0}, {6188,60641,0},{6187,60634,0},{6185,60636,0},{6183,60626,0},{6180,60624,0}, {6177,60626,0},{6172,60621,0},{6173,60634,0},{6178,60648,0},{6175,60644,0}, {6172,60648,0},{6173,60643,0},{6168,60629,0},{6162,60631,0},{6165,60643,0}, {6160,60638,0},{6160,60641,0},{6163,60663,0},{6165,60669,0},{6163,60678,0}, {6160,60668,0},{6158,60644,0},{6160,60628,0},{6160,60611,0},{6158,60609,0}, {6158,60614,0},{6155,60606,0},{6153,60613,0},{6155,60624,0},{6153,60631,0}, {6152,60626,0},{6150,60624,0},{6148,60626,0},{6148,60636,0},{6148,60638,0}, {6145,60634,0},{6155,60683,0},{6160,60701,0},{6158,60704,0},{6157,60703,0}, {6153,60688,0},{6155,60708,0},{6155,60713,0},{6153,60713,0},{6150,60679,0}, {6145,60663,0},{6147,60653,0},{6140,60629,0},{6140,60643,0},{6135,60638,0}, {6140,60646,0},{6140,60651,0},{6137,60649,0},{6138,60656,0},{6143,60671,0}, {6140,60669,0},{6138,60676,0},{6140,60679,0},{6138,60681,0},{6137,60698,0}, {6137,60703,0},{6135,60701,0},{6135,60688,0},{6130,60686,0},{6132,60693,0}, {6130,60698,0},{6128,60686,0},{6128,60678,0},{6123,60673,0},{6120,60673,0}, {6125,60679,0},{6127,60686,0},{6125,60681,0},{6122,60679,0},{6123,60684,0}, {6118,60683,0},{6118,60688,0},{6117,60689,0},{6120,60699,0},{6118,60699,0}, {6122,60706,0},{6117,60704,0},{6115,60693,0},{6113,60694,0},{6112,60704,0}, {6113,60714,0},{6117,60708,0},{6123,60711,0},{6125,60718,0},{6132,60721,0}, {6130,60724,0},{6133,60736,0},{6132,60744,0},{6130,60728,0},{6127,60724,0}, {6127,60726,0},{6123,60724,0},{6120,60714,0},{6113,60721,0},{6118,60731,0}, {6115,60731,0},{6112,60724,0},{6108,60728,0},{6110,60734,0},{6110,60739,0}, {6113,60748,0},{6118,60754,0},{6118,60759,0},{6108,60743,0},{6105,60744,0}, {6108,60751,0},{6105,60753,0},{6103,60751,0},{6105,60734,0},{6100,60721,0}, {6102,60713,0},{6100,60696,0},{6098,60699,0},{6100,60709,0},{6098,60719,0}, {6097,60721,0},{6098,60726,0},{6097,60729,0},{6098,60733,0},{6098,60739,0}, {6102,60744,0},{6100,60751,0},{6100,60768,0},{6098,60763,0},{6097,60763,0}, {6095,60748,0},{6090,60738,0},{6092,60734,0},{6087,60719,0},{6083,60713,0}, {6082,60713,0},{6082,60716,0},{6082,60729,0},{6088,60743,0},{6087,60744,0}, {6085,60741,0},{6083,60743,0},{6083,60749,0},{6082,60756,0},{6083,60759,0}, {6082,60771,0},{6083,60783,0},{6082,60791,0},{6087,60803,0},{6088,60801,0}, {6088,60788,0},{6087,60783,0},{6088,60774,0},{6085,60761,0},{6088,60763,0}, {6087,60751,0},{6092,60761,0},{6090,60763,0},{6090,60771,0},{6088,60783,0}, {6090,60786,0},{6090,60781,0},{6093,60789,0},{6093,60799,0},{6095,60806,0}, {6090,60809,0},{6090,60811,0},{6093,60819,0},{6098,60834,0},{6097,60836,0}, {6093,60828,0},{6095,60841,0},{6093,60844,0},{6087,60831,0},{6083,60833,0}, {6083,60836,0},{6087,60839,0},{6088,60851,0},{6082,60838,0},{6082,60839,0}, {6083,60846,0},{6082,60848,0},{6080,60843,0},{6080,60851,0},{6085,60864,0}, {6088,60866,0},{6093,60848,0},{6093,60858,0},{6090,60866,0},{6095,60861,0}, {6090,60871,0},{6093,60873,0},{6090,60878,0},{6098,60871,0},{6098,60876,0}, {6095,60881,0},{6098,60881,0},{6100,60878,0},{6103,60881,0},{6100,60889,0}, {6100,60894,0},{6105,60889,0},{6103,60894,0},{6103,60898,0},{6108,60896,0}, {6107,60901,0},{6105,60904,0},{6105,60909,0},{6098,60911,0},{6097,60913,0}, {6100,60923,0},{6102,60924,0},{6105,60918,0},{6108,60906,0},{6108,60918,0}, {6105,60921,0},{6105,60929,0},{6108,60944,0},{6113,60941,0},{6113,60951,0}, {6117,60951,0},{6120,60944,0},{6118,60941,0},{6122,60938,0},{6125,60924,0}, {6127,60931,0},{6123,60936,0},{6123,60943,0},{6130,60949,0},{6133,60956,0}, {6132,60964,0},{6127,60954,0},{6122,60949,0},{6118,60958,0},{6113,60959,0}, {6117,60964,0},{6115,60973,0},{6113,60974,0},{6113,60963,0},{6112,60968,0}, {6108,60958,0},{6108,60968,0},{6107,60966,0},{6105,60948,0},{6097,60926,0}, {6095,60928,0},{6093,60933,0},{6092,60929,0},{6092,60933,0},{6097,60953,0}, {6095,60956,0},{6102,60976,0},{6110,60988,0},{6117,60984,0},{6120,60986,0}, {6125,60984,0},{6120,60993,0},{6117,60991,0},{6108,60999,0},{6120,61014,0}, {6118,61016,0},{6115,61011,0},{6110,61011,0},{6105,60993,0},{6098,60988,0}, {6093,60964,0},{6093,60949,0},{6090,60938,0},{6082,60916,0},{6080,60919,0}, {6083,60931,0},{6088,60936,0},{6087,60941,0},{6090,60949,0},{6087,60949,0}, {6083,60938,0},{6080,60931,0},{6078,60916,0},{6077,60914,0},{6072,60921,0}, {6072,60931,0},{6073,60936,0},{6078,60936,0},{6083,60939,0},{6083,60943,0}, {6083,60944,0},{6085,60948,0},{6083,60961,0},{6077,60948,0},{6075,60948,0}, {6075,60954,0},{6077,60959,0},{6077,60966,0},{6088,60988,0},{6092,60988,0}, {6095,60998,0},{6100,60994,0},{6100,60998,0},{6098,61003,0},{6092,60999,0}, {6093,61008,0},{6090,61011,0},{6088,60996,0},{6080,60983,0},{6078,60974,0}, {6077,60974,0},{6077,60978,0},{6073,60966,0},{6070,60956,0},{6070,60951,0}, {6067,60963,0},{6070,60976,0},{6070,60978,0},{6058,60938,0},{6057,60946,0}, {6052,60949,0},{6057,60951,0},{6055,60954,0},{6055,60956,0},{6060,60956,0}, {6062,60958,0},{6065,60974,0},{6058,60963,0},{6057,60968,0},{6058,60974,0}, {6060,60973,0},{6060,60974,0},{6057,60978,0},{6053,60968,0},{6052,60969,0}, {6053,60976,0},{6052,60974,0},{6047,60979,0},{6053,60984,0},{6058,60984,0}, {6057,60989,0},{6062,60989,0},{6065,60999,0},{6072,60999,0},{6072,61004,0}, {6067,61006,0},{6068,61016,0},{6072,61024,0},{6067,61019,0},{6060,60999,0}, {6055,60996,0},{6050,60986,0},{6055,61008,0},{6060,61009,0},{6058,61014,0}, {6060,61016,0},{6063,61013,0},{6062,61019,0},{6065,61029,0},{6055,61014,0}, {6050,61009,0},{6048,61011,0},{6045,61008,0},{6043,61014,0},{6047,61021,0}, {6048,61034,0},{6060,61053,0},{6067,61054,0},{6070,61063,0},{6072,61064,0}, {6073,61073,0},{6072,61073,0},{6070,61066,0},{6067,61059,0},{6058,61059,0}, {6047,61041,0},{6045,61044,0},{6047,61051,0},{6037,61043,0},{6033,61041,0}, {6033,61044,0},{6025,61024,0},{6018,61016,0},{6017,61016,0},{6018,61019,0}, {6013,61016,0},{6013,61019,0},{6020,61028,0},{6018,61041,0},{6022,61048,0}, {6027,61051,0},{6028,61056,0},{6035,61061,0},{6038,61071,0},{6047,61076,0}, {6050,61084,0},{6055,61088,0},{6057,61089,0},{6052,61089,0},{6048,61086,0}, {6047,61083,0},{6045,61083,0},{6042,61076,0},{6038,61074,0},{6032,61063,0}, {6027,61063,0},{6023,61054,0},{6020,61053,0},{6022,61059,0},{6020,61059,0}, {6017,61028,0},{6013,61029,0},{6008,61019,0},{6007,61024,0},{6007,61026,0}, {6010,61024,0},{6008,61029,0},{6010,61031,0},{6010,61034,0},{6008,61041,0}, {6007,61039,0},{6005,61041,0},{6003,61039,0},{6003,61049,0},{6002,61053,0}, {6010,61043,0},{6015,61046,0},{6015,61049,0},{6015,61051,0},{6012,61048,0}, {6002,61056,0},{6000,61059,0},{6000,61064,0},{6008,61066,0},{6010,61069,0}, {6000,61069,0},{5998,61076,0},{6003,61084,0},{6015,61091,0},{6015,61104,0}, {6018,61109,0},{6020,61109,0},{6023,61104,0},{6022,61111,0},{6023,61114,0}, {6033,61109,0},{6032,61113,0},{6025,61119,0},{6028,61128,0},{6038,61126,0}, {6037,61129,0},{6032,61131,0},{6030,61136,0},{6023,61121,0},{6017,61119,0}, {6018,61123,0},{6018,61129,0},{6017,61153,0},{6017,61163,0},{6015,61169,0}, {6018,61173,0},{6013,61178,0},{6008,61209,0},{6008,61223,0},{6010,61226,0}, {6012,61228,0},{6013,61224,0},{6012,61221,0},{6013,61214,0},{6017,61216,0}, {6015,61224,0},{6017,61223,0},{6018,61224,0},{6018,61219,0},{6020,61224,0}, {6020,61223,0},{6022,61203,0},{6025,61213,0},{6023,61224,0},{6025,61228,0}, {6027,61218,0},{6028,61224,0},{6032,61226,0},{6033,61223,0},{6032,61218,0}, {6035,61208,0},{6035,61204,0},{6037,61201,0},{6035,61219,0},{6037,61221,0}, {6038,61214,0},{6040,61219,0},{6040,61213,0},{6038,61199,0},{6037,61196,0}, {6033,61201,0},{6035,61193,0},{6030,61176,0},{6037,61189,0},{6038,61188,0}, {6042,61203,0},{6043,61204,0},{6045,61203,0},{6048,61186,0},{6052,61159,0}, {6050,61156,0},{6045,61159,0},{6045,61154,0},{6047,61156,0},{6053,61151,0}, {6058,61118,0},{6060,61116,0},{6060,61121,0},{6063,61116,0},{6063,61123,0}, {6060,61124,0},{6058,61131,0},{6058,61143,0},{6055,61173,0},{6057,61174,0}, {6068,61166,0},{6072,61166,0},{6063,61171,0},{6053,61181,0},{6047,61216,0}, {6048,61221,0},{6052,61208,0},{6055,61204,0},{6053,61213,0},{6055,61216,0}, {6053,61219,0},{6050,61228,0},{6052,61233,0},{6053,61223,0},{6053,61238,0}, {6057,61244,0},{6057,61253,0},{6058,61251,0},{6058,61226,0},{6060,61221,0}, {6060,61253,0},{6063,61254,0},{6068,61261,0},{6068,61254,0},{6063,61244,0}, {6062,61246,0},{6062,61244,0},{6065,61213,0},{6067,61209,0},{6065,61241,0}, {6072,61259,0},{6075,61258,0},{6075,61244,0},{6078,61239,0},{6080,61224,0}, {6078,61216,0},{6078,61209,0},{6080,61209,0},{6082,61186,0},{6083,61183,0}, {6085,61186,0},{6082,61224,0},{6078,61244,0},{6080,61258,0},{6082,61258,0}, {6082,61251,0},{6083,61248,0},{6085,61231,0},{6085,61224,0},{6087,61226,0}, {6090,61208,0},{6090,61188,0},{6093,61188,0},{6095,61189,0},{6088,61238,0}, {6090,61239,0},{6093,61263,0},{6095,61256,0},{6100,61254,0},{6102,61258,0}, {6098,61266,0},{6098,61269,0},{6100,61269,0},{6100,61268,0},{6103,61269,0}, {6103,61259,0},{6105,61266,0},{6107,61258,0},{6105,61254,0},{6107,61251,0}, {6107,61243,0},{6105,61236,0},{6107,61238,0},{6108,61233,0},{6108,61223,0}, {6110,61219,0},{6110,61201,0},{6113,61174,0},{6113,61183,0},{6112,61206,0}, {6113,61221,0},{6110,61243,0},{6112,61248,0},{6110,61254,0},{6110,61273,0}, {6115,61266,0},{6115,61259,0},{6117,61248,0},{6122,61218,0},{6120,61239,0}, {6122,61243,0},{6120,61251,0},{6118,61254,0},{6118,61259,0},{6120,61271,0}, {6120,61278,0},{6122,61278,0},{6122,61273,0},{6125,61269,0},{6127,61264,0}, {6125,61258,0},{6125,61246,0},{6127,61248,0},{6127,61258,0},{6128,61258,0}, {6130,61246,0},{6133,61214,0},{6133,61211,0},{6135,61221,0},{6133,61239,0}, {6135,61248,0},{6130,61261,0},{6128,61269,0},{6128,61273,0},{6132,61268,0}, {6132,61278,0},{6135,61276,0},{6135,61284,0},{6140,61289,0},{6142,61296,0}, {6143,61293,0},{6143,61289,0},{6143,61283,0},{6148,61281,0},{6153,61284,0}, {6153,61249,0},{6152,61243,0},{6155,61241,0},{6160,61228,0},{6155,61273,0}, {6157,61286,0},{6155,61291,0},{6157,61293,0},{6162,61289,0},{6160,61299,0}, {6163,61291,0},{6162,61303,0},{6163,61304,0},{6165,61296,0},{6168,61296,0}, {6172,61311,0},{6172,61304,0},{6168,61294,0},{6170,61288,0},{6170,61276,0}, {6178,61258,0},{6177,61251,0},{6177,61249,0},{6182,61259,0},{6173,61278,0}, {6173,61289,0},{6175,61301,0},{6177,61306,0},{6187,61318,0},{6187,61311,0}, {6188,61313,0},{6188,61303,0},{6192,61294,0},{6192,61316,0},{6200,61324,0}, {6202,61321,0},{6202,61303,0},{6195,61288,0},{6195,61281,0},{6202,61294,0}, {6203,61284,0},{6205,61288,0},{6205,61294,0},{6207,61298,0},{6208,61296,0}, {6210,61306,0},{6215,61303,0},{6222,61311,0},{6225,61309,0},{6227,61303,0}, {6230,61309,0},{6232,61301,0},{6233,61294,0},{6233,61273,0},{6237,61273,0}, {6242,61263,0},{6247,61244,0},{6247,61239,0},{6252,61238,0},{6250,61253,0}, {6248,61258,0},{6250,61261,0},{6250,61264,0},{6247,61268,0},{6245,61276,0}, {6242,61283,0},{6242,61288,0},{6240,61289,0},{6237,61304,0},{6237,61308,0}, {6237,61311,0},{6238,61319,0},{6238,61308,0},{6240,61313,0},{6243,61311,0}, {6243,61301,0},{6242,61298,0},{6247,61281,0},{6248,61281,0},{6248,61288,0}, {6253,61281,0},{6247,61294,0},{6247,61299,0},{6248,61303,0},{6257,61299,0}, {6257,61293,0},{6263,61276,0},{6262,61268,0},{6258,61268,0},{6262,61263,0}, {6263,61263,0},{6265,61258,0},{6268,61238,0},{6268,61224,0},{6272,61224,0}, {6275,61221,0},{6277,61224,0},{6272,61233,0},{6270,61248,0},{6270,61256,0}, {6268,61266,0},{6278,61266,0},{6272,61271,0},{6268,61271,0},{6270,61279,0}, {6273,61274,0},{6277,61276,0},{6270,61288,0},{6282,61278,0},{6282,61283,0}, {6277,61288,0},{6282,61294,0},{6283,61294,0},{6283,61278,0},{6287,61276,0}, {6287,61291,0},{6292,61293,0},{6292,61296,0},{6293,61306,0},{6293,61308,0}, {6288,61299,0},{6288,61301,0},{6288,61311,0},{6285,61301,0},{6280,61304,0}, {6282,61314,0},{6278,61333,0},{6287,61334,0},{6285,61338,0},{6283,61348,0}, {6282,61351,0},{6283,61361,0},{6287,61361,0},{6287,61354,0},{6288,61359,0}, {6293,61358,0},{6292,61363,0},{6292,61371,0},{6293,61374,0},{6298,61374,0}, {6298,61368,0},{6302,61359,0},{6302,61336,0},{6305,61336,0},{6308,61328,0}, {6310,61316,0},{6313,61323,0},{6320,61319,0},{6320,61323,0},{6318,61328,0}, {6310,61333,0},{6307,61339,0},{6307,61343,0},{6310,61339,0},{6310,61346,0}, {6305,61353,0},{6303,61363,0},{6303,61366,0},{6305,61359,0},{6307,61361,0}, {6303,61369,0},{6303,61381,0},{6305,61381,0},{6312,61371,0},{6325,61334,0}, {6320,61356,0},{6313,61374,0},{6308,61381,0},{6313,61393,0},{6315,61388,0}, {6322,61389,0},{6325,61379,0},{6328,61376,0},{6332,61371,0},{6330,61359,0}, {6332,61361,0},{6333,61356,0},{6335,61356,0},{6333,61366,0},{6335,61368,0}, {6338,61361,0},{6340,61351,0},{6347,61346,0},{6352,61361,0},{6355,61361,0}, {6355,61364,0},{6343,61379,0},{6342,61394,0},{6337,61399,0},{6337,61408,0}, {6330,61424,0},{6335,61419,0},{6337,61409,0},{6343,61398,0},{6348,61378,0}, {6348,61386,0},{6353,61386,0},{6347,61393,0},{6340,61413,0},{6357,61394,0}, {6345,61416,0},{6338,61418,0},{6338,61424,0},{6340,61436,0},{6342,61434,0}, {6343,61424,0},{6345,61419,0},{6350,61414,0},{6353,61408,0},{6357,61408,0}, {6353,61416,0},{6347,61424,0},{6345,61429,0},{6345,61436,0},{6350,61431,0}, {6352,61423,0},{6350,61431,0},{6352,61436,0},{6355,61434,0},{6352,61441,0}, {6353,61443,0},{6350,61449,0},{6353,61451,0},{6350,61454,0},{6352,61461,0}, {6358,61463,0},{6358,61458,0},{6357,61454,0},{6358,61448,0},{6360,61451,0}, {6365,61446,0},{6368,61426,0},{6370,61413,0},{6377,61393,0},{6377,61384,0}, {6375,61379,0},{6377,61374,0},{6378,61373,0},{6382,61384,0},{6387,61388,0}, {6385,61393,0},{6378,61401,0},{6370,61441,0},{6367,61464,0},{6370,61468,0}, {6370,61473,0},{6368,61473,0},{6368,61481,0},{6370,61484,0},{6375,61483,0}, {6375,61478,0},{6378,61478,0},{6380,61474,0},{6383,61479,0},{6387,61476,0}, {6392,61474,0},{6393,61469,0},{6393,61456,0},{6395,61453,0},{6397,61463,0}, {6398,61464,0},{6397,61469,0},{6397,61476,0},{6400,61471,0},{6407,61483,0}, {6412,61479,0},{6413,61469,0},{6415,61466,0},{6417,61448,0},{6415,61439,0}, {6410,61443,0},{6408,61438,0},{6413,61431,0},{6417,61398,0},{6422,61391,0}, {6425,61391,0},{6425,61388,0},{6425,61383,0},{6427,61379,0},{6432,61384,0}, {6435,61403,0},{6432,61403,0},{6433,61411,0},{6430,61428,0},{6433,61443,0}, {6438,61456,0},{6437,61459,0},{6438,61464,0},{6437,61469,0},{6438,61471,0}, {6438,61474,0},{6437,61474,0},{6435,61483,0},{6432,61483,0},{6435,61489,0}, {6433,61494,0},{6435,61499,0},{6440,61498,0},{6447,61473,0},{6450,61479,0}, {6468,61476,0},{6468,61468,0},{6473,61466,0},{6477,61453,0},{6482,61446,0}, {6482,61438,0},{6483,61438,0},{6483,61444,0},{6485,61448,0},{6485,61438,0}, {6488,61429,0},{6495,61421,0},{6498,61423,0},{6495,61436,0},{6497,61438,0}, {6505,61431,0},{6508,61423,0},{6512,61424,0},{6513,61428,0},{6508,61434,0}, {6508,61444,0},{6505,61451,0},{6510,61449,0},{6508,61458,0},{6502,61466,0}, {6513,61469,0},{6515,61474,0},{6512,61476,0},{6503,61494,0},{6503,61499,0}, {6508,61494,0},{6508,61498,0},{6500,61509,0},{6503,61513,0},{6502,61521,0}, {6507,61519,0},{6508,61521,0},{6508,61541,0},{6510,61539,0},{6510,61531,0}, {6513,61529,0},{6513,61524,0},{6517,61524,0},{6517,61528,0},{6515,61534,0}, {6515,61541,0},{6517,61544,0},{6518,61533,0},{6518,61543,0},{6525,61544,0}, {6523,61549,0},{6525,61561,0},{6530,61553,0},{6527,61553,0},{6527,61548,0}, {6532,61549,0},{6535,61541,0},{6537,61548,0},{6542,61548,0},{6540,61554,0}, {6540,61558,0},{6542,61556,0},{6542,61551,0},{6545,61546,0},{6543,61538,0}, {6545,61524,0},{6548,61516,0},{6550,61514,0},{6552,61523,0},{6548,61531,0}, {6555,61524,0},{6557,61528,0},{6558,61533,0},{6555,61538,0},{6550,61554,0}, {6555,61554,0},{6553,61563,0},{6553,61566,0},{6557,61563,0},{6558,61553,0}, {6558,61561,0},{6562,61558,0},{6563,61563,0},{6562,61573,0},{6565,61564,0}, {6568,61569,0},{6565,61578,0},{6567,61584,0},{6562,61581,0},{6560,61586,0}, {6555,61589,0},{6553,61594,0},{6555,61599,0},{6558,61598,0},{6563,61601,0}, {6553,61603,0},{6562,61606,0},{6558,61611,0},{6557,61614,0},{6560,61616,0}, {6568,61608,0},{6570,61599,0},{6575,61601,0},{6570,61604,0},{6570,61613,0}, {6565,61623,0},{6555,61629,0},{6558,61641,0},{6557,61639,0},{6557,61646,0}, {6562,61653,0},{6558,61659,0},{6558,61671,0},{6557,61674,0},{6563,61673,0}, {6563,61664,0},{6567,61658,0},{6568,61658,0},{6570,61661,0},{6565,61669,0}, {6567,61673,0},{6568,61671,0},{6568,61676,0},{6563,61676,0},{6563,61679,0}, {6570,61683,0},{6567,61686,0},{6568,61691,0},{6567,61691,0},{6565,61686,0}, {6558,61686,0},{6562,61693,0},{6567,61694,0},{6565,61696,0},{6565,61703,0}, {6563,61713,0},{6567,61716,0},{6570,61711,0},{6568,61718,0},{6573,61721,0}, {6577,61718,0},{6577,61724,0},{6580,61726,0},{6583,61719,0},{6583,61708,0}, {6585,61708,0},{6592,61691,0},{6602,61688,0},{6602,61691,0},{6602,61696,0}, {6597,61703,0},{6593,61701,0},{6590,61708,0},{6590,61721,0},{6593,61721,0}, {6595,61716,0},{6597,61718,0},{6597,61723,0},{6595,61724,0},{6597,61729,0}, {6592,61729,0},{6593,61736,0},{6597,61739,0},{6603,61736,0},{6605,61741,0}, {6608,61741,0},{6608,61728,0},{6610,61724,0},{6612,61726,0},{6610,61729,0}, {6612,61738,0},{6615,61743,0},{6617,61749,0},{6620,61751,0},{6620,61746,0}, {6623,61736,0},{6625,61741,0},{6623,61744,0},{6625,61756,0},{6622,61754,0}, {6622,61758,0},{6627,61766,0},{6630,61758,0},{6633,61723,0},{6635,61721,0}, {6638,61726,0},{6638,61739,0},{6637,61743,0},{6637,61749,0},{6645,61751,0}, {6638,61754,0},{6632,61776,0},{6632,61781,0},{6635,61788,0},{6632,61796,0}, {6633,61818,0},{6632,61818,0},{6628,61806,0},{6617,61781,0},{6612,61781,0}, {6610,61773,0},{6607,61771,0},{6607,61763,0},{6605,61756,0},{6600,61756,0}, {6597,61763,0},{6588,61751,0},{6588,61754,0},{6592,61759,0},{6592,61764,0}, {6593,61768,0},{6583,61796,0},{6577,61816,0},{6578,61819,0},{6582,61809,0}, {6583,61811,0},{6580,61821,0},{6582,61824,0},{6585,61828,0},{6590,61813,0}, {6590,61824,0},{6595,61819,0},{6597,61823,0},{6600,61819,0},{6602,61821,0}, {6598,61826,0},{6602,61826,0},{6607,61828,0},{6605,61833,0},{6593,61826,0}, {6588,61834,0},{6585,61833,0},{6583,61838,0},{6588,61851,0},{6592,61853,0}, {6592,61849,0},{6592,61846,0},{6593,61846,0},{6593,61861,0},{6598,61884,0}, {6605,61888,0},{6605,61879,0},{6607,61879,0},{6608,61883,0},{6607,61893,0}, {6608,61898,0},{6608,61901,0},{6602,61896,0},{6592,61899,0},{6592,61903,0}, {6597,61904,0},{6598,61901,0},{6598,61906,0},{6600,61909,0},{6595,61909,0}, {6597,61916,0},{6593,61914,0},{6593,61918,0},{6595,61923,0},{6593,61924,0}, {6593,61929,0},{6597,61933,0},{6602,61946,0},{6603,61944,0},{6605,61949,0}, {6607,61943,0},{6607,61948,0},{6608,61944,0},{6607,61954,0},{6608,61964,0}, {6612,61951,0},{6610,61943,0},{6612,61943,0},{6615,61949,0},{6613,61954,0}, {6385,63399,128},{6382,63373,0},{6387,63363,0},{6387,63356,0},{6385,63351,0}, {6383,63336,0},{6383,63318,0},{6387,63303,0},{6383,63296,0},{6385,63293,0}, {6382,63284,0},{6382,63271,0},{6380,63268,0},{6383,63264,0},{6387,63266,0}, {6388,63263,0},{6393,63268,0},{6395,63273,0},{6395,63266,0},{6398,63263,0}, {6408,63266,0},{6408,63269,0},{6405,63278,0},{6398,63281,0},{6397,63296,0}, {6402,63299,0},{6403,63311,0},{6402,63316,0},{6405,63326,0},{6405,63334,0}, {6408,63339,0},{6410,63331,0},{6412,63336,0},{6412,63339,0},{6410,63338,0}, {6410,63344,0},{6412,63343,0},{6412,63344,0},{6415,63333,0},{6415,63349,0}, {6413,63354,0},{6413,63358,0},{6413,63354,0},{6415,63356,0},{6417,63354,0}, {6418,63366,0},{6418,63359,0},{6422,63364,0},{6422,63354,0},{6423,63354,0}, {6423,63343,0},{6435,63361,0},{6435,63371,0},{6435,63368,0},{6438,63378,0}, {6437,63379,0},{6435,63389,0},{6438,63399,0},{6437,63391,0},{6437,63388,0}, {6440,63391,0},{6440,63373,0},{6438,63363,0},{6433,63356,0},{6430,63341,0}, {6432,63326,0},{6435,63336,0},{6437,63338,0},{6437,63348,0},{6438,63349,0}, {6440,63333,0},{6450,63338,0},{6453,63348,0},{6453,63358,0},{6455,63354,0}, {6460,63366,0},{6460,63371,0},{6458,63371,0},{6458,63376,0},{6457,63378,0}, {6457,63386,0},{6460,63374,0},{6462,63378,0},{6462,63368,0},{6465,63374,0}, {6465,63386,0},{6465,63376,0},{6465,63373,0},{6463,63366,0},{6465,63369,0}, {6465,63366,0},{6458,63359,0},{6458,63353,0},{6457,63351,0},{6455,63341,0}, {6452,63336,0},{6453,63333,0},{6457,63333,0},{6447,63328,0},{6445,63319,0}, {6450,63314,0},{6448,63311,0},{6452,63314,0},{6455,63314,0},{6455,63309,0}, {6457,63311,0},{6455,63303,0},{6457,63301,0},{6462,63301,0},{6467,63293,0}, {6463,63299,0},{6465,63303,0},{6467,63301,0},{6468,63303,0},{6473,63318,0}, {6467,63296,0},{6468,63294,0},{6472,63301,0},{6475,63304,0},{6477,63293,0}, {6482,63294,0},{6480,63293,0},{6480,63289,0},{6480,63283,0},{6478,63278,0}, {6477,63279,0},{6477,63271,0},{6477,63268,0},{6478,63273,0},{6480,63268,0}, {6480,63258,0},{6477,63264,0},{6480,63249,0},{6480,63219,0},{6483,63208,0}, {6482,63198,0},{6478,63191,0},{6480,63179,0},{6482,63183,0},{6482,63179,0}, {6478,63173,0},{6475,63173,0},{6473,63169,0},{6473,63153,0},{6473,63148,0}, {6475,63141,0},{6487,63131,0},{6488,63129,0},{6488,63136,0},{6492,63139,0}, {6492,63154,0},{6488,63169,0},{6492,63181,0},{6495,63186,0},{6495,63198,0}, {6497,63196,0},{6497,63201,0},{6493,63203,0},{6492,63211,0},{6495,63214,0}, {6498,63213,0},{6502,63218,0},{6500,63228,0},{6495,63219,0},{6492,63224,0}, {6497,63224,0},{6497,63229,0},{6500,63233,0},{6500,63239,0},{6498,63241,0}, {6502,63253,0},{6503,63258,0},{6503,63249,0},{6508,63264,0},{6505,63266,0}, {6502,63261,0},{6502,63268,0},{6500,63269,0},{6497,63278,0},{6500,63274,0}, {6502,63274,0},{6505,63283,0},{6507,63301,0},{6505,63308,0},{6503,63321,0}, {6503,63324,0},{6503,63341,0},{6503,63356,0},{6505,63358,0},{6507,63351,0}, {6515,63363,0},{6520,63361,0},{6520,63354,0},{6515,63349,0},{6510,63329,0}, {6512,63311,0},{6517,63296,0},{6515,63289,0},{6515,63281,0},{6517,63279,0}, {6518,63291,0},{6518,63281,0},{6523,63286,0},{6523,63294,0},{6527,63294,0}, {6527,63299,0},{6530,63303,0},{6533,63319,0},{6540,63338,0},{6538,63343,0}, {6540,63341,0},{6542,63344,0},{6543,63358,0},{6545,63366,0},{6543,63354,0}, {6545,63349,0},{6543,63339,0},{6545,63341,0},{6547,63343,0},{6550,63336,0}, {6550,63333,0},{6548,63331,0},{6550,63328,0},{6552,63326,0},{6548,63324,0}, {6543,63316,0},{6545,63306,0},{6548,63298,0},{6550,63298,0},{6552,63316,0}, {6560,63326,0},{6553,63311,0},{6553,63301,0},{6557,63306,0},{6553,63299,0}, {6555,63294,0},{6552,63296,0},{6550,63289,0},{6552,63286,0},{6557,63286,0}, {6563,63281,0},{6557,63283,0},{6555,63281,0},{6553,63278,0},{6555,63276,0}, {6557,63274,0},{6555,63273,0},{6552,63271,0},{6553,63268,0},{6557,63264,0}, {6563,63268,0},{6562,63264,0},{6563,63259,0},{6550,63263,0},{6550,63258,0}, {6553,63256,0},{6553,63248,0},{6560,63256,0},{6562,63251,0},{6558,63249,0}, {6557,63244,0},{6560,63241,0},{6555,63239,0},{6553,63234,0},{6555,63221,0}, {6558,63221,0},{6558,63218,0},{6553,63216,0},{6552,63218,0},{6548,63213,0}, {6550,63199,0},{6552,63196,0},{6550,63196,0},{6547,63186,0},{6547,63171,0}, {6542,63164,0},{6540,63149,0},{6542,63138,0},{6545,63136,0},{6545,63139,0}, {6547,63139,0},{6547,63133,0},{6550,63116,0},{6548,63089,0},{6550,63083,0}, {6553,63089,0},{6557,63098,0},{6560,63099,0},{6563,63104,0},{6560,63121,0}, {6552,63146,0},{6553,63156,0},{6553,63148,0},{6563,63129,0},{6565,63129,0}, {6565,63139,0},{6560,63156,0},{6570,63129,0},{6578,63123,0},{6580,63126,0}, {6570,63174,0},{6567,63181,0},{6560,63179,0},{6563,63186,0},{6563,63196,0}, {6565,63196,0},{6567,63208,0},{6567,63191,0},{6570,63184,0},{6572,63183,0}, {6573,63189,0},{6573,63201,0},{6575,63203,0},{6573,63213,0},{6575,63211,0}, {6578,63216,0},{6575,63184,0},{6577,63163,0},{6587,63149,0},{6592,63154,0}, {6590,63173,0},{6587,63176,0},{6588,63186,0},{6587,63189,0},{6583,63214,0}, {6590,63178,0},{6602,63154,0},{6605,63156,0},{6607,63159,0},{6602,63193,0}, {6598,63198,0},{6600,63196,0},{6603,63193,0},{6605,63183,0},{6612,63169,0}, {6613,63181,0},{6612,63191,0},{6610,63196,0},{6613,63189,0},{6615,63176,0}, {6618,63183,0},{6618,63188,0},{6620,63189,0},{6618,63201,0},{6615,63219,0}, {6612,63224,0},{6608,63226,0},{6610,63233,0},{6608,63238,0},{6603,63238,0}, {6597,63229,0},{6605,63243,0},{6600,63246,0},{6602,63249,0},{6602,63251,0}, {6593,63243,0},{6595,63249,0},{6600,63253,0},{6597,63256,0},{6592,63254,0}, {6605,63259,0},{6605,63268,0},{6603,63269,0},{6597,63279,0},{6583,63271,0}, {6597,63284,0},{6593,63288,0},{6593,63291,0},{6590,63291,0},{6592,63294,0}, {6583,63289,0},{6583,63293,0},{6590,63296,0},{6590,63301,0},{6598,63294,0}, {6603,63288,0},{6607,63289,0},{6608,63298,0},{6608,63288,0},{6608,63279,0}, {6612,63276,0},{6615,63253,0},{6623,63238,0},{6627,63256,0},{6625,63268,0}, {6625,63276,0},{6622,63278,0},{6623,63281,0},{6625,63281,0},{6627,63296,0}, {6627,63299,0},{6627,63286,0},{6627,63279,0},{6632,63289,0},{6633,63286,0}, {6632,63286,0},{6628,63276,0},{6630,63266,0},{6635,63269,0},{6637,63274,0}, {6637,63268,0},{6632,63254,0},{6633,63253,0},{6637,63256,0},{6630,63243,0}, {6632,63229,0},{6635,63218,0},{6637,63233,0},{6638,63234,0},{6642,63224,0}, {6643,63224,0},{6642,63234,0},{6643,63234,0},{6643,63246,0},{6642,63249,0}, {6643,63249,0},{6647,63241,0},{6647,63244,0},{6643,63263,0},{6642,63268,0}, {6647,63276,0},{6647,63281,0},{6642,63289,0},{6643,63294,0},{6647,63291,0}, {6643,63298,0},{6640,63301,0},{6638,63309,0},{6633,63311,0},{6633,63316,0}, {6632,63313,0},{6630,63314,0},{6627,63313,0},{6627,63324,0},{6628,63326,0}, {6627,63328,0},{6627,63339,0},{6623,63344,0},{6620,63338,0},{6622,63343,0}, {6618,63349,0},{6618,63361,0},{6607,63364,0},{6607,63371,0},{6605,63373,0}, {6602,63369,0},{6605,63374,0},{6608,63373,0},{6610,63381,0},{6605,63384,0}, {6605,63381,0},{6602,63383,0},{6602,63403,0},{6598,63404,0},{6595,63376,0}, {6593,63378,0},{6597,63389,0},{6595,63398,0},{6593,63393,0},{6592,63408,0}, {6588,63408,0},{6587,63404,0},{6587,63408,0},{6583,63406,0},{6578,63401,0}, {6577,63388,0},{6577,63396,0},{6573,63403,0},{6568,63391,0},{6568,63378,0}, {6577,63369,0},{6577,63364,0},{6577,63358,0},{6575,63366,0},{6572,63369,0}, {6568,63368,0},{6565,63371,0},{6563,63378,0},{6563,63396,0},{6555,63388,0}, {6558,63398,0},{6560,63404,0},{6552,63406,0},{6543,63388,0},{6548,63406,0}, {6543,63416,0},{6530,63416,0},{6517,63428,0},{6518,63429,0},{6527,63424,0}, {6533,63429,0},{6545,63426,0},{6545,63431,0},{6535,63439,0},{6533,63444,0}, {6545,63438,0},{6552,63438,0},{6558,63443,0},{6567,63463,0},{6568,63468,0}, {6567,63474,0},{6555,63471,0},{6555,63474,0},{6558,63474,0},{6558,63479,0}, {6553,63478,0},{6548,63486,0},{6550,63491,0},{6555,63493,0},{6557,63484,0}, {6560,63494,0},{6557,63496,0},{6552,63496,0},{6557,63498,0},{6565,63504,0}, {6567,63509,0},{6568,63504,0},{6572,63509,0},{6577,63509,0},{6582,63503,0}, {6585,63506,0},{6593,63496,0},{6602,63494,0},{6602,63491,0},{6608,63494,0}, {6610,63511,0},{6613,63518,0},{6612,63524,0},{6612,63526,0},{6608,63529,0}, {6608,63533,0},{6590,63549,0},{6588,63561,0},{6587,63566,0},{6575,63573,0}, {6573,63579,0},{6575,63581,0},{6577,63583,0},{6575,63586,0},{6575,63593,0}, {6573,63589,0},{6573,63594,0},{6583,63598,0},{6592,63591,0},{6595,63584,0}, {6598,63588,0},{6600,63594,0},{6607,63591,0},{6608,63598,0},{6608,63613,0}, {6607,63619,0},{6610,63623,0},{6607,63631,0},{6610,63626,0},{6617,63629,0}, {6618,63643,0},{6618,63644,0},{6615,63644,0},{6617,63648,0},{6620,63651,0}, {6618,63658,0},{6613,63656,0},{6617,63666,0},{6613,63673,0},{6612,63674,0}, {6608,63669,0},{6610,63676,0},{6608,63681,0},{6607,63681,0},{6602,63684,0}, {6597,63683,0},{6595,63703,0},{6587,63709,0},{6587,63716,0},{6573,63718,0}, {6570,63726,0},{6565,63729,0},{6567,63731,0},{6573,63724,0},{6585,63729,0}, {6592,63721,0},{6592,63719,0},{6593,63714,0},{6597,63714,0},{6602,63706,0}, {6615,63703,0},{6617,63706,0},{6617,63726,0},{6615,63728,0},{6615,63746,0}, {6612,63748,0},{6612,63754,0},{6603,63768,0},{6602,63768,0},{6592,63781,0}, {6597,63779,0},{6598,63786,0},{6598,63774,0},{6600,63793,0},{6598,63793,0}, {6595,63794,0},{6598,63794,0},{6605,63801,0},{6610,63801,0},{6613,63809,0}, {6617,63809,0},{6618,63813,0},{6620,63821,0},{6622,63821,0},{6620,63833,0}, {6618,63839,0},{6612,63843,0},{6612,63846,0},{6613,63846,0},{6615,63864,0}, {6613,63858,0},{6612,63861,0},{6613,63864,0},{6608,63876,0},{6617,63868,0}, {6620,63886,0},{6617,63873,0},{6618,63884,0},{6617,63888,0},{6613,63893,0}, {6617,63891,0},{6618,63888,0},{6627,63894,0},{6637,63884,0},{6642,63886,0}, {6647,63878,0},{6650,63879,0},{6650,63883,0},{6648,63884,0},{6650,63886,0}, {6652,63888,0},{6652,63893,0},{6648,63894,0},{6652,63898,0},{6648,63906,0}, {6648,63904,0},{6648,63911,0},{6652,63913,0},{6650,63914,0},{6653,63919,0}, {6652,63928,0},{6653,63934,0},{6648,63946,0},{6648,63943,0},{6642,63943,0}, {6642,63953,0},{6640,63953,0},{6640,63964,0},{6633,63968,0},{6628,63959,0}, {6627,63959,0},{6627,63968,0},{6622,63968,0},{6622,63983,0},{6615,63998,0}, {6618,64003,0},{6625,64003,0},{6628,64026,0},{6630,64026,0},{6633,64034,0}, {6638,64041,0},{6638,64048,0},{6637,64063,0},{6638,64081,0},{6627,64036,0}, {6622,64043,0},{6618,64041,0},{6615,64034,0},{6613,64021,0},{6612,64018,0}, {6610,64021,0},{6610,64029,0},{6607,64031,0},{6605,64028,0},{6605,64043,0}, {6603,64048,0},{6607,64058,0},{6607,64064,0},{6605,64069,0},{6600,64071,0}, {6600,64074,0},{6595,64076,0},{6588,64071,0},{6583,64056,0},{6580,64054,0}, {6575,64048,0},{6578,64058,0},{6575,64054,0},{6573,64051,0},{6572,64054,0}, {6578,64101,0},{6575,64101,0},{6572,64096,0},{6567,64109,0},{6565,64101,0}, {6553,64083,0},{6550,64079,0},{6565,64106,0},{6563,64118,0},{6565,64111,0}, {6560,64136,0},{6562,64149,0},{6558,64151,0},{6557,64149,0},{6557,64154,0}, {6552,64154,0},{6555,64166,0},{6552,64173,0},{6550,64176,0},{6547,64173,0}, {6537,64168,0},{6537,64153,0},{6533,64163,0},{6532,64163,0},{6532,64151,0}, {6527,64136,0},{6530,64166,0},{6530,64173,0},{6527,64179,0},{6522,64173,0}, {6522,64166,0},{6520,64133,0},{6520,64174,0},{6515,64173,0},{6513,64161,0}, {6513,64171,0},{6512,64168,0},{6512,64173,0},{6510,64174,0},{6517,64183,0}, {6517,64184,0},{6513,64184,0},{6507,64186,0},{6503,64181,0},{6503,64176,0}, {6500,64178,0},{6498,64169,0},{6498,64156,0},{6503,64151,0},{6508,64133,0}, {6503,64136,0},{6503,64113,0},{6502,64116,0},{6502,64144,0},{6497,64149,0}, {6495,64156,0},{6493,64166,0},{6492,64166,0},{6493,64131,0},{6492,64133,0}, {6490,64151,0},{6487,64159,0},{6482,64153,0},{6483,64139,0},{6480,64153,0}, {6478,64133,0},{6473,64138,0},{6472,64128,0},{6468,64111,0},{6470,64103,0}, {6478,64094,0},{6480,64084,0},{6478,64091,0},{6475,64089,0},{6473,64098,0}, {6468,64103,0},{6467,64109,0},{6465,64106,0},{6467,64098,0},{6467,64088,0}, {6463,64089,0},{6463,64096,0},{6460,64094,0},{6458,64078,0},{6457,64079,0}, {6455,64086,0},{6460,64101,0},{6460,64103,0},{6453,64089,0},{6440,64081,0}, {6438,64061,0},{6442,64079,0},{6443,64071,0},{6443,64064,0},{6440,64064,0}, {6432,64046,0},{6435,64046,0},{6430,64041,0},{6430,64048,0},{6428,64048,0}, {6425,64039,0},{6427,64034,0},{6430,64026,0},{6427,64014,0},{6430,64016,0}, {6428,64013,0},{6430,64011,0},{6433,64008,0},{6430,64008,0},{6430,64004,0}, {6435,64001,0},{6438,63996,0},{6440,63989,0},{6438,63996,0},{6435,63998,0}, {6433,63999,0},{6433,63996,0},{6432,63999,0},{6428,63998,0},{6427,63993,0}, {6427,63986,0},{6425,63993,0},{6423,63986,0},{6422,63968,0},{6418,63956,0}, {6420,63964,0},{6418,63964,0},{6413,63934,0},{6413,63933,0},{6412,63938,0}, {6405,63921,0},{6407,63919,0},{6405,63916,0},{6403,63918,0},{6402,63911,0}, {6403,63909,0},{6400,63901,0},{6398,63901,0},{6400,63906,0},{6390,63888,0}, {6390,63886,0},{6392,63889,0},{6387,63874,0},{6385,63864,0},{6387,63858,0}, {6385,63861,0},{6383,63858,0},{6380,63856,0},{6383,63856,0},{6387,63848,0}, {6380,63846,0},{6387,63843,0},{6378,63843,0},{6378,63839,0},{6380,63839,0}, {6388,63843,0},{6392,63839,0},{6387,63839,0},{6385,63833,0},{6378,63836,0}, {6378,63823,0},{6380,63819,0},{6380,63816,0},{6382,63816,0},{6378,63808,0}, {6375,63781,0},{6378,63781,0},{6375,63779,0},{6375,63776,0},{6373,63778,0}, {6370,63764,0},{6372,63764,0},{6375,63774,0},{6377,63764,0},{6375,63764,0}, {6375,63754,0},{6373,63756,0},{6373,63749,0},{6368,63746,0},{6367,63739,0}, {6365,63741,0},{6367,63748,0},{6365,63751,0},{6367,63756,0},{6363,63753,0}, {6362,63739,0},{6360,63741,0},{6360,63751,0},{6353,63743,0},{6347,63716,0}, {6347,63714,0},{6350,63714,0},{6353,63724,0},{6352,63716,0},{6353,63708,0}, {6355,63704,0},{6345,63709,0},{6347,63719,0},{6343,63693,0},{6338,63663,0}, {6342,63638,0},{6342,63629,0},{6343,63624,0},{6342,63621,0},{6343,63611,0}, {6347,63598,0},{6353,63563,0},{6355,63564,0},{6353,63559,0},{6355,63549,0}, {6353,63559,0},{6353,63531,0},{6355,63528,0},{6353,63529,0},{6353,63519,0}, {6360,63501,0},{6360,63506,0},{6362,63503,0},{6363,63503,0},{6362,63499,0}, {6362,63496,0},{6363,63499,0},{6367,63491,0},{6370,63489,0},{6370,63486,0}, {6363,63493,0},{6370,63481,0},{6375,63481,0},{6377,63488,0},{6373,63504,0}, {6378,63491,0},{6382,63496,0},{6383,63494,0},{6380,63491,0},{6375,63479,0}, {6370,63479,0},{6377,63459,0},{6375,63471,0},{6377,63476,0},{6377,63473,0}, {6378,63473,0},{6377,63468,0},{6378,63464,0},{6382,63469,0},{6387,63466,0}, {6387,63464,0},{6383,63468,0},{6380,63461,0},{6380,63453,0},{6378,63454,0}, {6382,63446,0},{6383,63429,0},{6387,63419,0},{6393,63418,0},{6395,63431,0}, {6395,63418,0},{6393,63409,0},{6392,63406,0},{6388,63416,0},{6388,63403,0}, {6387,63399,0},{6385,63399,0},{5305,55693,130},{5300,55683,2},{5297,55663,2}, {5293,55649,2},{5290,55644,2},{5287,55646,2},{5278,55654,2},{5275,55653,2}, {5268,55658,2},{5267,55663,2},{5263,55664,2},{5262,55671,2},{5257,55674,2}, {5250,55689,2},{5242,55689,2},{5237,55694,2},{5232,55703,2},{5230,55714,2}, {5228,55718,2},{5218,55723,2},{5213,55723,2},{5210,55731,2},{5197,55731,2}, {5193,55738,2},{5193,55744,2},{5190,55743,2},{5188,55746,2},{5185,55759,2}, {5188,55759,2},{5192,55754,2},{5197,55758,2},{5208,55764,2},{5208,55759,2}, {5212,55759,2},{5215,55768,2},{5210,55769,2},{5210,55771,2},{5213,55781,2}, {5213,55788,2},{5207,55784,2},{5200,55774,2},{5197,55779,2},{5192,55778,2}, {5192,55783,2},{5200,55784,2},{5203,55794,2},{5203,55803,2},{5195,55806,2}, {5185,55813,2},{5180,55814,2},{5162,55806,2},{5153,55809,2},{5147,55808,2}, {5143,55811,2},{5145,55816,2},{5152,55824,2},{5158,55823,2},{5163,55828,2}, {5167,55828,2},{5167,55836,2},{5172,55846,2},{5173,55851,2},{5173,55854,2}, {5168,55853,2},{5167,55859,2},{5160,55856,2},{5160,55864,2},{5155,55863,2}, {5145,55854,2},{5143,55854,2},{5142,55849,2},{5135,55844,2},{5132,55846,2}, {5127,55838,2},{5118,55838,2},{5118,55841,2},{5122,55848,2},{5132,55859,2}, {5135,55859,2},{5137,55864,2},{5133,55866,2},{5135,55871,2},{5133,55876,2}, {5125,55868,2},{5123,55861,2},{5117,55853,2},{5110,55853,2},{5108,55844,2}, {5105,55841,2},{5098,55846,2},{5088,55838,2},{5082,55843,2},{5078,55839,2}, {5070,55838,2},{5063,55839,2},{5060,55843,2},{5057,55839,2},{5042,55844,2}, {5038,55859,2},{5042,55874,2},{5047,55881,2},{5055,55874,2},{5058,55878,2}, {5065,55876,2},{5067,55881,2},{5070,55879,2},{5073,55883,2},{5072,55884,2}, {5067,55886,2},{5063,55894,2},{5062,55906,2},{5067,55901,2},{5072,55898,2}, {5075,55901,2},{5102,55898,2},{5108,55894,2},{5112,55896,2},{5112,55904,2}, {5117,55901,2},{5120,55903,2},{5120,55909,2},{5122,55911,2},{5133,55899,2}, {5133,55894,2},{5138,55891,2},{5138,55888,2},{5150,55878,2},{5155,55881,2}, {5175,55858,2},{5178,55868,2},{5182,55866,2},{5185,55858,2},{5187,55851,2}, {5187,55849,2},{5193,55854,2},{5197,55853,2},{5202,55849,2},{5207,55839,2}, {5210,55839,2},{5215,55834,2},{5218,55833,2},{5223,55828,2},{5223,55834,2}, {5227,55836,2},{5232,55833,2},{5233,55829,2},{5235,55834,2},{5238,55831,2}, {5242,55833,2},{5243,55829,2},{5243,55826,2},{5248,55826,2},{5263,55816,2}, {5268,55816,2},{5277,55804,2},{5287,55796,2},{5290,55798,2},{5295,55793,2}, {5297,55793,2},{5295,55798,2},{5298,55798,2},{5302,55803,2},{5305,55794,2}, {5312,55794,2},{5315,55791,2},{5317,55794,2},{5327,55779,2},{5330,55778,2}, {5337,55776,2},{5342,55768,2},{5347,55769,2},{5355,55763,2},{5362,55753,2}, {5365,55754,2},{5372,55754,2},{5377,55748,2},{5383,55746,2},{5385,55741,2}, {5390,55743,2},{5392,55739,2},{5397,55738,2},{5398,55743,2},{5400,55758,2}, {5403,55763,2},{5408,55763,2},{5402,55753,2},{5403,55746,2},{5402,55741,2}, {5398,55733,2},{5397,55731,2},{5393,55733,2},{5392,55728,2},{5392,55726,2}, {5397,55723,2},{5400,55713,2},{5403,55716,2},{5405,55721,2},{5408,55718,2}, {5418,55721,2},{5420,55729,2},{5420,55736,2},{5423,55741,2},{5425,55749,2}, {5432,55756,2},{5432,55751,2},{5430,55744,2},{5432,55738,2},{5435,55746,2}, {5440,55739,2},{5442,55734,2},{5440,55733,2},{5435,55733,2},{5430,55726,2}, {5425,55721,2},{5422,55721,2},{5418,55714,2},{5408,55713,2},{5405,55708,2}, {5398,55704,2},{5397,55709,2},{5390,55711,2},{5387,55719,2},{5385,55726,2}, {5378,55733,2},{5373,55748,2},{5370,55746,2},{5368,55739,2},{5370,55734,2}, {5377,55729,2},{5383,55711,2},{5387,55693,2},{5383,55668,2},{5388,55664,2}, {5390,55658,2},{5388,55651,2},{5387,55641,2},{5385,55639,2},{5382,55641,2}, {5377,55636,2},{5370,55639,2},{5360,55631,2},{5358,55634,2},{5348,55628,2}, {5347,55629,2},{5343,55628,2},{5338,55618,2},{5328,55614,2},{5327,55616,2}, {5323,55613,2},{5318,55611,2},{5318,55616,2},{5313,55623,2},{5312,55628,2}, {5310,55629,2},{5307,55629,2},{5303,55634,2},{5307,55643,2},{5303,55651,2}, {5303,55654,2},{5308,55656,2},{5308,55658,2},{5307,55668,2},{5305,55683,2}, {5305,55689,2},{5305,55693,2},{5303,55691,2},{5425,55523,130},{5422,55526,2}, {5420,55536,2},{5417,55536,2},{5417,55541,2},{5418,55541,2},{5420,55544,2}, {5420,55553,2},{5418,55556,2},{5412,55538,2},{5410,55526,2},{5405,55519,2}, {5407,55516,2},{5405,55514,2},{5403,55511,2},{5400,55511,2},{5398,55516,2}, {5400,55523,2},{5398,55524,2},{5397,55523,2},{5395,55531,2},{5395,55533,2}, {5392,55529,2},{5390,55524,2},{5387,55518,2},{5380,55524,2},{5380,55528,2}, {5383,55528,2},{5387,55533,2},{5387,55541,2},{5392,55549,2},{5392,55556,2}, {5402,55563,2},{5405,55571,2},{5405,55576,2},{5402,55574,2},{5400,55578,2}, {5395,55573,2},{5393,55566,2},{5387,55564,2},{5385,55566,2},{5378,55563,2}, {5378,55556,2},{5385,55549,2},{5382,55543,2},{5378,55543,2},{5377,55546,2}, {5373,55543,2},{5375,55538,2},{5373,55534,2},{5370,55534,2},{5367,55523,2}, {5368,55516,2},{5365,55518,2},{5363,55511,2},{5362,55509,2},{5358,55516,2}, {5358,55518,2},{5362,55518,2},{5362,55519,2},{5357,55529,2},{5355,55531,2}, {5355,55534,2},{5350,55539,2},{5343,55539,2},{5342,55548,2},{5335,55544,2}, {5335,55538,2},{5333,55538,2},{5332,55544,2},{5327,55543,2},{5322,55551,2}, {5325,55559,2},{5330,55559,2},{5332,55561,2},{5330,55568,2},{5330,55583,2}, {5332,55586,2},{5337,55593,2},{5335,55599,2},{5320,55594,2},{5318,55599,2}, {5315,55603,2},{5315,55594,2},{5313,55591,2},{5310,55594,2},{5305,55598,2}, {5303,55583,2},{5305,55581,2},{5308,55579,2},{5308,55584,2},{5310,55586,2}, {5310,55578,2},{5313,55579,2},{5318,55576,2},{5320,55573,2},{5320,55571,2}, {5317,55569,2},{5315,55574,2},{5313,55573,2},{5313,55568,2},{5312,55563,2}, {5313,55563,2},{5317,55561,2},{5313,55558,2},{5312,55556,2},{5308,55544,2}, {5310,55533,2},{5313,55528,2},{5315,55506,2},{5323,55498,2},{5327,55498,2}, {5330,55494,2},{5330,55493,2},{5327,55488,2},{5330,55481,2},{5333,55474,2}, {5335,55474,2},{5335,55466,2},{5340,55456,2},{5340,55451,2},{5343,55448,2}, {5345,55443,2},{5348,55444,2},{5350,55451,2},{5353,55454,2},{5352,55458,2}, {5353,55463,2},{5348,55468,2},{5350,55471,2},{5347,55474,2},{5347,55476,2}, {5353,55479,2},{5353,55473,2},{5355,55469,2},{5357,55469,2},{5358,55471,2}, {5360,55478,2},{5358,55478,2},{5355,55486,2},{5357,55489,2},{5360,55491,2}, {5362,55496,2},{5360,55498,2},{5362,55503,2},{5358,55504,2},{5360,55508,2}, {5365,55508,2},{5372,55503,2},{5377,55498,2},{5378,55491,2},{5382,55489,2}, {5388,55514,2},{5393,55519,2},{5390,55513,2},{5390,55508,2},{5388,55504,2}, {5390,55499,2},{5387,55493,2},{5390,55489,2},{5390,55484,2},{5393,55484,2}, {5397,55488,2},{5397,55493,2},{5393,55501,2},{5392,55503,2},{5395,55511,2}, {5397,55511,2},{5397,55508,2},{5398,55504,2},{5402,55503,2},{5408,55509,2}, {5420,55498,2},{5423,55503,2},{5420,55509,2},{5418,55513,2},{5420,55513,2}, {5425,55518,2},{5425,55523,2},{6088,54033,130},{6093,54056,2},{6092,54061,2}, {6090,54064,2},{6092,54078,2},{6093,54081,2},{6095,54096,2},{6102,54114,2}, {6100,54119,2},{6098,54129,2},{6097,54133,2},{6098,54153,2},{6100,54163,2}, {6110,54174,2},{6115,54171,2},{6117,54168,2},{6117,54161,2},{6120,54169,2}, {6127,54164,2},{6132,54169,2},{6135,54178,2},{6133,54183,2},{6137,54184,2}, {6140,54196,2},{6142,54194,2},{6145,54204,2},{6147,54213,2},{6145,54226,2}, {6148,54223,2},{6148,54224,2},{6147,54234,2},{6145,54234,2},{6143,54238,2}, {6140,54234,2},{6138,54243,2},{6142,54249,2},{6143,54248,2},{6145,54268,2}, {6145,54271,2},{6147,54268,2},{6147,54269,2},{6148,54279,2},{6162,54316,2}, {6165,54314,2},{6167,54321,2},{6170,54321,2},{6187,54354,2},{6188,54354,2}, {6188,54353,2},{6195,54376,2},{6197,54376,2},{6205,54388,2},{6207,54389,2}, {6208,54388,2},{6203,54364,2},{6205,54364,2},{6212,54386,2},{6213,54386,2}, {6212,54378,2},{6213,54378,2},{6217,54393,2},{6223,54409,2},{6227,54414,2}, {6225,54403,2},{6227,54404,2},{6228,54409,2},{6232,54426,2},{6233,54426,2}, {6233,54423,2},{6238,54429,2},{6240,54446,2},{6238,54448,2},{6237,54458,2}, {6240,54466,2},{6240,54473,2},{6238,54473,2},{6235,54471,2},{6235,54473,2}, {6237,54483,2},{6237,54504,2},{6238,54514,2},{6240,54513,2},{6238,54488,2}, {6238,54489,2},{6243,54504,2},{6243,54501,2},{6245,54504,2},{6245,54519,2}, {6257,54551,2},{6257,54544,2},{6248,54519,2},{6250,54513,2},{6252,54514,2}, {6252,54513,2},{6250,54501,2},{6243,54471,2},{6243,54468,2},{6247,54471,2}, {6253,54504,2},{6253,54494,2},{6250,54484,2},{6248,54473,2},{6252,54468,2}, {6253,54458,2},{6255,54464,2},{6253,54489,2},{6257,54499,2},{6257,54514,2}, {6253,54518,2},{6257,54524,2},{6255,54534,2},{6260,54554,2},{6265,54559,2}, {6265,54566,2},{6267,54566,2},{6268,54493,2},{6275,54499,2},{6275,54508,2}, {6273,54511,2},{6273,54518,2},{6273,54528,2},{6275,54536,2},{6272,54561,2}, {6275,54553,2},{6277,54548,2},{6278,54524,2},{6277,54496,2},{6280,54489,2}, {6277,54486,2},{6275,54493,2},{6268,54484,2},{6267,54488,2},{6265,54486,2}, {6267,54471,2},{6267,54463,2},{6267,54456,2},{6265,54453,2},{6265,54441,2}, {6262,54424,2},{6262,54408,2},{6260,54406,2},{6257,54408,2},{6248,54383,2}, {6238,54374,2},{6237,54369,2},{6238,54369,2},{6248,54378,2},{6255,54388,2}, {6260,54389,2},{6263,54398,2},{6275,54441,2},{6277,54476,2},{6277,54479,2}, {6280,54474,2},{6280,54461,2},{6282,54464,2},{6283,54473,2},{6282,54484,2}, {6283,54489,2},{6282,54509,2},{6282,54541,2},{6280,54549,2},{6280,54559,2}, {6275,54574,2},{6273,54604,2},{6268,54608,2},{6270,54616,2},{6263,54608,2}, {6265,54619,2},{6262,54608,2},{6258,54604,2},{6258,54608,2},{6270,54638,2}, {6273,54636,2},{6277,54646,2},{6280,54646,2},{6272,54626,2},{6272,54619,2}, {6280,54639,2},{6283,54628,2},{6283,54614,2},{6287,54609,2},{6285,54599,2}, {6287,54586,2},{6288,54573,2},{6290,54574,2},{6292,54566,2},{6292,54541,2}, {6295,54544,2},{6295,54541,2},{6293,54526,2},{6295,54491,2},{6292,54466,2}, {6285,54433,2},{6275,54403,2},{6272,54399,2},{6270,54393,2},{6267,54389,2}, {6257,54384,2},{6252,54374,2},{6238,54364,2},{6232,54343,2},{6228,54339,2}, {6222,54324,2},{6217,54316,2},{6215,54309,2},{6207,54294,2},{6205,54276,2}, {6207,54263,2},{6203,54246,2},{6203,54244,2},{6207,54246,2},{6207,54243,2}, {6203,54234,2},{6202,54234,2},{6203,54224,2},{6203,54219,2},{6200,54216,2}, {6198,54204,2},{6203,54194,2},{6203,54191,2},{6202,54188,2},{6200,54181,2}, {6203,54176,2},{6203,54181,2},{6205,54181,2},{6208,54163,2},{6210,54161,2}, {6213,54156,2},{6215,54161,2},{6217,54151,2},{6220,54148,2},{6228,54129,2}, {6227,54124,2},{6228,54121,2},{6228,54123,2},{6232,54116,2},{6232,54111,2}, {6235,54113,2},{6237,54111,2},{6237,54114,2},{6242,54109,2},{6242,54103,2}, {6238,54099,2},{6237,54093,2},{6237,54079,2},{6235,54074,2},{6237,54071,2}, {6237,54064,2},{6238,54064,2},{6242,54059,2},{6243,54056,2},{6243,54049,2}, {6247,54048,2},{6248,54031,2},{6252,54021,2},{6253,54016,2},{6255,54018,2}, {6258,54013,2},{6262,54006,2},{6263,53991,2},{6263,53976,2},{6267,53968,2}, {6265,53959,2},{6267,53959,2},{6268,53966,2},{6270,53968,2},{6270,53961,2}, {6272,53959,2},{6278,53943,2},{6277,53936,2},{6270,53931,2},{6267,53941,2}, {6263,53943,2},{6262,53954,2},{6255,53954,2},{6257,53961,2},{6255,53966,2}, {6253,53966,2},{6253,53959,2},{6247,53968,2},{6248,53976,2},{6247,53984,2}, {6248,53999,2},{6248,54011,2},{6242,54004,2},{6233,54006,2},{6232,54013,2}, {6225,54003,2},{6223,54003,2},{6225,54019,2},{6222,54019,2},{6218,54029,2}, {6217,54033,2},{6215,54029,2},{6215,54033,2},{6212,54029,2},{6208,54031,2}, {6200,54058,2},{6193,54061,2},{6193,54071,2},{6188,54068,2},{6187,54073,2}, {6185,54074,2},{6183,54063,2},{6183,54064,2},{6183,54068,2},{6180,54061,2}, {6178,54056,2},{6177,54054,2},{6178,54051,2},{6175,54043,2},{6175,54031,2}, {6173,54029,2},{6173,54014,2},{6177,54016,2},{6178,54003,2},{6175,53981,2}, {6172,53978,2},{6170,53984,2},{6167,53981,2},{6167,53976,2},{6165,53969,2}, {6160,53971,2},{6160,53966,2},{6155,53966,2},{6152,53959,2},{6150,53963,2}, {6147,53961,2},{6145,53964,2},{6143,53964,2},{6140,53949,2},{6140,53946,2}, {6143,53943,2},{6140,53941,2},{6140,53934,2},{6137,53929,2},{6137,53934,2}, {6135,53936,2},{6135,53944,2},{6132,53946,2},{6132,53951,2},{6127,53948,2}, {6127,53941,2},{6123,53934,2},{6122,53939,2},{6118,53943,2},{6117,53939,2}, {6123,53926,2},{6125,53918,2},{6127,53916,2},{6127,53893,2},{6132,53883,2}, {6133,53876,2},{6132,53861,2},{6130,53856,2},{6122,53866,2},{6122,53858,2}, {6118,53844,2},{6115,53828,2},{6122,53801,2},{6128,53784,2},{6130,53774,2}, {6130,53768,2},{6125,53788,2},{6120,53791,2},{6117,53799,2},{6107,53813,2}, {6105,53829,2},{6103,53861,2},{6102,53866,2},{6102,53873,2},{6103,53883,2}, {6100,53888,2},{6098,53886,2},{6097,53893,2},{6093,53898,2},{6088,53919,2}, {6088,53926,2},{6083,53941,2},{6087,53963,2},{6083,53983,2},{6083,54008,2}, {6087,54019,2},{6088,54034,2},{5870,54408,130},{5873,54408,2},{5875,54403,2}, {5878,54409,2},{5880,54418,2},{5880,54419,2},{5877,54423,2},{5872,54418,2}, {5870,54421,2},{5873,54431,2},{5878,54438,2},{5880,54444,2},{5883,54453,2}, {5888,54454,2},{5895,54466,2},{5902,54469,2},{5910,54481,2},{5912,54498,2}, {5922,54519,2},{5925,54523,2},{5928,54531,2},{5933,54539,2},{5935,54553,2}, {5940,54549,2},{5942,54561,2},{5942,54554,2},{5943,54553,2},{5950,54563,2}, {5953,54574,2},{5960,54586,2},{5960,54621,2},{5955,54623,2},{5952,54629,2}, {5948,54629,2},{5947,54633,2},{5948,54636,2},{5952,54643,2},{5952,54654,2}, {5948,54661,2},{5943,54649,2},{5940,54648,2},{5938,54641,2},{5937,54643,2}, {5938,54664,2},{5942,54678,2},{5943,54678,2},{5947,54691,2},{5943,54698,2}, {5943,54701,2},{5948,54708,2},{5945,54713,2},{5947,54723,2},{5945,54724,2}, {5943,54741,2},{5940,54753,2},{5942,54781,2},{5935,54798,2},{5932,54814,2}, {5933,54841,2},{5935,54846,2},{5932,54846,2},{5932,54848,2},{5932,54854,2}, {5932,54873,2},{5930,54869,2},{5928,54873,2},{5927,54901,2},{5930,54928,2}, {5927,54934,2},{5925,54891,2},{5925,54856,2},{5927,54856,2},{5927,54846,2}, {5928,54844,2},{5928,54824,2},{5930,54821,2},{5928,54791,2},{5932,54788,2}, {5930,54783,2},{5928,54783,2},{5928,54779,2},{5930,54773,2},{5932,54776,2}, {5933,54773,2},{5933,54761,2},{5925,54758,2},{5923,54753,2},{5920,54754,2}, {5922,54744,2},{5920,54733,2},{5915,54718,2},{5913,54676,2},{5912,54673,2}, {5912,54661,2},{5910,54654,2},{5910,54648,2},{5913,54644,2},{5908,54634,2}, {5908,54626,2},{5908,54618,2},{5913,54613,2},{5913,54608,2},{5908,54598,2}, {5905,54574,2},{5905,54561,2},{5902,54548,2},{5895,54531,2},{5890,54514,2}, {5885,54506,2},{5883,54504,2},{5880,54496,2},{5873,54491,2},{5868,54488,2}, {5867,54489,2},{5870,54494,2},{5868,54503,2},{5865,54498,2},{5862,54499,2}, {5860,54494,2},{5865,54478,2},{5860,54473,2},{5863,54459,2},{5862,54458,2}, {5855,54461,2},{5847,54453,2},{5863,54453,2},{5863,54446,2},{5865,54444,2}, {5863,54441,2},{5860,54439,2},{5858,54434,2},{5850,54429,2},{5855,54424,2}, {5857,54426,2},{5860,54424,2},{5862,54428,2},{5862,54421,2},{5865,54419,2}, {5867,54421,2},{5870,54408,2},{4327,57631,130},{4327,57621,2},{4318,57601,2}, {4320,57594,2},{4320,57579,2},{4325,57566,2},{4327,57561,2},{4332,57558,2}, {4335,57559,2},{4348,57574,2},{4357,57578,2},{4360,57584,2},{4365,57589,2}, {4365,57599,2},{4367,57603,2},{4378,57623,2},{4383,57626,2},{4383,57633,2}, {4387,57641,2},{4387,57663,2},{4392,57676,2},{4390,57688,2},{4395,57709,2}, {4398,57744,2},{4402,57756,2},{4400,57768,2},{4402,57768,2},{4402,57763,2}, {4403,57766,2},{4403,57769,2},{4403,57776,2},{4402,57783,2},{4400,57783,2}, {4400,57778,2},{4395,57788,2},{4397,57803,2},{4395,57808,2},{4397,57811,2}, {4395,57809,2},{4395,57803,2},{4392,57808,2},{4395,57819,2},{4388,57813,2}, {4385,57823,2},{4393,57844,2},{4395,57851,2},{4395,57849,2},{4395,57843,2}, {4395,57836,2},{4393,57833,2},{4395,57831,2},{4398,57836,2},{4400,57834,2}, {4403,57844,2},{4412,57851,2},{4405,57838,2},{4405,57826,2},{4403,57823,2}, {4412,57828,2},{4418,57829,2},{4415,57818,2},{4415,57811,2},{4412,57806,2}, {4410,57809,2},{4408,57804,2},{4410,57803,2},{4413,57804,2},{4413,57803,2}, {4415,57806,2},{4415,57804,2},{4415,57794,2},{4408,57779,2},{4408,57778,2}, {4412,57781,2},{4413,57788,2},{4418,57803,2},{4417,57804,2},{4418,57813,2}, {4417,57818,2},{4418,57823,2},{4422,57834,2},{4420,57836,2},{4417,57831,2}, {4413,57831,2},{4420,57843,2},{4418,57848,2},{4413,57836,2},{4410,57829,2}, {4408,57833,2},{4407,57831,2},{4408,57839,2},{4412,57846,2},{4422,57868,2}, {4423,57873,2},{4422,57874,2},{4423,57886,2},{4425,57888,2},{4423,57889,2}, {4425,57894,2},{4432,57906,2},{4433,57918,2},{4437,57928,2},{4437,57933,2}, {4440,57941,2},{4450,57954,2},{4257,57273,130},{4255,57271,2},{4252,57276,2}, {4250,57288,2},{4248,57289,2},{4250,57294,2},{4245,57293,2},{4238,57296,2}, {4233,57293,2},{4232,57288,2},{4230,57273,2},{4232,57258,2},{4235,57241,2}, {4232,57236,2},{4232,57231,2},{4225,57226,2},{4207,57224,2},{4205,57228,2}, {4198,57246,2},{4198,57253,2},{4203,57266,2},{4203,57273,2},{4198,57281,2}, {4192,57286,2},{4203,57288,2},{4210,57294,2},{4225,57329,2},{4227,57344,2}, {4228,57344,2},{4232,57351,2},{4230,57349,2},{4225,57346,2},{4227,57351,2}, {4235,57354,2},{4240,57358,2},{4257,57383,2},{4265,57403,2},{4267,57423,2}, {4267,57444,2},{4265,57453,2},{4257,57484,2},{4257,57501,2},{4253,57524,2}, {4255,57531,2},{4257,57523,2},{4258,57506,2},{4260,57501,2},{4260,57493,2}, {4262,57491,2},{4265,57493,2},{4268,57499,2},{4267,57503,2},{4272,57504,2}, {4278,57516,2},{4282,57553,2},{4287,57564,2},{4285,57573,2},{4287,57578,2}, {4285,57588,2},{4288,57591,2},{4287,57601,2},{4288,57608,2},{4288,57619,2}, {4287,57624,2},{4283,57626,2},{4287,57628,2},{4288,57641,2},{4292,57644,2}, {4295,57643,2},{4297,57638,2},{4300,57633,2},{4305,57633,2},{4308,57628,2}, {4310,57629,2},{4308,57631,2},{4310,57629,2},{4307,57644,2},{4305,57648,2}, {4303,57648,2},{4300,57643,2},{4298,57643,2},{4295,57646,2},{4283,57649,2}, {4278,57649,2},{4272,57633,2},{4257,57621,2},{4257,57616,2},{4248,57599,2}, {4237,57583,2},{4227,57559,2},{4213,57524,2},{4212,57523,2},{4215,57524,2}, {4215,57529,2},{4217,57526,2},{4208,57514,2},{4197,57483,2},{4198,57484,2}, {4183,57433,2},{4173,57403,2},{4158,57379,2},{4150,57364,2},{4150,57353,2}, {4148,57351,2},{4150,57341,2},{4152,57334,2},{4150,57324,2},{4145,57311,2}, {4143,57299,2},{4138,57289,2},{4143,57278,2},{4150,57268,2},{4147,57269,2}, {4143,57274,2},{4147,57266,2},{4145,57259,2},{4147,57258,2},{4148,57256,2}, {4143,57244,2},{4145,57239,2},{4143,57238,2},{4145,57236,2},{4147,57231,2}, {4147,57239,2},{4148,57241,2},{4152,57266,2},{4155,57266,2},{4155,57256,2}, {4158,57253,2},{4155,57251,2},{4153,57248,2},{4153,57239,2},{4155,57236,2}, {4160,57229,2},{4165,57213,2},{4172,57204,2},{4170,57203,2},{4172,57191,2}, {4175,57189,2},{4173,57189,2},{4177,57191,2},{4177,57194,2},{4182,57194,2}, {4188,57201,2},{4188,57203,2},{4193,57204,2},{4195,57206,2},{4193,57211,2}, {4198,57209,2},{4198,57214,2},{4203,57216,2},{4202,57218,2},{4208,57216,2}, {4223,57221,2},{4228,57224,2},{4235,57234,2},{4237,57243,2},{4240,57248,2}, {4245,57249,2},{4250,57248,2},{4253,57249,2},{4257,57253,2},{4257,57258,2}, {4260,57258,2},{4262,57254,2},{4265,57254,2},{4265,57259,2},{4270,57266,2}, {4268,57273,2},{4265,57273,2},{4262,57274,2},{4260,57273,2},{4257,57274,2}, {4255,57271,2},{4802,56578,130},{4803,56584,2},{4805,56586,2},{4807,56594,2}, {4808,56594,2},{4808,56591,2},{4810,56593,2},{4812,56603,2},{4813,56603,2}, {4815,56604,2},{4818,56608,2},{4820,56606,2},{4820,56609,2},{4825,56609,2}, {4830,56613,2},{4832,56616,2},{4838,56611,2},{4845,56616,2},{4848,56623,2}, {4858,56659,2},{4855,56661,2},{4848,56653,2},{4838,56649,2},{4838,56646,2}, {4832,56643,2},{4833,56646,2},{4837,56663,2},{4850,56666,2},{4852,56673,2}, {4862,56674,2},{4865,56683,2},{4870,56681,2},{4872,56684,2},{4873,56681,2}, {4877,56681,2},{4885,56688,2},{4883,56699,2},{4877,56704,2},{4868,56701,2}, {4855,56684,2},{4855,56681,2},{4848,56678,2},{4848,56679,2},{4843,56679,2}, {4843,56684,2},{4847,56684,2},{4847,56688,2},{4852,56688,2},{4853,56689,2}, {4857,56693,2},{4853,56696,2},{4857,56701,2},{4858,56704,2},{4865,56703,2}, {4860,56708,2},{4863,56713,2},{4860,56711,2},{4860,56716,2},{4872,56726,2}, {4877,56724,2},{4880,56726,2},{4883,56719,2},{4887,56711,2},{4888,56711,2}, {4893,56713,2},{4898,56709,2},{4900,56711,2},{4897,56713,2},{4897,56718,2}, {4900,56724,2},{4900,56729,2},{4902,56733,2},{4898,56733,2},{4895,56741,2}, {4892,56751,2},{4893,56758,2},{4890,56758,2},{4890,56768,2},{4887,56771,2}, {4888,56778,2},{4883,56781,2},{4885,56791,2},{4883,56794,2},{4880,56798,2}, {4880,56806,2},{4877,56808,2},{4877,56816,2},{4878,56818,2},{4877,56824,2}, {4878,56831,2},{4877,56836,2},{4880,56836,2},{4882,56838,2},{4875,56851,2}, {4882,56866,2},{4880,56868,2},{4878,56874,2},{4875,56873,2},{4873,56881,2}, {4875,56883,2},{4878,56893,2},{4875,56893,2},{4873,56898,2},{4872,56896,2}, {4867,56901,2},{4865,56904,2},{4862,56903,2},{4858,56909,2},{4843,56914,2}, {4840,56918,2},{4833,56918,2},{4817,56928,2},{4808,56936,2},{4807,56943,2}, {4803,56943,2},{4803,56946,2},{4800,56949,2},{4797,56954,2},{4793,56969,2}, {4792,56993,2},{4797,57009,2},{4797,57036,2},{4795,57044,2},{4795,57046,2}, {4797,57049,2},{4793,57053,2},{4792,57051,2},{4785,57043,2},{4783,57043,2}, {4780,57048,2},{4773,57043,2},{4772,57038,2},{4768,57039,2},{4765,57036,2}, {4762,57036,2},{4762,57033,2},{4757,57041,2},{4753,57041,2},{4752,57044,2}, {4748,57054,2},{4743,57064,2},{4738,57066,2},{4737,57069,2},{4737,57073,2}, {4730,57078,2},{4725,57073,2},{4718,57066,2},{4717,57068,2},{4715,57064,2}, {4710,57066,2},{4705,57059,2},{4698,57058,2},{4695,57064,2},{4697,57069,2}, {4690,57074,2},{4690,57078,2},{4693,57078,2},{4695,57079,2},{4693,57084,2}, {4693,57093,2},{4688,57101,2},{4683,57096,2},{4685,57091,2},{4682,57081,2}, {4675,57081,2},{4673,57079,2},{4670,57081,2},{4670,57083,2},{4670,57084,2}, {4675,57089,2},{4675,57091,2},{4670,57094,2},{4667,57089,2},{4657,57078,2}, {4655,57078,2},{4652,57083,2},{4648,57084,2},{4648,57089,2},{4650,57089,2}, {4653,57094,2},{4652,57106,2},{4653,57111,2},{4655,57118,2},{4653,57126,2}, {4650,57129,2},{4648,57128,2},{4637,57124,2},{4633,57131,2},{4632,57148,2}, {4630,57149,2},{4630,57159,2},{4627,57166,2},{4628,57176,2},{4625,57181,2}, {4625,57189,2},{4620,57216,2},{4620,57219,2},{4618,57223,2},{4617,57238,2}, {4618,57241,2},{4618,57248,2},{4618,57254,2},{4620,57266,2},{4622,57273,2}, {4618,57268,2},{4617,57269,2},{4618,57284,2},{4620,57291,2},{4618,57293,2}, {4618,57296,2},{4618,57304,2},{4618,57298,2},{4617,57299,2},{4615,57306,2}, {4615,57308,2},{4615,57314,2},{4612,57323,2},{4613,57326,2},{4610,57339,2}, {4610,57364,2},{4607,57358,2},{4602,57359,2},{4607,57361,2},{4608,57369,2}, {4612,57371,2},{4612,57374,2},{4610,57376,2},{4608,57383,2},{4607,57381,2}, {4602,57366,2},{4603,57378,2},{4603,57386,2},{4602,57371,2},{4600,57379,2}, {4595,57369,2},{4602,57388,2},{4598,57386,2},{4600,57391,2},{4595,57409,2}, {4597,57416,2},{4600,57419,2},{4600,57418,2},{4598,57411,2},{4602,57414,2}, {4602,57419,2},{4598,57421,2},{4593,57418,2},{4593,57421,2},{4595,57424,2}, {4595,57431,2},{4593,57443,2},{4595,57446,2},{4593,57449,2},{4595,57456,2}, {4590,57456,2},{4593,57459,2},{4590,57461,2},{4587,57463,2},{4585,57469,2}, {4583,57464,2},{4582,57464,2},{4582,57469,2},{4578,57473,2},{4573,57473,2}, {4570,57478,2},{4568,57476,2},{4568,57478,2},{4565,57478,2},{4563,57484,2}, {4560,57484,2},{4557,57486,2},{4558,57494,2},{4563,57493,2},{4560,57496,2}, {4557,57498,2},{4547,57496,2},{4543,57501,2},{4540,57499,2},{4538,57501,2}, {4540,57503,2},{4543,57503,2},{4543,57506,2},{4538,57504,2},{4537,57508,2}, {4537,57513,2},{4533,57513,2},{4535,57519,2},{4537,57516,2},{4540,57519,2}, {4540,57528,2},{4532,57533,2},{4523,57523,2},{4518,57524,2},{4522,57529,2}, {4518,57534,2},{4515,57538,2},{4512,57534,2},{4512,57526,2},{4508,57531,2}, {4507,57536,2},{4503,57536,2},{4502,57543,2},{4498,57543,2},{4495,57544,2}, {4495,57548,2},{4493,57553,2},{4490,57553,2},{4490,57556,2},{4487,57554,2}, {4485,57559,2},{4482,57558,2},{4480,57561,2},{4482,57563,2},{4483,57566,2}, {4487,57563,2},{4488,57568,2},{4483,57568,2},{4478,57564,2},{4477,57569,2}, {4475,57569,2},{4477,57548,2},{4480,57548,2},{4482,57546,2},{4482,57543,2}, {4485,57544,2},{4487,57539,2},{4485,57534,2},{4482,57529,2},{4482,57526,2}, {4475,57524,2},{4473,57531,2},{4468,57538,2},{4463,57536,2},{4455,57536,2}, {4447,57528,2},{4452,57513,2},{4455,57493,2},{4460,57488,2},{4462,57478,2}, {4473,57471,2},{4472,57461,2},{4470,57456,2},{4460,57441,2},{4475,57448,2}, {4478,57446,2},{4482,57438,2},{4478,57431,2},{4475,57424,2},{4475,57423,2}, {4480,57424,2},{4483,57434,2},{4487,57436,2},{4492,57436,2},{4497,57441,2}, {4497,57433,2},{4495,57431,2},{4493,57433,2},{4490,57429,2},{4493,57426,2}, {4492,57421,2},{4497,57424,2},{4497,57416,2},{4500,57418,2},{4502,57416,2}, {4502,57414,2},{4500,57413,2},{4500,57411,2},{4510,57409,2},{4513,57404,2}, {4517,57403,2},{4522,57408,2},{4525,57408,2},{4523,57393,2},{4525,57374,2}, {4527,57373,2},{4527,57366,2},{4525,57366,2},{4522,57364,2},{4520,57366,2}, {4520,57371,2},{4518,57376,2},{4520,57378,2},{4515,57378,2},{4515,57379,2}, {4505,57389,2},{4498,57393,2},{4500,57394,2},{4498,57396,2},{4500,57399,2}, {4498,57399,2},{4497,57401,2},{4492,57399,2},{4488,57401,2},{4487,57403,2}, {4483,57404,2},{4482,57408,2},{4478,57406,2},{4478,57408,2},{4472,57409,2}, {4470,57406,2},{4465,57409,2},{4462,57409,2},{4452,57398,2},{4443,57396,2}, {4442,57388,2},{4435,57381,2},{4435,57378,2},{4422,57374,2},{4415,57369,2}, {4408,57361,2},{4393,57364,2},{4368,57363,2},{4350,57366,2},{4335,57361,2}, {4325,57348,2},{4322,57336,2},{4313,57329,2},{4307,57318,2},{4302,57294,2}, {4312,57288,2},{4327,57283,2},{4347,57281,2},{4358,57276,2},{4380,57273,2}, {4393,57266,2},{4402,57256,2},{4407,57241,2},{4405,57234,2},{4402,57231,2}, {4400,57229,2},{4398,57211,2},{4393,57206,2},{4392,57196,2},{4392,57201,2}, {4390,57203,2},{4385,57198,2},{4372,57189,2},{4370,57186,2},{4373,57184,2}, {4372,57181,2},{4367,57178,2},{4360,57169,2},{4365,57151,2},{4370,57144,2}, {4375,57141,2},{4383,57143,2},{4385,57146,2},{4388,57144,2},{4392,57144,2}, {4395,57148,2},{4400,57153,2},{4398,57159,2},{4402,57161,2},{4400,57168,2}, {4405,57169,2},{4405,57176,2},{4425,57183,2},{4428,57184,2},{4428,57189,2}, {4428,57191,2},{4427,57189,2},{4425,57191,2},{4432,57196,2},{4433,57203,2}, {4458,57204,2},{4468,57208,2},{4482,57206,2},{4488,57203,2},{4493,57193,2}, {4500,57189,2},{4502,57191,2},{4505,57191,2},{4507,57194,2},{4508,57199,2}, {4503,57204,2},{4503,57209,2},{4505,57208,2},{4507,57204,2},{4508,57204,2}, {4510,57206,2},{4515,57204,2},{4517,57201,2},{4523,57196,2},{4527,57194,2}, {4528,57198,2},{4535,57188,2},{4535,57178,2},{4538,57169,2},{4542,57166,2}, {4543,57153,2},{4550,57144,2},{4550,57126,2},{4552,57123,2},{4560,57119,2}, {4563,57114,2},{4567,57103,2},{4567,57088,2},{4573,57079,2},{4577,57068,2}, {4580,57061,2},{4577,57054,2},{4577,57038,2},{4572,57043,2},{4563,57029,2}, {4560,57026,2},{4553,57026,2},{4547,57029,2},{4543,57036,2},{4542,57044,2}, {4540,57044,2},{4537,57031,2},{4538,57023,2},{4532,57004,2},{4527,56998,2}, {4520,56996,2},{4510,56998,2},{4500,56996,2},{4492,56994,2},{4477,56983,2}, {4477,56979,2},{4483,56981,2},{4488,56986,2},{4497,56988,2},{4500,56986,2}, {4498,56983,2},{4493,56983,2},{4490,56979,2},{4490,56981,2},{4487,56978,2}, {4478,56976,2},{4482,56971,2},{4485,56971,2},{4497,56976,2},{4498,56976,2}, {4498,56971,2},{4503,56976,2},{4505,56979,2},{4515,56974,2},{4515,56979,2}, {4520,56983,2},{4522,56981,2},{4518,56971,2},{4510,56966,2},{4507,56959,2}, {4495,56953,2},{4495,56948,2},{4498,56943,2},{4495,56939,2},{4492,56936,2}, {4492,56929,2},{4475,56928,2},{4475,56919,2},{4470,56909,2},{4458,56913,2}, {4448,56909,2},{4437,56909,2},{4417,56896,2},{4407,56884,2},{4400,56886,2}, {4395,56891,2},{4392,56889,2},{4380,56893,2},{4377,56891,2},{4368,56883,2}, {4363,56881,2},{4360,56883,2},{4323,56901,2},{4327,56909,2},{4327,56911,2}, {4322,56903,2},{4300,56913,2},{4275,56914,2},{4257,56913,2},{4245,56908,2}, {4228,56901,2},{4213,56886,2},{4193,56876,2},{4185,56868,2},{4175,56851,2}, {4177,56853,2},{4168,56833,2},{4163,56818,2},{4162,56809,2},{4163,56796,2}, {4165,56793,2},{4168,56794,2},{4167,56791,2},{4168,56789,2},{4172,56784,2}, {4183,56776,2},{4195,56771,2},{4207,56769,2},{4212,56761,2},{4223,56754,2}, {4235,56753,2},{4240,56756,2},{4250,56756,2},{4248,56756,2},{4263,56754,2}, {4272,56759,2},{4278,56759,2},{4287,56753,2},{4298,56751,2},{4302,56746,2}, {4308,56749,2},{4312,56746,2},{4317,56748,2},{4325,56746,2},{4335,56749,2}, {4348,56756,2},{4357,56756,2},{4368,56766,2},{4377,56766,2},{4383,56763,2}, {4392,56763,2},{4410,56773,2},{4415,56781,2},{4418,56786,2},{4423,56786,2}, {4428,56783,2},{4433,56781,2},{4437,56784,2},{4453,56788,2},{4468,56799,2}, {4480,56803,2},{4488,56803,2},{4492,56803,2},{4493,56803,2},{4495,56816,2}, {4498,56818,2},{4507,56824,2},{4507,56828,2},{4510,56826,2},{4510,56831,2}, {4515,56826,2},{4515,56833,2},{4523,56831,2},{4522,56836,2},{4528,56838,2}, {4530,56838,2},{4528,56833,2},{4530,56829,2},{4527,56828,2},{4525,56824,2}, {4520,56823,2},{4517,56818,2},{4517,56811,2},{4505,56808,2},{4503,56803,2}, {4492,56794,2},{4483,56794,2},{4488,56791,2},{4485,56786,2},{4487,56783,2}, {4483,56781,2},{4485,56779,2},{4485,56776,2},{4480,56769,2},{4465,56759,2}, {4462,56749,2},{4458,56746,2},{4455,56743,2},{4455,56736,2},{4458,56731,2}, {4465,56734,2},{4467,56738,2},{4472,56738,2},{4488,56753,2},{4493,56753,2}, {4498,56771,2},{4507,56773,2},{4512,56776,2},{4510,56776,2},{4517,56776,2}, {4523,56784,2},{4542,56803,2},{4553,56808,2},{4567,56819,2},{4570,56826,2}, {4582,56831,2},{4592,56838,2},{4590,56839,2},{4583,56836,2},{4568,56839,2}, {4572,56841,2},{4573,56851,2},{4582,56858,2},{4587,56859,2},{4583,56868,2}, {4590,56878,2},{4588,56881,2},{4585,56883,2},{4580,56878,2},{4578,56879,2}, {4578,56873,2},{4570,56869,2},{4568,56864,2},{4563,56868,2},{4560,56874,2}, {4562,56876,2},{4567,56874,2},{4567,56876,2},{4572,56878,2},{4572,56883,2}, {4575,56884,2},{4582,56901,2},{4590,56904,2},{4593,56908,2},{4597,56914,2}, {4597,56926,2},{4597,56934,2},{4593,56944,2},{4595,56943,2},{4597,56946,2}, {4598,56956,2},{4597,56969,2},{4610,56983,2},{4610,57004,2},{4607,57009,2}, {4607,57018,2},{4602,57034,2},{4593,57044,2},{4592,57051,2},{4588,57053,2}, {4585,57061,2},{4587,57066,2},{4588,57063,2},{4592,57063,2},{4593,57064,2}, {4597,57063,2},{4598,57068,2},{4603,57068,2},{4605,57071,2},{4603,57081,2}, {4598,57083,2},{4600,57086,2},{4598,57089,2},{4602,57091,2},{4600,57098,2}, {4598,57099,2},{4600,57101,2},{4598,57119,2},{4598,57121,2},{4595,57136,2}, {4597,57146,2},{4602,57146,2},{4603,57141,2},{4603,57138,2},{4610,57131,2}, {4615,57133,2},{4618,57121,2},{4618,57113,2},{4620,57109,2},{4625,57118,2}, {4628,57114,2},{4635,57114,2},{4643,57109,2},{4650,57104,2},{4650,57099,2}, {4650,57094,2},{4645,57089,2},{4642,57079,2},{4643,57076,2},{4645,57078,2}, {4648,57074,2},{4650,57071,2},{4645,57054,2},{4648,57044,2},{4650,57043,2}, {4648,57036,2},{4650,57033,2},{4653,57031,2},{4657,57034,2},{4672,57034,2}, {4678,57041,2},{4677,57031,2},{4678,57021,2},{4677,57009,2},{4668,56986,2}, {4670,56946,2},{4667,56926,2},{4668,56921,2},{4655,56893,2},{4657,56889,2}, {4643,56871,2},{4645,56869,2},{4645,56866,2},{4650,56859,2},{4648,56858,2}, {4645,56853,2},{4645,56849,2},{4650,56843,2},{4653,56839,2},{4655,56834,2}, {4653,56828,2},{4650,56823,2},{4652,56801,2},{4653,56798,2},{4660,56798,2}, {4663,56789,2},{4665,56789,2},{4675,56778,2},{4680,56776,2},{4682,56773,2}, {4682,56769,2},{4685,56768,2},{4683,56764,2},{4688,56761,2},{4688,56759,2}, {4690,56754,2},{4693,56729,2},{4690,56716,2},{4683,56708,2},{4690,56711,2}, {4697,56723,2},{4697,56718,2},{4690,56706,2},{4687,56701,2},{4687,56696,2}, {4683,56696,2},{4677,56688,2},{4680,56691,2},{4685,56688,2},{4698,56691,2}, {4698,56694,2},{4702,56698,2},{4708,56701,2},{4712,56706,2},{4715,56709,2}, {4715,56713,2},{4717,56711,2},{4720,56714,2},{4722,56719,2},{4730,56731,2}, {4733,56739,2},{4737,56741,2},{4738,56733,2},{4742,56749,2},{4740,56758,2}, {4742,56764,2},{4745,56761,2},{4748,56754,2},{4747,56748,2},{4748,56733,2}, {4747,56731,2},{4747,56716,2},{4743,56713,2},{4743,56708,2},{4740,56699,2}, {4737,56691,2},{4730,56686,2},{4723,56676,2},{4717,56673,2},{4723,56671,2}, {4712,56648,2},{4702,56641,2},{4700,56629,2},{4700,56623,2},{4693,56614,2}, {4688,56604,2},{4685,56594,2},{4685,56581,2},{4683,56574,2},{4683,56556,2}, {4668,56533,2},{4662,56506,2},{4662,56501,2},{4658,56494,2},{4657,56491,2}, {4660,56486,2},{4660,56479,2},{4663,56469,2},{4670,56461,2},{4668,56463,2}, {4667,56459,2},{4667,56463,2},{4663,56458,2},{4660,56444,2},{4660,56441,2}, {4662,56441,2},{4667,56444,2},{4670,56451,2},{4675,56448,2},{4678,56449,2}, {4682,56454,2},{4688,56458,2},{4690,56459,2},{4695,56456,2},{4695,56453,2}, {4697,56449,2},{4693,56443,2},{4695,56438,2},{4692,56433,2},{4688,56431,2}, {4688,56426,2},{4687,56424,2},{4687,56423,2},{4688,56421,2},{4685,56418,2}, {4687,56416,2},{4688,56416,2},{4687,56411,2},{4678,56398,2},{4675,56376,2}, {4670,56359,2},{4668,56341,2},{4670,56333,2},{4677,56326,2},{4678,56326,2}, {4682,56329,2},{4693,56354,2},{4700,56364,2},{4702,56369,2},{4710,56379,2}, {4720,56399,2},{4743,56426,2},{4762,56458,2},{4772,56484,2},{4778,56516,2}, {4788,56553,2},{4795,56566,2},{4797,56568,2},{4797,56569,2},{4800,56573,2}, {4798,56578,2},{4802,56578,2},{4450,57954,130},{4448,57958,2},{4445,57959,2}, {4442,57956,2},{4442,57953,2},{4438,57951,2},{4435,57943,2},{4427,57931,2}, {4422,57918,2},{4412,57899,2},{4408,57901,2},{4407,57906,2},{4403,57906,2}, {4407,57909,2},{4408,57914,2},{4407,57916,2},{4407,57921,2},{4405,57919,2}, {4405,57924,2},{4400,57914,2},{4398,57914,2},{4397,57919,2},{4398,57923,2}, {4400,57928,2},{4400,57931,2},{4398,57929,2},{4395,57923,2},{4390,57921,2}, {4387,57914,2},{4387,57913,2},{4390,57913,2},{4387,57906,2},{4382,57913,2}, {4373,57916,2},{4365,57914,2},{4367,57916,2},{4367,57919,2},{4363,57914,2}, {4360,57914,2},{4358,57918,2},{4353,57909,2},{4352,57906,2},{4353,57894,2}, {4348,57886,2},{4347,57879,2},{4342,57873,2},{4338,57868,2},{4333,57864,2}, {4335,57863,2},{4333,57859,2},{4330,57843,2},{4327,57843,2},{4325,57841,2}, {4328,57838,2},{4330,57821,2},{4328,57798,2},{4325,57783,2},{4325,57778,2}, {4333,57761,2},{4338,57726,2},{4338,57681,2},{4333,57661,2},{4332,57648,2}, {4327,57631,2},{6517,53188,130},{6518,53186,2},{6520,53193,2},{6523,53218,2}, {6522,53238,2},{6527,53249,2},{6535,53263,2},{6543,53256,2},{6548,53243,2}, {6548,53254,2},{6555,53258,2},{6557,53278,2},{6560,53281,2},{6563,53301,2}, {6578,53323,2},{6585,53318,2},{6590,53286,2},{6592,53281,2},{6595,53283,2}, {6597,53274,2},{6597,53258,2},{6598,53288,2},{6602,53298,2},{6600,53313,2}, {6598,53319,2},{6598,53331,2},{6593,53349,2},{6592,53356,2},{6593,53389,2}, {6597,53401,2},{6600,53411,2},{6608,53413,2},{6612,53399,2},{6610,53379,2}, {6615,53376,2},{6620,53364,2},{6625,53343,2},{6627,53268,2},{6625,53231,2}, {6618,53243,2},{6610,53231,2},{6610,53224,2},{6607,53228,2},{6603,53226,2}, {6605,53219,2},{6615,53213,2},{6617,53209,2},{6613,53159,2},{6610,53149,2}, {6612,53129,2},{6618,53116,2},{6615,53076,2},{6613,53074,2},{6610,53081,2}, {6607,53078,2},{6600,53081,2},{6598,53076,2},{6602,53068,2},{6603,53066,2}, {6603,53073,2},{6605,53066,2},{6602,53056,2},{6592,53058,2},{6593,53049,2}, {6597,53048,2},{6603,53034,2},{6612,53026,2},{6617,53024,2},{6625,53028,2}, {6630,53038,2},{6630,53041,2},{6628,53043,2},{6627,53048,2},{6630,53064,2}, {6628,53069,2},{6625,53088,2},{6630,53093,2},{6630,53096,2},{6635,53101,2}, {6637,53108,2},{6632,53128,2},{6632,53136,2},{6638,53156,2},{6638,53166,2}, {6640,53169,2},{6647,53211,2},{6653,53221,2},{6653,53224,2},{6652,53219,2}, {6650,53223,2},{6648,53221,2},{6647,53226,2},{6648,53233,2},{6647,53236,2}, {6648,53239,2},{6655,53246,2},{6655,53288,2},{6657,53289,2},{6657,53279,2}, {6660,53286,2},{6657,53289,2},{6662,53299,2},{6660,53303,2},{6657,53304,2}, {6657,53298,2},{6655,53301,2},{6660,53313,2},{6662,53336,2},{6668,53361,2}, {6673,53391,2},{6677,53388,2},{6678,53401,2},{6680,53406,2},{6680,53409,2}, {6682,53409,2},{6687,53419,2},{6685,53436,2},{6687,53448,2},{6688,53451,2}, {6690,53471,2},{6695,53481,2},{6695,53508,2},{6698,53519,2},{6700,53531,2}, {6703,53544,2},{6703,53551,2},{6705,53556,2},{6702,53563,2},{6700,53554,2}, {6698,53558,2},{6700,53574,2},{6697,53573,2},{6700,53591,2},{6697,53586,2}, {6695,53584,2},{6693,53594,2},{6695,53616,2},{6690,53614,2},{6690,53623,2}, {6690,53636,2},{6687,53641,2},{6683,53604,2},{6680,53601,2},{6678,53591,2}, {6675,53589,2},{6677,53579,2},{6675,53578,2},{6675,53584,2},{6673,53583,2}, {6673,53579,2},{6673,53573,2},{6672,53571,2},{6673,53566,2},{6668,53558,2}, {6668,53548,2},{6665,53533,2},{6667,53526,2},{6667,53523,2},{6663,53531,2}, {6660,53526,2},{6660,53521,2},{6655,53518,2},{6655,53504,2},{6652,53503,2}, {6652,53498,2},{6648,53504,2},{6648,53499,2},{6647,53501,2},{6647,53513,2}, {6645,53501,2},{6647,53494,2},{6647,53491,2},{6642,53486,2},{6638,53491,2}, {6640,53499,2},{6637,53508,2},{6638,53514,2},{6640,53521,2},{6638,53539,2}, {6635,53538,2},{6632,53549,2},{6637,53559,2},{6637,53571,2},{6635,53576,2}, {6633,53574,2},{6633,53556,2},{6632,53556,2},{6630,53574,2},{6630,53584,2}, {6632,53586,2},{6633,53583,2},{6635,53596,2},{6632,53613,2},{6632,53651,2}, {6630,53654,2},{6635,53668,2},{6635,53674,2},{6633,53676,2},{6635,53683,2}, {6637,53689,2},{6635,53689,2},{6637,53696,2},{6647,53724,2},{6650,53723,2}, {6647,53719,2},{6643,53708,2},{6650,53714,2},{6658,53729,2},{6662,53754,2}, {6667,53763,2},{6668,53774,2},{6663,53771,2},{6663,53763,2},{6660,53764,2}, {6663,53776,2},{6662,53776,2},{6657,53763,2},{6655,53764,2},{6652,53761,2}, {6648,53751,2},{6647,53748,2},{6643,53753,2},{6642,53746,2},{6642,53753,2}, {6643,53758,2},{6642,53761,2},{6648,53781,2},{6648,53784,2},{6645,53781,2}, {6647,53789,2},{6645,53789,2},{6642,53786,2},{6643,53778,2},{6637,53771,2}, {6635,53779,2},{6635,53771,2},{6632,53764,2},{6628,53766,2},{6628,53769,2}, {6630,53768,2},{6627,53774,2},{6627,53771,2},{6623,53771,2},{6622,53763,2}, {6623,53764,2},{6623,53763,2},{6620,53756,2},{6617,53754,2},{6618,53766,2}, {6618,53768,2},{6615,53761,2},{6617,53754,2},{6613,53754,2},{6615,53749,2}, {6615,53744,2},{6610,53733,2},{6608,53738,2},{6607,53738,2},{6607,53758,2}, {6603,53758,2},{6605,53748,2},{6603,53741,2},{6605,53743,2},{6602,53723,2}, {6600,53726,2},{6595,53719,2},{6592,53721,2},{6592,53714,2},{6587,53709,2}, {6583,53711,2},{6585,53716,2},{6583,53716,2},{6582,53718,2},{6580,53728,2}, {6583,53744,2},{6587,53751,2},{6585,53758,2},{6578,53736,2},{6575,53741,2}, {6577,53756,2},{6573,53753,2},{6572,53756,2},{6573,53748,2},{6572,53744,2}, {6573,53736,2},{6572,53736,2},{6568,53733,2},{6567,53726,2},{6568,53718,2}, {6567,53708,2},{6565,53698,2},{6568,53699,2},{6568,53683,2},{6565,53678,2}, {6563,53686,2},{6562,53684,2},{6565,53676,2},{6563,53671,2},{6567,53666,2}, {6568,53666,2},{6570,53671,2},{6572,53666,2},{6573,53649,2},{6575,53658,2}, {6578,53646,2},{6580,53616,2},{6578,53606,2},{6580,53568,2},{6573,53559,2}, {6573,53566,2},{6572,53566,2},{6572,53576,2},{6570,53576,2},{6568,53566,2}, {6567,53551,2},{6565,53551,2},{6565,53548,2},{6562,53543,2},{6562,53544,2}, {6563,53526,2},{6557,53534,2},{6550,53553,2},{6548,53554,2},{6547,53561,2}, {6547,53571,2},{6543,53581,2},{6532,53589,2},{6535,53561,2},{6533,53558,2}, {6535,53553,2},{6533,53551,2},{6533,53548,2},{6532,53548,2},{6525,53534,2}, {6518,53531,2},{6518,53521,2},{6515,53509,2},{6505,53491,2},{6498,53468,2}, {6497,53454,2},{6493,53444,2},{6493,53434,2},{6492,53431,2},{6490,53433,2}, {6488,53426,2},{6485,53426,2},{6485,53418,2},{6482,53418,2},{6482,53406,2}, {6482,53399,2},{6485,53398,2},{6488,53386,2},{6493,53386,2},{6500,53398,2}, {6498,53398,2},{6495,53408,2},{6498,53404,2},{6500,53413,2},{6498,53419,2}, {6498,53428,2},{6503,53441,2},{6507,53434,2},{6512,53438,2},{6518,53464,2}, {6527,53481,2},{6543,53501,2},{6550,53503,2},{6553,53496,2},{6555,53499,2}, {6558,53496,2},{6562,53468,2},{6560,53456,2},{6557,53443,2},{6553,53433,2}, {6552,53423,2},{6548,53419,2},{6538,53383,2},{6535,53379,2},{6535,53384,2}, {6532,53384,2},{6527,53374,2},{6523,53374,2},{6522,53378,2},{6515,53376,2}, {6512,53369,2},{6507,53378,2},{6507,53369,2},{6507,53364,2},{6505,53364,2}, {6503,53356,2},{6502,53354,2},{6500,53343,2},{6498,53336,2},{6498,53329,2}, {6495,53334,2},{6493,53333,2},{6497,53321,2},{6498,53318,2},{6502,53304,2}, {6502,53279,2},{6508,53213,2},{6512,53203,2},{6517,53188,2},{6043,52216,130}, {6030,52239,2},{6022,52249,2},{6015,52268,2},{6012,52274,2},{6010,52286,2}, {6008,52283,2},{6003,52296,2},{5993,52303,2},{5985,52314,2},{5983,52311,2}, {5970,52321,2},{5963,52323,2},{5960,52328,2},{5960,52321,2},{5958,52318,2}, {5960,52319,2},{5963,52319,2},{5973,52311,2},{5977,52313,2},{5988,52299,2}, {6000,52291,2},{6008,52276,2},{6020,52243,2},{6037,52221,2},{6037,52218,2}, {6045,52211,2},{6043,52216,2},{5672,53059,130},{5667,53068,2},{5660,53074,2}, {5653,53088,2},{5650,53088,2},{5643,53094,2},{5638,53094,2},{5638,53099,2}, {5633,53098,2},{5633,53103,2},{5632,53103,2},{5623,53114,2},{5622,53121,2}, {5623,53126,2},{5628,53133,2},{5630,53136,2},{5615,53126,2},{5612,53129,2}, {5603,53141,2},{5605,53169,2},{5603,53183,2},{5598,53214,2},{5600,53221,2}, {5603,53226,2},{5610,53224,2},{5608,53228,2},{5610,53254,2},{5612,53258,2}, {5610,53263,2},{5615,53273,2},{5617,53281,2},{5613,53289,2},{5613,53301,2}, {5612,53303,2},{5610,53311,2},{5603,53319,2},{5600,53318,2},{5608,53301,2}, {5610,53286,2},{5612,53279,2},{5607,53263,2},{5603,53263,2},{5607,53256,2}, {5607,53234,2},{5598,53226,2},{5597,53218,2},{5598,53208,2},{5602,53186,2}, {5603,53166,2},{5602,53159,2},{5597,53154,2},{5592,53158,2},{5588,53158,2}, {5587,53161,2},{5585,53159,2},{5583,53161,2},{5585,53164,2},{5582,53168,2}, {5580,53166,2},{5573,53171,2},{5572,53178,2},{5570,53178,2},{5562,53191,2}, {5560,53193,2},{5560,53196,2},{5555,53196,2},{5553,53201,2},{5548,53203,2}, {5542,53214,2},{5540,53213,2},{5535,53214,2},{5540,53218,2},{5542,53219,2}, {5538,53218,2},{5533,53221,2},{5533,53218,2},{5525,53221,2},{5522,53219,2}, {5517,53224,2},{5518,53218,2},{5538,53209,2},{5548,53198,2},{5558,53191,2}, {5568,53173,2},{5568,53166,2},{5587,53148,2},{5587,53144,2},{5575,53153,2}, {5572,53153,2},{5582,53146,2},{5583,53143,2},{5585,53143,2},{5587,53138,2}, {5590,53138,2},{5590,53131,2},{5592,53133,2},{5592,53129,2},{5597,53134,2}, {5602,53133,2},{5602,53131,2},{5600,53118,2},{5600,53114,2},{5598,53111,2}, {5602,53108,2},{5607,53094,2},{5612,53089,2},{5610,53084,2},{5613,53089,2}, {5610,53093,2},{5602,53113,2},{5603,53119,2},{5607,53123,2},{5610,53114,2}, {5613,53114,2},{5622,53103,2},{5622,53098,2},{5625,53098,2},{5632,53089,2}, {5643,53084,2},{5655,53074,2},{5663,53064,2},{5667,53061,2},{5670,53056,2}, {5675,53053,2},{5672,53056,2},{5672,53059,2},{6135,53768,130},{6142,53744,2}, {6140,53736,2},{6137,53738,2},{6137,53736,2},{6142,53729,2},{6140,53709,2}, {6140,53704,2},{6135,53703,2},{6132,53691,2},{6128,53681,2},{6128,53669,2}, {6123,53649,2},{6122,53621,2},{6120,53588,2},{6125,53578,2},{6127,53564,2}, {6130,53554,2},{6132,53543,2},{6135,53536,2},{6132,53558,2},{6123,53588,2}, {6123,53594,2},{6125,53633,2},{6133,53686,2},{6137,53696,2},{6150,53698,2}, {6153,53701,2},{6157,53711,2},{6157,53724,2},{6153,53724,2},{6150,53731,2}, {6148,53738,2},{6145,53743,2},{6145,53749,2},{6140,53759,2},{6140,53766,2}, {6135,53771,2},{6135,53768,2},{4450,57954,130},{4448,57958,2},{4445,57959,2}, {4442,57956,2},{4442,57953,2},{4438,57951,2},{4435,57943,2},{4427,57931,2}, {4422,57918,2},{4412,57899,2},{4408,57901,2},{4407,57906,2},{4403,57906,2}, {4407,57909,2},{4408,57914,2},{4407,57916,2},{4407,57921,2},{4405,57919,2}, {4405,57924,2},{4400,57914,2},{4398,57914,2},{4397,57919,2},{4398,57923,2}, {4400,57928,2},{4400,57931,2},{4398,57929,2},{4395,57923,2},{4390,57921,2}, {4387,57914,2},{4387,57913,2},{4390,57913,2},{4387,57906,2},{4382,57913,2}, {4373,57916,2},{4365,57914,2},{4367,57916,2},{4367,57919,2},{4363,57914,2}, {4360,57914,2},{4358,57918,2},{4353,57909,2},{4352,57906,2},{4353,57894,2}, {4348,57886,2},{4347,57879,2},{4342,57873,2},{4338,57868,2},{4333,57864,2}, {4335,57863,2},{4333,57859,2},{4330,57843,2},{4327,57843,2},{4325,57841,2}, {4328,57838,2},{4330,57821,2},{4328,57798,2},{4325,57783,2},{4325,57778,2}, {4333,57761,2},{4338,57726,2},{4338,57681,2},{4333,57661,2},{4332,57648,2}, {4327,57631,2},{4167,54259,130},{4162,54258,2},{4153,54261,2},{4147,54266,2}, {4143,54273,2},{4143,54279,2},{4140,54281,2},{4133,54286,2},{4128,54286,2}, {4122,54288,2},{4122,54294,2},{4122,54296,2},{4123,54301,2},{4122,54308,2}, {4115,54311,2},{4113,54316,2},{4110,54318,2},{4107,54323,2},{4103,54326,2}, {4100,54326,2},{4098,54329,2},{4093,54331,2},{4093,54336,2},{4092,54331,2}, {4093,54328,2},{4105,54319,2},{4108,54313,2},{4105,54309,2},{4093,54314,2}, {4088,54316,2},{4085,54319,2},{4080,54319,2},{4075,54316,2},{4068,54301,2}, {4070,54299,2},{4078,54298,2},{4083,54293,2},{4088,54291,2},{4095,54288,2}, {4095,54283,2},{4102,54283,2},{4108,54279,2},{4108,54274,2},{4097,54268,2}, {4105,54261,2},{4118,54258,2},{4130,54249,2},{4133,54244,2},{4137,54246,2}, {4143,54241,2},{4147,54243,2},{4150,54241,2},{4157,54241,2},{4158,54244,2}, {4163,54244,2},{4167,54248,2},{4168,54258,2},{4167,54259,2},{2718,57461,130}, {2712,57469,2},{2695,57474,2},{2687,57473,2},{2680,57466,2},{2675,57466,2}, {2673,57464,2},{2677,57464,2},{2675,57461,2},{2675,57463,2},{2668,57463,2}, {2670,57454,2},{2675,57446,2},{2685,57439,2},{2685,57438,2},{2688,57438,2}, {2688,57431,2},{2688,57429,2},{2695,57429,2},{2695,57426,2},{2697,57426,2}, {2702,57438,2},{2705,57441,2},{2707,57439,2},{2707,57444,2},{2710,57444,2}, {2718,57453,2},{2720,57456,2},{2718,57461,2},{4760,54721,130},{4762,54733,2}, {4760,54739,2},{4758,54744,2},{4747,54749,2},{4748,54751,2},{4755,54751,2}, {4758,54763,2},{4765,54771,2},{4767,54764,2},{4768,54763,2},{4767,54779,2}, {4763,54791,2},{4765,54793,2},{4768,54794,2},{4775,54803,2},{4772,54801,2}, {4768,54814,2},{4770,54826,2},{4768,54829,2},{4770,54844,2},{4770,54846,2}, {4773,54846,2},{4775,54838,2},{4777,54838,2},{4778,54841,2},{4775,54846,2}, {4777,54848,2},{4778,54848,2},{4777,54853,2},{4778,54856,2},{4777,54859,2}, {4780,54858,2},{4782,54866,2},{4783,54864,2},{4782,54869,2},{4783,54871,2}, {4785,54874,2},{4787,54879,2},{4788,54878,2},{4788,54879,2},{4793,54881,2}, {4793,54873,2},{4795,54873,2},{4797,54879,2},{4798,54884,2},{4798,54888,2}, {4803,54901,2},{4802,54903,2},{4800,54901,2},{4795,54908,2},{4797,54901,2}, {4795,54899,2},{4787,54901,2},{4785,54904,2},{4782,54906,2},{4783,54914,2}, {4780,54909,2},{4777,54909,2},{4775,54913,2},{4773,54913,2},{4773,54911,2}, {4765,54916,2},{4762,54914,2},{4758,54916,2},{4750,54906,2},{4755,54908,2}, {4758,54913,2},{4762,54911,2},{4765,54913,2},{4768,54906,2},{4770,54908,2}, {4773,54906,2},{4775,54903,2},{4777,54906,2},{4778,54904,2},{4778,54899,2}, {4782,54899,2},{4787,54893,2},{4788,54894,2},{4790,54893,2},{4792,54889,2}, {4785,54888,2},{4783,54888,2},{4782,54884,2},{4782,54881,2},{4777,54879,2}, {4772,54881,2},{4778,54874,2},{4773,54866,2},{4770,54866,2},{4768,54861,2}, {4773,54859,2},{4773,54853,2},{4772,54851,2},{4765,54853,2},{4760,54849,2}, {4767,54851,2},{4768,54849,2},{4767,54841,2},{4763,54839,2},{4762,54833,2}, {4765,54836,2},{4767,54834,2},{4767,54813,2},{4770,54798,2},{4762,54794,2}, {4765,54783,2},{4763,54771,2},{4757,54764,2},{4752,54754,2},{4747,54753,2}, {4745,54748,2},{4740,54748,2},{4735,54741,2},{4750,54746,2},{4757,54744,2}, {4758,54741,2},{4760,54731,2},{4758,54721,2},{4760,54716,2},{4760,54721,2}, {4818,55238,130},{4813,55266,2},{4803,55279,2},{4803,55284,2},{4793,55276,2}, {4790,55276,2},{4787,55273,2},{4783,55274,2},{4782,55278,2},{4778,55293,2}, {4782,55299,2},{4787,55294,2},{4797,55293,2},{4797,55299,2},{4793,55304,2}, {4798,55308,2},{4798,55313,2},{4795,55308,2},{4793,55309,2},{4792,55306,2}, {4782,55311,2},{4775,55311,2},{4775,55316,2},{4773,55318,2},{4773,55326,2}, {4772,55324,2},{4772,55314,2},{4767,55316,2},{4765,55313,2},{4762,55314,2}, {4762,55321,2},{4755,55341,2},{4757,55344,2},{4755,55349,2},{4757,55356,2}, {4755,55371,2},{4757,55378,2},{4760,55376,2},{4760,55379,2},{4760,55398,2}, {4762,55401,2},{4762,55409,2},{4765,55416,2},{4765,55421,2},{4763,55419,2}, {4758,55426,2},{4757,55424,2},{4758,55413,2},{4757,55411,2},{4755,55411,2}, {4753,55408,2},{4753,55401,2},{4750,55398,2},{4753,55386,2},{4748,55368,2}, {4750,55361,2},{4747,55354,2},{4748,55348,2},{4745,55346,2},{4747,55341,2}, {4750,55341,2},{4753,55329,2},{4753,55326,2},{4755,55328,2},{4757,55321,2}, {4760,55311,2},{4760,55304,2},{4758,55303,2},{4758,55299,2},{4758,55296,2}, {4753,55293,2},{4762,55294,2},{4762,55306,2},{4772,55308,2},{4777,55303,2}, {4775,55296,2},{4777,55288,2},{4778,55276,2},{4782,55271,2},{4787,55269,2}, {4795,55271,2},{4798,55279,2},{4800,55279,2},{4800,55274,2},{4807,55266,2}, {4812,55256,2},{4813,55236,2},{4815,55231,2},{4812,55218,2},{4805,55213,2}, {4803,55199,2},{4800,55189,2},{4800,55186,2},{4807,55179,2},{4812,55179,2}, {4812,55174,2},{4802,55159,2},{4805,55159,2},{4808,55154,2},{4810,55164,2}, {4815,55173,2},{4815,55178,2},{4817,55179,2},{4815,55183,2},{4807,55184,2}, {4803,55189,2},{4808,55201,2},{4808,55211,2},{4817,55218,2},{4818,55224,2}, {4818,55236,2},{4668,55468,130},{4667,55473,2},{4662,55476,2},{4662,55481,2}, {4658,55481,2},{4648,55481,2},{4645,55479,2},{4633,55483,2},{4627,55479,2}, {4623,55481,2},{4615,55476,2},{4612,55481,2},{4608,55478,2},{4600,55483,2}, {4588,55496,2},{4592,55503,2},{4590,55504,2},{4583,55499,2},{4573,55506,2}, {4570,55506,2},{4563,55494,2},{4555,55491,2},{4552,55494,2},{4548,55504,2}, {4543,55506,2},{4538,55511,2},{4532,55506,2},{4528,55509,2},{4523,55511,2}, {4517,55509,2},{4508,55504,2},{4507,55506,2},{4507,55511,2},{4500,55508,2}, {4502,55501,2},{4500,55496,2},{4495,55496,2},{4488,55498,2},{4477,55486,2}, {4473,55479,2},{4477,55474,2},{4480,55469,2},{4478,55468,2},{4470,55476,2}, {4462,55474,2},{4458,55476,2},{4457,55481,2},{4458,55484,2},{4462,55489,2}, {4457,55488,2},{4455,55489,2},{4448,55481,2},{4448,55491,2},{4450,55494,2}, {4448,55496,2},{4447,55498,2},{4443,55496,2},{4445,55491,2},{4443,55479,2}, {4447,55474,2},{4452,55471,2},{4452,55474,2},{4455,55479,2},{4455,55473,2}, {4458,55468,2},{4467,55469,2},{4467,55468,2},{4470,55469,2},{4473,55466,2}, {4473,55461,2},{4473,55459,2},{4475,55458,2},{4477,55451,2},{4475,55443,2}, {4475,55441,2},{4472,55434,2},{4473,55423,2},{4470,55416,2},{4470,55414,2}, {4477,55421,2},{4477,55436,2},{4478,55439,2},{4482,55438,2},{4483,55444,2}, {4480,55446,2},{4480,55451,2},{4485,55449,2},{4480,55456,2},{4482,55459,2}, {4483,55461,2},{4488,55458,2},{4488,55459,2},{4488,55466,2},{4485,55469,2}, {4485,55473,2},{4478,55478,2},{4478,55481,2},{4482,55483,2},{4490,55481,2}, {4485,55489,2},{4488,55493,2},{4505,55488,2},{4503,55493,2},{4505,55498,2}, {4505,55503,2},{4512,55501,2},{4518,55504,2},{4520,55503,2},{4522,55506,2}, {4525,55506,2},{4530,55503,2},{4532,55499,2},{4535,55498,2},{4537,55486,2}, {4533,55474,2},{4533,55464,2},{4540,55491,2},{4535,55501,2},{4538,55506,2}, {4548,55498,2},{4550,55488,2},{4565,55474,2},{4565,55469,2},{4568,55474,2}, {4565,55479,2},{4560,55488,2},{4562,55491,2},{4568,55494,2},{4568,55503,2}, {4587,55494,2},{4587,55493,2},{4588,55488,2},{4592,55481,2},{4600,55478,2}, {4603,55474,2},{4607,55474,2},{4610,55469,2},{4613,55471,2},{4617,55468,2}, {4622,55478,2},{4628,55478,2},{4633,55479,2},{4640,55478,2},{4642,55474,2}, {4645,55476,2},{4657,55476,2},{4662,55473,2},{4667,55458,2},{4672,55454,2}, {4668,55463,2},{4668,55468,2},{4395,55601,130},{4392,55601,2},{4385,55606,2}, {4380,55599,2},{4377,55594,2},{4372,55596,2},{4368,55591,2},{4367,55598,2}, {4365,55601,2},{4358,55603,2},{4352,55609,2},{4348,55606,2},{4348,55608,2}, {4345,55613,2},{4343,55621,2},{4332,55631,2},{4328,55638,2},{4325,55648,2}, {4318,55651,2},{4317,55659,2},{4317,55663,2},{4310,55666,2},{4308,55679,2}, {4305,55681,2},{4307,55664,2},{4310,55661,2},{4313,55658,2},{4315,55648,2}, {4318,55644,2},{4322,55646,2},{4323,55646,2},{4328,55634,2},{4342,55618,2}, {4343,55609,2},{4347,55604,2},{4350,55603,2},{4353,55606,2},{4357,55601,2}, {4363,55599,2},{4365,55596,2},{4365,55589,2},{4368,55588,2},{4370,55589,2}, {4372,55594,2},{4378,55593,2},{4380,55599,2},{4385,55604,2},{4392,55598,2}, {4398,55599,2},{4398,55603,2},{4395,55601,2},{3657,54104,130},{3647,54103,2}, {3642,54104,2},{3633,54099,2},{3620,54098,2},{3617,54099,2},{3612,54106,2}, {3607,54108,2},{3607,54111,2},{3605,54111,2},{3603,54114,2},{3603,54121,2}, {3607,54121,2},{3617,54126,2},{3620,54131,2},{3622,54134,2},{3627,54136,2}, {3615,54141,2},{3613,54144,2},{3610,54146,2},{3607,54151,2},{3607,54156,2}, {3603,54161,2},{3598,54161,2},{3595,54166,2},{3590,54168,2},{3585,54173,2}, {3583,54173,2},{3585,54169,2},{3587,54169,2},{3588,54164,2},{3593,54164,2}, {3597,54159,2},{3603,54158,2},{3605,54149,2},{3613,54143,2},{3612,54141,2}, {3612,54138,2},{3620,54136,2},{3618,54131,2},{3602,54124,2},{3600,54113,2}, {3602,54111,2},{3605,54103,2},{3610,54104,2},{3613,54101,2},{3610,54099,2}, {3612,54096,2},{3608,54096,2},{3605,54091,2},{3608,54089,2},{3610,54088,2}, {3615,54081,2},{3613,54079,2},{3613,54074,2},{3610,54069,2},{3608,54066,2}, {3607,54064,2},{3603,54066,2},{3602,54063,2},{3603,54063,2},{3603,54061,2}, {3605,54054,2},{3608,54056,2},{3613,54051,2},{3613,54064,2},{3615,54064,2}, {3615,54068,2},{3617,54079,2},{3617,54091,2},{3627,54094,2},{3633,54093,2}, {3643,54099,2},{3647,54099,2},{3647,54096,2},{3650,54094,2},{3648,54101,2}, {3652,54101,2},{3658,54103,2},{3657,54104,2},{3788,54498,130},{3785,54496,2}, {3780,54498,2},{3780,54494,2},{3780,54493,2},{3778,54494,2},{3772,54494,2}, {3770,54491,2},{3765,54491,2},{3762,54481,2},{3757,54478,2},{3752,54473,2}, {3748,54473,2},{3747,54466,2},{3745,54466,2},{3743,54471,2},{3738,54466,2}, {3735,54466,2},{3732,54463,2},{3728,54454,2},{3723,54453,2},{3720,54449,2}, {3718,54456,2},{3718,54468,2},{3722,54471,2},{3720,54473,2},{3718,54469,2}, {3717,54463,2},{3718,54448,2},{3712,54439,2},{3710,54429,2},{3708,54426,2}, {3710,54424,2},{3708,54423,2},{3708,54419,2},{3705,54419,2},{3703,54423,2}, {3700,54423,2},{3703,54416,2},{3702,54414,2},{3698,54414,2},{3703,54409,2}, {3700,54408,2},{3700,54398,2},{3697,54399,2},{3695,54398,2},{3693,54389,2}, {3700,54386,2},{3705,54381,2},{3703,54393,2},{3705,54394,2},{3710,54391,2}, {3703,54399,2},{3703,54404,2},{3705,54404,2},{3707,54403,2},{3710,54403,2}, {3712,54409,2},{3717,54406,2},{3715,54411,2},{3708,54416,2},{3713,54419,2}, {3718,54418,2},{3715,54424,2},{3712,54424,2},{3713,54441,2},{3727,54449,2}, {3732,54446,2},{3730,54453,2},{3732,54453,2},{3733,54451,2},{3735,54449,2}, {3733,54458,2},{3737,54463,2},{3740,54463,2},{3743,54466,2},{3752,54459,2}, {3750,54463,2},{3757,54459,2},{3757,54461,2},{3750,54468,2},{3750,54471,2}, {3757,54473,2},{3765,54481,2},{3767,54486,2},{3770,54488,2},{3777,54491,2}, {3778,54489,2},{3782,54489,2},{3785,54493,2},{3788,54494,2},{3790,54494,2}, {3790,54499,2},{3788,54498,2},{3697,56714,130},{3687,56723,2},{3662,56733,2}, {3652,56736,2},{3643,56733,2},{3632,56741,2},{3618,56743,2},{3617,56746,2}, {3610,56744,2},{3603,56738,2},{3600,56736,2},{3595,56736,2},{3593,56739,2}, {3593,56734,2},{3597,56733,2},{3600,56736,2},{3605,56733,2},{3607,56738,2}, {3613,56743,2},{3632,56738,2},{3640,56731,2},{3635,56728,2},{3625,56728,2}, {3625,56726,2},{3630,56726,2},{3630,56721,2},{3633,56723,2},{3638,56726,2}, {3640,56724,2},{3643,56728,2},{3653,56731,2},{3660,56729,2},{3662,56726,2}, {3665,56728,2},{3668,56728,2},{3672,56724,2},{3693,56714,2},{3698,56708,2}, {3702,56708,2},{3697,56714,2},{3485,56784,130},{3482,56793,2},{3482,56804,2}, {3477,56808,2},{3477,56816,2},{3470,56826,2},{3468,56836,2},{3463,56839,2}, {3462,56843,2},{3457,56846,2},{3468,56821,2},{3472,56821,2},{3473,56819,2}, {3475,56813,2},{3473,56809,2},{3480,56798,2},{3480,56791,2},{3482,56781,2}, {3480,56778,2},{3477,56766,2},{3478,56768,2},{3485,56784,2},{1212,56959,130}, {1208,56964,2},{1203,56973,2},{1205,56976,2},{1205,56978,2},{1187,56993,2}, {1188,56994,2},{1187,57001,2},{1183,57006,2},{1180,57009,2},{1175,57018,2}, {1157,57031,2},{1143,57043,2},{1143,57046,2},{1137,57048,2},{1133,57051,2}, {1132,57049,2},{1130,57054,2},{1127,57058,2},{1122,57058,2},{1113,57058,2}, {1110,57059,2},{1105,57054,2},{1102,57048,2},{1103,57044,2},{1105,57043,2}, {1105,57038,2},{1107,57038,2},{1108,57024,2},{1110,57019,2},{1108,57016,2}, {1110,57011,2},{1115,57003,2},{1117,56993,2},{1120,56984,2},{1123,56981,2}, {1125,56974,2},{1135,56963,2},{1145,56958,2},{1150,56958,2},{1158,56951,2}, {1160,56949,2},{1162,56949,2},{1160,56951,2},{1168,56949,2},{1165,56949,2}, {1172,56944,2},{1173,56944,2},{1175,56948,2},{1180,56948,2},{1188,56943,2}, {1190,56944,2},{1188,56946,2},{1190,56946,2},{1192,56943,2},{1198,56943,2}, {1208,56949,2},{1208,56954,2},{1212,56958,2},{1212,56959,2},{888,57576,131}, {893,57573,3},{900,57564,3},{903,57563,3},{903,57558,3},{905,57554,3},{903,57554,3}, {903,57553,3},{905,57549,3},{907,57549,3},{907,57553,3},{910,57549,3},{910,57546,3}, {910,57544,3},{908,57546,3},{907,57544,3},{908,57543,3},{907,57543,3},{908,57541,3}, {902,57541,3},{900,57541,3},{903,57539,3},{902,57538,3},{907,57536,3},{905,57533,3}, {902,57536,3},{903,57533,3},{902,57534,3},{900,57533,3},{903,57531,3},{902,57528,3}, {905,57531,3},{907,57531,3},{910,57534,3},{910,57536,3},{912,57538,3},{912,57539,3}, {913,57541,3},{917,57538,3},{927,57538,3},{927,57533,3},{935,57539,3},{935,57543,3}, {930,57543,3},{930,57544,3},{935,57546,3},{935,57549,3},{937,57548,3},{937,57549,3}, {938,57549,3},{937,57553,3},{932,57553,3},{933,57554,3},{932,57556,3},{928,57554,3}, {925,57554,3},{925,57559,3},{923,57554,3},{922,57559,3},{918,57563,3},{918,57568,3}, {918,57571,3},{922,57571,3},{922,57578,3},{925,57578,3},{923,57576,3},{925,57578,3}, {932,57578,3},{933,57581,3},{928,57579,3},{925,57579,3},{922,57583,3},{922,57581,3}, {918,57579,3},{918,57574,3},{915,57573,3},{912,57574,3},{902,57584,3},{900,57583,3}, {893,57583,3},{890,57584,3},{895,57579,3},{890,57581,3},{888,57578,3},{888,57576,3}, {803,57246,131},{805,57244,3},{810,57246,3},{823,57239,3},{835,57221,3}, {838,57223,3},{840,57224,3},{845,57226,3},{853,57221,3},{855,57226,3},{855,57221,3}, {857,57219,3},{860,57218,3},{862,57219,3},{860,57221,3},{857,57221,3},{858,57224,3}, {863,57219,3},{862,57218,3},{863,57213,3},{862,57213,3},{865,57211,3},{865,57206,3}, {867,57203,3},{872,57203,3},{873,57198,3},{870,57194,3},{872,57188,3},{868,57188,3}, {865,57193,3},{862,57193,3},{858,57196,3},{853,57208,3},{850,57208,3},{847,57209,3}, {843,57208,3},{842,57209,3},{838,57208,3},{837,57208,3},{840,57198,3},{842,57196,3}, {842,57199,3},{843,57196,3},{842,57196,3},{845,57188,3},{843,57179,3},{858,57166,3}, {858,57163,3},{862,57163,3},{868,57166,3},{868,57171,3},{873,57173,3},{875,57173,3}, {878,57179,3},{878,57174,3},{877,57173,3},{878,57171,3},{883,57178,3},{888,57174,3}, {888,57179,3},{890,57176,3},{890,57173,3},{892,57174,3},{893,57173,3},{897,57176,3}, {903,57173,3},{907,57169,3},{913,57163,3},{915,57159,3},{918,57159,3},{922,57153,3}, {930,57143,3},{940,57119,3},{943,57119,3},{947,57116,3},{947,57113,3},{945,57116,3}, {948,57109,3},{953,57088,3},{952,57083,3},{955,57081,3},{953,57081,3},{957,57074,3}, {960,57073,3},{962,57069,3},{965,57071,3},{965,57068,3},{968,57069,3},{975,57073,3}, {977,57073,3},{987,57066,3},{988,57064,3},{992,57066,3},{995,57063,3},{997,57063,3}, {997,57051,3},{998,57058,3},{1000,57048,3},{1005,57041,3},{1007,57039,3}, {1010,57036,3},{1012,57034,3},{1013,57029,3},{1015,57029,3},{1017,57028,3}, {1015,57023,3},{1017,57016,3},{1020,57013,3},{1023,57013,3},{1028,57008,3}, {1027,57008,3},{1023,57011,3},{1010,57013,3},{1008,57016,3},{1005,57019,3}, {1005,57021,3},{1003,57021,3},{1003,57018,3},{998,57026,3},{997,57031,3}, {993,57036,3},{993,57044,3},{990,57044,3},{988,57043,3},{985,57046,3},{983,57043,3}, {982,57049,3},{978,57044,3},{977,57043,3},{975,57041,3},{973,57041,3},{973,57036,3}, {972,57034,3},{970,57036,3},{967,57029,3},{957,57026,3},{955,57024,3},{973,57013,3}, {975,57009,3},{978,57009,3},{983,57001,3},{985,56993,3},{985,56989,3},{987,56984,3}, {987,56979,3},{990,56973,3},{990,56969,3},{992,56969,3},{997,56968,3},{1002,56963,3}, {1010,56956,3},{1025,56951,3},{1028,56951,3},{1032,56953,3},{1035,56949,3}, {1040,56953,3},{1042,56956,3},{1043,56956,3},{1045,56958,3},{1052,56956,3}, {1053,56958,3},{1055,56966,3},{1057,56966,3},{1057,56968,3},{1058,56968,3}, {1058,56971,3},{1062,56973,3},{1063,56971,3},{1060,56968,3},{1062,56966,3}, {1063,56969,3},{1063,56968,3},{1067,56968,3},{1067,56971,3},{1077,56969,3}, {1080,56968,3},{1082,56963,3},{1080,56959,3},{1082,56958,3},{1082,56956,3}, {1085,56958,3},{1085,56951,3},{1088,56946,3},{1088,56941,3},{1092,56949,3}, {1095,56949,3},{1095,56954,3},{1092,56954,3},{1090,56956,3},{1092,56958,3}, {1093,56958,3},{1093,56963,3},{1092,56964,3},{1095,56964,3},{1097,56968,3}, {1102,56961,3},{1105,56964,3},{1103,56968,3},{1103,56969,3},{1105,56969,3}, {1107,56968,3},{1122,56974,3},{1122,56979,3},{1117,56983,3},{1113,56994,3}, {1112,57001,3},{1093,57046,3},{1107,57069,3},{1103,57076,3},{1105,57079,3}, {1103,57081,3},{1100,57088,3},{1097,57091,3},{1097,57098,3},{1100,57101,3}, {1098,57103,3},{1095,57101,3},{1092,57104,3},{1087,57114,3},{1083,57116,3}, {1082,57113,3},{1078,57116,3},{1078,57123,3},{1077,57124,3},{1077,57129,3}, {1078,57131,3},{1078,57136,3},{1077,57136,3},{1070,57144,3},{1072,57148,3}, {1072,57151,3},{1077,57158,3},{1080,57169,3},{1082,57171,3},{1092,57169,3}, {1092,57171,3},{1087,57176,3},{1078,57178,3},{1078,57176,3},{1085,57174,3}, {1078,57174,3},{1075,57176,3},{1072,57173,3},{1075,57176,3},{1072,57178,3}, {1077,57179,3},{1072,57179,3},{1048,57189,3},{1013,57214,3},{1000,57226,3}, {998,57229,3},{1000,57229,3},{1000,57234,3},{995,57234,3},{975,57251,3}, {973,57253,3},{973,57256,3},{970,57256,3},{967,57259,3},{963,57266,3},{963,57273,3}, {957,57279,3},{953,57281,3},{955,57278,3},{953,57276,3},{948,57276,3},{948,57273,3}, {952,57268,3},{955,57266,3},{957,57263,3},{958,57261,3},{960,57254,3},{960,57251,3}, {957,57249,3},{955,57249,3},{955,57251,3},{952,57249,3},{950,57253,3},{947,57243,3}, {907,57243,3},{908,57246,3},{907,57248,3},{900,57256,3},{898,57261,3},{893,57264,3}, {888,57261,3},{883,57249,3},{882,57248,3},{882,57249,3},{880,57249,3},{877,57244,3}, {873,57244,3},{863,57253,3},{847,57253,3},{843,57249,3},{842,57243,3},{837,57239,3}, {832,57231,3},{827,57238,3},{827,57241,3},{825,57243,3},{820,57243,3},{810,57248,3}, {803,57246,3},{1107,56968,131},{1112,56958,3},{1118,56954,3},{1130,56944,3}, {1135,56936,3},{1145,56926,3},{1147,56921,3},{1152,56918,3},{1162,56901,3}, {1168,56898,3},{1177,56886,3},{1185,56881,3},{1190,56876,3},{1195,56873,3}, {1205,56866,3},{1220,56858,3},{1245,56819,3},{1247,56818,3},{1243,56826,3}, {1248,56821,3},{1252,56818,3},{1248,56819,3},{1248,56818,3},{1253,56813,3}, {1260,56803,3},{1263,56803,3},{1262,56803,3},{1263,56801,3},{1275,56789,3}, {1275,56791,3},{1278,56791,3},{1282,56784,3},{1280,56784,3},{1278,56788,3}, {1278,56786,3},{1290,56768,3},{1298,56769,3},{1302,56774,3},{1308,56778,3}, {1305,56778,3},{1305,56781,3},{1302,56786,3},{1298,56789,3},{1293,56789,3}, {1292,56794,3},{1290,56799,3},{1292,56806,3},{1293,56799,3},{1295,56799,3}, {1297,56806,3},{1300,56829,3},{1298,56831,3},{1298,56834,3},{1300,56834,3}, {1303,56841,3},{1307,56841,3},{1310,56846,3},{1313,56843,3},{1315,56844,3}, {1318,56843,3},{1325,56846,3},{1330,56854,3},{1327,56861,3},{1330,56866,3}, {1335,56866,3},{1338,56863,3},{1343,56864,3},{1358,56861,3},{1363,56861,3}, {1367,56859,3},{1375,56859,3},{1378,56866,3},{1377,56871,3},{1378,56879,3}, {1380,56883,3},{1377,56888,3},{1378,56891,3},{1375,56896,3},{1377,56903,3}, {1380,56908,3},{1383,56908,3},{1390,56914,3},{1397,56919,3},{1398,56923,3}, {1403,56924,3},{1407,56934,3},{1405,56936,3},{1402,56934,3},{1400,56934,3}, {1392,56944,3},{1392,56951,3},{1387,56953,3},{1383,56956,3},{1383,56963,3}, {1387,56964,3},{1388,56961,3},{1397,56963,3},{1397,56969,3},{1398,56969,3}, {1398,56971,3},{1400,56971,3},{1405,56983,3},{1410,56984,3},{1410,56988,3}, {1413,56994,3},{1423,56998,3},{1425,57003,3},{1427,57003,3},{1428,57004,3}, {1430,57009,3},{1430,57014,3},{1433,57019,3},{1435,57021,3},{1440,57016,3}, {1448,57021,3},{1453,57023,3},{1457,57021,3},{1457,57024,3},{1455,57028,3}, {1457,57033,3},{1460,57034,3},{1460,57031,3},{1463,57034,3},{1467,57031,3}, {1467,57033,3},{1470,57034,3},{1473,57038,3},{1477,57043,3},{1480,57046,3}, {1483,57053,3},{1480,57056,3},{1477,57061,3},{1475,57059,3},{1475,57061,3}, {1472,57061,3},{1468,57066,3},{1468,57068,3},{1465,57078,3},{1465,57083,3}, {1463,57083,3},{1462,57088,3},{1463,57094,3},{1472,57099,3},{1467,57103,3}, {1467,57109,3},{1468,57109,3},{1473,57109,3},{1477,57113,3},{1472,57118,3}, {1473,57126,3},{1478,57124,3},{1478,57126,3},{1478,57128,3},{1477,57128,3}, {1477,57131,3},{1475,57133,3},{1477,57141,3},{1475,57143,3},{1477,57143,3}, {1480,57144,3},{1477,57146,3},{1478,57148,3},{1478,57149,3},{1480,57153,3}, {1480,57156,3},{1482,57154,3},{1483,57161,3},{1485,57161,3},{1483,57166,3}, {1487,57164,3},{1488,57168,3},{1488,57173,3},{1487,57174,3},{1490,57176,3}, {1492,57179,3},{1493,57181,3},{1493,57183,3},{1495,57181,3},{1495,57183,3}, {1497,57183,3},{1497,57184,3},{1502,57186,3},{1498,57191,3},{1500,57194,3}, {1502,57198,3},{1500,57201,3},{1500,57208,3},{1498,57208,3},{1500,57223,3}, {1497,57219,3},{1498,57216,3},{1480,57206,3},{1480,57203,3},{1482,57206,3}, {1482,57204,3},{1483,57204,3},{1483,57208,3},{1490,57206,3},{1492,57204,3}, {1488,57199,3},{1480,57194,3},{1480,57198,3},{1475,57198,3},{1473,57201,3}, {1473,57203,3},{1475,57204,3},{1477,57201,3},{1477,57203,3},{1475,57204,3}, {1478,57204,3},{1477,57206,3},{1463,57208,3},{1445,57216,3},{1433,57218,3}, {1427,57216,3},{1417,57209,3},{1405,57203,3},{1400,57196,3},{1395,57193,3}, {1363,57184,3},{1353,57184,3},{1345,57181,3},{1322,57179,3},{1290,57186,3}, {1282,57184,3},{1262,57183,3},{1253,57184,3},{1247,57188,3},{1240,57188,3}, {1238,57186,3},{1238,57178,3},{1237,57174,3},{1238,57173,3},{1242,57176,3}, {1248,57173,3},{1257,57173,3},{1257,57179,3},{1258,57179,3},{1267,57179,3}, {1272,57181,3},{1275,57179,3},{1277,57183,3},{1280,57181,3},{1282,57176,3}, {1280,57173,3},{1280,57171,3},{1277,57173,3},{1275,57171,3},{1273,57174,3}, {1272,57174,3},{1268,57176,3},{1262,57178,3},{1255,57166,3},{1255,57161,3}, {1252,57159,3},{1247,57158,3},{1248,57163,3},{1247,57163,3},{1233,57164,3}, {1233,57166,3},{1235,57168,3},{1233,57169,3},{1228,57169,3},{1235,57171,3}, {1235,57173,3},{1233,57174,3},{1223,57169,3},{1215,57168,3},{1198,57169,3}, {1207,57164,3},{1208,57164,3},{1210,57168,3},{1217,57164,3},{1217,57158,3}, {1215,57159,3},{1215,57163,3},{1212,57166,3},{1205,57163,3},{1205,57156,3}, {1202,57161,3},{1193,57159,3},{1187,57153,3},{1180,57159,3},{1180,57163,3}, {1183,57161,3},{1187,57163,3},{1185,57166,3},{1162,57171,3},{1160,57171,3}, {1160,57168,3},{1157,57164,3},{1155,57159,3},{1145,57158,3},{1143,57154,3}, {1142,57153,3},{1132,57149,3},{1117,57151,3},{1107,57156,3},{1092,57164,3}, {1092,57166,3},{1093,57166,3},{1092,57171,3},{1092,57169,3},{1082,57171,3}, {1080,57169,3},{1077,57158,3},{1072,57151,3},{1072,57148,3},{1070,57144,3}, {1077,57136,3},{1078,57136,3},{1078,57131,3},{1077,57129,3},{1077,57124,3}, {1078,57123,3},{1078,57116,3},{1082,57113,3},{1083,57116,3},{1087,57114,3}, {1092,57104,3},{1095,57101,3},{1098,57103,3},{1100,57101,3},{1097,57098,3}, {1097,57091,3},{1100,57088,3},{1103,57081,3},{1105,57079,3},{1103,57076,3}, {1107,57069,3},{1093,57046,3},{1112,57001,3},{1113,56994,3},{1117,56983,3}, {1122,56979,3},{1122,56974,3},{1107,56968,3},{1297,56806,131},{1303,56809,3}, {1303,56804,3},{1307,56801,3},{1310,56806,3},{1312,56796,3},{1310,56794,3}, {1313,56794,3},{1323,56789,3},{1327,56788,3},{1327,56784,3},{1335,56791,3}, {1337,56798,3},{1340,56798,3},{1342,56796,3},{1340,56793,3},{1342,56791,3}, {1340,56788,3},{1335,56789,3},{1335,56783,3},{1335,56781,3},{1337,56781,3}, {1338,56778,3},{1337,56774,3},{1340,56776,3},{1342,56774,3},{1343,56774,3}, {1347,56773,3},{1343,56771,3},{1338,56769,3},{1335,56764,3},{1335,56761,3}, {1340,56758,3},{1340,56753,3},{1343,56753,3},{1345,56756,3},{1345,56759,3}, {1343,56761,3},{1345,56764,3},{1350,56764,3},{1352,56761,3},{1350,56759,3}, {1353,56758,3},{1362,56761,3},{1368,56761,3},{1372,56764,3},{1375,56763,3}, {1382,56766,3},{1390,56758,3},{1390,56749,3},{1390,56746,3},{1388,56744,3}, {1390,56741,3},{1387,56736,3},{1393,56733,3},{1393,56731,3},{1397,56729,3}, {1398,56724,3},{1398,56719,3},{1398,56716,3},{1393,56713,3},{1393,56711,3}, {1390,56709,3},{1388,56704,3},{1390,56703,3},{1387,56701,3},{1388,56698,3}, {1388,56694,3},{1385,56689,3},{1387,56688,3},{1398,56686,3},{1398,56679,3}, {1403,56666,3},{1410,56663,3},{1412,56656,3},{1418,56649,3},{1420,56641,3}, {1425,56638,3},{1428,56634,3},{1433,56634,3},{1443,56601,3},{1448,56601,3}, {1450,56606,3},{1458,56611,3},{1458,56616,3},{1457,56619,3},{1460,56621,3}, {1467,56621,3},{1472,56623,3},{1473,56619,3},{1478,56619,3},{1485,56614,3}, {1488,56614,3},{1492,56618,3},{1498,56621,3},{1500,56618,3},{1507,56621,3}, {1513,56638,3},{1525,56653,3},{1535,56669,3},{1542,56676,3},{1543,56681,3}, {1563,56703,3},{1567,56704,3},{1568,56713,3},{1572,56713,3},{1572,56714,3}, {1568,56721,3},{1568,56724,3},{1573,56728,3},{1577,56733,3},{1578,56733,3}, {1578,56738,3},{1582,56743,3},{1583,56744,3},{1585,56741,3},{1587,56741,3}, {1587,56746,3},{1588,56749,3},{1590,56754,3},{1590,56761,3},{1592,56764,3}, {1588,56773,3},{1590,56773,3},{1593,56778,3},{1590,56774,3},{1587,56776,3}, {1580,56783,3},{1578,56789,3},{1578,56791,3},{1582,56794,3},{1582,56798,3}, {1585,56801,3},{1575,56841,3},{1577,56853,3},{1580,56859,3},{1578,56868,3}, {1580,56888,3},{1577,56894,3},{1577,56901,3},{1582,56909,3},{1585,56913,3}, {1588,56918,3},{1590,56924,3},{1590,56936,3},{1592,56941,3},{1597,56946,3}, {1600,56946,3},{1600,56939,3},{1602,56934,3},{1603,56936,3},{1602,56946,3}, {1602,56949,3},{1600,56959,3},{1597,56968,3},{1593,56968,3},{1595,56969,3}, {1592,56976,3},{1588,56986,3},{1590,57018,3},{1593,57026,3},{1598,57033,3}, {1598,57039,3},{1588,57068,3},{1587,57074,3},{1582,57073,3},{1577,57076,3}, {1578,57079,3},{1582,57079,3},{1582,57081,3},{1578,57081,3},{1578,57084,3}, {1578,57088,3},{1582,57089,3},{1582,57096,3},{1585,57079,3},{1587,57078,3}, {1583,57096,3},{1583,57109,3},{1572,57121,3},{1568,57126,3},{1545,57151,3}, {1540,57164,3},{1538,57163,3},{1543,57151,3},{1545,57146,3},{1547,57146,3}, {1552,57143,3},{1553,57136,3},{1553,57133,3},{1552,57131,3},{1552,57128,3}, {1553,57128,3},{1553,57129,3},{1555,57129,3},{1553,57126,3},{1548,57128,3}, {1555,57123,3},{1555,57114,3},{1552,57116,3},{1552,57118,3},{1548,57118,3}, {1550,57119,3},{1550,57121,3},{1553,57121,3},{1553,57123,3},{1545,57128,3}, {1543,57124,3},{1540,57124,3},{1535,57128,3},{1533,57133,3},{1535,57134,3}, {1537,57133,3},{1535,57136,3},{1532,57134,3},{1530,57136,3},{1530,57143,3}, {1528,57141,3},{1523,57144,3},{1525,57153,3},{1527,57153,3},{1532,57146,3}, {1535,57138,3},{1540,57133,3},{1542,57136,3},{1540,57141,3},{1533,57149,3}, {1532,57154,3},{1530,57156,3},{1527,57154,3},{1528,57158,3},{1527,57159,3}, {1520,57161,3},{1522,57161,3},{1520,57164,3},{1522,57164,3},{1523,57166,3}, {1525,57173,3},{1528,57174,3},{1528,57183,3},{1525,57184,3},{1520,57181,3}, {1523,57178,3},{1520,57174,3},{1517,57174,3},{1520,57176,3},{1517,57176,3}, {1515,57179,3},{1520,57184,3},{1522,57188,3},{1523,57186,3},{1528,57186,3}, {1530,57183,3},{1532,57178,3},{1530,57174,3},{1532,57174,3},{1537,57164,3}, {1540,57166,3},{1535,57174,3},{1525,57198,3},{1522,57201,3},{1510,57204,3}, {1507,57208,3},{1503,57213,3},{1500,57223,3},{1498,57208,3},{1500,57208,3}, {1500,57201,3},{1502,57198,3},{1500,57194,3},{1498,57191,3},{1502,57186,3}, {1497,57184,3},{1497,57183,3},{1495,57183,3},{1495,57181,3},{1493,57183,3}, {1493,57181,3},{1492,57179,3},{1490,57176,3},{1487,57174,3},{1488,57173,3}, {1488,57168,3},{1487,57164,3},{1483,57166,3},{1485,57161,3},{1483,57161,3}, {1482,57154,3},{1480,57156,3},{1480,57153,3},{1478,57149,3},{1478,57148,3}, {1477,57146,3},{1480,57144,3},{1477,57143,3},{1475,57143,3},{1477,57141,3}, {1475,57133,3},{1477,57131,3},{1477,57128,3},{1478,57128,3},{1478,57126,3}, {1478,57124,3},{1473,57126,3},{1472,57118,3},{1477,57113,3},{1473,57109,3}, {1468,57109,3},{1467,57109,3},{1467,57103,3},{1472,57099,3},{1463,57094,3}, {1462,57088,3},{1463,57083,3},{1465,57083,3},{1465,57078,3},{1468,57068,3}, {1468,57066,3},{1472,57061,3},{1475,57061,3},{1475,57059,3},{1477,57061,3}, {1480,57056,3},{1483,57053,3},{1480,57046,3},{1477,57043,3},{1473,57038,3}, {1470,57034,3},{1467,57033,3},{1467,57031,3},{1463,57034,3},{1460,57031,3}, {1460,57034,3},{1457,57033,3},{1455,57028,3},{1457,57024,3},{1457,57021,3}, {1453,57023,3},{1448,57021,3},{1440,57016,3},{1435,57021,3},{1433,57019,3}, {1430,57014,3},{1430,57009,3},{1428,57004,3},{1427,57003,3},{1425,57003,3}, {1423,56998,3},{1413,56994,3},{1410,56988,3},{1410,56984,3},{1405,56983,3}, {1400,56971,3},{1398,56971,3},{1398,56969,3},{1397,56969,3},{1397,56963,3}, {1388,56961,3},{1387,56964,3},{1383,56963,3},{1383,56956,3},{1387,56953,3}, {1392,56951,3},{1392,56944,3},{1400,56934,3},{1402,56934,3},{1405,56936,3}, {1407,56934,3},{1403,56924,3},{1398,56923,3},{1397,56919,3},{1390,56914,3}, {1383,56908,3},{1380,56908,3},{1377,56903,3},{1375,56896,3},{1378,56891,3}, {1377,56888,3},{1380,56883,3},{1378,56879,3},{1377,56871,3},{1378,56866,3}, {1375,56859,3},{1367,56859,3},{1363,56861,3},{1358,56861,3},{1343,56864,3}, {1338,56863,3},{1335,56866,3},{1330,56866,3},{1327,56861,3},{1330,56854,3}, {1325,56846,3},{1318,56843,3},{1315,56844,3},{1313,56843,3},{1310,56846,3}, {1307,56841,3},{1303,56841,3},{1300,56834,3},{1298,56834,3},{1298,56831,3}, {1300,56829,3},{1297,56806,3},{1343,56753,131},{1338,56749,3},{1337,56749,3}, {1328,56758,3},{1323,56753,3},{1320,56744,3},{1317,56746,3},{1315,56746,3}, {1317,56731,3},{1315,56714,3},{1317,56703,3},{1317,56701,3},{1318,56704,3}, {1320,56703,3},{1323,56701,3},{1320,56703,3},{1318,56696,3},{1317,56699,3}, {1317,56693,3},{1320,56693,3},{1320,56694,3},{1322,56694,3},{1325,56691,3}, {1325,56689,3},{1322,56691,3},{1322,56686,3},{1325,56683,3},{1327,56681,3}, {1328,56676,3},{1327,56671,3},{1327,56664,3},{1325,56671,3},{1327,56678,3}, {1322,56683,3},{1323,56676,3},{1320,56688,3},{1317,56691,3},{1318,56684,3}, {1323,56659,3},{1325,56653,3},{1328,56648,3},{1337,56631,3},{1343,56619,3}, {1348,56606,3},{1350,56586,3},{1350,56584,3},{1353,56568,3},{1353,56554,3}, {1362,56551,3},{1375,56526,3},{1383,56526,3},{1388,56528,3},{1390,56533,3}, {1393,56534,3},{1398,56543,3},{1403,56546,3},{1407,56554,3},{1403,56559,3}, {1403,56563,3},{1408,56561,3},{1417,56568,3},{1422,56574,3},{1420,56578,3}, {1423,56584,3},{1425,56584,3},{1427,56583,3},{1430,56581,3},{1432,56578,3}, {1435,56579,3},{1438,56578,3},{1442,56579,3},{1442,56583,3},{1438,56583,3}, {1443,56588,3},{1443,56589,3},{1442,56593,3},{1445,56596,3},{1443,56601,3}, {1433,56634,3},{1428,56634,3},{1425,56638,3},{1420,56641,3},{1418,56649,3}, {1412,56656,3},{1410,56663,3},{1403,56666,3},{1398,56679,3},{1398,56686,3}, {1387,56688,3},{1385,56689,3},{1388,56694,3},{1388,56698,3},{1387,56701,3}, {1390,56703,3},{1388,56704,3},{1390,56709,3},{1393,56711,3},{1393,56713,3}, {1398,56716,3},{1398,56719,3},{1398,56724,3},{1397,56729,3},{1393,56731,3}, {1393,56733,3},{1387,56736,3},{1390,56741,3},{1388,56744,3},{1390,56746,3}, {1390,56749,3},{1390,56758,3},{1382,56766,3},{1375,56763,3},{1372,56764,3}, {1368,56761,3},{1362,56761,3},{1353,56758,3},{1350,56759,3},{1352,56761,3}, {1350,56764,3},{1345,56764,3},{1343,56761,3},{1345,56759,3},{1345,56756,3}, {1343,56753,3},{1590,56644,131},{1590,56636,3},{1592,56631,3},{1590,56624,3}, {1592,56619,3},{1590,56618,3},{1590,56614,3},{1702,56621,3},{1782,56621,3}, {1795,56621,3},{1800,56633,3},{1800,56634,3},{1797,56638,3},{1797,56643,3}, {1788,56651,3},{1793,56653,3},{1798,56659,3},{1803,56661,3},{1807,56664,3}, {1812,56666,3},{1817,56668,3},{1818,56668,3},{1823,56676,3},{1830,56678,3}, {1833,56681,3},{1840,56683,3},{1848,56688,3},{1848,56689,3},{1848,56693,3}, {1848,56696,3},{1848,56708,3},{1848,56706,3},{1845,56708,3},{1843,56706,3}, {1838,56698,3},{1835,56698,3},{1837,56704,3},{1830,56699,3},{1835,56709,3}, {1837,56714,3},{1835,56714,3},{1835,56716,3},{1833,56718,3},{1835,56721,3}, {1837,56726,3},{1835,56726,3},{1832,56721,3},{1833,56726,3},{1832,56728,3}, {1830,56728,3},{1822,56728,3},{1812,56728,3},{1797,56721,3},{1788,56716,3}, {1772,56713,3},{1762,56708,3},{1757,56709,3},{1755,56713,3},{1753,56714,3}, {1750,56719,3},{1748,56718,3},{1748,56713,3},{1748,56711,3},{1723,56706,3}, {1712,56708,3},{1708,56709,3},{1707,56713,3},{1697,56716,3},{1693,56711,3}, {1690,56708,3},{1687,56708,3},{1682,56711,3},{1680,56708,3},{1677,56706,3}, {1665,56706,3},{1660,56703,3},{1650,56701,3},{1650,56699,3},{1660,56701,3}, {1667,56704,3},{1662,56701,3},{1658,56699,3},{1655,56698,3},{1655,56699,3}, {1655,56696,3},{1653,56699,3},{1647,56694,3},{1643,56694,3},{1642,56691,3}, {1640,56693,3},{1638,56689,3},{1627,56683,3},{1627,56679,3},{1625,56678,3}, {1628,56678,3},{1625,56676,3},{1628,56673,3},{1627,56671,3},{1625,56671,3}, {1623,56663,3},{1622,56661,3},{1617,56663,3},{1613,56661,3},{1612,56658,3}, {1608,56654,3},{1607,56651,3},{1603,56651,3},{1598,56644,3},{1595,56643,3}, {1592,56646,3},{1590,56644,3},{1455,56311,131},{1455,56314,3},{1458,56318,3}, {1468,56321,3},{1485,56318,3},{1490,56323,3},{1500,56321,3},{1502,56323,3}, {1503,56328,3},{1508,56329,3},{1512,56326,3},{1515,56323,3},{1520,56319,3}, {1523,56316,3},{1527,56314,3},{1530,56318,3},{1535,56321,3},{1540,56323,3}, {1545,56326,3},{1548,56328,3},{1553,56331,3},{1558,56334,3},{1563,56336,3}, {1567,56339,3},{1572,56341,3},{1577,56344,3},{1580,56348,3},{1585,56349,3}, {1590,56353,3},{1595,56356,3},{1598,56358,3},{1603,56361,3},{1608,56363,3}, {1608,56369,3},{1608,56374,3},{1608,56379,3},{1608,56386,3},{1608,56391,3}, {1608,56396,3},{1608,56401,3},{1608,56406,3},{1608,56413,3},{1608,56418,3}, {1608,56423,3},{1608,56428,3},{1608,56433,3},{1608,56439,3},{1608,56444,3}, {1608,56449,3},{1608,56454,3},{1608,56461,3},{1608,56466,3},{1608,56471,3}, {1608,56476,3},{1608,56481,3},{1608,56488,3},{1608,56491,3},{1610,56493,3}, {1610,56491,3},{1612,56489,3},{1613,56493,3},{1615,56491,3},{1617,56493,3}, {1618,56489,3},{1622,56489,3},{1623,56493,3},{1625,56489,3},{1627,56491,3}, {1627,56493,3},{1628,56493,3},{1628,56494,3},{1630,56491,3},{1633,56498,3}, {1637,56494,3},{1637,56498,3},{1638,56496,3},{1642,56496,3},{1643,56488,3}, {1645,56488,3},{1647,56486,3},{1647,56483,3},{1648,56481,3},{1648,56478,3}, {1648,56474,3},{1648,56473,3},{1652,56474,3},{1652,56471,3},{1655,56471,3}, {1658,56473,3},{1660,56473,3},{1658,56469,3},{1660,56471,3},{1665,56471,3}, {1673,56464,3},{1678,56456,3},{1680,56456,3},{1680,56451,3},{1682,56448,3}, {1683,56444,3},{1685,56443,3},{1687,56439,3},{1688,56441,3},{1690,56441,3}, {1690,56438,3},{1687,56438,3},{1690,56434,3},{1690,56429,3},{1693,56429,3}, {1698,56424,3},{1702,56424,3},{1703,56418,3},{1712,56413,3},{1713,56409,3}, {1718,56408,3},{1718,56401,3},{1722,56398,3},{1722,56394,3},{1723,56393,3}, {1725,56393,3},{1725,56398,3},{1725,56403,3},{1725,56409,3},{1725,56414,3}, {1725,56419,3},{1725,56424,3},{1725,56431,3},{1725,56436,3},{1725,56438,3}, {1730,56438,3},{1737,56438,3},{1742,56438,3},{1747,56438,3},{1752,56438,3}, {1757,56438,3},{1762,56438,3},{1767,56438,3},{1772,56438,3},{1777,56438,3}, {1782,56438,3},{1782,56443,3},{1782,56449,3},{1782,56454,3},{1782,56459,3}, {1782,56464,3},{1782,56469,3},{1782,56476,3},{1782,56481,3},{1782,56486,3}, {1782,56491,3},{1782,56498,3},{1782,56503,3},{1782,56508,3},{1782,56513,3}, {1782,56519,3},{1782,56524,3},{1782,56529,3},{1782,56534,3},{1782,56541,3}, {1782,56546,3},{1782,56551,3},{1782,56556,3},{1782,56561,3},{1782,56568,3}, {1782,56573,3},{1782,56578,3},{1782,56583,3},{1782,56589,3},{1782,56594,3}, {1782,56599,3},{1782,56604,3},{1782,56611,3},{1782,56616,3},{1782,56621,3}, {1702,56621,3},{1590,56614,3},{1590,56618,3},{1592,56619,3},{1590,56624,3}, {1592,56631,3},{1590,56636,3},{1590,56644,3},{1587,56649,3},{1587,56654,3}, {1587,56656,3},{1583,56661,3},{1582,56661,3},{1575,56674,3},{1572,56673,3}, {1570,56673,3},{1572,56676,3},{1573,56676,3},{1575,56678,3},{1577,56679,3}, {1578,56681,3},{1585,56681,3},{1583,56681,3},{1585,56688,3},{1593,56676,3}, {1595,56674,3},{1597,56676,3},{1595,56681,3},{1585,56693,3},{1580,56703,3}, {1573,56711,3},{1572,56714,3},{1572,56713,3},{1568,56713,3},{1567,56704,3}, {1563,56703,3},{1543,56681,3},{1542,56676,3},{1535,56669,3},{1525,56653,3}, {1513,56638,3},{1507,56621,3},{1500,56618,3},{1498,56621,3},{1492,56618,3}, {1488,56614,3},{1485,56614,3},{1478,56619,3},{1473,56619,3},{1472,56623,3}, {1467,56621,3},{1460,56621,3},{1457,56619,3},{1458,56616,3},{1458,56611,3}, {1450,56606,3},{1448,56601,3},{1443,56601,3},{1445,56596,3},{1442,56593,3}, {1443,56589,3},{1443,56588,3},{1438,56583,3},{1442,56583,3},{1442,56579,3}, {1438,56578,3},{1435,56579,3},{1432,56578,3},{1430,56581,3},{1427,56583,3}, {1425,56584,3},{1423,56584,3},{1420,56578,3},{1422,56574,3},{1417,56568,3}, {1408,56561,3},{1403,56563,3},{1403,56559,3},{1407,56554,3},{1403,56546,3}, {1398,56543,3},{1393,56534,3},{1390,56533,3},{1388,56528,3},{1383,56526,3}, {1375,56526,3},{1377,56521,3},{1378,56516,3},{1380,56511,3},{1382,56506,3}, {1385,56503,3},{1387,56498,3},{1388,56491,3},{1390,56488,3},{1392,56483,3}, {1393,56476,3},{1393,56471,3},{1393,56466,3},{1393,56461,3},{1393,56456,3}, {1392,56449,3},{1392,56444,3},{1392,56439,3},{1392,56433,3},{1392,56428,3}, {1392,56423,3},{1393,56418,3},{1393,56413,3},{1395,56408,3},{1397,56403,3}, {1398,56398,3},{1402,56393,3},{1403,56388,3},{1405,56383,3},{1407,56378,3}, {1410,56374,3},{1413,56369,3},{1415,56364,3},{1418,56361,3},{1422,56354,3}, {1423,56351,3},{1427,56348,3},{1430,56343,3},{1433,56339,3},{1437,56336,3}, {1440,56331,3},{1443,56328,3},{1447,56323,3},{1448,56318,3},{1452,56314,3}, {1455,56311,3},{1803,58359,131},{1807,58361,3},{1813,58361,3},{1820,58359,3}, {1832,58366,3},{1837,58356,3},{1842,58351,3},{1843,58346,3},{1848,58348,3}, {1860,58336,3},{1862,58339,3},{1863,58343,3},{1860,58346,3},{1862,58353,3}, {1870,58359,3},{1872,58363,3},{1877,58364,3},{1888,58364,3},{1892,58361,3}, {1895,58359,3},{1897,58354,3},{1895,58351,3},{1897,58351,3},{1898,58353,3}, {1900,58358,3},{1902,58361,3},{1910,58366,3},{1913,58371,3},{1915,58373,3}, {1922,58373,3},{1923,58366,3},{1928,58361,3},{1933,58359,3},{1935,58363,3}, {1940,58366,3},{1948,58368,3},{1962,58363,3},{1968,58363,3},{1970,58361,3}, {1970,58364,3},{1977,58363,3},{1977,58359,3},{1978,58358,3},{1982,58361,3}, {1983,58368,3},{1985,58369,3},{1990,58369,3},{1990,58383,3},{1990,58389,3}, {1985,58401,3},{1985,58406,3},{1982,58409,3},{1983,58414,3},{1987,58416,3}, {1983,58419,3},{1985,58421,3},{1985,58419,3},{1987,58419,3},{1987,58426,3}, {1992,58429,3},{1993,58436,3},{1992,58439,3},{1988,58441,3},{1988,58443,3}, {1990,58443,3},{1990,58453,3},{1987,58456,3},{1983,58458,3},{1983,58463,3}, {1975,58473,3},{1977,58484,3},{1978,58491,3},{1965,58508,3},{1962,58524,3}, {1963,58526,3},{1965,58528,3},{1968,58533,3},{1968,58541,3},{1962,58548,3}, {1953,58546,3},{1952,58549,3},{1943,58549,3},{1935,58554,3},{1928,58561,3}, {1930,58578,3},{1933,58583,3},{1932,58586,3},{1933,58591,3},{1932,58593,3}, {1930,58603,3},{1937,58613,3},{1935,58614,3},{1928,58613,3},{1930,58621,3}, {1918,58613,3},{1920,58604,3},{1918,58594,3},{1920,58589,3},{1922,58574,3}, {1922,58573,3},{1917,58574,3},{1912,58573,3},{1908,58574,3},{1910,58583,3}, {1908,58588,3},{1908,58591,3},{1910,58589,3},{1910,58591,3},{1908,58598,3}, {1907,58599,3},{1905,58601,3},{1905,58604,3},{1902,58611,3},{1902,58618,3}, {1902,58623,3},{1903,58621,3},{1905,58623,3},{1900,58626,3},{1898,58631,3}, {1898,58634,3},{1902,58634,3},{1903,58638,3},{1903,58644,3},{1898,58649,3}, {1898,58658,3},{1892,58668,3},{1878,58683,3},{1875,58689,3},{1867,58696,3}, {1865,58701,3},{1860,58704,3},{1850,58699,3},{1842,58691,3},{1835,58691,3}, {1835,58683,3},{1838,58678,3},{1837,58676,3},{1833,58676,3},{1828,58674,3}, {1820,58671,3},{1820,58661,3},{1827,58659,3},{1835,58653,3},{1838,58649,3}, {1842,58639,3},{1840,58639,3},{1838,58629,3},{1840,58619,3},{1845,58614,3}, {1843,58608,3},{1845,58604,3},{1843,58603,3},{1843,58593,3},{1840,58584,3}, {1842,58581,3},{1845,58574,3},{1840,58573,3},{1842,58569,3},{1845,58568,3}, {1847,58548,3},{1842,58539,3},{1842,58534,3},{1833,58529,3},{1823,58521,3}, {1822,58513,3},{1823,58508,3},{1823,58496,3},{1820,58484,3},{1822,58479,3}, {1823,58481,3},{1828,58476,3},{1832,58479,3},{1837,58479,3},{1840,58478,3}, {1842,58474,3},{1843,58468,3},{1842,58464,3},{1838,58466,3},{1835,58463,3}, {1835,58461,3},{1835,58456,3},{1833,58453,3},{1835,58451,3},{1830,58449,3}, {1825,58443,3},{1825,58439,3},{1830,58438,3},{1832,58431,3},{1830,58428,3}, {1825,58426,3},{1815,58431,3},{1792,58416,3},{1782,58406,3},{1767,58399,3}, {1762,58396,3},{1760,58394,3},{1775,58384,3},{1777,58378,3},{1777,58368,3}, {1783,58373,3},{1790,58369,3},{1792,58371,3},{1797,58369,3},{1802,58363,3}, {1803,58359,3},{1805,58356,3},{1812,58353,3},{1817,58346,3},{1820,58334,3}, {1823,58329,3},{1822,58313,3},{1823,58301,3},{1822,58284,3},{1822,58281,3}, {1817,58281,3},{1818,58273,3},{1817,58261,3},{1815,58261,3},{1813,58254,3}, {1813,58248,3},{1818,58236,3},{1818,58224,3},{1822,58218,3},{1823,58208,3}, {1822,58201,3},{1823,58201,3},{1825,58204,3},{1827,58198,3},{1825,58188,3}, {1823,58183,3},{1825,58181,3},{1825,58179,3},{1823,58179,3},{1822,58178,3}, {1822,58176,3},{1822,58174,3},{1825,58174,3},{1825,58173,3},{1822,58171,3}, {1825,58171,3},{1823,58169,3},{1823,58168,3},{1820,58164,3},{1817,58158,3}, {1813,58153,3},{1810,58153,3},{1803,58158,3},{1803,58148,3},{1813,58141,3}, {1825,58126,3},{1827,58121,3},{1830,58118,3},{1830,58113,3},{1830,58108,3}, {1828,58104,3},{1830,58099,3},{1833,58091,3},{1838,58091,3},{1843,58088,3}, {1857,58094,3},{1862,58094,3},{1863,58098,3},{1865,58104,3},{1865,58108,3}, {1867,58109,3},{1867,58119,3},{1860,58133,3},{1860,58139,3},{1857,58144,3}, {1857,58151,3},{1853,58158,3},{1855,58158,3},{1855,58163,3},{1857,58166,3}, {1858,58178,3},{1857,58178,3},{1855,58176,3},{1855,58164,3},{1853,58169,3}, {1850,58171,3},{1850,58176,3},{1853,58186,3},{1850,58199,3},{1847,58211,3}, {1848,58216,3},{1848,58223,3},{1845,58226,3},{1847,58238,3},{1845,58246,3}, {1843,58248,3},{1845,58251,3},{1843,58263,3},{1847,58268,3},{1855,58273,3}, {1857,58276,3},{1855,58283,3},{1853,58293,3},{1855,58294,3},{1853,58299,3}, {1853,58301,3},{1863,58301,3},{1867,58304,3},{1868,58303,3},{1872,58293,3}, {1877,58288,3},{1878,58281,3},{1890,58273,3},{1895,58264,3},{1900,58261,3}, {1905,58254,3},{1908,58254,3},{1910,58263,3},{1912,58264,3},{1913,58264,3}, {1915,58261,3},{1922,58256,3},{1928,58259,3},{1930,58264,3},{1932,58263,3}, {1933,58259,3},{1937,58259,3},{1938,58259,3},{1937,58263,3},{1938,58264,3}, {1942,58263,3},{1940,58266,3},{1940,58268,3},{1945,58266,3},{1945,58259,3}, {1950,58256,3},{1957,58239,3},{1960,58236,3},{1963,58226,3},{1962,58221,3}, {1965,58214,3},{1962,58213,3},{1963,58196,3},{1968,58189,3},{1975,58191,3}, {1978,58194,3},{1980,58198,3},{1982,58199,3},{1982,58194,3},{1983,58196,3}, {1983,58201,3},{1985,58208,3},{1990,58218,3},{1993,58219,3},{1992,58221,3}, {1990,58231,3},{1992,58238,3},{1990,58239,3},{1992,58243,3},{1995,58256,3}, {1988,58278,3},{1982,58286,3},{1980,58296,3},{1982,58298,3},{1975,58303,3}, {1975,58301,3},{1972,58304,3},{1973,58306,3},{1977,58304,3},{1975,58309,3}, {1977,58311,3},{1978,58311,3},{1978,58316,3},{1975,58316,3},{1975,58323,3}, {1973,58324,3},{1972,58331,3},{1970,58334,3},{1973,58339,3},{1972,58349,3}, {1968,58349,3},{1968,58346,3},{1967,58348,3},{1967,58351,3},{1965,58354,3}, {1967,58356,3},{1968,58351,3},{1972,58353,3},{1970,58361,3},{1968,58363,3}, {1962,58363,3},{1948,58368,3},{1940,58366,3},{1935,58363,3},{1933,58359,3}, {1928,58361,3},{1923,58366,3},{1922,58373,3},{1915,58373,3},{1913,58371,3}, {1910,58366,3},{1902,58361,3},{1900,58358,3},{1898,58353,3},{1897,58351,3}, {1895,58351,3},{1897,58354,3},{1895,58359,3},{1892,58361,3},{1888,58364,3}, {1877,58364,3},{1872,58363,3},{1870,58359,3},{1862,58353,3},{1860,58346,3}, {1863,58343,3},{1862,58339,3},{1860,58336,3},{1848,58348,3},{1843,58346,3}, {1842,58351,3},{1837,58356,3},{1832,58366,3},{1820,58359,3},{1813,58361,3}, {1807,58361,3},{1803,58359,3},{1455,56311,131},{1458,56308,3},{1462,56304,3}, {1465,56301,3},{1470,56296,3},{1473,56293,3},{1477,56289,3},{1480,56286,3}, {1485,56281,3},{1488,56278,3},{1492,56274,3},{1495,56271,3},{1498,56268,3}, {1503,56263,3},{1507,56259,3},{1510,56258,3},{1517,56251,3},{1515,56259,3}, {1508,56261,3},{1513,56261,3},{1517,56259,3},{1518,56254,3},{1518,56253,3}, {1522,56251,3},{1520,56249,3},{1518,56251,3},{1527,56238,3},{1530,56234,3}, {1535,56228,3},{1548,56216,3},{1553,56209,3},{1577,56181,3},{1592,56158,3}, {1600,56143,3},{1602,56143,3},{1600,56148,3},{1602,56151,3},{1608,56146,3}, {1612,56134,3},{1613,56131,3},{1613,56129,3},{1617,56126,3},{1623,56123,3}, {1620,56116,3},{1622,56106,3},{1630,56099,3},{1630,56096,3},{1628,56094,3}, {1625,56094,3},{1623,56093,3},{1623,56094,3},{1622,56093,3},{1620,56094,3}, {1615,56103,3},{1613,56109,3},{1615,56109,3},{1618,56103,3},{1617,56114,3}, {1613,56119,3},{1612,56118,3},{1608,56129,3},{1603,56133,3},{1600,56139,3}, {1603,56129,3},{1617,56096,3},{1618,56088,3},{1620,56064,3},{1620,56063,3}, {1622,56063,3},{1625,56073,3},{1628,56078,3},{1632,56078,3},{1637,56069,3}, {1632,56064,3},{1630,56064,3},{1630,56061,3},{1625,56058,3},{1628,56056,3}, {1632,56059,3},{1633,56059,3},{1637,56056,3},{1638,56056,3},{1643,56049,3}, {1640,56044,3},{1632,56039,3},{1632,56033,3},{1630,56033,3},{1628,56029,3}, {1627,56029,3},{1625,56039,3},{1625,56049,3},{1628,56053,3},{1627,56054,3}, {1625,56051,3},{1623,56043,3},{1622,56058,3},{1620,56061,3},{1622,56051,3}, {1618,56028,3},{1620,56023,3},{1618,56021,3},{1617,56021,3},{1615,56014,3}, {1613,56011,3},{1610,56009,3},{1605,55999,3},{1602,55999,3},{1598,55994,3}, {1590,55963,3},{1587,55959,3},{1582,55941,3},{1575,55931,3},{1575,55928,3}, {1568,55918,3},{1567,55908,3},{1568,55893,3},{1565,55888,3},{1565,55879,3}, {1572,55863,3},{1573,55853,3},{1582,55834,3},{1590,55823,3},{1592,55816,3}, {1597,55773,3},{1595,55769,3},{1597,55758,3},{1602,55749,3},{1603,55751,3}, {1607,55749,3},{1605,55748,3},{1615,55729,3},{1620,55719,3},{1622,55719,3}, {1618,55729,3},{1620,55729,3},{1622,55726,3},{1622,55721,3},{1623,55719,3}, {1622,55718,3},{1625,55704,3},{1627,55696,3},{1632,55681,3},{1635,55679,3}, {1642,55669,3},{1653,55663,3},{1655,55659,3},{1655,55651,3},{1652,55651,3}, {1655,55644,3},{1658,55636,3},{1660,55626,3},{1663,55616,3},{1663,55606,3}, {1667,55601,3},{1670,55566,3},{1678,55551,3},{1682,55553,3},{1687,55548,3}, {1687,55546,3},{1683,55548,3},{1682,55546,3},{1688,55543,3},{1693,55528,3}, {1695,55518,3},{1700,55508,3},{1710,55483,3},{1722,55448,3},{1727,55434,3}, {1727,55431,3},{1730,55431,3},{1737,55426,3},{1747,55409,3},{1752,55394,3}, {1753,55391,3},{1758,55391,3},{1762,55386,3},{1763,55379,3},{1767,55373,3}, {1772,55371,3},{1780,55361,3},{1788,55358,3},{1798,55341,3},{1798,55333,3}, {1798,55328,3},{1792,55321,3},{1798,55301,3},{1805,55279,3},{1807,55264,3}, {1818,55233,3},{1820,55224,3},{1827,55201,3},{1833,55188,3},{1850,55178,3}, {1858,55166,3},{1862,55168,3},{1867,55164,3},{1888,55139,3},{1900,55104,3}, {1903,55103,3},{1907,55104,3},{1910,55103,3},{1912,55099,3},{1908,55096,3}, {1910,55094,3},{1910,55091,3},{1913,55086,3},{1917,55069,3},{1920,55066,3}, {1922,55064,3},{1923,55063,3},{1922,55054,3},{1928,55056,3},{1930,55054,3}, {1928,55048,3},{1928,55046,3},{1935,55036,3},{1937,55034,3},{1942,55033,3}, {1945,55029,3},{1948,55029,3},{1957,55026,3},{1962,55014,3},{1972,55006,3}, {1978,55003,3},{1992,54991,3},{2008,54981,3},{2022,54979,3},{2025,54976,3}, {2040,54968,3},{2042,54968,3},{2048,54978,3},{2052,55001,3},{2055,55006,3}, {2057,55011,3},{2065,55013,3},{2077,55004,3},{2075,54994,3},{2077,54989,3}, {2078,54986,3},{2078,54981,3},{2082,54986,3},{2082,54989,3},{2088,54993,3}, {2090,54994,3},{2093,54996,3},{2098,55003,3},{2102,55004,3},{2103,55006,3}, {2103,55011,3},{2107,55013,3},{2123,55014,3},{2135,55013,3},{2140,55014,3}, {2145,55018,3},{2150,55016,3},{2152,55014,3},{2152,55008,3},{2160,54993,3}, {2167,54991,3},{2177,54986,3},{2188,54979,3},{2198,54971,3},{2228,54973,3}, {2237,54971,3},{2250,54963,3},{2252,54963,3},{2252,54964,3},{2253,54964,3}, {2255,54963,3},{2253,54961,3},{2257,54959,3},{2267,54954,3},{2270,54949,3}, {2278,54941,3},{2282,54936,3},{2285,54938,3},{2285,54934,3},{2283,54933,3}, {2285,54931,3},{2305,54914,3},{2308,54908,3},{2318,54898,3},{2318,54894,3}, {2323,54893,3},{2330,54888,3},{2333,54888,3},{2340,54884,3},{2347,54874,3}, {2360,54864,3},{2365,54856,3},{2370,54854,3},{2373,54851,3},{2387,54844,3}, {2398,54831,3},{2413,54811,3},{2420,54799,3},{2425,54796,3},{2428,54788,3}, {2435,54779,3},{2448,54756,3},{2452,54756,3},{2452,54759,3},{2448,54759,3}, {2438,54776,3},{2437,54784,3},{2433,54786,3},{2438,54781,3},{2438,54784,3}, {2435,54786,3},{2437,54788,3},{2437,54786,3},{2438,54788,3},{2452,54784,3}, {2452,54778,3},{2450,54776,3},{2452,54779,3},{2450,54781,3},{2447,54778,3}, {2445,54773,3},{2450,54769,3},{2448,54766,3},{2450,54763,3},{2452,54761,3}, {2458,54756,3},{2458,54751,3},{2462,54749,3},{2463,54743,3},{2457,54749,3}, {2453,54756,3},{2452,54754,3},{2463,54738,3},{2473,54734,3},{2478,54729,3}, {2478,54733,3},{2475,54738,3},{2478,54739,3},{2483,54734,3},{2485,54736,3}, {2490,54736,3},{2497,54738,3},{2500,54731,3},{2497,54731,3},{2492,54733,3}, {2482,54731,3},{2483,54724,3},{2503,54713,3},{2510,54703,3},{2510,54708,3}, {2505,54713,3},{2498,54718,3},{2497,54723,3},{2502,54723,3},{2502,54719,3}, {2503,54719,3},{2503,54721,3},{2505,54721,3},{2502,54726,3},{2500,54736,3}, {2503,54734,3},{2508,54731,3},{2512,54723,3},{2510,54723,3},{2510,54719,3}, {2517,54714,3},{2515,54708,3},{2517,54701,3},{2520,54701,3},{2518,54704,3}, {2523,54704,3},{2527,54699,3},{2520,54699,3},{2515,54696,3},{2520,54696,3}, {2527,54693,3},{2533,54674,3},{2535,54663,3},{2537,54664,3},{2535,54678,3}, {2540,54671,3},{2538,54659,3},{2540,54659,3},{2540,54663,3},{2545,54661,3}, {2543,54658,3},{2555,54659,3},{2553,54656,3},{2555,54654,3},{2557,54653,3}, {2557,54648,3},{2555,54646,3},{2552,54648,3},{2550,54648,3},{2545,54644,3}, {2547,54641,3},{2550,54643,3},{2550,54641,3},{2550,54634,3},{2547,54636,3}, {2547,54633,3},{2553,54624,3},{2558,54631,3},{2557,54636,3},{2553,54638,3}, {2558,54639,3},{2563,54644,3},{2568,54646,3},{2567,54648,3},{2572,54648,3}, {2577,54653,3},{2580,54653,3},{2580,54651,3},{2577,54651,3},{2570,54646,3}, {2565,54636,3},{2560,54633,3},{2558,54629,3},{2558,54624,3},{2558,54621,3}, {2565,54619,3},{2568,54611,3},{2565,54613,3},{2558,54621,3},{2555,54621,3}, {2563,54611,3},{2563,54596,3},{2567,54599,3},{2567,54606,3},{2572,54608,3}, {2573,54606,3},{2577,54599,3},{2575,54596,3},{2568,54598,3},{2568,54596,3}, {2570,54596,3},{2577,54596,3},{2578,54593,3},{2585,54594,3},{2585,54596,3}, {2585,54594,3},{2592,54594,3},{2593,54591,3},{2603,54594,3},{2612,54601,3}, {2630,54611,3},{2627,54611,3},{2627,54609,3},{2623,54608,3},{2617,54608,3}, {2615,54608,3},{2627,54614,3},{2632,54613,3},{2633,54614,3},{2632,54619,3}, {2628,54621,3},{2627,54619,3},{2625,54621,3},{2622,54626,3},{2625,54626,3}, {2628,54628,3},{2628,54624,3},{2630,54623,3},{2633,54623,3},{2638,54621,3}, {2638,54618,3},{2635,54619,3},{2635,54614,3},{2633,54611,3},{2643,54613,3}, {2653,54608,3},{2658,54603,3},{2667,54594,3},{2668,54589,3},{2670,54589,3}, {2670,54593,3},{2673,54588,3},{2673,54586,3},{2677,54584,3},{2673,54579,3}, {2672,54584,3},{2670,54583,3},{2670,54586,3},{2668,54584,3},{2670,54573,3}, {2667,54569,3},{2668,54564,3},{2673,54556,3},{2682,54549,3},{2692,54548,3}, {2698,54541,3},{2700,54541,3},{2693,54548,3},{2705,54544,3},{2710,54539,3}, {2712,54534,3},{2710,54531,3},{2710,54528,3},{2713,54514,3},{2717,54508,3}, {2715,54504,3},{2727,54494,3},{2730,54484,3},{2732,54491,3},{2738,54488,3}, {2737,54481,3},{2743,54481,3},{2747,54478,3},{2753,54478,3},{2760,54474,3}, {2765,54473,3},{2767,54473,3},{2765,54476,3},{2768,54479,3},{2770,54478,3}, {2768,54476,3},{2772,54478,3},{2773,54481,3},{2775,54476,3},{2778,54478,3}, {2778,54476,3},{2782,54474,3},{2782,54476,3},{2783,54478,3},{2783,54484,3}, {2787,54484,3},{2788,54476,3},{2788,54474,3},{2787,54476,3},{2787,54474,3}, {2790,54468,3},{2792,54458,3},{2790,54451,3},{2792,54454,3},{2795,54453,3}, {2798,54454,3},{2798,54451,3},{2793,54451,3},{2790,54448,3},{2790,54449,3}, {2783,54448,3},{2785,54446,3},{2787,54444,3},{2788,54443,3},{2790,54439,3}, {2792,54443,3},{2797,54436,3},{2793,54426,3},{2797,54426,3},{2797,54423,3}, {2805,54413,3},{2820,54403,3},{2822,54399,3},{2827,54398,3},{2833,54389,3}, {2838,54393,3},{2838,54388,3},{2847,54366,3},{2858,54359,3},{2877,54341,3}, {2878,54344,3},{2875,54349,3},{2877,54351,3},{2880,54351,3},{2880,54344,3}, {2883,54339,3},{2888,54333,3},{2890,54333,3},{2897,54324,3},{2897,54319,3}, {2900,54321,3},{2905,54318,3},{2913,54319,3},{2917,54318,3},{2918,54314,3}, {2925,54316,3},{2930,54316,3},{2933,54311,3},{2933,54303,3},{2930,54303,3}, {2933,54298,3},{2938,54294,3},{2945,54298,3},{2950,54298,3},{2952,54294,3}, {2955,54293,3},{2962,54286,3},{2968,54283,3},{2972,54278,3},{2977,54276,3}, {2983,54271,3},{2990,54269,3},{2992,54266,3},{2992,54263,3},{2992,54261,3}, {3000,54263,3},{3005,54261,3},{3022,54261,3},{3028,54254,3},{3028,54249,3}, {3035,54251,3},{3043,54249,3},{3058,54236,3},{3070,54228,3},{3082,54224,3}, {3095,54228,3},{3107,54224,3},{3108,54224,3},{3107,54226,3},{3100,54229,3}, {3107,54231,3},{3115,54233,3},{3123,54228,3},{3123,54221,3},{3120,54226,3}, {3120,54224,3},{3123,54218,3},{3128,54211,3},{3127,54209,3},{3125,54214,3}, {3123,54213,3},{3128,54193,3},{3128,54188,3},{3133,54174,3},{3135,54173,3}, {3135,54174,3},{3150,54173,3},{3158,54153,3},{3158,54149,3},{3162,54148,3}, {3160,54141,3},{3167,54139,3},{3165,54138,3},{3157,54138,3},{3157,54141,3}, {3152,54138,3},{3152,54134,3},{3150,54134,3},{3150,54121,3},{3152,54116,3}, {3157,54104,3},{3160,54103,3},{3165,54093,3},{3177,54078,3},{3177,54066,3}, {3180,54063,3},{3182,54056,3},{3190,54044,3},{3192,54036,3},{3197,54034,3}, {3195,54033,3},{3190,54034,3},{3190,54041,3},{3180,54049,3},{3180,54054,3}, {3172,54054,3},{3165,54058,3},{3158,54053,3},{3153,54051,3},{3115,54048,3}, {3110,54049,3},{3107,54054,3},{3100,54053,3},{3095,54063,3},{3092,54066,3}, {3080,54068,3},{3065,54066,3},{3057,54071,3},{3048,54074,3},{3028,54071,3}, {3027,54073,3},{3020,54069,3},{3013,54073,3},{3012,54076,3},{3000,54081,3}, {2998,54088,3},{2992,54091,3},{2992,54094,3},{2987,54096,3},{2983,54096,3}, {2980,54099,3},{2978,54103,3},{2977,54106,3},{2978,54109,3},{2977,54111,3}, {2975,54116,3},{2960,54131,3},{2947,54151,3},{2943,54154,3},{2935,54163,3}, {2927,54171,3},{2922,54171,3},{2918,54173,3},{2917,54176,3},{2912,54181,3}, {2905,54183,3},{2903,54181,3},{2897,54183,3},{2895,54181,3},{2888,54186,3}, {2890,54191,3},{2893,54189,3},{2897,54194,3},{2893,54196,3},{2895,54199,3}, {2893,54199,3},{2892,54201,3},{2888,54201,3},{2888,54203,3},{2885,54201,3}, {2880,54201,3},{2880,54206,3},{2883,54213,3},{2882,54216,3},{2878,54218,3}, {2873,54218,3},{2870,54221,3},{2865,54219,3},{2862,54223,3},{2848,54224,3}, {2843,54234,3},{2845,54244,3},{2843,54246,3},{2843,54248,3},{2843,54249,3}, {2828,54249,3},{2820,54258,3},{2813,54256,3},{2807,54259,3},{2803,54258,3}, {2800,54264,3},{2783,54261,3},{2780,54266,3},{2772,54269,3},{2772,54273,3}, {2763,54279,3},{2763,54286,3},{2757,54294,3},{2753,54301,3},{2750,54304,3}, {2733,54306,3},{2723,54316,3},{2722,54316,3},{2723,54314,3},{2723,54313,3}, {2720,54314,3},{2713,54326,3},{2710,54341,3},{2708,54341,3},{2705,54336,3}, {2700,54333,3},{2692,54339,3},{2690,54339,3},{2688,54343,3},{2683,54346,3}, {2677,54346,3},{2673,54344,3},{2672,54348,3},{2667,54351,3},{2663,54354,3}, {2655,54361,3},{2657,54364,3},{2660,54368,3},{2665,54364,3},{2670,54356,3}, {2687,54349,3},{2690,54351,3},{2690,54354,3},{2682,54364,3},{2680,54368,3}, {2675,54373,3},{2672,54379,3},{2657,54381,3},{2652,54391,3},{2647,54389,3}, {2642,54388,3},{2638,54393,3},{2637,54393,3},{2635,54396,3},{2630,54398,3}, {2628,54394,3},{2623,54396,3},{2613,54401,3},{2610,54404,3},{2603,54401,3}, {2600,54403,3},{2595,54399,3},{2585,54404,3},{2583,54406,3},{2578,54406,3}, {2572,54413,3},{2558,54419,3},{2555,54424,3},{2555,54431,3},{2553,54431,3}, {2553,54434,3},{2542,54434,3},{2532,54441,3},{2525,54441,3},{2520,54444,3}, {2517,54444,3},{2508,54451,3},{2502,54461,3},{2498,54461,3},{2490,54468,3}, {2480,54469,3},{2467,54463,3},{2458,54463,3},{2447,54466,3},{2438,54468,3}, {2428,54474,3},{2428,54478,3},{2422,54484,3},{2418,54506,3},{2417,54503,3}, {2418,54499,3},{2418,54496,3},{2413,54498,3},{2412,54499,3},{2413,54504,3}, {2415,54504,3},{2418,54509,3},{2425,54508,3},{2428,54506,3},{2433,54506,3}, {2435,54514,3},{2425,54523,3},{2417,54536,3},{2405,54539,3},{2402,54544,3}, {2405,54554,3},{2402,54556,3},{2392,54554,3},{2390,54554,3},{2380,54566,3}, {2373,54566,3},{2367,54568,3},{2358,54588,3},{2355,54589,3},{2345,54596,3}, {2342,54594,3},{2340,54596,3},{2337,54594,3},{2323,54593,3},{2313,54584,3}, {2307,54573,3},{2303,54566,3},{2298,54566,3},{2292,54553,3},{2288,54546,3}, {2287,54544,3},{2287,54541,3},{2290,54534,3},{2298,54529,3},{2313,54524,3}, {2333,54519,3},{2342,54511,3},{2357,54504,3},{2363,54496,3},{2368,54479,3}, {2373,54473,3},{2387,54459,3},{2392,54453,3},{2395,54446,3},{2402,54443,3}, {2412,54433,3},{2417,54421,3},{2418,54421,3},{2420,54414,3},{2433,54389,3}, {2435,54389,3},{2430,54399,3},{2433,54393,3},{2443,54383,3},{2443,54379,3}, {2447,54376,3},{2453,54371,3},{2458,54371,3},{2460,54368,3},{2458,54366,3}, {2457,54368,3},{2455,54366,3},{2457,54356,3},{2452,54359,3},{2452,54356,3}, {2465,54353,3},{2470,54349,3},{2475,54343,3},{2477,54343,3},{2475,54344,3}, {2480,54339,3},{2488,54336,3},{2488,54334,3},{2487,54336,3},{2483,54334,3}, {2478,54339,3},{2478,54336,3},{2475,54339,3},{2477,54336,3},{2475,54334,3}, {2477,54333,3},{2485,54333,3},{2483,54329,3},{2477,54331,3},{2473,54326,3}, {2477,54329,3},{2480,54326,3},{2487,54326,3},{2488,54323,3},{2492,54328,3}, {2492,54324,3},{2493,54324,3},{2495,54328,3},{2497,54326,3},{2503,54326,3}, {2502,54324,3},{2490,54321,3},{2490,54318,3},{2493,54319,3},{2497,54319,3}, {2497,54321,3},{2505,54324,3},{2517,54323,3},{2522,54326,3},{2523,54328,3}, {2527,54329,3},{2537,54329,3},{2542,54328,3},{2543,54329,3},{2545,54328,3}, {2548,54331,3},{2557,54329,3},{2572,54329,3},{2568,54328,3},{2557,54328,3}, {2552,54326,3},{2552,54324,3},{2572,54326,3},{2577,54324,3},{2595,54316,3}, {2603,54311,3},{2607,54306,3},{2610,54304,3},{2608,54303,3},{2622,54299,3}, {2627,54296,3},{2628,54293,3},{2627,54289,3},{2627,54286,3},{2630,54283,3}, {2633,54283,3},{2633,54273,3},{2633,54269,3},{2642,54258,3},{2643,54259,3}, {2643,54254,3},{2652,54246,3},{2655,54238,3},{2665,54226,3},{2668,54228,3}, {2667,54224,3},{2668,54219,3},{2672,54213,3},{2678,54213,3},{2688,54223,3}, {2697,54223,3},{2697,54219,3},{2695,54218,3},{2688,54218,3},{2683,54216,3}, {2682,54213,3},{2682,54216,3},{2680,54211,3},{2673,54211,3},{2680,54199,3}, {2682,54191,3},{2682,54196,3},{2685,54193,3},{2683,54189,3},{2682,54189,3}, {2677,54183,3},{2675,54183,3},{2675,54176,3},{2680,54168,3},{2682,54164,3}, {2690,54161,3},{2698,54151,3},{2700,54144,3},{2698,54136,3},{2702,54131,3}, {2710,54128,3},{2715,54119,3},{2717,54111,3},{2715,54106,3},{2718,54098,3}, {2718,54094,3},{2723,54093,3},{2725,54088,3},{2735,54088,3},{2742,54084,3}, {2745,54079,3},{2748,54076,3},{2753,54063,3},{2762,54056,3},{2765,54049,3}, {2765,54051,3},{2770,54049,3},{2770,54048,3},{2767,54046,3},{2772,54041,3}, {2773,54034,3},{2780,54033,3},{2783,54029,3},{2787,54031,3},{2783,54036,3}, {2783,54046,3},{2783,54051,3},{2782,54056,3},{2782,54061,3},{2778,54066,3}, {2777,54074,3},{2777,54088,3},{2788,54101,3},{2787,54103,3},{2778,54103,3}, {2773,54108,3},{2770,54119,3},{2772,54126,3},{2772,54133,3},{2768,54134,3}, {2772,54139,3},{2777,54133,3},{2775,54133,3},{2775,54129,3},{2772,54121,3}, {2773,54119,3},{2777,54113,3},{2780,54114,3},{2783,54113,3},{2785,54106,3}, {2787,54104,3},{2788,54108,3},{2795,54108,3},{2797,54113,3},{2805,54121,3}, {2803,54121,3},{2800,54119,3},{2797,54119,3},{2800,54121,3},{2802,54123,3}, {2807,54123,3},{2818,54124,3},{2822,54123,3},{2823,54119,3},{2827,54118,3}, {2840,54126,3},{2852,54129,3},{2858,54126,3},{2860,54121,3},{2867,54119,3}, {2868,54109,3},{2872,54109,3},{2875,54103,3},{2882,54101,3},{2883,54096,3}, {2888,54094,3},{2888,54093,3},{2892,54091,3},{2893,54088,3},{2893,54083,3}, {2893,54081,3},{2898,54079,3},{2898,54078,3},{2902,54074,3},{2905,54076,3}, {2912,54071,3},{2913,54064,3},{2920,54061,3},{2928,54049,3},{2938,54041,3}, {2942,54026,3},{2943,54018,3},{2948,54013,3},{2957,53996,3},{2963,53989,3}, {2963,53983,3},{2970,53979,3},{2972,53973,3},{2977,53966,3},{2987,53966,3}, {2993,53963,3},{2995,53961,3},{2995,53954,3},{3005,53958,3},{3010,53958,3}, {3015,53956,3},{3023,53956,3},{3033,53953,3},{3038,53949,3},{3040,53939,3}, {3045,53943,3},{3050,53938,3},{3045,53941,3},{3043,53934,3},{3037,53938,3}, {3038,53934,3},{3045,53933,3},{3062,53933,3},{3080,53931,3},{3090,53916,3}, {3095,53911,3},{3097,53903,3},{3108,53906,3},{3117,53904,3},{3122,53903,3}, {3135,53891,3},{3142,53886,3},{3145,53883,3},{3147,53876,3},{3152,53874,3}, {3155,53868,3},{3158,53869,3},{3158,53873,3},{3162,53871,3},{3167,53873,3}, {3172,53869,3},{3175,53864,3},{3173,53869,3},{3175,53874,3},{3183,53876,3}, {3192,53861,3},{3198,53858,3},{3200,53851,3},{3205,53849,3},{3213,53848,3}, {3223,53844,3},{3228,53834,3},{3230,53833,3},{3245,53824,3},{3253,53824,3}, {3253,53831,3},{3255,53836,3},{3255,53843,3},{3255,53849,3},{3257,53854,3}, {3257,53861,3},{3257,53866,3},{3258,53873,3},{3258,53879,3},{3258,53884,3}, {3258,53891,3},{3260,53898,3},{3260,53903,3},{3260,53909,3},{3262,53914,3}, {3262,53921,3},{3262,53928,3},{3262,53933,3},{3263,53939,3},{3263,53946,3}, {3263,53951,3},{3263,53958,3},{3265,53963,3},{3265,53969,3},{3265,53976,3}, {3267,53981,3},{3267,53988,3},{3267,53994,3},{3267,53999,3},{3268,54006,3}, {3268,54011,3},{3268,54018,3},{3268,54024,3},{3270,54029,3},{3270,54036,3}, {3270,54043,3},{3270,54048,3},{3272,54054,3},{3272,54059,3},{3272,54064,3}, {3265,54061,3},{3262,54056,3},{3255,54058,3},{3250,54054,3},{3248,54061,3}, {3247,54068,3},{3245,54073,3},{3243,54079,3},{3242,54084,3},{3240,54091,3}, {3238,54096,3},{3237,54103,3},{3235,54109,3},{3233,54114,3},{3230,54121,3}, {3228,54126,3},{3227,54133,3},{3225,54138,3},{3223,54144,3},{3222,54151,3}, {3220,54156,3},{3218,54163,3},{3217,54168,3},{3215,54174,3},{3213,54179,3}, {3212,54186,3},{3208,54191,3},{3207,54198,3},{3205,54204,3},{3203,54209,3}, {3202,54216,3},{3200,54221,3},{3198,54228,3},{3197,54233,3},{3195,54239,3}, {3193,54244,3},{3190,54251,3},{3188,54258,3},{3187,54263,3},{3185,54269,3}, {3183,54274,3},{3182,54281,3},{3180,54286,3},{3178,54293,3},{3177,54298,3}, {3175,54304,3},{3172,54309,3},{3170,54316,3},{3168,54321,3},{3167,54328,3}, {3165,54334,3},{3163,54339,3},{3162,54346,3},{3160,54351,3},{3157,54358,3}, {3155,54363,3},{3153,54369,3},{3152,54374,3},{3150,54381,3},{3148,54386,3}, {3147,54393,3},{3143,54398,3},{3142,54404,3},{3140,54409,3},{3138,54416,3}, {3137,54421,3},{3135,54428,3},{3133,54431,3},{3133,54438,3},{3133,54444,3}, {3133,54451,3},{3133,54458,3},{3133,54464,3},{3133,54471,3},{3133,54478,3}, {3133,54484,3},{3133,54491,3},{3133,54498,3},{3133,54504,3},{3133,54511,3}, {3133,54518,3},{3133,54524,3},{3133,54531,3},{3133,54538,3},{3133,54544,3}, {3133,54551,3},{3133,54558,3},{3133,54564,3},{3133,54571,3},{3133,54578,3}, {3133,54584,3},{3133,54591,3},{3133,54598,3},{3133,54604,3},{3133,54611,3}, {3133,54618,3},{3133,54624,3},{3133,54631,3},{3133,54638,3},{3133,54644,3}, {3133,54651,3},{3133,54653,3},{3133,54658,3},{3133,54664,3},{3133,54671,3}, {3133,54678,3},{3133,54684,3},{3133,54691,3},{3133,54698,3},{3133,54704,3}, {3133,54711,3},{3133,54716,3},{3138,54716,3},{3143,54716,3},{3150,54716,3}, {3157,54716,3},{3163,54716,3},{3170,54716,3},{3177,54716,3},{3178,54716,3}, {3178,54723,3},{3178,54729,3},{3178,54736,3},{3178,54741,3},{3178,54749,3}, {3178,54756,3},{3178,54761,3},{3178,54768,3},{3178,54776,3},{3178,54783,3}, {3178,54789,3},{3178,54794,3},{3178,54803,3},{3178,54809,3},{3178,54816,3}, {3178,54821,3},{3178,54828,3},{3178,54836,3},{3178,54843,3},{3178,54849,3}, {3178,54854,3},{3178,54861,3},{3178,54869,3},{3178,54876,3},{3178,54881,3}, {3178,54884,3},{3175,54888,3},{3175,54898,3},{3168,54903,3},{3148,54914,3}, {3143,54921,3},{3140,54936,3},{3137,54941,3},{3133,54943,3},{3125,54953,3}, {3118,54959,3},{3108,54976,3},{3102,54979,3},{3097,54986,3},{3095,54988,3}, {3090,54996,3},{3087,54998,3},{3082,55008,3},{3080,55009,3},{3080,55016,3}, {3070,55029,3},{3068,55036,3},{3062,55038,3},{3062,55043,3},{3057,55046,3}, {3050,55049,3},{3040,55051,3},{3038,55054,3},{3035,55054,3},{3032,55059,3}, {3028,55059,3},{3023,55066,3},{3018,55068,3},{3012,55068,3},{3005,55066,3}, {2997,55069,3},{2995,55068,3},{2982,55074,3},{2980,55079,3},{2972,55081,3}, {2963,55086,3},{2957,55094,3},{2953,55103,3},{2952,55108,3},{2948,55116,3}, {2947,55116,3},{2942,55119,3},{2933,55131,3},{2928,55148,3},{2927,55158,3}, {2925,55159,3},{2923,55158,3},{2920,55163,3},{2915,55173,3},{2915,55181,3}, {2907,55188,3},{2907,55191,3},{2902,55199,3},{2903,55201,3},{2902,55203,3}, {2902,55204,3},{2900,55204,3},{2900,55206,3},{2898,55221,3},{2900,55226,3}, {2907,55226,3},{2905,55228,3},{2908,55228,3},{2910,55233,3},{2918,55238,3}, {2920,55243,3},{2922,55246,3},{2922,55249,3},{2925,55246,3},{2932,55248,3}, {2935,55248,3},{2935,55251,3},{2940,55254,3},{2945,55254,3},{2952,55256,3}, {2955,55259,3},{2960,55259,3},{2960,55263,3},{2963,55263,3},{2967,55268,3}, {2975,55269,3},{2975,55278,3},{2977,55279,3},{2975,55283,3},{2978,55286,3}, {2977,55298,3},{2980,55299,3},{2985,55301,3},{2988,55306,3},{2987,55311,3}, {2985,55313,3},{2985,55318,3},{2982,55321,3},{2980,55328,3},{2980,55338,3}, {2982,55339,3},{2980,55344,3},{2980,55348,3},{2980,55353,3},{2982,55354,3}, {2978,55356,3},{2980,55359,3},{2977,55373,3},{2977,55379,3},{2982,55383,3}, {2980,55383,3},{2977,55383,3},{2978,55389,3},{2977,55393,3},{2977,55396,3}, {2975,55394,3},{2967,55401,3},{2965,55406,3},{2962,55404,3},{2958,55406,3}, {2962,55413,3},{2962,55414,3},{2958,55414,3},{2953,55414,3},{2953,55418,3}, {2950,55423,3},{2947,55431,3},{2938,55436,3},{2935,55443,3},{2928,55449,3}, {2928,55453,3},{2923,55459,3},{2917,55459,3},{2912,55469,3},{2900,55473,3}, {2892,55474,3},{2887,55479,3},{2883,55479,3},{2883,55483,3},{2868,55488,3}, {2863,55493,3},{2862,55493,3},{2860,55496,3},{2857,55496,3},{2853,55498,3}, {2850,55504,3},{2848,55501,3},{2843,55503,3},{2840,55503,3},{2832,55508,3}, {2828,55508,3},{2825,55513,3},{2823,55516,3},{2820,55518,3},{2815,55529,3}, {2808,55531,3},{2807,55534,3},{2800,55536,3},{2798,55543,3},{2793,55543,3}, {2790,55548,3},{2787,55548,3},{2785,55549,3},{2780,55549,3},{2778,55553,3}, {2777,55556,3},{2773,55558,3},{2772,55561,3},{2767,55566,3},{2765,55571,3}, {2763,55573,3},{2763,55578,3},{2757,55586,3},{2750,55584,3},{2748,55589,3}, {2740,55589,3},{2730,55584,3},{2730,55588,3},{2727,55588,3},{2727,55591,3}, {2722,55593,3},{2713,55591,3},{2710,55593,3},{2705,55589,3},{2700,55598,3}, {2693,55598,3},{2692,55601,3},{2688,55601,3},{2685,55609,3},{2662,55619,3}, {2655,55619,3},{2650,55628,3},{2642,55626,3},{2640,55628,3},{2640,55634,3}, {2638,55636,3},{2640,55638,3},{2640,55639,3},{2638,55641,3},{2640,55643,3}, {2637,55648,3},{2637,55656,3},{2632,55663,3},{2630,55661,3},{2630,55666,3}, {2627,55666,3},{2623,55671,3},{2625,55678,3},{2623,55681,3},{2625,55683,3}, {2620,55689,3},{2623,55691,3},{2620,55696,3},{2620,55699,3},{2615,55698,3}, {2615,55701,3},{2612,55706,3},{2608,55716,3},{2605,55716,3},{2607,55719,3}, {2607,55723,3},{2607,55724,3},{2607,55728,3},{2605,55728,3},{2603,55729,3}, {2607,55734,3},{2605,55736,3},{2605,55756,3},{2605,55758,3},{2603,55759,3}, {2603,55771,3},{2600,55774,3},{2597,55778,3},{2595,55779,3},{2590,55784,3}, {2588,55791,3},{2585,55793,3},{2585,55794,3},{2587,55796,3},{2583,55799,3}, {2585,55801,3},{2592,55801,3},{2593,55803,3},{2593,55808,3},{2597,55809,3}, {2595,55814,3},{2597,55823,3},{2570,55819,3},{2543,55808,3},{2513,55788,3}, {2503,55784,3},{2478,55778,3},{2432,55768,3},{2407,55764,3},{2378,55763,3}, {2378,55761,3},{2378,55754,3},{2377,55761,3},{2365,55761,3},{2375,55763,3}, {2375,55764,3},{2330,55759,3},{2290,55763,3},{2285,55761,3},{2292,55761,3}, {2290,55759,3},{2277,55756,3},{2277,55753,3},{2273,55753,3},{2273,55749,3}, {2270,55751,3},{2260,55748,3},{2258,55749,3},{2260,55751,3},{2262,55751,3}, {2267,55753,3},{2265,55753,3},{2260,55753,3},{2252,55751,3},{2233,55756,3}, {2227,55758,3},{2215,55758,3},{2197,55766,3},{2177,55781,3},{2168,55791,3}, {2160,55803,3},{2157,55804,3},{2148,55804,3},{2133,55796,3},{2127,55794,3}, {2137,55793,3},{2138,55789,3},{2142,55791,3},{2143,55788,3},{2148,55796,3}, {2147,55798,3},{2150,55799,3},{2153,55799,3},{2163,55788,3},{2178,55774,3}, {2190,55771,3},{2192,55768,3},{2208,55758,3},{2193,55764,3},{2182,55764,3}, {2167,55769,3},{2148,55779,3},{2147,55783,3},{2148,55788,3},{2143,55786,3}, {2137,55788,3},{2128,55793,3},{2125,55793,3},{2125,55796,3},{2113,55798,3}, {2097,55806,3},{2080,55816,3},{2075,55818,3},{2073,55816,3},{2068,55819,3}, {2053,55831,3},{2047,55841,3},{2030,55853,3},{2015,55868,3},{2008,55871,3}, {1987,55891,3},{1973,55896,3},{1967,55896,3},{1953,55899,3},{1947,55906,3}, {1943,55904,3},{1938,55906,3},{1933,55906,3},{1923,55919,3},{1922,55924,3}, {1912,55926,3},{1907,55931,3},{1905,55939,3},{1895,55941,3},{1887,55946,3}, {1883,55953,3},{1880,55961,3},{1877,55961,3},{1880,55954,3},{1882,55948,3}, {1887,55943,3},{1887,55941,3},{1885,55941,3},{1883,55943,3},{1882,55949,3}, {1880,55949,3},{1875,55954,3},{1875,55948,3},{1872,55949,3},{1872,55954,3}, {1875,55958,3},{1872,55968,3},{1870,55974,3},{1867,55978,3},{1868,55979,3}, {1870,55978,3},{1875,55963,3},{1880,55963,3},{1873,55971,3},{1872,55979,3}, {1870,55996,3},{1872,56008,3},{1870,56018,3},{1862,56031,3},{1855,56034,3}, {1853,56041,3},{1853,56054,3},{1852,56058,3},{1840,56063,3},{1828,56074,3}, {1818,56078,3},{1815,56083,3},{1815,56089,3},{1820,56119,3},{1830,56149,3}, {1825,56148,3},{1827,56156,3},{1828,56159,3},{1832,56159,3},{1833,56163,3}, {1835,56168,3},{1833,56168,3},{1833,56171,3},{1835,56178,3},{1837,56179,3}, {1840,56179,3},{1840,56174,3},{1837,56166,3},{1835,56164,3},{1835,56159,3}, {1830,56156,3},{1832,56151,3},{1835,56158,3},{1842,56178,3},{1843,56193,3}, {1843,56221,3},{1842,56219,3},{1840,56218,3},{1837,56219,3},{1837,56223,3}, {1838,56224,3},{1837,56224,3},{1835,56223,3},{1833,56223,3},{1837,56224,3}, {1838,56228,3},{1840,56228,3},{1842,56223,3},{1843,56223,3},{1845,56226,3}, {1843,56239,3},{1845,56244,3},{1850,56256,3},{1858,56264,3},{1858,56266,3}, {1853,56268,3},{1843,56269,3},{1855,56269,3},{1862,56268,3},{1862,56278,3}, {1868,56296,3},{1868,56314,3},{1873,56338,3},{1872,56341,3},{1868,56343,3}, {1862,56351,3},{1858,56349,3},{1860,56348,3},{1858,56343,3},{1863,56341,3}, {1860,56339,3},{1862,56334,3},{1858,56338,3},{1858,56333,3},{1855,56331,3}, {1853,56336,3},{1855,56341,3},{1850,56346,3},{1855,56343,3},{1857,56339,3}, {1860,56339,3},{1857,56341,3},{1857,56346,3},{1855,56344,3},{1855,56348,3}, {1852,56349,3},{1852,56348,3},{1850,56353,3},{1843,56351,3},{1838,56356,3}, {1840,56358,3},{1845,56354,3},{1843,56358,3},{1843,56359,3},{1847,56356,3}, {1848,56356,3},{1843,56374,3},{1845,56383,3},{1847,56386,3},{1843,56386,3}, {1843,56389,3},{1848,56388,3},{1848,56386,3},{1845,56383,3},{1848,56383,3}, {1852,56388,3},{1857,56403,3},{1862,56406,3},{1862,56411,3},{1865,56418,3}, {1867,56418,3},{1863,56406,3},{1867,56408,3},{1870,56409,3},{1873,56409,3}, {1878,56404,3},{1877,56401,3},{1878,56398,3},{1883,56398,3},{1890,56406,3}, {1895,56413,3},{1890,56404,3},{1888,56399,3},{1883,56394,3},{1882,56394,3}, {1880,56388,3},{1882,56384,3},{1890,56393,3},{1900,56419,3},{1908,56429,3}, {1912,56436,3},{1917,56444,3},{1925,56451,3},{1932,56459,3},{1935,56463,3}, {1963,56466,3},{1968,56464,3},{1977,56468,3},{1982,56473,3},{1988,56483,3}, {1997,56491,3},{2008,56486,3},{2012,56488,3},{2018,56486,3},{2023,56488,3}, {2030,56488,3},{2040,56489,3},{2052,56488,3},{2063,56489,3},{2073,56491,3}, {2082,56498,3},{2087,56499,3},{2097,56503,3},{2087,56499,3},{2083,56498,3}, {2078,56494,3},{2078,56493,3},{2103,56503,3},{2108,56513,3},{2113,56523,3}, {2117,56526,3},{2118,56536,3},{2123,56543,3},{2127,56554,3},{2130,56566,3}, {2130,56578,3},{2133,56594,3},{2137,56626,3},{2142,56651,3},{2143,56654,3}, {2145,56666,3},{2153,56676,3},{2155,56684,3},{2157,56691,3},{2155,56709,3}, {2157,56716,3},{2158,56728,3},{2160,56723,3},{2158,56716,3},{2157,56711,3}, {2162,56724,3},{2160,56731,3},{2160,56736,3},{2157,56748,3},{2153,56766,3}, {2152,56763,3},{2155,56751,3},{2150,56761,3},{2150,56774,3},{2152,56768,3}, {2153,56768,3},{2150,56779,3},{2150,56786,3},{2148,56788,3},{2148,56786,3}, {2147,56788,3},{2147,56796,3},{2145,56801,3},{2143,56811,3},{2148,56821,3}, {2152,56823,3},{2153,56823,3},{2155,56823,3},{2157,56821,3},{2157,56816,3}, {2153,56811,3},{2153,56803,3},{2155,56803,3},{2152,56796,3},{2150,56796,3}, {2153,56794,3},{2158,56799,3},{2157,56808,3},{2158,56814,3},{2162,56824,3}, {2158,56836,3},{2143,56846,3},{2145,56849,3},{2143,56853,3},{2137,56854,3}, {2130,56853,3},{2118,56854,3},{2115,56859,3},{2115,56863,3},{2112,56859,3}, {2103,56858,3},{2102,56854,3},{2083,56848,3},{2073,56838,3},{2062,56829,3}, {2057,56819,3},{2050,56813,3},{2030,56799,3},{2028,56799,3},{2028,56798,3}, {2027,56798,3},{2022,56793,3},{2010,56789,3},{1998,56789,3},{1990,56793,3}, {1985,56793,3},{1983,56789,3},{1978,56789,3},{1983,56788,3},{1985,56791,3}, {1992,56793,3},{1993,56789,3},{1997,56788,3},{1995,56788,3},{1987,56789,3}, {1988,56791,3},{1988,56789,3},{1980,56784,3},{1980,56783,3},{1982,56783,3}, {1980,56781,3},{1980,56778,3},{1963,56769,3},{1963,56768,3},{1968,56771,3}, {1967,56763,3},{1960,56763,3},{1958,56766,3},{1957,56768,3},{1957,56769,3}, {1950,56769,3},{1952,56771,3},{1955,56776,3},{1957,56779,3},{1955,56784,3}, {1953,56786,3},{1957,56788,3},{1957,56789,3},{1955,56789,3},{1955,56791,3}, {1958,56794,3},{1960,56793,3},{1960,56791,3},{1957,56793,3},{1958,56783,3}, {1958,56791,3},{1963,56793,3},{1958,56794,3},{1950,56793,3},{1945,56789,3}, {1940,56783,3},{1940,56779,3},{1940,56783,3},{1943,56781,3},{1940,56773,3}, {1935,56769,3},{1933,56769,3},{1935,56771,3},{1932,56771,3},{1932,56768,3}, {1930,56769,3},{1925,56768,3},{1922,56773,3},{1925,56776,3},{1928,56778,3}, {1932,56779,3},{1933,56786,3},{1932,56786,3},{1928,56784,3},{1932,56788,3}, {1932,56789,3},{1922,56783,3},{1910,56781,3},{1905,56776,3},{1905,56778,3}, {1895,56774,3},{1877,56771,3},{1867,56763,3},{1855,56763,3},{1852,56761,3}, {1842,56759,3},{1832,56753,3},{1818,56751,3},{1823,56751,3},{1822,56748,3}, {1823,56748,3},{1825,56749,3},{1832,56751,3},{1828,56748,3},{1830,56748,3}, {1833,56748,3},{1835,56746,3},{1837,56746,3},{1840,56743,3},{1843,56744,3}, {1850,56729,3},{1853,56728,3},{1855,56731,3},{1860,56731,3},{1868,56736,3}, {1870,56734,3},{1878,56736,3},{1882,56733,3},{1887,56733,3},{1885,56729,3}, {1878,56726,3},{1872,56724,3},{1873,56721,3},{1878,56723,3},{1873,56721,3}, {1873,56716,3},{1868,56711,3},{1867,56711,3},{1870,56716,3},{1873,56718,3}, {1872,56718,3},{1867,56716,3},{1870,56719,3},{1870,56721,3},{1867,56718,3}, {1848,56708,3},{1848,56696,3},{1848,56693,3},{1848,56689,3},{1848,56688,3}, {1840,56683,3},{1833,56681,3},{1830,56678,3},{1823,56676,3},{1818,56668,3}, {1817,56668,3},{1812,56666,3},{1807,56664,3},{1803,56661,3},{1798,56659,3}, {1793,56653,3},{1788,56651,3},{1797,56643,3},{1797,56638,3},{1800,56634,3}, {1800,56633,3},{1795,56621,3},{1782,56621,3},{1782,56616,3},{1782,56611,3}, {1782,56604,3},{1782,56599,3},{1782,56594,3},{1782,56589,3},{1782,56583,3}, {1782,56578,3},{1782,56573,3},{1782,56568,3},{1782,56561,3},{1782,56556,3}, {1782,56551,3},{1782,56546,3},{1782,56541,3},{1782,56534,3},{1782,56529,3}, {1782,56524,3},{1782,56519,3},{1782,56513,3},{1782,56508,3},{1782,56503,3}, {1782,56498,3},{1782,56491,3},{1782,56486,3},{1782,56481,3},{1782,56476,3}, {1782,56469,3},{1782,56464,3},{1782,56459,3},{1782,56454,3},{1782,56449,3}, {1782,56443,3},{1782,56438,3},{1777,56438,3},{1772,56438,3},{1767,56438,3}, {1762,56438,3},{1757,56438,3},{1752,56438,3},{1747,56438,3},{1742,56438,3}, {1737,56438,3},{1730,56438,3},{1725,56438,3},{1725,56436,3},{1725,56431,3}, {1725,56424,3},{1725,56419,3},{1725,56414,3},{1725,56409,3},{1725,56403,3}, {1725,56398,3},{1725,56393,3},{1723,56393,3},{1722,56394,3},{1722,56398,3}, {1718,56401,3},{1718,56408,3},{1713,56409,3},{1712,56413,3},{1703,56418,3}, {1702,56424,3},{1698,56424,3},{1693,56429,3},{1690,56429,3},{1690,56434,3}, {1687,56438,3},{1690,56438,3},{1690,56441,3},{1688,56441,3},{1687,56439,3}, {1685,56443,3},{1683,56444,3},{1682,56448,3},{1680,56451,3},{1680,56456,3}, {1678,56456,3},{1673,56464,3},{1665,56471,3},{1660,56471,3},{1658,56469,3}, {1660,56473,3},{1658,56473,3},{1655,56471,3},{1652,56471,3},{1652,56474,3}, {1648,56473,3},{1648,56474,3},{1648,56478,3},{1648,56481,3},{1647,56483,3}, {1647,56486,3},{1645,56488,3},{1643,56488,3},{1642,56496,3},{1638,56496,3}, {1637,56498,3},{1637,56494,3},{1633,56498,3},{1630,56491,3},{1628,56494,3}, {1628,56493,3},{1627,56493,3},{1627,56491,3},{1625,56489,3},{1623,56493,3}, {1622,56489,3},{1618,56489,3},{1617,56493,3},{1615,56491,3},{1613,56493,3}, {1612,56489,3},{1610,56491,3},{1610,56493,3},{1608,56491,3},{1608,56488,3}, {1608,56481,3},{1608,56476,3},{1608,56471,3},{1608,56466,3},{1608,56461,3}, {1608,56454,3},{1608,56449,3},{1608,56444,3},{1608,56439,3},{1608,56433,3}, {1608,56428,3},{1608,56423,3},{1608,56418,3},{1608,56413,3},{1608,56406,3}, {1608,56401,3},{1608,56396,3},{1608,56391,3},{1608,56386,3},{1608,56379,3}, {1608,56374,3},{1608,56369,3},{1608,56363,3},{1603,56361,3},{1598,56358,3}, {1595,56356,3},{1590,56353,3},{1585,56349,3},{1580,56348,3},{1577,56344,3}, {1572,56341,3},{1567,56339,3},{1563,56336,3},{1558,56334,3},{1553,56331,3}, {1548,56328,3},{1545,56326,3},{1540,56323,3},{1535,56321,3},{1530,56318,3}, {1527,56314,3},{1523,56316,3},{1520,56319,3},{1515,56323,3},{1512,56326,3}, {1508,56329,3},{1503,56328,3},{1502,56323,3},{1500,56321,3},{1490,56323,3}, {1485,56318,3},{1468,56321,3},{1458,56318,3},{1455,56314,3},{1455,56311,3}, {3253,53824,131},{3265,53819,3},{3268,53814,3},{3270,53816,3},{3268,53818,3}, {3262,53821,3},{3262,53824,3},{3265,53824,3},{3268,53821,3},{3273,53814,3}, {3270,53813,3},{3267,53811,3},{3268,53809,3},{3277,53811,3},{3283,53808,3}, {3288,53811,3},{3300,53808,3},{3312,53803,3},{3325,53794,3},{3335,53786,3}, {3345,53771,3},{3348,53764,3},{3355,53758,3},{3360,53751,3},{3363,53741,3}, {3377,53724,3},{3377,53716,3},{3378,53714,3},{3377,53709,3},{3373,53709,3}, {3372,53708,3},{3375,53701,3},{3375,53696,3},{3378,53694,3},{3383,53698,3}, {3385,53698,3},{3393,53693,3},{3405,53683,3},{3403,53661,3},{3403,53658,3}, {3402,53656,3},{3405,53644,3},{3408,53634,3},{3412,53624,3},{3412,53623,3}, {3412,53626,3},{3412,53624,3},{3417,53614,3},{3428,53609,3},{3428,53604,3}, {3435,53594,3},{3442,53583,3},{3442,53574,3},{3442,53568,3},{3440,53564,3}, {3442,53558,3},{3442,53549,3},{3447,53536,3},{3448,53524,3},{3447,53506,3}, {3445,53491,3},{3453,53486,3},{3457,53481,3},{3457,53474,3},{3462,53473,3}, {3470,53478,3},{3477,53474,3},{3485,53476,3},{3493,53471,3},{3505,53476,3}, {3510,53476,3},{3513,53474,3},{3518,53466,3},{3517,53461,3},{3522,53451,3}, {3525,53449,3},{3530,53449,3},{3537,53453,3},{3533,53453,3},{3535,53456,3}, {3537,53453,3},{3543,53451,3},{3547,53436,3},{3565,53421,3},{3567,53409,3}, {3573,53406,3},{3577,53406,3},{3588,53393,3},{3600,53389,3},{3603,53381,3}, {3618,53371,3},{3625,53356,3},{3628,53354,3},{3630,53349,3},{3640,53349,3}, {3652,53344,3},{3653,53346,3},{3657,53344,3},{3658,53341,3},{3660,53341,3}, {3665,53346,3},{3662,53351,3},{3663,53354,3},{3675,53358,3},{3673,53363,3}, {3675,53361,3},{3677,53359,3},{3682,53361,3},{3697,53349,3},{3698,53346,3}, {3695,53341,3},{3697,53338,3},{3695,53333,3},{3697,53328,3},{3702,53318,3}, {3712,53308,3},{3712,53306,3},{3722,53298,3},{3733,53299,3},{3748,53294,3}, {3750,53293,3},{3752,53288,3},{3758,53286,3},{3765,53289,3},{3778,53288,3}, {3782,53291,3},{3782,53298,3},{3778,53301,3},{3775,53299,3},{3773,53303,3}, {3772,53299,3},{3765,53299,3},{3762,53301,3},{3760,53306,3},{3758,53308,3}, {3758,53313,3},{3755,53313,3},{3753,53318,3},{3752,53318,3},{3750,53324,3}, {3747,53328,3},{3747,53336,3},{3748,53333,3},{3750,53333,3},{3752,53328,3}, {3770,53321,3},{3772,53319,3},{3772,53314,3},{3773,53313,3},{3775,53316,3}, {3778,53306,3},{3783,53306,3},{3783,53308,3},{3790,53306,3},{3792,53301,3}, {3797,53296,3},{3797,53299,3},{3802,53301,3},{3802,53308,3},{3807,53314,3}, {3803,53323,3},{3807,53334,3},{3802,53368,3},{3802,53369,3},{3803,53366,3}, {3805,53369,3},{3808,53371,3},{3810,53376,3},{3805,53384,3},{3805,53388,3}, {3800,53393,3},{3802,53394,3},{3812,53378,3},{3810,53371,3},{3807,53368,3}, {3805,53364,3},{3805,53361,3},{3807,53359,3},{3810,53366,3},{3815,53369,3}, {3808,53361,3},{3808,53351,3},{3807,53346,3},{3808,53348,3},{3810,53338,3}, {3815,53339,3},{3815,53336,3},{3813,53333,3},{3810,53331,3},{3805,53323,3}, {3807,53319,3},{3808,53313,3},{3812,53308,3},{3817,53298,3},{3813,53296,3}, {3812,53288,3},{3808,53289,3},{3802,53288,3},{3800,53293,3},{3798,53293,3}, {3797,53289,3},{3795,53289,3},{3793,53288,3},{3788,53294,3},{3788,53291,3}, {3790,53289,3},{3788,53289,3},{3783,53291,3},{3783,53288,3},{3792,53273,3}, {3793,53271,3},{3792,53271,3},{3790,53268,3},{3797,53261,3},{3800,53258,3}, {3805,53246,3},{3808,53244,3},{3807,53243,3},{3805,53244,3},{3802,53241,3}, {3800,53241,3},{3800,53236,3},{3805,53241,3},{3815,53243,3},{3820,53243,3}, {3823,53239,3},{3818,53246,3},{3810,53253,3},{3808,53256,3},{3812,53253,3}, {3825,53243,3},{3830,53239,3},{3833,53233,3},{3832,53233,3},{3832,53231,3}, {3837,53231,3},{3847,53226,3},{3857,53204,3},{3865,53196,3},{3873,53191,3}, {3875,53186,3},{3893,53166,3},{3897,53164,3},{3902,53169,3},{3912,53168,3}, {3918,53164,3},{3922,53161,3},{3937,53156,3},{3948,53158,3},{3957,53163,3}, {3962,53159,3},{3970,53159,3},{3977,53154,3},{3983,53154,3},{3998,53141,3}, {4002,53134,3},{4003,53131,3},{4010,53129,3},{4025,53104,3},{4033,53104,3}, {4045,53098,3},{4058,53103,3},{4065,53108,3},{4072,53109,3},{4077,53114,3}, {4072,53111,3},{4070,53114,3},{4072,53118,3},{4075,53116,3},{4080,53119,3}, {4082,53128,3},{4085,53129,3},{4085,53123,3},{4078,53118,3},{4078,53116,3}, {4087,53121,3},{4098,53126,3},{4103,53126,3},{4108,53123,3},{4115,53123,3}, {4122,53126,3},{4142,53133,3},{4153,53129,3},{4155,53131,3},{4157,53128,3}, {4170,53124,3},{4175,53121,3},{4178,53111,3},{4187,53118,3},{4195,53119,3}, {4200,53118,3},{4212,53103,3},{4222,53099,3},{4227,53096,3},{4230,53096,3}, {4233,53093,3},{4238,53096,3},{4248,53094,3},{4255,53098,3},{4267,53098,3}, {4270,53093,3},{4275,53089,3},{4275,53086,3},{4282,53086,3},{4285,53081,3}, {4303,53093,3},{4335,53099,3},{4335,53104,3},{4332,53104,3},{4330,53106,3}, {4333,53106,3},{4335,53109,3},{4337,53106,3},{4342,53111,3},{4343,53114,3}, {4338,53116,3},{4337,53123,3},{4345,53116,3},{4348,53118,3},{4338,53104,3}, {4357,53114,3},{4367,53118,3},{4370,53121,3},{4373,53124,3},{4372,53126,3}, {4372,53129,3},{4375,53124,3},{4375,53121,3},{4370,53121,3},{4370,53118,3}, {4400,53124,3},{4400,53126,3},{4407,53124,3},{4418,53126,3},{4433,53126,3}, {4443,53129,3},{4442,53136,3},{4445,53134,3},{4447,53129,3},{4462,53131,3}, {4462,53136,3},{4465,53136,3},{4465,53133,3},{4468,53131,3},{4473,53133,3}, {4483,53131,3},{4492,53134,3},{4492,53136,3},{4507,53136,3},{4518,53141,3}, {4522,53141,3},{4528,53143,3},{4533,53141,3},{4535,53138,3},{4537,53141,3}, {4543,53143,3},{4540,53143,3},{4542,53146,3},{4547,53141,3},{4550,53141,3}, {4552,53143,3},{4552,53146,3},{4548,53149,3},{4552,53153,3},{4553,53149,3}, {4558,53148,3},{4558,53144,3},{4560,53143,3},{4568,53146,3},{4572,53151,3}, {4572,53146,3},{4568,53144,3},{4572,53144,3},{4577,53141,3},{4578,53139,3}, {4582,53141,3},{4588,53143,3},{4595,53139,3},{4598,53144,3},{4603,53144,3}, {4613,53143,3},{4623,53138,3},{4617,53151,3},{4617,53156,3},{4613,53156,3}, {4612,53158,3},{4615,53159,3},{4620,53153,3},{4622,53159,3},{4618,53164,3}, {4620,53178,3},{4622,53176,3},{4622,53181,3},{4625,53186,3},{4625,53189,3}, {4622,53193,3},{4617,53196,3},{4615,53209,3},{4617,53216,3},{4620,53219,3}, {4617,53209,3},{4620,53204,3},{4623,53198,3},{4628,53193,3},{4627,53179,3}, {4628,53171,3},{4632,53168,3},{4630,53166,3},{4628,53161,3},{4630,53158,3}, {4627,53151,3},{4627,53146,3},{4633,53138,3},{4632,53134,3},{4628,53134,3}, {4628,53129,3},{4635,53133,3},{4665,53131,3},{4665,53134,3},{4663,53133,3}, {4658,53136,3},{4650,53134,3},{4640,53138,3},{4640,53143,3},{4645,53144,3}, {4642,53153,3},{4643,53153,3},{4645,53148,3},{4650,53144,3},{4653,53148,3}, {4657,53148,3},{4663,53143,3},{4662,53148,3},{4665,53144,3},{4668,53146,3}, {4672,53153,3},{4667,53158,3},{4670,53161,3},{4670,53158,3},{4675,53149,3}, {4673,53144,3},{4675,53141,3},{4672,53141,3},{4675,53129,3},{4692,53124,3}, {4693,53126,3},{4692,53128,3},{4687,53129,3},{4685,53134,3},{4685,53136,3}, {4688,53134,3},{4688,53133,3},{4690,53133,3},{4698,53156,3},{4698,53144,3}, {4700,53144,3},{4698,53139,3},{4705,53134,3},{4707,53129,3},{4707,53126,3}, {4703,53123,3},{4697,53124,3},{4693,53121,3},{4698,53121,3},{4707,53121,3}, {4722,53118,3},{4732,53113,3},{4733,53109,3},{4737,53111,3},{4737,53106,3}, {4767,53101,3},{4775,53096,3},{4777,53093,3},{4783,53089,3},{4785,53086,3}, {4788,53081,3},{4788,53078,3},{4800,53071,3},{4812,53068,3},{4817,53064,3}, {4822,53069,3},{4825,53068,3},{4833,53071,3},{4837,53066,3},{4840,53064,3}, {4838,53079,3},{4830,53096,3},{4825,53121,3},{4820,53133,3},{4818,53143,3}, {4817,53158,3},{4817,53166,3},{4815,53174,3},{4815,53188,3},{4815,53194,3}, {4813,53194,3},{4813,53201,3},{4813,53213,3},{4820,53226,3},{4817,53221,3}, {4815,53228,3},{4812,53233,3},{4807,53234,3},{4805,53236,3},{4807,53238,3}, {4810,53236,3},{4812,53241,3},{4810,53244,3},{4808,53246,3},{4807,53249,3}, {4803,53253,3},{4802,53249,3},{4800,53251,3},{4805,53254,3},{4810,53249,3}, {4812,53249,3},{4815,53253,3},{4817,53261,3},{4813,53263,3},{4812,53258,3}, {4808,53258,3},{4798,53269,3},{4795,53269,3},{4790,53276,3},{4788,53269,3}, {4785,53269,3},{4782,53264,3},{4770,53258,3},{4772,53254,3},{4782,53258,3}, {4787,53256,3},{4780,53254,3},{4783,53251,3},{4777,53253,3},{4773,53249,3}, {4767,53246,3},{4762,53239,3},{4752,53231,3},{4747,53226,3},{4737,53221,3}, {4735,53226,3},{4737,53236,3},{4745,53253,3},{4745,53249,3},{4738,53234,3}, {4740,53226,3},{4752,53234,3},{4762,53243,3},{4763,53246,3},{4768,53261,3}, {4775,53264,3},{4787,53274,3},{4785,53278,3},{4783,53279,3},{4783,53281,3}, {4793,53279,3},{4795,53276,3},{4792,53284,3},{4782,53288,3},{4780,53288,3}, {4777,53291,3},{4775,53288,3},{4777,53283,3},{4772,53278,3},{4775,53271,3}, {4770,53276,3},{4758,53278,3},{4767,53269,3},{4765,53268,3},{4760,53269,3}, {4758,53274,3},{4755,53269,3},{4757,53276,3},{4760,53283,3},{4755,53283,3}, {4753,53288,3},{4743,53281,3},{4737,53283,3},{4735,53279,3},{4730,53283,3}, {4728,53279,3},{4732,53269,3},{4733,53269,3},{4738,53274,3},{4742,53274,3}, {4740,53273,3},{4735,53264,3},{4730,53261,3},{4725,53264,3},{4723,53263,3}, {4722,53263,3},{4718,53261,3},{4722,53258,3},{4727,53254,3},{4732,53259,3}, {4742,53256,3},{4733,53253,3},{4730,53244,3},{4720,53243,3},{4718,53239,3}, {4715,53229,3},{4715,53236,3},{4712,53229,3},{4713,53234,3},{4720,53244,3}, {4718,53244,3},{4712,53241,3},{4710,53238,3},{4712,53241,3},{4715,53244,3}, {4707,53246,3},{4707,53248,3},{4710,53248,3},{4715,53248,3},{4718,53253,3}, {4715,53251,3},{4715,53256,3},{4718,53256,3},{4710,53264,3},{4712,53268,3}, {4720,53279,3},{4728,53284,3},{4733,53284,3},{4728,53294,3},{4730,53298,3}, {4733,53294,3},{4737,53304,3},{4740,53304,3},{4747,53301,3},{4750,53301,3}, {4760,53296,3},{4762,53299,3},{4758,53303,3},{4762,53303,3},{4767,53294,3}, {4773,53301,3},{4778,53298,3},{4783,53299,3},{4788,53304,3},{4797,53308,3}, {4798,53314,3},{4802,53318,3},{4803,53316,3},{4803,53313,3},{4803,53309,3}, {4808,53303,3},{4822,53298,3},{4823,53293,3},{4822,53291,3},{4817,53289,3}, {4813,53291,3},{4810,53298,3},{4805,53301,3},{4805,53298,3},{4812,53291,3}, {4812,53286,3},{4818,53283,3},{4823,53284,3},{4825,53286,3},{4825,53293,3}, {4823,53298,3},{4830,53298,3},{4837,53286,3},{4837,53283,3},{4840,53279,3}, {4843,53279,3},{4840,53273,3},{4842,53268,3},{4847,53269,3},{4850,53266,3}, {4852,53274,3},{4845,53278,3},{4848,53279,3},{4845,53283,3},{4845,53288,3}, {4853,53288,3},{4858,53279,3},{4858,53284,3},{4855,53289,3},{4855,53291,3}, {4860,53293,3},{4870,53284,3},{4873,53286,3},{4875,53284,3},{4878,53278,3}, {4875,53276,3},{4872,53273,3},{4872,53269,3},{4877,53271,3},{4880,53268,3}, {4878,53266,3},{4882,53266,3},{4887,53259,3},{4892,53261,3},{4893,53259,3}, {4893,53254,3},{4895,53254,3},{4897,53259,3},{4895,53263,3},{4898,53261,3}, {4900,53259,3},{4900,53266,3},{4900,53276,3},{4900,53286,3},{4900,53296,3}, {4900,53306,3},{4900,53316,3},{4900,53326,3},{4900,53336,3},{4900,53346,3}, {4900,53356,3},{4900,53366,3},{4900,53376,3},{4900,53386,3},{4900,53399,3}, {4900,53406,3},{4900,53416,3},{4900,53426,3},{4900,53436,3},{4900,53446,3}, {4900,53456,3},{4900,53466,3},{4900,53476,3},{4900,53486,3},{4900,53496,3}, {4900,53506,3},{4900,53516,3},{4900,53526,3},{4900,53536,3},{4900,53543,3}, {4900,53556,3},{4900,53566,3},{4900,53576,3},{4900,53586,3},{4900,53596,3}, {4900,53606,3},{4900,53616,3},{4900,53626,3},{4900,53636,3},{4900,53646,3}, {4900,53656,3},{4900,53666,3},{4900,53676,3},{4900,53686,3},{4900,53696,3}, {4900,53706,3},{4900,53716,3},{4900,53726,3},{4900,53736,3},{4900,53746,3}, {4900,53756,3},{4900,53766,3},{4900,53776,3},{4900,53786,3},{4900,53796,3}, {4900,53806,3},{4900,53816,3},{4900,53826,3},{4900,53833,3},{4900,53843,3}, {4900,53853,3},{4900,53863,3},{4900,53873,3},{4900,53883,3},{4900,53893,3}, {4900,53903,3},{4900,53913,3},{4900,53923,3},{4900,53931,3},{4900,53936,3}, {4900,53946,3},{4900,53956,3},{4900,53966,3},{4900,53976,3},{4900,53986,3}, {4900,53996,3},{4900,54006,3},{4900,54016,3},{4900,54026,3},{4900,54036,3}, {4900,54046,3},{4900,54056,3},{4900,54066,3},{4900,54076,3},{4900,54086,3}, {4900,54096,3},{4900,54106,3},{4900,54116,3},{4900,54129,3},{4900,54136,3}, {4900,54146,3},{4900,54156,3},{4900,54166,3},{4900,54176,3},{4900,54186,3}, {4900,54196,3},{4900,54206,3},{4900,54216,3},{4900,54223,3},{4900,54236,3}, {4900,54246,3},{4900,54256,3},{4900,54266,3},{4900,54276,3},{4900,54286,3}, {4900,54296,3},{4900,54306,3},{4900,54316,3},{4900,54326,3},{4900,54336,3}, {4900,54346,3},{4900,54356,3},{4900,54366,3},{4900,54376,3},{4900,54386,3}, {4900,54396,3},{4900,54406,3},{4900,54416,3},{4900,54426,3},{4900,54436,3}, {4900,54446,3},{4900,54456,3},{4900,54466,3},{4900,54476,3},{4900,54486,3}, {4900,54496,3},{4900,54506,3},{4900,54516,3},{4900,54526,3},{4900,54536,3}, {4900,54546,3},{4900,54556,3},{4900,54566,3},{4900,54576,3},{4900,54586,3}, {4900,54596,3},{4900,54606,3},{4900,54616,3},{4900,54626,3},{4900,54636,3}, {4900,54646,3},{4900,54656,3},{4900,54666,3},{4900,54676,3},{4900,54683,3}, {4900,54696,3},{4900,54706,3},{4900,54716,3},{4900,54726,3},{4900,54736,3}, {4900,54746,3},{4900,54756,3},{4900,54766,3},{4900,54776,3},{4900,54786,3}, {4900,54796,3},{4900,54806,3},{4900,54816,3},{4900,54826,3},{4900,54836,3}, {4900,54843,3},{4900,54856,3},{4900,54866,3},{4900,54876,3},{4900,54886,3}, {4900,54896,3},{4900,54906,3},{4900,54916,3},{4900,54926,3},{4900,54936,3}, {4900,54946,3},{4900,54956,3},{4900,54966,3},{4900,54979,3},{4900,54986,3}, {4900,54996,3},{4900,55006,3},{4900,55016,3},{4900,55026,3},{4900,55036,3}, {4900,55046,3},{4900,55056,3},{4900,55066,3},{4900,55076,3},{4900,55086,3}, {4900,55096,3},{4900,55106,3},{4900,55116,3},{4900,55124,3},{4900,55133,3}, {4900,55144,3},{4900,55156,3},{4900,55166,3},{4900,55176,3},{4900,55186,3}, {4900,55196,3},{4900,55206,3},{4900,55216,3},{4900,55226,3},{4900,55236,3}, {4900,55246,3},{4900,55256,3},{4900,55266,3},{4900,55276,3},{4900,55286,3}, {4900,55296,3},{4900,55306,3},{4900,55316,3},{4900,55326,3},{4900,55336,3}, {4900,55346,3},{4900,55356,3},{4900,55366,3},{4900,55376,3},{4900,55386,3}, {4900,55399,3},{4900,55406,3},{4900,55416,3},{4900,55426,3},{4900,55436,3}, {4900,55446,3},{4900,55456,3},{4900,55466,3},{4900,55476,3},{4900,55486,3}, {4900,55496,3},{4900,55506,3},{4900,55516,3},{4900,55526,3},{4900,55536,3}, {4900,55546,3},{4900,55556,3},{4900,55566,3},{4900,55576,3},{4900,55586,3}, {4900,55596,3},{4900,55606,3},{4900,55616,3},{4900,55626,3},{4900,55636,3}, {4900,55646,3},{4900,55656,3},{4900,55666,3},{4900,55676,3},{4900,55686,3}, {4900,55696,3},{4900,55706,3},{4900,55716,3},{4900,55726,3},{4900,55736,3}, {4900,55746,3},{4900,55756,3},{4900,55766,3},{4900,55776,3},{4900,55786,3}, {4900,55796,3},{4900,55806,3},{4900,55816,3},{4900,55826,3},{4900,55836,3}, {4900,55846,3},{4900,55856,3},{4900,55866,3},{4900,55876,3},{4900,55886,3}, {4900,55896,3},{4900,55906,3},{4900,55916,3},{4900,55926,3},{4900,55936,3}, {4900,55946,3},{4900,55956,3},{4900,55966,3},{4900,55976,3},{4900,55986,3}, {4900,55996,3},{4900,56006,3},{4900,56016,3},{4900,56021,3},{4907,56021,3}, {4913,56021,3},{4920,56021,3},{4927,56021,3},{4933,56021,3},{4938,56021,3}, {4937,56028,3},{4937,56043,3},{4932,56054,3},{4917,56056,3},{4897,56064,3}, {4888,56066,3},{4878,56066,3},{4875,56071,3},{4872,56078,3},{4870,56088,3}, {4872,56096,3},{4870,56106,3},{4870,56109,3},{4865,56113,3},{4863,56151,3}, {4862,56153,3},{4852,56156,3},{4852,56158,3},{4852,56171,3},{4853,56188,3}, {4857,56191,3},{4860,56191,3},{4863,56211,3},{4862,56224,3},{4862,56241,3}, {4858,56249,3},{4853,56264,3},{4853,56273,3},{4850,56274,3},{4848,56266,3}, {4845,56266,3},{4843,56271,3},{4845,56286,3},{4840,56291,3},{4832,56291,3}, {4823,56301,3},{4825,56308,3},{4830,56306,3},{4833,56309,3},{4835,56323,3}, {4835,56331,3},{4825,56338,3},{4823,56343,3},{4823,56348,3},{4820,56351,3}, {4820,56363,3},{4815,56368,3},{4812,56366,3},{4810,56366,3},{4810,56378,3}, {4805,56378,3},{4805,56379,3},{4805,56391,3},{4803,56394,3},{4805,56396,3}, {4808,56411,3},{4815,56423,3},{4823,56443,3},{4823,56449,3},{4823,56453,3}, {4818,56453,3},{4817,56458,3},{4812,56458,3},{4808,56461,3},{4812,56478,3}, {4808,56481,3},{4810,56488,3},{4810,56489,3},{4810,56496,3},{4812,56521,3}, {4810,56529,3},{4808,56531,3},{4802,56536,3},{4798,56546,3},{4803,56559,3}, {4802,56566,3},{4800,56578,3},{4798,56578,3},{4800,56573,3},{4797,56569,3}, {4797,56568,3},{4795,56566,3},{4788,56553,3},{4778,56516,3},{4772,56484,3}, {4762,56458,3},{4743,56426,3},{4720,56399,3},{4710,56379,3},{4702,56369,3}, {4700,56364,3},{4693,56354,3},{4682,56329,3},{4678,56326,3},{4677,56326,3}, {4670,56333,3},{4668,56341,3},{4670,56359,3},{4675,56376,3},{4678,56398,3}, {4687,56411,3},{4688,56416,3},{4687,56416,3},{4685,56418,3},{4688,56421,3}, {4687,56423,3},{4687,56424,3},{4688,56426,3},{4688,56431,3},{4692,56433,3}, {4695,56438,3},{4693,56443,3},{4697,56449,3},{4695,56453,3},{4695,56456,3}, {4690,56459,3},{4688,56458,3},{4682,56454,3},{4678,56449,3},{4675,56448,3}, {4670,56451,3},{4667,56444,3},{4662,56441,3},{4660,56441,3},{4660,56444,3}, {4663,56458,3},{4667,56463,3},{4667,56459,3},{4668,56463,3},{4670,56461,3}, {4663,56469,3},{4660,56479,3},{4660,56486,3},{4657,56491,3},{4658,56494,3}, {4662,56501,3},{4662,56506,3},{4668,56533,3},{4683,56556,3},{4683,56574,3}, {4685,56581,3},{4685,56594,3},{4688,56604,3},{4693,56614,3},{4700,56623,3}, {4700,56629,3},{4702,56641,3},{4712,56648,3},{4723,56671,3},{4722,56674,3}, {4713,56673,3},{4712,56684,3},{4708,56686,3},{4703,56684,3},{4705,56686,3}, {4698,56691,3},{4685,56688,3},{4680,56691,3},{4677,56688,3},{4683,56696,3}, {4687,56696,3},{4687,56701,3},{4690,56706,3},{4697,56718,3},{4697,56723,3}, {4690,56711,3},{4683,56708,3},{4690,56716,3},{4693,56729,3},{4690,56754,3}, {4688,56759,3},{4688,56761,3},{4683,56764,3},{4685,56768,3},{4682,56769,3}, {4682,56773,3},{4680,56776,3},{4675,56778,3},{4665,56789,3},{4663,56789,3}, {4660,56798,3},{4653,56798,3},{4652,56801,3},{4650,56823,3},{4653,56828,3}, {4655,56834,3},{4653,56839,3},{4650,56843,3},{4645,56849,3},{4645,56853,3}, {4648,56858,3},{4650,56859,3},{4645,56866,3},{4645,56869,3},{4643,56871,3}, {4657,56889,3},{4655,56893,3},{4668,56921,3},{4667,56926,3},{4670,56946,3}, {4668,56986,3},{4677,57009,3},{4678,57021,3},{4677,57031,3},{4678,57041,3}, {4672,57034,3},{4657,57034,3},{4653,57031,3},{4650,57033,3},{4648,57036,3}, {4650,57043,3},{4648,57044,3},{4645,57054,3},{4650,57071,3},{4648,57074,3}, {4645,57078,3},{4643,57076,3},{4642,57079,3},{4645,57089,3},{4650,57094,3}, {4650,57099,3},{4650,57104,3},{4643,57109,3},{4635,57114,3},{4628,57114,3}, {4625,57118,3},{4620,57109,3},{4618,57113,3},{4618,57121,3},{4615,57133,3}, {4610,57131,3},{4603,57138,3},{4603,57141,3},{4602,57146,3},{4597,57146,3}, {4595,57136,3},{4598,57121,3},{4598,57119,3},{4600,57101,3},{4598,57099,3}, {4600,57098,3},{4602,57091,3},{4598,57089,3},{4600,57086,3},{4598,57083,3}, {4603,57081,3},{4605,57071,3},{4603,57068,3},{4598,57068,3},{4597,57063,3}, {4593,57064,3},{4592,57063,3},{4588,57063,3},{4587,57066,3},{4585,57061,3}, {4588,57053,3},{4592,57051,3},{4593,57044,3},{4602,57034,3},{4607,57018,3}, {4607,57009,3},{4610,57004,3},{4610,56983,3},{4597,56969,3},{4598,56956,3}, {4597,56946,3},{4595,56943,3},{4593,56944,3},{4597,56934,3},{4597,56926,3}, {4597,56914,3},{4593,56908,3},{4590,56904,3},{4582,56901,3},{4575,56884,3}, {4572,56883,3},{4572,56878,3},{4567,56876,3},{4567,56874,3},{4562,56876,3}, {4560,56874,3},{4563,56868,3},{4568,56864,3},{4570,56869,3},{4578,56873,3}, {4578,56879,3},{4580,56878,3},{4585,56883,3},{4588,56881,3},{4590,56878,3}, {4583,56868,3},{4587,56859,3},{4582,56858,3},{4573,56851,3},{4572,56841,3}, {4568,56839,3},{4583,56836,3},{4590,56839,3},{4592,56838,3},{4582,56831,3}, {4570,56826,3},{4567,56819,3},{4553,56808,3},{4542,56803,3},{4523,56784,3}, {4517,56776,3},{4510,56776,3},{4507,56773,3},{4498,56771,3},{4493,56753,3}, {4488,56753,3},{4472,56738,3},{4467,56738,3},{4465,56734,3},{4458,56731,3}, {4455,56736,3},{4455,56743,3},{4458,56746,3},{4462,56749,3},{4465,56759,3}, {4480,56769,3},{4485,56776,3},{4485,56779,3},{4483,56781,3},{4487,56783,3}, {4485,56786,3},{4488,56791,3},{4483,56794,3},{4480,56803,3},{4468,56799,3}, {4453,56788,3},{4437,56784,3},{4433,56781,3},{4428,56783,3},{4423,56786,3}, {4418,56786,3},{4415,56781,3},{4410,56773,3},{4392,56763,3},{4383,56763,3}, {4377,56766,3},{4368,56766,3},{4357,56756,3},{4348,56756,3},{4335,56749,3}, {4325,56746,3},{4317,56748,3},{4312,56746,3},{4308,56749,3},{4302,56746,3}, {4298,56751,3},{4287,56753,3},{4278,56759,3},{4272,56759,3},{4263,56754,3}, {4250,56756,3},{4240,56756,3},{4235,56753,3},{4223,56754,3},{4212,56761,3}, {4207,56769,3},{4195,56771,3},{4183,56776,3},{4172,56784,3},{4168,56789,3}, {4167,56791,3},{4168,56794,3},{4165,56793,3},{4163,56796,3},{4162,56809,3}, {4163,56818,3},{4168,56833,3},{4177,56853,3},{4185,56868,3},{4193,56876,3}, {4213,56886,3},{4228,56901,3},{4245,56908,3},{4257,56913,3},{4275,56914,3}, {4300,56913,3},{4322,56903,3},{4327,56911,3},{4327,56909,3},{4323,56901,3}, {4360,56883,3},{4363,56881,3},{4368,56883,3},{4377,56891,3},{4380,56893,3}, {4392,56889,3},{4395,56891,3},{4400,56886,3},{4407,56884,3},{4417,56896,3}, {4437,56909,3},{4448,56909,3},{4458,56913,3},{4470,56909,3},{4475,56919,3}, {4475,56928,3},{4492,56929,3},{4492,56936,3},{4495,56939,3},{4498,56943,3}, {4495,56948,3},{4495,56953,3},{4507,56959,3},{4510,56966,3},{4518,56971,3}, {4522,56981,3},{4520,56983,3},{4515,56979,3},{4515,56974,3},{4505,56979,3}, {4503,56976,3},{4498,56971,3},{4498,56976,3},{4497,56976,3},{4485,56971,3}, {4482,56971,3},{4478,56976,3},{4487,56978,3},{4490,56981,3},{4490,56979,3}, {4493,56983,3},{4498,56983,3},{4500,56986,3},{4497,56988,3},{4488,56986,3}, {4483,56981,3},{4477,56979,3},{4477,56983,3},{4492,56994,3},{4500,56996,3}, {4510,56998,3},{4520,56996,3},{4527,56998,3},{4532,57004,3},{4538,57023,3}, {4537,57031,3},{4540,57044,3},{4542,57044,3},{4543,57036,3},{4547,57029,3}, {4553,57026,3},{4560,57026,3},{4563,57029,3},{4572,57043,3},{4577,57038,3}, {4577,57054,3},{4580,57061,3},{4577,57068,3},{4573,57079,3},{4567,57088,3}, {4567,57103,3},{4563,57114,3},{4560,57119,3},{4552,57123,3},{4550,57126,3}, {4550,57144,3},{4543,57153,3},{4542,57166,3},{4538,57169,3},{4535,57178,3}, {4535,57188,3},{4528,57198,3},{4527,57194,3},{4523,57196,3},{4517,57201,3}, {4515,57204,3},{4510,57206,3},{4508,57204,3},{4507,57204,3},{4505,57208,3}, {4503,57209,3},{4503,57204,3},{4508,57199,3},{4507,57194,3},{4505,57191,3}, {4502,57191,3},{4500,57189,3},{4493,57193,3},{4488,57203,3},{4482,57206,3}, {4468,57208,3},{4458,57204,3},{4433,57203,3},{4432,57196,3},{4425,57191,3}, {4427,57189,3},{4428,57191,3},{4428,57189,3},{4428,57184,3},{4425,57183,3}, {4405,57176,3},{4405,57169,3},{4400,57168,3},{4402,57161,3},{4398,57159,3}, {4400,57153,3},{4395,57148,3},{4392,57144,3},{4388,57144,3},{4385,57146,3}, {4383,57143,3},{4375,57141,3},{4370,57144,3},{4365,57151,3},{4360,57169,3}, {4367,57178,3},{4372,57181,3},{4373,57184,3},{4370,57186,3},{4372,57189,3}, {4385,57198,3},{4390,57203,3},{4392,57201,3},{4392,57196,3},{4393,57206,3}, {4398,57211,3},{4400,57229,3},{4402,57231,3},{4405,57234,3},{4407,57241,3}, {4402,57256,3},{4393,57266,3},{4380,57273,3},{4358,57276,3},{4347,57281,3}, {4327,57283,3},{4312,57288,3},{4302,57294,3},{4297,57294,3},{4290,57289,3}, {4282,57288,3},{4277,57289,3},{4262,57284,3},{4257,57278,3},{4255,57273,3}, {4257,57274,3},{4260,57273,3},{4262,57274,3},{4265,57273,3},{4268,57273,3}, {4270,57266,3},{4265,57259,3},{4265,57254,3},{4262,57254,3},{4260,57258,3}, {4257,57258,3},{4257,57253,3},{4253,57249,3},{4250,57248,3},{4245,57249,3}, {4240,57248,3},{4237,57243,3},{4235,57234,3},{4228,57224,3},{4223,57221,3}, {4208,57216,3},{4202,57218,3},{4203,57216,3},{4198,57214,3},{4198,57209,3}, {4193,57211,3},{4195,57206,3},{4193,57204,3},{4188,57203,3},{4188,57201,3}, {4182,57194,3},{4177,57194,3},{4177,57191,3},{4173,57189,3},{4172,57191,3}, {4170,57203,3},{4172,57204,3},{4165,57213,3},{4160,57229,3},{4155,57236,3}, {4153,57239,3},{4153,57248,3},{4155,57251,3},{4158,57253,3},{4155,57256,3}, {4155,57266,3},{4152,57266,3},{4148,57241,3},{4147,57239,3},{4147,57231,3}, {4145,57236,3},{4143,57238,3},{4145,57239,3},{4143,57244,3},{4148,57256,3}, {4147,57258,3},{4145,57259,3},{4147,57266,3},{4143,57274,3},{4147,57269,3}, {4150,57268,3},{4143,57278,3},{4138,57289,3},{4143,57299,3},{4145,57311,3}, {4150,57324,3},{4152,57334,3},{4150,57341,3},{4148,57351,3},{4150,57353,3}, {4150,57364,3},{4158,57379,3},{4173,57403,3},{4183,57433,3},{4197,57484,3}, {4208,57514,3},{4217,57526,3},{4215,57529,3},{4215,57524,3},{4212,57523,3}, {4213,57524,3},{4227,57559,3},{4237,57583,3},{4248,57599,3},{4257,57616,3}, {4257,57621,3},{4272,57633,3},{4278,57649,3},{4283,57649,3},{4295,57646,3}, {4298,57643,3},{4300,57643,3},{4303,57648,3},{4305,57648,3},{4307,57644,3}, {4308,57631,3},{4317,57631,3},{4327,57631,3},{4332,57648,3},{4333,57661,3}, {4338,57681,3},{4338,57726,3},{4333,57761,3},{4325,57778,3},{4325,57783,3}, {4328,57798,3},{4330,57821,3},{4328,57838,3},{4325,57841,3},{4327,57843,3}, {4330,57843,3},{4333,57859,3},{4335,57863,3},{4333,57864,3},{4338,57868,3}, {4342,57873,3},{4347,57879,3},{4348,57886,3},{4353,57894,3},{4352,57906,3}, {4353,57909,3},{4358,57918,3},{4360,57914,3},{4363,57914,3},{4367,57919,3}, {4367,57916,3},{4365,57914,3},{4373,57916,3},{4382,57913,3},{4387,57906,3}, {4390,57913,3},{4387,57913,3},{4387,57914,3},{4390,57921,3},{4395,57923,3}, {4398,57929,3},{4400,57931,3},{4400,57928,3},{4398,57923,3},{4397,57919,3}, {4398,57914,3},{4400,57914,3},{4405,57924,3},{4405,57919,3},{4407,57921,3}, {4407,57916,3},{4408,57914,3},{4407,57909,3},{4403,57906,3},{4407,57906,3}, {4408,57901,3},{4412,57899,3},{4422,57918,3},{4427,57931,3},{4435,57943,3}, {4438,57951,3},{4442,57953,3},{4442,57956,3},{4445,57959,3},{4448,57958,3}, {4448,57956,3},{4462,57973,3},{4483,58004,3},{4493,58029,3},{4498,58038,3}, {4498,58044,3},{4502,58053,3},{4500,58061,3},{4500,58068,3},{4500,58111,3}, {4502,58201,3},{4502,58209,3},{4502,58216,3},{4502,58223,3},{4502,58229,3}, {4502,58238,3},{4502,58244,3},{4502,58251,3},{4502,58259,3},{4502,58266,3}, {4502,58273,3},{4502,58281,3},{4502,58288,3},{4502,58296,3},{4502,58303,3}, {4502,58309,3},{4502,58316,3},{4502,58324,3},{4502,58331,3},{4502,58339,3}, {4502,58346,3},{4502,58353,3},{4502,58359,3},{4502,58368,3},{4502,58374,3}, {4502,58381,3},{4502,58386,3},{4508,58386,3},{4512,58393,3},{4520,58396,3}, {4525,58393,3},{4525,58398,3},{4528,58401,3},{4530,58408,3},{4525,58418,3}, {4525,58423,3},{4528,58424,3},{4530,58428,3},{4532,58433,3},{4535,58434,3}, {4535,58439,3},{4530,58444,3},{4523,58448,3},{4530,58453,3},{4532,58454,3}, {4542,58454,3},{4543,58456,3},{4543,58463,3},{4540,58468,3},{4540,58471,3}, {4543,58473,3},{4550,58464,3},{4557,58466,3},{4567,58479,3},{4572,58489,3}, {4572,58494,3},{4575,58498,3},{4582,58496,3},{4592,58511,3},{4595,58513,3}, {4598,58504,3},{4603,58506,3},{4607,58508,3},{4608,58506,3},{4610,58511,3}, {4615,58513,3},{4620,58508,3},{4628,58513,3},{4632,58516,3},{4635,58516,3}, {4637,58521,3},{4643,58531,3},{4670,58534,3},{4747,58613,3},{4743,58631,3}, {4730,58631,3},{4727,58631,3},{4718,58646,3},{4723,58661,3},{4725,58671,3}, {4728,58679,3},{4730,58686,3},{4728,58693,3},{4730,58698,3},{4733,58698,3}, {4737,58704,3},{4733,58718,3},{4730,58721,3},{4720,58739,3},{4712,58748,3}, {4707,58756,3},{4595,58759,3},{4593,58761,3},{4588,58758,3},{4583,58761,3}, {4578,58756,3},{4570,58756,3},{4567,58763,3},{4568,58764,3},{4563,58771,3}, {4560,58784,3},{4562,58789,3},{4558,58794,3},{4553,58794,3},{4550,58788,3}, {4543,58789,3},{4540,58794,3},{4527,58789,3},{4520,58796,3},{4515,58803,3}, {4517,58806,3},{4520,58809,3},{4518,58816,3},{4517,58816,3},{4517,58819,3}, {4508,58826,3},{4507,58826,3},{4498,58833,3},{4493,58829,3},{4497,58826,3}, {4495,58824,3},{4492,58826,3},{4490,58824,3},{4493,58818,3},{4492,58816,3}, {4488,58821,3},{4483,58823,3},{4488,58823,3},{4487,58826,3},{4490,58826,3}, {4487,58831,3},{4483,58829,3},{4485,58833,3},{4492,58831,3},{4487,58836,3}, {4487,58838,3},{4483,58839,3},{4478,58833,3},{4478,58829,3},{4477,58829,3}, {4475,58826,3},{4472,58826,3},{4467,58816,3},{4467,58818,3},{4467,58813,3}, {4468,58811,3},{4467,58809,3},{4465,58811,3},{4465,58809,3},{4467,58804,3}, {4472,58806,3},{4472,58801,3},{4470,58801,3},{4472,58798,3},{4470,58798,3}, {4468,58799,3},{4465,58799,3},{4463,58801,3},{4463,58798,3},{4462,58796,3}, {4468,58793,3},{4468,58791,3},{4462,58793,3},{4462,58786,3},{4465,58786,3}, {4463,58784,3},{4467,58783,3},{4467,58781,3},{4465,58781,3},{4463,58778,3}, {4463,58781,3},{4455,58779,3},{4455,58773,3},{4457,58773,3},{4458,58771,3}, {4455,58768,3},{4452,58766,3},{4452,58763,3},{4462,58763,3},{4455,58759,3}, {4455,58756,3},{4460,58759,3},{4462,58758,3},{4458,58756,3},{4460,58753,3}, {4455,58751,3},{4457,58749,3},{4450,58753,3},{4450,58748,3},{4442,58746,3}, {4443,58744,3},{4450,58746,3},{4450,58744,3},{4443,58743,3},{4443,58741,3}, {4452,58739,3},{4448,58738,3},{4448,58734,3},{4447,58734,3},{4445,58738,3}, {4442,58739,3},{4440,58738,3},{4442,58734,3},{4440,58734,3},{4435,58731,3}, {4437,58729,3},{4438,58729,3},{4440,58728,3},{4442,58726,3},{4447,58726,3}, {4448,58726,3},{4452,58721,3},{4447,58721,3},{4448,58718,3},{4453,58718,3}, {4453,58716,3},{4448,58714,3},{4450,58711,3},{4453,58711,3},{4453,58706,3}, {4452,58706,3},{4452,58709,3},{4447,58709,3},{4447,58701,3},{4443,58698,3}, {4442,58698,3},{4442,58694,3},{4450,58694,3},{4450,58689,3},{4448,58691,3}, {4440,58691,3},{4440,58689,3},{4445,58689,3},{4442,58684,3},{4443,58679,3}, {4438,58683,3},{4432,58681,3},{4432,58684,3},{4428,58684,3},{4428,58683,3}, {4427,58684,3},{4425,58684,3},{4430,58674,3},{4432,58668,3},{4437,58663,3}, {4433,58658,3},{4433,58654,3},{4438,58658,3},{4438,58661,3},{4440,58661,3}, {4442,58661,3},{4442,58668,3},{4445,58664,3},{4445,58661,3},{4440,58656,3}, {4443,58656,3},{4457,58663,3},{4458,58656,3},{4448,58654,3},{4447,58653,3}, {4447,58651,3},{4450,58651,3},{4448,58648,3},{4445,58644,3},{4443,58638,3}, {4435,58643,3},{4430,58636,3},{4422,58631,3},{4410,58628,3},{4410,58631,3}, {4407,58629,3},{4405,58624,3},{4402,58624,3},{4400,58618,3},{4398,58616,3}, {4397,58618,3},{4393,58611,3},{4397,58609,3},{4402,58614,3},{4402,58613,3}, {4395,58606,3},{4400,58606,3},{4398,58599,3},{4402,58603,3},{4403,58599,3}, {4407,58601,3},{4407,58599,3},{4405,58599,3},{4405,58596,3},{4402,58598,3}, {4400,58596,3},{4400,58594,3},{4385,58586,3},{4392,58583,3},{4385,58581,3}, {4390,58579,3},{4393,58581,3},{4397,58579,3},{4402,58584,3},{4403,58583,3}, {4402,58581,3},{4397,58578,3},{4390,58578,3},{4385,58579,3},{4383,58578,3}, {4387,58578,3},{4385,58576,3},{4388,58569,3},{4393,58571,3},{4393,58574,3}, {4395,58571,3},{4400,58573,3},{4403,58576,3},{4403,58573,3},{4402,58569,3}, {4392,58561,3},{4388,58561,3},{4388,58564,3},{4383,58563,3},{4387,58566,3}, {4385,58566,3},{4378,58564,3},{4377,58561,3},{4398,58556,3},{4403,58558,3}, {4407,58559,3},{4408,58559,3},{4407,58558,3},{4400,58549,3},{4397,58549,3}, {4398,58554,3},{4375,58559,3},{4372,58554,3},{4375,58553,3},{4377,58551,3}, {4380,58551,3},{4385,58553,3},{4385,58551,3},{4388,58551,3},{4388,58549,3}, {4387,58546,3},{4385,58549,3},{4380,58548,3},{4380,58546,3},{4382,58546,3}, {4380,58544,3},{4373,58538,3},{4385,58544,3},{4387,58543,3},{4385,58543,3}, {4375,58536,3},{4377,58534,3},{4387,58541,3},{4385,58538,3},{4383,58536,3}, {4387,58538,3},{4388,58538,3},{4383,58533,3},{4383,58528,3},{4378,58519,3}, {4375,58518,3},{4372,58513,3},{4367,58513,3},{4367,58508,3},{4365,58509,3}, {4365,58516,3},{4358,58518,3},{4357,58511,3},{4358,58511,3},{4357,58509,3}, {4353,58506,3},{4357,58506,3},{4357,58503,3},{4350,58499,3},{4347,58501,3}, {4348,58504,3},{4347,58504,3},{4337,58491,3},{4335,58484,3},{4327,58478,3}, {4322,58479,3},{4320,58476,3},{4318,58478,3},{4317,58474,3},{4308,58469,3}, {4312,58463,3},{4307,58463,3},{4305,58461,3},{4305,58466,3},{4293,58458,3}, {4288,58454,3},{4287,58454,3},{4285,58454,3},{4272,58458,3},{4267,58464,3}, {4267,58468,3},{4268,58471,3},{4268,58474,3},{4267,58474,3},{4263,58476,3}, {4262,58483,3},{4262,58484,3},{4258,58484,3},{4258,58471,3},{4257,58461,3}, {4252,58458,3},{4248,58458,3},{4245,58451,3},{4242,58444,3},{4237,58444,3}, {4233,58448,3},{4230,58448,3},{4227,58449,3},{4223,58459,3},{4222,58469,3}, {4217,58474,3},{4212,58476,3},{4203,58476,3},{4198,58473,3},{4197,58473,3}, {4193,58479,3},{4192,58488,3},{4183,58484,3},{4177,58488,3},{4173,58501,3}, {4173,58516,3},{4177,58528,3},{4182,58538,3},{4190,58534,3},{4193,58533,3}, {4190,58529,3},{4195,58529,3},{4200,58528,3},{4205,58524,3},{4205,58519,3}, {4202,58518,3},{4208,58513,3},{4208,58521,3},{4207,58528,3},{4203,58533,3}, {4197,58538,3},{4190,58541,3},{4183,58543,3},{4173,58543,3},{4167,58543,3}, {4155,58534,3},{4167,58539,3},{4167,58524,3},{4162,58509,3},{4163,58494,3}, {4157,58488,3},{4153,58468,3},{4173,58473,3},{4175,58466,3},{4158,58451,3}, {4163,58446,3},{4155,58443,3},{4153,58439,3},{4150,58431,3},{4152,58429,3}, {4153,58433,3},{4157,58431,3},{4153,58429,3},{4155,58426,3},{4153,58426,3}, {4152,58426,3},{4150,58424,3},{4147,58418,3},{4150,58416,3},{4163,58416,3}, {4180,58424,3},{4172,58418,3},{4172,58414,3},{4170,58413,3},{4167,58413,3}, {4165,58409,3},{4167,58404,3},{4175,58408,3},{4172,58406,3},{4175,58401,3}, {4182,58398,3},{4180,58396,3},{4173,58398,3},{4170,58399,3},{4167,58398,3}, {4170,58396,3},{4168,58391,3},{4165,58394,3},{4160,58394,3},{4157,58391,3}, {4153,58394,3},{4148,58394,3},{4137,58388,3},{4138,58381,3},{4135,58371,3}, {4133,58364,3},{4132,58353,3},{4132,58348,3},{4133,58349,3},{4133,58348,3}, {4135,58339,3},{4132,58336,3},{4132,58333,3},{4135,58328,3},{4130,58324,3}, {4132,58316,3},{4130,58316,3},{4132,58314,3},{4128,58311,3},{4128,58306,3}, {4130,58301,3},{4132,58301,3},{4135,58303,3},{4137,58298,3},{4135,58298,3}, {4132,58301,3},{4128,58301,3},{4128,58289,3},{4125,58284,3},{4127,58283,3}, {4125,58283,3},{4127,58279,3},{4128,58274,3},{4125,58268,3},{4127,58259,3}, {4125,58256,3},{4125,58248,3},{4130,58244,3},{4122,58236,3},{4122,58231,3}, {4117,58226,3},{4115,58221,3},{4117,58221,3},{4118,58219,3},{4117,58218,3}, {4117,58214,3},{4113,58211,3},{4112,58199,3},{4105,58189,3},{4105,58186,3}, {4103,58184,3},{4102,58178,3},{4102,58176,3},{4100,58173,3},{4095,58169,3}, {4095,58164,3},{4087,58158,3},{4087,58154,3},{4082,58156,3},{4080,58144,3}, {4072,58138,3},{4072,58136,3},{4075,58136,3},{4087,58144,3},{4102,58148,3}, {4107,58149,3},{4118,58148,3},{4125,58141,3},{4130,58143,3},{4132,58141,3}, {4127,58138,3},{4120,58139,3},{4117,58144,3},{4102,58146,3},{4097,58146,3}, {4087,58141,3},{4078,58136,3},{4072,58134,3},{4067,58124,3},{4067,58123,3}, {4072,58126,3},{4070,58123,3},{4065,58116,3},{4058,58114,3},{4055,58111,3}, {4050,58111,3},{4047,58109,3},{4045,58111,3},{4043,58116,3},{4045,58126,3}, {4040,58138,3},{4047,58136,3},{4045,58138,3},{4040,58141,3},{4028,58141,3}, {4008,58133,3},{4008,58134,3},{4005,58134,3},{3978,58128,3},{3988,58128,3}, {3997,58131,3},{4005,58131,3},{4005,58128,3},{4003,58131,3},{4002,58129,3}, {4000,58124,3},{3997,58126,3},{3993,58123,3},{3992,58128,3},{3988,58123,3}, {3985,58124,3},{3982,58121,3},{3977,58118,3},{3970,58121,3},{3957,58104,3}, {3952,58108,3},{3952,58104,3},{3953,58103,3},{3953,58098,3},{3955,58096,3}, {3952,58096,3},{3948,58098,3},{3943,58096,3},{3947,58094,3},{3943,58091,3}, {3940,58089,3},{3940,58093,3},{3935,58094,3},{3930,58083,3},{3937,58088,3}, {3935,58084,3},{3933,58081,3},{3930,58081,3},{3930,58071,3},{3928,58071,3}, {3927,58074,3},{3928,58081,3},{3922,58071,3},{3912,58066,3},{3912,58063,3}, {3912,58066,3},{3908,58064,3},{3903,58059,3},{3903,58058,3},{3900,58058,3}, {3895,58051,3},{3892,58043,3},{3893,58039,3},{3895,58039,3},{3902,58041,3}, {3913,58048,3},{3918,58046,3},{3920,58041,3},{3918,58034,3},{3922,58033,3}, {3918,58021,3},{3920,58019,3},{3923,58019,3},{3927,58013,3},{3928,58011,3}, {3930,58006,3},{3935,58003,3},{3933,57999,3},{3943,57989,3},{3947,57984,3}, {3950,57981,3},{3948,57983,3},{3950,57984,3},{3957,57984,3},{3962,57981,3}, {3965,57984,3},{3968,57986,3},{3972,57989,3},{3973,57989,3},{3975,57991,3}, {3983,58003,3},{3988,58023,3},{3990,58026,3},{3992,58024,3},{3995,58024,3}, {3997,58029,3},{4000,58033,3},{3997,58024,3},{3990,58021,3},{3990,58018,3}, {3987,58011,3},{3985,57999,3},{3980,57994,3},{3978,57989,3},{3972,57988,3}, {3967,57981,3},{3965,57978,3},{3962,57976,3},{3955,57981,3},{3947,57978,3}, {3942,57984,3},{3935,57986,3},{3932,57993,3},{3925,57996,3},{3917,57996,3}, {3908,57998,3},{3897,58006,3},{3892,58006,3},{3880,58019,3},{3878,58024,3}, {3880,58028,3},{3863,58029,3},{3870,58028,3},{3870,58023,3},{3865,58024,3}, {3865,58021,3},{3863,58026,3},{3860,58016,3},{3858,58016,3},{3858,58018,3}, {3857,58016,3},{3858,58023,3},{3857,58028,3},{3858,58029,3},{3862,58029,3}, {3860,58031,3},{3857,58031,3},{3845,58033,3},{3833,58029,3},{3845,58029,3}, {3845,58028,3},{3843,58028,3},{3843,58024,3},{3840,58026,3},{3842,58021,3}, {3842,58018,3},{3840,58023,3},{3835,58023,3},{3835,58026,3},{3833,58026,3}, {3823,58019,3},{3823,58016,3},{3827,58018,3},{3823,58013,3},{3812,58008,3}, {3812,58004,3},{3808,58001,3},{3802,57999,3},{3797,57993,3},{3793,57993,3}, {3792,57994,3},{3790,57993,3},{3787,57993,3},{3780,57986,3},{3768,57979,3}, {3758,57974,3},{3757,57978,3},{3750,57971,3},{3755,57964,3},{3752,57963,3}, {3750,57966,3},{3748,57958,3},{3745,57956,3},{3740,57956,3},{3737,57953,3}, {3723,57949,3},{3718,57949,3},{3718,57946,3},{3722,57948,3},{3715,57944,3}, {3713,57941,3},{3727,57934,3},{3732,57938,3},{3732,57936,3},{3738,57938,3}, {3738,57939,3},{3742,57941,3},{3742,57938,3},{3743,57939,3},{3747,57941,3}, {3748,57944,3},{3750,57943,3},{3748,57941,3},{3750,57941,3},{3755,57944,3}, {3755,57946,3},{3757,57943,3},{3758,57946,3},{3760,57944,3},{3762,57946,3}, {3762,57949,3},{3765,57948,3},{3767,57954,3},{3770,57953,3},{3772,57958,3}, {3773,57954,3},{3777,57959,3},{3780,57956,3},{3778,57961,3},{3780,57966,3}, {3782,57964,3},{3783,57966,3},{3783,57969,3},{3790,57968,3},{3790,57963,3}, {3795,57973,3},{3797,57971,3},{3798,57961,3},{3797,57956,3},{3793,57951,3}, {3795,57948,3},{3797,57951,3},{3798,57951,3},{3798,57948,3},{3803,57951,3}, {3803,57954,3},{3810,57961,3},{3808,57956,3},{3808,57951,3},{3810,57953,3}, {3813,57954,3},{3813,57958,3},{3815,57958,3},{3815,57946,3},{3812,57944,3}, {3813,57943,3},{3820,57943,3},{3823,57954,3},{3825,57948,3},{3828,57946,3}, {3840,57953,3},{3840,57951,3},{3832,57944,3},{3825,57941,3},{3832,57936,3}, {3833,57939,3},{3837,57939,3},{3837,57938,3},{3832,57933,3},{3828,57934,3}, {3823,57933,3},{3828,57928,3},{3830,57924,3},{3833,57921,3},{3838,57914,3}, {3833,57916,3},{3832,57914,3},{3848,57903,3},{3850,57908,3},{3848,57908,3}, {3848,57911,3},{3853,57918,3},{3855,57918,3},{3857,57919,3},{3858,57916,3}, {3855,57913,3},{3857,57908,3},{3860,57911,3},{3862,57909,3},{3862,57914,3}, {3863,57919,3},{3860,57919,3},{3860,57923,3},{3857,57931,3},{3858,57936,3}, {3860,57939,3},{3865,57939,3},{3860,57934,3},{3862,57928,3},{3863,57926,3}, {3865,57926,3},{3865,57921,3},{3868,57926,3},{3868,57919,3},{3872,57919,3}, {3868,57916,3},{3872,57913,3},{3875,57916,3},{3877,57914,3},{3877,57913,3}, {3872,57909,3},{3872,57908,3},{3878,57909,3},{3875,57906,3},{3868,57904,3}, {3868,57903,3},{3877,57903,3},{3883,57909,3},{3882,57914,3},{3880,57914,3}, {3877,57919,3},{3880,57926,3},{3878,57921,3},{3880,57918,3},{3885,57919,3}, {3887,57926,3},{3888,57921,3},{3892,57921,3},{3888,57918,3},{3893,57918,3}, {3897,57914,3},{3893,57909,3},{3892,57909,3},{3892,57906,3},{3892,57903,3}, {3888,57904,3},{3885,57901,3},{3890,57901,3},{3903,57906,3},{3898,57913,3}, {3900,57919,3},{3902,57921,3},{3903,57921,3},{3907,57919,3},{3907,57923,3}, {3908,57923,3},{3913,57929,3},{3912,57923,3},{3912,57921,3},{3913,57921,3}, {3912,57919,3},{3912,57918,3},{3908,57918,3},{3903,57916,3},{3903,57913,3}, {3912,57913,3},{3915,57909,3},{3932,57919,3},{3933,57924,3},{3937,57924,3}, {3937,57926,3},{3937,57953,3},{3940,57934,3},{3947,57944,3},{3947,57953,3}, {3950,57946,3},{3953,57951,3},{3958,57953,3},{3957,57951,3},{3947,57936,3}, {3948,57936,3},{3955,57941,3},{3960,57943,3},{3955,57938,3},{3957,57934,3}, {3957,57929,3},{3948,57924,3},{3945,57929,3},{3937,57916,3},{3938,57913,3}, {3947,57914,3},{3947,57913,3},{3945,57911,3},{3938,57909,3},{3933,57911,3}, {3932,57908,3},{3940,57904,3},{3938,57896,3},{3937,57898,3},{3937,57901,3}, {3935,57903,3},{3933,57903,3},{3933,57899,3},{3930,57899,3},{3933,57894,3}, {3932,57893,3},{3927,57898,3},{3927,57894,3},{3930,57891,3},{3930,57888,3}, {3925,57893,3},{3923,57898,3},{3922,57894,3},{3922,57888,3},{3923,57888,3}, {3927,57879,3},{3925,57874,3},{3923,57878,3},{3922,57879,3},{3922,57884,3}, {3918,57884,3},{3917,57888,3},{3917,57891,3},{3910,57894,3},{3907,57894,3}, {3908,57891,3},{3910,57884,3},{3908,57884,3},{3905,57894,3},{3902,57896,3}, {3900,57896,3},{3900,57893,3},{3898,57891,3},{3902,57886,3},{3907,57881,3}, {3907,57879,3},{3893,57891,3},{3892,57891,3},{3897,57884,3},{3895,57883,3}, {3893,57883,3},{3890,57888,3},{3888,57886,3},{3888,57883,3},{3887,57884,3}, {3883,57883,3},{3885,57888,3},{3883,57888,3},{3877,57881,3},{3873,57881,3}, {3872,57884,3},{3853,57886,3},{3842,57896,3},{3837,57899,3},{3833,57894,3}, {3835,57891,3},{3837,57889,3},{3838,57888,3},{3842,57879,3},{3848,57873,3}, {3868,57868,3},{3848,57869,3},{3840,57878,3},{3837,57886,3},{3832,57888,3}, {3830,57891,3},{3830,57899,3},{3823,57898,3},{3817,57904,3},{3813,57904,3}, {3810,57903,3},{3805,57904,3},{3812,57894,3},{3818,57893,3},{3820,57893,3}, {3820,57891,3},{3817,57891,3},{3813,57889,3},{3817,57886,3},{3813,57886,3}, {3813,57884,3},{3820,57879,3},{3823,57874,3},{3823,57861,3},{3825,57858,3}, {3837,57854,3},{3840,57849,3},{3828,57853,3},{3827,57853,3},{3827,57849,3}, {3835,57839,3},{3848,57834,3},{3843,57833,3},{3842,57828,3},{3843,57826,3}, {3845,57826,3},{3845,57823,3},{3840,57824,3},{3837,57818,3},{3837,57816,3}, {3840,57811,3},{3848,57809,3},{3855,57813,3},{3857,57819,3},{3858,57816,3}, {3860,57818,3},{3862,57824,3},{3868,57826,3},{3870,57834,3},{3875,57836,3}, {3878,57834,3},{3887,57834,3},{3890,57831,3},{3890,57829,3},{3885,57833,3}, {3873,57833,3},{3870,57824,3},{3868,57823,3},{3870,57823,3},{3870,57821,3}, {3868,57819,3},{3865,57823,3},{3863,57819,3},{3863,57816,3},{3865,57816,3}, {3865,57813,3},{3858,57809,3},{3857,57811,3},{3855,57808,3},{3853,57808,3}, {3850,57806,3},{3840,57806,3},{3843,57803,3},{3843,57801,3},{3837,57808,3}, {3835,57803,3},{3833,57811,3},{3835,57821,3},{3840,57833,3},{3838,57836,3}, {3835,57836,3},{3833,57836,3},{3832,57831,3},{3825,57841,3},{3820,57841,3}, {3817,57851,3},{3817,57859,3},{3813,57863,3},{3815,57868,3},{3813,57873,3}, {3815,57876,3},{3812,57878,3},{3807,57884,3},{3803,57883,3},{3802,57883,3}, {3802,57889,3},{3800,57891,3},{3798,57889,3},{3798,57894,3},{3790,57913,3}, {3788,57913,3},{3782,57911,3},{3785,57906,3},{3785,57904,3},{3778,57908,3}, {3775,57906,3},{3773,57904,3},{3770,57908,3},{3770,57904,3},{3767,57904,3}, {3767,57903,3},{3763,57904,3},{3763,57906,3},{3762,57904,3},{3762,57899,3}, {3765,57894,3},{3767,57894,3},{3765,57893,3},{3770,57889,3},{3765,57888,3}, {3767,57884,3},{3770,57884,3},{3775,57879,3},{3778,57878,3},{3778,57874,3}, {3782,57874,3},{3782,57871,3},{3783,57869,3},{3783,57864,3},{3792,57859,3}, {3795,57853,3},{3798,57853,3},{3800,57848,3},{3808,57843,3},{3812,57833,3}, {3817,57831,3},{3817,57823,3},{3813,57826,3},{3815,57831,3},{3810,57833,3}, {3807,57843,3},{3805,57844,3},{3798,57846,3},{3797,57849,3},{3792,57853,3}, {3790,57858,3},{3780,57864,3},{3778,57868,3},{3777,57869,3},{3775,57874,3}, {3763,57883,3},{3762,57893,3},{3758,57896,3},{3757,57908,3},{3755,57904,3}, {3755,57898,3},{3753,57896,3},{3748,57906,3},{3750,57908,3},{3752,57908,3}, {3750,57911,3},{3748,57911,3},{3747,57908,3},{3743,57913,3},{3738,57913,3}, {3732,57909,3},{3735,57906,3},{3738,57904,3},{3737,57901,3},{3738,57899,3}, {3743,57896,3},{3742,57893,3},{3738,57896,3},{3738,57891,3},{3737,57891,3}, {3733,57896,3},{3732,57893,3},{3732,57898,3},{3728,57899,3},{3727,57891,3}, {3732,57878,3},{3740,57871,3},{3743,57868,3},{3753,57859,3},{3753,57858,3}, {3750,57856,3},{3748,57861,3},{3730,57876,3},{3723,57891,3},{3723,57899,3}, {3717,57898,3},{3717,57904,3},{3713,57908,3},{3710,57903,3},{3710,57909,3}, {3708,57909,3},{3700,57908,3},{3700,57899,3},{3697,57896,3},{3705,57889,3}, {3707,57884,3},{3710,57883,3},{3708,57881,3},{3713,57874,3},{3718,57874,3}, {3722,57873,3},{3722,57863,3},{3720,57861,3},{3722,57859,3},{3725,57853,3}, {3727,57851,3},{3732,57849,3},{3727,57849,3},{3723,57844,3},{3732,57836,3}, {3728,57831,3},{3733,57828,3},{3732,57823,3},{3733,57813,3},{3735,57811,3}, {3732,57809,3},{3732,57808,3},{3728,57818,3},{3728,57826,3},{3727,57829,3}, {3728,57836,3},{3723,57839,3},{3720,57846,3},{3720,57856,3},{3715,57863,3}, {3718,57869,3},{3705,57871,3},{3703,57878,3},{3702,57879,3},{3700,57878,3}, {3697,57888,3},{3693,57886,3},{3690,57888,3},{3687,57884,3},{3685,57884,3}, {3690,57894,3},{3688,57901,3},{3687,57904,3},{3685,57906,3},{3688,57904,3}, {3692,57906,3},{3693,57904,3},{3697,57909,3},{3692,57919,3},{3692,57926,3}, {3690,57929,3},{3692,57936,3},{3655,57953,3},{3627,57958,3},{3612,57964,3}, {3590,57979,3},{3578,57984,3},{3585,57978,3},{3590,57976,3},{3600,57969,3}, {3600,57964,3},{3602,57964,3},{3600,57966,3},{3602,57968,3},{3603,57968,3}, {3605,57968,3},{3607,57963,3},{3618,57961,3},{3628,57954,3},{3640,57953,3}, {3653,57948,3},{3660,57948,3},{3672,57943,3},{3670,57939,3},{3658,57938,3}, {3653,57941,3},{3657,57941,3},{3657,57944,3},{3648,57946,3},{3650,57939,3}, {3652,57939,3},{3658,57931,3},{3653,57934,3},{3650,57933,3},{3643,57939,3}, {3643,57938,3},{3642,57938,3},{3635,57943,3},{3640,57941,3},{3640,57943,3}, {3642,57943,3},{3643,57944,3},{3635,57944,3},{3627,57949,3},{3607,57958,3}, {3610,57951,3},{3617,57949,3},{3622,57944,3},{3623,57946,3},{3625,57941,3}, {3628,57943,3},{3632,57939,3},{3632,57936,3},{3627,57941,3},{3623,57939,3}, {3622,57941,3},{3620,57939,3},{3617,57946,3},{3618,57934,3},{3622,57931,3}, {3625,57926,3},{3628,57923,3},{3630,57916,3},{3632,57918,3},{3632,57916,3}, {3628,57914,3},{3625,57921,3},{3622,57924,3},{3617,57931,3},{3615,57929,3}, {3612,57919,3},{3615,57914,3},{3622,57908,3},{3620,57908,3},{3615,57911,3}, {3613,57913,3},{3610,57916,3},{3610,57914,3},{3615,57899,3},{3618,57896,3}, {3618,57894,3},{3620,57889,3},{3617,57893,3},{3612,57898,3},{3610,57904,3}, {3608,57899,3},{3608,57894,3},{3607,57893,3},{3605,57894,3},{3600,57884,3}, {3602,57878,3},{3605,57874,3},{3603,57871,3},{3605,57868,3},{3610,57866,3}, {3612,57864,3},{3617,57863,3},{3623,57864,3},{3628,57869,3},{3632,57864,3}, {3628,57866,3},{3622,57861,3},{3613,57859,3},{3600,57866,3},{3600,57868,3}, {3595,57863,3},{3593,57871,3},{3595,57883,3},{3598,57896,3},{3597,57898,3}, {3593,57898,3},{3595,57901,3},{3592,57908,3},{3593,57909,3},{3593,57906,3}, {3597,57908,3},{3600,57919,3},{3598,57931,3},{3595,57934,3},{3595,57929,3}, {3592,57929,3},{3593,57934,3},{3587,57931,3},{3587,57928,3},{3585,57931,3}, {3578,57931,3},{3580,57924,3},{3578,57924,3},{3575,57931,3},{3572,57931,3}, {3568,57933,3},{3568,57926,3},{3570,57923,3},{3568,57923,3},{3567,57926,3}, {3565,57933,3},{3572,57936,3},{3588,57938,3},{3592,57943,3},{3588,57946,3}, {3587,57949,3},{3588,57951,3},{3593,57946,3},{3592,57951,3},{3593,57954,3}, {3595,57949,3},{3597,57951,3},{3597,57954,3},{3593,57954,3},{3588,57961,3}, {3582,57964,3},{3577,57963,3},{3573,57964,3},{3568,57964,3},{3570,57959,3}, {3568,57959,3},{3563,57963,3},{3562,57961,3},{3560,57958,3},{3557,57958,3}, {3557,57954,3},{3557,57953,3},{3558,57954,3},{3558,57949,3},{3563,57948,3}, {3562,57946,3},{3558,57946,3},{3555,57944,3},{3552,57938,3},{3550,57939,3}, {3548,57936,3},{3547,57936,3},{3542,57933,3},{3543,57931,3},{3542,57929,3}, {3538,57929,3},{3537,57923,3},{3533,57921,3},{3535,57919,3},{3535,57913,3}, {3537,57911,3},{3535,57909,3},{3535,57908,3},{3542,57901,3},{3538,57899,3}, {3535,57901,3},{3533,57899,3},{3535,57898,3},{3537,57894,3},{3537,57898,3}, {3538,57896,3},{3542,57898,3},{3547,57896,3},{3545,57893,3},{3540,57893,3}, {3540,57888,3},{3537,57891,3},{3538,57886,3},{3542,57884,3},{3543,57886,3}, {3543,57881,3},{3547,57881,3},{3550,57878,3},{3550,57888,3},{3553,57889,3}, {3555,57878,3},{3553,57874,3},{3552,57871,3},{3550,57874,3},{3547,57874,3}, {3540,57878,3},{3538,57878,3},{3540,57871,3},{3543,57871,3},{3542,57861,3}, {3543,57856,3},{3545,57854,3},{3547,57844,3},{3553,57831,3},{3548,57834,3}, {3547,57838,3},{3543,57838,3},{3542,57851,3},{3540,57853,3},{3537,57864,3}, {3535,57866,3},{3530,57883,3},{3530,57886,3},{3527,57889,3},{3522,57888,3}, {3523,57879,3},{3522,57884,3},{3520,57883,3},{3522,57878,3},{3520,57876,3}, {3517,57869,3},{3515,57878,3},{3515,57879,3},{3517,57878,3},{3517,57879,3}, {3515,57881,3},{3513,57881,3},{3510,57878,3},{3508,57874,3},{3508,57876,3}, {3507,57876,3},{3498,57858,3},{3500,57851,3},{3507,57841,3},{3507,57838,3}, {3515,57828,3},{3498,57841,3},{3495,57846,3},{3493,57856,3},{3490,57861,3}, {3498,57873,3},{3498,57876,3},{3495,57876,3},{3493,57881,3},{3493,57883,3}, {3497,57879,3},{3498,57879,3},{3500,57883,3},{3497,57886,3},{3498,57888,3}, {3502,57888,3},{3507,57891,3},{3505,57893,3},{3502,57893,3},{3498,57894,3}, {3497,57889,3},{3493,57891,3},{3495,57894,3},{3493,57898,3},{3497,57898,3}, {3497,57904,3},{3502,57901,3},{3502,57904,3},{3498,57908,3},{3497,57909,3}, {3493,57906,3},{3493,57901,3},{3488,57903,3},{3487,57898,3},{3488,57896,3}, {3483,57894,3},{3477,57886,3},{3473,57886,3},{3473,57878,3},{3477,57878,3}, {3478,57879,3},{3482,57874,3},{3472,57874,3},{3472,57869,3},{3475,57869,3}, {3480,57868,3},{3475,57859,3},{3475,57864,3},{3472,57866,3},{3473,57849,3}, {3472,57844,3},{3468,57826,3},{3472,57828,3},{3473,57824,3},{3475,57824,3}, {3475,57823,3},{3472,57824,3},{3468,57823,3},{3468,57819,3},{3465,57819,3}, {3455,57803,3},{3458,57796,3},{3465,57803,3},{3470,57798,3},{3473,57799,3}, {3473,57794,3},{3475,57793,3},{3468,57793,3},{3468,57796,3},{3463,57799,3}, {3462,57798,3},{3460,57791,3},{3458,57794,3},{3455,57799,3},{3453,57798,3}, {3452,57799,3},{3450,57789,3},{3438,57769,3},{3433,57764,3},{3422,57754,3}, {3415,57749,3},{3405,57748,3},{3393,57744,3},{3393,57743,3},{3398,57744,3}, {3410,57744,3},{3418,57741,3},{3402,57741,3},{3388,57734,3},{3392,57713,3}, {3390,57701,3},{3395,57699,3},{3390,57696,3},{3385,57681,3},{3387,57681,3}, {3388,57681,3},{3387,57676,3},{3385,57679,3},{3383,57671,3},{3378,57661,3}, {3370,57649,3},{3363,57643,3},{3342,57623,3},{3322,57618,3},{3330,57616,3}, {3332,57609,3},{3337,57611,3},{3343,57618,3},{3337,57609,3},{3328,57606,3}, {3323,57614,3},{3318,57614,3},{3318,57618,3},{3313,57613,3},{3317,57611,3}, {3317,57609,3},{3313,57611,3},{3312,57609,3},{3313,57608,3},{3315,57603,3}, {3313,57606,3},{3312,57608,3},{3305,57598,3},{3302,57598,3},{3298,57586,3}, {3302,57586,3},{3303,57583,3},{3300,57578,3},{3295,57573,3},{3292,57574,3}, {3293,57578,3},{3292,57578,3},{3285,57566,3},{3280,57563,3},{3277,57553,3}, {3277,57549,3},{3278,57548,3},{3278,57546,3},{3285,57548,3},{3285,57546,3}, {3283,57546,3},{3285,57541,3},{3278,57543,3},{3280,57539,3},{3278,57539,3}, {3277,57541,3},{3275,57546,3},{3273,57548,3},{3273,57549,3},{3272,57549,3}, {3268,57548,3},{3265,57541,3},{3265,57534,3},{3263,57534,3},{3262,57538,3}, {3260,57536,3},{3260,57528,3},{3255,57519,3},{3262,57513,3},{3262,57509,3}, {3260,57511,3},{3257,57516,3},{3248,57503,3},{3253,57499,3},{3250,57499,3}, {3247,57496,3},{3250,57493,3},{3250,57488,3},{3255,57481,3},{3252,57483,3}, {3252,57469,3},{3250,57468,3},{3248,57481,3},{3250,57483,3},{3247,57488,3}, {3245,57478,3},{3245,57488,3},{3242,57491,3},{3240,57489,3},{3238,57486,3}, {3237,57481,3},{3235,57481,3},{3237,57489,3},{3240,57493,3},{3235,57491,3}, {3235,57489,3},{3233,57491,3},{3232,57489,3},{3225,57473,3},{3227,57471,3}, {3232,57473,3},{3238,57473,3},{3235,57471,3},{3237,57469,3},{3245,57471,3}, {3247,57471,3},{3245,57468,3},{3245,57469,3},{3237,57468,3},{3230,57469,3}, {3232,57466,3},{3238,57459,3},{3247,57456,3},{3250,57458,3},{3250,57456,3}, {3253,57453,3},{3253,57451,3},{3248,57454,3},{3240,57456,3},{3238,57458,3}, {3232,57456,3},{3225,57461,3},{3225,57466,3},{3222,57469,3},{3215,57464,3}, {3210,57454,3},{3218,57458,3},{3225,57458,3},{3222,57458,3},{3220,57458,3}, {3215,57453,3},{3212,57453,3},{3205,57446,3},{3202,57448,3},{3202,57451,3}, {3200,57453,3},{3197,57449,3},{3195,57446,3},{3198,57443,3},{3192,57439,3}, {3190,57443,3},{3187,57438,3},{3188,57431,3},{3192,57426,3},{3188,57424,3}, {3188,57428,3},{3187,57428,3},{3187,57423,3},{3185,57423,3},{3182,57433,3}, {3177,57428,3},{3173,57424,3},{3177,57409,3},{3175,57409,3},{3173,57414,3}, {3170,57418,3},{3167,57413,3},{3167,57421,3},{3168,57419,3},{3170,57423,3}, {3160,57423,3},{3157,57419,3},{3157,57418,3},{3162,57416,3},{3163,57413,3}, {3160,57416,3},{3157,57414,3},{3155,57411,3},{3157,57406,3},{3155,57403,3}, {3153,57406,3},{3153,57409,3},{3148,57408,3},{3153,57413,3},{3153,57419,3}, {3143,57411,3},{3138,57409,3},{3140,57408,3},{3143,57406,3},{3143,57403,3}, {3135,57408,3},{3133,57408,3},{3135,57393,3},{3137,57389,3},{3137,57388,3}, {3133,57394,3},{3132,57403,3},{3128,57408,3},{3127,57409,3},{3122,57408,3}, {3122,57406,3},{3122,57404,3},{3113,57398,3},{3115,57394,3},{3120,57396,3}, {3122,57393,3},{3118,57389,3},{3112,57391,3},{3113,57386,3},{3107,57393,3}, {3110,57393,3},{3112,57396,3},{3108,57396,3},{3102,57393,3},{3108,57388,3}, {3108,57384,3},{3102,57391,3},{3098,57389,3},{3098,57384,3},{3097,57386,3}, {3097,57391,3},{3088,57386,3},{3085,57388,3},{3085,57383,3},{3083,57384,3}, {3080,57384,3},{3077,57388,3},{3072,57386,3},{3068,57388,3},{3070,57391,3}, {3068,57393,3},{3057,57391,3},{3052,57393,3},{3055,57389,3},{3062,57388,3}, {3062,57386,3},{3055,57386,3},{3047,57394,3},{3040,57394,3},{3038,57398,3}, {3027,57398,3},{3012,57403,3},{2990,57408,3},{2987,57409,3},{2980,57411,3}, {2958,57419,3},{2925,57434,3},{2908,57444,3},{2907,57444,3},{2905,57446,3}, {2872,57468,3},{2865,57473,3},{2857,57479,3},{2847,57483,3},{2845,57483,3}, {2840,57476,3},{2820,57478,3},{2808,57479,3},{2792,57489,3},{2787,57491,3}, {2793,57486,3},{2800,57483,3},{2805,57479,3},{2822,57474,3},{2840,57474,3}, {2852,57478,3},{2860,57476,3},{2860,57469,3},{2858,57468,3},{2862,57459,3}, {2865,57458,3},{2868,57458,3},{2870,57461,3},{2873,57461,3},{2878,57451,3}, {2865,57454,3},{2860,57456,3},{2842,57461,3},{2805,57478,3},{2770,57496,3}, {2742,57506,3},{2718,57518,3},{2722,57514,3},{2722,57509,3},{2723,57508,3}, {2723,57504,3},{2718,57509,3},{2720,57514,3},{2715,57519,3},{2713,57521,3}, {2695,57529,3},{2693,57524,3},{2692,57529,3},{2678,57533,3},{2677,57531,3}, {2668,57533,3},{2657,57533,3},{2653,57531,3},{2652,57531,3},{2628,57528,3}, {2612,57526,3},{2610,57524,3},{2607,57526,3},{2595,57524,3},{2582,57524,3}, {2577,57523,3},{2582,57523,3},{2590,57523,3},{2582,57518,3},{2575,57518,3}, {2573,57511,3},{2565,57509,3},{2562,57504,3},{2553,57504,3},{2548,57501,3}, {2543,57503,3},{2540,57503,3},{2538,57504,3},{2533,57501,3},{2533,57499,3}, {2523,57493,3},{2520,57494,3},{2518,57496,3},{2520,57494,3},{2525,57491,3}, {2522,57486,3},{2522,57489,3},{2517,57491,3},{2518,57491,3},{2522,57488,3}, {2520,57484,3},{2522,57484,3},{2523,57486,3},{2525,57483,3},{2523,57478,3}, {2518,57476,3},{2518,57471,3},{2517,57471,3},{2517,57468,3},{2513,57464,3}, {2515,57459,3},{2515,57456,3},{2517,57454,3},{2518,57451,3},{2513,57444,3}, {2512,57428,3},{2517,57421,3},{2523,57418,3},{2533,57423,3},{2527,57429,3}, {2523,57438,3},{2522,57436,3},{2520,57438,3},{2522,57444,3},{2525,57444,3}, {2532,57438,3},{2533,57433,3},{2538,57421,3},{2547,57419,3},{2550,57416,3}, {2555,57418,3},{2557,57413,3},{2563,57411,3},{2565,57409,3},{2570,57408,3}, {2570,57404,3},{2572,57403,3},{2577,57401,3},{2578,57404,3},{2582,57401,3}, {2585,57396,3},{2587,57389,3},{2588,57389,3},{2588,57384,3},{2592,57381,3}, {2590,57378,3},{2592,57378,3},{2595,57374,3},{2592,57371,3},{2590,57363,3}, {2595,57363,3},{2593,57366,3},{2595,57369,3},{2598,57369,3},{2597,57364,3}, {2600,57363,3},{2602,57363,3},{2607,57359,3},{2613,57358,3},{2610,57356,3}, {2627,57353,3},{2628,57354,3},{2635,57351,3},{2635,57353,3},{2643,57351,3}, {2648,57348,3},{2645,57349,3},{2643,57348,3},{2647,57341,3},{2648,57334,3}, {2652,57336,3},{2650,57338,3},{2653,57343,3},{2663,57348,3},{2668,57354,3}, {2668,57356,3},{2672,57358,3},{2667,57346,3},{2655,57341,3},{2653,57338,3}, {2653,57336,3},{2652,57333,3},{2655,57329,3},{2660,57331,3},{2670,57328,3}, {2678,57331,3},{2687,57331,3},{2690,57326,3},{2693,57331,3},{2695,57336,3}, {2700,57338,3},{2697,57334,3},{2697,57331,3},{2695,57329,3},{2697,57324,3}, {2692,57321,3},{2697,57318,3},{2695,57316,3},{2697,57313,3},{2700,57313,3}, {2702,57309,3},{2700,57309,3},{2700,57311,3},{2695,57313,3},{2693,57318,3}, {2687,57319,3},{2678,57321,3},{2678,57319,3},{2682,57319,3},{2680,57316,3}, {2683,57306,3},{2687,57304,3},{2688,57304,3},{2693,57301,3},{2695,57299,3}, {2690,57301,3},{2705,57293,3},{2718,57286,3},{2720,57286,3},{2718,57288,3}, {2722,57286,3},{2722,57284,3},{2727,57279,3},{2730,57281,3},{2728,57281,3}, {2728,57283,3},{2740,57278,3},{2745,57269,3},{2745,57268,3},{2752,57263,3}, {2748,57266,3},{2747,57271,3},{2748,57273,3},{2748,57269,3},{2752,57269,3}, {2750,57276,3},{2752,57273,3},{2752,57276,3},{2755,57279,3},{2755,57274,3}, {2755,57278,3},{2763,57281,3},{2767,57284,3},{2773,57289,3},{2778,57296,3}, {2782,57298,3},{2792,57294,3},{2793,57291,3},{2790,57288,3},{2782,57288,3}, {2783,57283,3},{2785,57281,3},{2787,57283,3},{2793,57283,3},{2795,57279,3}, {2797,57274,3},{2798,57276,3},{2802,57271,3},{2800,57271,3},{2803,57268,3}, {2800,57268,3},{2797,57268,3},{2795,57273,3},{2795,57266,3},{2793,57264,3}, {2790,57271,3},{2788,57273,3},{2788,57279,3},{2785,57276,3},{2782,57276,3}, {2778,57274,3},{2770,57273,3},{2768,57269,3},{2770,57268,3},{2773,57268,3}, {2773,57264,3},{2778,57261,3},{2783,57254,3},{2782,57254,3},{2772,57263,3}, {2765,57264,3},{2770,57261,3},{2773,57261,3},{2780,57253,3},{2787,57251,3}, {2793,57253,3},{2795,57254,3},{2788,57253,3},{2793,57254,3},{2807,57259,3}, {2810,57259,3},{2815,57256,3},{2818,57256,3},{2820,57259,3},{2828,57263,3}, {2830,57264,3},{2830,57263,3},{2832,57263,3},{2843,57269,3},{2850,57269,3}, {2853,57273,3},{2863,57271,3},{2865,57273,3},{2867,57271,3},{2870,57273,3}, {2875,57273,3},{2875,57271,3},{2880,57268,3},{2882,57269,3},{2880,57271,3}, {2878,57273,3},{2880,57273,3},{2888,57273,3},{2892,57268,3},{2897,57263,3}, {2900,57263,3},{2900,57261,3},{2907,57261,3},{2910,57256,3},{2912,57258,3}, {2913,57256,3},{2917,57256,3},{2917,57253,3},{2918,57251,3},{2917,57249,3}, {2917,57246,3},{2918,57239,3},{2917,57236,3},{2918,57231,3},{2920,57231,3}, {2922,57229,3},{2923,57229,3},{2927,57228,3},{2930,57221,3},{2933,57221,3}, {2942,57214,3},{2943,57208,3},{2950,57201,3},{2952,57196,3},{2958,57196,3}, {2960,57198,3},{2965,57196,3},{2968,57189,3},{2975,57178,3},{2982,57178,3}, {2992,57168,3},{2997,57159,3},{2998,57158,3},{2997,57156,3},{2998,57153,3}, {3002,57148,3},{3010,57134,3},{3010,57123,3},{3007,57119,3},{3010,57116,3}, {3008,57113,3},{3010,57111,3},{3010,57109,3},{3007,57108,3},{3007,57103,3}, {3005,57099,3},{3002,57099,3},{3002,57098,3},{2998,57098,3},{2998,57101,3}, {2997,57101,3},{2998,57094,3},{3002,57091,3},{2998,57089,3},{2998,57091,3}, {2997,57093,3},{2993,57103,3},{2988,57101,3},{2988,57098,3},{2990,57099,3}, {2992,57098,3},{2992,57091,3},{2990,57088,3},{2992,57084,3},{2988,57079,3}, {2978,57061,3},{2973,57048,3},{2973,57046,3},{2978,57049,3},{2980,57049,3}, {2978,57044,3},{2975,57041,3},{2975,57039,3},{2970,57034,3},{2972,57028,3}, {2970,57018,3},{2968,57003,3},{2968,56999,3},{2972,56998,3},{2978,56994,3}, {2985,56994,3},{2987,56996,3},{2985,56996,3},{2975,56998,3},{2968,57001,3}, {2970,57006,3},{2982,57006,3},{2992,56998,3},{2995,56993,3},{2997,56984,3}, {3003,56979,3},{3000,56984,3},{2998,56988,3},{3012,56968,3},{3013,56969,3}, {3012,56974,3},{3010,56974,3},{3008,56983,3},{3007,56984,3},{3002,56991,3}, {3003,56996,3},{3005,56996,3},{3005,56994,3},{3007,56993,3},{3003,56991,3}, {3005,56988,3},{3010,56988,3},{3010,56984,3},{3013,56986,3},{3012,56983,3}, {3013,56979,3},{3012,56979,3},{3015,56973,3},{3013,56973,3},{3018,56964,3}, {3020,56966,3},{3025,56969,3},{3025,56976,3},{3028,56978,3},{3028,56981,3}, {3032,56979,3},{3027,56974,3},{3028,56971,3},{3027,56968,3},{3023,56964,3}, {3028,56964,3},{3028,56961,3},{3032,56961,3},{3028,56959,3},{3028,56953,3}, {3025,56951,3},{3023,56953,3},{3025,56956,3},{3023,56959,3},{3023,56961,3}, {3022,56963,3},{3017,56961,3},{3015,56966,3},{3013,56964,3},{3015,56963,3}, {3013,56963,3},{3022,56949,3},{3030,56928,3},{3037,56904,3},{3040,56884,3}, {3042,56888,3},{3040,56896,3},{3040,56903,3},{3043,56904,3},{3040,56908,3}, {3040,56913,3},{3042,56909,3},{3043,56911,3},{3037,56926,3},{3040,56924,3}, {3043,56924,3},{3045,56921,3},{3047,56923,3},{3048,56923,3},{3047,56919,3}, {3047,56916,3},{3050,56916,3},{3048,56913,3},{3050,56909,3},{3048,56901,3}, {3045,56894,3},{3048,56893,3},{3052,56894,3},{3052,56891,3},{3050,56889,3}, {3052,56888,3},{3050,56888,3},{3047,56886,3},{3043,56881,3},{3045,56876,3}, {3042,56878,3},{3042,56858,3},{3035,56818,3},{3038,56818,3},{3042,56836,3}, {3045,56843,3},{3043,56848,3},{3047,56846,3},{3050,56834,3},{3055,56836,3}, {3057,56839,3},{3057,56836,3},{3058,56836,3},{3060,56834,3},{3057,56834,3}, {3055,56833,3},{3045,56828,3},{3045,56826,3},{3053,56826,3},{3053,56823,3}, {3055,56824,3},{3058,56819,3},{3058,56818,3},{3053,56818,3},{3050,56821,3}, {3047,56821,3},{3042,56816,3},{3040,56811,3},{3035,56809,3},{3035,56806,3}, {3032,56806,3},{3027,56786,3},{3028,56783,3},{3030,56786,3},{3032,56791,3}, {3033,56788,3},{3033,56793,3},{3035,56794,3},{3037,56794,3},{3040,56794,3}, {3043,56803,3},{3045,56801,3},{3048,56794,3},{3043,56796,3},{3040,56793,3}, {3035,56789,3},{3035,56784,3},{3033,56784,3},{3032,56783,3},{3032,56778,3}, {3033,56778,3},{3035,56774,3},{3030,56776,3},{3030,56779,3},{3028,56779,3}, {3023,56763,3},{3023,56741,3},{3022,56736,3},{3023,56734,3},{3023,56739,3}, {3027,56743,3},{3023,56749,3},{3027,56758,3},{3028,56761,3},{3035,56753,3}, {3040,56754,3},{3042,56754,3},{3040,56753,3},{3038,56751,3},{3042,56744,3}, {3047,56744,3},{3048,56741,3},{3055,56746,3},{3060,56744,3},{3067,56741,3}, {3068,56736,3},{3073,56734,3},{3070,56734,3},{3065,56731,3},{3060,56731,3}, {3058,56728,3},{3052,56726,3},{3037,56724,3},{3032,56723,3},{3033,56721,3}, {3033,56716,3},{3037,56716,3},{3040,56706,3},{3038,56706,3},{3040,56701,3}, {3038,56696,3},{3035,56696,3},{3035,56693,3},{3032,56689,3},{3035,56686,3}, {3035,56679,3},{3040,56676,3},{3037,56674,3},{3035,56668,3},{3035,56663,3}, {3038,56658,3},{3043,56651,3},{3043,56644,3},{3042,56638,3},{3040,56649,3}, {3037,56631,3},{3035,56628,3},{3032,56611,3},{3032,56609,3},{3035,56611,3}, {3037,56606,3},{3037,56603,3},{3035,56601,3},{3035,56604,3},{3030,56604,3}, {3025,56594,3},{3018,56591,3},{3020,56589,3},{3018,56584,3},{3015,56578,3}, {3015,56574,3},{3017,56578,3},{3018,56576,3},{3017,56573,3},{3018,56561,3}, {3023,56561,3},{3022,56556,3},{3023,56551,3},{3025,56549,3},{3027,56538,3}, {3032,56536,3},{3035,56531,3},{3038,56516,3},{3037,56513,3},{3025,56501,3}, {3020,56494,3},{3015,56493,3},{3010,56494,3},{3007,56501,3},{3007,56506,3}, {3002,56523,3},{3003,56534,3},{3007,56539,3},{3012,56546,3},{3015,56548,3}, {3015,56551,3},{3012,56553,3},{3008,56558,3},{3017,56561,3},{3017,56563,3}, {3012,56561,3},{3010,56563,3},{3012,56564,3},{3013,56568,3},{3015,56568,3}, {3015,56566,3},{3017,56569,3},{3015,56569,3},{3013,56571,3},{3012,56569,3}, {3007,56568,3},{3005,56564,3},{3003,56564,3},{3005,56558,3},{3003,56553,3}, {3002,56551,3},{2995,56554,3},{2995,56561,3},{2995,56564,3},{2992,56563,3}, {2988,56568,3},{2987,56571,3},{2988,56576,3},{2997,56579,3},{3000,56579,3}, {3003,56586,3},{3008,56588,3},{3005,56593,3},{3003,56593,3},{3005,56599,3}, {3003,56599,3},{3002,56593,3},{3000,56591,3},{3000,56593,3},{2997,56591,3}, {2997,56593,3},{2997,56599,3},{2993,56599,3},{2993,56596,3},{2995,56594,3}, {2993,56593,3},{2990,56594,3},{2992,56599,3},{2987,56598,3},{2988,56599,3}, {2988,56603,3},{2983,56598,3},{2978,56601,3},{2978,56598,3},{2977,56596,3}, {2978,56596,3},{2978,56593,3},{2980,56593,3},{2983,56589,3},{2980,56588,3}, {2978,56586,3},{2975,56584,3},{2975,56579,3},{2973,56576,3},{2968,56576,3}, {2968,56581,3},{2968,56583,3},{2968,56584,3},{2967,56586,3},{2967,56583,3}, {2963,56588,3},{2967,56581,3},{2967,56574,3},{2968,56573,3},{2970,56566,3}, {2968,56571,3},{2967,56569,3},{2962,56574,3},{2963,56561,3},{2962,56564,3}, {2960,56563,3},{2958,56566,3},{2952,56568,3},{2950,56574,3},{2950,56578,3}, {2948,56578,3},{2947,56584,3},{2943,56583,3},{2942,56583,3},{2943,56584,3}, {2942,56584,3},{2940,56581,3},{2940,56594,3},{2938,56594,3},{2938,56603,3}, {2938,56599,3},{2937,56598,3},{2935,56601,3},{2935,56609,3},{2932,56611,3}, {2935,56616,3},{2932,56618,3},{2928,56623,3},{2927,56623,3},{2925,56624,3}, {2923,56621,3},{2920,56629,3},{2922,56629,3},{2922,56633,3},{2920,56636,3}, {2918,56633,3},{2918,56636,3},{2918,56633,3},{2917,56631,3},{2918,56631,3}, {2918,56629,3},{2917,56626,3},{2913,56626,3},{2915,56629,3},{2913,56634,3}, {2908,56631,3},{2912,56628,3},{2912,56626,3},{2908,56628,3},{2910,56626,3}, {2907,56623,3},{2903,56621,3},{2898,56623,3},{2902,56618,3},{2910,56613,3}, {2907,56611,3},{2905,56606,3},{2895,56599,3},{2893,56594,3},{2897,56596,3}, {2903,56601,3},{2907,56601,3},{2908,56606,3},{2915,56609,3},{2915,56608,3}, {2912,56606,3},{2918,56604,3},{2915,56603,3},{2912,56604,3},{2908,56599,3}, {2910,56596,3},{2915,56596,3},{2915,56593,3},{2923,56588,3},{2923,56589,3}, {2925,56589,3},{2925,56586,3},{2922,56586,3},{2923,56583,3},{2925,56574,3}, {2928,56574,3},{2930,56573,3},{2932,56574,3},{2933,56574,3},{2933,56571,3}, {2930,56566,3},{2932,56563,3},{2932,56554,3},{2933,56559,3},{2937,56561,3}, {2938,56559,3},{2938,56558,3},{2942,56559,3},{2940,56554,3},{2943,56553,3}, {2945,56556,3},{2947,56554,3},{2948,56551,3},{2947,56551,3},{2945,56551,3}, {2943,56549,3},{2947,56546,3},{2947,56541,3},{2947,56539,3},{2948,56538,3}, {2952,56529,3},{2953,56529,3},{2953,56523,3},{2957,56518,3},{2953,56516,3}, {2953,56518,3},{2952,56514,3},{2952,56518,3},{2948,56519,3},{2948,56521,3}, {2947,56523,3},{2947,56531,3},{2943,56533,3},{2940,56531,3},{2938,56533,3}, {2933,56533,3},{2935,56531,3},{2930,56534,3},{2930,56531,3},{2932,56531,3}, {2930,56528,3},{2928,56529,3},{2927,56526,3},{2922,56528,3},{2922,56531,3}, {2918,56529,3},{2913,56523,3},{2908,56513,3},{2908,56511,3},{2910,56513,3}, {2912,56513,3},{2917,56509,3},{2918,56511,3},{2920,56509,3},{2922,56511,3}, {2925,56511,3},{2927,56509,3},{2923,56508,3},{2925,56506,3},{2928,56503,3}, {2932,56501,3},{2925,56498,3},{2925,56496,3},{2932,56498,3},{2933,56494,3}, {2935,56493,3},{2932,56491,3},{2928,56488,3},{2930,56486,3},{2928,56484,3}, {2930,56481,3},{2932,56479,3},{2930,56476,3},{2928,56476,3},{2928,56479,3}, {2923,56476,3},{2922,56478,3},{2923,56474,3},{2922,56473,3},{2913,56473,3}, {2917,56471,3},{2917,56469,3},{2913,56468,3},{2912,56466,3},{2913,56464,3}, {2912,56461,3},{2913,56456,3},{2913,56459,3},{2917,56459,3},{2917,56454,3}, {2918,56451,3},{2915,56453,3},{2913,56448,3},{2918,56441,3},{2918,56434,3}, {2922,56438,3},{2922,56436,3},{2922,56433,3},{2918,56431,3},{2922,56423,3}, {2923,56416,3},{2925,56409,3},{2927,56406,3},{2933,56403,3},{2932,56404,3}, {2933,56408,3},{2937,56409,3},{2938,56413,3},{2932,56416,3},{2933,56419,3}, {2928,56419,3},{2925,56421,3},{2927,56424,3},{2935,56424,3},{2940,56414,3}, {2943,56413,3},{2947,56409,3},{2953,56409,3},{2957,56414,3},{2960,56414,3}, {2962,56411,3},{2960,56411,3},{2957,56411,3},{2955,56408,3},{2952,56408,3}, {2948,56406,3},{2952,56393,3},{2955,56394,3},{2953,56381,3},{2955,56383,3}, {2963,56381,3},{2963,56371,3},{2973,56374,3},{2975,56373,3},{2973,56356,3}, {2972,56351,3},{2972,56349,3},{2975,56349,3},{2977,56348,3},{2980,56349,3}, {2978,56354,3},{2983,56353,3},{2983,56344,3},{2982,56343,3},{2983,56339,3}, {2983,56338,3},{2980,56338,3},{2977,56328,3},{2973,56323,3},{2977,56323,3}, {2977,56319,3},{2975,56319,3},{2977,56316,3},{2970,56318,3},{2972,56326,3}, {2968,56323,3},{2962,56326,3},{2963,56333,3},{2962,56334,3},{2962,56329,3}, {2960,56331,3},{2958,56331,3},{2958,56318,3},{2953,56308,3},{2960,56268,3}, {2973,56233,3},{2978,56213,3},{2977,56164,3},{2970,56153,3},{2975,56148,3}, {2980,56146,3},{2983,56149,3},{2983,56156,3},{2990,56159,3},{2997,56159,3}, {2998,56158,3},{2998,56151,3},{2993,56148,3},{2983,56141,3},{2980,56141,3}, {2973,56148,3},{2968,56151,3},{2968,56131,3},{2965,56123,3},{2945,56071,3}, {2937,56059,3},{2937,56058,3},{2940,56058,3},{2943,56064,3},{2947,56066,3}, {2948,56073,3},{2953,56079,3},{2952,56086,3},{2957,56088,3},{2955,56084,3}, {2957,56079,3},{2957,56073,3},{2953,56058,3},{2953,56056,3},{2955,56056,3}, {2955,56059,3},{2965,56064,3},{2975,56066,3},{2978,56061,3},{2977,56053,3}, {2968,56048,3},{2967,56046,3},{2967,56043,3},{2970,56041,3},{2972,56036,3}, {2972,56029,3},{2968,56033,3},{2968,56036,3},{2963,56033,3},{2960,56038,3}, {2957,56034,3},{2953,56034,3},{2952,56036,3},{2950,56044,3},{2948,56043,3}, {2947,56039,3},{2942,56041,3},{2942,56044,3},{2943,56044,3},{2942,56046,3}, {2940,56048,3},{2937,56054,3},{2937,56046,3},{2932,56046,3},{2930,56043,3}, {2932,56041,3},{2928,56036,3},{2927,56036,3},{2922,56033,3},{2918,56026,3}, {2918,56024,3},{2920,56024,3},{2920,56019,3},{2917,56021,3},{2907,56021,3}, {2905,56023,3},{2888,55999,3},{2887,55994,3},{2873,55968,3},{2873,55961,3}, {2873,55954,3},{2870,55943,3},{2868,55941,3},{2862,55941,3},{2872,55964,3}, {2865,55953,3},{2860,55938,3},{2848,55914,3},{2853,55921,3},{2860,55936,3}, {2863,55938,3},{2865,55938,3},{2858,55914,3},{2860,55914,3},{2860,55918,3}, {2863,55923,3},{2863,55914,3},{2867,55918,3},{2870,55918,3},{2867,55909,3}, {2868,55909,3},{2865,55906,3},{2863,55901,3},{2865,55901,3},{2867,55898,3}, {2872,55898,3},{2873,55896,3},{2873,55894,3},{2877,55893,3},{2870,55893,3}, {2872,55896,3},{2868,55894,3},{2863,55894,3},{2862,55899,3},{2857,55888,3}, {2860,55888,3},{2860,55893,3},{2863,55891,3},{2862,55888,3},{2862,55886,3}, {2865,55886,3},{2865,55881,3},{2870,55879,3},{2872,55878,3},{2872,55871,3}, {2868,55871,3},{2863,55876,3},{2857,55876,3},{2855,55884,3},{2852,55888,3}, {2848,55881,3},{2847,55881,3},{2848,55886,3},{2850,55888,3},{2847,55893,3}, {2845,55896,3},{2843,55896,3},{2832,55871,3},{2833,55866,3},{2840,55866,3}, {2842,55863,3},{2843,55861,3},{2848,55858,3},{2845,55854,3},{2842,55859,3}, {2840,55859,3},{2842,55853,3},{2840,55853,3},{2835,55858,3},{2828,55856,3}, {2823,55858,3},{2817,55849,3},{2813,55848,3},{2813,55843,3},{2820,55844,3}, {2822,55843,3},{2825,55846,3},{2827,55844,3},{2822,55841,3},{2818,55843,3}, {2812,55839,3},{2813,55834,3},{2818,55836,3},{2820,55834,3},{2818,55833,3}, {2815,55824,3},{2817,55821,3},{2815,55818,3},{2812,55821,3},{2807,55814,3}, {2803,55821,3},{2800,55821,3},{2807,55826,3},{2808,55831,3},{2812,55833,3}, {2810,55834,3},{2807,55833,3},{2803,55834,3},{2797,55826,3},{2782,55816,3}, {2782,55813,3},{2783,55814,3},{2787,55811,3},{2788,55809,3},{2785,55801,3}, {2787,55801,3},{2787,55791,3},{2785,55789,3},{2788,55786,3},{2787,55784,3}, {2782,55788,3},{2783,55798,3},{2778,55796,3},{2775,55799,3},{2772,55804,3}, {2770,55811,3},{2757,55804,3},{2733,55796,3},{2730,55788,3},{2728,55784,3}, {2728,55783,3},{2730,55786,3},{2733,55786,3},{2733,55791,3},{2735,55788,3}, {2740,55788,3},{2738,55784,3},{2733,55779,3},{2733,55778,3},{2730,55776,3}, {2730,55773,3},{2733,55771,3},{2738,55768,3},{2747,55759,3},{2745,55759,3}, {2740,55764,3},{2738,55763,3},{2737,55766,3},{2735,55766,3},{2733,55768,3}, {2732,55764,3},{2732,55769,3},{2730,55769,3},{2728,55766,3},{2728,55759,3}, {2727,55763,3},{2727,55771,3},{2725,55773,3},{2723,55783,3},{2727,55794,3}, {2717,55791,3},{2712,55791,3},{2710,55786,3},{2707,55788,3},{2705,55788,3}, {2702,55789,3},{2700,55786,3},{2702,55781,3},{2700,55779,3},{2692,55781,3}, {2690,55784,3},{2688,55788,3},{2687,55788,3},{2685,55786,3},{2687,55784,3}, {2690,55781,3},{2687,55781,3},{2683,55779,3},{2682,55781,3},{2680,55786,3}, {2655,55794,3},{2650,55794,3},{2652,55793,3},{2650,55793,3},{2648,55789,3}, {2648,55793,3},{2642,55791,3},{2642,55794,3},{2637,55796,3},{2637,55799,3}, {2633,55799,3},{2635,55801,3},{2628,55799,3},{2627,55801,3},{2628,55804,3}, {2625,55804,3},{2623,55803,3},{2620,55804,3},{2617,55804,3},{2612,55806,3}, {2610,55808,3},{2608,55814,3},{2607,55814,3},{2607,55811,3},{2603,55809,3}, {2598,55811,3},{2602,55818,3},{2608,55819,3},{2597,55823,3},{2595,55814,3}, {2597,55809,3},{2593,55808,3},{2593,55803,3},{2592,55801,3},{2585,55801,3}, {2583,55799,3},{2587,55796,3},{2585,55794,3},{2585,55793,3},{2588,55791,3}, {2590,55784,3},{2595,55779,3},{2597,55778,3},{2600,55774,3},{2603,55771,3}, {2603,55759,3},{2605,55758,3},{2605,55756,3},{2605,55736,3},{2607,55734,3}, {2603,55729,3},{2605,55728,3},{2607,55728,3},{2607,55724,3},{2607,55723,3}, {2607,55719,3},{2605,55716,3},{2608,55716,3},{2612,55706,3},{2615,55701,3}, {2615,55698,3},{2620,55699,3},{2620,55696,3},{2623,55691,3},{2620,55689,3}, {2625,55683,3},{2623,55681,3},{2625,55678,3},{2623,55671,3},{2627,55666,3}, {2630,55666,3},{2630,55661,3},{2632,55663,3},{2637,55656,3},{2637,55648,3}, {2640,55643,3},{2638,55641,3},{2640,55639,3},{2640,55638,3},{2638,55636,3}, {2640,55634,3},{2640,55628,3},{2642,55626,3},{2650,55628,3},{2655,55619,3}, {2662,55619,3},{2685,55609,3},{2688,55601,3},{2692,55601,3},{2693,55598,3}, {2700,55598,3},{2705,55589,3},{2710,55593,3},{2713,55591,3},{2722,55593,3}, {2727,55591,3},{2727,55588,3},{2730,55588,3},{2730,55584,3},{2740,55589,3}, {2748,55589,3},{2750,55584,3},{2757,55586,3},{2763,55578,3},{2763,55573,3}, {2765,55571,3},{2767,55566,3},{2772,55561,3},{2773,55558,3},{2777,55556,3}, {2778,55553,3},{2780,55549,3},{2785,55549,3},{2787,55548,3},{2790,55548,3}, {2793,55543,3},{2798,55543,3},{2800,55536,3},{2807,55534,3},{2808,55531,3}, {2815,55529,3},{2820,55518,3},{2823,55516,3},{2825,55513,3},{2828,55508,3}, {2832,55508,3},{2840,55503,3},{2843,55503,3},{2848,55501,3},{2850,55504,3}, {2853,55498,3},{2857,55496,3},{2860,55496,3},{2862,55493,3},{2863,55493,3}, {2868,55488,3},{2883,55483,3},{2883,55479,3},{2887,55479,3},{2892,55474,3}, {2900,55473,3},{2912,55469,3},{2917,55459,3},{2923,55459,3},{2928,55453,3}, {2928,55449,3},{2935,55443,3},{2938,55436,3},{2947,55431,3},{2950,55423,3}, {2953,55418,3},{2953,55414,3},{2958,55414,3},{2962,55414,3},{2962,55413,3}, {2958,55406,3},{2962,55404,3},{2965,55406,3},{2967,55401,3},{2975,55394,3}, {2977,55396,3},{2977,55393,3},{2978,55389,3},{2977,55383,3},{2980,55383,3}, {2982,55383,3},{2977,55379,3},{2977,55373,3},{2980,55359,3},{2978,55356,3}, {2982,55354,3},{2980,55353,3},{2980,55348,3},{2980,55344,3},{2982,55339,3}, {2980,55338,3},{2980,55328,3},{2982,55321,3},{2985,55318,3},{2985,55313,3}, {2987,55311,3},{2988,55306,3},{2985,55301,3},{2980,55299,3},{2977,55298,3}, {2978,55286,3},{2975,55283,3},{2977,55279,3},{2975,55278,3},{2975,55269,3}, {2967,55268,3},{2963,55263,3},{2960,55263,3},{2960,55259,3},{2955,55259,3}, {2952,55256,3},{2945,55254,3},{2940,55254,3},{2935,55251,3},{2935,55248,3}, {2932,55248,3},{2925,55246,3},{2922,55249,3},{2922,55246,3},{2920,55243,3}, {2918,55238,3},{2910,55233,3},{2908,55228,3},{2905,55228,3},{2907,55226,3}, {2900,55226,3},{2898,55221,3},{2900,55206,3},{2900,55204,3},{2902,55204,3}, {2902,55203,3},{2903,55201,3},{2902,55199,3},{2907,55191,3},{2907,55188,3}, {2915,55181,3},{2915,55173,3},{2920,55163,3},{2923,55158,3},{2925,55159,3}, {2927,55158,3},{2928,55148,3},{2933,55131,3},{2942,55119,3},{2947,55116,3}, {2948,55116,3},{2952,55108,3},{2953,55103,3},{2957,55094,3},{2963,55086,3}, {2972,55081,3},{2980,55079,3},{2982,55074,3},{2995,55068,3},{2997,55069,3}, {3005,55066,3},{3012,55068,3},{3018,55068,3},{3023,55066,3},{3028,55059,3}, {3032,55059,3},{3035,55054,3},{3038,55054,3},{3040,55051,3},{3050,55049,3}, {3057,55046,3},{3062,55043,3},{3062,55038,3},{3068,55036,3},{3070,55029,3}, {3080,55016,3},{3080,55009,3},{3082,55008,3},{3087,54998,3},{3090,54996,3}, {3095,54988,3},{3097,54986,3},{3102,54979,3},{3108,54976,3},{3118,54959,3}, {3125,54953,3},{3133,54943,3},{3137,54941,3},{3140,54936,3},{3143,54921,3}, {3148,54914,3},{3168,54903,3},{3175,54898,3},{3175,54888,3},{3178,54884,3}, {3178,54881,3},{3178,54876,3},{3178,54869,3},{3178,54861,3},{3178,54854,3}, {3178,54849,3},{3178,54843,3},{3178,54836,3},{3178,54828,3},{3178,54821,3}, {3178,54816,3},{3178,54809,3},{3178,54803,3},{3178,54794,3},{3178,54789,3}, {3178,54783,3},{3178,54776,3},{3178,54768,3},{3178,54761,3},{3178,54756,3}, {3178,54749,3},{3178,54741,3},{3178,54736,3},{3178,54729,3},{3178,54723,3}, {3178,54716,3},{3177,54716,3},{3170,54716,3},{3163,54716,3},{3157,54716,3}, {3150,54716,3},{3143,54716,3},{3138,54716,3},{3133,54716,3},{3133,54711,3}, {3133,54704,3},{3133,54698,3},{3133,54691,3},{3133,54684,3},{3133,54678,3}, {3133,54671,3},{3133,54664,3},{3133,54658,3},{3133,54653,3},{3133,54651,3}, {3133,54644,3},{3133,54638,3},{3133,54631,3},{3133,54624,3},{3133,54618,3}, {3133,54611,3},{3133,54604,3},{3133,54598,3},{3133,54591,3},{3133,54584,3}, {3133,54578,3},{3133,54571,3},{3133,54564,3},{3133,54558,3},{3133,54551,3}, {3133,54544,3},{3133,54538,3},{3133,54531,3},{3133,54524,3},{3133,54518,3}, {3133,54511,3},{3133,54504,3},{3133,54498,3},{3133,54491,3},{3133,54484,3}, {3133,54478,3},{3133,54471,3},{3133,54464,3},{3133,54458,3},{3133,54451,3}, {3133,54444,3},{3133,54438,3},{3133,54431,3},{3135,54428,3},{3137,54421,3}, {3138,54416,3},{3140,54409,3},{3142,54404,3},{3143,54398,3},{3147,54393,3}, {3148,54386,3},{3150,54381,3},{3152,54374,3},{3153,54369,3},{3155,54363,3}, {3157,54358,3},{3160,54351,3},{3162,54346,3},{3163,54339,3},{3165,54334,3}, {3167,54328,3},{3168,54321,3},{3170,54316,3},{3172,54309,3},{3175,54304,3}, {3177,54298,3},{3178,54293,3},{3180,54286,3},{3182,54281,3},{3183,54274,3}, {3185,54269,3},{3187,54263,3},{3188,54258,3},{3190,54251,3},{3193,54244,3}, {3195,54239,3},{3197,54233,3},{3198,54228,3},{3200,54221,3},{3202,54216,3}, {3203,54209,3},{3205,54204,3},{3207,54198,3},{3208,54191,3},{3212,54186,3}, {3213,54179,3},{3215,54174,3},{3217,54168,3},{3218,54163,3},{3220,54156,3}, {3222,54151,3},{3223,54144,3},{3225,54138,3},{3227,54133,3},{3228,54126,3}, {3230,54121,3},{3233,54114,3},{3235,54109,3},{3237,54103,3},{3238,54096,3}, {3240,54091,3},{3242,54084,3},{3243,54079,3},{3245,54073,3},{3247,54068,3}, {3248,54061,3},{3250,54054,3},{3255,54058,3},{3262,54056,3},{3265,54061,3}, {3272,54064,3},{3272,54059,3},{3272,54054,3},{3270,54048,3},{3270,54043,3}, {3270,54036,3},{3270,54029,3},{3268,54024,3},{3268,54018,3},{3268,54011,3}, {3268,54006,3},{3267,53999,3},{3267,53994,3},{3267,53988,3},{3267,53981,3}, {3265,53976,3},{3265,53969,3},{3265,53963,3},{3263,53958,3},{3263,53951,3}, {3263,53946,3},{3263,53939,3},{3262,53933,3},{3262,53928,3},{3262,53921,3}, {3262,53914,3},{3260,53909,3},{3260,53903,3},{3260,53898,3},{3258,53891,3}, {3258,53884,3},{3258,53879,3},{3258,53873,3},{3257,53866,3},{3257,53861,3}, {3257,53854,3},{3255,53849,3},{3255,53843,3},{3255,53836,3},{3253,53831,3}, {3253,53824,3},{4900,53226,131},{4903,53224,3},{4907,53221,3},{4908,53226,3}, {4915,53233,3},{4910,53224,3},{4913,53214,3},{4920,53216,3},{4920,53223,3}, {4918,53223,3},{4920,53223,3},{4925,53213,3},{4928,53211,3},{4928,53221,3}, {4930,53219,3},{4930,53221,3},{4928,53224,3},{4928,53244,3},{4933,53248,3}, {4943,53251,3},{4945,53249,3},{4943,53248,3},{4937,53246,3},{4932,53243,3}, {4930,53234,3},{4933,53213,3},{4933,53209,3},{4937,53208,3},{4938,53211,3}, {4943,53213,3},{4952,53211,3},{4962,53216,3},{4965,53216,3},{4968,53221,3}, {4970,53219,3},{4967,53213,3},{4958,53211,3},{4958,53204,3},{4955,53201,3}, {4955,53198,3},{4952,53186,3},{4942,53188,3},{4938,53184,3},{4943,53164,3}, {4947,53161,3},{4947,53151,3},{4947,53148,3},{4950,53144,3},{4952,53139,3}, {4963,53129,3},{4972,53133,3},{4973,53136,3},{4973,53143,3},{4968,53148,3}, {4963,53153,3},{4950,53158,3},{4953,53161,3},{4958,53159,3},{4960,53159,3}, {4963,53168,3},{4963,53174,3},{4970,53183,3},{4965,53169,3},{4963,53158,3}, {4965,53154,3},{4970,53153,3},{4977,53143,3},{4983,53148,3},{4988,53149,3}, {4992,53148,3},{4993,53141,3},{4998,53139,3},{5003,53149,3},{5005,53156,3}, {5008,53161,3},{5015,53153,3},{5022,53138,3},{5017,53141,3},{5015,53149,3}, {5010,53154,3},{5005,53151,3},{5000,53136,3},{4992,53138,3},{4987,53144,3}, {4983,53143,3},{4983,53139,3},{4980,53138,3},{4982,53136,3},{4992,53133,3}, {4987,53129,3},{4983,53131,3},{4982,53128,3},{4980,53128,3},{4977,53119,3}, {4978,53111,3},{4975,53109,3},{4977,53101,3},{4977,53096,3},{4977,53091,3}, {4980,53084,3},{4983,53083,3},{4987,53079,3},{4993,53066,3},{4998,53059,3}, {5007,53053,3},{4998,53066,3},{5003,53066,3},{5007,53069,3},{5010,53066,3}, {5012,53069,3},{5013,53069,3},{5017,53074,3},{5023,53076,3},{5028,53073,3}, {5033,53064,3},{5035,53068,3},{5038,53071,3},{5040,53076,3},{5040,53083,3}, {5045,53094,3},{5050,53101,3},{5050,53098,3},{5047,53093,3},{5042,53079,3}, {5043,53069,3},{5035,53063,3},{5032,53053,3},{5033,53039,3},{5037,53041,3}, {5043,53036,3},{5035,53036,3},{5035,53033,3},{5032,53031,3},{5032,53028,3}, {5035,53028,3},{5037,53029,3},{5048,53031,3},{5050,53039,3},{5055,53043,3}, {5055,53048,3},{5058,53049,3},{5060,53048,3},{5068,53049,3},{5072,53054,3}, {5080,53044,3},{5088,53058,3},{5092,53054,3},{5093,53051,3},{5092,53049,3}, {5088,53049,3},{5083,53044,3},{5080,53038,3},{5080,53041,3},{5075,53041,3}, {5075,53046,3},{5073,53046,3},{5067,53044,3},{5062,53046,3},{5060,53043,3}, {5060,53041,3},{5057,53038,3},{5055,53034,3},{5053,53033,3},{5050,53026,3}, {5043,53024,3},{5042,53018,3},{5047,53011,3},{5050,53011,3},{5045,53006,3}, {5048,53003,3},{5050,53001,3},{5053,53003,3},{5053,52999,3},{5048,52996,3}, {5047,52994,3},{5047,52979,3},{5053,52983,3},{5058,52981,3},{5063,52983,3}, {5067,52986,3},{5068,52991,3},{5072,52993,3},{5072,52989,3},{5067,52981,3}, {5055,52979,3},{5050,52974,3},{5047,52974,3},{5043,52966,3},{5043,52964,3}, {5050,52956,3},{5052,52963,3},{5053,52954,3},{5050,52949,3},{5047,52939,3}, {5048,52936,3},{5047,52929,3},{5050,52928,3},{5048,52923,3},{5050,52914,3}, {5052,52908,3},{5053,52913,3},{5052,52918,3},{5057,52918,3},{5057,52919,3}, {5062,52939,3},{5063,52943,3},{5065,52938,3},{5063,52929,3},{5058,52916,3}, {5060,52911,3},{5063,52909,3},{5065,52926,3},{5067,52933,3},{5065,52944,3}, {5067,52953,3},{5068,52961,3},{5067,52964,3},{5068,52966,3},{5073,52968,3}, {5075,52974,3},{5078,52976,3},{5085,52971,3},{5087,52976,3},{5085,52979,3}, {5087,52981,3},{5093,52986,3},{5105,52981,3},{5110,52973,3},{5107,52973,3}, {5095,52978,3},{5093,52981,3},{5090,52979,3},{5090,52974,3},{5087,52968,3}, {5082,52968,3},{5080,52973,3},{5078,52971,3},{5077,52966,3},{5070,52961,3}, {5070,52951,3},{5068,52943,3},{5070,52939,3},{5070,52936,3},{5068,52931,3}, {5067,52916,3},{5067,52914,3},{5070,52914,3},{5072,52919,3},{5080,52934,3}, {5077,52921,3},{5080,52916,3},{5087,52918,3},{5085,52914,3},{5085,52913,3}, {5087,52913,3},{5085,52898,3},{5082,52893,3},{5082,52886,3},{5083,52881,3}, {5088,52881,3},{5092,52886,3},{5090,52913,3},{5092,52918,3},{5093,52919,3}, {5095,52918,3},{5092,52911,3},{5095,52889,3},{5098,52886,3},{5107,52884,3}, {5102,52881,3},{5093,52884,3},{5090,52879,3},{5088,52871,3},{5087,52869,3}, {5088,52864,3},{5093,52851,3},{5090,52846,3},{5090,52833,3},{5093,52824,3}, {5093,52818,3},{5092,52819,3},{5088,52829,3},{5088,52844,3},{5082,52834,3}, {5087,52823,3},{5088,52814,3},{5092,52811,3},{5093,52796,3},{5095,52793,3}, {5097,52794,3},{5098,52794,3},{5098,52788,3},{5100,52783,3},{5110,52786,3}, {5110,52788,3},{5112,52786,3},{5108,52773,3},{5110,52768,3},{5112,52769,3}, {5113,52766,3},{5113,52761,3},{5117,52758,3},{5123,52758,3},{5125,52761,3}, {5130,52779,3},{5128,52793,3},{5127,52799,3},{5128,52813,3},{5133,52823,3}, {5138,52824,3},{5132,52818,3},{5130,52808,3},{5132,52784,3},{5135,52791,3}, {5135,52789,3},{5133,52779,3},{5133,52758,3},{5137,52758,3},{5138,52763,3}, {5138,52769,3},{5147,52776,3},{5147,52781,3},{5150,52781,3},{5152,52784,3}, {5158,52784,3},{5162,52786,3},{5165,52798,3},{5167,52826,3},{5165,52844,3}, {5163,52866,3},{5165,52871,3},{5167,52871,3},{5168,52874,3},{5172,52876,3}, {5180,52869,3},{5172,52873,3},{5167,52866,3},{5168,52836,3},{5170,52831,3}, {5168,52816,3},{5168,52809,3},{5172,52803,3},{5168,52799,3},{5167,52794,3}, {5167,52793,3},{5175,52793,3},{5177,52799,3},{5187,52801,3},{5178,52796,3}, {5177,52791,3},{5170,52789,3},{5170,52771,3},{5168,52778,3},{5167,52789,3}, {5165,52786,3},{5163,52783,3},{5157,52778,3},{5153,52779,3},{5147,52773,3}, {5145,52766,3},{5150,52759,3},{5152,52771,3},{5153,52768,3},{5153,52756,3}, {5160,52756,3},{5160,52753,3},{5163,52753,3},{5167,52748,3},{5173,52749,3}, {5180,52748,3},{5190,52749,3},{5193,52758,3},{5195,52769,3},{5205,52771,3}, {5213,52778,3},{5215,52786,3},{5215,52789,3},{5213,52789,3},{5212,52789,3}, {5210,52786,3},{5210,52778,3},{5203,52774,3},{5203,52778,3},{5208,52781,3}, {5208,52794,3},{5218,52791,3},{5218,52796,3},{5222,52799,3},{5223,52808,3}, {5225,52811,3},{5232,52819,3},{5230,52836,3},{5225,52843,3},{5220,52843,3}, {5208,52861,3},{5198,52869,3},{5203,52869,3},{5212,52861,3},{5220,52846,3}, {5225,52846,3},{5230,52843,3},{5233,52843,3},{5235,52849,3},{5237,52863,3}, {5240,52856,3},{5237,52844,3},{5233,52838,3},{5235,52823,3},{5238,52818,3}, {5242,52818,3},{5245,52813,3},{5252,52813,3},{5262,52829,3},{5263,52838,3}, {5272,52844,3},{5283,52839,3},{5288,52829,3},{5282,52836,3},{5270,52838,3}, {5265,52831,3},{5263,52828,3},{5255,52811,3},{5250,52808,3},{5247,52809,3}, {5240,52791,3},{5233,52783,3},{5232,52776,3},{5230,52774,3},{5230,52768,3}, {5227,52763,3},{5228,52761,3},{5230,52761,3},{5235,52764,3},{5230,52758,3}, {5225,52756,3},{5220,52751,3},{5227,52748,3},{5230,52743,3},{5235,52744,3}, {5237,52753,3},{5245,52744,3},{5250,52749,3},{5252,52748,3},{5248,52744,3}, {5243,52743,3},{5238,52748,3},{5232,52739,3},{5233,52734,3},{5240,52731,3}, {5247,52729,3},{5252,52739,3},{5250,52743,3},{5253,52743,3},{5255,52748,3}, {5258,52748,3},{5255,52743,3},{5253,52733,3},{5250,52726,3},{5243,52721,3}, {5242,52721,3},{5238,52716,3},{5227,52708,3},{5228,52696,3},{5233,52703,3}, {5237,52703,3},{5240,52706,3},{5240,52711,3},{5247,52714,3},{5257,52713,3}, {5267,52718,3},{5275,52724,3},{5288,52723,3},{5292,52733,3},{5292,52723,3}, {5285,52719,3},{5283,52714,3},{5282,52713,3},{5280,52709,3},{5282,52699,3}, {5283,52698,3},{5282,52693,3},{5287,52688,3},{5292,52686,3},{5307,52683,3}, {5310,52686,3},{5310,52683,3},{5312,52681,3},{5313,52688,3},{5315,52679,3}, {5323,52669,3},{5318,52669,3},{5328,52649,3},{5333,52648,3},{5337,52651,3}, {5337,52648,3},{5340,52649,3},{5343,52648,3},{5348,52653,3},{5348,52651,3}, {5348,52648,3},{5345,52644,3},{5348,52643,3},{5355,52639,3},{5353,52649,3}, {5357,52654,3},{5355,52658,3},{5350,52661,3},{5348,52664,3},{5345,52669,3}, {5348,52666,3},{5347,52671,3},{5338,52686,3},{5335,52686,3},{5333,52688,3}, {5338,52689,3},{5340,52686,3},{5343,52688,3},{5345,52699,3},{5348,52701,3}, {5345,52713,3},{5347,52718,3},{5345,52721,3},{5343,52726,3},{5340,52729,3}, {5333,52726,3},{5337,52731,3},{5333,52741,3},{5325,52741,3},{5322,52749,3}, {5323,52749,3},{5328,52743,3},{5333,52744,3},{5340,52731,3},{5347,52724,3}, {5348,52724,3},{5347,52711,3},{5350,52699,3},{5348,52698,3},{5347,52698,3}, {5343,52684,3},{5347,52678,3},{5348,52676,3},{5350,52673,3},{5352,52668,3}, {5355,52666,3},{5357,52661,3},{5362,52654,3},{5365,52654,3},{5372,52659,3}, {5377,52656,3},{5380,52659,3},{5382,52664,3},{5382,52668,3},{5385,52668,3}, {5387,52671,3},{5383,52676,3},{5383,52689,3},{5385,52688,3},{5387,52674,3}, {5388,52668,3},{5403,52676,3},{5400,52668,3},{5393,52664,3},{5392,52661,3}, {5392,52658,3},{5388,52656,3},{5387,52653,3},{5383,52651,3},{5377,52643,3}, {5385,52646,3},{5382,52643,3},{5388,52641,3},{5390,52636,3},{5387,52639,3}, {5378,52639,3},{5377,52636,3},{5378,52633,3},{5382,52631,3},{5378,52629,3}, {5377,52633,3},{5375,52633,3},{5372,52624,3},{5367,52621,3},{5363,52613,3}, {5353,52613,3},{5352,52609,3},{5350,52613,3},{5343,52613,3},{5340,52609,3}, {5338,52609,3},{5340,52601,3},{5357,52576,3},{5368,52563,3},{5368,52566,3}, {5370,52564,3},{5372,52558,3},{5375,52554,3},{5375,52551,3},{5385,52538,3}, {5388,52539,3},{5387,52536,3},{5388,52531,3},{5395,52526,3},{5402,52528,3}, {5407,52528,3},{5415,52531,3},{5415,52541,3},{5403,52553,3},{5400,52561,3}, {5395,52564,3},{5400,52563,3},{5402,52558,3},{5405,52553,3},{5415,52544,3}, {5418,52543,3},{5422,52553,3},{5418,52573,3},{5418,52576,3},{5422,52581,3}, {5423,52589,3},{5423,52583,3},{5420,52574,3},{5422,52568,3},{5423,52549,3}, {5418,52534,3},{5418,52528,3},{5415,52524,3},{5420,52518,3},{5420,52509,3}, {5423,52508,3},{5427,52516,3},{5428,52513,3},{5433,52509,3},{5440,52511,3}, {5435,52508,3},{5433,52501,3},{5433,52489,3},{5437,52488,3},{5443,52489,3}, {5445,52498,3},{5450,52493,3},{5457,52493,3},{5457,52498,3},{5462,52493,3}, {5463,52493,3},{5460,52501,3},{5433,52531,3},{5432,52538,3},{5433,52539,3}, {5435,52533,3},{5440,52528,3},{5448,52529,3},{5448,52536,3},{5452,52538,3}, {5450,52529,3},{5443,52528,3},{5443,52524,3},{5452,52513,3},{5458,52508,3}, {5463,52499,3},{5467,52499,3},{5468,52503,3},{5472,52513,3},{5470,52519,3}, {5467,52524,3},{5467,52528,3},{5463,52531,3},{5462,52538,3},{5462,52548,3}, {5463,52549,3},{5463,52536,3},{5470,52528,3},{5473,52516,3},{5482,52521,3}, {5483,52526,3},{5488,52531,3},{5488,52528,3},{5485,52523,3},{5485,52519,3}, {5497,52533,3},{5497,52541,3},{5492,52538,3},{5498,52554,3},{5497,52559,3}, {5498,52571,3},{5500,52574,3},{5500,52558,3},{5500,52539,3},{5502,52536,3}, {5510,52539,3},{5517,52549,3},{5525,52554,3},{5528,52561,3},{5532,52563,3}, {5537,52568,3},{5543,52571,3},{5545,52576,3},{5543,52584,3},{5547,52589,3}, {5548,52588,3},{5545,52583,3},{5545,52573,3},{5540,52566,3},{5547,52564,3}, {5563,52554,3},{5553,52556,3},{5548,52559,3},{5542,52558,3},{5538,52553,3}, {5537,52553,3},{5540,52556,3},{5537,52554,3},{5537,52558,3},{5532,52553,3}, {5528,52554,3},{5523,52548,3},{5517,52544,3},{5508,52534,3},{5505,52534,3}, {5500,52529,3},{5500,52524,3},{5507,52519,3},{5518,52528,3},{5528,52541,3}, {5535,52536,3},{5547,52534,3},{5555,52526,3},{5567,52529,3},{5572,52523,3}, {5578,52526,3},{5592,52539,3},{5593,52539,3},{5592,52536,3},{5603,52534,3}, {5612,52528,3},{5608,52513,3},{5612,52508,3},{5613,52494,3},{5623,52489,3}, {5625,52473,3},{5637,52459,3},{5640,52431,3},{5660,52381,3},{5660,52354,3}, {5668,52353,3},{5675,52348,3},{5680,52349,3},{5687,52326,3},{5703,52333,3}, {5708,52303,3},{5720,52313,3},{5738,52298,3},{5752,52279,3},{5787,52248,3}, {5800,52231,3},{5813,52223,3},{5828,52199,3},{5838,52191,3},{5842,52199,3}, {5860,52168,3},{5873,52153,3},{5885,52111,3},{5893,52103,3},{5897,52104,3}, {5898,52096,3},{5905,52098,3},{5913,52089,3},{5913,52079,3},{5920,52069,3}, {5925,52068,3},{5928,52041,3},{5935,52034,3},{5938,52038,3},{5943,52028,3}, {5945,52029,3},{5947,52034,3},{5957,52034,3},{5962,52026,3},{5963,52018,3}, {5970,52013,3},{5973,52003,3},{5980,51989,3},{5967,51941,3},{5963,51916,3}, {5960,51901,3},{5957,51913,3},{5953,51913,3},{5947,51906,3},{5945,51899,3}, {5947,51889,3},{5928,51889,3},{5917,51878,3},{5915,51853,3},{5898,51806,3}, {5890,51791,3},{5893,51786,3},{5900,51788,3},{5923,51778,3},{5977,51674,3}, {5990,51668,3},{6000,51631,3},{6008,51618,3},{6032,51629,3},{6035,51629,3}, {6033,51568,3},{6018,51538,3},{6032,51491,3},{6022,51484,3},{6030,51436,3}, {6037,51436,3},{6043,51436,3},{6050,51436,3},{6055,51436,3},{6062,51436,3}, {6067,51436,3},{6073,51436,3},{6080,51436,3},{6087,51436,3},{6093,51436,3}, {6098,51436,3},{6103,51436,3},{6110,51436,3},{6117,51436,3},{6123,51436,3}, {6128,51436,3},{6137,51436,3},{6143,51436,3},{6148,51436,3},{6153,51436,3}, {6160,51436,3},{6165,51436,3},{6172,51436,3},{6177,51436,3},{6183,51436,3}, {6190,51436,3},{6197,51436,3},{6203,51436,3},{6210,51436,3},{6217,51436,3}, {6223,51436,3},{6228,51436,3},{6233,51436,3},{6240,51436,3},{6247,51436,3}, {6253,51436,3},{6260,51436,3},{6267,51436,3},{6273,51436,3},{6280,51436,3}, {6287,51436,3},{6293,51436,3},{6298,51436,3},{6305,51436,3},{6310,51436,3}, {6317,51436,3},{6323,51436,3},{6330,51436,3},{6337,51436,3},{6343,51436,3}, {6348,51436,3},{6355,51436,3},{6362,51436,3},{6367,51436,3},{6373,51436,3}, {6380,51436,3},{6387,51436,3},{6393,51436,3},{6400,51436,3},{6407,51436,3}, {6412,51436,3},{6417,51436,3},{6423,51436,3},{6430,51436,3},{6437,51436,3}, {6443,51436,3},{6448,51436,3},{6455,51436,3},{6460,51436,3},{6467,51436,3}, {6473,51436,3},{6480,51436,3},{6487,51436,3},{6493,51436,3},{6500,51436,3}, {6507,51436,3},{6513,51436,3},{6520,51436,3},{6527,51436,3},{6533,51436,3}, {6540,51436,3},{6547,51436,3},{6553,51436,3},{6558,51436,3},{6565,51436,3}, {6570,51436,3},{6577,51436,3},{6583,51436,3},{6590,51436,3},{6595,51436,3}, {6603,51436,3},{6610,51436,3},{6617,51436,3},{6623,51436,3},{6630,51436,3}, {6637,51436,3},{6642,51436,3},{6647,51436,3},{6653,51436,3},{6660,51436,3}, {6667,51436,3},{6673,51436,3},{6680,51436,3},{6687,51436,3},{6693,51436,3}, {6700,51436,3},{6705,51436,3},{6710,51436,3},{6717,51436,3},{6723,51436,3}, {6730,51436,3},{6737,51436,3},{6742,51436,3},{6747,51436,3},{6753,51436,3}, {6760,51436,3},{6767,51436,3},{6772,51436,3},{6780,51436,3},{6787,51436,3}, {6793,51436,3},{6800,51436,3},{6807,51436,3},{6813,51436,3},{6820,51436,3}, {6827,51436,3},{6833,51436,3},{6840,51436,3},{6847,51436,3},{6853,51436,3}, {6860,51436,3},{6867,51436,3},{6873,51436,3},{6880,51436,3},{6887,51436,3}, {6892,51436,3},{6900,51436,3},{6907,51436,3},{6913,51436,3},{6920,51436,3}, {6925,51436,3},{6930,51436,3},{6937,51436,3},{6943,51436,3},{6950,51436,3}, {6957,51436,3},{6962,51436,3},{6965,51436,3},{6963,51446,3},{6962,51446,3}, {6962,51453,3},{6963,51453,3},{6962,51461,3},{6960,51496,3},{6960,51509,3}, {6962,51526,3},{6962,51548,3},{6957,51578,3},{6960,51559,3},{6958,51561,3}, {6957,51576,3},{6955,51594,3},{6950,51609,3},{6950,51623,3},{6942,51639,3}, {6935,51659,3},{6928,51671,3},{6923,51676,3},{6925,51684,3},{6923,51684,3}, {6923,51691,3},{6925,51696,3},{6930,51696,3},{6928,51691,3},{6930,51696,3}, {6930,51701,3},{6923,51703,3},{6917,51714,3},{6913,51729,3},{6903,51773,3}, {6900,51798,3},{6900,51793,3},{6898,51794,3},{6897,51808,3},{6895,51811,3}, {6895,51834,3},{6892,51839,3},{6892,51848,3},{6887,51861,3},{6887,51869,3}, {6890,51876,3},{6888,51883,3},{6890,51883,3},{6892,51888,3},{6890,51894,3}, {6888,51916,3},{6888,51924,3},{6883,51954,3},{6877,51964,3},{6875,51983,3}, {6870,51994,3},{6867,51996,3},{6867,52004,3},{6868,52006,3},{6865,52019,3}, {6868,52014,3},{6868,52018,3},{6873,52003,3},{6877,52001,3},{6880,51989,3}, {6883,51986,3},{6883,52003,3},{6887,51979,3},{6888,51974,3},{6893,52013,3}, {6888,52019,3},{6890,52026,3},{6888,52038,3},{6888,52041,3},{6893,52051,3}, {6888,52068,3},{6885,52073,3},{6880,52073,3},{6875,52086,3},{6872,52089,3}, {6868,52104,3},{6870,52114,3},{6877,52106,3},{6880,52096,3},{6888,52088,3}, {6902,52074,3},{6910,52083,3},{6910,52103,3},{6915,52104,3},{6917,52113,3}, {6922,52114,3},{6927,52121,3},{6928,52146,3},{6933,52149,3},{6935,52161,3}, {6933,52161,3},{6933,52166,3},{6935,52169,3},{6937,52168,3},{6938,52168,3}, {6940,52181,3},{6940,52214,3},{6942,52218,3},{6945,52228,3},{6943,52231,3}, {6947,52231,3},{6952,52239,3},{6957,52241,3},{6960,52238,3},{6965,52246,3}, {6965,52258,3},{6963,52258,3},{6965,52273,3},{6963,52283,3},{6963,52294,3}, {6965,52301,3},{6968,52303,3},{6968,52299,3},{6965,52291,3},{6968,52294,3}, {6970,52291,3},{6967,52279,3},{6968,52274,3},{6973,52283,3},{6977,52309,3}, {6973,52288,3},{6972,52294,3},{6973,52308,3},{6972,52304,3},{6968,52323,3}, {6972,52326,3},{6973,52338,3},{6977,52344,3},{6977,52353,3},{6980,52359,3}, {6983,52359,3},{6987,52373,3},{6990,52394,3},{6992,52391,3},{6995,52394,3}, {6993,52413,3},{6988,52416,3},{6985,52414,3},{6982,52418,3},{6985,52421,3}, {6987,52418,3},{6988,52419,3},{6990,52423,3},{6988,52428,3},{7000,52436,3}, {7002,52443,3},{7003,52443,3},{7003,52434,3},{7010,52446,3},{7007,52446,3}, {7010,52456,3},{7010,52459,3},{7013,52461,3},{7012,52466,3},{7008,52463,3}, {7010,52471,3},{7013,52471,3},{7013,52478,3},{7017,52481,3},{7017,52489,3}, {7017,52484,3},{7010,52483,3},{7012,52488,3},{7013,52486,3},{7013,52494,3}, {7017,52496,3},{7013,52499,3},{7013,52504,3},{7010,52503,3},{7010,52508,3}, {7008,52503,3},{7008,52514,3},{7010,52519,3},{7005,52518,3},{7012,52526,3}, {7010,52529,3},{7007,52528,3},{7010,52543,3},{7007,52538,3},{7008,52546,3}, {7010,52551,3},{7015,52551,3},{7018,52558,3},{7020,52553,3},{7022,52558,3}, {7022,52563,3},{7025,52563,3},{7027,52569,3},{7018,52578,3},{7017,52573,3}, {7015,52589,3},{7012,52586,3},{7010,52589,3},{7013,52593,3},{7012,52596,3}, {7005,52589,3},{7005,52581,3},{7002,52586,3},{6990,52536,3},{6985,52516,3}, {6983,52511,3},{6985,52506,3},{6977,52488,3},{6978,52484,3},{6970,52478,3}, {6968,52458,3},{6960,52451,3},{6960,52448,3},{6957,52443,3},{6960,52433,3}, {6963,52433,3},{6963,52418,3},{6960,52411,3},{6960,52403,3},{6957,52403,3}, {6958,52394,3},{6957,52384,3},{6958,52371,3},{6953,52371,3},{6957,52363,3}, {6953,52348,3},{6953,52336,3},{6948,52328,3},{6945,52331,3},{6945,52326,3}, {6942,52326,3},{6942,52323,3},{6938,52328,3},{6937,52326,3},{6932,52303,3}, {6925,52304,3},{6930,52298,3},{6930,52291,3},{6925,52293,3},{6923,52288,3}, {6917,52288,3},{6928,52281,3},{6928,52274,3},{6925,52269,3},{6927,52264,3}, {6923,52258,3},{6922,52253,3},{6918,52253,3},{6912,52246,3},{6910,52248,3}, {6910,52253,3},{6907,52246,3},{6898,52248,3},{6900,52243,3},{6908,52243,3}, {6905,52236,3},{6907,52228,3},{6905,52224,3},{6903,52216,3},{6898,52216,3}, {6897,52211,3},{6895,52214,3},{6892,52213,3},{6887,52204,3},{6888,52196,3}, {6892,52199,3},{6888,52189,3},{6885,52193,3},{6885,52188,3},{6880,52189,3}, {6875,52204,3},{6873,52213,3},{6872,52216,3},{6868,52233,3},{6868,52244,3}, {6872,52243,3},{6872,52221,3},{6873,52219,3},{6875,52211,3},{6878,52209,3}, {6875,52219,3},{6877,52223,3},{6880,52211,3},{6878,52203,3},{6885,52198,3}, {6887,52213,3},{6885,52218,3},{6880,52226,3},{6880,52229,3},{6882,52231,3}, {6880,52243,3},{6885,52239,3},{6885,52251,3},{6878,52264,3},{6880,52266,3}, {6883,52263,3},{6880,52288,3},{6883,52289,3},{6883,52294,3},{6887,52296,3}, {6892,52281,3},{6890,52279,3},{6888,52286,3},{6890,52276,3},{6887,52271,3}, {6885,52273,3},{6883,52268,3},{6885,52258,3},{6887,52258,3},{6888,52266,3}, {6890,52256,3},{6892,52253,3},{6893,52258,3},{6893,52268,3},{6898,52251,3}, {6903,52249,3},{6903,52253,3},{6907,52249,3},{6908,52256,3},{6908,52269,3}, {6913,52279,3},{6913,52286,3},{6923,52294,3},{6915,52294,3},{6910,52289,3}, {6913,52298,3},{6923,52304,3},{6922,52308,3},{6918,52301,3},{6918,52304,3}, {6922,52316,3},{6913,52314,3},{6923,52319,3},{6923,52328,3},{6925,52339,3}, {6932,52344,3},{6932,52348,3},{6928,52344,3},{6928,52349,3},{6940,52364,3}, {6938,52356,3},{6937,52351,3},{6940,52348,3},{6940,52341,3},{6940,52339,3}, {6943,52349,3},{6942,52353,3},{6943,52359,3},{6942,52371,3},{6945,52368,3}, {6947,52371,3},{6943,52394,3},{6940,52388,3},{6935,52388,3},{6933,52383,3}, {6937,52394,3},{6942,52396,3},{6942,52401,3},{6945,52399,3},{6945,52403,3}, {6950,52404,3},{6940,52411,3},{6950,52409,3},{6950,52413,3},{6947,52413,3}, {6938,52414,3},{6937,52404,3},{6930,52394,3},{6932,52404,3},{6937,52411,3}, {6937,52416,3},{6938,52419,3},{6950,52419,3},{6958,52411,3},{6952,52421,3}, {6952,52424,3},{6937,52423,3},{6948,52429,3},{6952,52429,3},{6958,52416,3}, {6962,52423,3},{6960,52428,3},{6957,52426,3},{6947,52433,3},{6932,52424,3}, {6937,52433,3},{6947,52439,3},{6955,52438,3},{6953,52441,3},{6942,52443,3}, {6935,52431,3},{6932,52433,3},{6940,52443,3},{6938,52446,3},{6932,52444,3}, {6927,52436,3},{6913,52434,3},{6913,52444,3},{6917,52441,3},{6927,52441,3}, {6935,52456,3},{6937,52454,3},{6940,52459,3},{6940,52468,3},{6945,52471,3}, {6945,52461,3},{6958,52491,3},{6962,52491,3},{6968,52503,3},{6970,52499,3}, {6972,52521,3},{6975,52541,3},{6978,52568,3},{6982,52576,3},{6987,52626,3}, {6988,52633,3},{6995,52639,3},{6997,52644,3},{6995,52651,3},{6995,52646,3}, {6992,52646,3},{6988,52641,3},{6985,52643,3},{6985,52623,3},{6982,52619,3}, {6975,52623,3},{6970,52621,3},{6967,52638,3},{6968,52644,3},{6972,52639,3}, {6973,52639,3},{6975,52656,3},{6987,52676,3},{6993,52696,3},{6995,52704,3}, {7000,52706,3},{7010,52699,3},{7012,52701,3},{7018,52724,3},{7018,52739,3}, {7020,52749,3},{7022,52764,3},{7023,52774,3},{7022,52784,3},{7025,52776,3}, {7028,52733,3},{7037,52724,3},{7035,52739,3},{7037,52743,3},{7040,52744,3}, {7037,52733,3},{7037,52719,3},{7038,52716,3},{7052,52723,3},{7058,52736,3}, {7042,52789,3},{7027,52819,3},{7007,52844,3},{7002,52846,3},{6997,52859,3}, {6995,52856,3},{6993,52859,3},{6990,52854,3},{6977,52866,3},{6953,52911,3}, {6940,52946,3},{6938,52959,3},{6938,52969,3},{6935,52978,3},{6932,52993,3}, {6935,52999,3},{6937,52998,3},{6938,52991,3},{6942,52991,3},{6940,52991,3}, {6938,53016,3},{6938,53023,3},{6942,53024,3},{6943,53023,3},{6945,53028,3}, {6945,53021,3},{6947,53024,3},{6947,53013,3},{6945,53009,3},{6945,53006,3}, {6947,53006,3},{6945,53001,3},{6947,52993,3},{6942,52974,3},{6947,52978,3}, {6948,52981,3},{6947,52986,3},{6950,52984,3},{6952,52989,3},{6950,53003,3}, {6952,53003,3},{6952,53008,3},{6948,53024,3},{6953,53009,3},{6955,53006,3}, {6958,53014,3},{6962,52993,3},{6962,52999,3},{6963,52994,3},{6968,52999,3}, {6970,53014,3},{6975,53029,3},{6973,53039,3},{6965,53043,3},{6968,53049,3}, {6972,53049,3},{6972,53054,3},{6975,53046,3},{6975,53034,3},{6978,53021,3}, {6977,53013,3},{6980,53008,3},{6985,53018,3},{6980,53019,3},{6980,53031,3}, {6987,53034,3},{6993,53046,3},{6997,53064,3},{6998,53066,3},{6997,53069,3}, {6998,53073,3},{7002,53068,3},{6997,53061,3},{6998,53051,3},{7002,53056,3}, {7002,53053,3},{7002,53044,3},{7000,53044,3},{7000,53038,3},{6998,53031,3}, {6997,53031,3},{6997,53024,3},{6993,53024,3},{6993,53018,3},{6993,53014,3}, {6997,53018,3},{7000,53016,3},{7008,53036,3},{7007,53039,3},{7003,53036,3}, {7003,53031,3},{7002,53034,3},{7003,53049,3},{7003,53041,3},{7007,53053,3}, {7005,53056,3},{7007,53073,3},{7002,53078,3},{7002,53083,3},{7003,53081,3}, {7005,53083,3},{7003,53093,3},{7008,53091,3},{7008,53079,3},{7010,53086,3}, {7012,53081,3},{7008,53063,3},{7010,53068,3},{7012,53061,3},{7015,53066,3}, {7015,53081,3},{7015,53084,3},{7015,53096,3},{7012,53091,3},{7007,53101,3}, {7002,53098,3},{7000,53086,3},{7000,53094,3},{6998,53093,3},{6997,53083,3}, {6995,53093,3},{6992,53093,3},{6992,53086,3},{6990,53086,3},{6988,53091,3}, {6987,53091,3},{6985,53096,3},{6978,53086,3},{6973,53086,3},{6970,53106,3}, {6973,53116,3},{6972,53126,3},{6972,53129,3},{6970,53133,3},{6967,53131,3}, {6962,53116,3},{6955,53113,3},{6947,53094,3},{6942,53094,3},{6940,53084,3}, {6937,53089,3},{6935,53103,3},{6935,53126,3},{6938,53131,3},{6935,53133,3}, {6935,53138,3},{6938,53134,3},{6940,53138,3},{6937,53148,3},{6938,53153,3}, {6937,53156,3},{6938,53161,3},{6937,53166,3},{6935,53168,3},{6938,53188,3}, {6942,53198,3},{6945,53191,3},{6948,53196,3},{6950,53209,3},{6950,53211,3}, {6950,53219,3},{6957,53223,3},{6962,53219,3},{6967,53226,3},{6975,53224,3}, {6977,53221,3},{6983,53239,3},{6980,53256,3},{6980,53261,3},{6983,53261,3}, {6982,53266,3},{6980,53291,3},{6982,53303,3},{6980,53318,3},{6982,53329,3}, {6982,53343,3},{6980,53368,3},{6977,53378,3},{6977,53391,3},{6967,53428,3}, {6962,53453,3},{6952,53474,3},{6938,53513,3},{6935,53539,3},{6933,53558,3}, {6932,53573,3},{6930,53613,3},{6927,53629,3},{6925,53653,3},{6922,53671,3}, {6912,53691,3},{6908,53709,3},{6902,53733,3},{6898,53749,3},{6895,53798,3}, {6888,53821,3},{6890,53831,3},{6890,53839,3},{6893,53836,3},{6893,53838,3}, {6893,53843,3},{6888,53853,3},{6885,53886,3},{6887,53894,3},{6888,53898,3}, {6883,53914,3},{6880,53939,3},{6882,53941,3},{6887,53924,3},{6888,53928,3}, {6893,53908,3},{6897,53903,3},{6898,53913,3},{6897,53929,3},{6892,53949,3}, {6893,53953,3},{6893,53959,3},{6897,53951,3},{6900,53943,3},{6897,53966,3}, {6897,53976,3},{6890,54004,3},{6890,54013,3},{6885,54028,3},{6887,54029,3}, {6887,54038,3},{6880,54056,3},{6875,54063,3},{6873,54078,3},{6868,54091,3}, {6867,54089,3},{6862,54096,3},{6857,54118,3},{6853,54119,3},{6852,54126,3}, {6847,54129,3},{6843,54131,3},{6842,54123,3},{6840,54126,3},{6838,54131,3}, {6840,54136,3},{6843,54139,3},{6840,54146,3},{6838,54141,3},{6832,54131,3}, {6823,54134,3},{6825,54116,3},{6823,54109,3},{6823,54099,3},{6827,54091,3}, {6825,54066,3},{6825,54054,3},{6828,54039,3},{6823,54049,3},{6818,54061,3}, {6818,54053,3},{6815,54046,3},{6818,54013,3},{6813,54019,3},{6808,54013,3}, {6803,54013,3},{6802,54024,3},{6798,54016,3},{6793,53983,3},{6790,53983,3}, {6788,53984,3},{6788,53996,3},{6788,54011,3},{6787,54008,3},{6782,54018,3}, {6782,54024,3},{6780,54026,3},{6778,54034,3},{6780,54044,3},{6782,54061,3}, {6780,54069,3},{6777,54078,3},{6778,54083,3},{6775,54091,3},{6772,54108,3}, {6773,54118,3},{6772,54139,3},{6768,54151,3},{6770,54214,3},{6767,54231,3}, {6768,54251,3},{6767,54264,3},{6768,54298,3},{6770,54303,3},{6773,54299,3}, {6773,54303,3},{6773,54316,3},{6773,54336,3},{6770,54338,3},{6768,54346,3}, {6770,54349,3},{6772,54343,3},{6773,54346,3},{6775,54344,3},{6775,54356,3}, {6772,54383,3},{6775,54379,3},{6777,54383,3},{6777,54389,3},{6773,54389,3}, {6775,54396,3},{6780,54404,3},{6783,54418,3},{6783,54421,3},{6780,54416,3}, {6778,54419,3},{6775,54416,3},{6778,54428,3},{6777,54433,3},{6780,54453,3}, {6787,54463,3},{6788,54471,3},{6788,54479,3},{6795,54496,3},{6795,54503,3}, {6797,54503,3},{6795,54513,3},{6792,54518,3},{6792,54523,3},{6797,54516,3}, {6800,54519,3},{6800,54528,3},{6795,54539,3},{6787,54536,3},{6783,54538,3}, {6783,54544,3},{6788,54543,3},{6787,54554,3},{6780,54566,3},{6778,54561,3}, {6773,54574,3},{6773,54561,3},{6772,54563,3},{6768,54583,3},{6770,54588,3}, {6772,54586,3},{6773,54586,3},{6777,54596,3},{6773,54596,3},{6773,54601,3}, {6772,54629,3},{6767,54636,3},{6757,54639,3},{6753,54644,3},{6750,54634,3}, {6747,54634,3},{6743,54638,3},{6743,54643,3},{6740,54643,3},{6742,54649,3}, {6735,54654,3},{6737,54658,3},{6745,54661,3},{6760,54663,3},{6763,54668,3}, {6762,54674,3},{6760,54678,3},{6758,54678,3},{6748,54684,3},{6735,54688,3}, {6735,54693,3},{6743,54693,3},{6745,54696,3},{6743,54701,3},{6740,54706,3}, {6730,54734,3},{6713,54749,3},{6713,54744,3},{6705,54748,3},{6708,54733,3}, {6707,54728,3},{6708,54721,3},{6702,54714,3},{6705,54703,3},{6708,54689,3}, {6715,54676,3},{6705,54683,3},{6703,54686,3},{6703,54688,3},{6707,54689,3}, {6703,54694,3},{6698,54703,3},{6695,54721,3},{6692,54724,3},{6687,54724,3}, {6685,54713,3},{6683,54719,3},{6685,54729,3},{6683,54738,3},{6678,54743,3}, {6672,54741,3},{6667,54748,3},{6673,54751,3},{6677,54748,3},{6675,54753,3}, {6665,54768,3},{6663,54764,3},{6657,54771,3},{6653,54781,3},{6655,54783,3}, {6655,54784,3},{6647,54791,3},{6643,54801,3},{6635,54811,3},{6637,54816,3}, {6640,54813,3},{6650,54794,3},{6655,54791,3},{6658,54779,3},{6670,54771,3}, {6677,54756,3},{6675,54764,3},{6677,54768,3},{6695,54759,3},{6702,54761,3}, {6697,54773,3},{6697,54776,3},{6708,54771,3},{6702,54784,3},{6692,54788,3}, {6693,54776,3},{6695,54769,3},{6693,54766,3},{6688,54773,3},{6687,54776,3}, {6690,54778,3},{6687,54783,3},{6683,54779,3},{6682,54784,3},{6685,54788,3}, {6683,54789,3},{6680,54793,3},{6682,54794,3},{6688,54788,3},{6688,54796,3}, {6697,54791,3},{6697,54794,3},{6688,54814,3},{6682,54823,3},{6682,54828,3}, {6697,54813,3},{6703,54796,3},{6707,54801,3},{6707,54811,3},{6710,54811,3}, {6712,54816,3},{6712,54806,3},{6715,54798,3},{6720,54786,3},{6732,54776,3}, {6742,54764,3},{6743,54764,3},{6740,54771,3},{6742,54773,3},{6750,54778,3}, {6770,54736,3},{6777,54734,3},{6785,54743,3},{6790,54766,3},{6793,54771,3}, {6797,54759,3},{6795,54756,3},{6798,54753,3},{6798,54744,3},{6808,54748,3}, {6810,54751,3},{6808,54756,3},{6807,54766,3},{6805,54763,3},{6805,54754,3}, {6803,54756,3},{6803,54763,3},{6802,54753,3},{6798,54758,3},{6798,54763,3}, {6802,54763,3},{6805,54768,3},{6807,54778,3},{6805,54801,3},{6813,54821,3}, {6813,54824,3},{6808,54824,3},{6810,54834,3},{6808,54839,3},{6812,54841,3}, {6810,54859,3},{6815,54861,3},{6822,54856,3},{6822,54858,3},{6822,54861,3}, {6822,54868,3},{6820,54866,3},{6817,54871,3},{6822,54873,3},{6825,54874,3}, {6818,54889,3},{6815,54893,3},{6818,54896,3},{6818,54901,3},{6823,54886,3}, {6830,54894,3},{6833,54889,3},{6835,54893,3},{6835,54903,3},{6840,54914,3}, {6837,54924,3},{6840,54931,3},{6840,54938,3},{6842,54939,3},{6840,54944,3}, {6842,54951,3},{6845,54954,3},{6842,54958,3},{6842,54963,3},{6848,54966,3}, {6855,54959,3},{6863,54971,3},{6863,54963,3},{6862,54958,3},{6863,54948,3}, {6862,54933,3},{6860,54929,3},{6852,54881,3},{6852,54894,3},{6850,54881,3}, {6847,54886,3},{6845,54883,3},{6847,54878,3},{6847,54873,3},{6842,54876,3}, {6842,54886,3},{6840,54888,3},{6835,54879,3},{6830,54883,3},{6828,54881,3}, {6830,54876,3},{6835,54871,3},{6835,54864,3},{6837,54864,3},{6842,54856,3}, {6837,54856,3},{6838,54843,3},{6837,54834,3},{6833,54833,3},{6830,54823,3}, {6827,54823,3},{6827,54809,3},{6832,54803,3},{6832,54788,3},{6835,54779,3}, {6833,54763,3},{6833,54753,3},{6827,54748,3},{6823,54761,3},{6820,54763,3}, {6818,54774,3},{6817,54776,3},{6818,54758,3},{6817,54749,3},{6815,54746,3}, {6815,54734,3},{6817,54738,3},{6817,54736,3},{6817,54716,3},{6812,54699,3}, {6813,54693,3},{6817,54696,3},{6817,54699,3},{6813,54699,3},{6817,54703,3}, {6823,54701,3},{6822,54696,3},{6818,54696,3},{6818,54691,3},{6828,54696,3}, {6830,54691,3},{6830,54686,3},{6825,54678,3},{6825,54666,3},{6823,54664,3}, {6827,54654,3},{6830,54663,3},{6835,54663,3},{6840,54678,3},{6860,54701,3}, {6862,54708,3},{6865,54761,3},{6868,54783,3},{6870,54806,3},{6873,54818,3}, {6882,54854,3},{6882,54871,3},{6885,54878,3},{6890,54909,3},{6893,54914,3}, {6888,54941,3},{6888,54956,3},{6872,54989,3},{6865,54981,3},{6852,54996,3}, {6852,55003,3},{6847,55004,3},{6850,54994,3},{6847,54989,3},{6845,54983,3}, {6842,54983,3},{6842,55003,3},{6837,55001,3},{6833,55006,3},{6825,55031,3}, {6827,55036,3},{6830,55028,3},{6832,55036,3},{6832,55043,3},{6835,55046,3}, {6830,55053,3},{6827,55049,3},{6825,55041,3},{6823,55043,3},{6822,55046,3}, {6823,55051,3},{6827,55054,3},{6825,55056,3},{6823,55076,3},{6813,55069,3}, {6813,55076,3},{6808,55076,3},{6807,55086,3},{6803,55086,3},{6803,55099,3}, {6805,55106,3},{6802,55119,3},{6805,55136,3},{6802,55149,3},{6803,55161,3}, {6807,55166,3},{6805,55176,3},{6807,55181,3},{6812,55181,3},{6817,55194,3}, {6812,55203,3},{6808,55198,3},{6803,55199,3},{6800,55199,3},{6800,55206,3}, {6797,55211,3},{6795,55223,3},{6792,55226,3},{6793,55239,3},{6782,55256,3}, {6778,55289,3},{6773,55303,3},{6772,55304,3},{6773,55311,3},{6768,55313,3}, {6770,55316,3},{6773,55314,3},{6777,55321,3},{6775,55331,3},{6777,55338,3}, {6778,55338,3},{6778,55343,3},{6775,55344,3},{6775,55351,3},{6770,55354,3}, {6773,55361,3},{6768,55369,3},{6768,55381,3},{6770,55388,3},{6770,55396,3}, {6772,55391,3},{6773,55391,3},{6772,55398,3},{6773,55403,3},{6772,55411,3}, {6777,55413,3},{6775,55418,3},{6778,55426,3},{6778,55428,3},{6773,55426,3}, {6775,55446,3},{6777,55446,3},{6782,55444,3},{6782,55449,3},{6778,55453,3}, {6782,55458,3},{6782,55464,3},{6785,55466,3},{6783,55473,3},{6783,55478,3}, {6780,55478,3},{6785,55496,3},{6785,55518,3},{6782,55528,3},{6782,55544,3}, {6780,55554,3},{6782,55558,3},{6782,55568,3},{6778,55573,3},{6780,55578,3}, {6780,55586,3},{6777,55588,3},{6780,55591,3},{6777,55598,3},{6777,55606,3}, {6770,55614,3},{6773,55624,3},{6772,55638,3},{6770,55643,3},{6775,55646,3}, {6775,55663,3},{6780,55666,3},{6778,55676,3},{6780,55701,3},{6787,55691,3}, {6787,55683,3},{6795,55664,3},{6807,55663,3},{6807,55673,3},{6810,55678,3}, {6790,55713,3},{6775,55728,3},{6775,55738,3},{6770,55743,3},{6768,55756,3}, {6765,55763,3},{6763,55771,3},{6760,55779,3},{6762,55796,3},{6767,55808,3}, {6762,55816,3},{6767,55818,3},{6767,55829,3},{6772,55821,3},{6772,55814,3}, {6778,55824,3},{6793,55813,3},{6788,55808,3},{6787,55799,3},{6788,55794,3}, {6793,55789,3},{6802,55768,3},{6797,55764,3},{6798,55759,3},{6797,55751,3}, {6795,55744,3},{6792,55741,3},{6795,55734,3},{6792,55731,3},{6783,55729,3}, {6787,55718,3},{6792,55714,3},{6800,55696,3},{6807,55691,3},{6813,55678,3}, {6815,55678,3},{6813,55683,3},{6818,55689,3},{6813,55693,3},{6810,55693,3}, {6808,55696,3},{6810,55703,3},{6817,55704,3},{6818,55698,3},{6820,55686,3}, {6823,55681,3},{6823,55688,3},{6825,55688,3},{6830,55676,3},{6837,55664,3}, {6837,55676,3},{6833,55684,3},{6837,55683,3},{6835,55688,3},{6837,55689,3}, {6840,55683,3},{6842,55683,3},{6837,55694,3},{6837,55699,3},{6830,55716,3}, {6833,55721,3},{6832,55729,3},{6837,55726,3},{6833,55744,3},{6838,55746,3}, {6837,55759,3},{6837,55761,3},{6840,55758,3},{6842,55746,3},{6845,55746,3}, {6850,55734,3},{6853,55736,3},{6853,55746,3},{6855,55751,3},{6852,55766,3}, {6845,55773,3},{6842,55783,3},{6842,55786,3},{6845,55784,3},{6845,55774,3}, {6850,55779,3},{6850,55798,3},{6847,55808,3},{6843,55814,3},{6838,55826,3}, {6838,55819,3},{6837,55819,3},{6835,55836,3},{6828,55836,3},{6830,55831,3}, {6828,55828,3},{6827,55828,3},{6827,55834,3},{6823,55844,3},{6827,55856,3}, {6828,55856,3},{6828,55869,3},{6827,55869,3},{6825,55874,3},{6822,55866,3}, {6818,55873,3},{6825,55874,3},{6832,55894,3},{6827,55889,3},{6820,55884,3}, {6813,55873,3},{6812,55874,3},{6810,55868,3},{6808,55868,3},{6807,55856,3}, {6803,55854,3},{6802,55859,3},{6802,55868,3},{6805,55871,3},{6807,55874,3}, {6803,55883,3},{6803,55891,3},{6808,55888,3},{6808,55881,3},{6815,55889,3}, {6820,55906,3},{6825,55936,3},{6830,55946,3},{6815,55928,3},{6810,55934,3}, {6782,55914,3},{6773,55918,3},{6770,55914,3},{6768,55916,3},{6770,55919,3}, {6762,55918,3},{6763,55909,3},{6770,55904,3},{6760,55903,3},{6757,55898,3}, {6755,55889,3},{6753,55893,3},{6747,55889,3},{6750,55894,3},{6747,55899,3}, {6745,55898,3},{6743,55903,3},{6745,55906,3},{6742,55916,3},{6743,55919,3}, {6747,55926,3},{6743,55929,3},{6733,55919,3},{6732,55913,3},{6725,55911,3}, {6725,55921,3},{6725,55923,3},{6722,55924,3},{6725,55934,3},{6728,55943,3}, {6728,55946,3},{6738,55963,3},{6733,55968,3},{6733,55973,3},{6738,55976,3}, {6735,55984,3},{6730,55979,3},{6717,55953,3},{6718,55961,3},{6723,55971,3}, {6720,55971,3},{6722,55981,3},{6720,55988,3},{6713,55989,3},{6715,55993,3}, {6720,55993,3},{6715,55998,3},{6712,55999,3},{6707,55994,3},{6703,56003,3}, {6697,56001,3},{6693,55983,3},{6695,55973,3},{6698,55976,3},{6698,55974,3}, {6695,55953,3},{6695,55943,3},{6700,55941,3},{6702,55936,3},{6707,55941,3}, {6702,55931,3},{6697,55934,3},{6695,55924,3},{6697,55921,3},{6698,55924,3}, {6698,55923,3},{6698,55918,3},{6700,55908,3},{6705,55909,3},{6707,55906,3}, {6707,55899,3},{6708,55898,3},{6707,55891,3},{6703,55894,3},{6700,55896,3}, {6697,55908,3},{6692,55913,3},{6690,55921,3},{6683,55926,3},{6675,55951,3}, {6665,55958,3},{6658,55954,3},{6665,55964,3},{6668,55973,3},{6673,55971,3}, {6673,55968,3},{6670,55969,3},{6667,55964,3},{6668,55959,3},{6673,55958,3}, {6682,55946,3},{6685,55936,3},{6690,55928,3},{6693,55928,3},{6695,55934,3}, {6692,55948,3},{6693,55953,3},{6693,55959,3},{6690,55964,3},{6692,55976,3}, {6690,55984,3},{6693,55993,3},{6693,55994,3},{6688,56004,3},{6693,56011,3}, {6697,56014,3},{6698,56013,3},{6700,56006,3},{6703,56008,3},{6707,56001,3}, {6710,56004,3},{6715,56001,3},{6722,56009,3},{6727,56011,3},{6727,56018,3}, {6728,56019,3},{6735,56003,3},{6743,55998,3},{6745,55994,3},{6750,56003,3}, {6753,56004,3},{6763,55989,3},{6765,55981,3},{6768,55978,3},{6770,55966,3}, {6773,55964,3},{6778,55973,3},{6778,55978,3},{6782,55983,3},{6787,55983,3}, {6790,55978,3},{6802,55994,3},{6805,55993,3},{6807,55989,3},{6807,56001,3}, {6807,56008,3},{6808,56011,3},{6808,56014,3},{6805,56013,3},{6803,56009,3}, {6807,56018,3},{6808,56026,3},{6805,56034,3},{6803,56049,3},{6807,56064,3}, {6810,56066,3},{6815,56078,3},{6827,56116,3},{6837,56114,3},{6842,56124,3}, {6847,56139,3},{6852,56169,3},{6855,56176,3},{6855,56181,3},{6860,56183,3}, {6863,56199,3},{6862,56179,3},{6863,56171,3},{6862,56161,3},{6872,56169,3}, {6875,56166,3},{6877,56173,3},{6880,56173,3},{6885,56179,3},{6890,56171,3}, {6897,56171,3},{6897,56163,3},{6897,56149,3},{6900,56153,3},{6900,56146,3}, {6907,56156,3},{6903,56143,3},{6903,56146,3},{6900,56141,3},{6897,56143,3}, {6890,56129,3},{6887,56129,3},{6887,56133,3},{6885,56128,3},{6883,56133,3}, {6885,56138,3},{6888,56143,3},{6885,56143,3},{6888,56154,3},{6877,56128,3}, {6875,56114,3},{6875,56111,3},{6872,56094,3},{6873,56089,3},{6872,56084,3}, {6875,56079,3},{6875,56073,3},{6888,56081,3},{6890,56078,3},{6892,56079,3}, {6897,56076,3},{6897,56083,3},{6897,56088,3},{6893,56089,3},{6897,56096,3}, {6902,56101,3},{6903,56106,3},{6903,56114,3},{6905,56121,3},{6908,56118,3}, {6910,56119,3},{6915,56136,3},{6912,56113,3},{6915,56103,3},{6925,56106,3}, {6927,56109,3},{6930,56104,3},{6932,56108,3},{6937,56134,3},{6935,56146,3}, {6935,56148,3},{6935,56156,3},{6940,56161,3},{6945,56179,3},{6943,56183,3}, {6932,56161,3},{6932,56156,3},{6925,56148,3},{6927,56154,3},{6922,56148,3}, {6922,56149,3},{6922,56154,3},{6918,56151,3},{6917,56153,3},{6925,56173,3}, {6928,56176,3},{6932,56189,3},{6935,56193,3},{6938,56199,3},{6935,56186,3}, {6937,56183,3},{6937,56178,3},{6948,56193,3},{6953,56178,3},{6952,56164,3}, {6948,56158,3},{6948,56154,3},{6948,56151,3},{6943,56146,3},{6943,56121,3}, {6945,56106,3},{6948,56099,3},{6955,56086,3},{6965,56079,3},{6963,56073,3}, {6968,56073,3},{6967,56061,3},{6962,56063,3},{6957,56053,3},{6958,56041,3}, {6960,56039,3},{6960,56036,3},{6962,56034,3},{6962,56026,3},{6962,56021,3}, {6968,56001,3},{6968,55996,3},{6973,55978,3},{6978,55971,3},{6978,55963,3}, {6973,55958,3},{6977,55953,3},{6978,55954,3},{6978,55958,3},{6980,55956,3}, {6980,55951,3},{6977,55949,3},{6980,55943,3},{6978,55939,3},{6980,55936,3}, {6983,55929,3},{6987,55916,3},{6988,55921,3},{6987,55924,3},{6987,55928,3}, {6990,55924,3},{6992,55928,3},{6992,55924,3},{6995,55926,3},{6997,55918,3}, {6997,55911,3},{7013,55883,3},{7023,55879,3},{7032,55881,3},{7042,55893,3}, {7042,55903,3},{7048,55904,3},{7057,55911,3},{7053,55918,3},{7053,55921,3}, {7057,55923,3},{7058,55929,3},{7055,55944,3},{7053,55956,3},{7053,55958,3}, {7055,55956,3},{7058,55938,3},{7062,55929,3},{7065,55931,3},{7072,55954,3}, {7070,55946,3},{7065,55924,3},{7062,55919,3},{7068,55898,3},{7072,55894,3}, {7073,55893,3},{7080,55874,3},{7095,55884,3},{7103,55886,3},{7105,55894,3}, {7108,55899,3},{7112,55894,3},{7108,55894,3},{7108,55888,3},{7113,55879,3}, {7117,55891,3},{7115,55898,3},{7120,55889,3},{7125,55893,3},{7128,55886,3}, {7130,55893,3},{7130,55906,3},{7138,55916,3},{7142,55931,3},{7138,55946,3}, {7135,55949,3},{7128,55969,3},{7128,55983,3},{7132,55984,3},{7135,55978,3}, {7135,55988,3},{7137,55993,3},{7143,55981,3},{7152,55998,3},{7148,55986,3}, {7152,55954,3},{7155,55941,3},{7158,55948,3},{7162,55946,3},{7163,55964,3}, {7167,55969,3},{7167,55974,3},{7172,55986,3},{7172,56009,3},{7177,56008,3}, {7183,56013,3},{7185,56048,3},{7183,56064,3},{7187,56074,3},{7183,56061,3}, {7185,56049,3},{7183,56016,3},{7187,56011,3},{7195,56014,3},{7198,56041,3}, {7200,56079,3},{7198,56088,3},{7195,56088,3},{7195,56096,3},{7192,56098,3}, {7190,56086,3},{7188,56091,3},{7185,56089,3},{7185,56079,3},{7182,56071,3}, {7178,56076,3},{7175,56074,3},{7175,56083,3},{7182,56088,3},{7178,56091,3}, {7182,56096,3},{7180,56101,3},{7175,56096,3},{7167,56094,3},{7178,56116,3}, {7175,56121,3},{7178,56133,3},{7175,56139,3},{7175,56148,3},{7178,56156,3}, {7177,56163,3},{7175,56166,3},{7172,56166,3},{7165,56154,3},{7157,56174,3}, {7153,56194,3},{7150,56199,3},{7147,56213,3},{7137,56221,3},{7137,56231,3}, {7133,56239,3},{7132,56236,3},{7128,56243,3},{7122,56243,3},{7115,56251,3}, {7107,56248,3},{7103,56251,3},{7090,56246,3},{7085,56251,3},{7083,56241,3}, {7085,56239,3},{7088,56233,3},{7087,56233,3},{7082,56241,3},{7080,56254,3}, {7077,56268,3},{7075,56268,3},{7073,56271,3},{7072,56264,3},{7072,56273,3}, {7067,56268,3},{7067,56293,3},{7063,56303,3},{7062,56306,3},{7058,56303,3}, {7057,56306,3},{7062,56311,3},{7058,56319,3},{7057,56319,3},{7057,56311,3}, {7055,56309,3},{7050,56318,3},{7048,56308,3},{7047,56321,3},{7047,56324,3}, {7043,56323,3},{7043,56329,3},{7040,56333,3},{7038,56336,3},{7032,56336,3}, {7030,56328,3},{7030,56336,3},{7028,56336,3},{7025,56341,3},{7030,56344,3}, {7030,56349,3},{7035,56346,3},{7037,56351,3},{7033,56358,3},{7037,56363,3}, {7035,56366,3},{7032,56368,3},{7030,56363,3},{7020,56366,3},{7023,56373,3}, {7017,56384,3},{7015,56384,3},{7013,56376,3},{7013,56354,3},{7012,56341,3}, {7013,56333,3},{7017,56323,3},{7018,56313,3},{7025,56308,3},{7023,56306,3}, {7023,56299,3},{7022,56309,3},{7018,56308,3},{7017,56288,3},{7017,56294,3}, {7015,56298,3},{7013,56293,3},{7008,56288,3},{7008,56278,3},{7007,56284,3}, {7005,56288,3},{7008,56293,3},{7008,56309,3},{7008,56328,3},{7005,56336,3}, {7002,56343,3},{6998,56333,3},{6998,56329,3},{6990,56314,3},{6990,56309,3}, {6988,56311,3},{6983,56293,3},{6982,56289,3},{6980,56281,3},{6977,56279,3}, {6977,56274,3},{6978,56271,3},{6977,56271,3},{6970,56249,3},{6970,56283,3}, {6970,56269,3},{6967,56263,3},{6968,56251,3},{6968,56244,3},{6967,56244,3}, {6965,56269,3},{6967,56273,3},{6970,56286,3},{6968,56296,3},{6970,56299,3}, {6970,56303,3},{6967,56299,3},{6967,56308,3},{6963,56318,3},{6962,56328,3}, {6963,56306,3},{6955,56324,3},{6953,56336,3},{6948,56356,3},{6952,56356,3}, {6953,56364,3},{6955,56363,3},{6955,56371,3},{6958,56378,3},{6962,56376,3}, {6965,56386,3},{6967,56388,3},{6967,56399,3},{6965,56403,3},{6965,56408,3}, {6963,56411,3},{6965,56416,3},{6965,56419,3},{6963,56419,3},{6963,56426,3}, {6962,56426,3},{6962,56414,3},{6955,56403,3},{6953,56384,3},{6952,56379,3}, {6950,56381,3},{6953,56389,3},{6952,56403,3},{6953,56404,3},{6957,56416,3}, {6952,56426,3},{6953,56436,3},{6952,56439,3},{6953,56448,3},{6948,56448,3}, {6948,56461,3},{6953,56464,3},{6950,56488,3},{6945,56499,3},{6945,56506,3}, {6943,56496,3},{6945,56489,3},{6942,56481,3},{6943,56474,3},{6945,56474,3}, {6945,56466,3},{6942,56473,3},{6942,56478,3},{6938,56466,3},{6940,56463,3}, {6937,56456,3},{6925,56454,3},{6925,56443,3},{6927,56446,3},{6927,56439,3}, {6930,56444,3},{6927,56429,3},{6928,56426,3},{6930,56436,3},{6935,56441,3}, {6930,56428,3},{6928,56416,3},{6935,56391,3},{6923,56426,3},{6922,56434,3}, {6915,56446,3},{6908,56469,3},{6900,56464,3},{6898,56476,3},{6893,56478,3}, {6892,56473,3},{6892,56483,3},{6887,56493,3},{6885,56488,3},{6885,56494,3}, {6883,56493,3},{6883,56483,3},{6880,56476,3},{6882,56493,3},{6880,56489,3}, {6878,56491,3},{6878,56484,3},{6875,56483,3},{6870,56488,3},{6867,56486,3}, {6862,56479,3},{6860,56486,3},{6857,56483,3},{6853,56489,3},{6845,56476,3}, {6842,56481,3},{6837,56504,3},{6833,56488,3},{6835,56501,3},{6833,56504,3}, {6830,56504,3},{6823,56511,3},{6823,56516,3},{6825,56524,3},{6832,56519,3}, {6835,56533,3},{6840,56538,3},{6843,56536,3},{6845,56546,3},{6847,56544,3}, {6848,56549,3},{6853,56553,3},{6853,56556,3},{6855,56544,3},{6860,56541,3}, {6867,56546,3},{6867,56553,3},{6872,56556,3},{6867,56561,3},{6862,56559,3}, {6865,56564,3},{6870,56563,3},{6882,56568,3},{6883,56563,3},{6885,56564,3}, {6895,56561,3},{6902,56566,3},{6912,56588,3},{6918,56596,3},{6922,56598,3}, {6925,56604,3},{6928,56623,3},{6923,56641,3},{6915,56649,3},{6910,56658,3}, {6892,56716,3},{6877,56739,3},{6865,56744,3},{6860,56741,3},{6848,56748,3}, {6847,56753,3},{6843,56753,3},{6840,56758,3},{6833,56758,3},{6825,56751,3}, {6820,56743,3},{6823,56736,3},{6823,56719,3},{6837,56716,3},{6832,56706,3}, {6828,56696,3},{6812,56708,3},{6807,56703,3},{6805,56703,3},{6803,56698,3}, {6780,56709,3},{6773,56719,3},{6768,56719,3},{6765,56724,3},{6762,56739,3}, {6740,56776,3},{6737,56788,3},{6727,56791,3},{6727,56801,3},{6725,56799,3}, {6718,56786,3},{6712,56784,3},{6717,56793,3},{6718,56799,3},{6717,56804,3}, {6710,56806,3},{6712,56808,3},{6722,56813,3},{6722,56818,3},{6723,56819,3}, {6722,56824,3},{6718,56824,3},{6722,56829,3},{6725,56831,3},{6723,56836,3}, {6725,56839,3},{6728,56836,3},{6730,56836,3},{6732,56831,3},{6735,56828,3}, {6735,56834,3},{6732,56839,3},{6735,56839,3},{6740,56849,3},{6742,56856,3}, {6742,56859,3},{6735,56871,3},{6740,56874,3},{6740,56876,3},{6735,56876,3}, {6735,56884,3},{6743,56883,3},{6747,56889,3},{6750,56886,3},{6760,56891,3}, {6768,56884,3},{6783,56899,3},{6795,56923,3},{6802,56923,3},{6802,56926,3}, {6798,56926,3},{6805,56946,3},{6810,56944,3},{6813,56951,3},{6818,56948,3}, {6818,56953,3},{6822,56958,3},{6823,56951,3},{6830,56956,3},{6832,56951,3}, {6833,56958,3},{6840,56964,3},{6843,56961,3},{6845,56969,3},{6847,56961,3}, {6850,56964,3},{6862,56961,3},{6873,56969,3},{6875,56973,3},{6873,56981,3}, {6873,56988,3},{6877,56989,3},{6878,56979,3},{6878,56984,3},{6877,56999,3}, {6873,56998,3},{6872,57013,3},{6872,57014,3},{6875,57009,3},{6875,57013,3}, {6875,57023,3},{6875,57041,3},{6873,57058,3},{6877,57061,3},{6882,57053,3}, {6880,57036,3},{6882,57028,3},{6883,57019,3},{6887,57018,3},{6888,57036,3}, {6890,57029,3},{6893,57036,3},{6893,57024,3},{6895,57023,3},{6895,57039,3}, {6893,57054,3},{6895,57056,3},{6898,57043,3},{6900,57038,3},{6902,57041,3}, {6900,57051,3},{6902,57051,3},{6903,57054,3},{6902,57059,3},{6900,57078,3}, {6902,57083,3},{6903,57063,3},{6908,57059,3},{6907,57048,3},{6908,57041,3}, {6912,57039,3},{6912,57034,3},{6913,57039,3},{6915,57036,3},{6912,57024,3}, {6915,57026,3},{6917,57036,3},{6917,57019,3},{6915,57018,3},{6913,57014,3}, {6915,57006,3},{6917,57006,3},{6918,57016,3},{6920,56998,3},{6922,56998,3}, {6927,56989,3},{6932,56986,3},{6930,56996,3},{6932,57003,3},{6933,56991,3}, {6937,56993,3},{6940,56986,3},{6942,56989,3},{6942,56998,3},{6945,56994,3}, {6943,57003,3},{6947,56996,3},{6947,56993,3},{6943,56988,3},{6945,56983,3}, {6952,56983,3},{6955,56989,3},{6957,56988,3},{6957,56998,3},{6963,56983,3}, {6965,56981,3},{6970,56993,3},{6973,56993,3},{6977,56984,3},{6978,56994,3}, {6978,56998,3},{6975,56996,3},{6978,57003,3},{6982,56999,3},{6983,56978,3}, {6987,56979,3},{6985,56999,3},{6977,57029,3},{6980,57031,3},{6982,57049,3}, {6985,57048,3},{6983,57061,3},{6987,57081,3},{6985,57101,3},{6983,57108,3}, {6982,57123,3},{6978,57126,3},{6975,57139,3},{6970,57163,3},{6968,57201,3}, {6970,57211,3},{6968,57236,3},{6968,57243,3},{6968,57269,3},{6970,57268,3}, {6968,57278,3},{6965,57286,3},{6963,57309,3},{6962,57296,3},{6963,57289,3}, {6965,57278,3},{6963,57274,3},{6962,57276,3},{6962,57271,3},{6958,57281,3}, {6958,57261,3},{6957,57274,3},{6950,57288,3},{6952,57273,3},{6952,57238,3}, {6955,57213,3},{6953,57206,3},{6950,57258,3},{6940,57313,3},{6938,57313,3}, {6938,57306,3},{6940,57298,3},{6930,57321,3},{6928,57321,3},{6928,57311,3}, {6927,57313,3},{6925,57308,3},{6923,57311,3},{6925,57333,3},{6927,57331,3}, {6927,57336,3},{6927,57366,3},{6923,57376,3},{6920,57386,3},{6920,57394,3}, {6920,57399,3},{6918,57403,3},{6908,57409,3},{6907,57389,3},{6900,57379,3}, {6898,57374,3},{6898,57368,3},{6895,57364,3},{6890,57338,3},{6887,57331,3}, {6892,57354,3},{6890,57358,3},{6890,57369,3},{6887,57376,3},{6883,57379,3}, {6887,57388,3},{6888,57394,3},{6887,57398,3},{6877,57413,3},{6875,57409,3}, {6863,57409,3},{6850,57373,3},{6852,57354,3},{6847,57353,3},{6845,57344,3}, {6842,57339,3},{6843,57334,3},{6850,57328,3},{6853,57311,3},{6852,57311,3}, {6848,57318,3},{6845,57314,3},{6848,57291,3},{6853,57281,3},{6852,57274,3}, {6850,57273,3},{6848,57278,3},{6845,57288,3},{6843,57281,3},{6843,57271,3}, {6840,57273,3},{6840,57286,3},{6835,57301,3},{6832,57301,3},{6832,57288,3}, {6830,57288,3},{6827,57298,3},{6828,57309,3},{6823,57309,3},{6817,57301,3}, {6815,57304,3},{6812,57318,3},{6815,57326,3},{6822,57331,3},{6820,57338,3}, {6812,57333,3},{6810,57324,3},{6808,57328,3},{6800,57319,3},{6790,57326,3}, {6785,57339,3},{6782,57343,3},{6780,57356,3},{6778,57353,3},{6777,57353,3}, {6773,57366,3},{6767,57376,3},{6762,57393,3},{6747,57411,3},{6743,57413,3}, {6738,57406,3},{6730,57401,3},{6708,57394,3},{6707,57393,3},{6705,57386,3}, {6700,57386,3},{6698,57383,3},{6700,57374,3},{6700,57371,3},{6697,57364,3}, {6700,57353,3},{6697,57338,3},{6692,57331,3},{6690,57334,3},{6685,57328,3}, {6683,57328,3},{6677,57318,3},{6672,57321,3},{6673,57301,3},{6672,57298,3}, {6670,57298,3},{6667,57289,3},{6665,57288,3},{6662,57281,3},{6657,57276,3}, {6655,57234,3},{6650,57234,3},{6647,57231,3},{6647,57224,3},{6640,57213,3}, {6635,57196,3},{6635,57186,3},{6635,57178,3},{6637,57179,3},{6640,57171,3}, {6643,57173,3},{6643,57176,3},{6638,57181,3},{6640,57183,3},{6648,57171,3}, {6652,57169,3},{6655,57151,3},{6660,57146,3},{6657,57141,3},{6658,57138,3}, {6670,57134,3},{6670,57138,3},{6670,57144,3},{6665,57146,3},{6668,57151,3}, {6672,57141,3},{6677,57141,3},{6677,57144,3},{6682,57148,3},{6688,57144,3}, {6682,57141,3},{6678,57131,3},{6677,57133,3},{6675,57126,3},{6672,57126,3}, {6670,57123,3},{6673,57106,3},{6675,57104,3},{6678,57109,3},{6680,57096,3}, {6682,57093,3},{6683,57113,3},{6687,57098,3},{6690,57094,3},{6692,57098,3}, {6693,57088,3},{6698,57078,3},{6697,57094,3},{6697,57099,3},{6703,57053,3}, {6707,57044,3},{6705,57043,3},{6703,57046,3},{6703,57043,3},{6700,57053,3}, {6698,57049,3},{6700,57058,3},{6698,57073,3},{6697,57031,3},{6692,57014,3}, {6690,57021,3},{6687,57013,3},{6683,57024,3},{6685,57029,3},{6685,57041,3}, {6690,57046,3},{6692,57036,3},{6692,57048,3},{6695,57051,3},{6695,57063,3}, {6693,57063,3},{6693,57074,3},{6692,57074,3},{6690,57079,3},{6690,57061,3}, {6687,57078,3},{6682,57086,3},{6685,57069,3},{6683,57068,3},{6682,57074,3}, {6682,57084,3},{6678,57091,3},{6677,57104,3},{6672,57091,3},{6670,57101,3}, {6668,57104,3},{6670,57111,3},{6668,57121,3},{6665,57121,3},{6658,57114,3}, {6643,57146,3},{6632,57149,3},{6630,57158,3},{6627,57159,3},{6622,57168,3}, {6618,57166,3},{6615,57151,3},{6620,57158,3},{6622,57156,3},{6620,57139,3}, {6622,57138,3},{6627,57123,3},{6630,57121,3},{6632,57116,3},{6630,57104,3}, {6628,57104,3},{6628,57099,3},{6637,57093,3},{6638,57089,3},{6638,57084,3}, {6640,57084,3},{6633,57073,3},{6622,57096,3},{6615,57099,3},{6617,57089,3}, {6620,57081,3},{6622,57073,3},{6620,57063,3},{6627,57049,3},{6625,57038,3}, {6627,57033,3},{6628,57028,3},{6632,57024,3},{6627,57018,3},{6627,57013,3}, {6632,57006,3},{6648,57001,3},{6658,56988,3},{6657,56978,3},{6650,56951,3}, {6652,56948,3},{6650,56923,3},{6652,56914,3},{6652,56908,3},{6655,56903,3}, {6652,56898,3},{6655,56879,3},{6655,56876,3},{6652,56878,3},{6650,56874,3}, {6653,56859,3},{6652,56858,3},{6643,56873,3},{6645,56856,3},{6643,56854,3}, {6632,56873,3},{6628,56903,3},{6618,56944,3},{6615,56946,3},{6610,56934,3}, {6608,56938,3},{6603,56939,3},{6598,56924,3},{6598,56916,3},{6593,56913,3}, {6590,56903,3},{6590,56894,3},{6580,56886,3},{6578,56891,3},{6575,56891,3}, {6567,56881,3},{6567,56873,3},{6565,56868,3},{6555,56853,3},{6553,56838,3}, {6552,56838,3},{6548,56834,3},{6548,56828,3},{6545,56824,3},{6543,56824,3}, {6542,56829,3},{6540,56828,3},{6540,56819,3},{6537,56814,3},{6532,56796,3}, {6533,56766,3},{6532,56749,3},{6535,56731,3},{6540,56714,3},{6550,56703,3}, {6558,56679,3},{6560,56671,3},{6563,56653,3},{6563,56678,3},{6562,56691,3}, {6563,56694,3},{6568,56658,3},{6570,56651,3},{6570,56646,3},{6568,56643,3}, {6568,56638,3},{6573,56624,3},{6578,56619,3},{6582,56604,3},{6583,56603,3}, {6587,56593,3},{6587,56589,3},{6585,56588,3},{6585,56584,3},{6588,56584,3}, {6593,56569,3},{6595,56536,3},{6592,56548,3},{6587,56563,3},{6583,56563,3}, {6582,56559,3},{6588,56529,3},{6587,56509,3},{6587,56494,3},{6588,56493,3}, {6590,56496,3},{6590,56513,3},{6592,56513,3},{6590,56479,3},{6592,56448,3}, {6595,56424,3},{6595,56418,3},{6597,56404,3},{6595,56386,3},{6588,56403,3}, {6588,56409,3},{6580,56434,3},{6582,56436,3},{6590,56424,3},{6592,56428,3}, {6588,56463,3},{6588,56481,3},{6578,56539,3},{6572,56561,3},{6563,56578,3}, {6560,56589,3},{6550,56596,3},{6543,56619,3},{6533,56631,3},{6530,56663,3}, {6532,56671,3},{6530,56679,3},{6527,56699,3},{6528,56724,3},{6527,56729,3}, {6528,56741,3},{6527,56759,3},{6527,56763,3},{6528,56763,3},{6528,56776,3}, {6527,56779,3},{6527,56801,3},{6523,56833,3},{6520,56831,3},{6515,56843,3}, {6510,56836,3},{6505,56839,3},{6500,56824,3},{6497,56828,3},{6488,56813,3}, {6480,56806,3},{6477,56806,3},{6475,56799,3},{6470,56791,3},{6475,56788,3}, {6472,56784,3},{6463,56784,3},{6457,56778,3},{6452,56766,3},{6452,56756,3}, {6445,56751,3},{6435,56748,3},{6425,56731,3},{6423,56731,3},{6422,56736,3}, {6418,56738,3},{6417,56731,3},{6413,56724,3},{6413,56713,3},{6405,56689,3}, {6405,56681,3},{6402,56681,3},{6400,56668,3},{6398,56669,3},{6397,56663,3}, {6398,56653,3},{6398,56651,3},{6402,56646,3},{6398,56644,3},{6398,56636,3}, {6400,56636,3},{6407,56621,3},{6417,56609,3},{6413,56608,3},{6397,56626,3}, {6397,56633,3},{6395,56633,3},{6395,56621,3},{6397,56623,3},{6397,56618,3}, {6402,56609,3},{6397,56611,3},{6403,56599,3},{6402,56593,3},{6403,56589,3}, {6407,56586,3},{6408,56581,3},{6402,56579,3},{6395,56588,3},{6408,56566,3}, {6403,56564,3},{6410,56554,3},{6413,56554,3},{6415,56563,3},{6423,56561,3}, {6425,56558,3},{6420,56554,3},{6420,56548,3},{6417,56554,3},{6415,56554,3}, {6415,56548,3},{6417,56544,3},{6415,56536,3},{6413,56524,3},{6410,56533,3}, {6412,56534,3},{6412,56538,3},{6410,56544,3},{6408,56541,3},{6405,56541,3}, {6405,56546,3},{6402,56551,3},{6402,56544,3},{6400,56544,3},{6398,56553,3}, {6393,56554,3},{6392,56553,3},{6393,56548,3},{6392,56543,3},{6393,56536,3}, {6393,56541,3},{6397,56541,3},{6398,56534,3},{6398,56533,3},{6397,56534,3}, {6395,56526,3},{6400,56519,3},{6400,56509,3},{6398,56514,3},{6392,56528,3}, {6392,56524,3},{6388,56526,3},{6382,56539,3},{6377,56538,3},{6378,56524,3}, {6375,56531,3},{6372,56526,3},{6370,56526,3},{6370,56523,3},{6365,56519,3}, {6363,56521,3},{6360,56511,3},{6362,56508,3},{6363,56514,3},{6365,56508,3}, {6362,56501,3},{6362,56491,3},{6363,56488,3},{6365,56491,3},{6367,56481,3}, {6367,56488,3},{6370,56474,3},{6368,56473,3},{6365,56466,3},{6365,56474,3}, {6368,56476,3},{6365,56481,3},{6363,56481,3},{6360,56479,3},{6362,56476,3}, {6360,56469,3},{6358,56464,3},{6357,56451,3},{6358,56438,3},{6362,56429,3}, {6362,56428,3},{6363,56421,3},{6363,56413,3},{6365,56406,3},{6367,56398,3}, {6368,56396,3},{6368,56403,3},{6368,56401,3},{6373,56383,3},{6372,56378,3}, {6372,56369,3},{6373,56368,3},{6375,56371,3},{6377,56368,3},{6377,56364,3}, {6373,56361,3},{6375,56344,3},{6378,56338,3},{6380,56348,3},{6382,56339,3}, {6382,56336,3},{6378,56336,3},{6377,56331,3},{6375,56331,3},{6375,56323,3}, {6377,56313,3},{6378,56298,3},{6383,56286,3},{6385,56266,3},{6387,56261,3}, {6388,56259,3},{6390,56244,3},{6393,56239,3},{6393,56228,3},{6398,56214,3}, {6398,56208,3},{6402,56193,3},{6407,56184,3},{6410,56174,3},{6412,56173,3}, {6415,56174,3},{6417,56166,3},{6418,56158,3},{6413,56169,3},{6408,56169,3}, {6402,56181,3},{6400,56176,3},{6400,56181,3},{6398,56178,3},{6398,56159,3}, {6395,56159,3},{6395,56166,3},{6388,56171,3},{6383,56184,3},{6383,56193,3}, {6380,56203,3},{6385,56198,3},{6383,56206,3},{6383,56214,3},{6385,56214,3}, {6387,56203,3},{6393,56191,3},{6393,56194,3},{6397,56191,3},{6397,56194,3}, {6388,56226,3},{6387,56236,3},{6383,56244,3},{6383,56261,3},{6377,56274,3}, {6382,56283,3},{6380,56293,3},{6373,56296,3},{6373,56313,3},{6372,56321,3}, {6370,56326,3},{6368,56316,3},{6365,56316,3},{6365,56319,3},{6362,56309,3}, {6363,56306,3},{6365,56303,3},{6358,56296,3},{6355,56283,3},{6352,56289,3}, {6355,56293,3},{6355,56301,3},{6357,56304,3},{6353,56313,3},{6362,56316,3}, {6362,56324,3},{6365,56329,3},{6363,56333,3},{6368,56339,3},{6372,56353,3}, {6372,56359,3},{6365,56374,3},{6358,56376,3},{6358,56384,3},{6355,56388,3}, {6352,56398,3},{6348,56398,3},{6348,56406,3},{6350,56409,3},{6348,56421,3}, {6345,56429,3},{6347,56434,3},{6340,56458,3},{6340,56448,3},{6342,56441,3}, {6342,56439,3},{6338,56443,3},{6335,56458,3},{6335,56468,3},{6333,56468,3}, {6332,56461,3},{6328,56463,3},{6328,56466,3},{6325,56464,3},{6322,56468,3}, {6318,56466,3},{6318,56463,3},{6315,56469,3},{6312,56468,3},{6308,56471,3}, {6308,56468,3},{6307,56473,3},{6303,56471,3},{6303,56466,3},{6302,56464,3}, {6300,56468,3},{6300,56461,3},{6297,56464,3},{6297,56458,3},{6293,56458,3}, {6293,56429,3},{6292,56419,3},{6285,56414,3},{6283,56404,3},{6282,56394,3}, {6280,56401,3},{6278,56401,3},{6278,56386,3},{6282,56364,3},{6283,56349,3}, {6287,56324,3},{6285,56323,3},{6282,56328,3},{6280,56326,3},{6285,56303,3}, {6282,56291,3},{6278,56291,3},{6272,56303,3},{6268,56314,3},{6268,56308,3}, {6265,56318,3},{6265,56341,3},{6262,56348,3},{6258,56346,3},{6255,56339,3}, {6253,56341,3},{6253,56331,3},{6255,56328,3},{6255,56319,3},{6257,56318,3}, {6258,56321,3},{6260,56319,3},{6260,56309,3},{6257,56311,3},{6257,56303,3}, {6253,56303,3},{6253,56298,3},{6255,56288,3},{6258,56291,3},{6260,56288,3}, {6257,56286,3},{6262,56278,3},{6262,56274,3},{6253,56283,3},{6250,56279,3}, {6250,56286,3},{6248,56286,3},{6248,56283,3},{6245,56283,3},{6247,56274,3}, {6247,56264,3},{6245,56263,3},{6238,56264,3},{6237,56268,3},{6235,56254,3}, {6235,56264,3},{6232,56276,3},{6227,56276,3},{6225,56273,3},{6222,56278,3}, {6218,56279,3},{6215,56288,3},{6217,56279,3},{6215,56276,3},{6222,56274,3}, {6223,56268,3},{6227,56266,3},{6228,56261,3},{6235,56218,3},{6237,56211,3}, {6235,56218,3},{6233,56229,3},{6228,56239,3},{6228,56244,3},{6227,56246,3}, {6225,56253,3},{6222,56259,3},{6218,56258,3},{6218,56249,3},{6220,56246,3}, {6218,56243,3},{6220,56236,3},{6217,56238,3},{6217,56229,3},{6215,56224,3}, {6213,56224,3},{6210,56228,3},{6213,56234,3},{6210,56243,3},{6207,56238,3}, {6208,56229,3},{6203,56228,3},{6205,56221,3},{6202,56223,3},{6198,56219,3}, {6203,56211,3},{6205,56206,3},{6205,56203,3},{6202,56206,3},{6203,56194,3}, {6195,56214,3},{6195,56198,3},{6192,56206,3},{6190,56208,3},{6188,56206,3}, {6193,56184,3},{6195,56174,3},{6188,56188,3},{6188,56176,3},{6185,56174,3}, {6185,56186,3},{6183,56188,3},{6182,56201,3},{6180,56193,3},{6178,56198,3}, {6178,56211,3},{6175,56211,3},{6175,56199,3},{6177,56191,3},{6175,56191,3}, {6172,56194,3},{6172,56204,3},{6168,56191,3},{6168,56184,3},{6163,56171,3}, {6155,56158,3},{6157,56153,3},{6152,56149,3},{6145,56138,3},{6142,56143,3}, {6140,56139,3},{6138,56149,3},{6135,56154,3},{6132,56151,3},{6130,56143,3}, {6132,56124,3},{6127,56134,3},{6122,56136,3},{6122,56134,3},{6120,56134,3}, {6117,56126,3},{6115,56133,3},{6112,56129,3},{6112,56136,3},{6110,56138,3}, {6107,56123,3},{6090,56113,3},{6087,56101,3},{6077,56094,3},{6072,56096,3}, {6063,56086,3},{6055,56084,3},{6052,56078,3},{6053,56069,3},{6053,56063,3}, {6052,56071,3},{6050,56071,3},{6050,56056,3},{6047,56068,3},{6038,56074,3}, {6027,56066,3},{6018,56069,3},{6013,56064,3},{6008,56066,3},{6007,56059,3}, {6002,56061,3},{6002,56056,3},{6000,56056,3},{5998,56058,3},{5995,56054,3}, {5993,56056,3},{5978,56059,3},{5963,56054,3},{5957,56058,3},{5957,56059,3}, {5955,56056,3},{5952,56058,3},{5950,56061,3},{5945,56063,3},{5940,56063,3}, {5937,56064,3},{5933,56063,3},{5935,56068,3},{5935,56071,3},{5930,56059,3}, {5908,56056,3},{5908,56043,3},{5905,56036,3},{5907,56053,3},{5905,56056,3}, {5902,56056,3},{5900,56064,3},{5898,56068,3},{5893,56068,3},{5888,56063,3}, {5883,56061,3},{5888,56071,3},{5887,56078,3},{5883,56084,3},{5880,56088,3}, {5872,56094,3},{5872,56103,3},{5875,56108,3},{5878,56108,3},{5880,56116,3}, {5873,56113,3},{5868,56116,3},{5860,56108,3},{5848,56106,3},{5843,56108,3}, {5840,56103,3},{5832,56103,3},{5822,56099,3},{5840,56113,3},{5858,56111,3}, {5867,56119,3},{5872,56119,3},{5873,56123,3},{5877,56119,3},{5877,56124,3}, {5877,56144,3},{5875,56149,3},{5877,56153,3},{5877,56161,3},{5878,56164,3}, {5877,56179,3},{5877,56186,3},{5875,56189,3},{5872,56189,3},{5870,56196,3}, {5875,56203,3},{5877,56213,3},{5875,56216,3},{5873,56221,3},{5872,56219,3}, {5868,56223,3},{5853,56223,3},{5842,56231,3},{5822,56243,3},{5817,56251,3}, {5815,56249,3},{5805,56256,3},{5800,56256,3},{5787,56261,3},{5783,56258,3}, {5782,56263,3},{5772,56269,3},{5763,56276,3},{5755,56281,3},{5752,56286,3}, {5745,56291,3},{5733,56294,3},{5723,56293,3},{5705,56278,3},{5695,56264,3}, {5690,56248,3},{5693,56268,3},{5703,56289,3},{5707,56311,3},{5705,56314,3}, {5698,56301,3},{5693,56289,3},{5695,56294,3},{5697,56306,3},{5702,56313,3}, {5703,56321,3},{5707,56341,3},{5722,56413,3},{5727,56436,3},{5725,56454,3}, {5723,56464,3},{5723,56476,3},{5718,56486,3},{5720,56491,3},{5718,56498,3}, {5717,56496,3},{5705,56529,3},{5700,56541,3},{5692,56586,3},{5692,56599,3}, {5687,56616,3},{5687,56628,3},{5683,56631,3},{5685,56641,3},{5687,56648,3}, {5683,56649,3},{5683,56653,3},{5683,56654,3},{5680,56653,3},{5675,56664,3}, {5670,56671,3},{5665,56688,3},{5655,56701,3},{5643,56738,3},{5638,56741,3}, {5632,56751,3},{5620,56764,3},{5615,56766,3},{5608,56778,3},{5603,56774,3}, {5600,56774,3},{5605,56781,3},{5603,56788,3},{5602,56788,3},{5600,56791,3}, {5600,56801,3},{5595,56799,3},{5597,56804,3},{5593,56828,3},{5593,56838,3}, {5592,56841,3},{5590,56839,3},{5590,56849,3},{5585,56868,3},{5582,56888,3}, {5573,56908,3},{5570,56928,3},{5570,56941,3},{5563,56954,3},{5563,56964,3}, {5560,56968,3},{5557,56979,3},{5547,56986,3},{5542,56996,3},{5535,57023,3}, {5530,57024,3},{5527,57014,3},{5525,57014,3},{5522,57009,3},{5515,57003,3}, {5510,56996,3},{5507,56998,3},{5498,56994,3},{5502,56999,3},{5513,57004,3}, {5525,57016,3},{5528,57024,3},{5530,57036,3},{5528,57051,3},{5525,57064,3}, {5523,57076,3},{5528,57104,3},{5528,57118,3},{5527,57126,3},{5532,57143,3}, {5528,57153,3},{5525,57164,3},{5522,57163,3},{5525,57168,3},{5523,57171,3}, {5522,57176,3},{5518,57179,3},{5515,57178,3},{5513,57179,3},{5515,57178,3}, {5518,57181,3},{5523,57178,3},{5525,57168,3},{5528,57166,3},{5527,57181,3}, {5523,57188,3},{5522,57201,3},{5522,57213,3},{5520,57218,3},{5523,57233,3}, {5523,57239,3},{5522,57243,3},{5517,57246,3},{5510,57241,3},{5515,57248,3}, {5513,57258,3},{5515,57264,3},{5517,57269,3},{5513,57281,3},{5517,57283,3}, {5515,57291,3},{5512,57294,3},{5508,57296,3},{5507,57304,3},{5510,57303,3}, {5513,57304,3},{5517,57301,3},{5515,57306,3},{5510,57311,3},{5503,57308,3}, {5497,57311,3},{5493,57309,3},{5488,57311,3},{5488,57314,3},{5485,57316,3}, {5437,57293,3},{5422,57293,3},{5415,57299,3},{5412,57298,3},{5412,57304,3}, {5407,57311,3},{5382,57323,3},{5375,57323,3},{5360,57314,3},{5358,57316,3}, {5352,57314,3},{5342,57321,3},{5328,57324,3},{5323,57316,3},{5322,57311,3}, {5307,57306,3},{5298,57308,3},{5297,57306,3},{5295,57309,3},{5293,57311,3}, {5288,57326,3},{5278,57339,3},{5277,57338,3},{5275,57339,3},{5268,57344,3}, {5263,57354,3},{5252,57366,3},{5245,57381,3},{5242,57379,3},{5235,57381,3}, {5230,57388,3},{5232,57381,3},{5230,57373,3},{5227,57363,3},{5225,57363,3}, {5227,57358,3},{5225,57354,3},{5223,57349,3},{5223,57354,3},{5218,57348,3}, {5223,57363,3},{5223,57386,3},{5218,57393,3},{5215,57394,3},{5210,57401,3}, {5208,57409,3},{5203,57421,3},{5205,57426,3},{5203,57429,3},{5200,57438,3}, {5190,57444,3},{5188,57448,3},{5188,57454,3},{5185,57454,3},{5180,57466,3}, {5170,57478,3},{5152,57484,3},{5147,57493,3},{5137,57493,3},{5128,57471,3}, {5118,57461,3},{5115,57451,3},{5108,57446,3},{5107,57439,3},{5103,57434,3}, {5105,57443,3},{5103,57443,3},{5100,57441,3},{5103,57444,3},{5112,57449,3}, {5115,57466,3},{5128,57483,3},{5133,57496,3},{5130,57514,3},{5130,57524,3}, {5127,57528,3},{5125,57536,3},{5118,57548,3},{5112,57563,3},{5105,57568,3}, {5102,57573,3},{5087,57593,3},{5077,57601,3},{5072,57603,3},{5078,57603,3}, {5088,57594,3},{5098,57583,3},{5105,57568,3},{5112,57564,3},{5118,57561,3}, {5130,57568,3},{5140,57566,3},{5142,57574,3},{5145,57578,3},{5147,57581,3}, {5147,57584,3},{5155,57581,3},{5157,57588,3},{5167,57603,3},{5163,57613,3}, {5157,57608,3},{5152,57609,3},{5152,57619,3},{5153,57623,3},{5152,57626,3}, {5147,57634,3},{5128,57643,3},{5123,57639,3},{5118,57646,3},{5117,57651,3}, {5123,57644,3},{5130,57646,3},{5135,57651,3},{5135,57654,3},{5137,57648,3}, {5140,57648,3},{5148,57659,3},{5148,57668,3},{5150,57664,3},{5152,57654,3}, {5160,57654,3},{5160,57658,3},{5162,57653,3},{5165,57648,3},{5167,57641,3}, {5170,57643,3},{5177,57633,3},{5180,57636,3},{5180,57644,3},{5183,57653,3}, {5193,57646,3},{5197,57661,3},{5202,57664,3},{5200,57666,3},{5205,57666,3}, {5205,57673,3},{5208,57671,3},{5208,57674,3},{5212,57678,3},{5215,57679,3}, {5218,57683,3},{5223,57681,3},{5225,57686,3},{5223,57696,3},{5227,57689,3}, {5227,57681,3},{5230,57681,3},{5235,57686,3},{5237,57686,3},{5238,57683,3}, {5242,57684,3},{5243,57681,3},{5247,57686,3},{5248,57683,3},{5248,57679,3}, {5250,57683,3},{5253,57678,3},{5252,57671,3},{5253,57671,3},{5255,57668,3}, {5253,57666,3},{5255,57664,3},{5257,57659,3},{5260,57668,3},{5262,57663,3}, {5262,57664,3},{5265,57664,3},{5265,57658,3},{5270,57661,3},{5270,57654,3}, {5272,57659,3},{5273,57658,3},{5275,57651,3},{5278,57653,3},{5278,57664,3}, {5282,57663,3},{5282,57659,3},{5282,57658,3},{5288,57668,3},{5287,57656,3}, {5288,57649,3},{5292,57646,3},{5293,57649,3},{5297,57649,3},{5297,57656,3}, {5298,57658,3},{5298,57653,3},{5302,57651,3},{5300,57649,3},{5302,57638,3}, {5305,57644,3},{5307,57644,3},{5307,57639,3},{5317,57644,3},{5318,57641,3}, {5320,57646,3},{5322,57643,3},{5322,57648,3},{5325,57646,3},{5325,57644,3}, {5327,57646,3},{5328,57641,3},{5332,57643,3},{5335,57639,3},{5338,57643,3}, {5345,57638,3},{5345,57634,3},{5345,57629,3},{5345,57631,3},{5347,57628,3}, {5350,57624,3},{5353,57633,3},{5353,57634,3},{5352,57631,3},{5348,57634,3}, {5352,57639,3},{5357,57633,3},{5355,57641,3},{5357,57644,3},{5362,57638,3}, {5360,57629,3},{5363,57631,3},{5363,57636,3},{5367,57631,3},{5367,57634,3}, {5368,57634,3},{5372,57621,3},{5372,57631,3},{5373,57633,3},{5375,57629,3}, {5378,57631,3},{5380,57629,3},{5382,57634,3},{5383,57631,3},{5383,57639,3}, {5382,57643,3},{5382,57646,3},{5385,57638,3},{5385,57629,3},{5388,57629,3}, {5392,57626,3},{5392,57636,3},{5393,57633,3},{5395,57623,3},{5395,57633,3}, {5397,57626,3},{5397,57633,3},{5397,57631,3},{5398,57626,3},{5398,57629,3}, {5400,57629,3},{5400,57633,3},{5400,57639,3},{5402,57638,3},{5405,57633,3}, {5403,57628,3},{5407,57626,3},{5408,57623,3},{5408,57608,3},{5408,57619,3}, {5412,57619,3},{5410,57624,3},{5412,57626,3},{5412,57623,3},{5413,57626,3}, {5415,57623,3},{5417,57629,3},{5418,57631,3},{5417,57618,3},{5415,57616,3}, {5417,57611,3},{5418,57613,3},{5420,57601,3},{5420,57598,3},{5422,57603,3}, {5425,57603,3},{5425,57608,3},{5427,57596,3},{5428,57593,3},{5430,57594,3}, {5430,57589,3},{5437,57589,3},{5437,57586,3},{5440,57586,3},{5442,57591,3}, {5442,57586,3},{5445,57588,3},{5450,57584,3},{5450,57581,3},{5452,57584,3}, {5455,57576,3},{5457,57583,3},{5458,57584,3},{5462,57579,3},{5457,57574,3}, {5458,57573,3},{5463,57578,3},{5463,57576,3},{5462,57574,3},{5463,57568,3}, {5465,57571,3},{5467,57569,3},{5467,57568,3},{5465,57568,3},{5465,57559,3}, {5470,57573,3},{5473,57573,3},{5472,57573,3},{5473,57586,3},{5477,57589,3}, {5475,57591,3},{5477,57603,3},{5482,57613,3},{5485,57638,3},{5492,57649,3}, {5492,57659,3},{5498,57679,3},{5500,57683,3},{5503,57703,3},{5515,57723,3}, {5525,57751,3},{5527,57758,3},{5537,57769,3},{5540,57781,3},{5558,57813,3}, {5565,57823,3},{5570,57828,3},{5567,57818,3},{5568,57818,3},{5575,57829,3}, {5585,57839,3},{5593,57853,3},{5598,57856,3},{5600,57864,3},{5603,57868,3}, {5612,57873,3},{5625,57878,3},{5630,57883,3},{5680,57886,3},{5700,57881,3}, {5710,57883,3},{5717,57879,3},{5723,57878,3},{5740,57871,3},{5762,57854,3}, {5767,57856,3},{5787,57834,3},{5795,57829,3},{5797,57824,3},{5802,57821,3}, {5807,57811,3},{5810,57801,3},{5813,57798,3},{5817,57788,3},{5817,57791,3}, {5820,57791,3},{5827,57774,3},{5838,57734,3},{5842,57734,3},{5845,57729,3}, {5845,57723,3},{5850,57716,3},{5852,57709,3},{5862,57698,3},{5862,57693,3}, {5860,57693,3},{5855,57704,3},{5853,57701,3},{5857,57691,3},{5862,57689,3}, {5862,57679,3},{5867,57681,3},{5867,57679,3},{5868,57684,3},{5870,57686,3}, {5870,57689,3},{5877,57681,3},{5878,57683,3},{5878,57686,3},{5882,57688,3}, {5892,57681,3},{5893,57683,3},{5893,57679,3},{5897,57679,3},{5895,57684,3}, {5892,57691,3},{5895,57693,3},{5897,57694,3},{5895,57701,3},{5892,57701,3}, {5893,57706,3},{5895,57704,3},{5897,57708,3},{5900,57711,3},{5898,57704,3}, {5902,57709,3},{5905,57708,3},{5907,57711,3},{5905,57716,3},{5910,57714,3}, {5908,57718,3},{5910,57723,3},{5915,57721,3},{5915,57728,3},{5922,57726,3}, {5923,57736,3},{5927,57741,3},{5928,57753,3},{5930,57753,3},{5932,57748,3}, {5932,57758,3},{5935,57759,3},{5937,57756,3},{5940,57768,3},{5942,57764,3}, {5940,57761,3},{5943,57758,3},{5940,57748,3},{5940,57744,3},{5943,57746,3}, {5945,57751,3},{5947,57748,3},{5950,57749,3},{5953,57764,3},{5962,57764,3}, {5963,57759,3},{5967,57756,3},{5968,57763,3},{5972,57759,3},{5970,57766,3}, {5967,57769,3},{5968,57776,3},{5970,57779,3},{5967,57779,3},{5963,57789,3}, {5958,57791,3},{5957,57804,3},{5960,57793,3},{5967,57791,3},{5968,57783,3}, {5972,57788,3},{5975,57783,3},{5975,57791,3},{5977,57791,3},{5978,57794,3}, {5980,57806,3},{5988,57799,3},{5992,57793,3},{5992,57799,3},{5995,57798,3}, {5997,57806,3},{5998,57804,3},{6000,57813,3},{6002,57806,3},{6005,57818,3}, {6003,57804,3},{6007,57801,3},{6005,57796,3},{6003,57793,3},{6005,57789,3}, {6005,57788,3},{6007,57773,3},{6008,57778,3},{6012,57776,3},{6013,57781,3}, {6013,57796,3},{6015,57786,3},{6020,57781,3},{6022,57789,3},{6025,57784,3}, {6027,57779,3},{6028,57781,3},{6027,57774,3},{6033,57776,3},{6033,57773,3}, {6037,57773,3},{6040,57761,3},{6042,57761,3},{6047,57768,3},{6050,57779,3}, {6055,57781,3},{6055,57794,3},{6057,57781,3},{6055,57769,3},{6060,57758,3}, {6063,57753,3},{6075,57776,3},{6077,57771,3},{6077,57761,3},{6083,57784,3}, {6078,57758,3},{6075,57748,3},{6080,57751,3},{6078,57739,3},{6082,57748,3}, {6083,57746,3},{6078,57716,3},{6085,57719,3},{6088,57726,3},{6092,57726,3}, {6103,57748,3},{6105,57754,3},{6115,57758,3},{6120,57766,3},{6122,57766,3}, {6123,57761,3},{6127,57764,3},{6145,57756,3},{6145,57763,3},{6143,57766,3}, {6147,57768,3},{6147,57779,3},{6148,57781,3},{6152,57769,3},{6157,57774,3}, {6153,57789,3},{6157,57783,3},{6158,57773,3},{6158,57778,3},{6160,57778,3}, {6160,57764,3},{6170,57758,3},{6168,57754,3},{6168,57746,3},{6172,57736,3}, {6178,57736,3},{6187,57728,3},{6195,57728,3},{6203,57721,3},{6227,57719,3}, {6233,57726,3},{6240,57734,3},{6240,57741,3},{6247,57759,3},{6247,57766,3}, {6252,57771,3},{6253,57781,3},{6260,57789,3},{6258,57796,3},{6255,57799,3}, {6255,57818,3},{6252,57823,3},{6253,57826,3},{6252,57831,3},{6253,57841,3}, {6252,57846,3},{6250,57861,3},{6248,57869,3},{6245,57874,3},{6245,57883,3}, {6238,57921,3},{6233,57926,3},{6235,57933,3},{6233,57934,3},{6235,57939,3}, {6233,57944,3},{6232,57954,3},{6228,57973,3},{6227,57976,3},{6223,57966,3}, {6215,57946,3},{6217,57953,3},{6218,57958,3},{6223,57976,3},{6230,57988,3}, {6232,58004,3},{6228,58021,3},{6223,58021,3},{6227,58029,3},{6225,58043,3}, {6223,58049,3},{6220,58051,3},{6217,58059,3},{6215,58059,3},{6210,58076,3}, {6212,58081,3},{6215,58068,3},{6220,58059,3},{6225,58063,3},{6225,58094,3}, {6230,58108,3},{6232,58108,3},{6233,58113,3},{6232,58121,3},{6235,58128,3}, {6235,58136,3},{6245,58149,3},{6248,58168,3},{6247,58171,3},{6238,58179,3}, {6238,58184,3},{6238,58189,3},{6237,58191,3},{6237,58198,3},{6233,58204,3}, {6232,58214,3},{6225,58218,3},{6220,58229,3},{6218,58229,3},{6215,58244,3}, {6213,58246,3},{6212,58241,3},{6212,58244,3},{6212,58251,3},{6212,58258,3}, {6213,58254,3},{6215,58263,3},{6212,58274,3},{6205,58269,3},{6205,58276,3}, {6203,58274,3},{6202,58276,3},{6197,58276,3},{6195,58268,3},{6190,58268,3}, {6183,58256,3},{6183,58263,3},{6188,58269,3},{6185,58269,3},{6180,58274,3}, {6183,58276,3},{6190,58273,3},{6195,58276,3},{6188,58296,3},{6187,58316,3}, {6183,58318,3},{6180,58323,3},{6178,58316,3},{6178,58318,3},{6177,58314,3}, {6173,58314,3},{6175,58323,3},{6173,58328,3},{6168,58338,3},{6162,58333,3}, {6160,58324,3},{6162,58313,3},{6162,58309,3},{6157,58306,3},{6160,58314,3}, {6158,58326,3},{6160,58338,3},{6167,58343,3},{6170,58339,3},{6170,58341,3}, {6167,58369,3},{6160,58379,3},{6160,58378,3},{6157,58381,3},{6153,58351,3}, {6152,58351,3},{6152,58358,3},{6150,58359,3},{6148,58356,3},{6147,58361,3}, {6143,58348,3},{6142,58351,3},{6142,58356,3},{6140,58366,3},{6140,58378,3}, {6137,58366,3},{6137,58354,3},{6135,58356,3},{6135,58354,3},{6135,58364,3}, {6133,58369,3},{6128,58363,3},{6125,58376,3},{6120,58373,3},{6122,58378,3}, {6120,58379,3},{6115,58378,3},{6117,58386,3},{6120,58383,3},{6122,58384,3}, {6122,58391,3},{6118,58391,3},{6115,58396,3},{6112,58399,3},{6115,58399,3}, {6117,58414,3},{6112,58416,3},{6113,58419,3},{6112,58424,3},{6112,58438,3}, {6110,58444,3},{6107,58443,3},{6107,58451,3},{6105,58459,3},{6108,58458,3}, {6107,58464,3},{6105,58471,3},{6102,58468,3},{6103,58474,3},{6102,58478,3}, {6100,58481,3},{6103,58479,3},{6105,58483,3},{6107,58483,3},{6102,58493,3}, {6105,58491,3},{6105,58494,3},{6108,58494,3},{6107,58501,3},{6110,58503,3}, {6108,58509,3},{6107,58511,3},{6108,58521,3},{6107,58521,3},{6107,58526,3}, {6102,58519,3},{6102,58526,3},{6098,58524,3},{6095,58528,3},{6090,58528,3}, {6088,58521,3},{6087,58529,3},{6085,58529,3},{6085,58536,3},{6080,58543,3}, {6085,58551,3},{6083,58544,3},{6085,58543,3},{6092,58561,3},{6088,58563,3}, {6087,58568,3},{6088,58571,3},{6090,58571,3},{6095,58568,3},{6102,58568,3}, {6108,58576,3},{6107,58584,3},{6093,58594,3},{6092,58593,3},{6090,58599,3}, {6087,58598,3},{6080,58598,3},{6073,58578,3},{6070,58571,3},{6068,58564,3}, {6065,58568,3},{6060,58566,3},{6060,58571,3},{6057,58571,3},{6055,58566,3}, {6053,58553,3},{6047,58561,3},{6042,58558,3},{6040,58563,3},{6037,58564,3}, {6032,58559,3},{6028,58566,3},{6023,58571,3},{6023,58576,3},{6020,58574,3}, {6018,58571,3},{6018,58576,3},{6007,58574,3},{6007,58566,3},{6003,58564,3}, {6007,58558,3},{6007,58553,3},{6002,58553,3},{6000,58559,3},{5998,58556,3}, {6002,58541,3},{6000,58514,3},{6003,58503,3},{6000,58504,3},{6000,58481,3}, {6007,58438,3},{6007,58433,3},{5997,58479,3},{5998,58513,3},{5997,58518,3}, {5995,58529,3},{5997,58563,3},{5992,58564,3},{5990,58559,3},{5987,58579,3}, {5983,58576,3},{5978,58574,3},{5977,58581,3},{5968,58571,3},{5970,58576,3}, {5967,58584,3},{5960,58581,3},{5957,58568,3},{5950,58561,3},{5948,58561,3}, {5948,58566,3},{5945,58569,3},{5942,58571,3},{5938,58569,3},{5937,58573,3}, {5937,58571,3},{5935,58561,3},{5932,58561,3},{5930,58563,3},{5930,58571,3}, {5932,58576,3},{5935,58594,3},{5933,58599,3},{5930,58599,3},{5933,58606,3}, {5932,58611,3},{5928,58609,3},{5927,58613,3},{5922,58611,3},{5920,58608,3}, {5923,58603,3},{5925,58601,3},{5922,58599,3},{5918,58599,3},{5920,58594,3}, {5922,58594,3},{5922,58593,3},{5917,58583,3},{5910,58583,3},{5913,58589,3}, {5910,58593,3},{5912,58599,3},{5908,58601,3},{5907,58594,3},{5902,58593,3}, {5907,58588,3},{5907,58586,3},{5890,58591,3},{5887,58589,3},{5888,58584,3}, {5880,58581,3},{5878,58571,3},{5880,58568,3},{5887,58564,3},{5888,58569,3}, {5893,58569,3},{5892,58566,3},{5892,58564,3},{5897,58564,3},{5898,58561,3}, {5897,58558,3},{5905,58549,3},{5898,58549,3},{5895,58546,3},{5895,58553,3}, {5893,58556,3},{5882,58556,3},{5887,58548,3},{5887,58546,3},{5883,58546,3}, {5880,58539,3},{5882,58533,3},{5878,58526,3},{5877,58511,3},{5875,58529,3}, {5873,58533,3},{5877,58544,3},{5870,58544,3},{5870,58548,3},{5872,58551,3}, {5870,58556,3},{5868,58554,3},{5865,58548,3},{5858,58554,3},{5870,58566,3}, {5870,58571,3},{5875,58576,3},{5877,58586,3},{5885,58596,3},{5888,58608,3}, {5890,58611,3},{5888,58616,3},{5890,58621,3},{5890,58638,3},{5888,58636,3}, {5887,58639,3},{5888,58649,3},{5892,58659,3},{5890,58663,3},{5890,58673,3}, {5883,58686,3},{5882,58696,3},{5878,58696,3},{5878,58701,3},{5875,58699,3}, {5870,58698,3},{5867,58703,3},{5860,58701,3},{5858,58703,3},{5860,58708,3}, {5858,58709,3},{5853,58706,3},{5855,58716,3},{5848,58714,3},{5843,58716,3}, {5833,58711,3},{5823,58704,3},{5813,58701,3},{5805,58691,3},{5803,58686,3}, {5802,58666,3},{5797,58649,3},{5797,58639,3},{5792,58634,3},{5790,58623,3}, {5787,58614,3},{5777,58599,3},{5783,58614,3},{5788,58623,3},{5793,58641,3}, {5800,58668,3},{5800,58681,3},{5803,58696,3},{5807,58698,3},{5810,58704,3}, {5820,58706,3},{5825,58713,3},{5830,58713,3},{5842,58719,3},{5848,58719,3}, {5853,58723,3},{5852,58733,3},{5858,58736,3},{5855,58739,3},{5852,58739,3}, {5850,58746,3},{5840,58744,3},{5835,58746,3},{5832,58751,3},{5825,58746,3}, {5813,58726,3},{5807,58723,3},{5813,58736,3},{5820,58739,3},{5823,58749,3}, {5827,58749,3},{5830,58756,3},{5835,58753,3},{5847,58759,3},{5843,58769,3}, {5838,58766,3},{5835,58766,3},{5832,58763,3},{5830,58764,3},{5828,58763,3}, {5828,58768,3},{5825,58771,3},{5817,58766,3},{5807,58769,3},{5797,58763,3}, {5792,58764,3},{5798,58766,3},{5805,58773,3},{5812,58771,3},{5822,58778,3}, {5823,58784,3},{5827,58788,3},{5828,58794,3},{5828,58798,3},{5832,58803,3}, {5833,58809,3},{5833,58814,3},{5838,58819,3},{5835,58828,3},{5838,58831,3}, {5842,58828,3},{5842,58834,3},{5850,58841,3},{5848,58848,3},{5845,58846,3}, {5843,58851,3},{5845,58853,3},{5847,58856,3},{5850,58856,3},{5848,58874,3}, {5853,58869,3},{5855,58874,3},{5860,58874,3},{5863,58878,3},{5867,58876,3}, {5867,58879,3},{5872,58881,3},{5872,58889,3},{5873,58891,3},{5875,58888,3}, {5880,58891,3},{5882,58889,3},{5885,58898,3},{5872,58924,3},{5865,58929,3}, {5867,58934,3},{5865,58936,3},{5863,58936,3},{5862,58943,3},{5850,58934,3}, {5840,58938,3},{5837,58928,3},{5832,58929,3},{5837,58933,3},{5838,58939,3}, {5843,58941,3},{5845,58944,3},{5848,58938,3},{5853,58946,3},{5858,58948,3}, {5857,58953,3},{5862,58949,3},{5865,58943,3},{5868,58941,3},{5868,58933,3}, {5875,58931,3},{5877,58926,3},{5887,58934,3},{5883,58938,3},{5883,58941,3}, {5883,58951,3},{5885,58956,3},{5887,58956,3},{5888,58941,3},{5890,58938,3}, {5895,58951,3},{5902,58948,3},{5893,58968,3},{5897,58968,3},{5900,58956,3}, {5902,58963,3},{5903,58958,3},{5905,58969,3},{5903,58974,3},{5900,58979,3}, {5898,58986,3},{5900,58984,3},{5902,58979,3},{5905,58978,3},{5907,58984,3}, {5903,58991,3},{5903,59004,3},{5907,59001,3},{5907,58993,3},{5910,58981,3}, {5908,58979,3},{5907,58973,3},{5915,58964,3},{5918,58964,3},{5920,58968,3}, {5922,58963,3},{5927,58961,3},{5927,58968,3},{5918,58978,3},{5925,58974,3}, {5923,58979,3},{5927,58981,3},{5925,58984,3},{5925,58986,3},{5930,58979,3}, {5938,58978,3},{5935,58988,3},{5932,58991,3},{5928,59001,3},{5933,58996,3}, {5935,58991,3},{5940,58993,3},{5940,58998,3},{5943,58986,3},{5945,58989,3}, {5945,58988,3},{5948,58979,3},{5947,58993,3},{5948,58999,3},{5947,59018,3}, {5940,59023,3},{5937,59034,3},{5938,59038,3},{5942,59024,3},{5947,59019,3}, {5948,59014,3},{5948,59009,3},{5952,59006,3},{5952,58994,3},{5973,58981,3}, {5977,58989,3},{5980,58988,3},{5978,58993,3},{5982,58994,3},{5980,58999,3}, {5982,58998,3},{5985,59003,3},{5982,59016,3},{5978,59021,3},{5977,59038,3}, {5980,59023,3},{5983,59014,3},{5985,59016,3},{5988,59013,3},{5987,59021,3}, {5988,59023,3},{5992,59014,3},{5992,59021,3},{5995,59023,3},{5993,59029,3}, {5997,59024,3},{5998,59029,3},{6002,59023,3},{6005,59024,3},{6005,59031,3}, {6007,59033,3},{6010,59029,3},{6012,59038,3},{6015,59036,3},{6015,59039,3}, {6018,59041,3},{6020,59048,3},{6025,59041,3},{6027,59046,3},{6030,59051,3}, {6033,59053,3},{6037,59051,3},{6037,59053,3},{6033,59066,3},{6033,59069,3}, {6035,59066,3},{6035,59073,3},{6030,59079,3},{6025,59098,3},{6028,59074,3}, {6027,59064,3},{6023,59059,3},{6027,59073,3},{6027,59081,3},{6023,59089,3}, {6017,59079,3},{6017,59086,3},{6022,59096,3},{6020,59093,3},{6020,59096,3}, {6017,59098,3},{6012,59088,3},{6008,59088,3},{6007,59073,3},{6000,59054,3}, {5998,59054,3},{6005,59076,3},{6007,59091,3},{6013,59098,3},{6012,59099,3}, {6007,59099,3},{6007,59094,3},{6005,59099,3},{6002,59098,3},{6000,59093,3}, {6000,59078,3},{6000,59088,3},{5997,59096,3},{5993,59096,3},{5990,59084,3}, {5992,59099,3},{5995,59099,3},{5998,59103,3},{6000,59114,3},{6002,59104,3}, {6005,59104,3},{6005,59106,3},{6003,59114,3},{6002,59116,3},{6002,59119,3}, {5998,59121,3},{5995,59106,3},{5995,59114,3},{5992,59118,3},{5990,59116,3}, {5987,59109,3},{5988,59119,3},{5992,59121,3},{5990,59123,3},{5983,59119,3}, {5978,59118,3},{5977,59114,3},{5978,59109,3},{5977,59109,3},{5968,59119,3}, {5968,59141,3},{5967,59139,3},{5965,59144,3},{5963,59141,3},{5963,59131,3}, {5952,59124,3},{5955,59133,3},{5963,59136,3},{5960,59143,3},{5962,59148,3}, {5960,59149,3},{5958,59149,3},{5957,59143,3},{5950,59138,3},{5957,59149,3}, {5952,59163,3},{5942,59156,3},{5942,59138,3},{5940,59131,3},{5938,59129,3}, {5938,59153,3},{5937,59156,3},{5938,59159,3},{5938,59161,3},{5935,59161,3}, {5937,59164,3},{5927,59159,3},{5925,59154,3},{5923,59156,3},{5925,59163,3}, {5933,59166,3},{5937,59171,3},{5935,59174,3},{5935,59181,3},{5932,59184,3}, {5927,59183,3},{5923,59178,3},{5922,59173,3},{5922,59176,3},{5923,59184,3}, {5928,59191,3},{5928,59198,3},{5925,59194,3},{5923,59191,3},{5922,59193,3}, {5920,59189,3},{5922,59198,3},{5920,59201,3},{5913,59194,3},{5910,59188,3}, {5910,59183,3},{5907,59178,3},{5905,59159,3},{5908,59143,3},{5907,59138,3}, {5902,59131,3},{5903,59138,3},{5907,59143,3},{5905,59146,3},{5902,59144,3}, {5895,59149,3},{5903,59149,3},{5903,59158,3},{5902,59161,3},{5903,59171,3}, {5903,59183,3},{5907,59189,3},{5907,59194,3},{5910,59199,3},{5908,59206,3}, {5907,59208,3},{5905,59224,3},{5903,59223,3},{5903,59219,3},{5902,59203,3}, {5900,59214,3},{5895,59206,3},{5898,59216,3},{5898,59219,3},{5895,59219,3}, {5893,59213,3},{5893,59219,3},{5888,59213,3},{5885,59204,3},{5885,59218,3}, {5887,59219,3},{5885,59219,3},{5882,59219,3},{5885,59224,3},{5888,59224,3}, {5890,59229,3},{5888,59238,3},{5887,59231,3},{5885,59234,3},{5880,59246,3}, {5875,59244,3},{5870,59233,3},{5870,59239,3},{5872,59246,3},{5870,59249,3}, {5867,59251,3},{5863,59244,3},{5860,59244,3},{5855,59226,3},{5850,59219,3}, {5850,59206,3},{5850,59204,3},{5850,59194,3},{5852,59193,3},{5850,59191,3}, {5847,59184,3},{5848,59194,3},{5847,59203,3},{5845,59201,3},{5840,59194,3}, {5835,59183,3},{5830,59178,3},{5837,59194,3},{5847,59209,3},{5845,59228,3}, {5837,59219,3},{5845,59231,3},{5843,59234,3},{5847,59243,3},{5847,59254,3}, {5850,59258,3},{5845,59259,3},{5848,59261,3},{5850,59274,3},{5848,59281,3}, {5842,59271,3},{5838,59274,3},{5830,59274,3},{5828,59266,3},{5827,59264,3}, {5827,59251,3},{5822,59246,3},{5820,59248,3},{5822,59249,3},{5825,59253,3}, {5825,59268,3},{5827,59271,3},{5825,59276,3},{5822,59278,3},{5822,59274,3}, {5818,59273,3},{5817,59269,3},{5815,59229,3},{5813,59234,3},{5812,59234,3}, {5807,59214,3},{5805,59218,3},{5807,59223,3},{5803,59221,3},{5798,59203,3}, {5800,59223,3},{5802,59226,3},{5807,59228,3},{5808,59239,3},{5813,59243,3}, {5815,59253,3},{5812,59251,3},{5813,59258,3},{5812,59261,3},{5815,59264,3}, {5812,59269,3},{5813,59273,3},{5817,59279,3},{5812,59279,3},{5813,59283,3}, {5817,59283,3},{5818,59289,3},{5817,59291,3},{5810,59283,3},{5805,59284,3}, {5807,59288,3},{5810,59288,3},{5810,59291,3},{5810,59299,3},{5808,59293,3}, {5807,59298,3},{5805,59298,3},{5807,59303,3},{5803,59306,3},{5800,59298,3}, {5800,59283,3},{5797,59278,3},{5795,59271,3},{5793,59269,3},{5797,59284,3}, {5795,59294,3},{5793,59293,3},{5787,59294,3},{5795,59298,3},{5798,59301,3}, {5790,59303,3},{5795,59308,3},{5790,59316,3},{5793,59316,3},{5797,59321,3}, {5797,59323,3},{5795,59328,3},{5790,59329,3},{5783,59323,3},{5780,59324,3}, {5778,59328,3},{5777,59336,3},{5772,59341,3},{5768,59339,3},{5767,59343,3}, {5767,59346,3},{5762,59348,3},{5758,59331,3},{5757,59328,3},{5755,59329,3}, {5753,59323,3},{5753,59309,3},{5745,59303,3},{5750,59283,3},{5750,59281,3}, {5742,59299,3},{5747,59319,3},{5745,59331,3},{5742,59348,3},{5737,59356,3}, {5737,59344,3},{5733,59349,3},{5728,59349,3},{5725,59341,3},{5725,59333,3}, {5723,59334,3},{5722,59346,3},{5717,59351,3},{5720,59359,3},{5715,59358,3}, {5723,59373,3},{5722,59374,3},{5720,59369,3},{5715,59366,3},{5715,59371,3}, {5717,59388,3},{5715,59391,3},{5710,59399,3},{5705,59398,3},{5702,59401,3}, {5700,59399,3},{5698,59401,3},{5695,59401,3},{5698,59398,3},{5697,59393,3}, {5698,59388,3},{5695,59381,3},{5692,59379,3},{5688,59371,3},{5682,59371,3}, {5680,59368,3},{5678,59354,3},{5680,59346,3},{5670,59348,3},{5675,59351,3}, {5675,59359,3},{5673,59366,3},{5672,59366,3},{5670,59363,3},{5670,59354,3}, {5668,59356,3},{5665,59369,3},{5662,59369,3},{5665,59344,3},{5668,59346,3}, {5667,59336,3},{5668,59329,3},{5672,59316,3},{5677,59288,3},{5678,59286,3}, {5683,59308,3},{5682,59323,3},{5682,59329,3},{5683,59331,3},{5685,59306,3}, {5683,59293,3},{5685,59286,3},{5683,59281,3},{5680,59278,3},{5677,59284,3}, {5677,59286,3},{5675,59296,3},{5670,59303,3},{5667,59321,3},{5663,59331,3}, {5662,59344,3},{5662,59343,3},{5662,59313,3},{5662,59314,3},{5660,59333,3}, {5658,59336,3},{5658,59349,3},{5657,59358,3},{5657,59364,3},{5653,59371,3}, {5652,59371,3},{5650,59368,3},{5650,59343,3},{5650,59329,3},{5648,59328,3}, {5648,59341,3},{5647,59341,3},{5645,59336,3},{5645,59323,3},{5642,59329,3}, {5642,59339,3},{5643,59343,3},{5642,59346,3},{5640,59358,3},{5638,59351,3}, {5637,59358,3},{5633,59359,3},{5633,59364,3},{5633,59363,3},{5632,59364,3}, {5632,59371,3},{5628,59378,3},{5630,59359,3},{5630,59354,3},{5630,59356,3}, {5627,59369,3},{5625,59358,3},{5627,59353,3},{5627,59359,3},{5628,59361,3}, {5630,59348,3},{5628,59341,3},{5630,59334,3},{5628,59328,3},{5625,59336,3}, {5623,59334,3},{5622,59344,3},{5623,59349,3},{5622,59353,3},{5622,59359,3}, {5620,59359,3},{5622,59371,3},{5622,59379,3},{5620,59379,3},{5622,59401,3}, {5618,59403,3},{5617,59398,3},{5612,59394,3},{5615,59401,3},{5613,59401,3}, {5610,59403,3},{5608,59396,3},{5605,59391,3},{5603,59394,3},{5607,59404,3}, {5605,59413,3},{5603,59404,3},{5602,59409,3},{5602,59388,3},{5600,59386,3}, {5600,59398,3},{5598,59398,3},{5597,59396,3},{5600,59394,3},{5600,59389,3}, {5597,59396,3},{5597,59424,3},{5593,59429,3},{5590,59428,3},{5588,59416,3}, {5587,59416,3},{5585,59426,3},{5587,59443,3},{5585,59463,3},{5580,59463,3}, {5577,59459,3},{5575,59456,3},{5577,59454,3},{5575,59448,3},{5575,59439,3}, {5573,59441,3},{5573,59449,3},{5573,59461,3},{5582,59471,3},{5582,59476,3}, {5578,59474,3},{5570,59476,3},{5567,59471,3},{5563,59473,3},{5557,59468,3}, {5563,59476,3},{5580,59486,3},{5580,59491,3},{5577,59493,3},{5578,59496,3}, {5577,59499,3},{5578,59501,3},{5578,59503,3},{5575,59503,3},{5572,59498,3}, {5568,59499,3},{5567,59488,3},{5560,59483,3},{5563,59489,3},{5560,59498,3}, {5550,59491,3},{5558,59503,3},{5557,59504,3},{5553,59503,3},{5552,59506,3}, {5552,59504,3},{5552,59503,3},{5545,59494,3},{5545,59491,3},{5540,59493,3}, {5535,59488,3},{5538,59494,3},{5543,59494,3},{5548,59504,3},{5548,59506,3}, {5543,59499,3},{5545,59504,3},{5543,59504,3},{5543,59508,3},{5548,59508,3}, {5550,59509,3},{5548,59516,3},{5543,59514,3},{5543,59516,3},{5540,59501,3}, {5532,59494,3},{5528,59496,3},{5528,59493,3},{5528,59489,3},{5520,59483,3}, {5517,59474,3},{5518,59481,3},{5523,59488,3},{5522,59493,3},{5523,59494,3}, {5527,59499,3},{5525,59501,3},{5518,59489,3},{5512,59484,3},{5505,59469,3}, {5503,59469,3},{5500,59468,3},{5503,59474,3},{5507,59478,3},{5510,59488,3}, {5515,59491,3},{5517,59496,3},{5515,59496,3},{5517,59499,3},{5523,59509,3}, {5525,59516,3},{5528,59519,3},{5528,59523,3},{5520,59516,3},{5523,59523,3}, {5527,59531,3},{5527,59534,3},{5510,59518,3},{5510,59514,3},{5510,59513,3}, {5505,59508,3},{5502,59506,3},{5513,59526,3},{5523,59534,3},{5523,59544,3}, {5527,59544,3},{5533,59558,3},{5528,59561,3},{5527,59564,3},{5522,59561,3}, {5520,59563,3},{5520,59559,3},{5515,59549,3},{5517,59539,3},{5512,59539,3}, {5513,59544,3},{5513,59549,3},{5512,59549,3},{5510,59556,3},{5513,59559,3}, {5515,59563,3},{5513,59573,3},{5517,59583,3},{5520,59583,3},{5522,59586,3}, {5518,59588,3},{5513,59586,3},{5513,59593,3},{5510,59588,3},{5505,59584,3}, {5505,59579,3},{5500,59573,3},{5500,59568,3},{5498,59568,3},{5497,59563,3}, {5495,59564,3},{5488,59553,3},{5485,59549,3},{5485,59554,3},{5482,59553,3}, {5478,59548,3},{5475,59541,3},{5475,59543,3},{5475,59548,3},{5478,59558,3}, {5483,59556,3},{5490,59561,3},{5495,59576,3},{5507,59593,3},{5503,59596,3}, {5518,59608,3},{5522,59614,3},{5517,59614,3},{5518,59618,3},{5523,59619,3}, {5520,59623,3},{5515,59623,3},{5510,59611,3},{5505,59608,3},{5500,59599,3}, {5497,59598,3},{5502,59603,3},{5502,59606,3},{5503,59611,3},{5508,59613,3}, {5510,59618,3},{5507,59621,3},{5512,59623,3},{5512,59626,3},{5508,59624,3}, {5508,59628,3},{5515,59629,3},{5515,59633,3},{5515,59634,3},{5512,59636,3}, {5513,59639,3},{5510,59641,3},{5500,59631,3},{5502,59638,3},{5500,59639,3}, {5495,59646,3},{5490,59634,3},{5490,59643,3},{5492,59643,3},{5492,59646,3}, {5492,59648,3},{5490,59648,3},{5485,59644,3},{5485,59646,3},{5483,59653,3}, {5485,59654,3},{5485,59659,3},{5480,59661,3},{5485,59663,3},{5485,59668,3}, {5482,59668,3},{5480,59676,3},{5480,59684,3},{5477,59679,3},{5478,59686,3}, {5477,59693,3},{5473,59694,3},{5475,59698,3},{5478,59698,3},{5480,59711,3}, {5480,59718,3},{5477,59716,3},{5475,59719,3},{5473,59734,3},{5472,59736,3}, {5473,59741,3},{5473,59751,3},{5470,59756,3},{5468,59758,3},{5468,59763,3}, {5465,59764,3},{5463,59766,3},{5463,59778,3},{5467,59783,3},{5465,59791,3}, {5463,59793,3},{5462,59794,3},{5458,59794,3},{5458,59801,3},{5457,59801,3}, {5455,59793,3},{5455,59798,3},{5450,59798,3},{5448,59794,3},{5447,59766,3}, {5447,59789,3},{5445,59794,3},{5445,59791,3},{5447,59789,3},{5445,59783,3}, {5442,59784,3},{5438,59774,3},{5437,59753,3},{5438,59749,3},{5438,59743,3}, {5437,59721,3},{5435,59718,3},{5433,59718,3},{5432,59709,3},{5433,59726,3}, {5428,59711,3},{5425,59713,3},{5423,59691,3},{5415,59666,3},{5413,59644,3}, {5405,59598,3},{5407,59584,3},{5405,59579,3},{5403,59578,3},{5402,59584,3}, {5400,59584,3},{5402,59593,3},{5402,59604,3},{5407,59634,3},{5410,59654,3}, {5413,59661,3},{5412,59668,3},{5418,59679,3},{5420,59689,3},{5423,59694,3}, {5423,59699,3},{5415,59691,3},{5412,59683,3},{5410,59683,3},{5403,59673,3}, {5403,59633,3},{5402,59644,3},{5397,59638,3},{5393,59616,3},{5383,59589,3}, {5382,59576,3},{5383,59568,3},{5385,59556,3},{5383,59548,3},{5382,59549,3}, {5380,59556,3},{5378,59554,3},{5378,59544,3},{5377,59531,3},{5378,59523,3}, {5370,59534,3},{5370,59529,3},{5368,59526,3},{5362,59524,3},{5357,59529,3}, {5353,59523,3},{5355,59521,3},{5357,59516,3},{5363,59501,3},{5367,59498,3}, {5370,59484,3},{5373,59468,3},{5377,59456,3},{5383,59449,3},{5380,59451,3}, {5375,59448,3},{5373,59443,3},{5372,59444,3},{5372,59454,3},{5372,59461,3}, {5368,59483,3},{5355,59509,3},{5355,59518,3},{5350,59526,3},{5350,59531,3}, {5343,59533,3},{5347,59528,3},{5343,59518,3},{5338,59506,3},{5338,59503,3}, {5335,59499,3},{5337,59496,3},{5335,59494,3},{5333,59498,3},{5335,59518,3}, {5332,59516,3},{5327,59494,3},{5327,59511,3},{5332,59519,3},{5327,59524,3}, {5330,59528,3},{5332,59523,3},{5333,59521,3},{5335,59533,3},{5347,59546,3}, {5345,59549,3},{5348,59549,3},{5347,59554,3},{5348,59558,3},{5352,59546,3}, {5353,59548,3},{5352,59561,3},{5353,59578,3},{5358,59589,3},{5362,59598,3}, {5365,59599,3},{5365,59603,3},{5368,59606,3},{5367,59608,3},{5368,59614,3}, {5367,59619,3},{5368,59628,3},{5372,59629,3},{5372,59634,3},{5375,59634,3}, {5375,59631,3},{5380,59629,3},{5388,59648,3},{5395,59653,3},{5397,59666,3}, {5398,59676,3},{5402,59681,3},{5403,59694,3},{5405,59704,3},{5407,59714,3}, {5410,59723,3},{5407,59741,3},{5407,59758,3},{5410,59751,3},{5410,59739,3}, {5413,59733,3},{5413,59719,3},{5408,59704,3},{5413,59694,3},{5420,59701,3}, {5420,59713,3},{5423,59713,3},{5423,59718,3},{5423,59733,3},{5420,59744,3}, {5422,59748,3},{5420,59751,3},{5422,59758,3},{5418,59758,3},{5420,59771,3}, {5418,59776,3},{5417,59774,3},{5418,59779,3},{5417,59783,3},{5420,59789,3}, {5418,59793,3},{5415,59798,3},{5413,59796,3},{5413,59799,3},{5410,59799,3}, {5400,59806,3},{5397,59813,3},{5393,59821,3},{5393,59814,3},{5388,59814,3}, {5385,59821,3},{5382,59828,3},{5382,59823,3},{5380,59826,3},{5378,59821,3}, {5377,59819,3},{5373,59824,3},{5363,59788,3},{5358,59781,3},{5362,59791,3}, {5360,59791,3},{5358,59804,3},{5355,59801,3},{5353,59806,3},{5350,59806,3}, {5343,59799,3},{5343,59808,3},{5348,59808,3},{5353,59821,3},{5357,59823,3}, {5357,59819,3},{5358,59823,3},{5362,59823,3},{5363,59828,3},{5367,59829,3}, {5372,59834,3},{5373,59839,3},{5372,59848,3},{5373,59853,3},{5372,59856,3}, {5373,59858,3},{5373,59861,3},{5375,59861,3},{5375,59866,3},{5372,59869,3}, {5373,59874,3},{5375,59873,3},{5377,59874,3},{5378,59888,3},{5377,59893,3}, {5373,59893,3},{5373,59894,3},{5372,59893,3},{5370,59881,3},{5367,59876,3}, {5368,59866,3},{5367,59863,3},{5362,59888,3},{5363,59903,3},{5360,59909,3}, {5360,59903,3},{5358,59901,3},{5358,59904,3},{5357,59933,3},{5355,59938,3}, {5350,59936,3},{5352,59929,3},{5353,59931,3},{5353,59929,3},{5357,59911,3}, {5355,59909,3},{5353,59909,3},{5347,59933,3},{5343,59933,3},{5342,59939,3}, {5337,59933,3},{5337,59938,3},{5340,59944,3},{5337,59949,3},{5335,59948,3}, {5333,59956,3},{5332,59953,3},{5330,59944,3},{5328,59954,3},{5327,59954,3}, {5325,59949,3},{5323,59953,3},{5323,59958,3},{5327,59959,3},{5325,59961,3}, {5320,59958,3},{5320,59953,3},{5318,59956,3},{5318,59959,3},{5317,59959,3}, {5313,59961,3},{5310,59953,3},{5312,59941,3},{5308,59948,3},{5303,59944,3}, {5303,59931,3},{5303,59919,3},{5302,59928,3},{5298,59923,3},{5297,59924,3}, {5300,59933,3},{5300,59941,3},{5297,59948,3},{5295,59944,3},{5292,59953,3}, {5290,59953,3},{5288,59956,3},{5283,59956,3},{5282,59948,3},{5282,59946,3}, {5282,59939,3},{5280,59936,3},{5278,59944,3},{5277,59936,3},{5280,59931,3}, {5282,59919,3},{5278,59921,3},{5277,59931,3},{5272,59934,3},{5272,59936,3}, {5268,59939,3},{5268,59958,3},{5265,59963,3},{5263,59958,3},{5262,59961,3}, {5260,59956,3},{5262,59953,3},{5262,59946,3},{5263,59943,3},{5265,59931,3}, {5265,59926,3},{5265,59924,3},{5265,59931,3},{5262,59939,3},{5258,59931,3}, {5257,59938,3},{5255,59936,3},{5257,59928,3},{5253,59914,3},{5258,59903,3}, {5260,59886,3},{5257,59891,3},{5257,59901,3},{5253,59911,3},{5253,59919,3}, {5255,59924,3},{5253,59933,3},{5250,59939,3},{5252,59953,3},{5248,59951,3}, {5250,59961,3},{5247,59963,3},{5245,59959,3},{5243,59971,3},{5240,59969,3}, {5237,59973,3},{5235,59971,3},{5238,59963,3},{5238,59956,3},{5237,59954,3}, {5237,59958,3},{5235,59959,3},{5233,59958,3},{5243,59916,3},{5240,59923,3}, {5237,59939,3},{5235,59941,3},{5232,59954,3},{5230,59951,3},{5230,59958,3}, {5228,59959,3},{5230,59966,3},{5227,59964,3},{5225,59958,3},{5223,59958,3}, {5225,59963,3},{5223,59969,3},{5222,59974,3},{5222,59958,3},{5218,59961,3}, {5218,59968,3},{5213,59964,3},{5210,59968,3},{5208,59966,3},{5208,59956,3}, {5205,59959,3},{5200,59951,3},{5202,59939,3},{5197,59946,3},{5193,59944,3}, {5187,59924,3},{5182,59916,3},{5178,59914,3},{5178,59901,3},{5175,59901,3}, {5173,59896,3},{5175,59893,3},{5168,59888,3},{5165,59878,3},{5165,59868,3}, {5160,59868,3},{5157,59861,3},{5153,59859,3},{5153,59856,3},{5148,59854,3}, {5147,59851,3},{5148,59843,3},{5142,59841,3},{5142,59828,3},{5142,59826,3}, {5142,59821,3},{5142,59819,3},{5142,59814,3},{5150,59811,3},{5148,59798,3}, {5147,59796,3},{5148,59793,3},{5147,59791,3},{5145,59791,3},{5145,59789,3}, {5147,59788,3},{5143,59784,3},{5143,59776,3},{5147,59778,3},{5143,59774,3}, {5143,59768,3},{5148,59768,3},{5147,59761,3},{5140,59759,3},{5142,59756,3}, {5143,59756,3},{5142,59754,3},{5132,59734,3},{5128,59723,3},{5130,59721,3}, {5127,59714,3},{5128,59709,3},{5133,59711,3},{5133,59708,3},{5132,59709,3}, {5130,59708,3},{5128,59706,3},{5127,59706,3},{5130,59694,3},{5130,59688,3}, {5125,59678,3},{5127,59676,3},{5128,59673,3},{5123,59673,3},{5123,59671,3}, {5125,59669,3},{5122,59669,3},{5118,59676,3},{5115,59674,3},{5113,59669,3}, {5110,59663,3},{5108,59658,3},{5107,59654,3},{5108,59653,3},{5105,59651,3}, {5103,59653,3},{5100,59648,3},{5100,59644,3},{5103,59648,3},{5105,59646,3}, {5102,59639,3},{5102,59636,3},{5100,59636,3},{5100,59641,3},{5095,59639,3}, {5093,59641,3},{5090,59639,3},{5088,59643,3},{5087,59638,3},{5083,59641,3}, {5078,59633,3},{5075,59634,3},{5077,59629,3},{5078,59626,3},{5082,59626,3}, {5087,59631,3},{5088,59629,3},{5088,59626,3},{5080,59624,3},{5075,59616,3}, {5073,59616,3},{5073,59614,3},{5075,59613,3},{5075,59609,3},{5072,59609,3}, {5070,59604,3},{5067,59601,3},{5067,59594,3},{5063,59594,3},{5062,59589,3}, {5057,59588,3},{5057,59584,3},{5053,59584,3},{5052,59581,3},{5048,59578,3}, {5047,59564,3},{5043,59561,3},{5043,59554,3},{5037,59548,3},{5037,59551,3}, {5033,59551,3},{5035,59554,3},{5032,59553,3},{5028,59544,3},{5025,59541,3}, {5023,59533,3},{5025,59529,3},{5023,59524,3},{5020,59523,3},{5023,59523,3}, {5023,59519,3},{5025,59521,3},{5028,59521,3},{5028,59518,3},{5023,59511,3}, {5023,59509,3},{5027,59513,3},{5027,59509,3},{5028,59508,3},{5025,59508,3}, {5025,59499,3},{5022,59499,3},{5025,59496,3},{5023,59493,3},{5027,59491,3}, {5020,59478,3},{5022,59474,3},{5025,59474,3},{5022,59469,3},{5023,59469,3}, {5023,59461,3},{5020,59458,3},{5022,59454,3},{5022,59453,3},{5027,59458,3}, {5022,59444,3},{5020,59443,3},{5022,59441,3},{5023,59433,3},{5020,59431,3}, {5022,59426,3},{5018,59424,3},{5020,59421,3},{5018,59419,3},{5020,59416,3}, {5020,59406,3},{5008,59364,3},{5010,59358,3},{5015,59376,3},{5018,59378,3}, {5013,59361,3},{5013,59356,3},{5018,59354,3},{5020,59351,3},{5023,59349,3}, {5023,59314,3},{5027,59308,3},{5027,59306,3},{5028,59304,3},{5027,59298,3}, {5030,59296,3},{5025,59291,3},{5028,59283,3},{5027,59279,3},{5028,59263,3}, {5028,59261,3},{5032,59264,3},{5030,59258,3},{5028,59256,3},{5028,59239,3}, {5032,59236,3},{5028,59229,3},{5030,59221,3},{5028,59218,3},{5025,59219,3}, {5023,59213,3},{5023,59198,3},{5022,59196,3},{5022,59193,3},{5027,59188,3}, {5025,59174,3},{5027,59173,3},{5027,59169,3},{5030,59166,3},{5030,59158,3}, {5032,59154,3},{5028,59128,3},{5027,59119,3},{5027,59109,3},{5032,59089,3}, {5028,59083,3},{5028,59073,3},{5027,59049,3},{5027,59046,3},{5030,59044,3}, {5028,59038,3},{5030,59024,3},{5028,59018,3},{5032,59011,3},{5030,59009,3}, {5030,58989,3},{5025,58964,3},{5027,58951,3},{5028,58946,3},{5028,58941,3}, {5027,58936,3},{5022,58931,3},{5022,58928,3},{5025,58926,3},{5022,58926,3}, {5018,58928,3},{5022,58913,3},{5020,58899,3},{5022,58896,3},{5027,58894,3}, {5027,58889,3},{5022,58883,3},{5018,58881,3},{5017,58884,3},{5017,58893,3}, {5013,58889,3},{5015,58881,3},{5015,58878,3},{5018,58873,3},{5015,58874,3}, {5013,58869,3},{5005,58863,3},{5002,58848,3},{4997,58839,3},{4995,58838,3}, {4992,58839,3},{4982,58833,3},{4985,58829,3},{4982,58821,3},{4975,58818,3}, {4968,58819,3},{4958,58813,3},{4948,58813,3},{4933,58799,3},{4933,58778,3}, {4930,58769,3},{4932,58764,3},{4930,58759,3},{4927,58754,3},{4930,58741,3}, {4928,58736,3},{4928,58731,3},{4925,58728,3},{4927,58724,3},{4920,58721,3}, {4918,58713,3},{4920,58706,3},{4917,58711,3},{4917,58716,3},{4912,58718,3}, {4910,58711,3},{4910,58703,3},{4905,58696,3},{4907,58691,3},{4910,58698,3}, {4913,58699,3},{4915,58696,3},{4918,58694,3},{4918,58691,3},{4918,58694,3}, {4912,58696,3},{4908,58691,3},{4905,58676,3},{4900,58673,3},{4895,58671,3}, {4893,58666,3},{4892,58671,3},{4890,58658,3},{4888,58654,3},{4882,58641,3}, {4878,58639,3},{4877,58629,3},{4860,58621,3},{4858,58619,3},{4858,58613,3}, {4845,58606,3},{4835,58596,3},{4830,58593,3},{4825,58583,3},{4823,58578,3}, {4813,58568,3},{4815,58554,3},{4822,58548,3},{4825,58541,3},{4827,58539,3}, {4827,58523,3},{4837,58499,3},{4837,58493,3},{4838,58476,3},{4838,58468,3}, {4843,58459,3},{4843,58453,3},{4847,58438,3},{4843,58429,3},{4845,58438,3}, {4843,58441,3},{4840,58458,3},{4837,58456,3},{4835,58448,3},{4832,58449,3}, {4835,58459,3},{4835,58481,3},{4832,58503,3},{4830,58504,3},{4830,58509,3}, {4827,58514,3},{4823,58518,3},{4823,58526,3},{4825,58533,3},{4823,58536,3}, {4822,58544,3},{4815,58549,3},{4812,58563,3},{4807,58558,3},{4800,58558,3}, {4797,58554,3},{4792,58553,3},{4785,58546,3},{4777,58543,3},{4775,58539,3}, {4770,58534,3},{4767,58523,3},{4763,58523,3},{4758,58516,3},{4750,58513,3}, {4743,58491,3},{4743,58486,3},{4738,58486,3},{4727,58479,3},{4710,58464,3}, {4707,58454,3},{4705,58446,3},{4700,58439,3},{4687,58418,3},{4682,58414,3}, {4675,58406,3},{4678,58414,3},{4685,58421,3},{4685,58436,3},{4690,58444,3}, {4690,58451,3},{4692,58454,3},{4692,58459,3},{4695,58463,3},{4702,58486,3}, {4718,58504,3},{4732,58516,3},{4733,58524,3},{4738,58531,3},{4745,58533,3}, {4748,58534,3},{4753,58546,3},{4782,58576,3},{4783,58581,3},{4787,58581,3}, {4800,58593,3},{4802,58603,3},{4810,58613,3},{4815,58623,3},{4825,58633,3}, {4833,58651,3},{4837,58654,3},{4837,58663,3},{4843,58674,3},{4845,58683,3}, {4853,58691,3},{4855,58701,3},{4863,58713,3},{4865,58724,3},{4868,58731,3}, {4870,58739,3},{4885,58781,3},{4887,58793,3},{4892,58803,3},{4897,58828,3}, {4912,58873,3},{4913,58888,3},{4917,58894,3},{4922,58928,3},{4922,58946,3}, {4923,58959,3},{4923,58963,3},{4927,58976,3},{4927,58991,3},{4923,59013,3}, {4922,59039,3},{4918,59056,3},{4915,59063,3},{4912,59078,3},{4897,59106,3}, {4888,59114,3},{4882,59114,3},{4875,59121,3},{4882,59106,3},{4888,59081,3}, {4883,59089,3},{4882,59083,3},{4882,59096,3},{4878,59099,3},{4878,59094,3}, {4877,59093,3},{4877,59098,3},{4875,59103,3},{4863,59119,3},{4862,59111,3}, {4860,59109,3},{4855,59108,3},{4852,59118,3},{4850,59114,3},{4847,59104,3}, {4842,59104,3},{4840,59086,3},{4835,59071,3},{4833,59064,3},{4832,59066,3}, {4820,59059,3},{4817,59043,3},{4818,59039,3},{4815,59041,3},{4803,59016,3}, {4800,59006,3},{4800,58989,3},{4805,58986,3},{4812,58954,3},{4817,58948,3}, {4822,58946,3},{4818,58944,3},{4818,58941,3},{4817,58936,3},{4812,58933,3}, {4810,58928,3},{4812,58913,3},{4812,58906,3},{4810,58909,3},{4807,58908,3}, {4810,58901,3},{4812,58894,3},{4812,58888,3},{4810,58884,3},{4805,58883,3}, {4805,58873,3},{4803,58869,3},{4800,58851,3},{4798,58861,3},{4802,58869,3}, {4802,58874,3},{4807,58893,3},{4807,58901,3},{4802,58901,3},{4800,58911,3}, {4797,58921,3},{4793,58928,3},{4792,58953,3},{4787,58961,3},{4782,58964,3}, {4772,58968,3},{4767,58973,3},{4765,58969,3},{4762,58973,3},{4767,58976,3}, {4768,58988,3},{4775,59001,3},{4780,59013,3},{4785,59031,3},{4783,59038,3}, {4780,59031,3},{4778,59029,3},{4782,59053,3},{4780,59056,3},{4778,59058,3}, {4775,59056,3},{4775,59049,3},{4773,59053,3},{4775,59058,3},{4770,59059,3}, {4772,59061,3},{4775,59059,3},{4777,59063,3},{4773,59068,3},{4772,59069,3}, {4770,59061,3},{4768,59059,3},{4767,59054,3},{4762,59054,3},{4755,59046,3}, {4752,59046,3},{4752,59049,3},{4748,59046,3},{4747,59044,3},{4745,59043,3}, {4748,59046,3},{4748,59049,3},{4745,59048,3},{4743,59048,3},{4735,59044,3}, {4740,59046,3},{4737,59043,3},{4728,59039,3},{4727,59033,3},{4713,59013,3}, {4708,58999,3},{4707,59008,3},{4708,59009,3},{4708,59016,3},{4705,59014,3}, {4705,59019,3},{4708,59026,3},{4708,59034,3},{4705,59038,3},{4708,59043,3}, {4708,59056,3},{4705,59053,3},{4698,59056,3},{4692,59046,3},{4683,59046,3}, {4678,59049,3},{4672,59058,3},{4670,59051,3},{4667,59051,3},{4670,59054,3}, {4667,59061,3},{4670,59061,3},{4668,59064,3},{4658,59064,3},{4650,59069,3}, {4648,59064,3},{4645,59068,3},{4647,59071,3},{4642,59074,3},{4633,59073,3}, {4632,59066,3},{4633,59076,3},{4633,59078,3},{4637,59079,3},{4632,59084,3}, {4628,59079,3},{4622,59079,3},{4623,59084,3},{4625,59084,3},{4622,59099,3}, {4623,59111,3},{4622,59114,3},{4620,59121,3},{4618,59119,3},{4615,59121,3}, {4618,59124,3},{4615,59128,3},{4618,59131,3},{4618,59141,3},{4612,59158,3}, {4610,59159,3},{4608,59156,3},{4608,59151,3},{4605,59144,3},{4607,59129,3}, {4602,59126,3},{4598,59131,3},{4598,59133,3},{4600,59134,3},{4598,59143,3}, {4597,59149,3},{4593,59149,3},{4592,59154,3},{4588,59156,3},{4587,59164,3}, {4587,59163,3},{4583,59161,3},{4585,59168,3},{4583,59169,3},{4582,59169,3}, {4583,59171,3},{4587,59171,3},{4587,59173,3},{4587,59178,3},{4588,59188,3}, {4587,59194,3},{4585,59194,3},{4585,59188,3},{4582,59193,3},{4582,59184,3}, {4580,59186,3},{4580,59213,3},{4577,59204,3},{4577,59198,3},{4575,59199,3}, {4572,59208,3},{4575,59211,3},{4573,59211,3},{4577,59218,3},{4573,59218,3}, {4577,59224,3},{4575,59229,3},{4578,59228,3},{4580,59224,3},{4582,59226,3}, {4577,59258,3},{4577,59269,3},{4575,59264,3},{4575,59261,3},{4573,59263,3}, {4573,59269,3},{4572,59273,3},{4567,59259,3},{4563,59258,3},{4565,59261,3}, {4563,59263,3},{4562,59261,3},{4565,59266,3},{4563,59271,3},{4567,59269,3}, {4568,59274,3},{4567,59281,3},{4565,59283,3},{4565,59289,3},{4562,59284,3}, {4560,59288,3},{4562,59289,3},{4567,59301,3},{4565,59293,3},{4567,59294,3}, {4570,59311,3},{4578,59328,3},{4587,59339,3},{4588,59344,3},{4587,59346,3}, {4583,59344,3},{4568,59348,3},{4567,59354,3},{4563,59356,3},{4562,59364,3}, {4562,59369,3},{4563,59373,3},{4562,59371,3},{4562,59374,3},{4567,59379,3}, {4568,59389,3},{4560,59399,3},{4558,59399,3},{4553,59403,3},{4550,59413,3}, {4545,59413,3},{4540,59399,3},{4542,59399,3},{4538,59389,3},{4537,59388,3}, {4535,59389,3},{4533,59411,3},{4535,59424,3},{4533,59433,3},{4532,59439,3}, {4527,59439,3},{4530,59433,3},{4527,59434,3},{4523,59431,3},{4520,59424,3}, {4523,59421,3},{4527,59424,3},{4525,59419,3},{4520,59419,3},{4525,59416,3}, {4525,59409,3},{4522,59399,3},{4518,59399,3},{4518,59403,3},{4517,59401,3}, {4515,59396,3},{4517,59393,3},{4515,59391,3},{4515,59384,3},{4513,59381,3}, {4515,59374,3},{4517,59373,3},{4515,59371,3},{4518,59366,3},{4512,59373,3}, {4512,59369,3},{4508,59371,3},{4508,59366,3},{4510,59366,3},{4508,59364,3}, {4510,59361,3},{4508,59361,3},{4510,59354,3},{4507,59354,3},{4508,59351,3}, {4505,59353,3},{4505,59348,3},{4502,59348,3},{4505,59343,3},{4502,59341,3}, {4502,59336,3},{4502,59334,3},{4500,59331,3},{4498,59338,3},{4498,59329,3}, {4497,59329,3},{4498,59321,3},{4495,59318,3},{4495,59313,3},{4493,59309,3}, {4492,59304,3},{4492,59303,3},{4488,59303,3},{4492,59299,3},{4490,59296,3}, {4488,59296,3},{4485,59291,3},{4483,59291,3},{4490,59288,3},{4485,59284,3}, {4487,59281,3},{4483,59279,3},{4480,59283,3},{4480,59279,3},{4483,59278,3}, {4483,59274,3},{4482,59274,3},{4480,59269,3},{4478,59271,3},{4480,59268,3}, {4478,59261,3},{4478,59256,3},{4475,59253,3},{4472,59256,3},{4472,59253,3}, {4473,59249,3},{4472,59249,3},{4473,59243,3},{4470,59238,3},{4472,59236,3}, {4477,59236,3},{4477,59234,3},{4477,59233,3},{4477,59229,3},{4470,59234,3}, {4467,59231,3},{4472,59231,3},{4473,59226,3},{4478,59224,3},{4473,59224,3}, {4468,59221,3},{4470,59219,3},{4473,59221,3},{4467,59216,3},{4473,59213,3}, {4472,59211,3},{4468,59213,3},{4465,59208,3},{4463,59208,3},{4463,59196,3}, {4465,59194,3},{4467,59198,3},{4468,59196,3},{4467,59191,3},{4463,59194,3}, {4458,59193,3},{4468,59176,3},{4470,59174,3},{4472,59171,3},{4467,59173,3}, {4467,59178,3},{4463,59179,3},{4458,59183,3},{4455,59181,3},{4452,59184,3}, {4448,59183,3},{4447,59179,3},{4447,59178,3},{4448,59178,3},{4448,59176,3}, {4443,59173,3},{4447,59173,3},{4447,59166,3},{4445,59166,3},{4447,59161,3}, {4450,59159,3},{4447,59158,3},{4447,59156,3},{4448,59154,3},{4453,59158,3}, {4450,59156,3},{4452,59153,3},{4450,59151,3},{4448,59149,3},{4452,59143,3}, {4453,59141,3},{4458,59144,3},{4462,59143,3},{4463,59144,3},{4465,59143,3}, {4468,59148,3},{4465,59138,3},{4463,59129,3},{4458,59129,3},{4452,59134,3}, {4452,59131,3},{4447,59128,3},{4448,59124,3},{4455,59124,3},{4458,59119,3}, {4457,59116,3},{4453,59114,3},{4457,59106,3},{4450,59106,3},{4447,59104,3}, {4447,59106,3},{4445,59101,3},{4442,59103,3},{4440,59111,3},{4440,59106,3}, {4438,59106,3},{4437,59114,3},{4435,59101,3},{4433,59103,3},{4432,59106,3}, {4435,59106,3},{4432,59109,3},{4430,59108,3},{4428,59108,3},{4430,59113,3}, {4427,59111,3},{4425,59108,3},{4427,59103,3},{4430,59103,3},{4433,59094,3}, {4428,59101,3},{4425,59099,3},{4425,59096,3},{4413,59086,3},{4415,59083,3}, {4415,59079,3},{4415,59076,3},{4413,59074,3},{4412,59078,3},{4413,59079,3}, {4412,59081,3},{4408,59081,3},{4407,59078,3},{4407,59074,3},{4405,59071,3}, {4405,59064,3},{4403,59069,3},{4398,59069,3},{4398,59066,3},{4395,59063,3}, {4395,59054,3},{4392,59051,3},{4388,59056,3},{4387,59058,3},{4387,59054,3}, {4382,59053,3},{4382,59051,3},{4387,59049,3},{4388,59046,3},{4383,59048,3}, {4380,59048,3},{4380,59044,3},{4387,59039,3},{4385,59039,3},{4382,59041,3}, {4380,59043,3},{4375,59039,3},{4383,59033,3},{4375,59036,3},{4370,59033,3}, {4372,59031,3},{4370,59029,3},{4370,59028,3},{4375,59028,3},{4367,59024,3}, {4368,59021,3},{4375,59023,3},{4372,59019,3},{4370,59018,3},{4380,59013,3}, {4378,59013,3},{4378,59011,3},{4372,59014,3},{4368,59011,3},{4367,59009,3}, {4368,59006,3},{4370,59003,3},{4375,59004,3},{4377,59003,3},{4373,59003,3}, {4373,58999,3},{4367,59003,3},{4362,59001,3},{4360,58999,3},{4355,59003,3}, {4357,58999,3},{4357,58996,3},{4360,58991,3},{4357,58991,3},{4353,58996,3}, {4350,58994,3},{4355,58993,3},{4355,58991,3},{4352,58989,3},{4352,58988,3}, {4347,58989,3},{4353,58981,3},{4355,58981,3},{4357,58979,3},{4348,58971,3}, {4350,58969,3},{4350,58963,3},{4357,58963,3},{4357,58961,3},{4355,58961,3}, {4357,58958,3},{4368,58958,3},{4365,58956,3},{4362,58956,3},{4363,58954,3}, {4370,58954,3},{4373,58951,3},{4380,58949,3},{4377,58949,3},{4383,58944,3}, {4382,58943,3},{4380,58943,3},{4378,58941,3},{4378,58938,3},{4385,58938,3}, {4383,58936,3},{4380,58936,3},{4373,58939,3},{4370,58938,3},{4373,58936,3}, {4368,58934,3},{4375,58931,3},{4372,58931,3},{4373,58929,3},{4377,58928,3}, {4373,58924,3},{4380,58923,3},{4383,58926,3},{4383,58923,3},{4382,58923,3}, {4383,58921,3},{4385,58919,3},{4402,58921,3},{4408,58918,3},{4410,58914,3}, {4417,58918,3},{4423,58923,3},{4433,58924,3},{4448,58938,3},{4453,58949,3}, {4458,58951,3},{4458,58941,3},{4445,58924,3},{4438,58918,3},{4442,58918,3}, {4460,58941,3},{4462,58946,3},{4468,58958,3},{4467,58959,3},{4460,58961,3}, {4462,58968,3},{4468,58976,3},{4478,58993,3},{4468,58971,3},{4470,58968,3}, {4467,58964,3},{4468,58961,3},{4470,58961,3},{4490,58998,3},{4492,59006,3}, {4500,59019,3},{4505,59033,3},{4515,59054,3},{4522,59079,3},{4525,59093,3}, {4528,59096,3},{4530,59096,3},{4533,59088,3},{4530,59103,3},{4527,59104,3}, {4523,59101,3},{4520,59099,3},{4517,59101,3},{4515,59098,3},{4513,59098,3}, {4510,59099,3},{4513,59104,3},{4510,59114,3},{4505,59121,3},{4498,59121,3}, {4500,59121,3},{4500,59126,3},{4502,59124,3},{4505,59126,3},{4505,59124,3}, {4512,59116,3},{4515,59116,3},{4517,59119,3},{4520,59121,3},{4528,59148,3}, {4527,59151,3},{4528,59156,3},{4532,59158,3},{4530,59163,3},{4532,59164,3}, {4532,59178,3},{4533,59183,3},{4532,59188,3},{4528,59189,3},{4533,59189,3}, {4537,59199,3},{4537,59184,3},{4540,59176,3},{4538,59173,3},{4540,59161,3}, {4538,59151,3},{4535,59148,3},{4537,59144,3},{4538,59144,3},{4540,59139,3}, {4538,59136,3},{4538,59131,3},{4540,59133,3},{4542,59129,3},{4540,59114,3}, {4538,59111,3},{4540,59104,3},{4537,59104,3},{4537,59098,3},{4540,59091,3}, {4542,59079,3},{4538,59069,3},{4535,59064,3},{4533,59066,3},{4532,59061,3}, {4528,59059,3},{4532,59059,3},{4533,59059,3},{4535,59054,3},{4535,59049,3}, {4532,59043,3},{4535,59043,3},{4542,59044,3},{4545,59051,3},{4547,59056,3}, {4548,59053,3},{4553,59068,3},{4558,59073,3},{4560,59079,3},{4567,59088,3}, {4568,59091,3},{4572,59093,3},{4573,59093,3},{4575,59096,3},{4580,59099,3}, {4582,59106,3},{4580,59106,3},{4577,59103,3},{4573,59103,3},{4577,59109,3}, {4577,59106,3},{4580,59108,3},{4583,59109,3},{4588,59103,3},{4588,59099,3}, {4587,59103,3},{4577,59089,3},{4572,59088,3},{4573,59081,3},{4577,59084,3}, {4582,59088,3},{4585,59083,3},{4590,59083,3},{4587,59081,3},{4590,59078,3}, {4595,59074,3},{4600,59068,3},{4605,59068,3},{4608,59061,3},{4608,59059,3}, {4603,59066,3},{4600,59066,3},{4593,59074,3},{4585,59079,3},{4580,59076,3}, {4575,59069,3},{4572,59071,3},{4572,59066,3},{4562,59061,3},{4560,59058,3}, {4563,59054,3},{4562,59044,3},{4555,59034,3},{4545,59003,3},{4537,58984,3}, {4532,58981,3},{4532,58974,3},{4527,58964,3},{4525,58963,3},{4527,58958,3}, {4525,58954,3},{4520,58946,3},{4522,58938,3},{4528,58933,3},{4528,58926,3}, {4530,58923,3},{4532,58923,3},{4538,58934,3},{4542,58936,3},{4547,58936,3}, {4542,58931,3},{4535,58928,3},{4535,58923,3},{4533,58916,3},{4528,58921,3}, {4528,58928,3},{4525,58931,3},{4522,58923,3},{4520,58921,3},{4517,58914,3}, {4522,58911,3},{4520,58904,3},{4518,58906,3},{4518,58911,3},{4517,58911,3}, {4513,58904,3},{4515,58901,3},{4512,58901,3},{4510,58896,3},{4507,58893,3}, {4508,58889,3},{4512,58889,3},{4515,58888,3},{4513,58884,3},{4515,58883,3}, {4508,58871,3},{4507,58866,3},{4508,58864,3},{4505,58861,3},{4507,58856,3}, {4508,58858,3},{4510,58858,3},{4508,58856,3},{4508,58851,3},{4505,58848,3}, {4507,58846,3},{4512,58846,3},{4513,58851,3},{4515,58843,3},{4518,58841,3}, {4515,58838,3},{4517,58833,3},{4512,58831,3},{4508,58833,3},{4515,58824,3}, {4522,58823,3},{4522,58821,3},{4525,58818,3},{4522,58818,3},{4518,58819,3}, {4518,58816,3},{4520,58809,3},{4517,58806,3},{4515,58803,3},{4520,58796,3}, {4527,58789,3},{4540,58794,3},{4543,58789,3},{4550,58788,3},{4553,58794,3}, {4558,58794,3},{4562,58789,3},{4560,58784,3},{4563,58771,3},{4568,58764,3}, {4567,58763,3},{4570,58756,3},{4578,58756,3},{4583,58761,3},{4588,58758,3}, {4593,58761,3},{4595,58759,3},{4707,58756,3},{4712,58748,3},{4720,58739,3}, {4730,58721,3},{4733,58718,3},{4737,58704,3},{4733,58698,3},{4730,58698,3}, {4728,58693,3},{4730,58686,3},{4728,58679,3},{4725,58671,3},{4723,58661,3}, {4718,58646,3},{4727,58631,3},{4730,58631,3},{4743,58631,3},{4747,58613,3}, {4670,58534,3},{4643,58531,3},{4637,58521,3},{4635,58516,3},{4632,58516,3}, {4628,58513,3},{4620,58508,3},{4615,58513,3},{4610,58511,3},{4608,58506,3}, {4607,58508,3},{4603,58506,3},{4598,58504,3},{4595,58513,3},{4592,58511,3}, {4582,58496,3},{4575,58498,3},{4572,58494,3},{4572,58489,3},{4567,58479,3}, {4557,58466,3},{4550,58464,3},{4543,58473,3},{4540,58471,3},{4540,58468,3}, {4543,58463,3},{4543,58456,3},{4542,58454,3},{4532,58454,3},{4530,58453,3}, {4523,58448,3},{4530,58444,3},{4535,58439,3},{4535,58434,3},{4532,58433,3}, {4530,58428,3},{4528,58424,3},{4525,58423,3},{4525,58418,3},{4530,58408,3}, {4528,58401,3},{4525,58398,3},{4525,58393,3},{4520,58396,3},{4512,58393,3}, {4508,58386,3},{4502,58386,3},{4502,58381,3},{4502,58374,3},{4502,58368,3}, {4502,58359,3},{4502,58353,3},{4502,58346,3},{4502,58339,3},{4502,58331,3}, {4502,58324,3},{4502,58316,3},{4502,58309,3},{4502,58303,3},{4502,58296,3}, {4502,58288,3},{4502,58281,3},{4502,58273,3},{4502,58266,3},{4502,58259,3}, {4502,58251,3},{4502,58244,3},{4502,58238,3},{4502,58229,3},{4502,58223,3}, {4502,58216,3},{4502,58209,3},{4502,58201,3},{4500,58111,3},{4500,58068,3}, {4500,58061,3},{4502,58053,3},{4498,58044,3},{4498,58038,3},{4493,58029,3}, {4483,58004,3},{4462,57973,3},{4448,57956,3},{4440,57941,3},{4437,57933,3}, {4437,57928,3},{4433,57918,3},{4432,57906,3},{4425,57894,3},{4423,57889,3}, {4425,57888,3},{4423,57886,3},{4422,57874,3},{4423,57873,3},{4422,57868,3}, {4412,57846,3},{4408,57839,3},{4407,57831,3},{4408,57833,3},{4410,57829,3}, {4413,57836,3},{4418,57848,3},{4420,57843,3},{4413,57831,3},{4417,57831,3}, {4420,57836,3},{4422,57834,3},{4418,57823,3},{4417,57818,3},{4418,57813,3}, {4417,57804,3},{4418,57803,3},{4413,57788,3},{4412,57781,3},{4408,57778,3}, {4408,57779,3},{4415,57794,3},{4415,57804,3},{4415,57806,3},{4413,57803,3}, {4413,57804,3},{4410,57803,3},{4408,57804,3},{4410,57809,3},{4412,57806,3}, {4415,57811,3},{4415,57818,3},{4418,57829,3},{4412,57828,3},{4403,57823,3}, {4405,57826,3},{4405,57838,3},{4412,57851,3},{4403,57844,3},{4400,57834,3}, {4398,57836,3},{4395,57831,3},{4393,57833,3},{4395,57836,3},{4395,57843,3}, {4395,57849,3},{4395,57851,3},{4393,57844,3},{4385,57823,3},{4388,57813,3}, {4395,57819,3},{4392,57808,3},{4395,57803,3},{4395,57809,3},{4397,57811,3}, {4395,57808,3},{4397,57803,3},{4395,57788,3},{4400,57778,3},{4400,57783,3}, {4402,57783,3},{4403,57776,3},{4403,57769,3},{4403,57766,3},{4402,57763,3}, {4402,57768,3},{4400,57768,3},{4402,57756,3},{4398,57744,3},{4395,57709,3}, {4390,57688,3},{4392,57676,3},{4387,57663,3},{4387,57641,3},{4383,57633,3}, {4383,57626,3},{4378,57623,3},{4367,57603,3},{4365,57599,3},{4365,57589,3}, {4360,57584,3},{4357,57578,3},{4348,57574,3},{4335,57559,3},{4332,57558,3}, {4327,57561,3},{4325,57566,3},{4320,57579,3},{4320,57594,3},{4318,57601,3}, {4327,57621,3},{4327,57631,3},{4317,57631,3},{4308,57631,3},{4310,57629,3}, {4308,57628,3},{4305,57633,3},{4300,57633,3},{4297,57638,3},{4295,57643,3}, {4292,57644,3},{4288,57641,3},{4287,57628,3},{4283,57626,3},{4287,57624,3}, {4288,57619,3},{4288,57608,3},{4287,57601,3},{4288,57591,3},{4285,57588,3}, {4287,57578,3},{4285,57573,3},{4287,57564,3},{4282,57553,3},{4278,57516,3}, {4272,57504,3},{4267,57503,3},{4268,57499,3},{4265,57493,3},{4262,57491,3}, {4260,57493,3},{4260,57501,3},{4258,57506,3},{4257,57523,3},{4255,57531,3}, {4253,57524,3},{4257,57501,3},{4257,57484,3},{4265,57453,3},{4267,57444,3}, {4267,57423,3},{4265,57403,3},{4257,57383,3},{4240,57358,3},{4235,57354,3}, {4227,57351,3},{4225,57346,3},{4230,57349,3},{4232,57351,3},{4228,57344,3}, {4227,57344,3},{4225,57329,3},{4210,57294,3},{4203,57288,3},{4192,57286,3}, {4198,57281,3},{4203,57273,3},{4203,57266,3},{4198,57253,3},{4198,57246,3}, {4205,57228,3},{4207,57224,3},{4225,57226,3},{4232,57231,3},{4232,57236,3}, {4235,57241,3},{4232,57258,3},{4230,57273,3},{4232,57288,3},{4233,57293,3}, {4238,57296,3},{4245,57293,3},{4250,57294,3},{4248,57289,3},{4250,57288,3}, {4252,57276,3},{4255,57271,3},{4255,57273,3},{4257,57278,3},{4262,57284,3}, {4277,57289,3},{4282,57288,3},{4290,57289,3},{4297,57294,3},{4302,57294,3}, {4307,57318,3},{4313,57329,3},{4322,57336,3},{4325,57348,3},{4335,57361,3}, {4350,57366,3},{4368,57363,3},{4393,57364,3},{4408,57361,3},{4415,57369,3}, {4422,57374,3},{4435,57378,3},{4435,57381,3},{4442,57388,3},{4443,57396,3}, {4452,57398,3},{4462,57409,3},{4465,57409,3},{4470,57406,3},{4472,57409,3}, {4478,57408,3},{4478,57406,3},{4482,57408,3},{4483,57404,3},{4487,57403,3}, {4488,57401,3},{4492,57399,3},{4497,57401,3},{4498,57399,3},{4500,57399,3}, {4498,57396,3},{4500,57394,3},{4498,57393,3},{4505,57389,3},{4515,57379,3}, {4515,57378,3},{4520,57378,3},{4518,57376,3},{4520,57371,3},{4520,57366,3}, {4522,57364,3},{4525,57366,3},{4527,57366,3},{4527,57373,3},{4525,57374,3}, {4523,57393,3},{4525,57408,3},{4522,57408,3},{4517,57403,3},{4513,57404,3}, {4510,57409,3},{4500,57411,3},{4500,57413,3},{4502,57414,3},{4502,57416,3}, {4500,57418,3},{4497,57416,3},{4497,57424,3},{4492,57421,3},{4493,57426,3}, {4490,57429,3},{4493,57433,3},{4495,57431,3},{4497,57433,3},{4497,57441,3}, {4492,57436,3},{4487,57436,3},{4483,57434,3},{4480,57424,3},{4475,57423,3}, {4475,57424,3},{4478,57431,3},{4482,57438,3},{4478,57446,3},{4475,57448,3}, {4460,57441,3},{4470,57456,3},{4472,57461,3},{4473,57471,3},{4462,57478,3}, {4460,57488,3},{4455,57493,3},{4452,57513,3},{4447,57528,3},{4455,57536,3}, {4463,57536,3},{4468,57538,3},{4473,57531,3},{4475,57524,3},{4482,57526,3}, {4482,57529,3},{4485,57534,3},{4487,57539,3},{4485,57544,3},{4482,57543,3}, {4482,57546,3},{4480,57548,3},{4477,57548,3},{4475,57569,3},{4477,57569,3}, {4478,57564,3},{4483,57568,3},{4488,57568,3},{4487,57563,3},{4483,57566,3}, {4482,57563,3},{4480,57561,3},{4482,57558,3},{4485,57559,3},{4487,57554,3}, {4490,57556,3},{4490,57553,3},{4493,57553,3},{4495,57548,3},{4495,57544,3}, {4498,57543,3},{4502,57543,3},{4503,57536,3},{4507,57536,3},{4508,57531,3}, {4512,57526,3},{4512,57534,3},{4515,57538,3},{4518,57534,3},{4522,57529,3}, {4518,57524,3},{4523,57523,3},{4532,57533,3},{4540,57528,3},{4540,57519,3}, {4537,57516,3},{4535,57519,3},{4533,57513,3},{4537,57513,3},{4537,57508,3}, {4538,57504,3},{4543,57506,3},{4543,57503,3},{4540,57503,3},{4538,57501,3}, {4540,57499,3},{4543,57501,3},{4547,57496,3},{4557,57498,3},{4560,57496,3}, {4563,57493,3},{4558,57494,3},{4557,57486,3},{4560,57484,3},{4563,57484,3}, {4565,57478,3},{4568,57478,3},{4568,57476,3},{4570,57478,3},{4573,57473,3}, {4578,57473,3},{4582,57469,3},{4582,57464,3},{4583,57464,3},{4585,57469,3}, {4587,57463,3},{4590,57461,3},{4593,57459,3},{4590,57456,3},{4595,57456,3}, {4593,57449,3},{4595,57446,3},{4593,57443,3},{4595,57431,3},{4595,57424,3}, {4593,57421,3},{4593,57418,3},{4598,57421,3},{4602,57419,3},{4602,57414,3}, {4598,57411,3},{4600,57418,3},{4600,57419,3},{4597,57416,3},{4595,57409,3}, {4600,57391,3},{4598,57386,3},{4602,57388,3},{4595,57369,3},{4600,57379,3}, {4602,57371,3},{4603,57386,3},{4603,57378,3},{4602,57366,3},{4607,57381,3}, {4608,57383,3},{4610,57376,3},{4612,57374,3},{4612,57371,3},{4608,57369,3}, {4607,57361,3},{4602,57359,3},{4607,57358,3},{4610,57364,3},{4610,57339,3}, {4613,57326,3},{4612,57323,3},{4615,57314,3},{4615,57308,3},{4615,57306,3}, {4617,57299,3},{4618,57298,3},{4618,57304,3},{4618,57296,3},{4618,57293,3}, {4620,57291,3},{4618,57284,3},{4617,57269,3},{4618,57268,3},{4622,57273,3}, {4620,57266,3},{4618,57254,3},{4618,57248,3},{4618,57241,3},{4617,57238,3}, {4618,57223,3},{4620,57219,3},{4620,57216,3},{4625,57189,3},{4625,57181,3}, {4628,57176,3},{4627,57166,3},{4630,57159,3},{4630,57149,3},{4632,57148,3}, {4633,57131,3},{4637,57124,3},{4648,57128,3},{4650,57129,3},{4653,57126,3}, {4655,57118,3},{4653,57111,3},{4652,57106,3},{4653,57094,3},{4650,57089,3}, {4648,57089,3},{4648,57084,3},{4652,57083,3},{4655,57078,3},{4657,57078,3}, {4667,57089,3},{4670,57094,3},{4675,57091,3},{4675,57089,3},{4670,57084,3}, {4670,57083,3},{4670,57081,3},{4673,57079,3},{4675,57081,3},{4682,57081,3}, {4685,57091,3},{4683,57096,3},{4688,57101,3},{4693,57093,3},{4693,57084,3}, {4695,57079,3},{4693,57078,3},{4690,57078,3},{4690,57074,3},{4697,57069,3}, {4695,57064,3},{4698,57058,3},{4705,57059,3},{4710,57066,3},{4715,57064,3}, {4717,57068,3},{4718,57066,3},{4725,57073,3},{4730,57078,3},{4737,57073,3}, {4737,57069,3},{4738,57066,3},{4743,57064,3},{4748,57054,3},{4752,57044,3}, {4753,57041,3},{4757,57041,3},{4762,57033,3},{4762,57036,3},{4765,57036,3}, {4768,57039,3},{4772,57038,3},{4773,57043,3},{4780,57048,3},{4783,57043,3}, {4785,57043,3},{4792,57051,3},{4793,57053,3},{4797,57049,3},{4795,57046,3}, {4795,57044,3},{4797,57036,3},{4797,57009,3},{4792,56993,3},{4793,56969,3}, {4797,56954,3},{4800,56949,3},{4803,56946,3},{4803,56943,3},{4807,56943,3}, {4808,56936,3},{4817,56928,3},{4833,56918,3},{4840,56918,3},{4843,56914,3}, {4858,56909,3},{4862,56903,3},{4865,56904,3},{4867,56901,3},{4872,56896,3}, {4873,56898,3},{4875,56893,3},{4878,56893,3},{4875,56883,3},{4873,56881,3}, {4875,56873,3},{4878,56874,3},{4880,56868,3},{4882,56866,3},{4875,56851,3}, {4882,56838,3},{4880,56836,3},{4877,56836,3},{4878,56831,3},{4877,56824,3}, {4878,56818,3},{4877,56816,3},{4877,56808,3},{4880,56806,3},{4880,56798,3}, {4883,56794,3},{4885,56791,3},{4883,56781,3},{4888,56778,3},{4887,56771,3}, {4890,56768,3},{4890,56758,3},{4893,56758,3},{4892,56751,3},{4895,56741,3}, {4898,56733,3},{4902,56733,3},{4900,56729,3},{4900,56724,3},{4897,56718,3}, {4897,56713,3},{4900,56711,3},{4898,56709,3},{4893,56713,3},{4888,56711,3}, {4887,56711,3},{4883,56719,3},{4880,56726,3},{4877,56724,3},{4872,56726,3}, {4860,56716,3},{4860,56711,3},{4863,56713,3},{4860,56708,3},{4865,56703,3}, {4858,56704,3},{4857,56701,3},{4853,56696,3},{4857,56693,3},{4853,56689,3}, {4852,56688,3},{4847,56688,3},{4847,56684,3},{4843,56684,3},{4843,56679,3}, {4848,56679,3},{4848,56678,3},{4855,56681,3},{4855,56684,3},{4868,56701,3}, {4877,56704,3},{4883,56699,3},{4885,56688,3},{4877,56681,3},{4873,56681,3}, {4872,56684,3},{4870,56681,3},{4865,56683,3},{4862,56674,3},{4852,56673,3}, {4850,56666,3},{4837,56663,3},{4833,56646,3},{4832,56643,3},{4838,56646,3}, {4838,56649,3},{4848,56653,3},{4855,56661,3},{4858,56659,3},{4848,56623,3}, {4845,56616,3},{4838,56611,3},{4832,56616,3},{4830,56613,3},{4825,56609,3}, {4820,56609,3},{4820,56606,3},{4818,56608,3},{4815,56604,3},{4813,56603,3}, {4812,56603,3},{4810,56593,3},{4808,56591,3},{4808,56594,3},{4807,56594,3}, {4805,56586,3},{4803,56584,3},{4800,56578,3},{4802,56566,3},{4803,56559,3}, {4798,56546,3},{4802,56536,3},{4808,56531,3},{4810,56529,3},{4812,56521,3}, {4810,56496,3},{4810,56489,3},{4810,56488,3},{4808,56481,3},{4812,56478,3}, {4808,56461,3},{4812,56458,3},{4817,56458,3},{4818,56453,3},{4823,56453,3}, {4823,56449,3},{4823,56443,3},{4815,56423,3},{4808,56411,3},{4805,56396,3}, {4803,56394,3},{4805,56391,3},{4805,56379,3},{4805,56378,3},{4810,56378,3}, {4810,56366,3},{4812,56366,3},{4815,56368,3},{4820,56363,3},{4820,56351,3}, {4823,56348,3},{4823,56343,3},{4825,56338,3},{4835,56331,3},{4835,56323,3}, {4833,56309,3},{4830,56306,3},{4825,56308,3},{4823,56301,3},{4832,56291,3}, {4840,56291,3},{4845,56286,3},{4843,56271,3},{4845,56266,3},{4848,56266,3}, {4850,56274,3},{4853,56273,3},{4853,56264,3},{4858,56249,3},{4862,56241,3}, {4862,56224,3},{4863,56211,3},{4860,56191,3},{4857,56191,3},{4853,56188,3}, {4852,56171,3},{4852,56158,3},{4852,56156,3},{4862,56153,3},{4863,56151,3}, {4865,56113,3},{4870,56109,3},{4870,56106,3},{4872,56096,3},{4870,56088,3}, {4872,56078,3},{4875,56071,3},{4878,56066,3},{4888,56066,3},{4897,56064,3}, {4917,56056,3},{4932,56054,3},{4937,56043,3},{4937,56028,3},{4938,56021,3}, {4933,56021,3},{4927,56021,3},{4920,56021,3},{4913,56021,3},{4907,56021,3}, {4900,56021,3},{4900,56016,3},{4900,56006,3},{4900,55996,3},{4900,55986,3}, {4900,55976,3},{4900,55966,3},{4900,55956,3},{4900,55946,3},{4900,55936,3}, {4900,55926,3},{4900,55916,3},{4900,55906,3},{4900,55896,3},{4900,55886,3}, {4900,55876,3},{4900,55866,3},{4900,55856,3},{4900,55846,3},{4900,55836,3}, {4900,55826,3},{4900,55816,3},{4900,55806,3},{4900,55796,3},{4900,55786,3}, {4900,55776,3},{4900,55766,3},{4900,55756,3},{4900,55746,3},{4900,55736,3}, {4900,55726,3},{4900,55716,3},{4900,55706,3},{4900,55696,3},{4900,55686,3}, {4900,55676,3},{4900,55666,3},{4900,55656,3},{4900,55646,3},{4900,55636,3}, {4900,55626,3},{4900,55616,3},{4900,55606,3},{4900,55596,3},{4900,55586,3}, {4900,55576,3},{4900,55566,3},{4900,55556,3},{4900,55546,3},{4900,55536,3}, {4900,55526,3},{4900,55516,3},{4900,55506,3},{4900,55496,3},{4900,55486,3}, {4900,55476,3},{4900,55466,3},{4900,55456,3},{4900,55446,3},{4900,55436,3}, {4900,55426,3},{4900,55416,3},{4900,55406,3},{4900,55399,3},{4900,55386,3}, {4900,55376,3},{4900,55366,3},{4900,55356,3},{4900,55346,3},{4900,55336,3}, {4900,55326,3},{4900,55316,3},{4900,55306,3},{4900,55296,3},{4900,55286,3}, {4900,55276,3},{4900,55266,3},{4900,55256,3},{4900,55246,3},{4900,55236,3}, {4900,55226,3},{4900,55216,3},{4900,55206,3},{4900,55196,3},{4900,55186,3}, {4900,55176,3},{4900,55166,3},{4900,55156,3},{4900,55144,3},{4900,55133,3}, {4900,55124,3},{4900,55116,3},{4900,55106,3},{4900,55096,3},{4900,55086,3}, {4900,55076,3},{4900,55066,3},{4900,55056,3},{4900,55046,3},{4900,55036,3}, {4900,55026,3},{4900,55016,3},{4900,55006,3},{4900,54996,3},{4900,54986,3}, {4900,54979,3},{4900,54966,3},{4900,54956,3},{4900,54946,3},{4900,54936,3}, {4900,54926,3},{4900,54916,3},{4900,54906,3},{4900,54896,3},{4900,54886,3}, {4900,54876,3},{4900,54866,3},{4900,54856,3},{4900,54843,3},{4900,54836,3}, {4900,54826,3},{4900,54816,3},{4900,54806,3},{4900,54796,3},{4900,54786,3}, {4900,54776,3},{4900,54766,3},{4900,54756,3},{4900,54746,3},{4900,54736,3}, {4900,54726,3},{4900,54716,3},{4900,54706,3},{4900,54696,3},{4900,54683,3}, {4900,54676,3},{4900,54666,3},{4900,54656,3},{4900,54646,3},{4900,54636,3}, {4900,54626,3},{4900,54616,3},{4900,54606,3},{4900,54596,3},{4900,54586,3}, {4900,54576,3},{4900,54566,3},{4900,54556,3},{4900,54546,3},{4900,54536,3}, {4900,54526,3},{4900,54516,3},{4900,54506,3},{4900,54496,3},{4900,54486,3}, {4900,54476,3},{4900,54466,3},{4900,54456,3},{4900,54446,3},{4900,54436,3}, {4900,54426,3},{4900,54416,3},{4900,54406,3},{4900,54396,3},{4900,54386,3}, {4900,54376,3},{4900,54366,3},{4900,54356,3},{4900,54346,3},{4900,54336,3}, {4900,54326,3},{4900,54316,3},{4900,54306,3},{4900,54296,3},{4900,54286,3}, {4900,54276,3},{4900,54266,3},{4900,54256,3},{4900,54246,3},{4900,54236,3}, {4900,54223,3},{4900,54216,3},{4900,54206,3},{4900,54196,3},{4900,54186,3}, {4900,54176,3},{4900,54166,3},{4900,54156,3},{4900,54146,3},{4900,54136,3}, {4900,54129,3},{4900,54116,3},{4900,54106,3},{4900,54096,3},{4900,54086,3}, {4900,54076,3},{4900,54066,3},{4900,54056,3},{4900,54046,3},{4900,54036,3}, {4900,54026,3},{4900,54016,3},{4900,54006,3},{4900,53996,3},{4900,53986,3}, {4900,53976,3},{4900,53966,3},{4900,53956,3},{4900,53946,3},{4900,53936,3}, {4900,53931,3},{4900,53923,3},{4900,53913,3},{4900,53903,3},{4900,53893,3}, {4900,53883,3},{4900,53873,3},{4900,53863,3},{4900,53853,3},{4900,53843,3}, {4900,53833,3},{4900,53826,3},{4900,53816,3},{4900,53806,3},{4900,53796,3}, {4900,53786,3},{4900,53776,3},{4900,53766,3},{4900,53756,3},{4900,53746,3}, {4900,53736,3},{4900,53726,3},{4900,53716,3},{4900,53706,3},{4900,53696,3}, {4900,53686,3},{4900,53676,3},{4900,53666,3},{4900,53656,3},{4900,53646,3}, {4900,53636,3},{4900,53626,3},{4900,53616,3},{4900,53606,3},{4900,53596,3}, {4900,53586,3},{4900,53576,3},{4900,53566,3},{4900,53556,3},{4900,53543,3}, {4900,53536,3},{4900,53526,3},{4900,53516,3},{4900,53506,3},{4900,53496,3}, {4900,53486,3},{4900,53476,3},{4900,53466,3},{4900,53456,3},{4900,53446,3}, {4900,53436,3},{4900,53426,3},{4900,53416,3},{4900,53406,3},{4900,53399,3}, {4900,53386,3},{4900,53376,3},{4900,53366,3},{4900,53356,3},{4900,53346,3}, {4900,53336,3},{4900,53326,3},{4900,53316,3},{4900,53306,3},{4900,53296,3}, {4900,53286,3},{4900,53276,3},{4900,53266,3},{4900,53259,3},{4902,53251,3}, {4903,53248,3},{4908,53249,3},{4908,53243,3},{4903,53231,3},{4900,53233,3}, {4900,53226,3},{5592,52536,131},{5575,52519,3},{5565,52524,3},{5553,52521,3}, {5543,52529,3},{5535,52531,3},{5528,52538,3},{5523,52529,3},{5523,52526,3}, {5520,52526,3},{5517,52521,3},{5503,52513,3},{5490,52499,3},{5480,52478,3}, {5480,52476,3},{5485,52479,3},{5485,52478,3},{5477,52468,3},{5478,52463,3}, {5482,52468,3},{5490,52463,3},{5497,52463,3},{5495,52461,3},{5488,52461,3}, {5483,52463,3},{5482,52461,3},{5482,52458,3},{5478,52458,3},{5477,52454,3}, {5478,52446,3},{5480,52444,3},{5488,52443,3},{5492,52439,3},{5493,52443,3}, {5497,52443,3},{5497,52439,3},{5500,52436,3},{5507,52439,3},{5510,52453,3}, {5510,52454,3},{5507,52456,3},{5508,52464,3},{5513,52468,3},{5522,52481,3}, {5533,52489,3},{5533,52488,3},{5528,52481,3},{5522,52476,3},{5510,52461,3}, {5510,52458,3},{5515,52454,3},{5508,52444,3},{5510,52434,3},{5513,52429,3}, {5518,52429,3},{5528,52444,3},{5530,52474,3},{5532,52469,3},{5535,52471,3}, {5535,52468,3},{5530,52464,3},{5530,52449,3},{5547,52448,3},{5558,52449,3}, {5568,52446,3},{5570,52448,3},{5578,52441,3},{5582,52444,3},{5580,52438,3}, {5582,52434,3},{5587,52431,3},{5590,52424,3},{5593,52423,3},{5593,52421,3}, {5597,52419,3},{5597,52416,3},{5600,52419,3},{5605,52431,3},{5605,52428,3}, {5610,52434,3},{5610,52429,3},{5600,52414,3},{5597,52404,3},{5597,52398,3}, {5600,52394,3},{5597,52388,3},{5598,52386,3},{5597,52384,3},{5593,52374,3}, {5588,52361,3},{5585,52344,3},{5580,52361,3},{5572,52354,3},{5572,52349,3}, {5567,52354,3},{5563,52353,3},{5562,52348,3},{5560,52348,3},{5567,52336,3}, {5558,52343,3},{5558,52341,3},{5553,52344,3},{5550,52339,3},{5558,52318,3}, {5568,52316,3},{5575,52309,3},{5575,52313,3},{5572,52319,3},{5577,52319,3}, {5580,52319,3},{5580,52331,3},{5585,52328,3},{5588,52333,3},{5593,52329,3}, {5595,52333,3},{5597,52341,3},{5617,52339,3},{5618,52349,3},{5620,52349,3}, {5620,52359,3},{5617,52376,3},{5622,52388,3},{5620,52373,3},{5623,52346,3}, {5630,52339,3},{5635,52339,3},{5638,52329,3},{5637,52326,3},{5638,52321,3}, {5647,52318,3},{5648,52311,3},{5648,52308,3},{5653,52301,3},{5660,52303,3}, {5663,52304,3},{5660,52293,3},{5663,52281,3},{5667,52284,3},{5667,52291,3}, {5672,52284,3},{5675,52289,3},{5677,52289,3},{5677,52294,3},{5680,52296,3}, {5682,52299,3},{5682,52296,3},{5678,52293,3},{5678,52288,3},{5675,52286,3}, {5678,52271,3},{5685,52259,3},{5688,52258,3},{5690,52249,3},{5693,52251,3}, {5698,52244,3},{5695,52258,3},{5698,52259,3},{5705,52254,3},{5708,52258,3}, {5707,52251,3},{5702,52248,3},{5705,52241,3},{5703,52239,3},{5707,52229,3}, {5708,52221,3},{5713,52221,3},{5715,52224,3},{5717,52221,3},{5715,52218,3}, {5713,52218,3},{5713,52214,3},{5717,52214,3},{5717,52211,3},{5712,52211,3}, {5710,52206,3},{5718,52181,3},{5722,52188,3},{5725,52186,3},{5728,52189,3}, {5728,52213,3},{5732,52219,3},{5732,52228,3},{5735,52233,3},{5737,52231,3}, {5733,52224,3},{5732,52214,3},{5733,52206,3},{5733,52198,3},{5735,52193,3}, {5738,52191,3},{5740,52201,3},{5743,52203,3},{5742,52193,3},{5743,52189,3}, {5750,52184,3},{5753,52186,3},{5757,52193,3},{5757,52203,3},{5758,52204,3}, {5758,52193,3},{5757,52183,3},{5757,52178,3},{5758,52174,3},{5763,52169,3}, {5770,52173,3},{5770,52181,3},{5767,52186,3},{5758,52218,3},{5750,52231,3}, {5752,52236,3},{5753,52228,3},{5760,52219,3},{5762,52221,3},{5762,52214,3}, {5765,52209,3},{5767,52203,3},{5772,52196,3},{5772,52189,3},{5775,52183,3}, {5790,52181,3},{5792,52183,3},{5790,52196,3},{5788,52203,3},{5785,52224,3}, {5790,52218,3},{5790,52208,3},{5790,52203,3},{5792,52196,3},{5792,52181,3}, {5790,52176,3},{5787,52178,3},{5788,52173,3},{5785,52173,3},{5782,52174,3}, {5778,52171,3},{5778,52166,3},{5785,52161,3},{5795,52151,3},{5798,52158,3}, {5793,52166,3},{5795,52168,3},{5798,52166,3},{5802,52169,3},{5802,52163,3}, {5805,52159,3},{5810,52166,3},{5813,52164,3},{5815,52169,3},{5813,52161,3}, {5810,52163,3},{5805,52156,3},{5802,52156,3},{5798,52148,3},{5802,52138,3}, {5807,52134,3},{5807,52131,3},{5810,52129,3},{5812,52133,3},{5818,52128,3}, {5825,52131,3},{5828,52129,3},{5828,52134,3},{5832,52138,3},{5840,52134,3}, {5843,52141,3},{5850,52144,3},{5852,52148,3},{5850,52156,3},{5852,52159,3}, {5852,52146,3},{5850,52138,3},{5843,52138,3},{5842,52129,3},{5840,52131,3}, {5833,52129,3},{5830,52121,3},{5825,52126,3},{5820,52121,3},{5822,52111,3}, {5835,52084,3},{5835,52073,3},{5838,52071,3},{5838,52059,3},{5848,52058,3}, {5857,52048,3},{5867,52038,3},{5865,52044,3},{5867,52044,3},{5870,52043,3}, {5882,52041,3},{5882,52036,3},{5878,52036,3},{5878,52033,3},{5873,52034,3}, {5883,52021,3},{5888,52023,3},{5893,52019,3},{5900,52019,3},{5902,52016,3}, {5920,52008,3},{5927,51999,3},{5943,52004,3},{5947,52003,3},{5945,51999,3}, {5930,51996,3},{5932,51981,3},{5928,51991,3},{5923,51993,3},{5920,52001,3}, {5908,52006,3},{5912,51998,3},{5920,51994,3},{5922,51988,3},{5923,51981,3}, {5918,51989,3},{5913,51991,3},{5908,51998,3},{5897,51998,3},{5892,52001,3}, {5892,52004,3},{5887,52003,3},{5878,52013,3},{5872,52011,3},{5863,52019,3}, {5862,52014,3},{5860,52014,3},{5853,52019,3},{5833,52031,3},{5830,52031,3}, {5830,52028,3},{5823,52028,3},{5820,52021,3},{5825,52003,3},{5848,51988,3}, {5847,51984,3},{5842,51989,3},{5837,51989,3},{5842,51973,3},{5840,51966,3}, {5838,51944,3},{5847,51949,3},{5845,51941,3},{5847,51944,3},{5847,51951,3}, {5848,51949,3},{5855,51953,3},{5858,51948,3},{5860,51954,3},{5860,51949,3}, {5862,51946,3},{5870,51943,3},{5870,51938,3},{5872,51939,3},{5882,51929,3}, {5887,51943,3},{5885,51944,3},{5888,51961,3},{5890,51956,3},{5892,51939,3}, {5890,51943,3},{5888,51941,3},{5885,51933,3},{5888,51931,3},{5892,51933,3}, {5895,51926,3},{5902,51926,3},{5903,51921,3},{5895,51923,3},{5892,51914,3}, {5893,51926,3},{5890,51924,3},{5887,51926,3},{5877,51923,3},{5875,51919,3}, {5875,51911,3},{5880,51898,3},{5882,51909,3},{5883,51889,3},{5890,51886,3}, {5897,51888,3},{5897,51883,3},{5892,51879,3},{5897,51873,3},{5902,51866,3}, {5897,51869,3},{5890,51876,3},{5890,51874,3},{5888,51871,3},{5892,51866,3}, {5897,51851,3},{5907,51831,3},{5905,51829,3},{5897,51844,3},{5893,51846,3}, {5892,51844,3},{5892,51833,3},{5882,51823,3},{5890,51838,3},{5888,51851,3}, {5883,51856,3},{5887,51858,3},{5887,51863,3},{5883,51871,3},{5883,51879,3}, {5882,51883,3},{5880,51888,3},{5877,51884,3},{5878,51883,3},{5877,51883,3}, {5880,51878,3},{5882,51873,3},{5882,51871,3},{5878,51878,3},{5877,51876,3}, {5873,51884,3},{5870,51884,3},{5867,51893,3},{5872,51886,3},{5875,51888,3}, {5873,51889,3},{5872,51898,3},{5868,51903,3},{5862,51889,3},{5862,51884,3}, {5858,51888,3},{5862,51896,3},{5860,51903,3},{5862,51903,3},{5865,51903,3}, {5862,51908,3},{5867,51906,3},{5862,51918,3},{5860,51916,3},{5858,51918,3}, {5855,51924,3},{5855,51921,3},{5852,51919,3},{5852,51914,3},{5850,51919,3}, {5852,51923,3},{5852,51928,3},{5838,51933,3},{5833,51928,3},{5830,51911,3}, {5832,51908,3},{5833,51908,3},{5835,51909,3},{5840,51904,3},{5837,51901,3}, {5840,51891,3},{5843,51886,3},{5838,51888,3},{5837,51884,3},{5837,51881,3}, {5833,51888,3},{5838,51889,3},{5837,51898,3},{5833,51901,3},{5830,51899,3}, {5832,51893,3},{5830,51888,3},{5837,51876,3},{5833,51871,3},{5827,51881,3}, {5823,51878,3},{5822,51871,3},{5825,51864,3},{5827,51866,3},{5828,51869,3}, {5830,51868,3},{5830,51863,3},{5830,51861,3},{5830,51858,3},{5833,51859,3}, {5832,51854,3},{5832,51851,3},{5835,51853,3},{5838,51849,3},{5833,51846,3}, {5838,51843,3},{5840,51836,3},{5838,51828,3},{5840,51824,3},{5858,51781,3}, {5860,51774,3},{5862,51774,3},{5862,51779,3},{5867,51793,3},{5868,51788,3}, {5865,51778,3},{5862,51771,3},{5867,51768,3},{5880,51743,3},{5885,51744,3}, {5890,51739,3},{5903,51716,3},{5907,51706,3},{5907,51708,3},{5908,51694,3}, {5910,51694,3},{5908,51698,3},{5910,51696,3},{5912,51676,3},{5913,51676,3}, {5912,51686,3},{5915,51686,3},{5918,51693,3},{5918,51691,3},{5917,51671,3}, {5913,51673,3},{5920,51661,3},{5927,51641,3},{5932,51616,3},{5930,51624,3}, {5933,51619,3},{5933,51613,3},{5938,51614,3},{5937,51608,3},{5935,51608,3}, {5938,51593,3},{5942,51586,3},{5938,51598,3},{5940,51604,3},{5942,51598,3}, {5940,51591,3},{5943,51584,3},{5943,51579,3},{5953,51551,3},{5955,51553,3}, {5955,51563,3},{5958,51568,3},{5957,51573,3},{5962,51579,3},{5962,51578,3}, {5965,51578,3},{5970,51589,3},{5980,51578,3},{5988,51574,3},{5998,51588,3}, {5993,51599,3},{5985,51606,3},{5982,51603,3},{5972,51603,3},{5962,51609,3}, {5960,51604,3},{5960,51603,3},{5957,51608,3},{5957,51611,3},{5962,51614,3}, {5967,51609,3},{5973,51609,3},{5973,51606,3},{5978,51611,3},{5983,51608,3}, {5985,51623,3},{5983,51636,3},{5980,51639,3},{5980,51646,3},{5982,51641,3}, {5985,51634,3},{5987,51613,3},{6000,51596,3},{6002,51588,3},{6005,51586,3}, {6005,51583,3},{6000,51578,3},{5995,51578,3},{5993,51568,3},{5982,51553,3}, {5972,51513,3},{5970,51498,3},{5975,51449,3},{5988,51391,3},{5992,51391,3}, {5992,51396,3},{5992,51393,3},{5988,51393,3},{5993,51408,3},{5998,51409,3}, {6002,51409,3},{6007,51406,3},{6007,51408,3},{6010,51399,3},{6013,51398,3}, {6012,51388,3},{6008,51391,3},{6003,51398,3},{5997,51374,3},{5995,51364,3}, {6002,51343,3},{6012,51264,3},{6007,51219,3},{6003,51169,3},{5998,51148,3}, {6003,51134,3},{6003,51111,3},{6003,51136,3},{6005,51136,3},{6015,51116,3}, {6015,51111,3},{6020,51118,3},{6018,51111,3},{6020,51099,3},{6018,51099,3}, {6017,51093,3},{6018,51088,3},{6020,51089,3},{6022,51086,3},{6018,51081,3}, {6020,51073,3},{6022,51068,3},{6022,51073,3},{6028,51066,3},{6030,51058,3}, {6028,51056,3},{6030,51053,3},{6030,51048,3},{6028,51046,3},{6030,51043,3}, {6035,51048,3},{6038,51044,3},{6040,51046,3},{6040,51053,3},{6043,51051,3}, {6045,51056,3},{6050,51058,3},{6047,51051,3},{6047,51048,3},{6048,51048,3}, {6052,51053,3},{6060,51056,3},{6063,51061,3},{6067,51059,3},{6067,51073,3}, {6072,51074,3},{6068,51061,3},{6065,51058,3},{6062,51051,3},{6055,51046,3}, {6052,51034,3},{6043,51026,3},{6037,51013,3},{6035,51006,3},{6035,50998,3}, {6040,50988,3},{6042,50986,3},{6047,50971,3},{6045,50948,3},{6047,50943,3}, {6048,50946,3},{6048,50949,3},{6055,50963,3},{6065,50974,3},{6067,50973,3}, {6062,50951,3},{6062,50948,3},{6065,50956,3},{6067,50948,3},{6070,50951,3}, {6063,50941,3},{6063,50936,3},{6070,50944,3},{6065,50928,3},{6063,50916,3}, {6063,50911,3},{6065,50909,3},{6072,50928,3},{6075,50931,3},{6075,50934,3}, {6080,50933,3},{6075,50924,3},{6075,50918,3},{6077,50919,3},{6075,50913,3}, {6072,50909,3},{6073,50904,3},{6077,50908,3},{6077,50906,3},{6070,50894,3}, {6068,50888,3},{6070,50886,3},{6070,50871,3},{6075,50868,3},{6073,50873,3}, {6077,50876,3},{6075,50879,3},{6075,50888,3},{6077,50883,3},{6077,50893,3}, {6082,50916,3},{6083,50911,3},{6085,50916,3},{6083,50928,3},{6090,50913,3}, {6083,50906,3},{6082,50896,3},{6085,50896,3},{6082,50888,3},{6082,50881,3}, {6085,50879,3},{6082,50874,3},{6087,50874,3},{6088,50873,3},{6087,50869,3}, {6088,50866,3},{6097,50861,3},{6095,50864,3},{6093,50868,3},{6095,50878,3}, {6097,50866,3},{6103,50869,3},{6103,50879,3},{6105,50873,3},{6107,50873,3}, {6108,50876,3},{6108,50913,3},{6113,50906,3},{6113,50894,3},{6113,50876,3}, {6093,50839,3},{6095,50833,3},{6098,50838,3},{6100,50838,3},{6100,50834,3}, {6098,50834,3},{6097,50831,3},{6100,50833,3},{6100,50824,3},{6098,50821,3}, {6095,50821,3},{6097,50816,3},{6102,50816,3},{6098,50811,3},{6100,50809,3}, {6098,50808,3},{6093,50811,3},{6093,50804,3},{6092,50806,3},{6088,50799,3}, {6092,50798,3},{6090,50791,3},{6098,50798,3},{6095,50791,3},{6098,50791,3}, {6102,50793,3},{6098,50788,3},{6092,50786,3},{6090,50783,3},{6092,50781,3}, {6105,50783,3},{6107,50788,3},{6113,50783,3},{6115,50784,3},{6115,50779,3}, {6113,50778,3},{6110,50781,3},{6102,50776,3},{6102,50769,3},{6100,50774,3}, {6097,50773,3},{6095,50776,3},{6087,50776,3},{6085,50771,3},{6087,50768,3}, {6090,50769,3},{6088,50763,3},{6095,50766,3},{6092,50758,3},{6088,50759,3}, {6087,50754,3},{6087,50759,3},{6083,50761,3},{6082,50758,3},{6083,50751,3}, {6085,50746,3},{6090,50743,3},{6095,50731,3},{6102,50741,3},{6107,50744,3}, {6108,50743,3},{6117,50758,3},{6120,50766,3},{6123,50766,3},{6122,50759,3}, {6128,50764,3},{6112,50741,3},{6105,50736,3},{6102,50731,3},{6105,50724,3}, {6112,50721,3},{6108,50716,3},{6108,50709,3},{6107,50706,3},{6105,50696,3}, {6105,50701,3},{6102,50698,3},{6100,50691,3},{6098,50693,3},{6098,50696,3}, {6107,50711,3},{6107,50721,3},{6095,50711,3},{6097,50703,3},{6092,50709,3}, {6083,50704,3},{6085,50696,3},{6083,50703,3},{6082,50703,3},{6082,50696,3}, {6083,50691,3},{6083,50676,3},{6078,50666,3},{6080,50679,3},{6080,50681,3}, {6080,50691,3},{6075,50673,3},{6068,50666,3},{6067,50669,3},{6070,50676,3}, {6073,50678,3},{6077,50684,3},{6077,50699,3},{6077,50698,3},{6075,50701,3}, {6073,50696,3},{6068,50696,3},{6067,50691,3},{6063,50694,3},{6067,50701,3}, {6070,50701,3},{6075,50708,3},{6077,50713,3},{6072,50711,3},{6063,50716,3}, {6053,50703,3},{6055,50701,3},{6057,50701,3},{6057,50694,3},{6058,50693,3}, {6058,50688,3},{6050,50671,3},{6045,50668,3},{6053,50691,3},{6052,50699,3}, {6050,50698,3},{6050,50703,3},{6048,50701,3},{6048,50709,3},{6045,50709,3}, {6045,50713,3},{6048,50714,3},{6052,50713,3},{6055,50718,3},{6050,50718,3}, {6052,50721,3},{6058,50723,3},{6060,50728,3},{6057,50733,3},{6053,50729,3}, {6055,50734,3},{6053,50736,3},{6052,50739,3},{6047,50736,3},{6045,50738,3}, {6047,50743,3},{6043,50741,3},{6043,50736,3},{6042,50738,3},{6040,50731,3}, {6042,50728,3},{6038,50728,3},{6042,50718,3},{6037,50724,3},{6035,50723,3}, {6035,50716,3},{6037,50714,3},{6038,50713,3},{6035,50709,3},{6035,50714,3}, {6032,50714,3},{6025,50704,3},{6028,50699,3},{6028,50698,3},{6023,50701,3}, {6018,50693,3},{6020,50703,3},{6025,50714,3},{6023,50718,3},{6022,50709,3}, {6020,50718,3},{6015,50716,3},{6023,50723,3},{6022,50726,3},{6015,50721,3}, {6012,50709,3},{6013,50706,3},{6017,50708,3},{6017,50704,3},{6015,50703,3}, {6013,50699,3},{6007,50698,3},{6003,50693,3},{6002,50696,3},{5995,50693,3}, {5995,50689,3},{6003,50683,3},{5998,50683,3},{5998,50679,3},{5995,50681,3}, {5992,50671,3},{5995,50669,3},{5995,50656,3},{5993,50649,3},{5997,50643,3}, {5995,50634,3},{5998,50634,3},{5997,50629,3},{5998,50624,3},{6005,50633,3}, {6005,50623,3},{6000,50616,3},{5995,50614,3},{5992,50611,3},{5990,50613,3}, {5987,50609,3},{5997,50606,3},{5998,50603,3},{6002,50606,3},{6002,50601,3}, {6012,50599,3},{6012,50594,3},{6003,50593,3},{6000,50598,3},{5998,50593,3}, {5993,50589,3},{5993,50583,3},{5992,50581,3},{5982,50573,3},{5978,50578,3}, {5978,50583,3},{5975,50581,3},{5973,50584,3},{5972,50583,3},{5975,50573,3}, {5977,50576,3},{5978,50571,3},{5980,50573,3},{5982,50569,3},{5985,50571,3}, {5990,50571,3},{5997,50564,3},{5995,50563,3},{5988,50563,3},{5983,50559,3}, {5985,50553,3},{5985,50549,3},{5978,50559,3},{5965,50561,3},{5968,50556,3}, {5972,50554,3},{5973,50549,3},{5977,50544,3},{5980,50533,3},{5977,50533,3}, {5973,50539,3},{5972,50544,3},{5970,50543,3},{5963,50534,3},{5967,50531,3}, {5970,50523,3},{5967,50526,3},{5962,50526,3},{5958,50528,3},{5957,50521,3}, {5958,50518,3},{5953,50518,3},{5953,50511,3},{5950,50511,3},{5950,50508,3}, {5948,50506,3},{5947,50498,3},{5948,50501,3},{5950,50498,3},{5950,50503,3}, {5955,50501,3},{5958,50508,3},{5960,50506,3},{5972,50514,3},{5957,50496,3}, {5947,50489,3},{5947,50486,3},{5950,50486,3},{5952,50481,3},{5960,50486,3}, {5955,50471,3},{5948,50479,3},{5947,50473,3},{5943,50476,3},{5942,50471,3}, {5942,50464,3},{5937,50458,3},{5932,50444,3},{5925,50448,3},{5923,50439,3}, {5920,50441,3},{5923,50436,3},{5927,50436,3},{5930,50431,3},{5928,50429,3}, {5932,50411,3},{5932,50409,3},{5930,50409,3},{5928,50418,3},{5925,50426,3}, {5922,50424,3},{5922,50406,3},{5927,50396,3},{5923,50384,3},{5922,50389,3}, {5920,50388,3},{5920,50376,3},{5918,50374,3},{5918,50379,3},{5917,50378,3}, {5917,50364,3},{5917,50361,3},{5922,50361,3},{5922,50351,3},{5922,50346,3}, {5925,50348,3},{5928,50338,3},{5932,50338,3},{5935,50343,3},{5935,50354,3}, {5940,50346,3},{5945,50359,3},{5945,50364,3},{5948,50368,3},{5947,50389,3}, {5943,50396,3},{5943,50399,3},{5947,50398,3},{5950,50391,3},{5953,50391,3}, {5957,50401,3},{5957,50409,3},{5960,50411,3},{5960,50419,3},{5965,50416,3}, {5967,50423,3},{5972,50426,3},{5978,50436,3},{5980,50433,3},{5977,50424,3}, {5965,50391,3},{5963,50389,3},{5960,50394,3},{5963,50388,3},{5968,50361,3}, {5973,50351,3},{5977,50348,3},{6002,50364,3},{6020,50393,3},{6027,50398,3}, {6037,50398,3},{6038,50406,3},{6053,50409,3},{6058,50403,3},{6072,50394,3}, {6075,50406,3},{6077,50411,3},{6078,50431,3},{6097,50469,3},{6103,50496,3}, {6103,50503,3},{6098,50506,3},{6093,50513,3},{6090,50531,3},{6097,50553,3}, {6097,50564,3},{6093,50573,3},{6093,50584,3},{6090,50594,3},{6088,50619,3}, {6085,50633,3},{6088,50631,3},{6095,50619,3},{6093,50603,3},{6095,50598,3}, {6098,50586,3},{6098,50574,3},{6115,50529,3},{6120,50533,3},{6120,50541,3}, {6123,50546,3},{6132,50553,3},{6133,50558,3},{6133,50563,3},{6140,50568,3}, {6148,50609,3},{6150,50611,3},{6150,50594,3},{6152,50594,3},{6150,50583,3}, {6147,50566,3},{6138,50548,3},{6127,50543,3},{6123,50536,3},{6125,50519,3}, {6125,50509,3},{6128,50506,3},{6125,50503,3},{6125,50488,3},{6128,50481,3}, {6137,50483,3},{6137,50479,3},{6128,50478,3},{6128,50473,3},{6130,50471,3}, {6128,50469,3},{6125,50464,3},{6120,50448,3},{6122,50441,3},{6117,50429,3}, {6105,50419,3},{6103,50408,3},{6102,50401,3},{6102,50386,3},{6093,50369,3}, {6092,50361,3},{6083,50356,3},{6072,50364,3},{6072,50358,3},{6075,50351,3}, {6073,50349,3},{6072,50344,3},{6067,50331,3},{6060,50326,3},{6055,50313,3}, {6050,50304,3},{6043,50303,3},{6040,50311,3},{6035,50298,3},{6028,50294,3}, {6028,50286,3},{6023,50279,3},{6022,50274,3},{6025,50268,3},{6023,50261,3}, {6023,50251,3},{6025,50253,3},{6025,50258,3},{6027,50253,3},{6025,50248,3}, {6030,50248,3},{6030,50244,3},{6030,50233,3},{6028,50226,3},{6027,50226,3}, {6028,50231,3},{6028,50241,3},{6023,50244,3},{6017,50268,3},{6013,50268,3}, {6008,50278,3},{6005,50278,3},{5997,50268,3},{5992,50266,3},{5988,50253,3}, {5988,50229,3},{5987,50213,3},{5982,50208,3},{5983,50216,3},{5982,50223,3}, {5983,50231,3},{5983,50236,3},{5982,50236,3},{5980,50236,3},{5970,50231,3}, {5968,50223,3},{5965,50216,3},{5965,50211,3},{5968,50208,3},{5967,50204,3}, {5963,50204,3},{5965,50193,3},{5967,50198,3},{5972,50199,3},{5972,50204,3}, {5975,50194,3},{5978,50191,3},{5972,50193,3},{5965,50188,3},{5963,50181,3}, {5965,50179,3},{5968,50176,3},{5970,50178,3},{5968,50173,3},{5965,50173,3}, {5963,50166,3},{5963,50173,3},{5960,50179,3},{5955,50178,3},{5955,50164,3}, {5953,50158,3},{5955,50154,3},{5955,50149,3},{5952,50159,3},{5947,50164,3}, {5943,50163,3},{5942,50156,3},{5943,50148,3},{5938,50141,3},{5940,50138,3}, {5938,50134,3},{5938,50121,3},{5935,50128,3},{5937,50138,3},{5937,50141,3}, {5930,50124,3},{5925,50121,3},{5920,50123,3},{5920,50118,3},{5917,50118,3}, {5917,50113,3},{5915,50114,3},{5915,50109,3},{5912,50111,3},{5912,50119,3}, {5907,50116,3},{5903,50118,3},{5903,50123,3},{5908,50133,3},{5905,50149,3}, {5907,50154,3},{5907,50159,3},{5907,50164,3},{5900,50178,3},{5898,50181,3}, {5900,50189,3},{5898,50189,3},{5898,50194,3},{5893,50199,3},{5893,50203,3}, {5890,50203,3},{5888,50208,3},{5887,50199,3},{5887,50211,3},{5883,50208,3}, {5885,50203,3},{5885,50199,3},{5872,50191,3},{5868,50179,3},{5863,50176,3}, {5862,50159,3},{5862,50146,3},{5860,50144,3},{5858,50148,3},{5853,50143,3}, {5853,50139,3},{5852,50144,3},{5850,50143,3},{5848,50139,3},{5848,50126,3}, {5840,50129,3},{5840,50136,3},{5838,50136,3},{5835,50129,3},{5835,50116,3}, {5833,50118,3},{5832,50108,3},{5828,50099,3},{5825,50101,3},{5827,50109,3}, {5830,50109,3},{5830,50114,3},{5832,50118,3},{5828,50124,3},{5827,50121,3}, {5825,50111,3},{5825,50118,3},{5822,50121,3},{5818,50116,3},{5818,50106,3}, {5813,50114,3},{5813,50109,3},{5813,50106,3},{5815,50103,3},{5813,50101,3}, {5808,50103,3},{5808,50099,3},{5815,50091,3},{5818,50091,3},{5820,50088,3}, {5808,50089,3},{5812,50078,3},{5810,50076,3},{5808,50081,3},{5807,50083,3}, {5802,50078,3},{5803,50073,3},{5807,50069,3},{5805,50064,3},{5802,50063,3}, {5800,50058,3},{5803,50048,3},{5802,50033,3},{5795,50031,3},{5795,50024,3}, {5788,50029,3},{5787,50018,3},{5787,50016,3},{5788,50011,3},{5783,50014,3}, {5783,50009,3},{5783,50003,3},{5780,50006,3},{5780,50001,3},{5775,50006,3}, {5773,50006,3},{5772,49998,3},{5773,49994,3},{5780,49978,3},{5778,49974,3}, {5773,49973,3},{5772,49973,3},{5768,49978,3},{5767,49978,3},{5763,49964,3}, {5765,49959,3},{5762,49963,3},{5755,49963,3},{5755,49956,3},{5758,49954,3}, {5755,49949,3},{5755,49946,3},{5753,49944,3},{5757,49934,3},{5757,49933,3}, {5753,49934,3},{5753,49926,3},{5752,49926,3},{5752,49933,3},{5743,49933,3}, {5743,49924,3},{5748,49918,3},{5743,49913,3},{5743,49909,3},{5740,49901,3}, {5733,49889,3},{5732,49881,3},{5727,49881,3},{5732,49899,3},{5728,49903,3}, {5725,49901,3},{5722,49891,3},{5722,49894,3},{5718,49901,3},{5715,49899,3}, {5712,49889,3},{5710,49888,3},{5708,49891,3},{5710,49888,3},{5708,49886,3}, {5705,49886,3},{5705,49878,3},{5707,49873,3},{5705,49874,3},{5705,49871,3}, {5698,49881,3},{5700,49868,3},{5703,49864,3},{5705,49859,3},{5703,49856,3}, {5700,49859,3},{5697,49858,3},{5692,49856,3},{5690,49853,3},{5695,49848,3}, {5697,49839,3},{5690,49841,3},{5690,49834,3},{5682,49828,3},{5685,49818,3}, {5682,49821,3},{5678,49821,3},{5677,49816,3},{5680,49806,3},{5685,49799,3}, {5685,49793,3},{5682,49789,3},{5680,49794,3},{5677,49796,3},{5677,49791,3}, {5675,49789,3},{5677,49786,3},{5672,49779,3},{5672,49776,3},{5668,49781,3}, {5667,49788,3},{5663,49791,3},{5662,49789,3},{5660,49769,3},{5662,49766,3}, {5667,49761,3},{5668,49758,3},{5665,49751,3},{5665,49744,3},{5662,49741,3}, {5660,49738,3},{5660,49734,3},{5657,49731,3},{5657,49724,3},{5653,49724,3}, {5657,49744,3},{5655,49751,3},{5652,49753,3},{5647,49748,3},{5652,49723,3}, {5650,49719,3},{5648,49721,3},{5648,49724,3},{5647,49723,3},{5647,49709,3}, {5648,49703,3},{5647,49699,3},{5645,49694,3},{5640,49689,3},{5637,49684,3}, {5635,49686,3},{5632,49676,3},{5628,49671,3},{5627,49671,3},{5625,49681,3}, {5627,49681,3},{5630,49679,3},{5633,49691,3},{5630,49693,3},{5632,49696,3}, {5630,49696,3},{5632,49703,3},{5630,49706,3},{5630,49713,3},{5628,49716,3}, {5627,49714,3},{5623,49701,3},{5623,49696,3},{5620,49694,3},{5622,49699,3}, {5620,49704,3},{5617,49703,3},{5623,49718,3},{5623,49724,3},{5622,49719,3}, {5618,49716,3},{5618,49709,3},{5617,49709,3},{5615,49701,3},{5612,49701,3}, {5613,49698,3},{5617,49698,3},{5617,49694,3},{5613,49694,3},{5613,49693,3}, {5608,49696,3},{5607,49694,3},{5610,49691,3},{5610,49686,3},{5607,49689,3}, {5605,49688,3},{5603,49689,3},{5605,49689,3},{5603,49694,3},{5600,49693,3}, {5603,49686,3},{5603,49684,3},{5598,49686,3},{5602,49679,3},{5605,49684,3}, {5603,49678,3},{5605,49676,3},{5607,49679,3},{5610,49676,3},{5612,49681,3}, {5613,49681,3},{5615,49684,3},{5617,49686,3},{5617,49689,3},{5620,49686,3}, {5618,49673,3},{5617,49679,3},{5612,49671,3},{5612,49669,3},{5615,49669,3}, {5615,49666,3},{5610,49666,3},{5610,49669,3},{5607,49669,3},{5603,49663,3}, {5602,49671,3},{5598,49671,3},{5598,49668,3},{5597,49669,3},{5595,49668,3}, {5595,49661,3},{5597,49663,3},{5600,49663,3},{5602,49659,3},{5598,49656,3}, {5602,49653,3},{5600,49649,3},{5592,49643,3},{5593,49639,3},{5592,49634,3}, {5588,49634,3},{5592,49628,3},{5590,49619,3},{5588,49618,3},{5588,49611,3}, {5585,49604,3},{5588,49601,3},{5585,49596,3},{5580,49594,3},{5578,49593,3}, {5583,49588,3},{5590,49589,3},{5588,49581,3},{5587,49581,3},{5585,49583,3}, {5577,49586,3},{5572,49581,3},{5565,49581,3},{5562,49574,3},{5557,49574,3}, {5557,49563,3},{5560,49566,3},{5560,49561,3},{5562,49568,3},{5560,49571,3}, {5563,49574,3},{5567,49566,3},{5570,49573,3},{5573,49568,3},{5582,49574,3}, {5585,49563,3},{5585,49551,3},{5578,49551,3},{5578,49549,3},{5578,49544,3}, {5582,49539,3},{5578,49539,3},{5578,49533,3},{5577,49531,3},{5572,49534,3}, {5572,49526,3},{5570,49529,3},{5570,49524,3},{5573,49521,3},{5567,49523,3}, {5567,49521,3},{5565,49511,3},{5563,49508,3},{5565,49493,3},{5563,49493,3}, {5560,49499,3},{5557,49491,3},{5550,49489,3},{5548,49484,3},{5548,49481,3}, {5555,49478,3},{5560,49476,3},{5555,49469,3},{5553,49459,3},{5552,49461,3}, {5552,49469,3},{5545,49468,3},{5545,49458,3},{5545,49454,3},{5547,49451,3}, {5552,49453,3},{5552,49448,3},{5550,49441,3},{5547,49438,3},{5543,49433,3}, {5535,49411,3},{5535,49404,3},{5538,49401,3},{5537,49386,3},{5548,49388,3}, {5558,49399,3},{5553,49408,3},{5553,49423,3},{5555,49411,3},{5558,49406,3}, {5563,49394,3},{5562,49379,3},{5560,49374,3},{5558,49374,3},{5552,49364,3}, {5548,49368,3},{5543,49364,3},{5540,49366,3},{5527,49349,3},{5522,49346,3}, {5522,49341,3},{5522,49344,3},{5523,49343,3},{5523,49331,3},{5518,49334,3}, {5517,49333,3},{5515,49338,3},{5512,49341,3},{5510,49339,3},{5507,49329,3}, {5510,49323,3},{5517,49326,3},{5515,49319,3},{5510,49314,3},{5505,49316,3}, {5502,49309,3},{5507,49304,3},{5503,49301,3},{5503,49291,3},{5510,49283,3}, {5512,49288,3},{5508,49294,3},{5510,49299,3},{5517,49288,3},{5525,49283,3}, {5527,49276,3},{5528,49281,3},{5530,49279,3},{5530,49274,3},{5528,49268,3}, {5522,49264,3},{5517,49276,3},{5513,49276,3},{5513,49273,3},{5507,49271,3}, {5508,49274,3},{5507,49274,3},{5495,49279,3},{5500,49271,3},{5502,49274,3}, {5505,49271,3},{5493,49261,3},{5493,49249,3},{5495,49246,3},{5495,49244,3}, {5500,49238,3},{5500,49244,3},{5502,49244,3},{5503,49239,3},{5508,49234,3}, {5510,49226,3},{5510,49219,3},{5512,49224,3},{5513,49219,3},{5512,49216,3}, {5508,49218,3},{5510,49213,3},{5507,49213,3},{5507,49216,3},{5503,49214,3}, {5502,49216,3},{5497,49229,3},{5495,49231,3},{5490,49223,3},{5483,49213,3}, {5483,49208,3},{5480,49203,3},{5482,49199,3},{5485,49198,3},{5488,49203,3}, {5490,49204,3},{5492,49209,3},{5492,49206,3},{5492,49201,3},{5495,49203,3}, {5495,49211,3},{5495,49213,3},{5500,49208,3},{5512,49204,3},{5518,49224,3}, {5525,49234,3},{5523,49236,3},{5520,49231,3},{5517,49229,3},{5518,49248,3}, {5523,49253,3},{5525,49249,3},{5523,49248,3},{5527,49248,3},{5527,49253,3}, {5530,49258,3},{5532,49264,3},{5538,49273,3},{5535,49273,3},{5535,49281,3}, {5537,49288,3},{5545,49286,3},{5543,49276,3},{5540,49274,3},{5543,49276,3}, {5547,49283,3},{5568,49311,3},{5572,49323,3},{5577,49328,3},{5580,49339,3}, {5588,49356,3},{5590,49368,3},{5602,49421,3},{5595,49399,3},{5595,49413,3}, {5595,49424,3},{5593,49429,3},{5595,49434,3},{5600,49448,3},{5597,49449,3}, {5595,49449,3},{5593,49449,3},{5593,49443,3},{5593,49438,3},{5590,49434,3}, {5587,49436,3},{5588,49443,3},{5582,49441,3},{5572,49456,3},{5575,49458,3}, {5573,49464,3},{5570,49468,3},{5573,49469,3},{5578,49461,3},{5588,49456,3}, {5585,49469,3},{5587,49486,3},{5583,49489,3},{5580,49489,3},{5582,49494,3}, {5578,49499,3},{5577,49511,3},{5582,49504,3},{5583,49513,3},{5585,49513,3}, {5590,49491,3},{5593,49484,3},{5593,49479,3},{5598,49483,3},{5598,49481,3}, {5598,49479,3},{5600,49479,3},{5610,49489,3},{5617,49491,3},{5628,49501,3}, {5633,49511,3},{5640,49521,3},{5647,49539,3},{5653,49553,3},{5665,49588,3}, {5660,49581,3},{5663,49594,3},{5668,49606,3},{5668,49614,3},{5670,49609,3}, {5673,49613,3},{5680,49633,3},{5690,49649,3},{5682,49634,3},{5680,49633,3}, {5678,49638,3},{5680,49638,3},{5683,49641,3},{5678,49649,3},{5678,49659,3}, {5678,49668,3},{5677,49673,3},{5683,49671,3},{5688,49666,3},{5700,49668,3}, {5708,49674,3},{5732,49708,3},{5737,49719,3},{5737,49731,3},{5738,49726,3}, {5748,49741,3},{5757,49763,3},{5757,49768,3},{5755,49766,3},{5752,49771,3}, {5747,49771,3},{5748,49773,3},{5748,49784,3},{5747,49784,3},{5747,49788,3}, {5750,49796,3},{5753,49794,3},{5757,49796,3},{5755,49791,3},{5750,49794,3}, {5750,49784,3},{5748,49779,3},{5750,49776,3},{5762,49776,3},{5763,49773,3}, {5762,49773,3},{5762,49766,3},{5765,49766,3},{5773,49764,3},{5787,49773,3}, {5808,49774,3},{5817,49783,3},{5817,49794,3},{5820,49796,3},{5820,49816,3}, {5817,49823,3},{5820,49819,3},{5822,49806,3},{5823,49803,3},{5822,49789,3}, {5827,49783,3},{5828,49783,3},{5830,49779,3},{5838,49781,3},{5850,49789,3}, {5855,49801,3},{5863,49814,3},{5870,49826,3},{5872,49834,3},{5873,49843,3}, {5872,49831,3},{5873,49829,3},{5877,49829,3},{5883,49836,3},{5887,49833,3}, {5890,49838,3},{5893,49838,3},{5900,49851,3},{5908,49851,3},{5915,49858,3}, {5910,49849,3},{5902,49848,3},{5898,49844,3},{5897,49833,3},{5890,49831,3}, {5887,49824,3},{5883,49801,3},{5863,49731,3},{5860,49718,3},{5865,49704,3}, {5872,49701,3},{5875,49698,3},{5880,49679,3},{5883,49679,3},{5885,49684,3}, {5887,49684,3},{5895,49686,3},{5897,49694,3},{5900,49691,3},{5898,49689,3}, {5900,49686,3},{5903,49699,3},{5900,49723,3},{5895,49729,3},{5892,49728,3}, {5887,49733,3},{5890,49736,3},{5892,49731,3},{5895,49733,3},{5903,49723,3}, {5908,49694,3},{5917,49683,3},{5913,49681,3},{5907,49691,3},{5903,49683,3}, {5892,49674,3},{5887,49663,3},{5888,49661,3},{5893,49663,3},{5893,49659,3}, {5897,49658,3},{5897,49663,3},{5900,49661,3},{5897,49654,3},{5892,49659,3}, {5882,49656,3},{5877,49658,3},{5873,49651,3},{5873,49648,3},{5877,49648,3}, {5878,49654,3},{5880,49654,3},{5880,49648,3},{5878,49651,3},{5877,49644,3}, {5872,49646,3},{5857,49656,3},{5857,49658,3},{5850,49659,3},{5850,49666,3}, {5843,49659,3},{5842,49654,3},{5842,49656,3},{5840,49648,3},{5843,49629,3}, {5845,49633,3},{5845,49628,3},{5848,49628,3},{5848,49624,3},{5872,49601,3}, {5880,49591,3},{5885,49581,3},{5883,49571,3},{5890,49576,3},{5895,49573,3}, {5893,49559,3},{5892,49561,3},{5888,49558,3},{5885,49559,3},{5885,49554,3}, {5880,49554,3},{5877,49544,3},{5888,49534,3},{5888,49528,3},{5887,49526,3}, {5887,49521,3},{5888,49521,3},{5892,49519,3},{5890,49511,3},{5892,49511,3}, {5895,49509,3},{5893,49508,3},{5895,49504,3},{5898,49506,3},{5898,49511,3}, {5907,49503,3},{5905,49496,3},{5892,49463,3},{5882,49453,3},{5887,49453,3}, {5888,49448,3},{5887,49439,3},{5880,49418,3},{5880,49409,3},{5882,49409,3}, {5882,49406,3},{5880,49404,3},{5878,49408,3},{5878,49414,3},{5877,49408,3}, {5872,49399,3},{5867,49398,3},{5868,49404,3},{5863,49383,3},{5860,49378,3}, {5860,49374,3},{5857,49366,3},{5855,49359,3},{5860,49364,3},{5862,49364,3}, {5865,49361,3},{5862,49359,3},{5858,49361,3},{5862,49358,3},{5863,49354,3}, {5863,49326,3},{5865,49319,3},{5867,49329,3},{5868,49331,3},{5868,49336,3}, {5867,49341,3},{5865,49343,3},{5865,49348,3},{5868,49353,3},{5872,49351,3}, {5875,49356,3},{5877,49366,3},{5880,49371,3},{5882,49366,3},{5880,49361,3}, {5878,49359,3},{5880,49359,3},{5887,49356,3},{5897,49358,3},{5903,49351,3}, {5905,49354,3},{5902,49354,3},{5903,49364,3},{5910,49379,3},{5912,49374,3}, {5913,49374,3},{5912,49366,3},{5910,49348,3},{5908,49348,3},{5907,49351,3}, {5907,49348,3},{5910,49341,3},{5915,49336,3},{5927,49331,3},{5930,49336,3}, {5927,49331,3},{5923,49334,3},{5925,49338,3},{5928,49339,3},{5938,49341,3}, {5938,49346,3},{5942,49349,3},{5942,49351,3},{5947,49356,3},{5947,49363,3}, {5950,49366,3},{5962,49349,3},{5970,49348,3},{5982,49336,3},{5988,49328,3}, {5995,49326,3},{6000,49318,3},{6007,49313,3},{6015,49316,3},{6020,49311,3}, {6020,49319,3},{6025,49321,3},{6023,49316,3},{6022,49318,3},{6022,49314,3}, {6022,49309,3},{6023,49308,3},{6022,49306,3},{6020,49308,3},{6018,49306,3}, {6017,49309,3},{6013,49304,3},{6018,49299,3},{6022,49303,3},{6030,49289,3}, {6033,49298,3},{6047,49306,3},{6052,49314,3},{6058,49314,3},{6063,49328,3}, {6065,49339,3},{6065,49343,3},{6068,49339,3},{6070,49348,3},{6070,49341,3}, {6065,49328,3},{6070,49326,3},{6073,49319,3},{6073,49318,3},{6072,49319,3}, {6068,49324,3},{6065,49324,3},{6062,49309,3},{6053,49306,3},{6047,49299,3}, {6043,49298,3},{6043,49293,3},{6038,49294,3},{6037,49291,3},{6038,49291,3}, {6038,49286,3},{6035,49286,3},{6033,49276,3},{6032,49279,3},{6030,49276,3}, {6028,49281,3},{6025,49281,3},{6027,49266,3},{6022,49286,3},{6018,49291,3}, {6012,49286,3},{6005,49289,3},{6000,49284,3},{5998,49274,3},{6000,49261,3}, {5997,49263,3},{5995,49258,3},{5985,49223,3},{5982,49199,3},{5980,49169,3}, {5982,49136,3},{5985,49121,3},{5995,49114,3},{5997,49116,3},{5997,49126,3}, {5998,49126,3},{5998,49123,3},{6000,49124,3},{6000,49121,3},{6008,49094,3}, {6015,49088,3},{6018,49088,3},{6027,49069,3},{6028,49071,3},{6030,49068,3}, {6033,49071,3},{6028,49061,3},{6033,49041,3},{6037,49033,3},{6043,49021,3}, {6047,49033,3},{6050,49036,3},{6052,49039,3},{6055,49038,3},{6055,49029,3}, {6050,49016,3},{6052,48998,3},{6055,48993,3},{6058,48998,3},{6058,49008,3}, {6062,49011,3},{6063,49018,3},{6065,49021,3},{6072,49038,3},{6078,49033,3}, {6083,49048,3},{6087,49048,3},{6090,49041,3},{6092,49041,3},{6093,49043,3}, {6087,49053,3},{6090,49063,3},{6092,49071,3},{6090,49073,3},{6085,49066,3}, {6082,49071,3},{6082,49089,3},{6080,49094,3},{6078,49109,3},{6073,49109,3}, {6073,49114,3},{6068,49114,3},{6065,49104,3},{6062,49103,3},{6062,49098,3}, {6057,49093,3},{6055,49093,3},{6057,49098,3},{6065,49109,3},{6067,49123,3}, {6072,49126,3},{6077,49133,3},{6078,49141,3},{6077,49149,3},{6075,49156,3}, {6068,49153,3},{6067,49156,3},{6063,49153,3},{6058,49156,3},{6058,49169,3}, {6063,49183,3},{6068,49193,3},{6072,49193,3},{6075,49189,3},{6075,49194,3}, {6077,49194,3},{6080,49183,3},{6085,49163,3},{6085,49143,3},{6088,49158,3}, {6087,49163,3},{6087,49169,3},{6088,49181,3},{6090,49181,3},{6093,49161,3}, {6095,49161,3},{6097,49168,3},{6100,49168,3},{6098,49161,3},{6097,49156,3}, {6095,49156,3},{6092,49148,3},{6085,49141,3},{6087,49118,3},{6085,49108,3}, {6087,49096,3},{6085,49079,3},{6087,49076,3},{6090,49078,3},{6092,49074,3}, {6093,49064,3},{6092,49061,3},{6090,49056,3},{6092,49053,3},{6095,49051,3}, {6095,49046,3},{6095,49039,3},{6090,49029,3},{6093,49021,3},{6097,49016,3}, {6100,49021,3},{6102,49039,3},{6102,49041,3},{6108,49043,3},{6107,49049,3}, {6108,49051,3},{6112,49059,3},{6112,49036,3},{6107,49036,3},{6105,49033,3}, {6108,49024,3},{6110,49024,3},{6112,49019,3},{6113,49018,3},{6115,49024,3}, {6118,49024,3},{6122,49029,3},{6125,49023,3},{6123,49024,3},{6122,49028,3}, {6120,49021,3},{6115,49021,3},{6115,49011,3},{6120,48999,3},{6125,49006,3}, {6127,49016,3},{6132,49016,3},{6133,49011,3},{6137,49021,3},{6140,49018,3}, {6142,49021,3},{6143,49033,3},{6148,49038,3},{6150,49051,3},{6152,49053,3}, {6155,49061,3},{6158,49061,3},{6160,49066,3},{6163,49064,3},{6162,49059,3}, {6160,49061,3},{6158,49056,3},{6152,49048,3},{6150,49034,3},{6147,49034,3}, {6147,49028,3},{6143,49028,3},{6143,49019,3},{6140,49016,3},{6137,49016,3}, {6133,49008,3},{6132,49009,3},{6132,49014,3},{6128,49013,3},{6127,49014,3}, {6127,49006,3},{6120,48996,3},{6115,49003,3},{6113,48999,3},{6108,49001,3}, {6107,48998,3},{6108,48984,3},{6112,48976,3},{6123,48971,3},{6125,48976,3}, {6127,48973,3},{6128,48974,3},{6130,48963,3},{6130,48953,3},{6133,48949,3}, {6140,48944,3},{6143,48948,3},{6145,48958,3},{6148,48959,3},{6153,48954,3}, {6155,48946,3},{6153,48928,3},{6152,48928,3},{6150,48931,3},{6148,48926,3}, {6153,48921,3},{6158,48916,3},{6172,48921,3},{6163,48923,3},{6168,48959,3}, {6168,48951,3},{6173,48936,3},{6182,48926,3},{6183,48938,3},{6182,48943,3}, {6183,48954,3},{6182,48956,3},{6185,48961,3},{6185,48978,3},{6192,48966,3}, {6200,48961,3},{6212,48966,3},{6218,48979,3},{6235,48999,3},{6237,49003,3}, {6243,49009,3},{6252,49023,3},{6253,49033,3},{6253,49049,3},{6252,49049,3}, {6247,49051,3},{6247,49061,3},{6243,49068,3},{6243,49076,3},{6243,49071,3}, {6237,49061,3},{6238,49066,3},{6242,49073,3},{6243,49079,3},{6245,49078,3}, {6247,49068,3},{6252,49073,3},{6250,49069,3},{6248,49066,3},{6250,49061,3}, {6248,49053,3},{6253,49058,3},{6257,49051,3},{6263,49071,3},{6275,49088,3}, {6275,49084,3},{6263,49063,3},{6262,49056,3},{6275,49049,3},{6278,49049,3}, {6280,49059,3},{6282,49051,3},{6283,49048,3},{6293,49054,3},{6302,49068,3}, {6303,49079,3},{6302,49086,3},{6302,49089,3},{6303,49091,3},{6302,49098,3}, {6300,49104,3},{6305,49103,3},{6307,49099,3},{6308,49084,3},{6313,49078,3}, {6322,49094,3},{6327,49121,3},{6325,49138,3},{6322,49153,3},{6322,49164,3}, {6315,49173,3},{6312,49169,3},{6312,49174,3},{6313,49178,3},{6312,49183,3}, {6310,49174,3},{6305,49169,3},{6302,49156,3},{6298,49156,3},{6302,49161,3}, {6305,49174,3},{6310,49183,3},{6310,49193,3},{6302,49203,3},{6303,49206,3}, {6307,49229,3},{6315,49251,3},{6320,49254,3},{6323,49268,3},{6333,49286,3}, {6342,49294,3},{6348,49309,3},{6353,49304,3},{6352,49328,3},{6348,49334,3}, {6343,49319,3},{6343,49321,3},{6345,49333,3},{6343,49338,3},{6345,49339,3}, {6345,49354,3},{6347,49369,3},{6345,49379,3},{6347,49388,3},{6345,49391,3}, {6348,49409,3},{6352,49421,3},{6362,49434,3},{6363,49439,3},{6373,49456,3}, {6378,49459,3},{6387,49458,3},{6407,49443,3},{6422,49441,3},{6437,49416,3}, {6438,49418,3},{6440,49411,3},{6442,49418,3},{6442,49401,3},{6443,49394,3}, {6442,49386,3},{6438,49383,3},{6442,49383,3},{6445,49389,3},{6450,49389,3}, {6453,49396,3},{6450,49424,3},{6452,49434,3},{6452,49436,3},{6453,49433,3}, {6453,49428,3},{6455,49428,3},{6455,49439,3},{6462,49454,3},{6472,49458,3}, {6482,49448,3},{6487,49431,3},{6492,49421,3},{6492,49429,3},{6492,49433,3}, {6493,49438,3},{6493,49431,3},{6492,49428,3},{6493,49416,3},{6490,49414,3}, {6487,49404,3},{6478,49399,3},{6475,49381,3},{6477,49379,3},{6478,49369,3}, {6482,49364,3},{6482,49356,3},{6478,49364,3},{6477,49353,3},{6473,49343,3}, {6472,49343,3},{6475,49356,3},{6472,49348,3},{6470,49334,3},{6472,49324,3}, {6470,49329,3},{6468,49318,3},{6462,49311,3},{6452,49278,3},{6448,49274,3}, {6438,49273,3},{6437,49264,3},{6433,49258,3},{6442,49254,3},{6445,49249,3}, {6448,49249,3},{6450,49253,3},{6455,49241,3},{6455,49231,3},{6458,49233,3}, {6462,49223,3},{6465,49221,3},{6465,49214,3},{6460,49198,3},{6455,49208,3}, {6455,49216,3},{6452,49221,3},{6452,49233,3},{6448,49231,3},{6447,49224,3}, {6442,49223,3},{6440,49218,3},{6448,49208,3},{6450,49201,3},{6455,49188,3}, {6458,49154,3},{6457,49136,3},{6458,49113,3},{6457,49098,3},{6458,49109,3}, {6458,49101,3},{6448,49063,3},{6452,49069,3},{6452,49054,3},{6448,49048,3}, {6453,49043,3},{6452,49043,3},{6450,49039,3},{6447,49046,3},{6445,49044,3}, {6447,49059,3},{6445,49049,3},{6445,49034,3},{6452,48988,3},{6457,48924,3}, {6463,48901,3},{6470,48891,3},{6473,48888,3},{6478,48888,3},{6482,48891,3}, {6482,48898,3},{6483,48898,3},{6483,48894,3},{6488,48898,3},{6492,48894,3}, {6495,48884,3},{6493,48884,3},{6490,48893,3},{6495,48883,3},{6500,48866,3}, {6505,48864,3},{6508,48853,3},{6513,48844,3},{6518,48839,3},{6523,48841,3}, {6528,48848,3},{6527,48851,3},{6520,48843,3},{6515,48844,3},{6512,48861,3}, {6513,48881,3},{6518,48889,3},{6523,48888,3},{6527,48899,3},{6523,48924,3}, {6523,48931,3},{6525,48929,3},{6530,48916,3},{6532,48904,3},{6530,48899,3}, {6530,48898,3},{6537,48873,3},{6538,48843,3},{6535,48853,3},{6533,48871,3}, {6535,48853,3},{6538,48829,3},{6542,48791,3},{6545,48776,3},{6552,48766,3}, {6557,48744,3},{6558,48729,3},{6565,48723,3},{6570,48728,3},{6575,48746,3}, {6577,48751,3},{6573,48749,3},{6568,48733,3},{6565,48729,3},{6563,48733,3}, {6568,48751,3},{6572,48754,3},{6572,48776,3},{6573,48784,3},{6577,48786,3}, {6577,48781,3},{6580,48779,3},{6580,48791,3},{6583,48784,3},{6590,48808,3}, {6585,48818,3},{6588,48831,3},{6593,48849,3},{6597,48839,3},{6602,48853,3}, {6598,48849,3},{6598,48856,3},{6600,48854,3},{6607,48866,3},{6618,48909,3}, {6617,48923,3},{6615,48928,3},{6613,48921,3},{6612,48928,3},{6612,48948,3}, {6610,48956,3},{6610,48964,3},{6615,48981,3},{6615,48986,3},{6617,48984,3}, {6622,48964,3},{6622,48948,3},{6625,48949,3},{6632,48959,3},{6640,48991,3}, {6645,49019,3},{6643,49028,3},{6640,49033,3},{6647,49041,3},{6652,49063,3}, {6655,49064,3},{6660,49108,3},{6660,49143,3},{6660,49161,3},{6657,49174,3}, {6658,49151,3},{6657,49143,3},{6657,49158,3},{6652,49161,3},{6648,49159,3}, {6643,49151,3},{6640,49146,3},{6628,49151,3},{6623,49141,3},{6622,49128,3}, {6620,49126,3},{6620,49118,3},{6618,49118,3},{6620,49138,3},{6618,49138,3}, {6618,49141,3},{6622,49143,3},{6618,49146,3},{6612,49153,3},{6607,49171,3}, {6608,49186,3},{6608,49199,3},{6607,49211,3},{6607,49226,3},{6610,49241,3}, {6610,49261,3},{6607,49268,3},{6600,49269,3},{6603,49271,3},{6607,49288,3}, {6603,49299,3},{6608,49319,3},{6607,49333,3},{6603,49344,3},{6602,49339,3}, {6602,49346,3},{6598,49344,3},{6598,49356,3},{6598,49358,3},{6600,49353,3}, {6602,49353,3},{6605,49358,3},{6607,49363,3},{6608,49363,3},{6608,49358,3}, {6615,49369,3},{6625,49379,3},{6627,49388,3},{6627,49401,3},{6625,49399,3}, {6623,49403,3},{6622,49409,3},{6623,49428,3},{6613,49426,3},{6613,49418,3}, {6612,49421,3},{6613,49431,3},{6620,49436,3},{6625,49436,3},{6633,49423,3}, {6640,49381,3},{6640,49363,3},{6638,49356,3},{6637,49344,3},{6632,49344,3}, {6632,49348,3},{6628,49351,3},{6627,49344,3},{6633,49339,3},{6643,49349,3}, {6650,49349,3},{6653,49346,3},{6662,49328,3},{6672,49314,3},{6673,49286,3}, {6680,49283,3},{6687,49273,3},{6690,49273,3},{6692,49284,3},{6695,49288,3}, {6692,49294,3},{6695,49303,3},{6695,49304,3},{6682,49323,3},{6678,49334,3}, {6670,49329,3},{6665,49328,3},{6653,49348,3},{6645,49376,3},{6648,49401,3}, {6653,49416,3},{6650,49421,3},{6648,49428,3},{6643,49438,3},{6637,49458,3}, {6637,49481,3},{6638,49486,3},{6640,49513,3},{6652,49514,3},{6660,49504,3}, {6663,49504,3},{6665,49511,3},{6665,49501,3},{6662,49499,3},{6663,49488,3}, {6658,49481,3},{6660,49466,3},{6665,49458,3},{6667,49451,3},{6665,49419,3}, {6655,49409,3},{6653,49386,3},{6657,49379,3},{6658,49381,3},{6662,49366,3}, {6673,49346,3},{6677,49349,3},{6680,49348,3},{6683,49356,3},{6690,49356,3}, {6692,49364,3},{6695,49363,3},{6697,49371,3},{6695,49386,3},{6698,49386,3}, {6702,49368,3},{6700,49364,3},{6705,49351,3},{6703,49326,3},{6700,49313,3}, {6705,49311,3},{6707,49306,3},{6700,49306,3},{6698,49291,3},{6702,49289,3}, {6715,49303,3},{6717,49301,3},{6715,49293,3},{6713,49299,3},{6702,49281,3}, {6702,49271,3},{6705,49261,3},{6703,49253,3},{6705,49241,3},{6703,49241,3}, {6700,49251,3},{6700,49248,3},{6705,49221,3},{6712,49163,3},{6713,49159,3}, {6737,49153,3},{6752,49138,3},{6762,49124,3},{6772,49088,3},{6775,49086,3}, {6777,49076,3},{6783,49066,3},{6783,49059,3},{6780,49064,3},{6803,48999,3}, {6808,48978,3},{6810,48954,3},{6813,48944,3},{6822,48929,3},{6830,48908,3}, {6832,48893,3},{6835,48853,3},{6842,48891,3},{6837,48861,3},{6835,48874,3}, {6837,48883,3},{6840,48891,3},{6838,48898,3},{6842,48894,3},{6840,48904,3}, {6843,48899,3},{6847,48904,3},{6852,48906,3},{6857,48913,3},{6875,48918,3}, {6887,48913,3},{6888,48914,3},{6885,48963,3},{6888,49028,3},{6892,49073,3}, {6893,49104,3},{6900,49143,3},{6908,49166,3},{6913,49178,3},{6932,49209,3}, {6942,49218,3},{6942,49221,3},{6930,49209,3},{6935,49221,3},{6938,49224,3}, {6948,49224,3},{6952,49229,3},{6957,49229,3},{6960,49221,3},{6962,49233,3}, {6965,49229,3},{6965,49233,3},{6967,49229,3},{6968,49231,3},{6967,49238,3}, {6968,49241,3},{6970,49243,3},{6972,49241,3},{6973,49233,3},{6978,49241,3}, {6997,49284,3},{7005,49288,3},{7005,49299,3},{7010,49301,3},{7015,49314,3}, {7030,49338,3},{7032,49348,3},{7030,49353,3},{7028,49353,3},{7027,49364,3}, {7025,49366,3},{7025,49346,3},{7025,49348,3},{7023,49361,3},{7022,49351,3}, {7018,49351,3},{7017,49346,3},{7020,49336,3},{7018,49331,3},{7015,49324,3}, {7017,49351,3},{7018,49356,3},{7020,49363,3},{7020,49366,3},{7022,49363,3}, {7025,49374,3},{7025,49406,3},{7032,49433,3},{7030,49433,3},{7028,49441,3}, {7032,49438,3},{7038,49461,3},{7043,49476,3},{7038,49454,3},{7048,49489,3}, {7060,49521,3},{7058,49519,3},{7057,49524,3},{7060,49543,3},{7055,49541,3}, {7053,49544,3},{7052,49541,3},{7052,49533,3},{7048,49529,3},{7047,49516,3}, {7048,49544,3},{7032,49523,3},{7037,49539,3},{7033,49544,3},{7032,49544,3}, {7020,49559,3},{7038,49548,3},{7050,49554,3},{7047,49566,3},{7052,49586,3}, {7050,49594,3},{7053,49608,3},{7052,49593,3},{7052,49579,3},{7050,49564,3}, {7053,49556,3},{7063,49543,3},{7063,49533,3},{7060,49524,3},{7063,49526,3}, {7070,49544,3},{7070,49554,3},{7072,49551,3},{7080,49569,3},{7088,49618,3}, {7085,49599,3},{7083,49621,3},{7082,49621,3},{7080,49604,3},{7078,49591,3}, {7075,49599,3},{7077,49606,3},{7073,49604,3},{7068,49614,3},{7075,49608,3}, {7077,49611,3},{7075,49621,3},{7077,49636,3},{7078,49636,3},{7082,49628,3}, {7078,49666,3},{7082,49698,3},{7082,49703,3},{7083,49686,3},{7085,49686,3}, {7082,49713,3},{7083,49731,3},{7085,49749,3},{7095,49784,3},{7105,49809,3}, {7130,49854,3},{7140,49889,3},{7137,49898,3},{7140,49889,3},{7137,49884,3}, {7135,49876,3},{7130,49883,3},{7128,49893,3},{7127,49891,3},{7127,49913,3}, {7125,49924,3},{7122,49926,3},{7122,49931,3},{7117,49924,3},{7118,49936,3}, {7122,49941,3},{7120,49944,3},{7118,49971,3},{7117,49976,3},{7112,49981,3}, {7108,49981,3},{7103,49964,3},{7100,49963,3},{7097,49948,3},{7097,49926,3}, {7095,49934,3},{7093,49934,3},{7092,49918,3},{7092,49931,3},{7090,49928,3}, {7090,49929,3},{7090,49938,3},{7085,49943,3},{7082,49938,3},{7075,49939,3}, {7077,49946,3},{7082,49944,3},{7083,49946,3},{7083,49964,3},{7083,49971,3}, {7087,49971,3},{7083,49978,3},{7087,49983,3},{7093,49983,3},{7100,49998,3}, {7103,50008,3},{7100,50011,3},{7098,50016,3},{7103,50018,3},{7108,50008,3}, {7112,50019,3},{7108,50026,3},{7113,50024,3},{7115,50028,3},{7113,50033,3}, {7105,50033,3},{7102,50028,3},{7102,50034,3},{7112,50034,3},{7112,50039,3}, {7108,50046,3},{7110,50054,3},{7102,50076,3},{7092,50071,3},{7088,50056,3}, {7088,50068,3},{7088,50069,3},{7083,50074,3},{7082,50104,3},{7080,50111,3}, {7078,50111,3},{7078,50116,3},{7083,50133,3},{7088,50144,3},{7090,50198,3}, {7093,50216,3},{7090,50228,3},{7092,50233,3},{7090,50241,3},{7087,50244,3}, {7085,50249,3},{7088,50254,3},{7082,50266,3},{7085,50269,3},{7088,50261,3}, {7088,50271,3},{7087,50296,3},{7083,50311,3},{7082,50314,3},{7073,50293,3}, {7072,50294,3},{7070,50286,3},{7065,50286,3},{7060,50298,3},{7060,50326,3}, {7057,50328,3},{7058,50286,3},{7057,50279,3},{7057,50273,3},{7055,50274,3}, {7055,50284,3},{7055,50293,3},{7055,50311,3},{7055,50326,3},{7057,50334,3}, {7055,50363,3},{7052,50356,3},{7052,50349,3},{7050,50359,3},{7047,50339,3}, {7045,50339,3},{7043,50388,3},{7042,50403,3},{7037,50414,3},{7038,50419,3}, {7042,50414,3},{7045,50418,3},{7045,50438,3},{7047,50443,3},{7047,50449,3}, {7048,50453,3},{7047,50463,3},{7050,50458,3},{7050,50484,3},{7047,50488,3}, {7048,50494,3},{7048,50499,3},{7042,50496,3},{7045,50511,3},{7043,50524,3}, {7052,50548,3},{7048,50556,3},{7052,50566,3},{7052,50586,3},{7050,50589,3}, {7050,50588,3},{7048,50598,3},{7048,50601,3},{7050,50601,3},{7048,50619,3}, {7047,50631,3},{7042,50639,3},{7043,50644,3},{7042,50654,3},{7040,50676,3}, {7037,50684,3},{7032,50686,3},{7032,50699,3},{7037,50714,3},{7035,50726,3}, {7030,50731,3},{7032,50736,3},{7030,50738,3},{7032,50749,3},{7030,50756,3}, {7023,50756,3},{7018,50796,3},{7020,50809,3},{7017,50819,3},{7017,50838,3}, {7018,50843,3},{7017,50846,3},{7018,50848,3},{7020,50883,3},{7018,50908,3}, {7015,50928,3},{7015,50941,3},{7017,50943,3},{7013,50948,3},{7017,50948,3}, {7017,50953,3},{7008,50976,3},{7007,50976,3},{7010,50981,3},{7005,50989,3}, {7003,51003,3},{7003,51014,3},{7000,51006,3},{6998,51033,3},{6997,51039,3}, {6998,51048,3},{7000,51048,3},{6997,51059,3},{6997,51073,3},{7003,51096,3}, {7003,51119,3},{7007,51124,3},{7005,51129,3},{6998,51129,3},{7005,51134,3}, {7008,51131,3},{7007,51143,3},{7008,51148,3},{7008,51153,3},{7010,51161,3}, {7008,51168,3},{7008,51174,3},{7010,51179,3},{7012,51179,3},{7010,51184,3}, {7012,51201,3},{7005,51208,3},{7012,51208,3},{7008,51223,3},{7008,51234,3}, {7007,51238,3},{7008,51246,3},{7002,51273,3},{7000,51278,3},{6997,51276,3}, {6998,51281,3},{6997,51288,3},{6997,51284,3},{6995,51284,3},{6993,51294,3}, {6992,51294,3},{6992,51299,3},{6988,51299,3},{6988,51304,3},{6985,51309,3}, {6985,51326,3},{6980,51334,3},{6978,51339,3},{6980,51341,3},{6982,51344,3}, {6980,51348,3},{6978,51363,3},{6972,51383,3},{6963,51398,3},{6963,51411,3}, {6967,51414,3},{6968,51406,3},{6965,51436,3},{6962,51436,3},{6957,51436,3}, {6950,51436,3},{6943,51436,3},{6937,51436,3},{6930,51436,3},{6925,51436,3}, {6920,51436,3},{6913,51436,3},{6907,51436,3},{6900,51436,3},{6892,51436,3}, {6887,51436,3},{6880,51436,3},{6873,51436,3},{6867,51436,3},{6860,51436,3}, {6853,51436,3},{6847,51436,3},{6840,51436,3},{6833,51436,3},{6827,51436,3}, {6820,51436,3},{6813,51436,3},{6807,51436,3},{6800,51436,3},{6793,51436,3}, {6787,51436,3},{6780,51436,3},{6772,51436,3},{6767,51436,3},{6760,51436,3}, {6753,51436,3},{6747,51436,3},{6742,51436,3},{6737,51436,3},{6730,51436,3}, {6723,51436,3},{6717,51436,3},{6710,51436,3},{6705,51436,3},{6700,51436,3}, {6693,51436,3},{6687,51436,3},{6680,51436,3},{6673,51436,3},{6667,51436,3}, {6660,51436,3},{6653,51436,3},{6647,51436,3},{6642,51436,3},{6637,51436,3}, {6630,51436,3},{6623,51436,3},{6617,51436,3},{6610,51436,3},{6603,51436,3}, {6595,51436,3},{6590,51436,3},{6583,51436,3},{6577,51436,3},{6570,51436,3}, {6565,51436,3},{6558,51436,3},{6553,51436,3},{6547,51436,3},{6540,51436,3}, {6533,51436,3},{6527,51436,3},{6520,51436,3},{6513,51436,3},{6507,51436,3}, {6500,51436,3},{6493,51436,3},{6487,51436,3},{6480,51436,3},{6473,51436,3}, {6467,51436,3},{6460,51436,3},{6455,51436,3},{6448,51436,3},{6443,51436,3}, {6437,51436,3},{6430,51436,3},{6423,51436,3},{6417,51436,3},{6412,51436,3}, {6407,51436,3},{6400,51436,3},{6393,51436,3},{6387,51436,3},{6380,51436,3}, {6373,51436,3},{6367,51436,3},{6362,51436,3},{6355,51436,3},{6348,51436,3}, {6343,51436,3},{6337,51436,3},{6330,51436,3},{6323,51436,3},{6317,51436,3}, {6310,51436,3},{6305,51436,3},{6298,51436,3},{6293,51436,3},{6287,51436,3}, {6280,51436,3},{6273,51436,3},{6267,51436,3},{6260,51436,3},{6253,51436,3}, {6247,51436,3},{6240,51436,3},{6233,51436,3},{6228,51436,3},{6223,51436,3}, {6217,51436,3},{6210,51436,3},{6203,51436,3},{6197,51436,3},{6190,51436,3}, {6183,51436,3},{6177,51436,3},{6172,51436,3},{6165,51436,3},{6160,51436,3}, {6153,51436,3},{6148,51436,3},{6143,51436,3},{6137,51436,3},{6128,51436,3}, {6123,51436,3},{6117,51436,3},{6110,51436,3},{6103,51436,3},{6098,51436,3}, {6093,51436,3},{6087,51436,3},{6080,51436,3},{6073,51436,3},{6067,51436,3}, {6062,51436,3},{6055,51436,3},{6050,51436,3},{6043,51436,3},{6037,51436,3}, {6030,51436,3},{6022,51484,3},{6032,51491,3},{6018,51538,3},{6033,51568,3}, {6035,51629,3},{6032,51629,3},{6008,51618,3},{6000,51631,3},{5990,51668,3}, {5977,51674,3},{5923,51778,3},{5900,51788,3},{5893,51786,3},{5890,51791,3}, {5898,51806,3},{5915,51853,3},{5917,51878,3},{5928,51889,3},{5947,51889,3}, {5945,51899,3},{5947,51906,3},{5953,51913,3},{5957,51913,3},{5960,51901,3}, {5963,51916,3},{5967,51941,3},{5980,51989,3},{5973,52003,3},{5970,52013,3}, {5963,52018,3},{5962,52026,3},{5957,52034,3},{5947,52034,3},{5945,52029,3}, {5943,52028,3},{5938,52038,3},{5935,52034,3},{5928,52041,3},{5925,52068,3}, {5920,52069,3},{5913,52079,3},{5913,52089,3},{5905,52098,3},{5898,52096,3}, {5897,52104,3},{5893,52103,3},{5885,52111,3},{5873,52153,3},{5860,52168,3}, {5842,52199,3},{5838,52191,3},{5828,52199,3},{5813,52223,3},{5800,52231,3}, {5787,52248,3},{5752,52279,3},{5738,52298,3},{5720,52313,3},{5708,52303,3}, {5703,52333,3},{5687,52326,3},{5680,52349,3},{5675,52348,3},{5668,52353,3}, {5660,52354,3},{5660,52381,3},{5640,52431,3},{5637,52459,3},{5625,52473,3}, {5623,52489,3},{5613,52494,3},{5612,52508,3},{5608,52513,3},{5612,52528,3}, {5603,52534,3},{5592,52536,3},{5895,65268,129},{5892,65266,1},{5892,65259,1}, {5888,65253,1},{5890,65249,1},{5888,65244,1},{5897,65239,1},{5893,65228,1}, {5893,65229,1},{5893,65224,1},{5892,65224,1},{5892,65216,1},{5897,65213,1}, {5900,65216,1},{5903,65214,1},{5902,65211,1},{5900,65213,1},{5902,65208,1}, {5898,65211,1},{5895,65206,1},{5897,65201,1},{5902,65199,1},{5905,65203,1}, {5912,65201,1},{5913,65204,1},{5915,65214,1},{5912,65226,1},{5912,65228,1}, {5910,65231,1},{5910,65229,1},{5907,65236,1},{5903,65234,1},{5905,65229,1}, {5900,65223,1},{5898,65229,1},{5900,65231,1},{5902,65234,1},{7097,64689,129}, {7097,64674,1},{7082,64638,1},{7082,64628,1},{7087,64624,1},{7087,64631,1}, {7092,64643,1},{7093,64654,1},{7097,64663,1},{7102,64684,1},{7113,64703,1}, {3700,63016,129},{3698,63016,1},{3695,63019,1},{3693,63034,1},{3697,63034,1}, {3700,63033,1},{3702,63028,1},{3700,63016,1},{3790,62951,129},{3785,62949,1}, {3783,62951,1},{3775,62963,1},{3773,62968,1},{3775,62974,1},{3770,62986,1}, {3772,62999,1},{3773,63008,1},{3775,63019,1},{3782,63023,1},{3785,63021,1}, {3787,63018,1},{3787,63003,1},{3785,62999,1},{3783,62991,1},{3785,62986,1}, {3783,62981,1},{3785,62966,1},{3788,62966,1},{3790,62963,1},{3792,62958,1}, {3790,62951,1},{3872,62798,129},{3868,62801,1},{3863,62813,1},{3865,62831,1}, {3867,62831,1},{3870,62834,1},{3872,62833,1},{3873,62833,1},{3877,62829,1}, {3878,62823,1},{3880,62808,1},{3878,62799,1},{3877,62798,1},{3872,62798,1}, {3853,62681,129},{3845,62683,1},{3840,62689,1},{3840,62708,1},{3837,62711,1}, {3840,62716,1},{3838,62726,1},{3840,62733,1},{3843,62731,1},{3845,62729,1}, {3847,62716,1},{3850,62711,1},{3855,62696,1},{3855,62686,1},{3853,62681,1}, {3863,62664,129},{3860,62659,1},{3860,62651,1},{3857,62653,1},{3857,62658,1}, {3852,62661,1},{3852,62674,1},{3853,62673,1},{3855,62673,1},{3855,62676,1}, {3860,62674,1},{3863,62664,1},{2367,58006,129},{2368,58003,1},{2367,58003,1}, {2362,58001,1},{2365,58004,1},{2362,58003,1},{2362,58006,1},{2357,58004,1}, {2358,58008,1},{2348,58011,1},{2347,58014,1},{2343,58013,1},{2343,58016,1}, {2340,58016,1},{2337,58021,1},{2335,58019,1},{2335,58023,1},{2327,58026,1}, {2323,58023,1},{2320,58023,1},{2312,58029,1},{2312,58026,1},{2313,58021,1}, {2317,58018,1},{2317,58021,1},{2318,58019,1},{2320,58016,1},{2317,58013,1}, {2310,58026,1},{2307,58039,1},{2300,58043,1},{2288,58048,1},{2288,58049,1}, {2285,58051,1},{2287,58053,1},{2300,58051,1},{2303,58046,1},{2308,58044,1}, {2310,58039,1},{2310,58034,1},{2315,58029,1},{2333,58026,1},{2345,58018,1}, {2353,58016,1},{2358,58009,1},{2363,58009,1},{2367,58006,1},{2465,57973,129}, {2470,57964,1},{2470,57963,1},{2467,57961,1},{2458,57971,1},{2452,57971,1}, {2452,57978,1},{2437,57984,1},{2428,57989,1},{2428,57994,1},{2425,57996,1}, {2420,57994,1},{2417,57984,1},{2415,57984,1},{2413,57986,1},{2412,57989,1}, {2415,57993,1},{2417,58001,1},{2415,58008,1},{2422,58004,1},{2427,57999,1}, {2432,57996,1},{2437,57988,1},{2455,57976,1},{2465,57973,1},{2428,57766,129}, {2430,57768,1},{2428,57769,1},{2427,57771,1},{2425,57773,1},{2423,57773,1}, {2418,57766,1},{2417,57761,1},{2415,57763,1},{2413,57761,1},{2412,57766,1}, {2405,57764,1},{2403,57763,1},{2403,57766,1},{2410,57768,1},{2413,57771,1}, {2420,57773,1},{2422,57774,1},{2413,57781,1},{2403,57783,1},{2400,57781,1}, {2398,57783,1},{2395,57783,1},{2392,57776,1},{2390,57776,1},{2393,57781,1}, {2392,57784,1},{2382,57783,1},{2382,57779,1},{2380,57781,1},{2375,57781,1}, {2373,57776,1},{2375,57771,1},{2375,57769,1},{2373,57771,1},{2372,57769,1}, {2373,57768,1},{2375,57759,1},{2375,57761,1},{2378,57761,1},{2377,57768,1}, {2378,57769,1},{2382,57776,1},{2385,57779,1},{2383,57774,1},{2378,57766,1}, {2378,57763,1},{2382,57763,1},{2382,57759,1},{2385,57769,1},{2388,57771,1}, {2387,57768,1},{2385,57756,1},{2393,57753,1},{2398,57754,1},{2398,57753,1}, {2402,57753,1},{2405,57749,1},{2407,57749,1},{2410,57743,1},{2410,57746,1}, {2415,57744,1},{2415,57749,1},{2417,57751,1},{2420,57753,1},{2422,57758,1}, {2425,57759,1},{2428,57766,1},{2520,57716,129},{2518,57723,1},{2515,57726,1}, {2518,57731,1},{2515,57738,1},{2510,57736,1},{2507,57739,1},{2500,57738,1}, {2500,57741,1},{2497,57743,1},{2485,57748,1},{2478,57753,1},{2472,57763,1}, {2463,57763,1},{2460,57761,1},{2452,57764,1},{2447,57764,1},{2445,57761,1}, {2445,57756,1},{2442,57753,1},{2442,57751,1},{2437,57749,1},{2433,57743,1}, {2435,57739,1},{2430,57734,1},{2428,57736,1},{2427,57733,1},{2428,57731,1}, {2437,57728,1},{2440,57723,1},{2450,57723,1},{2445,57716,1},{2450,57706,1}, {2453,57699,1},{2462,57693,1},{2465,57698,1},{2467,57698,1},{2467,57703,1}, {2472,57704,1},{2470,57706,1},{2465,57708,1},{2460,57703,1},{2458,57703,1}, {2460,57709,1},{2463,57709,1},{2462,57711,1},{2457,57709,1},{2457,57711,1}, {2457,57714,1},{2460,57713,1},{2460,57716,1},{2462,57716,1},{2463,57714,1}, {2473,57709,1},{2467,57709,1},{2472,57706,1},{2478,57708,1},{2482,57713,1}, {2485,57713,1},{2487,57716,1},{2492,57718,1},{2495,57718,1},{2498,57719,1}, {2503,57721,1},{2517,57714,1},{2520,57716,1},{2557,57863,129},{2555,57868,1}, {2548,57868,1},{2550,57869,1},{2548,57871,1},{2547,57873,1},{2537,57888,1}, {2533,57896,1},{2535,57901,1},{2530,57904,1},{2522,57913,1},{2513,57924,1}, {2505,57924,1},{2500,57923,1},{2497,57921,1},{2490,57923,1},{2485,57923,1}, {2475,57918,1},{2465,57919,1},{2465,57918,1},{2468,57914,1},{2475,57913,1}, {2478,57904,1},{2482,57903,1},{2480,57914,1},{2482,57914,1},{2485,57918,1}, {2488,57919,1},{2488,57918,1},{2487,57916,1},{2488,57914,1},{2497,57916,1}, {2502,57921,1},{2508,57921,1},{2513,57919,1},{2515,57918,1},{2518,57911,1}, {2532,57901,1},{2535,57884,1},{2543,57874,1},{2543,57864,1},{2543,57861,1}, {2542,57858,1},{2547,57861,1},{2557,57863,1},{2690,57741,129},{2692,57746,1}, {2693,57753,1},{2690,57769,1},{2692,57776,1},{2690,57783,1},{2668,57806,1}, {2668,57811,1},{2667,57806,1},{2662,57809,1},{2660,57818,1},{2652,57831,1}, {2648,57833,1},{2647,57829,1},{2642,57831,1},{2638,57834,1},{2633,57833,1}, {2630,57836,1},{2628,57831,1},{2632,57831,1},{2630,57828,1},{2623,57819,1}, {2613,57818,1},{2593,57818,1},{2588,57816,1},{2588,57811,1},{2598,57806,1}, {2600,57799,1},{2602,57796,1},{2603,57798,1},{2607,57803,1},{2608,57806,1}, {2613,57811,1},{2615,57814,1},{2620,57811,1},{2625,57813,1},{2628,57813,1}, {2632,57811,1},{2635,57814,1},{2642,57813,1},{2643,57813,1},{2645,57816,1}, {2650,57818,1},{2652,57821,1},{2655,57821,1},{2658,57814,1},{2660,57801,1}, {2668,57799,1},{2668,57793,1},{2675,57793,1},{2687,57783,1},{2687,57769,1}, {2688,57764,1},{2688,57759,1},{2690,57758,1},{2692,57753,1},{2688,57741,1}, {2690,57739,1},{2690,57741,1},{2668,57639,129},{2665,57648,1},{2662,57649,1}, {2662,57653,1},{2658,57656,1},{2658,57666,1},{2662,57671,1},{2668,57676,1}, {2670,57676,1},{2672,57673,1},{2675,57676,1},{2680,57678,1},{2678,57681,1}, {2673,57683,1},{2673,57686,1},{2668,57701,1},{2670,57704,1},{2672,57708,1}, {2672,57721,1},{2670,57724,1},{2673,57733,1},{2672,57738,1},{2677,57744,1}, {2672,57744,1},{2667,57746,1},{2663,57744,1},{2667,57734,1},{2663,57721,1}, {2662,57706,1},{2657,57686,1},{2648,57666,1},{2650,57661,1},{2655,57653,1}, {2668,57638,1},{2670,57638,1},{2668,57639,1},{2103,58166,129},{2103,58169,1}, {2105,58171,1},{2108,58171,1},{2110,58168,1},{2112,58173,1},{2113,58179,1}, {2118,58183,1},{2120,58194,1},{2123,58196,1},{2117,58203,1},{2113,58209,1}, {2118,58221,1},{2127,58228,1},{2132,58229,1},{2133,58234,1},{2132,58236,1}, {2117,58234,1},{2097,58221,1},{2097,58208,1},{2093,58204,1},{2095,58206,1}, {2092,58191,1},{2095,58176,1},{2092,58169,1},{2093,58168,1},{2097,58168,1}, {2102,58164,1},{2103,58166,1},{1777,59049,129},{1777,59053,1},{1777,59054,1}, {1780,59058,1},{1775,59066,1},{1777,59071,1},{1777,59078,1},{1775,59079,1}, {1775,59076,1},{1772,59069,1},{1770,59063,1},{1768,59053,1},{1768,59049,1}, {1768,59046,1},{1772,59048,1},{1775,59048,1},{1777,59049,1},{1640,59384,129}, {1645,59383,1},{1652,59389,1},{1647,59396,1},{1642,59398,1},{1638,59396,1}, {1635,59399,1},{1632,59409,1},{1627,59416,1},{1625,59419,1},{1623,59418,1}, {1625,59413,1},{1623,59401,1},{1620,59391,1},{1622,59384,1},{1625,59381,1}, {1627,59381,1},{1633,59384,1},{1635,59386,1},{1638,59386,1},{1640,59384,1}, {1605,59361,129},{1627,59356,1},{1633,59358,1},{1637,59361,1},{1630,59376,1}, {1627,59376,1},{1628,59381,1},{1623,59383,1},{1623,59379,1},{1620,59378,1}, {1605,59381,1},{1598,59374,1},{1595,59368,1},{1598,59366,1},{1605,59361,1}, {1563,59389,129},{1563,59394,1},{1558,59398,1},{1558,59404,1},{1555,59406,1}, {1552,59409,1},{1545,59411,1},{1543,59409,1},{1532,59411,1},{1525,59409,1}, {1523,59408,1},{1525,59404,1},{1520,59399,1},{1520,59398,1},{1525,59398,1}, {1527,59399,1},{1530,59396,1},{1535,59396,1},{1548,59389,1},{1553,59388,1}, {1557,59389,1},{1558,59388,1},{1563,59389,1},{1487,59416,129},{1488,59419,1}, {1487,59426,1},{1480,59436,1},{1475,59441,1},{1477,59443,1},{1477,59448,1}, {1477,59446,1},{1473,59446,1},{1475,59444,1},{1473,59443,1},{1472,59443,1}, {1470,59444,1},{1468,59443,1},{1467,59443,1},{1467,59448,1},{1465,59446,1}, {1463,59446,1},{1462,59449,1},{1460,59449,1},{1457,59453,1},{1455,59453,1}, {1453,59453,1},{1452,59453,1},{1447,59454,1},{1440,59449,1},{1440,59448,1}, {1443,59448,1},{1443,59449,1},{1447,59449,1},{1445,59446,1},{1447,59444,1}, {1447,59433,1},{1445,59431,1},{1447,59428,1},{1450,59428,1},{1452,59426,1}, {1453,59428,1},{1457,59431,1},{1453,59434,1},{1455,59436,1},{1460,59434,1}, {1460,59431,1},{1460,59426,1},{1467,59421,1},{1470,59418,1},{1475,59418,1}, {1482,59413,1},{1487,59416,1},{2183,57229,129},{2190,57234,1},{2192,57239,1}, {2193,57236,1},{2195,57238,1},{2190,57261,1},{2188,57268,1},{2183,57266,1}, {2180,57268,1},{2180,57269,1},{2177,57273,1},{2177,57276,1},{2175,57276,1}, {2172,57278,1},{2167,57274,1},{2165,57279,1},{2160,57279,1},{2160,57281,1}, {2157,57281,1},{2148,57266,1},{2143,57246,1},{2145,57243,1},{2147,57229,1}, {2150,57226,1},{2153,57221,1},{2157,57219,1},{2163,57218,1},{2157,57226,1}, {2153,57229,1},{2155,57234,1},{2157,57236,1},{2157,57238,1},{2160,57239,1}, {2158,57241,1},{2157,57239,1},{2158,57243,1},{2160,57241,1},{2162,57238,1}, {2167,57234,1},{2178,57228,1},{2183,57229,1},{2253,57686,129},{2253,57689,1}, {2255,57693,1},{2257,57696,1},{2253,57703,1},{2253,57701,1},{2252,57701,1}, {2245,57708,1},{2243,57708,1},{2243,57706,1},{2245,57706,1},{2243,57701,1}, {2243,57696,1},{2242,57694,1},{2243,57694,1},{2243,57696,1},{2247,57696,1}, {2245,57689,1},{2245,57686,1},{2245,57683,1},{2247,57681,1},{2248,57679,1}, {2248,57671,1},{2250,57671,1},{2252,57671,1},{2253,57671,1},{2250,57668,1}, {2250,57666,1},{2253,57666,1},{2255,57669,1},{2255,57676,1},{2253,57679,1}, {2253,57686,1},{2240,57704,129},{2243,57709,1},{2243,57716,1},{2242,57718,1}, {2243,57719,1},{2240,57726,1},{2230,57729,1},{2228,57731,1},{2228,57734,1}, {2227,57734,1},{2227,57731,1},{2230,57726,1},{2230,57719,1},{2232,57718,1}, {2232,57716,1},{2233,57719,1},{2237,57716,1},{2237,57714,1},{2233,57714,1}, {2233,57713,1},{2237,57711,1},{2237,57714,1},{2238,57713,1},{2240,57709,1}, {2240,57708,1},{2240,57704,1},{2232,57734,129},{2230,57738,1},{2228,57739,1}, {2227,57739,1},{2227,57738,1},{2223,57738,1},{2223,57741,1},{2223,57743,1}, {2220,57744,1},{2222,57744,1},{2223,57746,1},{2222,57748,1},{2222,57749,1}, {2220,57749,1},{2218,57746,1},{2217,57749,1},{2217,57753,1},{2215,57753,1}, {2212,57751,1},{2210,57749,1},{2210,57748,1},{2210,57746,1},{2215,57744,1}, {2215,57741,1},{2212,57741,1},{2218,57733,1},{2220,57731,1},{2223,57736,1}, {2228,57736,1},{2232,57734,1},{2210,57741,129},{2210,57744,1},{2207,57749,1}, {2210,57756,1},{2207,57759,1},{2208,57763,1},{2207,57764,1},{2205,57768,1}, {2207,57769,1},{2203,57774,1},{2197,57771,1},{2193,57773,1},{2192,57768,1}, {2195,57768,1},{2195,57766,1},{2192,57766,1},{2190,57766,1},{2195,57763,1}, {2198,57754,1},{2203,57754,1},{2203,57751,1},{2200,57751,1},{2202,57751,1}, {2200,57748,1},{2205,57743,1},{2210,57741,1},{1082,59428,129},{1083,59434,1}, {1083,59438,1},{1083,59443,1},{1082,59446,1},{1075,59441,1},{1070,59436,1}, {1070,59434,1},{1067,59433,1},{1053,59434,1},{1052,59433,1},{1048,59431,1}, {1038,59434,1},{1035,59436,1},{1033,59439,1},{1030,59436,1},{1013,59436,1}, {1013,59433,1},{1008,59424,1},{1007,59416,1},{1008,59409,1},{1007,59403,1}, {1007,59381,1},{1005,59373,1},{1008,59368,1},{1007,59353,1},{1003,59344,1}, {1005,59344,1},{1007,59344,1},{1010,59353,1},{1013,59354,1},{1017,59366,1}, {1020,59373,1},{1025,59373,1},{1023,59383,1},{1025,59386,1},{1028,59391,1}, {1033,59389,1},{1042,59388,1},{1053,59391,1},{1060,59389,1},{1063,59388,1}, {1067,59381,1},{1068,59376,1},{1068,59371,1},{1072,59369,1},{1073,59376,1}, {1075,59388,1},{1077,59389,1},{1075,59391,1},{1077,59393,1},{1075,59393,1}, {1077,59394,1},{1077,59396,1},{1080,59399,1},{1080,59401,1},{1078,59416,1}, {1080,59419,1},{1082,59428,1},{1135,59483,129},{1127,59483,1},{1125,59478,1}, {1120,59473,1},{1120,59468,1},{1118,59464,1},{1118,59463,1},{1113,59456,1}, {1115,59451,1},{1118,59451,1},{1118,59454,1},{1130,59468,1},{1133,59478,1}, {1132,59479,1},{1133,59481,1},{1135,59483,1},{10,56386,129},{5,56386,1}, {0,56376,1},{65534,56376,1},{65531,56379,1},{65534,56388,1},{65533,56394,1}, {65521,56396,1},{65518,56398,1},{65516,56396,1},{65513,56394,1},{65511,56398,1}, {65506,56399,1},{65503,56403,1},{65498,56413,1},{65491,56413,1},{65481,56421,1}, {65481,56424,1},{65478,56428,1},{65474,56428,1},{65474,56424,1},{65473,56423,1}, {65471,56423,1},{65468,56421,1},{65469,56413,1},{65468,56404,1},{65466,56404,1}, {65458,56394,1},{65453,56388,1},{65449,56386,1},{65444,56388,1},{65441,56391,1}, {65436,56393,1},{65434,56394,1},{65433,56398,1},{65434,56404,1},{65433,56416,1}, {65434,56421,1},{65434,56428,1},{65439,56436,1},{65439,56443,1},{65444,56448,1}, {65444,56451,1},{65449,56449,1},{65458,56453,1},{65459,56456,1},{65461,56458,1}, {65466,56451,1},{65469,56451,1},{65471,56448,1},{65474,56444,1},{65474,56439,1}, {65479,56441,1},{65478,56438,1},{65484,56441,1},{65489,56439,1},{65493,56441,1}, {65501,56431,1},{65506,56423,1},{65508,56424,1},{65513,56419,1},{65521,56416,1}, {65534,56416,1},{2,56408,1},{5,56408,1},{8,56404,1},{13,56404,1},{15,56399,1}, {13,56398,1},{10,56393,1},{10,56386,1},{65508,56369,129},{65498,56371,1}, {65489,56374,1},{65489,56379,1},{65486,56386,1},{65489,56396,1},{65491,56396,1}, {65496,56396,1},{65503,56396,1},{65508,56394,1},{65511,56389,1},{65508,56379,1}, {65508,56369,1},{5192,47744,129},{5188,47748,1},{5185,47746,1},{5185,47753,1}, {5183,47753,1},{5185,47758,1},{5183,47764,1},{5185,47774,1},{5183,47774,1}, {5182,47771,1},{5182,47764,1},{5178,47756,1},{5177,47759,1},{5173,47754,1}, {5170,47756,1},{5167,47751,1},{5168,47748,1},{5167,47744,1},{5160,47746,1}, {5160,47741,1},{5163,47739,1},{5165,47733,1},{5167,47733,1},{5167,47726,1}, {5170,47728,1},{5170,47734,1},{5172,47741,1},{5177,47739,1},{5178,47734,1}, {5178,47731,1},{5182,47729,1},{5187,47714,1},{5192,47721,1},{5192,47744,1}, {5197,47881,129},{5192,47881,1},{5190,47876,1},{5185,47871,1},{5185,47878,1}, {5183,47876,1},{5183,47883,1},{5182,47886,1},{5183,47886,1},{5183,47893,1}, {5173,47893,1},{5172,47889,1},{5173,47889,1},{5175,47886,1},{5173,47883,1}, {5168,47879,1},{5170,47874,1},{5167,47869,1},{5168,47866,1},{5167,47864,1}, {5162,47864,1},{5163,47861,1},{5160,47856,1},{5163,47854,1},{5163,47856,1}, {5167,47853,1},{5172,47853,1},{5158,47844,1},{5160,47838,1},{5165,47839,1}, {5170,47846,1},{5175,47848,1},{5177,47854,1},{5177,47846,1},{5180,47846,1}, {5182,47849,1},{5180,47851,1},{5178,47853,1},{5178,47856,1},{5178,47866,1}, {5180,47861,1},{5182,47858,1},{5185,47859,1},{5185,47866,1},{5190,47859,1}, {5193,47858,1},{5195,47864,1},{5195,47873,1},{5198,47876,1},{5198,47881,1}, {5197,47881,1},{5242,48119,129},{5240,48124,1},{5238,48128,1},{5237,48129,1}, {5235,48136,1},{5232,48138,1},{5230,48138,1},{5227,48131,1},{5222,48129,1}, {5222,48116,1},{5220,48116,1},{5213,48128,1},{5210,48126,1},{5212,48121,1}, {5212,48119,1},{5212,48114,1},{5208,48114,1},{5210,48109,1},{5212,48104,1}, {5210,48093,1},{5210,48099,1},{5210,48096,1},{5207,48096,1},{5203,48094,1}, {5203,48091,1},{5208,48091,1},{5207,48089,1},{5207,48086,1},{5208,48084,1}, {5203,48088,1},{5205,48081,1},{5203,48081,1},{5203,48079,1},{5203,48069,1}, {5205,48066,1},{5203,48066,1},{5200,48064,1},{5202,48059,1},{5203,48046,1}, {5203,48039,1},{5200,48034,1},{5200,48028,1},{5202,48008,1},{5200,48004,1}, {5202,48003,1},{5205,48024,1},{5203,48026,1},{5202,48024,1},{5203,48031,1}, {5202,48034,1},{5207,48034,1},{5205,48038,1},{5208,48041,1},{5207,48044,1}, {5212,48046,1},{5208,48046,1},{5210,48049,1},{5208,48053,1},{5210,48056,1}, {5208,48058,1},{5212,48064,1},{5210,48064,1},{5210,48078,1},{5213,48076,1}, {5213,48086,1},{5215,48081,1},{5218,48081,1},{5217,48094,1},{5217,48096,1}, {5220,48091,1},{5222,48093,1},{5222,48098,1},{5218,48103,1},{5220,48103,1}, {5222,48106,1},{5222,48108,1},{5223,48109,1},{5225,48113,1},{5227,48113,1}, {5228,48106,1},{5232,48103,1},{5230,48101,1},{5228,48103,1},{5228,48099,1}, {5230,48093,1},{5232,48091,1},{5232,48099,1},{5233,48103,1},{5237,48103,1}, {5237,48108,1},{5238,48108,1},{5242,48119,1},{5212,48134,129},{5213,48148,1}, {5212,48148,1},{5212,48146,1},{5210,48149,1},{5212,48151,1},{5208,48156,1}, {5212,48161,1},{5213,48168,1},{5215,48173,1},{5215,48178,1},{5213,48178,1}, {5215,48183,1},{5212,48183,1},{5210,48186,1},{5212,48189,1},{5210,48193,1}, {5212,48194,1},{5210,48196,1},{5210,48199,1},{5208,48201,1},{5208,48206,1}, {5210,48206,1},{5210,48214,1},{5210,48223,1},{5208,48241,1},{5205,48221,1}, {5207,48213,1},{5207,48211,1},{5207,48208,1},{5203,48198,1},{5203,48188,1}, {5202,48186,1},{5203,48184,1},{5203,48179,1},{5205,48179,1},{5205,48168,1}, {5207,48168,1},{5205,48163,1},{5203,48153,1},{5205,48144,1},{5208,48144,1}, {5210,48134,1},{5212,48131,1},{5213,48131,1},{5212,48134,1},{5350,48756,129}, {5343,48749,1},{5338,48751,1},{5327,48724,1},{5323,48708,1},{5320,48703,1}, {5315,48701,1},{5317,48699,1},{5313,48699,1},{5312,48694,1},{5305,48689,1}, {5302,48678,1},{5297,48668,1},{5295,48668,1},{5297,48659,1},{5295,48658,1}, {5292,48661,1},{5290,48659,1},{5293,48656,1},{5290,48649,1},{5288,48648,1}, {5285,48633,1},{5283,48633,1},{5282,48626,1},{5283,48631,1},{5287,48631,1}, {5288,48639,1},{5293,48639,1},{5293,48648,1},{5300,48649,1},{5302,48654,1}, {5307,48659,1},{5308,48659,1},{5310,48656,1},{5315,48656,1},{5318,48659,1}, {5325,48673,1},{5327,48674,1},{5325,48683,1},{5327,48689,1},{5325,48693,1}, {5327,48699,1},{5330,48701,1},{5333,48693,1},{5338,48698,1},{5342,48694,1}, {5348,48701,1},{5348,48706,1},{5353,48713,1},{5357,48736,1},{5352,48743,1}, {5352,48756,1},{5350,48756,1},{5397,48911,129},{5393,48911,1},{5392,48909,1}, {5393,48914,1},{5392,48914,1},{5388,48911,1},{5387,48908,1},{5388,48901,1}, {5385,48901,1},{5383,48893,1},{5380,48894,1},{5378,48883,1},{5377,48888,1}, {5375,48881,1},{5372,48879,1},{5370,48881,1},{5368,48881,1},{5372,48884,1}, {5368,48888,1},{5372,48889,1},{5373,48889,1},{5375,48894,1},{5372,48899,1}, {5375,48899,1},{5378,48901,1},{5377,48904,1},{5372,48904,1},{5372,48909,1}, {5368,48908,1},{5367,48899,1},{5367,48894,1},{5365,48894,1},{5362,48881,1}, {5358,48884,1},{5360,48879,1},{5358,48878,1},{5353,48878,1},{5360,48869,1}, {5352,48873,1},{5353,48864,1},{5350,48871,1},{5348,48869,1},{5352,48863,1}, {5357,48858,1},{5355,48856,1},{5347,48861,1},{5345,48861,1},{5347,48856,1}, {5343,48854,1},{5345,48853,1},{5348,48848,1},{5343,48844,1},{5347,48841,1}, {5342,48839,1},{5345,48836,1},{5342,48828,1},{5342,48823,1},{5340,48818,1}, {5337,48808,1},{5333,48804,1},{5333,48796,1},{5333,48794,1},{5332,48791,1}, {5325,48786,1},{5328,48776,1},{5325,48774,1},{5323,48769,1},{5327,48769,1}, {5327,48759,1},{5330,48751,1},{5338,48768,1},{5338,48771,1},{5337,48773,1}, {5338,48774,1},{5337,48776,1},{5340,48778,1},{5337,48788,1},{5340,48784,1}, {5343,48788,1},{5342,48796,1},{5343,48796,1},{5343,48798,1},{5340,48804,1}, {5345,48803,1},{5345,48808,1},{5347,48806,1},{5345,48814,1},{5347,48819,1}, {5352,48818,1},{5350,48828,1},{5353,48839,1},{5355,48838,1},{5353,48828,1}, {5355,48821,1},{5357,48823,1},{5360,48819,1},{5362,48819,1},{5363,48824,1}, {5362,48829,1},{5360,48831,1},{5363,48831,1},{5362,48836,1},{5363,48836,1}, {5367,48829,1},{5368,48829,1},{5370,48833,1},{5372,48844,1},{5370,48848,1}, {5363,48849,1},{5365,48853,1},{5363,48856,1},{5370,48853,1},{5368,48859,1}, {5370,48861,1},{5372,48858,1},{5372,48866,1},{5373,48849,1},{5375,48848,1}, {5377,48839,1},{5375,48833,1},{5380,48826,1},{5382,48826,1},{5383,48821,1}, {5385,48819,1},{5387,48824,1},{5392,48826,1},{5395,48834,1},{5395,48839,1}, {5398,48848,1},{5397,48851,1},{5402,48861,1},{5398,48861,1},{5397,48863,1}, {5402,48868,1},{5398,48874,1},{5395,48876,1},{5395,48874,1},{5392,48873,1}, {5387,48873,1},{5388,48878,1},{5383,48876,1},{5390,48888,1},{5388,48891,1}, {5393,48891,1},{5393,48894,1},{5400,48899,1},{5400,48901,1},{5395,48899,1}, {5395,48903,1},{5397,48909,1},{5397,48911,1},{6042,48924,129},{6033,48929,1}, {6032,48943,1},{6033,48944,1},{6035,48951,1},{6033,48959,1},{6030,48968,1}, {6027,48968,1},{6023,48964,1},{6020,48968,1},{6017,48963,1},{6015,48968,1}, {6010,48969,1},{6007,48963,1},{6007,48969,1},{6003,48969,1},{6002,48974,1}, {6000,48973,1},{5997,48974,1},{5998,48983,1},{5995,48978,1},{5995,48981,1}, {5992,48979,1},{5990,48974,1},{5990,48964,1},{5992,48961,1},{5990,48961,1}, {5990,48958,1},{5987,48948,1},{5990,48938,1},{5990,48936,1},{5987,48939,1}, {5983,48924,1},{5985,48924,1},{5987,48918,1},{5985,48909,1},{5982,48914,1}, {5982,48924,1},{5978,48928,1},{5975,48926,1},{5975,48916,1},{5978,48914,1}, {5982,48908,1},{5985,48894,1},{5985,48888,1},{5987,48884,1},{5985,48876,1}, {5988,48869,1},{5990,48861,1},{5995,48848,1},{5998,48834,1},{6000,48836,1}, {6000,48831,1},{6002,48829,1},{5998,48828,1},{6000,48823,1},{6008,48811,1}, {6007,48809,1},{6007,48804,1},{6013,48803,1},{6020,48791,1},{6020,48796,1}, {6023,48806,1},{6022,48811,1},{6023,48826,1},{6022,48833,1},{6020,48853,1}, {6023,48856,1},{6028,48856,1},{6033,48869,1},{6032,48878,1},{6035,48879,1}, {6038,48886,1},{6038,48894,1},{6037,48898,1},{6033,48896,1},{6038,48909,1}, {6038,48921,1},{6043,48921,1},{6042,48924,1},{6295,48569,129},{6297,48561,1}, {6302,48561,1},{6302,48564,1},{6305,48566,1},{6307,48561,1},{6312,48556,1}, {6315,48546,1},{6315,48539,1},{6303,48558,1},{6312,48546,1},{6320,48528,1}, {6318,48521,1},{6320,48509,1},{6322,48514,1},{6328,48513,1},{6330,48503,1}, {6338,48483,1},{6340,48471,1},{6342,48468,1},{6342,48458,1},{6347,48451,1}, {6343,48428,1},{6342,48453,1},{6337,48481,1},{6332,48494,1},{6323,48506,1}, {6330,48496,1},{6335,48483,1},{6342,48448,1},{6343,48433,1},{6343,48426,1}, {6342,48423,1},{6338,48409,1},{6333,48403,1},{6332,48391,1},{6333,48381,1}, {6335,48379,1},{6337,48363,1},{6342,48356,1},{6352,48351,1},{6358,48353,1}, {6360,48356,1},{6363,48356,1},{6367,48363,1},{6380,48363,1},{6380,48369,1}, {6377,48373,1},{6370,48373,1},{6365,48396,1},{6363,48384,1},{6362,48381,1}, {6362,48386,1},{6360,48388,1},{6360,48401,1},{6362,48406,1},{6363,48398,1}, {6363,48404,1},{6360,48429,1},{6360,48419,1},{6358,48426,1},{6358,48428,1}, {6358,48434,1},{6358,48439,1},{6357,48439,1},{6358,48446,1},{6360,48453,1}, {6368,48471,1},{6367,48474,1},{6368,48481,1},{6370,48491,1},{6368,48499,1}, {6370,48506,1},{6363,48516,1},{6362,48526,1},{6358,48529,1},{6353,48533,1}, {6348,48528,1},{6348,48544,1},{6345,48551,1},{6345,48561,1},{6345,48553,1}, {6343,48558,1},{6343,48571,1},{6342,48579,1},{6337,48579,1},{6335,48584,1}, {6335,48594,1},{6338,48583,1},{6335,48609,1},{6330,48616,1},{6330,48619,1}, {6330,48626,1},{6332,48629,1},{6335,48614,1},{6335,48636,1},{6330,48668,1}, {6328,48663,1},{6323,48664,1},{6315,48651,1},{6318,48626,1},{6318,48609,1}, {6317,48603,1},{6318,48608,1},{6318,48621,1},{6320,48616,1},{6318,48604,1}, {6315,48596,1},{6313,48596,1},{6312,48593,1},{6310,48584,1},{6303,48578,1}, {6298,48581,1},{6298,48576,1},{6295,48569,1},{2027,49954,129},{2023,49963,1}, {2020,49964,1},{2013,49978,1},{2013,49984,1},{2010,49993,1},{1998,50018,1}, {1988,50028,1},{1973,50029,1},{1975,50036,1},{1973,50038,1},{1965,50039,1}, {1963,50043,1},{1962,50043,1},{1953,50056,1},{1945,50053,1},{1942,50044,1}, {1933,50036,1},{1932,50029,1},{1928,50019,1},{1927,50006,1},{1915,49991,1}, {1913,49986,1},{1910,49983,1},{1905,49981,1},{1898,49978,1},{1892,49969,1}, {1897,49968,1},{1903,49958,1},{1903,49949,1},{1908,49946,1},{1918,49946,1}, {1937,49948,1},{1942,49946,1},{1948,49944,1},{1950,49943,1},{1953,49941,1}, {1963,49938,1},{1967,49934,1},{1973,49931,1},{1980,49933,1},{1982,49938,1}, {1985,49939,1},{1987,49944,1},{1995,49948,1},{2000,49954,1},{2005,49954,1}, {2010,49949,1},{2018,49946,1},{2027,49949,1},{2028,49951,1},{2027,49954,1}, {2093,49909,129},{2093,49913,1},{2088,49918,1},{2087,49923,1},{2085,49924,1}, {2083,49928,1},{2080,49936,1},{2077,49938,1},{2072,49936,1},{2067,49929,1}, {2063,49923,1},{2063,49914,1},{2058,49906,1},{2058,49899,1},{2058,49894,1}, {2062,49891,1},{2070,49891,1},{2080,49888,1},{2078,49883,1},{2080,49879,1}, {2083,49873,1},{2088,49868,1},{2093,49866,1},{2102,49869,1},{2102,49871,1}, {2103,49873,1},{2105,49876,1},{2098,49884,1},{2090,49889,1},{2092,49894,1}, {2092,49898,1},{2095,49903,1},{2093,49909,1},{2120,49819,129},{2118,49838,1}, {2122,49839,1},{2120,49841,1},{2117,49843,1},{2117,49846,1},{2117,49854,1}, {2118,49858,1},{2117,49861,1},{2115,49866,1},{2108,49859,1},{2105,49849,1}, {2112,49829,1},{2108,49806,1},{2110,49806,1},{2115,49806,1},{2118,49811,1}, {2122,49809,1},{2122,49816,1},{2120,49819,1},{2170,49739,129},{2167,49744,1}, {2162,49744,1},{2157,49749,1},{2155,49751,1},{2152,49753,1},{2150,49751,1}, {2147,49751,1},{2143,49758,1},{2143,49761,1},{2145,49758,1},{2147,49759,1}, {2145,49763,1},{2147,49764,1},{2143,49763,1},{2142,49763,1},{2140,49766,1}, {2137,49766,1},{2132,49773,1},{2128,49769,1},{2128,49766,1},{2127,49766,1}, {2128,49763,1},{2127,49754,1},{2128,49751,1},{2130,49749,1},{2132,49749,1}, {2133,49746,1},{2132,49743,1},{2132,49741,1},{2135,49739,1},{2137,49743,1}, {2138,49743,1},{2140,49738,1},{2135,49739,1},{2137,49733,1},{2135,49738,1}, {2130,49738,1},{2132,49734,1},{2130,49726,1},{2138,49723,1},{2138,49719,1}, {2145,49718,1},{2148,49713,1},{2153,49713,1},{2158,49709,1},{2160,49716,1}, {2158,49724,1},{2168,49733,1},{2170,49738,1},{2170,49739,1},{2218,49604,129}, {2213,49608,1},{2205,49603,1},{2197,49603,1},{2197,49601,1},{2195,49601,1}, {2190,49598,1},{2187,49591,1},{2190,49586,1},{2190,49576,1},{2195,49571,1}, {2195,49566,1},{2198,49561,1},{2203,49558,1},{2215,49564,1},{2223,49581,1}, {2222,49586,1},{2222,49588,1},{2223,49596,1},{2222,49601,1},{2218,49604,1}, {5525,52226,129},{5522,52226,1},{5520,52229,1},{5517,52231,1},{5515,52229,1}, {5513,52236,1},{5507,52241,1},{5510,52231,1},{5510,52229,1},{5508,52228,1}, {5505,52236,1},{5505,52231,1},{5502,52243,1},{5495,52241,1},{5495,52246,1}, {5492,52246,1},{5488,52253,1},{5487,52253,1},{5487,52254,1},{5483,52254,1}, {5482,52261,1},{5480,52259,1},{5477,52264,1},{5473,52261,1},{5472,52268,1}, {5470,52266,1},{5468,52269,1},{5467,52269,1},{5467,52261,1},{5468,52261,1}, {5470,52256,1},{5468,52253,1},{5473,52249,1},{5473,52253,1},{5480,52241,1}, {5483,52246,1},{5483,52239,1},{5483,52238,1},{5487,52236,1},{5490,52229,1}, {5492,52231,1},{5492,52226,1},{5493,52231,1},{5495,52221,1},{5502,52221,1}, {5505,52216,1},{5510,52214,1},{5510,52224,1},{5512,52221,1},{5512,52216,1}, {5513,52218,1},{5515,52214,1},{5515,52219,1},{5517,52218,1},{5517,52214,1}, {5520,52221,1},{5520,52216,1},{5523,52216,1},{5525,52226,1},{5635,52178,129}, {5632,52194,1},{5633,52204,1},{5627,52204,1},{5627,52208,1},{5630,52206,1}, {5633,52209,1},{5632,52219,1},{5628,52223,1},{5627,52223,1},{5623,52229,1}, {5620,52231,1},{5618,52234,1},{5610,52228,1},{5612,52223,1},{5605,52228,1}, {5605,52241,1},{5607,52243,1},{5605,52246,1},{5602,52246,1},{5603,52253,1}, {5602,52254,1},{5598,52263,1},{5582,52286,1},{5572,52293,1},{5567,52291,1}, {5562,52293,1},{5567,52298,1},{5563,52301,1},{5560,52301,1},{5553,52308,1}, {5553,52313,1},{5548,52321,1},{5545,52321,1},{5550,52309,1},{5555,52293,1}, {5560,52288,1},{5562,52283,1},{5560,52283,1},{5557,52279,1},{5557,52284,1}, {5555,52284,1},{5548,52278,1},{5547,52271,1},{5545,52268,1},{5543,52271,1}, {5542,52271,1},{5545,52274,1},{5547,52281,1},{5552,52286,1},{5550,52289,1}, {5550,52298,1},{5547,52299,1},{5545,52309,1},{5543,52309,1},{5545,52303,1}, {5542,52299,1},{5542,52291,1},{5540,52288,1},{5538,52291,1},{5540,52293,1}, {5540,52298,1},{5538,52299,1},{5540,52303,1},{5540,52313,1},{5537,52316,1}, {5537,52321,1},{5532,52321,1},{5527,52328,1},{5523,52323,1},{5525,52313,1}, {5522,52311,1},{5518,52313,1},{5522,52316,1},{5520,52324,1},{5520,52328,1}, {5527,52334,1},{5527,52338,1},{5518,52339,1},{5512,52333,1},{5512,52336,1}, {5510,52336,1},{5508,52331,1},{5510,52326,1},{5507,52328,1},{5507,52324,1}, {5503,52329,1},{5500,52314,1},{5498,52321,1},{5497,52323,1},{5498,52326,1}, {5500,52329,1},{5502,52334,1},{5503,52338,1},{5503,52339,1},{5498,52339,1}, {5497,52334,1},{5495,52341,1},{5490,52339,1},{5488,52331,1},{5485,52339,1}, {5483,52341,1},{5483,52339,1},{5482,52341,1},{5478,52341,1},{5478,52336,1}, {5473,52338,1},{5468,52336,1},{5470,52328,1},{5472,52326,1},{5468,52326,1}, {5468,52321,1},{5473,52313,1},{5472,52308,1},{5477,52306,1},{5480,52314,1}, {5482,52313,1},{5482,52309,1},{5478,52306,1},{5480,52301,1},{5482,52303,1}, {5483,52309,1},{5485,52309,1},{5487,52304,1},{5487,52308,1},{5488,52303,1}, {5492,52301,1},{5492,52298,1},{5493,52299,1},{5497,52298,1},{5502,52298,1}, {5500,52294,1},{5492,52294,1},{5490,52289,1},{5492,52286,1},{5495,52291,1}, {5498,52291,1},{5500,52288,1},{5498,52288,1},{5493,52283,1},{5497,52276,1}, {5498,52276,1},{5497,52279,1},{5498,52281,1},{5502,52283,1},{5502,52279,1}, {5503,52279,1},{5505,52289,1},{5507,52281,1},{5510,52284,1},{5512,52281,1}, {5507,52274,1},{5513,52276,1},{5517,52279,1},{5525,52273,1},{5522,52271,1}, {5517,52274,1},{5513,52271,1},{5518,52259,1},{5522,52256,1},{5527,52256,1}, {5527,52251,1},{5522,52249,1},{5520,52236,1},{5520,52233,1},{5522,52233,1}, {5523,52238,1},{5528,52246,1},{5527,52228,1},{5528,52223,1},{5527,52218,1}, {5528,52214,1},{5530,52214,1},{5533,52209,1},{5538,52216,1},{5537,52221,1}, {5538,52224,1},{5535,52234,1},{5535,52251,1},{5538,52236,1},{5540,52233,1}, {5542,52234,1},{5543,52229,1},{5545,52238,1},{5545,52228,1},{5550,52223,1}, {5553,52228,1},{5557,52229,1},{5562,52238,1},{5563,52246,1},{5563,52239,1}, {5562,52234,1},{5562,52231,1},{5558,52218,1},{5557,52211,1},{5563,52198,1}, {5567,52198,1},{5568,52203,1},{5570,52198,1},{5573,52199,1},{5570,52203,1}, {5573,52204,1},{5577,52206,1},{5575,52209,1},{5575,52213,1},{5580,52218,1}, {5582,52221,1},{5588,52223,1},{5588,52221,1},{5588,52219,1},{5587,52221,1}, {5587,52218,1},{5588,52214,1},{5590,52213,1},{5595,52211,1},{5595,52213,1}, {5603,52211,1},{5608,52208,1},{5615,52211,1},{5617,52199,1},{5617,52191,1}, {5618,52186,1},{5618,52179,1},{5620,52174,1},{5623,52176,1},{5628,52173,1}, {5628,52179,1},{5630,52179,1},{5635,52174,1},{5635,52178,1},{5595,52413,129}, {5582,52429,1},{5577,52431,1},{5570,52439,1},{5563,52443,1},{5558,52439,1}, {5558,52443,1},{5557,52443,1},{5557,52438,1},{5553,52438,1},{5538,52439,1}, {5542,52434,1},{5538,52434,1},{5535,52436,1},{5532,52433,1},{5525,52431,1}, {5523,52423,1},{5520,52421,1},{5518,52416,1},{5523,52406,1},{5530,52414,1}, {5537,52418,1},{5540,52413,1},{5538,52414,1},{5538,52409,1},{5532,52411,1}, {5527,52406,1},{5525,52401,1},{5527,52394,1},{5528,52389,1},{5530,52391,1}, {5533,52399,1},{5537,52399,1},{5537,52404,1},{5543,52409,1},{5565,52401,1}, {5562,52399,1},{5545,52404,1},{5538,52398,1},{5535,52396,1},{5533,52391,1}, {5538,52394,1},{5543,52389,1},{5548,52389,1},{5552,52394,1},{5550,52386,1}, {5547,52384,1},{5545,52386,1},{5537,52389,1},{5530,52384,1},{5530,52381,1}, {5537,52366,1},{5540,52364,1},{5545,52354,1},{5555,52368,1},{5555,52371,1}, {5560,52374,1},{5562,52366,1},{5568,52368,1},{5568,52373,1},{5572,52374,1}, {5573,52384,1},{5573,52371,1},{5570,52366,1},{5573,52364,1},{5577,52369,1}, {5577,52383,1},{5578,52388,1},{5582,52383,1},{5580,52381,1},{5578,52374,1}, {5578,52368,1},{5583,52368,1},{5582,52391,1},{5583,52391,1},{5585,52393,1}, {5585,52381,1},{5590,52379,1},{5590,52386,1},{5593,52391,1},{5592,52398,1}, {5597,52408,1},{5595,52413,1},{5698,52231,129},{5693,52238,1},{5685,52244,1}, {5682,52238,1},{5667,52244,1},{5662,52241,1},{5660,52234,1},{5662,52233,1}, {5667,52224,1},{5672,52218,1},{5677,52216,1},{5680,52213,1},{5680,52211,1}, {5680,52208,1},{5683,52201,1},{5673,52206,1},{5673,52211,1},{5673,52214,1}, {5672,52214,1},{5663,52213,1},{5665,52214,1},{5662,52226,1},{5660,52226,1}, {5660,52219,1},{5658,52226,1},{5653,52228,1},{5652,52223,1},{5648,52224,1}, {5645,52221,1},{5647,52213,1},{5648,52211,1},{5648,52206,1},{5647,52203,1}, {5650,52199,1},{5650,52193,1},{5647,52196,1},{5647,52193,1},{5645,52194,1}, {5643,52184,1},{5643,52173,1},{5645,52171,1},{5657,52171,1},{5657,52168,1}, {5660,52173,1},{5668,52166,1},{5677,52169,1},{5678,52166,1},{5680,52169,1}, {5687,52169,1},{5680,52161,1},{5682,52161,1},{5683,52156,1},{5687,52154,1}, {5687,52149,1},{5690,52148,1},{5687,52156,1},{5687,52161,1},{5690,52163,1}, {5690,52154,1},{5702,52134,1},{5705,52136,1},{5707,52143,1},{5708,52148,1}, {5705,52176,1},{5700,52198,1},{5700,52204,1},{5692,52209,1},{5693,52213,1}, {5700,52206,1},{5700,52228,1},{5698,52231,1},{5690,52128,129},{5687,52138,1}, {5683,52138,1},{5683,52141,1},{5680,52141,1},{5680,52143,1},{5675,52146,1}, {5665,52139,1},{5665,52134,1},{5663,52139,1},{5665,52141,1},{5667,52144,1}, {5670,52144,1},{5670,52149,1},{5675,52151,1},{5680,52149,1},{5678,52156,1}, {5677,52164,1},{5668,52158,1},{5665,52163,1},{5662,52164,1},{5660,52168,1}, {5655,52161,1},{5655,52159,1},{5660,52154,1},{5660,52144,1},{5657,52151,1}, {5652,52148,1},{5650,52144,1},{5648,52149,1},{5643,52153,1},{5643,52144,1}, {5640,52149,1},{5640,52146,1},{5637,52144,1},{5635,52151,1},{5628,52151,1}, {5628,52149,1},{5630,52148,1},{5637,52139,1},{5628,52138,1},{5627,52138,1}, {5628,52141,1},{5627,52144,1},{5622,52148,1},{5620,52141,1},{5615,52144,1}, {5608,52141,1},{5610,52133,1},{5618,52136,1},{5623,52131,1},{5628,52133,1}, {5632,52131,1},{5630,52129,1},{5623,52129,1},{5623,52126,1},{5622,52128,1}, {5617,52126,1},{5618,52118,1},{5613,52121,1},{5615,52123,1},{5613,52126,1}, {5608,52128,1},{5607,52124,1},{5602,52126,1},{5600,52124,1},{5602,52119,1}, {5605,52123,1},{5607,52114,1},{5610,52116,1},{5612,52113,1},{5615,52116,1}, {5617,52111,1},{5625,52109,1},{5627,52111,1},{5625,52114,1},{5628,52114,1}, {5630,52116,1},{5630,52119,1},{5632,52119,1},{5628,52109,1},{5630,52108,1}, {5632,52111,1},{5635,52108,1},{5637,52109,1},{5637,52113,1},{5642,52113,1}, {5640,52118,1},{5642,52119,1},{5643,52118,1},{5640,52121,1},{5637,52119,1}, {5638,52124,1},{5640,52126,1},{5637,52131,1},{5642,52133,1},{5648,52129,1}, {5648,52133,1},{5655,52129,1},{5648,52124,1},{5655,52118,1},{5657,52111,1}, {5657,52106,1},{5662,52114,1},{5663,52121,1},{5663,52126,1},{5665,52128,1}, {5663,52119,1},{5662,52111,1},{5665,52108,1},{5665,52113,1},{5667,52114,1}, {5670,52114,1},{5667,52111,1},{5667,52103,1},{5672,52098,1},{5683,52094,1}, {5685,52096,1},{5687,52099,1},{5683,52103,1},{5678,52108,1},{5683,52108,1}, {5687,52103,1},{5690,52106,1},{5685,52126,1},{5688,52123,1},{5690,52114,1}, {5692,52114,1},{5693,52109,1},{5690,52128,1},{5743,52026,129},{5740,52036,1}, {5733,52044,1},{5733,52046,1},{5733,52036,1},{5732,52041,1},{5730,52038,1}, {5730,52043,1},{5725,52044,1},{5725,52053,1},{5722,52053,1},{5722,52051,1}, {5717,52056,1},{5713,52053,1},{5712,52058,1},{5708,52058,1},{5707,52061,1}, {5703,52061,1},{5702,52063,1},{5692,52064,1},{5690,52068,1},{5683,52068,1}, {5673,52074,1},{5657,52074,1},{5653,52074,1},{5658,52071,1},{5657,52069,1}, {5653,52069,1},{5647,52074,1},{5638,52074,1},{5633,52071,1},{5633,52074,1}, {5625,52069,1},{5627,52074,1},{5625,52074,1},{5617,52071,1},{5618,52068,1}, {5620,52069,1},{5623,52068,1},{5622,52064,1},{5622,52061,1},{5623,52061,1}, {5623,52058,1},{5632,52053,1},{5632,52048,1},{5642,52043,1},{5653,52031,1}, {5655,52034,1},{5657,52033,1},{5658,52043,1},{5660,52043,1},{5668,52051,1}, {5668,52048,1},{5662,52041,1},{5665,52038,1},{5670,52039,1},{5672,52043,1}, {5672,52038,1},{5668,52036,1},{5662,52033,1},{5660,52026,1},{5667,52024,1}, {5675,52036,1},{5677,52033,1},{5675,52031,1},{5668,52019,1},{5668,52016,1}, {5672,52019,1},{5673,52018,1},{5675,52021,1},{5680,52021,1},{5683,52024,1}, {5678,52009,1},{5680,52004,1},{5682,52006,1},{5683,51999,1},{5688,51999,1}, {5688,52008,1},{5693,51998,1},{5697,52001,1},{5700,52011,1},{5702,52018,1}, {5700,52019,1},{5703,52019,1},{5703,52006,1},{5708,51999,1},{5713,51999,1}, {5717,52009,1},{5718,52003,1},{5715,51999,1},{5717,51994,1},{5720,51999,1}, {5725,52003,1},{5725,51988,1},{5723,51984,1},{5725,51981,1},{5728,51979,1}, {5735,51969,1},{5737,51973,1},{5735,51989,1},{5740,51979,1},{5738,51976,1}, {5742,51981,1},{5743,51983,1},{5745,51986,1},{5750,51984,1},{5755,51996,1}, {5755,52001,1},{5752,52008,1},{5747,51998,1},{5743,51996,1},{5748,52006,1}, {5747,52009,1},{5748,52016,1},{5745,52021,1},{5742,52016,1},{5743,52026,1}, {5825,51963,129},{5822,51966,1},{5822,51974,1},{5815,51988,1},{5810,51984,1}, {5808,51979,1},{5805,51976,1},{5805,51966,1},{5805,51958,1},{5802,51963,1}, {5803,51964,1},{5803,51969,1},{5800,51974,1},{5800,51961,1},{5797,51958,1}, {5797,51969,1},{5795,51971,1},{5795,51974,1},{5798,51973,1},{5798,51978,1}, {5807,51986,1},{5808,51994,1},{5812,51991,1},{5813,51996,1},{5812,52004,1}, {5810,52003,1},{5810,52006,1},{5810,52026,1},{5808,52028,1},{5807,52026,1}, {5805,52039,1},{5803,52043,1},{5793,52046,1},{5788,52039,1},{5783,52044,1}, {5788,52034,1},{5795,52016,1},{5788,52023,1},{5787,52031,1},{5783,52034,1}, {5783,52038,1},{5782,52039,1},{5782,52043,1},{5778,52034,1},{5778,52013,1}, {5790,51984,1},{5795,51959,1},{5798,51951,1},{5798,51948,1},{5795,51956,1}, {5793,51956,1},{5792,51969,1},{5787,51983,1},{5783,51984,1},{5780,51999,1}, {5775,52004,1},{5773,51999,1},{5772,52001,1},{5773,52009,1},{5772,52013,1}, {5770,52016,1},{5773,52019,1},{5773,52024,1},{5775,52028,1},{5775,52044,1}, {5748,52054,1},{5750,52049,1},{5748,52049,1},{5747,52051,1},{5745,52051,1}, {5745,52038,1},{5747,52029,1},{5748,52028,1},{5758,52003,1},{5765,51983,1}, {5773,51966,1},{5777,51956,1},{5773,51958,1},{5772,51964,1},{5770,51963,1}, {5767,51966,1},{5767,51959,1},{5763,51956,1},{5763,51968,1},{5762,51969,1}, {5758,51979,1},{5757,51979,1},{5757,51973,1},{5755,51971,1},{5753,51981,1}, {5752,51978,1},{5750,51981,1},{5747,51981,1},{5745,51974,1},{5742,51978,1}, {5740,51969,1},{5738,51971,1},{5737,51968,1},{5738,51953,1},{5742,51951,1}, {5745,51941,1},{5748,51939,1},{5752,51934,1},{5752,51936,1},{5750,51946,1}, {5743,51958,1},{5747,51956,1},{5760,51929,1},{5762,51929,1},{5762,51934,1}, {5758,51936,1},{5760,51936,1},{5762,51941,1},{5763,51938,1},{5763,51931,1}, {5765,51929,1},{5762,51924,1},{5765,51923,1},{5768,51928,1},{5775,51914,1}, {5778,51913,1},{5777,51908,1},{5778,51906,1},{5783,51899,1},{5782,51894,1}, {5788,51896,1},{5792,51901,1},{5797,51901,1},{5798,51903,1},{5785,51931,1}, {5785,51933,1},{5808,51894,1},{5812,51893,1},{5813,51899,1},{5810,51909,1}, {5818,51901,1},{5822,51901,1},{5820,51904,1},{5822,51909,1},{5815,51913,1}, {5813,51918,1},{5808,51916,1},{5805,51924,1},{5810,51919,1},{5813,51921,1}, {5817,51918,1},{5820,51923,1},{5822,51923,1},{5817,51939,1},{5820,51941,1}, {5827,51954,1},{5827,51959,1},{5825,51963,1},{5837,52049,129},{5833,52056,1}, {5830,52056,1},{5822,52066,1},{5817,52068,1},{5817,52081,1},{5818,52081,1}, {5817,52086,1},{5818,52091,1},{5815,52101,1},{5817,52119,1},{5812,52119,1}, {5812,52116,1},{5808,52118,1},{5802,52128,1},{5798,52128,1},{5793,52136,1}, {5787,52138,1},{5780,52148,1},{5767,52148,1},{5760,52156,1},{5758,52156,1}, {5758,52153,1},{5763,52151,1},{5768,52139,1},{5780,52136,1},{5785,52126,1}, {5795,52123,1},{5803,52113,1},{5798,52121,1},{5807,52113,1},{5807,52108,1}, {5810,52106,1},{5808,52106,1},{5802,52109,1},{5803,52104,1},{5797,52114,1}, {5800,52104,1},{5798,52104,1},{5790,52109,1},{5783,52108,1},{5785,52111,1}, {5782,52118,1},{5767,52133,1},{5765,52129,1},{5765,52138,1},{5762,52143,1}, {5753,52143,1},{5745,52151,1},{5750,52146,1},{5747,52144,1},{5750,52129,1}, {5748,52128,1},{5748,52133,1},{5747,52126,1},{5745,52138,1},{5740,52136,1}, {5743,52146,1},{5735,52149,1},{5733,52143,1},{5730,52143,1},{5730,52141,1}, {5732,52133,1},{5737,52129,1},{5732,52128,1},{5735,52124,1},{5738,52119,1}, {5735,52123,1},{5730,52121,1},{5730,52126,1},{5727,52129,1},{5725,52126,1}, {5725,52123,1},{5720,52121,1},{5717,52116,1},{5717,52109,1},{5713,52108,1}, {5712,52104,1},{5713,52101,1},{5710,52098,1},{5708,52101,1},{5703,52088,1}, {5703,52078,1},{5700,52076,1},{5703,52076,1},{5712,52074,1},{5715,52078,1}, {5717,52074,1},{5722,52073,1},{5722,52074,1},{5722,52081,1},{5722,52084,1}, {5723,52084,1},{5723,52081,1},{5727,52078,1},{5730,52081,1},{5732,52091,1}, {5733,52086,1},{5735,52081,1},{5740,52083,1},{5740,52084,1},{5737,52089,1}, {5737,52096,1},{5733,52101,1},{5733,52104,1},{5737,52099,1},{5740,52106,1}, {5738,52098,1},{5740,52089,1},{5748,52079,1},{5748,52086,1},{5752,52091,1}, {5755,52101,1},{5753,52091,1},{5750,52079,1},{5755,52076,1},{5760,52069,1}, {5773,52064,1},{5778,52066,1},{5788,52064,1},{5797,52059,1},{5800,52061,1}, {5805,52056,1},{5810,52061,1},{5815,52061,1},{5818,52063,1},{5817,52059,1}, {5810,52058,1},{5818,52051,1},{5818,52048,1},{5822,52044,1},{5825,52048,1}, {5825,52043,1},{5830,52041,1},{5837,52039,1},{5840,52041,1},{5837,52046,1}, {5837,52049,1},{5837,50328,129},{5830,50323,1},{5823,50321,1},{5830,50326,1}, {5830,50329,1},{5828,50329,1},{5832,50333,1},{5835,50336,1},{5833,50339,1}, {5828,50338,1},{5828,50339,1},{5825,50338,1},{5823,50339,1},{5822,50336,1}, {5820,50333,1},{5815,50328,1},{5817,50323,1},{5818,50319,1},{5817,50318,1}, {5827,50311,1},{5823,50304,1},{5818,50306,1},{5820,50299,1},{5818,50303,1}, {5815,50303,1},{5815,50308,1},{5813,50309,1},{5813,50304,1},{5810,50303,1}, {5812,50301,1},{5812,50294,1},{5813,50291,1},{5808,50281,1},{5810,50279,1}, {5820,50279,1},{5818,50276,1},{5815,50276,1},{5808,50273,1},{5805,50264,1}, {5805,50261,1},{5807,50259,1},{5800,50259,1},{5798,50251,1},{5805,50233,1}, {5808,50229,1},{5812,50231,1},{5810,50221,1},{5817,50213,1},{5822,50218,1}, {5820,50233,1},{5817,50236,1},{5818,50238,1},{5817,50246,1},{5827,50226,1}, {5830,50231,1},{5828,50246,1},{5828,50249,1},{5828,50256,1},{5825,50259,1}, {5833,50259,1},{5835,50256,1},{5837,50259,1},{5840,50248,1},{5842,50258,1}, {5845,50263,1},{5842,50268,1},{5847,50269,1},{5848,50273,1},{5847,50276,1}, {5845,50276,1},{5847,50286,1},{5842,50283,1},{5840,50289,1},{5835,50289,1}, {5838,50293,1},{5835,50296,1},{5832,50296,1},{5842,50301,1},{5842,50309,1}, {5838,50311,1},{5838,50309,1},{5835,50316,1},{5840,50324,1},{5837,50328,1}, {5800,50209,129},{5792,50236,1},{5795,50236,1},{5792,50254,1},{5790,50253,1}, {5788,50248,1},{5787,50248,1},{5787,50251,1},{5783,50244,1},{5778,50246,1}, {5777,50244,1},{5773,50248,1},{5773,50251,1},{5783,50251,1},{5787,50256,1}, {5782,50263,1},{5783,50264,1},{5788,50268,1},{5785,50274,1},{5793,50274,1}, {5793,50278,1},{5790,50279,1},{5792,50284,1},{5790,50289,1},{5787,50291,1}, {5785,50294,1},{5783,50293,1},{5782,50294,1},{5783,50299,1},{5782,50303,1}, {5780,50303,1},{5777,50291,1},{5770,50281,1},{5772,50291,1},{5770,50289,1}, {5768,50289,1},{5765,50288,1},{5768,50296,1},{5765,50293,1},{5760,50293,1}, {5763,50303,1},{5763,50319,1},{5762,50321,1},{5755,50314,1},{5750,50304,1}, {5743,50303,1},{5742,50288,1},{5745,50291,1},{5747,50289,1},{5743,50284,1}, {5745,50278,1},{5748,50274,1},{5747,50269,1},{5748,50264,1},{5752,50261,1}, {5752,50244,1},{5752,50241,1},{5750,50239,1},{5750,50244,1},{5748,50244,1}, {5747,50234,1},{5743,50233,1},{5747,50239,1},{5747,50251,1},{5747,50256,1}, {5742,50264,1},{5740,50273,1},{5737,50276,1},{5728,50268,1},{5728,50264,1}, {5730,50264,1},{5730,50261,1},{5727,50254,1},{5727,50251,1},{5728,50249,1}, {5730,50251,1},{5732,50246,1},{5735,50248,1},{5733,50243,1},{5733,50231,1}, {5732,50224,1},{5732,50221,1},{5735,50219,1},{5730,50219,1},{5728,50228,1}, {5730,50234,1},{5725,50241,1},{5722,50226,1},{5723,50211,1},{5722,50208,1}, {5718,50203,1},{5720,50198,1},{5717,50199,1},{5712,50189,1},{5717,50188,1}, {5717,50183,1},{5715,50181,1},{5717,50186,1},{5712,50184,1},{5707,50186,1}, {5708,50176,1},{5707,50164,1},{5705,50159,1},{5705,50178,1},{5702,50176,1}, {5702,50169,1},{5700,50179,1},{5698,50181,1},{5693,50174,1},{5693,50168,1}, {5697,50168,1},{5690,50164,1},{5688,50159,1},{5687,50159,1},{5688,50166,1}, {5687,50166,1},{5683,50158,1},{5685,50154,1},{5677,50144,1},{5673,50136,1}, {5677,50131,1},{5673,50126,1},{5675,50121,1},{5685,50129,1},{5687,50136,1}, {5690,50141,1},{5693,50151,1},{5698,50159,1},{5697,50151,1},{5698,50153,1}, {5702,50153,1},{5702,50151,1},{5697,50148,1},{5697,50139,1},{5707,50146,1}, {5713,50163,1},{5715,50158,1},{5712,50148,1},{5705,50136,1},{5698,50131,1}, {5697,50126,1},{5700,50123,1},{5705,50124,1},{5712,50139,1},{5712,50128,1}, {5713,50124,1},{5715,50113,1},{5713,50109,1},{5715,50101,1},{5712,50096,1}, {5712,50089,1},{5707,50089,1},{5705,50098,1},{5712,50109,1},{5712,50126,1}, {5703,50123,1},{5702,50121,1},{5695,50119,1},{5693,50118,1},{5693,50111,1}, {5692,50114,1},{5690,50109,1},{5688,50108,1},{5690,50108,1},{5690,50106,1}, {5687,50108,1},{5688,50113,1},{5685,50106,1},{5690,50106,1},{5693,50103,1}, {5697,50096,1},{5698,50083,1},{5715,50083,1},{5727,50076,1},{5727,50068,1}, {5728,50066,1},{5727,50058,1},{5728,50056,1},{5728,50059,1},{5730,50061,1}, {5735,50056,1},{5737,50058,1},{5733,50064,1},{5735,50066,1},{5735,50063,1}, {5738,50066,1},{5742,50063,1},{5745,50073,1},{5748,50071,1},{5753,50076,1}, {5755,50081,1},{5752,50084,1},{5752,50086,1},{5758,50084,1},{5757,50094,1}, {5758,50091,1},{5763,50101,1},{5765,50101,1},{5765,50108,1},{5767,50114,1}, {5763,50136,1},{5757,50138,1},{5753,50126,1},{5753,50141,1},{5742,50148,1}, {5730,50161,1},{5727,50173,1},{5732,50163,1},{5735,50159,1},{5737,50159,1}, {5740,50156,1},{5752,50156,1},{5758,50151,1},{5755,50159,1},{5753,50168,1}, {5758,50156,1},{5765,50148,1},{5763,50169,1},{5760,50173,1},{5760,50178,1}, {5763,50174,1},{5768,50166,1},{5770,50146,1},{5773,50143,1},{5782,50143,1}, {5785,50149,1},{5787,50151,1},{5788,50158,1},{5790,50163,1},{5788,50166,1}, {5788,50173,1},{5785,50173,1},{5783,50178,1},{5780,50181,1},{5773,50179,1}, {5763,50186,1},{5772,50183,1},{5768,50189,1},{5770,50193,1},{5775,50184,1}, {5777,50186,1},{5777,50194,1},{5770,50199,1},{5773,50204,1},{5780,50194,1}, {5780,50189,1},{5783,50188,1},{5778,50214,1},{5773,50214,1},{5770,50218,1}, {5773,50216,1},{5785,50216,1},{5790,50213,1},{5788,50219,1},{5787,50221,1}, {5783,50231,1},{5793,50216,1},{5795,50209,1},{5800,50206,1},{5800,50209,1}, {5498,49186,129},{5492,49194,1},{5487,49194,1},{5478,49199,1},{5475,49206,1}, {5477,49214,1},{5478,49216,1},{5477,49221,1},{5468,49226,1},{5467,49231,1}, {5467,49219,1},{5468,49224,1},{5470,49223,1},{5470,49216,1},{5468,49214,1}, {5470,49209,1},{5470,49206,1},{5475,49201,1},{5473,49193,1},{5465,49193,1}, {5465,49186,1},{5463,49184,1},{5462,49176,1},{5463,49154,1},{5462,49124,1}, {5460,49114,1},{5455,49106,1},{5452,49103,1},{5448,49103,1},{5445,49098,1}, {5442,49089,1},{5438,49071,1},{5440,49058,1},{5442,49051,1},{5447,49048,1}, {5447,49046,1},{5450,49046,1},{5453,49043,1},{5458,49041,1},{5463,49061,1}, {5467,49066,1},{5483,49081,1},{5488,49081,1},{5492,49088,1},{5493,49093,1}, {5492,49099,1},{5488,49104,1},{5488,49114,1},{5492,49114,1},{5497,49123,1}, {5497,49131,1},{5498,49136,1},{5503,49143,1},{5503,49153,1},{5505,49158,1}, {5503,49168,1},{5505,49183,1},{5503,49184,1},{5503,49181,1},{5498,49186,1}, {2468,57381,129},{2465,57384,1},{2462,57384,1},{2458,57378,1},{2458,57373,1}, {2462,57381,1},{2465,57378,1},{2462,57383,1},{2465,57384,1},{2465,57381,1}, {2467,57381,1},{2467,57379,1},{2468,57381,1},{4105,58344,129},{4085,58291,1}, {4087,58289,1},{4088,58293,1},{4088,58286,1},{4085,58288,1},{4083,58286,1}, {4078,58264,1},{4078,58263,1},{4078,58264,1},{4080,58271,1},{4082,58269,1}, {4082,58264,1},{4080,58261,1},{4080,58254,1},{4078,58254,1},{4075,58249,1}, {4077,58246,1},{4075,58243,1},{4075,58234,1},{4073,58233,1},{4073,58223,1}, {4070,58221,1},{4072,58213,1},{4070,58211,1},{4067,58198,1},{4065,58181,1}, {4062,58171,1},{4063,58168,1},{4062,58166,1},{4060,58166,1},{4060,58176,1}, {4060,58178,1},{4060,58159,1},{4057,58144,1},{4057,58143,1},{4060,58153,1}, {4062,58159,1},{4063,58159,1},{4067,58151,1},{4063,58146,1},{4062,58149,1}, {4060,58148,1},{4058,58136,1},{4060,58136,1},{4063,58133,1},{4065,58133,1}, {4078,58144,1},{4080,58151,1},{4080,58153,1},{4078,58159,1},{4083,58161,1}, {4082,58164,1},{4083,58168,1},{4085,58163,1},{4087,58164,1},{4087,58168,1}, {4082,58171,1},{4090,58173,1},{4092,58179,1},{4090,58189,1},{4093,58188,1}, {4095,58188,1},{4093,58193,1},{4092,58193,1},{4090,58194,1},{4092,58201,1}, {4093,58199,1},{4093,58196,1},{4095,58196,1},{4092,58213,1},{4093,58221,1}, {4097,58221,1},{4098,58226,1},{4095,58226,1},{4097,58229,1},{4098,58271,1}, {4105,58288,1},{4108,58291,1},{4110,58298,1},{4113,58301,1},{4117,58308,1}, {4117,58313,1},{4113,58311,1},{4112,58308,1},{4113,58308,1},{4113,58304,1}, {4110,58298,1},{4107,58294,1},{4103,58298,1},{4103,58293,1},{4098,58293,1}, {4102,58291,1},{4100,58288,1},{4098,58284,1},{4095,58281,1},{4092,58274,1}, {4092,58293,1},{4095,58293,1},{4097,58296,1},{4100,58299,1},{4100,58303,1}, {4103,58303,1},{4103,58306,1},{4102,58306,1},{4102,58311,1},{4105,58311,1}, {4102,58316,1},{4105,58318,1},{4105,58319,1},{4103,58323,1},{4100,58326,1}, {4103,58334,1},{4105,58336,1},{4105,58339,1},{4107,58341,1},{4107,58344,1}, {4108,58344,1},{4107,58351,1},{4105,58344,1},{4817,56689,129},{4810,56676,1}, {4805,56676,1},{4802,56669,1},{4795,56646,1},{4790,56636,1},{4790,56644,1}, {4783,56621,1},{4785,56614,1},{4788,56616,1},{4790,56621,1},{4792,56614,1}, {4797,56624,1},{4807,56656,1},{4815,56673,1},{4815,56679,1},{4818,56688,1}, {4817,56684,1},{4818,56691,1},{4817,56689,1},{3348,53684,129},{3345,53688,1}, {3342,53701,1},{3338,53701,1},{3335,53706,1},{3332,53706,1},{3333,53699,1}, {3333,53691,1},{3337,53689,1},{3343,53688,1},{3345,53681,1},{3348,53678,1}, {3348,53684,1},{3408,53549,129},{3407,53556,1},{3407,53561,1},{3403,53571,1}, {3403,53574,1},{3405,53576,1},{3407,53579,1},{3405,53584,1},{3402,53583,1}, {3400,53578,1},{3400,53571,1},{3397,53566,1},{3397,53558,1},{3398,53549,1}, {3402,53548,1},{3403,53549,1},{3408,53544,1},{3408,53549,1},{3403,53524,129}, {3403,53531,1},{3405,53533,1},{3403,53533,1},{3402,53533,1},{3400,53536,1}, {3400,53539,1},{3397,53539,1},{3392,53533,1},{3392,53528,1},{3390,53526,1}, {3393,53519,1},{3402,53511,1},{3402,53521,1},{3403,53524,1},{5323,52358,129}, {5318,52359,1},{5317,52358,1},{5315,52366,1},{5312,52368,1},{5312,52373,1}, {5303,52376,1},{5307,52356,1},{5305,52343,1},{5307,52336,1},{5305,52336,1}, {5303,52341,1},{5298,52344,1},{5302,52346,1},{5305,52351,1},{5300,52371,1}, {5297,52376,1},{5295,52373,1},{5293,52374,1},{5287,52368,1},{5287,52354,1}, {5293,52346,1},{5293,52341,1},{5292,52348,1},{5288,52338,1},{5290,52346,1}, {5288,52349,1},{5287,52351,1},{5283,52348,1},{5283,52351,1},{5280,52354,1}, {5280,52371,1},{5278,52368,1},{5278,52359,1},{5277,52356,1},{5277,52351,1}, {5275,52356,1},{5272,52353,1},{5272,52359,1},{5270,52363,1},{5263,52368,1}, {5262,52368,1},{5262,52366,1},{5258,52369,1},{5257,52374,1},{5253,52369,1}, {5253,52374,1},{5252,52376,1},{5253,52379,1},{5252,52383,1},{5250,52383,1}, {5252,52386,1},{5250,52389,1},{5248,52388,1},{5245,52394,1},{5238,52391,1}, {5238,52398,1},{5235,52396,1},{5237,52401,1},{5242,52401,1},{5243,52413,1}, {5237,52406,1},{5235,52406,1},{5237,52411,1},{5235,52409,1},{5233,52406,1}, {5233,52404,1},{5235,52403,1},{5235,52399,1},{5228,52404,1},{5230,52406,1}, {5228,52408,1},{5225,52413,1},{5227,52414,1},{5228,52411,1},{5230,52411,1}, {5232,52419,1},{5232,52423,1},{5228,52423,1},{5228,52428,1},{5225,52428,1}, {5225,52421,1},{5223,52418,1},{5223,52434,1},{5218,52434,1},{5217,52429,1}, {5217,52424,1},{5218,52424,1},{5222,52423,1},{5218,52423,1},{5213,52421,1}, {5212,52418,1},{5213,52416,1},{5218,52414,1},{5223,52409,1},{5217,52413,1}, {5213,52413,1},{5213,52409,1},{5215,52406,1},{5223,52401,1},{5218,52399,1}, {5220,52398,1},{5232,52386,1},{5232,52381,1},{5235,52383,1},{5235,52379,1}, {5240,52378,1},{5240,52386,1},{5242,52384,1},{5243,52381,1},{5242,52374,1}, {5248,52369,1},{5252,52358,1},{5253,52358,1},{5258,52346,1},{5265,52343,1}, {5265,52339,1},{5268,52334,1},{5273,52328,1},{5277,52333,1},{5273,52339,1}, {5277,52334,1},{5278,52336,1},{5273,52344,1},{5278,52341,1},{5280,52334,1}, {5285,52328,1},{5280,52331,1},{5278,52328,1},{5275,52326,1},{5278,52319,1}, {5282,52313,1},{5287,52313,1},{5287,52308,1},{5290,52304,1},{5295,52301,1}, {5295,52311,1},{5295,52314,1},{5292,52318,1},{5293,52319,1},{5297,52316,1}, {5293,52323,1},{5297,52321,1},{5300,52324,1},{5300,52316,1},{5303,52309,1}, {5303,52301,1},{5303,52303,1},{5303,52288,1},{5305,52284,1},{5307,52286,1}, {5308,52281,1},{5310,52283,1},{5313,52279,1},{5315,52281,1},{5313,52288,1}, {5313,52294,1},{5315,52308,1},{5313,52314,1},{5315,52323,1},{5315,52329,1}, {5322,52338,1},{5322,52341,1},{5323,52344,1},{5323,52353,1},{5325,52354,1}, {5323,52358,1},{5412,52369,129},{5397,52366,1},{5378,52349,1},{5372,52349,1}, {5362,52343,1},{5357,52344,1},{5352,52343,1},{5343,52346,1},{5335,52346,1}, {5325,52338,1},{5325,52328,1},{5323,52314,1},{5320,52313,1},{5320,52309,1}, {5318,52313,1},{5320,52316,1},{5320,52324,1},{5317,52319,1},{5315,52313,1}, {5317,52306,1},{5318,52304,1},{5317,52304,1},{5315,52296,1},{5315,52289,1}, {5318,52289,1},{5317,52286,1},{5318,52283,1},{5320,52284,1},{5320,52278,1}, {5323,52281,1},{5325,52274,1},{5325,52266,1},{5328,52266,1},{5328,52273,1}, {5332,52274,1},{5332,52283,1},{5333,52279,1},{5332,52261,1},{5338,52266,1}, {5335,52284,1},{5330,52294,1},{5333,52296,1},{5337,52288,1},{5342,52284,1}, {5343,52269,1},{5348,52269,1},{5345,52266,1},{5345,52261,1},{5348,52264,1}, {5352,52261,1},{5348,52258,1},{5347,52251,1},{5347,52249,1},{5348,52249,1}, {5352,52254,1},{5352,52244,1},{5357,52246,1},{5355,52239,1},{5358,52238,1}, {5360,52241,1},{5358,52246,1},{5360,52248,1},{5365,52243,1},{5367,52238,1}, {5368,52236,1},{5368,52239,1},{5368,52243,1},{5370,52243,1},{5372,52238,1}, {5377,52239,1},{5375,52234,1},{5377,52229,1},{5378,52226,1},{5382,52229,1}, {5388,52223,1},{5392,52223,1},{5395,52228,1},{5400,52226,1},{5400,52229,1}, {5403,52233,1},{5408,52231,1},{5410,52228,1},{5417,52233,1},{5417,52229,1}, {5417,52243,1},{5413,52246,1},{5412,52256,1},{5415,52271,1},{5412,52279,1}, {5408,52281,1},{5403,52279,1},{5398,52269,1},{5395,52268,1},{5393,52269,1}, {5400,52281,1},{5403,52283,1},{5407,52291,1},{5410,52296,1},{5412,52306,1}, {5410,52308,1},{5407,52313,1},{5402,52313,1},{5400,52319,1},{5397,52323,1}, {5393,52321,1},{5388,52324,1},{5385,52323,1},{5382,52316,1},{5378,52314,1}, {5377,52306,1},{5375,52299,1},{5370,52288,1},{5370,52274,1},{5368,52269,1}, {5367,52276,1},{5363,52276,1},{5367,52283,1},{5365,52283,1},{5365,52286,1}, {5367,52301,1},{5362,52289,1},{5357,52289,1},{5360,52294,1},{5362,52308,1}, {5363,52308,1},{5365,52303,1},{5367,52304,1},{5365,52314,1},{5367,52316,1}, {5370,52321,1},{5375,52318,1},{5378,52316,1},{5385,52326,1},{5388,52328,1}, {5393,52324,1},{5402,52323,1},{5403,52318,1},{5402,52334,1},{5403,52344,1}, {5410,52363,1},{5417,52371,1},{5412,52369,1},{6910,51943,129},{6922,51939,1}, {6925,51944,1},{6915,51971,1},{6910,51994,1},{6912,51993,1},{6915,51973,1}, {6927,51953,1},{6928,51951,1},{6933,51964,1},{6930,51973,1},{6922,51979,1}, {6923,51981,1},{6932,51974,1},{6933,51978,1},{6933,51991,1},{6930,51999,1}, {6927,52018,1},{6928,52019,1},{6930,52013,1},{6942,52008,1},{6948,52021,1}, {6945,52026,1},{6948,52031,1},{6947,52041,1},{6948,52046,1},{6948,52053,1}, {6950,52058,1},{6948,52059,1},{6947,52073,1},{6945,52083,1},{6945,52093,1}, {6948,52096,1},{6950,52093,1},{6950,52083,1},{6947,52083,1},{6952,52076,1}, {6955,52078,1},{6953,52084,1},{6955,52089,1},{6957,52086,1},{6963,52096,1}, {6972,52088,1},{6972,52096,1},{6972,52098,1},{6972,52104,1},{6967,52101,1}, {6968,52109,1},{6967,52116,1},{6963,52121,1},{6962,52116,1},{6957,52111,1}, {6958,52118,1},{6957,52119,1},{6953,52124,1},{6957,52134,1},{6955,52136,1}, {6953,52131,1},{6952,52139,1},{6950,52141,1},{6952,52149,1},{6953,52149,1}, {6953,52156,1},{6957,52153,1},{6958,52158,1},{6955,52161,1},{6953,52158,1}, {6948,52158,1},{6943,52151,1},{6938,52133,1},{6933,52126,1},{6930,52126,1}, {6928,52119,1},{6928,52114,1},{6923,52108,1},{6918,52108,1},{6912,52098,1}, {6910,52079,1},{6905,52076,1},{6902,52069,1},{6895,52069,1},{6888,52086,1}, {6878,52094,1},{6875,52108,1},{6870,52114,1},{6872,52091,1},{6877,52089,1}, {6880,52079,1},{6887,52076,1},{6895,52061,1},{6897,52061,1},{6897,52054,1}, {6898,52053,1},{6897,52044,1},{6892,52044,1},{6888,52039,1},{6890,52021,1}, {6893,52016,1},{6893,51994,1},{6895,51989,1},{6898,51991,1},{6895,51983,1}, {6890,51984,1},{6890,51963,1},{6890,51956,1},{6890,51948,1},{6895,51936,1}, {6897,51938,1},{6895,51944,1},{6902,51938,1},{6905,51939,1},{6898,51958,1}, {6900,51973,1},{6902,51984,1},{6902,51969,1},{6902,51964,1},{6907,51961,1}, {6910,51943,1},{5070,52789,129},{5077,52786,1},{5087,52744,1},{5085,52734,1}, {5087,52729,1},{5083,52723,1},{5083,52718,1},{5080,52709,1},{5080,52701,1}, {5077,52694,1},{5072,52698,1},{5068,52699,1},{5067,52701,1},{5067,52709,1}, {5063,52703,1},{5060,52704,1},{5058,52713,1},{5053,52714,1},{5052,52719,1}, {5047,52723,1},{5045,52731,1},{5045,52733,1},{5048,52729,1},{5048,52731,1}, {5047,52736,1},{5048,52748,1},{5050,52751,1},{5048,52753,1},{5048,52756,1}, {5053,52769,1},{5053,52776,1},{5055,52778,1},{5058,52773,1},{5058,52758,1}, {5062,52749,1},{5060,52776,1},{5057,52781,1},{5058,52786,1},{5060,52793,1}, {5058,52794,1},{5057,52794,1},{5057,52786,1},{5052,52779,1},{5043,52788,1}, {5037,52791,1},{5040,52786,1},{5048,52778,1},{5048,52761,1},{5047,52756,1}, {5047,52744,1},{5042,52744,1},{5040,52741,1},{5035,52738,1},{5032,52743,1}, {5033,52749,1},{5032,52751,1},{5032,52756,1},{5030,52756,1},{5028,52751,1}, {5025,52756,1},{5023,52761,1},{5013,52746,1},{5012,52746,1},{5008,52756,1}, {5012,52761,1},{5018,52771,1},{5018,52774,1},{5013,52773,1},{5012,52776,1}, {5018,52789,1},{5018,52793,1},{5013,52788,1},{5012,52794,1},{5012,52789,1}, {5008,52789,1},{5005,52794,1},{5003,52798,1},{5005,52808,1},{5010,52809,1}, {5015,52806,1},{5010,52814,1},{5008,52819,1},{5012,52824,1},{5015,52826,1}, {5010,52828,1},{5007,52819,1},{5002,52818,1},{4997,52813,1},{4985,52823,1}, {4987,52843,1},{4997,52844,1},{4988,52848,1},{4988,52851,1},{4992,52856,1}, {4997,52851,1},{4995,52856,1},{4988,52863,1},{4988,52868,1},{4990,52871,1}, {4985,52873,1},{4982,52873,1},{4970,52878,1},{4972,52886,1},{4973,52889,1}, {4978,52889,1},{4977,52894,1},{4970,52888,1},{4967,52893,1},{4967,52899,1}, {4965,52903,1},{4968,52926,1},{4965,52928,1},{4965,52923,1},{4963,52903,1}, {4963,52889,1},{4962,52888,1},{4958,52879,1},{4943,52881,1},{4940,52878,1}, {4937,52883,1},{4938,52889,1},{4940,52889,1},{4945,52888,1},{4947,52894,1}, {4945,52894,1},{4943,52896,1},{4942,52896,1},{4935,52906,1},{4940,52909,1}, {4945,52911,1},{4945,52913,1},{4942,52913,1},{4940,52918,1},{4945,52931,1}, {4940,52929,1},{4935,52929,1},{4932,52934,1},{4935,52939,1},{4938,52939,1}, {4943,52946,1},{4940,52946,1},{4932,52941,1},{4928,52934,1},{4922,52939,1}, {4927,52946,1},{4927,52951,1},{4937,52958,1},{4925,52956,1},{4923,52958,1}, {4925,52963,1},{4915,52961,1},{4922,52974,1},{4920,52974,1},{4910,52963,1}, {4912,52954,1},{4910,52949,1},{4908,52948,1},{4905,52954,1},{4905,52963,1}, {4900,52973,1},{4897,52974,1},{4897,52979,1},{4892,52986,1},{4892,52991,1}, {4898,52999,1},{4903,53003,1},{4902,53011,1},{4897,53003,1},{4895,53013,1}, {4895,53014,1},{4900,53021,1},{4897,53026,1},{4900,53033,1},{4898,53041,1}, {4900,53046,1},{4912,53053,1},{4922,53054,1},{4923,53054,1},{4913,53058,1}, {4902,53051,1},{4897,53046,1},{4895,53038,1},{4893,53034,1},{4888,53034,1}, {4888,53029,1},{4883,53024,1},{4880,53018,1},{4877,53023,1},{4873,53024,1}, {4865,53054,1},{4860,53059,1},{4858,53068,1},{4853,53084,1},{4855,53089,1}, {4857,53091,1},{4857,53096,1},{4853,53093,1},{4852,53094,1},{4850,53106,1}, {4847,53109,1},{4837,53144,1},{4835,53154,1},{4837,53159,1},{4830,53171,1}, {4832,53176,1},{4830,53178,1},{4830,53181,1},{4833,53181,1},{4835,53184,1}, {4837,53184,1},{4840,53189,1},{4845,53191,1},{4840,53199,1},{4840,53204,1}, {4842,53208,1},{4845,53208,1},{4848,53206,1},{4852,53203,1},{4858,53199,1}, {4860,53198,1},{4868,53196,1},{4868,53189,1},{4865,53193,1},{4863,53188,1}, {4857,53189,1},{4853,53183,1},{4855,53183,1},{4858,53184,1},{4865,53181,1}, {4867,53183,1},{4868,53183,1},{4875,53171,1},{4877,53173,1},{4875,53179,1}, {4878,53179,1},{4880,53176,1},{4883,53178,1},{4900,53153,1},{4898,53159,1}, {4900,53161,1},{4902,53159,1},{4903,53161,1},{4907,53158,1},{4912,53154,1}, {4913,53148,1},{4912,53146,1},{4913,53144,1},{4920,53139,1},{4922,53141,1}, {4923,53141,1},{4925,53124,1},{4925,53119,1},{4927,53121,1},{4927,53124,1}, {4932,53119,1},{4930,53116,1},{4932,53114,1},{4932,53111,1},{4935,53101,1}, {4937,53083,1},{4942,53073,1},{4947,53064,1},{4945,53061,1},{4947,53058,1}, {4950,53056,1},{4950,53053,1},{4953,53051,1},{4963,53044,1},{4967,53038,1}, {4968,53039,1},{4967,53048,1},{4972,53049,1},{4992,53019,1},{5007,53009,1}, {5010,53006,1},{5012,52999,1},{5015,53001,1},{5032,52993,1},{5037,52979,1}, {5035,52963,1},{5037,52959,1},{5038,52949,1},{5038,52941,1},{5043,52933,1}, {5047,52921,1},{5047,52909,1},{5048,52901,1},{5048,52891,1},{5050,52881,1}, {5048,52876,1},{5050,52873,1},{5055,52858,1},{5055,52853,1},{5052,52851,1}, {5055,52851,1},{5057,52839,1},{5058,52836,1},{5058,52828,1},{5062,52824,1}, {5062,52816,1},{5063,52813,1},{5070,52796,1},{5075,52794,1},{5075,52793,1}, {5070,52788,1},{6158,59069,129},{6155,59063,1},{6153,59068,1},{6152,59064,1}, {6150,59069,1},{6147,59068,1},{6143,59064,1},{6142,59056,1},{6138,59058,1}, {6132,59049,1},{6135,59044,1},{6135,59038,1},{6138,59038,1},{6140,59043,1}, {6140,59029,1},{6143,59024,1},{6145,59028,1},{6145,59019,1},{6150,59016,1}, {6153,58999,1},{6158,58989,1},{6163,58989,1},{6167,58999,1},{6170,59033,1}, {6167,59054,1},{6165,59064,1},{6163,59061,1},{6162,59058,1},{6163,59063,1}, {6162,59063,1},{6162,59069,1},{6158,59069,1},{6815,58034,129},{6803,58031,1}, {6795,58019,1},{6785,58026,1},{6782,58031,1},{6770,58029,1},{6762,58034,1}, {6755,58029,1},{6747,58019,1},{6743,58014,1},{6742,58004,1},{6735,57998,1}, {6735,57983,1},{6730,57976,1},{6730,57966,1},{6725,57946,1},{6727,57911,1}, {6725,57903,1},{6723,57894,1},{6725,57883,1},{6722,57869,1},{6725,57836,1}, {6730,57828,1},{6742,57819,1},{6745,57811,1},{6752,57811,1},{6755,57813,1}, {6770,57804,1},{6787,57814,1},{6815,57849,1},{6823,57863,1},{6828,57876,1}, {6830,57894,1},{6833,57908,1},{6830,57913,1},{6830,57929,1},{6833,57939,1}, {6833,57948,1},{6832,57969,1},{6828,57988,1},{6823,58023,1},{6815,58034,1}, {6298,57318,129},{6295,57329,1},{6295,57344,1},{6292,57349,1},{6288,57344,1}, {6285,57346,1},{6283,57341,1},{6272,57343,1},{6260,57323,1},{6258,57308,1}, {6255,57299,1},{6245,57291,1},{6238,57273,1},{6228,57259,1},{6217,57224,1}, {6222,57219,1},{6225,57206,1},{6222,57189,1},{6213,57169,1},{6215,57164,1}, {6217,57164,1},{6230,57163,1},{6233,57156,1},{6240,57143,1},{6247,57143,1}, {6257,57166,1},{6263,57171,1},{6268,57179,1},{6282,57183,1},{6292,57203,1}, {6292,57214,1},{6287,57221,1},{6283,57229,1},{6285,57236,1},{6293,57266,1}, {6292,57293,1},{6293,57298,1},{6295,57298,1},{6298,57309,1},{6298,57318,1}, {6242,57583,129},{6238,57591,1},{6230,57599,1},{6225,57609,1},{6217,57609,1}, {6205,57603,1},{6198,57604,1},{6200,57599,1},{6198,57598,1},{6188,57589,1}, {6185,57584,1},{6180,57583,1},{6177,57576,1},{6167,57573,1},{6158,57559,1}, {6157,57553,1},{6158,57551,1},{6168,57539,1},{6170,57534,1},{6172,57529,1}, {6175,57529,1},{6175,57518,1},{6178,57516,1},{6180,57508,1},{6187,57506,1}, {6188,57511,1},{6198,57506,1},{6207,57511,1},{6210,57509,1},{6222,57518,1}, {6228,57529,1},{6237,57534,1},{6240,57553,1},{6240,57556,1},{6240,57564,1}, {6237,57566,1},{6242,57576,1},{6242,57583,1},{5652,57623,129},{5647,57624,1}, {5643,57631,1},{5643,57643,1},{5635,57643,1},{5635,57646,1},{5633,57641,1}, {5632,57641,1},{5632,57648,1},{5627,57639,1},{5585,57616,1},{5587,57614,1}, {5595,57618,1},{5627,57638,1},{5633,57639,1},{5635,57636,1},{5637,57639,1}, {5638,57638,1},{5635,57631,1},{5622,57626,1},{5622,57631,1},{5618,57629,1}, {5587,57608,1},{5613,57623,1},{5623,57621,1},{5615,57611,1},{5597,57599,1}, {5587,57588,1},{5587,57579,1},{5590,57573,1},{5587,57569,1},{5578,57558,1}, {5610,57589,1},{5612,57589,1},{5613,57586,1},{5613,57583,1},{5608,57576,1}, {5597,57563,1},{5590,57553,1},{5583,57548,1},{5583,57546,1},{5588,57541,1}, {5590,57534,1},{5593,57536,1},{5610,57558,1},{5615,57561,1},{5623,57578,1}, {5628,57583,1},{5638,57588,1},{5655,57589,1},{5655,57593,1},{5645,57594,1}, {5635,57588,1},{5627,57588,1},{5620,57583,1},{5617,57576,1},{5612,57576,1}, {5618,57583,1},{5622,57594,1},{5645,57606,1},{5662,57609,1},{5655,57611,1}, {5655,57618,1},{5653,57619,1},{5655,57623,1},{5652,57623,1},{6057,58741,129}, {6050,58748,1},{6045,58756,1},{6042,58756,1},{6037,58751,1},{6032,58741,1}, {6028,58726,1},{6025,58718,1},{6022,58704,1},{6023,58699,1},{6025,58696,1}, {6030,58698,1},{6038,58704,1},{6047,58714,1},{6052,58718,1},{6057,58723,1}, {6058,58728,1},{6057,58741,1},{7403,53563,129},{7408,53561,1},{7413,53574,1}, {7422,53588,1},{7422,53618,1},{7420,53624,1},{7415,53628,1},{7413,53623,1}, {7410,53629,1},{7407,53628,1},{7407,53621,1},{7398,53618,1},{7402,53629,1}, {7400,53639,1},{7408,53656,1},{7413,53656,1},{7415,53649,1},{7418,53649,1}, {7423,53676,1},{7428,53728,1},{7423,53784,1},{7422,53798,1},{7407,53853,1}, {7400,53871,1},{7387,53903,1},{7385,53913,1},{7380,53931,1},{7372,53946,1}, {7367,53974,1},{7363,53978,1},{7357,53998,1},{7348,54004,1},{7345,53994,1}, {7342,53989,1},{7342,53978,1},{7333,53951,1},{7327,53908,1},{7325,53891,1}, {7323,53884,1},{7322,53869,1},{7312,53838,1},{7310,53823,1},{7305,53811,1}, {7305,53793,1},{7290,53739,1},{7282,53699,1},{7277,53686,1},{7273,53661,1}, {7263,53623,1},{7260,53618,1},{7255,53619,1},{7243,53604,1},{7235,53606,1}, {7228,53573,1},{7223,53559,1},{7222,53553,1},{7223,53519,1},{7225,53518,1}, {7225,53523,1},{7227,53523,1},{7227,53511,1},{7223,53511,1},{7220,53518,1}, {7215,53521,1},{7208,53516,1},{7195,53491,1},{7192,53491,1},{7188,53498,1}, {7175,53493,1},{7168,53498,1},{7155,53486,1},{7150,53476,1},{7143,53448,1}, {7138,53393,1},{7140,53376,1},{7142,53383,1},{7145,53378,1},{7145,53361,1}, {7127,53324,1},{7117,53276,1},{7108,53256,1},{7108,53223,1},{7112,53214,1}, {7122,53194,1},{7150,53169,1},{7153,53156,1},{7165,53141,1},{7170,53129,1}, {7180,53068,1},{7190,53038,1},{7195,53013,1},{7195,53011,1},{7195,53033,1}, {7193,53041,1},{7197,53041,1},{7198,53011,1},{7195,52959,1},{7197,52941,1}, {7197,52936,1},{7197,52946,1},{7198,52954,1},{7200,52959,1},{7208,52964,1}, {7212,52963,1},{7212,52956,1},{7217,52966,1},{7217,52979,1},{7218,52971,1}, {7222,52968,1},{7225,52971,1},{7225,52981,1},{7228,52988,1},{7230,52988,1}, {7230,52983,1},{7238,52996,1},{7242,52993,1},{7242,53001,1},{7245,53001,1}, {7248,53006,1},{7252,53019,1},{7255,53028,1},{7257,53041,1},{7260,53039,1}, {7260,53031,1},{7263,53026,1},{7265,53033,1},{7267,53031,1},{7267,53038,1}, {7270,53043,1},{7270,53034,1},{7275,53039,1},{7282,53033,1},{7285,53024,1}, {7287,53026,1},{7285,53041,1},{7288,53056,1},{7288,53069,1},{7293,53088,1}, {7295,53084,1},{7298,53086,1},{7298,53081,1},{7302,53073,1},{7302,53066,1}, {7300,53063,1},{7308,53049,1},{7313,53058,1},{7315,53071,1},{7320,53069,1}, {7335,53088,1},{7337,53096,1},{7342,53093,1},{7345,53099,1},{7345,53106,1}, {7348,53106,1},{7348,53119,1},{7352,53119,1},{7353,53129,1},{7365,53129,1}, {7370,53144,1},{7370,53151,1},{7375,53153,1},{7377,53159,1},{7382,53151,1}, {7383,53143,1},{7383,53128,1},{7387,53114,1},{7392,53116,1},{7397,53108,1}, {7398,53101,1},{7403,53098,1},{7407,53089,1},{7410,53089,1},{7412,53093,1}, {7420,53083,1},{7425,53084,1},{7427,53079,1},{7427,53066,1},{7432,53076,1}, {7432,53069,1},{7432,53059,1},{7433,53058,1},{7438,53116,1},{7437,53124,1}, {7440,53128,1},{7440,53151,1},{7445,53211,1},{7447,53298,1},{7453,53359,1}, {7455,53379,1},{7452,53393,1},{7453,53411,1},{7452,53413,1},{7452,53421,1}, {7447,53436,1},{7442,53439,1},{7428,53511,1},{7427,53524,1},{7427,53539,1}, {7423,53551,1},{7423,53584,1},{7422,53581,1},{7422,53569,1},{7418,53571,1}, {7410,53554,1},{7407,53553,1},{7403,53561,1},{7260,54076,129},{7258,54081,1}, {7257,54081,1},{7257,54103,1},{7258,54104,1},{7260,54113,1},{7263,54129,1}, {7267,54146,1},{7263,54148,1},{7263,54158,1},{7270,54184,1},{7262,54163,1}, {7260,54164,1},{7262,54171,1},{7265,54178,1},{7267,54191,1},{7273,54194,1}, {7275,54191,1},{7275,54176,1},{7278,54176,1},{7295,54206,1},{7300,54221,1}, {7302,54233,1},{7300,54254,1},{7297,54259,1},{7295,54281,1},{7290,54301,1}, {7290,54328,1},{7280,54383,1},{7275,54391,1},{7272,54413,1},{7267,54416,1}, {7257,54408,1},{7250,54388,1},{7248,54393,1},{7243,54379,1},{7238,54354,1}, {7235,54346,1},{7232,54354,1},{7233,54361,1},{7235,54368,1},{7235,54371,1}, {7223,54358,1},{7220,54359,1},{7230,54371,1},{7230,54376,1},{7233,54394,1}, {7235,54393,1},{7233,54378,1},{7237,54374,1},{7242,54394,1},{7247,54404,1}, {7247,54416,1},{7243,54413,1},{7240,54399,1},{7240,54408,1},{7237,54399,1}, {7235,54399,1},{7237,54408,1},{7237,54414,1},{7233,54416,1},{7233,54424,1}, {7228,54433,1},{7240,54428,1},{7243,54438,1},{7248,54436,1},{7247,54456,1}, {7252,54453,1},{7257,54464,1},{7255,54483,1},{7255,54488,1},{7250,54476,1}, {7243,54503,1},{7243,54504,1},{7250,54483,1},{7252,54493,1},{7255,54498,1}, {7255,54504,1},{7243,54531,1},{7247,54539,1},{7243,54558,1},{7255,54511,1}, {7257,54511,1},{7255,54528,1},{7248,54548,1},{7250,54558,1},{7255,54548,1}, {7262,54539,1},{7265,54526,1},{7265,54514,1},{7265,54509,1},{7267,54508,1}, {7268,54518,1},{7273,54518,1},{7273,54528,1},{7267,54551,1},{7267,54554,1}, {7270,54551,1},{7272,54559,1},{7273,54546,1},{7275,54529,1},{7273,54509,1}, {7277,54519,1},{7282,54514,1},{7285,54483,1},{7295,54461,1},{7300,54466,1}, {7302,54493,1},{7297,54546,1},{7292,54551,1},{7293,54563,1},{7292,54571,1}, {7290,54574,1},{7288,54561,1},{7277,54598,1},{7275,54596,1},{7277,54616,1}, {7275,54621,1},{7273,54624,1},{7272,54619,1},{7270,54626,1},{7267,54643,1}, {7265,54633,1},{7257,54631,1},{7258,54643,1},{7257,54651,1},{7260,54649,1}, {7257,54671,1},{7252,54676,1},{7235,54669,1},{7220,54684,1},{7215,54683,1}, {7213,54691,1},{7217,54691,1},{7213,54696,1},{7213,54693,1},{7212,54696,1}, {7198,54694,1},{7198,54706,1},{7193,54703,1},{7197,54711,1},{7195,54718,1}, {7192,54716,1},{7188,54706,1},{7183,54713,1},{7178,54708,1},{7175,54719,1}, {7173,54718,1},{7172,54711,1},{7170,54716,1},{7172,54729,1},{7167,54739,1}, {7163,54738,1},{7160,54751,1},{7162,54764,1},{7168,54753,1},{7172,54754,1}, {7172,54763,1},{7170,54766,1},{7173,54773,1},{7178,54783,1},{7180,54809,1}, {7187,54789,1},{7188,54793,1},{7187,54806,1},{7190,54811,1},{7193,54794,1}, {7197,54794,1},{7202,54774,1},{7207,54771,1},{7208,54774,1},{7212,54769,1}, {7212,54773,1},{7213,54766,1},{7213,54758,1},{7225,54756,1},{7230,54749,1}, {7228,54759,1},{7230,54764,1},{7235,54751,1},{7238,54756,1},{7242,54748,1}, {7245,54758,1},{7247,54746,1},{7252,54738,1},{7252,54748,1},{7258,54748,1}, {7262,54734,1},{7263,54741,1},{7267,54734,1},{7270,54736,1},{7275,54728,1}, {7278,54731,1},{7288,54721,1},{7292,54726,1},{7297,54719,1},{7298,54723,1}, {7303,54713,1},{7305,54721,1},{7308,54709,1},{7313,54706,1},{7317,54709,1}, {7320,54719,1},{7318,54749,1},{7327,54724,1},{7330,54721,1},{7332,54734,1}, {7335,54728,1},{7335,54741,1},{7332,54754,1},{7332,54773,1},{7328,54794,1}, {7320,54818,1},{7317,54829,1},{7318,54834,1},{7323,54824,1},{7328,54828,1}, {7332,54849,1},{7328,54861,1},{7322,54871,1},{7322,54888,1},{7318,54889,1}, {7312,54908,1},{7308,54913,1},{7307,54923,1},{7305,54931,1},{7307,54943,1}, {7305,54951,1},{7300,54953,1},{7297,54963,1},{7295,54976,1},{7293,54973,1}, {7292,54979,1},{7287,54984,1},{7287,54981,1},{7285,54991,1},{7278,54999,1}, {7277,54996,1},{7275,55003,1},{7273,55003,1},{7278,54989,1},{7278,54984,1}, {7273,54993,1},{7270,54991,1},{7265,55008,1},{7262,55001,1},{7255,55004,1}, {7255,55013,1},{7248,55011,1},{7248,55016,1},{7245,55014,1},{7247,55008,1}, {7245,55006,1},{7238,55016,1},{7218,55041,1},{7212,55033,1},{7207,55034,1}, {7205,55041,1},{7198,55049,1},{7183,55058,1},{7182,55069,1},{7157,55101,1}, {7150,55096,1},{7147,55104,1},{7142,55101,1},{7135,55108,1},{7137,55096,1}, {7135,55088,1},{7122,55091,1},{7112,55071,1},{7102,55088,1},{7097,55104,1}, {7097,55114,1},{7092,55124,1},{7075,55136,1},{7075,55153,1},{7060,55183,1}, {7060,55204,1},{7050,55226,1},{7050,55244,1},{7057,55223,1},{7067,55221,1}, {7067,55233,1},{7060,55251,1},{7050,55251,1},{7048,55268,1},{7042,55298,1}, {7038,55309,1},{7032,55316,1},{7035,55323,1},{7032,55331,1},{7027,55343,1}, {7027,55353,1},{7030,55356,1},{7030,55368,1},{7027,55378,1},{7022,55371,1}, {7012,55381,1},{7013,55388,1},{7012,55394,1},{7018,55398,1},{7013,55413,1}, {7017,55423,1},{7020,55424,1},{7015,55439,1},{7008,55436,1},{7002,55443,1}, {6997,55444,1},{6993,55439,1},{6992,55441,1},{6992,55446,1},{6982,55449,1}, {6977,55448,1},{6973,55441,1},{6970,55444,1},{6967,55439,1},{6967,55434,1}, {6965,55429,1},{6967,55426,1},{6968,55421,1},{6967,55414,1},{6967,55403,1}, {6983,55389,1},{6988,55394,1},{6992,55391,1},{6965,55369,1},{6972,55359,1}, {6975,55351,1},{6973,55344,1},{6973,55341,1},{6980,55333,1},{6985,55331,1}, {6982,55323,1},{6985,55318,1},{6990,55318,1},{6992,55314,1},{6990,55311,1}, {6985,55313,1},{6983,55303,1},{6980,55306,1},{6975,55301,1},{6977,55298,1}, {6982,55298,1},{6977,55296,1},{6978,55291,1},{6977,55286,1},{6973,55278,1}, {6977,55268,1},{6970,55276,1},{6970,55288,1},{6968,55288,1},{6957,55286,1}, {6953,55276,1},{6955,55266,1},{6953,55256,1},{6953,55253,1},{6955,55249,1}, {6957,55239,1},{6965,55214,1},{6970,55206,1},{6968,55199,1},{6970,55194,1}, {6968,55188,1},{6962,55186,1},{6955,55214,1},{6943,55223,1},{6945,55226,1}, {6952,55228,1},{6952,55231,1},{6950,55234,1},{6942,55238,1},{6937,55233,1}, {6927,55234,1},{6923,55229,1},{6920,55216,1},{6912,55216,1},{6912,55219,1}, {6915,55223,1},{6922,55234,1},{6938,55253,1},{6937,55259,1},{6938,55264,1}, {6942,55274,1},{6942,55283,1},{6948,55289,1},{6948,55301,1},{6950,55304,1}, {6948,55331,1},{6942,55343,1},{6935,55334,1},{6935,55319,1},{6932,55319,1}, {6933,55326,1},{6932,55326,1},{6928,55333,1},{6923,55328,1},{6927,55321,1}, {6928,55314,1},{6922,55314,1},{6918,55326,1},{6923,55333,1},{6927,55341,1}, {6922,55351,1},{6918,55361,1},{6912,55359,1},{6905,55349,1},{6900,55354,1}, {6897,55338,1},{6900,55333,1},{6898,55328,1},{6895,55321,1},{6895,55296,1}, {6892,55296,1},{6887,55283,1},{6887,55273,1},{6888,55266,1},{6890,55261,1}, {6888,55259,1},{6883,55266,1},{6883,55261,1},{6883,55253,1},{6880,55246,1}, {6880,55233,1},{6885,55216,1},{6883,55203,1},{6878,55199,1},{6880,55186,1}, {6883,55181,1},{6882,55173,1},{6883,55161,1},{6887,55141,1},{6885,55126,1}, {6890,55113,1},{6895,55109,1},{6893,55106,1},{6890,55109,1},{6893,55091,1}, {6888,55086,1},{6887,55078,1},{6887,55051,1},{6890,55021,1},{6895,55009,1}, {6897,55016,1},{6900,55019,1},{6898,55033,1},{6902,55033,1},{6902,55039,1}, {6903,55043,1},{6907,55044,1},{6910,55028,1},{6908,55024,1},{6905,55033,1}, {6908,55008,1},{6910,54991,1},{6915,54981,1},{6917,54971,1},{6917,54943,1}, {6915,54939,1},{6915,54933,1},{6915,54916,1},{6918,54896,1},{6923,54896,1}, {6927,54908,1},{6930,54909,1},{6933,54904,1},{6940,54904,1},{6950,54878,1}, {6943,54863,1},{6938,54861,1},{6935,54838,1},{6922,54843,1},{6918,54833,1}, {6915,54833,1},{6915,54823,1},{6902,54801,1},{6898,54781,1},{6895,54751,1}, {6893,54739,1},{6895,54683,1},{6893,54679,1},{6888,54683,1},{6883,54669,1}, {6878,54649,1},{6873,54643,1},{6870,54618,1},{6870,54596,1},{6863,54568,1}, {6862,54533,1},{6863,54514,1},{6857,54498,1},{6860,54493,1},{6862,54479,1}, {6858,54468,1},{6855,54441,1},{6855,54433,1},{6857,54433,1},{6858,54449,1}, {6860,54449,1},{6858,54423,1},{6858,54398,1},{6857,54396,1},{6855,54414,1}, {6852,54413,1},{6855,54379,1},{6852,54336,1},{6853,54324,1},{6852,54313,1}, {6852,54308,1},{6850,54296,1},{6850,54274,1},{6847,54271,1},{6847,54263,1}, {6847,54204,1},{6850,54211,1},{6850,54233,1},{6855,54224,1},{6860,54199,1}, {6865,54191,1},{6870,54191,1},{6882,54168,1},{6885,54174,1},{6890,54168,1}, {6895,54179,1},{6902,54179,1},{6903,54173,1},{6905,54181,1},{6908,54171,1}, {6912,54168,1},{6913,54173,1},{6915,54166,1},{6918,54166,1},{6917,54184,1}, {6918,54184,1},{6922,54166,1},{6922,54149,1},{6925,54143,1},{6925,54121,1}, {6928,54104,1},{6925,54059,1},{6925,54048,1},{6928,54044,1},{6928,54038,1}, {6925,54028,1},{6923,54019,1},{6927,54003,1},{6925,53986,1},{6930,53941,1}, {6933,53933,1},{6940,53883,1},{6947,53873,1},{6948,53879,1},{6952,53874,1}, {6957,53878,1},{6958,53863,1},{6957,53859,1},{6957,53863,1},{6953,53864,1}, {6957,53858,1},{6958,53844,1},{6960,53844,1},{6962,53851,1},{6965,53851,1}, {6970,53828,1},{6975,53811,1},{7000,53793,1},{7005,53803,1},{7012,53828,1}, {7022,53941,1},{7028,54016,1},{7028,54053,1},{7032,54081,1},{7032,54108,1}, {7032,54119,1},{7028,54129,1},{7027,54148,1},{7027,54209,1},{7025,54231,1}, {7023,54236,1},{7023,54239,1},{7025,54238,1},{7022,54258,1},{7020,54279,1}, {7020,54284,1},{7022,54278,1},{7023,54281,1},{7023,54298,1},{7023,54303,1}, {7025,54298,1},{7027,54323,1},{7028,54306,1},{7030,54308,1},{7025,54343,1}, {7027,54348,1},{7028,54391,1},{7030,54391,1},{7030,54378,1},{7032,54384,1}, {7033,54388,1},{7035,54373,1},{7037,54338,1},{7040,54329,1},{7047,54324,1}, {7050,54316,1},{7050,54306,1},{7052,54301,1},{7050,54296,1},{7053,54291,1}, {7052,54283,1},{7057,54264,1},{7057,54251,1},{7055,54249,1},{7053,54246,1}, {7057,54243,1},{7062,54228,1},{7060,54218,1},{7065,54216,1},{7065,54196,1}, {7068,54184,1},{7065,54183,1},{7065,54178,1},{7068,54163,1},{7072,54143,1}, {7072,54136,1},{7067,54121,1},{7068,54099,1},{7067,54093,1},{7062,54073,1}, {7062,54049,1},{7060,54024,1},{7060,53996,1},{7057,53978,1},{7060,53966,1}, {7060,53944,1},{7057,53931,1},{7060,53914,1},{7063,53919,1},{7063,53899,1}, {7063,53879,1},{7060,53864,1},{7062,53813,1},{7060,53801,1},{7063,53798,1}, {7062,53786,1},{7060,53784,1},{7060,53779,1},{7063,53764,1},{7072,53763,1}, {7080,53726,1},{7087,53709,1},{7097,53696,1},{7100,53696,1},{7117,53756,1}, {7118,53794,1},{7123,53826,1},{7125,53851,1},{7128,53856,1},{7137,53914,1}, {7137,53928,1},{7135,53919,1},{7133,53921,1},{7135,53931,1},{7137,53959,1}, {7138,53963,1},{7140,53958,1},{7138,53944,1},{7140,53941,1},{7142,53914,1}, {7143,53931,1},{7150,53963,1},{7148,53961,1},{7150,53974,1},{7148,53976,1}, {7145,53994,1},{7147,54004,1},{7148,54016,1},{7153,54029,1},{7148,53991,1}, {7150,53979,1},{7153,53991,1},{7155,53973,1},{7152,53941,1},{7145,53864,1}, {7142,53849,1},{7143,53826,1},{7140,53814,1},{7138,53798,1},{7138,53794,1}, {7145,53798,1},{7145,53789,1},{7147,53791,1},{7150,53779,1},{7148,53781,1}, {7145,53773,1},{7143,53788,1},{7138,53784,1},{7138,53768,1},{7140,53764,1}, {7137,53756,1},{7138,53746,1},{7137,53733,1},{7140,53711,1},{7143,53704,1}, {7150,53711,1},{7155,53731,1},{7153,53751,1},{7152,53759,1},{7155,53753,1}, {7155,53769,1},{7157,53771,1},{7158,53759,1},{7162,53748,1},{7160,53741,1}, {7162,53739,1},{7163,53741,1},{7167,53766,1},{7167,53733,1},{7163,53719,1}, {7160,53718,1},{7158,53706,1},{7158,53699,1},{7158,53694,1},{7162,53698,1}, {7163,53691,1},{7165,53691,1},{7167,53653,1},{7162,53646,1},{7158,53649,1}, {7158,53646,1},{7163,53631,1},{7168,53626,1},{7178,53623,1},{7188,53626,1}, {7198,53641,1},{7205,53663,1},{7212,53664,1},{7218,53678,1},{7218,53698,1}, {7222,53723,1},{7223,53726,1},{7233,53719,1},{7235,53691,1},{7238,53679,1}, {7243,53678,1},{7250,53683,1},{7260,53713,1},{7263,53719,1},{7270,53748,1}, {7283,53784,1},{7292,53801,1},{7292,53819,1},{7295,53829,1},{7295,53843,1}, {7305,53879,1},{7307,53893,1},{7312,53916,1},{7313,53939,1},{7318,53954,1}, {7320,53974,1},{7323,53996,1},{7327,54004,1},{7327,54016,1},{7328,54021,1}, {7332,54048,1},{7337,54066,1},{7338,54079,1},{7332,54113,1},{7323,54131,1}, {7315,54139,1},{7288,54131,1},{7280,54138,1},{7278,54113,1},{7273,54101,1}, {7268,54103,1},{7268,54111,1},{7265,54096,1},{7262,54091,1},{7260,54076,1}, {6492,57234,129},{6488,57241,1},{6487,57251,1},{6482,57256,1},{6478,57264,1}, {6477,57276,1},{6473,57281,1},{6477,57298,1},{6472,57316,1},{6468,57314,1}, {6468,57326,1},{6463,57333,1},{6450,57359,1},{6443,57358,1},{6435,57361,1}, {6432,57358,1},{6425,57363,1},{6420,57376,1},{6413,57376,1},{6408,57361,1}, {6408,57348,1},{6405,57343,1},{6407,57341,1},{6400,57338,1},{6400,57351,1}, {6403,57389,1},{6405,57393,1},{6408,57391,1},{6410,57398,1},{6407,57396,1}, {6407,57409,1},{6405,57411,1},{6398,57443,1},{6402,57444,1},{6405,57438,1}, {6410,57443,1},{6413,57441,1},{6408,57458,1},{6402,57466,1},{6398,57481,1}, {6397,57484,1},{6393,57481,1},{6390,57486,1},{6388,57479,1},{6390,57466,1}, {6388,57469,1},{6385,57496,1},{6380,57509,1},{6380,57516,1},{6375,57518,1}, {6373,57501,1},{6373,57491,1},{6363,57478,1},{6362,57469,1},{6353,57453,1}, {6352,57444,1},{6348,57443,1},{6345,57439,1},{6345,57426,1},{6348,57416,1}, {6353,57398,1},{6358,57383,1},{6357,57371,1},{6363,57359,1},{6363,57344,1}, {6368,57331,1},{6368,57314,1},{6367,57309,1},{6367,57311,1},{6368,57308,1}, {6365,57303,1},{6368,57289,1},{6372,57286,1},{6373,57281,1},{6377,57281,1}, {6380,57289,1},{6382,57298,1},{6390,57299,1},{6397,57281,1},{6398,57249,1}, {6395,57229,1},{6397,57226,1},{6400,57221,1},{6413,57239,1},{6418,57234,1}, {6418,57223,1},{6412,57218,1},{6413,57206,1},{6413,57201,1},{6410,57196,1}, {6412,57189,1},{6410,57183,1},{6405,57176,1},{6400,57168,1},{6393,57176,1}, {6387,57171,1},{6383,57176,1},{6377,57173,1},{6378,57163,1},{6377,57159,1}, {6375,57154,1},{6368,57144,1},{6367,57136,1},{6360,57126,1},{6363,57108,1}, {6360,57106,1},{6355,57096,1},{6338,57088,1},{6330,57078,1},{6330,57069,1}, {6320,57048,1},{6312,57013,1},{6312,56986,1},{6318,56976,1},{6325,56973,1}, {6342,56971,1},{6350,56976,1},{6355,56973,1},{6363,56976,1},{6367,56974,1}, {6370,56964,1},{6377,56964,1},{6370,56954,1},{6370,56939,1},{6363,56911,1}, {6367,56876,1},{6365,56868,1},{6358,56858,1},{6355,56848,1},{6355,56824,1}, {6358,56818,1},{6363,56813,1},{6370,56816,1},{6390,56843,1},{6397,56859,1}, {6402,56889,1},{6407,56899,1},{6408,56913,1},{6410,56918,1},{6413,56918,1}, {6418,56914,1},{6423,56904,1},{6425,56908,1},{6428,56901,1},{6437,56898,1}, {6440,56901,1},{6443,56896,1},{6455,56898,1},{6460,56894,1},{6480,56913,1}, {6482,56919,1},{6483,56916,1},{6487,56918,1},{6488,56914,1},{6492,56921,1}, {6497,56914,1},{6500,56913,1},{6507,56918,1},{6510,56923,1},{6520,56923,1}, {6528,56919,1},{6537,56926,1},{6538,56921,1},{6553,56926,1},{6562,56934,1}, {6572,56934,1},{6585,56954,1},{6592,56974,1},{6593,56986,1},{6592,56989,1}, {6585,56984,1},{6580,56986,1},{6580,56993,1},{6583,56998,1},{6582,57009,1}, {6578,57021,1},{6573,57021,1},{6572,57018,1},{6562,57031,1},{6557,57024,1}, {6555,57013,1},{6555,57008,1},{6553,57004,1},{6542,57034,1},{6532,57034,1}, {6525,57043,1},{6522,57044,1},{6522,57054,1},{6523,57056,1},{6530,57061,1}, {6533,57061,1},{6548,57078,1},{6545,57093,1},{6542,57091,1},{6538,57098,1}, {6533,57121,1},{6527,57113,1},{6522,57123,1},{6520,57128,1},{6518,57148,1}, {6517,57144,1},{6517,57148,1},{6517,57159,1},{6517,57183,1},{6513,57196,1}, {6507,57203,1},{6502,57203,1},{6495,57216,1},{6492,57234,1},{7353,55088,129}, {7345,55078,1},{7333,55079,1},{7320,55059,1},{7318,55063,1},{7315,55053,1}, {7308,55038,1},{7302,55038,1},{7298,55023,1},{7293,55016,1},{7295,55001,1}, {7292,55006,1},{7292,55003,1},{7287,55016,1},{7285,55008,1},{7287,55004,1}, {7287,54998,1},{7293,54989,1},{7303,54966,1},{7313,54946,1},{7317,54946,1}, {7318,54926,1},{7322,54931,1},{7327,54918,1},{7328,54916,1},{7328,54924,1}, {7330,54923,1},{7333,54904,1},{7340,54889,1},{7342,54873,1},{7347,54856,1}, {7347,54838,1},{7348,54833,1},{7370,54874,1},{7373,54916,1},{7373,54963,1}, {7377,54983,1},{7375,55021,1},{7367,55049,1},{7363,55054,1},{7363,55068,1}, {7360,55079,1},{7357,55086,1},{7353,55088,1},{6988,55749,129},{6985,55766,1}, {6982,55768,1},{6978,55774,1},{6977,55789,1},{6973,55794,1},{6970,55803,1}, {6968,55801,1},{6967,55788,1},{6960,55798,1},{6970,55806,1},{6967,55816,1}, {6962,55826,1},{6958,55828,1},{6948,55848,1},{6948,55858,1},{6945,55866,1}, {6943,55881,1},{6930,55914,1},{6927,55919,1},{6915,55911,1},{6912,55914,1}, {6905,55914,1},{6902,55923,1},{6905,55924,1},{6908,55921,1},{6917,55921,1}, {6923,55929,1},{6923,55931,1},{6908,55944,1},{6905,55938,1},{6900,55943,1}, {6897,55951,1},{6887,55953,1},{6888,55961,1},{6887,55969,1},{6883,55971,1}, {6883,55981,1},{6890,55999,1},{6885,56014,1},{6880,56009,1},{6875,55993,1}, {6867,55983,1},{6867,55979,1},{6873,55981,1},{6875,55976,1},{6872,55963,1}, {6873,55956,1},{6870,55956,1},{6867,55951,1},{6860,55951,1},{6862,55939,1}, {6860,55934,1},{6847,55908,1},{6845,55883,1},{6852,55844,1},{6855,55834,1}, {6858,55826,1},{6858,55821,1},{6853,55826,1},{6852,55821,1},{6853,55803,1}, {6855,55798,1},{6853,55788,1},{6865,55759,1},{6865,55751,1},{6870,55733,1}, {6867,55726,1},{6875,55708,1},{6882,55711,1},{6885,55699,1},{6883,55694,1}, {6877,55696,1},{6875,55688,1},{6875,55681,1},{6878,55678,1},{6880,55671,1}, {6878,55664,1},{6883,55649,1},{6885,55648,1},{6892,55654,1},{6893,55651,1}, {6895,55638,1},{6893,55636,1},{6890,55633,1},{6892,55624,1},{6887,55631,1}, {6885,55623,1},{6882,55618,1},{6887,55609,1},{6888,55593,1},{6895,55589,1}, {6902,55576,1},{6913,55589,1},{6912,55603,1},{6913,55603,1},{6917,55604,1}, {6913,55618,1},{6913,55636,1},{6917,55643,1},{6917,55658,1},{6920,55664,1}, {6927,55666,1},{6930,55671,1},{6927,55679,1},{6930,55684,1},{6930,55696,1}, {6933,55696,1},{6940,55681,1},{6945,55674,1},{6948,55678,1},{6947,55686,1}, {6947,55694,1},{6952,55676,1},{6958,55681,1},{6958,55689,1},{6957,55701,1}, {6947,55714,1},{6947,55726,1},{6942,55726,1},{6943,55736,1},{6945,55736,1}, {6950,55719,1},{6958,55709,1},{6960,55699,1},{6972,55704,1},{6978,55713,1}, {6982,55726,1},{6988,55734,1},{6988,55749,1},{5162,59974,129},{5158,59971,1}, {5157,59974,1},{5157,59979,1},{5157,59978,1},{5160,59984,1},{5160,59988,1}, {5157,59988,1},{5160,59991,1},{5157,59996,1},{5155,59994,1},{5157,59989,1}, {5153,59993,1},{5150,59991,1},{5152,59988,1},{5150,59983,1},{5147,59988,1}, {5148,59991,1},{5145,59991,1},{5137,59986,1},{5138,59981,1},{5137,59978,1}, {5135,59979,1},{5135,59974,1},{5130,59976,1},{5135,59959,1},{5133,59948,1}, {5135,59946,1},{5137,59941,1},{5135,59943,1},{5135,59938,1},{5138,59933,1}, {5135,59933,1},{5137,59928,1},{5132,59926,1},{5132,59934,1},{5127,59934,1}, {5127,59931,1},{5125,59934,1},{5123,59929,1},{5122,59934,1},{5120,59934,1}, {5115,59941,1},{5117,59943,1},{5120,59939,1},{5120,59944,1},{5123,59953,1}, {5122,59954,1},{5122,59959,1},{5117,59964,1},{5115,59961,1},{5112,59964,1}, {5108,59963,1},{5105,59961,1},{5107,59956,1},{5103,59958,1},{5097,59953,1}, {5092,59954,1},{5093,59953,1},{5095,59951,1},{5095,59949,1},{5090,59949,1}, {5090,59951,1},{5087,59948,1},{5090,59946,1},{5085,59941,1},{5072,59929,1}, {5072,59926,1},{5077,59928,1},{5075,59926,1},{5077,59923,1},{5090,59926,1}, {5088,59921,1},{5085,59919,1},{5085,59921,1},{5078,59921,1},{5078,59919,1}, {5068,59921,1},{5068,59926,1},{5067,59926,1},{5057,59913,1},{5052,59913,1}, {5052,59904,1},{5050,59911,1},{5042,59898,1},{5037,59896,1},{5037,59893,1}, {5038,59891,1},{5038,59886,1},{5035,59894,1},{5027,59889,1},{5015,59879,1}, {5013,59876,1},{5013,59869,1},{5010,59873,1},{5002,59861,1},{4993,59858,1}, {4992,59858,1},{4995,59863,1},{4995,59864,1},{4987,59863,1},{4985,59859,1}, {4983,59859,1},{4975,59846,1},{4975,59853,1},{4973,59858,1},{4960,59854,1}, {4955,59851,1},{4985,59879,1},{4990,59889,1},{4985,59893,1},{4985,59894,1}, {4988,59893,1},{4992,59896,1},{4990,59899,1},{4995,59898,1},{5002,59903,1}, {5005,59909,1},{5012,59914,1},{5015,59924,1},{5013,59924,1},{5013,59928,1}, {5012,59926,1},{5010,59929,1},{5007,59929,1},{5007,59928,1},{4997,59923,1}, {4992,59918,1},{4993,59921,1},{5000,59929,1},{5003,59936,1},{5000,59936,1}, {4997,59933,1},{4997,59936,1},{5003,59941,1},{5002,59948,1},{4997,59953,1}, {4995,59959,1},{4992,59961,1},{4995,59966,1},{4997,59969,1},{4997,59976,1}, {4997,59979,1},{5000,59988,1},{4995,59989,1},{4992,59988,1},{4990,59981,1}, {4985,59971,1},{4985,59968,1},{4983,59968,1},{4980,59953,1},{4977,59948,1}, {4973,59941,1},{4975,59936,1},{4972,59936,1},{4970,59929,1},{4968,59931,1}, {4962,59919,1},{4957,59919,1},{4967,59931,1},{4970,59939,1},{4972,59948,1}, {4967,59941,1},{4970,59946,1},{4968,59946,1},{4968,59953,1},{4963,59948,1}, {4960,59943,1},{4958,59948,1},{4955,59944,1},{4948,59928,1},{4942,59924,1}, {4943,59929,1},{4950,59938,1},{4952,59953,1},{4950,59959,1},{4948,59958,1}, {4948,59964,1},{4947,59959,1},{4945,59958,1},{4947,59969,1},{4943,59966,1}, {4942,59969,1},{4938,59969,1},{4940,59973,1},{4942,59973,1},{4948,59981,1}, {4948,59984,1},{4942,59979,1},{4937,59979,1},{4947,59988,1},{4945,59989,1}, {4947,59991,1},{4950,59993,1},{4950,60001,1},{4943,59993,1},{4943,59996,1}, {4945,60003,1},{4945,60004,1},{4942,60001,1},{4935,59991,1},{4937,59998,1}, {4935,59999,1},{4933,59998,1},{4935,59999,1},{4940,60004,1},{4938,60004,1}, {4940,60008,1},{4935,60006,1},{4935,60003,1},{4932,60004,1},{4935,60006,1}, {4935,60009,1},{4938,60013,1},{4942,60009,1},{4948,60009,1},{4953,60004,1}, {4953,60009,1},{4953,60014,1},{4952,60013,1},{4950,60016,1},{4953,60016,1}, {4953,60023,1},{4953,60021,1},{4947,60024,1},{4943,60019,1},{4942,60021,1}, {4938,60018,1},{4940,60016,1},{4935,60013,1},{4927,60014,1},{4922,60004,1}, {4917,59999,1},{4915,59999,1},{4915,60004,1},{4912,60003,1},{4912,60004,1}, {4910,60006,1},{4903,59998,1},{4908,60009,1},{4912,60018,1},{4912,60014,1}, {4910,60009,1},{4912,60008,1},{4917,60008,1},{4918,60011,1},{4918,60008,1}, {4925,60019,1},{4928,60031,1},{4935,60028,1},{4932,60033,1},{4933,60036,1}, {4928,60038,1},{4922,60033,1},{4925,60038,1},{4930,60039,1},{4930,60044,1}, {4928,60044,1},{4928,60048,1},{4933,60049,1},{4935,60048,1},{4942,60051,1}, {4940,60054,1},{4927,60053,1},{4928,60058,1},{4935,60059,1},{4932,60061,1}, {4933,60063,1},{4937,60064,1},{4938,60068,1},{4942,60073,1},{4943,60071,1}, {4953,60083,1},{4953,60093,1},{4950,60086,1},{4945,60083,1},{4947,60091,1}, {4947,60093,1},{4945,60089,1},{4942,60091,1},{4937,60088,1},{4933,60091,1}, {4927,60088,1},{4930,60091,1},{4932,60096,1},{4937,60096,1},{4943,60101,1}, {4943,60106,1},{4940,60106,1},{4942,60109,1},{4940,60111,1},{4942,60114,1}, {4937,60113,1},{4940,60116,1},{4940,60118,1},{4937,60118,1},{4938,60119,1}, {4945,60123,1},{4947,60128,1},{4945,60129,1},{4948,60133,1},{4947,60133,1}, {4947,60138,1},{4943,60133,1},{4945,60141,1},{4943,60149,1},{4940,60151,1}, {4938,60163,1},{4937,60164,1},{4937,60169,1},{4933,60169,1},{4932,60174,1}, {4933,60178,1},{4930,60178,1},{4928,60181,1},{4928,60188,1},{4925,60191,1}, {4923,60191,1},{4918,60183,1},{4915,60183,1},{4912,60179,1},{4912,60174,1}, {4910,60178,1},{4903,60176,1},{4902,60159,1},{4903,60153,1},{4902,60153,1}, {4902,60154,1},{4902,60164,1},{4898,60156,1},{4898,60148,1},{4897,60148,1}, {4895,60153,1},{4892,60154,1},{4890,60139,1},{4888,60139,1},{4890,60146,1}, {4888,60148,1},{4885,60139,1},{4883,60139,1},{4883,60131,1},{4882,60126,1}, {4882,60123,1},{4880,60118,1},{4878,60119,1},{4877,60116,1},{4877,60121,1}, {4878,60124,1},{4882,60136,1},{4880,60138,1},{4877,60136,1},{4877,60139,1}, {4878,60138,1},{4882,60141,1},{4883,60146,1},{4883,60153,1},{4882,60156,1}, {4878,60149,1},{4880,60144,1},{4877,60146,1},{4878,60151,1},{4877,60151,1}, {4873,60146,1},{4875,60139,1},{4873,60134,1},{4872,60143,1},{4870,60143,1}, {4867,60141,1},{4865,60146,1},{4862,60143,1},{4863,60148,1},{4868,60158,1}, {4867,60146,1},{4868,60143,1},{4875,60153,1},{4870,60151,1},{4872,60159,1}, {4870,60163,1},{4870,60161,1},{4868,60166,1},{4865,60163,1},{4867,60166,1}, {4870,60174,1},{4868,60176,1},{4867,60176,1},{4863,60171,1},{4862,60158,1}, {4858,60154,1},{4857,60143,1},{4853,60141,1},{4857,60146,1},{4857,60164,1}, {4855,60158,1},{4853,60158,1},{4853,60161,1},{4850,60161,1},{4848,60146,1}, {4842,60136,1},{4843,60128,1},{4838,60119,1},{4835,60123,1},{4840,60128,1}, {4840,60136,1},{4847,60148,1},{4847,60153,1},{4847,60154,1},{4838,60148,1}, {4837,60149,1},{4837,60153,1},{4838,60151,1},{4845,60158,1},{4848,60159,1}, {4853,60168,1},{4853,60173,1},{4853,60174,1},{4852,60169,1},{4850,60174,1}, {4843,60164,1},{4845,60171,1},{4843,60173,1},{4852,60178,1},{4850,60179,1}, {4848,60178,1},{4848,60181,1},{4840,60174,1},{4847,60181,1},{4845,60184,1}, {4850,60186,1},{4850,60189,1},{4858,60189,1},{4862,60193,1},{4862,60203,1}, {4858,60206,1},{4855,60204,1},{4855,60208,1},{4852,60211,1},{4857,60214,1}, {4858,60219,1},{4863,60221,1},{4865,60226,1},{4870,60229,1},{4868,60229,1}, {4867,60234,1},{4863,60234,1},{4860,60238,1},{4857,60236,1},{4855,60238,1}, {4853,60233,1},{4843,60229,1},{4840,60226,1},{4837,60219,1},{4835,60218,1}, {4835,60213,1},{4838,60208,1},{4838,60204,1},{4837,60203,1},{4838,60201,1}, {4835,60201,1},{4830,60198,1},{4828,60198,1},{4827,60191,1},{4817,60173,1}, {4817,60166,1},{4820,60161,1},{4818,60153,1},{4822,60148,1},{4823,60143,1}, {4817,60141,1},{4812,60144,1},{4808,60144,1},{4808,60168,1},{4807,60169,1}, {4805,60168,1},{4802,60158,1},{4803,60144,1},{4802,60144,1},{4800,60158,1}, {4802,60168,1},{4805,60176,1},{4800,60174,1},{4790,60166,1},{4790,60158,1}, {4788,60164,1},{4785,60164,1},{4777,60156,1},{4785,60148,1},{4785,60143,1}, {4783,60148,1},{4780,60151,1},{4772,60153,1},{4772,60151,1},{4765,60158,1}, {4762,60159,1},{4762,60163,1},{4768,60166,1},{4767,60169,1},{4760,60164,1}, {4758,60166,1},{4760,60169,1},{4757,60169,1},{4757,60173,1},{4752,60169,1}, {4755,60174,1},{4753,60176,1},{4753,60181,1},{4758,60179,1},{4758,60183,1}, {4762,60179,1},{4763,60183,1},{4762,60184,1},{4767,60184,1},{4768,60188,1}, {4773,60186,1},{4777,60191,1},{4780,60189,1},{4782,60193,1},{4787,60196,1}, {4787,60201,1},{4790,60199,1},{4802,60209,1},{4803,60218,1},{4807,60221,1}, {4803,60226,1},{4805,60231,1},{4808,60236,1},{4815,60241,1},{4817,60244,1}, {4810,60253,1},{4808,60243,1},{4805,60241,1},{4800,60241,1},{4792,60231,1}, {4787,60231,1},{4780,60223,1},{4775,60219,1},{4773,60216,1},{4772,60219,1}, {4768,60218,1},{4768,60221,1},{4765,60218,1},{4760,60209,1},{4762,60216,1}, {4758,60211,1},{4757,60213,1},{4760,60219,1},{4755,60209,1},{4755,60218,1}, {4747,60216,1},{4750,60219,1},{4747,60221,1},{4743,60216,1},{4743,60223,1}, {4742,60223,1},{4747,60229,1},{4755,60246,1},{4763,60251,1},{4768,60253,1}, {4780,60258,1},{4777,60261,1},{4775,60266,1},{4770,60266,1},{4767,60264,1}, {4765,60271,1},{4760,60271,1},{4755,60268,1},{4752,60274,1},{4748,60273,1}, {4747,60268,1},{4743,60271,1},{4740,60266,1},{4732,60261,1},{4730,60256,1}, {4730,60259,1},{4727,60254,1},{4725,60256,1},{4725,60254,1},{4710,60249,1}, {4708,60243,1},{4707,60251,1},{4705,60251,1},{4705,60249,1},{4702,60251,1}, {4700,60246,1},{4698,60248,1},{4697,60246,1},{4693,60248,1},{4692,60244,1}, {4678,60243,1},{4673,60234,1},{4665,60228,1},{4662,60219,1},{4665,60213,1}, {4672,60209,1},{4673,60209,1},{4668,60204,1},{4672,60201,1},{4668,60198,1}, {4673,60199,1},{4662,60183,1},{4662,60179,1},{4665,60174,1},{4672,60171,1}, {4675,60176,1},{4678,60176,1},{4687,60181,1},{4690,60188,1},{4688,60181,1}, {4680,60173,1},{4680,60171,1},{4682,60171,1},{4690,60176,1},{4692,60181,1}, {4695,60184,1},{4693,60181,1},{4695,60179,1},{4698,60179,1},{4693,60176,1}, {4695,60174,1},{4698,60176,1},{4698,60173,1},{4707,60179,1},{4708,60178,1}, {4713,60186,1},{4713,60184,1},{4717,60184,1},{4715,60179,1},{4720,60179,1}, {4713,60176,1},{4710,60173,1},{4715,60173,1},{4713,60171,1},{4708,60168,1}, {4708,60166,1},{4705,60166,1},{4703,60159,1},{4695,60154,1},{4693,60149,1}, {4692,60148,1},{4687,60143,1},{4685,60141,1},{4683,60134,1},{4680,60131,1}, {4682,60118,1},{4688,60116,1},{4695,60118,1},{4708,60128,1},{4723,60134,1}, {4722,60143,1},{4727,60136,1},{4732,60136,1},{4732,60138,1},{4732,60139,1}, {4730,60139,1},{4732,60144,1},{4735,60148,1},{4735,60144,1},{4737,60144,1}, {4743,60156,1},{4743,60151,1},{4745,60151,1},{4743,60144,1},{4745,60144,1}, {4752,60148,1},{4753,60146,1},{4758,60148,1},{4762,60146,1},{4760,60143,1}, {4775,60139,1},{4777,60136,1},{4782,60136,1},{4780,60131,1},{4780,60129,1}, {4782,60129,1},{4787,60128,1},{4782,60126,1},{4783,60124,1},{4788,60118,1}, {4790,60111,1},{4788,60111,1},{4785,60116,1},{4778,60114,1},{4770,60108,1}, {4770,60103,1},{4763,60104,1},{4752,60094,1},{4750,60089,1},{4748,60091,1}, {4748,60093,1},{4745,60096,1},{4742,60093,1},{4745,60093,1},{4745,60089,1}, {4740,60086,1},{4740,60089,1},{4737,60084,1},{4738,60083,1},{4737,60079,1}, {4735,60076,1},{4737,60074,1},{4748,60088,1},{4758,60094,1},{4760,60094,1}, {4738,60074,1},{4738,60071,1},{4737,60069,1},{4740,60068,1},{4738,60066,1}, {4737,60064,1},{4737,60066,1},{4735,60063,1},{4737,60063,1},{4737,60061,1}, {4738,60059,1},{4737,60054,1},{4742,60058,1},{4737,60053,1},{4738,60051,1}, {4742,60053,1},{4735,60048,1},{4733,60044,1},{4730,60043,1},{4728,60039,1}, {4728,60038,1},{4722,60031,1},{4717,60034,1},{4715,60029,1},{4717,60029,1}, {4720,60028,1},{4717,60023,1},{4717,60028,1},{4708,60029,1},{4708,60026,1}, {4707,60026,1},{4705,60023,1},{4700,60021,1},{4702,60018,1},{4707,60019,1}, {4707,60016,1},{4700,60018,1},{4695,60013,1},{4693,60013,1},{4690,60008,1}, {4690,59999,1},{4688,60001,1},{4687,59998,1},{4688,59989,1},{4693,59989,1}, {4692,59984,1},{4693,59984,1},{4693,59983,1},{4690,59981,1},{4692,59979,1}, {4688,59976,1},{4687,59973,1},{4687,59963,1},{4685,59963,1},{4687,59961,1}, {4687,59953,1},{4692,59939,1},{4693,59938,1},{4698,59939,1},{4707,59949,1}, {4708,59954,1},{4710,59959,1},{4708,59969,1},{4710,59973,1},{4713,59986,1}, {4718,59991,1},{4727,60006,1},{4740,60009,1},{4745,60016,1},{4748,60026,1}, {4750,60041,1},{4753,60041,1},{4753,60046,1},{4755,60051,1},{4758,60053,1}, {4757,60048,1},{4760,60051,1},{4767,60066,1},{4767,60059,1},{4768,60059,1}, {4767,60058,1},{4760,60041,1},{4758,60029,1},{4760,60028,1},{4767,60033,1}, {4778,60043,1},{4772,60034,1},{4768,60033,1},{4762,60026,1},{4758,60024,1}, {4760,60021,1},{4767,60023,1},{4763,60018,1},{4767,60004,1},{4765,59999,1}, {4768,59998,1},{4770,60001,1},{4773,60001,1},{4772,59998,1},{4768,59996,1}, {4772,59993,1},{4767,59993,1},{4765,59989,1},{4762,59989,1},{4763,59994,1}, {4762,59996,1},{4758,59993,1},{4758,59998,1},{4753,59994,1},{4752,59996,1}, {4748,59994,1},{4747,59993,1},{4747,59984,1},{4740,59978,1},{4740,59976,1}, {4745,59978,1},{4743,59969,1},{4752,59978,1},{4753,59973,1},{4752,59971,1}, {4752,59973,1},{4750,59971,1},{4750,59964,1},{4747,59966,1},{4745,59959,1}, {4753,59959,1},{4747,59956,1},{4747,59953,1},{4747,59951,1},{4747,59948,1}, {4743,59943,1},{4758,59961,1},{4755,59954,1},{4757,59954,1},{4753,59949,1}, {4750,59934,1},{4747,59926,1},{4750,59919,1},{4752,59919,1},{4757,59944,1}, {4767,59973,1},{4767,59968,1},{4762,59953,1},{4765,59944,1},{4768,59944,1}, {4773,59953,1},{4775,59953,1},{4780,59956,1},{4783,59954,1},{4787,59959,1}, {4788,59956,1},{4792,59963,1},{4795,59959,1},{4793,59959,1},{4790,59954,1}, {4788,59954,1},{4787,59953,1},{4780,59951,1},{4777,59946,1},{4775,59938,1}, {4770,59931,1},{4770,59926,1},{4772,59924,1},{4777,59931,1},{4775,59926,1}, {4777,59924,1},{4782,59923,1},{4783,59921,1},{4775,59924,1},{4772,59919,1}, {4772,59921,1},{4768,59923,1},{4768,59918,1},{4763,59919,1},{4763,59916,1}, {4765,59914,1},{4763,59913,1},{4763,59906,1},{4770,59908,1},{4775,59904,1}, {4770,59903,1},{4768,59904,1},{4763,59904,1},{4760,59901,1},{4762,59868,1}, {4762,59866,1},{4760,59869,1},{4758,59873,1},{4757,59869,1},{4760,59863,1}, {4763,59861,1},{4758,59861,1},{4757,59866,1},{4753,59858,1},{4753,59856,1}, {4752,59853,1},{4753,59851,1},{4755,59851,1},{4753,59849,1},{4755,59846,1}, {4758,59836,1},{4757,59823,1},{4758,59819,1},{4760,59823,1},{4763,59819,1}, {4760,59818,1},{4760,59811,1},{4758,59806,1},{4760,59803,1},{4763,59803,1}, {4762,59796,1},{4763,59794,1},{4763,59784,1},{4765,59783,1},{4763,59781,1}, {4760,59771,1},{4763,59769,1},{4765,59763,1},{4762,59759,1},{4765,59751,1}, {4765,59744,1},{4770,59748,1},{4770,59744,1},{4767,59741,1},{4770,59733,1}, {4767,59729,1},{4770,59729,1},{4767,59716,1},{4765,59714,1},{4767,59708,1}, {4765,59701,1},{4772,59703,1},{4775,59709,1},{4775,59703,1},{4772,59699,1}, {4767,59698,1},{4763,59693,1},{4765,59689,1},{4765,59686,1},{4767,59683,1}, {4763,59683,1},{4763,59678,1},{4762,59676,1},{4762,59673,1},{4763,59673,1}, {4760,59668,1},{4760,59646,1},{4757,59639,1},{4758,59638,1},{4757,59624,1}, {4755,59624,1},{4758,59616,1},{4757,59613,1},{4760,59611,1},{4762,59606,1}, {4772,59606,1},{4775,59608,1},{4777,59604,1},{4782,59603,1},{4792,59596,129}, {4793,59604,1},{4797,59606,1},{4803,59614,1},{4810,59631,1},{4812,59638,1}, {4818,59644,1},{4832,59666,1},{4837,59669,1},{4840,59673,1},{4843,59678,1}, {4845,59686,1},{4840,59676,1},{4843,59689,1},{4848,59694,1},{4852,59709,1}, {4853,59706,1},{4852,59698,1},{4850,59693,1},{4852,59689,1},{4850,59684,1}, {4852,59681,1},{4853,59679,1},{4855,59668,1},{4852,59653,1},{4852,59633,1}, {4847,59611,1},{4848,59609,1},{4852,59613,1},{4855,59614,1},{4860,59623,1}, {4870,59646,1},{4878,59659,1},{4865,59643,1},{4862,59641,1},{4858,59646,1}, {4855,59646,1},{4858,59651,1},{4863,59651,1},{4857,59654,1},{4857,59661,1}, {4857,59664,1},{4863,59669,1},{4868,59668,1},{4875,59671,1},{4877,59674,1}, {4882,59676,1},{4887,59681,1},{4893,59686,1},{4900,59686,1},{4903,59691,1}, {4912,59694,1},{4915,59701,1},{4912,59701,1},{4910,59699,1},{4910,59701,1}, {4908,59699,1},{4905,59699,1},{4907,59708,1},{4905,59721,1},{4900,59724,1}, {4898,59729,1},{4895,59739,1},{4897,59748,1},{4898,59746,1},{4898,59739,1}, {4898,59733,1},{4900,59731,1},{4903,59726,1},{4912,59721,1},{4913,59724,1}, {4912,59731,1},{4913,59738,1},{4912,59743,1},{4918,59751,1},{4915,59743,1}, {4917,59739,1},{4918,59744,1},{4915,59731,1},{4915,59726,1},{4918,59726,1}, {4918,59738,1},{4923,59743,1},{4922,59733,1},{4923,59716,1},{4930,59713,1}, {4940,59714,1},{4947,59721,1},{4955,59734,1},{4955,59739,1},{4953,59743,1}, {4950,59744,1},{4947,59744,1},{4943,59748,1},{4945,59748,1},{4948,59746,1}, {4950,59749,1},{4945,59761,1},{4947,59766,1},{4950,59758,1},{4957,59754,1}, {4953,59751,1},{4952,59749,1},{4960,59744,1},{4960,59741,1},{4972,59743,1}, {4983,59753,1},{5017,59776,1},{5022,59776,1},{5033,59784,1},{5037,59783,1}, {5048,59791,1},{5053,59798,1},{5058,59799,1},{5062,59804,1},{5060,59813,1}, {5062,59821,1},{5063,59819,1},{5062,59809,1},{5063,59808,1},{5063,59813,1}, {5063,59806,1},{5068,59803,1},{5070,59796,1},{5072,59801,1},{5072,59804,1}, {5073,59813,1},{5075,59816,1},{5075,59821,1},{5078,59828,1},{5087,59838,1}, {5092,59839,1},{5092,59843,1},{5093,59841,1},{5093,59838,1},{5095,59838,1}, {5095,59839,1},{5097,59839,1},{5097,59833,1},{5100,59831,1},{5102,59828,1}, {5102,59836,1},{5100,59836,1},{5098,59838,1},{5102,59846,1},{5105,59838,1}, {5107,59846,1},{5112,59849,1},{5113,59858,1},{5118,59856,1},{5120,59861,1}, {5123,59856,1},{5127,59861,1},{5132,59864,1},{5137,59874,1},{5142,59889,1}, {5142,59894,1},{5152,59919,1},{5152,59924,1},{5163,59946,1},{5162,59949,1}, {5162,59954,1},{5157,59948,1},{5155,59948,1},{5155,59953,1},{5150,59948,1}, {5150,59963,1},{5147,59974,1},{5148,59976,1},{5150,59968,1},{5153,59968,1}, {5153,59964,1},{5155,59963,1},{5158,59964,1},{5155,59964,1},{5158,59968,1}, {5160,59974,1},{5318,57428,129},{5312,57439,1},{5307,57441,1},{5302,57451,1}, {5293,57459,1},{5277,57469,1},{5270,57466,1},{5275,57434,1},{5283,57409,1}, {5287,57398,1},{5287,57386,1},{5293,57359,1},{5297,57343,1},{5302,57329,1}, {5312,57339,1},{5318,57351,1},{5318,57361,1},{5320,57369,1},{5322,57399,1}, {5320,57411,1},{5320,57426,1},{5318,57428,1},{4983,59186,129},{4978,59223,1}, {4973,59241,1},{4970,59246,1},{4970,59251,1},{4967,59261,1},{4967,59266,1}, {4963,59273,1},{4958,59284,1},{4950,59296,1},{4945,59311,1},{4942,59316,1}, {4938,59328,1},{4938,59334,1},{4935,59343,1},{4935,59348,1},{4932,59354,1}, {4928,59354,1},{4928,59358,1},{4925,59358,1},{4915,59369,1},{4912,59366,1}, {4908,59366,1},{4908,59359,1},{4907,59354,1},{4908,59346,1},{4907,59341,1}, {4908,59323,1},{4907,59313,1},{4907,59309,1},{4913,59291,1},{4915,59264,1}, {4923,59228,1},{4928,59213,1},{4932,59208,1},{4938,59178,1},{4940,59179,1}, {4945,59174,1},{4950,59174,1},{4955,59168,1},{4963,59153,1},{4972,59133,1}, {4975,59113,1},{4978,59104,1},{4982,59099,1},{4982,59098,1},{4980,59098,1}, {4978,59098,1},{4987,59084,1},{4990,59091,1},{4993,59111,1},{4995,59116,1}, {4992,59133,1},{4988,59143,1},{4983,59186,1},{4685,59504,129},{4672,59503,1}, {4668,59501,1},{4667,59496,1},{4665,59501,1},{4663,59498,1},{4660,59501,1}, {4655,59496,1},{4640,59489,1},{4637,59484,1},{4628,59481,1},{4625,59478,1}, {4620,59474,1},{4620,59478,1},{4627,59481,1},{4632,59489,1},{4633,59494,1}, {4632,59494,1},{4628,59494,1},{4610,59471,1},{4608,59466,1},{4610,59464,1}, {4608,59461,1},{4605,59449,1},{4608,59451,1},{4608,59448,1},{4598,59439,1}, {4595,59428,1},{4595,59424,1},{4592,59424,1},{4593,59436,1},{4597,59438,1}, {4602,59446,1},{4603,59449,1},{4603,59454,1},{4607,59461,1},{4605,59463,1}, {4598,59456,1},{4593,59456,1},{4590,59448,1},{4590,59429,1},{4588,59431,1}, {4587,59428,1},{4585,59428,1},{4588,59439,1},{4585,59444,1},{4585,59439,1}, {4582,59443,1},{4582,59436,1},{4582,59434,1},{4577,59424,1},{4575,59423,1}, {4573,59424,1},{4570,59421,1},{4568,59428,1},{4570,59431,1},{4575,59444,1}, {4572,59454,1},{4570,59456,1},{4565,59451,1},{4563,59453,1},{4565,59453,1}, {4567,59459,1},{4568,59459,1},{4567,59463,1},{4570,59463,1},{4572,59463,1}, {4575,59461,1},{4578,59464,1},{4580,59469,1},{4587,59476,1},{4592,59484,1}, {4593,59489,1},{4600,59496,1},{4595,59484,1},{4595,59481,1},{4593,59479,1}, {4592,59474,1},{4588,59468,1},{4590,59464,1},{4592,59461,1},{4593,59458,1}, {4595,59458,1},{4610,59488,1},{4618,59498,1},{4622,59506,1},{4623,59506,1}, {4622,59503,1},{4622,59496,1},{4610,59481,1},{4607,59473,1},{4607,59471,1}, {4623,59489,1},{4632,59501,1},{4632,59508,1},{4627,59511,1},{4623,59516,1}, {4615,59508,1},{4617,59513,1},{4613,59514,1},{4615,59516,1},{4620,59516,1}, {4625,59523,1},{4623,59533,1},{4620,59528,1},{4620,59541,1},{4615,59543,1}, {4618,59548,1},{4617,59554,1},{4615,59551,1},{4610,59548,1},{4608,59548,1}, {4610,59554,1},{4603,59546,1},{4603,59541,1},{4602,59539,1},{4600,59544,1}, {4600,59554,1},{4598,59553,1},{4595,59556,1},{4593,59556,1},{4593,59548,1}, {4590,59543,1},{4590,59539,1},{4587,59536,1},{4587,59523,1},{4583,59519,1}, {4582,59529,1},{4580,59529,1},{4577,59519,1},{4570,59513,1},{4568,59504,1}, {4563,59496,1},{4563,59489,1},{4563,59488,1},{4562,59486,1},{4560,59476,1}, {4557,59469,1},{4557,59463,1},{4558,59461,1},{4560,59451,1},{4562,59451,1}, {4563,59449,1},{4562,59446,1},{4562,59441,1},{4560,59439,1},{4562,59434,1}, {4558,59434,1},{4555,59419,1},{4558,59421,1},{4558,59416,1},{4560,59414,1}, {4558,59414,1},{4557,59409,1},{4553,59408,1},{4555,59404,1},{4567,59393,1}, {4583,59386,1},{4588,59388,1},{4593,59384,1},{4603,59381,1},{4607,59388,1}, {4615,59391,1},{4620,59399,1},{4623,59408,1},{4642,59421,1},{4645,59426,1}, {4652,59429,1},{4657,59433,1},{4660,59431,1},{4663,59433,1},{4663,59434,1}, {4658,59434,1},{4665,59439,1},{4680,59449,1},{4682,59456,1},{4688,59466,1}, {4702,59474,1},{4703,59478,1},{4702,59483,1},{4700,59488,1},{4702,59494,1}, {4702,59498,1},{4700,59498,1},{4690,59486,1},{4690,59491,1},{4687,59491,1}, {4687,59504,1},{4685,59504,1},{4763,59396,129},{4763,59398,1},{4762,59398,1}, {4760,59393,1},{4755,59386,1},{4755,59381,1},{4762,59389,1},{4762,59381,1}, {4742,59351,1},{4743,59358,1},{4747,59361,1},{4748,59364,1},{4753,59369,1}, {4755,59376,1},{4748,59366,1},{4740,59359,1},{4740,59353,1},{4735,59349,1}, {4733,59343,1},{4727,59341,1},{4727,59344,1},{4727,59346,1},{4723,59354,1}, {4727,59358,1},{4723,59356,1},{4722,59351,1},{4723,59348,1},{4722,59341,1}, {4723,59334,1},{4732,59341,1},{4740,59343,1},{4743,59351,1},{4763,59383,1}, {4763,59396,1},{4703,59138,129},{4695,59136,1},{4688,59139,1},{4685,59134,1}, {4682,59133,1},{4680,59131,1},{4682,59129,1},{4678,59128,1},{4675,59129,1}, {4675,59139,1},{4672,59138,1},{4665,59148,1},{4662,59148,1},{4662,59144,1}, {4660,59146,1},{4660,59149,1},{4663,59149,1},{4662,59153,1},{4658,59153,1}, {4657,59151,1},{4652,59148,1},{4650,59143,1},{4648,59143,1},{4650,59148,1}, {4650,59151,1},{4652,59153,1},{4650,59154,1},{4647,59153,1},{4645,59153,1}, {4643,59164,1},{4645,59166,1},{4648,59164,1},{4650,59163,1},{4652,59166,1}, {4653,59163,1},{4655,59164,1},{4657,59171,1},{4652,59188,1},{4648,59186,1}, {4647,59191,1},{4650,59194,1},{4652,59191,1},{4650,59204,1},{4645,59206,1}, {4642,59213,1},{4640,59213,1},{4643,59214,1},{4642,59229,1},{4643,59251,1}, {4642,59253,1},{4643,59254,1},{4645,59261,1},{4643,59278,1},{4645,59266,1}, {4648,59289,1},{4648,59326,1},{4645,59339,1},{4635,59319,1},{4635,59313,1}, {4638,59308,1},{4633,59309,1},{4635,59301,1},{4632,59303,1},{4630,59296,1}, {4628,59299,1},{4627,59299,1},{4627,59286,1},{4625,59293,1},{4622,59294,1}, {4622,59284,1},{4623,59278,1},{4620,59284,1},{4618,59286,1},{4620,59278,1}, {4618,59279,1},{4618,59276,1},{4617,59283,1},{4612,59281,1},{4612,59288,1}, {4613,59288,1},{4615,59284,1},{4615,59289,1},{4608,59291,1},{4605,59289,1}, {4605,59283,1},{4603,59279,1},{4602,59286,1},{4602,59289,1},{4600,59289,1}, {4597,59283,1},{4597,59263,1},{4595,59261,1},{4597,59253,1},{4600,59248,1}, {4600,59249,1},{4605,59243,1},{4605,59248,1},{4607,59246,1},{4607,59233,1}, {4610,59244,1},{4613,59249,1},{4615,59248,1},{4613,59241,1},{4615,59241,1}, {4618,59243,1},{4620,59241,1},{4618,59238,1},{4617,59238,1},{4622,59224,1}, {4625,59229,1},{4627,59229,1},{4627,59231,1},{4628,59233,1},{4630,59236,1}, {4632,59239,1},{4630,59231,1},{4623,59224,1},{4627,59216,1},{4622,59219,1}, {4620,59209,1},{4618,59213,1},{4620,59218,1},{4622,59219,1},{4620,59223,1}, {4617,59214,1},{4613,59213,1},{4618,59194,1},{4622,59188,1},{4620,59184,1}, {4622,59174,1},{4625,59166,1},{4628,59166,1},{4633,59154,1},{4635,59156,1}, {4633,59158,1},{4637,59156,1},{4635,59164,1},{4638,59159,1},{4638,59163,1}, {4640,59161,1},{4640,59148,1},{4642,59143,1},{4640,59138,1},{4640,59124,1}, {4643,59123,1},{4645,59124,1},{4645,59126,1},{4653,59124,1},{4655,59129,1}, {4657,59128,1},{4657,59131,1},{4658,59128,1},{4663,59129,1},{4658,59123,1}, {4663,59114,1},{4663,59096,1},{4670,59094,1},{4675,59098,1},{4682,59109,1}, {4690,59113,1},{4695,59118,1},{4702,59131,1},{4707,59136,1},{4703,59138,1}, {4588,57371,129},{4587,57371,1},{4580,57366,1},{4580,57376,1},{4580,57378,1}, {4577,57376,1},{4572,57371,1},{4570,57371,1},{4565,57366,1},{4560,57364,1}, {4560,57361,1},{4555,57356,1},{4552,57351,1},{4553,57344,1},{4557,57343,1}, {4555,57341,1},{4557,57336,1},{4560,57344,1},{4558,57344,1},{4558,57346,1}, {4562,57349,1},{4568,57361,1},{4570,57359,1},{4568,57351,1},{4562,57343,1}, {4560,57338,1},{4557,57334,1},{4558,57326,1},{4560,57326,1},{4562,57318,1}, {4565,57309,1},{4567,57308,1},{4567,57304,1},{4570,57299,1},{4570,57289,1}, {4575,57283,1},{4577,57273,1},{4580,57268,1},{4578,57264,1},{4580,57261,1}, {4578,57259,1},{4580,57254,1},{4580,57253,1},{4580,57249,1},{4582,57241,1}, {4583,57241,1},{4583,57234,1},{4585,57233,1},{4585,57231,1},{4587,57226,1}, {4587,57216,1},{4588,57213,1},{4593,57214,1},{4597,57218,1},{4595,57224,1}, {4592,57228,1},{4597,57231,1},{4595,57234,1},{4593,57238,1},{4595,57241,1}, {4597,57241,1},{4597,57249,1},{4600,57251,1},{4598,57256,1},{4597,57254,1}, {4592,57251,1},{4590,57254,1},{4588,57258,1},{4585,57261,1},{4587,57269,1}, {4583,57273,1},{4585,57274,1},{4585,57278,1},{4578,57283,1},{4585,57284,1}, {4587,57283,1},{4585,57279,1},{4587,57281,1},{4588,57276,1},{4590,57278,1}, {4592,57283,1},{4595,57286,1},{4593,57289,1},{4592,57289,1},{4597,57293,1}, {4598,57306,1},{4593,57308,1},{4595,57314,1},{4583,57319,1},{4585,57323,1}, {4593,57326,1},{4597,57333,1},{4598,57338,1},{4598,57343,1},{4595,57348,1}, {4590,57346,1},{4588,57353,1},{4587,57354,1},{4578,57351,1},{4573,57358,1}, {4582,57358,1},{4590,57366,1},{4590,57369,1},{4588,57371,1},{6828,58813,129}, {6825,58803,1},{6818,58803,1},{6815,58798,1},{6817,58779,1},{6817,58776,1}, {6812,58796,1},{6817,58806,1},{6825,58809,1},{6828,58823,1},{6830,58834,1}, {6827,58841,1},{6823,58859,1},{6817,58851,1},{6813,58854,1},{6807,58839,1}, {6802,58841,1},{6810,58853,1},{6813,58864,1},{6813,58869,1},{6805,58868,1}, {6798,58863,1},{6802,58871,1},{6815,58876,1},{6813,58904,1},{6808,58899,1}, {6808,58888,1},{6808,58909,1},{6808,58911,1},{6803,58914,1},{6802,58918,1}, {6798,58904,1},{6790,58896,1},{6787,58896,1},{6785,58889,1},{6788,58869,1}, {6787,58861,1},{6782,58886,1},{6783,58896,1},{6777,58898,1},{6790,58903,1}, {6795,58908,1},{6798,58918,1},{6798,58923,1},{6803,58941,1},{6815,58939,1}, {6817,58944,1},{6810,58951,1},{6808,58946,1},{6807,58951,1},{6795,58933,1}, {6788,58943,1},{6780,58934,1},{6763,58936,1},{6777,58943,1},{6782,58941,1}, {6787,58956,1},{6792,58959,1},{6795,58954,1},{6797,58956,1},{6797,58959,1}, {6797,58963,1},{6800,58969,1},{6800,58989,1},{6797,58991,1},{6785,58984,1}, {6778,58974,1},{6775,58979,1},{6770,58993,1},{6760,59001,1},{6760,59004,1}, {6770,58999,1},{6778,58981,1},{6782,58988,1},{6792,58994,1},{6795,59018,1}, {6798,59023,1},{6803,59019,1},{6802,59024,1},{6803,59028,1},{6805,59034,1}, {6798,59064,1},{6797,59063,1},{6793,59051,1},{6793,59029,1},{6792,59041,1}, {6783,59031,1},{6785,59024,1},{6778,59023,1},{6783,59031,1},{6782,59034,1}, {6778,59036,1},{6775,59031,1},{6775,59023,1},{6772,59019,1},{6765,59016,1}, {6763,59018,1},{6765,59019,1},{6772,59023,1},{6773,59034,1},{6777,59034,1}, {6778,59044,1},{6778,59054,1},{6772,59054,1},{6768,59049,1},{6770,59058,1}, {6782,59061,1},{6783,59071,1},{6780,59088,1},{6775,59091,1},{6777,59098,1}, {6777,59099,1},{6770,59096,1},{6770,59078,1},{6767,59073,1},{6770,59099,1}, {6773,59104,1},{6767,59116,1},{6763,59114,1},{6762,59108,1},{6760,59114,1}, {6762,59128,1},{6760,59129,1},{6755,59126,1},{6753,59133,1},{6752,59131,1}, {6752,59126,1},{6748,59123,1},{6747,59113,1},{6747,59093,1},{6745,59106,1}, {6747,59124,1},{6747,59134,1},{6742,59141,1},{6737,59143,1},{6733,59141,1}, {6733,59136,1},{6730,59146,1},{6732,59099,1},{6737,59059,1},{6735,59056,1}, {6733,59064,1},{6730,59094,1},{6730,59113,1},{6725,59101,1},{6725,59076,1}, {6722,59058,1},{6720,59054,1},{6718,59058,1},{6723,59078,1},{6723,59108,1}, {6727,59119,1},{6727,59139,1},{6722,59134,1},{6720,59118,1},{6713,59074,1}, {6708,59068,1},{6700,59068,1},{6702,59073,1},{6708,59074,1},{6712,59081,1}, {6715,59104,1},{6718,59121,1},{6718,59139,1},{6720,59146,1},{6723,59148,1}, {6723,59156,1},{6722,59161,1},{6723,59168,1},{6723,59178,1},{6722,59191,1}, {6717,59191,1},{6710,59183,1},{6703,59161,1},{6700,59156,1},{6697,59159,1}, {6700,59159,1},{6705,59168,1},{6708,59186,1},{6715,59196,1},{6720,59194,1}, {6728,59203,1},{6732,59209,1},{6730,59214,1},{6728,59214,1},{6725,59208,1}, {6728,59219,1},{6732,59216,1},{6733,59223,1},{6730,59234,1},{6722,59239,1}, {6717,59231,1},{6713,59214,1},{6710,59208,1},{6702,59214,1},{6697,59213,1}, {6690,59181,1},{6685,59181,1},{6683,59176,1},{6683,59156,1},{6682,59154,1}, {6680,59174,1},{6682,59183,1},{6683,59188,1},{6688,59186,1},{6692,59191,1}, {6690,59193,1},{6682,59196,1},{6672,59191,1},{6670,59194,1},{6682,59204,1}, {6687,59201,1},{6690,59203,1},{6690,59214,1},{6693,59223,1},{6693,59234,1}, {6697,59241,1},{6697,59251,1},{6682,59254,1},{6663,59246,1},{6667,59253,1}, {6672,59253,1},{6678,59263,1},{6683,59259,1},{6693,59259,1},{6695,59263,1}, {6695,59279,1},{6690,59286,1},{6685,59286,1},{6682,59294,1},{6678,59296,1}, {6673,59304,1},{6677,59306,1},{6685,59294,1},{6688,59291,1},{6693,59294,1}, {6695,59309,1},{6703,59308,1},{6705,59324,1},{6703,59336,1},{6692,59326,1}, {6690,59329,1},{6690,59334,1},{6697,59341,1},{6697,59351,1},{6693,59351,1}, {6695,59358,1},{6693,59363,1},{6690,59361,1},{6690,59356,1},{6690,59339,1}, {6687,59336,1},{6688,59354,1},{6687,59359,1},{6688,59364,1},{6687,59376,1}, {6683,59371,1},{6682,59363,1},{6682,59381,1},{6678,59388,1},{6675,59389,1}, {6673,59398,1},{6663,59409,1},{6660,59408,1},{6657,59401,1},{6658,59396,1}, {6653,59391,1},{6655,59376,1},{6665,59363,1},{6665,59348,1},{6670,59336,1}, {6665,59334,1},{6663,59324,1},{6663,59318,1},{6660,59324,1},{6665,59338,1}, {6660,59358,1},{6648,59378,1},{6645,59364,1},{6643,59358,1},{6645,59349,1}, {6642,59338,1},{6640,59343,1},{6642,59353,1},{6640,59364,1},{6642,59381,1}, {6638,59384,1},{6637,59389,1},{6637,59384,1},{6633,59381,1},{6635,59376,1}, {6632,59368,1},{6633,59358,1},{6630,59354,1},{6628,59346,1},{6633,59328,1}, {6632,59324,1},{6632,59316,1},{6633,59314,1},{6640,59313,1},{6642,59281,1}, {6645,59276,1},{6643,59273,1},{6640,59276,1},{6642,59266,1},{6640,59264,1}, {6638,59273,1},{6640,59288,1},{6637,59288,1},{6633,59296,1},{6630,59304,1}, {6622,59269,1},{6623,59268,1},{6625,59261,1},{6630,59258,1},{6633,59249,1}, {6633,59246,1},{6628,59254,1},{6623,59254,1},{6620,59264,1},{6620,59274,1}, {6622,59283,1},{6620,59288,1},{6618,59299,1},{6617,59299,1},{6615,59306,1}, {6615,59324,1},{6613,59324,1},{6613,59319,1},{6610,59319,1},{6610,59331,1}, {6608,59328,1},{6607,59334,1},{6607,59328,1},{6605,59326,1},{6605,59338,1}, {6602,59341,1},{6602,59338,1},{6602,59331,1},{6600,59328,1},{6602,59316,1}, {6597,59306,1},{6602,59298,1},{6602,59289,1},{6603,59284,1},{6602,59276,1}, {6605,59266,1},{6603,59258,1},{6607,59251,1},{6613,59246,1},{6613,59234,1}, {6612,59229,1},{6612,59241,1},{6612,59244,1},{6605,59248,1},{6602,59256,1}, {6602,59278,1},{6600,59284,1},{6598,59288,1},{6597,59294,1},{6593,59298,1}, {6592,59291,1},{6590,59293,1},{6590,59299,1},{6587,59298,1},{6582,59308,1}, {6578,59288,1},{6580,59283,1},{6582,59283,1},{6580,59278,1},{6582,59269,1}, {6587,59256,1},{6592,59251,1},{6588,59249,1},{6585,59254,1},{6583,59254,1}, {6582,59261,1},{6582,59266,1},{6575,59279,1},{6572,59278,1},{6577,59251,1}, {6572,59256,1},{6570,59268,1},{6568,59271,1},{6567,59276,1},{6558,59271,1}, {6560,59269,1},{6563,59269,1},{6563,59264,1},{6558,59263,1},{6560,59256,1}, {6563,59249,1},{6573,59248,1},{6575,59243,1},{6575,59239,1},{6572,59244,1}, {6563,59248,1},{6558,59239,1},{6558,59236,1},{6563,59233,1},{6565,59219,1}, {6563,59219,1},{6563,59216,1},{6585,59193,1},{6593,59189,1},{6593,59186,1}, {6588,59183,1},{6573,59199,1},{6572,59198,1},{6567,59201,1},{6568,59189,1}, {6567,59176,1},{6568,59166,1},{6567,59163,1},{6565,59169,1},{6563,59199,1}, {6560,59204,1},{6553,59201,1},{6552,59189,1},{6553,59186,1},{6560,59178,1}, {6558,59174,1},{6555,59179,1},{6553,59174,1},{6552,59183,1},{6548,59183,1}, {6548,59191,1},{6548,59194,1},{6543,59208,1},{6543,59193,1},{6547,59179,1}, {6547,59171,1},{6540,59189,1},{6540,59198,1},{6538,59184,1},{6538,59189,1}, {6537,59188,1},{6532,59199,1},{6530,59198,1},{6530,59203,1},{6528,59198,1}, {6530,59191,1},{6527,59191,1},{6527,59201,1},{6525,59203,1},{6523,59191,1}, {6522,59204,1},{6518,59203,1},{6520,59199,1},{6518,59184,1},{6517,59193,1}, {6515,59188,1},{6513,59203,1},{6512,59199,1},{6510,59193,1},{6507,59199,1}, {6505,59189,1},{6505,59198,1},{6503,59196,1},{6503,59189,1},{6500,59191,1}, {6497,59183,1},{6495,59186,1},{6488,59181,1},{6492,59171,1},{6493,59173,1}, {6495,59171,1},{6497,59176,1},{6500,59174,1},{6497,59163,1},{6498,59154,1}, {6502,59154,1},{6502,59159,1},{6503,59161,1},{6503,59171,1},{6505,59166,1}, {6503,59154,1},{6503,59149,1},{6510,59148,1},{6517,59156,1},{6518,59156,1}, {6518,59149,1},{6510,59141,1},{6510,59134,1},{6512,59129,1},{6507,59128,1}, {6505,59124,1},{6510,59116,1},{6510,59108,1},{6515,59114,1},{6520,59128,1}, {6520,59113,1},{6515,59104,1},{6520,59096,1},{6525,59098,1},{6528,59103,1}, {6530,59101,1},{6528,59098,1},{6527,59096,1},{6528,59096,1},{6538,59111,1}, {6543,59113,1},{6542,59108,1},{6535,59101,1},{6533,59094,1},{6530,59089,1}, {6518,59089,1},{6510,59081,1},{6513,59078,1},{6512,59073,1},{6515,59074,1}, {6515,59071,1},{6520,59074,1},{6517,59071,1},{6515,59063,1},{6520,59068,1}, {6523,59064,1},{6525,59071,1},{6525,59064,1},{6527,59063,1},{6523,59056,1}, {6525,59051,1},{6528,59046,1},{6528,59051,1},{6530,59044,1},{6532,59054,1}, {6532,59059,1},{6533,59068,1},{6533,59044,1},{6538,59059,1},{6540,59069,1}, {6543,59078,1},{6542,59091,1},{6548,59094,1},{6545,59089,1},{6545,59084,1}, {6547,59084,1},{6545,59074,1},{6547,59071,1},{6545,59069,1},{6543,59066,1}, {6542,59054,1},{6542,59049,1},{6540,59039,1},{6537,59036,1},{6538,59029,1}, {6542,59023,1},{6547,59023,1},{6548,59019,1},{6552,59043,1},{6558,59049,1}, {6558,59058,1},{6560,59053,1},{6563,59054,1},{6565,59064,1},{6567,59056,1}, {6565,59049,1},{6555,59039,1},{6553,59021,1},{6555,59014,1},{6560,59016,1}, {6555,59004,1},{6558,59003,1},{6560,59006,1},{6563,59006,1},{6563,59023,1}, {6567,59026,1},{6570,59039,1},{6572,59056,1},{6573,59056,1},{6572,59034,1}, {6565,59019,1},{6567,58999,1},{6567,58991,1},{6578,58998,1},{6573,58989,1}, {6575,58986,1},{6583,58991,1},{6592,59001,1},{6600,59043,1},{6597,59056,1}, {6597,59063,1},{6603,59051,1},{6610,59058,1},{6622,59064,1},{6628,59081,1}, {6632,59096,1},{6635,59101,1},{6633,59096,1},{6635,59089,1},{6632,59083,1}, {6630,59078,1},{6627,59064,1},{6620,59053,1},{6612,59051,1},{6608,59043,1}, {6607,59033,1},{6602,59013,1},{6603,59008,1},{6602,59006,1},{6598,58998,1}, {6597,58959,1},{6595,58948,1},{6597,58943,1},{6605,58939,1},{6610,58946,1}, {6610,58953,1},{6617,58973,1},{6630,58984,1},{6632,58989,1},{6632,58983,1}, {6635,58989,1},{6638,58988,1},{6633,58981,1},{6627,58979,1},{6618,58966,1}, {6617,58958,1},{6613,58951,1},{6610,58939,1},{6613,58921,1},{6617,58916,1}, {6620,58916,1},{6622,58909,1},{6625,58913,1},{6623,58918,1},{6628,58921,1}, {6623,58909,1},{6625,58904,1},{6627,58904,1},{6625,58901,1},{6627,58893,1}, {6620,58899,1},{6622,58886,1},{6628,58881,1},{6627,58889,1},{6632,58884,1}, {6635,58889,1},{6635,58879,1},{6637,58878,1},{6642,58893,1},{6638,58876,1}, {6637,58873,1},{6638,58859,1},{6638,58864,1},{6642,58866,1},{6645,58868,1}, {6645,58864,1},{6643,58863,1},{6645,58854,1},{6650,58858,1},{6653,58856,1}, {6653,58851,1},{6658,58864,1},{6660,58861,1},{6658,58849,1},{6665,58834,1}, {6665,58829,1},{6663,58831,1},{6657,58848,1},{6653,58836,1},{6653,58833,1}, {6652,58831,1},{6653,58821,1},{6652,58821,1},{6652,58828,1},{6648,58826,1}, {6650,58816,1},{6653,58818,1},{6657,58803,1},{6660,58803,1},{6657,58793,1}, {6660,58786,1},{6662,58784,1},{6662,58781,1},{6660,58784,1},{6657,58784,1}, {6660,58773,1},{6658,58773,1},{6657,58761,1},{6655,58766,1},{6655,58799,1}, {6652,58808,1},{6647,58809,1},{6645,58821,1},{6638,58823,1},{6637,58819,1}, {6640,58813,1},{6640,58801,1},{6643,58801,1},{6642,58794,1},{6638,58804,1}, {6635,58816,1},{6630,58824,1},{6630,58811,1},{6628,58809,1},{6628,58803,1}, {6632,58799,1},{6630,58796,1},{6630,58794,1},{6632,58791,1},{6635,58791,1}, {6635,58786,1},{6638,58786,1},{6642,58773,1},{6645,58773,1},{6643,58768,1}, {6645,58763,1},{6647,58754,1},{6652,58751,1},{6648,58748,1},{6652,58744,1}, {6650,58736,1},{6645,58749,1},{6642,58751,1},{6635,58759,1},{6632,58763,1}, {6628,58766,1},{6625,58763,1},{6623,58769,1},{6618,58781,1},{6618,58788,1}, {6615,58789,1},{6612,58806,1},{6605,58811,1},{6603,58819,1},{6600,58814,1}, {6600,58804,1},{6598,58811,1},{6595,58813,1},{6593,58819,1},{6592,58816,1}, {6593,58808,1},{6592,58801,1},{6595,58794,1},{6592,58794,1},{6590,58789,1}, {6590,58776,1},{6593,58768,1},{6597,58761,1},{6593,58763,1},{6588,58766,1}, {6588,58756,1},{6590,58743,1},{6598,58738,1},{6600,58733,1},{6607,58733,1}, {6608,58739,1},{6615,58713,1},{6622,58708,1},{6622,58701,1},{6617,58703,1}, {6618,58698,1},{6627,58691,1},{6630,58686,1},{6630,58683,1},{6622,58688,1}, {6620,58683,1},{6618,58651,1},{6617,58678,1},{6618,58683,1},{6618,58691,1}, {6613,58698,1},{6607,58711,1},{6608,58714,1},{6612,58709,1},{6612,58714,1}, {6613,58714,1},{6612,58723,1},{6608,58726,1},{6608,58733,1},{6598,58729,1}, {6598,58726,1},{6602,58726,1},{6602,58723,1},{6602,58716,1},{6598,58724,1}, {6597,58724,1},{6597,58716,1},{6603,58701,1},{6600,58704,1},{6595,58718,1}, {6597,58706,1},{6595,58704,1},{6592,58703,1},{6590,58708,1},{6592,58716,1}, {6590,58718,1},{6592,58719,1},{6593,58721,1},{6592,58723,1},{6587,58721,1}, {6585,58718,1},{6583,58728,1},{6580,58716,1},{6578,58726,1},{6578,58734,1}, {6580,58741,1},{6578,58748,1},{6582,58749,1},{6582,58754,1},{6577,58754,1}, {6575,58741,1},{6570,58738,1},{6570,58749,1},{6563,58749,1},{6562,58744,1}, {6563,58738,1},{6562,58738,1},{6560,58744,1},{6558,58741,1},{6560,58738,1}, {6557,58729,1},{6555,58734,1},{6557,58739,1},{6557,58741,1},{6548,58733,1}, {6558,58749,1},{6558,58756,1},{6563,58763,1},{6567,58779,1},{6565,58788,1}, {6567,58789,1},{6567,58803,1},{6562,58811,1},{6558,58803,1},{6557,58808,1}, {6553,58809,1},{6555,58801,1},{6553,58798,1},{6553,58794,1},{6552,58796,1}, {6552,58803,1},{6550,58803,1},{6550,58789,1},{6547,58799,1},{6545,58801,1}, {6547,58808,1},{6545,58813,1},{6547,58821,1},{6547,58828,1},{6545,58831,1}, {6543,58824,1},{6543,58831,1},{6537,58824,1},{6537,58804,1},{6535,58803,1}, {6535,58794,1},{6533,58794,1},{6532,58803,1},{6533,58806,1},{6535,58809,1}, {6533,58816,1},{6532,58824,1},{6527,58819,1},{6525,58828,1},{6523,58821,1}, {6522,58819,1},{6522,58824,1},{6520,58824,1},{6522,58833,1},{6520,58838,1}, {6523,58843,1},{6510,58839,1},{6510,58831,1},{6507,58826,1},{6508,58838,1}, {6508,58841,1},{6505,58839,1},{6507,58846,1},{6510,58848,1},{6515,58853,1}, {6518,58863,1},{6512,58861,1},{6510,58853,1},{6508,58856,1},{6505,58856,1}, {6505,58844,1},{6503,58851,1},{6507,58859,1},{6505,58859,1},{6500,58858,1}, {6500,58863,1},{6497,58861,1},{6493,58853,1},{6493,58859,1},{6492,58863,1}, {6487,58859,1},{6485,58863,1},{6477,58866,1},{6478,58873,1},{6482,58868,1}, {6495,58871,1},{6503,58868,1},{6502,58883,1},{6495,58883,1},{6498,58888,1}, {6493,58888,1},{6492,58898,1},{6493,58899,1},{6493,58903,1},{6487,58904,1}, {6490,58909,1},{6487,58921,1},{6477,58916,1},{6477,58903,1},{6475,58916,1}, {6468,58914,1},{6468,58921,1},{6478,58924,1},{6485,58934,1},{6478,58934,1}, {6475,58933,1},{6470,58933,1},{6472,58936,1},{6477,58936,1},{6475,58941,1}, {6467,58946,1},{6463,58954,1},{6465,58956,1},{6473,58946,1},{6475,58951,1}, {6480,58943,1},{6483,58948,1},{6483,58944,1},{6488,58941,1},{6488,58946,1}, {6487,58949,1},{6488,58951,1},{6487,58958,1},{6480,58958,1},{6485,58963,1}, {6482,58969,1},{6480,58969,1},{6473,58961,1},{6468,58966,1},{6473,58964,1}, {6477,58971,1},{6472,58981,1},{6470,58978,1},{6463,58978,1},{6460,58969,1}, {6458,58961,1},{6457,58964,1},{6450,58963,1},{6448,58966,1},{6450,58981,1}, {6448,58986,1},{6447,58986,1},{6448,58989,1},{6453,58999,1},{6450,59003,1}, {6448,58999,1},{6447,58994,1},{6443,58996,1},{6448,59003,1},{6447,59008,1}, {6448,59008,1},{6452,59009,1},{6453,59014,1},{6448,59013,1},{6452,59023,1}, {6450,59024,1},{6448,59018,1},{6448,59028,1},{6442,59028,1},{6438,59018,1}, {6440,59011,1},{6438,59009,1},{6437,59016,1},{6435,59018,1},{6430,59014,1}, {6428,59006,1},{6430,58998,1},{6432,58984,1},{6430,58969,1},{6430,58974,1}, {6430,58993,1},{6428,58994,1},{6428,58989,1},{6427,58993,1},{6427,58983,1}, {6425,58981,1},{6425,59003,1},{6422,58999,1},{6420,59011,1},{6420,59004,1}, {6415,58998,1},{6415,59003,1},{6418,59009,1},{6415,59016,1},{6413,59016,1}, {6413,59019,1},{6412,59018,1},{6410,59024,1},{6407,59016,1},{6407,59031,1}, {6403,59023,1},{6403,59014,1},{6402,59024,1},{6402,59026,1},{6402,59033,1}, {6402,59041,1},{6400,59044,1},{6397,59041,1},{6398,59048,1},{6402,59054,1}, {6402,59059,1},{6400,59061,1},{6403,59066,1},{6403,59069,1},{6397,59073,1}, {6397,59066,1},{6390,59048,1},{6387,59048,1},{6385,59043,1},{6385,59039,1}, {6382,59038,1},{6377,59041,1},{6375,59061,1},{6375,59066,1},{6367,59084,1}, {6362,59084,1},{6360,59078,1},{6358,59083,1},{6357,59081,1},{6350,59084,1}, {6347,59081,1},{6345,59086,1},{6342,59086,1},{6340,59081,1},{6342,59076,1}, {6342,59073,1},{6338,59078,1},{6337,59084,1},{6330,59084,1},{6332,59074,1}, {6330,59079,1},{6328,59088,1},{6325,59083,1},{6327,59078,1},{6325,59074,1}, {6323,59073,1},{6325,59071,1},{6328,59064,1},{6330,59064,1},{6332,59059,1}, {6337,59058,1},{6338,59061,1},{6340,59056,1},{6350,59053,1},{6357,59043,1}, {6363,59041,1},{6367,59029,1},{6373,59024,1},{6377,59016,1},{6378,59016,1}, {6377,59021,1},{6380,59016,1},{6380,59006,1},{6373,59018,1},{6372,59023,1}, {6365,59028,1},{6360,59038,1},{6355,59026,1},{6345,59031,1},{6343,59021,1}, {6343,59031,1},{6340,59024,1},{6340,59033,1},{6335,59041,1},{6323,59046,1}, {6325,59041,1},{6332,59031,1},{6330,59029,1},{6327,59036,1},{6325,59034,1}, {6325,59029,1},{6328,59024,1},{6328,59021,1},{6323,59028,1},{6323,59036,1}, {6322,59039,1},{6320,59036,1},{6322,59031,1},{6322,59028,1},{6317,59031,1}, {6318,59044,1},{6317,59044,1},{6317,59049,1},{6313,59046,1},{6313,59054,1}, {6312,59058,1},{6308,59059,1},{6308,59049,1},{6307,59059,1},{6303,59059,1}, {6303,59054,1},{6302,59058,1},{6298,59059,1},{6297,59051,1},{6295,59059,1}, {6292,59063,1},{6295,59066,1},{6290,59073,1},{6290,59064,1},{6287,59059,1}, {6287,59048,1},{6290,59039,1},{6293,59028,1},{6300,59023,1},{6297,59021,1}, {6292,59024,1},{6295,59018,1},{6297,59011,1},{6300,59009,1},{6297,59008,1}, {6292,59018,1},{6290,59016,1},{6272,59038,1},{6263,59043,1},{6265,59038,1}, {6263,59038,1},{6262,59038,1},{6258,59029,1},{6257,59018,1},{6267,59006,1}, {6270,59009,1},{6268,59003,1},{6267,59003,1},{6268,59001,1},{6275,59004,1}, {6278,59011,1},{6277,59003,1},{6278,58999,1},{6282,58999,1},{6283,59011,1}, {6283,59003,1},{6293,59003,1},{6282,58996,1},{6282,58993,1},{6283,58991,1}, {6282,58989,1},{6282,58979,1},{6283,58973,1},{6290,58969,1},{6288,58966,1}, {6290,58963,1},{6293,58961,1},{6298,58968,1},{6305,58963,1},{6297,58961,1}, {6295,58954,1},{6293,58954,1},{6287,58958,1},{6292,58948,1},{6292,58941,1}, {6293,58939,1},{6303,58953,1},{6300,58943,1},{6297,58939,1},{6300,58931,1}, {6302,58929,1},{6305,58931,1},{6303,58923,1},{6308,58919,1},{6313,58908,1}, {6312,58908,1},{6308,58914,1},{6303,58916,1},{6298,58928,1},{6295,58926,1}, {6293,58919,1},{6297,58914,1},{6297,58909,1},{6300,58906,1},{6300,58896,1}, {6303,58889,1},{6307,58889,1},{6307,58884,1},{6308,58883,1},{6308,58886,1}, {6315,58879,1},{6320,58881,1},{6328,58868,1},{6333,58873,1},{6337,58871,1}, {6328,58863,1},{6320,58876,1},{6317,58874,1},{6307,58879,1},{6307,58876,1}, {6307,58873,1},{6310,58868,1},{6305,58873,1},{6300,58881,1},{6298,58881,1}, {6303,58871,1},{6302,58871,1},{6303,58868,1},{6308,58859,1},{6318,58861,1}, {6327,58856,1},{6325,58851,1},{6317,58856,1},{6315,58851,1},{6315,58848,1}, {6325,58834,1},{6328,58841,1},{6333,58834,1},{6340,58838,1},{6340,58834,1}, {6333,58833,1},{6328,58834,1},{6327,58831,1},{6328,58824,1},{6332,58819,1}, {6328,58821,1},{6328,58816,1},{6337,58801,1},{6347,58794,1},{6342,58794,1}, {6343,58788,1},{6353,58781,1},{6355,58774,1},{6358,58773,1},{6362,58768,1}, {6365,58769,1},{6363,58759,1},{6365,58758,1},{6368,58756,1},{6368,58753,1}, {6373,58753,1},{6377,58744,1},{6373,58744,1},{6372,58749,1},{6368,58751,1}, {6363,58756,1},{6358,58754,1},{6355,58756,1},{6340,58769,1},{6337,58768,1}, {6337,58764,1},{6340,58754,1},{6345,58751,1},{6350,58741,1},{6355,58733,1}, {6355,58728,1},{6360,58723,1},{6358,58723,1},{6360,58718,1},{6360,58711,1}, {6363,58714,1},{6368,58709,1},{6368,58704,1},{6363,58709,1},{6363,58708,1}, {6365,58699,1},{6372,58693,1},{6375,58683,1},{6373,58681,1},{6377,58661,1}, {6373,58664,1},{6373,58656,1},{6377,58644,1},{6375,58636,1},{6363,58654,1}, {6362,58654,1},{6362,58651,1},{6360,58651,1},{6358,58656,1},{6355,58661,1}, {6345,58681,1},{6343,58691,1},{6342,58686,1},{6337,58698,1},{6328,58709,1}, {6327,58708,1},{6325,58713,1},{6322,58716,1},{6320,58713,1},{6318,58718,1}, {6315,58721,1},{6317,58728,1},{6313,58744,1},{6307,58738,1},{6307,58744,1}, {6312,58746,1},{6312,58751,1},{6308,58758,1},{6310,58774,1},{6307,58774,1}, {6305,58764,1},{6302,58758,1},{6298,58763,1},{6295,58759,1},{6297,58764,1}, {6300,58763,1},{6303,58768,1},{6303,58776,1},{6305,58779,1},{6300,58786,1}, {6297,58771,1},{6292,58769,1},{6297,58779,1},{6297,58784,1},{6298,58789,1}, {6295,58796,1},{6293,58794,1},{6295,58799,1},{6293,58801,1},{6288,58808,1}, {6288,58811,1},{6285,58799,1},{6285,58808,1},{6287,58814,1},{6285,58818,1}, {6283,58818,1},{6282,58813,1},{6282,58818,1},{6282,58819,1},{6282,58824,1}, {6282,58826,1},{6280,58828,1},{6275,58824,1},{6277,58831,1},{6275,58831,1}, {6273,58834,1},{6268,58831,1},{6270,58844,1},{6265,58836,1},{6268,58854,1}, {6267,58863,1},{6263,58859,1},{6265,58868,1},{6262,58864,1},{6262,58874,1}, {6258,58874,1},{6257,58879,1},{6252,58883,1},{6250,58888,1},{6242,58884,1}, {6245,58893,1},{6245,58901,1},{6242,58896,1},{6238,58903,1},{6237,58896,1}, {6235,58893,1},{6235,58889,1},{6233,58889,1},{6227,58904,1},{6232,58899,1}, {6233,58901,1},{6235,58904,1},{6233,58909,1},{6232,58911,1},{6233,58913,1}, {6235,58913,1},{6233,58916,1},{6230,58921,1},{6225,58921,1},{6227,58911,1}, {6222,58931,1},{6225,58934,1},{6222,58943,1},{6220,58943,1},{6213,58931,1}, {6207,58933,1},{6208,58923,1},{6213,58919,1},{6212,58916,1},{6210,58916,1}, {6212,58919,1},{6203,58926,1},{6200,58923,1},{6200,58929,1},{6195,58933,1}, {6197,58936,1},{6192,58941,1},{6188,58939,1},{6188,58931,1},{6187,58929,1}, {6185,58908,1},{6187,58896,1},{6190,58888,1},{6190,58881,1},{6193,58878,1}, {6192,58874,1},{6193,58869,1},{6197,58874,1},{6197,58866,1},{6202,58861,1}, {6202,58853,1},{6205,58843,1},{6202,58844,1},{6202,58839,1},{6205,58834,1}, {6203,58826,1},{6210,58813,1},{6207,58809,1},{6207,58804,1},{6212,58801,1}, {6213,58803,1},{6215,58798,1},{6213,58788,1},{6215,58783,1},{6217,58778,1}, {6215,58771,1},{6217,58761,1},{6217,58753,1},{6220,58756,1},{6222,58753,1}, {6218,58749,1},{6222,58738,1},{6220,58734,1},{6222,58728,1},{6222,58724,1}, {6222,58711,1},{6227,58674,1},{6230,58664,1},{6233,58664,1},{6233,58654,1}, {6237,58654,1},{6238,58651,1},{6237,58648,1},{6238,58639,1},{6237,58636,1}, {6238,58633,1},{6245,58613,1},{6252,58604,1},{6262,58608,1},{6262,58606,1}, {6253,58598,1},{6260,58596,1},{6262,58591,1},{6255,58593,1},{6255,58591,1}, {6267,58576,1},{6268,58583,1},{6267,58588,1},{6270,58588,1},{6270,58593,1}, {6272,58589,1},{6270,58581,1},{6273,58581,1},{6275,58596,1},{6277,58598,1}, {6277,58589,1},{6277,58586,1},{6277,58579,1},{6278,58574,1},{6275,58569,1}, {6275,58566,1},{6277,58568,1},{6278,58563,1},{6282,58553,1},{6278,58553,1}, {6277,58559,1},{6273,58559,1},{6277,58554,1},{6275,58546,1},{6280,58543,1}, {6277,58539,1},{6275,58533,1},{6275,58511,1},{6278,58499,1},{6287,58486,1}, {6290,58448,1},{6292,58449,1},{6293,58459,1},{6295,58451,1},{6295,58433,1}, {6297,58433,1},{6297,58443,1},{6300,58439,1},{6303,58443,1},{6302,58436,1}, {6298,58434,1},{6298,58429,1},{6298,58421,1},{6303,58423,1},{6303,58434,1}, {6310,58443,1},{6313,58454,1},{6313,58453,1},{6312,58444,1},{6313,58443,1}, {6317,58444,1},{6315,58438,1},{6310,58438,1},{6307,58433,1},{6307,58423,1}, {6310,58421,1},{6300,58413,1},{6302,58408,1},{6303,58411,1},{6303,58409,1}, {6305,58396,1},{6307,58394,1},{6312,58396,1},{6310,58391,1},{6313,58376,1}, {6318,58364,1},{6320,58369,1},{6323,58361,1},{6325,58371,1},{6327,58371,1}, {6327,58369,1},{6325,58361,1},{6327,58359,1},{6327,58363,1},{6328,58359,1}, {6332,58361,1},{6335,58354,1},{6335,58363,1},{6342,58359,1},{6338,58356,1}, {6338,58343,1},{6343,58338,1},{6340,58336,1},{6340,58328,1},{6342,58328,1}, {6342,58329,1},{6345,58321,1},{6343,58331,1},{6345,58333,1},{6342,58368,1}, {6342,58374,1},{6345,58379,1},{6347,58379,1},{6348,58394,1},{6352,58396,1}, {6353,58406,1},{6357,58409,1},{6358,58408,1},{6360,58413,1},{6360,58404,1}, {6357,58403,1},{6357,58394,1},{6360,58399,1},{6363,58398,1},{6363,58394,1}, {6362,58396,1},{6360,58391,1},{6358,58391,1},{6358,58378,1},{6360,58378,1}, {6362,58381,1},{6363,58388,1},{6365,58378,1},{6372,58383,1},{6370,58378,1}, {6372,58378,1},{6372,58374,1},{6370,58369,1},{6365,58376,1},{6365,58373,1}, {6368,58364,1},{6370,58368,1},{6375,58368,1},{6375,58364,1},{6368,58361,1}, {6372,58359,1},{6375,58359,1},{6378,58353,1},{6378,58346,1},{6382,58346,1}, {6380,58339,1},{6375,58336,1},{6377,58343,1},{6375,58343,1},{6375,58351,1}, {6365,58344,1},{6365,58339,1},{6368,58343,1},{6372,58341,1},{6372,58339,1}, {6367,58333,1},{6373,58329,1},{6372,58326,1},{6373,58321,1},{6377,58316,1}, {6368,58314,1},{6368,58304,1},{6373,58304,1},{6377,58299,1},{6378,58304,1}, {6377,58311,1},{6380,58309,1},{6387,58314,1},{6388,58318,1},{6388,58323,1}, {6390,58326,1},{6390,58318,1},{6390,58313,1},{6395,58313,1},{6392,58308,1}, {6388,58311,1},{6390,58304,1},{6387,58303,1},{6383,58296,1},{6380,58299,1}, {6378,58299,1},{6378,58283,1},{6380,58283,1},{6382,58291,1},{6385,58278,1}, {6387,58276,1},{6385,58269,1},{6390,58271,1},{6392,58269,1},{6395,58276,1}, {6402,58276,1},{6402,58268,1},{6408,58269,1},{6402,58266,1},{6398,58271,1}, {6397,58266,1},{6397,58263,1},{6400,58261,1},{6403,58248,1},{6403,58249,1}, {6405,58248,1},{6407,58243,1},{6408,58244,1},{6410,58249,1},{6415,58246,1}, {6418,58239,1},{6418,58228,1},{6422,58231,1},{6427,58223,1},{6428,58226,1}, {6430,58214,1},{6433,58213,1},{6430,58209,1},{6432,58204,1},{6428,58209,1}, {6427,58208,1},{6427,58198,1},{6433,58198,1},{6435,58201,1},{6438,58203,1}, {6435,58208,1},{6437,58209,1},{6440,58201,1},{6437,58198,1},{6437,58194,1}, {6442,58189,1},{6445,58193,1},{6445,58201,1},{6447,58206,1},{6445,58196,1}, {6447,58194,1},{6448,58194,1},{6452,58206,1},{6455,58211,1},{6458,58219,1}, {6462,58219,1},{6458,58214,1},{6460,58209,1},{6467,58206,1},{6463,58201,1}, {6458,58206,1},{6453,58206,1},{6450,58189,1},{6457,58188,1},{6455,58194,1}, {6457,58196,1},{6458,58191,1},{6460,58193,1},{6458,58179,1},{6460,58178,1}, {6467,58171,1},{6465,58169,1},{6462,58171,1},{6458,58168,1},{6457,58171,1}, {6457,58164,1},{6453,58161,1},{6460,58148,1},{6460,58143,1},{6450,58151,1}, {6448,58158,1},{6447,58154,1},{6448,58151,1},{6448,58148,1},{6447,58149,1}, {6445,58146,1},{6448,58139,1},{6443,58139,1},{6440,58143,1},{6438,58138,1}, {6433,58136,1},{6433,58126,1},{6435,58124,1},{6437,58119,1},{6437,58126,1}, {6440,58126,1},{6442,58128,1},{6447,58119,1},{6447,58126,1},{6443,58131,1}, {6445,58131,1},{6453,58123,1},{6452,58141,1},{6455,58134,1},{6457,58119,1}, {6458,58124,1},{6458,58136,1},{6463,58128,1},{6473,58131,1},{6475,58126,1}, {6473,58123,1},{6470,58126,1},{6468,58124,1},{6467,58118,1},{6467,58114,1}, {6462,58114,1},{6458,58113,1},{6463,58106,1},{6465,58109,1},{6468,58106,1}, {6468,58103,1},{6463,58103,1},{6467,58094,1},{6458,58101,1},{6457,58098,1}, {6460,58093,1},{6462,58094,1},{6463,58083,1},{6467,58081,1},{6473,58068,1}, {6475,58068,1},{6485,58079,1},{6483,58088,1},{6487,58084,1},{6487,58079,1}, {6490,58081,1},{6490,58074,1},{6490,58069,1},{6487,58073,1},{6487,58064,1}, {6485,58063,1},{6480,58066,1},{6477,58064,1},{6480,58054,1},{6478,58053,1}, {6480,58041,1},{6478,58038,1},{6477,58041,1},{6475,58051,1},{6470,58054,1}, {6467,58069,1},{6455,58089,1},{6453,58084,1},{6455,58076,1},{6453,58071,1}, {6452,58083,1},{6450,58079,1},{6452,58078,1},{6452,58074,1},{6448,58076,1}, {6447,58086,1},{6445,58081,1},{6442,58081,1},{6442,58074,1},{6440,58074,1}, {6440,58069,1},{6437,58068,1},{6440,58061,1},{6438,58056,1},{6443,58043,1}, {6442,58039,1},{6442,58036,1},{6450,58019,1},{6447,58018,1},{6445,58021,1}, {6445,58016,1},{6443,58016,1},{6447,58011,1},{6447,58006,1},{6452,57994,1}, {6453,57983,1},{6457,57979,1},{6457,57966,1},{6462,57956,1},{6460,57951,1}, {6457,57958,1},{6457,57953,1},{6453,57954,1},{6447,57971,1},{6445,57973,1}, {6447,57963,1},{6443,57966,1},{6445,57963,1},{6448,57949,1},{6448,57944,1}, {6447,57949,1},{6443,57956,1},{6443,57954,1},{6438,57963,1},{6437,57963,1}, {6438,57954,1},{6437,57953,1},{6438,57944,1},{6438,57941,1},{6440,57939,1}, {6437,57929,1},{6438,57924,1},{6437,57919,1},{6437,57923,1},{6435,57919,1}, {6435,57899,1},{6432,57904,1},{6430,57918,1},{6428,57904,1},{6432,57893,1}, {6432,57888,1},{6430,57888,1},{6430,57893,1},{6428,57898,1},{6427,57888,1}, {6430,57886,1},{6430,57883,1},{6430,57876,1},{6428,57871,1},{6428,57868,1}, {6430,57866,1},{6428,57863,1},{6423,57864,1},{6422,57869,1},{6418,57869,1}, {6420,57859,1},{6420,57853,1},{6423,57853,1},{6427,57839,1},{6425,57838,1}, {6430,57824,1},{6428,57821,1},{6425,57798,1},{6428,57799,1},{6430,57791,1}, {6430,57798,1},{6432,57796,1},{6430,57791,1},{6432,57781,1},{6435,57788,1}, {6435,57781,1},{6438,57771,1},{6432,57771,1},{6435,57759,1},{6437,57758,1}, {6438,57748,1},{6440,57746,1},{6440,57753,1},{6443,57751,1},{6440,57741,1}, {6442,57736,1},{6445,57734,1},{6447,57739,1},{6450,57729,1},{6453,57729,1}, {6457,57718,1},{6458,57719,1},{6458,57723,1},{6462,57719,1},{6465,57719,1}, {6465,57716,1},{6470,57719,1},{6470,57706,1},{6472,57718,1},{6475,57718,1}, {6478,57724,1},{6480,57724,1},{6482,57729,1},{6485,57729,1},{6490,57723,1}, {6497,57723,1},{6502,57738,1},{6505,57739,1},{6510,57761,1},{6515,57773,1}, {6515,57789,1},{6518,57804,1},{6520,57804,1},{6525,57798,1},{6532,57784,1}, {6538,57789,1},{6535,57803,1},{6537,57808,1},{6547,57793,1},{6547,57803,1}, {6547,57813,1},{6545,57809,1},{6545,57816,1},{6543,57824,1},{6540,57828,1}, {6540,57839,1},{6542,57841,1},{6543,57846,1},{6542,57854,1},{6540,57859,1}, {6542,57869,1},{6528,57926,1},{6528,57933,1},{6527,57934,1},{6522,57958,1}, {6515,57963,1},{6512,57981,1},{6505,57994,1},{6497,57993,1},{6493,57984,1}, {6493,57969,1},{6492,57976,1},{6485,57978,1},{6483,57991,1},{6482,57989,1}, {6480,57984,1},{6478,57983,1},{6477,57991,1},{6472,57998,1},{6472,58006,1}, {6473,58008,1},{6477,58001,1},{6483,57999,1},{6492,58001,1},{6492,57996,1}, {6487,57989,1},{6488,57988,1},{6488,57979,1},{6490,57988,1},{6493,57989,1}, {6495,57998,1},{6498,57998,1},{6498,58001,1},{6495,58009,1},{6498,58006,1}, {6500,58011,1},{6505,58013,1},{6507,58016,1},{6510,58018,1},{6510,58009,1}, {6505,58009,1},{6500,58001,1},{6510,57989,1},{6518,57976,1},{6518,57964,1}, {6523,57963,1},{6525,57953,1},{6525,57946,1},{6527,57948,1},{6530,57941,1}, {6532,57941,1},{6530,57964,1},{6532,57969,1},{6535,57973,1},{6532,57976,1}, {6530,57976,1},{6527,57979,1},{6525,58014,1},{6527,58026,1},{6532,58028,1}, {6540,58026,1},{6537,58039,1},{6540,58049,1},{6538,58054,1},{6538,58061,1}, {6543,58063,1},{6542,58069,1},{6540,58066,1},{6538,58069,1},{6537,58068,1}, {6535,58069,1},{6533,58084,1},{6540,58101,1},{6547,58106,1},{6548,58119,1}, {6552,58118,1},{6553,58126,1},{6553,58133,1},{6550,58136,1},{6553,58151,1}, {6552,58163,1},{6548,58163,1},{6545,58169,1},{6547,58178,1},{6545,58188,1}, {6558,58179,1},{6560,58173,1},{6565,58174,1},{6567,58168,1},{6568,58166,1}, {6572,58166,1},{6572,58171,1},{6577,58164,1},{6582,58154,1},{6583,58141,1}, {6588,58131,1},{6598,58114,1},{6610,58091,1},{6613,58089,1},{6622,58101,1}, {6630,58128,1},{6635,58139,1},{6635,58146,1},{6638,58146,1},{6652,58183,1}, {6655,58193,1},{6665,58201,1},{6672,58226,1},{6668,58273,1},{6668,58326,1}, {6660,58366,1},{6655,58401,1},{6662,58401,129},{6670,58331,1},{6670,58318,1}, {6672,58306,1},{6672,58263,1},{6675,58238,1},{6682,58236,1},{6693,58248,1}, {6703,58254,1},{6708,58269,1},{6708,58289,1},{6712,58299,1},{6717,58308,1}, {6725,58311,1},{6727,58316,1},{6733,58299,1},{6737,58301,1},{6747,58293,1}, {6750,58286,1},{6753,58294,1},{6757,58289,1},{6762,58288,1},{6763,58286,1}, {6763,58276,1},{6770,58268,1},{6775,58278,1},{6778,58274,1},{6782,58268,1}, {6788,58259,1},{6785,58251,1},{6790,58246,1},{6793,58248,1},{6792,58241,1}, {6802,58246,1},{6813,58238,1},{6823,58236,1},{6823,58233,1},{6820,58231,1}, {6822,58226,1},{6822,58221,1},{6823,58219,1},{6823,58214,1},{6825,58218,1}, {6827,58214,1},{6828,58208,1},{6827,58203,1},{6825,58204,1},{6825,58199,1}, {6827,58194,1},{6828,58186,1},{6832,58198,1},{6832,58206,1},{6835,58208,1}, {6837,58204,1},{6838,58214,1},{6840,58208,1},{6837,58201,1},{6833,58201,1}, {6833,58188,1},{6832,58189,1},{6828,58183,1},{6827,58174,1},{6827,58178,1}, {6825,58174,1},{6827,58171,1},{6827,58168,1},{6830,58171,1},{6828,58176,1}, {6830,58176,1},{6832,58163,1},{6835,58151,1},{6838,58148,1},{6842,58141,1}, {6845,58148,1},{6850,58149,1},{6853,58163,1},{6857,58154,1},{6858,58161,1}, {6862,58164,1},{6862,58159,1},{6862,58154,1},{6865,58166,1},{6867,58156,1}, {6868,58159,1},{6872,58148,1},{6870,58138,1},{6872,58136,1},{6873,58124,1}, {6872,58118,1},{6868,58119,1},{6868,58126,1},{6867,58131,1},{6863,58134,1}, {6855,58148,1},{6852,58144,1},{6850,58138,1},{6850,58133,1},{6853,58136,1}, {6852,58119,1},{6852,58118,1},{6853,58113,1},{6853,58101,1},{6858,58094,1}, {6860,58086,1},{6867,58083,1},{6873,58063,1},{6877,58064,1},{6880,58078,1}, {6883,58081,1},{6885,58071,1},{6883,58068,1},{6882,58063,1},{6882,58069,1}, {6880,58073,1},{6877,58058,1},{6880,58051,1},{6882,58038,1},{6882,58051,1}, {6883,58053,1},{6887,58068,1},{6890,58066,1},{6892,58069,1},{6893,58066,1}, {6890,58033,1},{6893,58053,1},{6893,58033,1},{6897,58049,1},{6895,58036,1}, {6897,58036,1},{6900,58043,1},{6902,58061,1},{6900,58056,1},{6902,58071,1}, {6905,58069,1},{6908,58054,1},{6900,58031,1},{6892,58029,1},{6888,58023,1}, {6893,58008,1},{6902,57991,1},{6898,57978,1},{6893,57986,1},{6888,57976,1}, {6882,57943,1},{6878,57936,1},{6868,57894,1},{6868,57876,1},{6870,57871,1}, {6875,57868,1},{6882,57879,1},{6887,57884,1},{6888,57881,1},{6888,57876,1}, {6892,57871,1},{6902,57873,1},{6905,57899,1},{6903,57923,1},{6900,57929,1}, {6900,57936,1},{6902,57939,1},{6905,57954,1},{6908,57954,1},{6908,57959,1}, {6908,57974,1},{6915,57979,1},{6923,57976,1},{6937,57941,1},{6942,57919,1}, {6940,57898,1},{6945,57894,1},{6955,57873,1},{6958,57874,1},{6965,57888,1}, {6962,57914,1},{6963,57913,1},{6967,57918,1},{6967,57898,1},{6970,57896,1}, {6968,57889,1},{6970,57881,1},{6968,57873,1},{6967,57873,1},{6967,57884,1}, {6965,57884,1},{6962,57879,1},{6962,57871,1},{6957,57866,1},{6958,57848,1}, {6960,57848,1},{6963,57854,1},{6958,57839,1},{6960,57833,1},{6963,57831,1}, {6963,57818,1},{6968,57821,1},{6968,57831,1},{6970,57834,1},{6972,57846,1}, {6968,57843,1},{6968,57848,1},{6972,57856,1},{6975,57858,1},{6977,57853,1}, {6975,57848,1},{6978,57844,1},{6982,57859,1},{6983,57858,1},{6982,57853,1}, {6982,57843,1},{6982,57829,1},{6985,57836,1},{6985,57828,1},{6982,57823,1}, {6983,57813,1},{6983,57804,1},{6988,57811,1},{6993,57838,1},{6993,57824,1}, {6985,57794,1},{6987,57788,1},{6985,57786,1},{6982,57773,1},{6982,57786,1}, {6978,57791,1},{6978,57784,1},{6975,57779,1},{6975,57773,1},{6982,57768,1}, {7018,57768,1},{7025,57756,1},{7023,57751,1},{7027,57748,1},{7022,57731,1}, {7025,57723,1},{7025,57716,1},{7022,57723,1},{7018,57719,1},{7020,57713,1}, {7023,57711,1},{7020,57703,1},{7022,57696,1},{7027,57693,1},{7030,57683,1}, {7033,57689,1},{7033,57696,1},{7035,57693,1},{7035,57686,1},{7035,57679,1}, {7032,57678,1},{7035,57669,1},{7037,57673,1},{7037,57666,1},{7045,57661,1}, {7043,57654,1},{7045,57651,1},{7048,57648,1},{7045,57646,1},{7040,57649,1}, {7045,57641,1},{7047,57629,1},{7048,57631,1},{7050,57626,1},{7052,57633,1}, {7053,57628,1},{7055,57648,1},{7055,57636,1},{7060,57648,1},{7060,57653,1}, {7055,57658,1},{7055,57664,1},{7063,57653,1},{7062,57648,1},{7063,57638,1}, {7068,57634,1},{7062,57621,1},{7062,57623,1},{7063,57634,1},{7062,57636,1}, {7052,57623,1},{7052,57619,1},{7050,57623,1},{7043,57619,1},{7045,57601,1}, {7045,57608,1},{7048,57606,1},{7052,57613,1},{7055,57613,1},{7053,57604,1}, {7052,57608,1},{7047,57604,1},{7050,57598,1},{7048,57594,1},{7047,57598,1}, {7043,57596,1},{7045,57586,1},{7043,57579,1},{7040,57578,1},{7035,57591,1}, {7037,57598,1},{7037,57603,1},{7032,57614,1},{7032,57628,1},{7033,57631,1}, {7030,57644,1},{7018,57659,1},{7007,57661,1},{7005,57668,1},{7000,57669,1}, {6993,57668,1},{6990,57658,1},{6988,57656,1},{6988,57648,1},{6988,57626,1}, {6988,57598,1},{6987,57586,1},{6985,57573,1},{6985,57566,1},{6987,57561,1}, {6997,57548,1},{6995,57533,1},{7000,57531,1},{7000,57516,1},{7000,57508,1}, {6998,57504,1},{7000,57498,1},{7005,57479,1},{7005,57454,1},{7007,57448,1}, {7005,57438,1},{7007,57431,1},{7010,57429,1},{7008,57423,1},{7010,57413,1}, {7010,57388,1},{7013,57363,1},{7012,57359,1},{7007,57366,1},{7005,57383,1}, {7000,57393,1},{7003,57404,1},{6998,57419,1},{6993,57423,1},{6987,57443,1}, {6977,57459,1},{6973,57453,1},{6972,57441,1},{6973,57441,1},{6977,57426,1}, {6982,57419,1},{6985,57406,1},{6993,57388,1},{6993,57381,1},{6995,57376,1}, {6997,57378,1},{6997,57361,1},{7015,57313,1},{7015,57304,1},{7018,57279,1}, {7030,57236,1},{7030,57231,1},{7020,57254,1},{7020,57263,1},{7012,57311,1}, {7007,57328,1},{6997,57346,1},{6993,57364,1},{6990,57359,1},{6987,57363,1}, {6988,57356,1},{6988,57351,1},{6987,57351,1},{6985,57351,1},{6985,57339,1}, {6987,57334,1},{6983,57328,1},{6982,57321,1},{6982,57324,1},{6978,57321,1}, {6980,57311,1},{6980,57306,1},{6982,57309,1},{6983,57304,1},{6983,57316,1}, {6985,57306,1},{6985,57294,1},{6983,57291,1},{6985,57284,1},{6988,57273,1}, {6993,57263,1},{6992,57261,1},{6995,57246,1},{7002,57229,1},{7000,57213,1}, {7002,57208,1},{6998,57201,1},{6995,57171,1},{6998,57128,1},{6998,57101,1}, {7000,57084,1},{7000,57069,1},{7003,57053,1},{7007,57049,1},{7008,57056,1}, {7010,57056,1},{7007,57044,1},{7007,57038,1},{7010,57018,1},{7010,56969,1}, {7008,56949,1},{7003,56951,1},{7007,56961,1},{7007,56973,1},{7003,56996,1}, {6998,57013,1},{7002,56978,1},{6998,56964,1},{7000,56954,1},{7010,56911,1}, {7023,56881,1},{7035,56881,1},{7035,56878,1},{7042,56884,1},{7047,56906,1}, {7050,56906,1},{7052,56899,1},{7048,56903,1},{7042,56878,1},{7038,56873,1}, {7037,56868,1},{7032,56871,1},{7033,56864,1},{7033,56848,1},{7035,56848,1}, {7038,56863,1},{7040,56858,1},{7038,56849,1},{7038,56843,1},{7042,56849,1}, {7042,56838,1},{7043,56838,1},{7045,56844,1},{7047,56839,1},{7045,56828,1}, {7043,56823,1},{7040,56821,1},{7038,56811,1},{7037,56834,1},{7035,56839,1}, {7028,56838,1},{7032,56808,1},{7033,56784,1},{7032,56769,1},{7033,56761,1}, {7030,56758,1},{7030,56771,1},{7028,56774,1},{7023,56756,1},{7023,56744,1}, {7030,56736,1},{7030,56723,1},{7033,56709,1},{7035,56716,1},{7033,56718,1}, {7033,56729,1},{7030,56736,1},{7030,56748,1},{7033,56744,1},{7035,56734,1}, {7038,56724,1},{7042,56701,1},{7045,56696,1},{7043,56691,1},{7045,56666,1}, {7053,56648,1},{7062,56636,1},{7065,56636,1},{7080,56603,1},{7090,56591,1}, {7093,56599,1},{7093,56614,1},{7097,56616,1},{7100,56601,1},{7108,56579,1}, {7107,56613,1},{7103,56616,1},{7103,56623,1},{7105,56646,1},{7103,56654,1}, {7105,56673,1},{7102,56698,1},{7095,56704,1},{7093,56734,1},{7095,56766,1}, {7095,56801,1},{7100,56806,1},{7102,56811,1},{7098,56833,1},{7100,56836,1}, {7103,56804,1},{7105,56803,1},{7105,56796,1},{7107,56796,1},{7113,56764,1}, {7118,56751,1},{7125,56754,1},{7127,56751,1},{7125,56741,1},{7120,56728,1}, {7123,56719,1},{7123,56693,1},{7123,56684,1},{7123,56674,1},{7128,56623,1}, {7128,56596,1},{7132,56554,1},{7135,56546,1},{7138,56544,1},{7142,56539,1}, {7152,56534,1},{7152,56541,1},{7160,56531,1},{7162,56538,1},{7163,56536,1}, {7168,56548,1},{7177,56556,1},{7178,56544,1},{7182,56548,1},{7182,56541,1}, {7188,56534,1},{7193,56524,1},{7198,56536,1},{7203,56539,1},{7207,56536,1}, {7212,56563,1},{7212,56569,1},{7217,56579,1},{7218,56574,1},{7215,56559,1}, {7217,56556,1},{7218,56546,1},{7225,56539,1},{7227,56543,1},{7232,56541,1}, {7240,56553,1},{7242,56546,1},{7243,56546,1},{7243,56558,1},{7243,56546,1}, {7247,56556,1},{7257,56558,1},{7262,56563,1},{7263,56571,1},{7262,56579,1}, {7267,56581,1},{7267,56589,1},{7270,56579,1},{7278,56579,1},{7278,56591,1}, {7275,56596,1},{7275,56608,1},{7277,56608,1},{7278,56611,1},{7280,56598,1}, {7283,56594,1},{7288,56604,1},{7292,56606,1},{7298,56599,1},{7302,56609,1}, {7300,56613,1},{7302,56616,1},{7305,56604,1},{7313,56613,1},{7315,56623,1}, {7315,56618,1},{7318,56621,1},{7322,56629,1},{7322,56648,1},{7323,56634,1}, {7325,56631,1},{7328,56636,1},{7330,56648,1},{7328,56674,1},{7332,56656,1}, {7333,56651,1},{7345,56676,1},{7347,56688,1},{7352,56693,1},{7357,56708,1}, {7370,56759,1},{7382,56836,1},{7385,56881,1},{7385,56916,1},{7387,56921,1}, {7382,56981,1},{7382,57013,1},{7380,57029,1},{7373,57053,1},{7367,57041,1}, {7353,56993,1},{7350,56979,1},{7337,56944,1},{7325,56924,1},{7303,56903,1}, {7287,56871,1},{7273,56863,1},{7268,56868,1},{7265,56866,1},{7253,56896,1}, {7242,56913,1},{7227,56893,1},{7220,56889,1},{7202,56894,1},{7198,56903,1}, {7195,56903,1},{7178,56924,1},{7177,56934,1},{7167,56951,1},{7165,56961,1}, {7160,56966,1},{7153,56984,1},{7152,56986,1},{7152,56994,1},{7148,56999,1}, {7148,57004,1},{7147,57006,1},{7147,57013,1},{7145,57016,1},{7143,57031,1}, {7142,57043,1},{7133,57041,1},{7133,57049,1},{7127,57053,1},{7127,57038,1}, {7130,57023,1},{7128,57011,1},{7127,57009,1},{7127,57011,1},{7127,57019,1}, {7125,57011,1},{7123,56989,1},{7122,56989,1},{7122,56996,1},{7120,56998,1}, {7122,56989,1},{7120,56988,1},{7118,56986,1},{7120,56963,1},{7118,56959,1}, {7118,56943,1},{7115,56934,1},{7110,56914,1},{7107,56911,1},{7105,56896,1}, {7103,56894,1},{7100,56861,1},{7098,56856,1},{7097,56874,1},{7098,56888,1}, {7100,56909,1},{7113,56956,1},{7115,56983,1},{7117,56988,1},{7117,56998,1}, {7113,57019,1},{7115,57021,1},{7115,57028,1},{7118,57024,1},{7117,57036,1}, {7118,57031,1},{7118,57039,1},{7115,57051,1},{7107,57048,1},{7110,57038,1}, {7108,57021,1},{7107,57039,1},{7103,57036,1},{7100,57043,1},{7092,57041,1}, {7092,57056,1},{7098,57061,1},{7103,57059,1},{7107,57053,1},{7118,57056,1}, {7122,57069,1},{7128,57056,1},{7138,57063,1},{7140,57059,1},{7143,57066,1}, {7145,57081,1},{7147,57083,1},{7155,57079,1},{7158,57071,1},{7165,57076,1}, {7167,57074,1},{7168,57058,1},{7167,57049,1},{7163,57053,1},{7163,57048,1}, {7167,57008,1},{7175,56991,1},{7178,56978,1},{7180,56993,1},{7190,56979,1}, {7197,56951,1},{7198,56934,1},{7202,56931,1},{7198,56939,1},{7203,56938,1}, {7202,56964,1},{7202,56958,1},{7205,56959,1},{7207,56966,1},{7207,56984,1}, {7212,56983,1},{7213,56996,1},{7218,56984,1},{7222,56986,1},{7223,56983,1}, {7222,56993,1},{7222,56994,1},{7225,56986,1},{7227,56989,1},{7225,57004,1}, {7227,57008,1},{7225,57013,1},{7223,57014,1},{7225,57018,1},{7225,57026,1}, {7222,57026,1},{7225,57033,1},{7222,57049,1},{7218,57054,1},{7215,57066,1}, {7213,57076,1},{7210,57089,1},{7207,57094,1},{7202,57109,1},{7193,57116,1}, {7202,57119,1},{7207,57101,1},{7212,57094,1},{7213,57098,1},{7218,57071,1}, {7222,57061,1},{7223,57069,1},{7223,57059,1},{7228,57043,1},{7235,57054,1}, {7235,57086,1},{7238,57093,1},{7237,57081,1},{7237,57069,1},{7237,57049,1}, {7238,57049,1},{7240,57051,1},{7242,57058,1},{7245,57058,1},{7240,57034,1}, {7237,57036,1},{7237,57026,1},{7235,57024,1},{7235,57021,1},{7238,57024,1}, {7238,57013,1},{7242,57001,1},{7247,56984,1},{7255,56974,1},{7257,56988,1}, {7258,56974,1},{7263,56966,1},{7275,56966,1},{7287,56971,1},{7290,56968,1}, {7297,56978,1},{7297,56986,1},{7297,57008,1},{7288,57049,1},{7285,57086,1}, {7278,57111,1},{7277,57129,1},{7275,57138,1},{7275,57141,1},{7278,57133,1}, {7280,57111,1},{7285,57098,1},{7290,57078,1},{7292,57059,1},{7297,57041,1}, {7298,57028,1},{7300,57029,1},{7303,57023,1},{7300,57018,1},{7302,56999,1}, {7302,56983,1},{7313,56996,1},{7307,57009,1},{7305,57023,1},{7312,57013,1}, {7313,57018,1},{7313,57028,1},{7308,57053,1},{7303,57123,1},{7303,57149,1}, {7298,57164,1},{7298,57173,1},{7303,57158,1},{7307,57143,1},{7305,57126,1}, {7312,57089,1},{7312,57079,1},{7320,57034,1},{7322,57019,1},{7330,57023,1}, {7335,57034,1},{7338,57056,1},{7338,57063,1},{7330,57071,1},{7328,57083,1}, {7323,57094,1},{7323,57103,1},{7330,57088,1},{7332,57078,1},{7340,57071,1}, {7347,57119,1},{7342,57161,1},{7332,57168,1},{7330,57171,1},{7330,57176,1}, {7337,57171,1},{7345,57171,1},{7350,57138,1},{7352,57136,1},{7358,57171,1}, {7363,57209,1},{7367,57216,1},{7367,57226,1},{7365,57231,1},{7373,57253,1}, {7372,57294,1},{7373,57339,1},{7372,57379,1},{7368,57391,1},{7365,57391,1}, {7360,57404,1},{7352,57414,1},{7342,57418,1},{7327,57416,1},{7315,57476,1}, {7308,57481,1},{7302,57478,1},{7298,57471,1},{7292,57473,1},{7283,57488,1}, {7280,57504,1},{7273,57511,1},{7270,57499,1},{7263,57483,1},{7257,57483,1}, {7255,57468,1},{7245,57441,1},{7235,57426,1},{7233,57418,1},{7228,57416,1}, {7223,57398,1},{7225,57413,1},{7243,57448,1},{7245,57459,1},{7252,57478,1}, {7250,57486,1},{7238,57484,1},{7235,57471,1},{7228,57456,1},{7222,57449,1}, {7220,57453,1},{7220,57439,1},{7210,57478,1},{7208,57479,1},{7207,57473,1}, {7208,57466,1},{7210,57459,1},{7208,57443,1},{7208,57433,1},{7208,57436,1}, {7207,57436,1},{7205,57428,1},{7203,57438,1},{7205,57453,1},{7203,57456,1}, {7195,57453,1},{7190,57439,1},{7188,57439,1},{7190,57449,1},{7193,57461,1}, {7198,57461,1},{7200,57473,1},{7200,57481,1},{7205,57498,1},{7208,57501,1}, {7218,57488,1},{7218,57496,1},{7217,57498,1},{7218,57504,1},{7220,57506,1}, {7220,57513,1},{7225,57506,1},{7230,57509,1},{7227,57521,1},{7218,57538,1}, {7213,57569,1},{7220,57543,1},{7232,57519,1},{7238,57529,1},{7243,57549,1}, {7248,57549,1},{7250,57554,1},{7250,57559,1},{7248,57558,1},{7247,57566,1}, {7242,57559,1},{7233,57576,1},{7228,57573,1},{7225,57559,1},{7222,57561,1}, {7222,57566,1},{7223,57566,1},{7228,57578,1},{7225,57584,1},{7220,57588,1}, {7222,57591,1},{7227,57588,1},{7228,57581,1},{7237,57599,1},{7240,57601,1}, {7235,57621,1},{7228,57633,1},{7228,57641,1},{7223,57638,1},{7220,57641,1}, {7207,57633,1},{7200,57621,1},{7198,57613,1},{7197,57616,1},{7197,57629,1}, {7197,57638,1},{7192,57664,1},{7187,57681,1},{7187,57686,1},{7190,57676,1}, {7193,57676,1},{7198,57651,1},{7202,57644,1},{7217,57651,1},{7208,57688,1}, {7193,57698,1},{7182,57718,1},{7177,57746,1},{7183,57723,1},{7192,57704,1}, {7195,57706,1},{7197,57721,1},{7193,57723,1},{7187,57738,1},{7183,57739,1}, {7180,57756,1},{7175,57759,1},{7182,57766,1},{7185,57746,1},{7195,57726,1}, {7198,57724,1},{7198,57704,1},{7212,57694,1},{7217,57666,1},{7222,57651,1}, {7223,57649,1},{7228,57661,1},{7232,57654,1},{7233,57656,1},{7233,57664,1}, {7237,57676,1},{7232,57684,1},{7223,57683,1},{7222,57689,1},{7217,57696,1}, {7222,57694,1},{7225,57689,1},{7233,57693,1},{7228,57718,1},{7228,57733,1}, {7225,57734,1},{7227,57741,1},{7225,57756,1},{7220,57769,1},{7213,57774,1}, {7210,57771,1},{7213,57778,1},{7217,57774,1},{7218,57778,1},{7218,57809,1}, {7213,57836,1},{7215,57829,1},{7220,57808,1},{7220,57781,1},{7228,57749,1}, {7238,57696,1},{7245,57679,1},{7250,57681,1},{7255,57691,1},{7258,57691,1}, {7265,57721,1},{7267,57733,1},{7270,57738,1},{7270,57758,1},{7275,57778,1}, {7275,57829,1},{7272,57861,1},{7267,57871,1},{7265,57868,1},{7258,57919,1}, {7247,57926,1},{7248,57933,1},{7255,57929,1},{7258,57936,1},{7258,57943,1}, {7255,57979,1},{7253,57989,1},{7250,58016,1},{7240,58023,1},{7227,58041,1}, {7218,58031,1},{7212,58013,1},{7215,57984,1},{7212,57951,1},{7207,57931,1}, {7200,57921,1},{7187,57896,1},{7185,57899,1},{7193,57913,1},{7198,57928,1}, {7205,57934,1},{7210,57956,1},{7212,57978,1},{7210,57998,1},{7208,58004,1}, {7208,58013,1},{7207,58014,1},{7203,58008,1},{7202,57986,1},{7200,57978,1}, {7183,57968,1},{7175,57956,1},{7172,57946,1},{7170,57929,1},{7170,57926,1}, {7170,57948,1},{7173,57956,1},{7183,57971,1},{7198,57981,1},{7200,57986,1}, {7200,58003,1},{7202,58016,1},{7210,58024,1},{7213,58033,1},{7210,58059,1}, {7208,58109,1},{7198,58123,1},{7195,58124,1},{7192,58114,1},{7187,58119,1}, {7182,58111,1},{7180,58093,1},{7183,58084,1},{7182,58079,1},{7180,58081,1}, {7177,58071,1},{7173,58064,1},{7172,58051,1},{7170,58044,1},{7172,58028,1}, {7170,58004,1},{7168,57998,1},{7170,58028,1},{7168,58039,1},{7167,58043,1}, {7163,58034,1},{7158,58016,1},{7157,58013,1},{7152,57996,1},{7153,58004,1}, {7155,58016,1},{7158,58023,1},{7162,58046,1},{7168,58058,1},{7170,58066,1}, {7168,58069,1},{7167,58073,1},{7158,58063,1},{7155,58054,1},{7153,58033,1}, {7147,58021,1},{7152,58033,1},{7152,58048,1},{7150,58054,1},{7147,58049,1}, {7145,58043,1},{7143,58063,1},{7138,58066,1},{7127,58044,1},{7120,58028,1}, {7118,58028,1},{7125,58049,1},{7138,58073,1},{7143,58073,1},{7147,58063,1}, {7153,58064,1},{7155,58074,1},{7167,58084,1},{7168,58098,1},{7173,58109,1}, {7173,58126,1},{7167,58123,1},{7163,58113,1},{7162,58111,1},{7157,58111,1}, {7153,58121,1},{7162,58114,1},{7165,58126,1},{7177,58138,1},{7178,58163,1}, {7177,58168,1},{7172,58168,1},{7177,58173,1},{7175,58178,1},{7170,58173,1}, {7167,58158,1},{7163,58156,1},{7162,58148,1},{7158,58148,1},{7153,58138,1}, {7147,58138,1},{7147,58126,1},{7142,58104,1},{7143,58124,1},{7143,58133,1}, {7133,58129,1},{7130,58118,1},{7130,58126,1},{7128,58128,1},{7120,58113,1}, {7125,58124,1},{7132,58136,1},{7137,58136,1},{7142,58139,1},{7145,58146,1}, {7153,58149,1},{7158,58161,1},{7158,58174,1},{7155,58179,1},{7143,58171,1}, {7138,58178,1},{7137,58173,1},{7138,58184,1},{7142,58186,1},{7143,58191,1}, {7138,58198,1},{7137,58188,1},{7133,58184,1},{7130,58174,1},{7125,58168,1}, {7110,58163,1},{7107,58149,1},{7105,58146,1},{7107,58163,1},{7108,58169,1}, {7117,58169,1},{7123,58174,1},{7128,58183,1},{7130,58193,1},{7133,58193,1}, {7133,58204,1},{7130,58219,1},{7128,58219,1},{7128,58226,1},{7127,58231,1}, {7122,58209,1},{7117,58213,1},{7110,58206,1},{7103,58191,1},{7098,58198,1}, {7103,58196,1},{7108,58209,1},{7113,58216,1},{7122,58218,1},{7123,58226,1}, {7123,58233,1},{7125,58236,1},{7132,58241,1},{7140,58238,1},{7143,58259,1}, {7150,58253,1},{7153,58271,1},{7165,58279,1},{7160,58319,1},{7157,58344,1}, {7153,58356,1},{7150,58379,1},{7148,58384,1},{7147,58391,1},{7143,58393,1}, {7138,58406,1},{7125,58424,1},{7117,58403,1},{7107,58389,1},{7107,58376,1}, {7112,58348,1},{7105,58326,1},{7102,58326,1},{7097,58318,1},{7095,58308,1}, {7088,58303,1},{7082,58259,1},{7083,58284,1},{7087,58306,1},{7087,58311,1}, {7083,58319,1},{7075,58303,1},{7072,58304,1},{7068,58298,1},{7063,58274,1}, {7063,58281,1},{7060,58281,1},{7063,58286,1},{7067,58301,1},{7077,58319,1}, {7078,58339,1},{7087,58373,1},{7087,58394,1},{7088,58403,1},{7085,58418,1}, {7087,58418,1},{7092,58408,1},{7100,58416,1},{7112,58454,1},{7112,58461,1}, {7107,58474,1},{7093,58484,1},{7088,58478,1},{7083,58463,1},{7075,58461,1}, {7065,58426,1},{7058,58421,1},{7062,58381,1},{7060,58376,1},{7058,58376,1}, {7055,58378,1},{7048,58363,1},{7045,58361,1},{7042,58339,1},{7042,58363,1}, {7033,58361,1},{7028,58353,1},{7032,58363,1},{7042,58371,1},{7047,58371,1}, {7052,58384,1},{7057,58384,1},{7058,58388,1},{7057,58396,1},{7055,58394,1}, {7057,58399,1},{7053,58419,1},{7042,58413,1},{7033,58409,1},{7032,58404,1}, {7025,58408,1},{7002,58383,1},{7013,58403,1},{7020,58406,1},{7027,58414,1}, {7030,58413,1},{7052,58429,1},{7052,58438,1},{7055,58431,1},{7063,58436,1}, {7063,58451,1},{7073,58476,1},{7075,58488,1},{7078,58496,1},{7080,58513,1}, {7088,58549,1},{7085,58559,1},{7075,58544,1},{7063,58513,1},{7063,58496,1}, {7062,58489,1},{7052,58496,1},{7048,58488,1},{7050,58506,1},{7062,58496,1}, {7062,58528,1},{7063,58531,1},{7062,58531,1},{7058,58533,1},{7062,58534,1}, {7065,58538,1},{7068,58549,1},{7068,58558,1},{7070,58556,1},{7072,58558,1}, {7068,58569,1},{7075,58574,1},{7078,58591,1},{7077,58596,1},{7078,58613,1}, {7072,58624,1},{7057,58704,1},{7053,58708,1},{7050,58708,1},{7042,58691,1}, {7037,58691,1},{7040,58678,1},{7047,58679,1},{7043,58669,1},{7035,58671,1}, {7033,58668,1},{7030,58646,1},{7030,58633,1},{7025,58594,1},{7022,58586,1}, {7020,58573,1},{7015,58553,1},{7012,58551,1},{7008,58544,1},{7007,58528,1}, {7003,58518,1},{7002,58519,1},{7003,58526,1},{7007,58533,1},{7005,58546,1}, {7002,58551,1},{6998,58554,1},{6998,58531,1},{6997,58519,1},{6993,58514,1}, {6992,58513,1},{6985,58489,1},{6985,58501,1},{6995,58528,1},{6995,58556,1}, {6997,58561,1},{7000,58563,1},{7005,58556,1},{7008,58558,1},{7013,58568,1}, {7018,58611,1},{7017,58633,1},{7018,58634,1},{7022,58623,1},{7020,58643,1}, {7020,58668,1},{7015,58671,1},{7010,58661,1},{7007,58663,1},{7005,58658,1}, {7000,58636,1},{6997,58626,1},{6982,58593,1},{6983,58566,1},{6982,58556,1}, {6978,58549,1},{6973,58548,1},{6967,58536,1},{6962,58538,1},{6967,58543,1}, {6973,58554,1},{6977,58554,1},{6980,58563,1},{6980,58579,1},{6978,58591,1}, {6978,58596,1},{6980,58601,1},{6988,58616,1},{6995,58641,1},{6995,58659,1}, {6993,58666,1},{6995,58668,1},{6993,58673,1},{6998,58669,1},{6998,58674,1}, {7002,58683,1},{7005,58679,1},{7005,58691,1},{7007,58693,1},{7007,58703,1}, {7012,58716,1},{7013,58713,1},{7013,58703,1},{7017,58708,1},{7017,58701,1}, {7018,58701,1},{7018,58708,1},{7022,58704,1},{7028,58719,1},{7032,58721,1}, {7032,58731,1},{7030,58734,1},{7027,58756,1},{7022,58763,1},{7013,58783,1}, {7005,58798,1},{7000,58803,1},{6995,58814,1},{6987,58814,1},{6982,58821,1}, {6978,58819,1},{6973,58824,1},{6972,58798,1},{6973,58788,1},{6978,58758,1}, {6977,58736,1},{6972,58719,1},{6972,58716,1},{6963,58704,1},{6963,58683,1}, {6965,58668,1},{6963,58658,1},{6953,58614,1},{6953,58601,1},{6957,58568,1}, {6957,58553,1},{6953,58541,1},{6953,58533,1},{6952,58536,1},{6950,58546,1}, {6953,58558,1},{6955,58568,1},{6950,58604,1},{6953,58634,1},{6957,58643,1}, {6958,58669,1},{6958,58683,1},{6945,58738,1},{6945,58749,1},{6948,58756,1}, {6947,58788,1},{6947,58811,1},{6933,58859,1},{6922,58871,1},{6918,58869,1}, {6913,58861,1},{6918,58836,1},{6918,58818,1},{6915,58816,1},{6918,58801,1}, {6915,58786,1},{6917,58768,1},{6932,58714,1},{6930,58701,1},{6932,58681,1}, {6935,58638,1},{6932,58619,1},{6927,58611,1},{6927,58613,1},{6930,58621,1}, {6933,58643,1},{6927,58691,1},{6927,58719,1},{6922,58728,1},{6920,58723,1}, {6923,58671,1},{6922,58663,1},{6922,58643,1},{6922,58636,1},{6920,58686,1}, {6913,58666,1},{6910,58628,1},{6908,58629,1},{6910,58634,1},{6910,58643,1}, {6900,58639,1},{6897,58633,1},{6897,58639,1},{6900,58643,1},{6908,58649,1}, {6912,58668,1},{6918,58694,1},{6915,58718,1},{6903,58764,1},{6902,58766,1}, {6900,58761,1},{6900,58739,1},{6897,58739,1},{6902,58704,1},{6898,58688,1}, {6898,58681,1},{6897,58681,1},{6898,58703,1},{6895,58718,1},{6895,58731,1}, {6892,58731,1},{6890,58728,1},{6888,58734,1},{6885,58738,1},{6887,58726,1}, {6890,58708,1},{6888,58688,1},{6887,58706,1},{6883,58723,1},{6880,58749,1}, {6878,58751,1},{6878,58759,1},{6877,58751,1},{6878,58739,1},{6882,58716,1}, {6885,58679,1},{6883,58674,1},{6882,58686,1},{6880,58688,1},{6878,58676,1}, {6880,58664,1},{6882,58639,1},{6885,58631,1},{6887,58609,1},{6887,58599,1}, {6887,58596,1},{6885,58611,1},{6883,58621,1},{6883,58599,1},{6882,58599,1}, {6878,58641,1},{6875,58639,1},{6875,58636,1},{6873,58639,1},{6877,58649,1}, {6875,58664,1},{6873,58669,1},{6873,58699,1},{6868,58731,1},{6867,58728,1}, {6867,58719,1},{6865,58728,1},{6863,58726,1},{6865,58714,1},{6863,58699,1}, {6865,58679,1},{6865,58666,1},{6863,58658,1},{6862,58656,1},{6860,58646,1}, {6858,58653,1},{6860,58663,1},{6863,58668,1},{6863,58673,1},{6860,58689,1}, {6858,58681,1},{6858,58663,1},{6857,58661,1},{6857,58664,1},{6857,58691,1}, {6860,58696,1},{6858,58714,1},{6857,58718,1},{6857,58723,1},{6853,58723,1}, {6855,58729,1},{6853,58734,1},{6853,58739,1},{6855,58739,1},{6855,58744,1}, {6845,58746,1},{6840,58741,1},{6842,58746,1},{6855,58749,1},{6853,58756,1}, {6857,58769,1},{6855,58776,1},{6855,58783,1},{6853,58786,1},{6852,58784,1}, {6850,58773,1},{6838,58774,1},{6842,58781,1},{6848,58781,1},{6848,58796,1}, {6847,58798,1},{6850,58799,1},{6848,58806,1},{6845,58809,1},{6848,58813,1}, {6843,58818,1},{6842,58803,1},{6840,58804,1},{6842,58826,1},{6848,58824,1}, {6843,58839,1},{6847,58856,1},{6845,58868,1},{6843,58868,1},{6842,58856,1}, {6840,58856,1},{6842,58846,1},{6837,58843,1},{6835,58834,1},{6840,58811,1}, {6840,58796,1},{6838,58794,1},{6837,58786,1},{6833,58754,1},{6830,58749,1}, {6825,58749,1},{6832,58761,1},{6832,58774,1},{6833,58783,1},{6830,58778,1}, {6827,58778,1},{6825,58768,1},{6823,58768,1},{6825,58781,1},{6830,58783,1}, {6835,58796,1},{6835,58803,1},{6832,58804,1},{6835,58811,1},{6832,58834,1}, {6830,58813,1},{6828,58813,1},{7375,57459,129},{7377,57479,1},{7375,57506,1}, {7370,57526,1},{7373,57534,1},{7370,57546,1},{7367,57573,1},{7363,57591,1}, {7363,57639,1},{7365,57649,1},{7367,57719,1},{7360,57754,1},{7355,57794,1}, {7352,57803,1},{7350,57816,1},{7345,57821,1},{7340,57833,1},{7337,57831,1}, {7332,57846,1},{7332,57866,1},{7328,57861,1},{7322,57878,1},{7317,57873,1}, {7315,57878,1},{7312,57886,1},{7310,57913,1},{7307,57904,1},{7305,57908,1}, {7302,57904,1},{7300,57909,1},{7297,57903,1},{7295,57909,1},{7293,57924,1}, {7290,57929,1},{7285,57924,1},{7282,57903,1},{7282,57876,1},{7283,57864,1}, {7285,57816,1},{7288,57791,1},{7290,57764,1},{7288,57709,1},{7285,57674,1}, {7275,57619,1},{7273,57599,1},{7275,57576,1},{7278,57564,1},{7283,57556,1}, {7287,57536,1},{7298,57524,1},{7305,57518,1},{7312,57524,1},{7315,57518,1}, {7318,57524,1},{7322,57521,1},{7325,57514,1},{7325,57479,1},{7327,57469,1}, {7328,57456,1},{7333,57448,1},{7348,57451,1},{7348,57454,1},{7348,57466,1}, {7355,57449,1},{7360,57446,1},{7367,57456,1},{7372,57456,1},{7375,57449,1}, {7375,57459,1},{7402,56028,129},{7407,56056,1},{7410,56063,1},{7410,56093,1}, {7412,56096,1},{7413,56118,1},{7413,56146,1},{7408,56154,1},{7408,56159,1}, {7408,56164,1},{7410,56161,1},{7415,56161,1},{7417,56169,1},{7417,56184,1}, {7417,56208,1},{7412,56256,1},{7412,56261,1},{7408,56261,1},{7410,56273,1}, {7402,56306,1},{7393,56304,1},{7395,56323,1},{7398,56326,1},{7402,56343,1}, {7403,56379,1},{7400,56429,1},{7397,56456,1},{7397,56466,1},{7392,56496,1}, {7393,56503,1},{7392,56511,1},{7390,56516,1},{7383,56509,1},{7387,56504,1}, {7385,56498,1},{7378,56499,1},{7357,56459,1},{7353,56451,1},{7355,56438,1}, {7348,56443,1},{7335,56418,1},{7327,56409,1},{7323,56373,1},{7322,56394,1}, {7320,56399,1},{7310,56388,1},{7302,56371,1},{7298,56371,1},{7290,56356,1}, {7287,56354,1},{7280,56334,1},{7275,56326,1},{7270,56303,1},{7273,56253,1}, {7277,56229,1},{7278,56221,1},{7278,56214,1},{7282,56204,1},{7280,56194,1}, {7280,56186,1},{7277,56176,1},{7277,56126,1},{7277,56109,1},{7277,56104,1}, {7273,56103,1},{7272,56106,1},{7273,56113,1},{7273,56123,1},{7270,56136,1}, {7272,56149,1},{7273,56158,1},{7265,56154,1},{7262,56169,1},{7257,56179,1}, {7247,56189,1},{7243,56188,1},{7242,56179,1},{7235,56173,1},{7233,56159,1}, {7230,56154,1},{7217,56134,1},{7207,56128,1},{7203,56113,1},{7202,56114,1}, {7202,56123,1},{7207,56133,1},{7203,56131,1},{7200,56133,1},{7198,56129,1}, {7200,56114,1},{7202,56094,1},{7202,56061,1},{7197,56024,1},{7197,56018,1}, {7200,56026,1},{7198,56016,1},{7205,56016,1},{7210,56028,1},{7210,56016,1}, {7213,56038,1},{7215,56061,1},{7215,56039,1},{7213,56023,1},{7215,56019,1}, {7218,56016,1},{7235,56019,1},{7243,56013,1},{7243,56021,1},{7245,56016,1}, {7247,56023,1},{7252,56016,1},{7253,56004,1},{7258,56001,1},{7260,56004,1}, {7265,55999,1},{7267,55991,1},{7268,55991,1},{7268,55981,1},{7270,55976,1}, {7273,55976,1},{7273,55984,1},{7277,55979,1},{7278,55981,1},{7278,55971,1}, {7282,55969,1},{7293,55974,1},{7300,55964,1},{7305,55971,1},{7308,55968,1}, {7312,55973,1},{7313,55986,1},{7317,55978,1},{7330,55978,1},{7332,55971,1}, {7338,55976,1},{7345,55968,1},{7353,55973,1},{7355,55966,1},{7357,55973,1}, {7358,55969,1},{7357,55979,1},{7358,55981,1},{7363,55973,1},{7363,55964,1}, {7367,55968,1},{7368,55964,1},{7370,55971,1},{7373,55969,1},{7373,55978,1}, {7377,55993,1},{7375,56001,1},{7377,56008,1},{7370,56023,1},{7365,56048,1}, {7365,56074,1},{7368,56068,1},{7368,56049,1},{7377,56028,1},{7380,56024,1}, {7383,56033,1},{7383,56041,1},{7385,56036,1},{7385,56026,1},{7382,56023,1}, {7385,56013,1},{7388,56004,1},{7398,56008,1},{7402,56013,1},{7402,56028,1}, {7563,56053,129},{7560,56089,1},{7558,56101,1},{7543,56138,1},{7535,56168,1}, {7532,56171,1},{7530,56156,1},{7530,56171,1},{7525,56188,1},{7520,56178,1}, {7512,56191,1},{7508,56184,1},{7507,56188,1},{7503,56171,1},{7503,56184,1}, {7497,56193,1},{7488,56196,1},{7475,56193,1},{7475,56189,1},{7475,56179,1}, {7473,56189,1},{7468,56186,1},{7463,56164,1},{7463,56113,1},{7465,56108,1}, {7462,56081,1},{7463,56064,1},{7468,56051,1},{7467,56044,1},{7468,56028,1}, {7473,56029,1},{7475,56021,1},{7480,56008,1},{7480,56001,1},{7477,55991,1}, {7480,55998,1},{7480,55989,1},{7473,55989,1},{7475,55981,1},{7482,55984,1}, {7482,55973,1},{7485,55964,1},{7482,55963,1},{7482,55944,1},{7485,55949,1}, {7487,55939,1},{7492,55923,1},{7493,55923,1},{7495,55933,1},{7497,55931,1}, {7495,55926,1},{7495,55923,1},{7502,55929,1},{7502,55921,1},{7492,55914,1}, {7490,55909,1},{7490,55901,1},{7493,55896,1},{7498,55896,1},{7498,55904,1}, {7500,55903,1},{7500,55886,1},{7498,55874,1},{7507,55876,1},{7520,55891,1}, {7517,55898,1},{7520,55899,1},{7522,55898,1},{7523,55911,1},{7525,55936,1}, {7525,55928,1},{7527,55928,1},{7530,55944,1},{7530,55919,1},{7532,55931,1}, {7538,55941,1},{7537,55948,1},{7535,55944,1},{7537,55958,1},{7540,55946,1}, {7540,55933,1},{7537,55921,1},{7540,55923,1},{7542,55929,1},{7542,55934,1}, {7543,55941,1},{7542,55949,1},{7538,55953,1},{7540,55968,1},{7543,55968,1}, {7543,55958,1},{7545,55953,1},{7552,55961,1},{7557,55989,1},{7555,55999,1}, {7560,56009,1},{7558,56014,1},{7562,56031,1},{7563,56044,1},{7563,56053,1}, {7737,53671,129},{7735,53723,1},{7738,53726,1},{7738,53749,1},{7737,53741,1}, {7735,53759,1},{7733,53764,1},{7733,53774,1},{7733,53788,1},{7732,53791,1}, {7730,53803,1},{7728,53811,1},{7730,53821,1},{7730,53836,1},{7733,53826,1}, {7733,53818,1},{7737,53821,1},{7732,53851,1},{7732,53858,1},{7733,53854,1}, {7735,53861,1},{7737,53869,1},{7738,53869,1},{7738,53854,1},{7740,53849,1}, {7740,53836,1},{7745,53821,1},{7748,53829,1},{7745,53831,1},{7747,53846,1}, {7750,53858,1},{7752,53859,1},{7752,53846,1},{7753,53846,1},{7755,53894,1}, {7753,53901,1},{7752,53916,1},{7748,53929,1},{7747,53926,1},{7742,53961,1}, {7735,53991,1},{7730,53998,1},{7730,53988,1},{7727,53981,1},{7725,53959,1}, {7722,53946,1},{7718,53909,1},{7715,53908,1},{7713,53896,1},{7712,53906,1}, {7705,53911,1},{7695,53963,1},{7692,53961,1},{7690,53946,1},{7693,53908,1}, {7693,53899,1},{7690,53901,1},{7685,53918,1},{7682,53936,1},{7668,53946,1}, {7668,53934,1},{7662,53926,1},{7658,53904,1},{7657,53883,1},{7657,53863,1}, {7653,53853,1},{7655,53841,1},{7653,53831,1},{7650,53829,1},{7645,53838,1}, {7635,53843,1},{7630,53826,1},{7625,53801,1},{7627,53776,1},{7632,53769,1}, {7632,53754,1},{7637,53746,1},{7642,53729,1},{7647,53738,1},{7650,53734,1}, {7653,53746,1},{7657,53741,1},{7658,53746,1},{7660,53739,1},{7663,53746,1}, {7668,53744,1},{7673,53756,1},{7678,53763,1},{7682,53756,1},{7682,53746,1}, {7677,53739,1},{7675,53733,1},{7677,53704,1},{7670,53704,1},{7672,53691,1}, {7670,53688,1},{7668,53689,1},{7665,53703,1},{7655,53706,1},{7655,53693,1}, {7650,53679,1},{7652,53668,1},{7655,53663,1},{7655,53651,1},{7653,53659,1}, {7652,53643,1},{7650,53638,1},{7648,53641,1},{7648,53653,1},{7645,53654,1}, {7645,53668,1},{7635,53679,1},{7628,53673,1},{7628,53651,1},{7627,53644,1}, {7622,53641,1},{7617,53648,1},{7617,53639,1},{7613,53639,1},{7612,53629,1}, {7608,53628,1},{7613,53608,1},{7618,53606,1},{7625,53591,1},{7637,53586,1}, {7632,53579,1},{7633,53564,1},{7630,53571,1},{7627,53571,1},{7627,53566,1}, {7617,53579,1},{7617,53578,1},{7615,53566,1},{7612,53581,1},{7610,53576,1}, {7612,53556,1},{7603,53588,1},{7597,53588,1},{7600,53574,1},{7597,53569,1}, {7595,53566,1},{7592,53576,1},{7592,53568,1},{7592,53564,1},{7588,53559,1}, {7585,53538,1},{7585,53528,1},{7590,53521,1},{7580,53503,1},{7582,53491,1}, {7585,53488,1},{7592,53489,1},{7597,53498,1},{7598,53491,1},{7602,53489,1}, {7600,53478,1},{7598,53476,1},{7602,53466,1},{7605,53463,1},{7610,53471,1}, {7610,53461,1},{7615,53469,1},{7620,53451,1},{7618,53441,1},{7613,53434,1}, {7607,53434,1},{7595,53443,1},{7593,53436,1},{7595,53434,1},{7598,53438,1}, {7600,53434,1},{7598,53424,1},{7595,53409,1},{7590,53406,1},{7593,53394,1}, {7598,53386,1},{7605,53349,1},{7603,53331,1},{7603,53323,1},{7597,53323,1}, {7597,53314,1},{7593,53294,1},{7593,53279,1},{7595,53266,1},{7597,53263,1}, {7598,53271,1},{7602,53279,1},{7602,53273,1},{7602,53266,1},{7605,53281,1}, {7612,53289,1},{7612,53279,1},{7612,53266,1},{7613,53288,1},{7615,53279,1}, {7617,53274,1},{7615,53258,1},{7615,53251,1},{7610,53246,1},{7608,53233,1}, {7615,53246,1},{7618,53241,1},{7618,53251,1},{7623,53253,1},{7623,53266,1}, {7627,53273,1},{7635,53274,1},{7640,53294,1},{7642,53326,1},{7645,53338,1}, {7642,53358,1},{7643,53383,1},{7650,53394,1},{7655,53394,1},{7657,53404,1}, {7660,53404,1},{7662,53414,1},{7668,53418,1},{7667,53426,1},{7670,53446,1}, {7673,53454,1},{7675,53478,1},{7680,53496,1},{7683,53499,1},{7687,53494,1}, {7692,53518,1},{7695,53518,1},{7697,53528,1},{7700,53528,1},{7702,53541,1}, {7710,53554,1},{7712,53571,1},{7715,53574,1},{7718,53598,1},{7728,53606,1}, {7732,53616,1},{7733,53624,1},{7732,53643,1},{7735,53654,1},{7737,53671,1}, {7935,55166,129},{7930,55196,1},{7928,55226,1},{7923,55236,1},{7923,55248,1}, {7922,55243,1},{7917,55248,1},{7910,55274,1},{7898,55269,1},{7895,55259,1}, {7893,55279,1},{7890,55273,1},{7887,55279,1},{7893,55298,1},{7902,55294,1}, {7905,55326,1},{7908,55343,1},{7908,55371,1},{7897,55413,1},{7897,55421,1}, {7897,55423,1},{7897,55428,1},{7893,55438,1},{7880,55418,1},{7880,55436,1}, {7877,55443,1},{7878,55453,1},{7880,55478,1},{7882,55484,1},{7883,55501,1}, {7882,55501,1},{7880,55504,1},{7877,55508,1},{7873,55538,1},{7870,55546,1}, {7863,55529,1},{7862,55534,1},{7863,55551,1},{7862,55558,1},{7860,55561,1}, {7858,55581,1},{7857,55581,1},{7855,55571,1},{7853,55576,1},{7848,55569,1}, {7843,55549,1},{7838,55561,1},{7830,55556,1},{7828,55561,1},{7828,55583,1}, {7820,55594,1},{7807,55641,1},{7800,55639,1},{7797,55626,1},{7788,55634,1}, {7783,55618,1},{7782,55581,1},{7782,55554,1},{7778,55546,1},{7782,55524,1}, {7782,55509,1},{7787,55476,1},{7788,55476,1},{7802,55453,1},{7808,55461,1}, {7813,55436,1},{7820,55433,1},{7818,55408,1},{7820,55401,1},{7823,55389,1}, {7828,55323,1},{7823,55274,1},{7828,55254,1},{7832,55256,1},{7835,55269,1}, {7838,55258,1},{7837,55243,1},{7837,55223,1},{7833,55198,1},{7832,55168,1}, {7827,55146,1},{7825,55146,1},{7823,55138,1},{7827,55089,1},{7835,55054,1}, {7848,55031,1},{7852,55034,1},{7857,55051,1},{7858,55069,1},{7857,55101,1}, {7852,55128,1},{7852,55164,1},{7850,55184,1},{7853,55191,1},{7857,55186,1}, {7858,55198,1},{7862,55194,1},{7862,55133,1},{7863,55131,1},{7867,55153,1}, {7867,55188,1},{7872,55184,1},{7872,55201,1},{7873,55204,1},{7878,55189,1}, {7875,55178,1},{7877,55176,1},{7873,55154,1},{7880,55163,1},{7878,55158,1}, {7880,55149,1},{7880,55146,1},{7877,55146,1},{7877,55138,1},{7877,55128,1}, {7878,55126,1},{7877,55116,1},{7882,55119,1},{7890,55154,1},{7893,55133,1}, {7897,55131,1},{7898,55116,1},{7898,55109,1},{7895,55106,1},{7895,55091,1}, {7887,55079,1},{7880,55058,1},{7880,55044,1},{7880,55034,1},{7885,55034,1}, {7888,55049,1},{7902,55068,1},{7905,55043,1},{7902,55021,1},{7902,54981,1}, {7903,54978,1},{7917,54973,1},{7928,54994,1},{7930,54988,1},{7933,54993,1}, {7930,55019,1},{7933,55074,1},{7937,55138,1},{7935,55166,1},{7882,55741,129}, {7880,55784,1},{7873,55834,1},{7870,55848,1},{7868,55883,1},{7862,55906,1}, {7863,55918,1},{7862,55921,1},{7853,55909,1},{7848,55943,1},{7852,55964,1}, {7852,55988,1},{7845,56023,1},{7837,56053,1},{7832,56043,1},{7823,55996,1}, {7820,56023,1},{7815,56028,1},{7812,56048,1},{7808,56043,1},{7807,56048,1}, {7795,56026,1},{7797,56004,1},{7795,55994,1},{7788,55943,1},{7787,55908,1}, {7787,55898,1},{7790,55893,1},{7790,55883,1},{7787,55873,1},{7787,55863,1}, {7785,55869,1},{7787,55886,1},{7785,55879,1},{7785,55884,1},{7783,55864,1}, {7778,55848,1},{7780,55826,1},{7787,55824,1},{7792,55836,1},{7795,55804,1}, {7800,55786,1},{7803,55758,1},{7805,55771,1},{7808,55771,1},{7808,55806,1}, {7808,55844,1},{7813,55849,1},{7817,55819,1},{7820,55804,1},{7822,55743,1}, {7825,55744,1},{7823,55754,1},{7825,55759,1},{7828,55748,1},{7830,55729,1}, {7833,55734,1},{7837,55728,1},{7840,55733,1},{7842,55716,1},{7847,55698,1}, {7850,55694,1},{7852,55704,1},{7853,55701,1},{7855,55734,1},{7860,55724,1}, {7860,55711,1},{7865,55703,1},{7877,55699,1},{7882,55721,1},{7882,55741,1}, {7663,55498,129},{7665,55514,1},{7663,55533,1},{7660,55553,1},{7663,55563,1}, {7662,55578,1},{7660,55581,1},{7660,55568,1},{7658,55568,1},{7658,55584,1}, {7650,55608,1},{7652,55613,1},{7650,55621,1},{7647,55609,1},{7642,55618,1}, {7640,55626,1},{7640,55629,1},{7647,55624,1},{7645,55633,1},{7647,55634,1}, {7647,55641,1},{7643,55641,1},{7643,55651,1},{7645,55648,1},{7647,55649,1}, {7653,55631,1},{7660,55633,1},{7662,55649,1},{7660,55658,1},{7658,55661,1}, {7660,55663,1},{7662,55664,1},{7662,55684,1},{7663,55683,1},{7665,55688,1}, {7665,55681,1},{7665,55669,1},{7665,55653,1},{7667,55651,1},{7668,55661,1}, {7667,55693,1},{7662,55694,1},{7658,55721,1},{7657,55711,1},{7658,55696,1}, {7657,55701,1},{7655,55716,1},{7655,55721,1},{7653,55728,1},{7652,55759,1}, {7648,55769,1},{7642,55769,1},{7632,55758,1},{7618,55784,1},{7613,55786,1}, {7608,55778,1},{7597,55771,1},{7587,55781,1},{7580,55769,1},{7573,55743,1}, {7568,55798,1},{7550,55794,1},{7543,55798,1},{7540,55808,1},{7542,55789,1}, {7550,55788,1},{7557,55763,1},{7553,55761,1},{7555,55751,1},{7550,55759,1}, {7547,55761,1},{7547,55753,1},{7550,55751,1},{7552,55746,1},{7548,55741,1}, {7548,55731,1},{7547,55741,1},{7545,55731,1},{7545,55744,1},{7542,55759,1}, {7542,55756,1},{7540,55731,1},{7540,55733,1},{7538,55746,1},{7537,55748,1}, {7535,55738,1},{7537,55734,1},{7535,55729,1},{7537,55729,1},{7537,55723,1}, {7533,55719,1},{7532,55723,1},{7533,55723,1},{7533,55728,1},{7530,55723,1}, {7528,55731,1},{7532,55736,1},{7533,55746,1},{7528,55736,1},{7527,55743,1}, {7528,55744,1},{7530,55746,1},{7528,55748,1},{7522,55761,1},{7520,55763,1}, {7520,55756,1},{7520,55766,1},{7517,55768,1},{7515,55776,1},{7517,55774,1}, {7517,55778,1},{7512,55774,1},{7512,55748,1},{7517,55734,1},{7522,55733,1}, {7522,55726,1},{7520,55729,1},{7518,55721,1},{7517,55721,1},{7512,55731,1}, {7512,55738,1},{7507,55743,1},{7502,55738,1},{7502,55729,1},{7500,55681,1}, {7498,55664,1},{7500,55658,1},{7502,55661,1},{7502,55651,1},{7507,55649,1}, {7505,55639,1},{7500,55641,1},{7500,55609,1},{7498,55601,1},{7500,55596,1}, {7503,55598,1},{7512,55609,1},{7512,55603,1},{7503,55586,1},{7498,55593,1}, {7497,55576,1},{7498,55521,1},{7502,55501,1},{7503,55496,1},{7510,55498,1}, {7515,55493,1},{7517,55496,1},{7518,55483,1},{7520,55483,1},{7523,55493,1}, {7523,55538,1},{7527,55496,1},{7528,55508,1},{7532,55511,1},{7530,55486,1}, {7532,55473,1},{7533,55469,1},{7535,55459,1},{7538,55468,1},{7537,55476,1}, {7535,55466,1},{7535,55473,1},{7535,55479,1},{7537,55478,1},{7537,55489,1}, {7538,55493,1},{7538,55484,1},{7543,55478,1},{7543,55464,1},{7545,55533,1}, {7547,55534,1},{7547,55506,1},{7548,55534,1},{7550,55539,1},{7552,55508,1}, {7555,55553,1},{7555,55533,1},{7558,55564,1},{7560,55569,1},{7562,55549,1}, {7565,55554,1},{7568,55608,1},{7568,55633,1},{7570,55648,1},{7572,55641,1}, {7567,55578,1},{7567,55569,1},{7568,55581,1},{7570,55574,1},{7565,55508,1}, {7565,55496,1},{7563,55489,1},{7565,55479,1},{7562,55453,1},{7562,55429,1}, {7560,55426,1},{7558,55413,1},{7560,55408,1},{7557,55399,1},{7560,55398,1}, {7560,55386,1},{7558,55378,1},{7555,55339,1},{7555,55301,1},{7550,55276,1}, {7550,55269,1},{7553,55269,1},{7555,55258,1},{7557,55263,1},{7560,55251,1}, {7562,55248,1},{7562,55264,1},{7562,55273,1},{7563,55266,1},{7567,55268,1}, {7568,55283,1},{7572,55279,1},{7573,55298,1},{7572,55314,1},{7568,55326,1}, {7570,55334,1},{7570,55326,1},{7573,55326,1},{7575,55313,1},{7578,55326,1}, {7580,55299,1},{7585,55306,1},{7588,55319,1},{7590,55349,1},{7588,55358,1}, {7585,55363,1},{7582,55391,1},{7577,55389,1},{7575,55394,1},{7575,55413,1}, {7577,55413,1},{7580,55444,1},{7577,55403,1},{7580,55404,1},{7585,55398,1}, {7587,55383,1},{7592,55376,1},{7597,55396,1},{7602,55404,1},{7600,55396,1}, {7598,55369,1},{7602,55351,1},{7608,55346,1},{7612,55348,1},{7617,55359,1}, {7622,55386,1},{7625,55398,1},{7622,55364,1},{7623,55351,1},{7622,55331,1}, {7622,55323,1},{7625,55319,1},{7627,55331,1},{7628,55328,1},{7628,55316,1}, {7632,55333,1},{7635,55326,1},{7637,55331,1},{7635,55341,1},{7640,55331,1}, {7645,55349,1},{7643,55391,1},{7642,55404,1},{7637,55413,1},{7633,55431,1}, {7623,55423,1},{7623,55438,1},{7618,55461,1},{7613,55473,1},{7608,55463,1}, {7612,55494,1},{7608,55474,1},{7605,55504,1},{7597,55519,1},{7595,55529,1}, {7590,55521,1},{7592,55536,1},{7590,55539,1},{7588,55538,1},{7587,55543,1}, {7590,55548,1},{7590,55561,1},{7595,55578,1},{7597,55591,1},{7597,55571,1}, {7593,55549,1},{7597,55546,1},{7598,55549,1},{7600,55533,1},{7603,55536,1}, {7603,55528,1},{7610,55524,1},{7613,55514,1},{7613,55523,1},{7615,55529,1}, {7613,55554,1},{7612,55564,1},{7613,55573,1},{7615,55594,1},{7613,55566,1}, {7617,55553,1},{7620,55536,1},{7622,55493,1},{7625,55484,1},{7627,55489,1}, {7627,55529,1},{7630,55516,1},{7632,55518,1},{7628,55533,1},{7628,55551,1}, {7630,55534,1},{7632,55544,1},{7632,55533,1},{7635,55521,1},{7638,55521,1}, {7637,55511,1},{7638,55504,1},{7637,55478,1},{7637,55466,1},{7648,55439,1}, {7652,55439,1},{7653,55464,1},{7657,55464,1},{7663,55498,1},{7107,62968,129}, {7100,62968,1},{7098,62964,1},{7097,62984,1},{7092,62996,1},{7087,62998,1}, {7085,62994,1},{7080,63003,1},{7078,62989,1},{7077,62988,1},{7077,63004,1}, {7068,63008,1},{7065,63004,1},{7063,62978,1},{7060,62964,1},{7060,62954,1}, {7052,62933,1},{7053,62923,1},{7057,62921,1},{7058,62914,1},{7055,62889,1}, {7052,62879,1},{7053,62839,1},{7052,62838,1},{7050,62833,1},{7050,62821,1}, {7047,62809,1},{7047,62783,1},{7043,62753,1},{7043,62729,1},{7045,62723,1}, {7052,62738,1},{7057,62729,1},{7060,62733,1},{7063,62748,1},{7065,62769,1}, {7077,62794,1},{7080,62809,1},{7088,62823,1},{7088,62833,1},{7088,62873,1}, {7090,62889,1},{7093,62906,1},{7097,62911,1},{7102,62941,1},{7108,62963,1}, {7108,62968,1},{7107,62968,1},{7282,63224,129},{7275,63233,1},{7272,63239,1}, {7270,63251,1},{7268,63251,1},{7267,63266,1},{7263,63264,1},{7260,63278,1}, {7262,63288,1},{7260,63291,1},{7253,63319,1},{7248,63316,1},{7250,63329,1}, {7250,63338,1},{7247,63343,1},{7240,63343,1},{7238,63338,1},{7243,63309,1}, {7245,63309,1},{7243,63301,1},{7247,63271,1},{7243,63259,1},{7238,63263,1}, {7237,63268,1},{7230,63304,1},{7225,63304,1},{7225,63309,1},{7228,63314,1}, {7227,63331,1},{7220,63316,1},{7217,63323,1},{7213,63321,1},{7212,63304,1}, {7213,63279,1},{7217,63276,1},{7218,63284,1},{7220,63286,1},{7220,63279,1}, {7217,63269,1},{7220,63256,1},{7223,63239,1},{7230,63229,1},{7235,63209,1}, {7243,63153,1},{7247,63141,1},{7247,63134,1},{7243,63129,1},{7247,63128,1}, {7250,63136,1},{7253,63129,1},{7255,63121,1},{7255,63119,1},{7253,63121,1}, {7255,63113,1},{7257,63111,1},{7260,63099,1},{7272,63096,1},{7283,63088,1}, {7285,63098,1},{7287,63136,1},{7285,63164,1},{7283,63179,1},{7285,63199,1}, {7283,63209,1},{7283,63221,1},{7282,63224,1},{7292,63346,129},{7288,63346,1}, {7287,63336,1},{7283,63338,1},{7282,63321,1},{7280,63318,1},{7280,63323,1}, {7280,63326,1},{7278,63328,1},{7277,63339,1},{7275,63333,1},{7275,63341,1}, {7272,63349,1},{7268,63344,1},{7268,63336,1},{7270,63333,1},{7268,63328,1}, {7272,63329,1},{7268,63319,1},{7270,63311,1},{7270,63286,1},{7268,63276,1}, {7272,63264,1},{7272,63276,1},{7275,63261,1},{7280,63258,1},{7287,63224,1}, {7287,63174,1},{7290,63153,1},{7292,63129,1},{7290,63083,1},{7295,63078,1}, {7298,63083,1},{7302,63156,1},{7307,63216,1},{7303,63238,1},{7303,63256,1}, {7302,63264,1},{7298,63303,1},{7297,63314,1},{7293,63326,1},{7293,63328,1}, {7292,63334,1},{7293,63339,1},{7292,63346,1},{7342,63094,129},{7333,63168,1}, {7325,63209,1},{7323,63214,1},{7322,63213,1},{7322,63163,1},{7330,63111,1}, {7330,63091,1},{7332,63049,1},{7332,63036,1},{7330,63038,1},{7332,63044,1}, {7327,63073,1},{7325,63113,1},{7322,63138,1},{7318,63173,1},{7320,63193,1}, {7318,63223,1},{7315,63239,1},{7315,63249,1},{7310,63234,1},{7308,63203,1}, {7305,63158,1},{7305,63119,1},{7302,63098,1},{7308,63046,1},{7312,63031,1}, {7312,62991,1},{7318,62964,1},{7323,62979,1},{7330,62991,1},{7333,63008,1}, {7338,63006,1},{7340,63011,1},{7343,63064,1},{7342,63094,1},{7032,60106,129}, {7028,60146,1},{7025,60168,1},{7023,60184,1},{7020,60209,1},{7012,60233,1}, {7003,60244,1},{6992,60266,1},{6988,60284,1},{6982,60329,1},{6978,60339,1}, {6973,60346,1},{6968,60339,1},{6967,60333,1},{6963,60353,1},{6952,60334,1}, {6945,60311,1},{6935,60258,1},{6932,60218,1},{6923,60179,1},{6925,60171,1}, {6927,60153,1},{6930,60148,1},{6932,60143,1},{6933,60121,1},{6938,60109,1}, {6942,60109,1},{6945,60114,1},{6943,60121,1},{6943,60134,1},{6943,60149,1}, {6942,60156,1},{6945,60171,1},{6943,60198,1},{6945,60181,1},{6947,60178,1}, {6955,60186,1},{6958,60201,1},{6957,60181,1},{6955,60176,1},{6948,60173,1}, {6945,60158,1},{6947,60151,1},{6952,60163,1},{6952,60161,1},{6948,60141,1}, {6948,60138,1},{6952,60138,1},{6957,60149,1},{6960,60141,1},{6960,60138,1}, {6957,60138,1},{6955,60129,1},{6957,60109,1},{6958,60066,1},{6962,60054,1}, {6963,60054,1},{6970,60036,1},{6973,60039,1},{6975,60049,1},{6975,60071,1}, {6972,60076,1},{6967,60094,1},{6968,60098,1},{6977,60073,1},{6980,60051,1}, {6985,60043,1},{6987,60046,1},{6987,60056,1},{6993,60049,1},{6997,60059,1}, {6997,60073,1},{6992,60113,1},{6993,60108,1},{6997,60086,1},{7002,60063,1}, {7008,60053,1},{7018,60051,1},{7025,60061,1},{7032,60096,1},{7032,60106,1}, {7395,55536,129},{7393,55556,1},{7390,55553,1},{7387,55558,1},{7380,55596,1}, {7373,55616,1},{7370,55611,1},{7368,55618,1},{7375,55624,1},{7375,55654,1}, {7373,55658,1},{7375,55659,1},{7378,55673,1},{7382,55723,1},{7385,55739,1}, {7390,55746,1},{7392,55758,1},{7390,55763,1},{7387,55754,1},{7390,55776,1}, {7385,55789,1},{7385,55814,1},{7377,55831,1},{7373,55839,1},{7370,55843,1}, {7362,55838,1},{7358,55818,1},{7357,55819,1},{7355,55814,1},{7358,55791,1}, {7352,55791,1},{7353,55774,1},{7352,55773,1},{7348,55769,1},{7345,55776,1}, {7350,55794,1},{7347,55799,1},{7347,55816,1},{7345,55819,1},{7343,55811,1}, {7342,55819,1},{7335,55819,1},{7337,55809,1},{7335,55801,1},{7332,55771,1}, {7330,55771,1},{7330,55764,1},{7327,55753,1},{7323,55749,1},{7312,55716,1}, {7307,55713,1},{7300,55684,1},{7298,55691,1},{7295,55689,1},{7295,55693,1}, {7285,55693,1},{7290,55696,1},{7298,55711,1},{7303,55738,1},{7303,55768,1}, {7297,55806,1},{7293,55814,1},{7288,55811,1},{7287,55794,1},{7285,55813,1}, {7278,55819,1},{7278,55828,1},{7273,55834,1},{7267,55818,1},{7260,55818,1}, {7260,55828,1},{7268,55844,1},{7272,55871,1},{7275,55876,1},{7275,55883,1}, {7272,55884,1},{7270,55878,1},{7263,55891,1},{7257,55896,1},{7253,55893,1}, {7253,55899,1},{7242,55906,1},{7240,55896,1},{7237,55891,1},{7232,55869,1}, {7232,55849,1},{7230,55866,1},{7227,55871,1},{7228,55879,1},{7225,55881,1}, {7225,55874,1},{7223,55878,1},{7223,55883,1},{7208,55886,1},{7207,55881,1}, {7203,55849,1},{7202,55869,1},{7203,55888,1},{7197,55884,1},{7195,55879,1}, {7195,55873,1},{7192,55859,1},{7190,55863,1},{7193,55884,1},{7192,55886,1}, {7182,55878,1},{7180,55861,1},{7182,55861,1},{7183,55868,1},{7185,55864,1}, {7185,55859,1},{7180,55849,1},{7180,55843,1},{7170,55828,1},{7162,55788,1}, {7162,55771,1},{7165,55759,1},{7165,55744,1},{7167,55738,1},{7163,55724,1}, {7165,55714,1},{7173,55699,1},{7180,55704,1},{7188,55714,1},{7190,55711,1}, {7190,55708,1},{7187,55709,1},{7185,55703,1},{7180,55693,1},{7172,55686,1}, {7170,55698,1},{7165,55698,1},{7163,55704,1},{7160,55708,1},{7158,55718,1}, {7153,55721,1},{7153,55733,1},{7142,55716,1},{7132,55689,1},{7128,55681,1}, {7128,55666,1},{7127,55664,1},{7130,55653,1},{7138,55639,1},{7138,55633,1}, {7135,55628,1},{7135,55613,1},{7147,55604,1},{7153,55594,1},{7158,55599,1}, {7162,55579,1},{7177,55568,1},{7178,55558,1},{7185,55549,1},{7187,55529,1}, {7193,55519,1},{7198,55504,1},{7202,55501,1},{7205,55491,1},{7210,55494,1}, {7208,55488,1},{7210,55486,1},{7213,55488,1},{7213,55479,1},{7218,55471,1}, {7220,55454,1},{7220,55449,1},{7220,55448,1},{7217,55441,1},{7218,55434,1}, {7223,55431,1},{7225,55434,1},{7227,55428,1},{7228,55433,1},{7228,55421,1}, {7233,55413,1},{7228,55396,1},{7225,55396,1},{7225,55386,1},{7227,55389,1}, {7230,55378,1},{7230,55369,1},{7228,55368,1},{7232,55364,1},{7230,55358,1}, {7237,55348,1},{7240,55348,1},{7238,55358,1},{7242,55353,1},{7240,55344,1}, {7247,55339,1},{7247,55344,1},{7253,55321,1},{7252,55321,1},{7258,55296,1}, {7260,55294,1},{7265,55276,1},{7272,55263,1},{7282,55261,1},{7287,55271,1}, {7298,55279,1},{7303,55286,1},{7305,55301,1},{7307,55296,1},{7307,55299,1}, {7307,55308,1},{7308,55308,1},{7308,55341,1},{7305,55339,1},{7305,55346,1}, {7302,55353,1},{7302,55359,1},{7298,55358,1},{7297,55363,1},{7297,55354,1}, {7292,55363,1},{7288,55374,1},{7292,55374,1},{7292,55383,1},{7290,55376,1}, {7287,55384,1},{7280,55389,1},{7278,55398,1},{7278,55404,1},{7280,55401,1}, {7278,55406,1},{7275,55406,1},{7275,55394,1},{7273,55399,1},{7272,55406,1}, {7270,55423,1},{7268,55431,1},{7270,55436,1},{7268,55448,1},{7270,55453,1}, {7272,55454,1},{7273,55449,1},{7277,55451,1},{7275,55456,1},{7275,55463,1}, {7275,55471,1},{7275,55483,1},{7273,55491,1},{7277,55501,1},{7283,55504,1}, {7287,55494,1},{7290,55498,1},{7292,55491,1},{7295,55498,1},{7295,55486,1}, {7302,55489,1},{7303,55494,1},{7302,55498,1},{7305,55501,1},{7303,55504,1}, {7302,55496,1},{7300,55498,1},{7297,55494,1},{7295,55499,1},{7297,55508,1}, {7295,55511,1},{7292,55509,1},{7292,55504,1},{7288,55503,1},{7288,55529,1}, {7292,55528,1},{7293,55533,1},{7295,55531,1},{7298,55518,1},{7300,55519,1}, {7300,55524,1},{7303,55524,1},{7305,55523,1},{7305,55514,1},{7308,55519,1}, {7310,55514,1},{7310,55504,1},{7313,55513,1},{7312,55498,1},{7308,55491,1}, {7308,55484,1},{7312,55484,1},{7313,55478,1},{7317,55478,1},{7320,55489,1}, {7322,55481,1},{7323,55491,1},{7328,55498,1},{7327,55501,1},{7328,55508,1}, {7323,55516,1},{7323,55526,1},{7322,55523,1},{7318,55533,1},{7318,55553,1}, {7320,55559,1},{7322,55539,1},{7325,55526,1},{7333,55516,1},{7340,55499,1}, {7337,55496,1},{7332,55501,1},{7332,55486,1},{7328,55478,1},{7327,55448,1}, {7330,55433,1},{7332,55433,1},{7333,55423,1},{7337,55406,1},{7340,55404,1}, {7345,55378,1},{7347,55381,1},{7348,55374,1},{7348,55384,1},{7355,55393,1}, {7355,55408,1},{7360,55416,1},{7358,55436,1},{7360,55448,1},{7347,55469,1}, {7343,55483,1},{7342,55486,1},{7342,55494,1},{7343,55493,1},{7348,55476,1}, {7360,55481,1},{7360,55471,1},{7362,55466,1},{7360,55459,1},{7362,55444,1}, {7367,55451,1},{7367,55431,1},{7372,55434,1},{7373,55424,1},{7377,55438,1}, {7377,55433,1},{7380,55436,1},{7382,55448,1},{7383,55449,1},{7382,55461,1}, {7385,55471,1},{7385,55481,1},{7385,55494,1},{7380,55511,1},{7380,55521,1}, {7373,55533,1},{7382,55541,1},{7385,55551,1},{7390,55549,1},{7387,55549,1}, {7388,55543,1},{7387,55539,1},{7383,55531,1},{7383,55511,1},{7387,55506,1}, {7390,55511,1},{7395,55536,1},{7617,54293,129},{7610,54283,1},{7605,54294,1}, {7600,54329,1},{7595,54348,1},{7595,54359,1},{7592,54363,1},{7590,54358,1}, {7587,54329,1},{7585,54318,1},{7582,54321,1},{7582,54313,1},{7582,54324,1}, {7583,54333,1},{7583,54338,1},{7582,54333,1},{7580,54341,1},{7583,54353,1}, {7583,54386,1},{7583,54391,1},{7582,54391,1},{7580,54376,1},{7578,54393,1}, {7575,54391,1},{7572,54401,1},{7562,54396,1},{7557,54401,1},{7557,54406,1}, {7555,54404,1},{7552,54411,1},{7553,54436,1},{7557,54456,1},{7557,54486,1}, {7553,54498,1},{7553,54569,1},{7552,54586,1},{7552,54611,1},{7548,54644,1}, {7550,54644,1},{7553,54643,1},{7555,54633,1},{7557,54651,1},{7558,54646,1}, {7562,54653,1},{7567,54643,1},{7568,54653,1},{7570,54641,1},{7572,54639,1}, {7572,54631,1},{7573,54629,1},{7577,54613,1},{7577,54598,1},{7578,54589,1}, {7580,54594,1},{7580,54568,1},{7583,54573,1},{7583,54566,1},{7587,54569,1}, {7587,54551,1},{7585,54548,1},{7587,54536,1},{7588,54531,1},{7593,54543,1}, {7595,54569,1},{7598,54576,1},{7602,54596,1},{7603,54596,1},{7603,54608,1}, {7605,54609,1},{7607,54598,1},{7612,54604,1},{7615,54586,1},{7618,54584,1}, {7620,54564,1},{7622,54566,1},{7623,54553,1},{7622,54546,1},{7620,54546,1}, {7622,54539,1},{7628,54516,1},{7630,54499,1},{7633,54503,1},{7638,54496,1}, {7643,54498,1},{7645,54521,1},{7648,54536,1},{7648,54554,1},{7652,54564,1}, {7653,54564,1},{7653,54551,1},{7657,54559,1},{7660,54558,1},{7658,54568,1}, {7660,54571,1},{7662,54571,1},{7663,54581,1},{7672,54586,1},{7675,54601,1}, {7680,54606,1},{7680,54613,1},{7682,54619,1},{7682,54644,1},{7685,54659,1}, {7682,54671,1},{7677,54668,1},{7675,54686,1},{7670,54693,1},{7665,54681,1}, {7663,54663,1},{7660,54668,1},{7655,54683,1},{7652,54673,1},{7652,54683,1}, {7648,54678,1},{7645,54688,1},{7643,54676,1},{7642,54676,1},{7640,54704,1}, {7635,54713,1},{7635,54718,1},{7633,54714,1},{7628,54728,1},{7625,54723,1}, {7625,54713,1},{7623,54716,1},{7623,54726,1},{7622,54726,1},{7617,54698,1}, {7610,54691,1},{7608,54698,1},{7603,54686,1},{7605,54706,1},{7605,54719,1}, {7607,54741,1},{7607,54753,1},{7603,54763,1},{7598,54773,1},{7593,54758,1}, {7590,54761,1},{7588,54743,1},{7582,54733,1},{7578,54734,1},{7580,54749,1}, {7588,54763,1},{7592,54799,1},{7588,54831,1},{7582,54826,1},{7580,54841,1}, {7577,54833,1},{7575,54841,1},{7570,54839,1},{7565,54848,1},{7577,54848,1}, {7578,54856,1},{7580,54874,1},{7583,54848,1},{7593,54846,1},{7597,54849,1}, {7605,54876,1},{7605,54903,1},{7602,54943,1},{7593,54976,1},{7583,54991,1}, {7575,54994,1},{7573,54989,1},{7563,54998,1},{7562,54989,1},{7555,54986,1}, {7553,54973,1},{7552,54968,1},{7550,54969,1},{7548,54961,1},{7547,54976,1}, {7543,54973,1},{7542,54964,1},{7537,54971,1},{7532,54963,1},{7528,54949,1}, {7522,54943,1},{7520,54943,1},{7518,54951,1},{7513,54948,1},{7513,54934,1}, {7510,54929,1},{7505,54934,1},{7502,54909,1},{7500,54859,1},{7493,54843,1}, {7492,54819,1},{7493,54806,1},{7493,54789,1},{7497,54769,1},{7502,54764,1}, {7505,54768,1},{7510,54763,1},{7510,54758,1},{7503,54761,1},{7500,54746,1}, {7502,54743,1},{7500,54736,1},{7495,54741,1},{7495,54734,1},{7493,54743,1}, {7493,54741,1},{7492,54699,1},{7493,54683,1},{7497,54679,1},{7498,54656,1}, {7498,54684,1},{7505,54671,1},{7507,54656,1},{7505,54643,1},{7503,54641,1}, {7500,54643,1},{7500,54633,1},{7498,54636,1},{7498,54626,1},{7495,54601,1}, {7490,54598,1},{7487,54584,1},{7487,54544,1},{7482,54529,1},{7483,54528,1}, {7485,54501,1},{7483,54501,1},{7482,54494,1},{7480,54504,1},{7478,54478,1}, {7480,54473,1},{7478,54469,1},{7470,54476,1},{7468,54461,1},{7465,54448,1}, {7465,54439,1},{7462,54436,1},{7458,54423,1},{7458,54413,1},{7457,54404,1}, {7457,54393,1},{7450,54368,1},{7445,54314,1},{7442,54299,1},{7440,54244,1}, {7442,54191,1},{7443,54173,1},{7453,54131,1},{7462,54103,1},{7467,54091,1}, {7468,54093,1},{7475,54113,1},{7480,54141,1},{7485,54178,1},{7485,54203,1}, {7485,54216,1},{7487,54213,1},{7488,54204,1},{7490,54219,1},{7492,54221,1}, {7497,54248,1},{7500,54284,1},{7500,54334,1},{7498,54361,1},{7502,54381,1}, {7505,54388,1},{7505,54379,1},{7507,54379,1},{7507,54396,1},{7508,54406,1}, {7508,54408,1},{7512,54401,1},{7510,54408,1},{7512,54409,1},{7513,54421,1}, {7517,54433,1},{7518,54429,1},{7522,54434,1},{7522,54444,1},{7523,54444,1}, {7527,54431,1},{7527,54413,1},{7522,54408,1},{7518,54398,1},{7517,54388,1}, {7517,54376,1},{7515,54378,1},{7515,54366,1},{7518,54359,1},{7513,54346,1}, {7515,54331,1},{7512,54298,1},{7515,54289,1},{7520,54306,1},{7522,54298,1}, {7522,54303,1},{7523,54296,1},{7522,54289,1},{7518,54291,1},{7518,54274,1}, {7520,54273,1},{7523,54278,1},{7528,54271,1},{7527,54268,1},{7520,54263,1}, {7513,54266,1},{7512,54256,1},{7510,54234,1},{7512,54228,1},{7515,54223,1}, {7512,54221,1},{7508,54211,1},{7507,54183,1},{7505,54166,1},{7505,54144,1}, {7507,54139,1},{7513,54143,1},{7518,54171,1},{7517,54149,1},{7518,54143,1}, {7525,54149,1},{7533,54158,1},{7542,54204,1},{7542,54188,1},{7543,54189,1}, {7542,54181,1},{7537,54146,1},{7542,54139,1},{7547,54129,1},{7542,54126,1}, {7537,54133,1},{7525,54123,1},{7522,54116,1},{7525,54104,1},{7528,54099,1}, {7530,54086,1},{7532,54084,1},{7527,54074,1},{7527,54086,1},{7525,54094,1}, {7517,54106,1},{7507,54093,1},{7498,54051,1},{7497,54031,1},{7498,54016,1}, {7505,54013,1},{7510,54019,1},{7518,54011,1},{7513,54008,1},{7510,53996,1}, {7513,53974,1},{7513,53969,1},{7512,53976,1},{7503,53983,1},{7502,53981,1}, {7497,53969,1},{7505,53911,1},{7510,53926,1},{7512,53933,1},{7510,53906,1}, {7512,53903,1},{7517,53911,1},{7520,53911,1},{7518,53879,1},{7512,53866,1}, {7513,53848,1},{7515,53841,1},{7515,53834,1},{7515,53821,1},{7518,53794,1}, {7525,53768,1},{7530,53769,1},{7532,53781,1},{7537,53783,1},{7547,53813,1}, {7548,53936,1},{7558,53974,1},{7560,53996,1},{7560,54009,1},{7563,54009,1}, {7568,54026,1},{7568,54036,1},{7570,54031,1},{7568,54019,1},{7565,53996,1}, {7565,53969,1},{7560,53933,1},{7557,53926,1},{7555,53899,1},{7557,53816,1}, {7560,53811,1},{7573,53834,1},{7580,53851,1},{7582,53933,1},{7583,53956,1}, {7585,53959,1},{7583,53976,1},{7583,53998,1},{7585,54004,1},{7585,54038,1}, {7588,54054,1},{7590,54054,1},{7590,54048,1},{7588,54006,1},{7588,53961,1}, {7588,53943,1},{7587,53928,1},{7587,53886,1},{7588,53871,1},{7590,53864,1}, {7595,53864,1},{7597,53889,1},{7600,53883,1},{7603,53886,1},{7603,53869,1}, {7603,53866,1},{7612,53873,1},{7615,53884,1},{7618,53901,1},{7620,53928,1}, {7618,54011,1},{7615,54048,1},{7617,54069,1},{7618,54041,1},{7623,54006,1}, {7623,53958,1},{7625,53949,1},{7628,53944,1},{7632,53951,1},{7635,53946,1}, {7645,53986,1},{7647,54034,1},{7652,54044,1},{7652,54064,1},{7648,54059,1}, {7650,54089,1},{7648,54096,1},{7645,54121,1},{7638,54128,1},{7635,54126,1}, {7635,54118,1},{7633,54124,1},{7632,54123,1},{7627,54138,1},{7622,54129,1}, {7618,54138,1},{7620,54168,1},{7627,54201,1},{7627,54236,1},{7625,54246,1}, {7622,54253,1},{7620,54278,1},{7617,54293,1},{7665,56336,129},{7668,56364,1}, {7668,56383,1},{7668,56398,1},{7665,56438,1},{7660,56454,1},{7657,56479,1}, {7647,56489,1},{7645,56473,1},{7647,56446,1},{7652,56438,1},{7648,56433,1}, {7648,56428,1},{7652,56394,1},{7650,56379,1},{7645,56396,1},{7645,56438,1}, {7643,56443,1},{7642,56463,1},{7638,56479,1},{7640,56499,1},{7633,56558,1}, {7630,56606,1},{7627,56613,1},{7622,56616,1},{7618,56598,1},{7617,56553,1}, {7617,56538,1},{7618,56494,1},{7617,56493,1},{7613,56529,1},{7612,56528,1}, {7613,56501,1},{7617,56481,1},{7617,56448,1},{7620,56421,1},{7625,56394,1}, {7627,56374,1},{7620,56411,1},{7618,56411,1},{7615,56396,1},{7615,56398,1}, {7617,56414,1},{7615,56443,1},{7612,56468,1},{7608,56461,1},{7607,56451,1}, {7607,56468,1},{7608,56481,1},{7607,56518,1},{7603,56506,1},{7602,56419,1}, {7600,56443,1},{7598,56429,1},{7595,56443,1},{7593,56439,1},{7590,56423,1}, {7583,56423,1},{7585,56428,1},{7590,56431,1},{7593,56446,1},{7600,56456,1}, {7598,56468,1},{7595,56464,1},{7598,56479,1},{7597,56493,1},{7593,56483,1}, {7590,56484,1},{7597,56503,1},{7597,56513,1},{7593,56524,1},{7600,56529,1}, {7602,56534,1},{7600,56543,1},{7597,56541,1},{7597,56553,1},{7593,56556,1}, {7590,56568,1},{7583,56558,1},{7578,56559,1},{7580,56566,1},{7583,56571,1}, {7585,56581,1},{7585,56574,1},{7583,56594,1},{7577,56619,1},{7563,56611,1}, {7560,56583,1},{7562,56571,1},{7560,56569,1},{7558,56559,1},{7558,56576,1}, {7558,56581,1},{7557,56579,1},{7555,56566,1},{7555,56573,1},{7555,56583,1}, {7558,56596,1},{7558,56613,1},{7557,56619,1},{7548,56626,1},{7547,56638,1}, {7545,56638,1},{7543,56643,1},{7543,56659,1},{7547,56661,1},{7560,56646,1}, {7563,56659,1},{7568,56663,1},{7567,56674,1},{7558,56696,1},{7553,56716,1}, {7552,56716,1},{7550,56706,1},{7547,56713,1},{7552,56729,1},{7558,56761,1}, {7557,56769,1},{7552,56774,1},{7548,56786,1},{7545,56776,1},{7545,56784,1}, {7547,56793,1},{7557,56784,1},{7557,56793,1},{7562,56798,1},{7562,56809,1}, {7558,56826,1},{7555,56831,1},{7548,56856,1},{7547,56878,1},{7543,56898,1}, {7540,56896,1},{7538,56878,1},{7537,56876,1},{7538,56898,1},{7542,56919,1}, {7540,56984,1},{7543,56954,1},{7547,56946,1},{7548,56924,1},{7550,56921,1}, {7555,56944,1},{7555,56959,1},{7560,56983,1},{7557,56983,1},{7555,57013,1}, {7557,57004,1},{7560,57006,1},{7560,57016,1},{7562,57018,1},{7563,57033,1}, {7565,57034,1},{7565,57029,1},{7565,57033,1},{7565,57056,1},{7563,57076,1}, {7563,57086,1},{7565,57071,1},{7568,57069,1},{7570,57106,1},{7577,57116,1}, {7577,57136,1},{7580,57144,1},{7582,57136,1},{7582,57139,1},{7582,57153,1}, {7582,57164,1},{7580,57163,1},{7578,57184,1},{7575,57193,1},{7573,57206,1}, {7575,57218,1},{7573,57226,1},{7582,57269,1},{7583,57303,1},{7582,57344,1}, {7582,57383,1},{7578,57406,1},{7577,57426,1},{7565,57409,1},{7563,57434,1}, {7565,57489,1},{7563,57494,1},{7562,57511,1},{7558,57529,1},{7555,57528,1}, {7553,57541,1},{7547,57499,1},{7548,57543,1},{7545,57578,1},{7543,57568,1}, {7540,57576,1},{7538,57588,1},{7537,57588,1},{7535,57583,1},{7532,57583,1}, {7532,57576,1},{7530,57574,1},{7528,57579,1},{7528,57591,1},{7517,57573,1}, {7517,57553,1},{7515,57551,1},{7513,57541,1},{7508,57539,1},{7507,57521,1}, {7507,57508,1},{7503,57503,1},{7503,57493,1},{7500,57503,1},{7498,57518,1}, {7497,57509,1},{7495,57509,1},{7497,57524,1},{7495,57533,1},{7500,57539,1}, {7503,57556,1},{7502,57574,1},{7500,57586,1},{7498,57581,1},{7492,57591,1}, {7490,57603,1},{7487,57598,1},{7487,57573,1},{7482,57548,1},{7487,57519,1}, {7490,57521,1},{7493,57518,1},{7487,57514,1},{7488,57509,1},{7493,57506,1}, {7490,57494,1},{7487,57501,1},{7482,57526,1},{7478,57526,1},{7475,57511,1}, {7472,57523,1},{7468,57514,1},{7463,57516,1},{7463,57521,1},{7458,57513,1}, {7458,57489,1},{7457,57481,1},{7457,57453,1},{7458,57429,1},{7457,57414,1}, {7445,57354,1},{7448,57328,1},{7452,57313,1},{7452,57291,1},{7453,57298,1}, {7457,57293,1},{7453,57288,1},{7452,57276,1},{7452,57258,1},{7457,57243,1}, {7463,57228,1},{7468,57223,1},{7475,57226,1},{7478,57234,1},{7478,57228,1}, {7483,57226,1},{7483,57209,1},{7490,57184,1},{7488,57179,1},{7483,57184,1}, {7477,57204,1},{7458,57189,1},{7453,57174,1},{7455,57154,1},{7453,57138,1}, {7450,57108,1},{7452,57091,1},{7450,57073,1},{7452,57066,1},{7450,57046,1}, {7457,57038,1},{7465,57036,1},{7467,57041,1},{7470,57038,1},{7463,57029,1}, {7452,57031,1},{7450,57026,1},{7448,57014,1},{7450,56999,1},{7455,56999,1}, {7468,56983,1},{7467,56981,1},{7453,56988,1},{7450,56976,1},{7448,56929,1}, {7448,56924,1},{7450,56924,1},{7455,56928,1},{7458,56919,1},{7462,56918,1}, {7460,56913,1},{7452,56911,1},{7448,56894,1},{7455,56868,1},{7462,56861,1}, {7462,56856,1},{7453,56856,1},{7447,56874,1},{7447,56841,1},{7450,56836,1}, {7447,56833,1},{7447,56806,1},{7452,56799,1},{7455,56804,1},{7453,56794,1}, {7448,56789,1},{7447,56779,1},{7447,56764,1},{7452,56759,1},{7447,56746,1}, {7448,56726,1},{7450,56723,1},{7448,56714,1},{7450,56686,1},{7455,56679,1}, {7460,56679,1},{7470,56693,1},{7477,56693,1},{7477,56706,1},{7478,56688,1}, {7483,56691,1},{7490,56681,1},{7485,56681,1},{7482,56674,1},{7485,56674,1}, {7483,56669,1},{7467,56654,1},{7467,56648,1},{7478,56644,1},{7483,56628,1}, {7478,56634,1},{7472,56631,1},{7472,56624,1},{7475,56609,1},{7472,56618,1}, {7468,56626,1},{7460,56623,1},{7457,56611,1},{7458,56598,1},{7455,56593,1}, {7455,56588,1},{7453,56543,1},{7455,56539,1},{7458,56536,1},{7455,56526,1}, {7460,56499,1},{7463,56504,1},{7460,56491,1},{7462,56478,1},{7467,56463,1}, {7472,56459,1},{7473,56464,1},{7472,56451,1},{7468,56446,1},{7470,56434,1}, {7475,56439,1},{7477,56448,1},{7483,56461,1},{7488,56459,1},{7488,56451,1}, {7483,56448,1},{7475,56426,1},{7475,56418,1},{7473,56413,1},{7463,56426,1}, {7463,56408,1},{7472,56404,1},{7470,56399,1},{7467,56403,1},{7465,56399,1}, {7465,56381,1},{7468,56368,1},{7470,56374,1},{7472,56371,1},{7472,56354,1}, {7470,56354,1},{7472,56349,1},{7473,56354,1},{7480,56331,1},{7492,56334,1}, {7493,56328,1},{7495,56331,1},{7503,56314,1},{7507,56313,1},{7508,56334,1}, {7510,56334,1},{7513,56324,1},{7515,56331,1},{7513,56309,1},{7515,56303,1}, {7517,56304,1},{7517,56298,1},{7518,56298,1},{7522,56286,1},{7532,56291,1}, {7537,56303,1},{7537,56291,1},{7543,56296,1},{7555,56314,1},{7558,56334,1}, {7562,56328,1},{7567,56336,1},{7575,56319,1},{7580,56326,1},{7588,56323,1}, {7592,56301,1},{7597,56283,1},{7600,56279,1},{7602,56273,1},{7612,56273,1}, {7617,56259,1},{7620,56256,1},{7623,56243,1},{7630,56229,1},{7635,56228,1}, {7637,56218,1},{7635,56201,1},{7630,56178,1},{7630,56171,1},{7632,56174,1}, {7633,56173,1},{7632,56168,1},{7628,56159,1},{7627,56173,1},{7625,56168,1}, {7627,56126,1},{7628,56114,1},{7628,56073,1},{7632,56069,1},{7632,56061,1}, {7628,56056,1},{7625,56036,1},{7622,56031,1},{7623,56018,1},{7623,55998,1}, {7630,55999,1},{7628,56008,1},{7630,56024,1},{7633,56038,1},{7632,56051,1}, {7630,56051,1},{7633,56054,1},{7637,56023,1},{7635,56018,1},{7637,56009,1}, {7635,55998,1},{7637,55991,1},{7638,55999,1},{7640,55996,1},{7638,55984,1}, {7640,55953,1},{7643,55936,1},{7650,55926,1},{7652,55931,1},{7652,55958,1}, {7660,55978,1},{7660,55969,1},{7655,55958,1},{7657,55956,1},{7655,55936,1}, {7658,55936,1},{7658,55921,1},{7660,55918,1},{7663,55913,1},{7663,55896,1}, {7668,55889,1},{7670,55873,1},{7670,55853,1},{7673,55839,1},{7677,55853,1}, {7678,55846,1},{7682,55851,1},{7677,55868,1},{7675,55869,1},{7677,55881,1}, {7675,55893,1},{7675,55906,1},{7678,55889,1},{7677,55878,1},{7678,55886,1}, {7680,55884,1},{7678,55893,1},{7680,55904,1},{7682,55881,1},{7687,55869,1}, {7687,55854,1},{7692,55851,1},{7693,55856,1},{7693,55866,1},{7695,55869,1}, {7697,55854,1},{7698,55854,1},{7697,55888,1},{7695,55889,1},{7700,55901,1}, {7698,55908,1},{7700,55911,1},{7700,55906,1},{7703,55898,1},{7707,55961,1}, {7705,55978,1},{7705,55994,1},{7700,56018,1},{7700,56034,1},{7698,56041,1}, {7697,56083,1},{7692,56091,1},{7692,56106,1},{7688,56113,1},{7688,56128,1}, {7693,56141,1},{7690,56171,1},{7685,56178,1},{7678,56206,1},{7675,56209,1}, {7675,56218,1},{7668,56219,1},{7655,56206,1},{7648,56188,1},{7643,56171,1}, {7638,56181,1},{7642,56189,1},{7642,56181,1},{7643,56178,1},{7647,56201,1}, {7658,56224,1},{7662,56224,1},{7662,56253,1},{7660,56268,1},{7662,56283,1}, {7660,56298,1},{7662,56318,1},{7665,56334,1},{8247,57911,129},{8245,57913,1}, {8247,57926,1},{8258,57971,1},{8262,57996,1},{8268,57939,1},{8268,57928,1}, {8272,57913,1},{8275,57904,1},{8278,57938,1},{8278,57908,1},{8280,57886,1}, {8290,57861,1},{8298,57798,1},{8303,57814,1},{8302,57823,1},{8300,57876,1}, {8303,57909,1},{8305,57933,1},{8302,58011,1},{8305,58041,1},{8302,58099,1}, {8295,58134,1},{8285,58154,1},{8277,58211,1},{8273,58253,1},{8270,58273,1}, {8272,58286,1},{8280,58221,1},{8285,58198,1},{8290,58193,1},{8293,58171,1}, {8302,58218,1},{8305,58246,1},{8307,58236,1},{8310,58271,1},{8308,58288,1}, {8310,58319,1},{8310,58374,1},{8305,58366,1},{8300,58356,1},{8293,58379,1}, {8288,58449,1},{8290,58451,1},{8300,58389,1},{8302,58389,1},{8307,58426,1}, {8310,58424,1},{8312,58499,1},{8312,58554,1},{8310,58569,1},{8305,58559,1}, {8303,58591,1},{8300,58571,1},{8302,58613,1},{8303,58634,1},{8298,58638,1}, {8298,58673,1},{8300,58689,1},{8298,58721,1},{8293,58721,1},{8297,58769,1}, {8293,58816,1},{8297,58833,1},{8295,58843,1},{8293,58841,1},{8293,58853,1}, {8295,58858,1},{8293,58871,1},{8293,58906,1},{8288,58899,1},{8282,58853,1}, {8270,58733,1},{8268,58701,1},{8265,58673,1},{8263,58671,1},{8265,58743,1}, {8265,58789,1},{8272,58846,1},{8272,58869,1},{8275,58873,1},{8285,58959,1}, {8283,58989,1},{8278,58984,1},{8277,59019,1},{8280,59001,1},{8285,59016,1}, {8285,59026,1},{8287,59006,1},{8290,59048,1},{8290,59071,1},{8288,59064,1}, {8287,59043,1},{8285,59064,1},{8282,59063,1},{8277,59091,1},{8283,59126,1}, {8283,59178,1},{8280,59198,1},{8277,59198,1},{8273,59184,1},{8272,59151,1}, {8272,59171,1},{8267,59181,1},{8265,59211,1},{8260,59201,1},{8260,59233,1}, {8258,59243,1},{8255,59231,1},{8247,59228,1},{8243,59199,1},{8247,59234,1}, {8252,59246,1},{8248,59259,1},{8252,59263,1},{8253,59311,1},{8252,59319,1}, {8252,59304,1},{8248,59301,1},{8250,59313,1},{8250,59328,1},{8250,59341,1}, {8248,59383,1},{8243,59406,1},{8232,59428,1},{8222,59416,1},{8217,59389,1}, {8213,59334,1},{8210,59349,1},{8202,59311,1},{8202,59286,1},{8198,59286,1}, {8188,59206,1},{8185,59174,1},{8180,59151,1},{8178,59134,1},{8180,59121,1}, {8182,59104,1},{8177,59124,1},{8172,59099,1},{8173,59059,1},{8175,59044,1}, {8177,59003,1},{8173,59001,1},{8172,58984,1},{8170,58973,1},{8170,58933,1}, {8167,58968,1},{8168,59003,1},{8163,58949,1},{8165,58938,1},{8162,58919,1}, {8160,58779,1},{8157,58721,1},{8157,58704,1},{8170,58628,1},{8172,58606,1}, {8155,58699,1},{8153,58701,1},{8153,58691,1},{8155,58651,1},{8152,58678,1}, {8157,58821,1},{8153,58858,1},{8152,58876,1},{8128,58671,1},{8127,58633,1}, {8127,58593,1},{8125,58589,1},{8123,58604,1},{8122,58583,1},{8118,58544,1}, {8118,58516,1},{8117,58539,1},{8118,58573,1},{8112,58538,1},{8110,58536,1}, {8113,58573,1},{8118,58593,1},{8128,58728,1},{8137,58801,1},{8145,58919,1}, {8150,58964,1},{8155,59074,1},{8153,59084,1},{8147,59091,1},{8137,59058,1}, {8125,58989,1},{8122,58934,1},{8102,58861,1},{8093,58816,1},{8093,58778,1}, {8090,58783,1},{8085,58771,1},{8085,58753,1},{8082,58753,1},{8075,58708,1}, {8063,58658,1},{8062,58639,1},{8058,58646,1},{8053,58621,1},{8042,58606,1}, {8038,58593,1},{8035,58571,1},{8035,58529,1},{8035,58508,1},{8038,58511,1}, {8042,58514,1},{8047,58504,1},{8057,58454,1},{8042,58499,1},{8038,58489,1}, {8033,58491,1},{8025,58539,1},{8020,58521,1},{8020,58461,1},{8020,58451,1}, {8017,58418,1},{8012,58389,1},{8012,58371,1},{8012,58358,1},{8018,58336,1}, {8018,58319,1},{8022,58306,1},{8022,58298,1},{8020,58294,1},{8012,58346,1}, {8008,58328,1},{8008,58298,1},{8008,58304,1},{8007,58303,1},{8007,58388,1}, {8013,58459,1},{8013,58473,1},{8010,58486,1},{8005,58486,1},{8003,58471,1}, {7998,58464,1},{7997,58413,1},{7993,58394,1},{7988,58394,1},{7992,58424,1}, {7988,58444,1},{7982,58436,1},{7982,58426,1},{7978,58423,1},{7977,58398,1}, {7973,58388,1},{7967,58311,1},{7968,58296,1},{7968,58261,1},{7970,58243,1}, {7980,58229,1},{7980,58244,1},{7982,58243,1},{7983,58193,1},{7983,58151,1}, {7985,58161,1},{7988,58134,1},{7988,58111,1},{7987,58094,1},{7985,58053,1}, {7978,58068,1},{7980,58104,1},{7978,58139,1},{7975,58181,1},{7977,58199,1}, {7972,58199,1},{7965,58219,1},{7955,58223,1},{7950,58201,1},{7950,58171,1}, {7950,58158,1},{7955,58148,1},{7955,58138,1},{7947,58139,1},{7943,58119,1}, {7943,58071,1},{7950,58041,1},{7952,58039,1},{7948,58029,1},{7940,58048,1}, {7937,58034,1},{7940,57983,1},{7943,57971,1},{7940,57966,1},{7942,57956,1}, {7945,57954,1},{7942,57943,1},{7950,57916,1},{7952,57869,1},{7952,57846,1}, {7952,57831,1},{7955,57821,1},{7952,57818,1},{7948,57823,1},{7948,57849,1}, {7948,57868,1},{7947,57878,1},{7947,57918,1},{7938,57921,1},{7935,57948,1}, {7933,57924,1},{7935,57911,1},{7935,57849,1},{7940,57828,1},{7947,57823,1}, {7945,57811,1},{7945,57799,1},{7945,57796,1},{7932,57819,1},{7935,57789,1}, {7935,57763,1},{7937,57744,1},{7935,57731,1},{7932,57748,1},{7930,57786,1}, {7927,57804,1},{7925,57788,1},{7928,57861,1},{7927,57923,1},{7923,57943,1}, {7923,58056,1},{7922,58086,1},{7920,58084,1},{7917,58053,1},{7915,58074,1}, {7913,58069,1},{7912,58081,1},{7907,58091,1},{7903,58091,1},{7903,58081,1}, {7903,58039,1},{7907,57971,1},{7908,57959,1},{7910,57958,1},{7910,57948,1}, {7915,57951,1},{7920,57923,1},{7918,57839,1},{7922,57758,1},{7918,57739,1}, {7918,57724,1},{7917,57711,1},{7917,57718,1},{7918,57744,1},{7915,57839,1}, {7915,57873,1},{7912,57923,1},{7910,57928,1},{7908,57919,1},{7908,57873,1}, {7907,57836,1},{7905,57803,1},{7902,57786,1},{7903,57764,1},{7907,57756,1}, {7907,57723,1},{7908,57701,1},{7907,57648,1},{7905,57753,1},{7902,57766,1}, {7897,57741,1},{7880,57708,1},{7877,57711,1},{7878,57719,1},{7887,57731,1}, {7897,57764,1},{7898,57818,1},{7903,57864,1},{7902,57899,1},{7897,57964,1}, {7893,57953,1},{7890,57904,1},{7887,57891,1},{7883,57893,1},{7888,57913,1}, {7888,57949,1},{7890,57968,1},{7888,58008,1},{7885,58044,1},{7882,58048,1}, {7883,58059,1},{7880,58059,1},{7878,58046,1},{7877,58059,1},{7875,58053,1}, {7870,58064,1},{7870,58051,1},{7863,58049,1},{7862,58064,1},{7858,58073,1}, {7858,58054,1},{7853,58031,1},{7852,57988,1},{7852,57939,1},{7853,57924,1}, {7855,57893,1},{7852,57868,1},{7850,57871,1},{7852,57908,1},{7850,57924,1}, {7847,57928,1},{7843,57991,1},{7837,58028,1},{7833,58033,1},{7830,58028,1}, {7830,58001,1},{7822,57988,1},{7820,57974,1},{7823,57921,1},{7825,57879,1}, {7822,57848,1},{7820,57846,1},{7817,57869,1},{7815,57898,1},{7813,57919,1}, {7813,57931,1},{7812,57976,1},{7808,57976,1},{7797,57944,1},{7798,57924,1}, {7802,57921,1},{7802,57911,1},{7798,57889,1},{7795,57883,1},{7793,57861,1}, {7790,57849,1},{7792,57831,1},{7795,57814,1},{7793,57746,1},{7800,57713,1}, {7798,57709,1},{7797,57718,1},{7793,57699,1},{7790,57694,1},{7787,57704,1}, {7785,57723,1},{7783,57723,1},{7780,57741,1},{7775,57741,1},{7773,57731,1}, {7770,57738,1},{7767,57728,1},{7767,57744,1},{7760,57764,1},{7755,57738,1}, {7750,57741,1},{7745,57728,1},{7743,57711,1},{7738,57711,1},{7735,57681,1}, {7730,57658,1},{7732,57653,1},{7737,57663,1},{7738,57659,1},{7737,57648,1}, {7732,57636,1},{7728,57616,1},{7732,57568,1},{7730,57553,1},{7727,57538,1}, {7728,57513,1},{7730,57491,1},{7733,57461,1},{7738,57436,1},{7742,57428,1}, {7742,57408,1},{7747,57401,1},{7752,57379,1},{7755,57379,1},{7757,57369,1}, {7758,57374,1},{7763,57353,1},{7767,57351,1},{7768,57343,1},{7762,57344,1}, {7758,57356,1},{7753,57369,1},{7743,57363,1},{7737,57388,1},{7737,57416,1}, {7733,57419,1},{7732,57419,1},{7728,57353,1},{7732,57328,1},{7730,57316,1}, {7725,57346,1},{7717,57349,1},{7715,57356,1},{7717,57363,1},{7728,57428,1}, {7720,57524,1},{7708,57496,1},{7707,57499,1},{7712,57519,1},{7718,57534,1}, {7725,57569,1},{7722,57611,1},{7715,57633,1},{7713,57629,1},{7708,57634,1}, {7707,57624,1},{7693,57596,1},{7692,57601,1},{7692,57629,1},{7693,57636,1}, {7693,57648,1},{7683,57639,1},{7682,57661,1},{7683,57666,1},{7688,57664,1}, {7688,57679,1},{7693,57681,1},{7697,57696,1},{7700,57698,1},{7702,57711,1}, {7702,57729,1},{7695,57748,1},{7692,57746,1},{7688,57753,1},{7687,57748,1}, {7682,57764,1},{7678,57758,1},{7673,57759,1},{7668,57754,1},{7665,57759,1}, {7663,57749,1},{7663,57734,1},{7662,57728,1},{7657,57718,1},{7653,57723,1}, {7650,57701,1},{7647,57699,1},{7645,57689,1},{7648,57674,1},{7655,57674,1}, {7657,57679,1},{7657,57656,1},{7652,57649,1},{7642,57636,1},{7640,57618,1}, {7638,57618,1},{7635,57609,1},{7630,57606,1},{7632,57584,1},{7630,57573,1}, {7622,57528,1},{7623,57516,1},{7622,57501,1},{7620,57493,1},{7618,57476,1}, {7615,57469,1},{7617,57449,1},{7617,57446,1},{7613,57431,1},{7615,57428,1}, {7618,57441,1},{7622,57426,1},{7637,57458,1},{7642,57459,1},{7648,57438,1}, {7650,57414,1},{7655,57416,1},{7648,57401,1},{7647,57386,1},{7647,57358,1}, {7652,57333,1},{7652,57328,1},{7658,57338,1},{7662,57331,1},{7665,57354,1}, {7668,57358,1},{7663,57321,1},{7663,57303,1},{7668,57291,1},{7678,57278,1}, {7682,57264,1},{7682,57259,1},{7672,57281,1},{7668,57279,1},{7663,57289,1}, {7657,57328,1},{7653,57314,1},{7643,57323,1},{7642,57318,1},{7640,57306,1}, {7638,57259,1},{7642,57246,1},{7643,57236,1},{7647,57226,1},{7650,57229,1}, {7658,57224,1},{7667,57198,1},{7675,57201,1},{7677,57196,1},{7670,57184,1}, {7658,57211,1},{7652,57213,1},{7650,57218,1},{7645,57211,1},{7642,57216,1}, {7642,57188,1},{7643,57164,1},{7647,57161,1},{7648,57146,1},{7653,57133,1}, {7662,57128,1},{7665,57108,1},{7665,57103,1},{7662,57116,1},{7653,57111,1}, {7648,57118,1},{7645,57113,1},{7643,57084,1},{7645,57069,1},{7647,57058,1}, {7650,57056,1},{7658,57041,1},{7657,57033,1},{7652,57031,1},{7642,57039,1}, {7640,57059,1},{7632,57098,1},{7630,57093,1},{7630,57058,1},{7628,57043,1}, {7628,57013,1},{7632,57009,1},{7632,56989,1},{7635,56963,1},{7638,56899,1}, {7647,56894,1},{7652,56914,1},{7653,56914,1},{7663,56874,1},{7652,56906,1}, {7647,56871,1},{7635,56864,1},{7638,56823,1},{7643,56823,1},{7645,56794,1}, {7650,56796,1},{7653,56786,1},{7658,56789,1},{7662,56783,1},{7662,56778,1}, {7653,56776,1},{7650,56786,1},{7645,56781,1},{7642,56793,1},{7638,56786,1}, {7635,56794,1},{7637,56781,1},{7633,56778,1},{7635,56759,1},{7642,56754,1}, {7640,56749,1},{7637,56746,1},{7635,56741,1},{7638,56699,1},{7640,56693,1}, {7643,56699,1},{7647,56693,1},{7648,56701,1},{7652,56701,1},{7662,56684,1}, {7665,56688,1},{7673,56679,1},{7678,56688,1},{7682,56686,1},{7680,56681,1}, {7672,56666,1},{7663,56678,1},{7660,56669,1},{7658,56681,1},{7655,56686,1}, {7650,56688,1},{7645,56674,1},{7640,56676,1},{7642,56666,1},{7648,56671,1}, {7648,56674,1},{7653,56668,1},{7657,56671,1},{7660,56664,1},{7650,56653,1}, {7647,56658,1},{7640,56644,1},{7642,56633,1},{7645,56631,1},{7642,56624,1}, {7643,56613,1},{7647,56609,1},{7650,56593,1},{7657,56593,1},{7653,56584,1}, {7657,56568,1},{7662,56576,1},{7668,56594,1},{7672,56591,1},{7673,56598,1}, {7675,56589,1},{7685,56583,1},{7688,56594,1},{7695,56638,1},{7698,56636,1}, {7700,56663,1},{7707,56681,1},{7707,56689,1},{7710,56696,1},{7710,56681,1}, {7713,56706,1},{7713,56723,1},{7710,56721,1},{7713,56743,1},{7712,56759,1}, {7713,56768,1},{7710,56774,1},{7710,56791,1},{7712,56803,1},{7713,56789,1}, {7718,56803,1},{7718,56833,1},{7713,56841,1},{7713,56856,1},{7717,56848,1}, {7718,56876,1},{7718,56861,1},{7718,56849,1},{7720,56841,1},{7720,56823,1}, {7720,56819,1},{7720,56814,1},{7723,56819,1},{7727,56844,1},{7727,56838,1}, {7727,56816,1},{7730,56811,1},{7733,56826,1},{7735,56846,1},{7737,56851,1}, {7737,56818,1},{7733,56798,1},{7737,56764,1},{7738,56766,1},{7743,56758,1}, {7748,56771,1},{7753,56766,1},{7755,56754,1},{7758,56754,1},{7763,56719,1}, {7765,56714,1},{7773,56721,1},{7775,56719,1},{7777,56713,1},{7782,56726,1}, {7785,56714,1},{7785,56723,1},{7782,56729,1},{7790,56809,1},{7788,56851,1}, {7782,56898,1},{7780,56914,1},{7770,56939,1},{7750,56956,1},{7747,56964,1}, {7742,56956,1},{7747,56983,1},{7747,56988,1},{7743,56983,1},{7740,56996,1}, {7738,57039,1},{7732,57064,1},{7730,57086,1},{7732,57088,1},{7733,57081,1}, {7738,57074,1},{7740,57081,1},{7738,57101,1},{7740,57136,1},{7737,57156,1}, {7735,57189,1},{7738,57186,1},{7738,57191,1},{7740,57164,1},{7745,57153,1}, {7750,57193,1},{7758,57216,1},{7772,57246,1},{7778,57258,1},{7780,57256,1}, {7782,57266,1},{7790,57273,1},{7792,57281,1},{7795,57278,1},{7795,57284,1}, {7802,57278,1},{7803,57298,1},{7808,57304,1},{7807,57281,1},{7802,57258,1}, {7792,57263,1},{7787,57241,1},{7782,57238,1},{7778,57224,1},{7772,57216,1}, {7762,57198,1},{7753,57169,1},{7748,57146,1},{7752,57144,1},{7750,57138,1}, {7753,57098,1},{7752,57078,1},{7752,57059,1},{7755,57049,1},{7757,57049,1}, {7763,57073,1},{7770,57093,1},{7775,57088,1},{7768,57084,1},{7760,57044,1}, {7767,57004,1},{7770,57009,1},{7773,57001,1},{7775,57016,1},{7780,57018,1}, {7780,57031,1},{7782,57041,1},{7783,57038,1},{7780,57006,1},{7782,56996,1}, {7787,57004,1},{7788,57016,1},{7790,57046,1},{7788,57053,1},{7787,57049,1}, {7783,57046,1},{7790,57069,1},{7788,57101,1},{7790,57104,1},{7793,57073,1}, {7790,57043,1},{7790,57009,1},{7787,56989,1},{7790,56984,1},{7792,56988,1}, {7792,56976,1},{7793,56968,1},{7798,56991,1},{7805,57029,1},{7802,57059,1}, {7807,57081,1},{7808,57108,1},{7808,57093,1},{7807,57076,1},{7805,57056,1}, {7807,57036,1},{7810,57026,1},{7813,57036,1},{7817,57033,1},{7817,57056,1}, {7820,57073,1},{7818,57098,1},{7815,57116,1},{7818,57133,1},{7818,57116,1}, {7822,57086,1},{7822,57064,1},{7818,57044,1},{7820,57039,1},{7832,57054,1}, {7835,57078,1},{7837,57076,1},{7833,57063,1},{7837,57049,1},{7850,57058,1}, {7860,57073,1},{7852,57053,1},{7847,57049,1},{7842,57038,1},{7835,57039,1}, {7832,57031,1},{7828,57034,1},{7827,57024,1},{7818,57011,1},{7810,56986,1}, {7812,56986,1},{7805,56921,1},{7807,56909,1},{7810,56908,1},{7815,56911,1}, {7817,56924,1},{7823,56943,1},{7838,56953,1},{7830,56931,1},{7825,56929,1}, {7820,56908,1},{7822,56886,1},{7812,56863,1},{7810,56828,1},{7813,56786,1}, {7815,56783,1},{7818,56796,1},{7820,56828,1},{7823,56809,1},{7822,56791,1}, {7822,56784,1},{7843,56784,1},{7855,56823,1},{7855,56851,1},{7857,56848,1}, {7857,56824,1},{7858,56824,1},{7865,56838,1},{7872,56843,1},{7880,56873,1}, {7882,56929,1},{7885,56971,1},{7892,57011,1},{7892,57029,1},{7887,57064,1}, {7883,57161,1},{7878,57183,1},{7878,57196,1},{7872,57228,1},{7870,57254,1}, {7867,57268,1},{7862,57274,1},{7857,57303,1},{7860,57313,1},{7870,57276,1}, {7873,57291,1},{7872,57313,1},{7873,57313,1},{7875,57303,1},{7875,57288,1}, {7873,57273,1},{7873,57258,1},{7875,57251,1},{7880,57228,1},{7880,57214,1}, {7883,57211,1},{7885,57234,1},{7883,57289,1},{7883,57308,1},{7887,57344,1}, {7887,57359,1},{7885,57353,1},{7883,57364,1},{7888,57371,1},{7892,57361,1}, {7898,57368,1},{7903,57388,1},{7907,57386,1},{7900,57344,1},{7892,57324,1}, {7888,57286,1},{7893,57244,1},{7893,57166,1},{7895,57144,1},{7897,57109,1}, {7903,57059,1},{7907,57058,1},{7915,57086,1},{7912,57123,1},{7903,57144,1}, {7902,57186,1},{7903,57198,1},{7905,57201,1},{7903,57184,1},{7905,57178,1}, {7913,57136,1},{7915,57133,1},{7918,57143,1},{7922,57141,1},{7918,57124,1}, {7918,57103,1},{7940,57088,1},{7948,57048,1},{7963,57029,1},{7970,56986,1}, {7972,56968,1},{7970,56946,1},{7977,56888,1},{7982,56888,1},{7982,56898,1}, {7988,56889,1},{7997,56899,1},{7993,56978,1},{7990,56999,1},{7992,57011,1}, {7997,56983,1},{8000,56888,1},{8012,56871,1},{8030,56884,1},{8033,56924,1}, {8033,56946,1},{8027,57008,1},{8027,57134,1},{8025,57158,1},{8007,57226,1}, {7987,57321,1},{7975,57339,1},{7972,57338,1},{7968,57356,1},{7968,57369,1}, {7965,57368,1},{7962,57374,1},{7960,57368,1},{7962,57358,1},{7958,57366,1}, {7960,57378,1},{7963,57391,1},{7957,57473,1},{7958,57474,1},{7960,57474,1}, {7962,57486,1},{7965,57526,1},{7965,57546,1},{7970,57561,1},{7968,57501,1}, {7965,57456,1},{7965,57443,1},{7967,57438,1},{7972,57413,1},{7972,57384,1}, {7975,57384,1},{7977,57373,1},{7982,57379,1},{7990,57369,1},{7993,57396,1}, {8002,57319,1},{8032,57216,1},{8040,57333,1},{8042,57403,1},{8047,57476,1}, {8047,57499,1},{8048,57506,1},{8050,57501,1},{8053,57521,1},{8057,57729,1}, {8060,57733,1},{8060,57694,1},{8060,57573,1},{8060,57546,1},{8062,57539,1}, {8070,57608,1},{8077,57678,1},{8083,57773,1},{8083,57868,1},{8085,57884,1}, {8087,57888,1},{8090,57874,1},{8088,57856,1},{8088,57816,1},{8092,57781,1}, {8090,57748,1},{8085,57649,1},{8088,57643,1},{8092,57651,1},{8098,57643,1}, {8108,57686,1},{8115,57696,1},{8117,57689,1},{8118,57714,1},{8132,57774,1}, {8135,57816,1},{8143,57861,1},{8143,57833,1},{8128,57713,1},{8123,57698,1}, {8120,57669,1},{8113,57661,1},{8112,57668,1},{8110,57654,1},{8110,57639,1}, {8113,57611,1},{8120,57586,1},{8108,57629,1},{8107,57611,1},{8100,57603,1}, {8098,57618,1},{8097,57619,1},{8092,57609,1},{8092,57594,1},{8088,57593,1}, {8082,57574,1},{8065,57444,1},{8055,57301,1},{8053,57248,1},{8053,57226,1}, {8055,57219,1},{8060,57221,1},{8065,57228,1},{8065,57246,1},{8068,57259,1}, {8072,57314,1},{8077,57341,1},{8082,57361,1},{8083,57341,1},{8077,57288,1}, {8073,57279,1},{8068,57201,1},{8070,57183,1},{8073,57179,1},{8078,57209,1}, {8082,57224,1},{8083,57221,1},{8083,57204,1},{8075,57166,1},{8077,57149,1}, {8073,57159,1},{8072,57153,1},{8063,57164,1},{8057,57156,1},{8053,57143,1}, {8052,57104,1},{8053,57059,1},{8050,57029,1},{8052,57006,1},{8053,56949,1}, {8062,56976,1},{8060,56961,1},{8053,56928,1},{8055,56898,1},{8060,56861,1}, {8073,56884,1},{8097,56973,1},{8102,57031,1},{8103,57038,1},{8103,57048,1}, {8105,57096,1},{8110,57209,1},{8112,57224,1},{8113,57258,1},{8115,57268,1}, {8115,57289,1},{8118,57299,1},{8117,57284,1},{8117,57253,1},{8113,57201,1}, {8108,57118,1},{8108,57078,1},{8105,57011,1},{8105,56979,1},{8103,56961,1}, {8093,56901,1},{8083,56873,1},{8073,56829,1},{8063,56809,1},{8063,56773,1}, {8068,56733,1},{8068,56714,1},{8085,56604,1},{8092,56591,1},{8100,56678,1}, {8100,56761,1},{8098,56788,1},{8100,56828,1},{8100,56869,1},{8108,56929,1}, {8108,56953,1},{8112,56948,1},{8122,57006,1},{8127,57056,1},{8128,57061,1}, {8130,57043,1},{8128,57004,1},{8122,56931,1},{8113,56893,1},{8107,56798,1}, {8105,56768,1},{8107,56703,1},{8102,56573,1},{8102,56549,1},{8107,56514,1}, {8117,56501,1},{8123,56531,1},{8123,56561,1},{8120,56583,1},{8125,56641,1}, {8125,56638,1},{8125,56601,1},{8128,56579,1},{8130,56549,1},{8133,56541,1}, {8135,56573,1},{8147,56633,1},{8145,56654,1},{8148,56643,1},{8152,56664,1}, {8153,56738,1},{8152,56744,1},{8152,56788,1},{8148,56808,1},{8150,56806,1}, {8157,56733,1},{8155,56718,1},{8158,56706,1},{8155,56671,1},{8153,56636,1}, {8150,56604,1},{8137,56491,1},{8138,56481,1},{8140,56488,1},{8143,56451,1}, {8150,56474,1},{8157,56523,1},{8157,56541,1},{8160,56549,1},{8160,56573,1}, {8163,56578,1},{8162,56528,1},{8165,56533,1},{8170,56506,1},{8168,56499,1}, {8163,56506,1},{8167,56473,1},{8162,56439,1},{8157,56439,1},{8153,56429,1}, {8155,56421,1},{8152,56391,1},{8158,56391,1},{8162,56346,1},{8163,56341,1}, {8165,56349,1},{8165,56341,1},{8167,56359,1},{8173,56363,1},{8177,56388,1}, {8177,56411,1},{8177,56433,1},{8180,56421,1},{8183,56431,1},{8183,56463,1}, {8187,56474,1},{8190,56503,1},{8188,56543,1},{8190,56533,1},{8192,56563,1}, {8188,56564,1},{8178,56604,1},{8182,56601,1},{8188,56621,1},{8192,56596,1}, {8193,56596,1},{8195,56608,1},{8193,56621,1},{8192,56629,1},{8193,56636,1}, {8200,56634,1},{8207,56673,1},{8208,56721,1},{8210,56728,1},{8207,56756,1}, {8208,56773,1},{8207,56801,1},{8202,56819,1},{8197,56804,1},{8188,56859,1}, {8193,56853,1},{8197,56823,1},{8198,56834,1},{8198,56851,1},{8203,56834,1}, {8205,56858,1},{8203,56919,1},{8198,56949,1},{8185,56994,1},{8188,56996,1}, {8198,56963,1},{8200,56976,1},{8200,57018,1},{8192,57034,1},{8188,57056,1}, {8198,57029,1},{8198,57048,1},{8192,57058,1},{8188,57074,1},{8198,57063,1}, {8202,57046,1},{8207,56961,1},{8210,56929,1},{8212,56873,1},{8220,56849,1}, {8223,56869,1},{8223,56969,1},{8227,56981,1},{8228,56999,1},{8232,56988,1}, {8235,56994,1},{8235,56983,1},{8240,56984,1},{8243,56944,1},{8247,56956,1}, {8248,57031,1},{8247,57073,1},{8243,57073,1},{8243,57041,1},{8238,57091,1}, {8235,57101,1},{8237,57131,1},{8235,57159,1},{8232,57184,1},{8228,57199,1}, {8223,57201,1},{8213,57238,1},{8210,57239,1},{8207,57224,1},{8208,57256,1}, {8207,57316,1},{8203,57348,1},{8208,57334,1},{8210,57271,1},{8215,57263,1}, {8222,57234,1},{8230,57238,1},{8228,57271,1},{8215,57344,1},{8203,57438,1}, {8202,57473,1},{8198,57479,1},{8197,57528,1},{8182,57579,1},{8182,57613,1}, {8190,57588,1},{8193,57569,1},{8197,57564,1},{8198,57544,1},{8202,57551,1}, {8203,57503,1},{8208,57454,1},{8212,57438,1},{8215,57449,1},{8217,57411,1}, {8220,57374,1},{8233,57284,1},{8240,57263,1},{8250,57286,1},{8250,57388,1}, {8252,57344,1},{8258,57304,1},{8263,57298,1},{8267,57314,1},{8267,57339,1}, {8263,57393,1},{8253,57448,1},{8255,57478,1},{8270,57423,1},{8277,57386,1}, {8280,57378,1},{8282,57389,1},{8282,57434,1},{8278,57498,1},{8272,57523,1}, {8268,57519,1},{8265,57549,1},{8265,57554,1},{8268,57538,1},{8272,57548,1}, {8267,57616,1},{8268,57684,1},{8270,57608,1},{8273,57574,1},{8277,57548,1}, {8280,57536,1},{8282,57569,1},{8283,57521,1},{8288,57496,1},{8290,57493,1}, {8293,57521,1},{8297,57591,1},{8295,57618,1},{8293,57614,1},{8287,57631,1}, {8295,57661,1},{8293,57673,1},{8292,57686,1},{8285,57683,1},{8287,57696,1}, {8282,57721,1},{8287,57713,1},{8285,57733,1},{8287,57734,1},{8290,57726,1}, {8292,57754,1},{8287,57823,1},{8277,57839,1},{8275,57859,1},{8267,57879,1}, {8258,57946,1},{8247,57909,1},{8112,56103,129},{8110,56123,1},{8110,56161,1}, {8107,56184,1},{8108,56184,1},{8108,56213,1},{8112,56224,1},{8113,56218,1}, {8117,56226,1},{8118,56224,1},{8118,56211,1},{8122,56214,1},{8122,56194,1}, {8120,56151,1},{8122,56129,1},{8125,56098,1},{8135,56113,1},{8137,56129,1}, {8135,56158,1},{8130,56179,1},{8132,56188,1},{8135,56183,1},{8138,56184,1}, {8123,56324,1},{8115,56356,1},{8110,56356,1},{8108,56358,1},{8107,56346,1}, {8105,56364,1},{8098,56383,1},{8093,56384,1},{8082,56421,1},{8075,56424,1}, {8072,56461,1},{8065,56476,1},{8057,56459,1},{8053,56531,1},{8047,56561,1}, {8053,56558,1},{8053,56574,1},{8055,56581,1},{8052,56609,1},{8047,56629,1}, {8040,56611,1},{8040,56628,1},{8033,56626,1},{8030,56611,1},{8028,56611,1}, {8020,56629,1},{8010,56683,1},{8010,56694,1},{8015,56691,1},{8010,56721,1}, {8018,56694,1},{8020,56709,1},{8022,56686,1},{8028,56666,1},{8038,56669,1}, {8045,56698,1},{8042,56768,1},{8018,56779,1},{8015,56768,1},{8015,56743,1}, {8012,56729,1},{8005,56748,1},{8008,56768,1},{8007,56808,1},{8000,56819,1}, {7995,56834,1},{7993,56833,1},{7992,56813,1},{7987,56804,1},{7985,56789,1}, {7983,56788,1},{7983,56803,1},{7987,56818,1},{7992,56834,1},{7990,56841,1}, {7965,56823,1},{7957,56793,1},{7953,56791,1},{7950,56804,1},{7953,56814,1}, {7957,56819,1},{7960,56839,1},{7958,56854,1},{7955,56851,1},{7953,56858,1}, {7957,56859,1},{7957,56866,1},{7962,56856,1},{7965,56879,1},{7963,56908,1}, {7957,56931,1},{7955,56933,1},{7952,56923,1},{7947,56933,1},{7945,56919,1}, {7943,56926,1},{7945,56939,1},{7962,56958,1},{7960,56974,1},{7952,56986,1}, {7945,56998,1},{7940,57011,1},{7935,57033,1},{7930,57044,1},{7927,57044,1}, {7922,57014,1},{7918,57006,1},{7918,56996,1},{7913,56958,1},{7910,56909,1}, {7907,56889,1},{7905,56879,1},{7898,56876,1},{7895,56866,1},{7895,56858,1}, {7905,56838,1},{7890,56841,1},{7880,56803,1},{7865,56774,1},{7865,56768,1}, {7870,56749,1},{7880,56736,1},{7892,56741,1},{7895,56738,1},{7900,56754,1}, {7903,56753,1},{7908,56764,1},{7905,56751,1},{7902,56746,1},{7898,56719,1}, {7880,56713,1},{7868,56723,1},{7865,56701,1},{7865,56734,1},{7858,56746,1}, {7855,56746,1},{7848,56734,1},{7845,56716,1},{7860,56679,1},{7862,56656,1}, {7855,56661,1},{7840,56683,1},{7815,56654,1},{7817,56633,1},{7825,56613,1}, {7833,56601,1},{7837,56586,1},{7850,56554,1},{7862,56538,1},{7860,56528,1}, {7855,56526,1},{7843,56538,1},{7838,56561,1},{7815,56588,1},{7817,56574,1}, {7822,56569,1},{7822,56543,1},{7830,56534,1},{7833,56511,1},{7832,56461,1}, {7828,56476,1},{7827,56504,1},{7823,56499,1},{7818,56509,1},{7815,56503,1}, {7813,56493,1},{7815,56439,1},{7817,56418,1},{7818,56388,1},{7823,56351,1}, {7822,56336,1},{7822,56328,1},{7828,56318,1},{7828,56304,1},{7830,56318,1}, {7832,56318,1},{7830,56296,1},{7832,56278,1},{7835,56274,1},{7842,56244,1}, {7848,56238,1},{7848,56249,1},{7850,56251,1},{7848,56276,1},{7850,56288,1}, {7852,56279,1},{7853,56334,1},{7855,56351,1},{7853,56369,1},{7857,56371,1}, {7860,56278,1},{7863,56256,1},{7860,56238,1},{7858,56209,1},{7865,56189,1}, {7868,56201,1},{7868,56181,1},{7877,56154,1},{7878,56171,1},{7877,56196,1}, {7873,56219,1},{7873,56231,1},{7877,56233,1},{7882,56194,1},{7883,56149,1}, {7887,56143,1},{7897,56109,1},{7898,56108,1},{7903,56136,1},{7905,56176,1}, {7915,56189,1},{7917,56203,1},{7915,56239,1},{7913,56249,1},{7917,56261,1}, {7915,56304,1},{7917,56353,1},{7922,56486,1},{7923,56498,1},{7925,56496,1}, {7923,56469,1},{7925,56423,1},{7922,56398,1},{7920,56321,1},{7925,56268,1}, {7930,56278,1},{7930,56323,1},{7932,56319,1},{7930,56334,1},{7930,56349,1}, {7933,56363,1},{7935,56421,1},{7938,56423,1},{7933,56346,1},{7937,56279,1}, {7938,56283,1},{7943,56311,1},{7945,56313,1},{7945,56294,1},{7943,56269,1}, {7940,56251,1},{7942,56241,1},{7945,56236,1},{7948,56228,1},{7947,56221,1}, {7938,56234,1},{7933,56199,1},{7938,56208,1},{7943,56213,1},{7945,56204,1}, {7938,56191,1},{7935,56188,1},{7937,56169,1},{7932,56173,1},{7925,56139,1}, {7928,56114,1},{7935,56124,1},{7940,56151,1},{7938,56133,1},{7940,56116,1}, {7942,56098,1},{7942,56094,1},{7942,56086,1},{7940,56088,1},{7938,56086,1}, {7937,56098,1},{7933,56086,1},{7933,56069,1},{7927,56034,1},{7928,56013,1}, {7932,56018,1},{7933,56004,1},{7935,56019,1},{7935,56008,1},{7940,56008,1}, {7940,55998,1},{7937,55994,1},{7938,55973,1},{7942,55959,1},{7943,55958,1}, {7943,55969,1},{7947,55958,1},{7950,55966,1},{7953,55963,1},{7955,55973,1}, {7957,56026,1},{7960,56038,1},{7962,56066,1},{7968,56103,1},{7973,56101,1}, {7977,56108,1},{7978,56103,1},{7975,56096,1},{7973,56081,1},{7967,56058,1}, {7963,55994,1},{7965,55951,1},{7973,55921,1},{7973,55913,1},{7975,55911,1}, {7980,55908,1},{7983,55888,1},{7987,55898,1},{7985,55881,1},{7987,55878,1}, {7988,55874,1},{7992,55891,1},{7992,55898,1},{7988,55898,1},{7990,55908,1}, {7990,55923,1},{7993,55909,1},{7995,55876,1},{8002,55868,1},{8005,55898,1}, {8005,55884,1},{8003,55873,1},{8005,55866,1},{8008,55856,1},{8013,55861,1}, {8015,55868,1},{8013,55901,1},{8008,55928,1},{8005,55951,1},{8003,56028,1}, {8005,56051,1},{7998,56094,1},{8002,56091,1},{8010,56056,1},{8017,56088,1}, {8018,56128,1},{8020,56091,1},{8022,56079,1},{8017,56064,1},{8012,56009,1}, {8012,55994,1},{8017,55968,1},{8020,55978,1},{8022,56006,1},{8025,56011,1}, {8022,55986,1},{8023,55971,1},{8020,55944,1},{8025,55909,1},{8027,55889,1}, {8027,55879,1},{8032,55889,1},{8035,55868,1},{8037,55876,1},{8035,55888,1}, {8035,55893,1},{8033,55911,1},{8035,55914,1},{8037,55909,1},{8038,55931,1}, {8033,55993,1},{8038,55989,1},{8038,55974,1},{8045,55956,1},{8048,55926,1}, {8052,55943,1},{8053,55946,1},{8057,55933,1},{8058,55938,1},{8058,56019,1}, {8060,56033,1},{8058,56049,1},{8055,56066,1},{8055,56138,1},{8053,56141,1}, {8053,56158,1},{8058,56136,1},{8062,56099,1},{8060,56081,1},{8065,56069,1}, {8068,56076,1},{8070,56116,1},{8070,56128,1},{8072,56126,1},{8072,56106,1}, {8075,56101,1},{8073,56091,1},{8072,56074,1},{8075,56046,1},{8077,56033,1}, {8080,56051,1},{8082,56048,1},{8078,56008,1},{8082,55983,1},{8083,55986,1}, {8088,56021,1},{8088,55994,1},{8090,55988,1},{8095,56008,1},{8100,56013,1}, {8105,56046,1},{8103,56079,1},{8102,56091,1},{8098,56086,1},{8097,56093,1}, {8097,56101,1},{8100,56106,1},{8100,56123,1},{8102,56129,1},{8102,56143,1}, {8103,56129,1},{8103,56146,1},{8105,56121,1},{8110,56101,1},{8112,56103,1}, {6000,51631,131},{6000,51743,3},{6000,51851,3},{6000,51896,3},{6000,51963,3}, {6000,52071,3},{6000,52159,3},{6000,52179,3},{6000,52293,3},{6000,52403,3}, {6000,52424,3},{6000,52511,3},{6000,52623,3},{6000,52688,3},{6000,52731,3}, {6000,52839,3},{6000,52953,3},{6000,53073,3},{6000,53153,3},{6002,53154,3}, {6048,53096,3},{6078,53003,3},{6088,52953,3},{6082,52884,3},{6132,52829,3}, {6170,52738,3},{6185,52716,3},{6213,52616,3},{6267,52584,3},{6295,52566,3}, {6318,52546,3},{6370,52504,3},{6415,52443,3},{6420,52449,3},{6453,52366,3}, {6497,52286,3},{6552,52308,3},{6580,52293,3},{6602,52246,3},{6645,52163,3}, {6695,52128,3},{6698,52136,3},{6700,51994,3},{6700,51919,3},{6757,51918,3}, {6772,51891,3},{6828,51891,3},{6883,51891,3},{6890,51894,3},{5380,53536,131}, {5337,53593,3},{5305,53664,3},{5287,53689,3},{5257,53708,3},{5215,53773,3}, {5188,53833,3},{5178,53839,3},{5142,53906,3},{5102,53968,3},{5093,53976,3}, {5058,54021,3},{5008,54068,3},{4978,54074,3},{4955,54074,3},{4907,54124,3}, {4900,54129,3},{4938,56021,131},{4998,56021,3},{5058,56021,3},{5072,56021,3}, {5115,56021,3},{5172,56021,3},{5202,56021,3},{5232,56021,3},{5283,56021,3}, {5322,56086,3},{5362,56153,3},{5377,56178,3},{5403,56213,3},{5447,56273,3}, {5480,56323,3},{5488,56334,3},{5532,56398,3},{5573,56463,3},{5578,56469,3}, {5615,56528,3},{5657,56596,3},{5677,56629,3},{5685,56641,3},{5582,55336,131}, {5642,55336,3},{5698,55336,3},{5715,55336,3},{5755,55336,3},{5812,55336,3}, {5845,55336,3},{5868,55336,3},{5927,55336,3},{5975,55336,3},{5987,55336,3}, {6000,55336,3},{5547,55339,3},{5582,55336,3},{5512,55343,3},{5547,55339,3}, {5477,55348,3},{5512,55343,3},{5477,55348,3},{5442,55351,3},{5407,55354,3}, {5442,55351,3},{5375,55359,3},{5407,55354,3},{5337,55361,3},{5375,55359,3}, {5302,55366,3},{5337,55361,3},{5267,55369,3},{5302,55366,3},{5232,55373,3}, {5267,55369,3},{5197,55374,3},{5232,55373,3},{5130,55379,3},{5187,55379,3}, {5197,55374,3},{5095,55381,3},{5130,55379,3},{5060,55384,3},{5095,55381,3}, {5025,55388,3},{5060,55384,3},{4988,55391,3},{5025,55388,3},{4953,55393,3}, {4988,55391,3},{4918,55396,3},{4953,55393,3},{4900,55399,3},{4918,55396,3}, {6000,53153,131},{6000,53266,3},{6000,53386,3},{6000,53423,3},{6000,53499,3}, {6000,53609,3},{6000,53684,3},{6000,53728,3},{6000,53839,3},{6000,53946,3}, {6000,53959,3},{6000,54073,3},{6000,54189,3},{6000,54213,3},{6000,54299,3}, {6000,54411,3},{6000,54476,3},{6000,54519,3},{6000,54636,3},{6000,54736,3}, {6000,54748,3},{6000,54858,3},{6000,54966,3},{6000,54999,3},{6000,55076,3}, {6000,55196,3},{6000,55263,3},{6000,55308,3},{6000,55416,3},{6000,55526,3}, {6000,55641,3},{6000,55751,3},{6000,55786,3},{6000,55866,3},{6000,55978,3}, {6000,56053,3},{6000,56056,3},{5380,53536,131},{5437,53536,3},{5493,53536,3}, {5510,53536,3},{5550,53536,3},{5607,53536,3},{5640,53536,3},{5663,53536,3}, {5723,53536,3},{5773,53536,3},{5780,53536,3},{5840,53536,3},{5897,53536,3}, {5903,53536,3},{5955,53536,3},{6000,53536,3},{4900,54536,131},{4955,54536,3}, {5010,54536,3},{5033,54536,3},{5068,54536,3},{5127,54536,3},{5167,54536,3}, {5187,54536,3},{5247,54536,3},{5300,54536,3},{5307,54536,3},{5365,54536,3}, {5425,54536,3},{5430,54536,3},{5483,54536,3},{5538,54536,3},{5563,54536,3}, {5597,54536,3},{5653,54536,3},{5697,54536,3},{5710,54536,3},{5767,54536,3}, {5825,54536,3},{5830,54536,3},{5883,54536,3},{5943,54536,3},{5962,54536,3}, {6000,54536,3},{5147,57581,131},{5120,57583,3},{5118,57583,3},{5063,57583,3}, {5007,57583,3},{4987,57583,3},{4952,57583,3},{4897,57584,3},{4857,57584,3}, {4842,57584,3},{4787,57584,3},{4757,57584,3},{4703,57599,3},{4682,57621,3}, {4618,57768,3},{4582,57828,3},{4552,57891,3},{4552,57924,3},{4547,57974,3}, {4563,58051,3},{4517,58098,3},{4500,58068,3},{4730,58631,131},{4762,58698,3}, {4800,58754,3},{4790,58803,3},{4790,58838,3},{4800,58851,3},{4682,57621,131}, {4635,57664,3},{4623,57741,3},{4618,57768,3},{5378,58793,131},{5432,58786,3}, {5485,58806,3},{5508,58794,3},{5532,58853,3},{5495,58924,3},{5472,59009,3}, {5473,59106,3},{5497,59193,3},{5530,59219,3},{5553,59221,3},{5602,59191,3}, {5642,59119,3},{5697,59146,3},{5732,59151,3},{5750,59159,3},{5802,59114,3}, {5852,59151,3},{5860,59126,3},{5892,59071,3},{5945,59091,3},{5988,59059,3}, {5997,59051,3},{6030,59079,3},{5378,58793,131},{5332,58846,3},{5278,58829,3}, {5263,58893,3},{5243,58898,3},{5213,58903,3},{5222,58994,3},{5185,59068,3}, {5170,59103,3},{5230,59123,3},{5285,59118,3},{5297,59143,3},{5290,59181,3}, {5277,59176,3},{5237,59136,3},{5203,59173,3},{5200,59161,3},{5237,59136,3}, {5203,59173,3},{5200,59161,3},{5200,59253,3},{5200,59344,3},{5200,59378,3}, {5200,59436,3},{5200,59528,3},{5200,59594,3},{5200,59619,3},{5200,59711,3}, {5200,59803,3},{5200,59811,3},{5200,59826,3},{5142,59826,3},{5197,59826,3}, {5200,59826,3},{4598,59131,131},{4583,59109,3},{4200,53118,131},{4200,53329,3}, {4200,53536,3},{4600,53848,131},{4603,53846,3},{4610,53839,3},{4617,53844,3}, {4622,53841,3},{4627,53841,3},{4637,53831,3},{4643,53834,3},{4660,53833,3}, {4900,53833,3},{4200,53834,131},{4382,53833,3},{4388,53839,3},{4402,53843,3}, {4405,53843,3},{4410,53839,3},{4412,53846,3},{4417,53848,3},{4422,53839,3}, {4425,53839,3},{4427,53838,3},{4425,53831,3},{4427,53829,3},{4428,53826,3}, {4427,53823,3},{4427,53821,3},{4428,53818,3},{4440,53814,3},{4445,53816,3}, {4448,53814,3},{4455,53823,3},{4475,53833,3},{4478,53843,3},{4483,53846,3}, {4492,53853,3},{4503,53853,3},{4517,53864,3},{4535,53871,3},{4560,53891,3}, {4577,53881,3},{4578,53874,3},{4583,53866,3},{4583,53861,3},{4592,53853,3}, {4602,53846,3},{4200,53536,131},{4200,53686,3},{4200,53834,3},{3500,54074,131}, {3900,53536,3},{4200,53536,3},{4450,54431,131},{4450,54426,3},{4457,54419,3}, {4458,54416,3},{4465,54414,3},{4465,54411,3},{4473,54406,3},{4475,54399,3}, {4473,54396,3},{4473,54393,3},{4472,54389,3},{4467,54391,3},{4465,54386,3}, {4460,54384,3},{4457,54386,3},{4455,54391,3},{4455,54389,3},{4455,54386,3}, {4457,54381,3},{4457,54369,3},{4453,54356,3},{4457,54349,3},{4455,54339,3}, {4455,54336,3},{4453,54334,3},{4455,54326,3},{4455,54316,3},{4457,54313,3}, {4455,54304,3},{4447,54299,3},{4445,54296,3},{4448,54291,3},{4450,54268,3}, {4448,54261,3},{4443,54254,3},{4442,54253,3},{4438,54256,3},{4437,54253,3}, {4440,54249,3},{4442,54244,3},{4445,54239,3},{4447,54236,3},{4448,54236,3}, {4450,54234,3},{4453,54236,3},{4455,54233,3},{4458,54233,3},{4460,54229,3}, {4465,54231,3},{4478,54223,3},{4482,54218,3},{4482,54211,3},{4478,54203,3}, {4483,54201,3},{4485,54194,3},{4487,54193,3},{4493,54188,3},{4495,54191,3}, {4502,54193,3},{4512,54186,3},{4512,54181,3},{4522,54176,3},{4525,54169,3}, {4528,54169,3},{4532,54164,3},{4538,54164,3},{4542,54159,3},{4543,54159,3}, {4550,54161,3},{4553,54154,3},{4558,54158,3},{4560,54156,3},{4563,54148,3}, {4568,54144,3},{4570,54138,3},{4565,54136,3},{4563,54131,3},{4560,54129,3}, {4557,54126,3},{4555,54118,3},{4555,54114,3},{4550,54111,3},{4548,54104,3}, {4552,54096,3},{4555,54094,3},{4557,54091,3},{4557,54081,3},{4560,54083,3}, {4563,54081,3},{4567,54086,3},{4572,54088,3},{4578,54081,3},{4585,54086,3}, {4585,54094,3},{4590,54098,3},{4593,54094,3},{4598,54096,3},{4600,54089,3}, {4603,54089,3},{4605,54088,3},{4612,54091,3},{4617,54086,3},{4618,54093,3}, {4627,54091,3},{4635,54096,3},{4640,54096,3},{4645,54099,3},{4650,54096,3}, {4653,54103,3},{4655,54101,3},{4667,54104,3},{4668,54101,3},{4667,54094,3}, {4665,54088,3},{4665,54079,3},{4667,54073,3},{4668,54073,3},{4672,54074,3}, {4675,54068,3},{4672,54061,3},{4672,54059,3},{4678,54059,3},{4678,54053,3}, {4683,54046,3},{4688,54044,3},{4692,54044,3},{4698,54036,3},{4698,54031,3}, {4703,54029,3},{4708,54021,3},{4713,54018,3},{4720,54008,3},{4725,54004,3}, {4728,53994,3},{4730,53986,3},{4738,53979,3},{4742,53969,3},{4743,53964,3}, {4747,53964,3},{4747,53971,3},{4748,53973,3},{4750,53969,3},{4753,53968,3}, {4755,53963,3},{4762,53969,3},{4765,53964,3},{4770,53964,3},{4773,53959,3}, {4775,53958,3},{4777,53954,3},{4785,53951,3},{4788,53943,3},{4797,53936,3}, {4800,53931,3},{4900,53931,3},{4450,54431,131},{4500,54431,3},{4500,54618,3}, {4500,54783,3},{4500,54954,3},{4500,55136,3},{4200,54431,131},{4450,54431,3}, {4200,53834,131},{4200,53988,3},{4200,54133,3},{4200,54284,3},{4200,54431,3}, {3702,54133,131},{4200,54133,3},{4100,54631,131},{4100,54431,3},{4200,54431,3}, {4100,54631,131},{4100,54889,3},{4100,55134,3},{3700,54631,131},{4100,54631,3}, {3700,54131,131},{3700,54388,3},{3700,54633,3},{3700,54781,3},{3700,54934,3}, {3700,55088,3},{3700,55236,3},{3498,54074,131},{3505,54073,3},{3508,54076,3}, {3512,54073,3},{3513,54074,3},{3515,54078,3},{3522,54079,3},{3533,54078,3}, {3550,54069,3},{3562,54071,3},{3572,54068,3},{3582,54068,3},{3588,54069,3}, {3590,54066,3},{3598,54063,3},{3603,54064,3},{3608,54063,3},{3612,54068,3}, {3617,54081,3},{3613,54091,3},{3615,54101,3},{3612,54104,3},{3607,54106,3}, {3602,54114,3},{3603,54123,3},{3608,54124,3},{3613,54126,3},{3620,54133,3}, {3702,54133,3},{3272,54064,131},{3275,54068,3},{3273,54083,3},{3275,54084,3}, {3280,54083,3},{3287,54091,3},{3293,54089,3},{3297,54089,3},{3302,54084,3}, {3303,54069,3},{3308,54066,3},{3322,54069,3},{3323,54068,3},{3327,54068,3}, {3330,54063,3},{3337,54066,3},{3340,54063,3},{3342,54073,3},{3352,54078,3}, {3357,54083,3},{3360,54083,3},{3363,54084,3},{3368,54084,3},{3372,54088,3}, {3382,54084,3},{3387,54084,3},{3390,54088,3},{3395,54084,3},{3403,54094,3}, {3412,54098,3},{3418,54113,3},{3428,54124,3},{3435,54119,3},{3447,54103,3}, {3447,54099,3},{3453,54099,3},{3458,54094,3},{3463,54094,3},{3470,54091,3}, {3475,54086,3},{3480,54079,3},{3483,54079,3},{3488,54074,3},{3500,54074,3}, {3133,54631,131},{3700,54631,3},{4593,55134,131},{4900,55133,3},{4500,55136,131}, {4595,55134,3},{4593,55134,131},{4593,55318,3},{4593,55508,3},{4593,55694,3}, {4593,55881,3},{4300,55133,131},{4500,55133,3},{4100,55134,131},{4302,55133,3}, {4300,55133,131},{4300,55276,3},{4300,55424,3},{4300,55579,3},{4300,55688,3}, {4297,55691,3},{4292,55699,3},{4283,55723,3},{4280,55728,3},{4278,55736,3}, {4278,55743,3},{4285,55748,3},{4287,55751,3},{4285,55759,3},{4287,55764,3}, {4285,55769,3},{4287,55774,3},{4285,55783,3},{4288,55804,3},{4287,55811,3}, {4282,55816,3},{4280,55821,3},{4278,55824,3},{4277,55838,3},{4273,55841,3}, {4272,55854,3},{4268,55856,3},{4267,55866,3},{4263,55866,3},{4258,55873,3}, {4253,55874,3},{4252,55889,3},{4000,55334,131},{4100,55333,3},{4100,55134,3}, {4002,55334,131},{3700,55334,3},{3650,55236,131},{3700,55236,3},{3178,54884,131}, {3183,54876,3},{3200,54869,3},{3200,55038,3},{3200,55229,3},{3300,55229,3}, {3400,55233,3},{3650,55233,3},{3650,55236,3},{4000,55334,131},{4000,55498,3}, {4000,55669,3},{4000,55841,3},{4000,56006,3},{3700,55236,131},{3700,55336,3}, {3700,55536,3},{3700,55708,3},{3700,55896,3},{3700,56074,3},{3650,55236,131}, {3650,55369,3},{3650,55536,3},{3647,55536,3},{3458,55536,3},{3457,55548,3}, {3440,55568,3},{3438,55573,3},{3438,55578,3},{3442,55583,3},{3437,55593,3}, {3438,55596,3},{3445,55598,3},{3447,55601,3},{3442,55603,3},{3440,55609,3}, {3437,55611,3},{3433,55616,3},{3425,55616,3},{3422,55618,3},{3420,55634,3}, {3422,55639,3},{3417,55649,3},{3413,55663,3},{3415,55676,3},{3408,55684,3}, {3407,55689,3},{3408,55696,3},{3412,55698,3},{3413,55701,3},{3415,55726,3}, {3413,55728,3},{3407,55726,3},{3402,55728,3},{3398,55741,3},{3390,55739,3}, {3388,55741,3},{3387,55749,3},{3388,55756,3},{3397,55766,3},{3398,55771,3}, {3397,55778,3},{3390,55778,3},{3390,55789,3},{3383,55791,3},{3382,55793,3}, {3383,55801,3},{3388,55804,3},{3385,55809,3},{3390,55814,3},{3390,55816,3}, {3387,55818,3},{3382,55816,3},{3380,55816,3},{3375,55818,3},{3372,55823,3}, {3375,55828,3},{3380,55828,3},{3382,55831,3},{3385,55828,3},{3385,55833,3}, {3385,55834,3},{3390,55838,3},{3395,55838,3},{3397,55844,3},{3395,55848,3}, {3387,55851,3},{3387,55858,3},{3385,55863,3},{3385,55868,3},{3392,55871,3}, {3392,55876,3},{3385,55876,3},{3382,55884,3},{3378,55886,3},{3378,55896,3}, {3372,55901,3},{3370,55904,3},{3372,55906,3},{3377,55908,3},{3377,55916,3}, {3383,55921,3},{3385,55934,3},{3387,55939,3},{3390,55943,3},{3385,55951,3}, {3387,55954,3},{3385,55958,3},{3390,55959,3},{3390,55964,3},{3393,55973,3}, {3392,55973,3},{3395,55976,3},{3392,55981,3},{3388,55983,3},{3388,55984,3}, {3387,55986,3},{3387,56001,3},{3388,56003,3},{3390,56008,3},{3392,56008,3}, {3390,56009,3},{3393,56009,3},{3397,56013,3},{3395,56021,3},{3392,56023,3}, {3392,56028,3},{3387,56033,3},{3385,56036,3},{3387,56038,3},{3382,56041,3}, {3382,56044,3},{3375,56049,3},{3373,56061,3},{3370,56064,3},{3368,56069,3}, {3367,56074,3},{3368,56078,3},{3367,56078,3},{3365,56088,3},{4593,55879,131}, {4603,55878,3},{4610,55881,3},{4617,55879,3},{4622,55876,3},{4632,55876,3}, {4643,55864,3},{4647,55864,3},{4650,55863,3},{4658,55861,3},{4665,55856,3}, {4673,55858,3},{4680,55856,3},{4692,55859,3},{4693,55856,3},{4700,55853,3}, {4738,55853,3},{4742,55849,3},{4748,55851,3},{4752,55849,3},{4760,55851,3}, {4777,55843,3},{4780,55838,3},{4783,55838,3},{4788,55834,3},{4792,55836,3}, {4795,55831,3},{4803,55829,3},{4815,55823,3},{4828,55824,3},{4838,55821,3}, {4843,55824,3},{4855,55821,3},{4865,55826,3},{4897,55813,3},{4900,55814,3}, {4350,55891,131},{4530,55891,3},{4537,55883,3},{4542,55866,3},{4560,55849,3}, {4565,55853,3},{4577,55873,3},{4585,55879,3},{4592,55879,3},{4595,55881,3}, {4350,55893,131},{4350,56149,3},{4350,56284,3},{4350,56414,3},{4252,55888,131}, {4257,55888,3},{4257,55886,3},{4262,55884,3},{4263,55881,3},{4265,55884,3}, {4272,55873,3},{4273,55873,3},{4283,55876,3},{4285,55881,3},{4287,55879,3}, {4290,55883,3},{4293,55883,3},{4295,55886,3},{4302,55886,3},{4303,55884,3}, {4308,55889,3},{4312,55891,3},{4322,55888,3},{4323,55879,3},{4325,55881,3}, {4327,55878,3},{4328,55878,3},{4330,55883,3},{4338,55883,3},{4343,55876,3}, {4350,55876,3},{4350,55891,3},{4060,55959,131},{4067,55958,3},{4068,55953,3}, {4073,55949,3},{4078,55953,3},{4083,55953,3},{4088,55954,3},{4093,55953,3}, {4098,55953,3},{4100,55949,3},{4105,55949,3},{4107,55948,3},{4110,55949,3}, {4117,55949,3},{4118,55951,3},{4118,55948,3},{4118,55944,3},{4120,55943,3}, {4127,55944,3},{4128,55948,3},{4130,55949,3},{4133,55941,3},{4145,55944,3}, {4148,55936,3},{4153,55938,3},{4155,55936,3},{4153,55931,3},{4153,55928,3}, {4158,55929,3},{4162,55926,3},{4168,55926,3},{4172,55929,3},{4175,55928,3}, {4180,55929,3},{4190,55921,3},{4198,55921,3},{4205,55911,3},{4212,55909,3}, {4218,55901,3},{4222,55901,3},{4228,55903,3},{4237,55894,3},{4247,55898,3}, {4248,55898,3},{4252,55888,3},{4062,55959,131},{4053,55959,3},{4052,55966,3}, {4048,55966,3},{4045,55969,3},{4042,55969,3},{4033,55973,3},{4032,55971,3}, {4030,55978,3},{4025,55983,3},{4023,55989,3},{4020,55988,3},{4012,55996,3}, {4003,55994,3},{4003,56001,3},{3998,56006,3},{4060,55959,131},{4058,56043,3}, {4058,56161,3},{4060,56299,3},{4063,56363,3},{4058,56366,3},{4055,56368,3}, {4053,56373,3},{4050,56374,3},{4045,56383,3},{4042,56384,3},{4038,56393,3}, {3700,56074,131},{3913,56073,3},{3915,56076,3},{3915,56073,3},{3917,56069,3}, {3917,56064,3},{3920,56054,3},{3927,56053,3},{3930,56046,3},{3935,56044,3}, {3938,56046,3},{3940,56041,3},{3945,56036,3},{3947,56033,3},{3955,56026,3}, {3957,56026,3},{3958,56029,3},{3962,56031,3},{3967,56033,3},{3968,56038,3}, {3973,56039,3},{3972,56046,3},{3973,56049,3},{3982,56048,3},{3985,56041,3}, {3990,56041,3},{3990,56034,3},{3987,56033,3},{3987,56028,3},{3990,56021,3}, {3990,56016,3},{3993,56014,3},{4000,56004,3},{3650,56074,131},{3700,56074,3}, {3365,56088,131},{3538,56093,3},{3555,56091,3},{3650,56074,3},{3365,56086,131}, {3363,56089,3},{3360,56091,3},{3358,56094,3},{3358,56098,3},{3357,56096,3}, {3355,56098,3},{3355,56104,3},{3358,56106,3},{3358,56111,3},{3357,56113,3}, {3358,56118,3},{3357,56121,3},{3357,56128,3},{3355,56131,3},{3302,56131,3}, {3000,56156,131},{3007,56164,3},{3010,56164,3},{3015,56166,3},{3022,56164,3}, {3028,56164,3},{3035,56161,3},{3040,56161,3},{3045,56166,3},{3052,56164,3}, {3055,56163,3},{3058,56164,3},{3060,56168,3},{3065,56168,3},{3070,56174,3}, {3077,56176,3},{3082,56179,3},{3090,56179,3},{3095,56183,3},{3097,56179,3}, {3102,56179,3},{3103,56184,3},{3110,56179,3},{3118,56183,3},{3120,56176,3}, {3127,56174,3},{3132,56168,3},{3137,56171,3},{3142,56166,3},{3145,56164,3}, {3148,56161,3},{3152,56164,3},{3155,56158,3},{3160,56153,3},{3170,56154,3}, {3173,56153,3},{3178,56153,3},{3188,56146,3},{3193,56139,3},{3197,56136,3}, {3200,56131,3},{3302,56131,3},{3302,56279,3},{3302,56418,3},{4350,56414,131}, {4357,56411,3},{4380,56409,3},{4392,56401,3},{4397,56396,3},{4403,56384,3}, {4403,56376,3},{4415,56356,3},{4418,56351,3},{4433,56343,3},{4435,56338,3}, {4442,56326,3},{4447,56311,3},{4455,56299,3},{4460,56279,3},{4475,56254,3}, {4480,56258,3},{4490,56258,3},{4493,56261,3},{4503,56259,3},{4507,56256,3}, {4512,56261,3},{4518,56259,3},{4528,56259,3},{4533,56266,3},{4543,56269,3}, {4555,56261,3},{4557,56249,3},{4558,56246,3},{4572,56248,3},{4577,56258,3}, {4583,56259,3},{4592,56266,3},{4595,56279,3},{4598,56283,3},{4598,56289,3}, {4602,56293,3},{4603,56299,3},{4608,56306,3},{4667,56306,3},{4667,56314,3}, {4672,56316,3},{4672,56319,3},{4677,56324,3},{4250,56471,131},{4255,56473,3}, {4265,56466,3},{4270,56441,3},{4272,56433,3},{4275,56429,3},{4287,56428,3}, {4292,56423,3},{4312,56418,3},{4317,56419,3},{4325,56426,3},{4328,56428,3}, {4333,56424,3},{4337,56416,3},{4345,56413,3},{4337,56416,3},{4345,56413,3}, {4352,56414,3},{4038,56393,131},{4038,56398,3},{4040,56399,3},{4045,56398,3}, {4050,56399,3},{4055,56394,3},{4057,56394,3},{4062,56404,3},{4067,56421,3}, {4075,56426,3},{4083,56428,3},{4097,56441,3},{4110,56439,3},{4118,56429,3}, {4123,56426,3},{4142,56433,3},{4143,56436,3},{4143,56449,3},{4145,56454,3}, {4145,56468,3},{4152,56479,3},{4153,56491,3},{4157,56496,3},{4158,56501,3}, {4167,56503,3},{4175,56506,3},{4182,56516,3},{4200,56523,3},{4212,56519,3}, {4225,56496,3},{4235,56493,3},{4247,56473,3},{4248,56471,3},{4252,56473,3}, {4658,56494,131},{4655,56496,3},{4657,56503,3},{4655,56503,3},{4653,56504,3}, {4650,56514,3},{4633,56524,3},{4615,56624,3},{4603,56653,3},{4602,56658,3}, {4603,56664,3},{4600,56671,3},{4602,56676,3},{4602,56684,3},{4600,56686,3}, {4600,56699,3},{4597,56703,3},{4597,56718,3},{4593,56724,3},{4588,56728,3}, {4583,56724,3},{4580,56724,3},{4578,56731,3},{4578,56736,3},{4577,56746,131}, {4568,56756,3},{4565,56753,3},{4560,56758,3},{4557,56753,3},{4550,56756,3}, {4545,56749,3},{4537,56748,3},{4535,56749,3},{4537,56761,3},{4538,56768,3}, {4537,56771,3},{4535,56771,3},{4525,56764,3},{4518,56763,3},{4515,56768,3}, {4512,56769,3},{4510,56776,3},{4248,56756,131},{4250,56613,3},{4252,56473,3}, {3697,56624,131},{3698,56623,3},{3698,56616,3},{3702,56614,3},{3703,56611,3}, {3708,56609,3},{3708,56606,3},{3707,56604,3},{3702,56609,3},{3700,56608,3}, {3705,56598,3},{3710,56598,3},{3720,56589,3},{3725,56589,3},{3727,56584,3}, {3732,56584,3},{3735,56591,3},{3742,56593,3},{3755,56583,3},{3768,56583,3}, {3773,56569,3},{3783,56563,3},{3787,56554,3},{3790,56551,3},{3787,56544,3}, {3788,56541,3},{3790,56539,3},{3795,56541,3},{3797,56534,3},{3802,56524,3}, {3807,56521,3},{3810,56513,3},{3823,56499,3},{3828,56498,3},{3835,56498,3}, {3843,56504,3},{3855,56511,3},{3863,56518,3},{3872,56516,3},{3880,56523,3}, {3883,56523,3},{3892,56509,3},{3893,56503,3},{3897,56493,3},{3895,56488,3}, {3888,56481,3},{3888,56474,3},{3897,56466,3},{3907,56464,3},{3910,56466,3}, {3913,56463,3},{3925,56461,3},{3930,56458,3},{3937,56448,3},{3945,56433,3}, {3953,56426,3},{3955,56421,3},{3972,56398,3},{3980,56396,3},{3987,56391,3}, {3993,56393,3},{4000,56388,3},{4012,56384,3},{4028,56386,3},{4037,56389,3}, {4038,56393,3},{4172,56784,131},{3935,56783,3},{3933,56778,3},{3930,56773,3}, {3920,56778,3},{3915,56769,3},{3912,56769,3},{3905,56776,3},{3900,56778,3}, {3895,56783,3},{3887,56781,3},{3880,56784,3},{3875,56784,3},{3868,56783,3}, {3865,56774,3},{3860,56774,3},{3857,56769,3},{3850,56771,3},{3850,56768,3}, {3845,56761,3},{3843,56761,3},{3838,56759,3},{3837,56754,3},{3828,56751,3}, {3832,56748,3},{3828,56746,3},{3830,56743,3},{3828,56741,3},{3825,56739,3}, {3823,56738,3},{3820,56738,3},{3817,56743,3},{3815,56743,3},{3810,56733,3}, {3808,56738,3},{3808,56739,3},{3805,56731,3},{3803,56733,3},{3795,56731,3}, {3790,56733,3},{3788,56724,3},{3783,56733,3},{3782,56726,3},{3780,56731,3}, {3782,56733,131},{3775,56729,3},{3768,56723,3},{3763,56719,3},{3760,56721,3}, {3753,56728,3},{3748,56728,3},{3747,56724,3},{3745,56709,3},{3743,56703,3}, {3740,56699,3},{3740,56689,3},{3738,56688,3},{3733,56684,3},{3728,56684,3}, {3715,56694,3},{3707,56688,3},{3707,56684,3},{3707,56679,3},{3712,56671,3}, {3722,56646,3},{3722,56639,3},{3722,56634,3},{3718,56629,3},{3712,56624,3}, {3707,56619,3},{3702,56619,3},{3698,56623,3},{3695,56624,3},{3688,56624,3}, {3683,56618,3},{3680,56619,3},{3680,56623,3},{3677,56623,3},{3677,56618,3}, {3673,56616,3},{3667,56619,3},{3658,56614,3},{3657,56611,3},{3658,56606,3}, {3663,56599,3},{3662,56598,3},{3658,56598,3},{3648,56593,3},{3650,56593,131}, {3645,56588,3},{3647,56586,3},{3650,56586,3},{3655,56586,3},{3657,56583,3}, {3655,56579,3},{3652,56579,3},{3648,56581,3},{3645,56581,3},{3637,56583,3}, {3635,56581,3},{3635,56574,3},{3632,56573,3},{3627,56581,3},{3625,56578,3}, {3623,56568,3},{3613,56576,3},{3610,56569,3},{3598,56563,3},{3600,56563,131}, {3592,56569,3},{3590,56569,3},{3592,56563,3},{3590,56559,3},{3587,56558,3}, {3585,56563,3},{3582,56563,3},{3582,56561,3},{3582,56556,3},{3577,56554,3}, {3577,56553,3},{3573,56539,3},{3572,56539,3},{3567,56544,3},{3565,56551,3}, {3563,56549,3},{3560,56541,3},{3558,56541,3},{3557,56543,3},{3553,56543,3}, {3557,56534,3},{3555,56531,3},{3552,56531,3},{3543,56536,3},{3542,56531,3}, {3543,56529,3},{3547,56528,3},{3548,56526,3},{3542,56518,3},{3538,56518,3}, {3542,56523,3},{3538,56526,3},{3535,56524,3},{3532,56526,3},{3528,56518,3}, {3527,56519,3},{3525,56526,3},{3523,56528,3},{3520,56528,3},{3517,56528,3}, {3513,56526,3},{3512,56526,3},{3513,56519,3},{3505,56514,3},{3505,56506,3}, {3500,56506,3},{3502,56504,131},{3493,56509,3},{3487,56506,3},{3485,56504,3}, {3487,56501,3},{3483,56493,3},{3488,56493,3},{3488,56489,3},{3487,56489,3}, {3483,56489,3},{3480,56489,3},{3477,56491,3},{3473,56488,3},{3473,56483,3}, {3477,56486,3},{3480,56484,3},{3480,56481,3},{3472,56481,3},{3470,56488,3}, {3468,56489,3},{3467,56488,3},{3463,56483,3},{3463,56481,3},{3468,56481,3}, {3470,56479,3},{3467,56478,3},{3462,56476,3},{3458,56483,3},{3455,56483,3}, {3452,56478,3},{3445,56478,3},{3442,56478,3},{3438,56471,3},{3432,56468,3}, {3433,56466,3},{3437,56468,3},{3437,56459,3},{3433,56461,3},{3430,56459,3}, {3428,56458,3},{3428,56454,3},{3422,56449,3},{3423,56443,3},{3420,56443,3}, {3418,56453,3},{3417,56454,3},{3415,56453,3},{3417,56444,3},{3415,56439,3}, {3412,56441,3},{3410,56448,3},{3410,56449,3},{3405,56448,3},{3403,56444,3}, {3402,56438,3},{3397,56438,3},{3402,56428,3},{3402,56426,3},{3393,56433,3}, {3385,56429,3},{3380,56436,3},{3378,56433,3},{3380,56421,3},{3377,56421,3}, {3372,56423,3},{3372,56429,3},{3368,56431,3},{3367,56426,3},{3368,56421,3}, {3373,56418,3},{3372,56413,3},{3362,56419,3},{3358,56418,3},{3358,56411,3}, {3352,56416,3},{3345,56411,3},{3345,56414,3},{3345,56416,3},{3352,56419,3}, {3348,56423,3},{3347,56423,3},{3342,56414,3},{3340,56414,3},{3340,56418,3}, {3340,56423,3},{3347,56426,3},{3345,56429,3},{3343,56429,3},{3335,56421,3}, {3327,56424,3},{3330,56429,3},{3328,56431,3},{3327,56429,3},{3323,56426,3}, {3315,56426,3},{3315,56416,3},{3312,56416,3},{3307,56423,3},{3300,56418,3}, {3302,56418,131},{3295,56413,3},{3292,56414,3},{3292,56421,3},{3297,56421,3}, {3298,56423,3},{3298,56426,3},{3297,56426,3},{3288,56426,3},{3285,56421,3}, {3278,56418,3},{3275,56428,3},{3273,56429,3},{3268,56424,3},{3267,56419,3}, {3262,56419,3},{3260,56423,3},{3265,56431,3},{3263,56434,3},{3260,56433,3}, {3257,56428,3},{3252,56434,3},{3250,56434,3},{3250,56431,3},{3252,56428,3}, {3252,56426,3},{3250,56424,3},{3247,56424,3},{3245,56429,3},{3245,56438,3}, {3243,56438,3},{3242,56436,3},{3237,56436,3},{3233,56444,3},{3232,56446,3}, {3230,56438,3},{3225,56438,3},{3223,56438,3},{3225,56431,3},{3223,56428,3}, {3222,56421,3},{3217,56419,3},{3215,56421,3},{3215,56429,3},{3218,56431,3}, {3217,56434,3},{3213,56434,3},{3210,56429,3},{3207,56428,3},{3208,56419,3}, {3207,56421,3},{3203,56428,3},{3202,56428,3},{3197,56418,3},{3193,56416,3}, {3187,56409,3},{3182,56409,3},{3187,56404,3},{3183,56401,3},{3178,56399,3}, {3177,56408,3},{3173,56398,3},{3163,56394,3},{3165,56386,3},{3163,56384,3}, {3160,56386,3},{3160,56393,3},{3158,56394,3},{3153,56384,3},{3148,56384,3}, {3142,56388,3},{3140,56386,3},{3140,56383,3},{3143,56381,3},{3142,56379,3}, {3137,56379,3},{3132,56384,3},{3130,56384,3},{3128,56383,3},{3127,56371,3}, {3125,56371,3},{3120,56376,3},{3113,56373,3},{3107,56379,3},{3105,56378,3}, {3102,56373,3},{3100,56371,3},{3100,56563,3},{3098,56564,3},{3082,56558,3}, {3078,56554,3},{3067,56551,3},{3063,56554,3},{3062,56554,3},{3057,56556,3}, {3053,56561,3},{3047,56568,3},{3042,56569,3},{3033,56574,3},{3030,56573,3}, {3020,56578,3},{3018,56579,3},{3020,56583,3},{3018,56584,3},{4177,56853,131}, {4177,57056,3},{4173,57056,3},{4168,57056,3},{4173,57189,131},{4170,57056,3}, {3910,57054,3},{3905,57048,3},{3897,57054,3},{3892,57049,3},{3890,57049,3}, {3890,57056,3},{3888,57058,3},{3883,57054,3},{3878,57056,3},{3880,57051,3}, {3878,57038,3},{3868,57018,3},{3875,57009,3},{3873,56993,3},{3870,56991,3}, {3865,56993,3},{3853,56994,3},{3852,56989,3},{3847,56984,3},{3845,56976,3}, {3833,56971,3},{3830,56968,3},{3827,56961,3},{3828,56956,3},{3828,56953,3}, {3818,56946,3},{3803,56944,3},{3800,56941,3},{3800,56934,3},{3797,56931,3}, {3802,56924,3},{3802,56918,3},{3807,56909,3},{3808,56908,3},{3813,56908,3}, {3820,56899,3},{3818,56898,3},{3815,56903,3},{3813,56903,3},{3810,56896,3}, {3813,56889,3},{3807,56893,3},{3803,56884,3},{3793,56884,3},{3792,56878,3}, {3787,56876,3},{3785,56873,3},{3785,56869,3},{3790,56871,3},{3790,56864,3}, {3790,56861,3},{3797,56856,3},{3798,56853,3},{3793,56844,3},{3792,56834,3}, {3782,56829,3},{3778,56824,3},{3780,56821,3},{3783,56819,3},{3785,56816,3}, {3793,56796,3},{3793,56789,3},{3792,56784,3},{3792,56779,3},{3797,56776,3}, {3793,56774,3},{3787,56778,3},{3783,56773,3},{3783,56768,3},{3788,56769,3}, {3790,56768,3},{3787,56758,3},{3788,56753,3},{3793,56746,3},{3792,56743,3}, {3782,56746,3},{3778,56741,3},{3782,56733,3},{3780,56731,3},{3842,57276,131}, {3847,57274,3},{3850,57269,3},{3853,57266,3},{3858,57253,3},{3875,57248,3}, {3872,57233,3},{3868,57231,3},{3867,57224,3},{3862,57221,3},{3862,57209,3}, {3860,57206,3},{3865,57199,3},{3867,57189,3},{3870,57186,3},{3868,57176,3}, {3863,57171,3},{3865,57159,3},{3868,57158,3},{3872,57153,3},{3877,57149,3}, {3878,57141,3},{3878,57128,3},{3882,57116,3},{3890,57113,3},{3895,57108,3}, {3900,57106,3},{3905,57096,3},{3912,57091,3},{3907,57076,3},{3908,57071,3}, {3913,57063,3},{3908,57053,3},{3753,57339,131},{3755,57338,3},{3753,57333,3}, {3757,57323,3},{3760,57323,3},{3763,57318,3},{3768,57308,3},{3777,57304,3}, {3782,57296,3},{3790,57294,3},{3793,57288,3},{3798,57289,3},{3803,57283,3}, {3817,57273,3},{3820,57276,3},{3823,57276,3},{3825,57279,3},{3833,57279,3}, {3837,57276,3},{3842,57278,3},{3753,57339,131},{3727,57299,3},{3713,57266,3}, {3712,57264,3},{3705,57264,3},{3698,57251,3},{3690,57249,3},{3687,57239,3}, {3685,57229,3},{3678,57224,3},{3675,57223,3},{3673,57213,3},{3670,57201,3}, {3668,57196,3},{3667,57184,3},{3663,57174,3},{3660,57169,3},{3650,56594,131}, {3650,56731,3},{3657,56733,3},{3668,56729,3},{3667,56751,3},{3663,56753,3}, {3665,56816,3},{3665,56878,3},{3663,56879,3},{3667,56884,3},{3662,56984,3}, {3663,57021,3},{3662,57059,3},{3660,57126,3},{3658,57164,3},{3660,57168,3}, {3660,57339,3},{3660,57341,3},{3662,57344,3},{3660,57371,3},{3662,57371,131}, {3653,57364,3},{3648,57366,3},{3640,57361,3},{3635,57364,3},{3637,57354,3}, {3635,57353,3},{3630,57346,3},{3613,57333,3},{3613,57331,3},{3610,57329,3}, {3610,57326,3},{3613,57323,3},{3615,57321,3},{3617,57316,3},{3613,57309,3}, {3612,57301,3},{3607,57293,3},{3600,57288,3},{3597,57279,3},{3598,57276,3}, {3603,57278,3},{3607,57273,3},{3600,57259,3},{3593,57256,3},{3595,57249,3}, {3595,57246,3},{3592,57244,3},{3588,57246,3},{3578,57238,3},{3580,57229,3}, {3578,57228,3},{3577,57219,3},{3573,57216,3},{3572,57211,3},{3567,57206,3}, {3567,57201,3},{3563,57199,3},{3562,57191,3},{3557,57186,3},{3555,57179,3}, {3558,57176,3},{3557,57173,3},{3557,57163,3},{3553,57154,3},{3552,57148,3}, {3547,57144,3},{3545,57139,3},{3542,57134,3},{3528,57131,3},{3527,57128,3}, {3525,57118,3},{3527,57114,3},{3527,57111,3},{3523,57108,3},{3498,57104,3}, {3500,56506,131},{3500,56718,3},{3500,56974,131},{3500,56853,3},{3502,56718,3}, {3500,56718,3},{3500,56974,131},{3498,57104,3},{3500,56718,131},{3493,56723,3}, {3490,56728,3},{3190,56688,3},{3038,56696,3},{3027,56786,131},{3030,56786,3}, {3030,56789,3},{3032,56786,3},{3033,56786,3},{3035,56789,3},{3040,56793,3}, {3043,56799,3},{3047,56794,3},{3053,56791,3},{3065,56796,3},{3068,56794,3}, {3073,56784,3},{3078,56781,3},{3087,56773,3},{3095,56776,3},{3100,56776,3}, {3100,57036,3},{3098,57036,131},{3102,57036,3},{3107,57036,3},{3117,57029,3}, {3118,57026,3},{3127,57024,3},{3145,57031,3},{3148,57029,3},{3153,57033,3}, {3163,57029,3},{3168,57024,3},{3183,57023,3},{3190,57024,3},{3200,57029,3}, {3213,57031,3},{3218,57034,3},{3220,57039,3},{3222,57038,3},{3223,57044,3}, {3225,57044,3},{3227,57046,3},{3233,57036,3},{3235,57036,3},{3238,57039,3}, {3238,57038,3},{3242,57039,3},{3247,57038,3},{3252,57036,3},{3258,57029,3}, {3263,57028,3},{3265,57026,3},{3273,57024,3},{3275,57023,3},{3278,57023,3}, {3282,57019,3},{3285,57019,3},{3292,57016,3},{3400,56996,3},{3500,56974,3}, {3072,57384,131},{3070,57381,3},{3072,57374,3},{3073,57373,3},{3073,57371,3}, {3073,57368,3},{3075,57364,3},{3077,57363,3},{3077,57358,3},{3078,57356,3}, {3080,57348,3},{3082,57344,3},{3082,57339,3},{3078,57338,3},{3078,57334,3}, {3072,57333,3},{3065,57331,3},{3057,57334,3},{3042,57331,3},{3037,57331,3}, {3037,57328,3},{3037,57316,3},{3043,57314,3},{3048,57316,3},{3053,57311,3}, {3057,57313,3},{3072,57049,3},{3073,57049,3},{3075,57044,3},{3088,57043,3}, {3100,57034,3},{4063,57484,131},{4198,57484,3},{4065,57484,131},{4062,57479,3}, {4062,57473,3},{4058,57469,3},{4047,57476,3},{4040,57473,3},{4037,57476,3}, {4032,57476,3},{4028,57474,3},{4025,57471,3},{4012,57464,3},{4008,57463,3}, {4000,57463,3},{3995,57459,3},{3992,57461,3},{3992,57456,3},{3987,57456,3}, {3978,57453,3},{3977,57449,3},{3972,57453,3},{3962,57448,3},{3960,57443,3}, {3955,57434,3},{3945,57424,3},{3940,57413,3},{3938,57408,3},{3935,57399,3}, {3937,57396,3},{3940,57393,3},{3940,57389,3},{3938,57388,3},{3933,57381,3}, {3928,57379,3},{3927,57368,3},{3923,57366,3},{3922,57363,3},{3917,57361,3}, {3910,57361,3},{3907,57354,3},{3902,57359,3},{3897,57358,3},{3893,57359,3}, {3895,57354,3},{3893,57353,3},{3890,57349,3},{3887,57346,3},{3888,57343,3}, {3893,57346,3},{3898,57343,3},{3902,57334,3},{3893,57324,3},{3883,57321,3}, {3877,57314,3},{3872,57318,3},{3862,57318,3},{3858,57316,3},{3858,57309,3}, {3845,57304,3},{3840,57281,3},{3842,57276,3},{3500,57226,131},{3493,57223,3}, {3493,57221,3},{3487,57213,3},{3480,57209,3},{3480,57206,3},{3470,57201,3}, {3463,57211,3},{3460,57218,3},{3462,57219,3},{3458,57219,3},{3453,57228,3}, {3448,57233,3},{3448,57248,3},{3435,57254,3},{3427,57261,3},{3417,57263,3}, {3412,57271,3},{3403,57276,3},{3395,57279,3},{3395,57284,3},{3388,57291,3}, {3382,57306,3},{3375,57311,3},{3362,57318,3},{3357,57329,3},{3350,57338,3}, {3347,57343,3},{3342,57344,3},{3342,57343,3},{3338,57344,3},{3337,57343,3}, {3332,57348,3},{3332,57351,3},{3330,57351,3},{3327,57353,3},{3325,57353,3}, {3322,57356,3},{3322,57359,3},{3315,57359,3},{3312,57366,3},{3310,57374,3}, {3305,57381,3},{3305,57383,3},{3302,57388,3},{3295,57386,3},{3275,57396,3}, {3270,57394,3},{3267,57396,3},{3262,57396,3},{3258,57401,3},{3257,57408,3}, {3253,57409,3},{3253,57413,3},{3250,57413,3},{3247,57418,3},{3243,57416,3}, {3235,57419,3},{3232,57423,3},{3228,57423,3},{3225,57421,3},{3223,57423,3}, {3220,57421,3},{3213,57423,3},{3208,57429,3},{3207,57439,3},{3203,57443,3}, {3203,57446,3},{3498,57103,131},{3500,57226,3},{3508,57258,3},{3507,57261,3}, {3510,57266,3},{3513,57268,3},{3517,57284,3},{3518,57288,3},{3517,57293,3}, {3520,57294,3},{3522,57298,3},{3520,57299,3},{3520,57303,3},{3520,57308,3}, {3520,57339,3},{3515,57431,3},{3513,57433,3},{3508,57431,3},{3505,57433,3}, {3512,57443,3},{3505,57448,3},{3497,57458,3},{3483,57456,3},{3480,57569,3}, {3385,57681,3},{3662,57369,131},{3660,57371,3},{3657,57421,3},{3655,57511,3}, {3655,57754,3},{3655,57953,3},{3933,57763,131},{3915,57753,3},{3945,57703,3}, {3942,57701,3},{3933,57699,3},{3927,57694,3},{3917,57694,3},{3907,57684,3}, {3902,57681,3},{3897,57676,3},{3897,57673,3},{3893,57669,3},{3892,57666,3}, {3893,57661,3},{3878,57649,3},{3885,57636,3},{3873,57628,3},{3867,57626,3}, {3863,57621,3},{3852,57616,3},{3842,57608,3},{3848,57584,3},{3850,57586,3}, {3857,57581,3},{3858,57571,3},{3852,57569,3},{3850,57568,3},{3843,57566,3}, {3840,57564,3},{3837,57563,3},{3837,57559,3},{3832,57556,3},{3827,57556,3}, {3817,57544,3},{3810,57543,3},{3802,57538,3},{3783,57516,3},{3772,57511,3}, {3768,57508,3},{3767,57508,3},{3763,57514,3},{3757,57506,3},{3755,57506,3}, {3753,57509,3},{3743,57491,3},{3743,57488,3},{3747,57488,3},{3747,57486,3}, {3745,57479,3},{3738,57461,3},{3740,57458,3},{3742,57456,3},{3743,57451,3}, {3738,57448,3},{3735,57449,3},{3732,57446,3},{3728,57441,3},{3732,57436,3}, {3728,57434,3},{3728,57421,3},{3725,57414,3},{3733,57399,3},{3727,57394,3}, {3727,57388,3},{3720,57379,3},{3722,57371,3},{3723,57364,3},{3728,57361,3}, {3728,57353,3},{3733,57349,3},{3737,57343,3},{3743,57343,3},{3747,57338,3}, {3752,57341,3},{3753,57339,3},{3972,57588,131},{3920,57588,3},{3930,57601,3}, {3930,57608,3},{3935,57611,3},{3942,57623,3},{3947,57626,3},{3948,57631,3}, {3945,57638,3},{3945,57641,3},{3955,57651,3},{3957,57656,3},{3958,57654,3}, {3963,57658,3},{3962,57663,3},{3960,57661,3},{3957,57661,3},{3953,57669,3}, {3952,57678,3},{3953,57689,3},{3955,57694,3},{3958,57691,3},{3960,57696,3}, {3962,57693,3},{3965,57701,3},{3963,57708,3},{3968,57714,3},{3970,57718,3}, {3970,57723,3},{3965,57731,3},{3960,57736,3},{3960,57741,3},{3960,57744,3}, {3960,57748,3},{3962,57749,3},{3960,57753,3},{3957,57753,3},{3955,57748,3}, {3952,57751,3},{3953,57753,3},{3953,57754,3},{3950,57753,3},{3950,57759,3}, {3945,57756,3},{3942,57763,3},{3935,57761,3},{3933,57763,3},{3972,57588,131}, {3972,57484,3},{4063,57484,3},{4227,57559,131},{4200,57559,3},{4200,57781,3}, {4200,58003,3},{4198,58003,3},{4195,58009,3},{4187,58011,3},{4187,58019,3}, {4183,58028,3},{4180,58026,3},{4178,58031,3},{4173,58031,3},{4172,58029,3}, {4165,58031,3},{4162,58029,3},{4148,58038,3},{4148,58044,3},{4145,58048,3}, {4143,58061,3},{4138,58066,3},{4135,58066,3},{4098,58146,3},{4070,58134,3}, {4067,58128,3},{4063,58118,3},{4058,58116,3},{4055,58113,3},{4050,58111,3}, {4205,58188,131},{4130,58181,3},{4122,58188,3},{4110,58164,3},{4102,58171,3}, {4275,58211,131},{4208,58184,3},{4205,58188,3},{4203,58254,3},{4200,58256,3}, {4200,58258,3},{4200,58256,131},{4200,58259,3},{4203,58261,3},{4203,58274,3}, {4202,58278,3},{4203,58279,3},{4203,58356,3},{4200,58356,3},{4142,58358,3}, {4140,58353,3},{4132,58351,3},{4202,58356,131},{4202,58398,3},{4190,58398,3}, {4188,58403,3},{4178,58403,3},{4175,58409,3},{4168,58416,3},{4165,58423,3}, {4152,58423,3},{4502,58201,131},{4493,58203,3},{4485,58198,3},{4478,58203,3}, {4462,58198,3},{4445,58208,3},{4437,58203,3},{4425,58204,3},{4420,58198,3}, {4405,58193,3},{4402,58196,3},{4393,58196,3},{4387,58199,3},{4383,58198,3}, {4377,58199,3},{4365,58194,3},{4360,58193,3},{4357,58196,3},{4360,58199,3}, {4362,58201,3},{4363,58203,3},{4362,58206,3},{4360,58208,3},{4353,58213,3}, {4285,58209,3},{4282,58208,3},{4275,58211,3},{4273,58291,131},{4275,58211,3}, {4288,58454,131},{4288,58446,3},{4288,58441,3},{4285,58434,3},{4282,58428,3}, {4282,58423,3},{4280,58419,3},{4275,58418,3},{4275,58413,3},{4270,58406,3}, {4273,58289,3},{4530,58428,131},{4357,58441,3},{4340,58438,3},{4330,58446,3}, {4325,58454,3},{4315,58453,3},{4308,58463,3},{4502,58386,131},{4502,58384,3}, {4498,58383,3},{4490,58386,3},{4475,58373,3},{4458,58381,3},{4457,58376,3}, {4452,58378,3},{4443,58368,3},{4440,58356,3},{4435,58351,3},{4435,58339,3}, {4430,58333,3},{4425,58331,3},{4410,58331,3},{4400,58324,3},{4397,58326,3}, {4388,58318,3},{4378,58314,3},{4372,58306,3},{4360,58303,3},{4358,58298,3}, {4355,58296,3},{4330,58296,3},{4325,58293,3},{4300,58289,3},{4297,58283,3}, {4287,58281,3},{4283,58281,3},{4278,58284,3},{4277,58288,3},{4273,58289,3}, {3972,57588,131},{3972,57766,3},{3972,57958,3},{3802,57999,131},{3800,57974,3}, {3797,57971,3},{3797,57969,3},{3972,57958,131},{3980,57964,3},{3985,57973,3}, {3985,57988,3},{3982,57994,3},{3845,58033,131},{3845,57964,3},{3903,57963,3}, {3972,57958,3},{3933,57763,131},{3932,57769,3},{3930,57774,3},{3930,57781,3}, {3927,57783,3},{3923,57791,3},{3920,57789,3},{3917,57786,3},{3913,57784,3}, {3907,57791,3},{3907,57803,3},{3905,57809,3},{3898,57814,3},{3897,57823,3}, {3893,57824,3},{4135,58066,131},{4132,58058,3},{4125,58049,3},{4117,58048,3}, {4110,58038,3},{4108,58038,3},{4103,58033,3},{4100,58024,3},{4098,58023,3}, {4088,58031,3},{4085,58029,3},{4085,58026,3},{4078,58024,3},{4078,58023,3}, {4078,58019,3},{4075,58018,3},{4073,58018,3},{4070,58016,3},{4067,58018,3}, {4065,58016,3},{4058,58018,3},{4057,58019,3},{4055,58028,3},{4045,58029,3}, {4042,58031,3},{4040,58034,3},{4040,58039,3},{4033,58043,3},{4017,58064,3}, {4013,58061,3},{4012,58054,3},{4008,58048,3},{4007,58043,3},{4002,58038,3}, {4002,58033,3},{3878,57833,131},{3890,57846,3},{3900,57833,3},{3895,57824,3}, {3890,57829,3},{61703,14463,128},{61706,14462,0},{61699,14480,0},{61704,14493,0}, {61706,14495,0},{61711,14497,0},{61714,14502,0},{61723,14508,0},{61734,14503,0}, {61736,14498,0},{61743,14495,0},{61748,14492,0},{61749,14488,0},{61748,14485,0}, {61749,14482,0},{61749,14478,0},{61746,14475,0},{61743,14475,0},{61741,14470,0}, {61736,14462,0},{61736,14455,0},{61729,14447,0},{61726,14445,0},{61726,14435,0}, {61723,14432,0},{61721,14433,0},{61723,14438,0},{61719,14442,0},{61719,14445,0}, {61723,14458,0},{61723,14465,0},{61718,14467,0},{61714,14467,0},{61714,14463,0}, {61716,14465,0},{61714,14462,0},{61709,14457,0},{61708,14462,0},{61706,14457,0}, {61708,14443,0},{61704,14433,0},{61694,14422,0},{61684,14402,0},{61666,14387,0}, {61664,14372,0},{61658,14368,0},{61649,14355,0},{61651,14352,0},{61656,14347,0}, {61659,14338,0},{61659,14322,0},{61668,14312,0},{61676,14280,0},{61696,14250,0}, {61696,14242,0},{61698,14233,0},{61698,14228,0},{61694,14222,0},{61696,14210,0}, {61698,14203,0},{61706,14188,0},{61706,14180,0},{61708,14172,0},{61706,14167,0}, {61704,14162,0},{61694,14162,0},{61693,14155,0},{61691,14152,0},{61694,14147,0}, {61698,14142,0},{61696,14135,0},{61699,14133,0},{61704,14137,0},{61711,14130,0}, {61724,14108,0},{61726,14103,0},{61729,14095,0},{61731,14057,0},{61733,14048,0}, {61739,14043,0},{61741,14037,0},{61764,14020,0},{61776,14010,0},{61783,14005,0}, {61786,13995,0},{61789,13990,0},{61801,13980,0},{61806,13973,0},{61816,13968,0}, {61819,13972,0},{61824,13973,0},{61828,13970,0},{61831,13970,0},{61834,13965,0}, {61838,13963,0},{61841,13965,0},{61849,13980,0},{61859,13980,0},{61891,13970,0}, {61899,13968,0},{61918,13960,0},{61934,13948,0},{61953,13928,0},{61978,13890,0}, {61981,13890,0},{61978,13897,0},{61968,13912,0},{61944,13943,0},{61921,13960,0}, {61911,13965,0},{61898,13975,0},{61899,13975,0},{61921,13963,0},{61944,13948,0}, {61946,13942,0},{61951,13938,0},{61959,13928,0},{61976,13903,0},{61979,13903,0}, {61986,13890,0},{61983,13888,0},{61983,13883,0},{61979,13887,0},{61983,13875,0}, {61979,13860,0},{61971,13852,0},{61971,13828,0},{61968,13815,0},{61971,13810,0}, {61976,13810,0},{61983,13813,0},{61988,13828,0},{61996,13835,0},{62003,13843,0}, {62024,13845,0},{62029,13847,0},{62038,13848,0},{62051,13847,0},{62058,13850,0}, {62054,13852,0},{62058,13855,0},{62061,13853,0},{62088,13828,0},{62089,13823,0}, {62106,13820,0},{62109,13813,0},{62114,13813,0},{62121,13808,0},{62119,13805,0}, {62109,13800,0},{62099,13798,0},{62084,13787,0},{62078,13785,0},{62068,13787,0}, {62029,13773,0},{62026,13775,0},{62023,13773,0},{62018,13767,0},{62018,13762,0}, {62024,13745,0},{62023,13735,0},{62018,13728,0},{62018,13720,0},{62009,13715,0}, {62013,13703,0},{62009,13695,0},{62006,13687,0},{62006,13683,0},{62014,13680,0}, {62018,13687,0},{62024,13693,0},{62028,13695,0},{62033,13693,0},{62039,13695,0}, {62044,13698,0},{62043,13707,0},{62044,13713,0},{62048,13718,0},{62044,13722,0}, {62043,13735,0},{62043,13740,0},{62046,13743,0},{62076,13748,0},{62083,13747,0}, {62093,13748,0},{62093,13745,0},{62089,13742,0},{62091,13740,0},{62094,13742,0}, {62099,13747,0},{62108,13748,0},{62114,13748,0},{62119,13745,0},{62123,13743,0}, {62123,13745,0},{62124,13752,0},{62131,13753,0},{62138,13753,0},{62143,13758,0}, {62149,13760,0},{62158,13770,0},{62166,13775,0},{62168,13780,0},{62174,13783,0}, {62173,13790,0},{62179,13790,0},{62181,13795,0},{62196,13787,0},{62203,13785,0}, {62206,13782,0},{62213,13780,0},{62218,13783,0},{62221,13793,0},{62226,13800,0}, {62229,13802,0},{62239,13793,0},{62258,13788,0},{62263,13790,0},{62266,13785,0}, {62274,13783,0},{62276,13780,0},{62281,13782,0},{62284,13777,0},{62284,13773,0}, {62278,13775,0},{62269,13773,0},{62268,13773,0},{62264,13778,0},{62249,13778,0}, {62243,13773,0},{62238,13777,0},{62236,13773,0},{62238,13770,0},{62241,13765,0}, {62238,13760,0},{62228,13753,0},{62223,13745,0},{62221,13742,0},{62213,13742,0}, {62203,13735,0},{62193,13735,0},{62188,13730,0},{62173,13720,0},{62166,13710,0}, {62164,13697,0},{62166,13697,0},{62168,13695,0},{62169,13692,0},{62163,13687,0}, {62163,13693,0},{62159,13690,0},{62156,13680,0},{62153,13675,0},{62151,13670,0}, {62144,13657,0},{62139,13652,0},{62134,13642,0},{62126,13633,0},{62111,13625,0}, {62103,13617,0},{62101,13610,0},{62091,13610,0},{62084,13607,0},{62083,13605,0}, {62086,13605,0},{62088,13603,0},{62083,13597,0},{62083,13593,0},{62078,13592,0}, {62071,13590,0},{62071,13585,0},{62061,13587,0},{62056,13580,0},{62054,13580,0}, {62054,13585,0},{62058,13595,0},{62063,13597,0},{62059,13600,0},{62049,13595,0}, {62039,13597,0},{62038,13595,0},{62038,13592,0},{62043,13587,0},{62043,13583,0}, {62048,13582,0},{62049,13577,0},{62048,13570,0},{62046,13567,0},{62039,13567,0}, {62039,13560,0},{62051,13553,0},{62066,13538,0},{62066,13530,0},{62069,13532,0}, {62073,13530,0},{62078,13523,0},{62079,13518,0},{62078,13515,0},{62076,13513,0}, {62076,13510,0},{62084,13512,0},{62086,13515,0},{62091,13518,0},{62086,13520,0}, {62084,13522,0},{62084,13528,0},{62079,13528,0},{62078,13533,0},{62073,13537,0}, {62073,13548,0},{62074,13550,0},{62076,13543,0},{62081,13542,0},{62083,13542,0}, {62076,13540,0},{62076,13538,0},{62083,13537,0},{62086,13537,0},{62093,13533,0}, {62096,13535,0},{62116,13528,0},{62119,13522,0},{62124,13525,0},{62126,13525,0}, {62143,13520,0},{62149,13513,0},{62153,13512,0},{62156,13505,0},{62161,13500,0}, {62173,13480,0},{62179,13483,0},{62186,13483,0},{62203,13478,0},{62213,13463,0}, {62213,13468,0},{62216,13468,0},{62221,13457,0},{62219,13455,0},{62214,13460,0}, {62213,13460,0},{62214,13455,0},{62221,13447,0},{62221,13435,0},{62226,13432,0}, {62228,13430,0},{62233,13428,0},{62228,13425,0},{62221,13432,0},{62218,13432,0}, {62218,13428,0},{62223,13423,0},{62231,13420,0},{62231,13417,0},{62233,13413,0}, {62236,13413,0},{62238,13415,0},{62243,13415,0},{62243,13410,0},{62244,13408,0}, {62244,13405,0},{62251,13410,0},{62254,13410,0},{62258,13408,0},{62261,13402,0}, {62264,13400,0},{62264,13412,0},{62259,13418,0},{62264,13422,0},{62271,13425,0}, {62274,13420,0},{62279,13420,0},{62283,13418,0},{62291,13407,0},{62289,13398,0}, {62286,13395,0},{62288,13390,0},{62284,13387,0},{62284,13382,0},{62291,13380,0}, {62298,13383,0},{62298,13385,0},{62298,13387,0},{62296,13388,0},{62298,13390,0}, {62308,13387,0},{62314,13378,0},{62313,13373,0},{62314,13372,0},{62318,13372,0}, {62319,13363,0},{62323,13363,0},{62324,13362,0},{62329,13358,0},{62328,13355,0}, {62324,13355,0},{62323,13353,0},{62323,13348,0},{62328,13343,0},{62324,13338,0}, {62319,13345,0},{62318,13345,0},{62319,13340,0},{62318,13337,0},{62321,13328,0}, {62318,13323,0},{62321,13313,0},{62318,13310,0},{62324,13308,0},{62329,13302,0}, {62329,13297,0},{62333,13295,0},{62343,13278,0},{62344,13273,0},{62344,13265,0}, {62346,13260,0},{62344,13245,0},{62341,13243,0},{62336,13245,0},{62338,13233,0}, {62336,13223,0},{62336,13215,0},{62339,13213,0},{62346,13208,0},{62351,13195,0}, {62361,13183,0},{62379,13148,0},{62381,13137,0},{62386,13128,0},{62388,13120,0}, {62388,13115,0},{62381,13105,0},{62373,13083,0},{62374,13077,0},{62376,13060,0}, {62374,13052,0},{62376,13040,0},{62379,13025,0},{62378,12997,0},{62374,12980,0}, {62374,12970,0},{62371,12957,0},{62371,12943,0},{62369,12937,0},{62368,12923,0}, {62369,12912,0},{62354,12870,0},{62348,12865,0},{62336,12827,0},{62331,12818,0}, {62323,12785,0},{62318,12770,0},{62316,12762,0},{62311,12750,0},{62311,12742,0}, {62306,12727,0},{62306,12715,0},{62304,12710,0},{62303,12698,0},{62304,12680,0}, {62301,12672,0},{62301,12660,0},{62301,12655,0},{62304,12648,0},{62304,12638,0}, {62306,12633,0},{62308,12623,0},{62309,12618,0},{62308,12612,0},{62304,12605,0}, {62304,12598,0},{62294,12573,0},{62291,12568,0},{62284,12553,0},{62281,12550,0}, {62278,12543,0},{62273,12538,0},{62269,12525,0},{62264,12512,0},{62258,12493,0}, {62251,12483,0},{62248,12475,0},{62243,12467,0},{62241,12435,0},{62231,12415,0}, {62223,12408,0},{62208,12405,0},{62198,12398,0},{62176,12393,0},{62173,12385,0}, {62168,12383,0},{62163,12375,0},{62156,12372,0},{62153,12372,0},{62153,12368,0}, {62146,12363,0},{62143,12357,0},{62138,12350,0},{62138,12348,0},{62139,12347,0}, {62143,12345,0},{62144,12337,0},{62143,12333,0},{62138,12330,0},{62133,12320,0}, {62133,12317,0},{62134,12315,0},{62136,12312,0},{62138,12312,0},{62141,12313,0}, {62143,12312,0},{62146,12307,0},{62148,12302,0},{62144,12295,0},{62143,12282,0}, {62143,12277,0},{62146,12273,0},{62144,12272,0},{62144,12260,0},{62143,12258,0}, {62138,12258,0},{62138,12257,0},{62141,12243,0},{62141,12235,0},{62138,12225,0}, {62133,12225,0},{62133,12223,0},{62133,12220,0},{62131,12217,0},{62133,12213,0}, {62134,12210,0},{62138,12208,0},{62149,12198,0},{62149,12192,0},{62146,12187,0}, {62144,12178,0},{62148,12168,0},{62146,12165,0},{62151,12153,0},{62151,12135,0}, {62153,12130,0},{62151,12127,0},{62149,12117,0},{62148,12113,0},{62148,12112,0}, {62153,12112,0},{62148,12102,0},{62149,12090,0},{62148,12085,0},{62146,12083,0}, {62144,12067,0},{62146,12063,0},{62146,12057,0},{62136,12038,0},{62141,12025,0}, {62141,12020,0},{62138,12012,0},{62141,12008,0},{62144,12008,0},{62146,12007,0}, {62143,12002,0},{62138,11993,0},{62138,11987,0},{62136,11983,0},{62128,11973,0}, {62124,11965,0},{62119,11960,0},{62116,11958,0},{62106,11950,0},{62099,11950,0}, {62098,11955,0},{62096,11955,0},{62093,11950,0},{62093,11947,0},{62096,11947,0}, {62096,11945,0},{62096,11940,0},{62094,11938,0},{62091,11940,0},{62088,11940,0}, {62086,11937,0},{62088,11933,0},{62088,11930,0},{62086,11928,0},{62083,11930,0}, {62079,11925,0},{62081,11923,0},{62084,11920,0},{62088,11900,0},{62086,11890,0}, {62083,11890,0},{62083,11883,0},{62079,11875,0},{62076,11875,0},{62073,11877,0}, {62069,11873,0},{62068,11872,0},{62066,11867,0},{62064,11865,0},{62063,11853,0}, {62056,11843,0},{62049,11838,0},{62044,11842,0},{62043,11840,0},{62043,11835,0}, {62039,11818,0},{62038,11817,0},{62034,11820,0},{62031,11818,0},{62034,11810,0}, {62031,11803,0},{62031,11800,0},{62033,11797,0},{62038,11797,0},{62038,11793,0}, {62033,11792,0},{62029,11785,0},{62026,11788,0},{62026,11793,0},{62024,11797,0}, {62023,11797,0},{62021,11795,0},{62021,11790,0},{62026,11780,0},{62029,11767,0}, {62029,11765,0},{62021,11760,0},{62021,11758,0},{62026,11753,0},{62024,11747,0}, {62024,11745,0},{62028,11742,0},{62029,11735,0},{62033,11737,0},{62031,11742,0}, {62033,11743,0},{62034,11743,0},{62036,11740,0},{62034,11733,0},{62029,11730,0}, {62029,11717,0},{62026,11712,0},{62029,11708,0},{62029,11695,0},{62033,11698,0}, {62034,11697,0},{62034,11692,0},{62029,11690,0},{62028,11687,0},{62031,11677,0}, {62034,11675,0},{62033,11670,0},{62029,11670,0},{62028,11662,0},{62033,11653,0}, {62033,11647,0},{62034,11643,0},{62038,11638,0},{62039,11648,0},{62041,11648,0}, {62043,11647,0},{62044,11642,0},{62046,11638,0},{62046,11637,0},{62041,11637,0}, {62039,11633,0},{62046,11615,0},{62049,11600,0},{62056,11598,0},{62058,11593,0}, {62063,11593,0},{62069,11583,0},{62076,11578,0},{62083,11568,0},{62088,11565,0}, {62093,11555,0},{62094,11545,0},{62099,11538,0},{62103,11527,0},{62103,11517,0}, {62103,11515,0},{62098,11512,0},{62103,11507,0},{62108,11498,0},{62119,11500,0}, {62126,11495,0},{62149,11495,0},{62156,11498,0},{62159,11495,0},{62164,11495,0}, {62171,11498,0},{62183,11500,0},{62179,11505,0},{62173,11510,0},{62173,11513,0}, {62171,11523,0},{62173,11538,0},{62176,11543,0},{62183,11547,0},{62184,11548,0}, {62194,11558,0},{62203,11560,0},{62203,11567,0},{62206,11570,0},{62209,11568,0}, {62206,11565,0},{62208,11563,0},{62216,11565,0},{62223,11567,0},{62246,11560,0}, {62264,11560,0},{62269,11558,0},{62274,11558,0},{62281,11565,0},{62281,11568,0}, {62279,11568,0},{62273,11563,0},{62266,11565,0},{62259,11570,0},{62259,11572,0}, {62261,11572,0},{62273,11568,0},{62274,11570,0},{62273,11573,0},{62274,11575,0}, {62278,11575,0},{62284,11570,0},{62296,11572,0},{62301,11570,0},{62304,11572,0}, {62309,11568,0},{62313,11572,0},{62319,11575,0},{62331,11572,0},{62346,11573,0}, {62364,11567,0},{62381,11558,0},{62404,11540,0},{62416,11538,0},{62443,11525,0}, {62456,11515,0},{62469,11512,0},{62481,11505,0},{62484,11503,0},{62496,11500,0}, {62508,11500,0},{62514,11495,0},{62521,11497,0},{62531,11492,0},{62553,11493,0}, {62564,11492,0},{62586,11497,0},{62594,11492,0},{62601,11492,0},{62604,11488,0}, {62609,11490,0},{62616,11487,0},{62633,11475,0},{62641,11465,0},{62648,11460,0}, {62658,11457,0},{62663,11458,0},{62674,11457,0},{62684,11450,0},{62711,11430,0}, {62716,11422,0},{62728,11413,0},{62736,11413,0},{62753,11407,0},{62756,11408,0}, {62761,11413,0},{62768,11412,0},{62786,11408,0},{62806,11400,0},{62821,11387,0}, {62836,11382,0},{62858,11365,0},{62869,11357,0},{62893,11332,0},{62896,11328,0}, {62906,11327,0},{62921,11315,0},{62923,11315,0},{62921,11322,0},{62916,11325,0}, {62918,11327,0},{62923,11325,0},{62924,11327,0},{62934,11327,0},{62936,11328,0}, {62933,11332,0},{62921,11330,0},{62911,11332,0},{62906,11333,0},{62916,11335,0}, {62919,11337,0},{62929,11337,0},{62936,11335,0},{62936,11337,0},{62934,11338,0}, {62923,11342,0},{62921,11343,0},{62894,11348,0},{62903,11352,0},{62911,11350,0}, {62909,11352,0},{62903,11355,0},{62899,11353,0},{62894,11355,0},{62889,11353,0}, {62879,11355,0},{62878,11357,0},{62879,11358,0},{62888,11360,0},{62889,11362,0}, {62888,11363,0},{62878,11363,0},{62878,11365,0},{62873,11367,0},{62874,11370,0}, {62878,11372,0},{62876,11375,0},{62879,11377,0},{62881,11382,0},{62884,11380,0}, {62888,11385,0},{62896,11383,0},{62903,11385,0},{62908,11383,0},{62913,11378,0}, {62918,11367,0},{62931,11355,0},{62941,11355,0},{62946,11350,0},{62953,11350,0}, {62958,11347,0},{62961,11348,0},{62969,11347,0},{62971,11345,0},{62969,11343,0}, {62961,11343,0},{62964,11340,0},{62969,11340,0},{62978,11342,0},{62986,11348,0}, {62984,11350,0},{62976,11352,0},{62971,11358,0},{62964,11362,0},{62958,11372,0}, {62953,11372,0},{62948,11375,0},{62944,11372,0},{62939,11372,0},{62931,11368,0}, {62923,11370,0},{62919,11372,0},{62919,11378,0},{62929,11385,0},{62933,11387,0}, {62943,11385,0},{62941,11388,0},{62928,11390,0},{62924,11393,0},{62919,11392,0}, {62916,11395,0},{62904,11397,0},{62894,11405,0},{62893,11407,0},{62898,11413,0}, {62901,11418,0},{62906,11420,0},{62921,11417,0},{62923,11418,0},{62921,11423,0}, {62923,11423,0},{62928,11422,0},{62934,11422,0},{62939,11418,0},{62941,11420,0}, {62941,11422,0},{62949,11423,0},{62958,11413,0},{62964,11408,0},{62978,11397,0}, {62996,11392,0},{63013,11382,0},{63021,11380,0},{63033,11367,0},{63043,11365,0}, {63048,11367,0},{63056,11360,0},{63058,11363,0},{63063,11357,0},{63074,11348,0}, {63088,11337,0},{63101,11337,0},{63109,11335,0},{63119,11340,0},{63131,11338,0}, {63136,11343,0},{63148,11343,0},{63151,11348,0},{63158,11350,0},{63166,11357,0}, {63173,11358,0},{63183,11373,0},{63189,11377,0},{63196,11377,0},{63206,11377,0}, {63224,11375,0},{63231,11380,0},{63236,11382,0},{63259,11375,0},{63266,11368,0}, {63281,11365,0},{63284,11370,0},{63288,11370,0},{63291,11373,0},{63298,11375,0}, {63304,11380,0},{63309,11380,0},{63316,11383,0},{63338,11390,0},{63354,11403,0}, {63356,11407,0},{63358,11408,0},{63358,11413,0},{63359,11415,0},{63358,11417,0}, {63356,11418,0},{63351,11415,0},{63319,11408,0},{63313,11412,0},{63306,11413,0}, {63308,11417,0},{63308,11418,0},{63301,11418,0},{63298,11413,0},{63296,11413,0}, {63289,11413,0},{63288,11415,0},{63288,11418,0},{63293,11423,0},{63294,11428,0}, {63293,11432,0},{63289,11435,0},{63291,11438,0},{63306,11442,0},{63316,11443,0}, {63319,11448,0},{63323,11447,0},{63324,11450,0},{63326,11452,0},{63338,11448,0}, {63339,11450,0},{63338,11453,0},{63336,11455,0},{63338,11457,0},{63341,11458,0}, {63343,11462,0},{63353,11463,0},{63358,11468,0},{63359,11477,0},{63364,11480,0}, {63364,11483,0},{63368,11487,0},{63368,11490,0},{63371,11495,0},{63371,11502,0}, {63374,11508,0},{63374,11513,0},{63378,11517,0},{63379,11522,0},{63381,11522,0}, {63379,11527,0},{63381,11530,0},{63384,11537,0},{63389,11543,0},{63389,11548,0}, {63393,11548,0},{63399,11558,0},{63406,11562,0},{63408,11567,0},{63413,11573,0}, {63411,11577,0},{63414,11580,0},{63421,11582,0},{63431,11588,0},{63443,11615,0}, {63449,11617,0},{63451,11622,0},{63451,11628,0},{63456,11633,0},{63456,11643,0}, {63466,11653,0},{63466,11663,0},{63471,11665,0},{63474,11672,0},{63478,11673,0}, {63486,11682,0},{63486,11685,0},{63484,11687,0},{63473,11678,0},{63468,11682,0}, {63468,11685,0},{63468,11688,0},{63473,11695,0},{63474,11708,0},{63479,11712,0}, {63481,11715,0},{63479,11717,0},{63469,11718,0},{63469,11723,0},{63464,11732,0}, {63468,11742,0},{63469,11753,0},{63474,11758,0},{63473,11762,0},{63471,11760,0}, {63469,11762,0},{63471,11768,0},{63474,11778,0},{63483,11785,0},{63484,11793,0}, {63486,11793,0},{63489,11792,0},{63491,11793,0},{63504,11817,0},{63503,11822,0}, {63506,11830,0},{63506,11833,0},{63503,11837,0},{63506,11843,0},{63506,11847,0}, {63508,11850,0},{63508,11855,0},{63509,11860,0},{63508,11868,0},{63509,11875,0}, {63511,11878,0},{63511,11883,0},{63511,11885,0},{63516,11883,0},{63518,11887,0}, {63523,11890,0},{63524,11893,0},{63534,11897,0},{63538,11907,0},{63543,11913,0}, {63539,11918,0},{63544,11920,0},{63543,11927,0},{63538,11942,0},{63539,11947,0}, {63534,11952,0},{63531,11957,0},{63533,11962,0},{63539,11968,0},{63538,11973,0}, {63543,11977,0},{63543,11987,0},{63546,12002,0},{63549,12008,0},{63548,12015,0}, {63554,12040,0},{63568,12070,0},{63571,12082,0},{63583,12103,0},{63601,12127,0}, {63623,12143,0},{63629,12148,0},{63638,12150,0},{63643,12153,0},{63646,12155,0}, {63649,12157,0},{63654,12158,0},{63659,12162,0},{63663,12162,0},{63666,12160,0}, {63669,12158,0},{63669,12162,0},{63669,12163,0},{63668,12165,0},{63669,12168,0}, {63671,12170,0},{63669,12173,0},{63674,12177,0},{63679,12177,0},{63684,12173,0}, {63688,12177,0},{63686,12178,0},{63688,12180,0},{63693,12180,0},{63696,12180,0}, {63696,12183,0},{63694,12187,0},{63693,12188,0},{63696,12192,0},{63719,12222,0}, {63728,12237,0},{63733,12237,0},{63739,12237,0},{63744,12233,0},{63743,12225,0}, {63739,12220,0},{63741,12217,0},{63748,12220,0},{63759,12218,0},{63763,12220,0}, {63784,12212,0},{63814,12217,0},{63823,12223,0},{63826,12228,0},{63829,12225,0}, {63831,12225,0},{63838,12233,0},{63841,12235,0},{63844,12242,0},{63844,12243,0}, {63841,12243,0},{63843,12247,0},{63849,12248,0},{63848,12250,0},{63844,12250,0}, {63846,12257,0},{63854,12255,0},{63858,12255,0},{63858,12257,0},{63861,12257,0}, {63863,12258,0},{63863,12262,0},{63859,12263,0},{63864,12270,0},{63863,12272,0}, {63861,12273,0},{63863,12278,0},{63861,12283,0},{63864,12283,0},{63866,12280,0}, {63869,12278,0},{63871,12273,0},{63874,12277,0},{63881,12278,0},{63888,12290,0}, {63894,12290,0},{63899,12293,0},{63901,12303,0},{63899,12305,0},{63899,12303,0}, {63896,12303,0},{63896,12307,0},{63893,12303,0},{63893,12298,0},{63889,12300,0}, {63888,12297,0},{63884,12298,0},{63881,12295,0},{63879,12298,0},{63876,12298,0}, {63878,12303,0},{63878,12305,0},{63871,12305,0},{63868,12307,0},{63869,12308,0}, {63873,12310,0},{63868,12313,0},{63869,12318,0},{63866,12317,0},{63863,12313,0}, {63859,12313,0},{63861,12317,0},{63859,12320,0},{63856,12320,0},{63848,12317,0}, {63844,12325,0},{63839,12327,0},{63838,12330,0},{63834,12332,0},{63828,12330,0}, {63819,12340,0},{63809,12340,0},{63804,12347,0},{63801,12348,0},{63799,12352,0}, {63793,12353,0},{63789,12357,0},{63783,12358,0},{63768,12358,0},{63763,12360,0}, {63748,12377,0},{63756,12373,0},{63776,12360,0},{63786,12360,0},{63796,12358,0}, {63809,12360,0},{63819,12363,0},{63816,12367,0},{63818,12367,0},{63818,12370,0}, {63828,12360,0},{63838,12360,0},{63839,12363,0},{63839,12368,0},{63836,12368,0}, {63831,12368,0},{63828,12372,0},{63828,12373,0},{63834,12373,0},{63831,12378,0}, {63823,12382,0},{63826,12383,0},{63838,12382,0},{63839,12383,0},{63838,12388,0}, {63844,12385,0},{63856,12395,0},{63856,12390,0},{63849,12382,0},{63853,12378,0}, {63856,12377,0},{63864,12372,0},{63866,12367,0},{63874,12357,0},{63878,12357,0}, {63879,12360,0},{63883,12360,0},{63883,12365,0},{63886,12363,0},{63886,12360,0}, {63884,12358,0},{63881,12353,0},{63888,12345,0},{63889,12350,0},{63893,12348,0}, {63888,12360,0},{63891,12365,0},{63894,12362,0},{63896,12353,0},{63898,12353,0}, {63898,12355,0},{63899,12355,0},{63896,12365,0},{63898,12368,0},{63901,12365,0}, {63901,12372,0},{63908,12368,0},{63909,12365,0},{63909,12360,0},{63909,12358,0}, {63914,12362,0},{63919,12360,0},{63918,12365,0},{63923,12362,0},{63921,12367,0}, {63923,12368,0},{63923,12375,0},{63919,12380,0},{63913,12380,0},{63913,12377,0}, {63909,12382,0},{63906,12385,0},{63896,12387,0},{63896,12390,0},{63901,12392,0}, {63908,12392,0},{63899,12398,0},{63901,12400,0},{63903,12403,0},{63904,12402,0}, {63904,12398,0},{63906,12397,0},{63909,12397,0},{63911,12397,0},{63916,12397,0}, {63913,12400,0},{63911,12410,0},{63904,12417,0},{63901,12417,0},{63896,12420,0}, {63896,12428,0},{63893,12430,0},{63893,12435,0},{63884,12438,0},{63889,12442,0}, {63889,12445,0},{63893,12440,0},{63898,12438,0},{63899,12433,0},{63903,12437,0}, {63898,12442,0},{63898,12445,0},{63899,12472,0},{63899,12475,0},{63896,12478,0}, {63898,12485,0},{63899,12488,0},{63899,12482,0},{63903,12475,0},{63906,12458,0}, {63904,12447,0},{63904,12440,0},{63904,12438,0},{63908,12437,0},{63918,12437,0}, {63924,12440,0},{63931,12442,0},{63931,12445,0},{63918,12448,0},{63916,12452,0}, {63918,12453,0},{63923,12452,0},{63926,12457,0},{63928,12458,0},{63929,12453,0}, {63939,12455,0},{63941,12458,0},{63949,12458,0},{63951,12460,0},{63949,12463,0}, {63953,12465,0},{63954,12467,0},{63956,12467,0},{63956,12470,0},{63959,12472,0}, {63964,12472,0},{63969,12475,0},{63969,12470,0},{63959,12467,0},{63961,12465,0}, {63959,12462,0},{63953,12453,0},{63939,12447,0},{63951,12447,0},{63958,12443,0}, {63959,12442,0},{63958,12440,0},{63951,12438,0},{63954,12437,0},{63958,12437,0}, {63964,12435,0},{63968,12437,0},{63971,12435,0},{63973,12440,0},{63976,12440,0}, {63978,12442,0},{63981,12440,0},{63984,12440,0},{63986,12445,0},{63991,12448,0}, {63991,12452,0},{63988,12458,0},{63988,12460,0},{63991,12460,0},{63991,12467,0}, {63999,12467,0},{64003,12470,0},{64004,12465,0},{64011,12467,0},{64011,12470,0}, {64006,12473,0},{64008,12475,0},{64006,12482,0},{64003,12480,0},{64001,12487,0}, {63999,12490,0},{63994,12492,0},{63996,12495,0},{63991,12497,0},{63991,12507,0}, {63981,12517,0},{63978,12525,0},{63979,12525,0},{63984,12520,0},{63986,12520,0}, {63994,12505,0},{64003,12507,0},{64008,12507,0},{64008,12502,0},{64009,12500,0}, {64008,12497,0},{64004,12492,0},{64004,12488,0},{64011,12487,0},{64011,12488,0}, {64011,12490,0},{64016,12490,0},{64016,12497,0},{64018,12502,0},{64021,12503,0}, {64023,12502,0},{64023,12498,0},{64021,12497,0},{64023,12493,0},{64019,12490,0}, {64016,12485,0},{64021,12485,0},{64023,12482,0},{64028,12488,0},{64026,12493,0}, {64028,12498,0},{64031,12500,0},{64039,12500,0},{64039,12505,0},{64038,12507,0}, {64034,12505,0},{64033,12507,0},{64034,12510,0},{64033,12512,0},{64028,12510,0}, {64023,12513,0},{64026,12523,0},{64026,12525,0},{64021,12528,0},{64021,12535,0}, {64023,12537,0},{64024,12543,0},{64026,12542,0},{64028,12532,0},{64029,12532,0}, {64033,12535,0},{64034,12538,0},{64036,12535,0},{64038,12533,0},{64036,12527,0}, {64043,12522,0},{64043,12520,0},{64046,12522,0},{64044,12527,0},{64046,12528,0}, {64048,12530,0},{64051,12530,0},{64053,12528,0},{64053,12520,0},{64054,12517,0}, {64059,12517,0},{64063,12512,0},{64064,12518,0},{64071,12520,0},{64069,12523,0}, {64071,12525,0},{64073,12528,0},{64076,12523,0},{64079,12530,0},{64084,12532,0}, {64084,12533,0},{64079,12535,0},{64081,12537,0},{64081,12540,0},{64076,12538,0}, {64074,12540,0},{64083,12547,0},{64086,12547,0},{64086,12552,0},{64081,12552,0}, {64081,12557,0},{64084,12555,0},{64086,12558,0},{64096,12560,0},{64099,12557,0}, {64103,12558,0},{64106,12557,0},{64111,12558,0},{64113,12560,0},{64113,12563,0}, {64108,12567,0},{64108,12570,0},{64106,12572,0},{64103,12570,0},{64103,12565,0}, {64101,12565,0},{64093,12563,0},{64091,12565,0},{64084,12565,0},{64081,12563,0}, {64076,12563,0},{64078,12567,0},{64086,12570,0},{64093,12577,0},{64091,12580,0}, {64093,12582,0},{64091,12583,0},{64088,12582,0},{64083,12582,0},{64078,12580,0}, {64076,12583,0},{64076,12587,0},{64074,12588,0},{64074,12590,0},{64084,12590,0}, {64084,12592,0},{64083,12597,0},{64086,12597,0},{64088,12602,0},{64098,12598,0}, {64104,12605,0},{64113,12605,0},{64114,12612,0},{64123,12613,0},{64124,12612,0}, {64129,12607,0},{64129,12597,0},{64131,12595,0},{64134,12597,0},{64136,12600,0}, {64139,12602,0},{64138,12603,0},{64133,12605,0},{64133,12607,0},{64139,12607,0}, {64143,12602,0},{64146,12602,0},{64144,12613,0},{64138,12612,0},{64139,12617,0}, {64139,12620,0},{64136,12615,0},{64136,12618,0},{64134,12620,0},{64133,12620,0}, {64129,12617,0},{64126,12620,0},{64121,12618,0},{64118,12622,0},{64114,12620,0}, {64113,12620,0},{64116,12625,0},{64114,12627,0},{64118,12632,0},{64119,12632,0}, {64123,12628,0},{64128,12630,0},{64133,12632,0},{64133,12637,0},{64138,12640,0}, {64138,12645,0},{64143,12652,0},{64143,12653,0},{64143,12655,0},{64141,12655,0}, {64138,12648,0},{64129,12643,0},{64129,12645,0},{64131,12648,0},{64129,12650,0}, {64124,12647,0},{64121,12650,0},{64123,12655,0},{64114,12655,0},{64113,12657,0}, {64113,12658,0},{64118,12660,0},{64119,12663,0},{64129,12665,0},{64128,12667,0}, {64123,12668,0},{64124,12670,0},{64129,12672,0},{64133,12673,0},{64134,12673,0}, {64136,12670,0},{64138,12670,0},{64139,12677,0},{64138,12678,0},{64136,12680,0}, {64138,12682,0},{64138,12688,0},{64138,12692,0},{64139,12692,0},{64143,12688,0}, {64144,12680,0},{64151,12675,0},{64154,12675,0},{64156,12677,0},{64161,12685,0}, {64159,12690,0},{64163,12692,0},{64163,12695,0},{64159,12697,0},{64158,12700,0}, {64156,12700,0},{64154,12702,0},{64151,12703,0},{64151,12707,0},{64148,12707,0}, {64146,12710,0},{64141,12712,0},{64141,12713,0},{64144,12717,0},{64141,12720,0}, {64146,12725,0},{64143,12730,0},{64146,12732,0},{64141,12738,0},{64141,12742,0}, {64138,12745,0},{64131,12743,0},{64129,12752,0},{64119,12763,0},{64111,12767,0}, {64108,12775,0},{64101,12777,0},{64099,12778,0},{64098,12778,0},{64094,12782,0}, {64093,12782,0},{64091,12785,0},{64088,12785,0},{64084,12793,0},{64081,12792,0}, {64078,12793,0},{64079,12798,0},{64078,12803,0},{64073,12807,0},{64071,12810,0}, {64066,12815,0},{64066,12820,0},{64064,12820,0},{64063,12820,0},{64061,12817,0}, {64053,12815,0},{64053,12810,0},{64051,12808,0},{64046,12810,0},{64033,12808,0}, {64028,12807,0},{64009,12808,0},{64011,12797,0},{64018,12790,0},{64018,12788,0}, {64013,12792,0},{64006,12803,0},{63998,12805,0},{63994,12805,0},{63991,12802,0}, {63988,12795,0},{63979,12782,0},{63978,12782,0},{63976,12783,0},{63986,12803,0}, {63991,12807,0},{64003,12812,0},{64008,12812,0},{64014,12810,0},{64018,12812,0}, {64016,12815,0},{64008,12823,0},{64004,12827,0},{63991,12828,0},{63988,12830,0}, {63988,12833,0},{63989,12835,0},{63994,12830,0},{64003,12830,0},{64009,12827,0}, {64016,12827,0},{64024,12820,0},{64029,12818,0},{64034,12820,0},{64039,12825,0}, {64038,12827,0},{64033,12830,0},{64028,12835,0},{64029,12837,0},{64034,12835,0}, {64038,12835,0},{64033,12842,0},{64033,12843,0},{64034,12845,0},{64046,12840,0}, {64046,12843,0},{64041,12847,0},{64046,12847,0},{64054,12842,0},{64056,12837,0}, {64058,12838,0},{64059,12848,0},{64059,12855,0},{64058,12858,0},{64059,12862,0}, {64059,12867,0},{64058,12870,0},{64053,12873,0},{64053,12885,0},{64049,12898,0}, {64046,12903,0},{64048,12907,0},{64041,12908,0},{64041,12912,0},{64041,12913,0}, {64036,12917,0},{64029,12915,0},{64024,12917,0},{64016,12913,0},{64016,12915,0}, {64018,12917,0},{64016,12918,0},{64014,12920,0},{64023,12922,0},{64028,12923,0}, {64044,12922,0},{64046,12925,0},{64051,12927,0},{64051,12930,0},{64048,12935,0}, {64041,12937,0},{64039,12942,0},{64039,12943,0},{64044,12938,0},{64046,12940,0}, {64041,12948,0},{64033,12950,0},{64033,12952,0},{64033,12953,0},{64028,12958,0}, {64018,12957,0},{64018,12958,0},{64021,12962,0},{64023,12965,0},{64018,12965,0}, {64016,12967,0},{64018,12975,0},{64018,12977,0},{64004,12983,0},{63994,12982,0}, {63994,12988,0},{63991,12993,0},{63996,13002,0},{63993,13010,0},{63994,13015,0}, {63998,13020,0},{63998,13012,0},{63998,13008,0},{63999,13002,0},{63996,12995,0}, {63999,12988,0},{63999,12987,0},{64009,12985,0},{64013,12982,0},{64019,12980,0}, {64026,12967,0},{64029,12963,0},{64034,12963,0},{64038,12962,0},{64044,12963,0}, {64046,12965,0},{64046,12967,0},{64049,12963,0},{64053,12965,0},{64053,12980,0}, {64051,12982,0},{64044,12983,0},{64049,12987,0},{64054,12985,0},{64054,12988,0}, {64056,12987,0},{64058,12993,0},{64059,12997,0},{64064,12998,0},{64064,12997,0}, {64059,12992,0},{64059,12985,0},{64054,12977,0},{64056,12975,0},{64061,12978,0}, {64061,12968,0},{64061,12967,0},{64064,12968,0},{64066,12967,0},{64068,12963,0}, {64069,12963,0},{64076,12975,0},{64079,12973,0},{64083,12975,0},{64079,12965,0}, {64083,12957,0},{64081,12952,0},{64083,12950,0},{64088,12948,0},{64086,12943,0}, {64089,12943,0},{64094,12938,0},{64096,12935,0},{64101,12933,0},{64106,12938,0}, {64113,12940,0},{64116,12945,0},{64121,12950,0},{64121,12955,0},{64126,12955,0}, {64126,12958,0},{64133,12958,0},{64133,12965,0},{64133,12970,0},{64136,12972,0}, {64141,12973,0},{64148,12970,0},{64151,12972,0},{64158,12980,0},{64159,12980,0}, {64163,12977,0},{64169,12978,0},{64179,12982,0},{64186,12982,0},{64186,12985,0}, {64189,12988,0},{64186,12990,0},{64183,12992,0},{64183,12995,0},{64186,13005,0}, {64189,13008,0},{64193,13013,0},{64199,13018,0},{64203,13023,0},{64201,13027,0}, {64198,13030,0},{64198,13032,0},{64201,13032,0},{64204,13030,0},{64208,13023,0}, {64214,13018,0},{64221,13012,0},{64233,13012,0},{64241,13015,0},{64243,13017,0}, {64241,13020,0},{64241,13025,0},{64246,13032,0},{64253,13035,0},{64266,13033,0}, {64266,13035,0},{64266,13037,0},{64263,13040,0},{64266,13040,0},{64268,13040,0}, {64271,13043,0},{64268,13048,0},{64263,13050,0},{64263,13058,0},{64261,13063,0}, {64264,13065,0},{64266,13063,0},{64266,13060,0},{64271,13055,0},{64273,13057,0}, {64274,13060,0},{64276,13057,0},{64289,13058,0},{64291,13062,0},{64294,13060,0}, {64294,13063,0},{64289,13077,0},{64276,13078,0},{64276,13080,0},{64279,13082,0}, {64276,13085,0},{64271,13087,0},{64273,13090,0},{64274,13093,0},{64281,13087,0}, {64283,13092,0},{64288,13083,0},{64293,13083,0},{64298,13085,0},{64299,13088,0}, {64299,13098,0},{64298,13100,0},{64298,13103,0},{64304,13102,0},{64311,13102,0}, {64318,13098,0},{64319,13100,0},{64318,13110,0},{64314,13112,0},{64316,13117,0}, {64308,13125,0},{64314,13125,0},{64326,13132,0},{64321,13133,0},{64313,13133,0}, {64306,13140,0},{64304,13165,0},{64308,13180,0},{64311,13187,0},{64306,13192,0}, {64304,13200,0},{64306,13205,0},{64311,13215,0},{64314,13222,0},{64309,13225,0}, {64311,13232,0},{64309,13235,0},{64301,13237,0},{64296,13233,0},{64296,13235,0}, {64298,13238,0},{64301,13240,0},{64311,13238,0},{64318,13242,0},{64319,13248,0}, {64323,13252,0},{64319,13257,0},{64319,13262,0},{64318,13267,0},{64318,13268,0}, {64319,13268,0},{64323,13262,0},{64329,13260,0},{64334,13260,0},{64341,13263,0}, {64343,13268,0},{64346,13270,0},{64346,13263,0},{64349,13262,0},{64353,13257,0}, {64363,13265,0},{64363,13272,0},{64366,13270,0},{64366,13265,0},{64373,13268,0}, {64373,13267,0},{64369,13263,0},{64368,13260,0},{64373,13253,0},{64374,13255,0}, {64376,13255,0},{64376,13257,0},{64378,13252,0},{64379,13253,0},{64381,13250,0}, {64384,13252,0},{64386,13252,0},{64384,13247,0},{64386,13240,0},{64384,13238,0}, {64384,13222,0},{64381,13215,0},{64378,13212,0},{64378,13203,0},{64383,13202,0}, {64388,13203,0},{64388,13198,0},{64393,13192,0},{64396,13195,0},{64396,13190,0}, {64399,13190,0},{64399,13188,0},{64403,13185,0},{64399,13180,0},{64399,13175,0}, {64404,13178,0},{64404,13183,0},{64409,13182,0},{64411,13188,0},{64409,13190,0}, {64408,13193,0},{64409,13197,0},{64413,13195,0},{64416,13198,0},{64413,13203,0}, {64411,13207,0},{64408,13208,0},{64408,13210,0},{64396,13208,0},{64399,13212,0}, {64396,13213,0},{64391,13213,0},{64389,13215,0},{64391,13218,0},{64394,13218,0}, {64394,13222,0},{64398,13223,0},{64399,13217,0},{64409,13218,0},{64413,13215,0}, {64418,13215,0},{64409,13223,0},{64403,13227,0},{64403,13228,0},{64411,13227,0}, {64414,13233,0},{64413,13235,0},{64406,13237,0},{64401,13235,0},{64403,13238,0}, {64408,13242,0},{64408,13243,0},{64403,13250,0},{64399,13248,0},{64394,13248,0}, {64394,13253,0},{64388,13262,0},{64383,13263,0},{64381,13265,0},{64381,13272,0}, {64386,13275,0},{64389,13282,0},{64388,13288,0},{64391,13288,0},{64396,13287,0}, {64396,13290,0},{64393,13293,0},{64389,13293,0},{64388,13300,0},{64381,13302,0}, {64379,13305,0},{64376,13307,0},{64368,13310,0},{64361,13315,0},{64358,13322,0}, {64361,13332,0},{64359,13332,0},{64358,13328,0},{64356,13328,0},{64354,13332,0}, {64356,13335,0},{64358,13337,0},{64356,13338,0},{64353,13338,0},{64353,13352,0}, {64344,13350,0},{64346,13353,0},{64351,13357,0},{64348,13360,0},{64348,13362,0}, {64351,13367,0},{64353,13367,0},{64354,13375,0},{64358,13377,0},{64358,13382,0}, {64356,13385,0},{64358,13390,0},{64354,13392,0},{64353,13390,0},{64351,13388,0}, {64349,13383,0},{64348,13382,0},{64344,13383,0},{64339,13390,0},{64339,13395,0}, {64344,13400,0},{64344,13403,0},{64339,13407,0},{64341,13410,0},{64334,13415,0}, {64333,13413,0},{64331,13417,0},{64326,13417,0},{64321,13413,0},{64318,13417,0}, {64319,13418,0},{64326,13420,0},{64331,13422,0},{64333,13425,0},{64331,13430,0}, {64326,13433,0},{64324,13455,0},{64321,13458,0},{64328,13460,0},{64334,13467,0}, {64336,13470,0},{64334,13475,0},{64333,13475,0},{64328,13477,0},{64324,13482,0}, {64321,13482,0},{64319,13483,0},{64316,13488,0},{64316,13495,0},{64311,13500,0}, {64306,13505,0},{64306,13517,0},{64308,13517,0},{64309,13517,0},{64306,13532,0}, {64313,13538,0},{64318,13555,0},{64326,13562,0},{64331,13575,0},{64334,13587,0}, {64333,13588,0},{64333,13583,0},{64329,13578,0},{64323,13573,0},{64316,13565,0}, {64313,13563,0},{64309,13565,0},{64303,13570,0},{64306,13572,0},{64308,13575,0}, {64309,13577,0},{64311,13580,0},{64313,13582,0},{64313,13583,0},{64316,13585,0}, {64314,13587,0},{64316,13592,0},{64324,13602,0},{64323,13602,0},{64318,13598,0}, {64313,13597,0},{64311,13593,0},{64309,13592,0},{64306,13597,0},{64308,13605,0}, {64306,13605,0},{64303,13600,0},{64291,13597,0},{64291,13600,0},{64288,13600,0}, {64286,13602,0},{64289,13607,0},{64286,13622,0},{64289,13628,0},{64293,13628,0}, {64298,13632,0},{64304,13633,0},{64309,13632,0},{64309,13622,0},{64313,13618,0}, {64314,13618,0},{64324,13627,0},{64326,13633,0},{64334,13640,0},{64339,13655,0}, {64339,13657,0},{64338,13657,0},{64334,13647,0},{64331,13645,0},{64329,13647,0}, {64331,13652,0},{64326,13653,0},{64321,13657,0},{64314,13657,0},{64304,13665,0}, {64304,13673,0},{64306,13673,0},{64311,13668,0},{64314,13675,0},{64314,13678,0}, {64311,13682,0},{64309,13685,0},{64301,13692,0},{64296,13690,0},{64296,13698,0}, {64293,13695,0},{64291,13688,0},{64283,13682,0},{64278,13677,0},{64278,13675,0}, {64283,13677,0},{64283,13673,0},{64276,13673,0},{64273,13675,0},{64273,13672,0}, {64266,13668,0},{64261,13667,0},{64258,13658,0},{64254,13660,0},{64251,13660,0}, {64253,13657,0},{64256,13653,0},{64256,13652,0},{64253,13652,0},{64253,13647,0}, {64248,13647,0},{64246,13648,0},{64244,13650,0},{64243,13653,0},{64241,13653,0}, {64239,13660,0},{64233,13665,0},{64231,13662,0},{64234,13660,0},{64233,13657,0}, {64231,13655,0},{64231,13653,0},{64233,13653,0},{64234,13652,0},{64233,13645,0}, {64231,13647,0},{64229,13650,0},{64228,13652,0},{64226,13655,0},{64218,13653,0}, {64218,13647,0},{64216,13647,0},{64209,13645,0},{64211,13642,0},{64208,13638,0}, {64206,13638,0},{64201,13632,0},{64208,13633,0},{64209,13635,0},{64223,13637,0}, {64226,13635,0},{64228,13632,0},{64224,13630,0},{64221,13630,0},{64218,13630,0}, {64219,13622,0},{64218,13622,0},{64213,13625,0},{64209,13618,0},{64206,13617,0}, {64206,13615,0},{64209,13613,0},{64218,13613,0},{64219,13612,0},{64216,13610,0}, {64209,13607,0},{64209,13603,0},{64206,13603,0},{64203,13602,0},{64209,13600,0}, {64211,13598,0},{64209,13597,0},{64204,13593,0},{64208,13593,0},{64208,13592,0}, {64196,13588,0},{64191,13592,0},{64189,13595,0},{64186,13590,0},{64189,13588,0}, {64189,13585,0},{64176,13585,0},{64176,13583,0},{64173,13585,0},{64169,13587,0}, {64166,13590,0},{64163,13588,0},{64159,13592,0},{64161,13597,0},{64168,13603,0}, {64168,13605,0},{64166,13605,0},{64159,13602,0},{64154,13598,0},{64151,13600,0}, {64149,13597,0},{64146,13598,0},{64143,13597,0},{64136,13592,0},{64119,13587,0}, {64116,13588,0},{64104,13572,0},{64093,13567,0},{64093,13563,0},{64089,13560,0}, {64083,13555,0},{64074,13552,0},{64069,13552,0},{64068,13545,0},{64063,13540,0}, {64061,13537,0},{64054,13538,0},{64038,13545,0},{64031,13557,0},{64029,13563,0}, {64024,13565,0},{64023,13577,0},{64019,13580,0},{64016,13587,0},{64008,13595,0}, {63999,13607,0},{63994,13620,0},{63993,13622,0},{63978,13627,0},{63976,13630,0}, {63971,13642,0},{63963,13652,0},{63963,13658,0},{63958,13662,0},{63951,13670,0}, {63944,13668,0},{63943,13670,0},{63946,13678,0},{63944,13690,0},{63948,13692,0}, {63949,13697,0},{63943,13707,0},{63938,13717,0},{63921,13738,0},{63919,13742,0}, {63918,13745,0},{63918,13752,0},{63914,13755,0},{63916,13757,0},{63914,13760,0}, {63909,13770,0},{63908,13772,0},{63901,13770,0},{63904,13777,0},{63901,13778,0}, {63889,13787,0},{63878,13798,0},{63876,13805,0},{63868,13812,0},{63863,13830,0}, {63863,13837,0},{63859,13840,0},{63859,13858,0},{63859,13865,0},{63854,13872,0}, {63853,13880,0},{63849,13883,0},{63848,13888,0},{63849,13893,0},{63848,13897,0}, {63846,13903,0},{63839,13905,0},{63836,13910,0},{63833,13917,0},{63823,13915,0}, {63809,13920,0},{63798,13930,0},{63796,13937,0},{63798,13945,0},{63781,13970,0}, {63781,13975,0},{63774,13993,0},{63768,13998,0},{63764,14010,0},{63768,14023,0}, {63769,14037,0},{63774,14045,0},{63778,14060,0},{63779,14063,0},{63786,14068,0}, {63786,14073,0},{63791,14078,0},{63791,14080,0},{63798,14085,0},{63818,14092,0}, {63839,14095,0},{63848,14103,0},{63858,14107,0},{63859,14112,0},{63868,14118,0}, {63879,14122,0},{63883,14125,0},{63888,14127,0},{63901,14128,0},{63913,14132,0}, {63926,14140,0},{63948,14138,0},{63964,14140,0},{63983,14143,0},{63986,14148,0}, {63991,14145,0},{63996,14152,0},{64014,14157,0},{64014,14160,0},{64009,14168,0}, {64013,14172,0},{64014,14167,0},{64018,14167,0},{64021,14165,0},{64026,14167,0}, {64029,14165,0},{64034,14165,0},{64063,14153,0},{64078,14153,0},{64089,14152,0}, {64103,14155,0},{64119,14158,0},{64126,14157,0},{64133,14153,0},{64143,14147,0}, {64151,14145,0},{64178,14152,0},{64181,14153,0},{64178,14153,0},{64179,14155,0}, {64186,14155,0},{64189,14158,0},{64196,14162,0},{64196,14167,0},{64179,14167,0}, {64174,14167,0},{64173,14170,0},{64181,14168,0},{64196,14173,0},{64201,14170,0}, {64204,14173,0},{64201,14167,0},{64204,14167,0},{64211,14168,0},{64219,14162,0}, {64226,14160,0},{64231,14162,0},{64236,14158,0},{64253,14177,0},{64264,14180,0}, {64264,14183,0},{64259,14187,0},{64249,14188,0},{64246,14192,0},{64246,14193,0}, {64258,14192,0},{64261,14198,0},{64261,14195,0},{64261,14192,0},{64264,14185,0}, {64268,14183,0},{64271,14188,0},{64273,14200,0},{64278,14203,0},{64276,14197,0}, {64274,14180,0},{64278,14172,0},{64281,14168,0},{64286,14172,0},{64286,14170,0}, {64284,14168,0},{64286,14167,0},{64284,14165,0},{64281,14165,0},{64278,14167,0}, {64274,14162,0},{64274,14160,0},{64278,14160,0},{64291,14165,0},{64308,14170,0}, {64309,14178,0},{64313,14172,0},{64328,14178,0},{64334,14187,0},{64334,14188,0}, {64328,14190,0},{64321,14190,0},{64318,14192,0},{64321,14193,0},{64326,14193,0}, {64323,14200,0},{64326,14203,0},{64329,14205,0},{64331,14205,0},{64331,14200,0}, {64336,14195,0},{64339,14195,0},{64351,14197,0},{64356,14200,0},{64359,14200,0}, {64364,14203,0},{64374,14203,0},{64383,14207,0},{64386,14212,0},{64388,14212,0}, {64388,14208,0},{64411,14212,0},{64411,14215,0},{64419,14215,0},{64426,14213,0}, {64433,14213,0},{64436,14217,0},{64439,14232,0},{64444,14238,0},{64458,14243,0}, {64459,14253,0},{64451,14260,0},{64433,14250,0},{64434,14257,0},{64439,14258,0}, {64439,14262,0},{64436,14262,0},{64433,14267,0},{64428,14267,0},{64431,14270,0}, {64431,14273,0},{64414,14280,0},{64404,14280,0},{64401,14282,0},{64401,14283,0}, {64393,14287,0},{64384,14283,0},{64379,14285,0},{64373,14283,0},{64366,14287,0}, {64349,14285,0},{64344,14288,0},{64338,14300,0},{64338,14303,0},{64339,14307,0}, {64339,14313,0},{64333,14317,0},{64336,14322,0},{64334,14325,0},{64328,14317,0}, {64316,14310,0},{64316,14307,0},{64314,14307,0},{64309,14308,0},{64298,14310,0}, {64298,14317,0},{64296,14320,0},{64294,14323,0},{64294,14325,0},{64289,14327,0}, {64281,14327,0},{64278,14330,0},{64276,14337,0},{64271,14342,0},{64264,14342,0}, {64258,14337,0},{64246,14335,0},{64243,14337,0},{64239,14340,0},{64241,14343,0}, {64244,14342,0},{64246,14343,0},{64246,14350,0},{64249,14353,0},{64248,14355,0}, {64239,14352,0},{64203,14353,0},{64196,14360,0},{64188,14360,0},{64181,14360,0}, {64171,14357,0},{64163,14355,0},{64156,14355,0},{64133,14368,0},{64129,14368,0}, {64126,14367,0},{64124,14370,0},{64114,14370,0},{64098,14378,0},{64088,14387,0}, {64086,14390,0},{64088,14392,0},{64086,14393,0},{64088,14395,0},{64089,14405,0}, {64093,14408,0},{64094,14410,0},{64096,14413,0},{64098,14415,0},{64103,14418,0}, {64109,14420,0},{64109,14423,0},{64106,14427,0},{64106,14430,0},{64106,14437,0}, {64109,14442,0},{64113,14445,0},{64119,14448,0},{64119,14452,0},{64118,14453,0}, {64114,14455,0},{64109,14458,0},{64099,14460,0},{64099,14465,0},{64098,14465,0}, {64091,14462,0},{64086,14463,0},{64083,14467,0},{64079,14470,0},{64081,14477,0}, {64076,14480,0},{64074,14490,0},{64059,14497,0},{64054,14507,0},{64054,14512,0}, {64051,14517,0},{64051,14522,0},{64048,14522,0},{64039,14528,0},{64039,14532,0}, {64041,14533,0},{64039,14537,0},{64036,14535,0},{64026,14527,0},{64018,14525,0}, {64011,14525,0},{64009,14530,0},{64011,14535,0},{64008,14535,0},{64004,14528,0}, {63998,14528,0},{63994,14525,0},{63989,14523,0},{63984,14528,0},{63981,14528,0}, {63979,14532,0},{63974,14533,0},{63971,14532,0},{63961,14537,0},{63944,14537,0}, {63939,14542,0},{63928,14547,0},{63918,14545,0},{63908,14548,0},{63908,14543,0}, {63891,14540,0},{63886,14547,0},{63881,14550,0},{63876,14555,0},{63869,14557,0}, {63859,14570,0},{63846,14578,0},{63846,14582,0},{63849,14583,0},{63846,14587,0}, {63846,14590,0},{63849,14592,0},{63848,14593,0},{63841,14593,0},{63836,14590,0}, {63829,14588,0},{63818,14595,0},{63804,14600,0},{63799,14602,0},{63796,14605,0}, {63783,14607,0},{63769,14613,0},{63761,14610,0},{63758,14610,0},{63754,14608,0}, {63751,14610,0},{63739,14610,0},{63728,14602,0},{63716,14603,0},{63713,14607,0}, {63714,14605,0},{63713,14603,0},{63696,14613,0},{63686,14620,0},{63684,14627,0}, {63683,14628,0},{63684,14632,0},{63683,14633,0},{63674,14633,0},{63666,14630,0}, {63658,14628,0},{63649,14627,0},{63648,14628,0},{63633,14642,0},{63624,14653,0}, {63619,14667,0},{63619,14677,0},{63611,14683,0},{63608,14688,0},{63606,14693,0}, {63608,14698,0},{63616,14705,0},{63613,14707,0},{63604,14707,0},{63599,14712,0}, {63594,14713,0},{63596,14717,0},{63594,14722,0},{63593,14725,0},{63596,14732,0}, {63594,14743,0},{63603,14743,0},{63604,14745,0},{63599,14748,0},{63591,14750,0}, {63584,14755,0},{63583,14755,0},{63581,14757,0},{63576,14745,0},{63574,14743,0}, {63573,14748,0},{63571,14752,0},{63561,14760,0},{63554,14773,0},{63558,14775,0}, {63561,14773,0},{63566,14778,0},{63564,14782,0},{63561,14787,0},{63551,14787,0}, {63548,14790,0},{63546,14797,0},{63546,14800,0},{63548,14802,0},{63551,14802,0}, {63551,14803,0},{63551,14807,0},{63548,14808,0},{63546,14810,0},{63543,14823,0}, {63539,14827,0},{63534,14823,0},{63529,14827,0},{63528,14830,0},{63526,14832,0}, {63521,14842,0},{63521,14847,0},{63523,14843,0},{63526,14845,0},{63528,14842,0}, {63531,14843,0},{63533,14853,0},{63529,14857,0},{63524,14855,0},{63519,14858,0}, {63519,14860,0},{63516,14862,0},{63519,14862,0},{63519,14867,0},{63518,14868,0}, {63514,14867,0},{63511,14868,0},{63511,14878,0},{63509,14878,0},{63506,14877,0}, {63504,14880,0},{63493,14885,0},{63491,14888,0},{63484,14890,0},{63483,14887,0}, {63484,14883,0},{63493,14877,0},{63489,14873,0},{63489,14868,0},{63496,14863,0}, {63493,14862,0},{63484,14867,0},{63481,14865,0},{63473,14870,0},{63469,14868,0}, {63468,14872,0},{63464,14870,0},{63464,14873,0},{63458,14880,0},{63449,14883,0}, {63449,14888,0},{63446,14898,0},{63448,14902,0},{63446,14903,0},{63444,14903,0}, {63441,14900,0},{63438,14902,0},{63439,14907,0},{63438,14913,0},{63431,14920,0}, {63426,14922,0},{63418,14918,0},{63413,14920,0},{63409,14917,0},{63411,14923,0}, {63409,14927,0},{63408,14928,0},{63401,14928,0},{63398,14932,0},{63394,14928,0}, {63393,14932,0},{63389,14928,0},{63386,14928,0},{63386,14932,0},{63384,14937,0}, {63379,14942,0},{63383,14947,0},{63383,14950,0},{63378,14948,0},{63373,14945,0}, {63364,14945,0},{63364,14947,0},{63361,14943,0},{63353,14943,0},{63349,14947,0}, {63344,14947,0},{63319,14957,0},{63316,14953,0},{63308,14958,0},{63304,14957,0}, {63303,14962,0},{63301,14963,0},{63298,14958,0},{63296,14957,0},{63298,14968,0}, {63288,14968,0},{63281,14963,0},{63291,14977,0},{63296,14980,0},{63289,14988,0}, {63278,14997,0},{63271,15002,0},{63273,15003,0},{63281,15002,0},{63299,14990,0}, {63303,14993,0},{63306,14990,0},{63318,14997,0},{63321,15003,0},{63321,15008,0}, {63313,15010,0},{63309,15015,0},{63299,15020,0},{63294,15030,0},{63283,15045,0}, {63281,15053,0},{63276,15055,0},{63276,15058,0},{63269,15063,0},{63269,15065,0}, {63281,15058,0},{63283,15062,0},{63284,15062,0},{63288,15055,0},{63294,15055,0}, {63301,15055,0},{63304,15057,0},{63303,15063,0},{63298,15062,0},{63293,15065,0}, {63294,15067,0},{63298,15067,0},{63299,15067,0},{63293,15070,0},{63289,15073,0}, {63284,15073,0},{63289,15067,0},{63288,15065,0},{63283,15068,0},{63276,15067,0}, {63273,15070,0},{63273,15073,0},{63281,15077,0},{63283,15080,0},{63279,15080,0}, {63274,15078,0},{63266,15083,0},{63264,15083,0},{63244,15078,0},{63243,15075,0}, {63241,15075,0},{63238,15077,0},{63236,15078,0},{63223,15078,0},{63214,15083,0}, {63206,15083,0},{63204,15080,0},{63203,15080,0},{63186,15087,0},{63184,15085,0}, {63186,15073,0},{63186,15070,0},{63186,15065,0},{63184,15065,0},{63181,15070,0}, {63183,15077,0},{63181,15085,0},{63178,15088,0},{63169,15092,0},{63168,15093,0}, {63176,15100,0},{63163,15112,0},{63153,15118,0},{63149,15130,0},{63148,15132,0}, {63138,15133,0},{63136,15140,0},{63129,15145,0},{63126,15155,0},{63129,15158,0}, {63129,15162,0},{63124,15167,0},{63123,15172,0},{63119,15175,0},{63119,15180,0}, {63118,15180,0},{63116,15183,0},{63116,15188,0},{63093,15200,0},{63086,15207,0}, {63071,15217,0},{63069,15223,0},{63066,15227,0},{63063,15235,0},{63059,15237,0}, {63059,15242,0},{63056,15245,0},{63049,15248,0},{63041,15248,0},{63036,15253,0}, {63029,15255,0},{63023,15262,0},{63019,15255,0},{63016,15265,0},{63013,15270,0}, {63011,15283,0},{63006,15292,0},{62993,15292,0},{62991,15293,0},{62988,15288,0}, {62983,15290,0},{62966,15290,0},{62959,15297,0},{62956,15293,0},{62954,15300,0}, {62951,15302,0},{62948,15303,0},{62939,15302,0},{62941,15305,0},{62948,15308,0}, {62941,15312,0},{62941,15317,0},{62939,15318,0},{62924,15310,0},{62903,15305,0}, {62898,15305,0},{62893,15310,0},{62871,15310,0},{62861,15313,0},{62848,15308,0}, {62839,15305,0},{62824,15310,0},{62819,15305,0},{62814,15303,0},{62813,15305,0}, {62813,15312,0},{62811,15312,0},{62808,15308,0},{62808,15305,0},{62804,15302,0}, {62796,15313,0},{62791,15318,0},{62781,15320,0},{62783,15323,0},{62784,15325,0}, {62781,15328,0},{62768,15333,0},{62763,15330,0},{62754,15337,0},{62748,15337,0}, {62749,15340,0},{62756,15343,0},{62741,15343,0},{62736,15343,0},{62728,15348,0}, {62719,15357,0},{62711,15360,0},{62689,15357,0},{62681,15358,0},{62673,15362,0}, {62658,15362,0},{62653,15358,0},{62644,15355,0},{62638,15348,0},{62633,15345,0}, {62623,15345,0},{62609,15335,0},{62594,15337,0},{62574,15333,0},{62564,15330,0}, {62559,15330,0},{62533,15322,0},{62521,15322,0},{62511,15315,0},{62493,15310,0}, {62486,15305,0},{62466,15302,0},{62456,15302,0},{62444,15300,0},{62448,15305,0}, {62444,15308,0},{62436,15305,0},{62429,15307,0},{62419,15300,0},{62403,15297,0}, {62396,15295,0},{62394,15290,0},{62384,15293,0},{62381,15290,0},{62386,15287,0}, {62384,15285,0},{62371,15285,0},{62366,15282,0},{62361,15280,0},{62356,15278,0}, {62349,15273,0},{62344,15267,0},{62339,15260,0},{62336,15260,0},{62331,15255,0}, {62328,15255,0},{62319,15252,0},{62309,15255,0},{62306,15253,0},{62299,15255,0}, {62293,15253,0},{62289,15253,0},{62288,15252,0},{62286,15243,0},{62279,15233,0}, {62274,15230,0},{62269,15220,0},{62264,15218,0},{62268,15215,0},{62266,15208,0}, {62268,15203,0},{62266,15200,0},{62269,15198,0},{62268,15195,0},{62263,15195,0}, {62261,15192,0},{62259,15192,0},{62261,15198,0},{62259,15203,0},{62261,15207,0}, {62261,15210,0},{62261,15215,0},{62259,15217,0},{62256,15210,0},{62253,15208,0}, {62251,15192,0},{62243,15175,0},{62236,15175,0},{62231,15168,0},{62219,15165,0}, {62214,15160,0},{62209,15158,0},{62206,15153,0},{62193,15145,0},{62188,15145,0}, {62186,15138,0},{62183,15137,0},{62184,15133,0},{62183,15128,0},{62184,15125,0}, {62181,15123,0},{62176,15120,0},{62174,15118,0},{62174,15122,0},{62179,15128,0}, {62174,15130,0},{62179,15133,0},{62179,15137,0},{62156,15130,0},{62158,15123,0}, {62153,15123,0},{62153,15118,0},{62156,15115,0},{62154,15113,0},{62154,15107,0}, {62154,15105,0},{62153,15108,0},{62151,15112,0},{62149,15125,0},{62148,15128,0}, {62143,15128,0},{62139,15125,0},{62143,15118,0},{62138,15117,0},{62138,15112,0}, {62136,15113,0},{62136,15123,0},{62134,15123,0},{62133,15118,0},{62124,15115,0}, {62114,15102,0},{62108,15097,0},{62098,15092,0},{62088,15093,0},{62084,15088,0}, {62088,15085,0},{62084,15082,0},{62083,15082,0},{62083,15085,0},{62078,15088,0}, {62061,15085,0},{62058,15080,0},{62051,15077,0},{62049,15065,0},{62048,15072,0}, {62044,15073,0},{62044,15077,0},{62044,15078,0},{62041,15077,0},{62034,15085,0}, {62031,15083,0},{62028,15078,0},{62028,15077,0},{62031,15077,0},{62034,15078,0}, {62036,15075,0},{62034,15070,0},{62031,15068,0},{62023,15070,0},{62021,15075,0}, {62019,15073,0},{62018,15070,0},{62021,15063,0},{62026,15065,0},{62026,15057,0}, {62023,15060,0},{62018,15060,0},{62006,15048,0},{61999,15050,0},{61989,15042,0}, {61983,15040,0},{61973,15032,0},{61966,15030,0},{61963,15022,0},{61958,15023,0}, {61953,15022,0},{61949,15018,0},{61946,15015,0},{61934,15013,0},{61929,15008,0}, {61926,15012,0},{61904,15013,0},{61899,15005,0},{61893,15007,0},{61888,15003,0}, {61879,15003,0},{61868,14998,0},{61859,14997,0},{61856,14993,0},{61848,14993,0}, {61843,14990,0},{61841,14990,0},{61839,14992,0},{61831,14993,0},{61826,14988,0}, {61821,15000,0},{61811,15003,0},{61809,15002,0},{61809,14997,0},{61806,14995,0}, {61803,14997,0},{61796,14993,0},{61788,14997,0},{61786,14995,0},{61783,14992,0}, {61781,14980,0},{61783,14978,0},{61786,14978,0},{61786,14970,0},{61779,14975,0}, {61769,14967,0},{61764,14962,0},{61761,14952,0},{61759,14948,0},{61758,14928,0}, {61754,14925,0},{61758,14912,0},{61756,14902,0},{61759,14895,0},{61756,14888,0}, {61758,14880,0},{61756,14873,0},{61754,14872,0},{61756,14852,0},{61754,14830,0}, {61753,14818,0},{61746,14798,0},{61748,14790,0},{61748,14780,0},{61751,14773,0}, {61751,14770,0},{61746,14770,0},{61744,14773,0},{61741,14768,0},{61739,14773,0}, {61741,14775,0},{61744,14782,0},{61746,14790,0},{61744,14792,0},{61739,14775,0}, {61728,14758,0},{61686,14705,0},{61681,14695,0},{61671,14687,0},{61669,14683,0}, {61671,14683,0},{61674,14685,0},{61674,14678,0},{61669,14677,0},{61669,14668,0}, {61668,14667,0},{61671,14663,0},{61669,14662,0},{61666,14652,0},{61668,14648,0}, {61666,14642,0},{61664,14638,0},{61666,14633,0},{61666,14622,0},{61661,14618,0}, {61656,14622,0},{61653,14625,0},{61646,14630,0},{61651,14638,0},{61656,14642,0}, {61654,14645,0},{61644,14647,0},{61636,14642,0},{61634,14643,0},{61633,14647,0}, {61631,14647,0},{61628,14642,0},{61624,14642,0},{61621,14637,0},{61623,14633,0}, {61624,14630,0},{61631,14630,0},{61638,14622,0},{61641,14623,0},{61648,14615,0}, {61656,14613,0},{61656,14608,0},{61653,14612,0},{61653,14603,0},{61653,14600,0}, {61648,14597,0},{61644,14590,0},{61656,14583,0},{61668,14573,0},{61666,14580,0}, {61668,14582,0},{61671,14580,0},{61671,14573,0},{61669,14567,0},{61668,14557,0}, {61671,14552,0},{61679,14545,0},{61679,14538,0},{61683,14533,0},{61684,14533,0}, {61686,14538,0},{61694,14540,0},{61696,14547,0},{61701,14550,0},{61711,14543,0}, {61713,14522,0},{61711,14520,0},{61706,14517,0},{61698,14518,0},{61696,14517,0}, {61696,14508,0},{61696,14505,0},{61686,14498,0},{61684,14490,0},{61686,14485,0}, {61696,14477,0},{61703,14463,0},{172,49818,128},{170,49813,0},{172,49811,0}, {175,49806,0},{178,49793,0},{185,49784,0},{185,49779,0},{190,49778,0},{193,49783,0}, {193,49784,0},{192,49784,0},{190,49781,0},{187,49781,0},{183,49793,0},{188,49789,0}, {187,49791,0},{190,49791,0},{187,49794,0},{187,49796,0},{188,49796,0},{193,49793,0}, {192,49796,0},{193,49796,0},{193,49798,0},{190,49798,0},{193,49801,0},{195,49799,0}, {195,49796,0},{202,49789,0},{200,49786,0},{202,49784,0},{203,49786,0},{203,49793,0}, {197,49799,0},{197,49806,0},{192,49801,0},{185,49801,0},{180,49809,0},{177,49813,0}, {177,49818,0},{173,49819,0},{172,49818,0},{61368,17402,129},{61369,17410,1}, {61376,17418,1},{61378,17418,1},{61386,17410,1},{61381,17412,1},{61379,17408,1}, {61383,17408,1},{61384,17405,1},{61394,17405,1},{61396,17410,1},{61403,17412,1}, {61404,17415,1},{61403,17415,1},{61404,17420,1},{61401,17418,1},{61403,17422,1}, {61404,17425,1},{61414,17433,1},{61411,17428,1},{61411,17422,1},{61409,17420,1}, {61411,17415,1},{61411,17405,1},{61408,17403,1},{61409,17393,1},{61411,17398,1}, {61411,17400,1},{61413,17400,1},{61413,17417,1},{61416,17418,1},{61416,17422,1}, {61419,17420,1},{61421,17418,1},{61424,17417,1},{61424,17418,1},{61426,17418,1}, {61424,17420,1},{61421,17420,1},{61421,17422,1},{61423,17423,1},{61424,17425,1}, {61426,17425,1},{61436,17432,1},{61436,17430,1},{61429,17422,1},{61431,17418,1}, {61433,17418,1},{61431,17422,1},{61434,17422,1},{61439,17418,1},{61434,17415,1}, {61434,17410,1},{61436,17403,1},{61439,17400,1},{61438,17400,1},{61436,17397,1}, {61434,17398,1},{61434,17395,1},{61431,17398,1},{61434,17402,1},{61433,17403,1}, {61429,17402,1},{61426,17405,1},{61426,17400,1},{61421,17398,1},{61424,17397,1}, {61428,17398,1},{61426,17393,1},{61421,17388,1},{61416,17390,1},{61418,17395,1}, {61418,17397,1},{61416,17397,1},{61416,17400,1},{61418,17402,1},{61418,17408,1}, {61418,17413,1},{61416,17407,1},{61416,17403,1},{61414,17403,1},{61414,17390,1}, {61413,17388,1},{61413,17393,1},{61408,17378,1},{61409,17377,1},{61411,17385,1}, {61416,17387,1},{61419,17385,1},{61421,17382,1},{61423,17385,1},{61424,17387,1}, {61424,17388,1},{61428,17388,1},{61428,17392,1},{61429,17395,1},{61431,17393,1}, {61429,17382,1},{61428,17382,1},{61428,17380,1},{61426,17380,1},{61424,17378,1}, {61429,17378,1},{61431,17378,1},{61433,17380,1},{61434,17378,1},{61436,17382,1}, {61434,17385,1},{61436,17393,1},{61438,17392,1},{61439,17395,1},{61443,17397,1}, {61441,17402,1},{61441,17403,1},{61443,17403,1},{61446,17400,1},{61444,17395,1}, {61444,17392,1},{61441,17392,1},{61438,17385,1},{61443,17385,1},{61443,17383,1}, {61439,17380,1},{61436,17370,1},{61434,17367,1},{61433,17368,1},{61434,17373,1}, {61433,17375,1},{61429,17372,1},{61429,17367,1},{61426,17368,1},{61426,17365,1}, {61429,17363,1},{61431,17360,1},{61428,17355,1},{61426,17357,1},{61426,17353,1}, {61421,17350,1},{61423,17343,1},{61416,17335,1},{61409,17327,1},{61404,17317,1}, {61404,17310,1},{61408,17308,1},{61409,17310,1},{61418,17308,1},{61418,17305,1}, {61421,17303,1},{61424,17303,1},{61423,17307,1},{61433,17303,1},{61434,17300,1}, {61436,17302,1},{61439,17307,1},{61443,17305,1},{61448,17307,1},{61449,17305,1}, {61449,17302,1},{61451,17303,1},{61458,17300,1},{61456,17295,1},{61456,17293,1}, {61453,17293,1},{61451,17285,1},{61458,17277,1},{61463,17272,1},{61461,17268,1}, {61466,17270,1},{61468,17267,1},{61471,17265,1},{61471,17270,1},{61473,17268,1}, {61484,17273,1},{61483,17298,1},{61486,17272,1},{61484,17263,1},{61481,17257,1}, {61478,17257,1},{61479,17263,1},{61478,17262,1},{61478,17260,1},{61476,17260,1}, {61474,17257,1},{61474,17255,1},{61473,17253,1},{61478,17253,1},{61476,17250,1}, {61464,17235,1},{61456,17218,1},{61448,17213,1},{61448,17212,1},{61411,17210,1}, {61406,17213,1},{61404,17208,1},{61394,17207,1},{61389,17198,1},{61381,17195,1}, {61369,17185,1},{61369,17182,1},{61366,17178,1},{61359,17165,1},{61361,17163,1}, {61359,17162,1},{61359,17155,1},{61361,17147,1},{61354,17147,1},{61353,17150,1}, {61349,17147,1},{61334,17142,1},{61329,17137,1},{61308,17132,1},{61296,17123,1}, {61293,17123,1},{61293,17137,1},{61301,17148,1},{61308,17162,1},{61308,17170,1}, {61299,17147,1},{61291,17138,1},{61289,17120,1},{61279,17115,1},{61264,17100,1}, {61261,17105,1},{61253,17105,1},{61248,17110,1},{61253,17103,1},{61253,17100,1}, {61248,17102,1},{61243,17103,1},{61238,17102,1},{61244,17102,1},{61253,17098,1}, {61254,17103,1},{61258,17103,1},{61261,17102,1},{61264,17098,1},{61263,17095,1}, {61246,17080,1},{61241,17070,1},{61229,17075,1},{61236,17070,1},{61238,17070,1}, {61241,17067,1},{61233,17047,1},{61228,17060,1},{61224,17062,1},{61231,17053,1}, {61233,17045,1},{61231,17045,1},{61231,17042,1},{61228,17038,1},{61226,17042,1}, {61224,17040,1},{61226,17028,1},{61223,17037,1},{61218,17042,1},{61213,17043,1}, {61209,17042,1},{61219,17038,1},{61223,17033,1},{61223,17027,1},{61214,17020,1}, {61219,17027,1},{61219,17030,1},{61211,17023,1},{61213,17018,1},{61211,17013,1}, {61209,17010,1},{61208,17008,1},{61203,17013,1},{61199,17013,1},{61206,17007,1}, {61201,17002,1},{61196,16988,1},{61191,16985,1},{61189,16988,1},{61189,16998,1}, {61188,16993,1},{61189,16983,1},{61188,16980,1},{61186,16978,1},{61183,16985,1}, {61178,16985,1},{61184,16980,1},{61184,16977,1},{61179,16973,1},{61174,16965,1}, {61176,16958,1},{61171,16948,1},{61164,16952,1},{61164,16950,1},{61166,16948,1}, {61171,16947,1},{61171,16942,1},{61166,16937,1},{61161,16922,1},{61154,16908,1}, {61144,16915,1},{61141,16925,1},{61139,16925,1},{61144,16912,1},{61151,16907,1}, {61144,16893,1},{61139,16887,1},{61134,16877,1},{61136,16868,1},{61139,16865,1}, {61138,16862,1},{61138,16858,1},{61136,16855,1},{61133,16850,1},{61133,16838,1}, {61131,16840,1},{61128,16833,1},{61124,16833,1},{61119,16828,1},{61114,16820,1}, {61111,16817,1},{61109,16810,1},{61108,16813,1},{61106,16815,1},{61104,16812,1}, {61104,16803,1},{61101,16803,1},{61098,16802,1},{61096,16795,1},{61086,16783,1}, {61076,16785,1},{61074,16790,1},{61073,16790,1},{61073,16793,1},{61066,16793,1}, {61078,16780,1},{61073,16770,1},{61069,16767,1},{61069,16763,1},{61066,16758,1}, {61061,16763,1},{61059,16767,1},{61059,16763,1},{61064,16758,1},{61061,16755,1}, {61056,16760,1},{61048,16757,1},{61051,16753,1},{61056,16757,1},{61058,16753,1}, {61058,16747,1},{61051,16745,1},{61036,16750,1},{61036,16747,1},{61039,16747,1}, {61043,16743,1},{61048,16745,1},{61053,16742,1},{61049,16732,1},{61046,16732,1}, {61046,16727,1},{61041,16720,1},{61039,16720,1},{61033,16735,1},{61038,16718,1}, {61036,16715,1},{61033,16715,1},{61029,16718,1},{61026,16727,1},{61026,16720,1}, {61023,16718,1},{61026,16718,1},{61033,16712,1},{61026,16707,1},{61018,16718,1}, {61018,16713,1},{61023,16708,1},{61024,16705,1},{61021,16700,1},{61016,16700,1}, {61014,16703,1},{61008,16705,1},{61008,16713,1},{61011,16725,1},{61008,16722,1}, {61004,16725,1},{61004,16730,1},{61003,16727,1},{61004,16722,1},{61008,16718,1}, {61004,16707,1},{61003,16705,1},{60996,16715,1},{60988,16722,1},{60989,16717,1}, {60996,16713,1},{60998,16708,1},{60993,16707,1},{60993,16702,1},{60994,16702,1}, {60996,16705,1},{60999,16705,1},{61003,16700,1},{60999,16693,1},{61001,16693,1}, {61003,16697,1},{61006,16690,1},{61008,16688,1},{61004,16682,1},{60999,16680,1}, {60996,16690,1},{60998,16692,1},{60993,16695,1},{60996,16682,1},{60994,16677,1}, {60993,16675,1},{60989,16673,1},{60981,16670,1},{60978,16673,1},{60981,16690,1}, {60986,16705,1},{60984,16705,1},{60981,16695,1},{60979,16702,1},{60978,16700,1}, {60979,16690,1},{60978,16685,1},{60976,16677,1},{60969,16678,1},{60971,16688,1}, {60968,16680,1},{60963,16678,1},{60966,16685,1},{60966,16702,1},{60964,16700,1}, {60958,16688,1},{60956,16667,1},{60954,16662,1},{60956,16662,1},{60956,16653,1}, {60954,16648,1},{60954,16647,1},{60944,16645,1},{60934,16648,1},{60938,16652,1}, {60938,16657,1},{60939,16663,1},{60948,16670,1},{60949,16673,1},{60948,16675,1}, {60943,16668,1},{60941,16673,1},{60943,16682,1},{60939,16678,1},{60939,16673,1}, {60936,16667,1},{60928,16662,1},{60928,16668,1},{60933,16673,1},{60928,16675,1}, {60931,16677,1},{60931,16678,1},{60936,16678,1},{60941,16695,1},{60938,16688,1}, {60936,16683,1},{60924,16675,1},{60921,16667,1},{60914,16673,1},{60913,16682,1}, {60914,16697,1},{60911,16710,1},{60909,16717,1},{60909,16728,1},{60911,16733,1}, {60911,16740,1},{60914,16742,1},{60919,16745,1},{60921,16748,1},{60918,16770,1}, {60914,16770,1},{60908,16778,1},{60904,16778,1},{60903,16775,1},{60901,16778,1}, {60896,16783,1},{60898,16788,1},{60896,16792,1},{60899,16795,1},{60898,16807,1}, {60901,16807,1},{60903,16818,1},{60901,16822,1},{60896,16825,1},{60888,16832,1}, {60891,16835,1},{60894,16835,1},{60894,16837,1},{60886,16840,1},{60884,16835,1}, {60883,16833,1},{60883,16832,1},{60884,16832,1},{60883,16827,1},{60881,16828,1}, {60879,16832,1},{60878,16832,1},{60874,16837,1},{60874,16840,1},{60881,16835,1}, {60883,16838,1},{60879,16842,1},{60879,16855,1},{60878,16857,1},{60876,16855,1}, {60878,16850,1},{60879,16850,1},{60878,16843,1},{60876,16842,1},{60874,16850,1}, {60876,16863,1},{60881,16862,1},{60879,16872,1},{60878,16867,1},{60878,16868,1}, {60879,16883,1},{60869,16888,1},{60871,16893,1},{60869,16897,1},{60868,16900,1}, {60868,16907,1},{60873,16907,1},{60869,16910,1},{60869,16913,1},{60871,16917,1}, {60874,16917,1},{60873,16920,1},{60869,16920,1},{60871,16927,1},{60873,16933,1}, {60871,16938,1},{60874,16942,1},{60873,16948,1},{60874,16950,1},{60876,16948,1}, {60878,16952,1},{60879,16958,1},{60878,16963,1},{60881,16970,1},{60886,16975,1}, {60886,16965,1},{60888,16970,1},{60886,16978,1},{60889,16985,1},{60898,16985,1}, {60909,17005,1},{60914,17010,1},{60919,17023,1},{60931,17027,1},{60939,17035,1}, {60943,17045,1},{60944,17070,1},{60948,17072,1},{60948,17078,1},{60956,17078,1}, {60958,17077,1},{60951,17070,1},{60946,17058,1},{60948,17055,1},{60954,17067,1}, {60956,17068,1},{60959,17077,1},{60963,17070,1},{60963,17063,1},{60964,17062,1}, {60968,17070,1},{60971,17072,1},{60973,17068,1},{60973,17075,1},{60976,17077,1}, {60979,17075,1},{60978,17078,1},{60979,17080,1},{60983,17082,1},{60986,17085,1}, {60991,17085,1},{60996,17092,1},{60999,17090,1},{60999,17088,1},{61001,17087,1}, {61019,17097,1},{61039,17117,1},{61046,17092,1},{61048,17073,1},{61051,17067,1}, {61053,17060,1},{61056,17053,1},{61061,17048,1},{61054,17058,1},{61053,17068,1}, {61048,17080,1},{61043,17118,1},{61044,17120,1},{61056,17122,1},{61058,17117,1}, {61059,17120,1},{61063,17122,1},{61069,17120,1},{61079,17120,1},{61081,17117,1}, {61083,17122,1},{61088,17125,1},{61093,17128,1},{61098,17127,1},{61106,17135,1}, {61109,17127,1},{61109,17120,1},{61113,17113,1},{61109,17105,1},{61111,17107,1}, {61113,17112,1},{61116,17107,1},{61118,17098,1},{61121,17102,1},{61124,17102,1}, {61118,17105,1},{61111,17122,1},{61111,17128,1},{61108,17135,1},{61109,17140,1}, {61116,17152,1},{61119,17147,1},{61128,17142,1},{61133,17135,1},{61134,17135,1}, {61128,17148,1},{61119,17155,1},{61126,17170,1},{61129,17180,1},{61141,17178,1}, {61134,17180,1},{61129,17185,1},{61129,17188,1},{61136,17195,1},{61146,17220,1}, {61159,17208,1},{61164,17195,1},{61179,17175,1},{61183,17167,1},{61194,17158,1}, {61198,17153,1},{61198,17148,1},{61201,17145,1},{61204,17135,1},{61204,17118,1}, {61203,17115,1},{61206,17105,1},{61206,17095,1},{61208,17098,1},{61206,17108,1}, {61206,17113,1},{61208,17120,1},{61214,17115,1},{61208,17125,1},{61208,17135,1}, {61208,17138,1},{61203,17145,1},{61206,17143,1},{61209,17140,1},{61216,17143,1}, {61218,17137,1},{61233,17132,1},{61231,17135,1},{61221,17140,1},{61219,17143,1}, {61214,17145,1},{61218,17152,1},{61221,17148,1},{61223,17150,1},{61218,17155,1}, {61213,17152,1},{61211,17142,1},{61206,17145,1},{61201,17148,1},{61198,17155,1}, {61193,17163,1},{61184,17167,1},{61181,17175,1},{61168,17193,1},{61158,17217,1}, {61148,17227,1},{61149,17240,1},{61159,17238,1},{61163,17243,1},{61164,17248,1}, {61163,17252,1},{61159,17255,1},{61159,17262,1},{61158,17265,1},{61154,17248,1}, {61153,17242,1},{61151,17242,1},{61154,17270,1},{61156,17275,1},{61153,17273,1}, {61151,17277,1},{61146,17287,1},{61144,17297,1},{61153,17292,1},{61158,17293,1}, {61159,17292,1},{61161,17295,1},{61159,17297,1},{61148,17300,1},{61148,17302,1}, {61148,17303,1},{61149,17303,1},{61149,17307,1},{61153,17308,1},{61151,17310,1}, {61153,17312,1},{61166,17310,1},{61171,17307,1},{61168,17303,1},{61171,17298,1}, {61171,17297,1},{61166,17293,1},{61173,17293,1},{61174,17290,1},{61169,17287,1}, {61169,17285,1},{61173,17283,1},{61173,17277,1},{61169,17270,1},{61171,17268,1}, {61173,17268,1},{61174,17273,1},{61176,17283,1},{61178,17273,1},{61179,17275,1}, {61179,17278,1},{61193,17273,1},{61189,17262,1},{61188,17243,1},{61188,17225,1}, {61194,17212,1},{61206,17197,1},{61206,17200,1},{61199,17207,1},{61198,17212,1}, {61191,17222,1},{61191,17238,1},{61191,17262,1},{61196,17270,1},{61196,17273,1}, {61206,17275,1},{61206,17268,1},{61206,17253,1},{61209,17245,1},{61208,17240,1}, {61211,17230,1},{61209,17240,1},{61211,17247,1},{61216,17247,1},{61216,17248,1}, {61211,17248,1},{61209,17250,1},{61208,17263,1},{61209,17275,1},{61218,17280,1}, {61221,17283,1},{61226,17293,1},{61229,17310,1},{61236,17317,1},{61238,17323,1}, {61241,17328,1},{61243,17330,1},{61244,17333,1},{61249,17332,1},{61254,17337,1}, {61271,17347,1},{61273,17345,1},{61279,17353,1},{61284,17353,1},{61288,17357,1}, {61294,17365,1},{61293,17372,1},{61296,17370,1},{61299,17372,1},{61303,17373,1}, {61303,17378,1},{61306,17380,1},{61316,17393,1},{61321,17387,1},{61326,17387,1}, {61326,17388,1},{61321,17388,1},{61319,17395,1},{61326,17397,1},{61333,17402,1}, {61353,17423,1},{61363,17428,1},{61363,17425,1},{61364,17422,1},{61368,17420,1}, {61373,17418,1},{61368,17410,1},{61368,17402,1},{60864,16800,129},{60856,16805,1}, {60853,16813,1},{60849,16815,1},{60849,16818,1},{60846,16817,1},{60846,16820,1}, {60846,16807,1},{60846,16808,1},{60848,16802,1},{60846,16802,1},{60843,16802,1}, {60839,16797,1},{60839,16800,1},{60843,16805,1},{60839,16815,1},{60836,16813,1}, {60839,16823,1},{60836,16827,1},{60831,16823,1},{60831,16820,1},{60828,16825,1}, {60829,16822,1},{60828,16818,1},{60824,16818,1},{60826,16815,1},{60824,16815,1}, {60824,16800,1},{60818,16788,1},{60819,16785,1},{60819,16778,1},{60823,16777,1}, {60819,16772,1},{60818,16772,1},{60819,16770,1},{60818,16768,1},{60814,16762,1}, {60816,16772,1},{60814,16772,1},{60811,16770,1},{60809,16768,1},{60811,16767,1}, {60813,16767,1},{60811,16763,1},{60809,16760,1},{60809,16752,1},{60816,16753,1}, {60821,16763,1},{60821,16762,1},{60829,16763,1},{60833,16768,1},{60831,16773,1}, {60839,16773,1},{60841,16778,1},{60844,16782,1},{60849,16780,1},{60854,16775,1}, {60858,16777,1},{60861,16775,1},{60866,16777,1},{60868,16780,1},{60866,16787,1}, {60868,16792,1},{60866,16797,1},{60863,16802,1},{61568,17693,129},{61574,17697,1}, {61569,17703,1},{61569,17712,1},{61563,17707,1},{61559,17702,1},{61554,17700,1}, {61551,17702,1},{61548,17697,1},{61533,17690,1},{61528,17690,1},{61526,17687,1}, {61523,17687,1},{61513,17680,1},{61509,17675,1},{61511,17672,1},{61509,17668,1}, {61506,17667,1},{61508,17668,1},{61506,17670,1},{61496,17663,1},{61488,17662,1}, {61486,17660,1},{61488,17653,1},{61486,17653,1},{61476,17645,1},{61476,17642,1}, {61469,17638,1},{61466,17635,1},{61456,17628,1},{61444,17623,1},{61438,17613,1}, {61421,17607,1},{61411,17595,1},{61396,17575,1},{61391,17562,1},{61389,17560,1}, {61379,17543,1},{61379,17537,1},{61374,17532,1},{61374,17523,1},{61383,17518,1}, {61393,17518,1},{61398,17505,1},{61396,17500,1},{61391,17492,1},{61394,17487,1}, {61398,17488,1},{61401,17487,1},{61408,17490,1},{61413,17490,1},{61413,17482,1}, {61411,17478,1},{61408,17477,1},{61408,17482,1},{61404,17483,1},{61403,17482,1}, {61403,17477,1},{61401,17475,1},{61403,17465,1},{61409,17460,1},{61413,17462,1}, {61413,17467,1},{61416,17472,1},{61428,17482,1},{61428,17485,1},{61424,17485,1}, {61426,17487,1},{61433,17485,1},{61438,17493,1},{61446,17497,1},{61464,17513,1}, {61474,17517,1},{61489,17520,1},{61489,17522,1},{61493,17522,1},{61506,17523,1}, {61506,17528,1},{61508,17532,1},{61511,17535,1},{61516,17535,1},{61509,17532,1}, {61508,17527,1},{61509,17522,1},{61516,17520,1},{61526,17515,1},{61534,17507,1}, {61536,17507,1},{61534,17508,1},{61538,17505,1},{61544,17495,1},{61549,17483,1}, {61551,17478,1},{61549,17475,1},{61549,17472,1},{61553,17468,1},{61554,17455,1}, {61563,17442,1},{61573,17435,1},{61574,17432,1},{61578,17422,1},{61579,17408,1}, {61581,17397,1},{61594,17380,1},{61601,17377,1},{61609,17375,1},{61618,17378,1}, {61621,17383,1},{61626,17395,1},{61638,17422,1},{61639,17440,1},{61643,17445,1}, {61653,17458,1},{61664,17462,1},{61666,17463,1},{61694,17465,1},{61698,17468,1}, {61706,17472,1},{61718,17472,1},{61724,17470,1},{61724,17477,1},{61721,17483,1}, {61721,17487,1},{61723,17483,1},{61724,17485,1},{61724,17492,1},{61726,17493,1}, {61726,17490,1},{61728,17490,1},{61729,17487,1},{61729,17483,1},{61726,17480,1}, {61729,17478,1},{61733,17480,1},{61733,17485,1},{61739,17490,1},{61743,17487,1}, {61739,17483,1},{61736,17482,1},{61736,17478,1},{61739,17478,1},{61751,17478,1}, {61756,17487,1},{61756,17498,1},{61758,17495,1},{61759,17497,1},{61763,17497,1}, {61761,17493,1},{61758,17492,1},{61759,17485,1},{61774,17480,1},{61793,17472,1}, {61796,17472,1},{61798,17477,1},{61803,17480,1},{61808,17483,1},{61804,17477,1}, {61799,17472,1},{61808,17467,1},{61829,17455,1},{61829,17457,1},{61829,17467,1}, {61826,17465,1},{61819,17470,1},{61813,17472,1},{61811,17473,1},{61813,17475,1}, {61818,17473,1},{61819,17480,1},{61821,17472,1},{61823,17475,1},{61824,17478,1}, {61823,17478,1},{61824,17482,1},{61829,17487,1},{61824,17493,1},{61829,17495,1}, {61833,17485,1},{61836,17482,1},{61834,17478,1},{61838,17478,1},{61841,17483,1}, {61843,17477,1},{61841,17467,1},{61838,17462,1},{61833,17462,1},{61836,17458,1}, {61831,17452,1},{61833,17450,1},{61859,17440,1},{61873,17430,1},{61883,17422,1}, {61889,17418,1},{61893,17420,1},{61888,17420,1},{61891,17422,1},{61893,17425,1}, {61889,17427,1},{61884,17430,1},{61881,17435,1},{61879,17433,1},{61878,17438,1}, {61876,17438,1},{61876,17435,1},{61874,17437,1},{61873,17435,1},{61871,17440,1}, {61874,17440,1},{61873,17442,1},{61871,17442,1},{61869,17443,1},{61871,17445,1}, {61876,17447,1},{61878,17448,1},{61878,17447,1},{61884,17447,1},{61884,17445,1}, {61886,17443,1},{61889,17445,1},{61893,17447,1},{61896,17443,1},{61898,17447,1}, {61901,17443,1},{61896,17438,1},{61898,17430,1},{61901,17427,1},{61903,17428,1}, {61904,17430,1},{61903,17433,1},{61903,17438,1},{61908,17443,1},{61911,17452,1}, {61913,17450,1},{61908,17442,1},{61909,17442,1},{61906,17433,1},{61908,17430,1}, {61909,17430,1},{61909,17433,1},{61908,17435,1},{61909,17437,1},{61911,17437,1}, {61916,17442,1},{61921,17442,1},{61919,17445,1},{61921,17445,1},{61923,17440,1}, {61919,17440,1},{61914,17437,1},{61913,17433,1},{61916,17435,1},{61916,17432,1}, {61918,17430,1},{61918,17427,1},{61924,17428,1},{61924,17427,1},{61921,17423,1}, {61924,17423,1},{61924,17422,1},{61921,17418,1},{61921,17420,1},{61918,17418,1}, {61918,17425,1},{61913,17425,1},{61914,17428,1},{61913,17432,1},{61909,17427,1}, {61913,17418,1},{61918,17415,1},{61919,17412,1},{61919,17407,1},{61919,17405,1}, {61924,17400,1},{61931,17398,1},{61939,17390,1},{61944,17395,1},{61949,17392,1}, {61948,17390,1},{61944,17393,1},{61941,17388,1},{61939,17387,1},{61929,17397,1}, {61923,17400,1},{61916,17408,1},{61909,17413,1},{61908,17418,1},{61906,17415,1}, {61904,17418,1},{61901,17420,1},{61898,17418,1},{61894,17408,1},{61896,17407,1}, {61901,17405,1},{61909,17402,1},{61921,17392,1},{61931,17383,1},{61964,17355,1}, {61979,17340,1},{61988,17345,1},{61993,17345,1},{61994,17350,1},{61989,17353,1}, {61993,17353,1},{61996,17355,1},{61993,17357,1},{61996,17357,1},{61999,17360,1}, {61998,17362,1},{62004,17365,1},{62003,17362,1},{62006,17360,1},{62004,17358,1}, {62003,17358,1},{62004,17357,1},{62008,17357,1},{62004,17355,1},{62001,17357,1}, {61999,17357,1},{62001,17348,1},{61999,17350,1},{61998,17350,1},{61996,17347,1}, {61998,17343,1},{61998,17342,1},{61994,17342,1},{61993,17338,1},{61991,17340,1}, {61983,17338,1},{61998,17327,1},{62001,17332,1},{62001,17328,1},{62006,17332,1}, {62003,17327,1},{61999,17325,1},{62003,17320,1},{62006,17325,1},{62008,17325,1}, {62006,17320,1},{62008,17315,1},{62014,17308,1},{62018,17310,1},{62018,17315,1}, {62021,17318,1},{62031,17320,1},{62038,17318,1},{62051,17307,1},{62056,17303,1}, {62078,17283,1},{62084,17273,1},{62086,17272,1},{62088,17267,1},{62089,17270,1}, {62094,17268,1},{62094,17270,1},{62093,17273,1},{62091,17283,1},{62094,17290,1}, {62094,17302,1},{62096,17305,1},{62094,17307,1},{62091,17303,1},{62084,17303,1}, {62084,17300,1},{62086,17300,1},{62086,17298,1},{62089,17298,1},{62089,17297,1}, {62084,17295,1},{62084,17293,1},{62081,17292,1},{62079,17295,1},{62081,17295,1}, {62081,17297,1},{62078,17297,1},{62079,17300,1},{62071,17300,1},{62071,17302,1}, {62078,17303,1},{62083,17302,1},{62081,17303,1},{62066,17307,1},{62059,17315,1}, {62054,17318,1},{62053,17318,1},{62058,17312,1},{62054,17313,1},{62044,17330,1}, {62039,17327,1},{62034,17327,1},{62034,17328,1},{62034,17333,1},{62038,17333,1}, {62038,17337,1},{62049,17335,1},{62051,17342,1},{62053,17343,1},{62054,17342,1}, {62056,17343,1},{62054,17345,1},{62051,17345,1},{62053,17348,1},{62049,17350,1}, {62046,17340,1},{62041,17343,1},{62038,17347,1},{62038,17355,1},{62034,17358,1}, {62038,17360,1},{62039,17357,1},{62043,17358,1},{62041,17362,1},{62041,17365,1}, {62038,17367,1},{62039,17373,1},{62038,17373,1},{62034,17378,1},{62034,17377,1}, {62031,17375,1},{62029,17372,1},{62026,17375,1},{62026,17378,1},{62029,17378,1}, {62031,17380,1},{62034,17380,1},{62036,17388,1},{62034,17390,1},{62033,17388,1}, {62029,17395,1},{62024,17398,1},{62023,17403,1},{62024,17410,1},{62019,17415,1}, {62018,17415,1},{62016,17410,1},{62021,17408,1},{62019,17408,1},{62021,17405,1}, {62019,17402,1},{62016,17405,1},{62014,17400,1},{62013,17402,1},{62013,17410,1}, {62008,17408,1},{62004,17413,1},{61999,17413,1},{61999,17415,1},{62003,17417,1}, {62001,17420,1},{62004,17420,1},{62003,17423,1},{62003,17425,1},{62006,17423,1}, {62006,17417,1},{62008,17415,1},{62009,17418,1},{62008,17425,1},{62009,17425,1}, {62009,17428,1},{62013,17430,1},{62016,17437,1},{62006,17433,1},{62003,17435,1}, {62003,17440,1},{62001,17438,1},{61999,17442,1},{61998,17440,1},{61999,17438,1}, {62001,17437,1},{62003,17433,1},{61993,17440,1},{61993,17447,1},{61986,17450,1}, {61986,17447,1},{61984,17447,1},{61983,17450,1},{61976,17458,1},{61971,17457,1}, {61971,17447,1},{61969,17450,1},{61969,17452,1},{61968,17452,1},{61968,17455,1}, {61964,17455,1},{61964,17452,1},{61961,17455,1},{61961,17458,1},{61956,17458,1}, {61951,17460,1},{61951,17455,1},{61954,17455,1},{61954,17452,1},{61958,17452,1}, {61958,17448,1},{61959,17448,1},{61958,17445,1},{61959,17442,1},{61956,17438,1}, {61961,17438,1},{61964,17435,1},{61953,17435,1},{61951,17437,1},{61951,17438,1}, {61954,17440,1},{61954,17448,1},{61951,17453,1},{61946,17448,1},{61936,17450,1}, {61933,17457,1},{61931,17462,1},{61929,17463,1},{61926,17462,1},{61923,17463,1}, {61924,17465,1},{61923,17465,1},{61911,17475,1},{61908,17482,1},{61904,17482,1}, {61906,17480,1},{61903,17480,1},{61901,17488,1},{61899,17485,1},{61901,17477,1}, {61901,17475,1},{61893,17478,1},{61888,17478,1},{61893,17475,1},{61894,17472,1}, {61889,17473,1},{61888,17472,1},{61886,17473,1},{61883,17472,1},{61879,17472,1}, {61876,17472,1},{61874,17478,1},{61874,17487,1},{61871,17477,1},{61873,17472,1}, {61868,17477,1},{61854,17482,1},{61856,17478,1},{61854,17473,1},{61856,17473,1}, {61858,17472,1},{61859,17470,1},{61858,17462,1},{61854,17462,1},{61856,17465,1}, {61856,17468,1},{61853,17465,1},{61851,17468,1},{61846,17468,1},{61846,17470,1}, {61848,17470,1},{61851,17477,1},{61851,17482,1},{61851,17485,1},{61849,17490,1}, {61846,17488,1},{61844,17487,1},{61839,17488,1},{61853,17493,1},{61846,17497,1}, {61843,17497,1},{61843,17502,1},{61848,17500,1},{61849,17502,1},{61846,17508,1}, {61839,17508,1},{61839,17510,1},{61841,17517,1},{61841,17520,1},{61843,17523,1}, {61839,17528,1},{61834,17532,1},{61821,17532,1},{61814,17537,1},{61813,17540,1}, {61814,17548,1},{61818,17555,1},{61818,17557,1},{61814,17557,1},{61811,17558,1}, {61811,17560,1},{61811,17562,1},{61813,17560,1},{61821,17558,1},{61824,17555,1}, {61836,17555,1},{61843,17550,1},{61844,17547,1},{61849,17543,1},{61849,17552,1}, {61851,17552,1},{61853,17545,1},{61853,17550,1},{61854,17547,1},{61858,17553,1}, {61859,17553,1},{61859,17550,1},{61863,17550,1},{61864,17547,1},{61873,17550,1}, {61873,17547,1},{61876,17543,1},{61879,17537,1},{61888,17537,1},{61888,17543,1}, {61884,17547,1},{61883,17550,1},{61884,17552,1},{61884,17553,1},{61879,17557,1}, {61876,17555,1},{61874,17560,1},{61869,17562,1},{61869,17557,1},{61866,17558,1}, {61866,17562,1},{61859,17562,1},{61861,17568,1},{61863,17567,1},{61863,17575,1}, {61866,17580,1},{61863,17582,1},{61864,17585,1},{61861,17585,1},{61861,17580,1}, {61858,17578,1},{61856,17573,1},{61851,17570,1},{61849,17572,1},{61848,17572,1}, {61846,17575,1},{61849,17577,1},{61853,17575,1},{61853,17580,1},{61854,17580,1}, {61853,17583,1},{61851,17585,1},{61846,17587,1},{61836,17590,1},{61829,17587,1}, {61833,17590,1},{61829,17592,1},{61823,17588,1},{61821,17592,1},{61816,17592,1}, {61819,17588,1},{61814,17588,1},{61813,17590,1},{61811,17588,1},{61809,17593,1}, {61794,17597,1},{61791,17600,1},{61789,17600,1},{61791,17598,1},{61789,17597,1}, {61788,17603,1},{61784,17607,1},{61774,17617,1},{61776,17607,1},{61778,17607,1}, {61778,17610,1},{61784,17602,1},{61783,17593,1},{61781,17595,1},{61778,17595,1}, {61778,17600,1},{61773,17600,1},{61773,17607,1},{61769,17608,1},{61768,17612,1}, {61766,17613,1},{61769,17615,1},{61769,17618,1},{61764,17620,1},{61764,17625,1}, {61773,17620,1},{61773,17623,1},{61766,17630,1},{61763,17640,1},{61761,17645,1}, {61759,17652,1},{61749,17668,1},{61739,17712,1},{61738,17713,1},{61736,17707,1}, {61734,17713,1},{61734,17717,1},{61738,17715,1},{61736,17720,1},{61736,17725,1}, {61734,17728,1},{61738,17730,1},{61738,17742,1},{61739,17747,1},{61748,17760,1}, {61754,17762,1},{61756,17765,1},{61759,17768,1},{61763,17768,1},{61768,17773,1}, {61771,17787,1},{61774,17790,1},{61776,17800,1},{61778,17802,1},{61781,17798,1}, {61781,17815,1},{61781,17818,1},{61779,17828,1},{61779,17830,1},{61776,17830,1}, {61773,17835,1},{61771,17850,1},{61766,17855,1},{61764,17857,1},{61758,17852,1}, {61758,17848,1},{61753,17848,1},{61748,17842,1},{61741,17840,1},{61734,17835,1}, {61726,17838,1},{61723,17833,1},{61716,17835,1},{61709,17832,1},{61704,17837,1}, {61696,17832,1},{61694,17835,1},{61693,17835,1},{61689,17830,1},{61683,17830,1}, {61678,17822,1},{61674,17820,1},{61664,17807,1},{61664,17805,1},{61668,17803,1}, {61668,17798,1},{61666,17793,1},{61659,17797,1},{61653,17793,1},{61631,17792,1}, {61629,17788,1},{61628,17788,1},{61626,17797,1},{61623,17800,1},{61619,17795,1}, {61611,17792,1},{61608,17787,1},{61611,17785,1},{61616,17782,1},{61624,17787,1}, {61628,17785,1},{61626,17782,1},{61628,17777,1},{61629,17763,1},{61628,17743,1}, {61629,17742,1},{61616,17705,1},{61611,17703,1},{61601,17693,1},{61594,17690,1}, {61591,17690,1},{61586,17695,1},{61576,17695,1},{61571,17693,1},{61568,17695,1}, {61556,14800,129},{61549,14805,1},{61544,14813,1},{61538,14817,1},{61534,14822,1}, {61534,14827,1},{61533,14830,1},{61524,14830,1},{61521,14823,1},{61519,14822,1}, {61521,14830,1},{61519,14830,1},{61516,14830,1},{61518,14827,1},{61516,14827,1}, {61511,14832,1},{61509,14830,1},{61509,14820,1},{61508,14818,1},{61506,14812,1}, {61506,14805,1},{61509,14802,1},{61511,14802,1},{61514,14803,1},{61519,14800,1}, {61523,14795,1},{61528,14792,1},{61528,14788,1},{61528,14787,1},{61536,14790,1}, {61541,14790,1},{61543,14782,1},{61546,14775,1},{61553,14783,1},{61558,14787,1}, {61558,14790,1},{61559,14793,1},{61556,14800,1},{61219,14577,129},{61229,14567,1}, {61234,14567,1},{61241,14558,1},{61239,14548,1},{61243,14548,1},{61246,14545,1}, {61253,14545,1},{61254,14542,1},{61259,14542,1},{61271,14535,1},{61271,14533,1}, {61274,14532,1},{61274,14525,1},{61276,14525,1},{61279,14528,1},{61283,14525,1}, {61288,14525,1},{61289,14522,1},{61298,14523,1},{61316,14518,1},{61309,14527,1}, {61308,14532,1},{61303,14533,1},{61298,14545,1},{61289,14545,1},{61286,14547,1}, {61288,14548,1},{61293,14550,1},{61293,14555,1},{61298,14553,1},{61299,14557,1}, {61299,14553,1},{61304,14552,1},{61304,14548,1},{61301,14547,1},{61304,14542,1}, {61319,14535,1},{61319,14532,1},{61314,14527,1},{61316,14523,1},{61323,14527,1}, {61331,14525,1},{61341,14517,1},{61359,14498,1},{61363,14493,1},{61363,14490,1}, {61369,14492,1},{61383,14485,1},{61391,14475,1},{61394,14475,1},{61396,14477,1}, {61399,14477,1},{61406,14470,1},{61413,14467,1},{61429,14465,1},{61433,14460,1}, {61441,14460,1},{61443,14463,1},{61444,14467,1},{61446,14468,1},{61458,14468,1}, {61459,14465,1},{61468,14470,1},{61468,14473,1},{61461,14473,1},{61461,14478,1}, {61461,14482,1},{61458,14483,1},{61458,14497,1},{61453,14510,1},{61456,14512,1}, {61454,14517,1},{61454,14522,1},{61456,14525,1},{61461,14525,1},{61463,14527,1}, {61458,14530,1},{61453,14528,1},{61451,14532,1},{61449,14542,1},{61448,14545,1}, {61449,14552,1},{61443,14557,1},{61439,14570,1},{61433,14580,1},{61431,14590,1}, {61431,14598,1},{61424,14607,1},{61419,14623,1},{61418,14637,1},{61421,14655,1}, {61419,14655,1},{61414,14658,1},{61411,14662,1},{61419,14660,1},{61421,14663,1}, {61424,14665,1},{61424,14672,1},{61426,14673,1},{61423,14680,1},{61419,14680,1}, {61416,14682,1},{61418,14687,1},{61418,14690,1},{61413,14690,1},{61409,14695,1}, {61406,14697,1},{61401,14702,1},{61399,14707,1},{61396,14710,1},{61394,14712,1}, {61396,14713,1},{61398,14712,1},{61401,14710,1},{61406,14700,1},{61409,14700,1}, {61413,14695,1},{61418,14695,1},{61421,14690,1},{61421,14683,1},{61429,14680,1}, {61433,14693,1},{61436,14702,1},{61433,14717,1},{61439,14730,1},{61439,14735,1}, {61434,14742,1},{61434,14745,1},{61438,14752,1},{61446,14757,1},{61451,14767,1}, {61449,14772,1},{61449,14775,1},{61446,14782,1},{61446,14790,1},{61454,14795,1}, {61459,14793,1},{61461,14802,1},{61456,14812,1},{61454,14813,1},{61451,14813,1}, {61449,14818,1},{61451,14823,1},{61446,14825,1},{61439,14835,1},{61438,14837,1}, {61434,14835,1},{61429,14828,1},{61428,14830,1},{61416,14830,1},{61408,14833,1}, {61406,14830,1},{61403,14830,1},{61404,14838,1},{61389,14830,1},{61383,14832,1}, {61376,14837,1},{61371,14833,1},{61363,14833,1},{61353,14830,1},{61346,14835,1}, {61333,14832,1},{61328,14837,1},{61319,14835,1},{61318,14838,1},{61311,14833,1}, {61309,14832,1},{61309,14828,1},{61318,14828,1},{61319,14827,1},{61324,14827,1}, {61331,14822,1},{61336,14823,1},{61334,14818,1},{61331,14817,1},{61328,14815,1}, {61326,14820,1},{61324,14812,1},{61318,14810,1},{61306,14802,1},{61303,14805,1}, {61298,14802,1},{61293,14802,1},{61286,14802,1},{61283,14795,1},{61283,14792,1}, {61283,14790,1},{61281,14790,1},{61276,14795,1},{61268,14797,1},{61263,14795,1}, {61259,14788,1},{61249,14783,1},{61249,14790,1},{61253,14788,1},{61254,14792,1}, {61253,14795,1},{61253,14798,1},{61249,14800,1},{61243,14800,1},{61238,14797,1}, {61228,14800,1},{61228,14798,1},{61226,14800,1},{61223,14798,1},{61218,14798,1}, {61219,14792,1},{61226,14788,1},{61221,14787,1},{61216,14780,1},{61218,14775,1}, {61223,14770,1},{61228,14775,1},{61229,14763,1},{61238,14765,1},{61241,14768,1}, {61243,14767,1},{61244,14768,1},{61241,14777,1},{61239,14773,1},{61234,14778,1}, {61236,14788,1},{61241,14782,1},{61246,14782,1},{61248,14780,1},{61249,14775,1}, {61248,14767,1},{61251,14768,1},{61251,14762,1},{61253,14760,1},{61251,14755,1}, {61248,14753,1},{61246,14755,1},{61243,14753,1},{61241,14757,1},{61238,14752,1}, {61234,14745,1},{61236,14742,1},{61241,14740,1},{61241,14742,1},{61241,14743,1}, {61236,14745,1},{61239,14748,1},{61243,14747,1},{61246,14748,1},{61248,14740,1}, {61256,14735,1},{61258,14730,1},{61256,14730,1},{61253,14735,1},{61244,14738,1}, {61243,14735,1},{61236,14735,1},{61231,14728,1},{61228,14730,1},{61223,14727,1}, {61214,14727,1},{61211,14722,1},{61214,14713,1},{61209,14710,1},{61206,14703,1}, {61204,14708,1},{61201,14708,1},{61196,14703,1},{61196,14698,1},{61194,14698,1}, {61193,14700,1},{61188,14697,1},{61186,14690,1},{61184,14690,1},{61181,14693,1}, {61176,14685,1},{61179,14683,1},{61179,14678,1},{61176,14672,1},{61184,14662,1}, {61191,14658,1},{61186,14657,1},{61184,14652,1},{61184,14642,1},{61188,14637,1}, {61184,14630,1},{61189,14628,1},{61189,14625,1},{61189,14623,1},{61184,14622,1}, {61188,14617,1},{61184,14613,1},{61183,14605,1},{61193,14603,1},{61203,14592,1}, {61203,14598,1},{61204,14597,1},{61204,14598,1},{61204,14605,1},{61203,14607,1}, {61203,14613,1},{61201,14612,1},{61201,14613,1},{61203,14618,1},{61201,14622,1}, {61203,14623,1},{61208,14623,1},{61208,14615,1},{61206,14612,1},{61208,14608,1}, {61206,14603,1},{61208,14597,1},{61221,14592,1},{61221,14588,1},{61214,14588,1}, {61213,14585,1},{61211,14590,1},{61209,14590,1},{61208,14587,1},{61208,14583,1}, {61221,14577,1},{61569,14398,129},{61568,14405,1},{61563,14410,1},{61551,14413,1}, {61543,14412,1},{61536,14413,1},{61528,14408,1},{61526,14405,1},{61523,14402,1}, {61519,14393,1},{61518,14390,1},{61523,14385,1},{61531,14387,1},{61541,14382,1}, {61548,14383,1},{61559,14383,1},{61564,14388,1},{61573,14392,1},{61569,14398,1}, {61976,13738,129},{61974,13745,1},{61976,13750,1},{61978,13758,1},{61976,13760,1}, {61971,13757,1},{61971,13762,1},{61969,13762,1},{61963,13757,1},{61961,13765,1}, {61961,13777,1},{61959,13778,1},{61954,13773,1},{61951,13775,1},{61951,13778,1}, {61954,13777,1},{61958,13783,1},{61963,13790,1},{61961,13803,1},{61958,13807,1}, {61956,13812,1},{61954,13812,1},{61946,13805,1},{61946,13802,1},{61946,13798,1}, {61949,13790,1},{61948,13785,1},{61948,13777,1},{61946,13770,1},{61943,13760,1}, {61933,13758,1},{61928,13745,1},{61928,13740,1},{61934,13732,1},{61934,13723,1}, {61936,13717,1},{61931,13710,1},{61931,13695,1},{61929,13687,1},{61931,13683,1}, {61929,13682,1},{61929,13670,1},{61938,13667,1},{61938,13657,1},{61946,13652,1}, {61954,13655,1},{61959,13655,1},{61961,13675,1},{61966,13688,1},{61966,13697,1}, {61976,13732,1},{61976,13738,1},{65276,14100,129},{65278,14103,1},{65274,14117,1}, {65274,14122,1},{65271,14127,1},{65269,14128,1},{65269,14132,1},{65266,14132,1}, {65266,14135,1},{65263,14143,1},{65253,14163,1},{65246,14183,1},{65243,14183,1}, {65239,14190,1},{65241,14200,1},{65234,14208,1},{65231,14207,1},{65229,14207,1}, {65231,14213,1},{65229,14215,1},{65226,14220,1},{65226,14223,1},{65224,14228,1}, {65224,14233,1},{65216,14250,1},{65213,14263,1},{65209,14272,1},{65208,14282,1}, {65199,14303,1},{65201,14310,1},{65199,14320,1},{65198,14325,1},{65196,14340,1}, {65193,14352,1},{65189,14357,1},{65181,14362,1},{65178,14368,1},{65181,14372,1}, {65176,14373,1},{65174,14380,1},{65171,14385,1},{65168,14385,1},{65163,14395,1}, {65158,14398,1},{65154,14402,1},{65156,14415,1},{65156,14417,1},{65154,14415,1}, {65154,14413,1},{65153,14413,1},{65151,14418,1},{65153,14420,1},{65151,14422,1}, {65149,14422,1},{65149,14425,1},{65156,14428,1},{65154,14452,1},{65148,14455,1}, {65141,14455,1},{65136,14457,1},{65134,14460,1},{65134,14467,1},{65133,14473,1}, {65126,14487,1},{65124,14488,1},{65121,14485,1},{65118,14488,1},{65118,14492,1}, {65114,14497,1},{65114,14498,1},{65111,14500,1},{65108,14500,1},{65108,14502,1}, {65103,14503,1},{65099,14508,1},{65096,14520,1},{65098,14530,1},{65096,14533,1}, {65093,14538,1},{65086,14545,1},{65078,14552,1},{65078,14555,1},{65066,14562,1}, {65059,14568,1},{65053,14580,1},{65049,14582,1},{65043,14578,1},{65034,14578,1}, {65029,14582,1},{65028,14580,1},{65026,14580,1},{65016,14578,1},{65014,14580,1}, {65006,14573,1},{65001,14575,1},{64994,14572,1},{64988,14577,1},{64988,14587,1}, {64984,14588,1},{64988,14593,1},{64988,14598,1},{64986,14598,1},{64983,14615,1}, {64981,14618,1},{64979,14625,1},{64978,14628,1},{64979,14633,1},{64976,14638,1}, {64976,14647,1},{64973,14648,1},{64969,14655,1},{64961,14665,1},{64956,14678,1}, {64953,14680,1},{64951,14682,1},{64953,14688,1},{64953,14692,1},{64946,14697,1}, {64941,14705,1},{64943,14708,1},{64939,14710,1},{64939,14725,1},{64943,14727,1}, {64941,14732,1},{64943,14733,1},{64939,14740,1},{64938,14748,1},{64933,14753,1}, {64929,14758,1},{64918,14768,1},{64909,14772,1},{64906,14778,1},{64903,14783,1}, {64898,14783,1},{64896,14785,1},{64889,14787,1},{64883,14785,1},{64878,14785,1}, {64876,14783,1},{64874,14785,1},{64874,14787,1},{64869,14787,1},{64864,14782,1}, {64863,14760,1},{64861,14757,1},{64863,14742,1},{64861,14733,1},{64863,14725,1}, {64861,14720,1},{64864,14715,1},{64864,14708,1},{64863,14705,1},{64861,14697,1}, {64853,14695,1},{64839,14695,1},{64831,14703,1},{64834,14707,1},{64829,14705,1}, {64828,14707,1},{64821,14707,1},{64818,14712,1},{64813,14715,1},{64806,14713,1}, {64806,14715,1},{64803,14713,1},{64803,14715,1},{64798,14715,1},{64794,14717,1}, {64793,14720,1},{64789,14718,1},{64789,14722,1},{64786,14722,1},{64789,14725,1}, {64788,14727,1},{64786,14727,1},{64786,14733,1},{64779,14738,1},{64779,14742,1}, {64776,14743,1},{64776,14747,1},{64773,14750,1},{64768,14750,1},{64766,14758,1}, {64764,14760,1},{64759,14758,1},{64756,14762,1},{64754,14760,1},{64754,14765,1}, {64759,14763,1},{64756,14767,1},{64753,14770,1},{64744,14770,1},{64743,14773,1}, {64741,14775,1},{64743,14778,1},{64741,14782,1},{64743,14785,1},{64743,14788,1}, {64736,14797,1},{64731,14798,1},{64729,14800,1},{64731,14813,1},{64721,14815,1}, {64711,14820,1},{64698,14820,1},{64691,14823,1},{64684,14822,1},{64679,14823,1}, {64674,14830,1},{64674,14835,1},{64671,14840,1},{64669,14845,1},{64663,14848,1}, {64646,14848,1},{64646,14852,1},{64644,14853,1},{64643,14852,1},{64636,14853,1}, {64628,14860,1},{64626,14872,1},{64628,14887,1},{64629,14888,1},{64631,14888,1}, {64633,14890,1},{64629,14902,1},{64631,14903,1},{64633,14907,1},{64634,14908,1}, {64638,14913,1},{64636,14913,1},{64636,14927,1},{64634,14927,1},{64633,14930,1}, {64634,14932,1},{64629,14932,1},{64628,14932,1},{64626,14930,1},{64626,14932,1}, {64624,14928,1},{64624,14933,1},{64621,14933,1},{64618,14928,1},{64618,14927,1}, {64614,14925,1},{64604,14922,1},{64601,14918,1},{64598,14918,1},{64586,14923,1}, {64584,14927,1},{64584,14935,1},{64581,14938,1},{64581,14942,1},{64578,14942,1}, {64579,14945,1},{64576,14943,1},{64576,14945,1},{64576,14952,1},{64578,14953,1}, {64576,14957,1},{64573,14962,1},{64576,14965,1},{64576,14975,1},{64574,14978,1}, {64574,14985,1},{64571,14988,1},{64573,15002,1},{64569,15002,1},{64568,15005,1}, {64564,15005,1},{64563,15002,1},{64561,14998,1},{64559,14992,1},{64558,14977,1}, {64553,14972,1},{64546,14977,1},{64544,14980,1},{64539,14983,1},{64536,14987,1}, {64534,14985,1},{64534,14990,1},{64531,14992,1},{64528,14998,1},{64529,15002,1}, {64528,15010,1},{64524,15013,1},{64526,15018,1},{64516,15030,1},{64514,15043,1}, {64516,15047,1},{64513,15052,1},{64516,15055,1},{64514,15060,1},{64513,15058,1}, {64508,15063,1},{64509,15072,1},{64509,15078,1},{64514,15085,1},{64513,15088,1}, {64501,15063,1},{64506,15042,1},{64504,15037,1},{64496,15035,1},{64494,15050,1}, {64488,15062,1},{64488,15065,1},{64479,15068,1},{64478,15068,1},{64478,15062,1}, {64474,15057,1},{64474,15048,1},{64471,15047,1},{64469,15043,1},{64468,15042,1}, {64468,15037,1},{64471,15033,1},{64466,15025,1},{64469,15025,1},{64466,15023,1}, {64466,15022,1},{64468,15018,1},{64471,15018,1},{64471,15013,1},{64469,15012,1}, {64473,15008,1},{64471,15008,1},{64474,15005,1},{64474,15002,1},{64476,15003,1}, {64479,15002,1},{64479,15000,1},{64476,14998,1},{64478,14997,1},{64479,14997,1}, {64479,14995,1},{64479,14992,1},{64481,14990,1},{64479,14990,1},{64481,14985,1}, {64483,14990,1},{64484,14990,1},{64484,14987,1},{64486,14988,1},{64486,14997,1}, {64484,14998,1},{64486,15003,1},{64489,15005,1},{64489,15008,1},{64491,15002,1}, {64493,14995,1},{64493,14993,1},{64488,14993,1},{64488,14992,1},{64489,14990,1}, {64496,14988,1},{64501,14975,1},{64501,14958,1},{64501,14953,1},{64499,14953,1}, {64499,14952,1},{64499,14950,1},{64503,14950,1},{64501,14947,1},{64501,14945,1}, {64503,14945,1},{64503,14942,1},{64506,14940,1},{64508,14937,1},{64504,14933,1}, {64513,14910,1},{64509,14900,1},{64508,14897,1},{64513,14887,1},{64513,14873,1}, {64516,14873,1},{64518,14872,1},{64519,14877,1},{64521,14877,1},{64523,14875,1}, {64519,14873,1},{64521,14870,1},{64526,14868,1},{64523,14868,1},{64521,14868,1}, {64518,14865,1},{64518,14855,1},{64518,14852,1},{64516,14847,1},{64516,14840,1}, {64518,14833,1},{64523,14830,1},{64523,14827,1},{64523,14825,1},{64526,14823,1}, {64526,14820,1},{64526,14817,1},{64528,14817,1},{64526,14815,1},{64523,14810,1}, {64521,14805,1},{64523,14802,1},{64519,14798,1},{64519,14797,1},{64519,14795,1}, {64526,14792,1},{64526,14785,1},{64528,14788,1},{64531,14787,1},{64528,14785,1}, {64531,14780,1},{64531,14777,1},{64526,14772,1},{64534,14770,1},{64538,14762,1}, {64548,14752,1},{64559,14748,1},{64576,14735,1},{64578,14735,1},{64579,14732,1}, {64583,14730,1},{64586,14725,1},{64584,14723,1},{64583,14725,1},{64581,14723,1}, {64584,14717,1},{64586,14715,1},{64588,14715,1},{64593,14712,1},{64593,14708,1}, {64591,14710,1},{64588,14710,1},{64586,14708,1},{64589,14705,1},{64596,14700,1}, {64606,14698,1},{64609,14695,1},{64608,14692,1},{64608,14690,1},{64611,14692,1}, {64613,14690,1},{64618,14688,1},{64619,14690,1},{64623,14688,1},{64623,14692,1}, {64628,14697,1},{64631,14698,1},{64633,14697,1},{64631,14695,1},{64628,14695,1}, {64626,14692,1},{64624,14688,1},{64631,14677,1},{64633,14663,1},{64636,14658,1}, {64641,14657,1},{64644,14657,1},{64646,14655,1},{64649,14655,1},{64651,14658,1}, {64654,14660,1},{64653,14658,1},{64654,14657,1},{64659,14653,1},{64659,14652,1}, {64664,14652,1},{64674,14643,1},{64678,14638,1},{64683,14633,1},{64693,14627,1}, {64699,14627,1},{64703,14623,1},{64706,14625,1},{64708,14623,1},{64714,14615,1}, {64714,14612,1},{64719,14610,1},{64719,14612,1},{64723,14612,1},{64724,14608,1}, {64728,14610,1},{64731,14598,1},{64731,14588,1},{64736,14580,1},{64739,14577,1}, {64739,14578,1},{64741,14578,1},{64744,14578,1},{64743,14577,1},{64744,14575,1}, {64743,14573,1},{64741,14573,1},{64739,14572,1},{64739,14565,1},{64743,14562,1}, {64741,14543,1},{64744,14538,1},{64749,14532,1},{64749,14523,1},{64754,14518,1}, {64754,14517,1},{64751,14517,1},{64751,14515,1},{64754,14510,1},{64758,14508,1}, {64758,14507,1},{64754,14507,1},{64754,14505,1},{64754,14500,1},{64758,14495,1}, {64756,14493,1},{64758,14490,1},{64758,14488,1},{64761,14483,1},{64766,14487,1}, {64778,14485,1},{64768,14483,1},{64768,14482,1},{64768,14478,1},{64769,14475,1}, {64779,14465,1},{64771,14465,1},{64771,14458,1},{64776,14455,1},{64784,14453,1}, {64786,14452,1},{64784,14452,1},{64779,14452,1},{64774,14450,1},{64769,14453,1}, {64769,14452,1},{64773,14447,1},{64783,14442,1},{64784,14440,1},{64768,14443,1}, {64761,14447,1},{64758,14452,1},{64756,14448,1},{64764,14442,1},{64761,14440,1}, {64761,14437,1},{64768,14437,1},{64774,14432,1},{64773,14430,1},{64768,14433,1}, {64766,14433,1},{64766,14430,1},{64773,14427,1},{64769,14423,1},{64768,14427,1}, {64763,14423,1},{64763,14427,1},{64759,14427,1},{64756,14422,1},{64759,14418,1}, {64759,14412,1},{64764,14402,1},{64766,14392,1},{64773,14382,1},{64786,14377,1}, {64786,14372,1},{64791,14365,1},{64789,14365,1},{64786,14368,1},{64783,14375,1}, {64779,14375,1},{64764,14383,1},{64754,14385,1},{64741,14395,1},{64738,14395,1}, {64736,14393,1},{64738,14390,1},{64743,14387,1},{64743,14382,1},{64739,14383,1}, {64739,14388,1},{64736,14390,1},{64733,14390,1},{64731,14385,1},{64733,14375,1}, {64734,14372,1},{64738,14363,1},{64736,14357,1},{64736,14350,1},{64738,14347,1}, {64744,14343,1},{64744,14337,1},{64743,14343,1},{64736,14347,1},{64733,14355,1}, {64723,14358,1},{64716,14363,1},{64711,14362,1},{64711,14333,1},{64708,14328,1}, {64708,14322,1},{64704,14307,1},{64701,14298,1},{64708,14283,1},{64709,14270,1}, {64706,14258,1},{64703,14250,1},{64703,14243,1},{64706,14240,1},{64716,14238,1}, {64719,14233,1},{64719,14222,1},{64713,14213,1},{64713,14215,1},{64716,14223,1}, {64718,14232,1},{64716,14235,1},{64713,14237,1},{64704,14238,1},{64699,14245,1}, {64699,14252,1},{64704,14263,1},{64703,14277,1},{64699,14283,1},{64694,14290,1}, {64689,14312,1},{64678,14325,1},{64659,14340,1},{64639,14340,1},{64634,14337,1}, {64633,14333,1},{64634,14328,1},{64633,14323,1},{64628,14313,1},{64628,14305,1}, {64618,14293,1},{64603,14263,1},{64603,14257,1},{64609,14250,1},{64613,14243,1}, {64616,14230,1},{64619,14222,1},{64616,14208,1},{64618,14198,1},{64614,14190,1}, {64616,14177,1},{64613,14162,1},{64614,14158,1},{64614,14152,1},{64619,14145,1}, {64621,14138,1},{64621,14130,1},{64614,14122,1},{64613,14117,1},{64613,14112,1}, {64623,14100,1},{64404,15320,129},{64401,15325,1},{64401,15330,1},{64396,15335,1}, {64394,15340,1},{64393,15343,1},{64391,15348,1},{64389,15350,1},{64383,15370,1}, {64381,15372,1},{64379,15375,1},{64376,15378,1},{64374,15377,1},{64374,15368,1}, {64373,15368,1},{64374,15360,1},{64371,15357,1},{64373,15355,1},{64374,15357,1}, {64376,15357,1},{64376,15348,1},{64381,15347,1},{64378,15343,1},{64379,15342,1}, {64379,15338,1},{64381,15337,1},{64386,15338,1},{64386,15337,1},{64386,15335,1}, {64386,15333,1},{64384,15328,1},{64386,15328,1},{64388,15333,1},{64389,15327,1}, {64394,15325,1},{64393,15323,1},{64396,15323,1},{64399,15318,1},{64404,15320,1}, {64603,15050,129},{64598,15060,1},{64593,15067,1},{64594,15075,1},{64596,15075,1}, {64593,15080,1},{64591,15083,1},{64586,15083,1},{64583,15088,1},{64579,15088,1}, {64578,15087,1},{64576,15090,1},{64573,15090,1},{64571,15093,1},{64568,15090,1}, {64569,15088,1},{64568,15087,1},{64564,15085,1},{64566,15083,1},{64569,15085,1}, {64571,15083,1},{64571,15080,1},{64569,15080,1},{64569,15078,1},{64571,15075,1}, {64571,15063,1},{64573,15058,1},{64574,15053,1},{64571,15047,1},{64573,15043,1}, {64574,15043,1},{64579,15052,1},{64581,15052,1},{64584,15050,1},{64588,15047,1}, {64586,15045,1},{64589,15045,1},{64593,15042,1},{64598,15042,1},{64601,15043,1}, {64603,15048,1},{64603,15050,1},{64638,15257,129},{64639,15263,1},{64638,15275,1}, {64639,15280,1},{64638,15282,1},{64633,15285,1},{64631,15290,1},{64631,15293,1}, {64629,15295,1},{64626,15297,1},{64626,15300,1},{64623,15302,1},{64618,15300,1}, {64621,15295,1},{64619,15292,1},{64618,15295,1},{64614,15297,1},{64616,15293,1}, {64614,15290,1},{64613,15283,1},{64619,15275,1},{64619,15273,1},{64616,15275,1}, {64614,15273,1},{64616,15272,1},{64618,15268,1},{64621,15272,1},{64623,15270,1}, {64629,15263,1},{64633,15262,1},{64633,15260,1},{64634,15257,1},{64633,15250,1}, {64638,15253,1},{64638,15257,1},{65121,15218,129},{65119,15222,1},{65113,15225,1}, {65111,15223,1},{65113,15220,1},{65114,15218,1},{65113,15217,1},{65106,15217,1}, {65104,15218,1},{65104,15223,1},{65103,15225,1},{65103,15228,1},{65103,15242,1}, {65094,15240,1},{65091,15237,1},{65084,15235,1},{65074,15240,1},{65068,15240,1}, {65056,15238,1},{65048,15233,1},{65038,15223,1},{65036,15217,1},{65038,15205,1}, {65038,15202,1},{65039,15198,1},{65036,15197,1},{65021,15197,1},{65013,15205,1}, {65013,15207,1},{65006,15213,1},{64999,15215,1},{64994,15212,1},{64991,15210,1}, {64989,15205,1},{64983,15197,1},{64979,15188,1},{64976,15183,1},{64978,15177,1}, {64983,15175,1},{64983,15170,1},{64983,15165,1},{64978,15162,1},{64983,15158,1}, {64983,15147,1},{64976,15145,1},{64974,15147,1},{64973,15152,1},{64968,15152,1}, {64964,15143,1},{64961,15140,1},{64958,15140,1},{64953,15135,1},{64949,15128,1}, {64944,15122,1},{64939,15118,1},{64939,15115,1},{64938,15108,1},{64931,15103,1}, {64934,15098,1},{64933,15092,1},{64929,15088,1},{64933,15085,1},{64934,15082,1}, {64931,15082,1},{64928,15082,1},{64921,15077,1},{64919,15067,1},{64921,15065,1}, {64921,15063,1},{64913,15052,1},{64909,15047,1},{64906,15040,1},{64906,15022,1}, {64908,15022,1},{64911,15018,1},{64906,15010,1},{64908,15008,1},{64909,15005,1}, {64906,15003,1},{64904,15002,1},{64906,15002,1},{64909,14998,1},{64904,14992,1}, {64906,14990,1},{64908,14978,1},{64908,14973,1},{64904,14970,1},{64906,14963,1}, {64909,14957,1},{64914,14957,1},{64914,14955,1},{64924,14948,1},{64929,14933,1}, {64929,14928,1},{64926,14925,1},{64928,14917,1},{64926,14917,1},{64921,14913,1}, {64919,14905,1},{64923,14905,1},{64923,14908,1},{64924,14908,1},{64928,14907,1}, {64929,14903,1},{64931,14905,1},{64934,14905,1},{64933,14903,1},{64934,14902,1}, {64934,14898,1},{64938,14888,1},{64936,14887,1},{64938,14885,1},{64941,14888,1}, {64944,14882,1},{64943,14877,1},{64946,14878,1},{64949,14877,1},{64951,14865,1}, {64954,14863,1},{64954,14860,1},{64951,14858,1},{64953,14855,1},{64956,14852,1}, {64958,14838,1},{64964,14833,1},{64973,14832,1},{64988,14837,1},{64991,14843,1}, {64988,14852,1},{64983,14853,1},{64981,14857,1},{64988,14865,1},{64986,14870,1}, {64986,14873,1},{64983,14878,1},{64981,14885,1},{64983,14885,1},{64986,14888,1}, {64986,14892,1},{64989,14897,1},{64988,14902,1},{64981,14918,1},{64979,14922,1}, {64976,14922,1},{64978,14937,1},{64978,14940,1},{64979,14943,1},{64978,14945,1}, {64979,14947,1},{64978,14950,1},{64981,14952,1},{64983,14957,1},{64984,14967,1}, {64986,14968,1},{64988,14967,1},{64986,14968,1},{64979,14968,1},{64979,14973,1}, {64981,14973,1},{64983,14978,1},{64984,14980,1},{64983,14987,1},{64984,14992,1}, {64988,14995,1},{64994,14998,1},{64996,14995,1},{65001,14992,1},{65006,14993,1}, {65009,14997,1},{65009,15000,1},{65014,15003,1},{65019,15000,1},{65023,15002,1}, {65026,15002,1},{65031,15002,1},{65033,15003,1},{65036,15008,1},{65034,15015,1}, {65031,15020,1},{65029,15020,1},{65024,15017,1},{65021,15007,1},{65019,15007,1}, {65014,15008,1},{65009,15008,1},{65006,15003,1},{65004,15005,1},{64993,15010,1}, {64984,15012,1},{64981,15017,1},{64981,15025,1},{64979,15028,1},{64981,15032,1}, {64989,15042,1},{64991,15048,1},{64988,15058,1},{64981,15062,1},{64983,15073,1}, {64986,15075,1},{64989,15075,1},{64991,15077,1},{64991,15085,1},{64986,15088,1}, {64988,15093,1},{64994,15102,1},{65009,15103,1},{65021,15108,1},{65026,15117,1}, {65038,15127,1},{65041,15135,1},{65046,15137,1},{65041,15148,1},{65044,15153,1}, {65043,15155,1},{65043,15158,1},{65039,15162,1},{65041,15165,1},{65046,15168,1}, {65053,15170,1},{65059,15167,1},{65074,15167,1},{65079,15162,1},{65086,15163,1}, {65089,15162,1},{65093,15160,1},{65096,15155,1},{65099,15155,1},{65104,15152,1}, {65108,15152,1},{65113,15150,1},{65116,15152,1},{65118,15153,1},{65116,15158,1}, {65116,15172,1},{65114,15172,1},{65116,15178,1},{65113,15185,1},{65104,15188,1}, {65103,15197,1},{65103,15200,1},{65109,15203,1},{65111,15203,1},{65114,15200,1}, {65116,15200,1},{65114,15207,1},{65116,15210,1},{65114,15213,1},{65116,15215,1}, {65121,15215,1},{65121,15218,1},{65279,15082,129},{65274,15087,1},{65271,15095,1}, {65268,15097,1},{65266,15103,1},{65261,15107,1},{65261,15108,1},{65256,15118,1}, {65251,15120,1},{65249,15122,1},{65248,15127,1},{65249,15128,1},{65249,15132,1}, {65246,15137,1},{65246,15142,1},{65238,15150,1},{65238,15153,1},{65233,15160,1}, {65231,15167,1},{65223,15173,1},{65221,15175,1},{65223,15178,1},{65219,15178,1}, {65216,15182,1},{65218,15185,1},{65216,15190,1},{65216,15192,1},{65214,15195,1}, {65213,15197,1},{65211,15205,1},{65208,15205,1},{65203,15212,1},{65191,15220,1}, {65181,15237,1},{65178,15237,1},{65176,15240,1},{65169,15243,1},{65169,15247,1}, {65171,15250,1},{65161,15255,1},{65156,15255,1},{65154,15257,1},{65153,15265,1}, {65148,15270,1},{65146,15273,1},{65146,15278,1},{65149,15280,1},{65149,15283,1}, {65139,15285,1},{65138,15287,1},{65136,15290,1},{65136,15295,1},{65131,15297,1}, {65119,15305,1},{65116,15307,1},{65113,15312,1},{65109,15313,1},{65101,15312,1}, {65098,15313,1},{65091,15307,1},{65088,15303,1},{65084,15305,1},{65081,15308,1}, {65076,15308,1},{65073,15303,1},{65068,15303,1},{65064,15300,1},{65059,15298,1}, {65056,15293,1},{65056,15292,1},{65051,15290,1},{65056,15287,1},{65059,15283,1}, {65061,15282,1},{65063,15282,1},{65066,15280,1},{65068,15275,1},{65069,15273,1}, {65078,15272,1},{65079,15270,1},{65091,15267,1},{65093,15268,1},{65099,15270,1}, {65111,15270,1},{65114,15268,1},{65118,15270,1},{65126,15263,1},{65131,15263,1}, {65149,15252,1},{65151,15248,1},{65163,15238,1},{65166,15237,1},{65171,15235,1}, {65173,15232,1},{65179,15228,1},{65179,15225,1},{65188,15215,1},{65189,15195,1}, {65206,15173,1},{65219,15162,1},{65224,15147,1},{65229,15143,1},{65241,15127,1}, {65241,15122,1},{65246,15118,1},{65246,15115,1},{65251,15112,1},{65254,15103,1}, {65258,15100,1},{65259,15093,1},{65258,15083,1},{65259,15075,1},{65263,15073,1}, {65264,15075,1},{65263,15080,1},{65266,15083,1},{65266,15090,1},{65268,15090,1}, {65269,15087,1},{65271,15088,1},{65273,15088,1},{65273,15082,1},{65274,15080,1}, {65278,15082,1},{65279,15080,1},{65279,15082,1},{65289,14995,129},{65288,14998,1}, {65289,15000,1},{65294,15007,1},{65294,15015,1},{65296,15015,1},{65299,15020,1}, {65296,15025,1},{65294,15028,1},{65293,15033,1},{65289,15037,1},{65289,15042,1}, {65288,15045,1},{65281,15045,1},{65281,15047,1},{65276,15045,1},{65271,15047,1}, {65269,15045,1},{65269,15040,1},{65268,15037,1},{65269,15033,1},{65268,15032,1}, {65269,15027,1},{65268,15018,1},{65269,15017,1},{65273,15012,1},{65279,15008,1}, {65284,15005,1},{65286,14997,1},{65288,14995,1},{65289,14995,1},{64993,15470,129}, {64994,15472,1},{64993,15475,1},{64988,15480,1},{64986,15482,1},{64984,15482,1}, {64984,15485,1},{64981,15488,1},{64981,15490,1},{64981,15492,1},{64983,15492,1}, {64981,15502,1},{64979,15503,1},{64981,15505,1},{64981,15507,1},{64978,15507,1}, {64976,15508,1},{64973,15510,1},{64971,15512,1},{64964,15515,1},{64961,15518,1}, {64954,15518,1},{64949,15520,1},{64948,15528,1},{64941,15533,1},{64941,15537,1}, {64936,15540,1},{64924,15543,1},{64918,15550,1},{64918,15555,1},{64914,15557,1}, {64914,15558,1},{64914,15562,1},{64916,15562,1},{64918,15563,1},{64914,15563,1}, {64911,15567,1},{64909,15567,1},{64908,15572,1},{64901,15577,1},{64899,15582,1}, {64888,15588,1},{64884,15592,1},{64873,15592,1},{64864,15597,1},{64858,15595,1}, {64856,15592,1},{64863,15593,1},{64863,15592,1},{64856,15588,1},{64859,15585,1}, {64858,15582,1},{64856,15580,1},{64854,15577,1},{64848,15570,1},{64853,15548,1}, {64854,15545,1},{64861,15538,1},{64863,15533,1},{64869,15530,1},{64883,15517,1}, {64883,15518,1},{64883,15522,1},{64891,15523,1},{64899,15523,1},{64904,15522,1}, {64908,15518,1},{64908,15510,1},{64914,15498,1},{64923,15495,1},{64933,15482,1}, {64936,15482,1},{64941,15475,1},{64948,15475,1},{64951,15475,1},{64959,15470,1}, {64976,15475,1},{64979,15473,1},{64978,15475,1},{64979,15477,1},{64981,15477,1}, {64986,15475,1},{64991,15468,1},{64993,15470,1},{65339,14740,129},{65334,14745,1}, {65329,14743,1},{65329,14733,1},{65331,14735,1},{65331,14732,1},{65328,14730,1}, {65329,14728,1},{65328,14727,1},{65324,14728,1},{65318,14720,1},{65319,14712,1}, {65316,14707,1},{65316,14705,1},{65318,14705,1},{65316,14698,1},{65318,14683,1}, {65319,14682,1},{65319,14680,1},{65324,14675,1},{65324,14672,1},{65323,14668,1}, {65319,14673,1},{65318,14672,1},{65318,14660,1},{65313,14657,1},{65316,14653,1}, {65321,14652,1},{65324,14653,1},{65324,14662,1},{65326,14662,1},{65334,14658,1}, {65336,14658,1},{65334,14662,1},{65339,14665,1},{65338,14668,1},{65339,14672,1}, {65338,14677,1},{65341,14685,1},{65339,14692,1},{65339,14705,1},{65338,14707,1}, {65339,14710,1},{65339,14712,1},{65334,14715,1},{65338,14717,1},{65336,14720,1}, {65333,14740,1},{65331,14742,1},{65336,14742,1},{65339,14738,1},{65339,14740,1}, {1840,12228,129},{1837,12232,1},{1827,12232,1},{1817,12225,1},{1812,12218,1}, {1808,12217,1},{1800,12218,1},{1790,12217,1},{1780,12213,1},{1773,12213,1}, {1770,12215,1},{1760,12217,1},{1735,12225,1},{1735,12228,1},{1733,12232,1}, {1735,12237,1},{1733,12238,1},{1730,12240,1},{1733,12240,1},{1727,12245,1}, {1728,12242,1},{1727,12242,1},{1722,12242,1},{1713,12242,1},{1712,12245,1}, {1713,12252,1},{1710,12253,1},{1698,12247,1},{1688,12245,1},{1680,12243,1}, {1653,12228,1},{1650,12223,1},{1645,12223,1},{1643,12220,1},{1640,12222,1}, {1642,12223,1},{1640,12223,1},{1630,12218,1},{1632,12223,1},{1627,12220,1}, {1623,12220,1},{1613,12208,1},{1608,12207,1},{1603,12200,1},{1610,12202,1}, {1615,12208,1},{1620,12210,1},{1622,12212,1},{1627,12215,1},{1625,12208,1}, {1618,12205,1},{1613,12193,1},{1613,12188,1},{1607,12178,1},{1608,12175,1}, {1602,12168,1},{1597,12165,1},{1593,12158,1},{1587,12155,1},{1582,12155,1}, {1577,12158,1},{1575,12165,1},{1567,12160,1},{1565,12162,1},{1563,12158,1}, {1555,12153,1},{1552,12148,1},{1542,12147,1},{1537,12143,1},{1538,12140,1}, {1538,12138,1},{1533,12138,1},{1528,12138,1},{1522,12142,1},{1518,12148,1}, {1507,12150,1},{1498,12157,1},{1490,12158,1},{1487,12162,1},{1485,12160,1}, {1482,12162,1},{1475,12172,1},{1472,12173,1},{1470,12162,1},{1465,12160,1}, {1440,12167,1},{1433,12173,1},{1428,12173,1},{1423,12175,1},{1418,12173,1}, {1412,12178,1},{1398,12195,1},{1393,12208,1},{1390,12222,1},{1392,12223,1}, {1395,12223,1},{1397,12220,1},{1400,12218,1},{1397,12228,1},{1398,12230,1}, {1400,12230,1},{1402,12232,1},{1402,12230,1},{1403,12228,1},{1410,12220,1}, {1417,12217,1},{1415,12218,1},{1417,12218,1},{1418,12220,1},{1418,12225,1}, {1425,12225,1},{1413,12227,1},{1413,12230,1},{1408,12230,1},{1413,12235,1}, {1417,12233,1},{1420,12233,1},{1420,12235,1},{1422,12235,1},{1422,12237,1}, {1425,12237,1},{1430,12238,1},{1430,12240,1},{1432,12242,1},{1433,12245,1}, {1433,12247,1},{1432,12252,1},{1435,12252,1},{1432,12260,1},{1430,12260,1}, {1432,12262,1},{1430,12262,1},{1428,12265,1},{1430,12267,1},{1428,12268,1}, {1433,12267,1},{1435,12268,1},{1433,12270,1},{1432,12272,1},{1433,12275,1}, {1432,12278,1},{1427,12280,1},{1428,12283,1},{1427,12287,1},{1423,12290,1}, {1420,12290,1},{1420,12293,1},{1410,12302,1},{1410,12303,1},{1407,12305,1}, {1403,12303,1},{1400,12305,1},{1398,12308,1},{1390,12308,1},{1388,12308,1}, {1387,12305,1},{1378,12303,1},{1375,12307,1},{1372,12312,1},{1373,12315,1}, {1372,12322,1},{1375,12327,1},{1380,12330,1},{1385,12330,1},{1390,12328,1}, {1393,12332,1},{1397,12333,1},{1392,12330,1},{1397,12322,1},{1400,12322,1}, {1400,12325,1},{1402,12323,1},{1403,12327,1},{1407,12325,1},{1405,12332,1}, {1407,12330,1},{1407,12333,1},{1410,12333,1},{1408,12335,1},{1405,12337,1}, {1403,12333,1},{1400,12335,1},{1403,12338,1},{1402,12338,1},{1402,12340,1}, {1398,12338,1},{1397,12340,1},{1390,12342,1},{1392,12345,1},{1395,12345,1}, {1395,12348,1},{1392,12348,1},{1392,12355,1},{1388,12363,1},{1388,12370,1}, {1393,12370,1},{1390,12373,1},{1385,12377,1},{1383,12378,1},{1383,12382,1}, {1382,12382,1},{1382,12387,1},{1380,12388,1},{1378,12393,1},{1377,12393,1}, {1375,12397,1},{1372,12397,1},{1373,12393,1},{1373,12392,1},{1373,12387,1}, {1372,12383,1},{1368,12382,1},{1368,12380,1},{1370,12375,1},{1372,12367,1}, {1370,12365,1},{1370,12363,1},{1372,12357,1},{1368,12355,1},{1360,12353,1}, {1357,12353,1},{1357,12357,1},{1350,12362,1},{1348,12367,1},{1338,12373,1}, {1337,12372,1},{1333,12375,1},{1328,12380,1},{1323,12382,1},{1327,12382,1}, {1323,12385,1},{1322,12377,1},{1315,12375,1},{1310,12377,1},{1308,12375,1}, {1307,12375,1},{1305,12378,1},{1307,12380,1},{1315,12388,1},{1310,12395,1}, {1310,12398,1},{1300,12408,1},{1307,12412,1},{1307,12415,1},{1305,12418,1}, {1302,12418,1},{1302,12415,1},{1298,12413,1},{1295,12413,1},{1290,12412,1}, {1288,12413,1},{1282,12415,1},{1267,12413,1},{1263,12408,1},{1260,12410,1}, {1258,12408,1},{1255,12408,1},{1253,12405,1},{1255,12402,1},{1253,12402,1}, {1255,12397,1},{1262,12393,1},{1262,12392,1},{1263,12390,1},{1265,12387,1}, {1272,12383,1},{1278,12385,1},{1282,12383,1},{1283,12380,1},{1283,12383,1}, {1287,12387,1},{1283,12392,1},{1285,12393,1},{1287,12395,1},{1287,12400,1}, {1292,12403,1},{1297,12402,1},{1295,12393,1},{1297,12390,1},{1297,12388,1}, {1292,12387,1},{1290,12385,1},{1290,12383,1},{1288,12383,1},{1287,12378,1}, {1287,12375,1},{1285,12373,1},{1287,12372,1},{1288,12373,1},{1288,12368,1}, {1287,12370,1},{1290,12367,1},{1293,12372,1},{1292,12367,1},{1288,12365,1}, {1290,12360,1},{1293,12355,1},{1295,12352,1},{1303,12343,1},{1305,12340,1}, {1303,12337,1},{1302,12330,1},{1305,12328,1},{1308,12328,1},{1313,12328,1}, {1320,12332,1},{1325,12330,1},{1328,12323,1},{1332,12323,1},{1333,12320,1}, {1342,12318,1},{1345,12315,1},{1345,12313,1},{1350,12305,1},{1352,12297,1}, {1358,12288,1},{1365,12282,1},{1368,12287,1},{1373,12283,1},{1378,12275,1}, {1378,12277,1},{1382,12273,1},{1383,12268,1},{1382,12267,1},{1383,12265,1}, {1387,12265,1},{1390,12258,1},{1393,12257,1},{1392,12255,1},{1393,12257,1}, {1397,12253,1},{1393,12252,1},{1393,12250,1},{1395,12243,1},{1397,12242,1}, {1395,12242,1},{1383,12250,1},{1382,12252,1},{1373,12252,1},{1373,12248,1}, {1372,12248,1},{1365,12250,1},{1358,12255,1},{1353,12263,1},{1352,12263,1}, {1355,12257,1},{1343,12265,1},{1323,12268,1},{1322,12267,1},{1317,12260,1}, {1323,12250,1},{1332,12252,1},{1335,12252,1},{1342,12247,1},{1348,12240,1}, {1353,12238,1},{1355,12233,1},{1358,12232,1},{1360,12228,1},{1358,12227,1}, {1358,12225,1},{1362,12225,1},{1362,12220,1},{1375,12212,1},{1380,12207,1}, {1378,12205,1},{1380,12202,1},{1380,12198,1},{1383,12197,1},{1385,12190,1}, {1388,12187,1},{1390,12183,1},{1393,12180,1},{1395,12175,1},{1395,12172,1}, {1392,12170,1},{1390,12163,1},{1388,12162,1},{1385,12148,1},{1380,12143,1}, {1372,12145,1},{1370,12143,1},{1370,12145,1},{1368,12145,1},{1365,12142,1}, {1367,12138,1},{1365,12137,1},{1360,12128,1},{1363,12115,1},{1362,12108,1}, {1363,12103,1},{1372,12105,1},{1375,12105,1},{1378,12100,1},{1377,12097,1}, {1368,12088,1},{1372,12088,1},{1377,12093,1},{1382,12090,1},{1388,12092,1}, {1390,12088,1},{1393,12073,1},{1392,12070,1},{1390,12070,1},{1385,12072,1}, {1385,12065,1},{1380,12067,1},{1377,12067,1},{1380,12063,1},{1385,12062,1}, {1392,12062,1},{1397,12060,1},{1398,12063,1},{1402,12062,1},{1410,12062,1}, {1413,12058,1},{1415,12060,1},{1417,12058,1},{1418,12060,1},{1420,12058,1}, {1422,12058,1},{1423,12062,1},{1425,12062,1},{1428,12065,1},{1428,12070,1}, {1445,12088,1},{1447,12092,1},{1448,12095,1},{1452,12098,1},{1455,12098,1}, {1460,12095,1},{1463,12095,1},{1472,12090,1},{1473,12085,1},{1477,12083,1}, {1478,12065,1},{1480,12063,1},{1487,12062,1},{1482,12062,1},{1482,12058,1}, {1490,12060,1},{1488,12058,1},{1483,12057,1},{1483,12055,1},{1472,12053,1}, {1467,12058,1},{1453,12060,1},{1448,12060,1},{1443,12055,1},{1443,12048,1}, {1442,12048,1},{1447,12038,1},{1452,12037,1},{1455,12038,1},{1462,12037,1}, {1463,12033,1},{1465,12030,1},{1470,12025,1},{1473,12025,1},{1475,12027,1}, {1477,12025,1},{1480,12028,1},{1483,12028,1},{1483,12027,1},{1485,12025,1}, {1485,12023,1},{1488,12020,1},{1482,12020,1},{1477,12018,1},{1475,12017,1}, {1480,12008,1},{1482,12010,1},{1482,12008,1},{1492,12005,1},{1505,12005,1}, {1518,12002,1},{1523,12000,1},{1527,12002,1},{1542,11988,1},{1545,11990,1}, {1548,11990,1},{1547,11992,1},{1548,11995,1},{1552,11997,1},{1557,11993,1}, {1557,11992,1},{1560,11990,1},{1568,11993,1},{1573,11987,1},{1575,11990,1}, {1580,11988,1},{1583,11990,1},{1585,11990,1},{1595,11983,1},{1595,11982,1}, {1592,11980,1},{1592,11977,1},{1595,11975,1},{1602,11977,1},{1608,11977,1}, {1613,11978,1},{1618,11975,1},{1632,11978,1},{1637,11982,1},{1638,11987,1}, {1638,11992,1},{1633,11992,1},{1623,11990,1},{1622,11997,1},{1618,12002,1}, {1618,12003,1},{1618,12005,1},{1615,12010,1},{1607,12010,1},{1603,12013,1}, {1603,12018,1},{1605,12028,1},{1603,12030,1},{1602,12030,1},{1603,12032,1}, {1605,12032,1},{1607,12037,1},{1607,12032,1},{1615,12040,1},{1623,12038,1}, {1628,12037,1},{1627,12035,1},{1628,12033,1},{1633,12033,1},{1638,12032,1}, {1643,12032,1},{1650,12030,1},{1655,12030,1},{1662,12027,1},{1662,12030,1}, {1665,12030,1},{1672,12032,1},{1678,12032,1},{1683,12032,1},{1685,12037,1}, {1697,12043,1},{1715,12042,1},{1722,12040,1},{1723,12042,1},{1733,12042,1}, {1737,12045,1},{1742,12043,1},{1750,12040,1},{1752,12040,1},{1753,12035,1}, {1757,12033,1},{1768,12035,1},{1770,12040,1},{1773,12042,1},{1778,12038,1}, {1782,12043,1},{1792,12042,1},{1795,12045,1},{1800,12048,1},{1808,12047,1}, {1820,12053,1},{1822,12052,1},{1832,12058,1},{1842,12058,1},{1848,12055,1}, {1853,12060,1},{1855,12062,1},{1853,12067,1},{1855,12073,1},{1857,12077,1}, {1863,12078,1},{1865,12083,1},{1857,12090,1},{1857,12095,1},{1862,12102,1}, {1862,12108,1},{1863,12110,1},{1862,12117,1},{1853,12130,1},{1838,12158,1}, {1832,12165,1},{1835,12163,1},{1837,12163,1},{1828,12185,1},{1827,12193,1}, {1828,12197,1},{1832,12203,1},{1838,12210,1},{1840,12212,1},{1850,12213,1}, {1852,12217,1},{1852,12223,1},{1845,12225,1},{1840,12230,1},{1405,12423,129}, {1403,12425,1},{1395,12427,1},{1393,12430,1},{1390,12430,1},{1393,12433,1}, {1390,12438,1},{1387,12442,1},{1385,12438,1},{1380,12442,1},{1378,12438,1}, {1377,12440,1},{1372,12438,1},{1367,12442,1},{1365,12435,1},{1360,12435,1}, {1355,12433,1},{1360,12428,1},{1358,12422,1},{1353,12420,1},{1352,12418,1}, {1360,12408,1},{1360,12405,1},{1365,12405,1},{1367,12402,1},{1370,12405,1}, {1370,12408,1},{1377,12412,1},{1392,12413,1},{1398,12412,1},{1402,12413,1}, {1407,12413,1},{1407,12418,1},{1410,12420,1},{1405,12423,1},{1258,12327,129}, {1255,12337,1},{1253,12333,1},{1250,12335,1},{1247,12332,1},{1243,12332,1}, {1243,12333,1},{1247,12335,1},{1247,12337,1},{1250,12337,1},{1252,12342,1}, {1245,12350,1},{1245,12355,1},{1243,12357,1},{1238,12360,1},{1237,12358,1}, {1235,12358,1},{1235,12362,1},{1237,12362,1},{1235,12365,1},{1233,12370,1}, {1218,12378,1},{1218,12380,1},{1222,12378,1},{1223,12378,1},{1223,12382,1}, {1220,12385,1},{1220,12387,1},{1220,12388,1},{1197,12405,1},{1195,12405,1}, {1197,12403,1},{1200,12400,1},{1197,12402,1},{1195,12400,1},{1193,12403,1}, {1185,12407,1},{1180,12405,1},{1173,12407,1},{1172,12407,1},{1173,12405,1}, {1180,12400,1},{1187,12392,1},{1187,12388,1},{1192,12385,1},{1190,12383,1}, {1192,12380,1},{1192,12373,1},{1195,12372,1},{1198,12375,1},{1200,12373,1}, {1200,12372,1},{1200,12370,1},{1205,12365,1},{1208,12367,1},{1207,12360,1}, {1210,12360,1},{1215,12358,1},{1220,12353,1},{1220,12350,1},{1220,12343,1}, {1210,12337,1},{1208,12333,1},{1203,12330,1},{1197,12323,1},{1197,12320,1}, {1192,12318,1},{1192,12315,1},{1195,12315,1},{1198,12317,1},{1202,12318,1}, {1213,12322,1},{1212,12323,1},{1213,12323,1},{1215,12325,1},{1217,12327,1}, {1220,12327,1},{1222,12330,1},{1223,12328,1},{1223,12327,1},{1223,12322,1}, {1227,12322,1},{1232,12325,1},{1238,12327,1},{1240,12328,1},{1243,12328,1}, {1245,12323,1},{1258,12323,1},{1258,12327,1},{1352,12037,129},{1352,12045,1}, {1350,12047,1},{1352,12057,1},{1348,12062,1},{1348,12072,1},{1347,12075,1}, {1352,12092,1},{1350,12093,1},{1352,12095,1},{1352,12097,1},{1353,12095,1}, {1352,12098,1},{1350,12095,1},{1343,12102,1},{1340,12105,1},{1342,12112,1}, {1340,12113,1},{1337,12112,1},{1342,12113,1},{1343,12120,1},{1332,12133,1}, {1325,12138,1},{1322,12143,1},{1313,12143,1},{1313,12152,1},{1312,12155,1}, {1308,12155,1},{1303,12148,1},{1293,12150,1},{1287,12148,1},{1280,12148,1}, {1275,12148,1},{1270,12152,1},{1262,12155,1},{1258,12152,1},{1253,12148,1}, {1252,12143,1},{1248,12143,1},{1247,12143,1},{1243,12142,1},{1235,12143,1}, {1237,12140,1},{1235,12138,1},{1228,12140,1},{1232,12135,1},{1228,12128,1}, {1225,12125,1},{1222,12123,1},{1225,12118,1},{1223,12112,1},{1227,12110,1}, {1233,12110,1},{1230,12112,1},{1230,12113,1},{1232,12113,1},{1232,12112,1}, {1235,12110,1},{1232,12108,1},{1242,12098,1},{1252,12092,1},{1258,12093,1}, {1262,12092,1},{1272,12085,1},{1272,12078,1},{1282,12078,1},{1283,12077,1}, {1290,12078,1},{1298,12075,1},{1313,12067,1},{1318,12063,1},{1320,12060,1}, {1322,12058,1},{1323,12055,1},{1322,12052,1},{1325,12052,1},{1328,12048,1}, {1340,12047,1},{1342,12043,1},{1342,12038,1},{1338,12038,1},{1338,12037,1}, {1338,12033,1},{1343,12030,1},{1348,12032,1},{1352,12038,1},{1258,12430,129}, {1253,12437,1},{1255,12440,1},{1253,12445,1},{1253,12457,1},{1250,12465,1}, {1252,12475,1},{1253,12482,1},{1253,12487,1},{1255,12490,1},{1258,12488,1}, {1255,12493,1},{1258,12497,1},{1255,12498,1},{1255,12502,1},{1252,12503,1}, {1255,12508,1},{1258,12510,1},{1257,12513,1},{1257,12517,1},{1250,12527,1}, {1247,12528,1},{1245,12532,1},{1242,12532,1},{1240,12535,1},{1237,12530,1}, {1233,12530,1},{1232,12532,1},{1230,12532,1},{1232,12535,1},{1228,12535,1}, {1230,12538,1},{1228,12538,1},{1228,12543,1},{1225,12548,1},{1223,12548,1}, {1223,12550,1},{1218,12553,1},{1217,12553,1},{1217,12548,1},{1215,12548,1}, {1215,12550,1},{1213,12547,1},{1212,12545,1},{1210,12547,1},{1210,12550,1}, {1208,12550,1},{1205,12552,1},{1195,12545,1},{1190,12543,1},{1183,12547,1}, {1178,12548,1},{1175,12543,1},{1175,12548,1},{1168,12550,1},{1165,12547,1}, {1165,12548,1},{1160,12547,1},{1158,12550,1},{1153,12550,1},{1148,12553,1}, {1145,12552,1},{1145,12555,1},{1142,12555,1},{1140,12560,1},{1135,12563,1}, {1130,12562,1},{1125,12555,1},{1120,12555,1},{1118,12558,1},{1120,12562,1}, {1123,12562,1},{1120,12570,1},{1115,12572,1},{1105,12578,1},{1103,12577,1}, {1103,12572,1},{1107,12572,1},{1108,12570,1},{1112,12572,1},{1113,12567,1}, {1112,12560,1},{1113,12558,1},{1115,12557,1},{1113,12553,1},{1108,12553,1}, {1113,12547,1},{1108,12542,1},{1112,12542,1},{1110,12540,1},{1112,12537,1}, {1113,12535,1},{1115,12532,1},{1112,12527,1},{1110,12525,1},{1108,12523,1}, {1112,12522,1},{1122,12520,1},{1127,12517,1},{1128,12507,1},{1128,12500,1}, {1132,12498,1},{1135,12500,1},{1142,12500,1},{1145,12497,1},{1147,12493,1}, {1150,12492,1},{1147,12488,1},{1147,12485,1},{1150,12483,1},{1153,12487,1}, {1153,12490,1},{1157,12490,1},{1157,12495,1},{1158,12497,1},{1162,12500,1}, {1167,12500,1},{1172,12503,1},{1172,12505,1},{1175,12505,1},{1177,12500,1}, {1173,12493,1},{1175,12490,1},{1183,12485,1},{1185,12478,1},{1187,12480,1}, {1188,12480,1},{1190,12480,1},{1188,12482,1},{1192,12482,1},{1190,12475,1}, {1192,12477,1},{1193,12473,1},{1197,12473,1},{1203,12467,1},{1205,12460,1}, {1205,12455,1},{1210,12448,1},{1215,12445,1},{1217,12443,1},{1218,12440,1}, {1230,12435,1},{1237,12435,1},{1237,12433,1},{1243,12432,1},{1247,12430,1}, {1250,12430,1},{1253,12428,1},{1255,12428,1},{1258,12430,1},{1153,12435,129}, {1147,12442,1},{1138,12448,1},{1145,12448,1},{1142,12453,1},{1133,12457,1}, {1130,12460,1},{1132,12473,1},{1137,12480,1},{1143,12483,1},{1142,12488,1}, {1143,12490,1},{1142,12492,1},{1142,12495,1},{1138,12498,1},{1130,12497,1}, {1125,12498,1},{1125,12502,1},{1122,12502,1},{1125,12503,1},{1117,12503,1}, {1103,12505,1},{1097,12505,1},{1087,12502,1},{1075,12502,1},{1072,12505,1}, {1070,12512,1},{1065,12513,1},{1058,12520,1},{1053,12518,1},{1048,12520,1}, {1043,12520,1},{1038,12523,1},{1037,12527,1},{1028,12528,1},{1025,12523,1}, {1028,12513,1},{1018,12513,1},{1023,12508,1},{1037,12502,1},{1037,12498,1}, {1028,12498,1},{1022,12500,1},{1010,12503,1},{1002,12503,1},{1008,12495,1}, {1010,12492,1},{1013,12488,1},{1013,12482,1},{1017,12477,1},{1020,12477,1}, {1028,12480,1},{1035,12478,1},{1042,12473,1},{1048,12473,1},{1053,12477,1}, {1060,12477,1},{1067,12480,1},{1080,12478,1},{1087,12472,1},{1093,12470,1}, {1100,12462,1},{1100,12455,1},{1097,12455,1},{1092,12455,1},{1087,12452,1}, {1087,12450,1},{1090,12447,1},{1090,12445,1},{1093,12443,1},{1092,12440,1}, {1098,12442,1},{1102,12442,1},{1103,12440,1},{1107,12438,1},{1113,12442,1}, {1122,12440,1},{1125,12440,1},{1127,12440,1},{1130,12440,1},{1132,12435,1}, {1135,12435,1},{1137,12437,1},{1138,12433,1},{1140,12435,1},{1142,12433,1}, {1150,12430,1},{1153,12430,1},{1155,12432,1},{1153,12435,1},{980,12545,129}, {975,12558,1},{963,12562,1},{960,12565,1},{958,12570,1},{957,12572,1},{957,12575,1}, {955,12578,1},{952,12588,1},{948,12590,1},{950,12593,1},{945,12595,1},{948,12597,1}, {943,12597,1},{942,12592,1},{940,12590,1},{937,12595,1},{940,12600,1},{937,12598,1}, {930,12600,1},{923,12607,1},{925,12610,1},{930,12620,1},{930,12622,1},{920,12618,1}, {908,12618,1},{907,12622,1},{903,12623,1},{895,12632,1},{883,12635,1},{877,12632,1}, {875,12627,1},{873,12625,1},{873,12623,1},{872,12623,1},{868,12627,1},{868,12620,1}, {865,12613,1},{860,12610,1},{852,12617,1},{852,12623,1},{855,12622,1},{855,12627,1}, {852,12635,1},{853,12637,1},{850,12640,1},{847,12640,1},{845,12637,1},{842,12637,1}, {842,12638,1},{837,12637,1},{835,12633,1},{832,12635,1},{828,12640,1},{820,12633,1}, {818,12637,1},{820,12642,1},{823,12645,1},{820,12647,1},{812,12645,1},{810,12647,1}, {808,12645,1},{803,12643,1},{800,12643,1},{797,12645,1},{792,12638,1},{788,12638,1}, {783,12640,1},{780,12643,1},{780,12645,1},{773,12650,1},{772,12658,1},{762,12657,1}, {758,12658,1},{747,12662,1},{745,12660,1},{742,12657,1},{738,12658,1},{730,12657,1}, {727,12662,1},{720,12658,1},{718,12655,1},{712,12653,1},{708,12648,1},{703,12647,1}, {698,12647,1},{700,12635,1},{698,12633,1},{693,12632,1},{692,12630,1},{688,12632,1}, {683,12635,1},{678,12633,1},{680,12630,1},{685,12628,1},{693,12623,1},{693,12620,1}, {692,12618,1},{688,12618,1},{690,12617,1},{683,12618,1},{675,12625,1},{667,12623,1}, {650,12622,1},{645,12622,1},{640,12620,1},{627,12620,1},{628,12618,1},{637,12617,1}, {638,12613,1},{643,12613,1},{652,12610,1},{665,12608,1},{673,12610,1},{683,12608,1}, {688,12600,1},{693,12598,1},{702,12598,1},{712,12588,1},{715,12590,1},{722,12585,1}, {735,12585,1},{735,12582,1},{735,12580,1},{728,12568,1},{725,12567,1},{720,12565,1}, {712,12565,1},{705,12560,1},{703,12557,1},{703,12555,1},{698,12548,1},{692,12548,1}, {678,12540,1},{668,12538,1},{660,12540,1},{658,12543,1},{660,12543,1},{662,12543,1}, {660,12547,1},{652,12552,1},{652,12557,1},{650,12558,1},{643,12558,1},{635,12563,1}, {630,12565,1},{623,12567,1},{610,12572,1},{593,12567,1},{573,12550,1},{558,12540,1}, {557,12538,1},{557,12530,1},{563,12530,1},{572,12528,1},{573,12523,1},{577,12522,1}, {578,12518,1},{582,12518,1},{583,12520,1},{588,12522,1},{592,12525,1},{598,12528,1}, {607,12527,1},{610,12525,1},{610,12520,1},{610,12517,1},{610,12515,1},{588,12508,1}, {585,12507,1},{587,12502,1},{587,12495,1},{593,12478,1},{593,12473,1},{598,12465,1}, {598,12460,1},{602,12458,1},{608,12445,1},{620,12422,1},{623,12418,1},{628,12418,1}, {633,12412,1},{640,12408,1},{640,12407,1},{645,12403,1},{653,12403,1},{655,12405,1}, {658,12405,1},{665,12405,1},{673,12403,1},{678,12403,1},{680,12403,1},{678,12400,1}, {682,12397,1},{687,12397,1},{695,12397,1},{712,12403,1},{718,12415,1},{728,12422,1}, {735,12422,1},{740,12423,1},{742,12422,1},{740,12418,1},{745,12415,1},{755,12410,1}, {762,12405,1},{763,12398,1},{768,12395,1},{770,12378,1},{773,12375,1},{778,12375,1}, {782,12368,1},{782,12363,1},{785,12358,1},{780,12345,1},{777,12345,1},{772,12350,1}, {768,12350,1},{763,12345,1},{762,12340,1},{757,12340,1},{758,12337,1},{757,12335,1}, {752,12338,1},{748,12340,1},{747,12343,1},{745,12345,1},{738,12345,1},{737,12343,1}, {740,12338,1},{742,12333,1},{748,12328,1},{752,12328,1},{752,12323,1},{747,12318,1}, {753,12312,1},{757,12312,1},{758,12317,1},{762,12318,1},{767,12313,1},{775,12312,1}, {765,12305,1},{762,12305,1},{760,12303,1},{757,12303,1},{752,12302,1},{747,12302,1}, {748,12295,1},{755,12292,1},{750,12287,1},{747,12288,1},{745,12285,1},{745,12282,1}, {748,12282,1},{748,12278,1},{753,12280,1},{752,12282,1},{753,12283,1},{762,12280,1}, {775,12282,1},{775,12273,1},{778,12270,1},{778,12265,1},{773,12257,1},{770,12253,1}, {768,12248,1},{758,12243,1},{757,12243,1},{758,12248,1},{755,12248,1},{750,12245,1}, {753,12245,1},{747,12235,1},{743,12235,1},{738,12238,1},{732,12233,1},{732,12230,1}, {730,12228,1},{718,12225,1},{710,12225,1},{705,12220,1},{697,12217,1},{690,12213,1}, {688,12210,1},{690,12207,1},{697,12195,1},{703,12190,1},{710,12188,1},{717,12190,1}, {723,12195,1},{730,12205,1},{735,12203,1},{753,12207,1},{755,12212,1},{758,12215,1}, {760,12212,1},{768,12212,1},{775,12210,1},{797,12223,1},{805,12237,1},{807,12247,1}, {807,12248,1},{807,12250,1},{808,12257,1},{810,12263,1},{817,12268,1},{812,12270,1}, {812,12272,1},{812,12283,1},{815,12293,1},{822,12302,1},{825,12300,1},{827,12297,1}, {830,12295,1},{833,12300,1},{840,12298,1},{848,12303,1},{852,12307,1},{853,12320,1}, {852,12323,1},{853,12332,1},{857,12335,1},{862,12335,1},{863,12342,1},{865,12343,1}, {870,12340,1},{872,12340,1},{872,12347,1},{868,12347,1},{870,12352,1},{865,12350,1}, {862,12352,1},{862,12357,1},{858,12358,1},{865,12362,1},{867,12360,1},{867,12362,1}, {867,12363,1},{865,12363,1},{863,12367,1},{863,12372,1},{860,12373,1},{860,12377,1}, {857,12377,1},{853,12380,1},{850,12380,1},{847,12383,1},{843,12385,1},{817,12388,1}, {807,12378,1},{803,12368,1},{798,12367,1},{797,12368,1},{800,12375,1},{810,12387,1}, {812,12392,1},{817,12397,1},{818,12405,1},{818,12417,1},{820,12423,1},{827,12427,1}, {832,12425,1},{837,12427,1},{838,12428,1},{853,12432,1},{862,12443,1},{862,12448,1}, {858,12447,1},{857,12452,1},{852,12458,1},{852,12465,1},{845,12463,1},{843,12463,1}, {848,12467,1},{848,12472,1},{850,12475,1},{855,12475,1},{860,12477,1},{867,12475,1}, {870,12475,1},{873,12478,1},{877,12478,1},{880,12478,1},{897,12478,1},{898,12478,1}, {902,12482,1},{900,12490,1},{895,12495,1},{892,12503,1},{882,12510,1},{885,12517,1}, {887,12518,1},{893,12520,1},{902,12517,1},{907,12520,1},{908,12522,1},{902,12527,1}, {900,12530,1},{897,12543,1},{900,12548,1},{900,12552,1},{907,12553,1},{920,12553,1}, {923,12552,1},{928,12552,1},{942,12547,1},{945,12547,1},{965,12540,1},{972,12540,1}, {982,12545,1},{672,12208,129},{672,12210,1},{672,12215,1},{667,12217,1}, {667,12223,1},{663,12227,1},{662,12233,1},{658,12230,1},{657,12223,1},{652,12220,1}, {647,12220,1},{645,12218,1},{640,12202,1},{640,12197,1},{645,12193,1},{650,12188,1}, {657,12188,1},{658,12183,1},{660,12180,1},{665,12182,1},{667,12183,1},{667,12188,1}, {667,12193,1},{673,12202,1},{673,12208,1},{672,12208,1},{1010,12443,129}, {1005,12450,1},{1007,12452,1},{1005,12453,1},{1002,12458,1},{997,12458,1}, {997,12457,1},{993,12457,1},{993,12455,1},{988,12458,1},{985,12455,1},{980,12462,1}, {977,12462,1},{973,12458,1},{973,12453,1},{977,12450,1},{972,12443,1},{965,12442,1}, {963,12437,1},{960,12427,1},{962,12420,1},{960,12405,1},{962,12390,1},{967,12387,1}, {972,12388,1},{973,12387,1},{973,12382,1},{975,12380,1},{978,12380,1},{983,12382,1}, {992,12388,1},{992,12392,1},{993,12393,1},{998,12405,1},{1007,12408,1}, {1007,12412,1},{1008,12412,1},{1013,12417,1},{1015,12423,1},{1015,12430,1}, {1017,12430,1},{1015,12435,1},{1013,12435,1},{1010,12437,1},{1015,12438,1}, {1013,12440,1},{1010,12442,1},{1010,12445,1},{1122,12407,129},{1113,12403,1}, {1108,12400,1},{1105,12402,1},{1105,12405,1},{1097,12407,1},{1093,12405,1}, {1088,12407,1},{1075,12402,1},{1060,12405,1},{1057,12403,1},{1055,12405,1}, {1048,12405,1},{1040,12400,1},{1038,12402,1},{1035,12398,1},{1037,12398,1}, {1033,12397,1},{1028,12390,1},{1023,12387,1},{1022,12378,1},{1018,12377,1}, {1013,12372,1},{1008,12370,1},{1008,12367,1},{1002,12363,1},{988,12363,1}, {985,12360,1},{980,12355,1},{957,12348,1},{940,12335,1},{942,12332,1},{950,12332,1}, {978,12337,1},{988,12342,1},{992,12340,1},{995,12338,1},{998,12338,1},{997,12342,1}, {998,12342,1},{1007,12343,1},{1013,12352,1},{1018,12353,1},{1027,12360,1}, {1032,12360,1},{1048,12372,1},{1055,12372,1},{1060,12375,1},{1063,12377,1}, {1072,12382,1},{1073,12385,1},{1098,12393,1},{1102,12392,1},{1105,12393,1}, {1110,12395,1},{1108,12397,1},{1115,12395,1},{1118,12397,1},{1123,12400,1}, {1127,12402,1},{1127,12407,1},{1125,12408,1},{1122,12407,1},{1088,12353,129}, {1083,12355,1},{1083,12358,1},{1078,12357,1},{1070,12352,1},{1052,12348,1}, {1043,12338,1},{1033,12335,1},{1025,12333,1},{1018,12330,1},{1010,12330,1}, {997,12322,1},{993,12320,1},{992,12317,1},{985,12315,1},{963,12317,1},{963,12313,1}, {958,12318,1},{955,12317,1},{958,12317,1},{958,12315,1},{955,12313,1},{953,12320,1}, {948,12320,1},{945,12323,1},{932,12333,1},{920,12330,1},{910,12322,1},{907,12317,1}, {905,12315,1},{907,12310,1},{905,12305,1},{903,12303,1},{907,12297,1},{910,12295,1}, {920,12290,1},{930,12288,1},{933,12285,1},{937,12280,1},{937,12272,1},{943,12260,1}, {955,12252,1},{957,12248,1},{962,12248,1},{963,12247,1},{965,12247,1},{967,12245,1}, {967,12242,1},{970,12243,1},{970,12240,1},{982,12242,1},{983,12240,1},{997,12247,1}, {998,12255,1},{997,12262,1},{997,12268,1},{1000,12273,1},{1007,12280,1}, {1007,12287,1},{1012,12287,1},{1022,12285,1},{1037,12287,1},{1052,12282,1}, {1053,12283,1},{1055,12288,1},{1062,12293,1},{1072,12297,1},{1078,12298,1}, {1083,12295,1},{1088,12298,1},{1092,12300,1},{1092,12308,1},{1098,12320,1}, {1100,12323,1},{1095,12333,1},{1095,12340,1},{1092,12340,1},{1093,12343,1}, {1093,12347,1},{1092,12350,1},{1093,12352,1},{1088,12353,1},{1190,12203,129}, {1182,12210,1},{1180,12222,1},{1173,12233,1},{1173,12238,1},{1168,12242,1}, {1158,12252,1},{1157,12258,1},{1152,12260,1},{1150,12262,1},{1153,12265,1}, {1155,12265,1},{1157,12265,1},{1153,12270,1},{1157,12268,1},{1157,12272,1}, {1160,12273,1},{1162,12273,1},{1160,12283,1},{1158,12287,1},{1155,12287,1}, {1152,12293,1},{1147,12287,1},{1143,12290,1},{1143,12292,1},{1147,12295,1}, {1148,12300,1},{1153,12310,1},{1160,12317,1},{1152,12317,1},{1152,12313,1}, {1150,12312,1},{1148,12315,1},{1147,12315,1},{1147,12317,1},{1143,12315,1}, {1138,12317,1},{1135,12315,1},{1133,12312,1},{1132,12313,1},{1123,12312,1}, {1120,12313,1},{1118,12313,1},{1117,12312,1},{1115,12310,1},{1117,12308,1}, {1117,12305,1},{1108,12302,1},{1107,12298,1},{1105,12298,1},{1103,12295,1}, {1107,12293,1},{1102,12292,1},{1103,12290,1},{1102,12287,1},{1102,12285,1}, {1098,12280,1},{1095,12278,1},{1087,12280,1},{1080,12273,1},{1078,12263,1}, {1075,12260,1},{1072,12260,1},{1072,12258,1},{1070,12260,1},{1068,12253,1}, {1067,12237,1},{1063,12222,1},{1058,12217,1},{1058,12212,1},{1048,12205,1}, {1045,12202,1},{1042,12198,1},{1043,12193,1},{1050,12193,1},{1057,12197,1}, {1067,12198,1},{1072,12197,1},{1075,12193,1},{1077,12193,1},{1092,12198,1}, {1103,12205,1},{1118,12205,1},{1125,12205,1},{1130,12203,1},{1135,12207,1}, {1147,12207,1},{1148,12208,1},{1165,12210,1},{1170,12210,1},{1173,12208,1}, {1173,12202,1},{1177,12195,1},{1175,12187,1},{1177,12185,1},{1182,12188,1}, {1190,12190,1},{1193,12197,1},{1190,12203,1},{1232,11990,129},{1232,11992,1}, {1227,11993,1},{1225,12002,1},{1220,12008,1},{1220,12010,1},{1220,12012,1}, {1217,12008,1},{1217,12012,1},{1212,12018,1},{1212,12022,1},{1222,12022,1}, {1220,12025,1},{1213,12025,1},{1213,12028,1},{1208,12033,1},{1205,12035,1}, {1203,12032,1},{1202,12032,1},{1203,12033,1},{1202,12035,1},{1200,12035,1}, {1198,12030,1},{1200,12028,1},{1198,12025,1},{1200,12018,1},{1202,12018,1}, {1202,12013,1},{1200,12013,1},{1197,12013,1},{1197,12010,1},{1200,12008,1}, {1200,12003,1},{1200,12002,1},{1202,11998,1},{1205,11997,1},{1205,11995,1}, {1210,11993,1},{1213,11993,1},{1220,11990,1},{1220,11988,1},{1217,11985,1}, {1222,11987,1},{1225,11987,1},{1227,11992,1},{1227,11987,1},{1230,11987,1}, {1232,11988,1},{1232,11992,1},{1142,11952,129},{1133,11952,1},{1132,11953,1}, {1133,11955,1},{1130,11957,1},{1118,11955,1},{1113,11952,1},{1110,11952,1}, {1107,11953,1},{1108,11955,1},{1102,11957,1},{1100,11957,1},{1100,11950,1}, {1087,11950,1},{1082,11953,1},{1083,11960,1},{1072,11960,1},{1067,11958,1}, {1067,11963,1},{1068,11965,1},{1065,11967,1},{1065,11963,1},{1062,11965,1}, {1055,11967,1},{1053,11972,1},{1050,11972,1},{1048,11968,1},{1040,11960,1}, {1037,11957,1},{1037,11952,1},{1037,11945,1},{1033,11938,1},{1030,11932,1}, {1020,11925,1},{1008,11922,1},{1003,11918,1},{1000,11903,1},{998,11900,1}, {997,11893,1},{998,11890,1},{993,11882,1},{995,11878,1},{992,11878,1},{992,11875,1}, {985,11875,1},{978,11878,1},{973,11878,1},{973,11873,1},{978,11873,1},{978,11870,1}, {977,11870,1},{972,11870,1},{970,11872,1},{968,11877,1},{967,11877,1},{967,11873,1}, {965,11873,1},{958,11870,1},{957,11867,1},{952,11865,1},{940,11855,1},{937,11855,1}, {930,11850,1},{928,11843,1},{918,11835,1},{918,11830,1},{915,11825,1},{913,11813,1}, {905,11812,1},{903,11810,1},{902,11808,1},{888,11802,1},{882,11788,1},{878,11785,1}, {877,11783,1},{868,11775,1},{868,11770,1},{865,11765,1},{867,11758,1},{863,11755,1}, {857,11755,1},{853,11752,1},{850,11750,1},{852,11747,1},{848,11740,1},{850,11738,1}, {848,11737,1},{842,11727,1},{837,11722,1},{833,11720,1},{833,11718,1},{838,11718,1}, {843,11722,1},{850,11722,1},{858,11727,1},{860,11727,1},{860,11728,1},{865,11730,1}, {867,11733,1},{870,11735,1},{870,11733,1},{873,11737,1},{877,11743,1},{892,11753,1}, {898,11763,1},{905,11765,1},{908,11770,1},{907,11772,1},{907,11777,1},{913,11778,1}, {915,11778,1},{920,11788,1},{925,11790,1},{925,11798,1},{923,11800,1},{923,11802,1}, {927,11803,1},{933,11813,1},{938,11813,1},{942,11818,1},{948,11822,1},{953,11828,1}, {958,11833,1},{965,11835,1},{967,11842,1},{973,11847,1},{975,11850,1},{978,11853,1}, {988,11862,1},{992,11862,1},{993,11865,1},{997,11867,1},{1000,11865,1}, {1003,11870,1},{1003,11872,1},{1012,11877,1},{1008,11878,1},{1007,11877,1}, {1005,11880,1},{1010,11883,1},{1012,11882,1},{1018,11882,1},{1018,11885,1}, {1022,11888,1},{1020,11893,1},{1023,11895,1},{1028,11895,1},{1032,11902,1}, {1033,11903,1},{1035,11903,1},{1033,11898,1},{1035,11897,1},{1040,11900,1}, {1040,11908,1},{1042,11908,1},{1042,11910,1},{1045,11908,1},{1047,11908,1}, {1048,11912,1},{1040,11912,1},{1038,11913,1},{1040,11917,1},{1048,11923,1}, {1050,11927,1},{1052,11927,1},{1055,11923,1},{1057,11930,1},{1063,11933,1}, {1073,11935,1},{1077,11932,1},{1075,11928,1},{1077,11927,1},{1082,11927,1}, {1085,11923,1},{1090,11927,1},{1090,11923,1},{1095,11922,1},{1095,11925,1}, {1092,11925,1},{1093,11927,1},{1092,11927,1},{1093,11928,1},{1090,11928,1}, {1088,11928,1},{1087,11927,1},{1087,11932,1},{1085,11930,1},{1082,11933,1}, {1082,11935,1},{1080,11935,1},{1078,11938,1},{1077,11940,1},{1077,11943,1}, {1073,11943,1},{1073,11947,1},{1080,11943,1},{1083,11945,1},{1087,11942,1}, {1087,11937,1},{1090,11935,1},{1093,11937,1},{1093,11932,1},{1098,11932,1}, {1102,11933,1},{1100,11937,1},{1107,11933,1},{1110,11933,1},{1105,11937,1}, {1105,11942,1},{1113,11943,1},{1113,11940,1},{1118,11938,1},{1118,11940,1}, {1123,11943,1},{1130,11942,1},{1133,11943,1},{1133,11947,1},{1142,11948,1}, {1140,11952,1},{63863,13927,129},{63863,13923,1},{63866,13923,1},{63866,13920,1}, {63871,13915,1},{63874,13917,1},{63878,13920,1},{63883,13922,1},{63888,13925,1}, {63889,13932,1},{63891,13938,1},{63891,13943,1},{63894,13948,1},{63896,13957,1}, {63889,13965,1},{63886,13967,1},{63883,13957,1},{63888,13955,1},{63886,13948,1}, {63884,13947,1},{63883,13950,1},{63881,13947,1},{63878,13947,1},{63871,13943,1}, {63871,13942,1},{63874,13940,1},{63871,13938,1},{63868,13937,1},{63863,13930,1}, {63863,13925,1},{62959,15303,129},{62963,15298,1},{62971,15297,1},{62973,15293,1}, {62978,15293,1},{62999,15305,1},{63006,15303,1},{63014,15307,1},{63016,15302,1}, {63018,15300,1},{63019,15302,1},{63024,15308,1},{63036,15323,1},{63046,15325,1}, {63048,15322,1},{63054,15320,1},{63056,15315,1},{63058,15313,1},{63066,15322,1}, {63066,15327,1},{63063,15327,1},{63048,15328,1},{63043,15330,1},{63041,15335,1}, {63036,15335,1},{63023,15332,1},{62976,15308,1},{62959,15308,1},{62959,15303,1}, {64343,13093,129},{64346,13090,1},{64354,13070,1},{64361,13067,1},{64371,13048,1}, {64378,13048,1},{64381,13045,1},{64391,13042,1},{64403,13040,1},{64406,13037,1}, {64416,13038,1},{64414,13043,1},{64406,13048,1},{64403,13060,1},{64401,13060,1}, {64396,13058,1},{64394,13058,1},{64394,13065,1},{64399,13065,1},{64399,13067,1}, {64384,13072,1},{64384,13075,1},{64383,13080,1},{64389,13077,1},{64394,13072,1}, {64398,13087,1},{64401,13090,1},{64401,13095,1},{64396,13098,1},{64396,13105,1}, {64399,13107,1},{64401,13110,1},{64406,13113,1},{64406,13117,1},{64399,13118,1}, {64399,13122,1},{64401,13122,1},{64409,13122,1},{64413,13127,1},{64409,13132,1}, {64406,13130,1},{64408,13135,1},{64406,13137,1},{64403,13140,1},{64406,13142,1}, {64406,13143,1},{64401,13143,1},{64401,13147,1},{64398,13147,1},{64394,13148,1}, {64394,13153,1},{64391,13157,1},{64386,13155,1},{64386,13150,1},{64383,13148,1}, {64379,13147,1},{64373,13147,1},{64374,13140,1},{64373,13138,1},{64359,13128,1}, {64359,13125,1},{64356,13122,1},{64351,13110,1},{64339,13098,1},{64341,13095,1}, {64343,13093,1},{64351,13060,129},{64349,13050,1},{64351,13045,1},{64354,13042,1}, {64356,13033,1},{64349,13008,1},{64351,13005,1},{64354,13003,1},{64359,13007,1}, {64366,13008,1},{64366,13010,1},{64363,13013,1},{64366,13018,1},{64366,13023,1}, {64368,13023,1},{64369,13020,1},{64383,13020,1},{64386,13015,1},{64391,13018,1}, {64393,13022,1},{64399,13027,1},{64399,13033,1},{64389,13038,1},{64381,13038,1}, {64379,13040,1},{64376,13043,1},{64366,13047,1},{64364,13055,1},{64358,13065,1}, {64353,13063,1},{64351,13060,1},{64106,13685,129},{64108,13675,1},{64108,13670,1}, {64104,13667,1},{64104,13663,1},{64106,13662,1},{64114,13640,1},{64111,13632,1}, {64113,13632,1},{64119,13640,1},{64123,13642,1},{64133,13638,1},{64151,13640,1}, {64151,13647,1},{64151,13648,1},{64154,13653,1},{64153,13658,1},{64156,13663,1}, {64158,13660,1},{64159,13660,1},{64163,13658,1},{64164,13658,1},{64164,13667,1}, {64168,13670,1},{64168,13672,1},{64164,13672,1},{64159,13668,1},{64156,13672,1}, {64154,13670,1},{64149,13672,1},{64148,13682,1},{64149,13682,1},{64153,13683,1}, {64153,13680,1},{64158,13685,1},{64156,13690,1},{64153,13692,1},{64149,13688,1}, {64143,13685,1},{64143,13678,1},{64139,13675,1},{64139,13672,1},{64138,13672,1}, {64136,13672,1},{64136,13675,1},{64129,13678,1},{64126,13675,1},{64126,13673,1}, {64123,13670,1},{64116,13672,1},{64113,13675,1},{64116,13678,1},{64118,13677,1}, {64119,13678,1},{64113,13685,1},{64113,13687,1},{64118,13692,1},{64118,13695,1}, {64113,13693,1},{64104,13693,1},{64106,13690,1},{64103,13687,1},{64106,13685,1}, {64876,15648,129},{64874,15653,1},{64871,15658,1},{64871,15665,1},{64866,15670,1}, {64863,15670,1},{64859,15675,1},{64851,15690,1},{64849,15698,1},{64846,15702,1}, {64846,15705,1},{64838,15712,1},{64824,15715,1},{64818,15718,1},{64819,15722,1}, {64818,15722,1},{64814,15725,1},{64816,15728,1},{64809,15730,1},{64808,15732,1}, {64806,15737,1},{64803,15738,1},{64806,15738,1},{64806,15740,1},{64803,15743,1}, {64806,15750,1},{64804,15753,1},{64801,15753,1},{64798,15752,1},{64798,15748,1}, {64793,15745,1},{64794,15745,1},{64794,15742,1},{64796,15732,1},{64803,15732,1}, {64799,15730,1},{64801,15727,1},{64799,15727,1},{64801,15725,1},{64803,15715,1}, {64801,15710,1},{64806,15710,1},{64809,15707,1},{64808,15702,1},{64811,15702,1}, {64814,15693,1},{64818,15688,1},{64846,15668,1},{64853,15657,1},{64863,15645,1}, {64868,15645,1},{64871,15643,1},{64876,15648,1},{64739,15752,129},{64734,15760,1}, {64719,15762,1},{64716,15763,1},{64713,15763,1},{64714,15772,1},{64711,15777,1}, {64711,15778,1},{64708,15778,1},{64703,15783,1},{64698,15783,1},{64696,15787,1}, {64689,15788,1},{64688,15790,1},{64683,15787,1},{64678,15788,1},{64681,15780,1}, {64679,15780,1},{64678,15782,1},{64674,15782,1},{64676,15780,1},{64678,15778,1}, {64684,15773,1},{64684,15768,1},{64688,15762,1},{64696,15757,1},{64703,15757,1}, {64696,15758,1},{64696,15760,1},{64694,15762,1},{64698,15763,1},{64699,15760,1}, {64706,15758,1},{64711,15753,1},{64709,15750,1},{64711,15748,1},{64709,15748,1}, {64708,15737,1},{64709,15735,1},{64704,15733,1},{64703,15730,1},{64703,15727,1}, {64704,15725,1},{64704,15723,1},{64713,15722,1},{64716,15723,1},{64718,15728,1}, {64716,15732,1},{64723,15732,1},{64724,15733,1},{64733,15738,1},{64738,15743,1}, {64739,15748,1},{64739,15752,1},{64783,15847,129},{64781,15848,1},{64778,15860,1}, {64779,15863,1},{64774,15872,1},{64776,15875,1},{64773,15877,1},{64763,15887,1}, {64761,15892,1},{64756,15898,1},{64753,15897,1},{64751,15900,1},{64749,15907,1}, {64746,15908,1},{64744,15913,1},{64744,15920,1},{64743,15920,1},{64743,15923,1}, {64739,15925,1},{64741,15928,1},{64736,15930,1},{64738,15935,1},{64736,15942,1}, {64734,15942,1},{64733,15943,1},{64728,15950,1},{64723,15955,1},{64713,15973,1}, {64703,15985,1},{64698,15982,1},{64698,15977,1},{64696,15975,1},{64693,15978,1}, {64694,15982,1},{64688,15987,1},{64684,15987,1},{64681,15990,1},{64679,15990,1}, {64681,15982,1},{64686,15978,1},{64686,15977,1},{64688,15975,1},{64691,15972,1}, {64694,15970,1},{64699,15962,1},{64701,15957,1},{64708,15943,1},{64709,15933,1}, {64713,15932,1},{64714,15928,1},{64716,15928,1},{64716,15923,1},{64721,15918,1}, {64724,15912,1},{64724,15908,1},{64726,15908,1},{64728,15902,1},{64733,15897,1}, {64731,15895,1},{64734,15893,1},{64738,15885,1},{64743,15883,1},{64744,15877,1}, {64748,15877,1},{64748,15873,1},{64751,15872,1},{64756,15868,1},{64756,15865,1}, {64758,15865,1},{64759,15858,1},{64761,15857,1},{64769,15858,1},{64773,15853,1}, {64776,15852,1},{64779,15845,1},{64781,15843,1},{64783,15845,1},{64783,15847,1}, {64611,15970,129},{64608,15978,1},{64599,15987,1},{64594,15992,1},{64593,15993,1}, {64593,16002,1},{64594,16003,1},{64593,16013,1},{64594,16017,1},{64593,16022,1}, {64594,16028,1},{64593,16038,1},{64589,16042,1},{64588,16047,1},{64583,16050,1}, {64581,16057,1},{64576,16063,1},{64566,16067,1},{64566,16072,1},{64563,16078,1}, {64561,16078,1},{64559,16080,1},{64554,16080,1},{64551,16083,1},{64546,16078,1}, {64544,16068,1},{64543,16063,1},{64548,16048,1},{64546,16043,1},{64549,16042,1}, {64554,16032,1},{64554,16000,1},{64556,15998,1},{64556,15992,1},{64558,15988,1}, {64556,15983,1},{64561,15978,1},{64564,15972,1},{64571,15970,1},{64571,15967,1}, {64576,15967,1},{64579,15965,1},{64583,15960,1},{64584,15960,1},{64586,15962,1}, {64593,15960,1},{64596,15962,1},{64599,15960,1},{64604,15960,1},{64611,15970,1}, {64704,16072,129},{64704,16075,1},{64699,16082,1},{64694,16082,1},{64689,16087,1}, {64686,16090,1},{64681,16093,1},{64678,16098,1},{64673,16102,1},{64669,16100,1}, {64668,16095,1},{64663,16095,1},{64659,16093,1},{64654,16093,1},{64651,16098,1}, {64653,16102,1},{64648,16107,1},{64646,16105,1},{64644,16107,1},{64644,16110,1}, {64639,16117,1},{64638,16117,1},{64636,16113,1},{64633,16118,1},{64628,16120,1}, {64626,16122,1},{64624,16123,1},{64621,16120,1},{64621,16125,1},{64618,16127,1}, {64616,16128,1},{64614,16125,1},{64611,16127,1},{64606,16127,1},{64608,16123,1}, {64601,16128,1},{64589,16135,1},{64588,16137,1},{64581,16138,1},{64573,16138,1}, {64578,16130,1},{64593,16122,1},{64596,16118,1},{64601,16112,1},{64604,16108,1}, {64604,16103,1},{64606,16103,1},{64609,16102,1},{64611,16097,1},{64614,16097,1}, {64618,16093,1},{64618,16088,1},{64624,16085,1},{64629,16082,1},{64641,16077,1}, {64646,16077,1},{64648,16075,1},{64656,16072,1},{64661,16068,1},{64668,16070,1}, {64674,16065,1},{64676,16065,1},{64679,16072,1},{64684,16072,1},{64693,16065,1}, {64694,16062,1},{64701,16057,1},{64703,16058,1},{64704,16062,1},{64699,16070,1}, {64699,16072,1},{64701,16072,1},{64704,16070,1},{64704,16072,1},{64516,16132,129}, {64514,16145,1},{64506,16158,1},{64499,16167,1},{64499,16168,1},{64496,16173,1}, {64494,16180,1},{64491,16183,1},{64493,16188,1},{64491,16193,1},{64491,16197,1}, {64488,16202,1},{64488,16207,1},{64491,16208,1},{64491,16212,1},{64481,16218,1}, {64479,16218,1},{64476,16222,1},{64469,16223,1},{64468,16228,1},{64459,16230,1}, {64458,16227,1},{64454,16225,1},{64453,16230,1},{64453,16238,1},{64451,16238,1}, {64451,16230,1},{64456,16220,1},{64453,16217,1},{64453,16210,1},{64459,16202,1}, {64458,16197,1},{64459,16192,1},{64459,16190,1},{64461,16187,1},{64463,16185,1}, {64461,16183,1},{64463,16182,1},{64464,16177,1},{64468,16175,1},{64468,16170,1}, {64471,16170,1},{64471,16167,1},{64474,16165,1},{64473,16162,1},{64476,16162,1}, {64476,16158,1},{64479,16158,1},{64479,16155,1},{64479,16152,1},{64486,16153,1}, {64489,16152,1},{64489,16148,1},{64493,16152,1},{64494,16148,1},{64499,16152,1}, {64501,16147,1},{64501,16142,1},{64503,16137,1},{64501,16135,1},{64503,16128,1}, {64514,16128,1},{64516,16132,1},{63466,16500,129},{63468,16497,1},{63468,16495,1}, {63471,16492,1},{63474,16485,1},{63479,16482,1},{63488,16473,1},{63496,16458,1}, {63499,16457,1},{63506,16450,1},{63513,16432,1},{63513,16430,1},{63511,16430,1}, {63503,16433,1},{63504,16430,1},{63508,16430,1},{63506,16425,1},{63511,16417,1}, {63519,16412,1},{63521,16408,1},{63528,16402,1},{63528,16400,1},{63524,16398,1}, {63524,16400,1},{63521,16400,1},{63523,16402,1},{63519,16405,1},{63516,16403,1}, {63513,16405,1},{63511,16405,1},{63513,16400,1},{63511,16398,1},{63506,16402,1}, {63508,16407,1},{63509,16407,1},{63509,16408,1},{63506,16408,1},{63504,16415,1}, {63501,16417,1},{63498,16417,1},{63496,16415,1},{63498,16412,1},{63496,16412,1}, {63493,16415,1},{63486,16417,1},{63479,16423,1},{63479,16427,1},{63478,16427,1}, {63478,16428,1},{63464,16435,1},{63463,16440,1},{63459,16440,1},{63459,16437,1}, {63451,16447,1},{63449,16450,1},{63446,16452,1},{63446,16457,1},{63444,16457,1}, {63443,16460,1},{63444,16462,1},{63443,16462,1},{63441,16465,1},{63439,16467,1}, {63438,16463,1},{63436,16468,1},{63434,16467,1},{63431,16470,1},{63428,16470,1}, {63428,16472,1},{63429,16472,1},{63431,16473,1},{63428,16475,1},{63429,16480,1}, {63428,16478,1},{63428,16480,1},{63424,16480,1},{63424,16482,1},{63423,16483,1}, {63416,16483,1},{63414,16485,1},{63413,16487,1},{63408,16492,1},{63406,16495,1}, {63401,16493,1},{63401,16498,1},{63406,16498,1},{63404,16502,1},{63401,16500,1}, {63401,16505,1},{63396,16503,1},{63398,16505,1},{63396,16507,1},{63399,16510,1}, {63398,16512,1},{63394,16512,1},{63391,16513,1},{63384,16523,1},{63384,16527,1}, {63381,16527,1},{63374,16542,1},{63374,16547,1},{63373,16545,1},{63373,16548,1}, {63371,16547,1},{63366,16552,1},{63364,16562,1},{63361,16565,1},{63363,16565,1}, {63363,16568,1},{63359,16568,1},{63361,16570,1},{63364,16573,1},{63361,16573,1}, {63358,16575,1},{63354,16577,1},{63356,16578,1},{63356,16580,1},{63354,16578,1}, {63351,16583,1},{63351,16580,1},{63349,16582,1},{63349,16588,1},{63346,16592,1}, {63343,16593,1},{63343,16597,1},{63339,16598,1},{63339,16602,1},{63343,16600,1}, {63341,16603,1},{63344,16603,1},{63346,16607,1},{63344,16608,1},{63341,16607,1}, {63339,16613,1},{63336,16613,1},{63333,16617,1},{63333,16612,1},{63331,16615,1}, {63328,16615,1},{63329,16612,1},{63326,16612,1},{63328,16615,1},{63326,16617,1}, {63323,16622,1},{63321,16622,1},{63319,16627,1},{63319,16628,1},{63321,16628,1}, {63321,16633,1},{63319,16632,1},{63316,16635,1},{63313,16633,1},{63316,16638,1}, {63318,16638,1},{63318,16643,1},{63316,16643,1},{63313,16645,1},{63313,16640,1}, {63311,16642,1},{63311,16645,1},{63304,16643,1},{63304,16647,1},{63308,16645,1}, {63308,16648,1},{63311,16650,1},{63313,16653,1},{63311,16657,1},{63309,16657,1}, {63306,16660,1},{63308,16663,1},{63303,16668,1},{63304,16670,1},{63301,16672,1}, {63301,16677,1},{63299,16673,1},{63298,16673,1},{63296,16678,1},{63298,16680,1}, {63298,16683,1},{63301,16682,1},{63306,16683,1},{63304,16685,1},{63303,16683,1}, {63301,16685,1},{63301,16687,1},{63303,16687,1},{63299,16690,1},{63298,16688,1}, {63299,16692,1},{63298,16692,1},{63296,16688,1},{63296,16692,1},{63299,16697,1}, {63301,16697,1},{63303,16698,1},{63303,16700,1},{63304,16702,1},{63308,16702,1}, {63311,16702,1},{63311,16703,1},{63313,16703,1},{63318,16697,1},{63319,16693,1}, {63321,16695,1},{63326,16695,1},{63333,16685,1},{63334,16677,1},{63336,16677,1}, {63338,16673,1},{63338,16668,1},{63341,16672,1},{63343,16667,1},{63341,16667,1}, {63343,16665,1},{63346,16662,1},{63348,16657,1},{63356,16650,1},{63358,16648,1}, {63359,16648,1},{63364,16642,1},{63366,16635,1},{63369,16633,1},{63369,16637,1}, {63374,16623,1},{63384,16612,1},{63383,16608,1},{63386,16607,1},{63388,16605,1}, {63389,16607,1},{63391,16602,1},{63394,16598,1},{63394,16595,1},{63386,16600,1}, {63386,16597,1},{63389,16592,1},{63389,16595,1},{63391,16595,1},{63399,16588,1}, {63396,16588,1},{63398,16587,1},{63398,16583,1},{63394,16585,1},{63396,16582,1}, {63399,16583,1},{63399,16580,1},{63406,16577,1},{63406,16572,1},{63408,16563,1}, {63413,16560,1},{63416,16555,1},{63414,16560,1},{63416,16560,1},{63418,16560,1}, {63418,16558,1},{63421,16557,1},{63421,16553,1},{63423,16555,1},{63423,16550,1}, {63431,16540,1},{63434,16540,1},{63441,16542,1},{63443,16533,1},{63448,16528,1}, {63449,16527,1},{63454,16527,1},{63458,16523,1},{63459,16522,1},{63463,16507,1}, {63466,16500,1},{63769,16853,129},{63771,16850,1},{63776,16850,1},{63783,16843,1}, {63781,16835,1},{63783,16832,1},{63781,16828,1},{63779,16828,1},{63778,16823,1}, {63774,16822,1},{63771,16818,1},{63764,16815,1},{63764,16817,1},{63761,16817,1}, {63766,16823,1},{63764,16828,1},{63763,16828,1},{63763,16830,1},{63761,16830,1}, {63759,16825,1},{63756,16825,1},{63759,16832,1},{63756,16830,1},{63758,16833,1}, {63754,16835,1},{63756,16837,1},{63753,16837,1},{63753,16838,1},{63754,16845,1}, {63754,16848,1},{63756,16853,1},{63763,16855,1},{63766,16858,1},{63768,16853,1}, {63769,16853,1},{64036,16677,129},{64046,16677,1},{64053,16673,1},{64054,16673,1}, {64054,16672,1},{64059,16668,1},{64063,16667,1},{64064,16663,1},{64074,16660,1}, {64069,16655,1},{64054,16652,1},{64046,16653,1},{64039,16657,1},{64034,16658,1}, {64033,16660,1},{64031,16660,1},{64023,16662,1},{64013,16665,1},{63998,16662,1}, {63983,16670,1},{63979,16677,1},{63971,16677,1},{63969,16682,1},{63971,16683,1}, {63974,16685,1},{63973,16688,1},{63976,16688,1},{63978,16692,1},{63978,16702,1}, {63976,16708,1},{63984,16715,1},{63984,16723,1},{63988,16723,1},{63989,16720,1}, {64001,16717,1},{64003,16717,1},{64001,16718,1},{64006,16718,1},{64009,16717,1}, {64011,16713,1},{64013,16715,1},{64014,16715,1},{64023,16713,1},{64024,16712,1}, {64021,16710,1},{64023,16708,1},{64031,16707,1},{64033,16705,1},{64033,16703,1}, {64036,16707,1},{64039,16705,1},{64043,16708,1},{64044,16700,1},{64043,16698,1}, {64041,16697,1},{64028,16697,1},{64019,16692,1},{64021,16680,1},{64031,16678,1}, {64036,16677,1},{63891,16742,129},{63893,16740,1},{63898,16740,1},{63899,16738,1}, {63901,16737,1},{63908,16738,1},{63918,16738,1},{63918,16737,1},{63924,16732,1}, {63919,16722,1},{63921,16718,1},{63928,16715,1},{63931,16715,1},{63938,16718,1}, {63946,16718,1},{63949,16722,1},{63944,16733,1},{63943,16732,1},{63934,16738,1}, {63931,16738,1},{63929,16740,1},{63928,16740,1},{63924,16742,1},{63923,16747,1}, {63926,16747,1},{63924,16748,1},{63923,16750,1},{63919,16748,1},{63918,16752,1}, {63919,16753,1},{63914,16757,1},{63913,16760,1},{63909,16763,1},{63909,16768,1}, {63908,16768,1},{63903,16775,1},{63903,16777,1},{63896,16778,1},{63891,16777,1}, {63889,16778,1},{63893,16780,1},{63893,16783,1},{63889,16783,1},{63888,16780,1}, {63881,16777,1},{63881,16773,1},{63884,16772,1},{63886,16760,1},{63883,16757,1}, {63881,16758,1},{63881,16755,1},{63878,16752,1},{63876,16750,1},{63883,16742,1}, {63886,16742,1},{63884,16745,1},{63891,16742,1},{1363,14488,129},{1360,14490,1}, {1360,14495,1},{1358,14495,1},{1350,14490,1},{1342,14478,1},{1328,14475,1}, {1325,14473,1},{1323,14472,1},{1325,14468,1},{1328,14465,1},{1333,14463,1}, {1340,14465,1},{1343,14462,1},{1343,14463,1},{1343,14467,1},{1347,14470,1}, {1350,14478,1},{1355,14482,1},{1363,14483,1},{1365,14488,1},{1363,14488,1}, {63648,49556,129},{63651,49556,1},{63653,49558,1},{63648,49558,1},{63646,49556,1}, {63648,49556,1},{63846,50391,129},{63846,50388,1},{63858,50386,1},{63861,50388,1}, {63863,50389,1},{63861,50393,1},{63854,50396,1},{63851,50401,1},{63848,50396,1}, {63846,50391,1},{63749,50611,129},{63751,50608,1},{63758,50606,1},{63761,50601,1}, {63759,50591,1},{63763,50578,1},{63769,50576,1},{63773,50573,1},{63776,50574,1}, {63779,50573,1},{63783,50578,1},{63784,50584,1},{63784,50593,1},{63783,50599,1}, {63778,50604,1},{63773,50604,1},{63766,50606,1},{63763,50614,1},{63764,50618,1}, {63763,50621,1},{63758,50623,1},{63751,50623,1},{63749,50618,1},{63749,50611,1}, {545,10030,129},{543,10032,1},{542,10035,1},{525,10028,1},{527,10025,1}, {527,10018,1},{530,10020,1},{547,10018,1},{543,10022,1},{547,10025,1},{545,10032,1}, {417,11758,129},{418,11762,1},{422,11760,1},{422,11762,1},{423,11762,1}, {425,11765,1},{428,11765,1},{430,11763,1},{435,11763,1},{438,11760,1},{442,11765,1}, {442,11767,1},{438,11768,1},{435,11772,1},{433,11780,1},{430,11782,1},{428,11787,1}, {425,11790,1},{422,11798,1},{430,11815,1},{430,11822,1},{433,11833,1},{435,11835,1}, {435,11838,1},{435,11855,1},{437,11855,1},{440,11860,1},{443,11860,1},{442,11862,1}, {443,11865,1},{445,11865,1},{450,11858,1},{452,11860,1},{452,11853,1},{450,11850,1}, {452,11848,1},{453,11847,1},{457,11848,1},{460,11848,1},{462,11843,1},{460,11842,1}, {463,11837,1},{468,11828,1},{478,11820,1},{483,11818,1},{485,11813,1},{488,11813,1}, {492,11817,1},{497,11822,1},{498,11825,1},{498,11828,1},{500,11830,1},{500,11832,1}, {503,11835,1},{502,11842,1},{495,11848,1},{493,11850,1},{497,11858,1},{493,11870,1}, {503,11892,1},{507,11907,1},{512,11918,1},{515,11922,1},{522,11927,1},{527,11927,1}, {535,11928,1},{540,11923,1},{545,11918,1},{543,11913,1},{540,11907,1},{543,11897,1}, {538,11897,1},{538,11893,1},{542,11893,1},{545,11892,1},{550,11883,1},{548,11882,1}, {552,11880,1},{555,11872,1},{563,11863,1},{562,11860,1},{557,11860,1},{552,11857,1}, {563,11857,1},{567,11860,1},{568,11858,1},{570,11855,1},{575,11847,1},{582,11837,1}, {578,11833,1},{583,11825,1},{580,11817,1},{578,11815,1},{575,11817,1},{573,11815,1}, {568,11813,1},{572,11810,1},{570,11807,1},{572,11805,1},{568,11797,1},{573,11795,1}, {575,11792,1},{580,11792,1},{582,11793,1},{580,11797,1},{582,11808,1},{587,11812,1}, {592,11808,1},{597,11807,1},{600,11805,1},{603,11805,1},{607,11802,1},{607,11798,1}, {595,11788,1},{595,11777,1},{592,11778,1},{590,11777,1},{592,11770,1},{590,11763,1}, {590,11755,1},{587,11747,1},{590,11750,1},{593,11763,1},{598,11768,1},{602,11767,1}, {602,11763,1},{605,11763,1},{607,11767,1},{608,11767,1},{618,11760,1},{622,11762,1}, {625,11765,1},{625,11772,1},{633,11773,1},{635,11772,1},{638,11773,1},{642,11773,1}, {645,11773,1},{647,11772,1},{645,11770,1},{648,11768,1},{652,11765,1},{652,11760,1}, {653,11757,1},{657,11757,1},{657,11753,1},{663,11753,1},{653,11747,1},{658,11740,1}, {662,11737,1},{663,11730,1},{667,11728,1},{673,11728,1},{682,11722,1},{687,11725,1}, {693,11725,1},{700,11715,1},{698,11713,1},{698,11708,1},{697,11707,1},{695,11708,1}, {693,11703,1},{692,11703,1},{683,11705,1},{675,11698,1},{672,11698,1},{663,11688,1}, {660,11687,1},{658,11680,1},{658,11678,1},{665,11678,1},{675,11685,1},{680,11687,1}, {685,11685,1},{685,11682,1},{690,11682,1},{690,11685,1},{697,11683,1},{702,11677,1}, {700,11673,1},{697,11672,1},{692,11672,1},{685,11665,1},{682,11667,1},{677,11665,1}, {670,11665,1},{655,11650,1},{648,11650,1},{637,11633,1},{630,11632,1},{630,11628,1}, {627,11623,1},{627,11627,1},{628,11628,1},{627,11628,1},{623,11628,1},{625,11625,1}, {623,11622,1},{613,11615,1},{612,11610,1},{610,11608,1},{610,11613,1},{607,11613,1}, {600,11612,1},{592,11605,1},{583,11605,1},{575,11592,1},{565,11590,1},{557,11585,1}, {553,11582,1},{552,11575,1},{553,11565,1},{557,11562,1},{552,11560,1},{553,11558,1}, {557,11558,1},{560,11562,1},{562,11562,1},{563,11560,1},{557,11557,1},{543,11543,1}, {540,11538,1},{530,11537,1},{533,11540,1},{532,11540,1},{528,11540,1},{520,11553,1}, {522,11560,1},{517,11557,1},{507,11555,1},{502,11548,1},{490,11535,1},{490,11532,1}, {493,11527,1},{493,11523,1},{497,11522,1},{492,11518,1},{490,11515,1},{482,11503,129}, {488,11502,1},{458,11408,129},{458,11397,1},{457,11397,1},{450,11398,1}, {443,11400,1},{437,11397,1},{432,11397,1},{425,11393,1},{417,11385,1},{398,11373,1}, {375,11343,1},{365,11340,1},{355,11330,1},{352,11330,1},{338,11318,1},{333,11315,1}, {328,11307,1},{327,11308,1},{323,11308,1},{317,11302,1},{310,11285,1},{297,11232,1}, {290,11210,1},{285,11167,1},{268,11145,1},{253,11142,1},{250,11147,1},{248,11152,1}, {247,11147,1},{248,11140,1},{242,11143,1},{235,11150,1},{237,11145,1},{233,11137,1}, {235,11135,1},{238,11132,1},{242,11125,1},{243,11125,1},{242,11122,1},{235,11120,1}, {225,11118,1},{223,11123,1},{222,11123,1},{222,11120,1},{215,11117,1},{215,11130,1}, {212,11133,1},{215,11133,1},{217,11135,1},{215,11137,1},{210,11133,1},{212,11125,1}, {212,11123,1},{208,11123,1},{207,11127,1},{207,11120,1},{195,11117,1},{183,11112,1}, {180,11112,1},{178,11113,1},{177,11110,1},{170,11112,1},{168,11115,1},{165,11118,1}, {165,11122,1},{162,11127,1},{162,11123,1},{163,11120,1},{162,11118,1},{168,11113,1}, {168,11110,1},{167,11103,1},{162,11102,1},{158,11100,1},{153,11102,1},{145,11107,1}, {140,11117,1},{142,11123,1},{142,11128,1},{140,11132,1},{137,11133,1},{135,11138,1}, {133,11133,1},{135,11130,1},{138,11125,1},{137,11115,1},{140,11107,1},{150,11097,1}, {157,11082,1},{157,11077,1},{150,11077,1},{147,11075,1},{145,11067,1},{150,11073,1}, {153,11073,1},{160,11058,1},{158,11053,1},{163,11052,1},{162,11047,1},{173,11052,1}, {172,11045,1},{168,11040,1},{170,11038,1},{173,11037,1},{175,11037,1},{180,11033,1}, {177,11030,1},{170,11030,1},{167,11028,1},{170,11025,1},{168,11022,1},{170,11018,1}, {170,11002,1},{168,10998,1},{168,10993,1},{175,10988,1},{178,10985,1},{187,10970,1}, {193,10965,1},{198,10967,1},{207,10965,1},{490,11515,129},{490,11512,1}, {487,11513,1},{483,11508,1},{480,11507,1},{480,11503,1},{482,11503,1},{488,11502,129}, {492,11502,1},{490,11498,1},{495,11503,1},{500,11505,1},{503,11510,1},{505,11510,1}, {505,11503,1},{500,11492,1},{485,11468,1},{470,11455,1},{468,11450,1},{465,11440,1}, {460,11428,1},{458,11420,1},{460,11417,1},{458,11408,1},{557,9523,129}, {557,9528,1},{560,9532,1},{562,9537,1},{565,9543,1},{565,9545,1},{560,9550,1}, {563,9560,1},{560,9567,1},{557,9577,1},{550,9588,1},{545,9590,1},{530,9607,1}, {527,9620,1},{527,9627,1},{523,9633,1},{522,9640,1},{522,9643,1},{523,9647,1}, {522,9652,1},{522,9665,1},{528,9682,1},{527,9690,1},{527,9698,1},{527,9705,1}, {522,9713,1},{517,9717,1},{515,9720,1},{522,9740,1},{525,9748,1},{525,9752,1}, {505,9768,1},{498,9778,1},{493,9783,1},{490,9790,1},{487,9792,1},{478,9797,1}, {468,9798,1},{462,9802,1},{453,9800,1},{455,9802,1},{453,9805,1},{455,9807,1}, {453,9808,1},{453,9813,1},{452,9817,1},{448,9818,1},{448,9822,1},{445,9823,1}, {442,9828,1},{435,9828,1},{430,9827,1},{420,9827,1},{417,9818,1},{410,9818,1}, {417,9827,1},{408,9830,1},{408,9838,1},{408,9840,1},{405,9847,1},{400,9850,1}, {400,9855,1},{393,9860,1},{392,9868,1},{378,9872,1},{372,9883,1},{363,9907,1}, {358,9913,1},{355,9920,1},{340,9937,1},{338,9943,1},{335,9948,1},{325,9955,1}, {318,9973,1},{310,9980,1},{307,9983,1},{300,9985,1},{302,9987,1},{300,9990,1}, {293,9998,1},{278,10000,1},{270,9995,1},{267,9998,1},{260,10000,1},{260,10002,1}, {262,10003,1},{263,10002,1},{268,10002,1},{270,9997,1},{273,10003,1},{273,10005,1}, {270,10007,1},{260,10008,1},{252,10012,1},{253,10013,1},{265,10012,1},{268,10013,1}, {270,10017,1},{270,10022,1},{267,10022,1},{265,10025,1},{258,10027,1},{257,10030,1}, {230,10042,1},{222,10048,1},{213,10060,1},{212,10063,1},{213,10067,1},{203,10082,1}, {195,10087,1},{188,10090,1},{183,10093,1},{183,10095,1},{187,10095,1},{195,10092,1}, {202,10090,1},{210,10082,1},{217,10080,1},{223,10080,1},{228,10083,1},{230,10093,1}, {228,10107,1},{225,10105,1},{220,10107,1},{207,10127,1},{202,10132,1},{192,10133,1}, {178,10137,1},{173,10140,1},{170,10143,1},{165,10157,1},{167,10168,1},{165,10175,1}, {145,10200,1},{138,10213,1},{133,10215,1},{125,10215,1},{120,10220,1},{110,10218,1}, {102,10222,1},{97,10225,1},{90,10235,1},{78,10243,1},{73,10255,1},{75,10267,1}, {73,10278,1},{73,10288,1},{70,10293,1},{52,10308,1},{47,10308,1},{45,10308,1}, {27,10275,1},{23,10262,1},{18,10258,1},{20,10253,1},{25,10248,1},{25,10243,1}, {23,10248,1},{18,10252,1},{15,10258,1},{15,10260,1},{22,10267,1},{22,10273,1}, {25,10280,1},{25,10288,1},{33,10302,1},{38,10307,1},{42,10318,1},{48,10322,1}, {50,10328,1},{53,10335,1},{50,10345,1},{42,10355,1},{37,10360,1},{32,10360,1}, {33,10363,1},{28,10373,1},{25,10375,1},{0,10382,1},{65534,10367,1},{65531,10367,1}, {65531,10363,1},{65534,10358,1},{65533,10357,1},{65531,10358,1},{65526,10358,1}, {65524,10355,1},{65524,10348,1},{65519,10348,1},{65514,10342,1},{65509,10327,1}, {65511,10337,1},{65514,10348,1},{65513,10350,1},{65511,10348,1},{65501,10342,1}, {65499,10333,1},{65498,10338,1},{65498,10350,1},{65494,10357,1},{65493,10360,1}, {65486,10352,1},{65484,10342,1},{65484,10340,1},{65491,10337,1},{65484,10338,1}, {65479,10342,1},{65473,10340,1},{65471,10337,1},{65468,10338,1},{65466,10333,1}, {65463,10338,1},{65459,10347,1},{65458,10347,1},{65454,10343,1},{65456,10348,1}, {65454,10352,1},{65449,10355,1},{65448,10358,1},{65441,10365,1},{65441,10368,1}, {65438,10373,1},{65434,10380,1},{65428,10382,1},{65433,10383,1},{65434,10387,1}, {65438,10395,1},{65434,10405,1},{65433,10412,1},{65428,10420,1},{65433,10435,1}, {65433,10438,1},{65423,10442,1},{65414,10440,1},{65401,10445,1},{65389,10445,1}, {65379,10447,1},{65359,10453,1},{65356,10453,1},{65353,10450,1},{65349,10448,1}, {65343,10448,1},{65343,10450,1},{65344,10452,1},{65351,10455,1},{65343,10463,1}, {65338,10462,1},{65334,10458,1},{65334,10462,1},{65338,10465,1},{65338,10467,1}, {65333,10467,1},{65331,10468,1},{65336,10475,1},{65336,10482,1},{65329,10487,1}, {65323,10488,1},{65316,10487,1},{65301,10475,1},{65301,10467,1},{65296,10460,1}, {65299,10470,1},{65298,10472,1},{65296,10473,1},{65279,10472,1},{65271,10458,1}, {65266,10455,1},{65259,10453,1},{65261,10455,1},{65269,10460,1},{65276,10473,1}, {65288,10477,1},{65294,10477,1},{65299,10482,1},{65308,10487,1},{65306,10490,1}, {65301,10490,1},{65298,10492,1},{65303,10493,1},{65303,10497,1},{65303,10500,1}, {65299,10503,1},{65298,10512,1},{65301,10523,1},{65298,10535,1},{65296,10555,1}, {65294,10553,1},{65296,10562,1},{65293,10563,1},{65283,10560,1},{65276,10562,1}, {65269,10568,1},{65266,10578,1},{65251,10578,1},{65246,10582,1},{65243,10583,1}, {65239,10590,1},{65241,10598,1},{65236,10603,1},{65231,10605,1},{65221,10605,1}, {65213,10608,1},{65209,10607,1},{65204,10598,1},{65194,10590,1},{65168,10582,1}, {65163,10582,1},{65156,10593,1},{65151,10595,1},{65131,10585,1},{65111,10582,1}, {65103,10582,1},{65098,10585,1},{65096,10585,1},{65089,10590,1},{65079,10590,1}, {65074,10588,1},{65069,10590,1},{65068,10588,1},{65056,10587,1},{65049,10588,1}, {65043,10592,1},{65029,10587,1},{65011,10587,1},{65003,10583,1},{64988,10583,1}, {64983,10582,1},{64976,10583,1},{64964,10580,1},{64953,10578,1},{64946,10573,1}, {64953,10572,1},{64956,10560,1},{64959,10558,1},{64966,10558,1},{64969,10555,1}, {64969,10553,1},{64968,10552,1},{64969,10548,1},{64974,10543,1},{64991,10528,1}, {64991,10527,1},{64989,10525,1},{64984,10525,1},{64979,10523,1},{64978,10517,1}, {64973,10520,1},{64968,10520,1},{64966,10522,1},{64964,10517,1},{64963,10515,1}, {64961,10522,1},{64959,10522,1},{64956,10513,1},{64959,10510,1},{64961,10508,1}, {64961,10505,1},{64966,10497,1},{64968,10492,1},{64976,10478,1},{64984,10468,1}, {64988,10462,1},{64986,10462,1},{64986,10455,1},{64981,10453,1},{64976,10455,1}, {64966,10463,1},{64953,10470,1},{64944,10472,1},{64943,10467,1},{64944,10455,1}, {64948,10455,1},{64953,10453,1},{64958,10447,1},{64968,10437,1},{64971,10428,1}, {64974,10428,1},{64974,10430,1},{64976,10432,1},{64981,10427,1},{64983,10420,1}, {64986,10418,1},{64991,10410,1},{65004,10398,1},{65008,10400,1},{65011,10400,1}, {65014,10390,1},{65019,10392,1},{65024,10390,1},{65033,10378,1},{65034,10373,1}, {65038,10373,1},{65039,10372,1},{65039,10367,1},{65038,10365,1},{65039,10365,1}, {65044,10362,1},{65044,10355,1},{65049,10348,1},{65049,10342,1},{65056,10338,1}, {65056,10337,1},{65056,10333,1},{65061,10330,1},{65069,10323,1},{65081,10305,1}, {65088,10290,1},{65093,10288,1},{65099,10282,1},{65111,10267,1},{65136,10233,1}, {65139,10228,1},{65144,10228,1},{65148,10232,1},{65149,10232,1},{65156,10227,1}, {65161,10227,1},{65163,10223,1},{65166,10225,1},{65171,10222,1},{65189,10193,1}, {65211,10163,1},{65214,10160,1},{65233,10147,1},{65264,10132,1},{65271,10118,1}, {65278,10110,1},{65304,10090,1},{65319,10083,1},{65329,10088,1},{65343,10087,1}, {65374,10065,1},{65386,10063,1},{65386,10060,1},{65391,10057,1},{65394,10058,1}, {65396,10057,1},{65398,10058,1},{65404,10057,1},{65406,10050,1},{65409,10047,1}, {65409,10042,1},{65411,10042,1},{65413,10043,1},{65416,10043,1},{65416,10042,1}, {65419,10042,1},{65421,10037,1},{65424,10038,1},{65428,10037,1},{65429,10042,1}, {65431,10042,1},{65433,10040,1},{65433,10038,1},{65434,10038,1},{65436,10037,1}, {65449,10033,1},{65453,10032,1},{65471,10013,1},{65479,10008,1},{65489,10002,1}, {65496,9992,1},{65499,9990,1},{65504,9982,1},{65513,9980,1},{65521,9975,1}, {65526,9977,1},{65529,9977,1},{8,9963,1},{15,9952,1},{17,9940,1},{22,9937,1}, {23,9933,1},{23,9930,1},{22,9925,1},{22,9922,1},{25,9918,1},{23,9917,1}, {27,9913,1},{32,9915,1},{35,9912,1},{42,9913,1},{52,9912,1},{52,9908,1}, {58,9910,1},{63,9908,1},{63,9903,1},{77,9903,1},{85,9897,1},{90,9898,1}, {110,9892,1},{128,9885,1},{135,9885,1},{143,9878,1},{148,9877,1},{152,9873,1}, {157,9870,1},{157,9873,1},{153,9877,1},{157,9878,1},{160,9880,1},{162,9882,1}, {167,9882,1},{168,9878,1},{175,9877,1},{178,9873,1},{178,9870,1},{175,9872,1}, {172,9872,1},{175,9867,1},{190,9857,1},{195,9852,1},{200,9842,1},{200,9835,1}, {203,9833,1},{203,9827,1},{208,9823,1},{218,9812,1},{227,9795,1},{227,9792,1}, {223,9787,1},{225,9783,1},{225,9782,1},{228,9780,1},{227,9775,1},{242,9765,1}, {265,9765,1},{277,9763,1},{287,9760,1},{288,9758,1},{288,9753,1},{290,9750,1}, {292,9743,1},{297,9738,1},{307,9732,1},{318,9728,1},{322,9727,1},{325,9717,1}, {352,9702,1},{360,9692,1},{368,9688,1},{375,9678,1},{375,9670,1},{375,9653,1}, {377,9648,1},{387,9638,1},{402,9628,1},{412,9618,1},{413,9615,1},{413,9612,1}, {422,9605,1},{422,9602,1},{428,9595,1},{440,9585,1},{455,9570,1},{458,9565,1}, {463,9560,1},{463,9557,1},{467,9557,1},{468,9553,1},{475,9550,1},{482,9542,1}, {485,9542,1},{502,9535,1},{503,9535,1},{508,9532,1},{512,9530,1},{512,9528,1}, {515,9530,1},{517,9530,1},{523,9525,1},{528,9523,1},{528,9520,1},{533,9523,1}, {537,9523,1},{540,9525,1},{545,9523,1},{547,9525,1},{548,9522,1},{553,9520,1}, {558,9522,1},{557,9523,1},{557,9528,1},{560,9532,1},{562,9537,1},{565,9543,1}, {565,9545,1},{560,9550,1},{563,9560,1},{560,9567,1},{557,9577,1},{550,9588,1}, {545,9590,1},{530,9607,1},{527,9620,1},{527,9627,1},{523,9633,1},{522,9640,1}, {522,9643,1},{523,9647,1},{522,9652,1},{522,9665,1},{528,9682,1},{527,9690,1}, {527,9698,1},{527,9705,1},{522,9713,1},{517,9717,1},{515,9720,1},{522,9740,1}, {525,9748,1},{525,9752,1},{505,9768,1},{498,9778,1},{493,9783,1},{490,9790,1}, {487,9792,1},{478,9797,1},{468,9798,1},{462,9802,1},{453,9800,1},{455,9802,1}, {453,9805,1},{455,9807,1},{453,9808,1},{453,9813,1},{452,9817,1},{448,9818,1}, {448,9822,1},{445,9823,1},{442,9828,1},{435,9828,1},{430,9827,1},{420,9827,1}, {417,9818,1},{410,9818,1},{417,9827,1},{408,9830,1},{408,9838,1},{408,9840,1}, {405,9847,1},{400,9850,1},{400,9855,1},{393,9860,1},{392,9868,1},{378,9872,1}, {372,9883,1},{363,9907,1},{358,9913,1},{355,9920,1},{340,9937,1},{338,9943,1}, {335,9948,1},{325,9955,1},{318,9973,1},{310,9980,1},{307,9983,1},{300,9985,1}, {302,9987,1},{300,9990,1},{293,9998,1},{278,10000,1},{270,9995,1},{267,9998,1}, {260,10000,1},{260,10002,1},{262,10003,1},{263,10002,1},{268,10002,1},{270,9997,1}, {273,10003,1},{273,10005,1},{270,10007,1},{260,10008,1},{252,10012,1},{253,10013,1}, {265,10012,1},{268,10013,1},{270,10017,1},{270,10022,1},{267,10022,1},{265,10025,1}, {258,10027,1},{257,10030,1},{230,10042,1},{222,10048,1},{213,10060,1},{212,10063,1}, {213,10067,1},{203,10082,1},{195,10087,1},{188,10090,1},{183,10093,1},{183,10095,1}, {187,10095,1},{195,10092,1},{202,10090,1},{210,10082,1},{217,10080,1},{223,10080,1}, {228,10083,1},{230,10093,1},{228,10107,1},{225,10105,1},{220,10107,1},{207,10127,1}, {202,10132,1},{192,10133,1},{178,10137,1},{173,10140,1},{170,10143,1},{165,10157,1}, {167,10168,1},{165,10175,1},{145,10200,1},{138,10213,1},{133,10215,1},{125,10215,1}, {120,10220,1},{110,10218,1},{102,10222,1},{97,10225,1},{90,10235,1},{78,10243,1}, {73,10255,1},{75,10267,1},{73,10278,1},{73,10288,1},{70,10293,1},{52,10308,1}, {47,10308,1},{45,10308,1},{27,10275,1},{23,10262,1},{18,10258,1},{20,10253,1}, {25,10248,1},{25,10243,1},{23,10248,1},{18,10252,1},{15,10258,1},{15,10260,1}, {22,10267,1},{22,10273,1},{25,10280,1},{25,10288,1},{33,10302,1},{38,10307,1}, {42,10318,1},{48,10322,1},{50,10328,1},{53,10335,1},{50,10345,1},{42,10355,1}, {37,10360,1},{32,10360,1},{33,10363,1},{28,10373,1},{25,10375,1},{0,10382,1}, {65534,10367,1},{65531,10367,1},{65531,10363,1},{65534,10358,1},{65533,10357,1}, {65531,10358,1},{65526,10358,1},{65524,10355,1},{65524,10348,1},{65519,10348,1}, {65514,10342,1},{65509,10327,1},{65511,10337,1},{65514,10348,1},{65513,10350,1}, {65511,10348,1},{65501,10342,1},{65499,10333,1},{65498,10338,1},{65498,10350,1}, {65494,10357,1},{65493,10360,1},{65486,10352,1},{65484,10342,1},{65484,10340,1}, {65491,10337,1},{65484,10338,1},{65479,10342,1},{65473,10340,1},{65471,10337,1}, {65468,10338,1},{65466,10333,1},{65463,10338,1},{65459,10347,1},{65458,10347,1}, {65454,10343,1},{65456,10348,1},{65454,10352,1},{65449,10355,1},{65448,10358,1}, {65441,10365,1},{65441,10368,1},{65438,10373,1},{65434,10380,1},{65428,10382,1}, {65433,10383,1},{65434,10387,1},{65438,10395,1},{65434,10405,1},{65433,10412,1}, {65428,10420,1},{65433,10435,1},{65433,10438,1},{65423,10442,1},{65414,10440,1}, {65401,10445,1},{65389,10445,1},{65379,10447,1},{65359,10453,1},{65356,10453,1}, {65353,10450,1},{65349,10448,1},{65343,10448,1},{65343,10450,1},{65344,10452,1}, {65351,10455,1},{65343,10463,1},{65338,10462,1},{65334,10458,1},{65334,10462,1}, {65338,10465,1},{65338,10467,1},{65333,10467,1},{65331,10468,1},{65336,10475,1}, {65336,10482,1},{65329,10487,1},{65323,10488,1},{65316,10487,1},{65301,10475,1}, {65301,10467,1},{65296,10460,1},{65299,10470,1},{65298,10472,1},{65296,10473,1}, {65279,10472,1},{65271,10458,1},{65266,10455,1},{65259,10453,1},{65261,10455,1}, {65269,10460,1},{65276,10473,1},{65288,10477,1},{65294,10477,1},{65299,10482,1}, {65308,10487,1},{65306,10490,1},{65301,10490,1},{65298,10492,1},{65303,10493,1}, {65303,10497,1},{65303,10500,1},{65299,10503,1},{65298,10512,1},{65301,10523,1}, {65298,10535,1},{65296,10555,1},{65294,10553,1},{65296,10562,1},{65293,10563,1}, {65283,10560,1},{65276,10562,1},{65269,10568,1},{65266,10578,1},{65251,10578,1}, {65246,10582,1},{65243,10583,1},{65239,10590,1},{65241,10598,1},{65236,10603,1}, {65231,10605,1},{65221,10605,1},{65213,10608,1},{65209,10607,1},{65204,10598,1}, {65194,10590,1},{65168,10582,1},{65163,10582,1},{65156,10593,1},{65151,10595,1}, {65131,10585,1},{65111,10582,1},{65103,10582,1},{65098,10585,1},{65096,10585,1}, {65089,10590,1},{65079,10590,1},{65074,10588,1},{65069,10590,1},{65068,10588,1}, {65056,10587,1},{65049,10588,1},{65043,10592,1},{65029,10587,1},{65011,10587,1}, {65003,10583,1},{64988,10583,1},{64983,10582,1},{64976,10583,1},{64964,10580,1}, {64953,10578,1},{64946,10573,1},{64953,10572,1},{64956,10560,1},{64959,10558,1}, {64966,10558,1},{64969,10555,1},{64969,10553,1},{64968,10552,1},{64969,10548,1}, {64974,10543,1},{64991,10528,1},{64991,10527,1},{64989,10525,1},{64984,10525,1}, {64979,10523,1},{64978,10517,1},{64973,10520,1},{64968,10520,1},{64966,10522,1}, {64964,10517,1},{64963,10515,1},{64961,10522,1},{64959,10522,1},{64956,10513,1}, {64959,10510,1},{64961,10508,1},{64961,10505,1},{64966,10497,1},{64968,10492,1}, {64976,10478,1},{64984,10468,1},{64988,10462,1},{64986,10462,1},{64986,10455,1}, {64981,10453,1},{64976,10455,1},{64966,10463,1},{64953,10470,1},{64944,10472,1}, {64943,10467,1},{64944,10455,1},{64948,10455,1},{64953,10453,1},{64958,10447,1}, {64968,10437,1},{64971,10428,1},{64974,10428,1},{64974,10430,1},{64976,10432,1}, {64981,10427,1},{64983,10420,1},{64986,10418,1},{64991,10410,1},{65004,10398,1}, {65008,10400,1},{65011,10400,1},{65014,10390,1},{65019,10392,1},{65024,10390,1}, {65033,10378,1},{65034,10373,1},{65038,10373,1},{65039,10372,1},{65039,10367,1}, {65038,10365,1},{65039,10365,1},{65044,10362,1},{65044,10355,1},{65049,10348,1}, {65049,10342,1},{65056,10338,1},{65056,10337,1},{65056,10333,1},{65061,10330,1}, {65069,10323,1},{65081,10305,1},{65088,10290,1},{65093,10288,1},{65099,10282,1}, {65111,10267,1},{65136,10233,1},{65139,10228,1},{65144,10228,1},{65148,10232,1}, {65149,10232,1},{65156,10227,1},{65161,10227,1},{65163,10223,1},{65166,10225,1}, {65171,10222,1},{65189,10193,1},{65211,10163,1},{65214,10160,1},{65233,10147,1}, {65264,10132,1},{65271,10118,1},{65278,10110,1},{65304,10090,1},{65319,10083,1}, {65329,10088,1},{65343,10087,1},{65374,10065,1},{65386,10063,1},{65386,10060,1}, {65391,10057,1},{65394,10058,1},{65396,10057,1},{65398,10058,1},{65404,10057,1}, {65406,10050,1},{65409,10047,1},{65409,10042,1},{65411,10042,1},{65413,10043,1}, {65416,10043,1},{65416,10042,1},{65419,10042,1},{65421,10037,1},{65424,10038,1}, {65428,10037,1},{65429,10042,1},{65431,10042,1},{65433,10040,1},{65433,10038,1}, {65434,10038,1},{65436,10037,1},{65449,10033,1},{65453,10032,1},{65471,10013,1}, {65479,10008,1},{65489,10002,1},{65496,9992,1},{65499,9990,1},{65504,9982,1}, {65513,9980,1},{65521,9975,1},{65526,9977,1},{65529,9977,1},{8,9963,1}, {15,9952,1},{17,9940,1},{22,9937,1},{23,9933,1},{23,9930,1},{22,9925,1}, {22,9922,1},{25,9918,1},{23,9917,1},{27,9913,1},{32,9915,1},{35,9912,1}, {42,9913,1},{52,9912,1},{52,9908,1},{58,9910,1},{63,9908,1},{63,9903,1}, {77,9903,1},{85,9897,1},{90,9898,1},{110,9892,1},{128,9885,1},{135,9885,1}, {143,9878,1},{148,9877,1},{152,9873,1},{157,9870,1},{157,9873,1},{153,9877,1}, {157,9878,1},{160,9880,1},{162,9882,1},{167,9882,1},{168,9878,1},{175,9877,1}, {178,9873,1},{178,9870,1},{175,9872,1},{172,9872,1},{175,9867,1},{190,9857,1}, {195,9852,1},{200,9842,1},{200,9835,1},{203,9833,1},{203,9827,1},{208,9823,1}, {218,9812,1},{227,9795,1},{227,9792,1},{223,9787,1},{225,9783,1},{225,9782,1}, {228,9780,1},{227,9775,1},{242,9765,1},{265,9765,1},{277,9763,1},{287,9760,1}, {288,9758,1},{288,9753,1},{290,9750,1},{292,9743,1},{297,9738,1},{307,9732,1}, {318,9728,1},{322,9727,1},{325,9717,1},{352,9702,1},{360,9692,1},{368,9688,1}, {375,9678,1},{375,9670,1},{375,9653,1},{377,9648,1},{387,9638,1},{402,9628,1}, {412,9618,1},{413,9615,1},{413,9612,1},{422,9605,1},{422,9602,1},{428,9595,1}, {440,9585,1},{455,9570,1},{458,9565,1},{463,9560,1},{463,9557,1},{467,9557,1}, {468,9553,1},{475,9550,1},{482,9542,1},{485,9542,1},{502,9535,1},{503,9535,1}, {508,9532,1},{512,9530,1},{512,9528,1},{515,9530,1},{517,9530,1},{523,9525,1}, {528,9523,1},{528,9520,1},{533,9523,1},{537,9523,1},{540,9525,1},{545,9523,1}, {547,9525,1},{548,9522,1},{553,9520,1},{558,9522,1},{557,9523,1},{237,9647,129}, {233,9642,1},{237,9637,1},{235,9633,1},{237,9632,1},{238,9633,1},{240,9628,1}, {242,9630,1},{247,9622,1},{258,9607,1},{260,9602,1},{258,9600,1},{260,9597,1}, {258,9593,1},{262,9590,1},{262,9588,1},{263,9588,1},{265,9587,1},{265,9578,1}, {270,9578,1},{275,9573,1},{278,9573,1},{277,9570,1},{282,9570,1},{285,9572,1}, {285,9578,1},{288,9577,1},{293,9580,1},{292,9582,1},{292,9588,1},{288,9592,1}, {288,9587,1},{285,9588,1},{283,9595,1},{277,9602,1},{277,9608,1},{273,9612,1}, {272,9613,1},{265,9610,1},{265,9615,1},{265,9617,1},{268,9615,1},{265,9618,1}, {260,9623,1},{255,9633,1},{247,9638,1},{248,9640,1},{252,9640,1},{250,9642,1}, {250,9643,1},{247,9647,1},{238,9648,1},{237,9648,1},{235,9645,1},{65359,9920,129}, {65356,9912,1},{65359,9903,1},{65366,9893,1},{65368,9887,1},{65373,9885,1}, {65374,9883,1},{65378,9883,1},{65384,9880,1},{65406,9863,1},{65409,9863,1}, {65414,9860,1},{65418,9860,1},{65428,9865,1},{65439,9867,1},{65441,9870,1}, {65439,9878,1},{65444,9888,1},{65443,9888,1},{65441,9892,1},{65439,9893,1}, {65436,9893,1},{65436,9890,1},{65429,9893,1},{65426,9898,1},{65421,9900,1}, {65418,9903,1},{65414,9903,1},{65413,9907,1},{65408,9905,1},{65408,9908,1}, {65399,9912,1},{65394,9917,1},{65391,9917,1},{65393,9913,1},{65391,9913,1}, {65384,9920,1},{65381,9920,1},{65378,9922,1},{65378,9925,1},{65374,9928,1}, {65369,9928,1},{65366,9930,1},{65363,9928,1},{65374,9923,1},{65373,9920,1}, {65371,9922,1},{65359,9925,1},{65358,9923,1},{65359,9920,1},{93,9792,129}, {88,9790,1},{82,9790,1},{78,9788,1},{63,9788,1},{55,9782,1},{58,9778,1}, {57,9775,1},{57,9773,1},{58,9773,1},{57,9772,1},{58,9768,1},{60,9768,1}, {63,9768,1},{67,9765,1},{72,9765,1},{82,9762,1},{88,9753,1},{90,9748,1}, {93,9750,1},{93,9748,1},{95,9742,1},{93,9738,1},{100,9740,1},{117,9730,1}, {123,9725,1},{127,9725,1},{128,9720,1},{140,9710,1},{140,9707,1},{142,9707,1}, {143,9712,1},{143,9713,1},{140,9717,1},{142,9718,1},{140,9722,1},{142,9725,1}, {148,9733,1},{153,9733,1},{153,9735,1},{150,9738,1},{152,9742,1},{150,9743,1}, {147,9745,1},{147,9748,1},{140,9753,1},{133,9760,1},{118,9768,1},{115,9775,1}, {115,9778,1},{107,9783,1},{105,9788,1},{103,9792,1},{97,9793,1},{93,9792,1}, {65388,10588,129},{65386,10592,1},{65383,10593,1},{65381,10598,1},{65378,10603,1}, {65376,10605,1},{65373,10603,1},{65368,10603,1},{65361,10608,1},{65358,10610,1}, {65356,10613,1},{65351,10613,1},{65348,10618,1},{65336,10617,1},{65323,10618,1}, {65301,10625,1},{65293,10632,1},{65288,10638,1},{65288,10647,1},{65284,10657,1}, {65279,10682,1},{65278,10683,1},{65274,10675,1},{65268,10668,1},{65248,10660,1}, {65241,10662,1},{65239,10665,1},{65239,10668,1},{65236,10670,1},{65236,10675,1}, {65229,10673,1},{65228,10675,1},{65226,10672,1},{65226,10667,1},{65228,10665,1}, {65228,10658,1},{65226,10657,1},{65226,10652,1},{65233,10650,1},{65234,10647,1}, {65238,10643,1},{65239,10635,1},{65244,10628,1},{65249,10615,1},{65251,10610,1}, {65253,10598,1},{65254,10597,1},{65264,10592,1},{65271,10590,1},{65276,10590,1}, {65284,10593,1},{65288,10593,1},{65291,10592,1},{65293,10585,1},{65298,10582,1}, {65306,10583,1},{65313,10580,1},{65319,10580,1},{65321,10578,1},{65323,10575,1}, {65324,10560,1},{65329,10557,1},{65326,10548,1},{65323,10545,1},{65323,10532,1}, {65323,10528,1},{65329,10525,1},{65329,10513,1},{65334,10512,1},{65341,10513,1}, {65344,10518,1},{65348,10528,1},{65356,10540,1},{65361,10540,1},{65366,10533,1}, {65368,10535,1},{65371,10535,1},{65373,10538,1},{65376,10540,1},{65376,10543,1}, {65379,10547,1},{65379,10555,1},{65383,10558,1},{65383,10560,1},{65376,10562,1}, {65373,10565,1},{65369,10570,1},{65364,10565,1},{65359,10568,1},{65358,10572,1}, {65359,10575,1},{65356,10578,1},{65358,10582,1},{65364,10575,1},{65368,10575,1}, {65371,10575,1},{65373,10573,1},{65383,10570,1},{65383,10583,1},{65386,10587,1}, {65386,10590,1},{65281,10772,129},{65281,10778,1},{65283,10782,1},{65281,10783,1}, {65278,10790,1},{65279,10793,1},{65278,10800,1},{65271,10803,1},{65276,10805,1}, {65274,10810,1},{65268,10817,1},{65269,10818,1},{65268,10820,1},{65263,10823,1}, {65261,10827,1},{65251,10830,1},{65248,10828,1},{65236,10820,1},{65231,10822,1}, {65226,10818,1},{65223,10820,1},{65219,10808,1},{65218,10807,1},{65213,10808,1}, {65213,10803,1},{65211,10798,1},{65213,10797,1},{65221,10797,1},{65224,10792,1}, {65226,10788,1},{65228,10790,1},{65231,10787,1},{65228,10782,1},{65224,10785,1}, {65219,10783,1},{65213,10765,1},{65214,10762,1},{65218,10762,1},{65223,10763,1}, {65226,10760,1},{65236,10758,1},{65244,10762,1},{65244,10758,1},{65243,10757,1}, {65244,10755,1},{65246,10755,1},{65249,10760,1},{65251,10762,1},{65254,10762,1}, {65258,10760,1},{65261,10763,1},{65268,10763,1},{65273,10765,1},{65278,10765,1}, {65279,10767,1},{65281,10772,1},{102,10467,129},{98,10465,1},{92,10467,1}, {90,10462,1},{83,10460,1},{82,10458,1},{85,10448,1},{88,10448,1},{92,10445,1}, {92,10448,1},{93,10448,1},{95,10442,1},{97,10442,1},{98,10447,1},{100,10445,1}, {102,10448,1},{105,10445,1},{105,10442,1},{102,10438,1},{102,10433,1},{100,10432,1}, {100,10425,1},{103,10423,1},{108,10423,1},{113,10433,1},{117,10433,1},{117,10438,1}, {120,10440,1},{117,10448,1},{117,10452,1},{120,10457,1},{122,10457,1},{123,10458,1}, {122,10460,1},{118,10458,1},{113,10458,1},{110,10465,1},{102,10467,1},{113,10415,129}, {105,10413,1},{107,10410,1},{105,10410,1},{100,10410,1},{98,10408,1},{98,10402,1}, {100,10400,1},{100,10395,1},{103,10392,1},{108,10390,1},{108,10395,1},{113,10395,1}, {113,10402,1},{118,10403,1},{113,10408,1},{115,10410,1},{118,10408,1},{118,10412,1}, {117,10415,1},{113,10415,1},{87,10317,129},{83,10315,1},{83,10312,1},{87,10305,1}, {90,10297,1},{97,10290,1},{98,10283,1},{103,10278,1},{103,10272,1},{100,10265,1}, {102,10262,1},{108,10268,1},{115,10272,1},{117,10275,1},{117,10280,1},{113,10288,1}, {108,10297,1},{102,10305,1},{88,10317,1},{85,10317,1},{80,10305,129},{72,10305,1}, {70,10302,1},{70,10300,1},{77,10293,1},{80,10287,1},{80,10265,1},{77,10255,1}, {80,10248,1},{88,10240,1},{92,10243,1},{95,10250,1},{108,10247,1},{112,10248,1}, {113,10250,1},{113,10253,1},{108,10260,1},{105,10262,1},{102,10260,1},{100,10262,1}, {102,10272,1},{100,10278,1},{93,10288,1},{83,10303,1},{78,10305,1},{122,10248,129}, {110,10245,1},{97,10247,1},{95,10243,1},{92,10238,1},{92,10237,1},{102,10228,1}, {105,10225,1},{110,10223,1},{120,10225,1},{128,10220,1},{135,10222,1},{140,10220,1}, {140,10222,1},{140,10228,1},{135,10235,1},{125,10247,1},{120,10248,1},{145,10250,129}, {128,10250,1},{127,10250,1},{128,10247,1},{142,10232,1},{145,10215,1},{147,10210,1}, {152,10205,1},{160,10200,1},{162,10203,1},{160,10210,1},{157,10218,1},{155,10233,1}, {153,10243,1},{150,10248,1},{143,10250,1},{195,10177,129},{187,10173,1}, {180,10173,1},{178,10172,1},{172,10165,1},{172,10160,1},{172,10155,1},{173,10147,1}, {178,10145,1},{187,10142,1},{192,10140,1},{200,10140,1},{205,10142,1},{207,10147,1}, {205,10155,1},{210,10160,1},{212,10163,1},{208,10170,1},{200,10177,1},{193,10177,1}, {207,10965,129},{208,10963,1},{207,10963,1},{198,10957,1},{193,10933,1}, {183,10933,1},{178,10928,1},{178,10930,1},{182,10933,1},{182,10935,1},{177,10932,1}, {170,10928,1},{165,10923,1},{157,10912,1},{153,10907,1},{137,10907,1},{122,10898,1}, {122,10905,1},{127,10913,1},{140,10923,1},{140,10927,1},{135,10923,1},{127,10917,1}, {122,10910,1},{117,10892,1},{112,10893,1},{100,10898,1},{95,10898,1},{88,10893,1}, {87,10892,1},{87,10888,1},{82,10885,1},{75,10888,1},{70,10887,1},{67,10892,1}, {62,10893,1},{50,10890,1},{42,10895,1},{35,10892,1},{32,10892,1},{30,10893,1}, {28,10905,1},{22,10912,1},{10,10917,1},{0,10930,1},{3,10917,1},{2,10915,1}, {0,10915,1},{65529,10918,1},{65518,10918,1},{65513,10922,1},{65514,10918,1}, {65516,10912,1},{65514,10907,1},{65513,10905,1},{65508,10907,1},{65511,10907,1}, {65509,10910,1},{65508,10908,1},{65503,10910,1},{65499,10913,1},{65499,10910,1}, {65486,10912,1},{65479,10917,1},{65481,10920,1},{65479,10922,1},{65476,10927,1}, {65478,10937,1},{65474,10942,1},{65474,10937,1},{65474,10935,1},{65473,10937,1}, {65471,10935,1},{65469,10940,1},{65464,10945,1},{65463,10952,1},{65461,10947,1}, {65463,10943,1},{65466,10938,1},{65466,10930,1},{65469,10927,1},{65463,10925,1}, {65451,10927,1},{65448,10928,1},{65444,10938,1},{65446,10942,1},{65449,10942,1}, {65451,10943,1},{65448,10957,1},{65444,10958,1},{65441,10960,1},{65441,10963,1}, {65438,10967,1},{65441,10972,1},{65446,10972,1},{65449,10975,1},{65448,10977,1}, {65444,10973,1},{65441,10973,1},{65433,10978,1},{65431,10980,1},{65428,10983,1}, {65424,10995,1},{65416,10992,1},{65413,10995,1},{65409,10995,1},{65408,11000,1}, {65403,11005,1},{65398,11007,1},{65389,11007,1},{65386,11005,1},{65371,11003,1}, {65363,11000,1},{65358,10992,1},{65356,10990,1},{65354,10992,1},{65353,10990,1}, {65349,10995,1},{65341,11008,1},{65329,11013,1},{65319,11010,1},{65313,11010,1}, {65306,11013,1},{65291,11017,1},{65281,11023,1},{65283,11028,1},{65279,11025,1}, {65281,11020,1},{65273,11015,1},{65269,11022,1},{65261,11022,1},{65256,11025,1}, {65246,11020,1},{65238,11023,1},{65234,11028,1},{65238,11032,1},{65248,11048,1}, {65249,11053,1},{65248,11058,1},{65246,11060,1},{65234,11065,1},{65231,11062,1}, {65228,11067,1},{65231,11072,1},{65241,11078,1},{65244,11088,1},{65248,11092,1}, {65248,11097,1},{65246,11097,1},{65238,11078,1},{65233,11075,1},{65233,11083,1}, {65228,11090,1},{65226,11095,1},{65229,11107,1},{65238,11118,1},{65244,11133,1}, {65241,11148,1},{65234,11155,1},{65238,11163,1},{65243,11170,1},{65246,11167,1}, {65249,11172,1},{65258,11170,1},{65261,11175,1},{65256,11173,1},{65253,11175,1}, {65246,11175,1},{65238,11180,1},{65231,11183,1},{65216,11182,1},{65196,11185,1}, {65183,11180,1},{65179,11187,1},{65179,11192,1},{65181,11195,1},{65201,11217,1}, {65204,11225,1},{65204,11230,1},{65201,11242,1},{65191,11255,1},{65194,11258,1}, {65194,11265,1},{65204,11277,1},{65219,11302,1},{65221,11302,1},{65221,11297,1}, {65226,11295,1},{65231,11298,1},{65231,11302,1},{65233,11302,1},{65243,11303,1}, {65234,11308,1},{65229,11313,1},{65226,11320,1},{65219,11323,1},{65214,11330,1}, {65209,11335,1},{65219,11332,1},{65209,11337,1},{65211,11343,1},{65216,11345,1}, {65218,11348,1},{65219,11362,1},{65211,11365,1},{65201,11363,1},{65193,11362,1}, {65188,11367,1},{65191,11383,1},{65199,11403,1},{65208,11410,1},{65216,11412,1}, {65201,11410,1},{65199,11412,1},{65198,11422,1},{65203,11428,1},{65211,11433,1}, {65214,11437,1},{65211,11435,1},{65206,11432,1},{65201,11430,1},{65199,11427,1}, {65196,11427,1},{65186,11443,1},{65186,11448,1},{65198,11450,1},{65201,11455,1}, {65193,11453,1},{65183,11452,1},{65174,11458,1},{65168,11460,1},{65149,11460,1}, {65134,11463,1},{65123,11462,1},{65119,11462,1},{65118,11463,1},{65119,11472,1}, {65131,11492,1},{65144,11522,1},{65156,11555,1},{65163,11567,1},{65164,11573,1}, {65173,11583,1},{65174,11597,1},{65181,11600,1},{65193,11600,1},{65209,11610,1}, {65213,11612,1},{65213,11615,1},{65213,11617,1},{65211,11617,1},{65209,11615,1}, {65211,11613,1},{65208,11612,1},{65211,11618,1},{65214,11618,1},{65218,11617,1}, {65219,11617,1},{65223,11627,1},{65226,11625,1},{65231,11618,1},{65236,11617,1}, {65236,11610,1},{65239,11612,1},{65244,11612,1},{65248,11613,1},{65254,11613,1}, {65253,11615,1},{65246,11617,1},{65244,11620,1},{65236,11622,1},{65234,11625,1}, {65236,11627,1},{65244,11635,1},{65253,11637,1},{65268,11637,1},{65279,11640,1}, {65281,11635,1},{65279,11633,1},{65274,11630,1},{65276,11630,1},{65279,11632,1}, {65281,11632,1},{65284,11630,1},{65284,11635,1},{65284,11640,1},{65286,11642,1}, {65283,11647,1},{65279,11647,1},{65279,11648,1},{65281,11652,1},{65284,11653,1}, {65314,11660,1},{65318,11660,1},{65314,11655,1},{65318,11653,1},{65319,11653,1}, {65319,11652,1},{65314,11642,1},{65321,11638,1},{65321,11633,1},{65319,11628,1}, {65326,11635,1},{65328,11643,1},{65331,11645,1},{65344,11647,1},{65351,11642,1}, {65358,11645,1},{65359,11640,1},{65358,11637,1},{65358,11633,1},{65354,11627,1}, {65356,11623,1},{65358,11622,1},{65359,11627,1},{65366,11633,1},{65374,11653,1}, {65379,11657,1},{65383,11653,1},{65388,11653,1},{65394,11662,1},{65399,11675,1}, {65406,11677,1},{65411,11678,1},{65414,11673,1},{65418,11677,1},{65423,11672,1}, {65434,11675,1},{65433,11677,1},{65426,11673,1},{65421,11678,1},{65414,11678,1}, {65416,11682,1},{65416,11683,1},{65408,11682,1},{65411,11692,1},{65416,11702,1}, {65421,11703,1},{65428,11710,1},{65439,11718,1},{65446,11725,1},{65453,11727,1}, {65456,11728,1},{65451,11733,1},{65446,11735,1},{65451,11738,1},{65448,11742,1}, {65449,11745,1},{65454,11745,1},{65454,11748,1},{65453,11748,1},{65454,11748,1}, {65456,11748,1},{65454,11755,1},{65456,11757,1},{65458,11762,1},{65459,11762,1}, {65463,11762,1},{65464,11752,1},{65466,11748,1},{65468,11748,1},{65466,11753,1}, {65469,11753,1},{65471,11757,1},{65473,11757,1},{65474,11753,1},{65476,11758,1}, {65483,11760,1},{65486,11755,1},{65489,11762,1},{65491,11763,1},{65494,11763,1}, {65493,11760,1},{65484,11743,1},{65488,11747,1},{65493,11745,1},{65501,11750,1}, {65503,11750,1},{65503,11747,1},{65511,11743,1},{65516,11747,1},{65521,11747,1}, {65526,11748,1},{65533,11753,1},{2,11752,1},{3,11748,1},{5,11750,1},{5,11747,1}, {12,11747,1},{13,11752,1},{17,11748,1},{23,11753,1},{28,11752,1},{33,11755,1}, {40,11757,1},{43,11762,1},{48,11762,1},{57,11767,1},{62,11770,1},{63,11772,1}, {70,11772,1},{73,11775,1},{82,11782,1},{82,11788,1},{83,11790,1},{83,11793,1}, {78,11798,1},{78,11802,1},{80,11803,1},{85,11803,1},{90,11800,1},{98,11797,1}, {108,11790,1},{112,11790,1},{110,11795,1},{107,11800,1},{97,11803,1},{92,11807,1}, {88,11817,1},{85,11833,1},{82,11835,1},{80,11838,1},{83,11843,1},{83,11850,1}, {80,11855,1},{85,11867,1},{80,11877,1},{80,11880,1},{87,11887,1},{90,11895,1}, {98,11902,1},{100,11900,1},{103,11900,1},{105,11900,1},{107,11892,1},{105,11887,1}, {105,11885,1},{115,11880,1},{117,11877,1},{118,11878,1},{120,11878,1},{130,11865,1}, {135,11860,1},{137,11853,1},{140,11848,1},{140,11845,1},{143,11843,1},{145,11840,1}, {148,11842,1},{165,11813,1},{173,11805,1},{178,11805,1},{182,11792,1},{188,11788,1}, {188,11787,1},{190,11785,1},{192,11787,1},{198,11787,1},{198,11785,1},{202,11783,1}, {203,11775,1},{205,11775,1},{203,11780,1},{205,11790,1},{207,11790,1},{208,11783,1}, {210,11783,1},{208,11790,1},{212,11792,1},{212,11793,1},{217,11793,1},{222,11807,1}, {228,11810,1},{232,11810,1},{238,11805,1},{237,11803,1},{237,11802,1},{245,11798,1}, {262,11782,1},{277,11778,1},{278,11773,1},{282,11762,1},{283,11762,1},{285,11765,1}, {287,11767,1},{288,11772,1},{290,11773,1},{292,11753,1},{297,11768,1},{300,11765,1}, {298,11757,1},{305,11763,1},{308,11762,1},{310,11755,1},{310,11748,1},{313,11745,1}, {317,11745,1},{318,11735,1},{322,11732,1},{322,11727,1},{325,11727,1},{327,11727,1}, {323,11733,1},{323,11735,1},{330,11737,1},{333,11740,1},{335,11740,1},{337,11743,1}, {343,11745,1},{345,11733,1},{343,11732,1},{347,11730,1},{348,11723,1},{353,11720,1}, {360,11722,1},{362,11720,1},{362,11710,1},{360,11703,1},{363,11707,1},{365,11718,1}, {363,11730,1},{363,11743,1},{360,11750,1},{365,11752,1},{370,11748,1},{375,11748,1}, {378,11747,1},{377,11750,1},{367,11753,1},{363,11762,1},{363,11775,1},{368,11778,1}, {370,11783,1},{372,11783,1},{377,11770,1},{378,11772,1},{377,11777,1},{378,11778,1}, {387,11770,1},{388,11762,1},{392,11757,1},{393,11752,1},{393,11753,1},{393,11758,1}, {390,11765,1},{390,11768,1},{392,11770,1},{395,11762,1},{405,11752,1},{403,11747,1}, {408,11747,1},{410,11740,1},{413,11740,1},{417,11737,1},{412,11752,1},{417,11758,1}, {64753,10990,129},{64746,11005,1},{64734,11028,1},{64733,11033,1},{64729,11038,1}, {64719,11068,1},{64716,11072,1},{64716,11083,1},{64711,11102,1},{64711,11108,1}, {64714,11110,1},{64711,11112,1},{64711,11115,1},{64708,11117,1},{64711,11127,1}, {64709,11130,1},{64711,11132,1},{64709,11133,1},{64709,11137,1},{64708,11138,1}, {64709,11143,1},{64704,11145,1},{64703,11152,1},{64704,11155,1},{64704,11157,1}, {64703,11158,1},{64703,11162,1},{64699,11163,1},{64699,11170,1},{64699,11172,1}, {64703,11170,1},{64706,11172,1},{64706,11173,1},{64703,11175,1},{64704,11177,1}, {64706,11177,1},{64709,11178,1},{64708,11183,1},{64709,11185,1},{64704,11192,1}, {64706,11193,1},{64708,11195,1},{64704,11203,1},{64704,11218,1},{64701,11225,1}, {64703,11228,1},{64703,11235,1},{64701,11238,1},{64698,11238,1},{64696,11245,1}, {64696,11257,1},{64691,11267,1},{64693,11270,1},{64694,11277,1},{64698,11278,1}, {64696,11282,1},{64699,11283,1},{64696,11285,1},{64696,11292,1},{64703,11297,1}, {64706,11303,1},{64708,11318,1},{64708,11323,1},{64703,11335,1},{64696,11340,1}, {64698,11345,1},{64696,11348,1},{64694,11348,1},{64693,11353,1},{64689,11363,1}, {64686,11367,1},{64686,11372,1},{64683,11372,1},{64683,11375,1},{64686,11380,1}, {64683,11382,1},{64681,11382,1},{64679,11387,1},{64678,11392,1},{64679,11397,1}, {64674,11397,1},{64676,11403,1},{64674,11405,1},{64673,11407,1},{64673,11412,1}, {64674,11413,1},{64671,11422,1},{64673,11423,1},{64674,11425,1},{64674,11428,1}, {64671,11437,1},{64669,11438,1},{64664,11438,1},{64663,11437,1},{64661,11438,1}, {64661,11447,1},{64658,11457,1},{64659,11462,1},{64666,11462,1},{64669,11458,1}, {64669,11455,1},{64674,11450,1},{64673,11447,1},{64681,11442,1},{64684,11443,1}, {64691,11442,1},{64691,11440,1},{64684,11440,1},{64683,11438,1},{64684,11437,1}, {64689,11437,1},{64693,11435,1},{64721,11440,1},{64733,11445,1},{64744,11443,1}, {64749,11447,1},{64753,11447,1},{64756,11443,1},{64759,11438,1},{64761,11432,1}, {64766,11425,1},{64764,11422,1},{64766,11415,1},{64774,11403,1},{64768,11393,1}, {64768,11383,1},{64763,11378,1},{64764,11372,1},{64764,11368,1},{64766,11350,1}, {64763,11342,1},{64756,11330,1},{64758,11328,1},{64761,11325,1},{64761,11318,1}, {64766,11310,1},{64769,11305,1},{64771,11298,1},{64776,11285,1},{64781,11278,1}, {64783,11275,1},{64791,11275,1},{64796,11282,1},{64801,11282,1},{64808,11283,1}, {64813,11280,1},{64816,11277,1},{64814,11273,1},{64811,11272,1},{64811,11270,1}, {64816,11260,1},{64816,11262,1},{64816,11267,1},{64819,11268,1},{64828,11260,1}, {64829,11262,1},{64831,11267,1},{64833,11265,1},{64831,11262,1},{64833,11260,1}, {64838,11258,1},{64844,11260,1},{64849,11257,1},{64849,11255,1},{64844,11257,1}, {64844,11253,1},{64848,11245,1},{64849,11235,1},{64848,11228,1},{64844,11210,1}, {64846,11207,1},{64849,11205,1},{64858,11198,1},{64858,11193,1},{64854,11188,1}, {64858,11173,1},{64861,11168,1},{64871,11158,1},{64873,11148,1},{64873,11147,1}, {64866,11143,1},{64864,11138,1},{64866,11120,1},{64866,11118,1},{64866,11115,1}, {64876,11108,1},{64889,11107,1},{64893,11102,1},{64893,11095,1},{64894,11092,1}, {64893,11078,1},{64891,11073,1},{64886,11070,1},{64886,11067,1},{64883,11068,1}, {64881,11067,1},{64869,11065,1},{64851,11057,1},{64841,11048,1},{64838,11038,1}, {64839,11033,1},{64841,11030,1},{64846,11020,1},{64849,11018,1},{64846,11013,1}, {64843,10998,1},{64844,10987,1},{64849,10972,1},{64851,10958,1},{64853,10952,1}, {64856,10948,1},{64849,10945,1},{64848,10930,1},{64851,10913,1},{64858,10902,1}, {64856,10898,1},{64851,10898,1},{64851,10897,1},{64851,10892,1},{64856,10888,1}, {64856,10883,1},{64854,10878,1},{64854,10872,1},{64858,10867,1},{64858,10863,1}, {64861,10860,1},{64869,10857,1},{64886,10855,1},{64896,10842,1},{64909,10832,1}, {64909,10822,1},{64906,10818,1},{64903,10818,1},{64901,10813,1},{64903,10807,1}, {64908,10798,1},{64913,10788,1},{64918,10783,1},{64918,10782,1},{64914,10782,1}, {64914,10777,1},{64911,10773,1},{64911,10765,1},{64918,10758,1},{64921,10748,1}, {64934,10738,1},{64939,10733,1},{64939,10725,1},{64938,10718,1},{64939,10712,1}, {64943,10710,1},{64944,10703,1},{64944,10702,1},{64939,10702,1},{64936,10700,1}, {64933,10702,1},{64928,10700,1},{64926,10683,1},{64926,10675,1},{64934,10670,1}, {64934,10653,1},{64931,10650,1},{64934,10643,1},{64936,10637,1},{64943,10627,1}, {64941,10623,1},{64934,10620,1},{64934,10617,1},{64938,10612,1},{64944,10610,1}, {64948,10608,1},{64948,10603,1},{64944,10600,1},{64938,10597,1},{64928,10588,1}, {64913,10583,1},{64894,10582,1},{64889,10580,1},{64886,10577,1},{64884,10572,1}, {64886,10568,1},{64891,10567,1},{64889,10563,1},{64886,10563,1},{64874,10563,1}, {64863,10552,1},{64854,10548,1},{64854,10547,1},{64854,10545,1},{64861,10540,1}, {64866,10540,1},{64869,10537,1},{64868,10533,1},{64864,10532,1},{64859,10527,1}, {64859,10522,1},{64851,10527,1},{64851,10528,1},{64854,10530,1},{64854,10538,1}, {64849,10542,1},{64851,10545,1},{64849,10548,1},{64849,10555,1},{64853,10570,1}, {64849,10578,1},{64851,10585,1},{64851,10587,1},{64853,10592,1},{64853,10600,1}, {64851,10607,1},{64844,10617,1},{64841,10625,1},{64839,10625,1},{64836,10632,1}, {64836,10638,1},{64839,10643,1},{64838,10652,1},{64836,10653,1},{64829,10655,1}, {64821,10647,1},{64818,10647,1},{64818,10642,1},{64813,10638,1},{64806,10638,1}, {64798,10642,1},{64801,10645,1},{64798,10650,1},{64794,10658,1},{64791,10712,1}, {64788,10725,1},{64786,10740,1},{64784,10742,1},{64786,10747,1},{64783,10748,1}, {64781,10755,1},{64778,10762,1},{64773,10768,1},{64771,10770,1},{64768,10782,1}, {64763,10787,1},{64764,10793,1},{64763,10798,1},{64758,10817,1},{64756,10845,1}, {64758,10850,1},{64764,10850,1},{64766,10853,1},{64768,10860,1},{64766,10865,1}, {64764,10867,1},{64764,10868,1},{64766,10868,1},{64769,10870,1},{64768,10875,1}, {64769,10880,1},{64774,10883,1},{64774,10887,1},{64766,10890,1},{64766,10897,1}, {64763,10902,1},{64766,10905,1},{64768,10913,1},{64766,10928,1},{64764,10940,1}, {64761,10940,1},{64758,10942,1},{64759,10948,1},{64758,10963,1},{64758,10965,1}, {64751,10988,1},{64753,10990,1},{64846,11293,129},{64848,11307,1},{64846,11320,1}, {64848,11345,1},{64846,11350,1},{64848,11372,1},{64848,11382,1},{64849,11393,1}, {64846,11402,1},{64844,11405,1},{64843,11410,1},{64841,11413,1},{64838,11413,1}, {64836,11407,1},{64834,11400,1},{64831,11395,1},{64831,11387,1},{64828,11385,1}, {64828,11388,1},{64824,11390,1},{64823,11388,1},{64826,11368,1},{64826,11367,1}, {64824,11368,1},{64824,11367,1},{64823,11362,1},{64821,11360,1},{64818,11358,1}, {64819,11357,1},{64818,11355,1},{64814,11355,1},{64811,11353,1},{64814,11348,1}, {64814,11330,1},{64814,11325,1},{64814,11318,1},{64819,11315,1},{64821,11315,1}, {64823,11312,1},{64818,11310,1},{64814,11315,1},{64813,11310,1},{64819,11285,1}, {64819,11275,1},{64821,11272,1},{64828,11272,1},{64828,11270,1},{64833,11268,1}, {64834,11277,1},{64843,11283,1},{64846,11283,1},{64846,11295,1},{64726,11448,129}, {64726,11452,1},{64723,11455,1},{64724,11460,1},{64723,11470,1},{64719,11477,1}, {64716,11487,1},{64718,11502,1},{64731,11517,1},{64726,11532,1},{64721,11547,1}, {64714,11555,1},{64706,11563,1},{64701,11570,1},{64696,11572,1},{64686,11560,1}, {64684,11552,1},{64681,11550,1},{64676,11538,1},{64673,11530,1},{64664,11527,1}, {64663,11520,1},{64658,11520,1},{64658,11522,1},{64661,11523,1},{64658,11525,1}, {64654,11523,1},{64651,11522,1},{64653,11510,1},{64654,11510,1},{64658,11517,1}, {64666,11517,1},{64669,11515,1},{64671,11512,1},{64676,11508,1},{64681,11502,1}, {64686,11497,1},{64691,11490,1},{64694,11480,1},{64696,11470,1},{64696,11462,1}, {64699,11457,1},{64709,11450,1},{64718,11447,1},{64726,11445,1},{64728,11448,1}, {64714,11633,129},{64716,11638,1},{64714,11645,1},{64708,11658,1},{64708,11665,1}, {64699,11673,1},{64696,11673,1},{64688,11668,1},{64679,11667,1},{64673,11662,1}, {64659,11657,1},{64654,11652,1},{64649,11652,1},{64653,11655,1},{64651,11657,1}, {64648,11660,1},{64646,11657,1},{64644,11647,1},{64646,11647,1},{64648,11648,1}, {64653,11648,1},{64653,11645,1},{64649,11642,1},{64648,11642,1},{64639,11640,1}, {64644,11638,1},{64646,11633,1},{64644,11627,1},{64646,11623,1},{64644,11620,1}, {64646,11618,1},{64648,11618,1},{64649,11612,1},{64646,11608,1},{64648,11607,1}, {64649,11608,1},{64649,11603,1},{64646,11603,1},{64644,11602,1},{64651,11597,1}, {64649,11593,1},{64651,11590,1},{64654,11585,1},{64661,11585,1},{64663,11588,1}, {64661,11588,1},{64658,11595,1},{64659,11598,1},{64661,11600,1},{64663,11605,1}, {64659,11607,1},{64661,11608,1},{64663,11608,1},{64664,11607,1},{64676,11608,1}, {64689,11605,1},{64694,11607,1},{64696,11610,1},{64698,11612,1},{64699,11615,1}, {64713,11628,1},{64714,11635,1},{64698,11722,129},{64696,11727,1},{64688,11743,1}, {64689,11743,1},{64694,11745,1},{64694,11748,1},{64694,11757,1},{64689,11757,1}, {64684,11758,1},{64686,11760,1},{64693,11760,1},{64689,11763,1},{64684,11763,1}, {64679,11765,1},{64678,11770,1},{64679,11773,1},{64678,11773,1},{64676,11777,1}, {64674,11777,1},{64673,11778,1},{64671,11775,1},{64664,11778,1},{64666,11790,1}, {64664,11790,1},{64663,11790,1},{64663,11795,1},{64661,11797,1},{64671,11807,1}, {64671,11813,1},{64669,11820,1},{64669,11827,1},{64673,11828,1},{64676,11828,1}, {64681,11823,1},{64679,11820,1},{64683,11818,1},{64688,11813,1},{64686,11812,1}, {64689,11808,1},{64688,11798,1},{64689,11797,1},{64699,11783,1},{64706,11778,1}, {64713,11770,1},{64721,11773,1},{64721,11777,1},{64724,11780,1},{64724,11785,1}, {64728,11793,1},{64728,11797,1},{64724,11798,1},{64726,11800,1},{64724,11810,1}, {64724,11812,1},{64721,11817,1},{64714,11817,1},{64701,11825,1},{64701,11828,1}, {64699,11832,1},{64701,11837,1},{64706,11840,1},{64711,11848,1},{64706,11865,1}, {64699,11868,1},{64691,11868,1},{64683,11865,1},{64681,11867,1},{64689,11872,1}, {64698,11872,1},{64701,11873,1},{64706,11878,1},{64708,11888,1},{64704,11900,1}, {64698,11900,1},{64689,11905,1},{64678,11902,1},{64676,11903,1},{64673,11903,1}, {64671,11907,1},{64673,11913,1},{64676,11913,1},{64676,11915,1},{64681,11917,1}, {64678,11920,1},{64673,11920,1},{64671,11918,1},{64666,11918,1},{64664,11918,1}, {64661,11915,1},{64663,11912,1},{64659,11910,1},{64661,11908,1},{64659,11897,1}, {64668,11890,1},{64663,11887,1},{64664,11882,1},{64664,11878,1},{64664,11875,1}, {64661,11870,1},{64658,11873,1},{64658,11890,1},{64654,11893,1},{64653,11895,1}, {64651,11893,1},{64651,11882,1},{64654,11878,1},{64656,11875,1},{64654,11865,1}, {64649,11848,1},{64649,11843,1},{64651,11842,1},{64658,11838,1},{64663,11843,1}, {64669,11843,1},{64678,11840,1},{64669,11840,1},{64668,11835,1},{64664,11833,1}, {64663,11830,1},{64658,11828,1},{64658,11827,1},{64649,11815,1},{64649,11812,1}, {64651,11810,1},{64649,11805,1},{64651,11803,1},{64649,11800,1},{64646,11798,1}, {64644,11792,1},{64641,11790,1},{64643,11785,1},{64646,11783,1},{64643,11778,1}, {64644,11772,1},{64643,11765,1},{64639,11763,1},{64634,11755,1},{64631,11740,1}, {64631,11735,1},{64633,11730,1},{64634,11728,1},{64634,11723,1},{64633,11720,1}, {64626,11715,1},{64624,11705,1},{64629,11697,1},{64631,11680,1},{64634,11677,1}, {64634,11675,1},{64638,11675,1},{64643,11677,1},{64644,11675,1},{64648,11675,1}, {64653,11680,1},{64653,11682,1},{64658,11682,1},{64663,11678,1},{64664,11680,1}, {64668,11680,1},{64669,11677,1},{64678,11680,1},{64679,11683,1},{64684,11683,1}, {64683,11687,1},{64684,11695,1},{64694,11712,1},{64698,11712,1},{64699,11715,1}, {64699,11720,1},{64698,11722,1},{64593,11903,129},{64594,11910,1},{64598,11917,1}, {64598,11922,1},{64599,11928,1},{64598,11938,1},{64599,11947,1},{64598,11953,1}, {64601,11960,1},{64601,11965,1},{64599,11967,1},{64598,11973,1},{64598,11982,1}, {64608,11995,1},{64591,12008,1},{64588,12013,1},{64589,12018,1},{64586,12023,1}, {64571,12027,1},{64571,12032,1},{64568,12033,1},{64573,12038,1},{64571,12048,1}, {64566,12050,1},{64564,12057,1},{64561,12060,1},{64553,12063,1},{64546,12067,1}, {64543,12077,1},{64538,12082,1},{64531,12083,1},{64528,12083,1},{64521,12077,1}, {64516,12072,1},{64513,12062,1},{64513,12055,1},{64509,12050,1},{64504,12047,1}, {64511,12037,1},{64511,12022,1},{64513,12017,1},{64518,12012,1},{64519,12008,1}, {64524,12005,1},{64524,12003,1},{64531,12002,1},{64538,11997,1},{64538,11992,1}, {64541,11992,1},{64541,11988,1},{64543,11987,1},{64544,11980,1},{64546,11978,1}, {64549,11970,1},{64556,11968,1},{64556,11963,1},{64559,11963,1},{64559,11953,1}, {64561,11947,1},{64559,11942,1},{64556,11940,1},{64559,11937,1},{64561,11928,1}, {64561,11920,1},{64566,11907,1},{64571,11902,1},{64574,11900,1},{64579,11893,1}, {64588,11898,1},{64593,11903,1},{64709,12027,129},{64708,12037,1},{64709,12040,1}, {64713,12043,1},{64708,12047,1},{64711,12052,1},{64708,12055,1},{64708,12060,1}, {64713,12060,1},{64711,12063,1},{64709,12065,1},{64703,12075,1},{64701,12092,1}, {64703,12097,1},{64696,12103,1},{64689,12127,1},{64678,12140,1},{64679,12145,1}, {64678,12148,1},{64676,12152,1},{64679,12157,1},{64683,12157,1},{64681,12160,1}, {64686,12160,1},{64689,12162,1},{64684,12168,1},{64688,12177,1},{64686,12180,1}, {64688,12183,1},{64686,12190,1},{64688,12193,1},{64691,12195,1},{64693,12203,1}, {64691,12203,1},{64688,12202,1},{64684,12203,1},{64684,12208,1},{64681,12215,1}, {64673,12223,1},{64671,12228,1},{64674,12235,1},{64676,12248,1},{64681,12252,1}, {64684,12248,1},{64686,12248,1},{64689,12250,1},{64689,12255,1},{64696,12260,1}, {64698,12268,1},{64701,12277,1},{64704,12280,1},{64708,12290,1},{64713,12292,1}, {64714,12295,1},{64718,12290,1},{64716,12283,1},{64713,12278,1},{64713,12273,1}, {64721,12278,1},{64724,12278,1},{64729,12285,1},{64728,12288,1},{64726,12290,1}, {64721,12298,1},{64716,12298,1},{64711,12300,1},{64706,12303,1},{64704,12303,1}, {64701,12298,1},{64703,12295,1},{64701,12292,1},{64698,12290,1},{64693,12290,1}, {64689,12290,1},{64693,12280,1},{64688,12280,1},{64681,12285,1},{64676,12285,1}, {64674,12278,1},{64674,12275,1},{64673,12273,1},{64669,12257,1},{64664,12252,1}, {64661,12238,1},{64663,12232,1},{64661,12223,1},{64663,12217,1},{64663,12212,1}, {64659,12207,1},{64656,12202,1},{64653,12187,1},{64648,12178,1},{64648,12175,1}, {64651,12168,1},{64646,12165,1},{64646,12163,1},{64651,12163,1},{64654,12157,1}, {64653,12150,1},{64654,12147,1},{64656,12138,1},{64653,12137,1},{64648,12137,1}, {64644,12132,1},{64646,12120,1},{64644,12110,1},{64641,12102,1},{64644,12092,1}, {64648,12087,1},{64653,12085,1},{64654,12083,1},{64654,12078,1},{64649,12077,1}, {64648,12075,1},{64651,12068,1},{64651,12065,1},{64656,12057,1},{64656,12048,1}, {64656,12045,1},{64656,12040,1},{64656,12038,1},{64653,12032,1},{64653,12025,1}, {64659,12015,1},{64656,12010,1},{64654,12002,1},{64654,11997,1},{64653,11993,1}, {64649,11993,1},{64649,11990,1},{64654,11988,1},{64656,11983,1},{64658,11982,1}, {64664,11980,1},{64668,11980,1},{64678,11980,1},{64686,11988,1},{64694,11987,1}, {64694,11988,1},{64691,11988,1},{64689,11992,1},{64693,11997,1},{64691,12000,1}, {64693,12002,1},{64694,12000,1},{64698,12003,1},{64698,12008,1},{64696,12008,1}, {64696,12012,1},{64701,12012,1},{64699,12013,1},{64701,12015,1},{64706,12020,1}, {64709,12028,1},{64709,12340,129},{64708,12345,1},{64709,12348,1},{64711,12353,1}, {64711,12357,1},{64709,12357,1},{64701,12352,1},{64698,12358,1},{64699,12360,1}, {64701,12360,1},{64706,12358,1},{64706,12363,1},{64709,12365,1},{64713,12362,1}, {64714,12365,1},{64713,12367,1},{64709,12368,1},{64711,12372,1},{64713,12370,1}, {64714,12375,1},{64718,12380,1},{64713,12387,1},{64713,12393,1},{64711,12395,1}, {64709,12393,1},{64708,12390,1},{64706,12378,1},{64693,12370,1},{64693,12367,1}, {64694,12365,1},{64693,12363,1},{64689,12357,1},{64688,12357,1},{64683,12360,1}, {64679,12358,1},{64679,12353,1},{64683,12350,1},{64683,12348,1},{64678,12345,1}, {64676,12340,1},{64683,12333,1},{64681,12328,1},{64681,12323,1},{64683,12322,1}, {64689,12332,1},{64694,12335,1},{64701,12348,1},{64703,12348,1},{64704,12347,1}, {64704,12337,1},{64709,12342,1},{64723,12447,129},{64723,12458,1},{64716,12458,1}, {64716,12460,1},{64718,12465,1},{64721,12477,1},{64718,12485,1},{64719,12492,1}, {64721,12495,1},{64719,12498,1},{64721,12508,1},{64713,12513,1},{64703,12513,1}, {64701,12513,1},{64699,12503,1},{64699,12493,1},{64694,12475,1},{64696,12465,1}, {64691,12455,1},{64693,12450,1},{64689,12442,1},{64691,12440,1},{64691,12435,1}, {64694,12433,1},{64698,12437,1},{64704,12440,1},{64713,12455,1},{64713,12453,1}, {64713,12448,1},{64708,12440,1},{64713,12440,1},{64723,12447,1},{64589,12510,129}, {64593,12513,1},{64594,12522,1},{64599,12527,1},{64606,12535,1},{64613,12555,1}, {64618,12560,1},{64616,12565,1},{64618,12570,1},{64621,12577,1},{64621,12582,1}, {64623,12585,1},{64623,12595,1},{64638,12615,1},{64638,12628,1},{64641,12647,1}, {64646,12652,1},{64651,12653,1},{64656,12658,1},{64656,12663,1},{64659,12667,1}, {64661,12678,1},{64659,12685,1},{64668,12695,1},{64668,12702,1},{64688,12723,1}, {64689,12727,1},{64693,12730,1},{64696,12730,1},{64699,12723,1},{64703,12720,1}, {64699,12710,1},{64699,12708,1},{64704,12698,1},{64704,12695,1},{64698,12687,1}, {64694,12678,1},{64694,12673,1},{64694,12670,1},{64688,12657,1},{64688,12653,1}, {64691,12650,1},{64693,12642,1},{64693,12635,1},{64686,12623,1},{64686,12617,1}, {64684,12608,1},{64684,12602,1},{64688,12593,1},{64688,12585,1},{64683,12572,1}, {64683,12562,1},{64681,12558,1},{64681,12553,1},{64678,12547,1},{64678,12538,1}, {64673,12515,1},{64668,12510,1},{64656,12510,1},{64653,12502,1},{64641,12497,1}, {64636,12487,1},{64634,12480,1},{64631,12475,1},{64629,12470,1},{64624,12467,1}, {64619,12460,1},{64618,12455,1},{64618,12442,1},{64616,12438,1},{64614,12428,1}, {64609,12418,1},{64606,12415,1},{64601,12398,1},{64588,12387,1},{64584,12378,1}, {64579,12377,1},{64573,12367,1},{64571,12367,1},{64563,12367,1},{64556,12363,1}, {64551,12367,1},{64546,12365,1},{64543,12358,1},{64533,12358,1},{64529,12360,1}, {64533,12363,1},{64533,12370,1},{64531,12375,1},{64528,12377,1},{64526,12375,1}, {64521,12367,1},{64519,12360,1},{64518,12357,1},{64518,12353,1},{64513,12352,1}, {64513,12348,1},{64508,12350,1},{64499,12347,1},{64503,12355,1},{64499,12362,1}, {64501,12365,1},{64498,12370,1},{64499,12375,1},{64498,12382,1},{64499,12383,1}, {64506,12393,1},{64508,12403,1},{64511,12405,1},{64513,12408,1},{64518,12412,1}, {64518,12438,1},{64519,12443,1},{64528,12452,1},{64534,12457,1},{64546,12473,1}, {64553,12477,1},{64563,12485,1},{64571,12498,1},{64581,12500,1},{64589,12510,1}, {64769,12597,129},{64766,12608,1},{64764,12618,1},{64768,12625,1},{64766,12633,1}, {64769,12638,1},{64773,12642,1},{64773,12645,1},{64776,12648,1},{64779,12662,1}, {64778,12663,1},{64774,12663,1},{64771,12670,1},{64769,12672,1},{64769,12680,1}, {64763,12683,1},{64759,12683,1},{64761,12678,1},{64759,12668,1},{64758,12662,1}, {64749,12652,1},{64739,12647,1},{64743,12640,1},{64744,12628,1},{64744,12618,1}, {64748,12612,1},{64744,12593,1},{64743,12592,1},{64734,12578,1},{64736,12577,1}, {64743,12582,1},{64751,12582,1},{64756,12588,1},{64759,12587,1},{64763,12592,1}, {64768,12595,1},{64771,12597,1},{64824,13165,129},{64823,13167,1},{64819,13165,1}, {64819,13168,1},{64823,13170,1},{64819,13172,1},{64816,13175,1},{64813,13170,1}, {64814,13167,1},{64811,13163,1},{64806,13163,1},{64799,13168,1},{64798,13167,1}, {64794,13167,1},{64794,13170,1},{64791,13168,1},{64788,13168,1},{64788,13167,1}, {64784,13167,1},{64773,13163,1},{64771,13160,1},{64766,13157,1},{64764,13150,1}, {64759,13148,1},{64759,13147,1},{64756,13147,1},{64753,13140,1},{64748,13137,1}, {64746,13138,1},{64744,13135,1},{64743,13133,1},{64741,13137,1},{64734,13132,1}, {64734,13130,1},{64739,13130,1},{64743,13128,1},{64741,13127,1},{64736,13125,1}, {64734,13113,1},{64736,13110,1},{64744,13112,1},{64749,13108,1},{64754,13112,1}, {64754,13115,1},{64758,13113,1},{64759,13117,1},{64761,13115,1},{64763,13112,1}, {64766,13112,1},{64768,13113,1},{64764,13120,1},{64766,13125,1},{64768,13120,1}, {64771,13118,1},{64773,13118,1},{64776,13120,1},{64788,13123,1},{64794,13132,1}, {64794,13133,1},{64793,13133,1},{64793,13135,1},{64796,13137,1},{64798,13140,1}, {64799,13138,1},{64801,13140,1},{64803,13145,1},{64806,13145,1},{64813,13148,1}, {64814,13155,1},{64818,13152,1},{64821,13153,1},{64823,13157,1},{64824,13158,1}, {64823,13160,1},{64824,13165,1},{64978,12007,129},{64979,11993,1},{64976,11990,1}, {64973,11985,1},{64969,11983,1},{64964,11977,1},{64966,11967,1},{64969,11963,1}, {64973,11965,1},{64974,11958,1},{64971,11957,1},{64971,11955,1},{64976,11955,1}, {64981,11952,1},{64979,11945,1},{64976,11947,1},{64978,11942,1},{64984,11943,1}, {64996,11935,1},{65003,11935,1},{65008,11937,1},{65018,11938,1},{65024,11940,1}, {65029,11947,1},{65033,11947,1},{65044,11952,1},{65049,11952,1},{65063,11950,1}, {65066,11952,1},{65079,11960,1},{65106,11962,1},{65113,11960,1},{65118,11963,1}, {65126,11960,1},{65128,11962,1},{65131,11962,1},{65138,11965,1},{65138,11960,1}, {65133,11960,1},{65138,11958,1},{65161,11948,1},{65164,11945,1},{65174,11948,1}, {65179,11952,1},{65188,11948,1},{65188,11943,1},{65193,11935,1},{65193,11930,1}, {65191,11928,1},{65186,11922,1},{65188,11913,1},{65184,11912,1},{65184,11902,1}, {65183,11900,1},{65179,11900,1},{65181,11897,1},{65178,11893,1},{65179,11892,1}, {65188,11888,1},{65198,11885,1},{65203,11883,1},{65206,11885,1},{65211,11883,1}, {65216,11883,1},{65226,11877,1},{65229,11878,1},{65228,11882,1},{65229,11885,1}, {65238,11885,1},{65246,11888,1},{65249,11888,1},{65251,11887,1},{65249,11877,1}, {65259,11877,1},{65271,11878,1},{65274,11882,1},{65269,11887,1},{65271,11892,1}, {65278,11902,1},{65286,11905,1},{65289,11913,1},{65296,11915,1},{65303,11912,1}, {65306,11913,1},{65309,11912,1},{65313,11913,1},{65316,11913,1},{65326,11918,1}, {65334,11922,1},{65338,11923,1},{65341,11930,1},{65339,11933,1},{65343,11935,1}, {65353,11937,1},{65356,11933,1},{65368,11930,1},{65378,11933,1},{65388,11930,1}, {65396,11928,1},{65401,11933,1},{65408,11932,1},{65413,11932,1},{65418,11935,1}, {65424,11945,1},{65438,11947,1},{65449,11952,1},{65456,11960,1},{65461,11968,1}, {65466,11965,1},{65468,11970,1},{65473,11973,1},{65449,11982,1},{65448,11985,1}, {65451,11987,1},{65466,11985,1},{65473,11980,1},{65488,11975,1},{65501,11975,1}, {65511,11978,1},{65518,11982,1},{65521,11980,1},{65524,11980,1},{65524,11970,1}, {65529,11965,1},{0,11962,1},{0,11967,1},{2,11967,1},{2,11968,1},{0,11972,1}, {65528,11978,1},{65526,11982,1},{0,11987,1},{7,11988,1},{10,11988,1},{20,11978,1}, {22,11978,1},{25,11980,1},{25,11983,1},{28,11987,1},{30,11987,1},{35,11985,1}, {40,11988,1},{47,11992,1},{48,11995,1},{50,12000,1},{52,12003,1},{57,12003,1}, {67,12002,1},{72,12003,1},{75,12007,1},{75,12012,1},{80,12022,1},{83,12023,1}, {97,12025,1},{98,12030,1},{98,12032,1},{97,12035,1},{87,12033,1},{85,12037,1}, {80,12042,1},{80,12053,1},{77,12057,1},{80,12058,1},{83,12062,1},{83,12060,1}, {88,12062,1},{98,12068,1},{97,12073,1},{98,12073,1},{102,12075,1},{105,12080,1}, {115,12080,1},{122,12083,1},{132,12082,1},{133,12083,1},{132,12087,1},{135,12090,1}, {132,12090,1},{132,12092,1},{135,12095,1},{132,12112,1},{123,12125,1},{123,12127,1}, {125,12133,1},{125,12138,1},{128,12143,1},{128,12145,1},{125,12147,1},{123,12143,1}, {120,12145,1},{118,12143,1},{108,12152,1},{105,12157,1},{107,12170,1},{107,12172,1}, {110,12193,1},{105,12195,1},{102,12198,1},{107,12207,1},{103,12215,1},{105,12217,1}, {100,12223,1},{102,12230,1},{103,12232,1},{100,12240,1},{102,12245,1},{98,12248,1}, {95,12265,1},{92,12268,1},{87,12275,1},{87,12277,1},{85,12278,1},{82,12285,1}, {85,12292,1},{92,12297,1},{95,12295,1},{97,12298,1},{92,12310,1},{93,12313,1}, {92,12317,1},{92,12318,1},{95,12317,1},{97,12318,1},{95,12322,1},{97,12327,1}, {92,12328,1},{92,12330,1},{92,12337,1},{92,12343,1},{87,12357,1},{88,12360,1}, {85,12370,1},{83,12383,1},{83,12395,1},{87,12395,1},{93,12415,1},{98,12420,1}, {102,12430,1},{117,12437,1},{120,12442,1},{120,12452,1},{122,12453,1},{118,12457,1}, {118,12458,1},{123,12462,1},{125,12462,1},{128,12458,1},{128,12453,1},{133,12453,1}, {137,12455,1},{142,12462,1},{140,12468,1},{142,12473,1},{145,12478,1},{147,12483,1}, {150,12485,1},{157,12482,1},{168,12495,1},{167,12497,1},{172,12498,1},{173,12500,1}, {173,12503,1},{167,12505,1},{168,12518,1},{158,12517,1},{150,12525,1},{145,12523,1}, {143,12515,1},{135,12510,1},{120,12505,1},{110,12498,1},{102,12492,1},{97,12490,1}, {93,12482,1},{90,12480,1},{87,12473,1},{80,12467,1},{75,12463,1},{72,12463,1}, {68,12460,1},{65,12457,1},{60,12458,1},{58,12457,1},{58,12455,1},{53,12450,1}, {50,12452,1},{48,12448,1},{45,12447,1},{45,12442,1},{43,12435,1},{40,12432,1}, {37,12425,1},{37,12415,1},{38,12410,1},{37,12408,1},{35,12407,1},{35,12402,1}, {33,12400,1},{33,12395,1},{32,12385,1},{32,12382,1},{30,12378,1},{32,12373,1}, {28,12365,1},{27,12363,1},{32,12357,1},{30,12337,1},{32,12327,1},{33,12323,1}, {37,12320,1},{40,12315,1},{45,12313,1},{52,12307,1},{48,12303,1},{48,12297,1}, {48,12280,1},{48,12270,1},{52,12267,1},{52,12265,1},{48,12265,1},{47,12265,1}, {48,12260,1},{50,12258,1},{48,12253,1},{50,12237,1},{48,12227,1},{48,12218,1}, {47,12215,1},{48,12212,1},{48,12205,1},{45,12198,1},{42,12188,1},{42,12180,1}, {52,12170,1},{52,12162,1},{55,12160,1},{53,12158,1},{53,12153,1},{48,12150,1}, {48,12142,1},{48,12140,1},{45,12133,1},{48,12128,1},{48,12123,1},{45,12120,1}, {45,12115,1},{40,12110,1},{42,12105,1},{45,12100,1},{43,12097,1},{42,12088,1}, {45,12085,1},{47,12082,1},{48,12080,1},{48,12075,1},{53,12068,1},{53,12055,1}, {48,12038,1},{35,12025,1},{17,12012,1},{10,12010,1},{65533,12007,1},{65528,12002,1}, {65524,12003,1},{65516,12000,1},{65509,12000,1},{65498,12002,1},{65493,12005,1}, {65488,12005,1},{65474,12007,1},{65461,12013,1},{65444,12027,1},{65443,12032,1}, {65446,12038,1},{65444,12042,1},{65439,12045,1},{65438,12050,1},{65436,12052,1}, {65423,12058,1},{65421,12057,1},{65413,12057,1},{65408,12062,1},{65396,12067,1}, {65401,12080,1},{65401,12083,1},{65399,12083,1},{65396,12085,1},{65396,12100,1}, {65393,12105,1},{65394,12108,1},{65396,12112,1},{65403,12117,1},{65416,12120,1}, {65421,12127,1},{65431,12133,1},{65434,12138,1},{65446,12147,1},{65451,12152,1}, {65451,12158,1},{65454,12158,1},{65456,12162,1},{65454,12167,1},{65448,12165,1}, {65443,12172,1},{65441,12175,1},{65443,12182,1},{65439,12192,1},{65444,12202,1}, {65443,12210,1},{65448,12215,1},{65456,12217,1},{65459,12222,1},{65459,12242,1}, {65461,12247,1},{65458,12257,1},{65461,12262,1},{65459,12265,1},{65458,12267,1}, {65456,12273,1},{65459,12278,1},{65459,12292,1},{65461,12297,1},{65463,12295,1}, {65464,12290,1},{65466,12287,1},{65468,12275,1},{65469,12273,1},{65471,12273,1}, {65471,12278,1},{65474,12282,1},{65476,12303,1},{65479,12307,1},{65479,12322,1}, {65476,12330,1},{65471,12342,1},{65468,12340,1},{65464,12342,1},{65464,12343,1}, {65463,12343,1},{65459,12345,1},{65458,12343,1},{65453,12345,1},{65446,12340,1}, {65434,12338,1},{65431,12333,1},{65433,12325,1},{65441,12317,1},{65441,12315,1}, {65448,12315,1},{65453,12310,1},{65451,12308,1},{65448,12305,1},{65444,12282,1}, {65424,12272,1},{65423,12268,1},{65419,12265,1},{65414,12263,1},{65411,12257,1}, {65406,12255,1},{65403,12250,1},{65398,12248,1},{65394,12242,1},{65388,12238,1}, {65384,12232,1},{65374,12218,1},{65376,12215,1},{65374,12207,1},{65374,12202,1}, {65369,12195,1},{65369,12192,1},{65368,12190,1},{65369,12187,1},{65366,12187,1}, {65368,12183,1},{65364,12180,1},{65351,12175,1},{65344,12167,1},{65343,12160,1}, {65343,12155,1},{65344,12153,1},{65348,12150,1},{65351,12143,1},{65354,12143,1}, {65356,12137,1},{65359,12133,1},{65356,12130,1},{65351,12130,1},{65351,12135,1}, {65344,12132,1},{65341,12133,1},{65336,12133,1},{65339,12137,1},{65344,12140,1}, {65336,12145,1},{65333,12148,1},{65331,12153,1},{65323,12155,1},{65319,12157,1}, {65318,12162,1},{65318,12172,1},{65313,12175,1},{65304,12183,1},{65296,12188,1}, {65278,12200,1},{65271,12202,1},{65266,12202,1},{65264,12203,1},{65259,12208,1}, {65258,12215,1},{65254,12218,1},{65251,12218,1},{65248,12222,1},{65248,12227,1}, {65246,12232,1},{65243,12232,1},{65234,12227,1},{65233,12227,1},{65229,12232,1}, {65223,12238,1},{65224,12242,1},{65223,12243,1},{65221,12245,1},{65221,12248,1}, {65218,12247,1},{65218,12243,1},{65211,12243,1},{65213,12240,1},{65213,12238,1}, {65214,12237,1},{65211,12233,1},{65208,12230,1},{65201,12230,1},{65198,12238,1}, {65193,12238,1},{65191,12237,1},{65193,12237,1},{65194,12235,1},{65196,12233,1}, {65199,12232,1},{65199,12228,1},{65198,12227,1},{65198,12225,1},{65193,12227,1}, {65191,12230,1},{65183,12227,1},{65179,12220,1},{65178,12220,1},{65171,12225,1}, {65168,12230,1},{65163,12233,1},{65163,12242,1},{65161,12245,1},{65158,12247,1}, {65148,12253,1},{65146,12267,1},{65144,12267,1},{65141,12262,1},{65139,12255,1}, {65138,12255,1},{65138,12262,1},{65134,12267,1},{65128,12267,1},{65121,12268,1}, {65123,12270,1},{65124,12272,1},{65123,12277,1},{65123,12283,1},{65124,12283,1}, {65128,12278,1},{65131,12277,1},{65131,12282,1},{65128,12285,1},{65121,12290,1}, {65113,12290,1},{65108,12288,1},{65104,12290,1},{65096,12290,1},{65096,12287,1}, {65093,12285,1},{65096,12278,1},{65104,12268,1},{65103,12268,1},{65099,12272,1}, {65096,12273,1},{65094,12277,1},{65089,12278,1},{65088,12275,1},{65088,12273,1}, {65091,12270,1},{65088,12270,1},{65088,12268,1},{65093,12267,1},{65096,12260,1}, {65091,12252,1},{65094,12243,1},{65089,12232,1},{65089,12223,1},{65088,12220,1}, {65083,12210,1},{65076,12207,1},{65068,12203,1},{65059,12207,1},{65054,12213,1}, {65054,12210,1},{65053,12208,1},{65051,12197,1},{65051,12187,1},{65054,12182,1}, {65054,12177,1},{65054,12175,1},{65053,12170,1},{65056,12167,1},{65061,12155,1}, {65069,12150,1},{65069,12148,1},{65073,12148,1},{65086,12150,1},{65091,12152,1}, {65096,12153,1},{65108,12152,1},{65111,12153,1},{65113,12155,1},{65113,12157,1}, {65111,12157,1},{65109,12157,1},{65113,12158,1},{65121,12162,1},{65128,12162,1}, {65131,12160,1},{65136,12148,1},{65136,12143,1},{65138,12142,1},{65138,12137,1}, {65148,12130,1},{65146,12125,1},{65154,12125,1},{65156,12122,1},{65154,12117,1}, {65166,12108,1},{65183,12088,1},{65191,12087,1},{65196,12088,1},{65203,12095,1}, {65209,12098,1},{65216,12107,1},{65226,12107,1},{65229,12105,1},{65238,12108,1}, {65249,12108,1},{65251,12107,1},{65249,12105,1},{65254,12103,1},{65251,12102,1}, {65251,12100,1},{65254,12098,1},{65254,12102,1},{65258,12102,1},{65258,12105,1}, {65259,12107,1},{65259,12108,1},{65269,12103,1},{65271,12090,1},{65271,12085,1}, {65274,12082,1},{65274,12077,1},{65268,12063,1},{65268,12058,1},{65263,12055,1}, {65256,12047,1},{65239,12020,1},{65236,12023,1},{65233,12023,1},{65229,12027,1}, {65224,12028,1},{65221,12027,1},{65219,12027,1},{65214,12038,1},{65211,12040,1}, {65209,12043,1},{65206,12040,1},{65198,12040,1},{65194,12042,1},{65184,12040,1}, {65178,12043,1},{65169,12042,1},{65164,12045,1},{65151,12037,1},{65143,12035,1}, {65133,12037,1},{65124,12035,1},{65119,12038,1},{65109,12037,1},{65104,12040,1}, {65098,12035,1},{65088,12040,1},{65083,12040,1},{65078,12040,1},{65071,12045,1}, {65066,12042,1},{65053,12038,1},{65053,12033,1},{65051,12032,1},{65038,12030,1}, {65021,12027,1},{65011,12032,1},{65006,12033,1},{65001,12038,1},{64986,12043,1}, {64981,12043,1},{64974,12047,1},{64973,12045,1},{64974,12043,1},{64974,12040,1}, {64984,12035,1},{64984,12033,1},{64983,12027,1},{64981,12022,1},{64978,12012,1}, {64978,12007,1},{448,12688,129},{443,12688,1},{440,12687,1},{430,12693,1}, {417,12683,1},{405,12683,1},{402,12682,1},{400,12678,1},{400,12670,1},{402,12668,1}, {405,12670,1},{415,12677,1},{425,12682,1},{427,12675,1},{435,12670,1},{445,12673,1}, {447,12675,1},{453,12673,1},{455,12677,1},{455,12682,1},{453,12683,1},{450,12685,1}, {450,12687,1},{447,12688,1},{65406,12355,129},{65399,12353,1},{65393,12353,1}, {65386,12345,1},{65384,12340,1},{65386,12338,1},{65384,12337,1},{65389,12335,1}, {65391,12333,1},{65394,12332,1},{65394,12330,1},{65393,12327,1},{65384,12325,1}, {65379,12325,1},{65374,12325,1},{65373,12325,1},{65376,12322,1},{65373,12318,1}, {65378,12312,1},{65381,12312,1},{65386,12318,1},{65406,12317,1},{65401,12310,1}, {65388,12302,1},{65376,12290,1},{65378,12287,1},{65384,12285,1},{65391,12280,1}, {65399,12280,1},{65408,12283,1},{65418,12290,1},{65418,12292,1},{65416,12298,1}, {65419,12303,1},{65419,12310,1},{65418,12313,1},{65418,12317,1},{65421,12318,1}, {65418,12322,1},{65414,12323,1},{65409,12320,1},{65396,12323,1},{65398,12327,1}, {65404,12328,1},{65406,12332,1},{65413,12337,1},{65413,12342,1},{65411,12342,1}, {65409,12343,1},{65413,12343,1},{65413,12345,1},{65409,12348,1},{65408,12355,1}, {65404,12355,1},{65371,12442,129},{65371,12450,1},{65374,12452,1},{65371,12453,1}, {65373,12455,1},{65373,12460,1},{65369,12477,1},{65366,12490,1},{65364,12500,1}, {65363,12502,1},{65361,12502,1},{65359,12505,1},{65359,12510,1},{65361,12510,1}, {65366,12512,1},{65368,12513,1},{65366,12515,1},{65366,12518,1},{65364,12520,1}, {65359,12518,1},{65358,12520,1},{65358,12522,1},{65363,12525,1},{65363,12528,1}, {65361,12530,1},{65358,12528,1},{65358,12532,1},{65348,12532,1},{65348,12530,1}, {65348,12513,1},{65346,12510,1},{65346,12505,1},{65346,12502,1},{65343,12502,1}, {65341,12500,1},{65344,12493,1},{65344,12488,1},{65346,12487,1},{65346,12483,1}, {65339,12468,1},{65334,12457,1},{65334,12442,1},{65343,12437,1},{65348,12433,1}, {65354,12433,1},{65359,12437,1},{65368,12437,1},{65369,12440,1},{65371,12442,1}, {65358,12542,129},{65356,12543,1},{65358,12548,1},{65354,12550,1},{65356,12555,1}, {65354,12563,1},{65354,12565,1},{65354,12572,1},{65356,12575,1},{65356,12583,1}, {65358,12598,1},{65356,12610,1},{65354,12635,1},{65351,12633,1},{65348,12627,1}, {65348,12620,1},{65348,12617,1},{65348,12608,1},{65344,12597,1},{65343,12592,1}, {65346,12585,1},{65344,12582,1},{65344,12560,1},{65341,12543,1},{65346,12543,1}, {65349,12538,1},{65348,12535,1},{65351,12533,1},{65354,12535,1},{65356,12538,1}, {65358,12537,1},{65358,12542,1},{65074,12272,129},{65071,12273,1},{65051,12275,1}, {65046,12278,1},{65041,12278,1},{65039,12273,1},{65034,12272,1},{65029,12265,1}, {65019,12260,1},{65016,12260,1},{65016,12263,1},{65011,12260,1},{65011,12265,1}, {65008,12265,1},{65001,12265,1},{65001,12263,1},{65001,12262,1},{64994,12260,1}, {64993,12255,1},{64996,12253,1},{65003,12255,1},{65008,12252,1},{65004,12250,1}, {65001,12250,1},{64996,12247,1},{64996,12243,1},{64999,12242,1},{65001,12240,1}, {65004,12245,1},{65004,12243,1},{65003,12238,1},{64998,12237,1},{64998,12228,1}, {65004,12227,1},{65011,12232,1},{65021,12232,1},{65024,12233,1},{65028,12238,1}, {65029,12240,1},{65038,12238,1},{65053,12233,1},{65061,12238,1},{65063,12252,1}, {65071,12262,1},{65074,12270,1},{65074,12272,1},{65096,12308,129},{65093,12307,1}, {65089,12308,1},{65086,12315,1},{65078,12320,1},{65069,12318,1},{65068,12322,1}, {65053,12322,1},{65051,12320,1},{65054,12318,1},{65059,12318,1},{65066,12313,1}, {65064,12312,1},{65059,12312,1},{65059,12310,1},{65061,12308,1},{65061,12305,1}, {65056,12305,1},{65053,12302,1},{65044,12302,1},{65036,12297,1},{65033,12298,1}, {65028,12298,1},{65018,12295,1},{65016,12297,1},{65018,12298,1},{65023,12303,1}, {65021,12307,1},{65018,12307,1},{65018,12310,1},{65014,12310,1},{65014,12313,1}, {65011,12318,1},{65009,12322,1},{65006,12322,1},{64998,12313,1},{64993,12305,1}, {64998,12298,1},{64989,12288,1},{64984,12287,1},{64984,12292,1},{64983,12292,1}, {64968,12282,1},{64968,12278,1},{64969,12278,1},{64973,12277,1},{64968,12273,1}, {64973,12273,1},{64969,12268,1},{64968,12265,1},{64986,12257,1},{64988,12258,1}, {64993,12265,1},{64994,12265,1},{64996,12263,1},{65011,12273,1},{65014,12282,1}, {65018,12280,1},{65014,12275,1},{65019,12275,1},{65024,12278,1},{65026,12278,1}, {65033,12280,1},{65034,12280,1},{65033,12275,1},{65039,12282,1},{65046,12283,1}, {65051,12282,1},{65054,12285,1},{65073,12285,1},{65086,12290,1},{65089,12292,1}, {65096,12302,1},{65098,12307,1},{65098,12308,1},{65096,12307,1},{65224,12613,129}, {65219,12617,1},{65218,12620,1},{65219,12622,1},{65223,12625,1},{65226,12628,1}, {65229,12642,1},{65229,12673,1},{65228,12683,1},{65223,12688,1},{65224,12692,1}, {65223,12693,1},{65221,12700,1},{65214,12710,1},{65208,12712,1},{65209,12707,1}, {65208,12705,1},{65203,12705,1},{65203,12707,1},{65199,12708,1},{65199,12712,1}, {65203,12715,1},{65199,12725,1},{65198,12727,1},{65186,12723,1},{65176,12723,1}, {65171,12722,1},{65169,12710,1},{65166,12702,1},{65159,12695,1},{65156,12680,1}, {65153,12670,1},{65159,12648,1},{65166,12637,1},{65174,12625,1},{65176,12618,1}, {65186,12613,1},{65194,12603,1},{65201,12602,1},{65219,12602,1},{65226,12610,1}, {65224,12613,1},{65249,12818,129},{65249,12840,1},{65253,12852,1},{65251,12857,1}, {65249,12890,1},{65256,12905,1},{65254,12907,1},{65249,12907,1},{65246,12907,1}, {65241,12910,1},{65239,12913,1},{65239,12918,1},{65244,12918,1},{65241,12922,1}, {65244,12923,1},{65251,12937,1},{65256,12937,1},{65258,12942,1},{65258,12953,1}, {65249,12973,1},{65248,12977,1},{65244,12980,1},{65246,12987,1},{65244,12987,1}, {65243,12988,1},{65243,12990,1},{65239,12995,1},{65236,13002,1},{65236,13020,1}, {65238,13025,1},{65238,13037,1},{65226,13048,1},{65223,13058,1},{65211,13063,1}, {65204,13063,1},{65198,13065,1},{65194,13067,1},{65194,13080,1},{65191,13083,1}, {65189,13082,1},{65186,13082,1},{65179,13087,1},{65173,13087,1},{65168,13083,1}, {65158,13083,1},{65153,13082,1},{65149,13085,1},{65149,13083,1},{65153,13075,1}, {65153,13072,1},{65158,13062,1},{65164,13055,1},{65166,13048,1},{65173,13042,1}, {65181,13013,1},{65184,13010,1},{65188,13000,1},{65193,12997,1},{65198,12997,1}, {65203,12988,1},{65203,12970,1},{65206,12952,1},{65204,12950,1},{65203,12950,1}, {65194,12957,1},{65189,12955,1},{65189,12952,1},{65194,12938,1},{65194,12923,1}, {65201,12910,1},{65201,12895,1},{65204,12893,1},{65211,12898,1},{65213,12897,1}, {65214,12890,1},{65214,12887,1},{65213,12885,1},{65209,12878,1},{65203,12872,1}, {65198,12867,1},{65194,12868,1},{65193,12868,1},{65193,12857,1},{65189,12848,1}, {65194,12840,1},{65214,12828,1},{65216,12818,1},{65224,12820,1},{65228,12818,1}, {65229,12817,1},{65228,12813,1},{65223,12810,1},{65214,12807,1},{65203,12805,1}, {65198,12802,1},{65198,12798,1},{65188,12793,1},{65184,12795,1},{65179,12792,1}, {65188,12790,1},{65194,12793,1},{65201,12793,1},{65209,12788,1},{65216,12787,1}, {65219,12783,1},{65221,12790,1},{65228,12800,1},{65229,12810,1},{65233,12808,1}, {65238,12812,1},{65238,12807,1},{65239,12807,1},{65241,12813,1},{65243,12813,1}, {65246,12813,1},{65246,12815,1},{65251,12817,1},{65249,12818,1},{64919,13412,129}, {64914,13417,1},{64913,13422,1},{64906,13430,1},{64901,13428,1},{64898,13432,1}, {64891,13445,1},{64884,13448,1},{64883,13447,1},{64878,13448,1},{64878,13452,1}, {64871,13450,1},{64869,13447,1},{64871,13442,1},{64869,13440,1},{64868,13443,1}, {64864,13438,1},{64861,13438,1},{64856,13435,1},{64854,13437,1},{64851,13432,1}, {64848,13425,1},{64844,13420,1},{64844,13418,1},{64851,13415,1},{64853,13407,1}, {64859,13405,1},{64871,13408,1},{64889,13410,1},{64888,13413,1},{64888,13417,1}, {64886,13418,1},{64886,13422,1},{64891,13418,1},{64889,13415,1},{64891,13413,1}, {64894,13412,1},{64908,13412,1},{64916,13408,1},{64919,13410,1},{64919,13412,1}, {64993,13452,129},{64991,13453,1},{64993,13457,1},{64993,13458,1},{64991,13463,1}, {64986,13465,1},{64983,13470,1},{64981,13467,1},{64978,13468,1},{64978,13463,1}, {64976,13468,1},{64973,13475,1},{64969,13475,1},{64968,13473,1},{64963,13473,1}, {64961,13470,1},{64961,13473,1},{64956,13473,1},{64953,13470,1},{64949,13475,1}, {64948,13477,1},{64944,13473,1},{64946,13472,1},{64944,13470,1},{64943,13470,1}, {64941,13473,1},{64941,13472,1},{64938,13473,1},{64939,13468,1},{64943,13465,1}, {64941,13460,1},{64941,13465,1},{64936,13467,1},{64933,13473,1},{64928,13477,1}, {64924,13477,1},{64921,13475,1},{64919,13470,1},{64916,13468,1},{64919,13475,1}, {64918,13475,1},{64913,13475,1},{64904,13470,1},{64899,13460,1},{64901,13458,1}, {64901,13455,1},{64909,13445,1},{64909,13440,1},{64914,13437,1},{64913,13433,1}, {64924,13427,1},{64931,13430,1},{64931,13435,1},{64933,13438,1},{64933,13430,1}, {64939,13432,1},{64943,13428,1},{64948,13432,1},{64949,13432,1},{64951,13437,1}, {64953,13435,1},{64956,13438,1},{64958,13437,1},{64954,13433,1},{64956,13433,1}, {64958,13432,1},{64959,13425,1},{64963,13420,1},{64964,13420,1},{64968,13423,1}, {64964,13433,1},{64964,13437,1},{64968,13435,1},{64973,13440,1},{64981,13445,1}, {64979,13447,1},{64981,13448,1},{64981,13450,1},{64984,13450,1},{64986,13448,1}, {64993,13450,1},{64993,13452,1},{65393,12747,129},{65391,12748,1},{65393,12750,1}, {65398,12755,1},{65403,12765,1},{65401,12767,1},{65401,12772,1},{65393,12783,1}, {65393,12788,1},{65393,12792,1},{65379,12805,1},{65379,12810,1},{65379,12812,1}, {65374,12815,1},{65368,12815,1},{65364,12808,1},{65364,12800,1},{65368,12792,1}, {65366,12783,1},{65368,12770,1},{65363,12765,1},{65361,12755,1},{65368,12743,1}, {65373,12738,1},{65378,12740,1},{65383,12738,1},{65384,12740,1},{65388,12740,1}, {65391,12743,1},{65394,12742,1},{65393,12747,1},{65504,12753,129},{65504,12758,1}, {65494,12763,1},{65494,12765,1},{65489,12768,1},{65484,12767,1},{65479,12763,1}, {65474,12760,1},{65473,12760,1},{65471,12765,1},{65464,12765,1},{65464,12768,1}, {65466,12772,1},{65468,12778,1},{65464,12783,1},{65458,12790,1},{65458,12788,1}, {65456,12790,1},{65449,12783,1},{65448,12775,1},{65449,12773,1},{65451,12768,1}, {65453,12768,1},{65453,12765,1},{65458,12765,1},{65461,12763,1},{65454,12748,1}, {65454,12747,1},{65461,12743,1},{65471,12747,1},{65474,12740,1},{65484,12730,1}, {65489,12728,1},{65494,12732,1},{65501,12732,1},{65503,12737,1},{65501,12738,1}, {65494,12745,1},{65501,12748,1},{65504,12752,1},{65504,12753,1},{202,12828,129}, {205,12828,1},{208,12825,1},{223,12823,1},{227,12820,1},{235,12827,1},{243,12830,1}, {250,12835,1},{252,12840,1},{257,12843,1},{258,12847,1},{257,12850,1},{257,12852,1}, {262,12853,1},{263,12857,1},{263,12858,1},{257,12862,1},{248,12868,1},{242,12870,1}, {233,12865,1},{228,12865,1},{212,12857,1},{205,12850,1},{203,12833,1},{198,12828,1}, {200,12827,1},{202,12828,1},{20,12890,129},{25,12883,1},{32,12855,1},{40,12847,1}, {38,12840,1},{40,12837,1},{38,12828,1},{40,12825,1},{42,12818,1},{45,12817,1}, {48,12795,1},{45,12792,1},{38,12790,1},{32,12788,1},{30,12788,1},{27,12792,1}, {20,12792,1},{13,12792,1},{8,12788,1},{0,12788,1},{65521,12795,1},{65509,12798,1}, {65503,12802,1},{65493,12805,1},{65466,12822,1},{65458,12828,1},{65444,12843,1}, {65448,12832,1},{65449,12825,1},{65453,12823,1},{65453,12827,1},{65456,12823,1}, {65464,12803,1},{65498,12787,1},{65506,12772,1},{65509,12770,1},{65514,12767,1}, {65526,12768,1},{65534,12768,1},{7,12770,1},{12,12768,1},{30,12772,1},{33,12770,1}, {33,12765,1},{37,12762,1},{38,12762,1},{42,12757,1},{50,12757,1},{55,12753,1}, {60,12752,1},{72,12755,1},{77,12760,1},{85,12762,1},{90,12750,1},{97,12752,1}, {100,12748,1},{105,12748,1},{103,12740,1},{108,12740,1},{113,12743,1},{118,12740,1}, {122,12740,1},{143,12752,1},{150,12753,1},{153,12752,1},{158,12755,1},{165,12755,1}, {167,12758,1},{170,12755,1},{172,12757,1},{173,12757,1},{182,12762,1},{188,12765,1}, {210,12785,1},{213,12788,1},{217,12790,1},{217,12792,1},{220,12795,1},{218,12798,1}, {220,12805,1},{218,12807,1},{213,12803,1},{203,12795,1},{198,12795,1},{190,12785,1}, {182,12785,1},{180,12790,1},{180,12793,1},{175,12800,1},{170,12802,1},{162,12800,1}, {158,12803,1},{153,12803,1},{143,12802,1},{140,12802,1},{135,12798,1},{130,12802,1}, {130,12798,1},{122,12792,1},{115,12788,1},{113,12782,1},{108,12777,1},{102,12765,1}, {98,12763,1},{92,12763,1},{88,12767,1},{85,12772,1},{82,12773,1},{82,12777,1}, {80,12780,1},{80,12785,1},{85,12792,1},{92,12792,1},{97,12793,1},{100,12793,1}, {107,12798,1},{112,12803,1},{112,12815,1},{113,12817,1},{118,12820,1},{122,12818,1}, {123,12817,1},{123,12810,1},{127,12810,1},{128,12813,1},{138,12818,1},{143,12827,1}, {145,12833,1},{150,12837,1},{152,12840,1},{155,12847,1},{153,12850,1},{157,12855,1}, {158,12863,1},{157,12870,1},{155,12873,1},{153,12872,1},{152,12870,1},{147,12868,1}, {143,12868,1},{140,12875,1},{135,12875,1},{132,12873,1},{128,12872,1},{120,12870,1}, {107,12870,1},{107,12865,1},{98,12853,1},{97,12848,1},{93,12843,1},{90,12830,1}, {87,12828,1},{82,12830,1},{82,12823,1},{80,12822,1},{77,12822,1},{73,12823,1}, {65,12835,1},{63,12843,1},{60,12848,1},{58,12853,1},{57,12858,1},{55,12867,1}, {52,12868,1},{48,12867,1},{47,12868,1},{40,12870,1},{33,12868,1},{30,12883,1}, {27,12887,1},{20,12890,1},{65534,13082,129},{65533,13095,1},{65529,13097,1}, {65533,13105,1},{65531,13105,1},{65529,13105,1},{65528,13112,1},{65528,13113,1}, {65523,13120,1},{65521,13127,1},{65519,13130,1},{65516,13132,1},{65511,13130,1}, {65506,13135,1},{65506,13132,1},{65501,13128,1},{65501,13127,1},{65498,13125,1}, {65498,13122,1},{65503,13117,1},{65503,13112,1},{65504,13110,1},{65499,13103,1}, {65501,13100,1},{65499,13098,1},{65499,13097,1},{65506,13090,1},{65511,13087,1}, {65513,13080,1},{65516,13080,1},{65519,13078,1},{65521,13075,1},{65526,13072,1}, {65526,13068,1},{65528,13070,1},{65528,13068,1},{65528,13062,1},{65526,13062,1}, {65524,13065,1},{65524,13063,1},{65523,13063,1},{65521,13062,1},{65521,13065,1}, {65516,13070,1},{65513,13073,1},{65508,13073,1},{65506,13078,1},{65503,13082,1}, {65508,13082,1},{65506,13088,1},{65504,13090,1},{65504,13092,1},{65499,13095,1}, {65499,13093,1},{65498,13093,1},{65494,13092,1},{65491,13082,1},{65493,13072,1}, {65501,13068,1},{65503,13070,1},{65506,13068,1},{65504,13065,1},{65506,13062,1}, {65503,13058,1},{65501,13057,1},{65499,13057,1},{65498,13058,1},{65493,13055,1}, {65496,13055,1},{65498,13053,1},{65503,13053,1},{65506,13052,1},{65511,13052,1}, {65509,13047,1},{65508,13043,1},{65509,13042,1},{65508,13037,1},{65509,13035,1}, {65509,13032,1},{65511,13032,1},{65513,13028,1},{65514,13022,1},{65516,13022,1}, {65514,13033,1},{65516,13035,1},{65514,13038,1},{65516,13043,1},{65518,13043,1}, {65518,13038,1},{65519,13042,1},{65523,13040,1},{65519,13038,1},{65523,13037,1}, {65521,13037,1},{65521,13033,1},{65516,13035,1},{65518,13030,1},{65524,13027,1}, {65526,13030,1},{65526,13033,1},{65528,13033,1},{65523,13035,1},{65524,13037,1}, {65528,13037,1},{65529,13038,1},{65528,13038,1},{65526,13040,1},{65526,13042,1}, {65528,13042,1},{65528,13045,1},{65531,13052,1},{65529,13053,1},{65529,13057,1}, {65531,13057,1},{65529,13058,1},{65531,13060,1},{65531,13065,1},{65533,13072,1}, {65531,13072,1},{65531,13077,1},{65533,13078,1},{65533,13075,1},{65534,13082,1}, {65368,13035,129},{65363,13035,1},{65358,13040,1},{65351,13043,1},{65349,13042,1}, {65348,13042,1},{65344,13033,1},{65341,13037,1},{65339,13043,1},{65338,13043,1}, {65338,13040,1},{65334,13038,1},{65336,13033,1},{65341,13033,1},{65334,13030,1}, {65334,13027,1},{65331,13027,1},{65329,13020,1},{65329,13012,1},{65331,13010,1}, {65333,13012,1},{65334,13008,1},{65336,12992,1},{65339,12983,1},{65343,12980,1}, {65344,12973,1},{65348,12972,1},{65351,12975,1},{65353,12987,1},{65356,12988,1}, {65358,12995,1},{65363,13003,1},{65363,13013,1},{65363,13023,1},{65366,13027,1}, {65368,13033,1},{65368,13035,1},{64798,13855,129},{64799,13870,1},{64798,13880,1}, {64781,13893,1},{64778,13907,1},{64774,13903,1},{64768,13902,1},{64763,13898,1}, {64751,13898,1},{64746,13888,1},{64733,13888,1},{64728,13890,1},{64728,13883,1}, {64723,13878,1},{64719,13867,1},{64711,13860,1},{64704,13852,1},{64699,13847,1}, {64696,13840,1},{64693,13832,1},{64693,13828,1},{64696,13822,1},{64699,13787,1}, {64696,13772,1},{64693,13765,1},{64694,13763,1},{64698,13763,1},{64723,13773,1}, {64729,13777,1},{64731,13780,1},{64738,13782,1},{64753,13788,1},{64759,13793,1}, {64763,13797,1},{64764,13797,1},{64774,13803,1},{64781,13810,1},{64789,13823,1}, {64794,13837,1},{64798,13857,1},{64623,14100,129},{64631,14085,1},{64643,14075,1}, {64656,14062,1},{64673,14050,1},{64683,14038,1},{64686,14037,1},{64688,14032,1}, {64696,14023,1},{64709,14005,1},{64716,13998,1},{64723,13997,1},{64726,14000,1}, {64728,14005,1},{64731,14007,1},{64738,14005,1},{64741,14007,1},{64743,14008,1}, {64741,14013,1},{64748,14015,1},{64746,14012,1},{64744,14012,1},{64744,14005,1}, {64736,14003,1},{64731,14003,1},{64726,13997,1},{64724,13992,1},{64723,13962,1}, {64718,13953,1},{64716,13938,1},{64716,13933,1},{64723,13925,1},{64724,13923,1}, {64728,13925,1},{64734,13925,1},{64738,13922,1},{64736,13927,1},{64738,13928,1}, {64741,13922,1},{64738,13920,1},{64734,13923,1},{64728,13923,1},{64723,13908,1}, {64714,13897,1},{64706,13893,1},{64706,13892,1},{64719,13885,1},{64723,13883,1}, {64726,13885,1},{64726,13890,1},{64728,13892,1},{64733,13890,1},{64744,13892,1}, {64749,13900,1},{64761,13900,1},{64773,13905,1},{64776,13910,1},{64779,13910,1}, {64783,13907,1},{64784,13902,1},{64784,13895,1},{64796,13892,1},{64803,13887,1}, {64811,13873,1},{64813,13868,1},{64816,13867,1},{64816,13868,1},{64816,13893,1}, {64811,13903,1},{64813,13918,1},{64816,13920,1},{64821,13923,1},{64821,13920,1}, {64814,13915,1},{64814,13905,1},{64819,13893,1},{64821,13885,1},{64824,13875,1}, {64836,13863,1},{64841,13857,1},{64844,13857,1},{64848,13860,1},{64846,13873,1}, {64848,13877,1},{64851,13882,1},{64851,13890,1},{64849,13898,1},{64846,13902,1}, {64838,13912,1},{64839,13918,1},{64843,13910,1},{64849,13902,1},{64853,13897,1}, {64854,13883,1},{64861,13877,1},{64864,13868,1},{64871,13867,1},{64871,13870,1}, {64866,13883,1},{64874,13868,1},{64878,13867,1},{64896,13847,1},{64909,13840,1}, {64918,13840,1},{64926,13837,1},{64943,13827,1},{64946,13827,1},{64948,13828,1}, {64951,13840,1},{64953,13822,1},{64956,13818,1},{64958,13817,1},{64966,13828,1}, {64968,13837,1},{64969,13833,1},{64968,13822,1},{64964,13817,1},{64963,13808,1}, {64963,13807,1},{64968,13807,1},{64978,13805,1},{64981,13810,1},{64986,13807,1}, {64993,13807,1},{64996,13807,1},{64993,13805,1},{64993,13802,1},{64989,13803,1}, {64988,13802,1},{64988,13798,1},{64998,13790,1},{65003,13792,1},{65003,13790,1}, {64999,13785,1},{64999,13782,1},{65004,13778,1},{65011,13780,1},{65008,13775,1}, {65011,13772,1},{65014,13770,1},{65014,13767,1},{65016,13760,1},{65018,13757,1}, {65021,13760,1},{65021,13757,1},{65024,13757,1},{65021,13752,1},{65023,13750,1}, {65024,13747,1},{65026,13747,1},{65026,13740,1},{65029,13735,1},{65033,13737,1}, {65033,13733,1},{65036,13732,1},{65033,13730,1},{65034,13727,1},{65041,13728,1}, {65043,13727,1},{65039,13723,1},{65036,13723,1},{65034,13722,1},{65038,13715,1}, {65041,13715,1},{65038,13712,1},{65039,13708,1},{65041,13708,1},{65046,13710,1}, {65043,13707,1},{65041,13702,1},{65044,13695,1},{65048,13698,1},{65049,13697,1}, {65048,13692,1},{65044,13688,1},{65043,13682,1},{65044,13680,1},{65048,13680,1}, {65048,13675,1},{65046,13675,1},{65048,13673,1},{65051,13670,1},{65051,13667,1}, {65056,13658,1},{65061,13650,1},{65061,13647,1},{65064,13643,1},{65064,13642,1}, {65068,13635,1},{65069,13622,1},{65071,13615,1},{65073,13615,1},{65074,13612,1}, {65076,13607,1},{65076,13603,1},{65084,13597,1},{65086,13593,1},{65086,13567,1}, {65093,13543,1},{65091,13528,1},{65089,13525,1},{65091,13518,1},{65104,13497,1}, {65109,13488,1},{65111,13480,1},{65114,13473,1},{65123,13472,1},{65123,13467,1}, {65124,13465,1},{65126,13465,1},{65131,13470,1},{65133,13467,1},{65136,13467,1}, {65143,13470,1},{65141,13485,1},{65138,13493,1},{65141,13497,1},{65143,13497,1}, {65141,13492,1},{65144,13492,1},{65143,13485,1},{65144,13478,1},{65144,13468,1}, {65143,13465,1},{65141,13462,1},{65134,13460,1},{65133,13452,1},{65138,13447,1}, {65139,13448,1},{65144,13443,1},{65146,13438,1},{65149,13433,1},{65143,13437,1}, {65141,13435,1},{65141,13430,1},{65136,13433,1},{65134,13432,1},{65134,13430,1}, {65139,13427,1},{65139,13422,1},{65143,13418,1},{65146,13417,1},{65146,13413,1}, {65153,13420,1},{65158,13417,1},{65161,13413,1},{65159,13412,1},{65156,13413,1}, {65154,13412,1},{65153,13408,1},{65156,13405,1},{65154,13402,1},{65151,13398,1}, {65151,13397,1},{65161,13392,1},{65169,13385,1},{65178,13383,1},{65174,13380,1}, {65163,13383,1},{65164,13382,1},{65169,13375,1},{65168,13372,1},{65169,13370,1}, {65174,13370,1},{65188,13363,1},{65189,13363,1},{65194,13370,1},{65203,13368,1}, {65213,13368,1},{65213,13372,1},{65218,13372,1},{65216,13377,1},{65223,13378,1}, {65224,13382,1},{65228,13385,1},{65228,13387,1},{65223,13392,1},{65224,13392,1}, {65228,13390,1},{65231,13385,1},{65239,13388,1},{65243,13387,1},{65243,13382,1}, {65239,13383,1},{65234,13380,1},{65231,13373,1},{65223,13367,1},{65199,13367,1}, {65194,13365,1},{65193,13357,1},{65194,13353,1},{65198,13352,1},{65193,13352,1}, {65191,13348,1},{65189,13357,1},{65181,13358,1},{65178,13357,1},{65173,13350,1}, {65161,13340,1},{65156,13340,1},{65153,13345,1},{65149,13345,1},{65148,13340,1}, {65134,13332,1},{65128,13323,1},{65129,13312,1},{65129,13307,1},{65128,13302,1}, {65124,13298,1},{65128,13290,1},{65133,13288,1},{65136,13283,1},{65139,13282,1}, {65141,13280,1},{65144,13280,1},{65143,13282,1},{65144,13283,1},{65151,13278,1}, {65158,13278,1},{65169,13273,1},{65173,13273,1},{65173,13275,1},{65171,13287,1}, {65173,13288,1},{65178,13288,1},{65181,13293,1},{65183,13290,1},{65189,13288,1}, {65189,13283,1},{65191,13282,1},{65199,13280,1},{65203,13282,1},{65206,13282,1}, {65208,13280,1},{65209,13277,1},{65208,13273,1},{65206,13273,1},{65203,13273,1}, {65201,13272,1},{65204,13267,1},{65206,13265,1},{65209,13263,1},{65213,13260,1}, {65214,13263,1},{65216,13263,1},{65218,13258,1},{65224,13255,1},{65233,13245,1}, {65238,13233,1},{65241,13233,1},{65243,13222,1},{65244,13218,1},{65241,13218,1}, {65241,13215,1},{65243,13210,1},{65241,13210,1},{65239,13208,1},{65244,13205,1}, {65243,13203,1},{65244,13202,1},{65244,13198,1},{65243,13198,1},{65244,13197,1}, {65248,13202,1},{65249,13202,1},{65251,13198,1},{65254,13203,1},{65256,13205,1}, {65256,13198,1},{65258,13195,1},{65261,13202,1},{65259,13205,1},{65261,13207,1}, {65259,13208,1},{65263,13208,1},{65261,13210,1},{65263,13217,1},{65264,13217,1}, {65263,13212,1},{65264,13210,1},{65266,13213,1},{65268,13220,1},{65268,13232,1}, {65266,13238,1},{65266,13242,1},{65263,13243,1},{65261,13242,1},{65261,13245,1}, {65263,13245,1},{65263,13247,1},{65264,13247,1},{65266,13248,1},{65264,13257,1}, {65254,13272,1},{65254,13273,1},{65258,13277,1},{65263,13285,1},{65286,13302,1}, {65291,13310,1},{65293,13317,1},{65293,13320,1},{65294,13323,1},{65291,13332,1}, {65284,13332,1},{65286,13333,1},{65284,13338,1},{65271,13338,1},{65268,13338,1}, {65268,13340,1},{65279,13340,1},{65286,13345,1},{65284,13345,1},{65271,13345,1}, {65273,13347,1},{65284,13348,1},{65283,13350,1},{65276,13352,1},{65276,13353,1}, {65279,13353,1},{65279,13358,1},{65283,13360,1},{65281,13365,1},{65278,13368,1}, {65268,13367,1},{65264,13368,1},{65271,13368,1},{65274,13370,1},{65284,13370,1}, {65284,13375,1},{65269,13382,1},{65281,13382,1},{65286,13380,1},{65288,13382,1}, {65288,13377,1},{65291,13373,1},{65293,13375,1},{65294,13383,1},{65293,13387,1}, {65288,13390,1},{65289,13390,1},{65294,13387,1},{65296,13387,1},{65296,13400,1}, {65298,13400,1},{65298,13392,1},{65298,13390,1},{65299,13388,1},{65301,13393,1}, {65301,13395,1},{65303,13395,1},{65303,13387,1},{65306,13395,1},{65313,13395,1}, {65316,13395,1},{65309,13393,1},{65309,13390,1},{65309,13388,1},{65306,13383,1}, {65309,13378,1},{65311,13380,1},{65314,13387,1},{65316,13388,1},{65316,13392,1}, {65319,13395,1},{65318,13388,1},{65321,13393,1},{65326,13393,1},{65324,13385,1}, {65321,13382,1},{65319,13377,1},{65319,13372,1},{65316,13370,1},{65316,13367,1}, {65313,13365,1},{65313,13362,1},{65313,13360,1},{65318,13360,1},{65313,13357,1}, {65311,13355,1},{65311,13353,1},{65316,13352,1},{65313,13350,1},{65313,13345,1}, {65314,13340,1},{65313,13332,1},{65316,13330,1},{65313,13325,1},{65314,13322,1}, {65311,13310,1},{65311,13302,1},{65308,13297,1},{65308,13290,1},{65311,13282,1}, {65304,13268,1},{65309,13263,1},{65313,13262,1},{65318,13258,1},{65314,13245,1}, {65309,13240,1},{65309,13230,1},{65321,13218,1},{65323,13212,1},{65326,13207,1}, {65329,13203,1},{65334,13210,1},{65336,13212,1},{65334,13203,1},{65336,13202,1}, {65339,13197,1},{65344,13197,1},{65344,13195,1},{65349,13193,1},{65353,13195,1}, {65354,13193,1},{65363,13202,1},{65368,13202,1},{65368,13200,1},{65366,13195,1}, {65364,13192,1},{65368,13190,1},{65371,13188,1},{65376,13190,1},{65379,13197,1}, {65383,13198,1},{65378,13188,1},{65381,13188,1},{65376,13180,1},{65378,13178,1}, {65383,13182,1},{65386,13180,1},{65381,13178,1},{65378,13173,1},{65379,13170,1}, {65384,13172,1},{65383,13163,1},{65384,13162,1},{65388,13158,1},{65388,13152,1}, {65389,13150,1},{65388,13147,1},{65386,13147,1},{65386,13143,1},{65389,13138,1}, {65393,13140,1},{65396,13138,1},{65396,13132,1},{65398,13128,1},{65396,13127,1}, {65393,13133,1},{65389,13133,1},{65386,13128,1},{65386,13123,1},{65383,13120,1}, {65388,13118,1},{65391,13112,1},{65391,13097,1},{65393,13095,1},{65394,13095,1}, {65398,13100,1},{65408,13103,1},{65411,13105,1},{65414,13118,1},{65426,13125,1}, {65433,13125,1},{65439,13127,1},{65443,13127,1},{65444,13128,1},{65448,13125,1}, {65454,13123,1},{65458,13137,1},{65459,13142,1},{65463,13152,1},{65461,13153,1}, {65458,13152,1},{65459,13158,1},{65466,13187,1},{65468,13188,1},{65474,13192,1}, {65481,13200,1},{65483,13207,1},{65488,13208,1},{65493,13215,1},{65496,13225,1}, {65498,13227,1},{65498,13232,1},{65501,13243,1},{65499,13268,1},{65499,13272,1}, {65491,13290,1},{65489,13293,1},{65491,13298,1},{65488,13300,1},{65488,13302,1}, {65484,13305,1},{65484,13308,1},{65483,13312,1},{65481,13317,1},{65466,13335,1}, {65463,13343,1},{65461,13358,1},{65463,13360,1},{65463,13362,1},{65461,13375,1}, {65464,13377,1},{65463,13382,1},{65461,13383,1},{65463,13390,1},{65463,13400,1}, {65456,13405,1},{65454,13410,1},{65451,13413,1},{65449,13418,1},{65448,13408,1}, {65441,13407,1},{65439,13403,1},{65434,13407,1},{65421,13413,1},{65414,13420,1}, {65401,13428,1},{65393,13423,1},{65381,13422,1},{65371,13413,1},{65368,13408,1}, {65348,13412,1},{65343,13415,1},{65331,13415,1},{65329,13413,1},{65323,13412,1}, {65318,13415,1},{65314,13415,1},{65309,13417,1},{65304,13417,1},{65294,13422,1}, {65293,13425,1},{65286,13430,1},{65286,13432,1},{65261,13440,1},{65249,13447,1}, {65249,13450,1},{65253,13453,1},{65273,13447,1},{65279,13447,1},{65283,13448,1}, {65284,13450,1},{65286,13455,1},{65288,13453,1},{65289,13455,1},{65284,13463,1}, {65279,13465,1},{65251,13467,1},{65239,13470,1},{65236,13473,1},{65239,13480,1}, {65244,13482,1},{65246,13485,1},{65243,13487,1},{65239,13485,1},{65234,13485,1}, {65233,13482,1},{65224,13482,1},{65219,13487,1},{65211,13488,1},{65208,13492,1}, {65209,13493,1},{65213,13495,1},{65211,13497,1},{65208,13495,1},{65203,13498,1}, {65201,13508,1},{65199,13512,1},{65199,13528,1},{65196,13533,1},{65199,13540,1}, {65199,13547,1},{65203,13553,1},{65208,13557,1},{65211,13557,1},{65216,13562,1}, {65219,13572,1},{65224,13577,1},{65226,13577,1},{65228,13573,1},{65231,13577,1}, {65231,13582,1},{65234,13583,1},{65234,13588,1},{65238,13592,1},{65243,13593,1}, {65248,13592,1},{65253,13597,1},{65258,13595,1},{65261,13602,1},{65266,13602,1}, {65266,13605,1},{65269,13608,1},{65273,13618,1},{65278,13625,1},{65284,13628,1}, {65293,13628,1},{65299,13635,1},{65308,13633,1},{65314,13640,1},{65316,13653,1}, {65314,13653,1},{65313,13655,1},{65309,13668,1},{65311,13672,1},{65311,13675,1}, {65313,13680,1},{65314,13683,1},{65316,13683,1},{65318,13693,1},{65323,13697,1}, {65323,13700,1},{65324,13707,1},{65326,13718,1},{65328,13723,1},{65329,13723,1}, {65334,13718,1},{65338,13722,1},{65341,13720,1},{65346,13710,1},{65354,13712,1}, {65356,13713,1},{65358,13717,1},{65359,13718,1},{65359,13725,1},{65364,13735,1}, {65373,13748,1},{65376,13752,1},{65379,13758,1},{65389,13785,1},{65388,13793,1}, {65374,13807,1},{65373,13820,1},{65363,13842,1},{65358,13865,1},{65351,13875,1}, {65346,13877,1},{65341,13885,1},{65339,13893,1},{65336,13903,1},{65329,13918,1}, {65323,13928,1},{65321,13935,1},{65311,13953,1},{65306,13968,1},{65301,13977,1}, {65298,13987,1},{65301,14007,1},{65304,14012,1},{65301,14015,1},{65304,14017,1}, {65301,14017,1},{65296,14022,1},{65294,14025,1},{65289,14033,1},{65291,14038,1}, {65293,14038,1},{65296,14037,1},{65293,14050,1},{65291,14062,1},{65286,14075,1}, {65281,14075,1},{65276,14070,1},{65273,14073,1},{65276,14075,1},{65274,14078,1}, {65274,14082,1},{65276,14100,1},{65376,13550,129},{65374,13555,1},{65373,13578,1}, {65371,13585,1},{65371,13620,1},{65368,13625,1},{65368,13630,1},{65364,13637,1}, {65363,13657,1},{65361,13680,1},{65358,13690,1},{65356,13690,1},{65354,13687,1}, {65353,13673,1},{65351,13670,1},{65348,13663,1},{65349,13653,1},{65346,13653,1}, {65348,13650,1},{65346,13645,1},{65349,13633,1},{65348,13628,1},{65344,13627,1}, {65346,13625,1},{65346,13623,1},{65349,13622,1},{65349,13620,1},{65351,13607,1}, {65354,13602,1},{65354,13598,1},{65358,13595,1},{65361,13587,1},{65361,13583,1}, {65363,13578,1},{65364,13573,1},{65366,13572,1},{65366,13567,1},{65366,13560,1}, {65368,13555,1},{65368,13548,1},{65371,13547,1},{65371,13545,1},{65374,13542,1}, {65376,13548,1},{65376,13550,1},{65469,13545,129},{65468,13548,1},{65469,13558,1}, {65466,13560,1},{65468,13567,1},{65463,13570,1},{65463,13575,1},{65461,13577,1}, {65466,13582,1},{65466,13585,1},{65463,13590,1},{65456,13595,1},{65448,13607,1}, {65446,13607,1},{65444,13608,1},{65439,13612,1},{65434,13617,1},{65429,13618,1}, {65431,13627,1},{65429,13628,1},{65428,13632,1},{65426,13637,1},{65424,13638,1}, {65421,13633,1},{65416,13627,1},{65413,13613,1},{65414,13610,1},{65419,13603,1}, {65418,13590,1},{65423,13583,1},{65424,13583,1},{65431,13583,1},{65441,13578,1}, {65446,13578,1},{65453,13575,1},{65453,13572,1},{65446,13565,1},{65459,13550,1}, {65458,13548,1},{65456,13548,1},{65456,13547,1},{65461,13540,1},{65469,13537,1}, {65473,13538,1},{65471,13542,1},{65469,13547,1},{63836,17870,129},{63839,17868,1}, {63846,17867,1},{63851,17862,1},{63856,17863,1},{63858,17860,1},{63854,17855,1}, {63856,17848,1},{63859,17848,1},{63859,17850,1},{63861,17850,1},{63866,17853,1}, {63863,17853,1},{63864,17855,1},{63866,17855,1},{63866,17857,1},{63869,17858,1}, {63869,17855,1},{63873,17853,1},{63874,17858,1},{63871,17860,1},{63871,17863,1}, {63868,17870,1},{63876,17878,1},{63876,17880,1},{63873,17880,1},{63873,17882,1}, {63876,17882,1},{63879,17883,1},{63881,17885,1},{63879,17887,1},{63881,17887,1}, {63881,17888,1},{63881,17890,1},{63884,17893,1},{63888,17892,1},{63889,17893,1}, {63889,17895,1},{63888,17897,1},{63889,17900,1},{63889,17905,1},{63893,17915,1}, {63893,17917,1},{63896,17922,1},{63894,17930,1},{63896,17932,1},{63894,17933,1}, {63896,17935,1},{63896,17937,1},{63894,17938,1},{63894,17940,1},{63899,17938,1}, {63901,17940,1},{63899,17942,1},{63904,17943,1},{63904,17947,1},{63909,17947,1}, {63909,17952,1},{63909,17953,1},{63911,17952,1},{63911,17953,1},{63909,17955,1}, {63909,17957,1},{63913,17957,1},{63911,17958,1},{63911,17962,1},{63909,17962,1}, {63914,17967,1},{63913,17968,1},{63914,17972,1},{63918,17977,1},{63913,17977,1}, {63916,17983,1},{63916,17985,1},{63913,17983,1},{63921,17997,1},{63921,18000,1}, {63923,47538,1},{63924,47543,1},{63919,47539,1},{63918,17998,1},{63909,17987,1}, {63901,17982,1},{63898,17978,1},{63896,17978,1},{63891,17975,1},{63883,17960,1}, {63879,17958,1},{63878,17958,1},{63876,17957,1},{63874,17958,1},{63873,17957,1}, {63873,17955,1},{63868,17950,1},{63866,17948,1},{63864,17948,1},{63859,17948,1}, {63861,17953,1},{63859,17953,1},{63859,17957,1},{63863,17957,1},{63866,17963,1}, {63868,17965,1},{63868,17967,1},{63873,17972,1},{63876,17972,1},{63876,17975,1}, {63879,17975,1},{63879,17978,1},{63884,17985,1},{63886,17990,1},{63889,17993,1}, {63884,17995,1},{63878,17990,1},{63873,17988,1},{63869,17985,1},{63869,17988,1}, {63864,17990,1},{63863,17995,1},{63861,17993,1},{63861,17990,1},{63859,17990,1}, {63859,17987,1},{63861,17985,1},{63863,17987,1},{63863,17982,1},{63864,17980,1}, {63864,17972,1},{63863,17970,1},{63863,17967,1},{63861,17965,1},{63856,17958,1}, {63858,17955,1},{63854,17943,1},{63856,17937,1},{63854,17930,1},{63856,17930,1}, {63861,17935,1},{63863,17935,1},{63863,17930,1},{63868,17927,1},{63866,17920,1}, {63863,17917,1},{63861,17913,1},{63856,17912,1},{63856,17905,1},{63846,17902,1}, {63849,17903,1},{63848,17907,1},{63843,17902,1},{63846,17898,1},{63846,17897,1}, {63848,17895,1},{63849,17892,1},{63851,17892,1},{63849,17890,1},{63849,17887,1}, {63848,17885,1},{63846,17882,1},{63843,17882,1},{63841,17880,1},{63839,17878,1}, {63838,17880,1},{63838,17877,1},{63834,17875,1},{63836,17870,1},{63709,17800,129}, {63708,17790,1},{63711,17788,1},{63709,17785,1},{63713,17783,1},{63714,17770,1}, {63718,17762,1},{63721,17752,1},{63719,17752,1},{63719,17747,1},{63723,17742,1}, {63724,17733,1},{63728,17732,1},{63728,17730,1},{63734,17728,1},{63736,17727,1}, {63738,17727,1},{63739,17725,1},{63744,17727,1},{63749,17727,1},{63751,17730,1}, {63753,17737,1},{63761,17737,1},{63761,17743,1},{63768,17742,1},{63769,17738,1}, {63773,17738,1},{63773,17742,1},{63778,17747,1},{63781,17747,1},{63779,17750,1}, {63784,17752,1},{63786,17757,1},{63793,17765,1},{63788,17765,1},{63786,17767,1}, {63791,17767,1},{63794,17770,1},{63793,17775,1},{63796,17777,1},{63799,17783,1}, {63798,17783,1},{63793,17783,1},{63796,17787,1},{63796,17790,1},{63794,17797,1}, {63798,17802,1},{63801,17803,1},{63801,17817,1},{63806,17820,1},{63801,17827,1}, {63799,17827,1},{63796,17828,1},{63793,17825,1},{63791,17825,1},{63788,17825,1}, {63793,17830,1},{63793,17835,1},{63788,17837,1},{63786,17837,1},{63786,17838,1}, {63783,17840,1},{63781,17845,1},{63779,17848,1},{63778,17852,1},{63776,17852,1}, {63774,17855,1},{63771,17860,1},{63766,17860,1},{63759,17857,1},{63758,17860,1}, {63754,17860,1},{63753,17863,1},{63751,17862,1},{63751,17863,1},{63749,17863,1}, {63749,17862,1},{63746,17862,1},{63746,17858,1},{63739,17862,1},{63738,17865,1}, {63734,17867,1},{63736,17870,1},{63728,17868,1},{63726,17863,1},{63723,17858,1}, {63724,17858,1},{63723,17855,1},{63726,17855,1},{63726,17853,1},{63724,17848,1}, {63721,17847,1},{63721,17843,1},{63724,17845,1},{63726,17840,1},{63723,17837,1}, {63724,17837,1},{63724,17833,1},{63721,17832,1},{63721,17828,1},{63718,17825,1}, {63716,17822,1},{63711,17817,1},{63709,17800,1},{207,10965,131},{197,10962,3}, {190,10955,3},{187,10957,3},{185,10955,3},{180,10958,3},{178,10967,3},{162,10967,3}, {150,10980,3},{147,10980,3},{147,10985,3},{143,10983,3},{142,10985,3},{140,10995,3}, {130,10998,3},{127,11007,3},{122,11007,3},{120,11012,3},{118,11020,3},{103,11028,3}, {98,11030,3},{100,11033,3},{98,11040,3},{90,11047,3},{85,11057,3},{87,11062,3}, {90,11063,3},{87,11068,3},{88,11070,3},{90,11073,3},{90,11077,3},{92,11078,3}, {90,11080,3},{95,11082,3},{102,11090,3},{102,11102,3},{107,11120,3},{108,11123,3}, {107,11127,3},{102,11140,3},{102,11150,3},{97,11153,3},{97,11155,3},{100,11157,3}, {103,11167,3},{102,11172,3},{100,11173,3},{100,11183,3},{102,11187,3},{107,11188,3}, {113,11195,3},{115,11213,3},{130,11217,3},{138,11222,3},{140,11222,3},{142,11218,3}, {145,11220,3},{152,11235,3},{153,11243,3},{155,11245,3},{157,11248,3},{155,11283,3}, {158,11288,3},{157,11302,3},{155,11305,3},{153,11307,3},{148,11303,3},{143,11298,3}, {142,11298,3},{143,11308,3},{142,11315,3},{138,11318,3},{137,11333,3},{128,11343,3}, {132,11353,3},{132,11357,3},{123,11363,3},{122,11365,3},{130,11380,3},{145,11393,3}, {147,11408,3},{147,11413,3},{142,11420,3},{145,11425,3},{152,11440,3},{148,11445,3}, {143,11453,3},{143,11457,3},{147,11460,3},{155,11460,3},{158,11465,3},{168,11468,3}, {178,11472,3},{183,11470,3},{187,11473,3},{187,11478,3},{190,11487,3},{197,11485,3}, {200,11487,3},{205,11487,3},{207,11488,3},{208,11490,3},{212,11488,3},{212,11485,3}, {213,11482,3},{215,11478,3},{225,11482,3},{228,11493,3},{230,11495,3},{233,11495,3}, {237,11495,3},{237,11502,3},{242,11508,3},{247,11512,3},{248,11515,3},{248,11522,3}, {252,11523,3},{260,11518,3},{258,11512,3},{260,11510,3},{263,11505,3},{267,11508,3}, {275,11512,3},{282,11512,3},{285,11515,3},{290,11515,3},{297,11523,3},{303,11528,3}, {302,11530,3},{298,11532,3},{297,11535,3},{298,11540,3},{302,11543,3},{302,11548,3}, {305,11550,3},{312,11550,3},{317,11555,3},{318,11552,3},{320,11552,3},{332,11553,3}, {343,11558,3},{343,11563,3},{345,11563,3},{350,11560,3},{355,11560,3},{362,11557,3}, {372,11558,3},{387,11562,3},{390,11557,3},{392,11557,3},{397,11563,3},{418,11568,3}, {420,11573,3},{425,11577,3},{423,11582,3},{427,11582,3},{428,11585,3},{432,11585,3}, {437,11587,3},{433,11598,3},{428,11605,3},{433,11613,3},{438,11618,3},{435,11630,3}, {437,11637,3},{430,11643,3},{430,11647,3},{433,11648,3},{432,11653,3},{433,11653,3}, {437,11652,3},{438,11657,3},{433,11663,3},{433,11668,3},{437,11675,3},{435,11678,3}, {433,11683,3},{435,11692,3},{433,11700,3},{433,11718,3},{437,11723,3},{432,11728,3}, {425,11740,3},{420,11745,3},{418,11753,3},{418,11757,3},{417,11760,3},{458,11408,131}, {457,11417,3},{452,11425,3},{442,11430,3},{432,11433,3},{427,11433,3},{425,11438,3}, {425,11445,3},{415,11450,3},{405,11460,3},{402,11462,3},{402,11467,3},{403,11470,3}, {412,11480,3},{420,11482,3},{427,11485,3},{427,11480,3},{433,11485,3},{438,11488,3}, {442,11487,3},{443,11483,3},{467,11482,3},{470,11478,3},{473,11478,3},{475,11482,3}, {480,11487,3},{482,11497,3},{488,11500,3},{487,11502,3},{482,11503,131}, {473,11502,3},{467,11503,3},{455,11507,3},{438,11510,3},{435,11518,3},{435,11523,3}, {432,11532,3},{432,11535,3},{433,11537,3},{443,11528,3},{455,11527,3},{462,11528,3}, {477,11523,3},{480,11522,3},{485,11518,3},{488,11515,3},{490,11515,3},{65276,14100,131}, {64903,14100,3},{64903,14097,3},{64899,14097,3},{64898,14095,3},{64896,14097,3}, {64894,14095,3},{64893,14095,3},{64893,14092,3},{64889,14095,3},{64886,14095,3}, {64884,14092,3},{64881,14092,3},{64879,14090,3},{64876,14090,3},{64874,14085,3}, {64871,14087,3},{64864,14085,3},{64861,14088,3},{64858,14087,3},{64854,14090,3}, {64851,14090,3},{64849,14093,3},{64846,14095,3},{64846,14102,3},{64623,14100,3}, {62366,12898,131},{62423,12900,3},{62479,12900,3},{62498,12900,3},{62534,12900,3}, {62593,12900,3},{62631,12900,3},{62649,12900,3},{62706,12900,3},{62763,12900,3}, {62821,12900,3},{62878,12900,3},{62896,12900,3},{62936,12900,3},{62993,12900,3}, {63049,12900,3},{63069,12900,3},{63106,12900,3},{63161,12900,3},{63203,12900,3}, {63219,12900,3},{63278,12900,3},{63336,12900,3},{63398,12900,3},{63453,12900,3}, {63469,12900,3},{63511,12900,3},{63569,12900,3},{63603,12900,3},{63626,12900,3}, {63684,12900,3},{63734,12900,3},{63743,12900,3},{63804,12900,3},{63859,12900,3}, {63866,12900,3},{63921,12900,3},{63983,12900,3},{63998,12900,3},{64043,12900,3}, {64049,12900,3},{62936,12900,131},{62936,12963,3},{62936,13025,3},{62936,13047,3}, {62936,13088,3},{62936,13152,3},{62936,13193,3},{62936,13215,3},{62936,13277,3}, {62936,13340,3},{62936,13403,3},{62936,13467,3},{62936,13487,3},{62936,13528,3}, {62936,13592,3},{62936,13637,3},{62936,13655,3},{62936,13715,3},{62936,13775,3}, {62936,13783,3},{62936,13800,3},{62936,13863,3},{62936,13927,3},{62936,13945,3}, {62936,13992,3},{62936,14055,3},{62936,14092,3},{62936,14100,3},{62879,14100,3}, {62823,14100,3},{62806,14100,3},{62764,14100,3},{62708,14100,3},{62676,14100,3}, {62651,14100,3},{62636,14100,3},{62578,14100,3},{62519,14100,3},{62504,14100,3}, {62464,14100,3},{62408,14100,3},{62368,14100,3},{62353,14100,3},{62296,14100,3}, {62236,14100,3},{62176,14100,3},{62133,14100,3},{62078,14097,3},{62021,14097,3}, {62001,14097,3},{61963,14097,3},{61908,14097,3},{61869,14097,3},{61851,14097,3}, {61793,14097,3},{61738,14097,3},{61729,14097,3},{63881,13800,131},{63826,13800,3}, {63771,13800,3},{63743,13800,3},{63714,13800,3},{63653,13800,3},{63613,13800,3}, {63598,13800,3},{63536,13800,3},{63479,13800,3},{63424,13800,3},{63368,13800,3}, {63349,13800,3},{63309,13800,3},{63254,13800,3},{63219,13800,3},{63199,13800,3}, {63144,13800,3},{63089,13800,3},{63028,13800,3},{62966,13800,3},{62959,13800,3}, {62936,13800,3},{62636,14100,131},{62636,14162,3},{62636,14225,3},{62636,14253,3}, {62636,14290,3},{62636,14358,3},{62636,14402,3},{62636,14420,3},{62636,14482,3}, {62636,14545,3},{62636,14553,3},{62636,14608,3},{62636,14675,3},{62636,14708,3}, {62636,14743,3},{62636,14807,3},{62636,14857,3},{62636,14872,3},{62661,14928,3}, {62674,14988,3},{62676,15000,3},{62669,15055,3},{62649,15115,3},{62631,15128,3}, {62619,15132,3},{62618,15137,3},{62644,15192,3},{62679,15195,3},{62708,15245,3}, {62711,15252,3},{62701,15312,3},{62719,15355,3},{62133,14100,131},{62124,14167,3}, {62106,14230,3},{62078,14243,3},{62056,14263,3},{62073,14270,3},{62056,14332,3}, {62003,14357,3},{61998,14370,3},{61971,14413,3},{61938,14452,3},{61931,14462,3}, {61951,14527,3},{61939,14592,3},{61933,14615,3},{61938,14658,3},{61931,14727,3}, {61939,14777,3},{61931,14793,3},{61879,14813,3},{61856,14812,3},{61834,14872,3}, {61831,14883,3},{61806,14943,3},{61786,14998,3},{62003,14940,131},{61998,14918,3}, {61944,14903,3},{61971,14877,3},{61998,14882,3},{62023,14912,3},{62003,14940,3}, {927,57533,128},{935,57539,0},{935,57543,0},{930,57543,0},{930,57544,0}, {935,57546,0},{935,57549,0},{937,57548,0},{937,57549,0},{938,57549,0},{937,57553,0}, {935,57558,0},{937,57556,0},{940,57556,0},{943,57559,0},{943,57563,0},{947,57564,0}, {948,57568,0},{953,57569,0},{955,57571,0},{955,57569,0},{958,57571,0},{960,57576,0}, {960,57578,0},{962,57583,0},{960,57584,0},{958,57583,0},{957,57584,0},{958,57586,0}, {957,57589,0},{958,57591,0},{957,57598,0},{957,57603,0},{953,57614,0},{953,57618,0}, {955,57621,0},{953,57621,0},{955,57623,0},{955,57639,0},{952,57638,0},{952,57633,0}, {950,57629,0},{943,57631,0},{943,57636,0},{945,57638,0},{945,57641,0},{943,57646,0}, {942,57646,0},{940,57649,0},{943,57653,0},{942,57654,0},{943,57658,0},{943,57659,0}, {943,57661,0},{943,57664,0},{943,57666,0},{942,57671,0},{942,57673,0},{940,57676,0}, {943,57681,0},{940,57684,0},{940,57688,0},{938,57689,0},{937,57694,0},{927,57716,0}, {923,57733,0},{918,57738,0},{915,57743,0},{912,57743,0},{905,57749,0},{910,57749,0}, {905,57756,0},{902,57756,0},{895,57763,0},{893,57761,0},{888,57766,0},{888,57768,0}, {880,57774,0},{883,57773,0},{883,57774,0},{878,57779,0},{877,57779,0},{877,57783,0}, {873,57783,0},{872,57783,0},{870,57783,0},{865,57793,0},{867,57796,0},{867,57799,0}, {868,57799,0},{723,57748,128},{723,57744,0},{733,57736,0},{738,57734,0}, {738,57733,0},{742,57733,0},{742,57729,0},{745,57724,0},{753,57721,0},{752,57719,0}, {757,57719,0},{757,57718,0},{755,57716,0},{757,57716,0},{760,57716,0},{768,57708,0}, {773,57708,0},{787,57701,0},{790,57698,0},{797,57694,0},{802,57694,0},{805,57693,0}, {808,57693,0},{810,57696,0},{807,57696,0},{805,57703,0},{810,57711,0},{815,57713,0}, {818,57713,0},{825,57706,0},{825,57709,0},{827,57709,0},{828,57709,0},{830,57711,0}, {827,57713,0},{827,57716,0},{830,57718,0},{833,57718,0},{840,57723,0},{838,57724,0}, {835,57724,0},{832,57731,0},{825,57734,0},{820,57744,0},{822,57744,0},{825,57739,0}, {823,57748,0},{820,57753,0},{817,57753,0},{815,57758,0},{812,57758,0},{810,57761,0}, {812,57763,0},{813,57763,0},{812,57761,0},{813,57759,0},{815,57758,0},{817,57756,0}, {817,57753,0},{820,57753,0},{823,57749,0},{827,57734,0},{840,57729,0},{842,57731,0}, {847,57726,0},{848,57726,0},{850,57728,0},{853,57724,0},{855,57724,0},{853,57723,0}, {852,57724,0},{850,57726,0},{847,57724,0},{842,57728,0},{847,57721,0},{843,57718,0}, {840,57718,0},{838,57713,0},{840,57711,0},{842,57716,0},{843,57716,0},{847,57714,0}, {850,57716,0},{853,57714,0},{852,57713,0},{848,57714,0},{843,57713,0},{845,57709,0}, {847,57713,0},{850,57711,0},{848,57711,0},{843,57708,0},{843,57706,0},{848,57704,0}, {845,57703,0},{842,57699,0},{853,57698,0},{855,57696,0},{852,57694,0},{847,57698,0}, {843,57698,0},{840,57699,0},{833,57698,0},{835,57694,0},{838,57691,0},{845,57691,0}, {842,57689,0},{845,57686,0},{850,57688,0},{855,57684,0},{857,57683,0},{857,57688,0}, {860,57684,0},{863,57686,0},{865,57679,0},{867,57679,0},{867,57676,0},{870,57674,0}, {873,57676,0},{877,57674,0},{875,57674,0},{872,57674,0},{872,57673,0},{870,57671,0}, {873,57669,0},{877,57663,0},{880,57661,0},{885,57658,0},{883,57658,0},{880,57653,0}, {890,57646,0},{898,57628,0},{905,57628,0},{908,57626,0},{908,57628,0},{912,57631,0}, {912,57633,0},{912,57634,0},{915,57638,0},{912,57633,0},{913,57631,0},{908,57628,0}, {908,57624,0},{905,57628,0},{902,57628,0},{898,57624,0},{900,57621,0},{902,57619,0}, {900,57618,0},{902,57608,0},{902,57598,0},{900,57588,0},{897,57586,0},{897,57584,0}, {893,57583,0},{890,57584,0},{895,57579,0},{890,57581,0},{888,57578,0},{888,57576,0}, {723,57748,128},{715,57754,0},{715,57758,0},{705,57766,0},{707,57766,0}, {705,57768,0},{697,57771,0},{693,57766,0},{688,57766,0},{685,57768,0},{688,57768,0}, {682,57778,0},{672,57783,0},{667,57783,0},{667,57784,0},{670,57786,0},{672,57789,0}, {668,57796,0},{663,57794,0},{657,57803,0},{647,57801,0},{643,57798,0},{642,57801,0}, {638,57801,0},{638,57796,0},{635,57799,0},{625,57796,0},{623,57794,0},{625,57794,0}, {630,57788,0},{623,57788,0},{618,57788,0},{605,57798,0},{600,57799,0},{602,57801,0}, {590,57806,0},{578,57811,0},{573,57811,0},{568,57809,0},{565,57806,0},{565,57804,0}, {562,57803,0},{560,57799,0},{562,57796,0},{562,57793,0},{560,57791,0},{558,57786,0}, {552,57783,0},{550,57781,0},{548,57781,0},{548,57784,0},{550,57788,0},{550,57789,0}, {547,57793,0},{545,57796,0},{543,57796,0},{540,57798,0},{540,57796,0},{538,57796,0}, {537,57796,0},{537,57798,0},{530,57799,0},{525,57799,0},{523,57801,0},{517,57799,0}, {508,57799,0},{487,57801,0},{482,57803,0},{482,57804,0},{480,57804,0},{472,57811,0}, {475,57804,0},{472,57804,0},{467,57808,0},{465,57806,0},{467,57804,0},{455,57804,0}, {447,57803,0},{447,57804,0},{445,57801,0},{440,57801,0},{433,57798,0},{427,57803,0}, {427,57809,0},{425,57813,0},{420,57806,0},{420,57804,0},{422,57803,0},{418,57798,0}, {418,57793,0},{413,57793,0},{407,57793,0},{405,57794,0},{403,57793,0},{402,57793,0}, {398,57794,0},{397,57799,0},{395,57798,0},{392,57799,0},{393,57801,0},{398,57804,0}, {405,57804,0},{407,57809,0},{410,57809,0},{407,57813,0},{407,57818,0},{403,57816,0}, {398,57813,0},{397,57814,0},{397,57809,0},{398,57809,0},{397,57806,0},{395,57806,0}, {390,57804,0},{388,57809,0},{387,57808,0},{383,57811,0},{385,57818,0},{388,57823,0}, {390,57824,0},{392,57824,0},{392,57828,0},{390,57828,0},{392,57833,0},{385,57829,0}, {383,57824,0},{382,57826,0},{380,57826,0},{382,57823,0},{380,57821,0},{377,57824,0}, {375,57819,0},{373,57821,0},{373,57823,0},{373,57819,0},{375,57816,0},{370,57818,0}, {372,57819,0},{372,57823,0},{370,57823,0},{370,57819,0},{367,57819,0},{367,57824,0}, {367,57821,0},{365,57819,0},{365,57818,0},{362,57816,0},{358,57813,0},{357,57814,0}, {357,57808,0},{355,57806,0},{355,57808,0},{355,57804,0},{353,57804,0},{353,57809,0}, {352,57806,0},{350,57809,0},{350,57808,0},{348,57809,0},{348,57808,0},{348,57804,0}, {352,57804,0},{347,57803,0},{345,57801,0},{340,57803,0},{342,57801,0},{340,57799,0}, {335,57801,0},{333,57804,0},{332,57804,0},{333,57801,0},{338,57798,0},{335,57794,0}, {337,57791,0},{333,57789,0},{332,57794,0},{330,57796,0},{325,57794,0},{325,57789,0}, {322,57789,0},{322,57786,0},{318,57784,0},{317,57783,0},{313,57784,0},{305,57781,0}, {303,57771,0},{305,57766,0},{297,57764,0},{300,57768,0},{298,57768,0},{298,57769,0}, {300,57771,0},{298,57774,0},{297,57773,0},{295,57773,0},{293,57774,0},{288,57771,0}, {293,57768,0},{292,57766,0},{288,57764,0},{287,57766,0},{287,57768,0},{288,57769,0}, {287,57773,0},{285,57773,0},{287,57771,0},{283,57768,0},{285,57764,0},{282,57763,0}, {282,57766,0},{278,57768,0},{280,57764,0},{282,57761,0},{280,57758,0},{278,57758,0}, {278,57763,0},{277,57759,0},{275,57758,0},{277,57754,0},{273,57756,0},{268,57756,0}, {268,57759,0},{267,57756,0},{267,57758,0},{260,57761,0},{257,57756,0},{255,57751,0}, {258,57746,0},{260,57746,0},{263,57748,0},{263,57744,0},{265,57743,0},{265,57741,0}, {262,57743,0},{260,57739,0},{258,57739,0},{257,57741,0},{252,57738,0},{253,57734,0}, {255,57731,0},{255,57728,0},{252,57728,0},{248,57724,0},{252,57718,0},{253,57716,0}, {253,57714,0},{252,57714,0},{255,57713,0},{255,57711,0},{243,57701,0},{250,57694,0}, {250,57691,0},{243,57689,0},{243,57683,0},{238,57681,0},{245,57679,0},{235,57676,0}, {235,57674,0},{228,57671,0},{227,57671,0},{225,57673,0},{220,57668,0},{217,57668,0}, {217,57669,0},{215,57668,0},{213,57669,0},{215,57671,0},{213,57669,0},{208,57669,0}, {207,57671,0},{200,57669,0},{200,57673,0},{203,57674,0},{202,57676,0},{200,57678,0}, {198,57678,0},{195,57676,0},{192,57681,0},{177,57678,0},{177,57674,0},{182,57673,0}, {180,57666,0},{182,57661,0},{183,57651,0},{182,57648,0},{178,57644,0},{177,57641,0}, {163,57631,0},{160,57633,0},{158,57643,0},{155,57648,0},{155,57651,0},{148,57649,0}, {143,57654,0},{1185,58404,128},{1192,58406,0},{1198,58419,0},{1202,58424,0}, {1210,58424,0},{1227,58414,0},{1230,58414,0},{1233,58411,0},{1238,58398,0}, {1238,58393,0},{1243,58388,0},{1245,58379,0},{1243,58378,0},{1247,58371,0}, {1245,58364,0},{1242,58363,0},{1245,58368,0},{1243,58366,0},{1243,58371,0}, {1242,58368,0},{1242,58373,0},{1240,58366,0},{1237,58368,0},{1237,58366,0}, {1238,58364,0},{1240,58364,0},{1242,58363,0},{1238,58361,0},{1238,58363,0}, {1235,58361,0},{1233,58356,0},{1232,58354,0},{1235,58353,0},{1237,58354,0}, {1237,58349,0},{1228,58339,0},{1227,58341,0},{1228,58343,0},{1228,58348,0}, {1220,58349,0},{1218,58344,0},{1217,58343,0},{1215,58341,0},{1215,58336,0}, {1218,58336,0},{1218,58334,0},{1225,58339,0},{1227,58339,0},{1225,58328,0}, {1225,58323,0},{1223,58319,0},{1222,58319,0},{1220,58321,0},{1210,58323,0}, {1192,58313,0},{1188,58311,0},{1183,58298,0},{1180,58294,0},{1178,58289,0}, {1178,58284,0},{1175,58279,0},{1175,58276,0},{1173,58273,0},{1170,58259,0}, {1163,58253,0},{1157,58246,0},{1152,58234,0},{1145,58226,0},{1142,58221,0}, {1138,58216,0},{1135,58214,0},{1130,58208,0},{1127,58198,0},{1127,58169,0}, {1127,58159,0},{1127,58156,0},{1130,58148,0},{1135,58134,0},{1135,58131,0}, {1133,58131,0},{1135,58129,0},{1133,58128,0},{1135,58126,0},{1132,58123,0}, {1135,58121,0},{1132,58121,0},{1132,58118,0},{1128,58116,0},{1123,58113,0}, {1112,58113,0},{1108,58114,0},{1097,58108,0},{1093,58108,0},{1085,58103,0}, {1083,58103,0},{1075,58098,0},{1075,58091,0},{1082,58089,0},{1083,58086,0}, {1080,58084,0},{1077,58084,0},{1078,58086,0},{1075,58086,0},{1075,58083,0}, {1080,58081,0},{1083,58079,0},{1078,58078,0},{1078,58076,0},{1083,58076,0}, {1088,58076,0},{1088,58078,0},{1087,58083,0},{1088,58084,0},{1085,58088,0}, {1088,58088,0},{1090,58084,0},{1097,58086,0},{1097,58103,0},{1100,58108,0}, {1098,58098,0},{1098,58089,0},{1100,58084,0},{1108,58061,0},{1110,58053,0}, {1113,58049,0},{1110,58049,0},{1108,58046,0},{1097,58034,0},{1090,58033,0}, {1087,58023,0},{1080,58013,0},{1080,58009,0},{1075,58009,0},{1075,58011,0}, {1077,58013,0},{1075,58013,0},{1072,58013,0},{1070,58011,0},{1072,58009,0}, {1073,58011,0},{1073,58008,0},{1072,58008,0},{1068,57996,0},{1063,57994,0}, {1063,57991,0},{1060,57991,0},{1057,57983,0},{1053,57986,0},{1050,57984,0}, {1050,57988,0},{1043,57988,0},{1043,57984,0},{1048,57986,0},{1043,57979,0}, {1040,57979,0},{1042,57981,0},{1038,57983,0},{1038,57984,0},{1030,57984,0}, {1028,57978,0},{1030,57976,0},{1027,57976,0},{1025,57974,0},{1022,57973,0}, {1015,57964,0},{1013,57966,0},{1015,57969,0},{1025,57981,0},{1023,57983,0}, {1018,57983,0},{1013,57979,0},{1013,57978,0},{1003,57978,0},{995,57976,0}, {988,57973,0},{980,57973,0},{975,57969,0},{970,57964,0},{970,57973,0},{967,57976,0}, {958,57978,0},{945,57973,0},{942,57968,0},{942,57961,0},{942,57959,0},{938,57956,0}, {940,57954,0},{940,57951,0},{942,57953,0},{942,57956,0},{943,57956,0},{942,57944,0}, {943,57943,0},{937,57934,0},{933,57928,0},{930,57924,0},{927,57924,0},{923,57919,0}, {912,57916,0},{907,57911,0},{905,57909,0},{900,57909,0},{893,57904,0},{890,57893,0}, {887,57893,0},{883,57886,0},{878,57883,0},{875,57871,0},{868,57869,0},{862,57848,0}, {855,57841,0},{853,57843,0},{855,57843,0},{848,57854,0},{843,57856,0},{840,57859,0}, {833,57859,0},{828,57858,0},{818,57861,0},{808,57861,0},{810,57861,0},{808,57863,0}, {798,57863,0},{797,57861,0},{792,57861,0},{790,57854,0},{792,57849,0},{793,57844,0}, {798,57843,0},{803,57844,0},{803,57853,0},{805,57849,0},{805,57853,0},{808,57851,0}, {810,57853,0},{810,57851,0},{813,57853,0},{813,57846,0},{812,57848,0},{810,57846,0}, {813,57841,0},{817,57841,0},{817,57843,0},{818,57844,0},{818,57843,0},{820,57841,0}, {818,57841,0},{820,57839,0},{823,57839,0},{823,57841,0},{827,57841,0},{825,57838,0}, {827,57833,0},{837,57824,0},{842,57823,0},{847,57811,0},{852,57808,0},{858,57806,0}, {863,57801,0},{867,57801,0},{867,57799,0},{143,57654,128},{143,57653,0}, {138,57653,0},{135,57649,0},{132,57648,0},{130,57649,0},{128,57654,0},{128,57649,0}, {123,57648,0},{123,57644,0},{123,57643,0},{122,57641,0},{115,57641,0},{112,57638,0}, {118,57634,0},{122,57631,0},{113,57624,0},{108,57618,0},{107,57598,0},{107,57591,0}, {100,57581,0},{98,57573,0},{90,57571,0},{87,57574,0},{83,57574,0},{88,57573,0}, {90,57569,0},{100,57571,0},{95,57561,0},{87,57549,0},{87,57543,0},{83,57539,0}, {83,57529,0},{77,57526,0},{68,57524,0},{65,57528,0},{63,57531,0},{58,57534,0}, {53,57534,0},{48,57531,0},{43,57533,0},{37,57536,0},{32,57536,0},{35,57534,0}, {35,57533,0},{17,57533,0},{7,57529,0},{3,57526,0},{0,57526,0},{65533,57521,0}, {65529,57516,0},{65521,57511,0},{65519,57506,0},{65519,57503,0},{65513,57498,0}, {65508,57496,0},{65499,57486,0},{65494,57488,0},{65493,57489,0},{65474,57498,0}, {65473,57509,0},{65473,57503,0},{65473,57496,0},{65478,57494,0},{65479,57493,0}, {65473,57489,0},{65463,57484,0},{65453,57483,0},{65446,57478,0},{65443,57474,0}, {65444,57469,0},{65443,57466,0},{65444,57459,0},{65443,57456,0},{65443,57453,0}, {65436,57448,0},{65433,57444,0},{65431,57444,0},{65423,57448,0},{65403,57461,0}, {65398,57458,0},{65389,57458,0},{65388,57454,0},{65383,57454,0},{65381,57451,0}, {65376,57451,0},{65359,57459,0},{65343,57463,0},{65341,57463,0},{65339,57459,0}, {65329,57461,0},{65323,57458,0},{65316,57444,0},{65319,57434,0},{65316,57436,0}, {65311,57441,0},{65304,57444,0},{65304,57448,0},{65298,57458,0},{65298,57463,0}, {65296,57468,0},{65291,57474,0},{65273,57489,0},{65271,57496,0},{65264,57504,0}, {65263,57511,0},{65266,57511,0},{65271,57509,0},{65271,57508,0},{65276,57508,0}, {65273,57513,0},{65276,57516,0},{65278,57519,0},{65284,57526,0},{65301,57533,0}, {65303,57534,0},{65303,57538,0},{65304,57541,0},{65301,57538,0},{65299,57534,0}, {65288,57533,0},{65291,57536,0},{65288,57541,0},{65289,57543,0},{65288,57543,0}, {65286,57541,0},{65288,57538,0},{65288,57534,0},{65283,57533,0},{65281,57529,0}, {65278,57529,0},{65276,57531,0},{65278,57534,0},{65274,57536,0},{65279,57546,0}, {65294,57549,0},{65304,57549,0},{65309,57549,0},{65314,57546,0},{65326,57548,0}, {65328,57549,0},{65328,57553,0},{65333,57553,0},{65334,57559,0},{65333,57558,0}, {65331,57554,0},{65328,57554,0},{65326,57551,0},{65323,57551,0},{65319,57549,0}, {65314,57553,0},{65309,57551,0},{65304,57553,0},{65298,57551,0},{65294,57554,0}, {65288,57558,0},{65288,57561,0},{65281,57564,0},{65276,57563,0},{65269,57558,0}, {65261,57556,0},{65258,57553,0},{65244,57549,0},{65239,57548,0},{65233,57548,0}, {65228,57544,0},{65216,57541,0},{65211,57534,0},{65208,57533,0},{65213,57533,0}, {65214,57531,0},{65216,57531,0},{65206,57526,0},{65203,57521,0},{65201,57509,0}, {65203,57508,0},{65203,57506,0},{65198,57506,0},{65199,57504,0},{65203,57504,0}, {65199,57503,0},{65194,57501,0},{65188,57498,0},{65186,57483,0},{65174,57476,0}, {65161,57454,0},{65158,57451,0},{65148,57449,0},{65141,57438,0},{65126,57429,0}, {65124,57424,0},{65114,57416,0},{65111,57411,0},{65106,57408,0},{65098,57408,0}, {65091,57406,0},{65088,57403,0},{65081,57406,0},{65071,57403,0},{65068,57401,0}, {65051,57414,0},{65046,57418,0},{65041,57424,0},{65034,57428,0},{65029,57426,0}, {65029,57418,0},{65019,57418,0},{65016,57416,0},{65008,57423,0},{65004,57428,0}, {64993,57441,0},{64971,57449,0},{64959,57448,0},{64951,57444,0},{64949,57438,0}, {64951,57431,0},{64956,57426,0},{64953,57424,0},{64951,57421,0},{64946,57418,0}, {64936,57418,0},{64928,57423,0},{64924,57426,0},{64916,57443,0},{64904,57458,0}, {64893,57484,0},{64881,57504,0},{64873,57523,0},{64859,57538,0},{64848,57543,0}, {64841,57549,0},{64838,57554,0},{64828,57563,0},{64824,57564,0},{64818,57564,0}, {64809,57573,0},{64796,57578,0},{64793,57576,0},{64789,57578,0},{64778,57586,0}, {64769,57591,0},{64766,57591,0},{64764,57589,0},{64761,57593,0},{64744,57604,0}, {64733,57619,0},{64728,57623,0},{64714,57636,0},{64708,57638,0},{64699,57644,0}, {64694,57644,0},{64693,57641,0},{64686,57651,0},{64678,57659,0},{64668,57661,0}, {64661,57659,0},{64658,57659,0},{64644,57669,0},{64639,57669,0},{64638,57668,0}, {64636,57671,0},{64629,57671,0},{64628,57676,0},{64624,57679,0},{64621,57678,0}, {64619,57674,0},{64616,57676,0},{64613,57676,0},{64613,57678,0},{64618,57679,0}, {64618,57684,0},{64613,57684,0},{64609,57683,0},{64603,57686,0},{64603,57691,0}, {64594,57693,0},{64593,57696,0},{64589,57694,0},{64574,57698,0},{64568,57703,0}, {64556,57711,0},{64549,57709,0},{64546,57713,0},{64541,57711,0},{64538,57714,0}, {64529,57718,0},{64524,57716,0},{64513,57724,0},{64509,57726,0},{64508,57729,0}, {64503,57729,0},{64499,57734,0},{64488,57739,0},{64481,57744,0},{64471,57749,0}, {64461,57758,0},{64454,57759,0},{64451,57764,0},{64448,57764,0},{64443,57768,0}, {64441,57768,0},{64438,57769,0},{64434,57768,0},{64431,57771,0},{64426,57771,0}, {64426,57773,0},{64423,57773,0},{64418,57774,0},{64414,57774,0},{64414,57771,0}, {64413,57769,0},{64406,57771,0},{64391,57799,0},{64384,57806,0},{64381,57808,0}, {64378,57808,0},{64369,57816,0},{64363,57819,0},{64359,57816,0},{64353,57818,0}, {64348,57821,0},{64339,57821,0},{64333,57821,0},{64329,57818,0},{64328,57824,0}, {64324,57829,0},{64321,57833,0},{64318,57831,0},{64314,57833,0},{64309,57844,0}, {64298,57856,0},{64293,57858,0},{64288,57856,0},{64284,57856,0},{64283,57861,0}, {64276,57864,0},{64274,57868,0},{64269,57868,0},{64259,57874,0},{64251,57883,0}, {64231,57886,0},{64208,57908,0},{64193,57916,0},{64189,57918,0},{64173,57916,0}, {64151,57909,0},{64153,57906,0},{64156,57906,0},{64156,57904,0},{64154,57899,0}, {64148,57896,0},{64146,57896,0},{64144,57899,0},{64144,57904,0},{64146,57906,0}, {64133,57908,0},{64129,57908,0},{64126,57906,0},{64119,57908,0},{64118,57909,0}, {64121,57909,0},{64119,57916,0},{64114,57918,0},{64113,57923,0},{64104,57924,0}, {64103,57921,0},{64099,57924,0},{64098,57928,0},{64093,57931,0},{64089,57938,0}, {64083,57936,0},{64079,57941,0},{64069,57943,0},{64068,57949,0},{64064,57951,0}, {64059,57958,0},{64046,57983,0},{64043,57986,0},{64039,57986,0},{64034,57993,0}, {64023,57998,0},{64021,57999,0},{64021,58006,0},{64018,58009,0},{64013,58014,0}, {64009,58009,0},{64008,58013,0},{64006,58018,0},{64004,58021,0},{64003,58019,0}, {64001,58016,0},{63999,58016,0},{63996,58021,0},{63994,58026,0},{63989,58031,0}, {63991,58034,0},{63989,58036,0},{63986,58038,0},{63986,58044,0},{63979,58051,0}, {63976,58063,0},{63971,58069,0},{63964,58088,0},{63956,58093,0},{63951,58101,0}, {63951,58108,0},{63948,58111,0},{63946,58119,0},{63941,58131,0},{63934,58133,0}, {63933,58138,0},{63919,58153,0},{63918,58161,0},{63913,58166,0},{63913,58174,0}, {63908,58193,0},{63903,58204,0},{63896,58206,0},{63894,58213,0},{63896,58216,0}, {63894,58218,0},{63891,58223,0},{63883,58239,0},{63881,58246,0},{63873,58258,0}, {63871,58263,0},{63869,58276,0},{63868,58286,0},{63861,58294,0},{63859,58299,0}, {63853,58306,0},{63848,58306,0},{63846,58313,0},{63841,58319,0},{63838,58323,0}, {63834,58324,0},{63833,58331,0},{63831,58338,0},{63826,58344,0},{63821,58348,0}, {63818,58353,0},{63814,58369,0},{63808,58378,0},{63808,58383,0},{63806,58386,0}, {63803,58388,0},{63796,58396,0},{63773,58401,0},{63766,58398,0},{63764,58406,0}, {63759,58416,0},{63756,58419,0},{63751,58426,0},{63749,58428,0},{63748,58434,0}, {63744,58441,0},{63741,58444,0},{63733,58449,0},{63733,58454,0},{63726,58463,0}, {63716,58471,0},{63711,58484,0},{63701,58496,0},{63693,58504,0},{63691,58503,0}, {63686,58504,0},{63673,58501,0},{63669,58503,0},{63666,58501,0},{63663,58503,0}, {63658,58501,0},{63648,58504,0},{63634,58504,0},{63623,58509,0},{63606,58508,0}, {63604,58509,0},{63601,58509,0},{63596,58514,0},{63586,58516,0},{63583,58516,0}, {63578,58516,0},{63578,58513,0},{63573,58518,0},{63569,58519,0},{63568,58519,0}, {63564,58521,0},{63559,58521,0},{63556,58519,0},{63549,58523,0},{63548,58521,0}, {63541,58523,0},{63538,58524,0},{63531,58523,0},{63528,58523,0},{63521,58521,0}, {63518,58521,0},{63516,58519,0},{63509,58523,0},{63504,58521,0},{63499,58518,0}, {63496,58519,0},{63491,58519,0},{63488,58519,0},{63483,58516,0},{63471,58518,0}, {63466,58516,0},{63458,58516,0},{63456,58514,0},{63448,58523,0},{63443,58523,0}, {63434,58519,0},{63428,58524,0},{63424,58523,0},{63414,58528,0},{63406,58529,0}, {63403,58526,0},{63393,58531,0},{63388,58528,0},{63384,58529,0},{63383,58528,0}, {63378,58528,0},{63374,58521,0},{63369,58521,0},{63351,58521,0},{63348,58519,0}, {63348,58516,0},{63341,58519,0},{63336,58516,0},{63329,58518,0},{63328,58516,0}, {63321,58514,0},{63308,58513,0},{63303,58511,0},{63298,58513,0},{63291,58509,0}, {63288,58511,0},{63279,58508,0},{63274,58509,0},{63273,58508,0},{63266,58508,0}, {63261,58506,0},{63256,58504,0},{63246,58508,0},{63241,58503,0},{63234,58503,0}, {63229,58498,0},{63228,58489,0},{63229,58486,0},{63234,58486,0},{63234,58484,0}, {63229,58478,0},{63219,58481,0},{63214,58476,0},{63209,58476,0},{63206,58478,0}, {63198,58476,0},{63194,58478,0},{63191,58474,0},{63186,58474,0},{63188,58476,0}, {63186,58478,0},{63184,58481,0},{63186,58483,0},{63191,58484,0},{63191,58488,0}, {63186,58494,0},{63176,58498,0},{63166,58493,0},{63158,58486,0},{63153,58488,0}, {63149,58484,0},{63146,58486,0},{63136,58484,0},{63131,58486,0},{63119,58486,0}, {63104,58481,0},{63101,58483,0},{63098,58481,0},{63088,58481,0},{63083,58478,0}, {63074,58481,0},{63064,58478,0},{63059,58481,0},{63046,58483,0},{63036,58489,0}, {63026,58486,0},{63023,58489,0},{63016,58493,0},{63001,58491,0},{62998,58488,0}, {62998,58484,0},{62988,58481,0},{62986,58478,0},{62986,58474,0},{62983,58471,0}, {62979,58473,0},{62973,58471,0},{62969,58468,0},{62964,58466,0},{62961,58466,0}, {62956,58463,0},{62951,58466,0},{62948,58466,0},{62943,58471,0},{62936,58473,0}, {62933,58473,0},{62929,58469,0},{62919,58469,0},{62916,58469,0},{62911,58471,0}, {62908,58469,0},{62906,58473,0},{62904,58473,0},{62898,58466,0},{62893,58468,0}, {62886,58466,0},{62883,58468,0},{62878,58466,0},{62868,58463,0},{62864,58461,0}, {62861,58461,0},{62849,58454,0},{62836,58458,0},{62834,58454,0},{62831,58454,0}, {62831,58451,0},{62823,58448,0},{62823,58446,0},{62826,58443,0},{62823,58441,0}, {62818,58439,0},{62814,58441,0},{62811,58441,0},{62806,58443,0},{62803,58443,0}, {62799,58441,0},{62788,58448,0},{62781,58444,0},{62774,58444,0},{62769,58441,0}, {62768,58436,0},{62771,58433,0},{62769,58433,0},{62764,58431,0},{62758,58428,0}, {62754,58428,0},{62751,58426,0},{62749,58426,0},{62746,58424,0},{62741,58423,0}, {62729,58421,0},{62726,58419,0},{62714,58421,0},{62706,58418,0},{62701,58419,0}, {62689,58414,0},{62689,58409,0},{62683,58409,0},{62679,58404,0},{62674,58408,0}, {62668,58406,0},{62663,58399,0},{62656,58398,0},{62649,58386,0},{62639,58384,0}, {62638,58386,0},{62634,58386,0},{62631,58388,0},{62629,58386,0},{62626,58389,0}, {62621,58386,0},{62614,58388,0},{62606,58401,0},{62598,58403,0},{62594,58406,0}, {62581,58403,0},{62574,58408,0},{62571,58404,0},{62563,58403,0},{62556,58404,0}, {62553,58408,0},{62546,58408,0},{62543,58406,0},{62543,58401,0},{62539,58401,0}, {62536,58394,0},{62528,58399,0},{62523,58398,0},{62518,58394,0},{62518,58393,0}, {62519,58393,0},{62516,58389,0},{62513,58388,0},{62513,58384,0},{62509,58386,0}, {62506,58381,0},{62508,58376,0},{62511,58374,0},{62511,58373,0},{62501,58368,0}, {62474,58364,0},{62458,58366,0},{62443,58368,0},{62438,58371,0},{62421,58369,0}, {62384,58379,0},{62376,58379,0},{62358,58384,0},{62351,58381,0},{62348,58386,0}, {62344,58383,0},{62338,58386,0},{62316,58383,0},{62308,58388,0},{62303,58389,0}, {62301,58393,0},{62298,58396,0},{62294,58393,0},{62288,58393,0},{62284,58389,0}, {62271,58391,0},{62266,58389,0},{62264,58384,0},{62259,58386,0},{62258,58381,0}, {62248,58384,0},{62243,58381,0},{62234,58379,0},{62233,58376,0},{62234,58371,0}, {62228,58368,0},{62226,58361,0},{62219,58364,0},{62209,58366,0},{62206,58369,0}, {62201,58369,0},{62198,58366,0},{62193,58364,0},{62183,58374,0},{62179,58371,0}, {62168,58369,0},{62163,58366,0},{62158,58354,0},{62143,58349,0},{62139,58346,0}, {62134,58346,0},{62133,58343,0},{62121,58334,0},{62118,58334,0},{62114,58338,0}, {62099,58338,0},{62096,58333,0},{62094,58331,0},{62084,58333,0},{62083,58331,0}, {62071,58331,0},{62061,58326,0},{62058,58323,0},{62048,58318,0},{62026,58314,0}, {62019,58308,0},{62013,58298,0},{62001,58293,0},{61999,58288,0},{61988,58286,0}, {61978,58271,0},{61976,58271,0},{61963,58278,0},{61956,58278,0},{61954,58276,0}, {61951,58269,0},{61946,58266,0},{61938,58256,0},{61933,58258,0},{61926,58254,0}, {61921,58256,0},{61918,58253,0},{61904,58253,0},{61898,58248,0},{61893,58248,0}, {61889,58244,0},{61883,58243,0},{61884,58239,0},{61883,58238,0},{61879,58236,0}, {61874,58239,0},{61866,58238,0},{61864,58233,0},{61866,58228,0},{61874,58228,0}, {61876,58226,0},{61876,58224,0},{61868,58223,0},{61866,58221,0},{61864,58224,0}, {61863,58223,0},{61861,58221,0},{61863,58219,0},{61859,58216,0},{61854,58221,0}, {61849,58221,0},{61841,58221,0},{61836,58218,0},{61831,58219,0},{61821,58216,0}, {61816,58209,0},{61811,58191,0},{61814,58189,0},{61816,58183,0},{61821,58178,0}, {61818,58173,0},{61808,58171,0},{61803,58168,0},{61799,58169,0},{61794,58176,0}, {61789,58176,0},{61784,58176,0},{61776,58168,0},{61768,58171,0},{61763,58169,0}, {61759,58174,0},{61749,58183,0},{61731,58191,0},{61716,58189,0},{61709,58184,0}, {61704,58186,0},{61703,58184,0},{61698,58183,0},{61683,58184,0},{61658,58193,0}, {61666,58193,0},{61646,58199,0},{61621,58211,0},{61614,58211,0},{61614,58214,0}, {61618,58213,0},{61614,58216,0},{61611,58213,0},{61601,58214,0},{61598,58211,0}, {61594,58214,0},{61591,58211,0},{61588,58211,0},{61571,58201,0},{61569,58201,0}, {61569,58198,0},{61566,58196,0},{61563,58198,0},{61556,58196,0},{61549,58199,0}, {61544,58198,0},{61544,58196,0},{61553,58194,0},{61553,58193,0},{61553,58189,0}, {61548,58184,0},{61544,58176,0},{61543,58176,0},{61543,58169,0},{61538,58164,0}, {61533,58169,0},{61524,58171,0},{61524,58169,0},{61523,58166,0},{61518,58163,0}, {61514,58164,0},{61511,58161,0},{61494,58159,0},{61494,58158,0},{61484,58161,0}, {61478,58158,0},{61474,58153,0},{61473,58151,0},{61468,58151,0},{61461,58146,0}, {61454,58144,0},{61449,58141,0},{61448,58146,0},{61446,58146,0},{61443,58141,0}, {61439,58136,0},{61424,58138,0},{61406,58149,0},{61396,58151,0},{61389,58149,0}, {61384,58154,0},{61379,58154,0},{61379,58159,0},{61376,58164,0},{61376,58176,0}, {61378,58181,0},{61379,58181,0},{61384,58186,0},{61374,58179,0},{61374,58168,0}, {61371,58168,0},{61368,58163,0},{61361,58161,0},{61359,58178,0},{61356,58184,0}, {61358,58191,0},{61356,58194,0},{61358,58194,0},{61359,58196,0},{61356,58216,0}, {61361,58219,0},{61361,58223,0},{61366,58226,0},{61366,58231,0},{61378,58226,0}, {61379,58231,0},{61384,58231,0},{61388,58241,0},{61384,58248,0},{61386,58253,0}, {61381,58261,0},{61376,58264,0},{61374,58268,0},{61369,58268,0},{61366,58273,0}, {61366,58279,0},{61368,58283,0},{61368,58288,0},{61369,58294,0},{61374,58298,0}, {61391,58301,0},{61394,58304,0},{61398,58301,0},{61399,58303,0},{61398,58306,0}, {61388,58303,0},{61384,58306,0},{61381,58304,0},{61374,58303,0},{61371,58306,0}, {61371,58299,0},{61368,58296,0},{61364,58288,0},{61363,58278,0},{61363,58269,0}, {61344,58248,0},{61341,58253,0},{61338,58254,0},{61334,58264,0},{61336,58268,0}, {61334,58269,0},{61334,58274,0},{61333,58276,0},{61333,58279,0},{61339,58283,0}, {61339,58289,0},{61324,58288,0},{61321,58288,0},{61321,58294,0},{61319,58289,0}, {61314,58288,0},{61311,58289,0},{61311,58294,0},{61309,58289,0},{61306,58288,0}, {61299,58293,0},{61291,58294,0},{61289,58293,0},{61291,58291,0},{61309,58281,0}, {61313,58281,0},{61318,58276,0},{61314,58266,0},{61314,58261,0},{61306,58251,0}, {61306,58253,0},{61306,58256,0},{61298,58259,0},{61296,58264,0},{61293,58264,0}, {61288,58268,0},{61284,58279,0},{61279,58283,0},{61281,58278,0},{61286,58268,0}, {61286,58258,0},{61286,58254,0},{61279,58251,0},{61274,58249,0},{61268,58254,0}, {61266,58249,0},{61259,58249,0},{61251,58253,0},{61244,58263,0},{61234,58259,0}, {61228,58263,0},{61229,58258,0},{61234,58256,0},{61236,58253,0},{61233,58249,0}, {61228,58244,0},{61223,58243,0},{61213,58246,0},{61206,58228,0},{61196,58228,0}, {61193,58224,0},{61178,58233,0},{61176,58239,0},{61178,58244,0},{61174,58246,0}, {61174,58239,0},{61168,58236,0},{61166,58231,0},{61163,58231,0},{61163,58236,0}, {61159,58239,0},{61161,58243,0},{61161,58248,0},{61163,58249,0},{61168,58251,0}, {61163,58251,0},{61158,58251,0},{61154,58254,0},{61154,58251,0},{61158,58248,0}, {61154,58239,0},{61154,58238,0},{61159,58236,0},{61154,58234,0},{61148,58229,0}, {61144,58229,0},{61143,58226,0},{61138,58223,0},{61133,58223,0},{61126,58224,0}, {61128,58221,0},{61129,58218,0},{61129,58214,0},{61126,58214,0},{61123,58214,0}, {61126,58209,0},{61123,58208,0},{61118,58208,0},{61116,58214,0},{61118,58219,0}, {61121,58224,0},{61119,58226,0},{61114,58223,0},{61114,58219,0},{61111,58218,0}, {61104,58243,0},{61099,58243,0},{61096,58251,0},{61093,58254,0},{61091,58261,0}, {61086,58264,0},{61086,58266,0},{61094,58269,0},{61096,58273,0},{61101,58278,0}, {61091,58274,0},{61086,58276,0},{61081,58268,0},{61073,58266,0},{61069,58263,0}, {61063,58266,0},{61059,58263,0},{61059,58258,0},{61049,58243,0},{61049,58236,0}, {61041,58224,0},{61039,58213,0},{61041,58203,0},{61038,58198,0},{61033,58196,0}, {61028,58199,0},{61028,58203,0},{61024,58203,0},{61021,58206,0},{61016,58201,0}, {61016,58191,0},{61011,58189,0},{61008,58191,0},{61006,58201,0},{61008,58204,0}, {61011,58209,0},{61008,58218,0},{60998,58231,0},{60994,58241,0},{60998,58248,0}, {60996,58251,0},{60994,58253,0},{60993,58251,0},{60989,58251,0},{60989,58249,0}, {60991,58234,0},{60994,58233,0},{60994,58228,0},{61001,58218,0},{61004,58218,0}, {61006,58214,0},{61003,58204,0},{60996,58204,0},{60999,58201,0},{60998,58196,0}, {60991,58194,0},{60994,58193,0},{60991,58184,0},{60958,58178,0},{60964,58189,0}, {60969,58193,0},{60974,58203,0},{60971,58206,0},{60969,58218,0},{60968,58213,0}, {60968,58198,0},{60966,58194,0},{60953,58179,0},{60949,58181,0},{60948,58184,0}, {60948,58178,0},{60943,58174,0},{60941,58176,0},{60939,58169,0},{60934,58171,0}, {60931,58171,0},{60928,58174,0},{60916,58171,0},{60914,58173,0},{60914,58171,0}, {60911,58168,0},{60904,58168,0},{60908,58173,0},{60911,58176,0},{60914,58174,0}, {60928,58191,0},{60933,58193,0},{60934,58198,0},{60933,58201,0},{60929,58194,0}, {60921,58188,0},{60918,58183,0},{60908,58179,0},{60906,58181,0},{60906,58188,0}, {60903,58174,0},{60894,58161,0},{60889,58159,0},{60883,58163,0},{60886,58158,0}, {60883,58156,0},{60878,58153,0},{60876,58148,0},{60876,58144,0},{60881,58136,0}, {60898,58154,0},{60906,58159,0},{60913,58159,0},{60916,58151,0},{60923,58148,0}, {60921,58139,0},{60914,58134,0},{60914,58139,0},{60909,58141,0},{60904,58149,0}, {60901,58151,0},{60908,58134,0},{60904,58129,0},{60909,58133,0},{60911,58133,0}, {60913,58129,0},{60916,58131,0},{60911,58118,0},{60909,58103,0},{60918,58086,0}, {60919,58088,0},{60914,58094,0},{60911,58103,0},{60913,58116,0},{60918,58128,0}, {60924,58136,0},{60931,58139,0},{60938,58131,0},{60936,58129,0},{60926,58129,0}, {60923,58123,0},{60923,58119,0},{60926,58124,0},{60933,58128,0},{60934,58126,0}, {60934,58119,0},{60938,58128,0},{60941,58131,0},{60944,58129,0},{60943,58121,0}, {60946,58124,0},{60948,58116,0},{60951,58126,0},{60956,58119,0},{60954,58109,0}, {60953,58104,0},{60956,58101,0},{60954,58094,0},{60956,58091,0},{60951,58093,0}, {60951,58089,0},{60943,58096,0},{60933,58089,0},{60934,58088,0},{60943,58091,0}, {60944,58089,0},{60943,58084,0},{60946,58084,0},{60946,58081,0},{60951,58083,0}, {60954,58079,0},{60951,58076,0},{60953,58073,0},{60954,58069,0},{60944,58064,0}, {60936,58064,0},{60934,58063,0},{60933,58066,0},{60933,58059,0},{60924,58054,0}, {60921,58054,0},{60918,58061,0},{60918,58058,0},{60914,58058,0},{60921,58049,0}, {60921,58046,0},{60913,58039,0},{60908,58043,0},{60914,58033,0},{60914,58026,0}, {60911,58024,0},{60909,58026,0},{60908,58024,0},{60906,58021,0},{60903,58024,0}, {60901,58033,0},{60901,58026,0},{60906,58016,0},{60894,58014,0},{60899,58011,0}, {60899,58009,0},{60893,57996,0},{60888,57998,0},{60888,57993,0},{60884,57989,0}, {60884,57983,0},{60883,57981,0},{60881,57984,0},{60879,57979,0},{60879,57973,0}, {60876,57971,0},{60873,57966,0},{60858,57964,0},{60854,57969,0},{60849,57971,0}, {60844,57978,0},{60843,57978,0},{60841,57986,0},{60846,58001,0},{60849,58001,0}, {60851,57999,0},{60849,57993,0},{60853,57996,0},{60858,57998,0},{60858,57996,0}, {60858,57993,0},{60858,57989,0},{60861,57991,0},{60863,57991,0},{60863,57994,0}, {60866,57993,0},{60866,57981,0},{60861,57978,0},{60858,57973,0},{60858,57971,0}, {60859,57971,0},{60863,57976,0},{60866,57976,0},{60871,57991,0},{60873,57994,0}, {60871,57996,0},{60869,58001,0},{60873,58003,0},{60873,58011,0},{60876,58014,0}, {60873,58016,0},{60873,58018,0},{60879,58028,0},{60884,58031,0},{60886,58038,0}, {60893,58043,0},{60884,58043,0},{60881,58036,0},{60878,58034,0},{60876,58029,0}, {60873,58028,0},{60861,58034,0},{60858,58046,0},{60854,58051,0},{60859,58053,0}, {60859,58054,0},{60856,58056,0},{60851,58064,0},{60848,58068,0},{60848,58076,0}, {60846,58079,0},{60846,58089,0},{60849,58093,0},{60849,58086,0},{60853,58081,0}, {60851,58069,0},{60853,58071,0},{60856,58071,0},{60856,58084,0},{60858,58088,0}, {60863,58078,0},{60859,58093,0},{60858,58109,0},{60856,58109,0},{60854,58108,0}, {60853,58111,0},{60849,58111,0},{60853,58123,0},{60849,58121,0},{60848,58116,0}, {60846,58114,0},{60838,58123,0},{60839,58131,0},{60838,58134,0},{60833,58143,0}, {60819,58131,0},{60819,58138,0},{60811,58139,0},{60811,58138,0},{60818,58133,0}, {60816,58131,0},{60818,58128,0},{60816,58124,0},{60811,58123,0},{60801,58126,0}, {60808,58119,0},{60814,58119,0},{60814,58113,0},{60811,58113,0},{60814,58108,0}, {60811,58108,0},{60814,58104,0},{60811,58103,0},{60806,58099,0},{60804,58094,0}, {60801,58094,0},{60799,58089,0},{60793,58083,0},{60789,58086,0},{60791,58089,0}, {60794,58089,0},{60791,58091,0},{60791,58098,0},{60789,58096,0},{60789,58091,0}, {60788,58091,0},{60781,58098,0},{60783,58103,0},{60781,58101,0},{60776,58104,0}, {60778,58113,0},{60776,58119,0},{60783,58131,0},{60776,58123,0},{60774,58133,0}, {60773,58126,0},{60774,58119,0},{60773,58109,0},{60771,58111,0},{60769,58123,0}, {60769,58119,0},{60769,58108,0},{60768,58106,0},{60764,58108,0},{60761,58114,0}, {60761,58119,0},{60761,58118,0},{60761,58111,0},{60763,58106,0},{60769,58103,0}, {60766,58088,0},{60769,58091,0},{60771,58101,0},{60776,58099,0},{60776,58098,0}, {60774,58096,0},{60778,58094,0},{60779,58094,0},{60781,58089,0},{60781,58088,0}, {60774,58086,0},{60781,58083,0},{60779,58076,0},{60774,58073,0},{60769,58081,0}, {60766,58078,0},{60769,58078,0},{60771,58073,0},{60771,58068,0},{60764,58063,0}, {60761,58064,0},{60759,58073,0},{60759,58083,0},{60758,58083,0},{60761,58098,0}, {60761,58103,0},{60759,58103,0},{60759,58096,0},{60758,58099,0},{60758,58104,0}, {60759,58106,0},{60756,58114,0},{60759,58129,0},{60756,58133,0},{60753,58133,0}, {60751,58143,0},{60758,58158,0},{60764,58158,0},{60771,58163,0},{60774,58163,0}, {60776,58159,0},{60783,58164,0},{60781,58164,0},{60779,58169,0},{60778,58166,0}, {60773,58166,0},{60773,58171,0},{60764,58163,0},{60758,58166,0},{60756,58181,0}, {60749,58174,0},{60748,58179,0},{60749,58183,0},{60748,58186,0},{60743,58183,0}, {60741,58184,0},{60739,58189,0},{60739,58203,0},{60736,58214,0},{60738,58201,0}, {60736,58193,0},{60738,58186,0},{60741,58181,0},{60744,58179,0},{60746,58173,0}, {60744,58171,0},{60739,58173,0},{60738,58171,0},{60736,58178,0},{60731,58178,0}, {60724,58188,0},{60719,58198,0},{60723,58206,0},{60729,58208,0},{60728,58209,0}, {60721,58208,0},{60718,58201,0},{60714,58201,0},{60718,58194,0},{60718,58189,0}, {60718,58186,0},{60716,58183,0},{60711,58181,0},{60714,58178,0},{60714,58176,0}, {60721,58178,0},{60724,58174,0},{60728,58159,0},{60724,58156,0},{60731,58161,0}, {60733,58159,0},{60726,58149,0},{60731,58151,0},{60733,58148,0},{60731,58141,0}, {60734,58134,0},{60733,58134,0},{60733,58133,0},{60736,58129,0},{60736,58104,0}, {60734,58103,0},{60733,58104,0},{60724,58111,0},{60721,58114,0},{60719,58113,0}, {60716,58116,0},{60714,58118,0},{60714,58121,0},{60713,58114,0},{60718,58111,0}, {60716,58109,0},{60731,58103,0},{60738,58094,0},{60738,58089,0},{60741,58084,0}, {60738,58079,0},{60736,58073,0},{60734,58071,0},{60729,58071,0},{60728,58076,0}, {60728,58081,0},{60733,58089,0},{60731,58089,0},{60728,58084,0},{60723,58088,0}, {60716,58094,0},{60714,58104,0},{60713,58104,0},{60708,58109,0},{60703,58109,0}, {60706,58119,0},{60704,58128,0},{60703,58116,0},{60701,58113,0},{60699,58121,0}, {60696,58124,0},{60696,58131,0},{60694,58134,0},{60696,58146,0},{60694,58146,0}, {60691,58133,0},{60683,58133,0},{60679,58139,0},{60676,58138,0},{60676,58134,0}, {60681,58131,0},{60688,58116,0},{60684,58109,0},{60683,58109,0},{60681,58104,0}, {60674,58096,0},{60673,58099,0},{60668,58099,0},{60668,58103,0},{60669,58104,0}, {60668,58108,0},{60666,58103,0},{60663,58104,0},{60666,58118,0},{60664,58128,0}, {60663,58131,0},{60664,58114,0},{60661,58106,0},{60661,58103,0},{60659,58103,0}, {60663,58099,0},{60663,58098,0},{60659,58096,0},{60656,58093,0},{60651,58091,0}, {60649,58094,0},{60648,58093,0},{60646,58093,0},{60643,58099,0},{60643,58094,0}, {60638,58096,0},{60633,58089,0},{60628,58091,0},{60628,58096,0},{60623,58094,0}, {60618,58099,0},{60616,58094,0},{60604,58098,0},{60598,58094,0},{60594,58096,0}, {60594,58101,0},{60584,58109,0},{60583,58113,0},{60586,58118,0},{60594,58118,0}, {60598,58119,0},{60609,58121,0},{60614,58118,0},{60614,58121,0},{60613,58124,0}, {60614,58128,0},{60621,58133,0},{60624,58131,0},{60628,58131,0},{60633,58129,0}, {60634,58131,0},{60636,58144,0},{60633,58153,0},{60631,58153,0},{60634,58144,0}, {60633,58141,0},{60629,58136,0},{60628,58133,0},{60619,58139,0},{60613,58136,0}, {60609,58136,0},{60604,58143,0},{60601,58151,0},{60601,58146,0},{60603,58139,0}, {60608,58136,0},{60609,58131,0},{60608,58128,0},{60601,58126,0},{60594,58124,0}, {60588,58124,0},{60584,58136,0},{60584,58148,0},{60571,58151,0},{60569,58159,0}, {60566,58161,0},{60563,58168,0},{60558,58164,0},{60563,58161,0},{60568,58154,0}, {60569,58148,0},{60581,58141,0},{60579,58136,0},{60574,58133,0},{60579,58134,0}, {60583,58128,0},{60579,58119,0},{60579,58111,0},{60574,58104,0},{60571,58103,0}, {60561,58106,0},{60564,58129,0},{60561,58129,0},{60561,58116,0},{60559,58111,0}, {60556,58108,0},{60556,58101,0},{60548,58106,0},{60546,58109,0},{60546,58118,0}, {60544,58123,0},{60541,58124,0},{60539,58129,0},{60541,58136,0},{60544,58138,0}, {60546,58143,0},{60549,58146,0},{60544,58144,0},{60544,58148,0},{60543,58139,0}, {60536,58136,0},{60534,58138,0},{60534,58146,0},{60528,58148,0},{60529,58146,0}, {60533,58143,0},{60533,58129,0},{60536,58126,0},{60534,58121,0},{60539,58118,0}, {60543,58109,0},{60541,58106,0},{60543,58103,0},{60543,58101,0},{60538,58099,0}, {60528,58108,0},{60528,58111,0},{60524,58114,0},{60519,58114,0},{60516,58118,0}, {60514,58121,0},{60516,58126,0},{60514,58131,0},{60516,58136,0},{60514,58136,0}, {60514,58133,0},{60513,58134,0},{60508,58149,0},{60506,58149,0},{60508,58139,0}, {60513,58126,0},{60513,58121,0},{60509,58118,0},{60511,58116,0},{60514,58116,0}, {60516,58113,0},{60519,58109,0},{60519,58103,0},{60523,58106,0},{60528,58101,0}, {60526,58091,0},{60528,58089,0},{60528,58086,0},{60524,58086,0},{60521,58084,0}, {60526,58083,0},{60526,58078,0},{60519,58068,0},{60516,58066,0},{60514,58069,0}, {60516,58076,0},{60513,58074,0},{60511,58076,0},{60514,58084,0},{60509,58081,0}, {60511,58088,0},{60506,58083,0},{60504,58086,0},{60503,58091,0},{60501,58089,0}, {60499,58096,0},{60499,58101,0},{60509,58104,0},{60509,58108,0},{60504,58109,0}, {60496,58104,0},{60493,58108,0},{60493,58113,0},{60496,58114,0},{60496,58126,0}, {60499,58128,0},{60499,58134,0},{60498,58129,0},{60493,58124,0},{60488,58129,0}, {60491,58134,0},{60486,58136,0},{60483,58148,0},{60481,58148,0},{60483,58133,0}, {60488,58123,0},{60486,58119,0},{60484,58123,0},{60483,58121,0},{60478,58126,0}, {60478,58123,0},{60481,58121,0},{60489,58114,0},{60488,58106,0},{60483,58111,0}, {60481,58116,0},{60474,58113,0},{60463,58121,0},{60464,58124,0},{60468,58124,0}, {60464,58129,0},{60463,58129,0},{60461,58126,0},{60459,58124,0},{60453,58131,0}, {60453,58143,0},{60456,58146,0},{60459,58154,0},{60468,58153,0},{60471,58156,0}, {60483,58159,0},{60486,58163,0},{60488,58171,0},{60496,58178,0},{60496,58179,0}, {60488,58176,0},{60483,58164,0},{60479,58164,0},{60474,58171,0},{60473,58179,0}, {60471,58183,0},{60469,58189,0},{60469,58183,0},{60464,58183,0},{60466,58179,0}, {60469,58178,0},{60471,58173,0},{60469,58161,0},{60468,58158,0},{60463,58159,0}, {60456,58158,0},{60453,58163,0},{60454,58158,0},{60456,58154,0},{60453,58148,0}, {60449,58153,0},{60444,58158,0},{60439,58156,0},{60443,58151,0},{60444,58151,0}, {60449,58144,0},{60446,58141,0},{60449,58121,0},{60446,58114,0},{60443,58111,0}, {60441,58114,0},{60433,58113,0},{60431,58116,0},{60431,58118,0},{60439,58124,0}, {60441,58129,0},{60436,58128,0},{60429,58121,0},{60426,58124,0},{60418,58123,0}, {60416,58128,0},{60416,58134,0},{60426,58134,0},{60418,58138,0},{60411,58146,0}, {60419,58161,0},{60424,58159,0},{60421,58163,0},{60423,58166,0},{60418,58164,0}, {60416,58166,0},{60418,58169,0},{60414,58166,0},{60409,58168,0},{60416,58163,0}, {60414,58158,0},{60413,58158,0},{60408,58164,0},{60403,58163,0},{60394,58168,0}, {60391,58171,0},{60393,58178,0},{60391,58176,0},{60389,58171,0},{60388,58169,0}, {60384,58171,0},{60384,58176,0},{60383,58173,0},{60374,58176,0},{60373,58174,0}, {60374,58173,0},{60389,58164,0},{60391,58159,0},{60396,58154,0},{60396,58151,0}, {60399,58146,0},{60396,58143,0},{60388,58146,0},{60384,58144,0},{60383,58148,0}, {60383,58154,0},{60378,58146,0},{60374,58146,0},{60371,58159,0},{60373,58164,0}, {60368,58154,0},{60366,58156,0},{60364,58159,0},{60358,58166,0},{60368,58171,0}, {60364,58176,0},{60368,58181,0},{60364,58181,0},{60368,58189,0},{60363,58184,0}, {60361,58176,0},{60358,58179,0},{60356,58184,0},{60353,58183,0},{60351,58188,0}, {60348,58186,0},{60346,58191,0},{60344,58188,0},{60334,58196,0},{60334,58193,0}, {60339,58189,0},{60341,58186,0},{60346,58183,0},{60351,58178,0},{60354,58176,0}, {60354,58173,0},{60353,58171,0},{60343,58178,0},{60341,58174,0},{60339,58179,0}, {60334,58178,0},{60331,58181,0},{60326,58194,0},{60323,58198,0},{60319,58204,0}, {60319,58208,0},{60323,58208,0},{60331,58206,0},{60361,58203,0},{60371,58198,0}, {60364,58204,0},{60346,58206,0},{60338,58209,0},{60333,58209,0},{60328,58213,0}, {60328,58219,0},{60339,58221,0},{60343,58223,0},{60349,58244,0},{60354,58239,0}, {60349,58229,0},{60346,58218,0},{60349,58216,0},{60351,58228,0},{60353,58231,0}, {60359,58229,0},{60359,58223,0},{60361,58224,0},{60361,58231,0},{60358,58234,0}, {60358,58236,0},{60364,58228,0},{60363,58223,0},{60364,58214,0},{60371,58213,0}, {60374,58206,0},{60374,58208,0},{60374,58213,0},{60373,58213,0},{60373,58218,0}, {60368,58218,0},{60366,58219,0},{60366,58231,0},{60363,58238,0},{60359,58238,0}, {60359,58239,0},{60361,58244,0},{60358,58248,0},{60359,58253,0},{60354,58258,0}, {60354,58263,0},{60353,58264,0},{60353,58273,0},{60358,58279,0},{60363,58281,0}, {60366,58264,0},{60374,58261,0},{60376,58256,0},{60376,58249,0},{60383,58238,0}, {60376,58228,0},{60376,58224,0},{60383,58233,0},{60384,58231,0},{60388,58221,0}, {60384,58214,0},{60386,58209,0},{60388,58209,0},{60389,58211,0},{60391,58223,0}, {60394,58228,0},{60391,58228,0},{60388,58231,0},{60386,58241,0},{60381,58244,0}, {60379,58253,0},{60378,58263,0},{60374,58269,0},{60369,58274,0},{60363,58286,0}, {60358,58289,0},{60351,58284,0},{60344,58291,0},{60343,58289,0},{60341,58284,0}, {60341,58278,0},{60338,58276,0},{60341,58273,0},{60339,58269,0},{60331,58271,0}, {60316,58289,0},{60304,58286,0},{60296,58273,0},{60294,58276,0},{60293,58286,0}, {60291,58286,0},{60289,58281,0},{60293,58276,0},{60296,58264,0},{60289,58246,0}, {60291,58243,0},{60294,58254,0},{60298,58254,0},{60296,58258,0},{60299,58258,0}, {60298,58263,0},{60303,58268,0},{60301,58273,0},{60301,58276,0},{60304,58279,0}, {60308,58279,0},{60314,58283,0},{60326,58276,0},{60324,58271,0},{60329,58264,0}, {60338,58266,0},{60341,58258,0},{60339,58249,0},{60329,58246,0},{60331,58243,0}, {60329,58241,0},{60318,58243,0},{60316,58248,0},{60328,58254,0},{60331,58259,0}, {60329,58261,0},{60328,58261,0},{60323,58256,0},{60313,58253,0},{60309,58249,0}, {60311,58244,0},{60314,58244,0},{60318,58238,0},{60316,58233,0},{60313,58229,0}, {60313,58228,0},{60321,58233,0},{60321,58238,0},{60329,58238,0},{60328,58226,0}, {60323,58223,0},{60324,58219,0},{60324,58214,0},{60316,58213,0},{60314,58204,0}, {60323,58186,0},{60321,58184,0},{60319,58189,0},{60316,58183,0},{60321,58179,0}, {60321,58174,0},{60326,58173,0},{60333,58168,0},{60333,58163,0},{60326,58164,0}, {60319,58173,0},{60316,58173,0},{60316,58178,0},{60314,58179,0},{60308,58174,0}, {60303,58179,0},{60298,58176,0},{60299,58173,0},{60298,58171,0},{60294,58169,0}, {60291,58178,0},{60294,58183,0},{60294,58184,0},{60289,58183,0},{60288,58186,0}, {60288,58179,0},{60286,58179,0},{60284,58174,0},{60283,58181,0},{60279,58181,0}, {60281,58178,0},{60279,58174,0},{60279,58173,0},{60278,58173,0},{60276,58168,0}, {60271,58169,0},{60273,58179,0},{60269,58176,0},{60268,58169,0},{60263,58168,0}, {60263,58171,0},{60261,58174,0},{60263,58174,0},{60263,58176,0},{60268,58181,0}, {60268,58186,0},{60271,58186,0},{60269,58189,0},{60273,58191,0},{60273,58196,0}, {60281,58196,0},{60276,58201,0},{60278,58206,0},{60271,58203,0},{60269,58204,0}, {60269,58209,0},{60273,58213,0},{60279,58219,0},{60286,58218,0},{60288,58213,0}, {60289,58216,0},{60293,58216,0},{60286,58223,0},{60288,58229,0},{60286,58244,0}, {60284,58248,0},{60283,58246,0},{60284,58243,0},{60286,58231,0},{60284,58226,0}, {60283,58224,0},{60279,58236,0},{60279,58223,0},{60271,58221,0},{60271,58214,0}, {60264,58211,0},{60264,58209,0},{60264,58206,0},{60259,58206,0},{60259,58211,0}, {60258,58213,0},{60256,58201,0},{60254,58198,0},{60258,58198,0},{60258,58194,0}, {60254,58189,0},{60258,58189,0},{60256,58179,0},{60254,58181,0},{60253,58188,0}, {60251,58198,0},{60248,58201,0},{60249,58206,0},{60244,58208,0},{60248,58214,0}, {60246,58218,0},{60244,58213,0},{60243,58213,0},{60243,58211,0},{60239,58213,0}, {60243,58204,0},{60239,58203,0},{60239,58199,0},{60236,58201,0},{60238,58196,0}, {60236,58191,0},{60234,58198,0},{60231,58199,0},{60228,58204,0},{60228,58211,0}, {60226,58216,0},{60226,58218,0},{60229,58214,0},{60234,58216,0},{60233,58221,0}, {60229,58218,0},{60226,58223,0},{60229,58233,0},{60231,58234,0},{60229,58238,0}, {60236,58241,0},{60243,58239,0},{60246,58241,0},{60253,58234,0},{60253,58239,0}, {60256,58241,0},{60256,58248,0},{60259,58253,0},{60261,58259,0},{60271,58269,0}, {60273,58266,0},{60274,58256,0},{60278,58254,0},{60274,58249,0},{60264,58239,0}, {60264,58238,0},{60266,58238,0},{60273,58246,0},{60286,58251,0},{60284,58254,0}, {60281,58258,0},{60284,58268,0},{60283,58273,0},{60281,58273,0},{60279,58279,0}, {60284,58284,0},{60286,58298,0},{60283,58296,0},{60283,58288,0},{60278,58281,0}, {60271,58294,0},{60274,58296,0},{60274,58293,0},{60278,58299,0},{60283,58303,0}, {60284,58324,0},{60281,58336,0},{60283,58344,0},{60279,58373,0},{60279,58383,0}, {60273,58389,0},{60273,58381,0},{60268,58371,0},{60268,58358,0},{60268,58346,0}, {60273,58339,0},{60273,58336,0},{60269,58334,0},{60269,58333,0},{60271,58329,0}, {60273,58319,0},{60268,58318,0},{60266,58311,0},{60261,58306,0},{60258,58298,0}, {60254,58294,0},{60249,58293,0},{60251,58291,0},{60256,58288,0},{60253,58276,0}, {60256,58279,0},{60249,58264,0},{60253,58264,0},{60256,58273,0},{60259,58276,0}, {60266,58266,0},{60261,58263,0},{60251,58238,0},{60248,58244,0},{60244,58241,0}, {60238,58244,0},{60233,58244,0},{60234,58249,0},{60226,58243,0},{60221,58251,0}, {60224,58258,0},{60223,58263,0},{60226,58264,0},{60223,58266,0},{60221,58271,0}, {60221,58259,0},{60218,58263,0},{60218,58256,0},{60211,58268,0},{60209,58264,0}, {60206,58266,0},{60208,58259,0},{60213,58261,0},{60216,58249,0},{60216,58244,0}, {60219,58241,0},{60219,58226,0},{60216,58223,0},{60221,58206,0},{60219,58206,0}, {60216,58213,0},{60213,58214,0},{60209,58223,0},{60208,58229,0},{60199,58243,0}, {60199,58248,0},{60198,58249,0},{60198,58256,0},{60191,58258,0},{60196,58259,0}, {60196,58261,0},{60191,58263,0},{60189,58271,0},{60186,58273,0},{60183,58283,0}, {60181,58283,0},{60183,58299,0},{60194,58288,0},{60194,58283,0},{60194,58281,0}, {60196,58278,0},{60199,58273,0},{60204,58271,0},{60199,58276,0},{60199,58281,0}, {60199,58286,0},{60203,58286,0},{60209,58283,0},{60208,58291,0},{60209,58294,0}, {60211,58293,0},{60214,58283,0},{60216,58283,0},{60213,58293,0},{60214,58293,0}, {60218,58288,0},{60213,58301,0},{60214,58304,0},{60216,58304,0},{60218,58299,0}, {60218,58306,0},{60214,58313,0},{60218,58318,0},{60221,58314,0},{60221,58304,0}, {60229,58299,0},{60228,58294,0},{60228,58288,0},{60228,58281,0},{60229,58281,0}, {60231,58298,0},{60229,58309,0},{60233,58306,0},{60231,58314,0},{60229,58318,0}, {60224,58323,0},{60223,58328,0},{60224,58334,0},{60229,58339,0},{60236,58346,0}, {60238,58351,0},{60241,58354,0},{60253,58388,0},{60254,58393,0},{60258,58396,0}, {60263,58396,0},{60258,58401,0},{60256,58418,0},{60251,58424,0},{60248,58423,0}, {60239,58413,0},{60233,58409,0},{60226,58403,0},{60223,58398,0},{60223,58388,0}, {60221,58383,0},{60219,58376,0},{60216,58374,0},{60214,58361,0},{60203,58359,0}, {60191,58361,0},{60184,58356,0},{60181,58343,0},{60179,58338,0},{60179,58336,0}, {60183,58336,0},{60188,58351,0},{60191,58358,0},{60211,58353,0},{60214,58351,0}, {60213,58344,0},{60214,58338,0},{60213,58336,0},{60208,58334,0},{60198,58336,0}, {60196,58331,0},{60194,58328,0},{60191,58318,0},{60193,58313,0},{60194,58321,0}, {60198,58323,0},{60196,58324,0},{60198,58328,0},{60203,58328,0},{60211,58324,0}, {60209,58319,0},{60211,58309,0},{60211,58306,0},{60204,58294,0},{60199,58296,0}, {60196,58291,0},{60183,58301,0},{60183,58306,0},{60178,58308,0},{60174,58316,0}, {60168,58324,0},{60164,58333,0},{60169,58334,0},{60168,58338,0},{60163,58343,0}, {60168,58349,0},{60163,58349,0},{60156,58366,0},{60153,58391,0},{60148,58408,0}, {60153,58431,0},{60159,58438,0},{60168,58438,0},{60171,58441,0},{60176,58443,0}, {60193,58438,0},{60199,58438,0},{60206,58441,0},{60216,58441,0},{60223,58448,0}, {60239,58456,0},{60244,58454,0},{60246,58448,0},{60249,58453,0},{60254,58454,0}, {60258,58463,0},{60258,58456,0},{60261,58456,0},{60263,58451,0},{60264,58451,0}, {60263,58456,0},{60264,58459,0},{60266,58464,0},{60264,58464,0},{60264,58468,0}, {60268,58474,0},{60266,58478,0},{60269,58478,0},{60271,58483,0},{60271,58486,0}, {60266,58481,0},{60266,58484,0},{60273,58503,0},{60271,58514,0},{60278,58519,0}, {60283,58541,0},{60288,58551,0},{60288,58554,0},{60284,58558,0},{60283,58569,0}, {60291,58581,0},{60294,58581,0},{60298,58586,0},{60308,58588,0},{60311,58593,0}, {60316,58609,0},{60316,58614,0},{60314,58624,0},{60311,58633,0},{60308,58643,0}, {60306,58654,0},{60306,58661,0},{60303,58678,0},{60303,58686,0},{60303,58689,0}, {60298,58691,0},{60298,58693,0},{60303,58698,0},{60308,58696,0},{60319,58684,0}, {60334,58668,0},{60348,58656,0},{60363,58648,0},{60374,58638,0},{60373,58631,0}, {60368,58614,0},{60371,58619,0},{60376,58611,0},{60376,58598,0},{60376,58584,0}, {60373,58574,0},{60378,58588,0},{60381,58599,0},{60381,58608,0},{60374,58623,0}, {60379,58631,0},{60379,58639,0},{60386,58639,0},{60419,58623,0},{60431,58621,0}, {60439,58618,0},{60436,58606,0},{60428,58594,0},{60448,58623,0},{60461,58621,0}, {60478,58626,0},{60484,58629,0},{60498,58643,0},{60506,58654,0},{60516,58694,0}, {60521,58699,0},{60523,58699,0},{60529,58684,0},{60536,58681,0},{60538,58678,0}, {60536,58669,0},{60538,58651,0},{60536,58644,0},{60534,58634,0},{60538,58639,0}, {60539,58651,0},{60539,58669,0},{60541,58676,0},{60546,58678,0},{60554,58671,0}, {60559,58671,0},{60563,58663,0},{60559,58671,0},{60554,58673,0},{60544,58683,0}, {60539,58684,0},{60529,58694,0},{60524,58703,0},{60524,58716,0},{60529,58729,0}, {60544,58756,0},{60554,58761,0},{60578,58764,0},{60609,58776,0},{60611,58773,0}, {60609,58771,0},{60598,58764,0},{60596,58754,0},{60598,58753,0},{60599,58756,0}, {60604,58758,0},{60604,58766,0},{60608,58763,0},{60618,58774,0},{60624,58773,0}, {60631,58778,0},{60643,58793,0},{60648,58796,0},{60651,58804,0},{60654,58813,0}, {60668,58823,0},{60673,58828,0},{60678,58843,0},{60679,58853,0},{60691,58869,0}, {60696,58881,0},{60696,58889,0},{60701,58891,0},{60701,58903,0},{60708,58903,0}, {60711,58908,0},{60718,58923,0},{60721,58924,0},{60726,58929,0},{60726,58946,0}, {60731,58941,0},{60734,58943,0},{60739,58939,0},{60741,58944,0},{60739,58953,0}, {60739,58958,0},{60741,58956,0},{60743,58958,0},{60746,58949,0},{60754,58948,0}, {60756,58944,0},{60758,58939,0},{60756,58933,0},{60748,58904,0},{60749,58898,0}, {60749,58903,0},{60749,58908,0},{60753,58918,0},{60754,58924,0},{60759,58934,0}, {60759,58946,0},{60759,58948,0},{60781,58961,0},{60798,58963,0},{60803,58963,0}, {60808,58959,0},{60816,58959,0},{60821,58951,0},{60826,58946,0},{60829,58936,0}, {60826,58926,0},{60828,58919,0},{60826,58914,0},{60828,58903,0},{60829,58899,0}, {60831,58886,0},{60833,58864,0},{60838,58854,0},{60843,58849,0},{60853,58836,0}, {60854,58831,0},{60863,58824,0},{60866,58814,0},{60871,58811,0},{60874,58801,0}, {60893,58783,0},{60903,58779,0},{60919,58774,0},{60928,58774,0},{60936,58778,0}, {60941,58783,0},{60943,58783,0},{60954,58794,0},{60958,58803,0},{60963,58801,0}, {60963,58803,0},{60974,58804,0},{60983,58818,0},{60988,58819,0},{61008,58836,0}, {61011,58841,0},{61014,58851,0},{61016,58868,0},{61016,58883,0},{61018,58884,0}, {61023,58878,0},{61021,58889,0},{61024,58883,0},{61028,58883,0},{61033,58901,0}, {61033,58908,0},{61039,58916,0},{61039,58934,0},{61034,58941,0},{61034,58949,0}, {61036,58948,0},{61038,58951,0},{61034,58954,0},{61034,58961,0},{61031,58968,0}, {61034,58968,0},{61033,58971,0},{61034,58976,0},{61038,58974,0},{61038,58978,0}, {61039,58976,0},{61044,58978,0},{61044,58981,0},{61046,58983,0},{61053,58964,0}, {61058,58964,0},{61061,58966,0},{61066,58968,0},{61073,58974,0},{61078,58984,0}, {61079,58989,0},{61083,58991,0},{61081,58998,0},{61081,58999,0},{61084,58998,0}, {61088,58999,0},{61086,59006,0},{61088,59008,0},{61089,59008,0},{61089,59003,0}, {61093,59003,0},{61103,59013,0},{61104,59013,0},{61104,59011,0},{61108,59009,0}, {61111,59009,0},{61114,59006,0},{61118,59004,0},{61123,59006,0},{61126,59014,0}, {61129,59013,0},{61134,59014,0},{61136,59013,0},{61141,59014,0},{61139,59011,0}, {61141,59009,0},{61146,59009,0},{61154,59004,0},{61159,59004,0},{61161,59003,0}, {61171,59004,0},{61178,59009,0},{61183,59016,0},{61191,59023,0},{61196,59031,0}, {61204,59033,0},{61213,59044,0},{61221,59058,0},{61228,59088,0},{61236,59106,0}, {61241,59104,0},{61238,59094,0},{61239,59089,0},{61243,59086,0},{61243,59076,0}, {61253,59056,0},{61256,59036,0},{61261,59034,0},{61264,59038,0},{61269,59039,0}, {61271,59044,0},{61273,59054,0},{61281,59063,0},{61284,59074,0},{61286,59091,0}, {61281,59103,0},{61276,59106,0},{61276,59111,0},{61274,59113,0},{61273,59116,0}, {61269,59114,0},{61258,59111,0},{61254,59116,0},{61249,59123,0},{61248,59128,0}, {61249,59134,0},{61249,59143,0},{61254,59166,0},{61259,59173,0},{61264,59173,0}, {61274,59178,0},{61304,59178,0},{61328,59161,0},{61326,59149,0},{61321,59138,0}, {61314,59116,0},{61313,59103,0},{61309,59106,0},{61309,59124,0},{61308,59129,0}, {61304,59133,0},{61301,59129,0},{61299,59131,0},{61293,59124,0},{61293,59111,0}, {61294,59106,0},{61293,59099,0},{61291,59091,0},{61293,59088,0},{61293,59078,0}, {61293,59076,0},{61304,59083,0},{61309,59089,0},{61311,59083,0},{61311,59076,0}, {61313,59069,0},{61313,59063,0},{61316,59056,0},{61316,59049,0},{61326,59034,0}, {61339,59028,0},{61358,59038,0},{61368,59033,0},{61384,59038,0},{61393,59029,0}, {61418,59021,0},{61436,59018,0},{61451,59023,0},{61458,59034,0},{61459,59046,0}, {61461,59043,0},{61463,59043,0},{61463,59038,0},{61464,59043,0},{61463,59058,0}, {61459,59056,0},{61458,59063,0},{61456,59061,0},{61454,59053,0},{61456,59051,0}, {61456,59046,0},{61454,59044,0},{61453,59048,0},{61453,59058,0},{61453,59068,0}, {61444,59094,0},{61434,59121,0},{61436,59131,0},{61431,59131,0},{61429,59139,0}, {61423,59149,0},{61419,59156,0},{61419,59196,0},{61421,59204,0},{61419,59213,0}, {61421,59233,0},{61428,59251,0},{61431,59256,0},{61431,59264,0},{61433,59264,0}, {61436,59274,0},{61439,59279,0},{61446,59296,0},{61449,59304,0},{61454,59306,0}, {61463,59311,0},{61469,59313,0},{61473,59318,0},{61471,59311,0},{61468,59303,0}, {61469,59303,0},{61471,59304,0},{61473,59303,0},{61476,59301,0},{61476,59303,0}, {61473,59306,0},{61473,59311,0},{61479,59309,0},{61481,59306,0},{61486,59303,0}, {61489,59294,0},{61506,59288,0},{61513,59293,0},{61514,59299,0},{61518,59301,0}, {61524,59303,0},{61531,59299,0},{61546,59306,0},{61549,59304,0},{61551,59308,0}, {61554,59306,0},{61551,59309,0},{61549,59318,0},{61553,59324,0},{61574,59328,0}, {61589,59331,0},{61593,59321,0},{61601,59313,0},{61601,59309,0},{61604,59308,0}, {61604,59318,0},{61601,59321,0},{61594,59329,0},{61598,59334,0},{61604,59328,0}, {61608,59319,0},{61609,59303,0},{61611,59306,0},{61609,59309,0},{61616,59303,0}, {61619,59301,0},{61624,59303,0},{61626,59301,0},{61631,59304,0},{61634,59303,0}, {61636,59308,0},{61638,59308,0},{61639,59309,0},{61641,59308,0},{61639,59304,0}, {61641,59303,0},{61644,59303,0},{61648,59301,0},{61646,59299,0},{61653,59298,0}, {61654,59296,0},{61656,59298,0},{61654,59319,0},{61651,59324,0},{61644,59328,0}, {61641,59334,0},{61638,59354,0},{61639,59363,0},{61636,59371,0},{61634,59381,0}, {61638,59398,0},{61636,59419,0},{61636,59428,0},{61639,59434,0},{61639,59453,0}, {61649,59526,0},{61653,59558,0},{61658,59574,0},{61666,59633,0},{61678,59664,0}, {61679,59676,0},{61684,59693,0},{61688,59704,0},{61693,59721,0},{61704,59743,0}, {61706,59751,0},{61709,59754,0},{61716,59769,0},{61723,59778,0},{61728,59783,0}, {61733,59783,0},{61738,59783,0},{61753,59788,0},{61771,59804,0},{61779,59818,0}, {61789,59826,0},{61796,59833,0},{61803,59834,0},{61834,59859,0},{61846,59869,0}, {61878,59869,0},{61884,59866,0},{61894,59866,0},{61904,59863,0},{61906,59859,0}, {61904,59858,0},{61901,59859,0},{61901,59849,0},{61898,59843,0},{61901,59843,0}, {61904,59831,0},{61918,59813,0},{61923,59809,0},{61928,59804,0},{61934,59803,0}, {61939,59798,0},{61953,59798,0},{61958,59798,0},{61971,59808,0},{61989,59823,0}, {61994,59824,0},{62004,59818,0},{62021,59803,0},{62031,59786,0},{62036,59778,0}, {62049,59754,0},{62053,59743,0},{62056,59736,0},{62061,59718,0},{62069,59704,0}, {62078,59699,0},{62079,59693,0},{62081,59689,0},{62088,59688,0},{62091,59684,0}, {62101,59688,0},{62108,59679,0},{62109,59683,0},{62109,59693,0},{62118,59698,0}, {62121,59698,0},{62131,59698,0},{62134,59691,0},{62139,59693,0},{62141,59691,0}, {62151,59689,0},{62163,59681,0},{62184,59683,0},{62196,59686,0},{62206,59694,0}, {62211,59693,0},{62223,59694,0},{62226,59693,0},{62228,59696,0},{62226,59716,0}, {62231,59721,0},{62238,59721,0},{62246,59723,0},{62254,59718,0},{62279,59714,0}, {62286,59714,0},{62291,59716,0},{62276,59721,0},{62256,59723,0},{62249,59729,0}, {62243,59731,0},{62233,59728,0},{62226,59721,0},{62224,59714,0},{62224,59703,0}, {62223,59699,0},{62208,59701,0},{62203,59699,0},{62201,59696,0},{62196,59694,0}, {62191,59698,0},{62181,59693,0},{62173,59694,0},{62168,59693,0},{62153,59693,0}, {62143,59696,0},{62136,59706,0},{62124,59714,0},{62119,59716,0},{62118,59728,0}, {62113,59729,0},{62109,59734,0},{62099,59746,0},{62086,59753,0},{62093,59779,0}, {62089,59784,0},{62091,59791,0},{62091,59794,0},{62091,59818,0},{62089,59826,0}, {62086,59828,0},{62081,59833,0},{62073,59844,0},{62069,59848,0},{62064,59861,0}, {62063,59874,0},{62059,59879,0},{62059,59891,0},{62056,59899,0},{62051,59893,0}, {62044,59904,0},{62044,59909,0},{62048,59914,0},{62046,59916,0},{62044,59916,0}, {62043,59918,0},{62044,59926,0},{62048,59934,0},{62053,59944,0},{62058,59958,0}, {62059,59966,0},{62058,59976,0},{62056,59983,0},{62054,59999,0},{62051,60006,0}, {62046,60008,0},{62046,60011,0},{62048,60029,0},{62046,60033,0},{62044,60033,0}, {62043,60041,0},{62038,60041,0},{62041,60046,0},{62044,60056,0},{62049,60068,0}, {62051,60073,0},{62054,60078,0},{62066,60108,0},{62068,60108,0},{62071,60106,0}, {62071,60101,0},{62076,60108,0},{62079,60104,0},{62078,60111,0},{62074,60111,0}, {62069,60113,0},{62068,60111,0},{62069,60121,0},{62073,60121,0},{62076,60126,0}, {62086,60138,0},{62093,60149,0},{62098,60159,0},{62103,60158,0},{62111,60161,0}, {62118,60166,0},{62129,60183,0},{62151,60188,0},{62158,60194,0},{62161,60199,0}, {62163,60199,128},{62171,60213,0},{62183,60226,0},{62203,60253,0},{62211,60263,0}, {62223,60273,0},{62248,60286,0},{62286,60299,0},{62311,60313,0},{62319,60328,0}, {62324,60326,0},{62329,60328,0},{62323,60321,0},{62324,60319,0},{62329,60323,0}, {62331,60328,0},{62333,60328,0},{62333,60324,0},{62329,60321,0},{62326,60314,0}, {62328,60313,0},{62331,60316,0},{62331,60311,0},{62339,60313,0},{62343,60323,0}, {62348,60316,0},{62348,60313,0},{62351,60311,0},{62353,60314,0},{62354,60314,0}, {62356,60316,0},{62359,60314,0},{62363,60314,0},{62368,60328,0},{62373,60333,0}, {62376,60331,0},{62374,60329,0},{62376,60326,0},{62379,60328,0},{62379,60333,0}, {62373,60334,0},{62373,60336,0},{62378,60338,0},{62381,60336,0},{62394,60336,0}, {62398,60338,0},{62399,60343,0},{62403,60339,0},{62404,60343,0},{62404,60344,0}, {62404,60349,0},{62409,60356,0},{62409,60373,0},{62414,60371,0},{62423,60374,0}, {62428,60391,0},{62431,60388,0},{62441,60388,0},{62448,60391,0},{62448,60401,0}, {62461,60398,0},{62469,60398,0},{62471,60399,0},{62473,60403,0},{62471,60404,0}, {62459,60408,0},{62458,60404,0},{62456,60408,0},{62456,60409,0},{62461,60409,0}, {62474,60406,0},{62486,60409,0},{62496,60416,0},{62496,60418,0},{62496,60421,0}, {62494,60423,0},{62496,60424,0},{62499,60428,0},{62501,60426,0},{62499,60419,0}, {62499,60418,0},{62506,60416,0},{62504,60413,0},{62506,60411,0},{62506,60408,0}, {62508,60408,0},{62511,60409,0},{62513,60408,0},{62514,60403,0},{62518,60406,0}, {62521,60404,0},{62526,60408,0},{62528,60406,0},{62534,60408,0},{62534,60409,0}, {62531,60409,0},{62531,60413,0},{62526,60411,0},{62521,60414,0},{62518,60413,0}, {62516,60418,0},{62513,60419,0},{62513,60421,0},{62509,60423,0},{62513,60429,0}, {62509,60431,0},{62509,60434,0},{62506,60434,0},{62501,60431,0},{62498,60433,0}, {62496,60438,0},{62493,60443,0},{62493,60444,0},{62496,60443,0},{62504,60444,0}, {62503,60456,0},{62504,60458,0},{62508,60459,0},{62506,60469,0},{62511,60471,0}, {62513,60468,0},{62514,60468,0},{62514,60469,0},{62518,60473,0},{62518,60474,0}, {62509,60483,0},{62499,60481,0},{62496,60479,0},{62491,60479,0},{62488,60476,0}, {62491,60473,0},{62493,60471,0},{62496,60473,0},{62501,60468,0},{62498,60463,0}, {62489,60468,0},{62481,60468,0},{62476,60469,0},{62463,60466,0},{62458,60463,0}, {62446,60446,0},{62446,60438,0},{62443,60441,0},{62431,60438,0},{62429,60438,0}, {62428,60443,0},{62426,60439,0},{62423,60438,0},{62423,60436,0},{62429,60434,0}, {62428,60428,0},{62429,60423,0},{62428,60419,0},{62421,60419,0},{62408,60421,0}, {62396,60418,0},{62389,60411,0},{62384,60404,0},{62383,60401,0},{62384,60394,0}, {62386,60393,0},{62379,60389,0},{62374,60391,0},{62378,60388,0},{62374,60384,0}, {62366,60378,0},{62356,60366,0},{62356,60353,0},{62353,60354,0},{62349,60351,0}, {62348,60346,0},{62349,60343,0},{62353,60339,0},{62354,60333,0},{62353,60328,0}, {62351,60328,0},{62341,60334,0},{62338,60331,0},{62333,60333,0},{62323,60328,0}, {62319,60329,0},{62323,60331,0},{62328,60338,0},{62341,60348,0},{62364,60389,0}, {62394,60429,0},{62413,60448,0},{62436,60468,0},{62489,60504,0},{62553,60531,0}, {62559,60536,0},{62579,60548,0},{62599,60561,0},{62603,60566,0},{62624,60581,0}, {62639,60598,0},{62653,60614,0},{62669,60639,0},{62674,60654,0},{62678,60656,0}, {62679,60659,0},{62683,60661,0},{62684,60661,0},{62683,60658,0},{62684,60656,0}, {62688,60651,0},{62693,60653,0},{62694,60649,0},{62696,60649,0},{62701,60649,0}, {62704,60649,0},{62698,60656,0},{62693,60654,0},{62686,60658,0},{62688,60661,0}, {62698,60663,0},{62701,60668,0},{62708,60668,0},{62713,60673,0},{62713,60671,0}, {62718,60671,0},{62728,60673,0},{62733,60676,0},{62738,60674,0},{62749,60679,0}, {62751,60678,0},{62753,60679,0},{62759,60673,0},{62761,60676,0},{62764,60673,0}, {62771,60671,0},{62776,60676,0},{62774,60678,0},{62778,60679,0},{62779,60676,0}, {62789,60671,0},{62793,60674,0},{62794,60678,0},{62799,60679,0},{62798,60681,0}, {62804,60679,0},{62804,60676,0},{62811,60674,0},{62818,60683,0},{62816,60684,0}, {62814,60683,0},{62814,60688,0},{62818,60686,0},{62819,60688,0},{62824,60684,0}, {62821,60683,0},{62819,60679,0},{62824,60674,0},{62826,60674,0},{62828,60678,0}, {62834,60679,0},{62836,60674,0},{62844,60674,0},{62848,60673,0},{62853,60674,0}, {62854,60676,0},{62858,60678,0},{62859,60678,0},{62859,60673,0},{62863,60669,0}, {62866,60668,0},{62878,60668,0},{62893,60676,0},{62894,60673,0},{62898,60671,0}, {62899,60669,0},{62901,60664,0},{62904,60661,0},{62904,60656,0},{62906,60658,0}, {62908,60661,0},{62908,60658,0},{62911,60661,0},{62916,60661,0},{62923,60656,0}, {62924,60658,0},{62929,60656,0},{62929,60658,0},{62926,60659,0},{62914,60663,0}, {62911,60668,0},{62914,60671,0},{62916,60673,0},{62918,60676,0},{62919,60678,0}, {62929,60676,0},{62931,60674,0},{62944,60679,0},{62949,60679,0},{62948,60673,0}, {62949,60664,0},{62948,60659,0},{62949,60659,0},{62951,60663,0},{62951,60668,0}, {62953,60671,0},{62949,60678,0},{62953,60676,0},{62954,60674,0},{62956,60676,0}, {62956,60678,0},{62951,60679,0},{62951,60683,0},{62954,60684,0},{62958,60684,0}, {62971,60691,0},{62978,60699,0},{62981,60698,0},{62979,60694,0},{62981,60691,0}, {62978,60689,0},{62978,60686,0},{62981,60689,0},{62983,60686,0},{62984,60684,0}, {62983,60676,0},{62981,60676,0},{62983,60674,0},{62984,60671,0},{62984,60674,0}, {62986,60674,0},{62986,60666,0},{62989,60663,0},{62989,60668,0},{62994,60664,0}, {63001,60661,0},{62991,60673,0},{62989,60686,0},{62988,60688,0},{62989,60691,0}, {62991,60691,0},{62993,60694,0},{62998,60693,0},{62998,60691,0},{62999,60693,0}, {63001,60693,0},{63003,60686,0},{63004,60693,0},{63011,60691,0},{63011,60693,0}, {63006,60696,0},{63006,60699,0},{63006,60701,0},{63008,60699,0},{63011,60701,0}, {63013,60703,0},{63011,60704,0},{63009,60703,0},{63003,60703,0},{63003,60704,0}, {63001,60703,0},{62999,60704,0},{63003,60708,0},{63006,60708,0},{63004,60711,0}, {63006,60714,0},{63008,60721,0},{63009,60723,0},{63006,60723,0},{63006,60718,0}, {63003,60713,0},{62999,60714,0},{62993,60711,0},{62991,60711,0},{62989,60713,0}, {62991,60716,0},{62998,60719,0},{63001,60724,0},{63013,60734,0},{63014,60738,0}, {63016,60741,0},{63026,60746,0},{63031,60746,0},{63028,60739,0},{63029,60731,0}, {63031,60731,0},{63033,60734,0},{63034,60733,0},{63034,60739,0},{63033,60736,0}, {63031,60736,0},{63029,60741,0},{63034,60744,0},{63039,60748,0},{63043,60751,0}, {63046,60753,0},{63048,60756,0},{63049,60756,0},{63056,60768,0},{63061,60774,0}, {63066,60783,0},{63068,60794,0},{63071,60796,0},{63079,60814,0},{63091,60829,0}, {63094,60831,0},{63093,60831,0},{63094,60836,0},{63098,60836,0},{63104,60838,0}, {63111,60846,0},{63124,60873,0},{63133,60888,0},{63134,60896,0},{63133,60898,0}, {63138,60899,0},{63138,60894,0},{63139,60894,0},{63143,60891,0},{63143,60896,0}, {63144,60894,0},{63144,60898,0},{63149,60898,0},{63148,60899,0},{63146,60899,0}, {63144,60906,0},{63138,60909,0},{63134,60904,0},{63133,60906,0},{63133,60909,0}, {63138,60914,0},{63136,60919,0},{63143,60919,0},{63149,60924,0},{63149,60923,0}, {63144,60916,0},{63144,60913,0},{63148,60919,0},{63151,60921,0},{63154,60931,0}, {63153,60933,0},{63158,60938,0},{63159,60948,0},{63158,60969,0},{63158,60973,0}, {63156,60974,0},{63156,60981,0},{63151,60986,0},{63153,60989,0},{63153,60994,0}, {63158,60998,0},{63163,60996,0},{63166,60993,0},{63171,60993,0},{63174,60994,0}, {63174,61001,0},{63179,61006,0},{63176,61011,0},{63178,61016,0},{63183,61014,0}, {63183,61021,0},{63188,61021,0},{63184,61026,0},{63188,61028,0},{63184,61029,0}, {63189,61031,0},{63191,61036,0},{63193,61031,0},{63194,61031,0},{63196,61038,0}, {63203,61046,0},{63201,61048,0},{63199,61046,0},{63199,61051,0},{63198,61053,0}, {63199,61056,0},{63199,61063,0},{63201,61064,0},{63203,61071,0},{63201,61078,0}, {63204,61081,0},{63206,61084,0},{63206,61086,0},{63209,61083,0},{63209,61079,0}, {63211,61079,0},{63213,61081,0},{63213,61079,0},{63211,61074,0},{63206,61071,0}, {63213,61073,0},{63213,61068,0},{63216,61074,0},{63218,61071,0},{63216,61069,0}, {63214,61066,0},{63216,61064,0},{63223,61066,0},{63224,61066,0},{63229,61068,0}, {63231,61069,0},{63231,61076,0},{63229,61076,0},{63231,61078,0},{63236,61089,0}, {63234,61093,0},{63243,61094,0},{63239,61099,0},{63241,61101,0},{63244,61101,0}, {63244,61104,0},{63243,61103,0},{63239,61106,0},{63238,61104,0},{63238,61101,0}, {63234,61101,0},{63236,61106,0},{63234,61106,0},{63234,61108,0},{63236,61109,0}, {63234,61113,0},{63231,61113,0},{63231,61118,0},{63233,61119,0},{63233,61123,0}, {63234,61126,0},{63243,61131,0},{63241,61133,0},{63238,61131,0},{63238,61133,0}, {63243,61138,0},{63244,61144,0},{63246,61149,0},{63244,61149,0},{63244,61156,0}, {63243,61156,0},{63243,61158,0},{63243,61161,0},{63238,61166,0},{63238,61169,0}, {63234,61176,0},{63231,61156,0},{63233,61146,0},{63231,61146,0},{63233,61139,0}, {63229,61136,0},{63226,61136,0},{63229,61144,0},{63231,61173,0},{63231,61178,0}, {63229,61179,0},{63231,61184,0},{63234,61194,0},{63236,61214,0},{63239,61221,0}, {63243,61221,0},{63243,61219,0},{63248,61219,0},{63249,61213,0},{63251,61216,0}, {63253,61214,0},{63251,61213,0},{63256,61209,0},{63261,61209,0},{63263,61213,0}, {63263,61214,0},{63266,61221,0},{63266,61226,0},{63269,61228,0},{63268,61234,0}, {63264,61234,0},{63261,61233,0},{63259,61229,0},{63258,61229,0},{63258,61233,0}, {63254,61228,0},{63248,61223,0},{63246,61226,0},{63244,61228,0},{63243,61223,0}, {63241,61228,0},{63241,61231,0},{63238,61233,0},{63239,61268,0},{63241,61269,0}, {63243,61279,0},{63241,61331,0},{63238,61334,0},{63239,61334,0},{63241,61336,0}, {63243,61336,0},{63241,61333,0},{63244,61333,0},{63248,61334,0},{63249,61336,0}, {63253,61338,0},{63254,61343,0},{63258,61344,0},{63259,61349,0},{63263,61349,0}, {63261,61344,0},{63259,61344,0},{63259,61341,0},{63263,61338,0},{63268,61336,0}, {63279,61338,0},{63283,61339,0},{63283,61343,0},{63294,61354,0},{63298,61358,0}, {63301,61359,0},{63311,61376,0},{63323,61416,0},{63334,61436,0},{63338,61439,0}, {63341,61439,0},{63359,61434,0},{63374,61434,0},{63379,61431,0},{63384,61429,0}, {63388,61431,0},{63401,61439,0},{63413,61439,0},{63426,61451,0},{63434,61454,0}, {63443,61454,0},{63451,61459,0},{63454,61471,0},{63453,61474,0},{63461,61479,0}, {63463,61483,0},{63473,61489,0},{63474,61491,0},{63473,61493,0},{63476,61496,0}, {63498,61506,0},{63504,61509,0},{63504,61506,0},{63503,61503,0},{63504,61503,0}, {63504,61499,0},{63509,61498,0},{63511,61501,0},{63513,61499,0},{63513,61506,0}, {63509,61506,0},{63508,61508,0},{63509,61509,0},{63508,61513,0},{63513,61514,0}, {63524,61519,0},{63531,61518,0},{63533,61521,0},{63539,61523,0},{63541,61521,0}, {63544,61528,0},{63561,61534,0},{63568,61544,0},{63571,61554,0},{63573,61556,0}, {63596,61566,0},{63606,61566,0},{63644,61563,0},{63666,61561,0},{63676,61564,0}, {63684,61563,0},{63713,61571,0},{63718,61574,0},{63741,61591,0},{63744,61594,0}, {63749,61608,0},{63753,61609,0},{63768,61623,0},{63774,61619,0},{63778,61618,0}, {63791,61618,0},{63798,61614,0},{63808,61614,0},{63821,61616,0},{63826,61619,0}, {63836,61619,0},{63846,61624,0},{63851,61623,0},{63859,61623,0},{63868,61626,0}, {63894,61631,0},{63899,61636,0},{63908,61634,0},{63921,61641,0},{63924,61641,0}, {63938,61644,0},{63951,61649,0},{63966,61643,0},{63981,61641,0},{63983,61639,0}, {63984,61641,0},{64018,61636,0},{64038,61636,0},{64046,61633,0},{64054,61634,0}, {64056,61631,0},{64058,61633,0},{64059,61631,0},{64071,61629,0},{64094,61636,0}, {64101,61636,0},{64106,61638,0},{64111,61636,0},{64116,61638,0},{64119,61639,0}, {64123,61639,0},{64133,61644,0},{64144,61644,0},{64148,61643,0},{64144,61638,0}, {64143,61638,0},{64143,61639,0},{64141,61638,0},{64139,61641,0},{64138,61639,0}, {64136,61639,0},{64134,61639,0},{64131,61641,0},{64129,61641,0},{64124,61629,0}, {64121,61631,0},{64119,61633,0},{64118,61633,0},{64121,61628,0},{64126,61629,0}, {64128,61629,0},{64129,61631,0},{64128,61634,0},{64129,61638,0},{64134,61636,0}, {64138,61638,0},{64143,61631,0},{64141,61629,0},{64149,61629,0},{64146,61634,0}, {64151,61638,0},{64153,61633,0},{64158,61629,0},{64159,61624,0},{64163,61624,0}, {64161,61623,0},{64161,61621,0},{64164,61623,0},{64164,61626,0},{64161,61628,0}, {64161,61629,0},{64153,61636,0},{64153,61638,0},{64156,61636,0},{64164,61638,128}, {64166,61639,0},{64169,61639,0},{64176,61636,0},{64179,61636,0},{64183,61636,0}, {64184,61634,0},{64184,61636,0},{64188,61633,0},{64188,61629,0},{64183,61628,0}, {64179,61629,0},{64176,61628,0},{64176,61624,0},{64178,61628,0},{64183,61628,0}, {64189,61629,0},{64203,61631,0},{64199,61633,0},{64199,61634,0},{64198,61641,0}, {64203,61639,0},{64206,61639,0},{64213,61643,0},{64216,61649,0},{64219,61651,0}, {64221,61654,0},{64224,61646,0},{64228,61646,0},{64234,61658,0},{64238,61659,0}, {64246,61661,0},{64249,61664,0},{64249,61659,0},{64249,61658,0},{64251,61656,0}, {64249,61653,0},{64251,61651,0},{64256,61649,0},{64258,61646,0},{64263,61644,0}, {64263,61646,0},{64266,61646,0},{64268,61649,0},{64271,61649,0},{64268,61651,0}, {64266,61648,0},{64263,61648,0},{64253,61651,0},{64251,61654,0},{64254,61658,0}, {64263,61663,0},{64264,61661,0},{64268,61664,0},{64274,61664,0},{64278,61666,0}, {64274,61666,0},{64273,61671,0},{64268,61673,0},{64264,61673,0},{64264,61674,0}, {64264,61679,0},{64263,61683,0},{64264,61686,0},{64263,61686,0},{64256,61686,0}, {64251,61688,0},{64246,61688,0},{64243,61688,0},{64244,61688,0},{64243,61684,0}, {64239,61684,0},{64234,61683,0},{64234,61688,0},{64243,61704,0},{64263,61721,0}, {64278,61736,0},{64293,61743,0},{64298,61748,0},{64323,61766,0},{64338,61774,0}, {64376,61791,0},{64389,61799,0},{64389,61798,0},{64386,61796,0},{64384,61788,0}, {64388,61794,0},{64391,61798,0},{64396,61791,0},{64399,61789,0},{64398,61791,0}, {64399,61793,0},{64396,61793,0},{64394,61794,0},{64399,61796,0},{64403,61796,0}, {64406,61799,0},{64408,61803,0},{64411,61801,0},{64409,61804,0},{64411,61804,0}, {64413,61803,0},{64418,61801,0},{64418,61803,0},{64411,61806,0},{64416,61806,0}, {64411,61809,0},{64411,61806,0},{64406,61803,0},{64404,61799,0},{64401,61799,0}, {64396,61796,0},{64396,61798,0},{64394,61798,0},{64393,61799,0},{64393,61803,0}, {64408,61809,0},{64414,61816,0},{64416,61821,0},{64418,61819,0},{64424,61819,0}, {64426,61814,0},{64428,61814,0},{64426,61816,0},{64429,61813,0},{64429,61809,0}, {64434,61808,0},{64433,61816,0},{64428,61818,0},{64426,61823,0},{64424,61821,0}, {64423,61823,0},{64434,61829,0},{64439,61833,0},{64441,61831,0},{64444,61836,0}, {64458,61844,0},{64463,61851,0},{64481,61879,0},{64484,61894,0},{64488,61898,0}, {64493,61901,0},{64501,61908,0},{64508,61908,0},{64514,61914,0},{64521,61923,0}, {64526,61928,0},{64529,61933,0},{64543,61941,0},{64548,61946,0},{64559,61953,0}, {64563,61956,0},{64561,61951,0},{64559,61949,0},{64563,61948,0},{64569,61946,0}, {64573,61941,0},{64576,61941,0},{64574,61946,0},{64571,61946,0},{64569,61948,0}, {64563,61949,0},{64568,61958,0},{64576,61956,0},{64576,61958,0},{64571,61963,0}, {64566,61958,0},{64569,61963,0},{64569,61966,0},{64573,61968,0},{64576,61969,0}, {64578,61971,0},{64583,61978,0},{64601,61989,0},{64603,61993,0},{64604,61996,0}, {64618,62006,0},{64633,62013,0},{64638,62018,0},{64646,62023,0},{64653,62023,0}, {64661,62028,0},{64664,62028,0},{64673,62029,0},{64681,62036,0},{64686,62036,0}, {64693,62039,0},{64699,62041,0},{64701,62043,0},{64709,62043,0},{64726,62048,0}, {64728,62046,0},{64731,62046,0},{64733,62043,0},{64731,62046,0},{64729,62048,0}, {64729,62051,0},{64733,62051,0},{64734,62053,0},{64743,62054,0},{64751,62053,0}, {64748,62051,0},{64753,62053,0},{64754,62046,0},{64763,62048,0},{64763,62051,0}, {64763,62046,0},{64766,62051,0},{64771,62048,0},{64774,62049,0},{64768,62051,0}, {64771,62053,0},{64768,62053,0},{64773,62056,0},{64778,62054,0},{64778,62051,0}, {64781,62053,0},{64779,62043,0},{64783,62048,0},{64781,62054,0},{64783,62054,0}, {64801,62056,0},{64813,62056,0},{64819,62058,0},{64821,62054,0},{64826,62053,0}, {64829,62053,0},{64834,62054,0},{64838,62053,0},{64828,62051,0},{64823,62044,0}, {64824,62046,0},{64828,62044,0},{64826,62046,0},{64828,62046,0},{64829,62046,0}, {64833,62049,0},{64836,62048,0},{64838,62051,0},{64843,62049,0},{64844,62051,0}, {64848,62044,0},{64856,62043,0},{64858,62041,0},{64866,62043,0},{64873,62039,0}, {64883,62039,0},{64896,62038,0},{64898,62038,0},{64899,62034,0},{64913,62033,0}, {64913,62029,0},{64916,62028,0},{64913,62023,0},{64914,62021,0},{64918,62024,0}, {64919,62024,0},{64918,62026,0},{64931,62024,0},{64938,62026,0},{64943,62021,0}, {64948,62021,0},{64949,62019,0},{64953,62019,0},{64956,62019,0},{64961,62016,0}, {64966,62016,0},{64968,62016,0},{64978,62013,0},{64988,62009,0},{64989,62008,0}, {64998,62004,0},{65001,62001,0},{65008,61999,0},{65014,61994,0},{65016,61991,0}, {65019,61988,0},{65024,61976,0},{65029,61948,0},{65031,61939,0},{65026,61923,0}, {65026,61908,0},{65026,61911,0},{65024,61908,0},{65028,61894,0},{65028,61878,0}, {65024,61883,0},{65023,61881,0},{65026,61874,0},{65026,61868,0},{65028,61866,0}, {65029,61859,0},{65041,61848,0},{65043,61841,0},{65041,61833,0},{65044,61828,0}, {65043,61819,0},{65049,61814,0},{65058,61809,0},{65061,61809,0},{65063,61808,0}, {65066,61803,0},{65071,61789,0},{65073,61788,0},{65073,61781,0},{65073,61778,0}, {65078,61771,0},{65083,61764,0},{65096,61759,0},{65098,61751,0},{65101,61748,0}, {65104,61744,0},{65114,61731,0},{65126,61719,0},{65131,61718,0},{65133,61716,0}, {65141,61711,0},{65143,61704,0},{65151,61698,0},{65166,61689,0},{65166,61688,0}, {65164,61688,0},{65168,61671,0},{65171,61666,0},{65176,61661,0},{65181,61656,0}, {65181,61651,0},{65186,61648,0},{65186,61644,0},{65194,61641,0},{65198,61636,0}, {65198,61628,0},{65203,61624,0},{65203,61619,0},{65208,61614,0},{65213,61609,0}, {65213,61606,0},{65218,61601,0},{65221,61588,0},{65228,61578,0},{65231,61574,0}, {65234,61568,0},{65234,61566,0},{65231,61566,0},{65233,61563,0},{65233,61564,0}, {65234,61564,0},{65239,61554,0},{65244,61549,0},{65251,61536,0},{65251,61533,0}, {65251,61529,0},{65253,61524,0},{65251,61523,0},{65251,61521,0},{65254,61518,0}, {65256,61504,0},{65254,61494,0},{65258,61488,0},{65256,61484,0},{65253,61476,0}, {65253,61463,0},{65249,61454,0},{65248,61453,0},{65251,61451,0},{65248,61446,0}, {65248,61426,0},{65244,61428,0},{65248,61421,0},{65248,61409,0},{65246,61404,0}, {65246,61408,0},{65243,61409,0},{65238,61413,0},{65234,61413,0},{65234,61409,0}, {65239,61408,0},{65241,61403,0},{65243,61403,0},{65246,61394,0},{65244,61393,0}, {65241,61393,0},{65243,61391,0},{65246,61391,0},{65246,61389,0},{65244,61384,0}, {65246,61376,0},{65249,61371,0},{65248,61369,0},{65249,61366,0},{65249,61368,0}, {65251,61368,0},{65249,61369,0},{65251,61369,0},{65256,61361,0},{65261,61354,0}, {65259,61353,0},{65263,61353,0},{65261,61341,0},{65263,61334,0},{65258,61341,0}, {65258,61343,0},{65251,61341,0},{65254,61336,0},{65253,61333,0},{65254,61329,0}, {65253,61328,0},{65256,61326,0},{65254,61324,0},{65256,61316,0},{65253,61313,0}, {65256,61313,0},{65254,61309,0},{65258,61311,0},{65261,61309,0},{65259,61301,0}, {65261,61294,0},{65263,61294,0},{65261,61291,0},{65263,61288,0},{65266,61284,0}, {65266,61288,0},{65269,61288,0},{65266,61283,0},{65269,61278,0},{65273,61271,0}, {65279,61266,0},{65279,61256,0},{65284,61251,0},{65286,61246,0},{65289,61243,0}, {65291,61233,0},{65296,61219,0},{65299,61201,0},{65298,61199,0},{65298,61193,0}, {65299,61193,0},{65299,61189,0},{65298,61188,0},{65294,61189,0},{65291,61194,0}, {65291,61189,0},{65286,61194,0},{65286,61191,0},{65283,61191,0},{65281,61193,0}, {65281,61191,0},{65284,61189,0},{65281,61188,0},{65281,61186,0},{65283,61188,0}, {65288,61184,0},{65293,61184,0},{65293,61183,0},{65289,61181,0},{65289,61183,0}, {65288,61183,0},{65286,61181,0},{65288,61181,0},{65286,61179,0},{65284,61179,0}, {65283,61181,0},{65284,61176,0},{65283,61174,0},{65286,61173,0},{65284,61169,0}, {65288,61171,0},{65284,61168,0},{65283,61168,0},{65281,61171,0},{65279,61164,0}, {65281,61166,0},{65288,61164,0},{65286,61163,0},{65281,61161,0},{65284,61161,0}, {65281,61156,0},{65281,61154,0},{65279,61148,0},{65273,61149,0},{65279,61144,0}, {65281,61143,0},{65276,61139,0},{65273,61141,0},{65274,61139,0},{65273,61136,0}, {65266,61131,0},{65263,61129,0},{65256,61129,0},{65256,61128,0},{65256,61129,0}, {65258,61129,0},{65258,61128,0},{65261,61128,0},{65259,61126,0},{65261,61126,0}, {65256,61123,0},{65253,61121,0},{65249,61116,0},{65251,61114,0},{65254,61119,0}, {65258,61116,0},{65259,61118,0},{65259,61113,0},{65256,61113,0},{65259,61111,0}, {65254,61109,0},{65254,61108,0},{65253,61106,0},{65254,61106,0},{65256,61106,0}, {65258,61104,0},{65253,61103,0},{65258,61103,0},{65264,61111,0},{65264,61114,0}, {65266,61116,0},{65269,61114,0},{65266,61118,0},{65269,61123,0},{65274,61126,0}, {65276,61124,0},{65281,61129,0},{65281,61131,0},{65284,61133,0},{65289,61131,0}, {65286,61131,0},{65289,61129,0},{65291,61126,0},{65291,61133,0},{65294,61133,0}, {65296,61133,0},{65296,61129,0},{65294,61128,0},{65294,61124,0},{65289,61114,0}, {65288,61108,0},{65283,61106,0},{65281,61108,0},{65278,61108,0},{65283,61104,0}, {65283,61101,0},{65281,61099,0},{65269,61101,0},{65273,61099,0},{65268,61098,0}, {65263,61098,0},{65258,61096,0},{65258,61098,0},{65256,61096,0},{65253,61096,0}, {65243,61094,0},{65238,61091,0},{65233,61083,0},{65226,61079,0},{65224,61074,0}, {65218,61071,0},{65216,61063,0},{65213,61059,0},{65206,61061,0},{65204,61059,0}, {65206,61058,0},{65208,61059,0},{65209,61058,0},{65216,61058,0},{65218,61064,0}, {65221,61066,0},{65231,61074,0},{65234,61073,0},{65234,61069,0},{65236,61068,0}, {65244,61068,0},{65251,61071,0},{65258,61071,0},{65264,61073,0},{65268,61073,0}, {65281,61083,0},{65283,61081,0},{65281,61079,0},{65278,61078,0},{65276,61071,0}, {65274,61071,0},{65276,61069,0},{65279,61076,0},{65284,61079,0},{65284,61083,0}, {65288,61084,0},{65296,61086,0},{65298,61084,0},{65294,61079,0},{65296,61079,0}, {65298,61081,0},{65299,61084,0},{65298,61088,0},{65294,61093,0},{65296,61098,0}, {65298,61099,0},{65303,61099,0},{65308,61099,0},{65308,61098,0},{65311,61098,0}, {65316,61096,0},{65318,61094,0},{65319,61094,0},{65321,61091,0},{65321,61084,0}, {65316,61081,0},{65314,61081,0},{65309,61074,0},{65304,61071,0},{65293,61071,0}, {65294,61069,0},{65299,61069,0},{65298,61066,0},{65296,61064,0},{65299,61066,0}, {65301,61068,0},{65308,61069,0},{65308,61068,0},{65306,61066,0},{65309,61066,0}, {65309,61063,0},{65306,61058,0},{65306,61054,0},{65308,61054,0},{65308,61058,0}, {65311,61061,0},{65309,61068,0},{65313,61066,0},{65313,61071,0},{65319,61078,0}, {65321,61071,0},{65321,61074,0},{65323,61078,0},{65328,61081,0},{65331,61086,0}, {65333,61084,0},{65333,61074,0},{65333,61078,0},{65334,61079,0},{65334,61086,0}, {65336,61088,0},{65346,61084,0},{65346,61076,0},{65348,61081,0},{65349,61083,0}, {65353,61083,0},{65349,61079,0},{65354,61079,0},{65353,61078,0},{65351,61076,0}, {65353,61074,0},{65353,61069,0},{65353,61073,0},{65358,61073,0},{65361,61076,0}, {65364,61071,0},{65361,61071,0},{65356,61069,0},{65354,61066,0},{65358,61063,0}, {65354,61054,0},{65359,61064,0},{65364,61066,0},{65364,61059,0},{65363,61059,0}, {65359,61056,0},{65361,61054,0},{65363,61059,0},{65366,61056,0},{65368,61058,0}, {65371,61056,0},{65373,61058,0},{65374,61056,0},{65373,61054,0},{65374,61056,0}, {65378,61054,0},{65379,61053,0},{65373,61051,0},{65373,61053,0},{65373,61051,0}, {65376,61048,0},{65374,61044,0},{65371,61046,0},{65371,61043,0},{65371,61044,0}, {65376,61041,0},{65376,61044,0},{65381,61044,0},{65383,61046,0},{65384,61046,0}, {65388,61051,0},{65391,61051,0},{65394,61049,0},{65391,61048,0},{65388,61043,0}, {65388,61044,0},{65386,61041,0},{65381,61041,0},{65376,61039,0},{65378,61036,0}, {65376,61034,0},{65378,61034,0},{65381,61039,0},{65383,61038,0},{65384,61034,0}, {65384,61038,0},{65388,61036,0},{65388,61031,0},{65393,61029,0},{65388,61029,0}, {65388,61026,0},{65388,61028,0},{65389,61029,0},{65389,61026,0},{65388,61023,0}, {65384,61023,0},{65388,61021,0},{65388,61019,0},{65383,61018,0},{65381,61014,0}, {65378,61011,0},{65374,61011,0},{65368,61014,0},{65366,61009,0},{65363,61008,0}, {65363,61001,0},{65364,60999,0},{65369,60999,0},{65373,61001,0},{65379,61003,0}, {65381,60998,0},{65379,60998,0},{65378,60998,0},{65379,60996,0},{65381,60996,0}, {65383,60999,0},{65388,61001,0},{65388,60999,0},{65386,60998,0},{65388,60998,0}, {65391,61004,0},{65394,61006,0},{65399,61006,0},{65404,61003,0},{65404,60999,0}, {65401,61001,0},{65398,60999,0},{65393,60998,0},{65389,60994,0},{65393,60994,0}, {65393,60993,0},{65389,60991,0},{65388,60989,0},{65383,60991,0},{65381,60991,0}, {65383,60989,0},{65384,60989,0},{65386,60989,0},{65384,60984,0},{65388,60988,0}, {65389,60986,0},{65386,60983,0},{65389,60984,0},{65389,60988,0},{65399,60989,0}, {65401,60994,0},{65406,60996,0},{65406,60991,0},{65406,60994,0},{65404,60989,0}, {65401,60989,0},{65394,60983,0},{65396,60983,0},{65399,60986,0},{65403,60984,0}, {65401,60981,0},{65403,60981,0},{65404,60983,0},{65406,60983,0},{65404,60981,0}, {65408,60981,0},{65408,60983,0},{65409,60983,0},{65408,60979,0},{65403,60978,0}, {65406,60976,0},{65408,60978,0},{65408,60974,0},{65403,60974,0},{65399,60973,0}, {65399,60966,0},{65403,60968,0},{65404,60966,0},{65404,60964,0},{65406,60966,0}, {65409,60966,0},{65411,60963,0},{65419,60966,0},{65421,60966,0},{65423,60964,0}, {65414,60961,0},{65414,60959,0},{65413,60959,0},{65409,60959,0},{65409,60956,0}, {65408,60954,0},{65403,60954,0},{65406,60953,0},{65411,60954,0},{65416,60953,0}, {65408,60951,0},{65408,60948,0},{65413,60949,0},{65409,60946,0},{65416,60949,0}, {65419,60948,0},{65414,60946,0},{65418,60944,0},{65419,60948,0},{65423,60946,0}, {65416,60943,0},{65411,60943,0},{65411,60941,0},{65416,60939,0},{65416,60936,0}, {65419,60936,0},{65421,60936,0},{65421,60941,0},{65423,60941,0},{65423,60938,0}, {65424,60938,0},{65424,60939,0},{65426,60938,0},{65428,60939,0},{65424,60936,0}, {65426,60934,0},{65423,60934,0},{65421,60933,0},{65416,60933,0},{65414,60931,0}, {65418,60933,0},{65419,60931,0},{65414,60928,0},{65416,60926,0},{65418,60926,0}, {65423,60929,0},{65429,60926,0},{65426,60923,0},{65418,60923,0},{65424,60921,0}, {65421,60919,0},{65421,60913,0},{65418,60909,0},{65426,60914,0},{65428,60916,0}, {65429,60916,0},{65429,60914,0},{65434,60916,0},{65434,60914,0},{65436,60916,0}, {65439,60916,0},{65441,60919,0},{65444,60919,0},{65444,60911,0},{65441,60911,0}, {65441,60914,0},{65438,60909,0},{65434,60909,0},{65433,60908,0},{65426,60911,0}, {65433,60908,0},{65424,60904,0},{65431,60904,0},{65434,60903,0},{65431,60901,0}, {65428,60901,0},{65429,60899,0},{65434,60899,0},{65438,60901,0},{65436,60899,0}, {65433,60896,0},{65431,60889,0},{65433,60889,0},{65434,60889,0},{65433,60886,0}, {65433,60883,0},{65434,60881,0},{65436,60879,0},{65434,60879,0},{65434,60876,0}, {65433,60874,0},{65438,60879,0},{65441,60878,0},{65438,60874,0},{65438,60873,0}, {65439,60866,0},{65434,60861,0},{65436,60861,0},{65441,60866,0},{65441,60868,0}, {65443,60869,0},{65441,60871,0},{65443,60874,0},{65444,60876,0},{65446,60874,0}, {65446,60876,0},{65449,60876,0},{65454,60873,0},{65453,60871,0},{65449,60873,0}, {65449,60871,0},{65453,60868,0},{65453,60866,0},{65449,60866,0},{65448,60866,0}, {65441,60863,0},{65443,60861,0},{65448,60864,0},{65453,60861,0},{65449,60859,0}, {65451,60859,0},{65449,60858,0},{65446,60858,0},{65449,60856,0},{65454,60856,0}, {65453,60854,0},{65454,60854,0},{65456,60853,0},{65456,60854,0},{65458,60854,0}, {65459,60856,0},{65461,60854,0},{65463,60856,0},{65464,60854,0},{65464,60853,0}, {65463,60854,0},{65458,60849,0},{65456,60851,0},{65454,60849,0},{65456,60848,0}, {65456,60846,0},{65451,60848,0},{65451,60846,0},{65449,60846,0},{65449,60841,0}, {65446,60841,0},{65446,60839,0},{65449,60839,0},{65451,60843,0},{65453,60844,0}, {65453,60843,0},{65456,60843,0},{65456,60841,0},{65458,60841,0},{65458,60839,0}, {65466,60841,0},{65466,60839,0},{65461,60838,0},{65459,60834,0},{65458,60834,0}, {65456,60833,0},{65453,60831,0},{65449,60831,0},{65451,60828,0},{65454,60828,0}, {65456,60831,0},{65456,60829,0},{65461,60829,0},{65461,60828,0},{65464,60828,0}, {65466,60829,0},{65469,60828,0},{65468,60826,0},{65464,60826,128},{65464,60824,0}, {65461,60824,0},{65463,60823,0},{65456,60823,0},{65459,60821,0},{65459,60816,0}, {65463,60821,0},{65468,60819,0},{65464,60819,0},{65466,60814,0},{65464,60813,0}, {65466,60811,0},{65469,60814,0},{65468,60816,0},{65469,60816,0},{65473,60816,0}, {65473,60811,0},{65471,60813,0},{65468,60811,0},{65471,60811,0},{65471,60808,0}, {65473,60808,0},{65476,60808,0},{65474,60801,0},{65471,60804,0},{65473,60801,0}, {65471,60798,0},{65469,60798,0},{65468,60799,0},{65471,60796,0},{65468,60794,0}, {65471,60794,0},{65478,60796,0},{65476,60789,0},{65476,60791,0},{65474,60789,0}, {65463,60789,0},{65466,60791,0},{65466,60793,0},{65461,60794,0},{65461,60798,0}, {65458,60798,0},{65454,60796,0},{65459,60794,0},{65459,60786,0},{65463,60788,0}, {65471,60783,0},{65473,60781,0},{65471,60778,0},{65473,60778,0},{65466,60774,0}, {65463,60769,0},{65459,60763,0},{65461,60763,0},{65464,60764,0},{65466,60764,0}, {65469,60764,0},{65473,60761,0},{65471,60758,0},{65468,60756,0},{65468,60753,0}, {65468,60751,0},{65469,60749,0},{65466,60749,0},{65461,60741,0},{65458,60739,0}, {65463,60734,0},{65466,60734,0},{65469,60733,0},{65469,60731,0},{65464,60726,0}, {65456,60719,0},{65451,60723,0},{65446,60721,0},{65433,60718,0},{65431,60713,0}, {65431,60706,0},{65424,60709,0},{65424,60714,0},{65423,60709,0},{65421,60708,0}, {65418,60711,0},{65419,60708,0},{65418,60706,0},{65404,60703,0},{65404,60696,0}, {65408,60691,0},{65404,60688,0},{65389,60686,0},{65389,60703,0},{65384,60698,0}, {65383,60689,0},{65384,60688,0},{65376,60693,0},{65369,60694,0},{65373,60691,0}, {65373,60686,0},{65378,60684,0},{65378,60683,0},{65389,60676,0},{65386,60673,0}, {65389,60666,0},{65388,60666,0},{65386,60663,0},{65378,60659,0},{65374,60654,0}, {65373,60654,0},{65371,60651,0},{65368,60648,0},{65364,60648,0},{65361,60644,0}, {65358,60643,0},{65351,60638,0},{65351,60626,0},{65348,60624,0},{65348,60619,0}, {65346,60618,0},{65336,60609,0},{65318,60604,0},{65298,60593,0},{65286,60593,0}, {65279,60588,0},{65278,60584,0},{65274,60584,0},{65271,60583,0},{65269,60574,0}, {65268,60568,0},{65269,60568,0},{65273,60569,0},{65274,60574,0},{65283,60581,0}, {65288,60583,0},{65294,60581,0},{65304,60586,0},{65309,60586,0},{65318,60591,0}, {65324,60594,0},{65326,60593,0},{65333,60594,0},{65336,60598,0},{65338,60598,0}, {65346,60599,0},{65348,60593,0},{65351,60589,0},{65354,60593,0},{65358,60594,0}, {65354,60589,0},{65359,60589,0},{65358,60586,0},{65349,60583,0},{65351,60579,0}, {65351,60576,0},{65349,60573,0},{65344,60571,0},{65344,60573,0},{65338,60578,0}, {65336,60579,0},{65334,60578,0},{65341,60573,0},{65344,60569,0},{65343,60566,0}, {65346,60564,0},{65344,60563,0},{65343,60563,0},{65346,60559,0},{65346,60554,0}, {65344,60554,0},{65341,60553,0},{65344,60553,0},{65346,60551,0},{65329,60553,0}, {65326,60554,0},{65331,60551,0},{65328,60548,0},{65334,60551,0},{65343,60551,0}, {65339,60546,0},{65344,60549,0},{65348,60549,0},{65353,60541,0},{65354,60538,0}, {65351,60526,0},{65349,60521,0},{65344,60519,0},{65346,60511,0},{65341,60504,0}, {65334,60503,0},{65334,60498,0},{65328,60494,0},{65338,60491,0},{65343,60491,0}, {65338,60488,0},{65343,60489,0},{65343,60484,0},{65353,60474,0},{65356,60468,0}, {65358,60464,0},{65361,60463,0},{65358,60469,0},{65363,60471,0},{65373,60468,0}, {65381,60459,0},{65393,60454,0},{65396,60456,0},{65399,60453,0},{65403,60453,0}, {65413,60454,0},{65418,60451,0},{65423,60441,0},{65423,60446,0},{65428,60448,0}, {65428,60451,0},{65431,60454,0},{65439,60453,0},{65443,60454,0},{65444,60451,0}, {65444,60441,0},{65443,60441,0},{65441,60443,0},{65439,60441,0},{65444,60439,0}, {65443,60436,0},{65441,60436,0},{65436,60436,0},{65433,60433,0},{65424,60418,0}, {65423,60418,0},{65423,60416,0},{65414,60409,0},{65409,60403,0},{65411,60401,0}, {65413,60403,0},{65411,60396,0},{65403,60391,0},{65398,60379,0},{65396,60369,0}, {65381,60348,0},{65378,60343,0},{65374,60334,0},{65373,60321,0},{65371,60318,0}, {65368,60316,0},{65366,60311,0},{65368,60309,0},{65374,60313,0},{65384,60309,0}, {65379,60298,0},{65379,60283,0},{65376,60264,0},{65379,60266,0},{65383,60274,0}, {65383,60279,0},{65386,60288,0},{65393,60293,0},{65398,60308,0},{65401,60313,0}, {65401,60316,0},{65398,60323,0},{65394,60333,0},{65396,60336,0},{65403,60343,0}, {65406,60344,0},{65416,60343,0},{65419,60344,0},{65423,60353,0},{65431,60361,0}, {65433,60364,0},{65449,60364,0},{65458,60364,0},{65461,60366,0},{65479,60383,0}, {65481,60381,0},{65479,60378,0},{65481,60381,0},{65483,60378,0},{65481,60383,0}, {65483,60386,0},{65488,60391,0},{65489,60393,0},{65493,60391,0},{65496,60396,0}, {65508,60401,0},{65523,60411,0},{65526,60408,0},{65528,60403,0},{65528,60413,0}, {65531,60416,0},{65533,60428,0},{5,60433,0},{15,60441,0},{17,60449,0},{17,60456,0}, {18,60459,0},{42,60479,0},{67,60491,0},{73,60501,0},{80,60504,0},{85,60508,0}, {95,60523,0},{98,60526,0},{103,60531,0},{110,60533,0},{107,60534,0},{110,60543,0}, {117,60548,0},{125,60544,0},{143,60548,0},{167,60539,0},{173,60529,0},{173,60526,0}, {178,60518,0},{178,60511,0},{182,60504,0},{180,60498,0},{182,60489,0},{185,60484,0}, {193,60483,0},{200,60478,0},{208,60476,0},{213,60471,0},{212,60463,0},{205,60461,0}, {205,60459,0},{208,60458,0},{212,60459,0},{215,60456,0},{213,60463,0},{213,60466,0}, {215,60468,0},{223,60468,0},{228,60464,0},{237,60461,0},{243,60463,0},{250,60458,0}, {248,60453,0},{257,60454,0},{265,60453,0},{268,60451,0},{273,60451,0},{278,60448,0}, {280,60444,0},{287,60444,0},{313,60434,0},{320,60434,0},{327,60431,0},{335,60429,0}, {390,60428,0},{392,60426,0},{390,60424,0},{387,60423,0},{365,60418,0},{368,60418,0}, {378,60419,0},{400,60419,0},{407,60416,0},{423,60403,0},{435,60386,0},{440,60383,0}, {437,60379,0},{428,60381,0},{407,60388,0},{398,60393,0},{393,60393,0},{407,60386,0}, {423,60379,0},{423,60378,0},{407,60373,0},{403,60368,0},{408,60369,0},{420,60371,0}, {430,60364,0},{435,60364,0},{437,60368,0},{438,60368,0},{440,60363,0},{442,60363,0}, {445,60363,0},{445,60361,0},{455,60359,0},{458,60356,0},{460,60356,0},{465,60351,0}, {467,60348,0},{465,60344,0},{460,60343,0},{440,60343,0},{437,60339,0},{433,60333,0}, {435,60333,0},{440,60339,0},{442,60341,0},{460,60338,0},{468,60334,0},{477,60326,0}, {478,60321,0},{487,60316,0},{487,60314,0},{483,60308,0},{477,60304,0},{472,60303,0}, {475,60301,0},{483,60306,0},{487,60309,0},{493,60308,0},{495,60303,0},{493,60301,0}, {488,60298,0},{493,60298,0},{498,60294,0},{500,60294,0},{500,60291,0},{505,60288,0}, {505,60283,0},{507,60283,0},{513,60274,0},{518,60269,0},{527,60259,0},{542,60248,0}, {545,60243,0},{547,60236,0},{545,60234,0},{545,60231,0},{552,60218,0},{552,60216,0}, {550,60214,0},{552,60211,0},{553,60209,0},{553,60198,0},{557,60188,0},{562,60179,0}, {570,60163,0},{575,60156,0},{577,60154,0},{578,60148,0},{572,60138,0},{562,60134,0}, {555,60136,0},{543,60131,0},{540,60128,0},{535,60119,0},{552,60131,0},{565,60131,0}, {575,60138,0},{578,60134,0},{582,60134,0},{583,60126,0},{588,60116,0},{588,60109,0}, {590,60101,0},{592,60081,0},{598,60059,0},{598,60036,0},{600,60031,0},{597,60021,0}, {595,60019,0},{593,60023,0},{590,60026,0},{590,60031,0},{587,60036,0},{587,60043,0}, {588,60046,0},{585,60049,0},{587,60046,0},{585,60043,0},{587,60038,0},{585,60034,0}, {588,60028,0},{585,60026,0},{582,60024,0},{582,60023,0},{587,60026,0},{588,60024,0}, {590,60018,0},{590,60014,0},{592,60009,0},{597,59998,0},{598,59969,0},{595,59951,0}, {588,59943,0},{585,59946,0},{580,59946,0},{572,59948,0},{567,59946,0},{577,59946,0}, {582,59934,0},{582,59929,0},{595,59888,0},{595,59874,0},{597,59869,0},{600,59839,0}, {595,59829,0},{588,59828,0},{577,59823,0},{555,59819,0},{552,59818,0},{548,59811,0}, {560,59818,0},{568,59819,0},{577,59818,0},{583,59821,0},{595,59823,0},{600,59819,0}, {610,59818,0},{615,59816,0},{627,59803,0},{633,59789,0},{633,59786,0},{628,59786,0}, {627,59784,0},{643,59778,0},{648,59773,0},{653,59764,0},{663,59753,0},{668,59746,0}, {678,59738,0},{682,59731,0},{683,59721,0},{682,59719,0},{687,59711,0},{690,59704,0}, {687,59694,0},{682,59689,0},{673,59686,0},{667,59681,0},{660,59679,0},{652,59679,0}, {642,59676,0},{642,59673,0},{638,59668,0},{650,59674,0},{655,59674,0},{670,59674,0}, {672,59676,0},{678,59676,0},{693,59681,0},{702,59688,0},{713,59689,0},{718,59688,0}, {733,59689,0},{737,59688,0},{748,59678,0},{762,59669,0},{763,59664,0},{760,59664,0}, {762,59663,0},{773,59656,0},{798,59628,0},{803,59624,0},{842,59561,0},{840,59558,0}, {835,59559,0},{825,59576,0},{823,59583,0},{817,59589,0},{813,59593,0},{822,59583,0}, {823,59576,0},{827,59574,0},{828,59568,0},{832,59564,0},{837,59553,0},{840,59549,0}, {852,59541,0},{853,59536,0},{853,59538,128},{862,59516,0},{863,59499,0}, {863,59496,0},{858,59494,0},{855,59491,0},{853,59489,0},{855,59483,0},{855,59473,0}, {860,59468,0},{860,59464,0},{858,59459,0},{857,59438,0},{853,59438,0},{847,59434,0}, {845,59429,0},{840,59429,0},{842,59428,0},{845,59428,0},{847,59433,0},{850,59433,0}, {850,59419,0},{840,59408,0},{843,59403,0},{848,59401,0},{848,59393,0},{850,59388,0}, {853,59386,0},{857,59374,0},{858,59369,0},{863,59371,0},{863,59376,0},{858,59383,0}, {862,59398,0},{858,59409,0},{860,59414,0},{862,59416,0},{873,59418,0},{883,59424,0}, {888,59424,0},{897,59426,0},{900,59428,0},{905,59436,0},{912,59438,0},{917,59441,0}, {917,59438,0},{908,59429,0},{903,59426,0},{905,59424,0},{910,59428,0},{918,59438,0}, {923,59444,0},{927,59454,0},{932,59454,0},{930,59456,0},{930,59458,0},{938,59456,0}, {943,59451,0},{948,59446,0},{948,59439,0},{953,59439,0},{952,59441,0},{953,59441,0}, {958,59431,0},{958,59421,0},{960,59416,0},{958,59416,0},{958,59414,0},{963,59403,0}, {967,59401,0},{968,59398,0},{972,59394,0},{978,59391,0},{982,59388,0},{990,59374,0}, {988,59371,0},{987,59374,0},{985,59374,0},{980,59379,0},{978,59376,0},{983,59359,0}, {983,59354,0},{977,59356,0},{977,59359,0},{970,59363,0},{960,59363,0},{970,59361,0}, {975,59359,0},{975,59356,0},{972,59356,0},{965,59353,0},{973,59354,0},{980,59353,0}, {995,59334,0},{998,59328,0},{1002,59319,0},{1000,59314,0},{995,59313,0}, {993,59316,0},{993,59324,0},{990,59328,0},{988,59331,0},{987,59334,0},{988,59326,0}, {992,59324,0},{993,59318,0},{992,59318,0},{987,59319,0},{970,59321,0},{965,59318,0}, {963,59314,0},{972,59319,0},{977,59318,0},{985,59318,0},{992,59314,0},{997,59311,0}, {992,59311,0},{985,59313,0},{975,59308,0},{970,59304,0},{973,59303,0},{977,59304,0}, {987,59299,0},{993,59294,0},{993,59291,0},{997,59294,0},{1007,59289,0}, {1017,59286,0},{1023,59278,0},{1022,59274,0},{1020,59274,0},{1013,59276,0}, {1008,59274,0},{1005,59266,0},{1005,59263,0},{1007,59259,0},{1005,59258,0}, {1002,59258,0},{998,59256,0},{1000,59254,0},{1003,59256,0},{1003,59253,0}, {1005,59251,0},{1005,59244,0},{1008,59244,0},{1005,59243,0},{1000,59244,0}, {1000,59243,0},{1008,59241,0},{1007,59238,0},{1010,59234,0},{1008,59238,0}, {1010,59239,0},{1008,59243,0},{1010,59244,0},{1010,59246,0},{1007,59248,0}, {1008,59251,0},{1003,59254,0},{1008,59259,0},{1007,59264,0},{1008,59271,0}, {1012,59274,0},{1020,59269,0},{1028,59269,0},{1035,59263,0},{1037,59263,0}, {1040,59258,0},{1037,59248,0},{1040,59243,0},{1040,59241,0},{1033,59241,0}, {1030,59243,0},{1028,59243,0},{1027,59236,0},{1030,59239,0},{1032,59236,0}, {1035,59241,0},{1040,59238,0},{1040,59236,0},{1042,59243,0},{1038,59249,0}, {1040,59253,0},{1050,59253,0},{1052,59251,0},{1052,59244,0},{1048,59243,0}, {1045,59236,0},{1053,59244,0},{1057,59269,0},{1053,59284,0},{1053,59303,0}, {1063,59311,0},{1063,59328,0},{1065,59329,0},{1063,59333,0},{1065,59334,0}, {1065,59341,0},{1067,59344,0},{1068,59346,0},{1068,59348,0},{1072,59348,0}, {1073,59351,0},{1075,59351,0},{1072,59343,0},{1073,59341,0},{1072,59339,0}, {1073,59338,0},{1072,59336,0},{1072,59333,0},{1070,59328,0},{1072,59326,0}, {1068,59319,0},{1070,59314,0},{1075,59268,0},{1077,59266,0},{1073,59261,0}, {1070,59246,0},{1072,59236,0},{1070,59223,0},{1073,59219,0},{1072,59219,0}, {1068,59211,0},{1067,59208,0},{1068,59204,0},{1068,59201,0},{1070,59198,0}, {1067,59196,0},{1067,59193,0},{1065,59191,0},{1067,59189,0},{1065,59186,0}, {1063,59186,0},{1063,59183,0},{1067,59159,0},{1072,59154,0},{1065,59151,0}, {1063,59144,0},{1063,59133,0},{1065,59131,0},{1062,59123,0},{1063,59118,0}, {1063,59113,0},{1067,59109,0},{1062,59106,0},{1052,59113,0},{1057,59119,0}, {1057,59126,0},{1058,59133,0},{1057,59133,0},{1055,59151,0},{1050,59163,0}, {1048,59166,0},{1050,59171,0},{1048,59169,0},{1043,59154,0},{1043,59148,0}, {1045,59143,0},{1043,59131,0},{1048,59124,0},{1047,59116,0},{1042,59113,0}, {1038,59103,0},{1033,59101,0},{1033,59099,0},{1037,59099,0},{1038,59099,0}, {1037,59096,0},{1037,59098,0},{1033,59098,0},{1032,59094,0},{1033,59089,0}, {1032,59091,0},{1032,59098,0},{1030,59099,0},{1028,59096,0},{1027,59091,0}, {1023,59088,0},{1025,59083,0},{1023,59081,0},{1025,59081,0},{1023,59078,0}, {1027,59078,0},{1023,59073,0},{1020,59069,0},{1018,59071,0},{1018,59069,0}, {1018,59066,0},{1020,59068,0},{1022,59064,0},{1020,59066,0},{1010,59063,0}, {1008,59053,0},{1010,59041,0},{1003,59028,0},{1007,59019,0},{1008,59019,0}, {1005,59028,0},{1010,59016,0},{1013,58994,0},{1018,58978,0},{1030,58949,0}, {1028,58949,0},{1022,58964,0},{1023,58954,0},{1025,58949,0},{1028,58948,0}, {1028,58943,0},{1032,58943,0},{1032,58948,0},{1043,58929,0},{1050,58924,0}, {1053,58924,0},{1055,58929,0},{1058,58931,0},{1058,58926,0},{1065,58913,0}, {1065,58906,0},{1060,58901,0},{1063,58889,0},{1062,58851,0},{1060,58843,0}, {1062,58834,0},{1055,58818,0},{1053,58781,0},{1052,58778,0},{1050,58769,0}, {1050,58756,0},{1048,58753,0},{1045,58749,0},{1047,58749,0},{1045,58743,0}, {1048,58736,0},{1048,58724,0},{1050,58719,0},{1058,58711,0},{1068,58706,0}, {1077,58703,0},{1083,58703,0},{1085,58706,0},{1087,58711,0},{1088,58713,0}, {1092,58704,0},{1092,58699,0},{1093,58699,0},{1093,58703,0},{1093,58706,0}, {1090,58708,0},{1092,58709,0},{1105,58703,0},{1112,58698,0},{1115,58696,0}, {1118,58698,0},{1120,58696,0},{1118,58694,0},{1120,58688,0},{1125,58684,0}, {1130,58674,0},{1135,58669,0},{1137,58663,0},{1145,58651,0},{1145,58631,0}, {1148,58624,0},{1153,58608,0},{1148,58599,0},{1150,58584,0},{1148,58581,0}, {1145,58578,0},{1147,58573,0},{1155,58564,0},{1167,58561,0},{1185,58554,0}, {1193,58554,0},{1198,58554,0},{1207,58549,0},{1217,58543,0},{1218,58538,0}, {1220,58534,0},{1217,58528,0},{1212,58521,0},{1212,58516,0},{1207,58516,0}, {1198,58511,0},{1185,58506,0},{1185,58508,0},{1177,58513,0},{1178,58513,0}, {1177,58516,0},{1173,58516,0},{1175,58513,0},{1168,58514,0},{1163,58513,0}, {1160,58514,0},{1160,58519,0},{1167,58541,0},{1165,58541,0},{1165,58543,0}, {1167,58548,0},{1168,58549,0},{1167,58553,0},{1168,58554,0},{1150,58563,0}, {1143,58556,0},{1143,58548,0},{1148,58539,0},{1152,58538,0},{1152,58533,0}, {1157,58523,0},{1153,58526,0},{1153,58524,0},{1152,58524,0},{1152,58531,0}, {1148,58533,0},{1148,58534,0},{1148,58531,0},{1147,58533,0},{1143,58533,0}, {1145,58529,0},{1143,58526,0},{1147,58524,0},{1148,58521,0},{1147,58519,0}, {1147,58523,0},{1143,58523,0},{1142,58521,0},{1142,58519,0},{1137,58518,0}, {1135,58513,0},{1137,58508,0},{1130,58494,0},{1130,58486,0},{1127,58484,0}, {1128,58488,0},{1125,58484,0},{1123,58466,0},{1120,58451,0},{1100,58411,0}, {1097,58403,0},{1098,58394,0},{1097,58386,0},{1092,58391,0},{1092,58394,0}, {1088,58391,0},{1080,58393,0},{1080,58378,0},{1077,58381,0},{1077,58383,0}, {1073,58383,0},{1065,58383,0},{1063,58386,0},{1060,58383,0},{1057,58381,0}, {1053,58384,0},{1050,58389,0},{1047,58391,0},{1042,58388,0},{1037,58393,0}, {1023,58399,0},{1015,58409,0},{998,58416,0},{997,58419,0},{990,58426,0}, {985,58429,0},{982,58428,0},{972,58433,0},{970,58431,0},{960,58429,0},{953,58428,0}, {948,58429,0},{940,58429,0},{935,58431,0},{932,58429,0},{928,58421,0},{922,58414,0}, {917,58413,0},{912,58406,0},{905,58386,0},{905,58373,0},{907,58366,0},{908,58364,0}, {910,58364,0},{912,58359,0},{917,58363,0},{920,58361,0},{920,58363,0},{922,58361,0}, {923,58361,0},{923,58359,0},{923,58356,0},{922,58354,0},{925,58356,0},{927,58359,0}, {928,58359,0},{928,58363,0},{932,58363,0},{933,58361,0},{935,58364,0},{937,58363,0}, {938,58363,0},{937,58361,0},{938,58358,0},{942,58354,0},{942,58348,0},{938,58346,0}, {943,58346,0},{943,58353,0},{945,58351,0},{947,58346,0},{950,58344,0},{947,58344,0}, {950,58343,0},{947,58338,0},{948,58334,0},{952,58334,0},{948,58338,0},{950,58339,0}, {957,58338,0},{957,58334,0},{958,58338,0},{960,58338,0},{957,58339,0},{953,58341,0}, {955,58341,0},{957,58339,0},{962,58338,0},{973,58328,0},{982,58323,0},{990,58329,0}, {1000,58334,0},{1008,58338,0},{1012,58341,0},{1013,58346,0},{1022,58353,0}, {1035,58358,0},{1043,58371,0},{1045,58374,0},{1052,58373,0},{1058,58376,0}, {1063,58376,0},{1067,58378,0},{1072,58378,0},{1078,58369,0},{1090,58364,0}, {1097,58364,0},{1102,58359,0},{1103,58363,0},{1102,58368,0},{1098,58369,0}, {1100,58373,0},{1102,58374,0},{1105,58369,0},{1108,58361,0},{1120,58351,0}, {1140,58341,0},{1155,58339,0},{1158,58339,0},{1160,58341,0},{1167,58364,0}, {1172,58388,0},{1175,58394,0},{1175,58398,0},{1177,58399,0},{1178,58403,0}, {1182,58403,0},{1185,58404,0},{2367,58006,129},{2368,58003,1},{2367,58003,1}, {2362,58001,1},{2365,58004,1},{2362,58003,1},{2362,58006,1},{2357,58004,1}, {2358,58008,1},{2348,58011,1},{2347,58014,1},{2343,58013,1},{2343,58016,1}, {2340,58016,1},{2337,58021,1},{2335,58019,1},{2335,58023,1},{2327,58026,1}, {2323,58023,1},{2320,58023,1},{2312,58029,1},{2312,58026,1},{2313,58021,1}, {2317,58018,1},{2317,58021,1},{2318,58019,1},{2320,58016,1},{2317,58013,1}, {2310,58026,1},{2307,58039,1},{2300,58043,1},{2288,58048,1},{2288,58049,1}, {2285,58051,1},{2287,58053,1},{2300,58051,1},{2303,58046,1},{2308,58044,1}, {2310,58039,1},{2310,58034,1},{2315,58029,1},{2333,58026,1},{2345,58018,1}, {2353,58016,1},{2358,58009,1},{2363,58009,1},{2367,58006,1},{2465,57973,129}, {2470,57964,1},{2470,57963,1},{2467,57961,1},{2458,57971,1},{2452,57971,1}, {2452,57978,1},{2437,57984,1},{2428,57989,1},{2428,57994,1},{2425,57996,1}, {2420,57994,1},{2417,57984,1},{2415,57984,1},{2413,57986,1},{2412,57989,1}, {2415,57993,1},{2417,58001,1},{2415,58008,1},{2422,58004,1},{2427,57999,1}, {2432,57996,1},{2437,57988,1},{2455,57976,1},{2465,57973,1},{2428,57766,129}, {2430,57768,1},{2428,57769,1},{2427,57771,1},{2425,57773,1},{2423,57773,1}, {2418,57766,1},{2417,57761,1},{2415,57763,1},{2413,57761,1},{2412,57766,1}, {2405,57764,1},{2403,57763,1},{2403,57766,1},{2410,57768,1},{2413,57771,1}, {2420,57773,1},{2422,57774,1},{2413,57781,1},{2403,57783,1},{2400,57781,1}, {2398,57783,1},{2395,57783,1},{2392,57776,1},{2390,57776,1},{2393,57781,1}, {2392,57784,1},{2382,57783,1},{2382,57779,1},{2380,57781,1},{2375,57781,1}, {2373,57776,1},{2375,57771,1},{2375,57769,1},{2373,57771,1},{2372,57769,1}, {2373,57768,1},{2375,57759,1},{2375,57761,1},{2378,57761,1},{2377,57768,1}, {2378,57769,1},{2382,57776,1},{2385,57779,1},{2383,57774,1},{2378,57766,1}, {2378,57763,1},{2382,57763,1},{2382,57759,1},{2385,57769,1},{2388,57771,1}, {2387,57768,1},{2385,57756,1},{2393,57753,1},{2398,57754,1},{2398,57753,1}, {2402,57753,1},{2405,57749,1},{2407,57749,1},{2410,57743,1},{2410,57746,1}, {2415,57744,1},{2415,57749,1},{2417,57751,1},{2420,57753,1},{2422,57758,1}, {2425,57759,1},{2428,57766,1},{2520,57716,129},{2518,57723,1},{2515,57726,1}, {2518,57731,1},{2515,57738,1},{2510,57736,1},{2507,57739,1},{2500,57738,1}, {2500,57741,1},{2497,57743,1},{2485,57748,1},{2478,57753,1},{2472,57763,1}, {2463,57763,1},{2460,57761,1},{2452,57764,1},{2447,57764,1},{2445,57761,1}, {2445,57756,1},{2442,57753,1},{2442,57751,1},{2437,57749,1},{2433,57743,1}, {2435,57739,1},{2430,57734,1},{2428,57736,1},{2427,57733,1},{2428,57731,1}, {2437,57728,1},{2440,57723,1},{2450,57723,1},{2445,57716,1},{2450,57706,1}, {2453,57699,1},{2462,57693,1},{2465,57698,1},{2467,57698,1},{2467,57703,1}, {2472,57704,1},{2470,57706,1},{2465,57708,1},{2460,57703,1},{2458,57703,1}, {2460,57709,1},{2463,57709,1},{2462,57711,1},{2457,57709,1},{2457,57711,1}, {2457,57714,1},{2460,57713,1},{2460,57716,1},{2462,57716,1},{2463,57714,1}, {2473,57709,1},{2467,57709,1},{2472,57706,1},{2478,57708,1},{2482,57713,1}, {2485,57713,1},{2487,57716,1},{2492,57718,1},{2495,57718,1},{2498,57719,1}, {2503,57721,1},{2517,57714,1},{2520,57716,1},{2557,57863,129},{2555,57868,1}, {2548,57868,1},{2550,57869,1},{2548,57871,1},{2547,57873,1},{2537,57888,1}, {2533,57896,1},{2535,57901,1},{2530,57904,1},{2522,57913,1},{2513,57924,1}, {2505,57924,1},{2500,57923,1},{2497,57921,1},{2490,57923,1},{2485,57923,1}, {2475,57918,1},{2465,57919,1},{2465,57918,1},{2468,57914,1},{2475,57913,1}, {2478,57904,1},{2482,57903,1},{2480,57914,1},{2482,57914,1},{2485,57918,1}, {2488,57919,1},{2488,57918,1},{2487,57916,1},{2488,57914,1},{2497,57916,1}, {2502,57921,1},{2508,57921,1},{2513,57919,1},{2515,57918,1},{2518,57911,1}, {2532,57901,1},{2535,57884,1},{2543,57874,1},{2543,57864,1},{2543,57861,1}, {2542,57858,1},{2547,57861,1},{2557,57863,1},{2690,57741,129},{2692,57746,1}, {2693,57753,1},{2690,57769,1},{2692,57776,1},{2690,57783,1},{2668,57806,1}, {2668,57811,1},{2667,57806,1},{2662,57809,1},{2660,57818,1},{2652,57831,1}, {2648,57833,1},{2647,57829,1},{2642,57831,1},{2638,57834,1},{2633,57833,1}, {2630,57836,1},{2628,57831,1},{2632,57831,1},{2630,57828,1},{2623,57819,1}, {2613,57818,1},{2593,57818,1},{2588,57816,1},{2588,57811,1},{2598,57806,1}, {2600,57799,1},{2602,57796,1},{2603,57798,1},{2607,57803,1},{2608,57806,1}, {2613,57811,1},{2615,57814,1},{2620,57811,1},{2625,57813,1},{2628,57813,1}, {2632,57811,1},{2635,57814,1},{2642,57813,1},{2643,57813,1},{2645,57816,1}, {2650,57818,1},{2652,57821,1},{2655,57821,1},{2658,57814,1},{2660,57801,1}, {2668,57799,1},{2668,57793,1},{2675,57793,1},{2687,57783,1},{2687,57769,1}, {2688,57764,1},{2688,57759,1},{2690,57758,1},{2692,57753,1},{2688,57741,1}, {2690,57739,1},{2690,57741,1},{2668,57639,129},{2665,57648,1},{2662,57649,1}, {2662,57653,1},{2658,57656,1},{2658,57666,1},{2662,57671,1},{2668,57676,1}, {2670,57676,1},{2672,57673,1},{2675,57676,1},{2680,57678,1},{2678,57681,1}, {2673,57683,1},{2673,57686,1},{2668,57701,1},{2670,57704,1},{2672,57708,1}, {2672,57721,1},{2670,57724,1},{2673,57733,1},{2672,57738,1},{2677,57744,1}, {2672,57744,1},{2667,57746,1},{2663,57744,1},{2667,57734,1},{2663,57721,1}, {2662,57706,1},{2657,57686,1},{2648,57666,1},{2650,57661,1},{2655,57653,1}, {2668,57638,1},{2670,57638,1},{2668,57639,1},{2103,58166,129},{2103,58169,1}, {2105,58171,1},{2108,58171,1},{2110,58168,1},{2112,58173,1},{2113,58179,1}, {2118,58183,1},{2120,58194,1},{2123,58196,1},{2117,58203,1},{2113,58209,1}, {2118,58221,1},{2127,58228,1},{2132,58229,1},{2133,58234,1},{2132,58236,1}, {2117,58234,1},{2097,58221,1},{2097,58208,1},{2093,58204,1},{2095,58206,1}, {2092,58191,1},{2095,58176,1},{2092,58169,1},{2093,58168,1},{2097,58168,1}, {2102,58164,1},{2103,58166,1},{1777,59049,129},{1777,59053,1},{1777,59054,1}, {1780,59058,1},{1775,59066,1},{1777,59071,1},{1777,59078,1},{1775,59079,1}, {1775,59076,1},{1772,59069,1},{1770,59063,1},{1768,59053,1},{1768,59049,1}, {1768,59046,1},{1772,59048,1},{1775,59048,1},{1777,59049,1},{1640,59384,129}, {1645,59383,1},{1652,59389,1},{1647,59396,1},{1642,59398,1},{1638,59396,1}, {1635,59399,1},{1632,59409,1},{1627,59416,1},{1625,59419,1},{1623,59418,1}, {1625,59413,1},{1623,59401,1},{1620,59391,1},{1622,59384,1},{1625,59381,1}, {1627,59381,1},{1633,59384,1},{1635,59386,1},{1638,59386,1},{1640,59384,1}, {1605,59361,129},{1627,59356,1},{1633,59358,1},{1637,59361,1},{1630,59376,1}, {1627,59376,1},{1628,59381,1},{1623,59383,1},{1623,59379,1},{1620,59378,1}, {1605,59381,1},{1598,59374,1},{1595,59368,1},{1598,59366,1},{1605,59361,1}, {1563,59389,129},{1563,59394,1},{1558,59398,1},{1558,59404,1},{1555,59406,1}, {1552,59409,1},{1545,59411,1},{1543,59409,1},{1532,59411,1},{1525,59409,1}, {1523,59408,1},{1525,59404,1},{1520,59399,1},{1520,59398,1},{1525,59398,1}, {1527,59399,1},{1530,59396,1},{1535,59396,1},{1548,59389,1},{1553,59388,1}, {1557,59389,1},{1558,59388,1},{1563,59389,1},{1487,59416,129},{1488,59419,1}, {1487,59426,1},{1480,59436,1},{1475,59441,1},{1477,59443,1},{1477,59448,1}, {1477,59446,1},{1473,59446,1},{1475,59444,1},{1473,59443,1},{1472,59443,1}, {1470,59444,1},{1468,59443,1},{1467,59443,1},{1467,59448,1},{1465,59446,1}, {1463,59446,1},{1462,59449,1},{1460,59449,1},{1457,59453,1},{1455,59453,1}, {1453,59453,1},{1452,59453,1},{1447,59454,1},{1440,59449,1},{1440,59448,1}, {1443,59448,1},{1443,59449,1},{1447,59449,1},{1445,59446,1},{1447,59444,1}, {1447,59433,1},{1445,59431,1},{1447,59428,1},{1450,59428,1},{1452,59426,1}, {1453,59428,1},{1457,59431,1},{1453,59434,1},{1455,59436,1},{1460,59434,1}, {1460,59431,1},{1460,59426,1},{1467,59421,1},{1470,59418,1},{1475,59418,1}, {1482,59413,1},{1487,59416,1},{2183,57229,129},{2190,57234,1},{2192,57239,1}, {2193,57236,1},{2195,57238,1},{2190,57261,1},{2188,57268,1},{2183,57266,1}, {2180,57268,1},{2180,57269,1},{2177,57273,1},{2177,57276,1},{2175,57276,1}, {2172,57278,1},{2167,57274,1},{2165,57279,1},{2160,57279,1},{2160,57281,1}, {2157,57281,1},{2148,57266,1},{2143,57246,1},{2145,57243,1},{2147,57229,1}, {2150,57226,1},{2153,57221,1},{2157,57219,1},{2163,57218,1},{2157,57226,1}, {2153,57229,1},{2155,57234,1},{2157,57236,1},{2157,57238,1},{2160,57239,1}, {2158,57241,1},{2157,57239,1},{2158,57243,1},{2160,57241,1},{2162,57238,1}, {2167,57234,1},{2178,57228,1},{2183,57229,1},{2253,57686,129},{2253,57689,1}, {2255,57693,1},{2257,57696,1},{2253,57703,1},{2253,57701,1},{2252,57701,1}, {2245,57708,1},{2243,57708,1},{2243,57706,1},{2245,57706,1},{2243,57701,1}, {2243,57696,1},{2242,57694,1},{2243,57694,1},{2243,57696,1},{2247,57696,1}, {2245,57689,1},{2245,57686,1},{2245,57683,1},{2247,57681,1},{2248,57679,1}, {2248,57671,1},{2250,57671,1},{2252,57671,1},{2253,57671,1},{2250,57668,1}, {2250,57666,1},{2253,57666,1},{2255,57669,1},{2255,57676,1},{2253,57679,1}, {2253,57686,1},{2240,57704,1},{2243,57709,1},{2243,57716,1},{2242,57718,1}, {2243,57719,1},{2240,57726,1},{2230,57729,1},{2228,57731,1},{2228,57734,1}, {2227,57734,1},{2227,57731,1},{2230,57726,1},{2230,57719,1},{2232,57718,1}, {2232,57716,1},{2233,57719,1},{2237,57716,1},{2237,57714,1},{2233,57714,1}, {2233,57713,1},{2237,57711,1},{2237,57714,1},{2238,57713,1},{2240,57709,1}, {2240,57708,1},{2240,57704,1},{2232,57734,1},{2230,57738,1},{2228,57739,1}, {2227,57739,1},{2227,57738,1},{2223,57738,1},{2223,57741,1},{2223,57743,1}, {2220,57744,1},{2222,57744,1},{2223,57746,1},{2222,57748,1},{2222,57749,1}, {2220,57749,1},{2218,57746,1},{2217,57749,1},{2217,57753,1},{2215,57753,1}, {2212,57751,1},{2210,57749,1},{2210,57748,1},{2210,57746,1},{2215,57744,1}, {2215,57741,1},{2212,57741,1},{2218,57733,1},{2220,57731,1},{2223,57736,1}, {2228,57736,1},{2232,57734,1},{2210,57741,1},{2210,57744,1},{2207,57749,1}, {2210,57756,1},{2207,57759,1},{2208,57763,1},{2207,57764,1},{2205,57768,1}, {2207,57769,1},{2203,57774,1},{2197,57771,1},{2193,57773,1},{2192,57768,1}, {2195,57768,1},{2195,57766,1},{2192,57766,1},{2190,57766,1},{2195,57763,1}, {2198,57754,1},{2203,57754,1},{2203,57751,1},{2200,57751,1},{2202,57751,1}, {2200,57748,1},{2205,57743,1},{2210,57741,1},{60026,58831,129},{60023,58831,1}, {60016,58826,1},{60004,58811,1},{60004,58804,1},{60008,58793,1},{60011,58789,1}, {60016,58794,1},{60018,58789,1},{60019,58783,1},{60018,58774,1},{60009,58771,1}, {60011,58763,1},{60009,58754,1},{60011,58748,1},{60013,58749,1},{60011,58756,1}, {60013,58763,1},{60014,58751,1},{60019,58746,1},{60016,58744,1},{60018,58743,1}, {60016,58741,1},{60013,58738,1},{60013,58724,1},{60016,58721,1},{60018,58724,1}, {60019,58721,1},{60026,58718,1},{60031,58719,1},{60038,58718,1},{60036,58704,1}, {60038,58703,1},{60041,58699,1},{60044,58703,1},{60046,58729,1},{60044,58756,1}, {60041,58763,1},{60044,58769,1},{60044,58779,1},{60044,58796,1},{60043,58809,1}, {60039,58819,1},{60029,58828,1},{60029,58831,1},{60026,58831,1},{60039,58696,129}, {60036,58703,1},{60029,58703,1},{60029,58696,1},{60033,58693,1},{60029,58693,1}, {60028,58693,1},{60024,58684,1},{60028,58679,1},{60028,58674,1},{60026,58678,1}, {60024,58679,1},{60021,58676,1},{60023,58658,1},{60029,58644,1},{60031,58636,1}, {60034,58633,1},{60033,58631,1},{60031,58629,1},{60029,58638,1},{60024,58639,1}, {60021,58651,1},{60018,58658,1},{60018,58674,1},{60016,58681,1},{60018,58698,1}, {60014,58701,1},{60013,58708,1},{60013,58704,1},{60009,58714,1},{60006,58714,1}, {60006,58696,1},{60006,58689,1},{60004,58684,1},{60006,58674,1},{60011,58669,1}, {60009,58661,1},{60009,58669,1},{60006,58668,1},{60006,58671,1},{60003,58671,1}, {60003,58679,1},{59999,58676,1},{60003,58688,1},{60001,58701,1},{59996,58703,1}, {59998,58708,1},{59996,58713,1},{59996,58719,1},{59994,58721,1},{59989,58719,1}, {59989,58729,1},{59988,58731,1},{59983,58726,1},{59979,58731,1},{59978,58731,1}, {59976,58739,1},{59971,58733,1},{59969,58738,1},{59964,58728,1},{59968,58723,1}, {59976,58721,1},{59974,58711,1},{59974,58708,1},{59981,58711,1},{59984,58711,1}, {59988,58698,1},{59986,58694,1},{59986,58688,1},{59989,58681,1},{59994,58679,1}, {59993,58678,1},{59994,58676,1},{59994,58674,1},{59989,58676,1},{59991,58671,1}, {59989,58663,1},{59993,58659,1},{59993,58656,1},{59991,58659,1},{59989,58656,1}, {59986,58659,1},{59984,58653,1},{59988,58646,1},{59989,58646,1},{59989,58643,1}, {59994,58639,1},{59996,58643,1},{59998,58661,1},{59999,58656,1},{60003,58659,1}, {59998,58638,1},{60003,58646,1},{60008,58646,1},{60011,58651,1},{60013,58649,1}, {60018,58656,1},{60013,58639,1},{60009,58638,1},{60011,58629,1},{60016,58624,1}, {60021,58624,1},{60019,58621,1},{60016,58621,1},{60011,58624,1},{60013,58618,1}, {60021,58611,1},{60023,58613,1},{60021,58609,1},{60019,58593,1},{60019,58608,1}, {60013,58609,1},{60013,58603,1},{60011,58599,1},{60011,58593,1},{60013,58591,1}, {60013,58588,1},{60008,58591,1},{60006,58591,1},{60008,58594,1},{60006,58601,1}, {60004,58601,1},{60004,58608,1},{60003,58604,1},{59999,58606,1},{59999,58611,1}, {59998,58613,1},{59993,58606,1},{59993,58611,1},{59991,58613,1},{59993,58616,1}, {59991,58623,1},{59989,58619,1},{59988,58621,1},{59984,58619,1},{59989,58613,1}, {59988,58606,1},{59988,58603,1},{59998,58599,1},{59988,58596,1},{59986,58593,1}, {59994,58593,1},{59994,58584,1},{59996,58584,1},{59999,58594,1},{60001,58596,1}, {60001,58588,1},{60003,58589,1},{60003,58588,1},{59999,58584,1},{59998,58579,1}, {60001,58574,1},{60001,58576,1},{60003,58574,1},{60006,58558,1},{60006,58566,1}, {60008,58563,1},{60008,58566,1},{60009,58578,1},{60009,58576,1},{60009,58569,1}, {60011,58569,1},{60018,58586,1},{60018,58581,1},{60014,58574,1},{60016,58569,1}, {60013,58568,1},{60009,58551,1},{60013,58549,1},{60013,58544,1},{60014,58553,1}, {60016,58544,1},{60019,58551,1},{60019,58546,1},{60019,58533,1},{60023,58534,1}, {60024,58538,1},{60023,58541,1},{60028,58541,1},{60029,58544,1},{60029,58554,1}, {60031,58559,1},{60029,58568,1},{60031,58571,1},{60033,58578,1},{60023,58579,1}, {60021,58578,1},{60021,58581,1},{60021,58583,1},{60033,58581,1},{60034,58593,1}, {60031,58593,1},{60031,58598,1},{60031,58603,1},{60033,58603,1},{60034,58598,1}, {60038,58606,1},{60036,58611,1},{60034,58618,1},{60036,58618,1},{60036,58614,1}, {60038,58616,1},{60038,58626,1},{60036,58631,1},{60038,58639,1},{60038,58653,1}, {60041,58663,1},{60043,58684,1},{60041,58694,1},{60039,58698,1},{60048,58673,129}, {60048,58669,1},{60053,58661,1},{60058,58643,1},{60058,58639,1},{60056,58639,1}, {60056,58646,1},{60049,58654,1},{60046,58663,1},{60043,58656,1},{60041,58629,1}, {60043,58618,1},{60049,58588,1},{60054,58569,1},{60058,58569,1},{60059,58574,1}, {60066,58573,1},{60059,58569,1},{60066,58564,1},{60056,58564,1},{60056,58559,1}, {60063,58561,1},{60064,58558,1},{60054,58556,1},{60054,58544,1},{60061,58539,1}, {60068,58539,1},{60063,58536,1},{60054,58539,1},{60053,58538,1},{60051,58528,1}, {60053,58526,1},{60058,58526,1},{60054,58524,1},{60058,58521,1},{60053,58523,1}, {60051,58518,1},{60051,58508,1},{60053,58504,1},{60058,58504,1},{60061,58511,1}, {60068,58513,1},{60061,58503,1},{60053,58499,1},{60059,58476,1},{60056,58474,1}, {60054,58464,1},{60053,58463,1},{60053,58459,1},{60054,58453,1},{60058,58454,1}, {60061,58471,1},{60066,58483,1},{60071,58489,1},{60073,58489,1},{60073,58481,1}, {60069,58473,1},{60068,58478,1},{60066,58476,1},{60063,58464,1},{60064,58461,1}, {60061,58454,1},{60061,58444,1},{60064,58444,1},{60068,58459,1},{60069,58443,1}, {60068,58441,1},{60064,58443,1},{60058,58433,1},{60059,58431,1},{60066,58436,1}, {60069,58436,1},{60074,58441,1},{60074,58436,1},{60076,58431,1},{60076,58429,1}, {60074,58431,1},{60071,58433,1},{60069,58428,1},{60073,58426,1},{60068,58423,1}, {60066,58418,1},{60068,58414,1},{60069,58406,1},{60071,58406,1},{60073,58416,1}, {60074,58411,1},{60079,58409,1},{60083,58413,1},{60079,58406,1},{60084,58403,1}, {60083,58399,1},{60079,58403,1},{60081,58396,1},{60078,58396,1},{60074,58403,1}, {60076,58398,1},{60074,58396,1},{60071,58394,1},{60073,58391,1},{60071,58391,1}, {60071,58388,1},{60068,58388,1},{60069,58384,1},{60076,58388,1},{60076,58384,1}, {60071,58381,1},{60071,58378,1},{60078,58379,1},{60078,58376,1},{60069,58371,1}, {60073,58368,1},{60076,58371,1},{60076,58361,1},{60074,58361,1},{60073,58354,1}, {60071,58356,1},{60071,58349,1},{60071,58346,1},{60071,58341,1},{60074,58339,1}, {60076,58346,1},{60078,58348,1},{60078,58343,1},{60078,58341,1},{60081,58343,1}, {60079,58336,1},{60083,58338,1},{60084,58334,1},{60084,58343,1},{60088,58336,1}, {60091,58336,1},{60089,58344,1},{60088,58344,1},{60086,58349,1},{60081,58353,1}, {60078,58369,1},{60084,58361,1},{60081,58373,1},{60081,58378,1},{60084,58371,1}, {60086,58368,1},{60088,58368,1},{60089,58364,1},{60088,58359,1},{60089,58353,1}, {60091,58351,1},{60091,58353,1},{60094,58351,1},{60094,58356,1},{60096,58356,1}, {60096,58359,1},{60096,58364,1},{60093,58363,1},{60086,58374,1},{60086,58386,1}, {60088,58386,1},{60089,58376,1},{60094,58374,1},{60094,58378,1},{60091,58384,1}, {60094,58383,1},{60094,58386,1},{60093,58391,1},{60093,58396,1},{60089,58398,1}, {60093,58403,1},{60094,58403,1},{60094,58398,1},{60096,58393,1},{60099,58401,1}, {60093,58419,1},{60086,58423,1},{60086,58428,1},{60093,58423,1},{60091,58434,1}, {60089,58439,1},{60093,58439,1},{60094,58443,1},{60101,58441,1},{60104,58454,1}, {60103,58459,1},{60101,58463,1},{60101,58468,1},{60103,58469,1},{60101,58474,1}, {60093,58464,1},{60088,58464,1},{60079,58458,1},{60076,58459,1},{60081,58463,1}, {60076,58468,1},{60076,58473,1},{60084,58466,1},{60091,58469,1},{60098,58478,1}, {60088,58491,1},{60084,58501,1},{60079,58508,1},{60081,58513,1},{60083,58508,1}, {60086,58506,1},{60081,58523,1},{60086,58513,1},{60094,58491,1},{60098,58489,1}, {60099,58484,1},{60103,58486,1},{60108,58479,1},{60109,58466,1},{60109,58454,1}, {60111,58449,1},{60118,58446,1},{60116,58454,1},{60121,58446,1},{60124,58443,1}, {60111,58476,1},{60103,58503,1},{60101,58508,1},{60099,58513,1},{60096,58514,1}, {60093,58521,1},{60098,58521,1},{60098,58528,1},{60099,58529,1},{60101,58519,1}, {60104,58516,1},{60106,58523,1},{60108,58523,1},{60111,58531,1},{60106,58539,1}, {60103,58538,1},{60099,58541,1},{60098,58539,1},{60098,58544,1},{60094,58546,1}, {60093,58549,1},{60086,58548,1},{60089,58554,1},{60086,58558,1},{60083,58556,1}, {60081,58559,1},{60088,58563,1},{60094,58554,1},{60098,58556,1},{60099,58551,1}, {60103,58551,1},{60104,58548,1},{60108,58549,1},{60108,58556,1},{60104,58568,1}, {60091,58581,1},{60093,58584,1},{60099,58579,1},{60103,58581,1},{60099,58591,1}, {60091,58613,1},{60089,58613,1},{60083,58606,1},{60081,58599,1},{60074,58594,1}, {60068,58598,1},{60074,58598,1},{60076,58604,1},{60081,58608,1},{60083,58613,1}, {60081,58616,1},{60078,58618,1},{60081,58621,1},{60086,58618,1},{60091,58621,1}, {60091,58629,1},{60088,58634,1},{60089,58636,1},{60093,58638,1},{60094,58636,1}, {60098,58628,1},{60098,58618,1},{60106,58603,1},{60109,58584,1},{60114,58578,1}, {60119,58548,1},{60123,58543,1},{60128,58529,1},{60138,58526,1},{60143,58521,1}, {60148,58521,1},{60153,58518,1},{60158,58518,1},{60161,58519,1},{60164,58533,1}, {60171,58544,1},{60171,58559,1},{60186,58601,1},{60189,58603,1},{60199,58601,1}, {60203,58598,1},{60204,58579,1},{60199,58543,1},{60196,58534,1},{60193,58531,1}, {60191,58523,1},{60189,58514,1},{60193,58506,1},{60196,58503,1},{60199,58493,1}, {60201,58491,1},{60213,58488,1},{60221,58491,1},{60234,58491,1},{60241,58501,1}, {60236,58501,1},{60231,58503,1},{60234,58518,1},{60238,58523,1},{60246,58526,1}, {60248,58526,1},{60249,58514,1},{60246,58506,1},{60253,58509,1},{60256,58509,1}, {60258,58504,1},{60259,58494,1},{60263,58499,1},{60264,58519,1},{60263,58524,1}, {60259,58528,1},{60253,58536,1},{60253,58539,1},{60254,58544,1},{60258,58551,1}, {60259,58559,1},{60263,58564,1},{60273,58574,1},{60283,58574,1},{60286,58579,1}, {60286,58584,1},{60291,58594,1},{60271,58613,1},{60268,58621,1},{60268,58628,1}, {60271,58633,1},{60271,58641,1},{60278,58654,1},{60281,58658,1},{60271,58674,1}, {60158,58318,129},{60156,58323,1},{60153,58313,1},{60149,58314,1},{60148,58311,1}, {60149,58306,1},{60153,58301,1},{60151,58298,1},{60149,58301,1},{60143,58301,1}, {60146,58298,1},{60146,58294,1},{60141,58299,1},{60139,58294,1},{60136,58304,1}, {60131,58304,1},{60133,58291,1},{60136,58291,1},{60138,58284,1},{60134,58283,1}, {60133,58284,1},{60126,58283,1},{60126,58278,1},{60129,58274,1},{60134,58273,1}, {60131,58271,1},{60128,58266,1},{60126,58264,1},{60126,58259,1},{60126,58256,1}, {60123,58253,1},{60124,58244,1},{60126,58248,1},{60128,58248,1},{60126,58244,1}, {60128,58243,1},{60126,58236,1},{60128,58233,1},{60129,58236,1},{60129,58256,1}, {60133,58248,1},{60133,58259,1},{60136,58254,1},{60138,58258,1},{60141,58251,1}, {60143,58258,1},{60148,58261,1},{60148,58268,1},{60149,58271,1},{60148,58261,1}, {60149,58259,1},{60149,58263,1},{60153,58263,1},{60149,58258,1},{60151,58256,1}, {60153,58258,1},{60154,58256,1},{60149,58244,1},{60149,58241,1},{60151,58241,1}, {60149,58236,1},{60149,58234,1},{60154,58234,1},{60154,58231,1},{60151,58229,1}, {60143,58226,1},{60136,58233,1},{60133,58226,1},{60134,58223,1},{60138,58214,1}, {60138,58208,1},{60139,58203,1},{60143,58211,1},{60144,58209,1},{60146,58213,1}, {60148,58208,1},{60151,58208,1},{60153,58204,1},{60156,58211,1},{60159,58209,1}, {60161,58204,1},{60163,58211,1},{60166,58211,1},{60164,58199,1},{60161,58191,1}, {60159,58178,1},{60161,58178,1},{60164,58186,1},{60166,58188,1},{60169,58186,1}, {60169,58176,1},{60171,58174,1},{60176,58176,1},{60178,58179,1},{60176,58186,1}, {60178,58189,1},{60179,58193,1},{60178,58201,1},{60171,58208,1},{60168,58219,1}, {60169,58241,1},{60173,58239,1},{60171,58234,1},{60171,58228,1},{60178,58233,1}, {60176,58228,1},{60171,58224,1},{60173,58209,1},{60176,58206,1},{60179,58209,1}, {60181,58201,1},{60188,58193,1},{60189,58194,1},{60188,58203,1},{60184,58209,1}, {60186,58213,1},{60186,58221,1},{60183,58228,1},{60189,58223,1},{60191,58223,1}, {60193,58219,1},{60194,58219,1},{60196,58229,1},{60198,58233,1},{60196,58233,1}, {60193,58231,1},{60186,58236,1},{60191,58238,1},{60194,58234,1},{60194,58239,1}, {60191,58243,1},{60193,58244,1},{60183,58243,1},{60184,58246,1},{60183,58249,1}, {60173,58244,1},{60168,58248,1},{60183,58256,1},{60189,58249,1},{60191,58251,1}, {60184,58263,1},{60181,58263,1},{60176,58269,1},{60168,58268,1},{60168,58273,1}, {60169,58273,1},{60178,58273,1},{60183,58269,1},{60176,58281,1},{60179,58288,1}, {60178,58293,1},{60174,58291,1},{60173,58296,1},{60171,58296,1},{60169,58291,1}, {60168,58288,1},{60164,58293,1},{60161,58293,1},{60166,58298,1},{60164,58304,1}, {60163,58313,1},{60159,58308,1},{60158,58318,1},{61198,58146,129},{61199,58144,1}, {61201,58139,1},{61199,58124,1},{61203,58119,1},{61204,58114,1},{61204,58108,1}, {61208,58104,1},{61208,58099,1},{61211,58096,1},{61219,58099,1},{61223,58104,1}, {61224,58103,1},{61228,58103,1},{61233,58113,1},{61236,58111,1},{61239,58114,1}, {61244,58113,1},{61246,58116,1},{61248,58118,1},{61258,58116,1},{61264,58118,1}, {61269,58121,1},{61278,58121,1},{61284,58119,1},{61286,58114,1},{61301,58119,1}, {61313,58119,1},{61321,58128,1},{61329,58131,1},{61339,58129,1},{61343,58131,1}, {61344,58134,1},{61348,58136,1},{61349,58133,1},{61351,58129,1},{61354,58129,1}, {61359,58133,1},{61354,58141,1},{61358,58144,1},{61358,58146,1},{61354,58148,1}, {61351,58146,1},{61354,58138,1},{61353,58134,1},{61349,58138,1},{61346,58149,1}, {61349,58154,1},{61346,58159,1},{61351,58158,1},{61354,58168,1},{61353,58171,1}, {61356,58174,1},{61354,58179,1},{61353,58183,1},{61351,58186,1},{61349,58181,1}, {61343,58183,1},{61343,58179,1},{61341,58178,1},{61339,58183,1},{61331,58191,1}, {61328,58191,1},{61324,58186,1},{61323,58186,1},{61316,58198,1},{61314,58196,1}, {61311,58199,1},{61306,58198,1},{61304,58196,1},{61306,58193,1},{61304,58189,1}, {61303,58188,1},{61304,58179,1},{61299,58169,1},{61289,58166,1},{61284,58174,1}, {61281,58164,1},{61284,58158,1},{61289,58159,1},{61288,58156,1},{61284,58154,1}, {61281,58156,1},{61276,58154,1},{61274,58156,1},{61271,58161,1},{61269,58166,1}, {61268,58166,1},{61266,58171,1},{61263,58173,1},{61256,58186,1},{61248,58186,1}, {61249,58166,1},{61246,58171,1},{61243,58171,1},{61239,58174,1},{61239,58179,1}, {61234,58179,1},{61231,58184,1},{61233,58176,1},{61231,58176,1},{61228,58186,1}, {61224,58188,1},{61223,58184,1},{61224,58179,1},{61224,58174,1},{61223,58171,1}, {61221,58163,1},{61224,58163,1},{61224,58159,1},{61223,58158,1},{61216,58159,1}, {61211,58164,1},{61208,58166,1},{61206,58166,1},{61206,58163,1},{61203,58166,1}, {61199,58164,1},{61199,58158,1},{61201,58156,1},{61199,58154,1},{61198,58154,1}, {61196,58149,1},{61198,58146,1},{60271,58674,129},{60253,58693,1},{60243,58706,1}, {60224,58714,1},{60224,58711,1},{60234,58708,1},{60236,58704,1},{60234,58696,1}, {60228,58689,1},{60224,58683,1},{60219,58679,1},{60213,58681,1},{60209,58686,1}, {60206,58694,1},{60206,58719,1},{60198,58726,1},{60184,58731,1},{60176,58738,1}, {60161,58763,1},{60158,58764,1},{60158,58769,1},{60153,58778,1},{60144,58779,1}, {60133,58799,1},{60121,58831,1},{60114,58844,1},{60113,58851,1},{60108,58863,1}, {60094,58881,1},{60089,58893,1},{60089,58898,1},{60083,58913,1},{60073,58948,1}, {60071,58953,1},{60071,58961,1},{60069,58966,1},{60073,59004,1},{60073,59014,1}, {60071,59023,1},{60068,59016,1},{60059,59014,1},{60056,59011,1},{60054,59013,1}, {60049,59004,1},{60046,59004,1},{60043,59001,1},{60043,58996,1},{60046,58996,1}, {60048,58989,1},{60043,58988,1},{60043,58974,1},{60039,58971,1},{60039,58966,1}, {60044,58964,1},{60046,58959,1},{60046,58939,1},{60044,58941,1},{60043,58939,1}, {60041,58934,1},{60038,58924,1},{60038,58899,1},{60033,58896,1},{60031,58891,1}, {60033,58871,1},{60041,58856,1},{60043,58844,1},{60046,58834,1},{60048,58791,1}, {60049,58783,1},{60048,58768,1},{60048,58751,1},{60054,58713,1},{60056,58706,1}, {60051,58704,1},{60051,58684,1},{60051,58679,1},{60058,58673,1},{65509,60696,129}, {65506,60699,1},{65499,60699,1},{65498,60698,1},{65493,60694,1},{65483,60689,1}, {65476,60689,1},{65471,60688,1},{65463,60686,1},{65463,60684,1},{65468,60679,1}, {65459,60684,1},{65456,60683,1},{65453,60684,1},{65448,60683,1},{65444,60681,1}, {65441,60674,1},{65438,60673,1},{65436,60669,1},{65434,60669,1},{65434,60673,1}, {65431,60671,1},{65429,60674,1},{65424,60668,1},{65423,60663,1},{65416,60654,1}, {65416,60651,1},{65423,60644,1},{65418,60646,1},{65414,60653,1},{65411,60653,1}, {65411,60649,1},{65409,60656,1},{65401,60656,1},{65394,60653,1},{65396,60649,1}, {65406,60643,1},{65406,60638,1},{65406,60641,1},{65404,60643,1},{65403,60638,1}, {65401,60639,1},{65398,60638,1},{65401,60641,1},{65398,60644,1},{65391,60653,1}, {65389,60646,1},{65386,60644,1},{65384,60634,1},{65383,60631,1},{65386,60624,1}, {65396,60621,1},{65398,60616,1},{65396,60616,1},{65394,60618,1},{65391,60618,1}, {65383,60614,1},{65379,60618,1},{65378,60613,1},{65378,60616,1},{65376,60618,1}, {65378,60619,1},{65376,60619,1},{65374,60618,1},{65374,60613,1},{65374,60609,1}, {65379,60606,1},{65381,60603,1},{65381,60601,1},{65379,60601,1},{65379,60599,1}, {65383,60596,1},{65388,60598,1},{65383,60594,1},{65379,60588,1},{65386,60586,1}, {65386,60583,1},{65383,60586,1},{65378,60586,1},{65378,60584,1},{65374,60584,1}, {65371,60581,1},{65369,60581,1},{65368,60579,1},{65368,60581,1},{65364,60581,1}, {65363,60574,1},{65358,60568,1},{65361,60564,1},{65363,60564,1},{65371,60561,1}, {65378,60563,1},{65371,60559,1},{65363,60563,1},{65359,60563,1},{65356,60559,1}, {65354,60554,1},{65361,60539,1},{65361,60534,1},{65364,60533,1},{65369,60533,1}, {65371,60531,1},{65369,60529,1},{65364,60531,1},{65359,60526,1},{65358,60521,1}, {65361,60518,1},{65363,60513,1},{65373,60513,1},{65374,60509,1},{65376,60508,1}, {65379,60513,1},{65384,60509,1},{65388,60509,1},{65384,60508,1},{65379,60511,1}, {65378,60508,1},{65376,60508,1},{65373,60511,1},{65363,60509,1},{65371,60506,1}, {65359,60508,1},{65358,60503,1},{65359,60499,1},{65356,60506,1},{65354,60506,1}, {65353,60498,1},{65353,60491,1},{65356,60478,1},{65361,60476,1},{65363,60478,1}, {65363,60479,1},{65373,60473,1},{65381,60463,1},{65393,60456,1},{65398,60458,1}, {65399,60456,1},{65403,60454,1},{65416,60459,1},{65421,60458,1},{65424,60456,1}, {65426,60456,1},{65424,60463,1},{65418,60479,1},{65419,60479,1},{65423,60474,1}, {65426,60479,1},{65426,60484,1},{65429,60481,1},{65433,60483,1},{65433,60488,1}, {65434,60484,1},{65431,60481,1},{65429,60479,1},{65429,60474,1},{65426,60471,1}, {65426,60464,1},{65428,60461,1},{65431,60458,1},{65438,60456,1},{65451,60458,1}, {65451,60459,1},{65456,60459,1},{65454,60463,1},{65456,60461,1},{65458,60458,1}, {65459,60458,1},{65464,60459,1},{65466,60458,1},{65469,60458,1},{65479,60463,1}, {65479,60464,1},{65471,60468,1},{65471,60473,1},{65468,60476,1},{65468,60483,1}, {65471,60476,1},{65473,60468,1},{65486,60463,1},{65498,60466,1},{65508,60469,1}, {65516,60478,1},{65516,60483,1},{65519,60488,1},{65519,60496,1},{65526,60499,1}, {65526,60501,1},{65523,60513,1},{65523,60523,1},{65516,60553,1},{65516,60559,1}, {65511,60571,1},{65513,60578,1},{65511,60584,1},{65514,60593,1},{65509,60596,1}, {65511,60598,1},{65514,60596,1},{65516,60596,1},{65519,60603,1},{65521,60611,1}, {65523,60616,1},{65521,60619,1},{65521,60621,1},{65519,60624,1},{65519,60634,1}, {65521,60636,1},{65514,60646,1},{65516,60654,1},{65514,60661,1},{65511,60668,1}, {65513,60674,1},{65509,60696,1},{1082,59428,129},{1083,59434,1},{1083,59438,1}, {1083,59443,1},{1082,59446,1},{1075,59441,1},{1070,59436,1},{1070,59434,1}, {1067,59433,1},{1053,59434,1},{1052,59433,1},{1048,59431,1},{1038,59434,1}, {1035,59436,1},{1033,59439,1},{1030,59436,1},{1013,59436,1},{1013,59433,1}, {1008,59424,1},{1007,59416,1},{1008,59409,1},{1007,59403,1},{1007,59381,1}, {1005,59373,1},{1008,59368,1},{1007,59353,1},{1003,59344,1},{1005,59344,1}, {1007,59344,1},{1010,59353,1},{1013,59354,1},{1017,59366,1},{1020,59373,1}, {1025,59373,1},{1023,59383,1},{1025,59386,1},{1028,59391,1},{1033,59389,1}, {1042,59388,1},{1053,59391,1},{1060,59389,1},{1063,59388,1},{1067,59381,1}, {1068,59376,1},{1068,59371,1},{1072,59369,1},{1073,59376,1},{1075,59388,1}, {1077,59389,1},{1075,59391,1},{1077,59393,1},{1075,59393,1},{1077,59394,1}, {1077,59396,1},{1080,59399,1},{1080,59401,1},{1078,59416,1},{1080,59419,1}, {1082,59428,1},{1135,59483,129},{1127,59483,1},{1125,59478,1},{1120,59473,1}, {1120,59468,1},{1118,59464,1},{1118,59463,1},{1113,59456,1},{1115,59451,1}, {1118,59451,1},{1118,59454,1},{1130,59468,1},{1133,59478,1},{1132,59479,1}, {1133,59481,1},{1135,59483,1},{60334,59433,129},{60336,59434,1},{60333,59439,1}, {60333,59448,1},{60329,59448,1},{60329,59449,1},{60333,59449,1},{60334,59461,1}, {60336,59461,1},{60336,59454,1},{60341,59453,1},{60339,59466,1},{60338,59468,1}, {60339,59469,1},{60338,59471,1},{60339,59473,1},{60338,59479,1},{60336,59481,1}, {60336,59483,1},{60338,59483,1},{60339,59491,1},{60344,59496,1},{60341,59484,1}, {60343,59476,1},{60343,59484,1},{60344,59489,1},{60348,59491,1},{60354,59491,1}, {60358,59493,1},{60359,59498,1},{60358,59498,1},{60356,59496,1},{60356,59499,1}, {60353,59498,1},{60349,59501,1},{60353,59503,1},{60354,59506,1},{60356,59504,1}, {60361,59506,1},{60361,59509,1},{60358,59511,1},{60358,59514,1},{60359,59518,1}, {60364,59518,1},{60366,59513,1},{60364,59508,1},{60364,59501,1},{60361,59499,1}, {60361,59488,1},{60359,59484,1},{60356,59481,1},{60359,59479,1},{60364,59471,1}, {60369,59473,1},{60366,59488,1},{60369,59501,1},{60368,59508,1},{60371,59513,1}, {60366,59523,1},{60366,59529,1},{60369,59526,1},{60369,59519,1},{60376,59508,1}, {60379,59504,1},{60383,59486,1},{60386,59484,1},{60388,59486,1},{60386,59498,1}, {60388,59498,1},{60391,59491,1},{60393,59481,1},{60394,59474,1},{60401,59471,1}, {60401,59478,1},{60398,59489,1},{60388,59511,1},{60386,59523,1},{60389,59538,1}, {60391,59526,1},{60398,59534,1},{60394,59538,1},{60399,59546,1},{60398,59549,1}, {60396,59548,1},{60394,59559,1},{60393,59553,1},{60391,59561,1},{60393,59578,1}, {60396,59586,1},{60393,59583,1},{60391,59578,1},{60389,59584,1},{60391,59591,1}, {60393,59598,1},{60396,59591,1},{60401,59591,1},{60401,59594,1},{60403,59594,1}, {60396,59614,1},{60394,59608,1},{60391,59608,1},{60391,59613,1},{60386,59604,1}, {60386,59599,1},{60383,59598,1},{60383,59601,1},{60376,59596,1},{60374,59591,1}, {60374,59589,1},{60376,59591,1},{60376,59589,1},{60371,59579,1},{60369,59581,1}, {60363,59574,1},{60356,59563,1},{60341,59549,1},{60336,59538,1},{60339,59536,1}, {60339,59531,1},{60343,59529,1},{60341,59528,1},{60336,59528,1},{60336,59514,1}, {60339,59518,1},{60336,59509,1},{60334,59508,1},{60328,59509,1},{60319,59499,1}, {60319,59496,1},{60323,59494,1},{60323,59493,1},{60319,59491,1},{60319,59489,1}, {60324,59483,1},{60324,59481,1},{60316,59486,1},{60313,59478,1},{60313,59473,1}, {60314,59469,1},{60316,59468,1},{60316,59473,1},{60321,59466,1},{60324,59468,1}, {60324,59466,1},{60324,59453,1},{60323,59459,1},{60318,59463,1},{60319,59456,1}, {60324,59449,1},{60324,59444,1},{60329,59438,1},{60329,59434,1},{60334,59433,1}, {60324,59564,129},{60326,59564,1},{60324,59571,1},{60324,59574,1},{60328,59573,1}, {60329,59579,1},{60334,59573,1},{60334,59578,1},{60334,59579,1},{60338,59578,1}, {60339,59584,1},{60341,59578,1},{60343,59576,1},{60343,59588,1},{60343,59589,1}, {60348,59584,1},{60349,59589,1},{60353,59588,1},{60353,59593,1},{60354,59596,1}, {60353,59599,1},{60358,59601,1},{60356,59604,1},{60358,59608,1},{60361,59606,1}, {60364,59613,1},{60368,59629,1},{60364,59631,1},{60361,59633,1},{60354,59631,1}, {60356,59638,1},{60364,59636,1},{60366,59633,1},{60368,59634,1},{60371,59638,1}, {60373,59628,1},{60378,59619,1},{60383,59624,1},{60386,59626,1},{60378,59631,1}, {60379,59634,1},{60384,59631,1},{60386,59638,1},{60389,59629,1},{60389,59624,1}, {60394,59626,1},{60394,59633,1},{60394,59636,1},{60398,59638,1},{60398,59649,1}, {60411,59641,1},{60408,59648,1},{60403,59666,1},{60401,59674,1},{60403,59674,1}, {60404,59676,1},{60406,59681,1},{60406,59689,1},{60403,59696,1},{60399,59701,1}, {60394,59704,1},{60391,59699,1},{60391,59693,1},{60396,59688,1},{60394,59683,1}, {60393,59681,1},{60391,59686,1},{60386,59684,1},{60388,59693,1},{60386,59694,1}, {60381,59694,1},{60383,59696,1},{60379,59699,1},{60381,59704,1},{60379,59708,1}, {60376,59708,1},{60371,59713,1},{60371,59714,1},{60376,59711,1},{60376,59719,1}, {60379,59713,1},{60383,59714,1},{60383,59708,1},{60388,59708,1},{60384,59703,1}, {60386,59701,1},{60394,59708,1},{60396,59714,1},{60398,59744,1},{60396,59749,1}, {60393,59749,1},{60389,59753,1},{60386,59759,1},{60384,59756,1},{60381,59759,1}, {60383,59743,1},{60386,59733,1},{60383,59733,1},{60384,59728,1},{60383,59724,1}, {60381,59721,1},{60376,59734,1},{60374,59758,1},{60373,59759,1},{60371,59759,1}, {60369,59748,1},{60368,59746,1},{60366,59751,1},{60368,59759,1},{60366,59763,1}, {60364,59753,1},{60363,59739,1},{60363,59741,1},{60361,59733,1},{60361,59709,1}, {60358,59714,1},{60358,59721,1},{60356,59711,1},{60353,59701,1},{60353,59708,1}, {60354,59713,1},{60354,59718,1},{60346,59694,1},{60348,59686,1},{60346,59676,1}, {60348,59673,1},{60348,59658,1},{60349,59656,1},{60353,59644,1},{60356,59643,1}, {60351,59639,1},{60344,59656,1},{60343,59656,1},{60343,59654,1},{60341,59656,1}, {60339,59673,1},{60336,59673,1},{60336,59676,1},{60333,59669,1},{60324,59673,1}, {60324,59668,1},{60326,59668,1},{60331,59663,1},{60333,59658,1},{60331,59654,1}, {60331,59651,1},{60329,59651,1},{60326,59643,1},{60329,59641,1},{60329,59639,1}, {60329,59638,1},{60333,59636,1},{60334,59634,1},{60333,59631,1},{60334,59629,1}, {60334,59626,1},{60338,59621,1},{60334,59616,1},{60338,59611,1},{60336,59606,1}, {60334,59606,1},{60333,59616,1},{60329,59618,1},{60329,59624,1},{60328,59621,1}, {60326,59628,1},{60321,59621,1},{60321,59623,1},{60321,59633,1},{60318,59626,1}, {60316,59628,1},{60316,59631,1},{60313,59629,1},{60316,59619,1},{60314,59613,1}, {60319,59611,1},{60324,59598,1},{60321,59596,1},{60323,59593,1},{60321,59591,1}, {60319,59591,1},{60318,59594,1},{60314,59593,1},{60311,59601,1},{60306,59599,1}, {60303,59603,1},{60301,59603,1},{60303,59599,1},{60306,59594,1},{60306,59588,1}, {60311,59584,1},{60313,59578,1},{60316,59579,1},{60316,59574,1},{60319,59573,1}, {60323,59564,1},{60326,59564,1},{10,56386,129},{5,56386,1},{0,56376,1}, {65534,56376,1},{65531,56379,1},{65534,56388,1},{65533,56394,1},{65521,56396,1}, {65518,56398,1},{65516,56396,1},{65513,56394,1},{65511,56398,1},{65506,56399,1}, {65503,56403,1},{65498,56413,1},{65491,56413,1},{65481,56421,1},{65481,56424,1}, {65478,56428,1},{65474,56428,1},{65474,56424,1},{65473,56423,1},{65471,56423,1}, {65468,56421,1},{65469,56413,1},{65468,56404,1},{65466,56404,1},{65458,56394,1}, {65453,56388,1},{65449,56386,1},{65444,56388,1},{65441,56391,1},{65436,56393,1}, {65434,56394,1},{65433,56398,1},{65434,56404,1},{65433,56416,1},{65434,56421,1}, {65434,56428,1},{65439,56436,1},{65439,56443,1},{65444,56448,1},{65444,56451,1}, {65449,56449,1},{65458,56453,1},{65459,56456,1},{65461,56458,1},{65466,56451,1}, {65469,56451,1},{65471,56448,1},{65474,56444,1},{65474,56439,1},{65479,56441,1}, {65478,56438,1},{65484,56441,1},{65489,56439,1},{65493,56441,1},{65501,56431,1}, {65506,56423,1},{65508,56424,1},{65513,56419,1},{65521,56416,1},{65534,56416,1}, {2,56408,1},{5,56408,1},{8,56404,1},{13,56404,1},{15,56399,1},{13,56398,1}, {10,56393,1},{10,56386,1},{65508,56369,129},{65498,56371,1},{65489,56374,1}, {65489,56379,1},{65486,56386,1},{65489,56396,1},{65491,56396,1},{65496,56396,1}, {65503,56396,1},{65508,56394,1},{65511,56389,1},{65508,56379,1},{65508,56369,1}, {63476,60876,130},{63478,60876,2},{63486,60866,2},{63486,60856,2},{63489,60854,2}, {63488,60851,2},{63484,60853,2},{63484,60851,2},{63483,60856,2},{63481,60856,2}, {63479,60856,2},{63481,60854,2},{63481,60849,2},{63484,60849,2},{63484,60851,2}, {63488,60849,2},{63486,60848,2},{63488,60849,2},{63489,60848,2},{63491,60853,2}, {63493,60853,2},{63494,60849,2},{63493,60849,2},{63493,60844,2},{63496,60843,2}, {63494,60841,2},{63499,60843,2},{63498,60841,2},{63498,60839,2},{63494,60839,2}, {63494,60838,2},{63501,60836,2},{63499,60834,2},{63504,60834,2},{63504,60831,2}, {63509,60829,2},{63511,60829,2},{63509,60831,2},{63506,60831,2},{63504,60834,2}, {63508,60839,2},{63509,60839,2},{63509,60841,2},{63508,60841,2},{63504,60838,2}, {63504,60839,2},{63504,60843,2},{63508,60846,2},{63504,60846,2},{63503,60839,2}, {63499,60839,2},{63503,60843,2},{63501,60843,2},{63503,60844,2},{63499,60844,2}, {63499,60848,2},{63503,60849,2},{63499,60849,2},{63498,60846,2},{63496,60846,2}, {63496,60853,2},{63499,60854,2},{63496,60854,2},{63496,60858,2},{63494,60856,2}, {63494,60854,2},{63489,60856,2},{63488,60863,2},{63489,60868,2},{63486,60868,2}, {63486,60871,2},{63483,60871,2},{63481,60876,2},{63481,60881,2},{63479,60878,2}, {63478,60878,2},{63474,60876,2},{63476,60876,2},{63381,60981,130},{63383,60983,2}, {63383,60984,2},{63389,60976,2},{63391,60971,2},{63389,60969,2},{63384,60968,2}, {63389,60969,2},{63391,60968,2},{63391,60963,2},{63393,60963,2},{63393,60961,2}, {63389,60958,2},{63394,60958,2},{63394,60954,2},{63383,60949,2},{63388,60949,2}, {63394,60954,2},{63398,60948,2},{63398,60951,2},{63399,60951,2},{63401,60953,2}, {63401,60951,2},{63403,60953,2},{63406,60951,2},{63408,60946,2},{63406,60944,2}, {63408,60944,2},{63409,60943,2},{63408,60941,2},{63411,60941,2},{63409,60939,2}, {63408,60939,2},{63408,60938,2},{63401,60939,2},{63403,60938,2},{63399,60936,2}, {63396,60938,2},{63396,60934,2},{63393,60936,2},{63393,60934,2},{63394,60933,2}, {63391,60928,2},{63394,60929,2},{63394,60928,2},{63394,60924,2},{63391,60916,2}, {63396,60923,2},{63398,60929,2},{63396,60931,2},{63398,60931,2},{63398,60934,2}, {63401,60933,2},{63403,60936,2},{63404,60929,2},{63403,60929,2},{63404,60928,2}, {63404,60924,2},{63406,60919,2},{63409,60919,2},{63408,60923,2},{63404,60926,2}, {63406,60929,2},{63404,60933,2},{63406,60934,2},{63404,60936,2},{63408,60936,2}, {63409,60936,2},{63411,60929,2},{63413,60939,2},{63419,60939,2},{63421,60939,2}, {63418,60934,2},{63419,60934,2},{63421,60938,2},{63424,60939,2},{63428,60938,2}, {63429,60933,2},{63428,60929,2},{63426,60929,2},{63426,60926,2},{63428,60928,2}, {63429,60929,2},{63434,60918,2},{63436,60919,2},{63433,60926,2},{63434,60929,2}, {63433,60929,2},{63433,60931,2},{63436,60934,2},{63436,60931,2},{63438,60933,2}, {63439,60928,2},{63443,60926,2},{63441,60923,2},{63441,60919,2},{63441,60923,2}, {63444,60924,2},{63444,60928,2},{63448,60928,2},{63449,60931,2},{63453,60929,2}, {63453,60926,2},{63451,60928,2},{63451,60926,2},{63453,60924,2},{63451,60923,2}, {63449,60921,2},{63449,60918,2},{63453,60918,2},{63454,60918,2},{63453,60916,2}, {63459,60921,2},{63459,60919,2},{63461,60919,2},{63463,60923,2},{63464,60921,2}, {63466,60913,2},{63464,60913,2},{63464,60911,2},{63469,60911,2},{63469,60904,2}, {63471,60911,2},{63469,60913,2},{63471,60914,2},{63469,60916,2},{63468,60918,2}, {63469,60921,2},{63466,60924,2},{63468,60926,2},{63469,60926,2},{63471,60928,2}, {63471,60926,2},{63473,60929,2},{63468,60928,2},{63469,60929,2},{63468,60933,2}, {63471,60936,2},{63473,60938,2},{63471,60939,2},{63469,60936,2},{63469,60938,2}, {63468,60941,2},{63466,60939,2},{63464,60939,2},{63464,60941,2},{63464,60946,2}, {63466,60944,2},{63466,60948,2},{63469,60951,2},{63474,60954,2},{63478,60956,2}, {63481,60954,2},{63483,60956,2},{63486,60956,2},{63484,60958,2},{63478,60958,2}, {63479,60961,2},{63478,60961,2},{63478,60958,2},{63474,60958,2},{63476,60961,2}, {63474,60961,2},{63473,60961,2},{63473,60964,2},{63471,60964,2},{63473,60958,2}, {63471,60954,2},{63469,60956,2},{63469,60959,2},{63469,60961,2},{63466,60961,2}, {63466,60963,2},{63464,60964,2},{63464,60966,2},{63466,60966,2},{63464,60969,2}, {63468,60969,2},{63466,60969,2},{63469,60971,2},{63473,60973,2},{63479,60971,2}, {63481,60973,2},{63483,60976,2},{63481,60974,2},{63473,60974,2},{63479,60979,2}, {63476,60979,2},{63478,60983,2},{63469,60974,2},{63468,60973,2},{63469,60979,2}, {63468,60988,2},{63466,60986,2},{63466,60973,2},{63463,60971,2},{63461,60964,2}, {63458,60966,2},{63459,60968,2},{63459,60973,2},{63458,60969,2},{63456,60969,2}, {63454,60971,2},{63454,60969,2},{63451,60968,2},{63449,60969,2},{63449,60971,2}, {63453,60971,2},{63454,60976,2},{63456,60979,2},{63454,60978,2},{63454,60974,2}, {63451,60973,2},{63451,60976,2},{63443,60978,2},{63443,60988,2},{63444,60989,2}, {63441,60986,2},{63441,60984,2},{63439,60984,2},{63436,60988,2},{63434,60996,2}, {63429,60998,2},{63433,61009,2},{63436,61009,2},{63434,61011,2},{63434,61014,2}, {63433,61011,2},{63431,61009,2},{63428,61011,2},{63424,61009,2},{63423,61014,2}, {63424,61014,2},{63428,61013,2},{63429,61014,2},{63424,61016,2},{63421,61011,2}, {63424,61008,2},{63428,61009,2},{63431,61008,2},{63429,60998,2},{63426,60996,2}, {63428,60996,2},{63429,60996,2},{63431,60994,2},{63433,60991,2},{63433,60989,2}, {63434,60986,2},{63434,60988,2},{63436,60984,2},{63436,60983,2},{63433,60984,2}, {63434,60983,2},{63433,60983,2},{63429,60981,2},{63426,60984,2},{63428,60979,2}, {63434,60981,2},{63434,60978,2},{63436,60983,2},{63438,60983,2},{63441,60983,2}, {63441,60976,2},{63446,60974,2},{63448,60971,2},{63448,60968,2},{63446,60966,2}, {63454,60968,2},{63454,60964,2},{63459,60963,2},{63459,60961,2},{63463,60959,2}, {63463,60956,2},{63469,60953,2},{63468,60951,2},{63464,60949,2},{63464,60951,2}, {63463,60946,2},{63461,60953,2},{63458,60949,2},{63461,60949,2},{63461,60948,2}, {63459,60946,2},{63461,60943,2},{63456,60944,2},{63458,60943,2},{63463,60941,2}, {63461,60939,2},{63458,60939,2},{63461,60938,2},{63459,60936,2},{63461,60936,2}, {63461,60934,2},{63466,60938,2},{63469,60936,2},{63466,60933,2},{63466,60928,2}, {63464,60931,2},{63464,60926,2},{63463,60928,2},{63463,60924,2},{63459,60928,2}, {63459,60924,2},{63458,60926,2},{63458,60924,2},{63453,60919,2},{63456,60926,2}, {63453,60931,2},{63448,60931,2},{63446,60934,2},{63444,60934,2},{63444,60938,2}, {63444,60934,2},{63446,60931,2},{63444,60928,2},{63441,60931,2},{63443,60933,2}, {63439,60934,2},{63441,60936,2},{63436,60938,2},{63438,60939,2},{63434,60936,2}, {63434,60938,2},{63433,60934,2},{63431,60934,2},{63431,60939,2},{63431,60941,2}, {63436,60946,2},{63431,60959,2},{63429,60959,2},{63429,60958,2},{63429,60961,2}, {63428,60961,2},{63429,60963,2},{63428,60963,2},{63428,60961,2},{63429,60958,2}, {63429,60953,2},{63428,60954,2},{63426,60953,2},{63429,60951,2},{63429,60949,2}, {63431,60949,2},{63431,60943,2},{63429,60943,2},{63429,60944,2},{63428,60946,2}, {63428,60941,2},{63423,60939,2},{63421,60941,2},{63421,60946,2},{63418,60946,2}, {63418,60948,2},{63419,60943,2},{63418,60943,2},{63414,60941,2},{63413,60946,2}, {63413,60944,2},{63408,60953,2},{63404,60954,2},{63406,60956,2},{63404,60958,2}, {63408,60959,2},{63406,60961,2},{63404,60959,2},{63403,60954,2},{63398,60953,2}, {63398,60956,2},{63396,60956,2},{63394,60961,2},{63394,60963,2},{63393,60964,2}, {63394,60968,2},{63391,60969,2},{63393,60971,2},{63393,60974,2},{63391,60976,2}, {63393,60981,2},{63389,60978,2},{63386,60983,2},{63383,60986,2},{63383,60983,2}, {63379,60983,2},{63381,60981,2},{63631,61024,130},{63636,61024,2},{63638,61023,2}, {63639,61024,2},{63643,61023,2},{63644,61024,2},{63646,61018,2},{63641,61019,2}, {63639,61019,2},{63643,61018,2},{63638,61014,2},{63639,61014,2},{63643,61014,2}, {63641,61013,2},{63644,61011,2},{63639,61006,2},{63636,61003,2},{63636,61001,2}, {63636,60999,2},{63633,60994,2},{63634,60993,2},{63634,60994,2},{63639,60999,2}, {63639,61004,2},{63641,60999,2},{63641,60994,2},{63643,60993,2},{63641,60996,2}, {63643,60998,2},{63644,60998,2},{63643,61001,2},{63646,60999,2},{63643,61003,2}, {63641,61004,2},{63641,61006,2},{63644,61008,2},{63643,61009,2},{63646,61009,2}, {63646,61011,2},{63643,61016,2},{63646,61014,2},{63649,61016,2},{63649,61018,2}, {63654,61018,2},{63658,61014,2},{63663,61016,2},{63666,61014,2},{63664,61011,2}, {63661,61013,2},{63661,61011,2},{63659,61011,2},{63656,61008,2},{63656,61009,2}, {63654,61009,2},{63651,61014,2},{63651,61011,2},{63649,61008,2},{63653,61009,2}, {63651,61006,2},{63649,61004,2},{63651,61004,2},{63653,61008,2},{63654,61008,2}, {63653,61003,2},{63651,60999,2},{63654,60998,2},{63654,61001,2},{63658,61001,2}, {63654,61003,2},{63654,61006,2},{63659,61008,2},{63659,61009,2},{63661,61008,2}, {63664,61009,2},{63668,61013,2},{63671,61011,2},{63674,61011,2},{63674,61009,2}, {63678,61013,2},{63676,61008,2},{63673,61006,2},{63674,61006,2},{63664,61001,2}, {63671,61003,2},{63671,60998,2},{63673,60996,2},{63674,60998,2},{63673,60999,2}, {63673,61003,2},{63676,61006,2},{63674,61003,2},{63676,61003,2},{63678,61003,2}, {63676,61004,2},{63679,61006,2},{63681,61006,2},{63679,61009,2},{63683,61014,2}, {63683,61011,2},{63683,61008,2},{63686,61008,2},{63684,61004,2},{63686,61006,2}, {63688,61001,2},{63684,60999,2},{63686,60996,2},{63688,60999,2},{63689,60999,2}, {63686,60994,2},{63684,60996,2},{63681,60998,2},{63681,60996,2},{63678,60996,2}, {63678,60994,2},{63678,60993,2},{63681,60994,2},{63683,60993,2},{63679,60991,2}, {63683,60991,2},{63671,60983,2},{63674,60983,2},{63679,60983,2},{63683,60988,2}, {63683,60986,2},{63684,60984,2},{63684,60988,2},{63684,60989,2},{63686,60989,2}, {63688,60993,2},{63689,60991,2},{63688,60988,2},{63691,60989,2},{63691,60991,2}, {63693,60989,2},{63696,60991,2},{63693,60993,2},{63693,60994,2},{63691,60996,2}, {63693,60998,2},{63694,60996,2},{63693,60999,2},{63694,61001,2},{63696,61004,2}, {63699,61004,2},{63701,61008,2},{63703,61004,2},{63696,61001,2},{63699,61001,2}, {63698,60998,2},{63699,60998,2},{63701,60999,2},{63701,61001,2},{63704,61001,2}, {63704,61003,2},{63708,61003,2},{63711,61008,2},{63711,61006,2},{63713,61008,2}, {63713,61006,2},{63704,60994,2},{63706,60994,2},{63711,61001,2},{63713,60999,2}, {63713,61003,2},{63716,61008,2},{63714,61011,2},{63713,61013,2},{63711,61014,2}, {63711,61013,2},{63709,61013,2},{63708,61009,2},{63706,61011,2},{63706,61018,2}, {63704,61009,2},{63701,61009,2},{63699,61009,2},{63699,61011,2},{63698,61008,2}, {63696,61008,2},{63694,61006,2},{63693,61009,2},{63694,61013,2},{63693,61014,2}, {63691,61009,2},{63693,61003,2},{63693,61001,2},{63689,61003,2},{63689,61008,2}, {63686,61009,2},{63688,61013,2},{63689,61013,2},{63689,61016,2},{63689,61014,2}, {63686,61013,2},{63686,61011,2},{63686,61018,2},{63681,61016,2},{63683,61019,2}, {63681,61019,2},{63679,61018,2},{63678,61014,2},{63676,61018,2},{63676,61016,2}, {63673,61016,2},{63671,61019,2},{63673,61021,2},{63676,61021,2},{63679,61024,2}, {63676,61021,2},{63674,61021,2},{63676,61023,2},{63674,61023,2},{63668,61023,2}, {63671,61014,2},{63669,61016,2},{63666,61021,2},{63668,61018,2},{63664,61019,2}, {63661,61024,2},{63659,61018,2},{63656,61019,2},{63656,61023,2},{63654,61023,2}, {63658,61026,2},{63656,61026,2},{63653,61028,2},{63656,61029,2},{63658,61033,2}, {63663,61034,2},{63668,61034,2},{63664,61036,2},{63658,61036,2},{63658,61038,2}, {63656,61033,2},{63656,61039,2},{63658,61044,2},{63656,61041,2},{63653,61039,2}, {63653,61043,2},{63649,61044,2},{63653,61049,2},{63649,61046,2},{63646,61046,2}, {63653,61036,2},{63654,61033,2},{63653,61031,2},{63651,61031,2},{63651,61034,2}, {63649,61029,2},{63651,61026,2},{63654,61024,2},{63651,61024,2},{63654,61021,2}, {63653,61021,2},{63649,61021,2},{63648,61024,2},{63644,61026,2},{63643,61029,2}, {63644,61026,2},{63641,61026,2},{63639,61028,2},{63638,61026,2},{63633,61026,2}, {63631,61028,2},{63631,61024,2},{63881,58634,130},{63881,58631,2},{63888,58626,2}, {63889,58628,2},{63894,58633,2},{63898,58633,2},{63904,58633,2},{63909,58628,2}, {63909,58633,2},{63909,58636,2},{63909,58638,2},{63914,58639,2},{63914,58641,2}, {63913,58646,2},{63909,58646,2},{63909,58651,2},{63911,58651,2},{63916,58646,2}, {63919,58639,2},{63926,58634,2},{63928,58624,2},{63931,58624,2},{63929,58623,2}, {63928,58623,2},{63924,58628,2},{63921,58628,2},{63919,58626,2},{63918,58623,2}, {63916,58626,2},{63914,58626,2},{63911,58624,2},{63911,58621,2},{63909,58613,2}, {63908,58609,2},{63911,58606,2},{63911,58599,2},{63914,58598,2},{63916,58598,2}, {63918,58598,2},{63916,58596,2},{63918,58594,2},{63914,58588,2},{63916,58586,2}, {63918,58584,2},{63921,58588,2},{63928,58594,2},{63934,58593,2},{63934,58586,2}, {63938,58579,2},{63938,58569,2},{63943,58566,2},{63943,58568,2},{63944,58568,2}, {63946,58566,2},{63944,58564,2},{63946,58559,2},{63958,58556,2},{63958,58553,2}, {63954,58551,2},{63949,58549,2},{63946,58556,2},{63944,58556,2},{63944,58548,2}, {63948,58546,2},{63948,58543,2},{63951,58538,2},{63949,58536,2},{63951,58534,2}, {63956,58536,2},{63958,58533,2},{63964,58533,2},{63966,58534,2},{63966,58539,2}, {63969,58539,2},{63974,58544,2},{63976,58544,2},{63979,58541,2},{63978,58544,2}, {63973,58549,2},{63966,58551,2},{63963,58556,2},{63963,58561,2},{63968,58556,2}, {63968,58558,2},{63969,58558,2},{63971,58554,2},{63976,58553,2},{63979,58549,2}, {63994,58541,2},{63998,58541,2},{63998,58546,2},{64001,58549,2},{63999,58554,2}, {64001,58556,2},{64004,58548,2},{64006,58548,2},{64006,58551,2},{64004,58558,2}, {64006,58561,2},{64006,58564,2},{64008,58564,2},{64011,58561,2},{64011,58563,2}, {64011,58568,2},{64006,58571,2},{64001,58573,2},{64001,58579,2},{63993,58588,2}, {63989,58591,2},{63986,58593,2},{63989,58598,2},{63988,58599,2},{63986,58599,2}, {63986,58598,2},{63979,58604,2},{63979,58608,2},{63974,58606,2},{63968,58609,2}, {63969,58618,2},{63968,58621,2},{63966,58618,2},{63963,58626,2},{63959,58629,2}, {63956,58633,2},{63949,58636,2},{63943,58634,2},{63941,58643,2},{63943,58648,2}, {63939,58658,2},{63936,58659,2},{63934,58653,2},{63929,58651,2},{63929,58644,2}, {63919,58651,2},{63914,58651,2},{63914,58653,2},{63918,58656,2},{63913,58668,2}, {63914,58673,2},{63914,58676,2},{63911,58676,2},{63911,58678,2},{63909,58678,2}, {63908,58676,2},{63903,58678,2},{63901,58673,2},{63903,58673,2},{63906,58668,2}, {63903,58663,2},{63901,58668,2},{63898,58663,2},{63894,58659,2},{63894,58654,2}, {63894,58646,2},{63893,58641,2},{63889,58641,2},{63889,58651,2},{63876,58649,2}, {63876,58643,2},{63881,58634,2},{63879,58633,2},{62211,59506,130},{62216,59501,2}, {62218,59491,2},{62223,59484,2},{62251,59466,2},{62269,59463,2},{62278,59458,2}, {62283,59456,2},{62286,59456,2},{62288,59461,2},{62296,59459,2},{62306,59461,2}, {62311,59464,2},{62319,59463,2},{62321,59463,2},{62323,59466,2},{62326,59468,2}, {62336,59463,2},{62348,59461,2},{62351,59461,2},{62358,59468,2},{62368,59469,2}, {62369,59474,2},{62366,59484,2},{62368,59491,2},{62373,59494,2},{62376,59503,2}, {62379,59501,2},{62383,59503,2},{62384,59506,2},{62388,59509,2},{62389,59516,2}, {62396,59519,2},{62399,59524,2},{62403,59524,2},{62414,59529,2},{62418,59536,2}, {62429,59543,2},{62433,59548,2},{62438,59549,2},{62443,59556,2},{62449,59558,2}, {62459,59568,2},{62466,59569,2},{62473,59566,2},{62483,59569,2},{62494,59564,2}, {62501,59568,2},{62506,59564,2},{62513,59571,2},{62524,59571,2},{62531,59574,2}, {62536,59569,2},{62541,59568,2},{62543,59569,2},{62543,59566,2},{62548,59564,2}, {62571,59573,2},{62576,59573,2},{62583,59573,2},{62593,59576,2},{62611,59576,2}, {62616,59579,2},{62626,59591,2},{62629,59606,2},{62634,59614,2},{62646,59616,2}, {62649,59619,2},{62654,59618,2},{62663,59619,2},{62666,59624,2},{62671,59626,2}, {62683,59623,2},{62696,59628,2},{62694,59626,2},{62696,59624,2},{62719,59626,2}, {62726,59629,2},{62726,59633,2},{62724,59639,2},{62726,59639,2},{62733,59646,2}, {62738,59648,2},{62741,59649,2},{62748,59649,2},{62751,59653,2},{62756,59651,2}, {62766,59653,2},{62771,59651,2},{62776,59646,2},{62789,59646,2},{62791,59651,2}, {62798,59658,2},{62799,59664,2},{62806,59673,2},{62811,59693,2},{62811,59698,2}, {62813,59701,2},{62811,59709,2},{62813,59729,2},{62809,59738,2},{62808,59756,2}, {62806,59761,2},{62806,59766,2},{62799,59776,2},{62798,59791,2},{62799,59794,2}, {62799,59799,2},{62794,59806,2},{62789,59823,2},{62793,59833,2},{62793,59836,2}, {62796,59843,2},{62796,59851,2},{62799,59863,2},{62799,59881,2},{62803,59891,2}, {62803,59901,2},{62811,59918,2},{62808,59929,2},{62804,59936,2},{62806,59944,2}, {62804,59948,2},{62803,59951,2},{62798,59951,2},{62793,59958,2},{62793,59951,2}, {62796,59949,2},{62801,59948,2},{62801,59938,2},{62804,59929,2},{62803,59921,2}, {62798,59918,2},{62796,59909,2},{62793,59911,2},{62788,59913,2},{62784,59906,2}, {62783,59904,2},{62779,59904,2},{62774,59899,2},{62778,59889,2},{62789,59883,2}, {62788,59866,2},{62786,59866,2},{62783,59869,2},{62779,59869,2},{62774,59864,2}, {62776,59856,2},{62774,59849,2},{62784,59833,2},{62786,59828,2},{62784,59818,2}, {62789,59806,2},{62793,59804,2},{62793,59794,2},{62789,59788,2},{62789,59784,2}, {62798,59771,2},{62799,59758,2},{62808,59736,2},{62808,59729,2},{62808,59711,2}, {62808,59704,2},{62806,59701,2},{62806,59691,2},{62804,59688,2},{62806,59683,2}, {62798,59666,2},{62793,59661,2},{62789,59653,2},{62784,59653,2},{62774,59656,2}, {62768,59654,2},{62763,59656,2},{62739,59654,2},{62724,59646,2},{62721,59641,2}, {62723,59639,2},{62723,59638,2},{62716,59633,2},{62689,59634,2},{62683,59631,2}, {62671,59631,2},{62664,59626,2},{62656,59626,2},{62646,59619,2},{62636,59619,2}, {62628,59616,2},{62628,59613,2},{62619,59603,2},{62616,59603,2},{62614,59591,2}, {62611,59589,2},{62599,59583,2},{62601,59586,2},{62606,59588,2},{62603,59589,2}, {62598,59586,2},{62596,59583,2},{62593,59583,2},{62591,59579,2},{62586,59583,2}, {62579,59581,2},{62568,59583,2},{62569,59579,2},{62568,59578,2},{62561,59578,2}, {62553,59571,2},{62536,59581,2},{62521,59574,2},{62504,59573,2},{62501,59573,2}, {62494,59579,2},{62486,59579,2},{62479,59581,2},{62476,59579,2},{62471,59579,2}, {62469,59576,2},{62448,59564,2},{62431,59549,2},{62424,59548,2},{62409,59534,2}, {62406,59529,2},{62393,59524,2},{62384,59514,2},{62381,59509,2},{62368,59496,2}, {62364,59479,2},{62361,59476,2},{62354,59476,2},{62349,59471,2},{62343,59471,2}, {62341,59468,2},{62331,59473,2},{62328,59471,2},{62323,59469,2},{62321,59466,2}, {62318,59468,2},{62314,59468,2},{62313,59469,2},{62309,59469,2},{62304,59469,2}, {62303,59469,2},{62301,59464,2},{62296,59466,2},{62283,59461,2},{62271,59464,2}, {62266,59469,2},{62263,59468,2},{62253,59468,2},{62239,59481,2},{62228,59483,2}, {62226,59489,2},{62223,59494,2},{62223,59501,2},{62216,59506,2},{62163,60199,131}, {62163,60194,3},{62168,60193,3},{62168,60186,3},{62169,60183,3},{62194,60186,3}, {62216,60183,3},{62221,60184,3},{62229,60189,3},{62239,60206,3},{62248,60208,3}, {62254,60218,3},{62264,60226,3},{62273,60218,3},{62276,60209,3},{62276,60206,3}, {62279,60196,3},{62286,60189,3},{62293,60179,3},{62299,60173,3},{62306,60171,3}, {62309,60173,3},{62316,60169,3},{62318,60166,3},{62326,60163,3},{62331,60161,3}, {62331,60156,3},{62334,60149,3},{62339,60148,3},{62343,60143,3},{62343,60136,3}, {62346,60134,3},{62349,60129,3},{62344,60124,3},{62344,60121,3},{62358,60104,3}, {62364,60098,3},{62369,60089,3},{62378,60089,3},{62386,60079,3},{62389,60078,3}, {62394,60053,3},{62398,60048,3},{62399,60043,3},{62409,60034,3},{62408,60031,3}, {62404,60031,3},{62403,60028,3},{62409,60021,3},{62411,60014,3},{62413,60011,3}, {62421,60008,3},{62423,60003,3},{62428,60003,3},{62433,60001,3},{62436,59996,3}, {62439,59994,3},{62441,59989,3},{62451,59978,3},{62451,59974,3},{62449,59973,3}, {62441,59973,3},{62441,59964,3},{62434,59961,3},{62431,59954,3},{62429,59953,3}, {62428,59936,3},{62443,59936,3},{62449,59938,3},{62456,59936,3},{62463,59928,3}, {62468,59924,3},{62471,59919,3},{62476,59918,3},{62478,59914,3},{62479,59914,3}, {62488,59899,3},{62494,59894,3},{62498,59888,3},{62506,59879,3},{62506,59874,3}, {62511,59874,3},{62513,59873,3},{62519,59859,3},{62524,59856,3},{62526,59849,3}, {62524,59846,3},{62526,59843,3},{62524,59828,3},{62518,59821,3},{62513,59821,3}, {62506,59814,3},{62506,59813,3},{62508,59811,3},{62506,59808,3},{62509,59803,3}, {62508,59799,3},{62506,59796,3},{62509,59793,3},{62509,59789,3},{62508,59786,3}, {62513,59779,3},{62513,59773,3},{62518,59773,3},{62519,59781,3},{62523,59786,3}, {62533,59794,3},{62538,59803,3},{62549,59804,3},{62554,59808,3},{62558,59813,3}, {62558,59823,3},{62559,59826,3},{62573,59839,3},{62576,59839,3},{62588,59853,3}, {62594,59858,3},{62598,59859,3},{62601,59866,3},{62609,59871,3},{62616,59871,3}, {62619,59874,3},{62626,59884,3},{62629,59893,3},{62639,59896,3},{62644,59903,3}, {62646,59906,3},{62658,59908,3},{62659,59916,3},{62669,59924,3},{62676,59934,3}, {62678,59934,3},{62683,59933,3},{62686,59934,3},{62688,59941,3},{62689,59946,3}, {62694,59946,3},{62699,59948,3},{62701,59953,3},{62699,59963,3},{62696,59964,3}, {62694,59966,3},{62701,59969,3},{62704,59969,3},{62706,59968,3},{62709,59959,3}, {62713,59959,3},{62716,59968,3},{62719,59973,3},{62724,59974,3},{62724,59978,3}, {62721,59978,3},{62721,59979,3},{62728,59986,3},{62729,59988,3},{62728,59988,3}, {62728,59991,3},{62733,59998,3},{62738,59998,3},{62739,60003,3},{62744,60004,3}, {62744,60011,3},{62751,60018,3},{62751,60019,3},{62748,60023,3},{62751,60026,3}, {62751,60034,3},{62758,60028,3},{62759,60029,3},{62756,60036,3},{62763,60044,3}, {62774,60046,3},{62774,60051,3},{62783,60054,3},{62783,60058,3},{62781,60058,3}, {62779,60058,3},{62781,60068,3},{62783,60069,3},{62786,60069,3},{62783,60071,3}, {62783,60074,3},{62791,60078,3},{62788,60083,3},{62789,60091,3},{62791,60091,3}, {62793,60089,3},{62794,60089,3},{62796,60096,3},{62791,60101,3},{62796,60103,3}, {62793,60104,3},{62793,60108,3},{62796,60109,3},{62798,60113,3},{62801,60113,3}, {62811,60118,3},{62811,60119,3},{62808,60121,3},{62808,60124,3},{62811,60131,3}, {62816,60136,3},{62816,60139,3},{62821,60141,3},{62819,60144,3},{62824,60148,3}, {62819,60153,3},{62823,60156,3},{62824,60154,3},{62826,60156,3},{62831,60158,3}, {62834,60161,3},{62848,60166,3},{62858,60164,3},{62859,60161,3},{62861,60163,3}, {62863,60161,3},{62864,60159,3},{62868,60163,3},{62874,60163,3},{62879,60164,3}, {62881,60163,3},{62886,60166,3},{62899,60164,3},{62904,60169,3},{62911,60171,3}, {62916,60169,3},{62924,60163,3},{62933,60161,3},{62941,60153,3},{62944,60154,3}, {62948,60153,3},{62956,60154,3},{62964,60148,3},{62968,60149,3},{62971,60148,3}, {62973,60146,3},{62971,60144,3},{62971,60141,3},{62976,60139,3},{62981,60134,3}, {62979,60131,3},{62981,60129,3},{62978,60129,3},{62976,60128,3},{62979,60124,3}, {62984,60126,3},{62986,60126,3},{62983,60121,3},{62983,60116,3},{62978,60118,3}, {62979,60113,3},{62976,60111,3},{62981,60108,3},{62981,60104,3},{62978,60103,3}, {62978,60098,3},{62973,60096,3},{62971,60094,3},{62968,60094,3},{62968,60093,3}, {62973,60089,3},{62976,60086,3},{62976,60083,3},{62979,60083,3},{62979,60076,3}, {62984,60076,3},{62993,60074,3},{62999,60078,3},{63009,60086,3},{63016,60089,3}, {63021,60094,3},{63028,60091,3},{63034,60091,3},{63043,60094,3},{63056,60096,3}, {63061,60099,3},{63074,60104,3},{63086,60103,3},{63099,60111,3},{63108,60109,3}, {63113,60104,3},{63123,60103,3},{63128,60108,3},{63131,60111,3},{63138,60101,3}, {63146,60094,3},{63156,60073,3},{63153,60069,3},{63149,60059,3},{63144,60048,3}, {63139,60044,3},{63138,60034,3},{63138,60026,3},{63134,60018,3},{63138,60001,3}, {63139,59996,3},{63143,59994,3},{63166,59993,3},{63169,59989,3},{63176,59984,3}, {63183,59984,3},{63189,59983,3},{63198,59986,3},{63204,59981,3},{63211,59984,3}, {63216,59983,3},{63221,59983,3},{63224,59978,3},{63231,59978,3},{63236,59973,3}, {63243,59974,3},{63254,59971,3},{63263,59976,3},{63273,59974,3},{63279,59964,3}, {63283,59963,3},{63296,59961,3},{63308,59951,3},{63306,59943,3},{63309,59938,3}, {63308,59934,3},{63308,59931,3},{63306,59928,3},{63309,59924,3},{63308,59919,3}, {63309,59916,3},{63319,59901,3},{63328,59898,3},{63329,59896,3},{63326,59886,3}, {63319,59879,3},{63318,59879,3},{63316,59878,3},{63313,59874,3},{63313,59871,3}, {63309,59873,3},{63314,59866,3},{63311,59864,3},{63311,59863,3},{63311,59856,3}, {63308,59856,3},{63306,59853,3},{63308,59848,3},{63313,59848,3},{63311,59846,3}, {63309,59846,3},{63311,59841,3},{63313,59841,3},{63313,59833,3},{63313,59831,3}, {63313,59826,3},{63313,59824,3},{63314,59826,3},{63316,59821,3},{63314,59818,3}, {63318,59816,3},{63314,59811,3},{63314,59808,3},{63316,59806,3},{63314,59803,3}, {63316,59799,3},{63314,59799,3},{63318,59794,3},{63318,59791,3},{63318,59786,3}, {63319,59781,3},{63318,59781,3},{63318,59776,3},{63319,59774,3},{63326,59771,3}, {63324,59768,3},{63326,59763,3},{63326,59759,3},{63323,59759,3},{63324,59756,3}, {63321,59753,3},{63324,59751,3},{63323,59746,3},{63324,59743,3},{63328,59741,3}, {63328,59738,3},{63334,59738,3},{63346,59744,3},{63351,59741,3},{63356,59743,3}, {63361,59743,3},{63368,59748,3},{63371,59743,3},{63374,59743,3},{63378,59744,3}, {63383,59741,3},{63384,59741,3},{63393,59744,3},{63403,59751,3},{63404,59751,3}, {63404,59748,3},{63408,59746,3},{63414,59753,3},{63428,59753,3},{63431,59751,3}, {63439,59754,3},{63441,59753,3},{63439,59751,3},{63444,59748,3},{63446,59744,3}, {63453,59751,3},{63454,59748,3},{63456,59741,3},{63463,59751,3},{63468,59746,3}, {63469,59743,3},{63464,59739,3},{63464,59738,3},{63471,59739,3},{63474,59736,3}, {63484,59734,3},{63493,59738,3},{63499,59728,3},{63509,59726,3},{63509,59724,3}, {63508,59721,3},{63509,59721,3},{63513,59719,3},{63516,59724,3},{63518,59721,3}, {63519,59719,3},{63521,59726,3},{63526,59731,3},{63529,59733,3},{63531,59738,3}, {63533,59739,3},{63533,59746,3},{63538,59751,3},{63563,59724,3},{63564,59724,3}, {63568,59728,3},{63573,59729,3},{63578,59733,3},{63583,59734,3},{63588,59736,3}, {63593,59739,3},{63598,59741,3},{63603,59744,3},{63608,59746,3},{63613,59749,3}, {63616,59751,3},{63621,59754,3},{63626,59756,3},{63631,59758,3},{63631,59766,3}, {63644,59764,3},{63644,59759,3},{63649,59761,3},{63654,59761,3},{63659,59763,3}, {63664,59764,3},{63669,59766,3},{63673,59768,3},{63678,59769,3},{63683,59771,3}, {63688,59773,3},{63693,59774,3},{63698,59776,3},{63703,59778,3},{63708,59779,3}, {63713,59781,3},{63713,59791,3},{63716,59791,3},{63716,59784,3},{63723,59779,3}, {63731,59776,3},{63751,59764,3},{63753,59768,3},{63754,59768,3},{63759,59764,3}, {63763,59764,3},{63768,59759,3},{63771,59758,3},{63774,59759,3},{63776,59763,3}, {63791,59744,3},{63798,59731,3},{63801,59716,3},{63806,59706,3},{63808,59699,3}, {63811,59696,3},{63836,59693,3},{63844,59689,3},{63853,59691,3},{63866,59688,3}, {63873,59689,3},{63878,59694,3},{63886,59701,3},{63893,59701,3},{63896,59704,3}, {63908,59703,3},{63908,59698,3},{63904,59694,3},{63903,59691,3},{63903,59686,3}, {63903,59681,3},{63904,59674,3},{63904,59669,3},{63904,59663,3},{63904,59658,3}, {63904,59651,3},{63904,59646,3},{63904,59639,3},{63904,59634,3},{63906,59629,3}, {63906,59623,3},{63906,59618,3},{63906,59611,3},{63906,59606,3},{63906,59599,3}, {63906,59594,3},{63908,59588,3},{63908,59583,3},{63908,59578,3},{63908,59571,3}, {63908,59566,3},{63908,59559,3},{63908,59554,3},{63908,59548,3},{63909,59543,3}, {63909,59538,3},{63909,59531,3},{63909,59526,3},{63909,59519,3},{63916,59519,3}, {63921,59519,3},{63926,59519,3},{63931,59518,3},{63938,59518,3},{63943,59518,3}, {63948,59516,3},{63954,59516,3},{63959,59516,3},{63964,59516,3},{63971,59514,3}, {63976,59514,3},{63981,59514,3},{63988,59513,3},{63993,59509,3},{63996,59506,3}, {64001,59503,3},{64004,59498,3},{64009,59494,3},{64013,59491,3},{64018,59488,3}, {64021,59483,3},{64026,59479,3},{64026,59498,3},{64054,59493,3},{64068,59496,3}, {64074,59501,3},{64078,59501,3},{64081,59499,3},{64081,59501,3},{64084,59503,3}, {64088,59501,3},{64094,59498,3},{64099,59496,3},{64106,59491,3},{64114,59491,3}, {64118,59488,3},{64126,59489,3},{64129,59494,3},{64138,59498,3},{64139,59494,3}, {64141,59496,3},{64149,59489,3},{64156,59489,3},{64158,59479,3},{64161,59476,3}, {64163,59468,3},{64166,59463,3},{64168,59463,3},{64168,59456,3},{64171,59454,3}, {64178,59441,3},{64181,59438,3},{64181,59433,3},{64188,59433,3},{64189,59429,3}, {64188,59428,3},{64188,59424,3},{64183,59419,3},{64184,59416,3},{64183,59411,3}, {64188,59403,3},{64181,59391,3},{64181,59383,3},{64186,59376,3},{64184,59369,3}, {64183,59363,3},{64181,59353,3},{64184,59351,3},{64191,59349,3},{64201,59334,3}, {64206,59331,3},{64209,59324,3},{64221,59324,3},{64221,59323,3},{64224,59319,3}, {64223,59318,3},{64224,59314,3},{64221,59308,3},{64221,59298,3},{64223,59294,3}, {64229,59288,3},{64229,59281,3},{64233,59271,3},{64236,59271,3},{64239,59266,3}, {64238,59259,3},{64234,59258,3},{64238,59254,3},{64241,59253,3},{64241,59249,3}, {64251,59243,3},{64249,59241,3},{64253,59236,3},{64258,59234,3},{64261,59231,3}, {64264,59231,3},{64266,59229,3},{64271,59229,3},{64273,59223,3},{64266,59213,3}, {64266,59203,3},{64269,59199,3},{64271,59194,3},{64276,59189,3},{64279,59188,3}, {64281,59181,3},{64284,59179,3},{64286,59173,3},{64289,59168,3},{64289,59156,3}, {64289,59149,3},{64283,59146,3},{64281,59143,3},{64283,59139,3},{64283,59134,3}, {64284,59133,3},{64286,59128,3},{64284,59126,3},{64286,59124,3},{64284,59123,3}, {64283,59121,3},{64288,59118,3},{64288,59114,3},{64288,59113,3},{64286,59109,3}, {64286,59108,3},{64289,59106,3},{64289,59096,3},{64296,59091,3},{64299,59086,3}, {64308,59089,3},{64313,59088,3},{64311,59084,3},{64314,59081,3},{64316,59073,3}, {64319,59068,3},{64324,59068,3},{64326,59066,3},{64321,59064,3},{64321,59063,3}, {64324,59061,3},{64333,59056,3},{64336,59038,3},{64339,59034,3},{64344,59036,3}, {64348,59033,3},{64354,59033,3},{64361,59029,3},{64363,59024,3},{64366,59024,3}, {64363,59023,3},{64359,59021,3},{64358,59021,3},{64363,59016,3},{64364,59014,3}, {64371,59018,3},{64373,59016,3},{64374,59019,3},{64378,59014,3},{64383,59014,3}, {64384,59013,3},{64386,59006,3},{64388,59004,3},{64398,59001,3},{64403,59003,3}, {64404,58999,3},{64409,58996,3},{64411,58998,3},{64414,58999,3},{64416,58996,3}, {64419,58996,3},{64423,58998,3},{64426,59003,3},{64433,59003,3},{64438,59006,3}, {64444,59004,3},{64451,59003,3},{64456,58994,3},{64468,58998,3},{64471,58998,3}, {64474,58993,3},{64479,58993,3},{64488,58991,3},{64491,58996,3},{64499,58998,3}, {64506,59004,3},{64514,59008,3},{64526,59006,3},{64533,59003,3},{64541,59003,3}, {64551,59006,3},{64556,59003,3},{64559,59003,3},{64564,58999,3},{64568,58993,3}, {64564,58986,3},{64563,58984,3},{64558,58984,3},{64556,58981,3},{64553,58979,3}, {64553,58974,3},{64556,58971,3},{64556,58966,3},{64559,58966,3},{64561,58964,3}, {64559,58959,3},{64563,58958,3},{64558,58956,3},{64561,58954,3},{64558,58949,3}, {64559,58946,3},{64556,58933,3},{64558,58928,3},{64556,58926,3},{64556,58919,3}, {64553,58913,3},{64553,58901,3},{64548,58893,3},{64548,58888,3},{64546,58873,3}, {64541,58871,3},{64538,58859,3},{64528,58846,3},{64509,58828,3},{64508,58823,3}, {64504,58819,3},{64504,58813,3},{64504,58804,3},{64499,58804,3},{64498,58794,3}, {64494,58794,3},{64491,58789,3},{64486,58778,3},{64483,58776,3},{64478,58773,3}, {64474,58769,3},{64468,58766,3},{64464,58763,3},{64468,58756,3},{64471,58749,3}, {64471,58734,3},{64468,58729,3},{64464,58724,3},{64459,58723,3},{64451,58714,3}, {64446,58714,3},{64441,58709,3},{64438,58708,3},{64436,58703,3},{64436,58698,3}, {64431,58694,3},{64431,58684,3},{64426,58678,3},{64423,58661,3},{64424,58658,3}, {64431,58658,3},{64436,58661,3},{64436,58658,3},{64436,58654,3},{64434,58651,3}, {64434,58646,3},{64436,58638,3},{64439,58629,3},{64439,58626,3},{64441,58614,3}, {64441,58606,3},{64443,58596,3},{64441,58591,3},{64441,58579,3},{64439,58563,3}, {64444,58558,3},{64443,58548,3},{64444,58543,3},{64433,58519,3},{64429,58503,3}, {64433,58493,3},{64438,58489,3},{64443,58483,3},{64434,58473,3},{64553,58473,3}, {64558,58476,3},{64558,58479,3},{64563,58483,3},{64568,58481,3},{64573,58478,3}, {64578,58476,3},{64579,58474,3},{64579,58479,3},{64583,58478,3},{64584,58481,3}, {64586,58479,3},{64586,58483,3},{64593,58484,3},{64591,58476,3},{64584,58469,3}, {64579,58461,3},{64573,58456,3},{64569,58448,3},{64564,58446,3},{64559,58439,3}, {64554,58436,3},{64554,58431,3},{64551,58428,3},{64549,58423,3},{64543,58418,3}, {64539,58411,3},{64536,58406,3},{64539,58403,3},{64536,58399,3},{64536,58321,3}, {64536,58318,3},{64539,58319,3},{64543,58319,3},{64548,58321,3},{64553,58319,3}, {64556,58318,3},{64561,58309,3},{64569,58311,3},{64576,58306,3},{64583,58306,3}, {64583,58303,3},{64586,58299,3},{64588,58283,3},{64591,58276,3},{64591,58269,3}, {64594,58263,3},{64596,58216,3},{64599,58218,3},{64603,58223,3},{64611,58228,3}, {64614,58234,3},{64619,58234,3},{64619,58238,3},{64621,58239,3},{64628,58241,3}, {64638,58239,3},{64643,58236,3},{64646,58229,3},{64664,58219,3},{64668,58214,3}, {64668,58209,3},{64674,58204,3},{64676,58201,3},{64688,58201,3},{64691,58196,3}, {64694,58193,3},{64696,58189,3},{64699,58183,3},{64709,58181,3},{64716,58176,3}, {64723,58176,3},{64731,58173,3},{64734,58171,3},{64739,58161,3},{64741,58159,3}, {64748,58158,3},{64748,58163,3},{64749,58164,3},{64753,58166,3},{64758,58166,3}, {64763,58153,3},{64769,58149,3},{64783,58134,3},{64783,58136,3},{64784,58141,3}, {64788,58141,3},{64791,58143,3},{64801,58139,3},{64798,58146,3},{64803,58153,3}, {64803,58161,3},{64806,58166,3},{64814,58164,3},{64816,58161,3},{64821,58159,3}, {64826,58156,3},{64833,58159,3},{64848,58161,3},{64851,58166,3},{64856,58168,3}, {64858,58174,3},{64863,58178,3},{64866,58184,3},{64878,58201,3},{64884,58216,3}, {64891,58221,3},{64896,58223,3},{64916,58219,3},{64919,58218,3},{64931,58218,3}, {64938,58223,3},{64949,58223,3},{64951,58226,3},{64958,58231,3},{64971,58239,3}, {64976,58239,3},{64983,58243,3},{64989,58239,3},{65001,58244,3},{65004,58244,3}, {65011,58248,3},{65013,58246,3},{65018,58246,3},{65021,58244,3},{65023,58246,3}, {65024,58251,3},{65028,58251,3},{65028,58259,3},{65031,58261,3},{65029,58268,3}, {65031,58274,3},{65036,58276,3},{65036,58279,3},{65041,58283,3},{65041,58288,3}, {65046,58289,3},{65048,58296,3},{65058,58299,3},{65058,58303,3},{65059,58303,3}, {65061,58304,3},{65061,58313,3},{65066,58319,3},{65066,58323,3},{65071,58329,3}, {65076,58329,3},{65074,58333,3},{65078,58336,3},{65078,58339,3},{65084,58346,3}, {65086,58358,3},{65088,58358,3},{65086,58364,3},{65089,58368,3},{65084,58371,3}, {65089,58374,3},{65086,58376,3},{65089,58383,3},{65088,58384,3},{65091,58386,3}, {65093,58388,3},{65093,58398,3},{65091,58401,3},{65093,58404,3},{65093,58408,3}, {65098,58408,3},{65098,58413,3},{65094,58416,3},{65099,58418,3},{65101,58419,3}, {65098,58421,3},{65096,58424,3},{65098,58426,3},{65099,58429,3},{65098,58434,3}, {65103,58436,3},{65099,58438,3},{65098,58441,3},{65108,58449,3},{65111,58449,3}, {65113,58453,3},{65114,58453,3},{65118,58453,3},{65121,58459,3},{65119,58468,3}, {65124,58469,3},{65124,58474,3},{65119,58473,3},{65119,58476,3},{65116,58478,3}, {65123,58481,3},{65121,58484,3},{65118,58486,3},{65123,58491,3},{65123,58496,3}, {65119,58501,3},{65123,58503,3},{65118,58506,3},{65113,58504,3},{65106,58511,3}, {65106,58514,3},{65103,58516,3},{65104,58519,3},{65109,58521,3},{65111,58526,3}, {65108,58529,3},{65104,58528,3},{65103,58533,3},{65101,58533,3},{65103,58533,3}, {65103,58536,3},{65106,58539,3},{65111,58541,3},{65114,58541,3},{65119,58543,3}, {65124,58544,3},{65131,58544,3},{65136,58546,3},{65141,58548,3},{65146,58548,3}, {65153,58549,3},{65158,58551,3},{65163,58551,3},{65169,58553,3},{65174,58553,3}, {65179,58554,3},{65186,58554,3},{65191,58556,3},{65196,58558,3},{65201,58558,3}, {65208,58559,3},{65213,58559,3},{65218,58561,3},{65224,58563,3},{65229,58563,3}, {65234,58564,3},{65239,58564,3},{65246,58566,3},{65251,58568,3},{65256,58568,3}, {65263,58569,3},{65268,58569,3},{65273,58571,3},{65278,58571,3},{65284,58573,3}, {65289,58574,3},{65294,58574,3},{65299,58576,3},{65306,58576,3},{65311,58578,3}, {65316,58579,3},{65323,58579,3},{65328,58581,3},{65333,58581,3},{65338,58583,3}, {65344,58584,3},{65349,58584,3},{65354,58586,3},{65361,58586,3},{65366,58588,3}, {65371,58589,3},{65376,58589,3},{65383,58591,3},{65386,58589,3},{65394,58593,3}, {65396,58596,3},{65401,58598,3},{65411,58598,3},{65418,58598,3},{65428,58593,3}, {65436,58593,3},{65438,58589,3},{65439,58589,3},{65444,58583,3},{65449,58583,3}, {65449,58579,3},{65453,58579,3},{65456,58579,3},{65461,58574,3},{65463,58574,3}, {65473,58579,3},{65476,58576,3},{65484,58576,3},{65486,58573,3},{65491,58561,3}, {65496,58558,3},{65499,58553,3},{65503,58551,3},{65504,58543,3},{65511,58539,3}, {65513,58536,3},{65521,58531,3},{65528,58531,3},{65533,58531,3},{3,58531,3}, {8,58531,3},{13,58531,3},{18,58531,3},{25,58531,3},{30,58531,3},{35,58531,3}, {42,58531,3},{47,58531,3},{52,58531,3},{57,58531,3},{58,58531,3},{57,58534,3}, {60,58538,3},{58,58543,3},{60,58544,3},{60,58556,3},{63,58561,3},{63,58563,3}, {67,58564,3},{68,58568,3},{65,58576,3},{70,58579,3},{70,58581,3},{72,58583,3}, {73,58589,3},{63,58601,3},{67,58606,3},{62,58608,3},{62,58616,3},{65,58618,3}, {63,58623,3},{65,58624,3},{70,58621,3},{72,58618,3},{77,58621,3},{85,58619,3}, {87,58623,3},{90,58616,3},{95,58616,3},{95,58614,3},{100,58614,3},{103,58609,3}, {107,58601,3},{103,58594,3},{103,58593,3},{107,58591,3},{107,58579,3},{108,58576,3}, {107,58564,3},{108,58564,3},{110,58559,3},{107,58554,3},{107,58551,3},{172,58551,3}, {170,58556,3},{172,58559,3},{175,58564,3},{173,58573,3},{178,58581,3},{175,58596,3}, {173,58598,3},{172,58721,3},{173,58718,3},{177,58718,3},{178,58713,3},{182,58713,3}, {182,58709,3},{183,58708,3},{187,58711,3},{192,58713,3},{197,58716,3},{202,58718,3}, {197,58719,3},{197,58724,3},{193,58728,3},{187,58729,3},{177,58736,3},{175,58739,3}, {175,58744,3},{175,58749,3},{180,58758,3},{192,58768,3},{200,58771,3},{210,58784,3}, {212,58789,3},{215,58794,3},{212,58803,3},{195,58809,3},{182,58819,3},{172,58826,3}, {162,58829,3},{152,58831,3},{128,58828,3},{117,58828,3},{122,58849,3},{75,58904,3}, {77,58916,3},{75,58919,3},{73,58923,3},{75,58926,3},{78,58929,3},{80,58939,3}, {90,58949,3},{98,58963,3},{98,58978,3},{95,58983,3},{90,58984,3},{83,58984,3}, {73,58978,3},{67,58979,3},{65,58984,3},{70,58993,3},{75,58996,3},{83,58998,3}, {92,59004,3},{93,59018,3},{97,59019,3},{110,59021,3},{113,59023,3},{115,59026,3}, {113,59034,3},{117,59036,3},{120,59041,3},{122,59048,3},{128,59054,3},{125,59059,3}, {125,59063,3},{133,59078,3},{143,59083,3},{152,59098,3},{150,59101,3},{147,59101,3}, {143,59098,3},{140,59098,3},{137,59099,3},{137,59101,3},{147,59108,3},{150,59114,3}, {155,59118,3},{158,59124,3},{168,59129,3},{175,59129,3},{180,59131,3},{188,59131,3}, {195,59136,3},{198,59143,3},{197,59158,3},{207,59173,3},{210,59176,3},{213,59183,3}, {215,59196,3},{220,59196,3},{227,59201,3},{237,59199,3},{240,59201,3},{242,59199,3}, {245,59169,3},{242,59154,3},{247,59139,3},{247,59133,3},{252,59131,3},{262,59136,3}, {272,59138,3},{275,59136,3},{280,59134,3},{287,59131,3},{292,59128,3},{300,59123,3}, {307,59119,3},{312,59114,3},{325,59116,3},{343,59113,3},{347,59114,3},{352,59118,3}, {360,59118,3},{373,59104,3},{378,59091,3},{387,59083,3},{392,59079,3},{400,59071,3}, {415,59064,3},{420,59056,3},{428,59056,3},{428,59064,3},{425,59071,3},{413,59076,3}, {412,59078,3},{415,59099,3},{415,59111,3},{412,59123,3},{403,59128,3},{390,59131,3}, {388,59134,3},{390,59141,3},{393,59144,3},{397,59153,3},{393,59158,3},{395,59171,3}, {395,59176,3},{387,59183,3},{385,59186,3},{387,59189,3},{388,59191,3},{397,59194,3}, {397,59201,3},{390,59211,3},{383,59214,3},{377,59223,3},{360,59238,3},{357,59244,3}, {357,59248,3},{357,59251,3},{360,59254,3},{360,59259,3},{368,59263,3},{378,59263,3}, {390,59258,3},{397,59261,3},{402,59259,3},{403,59261,3},{405,59269,3},{403,59279,3}, {403,59281,3},{407,59283,3},{412,59283,3},{415,59291,3},{418,59291,3},{418,59293,3}, {418,59298,3},{410,59321,3},{410,59326,3},{415,59331,3},{417,59336,3},{415,59344,3}, {417,59351,3},{418,59354,3},{425,59361,3},{427,59366,3},{425,59371,3},{423,59374,3}, {425,59378,3},{425,59381,3},{427,59384,3},{432,59384,3},{437,59384,3},{440,59386,3}, {443,59393,3},{442,59401,3},{445,59408,3},{447,59408,3},{452,59404,3},{453,59406,3}, {452,59414,3},{450,59421,3},{452,59438,3},{458,59443,3},{465,59444,3},{472,59448,3}, {472,59453,3},{477,59463,3},{483,59471,3},{495,59478,3},{498,59478,3},{518,59471,3}, {520,59463,3},{522,59468,3},{522,59476,3},{518,59481,3},{520,59486,3},{520,59491,3}, {518,59491,3},{522,59496,3},{520,59499,3},{520,59506,3},{525,59511,3},{527,59516,3}, {527,59518,3},{523,59519,3},{525,59524,3},{520,59526,3},{517,59528,3},{513,59531,3}, {510,59539,3},{505,59539,3},{490,59536,3},{483,59536,3},{480,59534,3},{470,59533,3}, {467,59529,3},{460,59528,3},{460,59524,3},{458,59523,3},{457,59521,3},{452,59521,3}, {450,59526,3},{452,59526,3},{453,59528,3},{452,59529,3},{450,59531,3},{450,59539,3}, {452,59539,3},{450,59543,3},{447,59546,3},{448,59549,3},{448,59551,3},{447,59551,3}, {445,59554,3},{447,59556,3},{440,59566,3},{438,59569,3},{435,59568,3},{430,59563,3}, {427,59564,3},{423,59563,3},{422,59563,3},{417,59566,3},{415,59573,3},{408,59571,3}, {400,59578,3},{397,59578,3},{395,59584,3},{393,59584,3},{390,59578,3},{385,59578,3}, {382,59578,3},{378,59576,3},{378,59573,3},{377,59569,3},{370,59569,3},{363,59559,3}, {360,59551,3},{357,59551,3},{348,59554,3},{343,59553,3},{343,59554,3},{340,59554,3}, {337,59554,3},{335,59553,3},{333,59553,3},{325,59548,3},{323,59548,3},{320,59546,3}, {317,59546,3},{315,59544,3},{313,59546,3},{310,59543,3},{303,59539,3},{298,59541,3}, {282,59538,3},{268,59538,3},{262,59541,3},{260,59539,3},{257,59543,3},{255,59543,3}, {245,59546,3},{240,59548,3},{238,59546,3},{237,59546,3},{230,59556,3},{228,59563,3}, {218,59563,3},{212,59564,3},{207,59561,3},{203,59563,3},{197,59563,3},{192,59561,3}, {190,59561,3},{187,59561,3},{185,59563,3},{187,59566,3},{185,59573,3},{177,59569,3}, {173,59573,3},{173,59581,3},{172,59584,3},{165,59588,3},{162,59593,3},{157,59594,3}, {155,59598,3},{152,59601,3},{153,59603,3},{152,59604,3},{148,59604,3},{147,59608,3}, {142,59608,3},{138,59611,3},{133,59628,3},{133,59636,3},{130,59643,3},{127,59646,3}, {123,59646,3},{120,59649,3},{118,59654,3},{122,59663,3},{128,59666,3},{127,59679,3}, {128,59681,3},{127,59684,3},{127,59686,3},{135,59689,3},{145,59686,3},{148,59698,3}, {153,59698,3},{155,59701,3},{160,59704,3},{160,59706,3},{158,59706,3},{157,59713,3}, {157,59719,3},{152,59723,3},{152,59736,3},{160,59739,3},{167,59738,3},{163,59744,3}, {167,59748,3},{172,59761,3},{170,59773,3},{170,59781,3},{173,59786,3},{178,59788,3}, {182,59791,3},{192,59794,3},{193,59799,3},{197,59803,3},{198,59806,3},{198,59809,3}, {195,59813,3},{202,59826,3},{202,59829,3},{195,59831,3},{193,59834,3},{192,59839,3}, {193,59846,3},{190,59848,3},{187,59858,3},{192,59864,3},{192,59871,3},{193,59873,3}, {190,59881,3},{192,59883,3},{195,59889,3},{192,59896,3},{193,59901,3},{188,59909,3}, {188,59918,3},{183,59934,3},{187,59943,3},{190,59946,3},{195,59944,3},{205,59946,3}, {215,59936,3},{218,59933,3},{222,59933,3},{223,59931,3},{225,59928,3},{225,59923,3}, {227,59923,3},{235,59928,3},{235,59931,3},{235,59933,3},{240,59936,3},{245,59936,3}, {248,59938,3},{252,59938,3},{253,59939,3},{252,59944,3},{247,59949,3},{245,59959,3}, {242,59963,3},{240,59964,3},{243,59978,3},{243,59998,3},{245,60001,3},{248,60001,3}, {252,60004,3},{252,60008,3},{250,60011,3},{252,60016,3},{255,60018,3},{257,60023,3}, {253,60024,3},{258,60034,3},{262,60041,3},{260,60043,3},{257,60039,3},{253,60041,3}, {243,60049,3},{243,60056,3},{247,60061,3},{245,60066,3},{240,60068,3},{238,60064,3}, {233,60066,3},{232,60071,3},{233,60076,3},{232,60083,3},{228,60084,3},{228,60083,3}, {227,60083,3},{222,60089,3},{220,60096,3},{222,60099,3},{217,60103,3},{215,60111,3}, {217,60118,3},{212,60121,3},{212,60124,3},{213,60128,3},{218,60129,3},{218,60134,3}, {218,60136,3},{222,60143,3},{223,60143,3},{227,60143,3},{227,60148,3},{230,60149,3}, {232,60154,3},{235,60156,3},{237,60161,3},{235,60164,3},{232,60163,3},{227,60181,3}, {225,60183,3},{225,60191,3},{232,60201,3},{235,60201,3},{235,60203,3},{225,60214,3}, {220,60209,3},{220,60213,3},{222,60224,3},{222,60228,3},{218,60231,3},{217,60239,3}, {220,60246,3},{228,60251,3},{230,60256,3},{233,60263,3},{238,60269,3},{243,60271,3}, {247,60276,3},{257,60281,3},{258,60283,3},{263,60279,3},{265,60283,3},{288,60293,3}, {290,60296,3},{293,60294,3},{307,60303,3},{312,60301,3},{315,60301,3},{317,60304,3}, {323,60308,3},{325,60311,3},{323,60313,3},{328,60316,3},{348,60328,3},{352,60328,3}, {352,60329,3},{362,60336,3},{370,60338,3},{372,60339,3},{373,60343,3},{377,60343,3}, {380,60348,3},{387,60354,3},{398,60359,3},{403,60368,3},{407,60373,3},{423,60378,3}, {423,60379,3},{407,60386,3},{393,60393,3},{398,60393,3},{407,60388,3},{428,60381,3}, {437,60379,3},{440,60383,3},{435,60386,3},{423,60403,3},{407,60416,3},{400,60419,3}, {378,60419,3},{368,60418,3},{365,60418,3},{387,60423,3},{390,60424,3},{392,60426,3}, {390,60428,3},{388,60428,3},{383,60428,3},{378,60428,3},{373,60429,3},{368,60429,3}, {362,60428,3},{357,60428,3},{352,60429,3},{347,60429,3},{342,60429,3},{335,60429,3}, {327,60431,3},{320,60434,3},{313,60434,3},{287,60444,3},{280,60444,3},{278,60448,3}, {273,60451,3},{268,60451,3},{265,60453,3},{257,60454,3},{248,60453,3},{250,60458,3}, {243,60463,3},{237,60461,3},{228,60464,3},{223,60468,3},{215,60468,3},{213,60466,3}, {213,60463,3},{215,60456,3},{212,60459,3},{208,60458,3},{205,60459,3},{205,60461,3}, {212,60463,3},{213,60471,3},{208,60476,3},{200,60478,3},{193,60483,3},{185,60484,3}, {182,60489,3},{180,60498,3},{182,60504,3},{178,60511,3},{178,60518,3},{173,60526,3}, {173,60529,3},{167,60539,3},{143,60548,3},{125,60544,3},{117,60548,3},{110,60543,3}, {107,60534,3},{110,60533,3},{103,60531,3},{98,60526,3},{95,60523,3},{85,60508,3}, {80,60504,3},{73,60501,3},{67,60491,3},{42,60479,3},{18,60459,3},{17,60456,3}, {17,60449,3},{15,60441,3},{5,60433,3},{65533,60428,3},{65531,60416,3},{65528,60413,3}, {65528,60403,3},{65526,60408,3},{65523,60411,3},{65508,60401,3},{65496,60396,3}, {65493,60391,3},{65489,60393,3},{65488,60391,3},{65483,60386,3},{65481,60383,3}, {65483,60378,3},{65481,60381,3},{65479,60378,3},{65481,60381,3},{65479,60383,3}, {65461,60366,3},{65458,60364,3},{65449,60364,3},{65433,60364,3},{65431,60361,3}, {65423,60353,3},{65419,60344,3},{65416,60343,3},{65406,60344,3},{65403,60343,3}, {65396,60336,3},{65394,60333,3},{65398,60323,3},{65401,60316,3},{65401,60313,3}, {65398,60308,3},{65393,60293,3},{65386,60288,3},{65383,60279,3},{65383,60274,3}, {65379,60266,3},{65376,60264,3},{65379,60283,3},{65379,60298,3},{65384,60309,3}, {65374,60313,3},{65368,60309,3},{65366,60311,3},{65368,60316,3},{65371,60318,3}, {65373,60321,3},{65374,60334,3},{65378,60343,3},{65381,60348,3},{65396,60369,3}, {65398,60379,3},{65403,60391,3},{65411,60396,3},{65413,60403,3},{65411,60401,3}, {65409,60403,3},{65414,60409,3},{65423,60416,3},{65423,60418,3},{65424,60418,3}, {65433,60433,3},{65436,60436,3},{65441,60436,3},{65443,60436,3},{65444,60439,3}, {65439,60441,3},{65441,60443,3},{65443,60441,3},{65444,60441,3},{65444,60451,3}, {65443,60454,3},{65439,60453,3},{65431,60454,3},{65428,60451,3},{65428,60448,3}, {65423,60446,3},{65423,60441,3},{65418,60451,3},{65413,60454,3},{65403,60453,3}, {65399,60453,3},{65396,60456,3},{65393,60454,3},{65381,60459,3},{65373,60468,3}, {65363,60471,3},{65358,60469,3},{65361,60463,3},{65358,60464,3},{65356,60468,3}, {65353,60474,3},{65343,60484,3},{65343,60489,3},{65338,60488,3},{65343,60491,3}, {65338,60491,3},{65328,60494,3},{65334,60498,3},{65334,60503,3},{65341,60504,3}, {65346,60511,3},{65344,60519,3},{65349,60521,3},{65351,60526,3},{65354,60538,3}, {65353,60541,3},{65348,60549,3},{65344,60549,3},{65339,60546,3},{65343,60551,3}, {65334,60551,3},{65328,60548,3},{65331,60551,3},{65326,60554,3},{65329,60553,3}, {65346,60551,3},{65344,60553,3},{65341,60553,3},{65344,60554,3},{65346,60554,3}, {65346,60559,3},{65343,60563,3},{65344,60563,3},{65346,60564,3},{65343,60566,3}, {65344,60569,3},{65341,60573,3},{65334,60578,3},{65336,60579,3},{65338,60578,3}, {65344,60573,3},{65344,60571,3},{65349,60573,3},{65351,60576,3},{65351,60579,3}, {65349,60583,3},{65358,60586,3},{65359,60589,3},{65354,60589,3},{65358,60594,3}, {65354,60593,3},{65351,60589,3},{65348,60593,3},{65346,60599,3},{65338,60598,3}, {65336,60598,3},{65333,60594,3},{65326,60593,3},{65324,60594,3},{65318,60591,3}, {65309,60586,3},{65304,60586,3},{65294,60581,3},{65288,60583,3},{65283,60581,3}, {65274,60574,3},{65273,60569,3},{65269,60568,3},{65268,60568,3},{65269,60574,3}, {65271,60583,3},{65274,60584,3},{65278,60584,3},{65279,60588,3},{65286,60593,3}, {65298,60593,3},{65318,60604,3},{65336,60609,3},{65346,60618,3},{65348,60619,3}, {65348,60624,3},{65351,60626,3},{65351,60638,3},{65358,60643,3},{65361,60644,3}, {65364,60648,3},{65368,60648,3},{65371,60651,3},{65373,60654,3},{65374,60654,3}, {65378,60659,3},{65386,60663,3},{65388,60666,3},{65389,60666,3},{65386,60673,3}, {65389,60676,3},{65378,60683,3},{65378,60684,3},{65373,60686,3},{65373,60691,3}, {65369,60694,3},{65376,60693,3},{65384,60688,3},{65383,60689,3},{65384,60698,3}, {65389,60703,3},{65389,60686,3},{65404,60688,3},{65408,60691,3},{65404,60696,3}, {65404,60703,3},{65418,60706,3},{65419,60708,3},{65418,60711,3},{65421,60708,3}, {65423,60709,3},{65424,60714,3},{65424,60709,3},{65431,60706,3},{65431,60713,3}, {65433,60718,3},{65446,60721,3},{65451,60723,3},{65456,60719,3},{65464,60726,3}, {65469,60731,3},{65469,60733,3},{65466,60734,3},{65463,60734,3},{65458,60739,3}, {65461,60741,3},{65466,60749,3},{65469,60749,3},{65468,60751,3},{65468,60753,3}, {65468,60756,3},{65471,60758,3},{65473,60761,3},{65469,60764,3},{65466,60764,3}, {65464,60764,3},{65461,60763,3},{65459,60763,3},{65463,60769,3},{65466,60774,3}, {65473,60778,3},{65471,60778,3},{65473,60781,3},{65471,60783,3},{65463,60788,3}, {65459,60786,3},{65459,60794,3},{65454,60796,3},{65458,60798,3},{65461,60798,3}, {65461,60794,3},{65466,60793,3},{65466,60791,3},{65463,60789,3},{65474,60789,3}, {65476,60791,3},{65476,60789,3},{65478,60796,3},{65471,60794,3},{65468,60794,3}, {65471,60796,3},{65468,60799,3},{65469,60798,3},{65471,60798,3},{65473,60801,3}, {65471,60804,3},{65474,60801,3},{65476,60808,3},{65473,60808,3},{65471,60808,3}, {65471,60811,3},{65468,60811,3},{65471,60813,3},{65473,60811,3},{65473,60816,3}, {65469,60816,3},{65468,60816,3},{65469,60814,3},{65466,60811,3},{65464,60813,3}, {65466,60814,3},{65464,60819,3},{65468,60819,3},{65463,60821,3},{65459,60816,3}, {65459,60821,3},{65456,60823,3},{65463,60823,3},{65461,60824,3},{65464,60824,3}, {65464,60826,3},{65468,60826,3},{65469,60828,3},{65466,60829,3},{65464,60828,3}, {65461,60828,3},{65461,60829,3},{65456,60829,3},{65456,60831,3},{65454,60828,3}, {65451,60828,3},{65449,60831,3},{65453,60831,3},{65456,60833,3},{65458,60834,3}, {65459,60834,3},{65461,60838,3},{65466,60839,3},{65466,60841,3},{65458,60839,3}, {65458,60841,3},{65456,60841,3},{65456,60843,3},{65453,60843,3},{65453,60844,3}, {65451,60843,3},{65449,60839,3},{65446,60839,3},{65446,60841,3},{65449,60841,3}, {65449,60846,3},{65451,60846,3},{65451,60848,3},{65456,60846,3},{65456,60848,3}, {65454,60849,3},{65456,60851,3},{65458,60849,3},{65463,60854,3},{65464,60853,3}, {65464,60854,3},{65463,60856,3},{65461,60854,3},{65459,60856,3},{65458,60854,3}, {65456,60854,3},{65456,60853,3},{65454,60854,3},{65453,60854,3},{65454,60856,3}, {65449,60856,3},{65446,60858,3},{65449,60858,3},{65451,60859,3},{65449,60859,3}, {65453,60861,3},{65448,60864,3},{65443,60861,3},{65441,60863,3},{65448,60866,3}, {65449,60866,3},{65453,60866,3},{65453,60868,3},{65449,60871,3},{65449,60873,3}, {65453,60871,3},{65454,60873,3},{65449,60876,3},{65446,60876,3},{65446,60874,3}, {65444,60876,3},{65443,60874,3},{65441,60871,3},{65443,60869,3},{65441,60868,3}, {65441,60866,3},{65436,60861,3},{65434,60861,3},{65439,60866,3},{65438,60873,3}, {65438,60874,3},{65441,60878,3},{65438,60879,3},{65433,60874,3},{65434,60876,3}, {65434,60879,3},{65436,60879,3},{65434,60881,3},{65433,60883,3},{65433,60886,3}, {65434,60889,3},{65433,60889,3},{65431,60889,3},{65433,60896,3},{65436,60899,3}, {65438,60901,3},{65434,60899,3},{65429,60899,3},{65428,60901,3},{65431,60901,3}, {65434,60903,3},{65431,60904,3},{65424,60904,3},{65433,60908,3},{65426,60911,3}, {65433,60908,3},{65434,60909,3},{65438,60909,3},{65441,60914,3},{65441,60911,3}, {65444,60911,3},{65444,60919,3},{65441,60919,3},{65439,60916,3},{65436,60916,3}, {65434,60914,3},{65434,60916,3},{65429,60914,3},{65429,60916,3},{65428,60916,3}, {65426,60914,3},{65418,60909,3},{65421,60913,3},{65421,60919,3},{65424,60921,3}, {65418,60923,3},{65426,60923,3},{65429,60926,3},{65423,60929,3},{65418,60926,3}, {65416,60926,3},{65414,60928,3},{65419,60931,3},{65418,60933,3},{65414,60931,3}, {65416,60933,3},{65421,60933,3},{65423,60934,3},{65426,60934,3},{65424,60936,3}, {65428,60939,3},{65426,60938,3},{65424,60939,3},{65424,60938,3},{65423,60938,3}, {65423,60941,3},{65421,60941,3},{65421,60936,3},{65419,60936,3},{65416,60936,3}, {65416,60939,3},{65411,60941,3},{65411,60943,3},{65416,60943,3},{65423,60946,3}, {65419,60948,3},{65418,60944,3},{65414,60946,3},{65419,60948,3},{65416,60949,3}, {65409,60946,3},{65413,60949,3},{65408,60948,3},{65408,60951,3},{65416,60953,3}, {65411,60954,3},{65406,60953,3},{65403,60954,3},{65408,60954,3},{65409,60956,3}, {65409,60959,3},{65413,60959,3},{65414,60959,3},{65414,60961,3},{65423,60964,3}, {65421,60966,3},{65419,60966,3},{65411,60963,3},{65409,60966,3},{65406,60966,3}, {65404,60964,3},{65404,60966,3},{65403,60968,3},{65399,60966,3},{65399,60973,3}, {65403,60974,3},{65408,60974,3},{65408,60978,3},{65406,60976,3},{65403,60978,3}, {65408,60979,3},{65409,60983,3},{65408,60983,3},{65408,60981,3},{65404,60981,3}, {65406,60983,3},{65404,60983,3},{65403,60981,3},{65401,60981,3},{65403,60984,3}, {65399,60986,3},{65396,60983,3},{65394,60983,3},{65401,60989,3},{65404,60989,3}, {65406,60994,3},{65406,60991,3},{65406,60996,3},{65401,60994,3},{65399,60989,3}, {65389,60988,3},{65389,60984,3},{65386,60983,3},{65389,60986,3},{65388,60988,3}, {65384,60984,3},{65386,60989,3},{65384,60989,3},{65383,60989,3},{65381,60991,3}, {65383,60991,3},{65388,60989,3},{65389,60991,3},{65393,60993,3},{65393,60994,3}, {65389,60994,3},{65393,60998,3},{65398,60999,3},{65401,61001,3},{65404,60999,3}, {65404,61003,3},{65399,61006,3},{65394,61006,3},{65391,61004,3},{65388,60998,3}, {65386,60998,3},{65388,60999,3},{65388,61001,3},{65383,60999,3},{65381,60996,3}, {65379,60996,3},{65378,60998,3},{65379,60998,3},{65381,60998,3},{65379,61003,3}, {65373,61001,3},{65369,60999,3},{65364,60999,3},{65363,61001,3},{65363,61008,3}, {65366,61009,3},{65368,61014,3},{65374,61011,3},{65378,61011,3},{65381,61014,3}, {65383,61018,3},{65388,61019,3},{65388,61021,3},{65384,61023,3},{65388,61023,3}, {65389,61026,3},{65389,61029,3},{65388,61028,3},{65388,61026,3},{65388,61029,3}, {65393,61029,3},{65388,61031,3},{65388,61036,3},{65384,61038,3},{65384,61034,3}, {65383,61038,3},{65381,61039,3},{65378,61034,3},{65376,61034,3},{65378,61036,3}, {65376,61039,3},{65381,61041,3},{65386,61041,3},{65388,61044,3},{65388,61043,3}, {65391,61048,3},{65394,61049,3},{65391,61051,3},{65388,61051,3},{65384,61046,3}, {65383,61046,3},{65381,61044,3},{65376,61044,3},{65376,61041,3},{65371,61044,3}, {65371,61043,3},{65371,61046,3},{65374,61044,3},{65376,61048,3},{65373,61051,3}, {65373,61053,3},{65373,61051,3},{65379,61053,3},{65378,61054,3},{65374,61056,3}, {65373,61054,3},{65374,61056,3},{65373,61058,3},{65371,61056,3},{65368,61058,3}, {65366,61056,3},{65363,61059,3},{65361,61054,3},{65359,61056,3},{65363,61059,3}, {65364,61059,3},{65364,61066,3},{65359,61064,3},{65354,61054,3},{65358,61063,3}, {65354,61066,3},{65356,61069,3},{65361,61071,3},{65364,61071,3},{65361,61076,3}, {65358,61073,3},{65353,61073,3},{65353,61069,3},{65353,61074,3},{65351,61076,3}, {65353,61078,3},{65354,61079,3},{65349,61079,3},{65353,61083,3},{65349,61083,3}, {65348,61081,3},{65346,61076,3},{65346,61084,3},{65336,61088,3},{65334,61086,3}, {65334,61079,3},{65333,61078,3},{65333,61074,3},{65333,61084,3},{65331,61086,3}, {65328,61081,3},{65323,61078,3},{65321,61074,3},{65321,61071,3},{65319,61078,3}, {65313,61071,3},{65313,61066,3},{65309,61068,3},{65311,61061,3},{65308,61058,3}, {65308,61054,3},{65306,61054,3},{65306,61058,3},{65309,61063,3},{65309,61066,3}, {65306,61066,3},{65308,61068,3},{65308,61069,3},{65301,61068,3},{65299,61066,3}, {65296,61064,3},{65298,61066,3},{65299,61069,3},{65294,61069,3},{65293,61071,3}, {65304,61071,3},{65309,61074,3},{65314,61081,3},{65316,61081,3},{65321,61084,3}, {65321,61091,3},{65319,61094,3},{65318,61094,3},{65316,61096,3},{65311,61098,3}, {65308,61098,3},{65308,61099,3},{65303,61099,3},{65298,61099,3},{65296,61098,3}, {65294,61093,3},{65298,61088,3},{65299,61084,3},{65298,61081,3},{65296,61079,3}, {65294,61079,3},{65298,61084,3},{65296,61086,3},{65288,61084,3},{65284,61083,3}, {65284,61079,3},{65279,61076,3},{65276,61069,3},{65274,61071,3},{65276,61071,3}, {65278,61078,3},{65281,61079,3},{65283,61081,3},{65281,61083,3},{65268,61073,3}, {65264,61073,3},{65258,61071,3},{65251,61071,3},{65244,61068,3},{65236,61068,3}, {65234,61069,3},{65234,61073,3},{65231,61074,3},{65221,61066,3},{65218,61064,3}, {65216,61058,3},{65209,61058,3},{65208,61059,3},{65206,61058,3},{65204,61059,3}, {65206,61061,3},{65213,61059,3},{65216,61063,3},{65218,61071,3},{65224,61074,3}, {65226,61079,3},{65233,61083,3},{65238,61091,3},{65243,61094,3},{65253,61096,3}, {65256,61096,3},{65258,61098,3},{65258,61096,3},{65263,61098,3},{65268,61098,3}, {65273,61099,3},{65269,61101,3},{65281,61099,3},{65283,61101,3},{65283,61104,3}, {65278,61108,3},{65281,61108,3},{65283,61106,3},{65288,61108,3},{65289,61114,3}, {65294,61124,3},{65294,61128,3},{65296,61129,3},{65296,61133,3},{65294,61133,3}, {65291,61133,3},{65291,61126,3},{65289,61129,3},{65286,61131,3},{65289,61131,3}, {65284,61133,3},{65281,61131,3},{65281,61129,3},{65276,61124,3},{65274,61126,3}, {65269,61123,3},{65266,61118,3},{65269,61114,3},{65266,61116,3},{65264,61114,3}, {65264,61111,3},{65258,61103,3},{65253,61103,3},{65258,61104,3},{65256,61106,3}, {65254,61106,3},{65253,61106,3},{65254,61108,3},{65254,61109,3},{65259,61111,3}, {65256,61113,3},{65259,61113,3},{65259,61118,3},{65258,61116,3},{65254,61119,3}, {65251,61114,3},{65249,61116,3},{65253,61121,3},{65256,61123,3},{65261,61126,3}, {65259,61126,3},{65261,61128,3},{65258,61128,3},{65258,61129,3},{65256,61129,3}, {65256,61128,3},{65256,61129,3},{65263,61129,3},{65266,61131,3},{65273,61136,3}, {65274,61139,3},{65273,61141,3},{65276,61139,3},{65281,61143,3},{65279,61144,3}, {65273,61149,3},{65279,61148,3},{65281,61154,3},{65281,61156,3},{65284,61161,3}, {65281,61161,3},{65286,61163,3},{65288,61164,3},{65281,61166,3},{65279,61164,3}, {65281,61171,3},{65283,61168,3},{65284,61168,3},{65288,61171,3},{65284,61169,3}, {65286,61173,3},{65283,61174,3},{65284,61176,3},{65283,61181,3},{65284,61179,3}, {65286,61179,3},{65288,61181,3},{65286,61181,3},{65288,61183,3},{65289,61183,3}, {65289,61181,3},{65293,61183,3},{65293,61184,3},{65288,61184,3},{65283,61188,3}, {65281,61186,3},{65281,61188,3},{65284,61189,3},{65281,61191,3},{65281,61193,3}, {65283,61191,3},{65286,61191,3},{65286,61194,3},{65291,61189,3},{65291,61194,3}, {65294,61189,3},{65298,61188,3},{65299,61189,3},{65299,61193,3},{65298,61193,3}, {65298,61199,3},{65299,61201,3},{65296,61219,3},{65291,61233,3},{65289,61243,3}, {65286,61246,3},{65284,61251,3},{65279,61256,3},{65279,61266,3},{65273,61271,3}, {65269,61278,3},{65266,61283,3},{65269,61288,3},{65266,61288,3},{65266,61284,3}, {65263,61288,3},{65261,61291,3},{65263,61294,3},{65261,61294,3},{65259,61301,3}, {65261,61309,3},{65258,61311,3},{65254,61309,3},{65256,61313,3},{65253,61313,3}, {65256,61316,3},{65254,61324,3},{65256,61326,3},{65253,61328,3},{65254,61329,3}, {65253,61333,3},{65254,61336,3},{65251,61341,3},{65258,61343,3},{65258,61341,3}, {65263,61334,3},{65261,61341,3},{65263,61353,3},{65259,61353,3},{65261,61354,3}, {65256,61361,3},{65251,61369,3},{65249,61369,3},{65251,61368,3},{65249,61368,3}, {65249,61366,3},{65248,61369,3},{65249,61371,3},{65246,61376,3},{65244,61384,3}, {65246,61389,3},{65246,61391,3},{65243,61391,3},{65241,61393,3},{65244,61393,3}, {65246,61394,3},{65243,61403,3},{65241,61403,3},{65239,61408,3},{65234,61409,3}, {65234,61413,3},{65238,61413,3},{65243,61409,3},{65246,61408,3},{65246,61404,3}, {65248,61409,3},{65248,61421,3},{65244,61428,3},{65248,61426,3},{65248,61446,3}, {65251,61451,3},{65248,61453,3},{65249,61454,3},{65253,61463,3},{65253,61476,3}, {65256,61484,3},{65258,61488,3},{65254,61494,3},{65256,61504,3},{65254,61518,3}, {65251,61521,3},{65251,61523,3},{65253,61524,3},{65251,61529,3},{65251,61533,3}, {65251,61536,3},{65244,61549,3},{65239,61554,3},{65234,61564,3},{65233,61564,3}, {65233,61563,3},{65231,61566,3},{65234,61566,3},{65234,61568,3},{65231,61574,3}, {65228,61578,3},{65221,61588,3},{65218,61601,3},{65213,61606,3},{65213,61609,3}, {65208,61614,3},{65203,61619,3},{65203,61624,3},{65198,61628,3},{65198,61636,3}, {65194,61641,3},{65186,61644,3},{65186,61648,3},{65181,61651,3},{65181,61656,3}, {65176,61661,3},{65171,61666,3},{65168,61671,3},{65164,61688,3},{65166,61688,3}, {65166,61689,3},{65151,61698,3},{65143,61704,3},{65141,61711,3},{65133,61716,3}, {65131,61718,3},{65126,61719,3},{65114,61731,3},{65104,61744,3},{65101,61748,3}, {65098,61751,3},{65096,61759,3},{65083,61764,3},{65078,61771,3},{65073,61778,3}, {65073,61781,3},{65073,61788,3},{65071,61789,3},{65066,61803,3},{65063,61808,3}, {65061,61809,3},{65058,61809,3},{65049,61814,3},{65043,61819,3},{65044,61828,3}, {65041,61833,3},{65043,61841,3},{65041,61848,3},{65029,61859,3},{65028,61866,3}, {65026,61868,3},{65026,61874,3},{65023,61881,3},{65024,61883,3},{65028,61878,3}, {65028,61894,3},{65024,61908,3},{65026,61911,3},{65026,61908,3},{65026,61923,3}, {65031,61939,3},{65029,61948,3},{65024,61976,3},{65019,61988,3},{65016,61991,3}, {65014,61994,3},{65008,61999,3},{65001,62001,3},{64998,62004,3},{64989,62008,3}, {64988,62009,3},{64978,62013,3},{64968,62016,3},{64966,62016,3},{64961,62016,3}, {64956,62019,3},{64953,62019,3},{64949,62019,3},{64948,62021,3},{64943,62021,3}, {64938,62026,3},{64931,62024,3},{64918,62026,3},{64919,62024,3},{64918,62024,3}, {64914,62021,3},{64913,62023,3},{64916,62028,3},{64913,62029,3},{64913,62033,3}, {64899,62034,3},{64898,62038,3},{64896,62038,3},{64883,62039,3},{64873,62039,3}, {64866,62043,3},{64858,62041,3},{64856,62043,3},{64848,62044,3},{64844,62051,3}, {64843,62049,3},{64838,62051,3},{64836,62048,3},{64833,62049,3},{64829,62046,3}, {64828,62046,3},{64826,62046,3},{64828,62044,3},{64824,62046,3},{64823,62044,3}, {64828,62051,3},{64838,62053,3},{64834,62054,3},{64829,62053,3},{64826,62053,3}, {64821,62054,3},{64819,62058,3},{64813,62056,3},{64801,62056,3},{64783,62054,3}, {64781,62054,3},{64783,62048,3},{64779,62043,3},{64781,62053,3},{64778,62051,3}, {64778,62054,3},{64773,62056,3},{64768,62053,3},{64771,62053,3},{64768,62051,3}, {64774,62049,3},{64771,62048,3},{64766,62051,3},{64763,62046,3},{64763,62051,3}, {64763,62048,3},{64754,62046,3},{64753,62053,3},{64748,62051,3},{64751,62053,3}, {64743,62054,3},{64734,62053,3},{64733,62051,3},{64729,62051,3},{64729,62048,3}, {64731,62046,3},{64733,62043,3},{64731,62046,3},{64728,62046,3},{64726,62048,3}, {64709,62043,3},{64701,62043,3},{64699,62041,3},{64693,62039,3},{64686,62036,3}, {64681,62036,3},{64673,62029,3},{64664,62028,3},{64661,62028,3},{64653,62023,3}, {64646,62023,3},{64638,62018,3},{64633,62013,3},{64618,62006,3},{64604,61996,3}, {64603,61993,3},{64601,61989,3},{64583,61978,3},{64578,61971,3},{64576,61969,3}, {64573,61968,3},{64569,61966,3},{64569,61963,3},{64566,61958,3},{64571,61963,3}, {64576,61958,3},{64576,61956,3},{64568,61958,3},{64563,61949,3},{64569,61948,3}, {64571,61946,3},{64574,61946,3},{64576,61941,3},{64573,61941,3},{64569,61946,3}, {64563,61948,3},{64559,61949,3},{64561,61951,3},{64563,61956,3},{64559,61953,3}, {64548,61946,3},{64543,61941,3},{64529,61933,3},{64526,61928,3},{64521,61923,3}, {64514,61914,3},{64508,61908,3},{64501,61908,3},{64493,61901,3},{64488,61898,3}, {64484,61894,3},{64481,61879,3},{64463,61851,3},{64458,61844,3},{64444,61836,3}, {64441,61831,3},{64439,61833,3},{64434,61829,3},{64423,61823,3},{64424,61821,3}, {64426,61823,3},{64428,61818,3},{64433,61816,3},{64434,61808,3},{64429,61809,3}, {64429,61813,3},{64426,61816,3},{64428,61814,3},{64426,61814,3},{64424,61819,3}, {64418,61819,3},{64416,61821,3},{64414,61816,3},{64408,61809,3},{64393,61803,3}, {64393,61799,3},{64394,61798,3},{64396,61798,3},{64396,61796,3},{64401,61799,3}, {64404,61799,3},{64406,61803,3},{64411,61806,3},{64411,61809,3},{64416,61806,3}, {64411,61806,3},{64418,61803,3},{64418,61801,3},{64413,61803,3},{64411,61804,3}, {64409,61804,3},{64411,61801,3},{64408,61803,3},{64406,61799,3},{64403,61796,3}, {64399,61796,3},{64394,61794,3},{64396,61793,3},{64399,61793,3},{64398,61791,3}, {64399,61789,3},{64396,61791,3},{64391,61798,3},{64388,61794,3},{64384,61788,3}, {64386,61796,3},{64389,61798,3},{64389,61799,3},{64376,61791,3},{64338,61774,3}, {64323,61766,3},{64298,61748,3},{64293,61743,3},{64278,61736,3},{64263,61721,3}, {64243,61704,3},{64234,61688,3},{64234,61683,3},{64239,61684,3},{64243,61684,3}, {64244,61688,3},{64243,61688,3},{64246,61688,3},{64251,61688,3},{64256,61686,3}, {64263,61686,3},{64264,61686,3},{64263,61683,3},{64264,61679,3},{64264,61674,3}, {64264,61673,3},{64268,61673,3},{64273,61671,3},{64274,61666,3},{64278,61666,3}, {64274,61664,3},{64268,61664,3},{64264,61661,3},{64263,61663,3},{64254,61658,3}, {64251,61654,3},{64253,61651,3},{64263,61648,3},{64266,61648,3},{64268,61651,3}, {64271,61649,3},{64268,61649,3},{64266,61646,3},{64263,61646,3},{64263,61644,3}, {64258,61646,3},{64256,61649,3},{64251,61651,3},{64249,61653,3},{64251,61656,3}, {64249,61658,3},{64249,61659,3},{64249,61664,3},{64246,61661,3},{64238,61659,3}, {64234,61658,3},{64228,61646,3},{64224,61646,3},{64221,61654,3},{64219,61651,3}, {64216,61649,3},{64213,61643,3},{64206,61639,3},{64203,61639,3},{64198,61641,3}, {64199,61634,3},{64199,61633,3},{64203,61631,3},{64189,61629,3},{64183,61628,3}, {64178,61628,3},{64176,61624,3},{64176,61628,3},{64179,61629,3},{64183,61628,3}, {64188,61629,3},{64188,61633,3},{64184,61636,3},{64184,61634,3},{64183,61636,3}, {64179,61636,3},{64176,61636,3},{64169,61639,3},{64166,61639,3},{64161,61638,3}, {64153,61638,3},{64153,61636,3},{64161,61629,3},{64161,61628,3},{64164,61626,3}, {64164,61623,3},{64161,61621,3},{64161,61623,3},{64163,61624,3},{64159,61624,3}, {64158,61629,3},{64153,61633,3},{64151,61638,3},{64146,61634,3},{64149,61629,3}, {64141,61629,3},{64143,61631,3},{64138,61638,3},{64134,61636,3},{64129,61638,3}, {64128,61634,3},{64129,61631,3},{64128,61629,3},{64126,61629,3},{64121,61628,3}, {64118,61633,3},{64119,61633,3},{64121,61631,3},{64124,61629,3},{64129,61641,3}, {64131,61641,3},{64134,61639,3},{64136,61639,3},{64138,61639,3},{64139,61641,3}, {64141,61638,3},{64143,61639,3},{64143,61638,3},{64144,61638,3},{64148,61643,3}, {64144,61644,3},{64133,61644,3},{64123,61639,3},{64119,61639,3},{64116,61638,3}, {64111,61636,3},{64106,61638,3},{64101,61636,3},{64094,61636,3},{64071,61629,3}, {64059,61631,3},{64058,61633,3},{64056,61631,3},{64054,61634,3},{64046,61633,3}, {64038,61636,3},{64018,61636,3},{63984,61641,3},{63983,61639,3},{63981,61641,3}, {63966,61643,3},{63951,61649,3},{63938,61644,3},{63924,61641,3},{63921,61641,3}, {63908,61634,3},{63899,61636,3},{63894,61631,3},{63868,61626,3},{63859,61623,3}, {63851,61623,3},{63846,61624,3},{63836,61619,3},{63826,61619,3},{63821,61616,3}, {63808,61614,3},{63798,61614,3},{63791,61618,3},{63778,61618,3},{63774,61619,3}, {63768,61623,3},{63753,61609,3},{63749,61608,3},{63744,61594,3},{63741,61591,3}, {63718,61574,3},{63713,61571,3},{63684,61563,3},{63676,61564,3},{63666,61561,3}, {63644,61563,3},{63606,61566,3},{63596,61566,3},{63573,61556,3},{63571,61554,3}, {63568,61544,3},{63561,61534,3},{63544,61528,3},{63541,61521,3},{63539,61523,3}, {63533,61521,3},{63531,61518,3},{63524,61519,3},{63513,61514,3},{63508,61513,3}, {63509,61509,3},{63508,61508,3},{63509,61506,3},{63513,61506,3},{63513,61499,3}, {63511,61501,3},{63509,61498,3},{63504,61499,3},{63504,61503,3},{63503,61503,3}, {63504,61506,3},{63504,61509,3},{63498,61506,3},{63476,61496,3},{63473,61493,3}, {63474,61491,3},{63473,61489,3},{63463,61483,3},{63461,61479,3},{63453,61474,3}, {63454,61471,3},{63451,61459,3},{63443,61454,3},{63434,61454,3},{63426,61451,3}, {63413,61439,3},{63401,61439,3},{63388,61431,3},{63384,61429,3},{63379,61431,3}, {63374,61434,3},{63359,61434,3},{63341,61439,3},{63338,61439,3},{63334,61436,3}, {63323,61416,3},{63311,61376,3},{63301,61359,3},{63298,61358,3},{63294,61354,3}, {63283,61343,3},{63283,61339,3},{63279,61338,3},{63268,61336,3},{63263,61338,3}, {63259,61341,3},{63259,61344,3},{63261,61344,3},{63263,61349,3},{63259,61349,3}, {63258,61344,3},{63254,61343,3},{63253,61338,3},{63249,61336,3},{63248,61334,3}, {63244,61333,3},{63241,61333,3},{63243,61336,3},{63241,61336,3},{63239,61334,3}, {63238,61334,3},{63241,61331,3},{63243,61279,3},{63241,61269,3},{63239,61268,3}, {63238,61233,3},{63241,61231,3},{63241,61228,3},{63243,61223,3},{63244,61228,3}, {63246,61226,3},{63248,61223,3},{63254,61228,3},{63258,61233,3},{63258,61229,3}, {63259,61229,3},{63261,61233,3},{63264,61234,3},{63268,61234,3},{63269,61228,3}, {63266,61226,3},{63266,61221,3},{63263,61214,3},{63263,61213,3},{63261,61209,3}, {63256,61209,3},{63251,61213,3},{63253,61214,3},{63251,61216,3},{63249,61213,3}, {63248,61219,3},{63243,61219,3},{63243,61221,3},{63239,61221,3},{63236,61214,3}, {63234,61194,3},{63231,61184,3},{63229,61179,3},{63231,61178,3},{63231,61173,3}, {63229,61144,3},{63226,61136,3},{63229,61136,3},{63233,61139,3},{63231,61146,3}, {63233,61146,3},{63231,61156,3},{63234,61176,3},{63238,61169,3},{63238,61166,3}, {63243,61161,3},{63243,61158,3},{63243,61156,3},{63244,61156,3},{63244,61149,3}, {63246,61149,3},{63244,61144,3},{63243,61138,3},{63238,61133,3},{63238,61131,3}, {63241,61133,3},{63243,61131,3},{63234,61126,3},{63233,61123,3},{63233,61119,3}, {63231,61118,3},{63231,61113,3},{63234,61113,3},{63236,61109,3},{63234,61108,3}, {63234,61106,3},{63236,61106,3},{63234,61101,3},{63238,61101,3},{63238,61104,3}, {63239,61106,3},{63243,61103,3},{63244,61104,3},{63244,61101,3},{63241,61101,3}, {63239,61099,3},{63243,61094,3},{63234,61093,3},{63236,61089,3},{63231,61078,3}, {63229,61076,3},{63231,61076,3},{63231,61069,3},{63229,61068,3},{63224,61066,3}, {63223,61066,3},{63216,61064,3},{63214,61066,3},{63216,61069,3},{63218,61071,3}, {63216,61074,3},{63213,61068,3},{63213,61073,3},{63206,61071,3},{63211,61074,3}, {63213,61079,3},{63213,61081,3},{63211,61079,3},{63209,61079,3},{63209,61083,3}, {63206,61086,3},{63206,61084,3},{63204,61081,3},{63201,61078,3},{63203,61071,3}, {63201,61064,3},{63199,61063,3},{63199,61056,3},{63198,61053,3},{63199,61051,3}, {63199,61046,3},{63201,61048,3},{63203,61046,3},{63196,61038,3},{63194,61031,3}, {63193,61031,3},{63191,61036,3},{63189,61031,3},{63184,61029,3},{63188,61028,3}, {63184,61026,3},{63188,61021,3},{63183,61021,3},{63183,61014,3},{63178,61016,3}, {63176,61011,3},{63179,61006,3},{63174,61001,3},{63174,60994,3},{63171,60993,3}, {63166,60993,3},{63163,60996,3},{63158,60998,3},{63153,60994,3},{63153,60989,3}, {63151,60986,3},{63156,60981,3},{63156,60974,3},{63158,60973,3},{63158,60969,3}, {63159,60948,3},{63158,60938,3},{63153,60933,3},{63154,60931,3},{63151,60921,3}, {63148,60919,3},{63144,60913,3},{63144,60916,3},{63149,60923,3},{63149,60924,3}, {63143,60919,3},{63136,60919,3},{63138,60914,3},{63133,60909,3},{63133,60906,3}, {63134,60904,3},{63138,60909,3},{63144,60906,3},{63146,60899,3},{63148,60899,3}, {63149,60898,3},{63144,60898,3},{63144,60894,3},{63143,60896,3},{63143,60891,3}, {63139,60894,3},{63138,60894,3},{63138,60899,3},{63133,60898,3},{63134,60896,3}, {63133,60888,3},{63124,60873,3},{63111,60846,3},{63104,60838,3},{63098,60836,3}, {63094,60836,3},{63093,60831,3},{63094,60831,3},{63091,60829,3},{63079,60814,3}, {63071,60796,3},{63068,60794,3},{63066,60783,3},{63061,60774,3},{63056,60768,3}, {63049,60756,3},{63048,60756,3},{63046,60753,3},{63043,60751,3},{63039,60748,3}, {63034,60744,3},{63029,60741,3},{63031,60736,3},{63033,60736,3},{63034,60739,3}, {63034,60733,3},{63033,60734,3},{63031,60731,3},{63029,60731,3},{63028,60739,3}, {63031,60746,3},{63026,60746,3},{63016,60741,3},{63014,60738,3},{63013,60734,3}, {63001,60724,3},{62998,60719,3},{62991,60716,3},{62989,60713,3},{62991,60711,3}, {62993,60711,3},{62999,60714,3},{63003,60713,3},{63006,60718,3},{63006,60723,3}, {63009,60723,3},{63008,60721,3},{63006,60714,3},{63004,60711,3},{63006,60708,3}, {63003,60708,3},{62999,60704,3},{63001,60703,3},{63003,60704,3},{63003,60703,3}, {63009,60703,3},{63011,60704,3},{63013,60703,3},{63011,60701,3},{63008,60699,3}, {63006,60701,3},{63006,60699,3},{63006,60696,3},{63011,60693,3},{63011,60691,3}, {63004,60693,3},{63003,60686,3},{63001,60693,3},{62999,60693,3},{62998,60691,3}, {62998,60693,3},{62993,60694,3},{62991,60691,3},{62989,60691,3},{62988,60688,3}, {62989,60686,3},{62991,60673,3},{63001,60661,3},{62994,60664,3},{62989,60668,3}, {62989,60663,3},{62986,60666,3},{62986,60674,3},{62984,60674,3},{62984,60671,3}, {62983,60674,3},{62981,60676,3},{62983,60676,3},{62984,60684,3},{62983,60686,3}, {62981,60689,3},{62978,60686,3},{62978,60689,3},{62981,60691,3},{62979,60694,3}, {62981,60698,3},{62978,60699,3},{62971,60691,3},{62958,60684,3},{62954,60684,3}, {62951,60683,3},{62951,60679,3},{62956,60678,3},{62956,60676,3},{62954,60674,3}, {62953,60676,3},{62949,60678,3},{62953,60671,3},{62951,60668,3},{62951,60663,3}, {62949,60659,3},{62948,60659,3},{62949,60664,3},{62948,60673,3},{62949,60679,3}, {62944,60679,3},{62931,60674,3},{62929,60676,3},{62919,60678,3},{62918,60676,3}, {62916,60673,3},{62914,60671,3},{62911,60668,3},{62914,60663,3},{62926,60659,3}, {62929,60658,3},{62929,60656,3},{62924,60658,3},{62923,60656,3},{62916,60661,3}, {62911,60661,3},{62908,60658,3},{62908,60661,3},{62906,60658,3},{62904,60656,3}, {62904,60661,3},{62901,60664,3},{62899,60669,3},{62898,60671,3},{62894,60673,3}, {62893,60676,3},{62878,60668,3},{62866,60668,3},{62863,60669,3},{62859,60673,3}, {62859,60678,3},{62858,60678,3},{62854,60676,3},{62853,60674,3},{62848,60673,3}, {62844,60674,3},{62836,60674,3},{62834,60679,3},{62828,60678,3},{62826,60674,3}, {62824,60674,3},{62819,60679,3},{62821,60683,3},{62824,60684,3},{62819,60688,3}, {62818,60686,3},{62814,60688,3},{62814,60683,3},{62816,60684,3},{62818,60683,3}, {62811,60674,3},{62804,60676,3},{62804,60679,3},{62798,60681,3},{62799,60679,3}, {62794,60678,3},{62793,60674,3},{62789,60671,3},{62779,60676,3},{62778,60679,3}, {62774,60678,3},{62776,60676,3},{62771,60671,3},{62764,60673,3},{62761,60676,3}, {62759,60673,3},{62753,60679,3},{62751,60678,3},{62749,60679,3},{62738,60674,3}, {62733,60676,3},{62728,60673,3},{62718,60671,3},{62713,60671,3},{62713,60673,3}, {62708,60668,3},{62701,60668,3},{62698,60663,3},{62688,60661,3},{62686,60658,3}, {62693,60654,3},{62698,60656,3},{62704,60649,3},{62701,60649,3},{62696,60649,3}, {62694,60649,3},{62693,60653,3},{62688,60651,3},{62684,60656,3},{62683,60658,3}, {62684,60661,3},{62683,60661,3},{62679,60659,3},{62678,60656,3},{62674,60654,3}, {62669,60639,3},{62653,60614,3},{62639,60598,3},{62624,60581,3},{62603,60566,3}, {62599,60561,3},{62579,60548,3},{62559,60536,3},{62553,60531,3},{62544,60528,3}, {62539,60526,3},{62534,60524,3},{62529,60521,3},{62524,60519,3},{62519,60518,3}, {62514,60514,3},{62509,60514,3},{62504,60513,3},{62499,60509,3},{62496,60508,3}, {62489,60504,3},{62486,60503,3},{62481,60499,3},{62478,60496,3},{62473,60493,3}, {62468,60489,3},{62463,60486,3},{62459,60483,3},{62454,60479,3},{62449,60478,3}, {62446,60474,3},{62441,60471,3},{62436,60468,3},{62413,60448,3},{62394,60429,3}, {62364,60389,3},{62341,60348,3},{62328,60338,3},{62323,60331,3},{62319,60329,3}, {62323,60328,3},{62333,60333,3},{62338,60331,3},{62341,60334,3},{62351,60328,3}, {62353,60328,3},{62354,60333,3},{62353,60339,3},{62349,60343,3},{62348,60346,3}, {62349,60351,3},{62353,60354,3},{62356,60353,3},{62356,60366,3},{62366,60378,3}, {62374,60384,3},{62378,60388,3},{62374,60391,3},{62379,60389,3},{62386,60393,3}, {62384,60394,3},{62383,60401,3},{62384,60404,3},{62389,60411,3},{62396,60418,3}, {62408,60421,3},{62421,60419,3},{62428,60419,3},{62429,60423,3},{62428,60428,3}, {62429,60434,3},{62423,60436,3},{62423,60438,3},{62426,60439,3},{62428,60443,3}, {62429,60438,3},{62431,60438,3},{62443,60441,3},{62446,60438,3},{62446,60446,3}, {62458,60463,3},{62463,60466,3},{62476,60469,3},{62481,60468,3},{62489,60468,3}, {62498,60463,3},{62501,60468,3},{62496,60473,3},{62493,60471,3},{62491,60473,3}, {62488,60476,3},{62491,60479,3},{62496,60479,3},{62499,60481,3},{62509,60483,3}, {62518,60474,3},{62518,60473,3},{62514,60469,3},{62514,60468,3},{62513,60468,3}, {62511,60471,3},{62506,60469,3},{62508,60459,3},{62504,60458,3},{62503,60456,3}, {62504,60444,3},{62496,60443,3},{62493,60444,3},{62493,60443,3},{62496,60438,3}, {62498,60433,3},{62501,60431,3},{62506,60434,3},{62509,60434,3},{62509,60431,3}, {62513,60429,3},{62509,60423,3},{62513,60421,3},{62513,60419,3},{62516,60418,3}, {62518,60413,3},{62521,60414,3},{62526,60411,3},{62531,60413,3},{62531,60409,3}, {62534,60409,3},{62534,60408,3},{62528,60406,3},{62526,60408,3},{62521,60404,3}, {62518,60406,3},{62514,60403,3},{62513,60408,3},{62511,60409,3},{62508,60408,3}, {62506,60408,3},{62506,60411,3},{62504,60413,3},{62506,60416,3},{62499,60418,3}, {62499,60419,3},{62501,60426,3},{62499,60428,3},{62496,60424,3},{62494,60423,3}, {62496,60421,3},{62496,60418,3},{62496,60416,3},{62486,60409,3},{62474,60406,3}, {62461,60409,3},{62456,60409,3},{62456,60408,3},{62458,60404,3},{62459,60408,3}, {62471,60404,3},{62473,60403,3},{62471,60399,3},{62469,60398,3},{62461,60398,3}, {62448,60401,3},{62448,60391,3},{62441,60388,3},{62431,60388,3},{62428,60391,3}, {62423,60374,3},{62414,60371,3},{62409,60373,3},{62409,60356,3},{62404,60349,3}, {62404,60344,3},{62404,60343,3},{62403,60339,3},{62399,60343,3},{62398,60338,3}, {62394,60336,3},{62381,60336,3},{62378,60338,3},{62373,60336,3},{62373,60334,3}, {62379,60333,3},{62379,60328,3},{62376,60326,3},{62374,60329,3},{62376,60331,3}, {62373,60333,3},{62368,60328,3},{62363,60314,3},{62359,60314,3},{62356,60316,3}, {62354,60314,3},{62353,60314,3},{62351,60311,3},{62348,60313,3},{62348,60316,3}, {62343,60323,3},{62339,60313,3},{62331,60311,3},{62331,60316,3},{62328,60313,3}, {62326,60314,3},{62329,60321,3},{62333,60324,3},{62333,60328,3},{62331,60328,3}, {62329,60323,3},{62324,60319,3},{62323,60321,3},{62329,60328,3},{62324,60326,3}, {62319,60328,3},{62311,60313,3},{62286,60299,3},{62248,60286,3},{62223,60273,3}, {62211,60263,3},{62203,60253,3},{62183,60226,3},{62171,60213,3},{62163,60199,3}, {62291,59716,131},{62304,59726,3},{62311,59726,3},{62319,59718,3},{62326,59721,3}, {62336,59721,3},{62341,59719,3},{62348,59716,3},{62353,59719,3},{62354,59729,3}, {62358,59733,3},{62378,59738,3},{62383,59736,3},{62388,59729,3},{62389,59728,3}, {62396,59738,3},{62403,59738,3},{62408,59743,3},{62413,59746,3},{62421,59744,3}, {62429,59751,3},{62434,59749,3},{62443,59744,3},{62444,59749,3},{62444,59754,3}, {62448,59756,3},{62464,59754,3},{62473,59751,3},{62476,59748,3},{62483,59748,3}, {62486,59749,3},{62501,59769,3},{62508,59773,3},{62513,59773,3},{62513,59779,3}, {62508,59786,3},{62509,59789,3},{62509,59793,3},{62506,59796,3},{62508,59799,3}, {62509,59803,3},{62506,59808,3},{62508,59811,3},{62506,59813,3},{62506,59814,3}, {62513,59821,3},{62518,59821,3},{62524,59828,3},{62526,59843,3},{62524,59846,3}, {62526,59849,3},{62524,59856,3},{62519,59859,3},{62513,59873,3},{62511,59874,3}, {62506,59874,3},{62506,59879,3},{62498,59888,3},{62494,59894,3},{62488,59899,3}, {62479,59914,3},{62478,59914,3},{62476,59918,3},{62471,59919,3},{62468,59924,3}, {62463,59928,3},{62456,59936,3},{62449,59938,3},{62443,59936,3},{62428,59936,3}, {62429,59953,3},{62431,59954,3},{62434,59961,3},{62441,59964,3},{62441,59973,3}, {62449,59973,3},{62451,59974,3},{62451,59978,3},{62441,59989,3},{62439,59994,3}, {62436,59996,3},{62433,60001,3},{62428,60003,3},{62423,60003,3},{62421,60008,3}, {62413,60011,3},{62411,60014,3},{62409,60021,3},{62403,60028,3},{62404,60031,3}, {62408,60031,3},{62409,60034,3},{62399,60043,3},{62398,60048,3},{62394,60053,3}, {62389,60078,3},{62386,60079,3},{62378,60089,3},{62369,60089,3},{62364,60098,3}, {62358,60104,3},{62344,60121,3},{62344,60124,3},{62349,60129,3},{62346,60134,3}, {62343,60136,3},{62343,60143,3},{62339,60148,3},{62334,60149,3},{62331,60156,3}, {62331,60161,3},{62326,60163,3},{62318,60166,3},{62316,60169,3},{62309,60173,3}, {62306,60171,3},{62299,60173,3},{62293,60179,3},{62286,60189,3},{62279,60196,3}, {62276,60206,3},{62276,60209,3},{62273,60218,3},{62264,60226,3},{62254,60218,3}, {62248,60208,3},{62239,60206,3},{62229,60189,3},{62221,60184,3},{62216,60183,3}, {62194,60186,3},{62169,60183,3},{62168,60186,3},{62168,60193,3},{62163,60194,3}, {62163,60199,3},{62158,60194,3},{62151,60188,3},{62129,60183,3},{62118,60166,3}, {62111,60161,3},{62103,60158,3},{62098,60159,3},{62093,60149,3},{62086,60138,3}, {62076,60126,3},{62073,60121,3},{62069,60121,3},{62068,60111,3},{62069,60113,3}, {62074,60111,3},{62078,60111,3},{62079,60104,3},{62076,60108,3},{62071,60101,3}, {62071,60106,3},{62068,60108,3},{62066,60108,3},{62054,60078,3},{62051,60073,3}, {62049,60068,3},{62044,60056,3},{62041,60046,3},{62038,60041,3},{62043,60041,3}, {62044,60033,3},{62046,60033,3},{62048,60029,3},{62046,60011,3},{62046,60008,3}, {62051,60006,3},{62054,59999,3},{62056,59983,3},{62058,59976,3},{62059,59966,3}, {62058,59958,3},{62053,59944,3},{62048,59934,3},{62044,59926,3},{62043,59918,3}, {62044,59916,3},{62046,59916,3},{62048,59914,3},{62044,59909,3},{62044,59904,3}, {62051,59893,3},{62056,59899,3},{62059,59891,3},{62059,59879,3},{62063,59874,3}, {62064,59861,3},{62069,59848,3},{62073,59844,3},{62081,59833,3},{62086,59828,3}, {62089,59826,3},{62091,59818,3},{62091,59794,3},{62091,59791,3},{62089,59784,3}, {62093,59779,3},{62086,59753,3},{62099,59746,3},{62109,59734,3},{62113,59729,3}, {62118,59728,3},{62119,59716,3},{62124,59714,3},{62136,59706,3},{62143,59696,3}, {62153,59693,3},{62168,59693,3},{62173,59694,3},{62181,59693,3},{62191,59698,3}, {62196,59694,3},{62201,59696,3},{62203,59699,3},{62208,59701,3},{62223,59699,3}, {62224,59703,3},{62224,59714,3},{62226,59721,3},{62233,59728,3},{62243,59731,3}, {62249,59729,3},{62256,59723,3},{62276,59721,3},{62291,59716,3},{63313,59273,131}, {63431,59311,3},{63479,59309,3},{63528,59344,3},{63571,59361,3},{63589,59474,3}, {63606,59538,3},{63601,59626,3},{63574,59681,3},{63553,59721,3},{63544,59721,3}, {63536,59723,3},{63526,59723,3},{63519,59719,3},{63518,59721,3},{63516,59724,3}, {63513,59719,3},{63509,59721,3},{63508,59721,3},{63509,59724,3},{63509,59726,3}, {63499,59728,3},{63493,59738,3},{63484,59734,3},{63474,59736,3},{63471,59739,3}, {63464,59738,3},{63464,59739,3},{63469,59743,3},{63468,59746,3},{63463,59751,3}, {63456,59741,3},{63454,59748,3},{63453,59751,3},{63446,59744,3},{63444,59748,3}, {63439,59751,3},{63441,59753,3},{63439,59754,3},{63431,59751,3},{63428,59753,3}, {63414,59753,3},{63408,59746,3},{63404,59748,3},{63404,59751,3},{63403,59751,3}, {63393,59744,3},{63384,59741,3},{63383,59741,3},{63378,59744,3},{63374,59743,3}, {63371,59743,3},{63368,59748,3},{63361,59743,3},{63356,59743,3},{63351,59741,3}, {63346,59744,3},{63334,59738,3},{63328,59738,3},{63328,59741,3},{63324,59743,3}, {63323,59746,3},{63324,59751,3},{63321,59753,3},{63324,59756,3},{63323,59759,3}, {63326,59759,3},{63326,59763,3},{63324,59768,3},{63326,59771,3},{63319,59774,3}, {63318,59776,3},{63318,59781,3},{63319,59781,3},{63318,59786,3},{63318,59791,3}, {63318,59794,3},{63314,59799,3},{63316,59799,3},{63314,59803,3},{63316,59806,3}, {63314,59808,3},{63314,59811,3},{63318,59816,3},{63314,59818,3},{63316,59821,3}, {63314,59826,3},{63313,59824,3},{63313,59826,3},{63313,59831,3},{63313,59833,3}, {63313,59841,3},{63311,59841,3},{63309,59846,3},{63311,59846,3},{63313,59848,3}, {63308,59848,3},{63306,59853,3},{63308,59856,3},{63311,59856,3},{63311,59863,3}, {63311,59864,3},{63314,59866,3},{63309,59873,3},{63313,59871,3},{63313,59874,3}, {63316,59878,3},{63318,59879,3},{63319,59879,3},{63326,59886,3},{63329,59896,3}, {63328,59898,3},{63319,59901,3},{63309,59916,3},{63308,59919,3},{63309,59924,3}, {63306,59928,3},{63308,59931,3},{63308,59934,3},{63309,59938,3},{63306,59943,3}, {63308,59951,3},{63296,59961,3},{63283,59963,3},{63279,59964,3},{63273,59974,3}, {63263,59976,3},{63254,59971,3},{63243,59974,3},{63236,59973,3},{63231,59978,3}, {63224,59978,3},{63221,59983,3},{63216,59983,3},{63211,59984,3},{63204,59981,3}, {63198,59986,3},{63189,59983,3},{63183,59984,3},{63176,59984,3},{63169,59989,3}, {63166,59993,3},{63143,59994,3},{63139,59996,3},{63138,60001,3},{63134,60018,3}, {63138,60026,3},{63138,60034,3},{63139,60044,3},{63144,60048,3},{63149,60059,3}, {63153,60069,3},{63156,60073,3},{63146,60094,3},{63138,60101,3},{63131,60111,3}, {63128,60108,3},{63123,60103,3},{63113,60104,3},{63108,60109,3},{63099,60111,3}, {63086,60103,3},{63074,60104,3},{63061,60099,3},{63056,60096,3},{63043,60094,3}, {63034,60091,3},{63028,60091,3},{63021,60094,3},{63016,60089,3},{63009,60086,3}, {62999,60078,3},{62993,60074,3},{62984,60076,3},{62979,60076,3},{62978,60076,3}, {62973,60078,3},{62971,60073,3},{62969,60071,3},{62959,60074,3},{62954,60078,3}, {62946,60074,3},{62941,60076,3},{62938,60069,3},{62929,60073,3},{62919,60069,3}, {62916,60073,3},{62911,60069,3},{62908,60071,3},{62893,60066,3},{62884,60056,3}, {62876,60058,3},{62871,60056,3},{62869,60054,3},{62871,60048,3},{62868,60044,3}, {62858,60041,3},{62856,60031,3},{62849,60023,3},{62841,60023,3},{62839,60016,3}, {62843,60009,3},{62838,59994,3},{62833,59991,3},{62826,59991,3},{62826,59983,3}, {62819,59981,3},{62819,59976,3},{62811,59979,3},{62808,59978,3},{62804,59978,3}, {62801,59976,3},{62799,59969,3},{62793,59963,3},{62791,59959,3},{62796,59951,3}, {62801,59949,3},{62803,59946,3},{62803,59939,3},{62804,59934,3},{62806,59931,3}, {62804,59921,3},{62799,59916,3},{62798,59909,3},{62789,59909,3},{62778,59899,3}, {62781,59891,3},{62789,59884,3},{62791,59879,3},{62789,59869,3},{62786,59861,3}, {62786,59858,3},{62794,59849,3},{62794,59846,3},{62793,59839,3},{62788,59829,3}, {62788,59824,3},{62789,59816,3},{62793,59806,3},{62793,59796,3},{62798,59784,3}, {62799,59774,3},{62804,59764,3},{62806,59758,3},{62809,59738,3},{62808,59729,3}, {62809,59713,3},{62808,59703,3},{62808,59686,3},{62804,59676,3},{62811,59676,3}, {62818,59671,3},{62821,59671,3},{62823,59674,3},{62824,59679,3},{62829,59681,3}, {62831,59683,3},{62829,59684,3},{62834,59686,3},{62838,59689,3},{62839,59688,3}, {62843,59688,3},{62844,59694,3},{62848,59699,3},{62848,59704,3},{62849,59704,3}, {62851,59701,3},{62854,59701,3},{62854,59703,3},{62854,59708,3},{62859,59708,3}, {62859,59711,3},{62871,59713,3},{62871,59718,3},{62874,59716,3},{62876,59719,3}, {62883,59714,3},{62888,59716,3},{62891,59718,3},{62893,59714,3},{62904,59719,3}, {62909,59719,3},{62913,59726,3},{62918,59721,3},{62916,59724,3},{62921,59726,3}, {62924,59728,3},{62926,59734,3},{62929,59739,3},{62936,59749,3},{62938,59751,3}, {62939,59746,3},{62941,59746,3},{62944,59751,3},{62948,59749,3},{62953,59756,3}, {62958,59754,3},{62963,59763,3},{62966,59759,3},{62968,59759,3},{62969,59763,3}, {62971,59768,3},{62974,59769,3},{62976,59771,3},{62974,59774,3},{62978,59776,3}, {62979,59779,3},{62993,59781,3},{62998,59773,3},{63003,59771,3},{63008,59768,3}, {63013,59763,3},{63018,59761,3},{63023,59753,3},{63028,59749,3},{63028,59738,3}, {63031,59736,3},{63031,59731,3},{63034,59728,3},{63034,59724,3},{63043,59714,3}, {63041,59711,3},{63038,59706,3},{63036,59703,3},{63039,59701,3},{63051,59691,3}, {63053,59683,3},{63054,59669,3},{63058,59664,3},{63058,59656,3},{63068,59643,3}, {63073,59633,3},{63076,59629,3},{63076,59624,3},{63084,59611,3},{63088,59603,3}, {63101,59589,3},{63134,59533,3},{63133,59523,3},{63133,59508,3},{63138,59499,3}, {63138,59491,3},{63141,59483,3},{63141,59479,3},{63146,59474,3},{63148,59471,3}, {63146,59468,3},{63148,59464,3},{63149,59451,3},{63154,59444,3},{63154,59436,3}, {63161,59433,3},{63169,59424,3},{63171,59426,3},{63176,59424,3},{63181,59418,3}, {63181,59414,3},{63184,59408,3},{63188,59406,3},{63191,59399,3},{63191,59396,3}, {63194,59391,3},{63194,59386,3},{63199,59383,3},{63201,59384,3},{63201,59381,3}, {63206,59376,3},{63208,59369,3},{63211,59363,3},{63218,59361,3},{63219,59358,3}, {63221,59358,3},{63221,59356,3},{63228,59351,3},{63229,59344,3},{63234,59338,3}, {63246,59333,3},{63264,59318,3},{63268,59318,3},{63269,59316,3},{63273,59318,3}, {63273,59314,3},{63276,59309,3},{63279,59313,3},{63283,59311,3},{63284,59308,3}, {63288,59308,3},{63291,59296,3},{63296,59289,3},{63298,59289,3},{63298,59284,3}, {63301,59283,3},{63304,59279,3},{63306,59274,3},{63311,59274,3},{63313,59273,3}, {63254,58818,131},{63246,58778,3},{63248,58756,3},{63253,58754,3},{63251,58753,3}, {63253,58748,3},{63264,58748,3},{63281,58751,3},{63286,58748,3},{63293,58748,3}, {63303,58741,3},{63309,58744,3},{63314,58743,3},{63319,58739,3},{63326,58741,3}, {63329,58739,3},{63339,58728,3},{63361,58726,3},{63368,58723,3},{63376,58718,3}, {63406,58718,3},{63443,58694,3},{63443,58686,3},{63446,58681,3},{63463,58679,3}, {63468,58684,3},{63471,58689,3},{63473,58689,3},{63479,58681,3},{63486,58666,3}, {63491,58661,3},{63496,58661,3},{63499,58661,3},{63503,58669,3},{63513,58663,3}, {63521,58664,3},{63523,58659,3},{63526,58658,3},{63528,58659,3},{63529,58669,3}, {63531,58679,3},{63539,58681,3},{63544,58684,3},{63548,58681,3},{63553,58681,3}, {63554,58676,3},{63563,58666,3},{63566,58668,3},{63571,58673,3},{63591,58688,3}, {63593,58693,3},{63594,58693,3},{63604,58681,3},{63608,58671,3},{63616,58668,3}, {63619,58661,3},{63626,58654,3},{63629,58646,3},{63638,58641,3},{63641,58638,3}, {63648,58643,3},{63661,58636,3},{63666,58636,3},{63671,58633,3},{63688,58634,3}, {63698,58629,3},{63704,58629,3},{63708,58628,3},{63713,58628,3},{63721,58621,3}, {63724,58623,3},{63728,58629,3},{63734,58629,3},{63733,58623,3},{63738,58613,3}, {63739,58611,3},{63741,58609,3},{63739,58609,3},{63738,58608,3},{63739,58606,3}, {63746,58604,3},{63756,58604,3},{63761,58601,3},{63773,58588,3},{63786,58586,3}, {63798,58586,3},{63806,58578,3},{63808,58571,3},{63813,58574,3},{63818,58574,3}, {63818,58578,3},{63826,58588,3},{63826,58591,3},{63831,58598,3},{63833,58598,3}, {63834,58594,3},{63838,58601,3},{63844,58604,3},{63854,58616,3},{63864,58619,3}, {63866,58626,3},{63871,58636,3},{63876,58633,3},{63881,58633,3},{63881,58634,3}, {63876,58643,3},{63876,58649,3},{63889,58651,3},{63889,58641,3},{63893,58641,3}, {63894,58646,3},{63894,58654,3},{63894,58659,3},{63898,58663,3},{63901,58668,3}, {63903,58663,3},{63906,58668,3},{63903,58673,3},{63901,58673,3},{63903,58678,3}, {63908,58676,3},{63909,58678,3},{63911,58678,3},{63911,58676,3},{63914,58676,3}, {63914,58673,3},{63913,58668,3},{63918,58656,3},{63914,58653,3},{63914,58651,3}, {63919,58651,3},{63929,58644,3},{63929,58651,3},{63934,58653,3},{63936,58659,3}, {63939,58658,3},{63943,58648,3},{63941,58643,3},{63943,58634,3},{63949,58636,3}, {63956,58633,3},{63959,58629,3},{63963,58626,3},{63966,58618,3},{63968,58621,3}, {63969,58618,3},{63968,58609,3},{63974,58606,3},{63979,58608,3},{63979,58604,3}, {63983,58599,3},{63988,58603,3},{63993,58603,3},{63996,58608,3},{63999,58608,3}, {64003,58609,3},{64006,58614,3},{64009,58616,3},{64009,58621,3},{64011,58623,3}, {64013,58623,3},{64019,58616,3},{64024,58608,3},{64034,58603,3},{64039,58598,3}, {64043,58598,3},{64046,58601,3},{64049,58599,3},{64056,58599,3},{64058,58603,3}, {64061,58609,3},{64063,58613,3},{64071,58611,3},{64078,58613,3},{64079,58621,3}, {64086,58621,3},{64098,58638,3},{64101,58638,3},{64103,58636,3},{64111,58636,3}, {64116,58651,3},{64124,58649,3},{64133,58646,3},{64138,58641,3},{64139,58638,3}, {64149,58638,3},{64156,58634,3},{64161,58636,3},{64166,58629,3},{64171,58628,3}, {64173,58629,3},{64173,58634,3},{64176,58634,3},{64179,58638,3},{64184,58639,3}, {64211,58641,3},{64218,58639,3},{64229,58641,3},{64236,58639,3},{64249,58639,3}, {64251,58641,3},{64256,58644,3},{64256,58646,3},{64259,58648,3},{64261,58651,3}, {64263,58651,3},{64264,58661,3},{64269,58663,3},{64271,58658,3},{64274,58658,3}, {64276,58659,3},{64279,58664,3},{64283,58666,3},{64283,58668,3},{64286,58668,3}, {64286,58669,3},{64336,58644,3},{64441,58579,3},{64441,58591,3},{64443,58596,3}, {64441,58606,3},{64441,58614,3},{64439,58626,3},{64439,58629,3},{64436,58638,3}, {64434,58646,3},{64434,58651,3},{64436,58654,3},{64436,58658,3},{64436,58661,3}, {64431,58658,3},{64424,58658,3},{64423,58661,3},{64426,58678,3},{64431,58684,3}, {64431,58694,3},{64436,58698,3},{64436,58703,3},{64438,58708,3},{64441,58709,3}, {64446,58714,3},{64451,58714,3},{64459,58723,3},{64464,58724,3},{64468,58729,3}, {64471,58734,3},{64471,58749,3},{64468,58756,3},{64464,58763,3},{64468,58766,3}, {64474,58769,3},{64478,58773,3},{64483,58776,3},{64486,58778,3},{64491,58789,3}, {64494,58794,3},{64498,58794,3},{64499,58804,3},{64504,58804,3},{64504,58813,3}, {64504,58819,3},{64508,58823,3},{64509,58828,3},{64528,58846,3},{64538,58859,3}, {64541,58871,3},{64546,58873,3},{64548,58888,3},{64548,58893,3},{64553,58901,3}, {64553,58913,3},{64556,58919,3},{64556,58926,3},{64558,58928,3},{64556,58933,3}, {64559,58946,3},{64558,58949,3},{64561,58954,3},{64558,58956,3},{64563,58958,3}, {64559,58959,3},{64561,58964,3},{64559,58966,3},{64556,58966,3},{64556,58971,3}, {64553,58974,3},{64553,58979,3},{64556,58981,3},{64558,58984,3},{64563,58984,3}, {64564,58986,3},{64568,58993,3},{64564,58999,3},{64559,59003,3},{64556,59003,3}, {64551,59006,3},{64541,59003,3},{64533,59003,3},{64526,59006,3},{64514,59008,3}, {64506,59004,3},{64499,58998,3},{64491,58996,3},{64488,58991,3},{64479,58993,3}, {64474,58993,3},{64471,58998,3},{64468,58998,3},{64456,58994,3},{64451,59003,3}, {64444,59004,3},{64438,59006,3},{64433,59003,3},{64426,59003,3},{64423,58998,3}, {64419,58996,3},{64416,58996,3},{64414,58999,3},{64411,58998,3},{64409,58996,3}, {64404,58999,3},{64403,59003,3},{64398,59001,3},{64388,59004,3},{64386,59006,3}, {64384,59013,3},{64383,59014,3},{64378,59014,3},{64374,59019,3},{64373,59016,3}, {64371,59018,3},{64364,59014,3},{64363,59016,3},{64358,59021,3},{64359,59021,3}, {64363,59023,3},{64366,59024,3},{64363,59024,3},{64361,59029,3},{64354,59033,3}, {64348,59033,3},{64344,59036,3},{64339,59034,3},{64336,59038,3},{64333,59056,3}, {64324,59061,3},{64321,59063,3},{64321,59064,3},{64326,59066,3},{64324,59068,3}, {64319,59068,3},{64316,59073,3},{64314,59081,3},{64311,59084,3},{64313,59088,3}, {64308,59089,3},{64299,59086,3},{64296,59091,3},{64289,59096,3},{64289,59106,3}, {64286,59108,3},{64286,59109,3},{64288,59113,3},{64288,59114,3},{64288,59118,3}, {64283,59121,3},{64284,59123,3},{64286,59124,3},{64284,59126,3},{64286,59128,3}, {64284,59133,3},{64283,59134,3},{64283,59139,3},{64281,59143,3},{64283,59146,3}, {64289,59149,3},{64289,59156,3},{64289,59168,3},{64286,59173,3},{64284,59179,3}, {64281,59181,3},{64279,59188,3},{64276,59189,3},{64271,59194,3},{64269,59199,3}, {64266,59203,3},{64266,59213,3},{64273,59223,3},{64271,59229,3},{64266,59229,3}, {64264,59231,3},{64261,59231,3},{64258,59234,3},{64253,59236,3},{64249,59241,3}, {64251,59243,3},{64241,59249,3},{64241,59253,3},{64238,59254,3},{64234,59258,3}, {64238,59259,3},{64239,59266,3},{64236,59271,3},{64233,59271,3},{64229,59281,3}, {64229,59288,3},{64223,59294,3},{64221,59298,3},{64221,59308,3},{64224,59314,3}, {64223,59318,3},{64224,59319,3},{64221,59323,3},{64221,59324,3},{64209,59324,3}, {64206,59331,3},{64201,59334,3},{64191,59349,3},{64184,59351,3},{64181,59353,3}, {64183,59363,3},{64184,59369,3},{64186,59376,3},{64181,59383,3},{64181,59391,3}, {64188,59403,3},{64183,59411,3},{64184,59416,3},{64183,59419,3},{64188,59424,3}, {64188,59428,3},{64189,59429,3},{64188,59433,3},{64181,59433,3},{64181,59438,3}, {64178,59441,3},{64171,59454,3},{64168,59456,3},{64168,59463,3},{64166,59463,3}, {64163,59468,3},{64161,59476,3},{64158,59479,3},{64156,59489,3},{64149,59489,3}, {64141,59496,3},{64139,59494,3},{64138,59498,3},{64129,59494,3},{64126,59489,3}, {64118,59488,3},{64114,59491,3},{64106,59491,3},{64099,59496,3},{64094,59498,3}, {64088,59501,3},{64084,59503,3},{64081,59501,3},{64081,59499,3},{64078,59501,3}, {64074,59501,3},{64068,59496,3},{64054,59493,3},{64026,59498,3},{64026,59479,3}, {64021,59483,3},{64018,59488,3},{64013,59491,3},{64009,59494,3},{64004,59498,3}, {64001,59503,3},{63996,59506,3},{63993,59509,3},{63988,59513,3},{63981,59514,3}, {63976,59514,3},{63971,59514,3},{63964,59516,3},{63959,59516,3},{63954,59516,3}, {63948,59516,3},{63943,59518,3},{63938,59518,3},{63931,59518,3},{63926,59519,3}, {63921,59519,3},{63916,59519,3},{63909,59519,3},{63909,59526,3},{63909,59531,3}, {63909,59538,3},{63909,59543,3},{63908,59548,3},{63908,59554,3},{63908,59559,3}, {63908,59566,3},{63908,59571,3},{63908,59578,3},{63908,59583,3},{63908,59588,3}, {63906,59594,3},{63906,59599,3},{63906,59606,3},{63906,59611,3},{63906,59618,3}, {63906,59623,3},{63906,59629,3},{63904,59634,3},{63904,59639,3},{63904,59646,3}, {63904,59651,3},{63904,59658,3},{63904,59663,3},{63904,59669,3},{63904,59674,3}, {63903,59681,3},{63903,59686,3},{63903,59691,3},{63904,59694,3},{63908,59698,3}, {63908,59703,3},{63896,59704,3},{63893,59701,3},{63886,59701,3},{63878,59694,3}, {63873,59689,3},{63866,59688,3},{63853,59691,3},{63844,59689,3},{63836,59693,3}, {63811,59696,3},{63808,59699,3},{63806,59706,3},{63801,59716,3},{63798,59731,3}, {63791,59744,3},{63776,59763,3},{63774,59759,3},{63771,59758,3},{63768,59759,3}, {63763,59764,3},{63759,59764,3},{63754,59768,3},{63753,59768,3},{63751,59764,3}, {63731,59776,3},{63723,59779,3},{63716,59784,3},{63716,59791,3},{63713,59791,3}, {63713,59781,3},{63708,59779,3},{63703,59778,3},{63698,59776,3},{63693,59774,3}, {63688,59773,3},{63683,59771,3},{63678,59769,3},{63673,59768,3},{63669,59766,3}, {63664,59764,3},{63659,59763,3},{63654,59761,3},{63649,59761,3},{63644,59759,3}, {63644,59764,3},{63631,59766,3},{63631,59758,3},{63626,59756,3},{63621,59754,3}, {63616,59751,3},{63613,59749,3},{63608,59746,3},{63603,59744,3},{63598,59741,3}, {63593,59739,3},{63588,59736,3},{63583,59734,3},{63578,59733,3},{63573,59729,3}, {63568,59728,3},{63564,59724,3},{63563,59724,3},{63538,59751,3},{63533,59746,3}, {63533,59739,3},{63531,59738,3},{63529,59733,3},{63526,59731,3},{63521,59726,3}, {63519,59719,3},{63526,59723,3},{63536,59723,3},{63544,59721,3},{63553,59721,3}, {63574,59681,3},{63601,59626,3},{63606,59538,3},{63589,59474,3},{63571,59361,3}, {63528,59344,3},{63479,59309,3},{63431,59311,3},{63313,59273,3},{63313,59269,3}, {63318,59268,3},{63321,59259,3},{63323,59258,3},{63336,59254,3},{63336,59168,3}, {63333,59166,3},{63336,59163,3},{63336,59143,3},{63329,59141,3},{63326,59136,3}, {63321,59136,3},{63319,59134,3},{63313,59133,3},{63311,59129,3},{63301,59124,3}, {63294,59123,3},{63284,59114,3},{63279,59111,3},{63274,59111,3},{63271,59108,3}, {63261,59106,3},{63259,59108,3},{63249,59104,3},{63249,59101,3},{63263,59099,3}, {63264,59096,3},{63271,59091,3},{63281,59093,3},{63293,59083,3},{63298,59083,3}, {63299,59079,3},{63308,59083,3},{63314,59076,3},{63319,59069,3},{63318,59064,3}, {63323,59053,3},{63324,59041,3},{63328,59038,3},{63326,58989,3},{63328,58978,3}, {63326,58976,3},{63324,58961,3},{63329,58954,3},{63343,58943,3},{63344,58933,3}, {63349,58933,3},{63353,58928,3},{63358,58916,3},{63358,58913,3},{63338,58908,3}, {63328,58906,3},{63328,58904,3},{63324,58899,3},{63316,58874,3},{63314,58873,3}, {63316,58868,3},{63313,58863,3},{63301,58859,3},{63298,58858,3},{63293,58859,3}, {63288,58843,3},{63284,58839,3},{63284,58834,3},{63271,58834,3},{63264,58824,3}, {63254,58818,3},{63914,58626,131},{63916,58626,3},{63918,58623,3},{63919,58626,3}, {63921,58628,3},{63924,58628,3},{63928,58623,3},{63929,58623,3},{63931,58624,3}, {63928,58624,3},{63926,58634,3},{63919,58639,3},{63916,58646,3},{63911,58651,3}, {63909,58651,3},{63909,58646,3},{63913,58646,3},{63914,58639,3},{63914,58634,3}, {63916,58633,3},{63914,58629,3},{63914,58626,3},{60298,58693,131},{60303,58693,3}, {60308,58653,3},{60316,58638,3},{60321,58613,3},{60321,58589,3},{60336,58536,3}, {60336,58344,3},{60338,58343,3},{60339,58339,3},{60346,58343,3},{60351,58339,3}, {60363,58323,3},{60366,58308,3},{60378,58303,3},{60378,58294,3},{60379,58293,3}, {60384,58294,3},{60388,58303,3},{60393,58303,3},{60396,58304,3},{60406,58304,3}, {60411,58311,3},{60414,58309,3},{60419,58299,3},{60424,58296,3},{60433,58303,3}, {60433,58308,3},{60434,58309,3},{60451,58311,3},{60461,58303,3},{60471,58306,3}, {60473,58301,3},{60474,58299,3},{60474,58294,3},{60476,58286,3},{60474,58283,3}, {60469,58278,3},{60469,58273,3},{60474,58261,3},{60469,58246,3},{60461,58234,3}, {60459,58224,3},{60461,58219,3},{60471,58219,3},{60479,58211,3},{60504,58208,3}, {60511,58203,3},{60523,58183,3},{60526,58183,3},{60536,58189,3},{60544,58179,3}, {60546,58183,3},{60551,58183,3},{60558,58191,3},{60568,58183,3},{60574,58184,3}, {60583,58178,3},{60586,58183,3},{60593,58183,3},{60598,58191,3},{60604,58189,3}, {60606,58223,3},{60608,58223,3},{60609,58228,3},{60611,58219,3},{60614,58218,3}, {60623,58228,3},{60629,58228,3},{60638,58236,3},{60641,58244,3},{60643,58261,3}, {60656,58279,3},{60664,58281,3},{60688,58276,3},{60691,58279,3},{60696,58296,3}, {60701,58299,3},{60701,58308,3},{60708,58304,3},{60716,58306,3},{60728,58304,3}, {60731,58298,3},{60734,58296,3},{60736,58289,3},{60743,58283,3},{60761,58291,3}, {60776,58303,3},{60786,58306,3},{60788,58301,3},{60789,58299,3},{60793,58303,3}, {60794,58306,3},{60794,58319,3},{60798,58323,3},{60801,58328,3},{60809,58334,3}, {60814,58333,3},{60816,58333,3},{60816,58334,3},{60814,58341,3},{60813,58344,3}, {60814,58349,3},{60821,58349,3},{60829,58336,3},{60831,58336,3},{60836,58346,3}, {60841,58339,3},{60851,58344,3},{60854,58343,3},{60856,58344,3},{60858,58354,3}, {60863,58359,3},{60864,58366,3},{60868,58369,3},{60878,58368,3},{60883,58369,3}, {60898,58361,3},{60911,58361,3},{60914,58359,3},{60916,58353,3},{60919,58349,3}, {60921,58346,3},{60923,58348,3},{60924,58359,3},{60934,58369,3},{60939,58376,3}, {60946,58373,3},{60951,58359,3},{60958,58363,3},{60963,58358,3},{60966,58359,3}, {60971,58358,3},{60976,58363,3},{60979,58361,3},{60981,58363,3},{60983,58368,3}, {60983,58383,3},{60986,58388,3},{60988,58389,3},{60994,58386,3},{60999,58399,3}, {61004,58406,3},{61006,58406,3},{61014,58403,3},{61018,58396,3},{61019,58391,3}, {61038,58379,3},{61038,58368,3},{61043,58361,3},{61043,58356,3},{61041,58349,3}, {61044,58339,3},{61046,58329,3},{61059,58328,3},{61061,58331,3},{61058,58341,3}, {61058,58346,3},{61056,58353,3},{61061,58358,3},{61058,58371,3},{61061,58386,3}, {61056,58399,3},{61056,58408,3},{61061,58414,3},{61071,58413,3},{61076,58416,3}, {61078,58423,3},{61083,58426,3},{61086,58421,3},{61091,58421,3},{61093,58416,3}, {61094,58399,3},{61096,58394,3},{61094,58373,3},{61098,58364,3},{61096,58359,3}, {61096,58356,3},{61099,58351,3},{61104,58356,3},{61109,58354,3},{61116,58356,3}, {61123,58351,3},{61126,58351,3},{61129,58361,3},{61139,58371,3},{61144,58371,3}, {61153,58361,3},{61159,58363,3},{61158,58358,3},{61159,58354,3},{61163,58356,3}, {61168,58368,3},{61176,58366,3},{61178,58359,3},{61181,58358,3},{61183,58349,3}, {61186,58351,3},{61189,58351,3},{61191,58341,3},{61194,58344,3},{61198,58343,3}, {61199,58346,3},{61204,58346,3},{61206,58354,3},{61206,58361,3},{61218,58363,3}, {61219,58361,3},{61223,58353,3},{61224,58338,3},{61226,58331,3},{61234,58323,3}, {61251,58326,3},{61264,58324,3},{61269,58323,3},{61274,58324,3},{61278,58323,3}, {61283,58324,3},{61288,58333,3},{61293,58329,3},{61301,58331,3},{61308,58323,3}, {61314,58329,3},{61319,58331,3},{61323,58334,3},{61323,58339,3},{61318,58343,3}, {61318,58344,3},{61323,58349,3},{61323,58358,3},{61326,58363,3},{61333,58363,3}, {61338,58359,3},{61341,58359,3},{61349,58358,3},{61358,58351,3},{61364,58351,3}, {61371,58344,3},{61374,58346,3},{61378,58353,3},{61384,58348,3},{61393,58349,3}, {61399,58346,3},{61411,58349,3},{61418,58348,3},{61421,58351,3},{61429,58353,3}, {61434,58349,3},{61441,58353,3},{61446,58351,3},{61451,58346,3},{61463,58341,3}, {61473,58351,3},{61478,58353,3},{61481,58351,3},{61494,58358,3},{61496,58359,3}, {61493,58364,3},{61503,58369,3},{61506,58369,3},{61508,58366,3},{61506,58364,3}, {61506,58363,3},{61516,58354,3},{61518,58356,3},{61524,58358,3},{61526,58356,3}, {61528,58358,3},{61528,58361,3},{61526,58369,3},{61534,58369,3},{61544,58376,3}, {61548,58374,3},{61551,58369,3},{61564,58366,3},{61568,58368,3},{61573,58364,3}, {61578,58366,3},{61579,58369,3},{61574,58374,3},{61574,58381,3},{61574,58384,3}, {61576,58388,3},{61581,58388,3},{61583,58383,3},{61588,58388,3},{61593,58391,3}, {61598,58389,3},{61603,58396,3},{61613,58398,3},{61633,58394,3},{61644,58396,3}, {61653,58413,3},{61656,58413,3},{61656,58423,3},{61659,58426,3},{61661,58431,3}, {61661,58443,3},{61666,58446,3},{61668,58449,3},{61673,58448,3},{61674,58451,3}, {61679,58454,3},{61684,58453,3},{61688,58444,3},{61694,58439,3},{61713,58434,3}, {61719,58436,3},{61724,58434,3},{61729,58436,3},{61733,58433,3},{61766,58418,3}, {61774,58419,3},{61778,58424,3},{61781,58423,3},{61789,58426,3},{61793,58424,3}, {61798,58419,3},{61806,58416,3},{61814,58423,3},{61821,58423,3},{61824,58424,3}, {61826,58428,3},{61828,58424,3},{61836,58421,3},{61838,58416,3},{61838,58421,3}, {61841,58424,3},{61844,58421,3},{61848,58423,3},{61849,58418,3},{61851,58418,3}, {61861,58423,3},{61868,58423,3},{61868,58426,3},{61866,58429,3},{61868,58431,3}, {61876,58429,3},{61888,58433,3},{61888,58443,3},{61889,58444,3},{61894,58446,3}, {61896,58449,3},{61893,58456,3},{61894,58466,3},{61898,58466,3},{61903,58464,3}, {61909,58466,3},{61911,58471,3},{61914,58473,3},{61916,58478,3},{61921,58478,3}, {61923,58481,3},{61921,58484,3},{61919,58488,3},{61921,58493,3},{61931,58499,3}, {61939,58494,3},{61944,58499,3},{61946,58494,3},{61953,58498,3},{61954,58503,3}, {61971,58494,3},{61976,58496,3},{61986,58496,3},{61989,58493,3},{61998,58489,3}, {61999,58493,3},{62001,58494,3},{62004,58491,3},{62006,58483,3},{62008,58479,3}, {62011,58479,3},{62016,58483,3},{62016,58491,3},{62021,58499,3},{62038,58501,3}, {62056,58509,3},{62058,58509,3},{62061,58504,3},{62064,58511,3},{62078,58514,3}, {62083,58521,3},{62091,58526,3},{62094,58531,3},{62108,58531,3},{62109,58539,3}, {62108,58546,3},{62109,58548,3},{62111,58553,3},{62113,58554,3},{62123,58549,3}, {62126,58551,3},{62139,58551,3},{62141,58551,3},{62139,58548,3},{62141,58546,3}, {62148,58548,3},{62158,58546,3},{62159,58546,3},{62164,58551,3},{62169,58548,3}, {62178,58549,3},{62181,58549,3},{62183,58553,3},{62191,58554,3},{62196,58559,3}, {62201,58556,3},{62208,58556,3},{62213,58544,3},{62211,58541,3},{62206,58538,3}, {62206,58536,3},{62213,58533,3},{62219,58526,3},{62228,58528,3},{62233,58526,3}, {62236,58528,3},{62236,58533,3},{62248,58538,3},{62251,58531,3},{62261,58521,3}, {62274,58519,3},{62278,58519,3},{62279,58523,3},{62281,58521,3},{62288,58521,3}, {62289,58519,3},{62294,58513,3},{62301,58513,3},{62304,58511,3},{62308,58504,3}, {62314,58504,3},{62318,58503,3},{62323,58504,3},{62324,58501,3},{62328,58501,3}, {62331,58498,3},{62333,58499,3},{62331,58509,3},{62341,58513,3},{62348,58506,3}, {62348,58496,3},{62349,58493,3},{62356,58489,3},{62363,58488,3},{62369,58483,3}, {62379,58478,3},{62394,58479,3},{62399,58481,3},{62404,58479,3},{62413,58483,3}, {62419,58483,3},{62426,58489,3},{62426,58491,3},{62421,58494,3},{62424,58499,3}, {62433,58503,3},{62433,58511,3},{62439,58503,3},{62448,58503,3},{62458,58506,3}, {62464,58509,3},{62471,58509,3},{62476,58514,3},{62486,58516,3},{62489,58521,3}, {62493,58523,3},{62499,58519,3},{62501,58524,3},{62498,58529,3},{62496,58534,3}, {62498,58541,3},{62504,58546,3},{62514,58549,3},{62518,58553,3},{62521,58553,3}, {62524,58551,3},{62528,58546,3},{62528,58539,3},{62539,58544,3},{62558,58546,3}, {62561,58544,3},{62564,58544,3},{62566,58541,3},{62569,58539,3},{62581,58539,3}, {62599,58533,3},{62606,58533,3},{62609,58534,3},{62611,58539,3},{62616,58538,3}, {62619,58544,3},{62623,58546,3},{62623,58553,3},{62626,58556,3},{62641,58556,3}, {62656,58564,3},{62664,58561,3},{62669,58561,3},{62673,58564,3},{62676,58566,3}, {62679,58569,3},{62696,58571,3},{62704,58583,3},{62711,58588,3},{62716,58588,3}, {62718,58589,3},{62714,58596,3},{62719,58598,3},{62724,58601,3},{62729,58603,3}, {62733,58606,3},{62736,58606,3},{62739,58618,3},{62746,58621,3},{62763,58624,3}, {62766,58629,3},{62771,58628,3},{62776,58631,3},{62783,58634,3},{62789,58636,3}, {62794,58641,3},{62799,58646,3},{62808,58649,3},{62813,58648,3},{62824,58654,3}, {62826,58658,3},{62826,58666,3},{62821,58673,3},{62819,58678,3},{62826,58681,3}, {62829,58686,3},{62829,58693,3},{62831,58699,3},{62831,58704,3},{62838,58704,3}, {62844,58708,3},{62848,58706,3},{62866,58693,3},{62878,58683,3},{62886,58678,3}, {62906,58679,3},{62918,58694,3},{62921,58696,3},{62963,58686,3},{62969,58681,3}, {62979,58681,3},{62984,58676,3},{62991,58676,3},{63003,58679,3},{63018,58686,3}, {63023,58689,3},{63021,58694,3},{63023,58701,3},{63024,58701,3},{63033,58694,3}, {63039,58693,3},{63043,58689,3},{63046,58691,3},{63046,58686,3},{63049,58681,3}, {63054,58679,3},{63059,58679,3},{63069,58686,3},{63076,58688,3},{63076,58689,3}, {63074,58689,3},{63074,58693,3},{63079,58693,3},{63086,58698,3},{63086,58706,3}, {63096,58711,3},{63134,58803,3},{63196,58821,3},{63236,58836,3},{63254,58818,3}, {63264,58824,3},{63271,58834,3},{63284,58834,3},{63284,58839,3},{63288,58843,3}, {63293,58859,3},{63298,58858,3},{63301,58859,3},{63313,58863,3},{63316,58868,3}, {63314,58873,3},{63316,58874,3},{63324,58899,3},{63328,58904,3},{63328,58906,3}, {63338,58908,3},{63358,58913,3},{63358,58916,3},{63353,58928,3},{63349,58933,3}, {63344,58933,3},{63343,58943,3},{63329,58954,3},{63324,58961,3},{63326,58976,3}, {63328,58978,3},{63326,58989,3},{63328,59038,3},{63324,59041,3},{63323,59053,3}, {63318,59064,3},{63319,59069,3},{63314,59076,3},{63308,59083,3},{63299,59079,3}, {63298,59083,3},{63293,59083,3},{63281,59093,3},{63271,59091,3},{63264,59096,3}, {63263,59099,3},{63249,59101,3},{63249,59104,3},{63259,59108,3},{63261,59106,3}, {63271,59108,3},{63274,59111,3},{63279,59111,3},{63284,59114,3},{63294,59123,3}, {63301,59124,3},{63311,59129,3},{63313,59133,3},{63319,59134,3},{63321,59136,3}, {63326,59136,3},{63329,59141,3},{63336,59143,3},{63336,59163,3},{63333,59166,3}, {63336,59168,3},{63336,59254,3},{63323,59258,3},{63321,59259,3},{63318,59268,3}, {63313,59269,3},{63313,59273,3},{63311,59274,3},{63306,59274,3},{63304,59279,3}, {63301,59283,3},{63298,59284,3},{63298,59289,3},{63296,59289,3},{63291,59296,3}, {63288,59308,3},{63284,59308,3},{63283,59311,3},{63279,59313,3},{63276,59309,3}, {63273,59314,3},{63273,59318,3},{63269,59316,3},{63268,59318,3},{63264,59318,3}, {63246,59333,3},{63234,59338,3},{63229,59344,3},{63228,59351,3},{63221,59356,3}, {63221,59358,3},{63219,59358,3},{63218,59361,3},{63211,59363,3},{63208,59369,3}, {63206,59376,3},{63201,59381,3},{63201,59384,3},{63199,59383,3},{63194,59386,3}, {63194,59391,3},{63191,59396,3},{63191,59399,3},{63188,59406,3},{63184,59408,3}, {63181,59414,3},{63181,59418,3},{63176,59424,3},{63171,59426,3},{63169,59424,3}, {63161,59433,3},{63154,59436,3},{63154,59444,3},{63149,59451,3},{63148,59464,3}, {63146,59468,3},{63148,59471,3},{63146,59474,3},{63141,59479,3},{63141,59483,3}, {63138,59491,3},{63138,59499,3},{63133,59508,3},{63133,59523,3},{63134,59533,3}, {63101,59589,3},{63088,59603,3},{63084,59611,3},{63076,59624,3},{63076,59629,3}, {63073,59633,3},{63068,59643,3},{63058,59656,3},{63058,59664,3},{63054,59669,3}, {63053,59683,3},{63051,59691,3},{63039,59701,3},{63036,59703,3},{63038,59706,3}, {63041,59711,3},{63043,59714,3},{63034,59724,3},{63034,59728,3},{63031,59731,3}, {63031,59736,3},{63028,59738,3},{63028,59749,3},{63023,59753,3},{63018,59761,3}, {63013,59763,3},{63008,59768,3},{63003,59771,3},{62998,59773,3},{62993,59781,3}, {62979,59779,3},{62978,59776,3},{62974,59774,3},{62976,59771,3},{62974,59769,3}, {62971,59768,3},{62969,59763,3},{62968,59759,3},{62966,59759,3},{62963,59763,3}, {62958,59754,3},{62953,59756,3},{62948,59749,3},{62944,59751,3},{62941,59746,3}, {62939,59746,3},{62938,59751,3},{62936,59749,3},{62929,59739,3},{62926,59734,3}, {62924,59728,3},{62921,59726,3},{62916,59724,3},{62918,59721,3},{62913,59726,3}, {62909,59719,3},{62904,59719,3},{62893,59714,3},{62891,59718,3},{62888,59716,3}, {62883,59714,3},{62876,59719,3},{62874,59716,3},{62871,59718,3},{62871,59713,3}, {62859,59711,3},{62859,59708,3},{62854,59708,3},{62854,59703,3},{62854,59701,3}, {62851,59701,3},{62849,59704,3},{62848,59704,3},{62848,59699,3},{62844,59694,3}, {62843,59688,3},{62839,59688,3},{62838,59689,3},{62834,59686,3},{62829,59684,3}, {62831,59683,3},{62829,59681,3},{62824,59679,3},{62823,59674,3},{62821,59671,3}, {62818,59671,3},{62811,59676,3},{62804,59676,3},{62808,59686,3},{62808,59703,3}, {62809,59713,3},{62808,59729,3},{62809,59738,3},{62806,59758,3},{62804,59764,3}, {62799,59774,3},{62798,59784,3},{62793,59796,3},{62793,59806,3},{62789,59816,3}, {62788,59824,3},{62788,59829,3},{62793,59839,3},{62794,59846,3},{62794,59849,3}, {62786,59858,3},{62786,59861,3},{62789,59869,3},{62791,59879,3},{62789,59884,3}, {62781,59891,3},{62778,59899,3},{62789,59909,3},{62798,59909,3},{62799,59916,3}, {62804,59921,3},{62806,59931,3},{62804,59934,3},{62803,59939,3},{62803,59946,3}, {62801,59949,3},{62796,59951,3},{62791,59959,3},{62793,59963,3},{62799,59969,3}, {62801,59976,3},{62804,59978,3},{62808,59978,3},{62811,59979,3},{62819,59976,3}, {62819,59981,3},{62826,59983,3},{62826,59991,3},{62833,59991,3},{62838,59994,3}, {62843,60009,3},{62839,60016,3},{62841,60023,3},{62849,60023,3},{62856,60031,3}, {62858,60041,3},{62868,60044,3},{62871,60048,3},{62869,60054,3},{62871,60056,3}, {62876,60058,3},{62884,60056,3},{62893,60066,3},{62908,60071,3},{62911,60069,3}, {62916,60073,3},{62919,60069,3},{62929,60073,3},{62938,60069,3},{62941,60076,3}, {62946,60074,3},{62954,60078,3},{62959,60074,3},{62969,60071,3},{62971,60073,3}, {62973,60078,3},{62978,60076,3},{62979,60076,3},{62979,60083,3},{62976,60083,3}, {62976,60086,3},{62973,60089,3},{62968,60093,3},{62968,60094,3},{62971,60094,3}, {62973,60096,3},{62978,60098,3},{62978,60103,3},{62981,60104,3},{62981,60108,3}, {62976,60111,3},{62979,60113,3},{62978,60118,3},{62983,60116,3},{62983,60121,3}, {62986,60126,3},{62984,60126,3},{62979,60124,3},{62976,60128,3},{62978,60129,3}, {62981,60129,3},{62979,60131,3},{62981,60134,3},{62976,60139,3},{62971,60141,3}, {62971,60144,3},{62973,60146,3},{62971,60148,3},{62968,60149,3},{62964,60148,3}, {62956,60154,3},{62948,60153,3},{62944,60154,3},{62941,60153,3},{62933,60161,3}, {62924,60163,3},{62916,60169,3},{62911,60171,3},{62904,60169,3},{62899,60164,3}, {62886,60166,3},{62881,60163,3},{62879,60164,3},{62874,60163,3},{62868,60163,3}, {62864,60159,3},{62863,60161,3},{62861,60163,3},{62859,60161,3},{62858,60164,3}, {62848,60166,3},{62834,60161,3},{62831,60158,3},{62826,60156,3},{62824,60154,3}, {62823,60156,3},{62819,60153,3},{62824,60148,3},{62819,60144,3},{62821,60141,3}, {62816,60139,3},{62816,60136,3},{62811,60131,3},{62808,60124,3},{62808,60121,3}, {62811,60119,3},{62811,60118,3},{62801,60113,3},{62798,60113,3},{62796,60109,3}, {62793,60108,3},{62793,60104,3},{62796,60103,3},{62791,60101,3},{62796,60096,3}, {62794,60089,3},{62793,60089,3},{62791,60091,3},{62789,60091,3},{62788,60083,3}, {62791,60078,3},{62783,60074,3},{62783,60071,3},{62786,60069,3},{62783,60069,3}, {62781,60068,3},{62779,60058,3},{62781,60058,3},{62783,60058,3},{62783,60054,3}, {62774,60051,3},{62774,60046,3},{62763,60044,3},{62756,60036,3},{62759,60029,3}, {62758,60028,3},{62751,60034,3},{62751,60026,3},{62748,60023,3},{62751,60019,3}, {62751,60018,3},{62744,60011,3},{62744,60004,3},{62739,60003,3},{62738,59998,3}, {62733,59998,3},{62728,59991,3},{62728,59988,3},{62729,59988,3},{62728,59986,3}, {62721,59979,3},{62721,59978,3},{62724,59978,3},{62724,59974,3},{62719,59973,3}, {62716,59968,3},{62713,59959,3},{62709,59959,3},{62706,59968,3},{62704,59969,3}, {62701,59969,3},{62694,59966,3},{62696,59964,3},{62699,59963,3},{62701,59953,3}, {62699,59948,3},{62694,59946,3},{62689,59946,3},{62688,59941,3},{62686,59934,3}, {62683,59933,3},{62678,59934,3},{62676,59934,3},{62669,59924,3},{62659,59916,3}, {62658,59908,3},{62646,59906,3},{62644,59903,3},{62639,59896,3},{62629,59893,3}, {62626,59884,3},{62619,59874,3},{62616,59871,3},{62609,59871,3},{62601,59866,3}, {62598,59859,3},{62594,59858,3},{62588,59853,3},{62576,59839,3},{62573,59839,3}, {62559,59826,3},{62558,59823,3},{62558,59813,3},{62554,59808,3},{62549,59804,3}, {62538,59803,3},{62533,59794,3},{62523,59786,3},{62519,59781,3},{62518,59773,3}, {62513,59773,3},{62508,59773,3},{62501,59769,3},{62486,59749,3},{62483,59748,3}, {62476,59748,3},{62473,59751,3},{62464,59754,3},{62448,59756,3},{62444,59754,3}, {62444,59749,3},{62443,59744,3},{62434,59749,3},{62429,59751,3},{62421,59744,3}, {62413,59746,3},{62408,59743,3},{62403,59738,3},{62396,59738,3},{62389,59728,3}, {62388,59729,3},{62383,59736,3},{62378,59738,3},{62358,59733,3},{62354,59729,3}, {62353,59719,3},{62348,59716,3},{62341,59719,3},{62336,59721,3},{62326,59721,3}, {62319,59718,3},{62311,59726,3},{62304,59726,3},{62291,59716,3},{62286,59714,3}, {62279,59714,3},{62254,59718,3},{62246,59723,3},{62238,59721,3},{62231,59721,3}, {62226,59716,3},{62228,59696,3},{62226,59693,3},{62223,59694,3},{62211,59693,3}, {62206,59694,3},{62196,59686,3},{62184,59683,3},{62163,59681,3},{62151,59689,3}, {62141,59691,3},{62139,59693,3},{62134,59691,3},{62131,59698,3},{62121,59698,3}, {62118,59698,3},{62109,59693,3},{62109,59683,3},{62108,59679,3},{62101,59688,3}, {62091,59684,3},{62088,59688,3},{62081,59689,3},{62079,59693,3},{62078,59699,3}, {62069,59704,3},{62061,59718,3},{62056,59736,3},{62053,59743,3},{62049,59754,3}, {62036,59778,3},{62031,59786,3},{62021,59803,3},{62004,59818,3},{61994,59824,3}, {61989,59823,3},{61971,59808,3},{61958,59798,3},{61953,59798,3},{61939,59798,3}, {61934,59803,3},{61928,59804,3},{61923,59809,3},{61918,59813,3},{61904,59831,3}, {61901,59843,3},{61898,59843,3},{61901,59849,3},{61901,59859,3},{61904,59858,3}, {61906,59859,3},{61904,59863,3},{61894,59866,3},{61884,59866,3},{61878,59869,3}, {61846,59869,3},{61834,59859,3},{61803,59834,3},{61796,59833,3},{61789,59826,3}, {61779,59818,3},{61771,59804,3},{61753,59788,3},{61738,59783,3},{61733,59783,3}, {61728,59783,3},{61723,59778,3},{61716,59769,3},{61709,59754,3},{61706,59751,3}, {61704,59743,3},{61693,59721,3},{61688,59704,3},{61684,59693,3},{61679,59676,3}, {61678,59664,3},{61676,59658,3},{61674,59653,3},{61673,59646,3},{61669,59639,3}, {61666,59633,3},{61666,59626,3},{61666,59621,3},{61664,59613,3},{61663,59606,3}, {61661,59599,3},{61661,59593,3},{61659,59586,3},{61659,59579,3},{61658,59574,3}, {61656,59568,3},{61654,59561,3},{61653,59558,3},{61651,59548,3},{61651,59541,3}, {61649,59534,3},{61649,59526,3},{61648,59521,3},{61648,59514,3},{61646,59508,3}, {61644,59501,3},{61644,59496,3},{61643,59488,3},{61643,59481,3},{61643,59474,3}, {61641,59468,3},{61639,59461,3},{61639,59453,3},{61639,59434,3},{61636,59428,3}, {61636,59419,3},{61638,59398,3},{61634,59381,3},{61636,59371,3},{61639,59363,3}, {61638,59354,3},{61641,59334,3},{61644,59328,3},{61651,59324,3},{61654,59319,3}, {61656,59298,3},{61654,59296,3},{61653,59298,3},{61646,59299,3},{61648,59301,3}, {61644,59303,3},{61641,59303,3},{61639,59304,3},{61641,59308,3},{61639,59309,3}, {61638,59308,3},{61636,59308,3},{61634,59303,3},{61631,59304,3},{61626,59301,3}, {61624,59303,3},{61619,59301,3},{61616,59303,3},{61609,59309,3},{61611,59306,3}, {61609,59303,3},{61608,59319,3},{61604,59328,3},{61598,59334,3},{61594,59329,3}, {61601,59321,3},{61604,59318,3},{61604,59308,3},{61601,59309,3},{61601,59313,3}, {61593,59321,3},{61589,59331,3},{61574,59328,3},{61553,59324,3},{61549,59318,3}, {61551,59309,3},{61554,59306,3},{61551,59308,3},{61549,59304,3},{61546,59306,3}, {61531,59299,3},{61524,59303,3},{61518,59301,3},{61514,59299,3},{61513,59293,3}, {61506,59288,3},{61489,59294,3},{61486,59303,3},{61481,59306,3},{61479,59309,3}, {61473,59311,3},{61473,59306,3},{61476,59303,3},{61476,59301,3},{61473,59303,3}, {61471,59304,3},{61469,59303,3},{61468,59303,3},{61471,59311,3},{61473,59318,3}, {61469,59313,3},{61463,59311,3},{61454,59306,3},{61449,59304,3},{61446,59296,3}, {61439,59279,3},{61436,59274,3},{61433,59264,3},{61431,59264,3},{61431,59256,3}, {61428,59251,3},{61421,59233,3},{61419,59213,3},{61421,59204,3},{61419,59196,3}, {61419,59156,3},{61423,59149,3},{61429,59139,3},{61431,59131,3},{61436,59131,3}, {61434,59121,3},{61444,59094,3},{61453,59068,3},{61453,59058,3},{61453,59048,3}, {61454,59044,3},{61456,59046,3},{61456,59051,3},{61454,59053,3},{61456,59061,3}, {61458,59063,3},{61459,59056,3},{61463,59058,3},{61464,59043,3},{61463,59038,3}, {61463,59043,3},{61461,59043,3},{61459,59046,3},{61458,59034,3},{61451,59023,3}, {61436,59018,3},{61418,59021,3},{61393,59029,3},{61384,59038,3},{61368,59033,3}, {61358,59038,3},{61339,59028,3},{61326,59034,3},{61316,59049,3},{61316,59056,3}, {61313,59063,3},{61313,59069,3},{61311,59076,3},{61311,59083,3},{61309,59089,3}, {61304,59083,3},{61293,59076,3},{61293,59078,3},{61293,59088,3},{61291,59091,3}, {61293,59099,3},{61294,59106,3},{61293,59111,3},{61293,59124,3},{61299,59131,3}, {61301,59129,3},{61304,59133,3},{61308,59129,3},{61309,59124,3},{61309,59106,3}, {61313,59103,3},{61314,59116,3},{61321,59138,3},{61326,59149,3},{61328,59161,3}, {61304,59178,3},{61274,59178,3},{61264,59173,3},{61259,59173,3},{61254,59166,3}, {61249,59143,3},{61249,59134,3},{61248,59128,3},{61249,59123,3},{61254,59116,3}, {61258,59111,3},{61269,59114,3},{61273,59116,3},{61274,59113,3},{61276,59111,3}, {61276,59106,3},{61281,59103,3},{61286,59091,3},{61284,59074,3},{61281,59063,3}, {61273,59054,3},{61271,59044,3},{61269,59039,3},{61264,59038,3},{61261,59034,3}, {61256,59036,3},{61253,59056,3},{61243,59076,3},{61243,59086,3},{61239,59089,3}, {61238,59094,3},{61241,59104,3},{61236,59106,3},{61228,59088,3},{61221,59058,3}, {61213,59044,3},{61204,59033,3},{61196,59031,3},{61191,59023,3},{61183,59016,3}, {61178,59009,3},{61171,59004,3},{61161,59003,3},{61159,59004,3},{61154,59004,3}, {61146,59009,3},{61141,59009,3},{61139,59011,3},{61141,59014,3},{61136,59013,3}, {61134,59014,3},{61129,59013,3},{61126,59014,3},{61123,59006,3},{61118,59004,3}, {61114,59006,3},{61111,59009,3},{61108,59009,3},{61104,59011,3},{61104,59013,3}, {61103,59013,3},{61093,59003,3},{61089,59003,3},{61089,59008,3},{61088,59008,3}, {61086,59006,3},{61088,58999,3},{61084,58998,3},{61081,58999,3},{61081,58998,3}, {61083,58991,3},{61079,58989,3},{61078,58984,3},{61073,58974,3},{61066,58968,3}, {61061,58966,3},{61058,58964,3},{61053,58964,3},{61046,58983,3},{61044,58981,3}, {61044,58978,3},{61039,58976,3},{61038,58978,3},{61038,58974,3},{61034,58976,3}, {61033,58971,3},{61034,58968,3},{61031,58968,3},{61034,58961,3},{61034,58954,3}, {61038,58951,3},{61036,58948,3},{61034,58949,3},{61034,58941,3},{61039,58934,3}, {61039,58916,3},{61033,58908,3},{61033,58901,3},{61028,58883,3},{61024,58883,3}, {61021,58889,3},{61023,58878,3},{61018,58884,3},{61016,58883,3},{61016,58868,3}, {61014,58851,3},{61011,58841,3},{61008,58836,3},{60988,58819,3},{60983,58818,3}, {60974,58804,3},{60963,58803,3},{60963,58801,3},{60958,58803,3},{60954,58794,3}, {60943,58783,3},{60941,58783,3},{60936,58778,3},{60928,58774,3},{60919,58774,3}, {60903,58779,3},{60893,58783,3},{60874,58801,3},{60871,58811,3},{60866,58814,3}, {60863,58824,3},{60854,58831,3},{60853,58836,3},{60843,58849,3},{60838,58854,3}, {60833,58864,3},{60831,58886,3},{60829,58899,3},{60828,58903,3},{60826,58914,3}, {60828,58919,3},{60826,58926,3},{60829,58936,3},{60826,58946,3},{60821,58951,3}, {60816,58959,3},{60808,58959,3},{60803,58963,3},{60798,58963,3},{60781,58961,3}, {60759,58948,3},{60759,58946,3},{60759,58934,3},{60754,58924,3},{60753,58918,3}, {60749,58908,3},{60749,58903,3},{60749,58898,3},{60748,58904,3},{60756,58933,3}, {60758,58939,3},{60756,58944,3},{60754,58948,3},{60746,58949,3},{60743,58958,3}, {60741,58956,3},{60739,58958,3},{60739,58953,3},{60741,58944,3},{60739,58939,3}, {60734,58943,3},{60731,58941,3},{60726,58946,3},{60726,58929,3},{60721,58924,3}, {60718,58923,3},{60711,58908,3},{60708,58903,3},{60701,58903,3},{60701,58891,3}, {60696,58889,3},{60696,58881,3},{60691,58869,3},{60679,58853,3},{60678,58843,3}, {60673,58828,3},{60668,58823,3},{60654,58813,3},{60651,58804,3},{60648,58796,3}, {60643,58793,3},{60631,58778,3},{60624,58773,3},{60618,58774,3},{60608,58763,3}, {60604,58766,3},{60604,58758,3},{60599,58756,3},{60598,58753,3},{60596,58754,3}, {60598,58764,3},{60609,58771,3},{60611,58773,3},{60609,58776,3},{60578,58764,3}, {60554,58761,3},{60544,58756,3},{60529,58729,3},{60524,58716,3},{60524,58703,3}, {60529,58694,3},{60539,58684,3},{60544,58683,3},{60554,58673,3},{60559,58671,3}, {60563,58663,3},{60559,58671,3},{60554,58671,3},{60546,58678,3},{60541,58676,3}, {60539,58669,3},{60539,58651,3},{60538,58639,3},{60534,58634,3},{60536,58644,3}, {60538,58651,3},{60536,58669,3},{60538,58678,3},{60536,58681,3},{60529,58684,3}, {60523,58699,3},{60521,58699,3},{60516,58694,3},{60506,58654,3},{60498,58643,3}, {60484,58629,3},{60478,58626,3},{60461,58621,3},{60448,58623,3},{60428,58594,3}, {60436,58606,3},{60439,58618,3},{60431,58621,3},{60419,58623,3},{60386,58639,3}, {60379,58639,3},{60379,58631,3},{60374,58623,3},{60381,58608,3},{60381,58599,3}, {60378,58588,3},{60373,58574,3},{60376,58584,3},{60376,58598,3},{60376,58611,3}, {60371,58619,3},{60368,58614,3},{60373,58631,3},{60374,58638,3},{60363,58648,3}, {60348,58656,3},{60334,58668,3},{60319,58684,3},{60308,58696,3},{60303,58698,3}, {60298,58693,3},{60048,58673,131},{60051,58673,3},{60058,58673,3},{60063,58673,3}, {60068,58673,3},{60074,58673,3},{60079,58673,3},{60084,58673,3},{60091,58673,3}, {60096,58673,3},{60101,58673,3},{60106,58673,3},{60113,58673,3},{60118,58673,3}, {60123,58673,3},{60129,58673,3},{60134,58673,3},{60139,58673,3},{60144,58673,3}, {60151,58673,3},{60156,58673,3},{60161,58673,3},{60168,58673,3},{60173,58673,3}, {60178,58673,3},{60184,58674,3},{60189,58673,3},{60194,58674,3},{60199,58674,3}, {60206,58674,3},{60211,58674,3},{60216,58674,3},{60223,58674,3},{60228,58674,3}, {60233,58674,3},{60239,58674,3},{60244,58674,3},{60249,58674,3},{60254,58674,3}, {60261,58674,3},{60266,58674,3},{60271,58674,3},{60253,58693,3},{60243,58706,3}, {60224,58714,3},{60224,58711,3},{60234,58708,3},{60236,58704,3},{60234,58696,3}, {60228,58689,3},{60224,58683,3},{60219,58679,3},{60213,58681,3},{60209,58686,3}, {60206,58694,3},{60206,58719,3},{60198,58726,3},{60184,58731,3},{60176,58738,3}, {60161,58763,3},{60158,58764,3},{60158,58769,3},{60153,58778,3},{60144,58779,3}, {60133,58799,3},{60121,58831,3},{60114,58844,3},{60113,58851,3},{60108,58863,3}, {60094,58881,3},{60089,58893,3},{60089,58898,3},{60083,58913,3},{60073,58948,3}, {60071,58953,3},{60071,58961,3},{60069,58966,3},{60073,59004,3},{60073,59014,3}, {60071,59023,3},{60068,59016,3},{60059,59014,3},{60056,59011,3},{60054,59013,3}, {60049,59004,3},{60046,59004,3},{60043,59001,3},{60043,58996,3},{60046,58996,3}, {60048,58989,3},{60043,58988,3},{60043,58974,3},{60039,58971,3},{60039,58966,3}, {60044,58964,3},{60046,58959,3},{60046,58939,3},{60044,58941,3},{60043,58939,3}, {60041,58934,3},{60038,58924,3},{60038,58899,3},{60033,58896,3},{60031,58891,3}, {60033,58871,3},{60041,58856,3},{60043,58844,3},{60046,58834,3},{60048,58791,3}, {60049,58783,3},{60048,58768,3},{60048,58751,3},{60054,58713,3},{60056,58706,3}, {60051,58704,3},{60051,58684,3},{60051,58679,3},{60048,58673,3},{60048,58669,3}, {60053,58661,3},{60058,58643,3},{60058,58639,3},{60056,58639,3},{60056,58646,3}, {60049,58654,3},{60046,58663,3},{60043,58656,3},{60041,58629,3},{60043,58618,3}, {60049,58588,3},{60054,58569,3},{60058,58569,3},{60059,58574,3},{60066,58573,3}, {60059,58569,3},{60066,58564,3},{60056,58564,3},{60056,58559,3},{60063,58561,3}, {60064,58558,3},{60054,58556,3},{60054,58544,3},{60061,58539,3},{60068,58539,3}, {60063,58536,3},{60054,58539,3},{60053,58538,3},{60051,58528,3},{60053,58526,3}, {60058,58526,3},{60054,58524,3},{60058,58521,3},{60053,58523,3},{60051,58518,3}, {60051,58508,3},{60053,58504,3},{60058,58504,3},{60061,58511,3},{60068,58513,3}, {60061,58503,3},{60053,58499,3},{60059,58476,3},{60056,58474,3},{60054,58464,3}, {60053,58463,3},{60053,58459,3},{60054,58453,3},{60058,58454,3},{60061,58471,3}, {60066,58483,3},{60071,58489,3},{60073,58489,3},{60073,58481,3},{60069,58473,3}, {60068,58478,3},{60066,58476,3},{60063,58464,3},{60064,58461,3},{60061,58454,3}, {60061,58444,3},{60064,58444,3},{60068,58459,3},{60069,58443,3},{60068,58441,3}, {60064,58443,3},{60058,58433,3},{60059,58431,3},{60066,58436,3},{60069,58436,3}, {60074,58441,3},{60074,58436,3},{60076,58431,3},{60076,58429,3},{60074,58431,3}, {60071,58433,3},{60069,58428,3},{60073,58426,3},{60068,58423,3},{60066,58418,3}, {60068,58414,3},{60069,58406,3},{60071,58406,3},{60073,58416,3},{60074,58411,3}, {60079,58409,3},{60083,58413,3},{60079,58406,3},{60084,58403,3},{60083,58399,3}, {60079,58403,3},{60081,58396,3},{60078,58396,3},{60074,58403,3},{60076,58398,3}, {60074,58396,3},{60071,58394,3},{60073,58391,3},{60071,58391,3},{60071,58388,3}, {60068,58388,3},{60069,58384,3},{60076,58388,3},{60076,58384,3},{60071,58381,3}, {60071,58378,3},{60078,58379,3},{60078,58376,3},{60069,58371,3},{60073,58368,3}, {60076,58371,3},{60076,58361,3},{60074,58361,3},{60073,58354,3},{60071,58356,3}, {60071,58349,3},{60071,58346,3},{60071,58341,3},{60074,58339,3},{60076,58346,3}, {60078,58348,3},{60078,58343,3},{60078,58341,3},{60081,58343,3},{60079,58336,3}, {60083,58338,3},{60084,58334,3},{60084,58343,3},{60088,58336,3},{60091,58336,3}, {60089,58344,3},{60088,58344,3},{60086,58349,3},{60081,58353,3},{60078,58369,3}, {60084,58361,3},{60081,58373,3},{60081,58378,3},{60084,58371,3},{60086,58368,3}, {60088,58368,3},{60089,58364,3},{60088,58359,3},{60089,58353,3},{60091,58351,3}, {60091,58353,3},{60094,58351,3},{60094,58356,3},{60096,58356,3},{60096,58359,3}, {60096,58364,3},{60093,58363,3},{60086,58374,3},{60086,58386,3},{60088,58386,3}, {60089,58376,3},{60094,58374,3},{60094,58378,3},{60091,58384,3},{60094,58383,3}, {60094,58386,3},{60093,58391,3},{60093,58396,3},{60089,58398,3},{60093,58403,3}, {60094,58403,3},{60094,58398,3},{60096,58393,3},{60099,58401,3},{60093,58419,3}, {60086,58423,3},{60086,58428,3},{60093,58423,3},{60091,58434,3},{60089,58439,3}, {60093,58439,3},{60094,58443,3},{60101,58441,3},{60104,58454,3},{60103,58459,3}, {60101,58463,3},{60101,58468,3},{60103,58469,3},{60101,58474,3},{60093,58464,3}, {60088,58464,3},{60079,58458,3},{60076,58459,3},{60081,58463,3},{60076,58468,3}, {60076,58473,3},{60084,58466,3},{60091,58469,3},{60098,58478,3},{60088,58491,3}, {60084,58501,3},{60079,58508,3},{60081,58513,3},{60083,58508,3},{60086,58506,3}, {60081,58523,3},{60086,58513,3},{60094,58491,3},{60098,58489,3},{60099,58484,3}, {60103,58486,3},{60108,58479,3},{60109,58466,3},{60109,58454,3},{60111,58449,3}, {60118,58446,3},{60116,58454,3},{60121,58446,3},{60124,58443,3},{60111,58476,3}, {60103,58503,3},{60101,58508,3},{60099,58513,3},{60096,58514,3},{60093,58521,3}, {60098,58521,3},{60098,58528,3},{60099,58529,3},{60101,58519,3},{60104,58516,3}, {60106,58523,3},{60108,58523,3},{60111,58531,3},{60106,58539,3},{60103,58538,3}, {60099,58541,3},{60098,58539,3},{60098,58544,3},{60094,58546,3},{60093,58549,3}, {60086,58548,3},{60089,58554,3},{60086,58558,3},{60083,58556,3},{60081,58559,3}, {60088,58563,3},{60094,58554,3},{60098,58556,3},{60099,58551,3},{60103,58551,3}, {60104,58548,3},{60108,58549,3},{60108,58556,3},{60104,58568,3},{60091,58581,3}, {60093,58584,3},{60099,58579,3},{60103,58581,3},{60099,58591,3},{60091,58613,3}, {60089,58613,3},{60083,58606,3},{60081,58599,3},{60074,58594,3},{60068,58598,3}, {60074,58598,3},{60076,58604,3},{60081,58608,3},{60083,58613,3},{60081,58616,3}, {60078,58618,3},{60081,58621,3},{60086,58618,3},{60091,58621,3},{60091,58629,3}, {60088,58634,3},{60089,58636,3},{60093,58638,3},{60094,58636,3},{60098,58628,3}, {60098,58618,3},{60106,58603,3},{60109,58584,3},{60114,58578,3},{60119,58548,3}, {60123,58543,3},{60128,58529,3},{60138,58526,3},{60143,58521,3},{60148,58521,3}, {60153,58518,3},{60158,58518,3},{60161,58519,3},{60164,58533,3},{60171,58544,3}, {60171,58559,3},{60186,58601,3},{60189,58603,3},{60199,58601,3},{60203,58598,3}, {60204,58579,3},{60199,58543,3},{60196,58534,3},{60193,58531,3},{60191,58523,3}, {60189,58514,3},{60193,58506,3},{60196,58503,3},{60199,58493,3},{60201,58491,3}, {60213,58488,3},{60221,58491,3},{60234,58491,3},{60241,58501,3},{60236,58501,3}, {60231,58503,3},{60234,58518,3},{60238,58523,3},{60246,58526,3},{60248,58526,3}, {60249,58514,3},{60246,58506,3},{60253,58509,3},{60256,58509,3},{60258,58504,3}, {60259,58494,3},{60263,58499,3},{60264,58519,3},{60263,58524,3},{60259,58528,3}, {60253,58536,3},{60253,58539,3},{60254,58544,3},{60258,58551,3},{60259,58559,3}, {60263,58564,3},{60273,58574,3},{60283,58574,3},{60286,58579,3},{60286,58584,3}, {60291,58594,3},{60271,58613,3},{60268,58621,3},{60268,58628,3},{60271,58633,3}, {60271,58641,3},{60278,58654,3},{60281,58658,3},{60271,58674,3},{60266,58674,3}, {60261,58674,3},{60254,58674,3},{60249,58674,3},{60244,58674,3},{60239,58674,3}, {60233,58674,3},{60228,58674,3},{60223,58674,3},{60216,58674,3},{60211,58674,3}, {60206,58674,3},{60199,58674,3},{60194,58674,3},{60189,58673,3},{60184,58674,3}, {60178,58673,3},{60173,58673,3},{60168,58673,3},{60161,58673,3},{60156,58673,3}, {60151,58673,3},{60144,58673,3},{60139,58673,3},{60134,58673,3},{60129,58673,3}, {60123,58673,3},{60118,58673,3},{60113,58673,3},{60106,58673,3},{60101,58673,3}, {60096,58673,3},{60091,58673,3},{60084,58673,3},{60079,58673,3},{60074,58673,3}, {60068,58673,3},{60063,58673,3},{60058,58673,3},{60051,58673,3},{60048,58673,3}, {60298,58693,131},{60298,58691,3},{60303,58689,3},{60303,58686,3},{60303,58678,3}, {60306,58661,3},{60306,58654,3},{60308,58643,3},{60311,58633,3},{60314,58624,3}, {60316,58614,3},{60316,58609,3},{60311,58593,3},{60308,58588,3},{60298,58586,3}, {60294,58581,3},{60291,58581,3},{60283,58569,3},{60284,58558,3},{60288,58554,3}, {60288,58551,3},{60283,58541,3},{60278,58519,3},{60271,58514,3},{60273,58503,3}, {60266,58484,3},{60266,58481,3},{60271,58486,3},{60271,58483,3},{60269,58478,3}, {60266,58478,3},{60268,58474,3},{60264,58468,3},{60264,58464,3},{60266,58464,3}, {60264,58459,3},{60263,58456,3},{60264,58451,3},{60263,58451,3},{60261,58456,3}, {60258,58456,3},{60258,58463,3},{60254,58454,3},{60249,58453,3},{60246,58448,3}, {60244,58454,3},{60239,58456,3},{60223,58448,3},{60216,58441,3},{60206,58441,3}, {60199,58438,3},{60193,58438,3},{60176,58443,3},{60171,58441,3},{60168,58438,3}, {60159,58438,3},{60153,58431,3},{60148,58408,3},{60153,58391,3},{60156,58366,3}, {60163,58349,3},{60168,58349,3},{60163,58343,3},{60168,58338,3},{60169,58334,3}, {60164,58333,3},{60168,58324,3},{60174,58316,3},{60178,58308,3},{60183,58306,3}, {60183,58301,3},{60196,58291,3},{60199,58296,3},{60204,58294,3},{60211,58306,3}, {60211,58309,3},{60209,58319,3},{60211,58324,3},{60203,58328,3},{60198,58328,3}, {60196,58324,3},{60198,58323,3},{60194,58321,3},{60193,58313,3},{60191,58318,3}, {60194,58328,3},{60196,58331,3},{60198,58336,3},{60208,58334,3},{60213,58336,3}, {60214,58338,3},{60213,58344,3},{60214,58351,3},{60211,58353,3},{60191,58358,3}, {60188,58351,3},{60183,58336,3},{60179,58336,3},{60179,58338,3},{60181,58343,3}, {60184,58356,3},{60191,58361,3},{60203,58359,3},{60214,58361,3},{60216,58374,3}, {60219,58376,3},{60221,58383,3},{60223,58388,3},{60223,58398,3},{60226,58403,3}, {60233,58409,3},{60239,58413,3},{60248,58423,3},{60251,58424,3},{60256,58418,3}, {60258,58401,3},{60263,58396,3},{60258,58396,3},{60254,58393,3},{60253,58388,3}, {60241,58354,3},{60238,58351,3},{60236,58346,3},{60229,58339,3},{60224,58334,3}, {60223,58328,3},{60224,58323,3},{60229,58318,3},{60231,58314,3},{60233,58306,3}, {60229,58309,3},{60231,58298,3},{60229,58281,3},{60228,58281,3},{60228,58288,3}, {60228,58294,3},{60229,58299,3},{60221,58304,3},{60221,58314,3},{60218,58318,3}, {60214,58313,3},{60218,58306,3},{60218,58299,3},{60216,58304,3},{60214,58304,3}, {60213,58301,3},{60218,58288,3},{60214,58293,3},{60213,58293,3},{60216,58283,3}, {60214,58283,3},{60211,58293,3},{60209,58294,3},{60208,58291,3},{60209,58283,3}, {60203,58286,3},{60199,58286,3},{60199,58281,3},{60199,58276,3},{60204,58271,3}, {60199,58273,3},{60196,58278,3},{60194,58281,3},{60194,58283,3},{60194,58288,3}, {60183,58299,3},{60181,58283,3},{60183,58283,3},{60186,58273,3},{60189,58271,3}, {60191,58263,3},{60196,58261,3},{60196,58259,3},{60191,58258,3},{60198,58256,3}, {60198,58249,3},{60199,58248,3},{60199,58243,3},{60208,58229,3},{60209,58223,3}, {60213,58214,3},{60216,58213,3},{60219,58206,3},{60221,58206,3},{60216,58223,3}, {60219,58226,3},{60219,58241,3},{60216,58244,3},{60216,58249,3},{60213,58261,3}, {60208,58259,3},{60206,58266,3},{60209,58264,3},{60211,58268,3},{60218,58256,3}, {60218,58263,3},{60221,58259,3},{60221,58271,3},{60223,58266,3},{60226,58264,3}, {60223,58263,3},{60224,58258,3},{60221,58251,3},{60226,58243,3},{60234,58249,3}, {60233,58244,3},{60238,58244,3},{60244,58241,3},{60248,58244,3},{60251,58238,3}, {60261,58263,3},{60266,58266,3},{60259,58276,3},{60256,58273,3},{60253,58264,3}, {60249,58264,3},{60256,58279,3},{60253,58276,3},{60256,58288,3},{60251,58291,3}, {60249,58293,3},{60254,58294,3},{60258,58298,3},{60261,58306,3},{60266,58311,3}, {60268,58318,3},{60273,58319,3},{60271,58329,3},{60269,58333,3},{60269,58334,3}, {60273,58336,3},{60273,58339,3},{60268,58346,3},{60268,58358,3},{60268,58371,3}, {60273,58381,3},{60273,58389,3},{60279,58383,3},{60279,58373,3},{60283,58344,3}, {60281,58336,3},{60284,58324,3},{60283,58303,3},{60278,58299,3},{60274,58293,3}, {60274,58296,3},{60271,58294,3},{60278,58281,3},{60283,58288,3},{60283,58296,3}, {60286,58298,3},{60284,58284,3},{60279,58279,3},{60281,58273,3},{60283,58273,3}, {60284,58268,3},{60281,58258,3},{60284,58254,3},{60286,58251,3},{60273,58246,3}, {60266,58238,3},{60264,58238,3},{60264,58239,3},{60274,58249,3},{60278,58254,3}, {60274,58256,3},{60273,58266,3},{60271,58269,3},{60261,58259,3},{60259,58253,3}, {60256,58248,3},{60256,58241,3},{60253,58239,3},{60253,58234,3},{60246,58241,3}, {60243,58239,3},{60236,58241,3},{60229,58238,3},{60231,58234,3},{60229,58233,3}, {60226,58223,3},{60229,58218,3},{60233,58221,3},{60234,58216,3},{60229,58214,3}, {60226,58218,3},{60226,58216,3},{60228,58211,3},{60228,58204,3},{60231,58199,3}, {60234,58198,3},{60236,58191,3},{60238,58196,3},{60236,58201,3},{60239,58199,3}, {60239,58203,3},{60243,58204,3},{60239,58213,3},{60243,58211,3},{60243,58213,3}, {60244,58213,3},{60246,58218,3},{60248,58214,3},{60244,58208,3},{60249,58206,3}, {60248,58201,3},{60251,58198,3},{60253,58188,3},{60254,58181,3},{60256,58179,3}, {60258,58189,3},{60254,58189,3},{60258,58194,3},{60258,58198,3},{60254,58198,3}, {60256,58201,3},{60258,58213,3},{60259,58211,3},{60259,58206,3},{60264,58206,3}, {60264,58209,3},{60264,58211,3},{60271,58214,3},{60271,58221,3},{60279,58223,3}, {60279,58236,3},{60283,58224,3},{60284,58226,3},{60286,58231,3},{60284,58243,3}, {60283,58246,3},{60284,58248,3},{60286,58244,3},{60288,58229,3},{60286,58223,3}, {60293,58216,3},{60289,58216,3},{60288,58213,3},{60286,58218,3},{60279,58219,3}, {60273,58213,3},{60269,58209,3},{60269,58204,3},{60271,58203,3},{60278,58206,3}, {60276,58201,3},{60281,58196,3},{60273,58196,3},{60273,58191,3},{60269,58189,3}, {60271,58186,3},{60268,58186,3},{60268,58181,3},{60263,58176,3},{60263,58174,3}, {60261,58174,3},{60263,58171,3},{60263,58168,3},{60268,58169,3},{60269,58176,3}, {60273,58179,3},{60271,58169,3},{60276,58168,3},{60278,58173,3},{60279,58173,3}, {60279,58174,3},{60281,58178,3},{60279,58181,3},{60283,58181,3},{60284,58174,3}, {60286,58179,3},{60288,58179,3},{60288,58186,3},{60289,58183,3},{60294,58184,3}, {60294,58183,3},{60291,58178,3},{60294,58169,3},{60298,58171,3},{60299,58173,3}, {60298,58176,3},{60303,58179,3},{60308,58174,3},{60314,58179,3},{60316,58178,3}, {60316,58173,3},{60319,58173,3},{60326,58164,3},{60333,58163,3},{60333,58168,3}, {60326,58173,3},{60321,58174,3},{60321,58179,3},{60316,58183,3},{60319,58189,3}, {60321,58184,3},{60323,58186,3},{60314,58204,3},{60316,58213,3},{60324,58214,3}, {60324,58219,3},{60323,58223,3},{60328,58226,3},{60329,58238,3},{60321,58238,3}, {60321,58233,3},{60313,58228,3},{60313,58229,3},{60316,58233,3},{60318,58238,3}, {60314,58244,3},{60311,58244,3},{60309,58249,3},{60313,58253,3},{60323,58256,3}, {60328,58261,3},{60329,58261,3},{60331,58259,3},{60328,58254,3},{60316,58248,3}, {60318,58243,3},{60329,58241,3},{60331,58243,3},{60329,58246,3},{60339,58249,3}, {60341,58258,3},{60338,58266,3},{60329,58264,3},{60324,58271,3},{60326,58276,3}, {60314,58283,3},{60308,58279,3},{60304,58279,3},{60301,58276,3},{60301,58273,3}, {60303,58268,3},{60298,58263,3},{60299,58258,3},{60296,58258,3},{60298,58254,3}, {60294,58254,3},{60291,58243,3},{60289,58246,3},{60296,58264,3},{60293,58276,3}, {60289,58281,3},{60291,58286,3},{60293,58286,3},{60294,58276,3},{60296,58273,3}, {60304,58286,3},{60316,58289,3},{60331,58271,3},{60339,58269,3},{60341,58273,3}, {60338,58276,3},{60341,58278,3},{60341,58284,3},{60343,58289,3},{60344,58291,3}, {60351,58284,3},{60358,58289,3},{60363,58286,3},{60369,58274,3},{60374,58269,3}, {60378,58263,3},{60379,58253,3},{60381,58244,3},{60386,58241,3},{60388,58231,3}, {60391,58228,3},{60394,58228,3},{60391,58223,3},{60389,58211,3},{60388,58209,3}, {60386,58209,3},{60384,58214,3},{60388,58221,3},{60384,58231,3},{60383,58233,3}, {60376,58224,3},{60376,58228,3},{60383,58238,3},{60376,58249,3},{60376,58256,3}, {60374,58261,3},{60366,58264,3},{60363,58281,3},{60358,58279,3},{60353,58273,3}, {60353,58264,3},{60354,58263,3},{60354,58258,3},{60359,58253,3},{60358,58248,3}, {60361,58244,3},{60359,58239,3},{60359,58238,3},{60363,58238,3},{60366,58231,3}, {60366,58219,3},{60368,58218,3},{60373,58218,3},{60373,58213,3},{60374,58213,3}, {60374,58208,3},{60374,58206,3},{60371,58213,3},{60364,58214,3},{60363,58223,3}, {60364,58228,3},{60358,58236,3},{60358,58234,3},{60361,58231,3},{60361,58224,3}, {60359,58223,3},{60359,58229,3},{60353,58231,3},{60351,58228,3},{60349,58216,3}, {60346,58218,3},{60349,58229,3},{60354,58239,3},{60349,58244,3},{60343,58223,3}, {60339,58221,3},{60328,58219,3},{60328,58213,3},{60333,58209,3},{60338,58209,3}, {60346,58206,3},{60364,58204,3},{60371,58198,3},{60361,58203,3},{60331,58206,3}, {60323,58208,3},{60319,58208,3},{60319,58204,3},{60323,58198,3},{60326,58194,3}, {60331,58181,3},{60334,58178,3},{60339,58179,3},{60341,58174,3},{60343,58178,3}, {60353,58171,3},{60354,58173,3},{60354,58176,3},{60351,58178,3},{60346,58183,3}, {60341,58186,3},{60339,58189,3},{60334,58193,3},{60334,58196,3},{60344,58188,3}, {60346,58191,3},{60348,58186,3},{60351,58188,3},{60353,58183,3},{60356,58184,3}, {60358,58179,3},{60361,58176,3},{60363,58184,3},{60368,58189,3},{60364,58181,3}, {60368,58181,3},{60364,58176,3},{60368,58171,3},{60358,58166,3},{60364,58159,3}, {60366,58156,3},{60368,58154,3},{60373,58164,3},{60371,58159,3},{60374,58146,3}, {60378,58146,3},{60383,58154,3},{60383,58148,3},{60384,58144,3},{60388,58146,3}, {60396,58143,3},{60399,58146,3},{60396,58151,3},{60396,58154,3},{60391,58159,3}, {60389,58164,3},{60374,58173,3},{60373,58174,3},{60374,58176,3},{60383,58173,3}, {60384,58176,3},{60384,58171,3},{60388,58169,3},{60389,58171,3},{60391,58176,3}, {60393,58178,3},{60391,58171,3},{60394,58168,3},{60403,58163,3},{60408,58164,3}, {60413,58158,3},{60414,58158,3},{60416,58163,3},{60409,58168,3},{60414,58166,3}, {60418,58169,3},{60416,58166,3},{60418,58164,3},{60423,58166,3},{60421,58163,3}, {60424,58159,3},{60419,58161,3},{60411,58146,3},{60418,58138,3},{60426,58134,3}, {60416,58134,3},{60416,58128,3},{60418,58123,3},{60426,58124,3},{60429,58121,3}, {60436,58128,3},{60441,58129,3},{60439,58124,3},{60431,58118,3},{60431,58116,3}, {60433,58113,3},{60441,58114,3},{60443,58111,3},{60446,58114,3},{60449,58121,3}, {60446,58141,3},{60449,58144,3},{60444,58151,3},{60443,58151,3},{60439,58156,3}, {60444,58158,3},{60449,58153,3},{60453,58148,3},{60456,58154,3},{60454,58158,3}, {60453,58163,3},{60456,58158,3},{60463,58159,3},{60468,58158,3},{60469,58161,3}, {60471,58173,3},{60469,58178,3},{60466,58179,3},{60464,58183,3},{60469,58183,3}, {60469,58189,3},{60471,58183,3},{60473,58179,3},{60474,58171,3},{60479,58164,3}, {60483,58164,3},{60488,58176,3},{60496,58179,3},{60496,58178,3},{60488,58171,3}, {60486,58163,3},{60483,58159,3},{60471,58156,3},{60468,58153,3},{60459,58154,3}, {60456,58146,3},{60453,58143,3},{60453,58131,3},{60459,58124,3},{60461,58126,3}, {60463,58129,3},{60464,58129,3},{60468,58124,3},{60464,58124,3},{60463,58121,3}, {60474,58113,3},{60481,58116,3},{60483,58111,3},{60488,58106,3},{60489,58114,3}, {60481,58121,3},{60478,58123,3},{60478,58126,3},{60483,58121,3},{60484,58123,3}, {60486,58119,3},{60488,58123,3},{60483,58133,3},{60481,58148,3},{60483,58148,3}, {60486,58136,3},{60491,58134,3},{60488,58129,3},{60493,58124,3},{60498,58129,3}, {60499,58134,3},{60499,58128,3},{60496,58126,3},{60496,58114,3},{60493,58113,3}, {60493,58108,3},{60496,58104,3},{60504,58109,3},{60509,58108,3},{60509,58104,3}, {60499,58101,3},{60499,58096,3},{60501,58089,3},{60503,58091,3},{60504,58086,3}, {60506,58083,3},{60511,58088,3},{60509,58081,3},{60514,58084,3},{60511,58076,3}, {60513,58074,3},{60516,58076,3},{60514,58069,3},{60516,58066,3},{60519,58068,3}, {60526,58078,3},{60526,58083,3},{60521,58084,3},{60524,58086,3},{60528,58086,3}, {60528,58089,3},{60526,58091,3},{60528,58101,3},{60523,58106,3},{60519,58103,3}, {60519,58109,3},{60516,58113,3},{60514,58116,3},{60511,58116,3},{60509,58118,3}, {60513,58121,3},{60513,58126,3},{60508,58139,3},{60506,58149,3},{60508,58149,3}, {60513,58134,3},{60514,58133,3},{60514,58136,3},{60516,58136,3},{60514,58131,3}, {60516,58126,3},{60514,58121,3},{60516,58118,3},{60519,58114,3},{60524,58114,3}, {60528,58111,3},{60528,58108,3},{60538,58099,3},{60543,58101,3},{60543,58103,3}, {60541,58106,3},{60543,58109,3},{60539,58118,3},{60534,58121,3},{60536,58126,3}, {60533,58129,3},{60533,58143,3},{60529,58146,3},{60528,58148,3},{60534,58146,3}, {60534,58138,3},{60536,58136,3},{60543,58139,3},{60544,58148,3},{60544,58144,3}, {60549,58146,3},{60546,58143,3},{60544,58138,3},{60541,58136,3},{60539,58129,3}, {60541,58124,3},{60544,58123,3},{60546,58118,3},{60546,58109,3},{60548,58106,3}, {60556,58101,3},{60556,58108,3},{60559,58111,3},{60561,58116,3},{60561,58129,3}, {60564,58129,3},{60561,58106,3},{60571,58103,3},{60574,58104,3},{60579,58111,3}, {60579,58119,3},{60583,58128,3},{60579,58134,3},{60574,58133,3},{60579,58136,3}, {60581,58141,3},{60569,58148,3},{60568,58154,3},{60563,58161,3},{60558,58164,3}, {60563,58168,3},{60566,58161,3},{60569,58159,3},{60571,58151,3},{60584,58148,3}, {60584,58136,3},{60588,58124,3},{60594,58124,3},{60601,58126,3},{60608,58128,3}, {60609,58131,3},{60608,58136,3},{60603,58139,3},{60601,58146,3},{60601,58151,3}, {60604,58143,3},{60609,58136,3},{60613,58136,3},{60619,58139,3},{60628,58133,3}, {60629,58136,3},{60633,58141,3},{60634,58144,3},{60631,58153,3},{60633,58153,3}, {60636,58144,3},{60634,58131,3},{60633,58129,3},{60628,58131,3},{60624,58131,3}, {60621,58133,3},{60614,58128,3},{60613,58124,3},{60614,58121,3},{60614,58118,3}, {60609,58121,3},{60598,58119,3},{60594,58118,3},{60586,58118,3},{60583,58113,3}, {60584,58109,3},{60594,58101,3},{60594,58096,3},{60598,58094,3},{60604,58098,3}, {60616,58094,3},{60618,58099,3},{60623,58094,3},{60628,58096,3},{60628,58091,3}, {60633,58089,3},{60638,58096,3},{60643,58094,3},{60643,58099,3},{60646,58093,3}, {60648,58093,3},{60649,58094,3},{60651,58091,3},{60656,58093,3},{60659,58096,3}, {60663,58098,3},{60663,58099,3},{60659,58103,3},{60661,58103,3},{60661,58106,3}, {60664,58114,3},{60663,58131,3},{60664,58128,3},{60666,58118,3},{60663,58104,3}, {60666,58103,3},{60668,58108,3},{60669,58104,3},{60668,58103,3},{60668,58099,3}, {60673,58099,3},{60674,58096,3},{60681,58104,3},{60683,58109,3},{60684,58109,3}, {60688,58116,3},{60681,58131,3},{60676,58134,3},{60676,58138,3},{60679,58139,3}, {60683,58133,3},{60691,58133,3},{60694,58146,3},{60696,58146,3},{60694,58134,3}, {60696,58131,3},{60696,58124,3},{60699,58121,3},{60701,58113,3},{60703,58116,3}, {60704,58128,3},{60706,58119,3},{60703,58109,3},{60708,58109,3},{60713,58104,3}, {60714,58104,3},{60716,58094,3},{60723,58088,3},{60728,58084,3},{60731,58089,3}, {60733,58089,3},{60728,58081,3},{60728,58076,3},{60729,58071,3},{60734,58071,3}, {60736,58073,3},{60738,58079,3},{60741,58084,3},{60738,58089,3},{60738,58094,3}, {60731,58103,3},{60716,58109,3},{60718,58111,3},{60713,58114,3},{60714,58121,3}, {60714,58118,3},{60716,58116,3},{60719,58113,3},{60721,58114,3},{60724,58111,3}, {60733,58104,3},{60734,58103,3},{60736,58104,3},{60736,58129,3},{60733,58133,3}, {60733,58134,3},{60734,58134,3},{60731,58141,3},{60733,58148,3},{60731,58151,3}, {60726,58149,3},{60733,58159,3},{60731,58161,3},{60724,58156,3},{60728,58159,3}, {60724,58174,3},{60721,58178,3},{60714,58176,3},{60714,58178,3},{60711,58181,3}, {60716,58183,3},{60718,58186,3},{60718,58189,3},{60718,58194,3},{60714,58201,3}, {60718,58201,3},{60721,58208,3},{60728,58209,3},{60729,58208,3},{60723,58206,3}, {60719,58198,3},{60724,58188,3},{60731,58178,3},{60736,58178,3},{60738,58171,3}, {60739,58173,3},{60744,58171,3},{60746,58173,3},{60744,58179,3},{60741,58181,3}, {60738,58186,3},{60736,58193,3},{60738,58201,3},{60736,58214,3},{60739,58203,3}, {60739,58189,3},{60741,58184,3},{60743,58183,3},{60748,58186,3},{60749,58183,3}, {60748,58179,3},{60749,58174,3},{60756,58181,3},{60758,58166,3},{60764,58163,3}, {60773,58171,3},{60773,58166,3},{60778,58166,3},{60779,58169,3},{60781,58164,3}, {60783,58164,3},{60776,58159,3},{60774,58163,3},{60771,58163,3},{60764,58158,3}, {60758,58158,3},{60751,58143,3},{60753,58133,3},{60756,58133,3},{60759,58129,3}, {60756,58114,3},{60759,58106,3},{60758,58104,3},{60758,58099,3},{60759,58096,3}, {60759,58103,3},{60761,58103,3},{60761,58098,3},{60758,58083,3},{60759,58083,3}, {60759,58073,3},{60761,58064,3},{60764,58063,3},{60771,58068,3},{60771,58073,3}, {60769,58078,3},{60766,58078,3},{60769,58081,3},{60774,58073,3},{60779,58076,3}, {60781,58083,3},{60774,58086,3},{60781,58088,3},{60781,58089,3},{60779,58094,3}, {60778,58094,3},{60774,58096,3},{60776,58098,3},{60776,58099,3},{60771,58101,3}, {60769,58091,3},{60766,58088,3},{60769,58103,3},{60763,58106,3},{60761,58111,3}, {60761,58118,3},{60761,58119,3},{60761,58114,3},{60764,58108,3},{60768,58106,3}, {60769,58108,3},{60769,58119,3},{60769,58123,3},{60771,58111,3},{60773,58109,3}, {60774,58119,3},{60773,58126,3},{60774,58133,3},{60776,58123,3},{60783,58131,3}, {60776,58119,3},{60778,58113,3},{60776,58104,3},{60781,58101,3},{60783,58103,3}, {60781,58098,3},{60788,58091,3},{60789,58091,3},{60789,58096,3},{60791,58098,3}, {60791,58091,3},{60794,58089,3},{60791,58089,3},{60789,58086,3},{60793,58083,3}, {60799,58089,3},{60801,58094,3},{60804,58094,3},{60806,58099,3},{60811,58103,3}, {60814,58104,3},{60811,58108,3},{60814,58108,3},{60811,58113,3},{60814,58113,3}, {60814,58119,3},{60808,58119,3},{60801,58126,3},{60811,58123,3},{60816,58124,3}, {60818,58128,3},{60816,58131,3},{60818,58133,3},{60811,58138,3},{60811,58139,3}, {60819,58138,3},{60819,58131,3},{60833,58143,3},{60838,58134,3},{60839,58131,3}, {60838,58123,3},{60846,58114,3},{60848,58116,3},{60849,58121,3},{60853,58123,3}, {60849,58111,3},{60853,58111,3},{60854,58108,3},{60856,58109,3},{60858,58109,3}, {60859,58093,3},{60863,58078,3},{60858,58088,3},{60856,58084,3},{60856,58071,3}, {60853,58071,3},{60851,58069,3},{60853,58081,3},{60849,58086,3},{60849,58093,3}, {60846,58089,3},{60846,58079,3},{60848,58076,3},{60848,58068,3},{60851,58064,3}, {60856,58056,3},{60859,58054,3},{60859,58053,3},{60854,58051,3},{60858,58046,3}, {60861,58034,3},{60873,58028,3},{60876,58029,3},{60878,58034,3},{60881,58036,3}, {60884,58043,3},{60893,58043,3},{60886,58038,3},{60884,58031,3},{60879,58028,3}, {60873,58018,3},{60873,58016,3},{60876,58014,3},{60873,58011,3},{60873,58003,3}, {60869,58001,3},{60871,57996,3},{60873,57994,3},{60871,57991,3},{60866,57976,3}, {60863,57976,3},{60859,57971,3},{60858,57971,3},{60858,57973,3},{60861,57978,3}, {60866,57981,3},{60866,57993,3},{60863,57994,3},{60863,57991,3},{60861,57991,3}, {60858,57989,3},{60858,57993,3},{60858,57996,3},{60858,57998,3},{60853,57996,3}, {60849,57993,3},{60851,57999,3},{60849,58001,3},{60846,58001,3},{60841,57986,3}, {60843,57978,3},{60844,57978,3},{60849,57971,3},{60854,57969,3},{60858,57964,3}, {60873,57966,3},{60876,57971,3},{60879,57973,3},{60879,57979,3},{60881,57984,3}, {60883,57981,3},{60884,57983,3},{60884,57989,3},{60888,57993,3},{60888,57998,3}, {60893,57996,3},{60899,58009,3},{60899,58011,3},{60894,58014,3},{60906,58016,3}, {60901,58026,3},{60901,58033,3},{60903,58024,3},{60906,58021,3},{60908,58024,3}, {60909,58026,3},{60911,58024,3},{60914,58026,3},{60914,58033,3},{60908,58043,3}, {60913,58039,3},{60921,58046,3},{60921,58049,3},{60914,58058,3},{60918,58058,3}, {60918,58061,3},{60921,58054,3},{60924,58054,3},{60933,58059,3},{60933,58066,3}, {60934,58063,3},{60936,58064,3},{60944,58064,3},{60954,58069,3},{60953,58073,3}, {60951,58076,3},{60954,58079,3},{60951,58083,3},{60946,58081,3},{60946,58084,3}, {60943,58084,3},{60944,58089,3},{60943,58091,3},{60934,58088,3},{60933,58089,3}, {60943,58096,3},{60951,58089,3},{60951,58093,3},{60956,58091,3},{60954,58094,3}, {60956,58101,3},{60953,58104,3},{60954,58109,3},{60956,58119,3},{60951,58126,3}, {60948,58116,3},{60946,58124,3},{60943,58121,3},{60944,58129,3},{60941,58131,3}, {60938,58128,3},{60934,58119,3},{60934,58126,3},{60933,58128,3},{60926,58124,3}, {60923,58119,3},{60923,58123,3},{60926,58129,3},{60936,58129,3},{60938,58131,3}, {60931,58139,3},{60924,58136,3},{60918,58128,3},{60913,58116,3},{60911,58103,3}, {60914,58094,3},{60919,58088,3},{60918,58086,3},{60909,58103,3},{60911,58118,3}, {60916,58131,3},{60913,58129,3},{60911,58133,3},{60909,58133,3},{60904,58129,3}, {60908,58134,3},{60901,58151,3},{60904,58149,3},{60909,58141,3},{60914,58139,3}, {60914,58134,3},{60921,58139,3},{60923,58148,3},{60916,58151,3},{60913,58159,3}, {60906,58159,3},{60898,58154,3},{60881,58136,3},{60876,58144,3},{60876,58148,3}, {60878,58153,3},{60883,58156,3},{60886,58158,3},{60883,58163,3},{60889,58159,3}, {60894,58161,3},{60903,58174,3},{60906,58188,3},{60906,58181,3},{60908,58179,3}, {60918,58183,3},{60921,58188,3},{60929,58194,3},{60933,58201,3},{60934,58198,3}, {60933,58193,3},{60928,58191,3},{60914,58174,3},{60911,58176,3},{60908,58173,3}, {60904,58168,3},{60911,58168,3},{60914,58171,3},{60914,58173,3},{60916,58171,3}, {60928,58174,3},{60931,58171,3},{60934,58171,3},{60939,58169,3},{60941,58176,3}, {60943,58174,3},{60948,58178,3},{60948,58184,3},{60949,58181,3},{60953,58179,3}, {60966,58194,3},{60968,58198,3},{60968,58213,3},{60969,58218,3},{60971,58206,3}, {60974,58203,3},{60969,58193,3},{60964,58189,3},{60958,58178,3},{60991,58184,3}, {60994,58193,3},{60991,58194,3},{60998,58196,3},{60999,58201,3},{60996,58204,3}, {61003,58204,3},{61006,58214,3},{61004,58218,3},{61001,58218,3},{60994,58228,3}, {60994,58233,3},{60991,58234,3},{60989,58249,3},{60989,58251,3},{60993,58251,3}, {60994,58253,3},{60996,58251,3},{60998,58248,3},{60994,58241,3},{60998,58231,3}, {61008,58218,3},{61011,58209,3},{61008,58204,3},{61006,58201,3},{61008,58191,3}, {61011,58189,3},{61016,58191,3},{61016,58201,3},{61021,58206,3},{61024,58203,3}, {61028,58203,3},{61028,58199,3},{61033,58196,3},{61038,58198,3},{61041,58203,3}, {61039,58213,3},{61041,58224,3},{61049,58236,3},{61049,58243,3},{61059,58258,3}, {61059,58263,3},{61063,58266,3},{61069,58263,3},{61073,58266,3},{61081,58268,3}, {61086,58276,3},{61091,58274,3},{61101,58278,3},{61096,58273,3},{61094,58269,3}, {61086,58266,3},{61086,58264,3},{61091,58261,3},{61093,58254,3},{61096,58251,3}, {61099,58243,3},{61104,58243,3},{61111,58218,3},{61114,58219,3},{61114,58223,3}, {61119,58226,3},{61121,58224,3},{61118,58219,3},{61116,58214,3},{61118,58208,3}, {61123,58208,3},{61126,58209,3},{61123,58214,3},{61126,58214,3},{61129,58214,3}, {61129,58218,3},{61128,58221,3},{61126,58224,3},{61133,58223,3},{61138,58223,3}, {61143,58226,3},{61144,58229,3},{61148,58229,3},{61154,58234,3},{61159,58236,3}, {61154,58238,3},{61154,58239,3},{61158,58248,3},{61154,58251,3},{61154,58254,3}, {61158,58251,3},{61163,58251,3},{61168,58251,3},{61163,58249,3},{61161,58248,3}, {61161,58243,3},{61159,58239,3},{61163,58236,3},{61163,58231,3},{61166,58231,3}, {61168,58236,3},{61174,58239,3},{61174,58246,3},{61178,58244,3},{61176,58239,3}, {61178,58233,3},{61193,58224,3},{61196,58228,3},{61206,58228,3},{61213,58246,3}, {61223,58243,3},{61228,58244,3},{61233,58249,3},{61236,58253,3},{61234,58256,3}, {61229,58258,3},{61228,58263,3},{61234,58259,3},{61244,58263,3},{61251,58253,3}, {61259,58249,3},{61266,58249,3},{61268,58254,3},{61274,58249,3},{61279,58251,3}, {61286,58254,3},{61286,58258,3},{61286,58268,3},{61281,58278,3},{61279,58283,3}, {61284,58279,3},{61288,58268,3},{61293,58264,3},{61296,58264,3},{61298,58259,3}, {61306,58256,3},{61306,58253,3},{61306,58251,3},{61314,58261,3},{61314,58266,3}, {61318,58276,3},{61313,58281,3},{61309,58281,3},{61291,58291,3},{61289,58293,3}, {61291,58294,3},{61299,58293,3},{61306,58288,3},{61309,58289,3},{61311,58294,3}, {61311,58289,3},{61314,58288,3},{61319,58289,3},{61321,58294,3},{61321,58288,3}, {61324,58288,3},{61339,58289,3},{61339,58283,3},{61333,58279,3},{61333,58276,3}, {61334,58274,3},{61334,58269,3},{61336,58268,3},{61334,58264,3},{61338,58254,3}, {61341,58253,3},{61344,58248,3},{61363,58269,3},{61363,58278,3},{61364,58288,3}, {61368,58296,3},{61371,58299,3},{61371,58306,3},{61374,58303,3},{61381,58304,3}, {61384,58306,3},{61388,58303,3},{61398,58306,3},{61399,58303,3},{61398,58301,3}, {61394,58304,3},{61391,58301,3},{61374,58298,3},{61369,58294,3},{61368,58288,3}, {61368,58283,3},{61366,58279,3},{61366,58273,3},{61369,58268,3},{61374,58268,3}, {61376,58264,3},{61381,58261,3},{61386,58253,3},{61384,58248,3},{61388,58241,3}, {61384,58231,3},{61379,58231,3},{61378,58226,3},{61366,58231,3},{61366,58226,3}, {61361,58223,3},{61361,58219,3},{61356,58216,3},{61359,58196,3},{61358,58194,3}, {61356,58194,3},{61358,58191,3},{61356,58184,3},{61359,58178,3},{61361,58161,3}, {61368,58163,3},{61371,58168,3},{61374,58168,3},{61374,58179,3},{61384,58186,3}, {61379,58181,3},{61378,58181,3},{61376,58176,3},{61376,58164,3},{61379,58159,3}, {61379,58154,3},{61384,58154,3},{61389,58149,3},{61396,58151,3},{61406,58149,3}, {61424,58138,3},{61439,58136,3},{61443,58141,3},{61446,58146,3},{61448,58146,3}, {61449,58141,3},{61454,58144,3},{61461,58146,3},{61468,58151,3},{61473,58151,3}, {61474,58153,3},{61478,58158,3},{61484,58161,3},{61494,58158,3},{61494,58159,3}, {61511,58161,3},{61514,58164,3},{61518,58163,3},{61523,58166,3},{61524,58169,3}, {61524,58171,3},{61533,58169,3},{61538,58164,3},{61543,58169,3},{61543,58176,3}, {61544,58176,3},{61548,58184,3},{61553,58189,3},{61553,58193,3},{61553,58194,3}, {61544,58196,3},{61544,58198,3},{61549,58199,3},{61556,58196,3},{61563,58198,3}, {61566,58196,3},{61569,58198,3},{61569,58201,3},{61571,58201,3},{61588,58211,3}, {61591,58211,3},{61594,58214,3},{61598,58211,3},{61601,58214,3},{61611,58213,3}, {61614,58216,3},{61618,58213,3},{61614,58214,3},{61614,58211,3},{61621,58211,3}, {61646,58199,3},{61666,58193,3},{61658,58193,3},{61683,58184,3},{61698,58183,3}, {61703,58184,3},{61704,58186,3},{61709,58184,3},{61716,58189,3},{61731,58191,3}, {61749,58183,3},{61759,58174,3},{61763,58169,3},{61768,58171,3},{61776,58168,3}, {61784,58176,3},{61789,58176,3},{61794,58176,3},{61799,58169,3},{61803,58168,3}, {61808,58171,3},{61818,58173,3},{61821,58178,3},{61816,58183,3},{61814,58189,3}, {61811,58191,3},{61816,58209,3},{61821,58216,3},{61831,58219,3},{61836,58218,3}, {61841,58221,3},{61849,58221,3},{61854,58221,3},{61859,58216,3},{61863,58219,3}, {61861,58221,3},{61863,58223,3},{61864,58224,3},{61866,58221,3},{61868,58223,3}, {61876,58224,3},{61876,58226,3},{61874,58228,3},{61866,58228,3},{61864,58233,3}, {61866,58238,3},{61874,58239,3},{61879,58236,3},{61883,58238,3},{61884,58239,3}, {61883,58243,3},{61889,58244,3},{61893,58248,3},{61898,58248,3},{61904,58253,3}, {61918,58253,3},{61921,58256,3},{61926,58254,3},{61933,58258,3},{61938,58256,3}, {61946,58266,3},{61951,58269,3},{61954,58276,3},{61956,58278,3},{61963,58278,3}, {61976,58271,3},{61978,58271,3},{61988,58286,3},{61999,58288,3},{62001,58293,3}, {62013,58298,3},{62019,58308,3},{62026,58314,3},{62048,58318,3},{62058,58323,3}, {62061,58326,3},{62071,58331,3},{62083,58331,3},{62084,58333,3},{62094,58331,3}, {62096,58333,3},{62099,58338,3},{62114,58338,3},{62118,58334,3},{62121,58334,3}, {62133,58343,3},{62134,58346,3},{62139,58346,3},{62143,58349,3},{62158,58354,3}, {62163,58366,3},{62168,58369,3},{62179,58371,3},{62183,58374,3},{62193,58364,3}, {62198,58366,3},{62201,58369,3},{62206,58369,3},{62209,58366,3},{62219,58364,3}, {62226,58361,3},{62228,58368,3},{62234,58371,3},{62233,58376,3},{62234,58379,3}, {62243,58381,3},{62248,58384,3},{62258,58381,3},{62259,58386,3},{62264,58384,3}, {62266,58389,3},{62271,58391,3},{62284,58389,3},{62288,58393,3},{62294,58393,3}, {62298,58396,3},{62301,58393,3},{62303,58389,3},{62308,58388,3},{62316,58383,3}, {62338,58386,3},{62344,58383,3},{62348,58386,3},{62351,58381,3},{62358,58384,3}, {62376,58379,3},{62384,58379,3},{62421,58369,3},{62438,58371,3},{62443,58368,3}, {62458,58366,3},{62474,58364,3},{62501,58368,3},{62511,58373,3},{62511,58374,3}, {62508,58376,3},{62506,58381,3},{62509,58386,3},{62513,58384,3},{62513,58388,3}, {62516,58389,3},{62519,58393,3},{62518,58393,3},{62518,58394,3},{62523,58398,3}, {62528,58399,3},{62536,58394,3},{62539,58401,3},{62543,58401,3},{62543,58406,3}, {62546,58408,3},{62553,58408,3},{62556,58404,3},{62563,58403,3},{62571,58404,3}, {62574,58408,3},{62581,58403,3},{62594,58406,3},{62598,58403,3},{62606,58401,3}, {62614,58388,3},{62621,58386,3},{62626,58389,3},{62629,58386,3},{62631,58388,3}, {62634,58386,3},{62638,58386,3},{62639,58384,3},{62649,58386,3},{62656,58398,3}, {62663,58399,3},{62668,58406,3},{62674,58408,3},{62679,58404,3},{62683,58409,3}, {62689,58409,3},{62689,58414,3},{62701,58419,3},{62706,58418,3},{62714,58421,3}, {62726,58419,3},{62729,58421,3},{62741,58423,3},{62746,58424,3},{62749,58426,3}, {62751,58426,3},{62754,58428,3},{62758,58428,3},{62764,58431,3},{62769,58433,3}, {62771,58433,3},{62768,58436,3},{62769,58441,3},{62774,58444,3},{62781,58444,3}, {62788,58448,3},{62799,58441,3},{62803,58443,3},{62806,58443,3},{62811,58441,3}, {62814,58441,3},{62818,58439,3},{62823,58441,3},{62826,58443,3},{62823,58446,3}, {62823,58448,3},{62831,58451,3},{62831,58454,3},{62834,58454,3},{62836,58458,3}, {62849,58454,3},{62861,58461,3},{62864,58461,3},{62868,58463,3},{62878,58466,3}, {62883,58468,3},{62886,58466,3},{62893,58468,3},{62898,58466,3},{62904,58473,3}, {62906,58473,3},{62908,58469,3},{62911,58471,3},{62916,58469,3},{62919,58469,3}, {62929,58469,3},{62933,58473,3},{62936,58473,3},{62943,58471,3},{62948,58466,3}, {62951,58466,3},{62956,58463,3},{62961,58466,3},{62964,58466,3},{62969,58468,3}, {62973,58471,3},{62979,58473,3},{62983,58471,3},{62986,58474,3},{62986,58478,3}, {62988,58481,3},{62998,58484,3},{62998,58488,3},{63001,58491,3},{63016,58493,3}, {63023,58489,3},{63026,58486,3},{63036,58489,3},{63046,58483,3},{63059,58481,3}, {63064,58478,3},{63074,58481,3},{63083,58478,3},{63088,58481,3},{63098,58481,3}, {63101,58483,3},{63104,58481,3},{63119,58486,3},{63131,58486,3},{63136,58484,3}, {63146,58486,3},{63149,58484,3},{63153,58488,3},{63158,58486,3},{63166,58493,3}, {63176,58498,3},{63186,58494,3},{63191,58488,3},{63191,58484,3},{63186,58483,3}, {63184,58481,3},{63186,58478,3},{63188,58476,3},{63186,58474,3},{63191,58474,3}, {63194,58478,3},{63198,58476,3},{63206,58478,3},{63209,58476,3},{63214,58476,3}, {63219,58481,3},{63229,58478,3},{63234,58484,3},{63234,58486,3},{63229,58486,3}, {63228,58489,3},{63229,58498,3},{63234,58503,3},{63241,58503,3},{63246,58508,3}, {63256,58504,3},{63261,58506,3},{63266,58508,3},{63273,58508,3},{63274,58509,3}, {63279,58508,3},{63288,58511,3},{63291,58509,3},{63298,58513,3},{63303,58511,3}, {63308,58513,3},{63321,58514,3},{63328,58516,3},{63329,58518,3},{63336,58516,3}, {63341,58519,3},{63348,58516,3},{63348,58519,3},{63351,58521,3},{63369,58521,3}, {63374,58521,3},{63378,58528,3},{63383,58528,3},{63384,58529,3},{63388,58528,3}, {63393,58531,3},{63403,58526,3},{63406,58529,3},{63414,58528,3},{63424,58523,3}, {63428,58524,3},{63434,58519,3},{63443,58523,3},{63448,58523,3},{63456,58514,3}, {63458,58516,3},{63466,58516,3},{63471,58518,3},{63483,58516,3},{63488,58519,3}, {63491,58519,3},{63496,58519,3},{63499,58518,3},{63504,58521,3},{63509,58523,3}, {63516,58519,3},{63518,58521,3},{63521,58521,3},{63528,58523,3},{63531,58523,3}, {63538,58524,3},{63541,58523,3},{63548,58521,3},{63549,58523,3},{63556,58519,3}, {63559,58521,3},{63564,58521,3},{63568,58519,3},{63569,58519,3},{63573,58518,3}, {63578,58513,3},{63578,58516,3},{63583,58516,3},{63586,58516,3},{63596,58514,3}, {63601,58509,3},{63604,58509,3},{63606,58508,3},{63623,58509,3},{63634,58504,3}, {63648,58504,3},{63658,58501,3},{63663,58503,3},{63666,58501,3},{63669,58503,3}, {63673,58501,3},{63686,58504,3},{63691,58503,3},{63693,58504,3},{63701,58496,3}, {63704,58499,3},{63703,58516,3},{63704,58523,3},{63708,58531,3},{63709,58536,3}, {63711,58541,3},{63716,58544,3},{63723,58553,3},{63739,58559,3},{63743,58559,3}, {63746,58556,3},{63756,58554,3},{63761,58551,3},{63768,58553,3},{63769,58554,3}, {63771,58554,3},{63769,58568,3},{63786,58586,3},{63773,58588,3},{63761,58601,3}, {63756,58604,3},{63746,58604,3},{63739,58606,3},{63738,58608,3},{63739,58609,3}, {63741,58609,3},{63739,58611,3},{63738,58613,3},{63733,58623,3},{63734,58629,3}, {63728,58629,3},{63724,58623,3},{63721,58621,3},{63713,58628,3},{63708,58628,3}, {63704,58629,3},{63698,58629,3},{63688,58634,3},{63671,58633,3},{63666,58636,3}, {63661,58636,3},{63648,58643,3},{63641,58638,3},{63638,58641,3},{63629,58646,3}, {63626,58654,3},{63619,58661,3},{63616,58668,3},{63608,58671,3},{63604,58681,3}, {63594,58693,3},{63593,58693,3},{63591,58688,3},{63571,58673,3},{63566,58668,3}, {63563,58666,3},{63554,58676,3},{63553,58681,3},{63548,58681,3},{63544,58684,3}, {63539,58681,3},{63531,58679,3},{63529,58669,3},{63528,58659,3},{63526,58658,3}, {63523,58659,3},{63521,58664,3},{63513,58663,3},{63503,58669,3},{63499,58661,3}, {63496,58661,3},{63491,58661,3},{63486,58666,3},{63479,58681,3},{63473,58689,3}, {63471,58689,3},{63468,58684,3},{63463,58679,3},{63446,58681,3},{63443,58686,3}, {63443,58694,3},{63406,58718,3},{63376,58718,3},{63368,58723,3},{63361,58726,3}, {63339,58728,3},{63329,58739,3},{63326,58741,3},{63319,58739,3},{63314,58743,3}, {63309,58744,3},{63303,58741,3},{63293,58748,3},{63286,58748,3},{63281,58751,3}, {63264,58748,3},{63253,58748,3},{63251,58753,3},{63253,58754,3},{63248,58756,3}, {63246,58778,3},{63254,58818,3},{63236,58836,3},{63196,58821,3},{63134,58803,3}, {63096,58711,3},{63086,58706,3},{63086,58698,3},{63079,58693,3},{63074,58693,3}, {63074,58689,3},{63076,58689,3},{63076,58688,3},{63069,58686,3},{63059,58679,3}, {63054,58679,3},{63049,58681,3},{63046,58686,3},{63046,58691,3},{63043,58689,3}, {63039,58693,3},{63033,58694,3},{63024,58701,3},{63023,58701,3},{63021,58694,3}, {63023,58689,3},{63018,58686,3},{63003,58679,3},{62991,58676,3},{62984,58676,3}, {62979,58681,3},{62969,58681,3},{62963,58686,3},{62921,58696,3},{62918,58694,3}, {62906,58679,3},{62886,58678,3},{62878,58683,3},{62866,58693,3},{62848,58706,3}, {62844,58708,3},{62838,58704,3},{62831,58704,3},{62831,58699,3},{62829,58693,3}, {62829,58686,3},{62826,58681,3},{62819,58678,3},{62821,58673,3},{62826,58666,3}, {62826,58658,3},{62824,58654,3},{62813,58648,3},{62808,58649,3},{62799,58646,3}, {62794,58641,3},{62789,58636,3},{62783,58634,3},{62776,58631,3},{62771,58628,3}, {62766,58629,3},{62763,58624,3},{62746,58621,3},{62739,58618,3},{62736,58606,3}, {62733,58606,3},{62729,58603,3},{62724,58601,3},{62719,58598,3},{62714,58596,3}, {62718,58589,3},{62716,58588,3},{62711,58588,3},{62704,58583,3},{62696,58571,3}, {62679,58569,3},{62676,58566,3},{62673,58564,3},{62669,58561,3},{62664,58561,3}, {62656,58564,3},{62641,58556,3},{62626,58556,3},{62623,58553,3},{62623,58546,3}, {62619,58544,3},{62616,58538,3},{62611,58539,3},{62609,58534,3},{62606,58533,3}, {62599,58533,3},{62581,58539,3},{62569,58539,3},{62566,58541,3},{62564,58544,3}, {62561,58544,3},{62558,58546,3},{62539,58544,3},{62528,58539,3},{62528,58546,3}, {62524,58551,3},{62521,58553,3},{62518,58553,3},{62514,58549,3},{62504,58546,3}, {62498,58541,3},{62496,58534,3},{62498,58529,3},{62501,58524,3},{62499,58519,3}, {62493,58523,3},{62489,58521,3},{62486,58516,3},{62476,58514,3},{62471,58509,3}, {62464,58509,3},{62458,58506,3},{62448,58503,3},{62439,58503,3},{62433,58511,3}, {62433,58503,3},{62424,58499,3},{62421,58494,3},{62426,58491,3},{62426,58489,3}, {62419,58483,3},{62413,58483,3},{62404,58479,3},{62399,58481,3},{62394,58479,3}, {62379,58478,3},{62369,58483,3},{62363,58488,3},{62356,58489,3},{62349,58493,3}, {62348,58496,3},{62348,58506,3},{62341,58513,3},{62331,58509,3},{62333,58499,3}, {62331,58498,3},{62328,58501,3},{62324,58501,3},{62323,58504,3},{62318,58503,3}, {62314,58504,3},{62308,58504,3},{62304,58511,3},{62301,58513,3},{62294,58513,3}, {62289,58519,3},{62288,58521,3},{62281,58521,3},{62279,58523,3},{62278,58519,3}, {62274,58519,3},{62261,58521,3},{62251,58531,3},{62248,58538,3},{62236,58533,3}, {62236,58528,3},{62233,58526,3},{62228,58528,3},{62219,58526,3},{62213,58533,3}, {62206,58536,3},{62206,58538,3},{62211,58541,3},{62213,58544,3},{62208,58556,3}, {62201,58556,3},{62196,58559,3},{62191,58554,3},{62183,58553,3},{62181,58549,3}, {62178,58549,3},{62169,58548,3},{62164,58551,3},{62159,58546,3},{62158,58546,3}, {62148,58548,3},{62141,58546,3},{62139,58548,3},{62141,58551,3},{62139,58551,3}, {62126,58551,3},{62123,58549,3},{62113,58554,3},{62111,58553,3},{62109,58548,3}, {62108,58546,3},{62109,58539,3},{62108,58531,3},{62094,58531,3},{62091,58526,3}, {62083,58521,3},{62078,58514,3},{62064,58511,3},{62061,58504,3},{62058,58509,3}, {62056,58509,3},{62038,58501,3},{62021,58499,3},{62016,58491,3},{62016,58483,3}, {62011,58479,3},{62008,58479,3},{62006,58483,3},{62004,58491,3},{62001,58494,3}, {61999,58493,3},{61998,58489,3},{61989,58493,3},{61986,58496,3},{61976,58496,3}, {61971,58494,3},{61954,58503,3},{61953,58498,3},{61946,58494,3},{61944,58499,3}, {61939,58494,3},{61931,58499,3},{61921,58493,3},{61919,58488,3},{61921,58484,3}, {61923,58481,3},{61921,58478,3},{61916,58478,3},{61914,58473,3},{61911,58471,3}, {61909,58466,3},{61903,58464,3},{61898,58466,3},{61894,58466,3},{61893,58456,3}, {61896,58449,3},{61894,58446,3},{61889,58444,3},{61888,58443,3},{61888,58433,3}, {61876,58429,3},{61868,58431,3},{61866,58429,3},{61868,58426,3},{61868,58423,3}, {61861,58423,3},{61851,58418,3},{61849,58418,3},{61848,58423,3},{61844,58421,3}, {61841,58424,3},{61838,58421,3},{61838,58416,3},{61836,58421,3},{61828,58424,3}, {61826,58428,3},{61824,58424,3},{61821,58423,3},{61814,58423,3},{61806,58416,3}, {61798,58419,3},{61793,58424,3},{61789,58426,3},{61781,58423,3},{61778,58424,3}, {61774,58419,3},{61766,58418,3},{61733,58433,3},{61729,58436,3},{61724,58434,3}, {61719,58436,3},{61713,58434,3},{61694,58439,3},{61688,58444,3},{61684,58453,3}, {61679,58454,3},{61674,58451,3},{61673,58448,3},{61668,58449,3},{61666,58446,3}, {61661,58443,3},{61661,58431,3},{61659,58426,3},{61656,58423,3},{61656,58413,3}, {61653,58413,3},{61644,58396,3},{61633,58394,3},{61613,58398,3},{61603,58396,3}, {61598,58389,3},{61593,58391,3},{61588,58388,3},{61583,58383,3},{61581,58388,3}, {61576,58388,3},{61574,58384,3},{61574,58381,3},{61574,58374,3},{61579,58369,3}, {61578,58366,3},{61573,58364,3},{61568,58368,3},{61564,58366,3},{61551,58369,3}, {61548,58374,3},{61544,58376,3},{61534,58369,3},{61526,58369,3},{61528,58361,3}, {61528,58358,3},{61526,58356,3},{61524,58358,3},{61518,58356,3},{61516,58354,3}, {61506,58363,3},{61506,58364,3},{61508,58366,3},{61506,58369,3},{61503,58369,3}, {61493,58364,3},{61496,58359,3},{61494,58358,3},{61481,58351,3},{61478,58353,3}, {61473,58351,3},{61463,58341,3},{61451,58346,3},{61446,58351,3},{61441,58353,3}, {61434,58349,3},{61429,58353,3},{61421,58351,3},{61418,58348,3},{61411,58349,3}, {61399,58346,3},{61393,58349,3},{61384,58348,3},{61378,58353,3},{61374,58346,3}, {61371,58344,3},{61364,58351,3},{61358,58351,3},{61349,58358,3},{61341,58359,3}, {61338,58359,3},{61333,58363,3},{61326,58363,3},{61323,58358,3},{61323,58349,3}, {61318,58344,3},{61318,58343,3},{61323,58339,3},{61323,58334,3},{61319,58331,3}, {61314,58329,3},{61308,58323,3},{61301,58331,3},{61293,58329,3},{61288,58333,3}, {61283,58324,3},{61278,58323,3},{61274,58324,3},{61269,58323,3},{61264,58324,3}, {61251,58326,3},{61234,58323,3},{61226,58331,3},{61224,58338,3},{61223,58353,3}, {61219,58361,3},{61218,58363,3},{61206,58361,3},{61206,58354,3},{61204,58346,3}, {61199,58346,3},{61198,58343,3},{61194,58344,3},{61191,58341,3},{61189,58351,3}, {61186,58351,3},{61183,58349,3},{61181,58358,3},{61178,58359,3},{61176,58366,3}, {61168,58368,3},{61163,58356,3},{61159,58354,3},{61158,58358,3},{61159,58363,3}, {61153,58361,3},{61144,58371,3},{61139,58371,3},{61129,58361,3},{61126,58351,3}, {61123,58351,3},{61116,58356,3},{61109,58354,3},{61104,58356,3},{61099,58351,3}, {61096,58356,3},{61096,58359,3},{61098,58364,3},{61094,58373,3},{61096,58394,3}, {61094,58399,3},{61093,58416,3},{61091,58421,3},{61086,58421,3},{61083,58426,3}, {61078,58423,3},{61076,58416,3},{61071,58413,3},{61061,58414,3},{61056,58408,3}, {61056,58399,3},{61061,58386,3},{61058,58371,3},{61061,58358,3},{61056,58353,3}, {61058,58346,3},{61058,58341,3},{61061,58331,3},{61059,58328,3},{61046,58329,3}, {61044,58339,3},{61041,58349,3},{61043,58356,3},{61043,58361,3},{61038,58368,3}, {61038,58379,3},{61019,58391,3},{61018,58396,3},{61014,58403,3},{61006,58406,3}, {61004,58406,3},{60999,58399,3},{60994,58386,3},{60988,58389,3},{60986,58388,3}, {60983,58383,3},{60983,58368,3},{60981,58363,3},{60979,58361,3},{60976,58363,3}, {60971,58358,3},{60966,58359,3},{60963,58358,3},{60958,58363,3},{60951,58359,3}, {60946,58373,3},{60939,58376,3},{60934,58369,3},{60924,58359,3},{60923,58348,3}, {60921,58346,3},{60919,58349,3},{60916,58353,3},{60914,58359,3},{60911,58361,3}, {60898,58361,3},{60883,58369,3},{60878,58368,3},{60868,58369,3},{60864,58366,3}, {60863,58359,3},{60858,58354,3},{60856,58344,3},{60854,58343,3},{60851,58344,3}, {60841,58339,3},{60836,58346,3},{60831,58336,3},{60829,58336,3},{60821,58349,3}, {60814,58349,3},{60813,58344,3},{60814,58341,3},{60816,58334,3},{60816,58333,3}, {60814,58333,3},{60809,58334,3},{60801,58328,3},{60798,58323,3},{60794,58319,3}, {60794,58306,3},{60793,58303,3},{60789,58299,3},{60788,58301,3},{60786,58306,3}, {60776,58303,3},{60761,58291,3},{60743,58283,3},{60736,58289,3},{60734,58296,3}, {60731,58298,3},{60728,58304,3},{60716,58306,3},{60708,58304,3},{60701,58308,3}, {60701,58299,3},{60696,58296,3},{60691,58279,3},{60688,58276,3},{60664,58281,3}, {60656,58279,3},{60643,58261,3},{60641,58244,3},{60638,58236,3},{60629,58228,3}, {60623,58228,3},{60614,58218,3},{60611,58219,3},{60609,58228,3},{60608,58223,3}, {60606,58223,3},{60604,58189,3},{60598,58191,3},{60593,58183,3},{60586,58183,3}, {60583,58178,3},{60574,58184,3},{60568,58183,3},{60558,58191,3},{60551,58183,3}, {60546,58183,3},{60544,58179,3},{60536,58189,3},{60526,58183,3},{60523,58183,3}, {60511,58203,3},{60504,58208,3},{60479,58211,3},{60471,58219,3},{60461,58219,3}, {60459,58224,3},{60461,58234,3},{60469,58246,3},{60474,58261,3},{60469,58273,3}, {60469,58278,3},{60474,58283,3},{60476,58286,3},{60474,58294,3},{60474,58299,3}, {60473,58301,3},{60471,58306,3},{60461,58303,3},{60451,58311,3},{60434,58309,3}, {60433,58308,3},{60433,58303,3},{60424,58296,3},{60419,58299,3},{60414,58309,3}, {60411,58311,3},{60406,58304,3},{60396,58304,3},{60393,58303,3},{60388,58303,3}, {60384,58294,3},{60379,58293,3},{60378,58294,3},{60378,58303,3},{60366,58308,3}, {60363,58323,3},{60351,58339,3},{60346,58343,3},{60339,58339,3},{60338,58343,3}, {60336,58344,3},{60336,58536,3},{60321,58589,3},{60321,58613,3},{60316,58638,3}, {60308,58653,3},{60303,58693,3},{60298,58693,3},{233,60076,131},{235,60079,3}, {233,60084,3},{243,60088,3},{243,60093,3},{248,60099,3},{263,60104,3},{278,60116,3}, {282,60116,3},{285,60119,3},{288,60116,3},{295,60119,3},{297,60118,3},{302,60119,3}, {305,60118,3},{308,60119,3},{312,60119,3},{313,60118,3},{312,60114,3},{315,60116,3}, {320,60118,3},{328,60124,3},{330,60129,3},{337,60129,3},{345,60136,3},{353,60134,3}, {360,60138,3},{362,60136,3},{363,60134,3},{363,60131,3},{378,60124,3},{382,60116,3}, {385,60116,3},{393,60108,3},{400,60104,3},{403,60099,3},{415,60103,3},{418,60096,3}, {425,60096,3},{430,60096,3},{438,60093,3},{452,60091,3},{458,60094,3},{465,60093,3}, {470,60093,3},{473,60089,3},{475,60088,3},{485,60089,3},{490,60088,3},{495,60091,3}, {502,60091,3},{513,60098,3},{515,60101,3},{525,60108,3},{530,60116,3},{535,60119,3}, {540,60128,3},{543,60131,3},{555,60136,3},{562,60134,3},{572,60138,3},{578,60148,3}, {577,60154,3},{575,60156,3},{570,60163,3},{562,60179,3},{557,60188,3},{553,60198,3}, {553,60209,3},{552,60211,3},{550,60214,3},{552,60216,3},{552,60218,3},{545,60231,3}, {545,60234,3},{547,60236,3},{545,60243,3},{542,60248,3},{527,60259,3},{518,60269,3}, {513,60274,3},{507,60283,3},{505,60283,3},{505,60288,3},{500,60291,3},{500,60294,3}, {498,60294,3},{493,60298,3},{488,60298,3},{493,60301,3},{495,60303,3},{493,60308,3}, {487,60309,3},{483,60306,3},{475,60301,3},{472,60303,3},{477,60304,3},{483,60308,3}, {487,60314,3},{487,60316,3},{478,60321,3},{477,60326,3},{468,60334,3},{460,60338,3}, {442,60341,3},{440,60339,3},{435,60333,3},{433,60333,3},{437,60339,3},{440,60343,3}, {460,60343,3},{465,60344,3},{467,60348,3},{465,60351,3},{460,60356,3},{458,60356,3}, {455,60359,3},{445,60361,3},{445,60363,3},{442,60363,3},{440,60363,3},{438,60368,3}, {437,60368,3},{435,60364,3},{430,60364,3},{420,60371,3},{408,60369,3},{403,60368,3}, {398,60359,3},{387,60354,3},{380,60348,3},{377,60343,3},{373,60343,3},{372,60339,3}, {370,60338,3},{362,60336,3},{352,60329,3},{352,60328,3},{348,60328,3},{328,60316,3}, {323,60313,3},{325,60311,3},{323,60308,3},{317,60304,3},{315,60301,3},{312,60301,3}, {307,60303,3},{293,60294,3},{290,60296,3},{288,60293,3},{265,60283,3},{263,60279,3}, {258,60283,3},{257,60281,3},{247,60276,3},{243,60271,3},{238,60269,3},{233,60263,3}, {230,60256,3},{228,60251,3},{220,60246,3},{217,60239,3},{218,60231,3},{222,60228,3}, {222,60224,3},{220,60213,3},{220,60209,3},{225,60214,3},{235,60203,3},{235,60201,3}, {232,60201,3},{225,60191,3},{225,60183,3},{227,60181,3},{232,60163,3},{235,60164,3}, {237,60161,3},{235,60156,3},{232,60154,3},{230,60149,3},{227,60148,3},{227,60143,3}, {223,60143,3},{222,60143,3},{218,60136,3},{218,60134,3},{218,60129,3},{213,60128,3}, {212,60124,3},{212,60121,3},{217,60118,3},{215,60111,3},{217,60103,3},{222,60099,3}, {220,60096,3},{222,60089,3},{227,60083,3},{228,60083,3},{228,60084,3},{232,60083,3}, {233,60076,3},{195,59889,131},{197,59888,3},{202,59879,3},{203,59868,3}, {220,59854,3},{227,59853,3},{230,59848,3},{235,59848,3},{240,59843,3},{243,59843,3}, {247,59841,3},{252,59841,3},{250,59838,3},{252,59836,3},{255,59836,3},{260,59833,3}, {263,59834,3},{263,59829,3},{268,59829,3},{273,59826,3},{277,59828,3},{277,59823,3}, {283,59823,3},{282,59818,3},{285,59816,3},{290,59814,3},{295,59818,3},{297,59813,3}, {302,59813,3},{303,59816,3},{307,59814,3},{308,59811,3},{313,59813,3},{313,59809,3}, {313,59808,3},{317,59809,3},{318,59808,3},{325,59808,3},{328,59806,3},{332,59808,3}, {338,59806,3},{335,59801,3},{338,59794,3},{335,59793,3},{333,59789,3},{337,59784,3}, {335,59781,3},{335,59776,3},{337,59771,3},{338,59769,3},{347,59773,3},{352,59771,3}, {357,59764,3},{362,59763,3},{367,59753,3},{375,59751,3},{382,59748,3},{390,59741,3}, {397,59734,3},{400,59731,3},{417,59729,3},{422,59733,3},{428,59741,3},{440,59741,3}, {445,59744,3},{465,59753,3},{477,59748,3},{478,59744,3},{483,59744,3},{493,59753,3}, {493,59759,3},{497,59761,3},{502,59768,3},{500,59776,3},{502,59784,3},{498,59788,3}, {498,59794,3},{503,59803,3},{502,59808,3},{503,59808,3},{507,59804,3},{517,59806,3}, {518,59809,3},{517,59811,3},{513,59813,3},{517,59818,3},{527,59813,3},{527,59809,3}, {522,59811,3},{523,59808,3},{532,59808,3},{532,59803,3},{535,59804,3},{538,59809,3}, {548,59811,3},{552,59818,3},{555,59819,3},{577,59823,3},{588,59828,3},{595,59829,3}, {600,59839,3},{597,59869,3},{595,59874,3},{595,59888,3},{582,59929,3},{582,59934,3}, {577,59946,3},{567,59946,3},{572,59948,3},{580,59946,3},{585,59946,3},{588,59943,3}, {595,59951,3},{598,59969,3},{597,59998,3},{592,60009,3},{590,60014,3},{590,60018,3}, {588,60024,3},{587,60026,3},{582,60023,3},{582,60024,3},{585,60026,3},{588,60028,3}, {585,60034,3},{587,60038,3},{585,60043,3},{587,60046,3},{585,60049,3},{588,60046,3}, {587,60043,3},{587,60036,3},{590,60031,3},{590,60026,3},{593,60023,3},{595,60019,3}, {597,60021,3},{600,60031,3},{598,60036,3},{598,60059,3},{592,60081,3},{590,60101,3}, {588,60109,3},{588,60116,3},{583,60126,3},{582,60134,3},{578,60134,3},{575,60138,3}, {565,60131,3},{552,60131,3},{535,60119,3},{530,60116,3},{525,60108,3},{515,60101,3}, {513,60098,3},{502,60091,3},{495,60091,3},{490,60088,3},{485,60089,3},{475,60088,3}, {473,60089,3},{470,60093,3},{465,60093,3},{458,60094,3},{452,60091,3},{438,60093,3}, {430,60096,3},{425,60096,3},{418,60096,3},{415,60103,3},{403,60099,3},{400,60104,3}, {393,60108,3},{385,60116,3},{382,60116,3},{378,60124,3},{363,60131,3},{363,60134,3}, {362,60136,3},{360,60138,3},{353,60134,3},{345,60136,3},{337,60129,3},{330,60129,3}, {328,60124,3},{320,60118,3},{315,60116,3},{312,60114,3},{313,60118,3},{312,60119,3}, {308,60119,3},{305,60118,3},{302,60119,3},{297,60118,3},{295,60119,3},{288,60116,3}, {285,60119,3},{282,60116,3},{278,60116,3},{263,60104,3},{248,60099,3},{243,60093,3}, {243,60088,3},{233,60084,3},{235,60079,3},{233,60076,3},{232,60071,3},{233,60066,3}, {238,60064,3},{240,60068,3},{245,60066,3},{247,60061,3},{243,60056,3},{243,60049,3}, {253,60041,3},{257,60039,3},{260,60043,3},{262,60041,3},{258,60034,3},{253,60024,3}, {257,60023,3},{255,60018,3},{252,60016,3},{250,60011,3},{252,60008,3},{252,60004,3}, {248,60001,3},{245,60001,3},{243,59998,3},{243,59978,3},{240,59964,3},{242,59963,3}, {245,59959,3},{247,59949,3},{252,59944,3},{253,59939,3},{252,59938,3},{248,59938,3}, {245,59936,3},{240,59936,3},{235,59933,3},{235,59931,3},{235,59928,3},{227,59923,3}, {225,59923,3},{225,59928,3},{223,59931,3},{222,59933,3},{218,59933,3},{215,59936,3}, {205,59946,3},{195,59944,3},{190,59946,3},{187,59943,3},{183,59934,3},{188,59918,3}, {188,59909,3},{193,59901,3},{192,59896,3},{195,59889,3},{520,59463,131}, {595,59398,3},{598,59403,3},{612,59409,3},{613,59416,3},{618,59419,3},{618,59424,3}, {623,59424,3},{627,59426,3},{630,59423,3},{633,59421,3},{643,59423,3},{652,59419,3}, {653,59416,3},{655,59418,3},{657,59416,3},{663,59419,3},{667,59419,3},{672,59423,3}, {672,59429,3},{673,59429,3},{672,59434,3},{673,59436,3},{672,59443,3},{677,59446,3}, {680,59444,3},{682,59446,3},{678,59451,3},{678,59458,3},{677,59466,3},{683,59473,3}, {685,59483,3},{693,59493,3},{695,59496,3},{693,59499,3},{700,59501,3},{705,59508,3}, {712,59508,3},{718,59499,3},{717,59496,3},{720,59491,3},{718,59486,3},{712,59483,3}, {720,59474,3},{725,59473,3},{732,59478,3},{733,59478,3},{738,59474,3},{740,59471,3}, {743,59471,3},{745,59468,3},{753,59464,3},{757,59466,3},{757,59471,3},{763,59474,3}, {763,59478,3},{770,59479,3},{773,59478,3},{782,59484,3},{783,59501,3},{787,59503,3}, {793,59511,3},{797,59513,3},{798,59521,3},{802,59523,3},{803,59526,3},{803,59534,3}, {813,59538,3},{817,59538,3},{822,59541,3},{823,59553,3},{827,59556,3},{832,59554,3}, {853,59538,3},{852,59541,3},{840,59549,3},{837,59553,3},{832,59564,3},{828,59568,3}, {827,59574,3},{823,59576,3},{822,59583,3},{813,59593,3},{817,59589,3},{823,59583,3}, {825,59576,3},{835,59559,3},{840,59558,3},{842,59561,3},{837,59568,3},{833,59573,3}, {830,59578,3},{828,59581,3},{825,59586,3},{823,59591,3},{820,59596,3},{818,59599,3}, {815,59604,3},{812,59609,3},{810,59614,3},{807,59618,3},{803,59624,3},{798,59628,3}, {793,59634,3},{788,59638,3},{785,59641,3},{782,59646,3},{778,59649,3},{773,59656,3}, {770,59658,3},{767,59659,3},{762,59663,3},{760,59664,3},{763,59664,3},{762,59669,3}, {748,59678,3},{737,59688,3},{733,59689,3},{718,59688,3},{713,59689,3},{702,59688,3}, {693,59681,3},{678,59676,3},{672,59676,3},{670,59674,3},{655,59674,3},{650,59674,3}, {638,59668,3},{642,59673,3},{642,59676,3},{652,59679,3},{660,59679,3},{667,59681,3}, {673,59686,3},{682,59689,3},{687,59694,3},{690,59704,3},{687,59711,3},{682,59719,3}, {683,59721,3},{682,59731,3},{678,59738,3},{668,59746,3},{663,59753,3},{653,59764,3}, {648,59773,3},{643,59778,3},{627,59784,3},{628,59786,3},{633,59786,3},{633,59789,3}, {627,59803,3},{615,59816,3},{610,59818,3},{600,59819,3},{595,59823,3},{583,59821,3}, {577,59818,3},{568,59819,3},{560,59818,3},{548,59811,3},{538,59809,3},{535,59804,3}, {532,59803,3},{532,59808,3},{523,59808,3},{522,59811,3},{527,59809,3},{527,59813,3}, {517,59818,3},{513,59813,3},{517,59811,3},{518,59809,3},{517,59806,3},{507,59804,3}, {503,59808,3},{502,59808,3},{503,59803,3},{498,59794,3},{498,59788,3},{502,59784,3}, {500,59776,3},{502,59768,3},{497,59761,3},{493,59759,3},{493,59753,3},{483,59744,3}, {478,59744,3},{477,59748,3},{465,59753,3},{445,59744,3},{440,59741,3},{428,59741,3}, {422,59733,3},{417,59729,3},{400,59731,3},{397,59734,3},{390,59741,3},{382,59748,3}, {375,59751,3},{367,59753,3},{362,59763,3},{357,59764,3},{352,59771,3},{347,59773,3}, {338,59769,3},{337,59771,3},{335,59776,3},{335,59781,3},{337,59784,3},{333,59789,3}, {335,59793,3},{338,59794,3},{335,59801,3},{338,59806,3},{332,59808,3},{328,59806,3}, {325,59808,3},{318,59808,3},{317,59809,3},{313,59808,3},{313,59809,3},{313,59813,3}, {308,59811,3},{307,59814,3},{303,59816,3},{302,59813,3},{297,59813,3},{295,59818,3}, {290,59814,3},{285,59816,3},{282,59818,3},{283,59823,3},{277,59823,3},{277,59828,3}, {273,59826,3},{268,59829,3},{263,59829,3},{263,59834,3},{260,59833,3},{255,59836,3}, {252,59836,3},{250,59838,3},{252,59841,3},{247,59841,3},{243,59843,3},{240,59843,3}, {235,59848,3},{230,59848,3},{227,59853,3},{220,59854,3},{203,59868,3},{202,59879,3}, {197,59888,3},{195,59889,3},{192,59883,3},{190,59881,3},{193,59873,3},{192,59871,3}, {192,59864,3},{187,59858,3},{190,59848,3},{193,59846,3},{192,59839,3},{193,59834,3}, {195,59831,3},{202,59829,3},{202,59826,3},{195,59813,3},{198,59809,3},{198,59806,3}, {197,59803,3},{193,59799,3},{192,59794,3},{182,59791,3},{178,59788,3},{173,59786,3}, {170,59781,3},{170,59773,3},{172,59761,3},{167,59748,3},{163,59744,3},{167,59738,3}, {160,59739,3},{152,59736,3},{152,59723,3},{157,59719,3},{157,59713,3},{158,59706,3}, {160,59706,3},{160,59704,3},{155,59701,3},{153,59698,3},{148,59698,3},{145,59686,3}, {135,59689,3},{127,59686,3},{127,59684,3},{128,59681,3},{127,59679,3},{128,59666,3}, {122,59663,3},{118,59654,3},{120,59649,3},{123,59646,3},{127,59646,3},{130,59643,3}, {133,59636,3},{133,59628,3},{138,59611,3},{142,59608,3},{147,59608,3},{148,59604,3}, {152,59604,3},{153,59603,3},{152,59601,3},{155,59598,3},{157,59594,3},{162,59593,3}, {165,59588,3},{172,59584,3},{173,59581,3},{173,59573,3},{177,59569,3},{185,59573,3}, {187,59566,3},{185,59563,3},{187,59561,3},{190,59561,3},{192,59561,3},{197,59563,3}, {203,59563,3},{207,59561,3},{212,59564,3},{218,59563,3},{228,59563,3},{230,59556,3}, {237,59546,3},{238,59546,3},{240,59548,3},{245,59546,3},{255,59543,3},{257,59543,3}, {260,59539,3},{262,59541,3},{268,59538,3},{282,59538,3},{298,59541,3},{303,59539,3}, {310,59543,3},{313,59546,3},{315,59544,3},{317,59546,3},{320,59546,3},{323,59548,3}, {325,59548,3},{333,59553,3},{335,59553,3},{337,59554,3},{340,59554,3},{343,59554,3}, {343,59553,3},{348,59554,3},{357,59551,3},{360,59551,3},{363,59559,3},{370,59569,3}, {377,59569,3},{378,59573,3},{378,59576,3},{382,59578,3},{385,59578,3},{390,59578,3}, {393,59584,3},{395,59584,3},{397,59578,3},{400,59578,3},{408,59571,3},{415,59573,3}, {417,59566,3},{422,59563,3},{423,59563,3},{427,59564,3},{430,59563,3},{435,59568,3}, {438,59569,3},{440,59566,3},{447,59556,3},{445,59554,3},{447,59551,3},{448,59551,3}, {448,59549,3},{447,59546,3},{450,59543,3},{452,59539,3},{450,59539,3},{450,59531,3}, {452,59529,3},{453,59528,3},{452,59526,3},{450,59526,3},{452,59521,3},{457,59521,3}, {458,59523,3},{460,59524,3},{460,59528,3},{467,59529,3},{470,59533,3},{480,59534,3}, {483,59536,3},{490,59536,3},{505,59539,3},{510,59539,3},{513,59531,3},{517,59528,3}, {520,59526,3},{525,59524,3},{523,59519,3},{527,59518,3},{527,59516,3},{525,59511,3}, {520,59506,3},{520,59499,3},{522,59496,3},{518,59491,3},{520,59491,3},{520,59486,3}, {518,59481,3},{522,59476,3},{522,59468,3},{520,59463,3},{122,58849,131}, {128,58846,3},{133,58848,3},{135,58848,3},{143,58843,3},{148,58843,3},{158,58838,3}, {170,58838,3},{193,58828,3},{198,58823,3},{203,58824,3},{210,58824,3},{212,58824,3}, {213,58819,3},{223,58814,3},{228,58814,3},{233,58819,3},{240,58816,3},{247,58804,3}, {252,58803,3},{263,58788,3},{268,58786,3},{268,58779,3},{278,58776,3},{280,58773,3}, {280,58766,3},{283,58761,3},{282,58753,3},{278,58751,3},{280,58751,3},{287,58751,3}, {325,58793,3},{327,58798,3},{330,58799,3},{332,58803,3},{340,58808,3},{345,58806,3}, {350,58798,3},{365,58793,3},{372,58788,3},{373,58786,3},{373,58778,3},{377,58774,3}, {380,58773,3},{383,58773,3},{393,58768,3},{402,58768,3},{413,58761,3},{417,58758,3}, {423,58756,3},{430,58756,3},{435,58758,3},{440,58756,3},{443,58758,3},{445,58754,3}, {448,58754,3},{452,58749,3},{455,58748,3},{455,58749,3},{467,58751,3},{473,58754,3}, {483,58754,3},{488,58753,3},{493,58754,3},{497,58756,3},{503,58756,3},{505,58758,3}, {512,58753,3},{522,58754,3},{530,58751,3},{538,58756,3},{548,58771,3},{552,58773,3}, {553,58774,3},{558,58773,3},{568,58771,3},{578,58774,3},{588,58783,3},{600,58794,3}, {603,58793,3},{608,58788,3},{612,58788,3},{615,58788,3},{620,58791,3},{620,58788,3}, {627,58779,3},{628,58773,3},{632,58754,3},{627,58746,3},{623,58744,3},{622,58739,3}, {620,58733,3},{622,58721,3},{618,58711,3},{617,58704,3},{618,58691,3},{617,58683,3}, {617,58678,3},{613,58673,3},{618,58653,3},{618,58648,3},{622,58631,3},{620,58626,3}, {610,58618,3},{608,58611,3},{612,58606,3},{615,58604,3},{612,58593,3},{698,58524,3}, {697,58514,3},{695,58509,3},{695,58504,3},{702,58493,3},{702,58484,3},{705,58481,3}, {708,58479,3},{707,58474,3},{708,58468,3},{710,58466,3},{710,58461,3},{710,58459,3}, {708,58458,3},{708,58448,3},{707,58446,3},{705,58446,3},{702,58441,3},{700,58436,3}, {698,58433,3},{700,58423,3},{697,58418,3},{698,58416,3},{698,58409,3},{702,58409,3}, {703,58408,3},{702,58403,3},{703,58396,3},{702,58391,3},{703,58389,3},{703,58388,3}, {703,58386,3},{702,58383,3},{705,58381,3},{703,58378,3},{705,58376,3},{707,58371,3}, {705,58369,3},{703,58369,3},{705,58366,3},{703,58359,3},{700,58359,3},{702,58356,3}, {698,58354,3},{698,58349,3},{702,58343,3},{702,58336,3},{705,58333,3},{707,58329,3}, {718,58323,3},{727,58319,3},{733,58321,3},{737,58318,3},{738,58318,3},{740,58314,3}, {738,58309,3},{740,58296,3},{748,58289,3},{752,58289,3},{757,58291,3},{765,58289,3}, {775,58289,3},{783,58291,3},{790,58291,3},{795,58288,3},{798,58293,3},{803,58296,3}, {805,58303,3},{810,58303,3},{825,58298,3},{832,58299,3},{837,58298,3},{840,58293,3}, {863,58269,3},{907,58258,3},{908,58256,3},{912,58259,3},{915,58254,3},{913,58248,3}, {912,58248,3},{910,58241,3},{915,58239,3},{920,58241,3},{923,58238,3},{927,58238,3}, {930,58236,3},{918,58216,3},{917,58199,3},{918,58198,3},{922,58199,3},{923,58203,3}, {928,58206,3},{935,58208,3},{940,58211,3},{943,58214,3},{953,58219,3},{958,58226,3}, {967,58229,3},{973,58234,3},{978,58236,3},{983,58239,3},{992,58238,3},{995,58239,3}, {1000,58238,3},{1012,58243,3},{1022,58244,3},{1045,58246,3},{1050,58251,3}, {1055,58253,3},{1065,58259,3},{1087,58269,3},{1090,58274,3},{1095,58279,3}, {1103,58283,3},{1108,58286,3},{1112,58286,3},{1115,58298,3},{1117,58304,3}, {1115,58309,3},{1167,58338,3},{1170,58359,3},{1175,58369,3},{1182,58396,3}, {1185,58399,3},{1185,58404,3},{1182,58403,3},{1178,58403,3},{1177,58399,3}, {1175,58398,3},{1175,58394,3},{1172,58388,3},{1167,58364,3},{1160,58341,3}, {1158,58339,3},{1155,58339,3},{1140,58341,3},{1120,58351,3},{1108,58361,3}, {1105,58369,3},{1102,58374,3},{1100,58373,3},{1098,58369,3},{1102,58368,3}, {1103,58363,3},{1102,58359,3},{1097,58364,3},{1090,58364,3},{1078,58369,3}, {1072,58378,3},{1067,58378,3},{1063,58376,3},{1058,58376,3},{1052,58373,3}, {1045,58374,3},{1043,58371,3},{1035,58358,3},{1022,58353,3},{1013,58346,3}, {1012,58341,3},{1008,58338,3},{1000,58334,3},{990,58329,3},{982,58323,3}, {973,58328,3},{962,58338,3},{957,58339,3},{955,58341,3},{953,58341,3},{957,58339,3}, {960,58338,3},{958,58338,3},{957,58334,3},{957,58338,3},{950,58339,3},{948,58338,3}, {952,58334,3},{948,58334,3},{947,58338,3},{950,58343,3},{947,58344,3},{950,58344,3}, {947,58346,3},{945,58351,3},{943,58353,3},{943,58346,3},{938,58346,3},{942,58348,3}, {942,58354,3},{938,58358,3},{937,58361,3},{938,58363,3},{937,58363,3},{935,58364,3}, {933,58361,3},{932,58363,3},{928,58363,3},{928,58359,3},{927,58359,3},{925,58356,3}, {922,58354,3},{923,58356,3},{923,58359,3},{923,58361,3},{922,58361,3},{920,58363,3}, {920,58361,3},{917,58363,3},{912,58359,3},{910,58364,3},{908,58364,3},{907,58366,3}, {905,58373,3},{905,58386,3},{912,58406,3},{917,58413,3},{922,58414,3},{928,58421,3}, {932,58429,3},{935,58431,3},{940,58429,3},{948,58429,3},{953,58428,3},{960,58429,3}, {970,58431,3},{972,58433,3},{982,58428,3},{985,58429,3},{990,58426,3},{997,58419,3}, {998,58416,3},{1015,58409,3},{1023,58399,3},{1037,58393,3},{1042,58388,3}, {1047,58391,3},{1050,58389,3},{1053,58384,3},{1057,58381,3},{1060,58383,3}, {1063,58386,3},{1065,58383,3},{1073,58383,3},{1077,58383,3},{1077,58381,3}, {1080,58378,3},{1080,58393,3},{1088,58391,3},{1092,58394,3},{1092,58391,3}, {1097,58386,3},{1098,58394,3},{1097,58403,3},{1100,58411,3},{1120,58451,3}, {1123,58466,3},{1125,58484,3},{1128,58488,3},{1127,58484,3},{1130,58486,3}, {1130,58494,3},{1137,58508,3},{1135,58513,3},{1137,58518,3},{1142,58519,3}, {1142,58521,3},{1143,58523,3},{1147,58523,3},{1147,58519,3},{1148,58521,3}, {1147,58524,3},{1143,58526,3},{1145,58529,3},{1143,58533,3},{1147,58533,3}, {1148,58531,3},{1148,58534,3},{1148,58533,3},{1152,58531,3},{1152,58524,3}, {1153,58524,3},{1153,58526,3},{1157,58523,3},{1152,58533,3},{1152,58538,3}, {1148,58539,3},{1143,58548,3},{1143,58556,3},{1150,58563,3},{1168,58554,3}, {1167,58553,3},{1168,58549,3},{1167,58548,3},{1165,58543,3},{1165,58541,3}, {1167,58541,3},{1160,58519,3},{1160,58514,3},{1163,58513,3},{1168,58514,3}, {1175,58513,3},{1173,58516,3},{1177,58516,3},{1178,58513,3},{1177,58513,3}, {1185,58508,3},{1185,58506,3},{1198,58511,3},{1207,58516,3},{1212,58516,3}, {1212,58521,3},{1217,58528,3},{1220,58534,3},{1218,58538,3},{1217,58543,3}, {1207,58549,3},{1198,58554,3},{1193,58554,3},{1185,58554,3},{1167,58561,3}, {1155,58564,3},{1147,58573,3},{1145,58578,3},{1148,58581,3},{1150,58584,3}, {1148,58599,3},{1153,58608,3},{1148,58624,3},{1145,58631,3},{1145,58651,3}, {1137,58663,3},{1135,58669,3},{1130,58674,3},{1125,58684,3},{1120,58688,3}, {1118,58694,3},{1120,58696,3},{1118,58698,3},{1115,58696,3},{1112,58698,3}, {1105,58703,3},{1092,58709,3},{1090,58708,3},{1093,58706,3},{1093,58703,3}, {1093,58699,3},{1092,58699,3},{1092,58704,3},{1088,58713,3},{1087,58711,3}, {1085,58706,3},{1083,58703,3},{1077,58703,3},{1068,58706,3},{1058,58711,3}, {1050,58719,3},{1048,58724,3},{1048,58736,3},{1045,58743,3},{1047,58749,3}, {1045,58749,3},{1048,58753,3},{1050,58756,3},{1050,58769,3},{1052,58778,3}, {1053,58781,3},{1055,58818,3},{1062,58834,3},{1060,58843,3},{1062,58851,3}, {1063,58889,3},{1060,58901,3},{1065,58906,3},{1065,58913,3},{1058,58926,3}, {1058,58931,3},{1055,58929,3},{1053,58924,3},{1050,58924,3},{1043,58929,3}, {1032,58948,3},{1032,58943,3},{1028,58943,3},{1028,58948,3},{1025,58949,3}, {1023,58954,3},{1022,58964,3},{1028,58949,3},{1030,58949,3},{1018,58978,3}, {1013,58994,3},{1010,59016,3},{1005,59028,3},{1008,59019,3},{1007,59019,3}, {1003,59028,3},{1010,59041,3},{1008,59053,3},{1010,59063,3},{1020,59066,3}, {1022,59064,3},{1020,59068,3},{1018,59066,3},{1018,59069,3},{1018,59071,3}, {1020,59069,3},{1023,59073,3},{1027,59078,3},{1023,59078,3},{1025,59081,3}, {1023,59081,3},{1025,59083,3},{1023,59088,3},{1027,59091,3},{1028,59096,3}, {1030,59099,3},{1032,59098,3},{1032,59091,3},{1033,59089,3},{1032,59094,3}, {1033,59098,3},{1037,59098,3},{1037,59096,3},{1038,59099,3},{1037,59099,3}, {1033,59099,3},{1033,59101,3},{1038,59103,3},{1042,59113,3},{1047,59116,3}, {1048,59124,3},{1043,59131,3},{1045,59143,3},{1043,59148,3},{1043,59154,3}, {1048,59169,3},{1050,59171,3},{1048,59166,3},{1050,59163,3},{1055,59151,3}, {1057,59133,3},{1058,59133,3},{1057,59126,3},{1057,59119,3},{1052,59113,3}, {1062,59106,3},{1067,59109,3},{1063,59113,3},{1063,59118,3},{1062,59123,3}, {1065,59131,3},{1063,59133,3},{1063,59144,3},{1065,59151,3},{1072,59154,3}, {1067,59159,3},{1063,59183,3},{1063,59186,3},{1065,59186,3},{1067,59189,3}, {1065,59191,3},{1067,59193,3},{1067,59196,3},{1070,59198,3},{1068,59201,3}, {1068,59204,3},{1067,59208,3},{1068,59211,3},{1072,59219,3},{1073,59219,3}, {1070,59223,3},{1072,59236,3},{1070,59246,3},{1073,59261,3},{1077,59266,3}, {1075,59268,3},{1070,59314,3},{1068,59319,3},{1072,59326,3},{1070,59328,3}, {1072,59333,3},{1072,59336,3},{1073,59338,3},{1072,59339,3},{1073,59341,3}, {1072,59343,3},{1075,59351,3},{1073,59351,3},{1072,59348,3},{1068,59348,3}, {1068,59346,3},{1067,59344,3},{1065,59341,3},{1065,59334,3},{1063,59333,3}, {1065,59329,3},{1063,59328,3},{1063,59311,3},{1053,59303,3},{1053,59284,3}, {1057,59269,3},{1053,59244,3},{1045,59236,3},{1048,59243,3},{1052,59244,3}, {1052,59251,3},{1050,59253,3},{1040,59253,3},{1038,59249,3},{1042,59243,3}, {1040,59236,3},{1040,59238,3},{1035,59241,3},{1032,59236,3},{1030,59239,3}, {1027,59236,3},{1028,59243,3},{1030,59243,3},{1033,59241,3},{1040,59241,3}, {1040,59243,3},{1037,59248,3},{1040,59258,3},{1037,59263,3},{1035,59263,3}, {1028,59269,3},{1020,59269,3},{1012,59274,3},{1008,59271,3},{1007,59264,3}, {1008,59259,3},{1003,59254,3},{1008,59251,3},{1007,59248,3},{1010,59246,3}, {1010,59244,3},{1008,59243,3},{1010,59239,3},{1008,59238,3},{1010,59234,3}, {1007,59238,3},{1008,59241,3},{1000,59243,3},{1000,59244,3},{1005,59243,3}, {1008,59244,3},{1005,59244,3},{1005,59251,3},{1003,59253,3},{1003,59256,3}, {1000,59254,3},{998,59256,3},{1002,59258,3},{1005,59258,3},{1007,59259,3}, {1005,59263,3},{1005,59266,3},{1008,59274,3},{1013,59276,3},{1020,59274,3}, {1022,59274,3},{1023,59278,3},{1017,59286,3},{1007,59289,3},{997,59294,3}, {993,59291,3},{993,59294,3},{987,59299,3},{977,59304,3},{973,59303,3},{970,59304,3}, {975,59308,3},{985,59313,3},{992,59311,3},{997,59311,3},{992,59314,3},{985,59318,3}, {977,59318,3},{972,59319,3},{963,59314,3},{965,59318,3},{970,59321,3},{987,59319,3}, {992,59318,3},{993,59318,3},{992,59324,3},{988,59326,3},{987,59334,3},{988,59331,3}, {990,59328,3},{993,59324,3},{993,59316,3},{995,59313,3},{1000,59314,3}, {1002,59319,3},{998,59328,3},{995,59334,3},{980,59353,3},{973,59354,3}, {965,59353,3},{972,59356,3},{975,59356,3},{975,59359,3},{970,59361,3},{960,59363,3}, {970,59363,3},{977,59359,3},{977,59356,3},{983,59354,3},{983,59359,3},{978,59376,3}, {980,59379,3},{985,59374,3},{987,59374,3},{988,59371,3},{990,59374,3},{982,59388,3}, {978,59391,3},{972,59394,3},{968,59398,3},{967,59401,3},{963,59403,3},{958,59414,3}, {958,59416,3},{960,59416,3},{958,59421,3},{958,59431,3},{953,59441,3},{952,59441,3}, {953,59439,3},{948,59439,3},{948,59446,3},{943,59451,3},{938,59456,3},{930,59458,3}, {930,59456,3},{932,59454,3},{927,59454,3},{923,59444,3},{918,59438,3},{910,59428,3}, {905,59424,3},{903,59426,3},{908,59429,3},{917,59438,3},{917,59441,3},{912,59438,3}, {905,59436,3},{900,59428,3},{897,59426,3},{888,59424,3},{883,59424,3},{873,59418,3}, {862,59416,3},{860,59414,3},{858,59409,3},{862,59398,3},{858,59383,3},{863,59376,3}, {863,59371,3},{858,59369,3},{857,59374,3},{853,59386,3},{850,59388,3},{848,59393,3}, {848,59401,3},{843,59403,3},{840,59408,3},{850,59419,3},{850,59433,3},{847,59433,3}, {845,59428,3},{842,59428,3},{840,59429,3},{845,59429,3},{847,59434,3},{853,59438,3}, {857,59438,3},{858,59459,3},{860,59464,3},{860,59468,3},{855,59473,3},{855,59483,3}, {853,59489,3},{855,59491,3},{858,59494,3},{863,59496,3},{863,59499,3},{862,59516,3}, {853,59538,3},{832,59554,3},{827,59556,3},{823,59553,3},{822,59541,3},{817,59538,3}, {813,59538,3},{803,59534,3},{803,59526,3},{802,59523,3},{798,59521,3},{797,59513,3}, {793,59511,3},{787,59503,3},{783,59501,3},{782,59484,3},{773,59478,3},{770,59479,3}, {763,59478,3},{763,59474,3},{757,59471,3},{757,59466,3},{753,59464,3},{745,59468,3}, {743,59471,3},{740,59471,3},{738,59474,3},{733,59478,3},{732,59478,3},{725,59473,3}, {720,59474,3},{712,59483,3},{718,59486,3},{720,59491,3},{717,59496,3},{718,59499,3}, {712,59508,3},{705,59508,3},{700,59501,3},{693,59499,3},{695,59496,3},{693,59493,3}, {685,59483,3},{683,59473,3},{677,59466,3},{678,59458,3},{678,59451,3},{682,59446,3}, {680,59444,3},{677,59446,3},{672,59443,3},{673,59436,3},{672,59434,3},{673,59429,3}, {672,59429,3},{672,59423,3},{667,59419,3},{663,59419,3},{657,59416,3},{655,59418,3}, {653,59416,3},{652,59419,3},{643,59423,3},{633,59421,3},{630,59423,3},{627,59426,3}, {623,59424,3},{618,59424,3},{618,59419,3},{613,59416,3},{612,59409,3},{598,59403,3}, {595,59398,3},{520,59463,3},{518,59471,3},{498,59478,3},{495,59478,3},{483,59471,3}, {477,59463,3},{472,59453,3},{472,59448,3},{465,59444,3},{458,59443,3},{452,59438,3}, {450,59421,3},{452,59414,3},{453,59406,3},{452,59404,3},{447,59408,3},{445,59408,3}, {442,59401,3},{443,59393,3},{440,59386,3},{437,59384,3},{432,59384,3},{427,59384,3}, {425,59381,3},{425,59378,3},{423,59374,3},{425,59371,3},{427,59366,3},{425,59361,3}, {418,59354,3},{417,59351,3},{415,59344,3},{417,59336,3},{415,59331,3},{410,59326,3}, {410,59321,3},{418,59298,3},{418,59293,3},{418,59291,3},{415,59291,3},{412,59283,3}, {407,59283,3},{403,59281,3},{403,59279,3},{405,59269,3},{403,59261,3},{402,59259,3}, {397,59261,3},{390,59258,3},{378,59263,3},{368,59263,3},{360,59259,3},{360,59254,3}, {357,59251,3},{357,59248,3},{357,59244,3},{360,59238,3},{377,59223,3},{383,59214,3}, {390,59211,3},{397,59201,3},{397,59194,3},{388,59191,3},{387,59189,3},{385,59186,3}, {387,59183,3},{395,59176,3},{395,59171,3},{393,59158,3},{397,59153,3},{393,59144,3}, {390,59141,3},{388,59134,3},{390,59131,3},{403,59128,3},{412,59123,3},{415,59111,3}, {415,59099,3},{412,59078,3},{413,59076,3},{425,59071,3},{428,59064,3},{428,59056,3}, {420,59056,3},{415,59064,3},{400,59071,3},{392,59079,3},{387,59083,3},{378,59091,3}, {373,59104,3},{360,59118,3},{352,59118,3},{347,59114,3},{343,59113,3},{325,59116,3}, {312,59114,3},{307,59119,3},{300,59123,3},{292,59128,3},{287,59131,3},{280,59134,3}, {275,59136,3},{272,59138,3},{262,59136,3},{252,59131,3},{247,59133,3},{247,59139,3}, {242,59154,3},{245,59169,3},{242,59199,3},{240,59201,3},{237,59199,3},{227,59201,3}, {220,59196,3},{215,59196,3},{213,59183,3},{210,59176,3},{207,59173,3},{197,59158,3}, {198,59143,3},{195,59136,3},{188,59131,3},{180,59131,3},{175,59129,3},{168,59129,3}, {158,59124,3},{155,59118,3},{150,59114,3},{147,59108,3},{137,59101,3},{137,59099,3}, {140,59098,3},{143,59098,3},{147,59101,3},{150,59101,3},{152,59098,3},{143,59083,3}, {133,59078,3},{125,59063,3},{125,59059,3},{128,59054,3},{122,59048,3},{120,59041,3}, {117,59036,3},{113,59034,3},{115,59026,3},{113,59023,3},{110,59021,3},{97,59019,3}, {93,59018,3},{92,59004,3},{83,58998,3},{75,58996,3},{70,58993,3},{65,58984,3}, {67,58979,3},{73,58978,3},{83,58984,3},{90,58984,3},{95,58983,3},{98,58978,3}, {98,58963,3},{90,58949,3},{80,58939,3},{78,58929,3},{75,58926,3},{73,58923,3}, {75,58919,3},{77,58916,3},{75,58904,3},{122,58849,3},{143,57654,131},{148,57649,3}, {155,57651,3},{155,57648,3},{158,57643,3},{160,57633,3},{163,57631,3},{177,57641,3}, {178,57644,3},{182,57648,3},{183,57651,3},{182,57661,3},{180,57666,3},{182,57673,3}, {177,57674,3},{177,57678,3},{192,57681,3},{195,57676,3},{198,57678,3},{200,57678,3}, {202,57676,3},{203,57674,3},{200,57673,3},{200,57669,3},{207,57671,3},{208,57669,3}, {213,57669,3},{215,57671,3},{213,57669,3},{215,57668,3},{217,57669,3},{217,57668,3}, {220,57668,3},{225,57673,3},{227,57671,3},{228,57671,3},{235,57674,3},{235,57676,3}, {245,57679,3},{238,57681,3},{243,57683,3},{243,57689,3},{250,57691,3},{250,57694,3}, {243,57701,3},{255,57711,3},{255,57713,3},{252,57714,3},{253,57714,3},{253,57716,3}, {252,57718,3},{248,57724,3},{252,57728,3},{255,57728,3},{255,57731,3},{253,57734,3}, {252,57738,3},{257,57741,3},{258,57739,3},{260,57739,3},{262,57743,3},{265,57741,3}, {265,57743,3},{263,57744,3},{263,57748,3},{260,57746,3},{258,57746,3},{255,57751,3}, {257,57756,3},{260,57761,3},{267,57758,3},{267,57756,3},{268,57759,3},{268,57756,3}, {273,57756,3},{277,57754,3},{275,57758,3},{277,57759,3},{278,57763,3},{278,57758,3}, {280,57758,3},{282,57761,3},{280,57764,3},{278,57768,3},{282,57766,3},{282,57763,3}, {285,57764,3},{283,57768,3},{287,57771,3},{285,57773,3},{287,57773,3},{288,57769,3}, {287,57768,3},{287,57766,3},{288,57764,3},{292,57766,3},{293,57768,3},{288,57771,3}, {293,57774,3},{295,57773,3},{297,57773,3},{298,57774,3},{300,57771,3},{298,57769,3}, {298,57768,3},{300,57768,3},{297,57764,3},{305,57766,3},{303,57771,3},{305,57781,3}, {313,57784,3},{317,57783,3},{318,57784,3},{322,57786,3},{322,57789,3},{325,57789,3}, {325,57794,3},{330,57796,3},{332,57794,3},{333,57789,3},{337,57791,3},{335,57794,3}, {338,57798,3},{333,57801,3},{332,57804,3},{333,57804,3},{335,57801,3},{340,57799,3}, {342,57801,3},{340,57803,3},{345,57801,3},{347,57803,3},{352,57804,3},{348,57804,3}, {348,57808,3},{348,57809,3},{350,57808,3},{350,57809,3},{352,57806,3},{353,57809,3}, {353,57804,3},{355,57804,3},{355,57808,3},{355,57806,3},{357,57808,3},{357,57814,3}, {358,57813,3},{362,57816,3},{365,57818,3},{365,57819,3},{367,57821,3},{367,57824,3}, {367,57819,3},{370,57819,3},{370,57823,3},{372,57823,3},{372,57819,3},{370,57818,3}, {375,57816,3},{373,57819,3},{373,57823,3},{373,57821,3},{375,57819,3},{377,57824,3}, {380,57821,3},{382,57823,3},{380,57826,3},{382,57826,3},{383,57824,3},{385,57829,3}, {392,57833,3},{390,57828,3},{392,57828,3},{392,57824,3},{390,57824,3},{388,57823,3}, {385,57818,3},{383,57811,3},{387,57808,3},{388,57809,3},{390,57804,3},{395,57806,3}, {397,57806,3},{398,57809,3},{397,57809,3},{397,57814,3},{398,57813,3},{403,57816,3}, {407,57818,3},{407,57813,3},{410,57809,3},{407,57809,3},{405,57804,3},{398,57804,3}, {393,57801,3},{392,57799,3},{395,57798,3},{397,57799,3},{398,57794,3},{402,57793,3}, {403,57793,3},{405,57794,3},{407,57793,3},{413,57793,3},{418,57793,3},{418,57798,3}, {422,57803,3},{420,57804,3},{420,57806,3},{425,57813,3},{427,57809,3},{427,57803,3}, {433,57798,3},{440,57801,3},{445,57801,3},{447,57804,3},{447,57803,3},{455,57804,3}, {467,57804,3},{465,57806,3},{467,57808,3},{472,57804,3},{475,57804,3},{472,57811,3}, {480,57804,3},{482,57804,3},{482,57803,3},{487,57801,3},{508,57799,3},{517,57799,3}, {523,57801,3},{525,57799,3},{530,57799,3},{537,57798,3},{537,57796,3},{538,57796,3}, {540,57796,3},{540,57798,3},{543,57796,3},{545,57796,3},{547,57793,3},{550,57789,3}, {550,57788,3},{548,57784,3},{548,57781,3},{550,57781,3},{552,57783,3},{558,57786,3}, {560,57791,3},{562,57793,3},{562,57796,3},{560,57799,3},{562,57803,3},{565,57804,3}, {565,57806,3},{568,57809,3},{573,57811,3},{578,57811,3},{590,57806,3},{602,57801,3}, {600,57799,3},{605,57798,3},{618,57788,3},{623,57788,3},{630,57788,3},{625,57794,3}, {623,57794,3},{625,57796,3},{635,57799,3},{638,57796,3},{638,57801,3},{642,57801,3}, {643,57798,3},{647,57801,3},{657,57803,3},{663,57794,3},{668,57796,3},{672,57789,3}, {670,57786,3},{667,57784,3},{667,57783,3},{672,57783,3},{682,57778,3},{688,57768,3}, {685,57768,3},{688,57766,3},{693,57766,3},{697,57771,3},{705,57768,3},{707,57766,3}, {705,57766,3},{715,57758,3},{715,57754,3},{723,57748,3},{748,57754,3},{748,57761,3}, {752,57764,3},{755,57764,3},{763,57759,3},{772,57761,3},{768,57769,3},{765,57769,3}, {758,57774,3},{753,57776,3},{753,57779,3},{760,57786,3},{762,57793,3},{767,57798,3}, {770,57803,3},{773,57803,3},{778,57799,3},{785,57803,3},{790,57806,3},{793,57814,3}, {795,57821,3},{798,57818,3},{810,57814,3},{820,57809,3},{822,57806,3},{827,57806,3}, {827,57801,3},{828,57799,3},{840,57799,3},{845,57796,3},{847,57794,3},{847,57789,3}, {848,57788,3},{853,57789,3},{860,57794,3},{863,57793,3},{865,57799,3},{867,57799,3}, {867,57801,3},{863,57801,3},{858,57806,3},{852,57808,3},{847,57811,3},{842,57823,3}, {837,57824,3},{827,57833,3},{825,57838,3},{827,57841,3},{823,57841,3},{823,57839,3}, {820,57839,3},{818,57841,3},{820,57841,3},{818,57843,3},{818,57844,3},{817,57843,3}, {817,57841,3},{813,57841,3},{810,57846,3},{812,57848,3},{813,57846,3},{813,57853,3}, {810,57851,3},{810,57853,3},{808,57851,3},{805,57853,3},{805,57849,3},{803,57853,3}, {803,57844,3},{798,57843,3},{793,57844,3},{792,57849,3},{790,57854,3},{792,57861,3}, {797,57861,3},{798,57863,3},{808,57863,3},{810,57861,3},{808,57861,3},{818,57861,3}, {828,57858,3},{833,57859,3},{840,57859,3},{843,57856,3},{848,57854,3},{855,57843,3}, {853,57843,3},{855,57841,3},{862,57848,3},{868,57869,3},{875,57871,3},{878,57883,3}, {883,57886,3},{887,57893,3},{890,57893,3},{893,57904,3},{900,57909,3},{905,57909,3}, {907,57911,3},{912,57916,3},{923,57919,3},{927,57924,3},{930,57924,3},{933,57928,3}, {937,57934,3},{943,57943,3},{942,57944,3},{943,57956,3},{942,57956,3},{942,57953,3}, {940,57951,3},{940,57954,3},{938,57956,3},{942,57959,3},{942,57961,3},{942,57968,3}, {945,57973,3},{958,57978,3},{967,57976,3},{970,57973,3},{970,57964,3},{975,57969,3}, {980,57973,3},{988,57973,3},{995,57976,3},{1003,57978,3},{1013,57978,3}, {1013,57979,3},{1018,57983,3},{1023,57983,3},{1025,57981,3},{1015,57969,3}, {1013,57966,3},{1015,57964,3},{1022,57973,3},{1025,57974,3},{1027,57976,3}, {1030,57976,3},{1028,57978,3},{1030,57984,3},{1038,57984,3},{1038,57983,3}, {1042,57981,3},{1040,57979,3},{1043,57979,3},{1048,57986,3},{1043,57984,3}, {1043,57988,3},{1050,57988,3},{1050,57984,3},{1053,57986,3},{1057,57983,3}, {1060,57991,3},{1063,57991,3},{1063,57994,3},{1068,57996,3},{1072,58008,3}, {1073,58008,3},{1073,58011,3},{1072,58009,3},{1070,58011,3},{1072,58013,3}, {1075,58013,3},{1077,58013,3},{1075,58011,3},{1075,58009,3},{1080,58009,3}, {1080,58013,3},{1087,58023,3},{1090,58033,3},{1097,58034,3},{1108,58046,3}, {1110,58049,3},{1113,58049,3},{1110,58053,3},{1108,58061,3},{1100,58084,3}, {1098,58089,3},{1098,58098,3},{1100,58108,3},{1097,58103,3},{1097,58086,3}, {1090,58084,3},{1088,58088,3},{1085,58088,3},{1088,58084,3},{1087,58083,3}, {1088,58078,3},{1088,58076,3},{1083,58076,3},{1078,58076,3},{1078,58078,3}, {1083,58079,3},{1080,58081,3},{1075,58083,3},{1075,58086,3},{1078,58086,3}, {1077,58084,3},{1080,58084,3},{1083,58086,3},{1082,58089,3},{1075,58091,3}, {1075,58098,3},{1083,58103,3},{1085,58103,3},{1093,58108,3},{1097,58108,3}, {1108,58114,3},{1112,58113,3},{1123,58113,3},{1128,58116,3},{1132,58118,3}, {1132,58121,3},{1135,58121,3},{1132,58123,3},{1135,58126,3},{1133,58128,3}, {1135,58129,3},{1133,58131,3},{1135,58131,3},{1135,58134,3},{1130,58148,3}, {1127,58156,3},{1127,58159,3},{1127,58169,3},{1127,58198,3},{1130,58208,3}, {1135,58214,3},{1138,58216,3},{1142,58221,3},{1145,58226,3},{1152,58234,3}, {1157,58246,3},{1163,58253,3},{1170,58259,3},{1173,58273,3},{1175,58276,3}, {1175,58279,3},{1178,58284,3},{1178,58289,3},{1180,58294,3},{1183,58298,3}, {1188,58311,3},{1192,58313,3},{1210,58323,3},{1220,58321,3},{1222,58319,3}, {1223,58319,3},{1225,58323,3},{1225,58328,3},{1227,58339,3},{1225,58339,3}, {1218,58334,3},{1218,58336,3},{1215,58336,3},{1215,58341,3},{1217,58343,3}, {1218,58344,3},{1220,58349,3},{1228,58348,3},{1228,58343,3},{1227,58341,3}, {1228,58339,3},{1237,58349,3},{1237,58354,3},{1235,58353,3},{1232,58354,3}, {1233,58356,3},{1235,58361,3},{1238,58363,3},{1238,58361,3},{1242,58363,3}, {1240,58364,3},{1238,58364,3},{1237,58366,3},{1237,58368,3},{1240,58366,3}, {1242,58373,3},{1242,58368,3},{1243,58371,3},{1243,58366,3},{1245,58368,3}, {1242,58363,3},{1245,58364,3},{1247,58371,3},{1243,58378,3},{1245,58379,3}, {1243,58388,3},{1238,58393,3},{1238,58398,3},{1233,58411,3},{1230,58414,3}, {1227,58414,3},{1210,58424,3},{1202,58424,3},{1198,58419,3},{1192,58406,3}, {1185,58404,3},{1185,58399,3},{1182,58396,3},{1175,58369,3},{1170,58359,3}, {1167,58338,3},{1115,58309,3},{1117,58304,3},{1115,58298,3},{1112,58286,3}, {1108,58286,3},{1103,58283,3},{1095,58279,3},{1090,58274,3},{1087,58269,3}, {1065,58259,3},{1055,58253,3},{1050,58251,3},{1045,58246,3},{1022,58244,3}, {1012,58243,3},{1000,58238,3},{995,58239,3},{992,58238,3},{983,58239,3}, {978,58236,3},{973,58234,3},{967,58229,3},{958,58226,3},{953,58219,3},{943,58214,3}, {940,58211,3},{935,58208,3},{928,58206,3},{923,58203,3},{922,58199,3},{918,58198,3}, {917,58199,3},{918,58216,3},{930,58236,3},{927,58238,3},{923,58238,3},{920,58241,3}, {915,58239,3},{910,58241,3},{912,58248,3},{913,58248,3},{915,58254,3},{912,58259,3}, {908,58256,3},{907,58258,3},{863,58269,3},{840,58293,3},{837,58298,3},{832,58299,3}, {825,58298,3},{810,58303,3},{805,58303,3},{803,58296,3},{798,58293,3},{795,58288,3}, {790,58291,3},{783,58291,3},{775,58289,3},{765,58289,3},{757,58291,3},{752,58289,3}, {748,58289,3},{740,58296,3},{738,58309,3},{740,58314,3},{738,58318,3},{737,58318,3}, {733,58321,3},{727,58319,3},{718,58323,3},{707,58329,3},{705,58333,3},{702,58336,3}, {702,58343,3},{698,58349,3},{698,58354,3},{702,58356,3},{700,58359,3},{703,58359,3}, {705,58366,3},{703,58369,3},{705,58369,3},{707,58371,3},{705,58376,3},{703,58378,3}, {705,58381,3},{702,58383,3},{703,58386,3},{703,58388,3},{703,58389,3},{702,58391,3}, {703,58396,3},{702,58403,3},{703,58408,3},{702,58409,3},{698,58409,3},{698,58416,3}, {697,58418,3},{700,58423,3},{698,58433,3},{700,58436,3},{702,58441,3},{705,58446,3}, {707,58446,3},{708,58448,3},{708,58458,3},{710,58459,3},{710,58461,3},{710,58466,3}, {708,58468,3},{707,58474,3},{708,58479,3},{705,58481,3},{702,58484,3},{702,58493,3}, {695,58504,3},{695,58509,3},{697,58514,3},{698,58524,3},{612,58593,3},{615,58604,3}, {612,58606,3},{608,58611,3},{610,58618,3},{620,58626,3},{622,58631,3},{618,58648,3}, {618,58653,3},{613,58673,3},{617,58678,3},{617,58683,3},{618,58691,3},{617,58704,3}, {618,58711,3},{622,58721,3},{620,58733,3},{622,58739,3},{623,58744,3},{627,58746,3}, {632,58754,3},{628,58773,3},{627,58779,3},{620,58788,3},{620,58791,3},{615,58788,3}, {612,58788,3},{608,58788,3},{603,58793,3},{600,58794,3},{588,58783,3},{578,58774,3}, {568,58771,3},{558,58773,3},{553,58774,3},{552,58773,3},{548,58771,3},{538,58756,3}, {530,58751,3},{522,58754,3},{512,58753,3},{505,58758,3},{503,58756,3},{497,58756,3}, {493,58754,3},{488,58753,3},{483,58754,3},{473,58754,3},{467,58751,3},{455,58749,3}, {455,58748,3},{452,58749,3},{448,58754,3},{445,58754,3},{443,58758,3},{440,58756,3}, {435,58758,3},{430,58756,3},{423,58756,3},{417,58758,3},{413,58761,3},{402,58768,3}, {393,58768,3},{383,58773,3},{380,58773,3},{377,58774,3},{373,58778,3},{373,58786,3}, {372,58788,3},{365,58793,3},{350,58798,3},{345,58806,3},{340,58808,3},{332,58803,3}, {330,58799,3},{327,58798,3},{325,58793,3},{287,58751,3},{280,58751,3},{278,58751,3}, {282,58753,3},{283,58761,3},{280,58766,3},{280,58773,3},{278,58776,3},{268,58779,3}, {268,58786,3},{263,58788,3},{252,58803,3},{247,58804,3},{240,58816,3},{233,58819,3}, {228,58814,3},{223,58814,3},{213,58819,3},{212,58824,3},{210,58824,3},{203,58824,3}, {198,58823,3},{193,58828,3},{170,58838,3},{158,58838,3},{148,58843,3},{143,58843,3}, {135,58848,3},{133,58848,3},{128,58846,3},{122,58849,3},{117,58828,3},{128,58828,3}, {152,58831,3},{162,58829,3},{172,58826,3},{182,58819,3},{195,58809,3},{212,58803,3}, {215,58794,3},{212,58789,3},{210,58784,3},{200,58771,3},{192,58768,3},{180,58758,3}, {175,58749,3},{175,58744,3},{175,58739,3},{177,58736,3},{187,58729,3},{193,58728,3}, {197,58724,3},{197,58719,3},{202,58718,3},{197,58716,3},{192,58713,3},{187,58711,3}, {183,58708,3},{182,58709,3},{182,58713,3},{178,58713,3},{177,58718,3},{173,58718,3}, {172,58721,3},{173,58598,3},{175,58596,3},{178,58581,3},{173,58573,3},{175,58564,3}, {172,58559,3},{170,58556,3},{172,58551,3},{107,58551,3},{107,58554,3},{110,58559,3}, {108,58564,3},{107,58564,3},{108,58576,3},{107,58579,3},{107,58591,3},{103,58593,3}, {103,58594,3},{107,58601,3},{103,58609,3},{100,58614,3},{95,58614,3},{95,58616,3}, {90,58616,3},{87,58623,3},{85,58619,3},{77,58621,3},{72,58618,3},{70,58621,3}, {65,58624,3},{63,58623,3},{65,58618,3},{62,58616,3},{62,58608,3},{67,58606,3}, {63,58601,3},{73,58589,3},{72,58583,3},{70,58581,3},{70,58579,3},{65,58576,3}, {68,58568,3},{67,58564,3},{63,58563,3},{63,58561,3},{60,58556,3},{60,58544,3}, {58,58543,3},{60,58538,3},{57,58534,3},{58,58531,3},{57,58531,3},{52,58531,3}, {47,58531,3},{42,58531,3},{35,58531,3},{30,58531,3},{25,58531,3},{18,58531,3}, {13,58531,3},{8,58531,3},{3,58531,3},{65533,58531,3},{65528,58531,3},{65521,58531,3}, {65513,58536,3},{65511,58539,3},{65504,58543,3},{65503,58551,3},{65499,58553,3}, {65496,58558,3},{65491,58561,3},{65486,58573,3},{65484,58576,3},{65476,58576,3}, {65473,58579,3},{65463,58574,3},{65461,58574,3},{65456,58579,3},{65453,58579,3}, {65449,58579,3},{65449,58583,3},{65444,58583,3},{65439,58589,3},{65438,58589,3}, {65436,58593,3},{65428,58593,3},{65418,58598,3},{65411,58598,3},{65401,58598,3}, {65396,58596,3},{65394,58593,3},{65386,58589,3},{65383,58591,3},{65376,58589,3}, {65371,58589,3},{65366,58588,3},{65361,58586,3},{65354,58586,3},{65349,58584,3}, {65344,58584,3},{65338,58583,3},{65333,58581,3},{65328,58581,3},{65323,58579,3}, {65316,58579,3},{65311,58578,3},{65306,58576,3},{65299,58576,3},{65294,58574,3}, {65289,58574,3},{65284,58573,3},{65278,58571,3},{65273,58571,3},{65268,58569,3}, {65263,58569,3},{65256,58568,3},{65251,58568,3},{65246,58566,3},{65239,58564,3}, {65234,58564,3},{65229,58563,3},{65224,58563,3},{65218,58561,3},{65213,58559,3}, {65208,58559,3},{65201,58558,3},{65196,58558,3},{65191,58556,3},{65186,58554,3}, {65179,58554,3},{65174,58553,3},{65169,58553,3},{65163,58551,3},{65158,58551,3}, {65153,58549,3},{65146,58548,3},{65141,58548,3},{65136,58546,3},{65131,58544,3}, {65124,58544,3},{65119,58543,3},{65114,58541,3},{65126,58528,3},{65129,58523,3}, {65143,58518,3},{65149,58513,3},{65156,58504,3},{65158,58499,3},{65149,58484,3}, {65153,58478,3},{65153,58474,3},{65158,58468,3},{65158,58464,3},{65264,58531,3}, {65266,58528,3},{65273,58526,3},{65273,58524,3},{65269,58521,3},{65274,58519,3}, {65274,58511,3},{65281,58509,3},{65283,58506,3},{65281,58503,3},{65279,58499,3}, {65283,58499,3},{65286,58501,3},{65288,58501,3},{65288,58498,3},{65286,58491,3}, {65291,58488,3},{65291,58483,3},{65296,58478,3},{65291,58476,3},{65291,58471,3}, {65296,58469,3},{65298,58466,3},{65303,58466,3},{65308,58453,3},{65314,58446,3}, {65314,58441,3},{65316,58434,3},{65314,58433,3},{65309,58434,3},{65309,58433,3}, {65311,58429,3},{65311,58423,3},{65309,58421,3},{65304,58419,3},{65301,58416,3}, {65303,58411,3},{65301,58406,3},{65303,58404,3},{65298,58394,3},{65299,58393,3}, {65303,58394,3},{65309,58391,3},{65311,58388,3},{65304,58388,3},{65304,58386,3}, {65306,58384,3},{65313,58383,3},{65314,58376,3},{65318,58373,3},{65319,58368,3}, {65318,58363,3},{65323,58363,3},{65318,58353,3},{65311,58348,3},{65308,58343,3}, {65303,58341,3},{65304,58329,3},{65301,58326,3},{65294,58319,3},{65296,58309,3}, {65294,58308,3},{65293,58308,3},{65291,58298,3},{65291,58294,3},{65294,58293,3}, {65298,58281,3},{65303,58271,3},{65293,58264,3},{65299,58263,3},{65296,58259,3}, {65298,58256,3},{65294,58246,3},{65293,58243,3},{65303,58238,3},{65303,58234,3}, {65306,58231,3},{65303,58229,3},{65301,58228,3},{65304,58226,3},{65304,58221,3}, {65309,58219,3},{65314,58216,3},{65318,58216,3},{65323,58221,3},{65328,58224,3}, {65339,58219,3},{65346,58219,3},{65353,58218,3},{65358,58216,3},{65361,58211,3}, {65358,58209,3},{65359,58204,3},{65356,58201,3},{65359,58196,3},{65359,58193,3}, {65363,58189,3},{65368,58183,3},{65374,58183,3},{65379,58188,3},{65388,58186,3}, {65394,58178,3},{65398,58179,3},{65401,58178,3},{65404,58178,3},{65406,58174,3}, {65409,58173,3},{65414,58163,3},{65418,58159,3},{65414,58158,3},{65413,58156,3}, {65414,58151,3},{65418,58146,3},{65424,58143,3},{65424,58139,3},{65426,58138,3}, {65428,58139,3},{65429,58138,3},{65426,58134,3},{65428,58133,3},{65436,58129,3}, {65433,58126,3},{65436,58118,3},{65436,58113,3},{65439,58109,3},{65446,58106,3}, {65449,58101,3},{65451,58101,3},{65451,58106,3},{65453,58108,3},{65454,58106,3}, {65458,58104,3},{65459,58101,3},{65463,58098,3},{65466,58098,3},{65468,58099,3}, {65471,58098,3},{65474,58098,3},{65481,58094,3},{65483,58091,3},{65486,58089,3}, {65489,58083,3},{65501,58073,3},{65499,58068,3},{65503,58064,3},{65504,58058,3}, {65509,58061,3},{65519,58054,3},{65519,58053,3},{65516,58051,3},{65513,58048,3}, {65516,58041,3},{65521,58036,3},{65523,58031,3},{65529,58024,3},{65533,58014,3}, {65526,58011,3},{65526,58008,3},{65529,57993,3},{8,57973,3},{7,57961,3}, {8,57956,3},{13,57951,3},{18,57943,3},{35,57931,3},{37,57929,3},{35,57924,3}, {38,57924,3},{40,57921,3},{40,57914,3},{45,57906,3},{45,57904,3},{42,57901,3}, {40,57896,3},{25,57896,3},{23,57884,3},{25,57879,3},{23,57874,3},{27,57868,3}, {28,57859,3},{25,57858,3},{27,57853,3},{23,57848,3},{27,57838,3},{27,57831,3}, {28,57826,3},{32,57826,3},{38,57821,3},{35,57809,3},{38,57799,3},{42,57793,3}, {47,57793,3},{53,57791,3},{62,57793,3},{65,57791,3},{65,57789,3},{67,57788,3}, {65,57783,3},{72,57771,3},{75,57769,3},{82,57771,3},{85,57768,3},{85,57764,3}, {82,57756,3},{82,57751,3},{83,57746,3},{88,57744,3},{87,57741,3},{90,57736,3}, {92,57726,3},{100,57714,3},{103,57713,3},{107,57701,3},{120,57689,3},{122,57683,3}, {120,57679,3},{123,57679,3},{123,57676,3},{127,57676,3},{127,57673,3},{128,57668,3}, {133,57666,3},{143,57654,3},{63701,58496,131},{63711,58484,3},{63716,58471,3}, {63726,58463,3},{63733,58454,3},{63733,58449,3},{63741,58444,3},{63744,58441,3}, {63748,58434,3},{63749,58428,3},{63751,58426,3},{63756,58419,3},{63759,58416,3}, {63764,58406,3},{63766,58398,3},{63773,58401,3},{63796,58396,3},{63803,58388,3}, {63806,58386,3},{63808,58383,3},{63808,58378,3},{63814,58369,3},{63818,58353,3}, {63821,58348,3},{63826,58344,3},{63831,58338,3},{63833,58331,3},{63834,58324,3}, {63838,58323,3},{63841,58319,3},{63846,58313,3},{63848,58306,3},{63853,58306,3}, {63859,58299,3},{63861,58294,3},{63868,58286,3},{63869,58276,3},{63871,58263,3}, {63873,58258,3},{63881,58246,3},{63883,58239,3},{63891,58223,3},{63894,58218,3}, {63896,58216,3},{63894,58213,3},{63896,58206,3},{63903,58204,3},{63908,58193,3}, {63913,58174,3},{63913,58166,3},{63918,58161,3},{63919,58153,3},{63933,58138,3}, {63934,58133,3},{63941,58131,3},{63946,58119,3},{63948,58111,3},{63951,58108,3}, {63951,58101,3},{63956,58093,3},{63964,58088,3},{63971,58069,3},{63976,58063,3}, {63979,58051,3},{63986,58044,3},{63986,58038,3},{63989,58036,3},{63991,58034,3}, {63989,58031,3},{63994,58026,3},{63996,58021,3},{63999,58016,3},{64001,58016,3}, {64003,58019,3},{64004,58021,3},{64006,58018,3},{64008,58013,3},{64009,58009,3}, {64013,58014,3},{64018,58009,3},{64021,58006,3},{64021,57999,3},{64023,57998,3}, {64034,57993,3},{64039,57986,3},{64043,57986,3},{64046,57983,3},{64059,57958,3}, {64064,57951,3},{64068,57949,3},{64069,57943,3},{64079,57941,3},{64083,57936,3}, {64089,57938,3},{64093,57931,3},{64098,57928,3},{64099,57924,3},{64103,57921,3}, {64104,57924,3},{64113,57923,3},{64114,57918,3},{64119,57916,3},{64121,57909,3}, {64118,57909,3},{64119,57908,3},{64126,57906,3},{64129,57908,3},{64133,57908,3}, {64146,57906,3},{64144,57904,3},{64144,57899,3},{64146,57896,3},{64148,57896,3}, {64154,57899,3},{64156,57904,3},{64156,57906,3},{64153,57906,3},{64151,57909,3}, {64173,57916,3},{64189,57918,3},{64193,57916,3},{64208,57908,3},{64231,57886,3}, {64251,57883,3},{64259,57874,3},{64269,57868,3},{64274,57868,3},{64276,57864,3}, {64283,57861,3},{64284,57856,3},{64288,57856,3},{64293,57858,3},{64298,57856,3}, {64309,57844,3},{64314,57833,3},{64318,57831,3},{64321,57833,3},{64324,57829,3}, {64328,57824,3},{64329,57818,3},{64333,57821,3},{64339,57821,3},{64348,57821,3}, {64353,57818,3},{64359,57816,3},{64363,57819,3},{64369,57816,3},{64378,57808,3}, {64381,57808,3},{64384,57806,3},{64391,57799,3},{64406,57771,3},{64413,57769,3}, {64414,57771,3},{64414,57774,3},{64418,57774,3},{64423,57773,3},{64426,57773,3}, {64426,57771,3},{64431,57771,3},{64434,57768,3},{64438,57769,3},{64441,57768,3}, {64443,57768,3},{64448,57764,3},{64451,57764,3},{64454,57759,3},{64461,57758,3}, {64471,57749,3},{64481,57744,3},{64488,57739,3},{64499,57734,3},{64503,57729,3}, {64508,57729,3},{64509,57726,3},{64513,57724,3},{64524,57716,3},{64529,57718,3}, {64538,57714,3},{64541,57711,3},{64546,57713,3},{64549,57709,3},{64556,57711,3}, {64568,57703,3},{64574,57698,3},{64589,57694,3},{64593,57696,3},{64594,57693,3}, {64603,57691,3},{64603,57686,3},{64609,57683,3},{64613,57684,3},{64618,57684,3}, {64618,57679,3},{64613,57678,3},{64613,57676,3},{64616,57676,3},{64619,57674,3}, {64621,57678,3},{64624,57679,3},{64628,57676,3},{64629,57671,3},{64636,57671,3}, {64638,57668,3},{64639,57669,3},{64644,57669,3},{64658,57659,3},{64661,57659,3}, {64668,57661,3},{64678,57659,3},{64686,57651,3},{64693,57641,3},{64694,57644,3}, {64699,57644,3},{64708,57638,3},{64714,57636,3},{64728,57623,3},{64733,57619,3}, {64744,57604,3},{64761,57593,3},{64764,57589,3},{64766,57591,3},{64769,57591,3}, {64778,57586,3},{64789,57578,3},{64793,57576,3},{64796,57578,3},{64809,57573,3}, {64818,57564,3},{64824,57564,3},{64828,57563,3},{64838,57554,3},{64841,57549,3}, {64848,57543,3},{64859,57538,3},{64873,57523,3},{64881,57504,3},{64893,57484,3}, {64904,57458,3},{64916,57443,3},{64924,57426,3},{64928,57423,3},{64936,57418,3}, {64946,57418,3},{64951,57421,3},{64953,57424,3},{64956,57426,3},{64951,57431,3}, {64949,57438,3},{64951,57444,3},{64959,57448,3},{64971,57449,3},{64993,57441,3}, {65004,57428,3},{65008,57423,3},{65016,57416,3},{65019,57418,3},{65029,57418,3}, {65029,57426,3},{65034,57428,3},{65041,57424,3},{65046,57418,3},{65051,57414,3}, {65068,57401,3},{65071,57403,3},{65081,57406,3},{65088,57403,3},{65091,57406,3}, {65098,57408,3},{65106,57408,3},{65111,57411,3},{65114,57416,3},{65124,57424,3}, {65126,57429,3},{65141,57438,3},{65148,57449,3},{65158,57451,3},{65161,57454,3}, {65174,57476,3},{65186,57483,3},{65188,57498,3},{65194,57501,3},{65199,57503,3}, {65196,57504,3},{65194,57511,3},{65189,57509,3},{65186,57513,3},{65178,57513,3}, {65178,57514,3},{65173,57516,3},{65168,57514,3},{65163,57516,3},{65159,57514,3}, {65156,57518,3},{65151,57518,3},{65148,57521,3},{65143,57514,3},{65141,57509,3}, {65138,57508,3},{65134,57504,3},{65138,57501,3},{65138,57489,3},{65131,57486,3}, {65128,57486,3},{65123,57488,3},{65116,57489,3},{65114,57493,3},{65116,57496,3}, {65116,57503,3},{65098,57488,3},{65093,57488,3},{65089,57494,3},{65088,57498,3}, {65089,57499,3},{65091,57503,3},{65096,57508,3},{65096,57509,3},{65106,57519,3}, {65108,57523,3},{65106,57524,3},{65106,57528,3},{65098,57538,3},{65096,57539,3}, {65096,57546,3},{65093,57549,3},{65088,57554,3},{65088,57558,3},{65089,57564,3}, {65093,57569,3},{65093,57573,3},{65084,57583,3},{65084,57586,3},{65081,57586,3}, {65076,57584,3},{65056,57591,3},{65053,57598,3},{65048,57599,3},{65046,57603,3}, {65039,57608,3},{65039,57618,3},{65038,57623,3},{65039,57626,3},{65036,57629,3}, {65036,57631,3},{65036,57633,3},{65041,57636,3},{65048,57638,3},{65051,57646,3}, {65058,57644,3},{65061,57644,3},{65068,57648,3},{65074,57658,3},{65078,57668,3}, {65081,57669,3},{65088,57669,3},{65093,57674,3},{65094,57669,3},{65104,57669,3}, {65109,57673,3},{65123,57676,3},{65126,57679,3},{65138,57681,3},{65144,57683,3}, {65158,57694,3},{65163,57696,3},{65173,57699,3},{65184,57699,3},{65194,57703,3}, {65194,57709,3},{65191,57711,3},{65184,57711,3},{65184,57713,3},{65191,57719,3}, {65194,57718,3},{65198,57714,3},{65201,57714,3},{65209,57724,3},{65214,57726,3}, {65214,57729,3},{65221,57733,3},{65238,57751,3},{65279,57869,3},{65323,57929,3}, {65381,57978,3},{65381,57979,3},{65439,57994,3},{65444,57996,3},{65439,57999,3}, {65438,58004,3},{65438,58014,3},{65439,58014,3},{65443,58011,3},{65448,58011,3}, {65453,58009,3},{65456,58009,3},{65463,58006,3},{65466,58009,3},{65471,58008,3}, {65473,58011,3},{65481,58011,3},{65484,58009,3},{65483,58008,3},{65486,58004,3}, {65489,58003,3},{65489,57999,3},{65493,57994,3},{65501,57991,3},{65513,57988,3}, {65518,57979,3},{65518,57974,3},{65524,57973,3},{65524,57983,3},{65519,57994,3}, {65523,57998,3},{65521,57999,3},{65523,58006,3},{65526,58008,3},{65526,58011,3}, {65533,58014,3},{65529,58024,3},{65523,58031,3},{65521,58036,3},{65516,58041,3}, {65513,58048,3},{65516,58051,3},{65519,58053,3},{65519,58054,3},{65509,58061,3}, {65504,58058,3},{65503,58064,3},{65499,58068,3},{65501,58073,3},{65489,58083,3}, {65486,58089,3},{65483,58091,3},{65481,58094,3},{65474,58098,3},{65471,58098,3}, {65468,58099,3},{65466,58098,3},{65463,58098,3},{65459,58101,3},{65458,58104,3}, {65454,58106,3},{65453,58108,3},{65451,58106,3},{65451,58101,3},{65449,58101,3}, {65446,58106,3},{65439,58109,3},{65436,58113,3},{65436,58118,3},{65433,58126,3}, {65436,58129,3},{65428,58133,3},{65426,58134,3},{65429,58138,3},{65428,58139,3}, {65426,58138,3},{65424,58139,3},{65424,58143,3},{65418,58146,3},{65414,58151,3}, {65413,58156,3},{65414,58158,3},{65418,58159,3},{65414,58163,3},{65409,58173,3}, {65406,58174,3},{65404,58178,3},{65401,58178,3},{65398,58179,3},{65394,58178,3}, {65388,58186,3},{65379,58188,3},{65374,58183,3},{65368,58183,3},{65363,58189,3}, {65359,58193,3},{65359,58196,3},{65356,58201,3},{65359,58204,3},{65358,58209,3}, {65361,58211,3},{65358,58216,3},{65353,58218,3},{65346,58219,3},{65339,58219,3}, {65328,58224,3},{65323,58221,3},{65318,58216,3},{65314,58216,3},{65309,58219,3}, {65304,58221,3},{65304,58226,3},{65301,58228,3},{65303,58229,3},{65306,58231,3}, {65303,58234,3},{65303,58238,3},{65293,58243,3},{65294,58246,3},{65298,58256,3}, {65296,58259,3},{65299,58263,3},{65293,58264,3},{65303,58271,3},{65298,58281,3}, {65294,58293,3},{65291,58294,3},{65291,58298,3},{65293,58308,3},{65294,58308,3}, {65296,58309,3},{65294,58319,3},{65301,58326,3},{65304,58329,3},{65303,58341,3}, {65308,58343,3},{65311,58348,3},{65318,58353,3},{65323,58363,3},{65318,58363,3}, {65319,58368,3},{65318,58373,3},{65314,58376,3},{65313,58383,3},{65306,58384,3}, {65304,58386,3},{65304,58388,3},{65311,58388,3},{65309,58391,3},{65303,58394,3}, {65299,58393,3},{65298,58394,3},{65303,58404,3},{65301,58406,3},{65303,58411,3}, {65301,58416,3},{65304,58419,3},{65309,58421,3},{65311,58423,3},{65311,58429,3}, {65309,58433,3},{65309,58434,3},{65314,58433,3},{65316,58434,3},{65314,58441,3}, {65314,58446,3},{65308,58453,3},{65303,58466,3},{65298,58466,3},{65296,58469,3}, {65291,58471,3},{65291,58476,3},{65296,58478,3},{65291,58483,3},{65291,58488,3}, {65286,58491,3},{65288,58498,3},{65288,58501,3},{65286,58501,3},{65283,58499,3}, {65279,58499,3},{65281,58503,3},{65283,58506,3},{65281,58509,3},{65274,58511,3}, {65274,58519,3},{65269,58521,3},{65273,58524,3},{65273,58526,3},{65266,58528,3}, {65264,58531,3},{65158,58464,3},{65158,58468,3},{65153,58474,3},{65153,58478,3}, {65149,58484,3},{65158,58499,3},{65156,58504,3},{65149,58513,3},{65143,58518,3}, {65129,58523,3},{65126,58528,3},{65114,58541,3},{65111,58541,3},{65106,58539,3}, {65103,58536,3},{65103,58533,3},{65101,58533,3},{65103,58533,3},{65104,58528,3}, {65108,58529,3},{65111,58526,3},{65109,58521,3},{65104,58519,3},{65103,58516,3}, {65106,58514,3},{65106,58511,3},{65113,58504,3},{65118,58506,3},{65123,58503,3}, {65119,58501,3},{65123,58496,3},{65123,58491,3},{65118,58486,3},{65121,58484,3}, {65123,58481,3},{65116,58478,3},{65119,58476,3},{65119,58473,3},{65124,58474,3}, {65124,58469,3},{65119,58468,3},{65121,58459,3},{65118,58453,3},{65114,58453,3}, {65113,58453,3},{65111,58449,3},{65108,58449,3},{65098,58441,3},{65099,58438,3}, {65103,58436,3},{65098,58434,3},{65099,58429,3},{65098,58426,3},{65096,58424,3}, {65098,58421,3},{65101,58419,3},{65099,58418,3},{65094,58416,3},{65098,58413,3}, {65098,58408,3},{65093,58408,3},{65093,58404,3},{65091,58401,3},{65093,58398,3}, {65093,58388,3},{65091,58386,3},{65088,58384,3},{65089,58383,3},{65086,58376,3}, {65089,58374,3},{65084,58371,3},{65089,58368,3},{65086,58364,3},{65088,58358,3}, {65086,58358,3},{65084,58346,3},{65078,58339,3},{65078,58336,3},{65074,58333,3}, {65076,58329,3},{65071,58329,3},{65066,58323,3},{65066,58319,3},{65061,58313,3}, {65061,58304,3},{65059,58303,3},{65058,58303,3},{65058,58299,3},{65048,58296,3}, {65046,58289,3},{65041,58288,3},{65041,58283,3},{65036,58279,3},{65036,58276,3}, {65031,58274,3},{65029,58268,3},{65031,58261,3},{65028,58259,3},{65028,58251,3}, {65024,58251,3},{65023,58246,3},{65021,58244,3},{65018,58246,3},{65013,58246,3}, {65011,58248,3},{65004,58244,3},{65001,58244,3},{64989,58239,3},{64983,58243,3}, {64976,58239,3},{64971,58239,3},{64958,58231,3},{64951,58226,3},{64949,58223,3}, {64938,58223,3},{64931,58218,3},{64919,58218,3},{64916,58219,3},{64896,58223,3}, {64891,58221,3},{64884,58216,3},{64878,58201,3},{64866,58184,3},{64863,58178,3}, {64858,58174,3},{64856,58168,3},{64851,58166,3},{64848,58161,3},{64833,58159,3}, {64826,58156,3},{64821,58159,3},{64816,58161,3},{64814,58164,3},{64806,58166,3}, {64803,58161,3},{64803,58153,3},{64798,58146,3},{64801,58139,3},{64791,58143,3}, {64788,58141,3},{64784,58141,3},{64783,58136,3},{64783,58134,3},{64769,58149,3}, {64763,58153,3},{64758,58166,3},{64753,58166,3},{64749,58164,3},{64748,58163,3}, {64748,58158,3},{64741,58159,3},{64739,58161,3},{64734,58171,3},{64731,58173,3}, {64723,58176,3},{64716,58176,3},{64709,58181,3},{64699,58183,3},{64696,58189,3}, {64694,58193,3},{64691,58196,3},{64688,58201,3},{64676,58201,3},{64674,58204,3}, {64668,58209,3},{64668,58214,3},{64664,58219,3},{64646,58229,3},{64643,58236,3}, {64638,58239,3},{64628,58241,3},{64621,58239,3},{64619,58238,3},{64619,58234,3}, {64614,58234,3},{64611,58228,3},{64603,58223,3},{64599,58218,3},{64596,58216,3}, {64594,58263,3},{64591,58269,3},{64591,58276,3},{64588,58283,3},{64586,58299,3}, {64583,58303,3},{64583,58306,3},{64576,58306,3},{64569,58311,3},{64561,58309,3}, {64556,58318,3},{64553,58319,3},{64548,58321,3},{64543,58319,3},{64539,58319,3}, {64536,58318,3},{64536,58321,3},{64536,58399,3},{64539,58403,3},{64536,58406,3}, {64539,58411,3},{64543,58418,3},{64549,58423,3},{64551,58428,3},{64554,58431,3}, {64554,58436,3},{64559,58439,3},{64564,58446,3},{64569,58448,3},{64573,58456,3}, {64579,58461,3},{64584,58469,3},{64591,58476,3},{64593,58484,3},{64586,58483,3}, {64586,58479,3},{64584,58481,3},{64583,58478,3},{64579,58479,3},{64579,58474,3}, {64578,58476,3},{64573,58478,3},{64568,58481,3},{64563,58483,3},{64558,58479,3}, {64558,58476,3},{64553,58473,3},{64434,58473,3},{64443,58483,3},{64438,58489,3}, {64433,58493,3},{64429,58503,3},{64433,58519,3},{64444,58543,3},{64443,58548,3}, {64444,58558,3},{64439,58563,3},{64441,58579,3},{64336,58644,3},{64286,58669,3}, {64286,58668,3},{64283,58668,3},{64283,58666,3},{64279,58664,3},{64276,58659,3}, {64274,58658,3},{64271,58658,3},{64269,58663,3},{64264,58661,3},{64263,58651,3}, {64261,58651,3},{64259,58648,3},{64256,58646,3},{64256,58644,3},{64251,58641,3}, {64249,58639,3},{64236,58639,3},{64229,58641,3},{64218,58639,3},{64211,58641,3}, {64184,58639,3},{64179,58638,3},{64176,58634,3},{64173,58634,3},{64173,58629,3}, {64171,58628,3},{64166,58629,3},{64161,58636,3},{64156,58634,3},{64149,58638,3}, {64139,58638,3},{64138,58641,3},{64133,58646,3},{64124,58649,3},{64116,58651,3}, {64111,58636,3},{64103,58636,3},{64101,58638,3},{64098,58638,3},{64086,58621,3}, {64079,58621,3},{64078,58613,3},{64071,58611,3},{64063,58613,3},{64061,58609,3}, {64058,58603,3},{64056,58599,3},{64049,58599,3},{64046,58601,3},{64043,58598,3}, {64039,58598,3},{64034,58603,3},{64024,58608,3},{64019,58616,3},{64013,58623,3}, {64011,58623,3},{64009,58621,3},{64009,58616,3},{64006,58614,3},{64003,58609,3}, {63999,58608,3},{63996,58608,3},{63993,58603,3},{63988,58603,3},{63983,58599,3}, {63986,58598,3},{63986,58599,3},{63988,58599,3},{63989,58598,3},{63986,58593,3}, {63989,58591,3},{63993,58588,3},{64001,58579,3},{64001,58573,3},{64006,58571,3}, {64011,58568,3},{64011,58563,3},{64011,58561,3},{64008,58564,3},{64006,58564,3}, {64006,58561,3},{64004,58558,3},{64006,58551,3},{64006,58548,3},{64004,58548,3}, {64001,58556,3},{63999,58554,3},{64001,58549,3},{63998,58546,3},{63998,58541,3}, {63994,58541,3},{63979,58549,3},{63976,58553,3},{63971,58554,3},{63969,58558,3}, {63968,58558,3},{63968,58556,3},{63963,58561,3},{63963,58556,3},{63966,58551,3}, {63973,58549,3},{63978,58544,3},{63979,58541,3},{63976,58544,3},{63974,58544,3}, {63969,58539,3},{63966,58539,3},{63966,58534,3},{63964,58533,3},{63958,58533,3}, {63956,58536,3},{63951,58534,3},{63949,58536,3},{63951,58538,3},{63948,58543,3}, {63948,58546,3},{63944,58548,3},{63944,58556,3},{63946,58556,3},{63949,58549,3}, {63954,58551,3},{63958,58553,3},{63958,58556,3},{63946,58559,3},{63944,58564,3}, {63946,58566,3},{63944,58568,3},{63943,58568,3},{63943,58566,3},{63938,58569,3}, {63938,58579,3},{63934,58586,3},{63934,58593,3},{63928,58594,3},{63921,58588,3}, {63918,58584,3},{63916,58586,3},{63914,58588,3},{63918,58594,3},{63916,58596,3}, {63918,58598,3},{63916,58598,3},{63914,58598,3},{63911,58599,3},{63911,58606,3}, {63908,58609,3},{63909,58613,3},{63911,58621,3},{63911,58624,3},{63914,58626,3}, {63914,58629,3},{63916,58633,3},{63914,58634,3},{63914,58639,3},{63909,58638,3}, {63909,58636,3},{63909,58633,3},{63909,58628,3},{63904,58633,3},{63898,58633,3}, {63894,58633,3},{63889,58628,3},{63888,58626,3},{63881,58631,3},{63881,58633,3}, {63876,58633,3},{63871,58636,3},{63866,58626,3},{63864,58619,3},{63854,58616,3}, {63844,58604,3},{63838,58601,3},{63834,58594,3},{63833,58598,3},{63831,58598,3}, {63826,58591,3},{63826,58588,3},{63818,58578,3},{63818,58574,3},{63813,58574,3}, {63808,58571,3},{63806,58578,3},{63798,58586,3},{63786,58586,3},{63769,58568,3}, {63771,58554,3},{63769,58554,3},{63768,58553,3},{63761,58551,3},{63756,58554,3}, {63746,58556,3},{63743,58559,3},{63739,58559,3},{63723,58553,3},{63716,58544,3}, {63711,58541,3},{63709,58536,3},{63708,58531,3},{63704,58523,3},{63703,58516,3}, {63704,58499,3},{63701,58496,3},{65199,57503,131},{65203,57504,3},{65199,57504,3}, {65198,57506,3},{65203,57506,3},{65203,57508,3},{65201,57509,3},{65203,57521,3}, {65206,57526,3},{65216,57531,3},{65214,57531,3},{65213,57533,3},{65208,57533,3}, {65211,57534,3},{65216,57541,3},{65228,57544,3},{65233,57548,3},{65239,57548,3}, {65244,57549,3},{65258,57553,3},{65261,57556,3},{65269,57558,3},{65276,57563,3}, {65281,57564,3},{65288,57561,3},{65288,57558,3},{65294,57554,3},{65298,57551,3}, {65304,57553,3},{65309,57551,3},{65314,57553,3},{65319,57549,3},{65323,57551,3}, {65326,57551,3},{65328,57554,3},{65331,57554,3},{65333,57558,3},{65334,57559,3}, {65333,57553,3},{65328,57553,3},{65328,57549,3},{65326,57548,3},{65314,57546,3}, {65309,57549,3},{65304,57549,3},{65294,57549,3},{65279,57546,3},{65274,57536,3}, {65278,57534,3},{65276,57531,3},{65278,57529,3},{65281,57529,3},{65283,57533,3}, {65288,57534,3},{65288,57538,3},{65286,57541,3},{65288,57543,3},{65289,57543,3}, {65288,57541,3},{65291,57536,3},{65288,57533,3},{65299,57534,3},{65301,57538,3}, {65304,57541,3},{65303,57538,3},{65303,57534,3},{65301,57533,3},{65284,57526,3}, {65278,57519,3},{65276,57516,3},{65273,57513,3},{65276,57508,3},{65271,57508,3}, {65271,57509,3},{65266,57511,3},{65263,57511,3},{65264,57504,3},{65271,57496,3}, {65273,57489,3},{65291,57474,3},{65296,57468,3},{65298,57463,3},{65298,57458,3}, {65304,57448,3},{65304,57444,3},{65311,57441,3},{65316,57436,3},{65319,57434,3}, {65316,57444,3},{65323,57458,3},{65329,57461,3},{65339,57459,3},{65341,57463,3}, {65343,57463,3},{65359,57459,3},{65376,57451,3},{65381,57451,3},{65383,57454,3}, {65388,57454,3},{65389,57458,3},{65398,57458,3},{65403,57461,3},{65423,57448,3}, {65431,57444,3},{65433,57444,3},{65436,57448,3},{65443,57453,3},{65443,57456,3}, {65444,57459,3},{65443,57466,3},{65444,57469,3},{65443,57474,3},{65446,57478,3}, {65453,57483,3},{65463,57484,3},{65473,57489,3},{65479,57493,3},{65478,57494,3}, {65473,57496,3},{65473,57503,3},{65473,57509,3},{65474,57498,3},{65493,57489,3}, {65494,57488,3},{65499,57486,3},{65508,57496,3},{65513,57498,3},{65519,57503,3}, {65519,57506,3},{65521,57511,3},{65529,57516,3},{65533,57521,3},{0,57526,3}, {3,57526,3},{7,57529,3},{17,57533,3},{35,57533,3},{35,57534,3},{32,57536,3}, {37,57536,3},{43,57533,3},{48,57531,3},{53,57534,3},{58,57534,3},{63,57531,3}, {65,57528,3},{68,57524,3},{77,57526,3},{83,57529,3},{83,57539,3},{87,57543,3}, {87,57549,3},{95,57561,3},{100,57571,3},{90,57569,3},{88,57573,3},{83,57574,3}, {87,57574,3},{90,57571,3},{98,57573,3},{100,57581,3},{107,57591,3},{107,57598,3}, {108,57618,3},{113,57624,3},{122,57631,3},{118,57634,3},{112,57638,3},{115,57641,3}, {122,57641,3},{123,57643,3},{123,57644,3},{123,57648,3},{128,57649,3},{128,57654,3}, {130,57649,3},{132,57648,3},{135,57649,3},{138,57653,3},{143,57653,3},{143,57654,3}, {133,57666,3},{128,57668,3},{127,57673,3},{127,57676,3},{123,57676,3},{123,57679,3}, {120,57679,3},{122,57683,3},{120,57689,3},{107,57701,3},{103,57713,3},{100,57714,3}, {92,57726,3},{90,57736,3},{87,57741,3},{88,57744,3},{83,57746,3},{82,57751,3}, {82,57756,3},{85,57764,3},{85,57768,3},{82,57771,3},{75,57769,3},{72,57771,3}, {65,57783,3},{67,57788,3},{65,57789,3},{65,57791,3},{62,57793,3},{53,57791,3}, {47,57793,3},{42,57793,3},{38,57799,3},{35,57809,3},{38,57821,3},{32,57826,3}, {28,57826,3},{27,57831,3},{27,57838,3},{23,57848,3},{27,57853,3},{25,57858,3}, {28,57859,3},{27,57868,3},{23,57874,3},{25,57879,3},{23,57884,3},{25,57896,3}, {40,57896,3},{42,57901,3},{45,57904,3},{45,57906,3},{40,57914,3},{40,57921,3}, {38,57924,3},{35,57924,3},{37,57929,3},{35,57931,3},{18,57943,3},{13,57951,3}, {8,57956,3},{7,57961,3},{8,57973,3},{65529,57993,3},{65526,58008,3},{65523,58006,3}, {65521,57999,3},{65523,57998,3},{65519,57994,3},{65524,57983,3},{65524,57973,3}, {65518,57974,3},{65518,57979,3},{65513,57988,3},{65501,57991,3},{65493,57994,3}, {65489,57999,3},{65489,58003,3},{65486,58004,3},{65483,58008,3},{65484,58009,3}, {65481,58011,3},{65473,58011,3},{65471,58008,3},{65466,58009,3},{65463,58006,3}, {65456,58009,3},{65453,58009,3},{65448,58011,3},{65443,58011,3},{65439,58014,3}, {65438,58014,3},{65438,58004,3},{65439,57999,3},{65444,57996,3},{65439,57994,3}, {65381,57979,3},{65381,57978,3},{65323,57929,3},{65279,57869,3},{65238,57751,3}, {65221,57733,3},{65214,57729,3},{65214,57726,3},{65209,57724,3},{65201,57714,3}, {65198,57714,3},{65194,57718,3},{65191,57719,3},{65184,57713,3},{65184,57711,3}, {65191,57711,3},{65194,57709,3},{65194,57703,3},{65184,57699,3},{65173,57699,3}, {65163,57696,3},{65158,57694,3},{65144,57683,3},{65138,57681,3},{65126,57679,3}, {65123,57676,3},{65109,57673,3},{65104,57669,3},{65094,57669,3},{65093,57674,3}, {65088,57669,3},{65081,57669,3},{65078,57668,3},{65074,57658,3},{65068,57648,3}, {65061,57644,3},{65058,57644,3},{65051,57646,3},{65048,57638,3},{65041,57636,3}, {65036,57633,3},{65036,57631,3},{65036,57629,3},{65039,57626,3},{65038,57623,3}, {65039,57618,3},{65039,57608,3},{65046,57603,3},{65048,57599,3},{65053,57598,3}, {65056,57591,3},{65076,57584,3},{65081,57586,3},{65084,57586,3},{65084,57583,3}, {65093,57573,3},{65093,57569,3},{65089,57564,3},{65088,57558,3},{65088,57554,3}, {65093,57549,3},{65096,57546,3},{65096,57539,3},{65098,57538,3},{65106,57528,3}, {65106,57524,3},{65108,57523,3},{65106,57519,3},{65096,57509,3},{65096,57508,3}, {65091,57503,3},{65089,57499,3},{65088,57498,3},{65089,57494,3},{65093,57488,3}, {65098,57488,3},{65116,57503,3},{65116,57496,3},{65114,57493,3},{65116,57489,3}, {65123,57488,3},{65128,57486,3},{65131,57486,3},{65138,57489,3},{65138,57501,3}, {65134,57504,3},{65138,57508,3},{65141,57509,3},{65143,57514,3},{65148,57521,3}, {65151,57518,3},{65156,57518,3},{65159,57514,3},{65163,57516,3},{65168,57514,3}, {65173,57516,3},{65178,57514,3},{65178,57513,3},{65186,57513,3},{65189,57509,3}, {65194,57511,3},{65196,57504,3},{65199,57503,3},{803,57246,131},{810,57248,3}, {820,57243,3},{825,57243,3},{827,57241,3},{827,57238,3},{832,57231,3},{837,57239,3}, {842,57243,3},{843,57249,3},{847,57253,3},{863,57253,3},{873,57244,3},{877,57244,3}, {880,57249,3},{882,57249,3},{882,57248,3},{883,57249,3},{888,57261,3},{893,57264,3}, {898,57261,3},{900,57256,3},{907,57248,3},{908,57246,3},{907,57243,3},{947,57243,3}, {950,57253,3},{952,57249,3},{955,57251,3},{955,57249,3},{957,57249,3},{960,57251,3}, {960,57254,3},{958,57261,3},{957,57263,3},{955,57266,3},{952,57268,3},{948,57273,3}, {948,57276,3},{953,57276,3},{955,57278,3},{953,57281,3},{957,57279,3},{942,57299,3}, {942,57303,3},{938,57301,3},{933,57298,3},{930,57301,3},{928,57299,3},{928,57298,3}, {927,57296,3},{925,57299,3},{922,57299,3},{920,57301,3},{918,57306,3},{920,57306,3}, {920,57308,3},{922,57308,3},{920,57309,3},{918,57309,3},{918,57311,3},{922,57311,3}, {918,57313,3},{922,57316,3},{918,57318,3},{920,57319,3},{915,57319,3},{917,57316,3}, {917,57311,3},{915,57309,3},{910,57311,3},{910,57309,3},{908,57313,3},{902,57311,3}, {900,57311,3},{898,57316,3},{898,57323,3},{893,57326,3},{892,57329,3},{895,57336,3}, {893,57339,3},{893,57341,3},{897,57346,3},{895,57349,3},{895,57354,3},{893,57358,3}, {897,57359,3},{900,57358,3},{902,57354,3},{910,57348,3},{913,57343,3},{913,57349,3}, {915,57346,3},{917,57346,3},{912,57354,3},{910,57354,3},{910,57351,3},{905,57354,3}, {907,57356,3},{905,57361,3},{900,57366,3},{888,57374,3},{878,57386,3},{878,57398,3}, {877,57403,3},{878,57423,3},{883,57439,3},{888,57448,3},{888,57453,3},{898,57461,3}, {907,57476,3},{913,57496,3},{915,57506,3},{920,57523,3},{922,57526,3},{927,57533,3}, {935,57539,3},{935,57543,3},{930,57543,3},{930,57544,3},{935,57546,3},{935,57549,3}, {937,57548,3},{937,57549,3},{938,57549,3},{937,57553,3},{935,57558,3},{937,57556,3}, {940,57556,3},{943,57559,3},{943,57563,3},{947,57564,3},{948,57568,3},{953,57569,3}, {955,57571,3},{955,57569,3},{958,57571,3},{960,57576,3},{960,57578,3},{962,57583,3}, {960,57584,3},{958,57583,3},{957,57584,3},{958,57586,3},{957,57589,3},{958,57591,3}, {957,57598,3},{957,57603,3},{953,57614,3},{953,57618,3},{955,57621,3},{953,57621,3}, {955,57623,3},{955,57639,3},{952,57638,3},{952,57633,3},{950,57629,3},{943,57631,3}, {943,57636,3},{945,57638,3},{945,57641,3},{943,57646,3},{942,57646,3},{940,57649,3}, {943,57653,3},{942,57654,3},{943,57658,3},{943,57659,3},{943,57661,3},{943,57664,3}, {943,57666,3},{942,57671,3},{942,57673,3},{940,57676,3},{943,57681,3},{940,57684,3}, {940,57688,3},{938,57689,3},{937,57694,3},{927,57716,3},{923,57733,3},{918,57738,3}, {915,57743,3},{912,57743,3},{905,57749,3},{910,57749,3},{905,57756,3},{902,57756,3}, {895,57763,3},{893,57761,3},{888,57766,3},{888,57768,3},{880,57774,3},{883,57773,3}, {883,57774,3},{878,57779,3},{877,57779,3},{877,57783,3},{873,57783,3},{872,57783,3}, {870,57783,3},{865,57793,3},{867,57796,3},{867,57799,3},{865,57799,3},{863,57793,3}, {860,57794,3},{853,57789,3},{848,57788,3},{847,57789,3},{847,57794,3},{845,57796,3}, {840,57799,3},{828,57799,3},{827,57801,3},{827,57806,3},{822,57806,3},{820,57809,3}, {810,57814,3},{798,57818,3},{795,57821,3},{793,57814,3},{790,57806,3},{785,57803,3}, {778,57799,3},{773,57803,3},{770,57803,3},{767,57798,3},{762,57793,3},{760,57786,3}, {753,57779,3},{753,57776,3},{758,57774,3},{765,57769,3},{768,57769,3},{772,57761,3}, {763,57759,3},{755,57764,3},{752,57764,3},{748,57761,3},{748,57754,3},{723,57748,3}, {723,57744,3},{733,57736,3},{738,57734,3},{738,57733,3},{742,57733,3},{742,57729,3}, {745,57724,3},{753,57721,3},{752,57719,3},{757,57719,3},{757,57718,3},{755,57716,3}, {757,57716,3},{760,57716,3},{768,57708,3},{773,57708,3},{787,57701,3},{790,57698,3}, {797,57694,3},{802,57694,3},{805,57693,3},{808,57693,3},{810,57696,3},{807,57696,3}, {805,57703,3},{810,57711,3},{815,57713,3},{818,57713,3},{825,57706,3},{825,57709,3}, {827,57709,3},{828,57709,3},{830,57711,3},{827,57713,3},{827,57716,3},{830,57718,3}, {833,57718,3},{840,57723,3},{838,57724,3},{835,57724,3},{832,57731,3},{825,57734,3}, {820,57744,3},{822,57744,3},{825,57739,3},{823,57748,3},{820,57753,3},{817,57753,3}, {815,57758,3},{812,57758,3},{810,57761,3},{812,57763,3},{813,57763,3},{812,57761,3}, {813,57759,3},{815,57758,3},{817,57756,3},{817,57753,3},{820,57753,3},{823,57749,3}, {827,57734,3},{840,57729,3},{842,57731,3},{847,57726,3},{848,57726,3},{850,57728,3}, {853,57724,3},{855,57724,3},{853,57723,3},{852,57724,3},{850,57726,3},{847,57724,3}, {842,57728,3},{847,57721,3},{843,57718,3},{840,57718,3},{838,57713,3},{840,57711,3}, {842,57716,3},{843,57716,3},{847,57714,3},{850,57716,3},{853,57714,3},{852,57713,3}, {848,57714,3},{843,57713,3},{845,57709,3},{847,57713,3},{850,57711,3},{848,57711,3}, {843,57708,3},{843,57706,3},{848,57704,3},{845,57703,3},{842,57699,3},{853,57698,3}, {855,57696,3},{852,57694,3},{847,57698,3},{843,57698,3},{840,57699,3},{833,57698,3}, {835,57694,3},{838,57691,3},{845,57691,3},{842,57689,3},{845,57686,3},{850,57688,3}, {855,57684,3},{857,57683,3},{857,57688,3},{860,57684,3},{863,57686,3},{865,57679,3}, {867,57679,3},{867,57676,3},{870,57674,3},{873,57676,3},{877,57674,3},{875,57674,3}, {872,57674,3},{872,57673,3},{870,57671,3},{873,57669,3},{877,57663,3},{880,57661,3}, {885,57658,3},{883,57658,3},{880,57653,3},{890,57646,3},{898,57628,3},{905,57628,3}, {908,57626,3},{908,57628,3},{912,57631,3},{912,57633,3},{912,57634,3},{915,57638,3}, {912,57633,3},{913,57631,3},{908,57628,3},{908,57624,3},{905,57628,3},{902,57628,3}, {898,57624,3},{900,57621,3},{902,57619,3},{900,57618,3},{902,57608,3},{902,57598,3}, {900,57588,3},{897,57586,3},{897,57584,3},{893,57583,3},{890,57584,3},{895,57579,3}, {890,57581,3},{888,57578,3},{888,57576,3},{888,57571,3},{885,57569,3},{887,57566,3}, {885,57566,3},{883,57563,3},{880,57561,3},{877,57559,3},{870,57563,3},{868,57561,3}, {863,57553,3},{860,57558,3},{860,57561,3},{858,57561,3},{853,57549,3},{852,57549,3}, {848,57543,3},{845,57541,3},{840,57534,3},{830,57513,3},{830,57498,3},{832,57498,3}, {828,57498,3},{822,57489,3},{808,57488,3},{802,57491,3},{798,57501,3},{795,57504,3}, {790,57504,3},{773,57523,3},{770,57524,3},{763,57531,3},{752,57538,3},{747,57536,3}, {745,57534,3},{742,57519,3},{743,57518,3},{743,57509,3},{742,57506,3},{742,57509,3}, {738,57501,3},{737,57499,3},{732,57503,3},{730,57498,3},{725,57493,3},{725,57486,3}, {723,57484,3},{725,57479,3},{722,57464,3},{720,57449,3},{725,57446,3},{725,57443,3}, {732,57444,3},{733,57448,3},{735,57448,3},{740,57444,3},{745,57444,3},{750,57439,3}, {755,57441,3},{762,57438,3},{767,57431,3},{768,57433,3},{768,57436,3},{770,57436,3}, {772,57431,3},{772,57433,3},{775,57433,3},{777,57428,3},{780,57429,3},{782,57434,3}, {783,57434,3},{783,57431,3},{790,57431,3},{785,57428,3},{787,57424,3},{785,57428,3}, {783,57426,3},{785,57418,3},{787,57416,3},{788,57416,3},{790,57414,3},{788,57416,3}, {788,57414,3},{787,57414,3},{785,57418,3},{777,57419,3},{775,57418,3},{773,57414,3}, {775,57414,3},{775,57411,3},{772,57414,3},{772,57413,3},{770,57413,3},{770,57416,3}, {767,57416,3},{763,57418,3},{760,57414,3},{765,57406,3},{765,57401,3},{768,57398,3}, {767,57394,3},{770,57391,3},{770,57383,3},{775,57388,3},{775,57379,3},{777,57379,3}, {780,57378,3},{785,57379,3},{785,57376,3},{788,57376,3},{788,57374,3},{792,57374,3}, {793,57376,3},{795,57374,3},{798,57376,3},{798,57373,3},{793,57374,3},{795,57373,3}, {805,57368,3},{802,57366,3},{803,57364,3},{805,57366,3},{807,57363,3},{807,57369,3}, {818,57361,3},{817,57359,3},{815,57361,3},{812,57359,3},{813,57356,3},{818,57341,3}, {820,57341,3},{823,57343,3},{818,57339,3},{822,57336,3},{820,57334,3},{823,57324,3}, {815,57323,3},{817,57319,3},{818,57321,3},{822,57321,3},{820,57318,3},{822,57314,3}, {823,57316,3},{827,57314,3},{830,57314,3},{830,57316,3},{833,57314,3},{833,57318,3}, {833,57314,3},{830,57311,3},{832,57308,3},{833,57308,3},{833,57301,3},{830,57301,3}, {828,57296,3},{830,57293,3},{832,57294,3},{835,57293,3},{835,57291,3},{832,57293,3}, {832,57291,3},{832,57289,3},{828,57291,3},{827,57286,3},{832,57269,3},{828,57254,3}, {827,57251,3},{823,57249,3},{812,57249,3},{807,57251,3},{802,57249,3},{803,57246,3}, {4351,1922,128},{4346,1923,0},{4343,1931,0},{4341,1932,0},{4338,1945,0}, {4337,1948,0},{4330,1955,0},{4325,1956,0},{4322,1961,0},{4322,1962,0},{4318,1966,0}, {4318,1969,0},{4318,1971,0},{4317,1973,0},{4318,1974,0},{4318,1976,0},{4315,1978,0}, {4314,1977,0},{4310,1982,0},{4311,1983,0},{4310,1984,0},{4309,1985,0},{4310,1989,0}, {4311,1995,0},{4312,1997,0},{4311,1998,0},{4308,1999,0},{4301,2014,0},{4299,2016,0}, {4295,2032,0},{4293,2033,0},{4293,2037,0},{4290,2037,0},{4284,2035,0},{4282,2031,0}, {4281,2030,0},{4279,2030,0},{4275,2025,0},{4278,2009,0},{4277,2005,0},{4275,2004,0}, {4271,2005,0},{4271,2007,0},{4269,2011,0},{4267,2013,0},{4261,2007,0},{4259,2008,0}, {4258,2009,0},{4255,2008,0},{4190,1245,128},{4191,1246,0},{4191,1245,0}, {4190,1245,0} }; tucnak-4.04/src/player.c0000644000175000017500000002256212460207027012105 00000000000000/* player - WAV player Copyright (C) 2010-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "hf.h" #include "kbdbind.h" #include "player.h" #include "tsdl.h" #include "session.h" #include "ssbd.h" #include "subwin.h" #if defined(HAVE_SNDFILE) #define MS2PX 20 int sw_player_kbd_func(struct subwin *sw, struct event *ev, int fw){ switch(kbd_action(KM_MAIN,ev)){ case ACT_LEFT: if (!gssbd) break; MUTEX_LOCK(gssbd->seek); gssbd->seek -= 2000; MUTEX_UNLOCK(gssbd->seek); return 1; case ACT_RIGHT: if (!gssbd) break; MUTEX_LOCK(gssbd->seek); gssbd->seek += 1000; MUTEX_UNLOCK(gssbd->seek); return 1; case ACT_DOWN: if (!gssbd) break; MUTEX_LOCK(gssbd->seek); gssbd->seek -= 10000; MUTEX_UNLOCK(gssbd->seek); return 1; case ACT_UP: if (!gssbd) break; MUTEX_LOCK(gssbd->seek); gssbd->seek += 10000; MUTEX_UNLOCK(gssbd->seek); return 1; } if ((ev->x == 'p' || ev->x == 'P' || ev->x == ' ') && ev->y == 0){ if (sw->player_filename) player_play(sw->player_filename); return 1; } return 0; } int sw_player_mouse_func(struct subwin *sw, struct event *ev, int fw){ // if (!sdl) return 0; return 0; } void sw_player_redraw(struct subwin *sw, struct band *band, int flags){ int i, j, x, y0, y, c, cursor, dsec1, dsec2; int prev_y, prev_h, play_y, play_h; #ifdef Z_HAVE_SDL SDL_Rect area; #endif //dbg("sw_player_redraw(%d)\n", sw->gdirty); if (sw->pl_rate == 0) return; if (sw->pl_channels == 0) return; #ifdef Z_HAVE_SDL if (sdl) { if (sw->h - PLAYER_H <= 0) return; prev_y = 0; prev_h = PREVIEW_H * FONT_H; play_y = PREVIEW_H * FONT_H; play_h = sw->screen->h - (PREVIEW_H) * FONT_H; // PLAYER_H is included in sw->screen->h fill_area(sw->x, sw->y, sw->w, sw->h - PLAYER_H , 0); /* area.x = 0; area.y = prev_y; area.w = sw->screen->w; area.h = prev_h; SDL_FillRect(sw->screen, &area, z_makecol(20, 20, 20));*/ if (sw->pl_preview_screen){ SDL_BlitSurface(sw->pl_preview_screen, NULL, sw->screen, NULL); if (sw->pl_total_frames > 0){ x = ((long long)sw->pl_preview_w * gssbd->playedf) / sw->pl_total_frames; z_line(sw->screen, x, prev_y, x, prev_y + prev_h, sdl->gr[8]); } } area.x = 0; area.y = play_y; area.w = sw->screen->w; area.h = play_h; SDL_FillRect(sw->screen, &area, z_makecol(40, 40, 40)); //dbg("shapelen=%d channels=%d\n", sw->pl_shapelen, sw->pl_channels); if (sw->pl_pxlen == 0) return; c = sdl->green; sw_player_check_bounds(sw); cursor = gssbd->playedf / sw->pl_pxlen; for (x = 0; x < sw->screen->w; x++){ i = x + sw->pl_ofs; if (i >= sw->pl_shape_frames) continue; if (i < 0) continue; for (j = 0; j < sw->pl_channels; j++){ y0 = play_y + play_h / (sw->pl_channels * 2) + (j * play_h) / (sw->pl_channels); y = (sw->pl_shapebuf[i * sw->pl_channels + j] * play_h / 2) / (sw->pl_channels * 256); if (cursor == i){ y = play_h / (sw->pl_channels * 2); z_line(sw->screen, x, y0+y, x, y0-y, sdl->gr[15]); }else{ z_line(sw->screen, x, y0+y, x, y0-y, c); z_putpixel(sw->screen, x, y0, sdl->gr[10]); if (i % (1000 / MS2PX) == 0){ z_line(sw->screen, x, y0+10, x, y0, sdl->gr[10]); } //sw->pl_pxlen = sw->pl_rate * MS2PX / 1000; } } } } #endif dsec1 = (10 * gssbd->playedf) / sw->pl_rate; dsec2 = (10 * sw->pl_total_frames) / sw->pl_rate; clip_printf(sw, 1, sw->h - PLAYER_H, COL_NORM, "%d:%02d.%d / %d:%02d.%d", dsec1 / 600, (dsec1 % 600)/10, dsec1 % 10, dsec2 / 600, (dsec2 % 600)/10, dsec2 % 10); } void sw_player_check_bounds(struct subwin *sw){ int cursor; #ifdef Z_HAVE_SDL if (!sdl) return; if (sw->pl_pxlen == 0) return; cursor = gssbd->playedf / sw->pl_pxlen; if (cursor - sw->pl_ofs < 0){ sw->pl_ofs = cursor - sw->screen->w / 5; } if (cursor - sw->pl_ofs > (sw->screen->w * 4) / 5){ sw->pl_ofs = cursor - (sw->screen->w * 4) / 5; } #endif } void sw_player_raise(struct subwin *sw){ #ifdef Z_HAVE_SDL sw->gdirty=1; #endif } void sw_player_free(struct subwin *sw){ #ifdef Z_HAVE_SDL zg_free0(sw->pl_shapebuf); if (sw->pl_preview_screen) SDL_FreeSurface(sw->pl_preview_screen); #endif } void player_play(char *filename){ struct subwin *sw; int i, j; SF_INFO sfinfo; SNDFILE *sf; short *pxbuf, *sh; double *sum; short *avg; short *max; int shapei = 0; int prev_sh; int total_frames = 0; int x, y0, y, oldx = 0; int shapesize = 0; sw = sw_raise_or_new(SWT_PLAYER); if (!sw) return; redraw_later(); #ifdef Z_HAVE_SDL sw->gdirty=1; #endif if (filename != sw->player_filename){ g_free(sw->player_filename); sw->player_filename = g_strdup(filename); z_wokna(sw->player_filename); } sw->pl_total_frames = 0; sw->pl_channels = 1; memset (&sfinfo, 0, sizeof (sfinfo)); sf = sf_open(filename, SFM_READ, &sfinfo); if (!sf) { log_addf(VTEXT(T_CANT_PLAY), filename, sf_strerror (NULL)); return; } sw->pl_total_frames = sf_seek(sf, 0L, SEEK_END); if (sw->pl_total_frames < 0) { log_addf(VTEXT(T_CANT_SEEK_TO_END), filename, sf_strerror(sf)); sf_close(sf); sf = NULL; return; } if (sf_seek(sf, 0L, SEEK_SET) < 0) { log_addf(VTEXT(T_CANT_SEEK_TO_START), filename, sf_strerror(sf)); sf_close(sf); sf = NULL; return; } sw->pl_channels = sfinfo.channels; sw->pl_rate = sfinfo.samplerate; sw->pl_pxlen = sw->pl_rate * MS2PX / 1000; dbg("pl_total_frames=%d pxlen=%d\n", sw->pl_total_frames, sw->pl_pxlen); zg_free0(sw->pl_shapebuf); shapesize = sw->pl_channels * ((sw->pl_total_frames / sw->pl_pxlen) + 1); sw->pl_shapebuf = g_new0(char, shapesize); sw->pl_shape_frames = 0; #ifdef Z_HAVE_SDL if (sw->pl_preview_screen) SDL_FreeSurface(sw->pl_preview_screen); sw->pl_preview_screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->screen->w, PREVIEW_H * FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); sw->pl_preview_w = sw->pl_preview_screen->w; SDL_FillRect(sw->pl_preview_screen, NULL, z_makecol(20, 20, 20)); pxbuf = g_new0(short, sw->pl_pxlen * sw->pl_channels); sum = g_new0(double, sw->pl_channels); avg = g_new0(short, sw->pl_channels); max = g_new0(short, sw->pl_channels); shapei = 0; while(1){ int frames = sf_readf_short(sf, pxbuf, sw->pl_pxlen); if (frames <= 0) break; total_frames += frames; for (j = 0; j < sw->pl_channels; j++) { sum[j] = 0.0; max[j] = 0; } sh = pxbuf; for (i = 0; i < frames; i++){ for (j = 0; j < sw->pl_channels; j++){ sum[j] += *sh++; } } for (j = 0; j < sw->pl_channels; j++) avg[j] = (short)(sum[j] / frames); sh = pxbuf; for (i = 0; i < frames; i++){ for (j = 0; j < sw->pl_channels; j++){ int d = *sh - avg[j]; if (d < 0) d = -d; if (d > max[j]) max[j] = d; sh++; } } prev_sh = 0; for (j = 0; j < sw->pl_channels; j++) { int shape = 0; // dbg("max[%d]=%5d ", j, max[j]); if (max[j] == 0) { shape = 0; }else{ //shape = log(max[j]) * 256.0 / log(32768); shape = max[j] * 256.0 / 32768; if (shape > 255) shape = 255; } //dbg("shape[%d]=%3d ", j, shape); sw->pl_shapebuf[shapei] = shape; shapei++; prev_sh += shape; } //dbg("\n"); prev_sh /= sw->pl_channels; x = ((long long)sw->pl_preview_screen->w * total_frames) / sw->pl_total_frames; y0 = sw->pl_preview_screen->h / 2; y = sw->pl_preview_screen->h * prev_sh / (2 * 256); //dbg("x=%d prev_sh=%3d y=%d\n", x, prev_sh, y); for (i = oldx; i <= x; i++) { z_line(sw->pl_preview_screen, i, y0+y, i, y0-y, z_makecol(0, 128, 0)); z_putpixel(sw->pl_preview_screen, i, y0, sdl->gr[10]); } oldx = x + 1; sw->pl_shape_frames++; } g_free(pxbuf); g_free(sum); g_free(avg); g_free(max); #endif sf_close(sf); sf = NULL; ssbd_play_file(gssbd, filename); gses->icon=gssbd->playicon; } #else int sw_player_kbd_func(struct subwin *sw, struct event *ev, int fw){ return 0; } int sw_player_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_player_redraw(struct subwin *sw, struct band *b, int flags){ } void sw_player_check_bounds(struct subwin *sw){ } void sw_player_raise(struct subwin *sw){ } #endif tucnak-4.04/src/menu1.c0000644000175000017500000016725112525350640011645 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "chart.h" #include "edi.h" #include "excdb.h" #include "fifo.h" //#include "html.h" #include "inputln.h" #include "main.h" #include "map.h" #include "menu.h" #include "net.h" #include "qrvdb.h" #include "qsodb.h" #include "rc.h" #include "stats.h" #include "terminal.h" #include "tsdl.h" #include "wizz.h" char tname[MAX_STR_LEN],pcall[MAX_STR_LEN],pclub[MAX_STR_LEN]; char pwwlo[MAX_STR_LEN],pexch[MAX_STR_LEN],tdate[MAX_STR_LEN]; int qsoused; char qsomult_str[MAX_STR_LEN]; int qsoglob; int wwlused; char wwltype_str[MAX_STR_LEN]; char wwlbonu_str[MAX_STR_LEN], wwlmult_str[MAX_STR_LEN]; int wwlcfm; int exctype; char exctype_str[MAX_STR_LEN]; char excbonu_str[MAX_STR_LEN], excmult_str[MAX_STR_LEN]; int exccfm; char excname[MAX_STR_LEN]; int excused; char prefmult_str[MAX_STR_LEN]; char dxcbonu_str[MAX_STR_LEN], dxcmult_str[MAX_STR_LEN]; int prefglob; int rstused, defrstr; char default_rst[MAX_STR_LEN],default_rs[MAX_STR_LEN]; char operator_[EQSO_LEN]; int tttype; char tttype_str[MAX_STR_LEN]; int expmode; char new_excname[MAX_STR_LEN], old_excname[MAX_STR_LEN]; /*int qsop_method=1, total_method=1;*/ /******************** BAND SETTINGS *******************************/ #define RESP_LEN 50 int qrvnow,psect,isqrv,readonly; char opsect[RESP_LEN]; char stxeq[RESP_LEN], spowe[RESP_LEN], srxeq[RESP_LEN], sante[RESP_LEN]; char santh[RESP_LEN], mope1[RESP_LEN], mope2[RESP_LEN]; char remarks[RESP_LEN]; char ok_section_single[RESP_LEN], ok_section_multi[RESP_LEN]; char qrg_min_str[RESP_LEN], qrg_max_str[RESP_LEN]; char adifband[RESP_LEN], skedqrg[RESP_LEN], band_lo_str[RESP_LEN]; char band_sw_str[RESP_LEN]; //int bandfirstbutt; void refresh_band_confb(void *xxx) { struct config_band *confb; /* dbg("refresh_band_confb\n"); */ confb=(struct config_band *)xxx; confb->qrvnow = qrvnow; confb->psect = psect; STORE_STR(confb, opsect); confb->qrv = isqrv; confb->readonly = readonly; dbg("refresh_band readonly=%d\n", readonly); STORE_STR(confb,stxeq); /* dbg("refresh_band confb=%p confb->stxeq='%s'\n",confb,confb->stxeq);*/ /*b=confb;*/ STORE_STR(confb,spowe); STORE_STR(confb,srxeq); STORE_STR(confb,sante); STORE_STR(confb,santh); STORE_STR(confb,mope1); STORE_STR(confb,mope2); STORE_STR(confb,remarks); STORE_STR(confb, ok_section_multi); STORE_STR(confb, ok_section_single); STORE_SINT(confb, qrg_min); STORE_SINT(confb, qrg_max); STORE_STR(confb, adifband); STORE_STR(confb, skedqrg); STORE_SDBL(confb, band_lo); STORE_SHEX(confb, band_sw); } void refresh_band(void *xxx) { struct band *band; struct zstring *zs; char psectstr[EQSO_LEN]; gchar *c; /* dbg("refresh_band\n"); */ band=(struct band *)xxx; /* band->qrv = qrvnow;*/ band->psect = psect; STORE_STR(band, opsect); /*band->qrv = qrv;*/ band->readonly = readonly; il_readonly(band->il, band->readonly); STORE_STR(band,stxeq); /* dbg("refresh_band band=%p band->stxeq='%s'\n",band,band->stxeq);*/ STORE_STR(band,spowe); STORE_STR(band,srxeq); STORE_STR(band,sante); STORE_STR(band,santh); STORE_STR(band,mope1); STORE_STR(band,mope2); STORE_STR(band,remarks); /* STORE_STR(band, ok_section_multi); STORE_STR(band, ok_section_single); STORE_SINT(band, qrg_min); STORE_SINT(band, qrg_max); STORE_STR(band, adifband); STORE_STR(band, skedqrg); STORE_SDBL(band, band_lo);*/ g_snprintf(psectstr, EQSO_LEN, "%d", band->psect); zs = zconcatesc(band->pband, psectstr, stxeq, spowe, srxeq, sante, santh, mope1, mope2, remarks, NULL); // ok_section_*, qrg_*, adifband, skedqrg a band_lo se neposilaji c = g_strdup_printf("BA %s\n", zs->str); rel_write_all(c); g_free(c); zfree(zs); } /* xxx is char *band */ void band_settings(void *arg, int from_ctest) { struct dialog *d; int i,found; char *pband; struct config_band *confb=NULL; struct band *band=NULL; static char ss[1024]; found=0; pband = (char *)arg; if (!from_ctest) for (i=0;ibands->len; i++){ confb = (struct config_band*)g_ptr_array_index(cfg->bands,i); if (!confb) break; if (strcasecmp(pband, confb->pband)==0){ found=1; break; } } else for (i=0;ibands->len; i++){ band = (struct band*)g_ptr_array_index(ctest->bands,i); if (!band) break; if (strcasecmp(pband, band->pband)==0){ found=1; break; } } if (!found){ zinternal("band_settings() !found"); } if (confb){ qrvnow=confb->qrvnow; psect=confb->psect; LOAD_STR(confb, opsect); isqrv=confb->qrv; readonly=confb->readonly; dbg("band_settings readonly=%d\n", readonly); safe_strncpy0(stxeq,confb->stxeq,RESP_LEN); safe_strncpy0(spowe,confb->spowe,RESP_LEN); safe_strncpy0(srxeq,confb->srxeq,RESP_LEN); safe_strncpy0(sante,confb->sante,RESP_LEN); safe_strncpy0(santh,confb->santh,RESP_LEN); safe_strncpy0(mope1,confb->mope1,RESP_LEN); z_str_uc(mope1); safe_strncpy0(mope2,confb->mope2,RESP_LEN); z_str_uc(mope2); safe_strncpy0(remarks,confb->remarks,RESP_LEN); safe_strncpy0(ok_section_single,confb->ok_section_single,RESP_LEN); safe_strncpy0(ok_section_multi,confb->ok_section_multi,RESP_LEN); g_snprintf(qrg_min_str, RESP_LEN, "%d", confb->qrg_min); g_snprintf(qrg_max_str, RESP_LEN, "%d", confb->qrg_max); safe_strncpy0(adifband,confb->adifband,RESP_LEN); safe_strncpy0(skedqrg,confb->skedqrg,RESP_LEN); g_snprintf(band_lo_str, RESP_LEN, "%1.1f", confb->band_lo); g_snprintf(band_sw_str, RESP_LEN, "0x%02x", confb->band_sw); }else{ qrvnow=1; psect=band->psect; LOAD_STR(band, opsect); isqrv=1; readonly=band->readonly; safe_strncpy0(stxeq,band->stxeq,RESP_LEN); safe_strncpy0(spowe,band->spowe,RESP_LEN); safe_strncpy0(srxeq,band->srxeq,RESP_LEN); safe_strncpy0(sante,band->sante,RESP_LEN); safe_strncpy0(santh,band->santh,RESP_LEN); safe_strncpy0(mope1,band->mope1,RESP_LEN); z_str_uc(mope1); safe_strncpy0(mope2,band->mope2,RESP_LEN); z_str_uc(mope2); safe_strncpy0(remarks,band->remarks,RESP_LEN); /*safe_strncpy0(ok_section_single,band->ok_section_single,RESP_LEN); safe_strncpy0(ok_section_multi,band->ok_section_multi,RESP_LEN); g_snprintf(qrg_min, RESP_LEN, "%d", band->qrg_min); g_snprintf(qrg_max, RESP_LEN, "%d", band->qrg_max); safe_strncpy0(adifband,band->adifband,RESP_LEN); safe_strncpy0(skedqrg,band->skedqrg,RESP_LEN); g_snprintf(band_lo, RESP_LEN, "%1.1f", band->band_lo);*/ } if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = ss; d->fn = dlg_pf_fn; d->y0 = 1; if (confb){ g_snprintf(ss,1000,VTEXT(T_BAND_SETTINGS_SC), confb->bandchar,pband); d->refresh = (void (*)(void *))refresh_band_confb; d->refresh_data = confb; }else{ g_snprintf(ss,1000,VTEXT(T_BAND_SETTINGS_SC), band->bandchar,pband); d->refresh = (void (*)(void *))refresh_band; d->refresh_data = band; } d->items[i=0].type = D_CHECKBOX; /* 0 */ d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&isqrv; d->items[i].msg = CTEXT(T_QRV_ON_THIS_BAND); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&qrvnow; d->items[i].msg = CTEXT(T_QRV_IN_THIS_CTEST); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&readonly; d->items[i].msg = CTEXT(T_READ_ONLY); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 0; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&psect; d->items[i].msg = CTEXT(T_MULTI); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&psect; d->items[i].msg = CTEXT(T_SINGLE); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 2; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&psect; d->items[i].msg = CTEXT(T_CHECK); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 3; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&psect; d->items[i].msg = CTEXT(T_OTHER); d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].maxl = 15; d->items[i].data = opsect; d->items[i].msg = ""; d->items[i].wrap = 2; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = stxeq; d->items[i].msg = CTEXT(T_TXEQUIP); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 10; d->items[i].data = spowe; d->items[i].msg = CTEXT(T_POWER); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = srxeq; d->items[i].msg = CTEXT(T_RXEQUIP); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = sante; d->items[i].msg = CTEXT(T_ANTENNA); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 10; d->items[i].data = santh; d->items[i].msg = CTEXT(T_AGLASL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = mope1; d->items[i].msg = CTEXT(T_OPS); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = mope2; d->items[i].msg = CTEXT(T_SPACES1); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = remarks; d->items[i].msg = CTEXT(T_REMARKS); d->items[i].wrap = 2; if (confb){ d->items[++i].type = D_FIELD; d->items[i].dlen = 4; d->items[i].data = ok_section_single; d->items[i].msg = CTEXT(T_OK_SECTION_SINGLE); d->items[++i].type = D_FIELD; d->items[i].dlen = 4; d->items[i].data = ok_section_multi; d->items[i].msg = CTEXT(T_OK_SECTION_MULTI); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 10; d->items[i].data = qrg_min_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 250000000; d->items[i].msg = CTEXT(T_QRG_MIN); d->items[++i].type = D_FIELD; d->items[i].dlen = 10; d->items[i].data = qrg_max_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 250000000; d->items[i].msg = CTEXT(T_QRG_MAX); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 8; d->items[i].data = adifband; d->items[i].msg = CTEXT(T_ADIFBAND); d->items[++i].type = D_FIELD; d->items[i].dlen = 11; d->items[i].data = skedqrg; d->items[i].msg = CTEXT(T_SKEDQRG); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 16; d->items[i].data = band_lo_str; d->items[i].fn = check_qrg; d->items[i].msg = CTEXT(T_BAND_LO); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 6; d->items[i].data = band_sw_str; d->items[i].msg = CTEXT(T_BANDSW); d->items[i].wrap = 2; } d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_band_settings_confb(struct dialog_data *dlg, struct dialog_item_data *di){ /*dbg("dlg_band_settings %p %p \n",dlg,di);*/ band_settings(di->item->text, 0); return 0; } int dlg_band_settings(struct dialog_data *dlg, struct dialog_item_data *di){ /*dbg("dlg_band_settings %p %p \n",dlg,di);*/ band_settings(di->item->text, 1); return 0; } /******************** RESPONSIBLE OPERATOR *******************************/ #define RESP_LEN 50 char rname[RESP_LEN], rcall[RESP_LEN], radr1[RESP_LEN], radr2[RESP_LEN]; char rpoco[RESP_LEN], rcity[RESP_LEN], rcoun[RESP_LEN]; char rphon[RESP_LEN], rhbbs[RESP_LEN]; void refresh_responsible_op(void *xxx) { /* dbg("refresh_responsible_op\n");*/ STORE_STR(cfg,rname); STORE_STR(cfg,rcall); STORE_STR(cfg,radr1); STORE_STR(cfg,radr2); STORE_STR(cfg,rpoco); STORE_STR(cfg,rcity); STORE_STR(cfg,rcoun); STORE_STR(cfg,rphon); STORE_STR(cfg,rhbbs); } char *responsible_op_msg[] = { CTEXT(T_NAME), CTEXT(T_CALLSIGN), CTEXT(T_ADDRESS), CTEXT(T_ADDRESS), CTEXT(T_POSTCODE), CTEXT(T_CITY), CTEXT(T_COUNTRY), CTEXT(T_PHONE), CTEXT(T_BBSEMAIL), "", /* OK */ /* 9 */ "", /* Cancel */ }; void responsible_op_fn(struct dialog_data *dlg) { int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, responsible_op_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, responsible_op_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, responsible_op_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, responsible_op_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, responsible_op_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, responsible_op_msg + 2, dlg->items + 2, 1, &min); max_group_width(term, responsible_op_msg + 3, dlg->items + 3, 1, &max); min_group_width(term, responsible_op_msg + 3, dlg->items + 3, 1, &min); max_group_width(term, responsible_op_msg + 4, dlg->items + 4, 1, &max); min_group_width(term, responsible_op_msg + 4, dlg->items + 4, 1, &min); max_group_width(term, responsible_op_msg + 5, dlg->items + 5, 1, &max); min_group_width(term, responsible_op_msg + 5, dlg->items + 5, 1, &min); max_group_width(term, responsible_op_msg + 6, dlg->items + 6, 1, &max); min_group_width(term, responsible_op_msg + 6, dlg->items + 6, 1, &min); max_group_width(term, responsible_op_msg + 7, dlg->items + 7, 1, &max); min_group_width(term, responsible_op_msg + 7, dlg->items + 7, 1, &min); max_group_width(term, responsible_op_msg + 8, dlg->items + 8, 1, &max); min_group_width(term, responsible_op_msg + 8, dlg->items + 8, 1, &min); max_buttons_width(term, dlg->items + 9, 2, &max); min_buttons_width(term, dlg->items + 9, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, responsible_op_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, responsible_op_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +9, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, responsible_op_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, responsible_op_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +9, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void responsible_op(void) { struct dialog *d; int i; safe_strncpy0(rname,cfg->rname,RESP_LEN); safe_strncpy0(rcall,cfg->rcall,RESP_LEN); z_str_uc(rcall); safe_strncpy0(radr1,cfg->radr1,RESP_LEN); safe_strncpy0(radr2,cfg->radr2,RESP_LEN); safe_strncpy0(rpoco,cfg->rpoco,RESP_LEN); safe_strncpy0(rcity,cfg->rcity,RESP_LEN); safe_strncpy0(rcoun,cfg->rcoun,RESP_LEN); safe_strncpy0(rphon,cfg->rphon,RESP_LEN); safe_strncpy0(rhbbs,cfg->rhbbs,RESP_LEN); if (!(d = g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_RESPOP); d->fn = responsible_op_fn; d->refresh = (void (*)(void *))refresh_responsible_op; d->items[i=0].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rname; d->items[i=1].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rcall; d->items[i=2].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = radr1; d->items[i=3].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = radr2; d->items[i=4].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rpoco; d->items[i=5].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rcity; d->items[i=6].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rcoun; d->items[i=7].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rphon; d->items[i=8].type = D_FIELD; d->items[i].dlen = RESP_LEN; d->items[i].data = rhbbs; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_responsoble_op(struct dialog_data *dlg, struct dialog_item_data *di){ responsible_op(); return 0; } void menu_responsible_op(void *arg){ responsible_op(); } /******************** QSOP METHOD, TOTAL METHOD ******************/ #define MAX_QSOP_METHOD 18 #define MAX_TOTAL_METHOD 4 int qsop_method=1, total_method=1; char qsop_method_str[MAX_STR_LEN],total_method_str[MAX_STR_LEN]; char *qsop_method_msg[]={ CTEXT(T_QP0), CTEXT(T_QP1), CTEXT(T_QP2), CTEXT(T_QP3), CTEXT(T_QP4), CTEXT(T_QP5), CTEXT(T_QP6), CTEXT(T_QP7), CTEXT(T_QP8), CTEXT(T_QP9), CTEXT(T_QP10), CTEXT(T_QP11), CTEXT(T_QP12), CTEXT(T_QP13), CTEXT(T_QP14), CTEXT(T_QP15), CTEXT(T_QP16), CTEXT(T_QP17), CTEXT(T_QP18), }; char *total_method_msg[]={ CTEXT(T_TP0), CTEXT(T_TP1), CTEXT(T_TP2), CTEXT(T_TP3), CTEXT(T_TP4) }; void qsop_method_func (void *arg){ int active; active=GPOINTER_TO_INT(arg); if (active<1 || active>MAX_QSOP_METHOD) return; qsop_method = active; /*safe_strncpy0(qsop_method_str, qsop_method_msg[qsop_method], MAX_STR_LEN);*/ safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); redraw_later(); } int dlg_qsop_method(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 1; i <= MAX_QSOP_METHOD; i++) { add_to_menu(&mi, qsop_method_msg[i], "", "", MENU_FUNC qsop_method_func, GINT_TO_POINTER(i), 0); } sel = qsop_method-1; if (sel < 0) sel = 0; if (sel>=MAX_QSOP_METHOD) sel=0; do_menu_selected(mi, GINT_TO_POINTER(qsop_method), sel); return 0; } void total_method_func (void *arg){ int active; active=GPOINTER_TO_INT(arg); if (active<1 || active>MAX_TOTAL_METHOD) return; total_method = active; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); redraw_later(); return; } int dlg_total_method(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 1; i <= MAX_TOTAL_METHOD; i++) { add_to_menu(&mi, total_method_msg[i], "", "", MENU_FUNC total_method_func, GINT_TO_POINTER(i), 0); } sel = total_method-1; if (sel < 0) sel = 0; if (sel>=MAX_TOTAL_METHOD) sel=0; do_menu_selected(mi, GINT_TO_POINTER(total_method), sel); return 0; } /****************** TTTYPE *******************/ #define MAX_TTTYPE 5 char tttype_str[MAX_STR_LEN]; char *tttype_msg[]={ CTEXT(T_NONE), CTEXT(T_RSTS2), CTEXT(T_RSTR2), CTEXT(T_QSONRR2), CTEXT(T_EXC2) }; void tttype_func(void *arg){ int active; active=GPOINTER_TO_INT(arg); log_addf("tttype_func: active=%d", active); if (active<0 || active>=MAX_TTTYPE) return; tttype = active; safe_strncpy0(tttype_str, tttype_msg[tttype], MAX_STR_LEN); redraw_later(); } int dlg_tttype(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 0; i < MAX_TTTYPE; i++) { add_to_menu(&mi, tttype_msg[i], "", "", MENU_FUNC tttype_func, GINT_TO_POINTER(i), 0); } sel = tttype; if (sel < 1) sel = 1; if (sel>=MAX_TTTYPE) sel=0; do_menu_selected(mi, GINT_TO_POINTER(tttype), sel); return 0; } /****************** WWLTYPE *******************/ #define MAX_WWLTYPE 5 char wwltype_str[MAX_STR_LEN]; char *wwltype_msg[]={ CTEXT(T_UNUSED), CTEXT(T_USED_6), CTEXT(T_OPT_6), CTEXT(T_USED_4), CTEXT(T_OPT_4) }; void wwltype_func(void *arg){ int active; active=GPOINTER_TO_INT(arg); if (active<0 || active>=MAX_WWLTYPE) return; wwlused = active; safe_strncpy0(wwltype_str, get_text_translation(wwltype_msg[wwlused]), MAX_STR_LEN); redraw_later(); } int dlg_wwltype(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 0; i < MAX_WWLTYPE; i++) { add_to_menu(&mi, wwltype_msg[i], "", "", MENU_FUNC wwltype_func, GINT_TO_POINTER(i), 0); } sel = wwlused; if (sel < 1) sel = 1; if (sel>=MAX_WWLTYPE) sel=0; do_menu_selected(mi, GINT_TO_POINTER(wwlused), sel); return 0; } /****************** EXCTYPE *******************/ #define MAX_EXCTYPE 5 char *exctype_msg[]={ CTEXT(T_UNUSED), CTEXT(T_FREE), CTEXT(T_VERIFIED), CTEXT(T_WAZ), CTEXT(T_ITU), }; void exctype_func(void *arg){ int active; active=GPOINTER_TO_INT(arg); if (active < 0 || active >= MAX_EXCTYPE) return; exctype = active; switch(exctype){ case EXC_WAZ: strcpy(new_excname, "WAZ"); break; case EXC_ITU: strcpy(new_excname, "ITU"); break; default: strcpy(new_excname, old_excname); break; } /*safe_strncpy0(qsop_method_str, qsop_method_msg[qsop_method], MAX_STR_LEN);*/ safe_strncpy0(exctype_str, get_text_translation(exctype_msg[exctype]), MAX_STR_LEN); redraw_later(); } int dlg_exctype(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel; struct menu_item *mi; if (!(mi = new_menu(1))) return 0; for (i = 0; i < MAX_EXCTYPE; i++) { add_to_menu(&mi, exctype_msg[i], "", "", MENU_FUNC exctype_func, GINT_TO_POINTER(i), 0); } sel = exctype; if (sel < 0) sel = 1; if (sel >= MAX_EXCTYPE) sel=0; do_menu_selected(mi, GINT_TO_POINTER(exctype), sel); return 0; } /******************** WIZZ *******************************************/ void wizz_func (void *arg){ int active,j; struct wizz_item *wi; time_t now; struct tm utc; active=GPOINTER_TO_INT(arg); if (active<0 || active>=wizz->items->len) return; wi = get_wizz(wizz, active); time(&now); gmtime_r(&now, &utc); safe_strncpy0(tname, wi->tname,100); safe_strncpy0(pcall, cfg->pcall, 20);z_str_uc(pcall); safe_strncpy0(pclub, cfg->pclub, 20);z_str_uc(pclub); safe_strncpy0(operator_, cfg->operator_, EQSO_LEN);z_str_uc(operator_); safe_strncpy0(pwwlo, cfg->pwwlo, 9); z_str_uc(pwwlo); safe_strncpy0(pexch, wi->pexch, 9); z_str_uc(pexch); g_snprintf(tdate, MAX_STR_LEN, "%d%02d%02d", 1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); qsoused=wi->qsoused; g_snprintf(qsomult_str,10, "%d", wi->qsomult); qsoglob=wi->qsoglob; wwlused=wi->wwlused; safe_strncpy0(wwltype_str, get_text_translation(wwltype_msg[wwlused]), MAX_STR_LEN); g_snprintf(wwlbonu_str,10, "%d", wi->wwlbonu); g_snprintf(wwlmult_str,10, "%d", wi->wwlmult); wwlcfm=wi->wwlcfm; exctype=wi->exctype; safe_strncpy0(exctype_str, get_text_translation(exctype_msg[exctype]),MAX_STR_LEN); safe_strncpy0(excname, wi->excname, MAX_STR_LEN); safe_strncpy0(new_excname, wi->excname, MAX_STR_LEN); safe_strncpy0(old_excname, wi->excname, MAX_STR_LEN); g_snprintf(excbonu_str,10, "%d", wi->excbonu); g_snprintf(excmult_str,10, "%d", wi->excmult); exccfm=wi->exccfm; excused=wi->excused; g_snprintf(prefmult_str,10, "%d", wi->prefmult); g_snprintf(dxcbonu_str,10, "%d", wi->dxcbonu); g_snprintf(dxcmult_str,10, "%d", wi->dxcmult); prefglob=wi->prefglob; rstused=wi->rstused; safe_strncpy(default_rs, cfg->default_rs, 5); z_str_uc(default_rs); safe_strncpy(default_rst, cfg->default_rst, 5); z_str_uc(default_rst); defrstr=wi->defrstr; tttype=wi->tttype; safe_strncpy0(tttype_str,tttype_msg[tttype],MAX_STR_LEN); expmode=0; qsop_method=wi->qsop_method; /*safe_strncpy0(qsop_method_str,qsop_method_msg[qsop_method],MAX_STR_LEN);*/ safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); total_method=wi->total_method; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); /*safe_strncpy0(total_method_str,total_method_msg[total_method],MAX_STR_LEN);*/ log_addf("qsop_method=%d total_method=%d", qsop_method, total_method); /* wwltype */ /* minqsop, maxqsop */ if (wi->bands){ dbg("wi->bands='%s'\n", wi->bands); for (j=0; jbands->len;j++){ struct config_band *confb; confb = (struct config_band*)g_ptr_array_index(cfg->bands,j); if (!confb) break; /* unreached? */ confb->qrvnow = confb->qrv; if (!confb->qrvnow) continue; if (strchr(wi->bands, confb->bandchar)==NULL) { dbg("Band %c is not used in contest\n", confb->bandchar); confb->qrvnow=0; } } } contest_options1(VTEXT(T_NEW_CTEST), 0, wi); } struct menu_item no_wizz[] = { {CTEXT(T_NO_CTESTS), "", M_BAR, NULL, NULL, 0, 0}, {NULL, NULL, 0, NULL, NULL, 0, 0} }; void menu_wizz(void *arg){ int i; struct menu_item *mi; struct wizz_item *wi; if (!wizz->items->len){ do_menu(no_wizz, NULL); return; } if (!(mi = new_menu(1))) return; for (i = 0; i < wizz->items->len; i++) { wi = get_wizz(wizz, i); add_to_menu(&mi, wi->tname, "", "", MENU_FUNC wizz_func, GINT_TO_POINTER(i), 0); } do_menu_selected(mi, NULL, 0); } /******************** CONTEST OPTIONS 1 *******************************/ /*char qsop_method_str[MAX_STR_LEN],total_method_str[MAX_STR_LEN];*/ int firstbandbutt=-1, excnameidx; /*void update_desc(struct contest *ctest){ if (!ctest) return; if (!ctest->pcall) return; if (!ctest->tname) return; if (!ctest->pcall || !ctest->tname || strcasecmp(pcall, ctest->pcall) || strcasecmp(tname, ctest->tname)){ setvbuf(ctest->descfile, NULL, _IONBF, 0); fseek(ctest->descfile, 0, SEEK_SET); if (z_ftruncate(fileno(ctest->descfile), 0)){ errbox(VTEXT(T_CANT_TRUNC), errno); return; } fprintf(ctest->descfile,"%s %s %s\n", ctest->cdate, z_str_uc(pcall), ctest->tname); } } */ void refresh_contest_options1(void *arg) { int updloc; char *descfile; struct wizz_item *wi = (struct wizz_item *)arg; /*dbg("refresh_contest_options1\n");*/ if (ctest){ descfile = g_strdup_printf("%s/desc", ctest->directory); save_desc_to_file(descfile); g_free(descfile); } updloc=strcmp(cfg->pwwlo, pwwlo); STORE_STR_FS_UC(cfg,pcall); STORE_STR_FS_UC(cfg,pclub); STORE_STR_FS_UC(cfg,operator_); STORE_STR_FS_UC(cfg,pwwlo); STORE_STR_FS (cfg,default_rst); STORE_STR_FS (cfg,default_rs); init_ctest2(1, updloc, NULL, wi); } void init_ctest2(int from_dlg, int updloc, struct zstring *zs2, struct wizz_item *wi){ int isnew=0; struct zstring *zs = NULL; char *c; if (!ctest) isnew=1; // dbg("init_ctest2: isnew=%d zs2=%p wi=%p\n", isnew, zs2, wi); if (init_ctest()) return; if (ctest->pwwlo) updloc=strcasecmp(ctest->pwwlo, pwwlo); if (from_dlg){ STORE_STR_FS (ctest,tname); STORE_STR_FS_UC(ctest,pcall); STORE_STR_FS_UC(ctest,pclub); STORE_STR_FS_UC(ctest,pwwlo); STORE_STR_FS_UC(ctest,pexch); /* tdate is handled by argument */ // STORE_STR_FS (ctest,tdate); STORE_STR_FS (ctest,default_rst); STORE_STR_FS (ctest,default_rs); STORE_STR2 (ctest,cfg,rname); STORE_STR2_UC(ctest,cfg,rcall); STORE_STR2 (ctest,cfg,radr1); STORE_STR2 (ctest,cfg,radr2); STORE_STR2 (ctest,cfg,rpoco); STORE_STR2 (ctest,cfg,rcity); STORE_STR2 (ctest,cfg,rcoun); STORE_STR2 (ctest,cfg,rphon); STORE_STR2 (ctest,cfg,rhbbs); STORE_INT (ctest,qsoused); STORE_SINT(ctest,qsomult); STORE_INT (ctest,qsoglob); STORE_INT (ctest,wwlused); STORE_SINT(ctest,wwlbonu); STORE_SINT(ctest,wwlmult); STORE_INT (ctest,wwlcfm); STORE_ENUM (ctest,exctype, enum exctype); STORE_STR (ctest,excname); STORE_INT (ctest,excused); STORE_SINT(ctest,excbonu); STORE_SINT(ctest,excmult); STORE_INT (ctest,exccfm); STORE_SINT(ctest,prefmult); STORE_SINT(ctest,dxcbonu); STORE_SINT(ctest,dxcmult); STORE_INT (ctest,prefglob); STORE_INT (ctest,rstused); STORE_ENUM (ctest,tttype, enum tttype); STORE_INT (ctest,expmode); STORE_INT (ctest,defrstr); STORE_INT (ctest,qsop_method); STORE_INT (ctest,total_method); } if (zs2){ zs = zstrdup(ztokenize(zs2, 1)); dbg("ctest\t%s\n", zs->str); ctest_parse(zs, ctest); zfree(zs); safe_strncpy0(tdate, ctest->cdate, MAX_STR_LEN); } set_ctest_title(); clear_exc(excdb); read_exc_files(excdb, (enum exctype)exctype, excname); if (!isnew){ /* contest options from menu */ gchar *descfile; dbg("init_ctest2: from menu\n"); /*save_all_bands_txt(0);*/ descfile=g_strdup_printf("%s/desc", ctest->directory); save_desc_to_file(descfile); g_free(descfile); net_send_ac(); net_send_operator(); net_send_read_write_bands(); net_send_talk(); recalc_all_stats(ctest); if (updloc){ qrv_recalc_qrbqtf(qrv); qrv_recalc_gst(qrv); #ifdef Z_HAVE_SDL recalc_all_qrbqtf(ctest); map_recalc_cors(); maps_reload(); #endif chart_reload(); //qrv_recalc_wkd(qrvdb); probably not needed } save_all_bands_txt(0); return; } /* new contest */ dbg("init_ctest2: new contest tdate=%s\n", tdate); if (new_ctest(tdate)) return; if (from_dlg){ if (init_qrv_bands(wi)) return; } if (zs2){ int i; for (i=0; ;i++){ gchar *cc; cc = ztokenize(zs2, 0); if (!cc) break; zs = zstrdup(cc); dbg("band%d\t%s\n", i, zs->str); init_band(NULL, NULL, zs, NULL); zfree(zs); } } if (ctest->bands->len==0){ errbox(VTEXT(T_NO_BANDS), 0); free_ctest(); return; } if (zs == NULL){ // called from menu, read prepared ~/tucnak/qrv c = g_strconcat(tucnak_dir, "/qrv", NULL); load_qrv_from_file(qrv, c); g_free(c); } // else QRV will be transferred over network save_all_bands_txt(0); net_send_ac(); net_send_operator(); net_send_read_write_bands(); net_send_talk(); if (cfg->startband){ struct band *b; b=find_band_by_pband(cfg->startband); activate_band(b); /* b==NULL is handled by function */ } } void contest_options1_fn(struct dialog_data *dlgd) { int numofbands; /*dbg("contest_options1_fn()\n");*/ // firstbandbutt=26; for (numofbands=0; numofbands<26; numofbands++ ) { if (! dlgd->items[firstbandbutt+numofbands].item) break; if (dlgd->items[firstbandbutt+numofbands].item->type!= D_BUTTON) break; if (dlgd->items[firstbandbutt+numofbands].item->gid== B_ENTER) break; } /* dbg("first=%d, num=%d\n",firstbandbutt,numofbands);*/ if (strcmp(excname, new_excname)!=0){ strcpy(excname, new_excname); safe_strncpy0(dlgd->items[excnameidx].cdata, excname, EQSO_LEN); dlgd->items[excnameidx].cpos = strlen(dlgd->items[excnameidx].cdata); } #if 0 int ph; for (ph = 0; ph < 3; ph++){ dlg_pf_init(ph, dlgd); dlgd->yy++; dlg_pf_group(ph, dlgd, 1); dlg_pf_group(ph, dlgd, 2); dlg_pf_group(ph, dlgd, 3); dlg_pf_group(ph, dlgd, 1); // tttype dlg_pf_group(ph, dlgd, 3); // qso dlg_pf_group(ph, dlgd, 4); // wwl dlg_pf_group(ph, dlgd, 4); // exc dlg_pf_group(ph, dlgd, 2); // exc dlg_pf_group(ph, dlgd, 2); dlg_pf_group(ph, dlgd, 4); dlg_pf_group(ph, dlgd, 2); dlgd->yy ++; dlg_pf_group(ph, dlgd, numofbands); dlgd->yy ++; //dlg_pf_buttons(ph, dlgd, 4); dlg_pf_group(ph, dlgd, 4); dlgd->yy ++; dlgd->yy ++; } #endif } void contest_options1(char *title, int from_ctest, struct wizz_item *wi) { struct dialog *d; int i,j; /*dbg("contest_options1\n");*/ #ifdef Z_ANDROID if (!from_ctest){ double h, w; int state; //SDL_ANDROID_GetHW(&h, &w, &state); zandroid_get_location(&h, &w, &state); //log_addf("contest_options1: h=%f w=%f\n", h, w); if (h > -1000 && h < 1000){ // todo v zavislosti na state hw2loc(pwwlo, h, w, 6); } } #endif if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 60 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 60 * sizeof(struct dialog_item)); d->title = title; d->fn = dlg_pf_fn; d->fn2 = contest_options1_fn; d->refresh = (void (*)(void *))refresh_contest_options1; d->refresh_data = wi; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = tname; d->items[i].maxl = 45; d->items[i].msg = CTEXT(T_NAME_OF_CTEST); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 20; d->items[i].data = pcall; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_CALL_OF_CTEST); d->items[++i].type = D_FIELD; d->items[i].dlen = 20; d->items[i].data = pclub; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_CLUB_ST); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 9; d->items[i].data = pwwlo; d->items[i].msg = CTEXT(T_YOURWWL); d->items[++i].type = D_FIELD; d->items[i].dlen = 9; d->items[i].data = pexch; d->items[i].msg = CTEXT(T_YOUREXC); d->items[++i].type = D_FIELD; /* 5 */ d->items[i].dlen = 9; d->items[i].data = tdate; d->items[i].msg = CTEXT(T_DATE_OF_CTEST); d->items[i].wrap = 1; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_tttype; d->items[i].text = tttype_str; d->items[i].msg = CTEXT(T_TTTYPE); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&expmode; d->items[i].msg = CTEXT(T_EXPMODE); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&qsoused; d->items[i].msg = CTEXT(T_QSOUSED); d->items[++i].type = D_FIELD; d->items[i].data = qsomult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_QSOPM); d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&qsoglob; d->items[i].msg = CTEXT(T_QSOGLOB); d->items[i].wrap = 1; /* d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&wwlused; d->items[i].msg = CTEXT(T_WWLUSED);*/ d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_wwltype; d->items[i].text = wwltype_str; d->items[i].msg = CTEXT(T_WWL2); d->items[++i].type = D_FIELD; /* 10 */ d->items[i].data = wwlbonu_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_WWLB); d->items[++i].type = D_FIELD; d->items[i].data = wwlmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_WWLM); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&wwlcfm; d->items[i].msg = CTEXT(T_CONFIRM_WWL); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&excused; d->items[i].msg = CTEXT(T_EXCUSED); d->items[++i].type = D_FIELD; d->items[i].data = excbonu_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_EXCB); d->items[++i].type = D_FIELD; /* 15 */ d->items[i].data = excmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_EXCM); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&exccfm; d->items[i].msg = CTEXT(T_CONFIRM_EXC); d->items[i].wrap = 1; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_exctype; d->items[i].text = exctype_str; d->items[i].msg = CTEXT(T_EXC2); d->items[++i].type = D_FIELD; d->items[i].dlen = 15; d->items[i].data = excname; d->items[i].maxl = 7; d->items[i].msg = CTEXT(T_EXCNAME); d->items[i].wrap = 1; excnameidx = i; d->items[++i].type = D_FIELD; d->items[i].data = prefmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_PREFM); d->items[++i].type = D_FIELD; d->items[i].data = dxcbonu_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_DXCB); d->items[++i].type = D_FIELD; /* 20 */ d->items[i].data = dxcmult_str; d->items[i].dlen = 8; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 999999; d->items[i].msg = CTEXT(T_DXCM); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(gint); d->items[i].data=(char *)&prefglob; d->items[i].msg = CTEXT(T_PREFGLOB); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX3; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(gint); d->items[i].data=(char *)&rstused; d->items[i].msg = CTEXT(T_RSTUSED); d->items[++i].type = D_FIELD; d->items[i].data = default_rs; d->items[i].dlen = 5; d->items[i].msg = CTEXT(T_DEFRS); d->items[++i].type = D_FIELD; d->items[i].data = default_rst; d->items[i].dlen = 5; d->items[i].msg = CTEXT(T_DEFRST); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(gint); d->items[i].data=(char *)&defrstr; d->items[i].msg = CTEXT(T_ALSORSTR); d->items[i].wrap = 1; d->items[++i].type = D_BUTTON; /* 25 */ d->items[i].gid = 0; d->items[i].fn = dlg_qsop_method; d->items[i].text = qsop_method_str; d->items[i].msg = CTEXT(T_QP_CALC); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_total_method; d->items[i].text = total_method_str; d->items[i].msg = CTEXT(T_TO_CALC); d->items[i].wrap = 2; firstbandbutt=i+1; /* dbg("firstband=%d\n",i+1);*/ if (!from_ctest){ for (j=0;j<26;j++){ struct config_band *confb; if (j>=cfg->bands->len) break; /* no config file */ confb = (struct config_band*)g_ptr_array_index(cfg->bands,j); if (!confb) break; /* unreached? */ if (!confb->qrvnow) continue; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_band_settings_confb; d->items[i].text = confb->pband; } }else{ for (j=0;jbands->len;j++){ struct band *band; band = (struct band*)g_ptr_array_index(ctest->bands,j); if (!band) break; /* unreached? */ d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_band_settings; d->items[i].text = band->pband; } } /* dbg("lastband=%d\n",i);*/ d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_edi_prop; d->items[i].text = VTEXT(T_EDI_PROP); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = dlg_responsoble_op; d->items[i].text = VTEXT(T_RESPOP2); d->items[i].align = AL_CENTER | AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; dbg("last item=%d\n", i); do_dialog(d, getml(d, NULL)); } void contest_options1_from_menu(void *arg) { time_t now; struct tm utc; time(&now); gmtime_r(&now, &utc); /*dbg("contest_options1\n");*/ safe_strncpy0(tname,"",100); safe_strncpy0(pcall, cfg->pcall, 20);z_str_uc(pcall); safe_strncpy0(pclub, cfg->pclub, 20);z_str_uc(pclub); safe_strncpy0(pwwlo, cfg->pwwlo, 9); z_str_uc(pwwlo); safe_strncpy0(pexch, cfg->pexch, 9); z_str_uc(pexch); g_snprintf(tdate, MAX_STR_LEN, "%d%02d%02d", 1900+utc.tm_year, 1+utc.tm_mon, utc.tm_mday); qsoused=1; safe_strncpy(qsomult_str,"1", 10); qsoglob=0; wwlused=1; safe_strncpy0(wwltype_str, get_text_translation(wwltype_msg[wwlused]),MAX_STR_LEN); safe_strncpy(wwlbonu_str,"0",10); safe_strncpy(wwlmult_str,"0",10); wwlcfm=1; exctype=0; safe_strncpy0(exctype_str,get_text_translation(exctype_msg[exctype]),MAX_STR_LEN); safe_strncpy(excbonu_str,"0",10); safe_strncpy(excmult_str,"0",10); exccfm=1; safe_strncpy(excname, "", 10); safe_strncpy(new_excname, "", 10); safe_strncpy(old_excname, "", 10); excused=0; safe_strncpy(prefmult_str,"0",10); safe_strncpy(dxcbonu_str,"0",10); safe_strncpy(dxcmult_str,"0",10); rstused=1; safe_strncpy0(default_rs, cfg->default_rs, 5); z_str_uc(default_rs); defrstr=0; safe_strncpy0(default_rst, cfg->default_rst, 5); z_str_uc(default_rst); qsop_method=cfg->qsop_method % (MAX_QSOP_METHOD + 1); safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); /*safe_strncpy0(qsop_method_str,qsop_method_msg[qsop_method],MAX_STR_LEN);*/ total_method=cfg->total_method % MAX_TOTAL_METHOD; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); /*safe_strncpy0(total_method_str,total_method_msg[total_method],MAX_STR_LEN);*/ tttype=TT_RSTS; safe_strncpy0(tttype_str,tttype_msg[tttype],MAX_STR_LEN); expmode=0; contest_options1(VTEXT(T_NEW_CTEST), 0, NULL); } void contest_options1_from_ctest(void *arg) { /*dbg("contest_options1\n");*/ safe_strncpy0(tname, ctest->tname,100); safe_strncpy0(pcall, ctest->pcall, 20);z_str_uc(pcall); safe_strncpy0(pclub, ctest->pclub, 20);z_str_uc(pclub); safe_strncpy0(pwwlo, ctest->pwwlo, 9); z_str_uc(pwwlo); safe_strncpy0(pexch, ctest->pexch, 9); z_str_uc(pexch); safe_strncpy0(tdate, "", MAX_STR_LEN); qsoused=ctest->qsoused; g_snprintf(qsomult_str,10, "%d", ctest->qsomult); qsoglob=ctest->qsoglob; wwlused=ctest->wwlused; safe_strncpy0(wwltype_str, get_text_translation(wwltype_msg[wwlused]), MAX_STR_LEN); g_snprintf(wwlbonu_str,10, "%d", ctest->wwlbonu); g_snprintf(wwlmult_str,10, "%d", ctest->wwlmult); wwlcfm=ctest->wwlcfm; exctype=ctest->exctype; safe_strncpy0(exctype_str, get_text_translation(exctype_msg[exctype]), MAX_STR_LEN); safe_strncpy0(excname, ctest->excname, MAX_STR_LEN); safe_strncpy0(new_excname, ctest->excname, MAX_STR_LEN); safe_strncpy0(old_excname, ctest->excname, MAX_STR_LEN); g_snprintf(excbonu_str,10, "%d", ctest->excbonu); g_snprintf(excmult_str,10, "%d", ctest->excmult); exccfm=ctest->exccfm; excused=ctest->excused; g_snprintf(prefmult_str,10, "%d", ctest->prefmult); g_snprintf(dxcbonu_str,10, "%d", ctest->dxcbonu); g_snprintf(dxcmult_str,10, "%d", ctest->dxcmult); rstused=ctest->rstused; safe_strncpy0(default_rs, cfg->default_rs, 5); z_str_uc(default_rs); safe_strncpy0(default_rst, cfg->default_rst, 5); z_str_uc(default_rst); qsop_method=ctest->qsop_method; safe_strncpy0(qsop_method_str,_(CTEXT(T_QP0+qsop_method)),MAX_STR_LEN); total_method=ctest->total_method; safe_strncpy0(total_method_str,_(CTEXT(T_TP0+total_method)),MAX_STR_LEN); defrstr=ctest->defrstr; tttype=ctest->tttype; safe_strncpy0(tttype_str,tttype_msg[tttype],MAX_STR_LEN); expmode=ctest->expmode; contest_options1(VTEXT(T_CONTEST_OP), 1, NULL); /*#ifdef Z_HAVE_SDL maps_reload(); #endif */ } /******************** CONTEST DEFAULTS *******************************/ /* char tname[MAX_STR_LEN],pcall[MAX_STR_LEN],pclub[MAX_STR_LEN]; char pwwlo[MAX_STR_LEN],pexch[MAX_STR_LEN]; char default_rst[MAX_STR_LEN],default_rs[MAX_STR_LEN]; */ char padr1[MAX_STR_LEN],padr2[MAX_STR_LEN]; int global_operator; char dxc_host[MAX_STR_LEN], dxc_port_str[EQSO_LEN]; char dxc_user[MAX_STR_LEN], dxc_pass[MAX_STR_LEN]; char kst_user[MAX_STR_LEN], kst_pass[MAX_STR_LEN], kst_name[MAX_STR_LEN]; char contest_def_is_first = 0; void refresh_contest_def(void *xxx) { int updloc; /* dbg("refresh_contest_def\n");*/ updloc=strcmp(cfg->pwwlo, pwwlo); STORE_STR_UC(cfg,pcall); STORE_STR_UC(cfg,pclub); STORE_STR_UC(cfg,operator_); STORE_INT(cfg, global_operator); STORE_STR_UC(cfg,pwwlo); STORE_STR(cfg,padr1); STORE_STR(cfg,padr2); STORE_STR_UC(cfg,pexch); STORE_STR_UC(cfg,default_rs); STORE_STR_UC(cfg,default_rst); STORE_STR(cfg, dxc_host); STORE_SINT(cfg, dxc_port); STORE_STR(cfg, dxc_user); STORE_STR(cfg, dxc_pass); STORE_STR(cfg, kst_user); STORE_STR(cfg, kst_pass); STORE_STR(cfg, kst_name); if (contest_def_is_first){ g_free(cfg->operator_); cfg->operator_ = g_strdup(pcall); cfg->global_operator = 1; g_free(cfg->dxc_user); cfg->dxc_user = g_strdup(pcall); z_str_lc(cfg->dxc_user); g_free(cfg->kst_user); cfg->kst_user = g_strdup(pcall); z_str_lc(cfg->kst_user); } #ifdef Z_HAVE_SDL if (updloc) maps_reload(); #endif if (first_contest_def){ if (strlen(cfg->pcall)==0 || strlen(cfg->pwwlo)==0){ /* zselect_bh_new(zsel, contest_def, NULL);*/ //zselect_bh_new(zsel, destroy_terminal, NULL); zselect_terminate(zsel); }else{ first_contest_def=0; menu_save_rc(NULL); } } net_send_operator(); net_send_read_write_bands(); net_send_talk(); } int contest_def_language(struct dialog_data *dlgd, struct dialog_item_data *dlgid){ menu_language_list(NULL); return 0; } #ifdef Z_HAVE_SDL int contest_def_plus(struct dialog_data *dlgd, struct dialog_item_data *dlgid){ tsdl_change_font('+'); return 0; } int contest_def_minus(struct dialog_data *dlgd, struct dialog_item_data *dlgid){ tsdl_change_font('-'); return 0; } #endif void contest_def(void *pfirst) { struct dialog *d; int i, first; first = GPOINTER_TO_INT(pfirst); contest_def_is_first = first; if (first) { #ifdef Z_HAVE_SDL zsdl_maximize(zsdl, 1); tsdl_optimal_font(); #endif } safe_strncpy0(pcall,cfg->pcall,MAX_STR_LEN); z_str_uc(pcall); safe_strncpy0(pclub,cfg->pclub,MAX_STR_LEN); z_str_uc(pclub); safe_strncpy0(operator_,cfg->operator_,EQSO_LEN); z_str_uc(operator_); global_operator=cfg->global_operator; #ifdef Z_ANDROID if (first){ double h, w; SDL_ANDROID_GetHW(&h, &w); log_addf("contest_def: h=%f w=%f\n", h, w); if (h > -1000 && h < 1000){ hw2loc(pwwlo, h, w, 6); } }else #endif { safe_strncpy0(pwwlo,cfg->pwwlo,MAX_STR_LEN); z_str_uc(pwwlo); } safe_strncpy0(padr1,cfg->padr1,MAX_STR_LEN); safe_strncpy0(padr2,cfg->padr2,MAX_STR_LEN); safe_strncpy0(pexch,cfg->pexch,MAX_STR_LEN); safe_strncpy0(default_rs, cfg->default_rs,MAX_STR_LEN); z_str_uc(default_rs); safe_strncpy0(default_rst,cfg->default_rst,MAX_STR_LEN); z_str_uc(default_rst); safe_strncpy0(dxc_host, cfg->dxc_host, MAX_STR_LEN); g_snprintf(dxc_port_str, EQSO_LEN, "%d", cfg->dxc_port); safe_strncpy0(dxc_user, cfg->dxc_user, MAX_STR_LEN); safe_strncpy0(dxc_pass, cfg->dxc_pass, MAX_STR_LEN); safe_strncpy0(kst_user, cfg->kst_user, MAX_STR_LEN); safe_strncpy0(kst_pass, cfg->kst_pass, MAX_STR_LEN); safe_strncpy0(kst_name, cfg->kst_name, MAX_STR_LEN); if (!(d = (struct dialog *)g_new0(struct dialog, 30))) return; d->title = CTEXT(T_CTEST_DEF); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_contest_def; d->refresh_data = NULL; d->y0 = 1; i = -1; if (first){ d->title = CTEXT(T_WELCOME); d->items[++i].type = D_TEXT; d->items[i].msg = CTEXT(T_WELCOME1); d->items[i].wrap = 1; d->items[++i].type = D_TEXT; d->items[i].msg = CTEXT(T_WELCOME2); d->items[i].wrap = 2; } d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pcall; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_CALLSIGN2); d->items[i].wrap = 1; if (!first){ d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pclub; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_CLUB); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = operator_; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_OPERATOR); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&global_operator; d->items[i].msg = CTEXT(T_GLOBAL_OPERATOR2); d->items[i].wrap = 1; } d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pwwlo; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_YOURWWL); d->items[i].wrap = 1; if (first){ d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = contest_def_language; d->items[i].text = CTEXT(T_LANGUAGE); d->items[i].wrap = 1; #ifdef Z_HAVE_SDL if (sdl){ d->items[++i].type = D_TEXT; d->items[i].msg = CTEXT(T_FONT_SIZE); d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = contest_def_plus; d->items[i].text = "+"; d->items[++i].type = D_BUTTON; d->items[i].gid = 0; d->items[i].fn = contest_def_minus; d->items[i].text = "-"; d->items[i].wrap = 1; } #endif } if (!first){ d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr1; d->items[i].maxl = 25; d->items[i].msg = CTEXT(T_PADR1); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr2; d->items[i].maxl = 25; d->items[i].msg = CTEXT(T_PADR2); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = pexch; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_YOUREXC); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = default_rs; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_RS); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = default_rst; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_RST); d->items[i].wrap = 2; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = dxc_host; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_DXC_HOSTNAME); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = dxc_port_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 65535; d->items[i].msg = CTEXT(T_TCP_PORT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = dxc_user; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_DXC_USERNAME); d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = dxc_pass; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_PASSWORD); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = kst_user; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_KST_USERNAME); d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = kst_pass; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_PASSWORD); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = kst_name; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_KST_YOURNAME); d->items[i].wrap = 1; } d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = CTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; if (first_contest_def){ d->items[i].fn = ok_dialog; }else{ d->items[i].fn = cancel_dialog; } d->items[i].text = CTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /******************** EDI PROPERTIES *******************************/ /* char padr1[MAX_STR_LEN],padr2[MAX_STR_LEN]; */ void refresh_edi_prop(void *xxx) { /* dbg("refresh_edi_prop\n");*/ STORE_STR(cfg,padr1); STORE_STR(cfg,padr2); } void edi_prop(void *arg) { struct dialog *d; int i; safe_strncpy0(padr1,cfg->padr1,MAX_STR_LEN); safe_strncpy0(padr2,cfg->padr2,MAX_STR_LEN); if (!(d = g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_CTEST_DEF); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_edi_prop; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr1; d->items[i].maxl = 25; d->items[i].msg = CTEXT(T_PADR1); d->items[i].wrap = 1; d->items[i=1].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = padr2; d->items[i].maxl = 25; d->items[i].msg = CTEXT(T_PADR2); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_edi_prop(struct dialog_data *dlg, struct dialog_item_data *di){ edi_prop(NULL); return 0; } tucnak-4.04/src/map.h0000644000175000017500000000645512561146530011401 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __MAP_H #define __MAP_H #include "qrvdb.h" #include "qsodb.h" struct qso; struct band; #define MAP_AC_INFO 1 int sw_map_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_map_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_map_redraw(struct subwin *sw, struct band *band, int flags); void sw_map_check_bounds(struct subwin *sw); void sw_map_raise(struct subwin *sw); int maps_reload(void); void map_clear_qso(struct qso *qso, struct band *band); void map_add_qso(struct qso *qso, struct band *band); #ifdef Z_HAVE_SDL void sw_map_redraw_rect(struct subwin *sw, SDL_Rect *area, struct band *band, int flags); void sw_map_compose(struct subwin *sw, SDL_Rect *area); void sw_map_redraw_rotar(struct subwin *sw, SDL_Rect *area, int flags); void sw_map_redraw_icons(struct subwin *sw, SDL_Rect *area, int flags); void sw_map_update_rotar(struct subwin *sw); void km2px(struct subwin *sw, int kx, int ky, int *px, int *py); void km2px_d(struct subwin *sw, double kx, double ky, int *px, int *py); void px2km(struct subwin *sw, int px, int py, int *kx, int *ky); void pxkm2o(struct subwin *sw, int px, int py, int kx, int ky, int *ox, int *oy); void hw2km(double h1, double w1, double h2, double w2, int *kx, int *ky); void hw2km_d(double h1, double w1, double h2, double w2, double *kx, double *ky); void km2qrbqtf(int kx, int ky, double *qrb, double *qtf); void plot_cor(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, int flags); void plot_qth(struct subwin *sw, SDL_Rect *area); void plot_qrv(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qrv_item *qi); void plot_qrvs(struct subwin *sw, SDL_Surface *surface, struct band *band, SDL_Rect *area); void plot_gst(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, double gst[360], int c); void plot_qso(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qso *qso); void plot_qsos(struct subwin *sw, SDL_Surface *surface, struct band *band, SDL_Rect *area); void plot_nearest_qso(struct subwin *sw, struct band *band); void plot_nearest_qrv(struct subwin *sw, struct band *band); void plot_info_qso(struct subwin *sw, SDL_Surface *surface, struct qso *qso); void plot_info_qrv(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qrv_item *qi); int plot_qrb_qth(struct subwin *sw, SDL_Surface *surface, int mouse_x, int mouse_y); void plot_rotars(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, SDL_Rect *outarea); void map_update_layout(struct subwin *sw); void move_map(struct subwin *sw, struct band *band, int dx, int dy); void zoom(struct subwin *sw, double factor, int centerx, int centery); int map_update_qth(struct subwin *sw); void map_recalc_cors(void); struct qso *find_nearest_qso(struct band *b, int mouse_x, int mouse_y); gchar *find_nearest_qrv(struct qrvdb *qrvdb, struct band *band, int mouse_x, int mouse_y); void map_for_photo(struct subwin *sw, struct band *band, int flags); void map_recalc_gst(struct subwin *sw, struct band *band); void plot_hgts(struct subwin *sw, SDL_Rect *area); #endif #endif tucnak-4.04/src/uhpd.c0000644000175000017500000000303612135555736011560 00000000000000/* uhpd.c - UDP hole punch daemon Copyright (C) 2013 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include #include #include #include #include #include #include #define PORT 7373 #define KEY "uhp" int main(int argc, char *argv[]){ int ret, i, sock; struct sockaddr_in sin; sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if (sock < 0) { perror("socket() failed"); return -1; } memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = htons(7373); ret = bind(sock, (struct sockaddr *)&sin, sizeof(sin)); if (ret < 0) { perror("bind() failed"); return -1; } ret = fork(); if (ret != 0) return 0; // child for (i = 0; i < 10; i++) { if (i != sock) close(i); } while(1){ char buf[2048]; socklen_t slen = sizeof(sin); ret = recvfrom(sock, buf, sizeof(buf), 0, (struct sockaddr*)&sin, &slen); if (ret < strlen(KEY)) continue; if (memcmp(buf, KEY, strlen(KEY)) != 0) continue; sprintf(buf, "%s:%d\r\n", inet_ntoa(sin.sin_addr), (unsigned short)ntohs(sin.sin_port)); ret = sendto(sock, buf, strlen(buf), 0, (struct sockaddr*)&sin, sizeof(sin)); } return 0; } tucnak-4.04/src/masterdb.h0000644000175000017500000000200012125053311012371 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __MASTERDB_H #define __MASTERDB_H #include "header.h" struct masterdb{ ZHashTable *masters; /* key=call, value=name */ }; extern struct masterdb *masterdb; struct masterdb *init_masterdb(void); void free_masterdb(struct masterdb *masterdb); void add_masterdb(struct masterdb *masterdb, gchar *call); gint get_masterdb_size(struct masterdb *masterdb); void load_one_masterdb(struct masterdb *masterdb, gchar *s); int load_masterdb_from_mem(struct masterdb *masterdb, const char *file, const long int len); int load_masterdb_from_file(struct masterdb *masterdb, gchar *filename); void read_masterdb_files(struct masterdb *masterdb); gchar *masterdb_search(struct masterdb *masterdb, char *pattern, int maxreslen); #endif tucnak-4.04/src/namedb.h0000644000175000017500000000210512044234256012035 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __NAMEDB_H #define __NAMEDB_H struct namedb{ GHashTable *names; /* key=rawcall, value=name */ int dirty; //GHashTable *dummy; }; extern struct namedb *namedb; struct namedb *init_namedb(void); void free_namedb(struct namedb *namedb); void read_namedb_files(struct namedb *namedb); gchar *find_name_by_call(struct namedb *namedb, gchar *call); int save_namedb_into_file(struct namedb *namedb, gchar *filename); void add_namedb(struct namedb *namedb, gchar *call, gchar *name); gint get_namedb_size(struct namedb *namedb); int save_namedb(struct namedb *namedb, int verbose); int load_namedb_from_mem(struct namedb *namedb, const char *file, size_t len); int format_namedb_string(struct namedb *namedb, GString *gs); void load_one_namedb(struct namedb *namedb, gchar *s); #endif tucnak-4.04/src/control.c0000644000175000017500000002524612432577575012314 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "control.h" #include "fifo.h" #include "inputln.h" #include "kbd.h" #include "net.h" #include "session.h" #include "terminal.h" static char *strstates[]={"RUN","SP","REQR","REQS","RUNING","GIVEN"}; static char *strccmds[]={"REQ","ACC","REJ","BACK"}; void menu_forcerun(void *arg){ gchar *c; struct band *b; if (!ctest || !aband) return; b=aband; dbg("forcerun (st=%s)\n", strstates[b->ctrlstate]); c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_REJ,gnet->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); b->ctrlstate=CTRL_RUN; redraw_later(); } int can_cq(struct band *b){ if (!b) return 1; /* no contest, no limit */ return (b->ctrlstate&0x01)==0; } int can_tx(struct band *b){ if (!b) return 1; /* no contest, no limit */ return (b->ctrlstate&0x01)==0 || b->ctrlstate==CTRL_GIVEN; } void menu_grabband(void *cba){ gchar *c; struct band *b; int ctx1,ctx2; if (!ctest || !aband) return; b=aband; ctx1=can_cq(b); dbg("grabband (st=%s)\n", strstates[b->ctrlstate]); switch(b->ctrlstate){ /* RUN */ case CTRL_RUN:/* mozna poslat CCMD_REJ, aby S&P vychcipali */ break; case CTRL_REQR: b->ctrlstate=CTRL_GIVEN; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_ACC, b->ctrlsp); dbg(" send %s",c); rel_write_all(c); g_free(c); break; case CTRL_GIVEN: break; /* S&P */ case CTRL_SP: b->ctrlstate=CTRL_REQS; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_REQ, gnet->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); break; case CTRL_REQS: case CTRL_RUNING: /* see ctrl_back */ b->ctrlstate=CTRL_SP; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_BACK, gnet->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); break; } ctx2=can_cq(b); if (ctx1 && !ctx2) rx(); dbg(" (st=%s)\n", strstates[b->ctrlstate]); redraw_later(); } void net_grab(struct band *b, enum ccmd ccmd, gchar *netid){ int ctx1,ctx2; if (!b) return; dbg("net_grab (st=%s, cmd=%s, netid=%s)\n",strstates[b->ctrlstate],strccmds[ccmd], netid); ctx1=can_cq(b); switch(b->ctrlstate){ /* RUN */ case CTRL_RUN: case CTRL_REQR: case CTRL_GIVEN: switch(ccmd){ case CCMD_REQ: b->ctrlstate=CTRL_REQR; zg_free0(b->ctrlsp); b->ctrlsp=g_strdup(netid); break; case CCMD_BACK: b->ctrlstate=CTRL_RUN; break; case CCMD_REJ: /* first "force run mode" */ b->ctrlstate=CTRL_SP; break; default: break; } break; /* S&P */ case CTRL_SP: case CTRL_REQS: case CTRL_RUNING: switch(ccmd){ case CCMD_ACC: if (strcmp(netid,gnet->myid)) { b->ctrlstate=CTRL_SP; /* other S&P become control */ }else{ b->ctrlstate=CTRL_RUNING; } break; case CCMD_REJ: b->ctrlstate=CTRL_SP; break; default: break; } break; } ctx2=can_cq(b); if (ctx1 && !ctx2) rx(); dbg(" (st=%s)\n", strstates[b->ctrlstate]); redraw_later(); } void ctrl_back(struct band *b){ int ctx1,ctx2; gchar *c; if (!b) return; ctx1=can_cq(b); switch(b->ctrlstate){ /* S&P */ case CTRL_SP: case CTRL_REQS: case CTRL_RUNING: /* see menu_grabband/CTRL_RUNING */ b->ctrlstate=CTRL_SP; c=g_strdup_printf("GR %s;%d;%s\n", b->pband, CCMD_BACK, gnet->myid); dbg(" send %s",c); rel_write_all(c); g_free(c); break; default: break; } ctx2=can_cq(b); if (ctx1 && !ctx2) rx(); } void wkd_tmpqso(struct band *band, enum wt_type type, gchar *str){ gchar *c; if (!ctest || !band || !str) return; c=g_strdup_printf("WT %s;%s;%d;%s\n", band->pband, gnet->myid, type, str); /*dbg("%s\n", c);*/ rel_write_all(c); g_free(c); } void peer_tx(struct band *band, int tx){ gchar *c; if (!ctest || !band) return; c=g_strdup_printf("PT %s;%s;%d\n", band->pband, gnet->myid, tx); rel_write_all(c); g_free(c); } /*void menu_spy(void * cba){ if (!ctest || !aband) return; aband->spymode++; if (aband->spymode>=SM_LAST) aband->spymode=SM_INPUTLINE; redraw_later(); } */ void do_endspy(void *arg, void *arg2){ struct spypeer *sp; int i; char *filename; i = GPOINTER_TO_INT(arg); if (i<0 || i>=ctest->spypeers->len) return; sp=(struct spypeer *)g_ptr_array_index(ctest->spypeers, i); free_spypeer(sp); g_ptr_array_remove(ctest->spypeers, sp); filename = g_strdup_printf("%s/spy", ctest->directory); save_spypeers_to_file(filename); g_free(filename); resize_terminal(NULL); } void menu_endspy(void *arg){ int i; struct menu_item *mi = NULL; struct spypeer *sp; if (!ctest) return; if (!ctest->spypeers->len) return; if (!(mi = new_menu(3))) return; for (i=0; ispypeers->len;i++){ gchar *c; sp=(struct spypeer *)g_ptr_array_index(ctest->spypeers, i); c=g_strdup_printf("%-6s %c %s", sp->operator_, sp->bandchar, sp->peerid); add_to_menu(&mi,g_strdup(c),"", "", do_endspy, GINT_TO_POINTER(i), 0); g_free(c); } do_menu_selected(mi, NULL, 0); } void send_inputline(struct band *band){ gchar *c; if (!band) return; c = g_strdup_printf("WI %s;%s;%s\n", band->pband, gnet->myid, band->il->cdata); rel_write_all(c); g_free(c); } void free_spypeer(struct spypeer *sp){ clear_spypeer(sp); zg_free0(sp->peerid); zg_free0(sp->operator_); zg_free0(sp->inputline); g_free(sp); } void free_spypeers(GPtrArray *sps){ int i; if (!sps) return; for (i=0;ilen;i++){ struct spypeer *sp; sp=(struct spypeer *)g_ptr_array_index(sps, i); free_spypeer(sp); } g_ptr_array_free(sps,1); } struct spypeer *init_spypeer(GPtrArray *sps, gchar *peerid, char bandchar){ struct spypeer *sp; char *filename; sp=get_spypeer_by_peerid(sps, peerid, bandchar); if (sp){ g_ptr_array_remove(sps, sp); free_spypeer(sp); } sp=g_new0(struct spypeer, 1); sp->peerid=g_strdup(peerid); sp->bandchar=bandchar; sp->peertx=-1; g_ptr_array_add(sps, sp); filename = g_strdup_printf("%s/spy", ctest->directory); save_spypeers_to_file(filename); g_free(filename); resize_terminal(NULL); return sp; } struct spypeer *get_spypeer_by_peerid(GPtrArray *sps, gchar *peerid, char bandchar){ int i; bandchar=toupper(bandchar); for (i=0;ilen;i++){ struct spypeer *sp; sp=(struct spypeer *)g_ptr_array_index(sps, i); if (strcmp(sp->peerid, peerid)) continue; if (sp->bandchar != bandchar) continue; return sp; } return NULL; } void clear_spypeer(struct spypeer *sp){ zg_free0(sp->callsign); zg_free0(sp->rsts); zg_free0(sp->rstr); zg_free0(sp->qsonrs); zg_free0(sp->qsonrr); zg_free0(sp->exc); zg_free0(sp->locator); zg_free0(sp->remark); } void send_spypeer_request(void *arg){ char *peerid; gchar **items; char bandchar; int i, no; no = GPOINTER_TO_INT(arg); dbg("send_spypeer_request no='%d'\n", no); dbg("bpeers='%s'\n", gnet->bpeers); items = g_strsplit(gnet->bpeers,";",0); /*for (i=0; items[i]!=NULL;i++){ if (i==no) goto found; } */ for (i=0; items[i]!=NULL && items[i+1]!=NULL && items[i+2]!=NULL; i+=3){ dbg("i=%d\n", i); if (i==no*3) goto found; } dbg("not found\n"); goto x; found: dbg("found i=%d, no=%d\n", i, no); peerid=items[i]; bandchar=items[i+2][0]; spypeer_add(peerid, bandchar, 1); x:; g_strfreev(items); } void spypeer_add(char *peerid, char bandchar, int send_request){ struct spypeer *sp; //dbg("spypeer_add: peerid=%s bandchar=%c pband=%s\n", peerid, bandchar, b->pband); sp = init_spypeer(ctest->spypeers, peerid, bandchar); if (send_request) spypeer_send_request(sp); } void spypeer_send_request(struct spypeer *sp){ struct band *b; gchar *c; b = find_band_by_bandchar(sp->bandchar); if (!b){ dbg("band %c not found\n", sp->bandchar); return; } c = g_strdup_printf("RT %s;%s\n", b->pband, sp->peerid); rel_write_all(c); g_free(c); } void spypeer_send_requests(){ int i; for (i=0;ispypeers->len; i++){ struct spypeer *sp; sp = (struct spypeer *)g_ptr_array_index(ctest->spypeers, i); spypeer_send_request(sp); } } int load_spypeers_from_file(char *filename){ FILE *f; gchar *c; GString *gs; gchar **items, *peerid; char bandchar; f=fopen(filename,"rt"); if (!f) return 1; gs = g_string_sized_new(100); while( (c=zfile_fgets(gs, f, 0)) != NULL){ items = g_strsplit(c, ";", 3); if (!items) continue; if (!items[0] || !items[1] || !items[2]) { g_strfreev(items); continue; } peerid=items[0]; bandchar=items[1][0]; spypeer_add(peerid, bandchar, 0); } g_string_free(gs, 1); fclose(f); return 0; } int save_spypeers_to_file(char *filename){ FILE *f; int i; f = fopen(filename, "wt"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } for (i=0;ispypeers->len; i++){ struct spypeer *sp; sp = (struct spypeer *)g_ptr_array_index(ctest->spypeers, i); fprintf(f, "%s;%c;\n", sp->peerid, sp->bandchar); } fclose(f); return 0; } tucnak-4.04/src/wizz.c0000644000175000017500000001214312460207027011606 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "language2.h" #include "main.h" #include "wizz.h" #include "tsdl.h" #define STORE_WIZZ_INT(name) \ else if (strcasecmp(k, #name)==0){ \ wi->name = atoi(item); \ } \ #define STORE_WIZZ_ENUM(name, type) \ else if (strcasecmp(k, #name)==0){ \ wi->name = (type)atoi(item); \ } \ #define STORE_WIZZ_STR(name) \ else if (strcasecmp(k, #name)==0){ \ if (wi->name) g_free(wi->name); \ wi->name = g_strdup(item); \ } \ struct wizz *wizz; struct wizz *init_wizz(void){ struct wizz *wizz; progress(VTEXT(T_INIT_WIZZ)); wizz = g_new0(struct wizz, 1); wizz->items = g_ptr_array_new(); return wizz; }; void free_wizz_item(struct wizz_item *wi){ if (wi->tname) g_free(wi->tname); if (wi->pexch) g_free(wi->pexch); if (wi->excname) g_free(wi->excname); if (wi->bands) g_free(wi->bands); g_free(wi); } void free_wizz(struct wizz *wizz){ int i; struct wizz_item *wi; progress(VTEXT(T_FREE_WIZZ)); for (i=wizz->items->len-1; i>=0; i--){ wi = (struct wizz_item *)g_ptr_array_index(wizz->items, i); free_wizz_item(wi); } g_ptr_array_free(wizz->items, TRUE); /* YES, TRUE */ g_free(wizz); } struct wizz_item *find_wizz(struct wizz *wizz, gchar *str){ struct wizz_item *wi; int i; for (i=0; iitems->len; i++){ wi = (struct wizz_item *)g_ptr_array_index(wizz->items, i); if (!wi->tname) continue; if (strcasecmp(wi->tname, str)==0) return wi; } return NULL; } int load_wizz_from_file(struct wizz *wizz, gchar *filename){ FILE *f; GString *gs; struct wizz_item *wi=NULL; gchar **items, *k, *item; long int pos; f=NULL; pos=0; /*dbg("load_wizz_from_file('%s')\n", filename);*/ if (filename){ f = fopen(filename, "rt"); if (!f) { /* dbg("Can't open '%s'\n", filename);*/ return -1; } } gs = g_string_sized_new(100); while(1){ if (filename){ if (!zfile_fgets(gs, f, 1)) break; }else{ if (!zfile_mgets(gs, txt_tucnakwiz, &pos, sizeof(txt_tucnakwiz), 1)) break; } g_strstrip(gs->str); if (gs->str[0]=='['){ gchar *tname; tname = g_strdup(gs->str+1); if (strlen(tname)>0 && tname[strlen(tname)-1]==']') tname[strlen(tname)-1]='\0'; wi = find_wizz(wizz, tname); if (!wi) { wi = g_new0(struct wizz_item,1); g_ptr_array_add(wizz->items, wi); wi->wwlcfm = 1; wi->exccfm = 1; } /*dbg("BEGIN '%s'\n", gs->str+1);*/ zg_free0(wi->tname); wi->tname = tname; /* dbg(" set tname='%s' \n", tname);*/ continue; } items=g_strsplit(gs->str, "=", 2); if (!items[0] || !items[1]) { g_strfreev(items); continue; } k=items[0]; item=items[1]; /*dbg(" '%s'='%s'\n", k, item);*/ if (strlen(k) > 8 && strncasecmp(k, "qsomult_", 8) == 0){ struct wizz_qsomult_item *wqi = g_new0(struct wizz_qsomult_item, 1); wqi->bandchar = z_char_uc(k[8]); wqi->qsomult = atoi(item); wqi->next = wi->qsomults; wi->qsomults = wqi; } STORE_WIZZ_STR(pexch) STORE_WIZZ_INT(rstused) STORE_WIZZ_INT(qsoused) STORE_WIZZ_INT(qsomult) STORE_WIZZ_INT(qsoglob) STORE_WIZZ_ENUM(tttype, enum tttype) STORE_WIZZ_INT(wwlused) STORE_WIZZ_INT(wwlbonu) STORE_WIZZ_INT(wwlmult) STORE_WIZZ_INT(wwlcfm) STORE_WIZZ_INT(excused) STORE_WIZZ_INT(excbonu) STORE_WIZZ_INT(excmult) STORE_WIZZ_INT(exccfm) STORE_WIZZ_ENUM(exctype, enum exctype) STORE_WIZZ_STR(excname) STORE_WIZZ_INT(rstused) STORE_WIZZ_INT(defrstr) STORE_WIZZ_INT(prefmult) STORE_WIZZ_INT(prefglob) STORE_WIZZ_INT(dxcmult) STORE_WIZZ_INT(dxcbonu) STORE_WIZZ_INT(qsop_method) STORE_WIZZ_INT(total_method) STORE_WIZZ_STR(bands) else{ dbg("!!! unresolved key '%s'\n", k); } g_strfreev(items); } if (filename) fclose(f); g_string_free(gs, 1); return 0; } void read_wizz_files(struct wizz *wizz){ gchar *s; int ret; progress(VTEXT(T_LOAD_WIZZ_DATA)); /* before=sbrk(0);*/ s = g_strconcat(tucnak_dir, "/tucnakwiz", NULL); z_wokna(s); ret=load_wizz_from_file(wizz, s); g_free(s); if (ret<0){ load_wizz_from_file(wizz, NULL); } } struct wizz_item *get_wizz(struct wizz *wizz, int i){ return (struct wizz_item *) g_ptr_array_index(wizz->items, i); } tucnak-4.04/src/kbdbind.h0000644000175000017500000000361212137427521012212 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __KBDBIND_H #define __KBDBIND_H #include "header.h" struct event; #define KM_MAIN 0 #define KM_EDIT 1 #define KM_MENU 2 #define KM_MAX 3 enum { ACT_AC_CQ, ACT_BACKSPACE, ACT_CALLINFO, ACT_CHOP, ACT_CLEAR_TMPQSOS, ACT_CLEAR_TMPQSOS_INPUTLINE, ACT_CONFIRM_CALL, ACT_CONFIRM_EXC, ACT_CONFIRM_WWL, ACT_COPY_CLIPBOARD, ACT_CQ_0, ACT_CQ_1, ACT_CQ_2, ACT_CQ_3, ACT_CQ_4, ACT_CQ_5, ACT_CUT_CLIPBOARD, ACT_DELETE, ACT_DOWN, ACT_END, ACT_ENTER, ACT_ESC, ACT_FILE_MENU, ACT_FIND_NEXT, ACT_FIND_NEXT_BACK, ACT_FULLSCREEN, ACT_GRAB_BAND, ACT_HOME, ACT_INSERT, ACT_KILL_LINE, ACT_KILL_TO_BOL, ACT_KILL_TO_EOL, ACT_LASTCALL_KST, ACT_LEFT, ACT_MAXIMIZE, ACT_MENU, ACT_MODE, ACT_NEXT_HISTORY, ACT_NEXT_SUBWIN, ACT_NEWCALL_KST, ACT_OPEN_NET, ACT_PAGE_DOWN, ACT_PAGE_UP, ACT_PASTE_CLIPBOARD, ACT_PREV_HISTORY, ACT_PREV_SUBWIN, ACT_PLAY_LAST, ACT_QUIT, ACT_REALLYQUIT, ACT_RIGHT, ACT_ROTAR, ACT_RUNMODE, ACT_RX, ACT_RXTX, ACT_SAVE_ALL, /* ACT_SCROLL_DOWN,*/ ACT_SCREENSHOT, ACT_SCROLL_LEFT, ACT_SCROLL_RIGHT, /* ACT_SCROLL_UP,*/ ACT_SEARCH, ACT_SEARCH_BACK, ACT_SEEK_A, ACT_SEEK_B, ACT_SHOW_HISTORY, ACT_SKED, ACT_SKED_QRG, ACT_SWAP_CALL, ACT_SWAP_WWL, /* ACT_TX, */ ACT_TUNE, ACT_UNFINISHED, ACT_UP, ACT_WINDOWSHOT, ACT_ZOOM0, ACT_ZOOMIN, ACT_ZOOMOUT }; void init_keymaps(void); void free_keymaps(void); int kbd_action(int, struct event *); #endif tucnak-4.04/src/hdkeyb.c0000644000175000017500000001440412460207027012053 00000000000000/* hdkeyb.c - routines for hdkeyb control http://ok1zia.nagano.cz/wiki/Hdkeyb Copyright (C) 2010-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fifo.h" #include "hdkeyb.h" #include "language2.h" #include "main.h" #include "rotar.h" #include "sdev.h" #include "terminal.h" #include "tsdl.h" struct hdkeyb *hdkeyb; struct hdkeyb *init_hdkeyb(void){ struct hdkeyb *hdkeyb; progress(VTEXT(T_INIT_ROTAR)); hdkeyb = g_new0(struct hdkeyb, 1); hdkeyb->zhdkeyb = zhdkeyb_init(zsel); hdkeyb_draw_rotars(hdkeyb); return hdkeyb; } void free_hdkeyb(struct hdkeyb *hdkeyb){ if (!hdkeyb) return; progress(VTEXT(T_FREE_ROTAR)); zhdkeyb_free(hdkeyb->zhdkeyb); g_free(hdkeyb); } void hdkeyb_read_handler(int n, char **items){ char *cmd, *key; if (!hdkeyb) return; cmd = items[1]; //dbg("hdkeyb_read_handler rcvd: '%s' cmd='%s'\n", s, cmd); if (strcmp(cmd, "!")==0){ /* error */ log_addf("Hdkeyb error: %s %s", items[2], items[3]); } if (strcasecmp(cmd, "k")==0){ key=items[2]; hdkeyb_key(hdkeyb, key[0]); } redraw_later(); } void hdkeyb_key(struct hdkeyb *hdkeyb, char key){ //dbg("Hdkeyb key='%c'\n", key); int len = strlen(hdkeyb->qtfstr); switch (key){ case 'A': hdkeyb_activate(hdkeyb, 0); return; case 'B': hdkeyb_activate(hdkeyb, 1); return; } if (len == 0){ switch(key){ case 'C': hdkeyb_activate(hdkeyb, 2); return; case 'D': hdkeyb_activate(hdkeyb, 3); return; case '0': case '1': case '2': case '3': hdkeyb->qtfstr[len++] = key; hdkeyb->qtfstr[len] = '\0'; break; case '4': hdkeyb_rel_qtf(hdkeyb, -5); return; case '6': hdkeyb_rel_qtf(hdkeyb, +5); return; case '7': hdkeyb_rel_qtf(hdkeyb, -10); return; case '9': hdkeyb_rel_qtf(hdkeyb, +10); return; case '*': hdkeyb_rel_qtf(hdkeyb, -2); return; case '#': hdkeyb_rel_qtf(hdkeyb, +2); return; } }else{ switch(key){ case 'C': hdkeyb->qtfstr[len - 1] = '\0'; return; case 'D': hdkeyb_set_qtf(hdkeyb); return; } if (key >= '0' && key <= '9'){ hdkeyb->qtfstr[len++] = key; hdkeyb->qtfstr[len] = '\0'; } } len = strlen(hdkeyb->qtfstr); if (len == 3) hdkeyb_set_qtf(hdkeyb); hdkeyb_draw_rotar(hdkeyb, hdkeyb->actnr); } void hdkeyb_activate(struct hdkeyb *hdkeyb, int nr){ int oldnr; dbg("hdkeyb_activate(%d) old=%d\n", nr, hdkeyb->actnr); oldnr = hdkeyb->actnr; hdkeyb->actnr = nr; hdkeyb_draw_rotar(hdkeyb, oldnr); hdkeyb_draw_rotar(hdkeyb, nr); hdkeyb->qtfstr[0] = '\0'; } void hdkeyb_set_qtf(struct hdkeyb *hdkeyb){ struct rotar *rot; int qtf; rot = get_rotar(hdkeyb->actnr); if (rot){ qtf = atoi(hdkeyb->qtfstr); rot_seek(rot, qtf); dbg("******** rot_seek(%c, %d, %03d)\n", rot->rotchar, rot->sdev->saddr, qtf); } strcpy(hdkeyb->qtfstr, ""); } void hdkeyb_rel_qtf(struct hdkeyb *hdkeyb, int rel){ struct rotar *rot; int qtf; rot = get_rotar(hdkeyb->actnr); if (!rot) return; qtf = rot->qtf + rel; rot_seek(rot, qtf); } void hdkeyb_draw_rotar(struct hdkeyb *hdkeyb, int nr){ int li, co; struct rotar *rot; if (!hdkeyb) return; rot = get_rotar(nr); if (!rot) return; li = nr / 2; co = (nr % 2) * Z_HDKEYB_CHARS / 2; // dbg("nr=%d li=%d co=%d\n", nr, li, co); if (nr == hdkeyb->actnr){ if (strlen(hdkeyb->qtfstr) > 0){ zhdkeyb_printf(hdkeyb->zhdkeyb, li, co, "\x02%c%3s\x01\x03", 'A' + nr, hdkeyb->qtfstr); }else{ zhdkeyb_printf(hdkeyb->zhdkeyb, li, co, "\x02%c%03d\x01\x03", 'A' + nr, rot->qtf); } }else{ zhdkeyb_printf(hdkeyb->zhdkeyb, li, co, " %c%03d\x01 ", 'A' + nr, rot->qtf); } } void hdkeyb_draw_rotars(struct hdkeyb *hdkeyb){ int i; // return; for (i=0; i < Z_HDKEYB_LINES * 2; i++) hdkeyb_draw_rotar(hdkeyb, i); //hdkeyb_dump_vrams(hdkeyb); } #if 0 int hdkeyb_test(void){ struct hdkeyb *hdkeyb; int i; dbg("\n\n\n"); hdkeyb = init_hdkeyb(); if (!hdkeyb) { error("init_hdkeyb() failed\n"); return -1; } hdkeyb_setdir(hdkeyb); hdkeyb_reset(hdkeyb); usleep(300000); /*// dbg("1 %x\n", hdkeyb->rd); hdkeyb->wr = 0x55; WRITE; // dbg("2 %x\n", hdkeyb->rd); hdkeyb->wr = 0xaa; WRITE; // dbg("3 %x\n", hdkeyb->rd); READ; // dbg("4 %x\n", hdkeyb->rd); READ; READ; // dbg("5 %x\n", hdkeyb->rd); hdkeyb_free(hdkeyb); */ /* while(1){ int a= hdkeyb_key(hdkeyb); if (a==0) continue; dbg("%c\n", a); } */ // gst_start(); // hdkeyb_print2(hdkeyb, 0, "ABC"); char ss[50]; strcpy(ss, ""); for (i=0; i<100000000; i++){ char s[50]; sprintf(s, "jedeme %d", i); hdkeyb_setdir(hdkeyb); hdkeyb_print(hdkeyb, 80, s); int a= hdkeyb_key(hdkeyb); if (a==0) continue; if (a==-1) continue; dbg("%d\n", a); switch(a){ case 'C': if (strlen(ss)==0) break; ss[strlen(ss)-1]='\0'; break; default: if (strlen(ss)==15) break; ss[strlen(ss)+1]='\0'; ss[strlen(ss)]=a; break; } sprintf(s, "%-16s", ss); hdkeyb_print(hdkeyb, 16, s); } // gst_stop(); return 0; } #endif tucnak-4.04/src/rc.c0000644000175000017500000025762412534322227011230 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "cwdaemon.h" #include "dsp.h" #include "fifo.h" #include "qsodb.h" #include "main.h" #include "rc.h" #include "rotar.h" #include "trig.h" #include "tsdl.h" #include "session.h" #include "subwin.h" struct config *cfg; int opt_g=0, opt_i=0, opt_m=0, opt_s=0, opt_t=0, debug_keyboard=0, opt_x=0; long long tl; enum { SYMBOL_OBSOLETE = G_TOKEN_LAST + 10000, SYMBOL_MY_FIRST = G_TOKEN_LAST + 1, SYMBOL_PCALL = G_TOKEN_LAST + 1, SYMBOL_PWWLO = G_TOKEN_LAST + 2, SYMBOL_PEXCH = G_TOKEN_LAST + 3, SYMBOL_PADR1 = G_TOKEN_LAST + 4, SYMBOL_PADR2 = G_TOKEN_LAST + 5, SYMBOL_PCLUB = G_TOKEN_LAST + 6, SYMBOL_RNAME = G_TOKEN_LAST + 7, SYMBOL_RCALL = G_TOKEN_LAST + 8, SYMBOL_RADR1 = G_TOKEN_LAST + 9, SYMBOL_RADR2 = G_TOKEN_LAST + 10, SYMBOL_RPOCO = G_TOKEN_LAST + 11, SYMBOL_RCITY = G_TOKEN_LAST + 12, SYMBOL_RCOUN = G_TOKEN_LAST + 13, SYMBOL_RPHON = G_TOKEN_LAST + 14, SYMBOL_RHBBS = G_TOKEN_LAST + 15, SYMBOL_RS = G_TOKEN_LAST + 16, SYMBOL_RST = G_TOKEN_LAST + 17, SYMBOL_QSOP_M = G_TOKEN_LAST + 18, SYMBOL_TOTAL_M = G_TOKEN_LAST + 19, SYMBOL_CQ = G_TOKEN_LAST + 20, SYMBOL_CW_STR = G_TOKEN_LAST + 21, SYMBOL_CW_SPEED = G_TOKEN_LAST + 22, SYMBOL_CW_REPEAT = G_TOKEN_LAST + 23, SYMBOL_CW_TS = G_TOKEN_LAST + 24, SYMBOL_CW_ALLOWUND = G_TOKEN_LAST + 25, SYMBOL_SSB_FILE = G_TOKEN_LAST + 26, SYMBOL_SSB_TS = G_TOKEN_LAST + 27, SYMBOL_SSB_REPEAT = G_TOKEN_LAST + 28, SYMBOL_STARTBAND = G_TOKEN_LAST + 30, SYMBOL_PBAND = G_TOKEN_LAST + 31, SYMBOL_BANDCHAR = G_TOKEN_LAST + 32, SYMBOL_QRV = G_TOKEN_LAST + 33, SYMBOL_READONLY = G_TOKEN_LAST + 34, SYMBOL_PSECT = G_TOKEN_LAST + 35, SYMBOL_STXEQ = G_TOKEN_LAST + 36, SYMBOL_SPOWE = G_TOKEN_LAST + 37, SYMBOL_SRXEQ = G_TOKEN_LAST + 38, SYMBOL_SANTE = G_TOKEN_LAST + 39, SYMBOL_SANTH = G_TOKEN_LAST + 40, SYMBOL_MOPE1 = G_TOKEN_LAST + 41, SYMBOL_MOPE2 = G_TOKEN_LAST + 42, SYMBOL_REMARKS = G_TOKEN_LAST + 43, SYMBOL_OK_SECTION_SINGLE = G_TOKEN_LAST + 44, SYMBOL_OK_SECTION_MULTI = G_TOKEN_LAST + 45, SYMBOL_ADIFBAND = G_TOKEN_LAST + 46, SYMBOL_CBRBAND = G_TOKEN_LAST + 47, SYMBOL_QRG_MIN = G_TOKEN_LAST + 48, SYMBOL_QRG_MAX = G_TOKEN_LAST + 49, SYMBOL_BANDMULTI = G_TOKEN_LAST + 50, SYMBOL_SKEDQRG = G_TOKEN_LAST + 51, SYMBOL_BAND_LO = G_TOKEN_LAST + 52, SYMBOL_BAND_SW = G_TOKEN_LAST + 53, SYMBOL_OPSECT = G_TOKEN_LAST + 54, SYMBOL_AS_DAQ = G_TOKEN_LAST + 60, SYMBOL_AS_DAM = G_TOKEN_LAST + 61, SYMBOL_AS_DFS = G_TOKEN_LAST + 62, SYMBOL_AS_FAQ = G_TOKEN_LAST + 63, SYMBOL_AS_FAM = G_TOKEN_LAST + 64, SYMBOL_AS_FFS = G_TOKEN_LAST + 65, SYMBOL_AS_FMO = G_TOKEN_LAST + 66, SYMBOL_AS_FPA = G_TOKEN_LAST + 67, SYMBOL_AS_FMC = G_TOKEN_LAST + 68, SYMBOL_IF_IGNORE = G_TOKEN_LAST + 70, SYMBOL_IP_IGNORE = G_TOKEN_LAST + 71, SYMBOL_IP_ANNOUNCE = G_TOKEN_LAST + 72, SYMBOL_REMOTE_ENABLE = G_TOKEN_LAST + 73, SYMBOL_REMOTE_HOST = G_TOKEN_LAST + 74, SYMBOL_REMOTE_PORT = G_TOKEN_LAST + 75, SYMBOL_REMOTE_PASS = G_TOKEN_LAST + 76, SYMBOL_MASTERPRIORITY = G_TOKEN_LAST + 77, SYMBOL_TRACE_BCAST = G_TOKEN_LAST + 78, SYMBOL_TRACE_SOCK = G_TOKEN_LAST + 79, SYMBOL_TRACE_RECV = G_TOKEN_LAST + 80, SYMBOL_TRACE_SEND = G_TOKEN_LAST + 81, SYMBOL_TRACE_QSOS = G_TOKEN_LAST + 82, SYMBOL_TRACE_RIG = G_TOKEN_LAST + 83, SYMBOL_TRACE_SDEV = G_TOKEN_LAST + 84, SYMBOL_TRACE_KEYS = G_TOKEN_LAST + 85, SYMBOL_LANGUAGE = G_TOKEN_LAST + 86, SYMBOL_CWDA_TYPE = G_TOKEN_LAST + 90, SYMBOL_CWDA_DEVICE = G_TOKEN_LAST + 91, SYMBOL_CWDA_HOST = G_TOKEN_LAST + 92, SYMBOL_CWDA_UDP = G_TOKEN_LAST + 93, SYMBOL_CWDA_IOPORT = G_TOKEN_LAST + 94, SYMBOL_CWDA_SPEED = G_TOKEN_LAST + 95, SYMBOL_CWDA_WEIGHT = G_TOKEN_LAST + 96, SYMBOL_CWDA_MINWPM = G_TOKEN_LAST + 97, SYMBOL_CWDA_MAXWPM = G_TOKEN_LAST + 98, SYMBOL_CWDA_SPK = G_TOKEN_LAST + 99, SYMBOL_CWDA_LEADIN = G_TOKEN_LAST + 100, SYMBOL_CWDA_VID = G_TOKEN_LAST + 101, SYMBOL_CWDA_PID = G_TOKEN_LAST + 102, SYMBOL_CWDA_AUTGIVE = G_TOKEN_LAST + 103, SYMBOL_WK_WK2 = G_TOKEN_LAST + 104, SYMBOL_WK_USEPOT = G_TOKEN_LAST + 105, SYMBOL_WK_USEBUT = G_TOKEN_LAST + 106, SYMBOL_WK_KEYMODE = G_TOKEN_LAST + 107, SYMBOL_WK_SWAP = G_TOKEN_LAST + 108, SYMBOL_SSBD_TYPE = G_TOKEN_LAST + 110, SYMBOL_SSBD_RECORD = G_TOKEN_LAST + 111, SYMBOL_SSBD_MAXMIN = G_TOKEN_LAST + 112, SYMBOL_SSBD_DISKFREE = G_TOKEN_LAST + 113, SYMBOL_SSBD_FORMAT = G_TOKEN_LAST + 114, SYMBOL_SSBD_CHANNELS = G_TOKEN_LAST + 115, SYMBOL_SSBD_SAMPLERATE = G_TOKEN_LAST + 116, SYMBOL_SSBD_PLEV = G_TOKEN_LAST + 117, SYMBOL_SSBD_RLEV = G_TOKEN_LAST + 118, SYMBOL_SSBD_TEMPLATE = G_TOKEN_LAST + 119, SYMBOL_SSBD_PCM_PLAY = G_TOKEN_LAST + 120, SYMBOL_SSBD_PCM_REC = G_TOKEN_LAST + 121, SYMBOL_SSBD_PERIOD_T = G_TOKEN_LAST + 122, SYMBOL_SSBD_BUFFER_T = G_TOKEN_LAST + 123, SYMBOL_SSBD_ALSA_MIXER = G_TOKEN_LAST + 124, SYMBOL_SSBD_ALSA_SRC = G_TOKEN_LAST + 125, SYMBOL_SSBD_DSP = G_TOKEN_LAST + 126, SYMBOL_SSBD_MAXFRAG = G_TOKEN_LAST + 127, SYMBOL_SSBD_MIXER = G_TOKEN_LAST + 128, SYMBOL_SSBD_OSS_SRC = G_TOKEN_LAST + 129, SYMBOL_SSBD_RECSRC = G_TOKEN_LAST + 130, SYMBOL_SSBD_HOST = G_TOKEN_LAST + 131, SYMBOL_SSBD_UDP = G_TOKEN_LAST + 132, SYMBOL_SSBD_PA_PLAY = G_TOKEN_LAST + 133, SYMBOL_SSBD_PA_REC = G_TOKEN_LAST + 134, SYMBOL_SSBD_PIPE = G_TOKEN_LAST + 135, SYMBOL_SSBD_COMMAND = G_TOKEN_LAST + 136, SYMBOL_TERM = G_TOKEN_LAST + 140, SYMBOL_TERM_MODE = G_TOKEN_LAST + 141, SYMBOL_TERM_M11_HACK = G_TOKEN_LAST + 142, SYMBOL_TERM_RESTRICT_852 = G_TOKEN_LAST + 143, SYMBOL_TERM_BLOCK_CURSOR = G_TOKEN_LAST + 144, SYMBOL_TERM_COL = G_TOKEN_LAST + 145, SYMBOL_TERM_UTF_8_IO = G_TOKEN_LAST + 146, SYMBOL_TERM_CHARSET = G_TOKEN_LAST + 147, SYMBOL_ROTAR = G_TOKEN_LAST + 150, SYMBOL_ROT_DESC = G_TOKEN_LAST + 151, SYMBOL_ROT_TYPE = G_TOKEN_LAST + 152, SYMBOL_ROT_FILENAME = G_TOKEN_LAST + 153, SYMBOL_ROT_HOSTNAME = G_TOKEN_LAST + 154, SYMBOL_ROT_PORT = G_TOKEN_LAST + 155, SYMBOL_ROT_VID = G_TOKEN_LAST + 156, SYMBOL_ROT_PID = G_TOKEN_LAST + 157, SYMBOL_ROT_SERIAL = G_TOKEN_LAST + 158, SYMBOL_ROT_TIMEOUT_MS = G_TOKEN_LAST + 159, SYMBOL_ROT_BEAMWIDTH = G_TOKEN_LAST + 160, SYMBOL_ROT_SADDR = G_TOKEN_LAST + 161, SYMBOL_ROT_MODEL = G_TOKEN_LAST + 162, SYMBOL_ROT_REM_ROTSTR = G_TOKEN_LAST + 163, SYMBOL_ROT_POLL_MS = G_TOKEN_LAST + 164, SYMBOL_SW = G_TOKEN_LAST + 170, SYMBOL_SW_TYPE = G_TOKEN_LAST + 171, SYMBOL_SW_COMMAND = G_TOKEN_LAST + 172, SYMBOL_SW_AUTORUN = G_TOKEN_LAST + 173, SYMBOL_SW_RESPAWN_TIME = G_TOKEN_LAST + 174, SYMBOL_RIG = G_TOKEN_LAST + 180, SYMBOL_RIG_ENABLED = G_TOKEN_LAST + 181, SYMBOL_RIG_DESC = G_TOKEN_LAST + 182, SYMBOL_RIG_FILENAME = G_TOKEN_LAST + 183, SYMBOL_RIG_MODEL = G_TOKEN_LAST + 184, SYMBOL_RIG_SPEED = G_TOKEN_LAST + 185, SYMBOL_RIG_CIVADDR = G_TOKEN_LAST + 186, SYMBOL_RIG_LO = G_TOKEN_LAST + 187, SYMBOL_RIG_SSBCW_SHIFT = G_TOKEN_LAST + 188, SYMBOL_RIG_POLL_MS = G_TOKEN_LAST + 189, SYMBOL_RIG_QRG_R2T = G_TOKEN_LAST + 190, SYMBOL_RIG_QRG_T2R = G_TOKEN_LAST + 191, SYMBOL_RIG_MODE_T2R = G_TOKEN_LAST + 192, SYMBOL_RIG_CLR_RIT = G_TOKEN_LAST + 193, SYMBOL_RIG_PTT_T2R = G_TOKEN_LAST + 194, SYMBOL_RIG_VERBOSE = G_TOKEN_LAST + 195, SYMBOL_LOGLINES = G_TOKEN_LAST + 200, SYMBOL_SKEDCOUNT = G_TOKEN_LAST + 202, SYMBOL_TAKEOFF = G_TOKEN_LAST + 203, SYMBOL_OPERATOR = G_TOKEN_LAST + 204, SYMBOL_GLOBAL_OPERATOR = G_TOKEN_LAST + 205, SYMBOL_GFX_X = G_TOKEN_LAST + 206, SYMBOL_GFX_Y = G_TOKEN_LAST + 207, SYMBOL_FONTHEIGHT = G_TOKEN_LAST + 208, SYMBOL_SLASHKEY = G_TOKEN_LAST + 209, SYMBOL_NTPQ = G_TOKEN_LAST + 210, SYMBOL_DSSAVER = G_TOKEN_LAST + 211, SYMBOL_SPLITHEIGHT = G_TOKEN_LAST + 212, SYMBOL_FULLSCREEN = G_TOKEN_LAST + 213, SYMBOL_MAXIMIZED = G_TOKEN_LAST + 214, SYMBOL_USETOUCH = G_TOKEN_LAST + 215, SYMBOL_TOUCHPOS = G_TOKEN_LAST + 216, SYMBOL_ALTSYMS = G_TOKEN_LAST + 217, SYMBOL_NOLOCKS = G_TOKEN_LAST + 218, SYMBOL_PORTRAIT = G_TOKEN_LAST + 219, SYMBOL_REVERSE = G_TOKEN_LAST + 220, SYMBOL_DXC_HOST = G_TOKEN_LAST + 230, SYMBOL_DXC_PORT = G_TOKEN_LAST + 231, SYMBOL_DXC_USER = G_TOKEN_LAST + 232, SYMBOL_DXC_PASS = G_TOKEN_LAST + 233, SYMBOL_KST_USER = G_TOKEN_LAST + 234, SYMBOL_KST_PASS = G_TOKEN_LAST + 235, SYMBOL_KST_NAME = G_TOKEN_LAST + 236, SYMBOL_HTTPD_ENABLE = G_TOKEN_LAST + 240, SYMBOL_HTTPD_PORT = G_TOKEN_LAST + 241, SYMBOL_HTTPD_SHOW_PRIV = G_TOKEN_LAST + 242, SYMBOL_AC_ENABLE = G_TOKEN_LAST + 250, SYMBOL_AC_URL = G_TOKEN_LAST + 251, SYMBOL_AC_KFACTOR = G_TOKEN_LAST + 252, SYMBOL_AC_ARWIDTH = G_TOKEN_LAST + 253, SYMBOL_AC_MINELEV = G_TOKEN_LAST + 254, SYMBOL_AC_MAXELEV = G_TOKEN_LAST + 255, SYMBOL_AC_MINDUR = G_TOKEN_LAST + 256, SYMBOL_AC_MAXDELTA = G_TOKEN_LAST + 257, SYMBOL_AC_MINALT = G_TOKEN_LAST + 258, SYMBOL_SDR_ENABLE = G_TOKEN_LAST + 260, SYMBOL_SDR_CW = G_TOKEN_LAST + 261, SYMBOL_SDR_LSB = G_TOKEN_LAST + 262, SYMBOL_SDR_SPEED = G_TOKEN_LAST + 263, SYMBOL_SDR_AF_SPEED = G_TOKEN_LAST + 264, SYMBOL_SDR_BLOCK = G_TOKEN_LAST + 265, SYMBOL_SDR_ZERO = G_TOKEN_LAST + 266, SYMBOL_SDR_CW_LOW = G_TOKEN_LAST + 267, SYMBOL_SDR_CW_HIGH = G_TOKEN_LAST + 268, SYMBOL_SDR_SSB_LOW = G_TOKEN_LAST + 269, SYMBOL_SDR_SSB_HIGH = G_TOKEN_LAST + 270, SYMBOL_SDR_REC_DSP_TYPE = G_TOKEN_LAST + 271, SYMBOL_SDR_PLAY_DSP_TYPE = G_TOKEN_LAST + 272, SYMBOL_SDR_PA_REC = G_TOKEN_LAST + 273, SYMBOL_SDR_PA_PLAY = G_TOKEN_LAST + 274, SYMBOL_SDR_PCM_REC = G_TOKEN_LAST + 275, SYMBOL_SDR_PCM_PLAY = G_TOKEN_LAST + 276, SYMBOL_SDR_SNDFILENAME = G_TOKEN_LAST + 277, SYMBOL_WIKI_URL = G_TOKEN_LAST + 290, SYMBOL_WIKI_USER = G_TOKEN_LAST + 291, SYMBOL_WIKI_PASS = G_TOKEN_LAST + 292, //SYMBOL_WIKI_PAGE = G_TOKEN_LAST + 293, SYMBOL_WIKI_MAP = G_TOKEN_LAST + 294, SYMBOL_WIKI_CHART = G_TOKEN_LAST + 295, //SYMBOL_WIKI_OVERWRITE = G_TOKEN_LAST + 296, SYMBOL_MY_LAST = G_TOKEN_LAST + 297 }; void add_symbols(GScanner *scanner){ g_scanner_add_symbol(scanner,"pcall",GINT_TO_POINTER(SYMBOL_PCALL)); g_scanner_add_symbol(scanner,"pwwlo",GINT_TO_POINTER(SYMBOL_PWWLO)); g_scanner_add_symbol(scanner,"pexch",GINT_TO_POINTER(SYMBOL_PEXCH)); g_scanner_add_symbol(scanner,"padr1",GINT_TO_POINTER(SYMBOL_PADR1)); g_scanner_add_symbol(scanner,"padr2",GINT_TO_POINTER(SYMBOL_PADR2)); g_scanner_add_symbol(scanner,"pclub",GINT_TO_POINTER(SYMBOL_PCLUB)); g_scanner_add_symbol(scanner,"rname",GINT_TO_POINTER(SYMBOL_RNAME)); g_scanner_add_symbol(scanner,"rcall",GINT_TO_POINTER(SYMBOL_RCALL)); g_scanner_add_symbol(scanner,"radr1",GINT_TO_POINTER(SYMBOL_RADR1)); g_scanner_add_symbol(scanner,"radr2",GINT_TO_POINTER(SYMBOL_RADR2)); g_scanner_add_symbol(scanner,"rpoco",GINT_TO_POINTER(SYMBOL_RPOCO)); g_scanner_add_symbol(scanner,"rcity",GINT_TO_POINTER(SYMBOL_RCITY)); g_scanner_add_symbol(scanner,"rcoun",GINT_TO_POINTER(SYMBOL_RCOUN)); g_scanner_add_symbol(scanner,"rphon",GINT_TO_POINTER(SYMBOL_RPHON)); g_scanner_add_symbol(scanner,"rhbbs",GINT_TO_POINTER(SYMBOL_RHBBS)); g_scanner_add_symbol(scanner,"default_rs", GINT_TO_POINTER(SYMBOL_RS)); g_scanner_add_symbol(scanner,"default_rst", GINT_TO_POINTER(SYMBOL_RST)); g_scanner_add_symbol(scanner,"qsop_method", GINT_TO_POINTER(SYMBOL_QSOP_M)); g_scanner_add_symbol(scanner,"total_method",GINT_TO_POINTER(SYMBOL_TOTAL_M)); g_scanner_add_symbol(scanner,"cq", GINT_TO_POINTER(SYMBOL_CQ)); g_scanner_add_symbol(scanner,"cw_str", GINT_TO_POINTER(SYMBOL_CW_STR)); g_scanner_add_symbol(scanner,"cw_speed", GINT_TO_POINTER(SYMBOL_CW_SPEED)); g_scanner_add_symbol(scanner,"cw_repeat", GINT_TO_POINTER(SYMBOL_CW_REPEAT)); g_scanner_add_symbol(scanner,"cw_ts", GINT_TO_POINTER(SYMBOL_CW_TS)); g_scanner_add_symbol(scanner,"cw_allowifundef", GINT_TO_POINTER(SYMBOL_CW_ALLOWUND)); g_scanner_add_symbol(scanner,"ssb_file", GINT_TO_POINTER(SYMBOL_SSB_FILE)); g_scanner_add_symbol(scanner,"ssb_ts", GINT_TO_POINTER(SYMBOL_SSB_TS)); g_scanner_add_symbol(scanner,"ssb_repeat", GINT_TO_POINTER(SYMBOL_SSB_REPEAT)); g_scanner_add_symbol(scanner,"startband", GINT_TO_POINTER(SYMBOL_STARTBAND)); g_scanner_add_symbol(scanner,"pband", GINT_TO_POINTER(SYMBOL_PBAND)); g_scanner_add_symbol(scanner,"bandchar",GINT_TO_POINTER(SYMBOL_BANDCHAR)); g_scanner_add_symbol(scanner,"qrv", GINT_TO_POINTER(SYMBOL_QRV)); g_scanner_add_symbol(scanner,"readonly",GINT_TO_POINTER(SYMBOL_READONLY)); g_scanner_add_symbol(scanner,"psect",GINT_TO_POINTER(SYMBOL_PSECT)); g_scanner_add_symbol(scanner,"stxeq",GINT_TO_POINTER(SYMBOL_STXEQ)); g_scanner_add_symbol(scanner,"spowe",GINT_TO_POINTER(SYMBOL_SPOWE)); g_scanner_add_symbol(scanner,"srxeq",GINT_TO_POINTER(SYMBOL_SRXEQ)); g_scanner_add_symbol(scanner,"sante",GINT_TO_POINTER(SYMBOL_SANTE)); g_scanner_add_symbol(scanner,"santh",GINT_TO_POINTER(SYMBOL_SANTH)); g_scanner_add_symbol(scanner,"mope1",GINT_TO_POINTER(SYMBOL_MOPE1)); g_scanner_add_symbol(scanner,"mope2",GINT_TO_POINTER(SYMBOL_MOPE2)); g_scanner_add_symbol(scanner,"remarks",GINT_TO_POINTER(SYMBOL_REMARKS)); g_scanner_add_symbol(scanner,"ok_section_single",GINT_TO_POINTER(SYMBOL_OK_SECTION_SINGLE)); g_scanner_add_symbol(scanner,"ok_section_multi", GINT_TO_POINTER(SYMBOL_OK_SECTION_MULTI)); g_scanner_add_symbol(scanner,"adifband", GINT_TO_POINTER(SYMBOL_ADIFBAND)); g_scanner_add_symbol(scanner,"cbrband", GINT_TO_POINTER(SYMBOL_CBRBAND)); g_scanner_add_symbol(scanner,"qrg_min", GINT_TO_POINTER(SYMBOL_QRG_MIN)); g_scanner_add_symbol(scanner,"qrg_max", GINT_TO_POINTER(SYMBOL_QRG_MAX)); g_scanner_add_symbol(scanner,"bandmulti", GINT_TO_POINTER(SYMBOL_BANDMULTI)); g_scanner_add_symbol(scanner,"skedqrg", GINT_TO_POINTER(SYMBOL_SKEDQRG)); g_scanner_add_symbol(scanner,"band_lo", GINT_TO_POINTER(SYMBOL_BAND_LO)); g_scanner_add_symbol(scanner,"band_sw", GINT_TO_POINTER(SYMBOL_BAND_SW)); g_scanner_add_symbol(scanner,"opsect", GINT_TO_POINTER(SYMBOL_OPSECT)); g_scanner_add_symbol(scanner,"as_disk_qso", GINT_TO_POINTER(SYMBOL_AS_DAQ)); g_scanner_add_symbol(scanner,"as_disk_min", GINT_TO_POINTER(SYMBOL_AS_DAM)); g_scanner_add_symbol(scanner,"as_disk_fsync", GINT_TO_POINTER(SYMBOL_AS_DFS)); g_scanner_add_symbol(scanner,"as_floppy_qso", GINT_TO_POINTER(SYMBOL_AS_FAQ)); g_scanner_add_symbol(scanner,"as_floppy_min", GINT_TO_POINTER(SYMBOL_AS_FAM)); g_scanner_add_symbol(scanner,"as_floppy_fsync", GINT_TO_POINTER(SYMBOL_AS_FFS)); g_scanner_add_symbol(scanner,"as_mount_floppy", GINT_TO_POINTER(SYMBOL_AS_FMO)); g_scanner_add_symbol(scanner,"as_floppy_path", GINT_TO_POINTER(SYMBOL_AS_FPA)); g_scanner_add_symbol(scanner,"as_mount_cmd", GINT_TO_POINTER(SYMBOL_AS_FMC)); g_scanner_add_symbol(scanner,"net_if_ignore", GINT_TO_POINTER(SYMBOL_IF_IGNORE)); g_scanner_add_symbol(scanner,"net_ip_ignore", GINT_TO_POINTER(SYMBOL_IP_IGNORE)); g_scanner_add_symbol(scanner,"net_ip_announce", GINT_TO_POINTER(SYMBOL_IP_ANNOUNCE)); g_scanner_add_symbol(scanner,"net_remote_enable", GINT_TO_POINTER(SYMBOL_REMOTE_ENABLE)); g_scanner_add_symbol(scanner,"net_remote_host", GINT_TO_POINTER(SYMBOL_REMOTE_HOST)); g_scanner_add_symbol(scanner,"net_remote_port", GINT_TO_POINTER(SYMBOL_REMOTE_PORT)); g_scanner_add_symbol(scanner,"net_remote_pass", GINT_TO_POINTER(SYMBOL_REMOTE_PASS)); g_scanner_add_symbol(scanner,"net_masterpriority", GINT_TO_POINTER(SYMBOL_MASTERPRIORITY)); g_scanner_add_symbol(scanner,"trace_bcast", GINT_TO_POINTER(SYMBOL_TRACE_BCAST)); g_scanner_add_symbol(scanner,"trace_sock", GINT_TO_POINTER(SYMBOL_TRACE_SOCK)); g_scanner_add_symbol(scanner,"trace_recv", GINT_TO_POINTER(SYMBOL_TRACE_RECV)); g_scanner_add_symbol(scanner,"trace_send", GINT_TO_POINTER(SYMBOL_TRACE_SEND)); g_scanner_add_symbol(scanner,"trace_qsos", GINT_TO_POINTER(SYMBOL_TRACE_QSOS)); g_scanner_add_symbol(scanner,"trace_rig", GINT_TO_POINTER(SYMBOL_TRACE_RIG)); g_scanner_add_symbol(scanner,"trace_sdev", GINT_TO_POINTER(SYMBOL_TRACE_SDEV)); g_scanner_add_symbol(scanner,"trace_keys", GINT_TO_POINTER(SYMBOL_TRACE_KEYS)); g_scanner_add_symbol(scanner,"language", GINT_TO_POINTER(SYMBOL_LANGUAGE)); g_scanner_add_symbol(scanner,"cwda_type", GINT_TO_POINTER(SYMBOL_CWDA_TYPE)); g_scanner_add_symbol(scanner,"cwda_device_s", GINT_TO_POINTER(SYMBOL_CWDA_DEVICE)); g_scanner_add_symbol(scanner,"cwda_hostname", GINT_TO_POINTER(SYMBOL_CWDA_HOST)); g_scanner_add_symbol(scanner,"cwda_udp_port", GINT_TO_POINTER(SYMBOL_CWDA_UDP)); g_scanner_add_symbol(scanner,"cwda_io_port", GINT_TO_POINTER(SYMBOL_CWDA_IOPORT)); g_scanner_add_symbol(scanner,"cwda_speed", GINT_TO_POINTER(SYMBOL_CWDA_SPEED)); g_scanner_add_symbol(scanner,"cwda_weight", GINT_TO_POINTER(SYMBOL_CWDA_WEIGHT)); g_scanner_add_symbol(scanner,"cwda_minwpm", GINT_TO_POINTER(SYMBOL_CWDA_MINWPM)); g_scanner_add_symbol(scanner,"cwda_maxwpm", GINT_TO_POINTER(SYMBOL_CWDA_MAXWPM)); g_scanner_add_symbol(scanner,"cwda_spk", GINT_TO_POINTER(SYMBOL_CWDA_SPK)); g_scanner_add_symbol(scanner,"cwda_leadin", GINT_TO_POINTER(SYMBOL_CWDA_LEADIN)); g_scanner_add_symbol(scanner,"cwda_vid", GINT_TO_POINTER(SYMBOL_CWDA_VID)); g_scanner_add_symbol(scanner,"cwda_pid", GINT_TO_POINTER(SYMBOL_CWDA_PID)); g_scanner_add_symbol(scanner,"cwda_autgive", GINT_TO_POINTER(SYMBOL_CWDA_AUTGIVE)); g_scanner_add_symbol(scanner,"wk_wk2", GINT_TO_POINTER(SYMBOL_WK_WK2)); g_scanner_add_symbol(scanner,"wk_usepot", GINT_TO_POINTER(SYMBOL_WK_USEPOT)); g_scanner_add_symbol(scanner,"wk_usebut", GINT_TO_POINTER(SYMBOL_WK_USEBUT)); g_scanner_add_symbol(scanner,"wk_keymode", GINT_TO_POINTER(SYMBOL_WK_KEYMODE)); g_scanner_add_symbol(scanner,"wk_swap", GINT_TO_POINTER(SYMBOL_WK_SWAP)); g_scanner_add_symbol(scanner,"ssbd_type", GINT_TO_POINTER(SYMBOL_SSBD_TYPE)); g_scanner_add_symbol(scanner,"ssbd_record", GINT_TO_POINTER(SYMBOL_SSBD_RECORD)); g_scanner_add_symbol(scanner,"ssbd_maxmin", GINT_TO_POINTER(SYMBOL_SSBD_MAXMIN)); g_scanner_add_symbol(scanner,"ssbd_diskfree", GINT_TO_POINTER(SYMBOL_SSBD_DISKFREE)); g_scanner_add_symbol(scanner,"ssbd_format", GINT_TO_POINTER(SYMBOL_SSBD_FORMAT)); g_scanner_add_symbol(scanner,"ssbd_channels", GINT_TO_POINTER(SYMBOL_SSBD_CHANNELS)); g_scanner_add_symbol(scanner,"ssbd_samplerate", GINT_TO_POINTER(SYMBOL_SSBD_SAMPLERATE)); g_scanner_add_symbol(scanner,"ssbd_plev", GINT_TO_POINTER(SYMBOL_SSBD_PLEV)); g_scanner_add_symbol(scanner,"ssbd_rlev", GINT_TO_POINTER(SYMBOL_SSBD_RLEV)); g_scanner_add_symbol(scanner,"ssbd_template", GINT_TO_POINTER(SYMBOL_SSBD_TEMPLATE)); g_scanner_add_symbol(scanner,"ssbd_pcm_play", GINT_TO_POINTER(SYMBOL_SSBD_PCM_PLAY)); g_scanner_add_symbol(scanner,"ssbd_pcm_rec", GINT_TO_POINTER(SYMBOL_SSBD_PCM_REC)); g_scanner_add_symbol(scanner,"ssbd_period_time",GINT_TO_POINTER(SYMBOL_SSBD_PERIOD_T)); g_scanner_add_symbol(scanner,"ssbd_buffer_time",GINT_TO_POINTER(SYMBOL_SSBD_BUFFER_T)); g_scanner_add_symbol(scanner,"ssbd_alsa_mixer", GINT_TO_POINTER(SYMBOL_SSBD_ALSA_MIXER)); g_scanner_add_symbol(scanner,"ssbd_alsa_src", GINT_TO_POINTER(SYMBOL_SSBD_ALSA_SRC)); g_scanner_add_symbol(scanner,"ssbd_dsp", GINT_TO_POINTER(SYMBOL_SSBD_DSP)); g_scanner_add_symbol(scanner,"ssbd_maxfrag", GINT_TO_POINTER(SYMBOL_SSBD_MAXFRAG)); g_scanner_add_symbol(scanner,"ssbd_mixer", GINT_TO_POINTER(SYMBOL_SSBD_MIXER)); g_scanner_add_symbol(scanner,"ssbd_oss_src", GINT_TO_POINTER(SYMBOL_SSBD_OSS_SRC)); g_scanner_add_symbol(scanner,"ssbd_recsrc", GINT_TO_POINTER(SYMBOL_SSBD_RECSRC)); g_scanner_add_symbol(scanner,"ssbd_hostname", GINT_TO_POINTER(SYMBOL_SSBD_HOST)); g_scanner_add_symbol(scanner,"ssbd_udp_port", GINT_TO_POINTER(SYMBOL_SSBD_UDP)); g_scanner_add_symbol(scanner,"ssbd_pa_play", GINT_TO_POINTER(SYMBOL_SSBD_PA_PLAY)); g_scanner_add_symbol(scanner,"ssbd_pa_rec", GINT_TO_POINTER(SYMBOL_SSBD_PA_REC)); g_scanner_add_symbol(scanner,"ssbd_command", GINT_TO_POINTER(SYMBOL_SSBD_COMMAND)); g_scanner_add_symbol(scanner,"ssbd_pipe", GINT_TO_POINTER(SYMBOL_SSBD_PIPE)); g_scanner_add_symbol(scanner,"term", GINT_TO_POINTER(SYMBOL_TERM)); g_scanner_add_symbol(scanner,"term_mode", GINT_TO_POINTER(SYMBOL_TERM_MODE)); g_scanner_add_symbol(scanner,"term_m11_hack", GINT_TO_POINTER(SYMBOL_TERM_M11_HACK)); g_scanner_add_symbol(scanner,"term_restrict_852", GINT_TO_POINTER(SYMBOL_TERM_RESTRICT_852)); g_scanner_add_symbol(scanner,"term_block_cursor", GINT_TO_POINTER(SYMBOL_TERM_BLOCK_CURSOR)); g_scanner_add_symbol(scanner,"term_col", GINT_TO_POINTER(SYMBOL_TERM_COL)); g_scanner_add_symbol(scanner,"term_utf_8_io", GINT_TO_POINTER(SYMBOL_TERM_UTF_8_IO)); g_scanner_add_symbol(scanner,"term_charset", GINT_TO_POINTER(SYMBOL_TERM_CHARSET)); g_scanner_add_symbol(scanner,"rotar", GINT_TO_POINTER(SYMBOL_ROTAR)); g_scanner_add_symbol(scanner,"rot_desc", GINT_TO_POINTER(SYMBOL_ROT_DESC)); g_scanner_add_symbol(scanner,"rot_type", GINT_TO_POINTER(SYMBOL_ROT_TYPE)); g_scanner_add_symbol(scanner,"rot_filename", GINT_TO_POINTER(SYMBOL_ROT_FILENAME)); g_scanner_add_symbol(scanner,"rot_hostname", GINT_TO_POINTER(SYMBOL_ROT_HOSTNAME)); g_scanner_add_symbol(scanner,"rot_port", GINT_TO_POINTER(SYMBOL_ROT_PORT)); g_scanner_add_symbol(scanner,"rot_vid", GINT_TO_POINTER(SYMBOL_ROT_VID)); g_scanner_add_symbol(scanner,"rot_pid", GINT_TO_POINTER(SYMBOL_ROT_PID)); g_scanner_add_symbol(scanner,"rot_serial", GINT_TO_POINTER(SYMBOL_ROT_SERIAL)); g_scanner_add_symbol(scanner,"rot_timeout_ms", GINT_TO_POINTER(SYMBOL_ROT_TIMEOUT_MS)); g_scanner_add_symbol(scanner,"rot_beamwidth", GINT_TO_POINTER(SYMBOL_ROT_BEAMWIDTH)); g_scanner_add_symbol(scanner,"rot_saddr", GINT_TO_POINTER(SYMBOL_ROT_SADDR)); g_scanner_add_symbol(scanner,"rot_model", GINT_TO_POINTER(SYMBOL_ROT_MODEL)); g_scanner_add_symbol(scanner,"rot_rem_rotstr", GINT_TO_POINTER(SYMBOL_ROT_REM_ROTSTR)); g_scanner_add_symbol(scanner,"rot_poll_ms", GINT_TO_POINTER(SYMBOL_ROT_POLL_MS)); g_scanner_add_symbol(scanner,"subwin", GINT_TO_POINTER(SYMBOL_SW)); g_scanner_add_symbol(scanner,"sw_type", GINT_TO_POINTER(SYMBOL_SW_TYPE)); g_scanner_add_symbol(scanner,"sw_command", GINT_TO_POINTER(SYMBOL_SW_COMMAND)); g_scanner_add_symbol(scanner,"sw_autorun", GINT_TO_POINTER(SYMBOL_SW_AUTORUN)); g_scanner_add_symbol(scanner,"sw_respawn_time", GINT_TO_POINTER(SYMBOL_SW_RESPAWN_TIME)); g_scanner_add_symbol(scanner,"rig", GINT_TO_POINTER(SYMBOL_RIG)); g_scanner_add_symbol(scanner,"rig_enabled", GINT_TO_POINTER(SYMBOL_RIG_ENABLED)); g_scanner_add_symbol(scanner,"rig_desc", GINT_TO_POINTER(SYMBOL_RIG_DESC)); g_scanner_add_symbol(scanner,"rig_filename", GINT_TO_POINTER(SYMBOL_RIG_FILENAME)); g_scanner_add_symbol(scanner,"rig_model", GINT_TO_POINTER(SYMBOL_RIG_MODEL)); g_scanner_add_symbol(scanner,"rig_speed", GINT_TO_POINTER(SYMBOL_RIG_SPEED)); g_scanner_add_symbol(scanner,"rig_civaddr", GINT_TO_POINTER(SYMBOL_RIG_CIVADDR)); g_scanner_add_symbol(scanner,"rig_lo", GINT_TO_POINTER(SYMBOL_RIG_LO)); g_scanner_add_symbol(scanner,"rig_ssbcw_shift", GINT_TO_POINTER(SYMBOL_RIG_SSBCW_SHIFT)); g_scanner_add_symbol(scanner,"rig_poll_ms", GINT_TO_POINTER(SYMBOL_RIG_POLL_MS)); g_scanner_add_symbol(scanner,"rig_qrg_r2t", GINT_TO_POINTER(SYMBOL_RIG_QRG_R2T)); g_scanner_add_symbol(scanner,"rig_qrg_t2r", GINT_TO_POINTER(SYMBOL_RIG_QRG_T2R)); g_scanner_add_symbol(scanner,"rig_mode_t2r", GINT_TO_POINTER(SYMBOL_RIG_MODE_T2R)); g_scanner_add_symbol(scanner,"rig_clr_rit", GINT_TO_POINTER(SYMBOL_RIG_CLR_RIT)); g_scanner_add_symbol(scanner,"rig_ptt_t2r", GINT_TO_POINTER(SYMBOL_RIG_PTT_T2R)); g_scanner_add_symbol(scanner,"rig_verbose", GINT_TO_POINTER(SYMBOL_RIG_VERBOSE)); g_scanner_add_symbol(scanner,"loglines", GINT_TO_POINTER(SYMBOL_LOGLINES)); g_scanner_add_symbol(scanner,"skedcount", GINT_TO_POINTER(SYMBOL_SKEDCOUNT)); g_scanner_add_symbol(scanner,"takeoff", GINT_TO_POINTER(SYMBOL_TAKEOFF)); g_scanner_add_symbol(scanner,"operator", GINT_TO_POINTER(SYMBOL_OPERATOR)); g_scanner_add_symbol(scanner,"global_operator", GINT_TO_POINTER(SYMBOL_GLOBAL_OPERATOR)); g_scanner_add_symbol(scanner,"gfx_x", GINT_TO_POINTER(SYMBOL_GFX_X)); g_scanner_add_symbol(scanner,"gfx_y", GINT_TO_POINTER(SYMBOL_GFX_Y)); g_scanner_add_symbol(scanner,"fontheight", GINT_TO_POINTER(SYMBOL_FONTHEIGHT)); g_scanner_add_symbol(scanner,"slashkey", GINT_TO_POINTER(SYMBOL_SLASHKEY)); g_scanner_add_symbol(scanner,"ntpq", GINT_TO_POINTER(SYMBOL_NTPQ)); g_scanner_add_symbol(scanner,"dssaver", GINT_TO_POINTER(SYMBOL_DSSAVER)); g_scanner_add_symbol(scanner,"splitheight", GINT_TO_POINTER(SYMBOL_SPLITHEIGHT)); g_scanner_add_symbol(scanner,"fullscreen", GINT_TO_POINTER(SYMBOL_FULLSCREEN)); g_scanner_add_symbol(scanner,"maximized", GINT_TO_POINTER(SYMBOL_MAXIMIZED)); g_scanner_add_symbol(scanner,"usetouch", GINT_TO_POINTER(SYMBOL_USETOUCH)); g_scanner_add_symbol(scanner,"touchpos", GINT_TO_POINTER(SYMBOL_TOUCHPOS)); g_scanner_add_symbol(scanner,"altsyms", GINT_TO_POINTER(SYMBOL_ALTSYMS)); g_scanner_add_symbol(scanner,"nolocks", GINT_TO_POINTER(SYMBOL_NOLOCKS)); g_scanner_add_symbol(scanner,"portrait", GINT_TO_POINTER(SYMBOL_PORTRAIT)); g_scanner_add_symbol(scanner,"reverse", GINT_TO_POINTER(SYMBOL_REVERSE)); g_scanner_add_symbol(scanner,"dxc_host", GINT_TO_POINTER(SYMBOL_DXC_HOST)); g_scanner_add_symbol(scanner,"dxc_port", GINT_TO_POINTER(SYMBOL_DXC_PORT)); g_scanner_add_symbol(scanner,"dxc_user", GINT_TO_POINTER(SYMBOL_DXC_USER)); g_scanner_add_symbol(scanner,"dxc_pass", GINT_TO_POINTER(SYMBOL_DXC_PASS)); g_scanner_add_symbol(scanner,"kst_user", GINT_TO_POINTER(SYMBOL_KST_USER)); g_scanner_add_symbol(scanner,"kst_pass", GINT_TO_POINTER(SYMBOL_KST_PASS)); g_scanner_add_symbol(scanner,"kst_name", GINT_TO_POINTER(SYMBOL_KST_NAME)); g_scanner_add_symbol(scanner,"httpd_enable", GINT_TO_POINTER(SYMBOL_HTTPD_ENABLE)); g_scanner_add_symbol(scanner,"httpd_port", GINT_TO_POINTER(SYMBOL_HTTPD_PORT)); g_scanner_add_symbol(scanner,"httpd_show_priv", GINT_TO_POINTER(SYMBOL_HTTPD_SHOW_PRIV)); g_scanner_add_symbol(scanner,"ac_enable", GINT_TO_POINTER(SYMBOL_AC_ENABLE)); g_scanner_add_symbol(scanner,"ac_url", GINT_TO_POINTER(SYMBOL_AC_URL)); g_scanner_add_symbol(scanner,"ac_kfactor", GINT_TO_POINTER(SYMBOL_AC_KFACTOR)); g_scanner_add_symbol(scanner,"ac_arwidth", GINT_TO_POINTER(SYMBOL_AC_ARWIDTH)); g_scanner_add_symbol(scanner,"ac_minelev", GINT_TO_POINTER(SYMBOL_AC_MINELEV)); g_scanner_add_symbol(scanner,"ac_maxelev", GINT_TO_POINTER(SYMBOL_AC_MAXELEV)); g_scanner_add_symbol(scanner,"ac_mindur", GINT_TO_POINTER(SYMBOL_AC_MINDUR)); g_scanner_add_symbol(scanner,"ac_maxdelta", GINT_TO_POINTER(SYMBOL_AC_MAXDELTA)); g_scanner_add_symbol(scanner,"ac_minalt", GINT_TO_POINTER(SYMBOL_AC_MINALT)); g_scanner_add_symbol(scanner,"sdr_enable", GINT_TO_POINTER(SYMBOL_SDR_ENABLE)); g_scanner_add_symbol(scanner,"sdr_cw", GINT_TO_POINTER(SYMBOL_SDR_CW)); g_scanner_add_symbol(scanner,"sdr_lsb", GINT_TO_POINTER(SYMBOL_SDR_LSB)); g_scanner_add_symbol(scanner,"sdr_speed", GINT_TO_POINTER(SYMBOL_SDR_SPEED)); g_scanner_add_symbol(scanner,"sdr_af_speed", GINT_TO_POINTER(SYMBOL_SDR_AF_SPEED)); g_scanner_add_symbol(scanner,"sdr_block", GINT_TO_POINTER(SYMBOL_SDR_BLOCK)); g_scanner_add_symbol(scanner,"sdr_zero", GINT_TO_POINTER(SYMBOL_SDR_ZERO)); g_scanner_add_symbol(scanner,"sdr_cw_low", GINT_TO_POINTER(SYMBOL_SDR_CW_LOW)); g_scanner_add_symbol(scanner,"sdr_cw_high", GINT_TO_POINTER(SYMBOL_SDR_CW_HIGH)); g_scanner_add_symbol(scanner,"sdr_ssb_low", GINT_TO_POINTER(SYMBOL_SDR_SSB_LOW)); g_scanner_add_symbol(scanner,"sdr_ssb_high", GINT_TO_POINTER(SYMBOL_SDR_SSB_HIGH)); g_scanner_add_symbol(scanner,"sdr_rec_dsp_type", GINT_TO_POINTER(SYMBOL_SDR_REC_DSP_TYPE)); g_scanner_add_symbol(scanner,"sdr_play_dsp_type", GINT_TO_POINTER(SYMBOL_SDR_PLAY_DSP_TYPE)); g_scanner_add_symbol(scanner,"sdr_pa_rec", GINT_TO_POINTER(SYMBOL_SDR_PA_REC)); g_scanner_add_symbol(scanner,"sdr_pa_play", GINT_TO_POINTER(SYMBOL_SDR_PA_PLAY)); g_scanner_add_symbol(scanner,"sdr_pcm_rec", GINT_TO_POINTER(SYMBOL_SDR_PCM_REC)); g_scanner_add_symbol(scanner,"sdr_pcm_play", GINT_TO_POINTER(SYMBOL_SDR_PCM_PLAY)); g_scanner_add_symbol(scanner,"sdr_sndfilename", GINT_TO_POINTER(SYMBOL_SDR_SNDFILENAME)); g_scanner_add_symbol(scanner,"wiki_url", GINT_TO_POINTER(SYMBOL_WIKI_URL)); g_scanner_add_symbol(scanner,"wiki_user", GINT_TO_POINTER(SYMBOL_WIKI_USER)); g_scanner_add_symbol(scanner,"wiki_pass", GINT_TO_POINTER(SYMBOL_WIKI_PASS)); g_scanner_add_symbol(scanner,"wiki_map", GINT_TO_POINTER(SYMBOL_WIKI_MAP)); g_scanner_add_symbol(scanner,"wiki_chart", GINT_TO_POINTER(SYMBOL_WIKI_CHART)); /* obsolete items */ g_scanner_add_symbol(scanner,"cwda_device", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_port", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_speaker", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_spkdev", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_spkvol", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"cwda_pttdelay", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_type", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_port", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_saddr", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_timeout_ms", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_filename", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rota_hostname", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_type", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_port", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_saddr", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_timeout_ms", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_filename", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"rotb_hostname", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"doublefont", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"skedshift", GINT_TO_POINTER(SYMBOL_OBSOLETE)); g_scanner_add_symbol(scanner,"daqrv", GINT_TO_POINTER(SYMBOL_OBSOLETE)); } /**************************************************************************/ gint init_rc(void){ cfg = g_new0(struct config, 1); cfg->bands = g_ptr_array_new(); cfg->cqs = g_ptr_array_new(); cfg->crigs = g_ptr_array_new(); cfg->crotars = g_ptr_array_new(); cfg->sws = g_ptr_array_new(); cfg->takeoff = g_ptr_array_new(); cfg->cwda_minwpm = 10; cfg->cwda_maxwpm = 41; cfg->wk_usepot = 1; cfg->wk_usebut = 1; cfg->wk_keymode = 1; #ifdef Z_ANDROID cfg->dssaver = 0; #else cfg->dssaver = 1; #endif cfg->httpd_port = 7380; cfg->ac_enable = 0; cfg->ac_url = g_strdup(""); cfg->ac_kfactor = 1.333; cfg->ac_arwidth = 10.0; cfg->ac_minelev = -0.5; cfg->ac_maxelev = +5.0; cfg->ac_mindur = 45; cfg->ac_maxdelta = 0; cfg->ac_minalt = 2000; cfg->sdr_cw = 0; cfg->sdr_lsb = 1; cfg->sdr_block = 4096; cfg->sdr_zero = 14600.0; cfg->sdr_ssb_low = -2100.0; cfg->sdr_ssb_high = -300.0; cfg->sdr_cw_low = -1000.0; cfg->sdr_cw_high = -400.0; return 0; } #define FREE_IF_EXISTS(base, item) if (base->item) g_free(base->item) void free_config_rig(struct config_rig *crig){ FREE_IF_EXISTS(crig, rig_desc); FREE_IF_EXISTS(crig, rig_filename); } void free_config_rotar(struct config_rotar *crot){ FREE_IF_EXISTS(crot,rot_filename); FREE_IF_EXISTS(crot,rot_hostname); FREE_IF_EXISTS(crot,rot_desc); FREE_IF_EXISTS(crot,rot_serial); FREE_IF_EXISTS(crot,rot_rem_rotstr); g_free(crot); } gint free_rc(void){ int i; struct config_band *band; struct config_rotar *rot; struct config_rig *rig; FREE_IF_EXISTS(cfg,pcall); FREE_IF_EXISTS(cfg,pwwlo); FREE_IF_EXISTS(cfg,pexch); FREE_IF_EXISTS(cfg,padr1); FREE_IF_EXISTS(cfg,padr2); FREE_IF_EXISTS(cfg,pclub); FREE_IF_EXISTS(cfg,rname); FREE_IF_EXISTS(cfg,rcall); FREE_IF_EXISTS(cfg,radr1); FREE_IF_EXISTS(cfg,radr2); FREE_IF_EXISTS(cfg,rpoco); FREE_IF_EXISTS(cfg,rcity); FREE_IF_EXISTS(cfg,rcoun); FREE_IF_EXISTS(cfg,rphon); FREE_IF_EXISTS(cfg,rhbbs); FREE_IF_EXISTS(cfg,default_rs); FREE_IF_EXISTS(cfg,default_rst); FREE_IF_EXISTS(cfg, dxc_host); FREE_IF_EXISTS(cfg, dxc_user); FREE_IF_EXISTS(cfg, dxc_pass); FREE_IF_EXISTS(cfg, kst_user); FREE_IF_EXISTS(cfg, kst_pass); FREE_IF_EXISTS(cfg, kst_name); FREE_IF_EXISTS(cfg,as_floppy_path); FREE_IF_EXISTS(cfg,as_mount_cmd); FREE_IF_EXISTS(cfg,net_if_ignore); FREE_IF_EXISTS(cfg,net_ip_ignore); FREE_IF_EXISTS(cfg,net_ip_announce); FREE_IF_EXISTS(cfg,net_remote_host); FREE_IF_EXISTS(cfg,net_remote_pass); /* trace_xx (5x) */ /* language */ /* cwda-> in cwdaemon.c */ for (i=0;ibands->len; i++){ band = (struct config_band *)g_ptr_array_index(cfg->bands, i); FREE_IF_EXISTS(band,pband); FREE_IF_EXISTS(band,stxeq); FREE_IF_EXISTS(band,spowe); FREE_IF_EXISTS(band,srxeq); FREE_IF_EXISTS(band,sante); FREE_IF_EXISTS(band,santh); FREE_IF_EXISTS(band,mope1); FREE_IF_EXISTS(band,mope2); FREE_IF_EXISTS(band,remarks); FREE_IF_EXISTS(band,ok_section_single); FREE_IF_EXISTS(band,ok_section_multi); FREE_IF_EXISTS(band,adifband); FREE_IF_EXISTS(band,cbrband); FREE_IF_EXISTS(band,skedqrg); g_free(band); } g_ptr_array_free(cfg->bands, TRUE); for (i=0;icqs->len; i++){ free_cq((struct cq *)g_ptr_array_index(cfg->cqs,i)); } g_ptr_array_free(cfg->cqs, TRUE); /* YES, TRUE */ FREE_IF_EXISTS(cfg,startband); FREE_IF_EXISTS(cfg,operator_); FREE_IF_EXISTS(cfg,slashkey); FREE_IF_EXISTS(cfg,cwda_device); FREE_IF_EXISTS(cfg,cwda_hostname); FREE_IF_EXISTS(cfg,ssbd_pcm_play); FREE_IF_EXISTS(cfg,ssbd_pcm_rec); FREE_IF_EXISTS(cfg,ssbd_hostname); FREE_IF_EXISTS(cfg,ssbd_dsp); FREE_IF_EXISTS(cfg,ssbd_template); FREE_IF_EXISTS(cfg,ssbd_mixer); FREE_IF_EXISTS(cfg,ssbd_alsa_mixer); FREE_IF_EXISTS(cfg,ssbd_alsa_src); FREE_IF_EXISTS(cfg,ssbd_oss_src); for (i=0;icrigs->len; i++){ rig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); free_config_rig(rig); } g_ptr_array_free(cfg->crigs, TRUE); for (i=0;icrotars->len; i++){ rot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, i); free_config_rotar(rot); } g_ptr_array_free(cfg->crotars, TRUE); for (i=0;isws->len;i++){ struct config_subwin *csw; csw=(struct config_subwin *)g_ptr_array_index(cfg->sws, i); FREE_IF_EXISTS(csw, command); FREE_IF_EXISTS(csw, autorun); g_free(csw); } g_ptr_array_free(cfg->sws, TRUE); /* YES, TRUE */ for (i=0;itakeoff->len;i++){ struct takeoff *toff; toff=(struct takeoff*)g_ptr_array_index(cfg->takeoff, i); g_free(toff); } g_ptr_array_free(cfg->takeoff, TRUE); g_free(cfg); return 0; } void rc_init_crig(int rignr){ if (!cfg->crig){ cfg->crig = g_new0(struct config_rig, 1); g_ptr_array_add(cfg->crigs, cfg->crig); cfg->crig->nr = rignr; cfg->crig->rig_enabled = 1; cfg->crig->rig_mode_t2r = 1; cfg->crig->rig_civaddr = 0x58; } } #define STORE_RC_STRING(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ }\ break #define STORE_RC_STRING_UC(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ z_str_uc(base->item);\ }\ break #define STORE_RC_STRING_FS(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ fixsemi(base->item);\ }\ break #define STORE_RC_STRING_FS_UC(base, SYM,item) case SYM: \ if (base){\ if (base->item) g_free(base->item); \ base->item = g_strdup(scanner->value.v_string);\ fixsemi(base->item);\ z_str_uc(base->item);\ }\ break #define STORE_RC_INT(base, SYM,item) case SYM: \ if (base){\ base->item = scanner->value.v_int * krat; \ }\ break #define STORE_RC_ENUM(base, SYM, item, type) case SYM: \ if (base){\ base->item = (type)(scanner->value.v_int * krat); \ }\ break #define STORE_RC_DOUBLE(base, SYM,item) case SYM: \ if (base){\ base->item = scanner->value.v_float * krat;\ }\ break /* known items are identifiers */ /* all other are symbols */ guint read_one_token(GScanner *scanner){ guint symbol; gint krat; /* dbg("read_one_token\n");*/ g_scanner_get_next_token(scanner); symbol = scanner->token; /* symbol (abc) is unresolved, probably valid identifier from newer version */ if (symbol == G_TOKEN_IDENTIFIER) return G_TOKEN_SYMBOL; /* config record must begin with known symbol */ if ((symbol < SYMBOL_MY_FIRST) || (symbol > SYMBOL_MY_LAST)){ return G_TOKEN_NONE; } /* its one of my symbols */ g_scanner_get_next_token(scanner); /* expecting '=' */ if (scanner->token != '='){ return '='; } g_scanner_get_next_token(scanner); /* dbg("scanner->token=%d G_TOKEN_STRING=%d \n",scanner->token, G_TOKEN_STRING);*/ if (scanner->token==G_TOKEN_ERROR){ return G_TOKEN_ERROR; } if (scanner->token == '-'){ krat = -1; g_scanner_get_next_token(scanner); }else{ krat = 1; } /* if ((scanner->token) != (G_TOKEN_STRING)){ dbg("not equal\n"); return G_TOKEN_STRING; }else{ dbg("equal\n"); }*/ switch(symbol){ STORE_RC_STRING_FS_UC(cfg, SYMBOL_PCALL, pcall); STORE_RC_STRING_FS_UC(cfg, SYMBOL_PWWLO, pwwlo); STORE_RC_STRING_FS_UC(cfg, SYMBOL_PEXCH, pexch); STORE_RC_STRING (cfg, SYMBOL_PADR1, padr1); STORE_RC_STRING (cfg, SYMBOL_PADR2, padr2); STORE_RC_STRING_FS_UC(cfg, SYMBOL_PCLUB, pclub); STORE_RC_STRING (cfg, SYMBOL_RNAME, rname); STORE_RC_STRING_UC(cfg, SYMBOL_RCALL, rcall); STORE_RC_STRING (cfg, SYMBOL_RADR1, radr1); STORE_RC_STRING (cfg, SYMBOL_RADR2, radr2); STORE_RC_STRING (cfg, SYMBOL_RPOCO, rpoco); STORE_RC_STRING (cfg, SYMBOL_RCITY, rcity); STORE_RC_STRING (cfg, SYMBOL_RCOUN, rcoun); STORE_RC_STRING (cfg, SYMBOL_RPHON, rphon); STORE_RC_STRING (cfg, SYMBOL_RHBBS, rhbbs); STORE_RC_STRING_UC(cfg, SYMBOL_RS, default_rs); STORE_RC_STRING_UC(cfg, SYMBOL_RST, default_rst); STORE_RC_INT (cfg, SYMBOL_QSOP_M,qsop_method); STORE_RC_INT (cfg, SYMBOL_TOTAL_M,total_method); STORE_RC_INT(cfg, SYMBOL_AS_DAQ, as_disk_aq); STORE_RC_INT(cfg, SYMBOL_AS_DAM, as_disk_am); STORE_RC_INT(cfg, SYMBOL_AS_DFS, as_disk_fsync); STORE_RC_INT(cfg, SYMBOL_AS_FAQ, as_floppy_aq); STORE_RC_INT(cfg, SYMBOL_AS_FAM, as_floppy_am); STORE_RC_INT(cfg, SYMBOL_AS_FFS, as_floppy_fsync); STORE_RC_INT(cfg, SYMBOL_AS_FMO, as_mount); STORE_RC_STRING(cfg, SYMBOL_AS_FPA, as_floppy_path); STORE_RC_STRING(cfg, SYMBOL_AS_FMC, as_mount_cmd); STORE_RC_STRING(cfg, SYMBOL_IF_IGNORE, net_if_ignore); STORE_RC_STRING(cfg, SYMBOL_IP_IGNORE, net_ip_ignore); STORE_RC_STRING(cfg, SYMBOL_IP_ANNOUNCE, net_ip_announce); STORE_RC_INT (cfg, SYMBOL_REMOTE_ENABLE, net_remote_enable); STORE_RC_STRING(cfg, SYMBOL_REMOTE_HOST, net_remote_host); STORE_RC_INT (cfg, SYMBOL_REMOTE_PORT, net_remote_port); STORE_RC_STRING(cfg, SYMBOL_REMOTE_PASS, net_remote_pass); STORE_RC_INT (cfg, SYMBOL_MASTERPRIORITY, net_masterpriority); STORE_RC_INT (cfg, SYMBOL_TRACE_BCAST, trace_bcast); STORE_RC_INT (cfg, SYMBOL_TRACE_SOCK, trace_sock); STORE_RC_INT (cfg, SYMBOL_TRACE_RECV, trace_recv); STORE_RC_INT (cfg, SYMBOL_TRACE_SEND, trace_send); STORE_RC_INT (cfg, SYMBOL_TRACE_QSOS, trace_qsos); STORE_RC_INT (cfg, SYMBOL_TRACE_RIG, trace_rig); STORE_RC_INT (cfg, SYMBOL_TRACE_SDEV, trace_sdev); STORE_RC_INT (cfg, SYMBOL_TRACE_KEYS, trace_keys); case SYMBOL_LANGUAGE: current_language = scanner->value.v_int;\ break; case SYMBOL_CQ: cfg->cq = get_cq_by_number(cfg->cqs, scanner->value.v_int); if (!cfg->cq){ cfg->cq = g_new0(struct cq, 1); g_ptr_array_add(cfg->cqs, cfg->cq); cfg->cq->nr = scanner->value.v_int; } break; STORE_RC_STRING(cfg->cq, SYMBOL_CW_STR, cw_str); STORE_RC_INT (cfg->cq, SYMBOL_CW_SPEED, cw_speed); STORE_RC_INT (cfg->cq, SYMBOL_CW_REPEAT, cw_repeat); STORE_RC_INT (cfg->cq, SYMBOL_CW_TS, cw_ts); STORE_RC_INT (cfg->cq, SYMBOL_CW_ALLOWUND, cw_allowifundef); STORE_RC_STRING(cfg->cq, SYMBOL_SSB_FILE, ssb_file); STORE_RC_INT (cfg->cq, SYMBOL_SSB_REPEAT, ssb_repeat); STORE_RC_INT (cfg->cq, SYMBOL_SSB_TS, ssb_ts); case SYMBOL_TERM: cfg->ts = new_term_spec(scanner->value.v_string); break; STORE_RC_INT(cfg->ts, SYMBOL_TERM_MODE, mode); STORE_RC_INT(cfg->ts, SYMBOL_TERM_M11_HACK, m11_hack); STORE_RC_INT(cfg->ts, SYMBOL_TERM_RESTRICT_852, restrict_852); STORE_RC_INT(cfg->ts, SYMBOL_TERM_BLOCK_CURSOR, block_cursor); STORE_RC_INT(cfg->ts, SYMBOL_TERM_COL, col); STORE_RC_INT(cfg->ts, SYMBOL_TERM_UTF_8_IO, utf_8_io); STORE_RC_INT(cfg->ts, SYMBOL_TERM_CHARSET, charset); STORE_RC_STRING(cfg, SYMBOL_STARTBAND, startband); case SYMBOL_PBAND: cfg->band = get_config_band_by_pband(fixsemi(scanner->value.v_string)); if (!cfg->band){ cfg->band = g_new0(struct config_band, 1); g_ptr_array_add(cfg->bands, cfg->band); cfg->band->pband = fixsemi(g_strdup(scanner->value.v_string)); cfg->band->skedqrg=g_strdup(""); } //dbg("new band: '%s' cfg->band='%p' \n", scanner->value.v_string,cfg->band); break; case SYMBOL_BANDCHAR: if (cfg->band){ cfg->band->bandchar = toupper(*(scanner->value.v_string)); } break; case SYMBOL_QRV: if (cfg->band){ cfg->band->qrv = cfg->band->qrvnow = scanner->value.v_int; } break; case SYMBOL_READONLY: if (cfg->band){ cfg->band->readonly = scanner->value.v_int; /*dbg("readonly=%d\n", cfg->band->readonly);*/ } break; /* STORE_RC_INT (cfg->band, SYMBOL_QRV, qrv); STORE_RC_INT (cfg->band, SYMBOL_QRVNOW,qrvnow); */ STORE_RC_INT (cfg->band, SYMBOL_PSECT, psect); STORE_RC_STRING (cfg->band, SYMBOL_STXEQ, stxeq); STORE_RC_STRING (cfg->band, SYMBOL_SPOWE, spowe); STORE_RC_STRING (cfg->band, SYMBOL_SRXEQ, srxeq); STORE_RC_STRING (cfg->band, SYMBOL_SANTE, sante); STORE_RC_STRING (cfg->band, SYMBOL_SANTH, santh); STORE_RC_STRING_UC(cfg->band, SYMBOL_MOPE1, mope1); STORE_RC_STRING_UC(cfg->band, SYMBOL_MOPE2, mope2); STORE_RC_STRING (cfg->band, SYMBOL_REMARKS,remarks); STORE_RC_STRING (cfg->band, SYMBOL_OK_SECTION_SINGLE,ok_section_single); STORE_RC_STRING (cfg->band, SYMBOL_OK_SECTION_MULTI, ok_section_multi); STORE_RC_STRING (cfg->band, SYMBOL_ADIFBAND, adifband); STORE_RC_STRING (cfg->band, SYMBOL_CBRBAND, cbrband); STORE_RC_INT (cfg->band, SYMBOL_QRG_MIN, qrg_min); STORE_RC_INT (cfg->band, SYMBOL_QRG_MAX, qrg_max); STORE_RC_STRING (cfg->band, SYMBOL_SKEDQRG, skedqrg); STORE_RC_DOUBLE (cfg->band, SYMBOL_BAND_LO, band_lo); STORE_RC_INT (cfg->band, SYMBOL_BAND_SW, band_sw); STORE_RC_STRING (cfg->band, SYMBOL_OPSECT, opsect); STORE_RC_INT (cfg, SYMBOL_CWDA_TYPE, cwda_type); STORE_RC_STRING (cfg, SYMBOL_CWDA_DEVICE, cwda_device); STORE_RC_STRING (cfg, SYMBOL_CWDA_HOST, cwda_hostname); STORE_RC_INT (cfg, SYMBOL_CWDA_UDP, cwda_udp_port); STORE_RC_INT (cfg, SYMBOL_CWDA_IOPORT, cwda_io_port); STORE_RC_INT (cfg, SYMBOL_CWDA_SPEED, cwda_speed); STORE_RC_INT (cfg, SYMBOL_CWDA_WEIGHT, cwda_weight); STORE_RC_INT (cfg, SYMBOL_CWDA_MINWPM, cwda_minwpm); STORE_RC_INT (cfg, SYMBOL_CWDA_MAXWPM, cwda_maxwpm); STORE_RC_INT (cfg, SYMBOL_CWDA_SPK, cwda_spk); STORE_RC_INT (cfg, SYMBOL_CWDA_LEADIN, cwda_leadin); STORE_RC_INT (cfg, SYMBOL_CWDA_VID, cwda_vid); STORE_RC_INT (cfg, SYMBOL_CWDA_PID, cwda_pid); STORE_RC_INT (cfg, SYMBOL_CWDA_AUTGIVE, cwda_autgive); STORE_RC_INT (cfg, SYMBOL_WK_WK2, wk_wk2); STORE_RC_INT (cfg, SYMBOL_WK_USEPOT, wk_usepot); STORE_RC_INT (cfg, SYMBOL_WK_USEBUT, wk_usebut); STORE_RC_INT (cfg, SYMBOL_WK_KEYMODE, wk_keymode); STORE_RC_INT (cfg, SYMBOL_WK_SWAP, wk_swap); #if 0 STORE_RC_INT (cfg, SYMBOL_CWDA_DEVICE, cwda_device); /* obsolete */ STORE_RC_INT (cfg, SYMBOL_CWDA_SPEAKER, cwda_speaker); /* obsolete */ STORE_RC_INT (cfg, SYMBOL_CWDA_PORT, cwda_port); /* obsolete */ #endif STORE_RC_INT (cfg, SYMBOL_SSBD_TYPE, ssbd_type); STORE_RC_INT (cfg, SYMBOL_SSBD_RECORD, ssbd_record); STORE_RC_INT (cfg, SYMBOL_SSBD_MAXMIN, ssbd_maxmin); STORE_RC_INT (cfg, SYMBOL_SSBD_DISKFREE, ssbd_diskfree); STORE_RC_INT (cfg, SYMBOL_SSBD_FORMAT, ssbd_format); STORE_RC_INT (cfg, SYMBOL_SSBD_CHANNELS, ssbd_channels); STORE_RC_INT (cfg, SYMBOL_SSBD_SAMPLERATE, ssbd_samplerate); STORE_RC_INT (cfg, SYMBOL_SSBD_PLEV, ssbd_plev); STORE_RC_INT (cfg, SYMBOL_SSBD_RLEV, ssbd_rlev); /* case SYMBOL_SSBD_PLEV: if (cfg){ cfg->ssbd_plev = scanner->value.v_int; if (scanner->token == '-') cfg->ssbd_plev == -cfg->ssbd_plev; } break;*/ STORE_RC_STRING (cfg, SYMBOL_SSBD_TEMPLATE, ssbd_template); STORE_RC_STRING (cfg, SYMBOL_SSBD_PCM_PLAY, ssbd_pcm_play); STORE_RC_STRING (cfg, SYMBOL_SSBD_PCM_REC, ssbd_pcm_rec); STORE_RC_INT (cfg, SYMBOL_SSBD_PERIOD_T, ssbd_period_time); STORE_RC_INT (cfg, SYMBOL_SSBD_BUFFER_T, ssbd_buffer_time); STORE_RC_STRING (cfg, SYMBOL_SSBD_ALSA_MIXER, ssbd_alsa_mixer); STORE_RC_STRING (cfg, SYMBOL_SSBD_ALSA_SRC, ssbd_alsa_src); STORE_RC_STRING (cfg, SYMBOL_SSBD_DSP, ssbd_dsp); STORE_RC_INT (cfg, SYMBOL_SSBD_MAXFRAG, ssbd_maxfrag); STORE_RC_STRING (cfg, SYMBOL_SSBD_MIXER, ssbd_mixer); STORE_RC_STRING (cfg, SYMBOL_SSBD_OSS_SRC, ssbd_oss_src); STORE_RC_INT (cfg, SYMBOL_SSBD_RECSRC, ssbd_recsrc); STORE_RC_STRING (cfg, SYMBOL_SSBD_HOST, ssbd_hostname); STORE_RC_INT (cfg, SYMBOL_SSBD_UDP, ssbd_udp_port); STORE_RC_INT (cfg, SYMBOL_SSBD_PA_PLAY, ssbd_pa_play); STORE_RC_INT (cfg, SYMBOL_SSBD_PA_REC, ssbd_pa_rec); /* STORE_RC_INT (cfg, SYMBOL_SSBD_PIPE, ssbd_pipe); STORE_RC_STRING (cfg, SYMBOL_SSBD_COMMAND, ssbd_command);*/ case SYMBOL_RIG: cfg->crig = get_config_rig_by_number(cfg->crigs, scanner->value.v_int); rc_init_crig(scanner->value.v_int); break; case SYMBOL_RIG_FILENAME: rc_init_crig(0); zg_free0(cfg->crig->rig_filename); cfg->crig->rig_filename = g_strdup(scanner->value.v_string); break; STORE_RC_INT (cfg->crig, SYMBOL_RIG_ENABLED, rig_enabled); STORE_RC_STRING (cfg->crig, SYMBOL_RIG_DESC, rig_desc); STORE_RC_INT (cfg->crig, SYMBOL_RIG_MODEL, rig_model); STORE_RC_INT (cfg->crig, SYMBOL_RIG_SPEED, rig_speed); STORE_RC_INT (cfg->crig, SYMBOL_RIG_CIVADDR, rig_civaddr); STORE_RC_DOUBLE (cfg->crig, SYMBOL_RIG_LO, rig_lo); STORE_RC_INT (cfg->crig, SYMBOL_RIG_SSBCW_SHIFT, rig_ssbcw_shift); STORE_RC_INT (cfg->crig, SYMBOL_RIG_POLL_MS, rig_poll_ms); STORE_RC_INT (cfg->crig, SYMBOL_RIG_QRG_R2T, rig_qrg_r2t); STORE_RC_INT (cfg->crig, SYMBOL_RIG_QRG_T2R, rig_qrg_t2r); STORE_RC_INT (cfg->crig, SYMBOL_RIG_MODE_T2R, rig_mode_t2r); STORE_RC_INT (cfg->crig, SYMBOL_RIG_CLR_RIT, rig_clr_rit); STORE_RC_INT (cfg->crig, SYMBOL_RIG_PTT_T2R, rig_ptt_t2r); STORE_RC_INT (cfg->crig, SYMBOL_RIG_VERBOSE, rig_verbose); case SYMBOL_ROTAR: cfg->crotar = get_config_rotar_by_number(cfg->crotars, scanner->value.v_int); if (!cfg->crotar){ cfg->crotar=g_new0(struct config_rotar, 1); g_ptr_array_add(cfg->crotars, cfg->crotar); cfg->crotar->nr = scanner->value.v_int; } break; STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_DESC, rot_desc); STORE_RC_ENUM (cfg->crotar, SYMBOL_ROT_TYPE, rot_type, enum rot_type); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_FILENAME, rot_filename); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_HOSTNAME, rot_hostname); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_PORT, rot_port); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_VID, rot_vid); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_PID, rot_pid); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_SERIAL, rot_serial); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_TIMEOUT_MS, rot_timeout_ms); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_BEAMWIDTH, rot_beamwidth); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_SADDR, rot_saddr); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_MODEL, rot_model); STORE_RC_STRING (cfg->crotar, SYMBOL_ROT_REM_ROTSTR, rot_rem_rotstr); STORE_RC_INT (cfg->crotar, SYMBOL_ROT_POLL_MS, rot_poll_ms); case SYMBOL_SW: cfg->sw = get_config_sw_by_number(cfg->sws, scanner->value.v_int); if (!cfg->sw){ cfg->sw = g_new0(struct config_subwin, 1); g_ptr_array_add(cfg->sws, cfg->sw); cfg->sw->nr = scanner->value.v_int; } break; STORE_RC_ENUM (cfg->sw, SYMBOL_SW_TYPE, type, enum sw_type); STORE_RC_STRING (cfg->sw, SYMBOL_SW_COMMAND, command); STORE_RC_STRING (cfg->sw, SYMBOL_SW_AUTORUN, autorun); STORE_RC_INT (cfg->sw, SYMBOL_SW_RESPAWN_TIME, respawn_time); STORE_RC_INT (cfg, SYMBOL_LOGLINES, loglines); STORE_RC_INT (cfg, SYMBOL_SKEDCOUNT, skedcount); case SYMBOL_TAKEOFF:{ gchar **items; struct takeoff *toff; if (!scanner->value.v_string) break; items=g_strsplit(scanner->value.v_string, ",", 3); if (!items[0] || !items[1] || !items[2]) { g_strfreev(items); break; } toff=g_new0(struct takeoff, 1); toff->from=atoi(items[0]); toff->to=atoi(items[1]); toff->value=atoi(items[2]); g_ptr_array_add(cfg->takeoff, toff); } break; STORE_RC_STRING(cfg, SYMBOL_OPERATOR, operator_); STORE_RC_INT (cfg, SYMBOL_GLOBAL_OPERATOR, global_operator); STORE_RC_INT (cfg, SYMBOL_GFX_X, gfx_x); STORE_RC_INT (cfg, SYMBOL_GFX_Y, gfx_y); STORE_RC_INT (cfg, SYMBOL_FONTHEIGHT, fontheight); STORE_RC_STRING(cfg, SYMBOL_SLASHKEY, slashkey); STORE_RC_INT (cfg, SYMBOL_DSSAVER, dssaver); STORE_RC_INT (cfg, SYMBOL_SPLITHEIGHT, splitheight); STORE_RC_INT (cfg, SYMBOL_FULLSCREEN, fullscreen); STORE_RC_INT (cfg, SYMBOL_MAXIMIZED, maximized); STORE_RC_INT (cfg, SYMBOL_USETOUCH, usetouch); STORE_RC_INT (cfg, SYMBOL_TOUCHPOS, touchpos); STORE_RC_INT (cfg, SYMBOL_ALTSYMS, altsyms); STORE_RC_INT (cfg, SYMBOL_NOLOCKS, nolocks); STORE_RC_INT (cfg, SYMBOL_PORTRAIT, portrait); STORE_RC_INT (cfg, SYMBOL_REVERSE, reverse); STORE_RC_STRING(cfg, SYMBOL_DXC_HOST, dxc_host); STORE_RC_INT (cfg, SYMBOL_DXC_PORT, dxc_port); STORE_RC_STRING(cfg, SYMBOL_DXC_USER, dxc_user); STORE_RC_STRING(cfg, SYMBOL_DXC_PASS, dxc_pass); STORE_RC_STRING(cfg, SYMBOL_KST_USER, kst_user); STORE_RC_STRING(cfg, SYMBOL_KST_PASS, kst_pass); STORE_RC_STRING(cfg, SYMBOL_KST_NAME, kst_name); STORE_RC_INT(cfg, SYMBOL_HTTPD_ENABLE, httpd_enable); STORE_RC_INT(cfg, SYMBOL_HTTPD_PORT, httpd_port); STORE_RC_INT(cfg, SYMBOL_HTTPD_SHOW_PRIV, httpd_show_priv); STORE_RC_INT (cfg, SYMBOL_AC_ENABLE, ac_enable); STORE_RC_STRING(cfg, SYMBOL_AC_URL, ac_url); STORE_RC_DOUBLE(cfg, SYMBOL_AC_KFACTOR, ac_kfactor); STORE_RC_DOUBLE(cfg, SYMBOL_AC_ARWIDTH, ac_arwidth); STORE_RC_DOUBLE(cfg, SYMBOL_AC_MINELEV, ac_minelev); STORE_RC_DOUBLE(cfg, SYMBOL_AC_MAXELEV, ac_maxelev); STORE_RC_INT (cfg, SYMBOL_AC_MINDUR, ac_mindur); STORE_RC_DOUBLE(cfg, SYMBOL_AC_MAXDELTA, ac_maxdelta); STORE_RC_INT (cfg, SYMBOL_AC_MINALT, ac_minalt); STORE_RC_INT (cfg, SYMBOL_SDR_ENABLE, sdr_enable); STORE_RC_INT (cfg, SYMBOL_SDR_CW, sdr_cw); STORE_RC_INT (cfg, SYMBOL_SDR_LSB, sdr_lsb); STORE_RC_DOUBLE(cfg, SYMBOL_SDR_ZERO, sdr_zero); STORE_RC_INT (cfg, SYMBOL_SDR_SPEED, sdr_speed); STORE_RC_INT (cfg, SYMBOL_SDR_AF_SPEED, sdr_af_speed); STORE_RC_INT (cfg, SYMBOL_SDR_BLOCK, sdr_block); STORE_RC_DOUBLE(cfg, SYMBOL_SDR_CW_LOW, sdr_cw_low); STORE_RC_DOUBLE(cfg, SYMBOL_SDR_CW_HIGH, sdr_cw_high); STORE_RC_DOUBLE(cfg, SYMBOL_SDR_SSB_LOW, sdr_ssb_low); STORE_RC_DOUBLE(cfg, SYMBOL_SDR_SSB_HIGH, sdr_ssb_high); STORE_RC_INT (cfg, SYMBOL_SDR_REC_DSP_TYPE, sdr_rec_dsp_type); STORE_RC_INT (cfg, SYMBOL_SDR_PLAY_DSP_TYPE, sdr_play_dsp_type); STORE_RC_INT (cfg, SYMBOL_SDR_PA_REC, sdr_pa_rec); STORE_RC_INT (cfg, SYMBOL_SDR_PA_PLAY, sdr_pa_play); STORE_RC_STRING(cfg, SYMBOL_SDR_PCM_REC, sdr_pcm_rec); STORE_RC_STRING(cfg, SYMBOL_SDR_PCM_PLAY, sdr_pcm_play); STORE_RC_STRING(cfg, SYMBOL_SDR_SNDFILENAME, sdr_sndfilename); STORE_RC_STRING(cfg, SYMBOL_WIKI_URL, wiki_url); STORE_RC_STRING(cfg, SYMBOL_WIKI_USER, wiki_user); STORE_RC_STRING(cfg, SYMBOL_WIKI_PASS, wiki_pass); STORE_RC_INT (cfg, SYMBOL_WIKI_MAP, wiki_map); STORE_RC_INT (cfg, SYMBOL_WIKI_CHART, wiki_chart); } /* force logging */ #if 0 cfg->trace_sock=1; cfg->trace_qsos=1; #endif return G_TOKEN_NONE; } gint read_rc_file(gchar *filename, const char *text){ FILE *f; GScanner *scanner; guint expected; gint errors; char *buf = NULL; /* dbg("read_rc_file(%s)\n", filename);*/ f=NULL; if (filename){ long len; long rd; f=fopen(filename,"rt"); if (!f) return -1; if (fseek(f, 0L, SEEK_END)) { fclose(f); dbg("can't fseek SEEK_END\n"); return -1; } len = ftell(f); if (fseek(f, 0L, SEEK_SET)) { fclose(f); dbg("can't fseek SEEK_SET\n"); return -1; } buf = g_new0(char, len + 1); rd = fread(buf, 1, len, f); if (rd <= 0){ // rd != len under WIN32 fclose(f); dbg("can't fread(%d)=%d\n", len, rd); return -1; } buf[rd] = '\0'; // fclose(f); filename = NULL; text = buf; } scanner = g_scanner_new(NULL); scanner->config->numbers_2_int = TRUE; scanner->config->symbol_2_token = TRUE; add_symbols(scanner); if (filename){ g_scanner_input_file(scanner, fileno(f)); // unreached scanner->input_name = filename; }else{ g_scanner_input_text(scanner, text, strlen(text)); filename="internal_default.rc"; scanner->input_name = filename; } errors=0; do{ //dbg("line %d\n", scanner->line); /*if (scanner->line == 882){ int x = 1; }*/ expected = read_one_token(scanner); if (expected == G_TOKEN_SYMBOL) { errors++; //dbg("errors=%d\n", errors); } /*dbg("expected=%d\n",expected);*/ g_scanner_peek_next_token(scanner); } while (scanner->next_token != G_TOKEN_EOF && scanner->next_token != G_TOKEN_ERROR); g_scanner_destroy(scanner); if (f) fclose(f); if (buf) g_free(buf); /* dbg("call %s\n", cfg->call);*/ if (errors){ log_addf(VTEXT(T_FOUND_D_ERRORS),errors, errors>1?"s":"",filename); //dbg("Found %d error%s while reading %s\n",errors, errors>1?"s":"",filename); return errors; } return 0; } gint read_rc_line(gchar *str){ GScanner *scanner; guint expected; gint errors; scanner = g_scanner_new(NULL); scanner->config->numbers_2_int = TRUE; scanner->config->symbol_2_token = TRUE; add_symbols(scanner); g_scanner_input_text(scanner, str, strlen(str)); scanner->input_name = "network"; errors=0; do{ expected = read_one_token(scanner); if (expected == G_TOKEN_SYMBOL) errors++; /*dbg("expected=%d\n",expected);*/ g_scanner_peek_next_token(scanner); } while (expected == G_TOKEN_NONE && scanner->next_token != G_TOKEN_EOF && scanner->next_token != G_TOKEN_ERROR); if (expected != G_TOKEN_NONE){ g_scanner_unexp_token(scanner, (GTokenType)expected, NULL, "symbol", NULL, NULL, TRUE); }; g_scanner_destroy(scanner); if (errors){ log_addf(VTEXT(T_FOUND_D_ERRORS_RC_NET), errors); } return 0; } void terminate_bh(void *xxx){ zselect_terminate(zsel); } void show_rc_error(void *arg){ msg_box(NULL, VTEXT(T_ERROR), AL_CENTER, VTEXT(T_CANT_LOAD_CFG), NULL, 1, VTEXT(T_CANCEL), terminate_bh, B_ENTER | B_ESC); } void show_rc_warning(void *arg){ msg_box(NULL, VTEXT(T_WARNING), AL_CENTER, VTEXT(T_ERR_RC), NULL, 1, VTEXT(T_CANCEL), NULL, B_ENTER | B_ESC); } gint read_rc_files(void){ gchar *user,*local; int fail1,fail2,fail3; int i; char **c;tl = (long long)time(NULL) << 6; cfg->loglines = 3; cfg->skedcount = 5; cfg->global_operator = 1; cfg->ssbd_plev = -1; cfg->ssbd_rlev = -1; cfg->ssbd_period_time = 50; cfg->ssbd_pa_play = -1; cfg->ssbd_pa_rec = -1; cfg->fontheight = 16; cfg->net_remote_port = 55555; #ifdef Z_ANDROID cfg->usetouch = 1; cfg->net_masterpriority = 7; #else cfg->net_masterpriority = 5; #endif #ifdef HAVE_PORTAUDIO cfg->sdr_rec_dsp_type = cfg->sdr_play_dsp_type = DSPT_PORTAUDIO; #endif #ifdef HAVE_ALSA cfg->sdr_rec_dsp_type = cfg->sdr_play_dsp_type = DSPT_ALSA; cfg->sdr_pcm_rec = g_strdup("hw:1,0"); cfg->sdr_pcm_play = g_strdup("default"); #endif cfg->sdr_speed = 48000; cfg->sdr_af_speed = 12000; fail1=0; user = g_strconcat(tucnak_dir, "/tucnakrc", NULL); z_wokna(user); fail2=read_rc_file(user, NULL); dbg("read_rc_file('%s', NULL)=%d\n", user, fail2); g_free(user); if (fail2==-1){ /* reads global config only if no user config exists */ fail1=read_rc_file(NULL, txt_tucnakrc); dbg("read_rc_file(NULL, txt_tucnakrc)=%d\n", fail1); #ifdef Z_ANDROID cfg->cwda_type = CWD_NONE; cfg->fullscreen = 1; #endif } local = g_strconcat(tucnak_dir, "/tucnakrc.local", NULL); z_wokna(local); fail3=read_rc_file(local, NULL); g_free(local); c = (char **)cfg; for (i = 0; i<10 && (*c)[i]; i++){ tl <<= 6; tl |= ((*c)[i] - '.') % 64; } tl &= 0x7fffffffffffffffLL; #ifdef Z_ANDROID /* cfg->pcall = g_strdup("ANDR0ID"); cfg->pwwlo = g_strdup("JN69UN");*/ #endif if (!cfg->pcall || !cfg->pwwlo) zselect_bh_new(zsel, show_rc_error, NULL); else if (fail1>0 || fail2>0 || fail3>0) zselect_bh_new(zsel, show_rc_warning, NULL); #ifdef Z_HAVE_SDL if (sdl){ if (cfg->gfx_x<=0) cfg->gfx_x=106*FONT_W; if (cfg->gfx_y<=0) cfg->gfx_y=42*FONT_H; } #endif if (!cfg->ssbd_pcm_play) cfg->ssbd_pcm_play =g_strdup("hw:0,0"); if (!cfg->ssbd_pcm_rec) cfg->ssbd_pcm_rec =g_strdup("hw:0,0"); if (!cfg->ssbd_alsa_mixer) cfg->ssbd_alsa_mixer=g_strdup("hw:0"); if (!cfg->ssbd_alsa_src) cfg->ssbd_alsa_src =g_strdup("Mic"); if (!cfg->cwda_vid) cfg->cwda_vid = 0xa600; if (!cfg->cwda_pid) cfg->cwda_pid = 0xe110; if (!cfg->cwda_io_port) cfg->cwda_io_port = 0x378; #ifdef __CYGWIN__ cfg->ssbd_type=0; /* Alsa not available under cygwin */ #endif if (cfg->cwda_weight < 30){ cfg->cwda_weight = 50 + (cfg->cwda_weight * cfg->cwda_speed ) / 48; } if (cfg->cwda_weight > 70) cfg->cwda_weight = 70; return 0; } #define S(item) safe_strncpy0(ss, item, 1024) #define U(item) z_str_uc(S(item)) void save_rc_string(GString *gs){ char ss[1026]; struct term_spec *t; int i; char *fpath; g_string_sprintfa(gs, "# This file is generated automatically. Edit only at your own risk!\n\n"); g_string_sprintfa(gs, "pcall = \"%s\"\n", U(cfg->pcall)); g_string_sprintfa(gs, "pwwlo = \"%s\"\n", U(cfg->pwwlo)); g_string_sprintfa(gs, "pexch = \"%s\"\n", U(cfg->pexch)); g_string_sprintfa(gs, "operator = \"%s\"\n", U(cfg->operator_)); g_string_sprintfa(gs, "global_operator = %d\n", cfg->global_operator); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "padr1 = \"%s\"\n", S(cfg->padr1)); g_string_sprintfa(gs, "padr2 = \"%s\"\n", S(cfg->padr2)); g_string_sprintfa(gs, "pclub = \"%s\"\n", U(cfg->pclub)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "rname = \"%s\"\n", S(cfg->rname)); g_string_sprintfa(gs, "rcall = \"%s\"\n", U(cfg->rcall)); g_string_sprintfa(gs, "radr1 = \"%s\"\n", S(cfg->radr1)); g_string_sprintfa(gs, "radr2 = \"%s\"\n", S(cfg->radr2)); g_string_sprintfa(gs, "rpoco = \"%s\"\n", S(cfg->rpoco)); g_string_sprintfa(gs, "rcity = \"%s\"\n", S(cfg->rcity)); g_string_sprintfa(gs, "rcoun = \"%s\"\n", S(cfg->rcoun)); g_string_sprintfa(gs, "rphon = \"%s\"\n", S(cfg->rphon)); g_string_sprintfa(gs, "rhbbs = \"%s\"\n", S(cfg->rhbbs)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "default_rs = \"%s\"\n", U(cfg->default_rs)); g_string_sprintfa(gs, "default_rst = \"%s\"\n", U(cfg->default_rst)); g_string_sprintfa(gs, "qsop_method = %d\n", cfg->qsop_method); g_string_sprintfa(gs, "total_method = %d\n", cfg->total_method); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "as_disk_qso = %d\n", cfg->as_disk_aq); g_string_sprintfa(gs, "as_disk_min = %d\n", cfg->as_disk_am); g_string_sprintfa(gs, "as_disk_fsync = %d\n", cfg->as_disk_fsync); g_string_sprintfa(gs, "as_floppy_qso = %d\n", cfg->as_floppy_aq); g_string_sprintfa(gs, "as_floppy_min = %d\n", cfg->as_floppy_am); g_string_sprintfa(gs, "as_floppy_fsync = %d\n", cfg->as_floppy_fsync); g_string_sprintfa(gs, "as_mount_floppy = %d\n", cfg->as_mount); fpath = g_strdup(S(cfg->as_floppy_path)); z_unix(fpath); g_string_sprintfa(gs, "as_floppy_path = \"%s\"\n", fpath); g_free(fpath); g_string_sprintfa(gs, "as_mount_cmd = \"%s\"\n", S(cfg->as_mount_cmd)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "net_if_ignore = \"%s\"\n", S(cfg->net_if_ignore)); g_string_sprintfa(gs, "net_ip_ignore = \"%s\"\n", S(cfg->net_ip_ignore)); g_string_sprintfa(gs, "net_ip_announce = \"%s\"\n", S(cfg->net_ip_announce)); g_string_sprintfa(gs, "net_remote_enable = %d\n", cfg->net_remote_enable); g_string_sprintfa(gs, "net_remote_host = \"%s\"\n", S(cfg->net_remote_host)); g_string_sprintfa(gs, "net_remote_port = %d\n", cfg->net_remote_port); g_string_sprintfa(gs, "net_remote_pass = \"%s\"\n", S(cfg->net_remote_pass)); g_string_sprintfa(gs, "net_masterpriority = %d\n", cfg->net_masterpriority); g_string_sprintfa(gs, "trace_bcast = %d\n", cfg->trace_bcast); g_string_sprintfa(gs, "trace_sock = %d\n", cfg->trace_sock); g_string_sprintfa(gs, "trace_recv = %d\n", cfg->trace_recv); g_string_sprintfa(gs, "trace_send = %d\n", cfg->trace_send); g_string_sprintfa(gs, "trace_qsos = %d\n", cfg->trace_qsos); g_string_sprintfa(gs, "trace_rig = %d\n", cfg->trace_rig); g_string_sprintfa(gs, "trace_sdev = %d\n", cfg->trace_sdev); g_string_sprintfa(gs, "trace_keys = %d\n", cfg->trace_keys); g_string_sprintfa(gs, "language= %d\n", current_language); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "cwda_type = %d\n", cfg->cwda_type); g_string_sprintfa(gs, "cwda_device_s = \"%s\"\n", S(cfg->cwda_device)); g_string_sprintfa(gs, "cwda_hostname = \"%s\"\n", U(cfg->cwda_hostname)); g_string_sprintfa(gs, "cwda_udp_port = %d\n", cfg->cwda_udp_port); g_string_sprintfa(gs, "cwda_io_port = 0x%x\n", cfg->cwda_io_port); g_string_sprintfa(gs, "cwda_speed = %d\n", cfg->cwda_speed); g_string_sprintfa(gs, "cwda_weight = %d\n", cfg->cwda_weight); g_string_sprintfa(gs, "cwda_minwpm = %d\n", cfg->cwda_minwpm); g_string_sprintfa(gs, "cwda_maxwpm = %d\n", cfg->cwda_maxwpm); g_string_sprintfa(gs, "cwda_spk = %d\n", cfg->cwda_spk); g_string_sprintfa(gs, "cwda_leadin = %d\n", cfg->cwda_leadin); g_string_sprintfa(gs, "cwda_vid = 0x%04x\n", cfg->cwda_vid); g_string_sprintfa(gs, "cwda_pid = 0x%04x\n", cfg->cwda_pid); g_string_sprintfa(gs, "cwda_autgive = %d\n", cfg->cwda_autgive); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "wk_wk2 = %d\n", cfg->wk_wk2); g_string_sprintfa(gs, "wk_usepot = %d\n", cfg->wk_usepot); g_string_sprintfa(gs, "wk_usebut = %d\n", cfg->wk_usebut); g_string_sprintfa(gs, "wk_keymode = %d\n", cfg->wk_keymode); g_string_sprintfa(gs, "wk_swap = %d\n", cfg->wk_swap); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_type = %d\n", cfg->ssbd_type); g_string_sprintfa(gs, "ssbd_record = %d\n", cfg->ssbd_record); g_string_sprintfa(gs, "ssbd_maxmin = %d\n", cfg->ssbd_maxmin); g_string_sprintfa(gs, "ssbd_diskfree = %d\n", cfg->ssbd_diskfree); g_string_sprintfa(gs, "ssbd_format = 0x%x\n", cfg->ssbd_format); g_string_sprintfa(gs, "ssbd_channels = %d\n", cfg->ssbd_channels); g_string_sprintfa(gs, "ssbd_samplerate = %d\n", cfg->ssbd_samplerate); g_string_sprintfa(gs, "ssbd_plev = %d\n", cfg->ssbd_plev); g_string_sprintfa(gs, "ssbd_rlev = %d\n", cfg->ssbd_rlev); g_string_sprintfa(gs, "ssbd_template = \"%s\"\n", S(cfg->ssbd_template)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_dsp = \"%s\"\n", S(cfg->ssbd_dsp)); g_string_sprintfa(gs, "ssbd_maxfrag = %d\n", cfg->ssbd_maxfrag); g_string_sprintfa(gs, "ssbd_mixer = \"%s\"\n", S(cfg->ssbd_mixer)); g_string_sprintfa(gs, "ssbd_oss_src = \"%s\"\n", S(cfg->ssbd_oss_src)); /*g_string_sprintfa(gs, "ssbd_recsrc = 0x%x\n", cfg->ssbd_recsrc);*/ g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_pcm_play = \"%s\"\n", S(cfg->ssbd_pcm_play)); g_string_sprintfa(gs, "ssbd_pcm_rec = \"%s\"\n", S(cfg->ssbd_pcm_rec)); g_string_sprintfa(gs, "ssbd_period_time = %d\n", cfg->ssbd_period_time); g_string_sprintfa(gs, "ssbd_buffer_time = %d\n", cfg->ssbd_buffer_time); g_string_sprintfa(gs, "ssbd_alsa_mixer = \"%s\"\n", S(cfg->ssbd_alsa_mixer)); g_string_sprintfa(gs, "ssbd_alsa_src = \"%s\"\n", S(cfg->ssbd_alsa_src)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_hostname = \"%s\"\n", S(cfg->ssbd_hostname)); g_string_sprintfa(gs, "ssbd_udp_port = %d\n", cfg->ssbd_udp_port); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ssbd_pa_play = %d\n", cfg->ssbd_pa_play); g_string_sprintfa(gs, "ssbd_pa_rec = %d\n", cfg->ssbd_pa_rec); /* g_string_sprintfa(gs, "ssbd_pipe = %d\n", cfg->ssbd_pipe); g_string_sprintfa(gs, "ssbd_command = \"%s\"\n", cfg->ssbd_command);*/ g_string_sprintfa(gs, "\n\n"); for (i=0; icrotars->len; i++){ struct config_rotar *crot; crot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, i); g_string_sprintfa(gs, "ROTAR = %d\n", crot->nr); g_string_sprintfa(gs, " rot_desc = \"%s\"\n", S(crot->rot_desc)); g_string_sprintfa(gs, " rot_type = %d\n", crot->rot_type); g_string_sprintfa(gs, " rot_filename = \"%s\"\n", S(crot->rot_filename)); g_string_sprintfa(gs, " rot_hostname = \"%s\"\n", S(crot->rot_hostname)); g_string_sprintfa(gs, " rot_port = %d\n", crot->rot_port); g_string_sprintfa(gs, " rot_vid = 0x%04x\n", crot->rot_vid); g_string_sprintfa(gs, " rot_pid = 0x%04x\n", crot->rot_pid); g_string_sprintfa(gs, " rot_serial = \"%s\"\n", S(crot->rot_serial)); g_string_sprintfa(gs, " rot_timeout_ms = %d\n", crot->rot_timeout_ms); g_string_sprintfa(gs, " rot_beamwidth = %d\n", crot->rot_beamwidth); g_string_sprintfa(gs, " rot_saddr = %d\n", crot->rot_saddr); g_string_sprintfa(gs, " rot_model = %d\n", crot->rot_model); g_string_sprintfa(gs, " rot_rem_rotstr = \"%s\"\n", S(crot->rot_rem_rotstr)); g_string_sprintfa(gs, " rot_poll_ms = %d\n", crot->rot_poll_ms); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); for (i = 0; i < cfg->crigs->len; i++){ struct config_rig *crig; crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); g_string_sprintfa(gs, "RIG = %d\n", i); g_string_sprintfa(gs, " rig_enabled = %d\n", crig->rig_enabled); g_string_sprintfa(gs, " rig_desc = \"%s\"\n", S(crig->rig_desc)); g_string_sprintfa(gs, " rig_filename = \"%s\"\n", S(crig->rig_filename)); g_string_sprintfa(gs, " rig_model = %d\n", crig->rig_model); g_string_sprintfa(gs, " rig_speed = %d\n", crig->rig_speed); g_string_sprintfa(gs, " rig_civaddr = %d\n", crig->rig_civaddr); g_string_sprintfa(gs, " rig_lo = %f\n", crig->rig_lo); g_string_sprintfa(gs, " rig_ssbcw_shift = %d\n", crig->rig_ssbcw_shift); g_string_sprintfa(gs, " rig_poll_ms = %d\n", crig->rig_poll_ms); g_string_sprintfa(gs, " rig_qrg_r2t = %d\n", crig->rig_qrg_r2t); g_string_sprintfa(gs, " rig_qrg_t2r = %d\n", crig->rig_qrg_t2r); g_string_sprintfa(gs, " rig_mode_t2r = %d\n", crig->rig_mode_t2r); g_string_sprintfa(gs, " rig_clr_rit = %d\n", crig->rig_clr_rit); g_string_sprintfa(gs, " rig_ptt_t2r = %d\n", crig->rig_ptt_t2r); g_string_sprintfa(gs, " rig_verbose = %d\n", crig->rig_verbose); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "loglines = %d\n", cfg->loglines); g_string_sprintfa(gs, "skedcount = %d\n", cfg->skedcount); g_string_sprintfa(gs, "startband = \"%s\"\n", S(cfg->startband)); g_string_sprintfa(gs, "gfx_x = %d\n", cfg->gfx_x); g_string_sprintfa(gs, "gfx_y = %d\n", cfg->gfx_y); g_string_sprintfa(gs, "fontheight = %d\n", cfg->fontheight); g_string_sprintfa(gs, "slashkey = \"%s\"\n", S(cfg->slashkey)); g_string_sprintfa(gs, "ntpq = %d\n", cfg->ntpq); g_string_sprintfa(gs, "dssaver = %d\n", cfg->dssaver); g_string_sprintfa(gs, "splitheight = %d\n", cfg->splitheight); g_string_sprintfa(gs, "fullscreen = %d\n", cfg->fullscreen); g_string_sprintfa(gs, "maximized = %d\n", cfg->maximized); g_string_sprintfa(gs, "usetouch = %d\n", cfg->usetouch); g_string_sprintfa(gs, "touchpos = %d\n", cfg->touchpos); g_string_sprintfa(gs, "altsyms = %d\n", cfg->altsyms); g_string_sprintfa(gs, "nolocks = %d\n", cfg->nolocks); g_string_sprintfa(gs, "portrait = %d\n", cfg->portrait); g_string_sprintfa(gs, "reverse = %d\n", cfg->reverse); for (i=0; itakeoff->len;i++){ struct takeoff *toff; toff=(struct takeoff*)g_ptr_array_index(cfg->takeoff, i); g_string_sprintfa(gs, "takeoff = \"%3d,%3d,%2d\"\n", toff->from, toff->to, toff->value); } g_string_sprintfa(gs, "\n\n"); g_string_sprintfa(gs, "dxc_host = \"%s\"\n", S(cfg->dxc_host)); g_string_sprintfa(gs, "dxc_port = %d\n", cfg->dxc_port); g_string_sprintfa(gs, "dxc_user = \"%s\"\n", S(cfg->dxc_user)); g_string_sprintfa(gs, "dxc_pass = \"%s\"\n", S(cfg->dxc_pass)); g_string_sprintfa(gs, "kst_user = \"%s\"\n", S(cfg->kst_user)); g_string_sprintfa(gs, "kst_pass = \"%s\"\n", S(cfg->kst_pass)); g_string_sprintfa(gs, "kst_name = \"%s\"\n", S(cfg->kst_name)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "httpd_enable = %d\n", cfg->httpd_enable); g_string_sprintfa(gs, "httpd_port = %d\n", cfg->httpd_port); g_string_sprintfa(gs, "httpd_show_priv = %d\n", cfg->httpd_show_priv); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "ac_enable = %d\n", cfg->ac_enable); g_string_sprintfa(gs, "ac_url = \"%s\"\n", cfg->ac_url); g_string_sprintfa(gs, "ac_kfactor = %3.3f\n", cfg->ac_kfactor); g_string_sprintfa(gs, "ac_arwidth = %3.1f\n", cfg->ac_arwidth); g_string_sprintfa(gs, "ac_minelev = %3.1f\n", cfg->ac_minelev); g_string_sprintfa(gs, "ac_maxelev = %3.1f\n", cfg->ac_maxelev); g_string_sprintfa(gs, "ac_mindur = %d\n", cfg->ac_mindur); g_string_sprintfa(gs, "ac_maxdelta = %3.1f\n", cfg->ac_maxdelta); g_string_sprintfa(gs, "ac_minalt = %d\n", cfg->ac_minalt); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "sdr_enable = %d\n", cfg->sdr_enable); g_string_sprintfa(gs, "sdr_cw = %d\n", cfg->sdr_cw); g_string_sprintfa(gs, "sdr_lsb = %d\n", cfg->sdr_lsb); g_string_sprintfa(gs, "sdr_speed = %d\n", cfg->sdr_speed); g_string_sprintfa(gs, "sdr_af_speed = %d\n", cfg->sdr_af_speed); g_string_sprintfa(gs, "sdr_block = %d\n", cfg->sdr_block); g_string_sprintfa(gs, "sdr_zero = %f\n", cfg->sdr_zero); g_string_sprintfa(gs, "sdr_cw_low = %f\n", cfg->sdr_cw_low); g_string_sprintfa(gs, "sdr_cw_high = %f\n", cfg->sdr_cw_high); g_string_sprintfa(gs, "sdr_ssb_low = %f\n", cfg->sdr_ssb_low); g_string_sprintfa(gs, "sdr_ssb_high = %f\n", cfg->sdr_ssb_high); g_string_sprintfa(gs, "sdr_rec_dsp_type = %d\n", cfg->sdr_rec_dsp_type); g_string_sprintfa(gs, "sdr_play_dsp_type = %d\n", cfg->sdr_play_dsp_type); g_string_sprintfa(gs, "sdr_pa_rec = %d\n", cfg->sdr_pa_rec); g_string_sprintfa(gs, "sdr_pa_play = %d\n", cfg->sdr_pa_play); g_string_sprintfa(gs, "sdr_pcm_rec = \"%s\"\n", S(cfg->sdr_pcm_rec)); g_string_sprintfa(gs, "sdr_pcm_play = \"%s\"\n", S(cfg->sdr_pcm_play)); fpath = g_strdup(S(cfg->sdr_sndfilename)); z_unix(fpath); g_string_sprintfa(gs, "sdr_sndfilename = \"%s\"\n", fpath); g_free(fpath); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, "wiki_url = \"%s\"\n", S(cfg->wiki_url)); g_string_sprintfa(gs, "wiki_user = \"%s\"\n", S(cfg->wiki_user)); g_string_sprintfa(gs, "wiki_pass = \"%s\"\n", S(cfg->wiki_pass)); g_string_sprintfa(gs, "wiki_map = %d\n", cfg->wiki_map); g_string_sprintfa(gs, "wiki_chart = %d\n", cfg->wiki_chart); g_string_sprintfa(gs, "\n"); for (i=0; icqs->len; i++){ struct cq *cq; cq = (struct cq *) g_ptr_array_index(cfg->cqs, i); g_string_sprintfa(gs, "CQ = %d\n", i); g_string_sprintfa(gs, " cw_str = \"%s\"\n", S(cq->cw_str)); g_string_sprintfa(gs, " cw_speed = %d\n", cq->cw_speed); g_string_sprintfa(gs, " cw_repeat = %d\n", cq->cw_repeat); g_string_sprintfa(gs, " cw_ts = %d\n", cq->cw_ts); g_string_sprintfa(gs, " cw_allowifundef = %d\n", cq->cw_allowifundef); g_string_sprintfa(gs, " ssb_file = \"%s\"\n", S(cq->ssb_file)); g_string_sprintfa(gs, " ssb_ts = %d\n", cq->ssb_ts); g_string_sprintfa(gs, " ssb_repeat = %d\n", cq->ssb_repeat); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); foreach(t, term_specs){ g_string_sprintfa(gs, "TERM = \"%s\"\n", S(t->term)); g_string_sprintfa(gs, " term_mode = %d\n", t->mode); g_string_sprintfa(gs, " term_m11_hack = %d\n", t->m11_hack); g_string_sprintfa(gs, " term_restrict_852 = %d\n", t->restrict_852); g_string_sprintfa(gs, " term_col = %d\n", t->col); g_string_sprintfa(gs, " term_utf_8_io = %d\n", t->utf_8_io); g_string_sprintfa(gs, " term_charset = %d\n", t->charset); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); for (i=0; isubwins->len; i++){ struct subwin *sw; sw = (struct subwin *) g_ptr_array_index(gses->subwins, i); g_string_sprintfa(gs, "SUBWIN = %d # %d:%s\n", i, i + 1, sw->title); g_string_sprintfa(gs, " sw_type = %d\n", sw->type); g_string_sprintfa(gs, " sw_command = \"\"\n"); g_string_sprintfa(gs, " sw_autorun = \"\"\n"); g_string_sprintfa(gs, " sw_respawn_time = 5\n"); g_string_sprintfa(gs, "\n"); } g_string_sprintfa(gs, "\n"); for (i=0; ibands->len; i++){ struct config_band *b; b = (struct config_band *) g_ptr_array_index(cfg->bands, i); g_string_sprintfa(gs, "PBAND = \"%s\"\n", S(b->pband)); g_string_sprintfa(gs, " bandchar = \"%c\"\n", tolower(b->bandchar)); g_string_sprintfa(gs, " qrv = %d\n", b->qrv); g_string_sprintfa(gs, " psect = %d\n", b->psect); g_string_sprintfa(gs, " opsect = \"%s\"\n", S(b->opsect)); g_string_sprintfa(gs, " readonly = %d\n", b->readonly); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, " stxeq = \"%s\"\n", S(b->stxeq)); g_string_sprintfa(gs, " spowe = \"%s\"\n", S(b->spowe)); g_string_sprintfa(gs, " srxeq = \"%s\"\n", S(b->srxeq)); g_string_sprintfa(gs, " sante = \"%s\"\n", S(b->sante)); g_string_sprintfa(gs, " santh = \"%s\"\n", S(b->santh)); g_string_sprintfa(gs, " mope1 = \"%s\"\n", S(b->mope1)); g_string_sprintfa(gs, " mope2 = \"%s\"\n", S(b->mope2)); g_string_sprintfa(gs, " remarks = \"%s\"\n", S(b->remarks)); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, " ok_section_single = \"%s\"\n", S(b->ok_section_single)); g_string_sprintfa(gs, " ok_section_multi = \"%s\"\n", S(b->ok_section_multi)); g_string_sprintfa(gs, " qrg_min = %d\n", b->qrg_min); g_string_sprintfa(gs, " qrg_max = %d\n", b->qrg_max); g_string_sprintfa(gs, " adifband = \"%s\"\n", S(b->adifband)); g_string_sprintfa(gs, " cbrband = \"%s\"\n", S(b->cbrband)); g_string_sprintfa(gs, " skedqrg = \"%s\"\n", S(b->skedqrg)); g_string_sprintfa(gs, " band_lo = %f\n", b->band_lo); g_string_sprintfa(gs, " band_sw = 0x%02x\n", b->band_sw); g_string_sprintfa(gs, "\n"); } } gint save_rc_file(gchar *filename){ FILE *f; GString *gs; int ret, w, h; char *portrait_filename; char *reverse_filename; #ifdef Z_HAVE_SDL cfg->maximized = zsdl_maximized(zsdl, &w, &h); if (cfg->maximized){ cfg->gfx_x = w; cfg->gfx_y = h; } #endif gs = g_string_sized_new(10000); f=fopen(filename,"wt"); if (!f) { /* c = g_strconcat("Can't open file '", filename, "'", NULL); errbox(c,0); g_free(c);*/ return errno; } save_rc_string(gs); ret = fprintf(f, "%s", gs->str) != gs->len ? errno:0; fclose(f); g_string_free(gs, TRUE); portrait_filename = g_strdup_printf("%s/portrait", tucnak_dir); if (cfg->portrait) { FILE *f = fopen(portrait_filename, "w"); if (f) fclose(f); }else{ unlink(portrait_filename); } reverse_filename = g_strdup_printf("%s/reverse", tucnak_dir); if (cfg->reverse) { FILE *f = fopen(reverse_filename, "w"); if (f) fclose(f); }else{ unlink(reverse_filename); } return ret; } int term_spec_init(void){ struct term_spec *ts; if (!(ts = new_term_spec("linux"))) return -1; ts->mode = 1; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; if (!(ts = new_term_spec("xterm"))) return -1; ts->mode = 1; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; if (!(ts = new_term_spec("screen"))) return -1; ts->mode = 1; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; if (!(ts = new_term_spec("cygwin"))) return -1; ts->mode = 2; ts->m11_hack = 1; ts->restrict_852 = 0; ts->col = 1; ts->utf_8_io = 0; ts->charset = 2; return 0; } char *parse_options(int argc, char **argv){ int c; //char *s; while (1){ /*int option_index = 0; static struct option long_options[] = { // {"debug", 2, 0, 'd'}, {"help", 0, 0, 'h'}, {"version", 0, 0, 'v'}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "dghikmstv?", long_options, &option_index);*/ c = getopt(argc, argv, ":dghikmst?x"); if (c == -1) break; switch (c){ case 0: /* printf ("option %s", long_options[option_index].name);*/ if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case 'd': // handler by libzia, is here to prevent 'invalid option' message break; case 'g': opt_g++; break; case 'h': case '?': /*printf ("option h\n");*/ break; case 'i': opt_i++; break; case 'k': debug_keyboard=1; break; case 'm': opt_m++; break; case 's': opt_s++; break; case 't': opt_t++; break; case 'x': opt_x++; break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc){ printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } #ifdef Z_MSC_MINGW opt_t = 0; opt_g = 1; //opt_i = 1; #endif #ifdef Z_ANDROID opt_t = 0; opt_g = 1; #endif return NULL; } gdouble get_rig_lo(struct band *band, int rignr){ struct config_band *confb; struct config_rig *crig; crig = get_config_rig_by_number(cfg->crigs, rignr); if (!band) return crig->rig_lo; confb = get_config_band_by_bandchar(band->bandchar); if (!confb) return crig->rig_lo; if (!confb->band_lo) return crig->rig_lo; return confb->band_lo; } void set_rig_lo(struct band *band, int rignr, gdouble lo){ struct config_band *confb; struct config_rig *crig; crig = get_config_rig_by_number(cfg->crigs, rignr); if (!band) goto global; confb = get_config_band_by_bandchar(band->bandchar); if (!confb) goto global; if (!confb->band_lo) goto global; confb->band_lo = lo; return; global:; crig->rig_lo = lo; /*for (i = 0; i < gtrigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(gtrigs->trigs, i); if (trig == rignr) trig->lo } */ } tucnak-4.04/src/menu.c0000644000175000017500000014715712557502351011572 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "adif.h" #include "bfu.h" #include "charsets.h" #include "chart.h" #include "control.h" #include "cwdaemon.h" #include "cwdb.h" #include "dwdb.h" #include "dxc.h" #include "edi.h" #include "excdb.h" #include "fifo.h" #include "html.h" #include "inputln.h" #include "kst.h" #include "main.h" #include "masterdb.h" #include "menu.h" #include "namedb.h" #include "net.h" #include "qrvdb.h" #include "qsodb.h" #include "rotar.h" #include "tsdl.h" #include "session.h" #include "ssbd.h" #include "state.h" #include "stats.h" #include "subwin.h" #include "svnversion.h" #include "terminal.h" #include "tregex.h" #include "update.h" #include "vhfcontestnet.h" #ifdef VOIP #include "voip.h" #endif #include "wiki.h" #include "misc.h" void menu_about(void *arg) { msg_box(NULL, VTEXT(T_ABOUT), AL_CENTER, VTEXT(T_TUCNAK__TACLOG_LIKE), NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); } void menu_copying(void *arg) { msg_box(NULL, VTEXT(T_COPYING), AL_CENTER, VTEXT(T_COPYING_VER), NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); } void menu_version(void *arg) { static char s[256]; g_snprintf(s, sizeof(s), VTEXT(T_TUCNAK_SVN_LIBZIA_SVN), T_SVNVER, z_svnver()); msg_box(NULL, VTEXT(T_VERSION), AL_CENTER, s, NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); } void menu_info(void *arg){ GString *gs = g_string_sized_new(1024); sw_raise_or_new(SWT_LOG); info(gs); fifo_add_lines(glog, gs->str); g_string_free(gs, TRUE); } void menu_settings(void *arg){ GString *gs = g_string_sized_new(1024); sw_raise_or_new(SWT_LOG); settings(gs); fifo_add_lines(glog, gs->str); g_string_free(gs, TRUE); } void menu_contest_new(void *arg) { if (ctest){ msg_box(NULL, VTEXT(T_WARNING), AL_CENTER,VTEXT(T_CTEST_ACTIVE), NULL,1, VTEXT(T_CANCEL), NULL, B_ENTER |B_ESC); return; } contest_options1_from_menu(arg); } void menu_contest_new_wizz(void *arg) { if (ctest){ msg_box(NULL, VTEXT(T_WARNING),AL_CENTER, VTEXT(T_CTEST_ACTIVE), NULL,1, VTEXT(T_CANCEL), NULL, B_ENTER |B_ESC); return; } menu_wizz(arg); } void menu_contest1_options_from_ctest(void *arg) { contest_options1_from_ctest(arg); } static int select_dir_func(const char *dir, const struct dirent *de){ struct stat st; gchar *f; int r; if (strcmp((char *)de->d_name, "00000000")==0) return 0; r = regcmp((char *)de->d_name, "^[0-9]{8}(\\.[0-9]+)?$"); if (r) return 0; f = g_strconcat(tucnak_dir, "/", de->d_name, NULL); if (stat(f, &st)) { g_free(f); return 0; } g_free(f); if (!S_ISDIR(st.st_mode)) return 0; return 1; } /*int compare_dir_func(const struct dirent **pde1, const struct dirent **pde2){*/ static int compare_dir_func(const void *d1, const void *d2){ const char *c1, *c2; int r, n1, n2; const struct dirent **pde1, **pde2; pde1=(const struct dirent **)d1; pde2=(const struct dirent **)d2; r = strncmp( (*pde1)->d_name, (*pde2)->d_name, 8); if (r!=0) return -r; c1 = strchr( (*pde1)->d_name , '.'); c2 = strchr( (*pde2)->d_name , '.'); n1 = c1 ? atoi(c1+1) : 0; n2 = c2 ? atoi(c2+1) : 0; return n2 - n1; } static struct menu_item no_contests[] = { {CTEXT(T_NO_CTESTS), "", M_BAR, NULL, NULL, 0, 0}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; void menu_load_contest(void *dir, void * unused){ /*dbg("menu_load_contest('%s')\n", dir);*/ int x; gchar *date = (char*)dir; x = zst_start(); load_contest_edi(date, 0); zst_stop(x, __FUNCTION__); redraw_later(); } static struct dirent **namelist=NULL; static int namelistlen = 0; void contest_choose(void (*funcall)(struct menu *menu)) { int i, n, max=0; gchar *dir; struct menu_item *mi = NULL; char s[1025], *d; //dbg("open contest \n"); progress(VTEXT(T_DIRECTORY_SCAN)); free_namelist(); dir = g_strdup(tucnak_dir); n = z_scandir(dir, &namelist, select_dir_func, compare_dir_func); if (n<=0){ progress(NULL); set_window_ptr(gses->win, (term->x-6-11)/2,(term->y-2)/2); do_menu(no_contests, NULL); return; } if (!(mi = new_menu(3))) return; for (i=0; id_name); z_wokna(c); f = fopen(c, "rt"); if (f){ if (z_lockf(fileno(f), F_TEST, 0, 1)) locked=1; fclose(f); } g_free(c); c=g_strdup_printf("%s/%s/desc", dir, namelist[i]->d_name); memset(s, 0, sizeof(s)); d = NULL; z_wokna(c); f = fopen(c, "rt"); if (f){ if (z_lockf(fileno(f), F_TEST, 0, 1)) locked=1; if (fgets(s, 1024,f) != NULL){ if (strlen(s)>0 && s[strlen(s)-1]=='\n') s[strlen(s)-1]='\0'; if (strlen(s)>0 && s[strlen(s)-1]=='\r') s[strlen(s)-1]='\0'; d = strchr(s,' '); if (d) d++; } fclose(f); } g_free(c); if (!d) d=s; if (strlen(d)>50) d[50]='\0'; items=g_strsplit(d, " ", 2); if (items && items[0] && items[1]){ c = g_strdup_printf("%-12s%-6s %s", namelist[i]->d_name, items[0], items[1]); }else{ c = g_strdup_printf("%-12s%s", namelist[i]->d_name, d); } if (items) g_strfreev(items); if (strlen(c)>max) max=strlen(c); ami = add_to_menu(&mi, g_strdup(c), locked? "!":"", "", menu_load_contest, namelist[i]->d_name, 0); if (funcall){ ami->checkbox = 1; ami->funcall = funcall; } g_free(c); } g_free(dir); progress(NULL); set_window_ptr(gses->win, (term->x-6-max)/2,(term->y-2-i)/2); do_menu(mi, NULL); } void free_namelist(){ z_free_namelist(namelist, namelistlen); } void menu_contest_open(void *arg){ contest_choose(NULL); } static void really_close_ctest(void) { rel_write_all("CL\n"); save_all_bands_txt(0); free_ctest(); } void menu_save_all(void *arg){ save_all_bands_txt(0); } void menu_export_edi(void *arg){ export_all_bands_edi(); } void menu_export_adif(void *arg){ export_all_bands_adif(); } void menu_export_cbr(void *arg){ export_all_bands_cbr(); } void menu_export_report(void *arg){ export_all_bands_report(); } void menu_export_html(void *arg){ export_all_bands_html(); } void menu_export_stats(void *arg) { export_stats_fifo(); } void menu_export_titlpage(void *arg) { export_all_bands_titlpage(); } void menu_export_wiki(void *arg){ export_all_bands_wiki(); } void menu_import_edi(void *arg){ char *pwd; pwd=getcwd(NULL, 0); if ( #ifdef Z_HAVE_SDL !sdl || #endif zfiledlg_open(zfiledlg, zsel, import_edi, NULL, "", "edi") < 0){ input_field(NULL, VTEXT(T_IMPORT_EDI), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_edi, NULL, 1); } if (pwd) free(pwd); } void menu_import_adif(void *arg){ char *pwd; pwd=getcwd(NULL, 0); if ( #ifdef Z_HAVE_SDL !sdl || #endif zfiledlg_open(zfiledlg, zsel, import_adif, NULL, "", "adi*") < 0){ input_field(NULL, VTEXT(T_IMPORT_ADIF), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_adif, NULL, 1); } if (pwd) free(pwd); } void menu_import_swap(void *arg){ char *pwd; pwd=getcwd(NULL, 0); if ( #ifdef Z_HAVE_SDL !sdl || #endif zfiledlg_open(zfiledlg, zsel, import_swap, NULL, "", "swp*") < 0){ input_field(NULL, VTEXT(T_IMPORT_SWAP), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_swap, NULL, 1); } if (pwd) free(pwd); } void menu_import_list(void *arg){ char *pwd; pwd=getcwd(NULL, 0); if ( #ifdef Z_HAVE_SDL !sdl || #endif zfiledlg_open(zfiledlg, zsel, import_list, NULL, "", "*") < 0){ input_field(NULL, VTEXT(T_IMPORT_LIST), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, import_list, NULL, 1); } if (pwd) free(pwd); } void menu_contest_close(void *arg) { if (!ctest){ msg_box(NULL, VTEXT(T_WARNING),AL_CENTER,VTEXT(T_NO_CCLOSE),NULL,1, VTEXT(T_CANCEL), NULL, B_ENTER |B_ESC); return; } msg_box(NULL, VTEXT(T_REALLY), AL_CENTER, VTEXT(T_CLOSE_CTEST),gses, 2, VTEXT(T_YES), (void (*)(void *))really_close_ctest, B_ENTER, VTEXT(T_NO), NULL, B_ESC); } /****************************************************************************/ static void really_exit_prog(void) { //zselect_bh_new(zsel, destroy_terminal, NULL); zselect_terminate(zsel); } static void dont_exit_prog(void) { gses->exit_query = 0; } static void query_exit(void) { gses->exit_query = 1; msg_box(NULL, VTEXT(T_EXIT_TUCNAK), AL_CENTER, VTEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK), gses, 2, VTEXT(T_YES), (void (*)(void *))really_exit_prog, B_ENTER, VTEXT(T_NO), dont_exit_prog, B_ESC); } void exit_prog(void *arg) { if (!gses) { //zselect_bh_new(zsel, destroy_terminal, NULL); zselect_terminate(zsel); return; } query_exit(); } void refresh(struct refresh *r) { struct refresh rr; r->timer = -1; memcpy(&rr, r, sizeof(struct refresh)); delete_window(r->win); rr.fn(rr.data); redraw_later(); } static void end_refresh(struct refresh *r) { if (r->timer != -1) zselect_timer_kill(zsel, r->timer); g_free(r); } void refresh_abort(struct dialog_data *dlg) { end_refresh((struct refresh*)dlg->dlg->udata2); } /*static void memory_cld(struct terminal *term, void *d) { #ifdef LEAK_DEBUG last_mem_amount = mem_amount; #endif } */ /* FIXME! overflow */ #define MSG_BUF 4000 #define MSG_W 100 #define LEN 30 void memory_info(void *arg) { char message[MSG_BUF]; char *p; struct refresh *r; FILE *f; char s[1026], *c1, *c2, *c3; int cnt=1; char *act_sbrk; if (!(r = (struct refresh *)g_malloc(sizeof(struct refresh)))) return; r->win = NULL; r->fn = memory_info; r->data = arg; r->timer = -1; p = message; #ifdef LEAK_DEBUG p += sprintf(p, VTEXT(T_GUI_LD), mem_amount); if (last_mem_amount != -1) p += sprintf(p, ", %s %ld, %s %ld", VTEXT(T_LAST), last_mem_amount, VTEXT(T_DIFFERENCE), mem_amount - last_mem_amount); #endif p += sprintf(p, VTEXT(T_CWI), get_cw_size(cw), get_wc_size(cw), cw->latest); p += sprintf(p, VTEXT(T_EXC), excdb->excname, get_exc_size(excdb), get_cxe_size(excdb), excdb->latest); p += sprintf(p, VTEXT(T_VEXC), get_vexc_size(excdb)); p += sprintf(p, VTEXT(T_DWI), get_pd_size(dw), get_dw_size(dw), get_wd_size(dw)); p += sprintf(p, VTEXT(T_NAMES), get_namedb_size(namedb)); p += sprintf(p, VTEXT(T_MASTER), get_masterdb_size(masterdb)); f = fopen("/proc/self/status", "rt"); if (f){ p+=sprintf(p,VTEXT(T_MEMS), 0xf00l); while (fgets(s, 1024, f)!=NULL){ /* dbg("%s", s);*/ if (regmatch(s, "Vm(.*):. *([0-9 a-zA-Z]+)", &c1, &c2, &c3, NULL)==0){ /* dbg("match '%s' '%s' \n", c2, c3);*/ p+=sprintf(p, " %s=%s ", c2, c3); cnt++; if (cnt==3){ cnt=0; p+=sprintf(p, "\n"); } g_free(c1);g_free(c2);g_free(c3); } } fclose(f); } p += sprintf(p, "\n"); #ifdef Z_UNIX_ANDROID act_sbrk = (char *)sbrk(0); p += sprintf(p, VTEXT(T_SBRK), act_sbrk-starting_sbrk); #endif if (!(p = g_strdup(message))) { g_free(r); return; } msg_box(getml(p, NULL), VTEXT(T_MEMORY_INFO), AL_LEFT, p, r, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = zselect_timer_new(zsel, RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); } void net_info(void *arg); void net_reload_ifaces(void *data, struct dialog_item_data *di){ free_net_ifaces(gnet); init_net_ifaces(gnet, 1); net_info(NULL); } void net_info(void *arg) { char message[MSG_BUF]; char *p; struct refresh *r; int i; time_t now; char bytes[LEN]; char hms[LEN]; if (!(r = (struct refresh*)g_malloc(sizeof(struct refresh)))) return; now = time(NULL); r->win = NULL; r->fn = net_info; r->data = arg; r->timer = -1; p = message; p += sprintf(p, "%s", VTEXT(T_NMY)); if (!gnet->v3compatibility) p += sprintf(p, "%d/", cfg->net_masterpriority); p += sprintf(p, "%s:%d", inet_ntoa(gnet->my.sin_addr), ntohs(gnet->my.sin_port)); if (gnet->v3compatibility) p += sprintf(p, "%s", VTEXT(T_V3_COMPATIBILITY)); p += sprintf(p, "\n"); p += sprintf(p, "%s", VTEXT(T_NGLOBAL)); if (!gnet->v3compatibility) p += sprintf(p, "%d/", gnet->global_priority); p += sprintf(p, "%s:%d\n", inet_ntoa(gnet->global.sin_addr), ntohs(gnet->global.sin_port)); if (gnet->master){ p += sprintf(p, "%s %s %s %s:%d %s up %s %s %s\n", VTEXT(T_NMASTER), ns_desc[gnet->master->state], gnet->master->operator_?gnet->master->operator_:"", inet_ntoa(gnet->master->sin.sin_addr), ntohs(gnet->master->sin.sin_port), gnet->master->is_same_ctest?"OK":"--", z_format_hms(hms, LEN, now - gnet->master->start), z_format_bytes(bytes, LEN, gnet->master->rx + gnet->master->tx), get_timer_str(gnet->master)); } if (gnet->remote){ p += sprintf(p, "%s %s %s %s:%d %s up %s %s %s\n", VTEXT(T_NREMOTE), ns_desc[gnet->remote->state], gnet->remote->operator_?gnet->remote->operator_:"", inet_ntoa(gnet->remote->sin.sin_addr), ntohs(gnet->remote->sin.sin_port), gnet->remote->is_same_ctest?"OK":"--", z_format_hms(hms, LEN, now - gnet->remote->start), z_format_bytes(bytes, LEN, gnet->remote->rx + gnet->remote->tx), get_timer_str(gnet->remote)); } if (gnet->peers->len>0){ p += sprintf(p, VTEXT(T_NSLAVES), 0xf001); } for (i=0;ipeers->len; i++){ struct conn *conn; conn = (struct conn*)g_ptr_array_index(gnet->peers, i); /*p += sprintf(p, "%s %s:%d\n", ns_desc[conn->state], inet_ntoa(conn->sin.sin_addr), ntohs(conn->sin.sin_port)); */ p += sprintf(p, "%s %-6s %s %s up %s %s %s\n", ns_desc[conn->state], conn->operator_?conn->operator_:"", conn->remote_id, conn->is_same_ctest?"OK":"--", z_format_hms(hms, LEN, now - conn->start), z_format_bytes(bytes, LEN, conn->rx + conn->tx), get_timer_str(conn)); } if (!(p = g_strdup(message))) { g_free(r); return; } //msg_box(getml(p, NULL), VTEXT(T_NINFO), AL_LEFT, p, r, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); msg_box(getml(p, NULL), VTEXT(T_NINFO), AL_LEFT, p, r, 2, VTEXT(T_OK), NULL, B_ENTER | B_ESC, VTEXT(T_RELOAD_INTERFACES), net_reload_ifaces, 0); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = zselect_timer_new(zsel, RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); } void crash_test(void *a, void *b){ #ifdef Z_MSC struct state *state; state = init_state(); state_save(state); #endif { int *pi = NULL; *pi = 0; } } void internal_test(void *a, void *b){ zinternal("Simulation of internal error"); } static struct menu_item no_bands_qrv_menu[] = { {CTEXT(T_NO_BANDS_QRV), "", M_BAR, NULL, NULL, 0, 0}, {NULL, NULL, 0, NULL, NULL, 0, 0} }; static struct menu_item no_bands_configured_menu[] = { {CTEXT(T_NO_BANDS_CONF), "", M_BAR, NULL, NULL, 0, 0}, {NULL, NULL, 0, NULL, NULL, 0, 0}, }; void menu_activate_band(void *arg){ struct band *b; char *pband; pband=(char*)arg; /*dbg("menu_activate_band(term=%p, pband='%s', ses=%p)\n",term,pband,ses);*/ b=find_band_by_pband(pband); activate_band(b); } void menu_setup_band(void *arg){ /* cba.charp=pband */ band_settings(arg, 0); } void menu_bands(void *arg) { struct menu_item *mi = NULL; int i, sel = 0; if (!ctest || !ctest->bands->len) { /* void *arg2; cba2.menu_item=no_bands_qrv_menu;*/ do_menu(no_bands_qrv_menu, NULL); return; } for (i=0;ibands->len;i++){ struct band *b; static char *bandstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; b = (struct band *)g_ptr_array_index(ctest->bands,i); if (!mi) if (!(mi = new_menu(3))) return; if (b == aband) sel = i; add_to_menu(&mi, g_strdup_printf("%-7s%s", b->bandname, b->readonly ? " (ro)" : ""), bandstrs[b->bi], bandstrs[b->bi], MENU_FUNC arg, b->pband, 0); } add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_SET_READONLY)), "S", "S", MENU_FUNC robands, NULL, 0); do_menu_selected(mi, NULL, sel); } void menu_cfg_bands(void *arg) { struct menu_item *mi = NULL; int i; if (!cfg || !cfg->bands->len) { do_menu(no_bands_configured_menu, NULL); return; } for (i=0;ibands->len;i++){ struct config_band *b; static char *bandstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; b = (struct config_band *)g_ptr_array_index(cfg->bands,i); if (!b->qrv) continue; if (!mi) if (!(mi = new_menu(3))) return; // dbg("add_to_menu(%c,'%s','%s')\n", b->bandchar1, b->pband, bandstrs[zupcase(b->bandchar)-'A']); add_to_menu(&mi, g_strdup(b->pband), bandstrs[b->bandchar-'A'], bandstrs[b->bandchar-'A'], MENU_FUNC arg, b->pband, 0); } if (mi) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); for (i=0;ibands->len;i++){ struct config_band *b; static char *bandstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; b = (struct config_band *)g_ptr_array_index(cfg->bands,i); if (b->qrv) continue; if (!mi) if (!(mi = new_menu(3))) return; add_to_menu(&mi, g_strdup(b->pband), bandstrs[b->bandchar-'A'], bandstrs[b->bandchar-'A'], MENU_FUNC arg, b->pband, 0); } do_menu(mi, NULL); } /*static struct menu_item not_available[] = { {CTEXT(T_NOT_AVAILABLE), "", M_BAR, NULL, NULL, 0, 0}, {NULL, NULL, 0, NULL, NULL, 0, 0} };*/ void menu_activate_subwin(void *arg){ /*dbg("menu_activate_subwin %d\n", (int)ddd);*/ int n = GPOINTER_TO_INT(arg); if (sw_set_ontop(n, 0)){ if (gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); }else{ sw_unset_focus(); il_set_focus(INPUTLN(aband)); } redraw_later(); } } void menu_kill_connection(void *arg, void *arg2){ struct subwin *sw = (struct subwin *)arg; switch (sw->type){ case SWT_KST: sw_kst_disconnect(sw); break; case SWT_DXC: sw_dxc_disconnect(sw); break; default: break; } } void menu_send_ctrlc(void *arg, void *arg2){ struct subwin *sw = (struct subwin *)arg; sw_shell_enter(sw, "\x03", 0); } void subwins_menu(void *arg) { struct menu_item *mi = NULL; int i, sep = 0; char s[16]; /*if (!ctest) { do_menu(not_available, NULL); return; } */ if (!(mi = new_menu(3))) return; add_to_menu(&mi, g_strdup(VTEXT(T_ADD_SUBWIN)), "", VTEXT(T_HK_ADD_SUBWIN), MENU_FUNC menu_add_subwin, GINT_TO_POINTER(0), 0); add_to_menu(&mi, g_strdup(VTEXT(T_CLOSE_SUBWIN)), "", VTEXT(T_HK_CLOSE_SUBWIN), MENU_FUNC menu_close_subwin, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_CHANGE_TYPE)), "", VTEXT(T_HK_CHANGE_TYPE), MENU_FUNC menu_add_subwin, GINT_TO_POINTER(1), 0); // TODO text /*add_to_menu(&mi, g_strdup("Split window"), "", "S", MENU_FUNC menu_split_subwin, NULL, 0); add_to_menu(&mi, g_strdup("Remove split"), "", "R", MENU_FUNC menu_remove_split, NULL, 0);*/ if (arg == NULL) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw != gses->ontop) continue; switch (sw->type){ case SWT_KST: if (arg != NULL && sep == 0) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_OPEN_CONNECTION)), "", VTEXT(T_HK_OPEN_CONNECTION), kst_open_connection, sw, 0); add_to_menu(&mi, g_strdup(VTEXT(T_KILL_CONNECTION)), "", VTEXT(T_HK_KILL_CONNECTION), menu_kill_connection, sw, 0); add_to_menu(&mi, g_strdup(VTEXT(T_EXPORT_TO_TEXT_FILE)), "", VTEXT(T_HK_EXPORT_TO_TEXT_FILE), kst_export_text, sw, 0); add_to_menu(&mi, g_strdup("OK1MZM: >>>> Press HERE <<<<"), "", "D", kst_dump_skip, sw, 0); sep = 1; break; case SWT_DXC: if (arg != NULL && sep == 0) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_OPEN_CONNECTION)), "", VTEXT(T_HK_OPEN_CONNECTION), dxc_open_connection, sw, 0); add_to_menu(&mi, g_strdup(VTEXT(T_KILL_CONNECTION)), "", VTEXT(T_HK_KILL_CONNECTION), menu_kill_connection, sw, 0); add_to_menu(&mi, g_strdup(VTEXT(T_EXPORT_TO_TEXT_FILE)), "", CTEXT(T_HK_EXPORT_TO_TEXT_FILE), dxc_export_text, sw, 0); sep = 1; break; case SWT_SHELL: if (arg != NULL && sep == 0) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_KILL_CONNECTION)), "", VTEXT(T_HK_KILL_CONNECTION), menu_send_ctrlc, sw, 0); sep = 1; break; case SWT_CHART: if (arg != NULL && sep == 0) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_ADD_CONTEST)), "", VTEXT(T_HK_ADD_CONTEST), menu_chart_add_contest, sw, 0); add_to_menu(&mi, g_strdup(VTEXT(T_ADD_FILES)), "", VTEXT(T_HK_ADD_FILES), menu_chart_add_files, sw, 0); sep = 1; break; case SWT_QRV: if (arg != NULL && sep == 0) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_ADD_CONTESTS)), "", VTEXT(T_HK_ADD_CONTESTS), menu_qrv_add_contest, sw, 0); sep = 1; break; default: break; } } if (arg == NULL) { if (sep) add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw; char *rtext = ""; sw = (struct subwin *)g_ptr_array_index(gses->subwins,i); if (i <= 9) rtext = g_strdup_printf(VTEXT(T_ALTC), '0' + ((i + 1) % 10)); else if (i <= 19 && zsdl_get()) rtext = g_strdup_printf(VTEXT(T_CTRLC), '0' + ((i + 1) % 10)); sprintf(s,"%d", i); add_to_menu(&mi, g_strdup(sw->title), rtext, "", MENU_FUNC menu_activate_subwin, GINT_TO_POINTER(i), 0); } } do_menu(mi, NULL); } /****************** NETWORK ********************************************/ void display_codepage(void *arg) { int cp = GPOINTER_TO_INT(arg); struct term_spec *t = new_term_spec(term->term); if (t) t->charset = cp; redraw_terminal_cls(); } void charset_list(void *arg) { int i, sel; char *n; struct menu_item *mi; if (!(mi = new_menu(1))) return; for (i = 0; (n = get_cp_name(i)); i++) { if (is_cp_special(i)) continue; add_to_menu(&mi, get_cp_name(i), "", "", MENU_FUNC display_codepage, GINT_TO_POINTER(i), 0); } sel = term->spec->charset; if (sel < 0) sel = 0; do_menu_selected(mi, NULL, sel); } /*void set_val(cba_t *ip, cba_t *d) { *d = (vint)ip; } void charset_sel_list(void *arg) { int i, sel; char *n; struct menu_item *mi; if (!(mi = new_menu(1))) return; for (i = 0; (n = get_cp_name(i)); i++) { void *arg2; cba2.int_=i; add_to_menu(&mi, get_cp_name(i), "", "", MENU_FUNC set_val, cba2, 0); } sel = *ptr; if (sel < 0) sel = 0; do_menu_selected(term, mi, ptr, sel); } */ static void terminal_options_ok(void *p) { redraw_terminal_cls(); } static char *td_labels[] = { CTEXT(T_NO_FRAMES), CTEXT(T_VT_100_FRAMES), CTEXT(T_LINUX_OR_OS2_FRAMES), CTEXT(T_KOI8R_FRAMES), CTEXT(T_USE_11M), CTEXT(T_RESTRICT_FRAMES_IN_CP850_852), CTEXT(T_BLOCK_CURSOR), CTEXT(T_COLOR), CTEXT(T_UTF_8_IO), NULL }; void terminal_options(void *arg) { struct dialog *d; struct term_spec *ts = new_term_spec(term->term); if (!ts) return; if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 12 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 12 * sizeof(struct dialog_item)); d->title = VTEXT(T_TERMINAL_OPTIONS); d->fn = checkbox_list_fn; d->udata = td_labels; d->refresh = (void (*)(void *))terminal_options_ok; d->items[0].type = D_CHECKBOX; d->items[0].gid = 1; d->items[0].gnum = TERM_DUMB; d->items[0].dlen = sizeof(int); d->items[0].data = (char *)&ts->mode; d->items[1].type = D_CHECKBOX; d->items[1].gid = 1; d->items[1].gnum = TERM_VT100; d->items[1].dlen = sizeof(int); d->items[1].data = (char *)&ts->mode; d->items[2].type = D_CHECKBOX; d->items[2].gid = 1; d->items[2].gnum = TERM_LINUX; d->items[2].dlen = sizeof(int); d->items[2].data = (char *)&ts->mode; d->items[3].type = D_CHECKBOX; d->items[3].gid = 1; d->items[3].gnum = TERM_KOI8; d->items[3].dlen = sizeof(int); d->items[3].data = (char *)&ts->mode; d->items[4].type = D_CHECKBOX; d->items[4].gid = 0; d->items[4].dlen = sizeof(int); d->items[4].data = (char *)&ts->m11_hack; d->items[5].type = D_CHECKBOX; d->items[5].gid = 0; d->items[5].dlen = sizeof(int); d->items[5].data = (char *)&ts->restrict_852; d->items[6].type = D_CHECKBOX; d->items[6].gid = 0; d->items[6].dlen = sizeof(int); d->items[6].data = (char *)&ts->block_cursor; d->items[7].type = D_CHECKBOX; d->items[7].gid = 0; d->items[7].dlen = sizeof(int); d->items[7].data = (char *)&ts->col; d->items[8].type = D_CHECKBOX; d->items[8].gid = 0; d->items[8].dlen = sizeof(int); d->items[8].data = (char *)&ts->utf_8_io; d->items[9].type = D_BUTTON; d->items[9].gid = B_ENTER; d->items[9].fn = ok_dialog; d->items[9].text = VTEXT(T_OK); d->items[10].type = D_BUTTON; d->items[10].gid = B_ESC; d->items[10].fn = cancel_dialog; d->items[10].text = VTEXT(T_CANCEL); d->items[11].type = D_END; do_dialog(d, getml(d, NULL)); } #ifndef Z_MSC_MINGW void menu_shell(void *arg) { char *sh; if (!(sh = GETSHELL)) sh = DEFAULT_SHELL; exec_on_terminal(sh, "", 1); } #endif void menu_set_language(void *arg) { set_language(GPOINTER_TO_INT(arg)); redraw_terminal_cls(); } void menu_language_list(void *arg) { int i, sel; char *n; struct menu_item *mi; if (!(mi = new_menu(1))) return; for (i = 0; i < n_languages(); i++) { n = language_name(i); add_to_menu(&mi, n, "", "", MENU_FUNC menu_set_language, GINT_TO_POINTER(i), 0); } sel = current_language; do_menu_selected(mi, NULL, sel); } static struct menu_item file_menu22[] = { /* "", "", M_BAR, NULL, NULL, 0, 0,*/ #ifdef HAVE_SNDFILE {CTEXT(T_PLAY_LAST), CTEXT(T_CTRLP), CTEXT(T_HK_PLAY_LAST), MENU_FUNC menu_play_last, NULL, 0, 0}, {CTEXT(T_BREAK_RECORD), "", CTEXT(T_HK_BREAK_RECORD), MENU_FUNC menu_break_record, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, #endif {CTEXT(T_MEMORY_INFO), "", CTEXT(T_HK_MEMORY_INFO), MENU_FUNC memory_info, NULL, 0, 0}, {CTEXT(T_NINFO), "", CTEXT(T_HK_NINFO), MENU_FUNC net_info, NULL, 0, 0}, // {CTEXT(T_CRASH_TEST), "", CTEXT(T_HK_CRASH_TEST), crash_test, NULL, 0, 0}, // {CTEXT(T_INTERROR_TEST), "", CTEXT(T_HK_INTERNAL_TEST), internal_test, NULL, 0, 0}, {CTEXT(T_DUMP_RW_BANDS), "", CTEXT(T_HK_DUMP_RW_BANDS), dump_rw, NULL, 0, 0}, {CTEXT(T_UPDATE), "", CTEXT(T_HK_UPDATE), update_tucnak, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0} }; static struct menu_item file_menu3[] = { {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_EXIT), "", CTEXT(T_HK_EXIT), MENU_FUNC exit_prog, NULL, 0, 0}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; void do_file_menu(void *arg) { int x,file_menu1_size; struct menu_item *file_menu, *e, *f; file_menu1_size=0; if (!(file_menu = (struct menu_item*)g_malloc0(file_menu1_size + sizeof(file_menu22) + sizeof(file_menu3) + 3 * sizeof(struct menu_item)))) return; e = file_menu; memcpy(e, file_menu22, sizeof(file_menu22)); e += sizeof(file_menu22) / sizeof(struct menu_item); x = 1; #ifdef Z_HAVE_SDL if (sdl) { /* e->text = VTEXT(T_OS_SHELL); e->rtext = ""; e->hotkey = VTEXT(T_HK_OS_SHELL); e->data = NULL; e->in_m = 0; e->free_i = 0; e++; x = 0; */ }else #endif { #ifndef Z_MSC_MINGW e->text = VTEXT(T_OS_SHELL); e->rtext = ""; e->hotkey = VTEXT(T_HK_OS_SHELL); e->func = MENU_FUNC menu_shell; e->data = NULL; e->in_m = 0; e->free_i = 0; e++; x = 0; #endif } memcpy(e, file_menu3 + x, sizeof(file_menu3) - x * sizeof(struct menu_item)); e += sizeof(file_menu3) / sizeof(struct menu_item); for (f = file_menu; f < e; f++) f->free_i = 1; do_menu(file_menu, NULL); } #ifndef Z_HAVE_SDL #undef sdl #endif static struct menu_item help_menu[] = { {CTEXT(T_ABOUT), "", CTEXT(T_HK_ABOUT), MENU_FUNC menu_about, NULL, 0, 0}, {CTEXT(T_COPYING), "", CTEXT(T_HK_COPYING), MENU_FUNC menu_copying, NULL, 0, 0}, {CTEXT(T_VERSION), "", CTEXT(T_HK_VERSION), MENU_FUNC menu_version, NULL, 0, 0}, {CTEXT(T_INFO), "", CTEXT(T_HK_INFO), MENU_FUNC menu_info, NULL, 0, 0}, {CTEXT(T_SETTINGS), "", CTEXT(T_HK_SETTINGS), MENU_FUNC menu_settings, NULL, 0, 0}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; /************************* CONTEST MENU *********************************/ static struct menu_item ctest_menu1[] = { {CTEXT(T_NEW), "", CTEXT(T_HK_NEW), MENU_FUNC menu_contest_new, NULL, 0, 0}, {CTEXT(T_NEW_WIZZ), ">", CTEXT(T_HK_NEW_WIZZ), MENU_FUNC menu_contest_new_wizz, NULL, 1, 0}, {CTEXT(T_NEW_NET), "", CTEXT(T_HK_NEW_NET), MENU_FUNC menu_discover_peers3, open_from_net3, 0, 0}, //{"New from net old", "", "O", MENU_FUNC menu_contest_config_from_peer, send_contest_config_request, 0, 0}, {CTEXT(T_OPEN), "F3 >", CTEXT(T_HK_OPEN), MENU_FUNC menu_contest_open, NULL, 1, 0}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; static struct menu_item ctest_menu2[] = { {CTEXT(T_SAVE), "F2", CTEXT(T_HK_SAVE), MENU_FUNC menu_save_all, NULL, 0, 0}, {CTEXT(T_FILLOP), "", CTEXT(T_HK_FILLOP), MENU_FUNC menu_fillop, GINT_TO_POINTER(1), 0, 0}, {CTEXT(T_QSO_CHECK), "", CTEXT(T_HK_QSO_CHECK), MENU_FUNC menu_qso_check, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_EXPORT_EDI), "", CTEXT(T_HK_EXPORT_EDI), MENU_FUNC menu_export_edi, NULL, 0, 0}, {CTEXT(T_UPLOAD_TO_VHFNET), "", CTEXT(T_HK_UPLOAD_TO_VHFNET), MENU_FUNC vhfcontestnet_upload, NULL, 0, 0}, {CTEXT(T_EXPORT_REPORT), "", CTEXT(T_HK_EXPORT_REPORT), MENU_FUNC menu_export_report, NULL, 0, 0}, {CTEXT(T_EXPORT_ADIF), "", CTEXT(T_HK_EXPORT_ADIF), MENU_FUNC menu_export_adif, NULL, 0, 0}, {CTEXT(T_EXPORT_HTML), "", CTEXT(T_HK_EXPORT_HTML), MENU_FUNC menu_export_html, NULL, 0, 0}, {CTEXT(T_EXPORT_STATS), "", CTEXT(T_HK_EXPORT_STATS), MENU_FUNC menu_export_stats, NULL, 0 , 0}, {CTEXT(T_EXPORT_TITLPAGE),"", CTEXT(T_HK_EXPORT_TITLPAGE), MENU_FUNC menu_export_titlpage, NULL, 0 , 0}, {CTEXT(T_EXPORT_CBR), "", CTEXT(T_HK_EXPORT_CBR), MENU_FUNC menu_export_cbr, NULL, 0, 0}, {CTEXT(T_EXPORT_WIKI), "", CTEXT(T_HK_EXPORT_WIKI), MENU_FUNC menu_export_wiki, NULL, 0, 0}, {CTEXT(T_MEDIAWIKI_UPLOAD), "", CTEXT(T_HK_MEDIAWIKI_UPLOAD), MENU_FUNC wiki_upload, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_IMPORT_EDI), "", CTEXT(T_HK_IMPORT_EDI), MENU_FUNC menu_import_edi, NULL, 0, 0}, {CTEXT(T_IMPORT_ADIF), "", CTEXT(T_HK_IMPORT_ADIF), MENU_FUNC menu_import_adif, NULL, 0, 0}, {CTEXT(T_IMPORT_SWAP), "", CTEXT(T_HK_IMPORT_SWAP), MENU_FUNC menu_import_swap, NULL, 0, 0}, {CTEXT(T_IMPORT_LIST), "", CTEXT(T_HK_IMPORT_LIST), MENU_FUNC menu_import_list, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_CONTEST_OP), "", CTEXT(T_HK_CONTEST_OP), MENU_FUNC menu_contest1_options_from_ctest, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_CLOSE_CONTEST), "", CTEXT(T_HK_CLOSE_CONTEST), MENU_FUNC menu_contest_close, NULL, 0, 0}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; void do_contest_menu(void *arg) { if (!ctest) do_menu(ctest_menu1, NULL); else do_menu(ctest_menu2, NULL); } /************************* EDIT MENU *********************************/ static struct menu_item edit_menu[] = { {CTEXT(T_RUN_MODE), "", CTEXT(T_HK_RUN_MODE), MENU_FUNC menu_runmode, NULL, 0, 0}, {CTEXT(T_SP_MODE), "", CTEXT(T_HK_SP_MODE), MENU_FUNC menu_spmode, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_1ST), "", CTEXT(T_HK_1ST), MENU_FUNC menu_extcq, GINT_TO_POINTER(EC_1ST), 0, 0}, {CTEXT(T_2ND), "", CTEXT(T_HK_2ND), MENU_FUNC menu_extcq, GINT_TO_POINTER(EC_2ND), 0, 0}, {CTEXT(T_ODD), "", CTEXT(T_HK_ODD), MENU_FUNC menu_extcq, GINT_TO_POINTER(EC_ODD), 0, 0}, {CTEXT(T_EVEN), "", CTEXT(T_HK_EVEN), MENU_FUNC menu_extcq, GINT_TO_POINTER(EC_EVEN), 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_ROTAR), "Alt+R", CTEXT(T_HK_ROTAR), MENU_FUNC menu_rotar, NULL, 0, 0}, {CTEXT(T_ADD_ERROR), "", CTEXT(T_HK_ADD_ERROR), MENU_FUNC menu_add_error, NULL, 0, 0}, {CTEXT(T_CHOP), "Alt+O", CTEXT(T_HK_CHOP), MENU_FUNC menu_chop, NULL, 0, 0}, {CTEXT(T_CALL_INFO), "Alt+I", CTEXT(T_HK_CALL_INFO), MENU_FUNC call_info, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_SKED_QRG), "Alt+F", CTEXT(T_HK_SKED_QRG), MENU_FUNC menu_skedqrg, NULL, 0, 0}, // {CTEXT(T_GRAB_BAND), "Alt+G", CTEXT(T_HK_GRAB_BAND), MENU_FUNC menu_grabband, NULL, 0, 0}, // {CTEXT(T_FORCE_RUN), "", CTEXT(T_HK_FORCE_RUN), MENU_FUNC menu_forcerun, NULL, 0, 0}, #ifdef HAVE_HAMLIB {CTEXT(T_FIXQRG), "", CTEXT(T_HK_FIXQRG), menu_fixqrg, NULL, 0, 0}, #endif {CTEXT(T_CH_SPY), "", CTEXT(T_HK_CH_SPY), menu_discover_peers3, spy3, 0, 0}, {CTEXT(T_CH_ENDSPY), "", CTEXT(T_HK_CH_ENDSPY), MENU_FUNC menu_endspy, NULL, 0}, #ifdef VOIP #ifdef HAVE_SNDFILE {CTEXT(T_VOIP_SPY), "", CTEXT(T_HK_VOIP_SPY), menu_discover_peers3, voip_spy, 0, 0}, {CTEXT(T_END_VOIP_SPY), "", CTEXT(T_HK_END_VOIP_SPY), voip_end_spy, NULL, 0, 0}, #endif #endif {"", "", M_BAR, NULL, NULL, 0, 0}, // {CTEXT(T_RECAQRB), "", CTEXT(T_HK_RECAQRB), MENU_FUNC menu_recalc_qrb, NULL, 0, 0}, {CTEXT(T_CW_CTEST), "", CTEXT(T_HK_CW_CTEST), MENU_FUNC menu_cw_update_contest, NULL, 0, 0}, {CTEXT(T_CW_BAND), "", CTEXT(T_HK_CW_BAND), MENU_FUNC menu_cw_update_band, NULL, 0, 0}, {CTEXT(T_EXC_CTEST), "", CTEXT(T_HK_EXC_CTEST), MENU_FUNC menu_exc_update_contest, NULL, 0, 0}, {CTEXT(T_EXC_BAND), "", CTEXT(T_HK_EXC_BAND), MENU_FUNC menu_exc_update_band, NULL, 0, 0}, {CTEXT(T_IMPORT_EBW), "", CTEXT(T_HK_IMPORT_EBW), MENU_FUNC menu_import_ebw, NULL, 0, 0}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; static struct menu_item edit_menu2[] = { {CTEXT(T_ROTAR), "Alt+R", CTEXT(T_HK_ROTAR), MENU_FUNC menu_rotar, NULL, 0, 0}, {CTEXT(T_CALL_INFO), "Alt+I", CTEXT(T_HK_CALL_INFO), MENU_FUNC call_info, NULL, 0, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, #ifdef HAVE_HAMLIB {CTEXT(T_FIXQRG), "", CTEXT(T_HK_FIXQRG), menu_fixqrg, NULL, 0, 0}, #endif #ifdef VOIP #ifdef HAVE_SNDFILE {CTEXT(T_VOIP_SPY), "", CTEXT(T_HK_VOIP_SPY), menu_discover_peers3, voip_spy, 0, 0}, {CTEXT(T_END_VOIP_SPY), "", CTEXT(T_HK_END_VOIP_SPY), voip_end_spy, NULL, 0, 0}, #endif #endif {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_IMPORT_EBW), "", CTEXT(T_HK_IMPORT_EBW), MENU_FUNC menu_import_ebw, NULL, 0, 0}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; void do_edit_menu(void *arg) { if (!ctest || !aband) do_menu(edit_menu2, NULL); else do_menu(edit_menu, NULL); } /************************** SETUP MENU ************************************/ void menu_save_rc(void *arg){ gchar *filename; gchar *c; int ret; filename = g_strconcat(tucnak_dir, "/tucnakrc", NULL); z_wokna(filename); ret=save_rc_file(filename); if (ret) { c = g_strdup_printf(VTEXT(T_CANT_WRITE_S), filename); errbox(c, ret); g_free(c); }else{ log_addf(VTEXT(T_SAVED_S), filename); } g_free(filename); } void do_peer_menu(void (* func)(void *arg)){ int i,max; struct menu_item *mi = NULL; gchar **items; items = g_strsplit(gnet->allpeers,";",0); max=0; for (i=0; items[i]!=NULL;i++){ if (strcmp(items[i],gnet->myid)==0) continue; if (strlen(items[i])==0) continue; if (!mi) if (!(mi = new_menu(3))) return; if (strlen(items[i])>max) max=strlen(items[i]); add_to_menu(&mi,g_strdup(items[i]),"", "", MENU_FUNC func, GINT_TO_POINTER(i), 0); } g_strfreev(items); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu(mi, NULL); }else errbox(VTEXT(T_NO_PEERS),0); return; } void do_peer_operators_menu(void (* func)(void *arg)){ int i,max; struct menu_item *mi = NULL; gchar **items,*c; items = g_strsplit(gnet->allpeers,";",0); max=0; for (i=0; items[i]!=NULL && items[i+1]!=NULL;i+=2){ if (strcmp(items[i],gnet->myid)==0) continue; if (strlen(items[i])==0) continue; if (!mi) if (!(mi = new_menu(3))) return; c=g_strdup_printf("%-8s %s", items[i+1], items[i]); if (strlen(c)>max) max=strlen(c); add_to_menu(&mi,g_strdup(c),"", "", MENU_FUNC func, GINT_TO_POINTER(i), 0); g_free(c); } g_strfreev(items); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu(mi, NULL); }else errbox(VTEXT(T_NO_PEERS),0); return; } void menu_load_from_peer(void *arg){ GString *gs; char *op; /*dbg("menu_load_from_peer\n"); */ if (cmp_sin(&gnet->global, &gnet->my)==0) { /* i'm master */ int i; struct conn *conn; /* LOOK ALSO net.c rel_write, dommand DO */ CONDGFREE(gnet->allpeers); gs=g_string_sized_new(100); for (i=0;ipeers->len;i++){ conn = (struct conn *)g_ptr_array_index(gnet->peers,i); if (!conn_prod_state(conn)) continue; op="---"; if (ctest && aband && conn->operator_) op=conn->operator_; g_string_sprintfa(gs,"%s;%s;", conn->remote_id, op); } gnet->allpeers=g_strdup(gs->str); g_string_free(gs,TRUE); do_peer_operators_menu(arg); /* todo */ return; } /* i'm slave */ if (!conn_prod_state(gnet->master)){ errbox(VTEXT(T_NO_MASTER),0); return; } gnet->peerfunc = (PEER_FUNC)arg; rel_write(gnet->master, "DO\n"); } void do_spy_peer_menu(void (* func)(void *arg)){ int i,max,menui; struct menu_item *mi = NULL; gchar **items,*c, *d; GString *gs; dbg("do_spy_peer_menu() rwbpeers='%s'\n", gnet->rwbpeers); items = g_strsplit(gnet->rwbpeers,";",0); gs = g_string_sized_new(200); max=0; menui=0; for (i=0; items[i]!=NULL && items[i+1]!=NULL && items[i+2]!=NULL; i+=3){ if (strcmp(items[i],gnet->myid)==0) continue; if (strlen(items[i])==0) continue; for (d=items[i+2]; *d!='\0'; d++){ if (!mi) if (!(mi = new_menu(3))) return; c=g_strdup_printf("%-6s %c %s", items[i+1], *d, items[i]); if (strlen(c)>max) max=strlen(c); add_to_menu(&mi,g_strdup(c),"", "", MENU_FUNC func, GINT_TO_POINTER(menui), 0); dbg("add_to_menu(%s) menui=%d\n", c, menui); g_free(c); g_string_sprintfa(gs, "%s;%s;%c;", items[i], items[i+1], *d); menui++; } } g_strfreev(items); CONDGFREE(gnet->bpeers); gnet->bpeers = g_strdup(gs->str); g_string_free(gs, TRUE); dbg("do_spy_peer_menu() bpeers='%s' menui=%d\n", gnet->bpeers, menui); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-i)/2); do_menu(mi, NULL); }else errbox(VTEXT(T_NO_PEERS),0); return; } void menu_spy_from_peer(void *arg){ GString *gs; char *op; char *rwb; /*dbg("menu_load_from_peer\n"); */ if (cmp_sin(&gnet->global, &gnet->my)==0) { /* i'm master */ int i; struct conn *conn; /* LOOK ALSO net.c rel_write, dommand DO */ CONDGFREE(gnet->rwbpeers); gs=g_string_sized_new(100); for (i=0;ipeers->len;i++){ conn = (struct conn *)g_ptr_array_index(gnet->peers,i); if (!conn_prod_state(conn)) continue; op="---"; if (ctest && aband && conn->operator_) op=conn->operator_; rwb=""; if (conn->rwbands) rwb=conn->rwbands; g_string_sprintfa(gs,"%s;%s;%s;", conn->remote_id, op, rwb); } gnet->rwbpeers=g_strdup(gs->str); g_string_free(gs,TRUE); do_spy_peer_menu((void (*)(void*))arg); return; } /* i'm slave */ if (!conn_prod_state(gnet->master)){ errbox(VTEXT(T_NO_MASTER),0); return; } gnet->peerfunc = (PEER_FUNC)arg; rel_write(gnet->master, "DR\n"); } void select_open_from_net3(void *itarg, void *menuarg){ load_from_net(itarg); } void open_from_net3(void *xxx){ int tok = 0, max = 0, menui = 0; char *peer, *id, *op, *s, *cdate, *pcall, *tname; struct menu_item *mi = NULL; char *peers3; progress(NULL); peers3 = g_strdup(gnet->peers3->str); while ((peer = z_tokenize(peers3, &tok)) != NULL){ int tok2 = 0; id = z_tokenize(peer, &tok2); op = z_tokenize(peer, &tok2); /*rwbands =*/ z_tokenize(peer, &tok2); cdate = z_tokenize(peer, &tok2); pcall = z_tokenize(peer, &tok2); tname = z_tokenize(peer, &tok2); if (!tname) continue; if (!mi) mi = new_menu(3); s = g_strdup_printf("%21s %s %s (%s) %s", id, cdate, pcall, op, tname); if (strlen(s) > max) max = strlen(s); add_to_menu(&mi, s, "", "", select_open_from_net3, GINT_TO_POINTER(menui), 0); menui++; } g_free(peers3); dbg("menui=%d\n"); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-menui)/2); do_menu(mi, NULL); }else errbox(VTEXT(T_NO_PEERS),0); } void select_spy3(void *itarg, void *menuarg){ char *peers3, *peer, *id, *rwbands, *c; int tok = 0, menui = 0, no = GPOINTER_TO_INT(itarg); dbg("select_spy3(%p, %p)\n", itarg, menuarg); peers3 = g_strdup(gnet->peers3->str); while ((peer = z_tokenize(peers3, &tok)) != NULL){ int tok2 = 0; id = z_tokenize(peer, &tok2); /*op =*/ z_tokenize(peer, &tok2); rwbands = z_tokenize(peer, &tok2); if (!rwbands) continue; for (c = rwbands; *c != '\0'; c++){ if (menui == no){ spypeer_add(id, *c, 1); return; } menui++; } } g_free(peers3); } void spy3(void *xxx){ int tok = 0, max = 0, menui = 0; char *peer, *id, *op, *rwbands, *c, *s; struct menu_item *mi = NULL; char *peers3; progress(NULL); if (ctest->oldcontest) { msg_box(NULL, VTEXT(T_ERROR),AL_CENTER,/*VTEXT*/VTEXT(T_OLD_TEST_NO_SPY),NULL,1, VTEXT(T_OK), NULL, B_ENTER |B_ESC); return; } peers3 = g_strdup(gnet->peers3->str); while ((peer = z_tokenize(peers3, &tok)) != NULL){ int tok2 = 0; id = z_tokenize(peer, &tok2); op = z_tokenize(peer, &tok2); rwbands = z_tokenize(peer, &tok2); if (!rwbands) continue; for (c = rwbands; *c != '\0'; c++){ struct band *b = find_band_by_bandchar(*c); if (!b) continue; if (!mi) mi = new_menu(3); s = g_strdup_printf("%-21s %7s %s", id, b->bandname, op); if (strlen(s) > max) max = strlen(s); add_to_menu(&mi, s, "", "", select_spy3, GINT_TO_POINTER(menui), 0); menui++; } } g_free(peers3); dbg("menui=%d\n"); if (mi){ set_window_ptr(gses->win, (term->x-max)/2,(term->y-2-menui)/2); do_menu(mi, NULL); }else errbox(VTEXT(T_NO_PEERS),0); } void menu_discover_peers3(void *itarg, void *menuarg){ if (gnet->peers3) g_string_free(gnet->peers3, TRUE); gnet->peers3 = g_string_sized_new(256); progress(VTEXT(T_NETWORK_SCAN)); rel_write_all("D3 \n"); gnet->timer3_id = zselect_timer_new(zsel, 1000, (void (*)(void *))itarg, NULL); } void menu_contest_config_from_peer(void *arg){ GString *gs; dbg("menu_contest_config_from_peer\n"); if (cmp_sin(&gnet->global, &gnet->my)==0) { /* i'm master */ int i; struct conn *tmpconn; struct zstring *zs; char *cdate, *pcall, *tname; /* LOOK ALSO net.c rel_write, dommand DC */ CONDGFREE(gnet->allpeers); gs=g_string_sized_new(100); for (i=0;ipeers->len;i++){ tmpconn = (struct conn *)g_ptr_array_index(gnet->peers,i); dbg("conn[%d]=%p %s\n", i, tmpconn, tcp_state_s(tmpconn)); if (!conn_prod_state(tmpconn)) continue; if (!tmpconn->remote_ac) continue; dbg("remote_ac=%s\n", tmpconn->remote_ac); zs = zstrdup(tmpconn->remote_ac); cdate = ztokenize(zs, 1); pcall = ztokenize(zs, 0); tname = ztokenize(zs, 0); if (tname && *tname) g_string_sprintfa(gs,"%s;%s %s %s;", tmpconn->remote_id, cdate, pcall, tname); zfree(zs); } dbg("allpeers=%s\n", gs->str); gnet->allpeers=g_strdup(gs->str); g_string_free(gs,TRUE); do_peer_operators_menu((void (*)(void*))arg); return; } /* i'm slave */ if (!conn_prod_state(gnet->master)){ errbox(VTEXT(T_NO_MASTER),0); return; } gnet->peerfunc = (PEER_FUNC)arg; rel_write(gnet->master, "DC\n"); } static struct menu_item setup_menu[] = { {CTEXT(T_CTEST_DEF), "", CTEXT(T_HK_CTEST_DEF), MENU_FUNC contest_def, GINT_TO_POINTER(0), 0, 0}, {CTEXT(T_BAND_DEF), ">", CTEXT(T_HK_BAND_DEF), MENU_FUNC menu_cfg_bands, menu_setup_band, 1, 0}, {CTEXT(T_RESPOP), "", CTEXT(T_HK_RESPOP), MENU_FUNC menu_responsible_op, NULL, 0, 0}, {CTEXT(T_CW_DAEMON), "", CTEXT(T_HK_CW_DAEMON), MENU_FUNC menu_cwda, NULL, 0, 0}, #ifdef HAVE_SNDFILE {CTEXT(T_AUDIO), "", CTEXT(T_HK_AUDIO), MENU_FUNC menu_ssbd, NULL, 0, 0}, #endif {CTEXT(T_CW_CQ), ">", CTEXT(T_HK_CW_CQ), MENU_FUNC menu_cq_cw, NULL, 1, 0}, {CTEXT(T_SSB_CQ), ">", CTEXT(T_HK_SSB_CQ), MENU_FUNC menu_cq_ssb, NULL, 1, 0}, #ifdef HAVE_HAMLIB {CTEXT(T_RIGOPTS), ">", CTEXT(T_HK_RIGOPTS), MENU_FUNC menu_rigs, NULL, 1, 0}, #endif {CTEXT(T_ROTAROPTS), ">", CTEXT(T_HK_ROTAROPTS), MENU_FUNC menu_rotars, NULL, 1, 0}, {CTEXT(T_AUTOSAVE), "", CTEXT(T_HK_AUTOSAVE), MENU_FUNC menu_autosave, NULL, 0, 0}, {CTEXT(T_NETWORK), "", CTEXT(T_HK_NETWORK), MENU_FUNC menu_network, NULL, 0, 0}, {CTEXT(T_MISCOPTS), "", CTEXT(T_HK_MISCOPTS), MENU_FUNC misc_opts, NULL, 0, 0}, {CTEXT(T_TERMINAL_OPTIONS), "", CTEXT(T_HK_TERMINAL_OPTIONS), MENU_FUNC terminal_options, NULL, 0, 0}, {CTEXT(T_HTTPD_OPTIONS)/*CTEXT(T_TERMINAL_OPTIONS)*/, "", CTEXT(T_HK_HTTP_OPTIONS)/*CTEXT(T_HK_TERMINAL_OPTIONS)*/, MENU_FUNC menu_httpd_opts, NULL, 0, 0}, {CTEXT(T_AC_OPTIONS)/*CTEXT(T_TERMINAL_OPTIONS)*/, "", CTEXT(T_HK_AC_OPTIONS)/*CTEXT(T_HK_TERMINAL_OPTIONS)*/, MENU_FUNC menu_ac_opts, NULL, 0, 0}, #if defined(HAVE_ALSA) || defined (HAVE_PORTAUDIO) {CTEXT(T_SDR_OPTIONS)/*CTEXT(T_TERMINAL_OPTIONS)*/, "", CTEXT(T_HK_SDR_OPTIONS)/*CTEXT(T_HK_TERMINAL_OPTIONS)*/, MENU_FUNC menu_sdr_opts, NULL, 0, 0}, #endif {CTEXT(T_LANGUAGE), ">", CTEXT(T_HK_LANGUAGE), MENU_FUNC menu_language_list, NULL, 1, 0}, //{CTEXT(T_CHARACTER_SET), ">", CTEXT(T_HK_CHARACTER_SET), MENU_FUNC charset_list, GINT_TO_POINTER(1), 1, 0}, {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_LOAD_CFG_NET), "", CTEXT(T_HK_LOAD_CFG_NET), MENU_FUNC menu_load_from_peer, send_config_request, 0, 0},/* todo */ {CTEXT(T_LOAD_CW_NET), "", CTEXT(T_HK_LOAD_CW_NET), MENU_FUNC menu_load_from_peer, send_cwdb_request, 0, 0},/* todo */ {"", "", M_BAR, NULL, NULL, 0, 0}, {CTEXT(T_SAVE_CFG), "", CTEXT(T_HK_SAVE_CFG), MENU_FUNC menu_save_rc, NULL, 0, 0}, {NULL, NULL, 0, NULL, NULL, 0, 0} }; void do_setup_menu(void *arg) { do_menu(setup_menu, NULL); } static struct menu_item main_menu[] = { {CTEXT(T_CONTEST), "", CTEXT(T_HK_CONTEST), MENU_FUNC do_contest_menu, NULL, 1, 1}, {CTEXT(T_FILE), "", CTEXT(T_HK_FILE), MENU_FUNC do_file_menu, NULL, 1, 1}, {CTEXT(T_EDIT), "", CTEXT(T_HK_EDIT), MENU_FUNC do_edit_menu, NULL, 1, 1}, {CTEXT(T_BANDS), "", CTEXT(T_HK_BANDS), MENU_FUNC menu_bands, menu_activate_band, 1, 1}, {CTEXT(T_SUBWINS), "", CTEXT(T_HK_SUBWINS), MENU_FUNC subwins_menu, NULL, 1, 1}, {CTEXT(T_SETUP), "", CTEXT(T_HK_SETUP), MENU_FUNC do_setup_menu, NULL, 1, 1}, {CTEXT(T_HELP), "", CTEXT(T_HK_HELP), MENU_FUNC do_menu, help_menu, 1, 1}, {NULL, NULL, NULL, NULL, NULL, 0, 0} }; void activate_bfu_technology(int item) { #ifdef Z_HAVE_SDL if (sdl) fill_lastarea(gses->ontop->x - 1, gses->ontop->y - 1, gses->ontop->w + 2, gses->ontop->h + 2, 0); #endif do_mainmenu(main_menu, NULL, item); } /*struct history file_history = { 0, {&file_history.items, &file_history.items} }; struct history search_history = { 0, {&search_history.items, &search_history.items} }; */ static struct history load_swap_history = { 0, {&load_swap_history.items, &load_swap_history.items }}; void free_history_lists(void) { /* free_list(file_history.items); free_list(search_history.items);*/ free_list(load_swap_history.items); } /***************************** LOAD SWAP ***********************************/ #if 0 void load_swap(char *text){ FILE *f; f = fopen(text, "rt"); if (!f){ msg_box(term, NULL, VTEXT(T_ERROR), AL_CENTER, VTEXT(T_CANT_READ), NULL, 1, VTEXT(T_OK), NULL, B_ENTER | B_ESC); return; } add_qsos_from_swap(aband, f); fclose(f); } void menu_load_swap(void *arg){ input_field(ses->term, NULL, "Load swap", "Enter filename", VTEXT(T_OK), VTEXT(T_CANCEL), ses, &load_swap_history, MAX_INPUT_URL_LEN, "", 0, 0, NULL, load_swap, NULL); } #endif #ifdef HAVE_SNDFILE void menu_play_last(void *arg){ ssbd_play_last_sample(gssbd, NULL); } #endif void menu_break_record(void *arg){ cq_abort(1); } void menu_extcq(void *arg){ if (!gses) return; gses->extcq = (enum extcq)GPOINTER_TO_INT(arg); } tucnak-4.04/src/ebw.h0000644000175000017500000000202512125053311011354 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __EBW_H #define __EBW_H #include "header.h" struct namedb; struct cw; #ifdef Z_MSC #pragma pack(push, 1) #endif struct dbfhdr{ char ver; /* mostly 03 */ char year,month,day; guint32 records; guint16 hdrsize, recsize; char padding[20]; /* total 32 bytes */ }__attribute__((packed)); struct dbffield{ char name[11]; /* \0 terminated */ char type; /* Char,Date YYYYMMDD,Float,Logical TFYN,Memo,Numeric */ guint32 disaplacement; char len, decimal; char padding[14]; /* total 32 bytes */ }__attribute__((packed)); #ifdef Z_MSC #pragma pack(pop) #endif int load_ebw_from_file(struct cw *cw, struct namedb *namedb, char *filename); int read_ebw_files(struct cw *cw, struct namedb *namedb); #endif tucnak-4.04/src/sndf.c0000644000175000017500000000510612460207027011536 00000000000000/* Tucnak - VHF contest log Copyright (C) 2014-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fifo.h" #include "language2.h" #include "sndf.h" #ifdef HAVE_SNDFILE int sndfile_open(struct dsp *dsp, int rec){ dbg("sndfile_open('%s',%s)\n", dsp->sndfile_filename, rec?"record":"playback"); zg_free0(dsp->name); dsp->name = g_strdup(dsp->sndfile_filename); dsp->samples = dsp->frames * dsp->channels; dsp->bytes = dsp->samples * sizeof(short); dsp->sndfile = sf_open (dsp->sndfile_filename, rec ? SFM_READ : SFM_WRITE, dsp->sfinfo); if (!dsp->sndfile){ char *sferr = z_1250_to_8859_2(g_strdup(sf_strerror(NULL))); log_addf(VTEXT(T_CANT_OPEN_FILE_S_S), dsp->name, sferr); g_free(sferr); goto err; } if (rec) { // set parameters from file dsp->speed = dsp->sfinfo->samplerate; dsp->period_time = dsp->frames * 1000 / dsp->speed; } //log_addf("sndfile opened, rate=%d, bufsize=%df %ds %db", dsp->speed, dsp->frames, dsp->samples, dsp->bytes); dbg("sndfile opened, rate=%d, bufsize=%df %ds %db\n", dsp->speed, dsp->frames, dsp->samples, dsp->bytes); goto x; err:; if (dsp->sndfile) sf_close(dsp->sndfile); dsp->sndfile = NULL; x:; return 0; } int sndfile_close(struct dsp *dsp){ dsp->reset(dsp); if (dsp->sndfile) sf_close(dsp->sndfile); dsp->sndfile = NULL; return 0; } int sndfile_write(struct dsp *dsp, void *data, int frames){ int ret = sf_writef_short(dsp->sndfile, (short*)data, frames); return ret; } int sndfile_read(struct dsp *dsp, void *data, int frames){ int ret = sf_readf_short(dsp->sndfile, (short*)data, frames); return ret; } int sndfile_reset(struct dsp *dsp){ return 0; } int sndfile_sync(struct dsp *dsp){ return 0; } int sndfile_set_format(struct dsp *dsp, SF_INFO *sfinfo, int ret){ g_free(dsp->sfinfo); dsp->sfinfo = g_new0(SF_INFO, 1); memcpy(dsp->sfinfo, sfinfo, sizeof(SF_INFO)); return 0; } int sndfile_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec){ g_free(dsp->sfinfo); dsp->sfinfo = g_new0(SF_INFO, 1); dsp->sfinfo->format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; dsp->sfinfo->samplerate = speed; dsp->sfinfo->channels = 2; dsp->speed = speed; dsp->channels = 2; dsp->frames = frames; if (dsp->speed != 0) dsp->period_time = frames * 1000 / dsp->speed; return 0; } #endif tucnak-4.04/src/subwin.c0000644000175000017500000020403612525065677012135 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include #include "header.h" #include "button.h" #include "chart.h" #include "cwdb.h" #include "dwdb.h" #include "dxc.h" #include "fft.h" #include "fifo.h" #include "hf.h" #include "inputln.h" #include "kbdbind.h" #include "kbd.h" #include "kst.h" #include "main.h" #include "map.h" #include "menu.h" #include "net.h" #include "player.h" #include "qrvdb.h" #include "qsodb.h" #include "rc.h" #include "scope.h" #include "sdr.h" #include "sdr.h" #include "tsdl.h" #include "sdr.h" #include "session.h" #include "sked.h" #include "ssbd.h" #include "stats.h" #include "subwin.h" #include "terminal.h" #include "tregex.h" #include "trig.h" #include "update.h" struct session *gses; //#define QSOS_LEN (aband->qsos->len) struct subwin *new_subwin(enum sw_type type, int where_){ struct subwin *sw; #ifdef Z_MSC_MINGW char oemcp[32]; #endif // dbg("new_subwin(%d, '%s')\n", type, title); sw = g_new0(struct subwin, 1); sw->type = type; sw->x = 1; sw->w = term->x - 2; sw->h = term->y - QSONR_HEIGHT - 4 - cfg->loglines; sw->ww = sw->w; sw->hh = sw->h; if (ctest && !ctest->oldcontest) sw->h -= ctest->spypeers->len; sw->cur = -1; sw->maxlen = 1000; #ifdef Z_UNIX sw->ws.ws_col = sw->w; sw->ws.ws_row = sw->h-1; sw->ws.ws_xpixel = 0; sw->ws.ws_ypixel = 0; #endif sw->read_fd = -1; sw->write_fd = -1; sw->sock = -1; sw->olddragx = -1; sw->olddragy = -1; switch(sw->type){ case SWT_SHELL: case SWT_UPD: if (sw->type == SWT_SHELL){ sw->title = g_strdup(VTEXT(T_SW_SHELL)); }else{ sw->title = g_strdup(VTEXT(T_UPDATE2)); } sw->kbd_func = sw_fifo_kbd_func; sw->mouse_func = sw_shell_mouse_func; sw->redraw = sw_shell_redraw; sw->check_bounds = sw_shell_check_bounds; sw->lines = g_ptr_array_new(); sw->il = g_new0(struct inputln,1); sw->il->enter = sw_shell_enter; sw->il->enterdata = sw; sw->il->allow_ctrlv = 1; if (sw->type == SWT_UPD){ sw->zser = update_init_process(); }else{ #ifdef Z_MSC_MINGW sw->zser = zserial_init_process("cmd.exe", NULL); #else sw->zser = zserial_init_process("/bin/bash", NULL); #endif } zserial_open(sw->zser); sw->read_fd = zserial_fd(sw->zser); zselect_set(zsel, sw->read_fd, sw_shell_read_handler, NULL, NULL, sw); #if defined(Z_UNIX_ANDROID) && !defined(Z_HAVE_PTY_H) char s[100]; strcpy(s, "echo -n \"$HOSTNAME $PWD\\$ \"\n"); zserial_write(sw->zser, s, strlen(s)); #endif #ifdef Z_MSC_MINGW sprintf(oemcp, "CP%d", GetOEMCP()); sw->iconv = iconv_open("iso-8859-2", oemcp); #endif if (sw->type == SWT_SHELL){ sw_add_block(sw, VTEXT(T_NEW_WINDOWS_3)); } break; case SWT_QSOS: sw->title = g_strdup(VTEXT(T_SW_QSOS)); sw->kbd_func = sw_qsos_kbd_func; sw->mouse_func = sw_qsos_mouse_func; sw->redraw = sw_qsos_redraw; sw->check_bounds = sw_qsos_check_bounds; sw->allqsos = ctest ? ctest->qsoglob : 0; break; case SWT_LOG: sw->title = g_strdup(VTEXT(T_SW_LOG)); sw->kbd_func = sw_fifo_kbd_func; sw->mouse_func = sw_fifo_mouse_func; sw->redraw = sw_fifo_redraw; sw->check_bounds = sw_fifo_check_bounds; sw->fifo = glog; break; case SWT_TALK: sw->title = g_strdup(VTEXT(T_SW_TALK)); sw->kbd_func = sw_fifo_kbd_func; sw->mouse_func = sw_fifo_mouse_func; sw->redraw = sw_fifo_redraw; sw->check_bounds = sw_fifo_check_bounds; sw->fifo = gtalk; sw->il = g_new0(struct inputln,1); sw->il->enter = sw_talk_enter; sw->il->enterdata = sw; sw->il->allow_ctrlv = 1; break; case SWT_SKED: sw->title = g_strdup(VTEXT(T_SW_SKED)); sw->kbd_func = sw_sked_kbd_func; sw->mouse_func = sw_sked_mouse_func; sw->redraw = sw_sked_redraw; sw->check_bounds = sw_sked_check_bounds; sw->fifo = NULL; /* not used */ break; case SWT_UNFI: sw->title = g_strdup(VTEXT(T_SW_UNFI)); sw->kbd_func = sw_unfi_kbd_func; sw->mouse_func = sw_unfi_mouse_func; sw->redraw = sw_unfi_redraw; sw->check_bounds = sw_unfi_check_bounds; sw->fifo = NULL; /* filled in sw_unfi* */ break; case SWT_DXC: sw->title = g_strdup(VTEXT(T_SW_DXC)); sw->kbd_func = sw_dxc_kbd_func; sw->mouse_func = sw_dxc_mouse_func; sw->redraw = sw_dxc_redraw; sw->check_bounds = sw_dxc_check_bounds; sw->lines = g_ptr_array_new(); sw->il = g_new0(struct inputln, 1); sw->il->enter = sw_dxc_enter; sw->il->enterdata = sw; sw->il->allow_ctrlv = 1; sw->adns = zasyncdns_init(); { FILE *f; char s[1024]; /*int *a = NULL; *a = 0;*/ strcpy(s, "../src/_SPOTS"); z_wokna(s); f = fopen(s, "rt"); if (!f) f = fopen("_SPOTS", "rt"); if (f){ progress("Loading %s", s); while ((fgets(s, 1000, f)) != NULL){ sw_add_block(sw, s); } fclose(f); } } sw_add_line(sw, VTEXT(T_ENTER_TO_DXC2), 1); break; case SWT_STAT: sw->title = g_strdup(VTEXT(T_SW_STAT)); sw->kbd_func = sw_stat_kbd_func; sw->mouse_func = sw_stat_mouse_func; sw->redraw = sw_stat_redraw; sw->check_bounds = sw_stat_check_bounds; sw->raise = sw_stat_raise; sw->fifo = NULL; /* filled in sw_stat* */ break; case SWT_SWAP: /* sw = new_subwin(SWT_SWAP, VTEXT(T_SW_STAT), NULL);*/ break; case SWT_MAP: sw->title = g_strdup(VTEXT(T_SW_MAP)); sw->kbd_func = sw_map_kbd_func; sw->mouse_func = sw_map_mouse_func; sw->redraw = sw_map_redraw; sw->check_bounds = sw_map_check_bounds; sw->raise = sw_map_raise; //sw->acs->sw = sw; #ifdef Z_HAVE_SDL if (sdl){ sw->l1map = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_INIT(sw->screen); sw->zoom = 10000; /* sw->zoom = 1000; */ sw->gdirty = 1; map_update_layout(sw); map_update_qth(sw); } #endif break; case SWT_SCOPE: sw->title = g_strdup(VTEXT(T_SW_SCOPE)); sw->kbd_func = sw_scope_kbd_func; sw->mouse_func = sw_scope_mouse_func; sw->redraw = sw_scope_redraw; sw->check_bounds = sw_scope_check_bounds; sw->raise = sw_scope_raise; #ifdef Z_HAVE_SDL #ifdef USE_FFT sw->scope_mode = 3; #else sw->scope_mode = 0; #endif if (sdl){ sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_INIT(sw->screen); sw->gdirty = 1; #ifdef HAVE_LIBFFTW3 fft_resize(gfft, sw); #endif } #endif break; case SWT_QRV: sw->title = g_strdup(VTEXT(T_SW_QRV)); sw->kbd_func = sw_qrv_kbd_func; sw->mouse_func = sw_qrv_mouse_func; sw->redraw = sw_qrv_redraw; sw->check_bounds = sw_qrv_check_bounds; sw->raise = sw_qrv_raise; sw->cur = 0; break; case SWT_HF: sw->title = g_strdup(VTEXT(T_SW_HF)); sw->kbd_func = sw_hf_kbd_func; sw->mouse_func = sw_hf_mouse_func; sw->redraw = sw_hf_redraw; sw->check_bounds = sw_hf_check_bounds; sw->raise = sw_hf_raise; // sw->fifo = NULL; /* filled in sw_stat* */ sw->allqsos = 1; break; case SWT_PLAYER: sw->title = g_strdup(VTEXT(T_SW_PLAYER)); sw->kbd_func = sw_player_kbd_func; sw->mouse_func = sw_player_mouse_func; sw->redraw = sw_player_redraw; sw->check_bounds = sw_player_check_bounds; sw->raise = sw_player_raise; #ifdef Z_HAVE_SDL if (sdl && sw->h > PLAYER_H){ sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, (sw->h - PLAYER_H)*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_INIT(sw->screen); sw->gdirty = 1; } #endif break; case SWT_CHART: sw->title = g_strdup(VTEXT(T_SW_CHART)); sw->kbd_func = sw_chart_kbd_func; sw->mouse_func = sw_chart_mouse_func; sw->redraw = sw_chart_redraw; sw->check_bounds = sw_chart_check_bounds; sw->raise = sw_chart_raise; #ifdef Z_HAVE_SDL if (sdl && sw->h > CHART_H){ sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, (sw->h - CHART_H)*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_INIT(sw->screen); sw->gdirty = 1; } #endif sw->chbands = g_ptr_array_new(); sw_chart_recalc_extremes(sw, aband); break; case SWT_KST: sw->title = g_strdup(VTEXT(T_KST)); sw->kbd_func = sw_kst_kbd_func; sw->mouse_func = sw_kst_mouse_func; sw->redraw = sw_kst_redraw; sw->check_bounds = sw_kst_check_bounds; sw->raise = sw_kst_raise; sw->lines = g_ptr_array_new(); sw->il = g_new0(struct inputln, 1); sw->il->enter = sw_kst_enter; sw->il->enterdata = sw; sw->il->allow_ctrlv = 1; sw->adns = zasyncdns_init(); sw->timer_id = zselect_timer_new(zsel, 1 * 60 * 1000, kst_timer_function, sw); sw->kstusers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); // 2x #ifdef Z_HAVE_SDL sw->zoom = 10000; map_update_qth(sw); #endif { FILE *f; char s[1024]; /*int *a = NULL; *a = 0;*/ strcpy(s, "../src/_KST"); z_wokna(s); f = fopen(s, "rt"); if (!f) f = fopen("_KST", "rt"); if (f){ int w = sw->w; progress(VTEXT(T_LOADING_S), s); if (gacs) sw->w -= KSTQRVW2; else sw->w -= KSTQRVW1; while ((fgets(s, 1000, f)) != NULL){ sw_add_block(sw, s); } fclose(f); sw->w = w; } } sw_add_line(sw, VTEXT(T_ENTER_TO_KST), 1); break; case SWT_SDR: sw->title = g_strdup(VTEXT(T_SDR)); #ifdef USE_SDR sw->kbd_func = sw_sdr_kbd_func; sw->mouse_func = sw_sdr_mouse_func; sw->redraw = sw_sdr_redraw; sw->check_bounds = sw_sdr_check_bounds; sw->raise = sw_sdr_raise; if (sdl){ sw->buttons = g_ptr_array_new(); sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_INIT(sw->screen); sw->gdirty = 1; sdr_resize(gsdr, sw); } #endif break; default: log_addf(VTEXT(T_INVALID_WINDOW_TYPE), sw->type); g_free(sw); return NULL; } sw->high = g_ptr_array_new(); g_ptr_array_add(sw->high, g_strdup("<\\*[0-9a-zA-Z\\-]+\\*>")); if (sw->il){ struct event ev = {EV_INIT, 0,0,0}; sw->il->term = term; sw->il->sw = sw; inputln_func(sw->il, &ev); sw->il->x = sw->x; sw->il->y = sw->y + sw->h - 1; sw->il->l = sw->w; sw->h--; } if (sw->check_bounds) sw->check_bounds(sw); if (where_ >= 0){ g_ptr_array_index(gses->subwins, where_) = sw; sw_set_ontop(where_, 0); }else{ g_ptr_array_add(gses->subwins, sw); sw_set_ontop(gses->subwins->len - 1, 0); } return sw; } void free_subwins(){ int i; for (i=gses->subwins->len-1;i>=0;i--){ struct subwin *sw; sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); g_ptr_array_remove(gses->subwins, sw); free_subwin(sw); } g_ptr_array_free(gses->subwins, TRUE); } void free_subwin(struct subwin *sw){ if (sw->timer_id) zselect_timer_kill(zsel, sw->timer_id); if (sw->high) zg_ptr_array_free_all(sw->high); if (sw->title) g_free(sw->title); if (sw->lines) zg_ptr_array_free_all(sw->lines); sw_shell_kill(sw); if (sw->iconv) iconv_close(sw->iconv); if (sw->sock >= 0){ zselect_set(zsel, sw->sock, NULL, NULL, NULL, NULL); closesocket(sw->sock); } #ifdef Z_HAVE_SDL if (sw->l1map) SDL_FreeSurface(sw->l1map); //if (sw->l2rot) SDL_FreeSurface(sw->l2rot); if (sw->screen) SDL_FreeSurface(sw->screen); MUTEX_FREE(sw->screen); zg_free0(sw->pwwlo); #ifdef HAVE_SNDFILE sw_player_free(sw); #endif sw_chart_free(sw); if (sw->chart) zchart_free(sw->chart); #endif if (sw->il) g_free(sw->il); if (sw->adns) zasyncdns_free(sw->adns); if (sw->kstusers) g_hash_table_remove_all(sw->kstusers); g_free(sw->callunder); g_free(sw->pattern); g_free(sw->player_filename); g_free(sw); } struct subwin *sw_raise_or_new(enum sw_type type){ struct subwin *swnew; struct event ev = { EV_INIT, 0, 0, 0, 0, 0}; { zg_ptr_array_foreach(struct subwin *, sw, gses->subwins) { if (sw->type != type) continue; sw_set_ontop(sw_i, 0); return sw; } } swnew = new_subwin(type, -1); if (!swnew) return NULL; sw_default_func(swnew, &ev, 0); il_unset_focus(INPUTLN(aband)); sw_set_focus(); return swnew; } int sw_add_line(struct subwin *sw, gchar *line, int eol){ int len, a, ret; gchar *c, *last, *str, fill[10]; GString *gs; // dbg("add_line '%s' %d \n", line, eol); len = strlen(line); if (len>0 && line[len-1]=='\r') line[len-1]='\0'; if (sw->eol || sw->lines->len==0){ if (sw->offset > 0 && sw->offset < sw->maxlen-sw->h) { sw->offset++; } g_ptr_array_add(sw->lines, g_strdup(line)); str = (gchar *)g_ptr_array_index(sw->lines, sw->lines->len - 1); } else{ last = (gchar *)g_ptr_array_index(sw->lines, sw->lines->len - 1); str = g_strconcat( last, line, NULL); g_free(last); } if (eol){ ret = dxc_read_spot(str); if (ret != 1) sw->unread = 1; if (ret >= 0 && !sw->dxc_from_net){ char *d=g_strconcat("DX ",str,"\n",NULL); rel_write_all(d); g_free(d); } if (ret > 0){ // not qrv band, filtering g_ptr_array_remove_index(sw->lines, sw->lines->len - 1); g_free(str); sw->eol = 1; if (sw->offset > 0) sw->offset--; return 1; } qrv_read_line(str); if (kst_read_line(sw, str) > 0){ // filtering /sh us output g_ptr_array_remove_index(sw->lines, sw->lines->len - 1); g_free(str); sw->eol = 1; if (sw->offset > 0) sw->offset--; return 1; } } c = strchr(str, '\t'); if (c){ gs = g_string_new(str); c = strchr(gs->str, '\t'); while (c){ a = c - gs->str; strcpy(fill, " "); fill[8-(a%8)]='\0'; g_string_erase(gs, a, 1); g_string_insert(gs, a, fill); c = strchr(gs->str, '\t'); } g_free(str); str = g_strdup(gs->str); g_string_free(gs, 1); } g_ptr_array_index(sw->lines, sw->lines->len - 1) = str; sw->eol = eol; if (eol) { /*dbg("complete line: '%s'\n", str);*/ char *x, *z; if (sw->type == SWT_KST && strlen(str) > sw->w && (x = strchr(str, '>')) != NULL && x - str < sw->w - 20){ GString *remains; z = strchr(x, ')'); // take target call if (z != NULL){ if (z - x < 17) x = z; } remains = g_string_new(""); g_string_append_len(remains, str, x - str + 1); g_string_append(remains, "..."); g_string_append(remains, str + sw->w); str[sw->w] = '\0'; sw_add_line(sw, remains->str, 1); g_string_free(remains, TRUE); } } return 0; } int sw_add_block(struct subwin *sw, gchar *data){ gchar *c, *d, *s; /*dbg("add_block '%s'\n", data);*/ c = s = data; while (c != NULL && strlen(s)>0){ c = strchr(s, '\n'); if (c) { d = g_strndup(s, c-s); sw_add_line(sw, d, 1); g_free(d); s = c+1; }else{ sw_add_line(sw, s, 0); } } sw_check_len(sw); redraw_later(); return 0; } int sw_printf(struct subwin *sw, const char *m, ...){ va_list l; char *c; int ret; va_start(l, m); c = g_strdup_vprintf(m, l); ret = sw_add_block(sw, c); g_free(c); va_end(l); return ret; } int sw_default_func(struct subwin *sw, struct event *ev, int fw){ /*dbg("sw_default_func %p,[%d,%d,%d,%d],%d)\n",sw,ev->ev,ev->x,ev->y ,ev->b,fw);*/ /* dbg(" term %dx%d \n",term->x, term->y);*/ switch(ev->ev){ case EV_ABORT: if (zselect_profiling(zsel)) zselect_hint(zsel, "sw_default_func EV_ABORT %s", sw->title); if (sw->il) inputln_func(sw->il,ev); sw_shell_kill(sw); break; case EV_INIT: if (zselect_profiling(zsel)) zselect_hint(zsel, "sw_default_func EV_INIT %s", sw->title); // break; case EV_RESIZE: if (zselect_profiling(zsel)) zselect_hint(zsel, "sw_default_func EV_RESIZE %s", sw->title); if (cfg->splitheight > 0){ if (sw == gses->ontop && sw == gses->ontop2){ sw->y = gses->y1; sw->h = MIN(gses->height1, gses->height2); }else if (sw == gses->ontop2){ sw->y = gses->y2; sw->h = gses->height2; }else if (sw == gses->ontop){ sw->y = gses->y1; sw->h = gses->height1; } }else{ sw->y = gses->y1; sw->h = gses->height1; } sw->w = term->x - 2; sw->ww = sw->w; sw->hh = sw->h; //dbg("sw_default_func(EV_RESIZE, '%s') y=%d h=%d\n", sw->title, sw->y, sw->h); /*dbg("sw_default_func: title=%s term->y=%d sw->h=%d\n", sw->title, term->y, sw->h); */ #ifdef Z_UNIX if (sw->write_fd>=0 && sw->write_fd==sw->read_fd && (sw->ws.ws_col != sw->w || sw->ws.ws_row != sw->h- 1)){ sw->ws.ws_col = sw->w; sw->ws.ws_row = sw->h - 1; ioctl(sw->write_fd, TIOCSWINSZ, (char*)&sw->ws); } #endif if (sw->type == SWT_DXC){ if (sw->w >= BANDMAPMINW){ sw->w -= BANDMAPW; } } if (sw->type == SWT_KST){ if (gacs) sw->w -= KSTQRVW2; else sw->w -= KSTQRVW1; } if (sw->il) sw->h--; #ifdef Z_HAVE_SDL if (sw->screen){ int h; MUTEX_LOCK(sw->screen); SDL_FreeSurface(sw->l1map); // SDL_FreeSurface(sw->l2rot); SDL_FreeSurface(sw->screen); h = sw->h*FONT_H; if (sw->type == SWT_PLAYER) h = (sw->h - PLAYER_H) * FONT_H; sw->l1map = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, h, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); sw->screen = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W, sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); switch(sw->type){ case SWT_MAP: map_update_layout(sw); sw->gdirty=1; break; case SWT_SCOPE: #ifdef USE_FFT fft_resize(gfft, sw); #endif break; case SWT_PLAYER: break; case SWT_SDR: #ifdef HAVE_LIBFFTW3 sdr_resize(gsdr, sw); #endif break; default: break; } MUTEX_UNLOCK(sw->screen); } #endif case EV_REDRAW: if (zselect_profiling(zsel)) zselect_hint(zsel, "sw_default_func EV_REDRAW %s", sw->title); if (sw->redraw) sw->redraw(sw, aband, 0); if (sw->il) { inputln_func(sw->il,ev); } break; case EV_KBD: if (zselect_profiling(zsel)) zselect_hint(zsel, "sw_default_func EV_KBD %s", sw->title); if (sw->kbd_func && sw->kbd_func(sw, ev, fw)) return 1; break; case EV_MOUSE: if (zselect_profiling(zsel)) zselect_hint(zsel, "sw_default_func EV_MOUSE %s", sw->title); #if 0 dbg("sw_default_func EV_MOUSE %4d %4d ", ev->x, ev->y); if ((ev->b & BM_EBUTT) == B_LEFT) dbg(" LEFT"); if ((ev->b & BM_EBUTT) == B_MIDDLE) dbg(" MIDDLE"); if ((ev->b & BM_EBUTT) == B_RIGHT) dbg(" RIGHT"); if ((ev->b & BM_EBUTT) == B_WHUP) dbg(" WHUP"); if ((ev->b & BM_EBUTT) == B_WHDOWN) dbg(" WHDOWN"); if (ev->b & B_UP) dbg(" UP"); if (ev->b & B_DRAG) dbg(" DRAG"); if (ev->b & B_MOVE) dbg(" MOVE"); if (ev->b & B_CLICK) dbg(" CLICK"); dbg("\n"); #endif //if (ev->b & B_MOVE) return 1; if ((ev->b & (B_MOVE | B_CLICK | B_DRAG)) ==0){ if (!gses->focused){ sw_set_focus(); il_unset_focus(INPUTLN(aband)); redraw_later(); } } if (sw->mouse_func && sw->mouse_func(sw, ev, fw)) return 1; break; default: error("ERROR: unknown event"); } return 0; } /* for init,abort & resize */ int sw_all_func(struct event *ev, int fw){ struct subwin *sw; int i; for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); sw_default_func(sw, ev, 1); } return 0; } /* returns 1 if event was handled */ int sw_focus_func(struct event *ev, int fw){ struct subwin *sw; int i; if (!gses->focused) return 0; for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (!sw->focused) continue; if (cfg->splitheight > 0 && sw->ontop2){ return sw_default_func(sw, ev, 1); } if (sw->ontop ){ return sw_default_func(sw, ev, 1); } } return 0; } int sw_ontop_func(struct event *ev, int fw){ //struct subwin *sw; int ret; // dbg("sw_ontop_func(ev=%d)\n", ev->ev); if (cfg->splitheight > 0){ gses->ontop2->y = gses->y2; ret = sw_default_func(gses->ontop2, ev, 1); gses->ontop->y = gses->y1; ret |= sw_default_func(gses->ontop, ev, 1); }else{ ret = sw_default_func(gses->ontop, ev, 1); } /*for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (cfg->splitheight > 0 && sw->ontop2){ sw_default_func(sw, ev, 1); } if (sw->ontop){ return sw_default_func(sw, ev, 1); } } */ return ret; } struct subwin *find_sw_ontop(){ struct subwin *sw; int i; for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index( gses->subwins, i); if (sw->ontop) return sw; } return NULL; } void sw_set_focus(){ struct subwin *sw; //dbg("sw_set_focus()\n"); sw = gses->ontop; il_set_focus(sw->il); gses->focused = 1; /*if (gses->ontop->type == SWT_QSOS && aband){ gses->ontop->cur = QSOS_LEN; } */ if (gses->ontop->check_bounds) gses->ontop->check_bounds(gses->ontop); } void sw_unset_focus(){ //dbg("sw_unset_focus()\n"); il_unset_focus(gses->ontop->il); if (gses->ontop->type != SWT_QRV){ gses->ontop->cur = 0; } #ifdef Z_HAVE_SDL if (gses->ontop->type == SWT_KST){ kst_free_screen(gses->ontop); } #endif gses->focused = 0; fill_lastarea(gses->ontop->x - 1, gses->ontop->y - 1, gses->ontop->ww + 2, gses->ontop->hh + 2, 0); if (gses->ontop->type != SWT_STAT){ gses->ontop->offset = 0; } } struct subwin *sw_set_ontop(int n, int set2){ struct subwin *sw, *swret; int i; //struct event ev = { EV_RESIZE, 0, 0, 0, 0, 0}; swret=NULL; if (n<0 || n>=gses->subwins->len) return swret; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); if (i==n){ if (set2){ sw->ontop2 = 1; gses->ontop2 = sw; }else{ sw->ontop = 1; gses->ontop = sw; } sw->focused = 1; sw->unread = 0; if (sw->il) il_set_focus(sw->il); swret = sw; // sw_default_func(sw, &ev, 1); makes problems with scope - fft history is lost if (sw->raise) sw->raise(sw); // if (sw->raise) is correct #ifdef HAVE_SNDFILE if (gssbd) gssbd->swontoptype = sw->type; #endif }else{ if (set2) sw->ontop2 = 0; else sw->ontop = 0; sw->focused = 0; } } return swret; } struct subwin *sw_totop_next(int n, int set2){ struct subwin *sw,*ontop; int i; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); ontop = set2 ? gses->ontop2 : gses->ontop; if (sw == ontop) break; } n+=i; if (n<0) n = gses->subwins->len-1; if (n>gses->subwins->len-1) n=0; return sw_set_ontop(n, set2); } void draw_titles(int y, int ontop2){ struct subwin *sw; gchar *c; int i, x, max, ontop; /*dbg("draw_titles\n");*/ sw = (struct subwin *)g_ptr_array_index( gses->subwins, 0); if (!sw) return; /* first try */ x=sw->x+1; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); c=g_strdup_printf("[%i:%s]", i+1, sw->title); sw->titl1=x; x+=strlen(c)+1; sw->titl2=x-2; g_free(c); } if (x-3 < sw->w) goto draw; /* second try */ x=sw->x; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); c=g_strdup_printf("[%i:%s]", i+1, sw->title); sw->titl1=x; x+=strlen(c); sw->titl2=x-2; g_free(c); } if (x-2 < sw->w) goto draw; /* third try */ x=sw->x; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); c=g_strdup_printf("%i:%s", i+1, sw->title); sw->titl1=x; x+=strlen(c)+1; sw->titl2=x-2; g_free(c); } if (x-3 < sw->w) goto draw; /* if (x+strlen(c)>=sw->w+1) max=sw->w-x+1; else max=-1; print_text(x,sw->y-1,max,c,col_active); }else{ c=g_strdup_printf(" %i:%s ", i+1, sw->title); if (x+strlen(c)>=sw->w+1) max=sw->w-x+1; else max=-1; print_text(x,sw->y-1,max,c,sw->unread?COL_YELLOW:col_passive); } } */ draw:; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); ontop = ontop2 ? sw->ontop2 : sw->ontop; if (ontop) continue; c=g_strdup_printf(" %i:%s ", i+1, sw->title); if (sw->titl1 + strlen(c) >= sw->w + 1) max=sw->w-sw->titl1+1; else max=-1; print_text(sw->titl1,y,max,c,sw->unread?COL_YELLOW:COL_NORM); g_free(c); } for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); ontop = ontop2 ? sw->ontop2 : sw->ontop; if (!ontop) continue; c=g_strdup_printf("[%i:%s]", i+1, sw->title); if (sw->titl1 + strlen(c) >= sw->w + 1) max=sw->w-sw->titl1+1; else max=-1; print_text(sw->titl1,y,max,c,COL_INV); g_free(c); } } void sw_default_redraw(struct subwin *sw, int flags){ draw_frame(sw->x,sw->y,sw->w,sw->h-1,COL_NORM,1); draw_frame(sw->x+1,sw->y+1,sw->w-2,sw->h-3,COL_NORM,1); } void sw_check_len(struct subwin *sw){ gpointer p; int count,i; count = sw->lines->len - sw->maxlen; if (count>0){ for (i=0; ilines, 0); /*dbg("scl: %d:%p = '%s'\n",i, p, p); */ g_free(p); g_ptr_array_remove_index(sw->lines, 0); } } } void sw_set_unread(struct fifo *fifo){ struct subwin *sw; int i; if (!gses) return; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); /* dbg(" %p",sw->fifo);*/ if (sw->type == SWT_LOG) continue; /* don't highlight fifo */ if (fifo != sw->fifo) continue; if (!sw->ontop && !sw->unread) { sw->unread=1; redraw_later(); } } } void sw_unset_unread(struct fifo *fifo){ struct subwin *sw; int i; if (!gses || !gses->subwins) return; for (i=0; isubwins->len; i++){ sw = (struct subwin *)g_ptr_array_index( gses->subwins, i); /* dbg(" %p",sw->fifo);*/ if (sw->type == SWT_LOG) continue; /* don't highlight fifo */ if (fifo != sw->fifo) continue; if (sw->unread) { sw->unread=0; redraw_later(); } } } /*#define sw_highlight(text, ho, needle, color){\ gchar *cc, *d, *fd; \ int rx, fx, fl; \ \ if ((needle) && strlen(needle)>=2){ \ cc=(text); \ while ((d=z_strcasestr((cc), (needle)))!=NULL){ \ fl=MIN(sw->w-(d-(text))+(ho) , strlen(needle)); \ fx=rx=d-(text)-(ho); \ fd=d; \ if (rx<0) { \ fl+=rx; \ fx=0; \ fd=d-rx; \ } \ if (fl>0) print_text(sw->x+fx, sw->y+i, fl, fd, (color)); \ cc=d+strlen(needle); \ } \ }\ } */ struct config_subwin *get_config_sw_by_number(GPtrArray *sws, int nr){ struct config_subwin *csw; int i; for (i=0; ilen; i++){ csw = (struct config_subwin *)g_ptr_array_index(sws, i); if (csw->nr==nr) return csw; } return NULL; } /********************** QSOS ****************************************/ /* only EV_KBD */ int sw_qsos_kbd_func(struct subwin *sw, struct event *ev, int fw){ /*dbg("sw_qsos_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->cur++; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->cur--; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->cur += sw->h - 1;; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->cur -= sw->h - 1;; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->cur = 1; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_END: if (!aband) return 1; sw->cur = QSOS_LEN; sw_qsos_check_bounds(sw); redraw_later(); return 1; case ACT_ENTER: if (!aband) return 1; sw_qsos_check_bounds(sw); if (aband->readonly) { errbox(VTEXT(T_BAND_RO), 0); return 1; } if (sw->cur==0) break; edit_qso(get_gqso(aband, sw, sw->cur-1)); return 1; case ACT_PLAY_LAST: if (!aband) return 1; #ifdef HAVE_SNDFILE ssbd_play_last_sample(gssbd, get_gqso(aband, sw, sw->cur-1)); #endif break; case ACT_SKED: if (!aband) return 0; if (sw->cur==0) break; sked_from_qso(get_gqso(aband, sw, sw->cur-1)); return 1; case ACT_SCROLL_LEFT: if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: if (sw->ho<73) sw->ho++; redraw_later(); return 1; case ACT_CALLINFO: if (sw->cur==0) break; call_info(get_gqso(aband, sw, sw->cur-1)); return 1; } switch (ev->x){ case 'A': case 'a': if (ev->y == 0){ sw->allqsos = !sw->allqsos; sw_qsos_check_bounds(sw); redraw_later(); } break; } return 0; } int sw_qsos_mouse_func(struct subwin *sw, struct event *ev, int fw){ int y0; if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (ev->b & B_DRAG){ int dy = sw_accel_dy(sw, ev); if (dy != 0) { if (cfg->usetouch) dy = -dy; sw->cur += dy; sw_qsos_check_bounds(sw); redraw_later(); } sw->olddragx = ev->x; return 1; } /*dbg("sw_qsos_mouse_func\n");*/ /* if ((ev->b & BM_ACT)!=B_DOWN) return 0; */ switch (ev->b & (BM_EBUTT | B_CLICK | B_MOVE)){ case B_LEFT: sw->olddragx = ev->x; sw->olddragy = ev->my; return 1; case B_LEFT | B_CLICK: if (!aband) return 1; y0=0; if (QSOS_LEN+1 <= sw->h) y0 = sw->h - (QSOS_LEN+1) + 1; sw->cur = QSOS_LEN + 1 - sw->h + ev->y - sw->y - sw->offset + y0; sw_qsos_check_bounds(sw); redraw_later(); if (cfg->usetouch){ if (aband->readonly) { errbox(VTEXT(T_BAND_RO), 0); return 1; } if (sw->cur==0) break; edit_qso(get_gqso(aband, sw, sw->cur-1)); } return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT: /*dbg("right\n");*/ break; case B_WHUP: /*dbg("wheel up\n");*/ sw->cur-=3; sw_qsos_check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: /*dbg("wheel down\n");*/ sw->cur+=3; sw_qsos_check_bounds(sw); redraw_later(); return 1; } return 0; } int show_qs(){ /* gses->qs is locked */ if (gses->ontop && gses->ontop->type == SWT_HF) return 0; if (aband){ if (( aband->qs->len>0 || aband->oqs->len>0 || gses->qs->len>0 ) && aband->il->focused ) return 1; }else{ /*if (gses->qs->len>0) return 1; */ if (gses->qs->len>0 && INPUTLN(aband)->focused) return 1; } return 0; } void sw_qs_redraw(){ /* gses->qs is locked */ int i, max0, max1, max2; gchar *c; struct subwin *sw=NULL; for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins,i); if (sw->type!=SWT_QSOS) continue; break; } if (i==gses->subwins->len) return; max0=27; if (term->x-3x-3; if (max0<0) max0=0; max1=27; if (term->x-32x-32; if (max1<0) max1=0; max2=53; if (term->x-62x-62; if (max2<0) max2=0; for (i=0;ih;i++){ set_char(29, sw->y+i, 0x8000|COL_NORM|179); set_char(58, sw->y+i, 0x8000|COL_NORM|179); if (i==sw->h-1) { if (ctest) print_text(sw->x+ 1+3 ,sw->y+i,-1,VTEXT(T_THIS_BAND),COL_NORM); else print_text(sw->x+ 1+3 ,sw->y+i,-1,VTEXT(T_CW_DB),COL_NORM); if (ctest && ctest->bands->len>1) print_text(sw->x+30+3 ,sw->y+i,-1,VTEXT(T_OTHER_BANDS),COL_NORM); else print_text(sw->x+30+3 ,sw->y+i,-1,VTEXT(T_CW_DB),COL_NORM); print_text(sw->x+60+3 ,sw->y+i,-1,VTEXT(T_CW_DB),COL_NORM); continue; } if (ctest){ if (iqs->len){ c = (gchar *)g_ptr_array_index(aband->qs, i); print_text(sw->x+1 ,sw->y+i,max0,c,COL_NORM); } if (ctest->bands->len>1){ if (ioqs->len){ c = (gchar *)g_ptr_array_index(aband->oqs, i); print_text(sw->x+30 ,sw->y+i,max1,c,COL_NORM); } if (iqs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i); print_text(sw->x+60,sw->y+i,max2,c,COL_NORM); } }else{ if (iqs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i); print_text(sw->x+30,sw->y+i,max1,c,COL_NORM); } if (i+sw->h-1 < gses->qs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i + sw->h-1 ); print_text(sw->x+60,sw->y+i,max2,c,COL_NORM); } } }else{ if (iqs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i); print_text(sw->x+1,sw->y+i,max0,c,COL_NORM); } if (i+sw->h-1 < gses->qs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i + sw->h-1 ); print_text(sw->x+30,sw->y+i,max1,c,COL_NORM); } if (i+2*(sw->h-1) < gses->qs->len){ c = (gchar *)g_ptr_array_index(gses->qs, i + 2*(sw->h-1) ); print_text(sw->x+59 ,sw->y+i,max2,c,COL_NORM); } } } } void sw_qsos_redraw(struct subwin *sw, struct band *band, int flags){ int i, index, y0, len; struct qso *q; gchar *c; char dtime[6]; /*dbg("term->x=%d max0=%d max1=%d max2=%d \n", term->x, max0, max1, max2);*/ MUTEX_LOCK(gses->qs); if (show_qs()){ sw_qs_redraw(); MUTEX_UNLOCK(gses->qs); return; } MUTEX_UNLOCK(gses->qs); if (!aband) return; y0=0; if (QSOS_LEN+1 <= sw->h) y0 = sw->h - (QSOS_LEN+1) + 1; for (i=0;ih;i++){ char dateband[16]; char call[50]; char new_[10]; char qsop[10]; char suspcall, susploc,unkcall; char qtf[10]; char exc[10]; index = QSOS_LEN+1-sw->h + i - sw->offset; if (index < 1) { print_text(sw->x,sw->y+i-y0+sw->h,-1," ~",COL_NORM); continue; } q = get_gqso(aband, sw, index-1); strcpy(call,q->callsign); if (q->error) { if (q->callsign && strcmp(q->callsign, "ERROR")!=0){ sprintf(call, "ERROR %s", q->callsign); z_str_lc(call+5); }else strcpy(call, "ERROR"); } call[12]='\0'; strcpy(new_, ""); if (ctest->wwlused && (q->new_ & NEW_WWL)) strcat(new_, "w"); if ( q->new_ & NEW_DXC ) strcat(new_, "d"); if (ctest->exctype>0 && (q->new_ & NEW_EXC)) strcat(new_, "e"); if (q->new_ & NEW_PREF) strcat(new_, "p"); if (q->qsl) strcat(new_, "q"); if (q->remark && strlen(q->remark)>0) strcat(new_, "r"); if (!q->dupe) sprintf(qsop,"%6d", q->qsop); else strcpy(qsop, "DUPE"); dtime[0]=q->time_str[0]; dtime[1]=q->time_str[1]; dtime[2]=':'; dtime[3]=q->time_str[2]; dtime[4]=q->time_str[3]; dtime[5]='\0'; switch(q->suspcall1){ case SUSP_QRB: suspcall='>'; break; case SUSP_REM: suspcall='r'; break; case SUSP_WARN: suspcall='?'; break; case SUSP_ERR: suspcall='!'; break; default: suspcall=' '; break; } if (q->susploc==1) susploc='?'; else if (q->susploc==2) susploc='!'; else susploc=' '; if (q->unkcall) unkcall=VTEXT(T_HK_NEW_CALL)[0]; else unkcall=' '; sprintf(qtf,"%3d", q->qtf); #ifdef Z_HAVE_SDL // if (sdl) strcat(qtf, ""); if (sdl) strcat(qtf, "\xb0"); #endif safe_strncpy0(exc, q->exc, 5); g_snprintf(dateband, sizeof(dateband), " %8s", q->date_str); len = strlen(q->band->bandname); if (sw->allqsos && len>0){ memcpy(dateband, " ", 10); // if (len>4) len=4; memcpy(dateband+2, q->band->bandname, Z_MIN(len, 8)); // dbg("bandname='%s'\n", q->band->bandname); } c=g_strdup_printf("%10s %5s %-12s%c%5s%4s%5s%4s %-4s %-6s %c%c%6s %-4s%-5s %-7s %s", dateband, dtime, call, suspcall, q->rsts, q->qsonrs, q->rstr, q->qsonrr, exc, q->locator, susploc, unkcall, qsop, *q->locator?qtf:"", new_, q->operator_, q->remark); if (index==sw->cur && !cfg->usetouch) fill_area(sw->x, sw->y+i-y0, sw->w, 1, COL_INV); if (strlen(c)>sw->ho) print_text(sw->x,sw->y+i-y0,sw->w,c+sw->ho, index==sw->cur && !cfg->usetouch? COL_INV : COL_NORM); g_free(c); } /*dbg("\n");*/ } void sw_qsos_check_bounds(struct subwin *sw){ int len; if (!aband) return; /*dbg("sw_qsos_check_bounds cur=%d, offset=%d ", sw->cur, sw->offset);*/ len = QSOS_LEN; if (sw->cur < 1 ){ sw->cur = 1; if (sw->cur <= len) sw_shake(sw, 1); } if (sw->cur > len) { sw->cur = len; if (len > 0) sw_shake(sw, 0); } if (sw->cur > len - sw->offset - 1){ sw->offset = len - sw->cur; } if (sw->cur < len - sw->h + 1 - sw->offset){ sw->offset = len - sw->h - sw->cur + 1; } if (sw->offset < 0) sw->offset=0; /* dbg(" ---> cur=%d, offset=%d\n", sw->cur, sw->offset);*/ } /************************ FIFO *******************************/ /* only EV_KBD */ int sw_fifo_kbd_func(struct subwin *sw, struct event *ev, int fw){ /*dbg("sw_fifo_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (sw->il && ( sw->il->wasctrlv || (ev->x!='[' && ev->x!=']') )){ if (inputln_func(sw->il, ev)) return 1; } switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: dbg("DOWN: ofs pred=%d\n", sw->offset); sw->offset--; sw->check_bounds(sw); dbg("DOWN: ofs pote=%d\n", sw->offset); redraw_later(); return 1; case ACT_UP: dbg("UP: ofs pred=%d\n", sw->offset); sw->offset++; sw->check_bounds(sw); dbg("UP: ofs pote=%d\n", sw->offset); redraw_later(); return 1; case ACT_PAGE_DOWN: sw->offset -= sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_PAGE_UP: sw->offset += sw->h - 1;; sw->check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->offset = fifo_len(sw->fifo) - sw->h; sw->check_bounds(sw); redraw_later(); return 1; case ACT_END: sw->offset = 0; sw->check_bounds(sw); redraw_later(); return 1; /* case ACT_SCROLL_LEFT: if (sw->fifo->ho>0) sw->fifo->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: sw->fifo->ho++; redraw_later(); return 1;*/ case ACT_SCROLL_LEFT: if (sw->fifo) if (sw->fifo->ho>0) sw->fifo->ho--; if (sw->lines) if (sw->ho>0) sw->ho--; redraw_later(); return 1; case ACT_SCROLL_RIGHT: if (sw->fifo) sw->fifo->ho++; if (sw->lines) sw->ho++; redraw_later(); return 1; case ACT_ENTER: sw->fifo->withouttime = 1; fifo_adds(sw->fifo, ""); sw->fifo->withouttime = 0; return 1; } return 0; } int sw_fifo_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (ev->b & B_DRAG){ int dx = ev->x - sw->olddragx; int dy = sw_accel_dy(sw, ev); //dbg("dx=%d dy=%d sw->ho=%d\n", dx, dy, sw->ho); #ifdef Z_HAVE_SDL if (abs(dx * FONT_W) > abs(dy)){ if (sw->fifo) { sw->fifo->ho -= dx; if (sw->fifo->ho < 0) sw->fifo->ho = 0; } if (sw->lines){ sw->ho -= dx; if (sw->ho < 0) sw->ho = 0; } }else{ sw->offset += dy; } #endif sw->olddragx = ev->x; sw->check_bounds(sw); redraw_later(); return 1; } //if ((ev->b & BM_ACT)!=B_DOWN) return 0; switch (ev->b & (BM_EBUTT | B_CLICK | B_MOVE)){ case B_LEFT: sw->olddragx = ev->x; sw->olddragy = ev->my; return 1; case B_LEFT | B_CLICK: //dbg("x il=%p\n",sw->il); if (!sw->il) break; /* dbg("y=%d sw->y=%d sw->hh=%d sw->h=%d\n", ev->y, sw->y, sw->hh, sw->h);*/ if (ev->y==sw->y+sw->h) inputln_func(sw->il, ev); return 1; case B_MIDDLE: //dbg("middle\n"); break; case B_RIGHT: // dbg("right\n"); break; case B_WHUP: //dbg("wheel up\n"); sw->offset+=3; sw->check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: // dbg("wheel down\n"); sw->offset-=3; sw->check_bounds(sw); redraw_later(); return 1; } return 0; } void sw_fifo_redraw(struct subwin *sw, struct band *band, int flags){ int i, index; gchar *c, *suff; /*dbg("sw_log_redraw log->len=%d sw->h=%d sw->offset=%d \n", fifo_len(sw->fifo), sw->h, sw->offset);*/ for (i=0;ih; i++){ index = fifo_len(sw->fifo) - sw->offset - sw->h+i; if (index<0 || index>=fifo_len(sw->fifo)) c = "~"; else c = fifo_index(sw->fifo, index); if (c && strlen(c)>sw->fifo->ho) { print_text(sw->x, sw->y+i, sw->w, c+sw->fifo->ho, COL_NORM); if (!aband) continue; sw_highlight(sw, c, ctest->pcall, COL_YELLOW, i, 1); if (strlen(ctest->pcall)>=2){ suff=z_suffix(ctest->pcall); sw_highlight(sw, c, suff, COL_YELLOW, i, 1); } sw_highlight(sw, c, aband->operator_, COL_YELLOW, i, 1); if (strlen(aband->operator_)>=2){ suff=z_suffix(aband->operator_); sw_highlight(sw, c, suff, COL_YELLOW, i, 1); } } } } void sw_fifo_check_bounds(struct subwin *sw){ // sw->offset = fifo_len(sw->fifo) - sw->h; if (sw->offset < 0) { sw->offset=0; sw_shake(sw, 0); return; } if (fifo_len(sw->fifo) <= sw->h){ if (sw->offset > 0){ sw_shake(sw, 1); sw->offset = 0; } }else{ if (sw->offset > fifo_len(sw->fifo) - sw->h) { sw->offset = fifo_len(sw->fifo) - sw->h; // must be >0 sw_shake(sw, 1); } } } /********************** SHELL ****************************************/ /* Return: * -1 = hidden * 0 = not highlighted * 1 = highlighted, call not worked * 2 = highlighted, call worked */ int sw_line_is_highlighted(struct subwin *sw, gchar *c){ int i, ret; for (i=0; ihigh->len; i++){ if (!regcmp(c, (char *)g_ptr_array_index(sw->high, i))){ return 1; } } ret = sw_shell_hihglight(sw, c); return ret; } void sw_shell_redraw(struct subwin *sw, struct band *band, int flags){ int i, index, col=COL_NORM; gchar *c, *to, *call, *suffcall, *operator_, *suffoperator; if (ctest){ call=ctest->pcall; operator_=aband->operator_; }else{ call=cfg->pcall; operator_=cfg->operator_; if (!operator_ || !*operator_) operator_=NULL; } if (strlen(call)>3){ suffcall=z_suffix(call); }else{ suffcall=NULL; } if (operator_ && strlen(operator_)>3){ suffoperator=z_suffix(operator_); }else{ suffoperator=NULL; } to=g_strconcat("to ", call, NULL); /* dbg("sw_shell_redraw: offset=%d\n", sw->offset);*/ for (i=0;ih; i++){ index = sw->lines->len - sw->offset - sw->h +i; if (index<0 || index>=sw->lines->len) c = "~"; else c = (char *)g_ptr_array_index(sw->lines, index); if (c && strlen(c)>sw->ho){ switch (sw_line_is_highlighted(sw, c)){ case 0: col=COL_NORM; break; case 1: col=COL_YELLOW; break; case 2: col=COL_DARKYELLOW; break; } print_text(sw->x, sw->y+i, sw->w, c + sw->ho, col); continue; sw_highlight(sw, c, call, COL_RED, i, 1); if (suffcall){ sw_highlight(sw, c, suffcall, COL_RED, i, 1); } if (operator_){ sw_highlight(sw, c, operator_, COL_RED, i, 1); if (suffoperator){ sw_highlight(sw, c, suffoperator, COL_RED, i, 1); } } sw_highlight(sw, c, to, COL_RED, i, 1); } } g_free(to); } void sw_shell_check_bounds(struct subwin *sw){ if (sw->offset < 0) { sw->offset=0; sw_shake(sw, 0); } if (sw->lines->len - 1 <= sw->h){ if (sw->offset > 0){ sw_shake(sw, 1); sw->offset = 0; } }else{ if (sw->offset > sw->lines->len - sw->h){ sw->offset = sw->lines->len - sw->h; sw_shake(sw, 1); } } /*if (sw->offset > sw->lines->len - 1) { sw->offset = sw->lines->len - 1; if (sw->offset >= 0) sw_shake(sw, 1); } if (sw->offset < 0) { sw->offset=0; sw_shake(sw, 0); } */ } /*static time_t lastenter = 0;*/ void sw_shell_enter(void *data, gchar *str, int cq){ struct subwin *sw; int towrite, ret; sw = (struct subwin*)data; /*dbg("sw_shell_enter(%p,'%s')\n",data,str);*/ towrite = strlen(str); ret = zserial_write(sw->zser, str, towrite); if (ret < 0) goto failed; #ifdef Z_MSC_MINGW ret = zserial_write(sw->zser, "\r\n", 2); if (ret < 0) goto failed; #else ret = zserial_write(sw->zser, "\n", 1); if (ret < 0) goto failed; #endif //dbg(" towrite=%d ret=%d (%d)\n", towrite, ret, errno); #if defined(Z_UNIX_ANDROID) && !defined(Z_HAVE_PTY_H) char s[100]; sw_add_block(sw, str); sw_add_block(sw, "\n"); strcpy(s, "echo -n \"$HOSTNAME $PWD\\$ \"\n"); ret = zserial_write(sw->zser, s, strlen(s)); if (ret < 0) goto failed; #endif return; failed:; sw_add_block(sw, VTEXT(T_PROC_EXITED)); sw_shell_kill(sw); } void sw_shell_read_handler(void *arg){ struct subwin *sw; char buf[1030], *d; int ret,i; char buf2[1030], *pbuf, *pbuf2; sw = (struct subwin*)arg; memset(buf, 0, sizeof(buf)); /*dbg("sw_shell_read_handler\n");*/ ret = z_pipe_read(sw->read_fd, buf, 1024); /*dbg("read returns %d (%d) buf='%s' \n", ret, errno, buf);*/ if (ret<=0) { sw_add_block(sw, VTEXT(T_PROC_EXITED)); sw_shell_kill(sw); return; } for (i=0,d=buf;iiconv){ size_t a = ret, b = ret; pbuf = buf; pbuf2 = buf2; iconv(sw->iconv, &pbuf, &a, &pbuf2, &b); buf2[ret]='\0'; sw_add_block(sw, buf2); }else{ sw_add_block(sw, buf); } if (!sw->ontop && !sw->unread) { sw->unread=1; redraw_later(); } } void sw_shell_kill(struct subwin *sw){ if (sw->zser){ zserial_close(sw->zser); // sw->zser = NULL; } if (sw->read_fd >= 0){ closesocket(sw->read_fd); zselect_set(zsel, sw->read_fd, NULL, NULL, NULL, NULL); } if (sw->write_fd >= 0 && sw->write_fd != sw->read_fd){ closesocket(sw->write_fd); zselect_set(zsel, sw->write_fd, NULL, NULL, NULL, NULL); } sw->read_fd = -1; sw->write_fd = -1; } #define FREE_SW_CX if (c1) {g_free(c1); c1=NULL;} if (c2) {g_free(c2); c2=NULL;} void sw_toggle_highlight(struct subwin *sw, gchar *s){ int ret; char *c1,*c2; char *c, call[25]; //time_t kst_time = 0; //char *text = NULL; //dbg("sw_toggle_highlight(sw, '%s')\n", s); c=g_strdup(s); z_str_uc(c); /**** WWC via ON4KST ****/ /* 1808Z WWC: : jcs done today !! */ c1=NULL; c2=NULL; ret=regmatch(c, "^[0-9]{4}Z WWC: <\\**([0-9A-Z\\/]+)\\**>: ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); //text = "@WWC via KST"; goto doit; } FREE_SW_CX; /**** ON4KST ****/ /* 1808Z OK1KRQ/P Club> GE all */ c1=NULL; c2=NULL; ret=regmatch(c, "^[0-9]{4}Z ([0-9A-Z\\/]+).*>", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); //kst_time = time(NULL); //text = "@KST"; goto doit; } FREE_SW_CX; /**** WWC ****/ /* : allok ! */ c1=NULL; c2=NULL; ret=regmatch(c, "^<\\**([0-9A-Z\\/]+)\\**>: ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); //text = "@WWC"; goto doit; } FREE_SW_CX; /**** DX cluster ****/ /* DX de PA4PS: 144145.0 K6MYC Tnx eme new# best-20 0841Z */ c1=NULL; c2=NULL; ret=regmatch(c, "^DX DE [0-9A-Z]+:..............([0-9A-Z\\/]+)", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); //text = "@DXC"; goto doit; } FREE_SW_CX; /**** DX cluster SH/DX ****/ /* 432160.0 OK1KIR 7-Oct-2007 0010Z PSE TURN TO JN 76 2320170.0 OK1KIR 7-Oct-2007 1338Z tnx qso 678km. 24048140.0 OK1KIR 6-Oct-2007 2148Z jo60pm-jo50vi 24048100.0 OK1KIR 6-Oct-2007 1314Z nice 59/59 in JO60LJ */ c1=NULL; c2=NULL; ret=regmatch(c, "^ *[0-9]+\\.[0-9] ([0-9A-Z\\/]+) ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); //text = "DXC SH/DX"; goto doit; } FREE_SW_CX; /**** DX cluster login/logout ****/ /* User OM3TCG has logged in */ c1=NULL; c2=NULL; ret=regmatch(c, "^USER ([0-9A-Z\\/]+) HAS LOGGED ", &c1, &c2, NULL); if (ret==0){ safe_strncpy0(call, c2, 19); //text = "DXC LOGIN/LOGOUT"; goto doit; } FREE_SW_CX; /**/ doit:; /* dbg("ret=%d c1='%s' c2='%s'\n", ret, c1, c2);*/ FREE_SW_CX; g_free(c); if (ret) return; sw_kst_toggle_highlight(sw, call, 1); /*z_get_raw_call(t, call); if (g_hash_table_lookup_extended(gses->hicalls, (gpointer)t, (gpointer)&key, (gpointer)&value)){ g_hash_table_remove(gses->hicalls, key); g_free(key); g_free(value); dbg("call='%s' removed\n", t); }else{ g_hash_table_insert(gses->hicalls, g_strdup(t), g_strdup("")); if (aband){ int wkd[32]; char *wwl = NULL; wwl = find_wwl_by_call(cw, t); if (wwl == NULL) wwl = ""; memset(wkd, 0, sizeof(wkd)); qrv_add(t, wwl, (1<bi), wkd, text, kst_time); } dbg("call='%s' inserted\n", t); } */ /* dbg("%d\n", g_hash_table_size(gses->hicalls));*/ redraw_later(); } int sw_shell_mouse_func(struct subwin *sw, struct event *ev, int fw){ int index; gchar *c; if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (ev->b & B_DRAG){ int dy = sw_accel_dy(sw, ev); if (dy == 0) return 1; sw->offset += dy; sw->check_bounds(sw); redraw_later(); sw->olddragx = ev->x; return 1; } //if ((ev->b & BM_ACT)!=B_DOWN) return 0; // dbg("ev->b=%x BM_ACT=%x B_DOWN=%x BM_EBUTT=%x \n", ev->b, BM_ACT, B_DOWN, BM_EBUTT); switch (ev->b & BM_BUTCL){ case B_LEFT: sw->olddragx = ev->x; sw->olddragy = ev->my; break; case B_LEFT | B_CLICK: //dbg("x il=%p\n",sw->il); if (!sw->il) break; /* dbg("y=%d y=%d hh=%d \n", ev->y, sw->y, sw->hh);*/ if (ev->y==sw->y+sw->h){ inputln_func(sw->il, ev); return 1; } index = sw->lines->len - sw->offset - sw->h + (ev->y - sw->y); /* dbg("index=%d\n",index);*/ if (index<0 || index>=sw->lines->len) break; c = (char *)g_ptr_array_index(sw->lines, index); /* dbg("c='%s'\n", c);*/ sw_toggle_highlight(sw, c); return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT: /* dbg("right\n");*/ break; case B_WHUP: /* dbg("wheel up\n");*/ sw->offset+=3; sw->check_bounds(sw); redraw_later(); return 1; case B_WHDOWN: /* dbg("wheel down\n"); */ sw->offset-=3; sw->check_bounds(sw); redraw_later(); return 1; } return 0; } static int sw_match; void sw_shell_match(gpointer acall, gpointer pval, gpointer astr){ gchar *call = (gchar *)acall; int *value = (int *)pval; gchar *str = (gchar *)astr; if (*value < sw_match) return; /* speed up search */ /*dbg(" match call='%s' str='%s'\n", call, str);*/ //return regcmpi(str, call); if (strstr(str, call) == NULL) return; sw_match = *value; if (!aband) return; //if (get_qso_by_callsign(aband, call)==NULL) return; if (!worked_on_all_rw(call)) return; sw_match=2; } int sw_shell_hihglight(struct subwin *sw, char *str){ sw_match=-100; g_hash_table_foreach(gses->hicalls, sw_shell_match, str); // dbg("sw_match: %d for %s\n", sw_match, str); return sw_match; } /******************** TALK ************************/ void sw_talk_enter(void *enterdata, gchar *str, int cq){ struct subwin *sw; gchar *msg, *c, *pband, *operator_; /*dbg("sw_talk_enter(%p,'%s')\n",enterdata,str);*/ sw = (struct subwin *)enterdata; if (aband){ pband = g_strdup(aband->pband); c = strchr(pband, ' '); if (c) *c='\0'; operator_=aband->operator_; }else{ pband=""; operator_=cfg->pcall; } msg=g_strdup_printf("%6s@%-3s: %s", operator_, pband, str); c=g_strdup_printf("TA %s\n", msg); rel_write_all(c); g_free(c); //fifo_addf(sw->fifo,"%6s: %s", operator_, str); fifo_addf(sw->fifo, "%6s@%-3s: %s", operator_, pband, str); g_free(msg); } void sw_talk_read(char *data, int ignoredupe){ struct subwin *sw; int i, unread=0; /* dbg("sw_talk_read('%s')\n", data);*/ for (i=0; isubwins->len; i++){ sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (sw->type == SWT_TALK){ if (ignoredupe) { if (fifo_contains(sw->fifo, data)) continue; } fifo_adds(sw->fifo, data); log_adds(data); /* no sw_check_len ! */ if (sw->ontop) unread=1; if (!sw->ontop) sw->unread=1; } } if (unread) redraw_later(); return; } /******************* UNFINISHED ****************************/ int sw_unfi_kbd_func(struct subwin *sw, struct event *ev, int fw){ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (!aband) return 0; sw->fifo = aband->unfi; return sw_fifo_kbd_func(sw, ev, fw); } int sw_unfi_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (!aband) return 0; sw->fifo = aband->unfi; return sw_fifo_mouse_func(sw, ev, fw); } void sw_unfi_redraw(struct subwin *sw, struct band *band, int flags){ if (!aband) return; sw->fifo = aband->unfi; sw_fifo_redraw(sw, band, flags); } void sw_unfi_check_bounds(struct subwin *sw){ if (!aband) return; sw->fifo = aband->unfi; sw_fifo_check_bounds(sw); } /******************* STATICTICS ****************************/ int sw_stat_kbd_func(struct subwin *sw, struct event *ev, int fw){ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (!aband) return 0; sw->fifo = aband->statsfifo1; return sw_fifo_kbd_func(sw, ev, fw); } int sw_stat_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (zselect_profiling(zsel)) zselect_hint(zsel, __FUNCTION__); if (!aband) return 0; sw->fifo = aband->statsfifo1; return sw_fifo_mouse_func(sw, ev, fw); } void sw_stat_redraw(struct subwin *sw, struct band *band, int flags){ if (!aband) return; sw->fifo = aband->statsfifo1; sw_fifo_redraw(sw, band, flags); } void sw_stat_check_bounds(struct subwin *sw){ if (!aband) return; sw->fifo = aband->statsfifo1; sw_fifo_check_bounds(sw); } void sw_stat_raise(struct subwin *sw){ /*dbg("sw_stat_raise\n"); */ if (!aband) return; recalc_statsfifo(aband); } void clip_char(struct subwin *sw, int xrel, int yrel, unsigned c){ if (xrel < 0) return; if (yrel < 0) return; if (xrel >= sw->ww) return; if (yrel >= sw->hh) return; set_char(sw->x + xrel, sw->y + yrel, c); } void clip_color(struct subwin *sw, int xrel, int yrel, unsigned c){ if (xrel < 0) return; if (yrel < 0) return; if (xrel >= sw->w) return; if (yrel >= sw->h) return; set_color(sw->x + xrel, sw->y + yrel, c); } void clip_printf(struct subwin *sw, int xrel, int yrel, short color, char *fmt, ...){ va_list l; gchar *c, *s; // dbg("clip_printf('%s')\n", fmt); va_start(l, fmt); s=g_strdup_vprintf(fmt, l); va_end(l); for (c=s; *c!='\0'; c++){ clip_char(sw, xrel++, yrel, (unsigned char)*c | color); } g_free(s); } void sw_export_lines(struct subwin *sw, char *fname){ int i; char *filename = NULL; FILE *f; for (i = 0; 1; i++) { struct stat st; filename = g_strdup_printf("%s/%s%d.txt", ctest ? ctest->directory : tucnak_dir, fname, i); z_wokna(filename); if (stat(filename, &st) != 0) break; g_free(filename); } f = fopen(filename, "wt"); if (f){ for (i = 0; i < sw->lines->len; i++){ char *line = (char *)g_ptr_array_index(sw->lines, i); fprintf(f, "%s\n", line); } fclose(f); log_addf(VTEXT(T_SAVED_S), filename); }else{ log_addf("Error"); } g_free(filename); } int sw_shake_tmo = -1; void sw_shake(struct subwin *sw, int down){ #ifdef Z_HAVE_SDL SDL_Surface *old; SDL_Rect src, dst, fill; int len; int h; if (!sdl || !zsdl) return; if (sw->w <= 0 || sw->h <= 0) return; if (sw->shaking) return; h = zsdl->font_h / 4; if (sw_shake_tmo != -1){ if (!ztimeout_occured(sw_shake_tmo)) { // sw_shake_tmo = ztimeout_init(300); return; } } sw->shaking = 1; redraw_terminal(NULL); sdl_redraw_screen(); sw_shake_tmo = ztimeout_init(500); MUTEX_LOCK(sdl->eventpipestate); len = sdl->eventpipestate; MUTEX_UNLOCK(sdl->eventpipestate); if (len > 0) goto x; //log_addf("eventpipe=%d %d", len, len / sizeof(struct event)); //if (!sw->screen) return; src.x = sw->x * FONT_W; src.y = sw->y * FONT_H; src.w = sw->w * FONT_W; src.h = sw->h * FONT_H; old = SDL_CreateRGBSurface(SDL_SWSURFACE, src.w, src.h, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); if (old == NULL) goto x; SDL_BlitSurface(sdl->screen, &src, old, NULL); if (down){ dst.x = src.x; dst.y = src.y + h; dst.w = src.w; dst.h = src.h - h; src.h -= h; SDL_BlitSurface(sdl->screen, &src, sdl->screen, &dst); fill.x = src.x; fill.y = src.y; fill.w = src.w; fill.h = h; SDL_FillRect(sdl->screen, &fill, z_makecol(0, 0, 0)); }else{ dst.x = src.x; dst.y = src.y; dst.w = src.w; dst.h = src.h - h; src.y += h; src.h -= h; SDL_BlitSurface(sdl->screen, &src, sdl->screen, &dst); fill.x = src.x; fill.y = src.y + src.h - h; fill.w = src.w; fill.h = h; SDL_FillRect(sdl->screen, &fill, z_makecol(0, 0, 0)); } SDL_UpdateRect(sdl->screen, 0, 0, 0, 0); /*#ifdef Z_ANDROID usleep(70000); #else usleep(20000); #endif*/ usleep(100000); dst.x = sw->x * FONT_W; dst.y = sw->y * FONT_H; dst.w = sw->w * FONT_W; dst.h = sw->h * FONT_H; SDL_BlitSurface(old, NULL, sdl->screen, &dst); SDL_UpdateRect(sdl->screen, dst.x, dst.y, dst.w, dst.h); x:; sw->shaking = 0; #endif } int sw_accel_dy(struct subwin *sw, struct event *ev){ #ifdef Z_HAVE_SDL int dragdiv; double v; int dy = (ev->my - sw->olddragy); //log_addf("my=%d oldy=%d dy=%4d vy=%8.0f", ev->my, sw->olddragy, dy, ev->vy); if (dy == 0) return 0; dragdiv = 16; v = ev->vy; if (v < 0) v = -v; if (v < 50) dragdiv = 16; else if (v < 100) dragdiv = 8; else if (v < 300) dragdiv = 4; else if (v < 400) dragdiv = 2; else dragdiv = 1; //log_addf("dy=%4d vy=%8.0f dragdiv=%4d", dy, ev->vy, dragdiv); dy /= dragdiv; if (dy == 0) return 0; sw->olddragy = ev->my; return dy; #else return 0; #endif } void sw_highlight(struct subwin *sw, const char *text, const char *needle, int color, int i, int whole){ const gchar *cc; char *fd, *d, after; int rx, fx, fl, ho; int needlelen = strlen(needle); if (needle == NULL || *needle == '\0') return; ho = sw->ho; if (sw->fifo) ho = sw->fifo->ho; cc = text; while ((d = z_strcasestr(cc, needle)) != NULL){ if (whole){ if (d > cc){ char before = d[-1]; if (isalnum(before)) { cc = d + strlen(needle); continue; } } after = d[strlen(needle)]; if (isalnum(after)){ cc = d + strlen(needle); continue; } } fl = MIN(sw->w - (d - text) + ho, needlelen); fx = rx = (d - text) - ho; fd = d; if (rx < 0) { fl += rx; fx = 0; fd = d - rx; } if (fl > 0) print_text(sw->x + fx, sw->y + i, fl, fd, color); cc = d + strlen(needle); } } tucnak-4.04/src/ppdev.c0000644000175000017500000001751512460207027011731 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "cwdaemon.h" #include "fifo.h" #include "language2.h" #include "ppdev.h" #include "rc.h" #ifdef HAVE_LINUX_PPDEV_H int parport_init(struct cwdaemon *cwda){ cwda->fd = -1; parport_open(cwda, 1); return 0; } int parport_open(struct cwdaemon *cwda, int verbose){ int mode; struct ppdev_frob_struct frob; char errbuf[1024]; if (cwda->freeing) return -1; if (cwda->fd >=0 ) return 0; cwda->fd = open(cfg->cwda_device, O_RDWR|O_NONBLOCK); if (cwda->fd<0){ if (verbose) log_addf(VTEXT(T_CANT_OPEN), cfg->cwda_device, strerror_r(errno, errbuf, sizeof(errbuf))); if (errno==ENOENT) { int len, devno; len=strcspn(cfg->cwda_device, "01234567890"); if (lencwda_device)) devno=atoi(cfg->cwda_device+len); else devno=0; if (verbose) log_addf(VTEXT(T_TIP_MKNOD), cfg->cwda_device, devno, cfg->cwda_device); } if (errno==EACCES && verbose) { log_addf(VTEXT(T_TIP_CHMOD), cfg->cwda_device); } close(cwda->fd); cwda->fd=-1; return -1; } mode=PARPORT_MODE_PCSPP; if (ioctl(cwda->fd, PPSETMODE, &mode)<0){ if (verbose) log_addf(VTEXT(T_CANT_SET_EPP), cfg->cwda_device, cfg->cwda_device, errno, strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return -1; } if (ioctl(cwda->fd, PPEXCL, NULL)<0){ if (verbose) log_addf(VTEXT(T_CANT_EXCLUSIVE_ACCESS), cfg->cwda_device, cfg->cwda_device, errno, strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return -1; } if (ioctl(cwda->fd, PPCLAIM, NULL)<0){ if (verbose) log_addf(VTEXT(T_CANT_CLAIM), cfg->cwda_device, strerror_r(errno, errbuf, sizeof(errbuf))); if (errno==ENXIO && verbose){ log_addf(VTEXT(T_TIP_RMMOD)); log_addf(VTEXT(T_TIP_KILL_LSOF), cfg->cwda_device); } close(cwda->fd); cwda->fd=-1; return -1; } frob.mask = PARPORT_CONTROL_STROBE; frob.val = PARPORT_CONTROL_STROBE; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ if (verbose) log_addf(VTEXT(T_CANT_SET_STROBE), strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } parport_reset(cwda); return 0; } /* linux ppdev */ int parport_free(struct cwdaemon *cwda){ struct ppdev_frob_struct frob; char errbuf[1024]; if (!cwda) return 0; if (cwda->fd>=0){ frob.mask = PARPORT_CONTROL_STROBE; frob.val = 0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't clear parport_STROBE %s\n", strerror_r(errno, errbuf, sizeof(errbuf))); } close(cwda->fd); cwda->fd=-1; } return 0; } /* linux ppdev */ int parport_reset(struct cwdaemon *cwda){ parport_ptt(cwda, 0); parport_cw(cwda, 0); parport_ssbway(cwda, 0); return 0; } /* linux ppdev */ int parport_cw(struct cwdaemon *cwda, int onoff){ struct ppdev_frob_struct frob; char errbuf[1024]; if (!cwda || cwda->fd<0) return 1; frob.mask = PARPORT_CONTROL_SELECT; frob.val = !onoff?PARPORT_CONTROL_SELECT:0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't %s parport_SELECT %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } /* linux ppdev */ int parport_ptt(struct cwdaemon *cwda, int onoff){ struct ppdev_frob_struct frob; char errbuf[1024]; if (!cwda) return 1; if (cwda->fd<0 && parport_open(cwda, 0)) return 1; frob.mask = PARPORT_CONTROL_INIT; frob.val = onoff?PARPORT_CONTROL_INIT:0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't %s parport_INIT %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } /* linux ppdev */ int parport_ssbway(struct cwdaemon *cwda, int onoff){ struct ppdev_frob_struct frob; char errbuf[1024]; /*dbg("ssbway(%d)\n", onoff);*/ if (!cwda) return 1; if (cwda->fd<0 && parport_open(cwda, 0)) return 1; frob.mask = PARPORT_CONTROL_AUTOFD; frob.val = onoff?PARPORT_CONTROL_AUTOFD:0; if (ioctl(cwda->fd, PPFCONTROL, &frob)<0){ dbg("Can't %s parport_AUTOFD %s\n", onoff?"set":"clear", strerror_r(errno, errbuf, sizeof(errbuf))); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } int parport_band(struct cwdaemon *cwda, int bandsw){ if (!cwda) return 1; if (cwda->fd<0 && parport_open(cwda, 0)) return 1; cwda->data &= ~0xe1; if (bandsw & 0x01) cwda->data |= 0x01; if (bandsw & 0x02) cwda->data |= 0x20; if (bandsw & 0x04) cwda->data |= 0x40; if (bandsw & 0x08) cwda->data |= 0x80; if (ioctl(cwda->fd, PPWDATA, &cwda->data)<0){ dbg("Can't write data to parport\n"); close(cwda->fd); cwda->fd=-1; return 1; } return 0; } void parport_info(GString *gs){ int port; int fd; char s[1024]; char errbuf[1024]; unsigned int modes; int mode; g_string_sprintfa(gs, "\n parport_info:\n"); for (port=0;port<4;port++){ sprintf(s, "/dev/parport%d", port); fd=open(s, O_RDWR|O_NONBLOCK); if (fd<0){ if (errno==ENOENT) continue; g_string_sprintfa(gs, "Found /dev/parport%d but cannot open it: %s\n", port, strerror_r(errno, errbuf, sizeof(errbuf))); continue; } if (ioctl(fd, PPGETMODES, &modes)<0){ if (errno==ENODEV) continue; g_string_sprintfa(gs, "Can't get modes for /dev/parport%d: %s\n", port, strerror_r(errno, errbuf, sizeof(errbuf))); close(fd); continue; } g_string_sprintfa(gs, "Found /dev/parport%d\n", port); g_string_sprintfa(gs, " modes: 0x%x ", modes); if (modes&PARPORT_MODE_PCSPP) g_string_sprintfa(gs, "SPP "); if (modes&PARPORT_MODE_TRISTATE) g_string_sprintfa(gs, "TRISTATE "); if (modes&PARPORT_MODE_EPP) g_string_sprintfa(gs, "EPP "); if (modes&PARPORT_MODE_ECP) g_string_sprintfa(gs, "ECP "); if (modes&PARPORT_MODE_COMPAT) g_string_sprintfa(gs, "COMPAT "); if (modes&PARPORT_MODE_DMA) g_string_sprintfa(gs, "DMA "); if (modes&PARPORT_MODE_SAFEININT) g_string_sprintfa(gs, "SAFEINIT "); g_string_sprintfa(gs, "\n"); if (ioctl(fd, PPGETMODE, &mode)<0){ close(fd); continue; } g_string_sprintfa(gs, " mode: 0x%x ", mode); if (mode==0) g_string_sprintfa(gs, "NIBBLE "); if (mode&IEEE1284_MODE_BYTE) g_string_sprintfa(gs, "BYTE "); if (mode&IEEE1284_MODE_COMPAT) g_string_sprintfa(gs, "COMPAT "); if (mode&IEEE1284_MODE_BECP) g_string_sprintfa(gs, "Bounded_ECP "); if (mode&IEEE1284_MODE_ECP) g_string_sprintfa(gs, "ECP "); if (mode&IEEE1284_MODE_ECPRLE) g_string_sprintfa(gs, "ECP_RLE "); if (mode&IEEE1284_MODE_ECPSWE) g_string_sprintfa(gs, "Software_ECP "); if (mode&IEEE1284_MODE_EPP) g_string_sprintfa(gs, "EPP "); if (mode&IEEE1284_MODE_EPPSL) g_string_sprintfa(gs, "EPP_1.7 "); if (mode&IEEE1284_MODE_EPPSWE) g_string_sprintfa(gs, "Software_EPP "); if (mode&IEEE1284_DEVICEID) g_string_sprintfa(gs, "DEVICEID "); g_string_sprintfa(gs, "\n"); close(fd); } g_string_sprintfa(gs, "\n"); } #endif tucnak-4.04/src/winkey.h0000644000175000017500000000227712070761312012124 00000000000000 /* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __WINKEY_H #define __WINKEY_H #include "header.h" struct cwdaemon; int winkey_init_serial(struct cwdaemon *); int winkey_init_tcp (struct cwdaemon *); int winkey_open (struct cwdaemon *cwda, int verbose); int winkey_free (struct cwdaemon *); int winkey_reset (struct cwdaemon *); int winkey_cw (struct cwdaemon *, int onoff); int winkey_ptt (struct cwdaemon *, int onoff); int winkey_ssbway (struct cwdaemon *, int onoff); int winkey_text (struct cwdaemon *cwda, char *text); int winkey_speed (struct cwdaemon *cwda, int wpm); int winkey_weight (struct cwdaemon *cwda, int weight); int winkey_tune (struct cwdaemon *cwda, int tune); int winkey_back (struct cwdaemon *cwda); void winkey_read_handler(void *arg); int winkey_read(struct cwdaemon *cwda, int timeout_ms); int winkey4_init (struct cwdaemon *); int winkey4_free (struct cwdaemon *); int winkey4_reset (struct cwdaemon *); #endif tucnak-4.04/src/tsdl.h0000644000175000017500000000442412321310750011553 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __TSDL_H #define __TSDL_H #include "header.h" #ifdef Z_HAVE_SDL #define SDL_USERDATA_IN_FILTEREVENTx #define FONT_W zsdl->font_w #define FONT_H zsdl->font_h /*struct tsdl_setvideomode{ int w, h, bpp, flags; SDL_Surface *screen; int done; };*/ struct tsdl{ SDL_Surface *screen; int fullscreen; SDL_Surface *icon, *mast, *home, *zoomin, *zoomout, *key, *xfer; int bpp; SDL_Color colors[256]; SDL_Rect termarea; int gr[16]; int termcol[16]; int yellow, yellow2, red, green; int cursor; GThread *event_thread; int event_thread_break; int mouse_drag, drag_buttons; int eventpipestate, resizeevents, resize_w, resize_h; MUTEX_DEFINE(eventpipestate); /* GMutex *eventpipestate_mutex; #ifdef LEAK_DEBUG_LIST char *eventpipestate_file; int eventpipestate_line; #endif */ gchar *title; int mouse_x, mouse_y; int eventpipe[2]; iconv_t iconv; #ifdef Z_MSC_MINGW int event_timer_id; #endif int progress_w; int screen_w, screen_h; int window_w, window_h; int old_mouse_x, old_mouse_y; int altsym; int ctrl; int ignore_progress; }; extern struct tsdl *sdl; extern struct zzsdl *zsdl; struct tsdl *init_sdl(void); void sdl_stop_event_thread(void); void free_sdl(void); SDL_Rect *new_rect(int x, int y, int w, int h); void free_rect(SDL_Rect *rect); void sdl_pre_info(void); void sdl_info(GString *gs); int sdl_setvideomode(int w, int h, int init); void sdl_redraw_screen(void); int sdl_get_terminal_size(int, int *, int *); int sdl_attach_terminal(int, int, int); gpointer sdl_event_thread(gpointer handle); #ifdef SDL_USERDATA_IN_FILTEREVENT int sdl_filter_events(void *userdata, const SDL_Event *ev); #else int sdl_filter_events(const SDL_Event *ev); #endif int sdl_set_title(gchar *title); void sdl_screenshot(int topwindow); void zsdl_test_bars(SDL_Surface *surface, int ofs); #endif void progress(char *m, ...); void sdl_force_redraw(void); void tsdl_change_font(char how); void tsdl_optimal_font(void); #endif tucnak-4.04/src/httpd.c0000644000175000017500000004600112500545555011734 00000000000000/* httpd.c - Contest progress displayed via http Copyright (C) 2011-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "chart.h" #include "fifo.h" #include "html.h" #include "httpd.h" #include "icons.h" #include "language2.h" #include "main.h" #include "map.h" #include "net.h" #include "rc.h" #include "qsodb.h" #include "stats.h" #include "subwin.h" #include "tsdl.h" struct httpd *httpd; struct httpd *init_httpd(void){ struct httpd *httpd; struct sockaddr_in sin; char errbuf[100]; if (!cfg->httpd_enable) return NULL; progress(VTEXT(T_INIT_HTTPD)); httpd = g_new0(struct httpd, 1); httpd->port = cfg->httpd_port; httpd->sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (httpd->sock < 0){ error("Can't create httpd socket"); goto x; } if (z_sock_reuse(httpd->sock, 1)){ trace(cfg->trace_sock, "Can't set SO_REUSEADDR\n"); goto x; } if (z_sock_nonblock(httpd->sock, 1)){ trace(cfg->trace_sock, "Can't set O_NONBLOCK\n"); goto x; } memset(&sin, 0, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(httpd->port); sin.sin_addr.s_addr = INADDR_ANY; if (bind(httpd->sock, (struct sockaddr *)&sin, sizeof(sin))) { trace(cfg->trace_sock, "Can't bind port %d, %s\n", httpd->port, z_sock_strerror()); goto x; } if (listen(httpd->sock, 10)){ trace(cfg->trace_sock, "Can't listen on socket %d, tcp port %d \n", httpd->sock, httpd->port); goto x; } zselect_set(zsel, httpd->sock, httpd_accept_handler, NULL, NULL, NULL); httpd->conns = g_ptr_array_new(); dbg("httpd active\n"); return httpd; x:; if (httpd->sock >= 0) closesocket(httpd->sock); httpd->sock = -1; g_free(httpd); return NULL; } void free_httpd(struct httpd *httpd){ if (!httpd) return; progress(VTEXT(T_FREE_HTTPD)); if (httpd->sock >= 0) { zselect_set(zsel, httpd->sock, NULL, NULL, NULL, NULL); closesocket(httpd->sock); } g_free(httpd); } void free_httpconn(struct httpconn *conn){ if (conn->sock >= 0) { zselect_set(zsel, conn->sock, NULL, NULL, NULL, NULL); closesocket(conn->sock); } g_string_free(conn->request, TRUE); g_string_free(conn->response, TRUE); if (conn->response_zbb) zbinbuf_free(conn->response_zbb); g_free(conn); } void httpd_accept_handler(void *arg){ int sock; socklen_t socklen; struct httpconn *conn; conn = g_new0(struct httpconn, 1); socklen = sizeof(conn->peer); sock = accept(httpd->sock, (struct sockaddr *)&conn->peer, &socklen); if (!socklen || sock < 0) { g_free(conn); return; } trace(cfg->trace_sock, "Accepted socket %d %s:%d\n", sock, inet_ntoa(conn->peer.sin_addr), ntohs(conn->peer.sin_port)); conn->sock = sock; conn->request = g_string_sized_new(500); conn->response = g_string_sized_new(500); zselect_set(zsel, conn->sock, httpd_read_handler, NULL, NULL, conn); g_ptr_array_add(httpd->conns, conn); } void httpd_read_handler(void *arg){ struct httpconn *conn; char s[1030], *c, lf; int ret; conn = (struct httpconn*)arg; ret = recv(conn->sock, s, 1024, 0); //err=z_sock_errno; if (ret <= 0){ g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } s[ret] = '\0'; g_string_append(conn->request, s); lf = 0; for (c = conn->request->str; *c != '\0'; c++){ if (*c == '\r') continue; if (*c != '\n') { lf = 0; continue; } lf++; if (lf < 2) continue; break; } if (lf < 2) return; g_strlcpy(s, conn->request->str, sizeof(s)); c = strchr(s, '\r'); if (c) *c = '\0'; log_addf("HTTP %s: %s", inet_ntoa(conn->peer.sin_addr), s); if (strncasecmp(conn->request->str, "GET ", 4) == 0){ httpd_get(conn); }else{ httpd_header(conn, 400, NULL); g_string_sprintf(conn->response, "Bad request"); } /* for (i = 0; i < 1000; i++){ g_string_append_c(conn->response, '0' + (i / 100)); }*/ zselect_set(zsel, conn->sock, NULL, httpd_write_handler, NULL, arg); } void httpd_write_handler(void *arg){ struct httpconn *conn; int ret, len; conn = (struct httpconn*)arg; if (conn->response->len > 0){ len = conn->response->len; if (len > 1400) len = 1400; ret = send(conn->sock, conn->response->str, len, 0); //err = z_sock_errno; if (ret <= 0){ g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } g_string_erase(conn->response, 0, ret); if (conn->response->len <= 0 && !conn->response_zbb){ g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } } else { if (conn->response_zbb){ len = conn->response_zbb->len - conn->response_i; if (len > 1400) len = 1400; ret = send(conn->sock, conn->response_zbb->buf + conn->response_i, len, 0); if (ret <= 0){ g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } conn->response_i += ret; if (conn->response_i >= conn->response_zbb->len){ g_ptr_array_remove(httpd->conns, conn); free_httpconn(conn); return; } } } } void httpd_header(struct httpconn *conn, int status, char *contenttype){ char *ss; if (!contenttype) contenttype = "text/html; charset=iso-8859-2"; switch (status){ case 200: ss = "OK"; break; case 405: ss = "Not Found"; break; case 500: ss = "Internal server error"; break; default: ss = "Unknown status"; break; } g_string_sprintf(conn->response, "HTTP/1.1 %d %s\r\n", status, ss); g_string_sprintfa(conn->response, "Server: Tucnak-%s %s\r\n", Z_PLATFORM, PACKAGE_VERSION); g_string_sprintfa(conn->response, "Connection: close\r\n"); g_string_sprintfa(conn->response, "Content-Type: %s\r\n", contenttype); g_string_sprintfa(conn->response, "\r\n"); } static void httpd_get_style_css(struct httpconn *conn){ g_string_append(conn->response, "body {\n" " font-size: 12pt;\n" /*" font-family: Tahoma, Helvetica, Arial, sans-serif}\n"*/ " font-family: Courier New, Courier-new, sans-serif}\n" "a {\n" " font-weight: bold}\n" "h1, h2, h3, h4 {\n" " font-family: Tahoma, Helvetica, Arial, sans-serif;\n" " color: #f8f8f8};\n" "h2 {\n" " margin-top: 20;\n" " margin-bottom: 5;\n" " margin-left:10 }\n" /* input { padding: 2px; margin: 2px; font-weight: normal; font-size: 12px; color: #000000; font-family: sans-serif} li { margin-bottom: 20px } p.stress{ font-style: italic} */ "table.qsos {\n" " border: black 2px solid;\n" " padding: 5px;\n" " background: #606060}\n" "th {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" "td {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" "#calltest {\n" " font-size: 200%}\n" "#q {\n" " text-transform: uppercase;}\n" ); } static void httpd_get_mem(struct httpconn *conn, const unsigned char *mem, int len){ conn->response_zbb = zbinbuf_init(); zbinbuf_append_bin(conn->response_zbb, (void*)mem, len); conn->response_i = 0; } static void httpd_get_index(struct httpconn *conn){ GString *gs2, *title; int i; GString *gs = conn->response; httpd_header(conn, 200, NULL); if (!ctest){ html_header(conn->response, "No contest", HTML_ICON, NULL); g_string_sprintfa(conn->response, "

No contest opened

\n"); html_footer(conn->response, 0); return; } gs2 = g_string_sized_new(1024); title = g_string_sized_new(200); zg_string_eprintfa("h", title, "%S - %s", ctest->pcall, ctest->tname); html_header(gs, title->str, HTML_ICON, NULL); g_string_sprintfa(gs, "
Complete report
\n"); g_string_sprintfa(gs, "QSO search
\n"); for (i = 0; i < ctest->bands->len; i++){ struct band *b; b = (struct band*)g_ptr_array_index(ctest->bands, i); zg_string_eprintfa("h", gs, "

Band %s

\n", b->bandchar, b->bandname); g_string_sprintfa(gs, "

QSOs: %d
\n", b->stats->nqsos); g_string_sprintfa(gs, "Points: %d
\n", b->stats->ntotal); g_string_sprintfa(gs, "WWLs: %d
\n", g_hash_table_size(b->stats->wwls)); g_string_sprintfa(gs, "DXCCs: %d
\n", g_hash_table_size(b->stats->dxcs)); if (b->stats->nqsos){ g_string_sprintfa(gs, "AVG: %5.2f pts/qso
\n", (double)b->stats->ntotal/(double)b->stats->nqsos); } if (b->stats->odxcall){ zg_string_eprintfa("h", gs, "ODX: %S %S %d km op %S
\n", b->stats->odxcall, b->stats->odxwwl, b->stats->odxqrb_int, b->stats->odxoperator); } g_string_sprintfa(gs, "Statistics\n", b->bandchar); g_string_sprintfa(gs, "QSOs
\n", b->bandchar); g_string_sprintfa(gs, "

\n"); } html_footer(conn->response, 0); g_string_free(gs2, TRUE); g_string_free(title, TRUE); } void httpd_get_stats(struct httpconn *conn, const char *bandchar_str){ int i; struct band *b; httpd_header(conn, 200, NULL); if (!ctest){ html_header(conn->response, VTEXT(T_NO_CTEST), HTML_ICON, NULL); g_string_append(conn->response, VTEXT(T_NO_CONTEST_OPENED)); html_footer(conn->response, 0); return; } b = find_band_by_bandchar(bandchar_str[0]); if (!b){ html_header(conn->response, VTEXT(T_BAND_NOT_FOUND), HTML_ICON, NULL); g_string_sprintfa(conn->response, VTEXT(T_BAND_NOT_FOUND), bandchar_str[0]); html_footer(conn->response, 0); return; } html_header(conn->response, VTEXT(T_STATS), HTML_ICON, NULL); g_string_sprintfa(conn->response, "
");
	for (i = 0; i < b->statsfifo1->items->len ; i++){
		char *s = (char*)g_ptr_array_index(b->statsfifo1->items, i);
		g_string_sprintfa(conn->response, "%s\n", s);
	}
    g_string_sprintfa(conn->response, "
"); html_footer(conn->response, 0); } void httpd_get_qsos(struct httpconn *conn, const char *bandchar_str){ struct band *b; struct config_band *confb; char bandchar; struct subwin *map, *chart; httpd_header(conn, 200, NULL); if (!ctest){ html_header(conn->response, VTEXT(T_NO_CTEST), HTML_ICON, NULL); g_string_append(conn->response, VTEXT(T_NO_CONTEST_OPENED)); html_footer(conn->response, 0); return; } bandchar = z_char_uc(bandchar_str[0]); b = find_band_by_bandchar(bandchar); confb = get_config_band_by_bandchar(bandchar); if (!b || !confb){ html_header(conn->response, VTEXT(T_BAND_NOT_FOUND), HTML_ICON, NULL); g_string_sprintfa(conn->response, VTEXT(T_BAND_C_NOT_FOUND), bandchar_str[0]); html_footer(conn->response, 0); return; } map = sw_raise_or_new(SWT_MAP); chart = sw_raise_or_new(SWT_CHART); if (map || chart){ html_header(conn->response, "QSOs", HTML_ICON, NULL); html_band_header(conn->response, b, confb, HTML_ICON | HTML_IMG_ROOT, map, chart); html_qsos(conn->response, b, confb); html_band_footer(conn->response); html_footer(conn->response, 0); } } void httpd_get_complete(struct httpconn *conn){ httpd_header(conn, 200, NULL); if (!ctest){ html_header(conn->response, VTEXT(T_NO_CTEST), HTML_ICON, NULL); g_string_append(conn->response, VTEXT(T_NO_CONTEST_OPENED)); html_footer(conn->response, 0); return; } html_complete(conn->response, HTML_IMG_ROOT); } #ifdef Z_HAVE_SDL void httpd_get_map(struct httpconn *conn, char bandchar){ struct band *band; struct subwin *map; int ret, oldaa; band = find_band_by_bandchar(bandchar); if (!band){ httpd_header(conn, 404, NULL); return; } map = sw_raise_or_new(SWT_MAP); if (!map || !map->screen) { httpd_header(conn, 404, NULL); return; } oldaa = zsdl->antialiasing; if (zsdl->antialiasing_supported) zsdl->antialiasing = 1; map->gdirty = 1; map_for_photo(map, band, 0); map_recalc_gst(map, band); sw_map_redraw(map, band, HTML_FOR_PHOTO); conn->response_zbb = zbinbuf_init(); ret = zpng_save(map->screen, NULL, conn->response_zbb); if (ret){ zbinbuf_free(conn->response_zbb); conn->response_zbb = NULL; httpd_header(conn, 500, NULL); zsdl->antialiasing = oldaa; return; } httpd_header(conn, 200, "image/png"); zsdl->antialiasing = oldaa; map_recalc_gst(map, aband); } void httpd_get_chart(struct httpconn *conn, char bandchar){ struct band *band; struct subwin *chart; int ret; band = find_band_by_bandchar(bandchar); if (!band){ httpd_header(conn, 404, NULL); return; } chart = sw_raise_or_new(SWT_CHART); if (!chart || !chart->screen) { httpd_header(conn, 404, NULL); return; } chart->gdirty = 1; sw_chart_recalc_extremes(chart, band); sw_chart_redraw(chart, band, HTML_FOR_PHOTO); conn->response_zbb = zbinbuf_init(); ret = zpng_save(chart->screen, NULL, conn->response_zbb); if (ret){ zbinbuf_free(conn->response_zbb); conn->response_zbb = NULL; httpd_header(conn, 500, NULL); return; } httpd_header(conn, 200, "image/png"); sw_chart_recalc_extremes(chart, aband); } #endif void httpd_search_form(struct httpconn *conn){ int i, nqsos = 0; time_t now; struct tm *tm; GString *gs = conn->response; zg_string_eprintfa("h", gs, "
%s - %s
\n" "
" "  " "" "
\n", ctest->pcall, ctest->tname); for (i = 0; i < ctest->bands->len; i++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i); nqsos += b->stats->nqsos; } now = time(NULL); tm = gmtime(&now); zg_string_eprintfa("h", gs, "
%d %s | " "%d.%d.%d | %02d:%02d UTC
" "


", nqsos, VTEXT(T_QSOS_IN_DATABASE), tm->tm_mday, tm->tm_mon + 1, tm->tm_year + 1900, tm->tm_hour, tm->tm_min); } /*void httpd_search(struct httpconn *conn){ GString *gs = conn->response; httpd_header(conn, 200, NULL); if (!ctest){ html_header(conn->response, "No contest", HTML_ICON | HTML_CENTER, NULL); g_string_sprintfa(conn->response, "

No contest opened

\n"); g_string_append(gs, "


\n"); html_footer(conn->response, HTML_CENTER); return; } html_header(gs, "Tucnak online log", HTML_ICON | HTML_CENTER, "onLoad=\"document.getElementById('q').focus();\""); httpd_search_form(conn); g_string_append(gs, "


\n"); html_footer(conn->response, HTML_CENTER); } */ void httpd_search(struct httpconn *conn, char *call){ int i, j, found = 0; char *c; GString *gs = conn->response; GString *call2 = g_string_new(""); for (c = call; *c != '\0'; c++){ if (*c != '%') { g_string_append_c(call2, *c); continue; } if (strncmp(c, "%2F", 3) == 0){ g_string_append(call2, "/"); c += 2; continue; } // skip other %.. } httpd_header(conn, 200, NULL); if (!ctest){ html_header(conn->response, VTEXT(T_NO_CTEST), HTML_ICON|HTML_CENTER, NULL); g_string_append(conn->response, VTEXT(T_NO_CONTEST_OPENED)); g_string_append(gs, "


\n"); html_footer(conn->response, HTML_CENTER); return; } html_header(gs, VTEXT(T_TUCNAK_ONLINE_LOG), HTML_ICON | HTML_CENTER, "onLoad=\"document.getElementById('q').focus();\""); httpd_search_form(conn); /*zg_string_eprintfa("h", gs, "
%s - %s
\n", ctest->pcall, ctest->tname);*/ if (strlen(call)){ g_string_sprintfa(gs, "" "", VTEXT(T_BAND2), VTEXT(T_DATE2), VTEXT(T_UTC), VTEXT(T_CALL), VTEXT(T_INFO)); for (i = 0; i < ctest->bands->len; i++){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, i); for (j = 0; j < b->qsos->len; j++){ struct qso *q = (struct qso *)g_ptr_array_index(b->qsos, j); if (strcasecmp(call2->str, q->callsign) != 0) continue; zg_string_eprintfa("h", gs, "\n"); found++; } } g_string_append(gs, "
%s%s%s%s%s
%s%s%s%s", b->pband, q->date_str, q->time_str, q->callsign); if (q->error) g_string_append(gs, "ERROR "); if (q->dupe) g_string_append(gs, "DUPE "); g_string_append(gs, "
"); if (!found > 0) g_string_sprintfa(gs, "

%s

\n", VTEXT(T_CALL_NOT_FOUND)); } g_string_append(gs, "


\n"); html_footer(conn->response, HTML_CENTER); g_string_free(call2, TRUE); } void httpd_get(struct httpconn *conn){ char *c, *page, *tmp, *page0, *page1/*, *page2*/; tmp = NULL; page = conn->request->str + strlen("GET") + 1; while (*page == ' ') page++; c = strchr(page, ' '); if (c != NULL) *c = '\0'; if (strcmp(page, "/") == 0){ if (cfg->httpd_show_priv){ httpd_get_index(conn); }else{ httpd_search(conn, ""); } return; } page0 = strtok_r(page, "/", &tmp); page1 = strtok_r(NULL, "/", &tmp); //page2 = strtok_r(NULL, "/", &tmp); if (cfg->httpd_show_priv){ // private web - all informations if (strcmp(page0, "style.css") == 0){ httpd_get_style_css(conn); }else if (strcmp(page0, "tucnak64.png") == 0){ httpd_get_mem(conn, icon_tucnak64, sizeof(icon_tucnak64)); }else if (strcmp(page0, "stats") == 0){ httpd_get_stats(conn, page1); }else if (strcmp(page0, "qsos") == 0){ httpd_get_qsos(conn, page1); }else if (strcmp(page0, "complete") == 0){ httpd_get_complete(conn); }else if (strncmp(page0, "map", 3) == 0){ #ifdef Z_HAVE_SDL httpd_get_map(conn, page0[3]); #else httpd_header(conn, 404, NULL); #endif }else if (strncmp(page0, "chart", 5) == 0){ #ifdef Z_HAVE_SDL httpd_get_chart(conn, page0[5]); #else httpd_header(conn, 404, NULL); #endif }else if (strncmp(page, "/search?q=", 10) == 0){ httpd_search(conn, page + 10); }else{ httpd_get_index(conn); } }else{ // public web - only insensitive informations if (strcmp(page0, "style.css") == 0){ httpd_get_style_css(conn); }else if (strcmp(page0, "tucnak64.png") == 0){ httpd_get_mem(conn, icon_tucnak64, sizeof(icon_tucnak64)); }else if (strncmp(page, "/search?q=", 10) == 0){ httpd_search(conn, page + 10); }else{ httpd_search(conn, ""); } } } tucnak-4.04/src/cor.c0000644000175000017500000002345012524337645011404 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef Z_HAVE_SDL #include "cor.h" #include "cordata.h" #include "main.h" #include "map.h" #include "session.h" #include "subwin.h" #include "tsdl.h" struct tcor *gcor = NULL; static struct tcor *gcor2 = NULL; struct kmarray *kmarray_new(void){ struct kmarray *kma; kma = g_new0(struct kmarray, 1); kma->size=100; kma->data=g_new0(struct kmpoint, kma->size); return kma; } void kmarray_add(GHashTable *hash, gpointer key, struct kmpoint *km){ struct kmarray *kma; gpointer orig_key, value; if (g_hash_table_lookup_extended(hash, key, &orig_key, &value)){ kma=(struct kmarray *)value; }else{ kma=kmarray_new(); /* dbg("new kma for %p: %p\n",key, kma);*/ g_hash_table_insert(hash, key, kma); } if (kma->len == kma->size){ kma->size+=100; kma->data = g_renew(struct kmpoint, kma->data, kma->size); } memcpy(&kma->data[kma->len], km, sizeof(struct kmpoint)); kma->len++; } #define TO_READ 1000 struct tcor *init_cor(){ struct tcor *cor; cor = g_new0(struct tcor, 1); cor->km = g_hash_table_new(g_direct_hash, g_direct_equal); cor->wwl4 = g_hash_table_new(g_direct_hash, g_direct_equal); cor->wwl2 = g_hash_table_new(g_direct_hash, g_direct_equal); cor->az = g_hash_table_new(g_direct_hash, g_direct_equal); cor->thread_break = 0; cor->file=cor_tucnakcor; cor->items=COR_ITEMS; cor->loc = g_strdup(""); return cor; } void free_cor(struct tcor *cor){ if (!cor) return; if (cor && cor->thread){ cor->thread_break = 1; //dbg("join cor...\n"); g_thread_join(cor->thread); //dbg("done\n"); cor->thread = NULL; } g_free(cor->loc); g_hash_table_foreach_remove(cor->km, free_km_item, NULL); g_hash_table_foreach_remove(cor->wwl4, free_km_item, NULL); g_hash_table_foreach_remove(cor->wwl2, free_km_item, NULL); g_hash_table_foreach_remove(cor->az, free_km_item, NULL); g_free(cor); } void free_cors(){ free_cor(gcor2); free_cor(gcor); } int cor_recalc(struct subwin *sw, gchar *locator){ //dbg("--------\ncor_recalc('%s', '%s') %d %d\n", sw->title, locator, sw->myh, sw->myw); if (gcor && strcmp(gcor->loc, locator) == 0){ //dbg("same locators as gcor\n"); return 0; } if (gcor2 && strcmp(gcor2->loc, locator) == 0){ //dbg("same locators as gcor2, wait for pending recalc\n"); return 0; } if (gcor2) { free_cor(gcor2); } gcor2 = init_cor(); gcor2->loc = g_strdup(locator); gcor2->sw_myw = sw->myw; gcor2->sw_myh = sw->myh; gcor2->thread = g_thread_try_new("cor", cor_thread_func, (gpointer)gcor2, NULL); if (!gcor2->thread) zinternal("Can't run cor thread"); return 0; } gpointer cor_thread_func(gpointer arg){ int i,j; const struct cpoint *cp; struct kmpoint km, kmfirst, kmlast; double h2, w2; gpointer hash, oldhash; int kx, ky, color; struct tcor *cor = (struct tcor *)arg; zg_thread_set_name("Tucnak cor"); /* dbg("recalc_cor(%s)\n", locator);*/ /* return 0; */ // ST_START; kmfirst.c=0; //dbg("cor_thread_func: items=%d h=%f w=%f\n", cor->items, cor->sw_myh, cor->sw_myw); g_hash_table_foreach_remove(cor->km, free_km_item, NULL); oldhash=(gpointer)-1; for (i=0, cp=cor->file; iitems; i++, cp++){ if (cor->thread_break) { dbg("cor thread breaked\n"); return NULL; } w2=(M_PI*(double)cp->w)/18000; h2=(M_PI*(double)cp->h)/18000; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.c=cp->c; km.kx=kx; km.ky=ky; // dbg("cp=%d %d %d km=%d %d %d\n", cp->w, cp->h, cp->c, km.kx, km.ky, km.c); if (km.c<0) { memcpy(&kmfirst, &km, sizeof(kmfirst)); } if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->km, oldhash, &km); kmlast.c=kmfirst.c; kmarray_add(cor->km, hash, &kmlast); } kmarray_add(cor->km, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; } /* large wwls (JN69) */ g_hash_table_foreach_remove(cor->wwl4, free_km_item, NULL); for (i=-89;i<90;i++){ if (cor->thread_break) { dbg("cor thread breaked\n"); return NULL; } if (i%10==0) color=-128; else color=-127; oldhash=(gpointer)-1; km.c=color; for (j=0;j<=360;j++){ w2=(M_PI*i)/180; h2=(M_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl4, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl4, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl4, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } for (j=0;j<360;j+=2){ if (cor->thread_break) { dbg("cor thread breaked\n"); return NULL; } oldhash=(gpointer)-1; if (j%20==0) color=-128; else color=-127; km.c=color; for (i=-89;i<=89;i++){ w2=(M_PI*i)/180; h2=(M_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl4, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl4, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl4, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } /* very large wwls (JN) */ g_hash_table_foreach_remove(cor->wwl2, free_km_item, NULL); for (i=-80;i<90;i+=10){ if (cor->thread_break) { dbg("cor thread breaked\n"); return NULL; } if (i%10==0) color=-128; else color=-127; oldhash=(gpointer)-1; km.c=color; for (j=0;j<=360;j++){ w2=(M_PI*i)/180; h2=(M_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl2, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl2, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl2, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } for (j=0;j<360;j+=20){ if (cor->thread_break) { dbg("cor thread breaked\n"); return NULL; } oldhash=(gpointer)-1; if (j%10==0) color=-128; else color=-127; km.c=color; for (i=-89;i<=89;i++){ w2=(M_PI*i)/180; h2=(M_PI*j)/180; hw2km(cor->sw_myh, cor->sw_myw, h2, w2, &kx, &ky); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->wwl2, oldhash, &km); kmlast.c=color; kmarray_add(cor->wwl2, hash, &kmlast); km.c=0; } kmarray_add(cor->wwl2, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } g_hash_table_foreach_remove(cor->az, free_km_item, NULL); for (j = 0; j < 360; j += 15){ if (cor->thread_break) { dbg("cor thread breaked\n"); return NULL; } oldhash=(gpointer)-1; color = j % 90 ? -127 : -128; km.c = color; for (i = 50; i < (int)(ZLOC_R_EARTH * M_PI); i += 50){ kx = i * cos(j * M_PI / 180.0); ky = i * sin(j * M_PI / 180.0); hash=k2key(kx, ky); km.kx=kx; km.ky=ky; if (oldhash!=(gpointer)-1 && hash!=oldhash) { kmarray_add(cor->az, oldhash, &km); kmlast.c=color; kmarray_add(cor->az, hash, &kmlast); km.c=0; } kmarray_add(cor->az, hash, &km); memcpy(&kmlast, &km, sizeof(kmlast)); oldhash=hash; km.c=0; } } // ST_STOP; // sleep(5); zselect_msg_send(zsel, "COR"); //dbg("cor finished\n"); return NULL; } void cor_read_handler(int n, char **items){ // dbg("cor_read_handler\n"); if (!gcor2 || !gcor2->thread) return; free_cor(gcor); gcor = gcor2; gcor2 = NULL; if (!gses) return; //cor_dump(cor); if (gses->ontop->type!=SWT_MAP) return; gses->ontop->gdirty = 1; sw_map_redraw(gses->ontop, aband, 0); } gboolean free_km_item(gpointer key, gpointer value, gpointer user_data){ struct kmarray *kma; /* key is int, not freeed */ kma=(struct kmarray *) value; if (!kma) return 0; g_free(kma->data); g_free(kma); return 1; } gpointer k2key(int kx, int ky){ return GINT_TO_POINTER((kx & COR_KM_MASK) | ( (ky & COR_KM_MASK) << 16)) ; } static void cor_dump1(gpointer key, gpointer value, gpointer data){ FILE *f = (FILE *)data; struct kmarray *kma = (struct kmarray *)value; int i; fprintf(f, "hash=%p\n", key); for (i = 0; i < kma->len; i++){ fprintf(f, "%d %d %d\n", (int)kma->data[i].c, (int)kma->data[i].kx, (int)kma->data[i].ky); } } void cor_dump(struct tcor *cor){ FILE *f = fopen("cordump.txt", "wt"); if (!f) return; fprintf(f, "cor_dump start\n"); g_hash_table_foreach(cor->km, cor_dump1, f); fprintf(f, "cor_dump end\n"); fclose(f); } #endif tucnak-4.04/src/mingw.h0000644000175000017500000000076412073303516011737 00000000000000/* mingw.h - mingw32 specific functions Copyright (C) 2011-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __TUCNAK_MINGW_H #define __TUCNAK_MINGW_H #define _WIN32_IE 0x0400 #include #include #include "regex_.h" //#define PKG "nsis" int init_mingw(void); #endif tucnak-4.04/src/dwdb.h0000644000175000017500000000455312500545425011540 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __DWDB_H #define __DWDB_H struct cw; extern struct dw *dw; struct qso; #include struct dw_item{ gchar *wwl0, *wwl1; /* center of activity (optional), */ /* center of dxcc (geometric) */ GHashTable *wwls; /* all wwls valid for this dxcc */ int waz, itu; gchar *continent; gchar *dxcname; double latitude, longitude; }; struct wd_item{ gchar *dxc0, *dxc1; }; struct dw{ GHashTable *pd; /* key=prefix "DF", value=dxcc (main prefix) "DL" */ GHashTable *dw; /* key=dxcc "DL", value=dw_item */ GHashTable *wd; /* key=big wwl, "JN69" */ }; struct dw *init_dw(void); void free_dw(struct dw *dw); gint get_pd_size(struct dw *dw); gint get_dw_size(struct dw *dw); gint get_wd_size(struct dw *dw); void add_pd(struct dw *dw, gchar *prefix, gchar *dxc); struct dw_item *add_dxc(struct dw *dw, gchar *dxc, gchar *wwl0, gchar *wwl1, int waz, int itu, gchar *continent, gchar *dxcname, double latitude, double longitude); void add_dw(struct dw_item *dxci, gchar *dxc, gchar *wwl); void add_wd(struct dw *dw, gchar *wwl, gchar *dxc); int load_dw_from_file(struct dw *dw, gchar *filename); int load_cty_from_file(struct dw *dw, gchar *filename); void read_dw_files(struct dw *dw); struct dw_item *get_dw_item_by_call(struct dw *dw, const char *call); int wwl_is_ok_by_call(struct dw *dw, gchar *wwl, gchar *call); int get_susp(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl, int ambig); int get_susp_call(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl); int get_susp_loc(struct cw *cw, struct dw *dw, gchar *call, gchar *wwl); gchar *find_wwl_by_dxc(struct dw *dw, gchar *dxc); gchar *find_dxc_by_wwl(struct dw *dw, gchar *wwl); char *get_dxcc(struct dw *dw, char *buf, const char *call); char *get_pref(char *buf, char *call); int load_dw_from_mem(struct dw *dw, const char *file, const long int len); int load_cty_from_mem(struct dw *dw, const char *file, const long int len); void call_info(void *arg); void menu_qso_check(void *arg); enum suspcall qso_info(struct qso *qso, GString *gs, GString *gs2); #endif tucnak-4.04/src/Makefile.in0000644000175000017500000007406712561147622012527 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = tucnak$(EXEEXT) soundwrapper$(EXEEXT) EXTRA_PROGRAMS = tucnak.d$(EXEEXT) uhpd$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(srcdir)/msvcver.h.in \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = msvcver.h CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(ddir)" PROGRAMS = $(bin_PROGRAMS) am_soundwrapper_OBJECTS = soundwrapper.$(OBJEXT) soundwrapper_OBJECTS = $(am_soundwrapper_OBJECTS) soundwrapper_LDADD = $(LDADD) am_tucnak_OBJECTS = ac.$(OBJEXT) adif.$(OBJEXT) alsa.$(OBJEXT) \ button.$(OBJEXT) bfu.$(OBJEXT) cabrillo.$(OBJEXT) \ charsets.$(OBJEXT) chart.$(OBJEXT) control.$(OBJEXT) \ cor.$(OBJEXT) cordata.$(OBJEXT) cwdaemon.$(OBJEXT) \ cwdb.$(OBJEXT) cwwindow.$(OBJEXT) davac4.$(OBJEXT) \ dsp.$(OBJEXT) dwdb.$(OBJEXT) dxc.$(OBJEXT) ebw.$(OBJEXT) \ edi.$(OBJEXT) error.$(OBJEXT) excdb.$(OBJEXT) fft.$(OBJEXT) \ fifo.$(OBJEXT) hdkeyb.$(OBJEXT) hf.$(OBJEXT) html.$(OBJEXT) \ httpd.$(OBJEXT) icons.$(OBJEXT) inpout.$(OBJEXT) \ inputln.$(OBJEXT) kbd.$(OBJEXT) kbdbind.$(OBJEXT) \ kst.$(OBJEXT) language.$(OBJEXT) list.$(OBJEXT) main.$(OBJEXT) \ map.$(OBJEXT) masterdb.$(OBJEXT) menu.$(OBJEXT) \ menu1.$(OBJEXT) menu2.$(OBJEXT) menu3.$(OBJEXT) \ menu4.$(OBJEXT) menu5.$(OBJEXT) menu6.$(OBJEXT) \ mingw.$(OBJEXT) misc.$(OBJEXT) namedb.$(OBJEXT) net.$(OBJEXT) \ ntpq.$(OBJEXT) os_dep.$(OBJEXT) oss.$(OBJEXT) pa.$(OBJEXT) \ player.$(OBJEXT) ppdev.$(OBJEXT) profile.$(OBJEXT) \ rc.$(OBJEXT) report.$(OBJEXT) rotar.$(OBJEXT) qrvdb.$(OBJEXT) \ qsodb.$(OBJEXT) scope.$(OBJEXT) sdev.$(OBJEXT) sdr.$(OBJEXT) \ session.$(OBJEXT) settings.$(OBJEXT) sked.$(OBJEXT) \ sndf.$(OBJEXT) sndpipe.$(OBJEXT) ssbd.$(OBJEXT) \ state.$(OBJEXT) stats.$(OBJEXT) subwin.$(OBJEXT) \ terminal.$(OBJEXT) titlpage.$(OBJEXT) translate.$(OBJEXT) \ tregex.$(OBJEXT) trig.$(OBJEXT) tsdl.$(OBJEXT) ttys.$(OBJEXT) \ txts.$(OBJEXT) update.$(OBJEXT) voip.$(OBJEXT) \ vhfcontestnet.$(OBJEXT) winkey.$(OBJEXT) wiki.$(OBJEXT) \ wizz.$(OBJEXT) zosk.$(OBJEXT) zstring.$(OBJEXT) tucnak_OBJECTS = $(am_tucnak_OBJECTS) tucnak_DEPENDENCIES = am_tucnak_d_OBJECTS = map2d.$(OBJEXT) tucnak_d_OBJECTS = $(am_tucnak_d_OBJECTS) tucnak_d_LDADD = $(LDADD) am_uhpd_OBJECTS = uhpd.$(OBJEXT) uhpd_OBJECTS = $(am_uhpd_OBJECTS) uhpd_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(soundwrapper_SOURCES) $(tucnak_SOURCES) \ $(tucnak_d_SOURCES) $(uhpd_SOURCES) DIST_SOURCES = $(soundwrapper_SOURCES) $(tucnak_SOURCES) \ $(tucnak_d_SOURCES) $(uhpd_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } DATA = $(d_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CLEANFILES = svnversion.tmp ddir = $(prefix)/lib/$(DEB_HOST_MULTIARCH)/tucnak d_DATA = tucnak.d tucnak_SOURCES = \ ac.c ac.h \ adif.c adif.h alsa.c alsa.h button.c button.h bfu.c bfu.h \ cabrillo.c \ charsets.c charsets.h \ chart.c chart.h codepage.h codepage.inc \ control.c control.h cor.c cor.h cordata.c cordata.h cordata.inc \ cwdaemon.c cwdaemon.h cwdb.c cwdb.h cwdaemon.h cwwindow.c cwwindow.h \ davac4.c davac4.h dsp.c dsp.h dwdb.c dwdb.h dxc.c dxc.h \ ebw.c ebw.h edi.c edi.h \ error.c excdb.c excdb.h fft.c fft.h \ fifo.c fifo.h \ hdkeyb.c hdkeyb.h header.h \ hf.c hf.h html.c html.h \ httpd.c httpd.h \ icons.c icons.h icons.inc inpout.c inpout.h inputln.c inputln.h \ kbd.c kbd.h \ kbdbind.c kbdbind.h \ kst.c kst.h \ language.c language.h language.inc language2.h \ list.c main.c main.h map.c map.h masterdb.c masterdb.h \ menu.c menu.h menu1.c menu2.c menu3.c menu4.c menu5.c menu6.c \ mingw.c mingw.h misc.c misc.h namedb.c namedb.h net.c net.h ntpq.c ntpq.h \ os_dep.c os_dep.h oss.c oss.h pa.c pa.h player.c player.h ppdev.c ppdev.h \ profile.c rc.c rc.h \ report.c rotar.c rotar.h \ qrvdb.c qrvdb.h qsodb.c qsodb.h scope.c scope.h \ sdev.c sdev.h sdr.c sdr.h \ session.c session.h settings.c sked.c sked.h sndf.c sndf.h sndpipe.c sndpipe.h \ ssbd.c ssbd.h state.c state.h stats.c stats.h subwin.c subwin.h svnversion.h \ terminal.c terminal.h titlpage.c translate.c translate.h \ tregex.c tregex.h trig.c trig.h \ tsdl.c tsdl.h ttys.c ttys.h txts.c txts.h txts.inc \ uni_7b.inc update.c update.h voip.c voip.h vhfcontestnet.c vhfcontestnet.h \ winkey.c winkey.h wiki.c wiki.h wizz.c wizz.h \ zosk.c zosk.h \ zstring.c zstring.h tucnak_LDADD = @TUCNAK_LDADD@ #tucnak_DEPENDENCIES = ../../libzia/src/libzia.a soundwrapper_SOURCES = soundwrapper.c tucnak_d_SOURCES = map2d.c uhpd_SOURCES = uhpd.c EXTRA_DIST = msvc.c msvc.h msvcver.h sles.c all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): msvcver.h: $(top_builddir)/config.status $(srcdir)/msvcver.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) soundwrapper$(EXEEXT): $(soundwrapper_OBJECTS) $(soundwrapper_DEPENDENCIES) $(EXTRA_soundwrapper_DEPENDENCIES) @rm -f soundwrapper$(EXEEXT) $(AM_V_CCLD)$(LINK) $(soundwrapper_OBJECTS) $(soundwrapper_LDADD) $(LIBS) tucnak$(EXEEXT): $(tucnak_OBJECTS) $(tucnak_DEPENDENCIES) $(EXTRA_tucnak_DEPENDENCIES) @rm -f tucnak$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tucnak_OBJECTS) $(tucnak_LDADD) $(LIBS) uhpd$(EXEEXT): $(uhpd_OBJECTS) $(uhpd_DEPENDENCIES) $(EXTRA_uhpd_DEPENDENCIES) @rm -f uhpd$(EXEEXT) $(AM_V_CCLD)$(LINK) $(uhpd_OBJECTS) $(uhpd_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adif.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsa.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bfu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/button.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cabrillo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charsets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chart.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cordata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwdaemon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cwwindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/davac4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ebw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/excdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fft.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fifo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hdkeyb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inpout.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inputln.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kbd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kbdbind.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kst.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/language.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/map.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/map2d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/masterdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu6.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mingw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/namedb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ntpq.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/os_dep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oss.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pa.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppdev.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrvdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qsodb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/report.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rotar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scope.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdev.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/session.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/settings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sked.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sndpipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soundwrapper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssbd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/state.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stats.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subwin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terminal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/titlpage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/translate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tregex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tsdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttys.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/txts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uhpd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vhfcontestnet.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/voip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wiki.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/winkey.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wizz.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zosk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zstring.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` install-dDATA: $(d_DATA) @$(NORMAL_INSTALL) @list='$(d_DATA)'; test -n "$(ddir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(ddir)'"; \ $(MKDIR_P) "$(DESTDIR)$(ddir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ddir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(ddir)" || exit $$?; \ done uninstall-dDATA: @$(NORMAL_UNINSTALL) @list='$(d_DATA)'; test -n "$(ddir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(ddir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(ddir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-dDATA install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-dDATA tucnak.d$(EXEEXT): tucnak$(EXEEXT) map2d ./map2d # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/src/msvc.c0000644000175000017500000000563112524341151011555 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Interface for MSVC compiler */ #include "header.h" #include #include #include #include #include "tsdl.h" #include #include int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WSADATA wsaData; char **items; int argc; char *argv[100]; char exepath[MAX_PATH]; GString *gs; #ifdef HAVE_HAMLIB const char *hlver; #endif int nCodePage = GetACP(); //zfence_init(256, 0xee, 0xeeeeeeee); //zfence_init(16, '\0', 0xee); WSAStartup(MAKEWORD(2, 0), &wsaData); /*error(zstr_shorten("0123456789", 6)); error(zstr_shorten("0123456789", 5)); error(zstr_shorten("012345678", 6)); error(zstr_shorten("012345678", 5));*/ gs = g_string_new("------ Settings: --------\n"); g_string_sprintfa(gs, " version: %s-%s %s\n", PACKAGE, Z_PLATFORM, VERSION); g_string_sprintfa(gs, " iconv: %d.%d\n", _LIBICONV_VERSION >> 8, _LIBICONV_VERSION & 0xff); g_string_sprintfa(gs, " libgpm: no \n"); g_string_sprintfa(gs, "libsndfile: yes %s\n", sf_version_string()); g_string_sprintfa(gs, " alsa: no\n"); #ifdef HAVE_HAMLIB /*hlver = strchr(hamlib_version, ' '); if (hlver) g_string_sprintfa(gs, " libhamlib: yes %s\n", hlver + 1); */ g_string_sprintfa(gs, " libhamlib: yes 1.2.15.3-zia\n"); #else g_string_sprintfa(gs, " libhamlib: no\n"); #endif #ifdef HAVE_LIBFFTW3 g_string_sprintfa(gs, " libfftw3: yes\n"); // g_string_sprintfa(gs, " libfftw3: yes %s\n", fftw_version); #else g_string_sprintfa(gs, " libfftw3: no\n"); #endif #ifdef HAVE_PORTAUDIO g_string_sprintfa(gs, " portaudio: yes %d.%02d\n", Pa_GetVersion() / 100, Pa_GetVersion() % 100); #else g_string_sprintfa(gs, " portaudio: no\n"); #endif g_string_sprintfa(gs, " inpout: yes\n"); g_string_sprintfa(gs, "leak debug: no\n"); g_string_sprintfa(gs, "instrument: no\n"); txt_settings = g_strdup(gs->str); g_string_free(gs, TRUE); items = g_strsplit(lpCmdLine, " ", 0); if (GetModuleFileName(0, exepath, MAX_PATH) != 0) argv[0] = exepath; else argv[0] = "tucnak.exe"; // MessageBox(NULL, argv[0], "argv[0]", MB_OK); for (argc=1; items[argc-1] != 0 && argc < 100; argc++){ if (items[argc-1] == NULL) break; argv[argc] = items[argc-1]; } main(argc, argv); g_strfreev(items); return 0; } char *txt_settings; /* ntpq */ struct ntpq *ntpq; struct ntpq *init_ntpq(){ //progress("Initializing NTP monitor"); return NULL; } void free_ntpq(struct ntpq *ntpq){ //progress("Terminating NTP monitor"); } tucnak-4.04/src/rotar.c0000644000175000017500000004431212460207027011735 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "hdkeyb.h" #include "kbd.h" #include "main.h" #include "map.h" #include "net.h" #include "rc.h" #include "rotar.h" #include "sdev.h" #include "tsdl.h" #include "session.h" #include "subwin.h" #include "zstring.h" struct rotar *rota,*rotb; struct hdkeyb *hdkeyb; GPtrArray *rotars; MUTEX_DEFINE(rotars); struct rotar *rotar; #ifdef HAVE_HAMLIB static int rot_print_model_list(const struct rot_caps *caps, void *data) { log_addf("%-6d %-14s %-20s %s\n", caps->rot_model, caps->mfg_name, caps->model_name, caps->version); return 1; /* !=0, we want them all ! */ } #endif struct rotar *init_rotar(struct config_rotar *crot, int rotchar){ struct rotar *rot; if (!crot) return NULL; if (!crot->rot_type) return NULL; rot = g_new0(struct rotar, 1); rot->poll_ms = crot->rot_poll_ms; rot->last_req = ztimeout_init(rot->poll_ms); switch(crot->rot_type){ case ROT_OK1ZIA_TTYS: rot->sdev=sd_open_ttys(crot->rot_saddr, crot->rot_filename, crot->rot_timeout_ms); dbg("init_rotar rot=%p saddr=%d filename='%s' timeout=%d\n", rot->sdev, crot->rot_saddr, crot->rot_filename, crot->rot_timeout_ms); if (!rot->sdev){ g_free(rot); return NULL; } rot->sdev->sdev_main = rotar_main; rot->sdev->arg = rot; break; case ROT_OK1ZIA_FTDI: rot->sdev=sd_open_ftdi(crot->rot_saddr, crot->rot_vid, crot->rot_pid, crot->rot_serial, crot->rot_timeout_ms); dbg("init_rotar rot=%p saddr=%d %04x:%04x timeout=%d sdev=%p\n", rot->sdev, crot->rot_saddr, crot->rot_vid, crot->rot_pid, crot->rot_timeout_ms, rot->sdev); if (!rot->sdev){ g_free(rot); return NULL; } rot->sdev->sdev_main = rotar_main; rot->sdev->arg = rot; break; case ROT_REMOTE: dbg("init_rotar rot=%p saddr=%d hostname='%s' port='%d' timeout=%d\n", rot->sdev, crot->rot_saddr, crot->rot_hostname, crot->rot_port, crot->rot_timeout_ms); break; #ifdef HAVE_HAMLIB case ROT_HAMLIB: rot->rot = rot_init(crot->rot_model); if (!rot->rot){ log_addf(VTEXT(T_UNKNOWN_ROTNR_OR_INIT_ERROR), crot->rot_model); g_free(rot); log_addf(VTEXT(T_REGISTRATED_ROTATORS)); rot_load_all_backends(); rot_list_foreach(rot_print_model_list, NULL); return NULL; } if (crot->rot_model > 0){ safe_strncpy(rot->rot->state.rotport.pathname, crot->rot_filename, FILPATHLEN); //rot->rot->state.rotport.timeout = 2000; } rot->hl_azim = -1; rot->hl_model = crot->rot_model; rot->hl_thread = g_thread_try_new("hamlib rotator", rot_hamlib_main, (gpointer)rot, NULL); if (!rot->hl_thread) { log_addf(VTEXT(T_CANT_CREATE_HL_ROT_THR)); } break; #endif default: log_addf(VTEXT(T_UNSUPPORTED_ROTATOR), crot->rot_type); g_free(rot); return NULL; break; } rot->desc=g_strdup(crot->rot_desc); rot->beamwidth=crot->rot_beamwidth; rot->color=0xffffffff; /*replaced in rot_update_colors*/ /* rot->qtf=260+40*cfg->nr;*/ // rot->timer_id=-1; rot->rotchar=rotchar; rot->rotstr[0]=rotchar; rot->rotstr[1]='\0'; rot->type = crot->rot_type; rot->netid = g_strdup_printf("%s:%d", crot->rot_hostname, crot->rot_port); rot->rem_rotstr = g_strdup(crot->rot_rem_rotstr); /* if (rot->sdev){ rot->sdev->sconn->sprotocol = SPROT_ROTAR; g_snprintf(s, sizeof(s), "%d", SPROT_ROTAR); zwrite(rot->sdev->sconn->pipe_write, zconcatesc("ADD", rot->rotstr, rot->sdev->saddr_str, s, NULL)); }*/ return rot; } void free_rotar(struct rotar *rot){ #ifdef HAVE_HAMLIB if (rot->hl_thread){ progress(VTEXT(T_WAIT_HL_ROT_THREAD)); rot->hl_thread_break = 1; dbg("join hamlib rotar...\n"); g_thread_join(rot->hl_thread); dbg("done\n"); rot->hl_thread=0; } #endif g_free(rot->desc); g_free(rot->netid); g_free(rot->rem_rotstr); free_sd(rot->sdev); g_free(rot); } int init_rotars(){ struct rotar *rot; struct config_rotar *cfgrot; int i; char rotchar='A'; progress(VTEXT(T_INIT_ROTARS2)); MUTEX_INIT(rotars); rotars=g_ptr_array_new(); for (i=0;icrotars->len;i++){ cfgrot=(struct config_rotar*)g_ptr_array_index(cfg->crotars, i); if (!cfgrot) continue; rot=init_rotar(cfgrot, rotchar++); if (!rot) continue; MUTEX_LOCK(rotars); g_ptr_array_add(rotars, rot); MUTEX_UNLOCK(rotars); } #ifdef Z_HAVE_SDL rot_update_colors(); #endif return 0; } int free_rotars(void){ int i; struct rotar *rot; progress(VTEXT(T_INIT_ROTARS2)); MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot = (struct rotar *) g_ptr_array_index(rotars, i); free_rotar(rot); } MUTEX_UNLOCK(rotars); g_ptr_array_free(rotars,1); rotars=NULL; return 0; } #ifdef Z_HAVE_SDL int rot_update_colors(){ int i; struct rotar *rot; if (!sdl || !rotars) return -1; MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot = (struct rotar *)g_ptr_array_index(rotars, i); switch(i%4){ case 0: rot->color=z_makecol(200,0,0); rot->termcolor=COL_RED; break; case 1: rot->color=z_makecol(200,0,200); rot->termcolor=COL_MAGENTA; break; case 2: rot->color=z_makecol(0,200,0); rot->termcolor=COL_GREEN; break; case 3: rot->color=z_makecol(0,200,200); rot->termcolor=COL_CYAN; break; } } MUTEX_UNLOCK(rotars); return 0; } #endif int rot_seek(struct rotar *rot, int uhel){ char *c; struct sconn_job *job; if (!rot) return 0; switch (rot->type){ case ROT_REMOTE: c = g_strdup_printf("RS %s;%s;%d;%s\n", rot->netid, rot->rem_rotstr, uhel, ""); rel_write_all(c); g_free(c); break; #ifdef HAVE_HAMLIB case ROT_HAMLIB: rot->hl_azim = uhel; break; #endif default: job = g_new0(struct sconn_job, 1); job->cmd = SCONN_ROT_AZIM; job->sdev = rot->sdev; job->azim = uhel; sconn_job_add(rot->sdev->sconn, job); break; } return 0; } struct config_rotar *get_config_rotar_by_number(GPtrArray *crots, int nr){ struct config_rotar *crot; int i; for (i=0; icrotars->len; i++){ crot = (struct config_rotar *)g_ptr_array_index(crots, i); if (crot->nr==nr) return crot; } return NULL; } struct rotar *get_rotar(int nr){ struct rotar *rot; if (!rotars) return NULL; if (nr>=rotars->len) return NULL; MUTEX_LOCK(rotars); rot = (struct rotar*) g_ptr_array_index(rotars, nr); MUTEX_UNLOCK(rotars); return rot; } struct rotar *get_rotar_by_rotstr(char *rotstr){ int i; struct rotar *rot = NULL; if (!rotars) return NULL; MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot=(struct rotar *)g_ptr_array_index(rotars, i); if (rot->rotchar!=rotstr[0]) continue; break; } MUTEX_UNLOCK(rotars); return rot; } struct rotar *get_rotar_by_netid_rotstr(char *netid, char *rotstr){ int i; struct rotar *rot = NULL; if (!rotars) return NULL; MUTEX_LOCK(rotars); for (i=0;ilen;i++){ rot=(struct rotar *)g_ptr_array_index(rotars, i); //dbg(" rot->type=%d rotchar=%s netid=%s\n", rot->type, rot->rem_rotstr, rot->netid); if (rot->type != ROT_REMOTE) continue; if (strcmp(rot->netid, netid)!=0) continue; if (strcmp(rot->rem_rotstr, rotstr)!=0) continue; break; } MUTEX_UNLOCK(rotars); return rot; } void rotar_read_handler(int n, char **items){ struct zstring *zs2; char *cmd, *rotstr, *c; struct rotar *rot; // dbg("rotar_read_handler('%s') gses=%p\n", line, gses); rotstr = items[1]; rot = get_rotar_by_rotstr(rotstr); if (!rot){ log_addf(VTEXT(T_UNKNOWN_ROTAR), rotstr); //dbg("Unknown rotar '%s'\n", rotstr); goto x; } cmd = items[2]; // dbg("rotar_read_handler rcvd: '%s' cmd='%s' rotstr='%s'\n", line, cmd, rotstr); if (strcmp(cmd, "!")==0){ /* error */ log_addf(VTEXT(T_ROTAR_ERROR_S), items[3]); } if (strcasecmp(cmd, "QTF")==0){ char *qtf = items[3]; rot->qtf=atoi(qtf); zs2 = zconcatesc(gnet->myid, rotstr, qtf, "0", NULL); c = g_strconcat("RU ", zs2->str, "\n", NULL); rel_write_all(c); g_free(c); zfree(zs2); #ifdef Z_HAVE_SDL //if (!gses->redraw_timer_id) // gses->redraw_timer_id = zselect_timer_new(zsel, DELAY_AFTER_UPDATE_ROTAR, timer_redraw, NULL); if (gses && gses->ontop->type == SWT_MAP){ if (!gses->update_rotar_timer_id) gses->update_rotar_timer_id = zselect_timer_new(zsel, 2*DELAY_AFTER_UPDATE_ROTAR, timer_update_rotar, NULL); } #endif #ifdef Z_HAVE_LIBFTDI hdkeyb_draw_rotar(hdkeyb, rot->rotchar - 'A'); #endif redraw_later(); goto x; } x:; redraw_later(); } void timer_update_rotar(void *arg){ #ifdef Z_HAVE_SDL if (gses && gses->ontop->type == SWT_MAP){ sw_map_update_rotar(gses->ontop); } gses->update_rotar_timer_id = 0; #endif } // called from sconn thread int rotar_main(struct sdev *sdev){ struct rotar *rot = (struct rotar *)sdev->arg; char data[256]; int len, ret, qtf; // static int xx = 0; //dbg("rotar_main rot=%p\n", rot); if (!rot) return -1; if (!ztimeout_occured(rot->last_req)) return 113; rot->last_req = ztimeout_init(rot->poll_ms); len=0; // dbg("\nsd_prot\n"); ret = sd_prot(rot->sdev->sconn, rot->sdev->saddr, 64, data, &len, rot->sdev->timeout_ms); //dbg("sd_prot ret=%d\n", ret); if (ret != 0) return ret; qtf = (unsigned char)data[0]+256*(unsigned char)data[1]; // qtf = (xx++ % 360);//FIXME trace(cfg->trace_sdev, "qtf=%d old=%d\n", qtf, rot->oldqtf); if (qtf == rot->oldqtf) return 0; rot->oldqtf = qtf; //g_snprintf(s, sizeof(s), "%d", qtf); //ret = zwrite(tpipe->threadpipe_write, zconcatesc("ROT", rot->rotstr, "QTF", s, NULL)); zselect_msg_send(zsel, "%s;%s;%s;%d", "ROT", rot->rotstr, "QTF", qtf); // dbg("zwrite ret=%d\n", ret); return 0; } void rotar_remote_update(char *c){ char *netid, *rotstr, *qtf, *elev; struct zstring *zs; struct rotar *rot; dbg("rotar_remote_update('%s')\n", c); zs = zstrdup(c); netid = ztokenize(zs, 1); if (!netid) goto x; rotstr = ztokenize(zs, 0); if (!rotstr) goto x; qtf = ztokenize(zs, 0); if (!qtf) goto x; elev = ztokenize(zs, 0); if (!elev) goto x; rot = get_rotar_by_netid_rotstr(netid, rotstr); dbg("rotar_remote_update id='%s' rotstr='%s' rot=%p\n", netid, rotstr, rot); if (!rot) goto x; rot->qtf = atoi(qtf); rot->elev = atoi(elev); redraw_later(); x:; zfree(zs); } /****************************** rotar dialog ***************************/ static char rotar_qtf_str[EQSO_LEN], rotar_elev_str[EQSO_LEN]; static char rotar_desc1[MAX_STR_LEN], rotar_desc2[MAX_STR_LEN]; void refresh_rotar(void *xxx){ if (strlen(rotar_qtf_str)>0){ rot_seek(rotar, atoi(rotar_qtf_str)); } /*dbg("refresh_rotar\n");*/ } char *rotar_msg[] = { CTEXT(T_AZIMUTH), CTEXT(T_ELEVATION), }; void rotar_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_text_width(term, rotar_desc1, &max); min_text_width(term, rotar_desc1, &min); max_text_width(term, rotar_desc2, &max); min_text_width(term, rotar_desc2, &min); max_group_width(term, rotar_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, rotar_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, rotar_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, rotar_msg + 1, dlg->items + 1, 1, &min); max_buttons_width(term, dlg->items + 2, 2, &max); min_buttons_width(term, dlg->items + 2, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_text (NULL, term, rotar_desc1, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text (NULL, term, rotar_desc2, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_group(NULL, term, rotar_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, rotar_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 2, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_text (term, term, rotar_desc1, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_text (term, term, rotar_desc2, dlg->x+6, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_group(term, term, rotar_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, rotar_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 2, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void rotar_set_desc(void){ switch(rotar->type){ #ifdef HAVE_HAMLIB case ROT_HAMLIB: g_snprintf(rotar_desc1, MAX_STR_LEN, "%s %c (hamlib %u)", VTEXT(T_ROTAR), rotar->rotchar, rotar->hl_model); break; #endif case ROT_REMOTE: g_snprintf(rotar_desc1, MAX_STR_LEN, "%s %c (%s %s)", VTEXT(T_ROTAR), rotar->rotchar, rotar->netid, rotar->rem_rotstr); break; default: g_snprintf(rotar_desc1, MAX_STR_LEN, "%s %c (%u)", VTEXT(T_ROTAR), rotar->rotchar, (unsigned char)rotar->sdev->saddr); break; } g_snprintf(rotar_desc2, MAX_STR_LEN, "%s", rotar->desc); } int rotar_func(struct dialog_data *data, struct event *ev){ char rotchar; /* dbg("mouse ev=%d x=%d y=%d b=%d\n", ev->ev, ev->x, ev->y, ev->b); */ switch(ev->ev){ case EV_KBD: if (ev->y & KBD_ALT) break; if (ev->y & KBD_CTRL) break; rotchar=z_char_uc(ev->x); if (rotchar<'A' || rotchar>'Z') { return -1; } if (rotchar<'A' || rotchar-'A'>=rotars->len) { return EVENT_PROCESSED; } /*dbg("rotar %c\n", rotchar);*/ rotar=get_rotar(rotchar-'A'); rotar_set_desc(); resize_terminal(NULL); return EVENT_PROCESSED; } return -1; /* !EVENT_PROCESSED */ } void menu_rotar(void *arg){ struct dialog *d; int i; if (!rotar) rotar=get_rotar(0); if (!rotar) return; rotar_set_desc(); /*g_snprintf(rotar_qtf_str, EQSO_LEN, "%d", rotar->qtf); g_snprintf(rotar_elev_str, EQSO_LEN, "%d", rotar->elev);*/ strcpy(rotar_qtf_str, ""); strcpy(rotar_elev_str, ""); if (!(d = (struct dialog *) g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_ROTAR); d->fn = rotar_fn; d->refresh = (void (*)(void *))refresh_rotar; d->refresh_data = (void *)rotar; d->handle_event = rotar_func; d->items[i=0].type = D_FIELD; /* 0 */ d->items[i].dlen = EQSO_LEN; d->items[i].data = rotar_qtf_str; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rotar_elev_str; d->items[++i].type = D_BUTTON; /* 2 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } #ifdef HAVE_HAMLIB gpointer rot_hamlib_main(gpointer xxx){ int ret; struct rotar *rot = (struct rotar*)xxx; azimuth_t azimuth; elevation_t elevation; int qtf; int tmo; dbg("rot_hl_main\n"); zg_thread_set_name("Tucnak hamlib rotator"); ret = rot_open(rot->rot); if (ret != RIG_OK){ return NULL; } while(!rot->hl_thread_break){ if (rot->hl_give_me_chance) { usleep(10000); continue; } if (rot->hl_azim >= 0){ azimuth_t az = rot->hl_azim; elevation_t el = 0; ret = rot_set_position(rot->rot, az, el); rot->hl_azim = -1; } if (rot_get_position(rot->rot, &azimuth, &elevation) == RIG_OK){ qtf = (int)azimuth; if (qtf != rot->oldqtf){ rot->oldqtf = qtf; // g_snprintf(s, sizeof(s), "%d", qtf); zselect_msg_send(zsel, "ROT;%s;QTF;%d", rot->rotstr, qtf); // ret = zwrite(tpipe->threadpipe_write, zconcatesc("ROT", rot->rotstr, "QTF", s, NULL)); // dbg("zwrite ret=%d\n", ret); } } if (rot->poll_ms > 0){ for (tmo = ztimeout_init(rot->poll_ms); !ztimeout_occured(tmo); ) { if (rot->hl_azim >= 0) break; usleep(10000); } } } dbg("rot_hl_main exiting\n"); rot_close(rot->rot); return NULL; } #endif int rot_beamwidth(){ int beamwidth = 20; struct config_rotar *rot; if (!cfg->crotars->len) return beamwidth; rot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, 0); return rot->rot_beamwidth; } tucnak-4.04/src/error.c0000644000175000017500000002647012417273633011754 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" static GHashTable *mbs; static MUTEX_DEFINE(mbs); #ifdef LEAK_DEBUG_LIST char *mbs_file; int mbs_line; #endif #ifdef LEAK_DEBUG long mem_amount = 0; long last_mem_amount = -1; #ifdef LEAK_DEBUG_LIST /*struct list_head memory_list = { &memory_list, &memory_list };*/ struct alloc_header memory_list = { &memory_list, &memory_list }; GMutex *memory_list_mutex; char *memory_list_file; int memory_list_line; #endif #endif void check_memory_leaks(void) { #ifdef LEAK_DEBUG if (mem_amount) { free_all_itrms(); fprintf(stderr, "\n\033[1mMemory leak by %ld bytes\033[0m\n", mem_amount); #ifdef LEAK_DEBUG_LIST fprintf(stderr, "\nList of blocks: "); { int r = 0; struct alloc_header *ah; MUTEX_LOCK(memory_list); foreach (ah, memory_list) { fprintf(stderr, "%s%p:%d @ %s:%d", r ? ", ": "", (char *)ah + L_D_S, ah->size, ah->file, ah->line), r = 1; if (ah->comment) fprintf(stderr, ":\"%s\"", ah->comment); } fprintf(stderr, "\n"); MUTEX_UNLOCK(memory_list); } #endif force_dump(); } #endif } void init_debug(void){ mbs=g_hash_table_new(g_direct_hash, g_direct_equal); MUTEX_INIT(mbs); #ifdef LEAK_DEBUG_LIST MUTEX_INIT(memory_list); #endif //dbg("init_debug: sizeof(alloc_header)=%d, L_D_S=%d\n", sizeof(struct alloc_header), L_D_S); //zdebug_init(debug_type); } void free_debug(void){ zdebug_free(); g_hash_table_destroy(mbs); MUTEX_FREE(mbs); #ifdef LEAK_DEBUG_LIST MUTEX_FREE(memory_list); #endif } static void print_str_hash(gpointer key, gpointer value, gpointer data){ dbg("\tkey='%s' \tvalue='%s'\n", key, value); } void dbg_str_hash(GHashTable *hash){ g_hash_table_foreach(hash, print_str_hash, NULL); } #ifdef LEAK_DEBUG void *debug_mem_alloc(char *file, int line, size_t size) { void *p; #ifdef LEAK_DEBUG struct alloc_header *ah; #endif #ifdef LEAK_DEBUG_LIST gpointer orig_key, value; char *c; #endif if (!size) return DUMMY; #ifdef LEAK_DEBUG mem_amount += size; size += L_D_S; #endif if (!(p = xmalloc(size + MCHK_LEAD))) { error("ERROR: out of memory (malloc returned NULL)\n"); return NULL; } #ifdef LEAK_DEBUG ah = p; p = (char *)p + L_D_S; ah->size = size - L_D_S; #ifdef LEAK_DEBUG_LIST // fprintf(stderr, "malloc(%d)=%p p=%p L_D_S=%d\n", size + MCHK_LEAD, ah, p, L_D_S); for (c = (char *)p - MCHK_LEAD; c != p; c++) { *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } for (c = (char *)p + ah->size; c != (char *)p + ah->size + MCHK_TRAIL; c++){ *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } ah->file = file; ah->line = line; ah->comment = NULL; MUTEX_LOCK(memory_list); add_to_list(memory_list, ah); MUTEX_UNLOCK(memory_list); MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, (char*)p, &orig_key, &value)){ int cnt=(vint)value; if (value!=0){ free_all_itrms(); fprintf(stderr, " alloc: already allocated(%d): %p:%d @ %s:%d\n", cnt, p, ah->size, ah->file, ah->line); force_dump(); } } g_hash_table_insert(mbs, p, (gpointer)1); MUTEX_UNLOCK(mbs); #endif #endif /* fprintf(stderr, "debuf_mem_alloc(%s:%d, %d)=%p\n", file, line, size, p);*/ return p; } void debug_mem_free(char *file, int line, void *p) { #ifdef LEAK_DEBUG void *xp; struct alloc_header *ah; #endif #ifdef LEAK_DEBUG_LIST gpointer orig_key, value; char *c; #endif if (p == DUMMY) return; if (!p) { errfile = file, errline = line, internal_error("mem_free(NULL)"); return; } #ifdef LEAK_DEBUG xp = p; p = (char *)p - L_D_S; ah = p; #ifdef LEAK_DEBUG_LIST for (c = (char *)xp - MCHK_LEAD; c != xp; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted leading block %p:%d @ %s:%d ", xp, ah->size, ah->file, ah->line); for (c = (char *)xp - MCHK_LEAD; c != xp; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } for (c = (char *)xp + ah->size; c != (char *)xp + ah->size + MCHK_TRAIL; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted trailing block %p:%d @ %s:%d ", xp, ah->size, ah->file, ah->line); for (c = (char *)xp - MCHK_LEAD; c != xp; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, xp, &orig_key, &value)){ int cnt=(vint)value; if (cnt!=1){ MUTEX_UNLOCK(mbs); free_all_itrms(); fprintf(stderr, " free: usage count is %d: %p:%d @ %s:%d\n", cnt, xp, ah->size, ah->file, ah->line); force_dump(); } g_hash_table_remove(mbs, xp); g_hash_table_insert(mbs, xp, (gpointer)0); } MUTEX_UNLOCK(mbs); MUTEX_LOCK(memory_list); del_from_list(ah); MUTEX_UNLOCK(memory_list); if (ah->comment) free(ah->comment); #endif mem_amount -= ah->size; #endif /*fprintf(stderr, "debuf_mem_free(%s:%d)=%p\n", file, line, p);*/ xfree(p); } void *debug_mem_realloc(char *file, int line, void *p, size_t size) { #ifdef LEAK_DEBUG struct alloc_header *ah; #endif #ifdef LEAK_DEBUG_LIST gpointer orig_key, value; char *c; #endif if (p == DUMMY) return debug_mem_alloc(file, line, size); if (!p) { errfile = file, errline = line, internal_error("mem_realloc(NULL, %d)", size); return NULL; } if (!size) { debug_mem_free(file, line, p); return DUMMY; } #ifdef LEAK_DEBUG_LIST ah = (struct alloc_header*)((char*)p - L_D_S); for (c = (char *)p - MCHK_LEAD; c != p; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted leading block %p:%d @ %s:%d ", p, ah->size, ah->file, ah->line); for (c = (char *)p - MCHK_LEAD; c != p; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } for (c = (char *)p + ah->size; c != (char *)p + ah->size + MCHK_TRAIL; c++) { if (*c == MCHK_PATTERN) continue; fprintf(stderr, " free: corrupted trailing block %p:%d @ %s:%d ", p, ah->size, ah->file, ah->line); for (c = (char *)p - MCHK_LEAD; c != p; c++) fprintf(stderr, " %02x", (unsigned char)*c); fprintf(stderr, "\n"); break; } MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, p, &orig_key, &value)){ int cnt=(vint)value; if (cnt!=1){ dbg("debug_mem_realloc: cnt=%d\n", cnt); MUTEX_UNLOCK(mbs); free_all_itrms(); fprintf(stderr, " realloc1: usage count is %d: %p @ %s:%d\n", cnt, p, file, line); force_dump(); } g_hash_table_remove(mbs, p); g_hash_table_insert(mbs, p, (gpointer)0); } MUTEX_UNLOCK(mbs); #endif if (!(p = xrealloc((char *)p - L_D_S, size + L_D_S + MCHK_TRAIL))) { error("ERROR: out of memory (realloc returned NULL)\n"); return NULL; } #ifdef LEAK_DEBUG ah = p; mem_amount += size - ah->size; ah->size = size; p = (char *)p + L_D_S; #ifdef LEAK_DEBUG_LIST // fprintf(stderr, "realloc(%d)=%p p=%p L_D_S=%d\n", size + MCHK_LEAD, ah, p, L_D_S); for (c = (char *)p - MCHK_LEAD; c != p; c++) { *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } for (c = (char *)p + ah->size; c != (char *)p + ah->size + MCHK_TRAIL; c++){ *c = MCHK_PATTERN; // fprintf(stderr, "%p=%02x\n", c, (unsigned char)*c); } ah->prev->next = ah; ah->next->prev = ah; MUTEX_LOCK(mbs); if (g_hash_table_lookup_extended(mbs, p, &orig_key, &value)){ int cnt=(vint)value; if (value!=0){ free_all_itrms(); fprintf(stderr, " realloc2: already allocated(%d): %p:%d @ %s:%d (allocated %s:%d)\n", cnt, (char *)ah + L_D_S, ah->size, file, line, ah->file, ah->line); force_dump(); } } g_hash_table_insert(mbs, p, (gpointer)1); MUTEX_UNLOCK(mbs); #endif #endif return p; } void set_mem_comment(void *p, char *c, int l) { #ifdef LEAK_DEBUG_LIST struct alloc_header *ah = (struct alloc_header *)((char *)p - L_D_S); if (ah->comment) free(ah->comment); if ((ah->comment = malloc(l + 1))) memcpy(ah->comment, c, l), ah->comment[l] = 0; #endif } void *debug_g_new0(char *file, int line, size_t len){ gchar *c; c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; memset(c, 0, len); return c; } void *debug_g_new(char *file, int line, size_t len){ gchar *c; c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; memset(c, 0, len); return c; } gchar *debug_g_strdup(char *file, int line, const gchar *str){ gchar *c; if (!str) return NULL; c=debug_mem_alloc(file, line, strlen(str)+1); if (c==DUMMY) return NULL; strcpy(c, str); return c; } gchar *debug_g_strndup(char *file, int line, gchar *str, int len){ gchar *c; int l; if (!str) return NULL; l=strlen(str); if (l>len) l=len; c=debug_mem_alloc(file, line, l+1); if (c==DUMMY) return NULL; strncpy(c, str, l); c[l]='\0'; return c; } #undef g_strdup_vprintf #undef g_free gchar *debug_g_strdup_printf(char *file, int line, gchar *fmt, ...){ va_list l; //int len; char *c,*d; va_start(l, fmt); /* len=g_printf_string_upper_bound(fmt, l); c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; g_vsprintf(c, fmt, l);*/ d = g_strdup_vprintf(fmt, l); c = debug_g_strdup(file, line, d); g_free(d); va_end(l); return c; } gchar *debug_g_strdup_vprintf(char *file, int line, gchar *fmt, va_list args){ // int len; char *c,*d; /* len=g_printf_string_upper_bound(fmt, args); c=debug_mem_alloc(file, line, len); if (c==DUMMY) return NULL; g_vsprintf(c, fmt, args);*/ d = g_strdup_vprintf(fmt, args); c = debug_g_strdup(file, line, d); g_free(d); return c; } gchar *debug_g_strconcat(char *file, int line, ...){ va_list l; int len; char *c,*d; char *s; va_start(l, line); len=0; while(1){ c=va_arg(l, char *); if (!c) break; len+=strlen(c); } va_end(l); s=debug_mem_alloc(file, line, len+1); if (s==DUMMY) return NULL; va_start(l, line); len=0; d=s; while(1){ c=va_arg(l, char *); if (!c) break; strcpy(d, c); d+=strlen(c); } va_end(l); return s; } #endif void sock_debug(int sock, char *m, ...){ va_list l; FILE *f; return; f = fopen("tucnak.sockdbg", "at"); if (!f) return; va_start(l, m); fprintf(f, "%5d: socket %3d ", getpid(), sock); vfprintf(f, m, l); fprintf(f,"\n"); va_end(l); fclose(f); } tucnak-4.04/src/icons.h0000644000175000017500000000134012132501146011713 00000000000000/* Automatically generated by png2inc.pl */ extern const unsigned char icon_home32[818]; extern const unsigned char icon_key32[1075]; extern const unsigned char icon_mast[334]; extern const unsigned char icon_norec[3817]; extern const unsigned char icon_play[2832]; extern const unsigned char icon_record[2703]; extern const unsigned char icon_sun[1918]; extern const unsigned char icon_tucnak[2036]; extern const unsigned char icon_tucnak23[319]; extern const unsigned char icon_tucnak64[5343]; extern const unsigned char icon_tucnakv[1772]; extern const unsigned char icon_tucnakv64[5042]; extern const unsigned char icon_xfer32[1709]; extern const unsigned char icon_zoomin32[2083]; extern const unsigned char icon_zoomout32[1954]; tucnak-4.04/src/msvc.h0000644000175000017500000000346312417243010011557 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Interface for MSVC compiler */ #ifdef __MSVC2 #ifndef __MSVC2_H //#define fopen(file, mode) fopen(z_wokna(file), mode) #endif #endif #ifndef __MSVC_H #define __MSVC_H #include "stdafx.h" #pragma warning(disable : 4018) #pragma warning(disable : 4101) #pragma warning(disable : 4244) #pragma warning(disable : 4996) //todo remove #pragma warning(disable : 4028) #pragma warning(disable : 4030) #define _CRT_SECURE_NO_WARNINGS //WINVER //#define WINVER 0x0500 //#define _WIN32_WINNT 0x0500 #include #include #include #include #include #include #include #include "regex_.h" #define PACKAGE "tucnak" #include #define PACKAGE_NAME PACKAGE #define PACKAGE_VERSION VERSION #define SHAREDIR #define HAVE_STDINT_H #define HAVE_UINT32_T #define HAVE_SDL #define HAVE_ICONV_H #define HAVE_PNG_H #define HAVE_LIBPNG #define HAVE_SNDFILE #define HAVE_PORTAUDIO #define HAVE_LIBFFTW3 #define HAVE_HAMLIB //#define HAVE_LIBFTDI //#define HAVE_FTDI_NEW #define HAVE_SHLOBJ_H #define PKG "nsis" #define DDIR "" #ifndef HAVE_MATH_H #define HAVE_MATH_H #endif #define strcasecmp _stricmp #define strncasecmp _strnicmp #define getpid _getpid #define __attribute__(attr) typedef int pid_t; typedef int speed_t; typedef int iconv_t; int main(int argc, char *argv[]); int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow); #endif tucnak-4.04/src/button.h0000644000175000017500000000205512276425644012140 00000000000000/* Tucnak - VHF contest log Copyright (C) 2012-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifndef __BUTTON_H #define __BUTTON_H #ifdef Z_HAVE_SDL struct button{ int w, h; SDL_Surface *surface; void (*fn)(void *); void *data; int x, y; int font_h, fcolor, bcolor; char *text; }; struct button *init_button(SDL_Surface *screen, int x, int y, void (*fn)(void *), void *data); void free_button(struct button *b); void buttons_clear(GPtrArray *buttons); void buttons_redraw(GPtrArray *buttons, SDL_Surface *dst); int buttons_mouse(GPtrArray *buttons, int mb, int mx, int my); void button_bitmap(struct button *b, SDL_Surface *surface); void button_text(struct button *b, int font_h, int fcolor, int bcolor, char *text); void button_free(struct button *b); void button_draw(struct button *b, SDL_Surface *dst); #endif #endif tucnak-4.04/src/language.h0000644000175000017500000015266012534315403012404 00000000000000/* Automaticaly generated by gen-intl */ #define N_LANGUAGES 9 #define T__CHAR_SET 1 // "us-ascii" #define T__LANGUAGE 2 // "English" #define T_ABOUT 3 // "About" #define T_BAD_NUMBER 4 // "Bad number" #define T_BAD_STRING 5 // "Bad string" #define T_BASIC_HELP 6 // "Press F10 for menu.\nHave fun." #define T_BLOCK_CURSOR 7 // "Block cursor" #define T_CANCEL 8 // "Cancel" #define T_CHARACTER_SET 9 // "Character set" #define T_COLOR 10 // "Color" #define T_COPYING 11 // "Copying" #define T_DIFFERENCE 12 // "difference" #define T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK 13 // "Do you really want to exit Tucnak?" #define T_EMPTY_STRING_NOT_ALLOWED 14 // "Empty string not allowed" #define T_ERROR 15 // "Error" #define T_WARNING 16 // "Warning" #define T_EXIT 17 // "Exit" #define T_EXIT_TUCNAK 18 // "Exit Tucnak" #define T_FILE 19 // "File" #define T_FULL_SCREEN 20 // "Full screen" #define T_HELP 21 // "Help" #define T_HK_ABOUT 22 // "A" #define T_HK_BEOS_TERMINAL 23 // "B" #define T_HK_CHARACTER_SET 24 // "H" #define T_HK_COPYING 25 // "C" #define T_HK_EXIT 26 // "X" #define T_HK_FILE 27 // "F" #define T_HK_FULL_SCREEN 28 // "F" #define T_HK_HELP 29 // "H" #define T_HK_LANGUAGE 30 // "L" #define T_HK_MEMORY_INFO 31 // "M" #define T_HK_OS_SHELL 32 // "O" #define T_HK_SCREEN 33 // "S" #define T_HK_SETUP 34 // "S" #define T_HK_TERMINAL_OPTIONS 35 // "T" #define T_HK_TWTERM 36 // "T" #define T_HK_WINDOW 37 // "W" #define T_HK_XTERM 38 // "X" #define T_KOI8R_FRAMES 39 // "KOI8-R frames" #define T_LANGUAGE 40 // "Language" #define T_LAST 41 // "last" #define T_LINUX_OR_OS2_FRAMES 42 // "Linux or OS/2 frames" #define T_MEMORY_INFO 43 // "Memory info" #define T_NO_FRAMES 44 // "No frames" #define T_NO 45 // "No" #define T_NUMBER_EXPECTED 46 // "Number expected in field" #define T_NUMBER_OUT_OF_RANGE 47 // "Number out of range" #define T_OK 48 // "OK" #define T_OS_SHELL 49 // "OS shell" #define T_RESTRICT_FRAMES_IN_CP850_852 50 // "Restrict frames in cp850/852" #define T_UTF_8_IO 51 // "UTF-8 Input/Output" #define T_SCREEN 52 // "Screen" #define T_SETUP 53 // "Setup" #define T_TERMINAL_OPTIONS 54 // "Terminal options" #define T_TUCNAK__TACLOG_LIKE 55 // "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log" #define T_TWTERM 56 // "Twterm" #define T_USE_11M 57 // "Use ^[[11m" #define T_VT_100_FRAMES 58 // "VT 100 frames" #define T_WELCOME1 59 // "Welcome to Tucnak!" #define T_WELCOME2 60 // "Please enter your callsign and locator:" #define T_WELCOME 61 // "Welcome" #define T_XTERM 62 // "Xterm" #define T_YES 63 // "Yes" #define T_CANT_APPEND_S 64 // "Can't append to file %s" #define T_CANT_WRITE 65 // "Can't write to file" #define T_CANT_WRITE_S 66 // "Can't write to file %s" #define T_CANT_READ 67 // "Can't read from file" #define T_CANT_READ_S 68 // "Can't read from file %s" #define T_SAVED_S 69 // "Saved %s" #define T__CW_ 70 // " CW " #define T_CWW_KEYS 71 // " PgUp +, PgDn - cw speed " #define T_CANT_OPEN_S 72 // "Can't open %s" #define T_CANT_LOCK 73 // "Can't lock" #define T_CANT_LOCK_S 74 // "Can't lock %s" #define T_LOADING_CTEST_S 75 // "*** Loading contest %s" #define T_NO_FILES 76 //"No files in directory" #define T_BAND_EXIST_SS 77 // "WARNING! Band %s (%s) already exist" #define T_BAND_NOT_OPEN 78 // "Band is not active in this contest" #define T_NO_BANDS 79 // "No bands to load" #define T_CANT_SET_GR_S 80 // "Can't set any graphics mode-%s" #define T_GCALL 81 // "Call: %s" #define T_GWWL 82 // "WWL: %s" #define T_GQRB 83 // "QRB: %d km" #define T_GQTF 84 // "QTF: %d" #define T_GSEN 85 // "Sent: %s %s" #define T_GRCV 86 // "Rcvd: %s %s" #define T_GTIM 87 // "Time: %s" #define T_GOPE 88 // "Op: %s" #define T_GREM 89 // "Rem: %s" #define T_GWKD 90 // "Wkd: %d" #define T_GINC 91 // "income: %d" #define T_GLON 92 // "Lon:%7.2f %-6s" #define T_GLAT 93 // "Lat:%7.2f %-6s" #define T_GLOC 94 // "Loc: %s" #define T__PLESE_WAIT_ 95 // " Please WAIT " #define T__RO_BAND 96 // " READ-ONLY BAND" #define T_COPYING_VER 97 // "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation." #define T_CTEST_ACTIVE 98 // "Contest is already active " #define T_NO_CTESTS 99 // "No contests" #define T_NO_CCLOSE 100 // "No contest to close" #define T_REALLY 101 // "Really?" #define T_CLOSE_CTEST 102 // "Do you really want to close this contest?" #define T_GUI_LD 103 // "GUI: %ld " #define T_SBRK 104 // "sbrk: %ld" #define T_CWI 105 // "C_W: %d cw items, %d wc items, latest %d\n" #define T_EXC 106 // "Exc: %s %d exc items, %d cxe items, latest %d\n" #define T_VEXC 107 // "Verified EXC: %d items\n" #define T_DWI 108 // "D_W: %d prefixes, %d DXCCs, %d WWLs\n" #define T_NAMES 109 // "Names: %d names\n" #define T_MASTER 110 // "Master: %d calls\n" #define T_MEMS 111 // "Memory:" #define T_NMY 112 // " My: " #define T_NGLOBAL 113 // "Global: " #define T_NMASTER 114 // "Master: " #define T_NREMOTE 115 // "Remote: " #define T_NSLAVES 116 // "\nSlaves:\n" #define T_NINFO 117 // "Network info" #define T_NO_BANDS_QRV 118 // "No bands QRV" #define T_NO_BANDS_CONF 119 // "No bands configured" #define T_NOT_AVAILABLE 120 // "Not available" #define T_ADD_SUBWIN 121 // "Add subwin" #define T_HK_ADD_SUBWIN 122 // "A" #define T_CLOSE_SUBWIN 123 // "Close subwin" #define T_HK_CLOSE_SUBWIN 124 // "C" #define T_HK_NINFO 125 // "N" #define T_NEW 126 // "New" #define T_HK_NEW 127 // "N" #define T_NEW_WIZZ 128 // "New from wizard" #define T_HK_NEW_WIZZ 129 // "W" #define T_NEW_NET 130 // "New from network" #define T_HK_NEW_NET 131 // "T" #define T_OPEN 132 // "Open" #define T_HK_OPEN 133 // "O" #define T_SAVE 134 // "Save" #define T_HK_SAVE 135 // "S" #define T_EXPORT_EDI 136 // "Export as EDI" #define T_HK_EXPORT_EDI 137 // "E" #define T_EXPORT_REPORT 138 // "Export as report" #define T_HK_EXPORT_REPORT 139 // "R" #define T_EXPORT_ADIF 140 // "Export as ADIF" #define T_HK_EXPORT_ADIF 141 // "A" #define T_EXPORT_CBR 142 // "Export as Cabrillo" #define T_HK_EXPORT_CBR 143 // "B" #define T_EXPORT_HTML 144 // "Export as HTML" #define T_HK_EXPORT_HTML 145 // "H" #define T_EXPORT_WIKI 146 // "Export as MediaWiki" #define T_HK_EXPORT_WIKI 147 // "W" #define T_IMPORT_EDI 148 // "Import EDI" #define T_HK_IMPORT_EDI 149 // "I" #define T_IMPORT_ADIF 150 // "Import ADIF" #define T_HK_IMPORT_ADIF 151 // "M" #define T_IMPORT_SWAP 152 // "Import swap" #define T_HK_IMPORT_SWAP 153 // "S" #define T_IMPORT_LIST 154 // "Import list" #define T_HK_IMPORT_LIST 155 // "L" #define T_CONTEST_OP 156 // "Contest options" #define T_HK_CONTEST_OP 157 // "O" #define T_CLOSE_CONTEST 158 // "Close contest" #define T_HK_CLOSE_CONTEST 159 // "C" #define T_ADD_ERROR 160 // "Add ERROR" #define T_HK_ADD_ERROR 161 // "E" #define T_CHOP 162 // "Change operator" #define T_HK_CHOP 163 // "O" #define T_CW_CTEST 164 // "Update C_W from contest" #define T_HK_CW_CTEST 165 // "C" #define T_CW_BAND 166 // "Update C_W from band" #define T_HK_CW_BAND 167 // "B" #define T_EXC_CTEST 168 // "Update EXC DB from contest" #define T_HK_EXC_CTEST 169 // "A" #define T_EXC_BAND 170 // "Update EXC DB from band" #define T_HK_EXC_BAND 171 // "T" #define T_IMPORT_EBW 172 // "Import DL8EBW database" #define T_HK_IMPORT_EBW 173 // "W" #define T_NO_CTEST 174 // "No contest" #define T_NO_PEERS 175 // "No peers found" #define T_NO_MASTER 176 // "Master is not available!" #define T_CTEST_DEF 177 // "Contest defaults" #define T_HK_CTEST_DEF 178 // "O" #define T_BAND_DEF 179 // "Band defaults" #define T_HK_BAND_DEF 180 // "B" #define T_HK_RESPOP 181 // "P" #define T_CW_DAEMON 182 // "CW keying" #define T_HK_CW_DAEMON 183 // "E" #define T_CW_CQ 184 // "CW CQ" #define T_HK_CW_CQ 185 // "C" #define T_SSB_CQ 186 // "SSB CQ" #define T_HK_SSB_CQ 187 // "S" #define T_AUTOSAVE 188 // "Autosave" #define T_HK_AUTOSAVE 189 // "A" #define T_LOAD_CFG_NET 190 // "Load cfg from net" #define T_HK_LOAD_CFG_NET 191 // "N" #define T_LOAD_CW_NET 192 // "Load C_W from net" #define T_HK_LOAD_CW_NET 193 // "W" #define T_SAVE_CFG 194 // "Save configuration" #define T_HK_SAVE_CFG 195 // "F" #define T_CONTEST 196 // "Contest" #define T_HK_CONTEST 197 // "C" #define T_EDIT 198 // "Edit" #define T_HK_EDIT 199 // "E" #define T_BANDS 200 // "Bands" #define T_HK_BANDS 201 // "B" #define T_SUBWINS 202 // "Subwins" #define T_HK_SUBWINS 203 // "W" #define T_BAND_SETTINGS_SC 204 // "Band settings for band %c %s" #define T_QRV_ON_THIS_BAND 205 // "QRV on this band" #define T_QRV_IN_THIS_CTEST 206 // "QRV in this contest" #define T_READ_ONLY 207 // "Read-only" #define T_MULTI 208 // "Multi" #define T_SINGLE 209 // "Single" #define T_CHECK 210 // "Check" #define T_TXEQUIP 211 // " TX Equip:" #define T_POWER 212 // " Power:" #define T_RXEQUIP 213 // " RX Equip:" #define T_ANTENNA 214 // " Antenna:" #define T_AGLASL 215 // " AGL;ASL:" #define T_OPS 216 // "Operators:" #define T_SPACES1 217 // " " #define T_REMARKS 218 // " Remarks:" #define T_OK_SECTION_SINGLE 219 // "Single category in OK" #define T_OK_SECTION_MULTI 220 // "Multi category in OK" #define T_QRG_MIN 221 // "Band boundary from" #define T_QRG_MAX 222 // "to [kHz]" #define T_ADIFBAND 223 // "ADIF band name" #define T_SKEDQRG 224 // "QRG for skeds (free form)" #define T_BAND_LO 225 // "Transverter's LO QRG [Hz]:" #define T_BANDSW 226 // "Band switch value" #define T_RESPOP 227 // "Responsible operator" #define T_NAME 228 // " Name:" #define T_CALLSIGN 229 // " Callsign:" #define T_ADDRESS 230 // " Address:" #define T_POSTCODE 231 // "Postal Code:" #define T_CITY 232 // " City:" #define T_COUNTRY 233 // " Country:" #define T_PHONE 234 // " Phone:" #define T_BBSEMAIL 235 // " E-mail:" #define T_QP0 236 // " --none -- " #define T_QP1 237 // " 1 QSOp*QSOp_m (Std. IARU)" #define T_QP2 238 // " 2 QSOp_m (UK VHF activity, ARRL party)" #define T_QP3 239 // " 3 RSGB_ring*QSOp_m (RSGB Backpacker)" #define T_QP4 240 // " 4 WWL_ring*QSOp_m (OK activity)" #define T_QP5 241 // " 5 St_miles*QSOp_m" #define T_QP6 242 // " 6 QSOp_m +1 per CW (CQ WW VHF)" #define T_QP7 243 // " 7 WWL_dist*QSOp_m (OH-SM)" #define T_QP8 244 // " 8 WWL_dist*QSOp_m (Baltic)" #define T_QP9 245 // " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)" #define T_QP10 246 // "10 QSOp_m *5 if Gx (UK cumulative)" #define T_QP11 247 // "11 QSOp_m *3 if F (F 50MHz)" #define T_QP12 248 // "12 RSGB DC (district codes)" #define T_QP13 249 // "13 Continent (CQ WW DX Contest)" #define T_QP14 250 // "14 Continent+band (CQ WW WPX Contest)" #define T_QP15 251 // "15 VHF Band (ARRL VHF)" #define T_QP16 252 // "16 QSOp *4 if F (Champ. de France)" #define T_QP17 253 // "17 QSOp*WWLmult if G (RSGB M5)" #define T_QP18 254 // "18 QSOp*WWLm 2x if G (RSGB M7)" #define T_TP0 255 // " --none -- " #define T_TP1 256 // " 1 Multiplicative (Std. IARU)" #define T_TP2 257 // " 2 Additive (RSGB Backpacker, VRZA, Sicily)" #define T_TP3 258 // " 3 Mult. all bands (CQ WW DX Contest)" #define T_TP4 259 // " 4 All bands togeth. (ARRL VHF)" #define T_NEW_CTEST 260 // "New Contest" #define T_CANT_TRUNC 261 // "Can't truncate desc file" #define T_NAME_OF_CTEST 262 // "Name of the contest:" #define T_CALL_OF_CTEST 263 // "Callsign in contest:" #define T_CLUB_ST 264 // "Club station:" #define T_YOURWWL 265 // "Your WWL:" #define T_YOUREXC 266 // "Your EXC:" #define T_DATE_OF_CTEST 267 // "Date of contest:" #define T_QSOUSED 268 // "QSO NR used" #define T_QSOPM 269 // " QSOp multi:" #define T_WWLUSED 270 // "WWL used " #define T_WWLB 271 // "WWL bonus:" #define T_WWLM 272 // "WWL multi:" #define T_EXCUSED 273 // "EXC used" #define T_EXCB 274 // " EXC bonus:" #define T_EXCM 275 // "EXC multi:" #define T_EXCNAME 276 // " EXC name: " #define T_PREFM 277 // "PREF multi:" #define T_DXCB 278 // " DXC bonus:" #define T_DXCM 279 // "DXC multi:" #define T_RSTUSED 280 // "RST Used " #define T_DEFRS 281 // "Default RS:" #define T_DEFRST 282 // "Def RST:" #define T_ALSORSTR 283 // "Also for RST-R" #define T_QP_CALC 284 // " QSOp calc:" #define T_TO_CALC 285 // "Total calc:" #define T_EDI_PROP 286 // "EDI prop" #define T_RESPOP2 287 // "Responsible op" #define T_EDIT_QSO_CD 288 // "Edit QSO %c: %03d" #define T_CALLSIGN2 289 // "Callsign:" #define T_CLUB 290 // " Club:" #define T_PADR1 291 // " PAdr1:" #define T_PADR2 292 // " PAdr2:" #define T_RS 293 // " RS:" #define T_RST 294 // " RST:" #define T_OPERATOR 295 // "Operator:" #define T_DATE 296 // " Date:" #define T_MODE 297 // " Mode:" #define T_RSTS 298 // " RSTs:" #define T_RSTR 299 // " RSTr:" #define T_QSONRS 300 // "QSO sent:" #define T_QSONRR 301 // "QSO rcvd:" #define T_OPTEXCH 302 // " OptExch:" #define T_WWL 303 // " WWL:" #define T_REMARK 304 // " Remark:" #define T_QRV2 305 // " QRV on:" #define T_WKD 306 // " WKD:" #define T_SEND_SKED 307 // "Send sked" #define T_SELECT 308 // "Select" #define T_QRG 309 // " QRG:" #define T_WE_CALL 310 // " We call" #define T_BAND 311 // " Band:" #define T_TIME 312 // " Time:" #define T_DUPE_QSO 313 // "Duplicate QSO!" #define T_CLEAR_THIS_QSO 314 // "Clear this QSO" #define T_EDIT_OLD_QSO 315 // "Edit old QSO" #define T_MARK_OLD_QSO 316 // "Mark old QSO as ERROR" #define T_STORE_AS_DUPE 317 // "Store as DUPE" #define T_BAD_CALL 318 // "This does not look like a callsign" #define T_N_CALLSIGN 319 // "\nCallsign:" #define T_AUTOSAVE_OPTS 320 // "Autosave options" #define T_SAVE_AQ 321 // "Save to disk after QSO: " #define T_SAVE_AM 322 // "Save to disk after minutes:" #define T_FSYNC 323 // "Fsync" #define T_SAVE_AQF 324 // "Save to floppy after QSO: " #define T_SAVE_AMF 325 // "Save to floppy after minutes:" #define T_DO_MOUNT 326 // "Mount if not in /etc/mtab (unused)" #define T_FLOPPY_PATH 327 // "Path to floppy:" #define T_MOUNT_CMD 328 // "Mount command: " #define T_SW_SHELL 329 // "Shell" #define T_SW_QSOS 330 // "QSOs" #define T_SW_LOG 331 // "Log" #define T_SW_TALK 332 // "Talk" #define T_SW_SKED 333 // "Sked" #define T_SW_UNFI 334 // "Unfi" #define T_SW_DXC 335 // "DXC" #define T_SW_STAT 336 // "Stat" #define T_SW_MAP 337 // "Map" #define T_SW_SCOPE 338 // "Scope" #define T_SW_QRV 339 // "QRV" #define T_SW_HF 340 // "HF" #define T_SW_PLAYER 341 // "Player" #define T_SW_CHART 342 // "Chart" #define T_SHELL 343 // "Shell" #define T_QSOS 344 // "QSOs" #define T_LOG 345 // "Log" #define T_TALK 346 // "Talk" #define T_SKEDS 347 // "Skeds" #define T_UNFI 348 // "Unfinished QSOs" #define T_DXC 349 // "DX Cluster" #define T_STAT 350 // "Statistics" #define T_SWAP 351 // "Swap (N/A)" #define T_MAP 352 // "Graphics map" #define T_SCOPE 353 // "Scope" #define T_QRV 354 // "QRV" #define T_HF 355 // "HF" #define T_KST 356 // "KST" #define T_CMD 357 // "Command" #define T_RESPAWN 358 // "Respawn [sec]:" #define T_UNFI_QSO 359 // "Unfinished QSO" #define T_N_REMARK 360 // "\nRemark:" #define T_NO_CQ 361 // "No CQ defined" #define T_TEXT 362 // "Text:" #define T_SPEED 363 // "Speed [WPM]:" #define T_REPEAT 364 // "Repeat" #define T_DELAY 365 // "Delay [0.1s]:" #define T_ALLOW_UNDEF 366 // "Allow if some item is undefined" #define T_CW_DSCS 367 // "CW%d (%s) %c %s" #define T_FILENAME 368 // "Filename:" #define T_SSB_DSCS 369 // "SSB%d (%s) %c %s" #define T_UDPPORT 370 // "UDP port:" #define T_DEVICE 371 // "Keying device:" #define T_INIT_SPEED 372 // "Initial speed [WPM]:" #define T_INIT_WEIGHT 373 // "Weight (30-70):" #define T_WPMFROM 374 // "WPM Range from" #define T_WPMTO 375 // "to" #define T_USE_SPK 376 // "Use speaker" #define T_LEADIN 377 // "PTT lead in [ms]" #define T_AUTGIVE 378 // "Run mode aut. give after [chars]" #define T_IGN_IFACE_S 379 // "Ignoring interface %-5s" #define T_IGN_ADDR_S 380 // "Ignoring address %s" #define T_ADD_IFACE_SSD 381 // "Added interface=%-5s BCAST=%s:%d" #define T_FORCED_ADDR 382 // "Forced address %s" #define T_TIMESKEW 383 // "WARNING! Time skew %d detected against %s:%d !\n" #define T_DISCONNECTING_SD 384 // "Disconnecting from %s:%d" #define T_ACCEPTED_SD 385 // "Accepted %s:%d (%s)" #define T_CONNECTING_SD 386 // "Connecting to %s:%d" #define T_CONNECTED_SD 387 // "Connected to %s:%d" #define T_DISCONNECTED_SD 388 // "Disconnected from %s:%d" #define T_LOADED_CFG_SSSS 389 // "Loaded config for %s %s (%s,%s)" #define T_LOADED_CW 390 // "Loaded C_W data" #define T_PEER_NOT_FOUND 391 // "ERROR! Peer %s not found" #define T_CANT_CREATE_HOME_S 392 // "Cannot create directory %s" #define T_CANT_LOAD_CFG 393 // "Can't load configuration!\nProgram cannot work properly!" #define T_ERR_RC 394 // "Found some errors parsing config file!\nThis file was probably saved with newer Tucnak!\nDon't save your confuguration unless you can loose data!" #define T_SES_QTR 395 // " QTR " #define T_SES_QRA 396 // " CALL " #define T_SES_RST 397 // " RST-S-No RST-R-No " #define T_SES_QTH 398 // " QTH " #define T_SES_QRB 399 // " Pts/QRB QTF " #define T_SES_FLG 400 // " Flg " #define T_SES_OPE 401 // " Oper. " #define T_SES_EXC 402 // " Exch " #define T_SES_REM 403 // " Remark " #define T_SES_WELCOME 404 // "Welcome to Tucnak! " #define T_SES_PRESS_F10 405 // "Press F10 for menu." #define T_SES_HAVE_FUN 406 // "Have fun." #define T_SES_URL 407 // "http://tucnak.nagano.cz " #define T_SES_ODX 408 // "ODX: " #define T_SES_ODX_DATA 409 // "%s %s %d km (%s)" #define T_SES_STAT_TIT 410 // "QSOs QSO-p OptX WWLs DXCCs Total-p AVG" #define T_SES_AVG 411 // " AVG: %5.2f" #define T_SES_WPM 412 // " WPM:%2d %02d%% %s" #define T_SF_WWLS 413 // " WWLs: %d" #define T_SF_WWLS_UNDER 414 // "-------------" #define T_SF_EXCS 415 // " EXCs: %d" #define T_SF_EXCS_UNDER 416 // "-------------" #define T_SF_MISS_EXCS 417 // " Missing EXCs: %d" #define T_SF_MISS_EXCS_UNDER 418 // "---------------------" #define T_SF_PREFS 419 // " PREFs: %d" #define T_SF_PREFS_UNDER 420 // "-------------" #define T_SF_DXCS 421 // " DXCCs: %d" #define T_SF_DXCS_UNDER 422 // "-------------" #define T_SF_WKD_WWLS 423 // " WKD WWLs: %d" #define T_SF_WKD_WWLS_UNDER 424 // "-----------------" #define T_SF_QSO_WWL4 425 // " QSOS in WWL4s: %d" #define T_SF_QSO_WWL4_UNDER 426 // "----------------------" #define T_SF_STATS_BAND 427 // " Statistics for band %s" #define T_SF_STATS_BAND_UNDER 428 // "===============================" #define T_SF_CONTEST 429 // "Contest: %s" #define T_SF_ALLBQSOS 430 // "All bands QSOs: %d" #define T_SF_ALLBQSOP 431 // "All bands QSOp: %d" #define T_SF_ALLBPTS 432 // "All bands pts: %d" #define T_SF_QSOS 433 // "QSOs: %d" #define T_SF_QSOP 434 // "QSO points: %d" #define T_SF_PTS 435 // "Points: %d" #define T_SF_AVG_PTS 436 // "Average pts/QSO: %5.2f" #define T_SF_AVG_QSOP 437 // "Average qsop/QSO: %5.2f" #define T_BAND_RO 438 // "Band is read-only" #define T_THIS_BAND 439 // "This band" #define T_OTHER_BANDS 440 // "Other bands" #define T_CW_DB 441 // "C_W database" #define T_PROC_EXITED 442 // "*** Process exited\n" #define T_WE_CALL2 443 // "we call" #define T_WE_LISTEN 444 // "we listen" #define T_QSL 445 // "QSL promised" #define T_RECORD 446 // "Record traffic" #define T_MAXMIN 447 // " Max. record duration" #define T_TEMPLATE 448 // "Template for recorded filename" #define T_PCM8 449 // "8 bit PCM" #define T_PCM16 450 // "16 bit PCM" #define T_ULAW 451 // "mu-law" #define T_ALAW 452 // "A-law" #define T_IMAADPCM 453 // "IMA ADPCM" #define T_MSADPCM 454 // "MS ADPCM" #define T_GSM610 455 // "GSM 6.10" #define T_CHANNELS 456 // "Channels" #define T_SAMPLERATE 457 // "Sample rate" #define T_FILLOP 458 // "Fill operators" #define T_HK_FILLOP 459 // "L" #define T_RECAQRB 460 // "Recalc QRB,QTF" #define T_HK_RECAQRB 461 // "R" #define T_NETWORK 462 // "Network & trace" #define T_HK_NETWORK 463 // "K" #define T_IF_IGNORE 464 // "Ignore interfaces:" #define T_IP_IGNORE 465 // " Ignore networks:" #define T_IP_ANNOUNCE 466 // " Announce to nets:" #define T_TRACE_BCAST 467 // "Trace broadcasts " #define T_TRACE_SOCK 468 // "Trace sockets" #define T_TRACE_RECV 469 // "Trace received data" #define T_TRACE_SEND 470 // "Trace sent data" #define T_TRACE_QSOS 471 // "Trace QSOs " #define T_TRACE_SDEV 472 // "Trace rotars " #define T_NOT_MOUNTED_S 473 // "Not mounted %s" #define T_RECSRC_NONE 474 // "Don't set" #define T_RECSRC_MIC 475 // "Microphone" #define T_RECSRC_LINE 476 // "Line in" #define T_NEW_CALL 477 // "New!" #define T_HK_NEW_CALL 478 // "n" #define T_QRV_ON_S 479 // "QRV on %s" #define T_SKED_QRG 480 // "QRG for skeds" #define T_HK_SKED_QRG 481 // "F" #define T_N_SKED_QRG 482 // "\nQRG for skeds:" #define T_GRAB_BAND 483 // "Grab band control" #define T_HK_GRAB_BAND 484 // "G" #define T_FORCE_RUN 485 // "Force RUN mode" #define T_HK_FORCE_RUN 486 // "U" #define T_EXPORT_STATS 487 // "Export Statistics" #define T_HK_EXPORT_STATS 488 // "T" #define T_SF_TOP_DX 489 // " TOP %d DX QSOs:" #define T_SF_TOP_DX_UNDER 490 // "-------------------" #define T_ROTAR 491 // "Rotator" #define T_HK_ROTAR 492 // "R" #define T_AZIMUTH 493 // " Azimuth" #define T_ELEVATION 494 // "Elevation" #define T_CH_SPY 495 // "Spy" #define T_HK_CH_SPY 496 // "S" #define T_CH_ENDSPY 497 // "Spy end" #define T_HK_CH_ENDSPY 498 // "P" #define T_EXPORT_TITLPAGE 499 // "Export title page" #define T_HK_EXPORT_TITLPAGE 500 // "P" #define T_BREAK_RECORD 501 // "Break record" #define T_HK_BREAK_RECORD 502 // "B" #define T_GLOBAL_OPERATOR 503 // "Change for all bands" #define T_GLOBAL_OPERATOR2 504 // "Global" #define T_MAXFRAG 505 // "Max. num of fragments (>=2)" #define T_PLAY_LAST 506 // "Play last sample" #define T_HK_PLAY_LAST 507 // "P" #define T_MISCOPTS 508 // "Miscellaneous options" #define T_HK_MISCOPTS 509 // "M" #define T_LOGLINES 510 // "Log lines: " #define T_SKEDSHIFT 511 // "Sked shift (minutes): " #define T_STARTBAND 512 // "Starting band: " #define T_GFX_X_CH 513 // "Screen resolution (chars):" #define T_GFX_Y_CH 514 // "x" #define T_GFX_X_PX 515 // "Screen resolution (pixels):" #define T_GFX_Y_PX 516 // "x" #define T_CALL_INFO 517 // "Callsign info" #define T_HK_CALL_INFO 518 // "I" #define T_SF_QSO_HOUR 519 // "QSOs/hour: %d" #define T_SF_QSOP_HOUR 520 // "Points/hour: %d" #define T_SF_QSOP_50QSO 521 // "Points/50 QSOs: %d" #define T_SF_HOURS 522 // " Hours" #define T_SF_HOURS_UNDER 523 // "---------" #define T_SF_HOURS_TITLE 524 // "Hours Points QSOs AVG pts/QSO" #define T_QSO_CHECK 525 // "QSO check" #define T_HK_QSO_CHECK 526 // "K" #define T_AUDIO 527 // "Audio" #define T_HK_AUDIO 528 // "D" #define T_ALSA 529 // "Alsa" #define T_OSS 530 // "OSS" #define T_PORTAUDIO 531 // "PortAudio" #define T_DISKFREE 532 // "Minimal disk free space [MiB]" #define T_FORMAT 533 // "Record format" #define T_PCM_PLAY 534 // "Alsa playback device" #define T_PCM_REC 535 // "Alsa capture device" #define T_PERIOD 536 // "Period time [ms]" #define T_BUFFER 537 // "Buffer time [ms]" #define T_ALSA_MIXER 538 // "Alsa mixer device" #define T_CAPTURE 539 // "Capture source" #define T_DSP 540 // "OSS DSP" #define T_MIXER 541 // "OSS mixer" #define T_RECSRC 542 // "Record source" #define T_PA_PLAY 543 // "Portaudio playback device" #define T_PA_REC 544 // "Portaudio capture device" #define T_HOSTNAME 545 // "Hostname:" #define T_SLASHKEY 546 // "Slash key" #define T_FIXQRG 547 // "Fix QRG" #define T_HK_FIXQRG 548 // "X" #define T_ENTER_QRG 549 // "Enter accurate QRG [Hz]" #define T_BAD_QRG 550 // "Bad frequency" #define T_CALLSIGN3 551 // "Callsign" #define T_CALLSIGN_KST 552 // "KST station's callsign:" #define T_CANT_INIT_WINKEY_S 553 // "Can't init winkey on %s" #define T_WINKEYOPTS 554 // "Winkey options" #define T_WK_WK2 555 // "Winkey2 fast initialization" #define T_WK_USEPOT 556 // "Use speed pot" #define T_WK_USEBUT 557 // "Use buttons" #define T_WK_KM_B 558 // "Curtis-B" #define T_WK_KM_A 559 // "Curtis-A" #define T_WK_KM_U 560 // "Ultimatic" #define T_WK_KM_G 561 // "Bug" #define T_WK_SWAP 562 // "Paddle swap (left handled)" #define T_RIGOPTS 563 // "Rig options" #define T_HK_RIGOPTS 564 // "G" #define T_RIG_DEVICE 565 // "Device:" #define T_RIG_MODEL 566 // "Rig model: " #define T_RIG_SPEED 567 // "Baudrate: " #define T_RIG_CIV 568 // "CIV address (hex):" #define T_RIG_FREQSHIFT 569 // "Freq. shift SSB->CW" #define T_RIG_CHOOSE 570 // "Choose" #define T_ROTAROPTS 571 // "Rotar options" #define T_HK_ROTAROPTS 572 // "I" #define T_DSSAVER 573 // "Disable screensaver" #define T_DESC 574 // "Description" #define T_ROT_NONE 575 // "None" #define T_ROT_OK1ZIA_TTYS 576 // "OK1ZIA serial" #define T_ROT_OK1ZIA_FTDI 577 // "OK1ZIA USB" #define T_ROT_HAMLIB 578 // "Hamlib" #define T_ROT_REMOTE 579 // "Remote" #define T_ROT_VID 580 // "VID:" #define T_ROT_PID 581 // "PID:" #define T_ROT_SERIAL 582 // "Serial #" #define T_ROT_ADD 583 // "Add new rotator" #define T_HK_ROT_ADD 584 // "W" #define T_ROT_REMOVE 585 // "Remove rotator" #define T_HK_ROT_REMOVE 586 // "R" #define T_TIMEOUT 587 // "Timeout:" #define T_BEAMWIDTH 588 // "Beam width:" #define T_SADDR 589 // "Communication address:" #define T_MODEL 590 // "Model:" #define T_ROT_REM_ROTSTR 591 // "Rotator letter for remote" #define T_QSOGLOB 592 // "Global QSO NR" #define T_PREFGLOB 593 // "Global PREF" #define T_NOT_RECORDING_S 594 // "Not recording - %s" #define T_SKEDCOUNT 595 // "Sked count in popup: " #define T_FONTHEIGHT 596 // "Font height (16-32): " #define T_RIG_POLL_MS 597 // "Rig poll interval [ms]: " #define T_RIG_QRG_R2T 598 // "Set band from radio" #define T_RIG_QRG_T2R 599 // "Change band on radio" #define T_RIG_MODE_T2R 600 // "Change mode on radio" #define T_RUN_MODE 601 // "Run mode" #define T_HK_RUN_MODE 602 // "U" #define T_SP_MODE 603 // "S&P mode" #define T_HK_SP_MODE 604 // "M" #define T_RIG_CLR_RIT 605 // "Clear RIT on RUN's QSO save" #define T_RIG_DEBUG 606 // "Debug rig" #define T_HF_RATE 607 // "Rate: %3d/10 %3d/60" #define T_HF_BAND 608 // "Band QSO Point Mult" #define T_HF_SUM 609 // "Sum:" #define T_HF_LAST 610 // "Last Q-%s P-%s" #define T_EVEN 611 // "TX eVen" #define T_HK_EVEN 612 // "N" #define T_ODD 613 // "TX oDd" #define T_HK_ODD 614 // "D" #define T_1ST 615 // "TX 1st" #define T_HK_1ST 616 // "1" #define T_2ND 617 // "TX 2nd" #define T_HK_2ND 618 // "2" #define T_HF_SCORE 619 // "Score:" #define T_EXPMODE 620 // "Expedition mode" #define T_TTTYPE 621 // "Only digits mean" #define T_ROT_POLL_MS 622 // "Poll interval [ms]:" #define T_VERSION 623 // "Version" #define T_HK_VERSION 624 // "V" #define T_REMOTE_HOST 625 // " Remote host name:" #define T_REMOTE_PORT 626 // " Remote TCP port:" #define T_REMOTE_PASS 627 // " Remote Password:" #define T_STARTING_AC 628 // "Starting A/C" #define T_STOPPING_AC 629 // "Stopping A/C" #define T_ASL_5D_M 630 // "ASL: %5d m" #define T_SPEED4D_KMH 631 // "Speed:%4d km/h" #define T_AC_START 632 // "Start: %02d:%02d %02ldm%02ld" #define T_AC_DURAT_LD 633 // "Durat: %ld" #define T_EXPORTING_S 634 // "Exporting %s" #define T_CANT_OPEN_ALSA_PCM_S_S 635 // "Can't open alsa PCM '%s': %s" #define T_EXPORTING 636 // "Exporting ..." #define T_TERMINATING_CONVERSION_TABLES 637 // "Terminating conversion tables" #define T_LOADING_CHARTS 638 // "Loading charts" #define T_INITIALIZING_CWPTT_CONTROL 639 // "Initializing CW/PTT control" #define T_NO_PPDEV 640 // "Support for ppdev/inpout isn't compiled in" #define T_NO_DAVAC4_SUPPORT 641 // "Support for davac4 isn't compiled in, check for libftdi" #define T_CANT_CREATE_PIPE 642 // "Can't create pipe" #define T_TERMINATING_CWDAEMON 643 // "Terminating CW/PTT control" #define T_INIT_CWDB 644 // "Initializing WWL database" #define T_TERM_CWDB 645 // "Terminating WWL database" #define T_LOADING_CWDB 646 // "Loading WWL database" #define T_QRV_ON 647 // "QRV on: " #define T_CANT_INIT_FTDI 648 // "Can't init ftdi library for davac4" #define T_CANT_OPEN_DAVAC4 649 // "Can't open davac4 device %04x:%04x, error=%d %s" #define T_CANT_SET_BAUDRATE 650 // "Can't set baudrate for davac4, error=%d %s" #define T_CANT_ENABLE_BITBANG 651 // "Can't enable bitbang, error=%d %s" #define T_CANT_WRITE_TO_DAVAC4 652 // "Can't write to davac4, error=%d %s" #define T_INIT_SOUNDCARD 653 // "Initializing soundcard" #define T_NO_OSS 654 // "OSS support not compiled in" #define T_NO_ALSA 655 // "Alsa support not compiled in" #define T_NO_PORTAUDIO 656 // "portaudio support not compiled in" #define T_NO_SNDFILE 657 // "Libsndfile support not compiled in" #define T_NO_SNDPIPE 658 // "Sndpipe support not compiled in" #define T_TERMINATING_SOUNDCARD 659 // "Terminating soundcard" #define T_INIT_DWDB 660 // "Initializing DXCC database" #define T_FREE_DWDB 661 // "Terminating DXCC database" #define T_LOAD_DWDB 662 // "Loading DXCC database" #define T_CALLSIGN_UNKNOWN 663 // "Callsign unknown in namedb and C_W\n" #define T_CROSSMODE_QSO_N 664 // "Crossmode QSO ?\n" #define T_UNKNOWN_DXCC_PREFIXN 665 // "Unknown DXCC prefix\n" #define T_PREFIX_AND_BIG_WWL 666 // "Prefix and big wwl don't match\n" #define T_KNOWN_CALL_UNK_LOC 667 // "Known call from unknown locator\n" #define T_CALL_WITHOUT_P 668 // "Call is without /P and in C_W exists call with /P\n" #define T_CALL_WITHOUT_D 669 // "Call is without /%d and in C_W exists call with /%d\n" #define T_CALL_IS_WITH_P_AND 670 // "Call is with /P and in C_W exists call without /P or CEPT prefix\n" #define T_OTHER_SIMILAR_CALL_KNOWN 671 // "Other similar call known from this locator. Maybe %s?\n" #define T_CALL_ON_BAND_S 672 // "Callsign on band %s is %s\n" #define T_LOCATOR_ON_BAND 673 // "Locator on band %s is %s\n" #define T_QSO_CHECK_LIST 674 // " Tucnak QSO check list\n" #define T_CALL_SN 675 // " Call: %s\n" #define T_CONTEST_SN 676 // "Contest: %s\n" #define T_DATE_SN 677 // " Date: %s\n" #define T_CHECKING_S 678 // "Checking %s" #define T_BAND_C_SN 679 // " Band %c %s\n" #define T_SEEMS_TO_BE_OK 680 // "Seems to be O.K.\n" #define T_CW_NOT_FOUND 681 // "C_W: %s not found\n" #define T_0X_NOT_IN_DB 682 // " 0x (not in database)" #define T_NAME_IS 683 // "Name: %s's name is %s\n" #define T_NAME_UNKNOWN 684 // "Name: %s's name is unknown\n" #define T_INIT_DXC 685 // "Initializing DXcluster" #define T_FREE_DXC 686 // "Terminating DXcluster" #define T_HK_SELECT 687 // "S" #define T_HIDE 688 // "Hide" #define T_HK_HIDE 689 // "H" #define T_INFO 690 // "Info" #define T_HK_INFO 691 // "I" #define T_USE 692 // "Use" #define T_HK_USE 693 // "U" #define T_BAD_DXC_PORT 694 // "*** Incorrect DXC TCP port %s ***\n" #define T_ENTER_TO_DXC 695 // "\n*** Press ENTER to connect to DXC ***\n" #define T_CANT_RESOLVE 696 // "*** Can't resolve %s: %s ***\n" #define T_HOST_RESOLVED 697 // "*** Host resolved " #define T_CANT_CREATE_SOCKET 698 // "*** Can't create socket. %s ***\n" #define T_CONNECTING_TO 699 // "*** Connecting to %s ***\n" #define T_CANT_CONNECT_TO 700 // "*** Can't connect to %s, %s ***\n" #define T_CONNECTED_SOCKET 701 // "*** Connected socket %d ***\n" #define T_ERROR_READING_SOCKET 702 // "*** Error reading socket: %s ***\n" #define T_DISCONNECTED 703 // "\n*** Disconnected ***\n" #define T_RESOLVING 704 // "*** Resolving %s ***\n" #define T_LOADED_LOCS_NAMES 705 // "Loaded %d locators and %d names from %s" #define T_SAVED 706 // "Saved %s" #define T_LOADING_CONTEST 707 // "Loading contest %s" #define T_LOADING_LOGFILE 708 // "Loading logfile" #define T_LOADING_TALK 709 // "Loading talk" #define T_SEARCH_FILES 710 // "Search for contest files" #define T_LOADING_BAND 711 // "Loading band %s" #define T_LOADING_SPY 712 // "Loading spy" #define T_LOADING_HICALLS 713 // "Loading hicalls" #define T_LOADING_QRV 714 // "Loading qrv" #define T_LOADING_CHART 715 // "Loading chart" #define T_SAVING_CONTEST 716 // "Saving contest" #define T_UPD_INT_DATA 717 // "Updating internal data" #define T_CALC_STATS 718 // "Calculating statistics" #define T_ANN_OVER_NET 719 // "Announcing over network" #define T_ACTIVATING_BAND 720 // "Activating band %s" #define T_UPDATING_WKD 721 // "Updating worked calls" #define T_UPDATING_QRBQTF 722 // "Updating QRB&QTF" #define T_UPDATING_GAIN 723 // "Updating gain chart" #define T_SEN_OVER_NET 724 // "Sending info over network" #define T_INIT_EXCDB 725 // "Initializing exchange database" #define T_FREE_EXCDB 726 // "Terminating exchange database" #define T_INIT_FFT 727 // "Initializing FFT analyse" #define T_FREE_FFT 728 // "Terminating FFT analyse" #define T_INIT_ROTAR 729 // "Initializing rotator control" #define T_FREE_ROTAR 730 // "Terminating rotator control" #define T_LOCATOR 731 // "Locator:" #define T_BAND2 732 // "Band" #define T_POINTS 733 // "Points" #define T_AVG 734 // "AVG" #define T_INIT_HTTPD 735 // "Initializing HTTP server" #define T_FREE_HTTPD 736 // "Terminating HTTP server" #define T_NO_CONTEST_OPENED 737 // "

No contest opened

\n" #define T_NO_CONTEST_OPENED2 738 // "No contest opened" #define T_STATS 739 // "Statistics" #define T_BAND_NOT_FOUND 740 // "Band not found" #define T_BAND_C_NOT_FOUND 741 // "

Band %c not found

" #define T_QSOS_IN_DATABASE 742 // "qsos in database" #define T_TUCNAK_ONLINE_LOG 743 // "Tucnak online log" #define T_DATE2 744 // "Date" #define T_UTC 745 // "UTC" #define T_CALL 746 // "Call" #define T_CALL_NOT_FOUND 747 // "Call not found" #define T_CANT_LOAD_INPOUT 748 // "Can't load inpout32.dll, error %d" #define T_FREE_TERM 749 // "Terminating terminal" #define T_TERM_KEYMAPS 750 // "Terminating keymaps" #define T_QRB 751 // "QRB" #define T_HK_QRB 752 // "B" #define T_QTF 753 // "QTF" #define T_HK_QTF 754 // "F" #define T_ACKST 755 // "AcKST" #define T_HK_ACKST 756 // "A" #define T_MISTAKE 757 // "Oh mistake" #define T_HK_MISTAKE 758 // "O" #define T_ASK_FOR_SKED 759 // "Ask for sked" #define T_HK_ASK_FOR_SKED 760 // "K" #define T_MESSAGE 761 // "Message" #define T_HK_MESSAGE 762 // "M" #define T_AC_INFO 763 // "A/C info" #define T_HK_AC_INFO 764 // "A" #define T_NO_SEND_NUMS 765 // "*** Sending numbers over KST is prohibited\n" #define T_RESOLVED 766 // "*** Resolved " #define T_ENTER_TO_CONNECT_KST 767 // "\n*** Press ENTER to connect to ON4KST ***\n" #define T_SENDING_SH_US 768 // "*** Sending /sh us ...\n" #define T_SKIP_LINE 769 // "Skip line %d '%s'" #define T_CANT_CREATE_HOME 770 // "Can't create home directory '%s'" #define T_MUST_BE_DIR_MODE 771 // "'%s' must be directory (mode 0%oo)" #define T_TUCNAK_DIRECTORY_IS 772 // "Tucnak directory is %s" #define T_INIT_MAP 773 // "Initializing polar map" #define T_DISABLE_SAVER 774 // "Disabling screensaver" #define T_STARTING_TUCNAK 775 // "Starting Tucnak" #define T_FREE_MAP 776 // "Terminating polar map" #define T_INIT_MASTERDB 777 // "Initializing master database" #define T_FREE_MASTERDB 778 // "Terminating master database" #define T_LOAD_MASTERDB 779 // "Loading master database" #define T_TUCNAK_SVN_LIBZIA_SVN 780 // "Tucnak SVN version: %s\nLibzia SVN version: %s" #define T_DIRECTORY_SCAN 781 // "Directory scan" #define T_V3_COMPATIBILITY 782 // " (v3 compatibility)" #define T_RELOAD_INTERFACES 783 // "Reload interfaces" #define T_SET_READONLY 784 // "Set read-only" #define T_CHANGE_TYPE 785 // "Change type" #define T_HK_CHANGE_TYPE 786 // "T" #define T_OPEN_CONNECTION 787 // "Open connection" #define T_HK_OPEN_CONNECTION 788 // "O" #define T_KILL_CONNECTION 789 // "Kill connection" #define T_HK_KILL_CONNECTION 790 // "K" #define T_HK_EXPORT_TO_TEXT_FILE 791 // "E" #define T_EXPORT_TO_TEXT_FILE 792 // "Export to text file" #define T_ADD_CONTEST 793 // "Add contest" #define T_HK_ADD_CONTEST 794 // "O" #define T_ADD_FILES 795 // "Add file(s)" #define T_HK_ADD_FILES 796 // "F" #define T_ADD_CONTESTS 797 // "Add contests" #define T_HK_ADD_CONTESTS 798 // "O" #define T_ALTC 799 // "Alt+%c" #define T_CTRLC 800 // "Ctrl+%c" #define T_CTRLP 801 // "Ctrl+P" #define T_CRASH_TEST 802 // "Crash test" #define T_HK_CRASH_TEST 803 // "C" #define T_INTERROR_TEST 804 // "Int.error test" #define T_HK_INTERNAL_TEST 805 // "I" #define T_DUMP_RW_BANDS 806 // "Dump RW bands and hashes" #define T_HK_DUMP_RW_BANDS 807 // "D" #define T_UPDATE 808 // "Update Tucnak" #define T_HK_UPDATE 809 // "U" #define T_SETTINGS 810 // "Settings" #define T_HK_SETTINGS 811 // "S" #define T_UPLOAD_TO_VHFNET 812 // "Upload to vhfcontest.net" #define T_HK_UPLOAD_TO_VHFNET 813 // "V" #define T_MEDIAWIKI_UPLOAD 814 // "Upload to MediaWiki" #define T_HK_MEDIAWIKI_UPLOAD 815 // "U" #define T_VOIP_SPY 816 // "Voip spy" #define T_HK_VOIP_SPY 817 // "V" #define T_END_VOIP_SPY 818 // "End voip spy" #define T_HK_END_VOIP_SPY 819 // "Y" #define T_OLD_TEST_NO_SPY 820 // "Contest is old, spy is not available" #define T_NETWORK_SCAN 821 // "Network scan" #define T_HTTPD_OPTIONS 822 // "HTTPD options" #define T_HK_HTTP_OPTIONS 823 // "H" #define T_AC_OPTIONS 824 // "A/C options" #define T_HK_AC_OPTIONS 825 // "P" #define T_SDR_OPTIONS 826 // "SDR options" #define T_HK_SDR_OPTIONS 827 // "R" #define T_OTHER 828 // "Other:" #define T_NONE 829 // "None " #define T_RSTS2 830 // "RST-S" #define T_RSTR2 831 // "RST-R" #define T_QSONRR2 832 // "QSONR-R" #define T_EXC2 833 // "EXC" #define T_UNUSED 834 // "Unused " #define T_USED_6 835 // "Used (6)" #define T_OPT_6 836 // "Opt. (6)" #define T_USED_4 837 // "Used (4)" #define T_OPT_4 838 // "Opt. (4)" #define T_FREE 839 // "Free " #define T_VERIFIED 840 // "Verified" #define T_WAZ 841 // "WAZ " #define T_ITU 842 // "ITU " #define T_WWL2 843 // "WWL:" #define T_CONFIRM_WWL 844 // "Confirm WWL" #define T_CONFIRM_EXC 845 // "Confirm EXC" #define T_FONT_SIZE 846 // "Font size: " #define T_DXC_HOSTNAME 847 // "DXC Hostname:" #define T_TCP_PORT 848 // "TCP Port:" #define T_DXC_USERNAME 849 // "DXC Username:" #define T_PASSWORD 850 // "Password:" #define T_KST_USERNAME 851 // "KST Username:" #define T_KST_YOURNAME 852 // "KST Yourname:" #define T_SDR 853 // "SDR" #define T_PARPORT 854 // "parport" #define T_TTYS 855 // "ttys" #define T_AUDIO_SUBSYSTEM 856 // "Audio subsystem:" #define T_PLAYBACK_VOLUME 857 // "Playback volume" #define T_CAPTURE_VOLUME 858 // "Capture volume" #define T_ENABLE_REMOTE_CONNECT 859 // "Enable remote connect" #define T_TRACE_RIG 860 // "Trace rig" #define T_TRACE_KEYS 861 // "Trace keys" #define T_SAVE_RESTART 862 // "You must save configuration and restart Tucnak" #define T_FULLSCREEN 863 // "Fullscreen" #define T_TOUCH 864 // "Use touch control" #define T_ALT_QWER 865 // "Alt turns QWER.. to 1234.." #define T_NO_LOCKS 866 // "No device locks" #define T_PORTRAIT_ORIENTATION 867 // "Portrait orientation" #define T_REVERSE 868 // "Reverse" #define T_CHOOSE_RIG 869 // "Choose rig" #define T_RIG_D 870 // "Rig %d" #define T_NEW_RIG 871 // "New rig" #define T_ENABLED 872 // "Enabled" #define T_SET_PTT_ON_RADIO 873 // "Set PTT on radio" #define T_DISABLED 874 // " (disabled)" #define T_ADD_RIG 875 // "Add rig" #define T_REMOVE_RIG 876 // "Remove rig" #define T_ROTATOR_D 877 // "Rotator %d" #define T_ENABLE 878 // "Enable" #define T_TCP_PORT2 879 // "TCP port:" #define T_PRIVATE 880 // "Show private informations" #define T_LOAD_FROM_NET 881 // "Load from network" #define T_LOAD_CWDB 882 // "Load C_W database" #define T_LOAD_NAMEDB 883 // "Load Name database" #define T_LOAD_QRVDB 884 // "Load QRV database" #define T_READONLY_BANDS 885 // "Read-only bands" #define T_ENABLE_AC 886 // "Enable A/C" #define T_AC_URL 887 // "Alternative URL for flightradar data" #define T_K_FACTOR 888 // "Troposphere k_factor" #define T_AC_AREA_WIDTH 889 // "Reflection area width in km" #define T_AC_EL_ANGLE 890 // "Minimal elevation angle" #define T_AC_MAX_EL_ANGLE 891 // "Maximal elevation angle" #define T_AC_MIN_DURATION 892 // "Minimal reflection duration in sec" #define T_AC_MAX_DIFF 893 // "Max difference of incidence and reflection angles" #define T_BAD_NUMBER_RANGE 894 // "Bad number range" #define T_AF_SRATE_GREATER_SRATE 895 // "AF sample rate can't be greater than sample rate" #define T_SRATE_DIVISIBLE 896 // "Sample rate must be divisible by AF sample rate without remainder" #define T_NO_DEVICE 897 // "No device" #define T_IQ_SOURCE 898 // "IQ source:" #define T_WAV_FILE 899 // "WAV file" #define T_WAV_FILE_NAME 900 // "WAV file name" #define T_AF_OUTPUT 901 // "AF output:" #define T_AF_SAMPLE_RATE 902 // "AF sample rate" #define T_BLOCK_SIZE 903 // " Block size" #define T_CW_FILTER 904 // " CW filter" #define T_TO_HZ 905 // "to [Hz]" #define T_SSB_FILTER 906 // " SSB filter" #define T_INIT_NAMEDB 907 // "Initializing name database" #define T_FREE_NAMEDB 908 // "Terminating name database" #define T_LOAD_NAMEDB2 909 // "Loading name database" #define T_INIT_NET 910 // "Initializing network" #define T_FREE_NET 911 // "Terminating network" #define T_ONLY_55555_CAN_REMOTE 912 // "Only tucnak with port 55555 can connect to remote to prevent routing loops" #define T_CANT_CONNECT_TO_MYSELF_LO 913 // "Can't connect to myself (interface lo)" #define T_CANT_CONNECT_TO_MYSELF 914 // "Can't connect to myself (interface %s)" #define T_CANT_PARSE_REMOTE_HOST_S 915 // "Can't parse remote host %s" #define T_TIME_WAS_SET 916 // "Time was set" #define T_FAILED_TO_SET_TIME 917 // "Failed to set time" #define T_INIT 918 // "INIT" #define T_CONNECTING 919 // "CONNECTING" #define T_CONNECTED 920 // "CONNECTED" #define T_WAIT_ACK 921 // "WAIT_ACK" #define T_DISCONNECTED2 922 // "DISCONNECTED" #define T_DEAD 923 // "DEAD" #define T_LONG_XFER 924 // "LONG_XFER" #define T_AUTHENTICATED_USER_S 925 // "Authenticated user %s" #define T_BAD_AUTHENTICATION_S 926 // "Bad authentication %s" #define T_LONG_TRANSFER_STARTED_PLEASE_WAIT 927 // "Long transfer started, please WAIT" #define T_LONG_TRANSFER_FINISHED 928 // "Long transfer finished" #define T_INIT_NTP 929 // "Initializing NTP monitor" #define T_FREE_NTP 930 // "Terminating NTP monitor" #define T_NO_NTP 931 // "Warning! Time on this machine is not synchronized. Please use NTP" #define T_INIT_SPEAKER 932 // "Initializing PC speaker" #define T_FREE_SPEAKER 933 // "Terminating PC speaker" #define T_CANT_PLAY 934 // "Can't play %s - %s" #define T_CANT_SEEK_TO_END 935 // "Can't seek to end %s - %s" #define T_CANT_SEEK_TO_START 936 // "Can't seek to start %s - %s" #define T_CANT_OPEN 937 // "Can't open %s %s" #define T_TIP_MKNOD 938 // "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"" #define T_TIP_CHMOD 939 // "Tip: try to run as root \"chmod a+rw %s\"" #define T_CANT_SET_EPP 940 // "Can't set %s to EPP mode %s" #define T_CANT_EXCLUSIVE_ACCESS 941 // "Can't exclusive access to %s %s" #define T_CANT_CLAIM 942 // "Can't claim %s %s" #define T_INIT_QRVDB 943 // "Initializing QRV database" #define T_FREE_QRVDB 944 // "Terminating QRV database" #define T_WWL3 945 // "WWL" #define T_WKD2 946 // "WKD" #define T_ACKST2 947 // "AcKst" #define T_START 948 // "Start" #define T_DUR 949 // "Dur" #define T_NR 950 // "NR" #define T_TEXT2 951 // "Text" #define T_16_SORT 952 // "1-6: sort, " #define T_A_ALL 953 // "A: all" #define T_ENTER_SPACE_EDIT 954 // ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search" #define T_LOAD_QRVS 955 // "Loading qrvs" #define T_UNSPECIFIED 956 // "unspecified" #define T_SSB 957 // "SSB" #define T_CW 958 // "CW" #define T_SSBS_CWR 959 // "SSBs CWr" #define T_CWS_SSBR 960 // "CWs SSBr" #define T_AM 961 // "AM" #define T_FM 962 // "FM" #define T_RTTY 963 // "RTTY" #define T_SSTV 964 // "SSTV" #define T_ATV 965 // "ATV" #define T_ADDED_ERROR 966 // "added ERROR for band %c, qsonr %d\n" #define T_FOUND_D_ERRORS 967 // "Found %d error%s while reading %s" #define T_FOUND_D_ERRORS_RC_NET 968 // "Found %d error(s) while reading config from net" #define T_REGISTRATED_ROTATORS 969 // "Registrated rotators:" #define T_UNSUPPORTED_ROTATOR 970 // "Unsupported rotator type %d\n" #define T_WAIT_HL_ROT_THREAD 971 // "Waiting for hamlib rotator thread" #define T_INIT_ROTARS2 972 // "Initializing rotators" #define T_UNKNOWN_ROTAR 973 // "Unknown rotar '%s'\n" #define T_ROTAR_ERROR_S 974 // "Rotar error: %s" #define T_CANT_RECORD_FROM_SDR_DSP 975 // "Can't record from SDR DSP" #define T_CANT_PLAY_TO_SDR_DSP 976 // "Can't play to SDR DSP" #define T_CANT_OPEN_PLAY_SDR_SOUNDPIPE 977 // "Can't open (play) SDR soundpipe" #define T_CANT_READ_FROM 978 // "Can't read from" #define T_CANT_WRITE_TO 979 // "Can't write to" #define T_MULTIPLIED_WWLS_D 980 // " Multiplied WWLs: %d" #define T_HYPHENS1 981 // "-----------------------" #define T_UPDATE2 982 // "Update" #define T_ENTER_TO_KST 983 // "*** Press ENTER to connect to ON4KST ***" #define T_BAD_UPDATE_FILE_NAME 984 // "Bad update file name" #define T_CANT_EXECUTE_INSTALLER 985 // "Can't execute installer, " #define T_UPDATE_OF_TUCNAK_FAILED 986 // "Update of Tucnak failed" #define T_UPDATE_FAILED 987 // "Update failed" #define T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY 988 // "Update of Tucnak failed, can't parse reply." #define T_UPDATE_OF_TUCNAK_FAILED_S 989 // "Update of Tucnak failed. %s" #define T_NEW_VERSION_AVAIL 990 // "New version %s is available. Use Menu File, Update Tucnak to install." #define T_NO_NEW_VER 991 // "No new version available." #define T_READING_LIST_OF_OPENED_CONTESTS 992 // "Reading list of opened contests..." #define T_CHOOSE_CONTEST 993 // "Choose contest" #define T_NO_CONTEST_AVAILABLE_FOR_UPLOAD 994 // "No contest available for upload" #define T_OBTAINING_CONTEST_WEB_FORM 995 // "Obtaining contest web form..." #define T_ALL_EDI_FILES_PROCESSED 996 // "All EDI files processed." #define T_UPLOADING_LOG_FILE_S 997 // "Uploading log file %s ..." #define T_UPLOADING_BAND_S 998 // "Uploading band %s" #define T_CONFIRMING_LOG 999 // "Confirming log..." #define T_RESULT_ERROR 1000 // "*** Result: ERROR please read error message above" #define T_LOG_IS_NOT_VALID 1001 // "Log is not valid. Please verify error messages and repeat: %s" #define T_DOWNLOADING_CLAIMED_SCORES 1002 // "Downloading claimed scores..." #define T_LOGS_UPLOADED 1003 // "Logs uploaded." #define T_HTTP_STATUS 1004 // "HTTP status: " #define T_LOG_UPLOAD 1005 // "Log upload" #define T_VOIP_NO_INITIALIZED 1006 // "VOIP no initialized" #define T_PAGE_NAME 1007 // "Page name" #define T_OVERWRITE_EXISTING_FILES 1008 // "Overwrite existing files" #define T_SITE_URL 1009 // "Site URL" #define T_USERNAME 1010 // "Username" #define T_PASSWORD2 1011 // " Password" #define T_EXPORT_MAP 1012 // "Export map" #define T_EXPORT_CHART 1013 // "Export chart" #define T_MEDIAWIKI_UPLOAD2 1014 // "Mediawiki upload" #define T_BAD_AUTH_USER 1015 // "Bad auth user %s != %s" #define T_BAD_AUTH_PASS 1016 // "Bad auth pass %s != %s\n" #define T_CTEST_NOT_SAME_AC 1017 // "Contest is not the same: FORMAT of AC frame" #define T_CANT_GET_FMTS 1018 // "Can't get supported audio formats: %s" #define T_CANT_SET_FMT 1019 // "Can't set audio format %d, recommended %d: %s" #define T_CANT_SET_FMT_RET 1020 // "Can't set recommended audio format %d, return %d: %s" #define T_CANT_SET_FALLBACK 1021 // "Can't set fallback audio %d, return %d: %s" #define T_CANT_SET_CHANNELS 1022 // "Can't set channels %d, recommended %d: %s" #define T_CANT_SET_CHANNELS_RET 1023 // "Can't set recommended channels %d, return %d: %s" #define T_CANT_SET_RATE 1024 // "Can't set samplerate %d, recommended %d: %s" #define T_CANT_SET_RATE_RET 1025 // "Can't set recommended samplerate %d, return %d: %s" #define T_CANT_SET_BLOCK_SIZE 1026 // "Can't set block size %d: %s" #define T_UNKNOWN_PORTAUDIO_DEV 1027 // "Unknown portaudio device %d" #define T_CANT_OPEN_PA_STREAM 1028 // "Can't open PortAudio stream %d for %s: %s" #define T_RECORD2 1029 // "record" #define T_PLAYBACK 1030 // "playback" #define T_CANT_PA_STREAM 1031 // "Can't %s PortAudio stream %d: %s" #define T_CANT_STOP_PA 1032 // "Can't stop PortAudio stream: %s" #define T_CANT_CLOSE_PA 1033 // "Can't close PortAudio stream: %s" #define T_TIP_RMMOD 1034 // "Tip: try to run as root \"rmmod lp\"" #define T_TIP_KILL_LSOF 1035 // "Tip: or kill process listed in \"lsof %s\"" #define T_CANT_SET_STROBE 1036 // "Can't set parport_STROBE %s" #define T_UNKNOWN_ROTNR_OR_INIT_ERROR 1037 // "Unknown rotator number %d or initialization error" #define T_CANT_CREATE_HL_ROT_THR 1038 // "Can't create hamlib rotar thread\n" #define T_INIT_SERIAL_DEVICES 1039 // "Initializing serial devices" #define T_BAD_CHECKSUM 1040 // "Bad checksum" #define T_TIMEOUT2 1041 // "Timeout" #define T_BAD_RESPONSE 1042 // "Bad response" #define T_UNKNOWN_FUNCTION 1043 // "Unknown function" #define T_UNKNOWN_ERROR_CODE 1044 // "Unknown error code" #define T_CANT_CREATE_SDR_THR 1045 // "Can't create SDR thread\n" #define T_WAIT_FOR_SDR_THR 1046 // "Waiting for SDR thread" #define T_QSO_REQ_FROM_SP 1047 // " QSO request from S&P " #define T_QSO_REQ_SENT 1048 // " QSO request sent to RUN " #define T_GO 1049 // " GO! " #define T_LOCATION_UNKNOWN 1050 // "Location unknown" #define T_DEGREE 1051 // "deg" #define T_SKED_FORMAT 1052 // "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s" #define T_CANT_OPEN_FILE_S_S 1053 // "Can't open file '%s': %s" #define T_CANT_OPEN_SOUND_PIPE 1054 // "Can't open sound pipe" #define T_INIT_SSB_CQ 1055 // "Initializing SSB CQ" #define T_FREE_SSB_CQ 1056 // "Terminating SSB CQ" #define T_NO_FILE 1057 // "No file specified" #define T_UNSUP_CHANNELS 1058 // "Unsupported number of channels = %d" #define T_FLOAT_UNSUPP 1059 // "Float point files are not supported" #define T_CANT_OPEN_DSP_PLAY 1060 // "Can't open DSP %s for playing" #define T_REC_DISABLED 1061 // "recording disabled" #define T_CONTEST_TOO_OLD 1062 // "contest too old" #define T_NO_FREE_DISK_SPACE 1063 // "Not enough free disk space for %s: %d<%d (MiB)" #define T_ERROR_WRITING_FILE 1064 // "Error writing file %s: %s" #define T_CANT_OPEN_DSP_REC 1065 // "Can't open DSP %s for recording" #define T_NO_DISK_SPACE 1066 // "Not enough free disk space for file" #define T_CANT_PLAY_FILE 1067 // "Can't play file %s - %s" #define T_CANT_WRITE_SS 1068 // "Can't write to file %s - %s" #define T_NO_LAST_SAMPLE_RECORDED 1069 // "No last sample recorded" #define T_NO_MACRO_IN_TEMPLATE 1070 // "No macro %% in SSBD template" #define T_NEW_WINDOWS_3 1071 // "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n" #define T_ENTER_TO_DXC2 1072 // "*** Press ENTER to connect to DXC ***" #define T_LOADING_S 1073 // "Loading %s" #define T_INVALID_WINDOW_TYPE 1074 // "invalid window type %d\n" #define T_INIT_RIG 1075 // "Initializing rig control %d" #define T_RIG_ERROR 1076 // "Rig error: %s (%s)" #define T_CANT_CREATE_RIG_THREAD 1077 // "Can't create trig thread\n" #define T_FREE_RIG 1078 // "Terminating rig control %d" #define T_WAIT_FOR_RIG_THR 1079 // "Waiting for rig thread" #define T_INVALID_PARAM 1080 // "Invalid param." #define T_RIG_INVALID_CONFIG 1081 // "Invalid config." #define T_RIG_NOT_ENOUGH_MEM 1082 // "Not enough mem." #define T_RIG_NOT_IMPLEMENTED 1083 // "Not implemented" #define T_RIG_COMM_TIMEOUT 1084 // "Comm. timeout" #define T_RIG_IO_ERROR 1085 // "IO error" #define T_RIG_INTERNAL_ERROR 1086 // "Internal error" #define T_PROTOCOL_ERROR 1087 // "Protocol error" #define T_RIG_COMMAND_REJECT 1088 // "Command reject." #define T_RIG_ARG_TRUNCATED 1089 // "Arg. truncated" #define T_RIG_F_NOT_AVAILABLE 1090 // "F not available" #define T_RIG_VFO_NOT_TARGET 1091 // "VFO not target." #define T_RIG_ERROR_ON_BUS 1092 // "Error on bus" #define T_RIG_BUS_COLLISION 1093 // "Bus collision" #define T_RIG_INVALID_ARG 1094 // "Invalid arg." #define T_RIG_INVALID_VFO 1095 // "Invalid VFO" #define T_RIG_ARG_OUT_OF_DOM 1096 // "Arg out of dom." #define T_ERROR_D 1097 // "Error %d" #define T_CANT_SET_GRAPHICS1 1098 // "Can't set graphics mode (SDL_Init)" #define T_CANT_SET_GRAPHICS2 1099 // "Can't set graphics mode" #define T_WAIT_SDL_THR 1100 // "Waiting for SDL event thread" #define T_FREE_GRAPHICS 1101 // "Terminating graphics" #define T_CANT_GET_LIST_OF_CONTESTS 1102 // "Can't get list of contests: %s" #define T_CANT_GET_UPLOAD_FORM 1103 // "Can't get upload form: %s" #define T_CANT_READ_LOG_FILE 1104 // "Can't read log file %s" #define T_CANT_UPLOAD_LOG 1105 // "Can't upload log: %s" #define T_CANT_CONFIRM_LOG 1106 // "Can't confirm log: %s" #define T_CANT_GET_CLAIMED_SCORES 1107 // "Can't get claimed scores: %s" #define T_ANT_OPEN_DSP_PLAY 1108 // "an't open DSP %s for playing" #define T_CALL2 1109 // "Call:" #define T_QTH 1110 // "QTH:" #define T_DATE3 1111 // "Date:" #define T_QSOS2 1112 // "QSOs:" #define T_POINTS2 1113 // "Points:" #define T_WWLS 1114 // "WWLs:" #define T_DXCCS 1115 // "DXCCs:" #define T_AVG2 1116 // "AVG:" #define T_PTSQSO 1117 // "pts/qso" #define T_TOP_10_CALLS 1118 // "Top 10 calls" #define T_OPERATOR2 1119 // "Operator" #define T_MODE2 1120 // "Mode" #define T_TOP_10_WWLS 1121 // "Top 10 WWLs" #define T_CANT_UPLOAD_FILE_S 1122 // "Can't upload file: %s" #define T_CANT_UPLOAD_PAGE_WIKI_RET 1123 // "Can't upload page, wiki returns: %s" #define T_FILE_ALREADY_EXISTS 1124 // "File already exists: %s" #define T_CANT_UPLOAD_PAGE_RET 1125 // "Can't upload page, wiki returns result: %s" #define T_CANT_EDIT_PAGE 1126 // "Can't edit page: %s" #define T_CANT_EDIT_PAGE_RET 1127 // "Can't edit page, wiki returns: %s" #define T_CANT_EDIT_PAGE_RET2 1128 // "Can't edit page, wiki returns result: %s" #define T_EDITING_CONTEST_PAGE 1129 // "Editing contest page..." #define T_ALL_DONE 1130 // "All done." #define T_UPLOADING_FILE 1131 // "Uploading file %s..." #define T_UNKNOWN_FILE_FOR_UPLOAD 1132 // "Unknown file for upload: %s" #define T_CANT_QUERY_EDIT_TOKEN 1133 // "Can't query edit token: %s" #define T_CANT_QUERY_EDIT_TOKEN_RET 1134 // "Can't query edit token, wiki returns: %s" #define T_QUERYING_EDIT_TOKEN 1135 // "Querying edit token" #define T_CANT_LOGIN 1136 // "Can't log in (2): %s" #define T_CANT_LOGIN2 1137 // "Can't log in (2), wiki says: %s" #define T_CANT_LOGIN1 1138 // "Can't log in (1): %s" #define T_LOGGING_IN 1139 // "Logging in..." #define T_EXPORTING_FILES 1140 // "Exporting files..." #define T_INIT_WIZZ 1141 // "Initializing contest wizard" #define T_FREE_WIZZ 1142 // "Terminating contest wizard" #define T_LOAD_WIZZ_DATA 1143 // "Loading contest wizard data" #define T__N_TEXTS 1144 // number of texts tucnak-4.04/src/hf.c0000644000175000017500000003446712500052574011215 00000000000000/* hf.c - functions (mostly statistics) for HF contests Copyright (C) 2010-2012 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "dwdb.h" #include "dxc.h" #include "excdb.h" #include "hf.h" #include "kbdbind.h" #include "menu.h" #include "qsodb.h" #include "tsdl.h" #include "session.h" #include "ssbd.h" #include "stats.h" #include "subwin.h" #include "terminal.h" #define QSOBOUND 6 #define LASTQSO 10 #define QSOH (LASTQSO-QSOBOUND) #define RATEBOUND 45 #define LASTBOUND 71 #define BANDS 6 #define DXCWIDTH 23 #define DXCBOUND (LASTQSO+1) int sw_hf_kbd_func(struct subwin *sw, struct event *ev, int fw){ switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_DOWN: sw->cur++; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_UP: sw->cur--; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_HOME: sw->cur = 1; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_END: if (!aband) return 1; sw->cur = ctest->allqsos->len; sw_hf_check_bounds(sw); redraw_later(); return 1; case ACT_ENTER: if (!aband) return 1; sw_hf_check_bounds(sw); if (aband->readonly) { errbox(VTEXT(T_BAND_RO), 0); return 1; } if (sw->cur==0) break; edit_qso(get_gqso(aband, sw, sw->cur-1)); return 1; case ACT_CALLINFO: if (sw->cur==0) break; call_info(get_gqso(aband, sw, sw->cur-1)); return 1; case ACT_INSERT: if (sw->offset2 > 0) sw->offset2--; redraw_later(); return 1; case ACT_DELETE: /*if (sw->offset2 < QSOBOUND - 1)*/ sw->offset2++; // TODO limit ? redraw_later(); return 1; case ACT_PLAY_LAST: #ifdef HAVE_SNDFILE ssbd_play_last_sample(gssbd, get_gqso(aband, sw, sw->cur-1)); #endif break; } return 0; } int sw_hf_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_hf_redraw(struct subwin *sw, struct band *band, int flags){ int i,j,x,y,col,idx, x0, y0; int bi; struct band *bands[BANDS]; char s[256], t[256]; char *c; char *hf_modes[] = {"???", "SSB", " CW", "MIX", "MIX", " AM", "FM", "RTY", "STV", "ATV"}; int nqsos=0, nqsop=0;//, nmult=0; int ntotal = 0; struct spotband *sband; // frames for (i=0; i<=LASTQSO;i++) { clip_char(sw, RATEBOUND, i, ATTR_FRAME|COL_NORM|179); clip_char(sw, LASTBOUND, i, ATTR_FRAME|COL_NORM|179); } for (i=0; ih) set_char(sw->x-1, sw->y + QSOBOUND, ATTR_FRAME|COL_NORM|195); clip_char(sw, RATEBOUND, QSOBOUND, ATTR_FRAME|COL_NORM|180); // excs if (aband && excdb){ int l, maxl = 0; // struct miss_struct ms; // miss_compute_ms(&ms, aband); x = 0; y = - sw->offset2; for (i=0; ivexcia->len; i++){ c = (gchar *)z_ptr_array_index(excdb->vexcia, i); l = strlen(c); if (l > maxl) maxl = l; } for (i=0; ivexcia->len; i++){ c = (gchar *)z_ptr_array_index(excdb->vexcia, i); if (x + maxl > RATEBOUND) { x = 0; y++; if (y==QSOBOUND) break; } if (g_hash_table_lookup_extended(aband->stats->excs, c, NULL, NULL) == FALSE){ clip_printf(sw, x, y, COL_NORM, c); } x += maxl + 1; } // z_ptr_array_free_all(ms.ia); } // bands prepare i = 0; memset(bands, 0, sizeof(bands)); if (ctest){ for (bi = ctest->bands->len - 1; bi >= 0; bi--){ struct band *b = (struct band *)g_ptr_array_index(ctest->bands, bi); bands[i++] = b; if (i==BANDS) break; } } // bands stats if (ctest) clip_printf(sw, RATEBOUND+3, 0 , COL_NORM, VTEXT(T_HF_RATE), ctest->qso_per_10 * 6, ctest->qso_per_60); else clip_printf(sw, RATEBOUND+3, 0 , COL_NORM, VTEXT(T_HF_RATE), 0, 0); clip_printf(sw, RATEBOUND+1, 1 , COL_NORM, VTEXT(T_HF_BAND)); for (i=0; i<6;i++){ struct band *b = bands[i]; if (!b) continue; safe_strncpy0(s, b->bandname, sizeof(s)); c = strchr(s, ' '); if (c != NULL) *c='\0'; j = strlen(s); if (j > 0 && toupper(s[j-1]) == 'M') s[j-1] = '\0'; clip_printf(sw, RATEBOUND+4-strlen(s), i+2, COL_NORM, s); nqsos += b->stats->nqsos; nqsop += b->stats->nqsop; clip_printf(sw, RATEBOUND+6, i+2, COL_NORM, "%4d %5d %4d", b->stats->nqsos, b->stats->nqsop, b->stats->nmult); } clip_printf(sw, RATEBOUND+1, i+2, COL_NORM, VTEXT(T_HF_SUM)); clip_printf(sw, RATEBOUND+6, i+2, COL_NORM, "%4d %5d %4d", nqsos, nqsop, ctest?ctest->allb_nmult:0); clip_printf(sw, RATEBOUND+1, i+3, COL_NORM, VTEXT(T_HF_SCORE)); /*t ntotal = st->ntotal; if (ctest->qsoglob)*/ if (ctest) ntotal = ctest->allb_ntotal; if (ntotal >= 1000000) sprintf(s, "%d %03d %03d", ntotal / 1000000, (ntotal % 1000000) / 1000, ntotal % 1000); else if (ntotal >= 1000) sprintf(s, "%d %d", ntotal / 1000, ntotal % 1000); else sprintf(s, "%d", ntotal); clip_printf(sw, LASTBOUND - 1 - strlen(s), i+3, COL_NORM, s); // qsos if (ctest){ // y0 = 0; /* if (ctest->allqsos->len+1 <= QSOH) y0 = LASTQSO - (ctest->allqsos->len+1) + 1; */ for (i=0;iallqsos->len + 0 - QSOH + i - sw->offset; if (idx < 0 || idx >= ctest->allqsos->len){ clip_printf(sw, 1, y, COL_NORM, "~"); continue; } col = /*idx == sw->cur - 1? COL_INV :*/ COL_NORM; //clip_printf(sw, LASTBOUND+2, y, COL_NORM, "i=%d y=%d idx=%d cur=%d", i, y, idx, sw->cur); q = (struct qso *)g_ptr_array_index(ctest->allqsos, idx); if (y<=QSOBOUND) continue; safe_strncpy0(s, q->band->bandname, sizeof(s)); c = strchr(s, ' '); if (c != NULL) *c='\0'; j = strlen(s); if (j > 0 && toupper(s[j-1]) == 'M') s[j-1] = '\0'; clip_printf(sw, 4-strlen(s), y, col, s); clip_printf(sw, 5, y, col, hf_modes[q->mode%10]); s[0]=q->time_str[0]; s[1]=q->time_str[1]; s[2]=':'; s[3]=q->time_str[2]; s[4]=q->time_str[3]; s[5]='\0'; clip_printf(sw, 9, y, col, s); if (q->error) safe_strncpy0(s, "ERROR", 20); else safe_strncpy0(s, q->callsign, 20); clip_printf(sw, 15, y, col, s); strcpy(t, ""); if (ctest->qsoused > 0) { strcat(t, " "); strcat(t, q->qsonrr); } if (*q->exc) { strcat(t, " "); strcat(t, q->exc); } if (*q->locator) { strcat(t, " "); strcat(t, q->locator); } safe_strncpy0(s, t, 11); clip_printf(sw, 33-strlen(s), y, col, s); sprintf(t, "%d", q->qsop); safe_strncpy0(s, t, 2); clip_printf(sw, 39-strlen(s), y, col, s); if (q->new_ & NEW_MULT) clip_printf(sw, 41, y, col, "*"); if (i==ctest->allqsos->len - 1){ // last QSO s[0]=q->time_str[0]; s[1]=q->time_str[1]; s[2]=':'; s[3]=q->time_str[2]; s[4]=q->time_str[3]; s[5]='\0'; strcpy(t, "(n/a)"); if (ctest->lastmultqso){ t[0]=ctest->lastmultqso->time_str[0]; t[1]=ctest->lastmultqso->time_str[1]; t[2]=':'; t[3]=ctest->lastmultqso->time_str[2]; t[4]=ctest->lastmultqso->time_str[3]; t[5]='\0'; } clip_printf(sw, LASTBOUND+2, 0, COL_NORM, VTEXT(T_HF_LAST), s, t); } if (idx == sw->cur -1) { for (j = 0; j < RATEBOUND; j++) clip_color(sw, j, y, COL_INV); } } } //DXCC if (gses->adwi){ clip_printf(sw, LASTBOUND+2, 1, COL_NORM, "%02d %s %s", gses->adwi->waz, gses->adxc, gses->adwi->dxcname); } if (gses->qs_master && *gses->qs_master) clip_printf(sw, 0, LASTQSO+1, COL_NORM, "%s", gses->qs_master); // else clip_printf(sw, 1, LASTQSO+2, COL_NORM, "empty"); // clip_char(sw, LASTBOUND+5, 8, FRAME|COL_NORM|179); if (gses->asunriseset){ clip_printf(sw, LASTBOUND+2, 8, COL_NORM, "%11s", gses->asunriseset); } clip_char(sw, LASTBOUND+14, 8, ATTR_FRAME|COL_NORM|179); if (spotdb && spotdb->sfi > 0){ clip_printf(sw, LASTBOUND+16, 8, COL_NORM, "SFI=%d", spotdb->sfi); } if (gses->adwi){ sprintf(s, "%d km, %d", gses->aqrb, gses->aqtf); clip_printf(sw, LASTBOUND+2, 9, COL_NORM, s); #ifdef Z_HAVE_SDL if (sdl){ int xx = sw->x + LASTBOUND+2+strlen(s); if (xx < sw->x + sw->w) print_text(xx, sw->y + 9, -1, "", COL_NORM); } else #endif { clip_printf(sw, LASTBOUND + 2 + strlen(s), 9, COL_NORM, " deg"); } } // dxc sband = get_actual_spotband(); if (sband && sw->h >= DXCBOUND && sband->freq->len > 0){ struct spot *spot; time_t now; int idx; if (!sband) return; idx = sband->current; now = time(NULL); x0 = ((sw->w / DXCWIDTH) / 2 ) * DXCWIDTH; y0 = DXCBOUND + (sw->h - DXCBOUND) / 2; x = x0; y = y0; if (idx >= 0 && idx < sband->freq->len){ spot = (struct spot *)z_ptr_array_index(sband->freq, idx); sw_hf_draw_spot(sw, x, y, spot, now, COL_INV); } y--; idx++; while (x < sw->w && idx < sband->freq->len){ if (y == DXCBOUND){ y = sw->h - 1; x += DXCWIDTH; } spot = (struct spot *)z_ptr_array_index(sband->freq, idx); sw_hf_draw_spot(sw, x, y, spot, now, COL_NORM); y--; idx++; } x = x0; y = y0 + 1; idx = sband->current - 1; while (x >= 0 && idx >= 0){ if (y == sw->h){ y = DXCBOUND + 1; x -= DXCWIDTH; } spot = (struct spot *)z_ptr_array_index(sband->freq, idx); sw_hf_draw_spot(sw, x, y, spot, now, COL_NORM); y++; idx--; } #if 0 x = x0; y = y0; sw_hf_draw_spot(sw, x, y, spotdb->cur[aband->bi], COL_INV); y--; if (spotdb->cur[aband->bi]) spot=spotdb->cur[aband->bi]->prev; else spot=NULL; while (x >= 0){ if (!spot) break; if (y==DXCBOUND){ y = sw->h - 1; x -= DXCWIDTH; } if (get_qso_by_callsign(aband, spot->callsign)==NULL) sw_hf_draw_spot(sw, x, y, spot, COL_NORM); spot=spot->prev; y--; } if (spotdb->cur[aband->bi]) spot=spotdb->cur[aband->bi]->next; else spot=NULL; x = x0; y = y0 + 1; while (x < sw->w){ if (!spot) break; if (y == sw->h){ y = DXCBOUND + 1; x += DXCWIDTH; } if (get_qso_by_callsign(aband, spot->callsign)==NULL) sw_hf_draw_spot(sw, x, y, spot, COL_NORM); spot=spot->next; y++; } #endif } } void sw_hf_draw_spot(struct subwin *sw, int x, int y, struct spot *spot, time_t now, int acolor){ char raw[20]; int col; if (!spot){ clip_printf(sw, x, y, acolor, "%-*s", DXCWIDTH, "~"); return; } col = COL_NORM; if (now < spot->endbold) col = COL_WHITE; if (acolor == COL_INV){ if (col == COL_NORM) col = COL_INV; else col |= COL_INV; } clip_printf(sw, x, y, col, "%10.1f", spot->qrg); z_get_raw_call(raw, spot->callsign); col = sw_dxc_color(raw); // color from raw call but print whole call if (acolor == COL_INV) { if (col == COL_NORM) col = COL_INV; else col |= COL_INV; } clip_printf(sw, x + 10, y, col, " %-10s", spot->callsign); if (dxc_new_mult(spot->callsign)){ clip_printf(sw, x + 10, y, col, "!"); } } void sw_hf_check_bounds(struct subwin *sw){ int len; if (!aband) return; /*dbg("sw_qsos_check_bounds cur=%d, offset=%d ", sw->cur, sw->offset);*/ len = ctest->allqsos->len; if (sw->cur < 1 ) sw->cur = 1; if (sw->cur > len) sw->cur = len; if (sw->cur > len - sw->offset -1 ){ sw->offset = len - sw->cur; } if (sw->cur < len - QSOH + 1 - sw->offset){ sw->offset = len - QSOH - sw->cur + 1; } if (sw->offset < 0) sw->offset=0; } void sw_hf_raise(struct subwin *sw){ } void get_hf_dxc(char *str){ struct dw_item *dwi; static char dxcc[25]; double myh, myw, qrb, qtf; dwi = get_dw_item_by_call(dw, str); if (!dwi) return; gses->adwi = dwi; get_dxcc(dw, dxcc, str); gses->adxc = dxcc; zg_free0(gses->asunriseset); gses->asunriseset = zsun_strdup_riseset(time(NULL), dwi->latitude, dwi->longitude); if (ctest){ myh=qth(ctest->pwwlo, 0); myw=qth(ctest->pwwlo, 1); }else{ myh=qth(cfg->pwwlo, 0); myw=qth(cfg->pwwlo, 1); } hw2qrbqtf(myh, myw, dwi->longitude*M_PI/180.0, dwi->latitude*M_PI/180.0, &qrb, &qtf); //g_addf("%s %f %f %f %f %f %f", cfg->pwwlo, myh, myw, dwi->longitude*MY_PI/180.0, dwi->latitude*MY_PI/180.0, &qrb, &qtf); gses->aqrb = (int)qrb; gses->aqtf = (int)((qtf*180.0)/M_PI); } tucnak-4.04/src/scope.c0000644000175000017500000001265512356713742011736 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2009 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fft.h" #include "qsodb.h" #include "scope.h" #include "tsdl.h" #include "ssbd.h" #include "subwin.h" #include "terminal.h" #ifdef Z_HAVE_SDL /* only EV_KBD */ int sw_scope_kbd_func(struct subwin *sw, struct event *ev, int fw){ SDL_Rect area; if (!sdl) return 0; switch (ev->x){ case ' ': sw->scope_mode++; if (sw->scope_mode == 4) sw->scope_mode = 0; area.x = 0; area.y = 0; area.w = sw->screen->w; area.h = sw->screen->h; SDL_FillRect(sw->screen, &area, z_makecol(0, 0, 0)); break; } return 0; } int sw_scope_mouse_func(struct subwin *sw, struct event *ev, int fw){ if (!sdl) return 0; return 0; } void sw_scope_redraw(struct subwin *sw, struct band *band, int flags){ SDL_Rect area; int i, y, y0, a, c, x; int oy0=0, oy1=0; //static int ssr = 0; if (!sdl) return; fill_area(sw->x, sw->y, sw->w, sw->h, 0); //dbg("sw_scope_redraw(gdirty=%d) scope_show=%d pixel=%d\n", sw->gdirty, gssbd->scope_show, z_getpixel(sw->screen, 0, 0)); if (!sw->gdirty) return; sw->gdirty=0; #ifdef USE_FFT if (sw->scope_mode == 3){ //fill_area(sw->x, sw->y, sw->w, sw->h, 0); sw_fft_redraw(sw, flags); return; } #endif #ifdef HAVE_SNDFILE if (!gssbd->scope_show) { //fill_area(sw->x, sw->y, sw->w, sw->h, 0); return; } #endif area.x = 0; area.y = 0; area.w = sw->screen->w; area.h = sw->screen->h; SDL_FillRect(sw->screen, &area, z_makecol(0, 0, 0)); #ifdef HAVE_SNDFILE if (gssbd->channels == 1){ int avg = 0; c = gssbd->recording ? sdl->red : sdl->green; y0 = sw->screen->h / 2; a = sw->screen->h / 2 - 1; for (i=0; iscope_samples; i++){ avg += gssbd->scope_buf[i]; } avg /= gssbd->scope_samples; for (i=0; iscope_samples; i++){ if (i==sw->screen->w) break; y = ((int)(gssbd->scope_buf[i] - avg) * (int)a) / 32768; //y = (int)(log((double)(fabs(gssbd->scope_buf[i] - avg))) * a / log(32768.0)); switch(sw->scope_mode){ case 0: z_line(sw->screen, i, y0+y, i, y0-y, c); break; case 1: z_putpixel(sw->screen, i, y0-y, c); break; case 2: if (i==0){ oy0 = y0-y; break; } z_line(sw->screen, i-1, oy0, i, y0-y, c); z_putpixel(sw->screen, i-1, y0, sdl->gr[10]); oy0 = y0-y; break; } z_putpixel(sw->screen, i, y0, sdl->gr[10]); } //zsdl_printf(sw->screen, 20, 0, sdl->gr[15], 0, 0, "%d", ssr++); //z_putpixel(sw->screen, 0, 0, z_makecol(255, 255, 255)); } if (gssbd->channels == 2){ c = gssbd->recording ? sdl->red : sdl->green; y0 = sw->screen->h / 4; a = sw->screen->h / 4 - 1; for (i=0, x=0; iscope_samples; i+=2, x++){ if (x==sw->screen->w) break; y = ((int)gssbd->scope_buf[i] * (int)a) / 32768; switch(sw->scope_mode){ case 0: z_line(sw->screen, x, y0+y, x, y0-y, c); break; case 1: z_putpixel(sw->screen, x, y0-y, c); break; case 2: if (x==0){ oy0 = y0-y; break; } z_line(sw->screen, x-1, oy0, x, y0-y, c); z_putpixel(sw->screen, x-1, y0, sdl->gr[10]); oy0 = y0-y; break; } z_putpixel(sw->screen, x, y0, sdl->gr[10]); } y0 = (sw->screen->h * 3)/ 4; for (i=1, x=0; iscope_samples; i+=2, x++){ if (x==sw->screen->w) break; y = ((int)gssbd->scope_buf[i] * (int)a) / 32768; switch(sw->scope_mode){ case 0: z_line(sw->screen, x, y0+y, x, y0-y, c); break; case 1: z_putpixel(sw->screen, x, y0-y, c); break; case 2: if (x==0){ oy1 = y0-y; break; } z_line(sw->screen, x-1, oy1, x, y0-y, c); z_putpixel(sw->screen, x-1, y0, sdl->gr[10]); oy1 = y0-y; break; } z_putpixel(sw->screen, x, y0, sdl->gr[10]); } //z_putpixel(sw->screen, 0, 0, z_makecol(255, 255, 255)); } gssbd->scope_show = 0; #endif } void sw_scope_check_bounds(struct subwin *sw){ if (!sdl) return; if (!aband) return; } void sw_scope_raise(struct subwin *sw){ sw->gdirty=1; } void sw_scope_clear_scopes(){ int i; for (i = 0; i < gses->subwins->len; i++){ struct subwin *sw = (struct subwin*)g_ptr_array_index(gses->subwins, i); if (sw->type != SWT_SCOPE) continue; SDL_FillRect(sw->screen, NULL, z_makecol(0, 0, 0)); } #ifdef USE_FFT if (gfft && gfft->screen){ MUTEX_LOCK(gfft->screen); SDL_FillRect(gfft->screen, NULL, z_makecol(0, 0, 0)); MUTEX_UNLOCK(gfft->screen); } #endif } #else int sw_scope_kbd_func(struct subwin *sw, struct event *ev, int fw){ return 0; } int sw_scope_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_scope_redraw(struct subwin *sw, struct band *band, int flags){ } void sw_scope_check_bounds(struct subwin *sw){ } void sw_scope_raise(struct subwin *sw){ } void sw_scope_clear_scopes(){ } #endif tucnak-4.04/src/fft.c0000644000175000017500000003647512460207027011400 00000000000000/* fft.c - fast fourier transform using libfftw3 Copyright (C) 2009-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef USE_SDR #include "fft.h" #include "language2.h" #include "rc.h" #include "tsdl.h" #include "subwin.h" #define sqr(x) ((x)*(x)) /* VE3NEA: Gain := (1 - Exp(-(0.2 * NewSpectrum[i]))); FilteredSpectrum[i] := FilteredSpectrum[i] * (1-Gain) + NewSpectrum[i] * Gain; */ struct fft *gfft; #ifdef BLUEPAL int bluepal[3*256] = { 0,0,0, 23,23,65, 29,29,68, 36,36,71, 40,40,74, 43,43,77, 46,46,80, 50,50,82, 51,51,85, 55,55,87, 56,56,89, 59,59,92, 60,60,94, 63,63,96, 64,64,98, 65,65,99, 68,68,101, 69,69,103, 70,70,105, 72,72,106, 74,74,108, 74,74,110, 75,75,111, 78,78,113, 78,78,114, 79,79,116, 80,80,117, 82,82,118, 83,83,120, 84,84,121, 86,86,122, 87,87,124, 88,88,125, 88,88,126, 89,89,127, 91,91,128, 92,92,129, 92,92,131, 93,93,132, 94,94,133, 96,96,134, 97,97,135, 97,97,136, 97,97,137, 98,98,138, 100,100,139, 101,101,140, 102,102,141, 102,102,142, 103,103,142, 105,105,143, 105,105,144, 106,106,145, 106,106,146, 107,107,147, 109,109,147, 110,110,148, 110,110,149, 111,111,150, 111,111,150, 112,112,151, 114,114,152, 114,114,153, 115,115,153, 115,115,154, 116,116,155, 117,117,155, 117,117,156, 119,119,156, 120,120,157, 120,120,158, 120,120,158, 121,121,159, 123,123,159, 124,124,160, 124,124,160, 125,125,161, 125,125,161, 126,126,162, 128,128,162, 128,128,163, 129,129,163, 129,129,164, 129,129,164, 130,130,165, 131,131,165, 133,133,165, 133,133,166, 134,134,166, 134,134,167, 135,135,167, 135,135,167, 137,137,168, 138,138,168, 139,139,168, 139,139,169, 139,139,169, 140,140,169, 142,142,169, 142,142,170, 143,143,170, 143,143,170, 143,143,170, 144,144,171, 145,145,171, 147,147,171, 147,147,171, 148,148,171, 148,148,172, 148,148,172, 149,149,172, 151,151,172, 152,152,172, 152,152,172, 153,153,172, 153,153,172, 153,153,173, 154,154,173, 156,156,173, 157,157,173, 157,157,173, 157,157,173, 158,158,173, 158,158,173, 160,160,173, 161,161,173, 162,162,173, 162,162,173, 162,162,173, 163,163,173, 163,163,173, 165,165,173, 166,166,173, 166,166,173, 166,166,172, 167,167,172, 168,168,172, 168,168,172, 170,170,172, 171,171,172, 171,171,172, 171,171,172, 172,172,171, 174,174,171, 174,174,171, 175,175,171, 176,176,171, 176,176,170, 176,176,170, 177,177,170, 179,179,170, 179,179,169, 180,180,169, 180,180,169, 180,180,168, 181,181,168, 182,182,168, 184,184,168, 184,184,167, 185,185,167, 185,185,166, 185,185,166, 186,186,166, 188,188,165, 189,189,165, 189,189,164, 190,190,164, 190,190,164, 190,190,163, 191,191,163, 193,193,162, 194,194,162, 194,194,161, 194,194,161, 195,195,160, 195,195,160, 196,196,159, 198,198,159, 199,199,158, 199,199,157, 199,199,157, 200,200,156, 200,200,156, 202,202,155, 203,203,154, 204,204,154, 204,204,153, 204,204,152, 205,205,152, 205,205,151, 207,207,150, 208,208,149, 208,208,149, 208,208,148, 209,209,147, 211,211,146, 211,211,146, 212,212,145, 213,213,144, 213,213,143, 213,213,142, 214,214,141, 216,216,140, 216,216,139, 217,217,139, 217,217,138, 218,218,137, 218,218,136, 219,219,135, 221,221,134, 221,221,132, 222,222,131, 222,222,130, 223,223,129, 223,223,128, 225,225,127, 226,226,126, 226,226,125, 227,227,123, 227,227,122, 228,228,121, 228,228,119, 230,230,118, 231,231,117, 231,231,115, 231,231,114, 232,232,112, 233,233,111, 233,233,109, 235,235,108, 236,236,106, 236,236,104, 236,236,103, 237,237,101, 239,239,99, 239,239,97, 240,240,95, 241,241,93, 241,241,91, 241,241,89, 242,242,87, 244,244,84, 245,245,82, 245,245,79, 245,245,77, 246,246,74, 246,246,71, 247,247,67, 249,249,64, 250,250,60, 250,250,56, 250,250,51, 251,251,45, 255,0,0, 255,255,0, 0,255,0, }; #endif struct fft *init_fft(void){ struct fft *fft = NULL; #ifdef ZIAPAL int f, r; #endif int i, j; if (!sdl) return NULL; progress(VTEXT(T_INIT_FFT)); fft = g_new0(struct fft, 1); fft->n = -1; fft->dynrin = NULL; j=0; #ifdef ZIAPAL for (i = 128; i < 256; i++){ r = (i-128)*2; f = 255 - r; fft->pal[j++] = z_makecol(0, 0, r); } for (i = 256; i < 512; i++){ r = i - 256; f = 255 - r; fft->pal[j++] = z_makecol(0, r, 255); } for (i = 512; i < 768; i++){ r = i - 512; f = 255 - r; fft->pal[j++] = z_makecol(r, 255, f); } for (i = 768; i < 1024-32; i++){ r = i - 768; f = 255 - r; fft->pal[j++] = z_makecol(255, f, 0); } if (j != FFT_COLORS) { //dbg("j=%d\n", j); zinternal("bad fft color number, please fix"); } #endif #ifdef BLUEPAL for (i = 0; i < 256; i++) fft->pal[i] = z_makecol(bluepal[i * 3], bluepal[i * 3 + 1], bluepal[i * 3 + 2]); #endif MUTEX_INIT(fft->screen); return fft; } void free_fft(struct fft *fft){ if (!fft) return; progress(VTEXT(T_FREE_FFT)); fftw_destroy_plan(fft->plan); fftw_free(fft->allocrin); fftw_free(fft->alloccout); g_free(fft->amp); if (fft->screen) SDL_FreeSurface(fft->screen); MUTEX_FREE(fft->screen); g_free(fft); } void fft_start(struct fft *xyzzz, int n, int samplerate){ //dbg("fft_start(%d)\n", n); if (!xyzzz) return; //dbg("fft_start(%d) ch=%d\n", n, dsp->channels); if (n != xyzzz->n){ // dbg(" realloc %d->%d\n", fft->n, n); xyzzz->n = n; if (xyzzz->allocrin){ fftw_destroy_plan(xyzzz->plan); fftw_free(xyzzz->allocrin); fftw_free(xyzzz->alloccout); g_free(xyzzz->amp); } /*fft->rin = (double *) fftw_malloc(sizeof(double) * fft->n + 256); // fftw_malloc seems not to add padding elements fft->cout = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * fft->n + 256);*/ xyzzz->lenrin = xyzzz->n; xyzzz->sizerin = xyzzz->lenrin * sizeof(double); xyzzz->allocrin = (double *) fftw_malloc(xyzzz->sizerin); // fftw_malloc seems not to add padding elements xyzzz->dynrin = xyzzz->allocrin; xyzzz->lencout = xyzzz->n; xyzzz->sizecout = (xyzzz->lencout + 2) * sizeof(fftw_complex); xyzzz->alloccout = (fftw_complex *) fftw_malloc(xyzzz->sizecout); xyzzz->dyncout = xyzzz->alloccout; xyzzz->plan = fftw_plan_dft_r2c_1d(xyzzz->n, xyzzz->dynrin, xyzzz->dyncout, FFTW_ESTIMATE); xyzzz->amplen = n; xyzzz->amp = g_new0(double, n * 10 /*xyzzz->amplen*/); } xyzzz->screeny = 0; xyzzz->samplerate = samplerate; //memset(fft->ma_amp, 0, sizeof(fft->ma_amp)); #ifdef USE_NEA for (i=0; inea_amp[i] = 0.0; #endif } void fft_resize(struct fft *fft, struct subwin *sw){ //dbg("fft_resize\n"); SDL_Surface *newscr, *oldscr; //fft->wf_x2 = 260; //fft->wf_x3 = 2*260; int minh = sw->h * FONT_H / 2; sw->fft_sp_h = 210; if (sw->fft_sp_h > minh) sw->fft_sp_h = minh; sw->fft_sp_y = sw->h * FONT_H - sw->fft_sp_h; sw->fft_wf_y = 0; sw->fft_wf_h = sw->fft_sp_y - FONT_H - 10; //sw->fft_sp_x2 = fft->wf_x2; //sw->fft_wf_x2 = fft->wf_x2; newscr = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W , sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_LOCK(fft->screen); oldscr = fft->screen; fft->screen = newscr; fft->screeny = 0; MUTEX_UNLOCK(fft->screen); if (oldscr) SDL_FreeSurface(oldscr); } //#define F2PX(hz) (((hz) * gfft->n) / (cfg->ssbd_samplerate)) #define F2PX(hz) (((hz) * gfft->screen->w * 2) / (gfft->samplerate)) void sw_fft_redraw(struct subwin *sw, int flags){ //dbg("sw_fft_redraw\n"); int i, x = 0, y, sp_y, amp, x2, oldx; SDL_Rect src, dst; MUTEX_LOCK(gfft->screen); if (gfft->screeny <= 0){ MUTEX_UNLOCK(gfft->screen); return; } y = gfft->screeny; gfft->screeny = 0; MUTEX_LOCK(sw->screen); // move old screen src.x = 0; src.y = sw->fft_wf_y + y; src.w = sw->screen->w; src.h = sw->fft_wf_h - y; dst.x = 0; dst.y = sw->fft_wf_y; dst.w = sw->screen->w; dst.h = sw->fft_wf_h - y; SDL_BlitSurface(sw->screen, &src, sw->screen, &dst); // add new data src.x = 0; src.y = 0; src.w = gfft->screen->w; src.h = y; dst.x = 0; dst.y = sw->fft_wf_y + sw->fft_wf_h - y; dst.w = sw->screen->w; dst.h = y; SDL_BlitSurface(gfft->screen, &src, sw->screen, &dst); // clear background under spectral lines dst.x = 0; dst.w = sw->screen->w; dst.y = sw->fft_sp_y; dst.h = sw->fft_sp_h; SDL_FillRect(sw->screen, &dst, 0); for (i = 100; i <= gfft->samplerate / 2; i += 100){ x = F2PX(i); if (x > sw->w * FONT_W - 1) break; z_line(sw->screen, x, sw->fft_wf_h + 2, x, sw->fft_wf_h + 5, sdl->gr[10]); } x2 = x; for (i = 0; i <= gfft->samplerate / 2; i += 1000){ x = F2PX(i); if (x > sw->w * FONT_W - 1) break; z_line(sw->screen, x, sw->fft_wf_h + 1, x, sw->fft_sp_y - FONT_H , sdl->gr[10]); zsdl_printf(sw->screen, x, sw->fft_sp_y - FONT_H, sdl->gr[10], 0, ZFONT_CENTERX, "%dk", i / 1000); } z_line(sw->screen, F2PX(0), sw->fft_wf_h + 1, x2, sw->fft_wf_h + 1, sdl->gr[10]); // draw spetral lines sp_y = sw->fft_sp_y + sw->fft_sp_h - 1; oldx = -1; for (i=0; i <= gfft->amplen; i++){ x = (i * gfft->screen->w) / (gfft->n / 2); amp = gfft->amp[i] * (sw->fft_sp_h - 3); /*line(sw->screen, i, sp_y, i, sp_y - amp, sdl->gr[12]); amp = fft->ma_sum[i] * (sw->fft_sp_h - 3); line(sw->screen, i+fft->wf_x2, sp_y, i+fft->wf_x2, sp_y - amp, sdl->gr[12]); */ //amp = fft->nea_amp[i] * (sw->fft_sp_h - 3); //line(sw->screen, i+fft->wf_x3, sp_y, i+fft->wf_x3, sp_y - amp, sdl->gr[12]); for (; oldx <= x; oldx++) z_line(sw->screen, oldx, sp_y, oldx, sp_y - amp, sdl->gr[12]); } MUTEX_UNLOCK(sw->screen); MUTEX_UNLOCK(gfft->screen); for (i = 0; i < FFT_COLORS; i++){ z_line(sw->screen, i, 0, i, 5, gfft->pal[i]); } } //int xxi=0x100; void fft_do(struct fft *fft){ int i, col, x, oldx; //mini, maxi, oldcol; double d, e; // double mind, maxd, mine, maxe, minv, maxv; double gain; // double min, max; //dbg("fft_do(n=%d)\n", fft->n); //mini = 200000000; //maxi = -200000000; /* mind = 1e30; maxd = -1e30; mine = 1e30; maxe = -1e30; minv = 1e30; maxv = -1e30; */ #if 0 for (i=0; in; i++){ fft->dynrin[i]=0.6 * cos((i* 1000.0 *2*M_PI)/cfg->ssbd_samplerate) + 0.1 * cos((i* 2000.0 *2*M_PI)/cfg->ssbd_samplerate) + 0.1 * cos((i* 3000.0 *2*M_PI)/cfg->ssbd_samplerate) + //0.1 * cos((i* 4000.0 *2*Y_PI)/cfg->ssbd_samplerate) + 0; } #endif #if 0 for (i=0; in; i++){ fft->rin[i] *= 0.9; fft->rin[i] += 0.1 * cos((i* 1000.0 *2*MY_PI)/cfg->ssbd_samplerate); } #endif if (!fft->screen) return; fftw_execute(fft->plan); // dbg("%f\t%f\t%f\t%f\t%f\t%f\n", fft->cout[0], fft->cout[1], fft->cout[2], fft->cout[3], fft->cout[4], fft->cout[5]); /* for (i=0; i<6;i++){ dbg("fft->cout=%f+%fi\t", fft->cout[i][0], fft->cout[i][1]); } dbg("\n"); zinternal(""); */ /* for (i=0; in; i++){ fft->cout[i]=256; }*/ //min = DBL_MAX; //max = DBL_MIN; MUTEX_LOCK(fft->screen); //dbg("fft->n/2=%d fft->screen->w=%d\n", fft->n/2, fft->screen->w); oldx = -1; for (i = 0; i <= fft->n / 2; i++){ x = (i * fft->screen->w) / (fft->n / 2); if (x > fft->screen->w) break; d = fabs(sqrt(sqr(fft->dyncout[i][0])+sqr(fft->dyncout[i][1]))); d = d/(fft->n/2); // d is epsilon to 1.0 e = log10(d); // printf("%3d: %f\t%f\n", i, d, e); e -= log10(1.0/32768.0); // printf("e=%f %f\n", e, (log10(1.0)-log(1.0/32768.0))); e /= -log10(1.0/32768.0); if (e<0) e = 0; // slabsi signaly nez 1 bit //e /= -log10(1.0/32768.0); // col = (int)e * FFT_COLORS; /* if (dmaxd) maxd = d; if (dmaxe) maxe = e; */ /*if (col < 0) col = 0; if (col >= FFT_COLORS) col = FFT_COLORS - 1;*/ // col = xxi; if (i >= fft->amplen) break; // can happen after resize zinternal("fft->amp[%d] access (FFT_AMPLEN=%d)", i, FFT_AMPLEN); fft->amp[i] = e; col = (int)(e * (FFT_COLORS - 1.0)); //col = i < FFT_COLORS?i:FFT_COLORS-1; // dbg("d=%11.9f e=%f\n", d, e); // dbg("col=%d\n"); // if (colmaxi) maxi=col; for (; oldx <= x; oldx++) z_putpixel(fft->screen, oldx, fft->screeny, fft->pal[col]); //fft->ma_amp[fft->ma_i][i] = e; /*fft->ma_sum[i] = 0; for (j=0; jma_sum[i] += fft->ma_amp[j][i]; fft->ma_sum[i] /= FFT_MA; col = fft->ma_sum[i] * (FFT_COLORS - 1); fast_putpixel(fft->screen, i+fft->wf_x2, fft->screeny, fft->pal[col]); */ /* gain = fft->nea_amp[i]; gain *= (-log10(1.0/32738.0)); gain += log10(1.0/32768.0); gain *= log(10.0); gain = exp(gain); if (fft->nea_first) gain = 1; fft->nea_first = 0; */ gain = d; if (gain < 0.03) gain = 0.03; // dbg("gain=%f\n", gain); #ifdef USE_NEA fft->nea_amp[i] = fft->nea_amp[i] * (1-gain) + e * gain; if (fft->nea_amp[i] > max) max = fft->nea_amp[i]; if (fft->nea_amp[i] < min) min = fft->nea_amp[i]; #endif } for (i=0; i<=fft->n/2; i++){ if (i > fft->screen->w) break; // fast_putpixel(fft->screen, i, fft->screeny, fft_pal(fft->nea_amp[i], min, max)); } /* xxi++; xxi %= FFT_COLORS;*/ fft->screeny++; //fft->ma_i++; //fft->ma_i %= FFT_MA; if (fft->screeny == fft->screen->h) fft->screeny = 0; MUTEX_UNLOCK(fft->screen); // dbg("v=%f .. %f \td=%f .. %f \te=%f .. %f \tcol=%d .. %d\n", minv, maxv, mind, maxd, mine, maxe, mini, maxi); // zinternal(""); //dbg("col=%d..%d\n", mini, maxi); } int fft_pal(double amp, double min, double max){ double norm; //dbg("min=%f max=%f\n", min, max); if (min == max) return gfft->pal[0]; norm = (amp - min) / (max - min); // 5 - 4 / 7 - 4 if (norm < 0) norm = 0; if (norm > 1) norm = 1; return gfft->pal[(int)(norm*(FFT_COLORS-3))]; } #endif tucnak-4.04/src/kbdbind.c0000644000175000017500000001373512460207027012210 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "kbdbind.h" #include "kbd.h" #include "language2.h" #include "terminal.h" #include "tsdl.h" static void add_default_keybindings(void); struct keybinding { struct keybinding *next; struct keybinding *prev; int act; long x; long y; }; static struct keybinding keymaps[KM_MAX]; static void add_keybinding(int km, int act, long x, long y) { struct keybinding *kb; foreach(kb, keymaps[km]) if (kb->x == x && kb->y == y) { /* want at top of list */ del_from_list(kb); goto add; } if ((kb = g_malloc(sizeof(struct keybinding)))) { add: kb->act = act; kb->x = x; kb->y = y; add_to_list(keymaps[km], kb); } } void init_keymaps(void) { int i; for (i = 0; i < KM_MAX; i++) init_list(keymaps[i]); add_default_keybindings(); } void free_keymaps(void) { int i; //progress(VTEXT(T_TERM_KEYMAPS)); for (i = 0; i < KM_MAX; i++) { while (keymaps[i].next != &(keymaps[i])) { struct keybinding *a=(keymaps[i]).next; del_from_list(a); g_free(a); } } } int kbd_action(int kmap, struct event *ev) { struct keybinding *kb; if (ev->ev == EV_KBD) foreach(kb, keymaps[kmap]){ if (ev->x == kb->x && ev->y == kb->y) { // dbg("kbd_action=%d\n",kb->act); return kb->act; } if (kb->y & (KBD_CTRL|KBD_ALT)){ if (toupper(ev->x) == toupper(kb->x) && ev->y == kb->y) { return kb->act; } } } return -1; } /* * Default keybindings. */ struct default_kb { int act; long x; long y; }; /* !!!! CTRL needs uppercase, ALT lowercase */ static struct default_kb default_main_keymap[] = { { ACT_BACKSPACE, KBD_BS, 0 }, { ACT_BACKSPACE, KBD_BS, KBD_SHIFT }, { ACT_CALLINFO, 'i', KBD_ALT }, { ACT_CHOP, 'o', KBD_ALT }, { ACT_CLEAR_TMPQSOS, 'y', KBD_ALT }, { ACT_CLEAR_TMPQSOS_INPUTLINE, KBD_F3, 0 }, { ACT_CONFIRM_CALL, 'd', KBD_ALT }, { ACT_CONFIRM_EXC, 'e', KBD_ALT }, { ACT_CONFIRM_WWL, 'x', KBD_ALT }, { ACT_COPY_CLIPBOARD, 'C', KBD_CTRL }, { ACT_COPY_CLIPBOARD, KBD_INS, KBD_CTRL }, { ACT_CQ_0, KBD_F5, 0 }, { ACT_CQ_1, KBD_F6, 0 }, { ACT_CQ_2, KBD_F7, 0 }, { ACT_CQ_3, KBD_F8, 0 }, { ACT_CQ_4, KBD_F11, 0 }, { ACT_CQ_5, KBD_F12, 0 }, { ACT_DELETE, KBD_DEL, 0 }, { ACT_DOWN, KBD_DOWN, 0 }, { ACT_END, KBD_END, 0 }, { ACT_ENTER, KBD_ENTER, 0 }, { ACT_MAXIMIZE, KBD_F10, KBD_ALT }, { ACT_FILE_MENU, KBD_F10 }, { ACT_FIND_NEXT_BACK, 'N', 0 }, { ACT_FIND_NEXT, 'n', 0 }, { ACT_FULLSCREEN, KBD_F11, KBD_CTRL }, { ACT_GRAB_BAND, 'g', KBD_ALT }, { ACT_HOME, KBD_HOME, 0 }, { ACT_INSERT, KBD_INS, 0 }, { ACT_LEFT, KBD_LEFT, 0 }, { ACT_MENU, KBD_F9, 0 }, { ACT_MODE, 'm', KBD_ALT }, { ACT_NEXT_SUBWIN, KBD_F4, 0 }, { ACT_NEXT_SUBWIN, KBD_RIGHT, KBD_ALT }, { ACT_OPEN_NET, KBD_F3, KBD_SHIFT }, { ACT_PREV_SUBWIN, KBD_LEFT, KBD_ALT }, { ACT_PAGE_DOWN, KBD_PGDN, 0 }, { ACT_PAGE_UP, KBD_PGUP,0 }, { ACT_PLAY_LAST, 'P', KBD_CTRL }, { ACT_QUIT, KBD_F4, KBD_ALT }, { ACT_REALLYQUIT, 'q', KBD_ALT }, { ACT_RIGHT, KBD_RIGHT, 0 }, { ACT_ROTAR, 'r', KBD_ALT }, { ACT_RUNMODE, 'R', KBD_CTRL }, { ACT_RX, KBD_ESC, 0 }, { ACT_RXTX, KBD_TAB, 0 }, { ACT_SAVE_ALL, KBD_F2, 0 }, { ACT_SCREENSHOT, KBD_F1, 0 }, { ACT_SCROLL_LEFT, '[', 0 }, { ACT_SCROLL_RIGHT, ']', 0 }, { ACT_SEARCH, '/', 0 }, { ACT_SEARCH_BACK, '?', 0 }, { ACT_SEEK_A, 'A', KBD_CTRL }, { ACT_SEEK_B, 'B', KBD_CTRL }, { ACT_SKED, 's', KBD_ALT }, { ACT_SKED_QRG, 'f', KBD_ALT }, { ACT_SWAP_CALL, 'c', KBD_ALT }, { ACT_SWAP_WWL, 'v', KBD_ALT }, { ACT_TUNE, 't', KBD_ALT }, { ACT_UNFINISHED, 'u', KBD_ALT }, { ACT_UP, KBD_UP, 0 }, { ACT_WINDOWSHOT, KBD_F1, KBD_ALT }, { ACT_AC_CQ, 'j', KBD_ALT }, { ACT_ZOOMIN, '+', KBD_CTRL }, { ACT_ZOOMIN, '=', KBD_CTRL }, { ACT_ZOOMOUT, '-', KBD_CTRL }, { ACT_ZOOM0, '0', KBD_CTRL }, { 0, 0, 0 } }; static struct default_kb default_edit_keymap[] = { { ACT_LEFT, KBD_LEFT, 0 }, { ACT_RIGHT, KBD_RIGHT, 0 }, { ACT_HOME, KBD_HOME, 0 }, { ACT_END, KBD_END, 0 }, { ACT_COPY_CLIPBOARD, KBD_INS, KBD_CTRL }, { ACT_ENTER, KBD_ENTER, 0 }, { ACT_BACKSPACE, KBD_BS, 0 }, { ACT_BACKSPACE, KBD_BS, KBD_SHIFT }, { ACT_DELETE, KBD_DEL, 0 }, { ACT_KILL_LINE, 'Y', KBD_CTRL }, { ACT_PREV_HISTORY, 'p', KBD_ALT }, { ACT_NEXT_HISTORY, 'n', KBD_ALT }, { ACT_SHOW_HISTORY, 'h', KBD_ALT }, { ACT_LASTCALL_KST, 'k', KBD_ALT }, { ACT_NEWCALL_KST, 'K', KBD_CTRL }, /* ACT_KILL_TO_BOL, 'U', KBD_CTRL }, { ACT_KILL_TO_EOL, 'K', KBD_CTRL },*/ { 0, 0, 0 } }; static struct default_kb default_menu_keymap[] = { { ACT_LEFT, KBD_LEFT, 0 }, { ACT_RIGHT, KBD_RIGHT, 0 }, { ACT_HOME, KBD_HOME, 0 }, { ACT_HOME, 'A', KBD_CTRL }, { ACT_UP, KBD_UP, 0 }, { ACT_DOWN, KBD_DOWN, 0 }, { ACT_END, KBD_END, 0 }, { ACT_END, 'E', KBD_CTRL }, { ACT_ENTER, KBD_ENTER, 0 }, { ACT_PAGE_DOWN, KBD_PGDN, 0 }, { ACT_PAGE_DOWN, 'F', KBD_CTRL }, { ACT_PAGE_UP, KBD_PGUP, 0 }, { ACT_PAGE_UP, 'B', KBD_CTRL }, { 0, 0, 0} }; static void add_default_keybindings(void) { struct default_kb *kb; for (kb = default_main_keymap; kb->x; kb++) add_keybinding(KM_MAIN, kb->act, kb->x, kb->y); for (kb = default_edit_keymap; kb->x; kb++) add_keybinding(KM_EDIT, kb->act, kb->x, kb->y); for (kb = default_menu_keymap; kb->x; kb++) add_keybinding(KM_MENU, kb->act, kb->x, kb->y); } tucnak-4.04/src/misc.c0000644000175000017500000000377012362543253011551 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include #include "header.h" #include "main.h" #include "misc.h" #include "terminal.h" #include void test(void){ /* char s[100]; char n[2014]; FILE *f; strcpy(n, "e:\\home/tucnak/20110507//log"); f = fopen(n, "rt"); if (f != NULL){ char *dummy = fgets(s, 80, f); fclose(f); }*/ } void bat_info(GString *gs){ struct zbat *zbat; g_string_sprintfa(gs, "\n bat_info:\n"); zbat = zbat_init(); zbat_getinfo(zbat); if (zbat->n == 0){ g_string_sprintfa(gs, "No battery detected\n"); }else{ g_string_sprintfa(gs, "Batteries: %d\n", zbat->n); g_string_sprintfa(gs, "Capacity: %d%%\n", zbat->capacity); g_string_sprintfa(gs, "Technology: %s\n", zbat->technology); } g_string_sprintfa(gs, "\n"); zbat_free(zbat); } #ifdef Z_HAVE_SDL struct zbat *gbat; void bat_timer(void *a){ zbat_getinfo(gbat); zselect_timer_new(zsel, 20000, bat_timer, NULL); redraw_later(); } #endif void serial_info(GString *gs){ struct zserial *zser; g_string_sprintfa(gs, "\n serial_info:\n"); zser = zserial_init_serial(NULL); if (!zser) return; zserial_detect(zser); if (zser->ports->len == 0){ g_string_sprintfa(gs, "No serial ports detected\n"); }else{ int i; for (i = 0; i < zser->ports->len; i++){ struct zserial_port *port = (struct zserial_port *)g_ptr_array_index(zser->ports, i); g_string_sprintfa(gs, "%s %s\n", port->filename, port->desc); } } g_string_sprintfa(gs, "\n"); zserial_free(zser); } /*const char *iconv_current_encoding(){ #ifdef Z_MSC_MINGW static char cp[20]; g_snprintf(cp, sizeof(cp), "CP%d", GetACP()); return cp; #endif } */ tucnak-4.04/src/sles.c0000644000175000017500000000741212115653274011562 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2013 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "dsp.h" #ifdef HAVE_SLES_OPENSLES_H #include #endif int sles_open(struct dsp *dsp, int rec){ int result; result = slCreateEngine(&(dsp->engineObject), 0, NULL, 0, NULL, NULL); if (!rec){ // play const SLInterfaceID ids[] = {SL_IID_VOLUME}; const SLboolean req[] = {SL_BOOLEAN_FALSE} ; result = (*dsp->engineEngine)->CreateOutputMix(dsp->engineEngine, &(dsp->outputMixObject), 1, ids, req); result = (*dsp->outputMixObject)->Realize(dsp->outputMixObject, SL_BOOLEAN_FALSE); SLDataLocator_AndroidSimpleBufferQueue loc_bufq = {SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, 2}; SLDataFormat_PCM format_pcm = {SL_DATAFORMAT_PCM, dsp->channels, dsp->speed, SL_PCMSAMPLEFORMAT_FIXED_16, SL_PCMSAMPLEFORMAT_FIXED_16, speakers, SL_BYTEORDER_LITTLEENDIAN}; SLDataSource audioSrc = {&loc_bufq, &format_pcm}; SLDataLocator_OutputMix loc_outmix = {SL_DATALOCATOR_OUTPUTMIX, dsp->outputMixObject}; SLDataSink audioSnk = {&loc_outmix, NULL}; const SLInterfaceID ids1[] = {SL_IID_ANDROIDSIMPLEBUFFERQUEUE}; const SLboolean req1[] = {SL_BOOLEAN_TRUE}; result = (*dsp->engineEngine)->CreateAudioPlayer(dsp->engineEngine, &(dsp->bqPlayerObject), &audioSrc, &audioSnk, 1, ids1, req1); result = (*dsp->bqPlayerObject)->Realize(dsp->bqPlayerObject, SL_BOOLEAN_FALSE); result = (*dsp->bqPlayerObject)->GetInterface(dsp->bqPlayerObject, SL_IID_PLAY,&(dsp->bqPlayerPlay)); result = (*dsp->bqPlayerObject)->GetInterface(dsp->bqPlayerObject, SL_IID_ANDROIDSIMPLEBUFFERQUEUE, &(dsp->bqPlayerBufferQueue)); result = (*dsp->bqPlayerBufferQueue)->RegisterCallback(dsp->bqPlayerBufferQueue, bqPlayerCallback, dsp); result = (*p->bqPlayerPlay)->SetPlayState(p->bqPlayerPlay, SL_PLAYSTATE_PLAYING); }else{ // record SLDataLocator_IODevice loc_dev = {SL_DATALOCATOR_IODEVICE, SL_IODEVICE_AUDIOINPUT, SL_DEFAULTDEVICEID_AUDIOINPUT, NULL}; SLDataSource audioSrc = {&loc_dev, NULL}; SLDataLocator_AndroidSimpleBufferQueue loc_bq = {SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, 2}; SLDataFormat_PCM format_pcm = {SL_DATAFORMAT_PCM, channels, sr, SL_PCMSAMPLEFORMAT_FIXED_16, SL_PCMSAMPLEFORMAT_FIXED_16, speakers, SL_BYTEORDER_LITTLEENDIAN}; SLDataSink audioSnk = {&loc_bq, &format_pcm}; const SLInterfaceID id[1] = {SL_IID_ANDROIDSIMPLEBUFFERQUEUE}; const SLboolean req[1] = {SL_BOOLEAN_TRUE}; result = (*p->engineEngine)->CreateAudioRecorder(p->engineEngine, &(p->recorderObject), &audioSrc, &audioSnk, 1, id, req); result = (*p->recorderObject)->Realize(p->recorderObject, SL_BOOLEAN_FALSE); result = (*p->recorderObject)->GetInterface(p->recorderObject, SL_IID_RECORD, &(p->recorderRecord)); result = (*p->recorderObject)->GetInterface(p->recorderObject, SL_IID_ANDROIDSIMPLEBUFFERQUEUE, &(p->recorderBufferQueue)); result = (*p->recorderBufferQueue)->RegisterCallback(p->recorderBufferQueue, bqRecorderCallback,p); result = (*p->recorderRecord)->SetRecordState( p->recorderRecord,SL_RECORDSTATE_RECORDING); } } int sles_close(struct dsp *dsp){ } int sles_write(struct dsp *dsp, void *data, int len){ } int sles_read(struct dsp *dsp, void *data, int len){ } int sles_reset(struct dsp *dsp){ } int sles_sync(struct dsp *dsp){ } int sles_set_format(struct dsp *dsp, SF_INFO *sfinfo, int ret){ } tucnak-4.04/src/menu5.c0000644000175000017500000011304112500542100011620 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "kbd.h" #include "menu.h" #include "qsodb.h" #include "rc.h" #include "rotar.h" #include "tsdl.h" #include "terminal.h" #include "trig.h" /******************** MISC OPTIONS *******************************/ char loglines_str[MAX_STR_LEN],skedcount_str[MAX_STR_LEN],startbandchar_str[MAX_STR_LEN]; char gfx_x_ch_str[MAX_STR_LEN],gfx_y_ch_str[MAX_STR_LEN]; char gfx_x_px_str[MAX_STR_LEN],gfx_y_px_str[MAX_STR_LEN]; int fullscreen, usetouch, altsyms, nolocks, portrait, reverse; char fontheight_str[EQSO_LEN]; char slashkey[3]; int dssaver; void refresh_misc_opts(void *xxx) { struct config_band *confb; int gfx_x_ch, gfx_y_ch, gfx_x_px, gfx_y_px; int new_w, new_h, resize, new_fh; resize=0; if (cfg->loglines != atoi(loglines_str)) resize++; STORE_SINT(cfg,loglines); STORE_SINT(cfg,skedcount); confb=get_config_band_by_bandchar(startbandchar_str[0]); if (confb){ CONDGFREE(cfg->startband); cfg->startband=g_strdup(confb->pband); } gfx_x_ch=atoi(gfx_x_ch_str); gfx_y_ch=atoi(gfx_y_ch_str); gfx_x_px=atoi(gfx_x_px_str); gfx_y_px=atoi(gfx_y_px_str); STORE_STR(cfg, slashkey); STORE_INT(cfg, dssaver); STORE_INT(cfg, usetouch); STORE_INT(cfg, altsyms); STORE_INT(cfg, nolocks); if (portrait != cfg->portrait || reverse != cfg->reverse){ #ifdef Z_ANDROID log_addf(VTEXT(T_SAVE_RESTART)); #endif STORE_INT(cfg, portrait); STORE_INT(cfg, reverse); } new_w=800; new_h=600; new_fh = atoi(fontheight_str); #ifdef Z_HAVE_SDL if (sdl){ if (new_fh !=cfg->fontheight) { cfg->fontheight = new_fh; new_w = sdl->screen->w; new_h = sdl->screen->h; resize++; } if (fullscreen != cfg->fullscreen){ cfg->fullscreen = fullscreen; new_w = sdl->screen->w; new_h = sdl->screen->h; resize++; } if (gfx_x_ch>10 && gfx_y_ch>10){ if (gfx_x_ch * zsdl->font_w != cfg->gfx_x || gfx_y_ch * zsdl->font_h != cfg->gfx_y){ new_w = gfx_x_ch * zsdl->font_w; new_h = gfx_y_ch * zsdl->font_h; resize++; } } if (gfx_x_px > 100 && gfx_y_px > 100){ if (gfx_x_px != cfg->gfx_x || gfx_y_px != cfg->gfx_y){ new_w = gfx_x_px; new_h = gfx_y_px; resize++; } } if (resize && new_w <= 2048 && new_h <= 2048) { cfg->gfx_x = new_w; cfg->gfx_y = new_h; sdl_setvideomode(new_w, new_h, 0); resize_terminal(NULL); } } else #endif { if (resize) resize_terminal(NULL); } } void misc_opts(void *arg) { struct dialog *d; int i; struct config_band *confb; g_snprintf(loglines_str, MAX_STR_LEN, "%d", cfg->loglines); g_snprintf(skedcount_str, MAX_STR_LEN, "%d", cfg->skedcount); confb=get_config_band_by_pband(cfg->startband); if (!confb) confb=(struct config_band *)g_ptr_array_index(cfg->bands,0); startbandchar_str[0]=confb->bandchar; startbandchar_str[1]='\0'; // dbg("gfx_x=%d gfx_x=%d %%=%d %d\n", cfg->gfx_x, cfg->gfx_y, cfg->gfx_x%sdl->font_w, cfg->gfx_y%font_h); #ifdef Z_HAVE_SDL if (sdl){ if (cfg->gfx_x % zsdl->font_w!=0 || cfg->gfx_y % zsdl->font_h!=0){ strcpy(gfx_x_ch_str, ""); strcpy(gfx_y_ch_str, ""); }else{ g_snprintf(gfx_x_ch_str, MAX_STR_LEN, "%d", cfg->gfx_x/zsdl->font_w); g_snprintf(gfx_y_ch_str, MAX_STR_LEN, "%d", cfg->gfx_y/zsdl->font_h); } } else #endif { strcpy(gfx_x_ch_str, ""); strcpy(gfx_y_ch_str, ""); } g_snprintf(gfx_x_px_str, MAX_STR_LEN, "%d", cfg->gfx_x); g_snprintf(gfx_y_px_str, MAX_STR_LEN, "%d", cfg->gfx_y); g_snprintf(fontheight_str, EQSO_LEN, "%d", cfg->fontheight); safe_strncpy0(slashkey, cfg->slashkey, sizeof(slashkey)); dssaver = cfg->dssaver; fullscreen = cfg->fullscreen; usetouch = cfg->usetouch; altsyms = cfg->altsyms; nolocks = cfg->nolocks; portrait = cfg->portrait; reverse = cfg->reverse; d = g_new0(struct dialog, 20); d->title = VTEXT(T_MISCOPTS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_misc_opts; d->y0 = 1; i = -1; #ifdef Z_HAVE_SDL if (sdl){ d->items[++i].type = D_FIELD; d->items[i].gid = 13; d->items[i].gnum = 32; d->items[i].maxl = 5; d->items[i].dlen = EQSO_LEN; d->items[i].data = fontheight_str; d->items[i].msg = CTEXT(T_FONTHEIGHT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_x_ch_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_X_CH); d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_y_ch_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_Y_CH); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_x_px_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_X_PX); d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = gfx_y_px_str; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_GFX_Y_PX); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&fullscreen; d->items[i].msg = CTEXT(T_FULLSCREEN); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&usetouch; d->items[i].msg = CTEXT(T_TOUCH); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&altsyms; d->items[i].msg = CTEXT(T_ALT_QWER); d->items[i].wrap = 1; } #endif d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = startbandchar_str; d->items[i].maxl = 3; d->items[i].msg = CTEXT(T_STARTBAND); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = loglines_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 30; d->items[i].msg = CTEXT(T_LOGLINES); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = skedcount_str; d->items[i].maxl = 3; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10; d->items[i].msg = CTEXT(T_SKEDCOUNT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = 3; d->items[i].data = slashkey; d->items[i].maxl = 2; d->items[i].msg = CTEXT(T_SLASHKEY); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&dssaver; d->items[i].msg = CTEXT(T_DSSAVER); d->items[i].wrap = 1; //#ifdef Z_UNIX_ANDROID d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&nolocks; d->items[i].msg = CTEXT(T_NO_LOCKS); d->items[i].wrap = 1; //#endif d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&portrait; d->items[i].msg = CTEXT(T_PORTRAIT_ORIENTATION); #ifdef Z_ANDROID d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&reverse; d->items[i].msg = CTEXT(T_REVERSE); #endif d->items[i].wrap = 1; d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /*********************** FIXQRG - Fix rig frequency *************************/ #ifdef HAVE_HAMLIB void fixqrg(void *xxx, char *qrgstr){ gdouble newqrg; int rignr = GPOINTER_TO_INT(xxx); if (!qrgstr) return; //newqrg = atof(qrgstr); newqrg = z_qrg_parse(qrgstr); if (newqrg<=0){ errbox(CTEXT(T_BAD_QRG), 0); return; } set_rig_lo(aband, rignr, get_rig_lo(aband, rignr) + newqrg - gtrigs->qrg); trigs_resend_freq(gtrigs, rignr); } void do_fixqrg(void *itdata, void *menudata){ static char qrgstr[256]; //int rignr = GPOINTER_TO_INT(itdata); //g_snprintf(qrgstr, EQSO_LEN, "%1.0f", gtrigs->qrg); z_qrg_format(qrgstr, sizeof(qrgstr), gtrigs->qrg); input_field(NULL, CTEXT(T_FIXQRG), CTEXT(T_ENTER_QRG) , CTEXT(T_OK), CTEXT(T_CANCEL), itdata, NULL, 20, qrgstr, 0, 0, NULL, /*(void (*)(void *, char *))*/ fixqrg, NULL, 0); } void menu_fixqrg(void *itdata, void *menudata){ int i, enabled = 0; for (i = 0; i < gtrigs->trigs->len; i++){ struct config_rig *crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); if (crig->rig_enabled) enabled++; } if (enabled > 1){ int i; struct menu_item *mi = new_menu(3); mi->rtext = VTEXT(T_CHOOSE_RIG); for (i = 0; i < gtrigs->trigs->len; i++){ struct config_rig *crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); if (!crig->rig_enabled) continue; add_to_menu(&mi, g_strdup_printf(VTEXT(T_RIG_D), i), "", "", MENU_FUNC do_fixqrg, GINT_TO_POINTER(i), 0); } set_window_ptr(gses->win, (term->x - strlen(mi->rtext) - 6) / 2, (term->y - 2 - gtrigs->trigs->len) / 2); do_menu(mi, NULL); return; } do_fixqrg(itdata, menudata); } #endif /************************** winkey ******************************/ int wk_wk2, wk_usepot, wk_usebut, wk_keymode, wk_swap; void refresh_winkey_opts(void *xxx) { STORE_INT(cfg, wk_wk2); STORE_INT(cfg, wk_usepot); STORE_INT(cfg, wk_usebut); STORE_INT(cfg, wk_keymode); STORE_INT(cfg, wk_swap); } char *winkey_opts_msg[] = { CTEXT(T_WK_WK2), CTEXT(T_WK_USEPOT), CTEXT(T_WK_USEBUT), CTEXT(T_WK_KM_B), CTEXT(T_WK_KM_A), CTEXT(T_WK_KM_U), CTEXT(T_WK_KM_G), CTEXT(T_WK_SWAP), "", "" }; void winkey_opts_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, winkey_opts_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, winkey_opts_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, winkey_opts_msg + 1, dlg->items + 1, 2, &max); min_group_width(term, winkey_opts_msg + 1, dlg->items + 1, 2, &min); max_group_width(term, winkey_opts_msg + 3, dlg->items + 3, 4, &max); min_group_width(term, winkey_opts_msg + 3, dlg->items + 3, 4, &min); max_group_width(term, winkey_opts_msg + 7, dlg->items + 1, 1, &max); min_group_width(term, winkey_opts_msg + 7, dlg->items + 1, 1, &min); max_buttons_width(term, dlg->items + 8, 2, &max); min_buttons_width(term, dlg->items + 8, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, winkey_opts_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, winkey_opts_msg + 1, dlg->items + 1, 2, 0, &y, w, &rw); dlg_format_group(NULL, term, winkey_opts_msg + 3, dlg->items + 3, 4, 0, &y, w, &rw); dlg_format_group(NULL, term, winkey_opts_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items +8, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, winkey_opts_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, winkey_opts_msg + 1, dlg->items + 1, 2, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, winkey_opts_msg + 3, dlg->items + 3, 4, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, winkey_opts_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items +8, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void winkey_opts(void *arg) { struct dialog *d; int i; wk_wk2 = cfg->wk_wk2; wk_usepot = cfg->wk_usepot; wk_usebut = cfg->wk_usebut; wk_keymode = cfg->wk_keymode; wk_swap = cfg->wk_swap; if (!(d = g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_WINKEYOPTS); d->fn = winkey_opts_fn; d->refresh = (void (*)(void *))refresh_winkey_opts; d->items[i=0].type = D_CHECKBOX; /* 0 */ d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_wk2; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_usepot; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_usebut; d->items[++i].type = D_CHECKBOX; /* 3 */ d->items[i].gid = 1; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 2; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; /* 5 */ d->items[i].gid = 1; d->items[i].gnum = 3; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = 4; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_keymode; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&wk_swap; d->items[++i].type = D_BUTTON; /* 8 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } int dlg_winkey_opts(struct dialog_data *dd, struct dialog_item_data *did){ winkey_opts(NULL); return 0; } /************************** rig ******************************/ #ifdef HAVE_HAMLIB int rig_enabled; char rig_desc[MAX_STR_LEN]; char rig_filename[MAX_STR_LEN]; char rig_model_str[EQSO_LEN]; int rig_model; char rig_speed_str[EQSO_LEN]; /* choose manufacturer */ char rig_civaddr_str[EQSO_LEN]; char rig_ssbcw_shift_str[EQSO_LEN]; char rig_lo_str[MAX_STR_LEN]; //int rig_poll_ms; char rig_poll_ms_str[MAX_STR_LEN]; int rig_qrg_r2t, rig_qrg_t2r, rig_mode_t2r, rig_clr_rit, rig_ptt_t2r, rig_verbose; char new_model_str[EQSO_LEN]; void set_rig (void *arg){ struct rig_caps *mcaps; int active; active = GPOINTER_TO_INT(arg); if (active < 0 || active >= riglist->len) return; mcaps = (struct rig_caps *)z_ptr_array_index(riglist, active); dbg("%4d %4d %-20s %s\n", active, mcaps->rig_model, mcaps->mfg_name, mcaps->model_name); g_snprintf(new_model_str, EQSO_LEN, "%d", mcaps->rig_model); dbg("set_rig: new_model_str = '%s'\n", new_model_str); redraw_later(); } void choose_rig (void *arg){ struct rig_caps *mcaps; int i, sel=0, model; struct menu_item *mi; int active; active = GPOINTER_TO_INT(arg); if (active < 0 || active >= riglist->len) return; mcaps = (struct rig_caps *)z_ptr_array_index(riglist, active); dbg("%4d %4d %-20s %s\n", active, mcaps->rig_model, mcaps->mfg_name, mcaps->model_name); if (!(mi = new_menu(1))) return; model = GPOINTER_TO_INT(arg); for (i=active; ilen; i++){ struct rig_caps *caps = (struct rig_caps *)z_ptr_array_index(riglist, i); if (strcasecmp(mcaps->mfg_name, caps->mfg_name)!=0) break; if (model==caps->rig_model) sel = i - active; add_to_menu(&mi, (char *)caps->model_name, "", "", MENU_FUNC set_rig, GINT_TO_POINTER(i), 0); } dbg("sel=%d\n", sel); do_menu_selected(mi, NULL, sel); } int choose_manufacturer(struct dialog_data *dlg, struct dialog_item_data *di){ int i, sel=0, j=0, same, model; struct menu_item *mi; const char *old = NULL; if (!(mi = new_menu(1))) return 0; model = GPOINTER_TO_INT(di->cdata); dbg("rig_model=%d\n", model); for (i=0; ilen; i++){ struct rig_caps *caps = (struct rig_caps *)z_ptr_array_index(riglist, i); same=0; if (old && strcasecmp(old, caps->mfg_name)==0) same=1; if (model==caps->rig_model) { dbg("i=%d j=%d\n", i, j); sel = j; if (same) sel--; } if (same) continue; add_to_menu(&mi, (char *)caps->mfg_name, "", "", MENU_FUNC choose_rig, GINT_TO_POINTER(i), 0); old = caps->mfg_name; j++; } dbg("sel=%d\n", sel); do_menu_selected(mi, di->cdata, sel); return 0; } void refresh_rig_opts(void *xxx){ struct config_rig *crig = (struct config_rig *)xxx; if (!crig){ crig = g_new0(struct config_rig, 1); crig->nr = cfg->crigs->len; g_ptr_array_add(cfg->crigs, crig); } STORE_INT(crig, rig_enabled); STORE_STR(crig, rig_desc); STORE_STR(crig, rig_filename); STORE_SINT(crig, rig_model); STORE_SINT(crig, rig_speed); STORE_SHEX(crig, rig_civaddr); STORE_SINT(crig, rig_ssbcw_shift); STORE_SDBL(crig, rig_lo); STORE_SINT(crig, rig_poll_ms); STORE_INT(crig, rig_qrg_r2t); STORE_INT(crig, rig_qrg_t2r); STORE_INT(crig, rig_mode_t2r); STORE_INT(crig, rig_clr_rit); STORE_INT(crig, rig_ptt_t2r); STORE_INT(crig, rig_verbose); free_trigs(gtrigs); gtrigs = init_trigs(); progress(NULL); } void rig_opts_fn(struct dialog_data *dlg) { if (strlen(new_model_str)>0){ dbg("new_model_str=%s\n", new_model_str); safe_strncpy0(dlg->items[3].cdata, new_model_str, EQSO_LEN); strcpy(new_model_str, ""); } } void menu_rig_opts(void *arg) { struct dialog *d; int i, rigi; struct config_rig *crig; rigi = GPOINTER_TO_INT(arg); dbg("menu_rig_opts(%d)\n", rigi); if (rigi >= (int)cfg->crigs->len) return; if (rigi < 0){ crig = NULL; rig_enabled = 1; strcpy(rig_desc, VTEXT(T_NEW_RIG)); strcpy(rig_filename, ""); strcpy(rig_model_str, "1"); strcpy(rig_speed_str, "0"); strcpy(rig_civaddr_str, "0x58"); strcpy(rig_ssbcw_shift_str, "0"); strcpy(rig_lo_str, "0"); strcpy(rig_poll_ms_str, "10"); rig_qrg_r2t = 1; rig_qrg_t2r = 1; rig_mode_t2r = 1; rig_clr_rit = 0; rig_ptt_t2r = 0; rig_verbose = 0; }else{ crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, rigi); LOAD_INT(crig, rig_enabled); LOAD_STR(crig, rig_desc); LOAD_STR(crig, rig_filename); LOAD_SINT(crig, rig_model); LOAD_SINT(crig, rig_speed); LOAD_SHEX2(crig, rig_civaddr); LOAD_SINT(crig, rig_ssbcw_shift); LOAD_SDBL(crig, rig_lo); LOAD_SINT(crig, rig_poll_ms); LOAD_INT(crig, rig_qrg_r2t); LOAD_INT(crig, rig_qrg_t2r); LOAD_INT(crig, rig_mode_t2r); LOAD_INT(crig, rig_clr_rit); LOAD_INT(crig, rig_ptt_t2r); LOAD_INT(crig, rig_verbose); } strcpy(new_model_str, ""); if (!(d = (struct dialog*)g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_RIGOPTS); d->fn = dlg_pf_fn; d->fn2 = rig_opts_fn; d->refresh = (void (*)(void *))refresh_rig_opts; d->refresh_data= crig; d->y0 = 1; i = -1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_enabled; d->items[i].msg = CTEXT(T_ENABLED);//CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rig_desc; d->items[i].maxl = 31; d->items[i].msg = CTEXT(T_DESC);//CTEXT(T_RIG_DEVICE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rig_filename; d->items[i].maxl = 35; d->items[i].msg = CTEXT(T_RIG_DEVICE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_model_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].msg = CTEXT(T_RIG_MODEL); d->items[i].gnum = 20000; rig_model = atoi(rig_model_str); d->items[++i].type = D_BUTTON; /* 2 */ d->items[i].gid = 0; d->items[i].fn = choose_manufacturer; d->items[i].data = (char *)GINT_TO_POINTER(rig_model); d->items[i].text = VTEXT(T_RIG_CHOOSE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_speed_str; d->items[i].maxl = 7; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].msg = CTEXT(T_RIG_SPEED); d->items[i].gnum = 999999; d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_civaddr_str; d->items[i].maxl = 4; d->items[i].fn = check_hex; d->items[i].gid = 0; d->items[i].msg = CTEXT(T_RIG_CIV); d->items[i].gnum = 255; d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_ssbcw_shift_str; d->items[i].maxl = 5; d->items[i].fn = check_number; d->items[i].gid = -2000; d->items[i].gnum = +2000; d->items[i].msg = CTEXT(T_RIG_FREQSHIFT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rig_lo_str; d->items[i].maxl = 16; d->items[i].fn = check_qrg; d->items[i].msg = CTEXT(T_BAND_LO); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rig_poll_ms_str; d->items[i].maxl = 6; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 9999; d->items[i].msg = CTEXT(T_RIG_POLL_MS); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_qrg_r2t; d->items[i].msg = CTEXT(T_RIG_QRG_R2T); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_qrg_t2r; d->items[i].msg = CTEXT(T_RIG_QRG_T2R); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_mode_t2r; d->items[i].msg = CTEXT(T_RIG_MODE_T2R); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_ptt_t2r; d->items[i].msg = CTEXT(T_SET_PTT_ON_RADIO);//CTEXT(T_RIG_CLR_RIT); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_clr_rit; d->items[i].msg = CTEXT(T_RIG_CLR_RIT); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rig_verbose; d->items[i].msg = CTEXT(T_RIG_DEBUG); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; /* 6 */ d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_rig_delete(void *arg){ struct config_rig *crig; int rigi; rigi = GPOINTER_TO_INT(arg); dbg("menu_rig_delete(%d)\n", rigi); if (rigi >= (int)cfg->crigs->len) return; crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, rigi); free_config_rig(crig); g_ptr_array_remove_index(cfg->crigs, rigi); free_trigs(gtrigs); gtrigs = init_trigs(); } void menu_rigs_delete(void *arg) { struct menu_item *mi = NULL; static char *rotstrs[]={"0","1","2","3","4","5","6","7","8","9"}; int i; if (!(mi = new_menu(3))) return; for (i=0; icrigs->len; i++){ struct config_rig *crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); add_to_menu(&mi, //g_strdup(rot->rot_desc && *rot->rot_desc?rot->rot_desc:"Rotator"), g_strdup_printf("Rig #%d", crig->nr), rotstrs[crig->nr], rotstrs[crig->nr], MENU_FUNC menu_rig_delete, GINT_TO_POINTER(i), 0); } do_menu(mi, NULL); } void menu_rigs(void *arg) { struct menu_item *mi = NULL; static char *rotstrs[]={"0","1","2","3","4","5","6","7","8","9"}; int i; if (!(mi = new_menu(3))) return; for (i=0; icrigs->len; i++){ struct config_rig *crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); char *c; if (crig->rig_desc && *crig->rig_desc) c = g_strdup(crig->rig_desc); else c = g_strdup_printf(VTEXT(T_RIG_D), crig->nr); if (!crig->rig_enabled){ char *d = c; c = g_strconcat(c, VTEXT(T_DISABLED), NULL); g_free(d); } add_to_menu(&mi, //g_strdup(crig->rig_filename && *rot->rot_desc?rot->rot_desc:"Rotator"), c, rotstrs[crig->nr], rotstrs[crig->nr], MENU_FUNC menu_rig_opts, GINT_TO_POINTER(i), 0); } add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_ADD_RIG)), "A", "A", MENU_FUNC menu_rig_opts, GINT_TO_POINTER(-1), 0); add_to_menu(&mi, g_strdup(VTEXT(T_REMOVE_RIG)/*VTEXT(T_ROT_REMOVE)*/), "R", //VTEXT(T_HK_ROT_REMOVE), "R", //VTEXT(T_HK_ROT_REMOVE), MENU_FUNC menu_rigs_delete, GINT_TO_POINTER(-1), 1); do_menu(mi, NULL); } #endif /************************** rotar ******************************/ char rot_desc[MAX_STR_LEN]; int rot_type; char rot_filename[MAX_STR_LEN], rot_hostname[MAX_STR_LEN]; char rot_port_str[EQSO_LEN]; char rot_vid_str[EQSO_LEN]; char rot_pid_str[EQSO_LEN]; char rot_serial[EQSO_LEN]; char rot_timeout_ms_str[EQSO_LEN]; char rot_poll_ms_str[EQSO_LEN]; char rot_beamwidth_str[EQSO_LEN]; char rot_saddr_str[EQSO_LEN], rot_model_str[EQSO_LEN]; char rot_rem_rotstr[EQSO_LEN]; void refresh_rotar_opts(void *xxx){ struct config_rotar *crot = (struct config_rotar *)xxx; if (!crot) { crot = g_new0(struct config_rotar, 1); crot->nr = cfg->crotars->len; g_ptr_array_add(cfg->crotars, crot); } STORE_STR (crot, rot_desc); STORE_ENUM(crot, rot_type, enum rot_type); STORE_STR (crot, rot_filename); STORE_STR (crot, rot_hostname); STORE_SINT(crot, rot_port); STORE_SHEX(crot, rot_vid); STORE_SHEX(crot, rot_pid); STORE_STR (crot, rot_serial); STORE_SINT(crot, rot_timeout_ms); STORE_SINT(crot, rot_poll_ms); STORE_SINT(crot, rot_beamwidth); STORE_SINT(crot, rot_model); STORE_SINT(crot, rot_saddr); STORE_STR (crot, rot_rem_rotstr); free_rotars(); init_rotars(); progress(NULL); } void menu_rotar_opts(void *arg){ struct dialog *d; int i, roti; struct config_rotar *crot; roti = GPOINTER_TO_INT(arg); dbg("menu_rotar_opts(%d)\n", roti); if (roti >= (int)cfg->crotars->len) return; if (roti < 0){ crot = NULL; safe_strncpy0(rot_desc, "", MAX_STR_LEN); rot_type = ROT_HAMLIB; strcpy(rot_filename, ""); strcpy(rot_hostname, ""); strcpy(rot_port_str, "10001"); strcpy(rot_vid_str, "a600"); strcpy(rot_pid_str, "e112"); strcpy(rot_serial, ""); strcpy(rot_timeout_ms_str,"400"); strcpy(rot_poll_ms_str,"500"); strcpy(rot_beamwidth_str, "20"); strcpy(rot_saddr_str, "240"); strcpy(rot_model_str, "0"); strcpy(rot_rem_rotstr, "A"); }else{ crot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, roti); LOAD_STR (crot, rot_desc); LOAD_INT (crot, rot_type); LOAD_STR (crot, rot_filename); LOAD_STR (crot, rot_hostname); LOAD_SINT (crot, rot_port); LOAD_SHEX4(crot, rot_vid); LOAD_SHEX4(crot, rot_pid); LOAD_STR (crot, rot_serial); LOAD_SINT (crot, rot_timeout_ms); LOAD_SINT (crot, rot_poll_ms); LOAD_SINT (crot, rot_beamwidth); LOAD_SINT (crot, rot_saddr); LOAD_SINT (crot, rot_model); LOAD_STR (crot, rot_rem_rotstr); } if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 20 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 20 * sizeof(struct dialog_item)); d->title = VTEXT(T_ROTAROPTS); d->fn = dlg_pf_fn; d->refresh = (void (*)(void *))refresh_rotar_opts; d->refresh_data = crot; d->y0 = 1; d->items[i=0].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rot_desc; d->items[i].maxl = 30; d->items[i].msg = CTEXT(T_DESC); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_NONE; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_NONE); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_OK1ZIA_TTYS; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_OK1ZIA_TTYS); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_OK1ZIA_FTDI; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_OK1ZIA_FTDI); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_HAMLIB; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_HAMLIB); d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = ROT_REMOTE; d->items[i].dlen = sizeof(int); d->items[i].data=(char *)&rot_type; d->items[i].msg = CTEXT(T_ROT_REMOTE); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rot_filename; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_FILENAME); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; // 5 d->items[i].dlen = MAX_STR_LEN; d->items[i].data = rot_hostname; d->items[i].maxl = 15; d->items[i].msg = CTEXT(T_HOSTNAME); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_port_str; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 65535; d->items[i].maxl = 6; d->items[i].msg = CTEXT(T_UDPPORT); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_vid_str; d->items[i].maxl = 6; d->items[i].msg = CTEXT(T_ROT_VID); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_pid_str; d->items[i].maxl = 6; d->items[i].msg = CTEXT(T_ROT_VID); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_serial; d->items[i].maxl = 10; d->items[i].msg = CTEXT(T_ROT_SERIAL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_timeout_ms_str; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 2000; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_TIMEOUT); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_poll_ms_str; d->items[i].fn = check_number; d->items[i].gid = 1; d->items[i].gnum = 2000; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_ROT_POLL_MS); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_beamwidth_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 360; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_BEAMWIDTH); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_saddr_str; d->items[i].fn = check_number; d->items[i].gid = 128; d->items[i].gnum = 255; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_SADDR); d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_model_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 9999; d->items[i].maxl = 5; d->items[i].msg = CTEXT(T_MODEL); d->items[i].wrap = 1; d->items[++i].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = rot_rem_rotstr; d->items[i].maxl = 3; d->items[i].msg = CTEXT(T_ROT_REM_ROTSTR); d->items[i].wrap = 2; d->items[++i].type = D_BUTTON; // 10 d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } void menu_rotar_delete(void *arg){ struct config_rotar *crot; int roti; roti = GPOINTER_TO_INT(arg); dbg("menu_rotar_delete(%d)\n", roti); if (roti >= (int)cfg->crotars->len) return; crot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, roti); free_config_rotar(crot); g_ptr_array_remove_index(cfg->crotars, roti); } void menu_rotars_delete(void *arg) { struct menu_item *mi = NULL; static char *rotstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; int i; if (!(mi = new_menu(3))) return; for (i=0; icrotars->len; i++){ struct config_rotar *rot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, i); add_to_menu(&mi, g_strdup(rot->rot_desc && *rot->rot_desc?rot->rot_desc:"Rotator"), rotstrs[rot->nr], rotstrs[rot->nr], MENU_FUNC menu_rotar_delete, GINT_TO_POINTER(i), 0); } do_menu(mi, NULL); } void menu_rotars(void *arg) { struct menu_item *mi = NULL; static char *rotstrs[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; int i; if (!(mi = new_menu(3))) return; for (i=0; icrotars->len; i++){ struct config_rotar *rot = (struct config_rotar *)g_ptr_array_index(cfg->crotars, i); char *c; if (rot->rot_desc && *rot->rot_desc) c = g_strdup(rot->rot_desc); else c = g_strdup_printf(VTEXT(T_ROTATOR_D), i); if (rot->rot_type == ROT_NONE){ char *d = c; c = g_strconcat(c, VTEXT(T_DISABLED), NULL); g_free(d); } add_to_menu(&mi, c, rotstrs[rot->nr], rotstrs[rot->nr], MENU_FUNC menu_rotar_opts, GINT_TO_POINTER(i), 0); } add_to_menu(&mi, g_strdup(""), "", M_BAR, NULL, NULL, 0); add_to_menu(&mi, g_strdup(VTEXT(T_ROT_ADD)), VTEXT(T_HK_ROT_ADD), VTEXT(T_HK_ROT_ADD), MENU_FUNC menu_rotar_opts, GINT_TO_POINTER(-1), 0); add_to_menu(&mi, g_strdup(VTEXT(T_ROT_REMOVE)), VTEXT(T_HK_ROT_REMOVE), VTEXT(T_HK_ROT_REMOVE), MENU_FUNC menu_rotars_delete, GINT_TO_POINTER(-1), 1); do_menu(mi, NULL); } tucnak-4.04/src/ntpq.h0000644000175000017500000000113612006161033011562 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __NTPQ_H #define __NTPQ_H #ifdef Z_UNIX struct ntpq { pid_t pid; int rfd; GString *buf; int good, oldgood; int timer; }; extern struct ntpq *ntpq; struct ntpq *init_ntpq(void); void free_ntpq(struct ntpq *ntpq); void ntpq_timer(void *arg); void ntpq_read_handler(void *arg); #endif #endif tucnak-4.04/src/namedb.c0000644000175000017500000001100312524341151012021 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "fifo.h" #include "main.h" #include "namedb.h" #include "tsdl.h" struct namedb *namedb; struct namedb *init_namedb(){ struct namedb *namedb; progress(VTEXT(T_INIT_NAMEDB)); namedb = g_new0(struct namedb, 1); namedb->names = g_hash_table_new(g_str_hash, g_str_equal); return namedb; } gboolean free_names_item(gpointer key, gpointer value, gpointer user_data){ g_free(key); g_free(value); return 0; } void free_namedb(struct namedb *namedb){ progress(VTEXT(T_FREE_NAMEDB)); g_hash_table_foreach_remove(namedb->names, free_names_item, NULL); g_hash_table_destroy(namedb->names); g_free(namedb); } gint get_namedb_size(struct namedb *namedb){ return g_hash_table_size(namedb->names); } #define NAMEDB_DELIM " \t\r\n" void load_one_namedb(struct namedb *namedb, gchar *s){ gchar *call, *name; char *token_ptr; call = strtok_r(s, NAMEDB_DELIM, &token_ptr); if (!call) return; name = strtok_r(NULL, NAMEDB_DELIM, &token_ptr); if (!name) return; if (strlen(call)==0 || strlen(name)==0) return; add_namedb(namedb, call, name); } int load_namedb_from_file(struct namedb *namedb, gchar *filename){ FILE *f; char s[102]; /*dbg("load_namedb_from_file(%s)\n", filename);*/ f = fopen(filename, "rt"); if (!f){ /*dbg("Can't open '%s'\n", filename);*/ return -1; } while((fgets(s, 100, f))!=NULL){ load_one_namedb(namedb,s); } fclose(f); return 0; } int load_namedb_from_mem(struct namedb *namedb, const char *file, size_t len){ GString *gs; long int pos; gs = g_string_sized_new(100); pos=0; while(1){ if (!zfile_mgets(gs, file, &pos, len, 1)) break; load_one_namedb(namedb, gs->str); } g_string_free(gs, 1); return 0; } void read_namedb_files(struct namedb *namedb){ gchar *s; int ret = 0; progress(VTEXT(T_LOAD_NAMEDB2)); /*#ifdef UNIX ret |= load_namedb_from_file(namedb, SHAREDIR"/tucnaknames"); #endif*/ s = g_strconcat(tucnak_dir, "/tucnaknames", NULL); z_wokna(s); ret |= load_namedb_from_file(namedb, s); if (ret) load_namedb_from_mem(namedb, txt_tucnaknames, sizeof(txt_tucnaknames)); g_free(s); namedb->dirty = 0; } int namedb_ret; void save_one_name(gpointer key, gpointer value, gpointer user_data){ FILE *f; gchar *call, *name; int ret; f = (FILE *) user_data; call = (gchar *) key; name = (gchar *) value; ret=fprintf(f, "%s %s\n", call, name); if (ret<=0) namedb_ret++; } int save_namedb_into_file(struct namedb *namedb, gchar *filename){ FILE *f; f = fopen(filename, "wt"); if (!f) { return errno; } namedb_ret=0; g_hash_table_foreach(namedb->names, save_one_name, (gpointer) f); fclose(f); namedb->dirty = 0; return namedb_ret; } int save_namedb(struct namedb *namedb, int verbose){ char *s; int ret; if (!namedb->dirty) return 0; s = g_strconcat(tucnak_dir, "/tucnaknames", NULL); z_wokna(s); ret=save_namedb_into_file(namedb, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ if (verbose) log_addf(VTEXT(T_SAVED_S), s); } g_free(s); return ret; } static void format_one_name(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call, *name; gs = (GString *) user_data; call = (gchar *) key; name = (gchar *) value; g_string_sprintfa(gs, "%s %s;", call, name); } int format_namedb_string(struct namedb *namedb, GString *gs){ g_hash_table_foreach(namedb->names, format_one_name, (gpointer) gs); return 0; } void add_namedb(struct namedb *namedb, gchar *call, gchar *name){ gchar *namedbi; /*dbg("add %s=%s\n", call, name);*/ namedbi = (char *)g_hash_table_lookup(namedb->names, call); if (!namedbi){ g_hash_table_insert(namedb->names, g_strdup(call), g_strdup(name)); namedb->dirty = 1; } } gchar *find_name_by_call(struct namedb *namedb, gchar *call){ gchar *namedbi; char rawcall[120]; z_get_raw_call(rawcall, call); namedbi = (gchar *) g_hash_table_lookup(namedb->names, rawcall); if (!namedbi) return NULL; return namedbi; } tucnak-4.04/src/cwdaemon.h0000644000175000017500000001146012125053311012377 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __CWDAEMON_H #define __CWDAEMON_H #include "header.h" #include "cwdaemon.h" struct cq; enum cwtype { CWD_NONE, CWD_PARPORT, CWD_TTYS, CWD_DAVAC4, CWD_CWD, CWD_WINKEY, CWD_WINKEY4x, CWD_WINKEYTCP}; struct cwdaemon { int (*init) (struct cwdaemon *); int (*free) (struct cwdaemon *); int (*reset) (struct cwdaemon *); int (*text) (struct cwdaemon *, char *); int (*sspeed) (struct cwdaemon *, int); int (*sweight) (struct cwdaemon *, int); int (*cw) (struct cwdaemon *, int); int (*ptt) (struct cwdaemon *, int); int (*ssbway) (struct cwdaemon *, int); int (*monitor) (struct cwdaemon *, int); int (*echo) (struct cwdaemon *); int (*dtune) (struct cwdaemon *, int); int (*back) (struct cwdaemon *); int (*band) (struct cwdaemon *, int bandsw); int fd; char *desc; gint speed, weight; GThread *thread; int thread_break, abort; int pipe_read, pipe_write; GString *code; GString *played; MUTEX_DEFINE(code); /* GMutex *code_mutex; #ifdef LEAK_DEBUG_LIST char *code_file; int code_line; #endif*/ struct cwdev *dev; #if defined(Z_MSC_MINGW_CYGWIN) HINSTANCE hInpOut; MUTEX_DEFINE(hInpOut); /* GMutex *hInpOut_mutex; #ifdef LEAK_DEBUG_LIST char *hInpOut_file; int hInpOut_line; #endif */ int xx; short (_stdcall *inp32)(short port); void (_stdcall *out32)(short port, short data); short baseport; unsigned char ctrl; #endif unsigned char data; #ifdef Z_HAVE_LIBFTDI struct ftdi_context *ftdi; unsigned char ftdi_state; MUTEX_DEFINE(ftdi); /* GMutex *ftdi_mutex; #ifdef LEAK_DEBUG_LIST char *ftdi_file; int ftdi_line; #endif*/ #endif int tune; int sock; unsigned char winkey_version, winkey_oldstatus; int ttys_locked; // for CWD_TTYS and CWD_WINKEY int hold_ptt; int freeing; struct zserial *zser; int zser_fd; }; extern struct cwdaemon *cwda; struct cwdaemon *init_cwdaemon(void); void free_cwdaemon(struct cwdaemon *cwda); void cwdaemon_read_handler(struct cwdaemon *cwda, char *s, char *played); void cq_cw_wait(struct cq *cq); void cq_timer_cw2(void *cq); void cwdaemon_set_defaults(struct cwdaemon *cwda, int speed); gpointer cwdaemon_thread_func(gpointer data); void cwdaemon_echo(struct cwdaemon *cwda); int cwdaemon_text(struct cwdaemon *cwda, char *text); void cwdaemon_abort(struct cwdaemon *cwda); void cwdaemon_safe_abort(struct cwdaemon *cwda); void cwdaemon_ptt(struct cwdaemon *cwda, int ptt, int hold_ptt); void cwdaemon_ssbway(struct cwdaemon *cwda, int ssbway); /* 0=microphone, 1=soundcard */ int cwdaemon_speed(struct cwdaemon *cwda, int wpm); void cwdaemon_qrq(struct cwdaemon *cwda, int qrq); void cwdaemon_qrs(struct cwdaemon *cwda, int qrs); int cwdaemon_weight(struct cwdaemon *cwda, int weight); void cwdaemon_tune(struct cwdaemon *cwda, int tune); int cwdaemon_back(struct cwdaemon *cwda); int cwdaemon_band(struct cwdaemon *, int bandsw); int cwd_init (struct cwdaemon *); int cwd_free (struct cwdaemon *); int cwd_reset (struct cwdaemon *); int cwd_text (struct cwdaemon *, char *text); int cwd_speed (struct cwdaemon *, int onoff); int cwd_weight (struct cwdaemon *, int onoff); int cwd_cw (struct cwdaemon *, int onoff); int cwd_ptt (struct cwdaemon *, int onoff); int cwd_ssbway (struct cwdaemon *, int onoff); int cwd_echo (struct cwdaemon *); void cwd_read_handler(void *arg); void cwd_tone (struct cwdaemon *cwda, int tone); int cwd_tune (struct cwdaemon *cwda, int tune); int cwd_band (struct cwdaemon *, int bandsw); struct cq{ int nr; int type; /* MOD_CW_CW, MOD_SSB_SSB */ gchar *cw_str; int cw_speed; /* 0 = unused */ int cw_repeat; /* 0 or 1 */ int cw_ts; /* tenth of second */ int cw_allowifundef; gchar *ssb_file; int ssb_repeat;/* 0 or 1 */ int ssb_ts; /* tenth of second */ int stripcall; }; struct cq *init_cq(void); struct cq *get_cq_by_number(GPtrArray *cqs, int nr); void free_cq (struct cq *cq); int cq_run_cw(struct cq *cq); int cq_run_ssb(struct cq *cq); int cq_run_by_number(int no); int cq_abort(int abort_rec); //void cq_timer_cw(void *cq); void cq_timer_ssb1(void *cq); void cq_ssb_wait(struct cq *cq); void cq_timer_ssb2(void *cq); gchar *convert_cq(struct cq *cq); gchar *convert_esc(gchar *format, int *undef, int flags, time_t now); void menu_runmode(void *arg); void menu_spmode(void *arg); void runmode(int run); void menu_extcq(void *arg); int cq_remains_run(void); int cq_remains_brk(void); void cq_timer_brk(void *arg); void ac_cq(void); #endif tucnak-4.04/src/player.h0000644000175000017500000000144111745243701012107 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __PLAYER_H #define __PLAYER_H #include "header.h" struct subwin; struct event; #define PREVIEW_H 3 #define PLAYER_H 1 int sw_player_kbd_func(struct subwin *sw, struct event *ev, int fw); int sw_player_mouse_func(struct subwin *sw, struct event *ev, int fw); void sw_player_redraw(struct subwin *sw, struct band *band, int flags); void sw_player_check_bounds(struct subwin *sw); void sw_player_raise(struct subwin *sw); void sw_player_free(struct subwin *sw); void player_play(char *filename); #endif tucnak-4.04/src/fft.h0000644000175000017500000000251412276465577011415 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011-2012 Ladislav Vaiz This pmrogram is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __FFT_H #define __FFT_H #include "header.h" #if defined(HAVE_LIBFFTW3) && defined(Z_HAVE_SDL) #include "ssbd.h" #include "subwin.h" #include #define BLUEPALx #define ZIAPAL #ifdef ZIAPAL #define FFT_COLORS 864 #endif #ifdef BLUEPAL #define FFT_COLORS 256 #endif #define FFT_AMPLEN (SSBBUFFER_LEN2/4 + 1) #define FFT_MA 8 struct fft{ fftw_plan plan; double *allocrin, *dynrin; fftw_complex *alloccout, *dyncout; size_t sizerin, sizecout; int lenrin, lencout; int n; int samplerate; int pal[FFT_COLORS]; SDL_Surface *screen; MUTEX_DEFINE(screen); int screeny; double *amp; int amplen; #ifdef USE_NEA double nea_amp[FFT_AMPLEN]; #endif }; extern struct fft *gfft; struct fft *init_fft(void); void free_fft(struct fft *fft); void fft_start(struct fft *fft, int n, int samplerate); void fft_resize(struct fft *fft, struct subwin *sw); void sw_fft_redraw(struct subwin *sw, int flags); void fft_do(struct fft *fft); int fft_pal(double amp, double min, double max); #endif #endif tucnak-4.04/src/voip.h0000644000175000017500000000341412135555736011602 00000000000000/* Tucnak - VHF contest log Copyright (C) 2013 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __VOIP_H #define __VOIP_H #include "header.h" #ifdef HAVE_SNDFILE #ifdef VOIP #define VOIPMAX 512 // maximal packet size in sizeof(short) struct ssbd; struct voippeer { char *peerid; struct sockaddr_in sin; }; struct voip { GList *jitterbuf; uint32_t seq; int dupe; int len; int sock; // for sender (spied) GPtrArray *spying; // of struct voippeer MUTEX_DEFINE(spying); // for receiver (spying) unsigned short udpport; struct voippeer *spied; GThread *thread; int thread_break; }; struct voippacket { uint32_t seq; uint16_t len; // in samples short buf[1]; // really len items }; struct voip *init_voip(void); void free_voip(struct voip *voip); struct voippacket *init_voippacket(void *srcbuf, int buflen); // len is in bytes void free_voippacket(struct voippacket *p); int voip_add(struct voip *voip, struct voippacket *p); void voip_test(struct voip *voip); void voip_spy_add(struct voip *voip, char *id, char *voipaddr); void voip_spy_update(struct voip *voip, char *id, char *voipaddr); void voip_spy_remove(struct voip *voip, char *id); void voip_spy_free(struct voippeer *p); void voip_spy_dump(struct voip *voip); void voip_spy(void *xxx); void voip_end_spy(void *xxx, void *yyy); void voip_distribute(struct voip *voip, struct voippacket *vp); int voip_receive(struct ssbd *ssbd); void *voip_thread_func(void *arg); //void voip_thread_create(struct voip *voip); //void voip_thread_join(struct voip *voip); #endif #endif #endif tucnak-4.04/src/html.c0000644000175000017500000003055212460207027011553 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "chart.h" #include "fifo.h" #include "html.h" #include "map.h" #include "qsodb.h" #include "tsdl.h" #include "session.h" #include "stats.h" #include "tsdl.h" #include "zpng.h" #define HTML_QSO_STR(item) zg_string_eprintfa("h", gs, "%s ", item); #define HTML_QSO_INT(item) g_string_sprintfa(gs, "%d ", item); #define HTML_HDR(item) g_string_sprintfa(gs, "%s\n", item); static int bandrefi = 0; gchar *qh(GString *gs, gchar *s){ char *c; g_string_truncate(gs,0); if (!s) return gs->str; for (c=s; *c!='\0'; c++) { switch (*c){ case '<': g_string_append(gs, "<"); break; case '>': g_string_append(gs, ">"); break; case '"': g_string_append(gs, """); break; case '&': g_string_append(gs, "&"); break; case '\'': g_string_append(gs, "'"); break; default: g_string_append_c(gs, *c); } } return gs->str; } void html_style(GString *gs){ g_string_sprintfa(gs, "body {\n" " font-size: 12pt;\n" /*" font-family: Tahoma, Helvetica, Arial, sans-serif}\n"*/ " font-family: Courier New, Courier-new, sans-serif}\n" "a {\n" " font-weight: bold}\n" "h1, h2, h3, h4 {\n" " font-family: Tahoma, Helvetica, Arial, sans-serif;\n" " color: #f8f8f8};\n" "h2 {\n" " margin-top: 20;\n" " margin-bottom: 5;\n" " margin-left:10 }\n" /* input { padding: 2px; margin: 2px; font-weight: normal; font-size: 12px; color: #000000; font-family: sans-serif} li { margin-bottom: 20px } p.stress{ font-style: italic} */ "table.qsos {\n" " border: black 2px solid;\n" " padding: 5px;\n" " background: #606060}\n" "th {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" "td {\n" " padding-left: 5px;\n" " padding-right: 5px}\n" "#calltest {\n" " font-family: Tahoma, Helvetica, Arial, sans-serif;\n" " font-size: 180%%;\n" " font-weight: bold}\n" "#q {\n" " text-transform: uppercase;}\n" ); } void html_header(GString *gs, gchar *title, int flags, char *bodyarg){ g_string_sprintfa(gs, "\n" "\n" "\n" ""); zg_string_eprintfa("h", gs, "%s\n", title); g_string_sprintfa(gs, "\n\n"); if (flags & HTML_CENTER) g_string_sprintfa(gs, "
\n"); g_string_sprintfa(gs, "

"); if (flags & HTML_ICON) g_string_sprintfa(gs, "\"Happy"); zg_string_eprintfa("h", gs, "%s

\n", title); } void html_ref_header(GString *gs){ zg_string_eprintfa("h", gs, "

%s: %S

\n", VTEXT(T_LOCATOR), ctest->pwwlo); g_string_sprintfa(gs, "\n"); g_string_sprintfa(gs, ""); g_string_sprintfa(gs, "\n", VTEXT(T_BAND2), VTEXT(T_SW_QSOS), VTEXT(T_POINTS), VTEXT(T_AVG)); } void html_band_ref(GString *gs, struct band *b, struct config_band *confb){ if (bandrefi++%2) g_string_sprintfa(gs, "\n"); else g_string_sprintfa(gs, "\n"); zg_string_eprintfa("h", gs, "\n", b->bandchar, b->bandname); g_string_sprintfa(gs, "\n", b->stats->nqsos); g_string_sprintfa(gs, "\n", b->stats->ntotal); if (b->stats->nqsos){ // happened always g_string_sprintfa(gs, "\n", (double)b->stats->ntotal/(double)b->stats->nqsos); } g_string_sprintfa(gs, "\n"); } void html_ref_footer(GString *gs, struct band *b, struct config_band *confb){ g_string_sprintfa(gs, "
%s%s%s%s
%s%d%d%5.1f
\n"); } void html_band_header(GString *gs, struct band *b, struct config_band *confb, int flags, struct subwin *map, struct subwin *chart){ int w, h, i; zg_string_eprintfa("h", gs, "

%s %s

\n", b->bandchar, VTEXT(T_BAND2), b->bandname); /* g_string_sprintfa(gs, "

QSOs: %d
\n", b->stats->nqsos); g_string_sprintfa(gs, "Points: %d
\n", b->stats->ntotal); g_string_sprintfa(gs, "WWLs: %d
\n", g_hash_table_size(b->stats->wwls)); g_string_sprintfa(gs, "DXCCs: %d
\n", g_hash_table_size(b->stats->dxcs)); if (b->stats->nqsos){ g_string_sprintfa(gs, "AVG: %5.2f pts/qso
\n", (double)b->stats->ntotal/(double)b->stats->nqsos); } g_string_sprintfa(gs, "

\n");*/ // statsfifo g_string_sprintfa(gs, "
");
	for (i = 5; i < b->statsfifo1->items->len ; i++){
		char *s = (char*)g_ptr_array_index(b->statsfifo1->items, i);
		g_string_sprintfa(gs, "%s\n", s);
	}
    g_string_sprintfa(gs, "
\n"); #ifdef Z_HAVE_SDL w = 640; h = 480; if (map && map->screen) { w = map->screen->w; h = map->screen->h; } g_string_sprintfa(gs, "

\"Polar

\n", flags & HTML_IMG_ROOT ? "/" : "", z_char_lc(b->bandchar), w, h, b->bandname); w = 640; h = 480; if (chart && chart->screen) { w = chart->screen->w; h = chart->screen->h; } g_string_sprintfa(gs, "

\"Chart

\n", flags & HTML_IMG_ROOT ? "/" : "", z_char_lc(b->bandchar), w, h, b->bandname); #endif g_string_sprintfa(gs, "

\n\n\n"); g_string_sprintfa(gs, "\n"); HTML_HDR("DATE"); /*HTML_HDR("BAND");*/ HTML_HDR("MODE"); HTML_HDR("TIME"); HTML_HDR("CALLSIGN"); HTML_HDR("TX"); HTML_HDR("RX"); HTML_HDR("LOCATOR"); HTML_HDR("QRB"); HTML_HDR("OPERATOR"); HTML_HDR("REMARK"); g_string_sprintfa(gs, "\n"); } void html_band_footer(GString *gs){ g_string_sprintfa(gs,"
\n\n"); } void html_footer(GString *gs, int flags){ g_string_sprintfa(gs, "

Created by Tucnak ver. %s

\n", VERSION_STRING); g_string_sprintfa(gs, "

\n" "\n" "\"Valid \n" "\n" "" "\"Viewable " "



\n"); if (flags & HTML_CENTER) g_string_append(gs, "
\n"); g_string_sprintfa(gs, "\n"); } void html_qsos(GString *gs, struct band *b, struct config_band *confb){ struct qso *q; GString *gs2; int i,j; char *html_modes[]={ "?", "SSB", "CW", "CWs", "CWr", "AM", "FM", "RTTY", "SSTV", "ATV" }; gs2 = g_string_new(""); j=0; for (i=0; iqsos->len; i++){ char time[10]; gchar *c; q = get_qso(b, i); if (q->error) continue; if (j++%2) g_string_sprintfa(gs, "\n"); else g_string_sprintfa(gs, "\n"); strcpy(time, q->time_str); time[2]='.'; time[3]=q->time_str[2]; time[4]=q->time_str[3]; time[5]='\0'; HTML_QSO_STR(q->date_str); HTML_QSO_STR(html_modes[abs(q->mode)%10]); HTML_QSO_STR(time); HTML_QSO_STR(q->callsign); c = g_strdup_printf("%s %s", q->rsts, q->qsonrs); HTML_QSO_STR(c); g_free(c); c = g_strdup_printf("%s %s", q->rstr, q->qsonrr); HTML_QSO_STR(c); g_free(c); HTML_QSO_STR(q->locator); HTML_QSO_INT((int)q->qrb); HTML_QSO_STR(q->operator_); HTML_QSO_STR(q->remark); g_string_sprintfa(gs, "\n"); } g_string_free(gs2, TRUE); } void html_complete(GString *gs, int flags){ struct band *band; struct config_band *confb; int i; GString *gs2, *title; int header_saved=0; struct subwin *map = NULL; struct subwin *chart = NULL; int oldaa; #ifdef Z_HAVE_SDL oldaa = zsdl->antialiasing; if (zsdl->antialiasing_supported) zsdl->antialiasing = 1; #endif gs2 = g_string_sized_new(100); title = g_string_sized_new(100); map = sw_raise_or_new(SWT_MAP); chart = sw_raise_or_new(SWT_CHART); bandrefi = 0; for (i=0; ibands->len; i++){ band = (struct band*)g_ptr_array_index(ctest->bands, i); confb = (struct config_band*)get_config_band_by_bandchar(band->bandchar); stats_thread_join(band); if (band->stats->nqsos <=0) continue; #if defined(Z_HAVE_SDL) && defined(Z_HAVE_LIBPNG) if (sdl && map && (flags & HTML_MAP)){ char *filename; map->gdirty = 1; map_for_photo(map, band, 0); map_recalc_gst(map, band); sw_map_redraw(map, band, HTML_FOR_PHOTO); filename = g_strdup_printf("%s/map%c.png", ctest->directory, tolower(band->bandchar)); zpng_save(map->screen, filename, NULL); /*SDL_BlitSurface(map->screen, NULL, sdl->screen, NULL); SDL_UpdateRect(sdl->screen, -1, -1, -1, -1); sleep(1);*/ g_free(filename); } if (sdl && chart && (flags & HTML_CHART)){ char *filename; chart->gdirty = 1; sw_chart_recalc_extremes(chart, band); sw_chart_redraw(chart, band, HTML_FOR_PHOTO); filename = g_strdup_printf("%s/chart%c.png", ctest->directory, tolower(band->bandchar)); zpng_save(chart->screen, filename, NULL); g_free(filename); /*SDL_BlitSurface(chart->screen, NULL, sdl->screen, NULL); SDL_UpdateRect(sdl->screen, -1, -1, -1, -1); sleep(1);-*/ } #endif if (!header_saved){ g_string_sprintf(title, "%s", ctest->pcall); z_str_uc(title->str); g_string_sprintfa(title, " - %s", ctest->tname); html_header(gs, title->str, 0, NULL); html_ref_header(gs); header_saved=1; } html_band_ref(gs, band, confb); } html_ref_footer(gs, band, confb); for (i=0; ibands->len; i++){ band = (struct band*)g_ptr_array_index(ctest->bands, i); confb = (struct config_band*)get_config_band_by_bandchar(band->bandchar); if (band->stats->nqsos <=0) continue; html_band_header(gs, band, confb, flags, map, chart); html_qsos (gs, band, confb); html_band_footer(gs); } html_footer(gs, 0); #ifdef Z_HAVE_SDL if (map) map_recalc_gst(map, aband); zsdl->antialiasing = oldaa; #endif if (chart) sw_chart_recalc_extremes(chart, aband); g_string_free(gs2, 1); g_string_free(title, 1); } int export_all_bands_html(void){ gchar *filename; FILE *f; char callbuf[20]; GString *gs; if (!ctest) return -1; dbg("export_all_bands_html()\n"); progress(VTEXT(T_EXPORTING)); gs = g_string_sized_new(300000); html_complete(gs, HTML_MAP | HTML_CHART); filename = g_strdup_printf("%s/%s_%s.html", ctest->directory, ctest->cdate, z_get_raw_call(callbuf,ctest->pcall)); z_wokna(filename); f=fopen(filename,"wt"); if (!f) { errbox(VTEXT(T_CANT_WRITE), errno); g_free(filename); g_string_free(gs, 1); progress(NULL); return -1; } if (fprintf(f, "%s", gs->str) <= 0){ errbox(VTEXT(T_CANT_WRITE), 0); g_free(filename); g_string_free(gs, 1); return -1; } fclose(f); log_addf(VTEXT(T_SAVED_S), filename); g_free(filename); g_string_free(gs, 1); progress(NULL); return 0; } tucnak-4.04/src/map.c0000644000175000017500000012143412561147554011376 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "ac.h" #include "bfu.h" #include "cor.h" #include "html.h" #include "icons.h" #include "kbdbind.h" #include "kbd.h" #include "map.h" #include "qrvdb.h" #include "rotar.h" #include "tsdl.h" #include "session.h" #include "stats.h" #include "subwin.h" #include "terminal.h" #define sqr(x) ((x)*(x)) #ifdef Z_HAVE_SDL #define INFO_W (20 * zsdl->font_w) //double rotace = 0; /* only EV_KBD */ int sw_map_kbd_func(struct subwin *sw, struct event *ev, int fw){ int lmx,lmy,step; double stepd; if (!sdl) return 0; step = (SDL_GetModState() & KMOD_SHIFT)!=0 ? 1 : 10; /*dbg("\nsw_map_kbd_func [%d,%d,%d,%d]\n",ev->ev,ev->x,ev->y,ev->b);*/ switch(kbd_action(KM_MAIN,ev)){ case ACT_ESC: return 0; break; case ACT_LEFT: sw->ox+=10; move_map(sw, aband, +step, 0); return 1; case ACT_RIGHT: sw->ox-=10; move_map(sw, aband, -step, 0); return 1; case ACT_UP: sw->oy+=10; move_map(sw, aband, 0, +step); return 1; case ACT_DOWN: sw->oy-=10; move_map(sw, aband, 0, -step); return 1; } /* dbg("sw_map_kbd_func: %c %d\n", ev->x, ev->y);*/ stepd = (SDL_GetModState() & KMOD_SHIFT)!=0 ? 1.05 : 1.3; switch(ev->x){ case '+': case '=': lmx = sw->x * FONT_W + sw->screen->w/2; lmy = sw->y * FONT_H + sw->screen->h/2; zoom(sw, stepd, lmx, lmy); break; case '-': lmx = sw->x * FONT_W + sw->screen->w/2; lmy = sw->y * FONT_H + sw->screen->h/2; zoom(sw, 1/stepd, lmx, lmy); break; /* case '1': sw->ox+=20; sw->oy+=20; move_map(sw, +20, +20); break;*/ case 'r': sw->gdirty=1; qrv_recalc_wkd(qrv); qrv_recalc_qrbqtf(qrv); qrv_recalc_gst(qrv); map_recalc_gst(sw, aband); sw_map_redraw(sw, aband, 0); break; case 'p': map_for_photo(sw, aband, 0); break; case 'c': sw->ox=sw->map.w/2; sw->oy=sw->map.h/2; sw->gdirty=1; redraw_later(); break; case 'l': sw->showlines = !sw->showlines; sw->gdirty=1; redraw_later(); break; } return 0; } void zoom(struct subwin *sw, double factor, int centerx, int centery){ int oldzoom; int kx, ky; px2km(sw, centerx, centery, &kx, &ky); oldzoom=sw->zoom; sw->zoom =(int)(sw->zoom * factor); if (sw->zoom>40000-2) sw->zoom=40000; if (sw->zoom<80) sw->zoom=80; if (sw->zoom!=oldzoom){ pxkm2o(sw, centerx, centery, kx, ky, &sw->ox, &sw->oy); } sw->gdirty=1; redraw_later(); //dbg("zoom=%d\n", sw->zoom); } int sw_map_mouse_func(struct subwin *sw, struct event *ev, int fw){ int dx,dy, lmx, lmy; double stepd; if (!sdl) return 0; /*dbg("sw_map_mouse_func\n");*/ /*rotace = ev->mx * M_PI / 180.0; sw->gdirty = 1; redraw_later();*/ sw->mx = ev->mx - sw->x * FONT_W; sw->my = ev->my - sw->y * FONT_H; stepd = (SDL_GetModState() & KMOD_SHIFT)!=0 ? 1.05 : 1.3; if ((ev->b & BM_ACT) == B_DOWN){ lmx = ev->mx - sw->x * FONT_W; lmy = ev->my - sw->y * FONT_H; if (lmx >= 0 && lmy > 0 && lmx < sdl->home->w && lmy < sdl->home->h) { map_for_photo(sw, aband, 0); return 1; } if (lmx >= sw->map.w - sdl->zoomin->w && lmy >= 0 && lmx < sw->map.w && lmy < sdl->zoomin->h) { lmx = sw->x * FONT_W + sw->screen->w/2; lmy = sw->y * FONT_H + sw->screen->h/2; zoom(sw, stepd, sw->map.w / 2, sw->map.y / 2); return 1; } if (lmx >= sw->map.w - sdl->zoomout->w && lmy >= sw->map.h - sdl->zoomout->h && lmx < sw->map.w && lmy < sw->map.h) { lmx = sw->x * FONT_W + sw->screen->w/2; lmy = sw->y * FONT_H + sw->screen->h/2; zoom(sw, 1 / stepd, sw->map.w / 2, sw->map.y / 2); return 1; } } if (ev->b & B_MOVE){ if (!gacs) plot_nearest_qso(sw, aband); //plot_nearest_qrv(sw, aband); plot_qrb_qth(sw, sw->screen, sdl->mouse_x, sdl->mouse_y); return 1; } if (ev->b & B_DRAG){ switch (ev->b & BM_EBUTT){ case B_LEFT: /* dbg("drag %d %d\n", ev->mx, ev->my);*/ dx=ev->mx - sw->olddragx; dy=ev->my - sw->olddragy; if (dx==0 && dy==0) break; sw->olddragx=ev->mx; sw->olddragy=ev->my; sw->ox+=dx; sw->oy+=dy; /*redraw_later(); */ move_map(sw, aband, dx, dy); return 1; } return 1; } switch (ev->b & BM_EBUTT){ case B_LEFT: /* dbg("left %d %d\n", ev->mx, ev->my);*/ sw->olddragx=ev->mx; sw->olddragy=ev->my; return 1; case B_MIDDLE: /* dbg("middle\n");*/ break; case B_RIGHT: /*dbg("right\n");*/ break; case B_WHUP: /*dbg("wheel up\n");*/ lmx = ev->mx - sw->x * FONT_W; lmy = ev->my - sw->y * FONT_H; zoom(sw, stepd, lmx, lmy); return 1; case B_WHDOWN: /*dbg("wheel down\n");*/ lmx = ev->mx - sw->x * FONT_W; lmy = ev->my - sw->y * FONT_H; zoom(sw, 1/stepd, lmx, lmy); return 1; } return 0; } void move_map(struct subwin *sw, struct band *band, int dx, int dy){ SDL_Rect dst, r; // dbg("\nmove_map(%d, %d)\n", dx, dy); dst.x=dx; dst.y=dy; dst.w=sw->map.w; dst.h=sw->map.h; //SDL_SetAlpha(sw->l2rot, SDL_SRCALPHA, SDL_ALPHA_OPAQUE); SDL_SetClipRect(sw->l1map, &sw->map); memcpy(&r, &dst, sizeof(r)); SDL_BlitSurface(sw->l1map, &sw->map, sw->l1map, &r); /* SDL_SetClipRect(sw->l2rot, &sw->map); memcpy(&r, &dst, sizeof(r)); SDL_BlitSurface(sw->l2rot, &sw->map, sw->l2rot, &r); */ SDL_SetClipRect(sw->screen, &sw->map); memcpy(&r, &dst, sizeof(r)); SDL_BlitSurface(sw->screen, &sw->map, sw->screen, &r); if (dx>0){ dst.x=0; dst.w=dx; dst.y=0; dst.h=sw->map.h; sw_map_redraw_rect(sw, &dst, band, 0); } if (dx<0){ dst.x=sw->map.w+dx; dst.w=-dx; dst.y=0; dst.h=sw->map.h; sw_map_redraw_rect(sw, &dst, band, 0); } if (dy>0){ dst.x=0; dst.w=sw->map.w; dst.y=0; dst.h=dy; sw_map_redraw_rect(sw, &dst, band, 0); } if (dy<0){ dst.x=0; dst.w=sw->map.w; dst.y=sw->map.h+dy; dst.h=-dy; sw_map_redraw_rect(sw, &dst, band, 0); } if (!gacs) plot_nearest_qso(sw, band); // plot_nearest_qrv(sw, band); // dbg("move_map ox=%d oy=%d\n", sw->ox, sw->oy); } void sw_map_redraw_rect(struct subwin *sw, SDL_Rect *area, struct band *band, int flags){ int fp = flags & HTML_FOR_PHOTO; if (!sw->l1map) return; // dbg("sw_map_redraw_rect: %dx%d%+d%+d\n", area->x, area->y, area->w, area->h); SDL_SetClipRect(sw->l1map, area); SDL_FillRect(sw->l1map, area, z_makecol(0, 35, 35)); /* col%=16; */ /* rect(sw->screen, area->x, area->y, area->x+area->w-1, area->y+area->h-1, 0x4000); */ /*SDL_FillRect(sw->screen, &sw->map, sdl->termcol[1]); SDL_FillRect(sw->screen, &sw->info, sdl->termcol[2]);*/ plot_cor(sw, sw->l1map, area, flags); plot_qth(sw, area); // dumpbitmap(sw->l1map); if (ctest && qrv && !fp) { plot_qrvs(sw, sw->l1map, band, area); plot_gst(sw, sw->l1map, area, qrv->gst, z_makecol(13, 121, 66)); } if (ctest && ctest->wwlused && sw->type == SWT_MAP) { plot_qsos(sw, sw->l1map, band, area); /*if (!fp)*/ plot_gst(sw, sw->l1map, area, sw->gst, z_makecol(250, 180, 52)); } // sw_map_update_rotar(sw, area); // dbg(" %dx%d%+d%+d\n", area->x, area->y, area->w, area->h); sw_map_redraw_rotar(sw, area, flags); } void sw_map_redraw_rotar(struct subwin *sw, SDL_Rect *area, int flags){ SDL_Rect rotarea; SDL_Rect r; // SDL_FillRect(sw->l2rot, area, z_makecol(0, 0, 0)); // dbg("rotarea= %dx%d%+d%+d\n", rotarea.x, rotarea.y, rotarea.w, rotarea.h); //rect2(sw->l2rot, &rotarea, z_makecol(250, 0, 0)); SDL_SetClipRect(sw->screen, area); memcpy(&r, area, sizeof(r)); SDL_BlitSurface(sw->l1map, &r, sw->screen, &r); if ((flags & HTML_FOR_PHOTO) == 0) plot_rotars(sw, sw->screen, area, &rotarea); // SDL_SetAlpha(sw->l2rot, SDL_SRCALPHA|SDL_RLEACCEL, 128); // memcpy(&r, rotarea, sizeof(r)); //dbg("r= %dx%d%+d%+d\n", r.x, r.y, r.w, r.h); // SDL_BlitSurface(sw->l2rot, &r, sw->screen, &r); // dbg("r= %dx%d%+d%+d\n", r.x, r.y, r.w, r.h); //dbg(" %dx%d%+d%+d\n", area->x, area->y, area->w, area->h); } void sw_map_update_rotar(struct subwin *sw){ SDL_Rect r; // dbg("\nsw_map_update_rotar)\n"); r.x = 0; r.y = 0; r.w = sw->screen->w; r.h = sw->screen->h; sw->gdirty=1; sw_map_redraw_rotar(sw, &r, 0); } void sw_map_redraw_icons(struct subwin *sw, SDL_Rect *area, int flags){ //SDL_Rect rotarea; SDL_Rect r; //SDL_SetClipRect(sw->screen, ); memcpy(&r, area, sizeof(r)); SDL_BlitSurface(sdl->home, NULL, sdl->screen, &r); memcpy(&r, area, sizeof(r)); r.x += sw->map.w - sdl->zoomin->w; SDL_BlitSurface(sdl->zoomin, NULL, sdl->screen, &r); memcpy(&r, area, sizeof(r)); r.x += sw->map.w - sdl->zoomout->w; r.y += sw->map.h - sdl->zoomout->h; SDL_BlitSurface(sdl->zoomout, NULL, sdl->screen, &r); // if ((flags & HTML_FOR_PHOTO) == 0) plot_rotars(sw, sw->screen, area, &rotarea); } void sw_map_redraw(struct subwin *sw, struct band *band, int flags){ struct qso *odx; if (!sdl || !sw->screen) return; //dbg("sw_map_redraw(gdirty=%d)\n", sw->gdirty); //SDL_FillRect(sw->screen, NULL, 0); //z_linea(sw->screen, 0, 0, 10, 13, z_makecol(255, 255, 255)); fill_area(sw->x, sw->y, sw->w, sw->h, 0); //return; if (!sw->gdirty) return; sw->gdirty=0; //ST_START; sw_map_redraw_rect(sw, &sw->map, band, flags); if ((flags & HTML_FOR_PHOTO) && (odx = band->stats->odx) != NULL){ struct qso *oldminqso = sw->minqso; sw->minqso = odx; plot_qso(sw, sw->screen, band, odx); plot_info_qso(sw, sw->screen, odx); //plot_info_qrv(sw, sw->screen, band, NULL); //plot_info_ac(sw, sw->screen, NULL); plot_qrb_qth(sw, sw->screen, -1, -1); sw->minqso = oldminqso; return; } acs_redraw(sw, gacs); if (!gacs) plot_info_qso(sw, sw->screen, sw->minqso); // plot_info_qrv(sw, sw->screen, band, qrv_get(qrv, sw->minqrvcall)); plot_qrb_qth(sw, sw->screen, sdl->mouse_x, sdl->mouse_y); // ST_STOP; //plot_hgts(sw, &sw->map); } void sw_map_check_bounds(struct subwin *sw){ if (!sdl) return; if (!aband) return; } void sw_map_raise(struct subwin *sw){ sw->gdirty=1; map_recalc_gst(sw, aband); if (aband){ ac_update_tmpctp(aband->tmpqsos[0].locator); } } /* km -> pixels */ void km2px(struct subwin *sw, int kx, int ky, int *px, int *py){ /*double qrb = sqrt((double)kx*kx + ky*ky); double qtf = atan2((double)ky, (double)kx); qtf += rotace; kx = qrb * cos(qtf); ky = qrb * sin(qtf);*/ *px = sw->ox + (kx * sw->zoom)/10000; *py = sw->oy + (ky * sw->zoom)/10000; } void km2px_d(struct subwin *sw, double kx, double ky, int *px, int *py){ /*double qrb = sqrt(kx*kx + ky*ky); double qtf = atan2(ky, kx); qtf += rotace; kx = qrb * cos(qtf); ky = qrb * sin(qtf);*/ *px = sw->ox + (kx * sw->zoom)/10000; *py = sw->oy + (ky * sw->zoom)/10000; } /* pixels -> km */ void px2km(struct subwin *sw, int px, int py, int *kx, int *ky){ *kx = ((px - sw->ox) * 10000)/sw->zoom; *ky = ((py - sw->oy) * 10000)/sw->zoom; } void pxkm2o(struct subwin *sw, int px, int py, int kx, int ky, int *ox, int *oy){ *ox = px - (kx * sw->zoom)/10000; *oy = py - (ky * sw->zoom)/10000; } void hw2km(double h1, double w1, double h2, double w2, int *kx, int *ky){ double qrb, qtf; hw2qrbqtf(h1, w1, h2, w2, &qrb, &qtf); /* dbg("qrb=%f qtf=%f\n", qrb, qtf);*/ *kx = (int)( qrb*sin(qtf)); *ky = (int)(- qrb*cos(qtf)); } #endif void hw2km_d(double h1, double w1, double h2, double w2, double *kx, double *ky){ double qrb, qtf; hw2qrbqtf(h1, w1, h2, w2, &qrb, &qtf); /* dbg("qrb=%f qtf=%f\n", qrb, qtf);*/ *kx = qrb*sin(qtf); *ky = - qrb*cos(qtf); } void km2qrbqtf(int kx, int ky, double *qrb, double *qtf){ int dx, dy; dx=kx; dy=ky; if (qrb){ *qrb=sqrt((double)(sqr(dx)+sqr(dy))); } if (qtf){ *qtf=atan2((double)dx,(double)-dy); if (*qtf<0) *qtf+=2*M_PI; } /* dbg("km2qrbqtf(%d, %d)=%d, %d\n",kx, ky, (int)*qrb, (int)(*qtf*180.0/M_PI));*/ } #ifdef Z_HAVE_SDL static int dashcnt; static void dashfce(SDL_Surface *surface, int x, int y, int d) { if (dashcnt++%6<3) return; z_putpixel(surface, x, y, d); } void plot_cor(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, int flags){ gpointer key; int ikx, iky, px, py, kx, ky, oldpx=0, oldpy=0, c, color=0, i; struct kmarray *kma; struct kmpoint *kmp; int minkx, minky, maxkx, maxky; if (sw->zoom == 0) zinternal("sw->zoom==0! sw->title='%s'", sw->title); /* ST_START; */ // rect2(surface,area, 0x000080); px2km(sw, area->x, area->y, &minkx, &minky); px2km(sw, area->x+area->w-1, area->y+area->h-1, &maxkx, &maxky); /*px2km(sw, 0, 0, &minkx, &minky); px2km(sw, sw->screen->w, sw->screen->h, &maxkx, &maxky);*/ // dbg("\nplot_cor: area=%dx%x+%d+%d kx=%d..%d ky=%d..%d \n", area->x, area->y, area->w, area->h, minkx, maxkx, minky, maxky); minkx &= COR_KM_MASK; minky &= COR_KM_MASK; maxkx &= COR_KM_MASK; maxky &= COR_KM_MASK; if (minkxCOR_KM_MAX) maxkx=COR_KM_MAX; if (minkyCOR_KM_MAX) maxky=COR_KM_MAX; /* dbg("kx=%d-%d ky=%d-%d\n", minkx, maxkx, minky, maxky);*/ /* big wwls (JN69) */ for (iky=minky; iky<=maxky; iky+=COR_KM_STEP) for (ikx=minkx; ikx<=maxkx; ikx+=COR_KM_STEP){ km2px(sw, ikx, iky, &px, &py); key=k2key(ikx, iky); if (sw->zoom<1000){ kma=(struct kmarray*)g_hash_table_lookup(gcor->wwl2, key); }else{ kma=(struct kmarray*)g_hash_table_lookup(gcor->wwl4, key); } if (!kma) continue; for (i=0,kmp=kma->data;ilen;i++,kmp++){ kx=kmp->kx; ky=kmp->ky; km2px(sw, kx, ky, &px, &py); if ((signed char)kmp->c < 0) { oldpx = px; oldpy = py; switch((int)(signed char)kmp->c){ case -128: color=z_makecol(184, 159, 255); break; case -127: color=z_makecol(145, 125, 122); break; default: color=z_makecol(255, 159, 255); break; } continue; } c = color; if (z_overlapped_line(area, oldpx, oldpy, px, py)) z_line(surface, oldpx, oldpy, px, py, c); oldpx = px; oldpy = py; } } /*ST_STOP; */ /*ST_START; */ /* azimuth star lines */ if (!(flags & HTML_FOR_PHOTO) && sw->showlines){ for (iky=minky; iky<=maxky; iky+=COR_KM_STEP){ for (ikx=minkx; ikx<=maxkx; ikx+=COR_KM_STEP){ km2px(sw, ikx, iky, &px, &py); key=k2key(ikx, iky); kma = (struct kmarray*)g_hash_table_lookup(gcor->az, key); if (!kma) continue; for (i=0,kmp=kma->data;ilen;i++,kmp++){ kx=kmp->kx; ky=kmp->ky; km2px(sw, kx, ky, &px, &py); if ((signed char)kmp->c < 0) { oldpx = px; oldpy = py; switch((int)(signed char)kmp->c){ case -128: color=z_makecol(240, 128, 128); break; default: color=z_makecol(180, 128, 128); break; } continue; } c = color; if (z_overlapped_line(area, oldpx, oldpy, px, py)) z_line(surface, oldpx, oldpy, px, py, c); oldpx = px; oldpy = py; } } } } /* cor */ for (iky=minky; iky<=maxky; iky+=COR_KM_STEP) for (ikx=minkx; ikx<=maxkx; ikx+=COR_KM_STEP){ km2px(sw, ikx, iky, &px, &py); key=k2key(ikx, iky); kma=(struct kmarray*)g_hash_table_lookup(gcor->km, key); if (!kma) continue; for (i=0,kmp=kma->data;ilen;i++,kmp++){ kx=kmp->kx; ky=kmp->ky; km2px(sw, kx, ky, &px, &py); if ((signed char)kmp->c<0) { oldpx = px; oldpy = py; switch((int)(signed char)kmp->c){ case -128: /* coast */ color=z_makecol(0, 255, 255); break; case -127: /* isle */ color=z_makecol(0, 255, 255); break; case -126: /* lake */ color=z_makecol(0, 95, 195); break; case -125: /* border */ color=z_makecol(0, 255, 255); break; case -100: color=z_makecol(255,0,0); break; case -101: color=z_makecol(0,255,0); break; default: dbg("unknown char %d\n", (int)(signed char)kmp->c); return; break; } continue; } c = color; /* if (abs(oldpx-px) + abs(oldpy-py) < 100) */ if (oldpx!=px || oldpy!=py) z_line(surface, oldpx, oldpy, px, py, c); /* if (oldpx==px && oldpy==py) stejne++; else ruzne++;*/ oldpx = px; oldpy = py; } } /* dbg("stejne=%d ruzne=%d\n", stejne, ruzne);*/ /*ST_STOP; */ // zsdl_test_bars(surface, 0); } void plot_qth(struct subwin *sw, SDL_Rect *area){ int px, py; SDL_Rect r; km2px(sw, 0, 0, &px, &py); r.x = px - 5; r.y = py - 3; r.w = sdl->mast->w; r.h = sdl->mast->h; /*z_line(sw->l1map, px - 100, py, px + 100, py, sdl->gr[15]); z_line(sw->l1map, px, py - 100, px, py + 100, sdl->gr[15]);*/ SDL_BlitSurface(sdl->mast, NULL, sw->l1map, &r); } void plot_qrv(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qrv_item *qi){ int kx, ky, px, py, color1, color2; SDL_Rect outline; outline.w=3; outline.h=3; kx = qi->kx; ky = qi->ky; km2px(sw, kx, ky, &px, &py); outline.x = px - 1; outline.y = py - 1; if (!z_overlapped_rect(&surface->clip_rect, &outline)) { // dbg("clipped qi\n"); return; } //dbg("kreslim qi %s [%d,%d]\n", qi->call, qi->kx, qi->ky); //dbg("q->call=%s sw->minqrvcall=%s\n", qi->call, sw->minqrvcall); /*if (sw->minqrvcall && strcmp(qi->call, sw->minqrvcall) == 0){ color1=z_makecol(193, 21, 107); color2=z_makecol(121, 13, 67); }else*/{ if (qi->wkd[band->bi] > 0){ color1=z_makecol(21, 193, 106); color2=z_makecol(13, 121, 66); }else{ color1=z_makecol(107, 107, 107); color2=z_makecol(67, 67, 67); } } z_pip(surface, px, py, color1, color2, sw->zoom); } void plot_qrvs(struct subwin *sw, SDL_Surface *surface, struct band *band, SDL_Rect *area){ int skip; int i; if (!qrv) return; if (!band) return; for (i = 0; i < qrv->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item*)g_ptr_array_index(qrv->qrvs, i); skip = qrv_skip(qi, band->bi, 1); // dbg("plot_qrvs('%s') skip=%d, bands=%d, wkd=%d\n", qi->call, skip, qi->bands_qrv, qi->bands_wkd); if (skip) continue; plot_qrv(sw, surface, band, qi); } } void plot_gst(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, double gst[360], int c){ int i,ii, x, y, oldx=0,oldy=0; double rad, r; if (sw->map.w > sw->map.h) r = sw->map.h / 2.3; else r = sw->map.w / 2.3; for (i=-1; i<360;i++) { ii = i>=0 ? i : 359; rad = M_PI * (double)(i - 90) / 180.0; x = (int)(sw->ox + r * gst[ii] * cos(rad)); y = (int)(sw->oy + r * gst[ii] * sin(rad)); if (i >= 0){ //if (overlapped_line(area, oldx, oldy, x, y)) z_line(surface, oldx, oldy, x, y, c); } oldx=x; oldy=y; } } void plot_qso(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qso *qso){ int kx, ky, px, py, color; SDL_Rect outline; outline.w=9; outline.h=9; kx = qso->kx; ky = qso->ky; km2px(sw, kx, ky, &px, &py); outline.x = px - 4; outline.y = py - 4; if (!z_overlapped_rect(&surface->clip_rect, &outline)) { /* dbg("clipped qso\n"); */ return; } /* dbg("kreslim qso\n"); */ color=qso==sw->minqso?sdl->red:sdl->yellow2; if (qso==&band->tmplocqso) { color=sdl->green; } z_cross(surface, px, py, color, sw->zoom); } void map_add_qso(struct qso *qso, struct band *band){ if (ctest && !ctest->wwlused) return; if (gses->ontop->type!=SWT_MAP) return; SDL_SetClipRect(gses->ontop->screen, &gses->ontop->map); plot_qso(gses->ontop, gses->ontop->screen, band, qso); } void plot_qsos(struct subwin *sw, SDL_Surface *surface, struct band *band, SDL_Rect *area){ int i; struct qso *qso; if (!band) return; for (i=0;iqsos->len;i++){ qso=(struct qso*)g_ptr_array_index(band->qsos, i); if (qso->error) continue; plot_qso(sw, surface, band, qso); } if (band->tmplocqso.locator && *band->tmplocqso.locator){ plot_qso(sw, surface, band, &band->tmplocqso); if (gacs) plot_path(sw, surface, band, &band->tmplocqso, &gacs->tmpqso); } } void plot_rotars(struct subwin *sw, SDL_Surface *surface, SDL_Rect *area, SDL_Rect *outarea){ struct rotar *rot; int i; double rad,r; int vx,vy,vx1,vy1,vx2,vy2; if (sw->map.w > sw->map.h) r = sw->map.h / 2.3; else r = sw->map.w / 2.3; outarea->x = (int)(sw->ox - r); outarea->y = (int)(sw->oy - r); outarea->w = (int)(2 * r + 1); outarea->h = (int)(2 * r + 1); /* for (i=0; i<16; i++){ SDL_Rect q; q.x = sw->ox-20; q.y = sw->oy-r+i*10; q.w = 20; q.h = 10; SDL_FillRect(surface, &q, sdl->termcol[i]); }*/ MUTEX_LOCK(rotars); for (i=0; ilen; i++){ rot = (struct rotar *)g_ptr_array_index(rotars, i); rad = M_PI * (double)(rot->qtf - 90) / 180.0; vx = (int)(sw->ox + r * cos(rad)); vy = (int)(sw->oy + r * sin(rad)); vx1 = (int)(sw->ox + 0.95 * r * cos(rad + 0.02)); vy1 = (int)(sw->oy + 0.95 * r * sin(rad + 0.02)); vx2 = (int)(sw->ox + 0.95 * r * cos(rad - 0.02)); vy2 = (int)(sw->oy + 0.95 * r * sin(rad - 0.02)); z_line(surface, sw->ox, sw->oy, vx, vy, rot->color); z_triangle(surface, vx, vy, vx1, vy1, vx2, vy2, rot->color); if (rot->beamwidth<=0) continue; rad = M_PI * (double)(rot->qtf - 90 + rot->beamwidth / 2) / 180.0; vx1 = (int)(sw->ox + 0.9 * r * cos(rad)); vy1 = (int)(sw->oy + 0.9 * r * sin(rad)); dashcnt=0; z_do_line(surface, sw->ox, sw->oy, vx1, vy1, rot->color, dashfce); rad = M_PI * (double)(rot->qtf - 90 - rot->beamwidth / 2) / 180.0; vx2 = (int)(sw->ox + 0.9 * r * cos(rad)); vy2 = (int)(sw->oy + 0.9 * r * sin(rad)); dashcnt=0; z_do_line(surface, sw->ox, sw->oy, vx2, vy2, rot->color, dashfce); z_do_line(surface, vx1, vy1, vx2, vy2, rot->color, dashfce); } MUTEX_UNLOCK(rotars); } void map_update_layout(struct subwin *sw){ /* dbg("map_update_layout\n");*/ sw->map.x = 0; sw->map.y = 0; sw->map.w = sw->w * FONT_W - INFO_W; sw->map.h = sw->h * FONT_H; sw->info.x = sw->w * FONT_W - INFO_W; sw->info.y = 0; sw->info.w = INFO_W; sw->info.h = sw->h * FONT_H; } int map_update_qth(struct subwin *sw){ gchar *pwwlo; // dbg("map_update_qth\n"); if (!sdl) return 0; if (ctest && ctest->pwwlo) { pwwlo=ctest->pwwlo; }else{ pwwlo = cfg->pwwlo; } if (!pwwlo) zinternal("Undefined locator"); if (sw->pwwlo && strcmp(sw->pwwlo, pwwlo)==0) { /*dbg("map_update_qth(%s (same) )\n", sw->pwwlo);*/ return 0; } zg_free0(sw->pwwlo); sw->pwwlo = g_strdup(pwwlo); /*dbg("map_update_qth(%s)\n", sw->pwwlo);*/ sw->ox=sw->map.w/2; sw->oy=sw->map.h/2; sw->myh = qth(sw->pwwlo, 0); sw->myw = qth(sw->pwwlo, 1); // dbg(" %s=%d %d\n", sw->pwwlo, sw->myh, sw->myw); cor_recalc(sw, sw->pwwlo); acs_update_qth(gacs, sw); return 1; } int maps_reload(){ int i; struct subwin *sw=NULL; if (!sdl) return 0; /*dbg("maps_reload\n");*/ for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type!=SWT_MAP && sw->type != SWT_KST) continue; sw->gdirty=1; sw->minqso=NULL; // zg_free0(sw->minqrvcall); map_update_qth(sw); } /* invalidate_bkg(NULL); in map_update_qth invalidate_cache(aband); clear_gfxstats(); gfx->dirty=1; gfx->draw=1;*/ if (gses && gses->ontop && gses->ontop->type==SWT_MAP) { gses->ontop->gdirty=1; qrv_recalc_wkd(qrv); qrv_recalc_qrbqtf(qrv); qrv_recalc_gst(qrv); map_recalc_gst(gses->ontop, aband); sw_map_redraw(gses->ontop, aband, 0); } return 0; } void map_clear_qso(struct qso *qso, struct band *band){ int kx, ky, px, py; SDL_Rect outline; struct subwin *sw; if (!sdl) return; if (ctest && !ctest->wwlused) return; if (gses->ontop->type!=SWT_MAP) goto x; if (!qso->locator || !*qso->locator) goto x; sw = gses->ontop; kx = qso->kx; ky = qso->ky; km2px(sw, kx, ky, &px, &py); outline.x = px - 4; outline.y = py - 4; outline.w = 9; outline.h = 9; if (!z_overlapped_rect(&sw->map, &outline)) goto x; sw_map_redraw_rect(sw, &outline, band, 0); x:; if (qso==&band->tmplocqso) zg_free0(qso->locator); } void map_recalc_cors(){ int i; struct subwin *sw; for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type!=SWT_MAP) continue; cor_recalc(sw, ctest->pwwlo); break; /* fixme more maps with different pwwlo. but why? */ } } struct qso *find_nearest_qso(struct band *b, int mouse_x, int mouse_y){ int i; struct qso *minq, *q; gdouble d, min; int px, py, kx, ky; struct subwin *sw; if (!b) return NULL; sw=gses->ontop; if (sw->type!=SWT_MAP) return NULL; px=mouse_x-sw->x*FONT_W; py=mouse_y-sw->y*FONT_H; px2km(sw, px, py, &kx, &ky); min=G_MAXDOUBLE; minq=NULL; for (i=0; iqsos->len; i++){ q = (struct qso *)g_ptr_array_index(b->qsos, i); if (q->error) continue; /*compute_cache(q); */ d = sqrt((double)(sqr(q->kx-kx)+sqr(q->ky-ky))); /* dbg(" %s %d %d %6.3f\n", q->callsign, q->gfx_x-mouse_x, q->gfx_y-mouse_y, d);*/ if (dcallsign, minq->locator); else dbg("nearest: NULL\n"); */ return minq; } gchar *find_nearest_qrv(struct qrvdb *qrvdb, struct band *band, int mouse_x, int mouse_y){ struct qrv_item *minqrv; gdouble d, min; int px, py, kx, ky; struct subwin *sw; int i; if (!qrvdb) return NULL; if (!band) return NULL; sw=gses->ontop; if (sw->type!=SWT_MAP) return NULL; px=mouse_x-sw->x*FONT_W; py=mouse_y-sw->y*FONT_H; px2km(sw, px, py, &kx, &ky); min=G_MAXDOUBLE; minqrv=NULL; for (i = 0; i < qrvdb->qrvs->len; i++){ struct qrv_item *qi = (struct qrv_item*)g_ptr_array_index(qrvdb->qrvs, i); if (qrv_skip(qi, band->bi, 0)) continue; /*compute_cache(q); */ d = sqrt((double)(sqr(qi->kx-kx)+sqr(qi->ky-ky))); //dbg(" %s %d %d %6.3f\n", q->call, q->kx-kx, q->ky-ky, d); if (dcall, minqrv->wwl); // else dbg("nearest_qrv: NULL\n"); if (!minqrv) return NULL; return minqrv->call; } void plot_nearest_qso(struct subwin *sw, struct band *band){ struct qso *oldminqso; if (!sdl) return; oldminqso=sw->minqso; sw->minqso=find_nearest_qso(band, sdl->mouse_x, sdl->mouse_y); /*dbg("sw->minq=%s oldminq=%s\n", sw->minq->callsign, oldminq->callsign); */ if (sw->minqso==oldminqso) return; /* dbg("minq changed %s->%s\n", oldminq->locator, sw->minq->locator); */ SDL_SetClipRect(sw->screen, &sw->map); /* dbg("clip_rect %dx%d%+d%+d\n", surface->clip_rect.x, surface->clip_rect.y, surface->clip_rect.w, surface->clip_rect.h); */ if (oldminqso) plot_qso(sw, sw->screen, band, oldminqso); if (sw->minqso) { plot_qso(sw, sw->screen, band, sw->minqso); plot_info_qso(sw, sw->screen, sw->minqso); }else{ plot_info_qso(sw, sw->screen, NULL); } } /*void plot_nearest_qrv(struct subwin *sw, struct band *band){ gchar *minqrvcall, *oldminqrvcall; if (!sdl) return; minqrvcall=find_nearest_qrv(qrv, band, sdl->mouse_x, sdl->mouse_y); if (!minqrvcall) return; //dbg("sw->minqrv=%s oldminqrv=%s\n", sw->minqrv->call, oldminqrv->call); if (sw->minqrvcall && strcmp(minqrvcall, sw->minqrvcall)==0) return; SDL_SetClipRect(sw->screen, &sw->map); oldminqrvcall = sw->minqrvcall; sw->minqrvcall = g_strdup(minqrvcall); if (oldminqrvcall) plot_qrv(sw, sw->screen, band, qrv_get(qrv, oldminqrvcall)); zg_free0(oldminqrvcall); if (minqrvcall) { struct qrv_item *qi = qrv_get(qrv, minqrvcall); plot_qrv(sw, sw->screen, band, qi); plot_info_qrv(sw, sw->screen, band, qi); }else{ plot_info_qrv(sw, sw->screen, band, NULL); } } */ void plot_info_qso(struct subwin *sw, SDL_Surface *surface, struct qso *qso){ char s[10]; int x,y; SDL_Rect rect; //dbg("plot_info_qso('%s')\n", qso ? qso->callsign : ""); rect.x=sw->info.x; // same as plot_info_ac rect.y=sw->info.y; rect.w=sw->info.w; rect.h=sw->info.y+(11*FONT_H)+12; SDL_SetClipRect(surface, &rect); SDL_FillRect(surface, &rect, z_makecol(0,0,35)) ; if (!qso) return; x=sw->info.x+4; y=sw->info.y+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GCALL), q0(qso->callsign)); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GWWL), q0(qso->locator)); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GQRB), (int)qso->qrb); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GQTF), qso->qtf); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GSEN), q0(qso->rsts), q0(qso->qsonrs)); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GRCV), q0(qso->rstr), q0(qso->qsonrr)); y+=FONT_H+4; strcpy(s,qso->time_str); s[5]=s[4]; s[4]=s[3]; s[3]=s[2]; s[2]=':'; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GTIM), s); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GOPE), q0(qso->operator_)); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GREM), q0(qso->remark)); y+=FONT_H+4; return; } /*void plot_info_qrv(struct subwin *sw, SDL_Surface *surface, struct band *band, struct qrv_item *qi){ int x,y; SDL_Rect rect; int color; //char s[256]; // dbg("plot_info_qrv(%s)\n", qrv?qrv->call:"-"); x=sw->info.x+4; y=sw->info.y+4+18*FONT_H; rect.x=sw->info.x; rect.y=y; rect.w=sw->info.w; rect.h=sw->y - y; SDL_SetClipRect(surface, &rect); SDL_FillRect(surface, &rect, z_makecol(0,0,35)) ; if (!qi) return; color=z_makecol(21, 193, 106); zsdl_printf(surface, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_GCALL), q0(qi->call)); y+=FONT_H+4; zsdl_printf(surface, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_GWWL), q0(qi->wwl)); y+=FONT_H+4; zsdl_printf(surface, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_GREM), q0(qi->text)); y+=FONT_H+4; if (!band) return; zsdl_printf(surface, x, y, color, 0, ZFONT_TRANSP, VTEXT(T_GWKD), qi->wkd[band->bi]); y+=FONT_H+4; return; }*/ int plot_qrb_qth(struct subwin *sw, SDL_Surface *surface, int mouse_x, int mouse_y){ double qrb,qtf, h2, w2; SDL_Rect rect; char buf[100]; int x, y, kx, ky; x=sw->info.x+4; y=sw->info.y+(11*FONT_H)+12; /* dbg("plot_qtb_qtf\n");*/ rect.x=sw->info.x; rect.y=y; rect.w=sw->info.w; rect.h=6 * FONT_H + 8 ; px2km(sw, mouse_x - sw->x*FONT_W, mouse_y - sw->y*FONT_H, &kx, &ky); km2qrbqtf(kx, ky, &qrb, &qtf); SDL_SetClipRect(surface, &rect); /* SDL_FillRect(surface, &sw->info, z_makecol(0,0,175)) ; */ SDL_FillRect(surface, &rect, z_makecol(0,0,35)) ; if (mouse_x < 0) return 0; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GQRB), (int)(qrb));y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GQTF), (int)(qtf*180/M_PI)); y+=FONT_H+4; /* fontoutf(surface, x, y, sdl->green, FONT_TRANSP, VTEXT(T_GINC), (int) (gst[(int)(qtf*180/M_PI)%360]/400*100));y+=FONT_H+4; */ #if 1 if (qrbqtf2hw(sw->myh, sw->myw, qrb, qtf, &h2, &w2)==0){ zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GLON), h2*180.0/M_PI, x2gramin(buf, sizeof(buf), h2*180/M_PI, "EW")); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GLAT), w2*180.0/M_PI, x2gramin(buf, sizeof(buf), w2*180/M_PI, "NS")); y+=FONT_H+4; zsdl_printf(surface, x, y, sdl->green, 0, ZFONT_TRANSP, VTEXT(T_GLOC), hw2loc(buf, h2*180/M_PI, w2*180/M_PI, 6)); y+=FONT_H+4; } #else zsdl_printf(surface, x, y, sdl->gr[15], 0, ZFONT_TRANSP, "mouse %d %d", mouse_x, mouse_y); y += FONT_H; zsdl_printf(surface, x, y, sdl->gr[15], 0, ZFONT_TRANSP, "k %d %d", kx, ky); y += FONT_H; zsdl_printf(surface, x, y, sdl->gr[15], 0, ZFONT_TRANSP, "o %d %d", sw->ox, sw->oy); y += FONT_H; zsdl_printf(surface, x, y, sdl->gr[15], 0, ZFONT_TRANSP, "z %d", sw->zoom); y += FONT_H; #endif return 0; } void map_for_photo(struct subwin *sw, struct band *band, int flags){ int i, minkx, minky, maxkx, maxky, px, py, lmx, lmy; int dx, dy; double z, z1, z2; char *wwl; if (!sdl) return; minkx = minky = 0; maxkx = maxky = 0; if (ctest && band && (flags & MAP_AC_INFO) == 0){ wwl = band->tmpqsos[0].locator; if (wwl && *wwl){ double qrb, qtf, qtfrad; qrbqtf(ctest->pwwlo, wwl, &qrb, &qtf, NULL, 2); qtfrad = qtf * M_PI / 180.0; minkx = maxkx = (int)( qrb * sin(qtfrad)); minky = maxky = (int)(- qrb * cos(qtfrad)); } } if (flags & MAP_AC_INFO){ double qrb, qtf, qtfrad; struct qso *q = &gacs->infolocqso; qrbqtf(ctest ? ctest->pwwlo : cfg->pwwlo, q->locator, &qrb, &qtf, NULL, 2); qtfrad = qtf * M_PI / 180.0; qtfrad = qtf * M_PI / 180.0; q->kx = (int)( qrb * sin(qtfrad)); q->ky = (int)(- qrb * cos(qtfrad)); if (q->kx < minkx) minkx = q->kx; if (q->ky < minky) minky = q->ky; if (q->kx > maxkx) maxkx = q->kx; if (q->ky > maxky) maxky = q->ky; } if (band && (flags & MAP_AC_INFO) == 0){ for (i=0; iqsos->len; i++){ struct qso *q = (struct qso *)g_ptr_array_index(band->qsos, i); if (q->error) continue; if (q->kx < minkx) minkx = q->kx; if (q->ky < minky) minky = q->ky; if (q->kx > maxkx) maxkx = q->kx; if (q->ky > maxky) maxky = q->ky; } } if (minkx == maxkx || minky == maxky) { //dbg("minkx=%d maxkx=%d\n", minkx, maxkx); sw->ox = sw->map.w/2; sw->oy = sw->map.h/2; return; // no qso } // dbg("x=%d..%d y=%d..%d prumer x=%d y=%d\n", minkx, maxkx, minky, maxky, (maxkx+minkx)/2, (maxky+minky)/2); km2px(sw, (maxkx+minkx)/2, (maxky+minky)/2, &px, &py); dx = sw->map.w/2 - px; dy = sw->map.h/2 - py; // dbg("px=%d py=%d map/2=%d %d sw->ox=%d sw->oy=%d dx=%d dy=%d\n", px, py, sw->map.w/2, sw->map.h/2, sw->ox, sw->oy, dx, dy); sw->ox += dx; sw->oy += dy; move_map(sw, band, dx, dy); //px = sw->map.x + 10; //py = sw->map.y + 10; // px2km(sw, px, py, &kx, &ky); z1 = ((sw->map.w - 20) * 10000.0) / (maxkx - minkx); z2 = ((sw->map.h - 20) * 10000.0) / (maxky - minky); z = z1 < z2 ? z1 : z2; // dbg("kx=%d %d px=%d %d %d %d %d\n", kx, ky, px, py, (int)z1, (int)z2, (int)z); lmx = sw->map.w/2;//sw->x * FONT_W + sw->screen->w/2; lmy = sw->map.h/2;//sw->y * FONT_H + sw->screen->h/2; zoom(sw, z/sw->zoom, lmx, lmy); } void map_recalc_gst(struct subwin *sw, struct band *band){ int i, j; int qtf2; double max; sw->beamwidth = rot_beamwidth();// / 2; for (i=0;i<=180;i++){ sw->antchar[i]=cos(M_PI/180.0*(double)i*120.0/sw->beamwidth); /* dbg("i=%3d %5.3f\n", i, antchar[i]);*/ if (sw->antchar[i]<=0) break; } for (;i<=180;i++) sw->antchar[i]=0; for (i=0; i<360; i++) sw->gst[i]=0.0; if (!band) return; for (i = 0; i < band->qsos->len; i++){ struct qso *q = (struct qso *)z_ptr_array_index(band->qsos, i); if (q->qtf<0 || q->qtf>=360) continue; for (j=0;j<=180;j++){ qtf2 = q->qtf + j; if (sw->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; sw->gst[qtf2%360] += q->qrb * sw->antchar[j]; } for (j=1;j<180;j++){ qtf2 = q->qtf - j; if (sw->antchar[j] == 0) break; if (qtf2<0) qtf2 += 360; sw->gst[qtf2%360] += q->qrb * sw->antchar[j]; } } max = 0; for (i=0; i<360; i++) if (sw->gst[i] > max) max = sw->gst[i]; if (!max) return; for (i=0; i<360; i++) sw->gst[i] = sw->gst[i] / max; } int plot_hgt(struct subwin *sw, SDL_Rect *area, int xx, int yy, char *file) { char s[256]; FILE *f; int x, y, max = -10000, min = 10000, c; strcpy(s, "../src/"); strcat(s, file); z_wokna(s); f = fopen(s, "rb"); if (f){ signed short u; for (x = 0; x <= 1201; x++){ for (y = 0; y <= 1201; y++){ if (fread(&u, sizeof(u), 1, f) != 1) break; u = ntohs(u); if (u == -32768) continue; if (u < min) min = u; if (u > max) max = u; } } fclose(f); } SDL_SetClipRect(sw->screen, &sw->map); f = fopen(s, "rb"); if (f){ signed short u; for (y = 0; y <= 1200; y++){ for (x = 0; x <= 1200; x++){ if (fread(&u, sizeof(u), 1, f) != 1) break; u = ntohs(u); if (u == -32768) { z_putpixel(sw->screen, xx + x/2 + area->x, yy + y/2 + area->y, z_makecol(0, 50, 100)); }else{ c = (u - min) * 255 / (max - min); z_putpixel(sw->screen, xx + x/2 + area->x, yy + y/2 + area->y, z_makecol(c, c, c)); } } } fclose(f); } } void plot_hgts(struct subwin *sw, SDL_Rect *area){ plot_hgt(sw, area, 0, 0, "N50E012.hgt"); plot_hgt(sw, area, 600, 0, "N50E013.hgt"); plot_hgt(sw, area, 0, 600, "N49E012.hgt"); plot_hgt(sw, area, 600, 600, "N49E013.hgt"); } #else int sw_map_kbd_func(struct subwin *sw, struct event *ev, int fw){ return 0; } int sw_map_mouse_func(struct subwin *sw, struct event *ev, int fw){ return 0; } void sw_map_redraw(struct subwin *sw, struct band *band, int flags){ } void sw_map_check_bounds(struct subwin *sw){ } void sw_map_raise(struct subwin *sw){ } int maps_reload(){ return 0; } void map_clear_qso(struct qso *qso, struct band *band){ } void map_add_qso(struct qso *qso, struct band *band){ } #endif tucnak-4.04/src/trig.c0000644000175000017500000005072512500541516011557 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "dxc.h" #include "fifo.h" #include "language2.h" #include "main.h" #include "qsodb.h" #include "rc.h" #include "terminal.h" #include "trig.h" #include "tsdl.h" #include "zstring.h" #define NOTHING 1 static int rigerr = NOTHING; #ifdef __GNUC__ #define TRTR(thr, m...) if (cfg->trace_rig >= (thr ? 2 : 1)){ \ GString *gs = g_string_new("RIG: "); \ if (thr) g_string_append(gs, " "); \ g_string_sprintfa(gs, m); \ if (rigerr != NOTHING) g_string_sprintfa(gs, ": %s", trig_short_errstr(rigerr)); \ trace(1, "%s", gs->str); \ g_string_free(gs, TRUE); \ } #else #define TRTR(thr, m, ...) if (cfg->trace_rig >= (thr ? 2 : 1)){ \ GString *gs = g_string_new("RIG"); \ if (thr) g_string_append(gs, " "); \ g_string_sprintfa(gs, m, __VA_ARGS__); \ if (rigerr != NOTHING) g_string_sprintfa(gs, ": %s", trig_short_errstr((enum rig_errcode_e)rigerr)); \ trace(1, "%s", gs->str); \ g_string_free(gs, TRUE); \ } #endif // ---------------- config_rig functions struct config_rig *get_config_rig_by_number(GPtrArray *crigs, int nr){ struct config_rig *crig; int i; for (i=0; icrigs->len; i++){ crig = (struct config_rig *)g_ptr_array_index(crigs, i); if (crig->nr==nr) return crig; } return NULL; } #ifdef HAVE_HAMLIB struct trig *get_trig_by_number(struct trigs *trigs, int nr){ struct trig *trig; int i; for (i=0; itrigs->len; i++){ trig = (struct trig *)g_ptr_array_index(trigs->trigs, i); if (trig->nr==nr) return trig; } return NULL; } struct trigs *gtrigs; ZPtrArray *riglist = NULL; // ---------------- trigs functions struct trigs *init_trigs(void){ int i, verbose = 0; struct trigs *p; p = g_new0(struct trigs, 1); p->qrg = 0.0; p->rit = 0; p->trigs = g_ptr_array_new(); for (i = 0; i < cfg->crigs->len; i++){ struct config_rig *crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); if (!crig->rig_enabled) continue; verbose |= crig->rig_verbose; } if (verbose) rig_set_debug(RIG_DEBUG_VERBOSE); else rig_set_debug(RIG_DEBUG_NONE); if (!riglist){ riglist = z_ptr_array_new(); rig_load_all_backends(); rig_list_foreach(trig_save_riglist, riglist); z_ptr_array_qsort(riglist, trig_compare); #if 0 for (i=0; ilen; i++){ struct rig_caps *caps = (struct rig_caps *)z_ptr_array_index(riglist, i); dbg("%4d %4d %-20s %s\n", i, caps->rig_model, caps->mfg_name, caps->model_name); } dbg("X\n"); #endif } for (i = 0; i < cfg->crigs->len; i++){ struct trig *trig; struct config_rig *crig = (struct config_rig *)g_ptr_array_index(cfg->crigs, i); if (!crig->rig_enabled) continue; trig = init_trig(crig); if (trig != NULL) g_ptr_array_add(p->trigs, trig); } return p; } void free_trigs(struct trigs *trigs){ int i; if (riglist){ z_ptr_array_free(riglist, TRUE); riglist = NULL; } for (i = 0; i < trigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(trigs->trigs, i); free_trig(trig); } g_ptr_array_free(trigs->trigs, 1); g_free(trigs); } void trigs_read_handler(struct trigs *trigs, int n, char **items){ char *cmd; int rignr; struct trig *trig; rignr = atoi(items[1]); cmd = items[2]; trig = get_trig_by_number(trigs, rignr); if (!trig){ TRTR(0, "#%d: Unknown rig nr", rignr); goto x; } // dbg("trig_read_handler rcvd: '%s' cmd='%s'\n", s, cmd); if (strcmp(cmd, "!")==0){ /* error */ TRTR(0, "#%d: Rig error: %s", rignr, items[3]); g_ptr_array_remove(trigs->trigs, trig); free_trig(trig); progress(NULL); goto x; } if (strcasecmp(cmd, "qrg")==0){ double freq, lo; struct band *b; struct config_rig *crig = get_config_rig_by_number(cfg->crigs, rignr); freq = atof(items[3]); lo = get_rig_lo(aband, rignr); trigs->qrg = freq + lo; TRTR(0, "#%d: New qrg %8.3f = %8.3f + %8.3f", rignr, trigs->qrg/1000000.0, freq/1000000.0, lo/1000000.0); b = find_band_by_qrg(trigs->qrg); if (b) { b->qrg = trigs->qrg; // TRTR(0, "#%d: set %s->qrg = %8.3f", rignr, b->bandname, b->qrg / 1000000.0); } if (aband && crig){ if (trigs->qrg < aband->qrg_min * 1000.0 || trigs->qrg > aband->qrg_max * 1000.0){ if (crig->rig_qrg_r2t){ if (b) activate_band(b); } } } trigs_set_qrg_except(trigs, rignr, trigs->qrg); dxc_qrg_changed(trigs->qrg); }else if (strcasecmp(cmd, "rit")==0){ trigs->rit = atol(items[3]); //dbg("get_rig(#%d)=%ld\n", rignr, trigs->rit); TRTR(0, "#%d: New rit %ld", rignr, trigs->rit); trigs_set_rit_except(trigs, rignr, trigs->rit); }else { TRTR(0, "#%d: Unknown command cmd", rignr); } x:; redraw_later(); } void trigs_set_qrg(struct trigs *trigs, double qrg){ int i; for (i = 0; i < trigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(trigs->trigs, i); trig_set_qrg(trig, qrg); } } void trigs_set_qrg_except(struct trigs *trigs, int except_rigr, double qrg){ int i; for (i = 0; i < trigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(trigs->trigs, i); if (trig->nr == except_rigr) continue; trig_set_qrg(trig, qrg); } } void trigs_set_rit_except(struct trigs *trigs, int except_rigr, double rit){ int i; for (i = 0; i < trigs->trigs->len; i++){ struct trig *trig = (struct trig *)g_ptr_array_index(trigs->trigs, i); if (trig->nr == except_rigr) continue; trig_set_rit(trig, rit); } } // rignr == -1 -> resend all trigs void trigs_resend_freq(struct trigs *trigs, int rignr){ int i; for (i = 0; i < trigs->trigs->len; i++){ struct trig *trig; if (rignr >= 0 && i != rignr) continue; trig = (struct trig *)g_ptr_array_index(trigs->trigs, i); trig_resend_freq(trig); } } void trigs_set_ptt(struct trigs *trigs, ptt_t ptt){ int i; for (i = 0; i < trigs->trigs->len; i++){ struct trig *trig; trig = (struct trig *)g_ptr_array_index(trigs->trigs, i); if (trig->ptt_t2r) trig_set_ptt(trig, ptt); } } // ---------------- trig functions struct trig *init_trig(struct config_rig *crig){ struct trig *trig; int ret; RIG *tmprig; enum rig_port_e rp = RIG_PORT_NONE; progress(VTEXT(T_INIT_RIG), crig->nr); TRTR(0, "#%d: init_trig, model=%d verbose=%d", crig->nr, crig->rig_model, crig->rig_verbose); if (!crig->rig_model) return NULL; if (crig->rig_model != 1 && crig->rig_model != 2){ if (!crig->rig_filename || !*crig->rig_filename) return NULL; } trig = g_new0(struct trig, 1); trig->nr = crig->nr; trig->poll_ms = crig->rig_poll_ms; trig->model = crig->rig_model; trig->filename = g_strdup(crig->rig_filename); trig->speed = crig->rig_speed; trig->qrg_t2r = crig->rig_qrg_t2r; trig->civaddr = crig->rig_civaddr; trig->mode_t2r = crig->rig_mode_t2r; trig->ssbcw_shift = crig->rig_ssbcw_shift; trig->clr_rit = crig->rig_clr_rit; trig->ptt_t2r = crig->rig_ptt_t2r; MUTEX_INIT(trig->jobs); tmprig = rig_init(crig->rig_model); if (tmprig){ rp = tmprig->state.rigport.type.rig; rig_cleanup(tmprig); } if (rp == RIG_PORT_SERIAL && cfg->nolocks == 0){ ret = zfhs_lock(trig->filename, 1); if (ret){ char *c = zfhs_strdup_error(ret, crig->rig_filename); log_addf(VTEXT(T_RIG_ERROR), c, crig->rig_filename); g_free(c); free_trig(trig); return NULL; } trig->locked = 1; } init_list(trig->jobs); trig->thread = g_thread_try_new("hamlib rig", trig_main, (gpointer)trig, NULL); if (!trig->thread) { log_addf(VTEXT(T_CANT_CREATE_RIG_THREAD)); g_free(trig); return NULL; } return trig; } void free_trig(struct trig *trig){ if (!trig) return; progress(VTEXT(T_FREE_RIG), trig->nr); if (trig->thread){ progress(VTEXT(T_WAIT_FOR_RIG_THR)); trig->thread_break = 1; dbg("join trig...\n"); g_thread_join(trig->thread); dbg("done\n"); trig->thread=0; } if (trig->rig){ rig_close(trig->rig); rig_cleanup(trig->rig); if (trig->locked) zfhs_unlock(trig->filename); zg_free0(trig->filename); trig->rig = NULL; } MUTEX_FREE(trig->jobs); g_free(trig); } void trig_set_mode(struct trig *trig, rmode_t mode){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_MODE; job->mode = mode; TRTR(0, "#%d: Set mode %s", trig->nr, rig_strrmode(mode)); trig_job_add(trig, job); } void trig_set_qrg(struct trig *trig, double qrg){ struct trig_job *job; double lo; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_FREQ; lo = get_rig_lo(aband, trig->nr); job->freq = qrg - lo; TRTR(0, "#%d: Set QRG %5.3f = %5.3f - %5.3f", trig->nr, job->freq / 1000000.0, qrg / 1000000.0, lo / 1000000.0); trig_job_add(trig, job); } void trig_set_mode_qrg(struct trig *trig, rmode_t mode, double qrg){ struct trig_job *job; double lo; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_MODE_FREQ; lo = get_rig_lo(aband, trig->nr); job->mode = mode; job->freq = qrg - lo; TRTR(0, "#%d: Set QRG %5.3f = %5.3f - %5.3f, mode %s", trig->nr, job->freq / 1000000.0, qrg / 1000000.0, lo / 1000000.0, rig_strrmode(mode)); trig_job_add(trig, job); } void trig_resend_freq(struct trig *trig){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_RESENDFREQ; TRTR(0, "#%d: Resend QRG", trig->nr); trig_job_add(trig, job); } void trig_set_rit(struct trig *trig, shortfreq_t rit){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_RIT; job->rit = rit; TRTR(0, "#%d: Set RIT %ld", trig->nr, rit); trig_job_add(trig, job); } void trig_set_ptt(struct trig *trig, ptt_t ptt){ struct trig_job *job; if (!trig) return; job = g_new0(struct trig_job, 1); job->cmd = TRIG_PTT; job->ptt = ptt; TRTR(0, "#%d: Set PTT %d", trig->nr, ptt); trig_job_add(trig, job); } void trig_job_add(struct trig *trig, struct trig_job *job){ MUTEX_LOCK(trig->jobs); add_to_list(trig->jobs, job); MUTEX_UNLOCK(trig->jobs); } struct trig_job *trig_job_get(struct trig *trig){ struct trig_job *job; MUTEX_LOCK(trig->jobs); if (list_empty(trig->jobs)){ MUTEX_UNLOCK(trig->jobs); return NULL; } job = trig->jobs.prev; del_from_list(job); MUTEX_UNLOCK(trig->jobs); return job; } gpointer trig_main(gpointer xxx){ //int ret; freq_t freq, oldfreq; struct trig *trig; shortfreq_t rit, oldrit, tmprit; int rigerr = NOTHING; char *civaddr_str; trig = (struct trig *)xxx; zg_thread_set_name("Tucnak trig"); TRTR(1, "trig_main(#%d, model=%d, filename='%s', speed=%d)", trig->nr, trig->model, trig->filename, trig->speed); freq = oldfreq = (freq_t)0; rit = oldrit = (shortfreq_t)0; trig->rig = rig_init(trig->model); if (!trig->rig){ zselect_msg_send(zsel, "TRIG;%d;!;Can't init rig %d", trig->nr, (int)trig->model); TRTR(1, "#%d: Can't init rig %d", trig->nr, (int)trig->model); return NULL; } safe_strncpy(trig->rig->state.rigport.pathname, trig->filename, FILPATHLEN); if (trig->speed > 0) trig->rig->state.rigport.parm.serial.rate = trig->speed; trig->rig->state.rigport.parm.serial.handshake = RIG_HANDSHAKE_NONE; trig->rig->state.rigport.timeout = 2000; civaddr_str = g_strdup_printf("%d", trig->civaddr); rig_set_conf(trig->rig, rig_token_lookup(trig->rig, "civaddr"), civaddr_str); g_free(civaddr_str); // dbg("pathname=%s\n", trig->rig->state.rigport.pathname); // dbg("type=%d\n", trig->rig->state.rigport.type.rig); rigerr = rig_open(trig->rig); TRTR(1, "rig_open(#%d, %d)", trig->nr, (int)trig->model); if (rigerr != RIG_OK){ zselect_msg_send(zsel, "TRIG;%d;!;Can't open rig %d (%s)", trig->nr, (int)trig->model, trig->rig->state.rigport.pathname); TRTR(1, "rig_open(#%d)", trig->nr); gtrigs->rigerr = trig->rigerr = rigerr; rig_cleanup(trig->rig); trig->rig = NULL; return NULL; } if (trig->model == 1){ // dummy backend rigerr = rig_set_freq(trig->rig, RIG_VFO_CURR, 144300000); } while(!trig->thread_break){ struct trig_job *job; rmode_t mode; pbwidth_t width; vfo_t vfo; if (trig->rigerr == -RIG_EIO){ zselect_msg_send(zsel, "TRIG;%d;qrg;%"PRIfreq"", trig->nr, 0.0); zselect_msg_send(zsel, "TRIG;%d;rit;%ld", trig->nr, 0L); zselect_msg_send(zsel, "TRIG;%d;!;I/O error rig %d, model %d", trig->nr, trig->nr, (int)trig->model); break; } job = trig_job_get(trig); if (!job){ usleep(trig->poll_ms * 1000); rigerr = rig_get_vfo(trig->rig, &vfo); if (rigerr == -RIG_ENAVAIL){ vfo = RIG_VFO_CURR; }else{ if (rigerr != RIG_OK) { TRTR(1, "rig_get_vfo(#%d, %s)", trig->nr, rig_strvfo(vfo)); gtrigs->rigerr = trig->rigerr = rigerr; continue; } } usleep(trig->poll_ms * 1000); rigerr = rig_get_freq(trig->rig, vfo, &freq); if (rigerr != RIG_OK){ TRTR(1, "rig_get_freq(#%d, %s)", trig->nr, rig_strvfo(vfo)); gtrigs->rigerr = trig->rigerr = rigerr; //dbg("rig_get_freq()=%d\n", status); continue; }else{ if (trig->rigerr != RIG_OK) oldfreq = -1; gtrigs->rigerr = trig->rigerr = RIG_OK; } //dbg("TRIG;qrg;%"PRIfreq"\n", freq); if (freq != oldfreq){ oldfreq = freq; TRTR(1, "rig_get_freq(#%d, %s, %5.3f)", trig->nr, rig_strvfo(vfo), freq / 1000000.0); // dbg("get_freq: %8.3f\n", freq / 1000000.0); zselect_msg_send(zsel, "TRIG;%d;qrg;%"PRIfreq"", trig->nr, freq); } rigerr = rig_get_rit(trig->rig, vfo, &tmprit); if (rigerr != RIG_OK && rigerr != -RIG_ENAVAIL){ gtrigs->rigerr = trig->rigerr = rigerr; TRTR(1, "rig_get_rit(#%d, %s)", trig->nr, rig_strvfo(vfo)); } if (rigerr != -RIG_EINVAL){ rit = tmprit; if (rit != oldrit){ oldrit = rit; TRTR(1, "rig_get_rit(#%d, %s, %ld)", trig->nr, rig_strvfo(vfo), rit); zselect_msg_send(zsel, "TRIG;%d;rit;%ld", trig->nr, rit); } } continue; } switch(job->cmd){ case TRIG_MODE: usleep(trig->poll_ms * 1000); rigerr = rig_get_mode(trig->rig, RIG_VFO_CURR, &mode, &width); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; TRTR(1, "rig_get_mode(#%d, RIG_VFO_CURR)", trig->nr); break; } usleep(trig->poll_ms * 1000); rigerr = rig_set_mode(trig->rig, RIG_VFO_CURR, job->mode, width /*RIG_PASSBAND_NORMAL*/); TRTR(1, "rig_set_mode(#%d, RIG_VFO_CURR, %s, %ld)", trig->nr, rig_strrmode(job->mode), width); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; break; } break; case TRIG_FREQ: usleep(trig->poll_ms * 1000); rigerr = rig_set_freq(trig->rig, RIG_VFO_CURR, job->freq); TRTR(1, "rig_set_freq(#%d, RIG_VFO_CURR, %8.3f)", trig->nr, job->freq / 1000000.0); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; break; } break; case TRIG_MODE_FREQ: usleep(trig->poll_ms * 1000); rigerr = rig_get_mode(trig->rig, RIG_VFO_CURR, &mode, &width); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; TRTR(1, "rig_get_mode(#%d, RIG_VFO_CURR)", trig->nr); break; } //dbg("mode=%d job->mode=%d\n", mode, job->mode); if (mode == job->mode) break; usleep(trig->poll_ms * 1000); rigerr = rig_set_mode(trig->rig, RIG_VFO_CURR, job->mode, width /*RIG_PASSBAND_NORMAL*/); TRTR(1, "rig_set_mode(#%d, RIG_VFO_CURR, %s, %ld", trig->nr, rig_strrmode(job->mode), width); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; break; } usleep(trig->poll_ms * 1000); rigerr = rig_set_freq(trig->rig, RIG_VFO_CURR, job->freq); TRTR(1, "rig_set_freq(#%d, RIG_VFO_CURR, %8.3f)", trig->nr, job->freq / 1000000.0); // dbg("set_freq: %8.3f\n", job->freq/1000000.0); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; break; } break; case TRIG_RESENDFREQ: zselect_msg_send(zsel, "TRIG;%d;qrg;%"PRIfreq"", trig->nr, freq); zselect_msg_send(zsel, "TRIG;%d;rit;%"PRIfreq"", trig->nr, rit); break; case TRIG_RIT: // dbg("rig_set_rit(#%d,%d, %ld)\n", trig->nr, RIG_VFO_CURR, job->rit); usleep(trig->poll_ms * 1000); rigerr = rig_set_rit(trig->rig, RIG_VFO_CURR, job->rit); TRTR(1, "rig_set_rit(#%d, RIG_VFO_CURR, %ld)", trig->nr, job->rit); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; break; } break; case TRIG_PTT: usleep(trig->poll_ms * 1000); rigerr = rig_set_ptt(trig->rig, RIG_VFO_CURR, job->ptt); TRTR(1, "rig_set_ptt(#%d, RIG_VFO_CURR, %d)", trig->nr, job->ptt); if (rigerr != RIG_OK) { gtrigs->rigerr = trig->rigerr = rigerr; break; } break; } } return 0; } int trig_save_riglist(const struct rig_caps *caps, void *data){ ZPtrArray *riglist = (ZPtrArray *)data; z_ptr_array_add(riglist, (struct rig_caps *)caps); return -1; } int trig_compare (const void *a, const void *b){ struct rig_caps **rca, **rcb; int d; rca = (struct rig_caps **)a; rcb = (struct rig_caps **)b; if (!*rca && !*rcb) return 0; if (!*rca) return -1; if (!*rcb) return +1; d = strcasecmp((*rca)->mfg_name, (*rcb)->mfg_name); if (d) return d; return strcasecmp((*rca)->model_name, (*rcb)->model_name); } char *trig_short_errstr(enum rig_errcode_e error){ static char s[20]; switch ((int)error){ case RIG_OK: return "OK"; case -RIG_EINVAL: return VTEXT(T_INVALID_PARAM); case -RIG_ECONF: return VTEXT(T_RIG_INVALID_CONFIG); case -RIG_ENOMEM: return VTEXT(T_RIG_NOT_ENOUGH_MEM); case -RIG_ENIMPL: return VTEXT(T_RIG_NOT_IMPLEMENTED); case -RIG_ETIMEOUT: return VTEXT(T_RIG_COMM_TIMEOUT); case -RIG_EIO: return VTEXT(T_RIG_IO_ERROR); case -RIG_EINTERNAL: return VTEXT(T_RIG_INTERNAL_ERROR); case -RIG_EPROTO: return VTEXT(T_PROTOCOL_ERROR); case -RIG_ERJCTED: return VTEXT(T_RIG_COMMAND_REJECT); case -RIG_ETRUNC: return VTEXT(T_RIG_ARG_TRUNCATED); case -RIG_ENAVAIL: return VTEXT(T_RIG_F_NOT_AVAILABLE); case -RIG_ENTARGET: return VTEXT(T_RIG_VFO_NOT_TARGET); case -RIG_BUSERROR: return VTEXT(T_RIG_ERROR_ON_BUS); case -RIG_BUSBUSY: return VTEXT(T_RIG_BUS_COLLISION); case -RIG_EARG: return VTEXT(T_RIG_INVALID_ARG); case -RIG_EVFO: return VTEXT(T_RIG_INVALID_VFO); case -RIG_EDOM: return VTEXT(T_RIG_ARG_OUT_OF_DOM); case NOTHING: return ""; default: sprintf(s, VTEXT(T_ERROR_D), (int)error); return s; } } #endif tucnak-4.04/src/ntpq.c0000644000175000017500000000646512460207027011577 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fifo.h" #include "language2.h" #include "main.h" #include "ntpq.h" #include "qsodb.h" #include "tsdl.h" #ifdef Z_UNIX struct ntpq *ntpq = NULL; struct ntpq *init_ntpq(){ struct ntpq *ntpq; progress(VTEXT(T_INIT_NTP)); ntpq = g_new0(struct ntpq, 1); ntpq->buf = g_string_sized_new(1024); ntpq->good = 1; ntpq->timer = zselect_timer_new(zsel, 1000, ntpq_timer, ntpq); return ntpq; } void free_ntpq(struct ntpq *ntpq){ progress(VTEXT(T_FREE_NTP)); if (ntpq->pid) kill(ntpq->pid, SIGTERM); if (ntpq->rfd>=0) close(ntpq->rfd); if (ntpq->timer) zselect_timer_kill(zsel, ntpq->timer); g_free(ntpq); } void ntpq_timer(void *arg){ int fds[2], i; struct ntpq *ntpq; char errbuf[1024]; /*dbg("ntpq_timer()\n");*/ ntpq=(struct ntpq *)arg; ntpq->timer=0; if (pipe(fds)) zinternal("Can't create thread pipe"); /* dbg("pipe=%d %d\n", fds[0], fds[1]);*/ ntpq->rfd=fds[0]; ntpq->pid=fork(); if (ntpq->pid<0) { dbg("Can't fork for ntpq\n"); return; } if (ntpq->pid==0){ /* child */ setenv("TERM", "dumb", 1); for (i=0;i<1024;i++) { if (i==fds[1]) continue; close(i); } open("/dev/null", O_RDONLY); if (dup(fds[1]) < 0) exit(-1); if (dup(fds[1]) < 0) exit(-1); execlp("ntpq", "ntpq", "-pn", NULL); fprintf(stderr, " exec failed errno=%d %s\n", errno, strerror_r(errno, errbuf, sizeof(errbuf))); exit(-1); } /* parent */ ntpq->rfd=fds[0]; close(fds[1]); zselect_set(zsel, ntpq->rfd, ntpq_read_handler, NULL, NULL, ntpq); } void ntpq_read_handler(void *arg){ char s[1030]; int ret,good; gchar *c, *d; struct ntpq *ntpq; ntpq=(struct ntpq *)arg; /* dbg("read...\n");*/ ret=read(ntpq->rfd, s, 1024); /* dbg("read=%d\n", ret);*/ //err=errno; if (ret<0){ /* dbg("ntpq read error\n");*/ zselect_set(zsel, ntpq->rfd, NULL, NULL, NULL, NULL); close(ntpq->rfd); ntpq->timer = zselect_timer_new(zsel, 50001, ntpq_timer, ntpq); return; } if (ret==0){ good=0; for (d=ntpq->buf->str; *d!='\0'; d++){ if (*d=='*') { safe_strncpy(s, d+1, 10); c=strchr(s, '.'); if (!c) break; *c='\0'; if (strcmp(s, "127")==0) break; /* local clock */ good=1; break; } for (;*d!='\0';d++){ if (*d!='\n') continue; break; } } if (ctest && !ctest->oldcontest && ntpq->oldgood!=good) { ntpq->oldgood=good; if (!good){ log_addf(VTEXT(T_NO_NTP)); } } ntpq->good=good; /*dbg("ntpq->good=%d\n", ntpq->good);*/ g_string_truncate(ntpq->buf, 0); zselect_set(zsel, ntpq->rfd, NULL, NULL, NULL, NULL); close(ntpq->rfd); if (good) ntpq->timer = zselect_timer_new(zsel, 30*60*1000, ntpq_timer, ntpq); else ntpq->timer = zselect_timer_new(zsel, 2*60*1000, ntpq_timer, ntpq); return; } s[ret]='\0'; /*dbg("ntpq_read_handler('%s');\n", s);*/ g_string_append(ntpq->buf, s); } #endif tucnak-4.04/src/edi.h0000644000175000017500000000160712222216667011362 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __EDI_H #define __EDI_H #include "header.h" struct qso; struct band; struct contest; int save_all_bands_txt(int is_autosave); int check_autosave(void); void load_contest_edi(const gchar *date, int edi); void add_qso_str1(GString *gs, struct qso *q, struct band *b); void add_qso_str2(GString *gs, struct qso *q, struct band *b); void add_qso_str3(GString *gs, struct qso *q, struct band *b); void import_edi (void *xxx, char *filename); void import_swap(void *xxx, char *filename); void dump_all_sources(struct contest *ctest); int save_desc_to_file(gchar *filename); int export_all_bands_edi(void); #endif tucnak-4.04/src/tregex.c0000644000175000017500000000437012500546120012077 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "tregex.h" /* returns zero if matching */ int regcmp(char *string, char *regex){ regex_t preg; int ret; ret = regcomp(&preg, regex, REG_EXTENDED | REG_NOSUB); if (ret) zinternal("regcomp failed"); ret = regexec(&preg, string, 0, 0, 0); regfree(&preg); return ret; } int regcmpi(char *string, char *regex){ regex_t preg; int ret; ret = regcomp(&preg, regex, REG_EXTENDED | REG_NOSUB | REG_ICASE); if (ret) zinternal("regcomp failed"); ret = regexec(&preg, string, 0, 0, 0); regfree(&preg); return ret; } /* returns zero if matching */ #ifdef LEAK_DEBUG_LIST int debug_regmatch(char *file, int line, const char *string, char *regex, ...){ #else int regmatch(const char *string, char *regex, ...){ #endif regex_t preg; regmatch_t match[MAX_MATCHES]; va_list ap; int ret,i; char **ppc; /* dbg("regmatch('%s','%s')\n", string, regex);*/ ret = regcomp(&preg, regex, REG_EXTENDED); if (ret) zinternal("regcomp failed, regex='%s'", regex); ret = regexec(&preg, string, MAX_MATCHES, match, 0); regfree(&preg); if (ret) return ret; /* dbg("regmatch '%s'~=/%s/; \n",string,regex);*/ va_start(ap,regex); for (i=0; i This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #ifdef USE_SDR #include "sdr.h" #include "button.h" #include "dsp.h" #include "fifo.h" #include "kbd.h" #include "language2.h" #include "main.h" #include "rc.h" #include "trig.h" #include "tsdl.h" #define sqr(x) ((x)*(x)) #define F2PX(hz) ((((hz) + gsdr->samplerate / 2) * (gsdr->screen->w - 1)) / gsdr->samplerate) #define PX2F(x) (((x) * gsdr->samplerate) / (gsdr->screen->w - 1) - gsdr->samplerate / 2) #define DX2DF(x) ((double)((dx) * gsdr->samplerate) / (gsdr->screen->w - 1)) #define F2BIN(hz) ((((hz) * gsdr->n) / gsdr->samplerate + gsdr->n) % gsdr->n) #define BIN2F(bin) ((((bin) < gsdr->n / 2 ? (bin) : (bin - gsdr->n)) * gsdr->samplerate) / gsdr->n) #define F2SBIN(hz) (((hz) * gsdr->n) / gsdr->samplerate) #define SBIN2BIN(sbin) (((sbin) < 0 ? (sbin + gsdr->n) : (sbin))) struct sdr *gsdr; /*static inline void zcplx_mul(fftw_complex *out, fftw_complex x, fftw_complex y) { (*out)[0] = x[0] * y[0] - x[1] * y[1]; (*out)[1] = x[1] * y[0] + x[0] * y[1]; } */ int sw_sdr_kbd_func(struct subwin *sw, struct event *ev, int fw){ if (!gsdr) return 0; if (!sdl) return 0; switch (ev->x){ case 'c': case 'C': sdr_cw(sw); break; case 'l': case 'L': sdr_lsb(sw); break; case 's': case 'S': sdr_ssb(sw); break; case 'u': case 'U': sdr_usb(sw); break; } return 0; } int sw_sdr_mouse_func(struct subwin *sw, struct event *ev, int fw){ int step = 100; if (!gsdr) return 0; if (!sdl) return 0; sw->mx = ev->mx - sw->x * FONT_W; sw->my = ev->my - sw->y * FONT_H; zchart_mouse(sw->chart, sw->mx, sw->my); /*{ // TODO sw->gdirty = 1; redraw_later(); } */ /*f (ev->b & B_MOVE) { int f, b, sbin, bin2; f = PX2F(sw->mx); b = F2BIN(f); sbin = F2SBIN(f); bin2 = SBIN2BIN(sbin); //dbg("f=%6d b=%5d sbin=%6d bin2=%5d\n", f, b, sbin, bin2); return 0; } */ dbg("ev->b = 0x%04x\n", ev->b); if ((ev->b & B_DRAG) != 0 && (ev->b & BM_EBUTT) == B_RIGHT){ //if (sw->my < sw->fft_wf_y + sw->fft_wf_h){ if (sw->my < sw->fft_sp_y + sw->fft_sp_h){ int dx = ev->mx - sw->olddragx; if (dx != 0){ SDL_Rect r; double df = DX2DF(dx); dbg("sdr dx=%d = %f hz\n", dx, df); #ifdef HAVE_HAMLIB trigs_set_qrg(gtrigs, gtrigs->qrg - df); #endif sdr_filter_tune(gsdr, gsdr->filter->zero + df); MUTEX_LOCK(sw->screen); r.y = sw->fft_wf_y; r.h = sw->fft_wf_h; r.x = -dx; r.w = sw->screen->w; SDL_BlitSurface(sw->screen, &r, sw->screen, NULL); if (dx > 0){ r.x = 0; r.w = dx; }else{ r.x = r.w + dx; r.w = dx; } SDL_FillRect(sw->screen, &r, 0); MUTEX_UNLOCK(sw->screen); } } } if (SDL_GetModState() & KMOD_SHIFT) step = 1000; if (SDL_GetModState() & KMOD_CTRL) step = 10000; switch (ev->b & BM_EBUTT){ case B_WHUP: sdr_filter_tune(gsdr, gsdr->filter->zero + step); sw->gdirty = 1; break; case B_WHDOWN: sdr_filter_tune(gsdr, gsdr->filter->zero - step); sw->gdirty = 1; break; case B_RIGHT: sw->olddragx = ev->mx; break; case B_LEFT: if (/*sw->my >= sw->fft_sp_y &&*/ sw->my < sw->fft_sp_y + sw->fft_sp_h){ double freq = PX2F(sw->mx); freq -= (gsdr->filter->low + gsdr->filter->high) / 2; sdr_filter_tune(gsdr, freq); }else{ buttons_mouse(sw->buttons, ev->b, sw->mx, sw->my); } sw->gdirty = 1; break; } sw_sdr_check_bounds(sw); return 0; } void sw_sdr_check_bounds(struct subwin *sw){ if (!sdl) return; if (!gsdr) return; if (!gsdr->filter) return; } void sw_sdr_raise(struct subwin *sw){ sw->gdirty=1; } struct sdr *init_sdr(void){ int i, j = 0, r, f; struct sdr *sdr; if (!cfg->sdr_enable) return NULL; if (!sdl) return NULL; sdr = g_new0(struct sdr, 1); sdr->n = cfg->sdr_block; sdr->frames = sdr->n / 2; sdr->samples = sdr->frames * 2; sdr->bfo_phase = 0.0; sdr->load = -1; sdr->butbg = z_makecol(0, 128, 128); MUTEX_INIT(sdr->screen); MUTEX_INIT(sdr->filter); for (i = 128; i < 256; i++){ r = (i-128)*2; f = 255 - r; sdr->pal[j++] = z_makecol(0, 0, r); } for (i = 256; i < 512; i++){ r = i - 256; f = 255 - r; sdr->pal[j++] = z_makecol(0, r, 255); } for (i = 512; i < 768; i++){ r = i - 512; f = 255 - r; sdr->pal[j++] = z_makecol(r, 255, f); } for (i = 768; i < 1024-32; i++){ r = i - 768; f = 255 - r; sdr->pal[j++] = z_makecol(255, f, 0); } for (i = 0; i < FFT_COLORS; i++){ int val = (z_r(sdl->screen, sdr->pal[i]) * 30 + z_g(sdl->screen, sdr->pal[i]) * 59 + z_b(sdl->screen, sdr->pal[i]) * 11) / 100; sdr->grpal[i] = z_makecol(val, val, val); } // initial filter, rewritten after source DSP open sdr->samplerate = cfg->sdr_speed ? cfg->sdr_speed : 48000; sdr->filter = init_sdr_filter(sdr, cfg->sdr_zero, 1000, 2000, sdr->samplerate , sdr->n / 4 + 1); sdr->agc_gain = 200.0; // experimental, was 1.0; sdr->iqdsp = init_dsp((enum dsp_type)cfg->sdr_rec_dsp_type, DCG_SDR); sdr->iqdsp->set_sdr_format(sdr->iqdsp, sdr->frames, cfg->sdr_speed, 1); sdr->afdsp = init_dsp((enum dsp_type)cfg->sdr_play_dsp_type, DCG_SDR); sdr->afdsp->set_sdr_format(sdr->afdsp, sdr->frames, cfg->sdr_af_speed, 0); sdr->iq = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * sdr->n); sdr->bins = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * sdr->n); sdr->iout = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * sdr->n); sdr->qout = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * sdr->n); sdr->plan_f = fftw_plan_dft_1d(sdr->n, sdr->iq, sdr->bins, FFTW_FORWARD, FFTW_ESTIMATE); sdr->plan_bi = fftw_plan_dft_1d(sdr->n, sdr->bins, sdr->iout, FFTW_BACKWARD, FFTW_ESTIMATE); sdr->plan_bq = fftw_plan_dft_1d(sdr->n, sdr->bins, sdr->qout, FFTW_BACKWARD, FFTW_ESTIMATE); sdr->amplen = sdr->n; sdr->amp = g_new0(double, sdr->amplen); sdr->nea_amp = g_new0(double, sdr->amplen); sdr->sndbuf = g_new0(short, sdr->frames * 2); dbg("init_sdr=%p\n", sdr); return sdr; } void free_sdr(struct sdr *sdr){ dbg("free_sdr(%p)\n", sdr); if (!sdr) return; sdr_stop(sdr); free_dsp(sdr->iqdsp); free_dsp(sdr->afdsp); g_free(sdr->amp); g_free(sdr->nea_amp); g_free(sdr->sndbuf); fftw_destroy_plan(sdr->plan_f); fftw_destroy_plan(sdr->plan_bi); fftw_destroy_plan(sdr->plan_bq); fftw_free(sdr->iq); fftw_free(sdr->bins); fftw_free(sdr->iout); sdr->iout = NULL; fftw_free(sdr->qout); g_free(sdr->wfvec); free_sdr_filter(sdr->filter); MUTEX_FREE(sdr->screen); MUTEX_FREE(sdr->filter); g_free(sdr); } struct sdr *sdr_start(struct sdr *sdr){ dbg("sdr_start(%p)\n", sdr); if (!sdr) return sdr; if (sdr->thread) return sdr; sdr->thread_break = 0; sdr->thread = g_thread_try_new("Tucnak SDR", sdr_thread_func, (gpointer)sdr, NULL); if (!sdr->thread){ log_addf(VTEXT(T_CANT_CREATE_SDR_THR)); free_sdr(sdr); return NULL; } return sdr; } void sdr_stop(struct sdr *sdr){ dbg("sdr_stop(%p)\n", sdr); if (!sdr) return; if (sdr->thread){ progress(VTEXT(T_WAIT_FOR_SDR_THR)); sdr->thread_break = 1; dbg("join sdr...\n"); g_thread_join(sdr->thread); dbg("done\n"); sdr->thread = NULL; } } void sdr_read_handler(struct sdr *sdr, gchar *cmd, gchar *arg){ /*dbg("sdr_read_handler\n");*/ switch(cmd[0]){ case 'D': #ifdef Z_HAVE_SDL if (gses && gses->ontop->type == SWT_SDR){ gses->ontop->gdirty = 1; } #endif redraw_later(); case '!': log_adds(arg); redraw_later(); break; } } struct sdr_filter *init_sdr_filter(struct sdr *sdr, double zero, double low, double high, double samplerate, int size){ int i, midpoint; double fc, ff; struct sdr_filter *filter; fftw_plan plan; fftw_complex /* *iq */ *h; filter = g_new0(struct sdr_filter, 1); filter->zero = zero; filter->low = low; filter->high = high; filter->window_size = size; if (gsdr && gsdr->samplerate > 0) filter->zero_bin = F2BIN((int)filter->zero); if ((size & 1) == 0) size++; midpoint = size / 2 + 1; low += zero; high += zero; low /= samplerate; high /= samplerate; fc = (high - low) / 2.0; ff = (low + high) * M_PI; filter->fbins = (fftw_complex*)fftw_malloc(sdr->n * sizeof(fftw_complex)); filter->window = g_new0(double, size); filter->window_iq = (fftw_complex*)fftw_malloc(sdr->n * sizeof(fftw_complex)); memset(filter->window_iq, 0, sdr->n * sizeof(fftw_complex)); for (i = 0; i < size; i++){ filter->window[i] = + 0.35875 - 0.48829 * cos(2.0 * M_PI * (i + 0.5) / (size - 1)) + 0.14128 * cos(4.0 * M_PI * (i + 0.5) / (size - 1)) - 0.01168 * cos(6.0 * M_PI * (i + 0.5) / (size - 1)); } h = filter->window_iq + sdr->n - size; // RHS for (i = 1; i <= size; i++){ // windowed sinc filter int j = i - 1; int k = i - midpoint; double tmp, ph = ff * k; if (k == 0){ tmp = 2.0 * fc; }else{ tmp = filter->window[j] * sin(2 * M_PI * k * fc) / (M_PI * k); } tmp *= 2.0; h[j][0] = tmp * cos(ph); h[j][1] = tmp * sin(ph); } plan = fftw_plan_dft_1d(sdr->n, filter->window_iq, filter->fbins, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(plan); fftw_destroy_plan(plan); if (filter->zero != 0.0) sdr->bfo_inc = 2 * M_PI * filter->zero / samplerate; return filter; } void free_sdr_filter(struct sdr_filter *filter){ if (!filter) return; fftw_free(filter->window_iq); g_free(filter->window); fftw_free(filter->fbins); g_free(filter); } void sdr_new_filter(struct sdr *sdr, double zero, double cw_low, double cw_high, double ssb_low, double ssb_high){ struct sdr_filter *oldfilter, *newfilter; double low, high; if (cfg->sdr_cw){ low = cw_low; high = cw_high; }else{ low = ssb_low; high = ssb_high; } newfilter = init_sdr_filter(sdr, zero, low, high, sdr->samplerate, sdr->filter->window_size); MUTEX_LOCK(sdr->filter); oldfilter = sdr->filter; sdr->filter = newfilter; MUTEX_UNLOCK(sdr->filter); free_sdr_filter(oldfilter); cfg->sdr_zero = zero; cfg->sdr_cw_low = cw_low; cfg->sdr_cw_high = cw_high; cfg->sdr_ssb_low = ssb_low; cfg->sdr_ssb_high = ssb_high; } void sdr_filter_tune(struct sdr *sdr, double zero){ if (zero + sdr->filter->low < -sdr->samplerate / 2) zero = -sdr->samplerate / 2 - sdr->filter->low; if (zero + sdr->filter->high > sdr->samplerate / 2) zero = sdr->samplerate / 2 - sdr->filter->high; sdr_new_filter(sdr, zero, cfg->sdr_cw_low, cfg->sdr_cw_high, cfg->sdr_ssb_low, cfg->sdr_ssb_high); } void sdr_ssb(void *xxx){ struct subwin *sw = (struct subwin *)xxx; dbg("sdr_ssb\n"); cfg->sdr_cw = 0; sw->sdr_ssb->bcolor = gsdr->butbg; sw->sdr_cw->bcolor = 0; sdr_new_filter(gsdr, gsdr->filter->zero, cfg->sdr_cw_low, cfg->sdr_cw_high, cfg->sdr_ssb_low, cfg->sdr_ssb_high); redraw_later(); } void sdr_cw(void *xxx){ struct subwin *sw = (struct subwin *)xxx; dbg("sdr_cw\n"); cfg->sdr_cw = 1; sw->sdr_cw->bcolor = gsdr->butbg; sw->sdr_ssb->bcolor = 0; sdr_new_filter(gsdr, gsdr->filter->zero, cfg->sdr_cw_low, cfg->sdr_cw_high, cfg->sdr_ssb_low, cfg->sdr_ssb_high); redraw_later(); } void sdr_usb(void *xxx){ struct subwin *sw = (struct subwin *)xxx; dbg("sdr_usb\n"); if (cfg->sdr_lsb == 1){ int newzero = gsdr->filter->zero + gsdr->filter->high + gsdr->filter->low ; sdr_new_filter(gsdr, newzero, -cfg->sdr_cw_high, -cfg->sdr_cw_low, -cfg->sdr_ssb_high, -cfg->sdr_ssb_low); } cfg->sdr_lsb = 0; sw->sdr_usb->bcolor = gsdr->butbg; sw->sdr_lsb->bcolor = 0; redraw_later(); } void sdr_lsb(void *xxx){ struct subwin *sw = (struct subwin *)xxx; dbg("sdr_lsb\n"); if (cfg->sdr_lsb == 0){ int newzero = gsdr->filter->zero + gsdr->filter->high + gsdr->filter->low ; sdr_new_filter(gsdr, newzero, -cfg->sdr_cw_high, -cfg->sdr_cw_low, -cfg->sdr_ssb_high, -cfg->sdr_ssb_low); } cfg->sdr_lsb = 1; sw->sdr_lsb->bcolor = gsdr->butbg; sw->sdr_usb->bcolor = 0; redraw_later(); } void sdr_resize(struct sdr *sdr, struct subwin *sw){ //dbg("sdr_resize\n"); SDL_Surface *newscr, *oldscr; SDL_Rect r; int minh; if (!sdr/* || !sdr->screen to je asi pycovina */) return; minh = sw->h * FONT_H / 2; sw->fft_sp_h = 210; if (sw->fft_sp_h > minh) sw->fft_sp_h = minh; sw->fft_sp_y = (sw->h - 1) * FONT_H - sw->fft_sp_h - 4; sw->fft_wf_y = 0; sw->fft_wf_h = sw->fft_sp_y - FONT_H - 10; //sw->fft_sp_x2 = fft->wf_x2; //sw->fft_wf_x2 = fft->wf_x2; newscr = SDL_CreateRGBSurface(SDL_SWSURFACE, sw->w*FONT_W , sw->h*FONT_H, sdl->bpp, sdl->screen->format->Rmask, sdl->screen->format->Gmask, sdl->screen->format->Bmask, 0); MUTEX_LOCK(sdr->screen); oldscr = sdr->screen; sdr->screen = newscr; sdr->screeny = 0; MUTEX_UNLOCK(sdr->screen); if (oldscr) SDL_FreeSurface(oldscr); r.x = 0; r.y = sw->fft_sp_y; r.w = sw->screen->w; r.h = sw->fft_sp_h; if (sw->chart) zchart_free(sw->chart); sw->chart = zchart_init(sw->screen, &r, z_makecol(30, 30, 0)); zchart_add_set(sw->chart, "window ", sdl->gr[15]); zchart_add_set(sw->chart, "winIQ.Re ", sdl->yellow); zchart_add_set(sw->chart, "winIQ.Im ", z_makecol(0, 255, 255)); zchart_add_set(sw->chart, "fbin.abs", z_makecol(0, 255, 255)); buttons_clear(sw->buttons); sw->sdr_by = sw->fft_sp_y + sw->fft_sp_h - 1 + 2; sw->sdr_ssb = init_button(sw->screen, 0, sw->sdr_by, sdr_ssb, sw); button_text(sw->sdr_ssb, zsdl->font_h, sdl->gr[14], cfg->sdr_cw ? 0 : sdr->butbg, " SSB "); g_ptr_array_add(sw->buttons, sw->sdr_ssb); sw->sdr_cw = init_button(sw->screen, sw->sdr_ssb->x + sw->sdr_ssb->w + zsdl->font_w, sw->sdr_by, sdr_cw, sw); button_text(sw->sdr_cw, zsdl->font_h, sdl->gr[14], cfg->sdr_cw ? sdr->butbg : 0, " CW "); g_ptr_array_add(sw->buttons, sw->sdr_cw); sw->sdr_usb = init_button(sw->screen, sw->sdr_cw->x + sw->sdr_cw->w + zsdl->font_w, sw->sdr_by, sdr_usb, sw); button_text(sw->sdr_usb, zsdl->font_h, sdl->gr[14], cfg->sdr_lsb ? 0 : sdr->butbg, " USB "); g_ptr_array_add(sw->buttons, sw->sdr_usb); sw->sdr_lsb = init_button(sw->screen, sw->sdr_usb->x + sw->sdr_usb->w + zsdl->font_w, sw->sdr_by, sdr_lsb, sw); button_text(sw->sdr_lsb, zsdl->font_h, sdl->gr[14], cfg->sdr_lsb ? sdr->butbg : 0, " LSB "); g_ptr_array_add(sw->buttons, sw->sdr_lsb); g_free(sdr->wfvec); sdr->wfvec = g_new0(int, sw->screen->w); sdr->wfveclen = sw->screen->w; } void sw_sdr_redraw(struct subwin *sw, struct band *band, int flags){ SDL_Rect src, dst, filter_r; int i, y, x = 0, sp_y, oldx, oldy = 0, amp, tw, j; int bfo_px;//, filter1_px, filter2_px; char s[256]; double qrg; int steps[] = {100, 50, 20, 10, 5, 2, 1, 0}; // kHz if (!gsdr) return; if (!sdl) return; fill_area(sw->x, sw->y, sw->w, sw->h, 0); if (!sw->gdirty) return; sw->gdirty=0; if (gsdr->samplerate <= 0) return; if (gsdr->amp == NULL) return; /*area.x = 0; area.y = 0; area.w = sw->screen->w; area.h = sw->screen->h; SDL_FillRect(sw->screen, &area, z_makecol(40, ((ssr++) % 8) * 32, 0)); */ MUTEX_LOCK(gsdr->screen); if (!gsdr->screen){ MUTEX_UNLOCK(gsdr->screen); return; } MUTEX_LOCK(sw->screen); if (gsdr->screeny > 0){ //dbg("gsdr->screeny = %d\n", gsdr->screeny); y = gsdr->screeny; gsdr->screeny = 0; // move old screen src.x = 0; src.y = sw->fft_wf_y + y; src.w = sw->screen->w; src.h = sw->fft_wf_h - y; dst.x = 0; dst.y = sw->fft_wf_y; dst.w = sw->screen->w; dst.h = sw->fft_wf_h - y; SDL_BlitSurface(sw->screen, &src, sw->screen, &dst); // add new data src.x = 0; src.y = 0; src.w = gsdr->screen->w; src.h = y; dst.x = 0; dst.y = sw->fft_wf_y + sw->fft_wf_h - y; dst.w = sw->screen->w; dst.h = y; SDL_BlitSurface(gsdr->screen, &src, sw->screen, &dst); //z_rect2(sw->screen, &dst, sdl->gr[15]); } // clear background under frequency axis dst.x = 0; dst.y = sw->fft_wf_h + 1; dst.w = sw->screen->w; dst.h = sw->fft_sp_y - dst.y; SDL_FillRect(sw->screen, &dst, z_makecol(0, 0, 0)); qrg = gsdr->samplerate / 2; #ifdef HAVE_HAMLIB qrg += gtrigs->qrg; #endif z_qrg_format(s, sizeof(s), qrg / 1000); tw = strlen(s) * zsdl->font_w; for (i = 0; ; i++){ int px; if (steps[i] == 0) break; j = steps[i]; px = F2PX(j * 1000) - F2PX(0); if (px < tw * 3) break; } qrg = -gsdr->samplerate / 2; #ifdef HAVE_HAMLIB qrg += gtrigs->qrg; #endif modf(qrg / (j * 1000.0), &qrg); qrg *= j; #ifdef HAVE_HAMLIB i = (int)(qrg * 1000 - gtrigs->qrg); #else i = -gsdr->samplerate / 2; #endif for (;; qrg += j, i += j * 1000){ //int flg = ZFONT_CENTERX; // char *fmt = "%dk"; x = F2PX(i); if (x > sw->w * FONT_W - 1) break; z_line(sw->screen, x, sw->fft_wf_h + 1, x, sw->fft_sp_y - FONT_H , sdl->gr[10]); //if (x <= 0) flg = 0; //if (x >= sw->screen->w - 1) flg = ZFONT_RIGHT; //if (i == 0) fmt = "VFO"; z_qrg_format(s, sizeof(s), qrg); zsdl_printf(sw->screen, x, sw->fft_sp_y - FONT_H, sdl->gr[10], 0, ZFONT_CENTERX, "%s", s); z_line(sw->screen, x, sw->fft_wf_h + 2, x, sw->fft_wf_h + 5, sdl->gr[10]); } z_line(sw->screen, F2PX(-gsdr->samplerate / 2), sw->fft_wf_h + 1, F2PX(gsdr->samplerate / 2), sw->fft_wf_h + 1, sdl->gr[10]); // clear background under spectral lines dst.x = 0; dst.w = sw->screen->w; dst.y = sw->fft_sp_y; dst.h = sw->fft_sp_h; SDL_FillRect(sw->screen, &dst, z_makecol(20, 20, 0)); // draw filter and BFO sp_y = sw->fft_sp_y + sw->fft_sp_h - 1; filter_r.x = F2PX(gsdr->filter->zero + gsdr->filter->low); filter_r.y = sp_y - sw->fft_sp_h + 1; filter_r.w = F2PX(gsdr->filter->zero + gsdr->filter->high) - filter_r.x + 1; filter_r.h = sw->fft_sp_h; SDL_FillRect(sw->screen, &filter_r, sdl->green); bfo_px = F2PX(gsdr->filter->zero); z_line(sw->screen, bfo_px, sp_y, bfo_px, sp_y - sw->fft_sp_h + 1, sdl->red); #if 1 // draw spetral lines oldx = -1; for (i=0; i <= gsdr->amplen; i++){ x = (i * (gsdr->screen->w - 1)) / gsdr->n; amp = gsdr->nea_amp[i] * (sw->fft_sp_h - 1); for (; oldx <= x; oldx++) z_line(sw->screen, oldx, sp_y, oldx, sp_y - amp, sdl->gr[9]); } oldx = -1; for (i=0; i <= gsdr->amplen; i++){ x = (i * (gsdr->screen->w - 1)) / gsdr->n; amp = gsdr->nea_amp[i] * (sw->fft_sp_h - 1); if (i > 0){ z_line(sw->screen, oldx, oldy, x, sp_y - amp, sdl->gr[12]); } oldx = x; oldy = sp_y - amp; } for (i = 0; i < FFT_COLORS; i++){ z_line(sw->screen, i, 0, i, 3, gsdr->pal[i]); } #endif #if 0 zchart_clear(sw->chart); for (i = 0; i < gsdr->filter->window_size; i++){ zchart_add(sw->chart, 0, i, gsdr->filter->window[i]); } for (i = 0; i < gsdr->n; i++) { int b = (i + gsdr->n / 2) % gsdr->n; zchart_add(sw->chart, 1, i, gsdr->filter->window_iq[i][0]); zchart_add(sw->chart, 2, i, gsdr->filter->window_iq[i][1]); zchart_add(sw->chart, 3, i, Z_CABS(gsdr->filter->fbins[b])); } zchart_redraw(sw->chart); dbg("step=%f\n", gsdr->bfo_inc); #endif // clear background under status line dst.x = 0; dst.w = sw->screen->w; dst.y = sw->sdr_by; dst.h = zsdl->font_h; SDL_FillRect(sw->screen, &dst, z_makecol(0, 0, 0)); buttons_redraw(sw->buttons, sw->screen); qrg = gsdr->filter->zero; #ifdef HAVE_HAMLIB if (gtrigs) qrg += gtrigs->qrg; #endif z_qrg_format(s, sizeof(s), qrg); zsdl_printf(sw->screen, sw->sdr_lsb->x + sw->sdr_lsb->w + 3 * zsdl->font_w, sw->sdr_by, sdl->gr[14], 0, 0, "%s", s); if (gsdr->load > -1){ zsdl_printf(sw->screen, sw->screen->w - 1, sw->sdr_by, sdl->gr[14], 0, ZFONT_RIGHT, " CPU %d%%", gsdr->load); } MUTEX_UNLOCK(sw->screen); MUTEX_UNLOCK(gsdr->screen); } gpointer sdr_thread_func(gpointer data){ int total = 0, i; struct sdr *sdr = (struct sdr *)data; struct timeval tv1, tv2, stop; long oldsec = 0; double totsum = 0.0, cpusum = 0.0; int loadn = 0; short *buf, *b; double *pd; int playspeed, playfactor; int use_pipe = 0; zg_thread_set_name("Tucnak SDR"); zg_thread_set_priority(2); if (sdr->iqdsp->open(sdr->iqdsp, 1) < 0) { zselect_msg_send(zsel, "SDR;!;%s %s", VTEXT(T_CANT_RECORD_FROM_SDR_DSP), sdr->iqdsp->name); return NULL; } if (sdr->afdsp->open(sdr->afdsp, 0) < 0) { zselect_msg_send(zsel, "SDR;!;%s %s", VTEXT(T_CANT_PLAY_TO_SDR_DSP), sdr->afdsp->name); sdr->iqdsp->close2(sdr->iqdsp); return NULL; }; playspeed = cfg->sdr_af_speed; playfactor = sdr->iqdsp->speed / playspeed; //for (playspeed = sdr->iqdsp->speed; playspeed > 48000; playspeed /= 2) playfactor *= 2; #ifdef HAVE_SNDFILE if (gssbd && gssbd->dsp && gssbd->dsp->type == DSPT_SNDPIPE && gssbd->dsp->pipe_opened){ gssbd->dsp->set_sdr_format(gssbd->dsp, sdr->frames, playspeed, 0); if (gssbd->dsp->open(gssbd->dsp, 0)){ zselect_msg_send(zsel, "SDR;!;%s %s", VTEXT(T_CANT_OPEN_PLAY_SDR_SOUNDPIPE), sdr->afdsp->name); return NULL; } use_pipe = 1; } #endif sdr->screeny = 0; sdr->samplerate = sdr->iqdsp->speed; sdr_new_filter(sdr,cfg->sdr_zero, cfg->sdr_cw_low, cfg->sdr_cw_high, cfg->sdr_ssb_low, cfg->sdr_ssb_high); sdr->agc_period_ms = 1; sdr->agc_n = sdr->samplerate * sdr->agc_period_ms / 1000.0; sdr->agc_ign = sdr->samplerate * 100 / ( 1000.0 * sdr->agc_n); buf = g_new0(short, sdr->frames * sdr->iqdsp->channels); memset(sdr->iq, 0, sizeof(fftw_complex) * sdr->n); gettimeofday(&tv1, NULL); oldsec = tv1.tv_sec; MUTEX_LOCK(sdr->screen); if (sdr->screen) { for (i = 0; i < sdr->wfveclen; i += 3) z_putpixel(sdr->screen, i, sdr->screeny, sdl->gr[12]); sdr->screeny++; } MUTEX_UNLOCK(sdr->screen); while(!sdr->thread_break){ int oldx, x, col, frames; double d, e, tot, cpu, dmax, maxgain, mingain; short *sb; fftw_complex *iq; memmove(sdr->iq, sdr->iq + sdr->frames, sizeof(fftw_complex) * (sdr->n - sdr->frames)); //ST_START(); frames = sdr->iqdsp->read(sdr->iqdsp, buf, sdr->frames); //ST_STOP("dsp read"); if (frames != sdr->frames){ zselect_msg_send(zsel, "SDR;!;%s %s (%d != %d)", VTEXT(T_CANT_READ_FROM), sdr->iqdsp->name, frames, sdr->frames); break; } gettimeofday(&tv2, NULL); total += frames; b = buf; pd = (double*)(sdr->iq + (sdr->n - sdr->frames)); for (i = 0; i < sdr->samples; i++){ *pd++ = *b++ / 32767.0; } fftw_execute(sdr->plan_f); MUTEX_LOCK(sdr->screen); if (!sdr->screen) { // no SDR window exists MUTEX_UNLOCK(sdr->screen); continue; } oldx = -1; dmax = 0.0; maxgain = -1000000000000.0; mingain = 100000000000000.0; memset(sdr->wfvec, 0, sdr->wfveclen * sizeof(int)); for (i = 0; i < sdr->n; i++){ int j = (i + sdr->n / 2) % sdr->n; x = (i * (sdr->screen->w - 1)) / sdr->n; if (x >= sdr->screen->w) break; d = sqrt(sqr(sdr->bins[j][0])+sqr(sdr->bins[j][1])); //d = sqr(sdr->bins[j][0]) + sqr(sdr->bins[j][1]); d = d/sdr->n; d /= M_SQRT2; if (d > dmax) dmax = d; // d is epsilon to 1.0 e = log10(d); e -= log10(1.0/130072.0); e /= -log10(1.0/130072.0); //e -= log10(1.0/32768.0); //e /= -log10(1.0/32768.0); if (e<0) e = 0; // slabsi signaly nez 1 bit if (i < sdr->amplen) { double gain = (1 - exp(-(0.2 * e))); if (maxgain < gain) maxgain = gain; if (mingain > gain) mingain = gain; if (gain < 0.03) gain = 0.03; if (i == 0) gain = 1.0; sdr->amp[i] = e; sdr->nea_amp[i] = sdr->nea_amp[i] * (1-gain) + e * gain; } col = (int)(e * (FFT_COLORS - 1.0)); //col = (int)(sdr->nea_amp[i] * (FFT_COLORS - 1.0)); if (oldx > x) if (col > sdr->wfvec[x]) sdr->wfvec[x] = col; for (; oldx <= x; oldx++){ if (oldx >= sdr->wfveclen) break; if (col > sdr->wfvec[oldx]) sdr->wfvec[oldx] = col; } //z_putpixel(sdr->screen, oldx, sdr->screeny, sdr->pal[col]); } for (i = 0; i < sdr->wfveclen; i++) z_putpixel(sdr->screen, i, sdr->screeny, sdr->pal[sdr->wfvec[i]]); //dbg("maxgain=%f mingain=%f\n", maxgain, mingain); if (tv2.tv_sec != oldsec){ // draw time marks int x2 = 3 + (tv2.tv_sec % 10 == 0) * 4; oldsec = tv2.tv_sec; for (i = 0; i <= x2; i++) { z_putpixel(sdr->screen, i, sdr->screeny, sdl->gr[14]); z_putpixel(sdr->screen, sdr->screen->w - 1 - i, sdr->screeny, sdl->gr[14]); } } sdr->screeny++; if (sdr->screeny == sdr->screen->h) sdr->screeny = 0; MUTEX_UNLOCK(sdr->screen); MUTEX_LOCK(sdr->filter); for (i = 0; i < sdr->n; i++){ Z_CMUL(sdr->bins[i], sdr->bins[i], sdr->filter->fbins[i]); } MUTEX_UNLOCK(sdr->filter); fftw_execute(sdr->plan_bi); // convert I back to time domain for (i = 0; i < sdr->n; i++){ // rotate frequencies 90 degrees double a = sdr->bins[i][0]; sdr->bins[i][0] = sdr->bins[i][1]; sdr->bins[i][1] = -a; } fftw_execute(sdr->plan_bq); // convert Q back to time domain for (i = 0; i < sdr->n; i++){ // normalize FFT output because FFTW generates unnormalized FFT sdr->iout[i][0] /= sdr->n; sdr->iout[i][1] /= sdr->n; sdr->qout[i][0] /= sdr->n; sdr->qout[i][1] /= sdr->n; } for (i = 0; i < sdr->frames; i++){ // mixer to baseband //sdr->iqout[i][0] *= sin(sdr->bfo_phase); //sdr->iqout[i][1] *= cos(sdr->bfo_phase); sdr->iout[i][0] = sdr->iout[i][0] * cos(sdr->bfo_phase) + sdr->qout[i][0] * sin(sdr->bfo_phase); sdr->bfo_phase += sdr->bfo_inc; } /*oldx = -1; for (i = 0; i < sdr->n; i++){ int j = (i + sdr->n / 2) % sdr->n; x = (i * sdr->screen->w) / sdr->n; if (x > sdr->screen->w) break; d = fabs(sqrt(sqr(sdr->bins[j][0])+sqr(sdr->bins[j][1]))); d = d/sdr->n; // d is epsilon to 1.0 e = log10(d); e -= log10(1.0/32768.0); e /= -log10(1.0/32768.0); if (e<0) e = 0; // slabsi signaly nez 1 bit if (i < sdr->amplen) sdr->amp[i] = e; col = (int)(e * (FFT_COLORS - 1.0)); for (; oldx <= x; oldx++) z_putpixel(sdr->screen, oldx, sdr->screeny, sdr->pal[col]); //if (j == bfob) z_putpixel(sdr->screen, x, sdr->screeny, sdl->red); } */ // AGC for (i = 0; i < sdr->frames; i += sdr->agc_n){ double max = 0.0, oldgain; int n; double g; // requested gain for (n = 0; n < sdr->agc_n; n++){ int idx = i + n; if (idx >= sdr->frames) break; max = Z_MAX(max, fabs(sdr->iout[idx][0])); } max = max; g = 0.5 / max; oldgain = sdr->agc_gain; if (g < sdr->agc_gain){ // decrease gain sdr->agc_gain = g; sdr->agc_ign_i = 0; }else{ // increase gain if (sdr->agc_ign_i < sdr->agc_ign){ sdr->agc_ign_i++; //dbg("agc_ign_i = %d / %d\n", sdr->agc_ign_i, sdr->agc_ign); }else{ sdr->agc_gain *= 1.01; if (sdr->agc_gain > 64000) sdr->agc_gain = 64000; } } //dbg("sdr->agc_gain = %6.3f\n", sdr->agc_gain); for (n = 0; n < sdr->agc_n; n++){ int idx = i + n; if (idx >= sdr->frames) break; g = oldgain + ((double)n / (sdr->agc_n - 1)) * (sdr->agc_gain - oldgain); sdr->iout[idx][0] *= g; if (sdr->iout[idx][0] > 1.0) sdr->iout[idx][0] = 1.0; if (sdr->iout[idx][0] < -1.0) sdr->iout[idx][0] = -1.0; //sdr->iout[idx][1] = g / 2; } } //dbg("iout\n"); sb = sdr->sndbuf; iq = sdr->iout;// + (sdr->n - sdr->frames); for (i = 0; i < sdr->frames / playfactor; i++){ int k; //short val = (short)(32767.0 * sqrt(sqr((*iq)[0] / sdr->n)+sqr((*iq)[1] / sdr->n))); short val = (short)(32767.0 * (*iq)[0]); //val = (short)(32767.0 * sdr->iq[sdr->n - sdr->frames + i][0]); *sb++ = val; //*sb++ = 32767.0 * sin(sdr->filter->bfo_phase); sdr->filter->bfo_phase += sdr->filter->bfo_inc; //*sb++ = (i * 32767) / sdr->frames; // saw //*sb++ = (short)((*iq)[1]); *sb++ = (short)(32767.0 * (*iq)[0]); for (k = 0; k < playfactor; k++) iq++; } //zst_stop(stopky, "sdr_thread_func"); gettimeofday(&stop, NULL); tot = z_difftimeval_double(&stop, &tv1); cpu = z_difftimeval_double(&stop, &tv2); if (tot > 0.0){ if (++loadn == 40){ sdr->load = cpusum * 100.0 / totsum; totsum = 0.0; cpusum = 0.0; loadn = 0; }else{ totsum += tot; cpusum += cpu; } } gettimeofday(&tv1, NULL); sdr->afdsp->write(sdr->afdsp, sdr->sndbuf, sdr->frames / playfactor); #ifdef HAVE_SNDFILE if (use_pipe){ gssbd->dsp->write(gssbd->dsp, sdr->sndbuf, sdr->frames / playfactor); } #endif zselect_msg_send(zsel, "SDR;D"); } sdr->iqdsp->close2(sdr->iqdsp); sdr->afdsp->close2(sdr->afdsp); #ifdef HAVE_SNDFILE if (use_pipe) gssbd->dsp->close2(gssbd->dsp); #endif return NULL; } #endif tucnak-4.04/src/sndf.h0000644000175000017500000000144712305067270011551 00000000000000/* Tucnak - VHF contest log Copyright (C) 2014 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SNDF_H #define __SNDF_H #include "header.h" #include "dsp.h" #ifdef HAVE_SNDFILE int sndfile_open(struct dsp *dsp, int rec); int sndfile_close(struct dsp *dsp); int sndfile_write(struct dsp *dsp, void *data, int frames); int sndfile_read(struct dsp *dsp, void *data, int frames); int sndfile_reset(struct dsp *dsp); int sndfile_sync(struct dsp *dsp); int sndfile_set_format(struct dsp *dsp, SF_INFO *sfinfo, int rec); int sndfile_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec); #endif #endif tucnak-4.04/src/ssbd.h0000644000175000017500000000465012353752011011546 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __SSBD_H #define __SSBD_H #include "header.h" #ifdef VOIP #include "voip.h" #endif struct qso; #define CE_NONE 0 #define CE_ONLY_STRFTIME 1 //#define SSBBUFFER_LEN2 512 //4096 struct ssbd { int recording; gchar *pfilename, *rfilename; #ifdef HAVE_SNDFILE GThread *thread; int proc_break; int channels; // number of sound channels. Modified only in main thread, readed in worker threads FILE *f; gchar *callsign; gint serno; short *buffer; SNDFILE *sndfile; int norecshowed; int midlevel, maxlevel, cntlevel, loglevel, oldloglevel; MUTEX_DEFINE(loglevel); time_t recstop; #ifdef Z_HAVE_SDL SDL_Surface *norecicon, *playicon, *recicon; #else void *norecicon, *playicon, *recicon; #endif int code; int swontoptype; int playedf; // frames int seek; MUTEX_DEFINE(seek); char *pl_pcmfile; #ifdef Z_HAVE_SDL short *scope_buf; // buffer for scope draw, set in main thread int scope_samples; // length of buffer in samples int scope_i; // position when filling in samples int scope_w; // scope width in frames int scope_show; // 0 = filling buffer in thread, 1 = displaying in main thread #endif #ifdef VOIP struct voip *voip; #endif struct dsp *dsp; #endif }; extern struct ssbd *gssbd; struct ssbd *init_ssbd(void); void free_ssbd(struct ssbd *ssbd); void ssbd_abort(struct ssbd *ssbd, int abort_rec); #ifdef HAVE_SNDFILE int ssbd_play_file(struct ssbd *ssbd, gchar *filename); int ssbd_rec_file(struct ssbd *ssbd); int ssbd_recording(struct ssbd *ssbd); int ssbd_callsign(struct ssbd *ssbd, char *call); void ssbd_play_read_handler(struct ssbd *ssbd, gchar *str); void ssbd_rec_read_handler(struct ssbd *ssbd, gchar *str); gpointer ssbd_play_thread_func(gpointer data); gpointer ssbd_rec_thread_func(gpointer data); void ssbd_thread_create(struct ssbd *ssbd, GThreadFunc thread_func); void ssbd_thread_join(struct ssbd *ssbd); void ssbd_watchdog(struct ssbd *ssbd, int start_rec); void ssbd_play_last_sample(struct ssbd *ssbd, struct qso *qso); #define SSBDRECORDING (gssbd->recording) #else #define SSBDRECORDING 0 #endif #endif tucnak-4.04/src/chart.c0000644000175000017500000005405012474424475011724 00000000000000/* chart - chart compare of points progress Copyright (C) 2011-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. Not Y2K1 compliant, date_str is taken without century */ #include "header.h" #include "bfu.h" #include "chart.h" #include "fifo.h" #include "hf.h" #include "html.h" #include "kbdbind.h" #include "main.h" #include "map.h" #include "menu.h" #include "tsdl.h" #include "session.h" #define TOP 20 #define BOTTOM (FONT_H + 4) #define LEFT 13 #define RIGHT 20 static void chart_import_edi(void *xxx, char *filename){ char *fname; fname = g_strdup(filename); z_filename(fname); if (z_strcasestr(fname, "TXT")){ zg_ptr_array_foreach(struct band *, b, ctest->bands){ char *c, *path, *f; c = g_strdup(filename); path = z_dirname(c); f = g_strdup_printf("%s/%c.txt", path, z_char_lc(b->bandchar)); z_wokna(f); sw_chart_load_file(gses->ontop, f, 1); g_free(c); g_free(f); } }else{ sw_chart_load_file(gses->ontop, filename, 0); } g_free(fname); sw_chart_recalc_extremes(gses->ontop, aband); } void sw_chart_choose(struct menu *menu){ int i; char *filename; progress(VTEXT(T_LOADING_CHARTS)); for (i = 0; i < menu->ni; i++){ struct menu_item *mi = menu->items + i; if (!mi->checked) continue; filename = g_strdup_printf("%s/%s/c.txt", tucnak_dir, (char *)mi->data); chart_import_edi(NULL, filename); g_free(filename); } progress(NULL); } void menu_chart_add_contest(void *menudata, void *itdata){ if (ctest == NULL){ log_addf(VTEXT(T_NO_CONTEST_OPENED2)); return; } contest_choose(sw_chart_choose); } void menu_chart_add_files(void *menudata, void *itdata){ char *pwd = getcwd(NULL, 0); if ( #ifdef Z_HAVE_SDL !sdl || #endif zfiledlg_open(zfiledlg, zsel, chart_import_edi, NULL, "", "txt;edi") < 0){ input_field(NULL, VTEXT(T_IMPORT_EDI), VTEXT(T_FILENAME), VTEXT(T_OK), VTEXT(T_CANCEL), gses, NULL, 150, pwd, 0, 0, NULL, chart_import_edi, NULL, 1); } if (pwd) free(pwd); } int sw_chart_kbd_func(struct subwin *sw, struct event *ev, int fw){ struct menu_item *mi = NULL; int max = 0, i; // if (!sdl) return 0; switch (kbd_action(KM_MAIN, ev)){ case ACT_HOME: menu_chart_add_files(NULL, NULL); return 1; case ACT_INSERT: menu_chart_add_contest(NULL, NULL); return 1; case ACT_DELETE: mi = NULL; for (i = 0; i < sw->chbands->len; i++){ struct chband *b; gchar *c, *tname; if (!mi) mi = new_menu(3); if (!mi) break; b = (struct chband*)g_ptr_array_index(sw->chbands, i); tname = zstr_shorten(b->tname, 20); c = g_strdup_printf("%-12s %-20s %-7s", b->pcall, tname, b->pband); g_free(tname); if (strlen(c) > max) max = strlen(c); add_to_menu(&mi, g_strdup(c), "", "", sw_chart_delete_band, b, 0); g_free(c); } set_window_ptr(gses->win, (term->x-6-max)/2,(term->y-2-i)/2); if (mi) do_menu(mi, NULL); return 1; } return 0; } int sw_chart_mouse_func(struct subwin *sw, struct event *ev, int fw){ #ifdef Z_HAVE_SDL //int lmx, lmy; if (!sdl) return 0; sw->mx = ev->mx - sw->x * FONT_W; sw->my = ev->my - sw->y * FONT_H; // int t = sw->mint + ((lmx - sw->ch_left) * (sw->maxt - sw->mint)) / (sw->ch_right - sw->ch_left); // int v = sw->minv + ((sw->ch_bottom - lmy) * (sw->maxv - sw->minv)) / (sw->ch_bottom - sw->ch_top); sw->gdirty = 1; redraw_later(); #endif return 0; } void sw_chart_redraw(struct subwin *sw, struct band *band, int flags){ int x, y; gchar *cc; int i; #ifdef Z_HAVE_SDL int j, ox, ox2, oy, oy2, t, v, bt = 0, tajm; SDL_Rect area; char s[100]; time_t now; struct tm utc; unsigned nowd, nowt; int stepv; char *oop; if (sdl && sw->screen){ time(&now); gmtime_r(&now, &utc); nowd = utc.tm_mday + 100 * (utc.tm_mon + 1 + 100 * (utc.tm_year - 100)); // no century, was + 1900 nowt = utc.tm_min + 60 * utc.tm_hour; bt = nowd; if (!sdl) return; // dbg("sw_chart_redraw(%d) t=%d..%d v=%d..%d\n", sw->gdirty, sw->mint, sw->maxt, sw->minv, sw->maxv); sw->ch_top = TOP; sw->ch_bottom = sw->screen->h - BOTTOM; if (sw->maxv >= 10000){ sprintf(s, "%dk", sw->maxv / 1000); }else{ sprintf(s, "%d", sw->maxv); } sw->ch_left = LEFT + strlen(s) * FONT_W; sw->ch_right = sw->screen->w - RIGHT; if (sw->ch_top >= sw->ch_bottom) return; if (sw->ch_left >= sw->ch_right) return; if (sw->maxt <= sw->mint) return; if (sw->maxv <= sw->minv) return; if (flags & HTML_FOR_PHOTO){ sw->mx = sw->ch_right; sw->my = sw->ch_top; } fill_area(sw->x, sw->y, sw->w, sw->h, 0); area.x = 0; area.y = 0; area.w = sw->screen->w; area.h = sw->screen->h; SDL_FillRect(sw->screen, &area, z_makecol(0, 0, 0)); z_line(sw->screen, sw->ch_left, sw->ch_top, sw->ch_left, sw->ch_bottom, sdl->gr[13]); z_line(sw->screen, sw->ch_left, sw->ch_bottom, sw->ch_right, sw->ch_bottom, sdl->gr[13]); ox = -10000; ox2 = -10000; i = ((sw->mint + 59) / 60) * 60; for (; i <= sw->maxt; i+= 60){ x = sw->ch_left + ( (i - sw->mint) * (sw->ch_right - sw->ch_left) ) / (sw->maxt - sw->mint); if (x > ox + 10){ ox = x; z_line(sw->screen, x, sw->ch_bottom + 1, x, sw->ch_bottom + 4, sdl->gr[13]); } if (x > ox2 + FONT_W * 4){ ox2 = x; sprintf(s, "%02d", (i / 60) % 24); zsdl_printf(sw->screen, x - FONT_W + 1, sw->ch_bottom + 4, sdl->gr[13], 0, 0, s); } } oy = 10000; oy2 = 10000; stepv = 100; if (sw->maxv > 1000) stepv = 100; if (sw->maxv > 2000) stepv = 200; if (sw->maxv > 5000) stepv = 500; if (sw->maxv > 10000) stepv = 1000; if (sw->maxv > 20000) stepv = 2000; if (sw->maxv > 50000) stepv = 5000; if (sw->maxv > 100000) stepv = 10000; if (sw->maxv > 200000) stepv = 20000; if (sw->maxv > 500000) stepv = 50000; if (sw->maxv > 1000000) stepv = 100000; i = ((sw->minv + stepv - 1) / stepv) * stepv; for (; i <= sw->maxv; i+= stepv){ y = sw->ch_bottom - ( (i - sw->minv) * (sw->ch_bottom - sw->ch_top) ) / (sw->maxv - sw->minv); if (y < oy - 10){ oy = y; z_line(sw->screen, sw->ch_left - 1, y, sw->ch_left - 4, y, sdl->gr[13]); } if (y < oy2 - FONT_H * 2){ oy2 = y; if (stepv >= 1000) sprintf(s, "%dk", (i / 1000)); else sprintf(s, "%d", i); zsdl_printf(sw->screen, sw->ch_left - 4 - strlen(s) * FONT_W, y - FONT_H / 2, sdl->gr[13], 0, 0, s); } } for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); if (b->band != band) continue; ox = sw->ch_left; oy = sw->ch_bottom; oop = ""; b->mouse_value = 0; for (j = 0; j < b->chqsos->len; j++){ struct chqso *q = (struct chqso *)g_ptr_array_index(b->chqsos, j); //dbg("time=%d value=%d\n", q->time, q->value); x = sw->ch_left + ( (q->time - sw->mint) * (sw->ch_right - sw->ch_left) ) / (sw->maxt - sw->mint); y = sw->ch_bottom - ( (q->value - sw->minv) * (sw->ch_bottom - sw->ch_top) ) / (sw->maxv - sw->minv); if (x < sw->mx) { b->mouse_value = q->value; b->op = q->op; } z_line(sw->screen, ox, oy, x, oy, b->color); z_line(sw->screen, x, oy, x, y, b->color); if (strcmp(q->op, oop) != 0){ z_putpixel(sw->screen, x - 1, oy - 1, b->color); z_putpixel(sw->screen, x - 1, oy , b->color); z_putpixel(sw->screen, x - 1, oy + 1, b->color); z_putpixel(sw->screen, x , oy - 1, b->color); z_putpixel(sw->screen, x , oy + 1, b->color); z_putpixel(sw->screen, x + 1, oy - 1, b->color); z_putpixel(sw->screen, x + 1, oy , b->color); z_putpixel(sw->screen, x + 1, oy + 1, b->color); z_putpixel(sw->screen, x , oy + 2, b->color); z_putpixel(sw->screen, x , oy + 3, b->color); z_putpixel(sw->screen, x , oy + 4, b->color); } ox = x; oy = y; oop = q->op; } z_line(sw->screen, ox, oy, sw->ch_right, oy, b->color); } if (band){ ox = sw->ch_left; oy = sw->ch_bottom; oop = ""; v = 0; sw->ch_mouse_value = 0; for (i = 0; i < band->qsos->len; i++){ struct qso *q = (struct qso *)g_ptr_array_index(band->qsos, i); if (i == 0) bt = atoi(q->date_str + 2); // no century if (q->error || q->dupe) continue; tajm = atoi(q->time_str); t = (atoi(q->date_str + 2) - bt) * 1440 + (tajm / 100) * 60 + tajm % 100; v += q->qsop; //dbg("time=%d value=%d\n", t, v); x = sw->ch_left + ( (t - sw->mint) * (sw->ch_right - sw->ch_left) ) / (sw->maxt - sw->mint); y = sw->ch_bottom - ( (v - sw->minv) * (sw->ch_bottom - sw->ch_top) ) / (sw->maxv - sw->minv); if (x < sw->mx) { sw->ch_mouse_value = v; sw->ch_op = q->operator_; } z_line(sw->screen, ox, oy, x, oy, sdl->gr[15]); z_line(sw->screen, x, oy, x, y, sdl->gr[15]); if (strcmp(q->operator_, oop) != 0){ z_putpixel(sw->screen, x - 1, oy - 1, sdl->gr[15]); z_putpixel(sw->screen, x - 1, oy , sdl->gr[15]); z_putpixel(sw->screen, x - 1, oy + 1, sdl->gr[15]); z_putpixel(sw->screen, x , oy - 1, sdl->gr[15]); z_putpixel(sw->screen, x , oy + 1, sdl->gr[15]); z_putpixel(sw->screen, x + 1, oy - 1, sdl->gr[15]); z_putpixel(sw->screen, x + 1, oy , sdl->gr[15]); z_putpixel(sw->screen, x + 1, oy + 1, sdl->gr[15]); z_putpixel(sw->screen, x , oy + 2, sdl->gr[15]); z_putpixel(sw->screen, x , oy + 3, sdl->gr[15]); z_putpixel(sw->screen, x , oy + 4, sdl->gr[15]); } ox = x; oy = y; oop = q->operator_; } t = (nowd - bt) * 1440 + nowt; /*double ddt = t - sw->mint; double ddx = sw->ch_right - sw->ch_left; double dmt = sw->maxt - sw->mint; double dx = sw->ch_left + (ddt * ddx) / dmt;*/ x = (int)((double)sw->ch_left + ( (t - sw->mint) * (double)(sw->ch_right - sw->ch_left) ) / (double)(sw->maxt - sw->mint)); //x = dx; if (x < ox || x >= sw->screen->w) x = sw->screen->w - 1; // dbg("nowd=%u nowt=%d bt=%d t=%d x=%d\n", nowd, nowt, bt, t, x); z_line(sw->screen, ox, oy, x, oy, sdl->gr[15]); } x = sw->ch_left + 10; y = sw->ch_top; if (band){ cc = zstr_shorten(ctest->tname, 30); zsdl_printf(sw->screen, x, y, sdl->gr[13], 0, ZFONT_TRANSP, "%-12s %-30s %-7s %-6s %d pts", ctest->pcall, cc, band->pband, sw->ch_op ? sw->ch_op : "", sw->ch_mouse_value); g_free(cc); y += FONT_H; } for (i = 0; i < sw->chbands->len; i++){ char *tname; struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); if (b->band != band) continue; tname = zstr_shorten(b->tname, 30); zsdl_printf(sw->screen, x, y, b->color, 0, ZFONT_TRANSP, "%-12s %-30s %-7s %-6s %d pts", b->pcall, tname, b->pband, b->op ? b->op : "", b->mouse_value); g_free(tname); y += FONT_H; } t = sw->mint + ((sw->mx - sw->ch_left) * (sw->maxt - sw->mint)) / (sw->ch_right - sw->ch_left); v = sw->minv + ((sw->ch_bottom - sw->my) * (sw->maxv - sw->minv)) / (sw->ch_bottom - sw->ch_top); zsdl_printf(sw->screen, x, y, sdl->gr[13], 0, ZFONT_TRANSP, "%02d:%02d %d pts", (t / 60) % 24, t % 60, v); /*{ int oldaa = zsdl->antialiasing; zsdl->antialiasing = 1; for (x = 1; x < 2; x++) z_line(sw->screen, 70 + x * 40, 100, 70, 300, z_makecol(0, 255, 255)); zsdl->antialiasing = oldaa; } */ } else #endif { x = 1; y = 0; if (band){ cc = g_strndup(ctest->tname, 30); clip_printf(sw, x, y, COL_NORM, "%-12s %-20s %-7s", ctest->pcall, cc, band->pband); g_free(cc); y++; } for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); if (b->band != band) continue; clip_printf(sw, x, y, COL(i % 7 + 0x41), "%-12s %-20s %-7s", b->pcall, b->tname, b->pband); y++; } } } void sw_chart_check_bounds(struct subwin *sw){ #ifdef Z_HAVE_SDL if (!sdl) return; #endif } void sw_chart_raise(struct subwin *sw){ #ifdef Z_HAVE_SDL sw->gdirty=1; #endif } void sw_chart_free_band(struct chband *b){ int i; for (i = 0; i < b->chqsos->len; i++){ struct chqso *q = (struct chqso *)g_ptr_array_index(b->chqsos, i); zg_free0(q->call); zg_free0(q->op); g_free(q); } g_ptr_array_free(b->chqsos, TRUE); zg_free0(b->pcall); zg_free0(b->pwwlo); zg_free0(b->tname); zg_free0(b->pband); zg_free0(b->filename); g_free(b); } void sw_chart_free(struct subwin *sw){ int i; if (!sw->chbands) return; for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband*)g_ptr_array_index(sw->chbands, i); sw_chart_free_band(b); } g_ptr_array_free(sw->chbands, TRUE); } void sw_chart_delete_band(void *chb, void * unused){ struct chband *b = (struct chband*)chb; g_ptr_array_remove(gses->ontop->chbands, b); sw_chart_free_band(b); redraw_later(); } int sw_chart_load_file(struct subwin *sw, char *filename, int quiet){ int j, v; struct chband *b; FILE *f; GString *gs; char *val; gchar **items; int firstdate = -1; int tajm; GHashTable *hash; // if (!sdl) return; f = fopen(filename, "rt"); if (!f){ if (!quiet) log_addf(VTEXT(T_CANT_READ_S), filename); return -1; } hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); gs = g_string_sized_new(100); b = g_new0(struct chband, 1); g_ptr_array_add(sw->chbands, b); b->chqsos = g_ptr_array_new(); b->filename = g_strdup(filename); #ifdef Z_HAVE_SDL if (sdl){ char *path; unsigned hash; int r, g, l; path = g_strdup(filename); z_dirname(path); hash = g_str_hash(path); r = 0x80 | ((hash >> 1) & 0x7f); g = 0x80 | ((hash >> 9) & 0x7f); l = 0x80 | ((hash >> 17) & 0x7f); if (r < g && r < l) r = 0; if (g < r && g < l) g = 0; if (l < r && l < g) l = 0; b->color = z_makecol(r, g, l); g_free(path); // sdl->termcol[(sw->chbands->len % 6) + 8]; } #endif zfile_fgets(gs, f, 0); while(zfile_fgets(gs, f, 0) != NULL){ if (gs->str[0]=='[') break; val = strchr(gs->str, '='); *val='\0'; val++; // dbg("key='%s'\n", gs->str); if (strcasecmp(gs->str, "pcall")==0){ zg_free0(b->pcall); b->pcall = g_strdup(val); }else if (strcasecmp(gs->str, "pwwlo")==0){ zg_free0(b->pwwlo); b->pwwlo = g_strdup(val); }else if (strcasecmp(gs->str, "tname")==0){ zg_free0(b->tname); b->tname = g_strndup(val, 30); }else if (strcasecmp(gs->str, "pband")==0){ zg_free0(b->pband); b->pband = g_strndup(val, 7); b->band = find_band_by_pband(b->pband); } } while(strncasecmp(gs->str, "[qsorecords", 11)!=0){ if (zfile_fgets(gs, f, 0) == NULL) goto x; if (strncasecmp(gs->str, "qso", 3) == 0){ items = g_strsplit_set(gs->str, "=;", 0); for (j = 0; j <= 4; j++) if (!items[j]) goto bado; g_hash_table_insert(hash, g_strdup(items[0]), g_strdup(items[2])); } bado:; } v = 0; while(zfile_fgets(gs, f, 0) != NULL){ struct chqso *q; char key[20], *hkey; if (gs->str[0]=='[') break; // dbg("qso='%s'\n", gs->str); items = g_strsplit(gs->str, ";", 0); for (j = 0; j <= 11; j++) if (!items[j]) goto badq; if (firstdate < 0) firstdate = atoi(items[0]); if (!strcasecmp(items[2], "ERROR")) continue; q = g_new0(struct chqso, 1); q->call = g_strdup(items[2]); tajm = atoi(items[1]); q->time = (atoi(items[0]) - firstdate) * 1440 + (tajm / 100) * 60 + tajm % 100; q->pts = atoi(items[10]); sprintf(key, "qso%d", b->chqsos->len); hkey = g_hash_table_lookup(hash, key); q->op = g_strdup(hkey ? hkey : ""); v += q->pts; q->value = v; g_ptr_array_add(b->chqsos, q); //dbg("%d %d %d\n", q->time, q->pts, q->value); badq:; } fclose(f); x:; g_string_free(gs, TRUE); g_hash_table_destroy(hash); return 0; /* v = 0; for (i = 1400; i < 2400+1400; i += 20){ struct chqso *q = g_new0(struct chqso, 1); q->time = i; q->value = v; v += rand() % 300; g_ptr_array_add(b->chqsos, q); } */ } int sw_chart_recalc_extremes(struct subwin *sw, struct band *band){ #ifdef Z_HAVE_SDL int i, bt = 0, t, v, j, tajm; sw->mint = 1000000000; sw->maxt = 0; sw->minv = 0; sw->maxv = 0; if (band){ v = 0; for (i = 0; i < band->qsos->len; i++){ struct qso *q = (struct qso *)g_ptr_array_index(band->qsos, i); if (i == 0) bt = atoi(q->date_str + 2); if (q->error || q->dupe) continue; tajm = atoi(q->time_str); t = (atoi(q->date_str + 2) - bt) * 1440 + (tajm / 100) * 60 + tajm % 100; v += q->qsop; if (t < sw->mint) sw->mint = t; if (t > sw->maxt) sw->maxt = t; if (v < sw->minv) sw->minv = v; if (v > sw->maxv) sw->maxv = v; } } for (i = 0; i < sw->chbands->len; i++){ struct chband *b = (struct chband *)g_ptr_array_index(sw->chbands, i); if (b->band != band) continue; for (j = 0; j < b->chqsos->len; j++){ struct chqso *q = (struct chqso *)g_ptr_array_index(b->chqsos, j); if (q->time < sw->mint) sw->mint = q->time; if (q->time > sw->maxt) sw->maxt = q->time; if (q->value < sw->minv) sw->minv = q->value; if (q->value > sw->maxv) sw->maxv = q->value; } } sw->mint = (sw->mint / 60) * 60; sw->maxt = ((sw->maxt + 59) / 60) * 60; #endif return 0; } int chart_reload(void){ #ifdef Z_HAVE_SDL int i; struct subwin *sw=NULL; if (!sdl) return 0; /*dbg("maps_reload\n");*/ for (i=0;isubwins->len;i++){ sw=(struct subwin *)g_ptr_array_index(gses->subwins, i); if (sw->type!=SWT_CHART) continue; sw_chart_recalc_extremes(sw, aband); } if (gses && gses->ontop && gses->ontop->type==SWT_CHART) sw_chart_redraw(gses->ontop, aband, 0); #endif return 0; } int save_chart_to_file(char *filename){ int i, j, k; int ret = 0; struct subwin *subwin; struct chband *chband; FILE *f; GString *gs; f = fopen(filename, "wb"); if (!f){ log_addf(VTEXT(T_CANT_WRITE_S), filename); return errno; } j = 0; gs = g_string_new(""); for (i = 0; i < gses->subwins->len; i++){ subwin = (struct subwin *) g_ptr_array_index(gses->subwins, i); if (subwin->type != SWT_CHART) continue; for (k = 0; k < subwin->chbands->len; k++){ chband = (struct chband*)g_ptr_array_index(subwin->chbands, k); zg_string_eprintfa("e", gs, "%d;%s\r\n", j, chband->filename); } j++; } fprintf(f, "%s", gs->str); g_string_free(gs, TRUE); fclose(f); return ret; } int load_chart_from_file(gchar *filename){ FILE *f; char s[402]; struct zstring *zs; int i, j, k; char *c; struct subwin *subwin; f = fopen(filename, "rt"); if (!f){ return -1; } while((fgets(s, 400, f))!=NULL){ chomp(s); zs = zstrdup(s); k = atoi(ztokenize(zs, 1)); c = ztokenize(zs, 0); j = 0; for (i = 0; i < gses->subwins->len; i++){ subwin = (struct subwin *) g_ptr_array_index(gses->subwins, i); if (subwin->type != SWT_CHART) continue; if (j == k){ sw_chart_load_file(subwin, c, 0); } j++; } zfree(zs); } fclose(f); z_ptr_array_qsort(qrv->qrvs, qrv->sort); return 0; } void chart_clear_all(){ zg_ptr_array_foreach(struct subwin *, subwin, gses->subwins){ //dbg("title=%s\n", subwin->title); if (!subwin->chbands) continue; { zg_ptr_array_foreachback(struct chband*, chband, subwin->chbands){ // dbg("free\n"); sw_chart_free_band(chband); g_ptr_array_remove_index(subwin->chbands, chband_i); } } } redraw_later(); } tucnak-4.04/src/winkey.c0000644000175000017500000002166212460207027012117 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. 28.Oct 2008: Modification by dl5ybz for fast fix .. this file needs review by Lada (or anyone else who codes in C) ..! Winkey2 works for me so far now 73 de Olaf / DL5YBZ Documentation: http://k1el.tripod.com/files/WinkeyInterfaceGuide.pdf */ #include "header.h" #include "bfu.h" #include "cwdaemon.h" #include "davac4.h" #include "fifo.h" #include "main.h" #include "rc.h" #include "terminal.h" #include "winkey.h" int winkey_init_serial(struct cwdaemon *cwda){ cwda->zser = zserial_init_serial(cfg->cwda_device); cwda->zser_fd = -1; // set 1200 baud, 8bit, no parity, two stop bits zserial_set_line(cwda->zser, 1200, 8, 'N', 2); zserial_nolocks(cwda->zser, cfg->nolocks); winkey_open(cwda, 1); return 0; } int winkey_init_tcp(struct cwdaemon *cwda){ dbg("winkey_init_tcp\n"); cwda->zser = zserial_init_tcp(cfg->cwda_hostname, cfg->cwda_udp_port); cwda->zser_fd = -1; //// set 1200 baud, 8bit, no parity, two stop bits //zserial_set_line(cwda->zser, 1200, 8, 'N', 2); // useless over TCP winkey_open(cwda, 1); return 0; } int winkey_write(struct cwdaemon *cwda, void *data, int len){ int ret; ret = zserial_write(cwda->zser, data, len); if (ret < 0){ dbg("winkey_write: zserial_write failed\n"); if (cwda->zser_fd >= 0){ zselect_set(zsel, cwda->zser_fd, NULL, NULL, NULL, cwda); cwda->zser_fd = -1; } } return ret; } int winkey_open(struct cwdaemon *cwda, int verbose){ int i; char s[256]; dbg("winkey_open(verbose=%d)\n", verbose); if (zserial_open(cwda->zser)){ if (verbose) log_addf("Winkey: %s", zserial_errorstr(cwda->zser)); // winkey_reset(cwda); // winkey_free(cwda); return -1; } // to power up enable DTR and disable RTS zserial_dtr(cwda->zser, 1); zserial_rts(cwda->zser, 0); if (!cfg->wk_wk2){ // delay 500ms for winkey init usleep(500000); // calibration command winkey_write(cwda, "\x00\x00", 2); usleep(100000); winkey_write(cwda, "\xff", 1); } // is winkey attached? echo command winkey_write(cwda, "\x00\x04\x55", 3); i = winkey_read(cwda, 1000); // dbg("winkey_read: %d\n", i); if (i < 0){ if (verbose) log_addf(VTEXT(T_CANT_INIT_WINKEY_S), cfg->cwda_device); zserial_close(cwda->zser); return -1; } // open winkey hostmode winkey_write(cwda, "\x00\x02", 2); i = winkey_read(cwda, 500); // dbg("winkey_read: %d\n", i); if (i < 0){ if (verbose) error("Can't open winkey hostmode"); zserial_close(cwda->zser); return -1; } cwda->winkey_version = (unsigned char)i; if (cwda->winkey_version >= 20){ // >= 2.0 // set WK2 mode winkey_write(cwda, "\x00\x0b", 2); } // setup speed pot sprintf(s, "\x05%c\x1f\xff", cfg->cwda_minwpm); winkey_write(cwda, s, 4); // winkey2 mode if (cwda->winkey_version >= 20){ s[0] = '\x0e'; s[1] = ((cfg->wk_keymode-1)&0x03) << 4; if (cfg->wk_swap) s[1] |= 0x08; //dbg("wk_keymode=%d winkey2 mode=0x%02x\n", cfg->wk_keymode, s[1]); winkey_write(cwda, s, 2); } // force to send speed pot value winkey_write(cwda, "\x07", 1); // force to send status winkey_write(cwda, "\x15", 1); // set PTT lead in s[0] = '\04'; s[1] = cfg->cwda_leadin / 10; s[2] = '\x01'; // \x00 means something strange, see winkeyusbman.pdf winkey_write(cwda, s, 3); cwda->zser_fd = zserial_fd(cwda->zser); zselect_set(zsel, cwda->zser_fd, winkey_read_handler, NULL, NULL, cwda); return 0; } int winkey_free(struct cwdaemon *cwda){ if (!cwda) return 0; // dbg("Winkey_CW_host leaving sequence\n"); winkey_write(cwda, "\x0a", 1); /*clear Buffer*/ winkey_write(cwda, "\x00\x03", 2); /*leave hostmode*/ // clear DTR zserial_dtr(cwda->zser, 0); if (cwda->zser_fd >= 0){ zselect_set(zsel, cwda->zser_fd, NULL, NULL, NULL, cwda); cwda->zser_fd = -1; } zserial_free(cwda->zser); cwda->zser = NULL; return 0; } int winkey_read(struct cwdaemon *cwda, int timeout_ms){ unsigned char c; if (zserial_read(cwda->zser, &c, 1, timeout_ms) != 1){ if (cwda->zser_fd >= 0){ zselect_set(zsel, cwda->zser_fd, NULL, NULL, NULL, cwda); cwda->zser_fd = -1; } return -1; } return (int)c; } int winkey_reset(struct cwdaemon *cwda){ if (!cwda || cwda->fd<0) return 0; winkey_write(cwda, "\x0a", 1); return 0; } int winkey_cw(struct cwdaemon *cwda, int onoff){ return 0; } int winkey_ptt(struct cwdaemon *cwda, int onoff){ char s[16]; dbg("winkey_ptt(%d)\n", onoff); if (!cwda || cwda->fd<0) return 0; sprintf(s,"\x18%c", onoff ? '\x01' : '\x00'); winkey_write(cwda, s, 2); return 0; } int winkey_ssbway(struct cwdaemon *cwda, int onoff){ return 0; } int winkey_text(struct cwdaemon *cwda, char *text){ char *c, *s, *d; dbg("winkey_text fd=%d\n", cwda->fd); if (!cwda || cwda->fd<0) return 0; s = g_strdup(text); for (c=text, d=s; *c!='\0'; c++, d++) *d=toupper(*c); // dbg("winkey_text('%s')\n", s); winkey_write(cwda, s, strlen(s)); g_free(s); return 0; } int winkey_speed(struct cwdaemon *cwda, int wpm){ char s[16]; if (!cwda || cwda->fd<0) return 0; dbg("winkey_speed=%d\n", wpm); sprintf(s,"\x02%c", wpm); winkey_write(cwda, s, 2); return 0; } int winkey_weight(struct cwdaemon *cwda, int weight){ char s[16]; if (!cwda || cwda->fd<0) return 0; dbg("winkey_weight=%d\n", weight); sprintf(s,"\x03%c", weight ); winkey_write(cwda, s, 2); return 0; } int winkey_tune(struct cwdaemon *cwda, int tune){ char s[16]; if (!cwda || cwda->fd<0) return 0; sprintf(s, "\x0b%c", tune ? '\x01' : '\x00'); winkey_write(cwda, s, 2); return 0; } int winkey_back(struct cwdaemon *cwda){ char s[16]; if (!cwda || cwda->fd<0) return 0; strcpy(s, "\x08"); winkey_write(cwda, s, 1); return 0; } void winkey_read_handler(void *arg){ char s[1024], status; int ret, i, speed; struct cwdaemon *cwda; cwda = (struct cwdaemon*)arg; ret = z_pipe_read(cwda->zser_fd, s, 1000); if (ret<=0) return; // dbg("winkey_read_handler("); for (i=0; iwinkey_oldstatus){ if (cwda->winkey_version >= 20 && status & 0x08 && cfg->wk_usebut){ // pushbutton status // dbg("keys=%02x ", status & 0x17); if ((status&0x01) && (cwda->winkey_oldstatus&0x01)==0) cq_run_by_number(0); else if ((status&0x02) && (cwda->winkey_oldstatus&0x02)==0) cq_run_by_number(1); else if ((status&0x04) && (cwda->winkey_oldstatus&0x04)==0) cq_run_by_number(2); else if ((status&0x10) && (cwda->winkey_oldstatus&0x10)==0) cq_run_by_number(3); }else{ // status if (status & 0x02){ // dbg("break in "); zselect_msg_send(zsel, "%s;%s", "CW", "b"); //ret2 = write(tpipe->threadpipe_write, "CW;b\n", 5); }else if ((cwda->winkey_oldstatus & 0x04) != 0 && (status & 0x04) == 0){ // dbg("text played cq=%p ", gses->last_cq); zselect_msg_send(zsel, "%s;%s", "CW", "e"); //ret2 = write(tpipe->threadpipe_write, "CW;e\n", 5); } } cwda->winkey_oldstatus = status; } }else if ((s[i] & 0xc0) == 0x80){ speed = (s[i] & 0x1f) + cfg->cwda_minwpm; if (cfg->wk_usepot && speed != cwda->speed){ cwda->speed = speed; // dbg("pot=%d WPM ", cwda->speed); if (cwda->sspeed) cwda->sspeed(cwda, cwda->speed); redraw_later(); } }else{ // dbg("char=%c ", s[i]); } } // dbg(")\r\n"); } /*int winkey4_init(struct cwdaemon *cwda){ winkey_init(cwda); #ifdef Z_HAVE_LIBFTDI davac4_init(cwda); #endif return 0; } int winkey4_free(struct cwdaemon *cwda){ winkey_free(cwda); #ifdef Z_HAVE_LIBFTDI davac4_free(cwda); #endif return 0; } int winkey4_reset(struct cwdaemon *cwda){ winkey_reset(cwda); #ifdef Z_HAVE_LIBFTDI davac4_reset(cwda); #endif return 0; } */ tucnak-4.04/src/main.h0000644000175000017500000000166412362457257011557 00000000000000/* Tucnak - VHF contest log Copyright (C) 2011 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifndef __MAIN_H #define __MAIN_H #define RET_OK 0 #define RET_ERROR 1 #define RET_SIGNAL 2 #define RET_SYNTAX 3 #define RET_FATAL 4 extern int retval; extern char *starting_sbrk; extern int first_contest_def; extern struct zselect *zsel; extern struct zfiledlg *zfiledlg; extern char *tucnak_dir; extern char *home_dir; void unhandle_terminal_signals(void); void unhandle_basic_signals(void); int term_attach_terminal(int, int, int); void handle_basic_signals(struct terminal *term); void sig_segv(void *arg); void info(GString *gs); void settings(GString *gs); #ifdef Z_ANDROID void android_trace_keys(char *s); #endif void redraw(void); #endif tucnak-4.04/src/txts.inc0000644000175000017500000227463712251300603012150 00000000000000/* Automatically generated by txt2inc.pl */ const char txt_cty[65527] = "Sov Mil Order of Malta: 15: 28: EU: 41.90: -12.43: -1.0: 1A:\n" " 1A;\n" "Spratly Islands: 26: 50: AS: 9.88: -114.23: -8.0: 1S:\n" " 1S,9M0,BV9S,=9M4SLL;\n" "Monaco: 14: 27: EU: 43.73: -7.40: -1.0: 3A:\n" " 3A;\n" "Agalega & St. Brandon: 39: 53: AF: -10.45: -56.67: -4.0: 3B6:\n" " 3B6,3B7;\n" "Mauritius: 39: 53: AF: -20.35: -57.50: -4.0: 3B8:\n" " 3B8;\n" "Rodriguez Island: 39: 53: AF: -19.70: -63.42: -4.0: 3B9:\n" " 3B9;\n" "Equatorial Guinea: 36: 47: AF: 1.70: -10.33: -1.0: 3C:\n" " 3C;\n" "Annobon Island: 36: 52: AF: -1.43: -5.62: -1.0: 3C0:\n" " 3C0;\n" "Fiji: 32: 56: OC: -17.78: -177.92: -12.0: 3D2:\n" " 3D2;\n" "Conway Reef: 32: 56: OC: -22.00: -175.00: -12.0: 3D2/c:\n" " =3D2C;\n" "Rotuma Island: 32: 56: OC: -12.48: -177.08: -12.0: 3D2/r:\n" " =3D2RI;\n" "Swaziland: 38: 57: AF: -26.65: -31.48: -2.0: 3DA:\n" " 3DA;\n" "Tunisia: 33: 37: AF: 35.40: -9.32: -1.0: 3V:\n" " 3V,TS;\n" "Vietnam: 26: 49: AS: 15.80: -107.90: -7.0: 3W:\n" " 3W,XV;\n" "Guinea: 35: 46: AF: 11.00: 10.68: 0.0: 3X:\n" " 3X;\n" "Bouvet: 38: 67: AF: -54.42: -3.38: -1.0: 3Y/b:\n" " =3Y0E;\n" "Peter 1 Island: 12: 72: SA: -68.77: 90.58: 4.0: 3Y/p:\n" " =3Y0X;\n" "Azerbaijan: 21: 29: AS: 40.45: -47.37: -4.0: 4J:\n" " 4J,4K;\n" "Georgia: 21: 29: AS: 42.00: -45.00: -4.0: 4L:\n" " 4L,UF6V;\n" "Montenegro: 15: 28: EU: 42.50: -19.28: -1.0: 4O:\n" " 4O;\n" "Sri Lanka: 22: 41: AS: 7.60: -80.70: -5.5: 4S:\n" " 4P,4Q,4R,4S;\n" "ITU HQ: 14: 28: EU: 46.17: -6.05: -1.0: 4U1I:\n" " 4U0I,4U1I,4U2I,4U3I,4U4I,4U5I,4U6I,4U7I,4U8I,4U9I,=4U1WRC;\n" "United Nations HQ: 05: 08: NA: 40.75: 73.97: 5.0: 4U1U:\n" " 4U1U;\n" "Vienna Intl Ctr: 15: 28: EU: 48.20: -16.30: -1.0: *4U1V:\n" " 4U1V;\n" "Timor - Leste: 28: 54: OC: -8.80: -126.05: -9.0: 4W:\n" " 4W;\n" "Israel: 20: 39: AS: 31.32: -34.82: -2.0: 4X:\n" " 4X,4Z;\n" "Libya: 34: 38: AF: 27.20: -16.60: -2.0: 5A:\n" " 5A;\n" "Cyprus: 20: 39: AS: 35.00: -33.00: -2.0: 5B:\n" " 5B,C4,H2,P3;\n" "Tanzania: 37: 53: AF: -5.75: -33.92: -3.0: 5H:\n" " 5H,5I;\n" "Nigeria: 35: 46: AF: 9.87: -7.55: -1.0: 5N:\n" " 5N,5O;\n" "Madagascar: 39: 53: AF: -19.00: -46.58: -3.0: 5R:\n" " 5R,5S,6X;\n" "Mauritania: 35: 46: AF: 20.60: 10.50: 0.0: 5T:\n" " 5T;\n" "Niger: 35: 46: AF: 17.63: -9.43: -1.0: 5U:\n" " 5U;\n" "Togo: 35: 46: AF: 8.40: -1.28: 0.0: 5V:\n" " 5V;\n" "Samoa: 32: 62: OC: -13.93: 171.70: -13.0: 5W:\n" " 5W;\n" "Uganda: 37: 48: AF: 1.92: -32.60: -3.0: 5X:\n" " 5X;\n" "Kenya: 37: 48: AF: 0.32: -38.15: -3.0: 5Z:\n" " 5Y,5Z;\n" "Senegal: 35: 46: AF: 15.20: 14.63: 0.0: 6W:\n" " 6V,6W;\n" "Jamaica: 08: 11: NA: 18.20: 77.47: 5.0: 6Y:\n" " 6Y;\n" "Yemen: 21: 39: AS: 15.65: -48.12: -3.0: 7O:\n" " 7O;\n" "Lesotho: 38: 57: AF: -29.22: -27.88: -2.0: 7P:\n" " 7P;\n" "Malawi: 37: 53: AF: -14.00: -34.00: -2.0: 7Q:\n" " 7Q;\n" "Algeria: 33: 37: AF: 28.00: -2.00: -1.0: 7X:\n" " 7R,7T,7U,7V,7W,7X,7Y;\n" "Barbados: 08: 11: NA: 13.18: 59.53: 4.0: 8P:\n" " 8P;\n" "Maldives: 22: 41: AS: 4.15: -73.45: -5.0: 8Q:\n" " 8Q;\n" "Guyana: 09: 12: SA: 6.02: 59.45: 4.0: 8R:\n" " 8R;\n" "Croatia: 15: 28: EU: 45.18: -15.30: -1.0: 9A:\n" " 9A,=VERSION;\n" "Ghana: 35: 46: AF: 7.70: 1.57: 0.0: 9G:\n" " 9G;\n" "Malta: 15: 28: EU: 35.88: -14.42: -1.0: 9H:\n" " 9H;\n" "Zambia: 36: 53: AF: -14.22: -26.73: -2.0: 9J:\n" " 9I,9J;\n" "Kuwait: 21: 39: AS: 29.38: -47.38: -3.0: 9K:\n" " 9K,NLD;\n" "Sierra Leone: 35: 46: AF: 8.50: 13.25: 0.0: 9L:\n" " 9L;\n" "West Malaysia: 28: 54: AS: 3.95: -102.23: -8.0: 9M2:\n" " 9M2,9M4,9W2,9W4,=9M8DX/2;\n" "East Malaysia: 28: 54: OC: 2.68: -113.32: -8.0: 9M6:\n" " 9M6,9M8,9M9,9W6,9W8,=9M4SAB;\n" "Nepal: 22: 42: AS: 27.70: -85.33: -5.75: 9N:\n" " 9N;\n" "Dem. Rep. of the Congo: 36: 52: AF: -3.12: -23.03: -1.0: 9Q:\n" " 9O,9P,9Q,9R,9S,9T;\n" "Burundi: 36: 52: AF: -3.17: -29.78: -2.0: 9U:\n" " 9U;\n" "Singapore: 28: 54: AS: 1.37: -103.78: -8.0: 9V:\n" " 9V,S6;\n" "Rwanda: 36: 52: AF: -1.75: -29.82: -2.0: 9X:\n" " 9X;\n" "Trinidad & Tobago: 09: 11: SA: 10.38: 61.28: 4.0: 9Y:\n" " 9Y,9Z;\n" "Botswana: 38: 57: AF: -22.00: -24.00: -2.0: A2:\n" " 8O,A2;\n" "Tonga: 32: 62: OC: -21.22: 175.13: -13.0: A3:\n" " A3;\n" "Oman: 21: 39: AS: 23.60: -58.55: -4.0: A4:\n" " A4;\n" "Bhutan: 22: 41: AS: 27.40: -90.18: -6.0: A5:\n" " A5;\n" "United Arab Emirates: 21: 39: AS: 24.00: -54.00: -4.0: A6:\n" " A6;\n" "Qatar: 21: 39: AS: 25.25: -51.13: -3.0: A7:\n" " A7;\n" "Bahrain: 21: 39: AS: 26.03: -50.53: -3.0: A9:\n" " A9;\n" "Pakistan: 21: 41: AS: 30.00: -70.00: -5.0: AP:\n" " 6P,6Q,6R,6S,AP,AQ,AR,AS;\n" "Scarborough Reef: 27: 50: AS: 15.08: -117.72: -8.0: BS7:\n" " =BS7H;\n" "Taiwan: 24: 44: AS: 23.72: -120.88: -8.0: BV:\n" " BM,BN,BO,BP,BQ,BU,BV,BW,BX;\n" "Pratas Island: 24: 44: AS: 20.70: -116.70: -8.0: BV9P:\n" " BM9P,BN9P,BO9P,BP9P,BQ9P,BU9P,BV9P,BW9P,BX9P;\n" "China: 24: 44: AS: 36.00: -102.00: -8.0: BY:\n" " 3H,3H0(23)[42],3H9(23)[43],3I,3I0(23)[42],3I9(23)[43],3J,3J0(23)[42],\n" " 3J9(23)[43],3K,3K0(23)[42],3K9(23)[43],3L,3L0(23)[42],3L9(23)[43],3M,\n" " 3M0(23)[42],3M9(23)[43],3N,3N0(23)[42],3N9(23)[43],3O,3O0(23)[42],\n" " 3O9(23)[43],3P,3P0(23)[42],3P9(23)[43],3Q,3Q0(23)[42],3Q9(23)[43],3R,\n" " 3R0(23)[42],3R9(23)[43],3S,3S0(23)[42],3S9(23)[43],3T,3T0(23)[42],\n" " 3T9(23)[43],3U,3U0(23)[42],3U9(23)[43],B0(23)[42],B2,B3,B4,B5,B6,B7,B8,\n" " B9(23)[43],BA,BA0(23)[42],BA9(23)[43],BD,BD0(23)[42],BD9(23)[43],BG,\n" " BG0(23)[42],BG9(23)[43],BH,BH0(23)[42],BH9(23)[43],BI,BJ,BJ0(23)[42],\n" " BJ9(23)[43],BL,BL0(23)[42],BL9(23)[43],BT,BT0(23)[42],BT9(23)[43],BY,\n" " BY0(23)[42],BY9(23)[43],BZ,BZ0(23)[42],BZ9(23)[43],XS,XS0(23)[42],\n" " XS9(23)[43],B1,B2A[33],B2B[33],B2C[33],B2D[33],B2E[33],B2F[33],B2G[33],\n" " B2H[33],B2I[33],B2J[33],B2K[33],B2L[33],B2M[33],B2N[33],B2O[33],B2P[33],\n" " B3G(23)[33],B3H(23)[33],B3I(23)[33],B3J(23)[33],B3K(23)[33],B3L(23)[33],\n" " B6Q[43],B6R[43],B6S[43],B6T[43],B6U[43],B6V[43],B6W[43],B6X[43],B7A[43],\n" " B7B[43],B7C[43],B7D[43],B7E[43],B7F[43],B7G[43],B7H[43],B7Q[43],B7R[43],\n" " B7S[43],B7T[43],B7U[43],B7V[43],B7W[43],B7X[43],B8A[43],B8B[43],B8C[43],\n" " B8D[43],B8E[43],B8F[43],B8G[43],B8H[43],B8I[43],B8J[43],B8K[43],B8L[43],\n" " B8M[43],B8N[43],B8O[43],B8P[43],B8Q[43],B8R[43],B8S[43],B8T[43],B8U[43],\n" " B8V[43],B8W[43],B8X[43],B9A(24)[43],B9B(24)[43],B9C(24)[43],B9D(24)[43],\n" " B9E(24)[43],B9F(24)[43],B9S(23)[42],B9T(23)[42],B9U(23)[42],B9V(23)[42],\n" " B9W(23)[42],B9X(23)[42],BA2A[33],BA2B[33],BA2C[33],BA2D[33],BA2E[33],\n" " BA2F[33],BA2G[33],BA2H[33],BA2I[33],BA2J[33],BA2K[33],BA2L[33],BA2M[33],\n" " BA2N[33],BA2O[33],BA2P[33],BA3G(23)[33],BA3H(23)[33],BA3I(23)[33],\n" " BA3J(23)[33],BA3K(23)[33],BA3L(23)[33],BA6Q[43],BA6R[43],BA6S[43],\n" " BA6T[43],BA6U[43],BA6V[43],BA6W[43],BA6X[43],BA7A[43],BA7B[43],BA7C[43],\n" " BA7D[43],BA7E[43],BA7F[43],BA7G[43],BA7H[43],BA7Q[43],BA7R[43],BA7S[43],\n" " BA7T[43],BA7U[43],BA7V[43],BA7W[43],BA7X[43],BA8A[43],BA8B[43],BA8C[43],\n" " BA8D[43],BA8E[43],BA8F[43],BA8G[43],BA8H[43],BA8I[43],BA8J[43],BA8K[43],\n" " BA8L[43],BA8M[43],BA8N[43],BA8O[43],BA8P[43],BA8Q[43],BA8R[43],BA8S[43],\n" " BA8T[43],BA8U[43],BA8V[43],BA8W[43],BA8X[43],BA9A(24)[43],BA9B(24)[43],\n" " BA9C(24)[43],BA9D(24)[43],BA9E(24)[43],BA9F(24)[43],BA9S(23)[42],\n" " BA9T(23)[42],BA9U(23)[42],BA9V(23)[42],BA9W(23)[42],BA9X(23)[42],BD2A[33],\n" " BD2B[33],BD2C[33],BD2D[33],BD2E[33],BD2F[33],BD2G[33],BD2H[33],BD2I[33],\n" " BD2J[33],BD2K[33],BD2L[33],BD2M[33],BD2N[33],BD2O[33],BD2P[33],\n" " BD3G(23)[33],BD3H(23)[33],BD3I(23)[33],BD3J(23)[33],BD3K(23)[33],\n" " BD3L(23)[33],BD6Q[43],BD6R[43],BD6S[43],BD6T[43],BD6U[43],BD6V[43],\n" " BD6W[43],BD6X[43],BD7A[43],BD7B[43],BD7C[43],BD7D[43],BD7E[43],BD7F[43],\n" " BD7G[43],BD7H[43],BD7Q[43],BD7R[43],BD7S[43],BD7T[43],BD7U[43],BD7V[43],\n" " BD7W[43],BD7X[43],BD8A[43],BD8B[43],BD8C[43],BD8D[43],BD8E[43],BD8F[43],\n" " BD8G[43],BD8H[43],BD8I[43],BD8J[43],BD8K[43],BD8L[43],BD8M[43],BD8N[43],\n" " BD8O[43],BD8P[43],BD8Q[43],BD8R[43],BD8S[43],BD8T[43],BD8U[43],BD8V[43],\n" " BD8W[43],BD8X[43],BD9A(24)[43],BD9B(24)[43],BD9C(24)[43],BD9D(24)[43],\n" " BD9E(24)[43],BD9F(24)[43],BD9S(23)[42],BD9T(23)[42],BD9U(23)[42],\n" " BD9V(23)[42],BD9W(23)[42],BD9X(23)[42],BG2A[33],BG2B[33],BG2C[33],\n" " BG2D[33],BG2E[33],BG2F[33],BG2G[33],BG2H[33],BG2I[33],BG2J[33],BG2K[33],\n" " BG2L[33],BG2M[33],BG2N[33],BG2O[33],BG2P[33],BG3G(23)[33],BG3H(23)[33],\n" " BG3I(23)[33],BG3J(23)[33],BG3K(23)[33],BG3L(23)[33],BG6Q[43],BG6R[43],\n" " BG6S[43],BG6T[43],BG6U[43],BG6V[43],BG6W[43],BG6X[43],BG7A[43],BG7B[43],\n" " BG7C[43],BG7D[43],BG7E[43],BG7F[43],BG7G[43],BG7H[43],BG7Q[43],BG7R[43],\n" " BG7S[43],BG7T[43],BG7U[43],BG7V[43],BG7W[43],BG7X[43],BG8A[43],BG8B[43],\n" " BG8C[43],BG8D[43],BG8E[43],BG8F[43],BG8G[43],BG8H[43],BG8I[43],BG8J[43],\n" " BG8K[43],BG8L[43],BG8M[43],BG8N[43],BG8O[43],BG8P[43],BG8Q[43],BG8R[43],\n" " BG8S[43],BG8T[43],BG8U[43],BG8V[43],BG8W[43],BG8X[43],BG9A(24)[43],\n" " BG9B(24)[43],BG9C(24)[43],BG9D(24)[43],BG9E(24)[43],BG9F(24)[43],\n" " BG9S(23)[42],BG9T(23)[42],BG9U(23)[42],BG9V(23)[42],BG9W(23)[42],\n" " BG9X(23)[42],BH2A[33],BH2B[33],BH2C[33],BH2D[33],BH2E[33],BH2F[33],\n" " BH2G[33],BH2H[33],BH2I[33],BH2J[33],BH2K[33],BH2L[33],BH2M[33],BH2N[33],\n" " BH2O[33],BH2P[33],BH3G(23)[33],BH3H(23)[33],BH3I(23)[33],BH3J(23)[33],\n" " BH3K(23)[33],BH3L(23)[33],BH6Q[43],BH6R[43],BH6S[43],BH6T[43],BH6U[43],\n" " BH6V[43],BH6W[43],BH6X[43],BH7A[43],BH7B[43],BH7C[43],BH7D[43],BH7E[43],\n" " BH7F[43],BH7G[43],BH7H[43],BH7Q[43],BH7R[43],BH7S[43],BH7T[43],BH7U[43],\n" " BH7V[43],BH7W[43],BH7X[43],BH8A[43],BH8B[43],BH8C[43],BH8D[43],BH8E[43],\n" " BH8F[43],BH8G[43],BH8H[43],BH8I[43],BH8J[43],BH8K[43],BH8L[43],BH8M[43],\n" " BH8N[43],BH8O[43],BH8P[43],BH8Q[43],BH8R[43],BH8S[43],BH8T[43],BH8U[43],\n" " BH8V[43],BH8W[43],BH8X[43],BH9A(24)[43],BH9B(24)[43],BH9C(24)[43],\n" " BH9D(24)[43],BH9E(24)[43],BH9F(24)[43],BH9S(23)[42],BH9T(23)[42],\n" " BH9U(23)[42],BH9V(23)[42],BH9W(23)[42],BH9X(23)[42],BJ2A[33],BJ2B[33],\n" " BJ2C[33],BJ2D[33],BJ2E[33],BJ2F[33],BJ2G[33],BJ2H[33],BJ2I[33],BJ2J[33],\n" " BJ2K[33],BJ2L[33],BJ2M[33],BJ2N[33],BJ2O[33],BJ2P[33],BJ3G(23)[33],\n" " BJ3H(23)[33],BJ3I(23)[33],BJ3J(23)[33],BJ3K(23)[33],BJ3L(23)[33],BJ6Q[43],\n" " BJ6R[43],BJ6S[43],BJ6T[43],BJ6U[43],BJ6V[43],BJ6W[43],BJ6X[43],BJ7A[43],\n" " BJ7B[43],BJ7C[43],BJ7D[43],BJ7E[43],BJ7F[43],BJ7G[43],BJ7H[43],BJ7Q[43],\n" " BJ7R[43],BJ7S[43],BJ7T[43],BJ7U[43],BJ7V[43],BJ7W[43],BJ7X[43],BJ8A[43],\n" " BJ8B[43],BJ8C[43],BJ8D[43],BJ8E[43],BJ8F[43],BJ8G[43],BJ8H[43],BJ8I[43],\n" " BJ8J[43],BJ8K[43],BJ8L[43],BJ8M[43],BJ8N[43],BJ8O[43],BJ8P[43],BJ8Q[43],\n" " BJ8R[43],BJ8S[43],BJ8T[43],BJ8U[43],BJ8V[43],BJ8W[43],BJ8X[43],\n" " BJ9A(24)[43],BJ9B(24)[43],BJ9C(24)[43],BJ9D(24)[43],BJ9E(24)[43],\n" " BJ9F(24)[43],BJ9S(23)[42],BJ9T(23)[42],BJ9U(23)[42],BJ9V(23)[42],\n" " BJ9W(23)[42],BJ9X(23)[42],BL2A[33],BL2B[33],BL2C[33],BL2D[33],BL2E[33],\n" " BL2F[33],BL2G[33],BL2H[33],BL2I[33],BL2J[33],BL2K[33],BL2L[33],BL2M[33],\n" " BL2N[33],BL2O[33],BL2P[33],BL3G(23)[33],BL3H(23)[33],BL3I(23)[33],\n" " BL3J(23)[33],BL3K(23)[33],BL3L(23)[33],BL6Q[43],BL6R[43],BL6S[43],\n" " BL6T[43],BL6U[43],BL6V[43],BL6W[43],BL6X[43],BL7A[43],BL7B[43],BL7C[43],\n" " BL7D[43],BL7E[43],BL7F[43],BL7G[43],BL7H[43],BL7Q[43],BL7R[43],BL7S[43],\n" " BL7T[43],BL7U[43],BL7V[43],BL7W[43],BL7X[43],BL8A[43],BL8B[43],BL8C[43],\n" " BL8D[43],BL8E[43],BL8F[43],BL8G[43],BL8H[43],BL8I[43],BL8J[43],BL8K[43],\n" " BL8L[43],BL8M[43],BL8N[43],BL8O[43],BL8P[43],BL8Q[43],BL8R[43],BL8S[43],\n" " BL8T[43],BL8U[43],BL8V[43],BL8W[43],BL8X[43],BL9A(24)[43],BL9B(24)[43],\n" " BL9C(24)[43],BL9D(24)[43],BL9E(24)[43],BL9F(24)[43],BL9S(23)[42],\n" " BL9T(23)[42],BL9U(23)[42],BL9V(23)[42],BL9W(23)[42],BL9X(23)[42],BT2A[33],\n" " BT2B[33],BT2C[33],BT2D[33],BT2E[33],BT2F[33],BT2G[33],BT2H[33],BT2I[33],\n" " BT2J[33],BT2K[33],BT2L[33],BT2M[33],BT2N[33],BT2O[33],BT2P[33],\n" " BT3G(23)[33],BT3H(23)[33],BT3I(23)[33],BT3J(23)[33],BT3K(23)[33],\n" " BT3L(23)[33],BT6Q[43],BT6R[43],BT6S[43],BT6T[43],BT6U[43],BT6V[43],\n" " BT6W[43],BT6X[43],BT7A[43],BT7B[43],BT7C[43],BT7D[43],BT7E[43],BT7F[43],\n" " BT7G[43],BT7H[43],BT7Q[43],BT7R[43],BT7S[43],BT7T[43],BT7U[43],BT7V[43],\n" " BT7W[43],BT7X[43],BT8A[43],BT8B[43],BT8C[43],BT8D[43],BT8E[43],BT8F[43],\n" " BT8G[43],BT8H[43],BT8I[43],BT8J[43],BT8K[43],BT8L[43],BT8M[43],BT8N[43],\n" " BT8O[43],BT8P[43],BT8Q[43],BT8R[43],BT8S[43],BT8T[43],BT8U[43],BT8V[43],\n" " BT8W[43],BT8X[43],BT9A(24)[43],BT9B(24)[43],BT9C(24)[43],BT9D(24)[43],\n" " BT9E(24)[43],BT9F(24)[43],BT9S(23)[42],BT9T(23)[42],BT9U(23)[42],\n" " BT9V(23)[42],BT9W(23)[42],BT9X(23)[42],BY2A[33],BY2B[33],BY2C[33],\n" " BY2D[33],BY2E[33],BY2F[33],BY2G[33],BY2H[33],BY2I[33],BY2J[33],BY2K[33],\n" " BY2L[33],BY2M[33],BY2N[33],BY2O[33],BY2P[33],BY3G(23)[33],BY3H(23)[33],\n" " BY3I(23)[33],BY3J(23)[33],BY3K(23)[33],BY3L(23)[33],BY6Q[43],BY6R[43],\n" " BY6S[43],BY6T[43],BY6U[43],BY6V[43],BY6W[43],BY6X[43],BY7A[43],BY7B[43],\n" " BY7C[43],BY7D[43],BY7E[43],BY7F[43],BY7G[43],BY7H[43],BY7Q[43],BY7R[43],\n" " BY7S[43],BY7T[43],BY7U[43],BY7V[43],BY7W[43],BY7X[43],BY8A[43],BY8B[43],\n" " BY8C[43],BY8D[43],BY8E[43],BY8F[43],BY8G[43],BY8H[43],BY8I[43],BY8J[43],\n" " BY8K[43],BY8L[43],BY8M[43],BY8N[43],BY8O[43],BY8P[43],BY8Q[43],BY8R[43],\n" " BY8S[43],BY8T[43],BY8U[43],BY8V[43],BY8W[43],BY8X[43],BY9A(24)[43],\n" " BY9B(24)[43],BY9C(24)[43],BY9D(24)[43],BY9E(24)[43],BY9F(24)[43],\n" " BY9S(23)[42],BY9T(23)[42],BY9U(23)[42],BY9V(23)[42],BY9W(23)[42],\n" " BY9X(23)[42],BZ2A[33],BZ2B[33],BZ2C[33],BZ2D[33],BZ2E[33],BZ2F[33],\n" " BZ2G[33],BZ2H[33],BZ2I[33],BZ2J[33],BZ2K[33],BZ2L[33],BZ2M[33],BZ2N[33],\n" " BZ2O[33],BZ2P[33],BZ3G(23)[33],BZ3H(23)[33],BZ3I(23)[33],BZ3J(23)[33],\n" " BZ3K(23)[33],BZ3L(23)[33],BZ6Q[43],BZ6R[43],BZ6S[43],BZ6T[43],BZ6U[43],\n" " BZ6V[43],BZ6W[43],BZ6X[43],BZ7A[43],BZ7B[43],BZ7C[43],BZ7D[43],BZ7E[43],\n" " BZ7F[43],BZ7G[43],BZ7H[43],BZ7Q[43],BZ7R[43],BZ7S[43],BZ7T[43],BZ7U[43],\n" " BZ7V[43],BZ7W[43],BZ7X[43],BZ8A[43],BZ8B[43],BZ8C[43],BZ8D[43],BZ8E[43],\n" " BZ8F[43],BZ8G[43],BZ8H[43],BZ8I[43],BZ8J[43],BZ8K[43],BZ8L[43],BZ8M[43],\n" " BZ8N[43],BZ8O[43],BZ8P[43],BZ8Q[43],BZ8R[43],BZ8S[43],BZ8T[43],BZ8U[43],\n" " BZ8V[43],BZ8W[43],BZ8X[43],BZ9A(24)[43],BZ9B(24)[43],BZ9C(24)[43],\n" " BZ9D(24)[43],BZ9E(24)[43],BZ9F(24)[43],BZ9S(23)[42],BZ9T(23)[42],\n" " BZ9U(23)[42],BZ9V(23)[42],BZ9W(23)[42],BZ9X(23)[42],=BA7JS/9(23)[42],\n" " =BD5HSV/9(23)[43],=BG0GE/9;\n" "Nauru: 31: 65: OC: -0.52: -166.92: -12.0: C2:\n" " C2;\n" "Andorra: 14: 27: EU: 42.58: -1.62: -1.0: C3:\n" " C3;\n" "The Gambia: 35: 46: AF: 13.40: 16.38: 0.0: C5:\n" " C5;\n" "Bahamas: 08: 11: NA: 24.25: 76.00: 5.0: C6:\n" " C6;\n" "Mozambique: 37: 53: AF: -18.25: -35.00: -2.0: C9:\n" " C8,C9;\n" "Chile: 12: 14: SA: -30.00: 71.00: 4.0: CE:\n" " 3G,CA,CB,CC,CD,CE,XQ,XR,3G7[16],3G8[16],CA7[16],CA8[16],CB7[16],CB8[16],\n" " CC7[16],CC8[16],CD7[16],CD8[16],CE7[16],CE8[16],XQ7[16],XQ8[16],XR7[16],\n" " XR8[16];\n" "San Felix & San Ambrosio: 12: 14: SA: -26.28: 80.07: 4.0: CE0X:\n" " 3G0X,CA0X,CB0X,CC0X,CD0X,CE0X,XQ0X,XR0X;\n" "Easter Island: 12: 63: SA: -27.10: 109.37: 6.0: CE0Y:\n" " 3G0,CA0,CB0,CC0,CD0,CE0,XQ0,XR0;\n" "Juan Fernandez Islands: 12: 14: SA: -33.60: 78.85: 4.0: CE0Z:\n" " 3G0Z,CA0Z,CB0Z,CC0Z,CD0Z,CE0Z,XQ0Z,XR0Z;\n" "Antarctica: 13: 74: SA: -90.00: 0.00: 0.0: CE9:\n" " 3Y[73],ANT(29)[69],AX0(39)[69],AY1Z[73],AY2Z[73],AY3Z[73],AY4Z[73],\n" " AY5Z[73],AY6Z[73],AY7Z[73],AY8Z[73],AY9Z[73],FT0Y(30)[70],FT1Y(30)[70],\n" " FT2Y(30)[70],FT4Y(30)[70],FT5Y(30)[70],FT8Y(30)[70],LU1Z[73],LU2Z[73],\n" " LU3Z[73],LU4Z[73],LU5Z[73],LU6Z[73],LU7Z[73],LU8Z[73],LU9Z[73],\n" " R1AN(29)[69],RI1AN(29)[69],VI0(39)[69],VK0(39)[69],ZL5(30)[71],\n" " ZM5(30)[71],ZS7(38)[67],=K9PET/KC4,=8J1RL(39)[67],=DP0GVN(38)[67],\n" " =DP0GVN/P(38)[67],=DP1POL(38)[67],=KC4AAA(39),=KC4AAC[73],=KC4USB(12),\n" " =KC4USV(30)[71],=R1ANR(38)[67],=RI1ANR(38)[67],=VK0BFG(29)[70],\n" " =VP8ADE/B[73],=VP8DLM[73],=VP8DMH[73],=VU3BPZ(38)[67],=VU3BPZ/P(39)[69];\n" "Cuba: 08: 11: NA: 21.50: 80.00: 5.0: CM:\n" " CL,CM,CO,T4;\n" "Morocco: 33: 37: AF: 32.00: 5.00: 0.0: CN:\n" " 5C,5D,5E,5F,5G,CN;\n" "Bolivia: 10: 12: SA: -17.00: 65.00: 4.0: CP:\n" " CP,CP2[14],CP3[14],CP4[14],CP5[14],CP6[14],CP7[14];\n" "Portugal: 14: 37: EU: 39.50: 8.00: 0.0: CT:\n" " CQ,CR,CS,CT;\n" "Madeira Islands: 33: 36: AF: 32.75: 16.95: 0.0: CT3:\n" " CQ2,CQ3,CQ9,CR3,CR9,CS3,CS9,CT3,CT9;\n" "Azores: 14: 36: EU: 38.70: 27.23: 1.0: CU:\n" " CQ1,CQ8,CR1,CR2,CR8,CS4,CS8,CT8,CU;\n" "Uruguay: 13: 14: SA: -33.00: 56.00: 3.0: CX:\n" " CV,CW,CX;\n" "Sable Island: 05: 09: NA: 43.93: 59.90: 4.0: CY0:\n" " CY0;\n" "St. Paul Island: 05: 09: NA: 47.00: 60.00: 4.0: CY9:\n" " CY9;\n" "Angola: 36: 52: AF: -12.50: -18.50: -1.0: D2:\n" " D2,D3;\n" "Cape Verde: 35: 46: AF: 16.00: 24.00: 1.0: D4:\n" " D4;\n" "Comoros: 39: 53: AF: -11.63: -43.30: -3.0: D6:\n" " D6;\n" "Fed. Rep. of Germany: 14: 28: EU: 51.00: -10.00: -1.0: DL:\n" " DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR;\n" "Philippines: 27: 50: OC: 13.00: -122.00: -8.0: DU:\n" " 4D,4E,4F,4G,4H,4I,DU,DV,DW,DX,DY,DZ;\n" "Eritrea: 37: 48: AF: 15.00: -39.00: -3.0: E3:\n" " E3;\n" "Palestine: 20: 39: AS: 31.28: -34.27: -2.0: E4:\n" " E4;\n" "North Cook Islands: 32: 62: OC: -10.02: 161.08: 10.0: E5/n:\n" " =E51AND,=E51WL[63];\n" "South Cook Islands: 32: 63: OC: -21.90: 157.93: 10.0: E5/s:\n" " E5;\n" "Niue: 32: 62: OC: -19.03: 169.85: 11.0: E6:\n" " E6;\n" "Bosnia-Herzegovina: 15: 28: EU: 44.32: -17.57: -1.0: E7:\n" " E7;\n" "Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA:\n" " AM,AN,AO,EA,EB,EC,ED,EE,EF,EG,EH,=EA8CZT/1,=EA9JS/7;\n" "Balearic Islands: 14: 37: EU: 39.60: -2.95: -1.0: EA6:\n" " AM6,AN6,AO6,EA6,EB6,EC6,ED6,EE6,EF6,EG6,EH6,=EA7DUT/6;\n" "Canary Islands: 33: 36: AF: 28.10: 15.40: 0.0: EA8:\n" " AM8,AN8,AO8,EA8,EB8,EC8,ED8,EE8,EF8,EG8,EH8;\n" "Ceuta & Melilla: 33: 37: AF: 35.90: 5.27: -1.0: EA9:\n" " AM9,AN9,AO9,EA9,EB9,EC9,ED9,EE9,EF9,EG9,EH9;\n" "Ireland: 14: 27: EU: 53.13: 8.02: 0.0: EI:\n" " EI,EJ;\n" "Armenia: 21: 29: AS: 40.40: -44.90: -4.0: EK:\n" " EK;\n" "Liberia: 35: 46: AF: 6.50: 9.50: 0.0: EL:\n" " 5L,5M,6Z,A8,D5,EL;\n" "Iran: 21: 40: AS: 32.00: -53.00: -3.5: EP:\n" " 9B,9C,9D,EP,EQ;\n" "Moldova: 16: 29: EU: 47.00: -29.00: -2.0: ER:\n" " ER;\n" "Estonia: 15: 29: EU: 59.00: -25.00: -2.0: ES:\n" " ES;\n" "Ethiopia: 37: 48: AF: 9.00: -39.00: -3.0: ET:\n" " 9E,9F,ET;\n" "Belarus: 16: 29: EU: 54.00: -28.00: -2.0: EU:\n" " EU,EV,EW;\n" "Kyrgyzstan: 17: 30: AS: 41.70: -74.13: -6.0: EX:\n" " EX,EX2P[31],EX2Q[31],EX6P[31],EX6Q[31],EX7P[31],EX7Q[31],EX8P[31],\n" " EX8Q[31];\n" "Tajikistan: 17: 30: AS: 38.82: -71.22: -5.0: EY:\n" " EY;\n" "Turkmenistan: 17: 30: AS: 38.00: -58.00: -5.0: EZ:\n" " EZ;\n" "France: 14: 27: EU: 46.00: -2.00: -1.0: F:\n" " F,HW,HX,HY,TH,TM,TP,TQ,TV;\n" "Guadeloupe: 08: 11: NA: 16.13: 61.67: 4.0: FG:\n" " FG;\n" "Mayotte: 39: 53: AF: -12.88: -45.15: -3.0: FH:\n" " FH;\n" "St. Barthelemy: 08: 11: NA: 17.90: 62.83: 4.0: FJ:\n" " FJ;\n" "New Caledonia: 32: 56: OC: -21.50: -165.50: -11.0: FK:\n" " FK;\n" "Chesterfield Islands: 30: 56: OC: -19.87: -158.32: -11.0: FK/c:\n" " =FK8IK/C;\n" "Martinique: 08: 11: NA: 14.70: 61.03: 4.0: FM:\n" " FM,=TO5A,=TO5K,=TO5T,=TO7A;\n" "French Polynesia: 32: 63: OC: -17.65: 149.40: 10.0: FO:\n" " FO;\n" "Austral Islands: 32: 63: OC: -23.37: 149.48: 10.0: FO/a:\n" " =TX0HF;\n" "Clipperton Island: 07: 10: NA: 10.28: 109.22: 8.0: FO/c:\n" " =TX5C;\n" "Marquesas Islands: 31: 63: OC: -8.92: 140.07: 9.5: FO/m:\n" " =TX5VT;\n" "St. Pierre & Miquelon: 05: 09: NA: 46.77: 56.20: 3.0: FP:\n" " FP;\n" "Reunion Island: 39: 53: AF: -21.12: -55.48: -4.0: FR:\n" " FR;\n" "Glorioso Islands: 39: 53: AF: -11.55: -47.28: -4.0: FR/g:\n" " FT5G;\n" "Juan de Nova, Europa: 39: 53: AF: -17.05: -42.72: -3.0: FR/j:\n" " FT5E,FT5J;\n" "Tromelin Island: 39: 53: AF: -15.88: -54.50: -4.0: FR/t:\n" " FT5T;\n" "St. Martin: 08: 11: NA: 18.08: 63.03: 4.0: FS:\n" " FS;\n" "Crozet Island: 39: 68: AF: -46.42: -51.75: -5.0: FT5W:\n" " FT0W,FT1W,FT2W,FT4W,FT5W,FT8W;\n" "Kerguelen Islands: 39: 68: AF: -49.00: -69.27: -5.0: FT5X:\n" " FT0X,FT1X,FT2X,FT4X,FT5X,FT8X;\n" "Amsterdam & St. Paul Is.: 39: 68: AF: -37.85: -77.53: -5.0: FT5Z:\n" " FT0Z,FT1Z,FT2Z,FT4Z,FT5Z,FT8Z;\n" "Wallis & Futuna Islands: 32: 62: OC: -13.30: 176.20: -12.0: FW:\n" " FW,TW;\n" "French Guiana: 09: 12: SA: 4.00: 53.00: 3.0: FY:\n" " FY;\n" "England: 14: 27: EU: 52.77: 1.47: 0.0: G:\n" " 2,G,M,ZH,ZI,ZJ,=2O0YYY/P;\n" "Isle of Man: 14: 27: EU: 54.20: 4.53: 0.0: GD:\n" " 2D,2T,GD,GT,MD,MT,=2O0YLX,=GB2WB,=GO0OUD,=MO1CLV;\n" "Northern Ireland: 14: 27: EU: 54.73: 6.68: 0.0: GI:\n" " 2I,2N,GI,GN,MI,MN,=2O0BAD,=2O0HBO,=2O0HRV,=2O0MFB,=2O0TWA,=2O0VEP,=2O0VGW,\n" " =2O0VIM,=2O0WAI,=2O0ZXM,=GB0CHW,=GB0REL,=GB150WCB,=GB1SPD,=GB2AD,=GB2LOL,\n" " =GB2PP,=GB2UAS,=GB4SPD,=GB5SPD,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF,\n" " =GO3SG,=GO4DOH,=GO4GID,=GO4GUH,=GO4LKG,=GO4NKB,=GO4ONL,=GO4OYM,=GO4SRQ,\n" " =GO4SZW,=GO6MTL,=GO7AXB,=GO7KMC,=GO8YYM,=MO0ALS,=MO0BDZ,=MO0CBH,=MO0IOU,\n" " =MO0IRZ,=MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE,=MO0LPO,=MO0MOD,\n" " =MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE,=MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0WDB,\n" " =MO0ZXZ,=MO3RLA,=MO6AOX,=MO6NIR,=MO6WAG,=MO6WDB,=MO6YDR;\n" "Jersey: 14: 27: EU: 49.22: 2.18: 0.0: GJ:\n" " 2H,2J,GH,GJ,MH,MJ,=GO8PVL,=MO0ASP;\n" "Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM:\n" " 2A,2M,2S,GA,GM,GS,MA,MM,MS,=2O0BSE,=2O0BZB,=2O0HJS,=2O0IMP,=2O0IOB,\n" " =2O0IVG,=2O0LIM,=2O0LJM,=2O0TOK,=2O1MIC,=2O1SJB,=GB0FFS,=GB0NHL,=GB1MAY,\n" " =GB1OL,=GB2AL,=GB2BHM,=GB2CHC,=GB2EPC,=GB2GNL,=GB2LBN,=GB2LK,=GB2LT,\n" " =GB2MOF,=GB2MSL,=GB2NCL,=GB2OWM,=GB2PG,=GB2VCB,=GB2YLS,=GB5AG,=GB5FHC,\n" " =GB80GD,=GM4WSB/P,=GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DEQ,=GO0GMN,=GO0OGN,\n" " =GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ,=GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP,\n" " =GO3HVK,=GO3JIJ,=GO3NIG,=GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS,=GO4CHX,=GO4CXM,\n" " =GO4DLG,=GO4EMX,=GO4FAM,=GO4FAU,=GO4JOJ,=GO4JPZ,=GO4JR,=GO4LYJ,=GO4MOX,\n" " =GO4MSL,=GO4PRB,=GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP,=GO6JRX,=GO6KON,\n" " =GO6LYJ,=GO7GAX,=GO7GDE,=GO7HUD,=GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB,\n" " =GO8TTD,=MO0BFF,=MO0CWJ,=MO0CYR,=MO0DBC,=MO0DNX,=MO0EPC,=MO0FMF,=MO0GXQ,\n" " =MO0HZT,=MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB,=MO0TSG,=MO0WKC,\n" " =MO0XXW,=MO0ZBH,=MO1AWV,=MO1HMV,=MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP,\n" " =MO3UVL,=MO3YHA,=MO3YMU,=MO3ZRF,=MO6BJJ,=MO6CCS,=MO6CHM,=MO6CRQ,=MO6DGZ,\n" " =MO6HUT,=MO6KAU,=MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW;\n" "Shetland and Fair Isle: 14: 27: EU: 60.50: 1.50: 0.0: *GM/s:\n" " 2Z,GZ,MZ,=2M0ZET,=2M1ANT,=2M1ASQ,=2M1ODL,=G0FBJ,=GB0BL,=GB0HFC,=GB0OS,\n" " =GB2ELH,=GB2ZET,=GB4SI,=GM0CXQ,=GM0CYJ,=GM0DJI,=GM0EKM,=GM0ILB,=GM0JDB,\n" " =GM0MZD,=GM0OMV,=GM0VFA,=GM1BYL,=GM1CBQ,=GM1KKI,=GM1MXN,=GM1ZNR,=GM3KLA,\n" " =GM3RFR,=GM3SJA,=GM3STU,=GM3UPU,=GM3WCH,=GM3WHT,=GM3XPQ,=GM3ZET,=GM3ZNM,\n" " =GM3ZXH,=GM4AGX,=GM4CAQ,=GM4DQD,=GM4ENK,=GM4FNA,=GM4FNE,=GM4GPN,=GM4GPP,\n" " =GM4GQD,=GM4GQM,=GM4IPK,=GM4JPI,=GM4KJQ,=GM4LBE,=GM4LER,=GM4PXG,=GM4SLV,\n" " =GM4SRU,=GM4SSA,=GM4SWU,=GM4WXQ,=GM4YEL,=GM4ZHL,=GM6RTO,=GM6VZB,=GM6WVI,\n" " =GM6YQA,=GM7AFE,=GM7GWW,=GM7RKD,=GM8LNH,=GM8MMA,=GM8YEC,=GS0GRC,=GS3ZET,\n" " =MA1FJM,=MM0LSM,=MM0XAU,=MM0ZAL,=MM0ZCG,=MM1FJM,=MM3ZET,=MM5PSL,=MM6ACW,\n" " =MM6SJK,=MO5PSL,=MS0ZCG,=MS0ZET;\n" "Guernsey: 14: 27: EU: 49.45: 2.58: 0.0: GU:\n" " 2P,2U,GP,GU,MP,MU,=2O0FER,=GO8FBO,=MO0FAL,=MO0KWD;\n" "Wales: 14: 27: EU: 52.28: 3.73: 0.0: GW:\n" " 2C,2W,2X,2Y,GC,GW,MC,MW,=2O0CDY,=2O0CGM,=2O0CJI,=2O0CVE,=2O0DAA,=2O0DUL,\n" " =2O0DVP,=2O0IDT,=2O0JBJ,=2O0OJA,=2O0RMR,=2O0RWF,=2O0TRR,=2O0UAA,=2O0WDS,\n" " =2O0ZJA,=2O12W,=GB0AD,=GB0AWS,=GB0HEL,=GB0PLB,=GB0RS,=GB1CDS,=GB2LSA,\n" " =GB2MOP,=GB2TD,=GB4BPL,=GB4EUL,=GB4MD,=GB4MDI,=GB4PAT,=GB4SDD,=GB5GEO,\n" " =GB6BLB,=GB6TS,=GB8CCC,=GB8MD,=GO0DIV,=GO0EZQ,=GO0EZY,=GO0JEQ,=GO0MNP,\n" " =GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI,=GO0PUP,=GO0SGR,=GO0VKW,=GO0VML,=GO0VSW,\n" " =GO0XJQ,=GO1DPL,=GO1IOT,=GO1JFV,=GO1MVL,=GO1PKM,=GO3UOF,=GO4BKG,=GO4BLE,\n" " =GO4CQZ,=GO4DTQ,=GO4GTI,=GO4JKR,=GO4JUN,=GO4JUW,=GO4MVA,=GO4NOO,=GO4OKR,\n" " =GO4OKT,=GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS,=GO6NKG,=GO6UKO,=GO7DWR,\n" " =GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK,=GO8IQC,=GO8JOY,=GO8OKR,=MO0AQZ,=MO0ATI,\n" " =MO0COE,=MO0CVT,=MO0EQL,=MO0EZQ,=MO0GXE,=MO0HCX,=MO0IBZ,=MO0IML,=MO0KLW,\n" " =MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ,=MO0MAU,=MO0MUM,=MO0MWZ,=MO0OWW,=MO0SGD,\n" " =MO0SGR,=MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA,=MO1CFN,=MO3DAO,\n" " =MO3DQB,=MO3GKI,=MO3OJA,=MO3PUU,=MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO,\n" " =MO6DVP,=MO6GWK,=MO6GWR,=MO6GWR/P,=MO6MAU,=MO6PAM,=MO6PLC,=MO6PUT,=MO6SEF,\n" " =MO6TBD,=MO6TBP,=MO6WLB;\n" "Solomon Islands: 28: 51: OC: -9.00: -160.00: -11.0: H4:\n" " H4;\n" "Temotu Province: 32: 51: OC: -10.72: -165.80: -11.0: H40:\n" " H40;\n" "Hungary: 15: 28: EU: 47.12: -19.28: -1.0: HA:\n" " HA,HG;\n" "Switzerland: 14: 28: EU: 46.87: -8.12: -1.0: HB:\n" " HB,HE;\n" "Liechtenstein: 14: 28: EU: 47.13: -9.57: -1.0: HB0:\n" " HB0,HE0;\n" "Ecuador: 10: 12: SA: -1.40: 78.40: 6.0: HC:\n" " HC,HD;\n" "Galapagos Islands: 10: 12: SA: -0.78: 91.03: 6.0: HC8:\n" " HC8,HD8;\n" "Haiti: 08: 11: NA: 19.02: 72.18: 5.0: HH:\n" " 4V,HH;\n" "Dominican Republic: 08: 11: NA: 19.13: 70.68: 4.0: HI:\n" " HI;\n" "Colombia: 09: 12: SA: 5.00: 74.00: 5.0: HK:\n" " 5J,5K,HJ,HK;\n" "San Andres & Providencia: 07: 11: NA: 12.55: 81.72: 5.0: HK0/a:\n" " 5J0,5K0,HJ0,HK0;\n" "Malpelo Island: 09: 12: SA: 3.98: 81.58: 5.0: HK0/m:\n" " 5J0M,5K0M,HJ0M,HK0M,=HK0TU;\n" "Republic of Korea: 25: 44: AS: 36.23: -127.90: -9.0: HL:\n" " 6K,6L,6M,6N,D7,D8,D9,DS,DT,HL,KL9K;\n" "Panama: 07: 11: NA: 9.00: 80.00: 5.0: HP:\n" " 3E,3F,H3,H8,H9,HO,HP;\n" "Honduras: 07: 11: NA: 15.00: 87.00: 6.0: HR:\n" " HQ,HR;\n" "Thailand: 26: 49: AS: 12.60: -99.70: -7.0: HS:\n" " E2,HS;\n" "Vatican City: 15: 28: EU: 41.90: -12.47: -1.0: HV:\n" " HV;\n" "Saudi Arabia: 21: 39: AS: 24.20: -43.83: -3.0: HZ:\n" " 7Z,8Z,HZ,=HZ1SBS/J;\n" "Italy: 15: 28: EU: 42.82: -12.58: -1.0: I:\n" " I,=IZ1CLA/N,=4U1GSC,=I1YRL/GRA;\n" "African Italy: 33: 37: AF: 35.67: -12.67: -1.0: *IG9:\n" " IG9,IH9;\n" "Sardinia: 15: 28: EU: 40.15: -9.27: -1.0: IS:\n" " IM0,IS,IW0U,IW0V,IW0W,IW0X,IW0Y,IW0Z,=II0SB,=IQ0AH,=IQ0ID,=IQ0SS,=IY0GA;\n" "Sicily: 15: 28: EU: 37.50: -14.00: -1.0: *IT9:\n" " IB9,ID9,IE9,IF9,II9,IJ9,IO9,IQ9,IR9,IT9,IU9,IW9,IZ9;\n" "Djibouti: 37: 48: AF: 11.75: -42.35: -3.0: J2:\n" " J2;\n" "Grenada: 08: 11: NA: 12.13: 61.68: 4.0: J3:\n" " J3;\n" "Guinea-Bissau: 35: 46: AF: 12.02: 14.80: 0.0: J5:\n" " J5;\n" "St. Lucia: 08: 11: NA: 13.87: 61.00: 4.0: J6:\n" " J6;\n" "Dominica: 08: 11: NA: 15.43: 61.35: 4.0: J7:\n" " J7;\n" "St. Vincent: 08: 11: NA: 13.23: 61.20: 4.0: J8:\n" " J8;\n" "Japan: 25: 45: AS: 36.40: -138.38: -9.0: JA:\n" " 7J,7K,7L,7M,7N,8J,8K,8L,8M,8N,JA,JE,JF,JG,JH,JI,JJ,JK,JL,JM,JN,JO,JP,JQ,\n" " JR,JS;\n" "Minami Torishima: 27: 90: OC: 24.28: -153.97: -10.0: JD/m:\n" " =JD1/JF3CTR,=JD1/JG8NQJ,=JD1BMM,=JF3CTR/JD1,=JG8NQJ/JD1;\n" "Ogasawara: 27: 45: AS: 27.05: -142.20: -9.0: JD/o:\n" " JD1;\n" "Mongolia: 23: 32: AS: 46.77: -102.17: -7.0: JT:\n" " JT,JU,JV,JT2[33],JT3[33],JU2[33],JU3[33],JV2[33],JV3[33];\n" "Svalbard: 40: 18: EU: 78.00: -16.00: -1.0: JW:\n" " JW;\n" "Bear Island: 40: 18: EU: 74.43: -19.08: -1.0: *JW/b:\n" " =JW2US;\n" "Jan Mayen: 40: 18: EU: 71.05: 8.28: 1.0: JX:\n" " JX;\n" "Jordan: 20: 39: AS: 31.18: -36.42: -2.0: JY:\n" " JY;\n" "United States: 05: 08: NA: 37.53: 91.67: 5.0: K:\n" " AA,AB,AC,AD,AE,AF,AG,AI,AJ,AK,K,N,W,=4U1WB(5)[8],=AA4DD(4)[8],\n" " =AA4YL(4)[8],=AB4GG(4)[8],=AB4IQ(4)[8],=AB9DU(5)[8],=AC4CA(4)[7],\n" " =AD1C(4)[7],=AD4EB(4)[8],=AD7MQ(4)[6],=AD8J(5)[8],=AE7AP(4)[6],\n" " =AE9F(3)[6],=AG3R(4)[8],=AG3V(4)[7],=AG4W(4)[8],=AJ4A(4)[8],=AJ4F(4)[7],\n" " =GO4AZM(5)[8],=K0COP(5)[8],=K0DQ(5)[8],=K0IP(3)[6],=K0JJ(3)[6],\n" " =K0LUZ(5)[8],=K0NW(3)[6],=K0TQ(4)[8],=K0TV(5)[8],=K0ZR(5)[8],=K1DW(4)[7],\n" " =K1GU(4)[8],=K1KD(4)[7],=K1LT(4)[8],=K1TN(4)[8],=K2HT(4)[7],=K2PO(3)[6],\n" " =K2RD(3)[6],=K2RP(3)[6],=K2UR(4)[8],=K3FIV(3)[6],=K3GP(4)[8],=K3IE(4)[8],\n" " =K3JWI(4)[8],=K3TD(4)[7],=K3USC(4)[8],=K3WA(4)[8],=K3WT(4)[7],=K3YP(4)[8],\n" " =K4AB(4)[8],=K4AMC(4)[8],=K4BP(4)[8],=K4BX(4)[8],=K4CWA(4)[8],\n" " =K4CWW(4)[8],=K4CX(4)[8],=K4DZR(4)[8],=K4EDI(4)[8],=K4EJQ(4)[8],\n" " =K4FT(4)[8],=K4FXN(4)[8],=K4HAL(4)[8],=K4IE(4)[8],=K4IQJ(4)[8],\n" " =K4IU(4)[7],=K4LTA(4)[8],=K4MCK(4)[8],=K4MGE(4)[8],=K4NO(4)[8],\n" " =K4PJ(4)[8],=K4RO(4)[8],=K4SPO(4)[8],=K4TD(4)[8],=K4WI(4)[8],=K4WW(4)[8],\n" " =K4XG(4)[8],=K4XU(3)[6],=K4ZGB(4)[8],=K5AUP(5)[8],=K5EK(5)[8],=K5KG(5)[8],\n" " =K5OA(3)[6],=K5RQ(5)[8],=K5RR(3)[6],=K5VIP(5)[8],=K5ZD(5)[8],=K6ND(5)[8],\n" " =K6NDV(5)[8],=K6PJ(4)[6],=K6RM(5)[8],=K6SXA(4)[7],=K6XT(4)[7],\n" " =K7ABV(4)[6],=K7BG(4)[6],=K7CS(5)[8],=K7IA(4)[7],=K7KAR(4)[6],=K7KU(4)[7],\n" " =K7OM(5)[8],=K7RB(4)[7],=K7RE(4)[7],=K7RSM(4)[7],=K7SCX(4)[7],=K7SV(5)[8],\n" " =K7TD(4)[7],=K7VU(4)[7],=K8AC(5)[8],=K8CN(5)[8],=K8GU(5)[8],=K8IA(3)[6],\n" " =K8JQ(5)[8],=K8LF(5)[8],=K8MN(5)[8],=K8NYG(5)[8],=K8PO(5)[8],=K8TE(4)[7],\n" " =K8WT(5)[8],=K8YC(5)[8],=K9AIH(5)[8],=K9BWI(4)[7],=K9CHP(5)[8],\n" " =K9DR(4)[7],=K9DU(4)[7],=K9FY(5)[8],=K9JF(3)[6],=K9JM(3)[6],=K9JWV(3)[6],\n" " =K9MBB(4)[7],=K9MWM(4)[7],=K9OM(5)[8],=K9RS(5)[8],=K9WZB(3)[6],\n" " =K9YC(3)[6],=KA3DRR(3)[6],=KA4OTB(4)[8],=KA4PKB(4)[8],=KA4R(4)[8],\n" " =KA8HDE(4)[7],=KA8Q(5)[8],=KB7FSC(4)[6],=KB7Q(4)[6],=KB7QOS(4)[7],\n" " =KB8V(5)[8],=KC4HW(4)[8],=KC4SAW(4)[8],=KC4WQ(4)[8],=KC6X(4)[7],\n" " =KC8GCR(5)[8],=KD4POJ(4)[7],=KD4SN(4)[8],=KD7DCR(4)[6],=KE1B(3)[6],\n" " =KE2VB(3)[6],=KE3D(4)[7],=KE4ETY(4)[8],=KE4KY(4)[8],=KE7X(4)[6],\n" " =KF6A(4)[8],=KG0F(3)[6],=KG4CUY(4)[8],=KG9JP(3)[6],=KH0WJ(5)[8],\n" " =KH2D(5)[8],=KH6GN(4)[8],=KH6OU(5)[8],=KI4EEY(4)[8],=KI4EZC(4)[8],\n" " =KI4SP(4)[8],=KI6DY(4)[7],=KI7MT(4)[6],=KJ4AOM(4)[8],=KJ4FDV(4)[8],\n" " =KK6MC(4)[7],=KK9A(5)[8],=KK9O(5)[8],=KL5Z(4)[7],=KL7FDQ(3)[6],\n" " =KL7QW(4)[7],=KL7WP(3)[6],=KL7WV(5)[8],=KM4DR(4)[7],=KM4JA(4)[8],\n" " =KM7W(4)[6],=KO4OL(4)[8],=KO4PU(4)[8],=KO4XJ(4)[8],=KO7X(4)[7],\n" " =KR2E(3)[6],=KR4F(4)[8],=KR7C(4)[7],=KS4L(4)[8],=KS4X(4)[8],=KS5A(3)[6],\n" " =KS7T(4)[6],=KT0P(5)[8],=KU1CW(4)[7],=KU1YL(4)[7],=KU4A(4)[8],=KU8E(5)[8],\n" " =KV1E(4)[7],=KX2P(4)[7],=KX9X(5)[8],=KY0W(3)[6],=KY4F(4)[8],=KZ2V(3)[6],\n" " =N0FW(4)[8],=N0RZT(4)[8],=N1CC(4)[7],=N1JM(3)[6],=N1WQ(4)[7],=N2BJ(4)[8],\n" " =N2IC(4)[7],=N2NS(3)[6],=N2OPW(4)[8],=N2WN(4)[8],=N3FAW(3)[6],=N3RC(4)[6],\n" " =N3ZZ(3)[6],=N4AAI(4)[8],=N4ARO(4)[8],=N4AU(4)[8],=N4BCB(4)[8],\n" " =N4DTF(4)[8],=N4DW(4)[8],=N4IJ(4)[7],=N4IR(4)[8],=N4JF(4)[8],=N4KG(4)[8],\n" " =N4KH(4)[8],=N4NM(4)[8],=N4NO(4)[8],=N4OGW(4)[8],=N4QS(4)[8],=N4TZ(4)[8],\n" " =N4UC(4)[8],=N4UPX(4)[7],=N4UW(4)[8],=N4VN(4)[8],=N4VV(4)[8],=N4ZI(4)[8],\n" " =N4ZZ(4)[8],=N5IE(5)[8],=N5KO(3)[6],=N5LZ(3)[6],=N6AR(5)[8],=N6FS(4)[8],\n" " =N7DR(4)[7],=N7EO(5)[8],=N7FLT(4)[6],=N7GVV(4)[8],=N7IP(4)[6],=N7IV(4)[7],\n" " =N7IX(4)[7],=N7KA(4)[7],=N7MZW(4)[7],=N7US(4)[8],=N8CL(5)[8],=N8HM(5)[8],\n" " =N8II(5)[8],=N8MPX(5)[8],=N8NA(5)[8],=N8PR(5)[8],=N8RA(5)[8],=N8WXQ(5)[8],\n" " =N9ADG(3)[6],=N9CM(5)[8],=N9DFD(5)[8],=N9HDE(4)[7],=N9MM(4)[7],\n" " =N9NC(5)[8],=N9UY(5)[8],=NA2U(3)[6],=NA4C(4)[8],=NA4K(4)[8],=NB4M(4)[8],\n" " =ND2T(3)[6],=ND4X(4)[8],=NE4M(4)[8],=NE8J(5)[8],=NG7A(5)[8],=NH6Z(3)[6],\n" " =NH7RO(4)[7],=NJ4I(4)[8],=NJ8J(5)[8],=NL7CQ(4)[7],=NN3V(3)[6],\n" " =NN4MM(4)[8],=NN7A(4)[7],=NO2D(4)[7],=NO9E(5)[8],=NP3D(5)[8],=NR7DX(4)[6],\n" " =NS2X(4)[8],=NS4X(4)[8],=NU4B(4)[8],=NV4B(4)[8],=NW8U(5)[8],=NX1P(3)[6],\n" " =NX9T(5)[8],=NY4JB(4)[8],=NY6DX(5)[8],=W0BR(5)[8],=W0IZ(4)[8],\n" " =W0JLC(5)[8],=W0PAN(3)[6],=W0PV(5)[8],=W0QQG(5)[8],=W0UCE(5)[8],\n" " =W0YK(3)[6],=W0YR(5)[8],=W1NN(4)[8],=W1RH(3)[6],=W1SRD(3)[6],=W1ZD(3)[6],\n" " =W2AJW(3)[6],=W2OO(4)[8],=W2UP(4)[7],=W2VJN(3)[6],=W2VKT(3)[6],\n" " =W3HDH(4)[8],=W3TUA(4)[7],=W4BCG(4)[8],=W4BCU(4)[8],=W4BK(4)[8],\n" " =W4CBX(4)[8],=W4DAN(4)[8],=W4DVG(4)[8],=W4EF(3)[6],=W4GHD(4)[8],\n" " =W4GKM(4)[8],=W4HOD(4)[8],=W4HZD(4)[8],=W4JHC(4)[7],=W4JSI(4)[8],\n" " =W4KW(4)[8],=W4LC(4)[8],=W4NBS(4)[8],=W4NI(4)[8],=W4NJK(3)[6],=W4NZ(4)[8],\n" " =W4PHS(4)[8],=W4PV(4)[8],=W4RK(4)[7],=W4RYW(4)[8],=W4UAL(4)[8],\n" " =W4UAT(3)[6],=W4UT(4)[8],=W5DQ(3)[6],=W5JBO(3)[6],=W5JR(5)[8],=W5MX(4)[8],\n" " =W5NZ(4)[8],=W5XB(5)[8],=W6AAN(5)[8],=W6DVS(5)[8],=W6GMT(4)[7],\n" " =W6IHG(5)[8],=W6KGP(4)[7],=W6LFB(4)[7],=W6NWS(5)[8],=W6SAI(4)[8],\n" " =W6UB(4)[8],=W6XR(5)[8],=W7DO(5)[8],=W7HJ(5)[8],=W7IY(5)[8],=W7RTX(4)[7],\n" " =W7WZ(5)[8],=W8AEF(3)[6],=W8AKS(5)[8],=W8BFX(3)[6],=W8FJ(5)[8],\n" " =W8FN(4)[7],=W8HGH(5)[8],=W8JI(5)[8],=W8OHT(5)[8],=W8WEJ(5)[8],\n" " =W8ZA(5)[8],=W9CF(3)[6],=W9DKC(5)[8],=W9GE(5)[8],=W9KB(5)[8],=W9LHG(4)[7],\n" " =W9NGA(3)[6],=W9UK(5)[8],=W9XQ(4)[7],=WA0WWW(3)[6],=WA1FCN(4)[8],\n" " =WA1PMA(3)[6],=WA1UJU(4)[8],=WA3C(4)[8],=WA4SM(4)[8],=WA5VGI(3)[6],\n" " =WA8KAN(5)[8],=WA8OJR(5)[8],=WA8QYJ(5)[8],=WA8ZBT(4)[7],=WB0POH(5)[8],\n" " =WB3JFS(3)[6],=WB4KDI(4)[8],=WB4YDL(4)[8],=WB4YDY(4)[8],=WB8BPU(5)[8],\n" " =WB8YQJ(3)[6],=WB8YYY(5)[8],=WB9KPT(4)[7],=WC7S(4)[7],=WE6EZ(4)[7],\n" " =WF4U(3)[6],=WF7T(4)[8],=WG7Y(4)[7],=WJ9B(3)[6],=WK5X(5)[8],=WL7OU(4)[7],\n" " =WO4O(4)[8],=WR5G(3)[6],=WS4Y(4)[7],=WS6K(4)[8],=WS9M(5)[8],=WT5L(5)[8],\n" " =WU9B(3)[6],=WW4R(4)[8],=WY7SS(4)[7],=WZ4F(4)[8];\n" "Guantanamo Bay: 08: 11: NA: 20.00: 75.00: 5.0: KG4:\n" " KG4;\n" "Mariana Islands: 27: 64: OC: 15.18: -145.72: -10.0: KH0:\n" " AH0,KH0,NH0,WH0,=K0Y,=N2G;\n" "Baker & Howland Islands: 31: 61: OC: 0.00: 176.00: 12.0: KH1:\n" " AH1,KH1,NH1,WH1;\n" "Guam: 27: 64: OC: 13.37: -144.70: -10.0: KH2:\n" " AH2,KH2,NH2,WH2,=KG6DX;\n" "Johnston Island: 31: 61: OC: 16.72: 169.53: 10.0: KH3:\n" " AH3,KH3,NH3,WH3,=KJ6BZ;\n" "Midway Island: 31: 61: OC: 28.20: 177.37: 11.0: KH4:\n" " AH4,KH4,NH4,WH4;\n" "Palmyra & Jarvis Islands: 31: 61: OC: 5.87: 162.07: 11.0: KH5:\n" " AH5,KH5,NH5,WH5;\n" "Kingman Reef: 31: 61: OC: 6.40: 162.40: 11.0: KH5K:\n" " AH5K,KH5K,NH5K,WH5K;\n" "Hawaii: 31: 61: OC: 19.67: 155.57: 10.0: KH6:\n" " AH6,AH7,KH6,KH7,NH6,NH7,WH6,WH7,=K4XV,=KB6EGA,=N1C,=WB4JTT;\n" "Kure Island: 31: 61: OC: 29.00: 178.00: 10.0: KH7K:\n" " AH7K,KH7K,NH7K,WH7K;\n" "American Samoa: 32: 62: OC: -14.32: 170.78: 11.0: KH8:\n" " AH8,KH8,NH8,WH8;\n" "Swains Island: 32: 62: OC: -11.05: 171.25: 11.0: KH8/s:\n" " =NH8S;\n" "Wake Island: 31: 65: OC: 19.28: -166.63: -12.0: KH9:\n" " AH9,KH9,NH9,WH9;\n" "Alaska: 01: 01: NA: 63.87: 153.78: 8.0: KL:\n" " AL,KL,NL,WL,=K7P,=N7ZYS;\n" "Navassa Island: 08: 11: NA: 18.40: 75.00: 5.0: KP1:\n" " KP1,NP1,WP1;\n" "US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2:\n" " KP2,NP2,WP2,=KV4BT,=KV4BW,=KV4CF,=KV4FZ,=N2A;\n" "Puerto Rico: 08: 11: NA: 18.18: 66.55: 4.0: KP4:\n" " KP3,KP4,NP3,NP4,WP3,WP4,=KB2OPM,=KC2TE,=KH2RU,=KP2Z,=KP4ES/L,=N2PGO,=W4L,\n" " =W4W;\n" "Desecheo Island: 08: 11: NA: 18.08: 67.88: 4.0: KP5:\n" " KP5,NP5,WP5;\n" "Norway: 14: 18: EU: 61.00: -9.00: -1.0: LA:\n" " LA,LB,LC,LD,LE,LF,LG,LH,LI,LJ,LK,LL,LM,LN;\n" "Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU:\n" " AY,AZ,L1,L2,L3,L4,L5,L6,L7,L8,L9,LO,LP,LQ,LR,LS,LT,LU,LV,LW,AY0V[16],\n" " AY0W[16],AY0X[16],AY0Y[16],AY1V[16],AY1W[16],AY1X[16],AY1Y[16],AY2V[16],\n" " AY2W[16],AY2X[16],AY2Y[16],AY3V[16],AY3W[16],AY3X[16],AY3Y[16],AY4V[16],\n" " AY4W[16],AY4X[16],AY4Y[16],AY5V[16],AY5W[16],AY5X[16],AY5Y[16],AY6V[16],\n" " AY6W[16],AY6X[16],AY6Y[16],AY7V[16],AY7W[16],AY7X[16],AY7Y[16],AY8V[16],\n" " AY8W[16],AY8X[16],AY8Y[16],AY9V[16],AY9W[16],AY9X[16],AY9Y[16],AZ0V[16],\n" " AZ0W[16],AZ0X[16],AZ0Y[16],AZ1V[16],AZ1W[16],AZ1X[16],AZ1Y[16],AZ2V[16],\n" " AZ2W[16],AZ2X[16],AZ2Y[16],AZ3V[16],AZ3W[16],AZ3X[16],AZ3Y[16],AZ4V[16],\n" " AZ4W[16],AZ4X[16],AZ4Y[16],AZ5V[16],AZ5W[16],AZ5X[16],AZ5Y[16],AZ6V[16],\n" " AZ6W[16],AZ6X[16],AZ6Y[16],AZ7V[16],AZ7W[16],AZ7X[16],AZ7Y[16],AZ8V[16],\n" " AZ8W[16],AZ8X[16],AZ8Y[16],AZ9V[16],AZ9W[16],AZ9X[16],AZ9Y[16],L20V[16],\n" " L20W[16],L20X[16],L20Y[16],L21V[16],L21W[16],L21X[16],L21Y[16],L22V[16],\n" " L22W[16],L22X[16],L22Y[16],L23V[16],L23W[16],L23X[16],L23Y[16],L24V[16],\n" " L24W[16],L24X[16],L24Y[16],L25V[16],L25W[16],L25X[16],L25Y[16],L26V[16],\n" " L26W[16],L26X[16],L26Y[16],L27V[16],L27W[16],L27X[16],L27Y[16],L28V[16],\n" " L28W[16],L28X[16],L28Y[16],L29V[16],L29W[16],L29X[16],L29Y[16],L30V[16],\n" " L30W[16],L30X[16],L30Y[16],L31V[16],L31W[16],L31X[16],L31Y[16],L32V[16],\n" " L32W[16],L32X[16],L32Y[16],L33V[16],L33W[16],L33X[16],L33Y[16],L34V[16],\n" " L34W[16],L34X[16],L34Y[16],L35V[16],L35W[16],L35X[16],L35Y[16],L36V[16],\n" " L36W[16],L36X[16],L36Y[16],L37V[16],L37W[16],L37X[16],L37Y[16],L38V[16],\n" " L38W[16],L38X[16],L38Y[16],L39V[16],L39W[16],L39X[16],L39Y[16],L40V[16],\n" " L40W[16],L40X[16],L40Y[16],L41V[16],L41W[16],L41X[16],L41Y[16],L42V[16],\n" " L42W[16],L42X[16],L42Y[16],L43V[16],L43W[16],L43X[16],L43Y[16],L44V[16],\n" " L44W[16],L44X[16],L44Y[16],L45V[16],L45W[16],L45X[16],L45Y[16],L46V[16],\n" " L46W[16],L46X[16],L46Y[16],L47V[16],L47W[16],L47X[16],L47Y[16],L48V[16],\n" " L48W[16],L48X[16],L48Y[16],L49V[16],L49W[16],L49X[16],L49Y[16],L50V[16],\n" " L50W[16],L50X[16],L50Y[16],L51V[16],L51W[16],L51X[16],L51Y[16],L52V[16],\n" " L52W[16],L52X[16],L52Y[16],L53V[16],L53W[16],L53X[16],L53Y[16],L54V[16],\n" " L54W[16],L54X[16],L54Y[16],L55V[16],L55W[16],L55X[16],L55Y[16],L56V[16],\n" " L56W[16],L56X[16],L56Y[16],L57V[16],L57W[16],L57X[16],L57Y[16],L58V[16],\n" " L58W[16],L58X[16],L58Y[16],L59V[16],L59W[16],L59X[16],L59Y[16],L60V[16],\n" " L60W[16],L60X[16],L60Y[16],L61V[16],L61W[16],L61X[16],L61Y[16],L62V[16],\n" " L62W[16],L62X[16],L62Y[16],L63V[16],L63W[16],L63X[16],L63Y[16],L64V[16],\n" " L64W[16],L64X[16],L64Y[16],L65V[16],L65W[16],L65X[16],L65Y[16],L66V[16],\n" " L66W[16],L66X[16],L66Y[16],L67V[16],L67W[16],L67X[16],L67Y[16],L68V[16],\n" " L68W[16],L68X[16],L68Y[16],L69V[16],L69W[16],L69X[16],L69Y[16],L70V[16],\n" " L70W[16],L70X[16],L70Y[16],L71V[16],L71W[16],L71X[16],L71Y[16],L72V[16],\n" " L72W[16],L72X[16],L72Y[16],L73V[16],L73W[16],L73X[16],L73Y[16],L74V[16],\n" " L74W[16],L74X[16],L74Y[16],L75V[16],L75W[16],L75X[16],L75Y[16],L76V[16],\n" " L76W[16],L76X[16],L76Y[16],L77V[16],L77W[16],L77X[16],L77Y[16],L78V[16],\n" " L78W[16],L78X[16],L78Y[16],L79V[16],L79W[16],L79X[16],L79Y[16],L80V[16],\n" " L80W[16],L80X[16],L80Y[16],L81V[16],L81W[16],L81X[16],L81Y[16],L82V[16],\n" " L82W[16],L82X[16],L82Y[16],L83V[16],L83W[16],L83X[16],L83Y[16],L84V[16],\n" " L84W[16],L84X[16],L84Y[16],L85V[16],L85W[16],L85X[16],L85Y[16],L86V[16],\n" " L86W[16],L86X[16],L86Y[16],L87V[16],L87W[16],L87X[16],L87Y[16],L88V[16],\n" " L88W[16],L88X[16],L88Y[16],L89V[16],L89W[16],L89X[16],L89Y[16],L90V[16],\n" " L90W[16],L90X[16],L90Y[16],L91V[16],L91W[16],L91X[16],L91Y[16],L92V[16],\n" " L92W[16],L92X[16],L92Y[16],L93V[16],L93W[16],L93X[16],L93Y[16],L94V[16],\n" " L94W[16],L94X[16],L94Y[16],L95V[16],L95W[16],L95X[16],L95Y[16],L96V[16],\n" " L96W[16],L96X[16],L96Y[16],L97V[16],L97W[16],L97X[16],L97Y[16],L98V[16],\n" " L98W[16],L98X[16],L98Y[16],L99V[16],L99W[16],L99X[16],L99Y[16],LO0V[16],\n" " LO0W[16],LO0X[16],LO0Y[16],LO1V[16],LO1W[16],LO1X[16],LO1Y[16],LO2V[16],\n" " LO2W[16],LO2X[16],LO2Y[16],LO3V[16],LO3W[16],LO3X[16],LO3Y[16],LO4V[16],\n" " LO4W[16],LO4X[16],LO4Y[16],LO5V[16],LO5W[16],LO5X[16],LO5Y[16],LO6V[16],\n" " LO6W[16],LO6X[16],LO6Y[16],LO7V[16],LO7W[16],LO7X[16],LO7Y[16],LO8V[16],\n" " LO8W[16],LO8X[16],LO8Y[16],LO9V[16],LO9W[16],LO9X[16],LO9Y[16],LP0V[16],\n" " LP0W[16],LP0X[16],LP0Y[16],LP1V[16],LP1W[16],LP1X[16],LP1Y[16],LP2V[16],\n" " LP2W[16],LP2X[16],LP2Y[16],LP3V[16],LP3W[16],LP3X[16],LP3Y[16],LP4V[16],\n" " LP4W[16],LP4X[16],LP4Y[16],LP5V[16],LP5W[16],LP5X[16],LP5Y[16],LP6V[16],\n" " LP6W[16],LP6X[16],LP6Y[16],LP7V[16],LP7W[16],LP7X[16],LP7Y[16],LP8V[16],\n" " LP8W[16],LP8X[16],LP8Y[16],LP9V[16],LP9W[16],LP9X[16],LP9Y[16],LQ0V[16],\n" " LQ0W[16],LQ0X[16],LQ0Y[16],LQ1V[16],LQ1W[16],LQ1X[16],LQ1Y[16],LQ2V[16],\n" " LQ2W[16],LQ2X[16],LQ2Y[16],LQ3V[16],LQ3W[16],LQ3X[16],LQ3Y[16],LQ4V[16],\n" " LQ4W[16],LQ4X[16],LQ4Y[16],LQ5V[16],LQ5W[16],LQ5X[16],LQ5Y[16],LQ6V[16],\n" " LQ6W[16],LQ6X[16],LQ6Y[16],LQ7V[16],LQ7W[16],LQ7X[16],LQ7Y[16],LQ8V[16],\n" " LQ8W[16],LQ8X[16],LQ8Y[16],LQ9V[16],LQ9W[16],LQ9X[16],LQ9Y[16],LR0V[16],\n" " LR0W[16],LR0X[16],LR0Y[16],LR1V[16],LR1W[16],LR1X[16],LR1Y[16],LR2V[16],\n" " LR2W[16],LR2X[16],LR2Y[16],LR3V[16],LR3W[16],LR3X[16],LR3Y[16],LR4V[16],\n" " LR4W[16],LR4X[16],LR4Y[16],LR5V[16],LR5W[16],LR5X[16],LR5Y[16],LR6V[16],\n" " LR6W[16],LR6X[16],LR6Y[16],LR7V[16],LR7W[16],LR7X[16],LR7Y[16],LR8V[16],\n" " LR8W[16],LR8X[16],LR8Y[16],LR9V[16],LR9W[16],LR9X[16],LR9Y[16],LS0V[16],\n" " LS0W[16],LS0X[16],LS0Y[16],LS1V[16],LS1W[16],LS1X[16],LS1Y[16],LS2V[16],\n" " LS2W[16],LS2X[16],LS2Y[16],LS3V[16],LS3W[16],LS3X[16],LS3Y[16],LS4V[16],\n" " LS4W[16],LS4X[16],LS4Y[16],LS5V[16],LS5W[16],LS5X[16],LS5Y[16],LS6V[16],\n" " LS6W[16],LS6X[16],LS6Y[16],LS7V[16],LS7W[16],LS7X[16],LS7Y[16],LS8V[16],\n" " LS8W[16],LS8X[16],LS8Y[16],LS9V[16],LS9W[16],LS9X[16],LS9Y[16],LT0V[16],\n" " LT0W[16],LT0X[16],LT0Y[16],LT1V[16],LT1W[16],LT1X[16],LT1Y[16],LT2V[16],\n" " LT2W[16],LT2X[16],LT2Y[16],LT3V[16],LT3W[16],LT3X[16],LT3Y[16],LT4V[16],\n" " LT4W[16],LT4X[16],LT4Y[16],LT5V[16],LT5W[16],LT5X[16],LT5Y[16],LT6V[16],\n" " LT6W[16],LT6X[16],LT6Y[16],LT7V[16],LT7W[16],LT7X[16],LT7Y[16],LT8V[16],\n" " LT8W[16],LT8X[16],LT8Y[16],LT9V[16],LT9W[16],LT9X[16],LT9Y[16],LU0V[16],\n" " LU0W[16],LU0X[16],LU0Y[16],LU1V[16],LU1W[16],LU1X[16],LU1Y[16],LU2V[16],\n" " LU2W[16],LU2X[16],LU2Y[16],LU3V[16],LU3W[16],LU3X[16],LU3Y[16],LU4V[16],\n" " LU4W[16],LU4X[16],LU4Y[16],LU5V[16],LU5W[16],LU5X[16],LU5Y[16],LU6V[16],\n" " LU6W[16],LU6X[16],LU6Y[16],LU7V[16],LU7W[16],LU7X[16],LU7Y[16],LU8V[16],\n" " LU8W[16],LU8X[16],LU8Y[16],LU9V[16],LU9W[16],LU9X[16],LU9Y[16],LV0V[16],\n" " LV0W[16],LV0X[16],LV0Y[16],LV1V[16],LV1W[16],LV1X[16],LV1Y[16],LV2V[16],\n" " LV2W[16],LV2X[16],LV2Y[16],LV3V[16],LV3W[16],LV3X[16],LV3Y[16],LV4V[16],\n" " LV4W[16],LV4X[16],LV4Y[16],LV5V[16],LV5W[16],LV5X[16],LV5Y[16],LV6V[16],\n" " LV6W[16],LV6X[16],LV6Y[16],LV7V[16],LV7W[16],LV7X[16],LV7Y[16],LV8V[16],\n" " LV8W[16],LV8X[16],LV8Y[16],LV9V[16],LV9W[16],LV9X[16],LV9Y[16],LW0V[16],\n" " LW0W[16],LW0X[16],LW0Y[16],LW1V[16],LW1W[16],LW1X[16],LW1Y[16],LW2V[16],\n" " LW2W[16],LW2X[16],LW2Y[16],LW3V[16],LW3W[16],LW3X[16],LW3Y[16],LW4V[16],\n" " LW4W[16],LW4X[16],LW4Y[16],LW5V[16],LW5W[16],LW5X[16],LW5Y[16],LW6V[16],\n" " LW6W[16],LW6X[16],LW6Y[16],LW7V[16],LW7W[16],LW7X[16],LW7Y[16],LW8V[16],\n" " LW8W[16],LW8X[16],LW8Y[16],LW9V[16],LW9W[16],LW9X[16],LW9Y[16],=LU1DAR/D,\n" " =LU1DCB/D,=LU1EQ/D,=LU1FFF/F,=LU1HLH/D,=LU1QA/Q,=LU1VOF/D,=LU1WJY/W[16],\n" " =LU1XZ/H,=LU1YY/Y[16],=LU2DB/V[16],=LU2DJB/J,=LU2DVI/H,=LU2FLB/F,\n" " =LU2WA/W[16],=LU4DBT/D,=LU4DDL/V[16],=LU4DLL/D,=LU5DEM/W[16],\n" " =LU5DGI/W[16],=LU5DX/H,=LU5FES/F,=LU5FZ/GA,=LU5JU/J,=LU5YF/V[16],=LU6DM/D,\n" " =LU6EJJ/D,=LU6HBB/D,=LU6VAC/V[16],=LU7DOT/D,=LU7EO/D,=LU7HW/D,\n" " =LU8VER/V[16],=LU9JMG/J,=LW2EIY/H,=LW3DKO/D,=LW4EIN/D,=LW4HCL/D,=LW7EIY/H;\n" "Luxembourg: 14: 27: EU: 50.00: -6.00: -1.0: LX:\n" " LX;\n" "Lithuania: 15: 29: EU: 55.45: -23.63: -2.0: LY:\n" " LY;\n" "Bulgaria: 20: 28: EU: 42.83: -25.08: -2.0: LZ:\n" " LZ;\n" "Peru: 10: 12: SA: -10.00: 76.00: 5.0: OA:\n" " 4T,OA,OB,OC;\n" "Lebanon: 20: 39: AS: 33.83: -35.83: -2.0: OD:\n" " OD;\n" "Austria: 15: 28: EU: 47.33: -13.33: -1.0: OE:\n" " 4U1V,OE;\n" "Finland: 15: 18: EU: 63.78: -27.08: -2.0: OH:\n" " OF,OG,OH,OI,OJ;\n" "Aland Islands: 15: 18: EU: 60.13: -20.37: -2.0: OH0:\n" " OF0,OG0,OH0,OI0;\n" "Market Reef: 15: 18: EU: 60.00: -19.00: -2.0: OJ0:\n" " OJ0;\n" "Czech Republic: 15: 28: EU: 50.00: -16.00: -1.0: OK:\n" " OK,OL;\n" "Slovak Republic: 15: 28: EU: 49.00: -20.00: -1.0: OM:\n" " OM;\n" "Belgium: 14: 27: EU: 50.70: -4.85: -1.0: ON:\n" " ON,OO,OP,OQ,OR,OS,OT;\n" "Greenland: 40: 05: NA: 74.00: 42.78: 3.0: OX:\n" " OX,XP;\n" "Faroe Islands: 14: 18: EU: 62.07: 6.93: 0.0: OY:\n" " OW,OY;\n" "Denmark: 14: 18: EU: 56.00: -10.00: -1.0: OZ:\n" " 5P,5Q,OU,OV,OZ;\n" "Papua New Guinea: 28: 51: OC: -9.50: -147.12: -10.0: P2:\n" " P2;\n" "Aruba: 09: 11: SA: 12.53: 69.98: 4.0: P4:\n" " P4;\n" "DPR of Korea: 25: 44: AS: 39.78: -126.30: -9.0: P5:\n" " HM,P5,P6,P7,P8,P9;\n" "Netherlands: 14: 27: EU: 52.28: -5.47: -1.0: PA:\n" " PA,PB,PC,PD,PE,PF,PG,PH,PI,=PH4RTM/MILL;\n" "Curacao: 09: 11: SA: 12.17: 69.00: 4.0: PJ2:\n" " PJ2;\n" "Bonaire: 09: 11: SA: 12.20: 68.25: 4.0: PJ4:\n" " PJ4;\n" "Saba & St. Eustatius: 08: 11: NA: 17.57: 63.10: 4.0: PJ5:\n" " PJ5,PJ6;\n" "Sint Maarten: 08: 11: NA: 18.07: 63.07: 4.0: PJ7:\n" " PJ7;\n" "Brazil: 11: 12: SA: -10.00: 53.00: 3.0: PY:\n" " PP,PQ,PR,PS,PT,PU,PV,PW,PX,PY,ZV,ZW,ZX,ZY,ZZ,PP1[15],PP2[15],PP3[15],\n" " PP4[15],PP5[15],PP6[13],PP7[13],PQ2[13],PQ3[15],PQ4[15],PQ8[13],PR3[15],\n" " PR4[15],PR7[13],PR8[13],PS3[15],PS4[15],PS7[13],PS8[13],PT2[13],PT3[15],\n" " PT4[15],PT7[13],PT9[15],PU3[15],PU4[15],PV3[15],PV4[15],PW3[15],PW4[15],\n" " PX3[15],PX4[15],PY1[15],PY2[15],PY3[15],PY4[15],PY5[15],PY6[13],PY7[13],\n" " PY8[13],PY9[13],ZV3[15],ZV4[15],ZW3[15],ZW4[15],ZX3[15],ZX4[15],ZY3[15],\n" " ZY4[15],ZZ3[15],ZZ4[15];\n" "Fernando de Noronha: 11: 13: SA: -3.85: 32.43: 2.0: PY0F:\n" " PP0F,PQ0F,PR0F,PS0F,PT0F,PU0F,PV0F,PW0F,PX0F,PY0F,PY0Z,ZV0F,ZW0F,ZX0F,\n" " ZY0F,ZY0R,ZY0Z,ZZ0F;\n" "St. Peter & St. Paul: 11: 13: SA: 0.00: 29.00: 2.0: PY0S:\n" " PP0S,PQ0S,PR0S,PS0S,PT0S,PU0S,PV0S,PW0S,PX0S,PY0S,ZV0S,ZW0S,ZX0S,ZY0S,\n" " ZZ0S;\n" "Trindade & Martim Vaz: 11: 15: SA: -20.50: 29.32: 2.0: PY0T:\n" " PP0M,PP0T,PQ0M,PQ0T,PR0M,PR0T,PS0M,PS0T,PT0M,PT0T,PU0M,PU0T,PV0M,PV0T,\n" " PW0M,PW0T,PX0M,PX0T,PY0M,PY0T,ZV0M,ZV0T,ZW0M,ZW0T,ZX0M,ZX0T,ZY0M,ZY0T,\n" " ZZ0M,ZZ0T;\n" "Suriname: 09: 12: SA: 4.00: 56.00: 3.0: PZ:\n" " PZ;\n" "Franz Josef Land: 40: 75: EU: 80.68: -49.92: -3.0: R1FJ:\n" " FJL,R1FJ,RI1FJ;\n" "Western Sahara: 33: 46: AF: 24.82: 13.85: 0.0: S0:\n" " S0;\n" "Bangladesh: 22: 41: AS: 24.12: -89.65: -6.0: S2:\n" " S2,S3;\n" "Slovenia: 15: 28: EU: 46.00: -14.00: -1.0: S5:\n" " S5;\n" "Seychelles: 39: 53: AF: -4.67: -55.47: -4.0: S7:\n" " S7;\n" "Sao Tome & Principe: 36: 47: AF: 0.22: -6.57: 0.0: S9:\n" " S9;\n" "Sweden: 14: 18: EU: 61.20: -14.57: -1.0: SM:\n" " 7S,8S,SA,SB,SC,SD,SE,SF,SG,SH,SI,SJ,SK,SL,SM;\n" "Poland: 15: 28: EU: 52.28: -18.67: -1.0: SP:\n" " 3Z,HF,SN,SO,SP,SQ,SR;\n" "Sudan: 34: 48: AF: 14.47: -28.62: -3.0: ST:\n" " 6T,6U,ST;\n" "Egypt: 34: 38: AF: 26.28: -28.60: -2.0: SU:\n" " 6A,6B,SS,SU;\n" "Greece: 20: 28: EU: 39.78: -21.78: -2.0: SV:\n" " J4,SV,SW,SX,SY,SZ;\n" "Mount Athos: 20: 28: EU: 40.00: -24.00: -2.0: SV/a:\n" " =SV2ASP/A;\n" "Dodecanese: 20: 28: EU: 36.17: -27.93: -2.0: SV5:\n" " J45,SV5,SW5,SX5,SY5,SZ5,=SV0XAN/5,=SV0XCA/5;\n" "Crete: 20: 28: EU: 35.23: -24.78: -2.0: SV9:\n" " J49,SV9,SW9,SX9,SY9,SZ9,=SV0XAI/9,=SV0XBN/9,=SV0XCC/9;\n" "Tuvalu: 31: 65: OC: -8.50: -179.20: -12.0: T2:\n" " T2;\n" "Western Kiribati: 31: 65: OC: 1.42: -173.00: -12.0: T30:\n" " T30;\n" "Central Kiribati: 31: 62: OC: -2.83: 171.72: -13.0: T31:\n" " T31;\n" "Eastern Kiribati: 31: 61: OC: 1.80: 157.35: -14.0: T32:\n" " T32;\n" "Banaba Island: 31: 65: OC: -0.88: -169.53: -12.0: T33:\n" " T33;\n" "Somalia: 37: 48: AF: 2.03: -45.35: -3.0: T5:\n" " 6O,T5;\n" "San Marino: 15: 28: EU: 43.95: -12.45: -1.0: T7:\n" " T7;\n" "Palau: 27: 64: OC: 7.45: -134.53: -9.0: T8:\n" " T8;\n" "Asiatic Turkey: 20: 39: AS: 39.18: -35.65: -2.0: TA:\n" " TA,TB,TC,YM,=TC50TRAC/18E,=TC50TRAC/18C,=TC50TRAC/28G,=TC50TRAC/29T,\n" " =TC50TRAC/38D,=TC50TRAC/38K;\n" "European Turkey: 20: 39: EU: 41.02: -28.97: -2.0: *TA1:\n" " TA1,TB1,TC1,YM1;\n" "Iceland: 40: 17: EU: 64.80: 18.73: 0.0: TF:\n" " TF;\n" "Guatemala: 07: 11: NA: 15.50: 90.30: 6.0: TG:\n" " TD,TG;\n" "Costa Rica: 07: 11: NA: 10.00: 84.00: 6.0: TI:\n" " TE,TI;\n" "Cocos Island: 07: 11: NA: 5.52: 87.05: 6.0: TI9:\n" " TE9,TI9;\n" "Cameroon: 36: 47: AF: 5.38: -11.87: -1.0: TJ:\n" " TJ;\n" "Corsica: 15: 28: EU: 42.00: -9.00: -1.0: TK:\n" " TK;\n" "Central African Republic: 36: 47: AF: 6.75: -20.33: -1.0: TL:\n" " TL;\n" "Republic of the Congo: 36: 52: AF: -1.02: -15.37: -1.0: TN:\n" " TN;\n" "Gabon: 36: 52: AF: -0.37: -11.73: -1.0: TR:\n" " TR;\n" "Chad: 36: 47: AF: 15.80: -18.17: -1.0: TT:\n" " TT;\n" "Cote d'Ivoire: 35: 46: AF: 7.58: 5.80: 0.0: TU:\n" " TU;\n" "Benin: 35: 46: AF: 9.87: -2.25: -1.0: TY:\n" " TY;\n" "Mali: 35: 46: AF: 18.00: 2.58: 0.0: TZ:\n" " TZ;\n" "European Russia: 16: 29: EU: 56.00: -37.00: -4.0: UA:\n" " R,U,R1N[19],R1O[19],R1P[20],R1Z[19],R4H[30],R4I[30],R4W[30],R8F(17)[30],\n" " R8G(17)[30],R8X(17)[19],R9F(17)[30],R9G(17)[30],R9X(17)[19],RA1N[19],\n" " RA1O[19],RA1P[20],RA1Z[19],RA4H[30],RA4I[30],RA4W[30],RA8F(17)[30],\n" " RA8G(17)[30],RA8X(17)[19],RA9F(17)[30],RA9G(17)[30],RA9X(17)[19],RC1N[19],\n" " RC1O[19],RC1P[20],RC1Z[19],RC4H[30],RC4I[30],RC4W[30],RC8F(17)[30],\n" " RC8G(17)[30],RC8X(17)[19],RC9F(17)[30],RC9G(17)[30],RC9X(17)[19],RD1N[19],\n" " RD1O[19],RD1P[20],RD1Z[19],RD4H[30],RD4I[30],RD4W[30],RD8F(17)[30],\n" " RD8G(17)[30],RD8X(17)[19],RD9F(17)[30],RD9G(17)[30],RD9X(17)[19],RF1N[19],\n" " RF1O[19],RF1P[20],RF1Z[19],RF4H[30],RF4I[30],RF4W[30],RF8F(17)[30],\n" " RF8G(17)[30],RF8X(17)[19],RF9F(17)[30],RF9G(17)[30],RF9X(17)[19],RG1N[19],\n" " RG1O[19],RG1P[20],RG1Z[19],RG4H[30],RG4I[30],RG4W[30],RG8F(17)[30],\n" " RG8G(17)[30],RG8X(17)[19],RG9F(17)[30],RG9G(17)[30],RG9X(17)[19],RI1N[19],\n" " RI1O[19],RI1P[20],RI1Z[19],RI4H[30],RI4I[30],RI4W[30],RI8F(17)[30],\n" " RI8G(17)[30],RI8X(17)[19],RI9F(17)[30],RI9G(17)[30],RI9X(17)[19],RJ1N[19],\n" " RJ1O[19],RJ1P[20],RJ1Z[19],RJ4H[30],RJ4I[30],RJ4W[30],RJ8F(17)[30],\n" " RJ8G(17)[30],RJ8X(17)[19],RJ9F(17)[30],RJ9G(17)[30],RJ9X(17)[19],RK1N[19],\n" " RK1O[19],RK1P[20],RK1Z[19],RK4H[30],RK4I[30],RK4W[30],RK8F(17)[30],\n" " RK8G(17)[30],RK8X(17)[19],RK9F(17)[30],RK9G(17)[30],RK9X(17)[19],RL1N[19],\n" " RL1O[19],RL1P[20],RL1Z[19],RL4H[30],RL4I[30],RL4W[30],RL8F(17)[30],\n" " RL8G(17)[30],RL8X(17)[19],RL9F(17)[30],RL9G(17)[30],RL9X(17)[19],RM1N[19],\n" " RM1O[19],RM1P[20],RM1Z[19],RM4H[30],RM4I[30],RM4W[30],RM8F(17)[30],\n" " RM8G(17)[30],RM8X(17)[19],RM9F(17)[30],RM9G(17)[30],RM9X(17)[19],RN1N[19],\n" " RN1O[19],RN1P[20],RN1Z[19],RN4H[30],RN4I[30],RN4W[30],RN8F(17)[30],\n" " RN8G(17)[30],RN8X(17)[19],RN9F(17)[30],RN9G(17)[30],RN9X(17)[19],RO1N[19],\n" " RO1O[19],RO1P[20],RO1Z[19],RO4H[30],RO4I[30],RO4W[30],RO8F(17)[30],\n" " RO8G(17)[30],RO8X(17)[19],RO9F(17)[30],RO9G(17)[30],RO9X(17)[19],RP1N[19],\n" " RP1O[19],RP1P[20],RP1Z[19],RP4H[30],RP4I[30],RP4W[30],RP8F(17)[30],\n" " RP8G(17)[30],RP8X(17)[19],RP9F(17)[30],RP9G(17)[30],RP9X(17)[19],RQ1N[19],\n" " RQ1O[19],RQ1P[20],RQ1Z[19],RQ4H[30],RQ4I[30],RQ4W[30],RQ8F(17)[30],\n" " RQ8G(17)[30],RQ8X(17)[19],RQ9F(17)[30],RQ9G(17)[30],RQ9X(17)[19],RR1N[19],\n" " RR1O[19],RR1P[20],RR1Z[19],RR4H[30],RR4I[30],RR4W[30],RR8F(17)[30],\n" " RR8G(17)[30],RR8X(17)[19],RR9F(17)[30],RR9G(17)[30],RR9X(17)[19],RT1N[19],\n" " RT1O[19],RT1P[20],RT1Z[19],RT4H[30],RT4I[30],RT4W[30],RT8F(17)[30],\n" " RT8G(17)[30],RT8X(17)[19],RT9F(17)[30],RT9G(17)[30],RT9X(17)[19],RU1N[19],\n" " RU1O[19],RU1P[20],RU1Z[19],RU4H[30],RU4I[30],RU4W[30],RU8F(17)[30],\n" " RU8G(17)[30],RU8X(17)[19],RU9F(17)[30],RU9G(17)[30],RU9X(17)[19],RV1N[19],\n" " RV1O[19],RV1P[20],RV1Z[19],RV4H[30],RV4I[30],RV4W[30],RV8F(17)[30],\n" " RV8G(17)[30],RV8X(17)[19],RV9F(17)[30],RV9G(17)[30],RV9X(17)[19],RW1N[19],\n" " RW1O[19],RW1P[20],RW1Z[19],RW4H[30],RW4I[30],RW4W[30],RW8F(17)[30],\n" " RW8G(17)[30],RW8X(17)[19],RW9F(17)[30],RW9G(17)[30],RW9X(17)[19],RX1N[19],\n" " RX1O[19],RX1P[20],RX1Z[19],RX4H[30],RX4I[30],RX4W[30],RX8F(17)[30],\n" " RX8G(17)[30],RX8X(17)[19],RX9F(17)[30],RX9G(17)[30],RX9X(17)[19],RY1N[19],\n" " RY1O[19],RY1P[20],RY1Z[19],RY4H[30],RY4I[30],RY4W[30],RY8F(17)[30],\n" " RY8G(17)[30],RY8X(17)[19],RY9F(17)[30],RY9G(17)[30],RY9X(17)[19],RZ1N[19],\n" " RZ1O[19],RZ1P[20],RZ1Z[19],RZ4H[30],RZ4I[30],RZ4W[30],RZ8F(17)[30],\n" " RZ8G(17)[30],RZ8X(17)[19],RZ9F(17)[30],RZ9G(17)[30],RZ9X(17)[19],U1N[19],\n" " U1O[19],U1P[20],U1Z[19],U4H[30],U4I[30],U4W[30],U8F(17)[30],U8G(17)[30],\n" " U8X(17)[19],U9F(17)[30],U9G(17)[30],U9X(17)[19],UA1N[19],UA1O[19],\n" " UA1P[20],UA1Z[19],UA4H[30],UA4I[30],UA4W[30],UA8F(17)[30],UA8G(17)[30],\n" " UA8X(17)[19],UA9F(17)[30],UA9G(17)[30],UA9X(17)[19],UB1N[19],UB1O[19],\n" " UB1P[20],UB1Z[19],UB4H[30],UB4I[30],UB4W[30],UB8F(17)[30],UB8G(17)[30],\n" " UB8X(17)[19],UB9F(17)[30],UB9G(17)[30],UB9X(17)[19],UC1N[19],UC1O[19],\n" " UC1P[20],UC1Z[19],UC4H[30],UC4I[30],UC4W[30],UC8F(17)[30],UC8G(17)[30],\n" " UC8X(17)[19],UC9F(17)[30],UC9G(17)[30],UC9X(17)[19],UD1N[19],UD1O[19],\n" " UD1P[20],UD1Z[19],UD4H[30],UD4I[30],UD4W[30],UD8F(17)[30],UD8G(17)[30],\n" " UD8X(17)[19],UD9F(17)[30],UD9G(17)[30],UD9X(17)[19],UE1N[19],UE1O[19],\n" " UE1P[20],UE1Z[19],UE4H[30],UE4I[30],UE4W[30],UE8F(17)[30],UE8G(17)[30],\n" " UE8X(17)[19],UE9F(17)[30],UE9G(17)[30],UE9X(17)[19],UF1N[19],UF1O[19],\n" " UF1P[20],UF1Z[19],UF4H[30],UF4I[30],UF4W[30],UF8F(17)[30],UF8G(17)[30],\n" " UF8X(17)[19],UF9F(17)[30],UF9G(17)[30],UF9X(17)[19],UG1N[19],UG1O[19],\n" " UG1P[20],UG1Z[19],UG4H[30],UG4I[30],UG4W[30],UG8F(17)[30],UG8G(17)[30],\n" " UG8X(17)[19],UG9F(17)[30],UG9G(17)[30],UG9X(17)[19],UH1N[19],UH1O[19],\n" " UH1P[20],UH1Z[19],UH4H[30],UH4I[30],UH4W[30],UH8F(17)[30],UH8G(17)[30],\n" " UH8X(17)[19],UH9F(17)[30],UH9G(17)[30],UH9X(17)[19],UI1N[19],UI1O[19],\n" " UI1P[20],UI1Z[19],UI4H[30],UI4I[30],UI4W[30],UI8F(17)[30],UI8G(17)[30],\n" " UI8X(17)[19],UI9F(17)[30],UI9G(17)[30],UI9X(17)[19],=R875R,=RD9CX/4/P,\n" " =RV9WKI/4/P,=RZ9HK/3/P;\n" "Kaliningrad: 15: 29: EU: 54.72: -20.52: -3.0: UA2:\n" " R2F,R2K,RA2,RC2F,RC2K,RD2F,RD2K,RF2F,RF2K,RG2F,RG2K,RI2F,RI2K,RJ2F,RJ2K,\n" " RK2F,RK2K,RL2F,RL2K,RM2F,RM2K,RN2F,RN2K,RO2F,RO2K,RP2F,RP2K,RQ2F,RQ2K,\n" " RR2F,RR2K,RT2F,RT2K,RU2F,RU2K,RV2F,RV2K,RW2F,RW2K,RX2F,RX2K,RY2F,RY2K,\n" " RZ2F,RZ2K,U2F,U2K,UA2,UB2,UC2,UD2,UE2,UF2,UG2,UH2,UI2,=R10RLHA/2,=R21GGGR,\n" " =R22GGGR,=R2MWO;\n" "Asiatic Russia: 17: 30: AS: 67.18: -104.00: -7.0: UA9:\n" " R0,R8(17)[30],R9,RA0,RA8(17)[30],RA9,RB0,RB8(17)[30],RB9,RC0,RC8(17)[30],\n" " RC9,RD0,RD8(17)[30],RD9,RE0,RE8(17)[30],RE9,RF0,RF8(17)[30],RF9,RG0,\n" " RG8(17)[30],RG9,RH0,RH8(17)[30],RH9,RI0,RI8(17)[30],RI9,RJ0,RJ8(17)[30],\n" " RJ9,RK0,RK8(17)[30],RK9,RL0,RL8(17)[30],RL9,RM0,RM8(17)[30],RM9,RN0,\n" " RN8(17)[30],RN9,RO0,RO8(17)[30],RO9,RP0,RP8(17)[30],RP9,RQ0,RQ8(17)[30],\n" " RQ9,RR0,RR8(17)[30],RR9,RS0,RS8(17)[30],RS9,RT0,RT8(17)[30],RT9,RU0,\n" " RU8(17)[30],RU9,RV0,RV8(17)[30],RV9,RW0,RW8(17)[30],RW9,RX0,RX8(17)[30],\n" " RX9,RY0,RY8(17)[30],RY9,RZ0,RZ8(17)[30],RZ9,U0,U8(17)[30],U9,UA0,\n" " UA8(17)[30],UA9,UB0,UB8(17)[30],UB9,UC0,UC8(17)[30],UC9,UD0,UD8(17)[30],\n" " UD9,UE0,UE8(17)[30],UE9,UF0,UF8(17)[30],UF9,UG0,UG8(17)[30],UG9,UH0,\n" " UH8(17)[30],UH9,UI0,UI8(17)[30],UI9,R0T(18)[32],R8H(18)[31],R8I(18)[31],\n" " R8O(18)[31],R8P(18)[31],R8S(16)[30],R8T(16)[30],R8U(18)[31],R8V(18)[31],\n" " R8W(16)[30],R8Y(18)[31],R8Z(18)[31],R9I(18)[31],R9M(17)[30],R9P(18)[31],\n" " R9S(16),R9T(16),R9V(18)[31],R9W(16),RA0T(18)[32],RA8H(18)[31],\n" " RA8I(18)[31],RA8O(18)[31],RA8P(18)[31],RA8S(16)[30],RA8T(16)[30],\n" " RA8U(18)[31],RA8V(18)[31],RA8W(16)[30],RA8Y(18)[31],RA8Z(18)[31],\n" " RA9I(18)[31],RA9M(17)[30],RA9P(18)[31],RA9S(16),RA9T(16),RA9V(18)[31],\n" " RA9W(16),RC0T(18)[32],RC8H(18)[31],RC8I(18)[31],RC8O(18)[31],RC8P(18)[31],\n" " RC8S(16)[30],RC8T(16)[30],RC8U(18)[31],RC8V(18)[31],RC8W(16)[30],\n" " RC8Y(18)[31],RC8Z(18)[31],RC9I(18)[31],RC9M(17)[30],RC9P(18)[31],RC9S(16),\n" " RC9T(16),RC9V(18)[31],RC9W(16),RD0T(18)[32],RD8H(18)[31],RD8I(18)[31],\n" " RD8O(18)[31],RD8P(18)[31],RD8S(16)[30],RD8T(16)[30],RD8U(18)[31],\n" " RD8V(18)[31],RD8W(16)[30],RD8Y(18)[31],RD8Z(18)[31],RD9I(18)[31],\n" " RD9M(17)[30],RD9P(18)[31],RD9S(16),RD9T(16),RD9V(18)[31],RD9W(16),\n" " RF0T(18)[32],RF8H(18)[31],RF8I(18)[31],RF8O(18)[31],RF8P(18)[31],\n" " RF8S(16)[30],RF8T(16)[30],RF8U(18)[31],RF8V(18)[31],RF8W(16)[30],\n" " RF8Y(18)[31],RF8Z(18)[31],RF9I(18)[31],RF9M(17)[30],RF9P(18)[31],RF9S(16),\n" " RF9T(16),RF9V(18)[31],RF9W(16),RG0T(18)[32],RG8H(18)[31],RG8I(18)[31],\n" " RG8O(18)[31],RG8P(18)[31],RG8S(16)[30],RG8T(16)[30],RG8U(18)[31],\n" " RG8V(18)[31],RG8W(16)[30],RG8Y(18)[31],RG8Z(18)[31],RG9I(18)[31],\n" " RG9M(17)[30],RG9P(18)[31],RG9S(16),RG9T(16),RG9V(18)[31],RG9W(16),\n" " RI0T(18)[32],RI8H(18)[31],RI8I(18)[31],RI8O(18)[31],RI8P(18)[31],\n" " RI8S(16)[30],RI8T(16)[30],RI8U(18)[31],RI8V(18)[31],RI8W(16)[30],\n" " RI8Y(18)[31],RI8Z(18)[31],RI9I(18)[31],RI9M(17)[30],RI9P(18)[31],RI9S(16),\n" " RI9T(16),RI9V(18)[31],RI9W(16),RJ0T(18)[32],RJ8H(18)[31],RJ8I(18)[31],\n" " RJ8O(18)[31],RJ8P(18)[31],RJ8S(16)[30],RJ8T(16)[30],RJ8U(18)[31],\n" " RJ8V(18)[31],RJ8W(16)[30],RJ8Y(18)[31],RJ8Z(18)[31],RJ9I(18)[31],\n" " RJ9M(17)[30],RJ9P(18)[31],RJ9S(16),RJ9T(16),RJ9V(18)[31],RJ9W(16),\n" " RK0T(18)[32],RK8H(18)[31],RK8I(18)[31],RK8O(18)[31],RK8P(18)[31],\n" " RK8S(16)[30],RK8T(16)[30],RK8U(18)[31],RK8V(18)[31],RK8W(16)[30],\n" " RK8Y(18)[31],RK8Z(18)[31],RK9I(18)[31],RK9M(17)[30],RK9P(18)[31],RK9S(16),\n" " RK9T(16),RK9V(18)[31],RK9W(16),RL0T(18)[32],RL8H(18)[31],RL8I(18)[31],\n" " RL8O(18)[31],RL8P(18)[31],RL8S(16)[30],RL8T(16)[30],RL8U(18)[31],\n" ; const char txt_cty1[17792] = " RL8V(18)[31],RL8W(16)[30],RL8Y(18)[31],RL8Z(18)[31],RL9I(18)[31],\n" " RL9M(17)[30],RL9P(18)[31],RL9S(16),RL9T(16),RL9V(18)[31],RL9W(16),\n" " RM0T(18)[32],RM8H(18)[31],RM8I(18)[31],RM8O(18)[31],RM8P(18)[31],\n" " RM8S(16)[30],RM8T(16)[30],RM8U(18)[31],RM8V(18)[31],RM8W(16)[30],\n" " RM8Y(18)[31],RM8Z(18)[31],RM9I(18)[31],RM9M(17)[30],RM9P(18)[31],RM9S(16),\n" " RM9T(16),RM9V(18)[31],RM9W(16),RN0T(18)[32],RN8H(18)[31],RN8I(18)[31],\n" " RN8O(18)[31],RN8P(18)[31],RN8S(16)[30],RN8T(16)[30],RN8U(18)[31],\n" " RN8V(18)[31],RN8W(16)[30],RN8Y(18)[31],RN8Z(18)[31],RN9I(18)[31],\n" " RN9M(17)[30],RN9P(18)[31],RN9S(16),RN9T(16),RN9V(18)[31],RN9W(16),\n" " RO0T(18)[32],RO8H(18)[31],RO8I(18)[31],RO8O(18)[31],RO8P(18)[31],\n" " RO8S(16)[30],RO8T(16)[30],RO8U(18)[31],RO8V(18)[31],RO8W(16)[30],\n" " RO8Y(18)[31],RO8Z(18)[31],RO9I(18)[31],RO9M(17)[30],RO9P(18)[31],RO9S(16),\n" " RO9T(16),RO9V(18)[31],RO9W(16),RP0T(18)[32],RP8H(18)[31],RP8I(18)[31],\n" " RP8O(18)[31],RP8P(18)[31],RP8S(16)[30],RP8T(16)[30],RP8U(18)[31],\n" " RP8V(18)[31],RP8W(16)[30],RP8Y(18)[31],RP8Z(18)[31],RP9I(18)[31],\n" " RP9M(17)[30],RP9P(18)[31],RP9S(16),RP9T(16),RP9V(18)[31],RP9W(16),\n" " RQ0T(18)[32],RQ8H(18)[31],RQ8I(18)[31],RQ8O(18)[31],RQ8P(18)[31],\n" " RQ8S(16)[30],RQ8T(16)[30],RQ8U(18)[31],RQ8V(18)[31],RQ8W(16)[30],\n" " RQ8Y(18)[31],RQ8Z(18)[31],RQ9I(18)[31],RQ9M(17)[30],RQ9P(18)[31],RQ9S(16),\n" " RQ9T(16),RQ9V(18)[31],RQ9W(16),RR0T(18)[32],RR8H(18)[31],RR8I(18)[31],\n" " RR8O(18)[31],RR8P(18)[31],RR8S(16)[30],RR8T(16)[30],RR8U(18)[31],\n" " RR8V(18)[31],RR8W(16)[30],RR8Y(18)[31],RR8Z(18)[31],RR9I(18)[31],\n" " RR9M(17)[30],RR9P(18)[31],RR9S(16),RR9T(16),RR9V(18)[31],RR9W(16),\n" " RT0T(18)[32],RT8H(18)[31],RT8I(18)[31],RT8O(18)[31],RT8P(18)[31],\n" " RT8S(16)[30],RT8T(16)[30],RT8U(18)[31],RT8V(18)[31],RT8W(16)[30],\n" " RT8Y(18)[31],RT8Z(18)[31],RT9I(18)[31],RT9M(17)[30],RT9P(18)[31],RT9S(16),\n" " RT9T(16),RT9V(18)[31],RT9W(16),RU0T(18)[32],RU8H(18)[31],RU8I(18)[31],\n" " RU8O(18)[31],RU8P(18)[31],RU8S(16)[30],RU8T(16)[30],RU8U(18)[31],\n" " RU8V(18)[31],RU8W(16)[30],RU8Y(18)[31],RU8Z(18)[31],RU9I(18)[31],\n" " RU9M(17)[30],RU9P(18)[31],RU9S(16),RU9T(16),RU9V(18)[31],RU9W(16),\n" " RV0T(18)[32],RV8H(18)[31],RV8I(18)[31],RV8O(18)[31],RV8P(18)[31],\n" " RV8S(16)[30],RV8T(16)[30],RV8U(18)[31],RV8V(18)[31],RV8W(16)[30],\n" " RV8Y(18)[31],RV8Z(18)[31],RV9I(18)[31],RV9M(17)[30],RV9P(18)[31],RV9S(16),\n" " RV9T(16),RV9V(18)[31],RV9W(16),RW0T(18)[32],RW8H(18)[31],RW8I(18)[31],\n" " RW8O(18)[31],RW8P(18)[31],RW8S(16)[30],RW8T(16)[30],RW8U(18)[31],\n" " RW8V(18)[31],RW8W(16)[30],RW8Y(18)[31],RW8Z(18)[31],RW9I(18)[31],\n" " RW9M(17)[30],RW9P(18)[31],RW9S(16),RW9T(16),RW9V(18)[31],RW9W(16),\n" " RX0T(18)[32],RX8H(18)[31],RX8I(18)[31],RX8O(18)[31],RX8P(18)[31],\n" " RX8S(16)[30],RX8T(16)[30],RX8U(18)[31],RX8V(18)[31],RX8W(16)[30],\n" " RX8Y(18)[31],RX8Z(18)[31],RX9I(18)[31],RX9M(17)[30],RX9P(18)[31],RX9S(16),\n" " RX9T(16),RX9V(18)[31],RX9W(16),RY0T(18)[32],RY8H(18)[31],RY8I(18)[31],\n" " RY8O(18)[31],RY8P(18)[31],RY8S(16)[30],RY8T(16)[30],RY8U(18)[31],\n" " RY8V(18)[31],RY8W(16)[30],RY8Y(18)[31],RY8Z(18)[31],RY9I(18)[31],\n" " RY9M(17)[30],RY9P(18)[31],RY9S(16),RY9T(16),RY9V(18)[31],RY9W(16),\n" " RZ0T(18)[32],RZ8H(18)[31],RZ8I(18)[31],RZ8O(18)[31],RZ8P(18)[31],\n" " RZ8S(16)[30],RZ8T(16)[30],RZ8U(18)[31],RZ8V(18)[31],RZ8W(16)[30],\n" " RZ8Y(18)[31],RZ8Z(18)[31],RZ9I(18)[31],RZ9M(17)[30],RZ9P(18)[31],RZ9S(16),\n" " RZ9T(16),RZ9V(18)[31],RZ9W(16),U0T(18)[32],U8H(18)[31],U8I(18)[31],\n" " U8O(18)[31],U8P(18)[31],U8S(16)[30],U8T(16)[30],U8U(18)[31],U8V(18)[31],\n" " U8W(16)[30],U8Y(18)[31],U8Z(18)[31],U9I(18)[31],U9M(17)[30],U9P(18)[31],\n" " U9S(16),U9T(16),U9V(18)[31],U9W(16),UA0T(18)[32],UA8H(18)[31],\n" " UA8I(18)[31],UA8O(18)[31],UA8P(18)[31],UA8S(16)[30],UA8T(16)[30],\n" " UA8U(18)[31],UA8V(18)[31],UA8W(16)[30],UA8Y(18)[31],UA8Z(18)[31],\n" " UA9I(18)[31],UA9M(17)[30],UA9P(18)[31],UA9S(16),UA9T(16),UA9V(18)[31],\n" " UA9W(16),UB0T(18)[32],UB8H(18)[31],UB8I(18)[31],UB8O(18)[31],UB8P(18)[31],\n" " UB8S(16)[30],UB8T(16)[30],UB8U(18)[31],UB8V(18)[31],UB8W(16)[30],\n" " UB8Y(18)[31],UB8Z(18)[31],UB9I(18)[31],UB9M(17)[30],UB9P(18)[31],UB9S(16),\n" " UB9T(16),UB9V(18)[31],UB9W(16),UC0T(18)[32],UC8H(18)[31],UC8I(18)[31],\n" " UC8O(18)[31],UC8P(18)[31],UC8S(16)[30],UC8T(16)[30],UC8U(18)[31],\n" " UC8V(18)[31],UC8W(16)[30],UC8Y(18)[31],UC8Z(18)[31],UC9I(18)[31],\n" " UC9M(17)[30],UC9P(18)[31],UC9S(16),UC9T(16),UC9V(18)[31],UC9W(16),\n" " UD0T(18)[32],UD8H(18)[31],UD8I(18)[31],UD8O(18)[31],UD8P(18)[31],\n" " UD8S(16)[30],UD8T(16)[30],UD8U(18)[31],UD8V(18)[31],UD8W(16)[30],\n" " UD8Y(18)[31],UD8Z(18)[31],UD9I(18)[31],UD9M(17)[30],UD9P(18)[31],UD9S(16),\n" " UD9T(16),UD9V(18)[31],UD9W(16),UE0T(18)[32],UE8H(18)[31],UE8I(18)[31],\n" " UE8O(18)[31],UE8P(18)[31],UE8S(16)[30],UE8T(16)[30],UE8U(18)[31],\n" " UE8V(18)[31],UE8W(16)[30],UE8Y(18)[31],UE8Z(18)[31],UE9I(18)[31],\n" " UE9M(17)[30],UE9P(18)[31],UE9S(16),UE9T(16),UE9V(18)[31],UE9W(16),\n" " UF0T(18)[32],UF8H(18)[31],UF8I(18)[31],UF8O(18)[31],UF8P(18)[31],\n" " UF8S(16)[30],UF8T(16)[30],UF8U(18)[31],UF8V(18)[31],UF8W(16)[30],\n" " UF8Y(18)[31],UF8Z(18)[31],UF9I(18)[31],UF9M(17)[30],UF9P(18)[31],UF9S(16),\n" " UF9T(16),UF9V(18)[31],UF9W(16),UG0T(18)[32],UG8H(18)[31],UG8I(18)[31],\n" " UG8O(18)[31],UG8P(18)[31],UG8S(16)[30],UG8T(16)[30],UG8U(18)[31],\n" " UG8V(18)[31],UG8W(16)[30],UG8Y(18)[31],UG8Z(18)[31],UG9I(18)[31],\n" " UG9M(17)[30],UG9P(18)[31],UG9S(16),UG9T(16),UG9V(18)[31],UG9W(16),\n" " UH0T(18)[32],UH8H(18)[31],UH8I(18)[31],UH8O(18)[31],UH8P(18)[31],\n" " UH8S(16)[30],UH8T(16)[30],UH8U(18)[31],UH8V(18)[31],UH8W(16)[30],\n" " UH8Y(18)[31],UH8Z(18)[31],UH9I(18)[31],UH9M(17)[30],UH9P(18)[31],UH9S(16),\n" " UH9T(16),UH9V(18)[31],UH9W(16),UI0T(18)[32],UI8H(18)[31],UI8I(18)[31],\n" " UI8O(18)[31],UI8P(18)[31],UI8S(16)[30],UI8T(16)[30],UI8U(18)[31],\n" " UI8V(18)[31],UI8W(16)[30],UI8Y(18)[31],UI8Z(18)[31],UI9I(18)[31],\n" " UI9M(17)[30],UI9P(18)[31],UI9S(16),UI9T(16),UI9V(18)[31],UI9W(16),\n" " =RA/DL6XK,=RA/IK0PRH(19)[24],=RA/IK0PRH/P(19)[24],=RA/KE5JA(19)[34],\n" " =RA/UR5WT(18)[32],=RA/UT5IA(19)[23],=UE80C(19)[33];\n" "Uzbekistan: 17: 30: AS: 41.40: -63.97: -5.0: UK:\n" " UJ,UK,UL,UM;\n" "Kazakhstan: 17: 30: AS: 48.17: -65.18: -5.0: UN:\n" " UN,UO,UP,UQ,UN0D[31],UN0F[31],UN0G[31],UN0J[31],UN0Q[31],UN0V[31],\n" " UN1D[31],UN1F[31],UN1G[31],UN1J[31],UN1Q[31],UN1V[31],UN2D[31],UN2F[31],\n" " UN2G[31],UN2J[31],UN2Q[31],UN2V[31],UN3D[31],UN3F[31],UN3G[31],UN3J[31],\n" " UN3Q[31],UN3V[31],UN4D[31],UN4F[31],UN4G[31],UN4J[31],UN4Q[31],UN4V[31],\n" " UN5D[31],UN5F[31],UN5G[31],UN5J[31],UN5Q[31],UN5V[31],UN6D[31],UN6F[31],\n" " UN6G[31],UN6J[31],UN6Q[31],UN6V[31],UN7D[31],UN7F[31],UN7G[31],UN7J[31],\n" " UN7Q[31],UN7V[31],UN8D[31],UN8F[31],UN8G[31],UN8J[31],UN8Q[31],UN8V[31],\n" " UN9D[31],UN9F[31],UN9G[31],UN9J[31],UN9Q[31],UN9V[31],UO0D[31],UO0F[31],\n" " UO0G[31],UO0J[31],UO0Q[31],UO0V[31],UO1D[31],UO1F[31],UO1G[31],UO1J[31],\n" " UO1Q[31],UO1V[31],UO2D[31],UO2F[31],UO2G[31],UO2J[31],UO2Q[31],UO2V[31],\n" " UO3D[31],UO3F[31],UO3G[31],UO3J[31],UO3Q[31],UO3V[31],UO4D[31],UO4F[31],\n" " UO4G[31],UO4J[31],UO4Q[31],UO4V[31],UO5D[31],UO5F[31],UO5G[31],UO5J[31],\n" " UO5Q[31],UO5V[31],UO6D[31],UO6F[31],UO6G[31],UO6J[31],UO6Q[31],UO6V[31],\n" " UO7D[31],UO7F[31],UO7G[31],UO7J[31],UO7Q[31],UO7V[31],UO8D[31],UO8F[31],\n" " UO8G[31],UO8J[31],UO8Q[31],UO8V[31],UO9D[31],UO9F[31],UO9G[31],UO9J[31],\n" " UO9Q[31],UO9V[31],UP0D[31],UP0F[31],UP0G[31],UP0J[31],UP0Q[31],UP0V[31],\n" " UP1D[31],UP1F[31],UP1G[31],UP1J[31],UP1Q[31],UP1V[31],UP2D[31],UP2F[31],\n" " UP2G[31],UP2J[31],UP2Q[31],UP2V[31],UP3D[31],UP3F[31],UP3G[31],UP3J[31],\n" " UP3Q[31],UP3V[31],UP4D[31],UP4F[31],UP4G[31],UP4J[31],UP4Q[31],UP4V[31],\n" " UP5D[31],UP5F[31],UP5G[31],UP5J[31],UP5Q[31],UP5V[31],UP6D[31],UP6F[31],\n" " UP6G[31],UP6J[31],UP6Q[31],UP6V[31],UP7D[31],UP7F[31],UP7G[31],UP7J[31],\n" " UP7Q[31],UP7V[31],UP8D[31],UP8F[31],UP8G[31],UP8J[31],UP8Q[31],UP8V[31],\n" " UP9D[31],UP9F[31],UP9G[31],UP9J[31],UP9Q[31],UP9V[31],UQ0D[31],UQ0F[31],\n" " UQ0G[31],UQ0J[31],UQ0Q[31],UQ0V[31],UQ1D[31],UQ1F[31],UQ1G[31],UQ1J[31],\n" " UQ1Q[31],UQ1V[31],UQ2D[31],UQ2F[31],UQ2G[31],UQ2J[31],UQ2Q[31],UQ2V[31],\n" " UQ3D[31],UQ3F[31],UQ3G[31],UQ3J[31],UQ3Q[31],UQ3V[31],UQ4D[31],UQ4F[31],\n" " UQ4G[31],UQ4J[31],UQ4Q[31],UQ4V[31],UQ5D[31],UQ5F[31],UQ5G[31],UQ5J[31],\n" " UQ5Q[31],UQ5V[31],UQ6D[31],UQ6F[31],UQ6G[31],UQ6J[31],UQ6Q[31],UQ6V[31],\n" " UQ7D[31],UQ7F[31],UQ7G[31],UQ7J[31],UQ7Q[31],UQ7V[31],UQ8D[31],UQ8F[31],\n" " UQ8G[31],UQ8J[31],UQ8Q[31],UQ8V[31],UQ9D[31],UQ9F[31],UQ9G[31],UQ9J[31],\n" " UQ9Q[31],UQ9V[31];\n" "Ukraine: 16: 29: EU: 50.00: -30.00: -2.0: UR:\n" " EM,EN,EO,U5,UR,US,UT,UU,UV,UW,UX,UY,UZ;\n" "Antigua & Barbuda: 08: 11: NA: 17.07: 61.80: 4.0: V2:\n" " V2;\n" "Belize: 07: 11: NA: 16.97: 88.67: 6.0: V3:\n" " V3;\n" "St. Kitts & Nevis: 08: 11: NA: 17.37: 62.78: 4.0: V4:\n" " V4;\n" "Namibia: 38: 57: AF: -22.00: -17.00: -1.0: V5:\n" " V5;\n" "Micronesia: 27: 65: OC: 6.88: -158.20: -10.0: V6:\n" " V6;\n" "Marshall Islands: 31: 65: OC: 9.08: -167.33: -12.0: V7:\n" " V7;\n" "Brunei Darussalam: 28: 54: OC: 4.50: -114.60: -8.0: V8:\n" " V8;\n" "Canada: 05: 09: NA: 44.35: 78.75: 5.0: VE:\n" " CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,XL,XM,CF2[4],CG2[4],CH1,CH2(2),CI0(2)[4],\n" " CI1(1)[2],CI2,CJ2[4],CK2[4],CY1,CY2(2),CZ0(2)[4],CZ1(1)[2],CZ2,VA2[4],\n" " VB2[4],VC2[4],VD1,VD2(2),VE2[4],VF0(2)[4],VF1(1)[2],VF2,VG2[4],VO1,VO2(2),\n" " VX2[4],VY0(2)[4],VY1(1)[2],VY2,XJ1,XJ2(2),XK0(2)[4],XK1(1)[2],XK2,XL2[4],\n" " XM2[4],XN1,XN2(2),XO0(2)[4],XO1(1)[2],XO2,=VER20120918,=VA2PL(2)[4],\n" " =VE2AEJ(4)[4],=VE2CSI(2)[4],=VE2DXY(2)[4],=VE2EKA(2)[4],=VE2ENB(2)[4],\n" " =VE2EW(2)[4],=VE2FK[9],=VE2GSO(2)[4],=VE2HRI(2)[4],=VE2III(2)[4],\n" " =VE2IM(2)[4],=VE2TKH(2)[4],=VE2XB/3(4)[4],=VY0PW(4)[3];\n" "Australia: 30: 59: OC: -23.70: -132.33: -10.0: VK:\n" " AX,VH,VI,VJ,VK,VL,VM,VN,VZ,AX4[55],VH4[55],VI4[55],VJ4[55],VK4[55],\n" " VL4[55],VM4[55],VN4[55],VZ4[55];\n" "Heard Island: 39: 68: AF: -53.08: -73.50: -5.0: VK0H:\n" " =VK0IR;\n" "Macquarie Island: 30: 60: OC: -54.60: -158.88: -10.0: VK0M:\n" " =VK0TH;\n" "Cocos (Keeling) Islands: 29: 54: OC: -12.15: -96.82: -6.5: VK9C:\n" " AX9C,AX9Y,VH9C,VH9Y,VI9C,VI9Y,VJ9C,VJ9Y,VK9C,VK9Y,VL9C,VL9Y,VM9C,VM9Y,\n" " VN9C,VN9Y,VZ9C,VZ9Y,=VK9AA;\n" "Lord Howe Island: 30: 60: OC: -31.55: -159.08: -10.5: VK9L:\n" " AX9L,VH9L,VI9L,VJ9L,VK9L,VL9L,VM9L,VN9L,VZ9L,=VK9FLHI;\n" "Mellish Reef: 30: 56: OC: -17.40: -155.85: -10.0: VK9M:\n" " AX9M,VH9M,VI9M,VJ9M,VK9M,VL9M,VM9M,VN9M,VZ9M;\n" "Norfolk Island: 32: 60: OC: -29.03: -167.93: -11.5: VK9N:\n" " AX9,VH9,VI9,VJ9,VK9,VL9,VM9,VN9,VZ9;\n" "Willis Island: 30: 55: OC: -16.22: -150.02: -10.0: VK9W:\n" " AX9W,AX9Z,VH9W,VH9Z,VI9W,VI9Z,VJ9W,VJ9Z,VK9W,VK9Z,VL9W,VL9Z,VM9W,VM9Z,\n" " VN9W,VN9Z,VZ9W,VZ9Z;\n" "Christmas Island: 29: 54: OC: -10.48: -105.63: -7.0: VK9X:\n" " AX9X,VH9X,VI9X,VJ9X,VK9X,VL9X,VM9X,VN9X,VZ9X;\n" "Anguilla: 08: 11: NA: 18.23: 63.00: 4.0: VP2E:\n" " VP2E;\n" "Montserrat: 08: 11: NA: 16.75: 62.18: 4.0: VP2M:\n" " VP2M;\n" "British Virgin Islands: 08: 11: NA: 18.33: 64.75: 4.0: VP2V:\n" " VP2V;\n" "Turks & Caicos Islands: 08: 11: NA: 21.77: 71.75: 5.0: VP5:\n" " VP5,VQ5;\n" "Pitcairn Island: 32: 63: OC: -24.35: 128.32: 8.0: VP6:\n" " VP6;\n" "Ducie Island: 32: 63: OC: -24.70: 124.80: 8.0: VP6/d:\n" " =VP6DX;\n" "Falkland Islands: 13: 16: SA: -51.63: 58.72: 4.0: VP8:\n" " VP8;\n" "South Georgia Island: 13: 73: SA: -54.48: 37.08: 2.0: VP8/g:\n" " =VP8SGK;\n" "South Shetland Islands: 13: 73: SA: -62.08: 58.67: 4.0: VP8/h:\n" " CE9,XR9,=DT8A,=HF0POL,=RI1ANA,=RI1ANF,=RI1ANF/P;\n" "South Orkney Islands: 13: 73: SA: -60.60: 45.55: 3.0: VP8/o:\n" " =LU1ZA;\n" "South Sandwich Islands: 13: 73: SA: -58.43: 26.33: 2.0: VP8/s:\n" " =VP8THU;\n" "Bermuda: 05: 11: NA: 32.32: 64.73: 4.0: VP9:\n" " VP9;\n" "Chagos Islands: 39: 41: AF: -7.32: -72.42: -6.0: VQ9:\n" " VQ9;\n" "Hong Kong: 24: 44: AS: 22.28: -114.18: -8.0: VR:\n" " VR;\n" "India: 22: 41: AS: 22.50: -77.58: -5.5: VU:\n" " 8T,8U,8V,8W,8X,8Y,AT,AU,AV,AW,VT,VU,VV,VW;\n" "Andaman & Nicobar Is.: 26: 49: AS: 12.37: -92.78: -5.5: VU4:\n" " VU4;\n" "Lakshadweep Islands: 22: 41: AS: 11.23: -72.78: -5.5: VU7:\n" " VU7;\n" "Mexico: 06: 10: NA: 24.00: 102.00: 6.0: XE:\n" " 4A,4B,4C,6D,6E,6F,6G,6H,6I,6J,XA,XB,XC,XD,XE,XF,XG,XH,XI;\n" "Revillagigedo: 06: 10: NA: 18.77: 110.97: 7.0: XF4:\n" " 4A4,4B4,4C4,6D4,6E4,6F4,6G4,6H4,6I4,6J4,XA4,XB4,XC4,XD4,XE4,XF0,XF4,XG4,\n" " XH4,XI4;\n" "Burkina Faso: 35: 46: AF: 12.00: 2.00: 0.0: XT:\n" " XT;\n" "Cambodia: 26: 49: AS: 12.93: -105.13: -7.0: XU:\n" " XU;\n" "Laos: 26: 49: AS: 18.20: -104.55: -7.0: XW:\n" " XW;\n" "Macao: 24: 44: AS: 22.10: -113.50: -8.0: XX9:\n" " XX9;\n" "Myanmar: 26: 49: AS: 20.00: -96.37: -6.5: XZ:\n" " XY,XZ;\n" "Afghanistan: 21: 40: AS: 34.70: -65.80: -4.5: YA:\n" " T6,YA;\n" "Indonesia: 28: 51: OC: -7.30: -109.88: -7.0: YB:\n" " 7A,7B,7C,7D,7E,7F,7G,7H,7I,8A,8B,8C,8D,8E,8F,8G,8H,8I,JZ,PK,PL,PM,PN,PO,\n" " YB,YC,YD,YE,YF,YG,YH,YB0[54],YB1[54],YB2[54],YB3[54],YB4[54],YB5[54],\n" " YB6[54],YB7[54],YB8[54],YC0[54],YC1[54],YC2[54],YC3[54],YC4[54],YC5[54],\n" " YC6[54],YC7[54],YC8[54],YD0[54],YD1[54],YD2[54],YD3[54],YD4[54],YD5[54],\n" " YD6[54],YD7[54],YD8[54],YE0[54],YE1[54],YE2[54],YE3[54],YE4[54],YE5[54],\n" " YE6[54],YE7[54],YE8[54],YF0[54],YF1[54],YF2[54],YF3[54],YF4[54],YF5[54],\n" " YF6[54],YF7[54],YF8[54],YG0[54],YG1[54],YG2[54],YG3[54],YG4[54],YG5[54],\n" " YG6[54],YG7[54],YG8[54],YH0[54],YH1[54],YH2[54],YH3[54],YH4[54],YH5[54],\n" " YH6[54],YH7[54],YH8[54];\n" "Iraq: 21: 39: AS: 33.92: -42.78: -3.0: YI:\n" " HN,YI;\n" "Vanuatu: 32: 56: OC: -17.67: -168.38: -11.0: YJ:\n" " YJ;\n" "Syria: 20: 39: AS: 35.38: -38.20: -2.0: YK:\n" " 6C,YK;\n" "Latvia: 15: 29: EU: 57.03: -24.65: -2.0: YL:\n" " YL;\n" "Nicaragua: 07: 11: NA: 12.88: 85.05: 6.0: YN:\n" " H6,H7,HT,YN;\n" "Romania: 20: 28: EU: 45.78: -24.70: -2.0: YO:\n" " YO,YP,YQ,YR;\n" "El Salvador: 07: 11: NA: 14.00: 89.00: 6.0: YS:\n" " HU,YS;\n" "Serbia: 15: 28: EU: 44.00: -21.00: -1.0: YU:\n" " 4N,YT,YU;\n" "Venezuela: 09: 12: SA: 8.00: 66.00: 4.5: YV:\n" " 4M,YV,YW,YX,YY;\n" "Aves Island: 08: 11: NA: 15.67: 63.60: 4.0: YV0:\n" " 4M0,YV0,YW0,YX0,YY0;\n" "Zimbabwe: 38: 53: AF: -18.00: -31.00: -2.0: Z2:\n" " Z2;\n" "Macedonia: 15: 28: EU: 41.60: -21.65: -1.0: Z3:\n" " Z3;\n" "Kosovo: 15: 28: EU: 42.67: -21.17: -1.0: *Z6:\n" " Z6,=YU8/IV3LAR;\n" "Republic of South Sudan: 34: 48: AF: 4.85: -31.60: -3.0: Z8:\n" " Z8;\n" "Albania: 15: 28: EU: 41.00: -20.00: -1.0: ZA:\n" " ZA;\n" "Gibraltar: 14: 37: EU: 36.15: 5.37: -1.0: ZB:\n" " ZB,ZG;\n" "UK Base Areas on Cyprus: 20: 39: AS: 35.32: -33.57: -2.0: ZC4:\n" " ZC4;\n" "St. Helena: 36: 66: AF: -15.97: 5.72: 0.0: ZD7:\n" " ZD7;\n" "Ascension Island: 36: 66: AF: -7.93: 14.37: 0.0: ZD8:\n" " ZD8;\n" "Tristan da Cunha & Gough: 38: 66: AF: -37.13: 12.30: 0.0: ZD9:\n" " ZD9;\n" "Cayman Islands: 08: 11: NA: 19.32: 81.22: 5.0: ZF:\n" " ZF;\n" "Tokelau Islands: 31: 62: OC: -9.40: 171.20: -13.0: ZK3:\n" " ZK3;\n" "New Zealand: 32: 60: OC: -41.83: -173.27: -12.0: ZL:\n" " ZK,ZL,ZM;\n" "Chatham Islands: 32: 60: OC: -43.85: 176.48: -12.75: ZL7:\n" " ZL7,ZM7;\n" "Kermadec Islands: 32: 60: OC: -29.25: 177.92: -12.0: ZL8:\n" " ZL8,ZM8;\n" "Auckland & Campbell Is.: 32: 60: OC: -50.73: -166.10: -12.0: ZL9:\n" " ZL9,ZM9;\n" "Paraguay: 11: 14: SA: -25.27: 57.67: 4.0: ZP:\n" " ZP;\n" "South Africa: 38: 57: AF: -29.07: -22.63: -2.0: ZS:\n" " H5,S4,S8,V9,ZR,ZS,ZT,ZU,=ZS1CT/L,=ZS1FRC/L,=ZS5ZLB/L;\n" "Pr. Edward & Marion Is.: 38: 57: AF: -46.88: -37.72: -3.0: ZS8:\n" " ZR8,ZS8,ZT8,ZU8;\n" ; const char txt_master[65525] = "#\n" "# RELEASE 2010.08.09.00\n" "# by Bob Raymond, WA1Z\n" "#\n" "2E0AOZ\n" "2E0BFJ\n" "2E0BMG\n" "2E0BPP\n" "2E0BVP\n" "2E0CNL\n" "2E0CPT\n" "2E0CRD\n" "2E0CTT\n" "2E0CVN\n" "2E0DBD/P\n" "2E0DYM\n" "2E0EMF\n" "2E0FFQ\n" "2E0FPC\n" "2E0FSR\n" "2E0GMW\n" "2E0GVG\n" "2E0HEP\n" "2E0HOQ\n" "2E0HQD\n" "2E0HTS\n" "2E0IIM\n" "2E0IJK\n" "2E0IMS\n" "2E0IMT\n" "2E0IMW\n" "2E0IXC\n" "2E0JKD\n" "2E0JWW\n" "2E0JYK\n" "2E0KGV/P\n" "2E0KIM\n" "2E0KLD\n" "2E0KYI\n" "2E0LIB\n" "2E0LMA\n" "2E0LMG\n" "2E0LPA\n" "2E0LSB\n" "2E0MAS\n" "2E0MCA\n" "2E0MMI\n" "2E0NJC\n" "2E0NKC\n" "2E0NOC\n" "2E0OCC\n" "2E0PLA\n" "2E0PSW\n" "2E0RAK\n" "2E0RCM\n" "2E0RCV\n" "2E0RFS\n" "2E0RJM\n" "2E0RKY\n" "2E0RUS\n" "2E0SFC\n" "2E0SMJ\n" "2E0SPF\n" "2E0SQL\n" "2E0TAD\n" "2E0TAL\n" "2E0TGS\n" "2E0TJU\n" "2E0TQR\n" "2E0UNN\n" "2E0VDS\n" "2E0WAW\n" "2E0WDS\n" "2E0WDX\n" "2E0WHG\n" "2E0WMG/P\n" "2E0WPX\n" "2E0XIK\n" "2E0XIS\n" "2E0YQC\n" "2E0ZIG\n" "2E0ZWW\n" "2E1AXL\n" "2E1DFI\n" "2E1FVS\n" "2E1OKT\n" "2I0BIW\n" "2I0BSA\n" "2I0FLO\n" "2I0MVP\n" "2I0SAI\n" "2J0RZD\n" "2M0BGT\n" "2M0FSF\n" "2M0GOV\n" "2M0IVG\n" "2M0KLL\n" "2M0KPE\n" "2M0WMJ\n" "2M0XAT\n" "2U0ARE\n" "2W0IJL\n" "2W0XTP\n" "2W0ZAE\n" "2W0ZJA\n" "3A2MD\n" "3A2MG\n" "3A2MW\n" "3B8GT\n" "3D2KJ\n" "3D2MJ\n" "3DA0DJ\n" "3DA0WW\n" "3G1C\n" "3G1X\n" "3G3V\n" "3V3S\n" "3V8BB\n" "3V8CB\n" "3V8HQ\n" "3V8SF\n" "3V8SS\n" "3V8ST\n" "3V9A\n" "3W1M\n" "3W3W\n" "3X5A\n" "3XY6D\n" "3Z30C\n" "3Z40KP\n" "3Z50KPN\n" "3Z70RG\n" "3Z80PZK\n" "3Z8Z\n" "3Z90PR\n" "3Z9CESJ\n" "3Z9TA\n" "41N14O\n" "4A1B\n" "4A1DXXE\n" "4A2S\n" "4B1EE\n" "4B1KK\n" "4B2AU\n" "4B2S\n" "4B2WK\n" "4D1N\n" "4F1AL\n" "4H1T\n" "4H9RG\n" "4J3M\n" "4J5A\n" "4J7WMF\n" "4J9M\n" "4K0CW\n" "4K3K\n" "4K4K\n" "4K6FO\n" "4K8M\n" "4K9W\n" "4L0A\n" "4L0HQ\n" "4L1BR\n" "4L1FP\n" "4L1MA\n" "4L1UN\n" "4L2M\n" "4L3A\n" "4L3Y\n" "4L4CC\n" "4L6DL\n" "4L6QC\n" "4L7O\n" "4L8A\n" "4L9QQ\n" "4M1F\n" "4M1M\n" "4M4C\n" "4M4V\n" "4M5DX\n" "4M5IR\n" "4M5RY\n" "4O1OTA\n" "4O3A\n" "4O3RR\n" "4O3TT\n" "4O3Z\n" "4O4A\n" "4O7A\n" "4O8A\n" "4S7EA\n" "4S7NE\n" "4U10NPT\n" "4U1ITU\n" "4U1UN\n" "4U1VIC\n" "4U1WB\n" "4U30VIC\n" "4V4JR\n" "4X0A\n" "4X0B\n" "4X0C\n" "4X0G\n" "4X0T\n" "4X0V\n" "4X1AS\n" "4X1DF\n" "4X1IM\n" "4X1VF\n" "4X2M\n" "4X3HQ\n" "4X4DK\n" "4X4DZ\n" "4X4FC\n" "4X4FR\n" "4X4JU\n" "4X4PG\n" "4X4WN\n" "4X6DK\n" "4X6FK\n" "4X6FR\n" "4X6FU\n" "4X6KA\n" "4X6TF\n" "4X6UU\n" "4X6ZK\n" "4X6ZM\n" "4X6ZQ\n" "4Z1UF\n" "4Z4DX\n" "4Z4KX\n" "4Z4OQ\n" "4Z4TJ\n" "4Z4TL\n" "4Z4UT\n" "4Z4WR\n" "4Z5AD\n" "4Z5AY\n" "4Z5CP\n" "4Z5CX\n" "4Z5FI\n" "4Z5IW\n" "4Z5J\n" "4Z5JU\n" "4Z5KO\n" "4Z5KZ\n" "4Z5LA\n" "4Z5LU\n" "4Z5LX\n" "4Z5LZ\n" "4Z5ML\n" "4Z5MU\n" "4Z5MV\n" "4Z5MY\n" "4Z5OZ\n" "4Z5PJ\n" "4Z5PS\n" "4Z5QQ\n" "4Z5ST\n" "4Z5TA\n" "4Z5TK\n" "4Z5UN\n" "4Z8BB\n" "4Z8DT\n" "5B/AJ2O\n" "5B/G3RXQ\n" "5B/G4IRN\n" "5B/HA5PP\n" "5B/HG3IPA\n" "5B/KC2TIZ\n" "5B/US8ITL\n" "5B/UT0U\n" "5B/W2TAA\n" "5B4AGM\n" "5B4AGN\n" "5B4AHJ\n" "5B4AIA\n" "5B4AIF\n" "5B4AII\n" "5B4AIX\n" "5B4AIZ\n" "5B4KH\n" "5B4XF\n" "5B4ZN\n" "5B8AD\n" "5C2P\n" "5C5T\n" "5C5W\n" "5D0IPY\n" "5D5A\n" "5H1HS\n" "5H2WK\n" "5H3EE\n" "5J1A\n" "5K0CW\n" "5K0T\n" "5N0HQ\n" "5N0OCH\n" "5N3CPR\n" "5N7M\n" "5P0O\n" "5P2A\n" "5P3WW\n" "5P5CW\n" "5P5N\n" "5P5X\n" "5P9X\n" "5Q1A\n" "5Q2J\n" "5Q2T\n" "5Q8A\n" "5R8FU\n" "5R8KD\n" "5R8ZO\n" "5U5U\n" "5W0KH\n" "5W0OU\n" "5W0YA\n" "5X1AB\n" "5X1NH\n" "5X4X\n" "5Z4/DL8NBE\n" "5Z4/RW1AU\n" "5Z4JC\n" "6K2CFI\n" "6K2DFG\n" "6K2DIO\n" "6K2EJJ\n" "6K2FDL\n" "6K2GCW\n" "6K2GDT\n" "6K5AQY\n" "6K5AYC\n" "6K5BHZ\n" "6K5BLW\n" "6K5BUI\n" "6K5BXQ\n" "6K5XQE\n" "6K5YHX\n" "6L0NJ\n" "6M0HZ\n" "6M0HZ/2\n" "6M0MM\n" "6V7E\n" "6V7M\n" "6V7N\n" "6V7Q\n" "6V7V\n" "6W/DL2RMC\n" "6W/PA3EWP\n" "6W1RW\n" "6W1RY\n" "6W1SE\n" "6W1SJ\n" "6W2SC\n" "6W7RV\n" "6Y0FF\n" "6Y1LZ\n" "6Y1V\n" "6Y1X\n" "6Y5CR\n" "6Y5IC\n" "6Y5JH\n" "6Y5WJ\n" "6Y7J\n" "6Y9V\n" "7J1AAI\n" "7J1ABD\n" "7J1AQH\n" "7J1BBC\n" "7J1YAJ\n" "7J2YAF\n" "7J4AAL\n" "7J7ACT\n" "7J9AAD\n" "7K1CPT\n" "7K1DEE\n" "7K1EQG\n" "7K1MAG\n" "7K1PTO\n" "7K1PTT\n" "7K1SGX\n" "7K2GMJ\n" "7K3BKZ\n" "7K3PCI\n" "7K3QPL\n" "7K4DHB\n" "7K4GUR\n" "7K4NBV\n" "7K4PTY\n" "7K4QOK\n" "7K4TSM\n" "7K4XNN\n" "7L1FFH\n" "7L1JHN\n" "7L1QWK\n" "7L1WII\n" "7L2OHM\n" "7L2PDJ\n" "7L2QXT/3\n" "7L3DGP\n" "7L3KJV\n" "7L3LYK\n" "7L4IOU\n" "7M1MCT\n" "7M1MCU\n" "7M2ALP\n" "7M2PSC\n" "7M3IYU\n" "7M3QQP/1\n" "7M4CDX\n" "7M4HXF\n" "7N1PRD/0\n" "7N2CQN\n" "7N2DAB\n" "7N2JNN\n" "7N2JZT\n" "7N2SPK\n" "7N2TCB\n" "7N2TCF\n" "7N2TNI\n" "7N2TRM\n" "7N2UQC\n" "7N4AVW\n" "7N4CLI\n" "7N4CPT\n" "7N4KDU\n" "7N4LHJ\n" "7N4MXU\n" "7N4NGR\n" "7N4NIK\n" "7N4NQR\n" "7N4QCQ\n" "7N4QID\n" "7N4WPY\n" "7N4WZI\n" "7N4XAL\n" "7Q7BP\n" "7S0X\n" "7S2E\n" "7S3A\n" "7S3F\n" "7S4B\n" "7S5C\n" "7S5Q\n" "7S5S\n" "7S7V\n" "7X0RY\n" "7Z1CQ\n" "7Z1HB\n" "7Z1HL\n" "7Z1SJ\n" "7Z1TT\n" "8J1ASAHI/1\n" "8J1AXA/1\n" "8J1ITU\n" "8J1YDXC\n" "8J4P\n" "8J7SK\n" "8N1HQ\n" "8N1Y\n" "8N3HQ\n" "8N4HQ\n" "8N5A\n" "8N8HQ\n" "8P0P\n" "8P3A\n" "8P5A\n" "8P6AW\n" "8P6BX\n" "8P6ER\n" "8P6EX\n" "8P6JD\n" "8P9FW\n" "8P9NX\n" "8P9PB\n" "8P9SS\n" "8Q7DV\n" "8Q7SC\n" "8S0A\n" "8S0C\n" "8S0C/5\n" "8S0W\n" "8S4S\n" "8S5W\n" "8S5X\n" "8S6E\n" "9A/AC6DD\n" "9A/DL1DVP\n" "9A/DL2RBB\n" "9A/DL3VTA\n" "9A/E73T\n" "9A/E75DX\n" "9A/OM2FY\n" "9A/OM8A\n" "9A/S50R\n" "9A/S51DX\n" "9A/S53AU/P\n" "9A/VE3ZIK\n" "9A09P\n" "9A0AA\n" "9A0HQ\n" "9A0M\n" "9A0W\n" "9A1A\n" "9A1AA\n" "9A1ACD\n" "9A1BM\n" "9A1CAL\n" "9A1CCB\n" "9A1CCY\n" "9A1CDO\n" "9A1CFN\n" "9A1CFR\n" "9A1CIG\n" "9A1CKL\n" "9A1CMA\n" "9A1CMS\n" "9A1CVG\n" "9A1DL\n" "9A1HDE\n" "9A1MB\n" "9A1MM\n" "9A1O\n" "9A1P\n" "9A1UN\n" "9A1VZD\n" "9A1ZZ\n" "9A2AA\n" "9A2AJ\n" "9A2BD\n" "9A2BW\n" "9A2CD\n" "9A2CW\n" "9A2CY\n" "9A2D\n" "9A2DI\n" "9A2DQ\n" "9A2DS\n" "9A2EA\n" "9A2EU\n" "9A2EY\n" "9A2F\n" "9A2FW\n" "9A2GA\n" "9A2GF\n" "9A2GW\n" "9A2HQ\n" "9A2JG\n" "9A2JH\n" "9A2JK\n" "9A2KD\n" "9A2L\n" "9A2LM\n" "9A2MF\n" "9A2N\n" "9A2NA\n" "9A2NO\n" "9A2NY\n" "9A2OU\n" "9A2QF\n" "9A2QF/P\n" "9A2R\n" "9A2RD\n" "9A2SY\n" "9A2TD\n" "9A2TN\n" "9A2U\n" "9A2UA\n" "9A2UU\n" "9A2VJ\n" "9A2VQ\n" "9A2VR\n" "9A2WJ\n" "9A2WT\n" "9A2X\n" "9A2Y\n" "9A2YM\n" "9A2Z\n" "9A2ZR\n" "9A3AAX\n" "9A3AG\n" "9A3AGS\n" "9A3ALD\n" "9A3ARN\n" "9A3B\n" "9A3CCB\n" "9A3CNN\n" "9A3DF\n" "9A3FY\n" "9A3GA\n" "9A3GI\n" "9A3GL\n" "9A3GS\n" "9A3IH\n" "9A3IJ\n" "9A3IV\n" "9A3IW\n" "9A3JB\n" "9A3KS\n" "9A3LE\n" "9A3MA\n" "9A3MJ\n" "9A3ML\n" "9A3MN\n" "9A3MR\n" "9A3ND\n" "9A3OS\n" "9A3QB\n" "9A3SM\n" "9A3ST\n" "9A3TA\n" "9A3TN\n" "9A3TR\n" "9A3TU\n" "9A3VM\n" "9A3W/P\n" "9A3WX\n" "9A3XV\n" "9A3Y\n" "9A3ZC\n" "9A3ZI\n" "9A4A\n" "9A4AA\n" "9A4BA\n" "9A4BB\n" "9A4BL\n" "9A4BT\n" "9A4C\n" "9A4D\n" "9A4GM\n" "9A4J\n" "9A4KW\n" "9A4M\n" "9A4MF\n" "9A4QV\n" "9A4SS\n" "9A4TT\n" "9A4U\n" "9A4VM\n" "9A4W\n" "9A4WW\n" "9A4WY\n" "9A4ZZ\n" "9A4ZZ/P\n" "9A50KDE\n" "9A5AMC\n" "9A5AMG\n" "9A5AN\n" "9A5ANB\n" "9A5AX\n" "9A5BB\n" "9A5BDA\n" "9A5BS\n" "9A5BTP\n" "9A5CW\n" "9A5CY\n" "9A5D\n" "9A5DU\n" "9A5E\n" "9A5K\n" "9A5MT\n" "9A5PV\n" "9A5RJ\n" "9A5SM\n" "9A5ST\n" "9A5V\n" "9A5W\n" "9A5X\n" "9A5Y\n" "9A5ZM\n" "9A5ZP\n" "9A6A\n" "9A6AKD\n" "9A6AR\n" "9A6B\n" "9A6C\n" "9A6D\n" "9A6GWQ\n" "9A6ILI\n" "9A6K\n" "9A6KTB\n" "9A6M\n" "9A6NDD\n" "9A6NDH\n" "9A6NNS\n" "9A6R\n" "9A6SJU\n" "9A6Z\n" "9A6ZT\n" "9A7A\n" "9A7B\n" "9A7BDJ\n" "9A7D\n" "9A7IMR\n" "9A7IUP\n" "9A7KDT\n" "9A7KJI\n" "9A7P\n" "9A7R\n" "9A7T\n" "9A7V\n" "9A7W\n" "9A7WA\n" "9A7YY\n" "9A800VZ\n" "9A8A\n" "9A8AW\n" "9A8M\n" "9A8MM\n" "9A8W\n" "9A8WW\n" "9A9A\n" "9A9DR\n" "9A9L\n" "9A9R\n" "9A9SF\n" "9A9XX\n" "9A9YY\n" "9G5XA\n" "9G5ZZ\n" "9H1CG\n" "9H1DE\n" "9H1NB\n" "9H1SP\n" "9H1XT\n" "9H3HH\n" "9H3TX\n" "9J2BO\n" "9J3A\n" "9K/K6PAU\n" "9K2/SP4R\n" "9K2CQ\n" "9K2HN\n" "9K2K\n" "9K2MU\n" "9K2RA\n" "9K2YM\n" "9K9HQ\n" "9L0W\n" "9L1BTB\n" "9L5A\n" "9M2AX\n" "9M2CCO\n" "9M2CNC\n" "9M2CQC\n" "9M2IDJ\n" "9M2JKL\n" "9M2MRS\n" "9M2MT\n" "9M2NNM\n" "9M2TO\n" "9M4DXX\n" "9M6BG\n" "9M6BOB\n" "9M6BRC\n" "9M6LSC\n" "9M6NA\n" "9M6XRO\n" "9M6YBG\n" "9M8YY\n" "9M8Z\n" "9Q1EK\n" "9V1DE\n" "9V1PC\n" "9V1QQ\n" "9V1RH\n" "9V1UV\n" "9V1YC\n" "9W2NTO\n" "9Y/DL2DBE\n" "9Y4/DF8AN\n" "9Y4D\n" "9Y4HQ\n" "9Y4LDK\n" "9Y4VU\n" "9Y4W\n" "9Z4CP\n" "9Z4CT\n" "A25NW\n" "A31A\n" "A31KK\n" "A35A\n" "A35KL\n" "A35RK/P\n" "A41MX\n" "A41OR\n" "A45WG\n" "A45XR\n" "A47RS\n" "A61AB\n" "A61BK\n" "A61C\n" "A61KM\n" "A61M\n" "A61NA\n" "A61OO\n" "A62A\n" "A65BD\n" "A65BM\n" "A65BP\n" "A65CA\n" "A65DLH\n" "A7/M0FGA\n" "A71A\n" "A71BU\n" "A71BX\n" "A71CT\n" "A71CV\n" "A71EM\n" "A71FJ\n" "A73A\n" "A92GE\n" "A92GR\n" "AA0A\n" "AA0AW\n" "AA0BQ\n" "AA0CL\n" "AA0CX\n" "AA0DW\n" "AA0MZ\n" "AA0N\n" "AA0NK\n" "AA0QZ\n" "AA0RS\n" "AA0YY\n" "AA1AR\n" "AA1AR/4\n" "AA1BU\n" "AA1CA\n" "AA1DS\n" "AA1E\n" "AA1JD\n" "AA1JM\n" "AA1K\n" "AA1KS\n" "AA1LL\n" "AA1M\n" "AA1ME\n" "AA1O\n" "AA1ON\n" "AA1QD\n" "AA1QN\n" "AA1SB\n" "AA1SU\n" "AA1TR\n" "AA1V\n" "AA1VA\n" "AA1VT\n" "AA1VX\n" "AA1XV\n" "AA1YD\n" "AA1ZT\n" "AA2AD\n" "AA2DC\n" "AA2DR\n" "AA2DS\n" "AA2F\n" "AA2GS\n" "AA2IZ\n" "AA2JZ\n" "AA2KD\n" "AA2L\n" "AA2MF\n" "AA2MX\n" "AA2NA\n" "AA2NA/P\n" "AA2OI\n" "AA2UP\n" "AA2VK\n" "AA2WC\n" "AA2XB\n" "AA2YV\n" "AA2ZW\n" "AA3B\n" "AA3CS\n" "AA3DF\n" "AA3DW\n" "AA3E\n" "AA3I\n" "AA3II\n" "AA3JK\n" "AA3K\n" "AA3LX\n" "AA3RZ\n" "AA3S\n" "AA3SJ\n" "AA3SL\n" "AA3TH\n" "AA3TL\n" "AA3VA\n" "AA4A\n" "AA4AK\n" "AA4AK/1\n" "AA4CF\n" "AA4D\n" "AA4EA\n" "AA4FU\n" "AA4FX\n" "AA4GT\n" "AA4H\n" "AA4HV\n" "AA4II\n" "AA4KD\n" "AA4LR\n" "AA4MD\n" "AA4MJ\n" "AA4MM\n" "AA4N\n" "AA4NC\n" "AA4NU\n" "AA4Q\n" "AA4R\n" "AA4RP\n" "AA4S\n" "AA4SC\n" "AA4SD\n" "AA4U\n" "AA4UC\n" "AA4V\n" "AA4V/VP9\n" "AA4VV\n" "AA4W\n" "AA4WO\n" "AA4XA\n" "AA4XS\n" "AA4XX\n" "AA4YL\n" "AA4ZU\n" "AA4ZZ\n" "AA5AM\n" "AA5AT\n" "AA5AU\n" "AA5B\n" "AA5BE\n" "AA5BT\n" "AA5C\n" "AA5CH\n" "AA5CK\n" "AA5CO\n" "AA5EY\n" "AA5JG\n" "AA5L\n" "AA5LA\n" "AA5N\n" "AA5R/C6A\n" "AA5SH\n" "AA5TB\n" "AA5VU\n" "AA5VZ\n" "AA5X\n" "AA6AD\n" "AA6AE\n" "AA6CJ\n" "AA6DP\n" "AA6DW\n" "AA6DX\n" "AA6DY\n" "AA6E/1\n" "AA6EE\n" "AA6EV\n" "AA6G\n" "AA6IO\n" "AA6JJ\n" "AA6K\n" "AA6PW\n" "AA6RR\n" "AA6VB\n" "AA6VX\n" "AA6X\n" "AA6XV\n" "AA6XX\n" "AA6YX\n" "AA7A\n" "AA7AX\n" "AA7CP\n" "AA7CQ\n" "AA7DJ\n" "AA7DK\n" "AA7FG\n" "AA7FK\n" "AA7GS\n" "AA7IH\n" "AA7J\n" "AA7JV\n" "AA7ML\n" "AA7MN\n" "AA7MT\n" "AA7PJ\n" "AA7PM\n" "AA7RV\n" "AA7UI\n" "AA7X\n" "AA8BV\n" "AA8CH\n" "AA8DX\n" "AA8EB\n" "AA8EN\n" "AA8HH\n" "AA8HO\n" "AA8IA\n" "AA8IN\n" "AA8JL\n" "AA8L\n" "AA8LL\n" "AA8M\n" "AA8NT\n" "AA8OY\n" "AA8R\n" "AA8TK\n" "AA8UL\n" "AA8YN\n" "AA9CN\n" "AA9D\n" "AA9DA\n" "AA9DY\n" "AA9F\n" "AA9GG\n" "AA9GR\n" "AA9GZ\n" "AA9IK\n" "AA9IX\n" "AA9KH\n" "AA9L\n" "AA9LC\n" "AA9NF\n" "AA9RN\n" "AA9RR\n" "AA9RT\n" "AA9SJ\n" "AA9UF\n" "AA9VI\n" "AA9WJ\n" "AA9WS\n" "AA9ZZ\n" "AB0CD\n" "AB0DI\n" "AB0JM\n" "AB0LL\n" "AB0LR\n" "AB0OX\n" "AB0QN\n" "AB0RE\n" "AB0RX\n" "AB0S\n" "AB0TA\n" "AB0TO\n" "AB0TX\n" "AB0UK\n" "AB0VK\n" "AB0X\n" "AB0YM\n" "AB0YW\n" "AB0Z\n" "AB0ZO\n" "AB1BW\n" "AB1BX\n" "AB1CW\n" "AB1DD\n" "AB1DO\n" "AB1DZ\n" "AB1EP\n" "AB1FY\n" "AB1HD\n" "AB1HL\n" "AB1HO\n" "AB1HZ\n" "AB1J\n" "AB1JB\n" "AB1JM\n" "AB1KE\n" "AB1KW\n" "AB1U\n" "AB2DE\n" "AB2E\n" "AB2G\n" "AB2IO\n" "AB2KX\n" "AB2NI\n" "AB2NT\n" "AB2RC\n" "AB2SR\n" "AB2TC\n" "AB2TS\n" "AB2UV\n" "AB2VI\n" "AB2WW\n" "AB2XW\n" "AB2YS\n" "AB2ZI\n" "AB2ZL\n" "AB2ZT\n" "AB2ZY\n" "AB3AH\n" "AB3AI\n" "AB3AP\n" "AB3CX\n" "AB3EN\n" "AB3FH\n" "AB3FX\n" "AB3GB\n" "AB3GY\n" "AB3HP\n" "AB3IC\n" "AB4AR\n" "AB4BJ\n" "AB4DF\n" "AB4G\n" "AB4GG\n" "AB4H\n" "AB4I\n" "AB4IQ\n" "AB4JK\n" "AB4LE\n" "AB4OM\n" "AB4Q\n" "AB4RJ\n" "AB4SA\n" "AB4SF\n" "AB4SK\n" "AB4U\n" "AB4VF\n" "AB4VV\n" "AB4ZT\n" "AB5C\n" "AB5CC\n" "AB5DK\n" "AB5EU\n" "AB5GG\n" "AB5I\n" "AB5JN\n" "AB5JR\n" "AB5K\n" "AB5MM\n" "AB5NE\n" "AB5NX\n" "AB5RM\n" "AB5TY\n" "AB5WF\n" "AB5WS\n" "AB5X\n" "AB5XP\n" "AB5XZ\n" "AB5YI\n" "AB5ZA\n" "AB5ZA/7\n" "AB6CF\n" "AB6EZ\n" "AB6L\n" "AB6QM\n" "AB6QR\n" "AB6WM\n" "AB6Z\n" "AB7CB\n" "AB7E\n" "AB7FX\n" "AB7GP\n" "AB7LT\n" "AB7Q\n" "AB7R\n" "AB7RW\n" "AB7TJ\n" "AB8AL\n" "AB8BT\n" "AB8CI\n" "AB8CL\n" "AB8DD\n" "AB8DF\n" "AB8EU\n" "AB8FJ\n" "AB8IT\n" "AB8JR\n" "AB8K\n" "AB8OJ\n" "AB8PD\n" "AB8RL\n" "AB8RX\n" "AB8S\n" "AB8SA\n" "AB8SG\n" "AB8TO\n" "AB8UL\n" "AB8WI\n" "AB8XE\n" "AB8XG\n" "AB8YO\n" "AB8YY\n" "AB8YZ\n" "AB8ZX\n" "AB9AX\n" "AB9CA\n" "AB9DR\n" "AB9DU\n" "AB9H\n" "AB9HE\n" "AB9HH\n" "AB9KZ\n" "AB9LA\n" "AB9M\n" "AB9ML\n" "AB9MP\n" "AB9NH\n" "AB9OS\n" "AB9QH\n" "AB9QQ\n" "AB9QT\n" "AB9QX\n" "AB9RC\n" "AB9SJ\n" "AB9SO\n" "AB9TA\n" "AB9TE\n" "AB9TU\n" "AB9V\n" "AC0A\n" "AC0AX\n" "AC0BI\n" "AC0BR\n" "AC0BV\n" "AC0C\n" "AC0DQ\n" "AC0DS\n" "AC0E\n" "AC0GI\n" "AC0GJ\n" "AC0GQ\n" "AC0H\n" "AC0IU\n" "AC0IV\n" "AC0JX\n" "AC0KK\n" "AC0LL\n" "AC0MW\n" "AC0NB\n" "AC0OJ\n" "AC0P\n" "AC0PD\n" "AC0PJ\n" "AC0PR\n" "AC0QG\n" "AC0W\n" "AC0X\n" "AC1AA\n" "AC1J\n" "AC1L\n" "AC1O\n" "AC2AA\n" "AC2AC\n" "AC2CP\n" "AC2FM\n" "AC2K\n" "AC2N\n" "AC2T\n" "AC3C\n" "AC3D\n" "AC4AH\n" "AC4BV\n" "AC4CA\n" "AC4CA/5\n" "AC4GT\n" "AC4IK\n" "AC4M\n" "AC4MO\n" "AC4PQ\n" "AC4PY\n" "AC4S\n" "AC4TO\n" "AC4TT\n" "AC4WC\n" "AC4YD\n" "AC4ZH\n" "AC5BX\n" "AC5K\n" "AC5N\n" "AC5O\n" "AC5P\n" "AC5SW\n" "AC5ZG\n" "AC5ZS\n" "AC6DD\n" "AC6DX\n" "AC6E\n" "AC6EA\n" "AC6FU\n" "AC6HY\n" "AC6JA\n" "AC6LT\n" "AC6MV\n" "AC6N\n" "AC6NN\n" "AC6SL\n" "AC6T\n" "AC6VN\n" "AC6YY\n" "AC7A\n" "AC7AF\n" "AC7AP\n" "AC7CJ\n" "AC7FA\n" "AC7GL\n" "AC7GP\n" "AC7JM\n" "AC7JN\n" "AC7JW\n" "AC7JY\n" "AC7LK\n" "AC7MA\n" "AC7NK\n" "AC7NO\n" "AC7P\n" "AC7PN\n" "AC7T\n" "AC7UH\n" "AC7VA\n" "AC7ZG\n" "AC8AG\n" "AC8AP\n" "AC8AZ\n" "AC8BP\n" "AC8CY\n" "AC8E\n" "AC8EA\n" "AC8G\n" "AC8W\n" "AC8WV\n" "AC8Y\n" "AC9BP\n" "AC9S\n" "AC9X\n" "AD0H\n" "AD0NW\n" "AD0RB\n" "AD1B\n" "AD1C\n" "AD1DX\n" "AD1L\n" "AD1N\n" "AD2AM\n" "AD2H\n" "AD2L\n" "AD2P\n" "AD2TM\n" "AD2Z\n" "AD3J\n" "AD3PA\n" "AD4AA\n" "AD4C\n" "AD4CJ\n" "AD4EB\n" "AD4ES\n" "AD4G\n" "AD4IE\n" "AD4J\n" "AD4L\n" "AD4TJ\n" "AD4YQ\n" "AD4Z\n" "AD5A\n" "AD5C\n" "AD5CQ\n" "AD5EN\n" "AD5HR\n" "AD5HV\n" "AD5IN\n" "AD5IT\n" "AD5LU\n" "AD5MD\n" "AD5MN\n" "AD5Q\n" "AD5QB\n" "AD5ST\n" "AD5TJ\n" "AD5UQ\n" "AD5VC\n" "AD5VJ\n" "AD5WB\n" "AD5WI\n" "AD5XD\n" "AD5XM\n" "AD5YB\n" "AD5YJ\n" "AD5YU\n" "AD5ZA\n" "AD6C\n" "AD6DK\n" "AD6E\n" "AD6FR\n" "AD6GI\n" "AD6HF\n" "AD6HV\n" "AD6KA\n" "AD6KT\n" "AD6MJ\n" "AD6MT\n" "AD6OI\n" "AD6P\n" "AD6PB\n" "AD6RH\n" "AD6WL\n" "AD6Z\n" "AD6ZJ\n" "AD6ZR\n" "AD7AF\n" "AD7AJ\n" "AD7AV\n" "AD7BN\n" "AD7GL\n" "AD7GN\n" "AD7HE\n" "AD7HI\n" "AD7HK\n" "AD7J\n" "AD7JI\n" "AD7JX\n" "AD7KG\n" "AD7KI\n" "AD7L\n" "AD7LI\n" "AD7MD\n" "AD7MQ\n" "AD7OG\n" "AD7OV\n" "AD7PK\n" "AD7QL\n" "AD7RO\n" "AD7SF\n" "AD7SH\n" "AD7SI\n" "AD7T\n" "AD7UP\n" "AD7UZ\n" "AD7VH\n" "AD7XV\n" "AD7XZ\n" "AD7YT\n" "AD8B\n" "AD8C\n" "AD8D\n" "AD8J\n" "AD8L\n" "AD8P\n" "AD9H\n" "AD9P\n" "AD9V\n" "AE0G\n" "AE1C\n" "AE1N\n" "AE1P\n" "AE1T\n" "AE2AA\n" "AE2J\n" "AE2JL\n" "AE2T\n" "AE2X\n" "AE3E\n" "AE3J\n" "AE3T\n" "AE4CJ\n" "AE4CW\n" "AE4EC\n" "AE4MN\n" "AE4NZ\n" "AE4O\n" "AE4PC\n" "AE4RV\n" "AE4T\n" "AE4TE\n" "AE4TX\n" "AE4Y\n" "AE5AA\n" "AE5BR\n" "AE5CX\n" "AE5FT\n" "AE5GT\n" "AE5I\n" "AE5JA\n" "AE5JG\n" "AE5JK\n" "AE5JT\n" "AE5KM\n" "AE5KT\n" "AE5LO\n" "AE5LQ\n" "AE5MM\n" "AE5OV\n" "AE5P\n" "AE5PW\n" "AE5RE\n" "AE5T\n" "AE5TD\n" "AE5X\n" "AE6C\n" "AE6GC\n" "AE6GE\n" "AE6JN\n" "AE6K\n" "AE6OU\n" "AE6PP\n" "AE6QH\n" "AE6RF\n" "AE6RG\n" "AE6RR\n" "AE6RS\n" "AE6SX\n" "AE6XC\n" "AE6Y\n" "AE6YB\n" "AE6ZB\n" "AE6ZF\n" "AE6ZV\n" "AE7AB\n" "AE7AP\n" "AE7AW\n" "AE7CC\n" "AE7CJ\n" "AE7EE\n" "AE7H\n" "AE7K\n" "AE7RW\n" "AE8M\n" "AE9C\n" "AE9F\n" "AE9H\n" "AE9K\n" "AE9Q\n" "AF1E\n" "AF1G\n" "AF1T\n" "AF2C\n" "AF2D\n" "AF2K\n" "AF2S\n" "AF3D\n" "AF3I\n" "AF3K\n" "AF3L\n" "AF3RH\n" "AF3Y\n" "AF4AI\n" "AF4IB\n" "AF4JF\n" "AF4KL\n" "AF4MO\n" "AF4OX\n" "AF4PP\n" "AF4RK\n" "AF4TK\n" "AF4Z\n" "AF5K\n" "AF5M\n" "AF5P\n" "AF5Q\n" "AF5T\n" "AF5U\n" "AF5Z\n" "AF6AV\n" "AF6BJ\n" "AF6DD\n" "AF6EH\n" "AF6EV\n" "AF6GL\n" "AF6JC\n" "AF6JP\n" "AF6JX\n" "AF6ME\n" "AF6MO\n" "AF6NE\n" "AF6NI\n" "AF6P\n" "AF6PA\n" "AF6PK\n" "AF6SA\n" "AF6SY\n" "AF6T\n" "AF6VQ\n" "AF7DX\n" "AF7K\n" "AF7O\n" "AF7Z\n" "AF8A\n" "AF8C\n" "AF8RH\n" "AF8T\n" "AF8V\n" "AF9H\n" "AF9J\n" "AG0A\n" "AG0I\n" "AG0J\n" "AG0L\n" "AG0M\n" "AG1C\n" "AG1H\n" "AG2M\n" "AG2T\n" "AG3G\n" "AG3L\n" "AG3R\n" "AG3V\n" "AG4CZ\n" "AG4ES\n" "AG4GB\n" "AG4K\n" "AG4M\n" "AG4P\n" "AG4PJ\n" "AG4PZ\n" "AG4QX\n" "AG4TO\n" "AG4V\n" "AG4VS\n" "AG4W\n" "AG4WL\n" "AG4WY\n" "AG4XL\n" "AG4XR\n" "AG5T\n" "AG5W\n" "AG5Z\n" "AG6MB\n" "AG7N\n" "AG7T\n" "AG7U\n" "AG8U\n" "AG9A\n" "AG9C\n" "AG9S\n" "AH0/AH2Y\n" "AH0BT\n" "AH0S\n" "AH2DT\n" "AH2L\n" "AH2R\n" "AH2Y\n" "AH6EZ/W9\n" "AH6FC\n" "AH6JD\n" "AH6N\n" "AH6NF\n" "AH6NM\n" "AH6RE\n" "AH6RR\n" "AH6V\n" "AH6WX\n" "AH6XX\n" "AH6ZZ\n" "AH7A\n" "AH7C\n" "AH7G\n" "AH7ZA\n" "AH8/DL2AH\n" "AH8DX/W7\n" "AI0L\n" "AI0M\n" "AI0O\n" "AI0Q\n" "AI1O\n" "AI1P\n" "AI1P/0\n" "AI1V\n" "AI2C\n" "AI2I\n" "AI2IA\n" "AI2N\n" "AI2S\n" "AI2T\n" "AI3G\n" "AI3Q\n" "AI4AW\n" "AI4BJ\n" "AI4CJ\n" "AI4CM\n" "AI4CO\n" "AI4DB\n" "AI4FR\n" "AI4G\n" "AI4GP\n" "AI4GR\n" "AI4HH\n" "AI4IC\n" "AI4IO\n" "AI4JT\n" "AI4KM\n" "AI4LV\n" "AI4ME\n" "AI4MI\n" "AI4NW\n" "AI4OF\n" "AI4OH\n" "AI4OT\n" "AI4PF\n" "AI4PY\n" "AI4QQ\n" "AI4QR\n" "AI4QY\n" "AI4RF\n" "AI4RJ\n" "AI4TE\n" "AI4UN\n" "AI4VE\n" "AI4VQ\n" "AI4W\n" "AI4WL\n" "AI4WU\n" "AI4WW\n" "AI4YO\n" "AI5DX\n" "AI5G\n" "AI5M\n" "AI5P\n" "AI6L\n" "AI6O\n" "AI6V\n" "AI6YL\n" "AI6Z\n" "AI7H\n" "AI8P\n" "AI9F\n" "AI9I\n" "AI9K\n" "AI9L\n" "AI9P\n" "AI9T\n" "AJ0W\n" "AJ1E\n" "AJ1G\n" "AJ1I\n" "AJ1M\n" "AJ1M/8\n" "AJ2T\n" "AJ2Y\n" "AJ3G\n" "AJ3M\n" "AJ3T\n" "AJ4A\n" "AJ4AQ\n" "AJ4BT\n" "AJ4CD\n" "AJ4CG\n" "AJ4CU\n" "AJ4DX\n" "AJ4F\n" "AJ4FM\n" "AJ4FV\n" "AJ4GC\n" "AJ4HO\n" "AJ4HZ\n" "AJ4IM\n" "AJ4JD\n" "AJ4JQ\n" "AJ4JZ\n" "AJ4KF\n" "AJ4LM\n" "AJ4LU\n" "AJ4MW\n" "AJ4NM\n" "AJ4OA\n" "AJ4OV\n" "AJ4RK\n" "AJ4RW\n" "AJ4SQ\n" "AJ5C\n" "AJ5DW\n" "AJ5H\n" "AJ6T\n" "AJ6V\n" "AJ7EF\n" "AJ8B\n" "AJ8MH\n" "AJ8P\n" "AJ9C\n" "AJ9K\n" "AK0A\n" "AK0F\n" "AK0M\n" "AK0MR\n" "AK1N\n" "AK1Q\n" "AK1W\n" "AK2A\n" "AK2B\n" "AK2P\n" "AK2S\n" "AK3Q\n" "AK3V\n" "AK3W\n" "AK4DM\n" "AK4DW\n" "AK4I\n" "AK4IK\n" "AK4JH\n" "AK4K\n" "AK4NC\n" "AK4RS\n" "AK4Z\n" "AK5AA\n" "AK5DX\n" "AK5V\n" "AK5X\n" "AK6DV\n" "AK6M\n" "AK6R\n" "AK6X\n" "AK7A\n" "AK7AT\n" "AK7AZ\n" "AK7DB\n" "AK7FF\n" "AK7G\n" "AK7H\n" "AK7O\n" "AK7S\n" "AK7Y\n" "AK8A\n" "AK9F\n" "AK9I\n" "AK9L\n" "AK9N\n" "AK9N/7\n" "AK9W\n" "AK9Y\n" "AL1G\n" "AL2F\n" "AL2V\n" "AL3K\n" "AL7AF\n" "AL7BA/W8\n" "AL7FD\n" "AL7HW/4\n" "AL7IF\n" "AL7L\n" "AL7PQ\n" "AL7QQ\n" "AL7R\n" "AL7TC\n" "AL9A\n" "AM1A\n" "AM1C\n" "AM1G\n" "AM1Q\n" "AM1S\n" "AM1T\n" "AM1W\n" "AM2T\n" "AM3A\n" "AM3CS\n" "AM3EGB\n" "AM3M\n" "AM3SSB\n" "AM5A\n" "AM5B\n" "AM5BM\n" "AM5KB\n" "AM5M\n" "AM5Q\n" "AM5SP\n" "AM7C\n" "AM7M\n" "AM7W\n" "AM8A\n" "AN1A\n" "AN1C\n" "AN1K\n" "AN1R\n" "AN2A\n" "AN2K\n" "AN3N\n" "AN4A\n" "AN5CNK\n" "AN5E\n" "AN5L\n" "AN5N\n" "AN5P\n" "AN5W\n" "AN7K\n" "AN7LM\n" "AN8A\n" "AN8R\n" "AN8X\n" "AO1ABT\n" "AO1B\n" "AO1ET\n" "AO1J\n" "AO1K\n" "AO1L\n" "AO1T\n" "AO1Y\n" "AO2A\n" "AO2KY\n" "AO2R\n" "AO2V\n" "AO2W\n" "AO3A\n" "AO3DE\n" "AO3K\n" "AO3T\n" "AO4C\n" "AO4M\n" "AO4Y\n" "AO5A\n" "AO5B\n" "AO5GVZ\n" "AO5GX\n" "AO5KB\n" "AO5L\n" "AO5M\n" "AO5R\n" "AO5SP\n" "AO5T\n" "AO5V\n" "AO5W\n" "AO7A\n" "AO7AAW\n" "AO7O\n" "AO7T\n" "AO8A\n" "AO8HQ\n" "AT1HQ\n" "AU2RSB\n" "AU5JCB\n" "AY0DX\n" "AY4D\n" "AY5F\n" "AY7X\n" "AY8A\n" "AY9F\n" "B1C\n" "B1HQ\n" "B1P\n" "B1Z\n" "B3C\n" "B3HQ\n" "B4B\n" "B4HQ\n" "B4R\n" "B4S\n" "B4TB\n" "B4VE\n" "B4X\n" "B5A\n" "B5TT\n" "B7HQ\n" "B7M\n" "B7P\n" "BA1AN\n" "BA1GN\n" "BA1RB\n" "BA1SN\n" "BA2IA\n" "BA3AX\n" "BA3RJ\n" "BA4AA\n" "BA4ALC\n" "BA4CH\n" "BA4DL\n" "BA4II\n" "BA4KA\n" "BA4QO\n" "BA4RC\n" "BA4RF\n" "BA4SD\n" "BA4SI\n" "BA4T\n" "BA4VE\n" "BA4WW\n" "BA5AG\n" "BA5AN\n" "BA5AP\n" "BA5BO\n" "BA5DX\n" "BA5HAM\n" "BA5RR\n" "BA6IT\n" "BA6IV\n" "BA6QD\n" "BA6QH\n" "BA7CK\n" "BA7IA\n" "BA7IN\n" "BA7IO\n" "BA7KM\n" "BA7MG\n" "BA7MY\n" "BA7NQ\n" "BA8AG\n" "BA8BA\n" "BD1AQH\n" "BD1BYV\n" "BD1CAL\n" "BD1DQD\n" "BD1FBV\n" "BD1HW\n" "BD1ISI\n" "BD1ND\n" "BD1RCR\n" "BD1TCC\n" "BD1WC\n" "BD2BT\n" "BD2IMS\n" "BD2RJ\n" "BD2SH/7\n" "BD3EO/1\n" "BD3PCH\n" "BD4AGK\n" "BD4CZX\n" "BD4DVK\n" "BD4IBW/4\n" "BD4JUU\n" "BD4JZY\n" "BD4KUU\n" "BD4KYA\n" "BD4LGF\n" "BD4QH\n" "BD4QO\n" "BD4RQ\n" "BD4SP\n" "BD4SS\n" "BD4SVB\n" "BD4SX\n" "BD4SZW\n" "BD4TD\n" "BD4TR\n" "BD4TU\n" "BD4WZH\n" "BD5BAJ\n" "BD5CFB\n" "BD5CFY\n" "BD5HML\n" "BD5HST\n" "BD5HUI\n" "BD5WW\n" "BD6AHP\n" "BD6IQD\n" "BD6IVX\n" "BD6QDR\n" "BD6QMY\n" "BD7IBN\n" "BD7IN\n" "BD7IXG\n" "BD7JDG\n" "BD7JSQ\n" "BD7KBH\n" "BD7LDM\n" "BD7MSN\n" "BD7MVZ\n" "BD7NL\n" "BD7NWF\n" "BD7RDC\n" "BD8AIB\n" "BD8ATI\n" "BD9AFM\n" "BG1JR\n" "BG1QEX\n" "BG2SHQ\n" "BG3MOU\n" "BG4AHD\n" "BG4AHF\n" "BG4CZX\n" "BG4DVK\n" "BG4ENK\n" "BG4EPV\n" "BG4JZY\n" "BG4MCG\n" "BG4MR\n" "BG4REA\n" "BG4TWS\n" "BG5HJC\n" "BG5HST\n" "BG5HSV\n" "BG6AHU\n" "BG6JEQ\n" "BG6JNB\n" "BG7BAH\n" "BG7IEU\n" "BG7NWF\n" "BG8IK\n" "BG9AFM\n" "BG9TX\n" "BH1IIA\n" "BH1IIJ\n" "BH4SFE\n" "BH7LMD\n" "BT4EXPO\n" "BT4NG\n" "BU2AC\n" "BU2AE\n" "BU2AI\n" "BU2AO\n" "BU2AU\n" "BV0HQ\n" "BV0J\n" "BV0L\n" "BV1EK\n" "BV2A\n" "BV3FG\n" "BV4VQ\n" "BV4VR\n" "BV4VT\n" "BV7FC\n" "BW/DL3OCH\n" "BW2/JP1RIW\n" "BW3/DJ3KR\n" "BX0WPX\n" "BX1AAB\n" "BX2ABD\n" "BX3AA\n" "BX4AD\n" "BX4AF\n" "BX4AQ\n" "BX5AA\n" "BX6AP\n" "BY1CJL\n" "BY1CW\n" "BY1DX\n" "BY1QH\n" "BY1RX\n" "BY1TTY\n" "BY3MM\n" "BY4BZB\n" "BY4DX\n" "BY4HAM\n" "BY4IO\n" "BY4QA\n" "BY4SA\n" "BY5CD\n" "BY5HB\n" "BY6HY\n" "BY6IC\n" "BY7HL\n" "BY7KG\n" "BY7KP\n" "BY8AC\n" "BY8DX\n" "C31CA\n" "C31CT\n" "C37NL\n" "C37RC\n" "C37URE\n" "C49C\n" "C4DX\n" "C4I\n" "C4M\n" "C4N\n" "C4SV\n" "C4W\n" "C4Z\n" "C6AGN\n" "C6AKQ\n" "C6AKX\n" "C6ALT\n" "C6AMM\n" "C6AMS\n" "C6ANM\n" "C6APG\n" "C6APR\n" "C6AQQ\n" "C6ARR\n" "C6ASB\n" "C6ATA\n" "C6AUM\n" "C6AWL\n" "C91LW\n" "C91TX\n" "C98LW\n" "CA3KHZ\n" "CA3OEV\n" "CA6BMF\n" "CD1R\n" "CE0Y/SM6CUK\n" "CE1/K7CA\n" "CE1KR\n" "CE1TT\n" "CE1U\n" "CE1UGE\n" "CE1W\n" "CE1Z\n" "CE2/K0MD\n" "CE2HZ\n" "CE2LS\n" "CE2P\n" "CE2WWF\n" "CE2WZ\n" "CE3AA\n" "CE3BFZ\n" "CE3DNP\n" "CE3FZ\n" "CE3G\n" "CE3HQ\n" "CE3NR\n" "CE3PG\n" "CE3RR\n" "CE4B\n" "CE4CT\n" "CE4ETZ\n" "CE4SES\n" "CE4UJU\n" "CE5JZO\n" "CE6SAX\n" "CE6TBN\n" "CE6VMO\n" "CJ3WPV\n" "CJ7FC\n" "CJ7GEM\n" "CK1BVD\n" "CK1WT\n" "CK2AWR\n" "CK2DWA\n" "CK3AT\n" "CK3CUI\n" "CK3CW\n" "CK6BF\n" "CK7HL\n" "CM2KY\n" "CM2ORO\n" "CM2QM\n" "CM2RVA\n" "CM2ZT\n" "CM3GW\n" "CM3RPN\n" "CM5FZ\n" "CM6CAC\n" "CM6RCR\n" "CM6YAC\n" "CM8CAD\n" "CM8GJ\n" "CN2A\n" "CN2B\n" "CN2BC\n" "CN2IPA\n" "CN2M\n" "CN2R\n" "CN2YF\n" "CN3A\n" "CN3R\n" "CN4P\n" "CN8KD\n" "CN8LI\n" "CN8SG\n" "CN8VO\n" "CN8WW\n" "CN8YE\n" "CN8YR\n" "CN8YZ\n" "CN8ZG\n" "CO2EL\n" "CO2FU\n" "CO2GL\n" "CO2IZ\n" "CO2JD\n" "CO2JG\n" "CO2JW\n" "CO2KY\n" "CO2OT\n" "CO2WF\n" "CO3CJ\n" "CO3JN\n" "CO3LC\n" "CO3TJ\n" "CO4LS\n" "CO6CAC\n" "CO6LC\n" "CO6LP\n" "CO6RD\n" "CO6WD\n" "CO6WYR\n" "CO6YI\n" "CO7EH\n" "CO7PH\n" "CO7RR\n" "CO8AW\n" "CO8CML\n" "CO8CY\n" "CO8LY\n" "CO8TW\n" "CO8WZ\n" "CO8ZZ\n" "CP1FF\n" "CP1WG\n" "CP5RC\n" "CP6AA\n" "CP6XE\n" "CQ3L\n" "CQ3T\n" "CQ3Z\n" "CQ4T\n" "CQ4U\n" "CQ8L\n" "CQ8X\n" "CQ95F\n" "CQ9K\n" "CQ9T\n" "CR1M\n" "CR1Z\n" "CR2A\n" "CR2T\n" "CR2X\n" "CR3A\n" "CR3E\n" "CR3L\n" "CR3T\n" "CR5A\n" "CR5CQK\n" "CR5HQ\n" "CR5M\n" "CR5R\n" "CR5SBK\n" "CR5T\n" "CR5X\n" "CR6A\n" "CR6K\n" "CR6P\n" "CR6T\n" "CS1CRE\n" "CS2C\n" "CS2K\n" "CS2P\n" "CS2T\n" "CS5RBL\n" "CS7A\n" "CS7CQK\n" "CS9A\n" "CS9L\n" "CT1AGF\n" "CT1AHU\n" "CT1ANO\n" "CT1AOZ\n" "CT1APE\n" "CT1BH\n" "CT1BNW\n" "CT1BOH\n" "CT1BOL\n" "CT1BOP\n" "CT1BWU\n" "CT1BWW\n" "CT1BXE\n" "CT1BXT\n" "CT1BYK\n" "CT1BZG\n" "CT1CDP\n" "CT1CJJ\n" "CT1CQK\n" "CT1DIN\n" "CT1DIZ\n" "CT1DJE\n" "CT1DOV\n" "CT1DVV\n" "CT1DZY\n" "CT1EAT\n" "CT1EBM\n" "CT1EEK\n" "CT1EGF\n" "CT1EGW\n" "CT1EHK\n" "CT1ELF\n" "CT1ELP\n" "CT1ELZ\n" "CT1END/P\n" "CT1ENQ\n" "CT1ENV\n" "CT1EOD\n" "CT1EPJ\n" "CT1ESG\n" "CT1ESJ\n" "CT1ESV\n" "CT1ETW\n" "CT1ETX\n" "CT1EWA\n" "CT1FHL\n" "CT1FJK\n" "CT1FJL\n" "CT1FMX\n" "CT1FUH\n" "CT1GC\n" "CT1GFK\n" "CT1GPQ\n" "CT1HBV\n" "CT1HMN\n" "CT1HZU\n" "CT1ILT\n" "CT1IUA\n" "CT1IZW\n" "CT1JEY\n" "CT1JGA\n" "CT1JLZ\n" "CT1JRZ\n" "CT1JSP\n" "CT1YTS\n" "CT2CRP\n" "CT2FPE\n" "CT2GDW\n" "CT2GQN\n" "CT2GSN\n" "CT2HKN\n" "CT2HRB\n" "CT2IOV\n" "CT2IPG\n" "CT2ITR\n" "CT2IVH\n" "CT2JBG\n" "CT2JMR\n" "CT2JRZ\n" "CT2JTR\n" "CT2JVP\n" "CT2JYX\n" "CT2KAL\n" "CT2KCG\n" "CT3AS\n" "CT3BD\n" "CT3CD\n" "CT3DL\n" "CT3DZ\n" "CT3EE\n" "CT3EN\n" "CT3FJ\n" "CT3FN\n" "CT3FQ\n" "CT3FT\n" "CT3HF\n" "CT3IA\n" "CT3KN\n" "CT3KU\n" "CT3KY\n" "CT3MD\n" "CT3NT\n" "CT4HA\n" "CT4IS\n" "CT4NH\n" "CT6P\n" "CT7/CU8AS/P\n" "CT7/DJ5YQ\n" "CT7/LZ3ND\n" "CT7A\n" "CT7D\n" "CT7E\n" "CT7R\n" "CT8K\n" "CT9/DK7TM\n" "CT9/DL1SBF\n" "CT9/DL3KWF\n" "CT9/DL3ZH\n" "CT9K\n" "CT9L\n" "CT9M\n" "CU2A\n" "CU2AF\n" "CU2AO\n" "CU2CR\n" "CU2DX\n" "CU2JT\n" "CU2X\n" "CU30AA\n" "CU3EJ\n" "CU3HQ\n" "CU3TRP\n" "CU5CQ\n" "CU6AY\n" "CU7AJ\n" "CU8A\n" "CU8AS\n" "CV5D\n" "CV5K\n" "CW2T\n" "CW5W\n" "CW7T\n" "CX1AA\n" "CX1AV\n" "CX1AX\n" "CX1CCC\n" "CX1JJ\n" "CX2ABC\n" "CX2ABP\n" "CX2AL\n" "CX2AQ\n" "CX2CC\n" "CX2DDP\n" "CX2FT\n" "CX2TG\n" "CX3CCC\n" "CX3CQ\n" "CX4AAJ\n" "CX4AD\n" "CX4BW\n" "CX4CR\n" "CX4DX\n" "CX5BW\n" "CX5TR\n" "CX6VM\n" "CX7CO\n" "CX7TT\n" "CX8BBH\n" "CX9AU\n" "CX9BP\n" "CX9DX\n" "CY2ZT/2\n" "D2NX\n" "D44AC\n" "D4C\n" "D80Y\n" "DA0A\n" "DA0AD\n" "DA0AMT\n" "DA0BCC\n" "DA0CA\n" "DA0CCC\n" "DA0CW\n" "DA0HEL\n" "DA0HQ\n" "DA0I\n" "DA0R\n" "DA0X\n" "DA0YFD\n" "DA1MC\n" "DA2U\n" "DA2UN\n" "DA3A\n" "DA3T\n" "DA3X\n" "DA6TEC\n" "DA9L\n" "DB1APP\n" "DB1BAN\n" "DB1BMN\n" "DB1CD\n" "DB1DT\n" "DB1LI\n" "DB1MI\n" "DB1MUC\n" "DB1NR\n" "DB1RLE\n" "DB1SKA\n" "DB1SMW\n" "DB1VQ\n" "DB2B\n" "DB2BJT\n" "DB2CTM\n" "DB2HV\n" "DB2KT\n" "DB2NQ\n" "DB2OJ\n" "DB3BE\n" "DB3BX\n" "DB3FS\n" "DB3KE\n" "DB3LO\n" "DB4BU\n" "DB4NNW\n" "DB4SP\n" "DB4VI\n" "DB4VO\n" "DB5FW\n" "DB5SD\n" "DB6NT\n" "DB6SI\n" "DB6VP\n" "DB6YW\n" "DB6ZU\n" "DB7AA\n" "DB7BU\n" "DB7HH\n" "DB7MA\n" "DB7QJ\n" "DB7TF\n" "DB7UQ\n" "DB8AH\n" "DB8NI\n" "DB8VB\n" "DB9EV\n" "DB9EX\n" "DB9UH\n" "DC0ASP\n" "DC0GO\n" "DC0KK\n" "DC0NA\n" "DC0NE\n" "DC0UH\n" "DC0VD\n" "DC1HPS\n" "DC1HR\n" "DC1JAG\n" "DC1NSK\n" "DC1OBB\n" "DC1RJJ\n" "DC1RS\n" "DC1SK\n" "DC1SV\n" "DC1XM\n" "DC1YB\n" "DC2CB\n" "DC2CT\n" "DC2CW\n" "DC2IP\n" "DC2KN\n" "DC2OD\n" "DC2VE\n" "DC2YY\n" "DC3FR\n" "DC3HB\n" "DC3RJ\n" "DC3SW\n" "DC3TS\n" "DC3ZB\n" "DC4A\n" "DC5IMM\n" "DC5JQ\n" "DC6A\n" "DC6CX\n" "DC6CZ\n" "DC6KW\n" "DC6MY\n" "DC6OAF\n" "DC6RN\n" "DC7CCC\n" "DC7HP\n" "DC7IE\n" "DC7KM\n" "DC7NF\n" "DC7OH\n" "DC8KU\n" "DC8QT\n" "DC8RU\n" "DC8SG\n" "DC8TS\n" "DC8WPA\n" "DC9KH\n" "DC9MA\n" "DC9PI\n" "DC9TH\n" "DC9ZB\n" "DC9ZP\n" "DD0ARN\n" "DD0D\n" "DD0DRK\n" "DD0PB\n" "DD0VD\n" "DD0VR\n" "DD0ZL\n" "DD0ZN\n" "DD1D\n" "DD1DD\n" "DD1DZ\n" "DD1IM\n" "DD1JD\n" "DD1JN\n" "DD1LD\n" "DD1LI\n" "DD1MAT\n" "DD1OP\n" "DD1RB\n" "DD1UDW\n" "DD1UN\n" "DD1YGB\n" "DD2D\n" "DD2FJ\n" "DD2JA\n" "DD2ML\n" "DD2NU\n" "DD2TC\n" "DD3D\n" "DD3DZ\n" "DD3NJ\n" "DD3QD\n" "DD3WW\n" "DD4B\n" "DD4BY\n" "DD4DA\n" "DD4DJ\n" "DD5A\n" "DD5AJ\n" "DD5FZ\n" "DD5JK\n" "DD5KG\n" "DD5M\n" "DD5T\n" "DD5XL\n" "DD6PS\n" "DD6ZJ\n" "DD7GK\n" "DD7VA\n" "DD7ZT\n" "DD8IU\n" "DD8JJ\n" "DD8SM\n" "DD8VX\n" "DD9DAG\n" "DD9HK\n" "DD9NT\n" "DD9PS\n" "DD9WG\n" "DF0AT\n" "DF0AW\n" "DF0BAU\n" "DF0BLM\n" "DF0BV\n" "DF0CG\n" "DF0CI\n" "DF0DA\n" "DF0DBP\n" "DF0DG\n" "DF0DJ\n" "DF0DOX\n" "DF0DX\n" "DF0EG\n" "DF0FFH\n" "DF0FY\n" "DF0HO\n" "DF0HQ\n" "DF0II\n" "DF0II/P\n" "DF0IT\n" "DF0PT\n" "DF0RI\n" "DF0RW\n" "DF0SAX\n" "DF0SL\n" "DF0SQ\n" "DF0SX\n" "DF0TX\n" "DF0WLG\n" "DF1AG\n" "DF1AL\n" "DF1ASG\n" "DF1BN\n" "DF1BV\n" "DF1DT\n" "DF1DX\n" "DF1FN\n" "DF1HE\n" "DF1HF\n" "DF1IAQ\n" "DF1JM\n" "DF1KBN\n" "DF1KSP\n" "DF1LON\n" "DF1MA\n" "DF1MDX\n" "DF1NP\n" "DF1OE\n" "DF1OLS\n" "DF1OM\n" "DF1PH\n" "DF1PU\n" "DF1PY\n" "DF1QQ\n" "DF1QR\n" "DF1SD\n" "DF1SZ\n" "DF1TJ\n" "DF1UWE\n" "DF1VB\n" "DF1VU\n" "DF1XC\n" "DF1YQ\n" "DF2AJ\n" "DF2AP\n" "DF2BO\n" "DF2BR\n" "DF2CD\n" "DF2CH\n" "DF2CK\n" "DF2CQ\n" "DF2EQ\n" "DF2FM\n" "DF2FR\n" "DF2FU\n" "DF2GH\n" "DF2GW\n" "DF2HL\n" "DF2IAX\n" "DF2IC\n" "DF2IY\n" "DF2KD\n" "DF2KK\n" "DF2LH\n" "DF2MC\n" "DF2MG\n" "DF2MM\n" "DF2NJ\n" "DF2NS\n" "DF2NU\n" "DF2NV\n" "DF2OK\n" "DF2OU\n" "DF2PH\n" "DF2PI\n" "DF2PN\n" "DF2PY\n" "DF2QC\n" "DF2QZ\n" "DF2RG\n" "DF2TG\n" "DF2TT\n" "DF2UA\n" "DF2UD\n" "DF2UQ\n" "DF2UU\n" "DF3AX\n" "DF3CB\n" "DF3DK\n" "DF3EH\n" "DF3GE\n" "DF3GY\n" "DF3HD\n" "DF3IS\n" "DF3IU\n" "DF3JM\n" "DF3JO\n" "DF3KJ\n" "DF3KT\n" "DF3KV\n" "DF3MC\n" "DF3OL\n" "DF3PN\n" "DF3QG\n" "DF3SM\n" "DF3SP\n" "DF3SS\n" "DF3TE\n" "DF3XP\n" "DF3XZ\n" "DF3ZE\n" "DF4BV\n" "DF4EU\n" "DF4FD\n" "DF4FQ\n" "DF4IE\n" "DF4KC\n" "DF4PA\n" "DF4PD\n" "DF4TD\n" "DF4TS\n" "DF4UM\n" "DF4WC\n" "DF4WG\n" "DF4WQ\n" "DF4XF\n" "DF4ZK\n" "DF4ZL\n" "DF4ZW\n" "DF4ZY\n" "DF5A\n" "DF5AN\n" "DF5AU\n" "DF5BM\n" "DF5BX\n" "DF5FF\n" "DF5FL\n" "DF5HG\n" "DF5HOA\n" "DF5KE\n" "DF5KT\n" "DF5LR\n" "DF5LW\n" "DF5PP\n" "DF5RF\n" "DF5SF\n" "DF5SR\n" "DF5UL\n" "DF5WBA\n" "DF5WN\n" "DF5WW\n" "DF5ZV\n" "DF6AD\n" "DF6DBF\n" "DF6EH\n" "DF6EX\n" "DF6FK\n" "DF6FR\n" "DF6IC\n" "DF6JC\n" "DF6JF\n" "DF6LQ\n" "DF6MU\n" "DF6PW\n" "DF6QB\n" "DF6QC\n" "DF6QN\n" "DF6QP\n" "DF6QV\n" "DF6RI\n" "DF6RK\n" "DF6TC\n" "DF6VL\n" "DF6WE\n" "DF6WM\n" "DF6WR\n" "DF6YC\n" "DF6ZY\n" "DF7AA\n" "DF7BL\n" "DF7DF\n" "DF7EF\n" "DF7EM\n" "DF7FC\n" "DF7GB\n" "DF7GG\n" "DF7IR\n" "DF7IS\n" "DF7JC\n" "DF7LA\n" "DF7LS\n" "DF7NR\n" "DF7OG\n" "DF7OM\n" "DF7PW\n" "DF7PX\n" "DF7RG\n" "DF7TH\n" "DF7TS\n" "DF7TT\n" "DF7TU\n" "DF7TW\n" "DF7TY\n" "DF7WT\n" "DF7XH\n" "DF7ZM\n" "DF7ZS\n" "DF8AA\n" "DF8AE\n" "DF8BB\n" "DF8CS\n" "DF8DHG\n" "DF8DT\n" "DF8DU\n" "DF8FT\n" "DF8HS\n" "DF8JB\n" "DF8JE\n" "DF8JK\n" "DF8KN\n" "DF8PJ\n" "DF8PR\n" "DF8QB\n" "DF8ST\n" "DF8TI\n" "DF8TM\n" "DF8TY\n" "DF8UO\n" "DF8VV\n" "DF8WA\n" "DF8WL\n" "DF8XC\n" "DF8ZH\n" "DF9DD\n" "DF9DH\n" "DF9DM\n" "DF9EY\n" "DF9FR\n" "DF9FS\n" "DF9FT\n" "DF9GH\n" "DF9GR\n" "DF9JL\n" "DF9KF\n" "DF9KQ\n" "DF9LJ\n" "DF9LW\n" "DF9LW/P\n" "DF9OB\n" "DF9OO\n" "DF9QT\n" "DF9RD\n" "DF9SH\n" "DF9TF\n" "DF9TS\n" "DF9VH\n" "DF9VJ\n" "DF9WB\n" "DF9WP\n" "DF9XV\n" "DF9YC\n" "DF9ZP\n" "DF9ZW\n" "DG0AAE\n" "DG0AM\n" "DG0CAW\n" "DG0CC\n" "DG0DG\n" "DG0DRF\n" "DG0DZ\n" "DG0GCS\n" "DG0KS\n" "DG0KT\n" "DG0LHI\n" "DG0OBU\n" "DG0OJO\n" "DG0OM\n" "DG0YS\n" "DG1ATN\n" "DG1BQC\n" "DG1CMZ\n" "DG1DHW\n" "DG1DTL\n" "DG1EA\n" "DG1FKA\n" "DG1FSK\n" "DG1GJH\n" "DG1HUD\n" "DG1IU\n" "DG1KOH\n" "DG1LS\n" "DG1MDQ\n" "DG1MHC\n" "DG1NI\n" "DG1NOE\n" "DG1NPM\n" "DG1PU\n" "DG1RPU\n" "DG1VL\n" "DG1YBN\n" "DG1YFF\n" "DG1YHA\n" "DG2BHB\n" "DG2EBW\n" "DG2GAW\n" "DG2JA\n" "DG2JO\n" "DG2KO\n" "DG2NMH\n" "DG2RSF\n" "DG2SEW\n" "DG2SRL\n" "DG2TOM\n" "DG2UA\n" "DG2US\n" "DG3DAA\n" "DG3DAT\n" "DG3DBO\n" "DG3EK\n" "DG3FAW\n" "DG3FK\n" "DG3LAL\n" "DG3LCH\n" "DG3LSM/P\n" "DG3MDE\n" "DG3NCZ\n" "DG3NEC\n" "DG3OBK\n" "DG3RCE\n" "DG3SBJ\n" "DG3YCC\n" "DG4DB\n" "DG4FCN\n" "DG4FDQ\n" "DG4GP\n" "DG4KAD\n" "DG4MR\n" "DG4NAT\n" "DG4NEC\n" "DG4R\n" "DG4VD\n" "DG4YGW\n" "DG5AA\n" "DG5AAP\n" "DG5BKL\n" "DG5BKR\n" "DG5DBT\n" "DG5EAE\n" "DG5EKE\n" "DG5FFF\n" "DG5HFS\n" "DG5KX\n" "DG5LAC\n" "DG5MEO\n" "DG5MEX\n" "DG5MLA\n" "DG5MLA/P\n" "DG5MMQ\n" "DG5MMW\n" "DG5OBB\n" "DG5PI\n" "DG5PY\n" "DG5SBK\n" "DG5YHE\n" "DG6CA/P\n" "DG6DAF\n" "DG6MIB\n" "DG6NBW\n" "DG6OAG\n" "DG6OBP\n" "DG6PU\n" "DG6PW\n" "DG6PY/P\n" "DG6SFU\n" "DG7DBN\n" "DG7DBR\n" "DG7FF\n" "DG7JB\n" "DG7KR\n" "DG7LAE\n" "DG7MAQ\n" "DG7OBV\n" "DG7RO\n" "DG7UAC\n" "DG7XO\n" "DG8AM\n" "DG8DBW\n" "DG8DP\n" "DG8EV\n" "DG8FAY\n" "DG8FBV\n" "DG8FI\n" "DG8KAJ\n" "DG8MH\n" "DG8NCY\n" "DG8NFB\n" "DG8NGC\n" "DG8OP\n" "DG8RAN\n" "DG8VE\n" "DG8YHO\n" "DG9AK\n" "DG9BBZ\n" "DG9BHU\n" "DG9KB\n" "DG9MA\n" "DG9MDM\n" "DG9MEH\n" "DG9MEX\n" "DG9NAO\n" "DG9NAV\n" "DG9SEH\n" "DG9SQ\n" "DG9VH\n" "DG9YCA\n" "DH0DX\n" "DH0FAB\n" "DH0GDS\n" "DH0GHU\n" "DH0GSU\n" "DH0HUI\n" "DH0JAE\n" "DH0KAA\n" "DH0MWH\n" "DH0PAZ\n" "DH0SP\n" "DH1AC\n" "DH1AKG\n" "DH1DE\n" "DH1DX\n" "DH1GD\n" "DH1JG\n" "DH1NAS\n" "DH1NJS\n" "DH1OAD\n" "DH1OK\n" "DH1PAL\n" "DH1PS\n" "DH1RAT\n" "DH1TS\n" "DH1TST\n" "DH1UZ\n" "DH1YAE\n" "DH2DAM\n" "DH2DAS\n" "DH2FW\n" "DH2KS\n" "DH2MA\n" "DH2MS\n" "DH2PC\n" "DH2PG\n" "DH2PL\n" "DH2URF\n" "DH2WQ\n" "DH2YAZ\n" "DH3FAN\n" "DH3FAW\n" "DH3FEN\n" "DH3FR\n" "DH3MAY\n" "DH3MD\n" "DH3MG\n" "DH3MIT\n" "DH3RB\n" "DH3RM\n" "DH3SW\n" "DH3UN\n" "DH3YC\n" "DH4BM\n" "DH4FAW\n" "DH4GK\n" "DH4JU\n" "DH4PAA\n" "DH4PSG\n" "DH4RJ\n" "DH4SC\n" "DH4SG\n" "DH5AO\n" "DH5FA\n" "DH5HS\n" "DH5JB\n" "DH5JG\n" "DH5MM\n" "DH5NT\n" "DH5PK\n" "DH6AB\n" "DH6AN\n" "DH6BH\n" "DH6DAO\n" "DH6FBP\n" "DH6JL\n" "DH6KS\n" "DH6LAS\n" "DH6UFB\n" "DH7ACI\n" "DH7KU\n" "DH7LF\n" "DH7PR\n" "DH7RD\n" "DH7SA\n" "DH8ACF\n" "DH8BAT\n" "DH8BQA\n" "DH8IJ\n" "DH8KV\n" "DH8MS\n" "DH8SL\n" "DH8VV\n" "DH8WE\n" "DH8WM\n" "DH9FAJ\n" "DH9FAV\n" "DH9FAW\n" "DH9GCD\n" "DH9JK\n" "DH9NBU\n" "DH9RCG\n" "DH9SB\n" "DJ0A\n" "DJ0ACA\n" "DJ0ACY\n" "DJ0AH\n" "DJ0BE\n" "DJ0CC\n" "DJ0DO\n" "DJ0DX\n" "DJ0FX\n" "DJ0GD\n" "DJ0GM\n" "DJ0IF\n" "DJ0JE\n" "DJ0JG\n" "DJ0MCH\n" "DJ0MCZ\n" "DJ0MDR\n" "DJ0MY\n" "DJ0QN\n" "DJ0QS\n" "DJ0RU\n" "DJ0SP\n" "DJ0TP\n" "DJ0VZ\n" "DJ0YI\n" "DJ0ZY\n" "DJ1AA\n" "DJ1AIB\n" "DJ1BV\n" "DJ1BWH\n" "DJ1CT\n" "DJ1CW\n" "DJ1EH\n" "DJ1FZ\n" "DJ1HA\n" "DJ1HF\n" "DJ1JM\n" "DJ1KJ\n" "DJ1MH\n" "DJ1MM\n" "DJ1ND\n" "DJ1OB\n" "DJ1OJ\n" "DJ1PE\n" "DJ1PQ\n" "DJ1QL\n" "DJ1RK\n" "DJ1RKS\n" "DJ1SD\n" "DJ1TO\n" "DJ1TU\n" "DJ1TW\n" "DJ1VT\n" "DJ1WJ\n" "DJ1WQ\n" "DJ1XT\n" "DJ1YF\n" "DJ1YFK\n" "DJ1YJ\n" "DJ1ZU\n" "DJ2AX\n" "DJ2BC\n" "DJ2BW\n" "DJ2C\n" "DJ2CW\n" "DJ2FR\n" "DJ2GM\n" "DJ2GMS\n" "DJ2HD\n" "DJ2HL\n" "DJ2IA\n" "DJ2JI\n" "DJ2JQ\n" "DJ2JS\n" "DJ2KUA\n" "DJ2ML\n" "DJ2MM\n" "DJ2MX\n" "DJ2NR\n" "DJ2PB\n" "DJ2PJ\n" "DJ2PR\n" "DJ2QV\n" "DJ2RG\n" "DJ2SEA\n" "DJ2SL\n" "DJ2ST\n" "DJ2SX\n" "DJ2TH\n" "DJ2TI\n" "DJ2UP\n" "DJ2UU\n" "DJ2VA\n" "DJ2VO\n" "DJ2XC\n" "DJ2XO\n" "DJ2YA\n" "DJ2YE\n" "DJ3AA\n" "DJ3AN\n" "DJ3DQ\n" "DJ3EF\n" "DJ3EZ\n" "DJ3FK\n" "DJ3GE\n" "DJ3GG\n" "DJ3HJ\n" "DJ3HW\n" "DJ3IW\n" "DJ3JB\n" "DJ3JD\n" "DJ3KJ\n" "DJ3KR\n" "DJ3LE\n" "DJ3NK\n" "DJ3OB\n" "DJ3OE\n" "DJ3OS\n" "DJ3PP\n" "DJ3RA\n" "DJ3SH\n" "DJ3ST\n" "DJ3TK\n" "DJ3TU\n" "DJ3WE\n" "DJ3XA\n" "DJ3XD\n" "DJ3XK\n" "DJ3ZF\n" "DJ4AK\n" "DJ4AX\n" "DJ4BG\n" "DJ4DN\n" "DJ4DY\n" "DJ4EN\n" "DJ4EY\n" "DJ4FZ\n" "DJ4GX\n" "DJ4IC\n" "DJ4JF\n" "DJ4KW\n" "DJ4LK\n" "DJ4MH\n" "DJ4MJ\n" "DJ4MM\n" "DJ4MO\n" "DJ4MZ\n" "DJ4OQ\n" "DJ4PI\n" "DJ4PK\n" "DJ4PT\n" "DJ4QG\n" "DJ4QO\n" "DJ4SN\n" "DJ4SO\n" "DJ4TS\n" "DJ4UR\n" "DJ4VP\n" "DJ4WM\n" "DJ4WT\n" "DJ4XD\n" "DJ4XR\n" "DJ4YA\n" "DJ5AA\n" "DJ5AN\n" "DJ5AV\n" "DJ5AZ\n" "DJ5BT\n" "DJ5BV\n" "DJ5CL\n" "DJ5DC\n" "DJ5DN\n" "DJ5DT\n" "DJ5EU\n" "DJ5FZ\n" "DJ5GK\n" "DJ5HD\n" "DJ5IR\n" "DJ5IW\n" "DJ5JH\n" "DJ5JK\n" "DJ5KB\n" "DJ5KW\n" "DJ5KX\n" "DJ5KZ\n" "DJ5LY\n" "DJ5MF\n" "DJ5MN\n" "DJ5MS\n" "DJ5MW\n" "DJ5MY\n" "DJ5OR\n" "DJ5PZ\n" "DJ5QE\n" "DJ5QK\n" "DJ5QV\n" "DJ5RE\n" "DJ5RQ\n" "DJ5TD\n" "DJ5TH\n" "DJ5TT\n" "DJ5UZ\n" "DJ5VB\n" "DJ5VW\n" "DJ5WG\n" "DJ6AL\n" "DJ6APA\n" "DJ6BQ\n" "DJ6CB\n" "DJ6DO\n" "DJ6FO\n" "DJ6GK\n" "DJ6GR\n" "DJ6HB\n" "DJ6HL\n" "DJ6HP\n" "DJ6JH\n" "DJ6KH\n" "DJ6KS\n" "DJ6LW\n" "DJ6MD\n" "DJ6NI\n" "DJ6NT\n" "DJ6OI\n" "DJ6OL\n" "DJ6OV\n" "DJ6OZ\n" "DJ6PE\n" "DJ6QP\n" "DJ6QT\n" "DJ6RA\n" "DJ6RN\n" "DJ6TB\n" "DJ6TK\n" "DJ6UP\n" "DJ6VM\n" "DJ6XB\n" "DJ6XG\n" "DJ6XV\n" "DJ6YD\n" "DJ6YX\n" "DJ6ZC\n" "DJ6ZJ\n" "DJ6ZM\n" "DJ7A\n" "DJ7AT\n" "DJ7BA\n" "DJ7EC\n" "DJ7ER\n" "DJ7FM\n" "DJ7IK\n" "DJ7JB\n" "DJ7JC\n" "DJ7LB\n" "DJ7LH\n" "DJ7OM\n" "DJ7OQ\n" "DJ7PA\n" "DJ7PI\n" "DJ7PR\n" "DJ7PT\n" "DJ7PW\n" "DJ7R\n" "DJ7RD\n" "DJ7RJ\n" "DJ7RL\n" "DJ7SR\n" "DJ7ST\n" "DJ7SW\n" "DJ7TW\n" "DJ7UC\n" "DJ7UD\n" "DJ7UN\n" "DJ7UO\n" "DJ7WG\n" "DJ7XB\n" "DJ7YM\n" "DJ7YP\n" "DJ7YR\n" "DJ7YT\n" "DJ7ZL\n" "DJ8BD\n" "DJ8EE\n" "DJ8EF\n" "DJ8EL\n" "DJ8ES\n" "DJ8EW\n" "DJ8FR\n" "DJ8GE\n" "DJ8MP\n" "DJ8NK\n" "DJ8NU\n" "DJ8OG\n" "DJ8QP\n" "DJ8RI\n" "DJ8RS\n" "DJ8RX\n" "DJ8RZ\n" "DJ8SW\n" "DJ8TK\n" "DJ8UL\n" "DJ8UV\n" "DJ8VC\n" "DJ8VI\n" "DJ8WI\n" "DJ9A\n" "DJ9AO\n" "DJ9BO\n" "DJ9CB\n" "DJ9CN\n" "DJ9CW\n" "DJ9DL\n" "DJ9DZ\n" "DJ9EF\n" "DJ9EG\n" "DJ9EI\n" "DJ9ER\n" "DJ9EU\n" "DJ9FB\n" "DJ9FG\n" "DJ9GS\n" "DJ9HX\n" "DJ9IE\n" "DJ9IO\n" "DJ9JD\n" "DJ9JX\n" "DJ9JY\n" "DJ9KM\n" "DJ9MH\n" "DJ9MT\n" "DJ9OI\n" "DJ9ON\n" "DJ9RB\n" "DJ9RM\n" "DJ9RQ\n" "DJ9RR\n" "DJ9SO\n" "DJ9UJ\n" "DJ9UM\n" "DJ9UP\n" "DJ9VA\n" "DJ9VS\n" "DJ9WJ\n" "DJ9XB\n" "DJ9ZB\n" "DK0A\n" "DK0AE\n" "DK0ALC\n" "DK0ALK\n" "DK0AY\n" "DK0BM\n" "DK0C\n" "DK0CO\n" "DK0CU\n" "DK0DB\n" "DK0ED\n" "DK0EE\n" "DK0FC\n" "DK0FL\n" "DK0GYB\n" "DK0HEL\n" "DK0HF\n" "DK0HUN\n" "DK0IA\n" "DK0IPA\n" "DK0IU\n" "DK0IW\n" "DK0IZ\n" "DK0LD\n" "DK0LE\n" "DK0MBB\n" "DK0MIT\n" "DK0MM\n" "DK0MN\n" "DK0OD\n" "DK0OG\n" "DK0PC\n" "DK0PM\n" "DK0PO\n" "DK0QQ\n" "DK0RX\n" "DK0SU\n" "DK0TZ\n" "DK0V\n" "DK0WL\n" "DK0WW\n" "DK0XB\n" "DK0YA\n" "DK1A\n" "DK1AA\n" "DK1AC\n" "DK1AF\n" "DK1AQ\n" "DK1AUP\n" "DK1AW\n" "DK1AX\n" "DK1BN\n" "DK1BT\n" "DK1BX\n" "DK1CY\n" "DK1DN\n" "DK1EAW\n" "DK1EI\n" "DK1ER\n" "DK1F\n" "DK1FB\n" "DK1FT\n" "DK1FW\n" "DK1GD\n" "DK1GW\n" "DK1HKU\n" "DK1HO\n" "DK1HV\n" "DK1II\n" "DK1IP\n" "DK1IZ\n" "DK1JU\n" "DK1KC\n" "DK1KF\n" "DK1KH\n" "DK1LRS\n" "DK1MA\n" "DK1MF\n" "DK1MM\n" "DK1NKW\n" "DK1NO\n" "DK1ODE\n" "DK1PG\n" "DK1PU\n" "DK1PZ\n" "DK1QC\n" "DK1QH\n" "DK1QO\n" "DK1QV\n" "DK1RS\n" "DK1SI\n" "DK1TR\n" "DK1TS\n" "DK1TX\n" "DK1VFA\n" "DK1WA\n" "DK1WB\n" "DK1WER\n" "DK1WU\n" "DK1WZ\n" "DK1XC\n" "DK1YP\n" "DK1YY\n" "DK2AI\n" "DK2AJ\n" "DK2AR\n" "DK2AT\n" "DK2AY\n" "DK2BH\n" "DK2BJ\n" "DK2CF\n" "DK2CRN\n" "DK2CX\n" "DK2DB\n" "DK2DD\n" "DK2DH\n" "DK2ELF\n" "DK2FG\n" "DK2GZ\n" "DK2HZ\n" "DK2IO\n" "DK2IX\n" "DK2JP\n" "DK2LO\n" "DK2ML\n" "DK2NPM\n" "DK2NZ\n" "DK2OY\n" "DK2PR\n" "DK2PS\n" "DK2PZ\n" "DK2QF\n" "DK2RT\n" "DK2RZ\n" "DK2SF\n" "DK2SG\n" "DK2SZ\n" "DK2TA\n" "DK2TG\n" "DK2TX\n" "DK2VA\n" "DK2VM\n" "DK2WC\n" "DK2WM\n" "DK2YI\n" "DK2YL\n" "DK2ZO\n" "DK3AX\n" "DK3BN\n" "DK3BT\n" "DK3CU\n" "DK3DG\n" "DK3DM\n" "DK3DUA\n" "DK3EG\n" "DK3FW\n" "DK3GG\n" "DK3GI\n" "DK3HA\n" "DK3HL\n" "DK3HV\n" "DK3KD\n" "DK3KN\n" "DK3LT\n" "DK3NU\n" "DK3PM\n" "DK3QZ\n" "DK3RA\n" "DK3RED\n" "DK3RP\n" "DK3SN\n" "DK3T\n" "DK3TL\n" "DK3UA\n" "DK3UO\n" "DK3UZ\n" "DK3W\n" "DK3WG\n" "DK3WI\n" "DK3WJ\n" "DK3WM\n" "DK3WN\n" "DK3WW\n" "DK3YD\n" "DK4A\n" "DK4AN\n" "DK4BY\n" "DK4CR\n" "DK4DJ\n" "DK4DS\n" "DK4EF\n" "DK4FG\n" "DK4GKR\n" "DK4IO\n" "DK4IS\n" "DK4JPC\n" "DK4JT\n" "DK4K\n" "DK4KI\n" "DK4KL\n" "DK4KW\n" "DK4LEH\n" "DK4LI\n" "DK4LX\n" "DK4MO\n" "DK4MX\n" "DK4NJ\n" "DK4QT\n" "DK4RL\n" "DK4RM\n" "DK4RW\n" "DK4SC\n" "DK4SDR\n" "DK4TP\n" "DK4UD\n" "DK4US\n" "DK4UV\n" "DK4VF\n" "DK4VW\n" "DK4VY\n" "DK4WA\n" "DK4WF\n" "DK4WW\n" "DK4XB\n" "DK4YF\n" "DK4YJ\n" "DK4ZZ\n" "DK5AD\n" "DK5AI\n" "DK5AL\n" "DK5AN\n" "DK5CCA\n" "DK5CS\n" "DK5D\n" "DK5DC\n" "DK5DQ\n" "DK5DS\n" "DK5E\n" "DK5EC\n" "DK5EQ\n" "DK5EZ\n" "DK5FF\n" "DK5GT\n" "DK5HB\n" "DK5HZ\n" "DK5IM\n" "DK5IP\n" "DK5IR\n" "DK5JA\n" "DK5JM\n" "DK5JX\n" "DK5KMA\n" "DK5M\n" "DK5MB\n" "DK5MJ\n" "DK5MO\n" "DK5MV\n" "DK5OS\n" "DK5PF\n" "DK5PQ\n" "DK5PR\n" "DK5QN\n" "DK5RO\n" "DK5SF\n" "DK5ST\n" "DK5TX\n" "DK5VA\n" "DK5WB\n" "DK5WL\n" "DK5WMA\n" "DK5WN\n" "DK5WO\n" "DK5XG\n" "DK5XI\n" "DK5ZO\n" "DK5ZX\n" "DK6AH\n" "DK6AJ\n" "DK6AN\n" "DK6AO\n" "DK6AR\n" "DK6AS\n" "DK6AV\n" "DK6AY\n" "DK6BT\n" "DK6CQ\n" "DK6CS\n" "DK6FI\n" "DK6HD\n" "DK6HW\n" "DK6IM\n" "DK6IR\n" "DK6MO\n" "DK6NC\n" "DK6NF\n" "DK6PW\n" "DK6QW\n" "DK6RF\n" "DK6RS\n" "DK6TA\n" "DK6TP\n" "DK6TV\n" "DK6UZ\n" "DK6WA\n" "DK6WH\n" "DK6WL\n" "DK6XR\n" "DK6XZ\n" "DK7AN\n" "DK7AW\n" "DK7BT\n" "DK7CH\n" "DK7CX\n" "DK7DV\n" "DK7DY\n" "DK7FP\n" "DK7FS\n" "DK7FX\n" "DK7FZ\n" "DK7GH\n" "DK7HA\n" "DK7IF\n" "DK7JQ\n" "DK7KR\n" "DK7M\n" "DK7MCX\n" "DK7MD\n" "DK7OM\n" "DK7PE\n" "DK7SP\n" "DK7SS\n" "DK7TM\n" "DK7UM\n" "DK7UU\n" "DK7VW\n" "DK7YY\n" "DK7YY/P\n" "DK7ZB\n" "DK7ZH\n" "DK7ZT\n" "DK8AF\n" "DK8AW\n" "DK8AX\n" "DK8CC\n" "DK8CX\n" "DK8DV\n" "DK8DX\n" "DK8EY\n" "DK8FA\n" "DK8FD\n" "DK8FS\n" "DK8IF\n" "DK8IL\n" "DK8IZ\n" "DK8JB\n" "DK8KF\n" "DK8MCT\n" "DK8MW\n" "DK8MZ\n" "DK8NC\n" "DK8NG\n" "DK8NI\n" "DK8NM\n" "DK8NT\n" "DK8NX\n" "DK8OL\n" "DK8PX\n" "DK8QY\n" "DK8RE\n" "DK8SR\n" "DK8SX\n" "DK8TP\n" "DK8TU\n" "DK8VK\n" "DK8YY\n" "DK8ZB\n" "DK9AP\n" "DK9BW\n" "DK9CG\n" "DK9CL\n" "DK9CR\n" "DK9CS\n" "DK9DA\n" "DK9EA\n" "DK9ETM\n" "DK9FEC\n" "DK9HE\n" "DK9HN\n" "DK9IP\n" "DK9JI\n" "DK9JS\n" "DK9KC\n" "DK9KX\n" "DK9LB\n" "DK9LJ\n" "DK9MH\n" "DK9MS\n" "DK9NCX\n" "DK9NM\n" "DK9OR\n" "DK9OY\n" "DK9PS\n" "DK9PY\n" "DK9PZ\n" "DK9QD\n" "DK9SF\n" "DK9TN\n" "DK9UMA\n" "DK9VA\n" "DK9WB\n" "DK9WI\n" "DL0AA\n" "DL0ABK\n" "DL0AO\n" "DL0AS\n" "DL0ASD\n" "DL0AT\n" "DL0BAS\n" "DL0BI\n" "DL0BL\n" "DL0BMW\n" "DL0BO\n" "DL0BV\n" "DL0C\n" "DL0CB\n" "DL0CS\n" "DL0DAB\n" "DL0DEF\n" "DL0DO\n" "DL0DPM\n" "DL0DSA\n" "DL0DWD\n" "DL0DWE\n" "DL0EH\n" "DL0EKO\n" "DL0ER\n" "DL0ERF\n" "DL0ERP\n" "DL0FC\n" "DL0FOR\n" "DL0FR\n" "DL0FTL\n" "DL0GD\n" "DL0GDP\n" "DL0GER/P\n" "DL0GL\n" "DL0HA\n" "DL0HFC\n" "DL0HN\n" "DL0HNF\n" "DL0HSC\n" "DL0II\n" "DL0IL\n" "DL0IR\n" "DL0IV\n" "DL0KB\n" "DL0KCT\n" "DL0KK\n" "DL0KU\n" "DL0KW\n" "DL0KWH\n" "DL0LC\n" "DL0LN\n" "DL0MB\n" "DL0MET\n" "DL0MFS\n" "DL0MFX\n" "DL0ML\n" "DL0N\n" "DL0NG\n" "DL0NP\n" "DL0NS\n" "DL0NZ\n" "DL0OS\n" "DL0P\n" "DL0PB\n" "DL0PE\n" "DL0QQ\n" "DL0RM/P\n" "DL0SLS/P\n" "DL0SN\n" "DL0SOP\n" "DL0SP\n" "DL0TD\n" "DL0TE\n" "DL0TU\n" "DL0TUM\n" "DL0UM\n" "DL0VLA\n" "DL0VLP\n" "DL0VN\n" "DL0VV\n" "DL0WAE\n" "DL0WB\n" "DL0WH\n" "DL0WW\n" "DL0XA\n" "DL0YE\n" "DL1A\n" "DL1AB\n" "DL1ABJ\n" "DL1AGS\n" "DL1AH\n" "DL1AIW\n" "DL1AKL\n" "DL1AKP\n" "DL1AKU\n" "DL1AKZ\n" "DL1AL\n" "DL1ALA\n" "DL1ALB\n" "DL1ALN\n" "DL1AMH\n" "DL1AMQ\n" "DL1ANA\n" "DL1AO\n" "DL1AOB\n" "DL1AOP\n" "DL1AP\n" "DL1APW\n" "DL1APX\n" "DL1AQU/P\n" "DL1AQY\n" "DL1ARD\n" "DL1ARH\n" "DL1ARJ\n" "DL1ARS\n" "DL1ASA\n" "DL1ASF\n" "DL1ASP\n" "DL1ATR\n" "DL1AUZ\n" "DL1AVA\n" "DL1AVF\n" "DL1AVK\n" "DL1AVU\n" "DL1AWM\n" "DL1AXX\n" "DL1AYU\n" "DL1AZA\n" "DL1AZI\n" "DL1AZK\n" "DL1AZZ\n" "DL1BA\n" "DL1BAM\n" "DL1BBP\n" "DL1BBR\n" "DL1BFR\n" "DL1BI\n" "DL1BKI\n" "DL1BKK\n" "DL1BKT\n" "DL1BRD\n" "DL1BRL\n" "DL1BTE\n" "DL1BUG\n" "DL1BUT\n" "DL1BWU\n" "DL1BYL\n" "DL1BYZ\n" "DL1BZA\n" "DL1CC\n" "DL1CF\n" "DL1CHK\n" "DL1CJ/P\n" "DL1CLM\n" "DL1CW\n" "DL1D\n" "DL1DA\n" "DL1DAW\n" "DL1DBR\n" "DL1DBV\n" "DL1DCT\n" "DL1DF\n" "DL1DF/P\n" "DL1DH\n" "DL1DPN\n" "DL1DQW\n" "DL1DQY\n" "DL1DQZ\n" "DL1DRE\n" "DL1DSN\n" "DL1DSW\n" "DL1DTC\n" "DL1DTF\n" "DL1DTL\n" "DL1DUO\n" "DL1DUS\n" "DL1DVE\n" "DL1DWL\n" "DL1DWR\n" "DL1DXA\n" "DL1DXF\n" "DL1EAL\n" "DL1ECG\n" "DL1ECK\n" "DL1EEC\n" "DL1EEZ\n" "DL1EF\n" "DL1EFD\n" "DL1EHR\n" "DL1EJA\n" "DL1EJD\n" "DL1EK\n" "DL1EKC/P\n" "DL1EKG\n" "DL1EKO\n" "DL1EL\n" "DL1ELY\n" "DL1EMY\n" "DL1EST\n" "DL1ET\n" "DL1EV\n" "DL1EZ\n" "DL1FAA\n" "DL1FCU\n" "DL1FDK\n" "DL1FDL\n" "DL1FKA\n" "DL1FMG\n" "DL1FYV\n" "DL1FZZ\n" "DL1GBQ\n" "DL1GCY\n" "DL1GDS\n" "DL1GHJ\n" "DL1GKC\n" "DL1GPR\n" "DL1GTZ\n" "DL1HAA\n" "DL1HBD\n" "DL1HBL\n" "DL1HCM\n" "DL1HIK\n" "DL1HQE\n" "DL1HRN\n" "DL1HRY\n" "DL1HSI\n" "DL1HSR\n" "DL1HTX\n" "DL1HTY\n" "DL1HUH\n" "DL1HXA\n" "DL1IA\n" "DL1IAO\n" "DL1ICB\n" "DL1II\n" "DL1JB\n" "DL1JCM\n" "DL1JDQ\n" "DL1JDU\n" "DL1JEL\n" "DL1JFM\n" "DL1JGG\n" "DL1JGO\n" "DL1JIU\n" "DL1JKK\n" "DL1JML\n" "DL1JMS\n" "DL1JNA\n" "DL1JPF\n" "DL1JSO\n" "DL1KAS\n" "DL1KCQ\n" "DL1KEW\n" "DL1KLO\n" "DL1KSE\n" "DL1KSE/P\n" "DL1KUN\n" "DL1KUR\n" "DL1KVS\n" "DL1KWK\n" "DL1KZA\n" "DL1LAE\n" "DL1LAF\n" "DL1LH\n" "DL1LOD\n" "DL1LQA\n" "DL1LQR\n" "DL1LRA\n" "DL1LRI\n" "DL1LSH\n" "DL1LTK\n" "DL1MAJ\n" "DL1MDU\n" "DL1MDV\n" "DL1MGB\n" "DL1MHJ\n" "DL1MIM\n" "DL1MUC\n" "DL1NE\n" "DL1NEO\n" "DL1NFC\n" "DL1NFG\n" "DL1NGS\n" "DL1NHW\n" "DL1NKS\n" "DL1NPG\n" "DL1NRC\n" "DL1NUB\n" "DL1NUX\n" "DL1OD\n" "DL1OJ\n" "DL1OLI\n" "DL1PF\n" "DL1PR\n" "DL1PT\n" "DL1QQ\n" "DL1QW\n" "DL1RCD\n" "DL1REM\n" "DL1RG\n" "DL1RH\n" "DL1RLB\n" "DL1RMO\n" "DL1RNT\n" "DL1ROJ\n" "DL1ROT\n" "DL1RPC\n" "DL1RTD\n" "DL1RTL\n" "DL1RTS\n" "DL1RWO\n" "DL1RWS\n" "DL1RYD\n" "DL1SA\n" "DL1SAN\n" "DL1SBF\n" "DL1SCH\n" "DL1SEC\n" "DL1SKK\n" "DL1SMA\n" "DL1SP\n" "DL1SRS\n" "DL1ST\n" "DL1STG\n" "DL1STV\n" "DL1SVA\n" "DL1SWB\n" "DL1SWT\n" "DL1SXB\n" "DL1THB\n" "DL1TKB\n" "DL1TKL\n" "DL1TL\n" "DL1TPY\n" "DL1TRK\n" "DL1TS\n" "DL1TTX\n" "DL1UP\n" "DL1USB\n" "DL1VDL\n" "DL1VF\n" "DL1VFR\n" "DL1VJL\n" "DL1VRL\n" "DL1VTL\n" "DL1WA\n" "DL1WH\n" "DL1XA\n" "DL1XP\n" "DL1XT\n" "DL1XW\n" "DL1XX\n" "DL1YAL\n" "DL1YAW\n" "DL1YCZ\n" "DL1YD\n" "DL1YEF\n" "DL1YEL\n" "DL1YEN\n" "DL1YFF\n" "DL1YGH\n" "DL1YP\n" "DL1Z\n" "DL1ZBO\n" "DL1ZM\n" "DL1ZU\n" "DL2A\n" "DL2AA\n" "DL2ABM\n" "DL2AJB\n" "DL2AK\n" "DL2AL\n" "DL2AMD\n" "DL2ANM\n" "DL2ARD\n" "DL2ARG\n" "DL2ARH\n" "DL2ARN\n" "DL2ASB\n" "DL2AWA\n" "DL2AWB\n" "DL2AXA\n" "DL2AXM\n" "DL2AYJ\n" "DL2AYK\n" "DL2BAQ\n" "DL2BBV\n" "DL2BIS\n" "DL2BM\n" "DL2BQD\n" "DL2BUM\n" "DL2BWG\n" "DL2BWO\n" "DL2CC\n" "DL2CHN\n" "DL2CK\n" "DL2DCD\n" "DL2DCX\n" "DL2DIE\n" "DL2DQL\n" "DL2DRM\n" "DL2DRU\n" "DL2DSL\n" "DL2DTJ\n" "DL2DTL\n" "DL2DUA\n" "DL2DVE\n" "DL2DWP\n" "DL2DX\n" "DL2DXA\n" "DL2DYL\n" "DL2EAB\n" "DL2EAM\n" "DL2F\n" "DL2FAG\n" "DL2FAR\n" "DL2FCA\n" "DL2FCB\n" "DL2FDL\n" "DL2FK\n" "DL2FP\n" "DL2GAR\n" "DL2GBB\n" "DL2GF\n" "DL2GGE\n" "DL2GWZ\n" "DL2HAE\n" "DL2HCB\n" "DL2HJ\n" "DL2HRE\n" "DL2HRF\n" "DL2HRT\n" "DL2HRZ\n" "DL2HUI\n" "DL2HUM\n" "DL2HVM\n" "DL2HWA\n" "DL2HWB\n" "DL2HWH\n" "DL2HWI\n" "DL2HX\n" "DL2HYH\n" "DL2IAN\n" "DL2IH\n" "DL2IPU\n" "DL2JAA\n" "DL2JAW\n" "DL2JIM\n" "DL2JKE\n" "DL2JLB\n" "DL2JRM\n" "DL2JT\n" "DL2JX\n" "DL2KDW\n" "DL2KQ\n" "DL2KUA\n" "DL2KUF\n" "DL2KUZ\n" "DL2LAR\n" "DL2LI\n" "DL2LMS\n" "DL2LRT\n" "DL2LSM\n" "DL2LTM\n" "DL2LZ\n" "DL2MDU\n" "DL2MDZ\n" "DL2MGF\n" "DL2MIH\n" "DL2MIJ\n" "DL2MJ\n" "DL2MKX\n" "DL2MLU\n" "DL2MM\n" "DL2MRK\n" "DL2MSA\n" "DL2MWB\n" "DL2NAI\n" "DL2NBH\n" "DL2NBU\n" "DL2NBY\n" "DL2NC\n" "DL2NEA\n" "DL2NEE\n" "DL2NFC\n" "DL2NO\n" "DL2NY\n" "DL2OBN\n" "DL2OBO\n" "DL2OCE\n" "DL2OE\n" "DL2OM\n" "DL2PAN\n" "DL2QB\n" "DL2QT\n" "DL2RBB\n" "DL2RBT\n" "DL2RMC\n" "DL2RPS\n" "DL2RSH\n" "DL2RTJ\n" "DL2RTL\n" "DL2RU\n" "DL2RUG\n" "DL2SAX\n" "DL2SBF\n" "DL2SER\n" "DL2SUB\n" "DL2SWB\n" "DL2SWI\n" "DL2SWN\n" "DL2SWW\n" "DL2TG\n" "DL2TI\n" "DL2TOS\n" "DL2UH\n" "DL2UR\n" "DL2UX\n" "DL2VA\n" "DL2VB\n" "DL2VBN\n" "DL2VK\n" "DL2VLA\n" "DL2VM\n" "DL2VNL\n" "DL2VPF\n" "DL2VPO\n" "DL2VRL\n" "DL2VSF\n" "DL2VVL\n" "DL2VWR\n" "DL2WB\n" "DL2WJT\n" "DL2XB\n" "DL2YCA\n" "DL2YED\n" "DL2YET\n" "DL2YL\n" "DL2YMR\n" "DL2ZA\n" "DL2ZAE\n" "DL2ZBO\n" "DL2ZN\n" "DL3ABL\n" "DL3AG\n" "DL3ALI\n" "DL3AMB\n" "DL3AMW\n" "DL3ANK\n" "DL3AO\n" "DL3APK\n" "DL3APO\n" "DL3AQJ\n" "DL3ARH\n" "DL3ARK\n" "DL3ARM\n" "DL3AS\n" "DL3AVI\n" "DL3AWB\n" "DL3AWI\n" "DL3AYJ\n" "DL3AZI\n" "DL3BAL\n" "DL3BBY\n" "DL3BCR\n" "DL3BCU\n" "DL3BPC\n" "DL3BQA\n" "DL3BRA\n" "DL3BRE\n" "DL3BUE\n" "DL3BVA\n" "DL3BXX\n" "DL3CA\n" "DL3DBY\n" "DL3DCQ\n" "DL3DQL\n" "DL3DRN\n" "DL3DTH\n" "DL3DXF\n" "DL3DXX\n" "DL3EA\n" "DL3EBX\n" "DL3EEE\n" "DL3EK\n" "DL3EL\n" "DL3FBB\n" "DL3FBJ\n" "DL3FCG\n" "DL3FDT\n" "DL3FF\n" "DL3FSC\n" "DL3G\n" "DL3GA\n" "DL3GCB\n" "DL3GD\n" "DL3GDS\n" "DL3GER\n" "DL3HAA\n" "DL3HRT\n" "DL3HRW\n" "DL3HRZ\n" "DL3HSC\n" "DL3HWD\n" "DL3HXX\n" "DL3IAC\n" "DL3JA\n" "DL3JAN\n" "DL3JFN\n" "DL3JH\n" "DL3JJ\n" "DL3JON\n" "DL3JPN\n" "DL3JRA\n" "DL3KDC\n" "DL3KDS\n" "DL3KF\n" "DL3KO\n" "DL3KP\n" "DL3KUD\n" "DL3KUF\n" "DL3KUM\n" "DL3KVR\n" "DL3KVT\n" "DL3KWF\n" "DL3KWR\n" "DL3KZA\n" "DL3LA\n" "DL3LAB\n" "DL3LBM\n" "DL3LE\n" "DL3MBG\n" "DL3MBJ\n" "DL3MBX\n" "DL3MCO\n" "DL3MDJ\n" "DL3MGK\n" "DL3MGN\n" "DL3MR\n" "DL3NAA\n" "DL3NCR\n" "DL3NCS\n" "DL3NDD\n" "DL3NDP\n" "DL3NGN\n" "DL3NSM\n" "DL3OAU\n" "DL3OBQ\n" "DL3OBW\n" "DL3OCF\n" "DL3OH\n" "DL3OHB\n" "DL3OR\n" "DL3OV\n" "DL3PA\n" "DL3PN\n" "DL3PU\n" "DL3QQ\n" "DL3RAD\n" "DL3RCF\n" "DL3RDM\n" "DL3RSB\n" "DL3SBD\n" "DL3SCN\n" "DL3SDN\n" "DL3SEM\n" "DL3SWS\n" "DL3SZ\n" "DL3TC\n" "DL3TD\n" "DL3TNA\n" "DL3VDL\n" "DL3VL\n" "DL3VTA\n" "DL3VTL\n" "DL3VZL\n" "DL3WKG\n" "DL3XM\n" "DL3XS\n" "DL3YA\n" "DL3YAF\n" "DL3YCF\n" "DL3YCX\n" "DL3YDY\n" "DL3YEE\n" "DL3YHM\n" "DL3YL\n" "DL3YM\n" "DL3ZAI\n" "DL3ZH\n" "DL3ZI\n" "DL3ZM\n" "DL3ZZA\n" "DL4A\n" "DL4AAE\n" "DL4AC\n" "DL4ALI\n" "DL4AO\n" "DL4AWA\n" "DL4BBJ\n" "DL4BCJ\n" "DL4CC\n" "DL4CF\n" "DL4CH\n" "DL4CW\n" "DL4DBG\n" "DL4DBM\n" "DL4DCE\n" "DL4DCL\n" "DL4DG\n" "DL4DKM\n" "DL4DQA\n" "DL4DTL\n" "DL4DZL\n" "DL4EAX\n" "DL4EBA\n" "DL4EBV\n" "DL4EBW\n" "DL4EDB\n" "DL4EDC\n" "DL4EPM\n" "DL4FAP\n" "DL4FCH\n" "DL4FDI\n" "DL4FDM\n" "DL4FF\n" "DL4FN\n" "DL4FO\n" "DL4GBA\n" "DL4GN\n" "DL4HG\n" "DL4HG/P\n" "DL4HRM\n" "DL4HSI\n" "DL4HTK\n" "DL4HWI\n" "DL4IAH\n" "DL4IAL\n" "DL4IAZ\n" "DL4IW\n" "DL4IZ\n" "DL4JLM\n" "DL4JMN\n" "DL4JNB\n" "DL4JU\n" "DL4JWU\n" "DL4JYT\n" "DL4KCA\n" "DL4KG\n" "DL4KUG\n" "DL4KW\n" "DL4LAM\n" "DL4LAX\n" "DL4LBK\n" "DL4LBM\n" "DL4LH\n" "DL4MA\n" "DL4MAQ\n" "DL4MAU\n" "DL4MBY\n" "DL4MCF\n" "DL4MDO\n" "DL4ME\n" "DL4MEV\n" "DL4MFC\n" "DL4MFF\n" "DL4MFP\n" "DL4MHA\n" "DL4MN\n" "DL4MNG\n" "DL4MP\n" "DL4NBE\n" "DL4NEG\n" "DL4NER\n" "DL4NN\n" "DL4NT\n" "DL4NY\n" "DL4OCE\n" "DL4OCH\n" "DL4OL\n" "DL4PU/P\n" "DL4PY\n" "DL4R\n" "DL4RAK\n" "DL4RAT\n" "DL4RBV\n" "DL4RCK\n" "DL4RDJ\n" "DL4RDP\n" "DL4RU\n" "DL4RX\n" "DL4SDW\n" "DL4SL\n" "DL4SUN\n" "DL4SVA\n" "DL4SZB\n" "DL4TJ\n" "DL4TL\n" "DL4TZ\n" "DL4UCS\n" "DL4UL\n" "DL4UNY\n" "DL4VAI\n" "DL4VAQ\n" "DL4VBU\n" "DL4VCG\n" "DL4VCR\n" "DL4VM\n" "DL4VQ\n" "DL4WA\n" "DL4WD\n" "DL4WDK\n" "DL4WG\n" "DL4XU\n" "DL4YAO\n" "DL4YAR\n" "DL4YBP\n" "DL4YIH\n" "DL4YR\n" "DL4YY\n" "DL4ZA\n" "DL4ZB\n" "DL4ZBP\n" "DL4ZBU\n" "DL4ZBY\n" "DL4ZM\n" "DL5AI\n" "DL5ALW\n" "DL5AMF\n" "DL5AN\n" "DL5ANE\n" "DL5ANS\n" "DL5ANT\n" "DL5AOJ\n" "DL5ARM\n" "DL5ARZ\n" "DL5ASE\n" "DL5ASK\n" "DL5AWI\n" "DL5AX\n" "DL5AXJ\n" "DL5AXX\n" "DL5AYI\n" "DL5AZA\n" "DL5BAW\n" "DL5BCF\n" "DL5CD\n" "DL5CF\n" "DL5CK\n" "DL5CL\n" "DL5CO\n" "DL5CR\n" "DL5CT\n" "DL5CW\n" "DL5CX\n" "DL5DBH\n" "DL5DCL\n" "DL5DD\n" "DL5DF\n" "DL5DRM\n" "DL5DSM\n" "DL5DWF\n" "DL5DXS\n" "DL5DZ\n" "DL5EBF\n" "DL5FAC\n" "DL5FAM\n" "DL5FBB\n" "DL5FCV\n" "DL5FCZ\n" "DL5FR\n" "DL5FU\n" "DL5GAC\n" "DL5GBG\n" "DL5GBN\n" "DL5GCH\n" "DL5HAB\n" "DL5HN\n" "DL5HP\n" "DL5IAH\n" "DL5IC\n" "DL5IO\n" "DL5JAB\n" "DL5JAG\n" "DL5JAG/P\n" "DL5JAN\n" "DL5JBW\n" "DL5JH\n" "DL5JRA\n" "DL5JS\n" "DL5JSP\n" "DL5JWL\n" "DL5KM\n" "DL5KMS\n" "DL5KUA\n" "DL5KUD\n" "DL5KUR\n" "DL5KUS\n" "DL5KUT\n" "DL5KVV\n" "DL5L\n" "DL5LBY\n" "DL5LWM\n" "DL5MAE\n" "DL5MBY\n" "DL5MC\n" "DL5MEV\n" "DL5MFL\n" "DL5MG\n" "DL5MHR\n" "DL5MK\n" "DL5ML\n" "DL5MLO\n" "DL5MO\n" "DL5MU\n" "DL5MX\n" "DL5NA\n" "DL5NDX\n" "DL5NO\n" "DL5NUA\n" "DL5OAB\n" "DL5OAS\n" "DL5OB\n" "DL5OCD\n" "DL5OO\n" "DL5PW\n" "DL5QS\n" "DL5RBR\n" "DL5RBW\n" "DL5RDI\n" "DL5RDO\n" "DL5RDP\n" "DL5RF\n" "DL5RJ\n" "DL5RK\n" "DL5RM\n" "DL5RMH\n" "DL5RU\n" "DL5SBA\n" "DL5SE\n" "DL5SL\n" "DL5ST\n" "DL5SVB\n" "DL5SWB\n" "DL5SZB\n" "DL5UR\n" "DL5VW\n" "DL5VZ\n" "DL5WC\n" "DL5WG\n" "DL5WK\n" "DL5WM\n" "DL5WP\n" "DL5WS\n" "DL5WW\n" "DL5WX\n" "DL5XAT\n" "DL5XJ\n" "DL5YAL\n" "DL5YAS\n" "DL5YCI\n" "DL5YEE\n" "DL5YL\n" "DL5YM\n" "DL5YWM\n" "DL5YYM\n" "DL5ZA\n" "DL5ZAA\n" "DL5ZB\n" "DL5ZBA\n" "DL5ZBO\n" "DL5ZBS\n" "DL5ZG\n" "DL5ZL\n" "DL5ZL/P\n" "DL60DARC\n" "DL6AAF\n" "DL6AAO\n" "DL6ABB\n" "DL6ABN\n" "DL6AG\n" "DL6ALJ\n" "DL6AP\n" "DL6AST\n" "DL6ATI\n" "DL6ATM\n" "DL6AWJ\n" "DL6AZ\n" "DL6BBR\n" "DL6BBT\n" "DL6BJ\n" "DL6BLD\n" "DL6BQE\n" "DL6BR\n" "DL6CGB\n" "DL6CGX\n" "DL6CKP\n" "DL6CMK\n" "DL6CNG\n" "DL6CT\n" "DL6CWL\n" "DL6CX\n" "DL6DCD\n" "DL6DH\n" "DL6DSA\n" "DL6DVU\n" "DL6EAQ\n" "DL6ERD\n" "DL6ET\n" "DL6EZ\n" "DL6FA\n" "DL6FAH\n" "DL6FAN\n" "DL6FAX\n" "DL6FBH\n" "DL6FBL\n" "DL6FBR\n" "DL6FCB\n" "DL6FRG\n" "DL6GV\n" "DL6HCF\n" "DL6HRW\n" "DL6IAN\n" "DL6IY\n" "DL6JCB\n" "DL6JGN\n" "DL6JI\n" "DL6JV\n" "DL6JZ\n" "DL6KAC\n" "DL6KCR\n" "DL6KHW\n" "DL6KO\n" "DL6KR\n" "DL6KT\n" "DL6KVA\n" "DL6KVH\n" "DL6KWN\n" "DL6KY\n" "DL6LBQ\n" "DL6LW\n" "DL6MAO\n" "DL6MDG\n" "DL6MFK\n" "DL6MGR\n" "DL6MHG\n" "DL6MHW\n" "DL6MIG\n" "DL6MN\n" "DL6MRS\n" "DL6MTA\n" "DL6MWG\n" "DL6NAL\n" "DL6NAL/P\n" "DL6NBR\n" "DL6NCY\n" "DL6NDW\n" "DL6NEF\n" "DL6NWA\n" "DL6OA\n" "DL6OAA\n" "DL6OCF\n" "DL6OCM\n" "DL6OZ\n" "DL6PO\n" "DL6QW\n" "DL6RAI\n" "DL6RAW\n" "DL6RAW/P\n" "DL6RBG\n" "DL6RBH\n" "DL6RBO\n" "DL6RCD\n" "DL6SDW\n" "DL6SFR\n" "DL6SRD\n" "DL6TK\n" "DL6TQ\n" "DL6UAA\n" "DL6UAM\n" "DL6UBM\n" "DL6UGF\n" "DL6UHA\n" "DL6UHD\n" "DL6UJ\n" "DL6UKL\n" "DL6UKW\n" "DL6UM\n" "DL6UMF\n" "DL6UNF\n" "DL6UOF\n" "DL6USA\n" "DL6VK\n" "DL6VRG\n" "DL6WT\n" "DL6XA\n" "DL6XK\n" "DL6XX\n" "DL6XZ\n" "DL6YCU\n" "DL6YDH\n" "DL6YFG\n" "DL6ZBN\n" "DL6ZFG\n" "DL6ZXG\n" "DL7AAG\n" "DL7AEV\n" "DL7AFY\n" "DL7AMU\n" "DL7ANR\n" "DL7AOJ\n" "DL7AOS\n" "DL7APK\n" "DL7APT\n" "DL7AQT\n" "DL7AQU\n" "DL7ARJ\n" "DL7ARM\n" "DL7ARV\n" "DL7AT\n" "DL7AU\n" "DL7AXM\n" "DL7BA\n" "DL7BC\n" "DL7BPM\n" "DL7BQ\n" "DL7BW\n" "DL7BY\n" "DL7CB\n" "DL7CK\n" "DL7CM\n" "DL7CO\n" "DL7CS\n" "DL7CU\n" "DL7CX\n" "DL7DAX\n" "DL7DCL\n" "DL7DJ\n" "DL7DO\n" "DL7DS\n" "DL7DZ\n" "DL7ED\n" "DL7EDH\n" "DL7ET\n" "DL7FA\n" "DL7FCQ\n" "DL7FN\n" "DL7GEM\n" "DL7GN\n" "DL7GP\n" "DL7GW\n" "DL7HT\n" "DL7HU\n" "DL7HZ\n" "DL7IO\n" "DL7JAN\n" "DL7JOM\n" "DL7JRD\n" "DL7JV\n" "DL7LG\n" "DL7LX\n" "DL7LZ\n" "DL7OD\n" "DL7OK\n" "DL7ON\n" "DL7PA\n" "DL7PV\n" "DL7QU\n" "DL7QW\n" "DL7RAG\n" "DL7RV\n" "DL7SAQ\n" "DL7SBV\n" "DL7SI\n" "DL7SLB\n" "DL7SP\n" "DL7TJ\n" "DL7UAJ\n" "DL7UCW\n" "DL7UCX\n" "DL7UDA\n" "DL7UDG\n" "DL7UEB\n" "DL7UFN\n" "DL7UG\n" "DL7UGO\n" "DL7UIO\n" "DL7UK\n" "DL7UKA\n" "DL7ULM\n" "DL7UM\n" "DL7UMK\n" "DL7UMK/P\n" "DL7UML\n" "DL7UPF\n" "DL7UPN\n" "DL7URH\n" "DL7USA\n" "DL7USY\n" "DL7UVO\n" "DL7UWE\n" "DL7UWR\n" "DL7UXG\n" "DL7VAF\n" "DL7VAI\n" "DL7VBJ\n" "DL7VEE\n" "DL7VFM\n" "DL7VHP\n" "DL7VIO\n" "DL7VKG\n" "DL7VMM\n" "DL7VOE\n" "DL7VPE\n" "DL7VPO\n" "DL7VRG\n" "DL7VSN\n" "DL7VX\n" "DL7XR\n" "DL7XU\n" "DL7YAD\n" "DL7YS\n" "DL7YY\n" "DL8AAE\n" "DL8AAM\n" "DL8AAV\n" "DL8ABK\n" "DL8AWK\n" "DL8AX\n" "DL8BED\n" "DL8BTE\n" "DL8BU\n" "DL8CA\n" "DL8CKL\n" "DL8CMM\n" "DL8CN\n" "DL8CO\n" "DL8CWA\n" "DL8DAS\n" "DL8DAZ\n" "DL8DBW\n" "DL8DC\n" "DL8DUL\n" "DL8DW\n" "DL8DWW\n" "DL8DX\n" "DL8DXF\n" "DL8DXL\n" "DL8DXW\n" "DL8DYL\n" "DL8DZV\n" "DL8EAQ\n" "DL8FD\n" "DL8FL\n" "DL8FP\n" "DL8HA\n" "DL8HCO\n" "DL8HK\n" "DL8IH\n" "DL8JDX\n" "DL8JEW\n" "DL8JS\n" "DL8KAC\n" "DL8KJ\n" "DL8KX\n" "DL8LAS\n" "DL8LBK\n" "DL8LDN\n" "DL8MBS\n" "DL8MKG\n" "DL8NBE\n" "DL8NBJ\n" "DL8NCF\n" "DL8NCG\n" "DL8NU\n" "DL8OBF\n" "DL8OH\n" "DL8PG\n" "DL8QC\n" "DL8QS\n" "DL8R\n" "DL8RB\n" "DL8RBS\n" "DL8RCL\n" "DL8RDL\n" "DL8RJ\n" "DL8SAD\n" "DL8SAS\n" "DL8SCG\n" "DL8SH\n" "DL8SMC\n" "DL8STW\n" "DL8TG\n" "DL8TL\n" "DL8TN\n" "DL8TR\n" "DL8UAA\n" "DL8UAT\n" "DL8UCC\n" "DL8UFO\n" "DL8UGF\n" "DL8UI\n" "DL8UKE\n" "DL8ULO\n" "DL8UNF\n" "DL8UO\n" "DL8UP\n" "DL8USA\n" "DL8UVG\n" "DL8UWE\n" "DL8VN\n" "DL8VX\n" "DL8WAA\n" "DL8WAZ\n" "DL8WBB\n" "DL8WEM\n" "DL8WN\n" "DL8WX\n" "DL8XF\n" "DL8YAU\n" "DL8YBM\n" "DL8YH\n" "DL8YR\n" "DL8YS\n" "DL8ZAJ\n" "DL8ZU\n" "DL8ZVG\n" "DL9ABM\n" "DL9AJ\n" "DL9AKA\n" "DL9AWI\n" "DL9BBE\n" "DL9BG\n" "DL9CE\n" "DL9CI\n" "DL9CIA\n" "DL9CM\n" "DL9CW\n" "DL9DA\n" "DL9DAC\n" "DL9DAJ\n" "DL9DRA\n" "DL9DRZ\n" "DL9DWR\n" "DL9DYL\n" "DL9ECA\n" "DL9EE\n" "DL9EI\n" "DL9EJ\n" "DL9EO\n" "DL9FB\n" "DL9FC\n" "DL9GCG\n" "DL9GFB\n" "DL9GMC\n" "DL9GMM\n" "DL9GMN\n" "DL9GR\n" "DL9GRE\n" "DL9GS\n" "DL9GTB\n" "DL9GTI\n" "DL9GTK\n" "DL9GWD\n" "DL9HB\n" "DL9HC\n" "DL9HD\n" "DL9HK\n" "DL9IE\n" "DL9IU\n" "DL9JBN\n" "DL9JL\n" "DL9JN\n" "DL9JON\n" "DL9JSO\n" "DL9LF\n" "DL9LM\n" "DL9MBI\n" "DL9MBZ\n" "DL9MCD\n" "DL9MCO\n" "DL9MDI\n" "DL9MEN\n" "DL9MFY\n" "DL9MKA\n" "DL9MKN\n" "DL9MRF\n" "DL9MS\n" "DL9MWG\n" "DL9NCR\n" "DL9NDS\n" "DL9NDV\n" "DL9NEF\n" "DL9NEI\n" "DL9NM\n" "DL9NO\n" "DL9OC\n" "DL9OCG\n" "DL9OLI\n" "DL9PT\n" "DL9QJ\n" "DL9RBT\n" "DL9RCF\n" "DL9RT\n" "DL9SBL\n" "DL9SEV\n" "DL9SFE\n" "DL9SN\n" "DL9SUB\n" "DL9SXX\n" "DL9TJ\n" "DL9UJF\n" "DL9UO\n" "DL9WC\n" "DL9WJH\n" "DL9WO\n" "DL9XAW\n" "DL9YAJ\n" "DL9YBY\n" "DL9YCS\n" "DL9YDW\n" "DL9YX\n" "DL9ZAL\n" "DL9ZAP\n" "DL9ZEA\n" "DL9ZP\n" "DL9ZWG\n" "DM0E\n" "DM0Y\n" "DM1A\n" "DM1AM\n" "DM1DE\n" "DM1FS\n" "DM1KE\n" "DM1LM\n" "DM1PW\n" "DM1RG\n" "DM1T\n" "DM1TT\n" "DM1YP\n" "DM1YS\n" "DM2A\n" "DM2AF\n" "DM2AML\n" "DM2AOC\n" "DM2AUO\n" "DM2AWM\n" "DM2BM\n" "DM2BPG\n" "DM2BR\n" "DM2BRF\n" "DM2C\n" "DM2DMI\n" "DM2DTH\n" "DM2DXA\n" "DM2EV\n" "DM2FDO\n" "DM2GFN\n" "DM2GG\n" "DM2LB\n" "DM2ORI\n" "DM2RG\n" "DM2RN\n" "DM2RP\n" "DM2TO\n" "DM2TS\n" "DM2XO\n" "DM3B\n" "DM3BJ\n" "DM3CW\n" "DM3DA\n" "DM3DL\n" "DM3F\n" "DM3FF\n" "DM3FG\n" "DM3FZN\n" "DM3GH\n" "DM3HZN\n" "DM3K\n" "DM3KF\n" "DM3KTO\n" "DM3KXL\n" "DM3KZN\n" "DM3MH\n" "DM3ML\n" "DM3MM\n" "DM3MR\n" "DM3PKK\n" "DM3PYA\n" "DM3RB\n" "DM3SCK\n" "DM3SU\n" "DM3VL\n" "DM3W\n" "DM3WSO\n" "DM3X/P\n" "DM3XI\n" "DM3ZF\n" "DM4DB\n" "DM4DX\n" "DM4G\n" "DM4IM\n" "DM4KR\n" "DM4M\n" "DM4TI\n" "DM4TNF\n" "DM4WL\n" "DM4YWL\n" "DM50KWF\n" "DM50PSF\n" "DM5A\n" "DM5AA\n" "DM5BB\n" "DM5CQ\n" "DM5CT\n" "DM5DM\n" "DM5DX\n" "DM5EL\n" "DM5GI\n" "DM5JBN\n" "DM5JF\n" "DM5JL\n" "DM5LK\n" "DM5MA\n" "DM5MM\n" "DM5R\n" "DM5TI\n" "DM5WF\n" "DM5WH\n" "DM5Z\n" "DM5ZQL\n" "DM6DL\n" "DM6HK\n" "DM6TM\n" "DM6YY\n" "DM7C\n" "DM7DX\n" "DM7MM\n" "DM7MRE\n" "DM7RM\n" "DM7XT\n" "DM9CCOL\n" "DM9JM\n" "DM9K\n" "DM9KT\n" "DM9LSB\n" "DN1CS\n" "DN1JC\n" "DN1SJ\n" "DN2LD\n" "DN2WD\n" "DN2WH\n" "DN3AMH/P\n" "DN4NER\n" "DN5KID\n" "DN5PP\n" "DN6WT\n" "DO1AYJ\n" "DO1BEN\n" "DO1CDE\n" "DO1CO\n" "DO1CS\n" "DO1CTL\n" "DO1DEL\n" "DO1DJJ\n" "DO1DMI\n" "DO1DQ\n" "DO1DXX\n" "DO1ESK\n" "DO1FV\n" "DO1GC\n" "DO1GM\n" "DO1HGS\n" "DO1HPW\n" "DO1IJB\n" "DO1IQ\n" "DO1JVA\n" "DO1JWZ\n" "DO1KM\n" "DO1KRT\n" "DO1KUB\n" "DO1MGN\n" "DO1MKA\n" "DO1NWA\n" "DO1OHL\n" "DO1PKL\n" "DO1PM\n" "DO1RTO\n" "DO1SAJ\n" "DO1SJF\n" "DO1SKJ\n" "DO1SSB\n" "DO1THG\n" "DO1TU\n" "DO1UZ\n" "DO1VK\n" "DO1WRB\n" "DO1WUP\n" "DO1YCL\n" "DO1YHN\n" "DO1YNM\n" "DO1YWF\n" "DO2BL\n" "DO2DC\n" "DO2DT\n" "DO2GN\n" "DO2HO\n" "DO2JP\n" "DO2MGY\n" "DO2ML\n" "DO2MS\n" "DO2SBE\n" "DO2SYD\n" "DO2TC\n" "DO2WAL\n" "DO2YPB\n" "DO3AH\n" "DO3BJ\n" "DO3BST\n" "DO3ED\n" "DO3HEL\n" "DO3HF\n" "DO3IR\n" "DO3LU\n" "DO3ME\n" "DO3MU\n" "DO3NN\n" "DO3NO\n" "DO3PKE\n" "DO3SH\n" "DO3SP\n" "DO3UWE\n" "DO3VE\n" "DO3WBH\n" "DO3WG\n" "DO4APB\n" "DO4AV\n" "DO4DW\n" "DO4DXA\n" "DO4HRE\n" "DO4JS\n" "DO4JU\n" "DO4KC\n" "DO4NW\n" "DO4OD\n" "DO4RJ\n" "DO4TP\n" "DO4YU\n" "DO5AWE\n" "DO5DF\n" "DO5DGH\n" "DO5FE\n" "DO5HCS\n" "DO5KWH\n" "DO5LN\n" "DO5MCL\n" "DO5MST\n" "DO5OT\n" "DO5RT\n" "DO5SL\n" "DO5SU\n" "DO5TAN\n" "DO5WA\n" "DO5WD\n" "DO5WW\n" "DO6AL\n" "DO6DZ\n" "DO6ELW\n" "DO6GZ\n" "DO6HMA\n" "DO6JJ\n" "DO6KDS\n" "DO6MBA\n" "DO6NI\n" "DO6OA\n" "DO6PP\n" "DO6RO\n" "DO6SD\n" "DO6SR\n" "DO6TPG\n" "DO6YL\n" "DO7ADH\n" "DO7AF\n" "DO7AK\n" "DO7DC\n" "DO7DSV\n" "DO7DU\n" "DO7FC\n" "DO7HS\n" "DO7JF\n" "DO7JF/P\n" "DO7JVB\n" "DO7LR\n" "DO7MAN\n" "DO7OM\n" "DO7RAF\n" "DO7WP\n" "DO8AH\n" "DO8CW\n" "DO8DL\n" "DO8LA\n" "DO8OL\n" "DO8RW\n" "DO8TB\n" "DO8YX\n" "DO9BC\n" "DO9PL\n" "DO9RE\n" "DO9ST\n" "DP1POL\n" "DP3D\n" "DP3E\n" "DP4A\n" "DP4D\n" "DP4K\n" "DP4N\n" "DP4P\n" "DP4W\n" "DP5A\n" "DP5E\n" "DP5M\n" "DP5W\n" "DP5X\n" "DP6A\n" "DP6M\n" "DP6T\n" "DP7A\n" "DP8P\n" "DP9A\n" "DP9I\n" "DP9Z\n" "DQ0A\n" "DQ0B\n" "DQ0L\n" "DQ1A\n" "DQ3M\n" "DQ4Q\n" "DQ4T\n" "DQ4W\n" "DQ5T\n" "DQ6E\n" "DQ8N\n" "DR0K\n" "DR0X\n" "DR10TCC\n" "DR12IAAF\n" "DR1A\n" "DR1F\n" "DR1R\n" "DR1X\n" "DR2010L\n" "DR2010N\n" "DR2010O\n" "DR20MVP\n" "DR2C\n" "DR2N\n" "DR2P\n" "DR2Q\n" "DR2W\n" "DR3R\n" "DR3W\n" "DR3X\n" "DR4A\n" "DR4G\n" "DR4T\n" "DR4W\n" "DR5A\n" "DR5L\n" "DR5N\n" "DR5O\n" "DR5X\n" "DR5Z\n" "DR600UL\n" "DR60GER\n" "DR6J\n" "DR775TMG\n" "DR7T\n" "DR800GRZ\n" "DR888PL\n" "DR8M\n" "DS0HAN\n" "DS1AFL\n" "DS1CPT\n" "DS1JFY\n" "DS1OKY\n" "DS1PEG\n" "DS1PRD\n" "DS1QMV\n" "DS1REE\n" "DS1RJI\n" "DS2GOO\n" "DS2GWM\n" "DS2JJV\n" "DS2KGJ\n" "DS2OQF\n" "DS3FGV\n" "DS3MLG/2\n" "DS4CNB\n" "DS4DBF\n" "DS4DBG\n" "DS4DRT\n" "DS4FMG\n" "DS4GCS\n" "DS4GEX\n" "DS4GGM\n" "DS4GKF\n" "DS4GKG\n" "DS4OVT\n" "DS5ACV\n" "DS5ANY\n" "DS5BRE\n" "DS5DNO\n" "DS5DYM\n" "DS5FNE\n" "DS5KJR\n" "DS5KOU\n" "DS5QLJ\n" "DS5TOS\n" "DS5UST\n" "DT0IT\n" "DU1AV\n" "DU1BP\n" "DU1EG\n" "DU1EV\n" "DU1IVT\n" "DU1JI\n" "DU1LC\n" "DU1UGZ\n" "DU3NXE\n" "DU7/PA0HIP\n" "DU9/DL5SDF\n" "DU9RG\n" "DV1/JO7KMB\n" "DV1JM\n" "DV1SDT\n" "DV1UBY\n" "DV1VSR\n" "DV5PO\n" "DW1VKT\n" "DX1ARM\n" "DX1CW\n" "DX1DBT\n" "DX1HQ\n" "DX1J\n" "DX1M\n" "DX1PRS\n" "DX9DX\n" "E20AC\n" "E20AS\n" "E20HHK\n" "E20WXA\n" "E20YLM\n" "E21AOY\n" "E21EIC\n" "E21EJC\n" "E21IZC\n" "E21YDP\n" "E51CG\n" "E51COF\n" "E51JD\n" "E51QQQ\n" "E51USA\n" "E70JA\n" "E70M\n" "E70R\n" "E70T\n" "E71A\n" "E71DX\n" "E71EDV\n" "E71EZC\n" "E71M\n" "E71S\n" "E71W\n" "E72B\n" "E72C\n" "E72DX\n" "E72MM\n" "E72U\n" "E72W\n" "E72X\n" "E73ACL\n" "E73BB\n" "E73C\n" "E73DX\n" "E73ECJ\n" "E73ESP\n" "E73F\n" "E73FDE\n" "E73M\n" "E73MJ\n" "E73MS\n" "E73O\n" "E73PY\n" "E73S\n" "E73T\n" "E73TTT\n" "E73U\n" "E73W\n" "E73X\n" "E73XL\n" "E73Y\n" "E73YL\n" "E74A\n" "E74AA\n" "E74AW\n" "E74BQ\n" "E74BY\n" "E74CN\n" "E74DT\n" "E74DX\n" "E74EBL\n" "E74EE\n" "E74FN\n" "E74GZ\n" "E74IO\n" "E74IW\n" "E74JS\n" "E74KC\n" "E74KM\n" "E74QA\n" "E74QG\n" "E74SD\n" "E74VT\n" "E74WN\n" "E74X\n" "E74Y\n" "E74ZZ\n" "E75A\n" "E75AZ\n" "E75MC\n" "E75MJ\n" "E75O\n" "E76C\n" "E77A\n" "E77BA\n" "E77C\n" "E77CFG\n" "E77DX\n" "E77E\n" "E77EZ\n" "E77G\n" "E77J\n" "E77K\n" "E77M\n" "E77O\n" "E77R\n" "E77U\n" "E77XZ\n" "E77Y\n" "E78AA\n" "E78ATM\n" "E78CB\n" "E78DX\n" "E78G\n" "E79D\n" "E79EA\n" "E79Z\n" "E7DX\n" "E7HQ\n" "E7SRRS\n" "EA1AAA\n" "EA1AAW\n" "EA1ABS\n" "EA1ABT\n" "EA1ACP\n" "EA1AHY\n" "EA1AKS\n" "EA1AP\n" "EA1APS\n" "EA1APV\n" "EA1AQ\n" "EA1AQE\n" "EA1AR\n" "EA1AS\n" "EA1ASC\n" "EA1ASG\n" "EA1AST\n" "EA1AUS\n" "EA1AUT\n" "EA1AW\n" "EA1BAF\n" "EA1BFZ\n" "EA1BGV\n" "EA1BHR\n" "EA1BIM\n" "EA1BLA\n" "EA1BLI\n" "EA1BLX\n" "EA1BNF\n" "EA1BP\n" "EA1BRB\n" "EA1BTX\n" "EA1BXX\n" "EA1CBX\n" "EA1CCM\n" "EA1CCW\n" "EA1CDI\n" "EA1CF\n" "EA1CGK\n" "EA1CJ\n" "EA1CJF\n" "EA1CJH\n" "EA1CP\n" "EA1CQ\n" "EA1CRL\n" "EA1CS\n" "EA1CUB\n" "EA1DDU\n" "EA1DFP\n" "EA1DGG\n" "EA1DIW\n" "EA1DKV\n" "EA1DR\n" "EA1DRL\n" "EA1DVY\n" "EA1DZM\n" "EA1EA\n" "EA1EAU\n" "EA1EED\n" "EA1EEY\n" "EA1EMB\n" "EA1ET\n" "EA1EUI\n" "EA1EVR\n" "EA1EVS\n" "EA1EWC\n" "EA1EWY\n" "EA1EWY/P\n" "EA1EXE\n" "EA1EY\n" "EA1EYG\n" "EA1FAU\n" "EA1FBU\n" "EA1FCI\n" "EA1FD\n" "EA1FDI\n" "EA1GA\n" "EA1GAZ\n" "EA1GFT\n" "EA1GHT\n" "EA1GIB\n" "EA1GPL\n" "EA1GT\n" "EA1GWL\n" "EA1GWM\n" "EA1GY\n" "EA1HDD\n" "EA1HF\n" "EA1HFI\n" "EA1HLH\n" "EA1HLL\n" "EA1HOE\n" "EA1IT\n" "EA1JK\n" "EA1JO\n" "EA1JW\n" "EA1KC\n" "EA1KE\n" "EA1KY\n" "EA1MR\n" "EA1MV\n" "EA1MX\n" "EA1ND\n" "EA1NE\n" "EA1NX\n" "EA1OD\n" "EA1OS\n" "EA1OT\n" "EA1PO\n" "EA1PP\n" "EA1QA\n" "EA1QK\n" "EA1QT\n" "EA1RCR\n" "EA1RG\n" "EA1RJ\n" "EA1RKA\n" "EA1RU\n" "EA1SA\n" "EA1SB\n" "EA1SZ\n" "EA1TI\n" "EA1URF\n" "EA1URO\n" "EA1VIC\n" "EA1VT\n" "EA1WX\n" "EA1XT\n" "EA1YB\n" "EA1YG\n" "EA1YO\n" "EA1YR\n" "EA2AAZ\n" "EA2ABI\n" "EA2AFV\n" "EA2AOO/P\n" "EA2AOS\n" "EA2AP\n" "EA2ASB\n" "EA2AVM\n" "EA2AWF\n" "EA2AZ\n" "EA2BCJ\n" "EA2BD\n" "EA2BEF\n" "EA2BNU\n" "EA2BVV\n" "EA2CAR\n" "EA2CCG\n" "EA2CE\n" "EA2CHL\n" "EA2CIN\n" "EA2CJ\n" "EA2CNU\n" "EA2CQ\n" "EA2CTB\n" "EA2CXS\n" "EA2CXT\n" "EA2CYJ\n" "EA2DCF\n" "EA2DK\n" "EA2DNR\n" "EA2DOT\n" "EA2DPN\n" "EA2DR\n" "EA2EA\n" "EA2EC\n" "EA2GP\n" "EA2HA\n" "EA2IA\n" "EA2IF\n" "EA2JB\n" "EA2JE\n" "EA2KU\n" "EA2KV\n" "EA2KY\n" "EA2LU\n" "EA2MH\n" "EA2NN\n" "EA2OK\n" "EA2PI\n" "EA2QU\n" "EA2RC\n" "EA2RCF\n" "EA2RKG\n" "EA2RW\n" "EA2RY\n" "EA2SS\n" "EA2SW\n" "EA2TO\n" "EA2VE\n" "EA2VI\n" "EA2WD\n" "EA2YY\n" "EA3/CX8CP\n" "EA3/EA8TL\n" "EA3/K1MM\n" "EA3AAH\n" "EA3AEL\n" "EA3AGZ\n" "EA3AIZ\n" "EA3AKA\n" "EA3ALV\n" "EA3ALZ\n" "EA3AMS\n" "EA3ANE\n" "EA3APV\n" "EA3AQL\n" "EA3AR\n" "EA3AS\n" "EA3ATM\n" "EA3ATO\n" "EA3AV\n" "EA3AVV\n" "EA3AXM\n" "EA3AYK\n" "EA3BCK\n" "EA3BFK\n" "EA3BHK\n" "EA3BJM\n" "EA3BOW\n" "EA3BOX\n" "EA3BT\n" "EA3CC\n" "EA3CCN\n" "EA3CEC\n" "EA3CEC/EA1\n" "EA3CI\n" "EA3CT\n" "EA3CUU\n" "EA3CXG\n" "EA3CZ\n" "EA3CZM\n" "EA3CZR\n" "EA3DEN\n" "EA3DIQ\n" "EA3DTD\n" "EA3DUM\n" "EA3DVJ\n" "EA3DW\n" "EA3DWS\n" "EA3EAN\n" "EA3EDU\n" "EA3EEE\n" "EA3EGB\n" "EA3EIQ\n" "EA3EJI\n" "EA3EJJ\n" "EA3ELZ\n" "EA3ESE\n" "EA3ESJ\n" "EA3EU\n" "EA3EVL\n" "EA3EVR\n" "EA3EXP\n" "EA3EYD\n" "EA3EZD\n" "EA3FAG\n" "EA3FAR\n" "EA3FF\n" "EA3FHC\n" "EA3FHP\n" "EA3FLS\n" "EA3FYD\n" "EA3GBA\n" "EA3GBU\n" "EA3GEG\n" "EA3GEO\n" "EA3GHZ\n" "EA3GLB\n" "EA3GNP\n" "EA3GOA\n" "EA3GOD\n" "EA3GP\n" "EA3GUG\n" "EA3GXH\n" "EA3GXJ\n" "EA3GXL\n" "EA3GYK\n" "EA3GYK/5\n" "EA3HAB\n" "EA3HAN\n" "EA3HCJ\n" "EA3HCL\n" "EA3HCY\n" "EA3HEU\n" "EA3HP\n" "EA3IM\n" "EA3IN\n" "EA3JJ\n" "EA3JL\n" "EA3JW\n" "EA3KN\n" "EA3KT\n" "EA3KU\n" "EA3LA\n" "EA3LD\n" "EA3LS\n" "EA3MM\n" "EA3NA\n" "EA3NB\n" "EA3NE\n" "EA3NJ\n" "EA3NO\n" "EA3NP\n" "EA3NT\n" "EA3NU\n" "EA3NW\n" "EA3NY\n" "EA3ODC\n" "EA3OH\n" "EA3OR\n" "EA3PT\n" "EA3QP\n" "EA3RCB\n" "EA3RKR\n" "EA3RR\n" "EA3SD\n" "EA3TI\n" "EA3TJ\n" "EA3WD\n" "EA3WX\n" "EA3XQ\n" "EA4/DH1TW\n" "EA4/UY7CW\n" "EA4/YO8DHC\n" "EA4AFP\n" "EA4AGI\n" "EA4AXG\n" "EA4AYD\n" "EA4AYU\n" "EA4BF\n" "EA4BGM\n" "EA4BHK\n" "EA4BM\n" "EA4BT\n" "EA4BV\n" "EA4BZ\n" "EA4CFY\n" "EA4CJI\n" "EA4CQT\n" "EA4CRP\n" "EA4CS\n" "EA4CS/P\n" "EA4CU\n" "EA4CW\n" "EA4CWN\n" "EA4DAT\n" "EA4DB\n" "EA4DEC\n" "EA4DEI\n" "EA4DLX\n" "EA4DQX\n" "EA4DRV\n" "EA4DTN\n" "EA4DTV\n" "EA4DUT\n" "EA4DW\n" "EA4DX\n" "EA4EER\n" "EA4EIY\n" "EA4EJR\n" "EA4EMC\n" "EA4EN\n" "EA4EPE\n" "EA4EPY\n" "EA4EQ\n" "EA4EQD\n" "EA4ERJ\n" "EA4ERX\n" "EA4ERZ\n" "EA4ESG\n" "EA4ETW\n" "EA4EUI\n" "EA4FJJ\n" "EA4FKI\n" "EA4FL\n" "EA4FLS\n" "EA4FLY\n" "EA4FQO\n" "EA4FSL\n" "EA4FSW\n" "EA4FTP\n" "EA4GA\n" "EA4GB\n" "EA4HD\n" "EA4IJ\n" "EA4IP\n" "EA4IS\n" "EA4JJ\n" "EA4KA\n" "EA4KD\n" "EA4KG\n" "EA4KR\n" "EA4KT\n" "EA4LG\n" "EA4LU\n" "EA4MA\n" "EA4NP\n" "EA4NW\n" "EA4OA\n" "EA4PL\n" "EA4RCT\n" "EA4RE\n" "EA4RF\n" "EA4SG\n" "EA4TD\n" "EA4TG\n" "EA4TK\n" "EA4TX\n" "EA4URA\n" "EA4UV\n" "EA4WC\n" "EA4WD\n" "EA4WP\n" "EA4WT\n" "EA4WW\n" "EA4XT\n" "EA4YK\n" "EA4ZK\n" "EA5/DG9NED\n" "EA5/DJ1MH\n" "EA5/DL5EO\n" "EA5/UT2XD\n" "EA5ABH\n" "EA5AE\n" "EA5AER\n" "EA5AID\n" "EA5AIO\n" "EA5ARC\n" "EA5ASF\n" "EA5ASM\n" "EA5AT\n" "EA5ATK\n" "EA5AVL\n" "EA5AVW\n" "EA5AWJ\n" "EA5AX\n" "EA5BAH\n" "EA5BM\n" "EA5BS\n" ; const char txt_master1[65523] = "EA5BVS\n" "EA5BWR\n" "EA5BY\n" "EA5BZ\n" "EA5CEE\n" "EA5CLH\n" "EA5CP\n" "EA5CRU\n" "EA5CW\n" "EA5CZM\n" "EA5DB\n" "EA5DCL\n" "EA5DF\n" "EA5DFV\n" "EA5DIT\n" "EA5DKU\n" "EA5DM\n" "EA5DT\n" "EA5DY\n" "EA5EA\n" "EA5EH\n" "EA5EI\n" "EA5EM\n" "EA5EM/2\n" "EA5EN\n" "EA5EOR\n" "EA5ET\n" "EA5EU\n" "EA5EV\n" "EA5EXK\n" "EA5FCW\n" "EA5FFC\n" "EA5FHC\n" "EA5FID\n" "EA5FIV\n" "EA5FJD\n" "EA5FKX\n" "EA5FL\n" "EA5FQ\n" "EA5FU\n" "EA5FV\n" "EA5FWW\n" "EA5FX\n" "EA5GF\n" "EA5GI\n" "EA5GIE\n" "EA5GIN\n" "EA5GL\n" "EA5GS\n" "EA5GSD\n" "EA5GSW\n" "EA5GTQ\n" "EA5GU\n" "EA5GUD\n" "EA5GUI\n" "EA5GVV\n" "EA5GVZ\n" "EA5GX\n" "EA5GXI\n" "EA5GZY\n" "EA5HAB\n" "EA5HH\n" "EA5HIH\n" "EA5HJO\n" "EA5HKA\n" "EA5HKQ\n" "EA5HKS\n" "EA5HM\n" "EA5HPX\n" "EA5HT\n" "EA5ID\n" "EA5IY\n" "EA5JC\n" "EA5JK\n" "EA5JW\n" "EA5KA\n" "EA5KB\n" "EA5KD\n" "EA5KGD\n" "EA5KV\n" "EA5KY\n" "EA5LA\n" "EA5LK\n" "EA5LV\n" "EA5ON\n" "EA5PS\n" "EA5PW\n" "EA5QB\n" "EA5RM\n" "EA5RM/7\n" "EA5RS\n" "EA5RU\n" "EA5TD\n" "EA5TN\n" "EA5TS\n" "EA5TT\n" "EA5UB\n" "EA5URB\n" "EA5VK\n" "EA5VN\n" "EA5WO\n" "EA5WP\n" "EA5XC\n" "EA5XY\n" "EA5YE\n" "EA5YU\n" "EA6ABB\n" "EA6AFM\n" "EA6AGA\n" "EA6AIV\n" "EA6AZ\n" "EA6BC\n" "EA6BF\n" "EA6BH\n" "EA6DB\n" "EA6DD\n" "EA6DX\n" "EA6IB\n" "EA6LP\n" "EA6NB\n" "EA6OM\n" "EA6SX\n" "EA6UN\n" "EA6UP\n" "EA6XQ\n" "EA6ZS\n" "EA7/DL2FP/P\n" "EA7/DL3XO\n" "EA7AA\n" "EA7AAW\n" "EA7AE\n" "EA7AGX\n" "EA7AHA\n" "EA7AJR\n" "EA7AKK\n" "EA7ATX\n" "EA7AVP\n" "EA7AZA\n" "EA7BJ\n" "EA7CB\n" "EA7CHO\n" "EA7CIX\n" "EA7CJN\n" "EA7CVF\n" "EA7CWA\n" "EA7DLD\n" "EA7ELY\n" "EA7EN\n" "EA7ESM\n" "EA7EU\n" "EA7EYQ\n" "EA7FIQ\n" "EA7FR\n" "EA7FRX\n" "EA7FUN\n" "EA7GSU\n" "EA7GV\n" "EA7GYS\n" "EA7GZT\n" "EA7HCB\n" "EA7HCJ\n" "EA7HE\n" "EA7HEG\n" "EA7HF\n" "EA7HFH\n" "EA7HFI\n" "EA7HG\n" "EA7HGH\n" "EA7HHR\n" "EA7HHS\n" "EA7HHV\n" "EA7HKE\n" "EA7HLU\n" "EA7HLZ\n" "EA7HW\n" "EA7HXQ\n" "EA7HY\n" "EA7HYL\n" "EA7IBK\n" "EA7ICN\n" "EA7ICN/2\n" "EA7IHD\n" "EA7ISH\n" "EA7JX\n" "EA7KS\n" "EA7LL\n" "EA7LM\n" "EA7LS\n" "EA7LU\n" "EA7MK\n" "EA7MT\n" "EA7NL\n" "EA7NW\n" "EA7OR\n" "EA7OT\n" "EA7RM\n" "EA7RU\n" "EA7SG\n" "EA7ST\n" "EA7TG\n" "EA7TL\n" "EA7TN\n" "EA7TV\n" "EA7UU\n" "EA7VJ\n" "EA7WA\n" "EA7WL\n" "EA7ZY\n" "EA8/DF2XE\n" "EA8/DK5LM\n" "EA8/DL3KVR\n" "EA8/DL8NU\n" "EA8/EA4SV\n" "EA8/LA8WF\n" "EA8/OH2NT\n" "EA8/OH6CS\n" "EA8/OX3XR\n" "EA8AG\n" "EA8AH\n" "EA8AJO\n" "EA8AJY\n" "EA8AK\n" "EA8ANE\n" "EA8AOC\n" "EA8AVK\n" "EA8AX\n" "EA8BEX\n" "EA8BGO\n" "EA8BMG\n" "EA8BPX\n" "EA8BQM\n" "EA8BTM\n" "EA8BVP\n" "EA8BZH\n" "EA8CAC\n" "EA8CDI\n" "EA8CDP\n" "EA8CER\n" "EA8CFY\n" "EA8CMX\n" "EA8CN\n" "EA8CNB\n" "EA8CNR\n" "EA8CPN\n" "EA8CQW\n" "EA8CSG\n" "EA8DA\n" "EA8DD\n" "EA8DG\n" "EA8DP\n" "EA8EU\n" "EA8EW\n" "EA8IK\n" "EA8IT\n" "EA8JA\n" "EA8KG\n" "EA8KK\n" "EA8KV\n" "EA8LS\n" "EA8MQ\n" "EA8MT\n" "EA8NB\n" "EA8NQ\n" "EA8OM\n" "EA8TL\n" "EA8TT\n" "EA8TX\n" "EA8UK\n" "EA8UP\n" "EA8URL\n" "EA8VD\n" "EA8ZS\n" "EA9BO\n" "EA9BW\n" "EA9EU\n" "EA9IE\n" "EA9LZ\n" "EA9PY\n" "EA9Z\n" "EB1APH\n" "EB1BOA\n" "EB1CFH\n" "EB1DMQ\n" "EB1DNA\n" "EB1ERK\n" "EB1EVX\n" "EB1GCA\n" "EB1IFI\n" "EB1LA\n" "EB1TR\n" "EB1WW\n" "EB2BXL\n" "EB2CYQ\n" "EB2FWD\n" "EB2GFA\n" "EB2RA\n" "EB3CML\n" "EB3EPP\n" "EB3EPR\n" "EB3EPR/2\n" "EB3FLY\n" "EB3FSS\n" "EB3JT\n" "EB4FJV\n" "EB4GER\n" "EB5AL\n" "EB5ARP\n" "EB5BBA\n" "EB5CNK\n" "EB5CS\n" "EB5GGB\n" "EB5GIV\n" "EB5GMH\n" "EB5HRX\n" "EB5KAU\n" "EB5KB\n" "EB5KBB\n" "EB5RR\n" "EB5WC\n" "EB6AOK\n" "EB7ABJ\n" "EB7CIN\n" "EB7DX\n" "EB8AH\n" "EC1AAC\n" "EC1ABR\n" "EC1AE\n" "EC1AIJ\n" "EC1AJV\n" "EC1AQT\n" "EC1CSV\n" "EC1CT\n" "EC1CTV\n" "EC1DBO\n" "EC1DLH\n" "EC1DMY\n" "EC1KR\n" "EC1KV\n" "EC2ACC\n" "EC2ADT\n" "EC2ASL\n" "EC2AWD\n" "EC2BAD\n" "EC2DX\n" "EC3AAJ\n" "EC3ACH\n" "EC3AED\n" "EC3PL\n" "EC4AIU\n" "EC4AIV\n" "EC4CBZ\n" "EC5AB\n" "EC5AGM\n" "EC5AMK\n" "EC5APA\n" "EC5BNL\n" "EC5BZR\n" "EC5CR\n" "EC5CSW\n" "EC5CYI\n" "EC5EC\n" "EC5KB\n" "EC5WW\n" "EC6AAE\n" "EC6TK\n" "EC6UD\n" "EC7ABV\n" "EC7ACV\n" "EC7AKV\n" "EC7AMT\n" "EC7AMY\n" "EC7AT\n" "EC7CUH\n" "EC7DDZ\n" "EC7DIK\n" "EC7DND\n" "EC7DNX\n" "EC7DX\n" "EC7DZZ\n" "EC7EAM\n" "EC8ABQ\n" "EC8ADS\n" "EC8ADW\n" "EC8AFM\n" "EC8AQQ\n" "EC8AUZ\n" "ED1R\n" "ED1RCM\n" "ED1T\n" "ED2R\n" "ED4A\n" "ED4R/8\n" "ED5CJX\n" "ED5D\n" "ED5GVZ\n" "ED5M\n" "ED5R\n" "ED5T\n" "ED7AJR\n" "ED7D\n" "ED7H\n" "ED8D\n" "ED8R\n" "ED8T\n" "ED9NA\n" "EE1E\n" "EE1K\n" "EE1S\n" "EE2K\n" "EE2W\n" "EE3E\n" "EE3R\n" "EE3Y\n" "EE4E\n" "EE5E\n" "EE5G\n" "EE5I\n" "EE5J\n" "EE5KB\n" "EE5R\n" "EE5T\n" "EE5U\n" "EE5V\n" "EE5W\n" "EE6E\n" "EE6LP\n" "EE7AJR\n" "EE7D\n" "EE7E\n" "EE7J\n" "EE7R\n" "EE7X\n" "EE8E\n" "EE9E\n" "EE9K\n" "EE9Z\n" "EF1A\n" "EF1W\n" "EF3A\n" "EF3M\n" "EF5BM\n" "EF5F\n" "EF5J\n" "EF5K\n" "EF5W\n" "EF7A\n" "EF7R\n" "EF8G\n" "EF8M\n" "EF8N\n" "EF8R\n" "EF8T\n" "EF9K\n" "EG1W\n" "EG2R\n" "EG4M\n" "EG5A\n" "EG5J\n" "EG5T\n" "EG5U\n" "EG5W\n" "EG8GCA\n" "EH1K\n" "EH2R\n" "EH2WE\n" "EH5H\n" "EH5I\n" "EH5J\n" "EH5T\n" "EH7H\n" "EH7Z\n" "EI/EA3BOX\n" "EI/ON4EI\n" "EI/W5GN\n" "EI0CZ\n" "EI0HQ\n" "EI0W\n" "EI2AJ\n" "EI2CA\n" "EI2CC\n" "EI2CL\n" "EI2CN\n" "EI2GLB\n" "EI2II\n" "EI2JD\n" "EI2JK\n" "EI2KA\n" "EI2VNO\n" "EI2W\n" "EI3EBB\n" "EI3ENB\n" "EI3FDB\n" "EI3GC\n" "EI3GDB\n" "EI3GRB\n" "EI3GZ\n" "EI3IO\n" "EI3JE\n" "EI3Y\n" "EI4BZ\n" "EI4CF\n" "EI4CF/P\n" "EI4DJB\n" "EI4DW\n" "EI4GAB\n" "EI4GK\n" "EI4GNB\n" "EI4GXB\n" "EI4GYB\n" "EI4HQ\n" "EI4IB\n" "EI4II\n" "EI4IR\n" "EI4JZ\n" "EI4RX\n" "EI5AL\n" "EI5DI\n" "EI5DR\n" "EI5E\n" "EI5GJB\n" "EI5GM\n" "EI5GPB\n" "EI5GSB\n" "EI5JC\n" "EI5JQ\n" "EI5JZ\n" "EI6AK\n" "EI6AL\n" "EI6ARB\n" "EI6D\n" "EI6DX\n" "EI6FOB\n" "EI6FR\n" "EI6GEB\n" "EI6HB\n" "EI6IZ\n" "EI6JK\n" "EI6JY\n" "EI6KC\n" "EI6S\n" "EI7BA\n" "EI7CC\n" "EI7DMB\n" "EI7GM\n" "EI7GY\n" "EI7IG\n" "EI7IQ\n" "EI7JK\n" "EI7JN\n" "EI7JQ\n" "EI7JZ\n" "EI7M\n" "EI8DD\n" "EI8EM\n" "EI8FH\n" "EI8GHB\n" "EI8GNB\n" "EI8GS\n" "EI8HL\n" "EI8HT\n" "EI8IR\n" "EI8JB\n" "EI8JF\n" "EI8JR\n" "EI8JX\n" "EI8KB\n" "EI9C\n" "EI9CF\n" "EI9CJ\n" "EI9E\n" "EI9ES\n" "EI9FBB\n" "EI9FN\n" "EI9FVB\n" "EI9HQ\n" "EI9HW\n" "EI9HX\n" "EI9JF\n" "EI9JU\n" "EI9O\n" "EJ3Z\n" "EJ4II\n" "EJ6DX\n" "EJ8GQB\n" "EK0B\n" "EK0HQ\n" "EK3GM\n" "EK3SA\n" "EK6GB\n" "EK6LP\n" "EK6TA\n" "EK7DX\n" "EK8WA\n" "EL2DX\n" "EL8RI\n" "EM0X\n" "EM50KFF\n" "EM5HQ\n" "EM7L\n" "EM9F\n" "EN7U\n" "EO1I\n" "EO3Q\n" "EO5I\n" "EO5M\n" "EP3HF\n" "ER0/UT0FT\n" "ER0FEO\n" "ER0WW\n" "ER1DA\n" "ER1DAC\n" "ER1LW\n" "ER1OO\n" "ER1RR\n" "ER1WK\n" "ER1ZZ\n" "ER2KAG\n" "ER2KRT\n" "ER2RM\n" "ER3AU\n" "ER3CT\n" "ER3DX\n" "ER3HW\n" "ER3MM\n" "ER3R\n" "ER3ZZ\n" "ER4A\n" "ER4DX\n" "ER4KAA\n" "ER4LX\n" "ER4X\n" "ER5AA\n" "ER5AL\n" "ER5DX\n" "ER5GB\n" "ER5LL\n" "ER5WU\n" "ER6A\n" "ER7HQ\n" "ES0DJ\n" "ES0NW\n" "ES1A\n" "ES1AN\n" "ES1AR\n" "ES1CN\n" "ES1CR\n" "ES1CW\n" "ES1GO\n" "ES1IP\n" "ES1LBK\n" "ES1LS\n" "ES1QD\n" "ES1RA\n" "ES1WN\n" "ES1WST\n" "ES1XQ\n" "ES2BH\n" "ES2BL\n" "ES2DJ\n" "ES2EZ\n" "ES2IPA\n" "ES2JL\n" "ES2MA\n" "ES2MC\n" "ES3AX\n" "ES3BQ\n" "ES3RF\n" "ES3VI\n" "ES4A\n" "ES4IN\n" "ES4MM\n" "ES4NG\n" "ES4RD\n" "ES4RX\n" "ES4RZ\n" "ES5DB\n" "ES5EC\n" "ES5EP\n" "ES5G\n" "ES5GP\n" "ES5JR\n" "ES5MC\n" "ES5MG\n" "ES5NC\n" "ES5Q\n" "ES5QA\n" "ES5QX\n" "ES5RGJ\n" "ES5RIM\n" "ES5RR\n" "ES5RW\n" "ES5RY\n" "ES5TF\n" "ES5TV\n" "ES6CO\n" "ES6DO\n" "ES6KW\n" "ES6PA\n" "ES6Q\n" "ES6QZ\n" "ES6RMR\n" "ES6TX\n" "ES7ABD\n" "ES7FQ\n" "ES7FU\n" "ES7GM\n" "ES7GN\n" "ES7NY\n" "ES8DH\n" "ES8TJM\n" "ES8W\n" "ES8ZP\n" "ES9A\n" "ES9C\n" "ET3AA\n" "ET3JA\n" "ET3SID\n" "EU1AD\n" "EU1AI\n" "EU1AZ\n" "EU1CL\n" "EU1DX\n" "EU1DZ\n" "EU1DZ/6\n" "EU1EU\n" "EU1FC\n" "EU1FY\n" "EU1PA\n" "EU1UA\n" "EU1UN\n" "EU2EU\n" "EU2MM\n" "EU3AR\n" "EU4AA\n" "EU4AG\n" "EU4CQ\n" "EU4LY\n" "EU5ROPE\n" "EU6AA\n" "EU6AF\n" "EU6MM\n" "EU7SA\n" "EU7SR\n" "EU8KP\n" "EU8RZ\n" "EV1P\n" "EV1P/2\n" "EV1R\n" "EV1Z\n" "EV2A\n" "EV6M\n" "EV6Z\n" "EV8D\n" "EV8DP\n" "EW1ABA\n" "EW1AR\n" "EW1BA\n" "EW1CQ\n" "EW1DJ\n" "EW1DO\n" "EW1EA\n" "EW1FM\n" "EW1IP\n" "EW1KT\n" "EW1NA\n" "EW1NM\n" "EW1OT\n" "EW1WZ\n" "EW1YL\n" "EW2AA\n" "EW2AO\n" "EW2BX\n" "EW2DN\n" "EW2EG\n" "EW2EO\n" "EW2ES\n" "EW2MA\n" "EW2TT\n" "EW2WW\n" "EW3EA\n" "EW3EW\n" "EW3LN\n" "EW4AA\n" "EW4AB\n" "EW4AM\n" "EW4DX\n" "EW4MM\n" "EW4PA\n" "EW5A\n" "EW6AF\n" "EW6AL\n" "EW6CU\n" "EW6DM\n" "EW6DX\n" "EW6EW\n" "EW6GF\n" "EW6GL\n" "EW6MM\n" "EW6OO\n" "EW6WA\n" "EW7AK\n" "EW7BR\n" "EW7DK\n" "EW7EW\n" "EW7KF\n" "EW7LE\n" "EW7LO\n" "EW7PK\n" "EW8A\n" "EW8BQ\n" "EW8CD\n" "EW8CF\n" "EW8CY\n" "EW8DA\n" "EW8DD\n" "EW8DJ\n" "EW8DX\n" "EW8DZ\n" "EW8EW\n" "EW8KF\n" "EW8KY\n" "EW8MW\n" "EW8OF\n" "EW8OG\n" "EW8OM\n" "EW8RR\n" "EW8WW\n" "EW8ZO\n" "EX2A\n" "EX2M\n" "EX2T\n" "EX2U\n" "EX2X\n" "EX7ML\n" "EX8AB\n" "EX8AI\n" "EX8M\n" "EX8MAT\n" "EX8O\n" "EY7AB\n" "EY7AD\n" "EY7AF\n" "EY7BJ\n" "EY7ZA\n" "EY8/F4EGS\n" "EY8/K4ZW\n" "EY8AJ\n" "EY8BA\n" "EY8CC\n" "EY8DD\n" "EY8MM\n" "F1ACC\n" "F1ACK\n" "F1ACS\n" "F1ADG\n" "F1AEY\n" "F1AKK\n" "F1BAV\n" "F1BBK\n" "F1BGY\n" "F1BJD\n" "F1BLQ\n" "F1BNT\n" "F1BOQ\n" "F1BRV\n" "F1CGN\n" "F1DFR\n" "F1EAA\n" "F1EBN\n" "F1EIT\n" "F1EPQ\n" "F1FPL\n" "F1GTU\n" "F1HSW\n" "F1HTU\n" "F1HUM/P\n" "F1ICR\n" "F1ICS\n" "F1IEH\n" "F1IWH\n" "F1JGN\n" "F1JKJ\n" "F1JPE\n" "F1JRD\n" "F1LPT\n" "F1MKG\n" "F1MLN\n" "F1MUG\n" "F1MWV\n" "F1NGP\n" "F1NZC\n" "F1OET\n" "F1OKV\n" "F1OOG\n" "F1PDI\n" "F1PGZ\n" "F1PUX\n" "F1PYW\n" "F1RCX\n" "F1RHS\n" "F1RUK\n" "F1SAL\n" "F1SIU\n" "F1SMV\n" "F1TRE\n" "F1TZE\n" "F1TZG\n" "F1UIH\n" "F1UIJ\n" "F1UJS\n" "F1UMO\n" "F1URL\n" "F1UVN\n" "F2AI\n" "F2AR\n" "F2BF\n" "F2DX\n" "F2FZ\n" "F2GL\n" "F2JD\n" "F2LG\n" "F2LZ\n" "F2MA\n" "F2NZ/P\n" "F2QH\n" "F2RO\n" "F2SI\n" "F2SY\n" "F2TA\n" "F2VX\n" "F2WT\n" "F2YT\n" "F3AT\n" "F3CW\n" "F3MB\n" "F3NB\n" "F3OA\n" "F3TH\n" "F3TK\n" "F3VV\n" "F3VX\n" "F3WT\n" "F4ABC\n" "F4AGR\n" "F4APR\n" "F4APS\n" "F4ASK\n" "F4ASQ\n" "F4BCX\n" "F4BDG\n" "F4BHW\n" "F4BIV\n" "F4BKB\n" "F4BKV\n" "F4BXY\n" "F4CDR\n" "F4CGJ\n" "F4CLB\n" "F4CMC/P\n" "F4CPD\n" "F4CPF\n" "F4CQK\n" "F4CRE\n" "F4CUI\n" "F4CWL\n" "F4CWZ\n" "F4CYZ/P\n" "F4CZV\n" "F4DBJ\n" "F4DIA\n" "F4DLL\n" "F4DNW\n" "F4DPT\n" "F4DRC\n" "F4DRT\n" "F4DSD\n" "F4DSK\n" "F4DTO\n" "F4DVO\n" "F4DVX\n" "F4DVX/P\n" "F4DXP\n" "F4DXW\n" "F4DXX\n" "F4EAN\n" "F4EEI\n" "F4EEJ\n" "F4EFL\n" "F4EGA\n" "F4EGD\n" "F4EGG\n" "F4EGS\n" "F4EIZ\n" "F4EJW\n" "F4ELU\n" "F4EMN\n" "F4EMU\n" "F4ENJ\n" "F4ENK\n" "F4ENU\n" "F4EPR\n" "F4EPU\n" "F4EQA\n" "F4EQH\n" "F4ESE\n" "F4ETG\n" "F4EUG\n" "F4EUN\n" "F4EVR\n" "F4EWU\n" "F4EWU/P\n" "F4EYU\n" "F4EZC\n" "F4EZJ\n" "F4FAO\n" "F4FBB\n" "F4FBP\n" "F4FDA\n" "F4FDR\n" "F4FEP\n" "F4FFH\n" "F4FFN\n" "F4FFZ\n" "F4FGJ\n" "F4FHI\n" "F4FHM\n" "F4FHR\n" "F4FHT\n" "F4FHV\n" "F4FIP\n" "F4FJH\n" "F4FKJ\n" "F4FLF\n" "F4FLN\n" "F4FLQ\n" "F4FNL\n" "F4FNT\n" "F4FPF\n" "F4FPG\n" "F4FQH\n" "F4FQI\n" "F4FSB\n" "F4FSV\n" "F4FTS\n" "F4FWL\n" "F4FWM\n" "F4GAJ\n" "F4GAR\n" "F4GBW\n" "F4JRC\n" "F4JVG\n" "F4LKC\n" "F4MBZ\n" "F4OHA\n" "F4PCM\n" "F4RST\n" "F4SGU\n" "F4TTR\n" "F4UJU\n" "F4UKP\n" "F5AAR\n" "F5AIB\n" "F5AKL\n" "F5AMH\n" "F5AOL\n" "F5AQB\n" "F5ARU\n" "F5ASD\n" "F5AUZ\n" "F5AXG\n" "F5AZM\n" "F5BBD\n" "F5BEG\n" "F5BOY\n" "F5BTH\n" "F5BTH/P\n" "F5BZB\n" "F5CBQ\n" "F5CCX\n" "F5CDE\n" "F5CH\n" "F5CQ\n" "F5CT\n" "F5CWU\n" "F5CYM\n" "F5CYS\n" "F5DDX\n" "F5DM\n" "F5DRD\n" "F5DYD\n" "F5ELL\n" "F5ELL/P\n" "F5EOT\n" "F5FAB/P\n" "F5FJ\n" "F5GFA\n" "F5GGL\n" "F5GN\n" "F5GPE\n" "F5HNQ\n" "F5HRY\n" "F5HTR\n" "F5HUF\n" "F5HX\n" "F5HY\n" "F5IAE\n" "F5ICC\n" "F5IDB\n" "F5IDJ\n" "F5IEP\n" "F5IHP\n" "F5IHP/P\n" "F5ILS\n" "F5IN\n" "F5INJ\n" "F5IQA\n" "F5IQJ\n" "F5ISG\n" "F5IUZ\n" "F5IYJ\n" "F5IYU\n" "F5IZP\n" "F5JDG\n" "F5JFU\n" "F5JGA\n" "F5JIW\n" "F5JLH\n" "F5JLV\n" "F5JMI\n" "F5JRL\n" "F5JSD\n" "F5JSK\n" "F5JSQ\n" "F5JU\n" "F5JXU\n" "F5JY\n" "F5JYD\n" "F5KAR\n" "F5KAR/P\n" "F5KCH\n" "F5KEE\n" "F5KEQ\n" "F5KFL\n" "F5KIN\n" "F5KKD\n" "F5KLE\n" "F5KLP\n" "F5KSE\n" "F5LCU\n" "F5LDY\n" "F5LEN\n" "F5LGE\n" "F5LGF\n" "F5LIW\n" "F5LJA\n" "F5LLE\n" "F5LLN\n" "F5LMJ\n" "F5LMK\n" "F5LND\n" "F5LOW\n" "F5LPY\n" "F5LQ\n" "F5LTH\n" "F5LUN\n" "F5LVL\n" "F5LWF\n" "F5MA\n" "F5MAE\n" "F5MBM\n" "F5MFI\n" "F5MFU\n" "F5MLJ\n" "F5MMB\n" "F5MMF\n" "F5MMX\n" "F5MMY\n" "F5MOO\n" "F5MPN\n" "F5MQW\n" "F5MSB\n" "F5MSE\n" "F5MUX\n" "F5MVT\n" "F5MWW\n" "F5MXH\n" "F5MXQ\n" "F5MZN\n" "F5NBK\n" "F5NBQ\n" "F5NBU\n" "F5NBX\n" "F5NCU\n" "F5NEH\n" "F5NEP\n" "F5NEV\n" "F5NKP\n" "F5NKX\n" "F5NMK\n" "F5NQL\n" "F5NSL\n" "F5NTV\n" "F5NTZ\n" "F5NYK\n" "F5NZY\n" "F5OAM\n" "F5OCL\n" "F5ODA\n" "F5ODF\n" "F5OEL\n" "F5OEV\n" "F5OGL\n" "F5OHH\n" "F5OHM\n" "F5OHS\n" "F5OHV\n" "F5OQL\n" "F5ORE\n" "F5OTZ\n" "F5OWL\n" "F5OWT\n" "F5OZC\n" "F5OZF\n" "F5PAL\n" "F5PBM\n" "F5PCV\n" "F5PCX\n" "F5PEU\n" "F5PHP\n" "F5PHW\n" "F5PLC\n" "F5POJ\n" "F5PPO\n" "F5PQH\n" "F5PRH\n" "F5PTI\n" "F5PU\n" "F5PVK\n" "F5PWK\n" "F5PZR\n" "F5QE\n" "F5QF\n" "F5RAB\n" "F5RAV\n" "F5RBB\n" "F5RD\n" "F5RDK\n" "F5RDS\n" "F5RDS/P\n" "F5RJK\n" "F5RJM\n" "F5RKC\n" "F5RKL\n" "F5RLW\n" "F5RMK\n" "F5RMN\n" "F5ROL\n" "F5ROX\n" "F5RPB\n" "F5RQQ\n" "F5RRS\n" "F5RUJ\n" "F5RVV\n" "F5RWQ\n" "F5RXL\n" "F5SDD\n" "F5SDH\n" "F5SGI\n" "F5SIH\n" "F5SJB\n" "F5SSK\n" "F5SUL\n" "F5SVU\n" "F5SXD\n" "F5SZB\n" "F5TDB\n" "F5TDK\n" "F5TFI\n" "F5TFU\n" "F5TGR\n" "F5TGW\n" "F5TIL\n" "F5TLZ\n" "F5TMJ\n" "F5TO\n" "F5TRB\n" "F5TSB\n" "F5TSG\n" "F5TTI\n" "F5TXW\n" "F5UBH\n" "F5UFX\n" "F5UJK\n" "F5UKL\n" "F5UL\n" "F5UMP\n" "F5UMU\n" "F5UOW\n" "F5UQN\n" "F5UTN\n" "F5VBT\n" "F5VBU\n" "F5VFU\n" "F5VHE\n" "F5VHQ\n" "F5VHY\n" "F5VIF\n" "F5VIF/P\n" "F5VIH\n" "F5VIM\n" "F5VJC\n" "F5VJK\n" "F5VKP\n" "F5VKT\n" "F5VLT\n" "F5VLV\n" "F5VMO\n" "F5VNB\n" "F5VU\n" "F5VV\n" "F5VW\n" "F5VW/P\n" "F5YD\n" "F5YJ\n" "F6ABI\n" "F6ACD\n" "F6ACV\n" "F6AEW\n" "F6AFC\n" "F6AGQ\n" "F6AJH\n" "F6AML\n" "F6AOI\n" "F6AOJ\n" "F6API\n" "F6AQI\n" "F6AQO\n" "F6ARC\n" "F6ARQ\n" "F6ATP\n" "F6AUS\n" "F6AVP\n" "F6AXX\n" "F6BAT\n" "F6BBO\n" "F6BBQ\n" "F6BDM\n" "F6BEE\n" "F6BFH\n" "F6BGC\n" "F6BGG\n" "F6BGV\n" "F6BIP\n" "F6BIP/P\n" "F6BKI\n" "F6BKP\n" "F6BLP\n" "F6BNH\n" "F6BNL\n" "F6BNX\n" "F6BPO\n" "F6BPZ\n" "F6BUL\n" "F6BVY\n" "F6BWJ\n" "F6BWO\n" "F6CBA\n" "F6CBH\n" "F6CBL\n" "F6CBW\n" "F6CEL\n" "F6CFB\n" "F6CKD\n" "F6CKE\n" "F6CLH\n" "F6CLQ\n" "F6CMG\n" "F6CNM\n" "F6COA\n" "F6COW\n" "F6COZ\n" "F6CRP\n" "F6CRT\n" "F6CSO\n" "F6CSQ\n" "F6CTL\n" "F6CTT\n" "F6CVR\n" "F6CWA\n" "F6CWN\n" "F6CXJ\n" "F6CYT\n" "F6CZC\n" "F6CZV\n" "F6DAM\n" "F6DBX\n" "F6DDP\n" "F6DDR\n" "F6DFZ\n" "F6DGH\n" "F6DKI\n" "F6DKQ\n" "F6DKV\n" "F6DLM\n" "F6DRP\n" "F6DSB\n" "F6DSV\n" "F6DUK\n" "F6DVH\n" "F6DYX\n" "F6DYY\n" "F6DZD\n" "F6DZS\n" "F6DZU\n" "F6EAZ\n" "F6ECI\n" "F6ECS\n" "F6EDO\n" "F6EHP\n" "F6EKI\n" "F6EKJ\n" "F6EMA\n" "F6EOE\n" "F6EPO\n" "F6EPQ\n" "F6EQD\n" "F6EQZ\n" "F6EWX\n" "F6EXV\n" "F6EZF\n" "F6EZR\n" "F6EZV\n" "F6FCM\n" "F6FDR\n" "F6FGB\n" "F6FHO\n" "F6FLU\n" "F6FNA\n" "F6FNL\n" "F6FTB\n" "F6FYA\n" "F6FYD\n" "F6GCI\n" "F6GEO\n" "F6GGO\n" "F6GID\n" "F6GIN\n" "F6GMT\n" "F6GNZ\n" "F6GOE\n" "F6GOX\n" "F6GPT\n" "F6GQO\n" "F6GRA\n" "F6GUF\n" "F6GUU\n" "F6GYF\n" "F6GYU\n" "F6HAC\n" "F6HBR\n" "F6HGC\n" "F6HHR\n" "F6HIA\n" "F6HIQ\n" "F6HKA\n" "F6HKO\n" "F6HMJ\n" "F6HMQ\n" "F6HQP\n" "F6HQY\n" "F6HRP\n" "F6HZS\n" "F6IFJ\n" "F6IGS\n" "F6IIT\n" "F6IOC\n" "F6IPQ\n" "F6IQA\n" "F6IRA\n" "F6IRF\n" "F6IRG\n" "F6IRS\n" "F6ISQ\n" "F6IZZ\n" "F6JOE\n" "F6JOE/P\n" "F6JXR\n" "F6KAR\n" "F6KBF\n" "F6KCP\n" "F6KDL\n" "F6KFA\n" "F6KFI\n" "F6KFV\n" "F6KHM\n" "F6KMX\n" "F6KNB\n" "F6KOH\n" "F6KPQ\n" "F6KPQ/P\n" "F6KRK\n" "F6KSV\n" "F6KUJ\n" "F6KUM/P\n" "F6PTT\n" "F8AAB\n" "F8AEE\n" "F8AFC\n" "F8AKC\n" "F8AKS\n" "F8AOF\n" "F8AQK\n" "F8AQT\n" "F8ASG\n" "F8ATM\n" "F8ATS\n" "F8BBL\n" "F8BBT\n" "F8BCS\n" "F8BDX\n" "F8BFU\n" "F8BJI\n" "F8BMG\n" "F8BMX\n" "F8BNN\n" "F8BNV\n" "F8BOJ\n" "F8BPN\n" "F8BUO\n" "F8BUY\n" "F8BXI\n" "F8CDM\n" "F8CED\n" "F8CFU\n" "F8CGL\n" "F8CHK\n" "F8CIL\n" "F8CJS\n" "F8CKH\n" "F8CMF\n" "F8CRH\n" "F8CRS\n" "F8DBF\n" "F8DEG\n" "F8DFP\n" "F8DHA\n" "F8DHB\n" "F8DHE\n" "F8DJV\n" "F8DKG\n" "F8DML\n" "F8DNX\n" "F8DOR\n" "F8DRE\n" "F8DVD\n" "F8DYD\n" "F8DZU\n" "F8DZY\n" "F8EBY\n" "F8EEQ\n" "F8EMH\n" "F8EOI\n" "F8EZE\n" "F8FGZ\n" "F8FKD\n" "F8FLK\n" "F8FQJ\n" "F8FSK\n" "F8FSN\n" "F8FWM\n" "F8FY\n" "F8IXZ\n" "F8JZR\n" "F8KA\n" "F8KCF\n" "F8KDX\n" "F8KGH\n" "F8KGL/P\n" "F8KHW\n" "F8KHW/P\n" "F8KKH\n" "F8LKU\n" "F8MRQ\n" "F8NAN\n" "F8NUH\n" "F8NZQ\n" "F8PMO\n" "F8UG\n" "F8VNU\n" "F8VNZ\n" "F8VOA\n" "F8XH\n" "F8XX\n" "F8ZW\n" "F9CI\n" "F9CZ\n" "F9DK\n" "F9EW\n" "F9GN\n" "F9IE\n" "F9JS\n" "F9KP\n" "F9NF\n" "F9OB\n" "F9OE\n" "F9OQ\n" "F9WT\n" "FG1GW\n" "FG1PP\n" "FG5FI\n" "FG5KC\n" "FG5LA\n" "FG8AR\n" "FJ/VE3EY\n" "FJ/WJ2O\n" "FK8CP\n" "FK8GM\n" "FK8KAB\n" "FM1AG\n" "FM1FV\n" "FM1HN\n" "FM1II\n" "FM5AN\n" "FM5BH\n" "FM5CD\n" "FM5CW\n" "FM5DN\n" "FM5FJ\n" "FM5KC\n" "FM5LD\n" "FM5WD\n" "FM5WE\n" "FO/N6JA\n" "FO5RH\n" "FO8RZ\n" "FR1AN\n" "FR1GZ\n" "FR5GS\n" "FS5KA\n" "FT5GA\n" "FY/LA0BY\n" "FY5FY\n" "FY5KE\n" "G/SP4BHD\n" "G0AAA\n" "G0ABY\n" "G0ADH\n" "G0AEV\n" "G0AJJ\n" "G0AKF\n" "G0AOJ\n" "G0AOL\n" "G0AOZ\n" "G0ARL\n" "G0ATG\n" "G0AZE\n" "G0AZH\n" "G0AZS\n" "G0BFJ\n" "G0BHK\n" "G0BLB\n" "G0BNR\n" "G0BRC\n" "G0BWB\n" "G0BYJ\n" "G0CER\n" "G0CGL\n" "G0CKP\n" "G0CKV\n" "G0CLP\n" "G0CLP/P\n" "G0CMP\n" "G0CPA\n" "G0CTR\n" "G0CXW\n" "G0DAY\n" "G0DBE\n" "G0DCK\n" "G0DKL\n" "G0DQS\n" "G0DRM\n" "G0DVJ\n" "G0DWO\n" "G0DWV\n" "G0DZM\n" "G0ECJ\n" "G0EFO\n" "G0EIG\n" "G0EML\n" "G0EVQ\n" "G0EYO\n" "G0EYR\n" "G0FBY\n" "G0FDJ\n" "G0FDU\n" "G0FHM\n" "G0FJS\n" "G0FPU\n" "G0FUN\n" "G0FWX\n" "G0FYX\n" "G0FZI\n" "G0GDA\n" "G0GDU\n" "G0GFQ\n" "G0GIS\n" "G0GJS\n" "G0GKH\n" "G0GMS\n" "G0HDB\n" "G0HDV\n" "G0HIO\n" "G0HIS\n" "G0HIZ\n" "G0HJK\n" "G0HMN\n" "G0HOF\n" "G0HSA\n" "G0HVQ\n" "G0HZG\n" "G0IBN\n" "G0ICJ\n" "G0IDA\n" "G0IEE\n" "G0IIQ\n" "G0IUM\n" "G0IVZ\n" "G0IYH\n" "G0JHC\n" "G0JJG\n" "G0JKY\n" "G0JVT\n" "G0KBL\n" "G0KBY\n" "G0KDS\n" "G0KDZ\n" "G0KGU\n" "G0KJP\n" "G0KOM\n" "G0KRT\n" "G0KSC\n" "G0KYA\n" "G0KYS\n" "G0LGJ\n" "G0LGS\n" "G0LHZ\n" "G0LMX\n" "G0LRX\n" "G0LVX\n" "G0LWU\n" "G0LZL\n" "G0LZY\n" "G0MBP\n" "G0MHC\n" "G0MLY\n" "G0MMI\n" "G0MNN\n" "G0MPR\n" "G0MRH\n" "G0MRY\n" "G0MTF/P\n" "G0MTN\n" "G0MUR\n" "G0NDE\n" "G0NFH\n" "G0NOR\n" "G0NSL\n" "G0NUZ\n" "G0NXA\n" "G0NZI\n" "G0OGD\n" "G0OIL\n" "G0OKD\n" "G0OKF\n" "G0OMS\n" "G0ONH\n" "G0OPB\n" "G0OPH\n" "G0ORC\n" "G0ORH\n" "G0ORS\n" "G0OTT\n" "G0PCF\n" "G0PHY\n" "G0PPM\n" "G0PSE\n" "G0PVR\n" "G0PZA\n" "G0RAF\n" "G0RAH\n" "G0REK\n" "G0RGJ\n" "G0RIF\n" "G0RPM\n" "G0RQL\n" "G0RRM\n" "G0RSQ\n" "G0RWW\n" "G0RXA\n" "G0SNG\n" "G0THY\n" "G0TKZ\n" "G0TMX\n" "G0TOC\n" "G0TPH\n" "G0TRB\n" "G0TSM\n" "G0TYS\n" "G0TZZ\n" "G0UAN\n" "G0UCH\n" "G0UCP\n" "G0UGO\n" "G0UII\n" "G0UIQ\n" "G0UKB\n" "G0UKN\n" "G0UKX\n" "G0UQC\n" "G0UUT\n" "G0UZL\n" "G0UZP\n" "G0VDZ\n" "G0VGS\n" "G0VJG\n" "G0VOF\n" "G0VOK\n" "G0VTI\n" "G0VVE\n" "G0VXC\n" "G0VXE\n" "G0WAT\n" "G0WFK\n" "G0WHO\n" "G0WPH\n" "G0WPX\n" "G0WSA\n" "G0WSC\n" "G0WWD\n" "G0WWF\n" "G0XDI\n" "G0YYY\n" "G1A\n" "G1BHR\n" "G1DJI\n" "G1DYN\n" "G1FON\n" "G1HHD\n" "G1HJW\n" "G1HLT\n" "G1ISN\n" "G1KFB\n" "G1KHX\n" "G1MIE\n" "G1N\n" "G1OCN\n" "G1OCR\n" "G1PIE\n" "G1PIR\n" "G1RSC\n" "G1RVP\n" "G1SMT\n" "G1SSL\n" "G1T\n" "G1TIF\n" "G1TZC\n" "G1UGH\n" "G1UNQ\n" "G1UZD\n" "G1VDP\n" "G1VNV\n" "G1WMJ\n" "G1XKZ\n" "G1XOW\n" "G1YLE\n" "G1YTV\n" "G1ZQN\n" "G2AA\n" "G2ACN\n" "G2AFV\n" "G2B\n" "G2BKZ\n" "G2BOF\n" "G2DWB\n" "G2F\n" "G2FM\n" "G2FSR\n" "G2HDR\n" "G2HKU\n" "G2JL\n" "G2KF\n" "G2PA\n" "G2PB\n" "G2W\n" "G2YL\n" "G3ASG\n" "G3B\n" "G3BBR\n" "G3BDQ\n" "G3BFP\n" "G3BJ\n" "G3CCO\n" "G3CSA\n" "G3CWW\n" "G3DCZ\n" "G3DGW\n" "G3EKJ\n" "G3ESY\n" "G3FNZ\n" "G3FPQ\n" "G3FYX\n" "G3GAF\n" "G3GEJ\n" "G3GGS\n" "G3GHN\n" "G3GJX\n" "G3GLL\n" "G3HAL\n" "G3HEJ\n" "G3HGE\n" "G3HMB\n" "G3HQT\n" "G3HRH\n" "G3HTA\n" "G3IAF\n" "G3ICO\n" "G3IEW\n" "G3IFB\n" "G3IGU\n" "G3IGZ\n" "G3IJA\n" "G3IJL\n" "G3ILO\n" "G3ILO/P\n" "G3IOE\n" "G3IQF\n" "G3ITH\n" "G3IZD\n" "G3JDT\n" "G3JFS\n" "G3JHS\n" "G3JIR\n" "G3JJG\n" "G3JJZ\n" "G3JKB\n" "G3JKY\n" "G3JMJ\n" "G3JMZ\n" "G3JNB\n" "G3JRM\n" "G3JUL\n" "G3JUX\n" "G3JXC\n" "G3JZL\n" "G3KAF\n" "G3KDP\n" "G3KIP\n" "G3KKJ\n" "G3KKP\n" "G3KLH\n" "G3KLO\n" "G3KLP\n" "G3KMA\n" "G3KMG\n" "G3KMQ\n" "G3KNU\n" "G3KOJ\n" "G3KOZ\n" "G3KSU\n" "G3KTH\n" "G3KTZ\n" "G3KWK\n" "G3KWY\n" "G3KYF\n" "G3KZR\n" "G3LAS\n" "G3LAZ\n" "G3LCS\n" "G3LDI\n" "G3LET\n" "G3LHJ\n" "G3LHS\n" "G3LIK\n" "G3LKY/P\n" "G3LKZ\n" "G3LLK\n" "G3LME\n" "G3LNC\n" "G3LNP\n" "G3LPS\n" "G3LPU\n" "G3LQP\n" "G3LUA\n" "G3LUW\n" "G3LVP\n" "G3LZQ\n" "G3MCK\n" "G3MEA\n" "G3MIR\n" "G3MLO\n" "G3MPB\n" "G3MUO\n" "G3MXH\n" "G3MYI\n" "G3MZV\n" "G3NAE\n" "G3NBC\n" "G3NCN\n" "G3NDC\n" "G3NDJ\n" "G3NEO\n" "G3NFB\n" "G3NHL\n" "G3NIC\n" "G3NKC\n" "G3NKQ\n" "G3NKS\n" "G3NLY\n" "G3NOH\n" "G3NPF\n" "G3NPZ\n" "G3NUG\n" "G3NWG\n" "G3NXT\n" "G3NYY\n" "G3NYY/P\n" "G3OAG\n" "G3OAY\n" "G3OCA\n" "G3OFA\n" "G3OGP\n" "G3OKA\n" "G3OLB\n" "G3OND\n" "G3ONQ\n" "G3OOU\n" "G3ORP\n" "G3ORY\n" "G3OTK/P\n" "G3OWO\n" "G3P\n" "G3PDH\n" "G3PGA\n" "G3PHO\n" "G3PHS\n" "G3PIA\n" "G3PJK\n" "G3PJT\n" "G3PLP\n" "G3PQA\n" "G3PSM\n" "G3PXT\n" "G3PYI\n" "G3PYM\n" "G3RAU\n" "G3RCE\n" "G3RGD\n" "G3RHH\n" "G3RIK\n" "G3RIR\n" "G3RKJ\n" "G3RLE\n" "G3RMD\n" "G3RPB\n" "G3RSD\n" "G3RTE\n" "G3RTU\n" "G3RTY\n" "G3RUO\n" "G3RVM\n" "G3RWF\n" "G3RWL\n" "G3RXP\n" "G3RXQ\n" "G3RZF\n" "G3SDC\n" "G3SED\n" "G3SEM\n" "G3SEN\n" "G3SET\n" "G3SGC\n" "G3SHF\n" "G3SJJ\n" "G3SJX\n" "G3SNN\n" "G3SNU\n" "G3SQH\n" "G3SVD\n" "G3SVK\n" "G3SVL\n" "G3SWC\n" "G3SWH\n" "G3SYM\n" "G3SZS\n" "G3SZU\n" "G3TA\n" "G3TBK\n" "G3TBU\n" "G3TDH\n" "G3TEV\n" "G3TEX\n" "G3TJE\n" "G3TKF\n" "G3TKK\n" "G3TLH\n" "G3TLY\n" "G3TQZ\n" "G3TTH\n" "G3TTJ\n" "G3TVW\n" "G3TWG\n" "G3TXF\n" "G3TXZ\n" "G3TZM\n" "G3UAA\n" "G3UAS\n" "G3UD\n" "G3UDA\n" "G3UEG\n" "G3UFY\n" "G3UHU\n" "G3UJE\n" "G3UKV\n" "G3ULN\n" "G3UML\n" "G3UMT\n" "G3USE\n" "G3UUV\n" "G3UYD\n" "G3UZD\n" "G3UZM\n" "G3V\n" "G3VA\n" "G3VAJ\n" "G3VAO\n" "G3VCA\n" "G3VCQ\n" "G3VCR\n" "G3VDB\n" "G3VDL\n" "G3VER\n" "G3VGR\n" "G3VIP\n" "G3VIR\n" "G3VKW\n" "G3VMW\n" "G3VMY\n" "G3VOF\n" "G3VOT\n" "G3VOU\n" "G3VPS\n" "G3VPW\n" "G3VQO\n" "G3VTT\n" "G3VUS\n" "G3VWH\n" "G3VXJ\n" "G3VYF\n" "G3VYI\n" "G3VZM\n" "G3WAB\n" "G3WCQ\n" "G3WCY\n" "G3WDS\n" "G3WEF\n" "G3WFM\n" "G3WGV\n" "G3WKL\n" "G3WKZ\n" "G3WMX\n" "G3WPD\n" "G3WPF\n" "G3WPH\n" "G3WRR\n" "G3WVG\n" "G3WVO\n" "G3WW\n" "G3WWS\n" "G3WYN\n" "G3WYW\n" "G3WZT\n" "G3XAN\n" "G3XAP\n" "G3XAQ\n" "G3XDY\n" "G3XGC\n" "G3XGD\n" "G3XLB\n" "G3XLL\n" "G3XLW\n" "G3XMM\n" "G3XOV\n" "G3XPO\n" "G3XSD\n" "G3XSV\n" "G3XTT\n" "G3XUD\n" "G3XVF\n" "G3XVN\n" "G3XVR\n" "G3XXH\n" "G3XYC\n" "G3XYF\n" "G3XYP\n" "G3XZG\n" "G3XZQ\n" "G3YAJ\n" "G3YBO\n" "G3YBT\n" "G3YBY\n" "G3YEC\n" "G3YER\n" "G3YEU\n" "G3YFE\n" "G3YHV\n" "G3YIQ\n" "G3YJD\n" "G3YMC\n" "G3YNN\n" "G3YOA\n" "G3YOG\n" "G3YPE\n" "G3YPN\n" "G3YRC\n" "G3YRO\n" "G3YTY\n" "G3YXX\n" "G3YYD\n" "G3YYZ\n" "G3Z\n" "G3ZAY\n" "G3ZBU\n" "G3ZDF\n" "G3ZFC\n" "G3ZGC\n" "G3ZGC/A\n" "G3ZHE\n" "G3ZKN\n" "G3ZNH\n" "G3ZNR\n" "G3ZOH\n" "G3ZQH\n" "G3ZQQ\n" "G3ZRJ\n" "G3ZRS\n" "G3ZSE\n" "G3ZSS\n" "G3ZVW\n" "G4ABX\n" "G4ACS\n" "G4ADJ\n" "G4AEH\n" "G4AFJ\n" "G4AFS\n" "G4AFU\n" "G4AHJ\n" "G4AHK\n" "G4AJC\n" "G4ALA\n" "G4ALD\n" "G4ALH\n" "G4AMN\n" "G4AMT\n" "G4AON\n" "G4APO\n" "G4AQG\n" "G4AQK\n" "G4ARI\n" "G4ARN\n" "G4ASR\n" "G4ATA\n" "G4AXX\n" "G4AYR\n" "G4AZN\n" "G4BEE\n" "G4BJG\n" "G4BJM\n" "G4BUE\n" "G4BUO\n" "G4BVB\n" "G4BVY\n" "G4BWF\n" "G4BXT\n" "G4BYG\n" "G4BZP\n" "G4C\n" "G4CCZ\n" "G4CFW\n" "G4CGG\n" "G4CI\n" "G4CKH\n" "G4CLA\n" "G4CLN\n" "G4CMQ\n" "G4CUS\n" "G4CVC\n" "G4CWH\n" "G4CXQ\n" "G4CYB\n" "G4CZB\n" "G4CZP\n" "G4DBW\n" "G4DBX\n" "G4DCV\n" "G4DDL\n" "G4DDS\n" "G4DDX\n" "G4DFI\n" "G4DJC\n" "G4DJJ\n" "G4DJX\n" "G4DOQ\n" "G4DRS\n" "G4DSD\n" "G4DYC\n" "G4DYO\n" "G4DZL\n" "G4DZW\n" "G4EBK\n" "G4EDD\n" "G4EDG\n" "G4EGU\n" "G4EHN\n" "G4EHT\n" "G4EKT\n" "G4ELJ\n" "G4ELY\n" "G4ELZ\n" "G4ENZ\n" "G4EOF/P\n" "G4ERW\n" "G4EZR\n" "G4EZT\n" "G4EZV\n" "G4FAD\n" "G4FAL\n" "G4FFE\n" "G4FFN\n" "G4FKA\n" "G4FKG\n" "G4FKH\n" "G4FMO\n" "G4FNL\n" "G4FOC\n" "G4FON\n" "G4FPA\n" "G4FQF\n" "G4FSU\n" "G4FTC\n" "G4FTP\n" "G4FUF\n" "G4FVK\n" "G4GEE\n" "G4GIR\n" "G4GLV\n" "G4GMW\n" "G4GVB\n" "G4GVN\n" "G4HEE\n" "G4HFP\n" "G4HHJ\n" "G4HHX\n" "G4HOM\n" "G4HUN\n" "G4HVC\n" "G4HZV\n" "G4IDR\n" "G4IIY\n" "G4IKR\n" "G4ILO\n" "G4IOG\n" "G4IUF\n" "G4IUP\n" "G4IWO\n" "G4IXF\n" "G4JKZ\n" "G4JRY\n" "G4JSR\n" "G4JZO\n" "G4KEE\n" "G4KFT\n" "G4KGL\n" "G4KHG\n" "G4KHM\n" "G4KIU\n" "G4KKI\n" "G4KLF\n" "G4KMH\n" "G4KNO\n" "G4KPN\n" "G4KRN\n" "G4KTZ\n" "G4KUE\n" "G4KZD\n" "G4LDL\n" "G4LIR\n" "G4LJU\n" "G4LMW\n" "G4LMX\n" "G4LPD\n" "G4LRP\n" "G4LWB\n" "G4LYM\n" "G4MEM\n" "G4MKP\n" "G4MKR\n" "G4MLA\n" "G4MUL\n" "G4MZJ\n" "G4NDM\n" "G4NFS\n" "G4NJW\n" "G4NKT\n" "G4NLH\n" "G4NXG\n" "G4OBB\n" "G4OBC\n" "G4OBK\n" "G4OCO\n" "G4OEC\n" "G4OFY\n" "G4OGB\n" "G4OJB\n" "G4OJS\n" "G4OPL\n" "G4ORC\n" "G4OSB\n" "G4OWG\n" "G4OWT\n" "G4OYC\n" "G4PBP\n" "G4PEF\n" "G4PIQ\n" "G4PLE\n" "G4PLY\n" "G4PNC\n" "G4POF\n" "G4PTJ\n" "G4PWA\n" "G4RCD\n" "G4RCG\n" "G4RFC\n" "G4RFR\n" "G4RGK\n" "G4RKO\n" "G4RLS\n" "G4RNK\n" "G4RQI\n" "G4RRA\n" "G4RRM\n" "G4RUW\n" "G4RWD\n" "G4RYV\n" "G4SGI\n" "G4SJG\n" "G4SJX\n" "G4SMD\n" "G4SNU\n" "G4SOF\n" "G4STH\n" "G4TNB\n" "G4TPO\n" "G4TQF\n" "G4TSH\n" "G4TSN\n" "G4UDU\n" "G4UEL\n" "G4UFK\n" "G4UFU\n" "G4UJS\n" "G4UKP\n" "G4UZN\n" "G4VCJ\n" "G4VFG\n" "G4VHH\n" "G4VMM\n" "G4VMX\n" "G4VSS\n" "G4VTO\n" "G4VUA\n" "G4VUD\n" "G4VXE\n" "G4VZR\n" "G4WBV\n" "G4WFQ\n" "G4WGE\n" "G4WPD\n" "G4WQZ\n" "G4WUG\n" "G4WXZ\n" "G4WZI\n" "G4XEX\n" "G4XFA\n" "G4XPE\n" "G4XRV\n" "G4XRX\n" "G4YAQ\n" "G4YLO\n" "G4YPV\n" "G4YRF\n" "G4YRU\n" "G4ZCG\n" "G4ZCS\n" "G4ZFE\n" "G4ZFJ\n" "G4ZGP\n" "G4ZIB\n" "G4ZOB\n" "G4ZOY\n" "G4ZUL\n" "G4ZWX\n" "G5D\n" "G5E\n" "G5FZ\n" "G5G\n" "G5KC\n" "G5KN\n" "G5LP\n" "G5N\n" "G5O\n" "G5W\n" "G5XW\n" "G5YC\n" "G6A\n" "G6AY\n" "G6BDV\n" "G6BOX\n" "G6CSY\n" "G6EVD\n" "G6H\n" "G6IRR\n" "G6LKB\n" "G6LSO\n" "G6LUG\n" "G6MC\n" "G6NUM\n" "G6NYG\n" "G6OKU\n" "G6OTZ\n" "G6PWY\n" "G6PZ\n" "G6RGA\n" "G6SFP\n" "G6TEL\n" "G6TUH\n" "G6TW\n" "G6UBM\n" "G6UW\n" "G6VS\n" "G6WWM\n" "G6WYH\n" "G6XMI\n" "G6XN\n" "G6YEK\n" "G6YGZ\n" "G6YKT\n" "G6YTB\n" "G6ZAC\n" "G7ACV\n" "G7AGZ\n" "G7AKM\n" "G7BHU\n" "G7BRZ\n" "G7BXG\n" "G7BXU\n" "G7BZD\n" "G7CLY\n" "G7DDN\n" "G7EPN\n" "G7FHV\n" "G7FIF\n" "G7FSI\n" "G7IGB\n" "G7IJI\n" "G7ITD\n" "G7IYF\n" "G7KHV\n" "G7KMZ\n" "G7LRR\n" "G7MBH\n" "G7MEI\n" "G7MJX\n" "G7N\n" "G7NAL\n" "G7NBQ\n" "G7NKS\n" "G7NOT\n" "G7OOD\n" "G7PVZ\n" "G7RAU\n" "G7RTI\n" "G7SKR\n" "G7SOZ\n" "G7SQC\n" "G7SQW\n" "G7SSE\n" "G7TGK\n" "G7TMU\n" "G7TPL\n" "G7TWC\n" "G7UOU\n" "G7VJR\n" "G7VNN\n" "G7VRK\n" "G7WFA\n" "G7WLL\n" "G8APB\n" "G8BIG\n" "G8BUN\n" "G8CCL\n" "G8CKT\n" "G8CMU\n" "G8CUG\n" "G8DNP\n" "G8DQP\n" "G8DVK\n" "G8DYT\n" "G8ETD\n" "G8EYC\n" "G8FCQ\n" "G8FDR\n" "G8FMJ\n" "G8FMJ/P\n" "G8FRS\n" "G8GBY\n" "G8GXP\n" "G8HBS\n" "G8HGP\n" "G8HPW\n" "G8HQJ\n" "G8HXE\n" "G8HYP\n" "G8JIT\n" "G8JXV\n" "G8KEK\n" "G8KVP\n" "G8LBS\n" "G8LED\n" "G8LIK\n" "G8LOJ\n" "G8LRS\n" "G8MIA\n" "G8NRP\n" "G8OEF\n" "G8P\n" "G8PQ\n" "G8RCK\n" "G8UBJ\n" "G8ULM\n" "G8VOI\n" "G8WQE\n" "G8XDX\n" "G8XTJ\n" "G8XXJ\n" "G8ZRE\n" "G9M\n" "GA0DBW\n" "GA0FGI\n" "GA0NBM\n" "GA0WED\n" "GA2MP\n" "GA3TAL\n" "GA3WUX\n" "GA3YOR\n" "GA4AGL\n" "GA4XQJ\n" "GB2BP\n" "GB2DX\n" "GB2WCM\n" "GB50ATG\n" "GB50OT\n" "GB7HQ\n" "GC0EJE\n" "GC4KPT\n" "GD0AMD\n" "GD0IFU\n" "GD0TEP\n" "GD3TNS\n" "GD4EIP\n" "GD4IHC\n" "GD4KIN\n" "GD4WBY\n" "GD6IA\n" "GD7ARS\n" "GD8K\n" "GI0AIJ\n" "GI0EJU\n" "GI0KOV\n" "GI0KOW\n" "GI0KVQ\n" "GI0MXT\n" "GI0NCA\n" "GI0OUM\n" "GI0RQK\n" "GI0RTN\n" "GI0THZ\n" "GI0UQK\n" "GI0UVD\n" "GI3DZE\n" "GI3KDR\n" "GI3NVW\n" "GI3OQR\n" "GI3PDN\n" "GI3POS\n" "GI3SG\n" "GI4AAM\n" "GI4BQI\n" "GI4CFQ\n" "GI4DOH\n" "GI4DYE\n" "GI4EBS\n" "GI4FUE\n" "GI4FUM\n" "GI4JTF\n" "GI4KSH\n" "GI4KSO\n" "GI4MWA\n" "GI4NKB\n" "GI4OWA\n" "GI4SJQ\n" "GI4SNA\n" "GI4SZW\n" "GI4VIV\n" "GI4WXA\n" "GI4XSF\n" "GI5K\n" "GI6DEY\n" "GI6FHD\n" "GI7AXB\n" "GI7THH\n" "GI8HXY\n" "GI8SKN\n" "GJ0KYZ\n" "GJ2A\n" "GJ3WW\n" "GJ3YHU\n" "GJ4CBQ\n" "GJ6YB\n" "GJ7DNI\n" "GM0ADX\n" "GM0AXY\n" "GM0B\n" "GM0CDV\n" "GM0DBW\n" "GM0EGI\n" "GM0EKM\n" "GM0ELP\n" "GM0F\n" "GM0FGI\n" "GM0FNE\n" "GM0FSV\n" "GM0GAV\n" "GM0GMN\n" "GM0GOV\n" "GM0IIO\n" "GM0KWW\n" "GM0NAI\n" "GM0NBM\n" "GM0NKX\n" "GM0OAA\n" "GM0OGN\n" "GM0ONX\n" "GM0OQV\n" "GM0RML\n" "GM0SCA\n" "GM0TQJ\n" "GM0UDL\n" "GM0UUB\n" "GM0VIT\n" "GM0VRP\n" "GM0WED\n" "GM1DSK\n" "GM1F\n" "GM1FLQ\n" "GM1J\n" "GM1POA\n" "GM1SRX\n" "GM2T\n" "GM2V\n" "GM3AXI\n" "GM3C\n" "GM3CFS\n" "GM3FDN\n" "GM3ITN\n" "GM3JKS\n" "GM3JOB\n" "GM3JQJ\n" "GM3JSX\n" "GM3LKY\n" "GM3LKY/P\n" "GM3MZX\n" "GM3NHQ\n" "GM3NSQ\n" "GM3OXX\n" "GM3OZB\n" "GM3POI\n" "GM3PPG\n" "GM3SEK\n" "GM3SVW\n" "GM3T\n" "GM3TCW\n" "GM3UA\n" "GM3UHT\n" "GM3VNW\n" "GM3VTY\n" "GM3W\n" "GM3WIJ\n" "GM3WIL\n" "GM3WOJ\n" "GM3WUX\n" "GM3YEH\n" "GM3YOR\n" "GM3YS\n" "GM3YTS\n" "GM3ZBE\n" "GM3ZRT\n" "GM3ZXL\n" "GM4AFF\n" "GM4AGL\n" "GM4BKV\n" "GM4BRN\n" "GM4CXM\n" "GM4DZX\n" "GM4ELV\n" "GM4ESD\n" "GM4EVS\n" "GM4FAM\n" "GM4FDM\n" "GM4FFF\n" "GM4HQF\n" "GM4IKT\n" "GM4JR\n" "GM4JYB\n" "GM4KGK\n" "GM4KLN\n" "GM4NTL\n" "GM4OSS\n" "GM4SDQ\n" "GM4SID\n" "GM4TAL\n" "GM4UBJ\n" "GM4ULS\n" "GM4UYE\n" "GM4UYZ\n" "GM4W\n" "GM4WIE\n" "GM4WLN\n" "GM4XQJ\n" "GM4YLN\n" "GM4YSN\n" "GM4YXI\n" "GM4ZJI\n" "GM4ZNC\n" "GM4ZUK\n" "GM5A\n" "GM5M\n" "GM6MD\n" "GM6NX\n" "GM6VCV\n" "GM6VVG\n" "GM7A\n" "GM7AAJ\n" "GM7DAJ\n" "GM7KFS\n" "GM7OAW\n" "GM7R\n" "GM7TFN\n" "GM7TUD\n" "GM7UAU\n" "GM7V\n" "GM7VSB/P\n" "GM8GAX\n" "GM8LFB\n" "GM8SBH\n" "GR2HQ\n" "GS0TOW\n" "GS8R\n" "GU0SUP\n" "GU4CHY\n" "GU4EON\n" "GU4RUK\n" "GU4YOX\n" "GU6EFB\n" "GW0ANA\n" "GW0ARK\n" "GW0ETF\n" "GW0FEU\n" "GW0GEI\n" "GW0IRP\n" "GW0IWD\n" "GW0LBI\n" "GW0LKJ\n" "GW0MOW\n" "GW0NPL\n" "GW0RYT\n" "GW0TSM\n" "GW0UDJ\n" "GW0UZK\n" "GW0VSW\n" "GW0VWD\n" "GW0WGK\n" "GW1CJJ\n" "GW1IOT\n" "GW1MVZ\n" "GW1PJP\n" "GW1VDW\n" "GW3CBA\n" "GW3HGL\n" "GW3JSV\n" "GW3JXN\n" "GW3KDB\n" "GW3KGV\n" "GW3LDC\n" "GW3LEW\n" "GW3LNR\n" "GW3MCS\n" "GW3NAS\n" "GW3NJW\n" "GW3R\n" "GW3SFC\n" "GW3SQX\n" "GW3UOF\n" "GW3XRM\n" "GW3YAF\n" "GW3YBX\n" "GW3YDX\n" "GW3YRP\n" "GW3YVC\n" "GW4AYJ\n" "GW4BKG\n" "GW4BLE\n" "GW4BVE\n" "GW4BZD\n" "GW4CQZ\n" "GW4EVX\n" "GW4HDF\n" "GW4MVA\n" "GW4OGO\n" "GW4OH\n" "GW4RDW\n" "GW4RIB\n" "GW4SKA\n" "GW4TPG\n" "GW5NF\n" "GW6JBN\n" "GW6NKG\n" "GW6PMC\n" "GW6W\n" "GW7BZR\n" "GW7ERI\n" "GW7X\n" "GW8GT\n" "GW8IQC\n" "GW8IZR\n" "GW8JOY\n" "GW8NBI\n" "GW9T\n" "GX3YNN\n" "GX4BJC/A\n" "GX4BJC/P\n" "GZ0F\n" "GZ5Y\n" "H22H\n" "H2E\n" "H2Q\n" "H2T\n" "H44MS\n" "H44MY\n" "H7A\n" "HA/YO5KAD/P\n" "HA0ANA\n" "HA0BW\n" "HA0BY\n" "HA0DD\n" "HA0ER\n" "HA0GK\n" "HA0HV\n" "HA0HW\n" "HA0IH\n" "HA0IL\n" "HA0IM\n" "HA0IT\n" "HA0IV\n" "HA0KLL\n" "HA0LC\n" "HA0LG\n" "HA0LP\n" "HA0LW\n" "HA0ML\n" "HA0MO\n" "HA0MS\n" "HA0NAR\n" "HA0NGT\n" "HA100KONE\n" "HA1A\n" "HA1AD\n" "HA1AG\n" "HA1AR\n" "HA1AV\n" "HA1BC\n" "HA1CA/P\n" "HA1CW\n" "HA1DAE\n" "HA1DK\n" "HA1FF\n" "HA1Q\n" "HA1RS\n" "HA1SD\n" "HA1SN\n" "HA1SU\n" "HA1TAB\n" "HA1TI\n" "HA1TNX\n" "HA1TO\n" "HA1VE\n" "HA1WD\n" "HA1XU\n" "HA1XY\n" "HA1YI\n" "HA1ZH\n" "HA1ZU\n" "HA1ZV\n" "HA1ZZ\n" "HA25NAR\n" "HA2EBE\n" "HA2EOA\n" "HA2EOD\n" "HA2EOJ\n" "HA2EQD\n" "HA2ERO\n" "HA2ESM\n" "HA2G\n" "HA2MJ\n" "HA2MN\n" "HA2NM\n" "HA2PP\n" "HA2QW\n" "HA2R\n" "HA2RQ\n" "HA2SG\n" "HA2SJ\n" "HA2VH\n" "HA2VR/P\n" "HA2YL\n" "HA3/N1BCL\n" "HA3DMF\n" "HA3DX\n" "HA3E\n" "HA3FT\n" "HA3FTA\n" "HA3FZ\n" "HA3GE\n" "HA3GJ\n" "HA3GN\n" "HA3GO\n" "HA3GQ\n" "HA3HF\n" "HA3HK\n" "HA3HO\n" "HA3HX\n" "HA3JB\n" "HA3JO\n" "HA3LGB\n" "HA3LI\n" "HA3LN\n" "HA3MN\n" "HA3MU\n" "HA3MY\n" "HA3NU\n" "HA3OD\n" "HA3OK\n" "HA3OU\n" "HA3OV\n" "HA3PT\n" "HA3RD\n" "HA3UU\n" "HA3YE\n" "HA4AA\n" "HA4FB\n" "HA4FV\n" "HA4FY\n" "HA4YF\n" "HA4YO\n" "HA5AB\n" "HA5AEZ\n" "HA5AF\n" "HA5AGS\n" "HA5AO\n" "HA5AQ\n" "HA5ARX\n" "HA5AWT\n" "HA5AZZ\n" "HA5BA\n" "HA5BKV/P\n" "HA5BPS/P\n" "HA5BSW\n" "HA5BVG\n" "HA5CQ\n" "HA5DA\n" "HA5DE\n" "HA5FA\n" "HA5FM\n" "HA5FQ\n" "HA5GN\n" "HA5GO\n" "HA5GY\n" "HA5HH\n" "HA5JI\n" "HA5KDQ\n" "HA5KG\n" "HA5KID\n" "HA5KKC\n" "HA5KN\n" "HA5KQ\n" "HA5KY\n" "HA5LV\n" "HA5LZ\n" "HA5MK\n" "HA5MO\n" "HA5NB\n" "HA5OAF\n" "HA5OB\n" "HA5OM\n" "HA5OMM\n" "HA5OO\n" "HA5OV\n" "HA5OW\n" "HA5PP\n" "HA5PT\n" "HA5RDP\n" "HA5TI\n" "HA5UA\n" "HA5UK\n" "HA5UY\n" "HA5VJ\n" "HA5VZ\n" "HA5W\n" "HA5WA\n" "HA5X\n" "HA6D\n" "HA6FQ\n" "HA6IAM\n" "HA6IAY\n" "HA6ICP\n" "HA6IGM\n" "HA6KNX\n" "HA6KZS\n" "HA6M\n" "HA6NF\n" "HA6NI\n" "HA6NL\n" "HA6NN\n" "HA6NW\n" "HA6NY\n" "HA6OA\n" "HA6OD\n" "HA6OL\n" "HA6OZ\n" "HA6PF\n" "HA6PJ\n" "HA6PQ\n" "HA6PS/P\n" "HA6PX\n" "HA6QR\n" "HA6VA\n" "HA6VB\n" "HA6WTM/P\n" "HA6XA\n" "HA6ZQ\n" "HA7A\n" "HA7AVU\n" "HA7CN\n" "HA7GN\n" "HA7JDV\n" "HA7JQK\n" "HA7LW\n" "HA7MB\n" "HA7ML\n" "HA7MS\n" "HA7MW\n" "HA7MY\n" "HA7NK\n" "HA7PF\n" "HA7PL\n" "HA7PO\n" "HA7RY\n" "HA7SBQ\n" "HA7SG\n" "HA7SQ\n" "HA7TM\n" "HA7UG\n" "HA7UI\n" "HA7UL\n" "HA7UW\n" "HA7VK\n" "HA7YS\n" "HA7ZT\n" "HA8A\n" "HA8AAA\n" "HA8AL\n" "HA8AR\n" "HA8BE\n" "HA8BQ\n" "HA8BR\n" "HA8BT\n" "HA8CQ\n" "HA8DM\n" "HA8DT\n" "HA8EK\n" "HA8EN\n" "HA8EV\n" "HA8FK\n" "HA8FM\n" "HA8GT\n" "HA8GY\n" "HA8IB\n" "HA8IC\n" "HA8IE\n" "HA8IH\n" "HA8JP\n" "HA8JV\n" "HA8KCS\n" "HA8KVK\n" "HA8KW\n" "HA8LKM\n" "HA8LLK\n" "HA8LNA\n" "HA8LNN\n" "HA8MD\n" "HA8MT\n" "HA8MV\n" "HA8PH\n" "HA8QB\n" "HA8QC\n" "HA8QZ\n" "HA8RC\n" "HA8RJ\n" "HA8RM\n" "HA8SSG\n" "HA8TI\n" "HA8TP\n" "HA8UT\n" "HA8V\n" "HA8VK\n" "HA8VX\n" "HA8WO\n" "HA8WP\n" "HA8WY\n" "HA8WZ\n" "HA8YU\n" "HA8ZB\n" "HA9DMD\n" "HA9PP\n" "HA9RC\n" "HA9RE\n" "HA9RT\n" "HA9RU\n" "HA9SU\n" "HB0/DH2FW\n" "HB0/DJ9CB\n" "HB0/DK4YJ\n" "HB0/DK9FEC\n" "HB0/DK9TN\n" "HB0/F5LMJ\n" "HB0/HB9AON\n" "HB0/HB9LCW\n" "HB0CC\n" "HB10DX\n" "HB3YAV\n" "HB3YDJ\n" "HB3YFC\n" "HB3YRB\n" "HB3YSC\n" "HB3YUL\n" "HB3YVF\n" "HB3YVZ\n" "HB4FE\n" "HB4FL\n" "HB8AD\n" "HB9AA\n" "HB9AAL\n" "HB9AAP\n" "HB9AAQ\n" "HB9AAY\n" "HB9AAZ\n" "HB9ABB\n" "HB9ACC\n" "HB9ADC\n" "HB9AEP\n" "HB9AEV\n" "HB9AFH\n" "HB9AFI\n" "HB9AGA\n" "HB9AGH\n" "HB9AGO\n" "HB9AII\n" "HB9AIY\n" "HB9AJ\n" "HB9AJG\n" "HB9AJM\n" "HB9AJP\n" "HB9AJW\n" "HB9AKB\n" "HB9ALH\n" "HB9ALO\n" "HB9AMB\n" "HB9AMO\n" "HB9ANJ\n" "HB9ANM\n" "HB9AON\n" "HB9APJ\n" "HB9AQA\n" "HB9AQW\n" "HB9ARF\n" "HB9ARK\n" "HB9ATG\n" "HB9ATX\n" "HB9AUK\n" "HB9AUS\n" "HB9AVE\n" "HB9AVK\n" "HB9AWS\n" "HB9AYZ\n" "HB9AZZ\n" "HB9BAP\n" "HB9BEI\n" "HB9BGF\n" "HB9BHW\n" "HB9BIN\n" "HB9BIQ\n" "HB9BJJ\n" "HB9BJL\n" "HB9BLQ\n" "HB9BMY\n" "HB9BNK\n" "HB9BOO\n" "HB9BOS\n" "HB9BPV\n" "HB9BPX\n" "HB9BQP\n" "HB9BQY\n" "HB9BRJ\n" "HB9BRU\n" "HB9BTI\n" "HB9BTQ\n" "HB9BXE\n" "HB9BXQ\n" "HB9BYQ\n" "HB9BZA\n" "HB9CA\n" "HB9CAL\n" "HB9CAT\n" "HB9CBR\n" "HB9CCZ\n" "HB9CEI\n" "HB9CEX\n" "HB9CEY\n" "HB9CFU\n" "HB9CGL\n" "HB9CGO\n" "HB9CHY\n" "HB9CIC\n" "HB9CIK\n" "HB9CIN\n" "HB9CIP\n" "HB9CKM\n" "HB9CMG\n" "HB9CNR\n" "HB9CNU\n" "HB9CNY\n" "HB9COH\n" "HB9COJ\n" "HB9COP\n" "HB9COZ\n" "HB9CPS\n" "HB9CQL\n" "HB9CQS\n" "HB9CRV\n" "HB9CSM\n" "HB9CUK\n" "HB9CVE\n" "HB9CVQ\n" "HB9CXR\n" "HB9CXZ\n" "HB9CYT\n" "HB9CZF\n" "HB9DA\n" "HB9DAI\n" "HB9DAX\n" "HB9DBK\n" "HB9DCL\n" "HB9DCM\n" "HB9DCQ\n" "HB9DDE\n" "HB9DDO\n" "HB9DDS\n" "HB9DDZ\n" "HB9DES\n" "HB9DFD\n" "HB9DFI\n" "HB9DHA\n" "HB9DHG\n" "HB9DNG\n" "HB9DOS\n" "HB9DPO\n" "HB9DPY\n" "HB9DQD\n" "HB9DQH\n" "HB9DQJ\n" "HB9DRI\n" "HB9DRK\n" "HB9DRM\n" "HB9DRS\n" "HB9DRT\n" "HB9DSE\n" "HB9DSU\n" "HB9DUP\n" "HB9DUR\n" "HB9DVT\n" "HB9DVZ\n" "HB9DWL\n" "HB9DWR\n" "HB9DWZ\n" "HB9EAZ\n" "HB9EBC\n" "HB9EDG\n" "HB9EE\n" "HB9EFJ\n" "HB9EFM\n" "HB9EGA/P\n" "HB9EHJ\n" "HB9EHK\n" "HB9EHN\n" "HB9EHP\n" "HB9EHV\n" "HB9EI\n" "HB9EIY\n" "HB9EIZ\n" "HB9EKR\n" "HB9ELD\n" "HB9ELF\n" "HB9ELS\n" "HB9ELV\n" "HB9EP\n" "HB9EPH\n" "HB9EPM\n" "HB9ESC\n" "HB9ESS\n" "HB9ETR\n" "HB9FAI\n" "HB9FAP\n" "HB9FAQ\n" "HB9FAW\n" "HB9FBG\n" "HB9FBM\n" "HB9FBS\n" "HB9FBU\n" "HB9FMN\n" "HB9FMT\n" "HB9FMU\n" "HB9FNE\n" "HB9FNX\n" "HB9G\n" "HB9GBJ\n" "HB9GCE\n" "HB9H\n" "HB9HFM\n" "HB9HFN\n" "HB9HI/P\n" "HB9HLM\n" "HB9HQ\n" "HB9HQA\n" "HB9HQX\n" "HB9IAB\n" "HB9ICC\n" "HB9ICG\n" "HB9IIO\n" "HB9IIY\n" "HB9IK\n" "HB9IQB\n" "HB9IQP\n" "HB9JBN\n" "HB9JF\n" "HB9JNM\n" "HB9JOE\n" "HB9JW\n" "HB9KAI\n" "HB9KAM\n" "HB9KAR\n" "HB9KBB\n" "HB9KNA\n" "HB9KNY\n" "HB9KOG\n" "HB9KT\n" "HB9LBL\n" "HB9LCW\n" "HB9LF\n" "HB9LL\n" "HB9MCF\n" "HB9MFM\n" "HB9MGX\n" "HB9MHR\n" "HB9MI\n" "HB9MXY\n" "HB9MZI\n" "HB9OAB\n" "HB9OCR\n" "HB9ODK\n" "HB9ODP\n" "HB9OK\n" "HB9ON\n" "HB9PGR\n" "HB9PJT\n" "HB9PL\n" "HB9PLW\n" "HB9PNR\n" "HB9QA\n" "HB9QR\n" "HB9QT\n" "HB9RDE\n" "HB9RE\n" "HB9RJD\n" "HB9RJG\n" "HB9ROX\n" "HB9RVE\n" "HB9SVT\n" "HB9TI\n" "HB9TKS\n" "HB9TLM\n" "HB9TMW\n" "HB9TNU\n" "HB9TNW\n" "HB9TOC\n" "HB9TON\n" "HB9TOX\n" "HB9TPK\n" "HB9TPT\n" "HB9TQL\n" "HB9TQP\n" "HB9TRD\n" "HB9TRT\n" "HB9TSA\n" "HB9TSI\n" "HB9TST\n" "HB9TSU\n" "HB9TSW\n" "HB9TTX\n" "HB9TUD\n" "HB9TUZ\n" "HB9TVR\n" "HB9TVY\n" "HB9TWS\n" "HB9TWU\n" "HB9TWZ\n" "HB9TZR\n" "HB9UU\n" "HB9VID\n" "HB9WDY\n" "HB9XAW\n" "HB9YBQ\n" "HB9YC\n" "HB9ZAG\n" "HB9ZCF\n" "HB9ZCV\n" "HB9ZE\n" "HB9ZV\n" "HB9ZY\n" "HB9ZZ\n" "HC1HC\n" "HC1JQ\n" "HC1MD\n" "HC2A\n" "HC2AD\n" "HC2AQ\n" "HC2GF\n" "HC2GO\n" "HC2GT\n" "HC2IK\n" "HC2KB\n" "HC2S\n" "HC2SA\n" "HC2SL\n" "HC5VF\n" "HC5WW\n" "HC7AE\n" "HC8A\n" "HC8GR\n" "HC8N\n" "HD2A\n" "HD2M\n" "HD5J\n" "HE8AAA\n" "HE8AFI\n" "HE8AOF\n" "HE8AUS\n" "HE8AWS\n" "HE8BIN\n" "HE8BRU\n" "HE8CIC\n" "HE8CSM\n" "HE8CUK\n" "HE8CXZ\n" "HE8CZF\n" "HE8DAX\n" "HE8DDE\n" "HE8DSY\n" "HE8DWR\n" "HE8EBC\n" "HE8EFJ\n" "HE8FAP\n" "HE8FR\n" "HE8HLM\n" "HE8MH\n" "HE8MXY\n" "HE8OK\n" "HE8PKP\n" "HE8TJM\n" "HE8TMW\n" "HE8TOC\n" "HE8TST\n" "HE8TSU\n" "HE8TUD\n" "HE8TUZ\n" "HE8WW\n" "HE8ZZ\n" "HF200C\n" "HF30CUF\n" "HF4K\n" "HF50BORY\n" "HF50OLS\n" "HF5ES\n" "HF65PW\n" "HF70M\n" "HF70W\n" "HF80B\n" "HF80IU\n" "HF80JMR\n" "HF94JEN\n" "HF94KE\n" "HG0A\n" "HG0HQ\n" "HG0R\n" "HG10P\n" "HG1848I\n" "HG1A\n" "HG1DX\n" "HG1R\n" "HG1S\n" "HG1W\n" "HG1X\n" "HG2W\n" "HG2X\n" "HG30FHA\n" "HG3A\n" "HG3DX\n" "HG3FMZ\n" "HG3IPA\n" "HG3M\n" "HG3R\n" "HG3W\n" "HG400HV\n" "HG4F\n" "HG4I\n" "HG5A\n" "HG5C\n" "HG5O\n" "HG5XA\n" "HG60VOTT\n" "HG6N\n" "HG6V\n" "HG6W\n" "HG6Y\n" "HG7HQ\n" "HG7JAL\n" "HG7T\n" "HG8C\n" "HG8DX\n" "HG8K\n" "HG8N\n" "HG8R\n" "HG8W\n" "HG8YKO\n" "HG8Z\n" "HG9R\n" "HH2/I8UZA\n" "HI3/LY3UM\n" "HI3/W1JNZ\n" "HI3A\n" "HI3CC\n" "HI3CCP\n" "HI3FVA\n" "HI3K\n" "HI3T\n" "HI3TEJ\n" "HI8A\n" "HI8JQE\n" "HI8LAM\n" "HI8PJP\n" "HI8PLE\n" "HK0/EA7HEJ\n" "HK0T\n" "HK1A\n" "HK1AA\n" "HK1KXA\n" "HK1KYR\n" "HK1N\n" "HK1NK\n" "HK1R\n" "HK1X\n" "HK3/KC2LSD\n" "HK3CQ\n" "HK3J\n" "HK3JJH\n" "HK3KWX\n" "HK3LGO\n" "HK3O\n" "HK3OZ\n" "HK3PSA\n" "HK3Q\n" "HK3RA\n" "HK3TU\n" "HK3UA\n" "HK3W\n" "HK3Y\n" "HK4EB\n" "HK4SAN\n" "HK6CF\n" "HK6F\n" "HK6P\n" "HK6R\n" "HK8EA\n" "HL0HQ\n" "HL0MBC\n" "HL0U\n" "HL1/SP5AUC\n" "HL1/WX8C\n" "HL1AV\n" "HL1IBG\n" "HL1IWD\n" "HL1OYF\n" "HL1VAU\n" "HL2/KF6RCP\n" "HL2ADO\n" "HL2AEJ\n" "HL2AVK\n" "HL2BM\n" "HL2CFY\n" "HL2DC\n" "HL2DYS\n" "HL2FDW\n" "HL2KV\n" "HL2KXT\n" "HL2LTX\n" "HL2MTK\n" "HL2OLN\n" "HL2PCU\n" "HL2ST\n" "HL2SU\n" "HL2UOK\n" "HL3AMO\n" "HL3IB\n" "HL3IUA\n" "HL4CEL\n" "HL4CJG\n" "HL4GKR\n" "HL4RBR\n" "HL4XM\n" "HL5/VK6DXI\n" "HL5AP\n" "HL5BLI\n" "HL5BMX\n" "HL5FKP\n" "HL5FXP\n" "HL5JCB\n" "HL5JGR\n" "HL5LKI\n" "HL5OC\n" "HL5QY\n" "HL5UOG\n" "HL5YI\n" "HL9A\n" "HP1/IZ6BRN\n" "HP1AC\n" "HP1ALX\n" "HP1AVS\n" "HP1BYS\n" "HP1DCP\n" "HP1RIS\n" "HP1WW\n" "HP3AK\n" "HP3DX\n" "HP3FTD\n" "HP3TA\n" "HQ1L\n" "HQ2R\n" "HQ2T\n" "HQ2W\n" "HQ3Z\n" "HQ9R\n" "HR1/K2LCT\n" "HR1RTF\n" "HR2DMR\n" "HR2J\n" "HR2OAV\n" "HR9/WQ7R\n" "HS0/W4ESF\n" "HS0AC\n" "HS0EHF\n" "HS0GBI\n" "HS0ZBS\n" "HS0ZCW\n" "HS0ZCX\n" "HS0ZDJ\n" "HS0ZDR\n" "HS0ZDX\n" "HS0ZDY\n" "HS0ZED\n" "HS0ZEE\n" "HS0ZFK\n" "HS0ZGD\n" "HS0ZGV\n" "HS0ZHB\n" "HS0ZHC\n" "HS0ZHI\n" "HS0ZIN\n" "HS0ZIQ\n" "HS1CHB\n" "HS1CKC\n" "HS8JYX\n" "HS8KGG\n" "HT2N\n" "HV0A\n" "HV4NAC\n" "HZ1DG\n" "HZ1GW\n" "HZ1MD\n" "HZ1PS\n" "HZ1SK\n" "I/SQ9DJD\n" "I0/YO7LKW\n" "I0AAF\n" "I0ABK\n" "I0AMU\n" "I0APV\n" "I0BYR\n" "I0CG\n" "I0CMD\n" "I0DJV\n" "I0DTK\n" "I0EKY\n" "I0FDH\n" "I0GXK\n" "I0HCJ\n" "I0IA\n" "I0ISK\n" "I0JBL\n" "I0JX\n" "I0KHP\n" "I0KHY\n" "I0KNQ\n" "I0KWK\n" "I0KWX\n" "I0LTX\n" "I0LYO\n" "I0MOC\n" "I0MOM\n" "I0MWI\n" "I0NNY\n" "I0QM\n" "I0TIC\n" "I0TWA\n" "I0UZF\n" "I0VPK\n" "I0XXR\n" "I0YKN\n" "I0YQV\n" "I0YR\n" "I0ZUT\n" "I0ZV\n" "I0ZY\n" "I1ABT\n" "I1APQ\n" "I1BAY\n" "I1BEP\n" "I1BPU\n" "I1COB\n" "I1EIS\n" "I1FHA\n" "I1FLC\n" "I1FQH\n" "I1GIK\n" "I1HJT\n" "I1HJT/3\n" "I1HLP\n" "I1IOQ\n" "I1JHS\n" "I1LBI\n" "I1LGR\n" "I1LSN\n" "I1MRH\n" "I1NVU\n" "I1OOQ\n" "I1OQI\n" "I1PLX\n" "I1POR\n" "I1QBI\n" "I1RB\n" "I1RJP\n" "I1SAF\n" "I1SCL\n" "I1UW\n" "I1WQR\n" "I1WXY\n" "I1XPQ\n" "I1XSG\n" "I1YGQ\n" "I1YRL\n" "I1YTO\n" "I1ZDW\n" "I1ZEU\n" "I1ZL\n" "I2AT\n" "I2AXC/IS0\n" "I2AZ\n" "I2BBJ\n" "I2BJS\n" "I2BPP\n" "I2BZN\n" "I2CZQ\n" "I2DJX\n" "I2DMI\n" "I2EAY\n" "I2EGD\n" "I2FUG\n" "I2FUM\n" "I2GPT\n" "I2HXO\n" "I2JIM\n" "I2JIN\n" "I2JSB\n" "I2KAJ\n" "I2KBD\n" "I2KBW\n" "I2KMG\n" "I2MOV\n" "I2MQP\n" "I2NKR\n" "I2NX\n" "I2OGV\n" "I2ORX\n" "I2PEI\n" "I2PJA\n" "I2PUS\n" "I2RBR\n" "I2RFJ\n" "I2ROO\n" "I2RVW\n" "I2SVA\n" "I2TAO\n" "I2TFJ\n" "I2TZK\n" "I2UAC\n" "I2UBI\n" "I2UCE\n" "I2VGW\n" "I2VGZ\n" "I2VRN\n" "I2VXJ\n" "I2WDB\n" "I2WIJ\n" "I2WSG\n" "I2XBO\n" "I2XIP\n" "I2XLF\n" "I2YYO\n" "I2ZGA\n" "I2ZP\n" "I3BBK\n" "I3BLF\n" "I3CRW\n" "I3DBD\n" "I3EVK\n" "I3FDZ\n" "I3FIY\n" "I3GKK\n" "I3GVN\n" "I3ISM\n" "I3JRF\n" "I3JSS\n" "I3KAN\n" "I3MIQ\n" "I3MLU\n" "I3MMB\n" "I3MU\n" "I3OKZ\n" "I3PVB\n" "I3PXN\n" "I3QDK\n" "I3STS\n" "I3TGW\n" "I3THJ\n" "I3TXQ\n" "I3VAD\n" "I3VJW\n" "I3VRD\n" "I3VWK\n" "I3XMQ\n" "I3YEG\n" "I3ZNG\n" "I3ZSX\n" "I4ABF\n" "I4AUM\n" "I4AVG\n" "I4BMJ\n" "I4DVT\n" "I4DZ\n" "I4EAT\n" "I4ENO\n" "I4EUM\n" "I4EWH\n" "I4FGG\n" "I4FTU\n" "I4FYF\n" "I4GAD\n" "I4GYG\n" "I4HRH\n" "I4IKW\n" "I4JEE\n" "I4JRE\n" "I4JUQ\n" "I4KJW\n" "I4KMN\n" "I4KMW\n" "I4KRF\n" "I4LCK\n" "I4LEC\n" "I4MKN\n" "I4MNY\n" "I4NJM\n" "I4PZP\n" "I4QHD\n" "I4SJZ\n" "I4TJE\n" "I4UKS\n" "I4VEQ\n" "I4VIL\n" "I4VJC\n" "I4VOS\n" "I4WYE\n" "I4XNN\n" "I4YCE\n" "I4YEL\n" "I4YEY\n" "I4YSS\n" "I4YUG\n" "I4YYC\n" "I4ZGI\n" "I4ZQS\n" "I4ZSQ\n" "I5/IZ2RPJ\n" "I5BG\n" "I5BOL\n" "I5DOF\n" "I5DUI\n" "I5ECW\n" "I5ESR\n" "I5FCK\n" "I5FLN\n" "I5FWT\n" "I5HLK\n" "I5IAR\n" "I5IHE\n" "I5JFG\n" "I5JHW\n" "I5JKI/3\n" "I5KAP\n" "I5KG\n" "I5LRW\n" "I5LYJ\n" "I5MPK\n" "I5MXX\n" "I5NPH\n" "I5NSR\n" "I5OYY\n" "I5PFX\n" "I5QNJ\n" "I5REA\n" "I5RFD\n" "I5SDG\n" "I5VVA\n" "I5VXG\n" "I5WNN\n" "I5ZJK\n" "I5ZSS\n" "I5ZUF\n" "I6BDS\n" "I6BYQ\n" "I6CBI\n" "I6COJ\n" "I6DU\n" "I6DVW\n" "I6FDJ\n" "I6FLD\n" "I6FPN\n" "I6JEI\n" "I6KIU\n" "I6NO\n" "I6PTL\n" "I6TIH\n" "I6VGA\n" "I6WJB\n" "I7/9A3A\n" "I7CSB\n" "I7PHH\n" "I7PXV\n" "I7WL\n" "I8HAK\n" "I8IGS\n" "I8JOQ\n" "I8JYK\n" "I8KCI\n" "I8KFR\n" "I8KRC\n" "I8LWL\n" "I8MPO\n" "I8MSY\n" "I8NHJ\n" "I8OCA\n" "I8PND\n" "I8QJU\n" "I8QLI\n" "I8QLS\n" "I8SAT\n" "IA3IPY\n" "IB0R\n" "IC8AJU\n" "IC8C\n" "IC8FBU\n" "IC8OZM\n" "IC8POF\n" "IC8SCI\n" "IC8TEM\n" "IF9A\n" "IF9ZWA\n" "IG9/I2ADN\n" "IG9R\n" "IG9S\n" "IG9U\n" "IG9W\n" "IG9X\n" "IH9GPI\n" "IH9N\n" "IH9YMC\n" "II1H\n" "II1W\n" "II20CJ\n" "II2A\n" "II2C\n" "II2CV\n" "II2IARA\n" "II2S\n" "II3L\n" "II4A\n" "II4DP\n" "II5P\n" "II5W\n" "II7M\n" "IK0ATK\n" "IK0AUO\n" "IK0BOU\n" "IK0BZE\n" "IK0CHU\n" "IK0CNA\n" "IK0EFR\n" "IK0EIE\n" "IK0ESW\n" "IK0FMB\n" "IK0FUX\n" "IK0GDG\n" "IK0GHB\n" "IK0HBN\n" "IK0HFO\n" "IK0HIT\n" "IK0IKE\n" "IK0IOL\n" "IK0ISD\n" "IK0IXI\n" "IK0IZW\n" "IK0JFW\n" "IK0JNI\n" "IK0JOE\n" "IK0LNN\n" "IK0MHR\n" "IK0MIB\n" "IK0MPI\n" "IK0NSF\n" "IK0OZD\n" "IK0OZH\n" "IK0PEA\n" "IK0PHY\n" "IK0PRG\n" "IK0PXC\n" "IK0RCY\n" "IK0SDQ\n" "IK0SME\n" "IK0SXU\n" "IK0TUM\n" "IK0TWN\n" "IK0UTM\n" "IK0VAQ\n" "IK0VBT\n" "IK0VJH\n" "IK0VKL\n" "IK0VSY\n" "IK0VVG\n" "IK0VWH\n" "IK0VXG\n" "IK0WHN\n" "IK0WRB\n" "IK0XBX\n" "IK0XIH\n" "IK0YQJ\n" "IK0YUT\n" "IK0YVV\n" "IK0ZSN\n" "IK1ADH\n" "IK1ASR\n" "IK1BBC\n" "IK1BHS\n" "IK1BPL\n" "IK1CCS\n" "IK1DFH\n" "IK1DPA\n" "IK1DQW\n" "IK1EZC\n" "IK1FLE\n" "IK1FVO\n" "IK1FXX\n" "IK1GKD\n" "IK1GKH\n" "IK1GPG\n" "IK1GPK\n" "IK1HSS\n" "IK1HXN\n" "IK1HZZ\n" "IK1IXG\n" "IK1JJM\n" "IK1JNS\n" "IK1JTQ\n" "IK1JXY\n" "IK1LJO\n" "IK1LYQ\n" "IK1MDF\n" "IK1MEG\n" "IK1MJG\n" "IK1NEG\n" "IK1NPP\n" "IK1PMR\n" "IK1QBT\n" "IK1QFP\n" "IK1QHB\n" "IK1RAG\n" "IK1RGK\n" "IK1RKN\n" "IK1RKU\n" "IK1RQQ\n" "IK1SOW\n" "IK1SPE\n" "IK1SPR\n" "IK1TAZ\n" "IK1TJK\n" "IK1TWC\n" "IK1UGX\n" "IK1VCE\n" "IK1VDN\n" "IK1VEK\n" "IK1WEG\n" "IK1WGX\n" "IK1WJN\n" "IK1WJR\n" "IK1XHZ\n" "IK1XPK\n" "IK1XVO\n" "IK1YDB\n" "IK1YED\n" "IK1YEK\n" "IK1YLL\n" "IK1ZFO\n" "IK1ZNL\n" "IK1ZOE\n" "IK1ZYO\n" "IK2AHB\n" "IK2AHG\n" "IK2AHR\n" "IK2AIT\n" "IK2ANI\n" "IK2AOO\n" "IK2APW\n" "IK2AQZ\n" "IK2AUK\n" "IK2AVH\n" "IK2BBU\n" "IK2BCP\n" "IK2BDR\n" "IK2BLA\n" "IK2BSK\n" "IK2BUF\n" "IK2CFD\n" "IK2CHZ\n" "IK2CIK\n" "IK2CIO\n" "IK2CLB\n" "IK2CMN\n" "IK2CZQ\n" "IK2DAD\n" "IK2DED\n" "IK2DFZ\n" "IK2DJV\n" "IK2DKX\n" "IK2DPP\n" "IK2DZN\n" "IK2EAD\n" "IK2EBP\n" "IK2ECM\n" "IK2ECP\n" "IK2EGL\n" "IK2EKO\n" "IK2FCO\n" "IK2FIL\n" "IK2FIQ\n" "IK2FSS\n" "IK2FWO\n" "IK2GPQ\n" "IK2GWH\n" "IK2GZU\n" "IK2HBF\n" "IK2HDF\n" "IK2HKN\n" "IK2HKT\n" "IK2HLM\n" "IK2IKW\n" "IK2ILH\n" "IK2IQD\n" "IK2JYT\n" "IK2LFD\n" "IK2LOL\n" "IK2LTR\n" "IK2MKM\n" "IK2MLS\n" "IK2MLY\n" "IK2MPR\n" "IK2NCF\n" "IK2NUX\n" "IK2NVE\n" "IK2PFL\n" "IK2QEB\n" "IK2QEI\n" "IK2QIK\n" "IK2QIN\n" "IK2QLX\n" "IK2QPR\n" "IK2REA\n" "IK2RGT\n" "IK2RLS\n" "IK2RMZ\n" "IK2RZP\n" "IK2RZQ\n" "IK2SAI\n" "IK2SAR\n" "IK2SAU\n" "IK2SGB\n" "IK2SGF\n" "IK2SND\n" "IK2SVF\n" "IK2TDM\n" "IK2TDR\n" "IK2TYP\n" "IK2UCK\n" "IK2UEC\n" "IK2UEK\n" "IK2UJF\n" "IK2UJS\n" "IK2UTT\n" "IK2UZQ\n" "IK2VFR\n" "IK2VFW\n" "IK2VIW\n" "IK2WFJ\n" "IK2WFN\n" "IK2WJT\n" "IK2WPO\n" "IK2WQK\n" "IK2WSJ\n" "IK2WXQ\n" "IK2WXV\n" "IK2WYI\n" "IK2WYW\n" "IK2WZM\n" "IK2XDE\n" "IK2XDF\n" "IK2XEF\n" "IK2XRO\n" "IK2XYI\n" "IK2YCW\n" "IK2YFT\n" "IK2YGZ\n" "IK2YSJ\n" "IK2YXB\n" "IK2YXP\n" "IK3AES\n" "IK3ASM\n" "IK3BTK\n" "IK3BVD\n" "IK3CST\n" "IK3DQU\n" "IK3DRO\n" "IK3DVY\n" "IK3GER\n" "IK3GES\n" "IK3GHW\n" "IK3GID\n" "IK3HHX\n" "IK3HMB\n" "IK3HUG\n" "IK3IUE\n" "IK3IUL\n" "IK3JBP\n" "IK3JLV\n" "IK3MLF\n" "IK3OBX\n" "IK3OCD\n" "IK3OII\n" "IK3ORD\n" "IK3OYY\n" "IK3PQG\n" "IK3PQH\n" "IK3QAR\n" "IK3RET\n" "IK3SCA\n" "IK3SCB\n" "IK3SHP\n" "IK3SSJ\n" "IK3SSO\n" "IK3SSW\n" "IK3STG\n" "IK3SWB\n" "IK3TPP\n" "IK3TZB\n" "IK3UMZ\n" "IK3UNA\n" "IK3UNA/1\n" "IK3VBB\n" "IK3VUT\n" "IK3VUU\n" "IK3WOI\n" "IK3XJL\n" "IK3XJP\n" "IK3XTY\n" "IK3YBX\n" "IK4ALM\n" "IK4AUY\n" "IK4BHO\n" "IK4CIE\n" "IK4DCT\n" "IK4DCX\n" "IK4DDI\n" "IK4DRR\n" "IK4DRY\n" "IK4EWN\n" "IK4GBU\n" "IK4GME\n" "IK4GRO\n" "IK4HAQ\n" "IK4HLQ\n" "IK4ICS\n" "IK4JQO\n" "IK4JQS\n" "IK4LAI\n" "IK4MGJ\n" "IK4MGP\n" "IK4MGV\n" "IK4NQW\n" "IK4PKK\n" "IK4PKN\n" "IK4PMB\n" "IK4QJF\n" "IK4RQE\n" "IK4RQJ\n" "IK4RSO\n" "IK4TVP\n" "IK4UNH\n" "IK4UOA\n" "IK4UPB\n" "IK4VET\n" "IK4VFB\n" "IK4WKU\n" "IK4WLU\n" "IK4WMB\n" "IK4WMH\n" "IK4WTU\n" "IK4XCL\n" "IK4XQT\n" "IK4YAZ\n" "IK4ZGO\n" "IK4ZHH\n" "IK5AAB\n" "IK5ACO\n" "IK5AFJ\n" "IK5AMB\n" "IK5AYM\n" "IK5BAF\n" "IK5BCM\n" "IK5BDG\n" "IK5DHL\n" "IK5DVW\n" "IK5EKB\n" "IK5EKL\n" "IK5FCK\n" "IK5FKF\n" "IK5FQX\n" "IK5GFC\n" "IK5GQK\n" "IK5HHA\n" "IK5IFH\n" "IK5IIY\n" "IK5JXR\n" "IK5MEJ\n" "IK5MEN\n" "IK5OJB\n" "IK5PVX\n" "IK5PWB\n" "IK5PWC\n" "IK5PWN\n" "IK5PWQ\n" "IK5PWS\n" "IK5ROP\n" "IK5RUN\n" "IK5SRF\n" "IK5TBI\n" "IK5TTA\n" "IK5UAN\n" "IK5UAN/5\n" "IK5UIM\n" "IK5WGK\n" "IK5XLB\n" "IK5YJK\n" "IK5ZAJ\n" "IK5ZQC\n" "IK5ZTT\n" "IK5ZUB\n" "IK5ZWU\n" "IK6BGJ\n" "IK6CNM\n" "IK6CWQ\n" "IK6DTB\n" "IK6EIW\n" "IK6EUH\n" "IK6FTZ\n" "IK6FWJ\n" "IK6GQC\n" "IK6GRT\n" "IK6GTF\n" "IK6HRB\n" "IK6IHN\n" "IK6IJF\n" "IK6IKJ\n" "IK6JRI\n" "IK6LBV\n" "IK6MNB\n" "IK6MND\n" "IK6OIN\n" "IK6PTH\n" "IK6SIO\n" "IK6SNR\n" "IK6TOS\n" "IK6UBY\n" "IK6VXO\n" "IK6XEJ\n" "IK6YXM\n" "IK6ZDE\n" "IK6ZER\n" "IK7BEF\n" "IK7BPV\n" "IK7CMY\n" "IK7FMQ\n" "IK7FPU\n" "IK7GFS\n" "IK7GIM\n" "IK7JTF\n" "IK7JWY\n" "IK7LMX\n" "IK7NXU\n" "IK7OFI\n" "IK7PTX\n" "IK7RVY\n" "IK7SLT\n" "IK7UFW\n" "IK7UXU\n" "IK7WPC\n" "IK7WPD\n" "IK7XLU\n" "IK7XLW\n" "IK7YTT\n" "IK7YZG\n" "IK8ARF\n" "IK8AWH\n" "IK8BIZ\n" "IK8BQE\n" "IK8EJN\n" "IK8ENH\n" "IK8EPC\n" "IK8GYL\n" "IK8GYQ\n" "IK8HBA\n" "IK8HCG\n" "IK8HJC\n" "IK8HMJ\n" "IK8HTM\n" "IK8IOZ\n" "IK8IPL\n" "IK8JDH\n" "IK8JUY\n" "IK8LJA\n" "IK8LTB\n" "IK8LXI\n" "IK8MIG\n" "IK8MYJ\n" "IK8MYM\n" "IK8NBE\n" "IK8NII\n" "IK8NIJ\n" "IK8NRW\n" "IK8NSR\n" "IK8NUO\n" "IK8OFW\n" "IK8OXQ\n" "IK8OZV\n" "IK8OZZ\n" "IK8PLE\n" "IK8QQO\n" "IK8RIJ\n" "IK8SCR\n" "IK8SEU\n" "IK8TEM\n" "IK8TEO\n" "IK8TVG\n" "IK8UND\n" "IK8VZE\n" "IK8WEJ\n" "IK8XFR\n" "IK8XFU\n" "IK8XIM\n" "IK8YDP\n" "IK8YFU\n" "IK8YJQ\n" "IK8YJQ/P\n" "IK8YOQ\n" "IL3T\n" "IN3ADW\n" "IN3ADW/P\n" "IN3AEF\n" "IN3AFT\n" "IN3BAO\n" "IN3BFW\n" "IN3BHR\n" "IN3BIY\n" "IN3BZY\n" "IN3DOV\n" "IN3EAR\n" "IN3FFN\n" "IN3FHE\n" "IN3HUU\n" "IN3IKF\n" "IN3IZT\n" "IN3JJI\n" "IN3JRZ\n" "IN3KCV\n" "IN3KMY\n" "IN3MNS\n" "IN3MOD\n" "IN3MQT\n" "IN3NJB\n" "IN3OWY/2\n" "IN3OWY/I2\n" "IN3PWE\n" "IN3QBR\n" "IN3QCI\n" "IN3REZ\n" "IN3RYE\n" "IN3SUI\n" "IN3TKF/4\n" "IN3TLJ\n" "IN3UFW\n" "IN3VHA\n" "IN3VVK\n" "IN3VXH\n" "IN3WRR\n" "IN3XUG\n" "IN3XWE\n" "IN3YGW\n" "IN3YKS\n" "IN3ZNR\n" "IN3ZWF\n" "IO1A\n" "IO1T\n" "IO2L\n" "IO3B\n" "IO3J\n" "IO3N\n" "IO3O\n" "IO3P\n" "IO3R\n" "IO3T\n" "IO3X\n" "IO4T\n" "IO5A\n" "IO5O\n" "IO6A\n" "IO8V\n" "IO9K\n" "IP9BGS\n" "IQ0AL\n" "IQ0CI\n" "IQ0EF\n" "IQ0OS\n" "IQ0RM\n" "IQ1EE\n" "IQ1NO\n" "IQ1RY\n" "IQ1SM\n" "IQ1TO\n" "IQ2CJ\n" "IQ2CU\n" "IQ2LS\n" "IQ2MG\n" "IQ2VC\n" "IQ2XX\n" "IQ3CG\n" "IQ3FX\n" "IQ3GA\n" "IQ3GO\n" "IQ3ME\n" "IQ3MO\n" "IQ3PN\n" "IQ3RK\n" "IQ3SD\n" "IQ3TN\n" "IQ3UD\n" "IQ3VE\n" "IQ4AX\n" "IQ4RN\n" "IQ5AE\n" "IQ5DY\n" "IQ5FI\n" "IQ5LU\n" "IQ5MS\n" "IQ5PO\n" "IQ5PT\n" "IQ6TC\n" "IQ7AF\n" "IQ7DV\n" "IQ8EB\n" "IQ8FT\n" "IQ8LR\n" "IQ8MD\n" "IQ8PL\n" "IQ8PQ\n" "IQ8PZ\n" "IQ8RB\n" "IQ8RB/1\n" "IQ9BF\n" "IQ9DE\n" "IQ9GD\n" "IQ9NI\n" "IQ9PA\n" "IR1A\n" "IR1C\n" "IR1G\n" "IR1K\n" "IR1M\n" "IR1R\n" "IR1W\n" "IR1Y\n" "IR2A\n" "IR2C\n" "IR2K\n" "IR2M\n" "IR2Y\n" "IR3C\n" "IR3W\n" "IR3X\n" "IR3Y\n" "IR3Z\n" "IR4E\n" "IR4M\n" "IR4T\n" "IR4X\n" "IR5B\n" "IR5T\n" "IR5X\n" "IR6D\n" "IR6T\n" "IR7A\n" "IR7C\n" "IR8A\n" "IR8P\n" "IR8W\n" "IR9P\n" "IR9W\n" "IR9X\n" "IR9Y\n" "IR9Z\n" "IS0/G1VNV\n" "IS0/IK4ZHH\n" "IS0/IK5EKB\n" "IS0/IT9VDQ\n" "IS0/K7QB\n" "IS0/OK1CZ\n" "IS0/OL0A\n" "IS0A\n" "IS0AFM\n" "IS0ANY\n" "IS0B\n" "IS0C\n" "IS0DFC\n" "IS0EBO\n" "IS0GQX\n" "IS0GRB\n" "IS0HQJ\n" "IS0IEK\n" "IS0IGV\n" "IS0LFZ\n" "IS0LYN\n" "IS0NHT\n" "IS0OMH\n" "IS0RDY\n" "IS0RZG\n" "IS0SQJ\n" "IS0SWW\n" "IS0T\n" "IS0XDA\n" "IS0YEK\n" "IS0YTA\n" "IT9ABY\n" "IT9ACN\n" "IT9AJP\n" "IT9AQV\n" "IT9AST\n" "IT9AUG\n" "IT9AUH\n" "IT9AUT\n" "IT9AXQ\n" "IT9BLB\n" "IT9CCQ\n" "IT9CJC\n" "IT9DFI\n" "IT9ECQ\n" "IT9EJP\n" "IT9EJW\n" "IT9ELD\n" "IT9EQO\n" "IT9ESI\n" "IT9ESW\n" "IT9FGA\n" "IT9FXY\n" "IT9GAC\n" "IT9GSF\n" "IT9HBT\n" "IT9HLR\n" "IT9HUV\n" "IT9IAS\n" "IT9ICS\n" "IT9IFI\n" "IT9IMJ\n" "IT9INO\n" "IT9IYZ\n" "IT9IZY\n" "IT9JAV\n" "IT9JDH\n" "IT9JOF\n" "IT9JQY\n" "IT9KCD\n" "IT9LED\n" "IT9LKX\n" "IT9LNH\n" "IT9MNP\n" "IT9MRZ\n" "IT9MUO\n" "IT9MYY\n" "IT9NTD\n" "IT9OJW\n" "IT9PAD\n" "IT9PCU\n" "IT9PKO\n" "IT9PPG\n" "IT9PQJ\n" "IT9QDS\n" "IT9QQO\n" "IT9QQP\n" "IT9RBW\n" "IT9RGY\n" "IT9RIA\n" "IT9RJQ\n" "IT9RKR\n" "IT9RWB\n" "IT9RYJ\n" "IT9RZU\n" "IT9SFT\n" "IT9SGN\n" "IT9SMU\n" "IT9SSI\n" "IT9STX\n" "IT9TFX\n" "IT9UCS\n" "IT9UFP\n" "IT9VDQ\n" "IT9VPT\n" "IT9WTY\n" "IT9XTP\n" "IT9YAO\n" "IT9YHR\n" "IT9YSW\n" "IT9ZAU\n" "IT9ZGY\n" "IT9ZIR\n" "IT9ZMX\n" "IT9ZRU\n" "IT9ZVJ\n" "IT9ZVL\n" "IT9ZZO\n" "IU0R\n" "IU1A\n" "IU1HQ\n" "IU1U\n" "IU2HQ\n" "IU2P\n" "IU2R\n" "IU4HQ\n" "IU5HQ\n" "IU8HQ\n" "IU9A\n" "IU9HQ\n" "IU9T\n" "IV3AOL\n" "IV3APV\n" "IV3ARJ\n" "IV3AVQ\n" "IV3AZV\n" "IV3BEI\n" "IV3BKH\n" "IV3BYT\n" "IV3CGJ\n" "IV3CTW\n" "IV3DSH\n" "IV3DXW\n" "IV3DYS\n" "IV3EAD\n" "IV3EFE\n" "IV3EHH\n" "IV3EPO\n" "IV3FAS\n" "IV3FIV\n" "IV3FSG\n" "IV3GOW\n" "IV3GTH\n" "IV3HYD\n" "IV3IDP\n" "IV3IFN\n" "IV3IFY\n" "IV3IQY\n" "IV3IUM\n" "IV3IXN\n" "IV3IYH\n" "IV3IZU\n" "IV3JCC\n" "IV3JVJ\n" "IV3JWY\n" "IV3KAS\n" "IV3KFB\n" "IV3KSE\n" "IV3KVC\n" "IV3KYQ\n" "IV3MGN\n" "IV3MRK\n" "IV3NBA\n" "IV3NVB\n" "IV3NVN\n" "IV3NVN/P\n" "IV3ODE\n" "IV3ONZ\n" "IV3PGQ\n" "IV3PRK\n" "IV3RAV\n" "IV3RAZ\n" "IV3RJT\n" "IV3RLB\n" "IV3RVN\n" "IV3SKB\n" "IV3TIQ\n" "IV3TMV\n" "IV3TQE\n" "IV3TRK\n" "IV3TUO\n" "IV3UHL\n" "IV3UT\n" "IV3VBM\n" "IV3VCS\n" "IV3VER\n" "IV3VSN\n" "IV3WJP\n" "IV3WMS\n" "IV3XAZ\n" "IV3XHM\n" "IV3XPP\n" "IV3XUX\n" "IV3XWD\n" "IV3XZG\n" "IV3YER\n" "IV3YIB\n" "IV3YIM\n" "IV3YND\n" "IV3YYK\n" "IV3ZIZ\n" "IV3ZUY\n" "IV3ZXF\n" "IV3ZXQ\n" "IW0AFS\n" "IW0AGX\n" "IW0BCF\n" "IW0BLW\n" "IW0BMC\n" "IW0BNW\n" "IW0BSQ\n" "IW0BYL\n" "IW0BZD\n" "IW0CGT\n" "IW0CJE\n" "IW0DGJ\n" "IW0DUA\n" "IW0EAC\n" "IW0EFA\n" "IW0GBU\n" "IW0GTA\n" "IW0GVG\n" "IW0GXY\n" "IW0GYC\n" "IW0HBY\n" "IW0HEX\n" "IW0HLE\n" "IW0HLZ\n" "IW0HOU\n" "IW0HQE\n" "IW0QO\n" "IW0RVQ\n" "IW0SAF\n" "IW0UII\n" "IW0UWE\n" "IW1ARB\n" "IW1AYD\n" "IW1CKJ\n" "IW1CPZ\n" "IW1CQ\n" "IW1DFU\n" "IW1DMC\n" "IW1ECY\n" "IW1FGY\n" "IW1FGZ\n" "IW1FNW\n" "IW1FPK\n" "IW1FZR\n" "IW1GAL\n" "IW1GB\n" "IW1GJJ\n" "IW1GPT\n" "IW1PDP\n" "IW1PNJ\n" "IW1PPM\n" "IW1PUR\n" "IW1QLH\n" "IW1QN\n" "IW1RAX\n" "IW1RGS\n" "IW1RHR\n" "IW1RIU\n" "IW1RMD\n" "IW2BAC\n" "IW2BAI\n" "IW2BNA\n" "IW2BZY\n" "IW2CAM\n" "IW2CLM\n" "IW2ETR\n" "IW2FIV\n" "IW2FND\n" "IW2FTN\n" "IW2FUT\n" "IW2GRA\n" "IW2HAJ\n" "IW2HUS\n" "IW2JRV\n" "IW2KIR\n" "IW2LHE\n" "IW2LLH\n" "IW2MJQ\n" "IW2MNT\n" "IW2MWZ\n" "IW2MXY\n" "IW2MYH\n" "IW2MYV\n" "IW2MZX\n" "IW2NBW\n" "IW2NEF\n" "IW2NRI\n" "IW2NRT\n" "IW2NUI\n" "IW2NWV\n" "IW3AAD\n" "IW3AJN\n" "IW3AJN/P\n" "IW3BTR\n" "IW3EKH\n" "IW3EOL\n" "IW3FZQ\n" "IW3GGU\n" "IW3GRG\n" "IW3GXW\n" "IW3HXR\n" "IW3IA\n" "IW3ICN\n" "IW3IFJ\n" "IW3IIP\n" "IW3ILM\n" "IW3IMM\n" "IW3QAF\n" "IW3RUA\n" "IW3SKX\n" "IW3SMU\n" "IW3SNW\n" "IW3SOM\n" "IW3SQY\n" "IW3SRC\n" "IW3SRG\n" "IW3SSA\n" "IW4BLZ\n" "IW4BTN\n" "IW4DQY\n" "IW4ECX\n" "IW4EGX\n" "IW4ENR\n" "IW4EQI\n" "IW5AB\n" "IW5ADB\n" "IW5ALG\n" "IW5BEN\n" "IW5BHU\n" "IW5CBK\n" "IW5CI\n" "IW5CWA\n" "IW5DLY\n" "IW5DPF\n" "IW5ECP\n" "IW5EDI\n" "IW5EFX\n" "IW5EHY\n" "IW5EID\n" "IW5EIJ\n" "IW5ELA\n" "IW5ELL\n" "IW6AFT\n" "IW6APY\n" "IW6ASD\n" "IW6ATQ\n" "IW6CJM\n" "IW6DGJ\n" "IW6DRH\n" "IW6NZY\n" "IW6PWC\n" "IW7BIM\n" "IW7EBE\n" "IW7ECJ\n" "IW7EDB\n" "IW7EEV\n" "IW7EFC\n" "IW7EFJ\n" "IW8AWR\n" "IW8BAK\n" "IW8DCS\n" "IW8DON\n" "IW8EHK\n" "IW8ELR\n" "IW8EPH\n" "IW8FEA\n" "IW8PQ\n" "IW8QIE\n" "IW8RQA\n" "IW8RRF\n" "IW9ANR\n" "IW9BCW\n" "IW9CTR\n" "IW9DNI\n" "IW9FDD\n" "IW9FI\n" "IW9FRA\n" "IW9FRB\n" "IW9GUR\n" "IW9GYL\n" "IW9HEB\n" "IW9HHB\n" "IW9HII\n" "IW9HIK\n" "IX1ALR\n" "IX1BFL\n" "IX1CVF\n" "IY0GM\n" "IY1GM\n" "IY1GMN\n" "IY1NGM\n" "IY2M\n" "IY3GM\n" "IY3XX\n" "IY4FGM\n" "IY8GM\n" "IZ0ADG\n" "IZ0AEZ\n" "IZ0ARL\n" "IZ0BEE\n" "IZ0BNR\n" "IZ0BNV\n" "IZ0BVU\n" "IZ0CEZ\n" "IZ0CGV\n" "IZ0CIV\n" "IZ0CLS\n" "IZ0COI\n" "IZ0DIB\n" "IZ0DKZ\n" "IZ0DXD\n" "IZ0DXI\n" "IZ0EHL\n" "IZ0ESL\n" "IZ0EVK\n" "IZ0EYP\n" "IZ0EYP/8\n" "IZ0FBJ\n" "IZ0FKE\n" "IZ0FUW\n" "IZ0FVD\n" "IZ0FVH\n" "IZ0FVL\n" "IZ0FWD\n" "IZ0FWE\n" "IZ0FZM\n" "IZ0GIY\n" "IZ0GKB\n" "IZ0GMS\n" "IZ0GRR\n" "IZ0GUS\n" "IZ0GVR\n" "IZ0GXM\n" "IZ0GYP\n" "IZ0HAP\n" "IZ0HPX\n" "IZ0HQS\n" "IZ0IIY\n" "IZ0INX\n" "IZ0IWU\n" "IZ0KBA\n" "IZ0KBR\n" "IZ0KBW\n" "IZ0MII\n" "IZ0MJE\n" "IZ0MJG\n" "IZ0MQN\n" "IZ0MTF\n" "IZ0MTV\n" "IZ0NRG\n" "IZ0OTB\n" "IZ0OVZ\n" "IZ0OWC\n" "IZ0PAD\n" "IZ0PED\n" "IZ0PMV\n" "IZ0PSA\n" "IZ0PSC\n" "IZ0PTY\n" "IZ0PXT\n" "IZ0RCP\n" "IZ0RMV\n" "IZ0RPZ\n" "IZ0RTP\n" "IZ1ANK\n" "IZ1ANU\n" "IZ1ANZ\n" "IZ1AOC\n" "IZ1AOD\n" "IZ1AZA\n" "IZ1BCS\n" "IZ1BII\n" "IZ1BTS\n" "IZ1BZS\n" "IZ1BZV\n" "IZ1CCE\n" "IZ1CCF\n" "IZ1CLA\n" "IZ1CQZ\n" "IZ1DBY\n" "IZ1DFG\n" "IZ1DGG\n" "IZ1DLY\n" "IZ1DMI\n" "IZ1DNJ\n" "IZ1DNQ\n" "IZ1DUG\n" "IZ1DUI\n" "IZ1DXS\n" "IZ1ERW\n" "IZ1FBC\n" "IZ1FHF\n" "IZ1FUM\n" "IZ1FYQ\n" "IZ1GAR\n" "IZ1GCM\n" "IZ1GCQ\n" "IZ1GCV\n" "IZ1GIP\n" "IZ1GJK\n" "IZ1GLO\n" "IZ1GLT\n" "IZ1GLX\n" "IZ1GQJ\n" "IZ1GWW\n" "IZ1GZF\n" "IZ1HBC\n" "IZ1HIV\n" "IZ1JKH\n" "IZ1JKY\n" "IZ1JLF\n" "IZ1JLG\n" "IZ1JLN\n" "IZ1JLP\n" "IZ1JMN\n" "IZ1JTH\n" "IZ1KGY\n" "IZ1KIM\n" "IZ1LBB\n" "IZ1LBG\n" "IZ1LGV\n" "IZ1MDJ\n" "IZ1MHL\n" "IZ1MHQ\n" "IZ1MHX\n" "IZ1MHY\n" "IZ1MKB\n" "IZ1MKP\n" "IZ1MKQ\n" "IZ1MKZ\n" "IZ1MLQ\n" "IZ1MRO\n" "IZ1NBX\n" "IZ1OMY\n" "IZ1OQB\n" "IZ1OSP\n" "IZ1PHT\n" "IZ1PKV\n" "IZ1POA\n" "IZ2ABI\n" "IZ2ABN\n" "IZ2ACD\n" "IZ2ACM\n" "IZ2AJE\n" "IZ2AMW\n" "IZ2AVK\n" "IZ2BKA\n" "IZ2BQF\n" "IZ2BVL\n" "IZ2BZP\n" "IZ2CEE\n" "IZ2CHN\n" "IZ2CPO\n" "IZ2CSX\n" "IZ2DII\n" "IZ2DMV\n" "IZ2DPX\n" "IZ2DVI\n" "IZ2EAS\n" "IZ2EER\n" "IZ2EEV\n" "IZ2EID\n" "IZ2EVH\n" "IZ2EWM\n" "IZ2EWR\n" "IZ2FDY\n" "IZ2FFK\n" "IZ2FLX\n" "IZ2FME\n" "IZ2FOB\n" "IZ2FOS\n" "IZ2GIU\n" "IZ2GMT\n" "IZ2GNQ\n" "IZ2GOT\n" "IZ2GRG\n" "IZ2GTO\n" "IZ2IHO\n" "IZ2IPF\n" "IZ2JCD\n" "IZ2JNN\n" "IZ2JPN\n" "IZ2JQP\n" "IZ2KPE\n" "IZ2KPI\n" "IZ2KRZ\n" "IZ2KTE\n" "IZ2KTF\n" "IZ2KXC\n" "IZ2LQD\n" "IZ2LSC\n" "IZ2NBD\n" "IZ2NYY\n" "IZ2NZQ\n" "IZ2NZZ\n" "IZ2OBS\n" "IZ2OBY\n" "IZ2ODM\n" "IZ2OHL\n" "IZ2OIF\n" "IZ2PCJ\n" "IZ2QBH\n" "IZ2QDC\n" "IZ2QKG\n" "IZ2RPJ\n" "IZ3ALF\n" "IZ3ASB\n" "IZ3AWU\n" "IZ3BGL\n" "IZ3BJA\n" "IZ3BUG\n" "IZ3CAN\n" "IZ3CAR\n" "IZ3CKG\n" "IZ3DBA\n" "IZ3DVU\n" "IZ3EAV\n" "IZ3EAX\n" "IZ3EAY\n" "IZ3EBA\n" "IZ3ENH\n" "IZ3EOU\n" "IZ3ERM\n" "IZ3ESV\n" "IZ3ETC\n" "IZ3ETU\n" "IZ3FJZ\n" "IZ3GFZ\n" "IZ3GHP\n" "IZ3GNG\n" "IZ3GOG\n" "IZ3GOM\n" "IZ3GOO\n" "IZ3GYS\n" "IZ3HKN\n" "IZ3IBL\n" "IZ3KIF\n" "IZ3KKE\n" "IZ3KMY\n" "IZ3KNK\n" "IZ3KSO\n" "IZ3KSP\n" "IZ3KUY\n" "IZ3KVD\n" "IZ3LCF\n" "IZ3LES\n" "IZ3LHX\n" "IZ3LJG\n" "IZ3LQN\n" "IZ3LSZ\n" "IZ3LUF\n" "IZ3MSK\n" "IZ3NPZ\n" "IZ3NVR\n" "IZ3NXC\n" "IZ3NYG\n" "IZ3NYS\n" "IZ3ODB\n" "IZ3PYL\n" "IZ3PZL/3\n" "IZ3PZM\n" "IZ3QHA\n" "IZ3QHB\n" "IZ4AFW\n" "IZ4AIF\n" "IZ4AII\n" "IZ4AMS\n" "IZ4BBF\n" "IZ4BQV\n" "IZ4COW\n" "IZ4CZE\n" "IZ4CZL\n" "IZ4DIG\n" "IZ4DIW\n" "IZ4DJD\n" "IZ4DLR\n" "IZ4DPV\n" "IZ4DUX\n" "IZ4DYX\n" "IZ4DZD\n" "IZ4EFN\n" "IZ4EFP\n" "IZ4FUA\n" "IZ4GAH\n" "IZ4GOL\n" "IZ4GSE\n" "IZ4GWE\n" "IZ4HVM\n" "IZ4HVM/3\n" "IZ4HZA\n" "IZ4IFR\n" "IZ4IRO\n" "IZ4ISC\n" "IZ4IST\n" "IZ4JMA\n" "IZ4MJP\n" "IZ4NIC\n" "IZ4NSV\n" "IZ4ORN\n" "IZ4ORO\n" "IZ4OSG\n" "IZ4OSH\n" "IZ4OUA\n" "IZ4OUL\n" "IZ5ASZ\n" "IZ5AXA\n" "IZ5BLP\n" "IZ5BRP\n" "IZ5BRW\n" "IZ5BSA\n" "IZ5CMG\n" "IZ5CMI\n" "IZ5CML\n" "IZ5DIY\n" "IZ5DKG\n" "IZ5DKJ\n" "IZ5DKO\n" "IZ5DKR\n" "IZ5DMB\n" "IZ5EBL\n" "IZ5EKV\n" "IZ5EKX\n" "IZ5EME\n" "IZ5FSA\n" "IZ5FSO\n" "IZ5GRS\n" "IZ5HPQ\n" "IZ5HQB\n" "IZ5HSK\n" "IZ5ICH\n" "IZ5IIN\n" "IZ5IJY\n" "IZ5ILC\n" "IZ5ILD\n" "IZ5ILF\n" "IZ5ILJ\n" "IZ5ILK\n" "IZ5ILU\n" "IZ5IMD\n" "IZ5IOM\n" "IZ5IOM/5\n" "IZ5IOS\n" "IZ5IOW\n" "IZ5IPA\n" "IZ5JHJ\n" "IZ5JMZ\n" "IZ5JNO\n" "IZ5LDD\n" "IZ5MAO\n" "IZ5MJZ\n" "IZ5MKA\n" "IZ5MMB\n" "IZ5MMK\n" "IZ5MMN\n" "IZ5MMR\n" "IZ5MOQ\n" "IZ5MXA\n" "IZ5NFC\n" "IZ5NRF\n" "IZ5OOP\n" "IZ5OPV\n" "IZ5OPX\n" "IZ5OQA\n" "IZ5OQX\n" "IZ5PQT\n" "IZ5RKC\n" "IZ6AAW\n" "IZ6BTN\n" "IZ6BXV\n" "IZ6CLN\n" "IZ6CLZ\n" "IZ6EIY\n" "IZ6ERS\n" "IZ6FHZ\n" "IZ6FXP\n" "IZ6GIG\n" "IZ6GSB\n" "IZ6GSQ\n" "IZ6HRT\n" "IZ6IMN\n" "IZ6INR\n" "IZ6IOC\n" "IZ6KBL\n" "IZ6LOF\n" "IZ6MPY\n" "IZ6MQH\n" "IZ6NCN\n" "IZ7CDE\n" "IZ7CRW\n" "IZ7DOK\n" "IZ7DOO\n" "IZ7ECL\n" "IZ7EDQ\n" "IZ7EQX\n" "IZ7EUB\n" "IZ7EVZ\n" "IZ7FLT\n" "IZ7FMM\n" "IZ7GAT\n" "IZ7GLL\n" "IZ7GWZ\n" "IZ7HNO\n" "IZ7IJW\n" "IZ7JVR\n" "IZ7KHR\n" "IZ7LDC\n" "IZ7LDL\n" "IZ7MFY\n" "IZ7MYV\n" "IZ7MZU\n" "IZ7NMD\n" "IZ7OJY\n" "IZ7QLY\n" "IZ8BFV\n" "IZ8BGY\n" "IZ8CCW\n" "IZ8CKT\n" "IZ8CLM\n" "IZ8DBJ\n" "IZ8DDL\n" "IZ8DGR\n" "IZ8DPL\n" "IZ8DSX\n" "IZ8DVD\n" "IZ8DWL\n" "IZ8EDL\n" "IZ8EEL\n" "IZ8EFD\n" "IZ8EKL\n" "IZ8EMB\n" "IZ8EMK\n" "IZ8EPX\n" "IZ8ESX\n" "IZ8EWD\n" "IZ8FAV\n" "IZ8FBU\n" "IZ8FDG\n" "IZ8FDH\n" "IZ8FFA\n" "IZ8FQO\n" "IZ8FTW\n" "IZ8FWN\n" "IZ8GBH\n" "IZ8GBT\n" "IZ8GCB\n" "IZ8GCE\n" "IZ8GNR\n" "IZ8GNW\n" "IZ8HUJ\n" "IZ8HXG\n" "IZ8IFL\n" "IZ8ITT\n" "IZ8IYN\n" "IZ8IYX\n" "IZ8JAI\n" "IZ8JDF\n" "IZ8JFL\n" "IZ8JPV\n" "IZ8LGP\n" "IZ8LIP\n" "IZ8LKL\n" "IZ8LLH\n" "IZ8LLQ\n" "IZ8LMA\n" "IZ8MBW\n" "IZ8MCG\n" "IZ8MNL\n" "IZ8MNQ\n" "IZ8MXB\n" "IZ8NGH\n" "IZ8NVV\n" "IZ8OFO\n" "IZ8OGR\n" "IZ8PPH\n" "IZ8PPI\n" "IZ8QIG\n" "J28AA\n" "J28JA\n" "J28OO\n" "J37K\n" "J37T\n" "J38A\n" "J38CW\n" "J38RF\n" "J38XJ\n" "J38XX\n" "J39BS\n" "J41E\n" "J42T\n" "J42WT\n" "J43J\n" "J43P\n" "J45KLN\n" "J46J\n" "J48HW\n" "J48RT\n" "J49I\n" "J49XB\n" "J5UAP\n" "J68JA\n" "J68V\n" "J69DS\n" "J69MV\n" "J79WE\n" "J79ZG\n" "J7N\n" "J7Y\n" "J88DR\n" "JA0AOQ\n" "JA0ARF\n" "JA0ASO\n" "JA0AVS\n" "JA0AXV\n" "JA0BEE\n" "JA0BES\n" "JA0BJY\n" "JA0BKX\n" "JA0BOV\n" "JA0CIY\n" "JA0CRI\n" "JA0CVC\n" "JA0DAI\n" "JA0DBQ\n" "JA0DBS\n" "JA0DNE\n" "JA0DOW\n" "JA0DSH\n" "JA0ED\n" "JA0EME\n" "JA0EQO\n" "JA0EVI\n" "JA0FMB\n" "JA0FMU\n" "JA0FNU\n" "JA0FSB\n" "JA0FSN\n" "JA0FVU\n" "JA0GCI\n" "JA0GEY\n" "JA0GJJ\n" "JA0GSG\n" "JA0GZZ\n" "JA0HWF\n" "JA0IND/1\n" "JA0IOF\n" "JA0JHA\n" "JA0KAZ\n" "JA0KJD\n" "JA0LCP\n" "JA0LHU\n" "JA0LXP\n" "JA0MVW\n" "JA0NFP\n" "JA0NPQ\n" "JA0PE\n" "JA0PTK\n" "JA0QNJ\n" "JA0RCK\n" "JA0RUG\n" "JA0SDW\n" "JA0UFZ\n" "JA0UJL\n" "JA0UMV\n" "JA0UPW\n" "JA0UR\n" "JA0URR\n" "JA0VHI\n" "JA1AA\n" "JA1AAA\n" "JA1AAT\n" "JA1ACF\n" "JA1ADN\n" "JA1ADT\n" "JA1ADU\n" "JA1AEC\n" "JA1AFF\n" "JA1AFI\n" "JA1AJK\n" "JA1AKL\n" "JA1AKR\n" "JA1ALT\n" "JA1ALU\n" "JA1AML\n" "JA1ANF\n" "JA1ANG\n" "JA1ANR\n" "JA1ANT\n" "JA1AOH\n" "JA1APX\n" "JA1ARO\n" "JA1ATB\n" "JA1ATZ\n" "JA1AUD\n" "JA1AYO\n" "JA1AZR\n" "JA1AZW\n" "JA1BAN\n" "JA1BAQ\n" "JA1BAS\n" "JA1BFN\n" "JA1BHK\n" "JA1BJI\n" "JA1BK\n" "JA1BMA\n" "JA1BNL\n" "JA1BNW\n" "JA1BON\n" "JA1BOQ\n" "JA1BPA\n" "JA1BPN\n" "JA1BTR\n" "JA1BUQ\n" "JA1BWA\n" "JA1BWD\n" "JA1BWT\n" "JA1CAQ\n" "JA1CC\n" "JA1CCA\n" "JA1CCO\n" "JA1CG\n" "JA1CIA\n" "JA1CJI\n" "JA1CJP\n" "JA1CKA\n" "JA1CKE\n" "JA1CLW\n" "JA1CLZ\n" "JA1CON\n" "JA1COP\n" "JA1CP\n" "JA1CPA\n" "JA1CPN\n" "JA1CPZ\n" "JA1CQK\n" "JA1CQT\n" "JA1CTB\n" "JA1CTZ\n" "JA1CXC\n" "JA1DBG\n" "JA1DCK\n" "JA1DDZ\n" "JA1DEQ\n" "JA1DEU\n" "JA1DIO\n" "JA1DKT\n" "JA1DMX\n" "JA1DOF\n" "JA1DOT\n" "JA1DSI\n" "JA1DUA\n" "JA1DUH\n" "JA1DUP\n" "JA1DVN\n" "JA1DXE\n" "JA1DXF\n" "JA1EFY\n" "JA1EHV\n" "JA1EJY\n" "JA1ELY\n" "JA1EM\n" "JA1EMQ\n" "JA1EOD\n" "JA1EOG\n" "JA1ERB\n" "JA1ESH\n" "JA1ETN\n" "JA1EWE\n" "JA1FFO\n" "JA1FGB\n" "JA1FIO/1\n" "JA1FKY\n" "JA1FNA\n" "JA1FNO\n" "JA1FO\n" "JA1FRQ\n" "JA1FTW\n" "JA1FUI\n" "JA1FVJ\n" "JA1FVK\n" "JA1FVS\n" "JA1FWJ\n" "JA1FWY\n" "JA1GBC\n" "JA1GC\n" "JA1GCA\n" "JA1GDF\n" "JA1GFD\n" "JA1GHH\n" "JA1GHR\n" "JA1GHV\n" "JA1GLE\n" "JA1GRM\n" "JA1GSG\n" "JA1GTR\n" "JA1GVT\n" "JA1GYO\n" "JA1HFY\n" "JA1HG\n" "JA1HGX\n" "JA1HGY\n" "JA1HHL\n" "JA1HLF\n" "JA1HLR\n" "JA1HMK\n" "JA1HNW\n" "JA1HO\n" "JA1HP\n" "JA1HRQ\n" "JA1HTD\n" "JA1HTK\n" "JA1HXJ\n" "JA1HYF\n" "JA1IAW\n" "JA1IDY\n" "JA1IE\n" "JA1IFB\n" "JA1IFD\n" "JA1IFP\n" "JA1IKA\n" "JA1IOA\n" "JA1IRH\n" "JA1ISA\n" "JA1IST\n" "JA1ITX\n" "JA1IUG\n" "JA1IVV\n" "JA1IVY\n" "JA1IWP\n" "JA1IXY\n" "JA1IZ\n" "JA1IZB\n" "JA1IZZ\n" "JA1JCF/1\n" "JA1JDP\n" "JA1JKG\n" "JA1JLP\n" "JA1JNM\n" "JA1JQM\n" "JA1JQY\n" "JA1JXD\n" "JA1JXT\n" "JA1JXU\n" "JA1JYS\n" "JA1KEB\n" "JA1KEV\n" "JA1KGV\n" "JA1KI\n" "JA1KIH\n" "JA1KJW\n" "JA1KK\n" "JA1KLK\n" "JA1KLW\n" "JA1KPF\n" "JA1KPH\n" "JA1KTB\n" "JA1KVT\n" "JA1KW\n" "JA1KWB\n" "JA1KXT\n" "JA1KZK\n" "JA1KZP\n" "JA1LBN\n" "JA1LBZ\n" "JA1LHH\n" "JA1LLN/8\n" "JA1LLY\n" "JA1LNZ\n" "JA1LPH\n" "JA1LPQ\n" "JA1LQL\n" "JA1LQV\n" "JA1LSP\n" "JA1LZB\n" "JA1LZR\n" "JA1MBJ\n" "JA1MCU\n" "JA1MJC\n" "JA1MJN\n" "JA1MLV\n" "JA1MOD\n" "JA1MOW\n" "JA1MRM\n" "JA1MSS\n" "JA1MUZ\n" "JA1MVK\n" "JA1MVR\n" "JA1MZL\n" "JA1MZM\n" "JA1NAA\n" "JA1NGD\n" "JA1NGW\n" "JA1NIJ\n" "JA1NIR\n" "JA1NLC\n" "JA1NLX\n" "JA1NPD\n" "JA1NRF\n" "JA1NRQ\n" "JA1NUT\n" "JA1NUX\n" "JA1NVF\n" "JA1NWD\n" "JA1NXG\n" "JA1NXV\n" "JA1NZJ\n" "JA1NZK\n" "JA1OAF\n" "JA1OBJ\n" "JA1OCA\n" "JA1OCZ\n" "JA1ODE\n" "JA1ODP\n" "JA1OHD\n" "JA1OHP\n" "JA1OJJ\n" "JA1OND\n" "JA1OQ\n" "JA1OQQ\n" "JA1ORM\n" "JA1OSN/7\n" "JA1OVD\n" "JA1OWP\n" "JA1OYD\n" "JA1OYY\n" "JA1OZK\n" "JA1PAH\n" "JA1PIN\n" "JA1PJS\n" "JA1PMN\n" "JA1PNA\n" "JA1POS\n" "JA1PRV\n" "JA1PS\n" "JA1PTJ\n" "JA1PTO\n" "JA1PVX\n" "JA1QCQ\n" "JA1QEU\n" "JA1QGT\n" "JA1QIW\n" "JA1QJE\n" "JA1QN\n" "JA1QNO\n" "JA1QOP\n" "JA1QS\n" "JA1QWT\n" "JA1QXC\n" "JA1QXY\n" "JA1RAC\n" "JA1RPK\n" "JA1RQT\n" "JA1RRA\n" "JA1RRR\n" "JA1RTX\n" "JA1RYC\n" "JA1SEV\n" "JA1SGU\n" "JA1SGX\n" "JA1SHC\n" "JA1SHE\n" "JA1SIM\n" "JA1SIN\n" "JA1SJT\n" "JA1SJV\n" "JA1SKE\n" "JA1SST\n" "JA1STY\n" "JA1SVP\n" "JA1SYY\n" "JA1SZN\n" "JA1TBX\n" "JA1TFJ\n" "JA1TGO\n" "JA1TLE\n" "JA1TMG\n" "JA1TQE\n" "JA1TQP\n" "JA1TRC\n" "JA1TRL\n" "JA1UAT\n" "JA1UCC\n" "JA1UII\n" "JA1UOC\n" "JA1UPO\n" "JA1UPT\n" "JA1UQA\n" "JA1USO\n" "JA1UTN\n" "JA1UTQ\n" "JA1UTZ\n" "JA1UVO\n" "JA1UZG\n" "JA1UZQ\n" "JA1VCW\n" "JA1VDI\n" "JA1VGV\n" "JA1VJQ\n" "JA1VLK\n" "JA1VND\n" "JA1VNS\n" "JA1VPE\n" "JA1VRU\n" "JA1VRY\n" "JA1VUI\n" "JA1WDF\n" "JA1WHG\n" "JA1WLO\n" "JA1WPX\n" "JA1WQD\n" "JA1WQX\n" "JA1WRI\n" "JA1WSK\n" "JA1WSX\n" "JA1WTI\n" "JA1WUM\n" "JA1WWB\n" "JA1WWE\n" "JA1WWO\n" "JA1WZG\n" "JA1XGI\n" "JA1XIA\n" "JA1XJA\n" "JA1XMS\n" "JA1XMT\n" "JA1XPH\n" "JA1XPU\n" "JA1XRA\n" "JA1XRH\n" "JA1XTN\n" "JA1XTQ\n" "JA1XUY\n" "JA1XXI\n" "JA1XZF\n" "JA1YAI\n" "JA1YPA\n" "JA1YSW\n" "JA1YUC\n" "JA1ZGO\n" "JA1ZGP\n" "JA2ACI\n" "JA2ADH\n" "JA2AEV\n" "JA2AH\n" "JA2AHH\n" "JA2AIB\n" "JA2ANR\n" "JA2AO\n" "JA2ATE\n" "JA2AXB\n" "JA2AYH\n" "JA2BAY\n" "JA2BCE\n" "JA2BDR\n" "JA2BGN\n" "JA2BHQ\n" "JA2BIV\n" "JA2BJW\n" "JA2BL\n" "JA2BMW\n" "JA2BNN\n" "JA2BQX\n" "JA2BVL\n" "JA2BXP\n" "JA2BY\n" "JA2CBZ\n" "JA2CJN\n" "JA2CPD\n" "JA2CUS\n" "JA2CXF\n" "JA2CXH\n" "JA2CYL\n" "JA2DCN\n" "JA2DDA\n" "JA2DGQ\n" "JA2DGQ/3\n" "JA2DHF\n" "JA2DLM\n" "JA2DNA\n" "JA2DO\n" "JA2DPQ\n" "JA2DSY\n" "JA2DXD\n" "JA2DZQ\n" "JA2EDG\n" "JA2ELH\n" "JA2EPW\n" "JA2FBC\n" "JA2FEA\n" "JA2FGE\n" "JA2FJP\n" "JA2FSM\n" "JA2FTR/3\n" "JA2FUA\n" "JA2FUJ\n" "JA2FVA\n" "JA2FWS\n" "JA2GAL\n" "JA2GDF\n" "JA2GDH\n" "JA2GHP\n" "JA2GTW\n" "JA2GWL\n" "JA2HCE\n" "JA2HDG\n" "JA2HGF\n" "JA2HMF\n" "JA2HO\n" "JA2HOL\n" "JA2HXV\n" "JA2IDJ\n" "JA2ITK\n" "JA2IU\n" "JA2IVK\n" "JA2IXS\n" "JA2JDY\n" "JA2JOJ\n" "JA2JTN\n" "JA2JW\n" "JA2KCY\n" "JA2KGH\n" "JA2KIY\n" "JA2KKA\n" "JA2KLE\n" "JA2KOG\n" "JA2KPV\n" "JA2KPW\n" "JA2KSI\n" "JA2KTK\n" "JA2KVB\n" "JA2KVD\n" "JA2LCP\n" "JA2LHG\n" "JA2LPY\n" "JA2LWO\n" "JA2MEI/2\n" "JA2MNB\n" "JA2MOG\n" "JA2MWV\n" "JA2MYA\n" "JA2NOV\n" "JA2NVM\n" "JA2ODB\n" "JA2OGB\n" "JA2OZI\n" "JA2OZJ\n" "JA2PAC\n" "JA2PFO\n" "JA2PJC\n" "JA2PJX\n" "JA2PSV\n" "JA2PVE\n" ; const char txt_master2[65528] = "JA2QOF\n" "JA2QQC\n" "JA2QVP\n" "JA2QXY\n" "JA2RGH\n" "JA2RJE\n" "JA2RPZ\n" "JA2SGH\n" "JA2TBS\n" "JA2TFU\n" "JA2TTH\n" "JA2UHR\n" "JA2UJ\n" "JA2UZE\n" "JA2VHG\n" "JA2VHO\n" "JA2VKU\n" "JA2VPO\n" "JA2VSU\n" "JA2VUP\n" "JA2VZL\n" "JA2WP\n" "JA2XCR\n" "JA2XQO\n" "JA2XYO\n" "JA2ZJW\n" "JA2ZS\n" "JA3AA\n" "JA3AAD\n" "JA3AK\n" "JA3ALY\n" "JA3AMI\n" "JA3AOP\n" "JA3APU\n" "JA3APV\n" "JA3AQM\n" "JA3AVO\n" "JA3AYL\n" "JA3AYX\n" "JA3AZD\n" "JA3BAZ\n" "JA3BBG\n" "JA3BCC\n" "JA3BCT\n" "JA3BDP\n" "JA3BHO\n" "JA3BIN\n" "JA3BJZ\n" "JA3BKP\n" "JA3BLN\n" "JA3BRI\n" "JA3BUM\n" "JA3BVJ\n" "JA3BXZ\n" "JA3CCX\n" "JA3CG\n" "JA3CSZ\n" "JA3CZV\n" "JA3CZY\n" "JA3DAY\n" "JA3DLE/1\n" "JA3DPX\n" "JA3DSY\n" "JA3DX\n" "JA3DXD\n" "JA3DXR/1\n" "JA3EA\n" "JA3EEM\n" "JA3EGE\n" "JA3EGZ\n" "JA3EMU\n" "JA3EOE\n" "JA3ETD\n" "JA3EUB\n" "JA3EUF\n" "JA3EY\n" "JA3EZJ\n" "JA3FGJ\n" "JA3FSV\n" "JA3FYC\n" "JA3GMJ\n" "JA3GN\n" "JA3GSM\n" "JA3GW\n" "JA3HBC\n" "JA3HBF\n" "JA3HBP\n" "JA3HDM\n" "JA3HIL\n" "JA3HRV\n" "JA3HU\n" "JA3HZT\n" "JA3IDQ\n" "JA3IGZ\n" "JA3IKG\n" "JA3JFT\n" "JA3JM\n" "JA3JND\n" "JA3JOT\n" "JA3KDJ\n" "JA3KGC\n" "JA3KKE\n" "JA3KLI\n" "JA3KNB\n" "JA3KRK\n" "JA3KZD\n" "JA3LCR\n" "JA3LEB\n" "JA3LEZ\n" "JA3LKE\n" "JA3LKU\n" "JA3LXH\n" "JA3LZC\n" "JA3MFE\n" "JA3MIB\n" "JA3MQY\n" "JA3MZB\n" "JA3NFA\n" "JA3NHL\n" "JA3NHW\n" "JA3NTE\n" "JA3OEA\n" "JA3OHY\n" "JA3OOK\n" "JA3OSA\n" "JA3PCQ\n" "JA3PJL\n" "JA3PNN\n" "JA3PST\n" "JA3PYC\n" "JA3PYH\n" "JA3QOS\n" "JA3RAR\n" "JA3RAZ\n" "JA3RK\n" "JA3RN\n" "JA3RQ\n" "JA3RWJ\n" "JA3TMM\n" "JA3TPK\n" "JA3TVM\n" "JA3UMQ\n" "JA3USA\n" "JA3UWB\n" "JA3VPA\n" "JA3VUI\n" "JA3VXH\n" "JA3WKK\n" "JA3WLN\n" "JA3WNB\n" "JA3WPN\n" "JA3WU\n" "JA3XOG\n" "JA3YAA\n" "JA3YBK\n" "JA3YKC\n" "JA3YPD\n" "JA3YPL\n" "JA4AFT\n" "JA4AJB\n" "JA4AQR\n" "JA4AVO\n" "JA4AXM\n" "JA4AYU\n" "JA4BDY\n" "JA4BPW\n" "JA4BSZ\n" "JA4BVH\n" "JA4BXU\n" "JA4CBX\n" "JA4CMW\n" "JA4COF\n" "JA4CQS\n" "JA4CUU\n" "JA4CZM\n" "JA4DC\n" "JA4DHN\n" "JA4DMB\n" "JA4DND\n" "JA4DQX\n" "JA4DWR\n" "JA4DZ\n" "JA4EBU\n" "JA4EE\n" "JA4ENN/1\n" "JA4ENP\n" "JA4EZA\n" "JA4EZP\n" "JA4FHE\n" "JA4FIQ\n" "JA4FJL\n" "JA4FKX\n" "JA4FM\n" "JA4FWI\n" "JA4GCF\n" "JA4GGR\n" "JA4GXS\n" "JA4GXX\n" "JA4HXZ\n" "JA4IQK\n" "JA4IU\n" "JA4JBZ\n" "JA4JIF\n" "JA4JY/3\n" "JA4KRR\n" "JA4LAZ\n" "JA4LKB\n" "JA4LXY\n" "JA4MOK\n" "JA4MRL\n" "JA4NQD\n" "JA4PXE\n" "JA4RMX\n" "JA4RWN\n" "JA4TY\n" "JA4UDN\n" "JA4XHF/3\n" "JA4XRN\n" "JA4XW\n" "JA4XY\n" "JA4YHX\n" "JA5ADR\n" "JA5AOA\n" "JA5APU\n" "JA5AQC\n" "JA5ATN\n" "JA5AUC\n" "JA5BEI\n" "JA5BEN\n" "JA5BGA\n" "JA5BIN\n" "JA5BQT\n" "JA5BVO\n" "JA5BZL\n" "JA5CBO\n" "JA5CEX\n" "JA5CJZ\n" "JA5CPJ\n" "JA5CTW\n" "JA5CUX\n" "JA5DBE\n" "JA5DFX\n" "JA5DQH\n" "JA5DVK\n" "JA5ERZ\n" "JA5EWH\n" "JA5EXW\n" "JA5EYW\n" "JA5FBZ\n" "JA5FDJ\n" "JA5FNX\n" "JA5FTL\n" "JA5GE\n" "JA5GSG\n" "JA5INF/1\n" "JA5IU\n" "JA5IVG\n" "JA5JGY\n" "JA5JWQ\n" "JA5MXP\n" "JA5ND\n" "JA5NLN\n" "JA5NNS\n" "JA5NPV\n" "JA5NSN\n" "JA5OP\n" "JA5PEU\n" "JA5RB\n" "JA5RVN\n" "JA5SRJ\n" "JA5SUD\n" "JA5TNF\n" "JA5UBW/3\n" "JA5WIO\n" "JA5WNH\n" "JA5XPD\n" "JA5XPN\n" "JA6ACZ\n" "JA6AP\n" "JA6ARM\n" "JA6AUM\n" "JA6AVT\n" "JA6BCV\n" "JA6BDB\n" "JA6BEE\n" "JA6BGA\n" "JA6BJT\n" "JA6BJV\n" "JA6BLX\n" "JA6BWH\n" "JA6BZA\n" "JA6BZI\n" "JA6CBG\n" "JA6CDA\n" "JA6CDC\n" "JA6CFW\n" "JA6CLO\n" "JA6CM\n" "JA6CMI\n" "JA6CNH\n" "JA6CNL\n" "JA6COW\n" "JA6CRP\n" "JA6CUX\n" "JA6CYL/6\n" "JA6DC\n" "JA6DH\n" "JA6DIJ\n" "JA6DSG\n" "JA6ECF/1\n" "JA6EFT\n" "JA6EML\n" "JA6ETS\n" "JA6FBI\n" "JA6FFK\n" "JA6FGC\n" "JA6FMR\n" "JA6FOF\n" "JA6FUV\n" "JA6FXT/1\n" "JA6GCE\n" "JA6GGD\n" "JA6GIJ\n" "JA6GKW\n" "JA6GT\n" "JA6GXP\n" "JA6HJW\n" "JA6HLU\n" "JA6HPI\n" "JA6HQT\n" "JA6IQG\n" "JA6JNF\n" "JA6JPS\n" "JA6JRE\n" "JA6JYM\n" "JA6KTY\n" "JA6LCJ\n" "JA6MYQ\n" "JA6NOC\n" "JA6OXT\n" "JA6PCH\n" "JA6QDU\n" "JA6QZ\n" "JA6RCH\n" "JA6REX\n" "JA6RXO\n" "JA6SHL\n" "JA6SRB\n" "JA6TIT\n" "JA6TMU\n" "JA6TWS\n" "JA6UDI\n" "JA6VDB\n" "JA6VI\n" "JA6VNR\n" "JA6VQA\n" "JA6VU\n" "JA6WFM\n" "JA6WIF\n" "JA6WJL\n" "JA6WW\n" "JA6XBH\n" "JA6XZS/1\n" "JA6YG\n" "JA6ZPR\n" "JA7ACM\n" "JA7ACV\n" "JA7AEM\n" "JA7AGO\n" "JA7AHK\n" "JA7AKH\n" "JA7ARD\n" "JA7ARW\n" "JA7AXN\n" "JA7AXP\n" "JA7BAL\n" "JA7BCE\n" "JA7BJS\n" "JA7BLE\n" "JA7BME\n" "JA7BMR\n" "JA7BMW\n" "JA7BSV\n" "JA7BVH\n" "JA7BWT\n" "JA7BYP\n" "JA7BZU\n" "JA7CDK\n" "JA7CDV\n" "JA7COI\n" "JA7COK\n" "JA7CPW\n" "JA7CXL\n" "JA7DDK\n" "JA7DHJ/1\n" "JA7DLE\n" "JA7DNJ\n" "JA7DOT\n" "JA7DXX\n" "JA7DY\n" "JA7DYJ\n" "JA7EDZ\n" "JA7EMG\n" "JA7EMH\n" "JA7ESQ\n" "JA7EU\n" "JA7EVH\n" "JA7EYK\n" "JA7FAS\n" "JA7FEX\n" "JA7FNQ\n" "JA7FTR\n" "JA7GAP\n" "JA7GBS\n" "JA7GUT\n" "JA7GYP\n" "JA7GZM\n" "JA7HB\n" "JA7HTJ\n" "JA7HUC\n" "JA7HYS\n" "JA7IC\n" "JA7JH\n" "JA7JMX\n" "JA7JWF\n" "JA7KDC\n" "JA7KE\n" "JA7KQC\n" "JA7KY\n" "JA7LDA\n" "JA7LGE\n" "JA7LLL\n" "JA7LMU/1\n" "JA7LMZ\n" "JA7MBT\n" "JA7MGP\n" "JA7MJ\n" "JA7MSQ\n" "JA7ND\n" "JA7NI\n" "JA7NLW\n" "JA7NPV\n" "JA7NUM\n" "JA7NVF\n" "JA7NX\n" "JA7ODY\n" "JA7OEM\n" "JA7OUV\n" "JA7OWD\n" "JA7OXR\n" "JA7OXR/1\n" "JA7OYM\n" "JA7OZW\n" "JA7QFU\n" "JA7QOU\n" "JA7QVI\n" "JA7RHJ\n" "JA7RPC\n" "JA7RQK\n" "JA7SN\n" "JA7SSP\n" "JA7SUR/1\n" "JA7TJ\n" "JA7UES/1\n" "JA7VEI\n" "JA7VSO\n" "JA7WMO\n" "JA7WNA\n" "JA7WQJ\n" "JA7XBG\n" "JA7XRH\n" "JA7XVZ\n" "JA7XZZ\n" "JA7YAA\n" "JA7YCQ\n" "JA7YRR\n" "JA7ZP\n" "JA7ZT/1\n" "JA8AHA\n" "JA8AIN\n" "JA8AJE\n" "JA8APN\n" "JA8AWH\n" "JA8AZN\n" "JA8BAR\n" "JA8BBD\n" "JA8BKI\n" "JA8BNP\n" "JA8BOV\n" "JA8BXD\n" "JA8CDG\n" "JA8CEA\n" "JA8CJY\n" "JA8CMC\n" "JA8CNF\n" "JA8CPF/1\n" "JA8CSY\n" "JA8CTO\n" "JA8DIV\n" "JA8DMB\n" "JA8DNV\n" "JA8ECS\n" "JA8EIA\n" "JA8EIU\n" "JA8EOT\n" "JA8EPO\n" "JA8FHM\n" "JA8GMZ\n" "JA8GWK\n" "JA8IAF\n" "JA8IJI\n" "JA8ISU\n" "JA8IUB\n" "JA8JDQ\n" "JA8JMG\n" "JA8JTH\n" "JA8KMA\n" "JA8KNJ\n" "JA8KSF\n" "JA8KXA\n" "JA8LN\n" "JA8LRG\n" "JA8LSZ\n" "JA8MS\n" "JA8MXC\n" "JA8NF\n" "JA8NFV\n" "JA8NSF/1\n" "JA8RJE\n" "JA8RRF\n" "JA8RUU\n" "JA8RWU\n" "JA8RY\n" "JA8SCD\n" "JA8SCD/1\n" "JA8SM\n" "JA8SPZ\n" "JA8TR\n" "JA8UON\n" "JA8WNR\n" "JA8WY\n" "JA8XOK\n" "JA8YYY\n" "JA8ZO\n" "JA9ABA\n" "JA9AGN\n" "JA9APS\n" "JA9APZ\n" "JA9ARC\n" "JA9BFM\n" "JA9BGL\n" "JA9BJS\n" "JA9BKU\n" "JA9BMG\n" "JA9CAC\n" "JA9CCG\n" "JA9CGW\n" "JA9CHI\n" "JA9CNC\n" "JA9CWJ\n" "JA9CZE\n" "JA9DJH\n" "JA9DNS\n" "JA9DTV/1\n" "JA9EJG\n" "JA9ESZ\n" "JA9FAI\n" "JA9FHB\n" "JA9FO\n" "JA9FPI\n" "JA9FR\n" "JA9GLW\n" "JA9IFF\n" "JA9IL\n" "JA9LJS\n" "JA9LX\n" "JA9MAT\n" "JA9NFO\n" "JA9NUN\n" "JA9PAK\n" "JA9PPC\n" "JA9RO\n" "JA9RPU\n" "JA9RRH\n" "JA9RT\n" "JA9SSY/1\n" "JA9SSY/2\n" "JA9SW\n" "JA9TQY\n" "JA9UR\n" "JA9XRL\n" "JA9ZMQ\n" "JD1BIA\n" "JD1BLY\n" "JD1BMM\n" "JE0EHE\n" "JE1ALA\n" "JE1AON\n" "JE1BQE\n" "JE1CAC\n" "JE1CJB\n" "JE1CKA\n" "JE1COB\n" "JE1CPB\n" "JE1CQT\n" "JE1CSW\n" "JE1CTM\n" "JE1EMU\n" "JE1EQS\n" "JE1FQV\n" "JE1FUX\n" "JE1GNG\n" "JE1GWO\n" "JE1GYL\n" "JE1GZB\n" "JE1HMC\n" "JE1HQE\n" "JE1HXZ\n" "JE1IFV\n" "JE1JAC\n" "JE1KBV\n" "JE1KDM\n" "JE1KEY\n" "JE1KON\n" "JE1LCK\n" "JE1LDU\n" "JE1LET\n" "JE1LFR\n" "JE1LFX\n" "JE1LOI\n" "JE1LPZ\n" "JE1LRT\n" "JE1LZL\n" "JE1MHO\n" "JE1NGI\n" "JE1NVD\n" "JE1OHL\n" "JE1ORU\n" "JE1PGA\n" "JE1PNX\n" "JE1QCL\n" "JE1QUR\n" "JE1QYI\n" "JE1REU\n" "JE1RID\n" "JE1ROA\n" "JE1RRK\n" "JE1RXJ\n" "JE1RZR\n" "JE1SCF\n" "JE1SCJ\n" "JE1SGH\n" "JE1SHW\n" "JE1SPY\n" "JE1SSE\n" "JE1SYN\n" "JE1TBU\n" "JE1TNL\n" "JE1TRV\n" "JE1TSD\n" "JE1UMG\n" "JE1WHD\n" "JE1WYC\n" "JE1YEM\n" "JE1ZWT\n" "JE2ATB\n" "JE2DJC\n" "JE2DOD\n" "JE2EHP\n" "JE2FUP\n" "JE2HCJ\n" "JE2HXL\n" "JE2ILG\n" "JE2KDN\n" "JE2KUC\n" "JE2LDW\n" "JE2LPC\n" "JE2LUN\n" "JE2LVG\n" "JE2MIR\n" "JE2OTM\n" "JE2OVG\n" "JE2PCY\n" "JE2PMC\n" "JE2QIZ\n" "JE2RDO\n" "JE2SOY\n" "JE2TLZ\n" "JE2UFF\n" "JE2VLG\n" "JE2WGC\n" "JE2XJW\n" "JE2YWY\n" "JE3AGN\n" "JE3AOL\n" "JE3BXY\n" "JE3CXJ\n" "JE3EDJ\n" "JE3EJC\n" "JE3GUG\n" "JE3HWO\n" "JE3MTQ\n" "JE3RNC\n" "JE3UHV\n" "JE3VRJ\n" "JE3WUK\n" "JE3XNF\n" "JE4AEJ/1\n" "JE4ICX/1\n" "JE4JPQ\n" "JE4KQH\n" "JE4MHL\n" "JE4MZA\n" "JE4QGF\n" "JE4RAL\n" "JE4USZ\n" "JE4XYA\n" "JE5CIL\n" "JE5JHZ\n" "JE5PTI\n" "JE5PTJ\n" "JE5QPH\n" "JE6CAJ\n" "JE6CMG\n" "JE6DBI\n" "JE6DND\n" "JE6DVI\n" "JE6ETN\n" "JE6HUR\n" "JE6JVH\n" "JE6LXS\n" "JE6QUJ\n" "JE6TSP\n" "JE6TUU\n" "JE6URC\n" "JE6UWU\n" "JE7BUH\n" "JE7CJL\n" "JE7DMH\n" "JE7HYK\n" "JE7JDL\n" "JE7JZT\n" "JE7LKG\n" "JE7SOG\n" "JE7WBI\n" "JE7YSS\n" "JE8BKW\n" "JE8CIC\n" "JE8CLT\n" "JE8CRA\n" "JE8GNN\n" "JE8KGH/7\n" "JE8KKX\n" "JE8NTJ\n" "JE8TGI\n" "JE9CRJ\n" "JE9QMZ\n" "JF0EHX\n" "JF0POA\n" "JF1AGB\n" "JF1AZQ\n" "JF1BFM\n" "JF1CBT\n" "JF1DMY\n" "JF1EGO\n" "JF1EGX\n" "JF1EUY\n" "JF1FFX\n" "JF1GUT\n" "JF1GYX\n" "JF1GZZ\n" "JF1HJX\n" "JF1HME\n" "JF1HYG\n" "JF1IRW\n" "JF1ISC/3\n" "JF1IUA\n" "JF1IXE\n" "JF1JPB\n" "JF1KFR\n" "JF1KKV\n" "JF1KMC\n" "JF1KML\n" "JF1KSF\n" "JF1KUR\n" "JF1KWG\n" "JF1LLB\n" "JF1LMB\n" "JF1LWO\n" "JF1MAD\n" "JF1MQS\n" "JF1NHD\n" "JF1NZW\n" "JF1OLC\n" "JF1OPL\n" "JF1PJK\n" "JF1PTX\n" "JF1PYJ\n" "JF1QQK\n" "JF1RBU\n" "JF1RDH\n" "JF1RFZ\n" "JF1RQP\n" "JF1RWZ\n" "JF1RYU\n" "JF1SCB/7\n" "JF1SEK\n" "JF1SPT\n" "JF1SQC\n" "JF1SVV\n" "JF1TEU\n" "JF1UVJ\n" "JF1VNR\n" "JF1VRR\n" "JF1VRU\n" "JF1VVR\n" "JF1VYX\n" "JF1WQC\n" "JF1WXN\n" "JF1XEP\n" "JF1YRK\n" "JF2BDK\n" "JF2CTY\n" "JF2DID\n" "JF2DND\n" "JF2DST\n" "JF2FIU\n" "JF2HPA\n" "JF2ICB\n" "JF2IKJ\n" "JF2IWL\n" "JF2KOZ\n" "JF2LVM\n" "JF2MBF\n" "JF2OHQ\n" "JF2OZH\n" "JF2PZY\n" "JF2QNM\n" "JF2RCX\n" "JF2RDG\n" "JF2RLD\n" "JF2SKV\n" "JF2SQB\n" "JF2TOG\n" "JF2UPM\n" "JF2VFN\n" "JF2VHS\n" "JF2VNV\n" "JF2WKE\n" "JF2WME\n" "JF2WTG\n" "JF2WXS\n" "JF3BFS\n" "JF3BRE\n" "JF3EIG\n" "JF3GKE\n" "JF3ITH\n" "JF3IYW\n" "JF3KNW\n" "JF3KON\n" "JF3KQA\n" "JF3LOP\n" "JF3MTM\n" "JF3MYU\n" "JF3NDW\n" "JF3NKA\n" "JF3RDE\n" "JF3SAD\n" "JF3SKW\n" "JF3VAX\n" "JF4ETK\n" "JF4GWA\n" "JF6CHY\n" "JF6WTY\n" "JF6XHS\n" "JF7GDF\n" "JF7NXS\n" "JF7XKY\n" "JF8AOJ\n" "JF9EXF\n" "JF9JTS\n" "JF9KVT\n" "JF9MJU\n" "JG0AXT\n" "JG0EKW\n" "JG0GGI\n" "JG0TCL\n" "JG1AUI\n" "JG1BKX\n" "JG1EIQ\n" "JG1FGL\n" "JG1FKT\n" "JG1FMA\n" "JG1FUV\n" "JG1GCO\n" "JG1GGF\n" "JG1GGU\n" "JG1GUW\n" "JG1HJV\n" "JG1HQA\n" "JG1HUF\n" "JG1IEF\n" "JG1IGX\n" "JG1ILF\n" "JG1IRX\n" "JG1IUF\n" "JG1IZA\n" "JG1JLA\n" "JG1LKT\n" "JG1MOH\n" "JG1NDM\n" "JG1OWV\n" "JG1PED\n" "JG1PST\n" "JG1RVN\n" "JG1SIS\n" "JG1SRB\n" "JG1THV\n" "JG1TLY\n" "JG1TVK\n" "JG1UKW\n" "JG1UZD\n" "JG1VVU\n" "JG1WNO\n" "JG1WRT\n" "JG1XLZ\n" "JG1ZKO\n" "JG2CNS\n" "JG2CNZ\n" "JG2GSY\n" "JG2KKG\n" "JG2KUT\n" "JG2LGM\n" "JG2NLN\n" "JG2REJ\n" "JG2SON\n" "JG2TSL\n" "JG3CKF/1\n" "JG3CQJ\n" "JG3DOC\n" "JG3FEA\n" "JG3GYO\n" "JG3IWL\n" "JG3JLC\n" "JG3KUT\n" "JG3LGD\n" "JG3MBL\n" "JG3RXZ\n" "JG3SKK\n" "JG3SVP\n" "JG3TXD\n" "JG3UVN\n" "JG3WDN\n" "JG4AKL\n" "JG4OOU\n" "JG4QFG\n" "JG5DHX\n" "JG6DVF\n" "JG6FQW/1\n" "JG6FUO\n" "JG6TPY\n" "JG6TXW\n" "JG7AMD\n" "JG7DLI\n" "JG7EHM\n" "JG7IJM\n" "JG7MFN\n" "JG7PSJ\n" "JG8QXB\n" "JG8TQL\n" "JH0BBE\n" "JH0BQX\n" "JH0CCK\n" "JH0EPI\n" "JH0EQN\n" "JH0EWT\n" "JH0EXA\n" "JH0GHZ\n" "JH0IEW\n" "JH0INE\n" "JH0INP\n" "JH0JDV/0\n" "JH0KHR\n" "JH0LSP\n" "JH0MGW\n" "JH0MHR\n" "JH0MMJ\n" "JH0MXV\n" "JH0NEC\n" "JH0NOS\n" "JH0NVX/1\n" "JH0OXS\n" "JH0QIQ\n" "JH0QYS\n" "JH0RNN\n" "JH0SGJ\n" "JH0TIS\n" "JH0WMN\n" "JH0WMN/1\n" "JH1AAN\n" "JH1ABP\n" "JH1ACA\n" "JH1AEP\n" "JH1AGU\n" "JH1APK\n" "JH1APZ\n" "JH1ARJ\n" "JH1AWJ\n" "JH1BED\n" "JH1BEL\n" "JH1BQL\n" "JH1BZJ\n" "JH1CBD\n" "JH1CCN\n" "JH1CML\n" "JH1CRF\n" "JH1CTQ\n" "JH1DGQ\n" "JH1DJD\n" "JH1DLD\n" "JH1DTX\n" "JH1DVG\n" "JH1DYV\n" "JH1EAQ\n" "JH1EEB\n" "JH1EGJ\n" "JH1ESR\n" "JH1EVD\n" "JH1EVE\n" "JH1EYM\n" "JH1FNU\n" "JH1FSF\n" "JH1FSL\n" "JH1FTL\n" "JH1FVE\n" "JH1GEV\n" "JH1GNU\n" "JH1GUL\n" "JH1GUO\n" "JH1GUO/4\n" "JH1GZE\n" "JH1HDT\n" "JH1HGF\n" "JH1HGI\n" "JH1HIC\n" "JH1HJC\n" "JH1HMC\n" "JH1HTF\n" "JH1HTQ/2\n" "JH1HXY\n" "JH1HYW\n" "JH1IAQ\n" "JH1IED\n" "JH1IOY\n" "JH1IVD\n" "JH1IXW\n" "JH1JBV\n" "JH1KIM\n" "JH1KZB\n" "JH1KZQ\n" "JH1LAH\n" "JH1LEM\n" "JH1LPF\n" "JH1LPZ\n" "JH1MDJ\n" "JH1MSB\n" "JH1MTR/4\n" "JH1NBN\n" "JH1NPQ\n" "JH1NXU\n" "JH1OBS\n" "JH1OCC\n" "JH1OGC\n" "JH1OGT\n" "JH1OHZ\n" "JH1OIV\n" "JH1OLB\n" "JH1OTZ\n" "JH1OVY\n" "JH1PCE\n" "JH1PQD\n" "JH1PXY\n" "JH1QDB\n" "JH1QDF\n" "JH1QQN\n" "JH1QVW\n" "JH1QYT\n" "JH1RDU\n" "JH1RFM\n" "JH1RFZ\n" "JH1RGG\n" "JH1RNI\n" "JH1RRP\n" "JH1SAJ\n" "JH1SAR\n" "JH1SBE\n" "JH1SJN\n" "JH1SVO\n" "JH1SWD\n" "JH1TFE\n" "JH1TKB\n" "JH1TUB\n" "JH1TWT\n" "JH1TXG/9\n" "JH1UGN\n" "JH1URT\n" "JH1UUT\n" "JH1VHU\n" "JH1VIG\n" "JH1VMI\n" "JH1WHA\n" "JH1WJR\n" "JH1WLY\n" "JH1WNL\n" "JH1WVJ\n" "JH1XFR\n" "JH1XUM\n" "JH1XUP\n" "JH1XUZ\n" "JH1XVE\n" "JH1XYB\n" "JH2AHZ\n" "JH2AMH\n" "JH2AZW\n" "JH2BAX\n" "JH2BNL\n" "JH2BTM\n" "JH2BUF\n" "JH2CMH\n" "JH2DBQ\n" "JH2DFJ\n" "JH2DTP\n" "JH2FLY\n" "JH2FXK\n" "JH2GAA\n" "JH2GSW\n" "JH2GZY\n" "JH2HUQ\n" "JH2IEE\n" "JH2KCE\n" "JH2KIL\n" "JH2LPY\n" "JH2MYN\n" "JH2NWP\n" "JH2OEY\n" "JH2PWM\n" "JH2PWY\n" "JH2QAY\n" "JH2QLC\n" "JH2QUQ\n" "JH2RMU\n" "JH2SON\n" "JH2UVL\n" "JH2WGI\n" "JH2XQY\n" "JH2XTV\n" "JH3AIU\n" "JH3BYX\n" "JH3CCT\n" "JH3CTQ\n" "JH3CUL\n" "JH3DMQ\n" "JH3EDG\n" "JH3EGA\n" "JH3EGA/1\n" "JH3EQP\n" "JH3EXI\n" "JH3FUK\n" "JH3GCN\n" "JH3HGH\n" "JH3HWL\n" "JH3JUB\n" "JH3JYS\n" "JH3KHS\n" "JH3LFL/1\n" "JH3OHO\n" "JH3PRR\n" "JH3PTC\n" "JH3QFY\n" "JH3SIF\n" "JH3UDD\n" "JH3VWN\n" "JH3WKE\n" "JH4AAG\n" "JH4ADV\n" "JH4BTI\n" "JH4CES\n" "JH4CHV\n" "JH4CPC\n" "JH4EMK\n" "JH4EYD\n" "JH4FRP\n" "JH4FUF\n" "JH4GLG\n" "JH4GNE\n" "JH4IFF\n" "JH4JNG\n" "JH4LBE\n" "JH4OQF\n" "JH4OYA\n" "JH4RCK/3\n" "JH4RNY\n" "JH4RUF\n" "JH4SLF\n" "JH4UTP\n" "JH4UYB\n" "JH4VDP\n" "JH5AVM\n" "JH5BJU/3\n" "JH5CKV\n" "JH5DAH\n" "JH5FIX\n" "JH5FXP\n" "JH5GEN\n" "JH5IRT\n" "JH5KDL\n" "JH5MXB\n" "JH5OWN\n" "JH6ANR\n" "JH6AUS\n" "JH6CDI\n" "JH6DGE\n" "JH6DUI\n" "JH6EGU\n" "JH6FTJ\n" "JH6JMM\n" "JH6JMN\n" "JH6JSR\n" "JH6LPQ\n" "JH6MBD\n" "JH6NBW\n" "JH6OSR\n" "JH6QFJ\n" "JH6REM\n" "JH6RGY\n" "JH6RKI\n" "JH6RON\n" "JH6SCA\n" "JH6TYD\n" "JH6WDG\n" "JH6WHN\n" "JH6WMJ\n" "JH6XOD\n" "JH7BMF\n" "JH7BVH\n" "JH7CUO\n" "JH7CVM\n" "JH7DNO\n" "JH7DUM\n" "JH7FMJ\n" "JH7GNC\n" "JH7IAJ\n" "JH7IMX\n" "JH7IPR/6\n" "JH7IXX\n" "JH7JCX\n" "JH7MEX\n" "JH7NTJ\n" "JH7OUW\n" "JH7PHD\n" "JH7QXJ\n" "JH7RTQ\n" "JH7RXY\n" "JH7SCY\n" "JH7UFT\n" "JH7UJI\n" "JH7XGC\n" "JH7XGN\n" "JH7XGQ\n" "JH7XMO\n" "JH8BHR\n" "JH8BOE\n" "JH8CXW\n" "JH8CZB\n" "JH8DBI\n" "JH8DBJ\n" "JH8DHV\n" "JH8FAJ\n" "JH8FAJ/1\n" "JH8FIH\n" "JH8GEU\n" "JH8JOM\n" "JH8JYV\n" "JH8KFN\n" "JH8LLE\n" "JH8OCV\n" "JH8RXM\n" "JH8SGR\n" "JH8SIT\n" "JH8SLS\n" "JH8UGL\n" "JH8WWP\n" "JH8WXF\n" "JH9AUB\n" "JH9BZY\n" "JH9CAV\n" "JH9KVF\n" "JH9MBQ\n" "JH9URT\n" "JI1AFG\n" "JI1ALP\n" "JI1ANI\n" "JI1AQY\n" "JI1AVY\n" "JI1BBN\n" "JI1BDQ\n" "JI1BHO\n" "JI1BJB\n" "JI1BXD\n" "JI1CPN\n" "JI1CQA\n" "JI1CZK\n" "JI1DQA\n" "JI1DSO\n" "JI1DXM\n" "JI1ETJ\n" "JI1FDF\n" "JI1FLB\n" "JI1FXS\n" "JI1HAC\n" "JI1HFJ\n" "JI1IXW\n" "JI1JPJ\n" "JI1KXL\n" "JI1LAI\n" "JI1LAT\n" "JI1LET\n" "JI1LVQ\n" "JI1MUT\n" "JI1NCZ\n" "JI1OAB\n" "JI1OWY\n" "JI1QEW\n" "JI1QWE\n" "JI1QZQ\n" "JI1RAK\n" "JI1RXQ\n" "JI1SAI\n" "JI1UCL\n" "JI1UDD\n" "JI1VVB\n" "JI1XAC\n" "JI1XJB\n" "JI2HVT\n" "JI2IWB\n" "JI2KXK\n" "JI2LAL\n" "JI2MWH\n" "JI2TKX\n" "JI2TNT/9\n" "JI2WYK\n" "JI2ZEY\n" "JI2ZJS\n" "JI3BAP\n" "JI3BFC\n" "JI3BKF\n" "JI3CJP\n" "JI3CWI\n" "JI3DST\n" "JI3DST/3\n" "JI3DST/6\n" "JI3FLA\n" "JI3FSI\n" "JI3ICP\n" "JI3JMG\n" "JI3KDH\n" "JI3KXB\n" "JI3KZD\n" "JI3MCM\n" "JI3OGI\n" "JI3OQO\n" "JI3QBQ\n" "JI4HKA\n" "JI4JGD\n" "JI4OHV\n" "JI4POR\n" "JI4UEN/4\n" "JI4VXI\n" "JI4WHS\n" "JI5KGQ\n" "JI5RPT\n" "JI6AVL\n" "JI6IKW\n" "JI6OXK\n" "JI7EMD\n" "JI7GYU\n" "JI7HAV\n" "JI7NUF\n" "JI7RRS\n" "JI7UUO\n" "JI8XLD\n" "JJ0FVP\n" "JJ0HEN\n" "JJ0JML\n" "JJ0KDW\n" "JJ0KRD\n" "JJ0MPI\n" "JJ0NCC\n" "JJ0PER\n" "JJ1CBY\n" "JJ1CZR\n" "JJ1ENZ\n" "JJ1FDS\n" "JJ1FHH\n" "JJ1GQH\n" "JJ1IDW\n" "JJ1IVX\n" "JJ1LBJ\n" "JJ1LIB\n" "JJ1LID\n" "JJ1LRD\n" "JJ1MIX\n" "JJ1MZH\n" "JJ1NDP\n" "JJ1OAS\n" "JJ1OFQ\n" "JJ1QLT\n" "JJ1RSH\n" "JJ1SKG\n" "JJ1TBQ\n" "JJ1TJD\n" "JJ1VGA\n" "JJ1VJB\n" "JJ1VRO\n" "JJ1VTE\n" "JJ1WSN\n" "JJ1WWL\n" "JJ1XKE\n" "JJ1XPJ\n" "JJ1ZEJ\n" "JJ2CJB\n" "JJ2EOB\n" "JJ2HCM\n" "JJ2IBN\n" "JJ2JQF\n" "JJ2JQF/1\n" "JJ2LPV\n" "JJ2NKX\n" "JJ2ONH\n" "JJ2PUG\n" "JJ2SQJ\n" "JJ2TKX\n" "JJ2YDV\n" "JJ3DXD\n" "JJ3GPJ\n" "JJ3JHP\n" "JJ3JJL\n" "JJ3LLT\n" "JJ3OFL\n" "JJ3SHR\n" "JJ3TBB\n" "JJ4CDW/4\n" "JJ4NZO/1\n" "JJ5EFY\n" "JJ5GMJ\n" "JJ6CZZ\n" "JJ6TWQ\n" "JJ7GCL\n" "JK1AFC\n" "JK1AII\n" "JK1BII\n" "JK1BQS\n" "JK1DHX\n" "JK1ECD\n" "JK1FFB\n" "JK1FNL\n" "JK1FNN\n" "JK1GKG\n" "JK1GMB\n" "JK1HWQ\n" "JK1JHB\n" "JK1KFO\n" "JK1KSB\n" "JK1LUY\n" "JK1MZT\n" "JK1NMJ\n" "JK1NSR\n" "JK1ODA\n" "JK1OLT\n" "JK1OPL\n" "JK1OXU\n" "JK1PDY\n" "JK1PIU\n" "JK1PLR\n" "JK1RAU\n" "JK1SDQ\n" "JK1SMY\n" "JK1SPQ\n" "JK1TCV\n" "JK1THF\n" "JK1TMP\n" "JK1UKQ\n" "JK1UVP\n" "JK1VEL\n" "JK1WXM\n" "JK1YMM\n" "JK2GMX\n" "JK2KNR\n" "JK2MDV\n" "JK2TTP\n" "JK2VOC\n" "JK2VOC/BA4TB\n" "JK2VQR\n" "JK3AGC\n" "JK3AHS\n" "JK3GHE\n" "JK3GWT\n" "JK3HFN\n" "JK3HLP\n" "JK3JTJ\n" "JK3NSD\n" "JK3ZCR\n" "JK4KSD\n" "JK6JAB\n" "JK6SEW\n" "JK7UST\n" "JK8NQW\n" "JK8USI\n" "JL1ARF\n" "JL1BDI\n" "JL1BNE\n" "JL1BYZ\n" "JL1CNY\n" "JL1DUE\n" "JL1EBL\n" "JL1EDB\n" "JL1EEE\n" "JL1ELQ\n" "JL1GXO\n" "JL1HSD\n" "JL1IHE\n" "JL1JJD\n" "JL1KLG\n" "JL1LNC\n" "JL1MUT\n" "JL1MWI\n" "JL1MWY\n" "JL1OHO\n" "JL1OXH\n" "JL1PPS\n" "JL1QOC\n" "JL1RUC\n" "JL1RXW\n" "JL1SAM\n" "JL1UJJ\n" "JL1UTS\n" "JL1VFZ\n" "JL1WPQ\n" "JL1XMN\n" "JL2CZY\n" "JL2LPX\n" "JL2VZJ\n" "JL3APM\n" "JL3CRS\n" "JL3JTD\n" "JL3MCM\n" "JL3QJQ\n" "JL3RDC\n" "JL3RNZ\n" "JL3RPD\n" "JL3RTA\n" "JL3SBE\n" "JL3TEQ\n" "JL3VUL/3\n" "JL4BSE\n" "JL4HOZ\n" "JL4LWL\n" "JL4WYY\n" "JL6IPK\n" "JL6MSN\n" "JL6TKN\n" "JL7FBV/1\n" "JL7SNM\n" "JL8AQH\n" "JL8GOV\n" "JL8LBK\n" "JL8MBF\n" "JL8VIV\n" "JM1AHX\n" "JM1BKZ\n" "JM1CYJ\n" "JM1EKM\n" "JM1FBF\n" "JM1FHL\n" "JM1FYH\n" "JM1HJG\n" "JM1IMF\n" "JM1ISX\n" "JM1JZN\n" "JM1KLO\n" "JM1KNI\n" "JM1LKI\n" "JM1LQI\n" "JM1LRQ\n" "JM1LWY\n" "JM1NKT\n" "JM1QBY\n" "JM1RQS\n" "JM1RSV\n" "JM1SBU\n" "JM1SMY\n" "JM1TUY\n" "JM1TWR\n" "JM1UTT\n" "JM1UWB\n" "JM1XCW\n" "JM1XSJ\n" "JM2DRM\n" "JM2LEI\n" "JM2LHB\n" "JM2LOF\n" "JM2MHQ\n" "JM2RUV\n" "JM2VYA\n" "JM3APP\n" "JM3PLL\n" "JM3QML\n" "JM3ROY\n" "JM3UAO\n" "JM3UML\n" "JM4UVV\n" "JM4WUZ\n" "JM6BYV\n" "JM7NBS\n" "JM7OLW\n" "JN1ADL\n" "JN1BBO\n" "JN1BMX\n" "JN1CJS\n" "JN1DJY\n" "JN1DNV\n" "JN1GLB\n" "JN1IZK\n" "JN1IZR\n" "JN1KWR\n" "JN1LWD\n" "JN1MSO\n" "JN1NDY\n" "JN1NOP\n" "JN1NTK\n" "JN1PFH\n" "JN1RQV\n" "JN1WFF\n" "JN2AMD\n" "JN2NOJ\n" "JN3DMJ\n" "JN3DRX\n" "JN3DSH\n" "JN3IWE\n" "JN3KST\n" "JN3LQP\n" "JN3MUC\n" "JN3SAC\n" "JN4FNZ\n" "JN4MMO\n" "JN4SNG\n" "JN4XYZ\n" "JN6EPA\n" "JN6GBB\n" "JN6VSN\n" "JN6VSN/1\n" "JN7GLC\n" "JN7IIR\n" "JN7MLJ\n" "JN7TAN\n" "JO1ABS\n" "JO1COV\n" "JO1DZA\n" "JO1GUZ\n" "JO1HJD\n" "JO1KCQ\n" "JO1KVS\n" "JO1KXP\n" "JO1KXP/1\n" "JO1LVZ\n" "JO1NLN\n" "JO1PNA\n" "JO1QNO\n" "JO1QZI\n" "JO1RUQ\n" "JO1SIM\n" "JO1UOK\n" "JO1UTR\n" "JO1VRV\n" "JO1WIZ\n" "JO1WKO\n" "JO1WNV\n" "JO1WZM\n" "JO1XEU\n" "JO2EWL\n" "JO2VSU\n" "JO3AGQ\n" "JO3AXC\n" "JO3AYN\n" "JO3DDD\n" "JO3EVM\n" "JO3GZH\n" "JO3JYE\n" "JO3MXH\n" "JO3NJD\n" "JO3PSJ\n" "JO3PSJ/3\n" "JO3PSJ/4\n" "JO3RCK\n" "JO3TGL\n" "JO4CBO\n" "JO4CFV\n" "JO6XMM\n" "JO7AJQ\n" "JO7GVC\n" "JO7HAM\n" "JO7INF\n" "JO7KJC\n" "JO7NFR\n" "JP1AEG\n" "JP1DMR\n" "JP1EWY\n" "JP1HDK\n" "JP1HUJ\n" "JP1IOF\n" "JP1IXV\n" "JP1JFG\n" "JP1KHY\n" "JP1PQD\n" "JP1PZE\n" "JP1QDH\n" "JP1SRG\n" "JP1TRJ\n" "JP1TVC\n" "JP2MRD\n" "JP3AZM\n" "JP3WAU\n" "JP6OGP\n" "JP7AWQ\n" "JQ1ABC\n" "JQ1AHZ/6\n" "JQ1BVI\n" "JQ1COB\n" "JQ1DPP\n" "JQ1DTT\n" "JQ1GXV\n" "JQ1NGT\n" "JQ1PCX\n" "JQ1QGM\n" "JQ1QKK\n" "JQ1RKI\n" "JQ1SUO\n" "JQ1TAR\n" "JQ1VDJ\n" "JQ1VDJ/1\n" "JQ1YER\n" "JQ1YIW\n" "JQ1YWK\n" "JQ2EHD\n" "JQ2GYU\n" "JQ2HVN\n" "JQ2MUM\n" "JQ2OUL\n" "JQ2QHQ\n" "JQ2SIX\n" "JQ2UMS\n" "JQ2UNS\n" "JQ2UNY\n" "JQ2UOZ\n" "JQ2VVH\n" "JQ2WTT\n" "JQ3UDL\n" "JQ6CAA\n" "JQ6JBU\n" "JQ6NAW\n" "JQ6OZP\n" "JQ6QNQ\n" "JR0AMD\n" "JR0BUL\n" "JR0EQQ\n" "JR0ETA\n" "JR0GUY\n" "JR0GXA\n" "JR0HYT/1\n" "JR0KVU/1\n" "JR0WZR\n" "JR1AHL\n" "JR1AHQ\n" "JR1ATA\n" "JR1AUK\n" "JR1BAS\n" "JR1BLX\n" "JR1BRS\n" "JR1BTG\n" "JR1BYO\n" "JR1CBC\n" "JR1CCT\n" "JR1CJD\n" "JR1CJD/1\n" "JR1CVU\n" "JR1DIU\n" "JR1DUP\n" "JR1ERU\n" "JR1FHP\n" "JR1FVI\n" "JR1GCN\n" "JR1GFX\n" "JR1GJP\n" "JR1GLL\n" "JR1GMK\n" "JR1GNB\n" "JR1GVP\n" "JR1HUA\n" "JR1IJV\n" "JR1IZM\n" "JR1IZM/1\n" "JR1KAG\n" "JR1KQU\n" "JR1LEV\n" "JR1LZK\n" "JR1MQT\n" "JR1MRG\n" "JR1MTS\n" "JR1NAL\n" "JR1NHD\n" "JR1NKN\n" "JR1PST\n" "JR1RGX\n" "JR1TOK\n" "JR1TRK\n" "JR1UBR\n" "JR1UFN\n" "JR1UMO\n" "JR1VAY\n" "JR1WLR\n" "JR1XFS\n" "JR2AAN\n" "JR2AAN/2\n" "JR2AGL\n" "JR2ALA\n" "JR2AWS\n" "JR2BOF\n" "JR2BQN\n" "JR2BYJ\n" "JR2DOL\n" "JR2DUM\n" "JR2ECF\n" "JR2FJC\n" "JR2KDN\n" "JR2MCN\n" "JR2MIN\n" "JR2MLV\n" "JR2NTC\n" "JR2NTC/2\n" "JR2PAU\n" "JR2PMQ\n" "JR2PMT\n" "JR2SCJ\n" "JR2SCZ\n" "JR2SQU\n" "JR2TMB/1\n" "JR2TRC\n" "JR2TZJ\n" "JR2UBS\n" "JR2VWD\n" "JR2XOM\n" "JR3AAZ\n" "JR3BOT\n" "JR3CNQ\n" "JR3EOI\n" "JR3FQB\n" "JR3GVH\n" "JR3HTK\n" "JR3HZW\n" "JR3IIR\n" "JR3JFZ\n" "JR3KAH\n" "JR3KQJ\n" "JR3NDM\n" "JR3NZC\n" "JR3OEH\n" "JR3PKO\n" "JR3QHQ\n" "JR3RGX\n" "JR3RIY\n" "JR3RWB\n" "JR3STX\n" "JR3SZZ/3\n" "JR3TOE\n" "JR3UIC\n" "JR3VFU\n" "JR3VXR\n" "JR3XEX\n" "JR3XKF\n" "JR4ABB\n" "JR4DAH\n" "JR4DHK\n" "JR4FLW\n" "JR4GPA\n" "JR4HTZ\n" "JR4IMV\n" "JR4ISF/3\n" "JR4KJW\n" "JR4LRY\n" "JR4NMV\n" "JR4OHO\n" "JR4PDP\n" "JR4PMX/1\n" "JR4URW\n" "JR4VEV\n" "JR4XME\n" "JR5DPV\n" "JR5EPQ\n" "JR5GZV\n" "JR5HKM\n" "JR5HXU\n" "JR5JAQ\n" "JR5MYC\n" "JR5VHU\n" "JR5XPG\n" "JR5YBH\n" "JR6AG\n" "JR6AUC\n" "JR6BU\n" "JR6EZE\n" "JR6FC\n" "JR6FRV\n" "JR6GHN\n" "JR6GIM\n" "JR6HMJ/1\n" "JR6IGU\n" "JR6IKD\n" "JR6KBY\n" "JR6LLN\n" "JR6OSY\n" "JR6SVM\n" "JR6VIX\n" "JR6YAA\n" "JR7AMZ\n" "JR7ANB\n" "JR7AQL\n" "JR7COP\n" "JR7DXN\n" "JR7FNT\n" "JR7FVO\n" "JR7IAD\n" "JR7KSZ\n" "JR7MAZ\n" "JR7NAL/1\n" "JR7NFW\n" "JR7NXM\n" "JR7RZM\n" "JR7RZM/6\n" "JR7TBZ\n" "JR7TEQ\n" "JR7VHZ\n" "JR7WAB\n" "JR7XGL\n" "JR7XKN\n" "JR7YGK\n" "JR8AMF\n" "JR8BHW\n" "JR8NOD\n" "JR8ORC\n" "JR8OXT\n" "JR8PPG\n" "JR8QFG\n" "JR8QVT/1\n" "JR8SUB\n" "JR8VSE\n" "JR9CPT\n" "JR9GEX\n" "JR9GMS\n" "JR9NVB\n" "JR9SCH\n" "JS1DLC\n" "JS1JTX\n" "JS1KQQ\n" "JS1LQI\n" "JS1MZV\n" "JS1NDM\n" "JS1OHI\n" "JS1OKS\n" "JS1OYN\n" "JS2NYO\n" "JS3CTQ\n" "JS3EOE\n" "JS3LSQ\n" "JS3OSI\n" "JS3QBP\n" "JS3QWI\n" "JS6DMT\n" "JS6GIM\n" "JS6RGY\n" "JS6RRR\n" "JS6RTJ\n" "JT1AA\n" "JT1BE\n" "JT1BH\n" "JT1BL\n" "JT1BV\n" "JT1BZ\n" "JT1C\n" "JT1CD\n" "JT1CJ\n" "JT1CO\n" "JT1CS\n" "JT1DA\n" "JT1R\n" "JT1ZO\n" "JT5DX\n" "JU1DX\n" "JU1F\n" "JU75BSI\n" "JV1A\n" "JW1CCA\n" "JW5E\n" "JW5HE\n" "JW5NM\n" "JW7QIA\n" "JW7XK\n" "JY3ZH\n" "JY4CI\n" "JY4NE\n" "JY5CC\n" "JY6HQ\n" "K0ABC\n" "K0ACP\n" "K0AD\n" "K0ADX\n" "K0AE\n" "K0AIZ\n" "K0AK\n" "K0ALT\n" "K0ALV\n" "K0ANS\n" "K0AOZ\n" "K0AP\n" "K0ARK\n" "K0ARS\n" "K0ARY\n" "K0AV\n" "K0AWU\n" "K0AXX\n" "K0AZ\n" "K0BJ\n" "K0BLT\n" "K0BO\n" "K0BOG\n" "K0BUD\n" "K0BWJ\n" "K0BWQ\n" "K0BX\n" "K0CA\n" "K0CCM\n" "K0CD\n" "K0CF\n" "K0CIE/5\n" "K0CIY\n" "K0CKD\n" "K0CL\n" "K0CMH\n" "K0CMS\n" "K0CN\n" "K0COM\n" "K0COP\n" "K0CS\n" "K0CW\n" "K0DBN\n" "K0DEQ\n" "K0DI\n" "K0DK\n" "K0DLW\n" "K0DN\n" "K0DNG\n" "K0DQ\n" "K0DTJ\n" "K0DU\n" "K0DVV\n" "K0DVY\n" "K0DXC\n" "K0EA\n" "K0EIA\n" "K0EJ\n" "K0EKL\n" "K0EOA\n" "K0EOO\n" "K0EOU\n" "K0EQH\n" "K0ESE\n" "K0ETV\n" "K0ETY\n" "K0EU\n" "K0EWS\n" "K0EX\n" "K0FA\n" "K0FBV\n" "K0FG\n" "K0FHG\n" "K0FJ\n" "K0FLY\n" "K0FM\n" "K0FPL\n" "K0FRP\n" "K0FS\n" "K0FTC\n" "K0FVF\n" "K0FW\n" "K0FX\n" "K0FY\n" "K0FYI\n" "K0GAS\n" "K0GBC\n" "K0GEO\n" "K0GLT\n" "K0GM\n" "K0GMO\n" "K0GND\n" "K0GPF\n" "K0GSV\n" "K0GT\n" "K0GVG\n" "K0GXI\n" "K0HA\n" "K0HAA\n" "K0HB\n" "K0HC\n" "K0HGW\n" "K0HHB\n" "K0HIP\n" "K0HJC\n" "K0HMO\n" "K0HNC\n" "K0HNM\n" "K0HP\n" "K0HRM\n" "K0HS\n" "K0HT\n" "K0HUU\n" "K0HW\n" "K0IDT\n" "K0IE\n" "K0IEA\n" "K0INR\n" "K0IO\n" "K0IP\n" "K0IR\n" "K0IRL\n" "K0IS\n" "K0ISL\n" "K0ITC\n" "K0IUC\n" "K0IVK\n" "K0IYA\n" "K0IZ\n" "K0JA\n" "K0JCK\n" "K0JDD\n" "K0JE\n" "K0JEM\n" "K0JGH\n" "K0JJ\n" "K0JJM\n" "K0JJR\n" "K0JPL\n" "K0JSC\n" "K0JUH\n" "K0JV\n" "K0JZW\n" "K0KD\n" "K0KE\n" "K0KES\n" "K0KJS\n" "K0KL\n" "K0KP\n" "K0KRH\n" "K0KT\n" "K0KU\n" "K0KVR\n" "K0KW\n" "K0KX\n" "K0KY\n" "K0KZA\n" "K0LAF\n" "K0LC\n" "K0LDS\n" "K0LEJ\n" "K0LFV\n" "K0LG\n" "K0LIR\n" "K0LMD\n" "K0LU\n" "K0LUZ\n" "K0LW\n" "K0LWV\n" "K0MA\n" "K0MAF\n" "K0MD\n" "K0MDS\n" "K0MF\n" "K0MIS\n" "K0MJS\n" "K0MPH\n" "K0MZN\n" "K0NA\n" "K0NE\n" "K0NI\n" "K0NM\n" "K0NN\n" "K0NO\n" "K0NW\n" "K0NWT\n" "K0NX\n" "K0NY\n" "K0NZ\n" "K0OB\n" "K0OD\n" "K0OK\n" "K0OLD\n" "K0OSW\n" "K0OU\n" "K0PC\n" "K0PFV\n" "K0PFX\n" "K0PFZ\n" "K0PIR\n" "K0PJ\n" "K0PK\n" "K0PL\n" "K0PP\n" "K0PP/7\n" "K0PT\n" "K0PY\n" "K0QB\n" "K0QC\n" "K0QH\n" "K0QL\n" "K0QQ\n" "K0QU\n" "K0RC\n" "K0RDK\n" "K0RDW\n" "K0RF\n" "K0RFD\n" "K0RG\n" "K0RGR\n" "K0RH\n" "K0RI\n" "K0RPD\n" "K0RRP\n" "K0RRY\n" "K0RS\n" "K0RU\n" "K0RY\n" "K0RZ\n" "K0SA\n" "K0SBV\n" "K0SCM\n" "K0SDW\n" "K0SF\n" "K0SIX\n" "K0SN\n" "K0SPI\n" "K0SQ\n" "K0SR\n" "K0SRL\n" "K0SRW\n" "K0SV\n" "K0SVX\n" "K0SW\n" "K0SX\n" "K0TER\n" "K0TG\n" "K0THN\n" "K0TI\n" "K0TIV\n" "K0TK\n" "K0TO\n" "K0TPK\n" "K0TPP\n" "K0TQ\n" "K0TRT\n" "K0TT\n" "K0TTY\n" "K0TV\n" "K0TZ\n" "K0UA\n" "K0UAS\n" "K0UB\n" "K0UD\n" "K0UE\n" "K0UIF\n" "K0UK\n" "K0UM\n" "K0URN\n" "K0USA\n" "K0UU\n" "K0VAR\n" "K0VBU\n" "K0VEE\n" "K0VET\n" "K0VG\n" "K0VH\n" "K0VIZ\n" "K0VK\n" "K0VM\n" "K0VR\n" "K0VVY\n" "K0VXP\n" "K0VXU\n" "K0VZT\n" "K0WA\n" "K0WB\n" "K0WHV\n" "K0WIU\n" "K0WK\n" "K0XB\n" "K0XD\n" "K0XE\n" "K0XI\n" "K0XTR\n" "K0XU\n" "K0XY\n" "K0YCR\n" "K0YLW\n" "K0YQ\n" "K0YQ/7\n" "K0YR\n" "K0YY\n" "K0ZK\n" "K0ZN\n" "K0ZR\n" "K0ZX\n" "K1AA\n" "K1AA/4\n" "K1AC\n" "K1AF\n" "K1AIR\n" "K1AJ\n" "K1ANT\n" "K1AR\n" "K1ARO\n" "K1ASA\n" "K1ATT\n" "K1BAA\n" "K1BBM\n" "K1BD\n" "K1BG\n" "K1BKE\n" "K1BO\n" "K1BV\n" "K1BW\n" "K1BX\n" "K1BZM\n" "K1CBR\n" "K1CL\n" "K1CN\n" "K1CP\n" "K1CTT\n" "K1DAN\n" "K1DAT\n" "K1DAT/1\n" "K1DC\n" "K1DD\n" "K1DEC\n" "K1DFT\n" "K1DG\n" "K1DM\n" "K1DQV\n" "K1DRM\n" "K1DRW\n" "K1DS\n" "K1DT\n" "K1DUQ\n" "K1DW\n" "K1DX\n" "K1DXA\n" "K1DZS\n" "K1EA\n" "K1EAR\n" "K1EBY\n" "K1EEE\n" "K1EFI\n" "K1EKF\n" "K1EO\n" "K1EP\n" "K1EQA\n" "K1ESE\n" "K1EY\n" "K1FE\n" "K1FEV\n" "K1FFX\n" "K1FIR\n" "K1FJH\n" "K1FQ\n" "K1FTK\n" "K1FUG\n" "K1FWE\n" "K1FXY\n" "K1GE\n" "K1GI\n" "K1GIG\n" "K1GIL\n" "K1GMD\n" "K1GQ\n" "K1GTS\n" "K1GU\n" "K1GU/4\n" "K1GUN\n" "K1GUP\n" "K1GW\n" "K1HAP\n" "K1HI\n" "K1HOP\n" "K1HR\n" "K1HT\n" "K1HT/8\n" "K1HTJ\n" "K1HTN\n" "K1HTQ\n" "K1HTV\n" "K1HV\n" "K1HZ\n" "K1IB\n" "K1IEB\n" "K1IED\n" "K1IF\n" "K1IK\n" "K1ILR\n" "K1IM\n" "K1IMI\n" "K1IN\n" "K1IPT\n" "K1IR\n" "K1IX\n" "K1JB\n" "K1JC\n" "K1JD\n" "K1JDL\n" "K1JE\n" "K1JI\n" "K1JO\n" "K1JOS\n" "K1JT\n" "K1JTF\n" "K1JWP\n" "K1KA\n" "K1KAV\n" "K1KBA\n" "K1KD\n" "K1KDG\n" "K1KE\n" "K1KI\n" "K1KLM\n" "K1KNJ\n" "K1KNM\n" "K1KNQ\n" "K1KO\n" "K1KP\n" "K1KQ\n" "K1KS\n" "K1KU\n" "K1KUZ\n" "K1KX\n" "K1LD\n" "K1LEE\n" "K1LGM\n" "K1LGQ\n" "K1LHO\n" "K1LI\n" "K1LKP\n" "K1LKR\n" "K1LOG\n" "K1LPS\n" "K1LT\n" "K1LTJ\n" "K1LU\n" "K1LZ\n" "K1MAA\n" "K1MC\n" "K1MIJ\n" "K1MK\n" "K1MM\n" "K1MO\n" "K1MQ\n" "K1MR\n" "K1MTK\n" "K1MVM\n" "K1MVY\n" "K1MW\n" "K1NA\n" "K1ND\n" "K1NDF\n" "K1NDV\n" "K1NEF\n" "K1NG\n" "K1NH\n" "K1NI\n" "K1NIU\n" "K1NJ\n" "K1NK\n" "K1NKA\n" "K1NNJ\n" "K1NPT\n" "K1NR\n" "K1NSS\n" "K1NTR\n" "K1NU\n" "K1NUH\n" "K1NV\n" "K1NY\n" "K1OA\n" "K1OCD\n" "K1OU\n" "K1OW\n" "K1OYQ\n" "K1PAD\n" "K1PDY\n" "K1PJ\n" "K1PL\n" "K1PLX\n" "K1PS\n" "K1PT\n" "K1PTF\n" "K1PU\n" "K1PUB\n" "K1PV\n" "K1PY\n" "K1QF\n" "K1QK\n" "K1QO\n" "K1QR\n" "K1QS\n" "K1QW\n" "K1QX\n" "K1RA\n" "K1RC\n" "K1RH\n" "K1RJV\n" "K1RK\n" "K1RM\n" "K1RO\n" "K1RQ\n" "K1RRR\n" "K1RS\n" "K1RU\n" "K1RV\n" "K1RX\n" "K1RY\n" "K1RZ\n" "K1SA\n" "K1SA/4\n" "K1SD\n" "K1SE\n" "K1SEZ\n" "K1SFA\n" "K1SI\n" "K1SL\n" "K1SL/6\n" "K1SLB\n" "K1SM\n" "K1SND\n" "K1SO\n" "K1SSH\n" "K1ST\n" "K1SUB\n" "K1SVC\n" "K1SVT\n" "K1SXD\n" "K1TA\n" "K1TAX\n" "K1TC\n" "K1TG\n" "K1TH\n" "K1THP\n" "K1TKJ\n" "K1TKL\n" "K1TM\n" "K1TN\n" "K1TN/2\n" "K1TO\n" "K1TR\n" "K1TTT\n" "K1TTY\n" "K1TW\n" "K1TZD\n" "K1UI\n" "K1UO\n" "K1UQT\n" "K1UR\n" "K1UTI\n" "K1VA\n" "K1VC\n" "K1VDF\n" "K1VI\n" "K1VIJ\n" "K1VLB\n" "K1VM\n" "K1VMI\n" "K1VML\n" "K1VO\n" "K1VSJ\n" "K1VT\n" "K1VU\n" "K1VV\n" "K1VW\n" "K1WB\n" "K1WCC\n" "K1WHS\n" "K1WN\n" "K1WO\n" "K1WVU\n" "K1WW\n" "K1WY\n" "K1XM\n" "K1XN\n" "K1XO\n" "K1XT\n" "K1XV\n" "K1YA\n" "K1YE\n" "K1YK\n" "K1YM\n" "K1YQ\n" "K1YSY\n" "K1YT\n" "K1YX\n" "K1ZE\n" "K1ZG\n" "K1ZM\n" "K1ZO\n" "K1ZR\n" "K1ZW\n" "K1ZW/4\n" "K1ZZ\n" "K1ZZI\n" "K2AAW\n" "K2AFY\n" "K2AMI\n" "K2AMP\n" "K2AOP\n" "K2AQ\n" "K2ARO\n" "K2ATX\n" "K2AV\n" "K2AVX\n" "K2AX\n" "K2AXX\n" "K2BB\n" "K2BBQ\n" "K2BLA\n" "K2BLC\n" "K2BOG\n" "K2BQ\n" "K2BQW\n" "K2BW\n" "K2BX\n" "K2CAF\n" "K2CBI\n" "K2CC\n" "K2CDJ\n" "K2CF\n" "K2CIB\n" "K2CJ\n" "K2CM\n" "K2CS\n" "K2CUB\n" "K2CV\n" "K2CVG\n" "K2DAR\n" "K2DB\n" "K2DBK\n" "K2DC\n" "K2DEN\n" "K2DER\n" "K2DFC\n" "K2DGM\n" "K2DI\n" "K2DL\n" "K2DLJ\n" "K2DLS\n" "K2DM\n" "K2DP\n" "K2DRN\n" "K2DS\n" "K2DSL\n" "K2DSL/4\n" "K2DUX\n" "K2EEF\n" "K2EGJ\n" "K2EK\n" "K2EKM\n" "K2EN\n" "K2EP\n" "K2ER\n" "K2ERG\n" "K2ESE\n" "K2EUH\n" "K2FF\n" "K2FJ\n" "K2FL\n" "K2FU\n" "K2FW\n" "K2GE\n" "K2GEK\n" "K2GER\n" "K2GIL\n" "K2GJJ\n" "K2GLS\n" "K2GMY\n" "K2GN\n" "K2GNR\n" "K2GNR/7\n" "K2GSP\n" "K2GTC\n" "K2GV\n" "K2GXT\n" "K2HGO\n" "K2HIG\n" "K2HK\n" "K2HL\n" "K2HN\n" "K2HPV\n" "K2HQ\n" "K2HSV\n" "K2HT\n" "K2HTO\n" "K2HVE\n" "K2IC\n" "K2ID\n" "K2IGW\n" "K2IL\n" "K2ITT\n" "K2IUC\n" "K2IWR\n" "K2IXQ\n" "K2IY\n" "K2IZ\n" "K2JAO\n" "K2JAY\n" "K2JMY\n" "K2JT\n" "K2KEY\n" "K2KNB\n" "K2KQ\n" "K2KR\n" "K2KSH\n" "K2KW\n" "K2LE\n" "K2LML\n" "K2LNS\n" "K2LP\n" "K2LRE\n" "K2LS\n" "K2LTS\n" "K2MAI\n" "K2MD\n" "K2MEN\n" "K2MFW\n" "K2MFY\n" "K2MGR\n" "K2MK\n" "K2MLB\n" "K2MM\n" "K2MME\n" "K2MMO\n" "K2MMW\n" "K2MO\n" "K2MP\n" "K2MUB\n" "K2NDR\n" "K2NF\n" "K2NG\n" "K2NJ\n" "K2NNY\n" "K2NRC\n" "K2NV\n" "K2NV/VE3\n" "K2NYG\n" "K2OAK\n" "K2ODC\n" "K2OEK\n" "K2OF\n" "K2OGD\n" "K2OGD/4\n" "K2OID\n" "K2OK\n" "K2ONP\n" "K2OO\n" "K2OQA\n" "K2OS\n" "K2OVS\n" "K2OWE\n" "K2OWR\n" "K2PF\n" "K2PGB\n" "K2PH\n" "K2PK\n" "K2PLF\n" "K2PO\n" "K2PO/7\n" "K2PS\n" "K2PSD\n" "K2PW\n" "K2QD\n" "K2QDY\n" "K2QMF\n" "K2QNU\n" "K2QO\n" "K2QPN\n" "K2QQ\n" "K2QY\n" "K2RB\n" "K2RD\n" "K2RDX\n" "K2RED\n" "K2RET\n" "K2RI\n" "K2RIG\n" "K2RMA\n" "K2RNY\n" "K2RP\n" "K2RPC\n" "K2RR\n" "K2RRV\n" "K2RS\n" "K2RSB\n" "K2RSK\n" "K2SA\n" "K2SAX\n" "K2SD\n" "K2SFS\n" "K2SG\n" "K2SGH\n" "K2SHZ\n" "K2SI\n" "K2SJ\n" "K2SLZ\n" "K2SM\n" "K2SMC\n" "K2SQS\n" "K2SR\n" "K2SS\n" "K2STO\n" "K2SX\n" "K2SZ\n" "K2TB\n" "K2TD\n" "K2TE\n" "K2TGI\n" "K2TGW\n" "K2TJ\n" "K2TJJ\n" "K2TL\n" "K2TO\n" "K2TQC\n" "K2TR\n" "K2TT\n" "K2TTT\n" "K2TV\n" "K2TVY\n" "K2TW\n" "K2TWI\n" "K2TWK\n" "K2TZ\n" "K2UC\n" "K2UF\n" "K2UFT\n" "K2ULF\n" "K2UM\n" "K2UO\n" "K2UOP\n" "K2UR\n" "K2UT\n" "K2UTC\n" "K2UU\n" "K2UV\n" "K2UX\n" "K2UY\n" "K2VCO\n" "K2VNS\n" "K2VPX\n" "K2VUI\n" "K2VV\n" "K2VX\n" "K2VY\n" "K2VZ\n" "K2WCT\n" "K2WG\n" "K2WH\n" "K2WK\n" "K2WO\n" "K2WOP\n" "K2WR\n" "K2WU\n" "K2XA\n" "K2XB\n" "K2XC\n" "K2XE\n" "K2XF\n" "K2XN\n" "K2XR\n" "K2XT\n" "K2XX\n" "K2YEH\n" "K2YG\n" "K2YR\n" "K2YY\n" "K2YYD\n" "K2YZO\n" "K2ZB\n" "K2ZC\n" "K2ZF\n" "K2ZJ\n" "K2ZQ\n" "K2ZR\n" "K2ZR/4\n" "K2ZS\n" "K2ZVI\n" "K3AFR\n" "K3AJ\n" "K3AN\n" "K3AQ\n" "K3ARK\n" "K3ASK\n" "K3ATO\n" "K3AU\n" "K3BBB\n" "K3BDI\n" "K3BEQ\n" "K3BEV\n" "K3BFQ\n" "K3BHX\n" "K3BSY\n" "K3BTK\n" "K3BU\n" "K3BVQ\n" "K3BVU\n" "K3BYU\n" "K3BZ\n" "K3CB\n" "K3CDQ\n" "K3CKT\n" "K3CO\n" "K3CQ\n" "K3CR\n" "K3CSL\n" "K3CT\n" "K3CXB\n" "K3DCW\n" "K3DE\n" "K3DI\n" "K3DJ\n" "K3DMG\n" "K3DNE\n" "K3DOS\n" "K3DQ\n" "K3DQB\n" "K3DYU\n" "K3EE\n" "K3EIN\n" "K3EL\n" "K3EP\n" "K3ERN\n" "K3EST\n" "K3FGO\n" "K3FH\n" "K3FH/4\n" "K3FIV\n" "K3FN\n" "K3FOP\n" "K3FP\n" "K3FS\n" "K3FT\n" "K3FWG\n" "K3FXR\n" "K3GC\n" "K3GEG\n" "K3GEN\n" "K3GEV\n" "K3GGN\n" "K3GHH\n" "K3GK\n" "K3GM\n" "K3GMT\n" "K3GP\n" "K3GP/8\n" "K3GW\n" "K3GWK\n" "K3GY\n" "K3GYS\n" "K3HH\n" "K3HP\n" "K3HR\n" "K3HX\n" "K3HY\n" "K3IA\n" "K3IE\n" "K3II\n" "K3IPK\n" "K3ISH\n" "K3IU\n" "K3IVO\n" "K3IXD\n" "K3IXD/4\n" "K3IZ\n" "K3JA\n" "K3JD\n" "K3JHT\n" "K3JJG\n" "K3JLM\n" "K3JMH\n" "K3JPW\n" "K3JRR\n" "K3JT\n" "K3JT/8\n" "K3JVB\n" "K3JWI\n" "K3JXO\n" "K3KE\n" "K3KK\n" "K3KN\n" "K3KNL\n" "K3KO\n" "K3KU\n" "K3LA\n" "K3LAB\n" "K3LB\n" "K3LJ\n" "K3LL\n" "K3LMR\n" "K3LP\n" "K3LPP\n" "K3LR\n" "K3LRH\n" "K3LS\n" "K3LU\n" "K3LUE\n" "K3MD\n" "K3MI\n" "K3MIM\n" "K3MIY\n" "K3MJ\n" "K3MJW\n" "K3MKZ\n" "K3MLT\n" "K3MM\n" "K3MOT\n" "K3MOV\n" "K3MQ\n" "K3MQP\n" "K3MRG\n" "K3MRK\n" "K3MSB\n" "K3MZ\n" "K3NA\n" "K3NC\n" "K3NCO\n" "K3ND\n" "K3NF\n" "K3NK\n" "K3NL\n" "K3NM\n" "K3NQV\n" "K3NRK\n" "K3NUI\n" "K3OD\n" "K3OK\n" "K3OMG\n" "K3OMI\n" "K3OMI/VE1\n" "K3ONW\n" "K3OO\n" "K3OOO\n" "K3OQ\n" "K3OQF\n" "K3ORS\n" "K3OSO\n" "K3OX\n" "K3PF\n" "K3PG\n" "K3PH\n" "K3PIN\n" "K3PP\n" "K3PSP\n" "K3PT\n" "K3PU\n" "K3PUR\n" "K3QDV\n" "K3QE\n" "K3QF\n" "K3QIA\n" "K3QT\n" "K3QX\n" "K3RA\n" "K3RCW\n" "K3RDA\n" "K3RH\n" "K3RJG\n" "K3RMB\n" "K3RN\n" "K3RNZ\n" "K3RR\n" "K3RSJ\n" "K3RU\n" "K3RV\n" "K3RWN\n" "K3RY\n" "K3SAE\n" "K3SEW\n" "K3SF\n" "K3SKB\n" "K3SOM\n" "K3STX\n" "K3SUI\n" "K3SV\n" "K3SWZ\n" "K3SX\n" "K3SXA\n" "K3TC\n" "K3TD\n" "K3TEJ\n" "K3TLP\n" "K3TM\n" "K3TN\n" "K3TP\n" "K3TRM\n" "K3TUF\n" "K3TW\n" "K3TW/4\n" "K3TX\n" "K3UA\n" "K3UC\n" "K3UD\n" "K3UG\n" "K3UI\n" "K3UK\n" "K3UL\n" "K3USC\n" "K3UU\n" "K3UV\n" "K3VA\n" "K3VAR\n" "K3VAT\n" "K3VED\n" "K3VIG\n" "K3VIN\n" "K3VJ\n" "K3VN\n" "K3VOA\n" "K3VX\n" "K3WA\n" "K3WC\n" "K3WD\n" "K3WGR\n" "K3WI\n" "K3WJV\n" "K3WM\n" "K3WT\n" "K3WU\n" "K3WW\n" "K3WWP\n" "K3XA\n" "K3XO\n" "K3YDX\n" "K3YG\n" "K3YH\n" "K3YP\n" "K3ZA\n" "K3ZJ\n" "K3ZM\n" "K3ZMJ\n" "K3ZO\n" "K3ZQ\n" "K3ZV\n" "K3ZXL\n" "K3ZZ\n" "K4AAB\n" "K4AAZ\n" "K4AB\n" "K4ACG\n" "K4ADI\n" "K4ADJ\n" "K4ADR\n" "K4ADU\n" "K4ADV\n" "K4AEN\n" "K4AG\n" "K4AGT\n" "K4AL\n" "K4ALE\n" "K4AMC\n" "K4AMI\n" "K4AMW\n" "K4AOC\n" "K4AP\n" "K4APG\n" "K4ARC\n" "K4ARL\n" "K4ARO\n" "K4AU\n" "K4AUX\n" "K4AVF\n" "K4AVU\n" "K4AVX\n" "K4AWM\n" "K4AZV\n" "K4BAI\n" "K4BFT\n" "K4BM\n" "K4BN\n" "K4BNC\n" "K4BOE\n" "K4BP\n" "K4BQP\n" "K4BRI\n" "K4BSD\n" "K4BSK\n" "K4BTC\n" "K4BX\n" "K4BYF\n" "K4CA\n" "K4CC\n" "K4CEB\n" "K4CIA\n" "K4CIT\n" "K4CJB\n" "K4CJN\n" "K4CKD\n" "K4CMC\n" "K4CMS\n" "K4CNW\n" "K4CQB\n" "K4CQW\n" "K4CRM\n" "K4CU\n" "K4CUB\n" "K4CVL\n" "K4CWW\n" "K4CX\n" "K4CZ\n" "K4DAS\n" "K4DES\n" "K4DGJ\n" "K4DJ\n" "K4DJG\n" "K4DK\n" "K4DLG\n" "K4DLI\n" "K4DMH\n" "K4DPF\n" "K4DSP\n" "K4DVD\n" "K4DXA\n" "K4DXR\n" "K4DXU\n" "K4DXV\n" "K4DY\n" "K4DZR\n" "K4EA\n" "K4EAK\n" "K4EC\n" "K4ECP\n" "K4EDI\n" "K4EET\n" "K4EFZ\n" "K4EHI\n" "K4EHT\n" "K4EJ\n" "K4EJQ\n" "K4EOR\n" "K4ESA\n" "K4ESB\n" "K4EU\n" "K4EWG\n" "K4EYE\n" "K4EZY\n" "K4FAU\n" "K4FCC\n" "K4FCG\n" "K4FDS\n" "K4FJ\n" "K4FJW\n" "K4FK\n" "K4FO\n" "K4FOY\n" "K4FP\n" "K4FPF\n" "K4FRC\n" "K4FT\n" "K4FTO\n" "K4FV\n" "K4FW\n" "K4FX\n" "K4FXN\n" "K4FYM\n" "K4GBH\n" "K4GCD\n" "K4GCR\n" "K4GDW\n" "K4GHS\n" "K4GK\n" "K4GKD\n" "K4GM\n" "K4GMH\n" "K4GOP\n" "K4GSG\n" "K4GSO\n" "K4GT\n" "K4GTM\n" "K4HA\n" "K4HAL\n" "K4HFQ\n" "K4HGG\n" "K4HGX\n" "K4HJZ\n" "K4HMB\n" "K4HO\n" "K4HPP\n" "K4HQK\n" "K4HR\n" "K4HTA\n" "K4HTY\n" "K4HUD\n" "K4HV\n" "K4IA\n" "K4IB\n" "K4ICL\n" "K4ICY\n" "K4IDD\n" "K4IE\n" "K4IJ\n" "K4IJQ\n" "K4IN\n" "K4IOE\n" "K4IQJ\n" "K4IQJ/4\n" "K4IRI\n" "K4ISV\n" "K4IU\n" "K4IUD\n" "K4IX\n" "K4JAB\n" "K4JAF\n" "K4JBJ\n" "K4JC\n" "K4JEB\n" "K4JER\n" "K4JJF\n" "K4JJQ\n" "K4JK\n" "K4JLD\n" "K4JO\n" "K4JP\n" "K4JPC\n" "K4JPD\n" "K4JPG\n" "K4JPN\n" "K4JRA\n" "K4JRB\n" "K4JRS\n" "K4JSI\n" "K4JTT\n" "K4JUZ\n" "K4JVK\n" "K4JWF\n" "K4KAL\n" "K4KAY\n" "K4KBR\n" "K4KFN\n" "K4KG\n" "K4KGG\n" "K4KGT\n" "K4KIU\n" "K4KL\n" "K4KO\n" "K4KP\n" "K4KR\n" "K4KSR\n" "K4KTG\n" "K4KV\n" "K4KYY\n" "K4KZ\n" "K4KZO\n" "K4KZZ\n" "K4LA\n" "K4LJ\n" "K4LJA\n" "K4LNN\n" "K4LO\n" "K4LQ\n" "K4LRP\n" "K4LRP/2\n" "K4LRX\n" "K4LSU\n" "K4LT\n" "K4LTA\n" "K4LW\n" "K4LY\n" "K4MA\n" "K4MCG\n" "K4MCK\n" "K4MDX\n" "K4MEW\n" "K4MF\n" "K4MGA\n" "K4MIA\n" "K4MIL\n" "K4ML\n" "K4MM\n" "K4MNE\n" "K4MOA\n" "K4MOG\n" "K4MPE\n" "K4MQG\n" "K4MQM\n" "K4MSR\n" "K4MSS\n" "K4MU\n" "K4MWB\n" "K4MX\n" "K4MYA\n" "K4NAU\n" "K4NAX\n" "K4NFA\n" "K4NFX\n" "K4NIN\n" "K4NJK\n" "K4NKY\n" "K4NLL\n" "K4NNX\n" "K4NO\n" "K4NOP\n" "K4NP\n" "K4NTO\n" "K4NV\n" "K4NVA\n" "K4NVJ\n" "K4NYS\n" "K4OB\n" "K4OCE\n" "K4OD\n" "K4ODL\n" "K4OJ\n" "K4OMG\n" "K4OO\n" "K4ORD\n" "K4OSO\n" "K4PB\n" "K4PBY\n" "K4PDJ\n" "K4PDM\n" "K4PG\n" "K4PHE\n" "K4PI\n" "K4PIC\n" "K4PJ\n" "K4PPK\n" "K4PPQ\n" "K4PRO\n" "K4PRP\n" "K4PUF\n" "K4PV\n" "K4PX\n" "K4PZC\n" "K4QD\n" "K4QL\n" "K4QO\n" "K4QPL\n" "K4QU\n" "K4QVK\n" "K4QXX\n" "K4RAF\n" "K4RBA\n" "K4RCG\n" "K4RDU\n" "K4REB\n" "K4RFE\n" "K4RG\n" "K4RGR\n" "K4RH\n" "K4RKQ\n" "K4RLC\n" "K4RM\n" "K4RMC\n" "K4RO\n" "K4RR\n" "K4RRF\n" "K4RST\n" "K4RT\n" "K4RUM\n" "K4RV\n" "K4RW\n" "K4RWP\n" "K4RXR\n" "K4SAC\n" "K4SAV\n" "K4SAW\n" "K4SKB\n" "K4SKY\n" "K4SN\n" "K4SO\n" "K4SPO\n" "K4SQ\n" "K4SSU\n" "K4ST\n" "K4STN\n" "K4SUS\n" "K4SV\n" "K4SWE\n" "K4SWJ\n" "K4SX\n" "K4TB\n" "K4TCM\n" "K4TD\n" "K4TDW\n" "K4TEA\n" "K4TER\n" "K4TI\n" "K4TJD\n" "K4TMC\n" "K4TNN\n" "K4TNP\n" "K4TP\n" "K4TR\n" "K4TRT\n" "K4TS\n" "K4TSU\n" "K4TT\n" "K4TVE\n" "K4TVO\n" "K4TWJ\n" "K4TX\n" "K4TXJ\n" "K4TZ\n" "K4UB\n" "K4UEE\n" "K4UFT\n" "K4UI\n" "K4UK\n" "K4UTE\n" "K4UTI\n" "K4UU\n" "K4UWH\n" "K4UY\n" "K4VAC\n" "K4VCU\n" "K4VHV\n" "K4VIG\n" "K4VRC\n" "K4VT\n" "K4VV\n" "K4VWK\n" "K4VX\n" "K4VXR\n" "K4WAM\n" "K4WB\n" "K4WES\n" "K4WFM\n" "K4WI\n" "K4WIP\n" "K4WJR\n" "K4WLS\n" "K4WMS\n" "K4WNW\n" "K4WOP\n" "K4WP\n" "K4WPM\n" "K4WPY\n" "K4WQ\n" "K4WS\n" "K4WW\n" "K4WWM\n" "K4WY\n" "K4WZ\n" "K4XB\n" "K4XD\n" "K4XG\n" "K4XI\n" "K4XL\n" "K4XLT\n" "K4XR\n" "K4XTC\n" "K4XU\n" "K4XXX\n" "K4XZ\n" "K4YA\n" "K4YBB\n" "K4YCF\n" "K4YDN\n" "K4YFH\n" "K4YFR\n" "K4YGD\n" "K4YHB\n" "K4YJ\n" "K4YKZ\n" "K4YMQ\n" "K4YP\n" "K4YR\n" "K4YRK\n" "K4YT\n" "K4YYD\n" "K4YYL\n" "K4ZGB\n" "K4ZGV\n" "K4ZH\n" "K4ZIN\n" "K4ZIW\n" "K4ZJ\n" "K4ZLE\n" "K4ZMV\n" "K4ZOO\n" "K4ZRJ\n" "K4ZTL\n" "K4ZW\n" "K4ZYU\n" "K4ZZ\n" "K5AAD\n" "K5AB\n" "K5ACO\n" "K5ADA\n" "K5AEM\n" "K5AF\n" "K5AJK\n" "K5AM\n" "K5ANR\n" "K5AR\n" "K5ATS\n" "K5AUP\n" "K5AUW\n" "K5AV\n" "K5AVH\n" "K5AVY\n" "K5AX\n" "K5AY\n" "K5BAT\n" "K5BCN\n" "K5BDM\n" "K5BG\n" "K5BOC\n" "K5BTK\n" "K5BUD\n" "K5BWV\n" "K5BWV/0\n" "K5BZH\n" "K5CBS\n" "K5CFA\n" "K5CI\n" "K5CID\n" "K5CM\n" "K5CS\n" "K5CWC\n" "K5CX\n" "K5DB\n" "K5DD\n" "K5DEL\n" "K5DEY\n" "K5DF\n" "K5DH\n" "K5DHY\n" "K5DJZ\n" "K5DKH\n" "K5DMC\n" "K5DNL\n" "K5DOE\n" "K5DOG\n" "K5DU\n" "K5DWI\n" "K5EA\n" "K5ECI\n" "K5EEE\n" "K5EJ\n" "K5EK\n" "K5ENS\n" "K5ER\n" "K5ESW\n" "K5EUO\n" "K5EW\n" "K5EWJ\n" "K5EWS\n" "K5FA\n" "K5FG\n" "K5FMC\n" "K5FNQ\n" "K5FO\n" "K5FP\n" "K5FR\n" "K5FSE\n" "K5FUV\n" "K5FXB\n" "K5GA\n" "K5GAT\n" "K5GH\n" "K5GKC\n" "K5GM\n" "K5GMT\n" "K5GO\n" "K5GQ\n" "K5GS\n" "K5GVP\n" "K5GY\n" "K5GZR\n" "K5HCT\n" "K5HDU\n" "K5HDX\n" "K5HGX\n" "K5HK\n" "K5HQV\n" "K5HTE\n" "K5HUT\n" "K5HW\n" "K5HX\n" "K5ICW\n" "K5IFJ\n" "K5IID\n" "K5IS\n" "K5IU\n" "K5IX\n" "K5IX/KH6\n" "K5IZ\n" "K5IZO\n" "K5JAW\n" "K5JP\n" "K5JRN\n" "K5JRW\n" "K5JSW\n" "K5JTH\n" "K5JUC\n" "K5JX\n" "K5JYD\n" "K5KA\n" "K5KAB\n" "K5KC\n" "K5KDX\n" "K5KEE\n" "K5KG\n" "K5KJ\n" "K5KLA\n" "K5KM\n" "K5KS\n" "K5KT\n" "K5KT/6\n" "K5KUA\n" "K5KV\n" "K5KVN\n" "K5LAD\n" "K5LBM\n" "K5LBU\n" "K5LC\n" "K5LG\n" "K5LH\n" "K5LJ\n" "K5LRS\n" "K5LSU\n" "K5LU\n" "K5LXK\n" "K5MA\n" "K5MBA\n" "K5MDX\n" "K5ME\n" "K5MEZ\n" "K5MH\n" "K5ML\n" "K5MMH\n" "K5MO\n" "K5MOG\n" "K5MOZ\n" "K5MR\n" "K5MRM\n" "K5MV\n" "K5MVZ\n" "K5NA\n" "K5NAA\n" "K5ND\n" "K5NDB\n" "K5NDT\n" "K5NOF\n" "K5NOW\n" "K5NTT\n" "K5NU\n" "K5NX\n" "K5NZ\n" "K5OAI\n" "K5OG\n" "K5OI\n" "K5OO\n" "K5OOL\n" "K5OR\n" "K5OVW\n" "K5PAR\n" "K5PAX\n" "K5PBR\n" "K5PC\n" "K5PEW\n" "K5PI\n" "K5PO\n" "K5PQ\n" "K5PSH\n" "K5PX\n" "K5QB\n" "K5QBG\n" "K5QEA\n" "K5QED\n" "K5QJ\n" "K5QNK\n" "K5QQ\n" "K5QR\n" "K5QU\n" "K5QX\n" "K5QXJ\n" "K5QY\n" "K5RA\n" "K5RC\n" "K5RCD\n" "K5RHZ\n" "K5RJI\n" "K5RK\n" "K5RN\n" "K5RNB\n" "K5RQ\n" "K5RR\n" "K5RRD\n" "K5RS\n" "K5RT\n" "K5RX\n" "K5RXQ\n" "K5SEE\n" "K5SF\n" "K5SI\n" "K5SL\n" "K5SM\n" "K5SNA\n" "K5SOG\n" "K5SOR\n" "K5SS\n" "K5STZ\n" "K5SUL\n" "K5SWW\n" "K5TA\n" "K5TC\n" "K5TDA\n" "K5TER\n" "K5TF\n" "K5TFA\n" "K5TGS\n" "K5TKY\n" "K5TQ\n" "K5TQP\n" "K5TR\n" "K5TRM\n" "K5TT\n" "K5TTT\n" "K5TVC\n" "K5TXG\n" "K5UA\n" "K5UC\n" "K5UIC\n" "K5UN\n" "K5UO\n" "K5UR\n" "K5UTG\n" "K5UV\n" "K5UZ\n" "K5VIP\n" "K5VJZ\n" "K5VR\n" "K5VRX\n" "K5VU\n" "K5VUY\n" "K5VYT\n" "K5WA\n" "K5WAF\n" "K5WBM\n" "K5WDW\n" "K5WE\n" "K5WES\n" "K5WI\n" "K5WK\n" "K5WLQ\n" "K5WMH\n" "K5WMH/5\n" "K5WNH\n" "K5WO\n" "K5WPN\n" "K5WQG\n" "K5WSC\n" "K5WTA\n" "K5WW\n" "K5XA\n" "K5XG\n" "K5XH\n" "K5XM\n" "K5XR\n" "K5XRF\n" "K5XT\n" "K5XU\n" "K5XY\n" "K5YA\n" "K5YAA\n" "K5YC\n" "K5YCM\n" "K5YG\n" "K5YM\n" "K5YNZ\n" "K5YU\n" "K5ZCJ\n" "K5ZD\n" "K5ZE\n" "K5ZG\n" "K5ZK\n" "K5ZO\n" "K5ZQ\n" "K6AA\n" "K6AAB\n" "K6AAX\n" "K6ACJ\n" "K6AH\n" "K6AHQ\n" "K6AIA\n" "K6AIM\n" "K6AKR\n" "K6ALE\n" "K6AM\n" "K6AN\n" "K6ANP\n" "K6AO\n" "K6AQL\n" "K6AUC\n" "K6AW\n" "K6AWB\n" "K6AWO\n" "K6AWR\n" "K6BBQ\n" "K6BDK\n" "K6BEW\n" "K6BF\n" "K6BHH\n" "K6BIR\n" "K6BJ\n" "K6BL\n" "K6BR\n" "K6BRA\n" "K6BV\n" "K6BY\n" "K6BZS\n" "K6CDJ\n" "K6CF\n" "K6CO\n" "K6CRC\n" "K6CSL\n" "K6CSL/7\n" "K6CTA\n" "K6CU\n" "K6DAJ\n" "K6DBG\n" "K6DBS\n" "K6DBW\n" "K6DEX\n" "K6DF\n" "K6DGW\n" "K6DK\n" "K6DLC\n" "K6DLV\n" "K6DW\n" "K6DXX\n" "K6DY\n" "K6ED\n" "K6EE\n" "K6EEE\n" "K6EEP\n" "K6EGF\n" "K6EI\n" "K6EL\n" "K6ELE\n" "K6EM\n" "K6EMI\n" "K6EP\n" "K6ERT\n" "K6ETM\n" "K6EU\n" "K6EVR\n" "K6EZ\n" "K6FAF\n" "K6FFY\n" "K6FG\n" "K6FI\n" "K6FO\n" "K6FQ\n" "K6FR\n" "K6FW\n" "K6FX\n" "K6GAK\n" "K6GCN\n" "K6GDP\n" "K6GE\n" "K6GEP\n" "K6GFB\n" "K6GFJ\n" "K6GGO\n" "K6GJ\n" "K6GN\n" "K6GO\n" "K6GPB\n" "K6GRD\n" "K6GRJ\n" "K6GT\n" "K6GVG\n" "K6GXO\n" "K6GYL\n" "K6GZA\n" "K6HCJ\n" "K6HFA\n" "K6HGF\n" "K6HJM\n" "K6HL\n" "K6HNZ\n" "K6HP\n" "K6HR\n" "K6HRT\n" "K6HRU\n" "K6IAM\n" "K6IC\n" "K6IDX\n" "K6IF\n" "K6IFF\n" "K6III\n" "K6IMZ\n" "K6IP\n" "K6IT\n" "K6JAJ\n" "K6JAT\n" "K6JEB\n" "K6JEY\n" "K6JF\n" "K6JGM\n" "K6JH\n" "K6JHD\n" "K6JHL\n" "K6JHX\n" "K6JJ\n" "K6JL\n" "K6JRA\n" "K6JRY\n" "K6JS\n" "K6JSV\n" "K6JW\n" "K6JWB\n" "K6JYG\n" "K6KAL\n" "K6KE\n" "K6KII\n" "K6KK\n" "K6KLY\n" "K6KO\n" "K6KQV\n" "K6KR\n" "K6KR/7\n" "K6KRD\n" "K6KV\n" "K6KW\n" "K6KY\n" "K6KYJ\n" "K6LA\n" "K6LAC\n" "K6LE\n" "K6LG\n" "K6LJC\n" "K6LL\n" "K6LMN\n" "K6LPO\n" "K6LQP\n" "K6LRG\n" "K6LRN\n" "K6LX\n" "K6LZ\n" "K6MB\n" "K6MBY\n" "K6MC\n" "K6MDJ\n" "K6ME\n" "K6MEE\n" "K6MI\n" "K6MJ\n" "K6MKF\n" "K6ML\n" "K6MLF\n" "K6MM\n" "K6MYC\n" "K6NA\n" "K6ND\n" "K6NDG\n" "K6NDV\n" "K6NO\n" "K6NOD\n" "K6NQY\n" "K6NR\n" "K6NUG\n" "K6NV\n" "K6OA\n" "K6OGO\n" "K6OI\n" "K6OJ\n" "K6OKW\n" "K6OM\n" "K6OO\n" "K6OP\n" "K6OQ\n" "K6OY\n" "K6PAU\n" "K6PB\n" "K6PBQ\n" "K6PCQ\n" "K6PJ\n" "K6PKT\n" "K6PUD\n" "K6PZB\n" "K6QAX\n" "K6QD\n" "K6QG\n" "K6QK\n" "K6QU\n" "K6RAD\n" "K6RB\n" "K6RBS\n" "K6RC\n" "K6REF\n" "K6RF\n" "K6RFM\n" "K6RG\n" "K6RIM\n" "K6RJ\n" "K6RJP\n" "K6RJY\n" "K6RM\n" "K6RN\n" "K6RNK\n" "K6RR\n" "K6RRA\n" "K6RTC\n" "K6RV\n" "K6SAT\n" "K6SEM\n" "K6SGH\n" "K6SMF\n" "K6SMO\n" "K6SQL\n" "K6SRA\n" "K6SRZ\n" "K6SSJ\n" "K6ST\n" "K6STA\n" "K6SU\n" "K6SV\n" "K6SXA\n" "K6SY\n" "K6TA\n" "K6TD\n" "K6TI\n" "K6TQM\n" "K6TTT\n" "K6TU\n" "K6TUJ\n" "K6TV\n" "K6UD\n" "K6UF\n" "K6UFO\n" "K6UIZ\n" "K6UM\n" "K6UNR\n" "K6UNT\n" "K6UUW\n" "K6UW\n" "K6UZB\n" "K6VAR\n" "K6VFF\n" "K6VIA\n" "K6VMD\n" "K6VMN\n" "K6VMV\n" "K6VNX\n" "K6VO\n" "K6VOA\n" "K6VRS\n" "K6VUG\n" "K6VVA\n" "K6VVK\n" "K6VWL\n" "K6WAC\n" "K6WC\n" "K6WG\n" "K6WH\n" "K6WRJ\n" "K6WS\n" "K6WSC\n" "K6WV\n" "K6WX\n" "K6WY\n" "K6XC\n" "K6XJ\n" "K6XM\n" "K6XN\n" "K6XT\n" "K6XV\n" "K6XX\n" "K6YA\n" "K6YK\n" "K6YLG\n" "K6YP\n" "K6YR\n" "K6YRA\n" "K6YS\n" "K6YT\n" "K6YUI\n" "K6YV\n" "K6ZB\n" "K6ZCL\n" "K6ZH\n" "K6ZM\n" "K6ZRH\n" "K6ZSR\n" "K6ZTA\n" "K6ZZ\n" "K7AA\n" "K7AAE\n" "K7ABC\n" "K7ABL\n" "K7ABV\n" "K7ACS\n" "K7ACZ\n" "K7AED\n" "K7AMS\n" "K7AO\n" "K7AR\n" "K7ARJ\n" "K7AWB\n" "K7BAN\n" "K7BBR\n" "K7BE\n" "K7BG\n" "K7BHM\n" "K7BIG\n" "K7BLS\n" "K7BNY\n" "K7BTW\n" "K7BUD\n" "K7BX\n" "K7CA\n" "K7CAT\n" "K7CCC\n" "K7CF\n" "K7CMR\n" "K7CMZ\n" "K7CS\n" "K7CTR\n" "K7CU\n" "K7DAA\n" "K7DBU\n" "K7DD\n" "K7DHD\n" "K7DNH\n" "K7DPS\n" "K7DR\n" "K7DRA\n" "K7DS\n" "K7DSE\n" "K7DSL\n" "K7DX\n" "K7DZ\n" "K7EA\n" "K7EAR\n" "K7EDX\n" "K7EG\n" "K7EIQ\n" "K7EKM\n" "K7EM\n" "K7ENA\n" "K7EUG\n" "K7EV\n" "K7EY\n" "K7FA\n" "K7FD\n" "K7FED\n" "K7FF\n" "K7FU\n" "K7GA\n" "K7GGG\n" "K7GIM\n" "K7GK\n" "K7GLM\n" "K7GMF\n" "K7GO\n" "K7GQ\n" "K7GS\n" "K7GSE\n" "K7GT\n" "K7GUS\n" "K7GZP\n" "K7HBN\n" "K7HC\n" "K7HD\n" "K7HIL\n" "K7HP\n" "K7HPH\n" "K7HPT\n" "K7HRT\n" "K7HV\n" "K7IA\n" "K7IB\n" "K7IDX\n" "K7IDX/7\n" "K7IE\n" "K7II\n" "K7IK\n" "K7INA\n" "K7IP\n" "K7IR\n" "K7IWH\n" "K7JA\n" "K7JAN\n" "K7JBQ\n" "K7JCA\n" "K7JE\n" "K7JH\n" "K7JI\n" "K7JIZ\n" "K7JJ\n" "K7JLF\n" "K7JNX\n" "K7JPF\n" "K7JQ\n" "K7JRB\n" "K7JRW\n" "K7JSM\n" "K7KAJ\n" "K7KAR\n" "K7KC\n" "K7KF\n" "K7KJ\n" "K7KMR\n" "K7KMS\n" "K7KR\n" "K7KSO\n" "K7KU\n" "K7LAY\n" "K7LAZ\n" "K7LFY\n" "K7LJ\n" "K7LL\n" "K7LNP\n" "K7LR\n" "K7LTF\n" "K7LU\n" "K7LUH\n" "K7LV\n" "K7LY\n" "K7MDH\n" "K7MH\n" "K7MHI\n" "K7MI\n" "K7MJD\n" "K7MM\n" "K7MM/VE2\n" "K7MO\n" "K7MOA\n" "K7MRU\n" "K7MS\n" "K7MTR\n" "K7MY\n" "K7MZ\n" "K7NAA\n" "K7NCG\n" "K7NEJ\n" "K7NFB\n" "K7NJ\n" "K7NK\n" "K7NM\n" "K7NN\n" "K7NNR\n" "K7NV\n" "K7NWM\n" "K7NWR\n" "K7NWS\n" "K7OA\n" "K7OG\n" "K7OM\n" "K7OM/4\n" "K7ON\n" "K7ONP\n" "K7ORY\n" "K7OV\n" "K7OVG\n" "K7OVM\n" "K7OVW\n" "K7OX\n" "K7PAP\n" "K7PDW\n" "K7PGL\n" "K7PI\n" "K7PJT\n" "K7PKT\n" "K7PMK\n" "K7PRW\n" "K7PU\n" "K7PUC\n" "K7PWL\n" "K7PWN\n" "K7PX\n" "K7QBO\n" "K7QI\n" "K7QMM\n" "K7QQ\n" "K7QXG\n" "K7QYY\n" "K7RB\n" "K7RDG\n" "K7RE\n" "K7RE/0\n" "K7REL\n" "K7RF\n" "K7RFW\n" "K7RI\n" "K7RL\n" "K7RLD\n" "K7RLF\n" "K7RMJ\n" "K7RP\n" "K7RR\n" "K7RSM\n" "K7RST\n" "K7RX\n" "K7RZW\n" "K7SA\n" "K7SAM\n" "K7SC\n" "K7SCX\n" "K7SDW\n" "K7SEX\n" "K7SF\n" "K7SFN\n" "K7SID\n" "K7SJ\n" "K7SKH\n" "K7SMW\n" "K7SO\n" "K7SP\n" "K7SS\n" "K7STU\n" "K7SU\n" "K7SV\n" "K7SX\n" "K7SYS\n" "K7SZ\n" "K7SZ/4\n" "K7TD\n" "K7TFY\n" "K7TJ\n" "K7TJR\n" "K7TLX\n" "K7TM\n" "K7TOK\n" "K7TP\n" "K7TPD\n" "K7TQ\n" "K7TR\n" "K7TR/HR8\n" "K7TRK\n" "K7UA\n" "K7ULS\n" "K7UN\n" "K7UNZ\n" "K7UP\n" "K7UPJ\n" "K7UT\n" "K7VAY\n" "K7VI\n" "K7VIC\n" "K7VIT\n" "K7VL\n" "K7VM\n" "K7VS\n" "K7VU\n" "K7VZX\n" "K7WA\n" "K7WE\n" "K7WIN\n" "K7WK\n" "K7WLF\n" "K7WLF/4\n" "K7WM\n" "K7WP\n" "K7WQ\n" "K7WXO\n" "K7WXW\n" "K7XB\n" "K7XC\n" "K7XE\n" "K7XH\n" "K7XQ\n" "K7XV\n" "K7YDL\n" "K7YZ\n" "K7YZO\n" "K7ZA\n" "K7ZAD\n" "K7ZB\n" "K7ZD\n" "K7ZI\n" "K7ZO\n" "K7ZP\n" "K7ZQ\n" "K7ZS\n" "K7ZSD\n" "K7ZUM\n" "K7ZV\n" "K7ZX\n" "K7ZYV\n" "K7ZZ\n" "K7ZZX\n" "K8AA\n" "K8AAX\n" "K8AB\n" "K8AC\n" "K8AE\n" "K8AEX\n" "K8AJS\n" "K8AJX\n" "K8ALM\n" "K8AO\n" "K8AQM\n" "K8ATA\n" "K8AZ\n" "K8BB\n" "K8BBE\n" "K8BCK\n" "K8BEG\n" "K8BHU\n" "K8BJ\n" "K8BL\n" "K8BN\n" "K8BSW\n" "K8BUF\n" "K8BVY\n" "K8BZ\n" "K8CAA\n" "K8CAR\n" "K8CC\n" "K8CHR\n" "K8CI\n" "K8CJQ\n" "K8CJY\n" "K8CMO\n" "K8CMR\n" "K8CN\n" "K8CQ\n" "K8CR\n" "K8CV\n" "K8CW\n" "K8CX\n" "K8CXM\n" "K8DAR\n" "K8DD\n" "K8DE\n" "K8DID\n" "K8DJC\n" "K8DJR\n" "K8DO\n" "K8DR\n" "K8DSL\n" "K8DSS\n" "K8DTW\n" "K8DV\n" "K8ED\n" "K8EE\n" "K8EEW\n" "K8EG\n" "K8EHB\n" "K8EHE\n" "K8EJ\n" "K8EM\n" "K8EMS\n" "K8EO\n" "K8ESQ\n" "K8EUR\n" "K8FB\n" "K8FC\n" "K8FF\n" "K8FG\n" "K8FH\n" "K8FL\n" "K8FN\n" "K8FP\n" "K8FUN\n" "K8FX\n" "K8GA\n" "K8GG\n" "K8GI\n" "K8GI/4\n" "K8GIM\n" "K8GL\n" "K8GLS\n" "K8GP\n" "K8GT\n" "K8GU\n" "K8GVK\n" "K8GVQ\n" "K8GW\n" "K8GWU\n" "K8HGY\n" "K8HK\n" "K8HLQ\n" "K8HMS\n" "K8HW\n" "K8HWW\n" "K8IA\n" "K8IAT\n" "K8IFK\n" "K8IJ\n" "K8IKW\n" "K8IR\n" "K8IRC\n" "K8ISK\n" "K8IU\n" "K8IY\n" "K8JA\n" "K8JD\n" "K8JK\n" "K8JLB\n" "K8JQ\n" "K8JRG\n" "K8JRM\n" "K8JWT\n" "K8KF\n" "K8KFJ\n" "K8KHZ\n" "K8KI\n" "K8KPE\n" "K8KPU\n" "K8KR\n" "K8KS\n" "K8KU\n" "K8KWT\n" "K8KY\n" "K8LCR\n" "K8LE\n" "K8LEE\n" "K8LES\n" "K8LF\n" "K8LJ\n" "K8LJK\n" "K8LN\n" "K8LSB\n" "K8LTG\n" "K8LV\n" "K8LY\n" "K8MAD\n" "K8MAJ\n" "K8MCN\n" "K8MD\n" "K8ME\n" "K8MEG\n" "K8MEM\n" "K8MFO\n" "K8MGK\n" "K8MJZ\n" "K8MLM\n" "K8MM\n" "K8MN\n" "K8MP\n" "K8MR\n" "K8MSQ\n" "K8MU\n" "K8MV\n" "K8MVZ\n" "K8MW\n" "K8MWO\n" "K8MXC\n" "K8MZ\n" "K8NA\n" "K8NAP\n" "K8ND\n" "K8NHR\n" "K8NI\n" "K8NK\n" "K8NKQ\n" "K8NMG\n" "K8NNU\n" "K8NOW\n" "K8NOZ\n" "K8NU\n" "K8NVR\n" "K8NW\n" "K8NWD\n" "K8NYG\n" "K8NYM\n" "K8NYY\n" "K8NZ\n" "K8OM\n" "K8OOK\n" "K8OQL\n" "K8OSF\n" "K8OT\n" "K8OWL\n" "K8OZ\n" "K8PG\n" "K8PO\n" "K8PP\n" "K8PVD\n" "K8PWL\n" "K8QF\n" "K8QFH\n" "K8QH\n" "K8QI\n" "K8QJO\n" "K8QKY\n" "K8QM\n" "K8QWY\n" "K8RA\n" "K8RAT\n" "K8RD\n" "K8RDJ\n" "K8RDN\n" "K8RGM\n" "K8RJH\n" "K8RJM\n" "K8RJW\n" "K8RMC\n" "K8RNM\n" "K8ROX\n" "K8RS\n" "K8RWL\n" "K8RYU\n" "K8SAK\n" "K8SB\n" "K8SCH\n" "K8SDK\n" "K8SDX\n" "K8SEM\n" "K8SIA\n" "K8SIX\n" "K8SJE\n" "K8SM\n" "K8SN\n" "K8SSB\n" "K8SVT\n" "K8SWD\n" "K8SYH\n" "K8THU\n" "K8TJM\n" "K8TOM\n" "K8TS\n" "K8TV\n" "K8TVD\n" "K8TW\n" "K8TWA\n" "K8UC\n" "K8UP\n" "K8UPG\n" "K8UPR\n" "K8UT\n" "K8UU\n" "K8UV\n" "K8VFR\n" "K8VFV\n" "K8VKA\n" "K8VUS\n" "K8VW\n" "K8VYA\n" "K8VZD\n" "K8WAY\n" "K8WDN\n" "K8WDQ\n" "K8WFL\n" "K8WHA\n" "K8WV\n" "K8YAH\n" "K8YC\n" "K8YFM\n" "K8YM\n" "K8YN\n" "K8YQR\n" "K8YSE\n" "K8YSU\n" "K8YTO\n" "K8ZBY\n" "K8ZEE\n" "K8ZH\n" "K8ZOG\n" "K8ZPR\n" "K8ZT\n" "K8ZTT\n" "K8ZZ\n" "K8ZZU\n" "K8ZZU/4\n" "K8ZZV\n" "K9ACX\n" "K9ADL\n" "K9AGW\n" "K9AHH\n" "K9AIH\n" "K9AJ\n" "K9ALP\n" "K9ANF\n" "K9ARF\n" "K9AU\n" "K9AUB\n" "K9AW\n" "K9AY\n" "K9BF\n" "K9BGL\n" "K9BJM\n" "K9BQL\n" "K9BTQ\n" "K9BWI\n" "K9BWQ\n" "K9CAN\n" "K9CC\n" "K9CG\n" "K9CGD\n" "K9CHP\n" "K9CHZ\n" "K9CIV\n" "K9CJ\n" "K9CS\n" "K9CT\n" "K9CU\n" "K9CW\n" "K9DA\n" "K9DCV\n" "K9DCW\n" "K9DIG\n" "K9DJ\n" "K9DN\n" "K9DR\n" "K9DT\n" "K9DTC\n" "K9DU\n" "K9DUR\n" "K9DX\n" "K9DXA\n" "K9DXL\n" "K9DY\n" "K9EA\n" "K9EBY\n" "K9EE\n" "K9EIF\n" "K9EMG\n" "K9EN\n" "K9ES\n" "K9EU\n" "K9EZ\n" "K9FBI\n" "K9FEN\n" "K9FF\n" "K9FI\n" "K9FMX\n" "K9FN\n" "K9FO\n" "K9FQC\n" "K9FUA\n" "K9FW\n" "K9FWH\n" "K9FY\n" "K9FZ\n" "K9GA\n" "K9GAJ\n" "K9GDT\n" "K9GLN\n" "K9GS\n" "K9GTH\n" "K9GTO\n" "K9GWB\n" "K9GY\n" "K9GYI\n" "K9HCK\n" "K9HN\n" "K9HUY\n" "K9IA\n" "K9IAC\n" "K9IDQ\n" "K9IDX\n" "K9IG\n" "K9IJ\n" "K9IL\n" "K9IMM\n" "K9ING\n" "K9IT\n" "K9IU\n" "K9IUA\n" "K9IUQ\n" "K9JA\n" "K9JAI\n" "K9JDV\n" "K9JE\n" "K9JF\n" "K9JF/7\n" "K9JG\n" "K9JIG\n" "K9JK\n" "K9JM\n" "K9JM/6\n" "K9JMB\n" "K9JO\n" "K9JOB\n" "K9JP\n" "K9JS\n" "K9JT\n" "K9JU\n" "K9JWI\n" "K9JWV\n" "K9JX\n" "K9JY\n" "K9JZZ\n" "K9KA\n" "K9KDE\n" "K9KDS\n" "K9KEJ\n" "K9KEU\n" "K9KFR\n" "K9KHW\n" "K9KK\n" "K9KL\n" "K9KLR\n" "K9KM\n" "K9KMD\n" "K9KNW\n" "K9KNZ\n" "K9KR\n" "K9KU\n" "K9KUZ\n" "K9LA\n" "K9LCR\n" "K9LGM\n" "K9LJ\n" "K9LJN\n" "K9LLI\n" "K9LOF\n" "K9LOF/5\n" "K9LZJ\n" "K9MA\n" "K9MBQ\n" "K9MDK\n" "K9MDO\n" "K9MI\n" "K9MK\n" "K9MM\n" "K9MMS\n" "K9MOT\n" "K9MQ\n" "K9MRD\n" "K9MU\n" "K9MUG\n" "K9MUG/4\n" "K9MV\n" "K9MW\n" "K9MWM\n" "K9MY\n" "K9NA\n" "K9NB\n" "K9NBR\n" "K9NN\n" "K9NO\n" "K9NR\n" "K9NU\n" "K9NW\n" "K9NZ\n" "K9OKK\n" "K9OM\n" "K9ON\n" "K9OQ\n" "K9OR\n" "K9OT\n" "K9OW\n" "K9OZ\n" "K9PG\n" "K9PGC\n" "K9PJ\n" "K9PLX\n" "K9PMV\n" "K9PPY\n" "K9PY\n" "K9QCW\n" "K9QH\n" "K9QLC\n" "K9QVB\n" "K9QVB/9\n" "K9RCE\n" "K9RDW\n" "K9RH\n" "K9RII\n" "K9RIM\n" "K9RJ\n" "K9RJO\n" "K9RJZ\n" "K9RM\n" "K9RO\n" "K9RON\n" "K9RS\n" "K9RU\n" "K9RX\n" "K9SD\n" "K9SE\n" "K9SEM\n" "K9SEX\n" "K9SG\n" "K9SH\n" "K9SKX\n" "K9SQL\n" "K9SSB\n" "K9SSH\n" "K9STH\n" "K9SUH\n" "K9SV\n" "K9TA\n" "K9TCD\n" "K9TEN\n" "K9TM\n" "K9TP\n" "K9TPT\n" "K9TRV\n" "K9TV\n" "K9TY\n" "K9UH\n" "K9UIY\n" "K9UK\n" "K9UP\n" "K9UQN\n" "K9US\n" "K9UT\n" "K9UW\n" "K9UWA\n" "K9UXZ\n" "K9VB\n" "K9VFU\n" "K9VIC\n" "K9VIS\n" "K9VS\n" "K9VSO\n" "K9VV\n" "K9WA\n" "K9WD\n" "K9WDY\n" "K9WEY\n" "K9WIS\n" "K9WJL\n" "K9WJU\n" "K9WKW\n" "K9WMS\n" "K9WN\n" "K9WWT\n" "K9WX\n" "K9WYP\n" "K9WZB\n" "K9XB\n" "K9XD\n" "K9XE\n" "K9XK\n" "K9XL\n" "K9XR\n" "K9XV\n" "K9XW\n" "K9YC\n" "K9YKL\n" "K9YU\n" "K9ZA\n" "K9ZBX\n" "K9ZG\n" "K9ZI\n" "K9ZMD/6\n" "K9ZMU\n" "K9ZMZ\n" "K9ZO\n" "K9ZT\n" "K9ZU\n" "K9ZVZ\n" "K9ZW\n" "K9ZXO\n" "KA0ARA\n" "KA0BHO\n" "KA0BMX\n" "KA0BV\n" "KA0CSW\n" "KA0EIC\n" "KA0FSP\n" "KA0HDJ\n" "KA0HZP\n" "KA0LDG\n" "KA0LL\n" "KA0NES\n" "KA0P\n" "KA0PQW\n" "KA0SPM\n" "KA0UEH\n" "KA0UK\n" "KA0VXK\n" "KA1AMR\n" "KA1API\n" "KA1ARB\n" "KA1BQ\n" "KA1BVE\n" "KA1C\n" "KA1CQR\n" "KA1DWX\n" "KA1EFO\n" "KA1EHR\n" "KA1ERL\n" "KA1G\n" "KA1GEU\n" "KA1GIJ\n" "KA1GMN\n" "KA1GVI\n" "KA1GYB\n" "KA1HD\n" "KA1HFY\n" "KA1IE\n" "KA1IOR\n" "KA1IXK\n" "KA1J\n" "KA1JVR\n" "KA1JY\n" "KA1LDS\n" "KA1LMR\n" "KA1LOR\n" "KA1NCN\n" "KA1OEO\n" "KA1OX\n" "KA1QAA\n" "KA1QBO\n" "KA1R\n" "KA1RVM\n" "KA1SA\n" "KA1SAW\n" "KA1SWK\n" "KA1T\n" "KA1VF\n" "KA1VMG\n" "KA1VVT\n" "KA1XC\n" "KA1YB\n" "KA1YMX\n" "KA2ANF\n" "KA2BKG\n" "KA2BZS\n" "KA2CYN\n" "KA2D\n" "KA2DZR\n" "KA2EKI\n" "KA2EYH\n" "KA2F\n" "KA2FHN\n" "KA2FIR\n" "KA2GYM\n" "KA2IBE\n" "KA2IVS\n" "KA2KGP\n" "KA2KON\n" "KA2L\n" "KA2LIM\n" "KA2MGE\n" "KA2MGI\n" "KA2NDX\n" "KA2NUE\n" "KA2OUO\n" "KA2OUS\n" "KA2QWC\n" "KA2RQS\n" "KA2RVO\n" "KA2UGZ\n" "KA2VEE\n" "KA2VHY\n" "KA2YKN\n" "KA2ZOH\n" "KA3AFY\n" "KA3ANJ\n" "KA3ARF\n" "KA3BMU\n" "KA3BPN\n" "KA3BWP\n" "KA3CRC\n" "KA3DCO\n" "KA3DRR\n" "KA3EJJ\n" "KA3EQU\n" "KA3FZN\n" "KA3FZO\n" "KA3GEA\n" "KA3GLQ\n" "KA3IRJ\n" "KA3J\n" "KA3JLW\n" "KA3JOI\n" "KA3LKM\n" "KA3MLU\n" "KA3MTT\n" "KA3NRX\n" "KA3P\n" "KA3PCX\n" "KA3POX\n" "KA3PVA\n" "KA3QLF\n" "KA3S\n" "KA3SMF\n" "KA3UBG\n" "KA3UOL\n" "KA3WMJ\n" "KA3YJU\n" "KA4AQM\n" "KA4BDW\n" "KA4BIX\n" "KA4BSZ\n" "KA4DQJ\n" "KA4EMR\n" "KA4GFY\n" "KA4HKK\n" "KA4NWS\n" "KA4OTB\n" "KA4R\n" "KA4RRU\n" "KA4RUR\n" "KA4TEU\n" "KA4U\n" "KA4VGE\n" "KA4W\n" "KA4ZPF\n" "KA4ZTY\n" "KA5BNS\n" "KA5BQM\n" "KA5CJJ\n" "KA5DWI\n" "KA5EYH\n" "KA5FSJ\n" "KA5GCB\n" "KA5GIL\n" "KA5IAU\n" "KA5M\n" "KA5MWB\n" "KA5N\n" "KA5OAI\n" "KA5PRO\n" "KA5PVB\n" "KA5QMA\n" "KA5RAN\n" "KA5T\n" "KA5TCF\n" "KA5VEL\n" "KA5VFU\n" "KA5VVA\n" "KA5VZG\n" "KA5WSS\n" "KA5ZDE\n" "KA6BIM\n" "KA6C\n" "KA6CUU\n" "KA6DOW\n" "KA6GDT\n" "KA6HXI\n" "KA6JLT\n" "KA6MAL\n" "KA6MIB\n" "KA6NGR\n" "KA6PGY\n" "KA6SGT\n" "KA6T\n" "KA6UMQ\n" "KA6W\n" "KA7A\n" "KA7ARK\n" "KA7CVJ\n" "KA7FEF\n" "KA7HUO\n" "KA7JAS\n" "KA7KSP\n" "KA7KUZ\n" "KA7LYQ\n" "KA7NWQ\n" "KA7NYE\n" "KA7R\n" "KA7SPS\n" "KA7T\n" "KA7U\n" "KA8CNI\n" "KA8CPO\n" "KA8ETK\n" "KA8F\n" "KA8FAN\n" "KA8HOK\n" "KA8JHD\n" "KA8JRJ\n" "KA8KGW\n" "KA8LCW\n" "KA8NAK\n" "KA8NJW\n" "KA8POZ\n" "KA8PTT\n" "KA8Q\n" "KA8RTS\n" "KA8SYV\n" "KA8WEM\n" "KA8WQL\n" "KA8ZPE\n" "KA9A\n" "KA9ABC\n" "KA9AJF\n" "KA9AQZ\n" "KA9BHD\n" "KA9CFD\n" "KA9CKK\n" "KA9CLP\n" "KA9DRW\n" "KA9DVX\n" "KA9EKJ\n" "KA9FON\n" "KA9FOX\n" "KA9FQG\n" "KA9FRH\n" "KA9GWM\n" "KA9IVY\n" "KA9JAC\n" "KA9KBO\n" "KA9KLR\n" "KA9MOM\n" "KA9NFE\n" "KA9O\n" "KA9OBZ\n" "KA9OKH\n" "KA9OMY\n" "KA9OZP\n" "KA9P\n" "KA9RPR\n" "KA9SWE\n" "KA9UDA\n" "KA9UVY\n" "KA9VHG\n" "KA9WAR\n" "KA9WRN\n" "KA9ZAI\n" "KB0ARZ\n" "KB0B\n" "KB0CH\n" "KB0COV\n" "KB0CQ\n" "KB0EO\n" "KB0FHP\n" "KB0HH\n" "KB0IXX\n" "KB0JSH\n" "KB0JSH/T\n" "KB0L\n" "KB0LF\n" "KB0NES\n" "KB0NHW\n" "KB0NMQ\n" "KB0OXT\n" "KB0PAT\n" "KB0PKL\n" "KB0PTV\n" "KB0QBT\n" "KB0QEF\n" "KB0QH\n" "KB0QHZ\n" "KB0R\n" "KB0SK\n" "KB0TLC\n" "KB0UBZ\n" "KB0UKM\n" "KB0UKW\n" "KB0USA\n" "KB0VE\n" "KB0VQD\n" "KB0VVT\n" "KB0WMQ\n" "KB0WVI\n" "KB0YH\n" "KB0ZF\n" "KB1CJ\n" "KB1CL\n" "KB1CWO\n" "KB1DK\n" "KB1DMX\n" "KB1DN\n" "KB1DQT\n" "KB1E\n" "KB1EE\n" "KB1EFS\n" "KB1FCB\n" "KB1FJ\n" "KB1FRK\n" "KB1FRW\n" "KB1H\n" "KB1HFL\n" "KB1HIF\n" "KB1HIP\n" "KB1HNZ\n" "KB1IC\n" "KB1IQZ\n" "KB1JDY\n" "KB1JUF\n" "KB1JZU\n" "KB1K\n" "KB1KGA\n" "KB1LIH\n" "KB1LZH\n" "KB1MCK\n" "KB1MGL\n" "KB1MH\n" "KB1NA\n" "KB1NFI\n" "KB1NFW\n" "KB1NHV\n" "KB1NRB\n" "KB1NRI\n" "KB1NWH\n" "KB1ODO\n" "KB1OJT\n" "KB1OPV\n" "KB1OQH\n" "KB1OSI\n" "KB1OUV\n" "KB1OVA\n" "KB1OWT\n" "KB1P\n" "KB1PAJ\n" "KB1PHN\n" "KB1PLN\n" "KB1PSP\n" "KB1PXD\n" "KB1PXE\n" "KB1PXX\n" "KB1PXY\n" "KB1QEU\n" "KB1QOV\n" "KB1QU\n" "KB1RDL\n" "KB1RNX\n" "KB1RRX\n" "KB1RXA\n" "KB1SLN\n" "KB1SNB\n" "KB1T\n" "KB1TFR\n" "KB1TRQ\n" "KB1TY\n" "KB1W\n" "KB1WEB\n" "KB2AMY\n" "KB2AYS\n" "KB2BBG\n" "KB2BSL\n" "KB2CKN\n" "KB2DKB\n" "KB2ESY\n" "KB2FEL\n" "KB2FM\n" "KB2HSH\n" "KB2IAU\n" "KB2JQC\n" "KB2JSG\n" "KB2KWD\n" "KB2M\n" "KB2MFS\n" "KB2MN\n" "KB2NB\n" "KB2PD\n" "KB2PIZ\n" "KB2QXH\n" "KB2RLH\n" "KB2RPV\n" "KB2SEO\n" "KB2SXT\n" "KB2TNH\n" "KB2URI\n" "KB2UZY\n" "KB2VMG\n" "KB2VRM\n" "KB2WXV\n" "KB3AAY\n" "KB3AF\n" "KB3ATF\n" "KB3ATI\n" "KB3CQU\n" "KB3CTX\n" "KB3CWQ\n" "KB3CXQ\n" "KB3ELT\n" "KB3EOJ\n" "KB3EXB\n" "KB3FEI\n" "KB3FJJ\n" "KB3FMO\n" "KB3FTE\n" "KB3GFC\n" "KB3GQK\n" "KB3GVV\n" "KB3HJK\n" "KB3HQN\n" "KB3IBT\n" "KB3IHX\n" "KB3ILS\n" "KB3IOG\n" "KB3IWV\n" "KB3IZA\n" "KB3KBJ\n" "KB3KJ\n" "KB3KJS\n" "KB3KOC\n" "KB3KOW\n" "KB3KXX\n" "KB3LBB\n" "KB3LFX\n" "KB3LIX\n" "KB3LTT\n" "KB3LVH\n" "KB3MDX\n" "KB3MHB/0\n" "KB3MOW\n" "KB3MP\n" "KB3NKS\n" "KB3NPA\n" "KB3NSL\n" "KB3NXT\n" "KB3OJM\n" "KB3OK\n" "KB3ONQ\n" "KB3ONZ\n" "KB3OSP\n" "KB3OVB\n" "KB3OXF\n" "KB3P\n" "KB3PDR\n" "KB3QAQ\n" "KB3QGB\n" "KB3QIU\n" "KB3QLK\n" "KB3RBU\n" "KB3RFH\n" "KB3RM\n" "KB3ROR\n" "KB3RPE\n" "KB3RRV\n" "KB3RRX\n" "KB3RTB\n" "KB3SJQ\n" "KB3TAW\n" "KB3TS\n" "KB3WK\n" "KB3WL\n" "KB3X\n" "KB3XD\n" "KB3Z\n" "KB4BHB\n" "KB4BR\n" "KB4C\n" "KB4CAU\n" "KB4CP\n" "KB4ET\n" "KB4FB\n" "KB4FXE\n" "KB4GYT\n" "KB4HF\n" "KB4HJQ\n" "KB4J\n" "KB4JHU\n" "KB4KBS\n" "KB4KBS/5\n" "KB4MDD\n" "KB4MRX\n" "KB4OLM\n" "KB4PPE\n" "KB4QDQ\n" "KB4QQJ\n" "KB4REC\n" "KB4RGW\n" "KB4SAD\n" "KB4UF\n" "KB4USB\n" "KB4X\n" "KB4XK\n" "KB4YP\n" "KB4ZAA\n" "KB4ZMR\n" "KB5AAB\n" "KB5AAM\n" "KB5DNR\n" "KB5DRJ\n" "KB5ENP\n" "KB5FCF\n" "KB5FSV\n" "KB5GA\n" "KB5HPL\n" "KB5IBY\n" "KB5IED\n" "KB5IY\n" "KB5JO\n" "KB5LKE\n" "KB5LT\n" "KB5MRT\n" "KB5MZ\n" "KB5OS\n" "KB5REX\n" "KB5RP\n" "KB5RXL\n" "KB5TAN\n" "KB5TX\n" "KB5U\n" "KB5UNX\n" "KB5VP\n" "KB5WCA\n" "KB5YEG\n" "KB5YIA\n" "KB5YLG\n" "KB5YN\n" "KB5ZSK\n" "KB6A\n" "KB6ATT\n" "KB6ATZ\n" "KB6BYU\n" "KB6DL\n" "KB6FB\n" "KB6J\n" "KB6NAN\n" "KB6NFY\n" "KB6NU\n" "KB6OJE\n" "KB6QXR\n" "KB6RQZ\n" "KB7BGS\n" "KB7CJ\n" "KB7DQT\n" "KB7EEG\n" "KB7GP\n" "KB7HDX\n" "KB7HH\n" "KB7IQO\n" "KB7JMS\n" "KB7KLT\n" "KB7MBI\n" "KB7ME\n" "KB7N\n" "KB7NJV\n" "KB7OBU/KH2\n" "KB7OGE\n" "KB7PJ\n" "KB7PYF\n" "KB7Q\n" "KB7QFE\n" "KB7QKS\n" "KB7QOS\n" "KB7RJ\n" "KB7RUQ\n" "KB7SO\n" "KB7STO\n" "KB7TGR\n" "KB7TJP\n" "KB7TLE\n" "KB7UJI\n" "KB7UP\n" "KB7ZR\n" "KB7ZTI\n" "KB8APA\n" "KB8DID\n" "KB8DP\n" "KB8ECG\n" "KB8F\n" "KB8FZY\n" "KB8GAE\n" "KB8HOC\n" "KB8HRR\n" "KB8KE\n" "KB8KIK\n" "KB8LWU\n" "KB8M\n" "KB8MNX\n" "KB8MOU\n" "KB8MYC\n" "KB8NNU\n" "KB8NOD\n" "KB8NTL\n" "KB8NTY\n" "KB8NUF\n" "KB8O\n" "KB8O/2\n" "KB8OCA\n" "KB8OCP\n" "KB8OEJ\n" "KB8OLS\n" "KB8OMG\n" "KB8OSB\n" "KB8PFF\n" "KB8QAP\n" "KB8RJ\n" "KB8RTB\n" "KB8SB\n" "KB8SMD\n" "KB8TI\n" "KB8TL\n" "KB8TT\n" "KB8TWM\n" "KB8TXZ\n" "KB8TYJ\n" "KB8U\n" "KB8UEY\n" "KB8UHN\n" "KB8UUM\n" "KB8UUZ\n" "KB8V\n" "KB8VAO\n" "KB8VGD\n" "KB8VJL\n" "KB8X\n" "KB8YJY\n" "KB8ZGL\n" "KB8ZYE\n" "KB9AMG\n" "KB9AVX\n" "KB9AX\n" "KB9BIT\n" "KB9BNY\n" "KB9CYL\n" "KB9DFE\n" "KB9DVC\n" "KB9FBI\n" "KB9GKG\n" "KB9II\n" "KB9IIZ\n" "KB9IKY\n" "KB9JM\n" "KB9JOG\n" "KB9KAK\n" "KB9KCT\n" "KB9KEG\n" "KB9LHT\n" "KB9LIE\n" "KB9MI\n" "KB9MIE\n" "KB9MJN\n" "KB9MLE\n" "KB9NKM\n" "KB9ORH\n" "KB9OWD\n" "KB9PVR\n" "KB9PWN\n" "KB9Q\n" "KB9RDS\n" "KB9RNO\n" "KB9S\n" "KB9SRE\n" "KB9STR\n" "KB9UMT\n" "KB9UWR\n" "KB9UX\n" "KB9VT\n" "KB9WL\n" "KB9WQJ\n" "KB9XH\n" "KB9YGD\n" "KB9YGF\n" "KB9ZTF\n" "KB9ZUV\n" "KB9ZWB\n" "KC0ADP\n" "KC0BMF\n" "KC0CF\n" "KC0CRU\n" "KC0CWU\n" "KC0DEB\n" "KC0DX\n" "KC0ELZ\n" "KC0EUX\n" "KC0EWX\n" "KC0GL\n" "KC0GLA\n" "KC0GXY\n" "KC0HPM\n" "KC0IEI\n" "KC0IKU\n" "KC0INP\n" "KC0JFY\n" "KC0JRW\n" "KC0LOE\n" "KC0M\n" "KC0MEZ\n" "KC0MKS\n" "KC0MO\n" "KC0MPQ\n" "KC0MS\n" "KC0NFB\n" "KC0NOX\n" "KC0OKO\n" "KC0ONP\n" "KC0OW\n" "KC0PDX\n" "KC0PKA\n" "KC0PLZ\n" "KC0PPA\n" "KC0QBU\n" "KC0QIE\n" "KC0REN\n" "KC0RET\n" "KC0REY\n" "KC0RQH\n" "KC0RRP\n" "KC0SBV\n" "KC0SIV\n" "KC0SKR\n" "KC0STQ\n" "KC0SZU\n" "KC0TDQ\n" "KC0THR\n" "KC0TJ\n" "KC0TPP\n" "KC0TRX\n" "KC0UFB\n" "KC0UJM\n" "KC0UTN\n" "KC0UUP\n" "KC0UUT\n" "KC0UYQ\n" "KC0V\n" "KC0VEU\n" "KC0VFO\n" "KC0VFP\n" "KC0VKN\n" "KC0VTJ\n" "KC0W\n" "KC0WCF\n" "KC0WKZ\n" "KC0WMN\n" "KC0WTS\n" "KC0YHU\n" "KC0YJO\n" "KC0YQQ\n" "KC0YRS\n" "KC0ZHF\n" "KC0ZNI\n" "KC0ZSM\n" "KC0ZTC\n" "KC0ZXZ\n" "KC0ZZH\n" "KC1HD\n" "KC1JB\n" "KC1ME\n" "KC1MR\n" "KC1NN\n" "KC1SQ\n" "KC1UX\n" "KC1V\n" "KC1XX\n" "KC1ZO\n" "KC2ANN\n" "KC2ANS\n" "KC2AQU\n" "KC2COB\n" "KC2DU\n" "KC2EE\n" "KC2EES\n" "KC2EMM\n" "KC2EPU\n" "KC2EVL\n" "KC2FOL\n" "KC2GFA\n" "KC2GNL\n" "KC2GOW\n" "KC2HO\n" "KC2HTV\n" "KC2HZM\n" "KC2HZW\n" "KC2IGE\n" "KC2IOS\n" "KC2IUR\n" "KC2JKU\n" "KC2JRQ\n" "KC2KME\n" "KC2KPK\n" "KC2KTZ\n" "KC2KXV\n" "KC2KY\n" "KC2KZJ\n" "KC2LMB\n" "KC2LMX\n" "KC2LR\n" "KC2LSD\n" "KC2LST\n" "KC2LXD\n" "KC2MBV\n" "KC2MCY\n" "KC2MDQ\n" "KC2MHE\n" "KC2MHY\n" "KC2MNV\n" "KC2MR\n" "KC2MXH\n" "KC2NB\n" "KC2NLF\n" "KC2NTV\n" "KC2NYU\n" "KC2OBN\n" "KC2OBS\n" "KC2OGR\n" "KC2OUV\n" "KC2OYY\n" "KC2PBJ\n" "KC2PBX\n" "KC2PCD\n" "KC2PCR\n" "KC2PGE\n" "KC2PJH\n" "KC2PJL\n" "KC2PLJ\n" "KC2PQI\n" "KC2PSR\n" "KC2PVM\n" "KC2PZ\n" "KC2Q\n" "KC2QEZ\n" "KC2QFR\n" "KC2QGK\n" "KC2QJB\n" "KC2QLA\n" "KC2QLJ\n" "KC2QXA\n" "KC2QYC\n" "KC2QYM\n" "KC2RDW\n" "KC2RIV\n" "KC2RJC\n" "KC2ROF\n" "KC2RXS\n" "KC2SCY\n" "KC2SDR\n" "KC2SGS\n" "KC2SJN\n" "KC2SKF\n" "KC2SKI\n" "KC2SPD\n" "KC2SPY\n" "KC2SPZ\n" "KC2SWZ\n" "KC2SZ\n" "KC2TA\n" "KC2TAU\n" "KC2TEL\n" "KC2TNY\n" "KC2TYZ\n" "KC2UCJ\n" "KC2ULY\n" "KC2URV\n" "KC2VMR\n" "KC2VVZ\n" "KC2ZA\n" "KC3EF\n" "KC3ET\n" "KC3M\n" "KC3MX\n" "KC3N\n" "KC3OL\n" "KC3QU\n" "KC3R\n" "KC3RT\n" "KC3WX\n" "KC4AA\n" "KC4ABC\n" "KC4ART\n" "KC4ATU\n" "KC4AUF\n" "KC4B\n" "KC4CQS\n" "KC4CSU\n" "KC4D\n" "KC4EZN\n" "KC4FLT\n" "KC4GL\n" "KC4H\n" "KC4HW\n" "KC4IWI\n" "KC4JD\n" "KC4LLV\n" "KC4MYV\n" "KC4NPR\n" "KC4OOO\n" "KC4Q\n" "KC4QIH\n" "KC4RN\n" "KC4RV\n" "KC4SAW\n" "KC4SC\n" "KC4SSD\n" "KC4SW\n" "KC4SW/7\n" "KC4TVN\n" "KC4TVZ\n" "KC4UCK\n" "KC4USV\n" "KC4VLO\n" "KC4VT\n" "KC4WQ\n" "KC4YAU\n" "KC4YBO\n" "KC4YCT\n" "KC4YTF\n" "KC4Z\n" "KC4ZPB\n" "KC4ZUA\n" "KC5ADQ\n" "KC5AKB\n" "KC5BYE\n" "KC5EZ\n" "KC5FEN\n" "KC5FU\n" "KC5GTT\n" "KC5LDO\n" "KC5LK\n" "KC5MAH\n" "KC5MOL\n" "KC5MPS\n" "KC5NOA\n" "KC5NT\n" "KC5R\n" "KC5RUO\n" "KC5RWW\n" "KC5SLQ\n" "KC5T\n" "KC5TJT\n" "KC5UES\n" "KC5WA\n" "KC5YGC\n" "KC5YPU\n" "KC6AWX\n" "KC6G\n" "KC6M\n" "KC6MMU\n" "KC6OVG\n" "KC6P\n" "KC6R\n" "KC6SEH\n" "KC6UIX\n" "KC6UKO\n" "KC6VVT\n" "KC6X\n" "KC6ZBE\n" "KC7CM\n" "KC7CPM\n" "KC7DB\n" "KC7EFP\n" "KC7EKU\n" "KC7ESB\n" "KC7GNM\n" "KC7H\n" "KC7HFL\n" "KC7ITP\n" "KC7J\n" "KC7KNY\n" "KC7KZ\n" "KC7O\n" "KC7OM\n" "KC7OO\n" "KC7PFR\n" "KC7QR\n" "KC7STK\n" "KC7TA\n" "KC7UP\n" "KC7V\n" "KC7WDL\n" "KC7WWY\n" "KC7ZFP\n" "KC7ZKO\n" "KC7ZON\n" "KC7ZZ\n" "KC8ALZ\n" "KC8BLL\n" "KC8BOM\n" "KC8BYJ\n" "KC8CC\n" "KC8CPT\n" "KC8CY\n" "KC8EMF\n" "KC8FVE\n" "KC8FZM\n" "KC8GCR\n" "KC8GTX\n" "KC8HWL\n" "KC8IMV\n" "KC8IVC\n" "KC8JNL\n" "KC8JWS\n" "KC8KCU\n" "KC8KE\n" "KC8LA\n" "KC8LAU\n" "KC8LBZ\n" "KC8LTL\n" "KC8LUB\n" "KC8MGD\n" "KC8NIN\n" "KC8OBH\n" "KC8PKY\n" "KC8PSO\n" "KC8PX\n" "KC8QAE\n" "KC8QHT\n" "KC8RQT\n" "KC8SQI\n" "KC8UAV\n" "KC8UNY\n" "KC8UR\n" "KC8UWG\n" "KC8UZM\n" "KC8VGG\n" "KC8VML\n" "KC8VWM\n" "KC8WGA\n" "KC8YEJ\n" "KC8YJB\n" "KC8YLD\n" "KC8YSG\n" "KC8YTY\n" "KC8YVF\n" "KC8ZTJ\n" "KC9AMM\n" "KC9AOP\n" "KC9AQD\n" "KC9ARN\n" "KC9ARR\n" "KC9CDW\n" "KC9CHG\n" "KC9CRM\n" "KC9CRV\n" "KC9CSQ\n" "KC9CUK\n" "KC9DAO\n" "KC9DDF\n" "KC9DFU\n" "KC9DJQ\n" "KC9DKQ\n" "KC9DLO\n" "KC9ECI\n" "KC9ELU\n" "KC9EOQ\n" "KC9FAV\n" "KC9FLB\n" "KC9FOL\n" "KC9FQV\n" "KC9FQV/0\n" "KC9FSH\n" "KC9FZT\n" "KC9G\n" "KC9GBX\n" "KC9GGV\n" "KC9GKE\n" "KC9GRD\n" "KC9GTN\n" "KC9GUP\n" "KC9GZB\n" "KC9HEK\n" "KC9HEQ\n" "KC9HGW\n" "KC9HHT\n" "KC9HIU\n" "KC9HPA\n" "KC9HQV\n" "KC9HYL\n" "KC9ICP\n" "KC9IFT\n" "KC9IGB\n" "KC9IL\n" "KC9IRQ\n" "KC9JCH\n" "KC9JFP\n" "KC9JJV\n" "KC9JQY\n" "KC9JUY\n" "KC9KBB\n" "KC9KIO\n" "KC9KKM\n" "KC9KNQ\n" "KC9KRX\n" "KC9KSN\n" "KC9KTV\n" "KC9KXT\n" "KC9LBO\n" "KC9LC\n" "KC9LDK\n" "KC9LDO\n" "KC9LET\n" "KC9LIF\n" "KC9LMO\n" "KC9LNH\n" "KC9LQS\n" "KC9LTV\n" "KC9LWF\n" "KC9MAV\n" "KC9MEA\n" "KC9MOT\n" "KC9MRW\n" "KC9MVQ\n" "KC9MXI\n" "KC9MXM\n" "KC9MXQ\n" "KC9MYL\n" "KC9MZ\n" "KC9NBE\n" "KC9NCF\n" "KC9NEA\n" "KC9NGZ\n" "KC9OAG\n" "KC9OLC\n" "KC9OP\n" "KC9OQO\n" "KC9OUT\n" "KC9OYE\n" "KC9PAU\n" "KC9PBQ\n" "KC9PEG\n" "KC9POO\n" "KC9PTD\n" "KC9PXJ\n" "KC9QQ\n" "KC9TS\n" "KC9YY\n" "KC9Z\n" "KC9ZO\n" "KC9ZZ\n" "KD0AA\n" "KD0AAA\n" "KD0AAT\n" "KD0ABR\n" "KD0ACO\n" "KD0ACR\n" "KD0AHR\n" "KD0AJB\n" "KD0AKN\n" "KD0AV\n" "KD0BJS\n" "KD0BLE\n" "KD0BTT\n" "KD0CA\n" "KD0CAO\n" "KD0CIU\n" "KD0CPA\n" "KD0CPH\n" "KD0CVZ\n" "KD0DAW\n" "KD0DDY\n" "KD0DOS\n" "KD0DRQ\n" "KD0DSU\n" "KD0EH\n" "KD0EXQ\n" "KD0FLB\n" "KD0FQN\n" "KD0FW\n" "KD0GWI\n" "KD0HSF\n" "KD0HUC\n" "KD0IJW\n" "KD0INK\n" "KD0IZL\n" "KD0JLD\n" "KD0Q\n" "KD0R\n" "KD0S\n" "KD0UN\n" "KD0Y\n" "KD0ZZ\n" "KD1BD\n" "KD1CT\n" "KD1EU\n" "KD1FR\n" "KD1J\n" "KD1KT\n" "KD1LE\n" "KD1NA\n" "KD1XX\n" "KD1YV\n" "KD1ZX\n" "KD2A\n" "KD2HE\n" "KD2I\n" "KD2JA\n" "KD2JC\n" "KD2MU\n" "KD2MX\n" "KD2N\n" "KD2NE\n" "KD2NF\n" "KD2NL\n" "KD2RD\n" "KD3CQ\n" "KD3HN\n" "KD3KB\n" "KD3RF\n" "KD3SB\n" "KD3TB\n" "KD3WK\n" "KD3Y\n" "KD4AEN\n" "KD4AMP\n" "KD4BPZ\n" "KD4CMV\n" "KD4D\n" "KD4EDG\n" "KD4ESV\n" "KD4EXY\n" "KD4FJ\n" "KD4FNI\n" "KD4FXL\n" "KD4GID\n" "KD4GNM\n" "KD4HXT\n" "KD4ICT\n" "KD4JMI\n" "KD4JRX\n" "KD4LCR\n" "KD4LHA\n" "KD4LN\n" "KD4MPN\n" "KD4MZM\n" "KD4N\n" "KD4NH\n" "KD4OFG\n" "KD4OZI\n" "KD4POJ\n" "KD4QFT\n" "KD4QMY\n" "KD4QYJ\n" "KD4RE\n" "KD4RS\n" "KD4RSL\n" "KD4SH\n" "KD4SM\n" "KD4SN\n" "KD4SUG\n" "KD4SVC\n" "KD4TDI\n" "KD4TNY\n" "KD4TXF\n" "KD4ULB\n" "KD4ULW\n" "KD4VHH\n" "KD4W\n" "KD4WKP\n" "KD4WQT\n" "KD4WUO\n" "KD5CQT\n" "KD5CVL\n" "KD5DLL\n" "KD5EDL\n" "KD5EJG\n" "KD5FKY\n" "KD5GJF\n" "KD5IKG\n" "KD5ITM\n" "KD5J\n" "KD5JAA\n" "KD5JGA\n" "KD5JHE\n" "KD5JKH\n" "KD5JWC\n" "KD5L\n" "KD5LEP\n" "KD5LNO\n" "KD5LPB\n" "KD5M\n" "KD5MMM\n" "KD5MTB\n" "KD5MUY\n" "KD5NFW\n" "KD5NXR\n" "KD5PGA\n" "KD5R\n" "KD5RA\n" "KD5RQB\n" "KD5RXN\n" "KD5SBO\n" "KD5SGL\n" "KD5SRW\n" "KD5TFK\n" "KD5TIO\n" "KD5UVV\n" "KD5VIJ\n" "KD5VVI\n" "KD5WKK\n" "KD5WUD\n" "KD5YIA\n" "KD5YPC\n" "KD5YUK\n" "KD5YZU\n" "KD5ZAT\n" "KD5ZEZ\n" "KD6AF\n" "KD6AKC\n" "KD6AW\n" "KD6DKC\n" "KD6FIL\n" ; const char txt_master3[65530] = "KD6GC\n" "KD6HTN\n" "KD6HWD\n" "KD6JHV\n" "KD6JZZ\n" "KD6KVL\n" "KD6NL\n" "KD6NSA\n" "KD6OAT\n" "KD6PA\n" "KD6PQF\n" "KD6UO\n" "KD6VKF\n" "KD6WKY\n" "KD6YV\n" "KD7DCR\n" "KD7DEG\n" "KD7EX\n" "KD7GC\n" "KD7GTI\n" "KD7H\n" "KD7I\n" "KD7IBE\n" "KD7IIC\n" "KD7JGI\n" "KD7JZ\n" "KD7KST\n" "KD7LRK\n" "KD7MDX\n" "KD7MSC\n" "KD7OWN\n" "KD7P\n" "KD7Q\n" "KD7RHI\n" "KD7RQI\n" "KD7RUS\n" "KD7RX\n" "KD7SWL\n" "KD7TQM\n" "KD7UO\n" "KD7VA\n" "KD7VIK\n" "KD7WIZ\n" "KD7YCU\n" "KD7YDL\n" "KD7YFG\n" "KD7YZ\n" "KD8A\n" "KD8ADO\n" "KD8AMN\n" "KD8AQ\n" "KD8BBK\n" "KD8BIN\n" "KD8BWR\n" "KD8CAO\n" "KD8CDC\n" "KD8CGH\n" "KD8CMN\n" "KD8CQC\n" "KD8CTV\n" "KD8CVS\n" "KD8CWP\n" "KD8DCW\n" "KD8DGG\n" "KD8DHH\n" "KD8DHZ\n" "KD8DX\n" "KD8ECG\n" "KD8EER\n" "KD8ELX\n" "KD8EXU\n" "KD8EXX\n" "KD8EZS\n" "KD8EZU\n" "KD8FNA\n" "KD8FTH\n" "KD8FVX\n" "KD8FXB\n" "KD8GBK\n" "KD8GKR\n" "KD8GOX\n" "KD8GRG\n" "KD8GYH\n" "KD8GZG\n" "KD8HB\n" "KD8HDY\n" "KD8HHG\n" "KD8HMA\n" "KD8HNF\n" "KD8HNI\n" "KD8HSV\n" "KD8HTG\n" "KD8HXT\n" "KD8HXU\n" "KD8IIS\n" "KD8ILL\n" "KD8IOW\n" "KD8IZZ\n" "KD8JAM\n" "KD8JBD\n" "KD8JDC\n" "KD8JNJ\n" "KD8JNS\n" "KD8JRH\n" "KD8JV\n" "KD8LCD\n" "KD8LDT\n" "KD8LGW\n" "KD8LLJ\n" "KD8LW\n" "KD8LWR\n" "KD8MBH\n" "KD8MBI\n" "KD8MGI\n" "KD8NJ\n" "KD8OK\n" "KD8SQ\n" "KD9AC\n" "KD9AW\n" "KD9B\n" "KD9GY\n" "KD9LA\n" "KD9LEH\n" "KD9MS\n" "KD9ST\n" "KD9SV\n" "KE0A\n" "KE0BZ\n" "KE0ER\n" "KE0FJ\n" "KE0FK\n" "KE0G\n" "KE0H\n" "KE0L\n" "KE0LX\n" "KE0M\n" "KE0MD\n" "KE0MF\n" "KE0MT\n" "KE0N\n" "KE0PX\n" "KE0UF\n" "KE0UI\n" "KE0WM\n" "KE0WO\n" "KE0Z\n" "KE0Z/VE4\n" "KE1AF\n" "KE1AU\n" "KE1B\n" "KE1B/6\n" "KE1F\n" "KE1FO\n" "KE1IH\n" "KE1JF\n" "KE1Q\n" "KE1R\n" "KE1V\n" "KE2C\n" "KE2DX\n" "KE2EH\n" "KE2GD\n" "KE2N\n" "KE2OI\n" "KE2SD\n" "KE2U\n" "KE2UN\n" "KE2VB\n" "KE2VN\n" "KE2WY\n" "KE2XC\n" "KE3C\n" "KE3CT\n" "KE3D\n" "KE3D/5\n" "KE3FG\n" "KE3G\n" "KE3KD\n" "KE3OA\n" "KE3Q\n" "KE3VG\n" "KE3VV\n" "KE4AHP\n" "KE4AK\n" "KE4BFG\n" "KE4CAW\n" "KE4CAX\n" "KE4CEC\n" "KE4D\n" "KE4EQY\n" "KE4ERG\n" "KE4ETY\n" "KE4GY\n" "KE4HX\n" "KE4I\n" "KE4KMG\n" "KE4KWE\n" "KE4KY\n" "KE4LIA\n" "KE4MBP\n" "KE4MYW\n" "KE4NU\n" "KE4NYH\n" "KE4OAR\n" "KE4OHB\n" "KE4OIC\n" "KE4OJH\n" "KE4OVN\n" "KE4P\n" "KE4PT\n" "KE4PVL\n" "KE4QCY\n" "KE4R\n" "KE4RQ\n" "KE4RUN\n" "KE4S\n" "KE4TBG\n" "KE4TG\n" "KE4TP\n" "KE4TTS\n" "KE4TWI\n" "KE4UNA\n" "KE4UW\n" "KE4VA\n" "KE4VQM\n" "KE4WBO\n" "KE4WLE\n" "KE4YLQ\n" "KE4YOH\n" "KE4YVD\n" "KE5AKL\n" "KE5AUI\n" "KE5BWG\n" "KE5C\n" "KE5CQJ\n" "KE5DLZ\n" "KE5DYG\n" "KE5FNA\n" "KE5FRF\n" "KE5FTY\n" "KE5FXE\n" "KE5HDE\n" "KE5HPY\n" "KE5HWE\n" "KE5IOV\n" "KE5ISO\n" "KE5JA\n" "KE5K\n" "KE5KCN\n" "KE5KZX\n" "KE5LLM/6\n" "KE5LQ\n" "KE5LYW\n" "KE5MHV\n" "KE5MIS\n" "KE5MMT\n" "KE5MOZ\n" "KE5NCD\n" "KE5NQ\n" "KE5NYZ\n" "KE5OG\n" "KE5OKQ\n" "KE5OOA\n" "KE5ORW\n" "KE5OVE\n" "KE5OXS\n" "KE5PMZ\n" "KE5PRL\n" "KE5PUH\n" "KE5PWL\n" "KE5PWR\n" "KE5QAR\n" "KE5QBZ\n" "KE5QKR\n" "KE5QWP\n" "KE5RFR\n" "KE5RHM\n" "KE5RON\n" "KE5RPT\n" "KE5RS\n" "KE5RXN\n" "KE5SNK\n" "KE5SOF\n" "KE5SPE\n" "KE5TQA\n" "KE5TRZ\n" "KE5UTN\n" "KE5VDT\n" "KE5WUE\n" "KE5YA\n" "KE5YGR\n" "KE5YOO\n" "KE5YXO\n" "KE5ZDN\n" "KE5ZGI\n" "KE5ZSR\n" "KE5ZSW\n" "KE5ZWD\n" "KE5ZYP\n" "KE6BAE\n" "KE6CX\n" "KE6EEZ\n" "KE6EJG\n" "KE6EKH\n" "KE6ENI/XE2\n" "KE6FV\n" "KE6GFF\n" "KE6GFI\n" "KE6GLA\n" "KE6KJD\n" "KE6LPO\n" "KE6MGW\n" "KE6OIO\n" "KE6OJ\n" "KE6QR\n" "KE6RAD\n" "KE6RGB\n" "KE6RS\n" "KE6RYZ\n" "KE6SHL\n" "KE6TE\n" "KE6U\n" "KE6V\n" "KE6WC\n" "KE6YLH\n" "KE6ZLY\n" "KE7A\n" "KE7ACE\n" "KE7AJ\n" "KE7AUB\n" "KE7BT\n" "KE7CPE\n" "KE7CRN\n" "KE7DX\n" "KE7FBY\n" "KE7FGB\n" "KE7FXF\n" "KE7GRL\n" "KE7GYQ\n" "KE7GYT\n" "KE7HHW\n" "KE7HTL\n" "KE7HTY\n" "KE7IEE\n" "KE7JIW\n" "KE7JNT\n" "KE7LOQ\n" "KE7NKF\n" "KE7NO\n" "KE7NPH\n" "KE7NVA\n" "KE7NVY\n" "KE7NZE\n" "KE7ORS\n" "KE7PAV\n" "KE7PGO\n" "KE7PZX\n" "KE7RLI\n" "KE7RPR\n" "KE7RVL\n" "KE7SW\n" "KE7SX\n" "KE7TBK\n" "KE7TM\n" "KE7TWL\n" "KE7UGO\n" "KE7UTX\n" "KE7VUX\n" "KE7WDJ\n" "KE7WMI\n" "KE7WRJ\n" "KE7WVZ\n" "KE7X\n" "KE7XE\n" "KE7XM\n" "KE7Y\n" "KE7YF\n" "KE7YIQ\n" "KE7YKS\n" "KE7ZAC\n" "KE7ZGG\n" "KE7ZZO\n" "KE8BP\n" "KE8DM\n" "KE8E\n" "KE8FO\n" "KE8G\n" "KE8M\n" "KE8NK\n" "KE8PX\n" "KE8RG\n" "KE8SO\n" "KE8UM\n" "KE8VC\n" "KE8VK\n" "KE9AG\n" "KE9ET\n" "KE9I\n" "KE9LY\n" "KE9PH\n" "KE9PP\n" "KE9TP\n" "KE9U\n" "KE9VS\n" "KF0AK\n" "KF0F\n" "KF0GE\n" "KF0IQ\n" "KF0LA\n" "KF0N\n" "KF0P\n" "KF0QR\n" "KF0SJ\n" "KF0UR\n" "KF0VR\n" "KF0XM\n" "KF0Z\n" "KF1C\n" "KF1D\n" "KF2AT\n" "KF2AX\n" "KF2FK\n" "KF2HO\n" "KF2JK\n" "KF2O\n" "KF2T\n" "KF2U\n" "KF2VX\n" "KF2X\n" "KF2XN\n" "KF2YS\n" "KF2ZQ\n" "KF3B\n" "KF3BA\n" "KF3DJ\n" "KF3EQ\n" "KF3F\n" "KF3P\n" "KF4BI\n" "KF4DNL\n" "KF4DVF\n" "KF4DVG\n" "KF4DYN\n" "KF4ECG\n" "KF4ENE\n" "KF4EUZ\n" "KF4FL\n" "KF4GDX\n" "KF4GLE\n" "KF4HMD\n" "KF4HOU\n" "KF4IBU\n" "KF4IFF\n" "KF4IRC\n" "KF4JPX\n" "KF4KNF\n" "KF4LJX\n" "KF4LMT\n" "KF4LMW\n" "KF4MH\n" "KF4NMH\n" "KF4OHI\n" "KF4ONH\n" "KF4OPX\n" "KF4PCT\n" "KF4PQL\n" "KF4QQY\n" "KF4QYF\n" "KF4SQ\n" "KF4TP\n" "KF4UOR\n" "KF4VTT\n" "KF4WER\n" "KF4YCP\n" "KF4YLM\n" "KF4ZS\n" "KF4ZZ\n" "KF5CCT\n" "KF5CST\n" "KF5DKS\n" "KF5EH\n" "KF5EHV\n" "KF5ER\n" "KF5H\n" "KF5KWO\n" "KF5S\n" "KF5SA\n" "KF5VM\n" "KF5Y\n" "KF6A\n" "KF6I\n" "KF6JOQ\n" "KF6JQ\n" "KF6KDA\n" "KF6MWA\n" "KF6NCX\n" "KF6PKG\n" "KF6RNT\n" "KF6RXB\n" "KF6RY\n" "KF6T\n" "KF6TRX\n" "KF6ZYD\n" "KF7ADB\n" "KF7ADK\n" "KF7BBJ\n" "KF7CG\n" "KF7E\n" "KF7F\n" "KF7GYE\n" "KF7IQ\n" "KF7MD\n" "KF7NN\n" "KF7P\n" "KF7PG\n" "KF7RU\n" "KF7TY\n" "KF7WQ\n" "KF8ES\n" "KF8GE\n" "KF8K\n" "KF8PS\n" "KF8UN\n" "KF8Z\n" "KF9AF\n" "KF9D\n" "KF9JV\n" "KF9KP\n" "KF9LI\n" "KF9MT\n" "KF9TI\n" "KF9UP\n" "KF9WW\n" "KG0AQ\n" "KG0DX\n" "KG0EI\n" "KG0EW\n" "KG0F\n" "KG0JD\n" "KG0KP\n" "KG0PP\n" "KG0TS\n" "KG0TW\n" "KG0TZ\n" "KG0UA\n" "KG0US\n" "KG0Z\n" "KG1D\n" "KG1E\n" "KG1V\n" "KG2AF\n" "KG2GL\n" "KG2MV\n" "KG2RG\n" "KG2V\n" "KG3BOZ\n" "KG3F\n" "KG3Q\n" "KG3V\n" "KG4AZN\n" "KG4BYL\n" "KG4CBI\n" "KG4CUY\n" "KG4FPJ\n" "KG4HTT\n" "KG4HUF\n" "KG4IGC\n" "KG4IJS\n" "KG4JGQ\n" "KG4JJS\n" "KG4JSZ\n" "KG4JYB\n" "KG4KEA\n" "KG4KQI\n" "KG4KWW\n" "KG4LCF\n" "KG4MGE\n" "KG4MIF\n" "KG4NAK\n" "KG4NRF\n" "KG4NWS\n" "KG4OCJ\n" "KG4PLT\n" "KG4RUE\n" "KG4RWO\n" "KG4SS\n" "KG4STI\n" "KG4TEI\n" "KG4TQQ\n" "KG4TTQ\n" "KG4UDL\n" "KG4USN\n" "KG4UVU\n" "KG4VBK\n" "KG4VLW\n" "KG4VOV\n" "KG4VPC\n" "KG4W\n" "KG4WNA\n" "KG4WQZ\n" "KG4YGP\n" "KG4YHR\n" "KG4YLZ\n" "KG4YNM\n" "KG4ZDM\n" "KG4ZNA\n" "KG4ZOD\n" "KG4ZOI\n" "KG4ZVA\n" "KG4ZXK\n" "KG5EG\n" "KG5NP\n" "KG5OO\n" "KG5RJ\n" "KG5RQ\n" "KG5TA\n" "KG5V\n" "KG5VK\n" "KG6ACG\n" "KG6AMW\n" "KG6AO\n" "KG6AXA\n" "KG6B\n" "KG6COH\n" "KG6D\n" "KG6DX\n" "KG6I\n" "KG6JDX\n" "KG6KH\n" "KG6MZS\n" "KG6OJB\n" "KG6RCW\n" "KG6SMN\n" "KG6STU\n" "KG6TAD\n" "KG6TBR\n" "KG6TGR\n" "KG6TT\n" "KG6UBG\n" "KG6WIK\n" "KG6YHH\n" "KG6YPH\n" "KG6ZHC\n" "KG7C\n" "KG7E\n" "KG7EW\n" "KG7H\n" "KG7HF\n" "KG7HF/1\n" "KG7P\n" "KG7RZ\n" "KG7VQ\n" "KG7WZ\n" "KG8CO\n" "KG8CW\n" "KG8CX\n" "KG8DH\n" "KG8DP\n" "KG8OU\n" "KG8P\n" "KG8V\n" "KG8WI\n" "KG9AH\n" "KG9AV\n" "KG9D\n" "KG9E\n" "KG9EE\n" "KG9FA\n" "KG9G\n" "KG9IL\n" "KG9JP\n" "KG9N\n" "KG9SF\n" "KG9X\n" "KG9Z\n" "KH0UA\n" "KH2/JJ1LRD\n" "KH2AR/4\n" "KH2AR/W4\n" "KH2JU\n" "KH2L\n" "KH2OP\n" "KH2RU/KP4\n" "KH2X/W4\n" "KH6AK\n" "KH6AT\n" "KH6BZF\n" "KH6CB\n" "KH6CD\n" "KH6CG\n" "KH6CJJ\n" "KH6CO\n" "KH6CQH/W7\n" "KH6CW\n" "KH6FI\n" "KH6FP\n" "KH6GMP\n" "KH6HAM\n" "KH6HU\n" "KH6IB\n" "KH6J\n" "KH6KM\n" "KH6LC\n" "KH6LS\n" "KH6MB\n" "KH6ND\n" "KH6NF\n" "KH6NO/W7\n" "KH6OA\n" "KH6OO\n" "KH6P\n" "KH6QJ\n" "KH6RC\n" "KH6RZ\n" "KH6TDM\n" "KH6U\n" "KH6YR\n" "KH6ZM\n" "KH6ZN\n" "KH7B\n" "KH7BB\n" "KH7C\n" "KH7CC\n" "KH7DX\n" "KH7HI\n" "KH7LC\n" "KH7T\n" "KH7U\n" "KH7WW/W7\n" "KH7X\n" "KH7XS\n" "KH7Y\n" "KH9/WA2YUN\n" "KI0F\n" "KI0G\n" "KI0HA\n" "KI0HS\n" "KI0II\n" "KI0J\n" "KI0JG\n" "KI0LS\n" "KI0OV\n" "KI0QS\n" "KI0RB\n" "KI0RH\n" "KI0SK\n" "KI0WA\n" "KI0Y\n" "KI0Z\n" "KI1G\n" "KI1M\n" "KI2G\n" "KI2P\n" "KI3C\n" "KI3DS\n" "KI3O\n" "KI3T\n" "KI4ACW\n" "KI4AOQ\n" "KI4ASK\n" "KI4BAL\n" "KI4BIY\n" "KI4BJS\n" "KI4BSB\n" "KI4BWS\n" "KI4BXU\n" "KI4BYQ\n" "KI4C\n" "KI4CBF\n" "KI4CBN\n" "KI4CQO\n" "KI4DT\n" "KI4EEY\n" "KI4EGT\n" "KI4EZC\n" "KI4FCQ\n" "KI4FIA\n" "KI4FSZ\n" "KI4FVS\n" "KI4FW\n" "KI4GGH\n" "KI4GGJ\n" "KI4GHT\n" "KI4GKS\n" "KI4GUO\n" "KI4HHK\n" "KI4IKB\n" "KI4IRH\n" "KI4ITV\n" "KI4JMI\n" "KI4KFW\n" "KI4KK\n" "KI4KPA\n" "KI4KQ\n" "KI4KTH\n" "KI4LAV\n" "KI4LIL\n" "KI4LMA\n" "KI4LNE\n" "KI4LPR\n" "KI4MFF\n" "KI4MFX\n" "KI4MHA\n" "KI4MIV\n" "KI4MQF\n" "KI4MUG\n" "KI4MZS\n" "KI4NCX\n" "KI4NKA\n" "KI4NSI\n" "KI4NSP\n" "KI4ODO\n" "KI4ONJ\n" "KI4ORL\n" "KI4ORU\n" "KI4ORY\n" "KI4PAQ\n" "KI4PHE\n" "KI4PKW\n" "KI4PRK\n" "KI4PTM\n" "KI4PVD\n" "KI4QEO\n" "KI4QLN\n" "KI4QMK\n" "KI4RKB\n" "KI4ROA\n" "KI4RXE\n" "KI4SGQ\n" "KI4SII\n" "KI4SNS\n" "KI4SP\n" "KI4SPO\n" "KI4SVQ\n" "KI4TAW\n" "KI4TI\n" "KI4TMD\n" "KI4TTS\n" "KI4TXP\n" "KI4TYK\n" "KI4TZ\n" "KI4TZU\n" "KI4UFF\n" "KI4URM\n" "KI4UYM\n" "KI4VBR\n" "KI4VCT\n" "KI4VDC\n" "KI4VEU\n" "KI4VFW\n" "KI4VLQ\n" "KI4VTL\n" "KI4VWJ\n" "KI4WAX\n" "KI4WCA\n" "KI4WOH\n" "KI4YAH\n" "KI4YCC\n" "KI4YDJ\n" "KI4YPT\n" "KI4YRH\n" "KI4YXO\n" "KI4YY\n" "KI4ZHF\n" "KI4ZKJ\n" "KI5EE\n" "KI5F\n" "KI5FJ\n" "KI5FR\n" "KI5IK\n" "KI5JF\n" "KI5T\n" "KI5TN\n" "KI5WE\n" "KI5WL\n" "KI5XP\n" "KI6ASK\n" "KI6BEN\n" "KI6BQB\n" "KI6CDF\n" "KI6CG\n" "KI6DCN\n" "KI6DRN\n" "KI6DY\n" "KI6DY/0\n" "KI6EAB\n" "KI6FTT\n" "KI6FYQ\n" "KI6GVI\n" "KI6GVM\n" "KI6HDV\n" "KI6IBS\n" "KI6IRA\n" "KI6IT\n" "KI6J\n" "KI6JGH\n" "KI6JJW\n" "KI6KFB\n" "KI6KSY\n" "KI6KVR\n" "KI6LDM\n" "KI6LQE\n" "KI6LTC\n" "KI6LZ\n" "KI6MQX\n" "KI6MWN\n" "KI6NDA\n" "KI6NGN\n" "KI6NN\n" "KI6NNN\n" "KI6OQU\n" "KI6ORO\n" "KI6OY\n" "KI6PGQ\n" "KI6PMD\n" "KI6PR\n" "KI6PTU\n" "KI6QDB\n" "KI6QDH\n" "KI6RRD\n" "KI6RRN\n" "KI6RUW\n" "KI6SMX\n" "KI6SN\n" "KI6SYO\n" "KI6T\n" "KI6TGS\n" "KI6TXC\n" "KI6UAL\n" "KI6UDJ\n" "KI6VC\n" "KI6VJY\n" "KI6WCI\n" "KI6WJ\n" "KI6WOX\n" "KI6WWB\n" "KI6WZZ\n" "KI6YYT\n" "KI6ZLW\n" "KI6ZX\n" "KI6ZZD\n" "KI7AO\n" "KI7BP\n" "KI7DG\n" "KI7K\n" "KI7M\n" "KI7MT\n" "KI7N\n" "KI7T\n" "KI7TG\n" "KI7VR\n" "KI7XA\n" "KI7Y\n" "KI8BV\n" "KI8CQ\n" "KI8JD\n" "KI8KQ\n" "KI8L\n" "KI9A\n" "KI9E\n" "KI9H\n" "KJ0B\n" "KJ0G\n" "KJ0I\n" "KJ0M\n" "KJ0MTN\n" "KJ0P\n" "KJ0R\n" "KJ1I\n" "KJ1J\n" "KJ2D\n" "KJ2M\n" "KJ3L\n" "KJ3X\n" "KJ4ADN\n" "KJ4AIS\n" "KJ4AMH\n" "KJ4AMU\n" "KJ4AOM\n" "KJ4APD\n" "KJ4AUQ\n" "KJ4AUR\n" "KJ4AYT\n" "KJ4AZA\n" "KJ4BEE\n" "KJ4BIW\n" "KJ4BIX\n" "KJ4BJ\n" "KJ4BOU\n" "KJ4BPH\n" "KJ4BQS\n" "KJ4CGU\n" "KJ4CMG\n" "KJ4CNN\n" "KJ4CTS\n" "KJ4CVY\n" "KJ4DBB\n" "KJ4DDM\n" "KJ4DHB\n" "KJ4DLP\n" "KJ4DOZ\n" "KJ4DVD\n" "KJ4EEW\n" "KJ4EKS\n" "KJ4EPL\n" "KJ4ERZ\n" "KJ4EUN\n" "KJ4EX\n" "KJ4EYZ\n" "KJ4FDV\n" "KJ4FKQ\n" "KJ4FSU\n" "KJ4FYX\n" "KJ4GDW\n" "KJ4GLK\n" "KJ4GOI\n" "KJ4HEY\n" "KJ4HYG\n" "KJ4HZ\n" "KJ4IC\n" "KJ4IGV\n" "KJ4IQT\n" "KJ4IVB\n" "KJ4IVK\n" "KJ4IWX\n" "KJ4IXI\n" "KJ4IZW\n" "KJ4JC\n" "KJ4JEY\n" "KJ4JQV\n" "KJ4JTQ\n" "KJ4JTT\n" "KJ4KNW\n" "KJ4KTG\n" "KJ4KVC\n" "KJ4LEN\n" "KJ4LKU\n" "KJ4ND\n" "KJ4NNO\n" "KJ4OOA\n" "KJ4QVJ\n" "KJ4R\n" "KJ4RR\n" "KJ4UNA\n" "KJ4UY\n" "KJ4WD\n" "KJ5CI\n" "KJ5OA\n" "KJ5RC\n" "KJ5RM\n" "KJ5T\n" "KJ5XX\n" "KJ6ABC\n" "KJ6AGX\n" "KJ6AP\n" "KJ6C\n" "KJ6CA\n" "KJ6CM\n" "KJ6DJL\n" "KJ6DQ\n" "KJ6HZ\n" "KJ6NO\n" "KJ6P\n" "KJ6RA\n" "KJ6UD\n" "KJ6Y\n" "KJ6YK\n" "KJ6ZI\n" "KJ7BS\n" "KJ7GI\n" "KJ7NO\n" "KJ7QM\n" "KJ7S\n" "KJ8O\n" "KJ9A\n" "KJ9C\n" "KJ9D\n" "KJ9I\n" "KJ9R\n" "KK0A\n" "KK0DJ\n" "KK0G\n" "KK0HF\n" "KK0I\n" "KK0K\n" "KK0M\n" "KK0Q\n" "KK0SD\n" "KK1DX\n" "KK1F\n" "KK1KW\n" "KK1L\n" "KK1S\n" "KK1W\n" "KK1X\n" "KK2O\n" "KK2W\n" "KK3AN\n" "KK3F\n" "KK3Q\n" "KK4A\n" "KK4AW\n" "KK4E\n" "KK4GV\n" "KK4IY\n" "KK4KM\n" "KK4PJ\n" "KK4PQ\n" "KK4R\n" "KK4RV\n" "KK4SI\n" "KK4SZ\n" "KK4TE\n" "KK4US\n" "KK4WS\n" "KK4XL\n" "KK5CT\n" "KK5E\n" "KK5HT\n" "KK5I\n" "KK5IB\n" "KK5J\n" "KK5JY\n" "KK5K\n" "KK5LO\n" "KK5MR\n" "KK5NA\n" "KK5NO\n" "KK5OQ\n" "KK5OV\n" "KK5RX\n" "KK5TC\n" "KK5ZD\n" "KK6EL\n" "KK6GJ\n" "KK6LT\n" "KK6MC\n" "KK6PC\n" "KK6QT\n" "KK6T\n" "KK6TV\n" "KK6XN\n" "KK7AC\n" "KK7BR\n" "KK7CG\n" "KK7DP\n" "KK7EU\n" "KK7IG\n" "KK7MF\n" "KK7OO\n" "KK7PR\n" "KK7S\n" "KK7UQ\n" "KK7UV\n" "KK7VL\n" "KK7X\n" "KK7XT\n" "KK7YC\n" "KK7YL\n" "KK7YU\n" "KK8B\n" "KK8D\n" "KK8MM\n" "KK8U\n" "KK8X\n" "KK8Y\n" "KK9A\n" "KK9DX\n" "KK9G\n" "KK9H\n" "KK9N\n" "KK9O\n" "KK9T\n" "KK9V\n" "KL1IN\n" "KL1JP\n" "KL1R\n" "KL1SE/W4\n" "KL1SF\n" "KL1V\n" "KL1WE/6\n" "KL1WE/W6\n" "KL1YY\n" "KL2AX\n" "KL2R\n" "KL2RG\n" "KL5DX\n" "KL5E\n" "KL5O\n" "KL5Z\n" "KL7AA\n" "KL7AC\n" "KL7AF\n" "KL7AI\n" "KL7AIR\n" "KL7AM\n" "KL7AN\n" "KL7BB/W7\n" "KL7CH\n" "KL7CQ\n" "KL7CW\n" "KL7D\n" "KL7DX\n" "KL7FAP\n" "KL7GS\n" "KL7HBK\n" "KL7IDA\n" "KL7IKV\n" "KL7IWC\n" "KL7J\n" "KL7LT\n" "KL7MM\n" "KL7NC\n" "KL7OH\n" "KL7OO\n" "KL7OO/W7\n" "KL7OU\n" "KL7QR\n" "KL7R\n" "KL7RA\n" "KL7SB\n" "KL7SG\n" "KL7TS\n" "KL7VX\n" "KL7WP\n" "KL7WV\n" "KL7XX\n" "KL7YK\n" "KL7Z\n" "KL8DX\n" "KM0O\n" "KM0U\n" "KM1C\n" "KM1D\n" "KM1E\n" "KM1R\n" "KM1W\n" "KM1X\n" "KM1Z\n" "KM2L\n" "KM2O\n" "KM2Y\n" "KM2Z\n" "KM3J\n" "KM3T\n" "KM3T/KP4\n" "KM3V\n" "KM4C\n" "KM4CH\n" "KM4D\n" "KM4DR\n" "KM4DR/5\n" "KM4H\n" "KM4HI\n" "KM4JA\n" "KM4KB\n" "KM4M\n" "KM4MK\n" "KM4OR\n" "KM4OZ\n" "KM4RK\n" "KM4RO\n" "KM4U\n" "KM4ZR\n" "KM5E\n" "KM5FY\n" "KM5LS\n" "KM5PS\n" "KM5RA\n" "KM5TY\n" "KM5VI\n" "KM5Z\n" "KM6CR\n" "KM6CZ\n" "KM6HB\n" "KM6I\n" "KM6K\n" "KM6TY\n" "KM6XX\n" "KM6Z\n" "KM7DX\n" "KM7T\n" "KM7TR\n" "KM7W\n" "KM8L\n" "KM8R\n" "KM9M\n" "KM9P\n" "KM9X\n" "KN0A\n" "KN0N\n" "KN0R\n" "KN0V\n" "KN1H\n" "KN1R\n" "KN1W\n" "KN3A\n" "KN3X\n" "KN4DS\n" "KN4JN\n" "KN4JX\n" "KN4KL\n" "KN4LF\n" "KN4NN\n" "KN4OK\n" "KN4Q\n" "KN4QD\n" "KN4Y\n" "KN5H\n" "KN5O\n" "KN5S\n" "KN6B\n" "KN6DV\n" "KN6E\n" "KN6H\n" "KN6LF\n" "KN6OP\n" "KN6OZ\n" "KN6U\n" "KN6VVH\n" "KN6X\n" "KN6Y\n" "KN6YC\n" "KN7D\n" "KN7K\n" "KN7N\n" "KN7PF\n" "KN7S\n" "KN7T\n" "KN7Y\n" "KN8DMK\n" "KN8J\n" "KN8KAZ\n" "KN8KAZ/5\n" "KN8M\n" "KN9C\n" "KN9K\n" "KN9N\n" "KN9P\n" "KO0Z\n" "KO1E\n" "KO1G\n" "KO1H\n" "KO1U\n" "KO2OK\n" "KO4OL\n" "KO4PU\n" "KO4XB\n" "KO4XJ\n" "KO4Y\n" "KO5DX\n" "KO6I\n" "KO6IS\n" "KO6U\n" "KO7AA\n" "KO7P\n" "KO7T\n" "KO7X\n" "KO9G\n" "KO9H\n" "KP2B\n" "KP2BH\n" "KP2CT\n" "KP2CW\n" "KP2D\n" "KP2DX\n" "KP2M\n" "KP2SJ\n" "KP2TM\n" "KP3AAA\n" "KP3G\n" "KP3S\n" "KP3VA\n" "KP3Z\n" "KP4AH\n" "KP4ATF\n" "KP4BD\n" "KP4BME\n" "KP4BOY\n" "KP4BT\n" "KP4ED\n" "KP4GB\n" "KP4GB/W3\n" "KP4GC\n" "KP4JFR\n" "KP4JRS\n" "KP4KE\n" "KP4KE/W4\n" "KP4LH\n" "KP4MS\n" "KP4QY\n" "KP4RAT\n" "KP4RAY\n" "KP4SQ\n" "KP4TF\n" "KP4US\n" "KP4VP\n" "KP4WW\n" "KP4Y/W0\n" "KQ0B\n" "KQ1A\n" "KQ1F\n" "KQ1P\n" "KQ1U\n" "KQ1X\n" "KQ2I\n" "KQ2M\n" "KQ3F\n" "KQ4BH\n" "KQ4KK\n" "KQ4VY\n" "KQ4Y\n" "KQ5E\n" "KQ6DX\n" "KQ6EA\n" "KQ6ES\n" "KQ6IU\n" "KQ6K\n" "KQ6LV\n" "KQ6MU\n" "KQ6OD\n" "KQ6PK\n" "KQ6Q\n" "KQ6X\n" "KQ6YG\n" "KQ6Z\n" "KQ7W\n" "KQ8E\n" "KQ8M\n" "KQ9J\n" "KR0I\n" "KR0K\n" "KR0O\n" "KR0T\n" "KR0U\n" "KR0V\n" "KR1A\n" "KR1B\n" "KR1ST\n" "KR2AA\n" "KR2C\n" "KR2D\n" "KR2Q\n" "KR3E\n" "KR3J\n" "KR3O\n" "KR4BG\n" "KR4EY\n" "KR4F\n" "KR4JY\n" "KR4LO\n" "KR4OJ\n" "KR4OW\n" "KR4RO\n" "KR4TI\n" "KR4U\n" "KR4V\n" "KR4WI\n" "KR4X\n" "KR4Z\n" "KR4ZA\n" "KR5DX\n" "KR5N\n" "KR5V\n" "KR5X\n" "KR6C\n" "KR6RR\n" "KR7DX\n" "KR7G\n" "KR7LD\n" "KR7O\n" "KR7RK\n" "KR7RR\n" "KR7W\n" "KR7X\n" "KR8MR\n" "KR8Q\n" "KR8T\n" "KR8U\n" "KR8V\n" "KS0AA\n" "KS0M\n" "KS0T\n" "KS0X\n" "KS0Y\n" "KS1C\n" "KS1G\n" "KS1J\n" "KS1Y\n" "KS2G\n" "KS2L\n" "KS2O\n" "KS3D\n" "KS3F\n" "KS3P\n" "KS3S\n" "KS4G\n" "KS4L\n" "KS4S\n" "KS4V\n" "KS4X\n" "KS4XN\n" "KS4Z\n" "KS5A\n" "KS5Z\n" "KS6A\n" "KS6M\n" "KS6U\n" "KS7S\n" "KS7T\n" "KS7U\n" "KS8O\n" "KS9K\n" "KS9W\n" "KT0AD\n" "KT0DX\n" "KT0F\n" "KT0K\n" "KT0P\n" "KT0R\n" "KT1B\n" "KT1D\n" "KT1I\n" "KT1J\n" "KT1V\n" "KT1VT\n" "KT2D\n" "KT2Z\n" "KT3M\n" "KT3W\n" "KT3Y\n" "KT4AH\n" "KT4CB\n" "KT4DW\n" "KT4FJ\n" "KT4FY\n" "KT4HX\n" "KT4LF\n" "KT4MM\n" "KT4OO\n" "KT4PD\n" "KT4Q\n" "KT4RH\n" "KT4SS\n" "KT4TL\n" "KT4U\n" "KT4ZB\n" "KT5D\n" "KT5E\n" "KT5G\n" "KT5J\n" "KT5V\n" "KT5X\n" "KT6D\n" "KT6DX\n" "KT6LA\n" "KT6V\n" "KT6VV\n" "KT6YL\n" "KT7AZ\n" "KT7DX\n" "KT7G\n" "KT8K\n" "KT8N\n" "KT8R\n" "KT8X\n" "KT8Y\n" "KT8Z\n" "KT9B\n" "KT9L\n" "KT9T\n" "KT9W\n" "KU0DM\n" "KU0G\n" "KU0K\n" "KU1CW\n" "KU1T\n" "KU2C\n" "KU2M\n" "KU2US\n" "KU3G\n" "KU3X\n" "KU4A\n" "KU4AF\n" "KU4BL\n" "KU4BP\n" "KU4C\n" "KU4EC\n" "KU4GW\n" "KU4ME\n" "KU4MT\n" "KU4PY\n" "KU4UV\n" "KU4UW\n" "KU4V\n" "KU4VY\n" "KU4WD\n" "KU4XO\n" "KU4XP\n" "KU4YT\n" "KU4YW\n" "KU4ZV\n" "KU5B\n" "KU6S\n" "KU7K\n" "KU7N\n" "KU7Y\n" "KU7Z\n" "KU8E\n" "KU8L\n" "KU8T\n" "KU8V\n" "KU9RK\n" "KU9S\n" "KU9Z\n" "KV0K\n" "KV0Q\n" "KV1J\n" "KV1P\n" "KV1W\n" "KV2K\n" "KV2M\n" "KV2R\n" "KV2S\n" "KV2X\n" "KV3W\n" "KV4CN\n" "KV4CQ\n" "KV4DT\n" "KV4FZ\n" "KV4K\n" "KV4T\n" "KV5V\n" "KV5WS\n" "KV5Y\n" "KV6O\n" "KV7DX\n" "KV7K\n" "KV7S\n" "KV8Q\n" "KV9O\n" "KV9R\n" "KV9W\n" "KW0H\n" "KW0U\n" "KW0V\n" "KW2A\n" "KW2G\n" "KW2HV\n" "KW2J\n" "KW2N\n" "KW2O\n" "KW3A\n" "KW3F\n" "KW3LO\n" "KW3U\n" "KW3W\n" "KW4CC\n" "KW4E\n" "KW4J\n" "KW4JS\n" "KW4T\n" "KW4TT\n" "KW4V\n" "KW4VA\n" "KW4WK\n" "KW5HP\n" "KW5K\n" "KW5USA\n" "KW6G\n" "KW6N\n" "KW6Q\n" "KW7A\n" "KW7E\n" "KW7I\n" "KW7JS\n" "KW7N\n" "KW7OS\n" "KW7Q\n" "KW7XX\n" "KW7Y\n" "KW8N\n" "KW8O\n" "KW8V\n" "KW9A\n" "KW9CAT\n" "KW9DX\n" "KW9M\n" "KW9N\n" "KW9R\n" "KX0R\n" "KX1E\n" "KX1G\n" "KX1X\n" "KX2A\n" "KX2B\n" "KX2H\n" "KX2P\n" "KX2S\n" "KX2X\n" "KX2Y\n" "KX3K\n" "KX3Q\n" "KX4D\n" "KX4G\n" "KX4O\n" "KX4P\n" "KX4R\n" "KX4X\n" "KX5A\n" "KX5RW\n" "KX5T\n" "KX5W\n" "KX6M\n" "KX6X\n" "KX7F\n" "KX7L\n" "KX7M\n" "KX7YT\n" "KX8A\n" "KX8D\n" "KX8K\n" "KX8X\n" "KX9DX\n" "KX9M\n" "KX9Q\n" "KX9X\n" "KY0O\n" "KY0R\n" "KY0W\n" "KY0Y\n" "KY1LAW\n" "KY1RK\n" "KY1Z\n" "KY2J\n" "KY2T\n" "KY3B\n" "KY3X\n" "KY4BP\n" "KY4CW\n" "KY4F\n" "KY4J\n" "KY4P\n" "KY4USA\n" "KY4Z\n" "KY5D\n" "KY5G\n" "KY5N\n" "KY5Q\n" "KY5R\n" "KY6J\n" "KY6LA\n" "KY7K\n" "KY7L\n" "KY7M\n" "KY7Q\n" "KY9KY\n" "KY9KYO\n" "KZ1A\n" "KZ1K\n" "KZ1M\n" "KZ1O\n" "KZ1W\n" "KZ1X\n" "KZ1Z\n" "KZ2I\n" "KZ2T\n" "KZ2V\n" "KZ3DX\n" "KZ3M\n" "KZ3Q\n" "KZ3W\n" "KZ3X\n" "KZ4D\n" "KZ4G\n" "KZ4USA\n" "KZ4V\n" "KZ4VT\n" "KZ4ZZ\n" "KZ5A\n" "KZ5AM\n" "KZ5D\n" "KZ5J\n" "KZ5JE\n" "KZ5MM\n" "KZ5OH\n" "KZ5OM\n" "KZ5P\n" "KZ5V\n" "KZ6D\n" "KZ7O\n" "KZ7Q\n" "KZ7X\n" "KZ8A\n" "KZ8E\n" "KZ8K\n" "KZ8ZZ\n" "KZ9O\n" "L20E\n" "L21D\n" "L25X\n" "L33M\n" "L44DX\n" "L46V\n" "L47H\n" "L55D\n" "L60DK\n" "L73D\n" "L73DX\n" "LA0CX\n" "LA0FA\n" "LA1BFA\n" "LA1DSA\n" "LA1EK\n" "LA1ENA\n" "LA1K\n" "LA1NSB\n" "LA1PHA\n" "LA1QDA\n" "LA1TPA\n" "LA1TPK\n" "LA1TUR\n" "LA1UKA\n" "LA1VFA\n" "LA1VNA\n" "LA1XFA\n" "LA1YE\n" "LA1YPA\n" "LA2008TSR\n" "LA2AB\n" "LA2FKA\n" "LA2GH\n" "LA2GN\n" "LA2GRA\n" "LA2HFA\n" "LA2IJ\n" "LA2MJA\n" "LA2MOA\n" "LA2O\n" "LA2OKA\n" "LA2PA\n" "LA2QM\n" "LA2RZ\n" "LA2TD\n" "LA2WRA\n" "LA2XPA\n" "LA3ANA\n" "LA3BO\n" "LA3BPA\n" "LA3HPA\n" "LA3RK\n" "LA3S\n" "LA3TK\n" "LA3WAA\n" "LA3YNA\n" "LA3YU\n" "LA3ZA\n" "LA3ZPA\n" "LA4CW\n" "LA4EI\n" "LA4EJ\n" "LA4EU\n" "LA4FNA\n" "LA4GHA\n" "LA4IR\n" "LA4NE\n" "LA4O\n" "LA4OGA\n" "LA4PM\n" "LA4RT\n" "LA4SGA\n" "LA4URA\n" "LA4WKA\n" "LA5EKA\n" "LA5FBA\n" "LA5FH\n" "LA5FJA\n" "LA5HE\n" "LA5HPA\n" "LA5IIA\n" "LA5LBA\n" "LA5LJA\n" "LA5MDA\n" "LA5PBA\n" "LA5PRA\n" "LA5SAA\n" "LA5SJA\n" "LA5TFA\n" "LA5UF\n" "LA5UJ\n" "LA5UKA\n" "LA5VK\n" "LA5WNA\n" "LA5YJ\n" "LA5YW\n" "LA5ZQ\n" "LA6ALA\n" "LA6BNA\n" "LA6CF\n" "LA6DW\n" "LA6FJA\n" "LA6HL\n" "LA6IHA\n" "LA6IRA\n" "LA6K\n" "LA6KOA\n" "LA6LDA\n" "LA6OP\n" "LA6PB\n" "LA6TP\n" "LA6VM\n" "LA6YEA\n" "LA6ZFA\n" "LA7AFA\n" "LA7CL\n" "LA7GIA\n" "LA7GNA\n" "LA7IJA\n" "LA7JO\n" "LA7NFA\n" "LA7OC\n" "LA7QI\n" "LA7QIA\n" "LA7RJ\n" "LA7RRA\n" "LA7SI\n" "LA7SKA\n" "LA7THA\n" "LA7TN\n" "LA7TO\n" "LA7VE\n" "LA7WCA\n" "LA7XK\n" "LA8AJA\n" "LA8AW\n" "LA8D\n" "LA8DW\n" "LA8HGA\n" "LA8KRA\n" "LA8NRA\n" "LA8OKA\n" "LA8OM\n" "LA8OOA\n" "LA8PDA\n" "LA8TIA\n" "LA8UHA\n" "LA8UL\n" "LA8WG\n" "LA8XM\n" "LA8ZIA\n" "LA9AJA\n" "LA9BM\n" "LA9DAA\n" "LA9DJA\n" "LA9DK\n" "LA9FFA\n" "LA9LMA\n" "LA9NM\n" "LA9QL\n" "LA9QNA\n" "LA9TJA\n" "LA9TY\n" "LA9VDA\n" "LA9VK\n" "LA9VPA\n" "LA9XKA\n" "LA9Z\n" "LB2TB\n" "LB3KB\n" "LB7Q\n" "LB9LE\n" "LB9RE\n" "LG5LG\n" "LN1T\n" "LN2HQ\n" "LN2L\n" "LN2T\n" "LN3F\n" "LN3R\n" "LN3Z\n" "LN4BBC\n" "LN5O\n" "LN7AZ\n" "LN8W\n" "LN9Z\n" "LO2F\n" "LO7D\n" "LO7H\n" "LP1H\n" "LP2F\n" "LP3U\n" "LQ0F\n" "LQ4D\n" "LQ5H\n" "LR1A\n" "LR1H\n" "LR1V\n" "LR2F\n" "LR4D\n" "LR4E\n" "LR6H\n" "LR7F\n" "LS1D\n" "LS2D\n" "LS2E\n" "LS4DX\n" "LT0D\n" "LT0H\n" "LT1A\n" "LT1D\n" "LT1F\n" "LT1K\n" "LT2F\n" "LT4S\n" "LT5D\n" "LT5H\n" "LT5X\n" "LT5Y\n" "LT7D\n" "LT7H\n" "LU1AEE\n" "LU1ALF\n" "LU1ARG\n" "LU1ARV\n" "LU1BJW\n" "LU1BR\n" "LU1BW\n" "LU1DCB\n" "LU1DK\n" "LU1DP\n" "LU1DZ\n" "LU1EDH\n" "LU1EJ\n" "LU1EWL\n" "LU1FDU\n" "LU1HF\n" "LU1HLH\n" "LU1IBL\n" "LU1ICX\n" "LU1MPK\n" "LU1MSD\n" "LU1NDC\n" "LU1QAH\n" "LU1QS\n" "LU1SF\n" "LU1UM\n" "LU1VM\n" "LU1WI\n" "LU1XS\n" "LU1YY\n" "LU2AH\n" "LU2BA\n" "LU2DGZ\n" "LU2DKT\n" "LU2DPW\n" "LU2DT\n" "LU2DVI/H\n" "LU2EE\n" "LU2EQF\n" "LU2FCB\n" "LU2FFD\n" "LU2FLN\n" "LU2NI\n" "LU2QC\n" "LU2UE\n" "LU2UF\n" "LU2VC\n" "LU3CQ\n" "LU3CT\n" "LU3DAT\n" "LU3DDH\n" "LU3DKV\n" "LU3DOC\n" "LU3DR\n" "LU3DX\n" "LU3DY\n" "LU3FID\n" "LU3FLV\n" "LU3HIP\n" "LU3HS\n" "LU3JVO\n" "LU3MAM\n" "LU3MCJ\n" "LU4AT\n" "LU4DPC\n" "LU4DQ\n" "LU4DX\n" "LU4DXU\n" "LU4EJS\n" "LU4FLJ\n" "LU4FPZ\n" "LU4FW\n" "LU4KC\n" "LU4MHQ\n" "LU4VEW\n" "LU4WG\n" "LU5CAB\n" "LU5EVK\n" "LU5FF\n" "LU5FII\n" "LU5FMC\n" "LU5FT\n" "LU5FZ/A\n" "LU5MT\n" "LU5OM\n" "LU5VV\n" "LU5WW\n" "LU5YF\n" "LU6AM\n" "LU6DAT\n" "LU6DK\n" "LU6DO\n" "LU6EF\n" "LU6EQT\n" "LU6ETB\n" "LU6EVD\n" "LU6FAH\n" "LU6FBJ\n" "LU6FEC\n" "LU6FN\n" "LU6FOV\n" "LU6FT\n" "LU6KA\n" "LU6QI\n" "LU6UBN\n" "LU6UO\n" "LU6WG\n" "LU6XQ/D\n" "LU7DNN\n" "LU7DSU\n" "LU7DSY\n" "LU7EE\n" "LU7FPA\n" "LU7FSM\n" "LU7FTS\n" "LU7FWV\n" "LU7HN\n" "LU7HW\n" "LU7KAT\n" "LU7MAL\n" "LU7MCJ\n" "LU7MSE\n" "LU7SN\n" "LU7VCH\n" "LU7YS\n" "LU7YW\n" "LU7YZ\n" "LU8ADX\n" "LU8DWR\n" "LU8DY\n" "LU8EEM\n" "LU8EGS\n" "LU8EHR\n" "LU8EOT\n" "LU8QT\n" "LU8SAN\n" "LU8YE\n" "LU9DA\n" "LU9DAG\n" "LU9DO\n" "LU9DTC\n" "LU9ESD\n" "LU9EY\n" "LU9FDG\n" "LU9FFZ\n" "LU9HP\n" "LU9MBY\n" "LU9MDH\n" "LV5V\n" "LV6D\n" "LW1DBG\n" "LW1DTZ\n" "LW1DX\n" "LW1E\n" "LW1EUD\n" "LW1EXU/D\n" "LW1HR\n" "LW2DFH\n" "LW3DC\n" "LW3DG\n" "LW3DIV\n" "LW3DN\n" "LW3EWZ\n" "LW3EX\n" "LW4DYI\n" "LW4EU\n" "LW4HBR\n" "LW5DFR\n" "LW5DR\n" "LW5EAE\n" "LW5EE\n" "LW5ET\n" "LW5HBR\n" "LW6DG\n" "LW6DW\n" "LW6EFR\n" "LW7DX\n" "LW7H\n" "LW7HE\n" "LW7HT\n" "LW8DQ\n" "LW9DHR\n" "LW9EOC\n" "LW9ETQ\n" "LX0HQ\n" "LX1A\n" "LX1DA\n" "LX1EA\n" "LX1ER\n" "LX1FC\n" "LX1HD\n" "LX1KC\n" "LX1KN\n" "LX1NO\n" "LX1SG\n" "LX1TO\n" "LX1UN\n" "LX30AK\n" "LX4A\n" "LX5T\n" "LX7I\n" "LX8DL\n" "LX8I\n" "LX8M\n" "LX8RTTY\n" "LX9EG\n" "LX9UN\n" "LY0HQ\n" "LY1AKM\n" "LY1BA\n" "LY1BX\n" "LY1C\n" "LY1CG\n" "LY1CM\n" "LY1CO\n" "LY1CT\n" "LY1CX\n" "LY1DJ\n" "LY1DT\n" "LY1FGP\n" "LY1FW\n" "LY1G\n" "LY1GK\n" "LY1K\n" "LY1M\n" "LY1MA\n" "LY1N\n" "LY1NDN\n" "LY1PM\n" "LY1R\n" "LY1RB\n" "LY1TR\n" "LY1XA\n" "LY1XM\n" "LY2A\n" "LY2AE\n" "LY2AO\n" "LY2AT\n" "LY2BAW\n" "LY2BBF\n" "LY2BIS\n" "LY2BKT\n" "LY2BNL\n" "LY2BOK\n" "LY2BOS\n" "LY2BUU\n" "LY2BVB\n" "LY2C\n" "LY2CG\n" "LY2CO\n" "LY2CV\n" "LY2CX\n" "LY2DM\n" "LY2DV\n" "LY2DX\n" "LY2DZ\n" "LY2F\n" "LY2FN\n" "LY2GV\n" "LY2GW\n" "LY2H\n" "LY2IJ\n" "LY2J\n" "LY2K\n" "LY2KM\n" "LY2KZ\n" "LY2L\n" "LY2LB\n" "LY2LE\n" "LY2LF\n" "LY2LU\n" "LY2MM\n" "LY2N\n" "LY2ND\n" "LY2NK\n" "LY2O\n" "LY2OF\n" "LY2OM\n" "LY2OO\n" "LY2OU\n" "LY2OX\n" "LY2PX\n" "LY2QT\n" "LY2RJ\n" "LY2SA\n" "LY2SL\n" "LY2T\n" "LY2TA\n" "LY2TS\n" "LY2VA\n" "LY2W\n" "LY2WJ\n" "LY2WN\n" "LY2X\n" "LY2XW\n" "LY2YR\n" "LY2ZZ\n" "LY3A\n" "LY3B\n" "LY3BB\n" "LY3BG\n" "LY3BM\n" "LY3BN\n" "LY3BY\n" "LY3CW\n" "LY3CY\n" "LY3ID\n" "LY3JM\n" "LY3KS\n" "LY3M\n" "LY3NX\n" "LY3O\n" "LY3P\n" "LY3QA\n" "LY3RA\n" "LY3S\n" "LY3SL\n" "LY3TW\n" "LY3UV\n" "LY3V\n" "LY3VD\n" "LY3W\n" "LY3X\n" "LY3ZM\n" "LY4A\n" "LY4AA\n" "LY4BF\n" "LY4BP\n" "LY4BR\n" "LY4CW\n" "LY4D\n" "LY4G\n" "LY4K\n" "LY4L\n" "LY4MM\n" "LY4OO\n" "LY4Q\n" "LY4R\n" "LY4T\n" "LY5A\n" "LY5G\n" "LY5R\n" "LY5W\n" "LY6A\n" "LY6M\n" "LY7A\n" "LY7M\n" "LY7Z\n" "LY8O\n" "LY9A\n" "LY9Y\n" "LZ/SQ9UM\n" "LZ09BR\n" "LZ09IPY\n" "LZ100SO\n" "LZ10ARDF\n" "LZ10RF\n" "LZ1195IR\n" "LZ170HD\n" "LZ17ARDF\n" "LZ180FT\n" "LZ1ABC\n" "LZ1AF\n" "LZ1AQ\n" "LZ1AZ\n" "LZ1BJ\n" "LZ1BJ/1\n" "LZ1BP\n" "LZ1BY\n" "LZ1CF\n" "LZ1CY\n" "LZ1DCD\n" "LZ1DM\n" "LZ1DNY\n" "LZ1DO\n" "LZ1DQ\n" "LZ1EO\n" "LZ1EP\n" "LZ1FH\n" "LZ1FI\n" "LZ1FJ\n" "LZ1GL\n" "LZ1HW\n" "LZ1IA\n" "LZ1IKY\n" "LZ1IQ\n" "LZ1JY\n" "LZ1JZ\n" "LZ1KP\n" "LZ1KSC\n" "LZ1KZA\n" "LZ1MC\n" "LZ1MG\n" "LZ1MS\n" "LZ1ND\n" "LZ1NG\n" "LZ1NJ\n" "LZ1NK\n" "LZ1NY\n" "LZ1NYK\n" "LZ1OI\n" "LZ1OJ\n" "LZ1ONK\n" "LZ1PJ\n" "LZ1PM\n" "LZ1PSH\n" "LZ1QB\n" "LZ1QI\n" "LZ1QN\n" "LZ1QV\n" "LZ1QZ\n" "LZ1RGM\n" "LZ1SDR\n" "LZ1VB\n" "LZ1VCT\n" "LZ1VQ\n" "LZ1VVV\n" "LZ1WJ\n" "LZ1XL\n" "LZ1YE\n" "LZ1YG\n" "LZ1YP\n" "LZ1YY\n" "LZ1ZC\n" "LZ1ZF\n" "LZ1ZJ\n" "LZ1ZM\n" "LZ1ZV\n" "LZ26ZA\n" "LZ2A\n" "LZ2AB\n" "LZ2AG\n" "LZ2AY\n" "LZ2BE\n" "LZ2CC\n" "LZ2CE\n" "LZ2CJ\n" "LZ2CWW\n" "LZ2DF\n" "LZ2EG\n" "LZ2ES\n" "LZ2FM\n" "LZ2FO\n" "LZ2FQ\n" "LZ2GS\n" "LZ2HA\n" "LZ2HM\n" "LZ2HN\n" "LZ2HR\n" "LZ2JA\n" "LZ2JR\n" "LZ2KAF\n" "LZ2KV\n" "LZ2LE\n" "LZ2LH\n" "LZ2LT\n" "LZ2MW\n" "LZ2NA\n" "LZ2NG\n" "LZ2NKM\n" "LZ2OV\n" "LZ2PB\n" "LZ2PEP\n" "LZ2PI\n" "LZ2PL\n" "LZ2PS\n" "LZ2RS\n" "LZ2SC\n" "LZ2SX\n" "LZ2UU\n" "LZ2UW\n" "LZ2UZ\n" "LZ2VP\n" "LZ2VU\n" "LZ2XF\n" "LZ2ZD\n" "LZ2ZF\n" "LZ2ZG\n" "LZ2ZY\n" "LZ3CB\n" "LZ3DX\n" "LZ3FN\n" "LZ3HI\n" "LZ3IW\n" "LZ3NY\n" "LZ3PZ\n" "LZ3RZ\n" "LZ3SD\n" "LZ3SM\n" "LZ3TL\n" "LZ3TY\n" "LZ3YV\n" "LZ3ZQ\n" "LZ3ZX\n" "LZ3ZZ\n" "LZ40ATSA\n" "LZ44WFF\n" "LZ4AE\n" "LZ4BU\n" "LZ4GL\n" "LZ4RR\n" "LZ4TL\n" "LZ4TX\n" "LZ4UU\n" "LZ5A\n" "LZ5F\n" "LZ5K\n" "LZ5R\n" "LZ5T\n" "LZ5VK\n" "LZ5XQ\n" "LZ5Z\n" "LZ5ZI\n" "LZ65P\n" "LZ6W\n" "LZ7G\n" "LZ7H\n" "LZ7HQ\n" "LZ7J\n" "LZ7S\n" "LZ7T\n" "LZ7X\n" "LZ8A\n" "LZ8E\n" "LZ8W\n" "LZ9A\n" "LZ9C\n" "LZ9R\n" "LZ9V\n" "LZ9W\n" "LZ9X\n" "M0AAA\n" "M0AAC\n" "M0AAS\n" "M0ACL\n" "M0ACM\n" "M0AEJ\n" "M0AEU\n" "M0AFE\n" "M0AFJ\n" "M0AGA\n" "M0AID\n" "M0AJM\n" "M0AMS\n" "M0AOI\n" "M0ASR\n" "M0AWS\n" "M0AWX\n" "M0AXD\n" "M0B\n" "M0BCT\n" "M0BGR\n" "M0BJL\n" "M0BJX\n" "M0BKH\n" "M0BKV\n" "M0BLF\n" "M0BMX\n" "M0BPQ\n" "M0BSV\n" "M0BUY\n" "M0BVE\n" "M0BVQ\n" "M0BXR\n" "M0BZU\n" "M0BZZ\n" "M0CAR\n" "M0CCQ\n" "M0CEF\n" "M0CES\n" "M0CFW\n" "M0CHK\n" "M0CJW\n" "M0CKE\n" "M0CKX\n" "M0CMH\n" "M0CNP\n" "M0COK\n" "M0COM\n" "M0COP\n" "M0CQE\n" "M0CSD\n" "M0CTR\n" "M0CUL\n" "M0CUS\n" "M0CVK\n" "M0CYR\n" "M0DCD\n" "M0DDT\n" "M0DEG\n" "M0DEP\n" "M0DGB\n" "M0DHO\n" "M0DIV\n" "M0DKN\n" "M0DLL\n" "M0DMA\n" "M0DMJ\n" "M0DMS\n" "M0DOL\n" "M0DOL/P\n" "M0DSK\n" "M0DUO\n" "M0DVV\n" "M0DWW\n" "M0DXR\n" "M0DXS\n" "M0DYI\n" "M0EBJ\n" "M0EDX\n" "M0EMM\n" "M0EVI\n" "M0FAQ\n" "M0FCR\n" "M0FJM\n" "M0FTL\n" "M0GAV\n" "M0GBK\n" "M0GBP\n" "M0GDX\n" "M0GEJ\n" "M0GHQ\n" "M0GIA/P\n" "M0GIZ\n" "M0GJH\n" "M0GKC\n" "M0GLP\n" "M0GME\n" "M0GMT\n" "M0GWS\n" "M0HDD\n" "M0HDK\n" "M0HEM\n" "M0HKB\n" "M0HRC\n" "M0HWK\n" "M0IAA\n" "M0IKE\n" "M0ILT\n" "M0INB\n" "M0IOD\n" "M0IPS\n" "M0ITY\n" "M0JME\n" "M0JMO\n" "M0JRA\n" "M0KAZ\n" "M0KOP\n" "M0KPB\n" "M0KSJ\n" "M0KTM\n" "M0KVP\n" "M0KZH\n" "M0LLW\n" "M0LMH\n" "M0LUV\n" "M0MAC\n" "M0MAD\n" "M0MCV\n" "M0MCX\n" "M0MDF\n" "M0MDR\n" "M0MGF\n" "M0MRB\n" "M0NDZ\n" "M0NKS\n" "M0NNH\n" "M0NOV\n" "M0NQN\n" "M0OIC\n" "M0OKT\n" "M0OVL\n" "M0OXD\n" "M0OXO\n" "M0PAR\n" "M0PCB\n" "M0PIE\n" "M0PNN\n" "M0POQ\n" "M0PSK\n" "M0PSW\n" "M0RBE\n" "M0RBG\n" "M0REX\n" "M0RGI\n" "M0RHS\n" "M0RIA\n" "M0RMW\n" "M0RNR\n" "M0RPD\n" "M0RSD\n" "M0RTI\n" "M0RYB\n" "M0SAD\n" "M0SAT\n" "M0SCG\n" "M0SDX\n" "M0SDY\n" "M0SEL\n" "M0SFR\n" "M0SLA/W9\n" "M0SUF\n" "M0TAZ\n" "M0TCA\n" "M0TDW\n" "M0TEF\n" "M0TFO\n" "M0TJU\n" "M0TLN\n" "M0TMW/P\n" "M0TUB\n" "M0TUL\n" "M0TVT\n" "M0TWW\n" "M0TZO\n" "M0UCK\n" "M0UNI\n" "M0URX\n" "M0USY\n" "M0UTD\n" "M0UTD/P\n" "M0VAA\n" "M0VBY\n" "M0VFC\n" "M0VIE\n" "M0VKC\n" "M0VKX\n" "M0VKY\n" "M0VPE\n" "M0WAY\n" "M0WBX\n" "M0WGI\n" "M0WKR\n" "M0WLF\n" "M0WTD\n" "M0WTF\n" "M0WTG\n" "M0WYB\n" "M0WYM\n" "M0XAT\n" "M0XDX\n" "M0XGB\n" "M0XIE\n" "M0XIK\n" "M0XJP\n" "M0XKD\n" "M0XLD\n" "M0XLT\n" "M0XSM\n" "M0XXT\n" "M0YCQ\n" "M0YCQ/P\n" "M0YEC\n" "M0YOM\n" "M0YYV\n" "M0ZAK\n" "M0ZDW\n" "M0ZJB\n" "M0ZRA\n" "M0ZWW\n" "M1A\n" "M1ACB\n" "M1ADX\n" "M1BYH\n" "M1CEC\n" "M1DDD\n" "M1DNC\n" "M1DSE/P\n" "M1DST\n" "M1DTJ\n" "M1EBV\n" "M1EYP\n" "M1EYP/P\n" "M1FCV\n" "M1HOG\n" "M1LMO\n" "M1PTR\n" "M1SLH\n" "M1SMH\n" "M1TZR\n" "M1VHT\n" "M1WDK\n" "M2W\n" "M2X\n" "M3CEC\n" "M3DOV\n" "M3ENF\n" "M3FDZ\n" "M3GWO\n" "M3HXS\n" "M3JFM\n" "M3OHA\n" "M3OIG\n" "M3ONL\n" "M3PBK\n" "M3PHP\n" "M3PSK\n" "M3PZT\n" "M3RCV\n" "M3TBV\n" "M3TLP\n" "M3UFB\n" "M3UNN\n" "M3UXJ\n" "M3UZV\n" "M3VAM\n" "M3VQZ\n" "M3W\n" "M3WAZ\n" "M3WNF\n" "M3WYX\n" "M3XAC\n" "M3XFL\n" "M3XIK\n" "M3XMC\n" "M3XYP\n" "M3YFL\n" "M3YOS\n" "M3ZWW\n" "M3ZXX\n" "M4A\n" "M4T\n" "M4U\n" "M5A\n" "M5ADZ\n" "M5AEF\n" "M5AEO\n" "M5AEX\n" "M5AFD\n" "M5AGV\n" "M5ALG\n" "M5ARC\n" "M5B\n" "M5BFL\n" "M5BFL/P\n" "M5DIK\n" "M5E\n" "M5FUN\n" "M5GUS\n" "M5ITE\n" "M5KJM\n" "M5LRO\n" "M5O\n" "M5T\n" "M5X\n" "M6CMG\n" "M6GCS\n" "M6HRS\n" "M6JAS\n" "M6KAH\n" "M6OJE\n" "M6RPG\n" "M6T\n" "M6W\n" "M7A\n" "M7T\n" "M8C\n" "M8M\n" "M9C\n" "M9W\n" "M9X\n" "MA0BQI\n" "MA0GPZ\n" "MA0RKT\n" "MA0XAU\n" "MA3YFT\n" "MC0SHL\n" "MD0CCE\n" "MD0MDI\n" "MD3YLX\n" "MD3ZFQ\n" "MD4K\n" "MD6V\n" "MD9Y\n" "MI0AYR\n" "MI0BPB\n" "MI0ENR\n" "MI0GRG\n" "MI0GTM\n" "MI0JFC\n" "MI0JZZ\n" "MI0LLL\n" "MI0M\n" "MI0MIX\n" "MI0MVP\n" "MI0SAI\n" "MI0SDR\n" "MI0TFK\n" "MI1SJM\n" "MI3OZX\n" "MI5JYK\n" "MI6GWA\n" "MJ/W1NN\n" "MJ0ASP\n" "MJ0CFW\n" "MJ4K\n" "MM0AMW\n" "MM0APF\n" "MM0BHX\n" "MM0BHY\n" "MM0BQI\n" "MM0BQN\n" "MM0BSM\n" "MM0CBL\n" "MM0CIN\n" "MM0DFV\n" "MM0DFZ\n" "MM0DVZ\n" "MM0DWF\n" "MM0DXH\n" "MM0EAX\n" "MM0FWG\n" "MM0GHM/P\n" "MM0GOR\n" "MM0GPZ\n" "MM0JOK\n" "MM0JVB\n" "MM0KBT\n" "MM0LGR\n" "MM0LID\n" "MM0MOC\n" "MM0MUK\n" "MM0NDX\n" "MM0Q\n" "MM0R\n" "MM0RKT\n" "MM0ROV\n" "MM0SAJ\n" "MM0SGQ\n" "MM0SJH\n" "MM0TFU\n" "MM0TOB\n" "MM0VTV\n" "MM0WHA\n" "MM0WNW\n" "MM0XAU\n" "MM0XDG\n" "MM0YEC\n" "MM1D\n" "MM2R\n" "MM3LLU\n" "MM3PDM\n" "MM3RCR\n" "MM3RDP\n" "MM3T\n" "MM3UOR\n" "MM3WEV\n" "MM3XXW\n" "MM3YCG\n" "MM3YFT\n" "MM3YIO\n" "MM5DWW\n" "MM5FUN\n" "MM6ADR\n" "MM6GLI\n" "MM6SOR\n" "MN0OCG/P\n" "MS0ZET\n" "MU/DL5SE\n" "MU/OZ7BQ\n" "MU0FAL\n" "MU0GSY\n" "MW0AUG\n" "MW0BYS\n" "MW0CBC\n" "MW0CRI\n" "MW0CVT\n" "MW0CWJ\n" "MW0DNF\n" "MW0GOV\n" "MW0HMV\n" "MW0IDX\n" "MW0JRX\n" "MW0JZE\n" "MW0LAO\n" "MW0MAU\n" "MW0MJB\n" "MW0MWZ\n" "MW0RZC\n" "MW0X\n" "MW0XMI\n" "MW0YDX\n" "MW0ZZK\n" "MW1LCR\n" "MW1MDH\n" "MW2I\n" "MW3WSC\n" "MW5A\n" "MW5ACN\n" "MW5D\n" "MW6SLW\n" "MW6VHF\n" "MW9W\n" "MX0ADJ\n" "MX1SWL/A\n" "MZ5B\n" "MZ8A\n" "N0ABA\n" "N0AC\n" "N0ADL\n" "N0AE\n" "N0AG\n" "N0AH\n" "N0AIE\n" "N0ANP\n" "N0AR\n" "N0ARU\n" "N0AT\n" "N0AV\n" "N0AX\n" "N0AZZ\n" "N0BB\n" "N0BDS\n" "N0BE\n" "N0BED\n" "N0BK\n" "N0BLG\n" "N0BM\n" "N0BOF\n" "N0BSS\n" "N0BUI\n" "N0CEL\n" "N0CKC\n" "N0CN\n" "N0CRL\n" "N0CU\n" "N0DFP\n" "N0DH\n" "N0DJY\n" "N0DNR\n" "N0DQS\n" "N0DWY\n" "N0EG\n" "N0ENQ\n" "N0EO\n" "N0EOP\n" "N0EQ\n" "N0EVH\n" "N0EZH\n" "N0FCD\n" "N0FP\n" "N0FTZ\n" "N0FV\n" "N0FW\n" "N0GBR\n" "N0GF\n" "N0GIC\n" "N0GMG\n" "N0GMT\n" "N0GOM\n" "N0GOS\n" "N0GWH\n" "N0GZ\n" "N0HD\n" "N0HF\n" "N0HIO\n" "N0HJZ\n" "N0HNQ\n" "N0HR\n" "N0HT\n" "N0HT/4\n" "N0IB\n" "N0IBD\n" "N0IBT\n" "N0IJ\n" "N0IJK\n" "N0IM\n" "N0IRM\n" "N0IRW\n" "N0IW\n" "N0JBF\n" "N0JG\n" "N0JK\n" "N0JL\n" "N0JTE\n" "N0JX\n" "N0JZ\n" "N0KBD\n" "N0KE\n" "N0KGM\n" "N0KK\n" "N0KM\n" "N0KMA\n" "N0KQ\n" "N0KV\n" "N0LEF\n" "N0LGU\n" "N0LIA\n" "N0LIE\n" "N0LLH\n" "N0LP\n" "N0LRI\n" "N0LSD\n" "N0LTX\n" "N0LY\n" "N0LZ\n" "N0MA\n" "N0MNO\n" "N0MSB\n" "N0NB\n" "N0NC\n" "N0NI\n" "N0NM\n" "N0NO\n" "N0NR\n" "N0NS\n" "N0OB\n" "N0OCT\n" "N0ODK\n" "N0OJ\n" "N0OK\n" "N0OP\n" "N0OST\n" "N0OU\n" "N0PB\n" "N0PC\n" "N0PFE\n" "N0PL\n" "N0PNQ\n" "N0PSJ\n" "N0PVZ\n" "N0QE\n" "N0QNL\n" "N0QO\n" "N0QP\n" "N0QW\n" "N0QX\n" "N0QXW\n" "N0RB\n" "N0RDJ\n" "N0RN\n" "N0RPI\n" "N0RPJ\n" "N0RR\n" "N0RT\n" "N0RU\n" "N0RUV\n" "N0RWR\n" "N0RZT\n" "N0SJ\n" "N0SM\n" "N0SMX\n" "N0SO\n" "N0SOX\n" "N0SRF\n" "N0SS\n" "N0SSC\n" "N0ST\n" "N0STL\n" "N0SWE\n" "N0SXX\n" "N0TA\n" "N0TG\n" "N0TK\n" "N0TMU\n" "N0TOP\n" "N0TT\n" "N0TU\n" "N0TUN\n" "N0TW\n" "N0TYE\n" "N0UA\n" "N0UB\n" "N0UD\n" "N0UJJ\n" "N0UN\n" "N0UNL\n" "N0UR\n" "N0URW\n" "N0UU\n" "N0UV\n" "N0UY\n" "N0VCY\n" "N0VD\n" "N0VLJ\n" "N0VLN\n" "N0VPL\n" "N0VR\n" "N0VRP\n" "N0VTZ\n" "N0VVH\n" "N0VY\n" "N0WAF\n" "N0WAR\n" "N0WE\n" "N0WFO\n" "N0WM\n" "N0XA\n" "N0XJO\n" "N0XM\n" "N0XR\n" "N0XT\n" "N0YD\n" "N0YE\n" "N0YKN\n" "N0YO\n" "N0YY\n" "N0ZA\n" "N0ZC\n" "N0ZGG\n" "N0ZK\n" "N0ZM\n" "N1AA\n" "N1AAU\n" "N1ABA\n" "N1ABF\n" "N1ABY\n" "N1AC\n" "N1ADY\n" "N1AIA\n" "N1AM\n" "N1AO\n" "N1AP\n" "N1API\n" "N1AU\n" "N1AW\n" "N1BAA\n" "N1BCL\n" "N1BFO\n" "N1BG\n" "N1BNC\n" "N1BQL\n" "N1BRU\n" "N1BSA\n" "N1BUG\n" "N1BY\n" "N1BZ\n" "N1CC\n" "N1CE\n" "N1CGP\n" "N1CKM\n" "N1CM\n" "N1CWR\n" "N1DC\n" "N1DCM\n" "N1DD\n" "N1DF\n" "N1DG\n" "N1DGF\n" "N1DJF\n" "N1DK\n" "N1DM\n" "N1DS\n" "N1EMC\n" "N1EO\n" "N1EOP\n" "N1EU\n" "N1EY\n" "N1EZO\n" "N1FD\n" "N1FDX\n" "N1FIO\n" "N1FJ\n" "N1FOJ\n" "N1FQ\n" "N1GB\n" "N1GC\n" "N1GDD\n" "N1GE\n" "N1GFS\n" "N1GKE\n" "N1GKX\n" "N1GLT\n" "N1GN\n" "N1GSA\n" "N1HCE\n" "N1HLZ\n" "N1HRA\n" "N1HT\n" "N1HTS\n" "N1HY\n" "N1IBM\n" "N1IER\n" "N1ILD\n" "N1IMW\n" "N1ITT\n" "N1IUN\n" "N1IVY\n" "N1IW\n" "N1IX\n" "N1IXF\n" "N1JAO\n" "N1JBH\n" "N1JD\n" "N1JDK\n" "N1JM\n" "N1JP\n" "N1JW\n" "N1KEZ\n" "N1KJW\n" "N1KOH\n" "N1KON\n" "N1KPY\n" "N1KR\n" "N1KW\n" "N1KWF\n" "N1LI\n" "N1LJG\n" "N1LN\n" "N1LQ\n" "N1LT\n" "N1LU\n" "N1MEO\n" "N1MGO\n" "N1MIW\n" "N1MJF\n" "N1MM\n" "N1MQ\n" "N1ND\n" "N1NK\n" "N1NKC\n" "N1NN\n" "N1NQZ\n" "N1NRK\n" "N1OFV\n" "N1OIG\n" "N1OWA\n" "N1OXA\n" "N1PGA\n" "N1PT\n" "N1QAE\n" "N1QEH\n" "N1QEQ\n" "N1QI\n" "N1QM\n" "N1QN\n" "N1QV\n" "N1QXV\n" "N1QY\n" "N1RA\n" "N1RB\n" "N1RFB\n" "N1RFK\n" "N1RK\n" "N1RNJ\n" "N1RR\n" "N1RX\n" "N1SDH\n" "N1SM\n" "N1SNB\n" "N1SPX\n" "N1SV\n" "N1SW\n" "N1SXL\n" "N1SZ\n" "N1TB\n" "N1TKS\n" "N1TM\n" "N1TO\n" "N1TQ\n" "N1UDY\n" "N1UED\n" "N1UK\n" "N1UR\n" "N1URA\n" "N1UW\n" "N1UZ\n" "N1VVV\n" "N1VXW\n" "N1WC\n" "N1WGX\n" "N1WK\n" "N1WON\n" "N1WPU\n" "N1WQ\n" "N1WR\n" "N1WRK\n" "N1WWE\n" "N1XIH/7\n" "N1XK\n" "N1XLG\n" "N1XQ\n" "N1XX\n" "N1XY\n" "N1YBX\n" "N1YC\n" "N1YE\n" "N1YF\n" "N1YNI\n" "N1YW\n" "N1YWB\n" "N1YX\n" "N1YXE\n" "N1ZJ\n" "N1ZN\n" "N1ZQ\n" "N1ZU\n" "N1ZX\n" "N1ZZ\n" "N2AA\n" "N2AB\n" "N2ADE\n" "N2AET\n" "N2AJ\n" "N2AK\n" "N2AMG\n" "N2AN\n" "N2ATA\n" "N2AUG\n" "N2AXX\n" "N2AYI\n" "N2BA\n" "N2BC\n" "N2BEE\n" "N2BEG\n" "N2BJ\n" "N2BJ/9\n" "N2BJV\n" "N2BMK\n" "N2BR\n" "N2BT\n" "N2BZP\n" "N2CEI\n" "N2CG\n" "N2CHD\n" "N2CJ\n" "N2CJO\n" "N2CK\n" "N2CQ\n" "N2CU\n" "N2CUA\n" "N2CW\n" "N2CYY\n" "N2DPF\n" "N2DVQ\n" "N2DW\n" "N2DWS\n" "N2EA\n" "N2ED\n" "N2EGO\n" "N2EIK\n" "N2EM\n" "N2EOC\n" "N2ESH\n" "N2ESP\n" "N2ETJ\n" "N2EX/4\n" "N2EY\n" "N2FBV\n" "N2FF\n" "N2FJ\n" "N2FNO\n" "N2FPJ\n" "N2FQ\n" "N2FT\n" "N2FY\n" "N2GA\n" "N2GC\n" "N2GDU\n" "N2GG\n" "N2GJ\n" "N2GM\n" "N2GRS\n" "N2GVB\n" "N2GWK\n" "N2HMM\n" "N2HN\n" "N2HO\n" "N2IC\n" "N2IEL\n" "N2IEN\n" "N2IMM\n" "N2ION\n" "N2IW\n" "N2IX\n" "N2IXD\n" "N2IXX\n" "N2JBA\n" "N2JDQ\n" "N2JEN\n" "N2JEX\n" "N2JF\n" "N2JJ\n" "N2JNZ\n" "N2JTZ\n" "N2JUG\n" "N2KA\n" "N2KHH\n" "N2KI\n" "N2KPB\n" "N2KRN\n" "N2KW\n" "N2KW/1\n" "N2KX\n" "N2LBR\n" "N2LEB\n" "N2LEC\n" "N2LH\n" "N2LJJ\n" "N2LK\n" "N2LL\n" "N2LQ\n" "N2LT\n" "N2MAD\n" "N2MCI\n" "N2MEE\n" "N2MF\n" "N2MGT\n" "N2MH\n" "N2MID\n" "N2MLP\n" "N2MM\n" "N2MO\n" "N2MTG\n" "N2MUN\n" "N2MZZ\n" "N2NC\n" "N2NDY\n" "N2NEP\n" "N2NF\n" "N2NFC\n" "N2NGW\n" "N2NHN\n" "N2NI\n" "N2NKP\n" "N2NL\n" "N2NNN\n" "N2NNY\n" "N2NO\n" "N2NOM\n" "N2NQ\n" "N2NS\n" "N2NT\n" "N2NVH\n" "N2OB\n" "N2OGK\n" "N2OMC\n" "N2OO\n" "N2OPW\n" "N2OPW/8\n" "N2OT\n" "N2OUV\n" "N2OZ\n" "N2PA\n" "N2PHI\n" "N2PK\n" "N2PKB\n" "N2PKP\n" "N2PL\n" "N2PP\n" "N2QLQ\n" "N2QMT\n" "N2QQF\n" "N2QT\n" "N2QT/4\n" "N2QZ\n" "N2RF\n" "N2RFA\n" "N2RHL\n" "N2RI\n" "N2RIT\n" "N2RJ\n" "N2RK\n" "N2RM\n" "N2RM/4\n" "N2RO\n" "N2RR\n" "N2RRA\n" "N2SLC\n" "N2SO\n" "N2SQW\n" "N2SS\n" "N2SU\n" "N2TEW\n" "N2TK\n" "N2TM\n" "N2TN\n" "N2TO\n" "N2TRX\n" "N2TTL\n" "N2TU\n" "N2UL\n" "N2UM\n" "N2UN\n" "N2UO\n" "N2US\n" "N2USM\n" "N2UT\n" "N2UU\n" "N2UZ\n" "N2VM\n" "N2VRA\n" "N2VT\n" "N2VW\n" "N2VYT\n" "N2WB\n" "N2WC\n" "N2WF\n" "N2WFK\n" "N2WK\n" "N2WKS\n" "N2WLG\n" "N2WLS\n" "N2WM\n" "N2WN\n" "N2WQ/VE3\n" "N2WSY\n" "N2WW\n" "N2WY\n" "N2XDR\n" "N2XNB\n" "N2XP\n" "N2XPW\n" "N2XQM\n" "N2XT\n" "N2XWV\n" "N2YB\n" "N2YBB\n" "N2YC\n" "N2YDD\n" "N2YET\n" "N2YHN\n" "N2YN\n" "N2YO\n" "N2YOA\n" "N2YVF\n" "N2YXW\n" "N2ZAK\n" "N2ZN\n" "N2ZUL\n" "N2ZX\n" "N2ZZ\n" "N3AAF\n" "N3AB\n" "N3AD\n" "N3ADF\n" "N3AE\n" "N3AF\n" "N3AFT\n" "N3AIU\n" "N3ALN\n" "N3AM\n" "N3AO\n" "N3AS\n" "N3ATQ\n" "N3AYY\n" "N3AZH\n" "N3BA\n" "N3BB\n" "N3BBF\n" "N3BC\n" "N3BHM\n" "N3BM\n" "N3BNA\n" "N3BUD\n" "N3BUO\n" "N3CAU\n" "N3CB\n" "N3CDA\n" "N3CHX\n" "N3CJD\n" "N3CO\n" "N3COB\n" "N3CR\n" "N3CRM\n" "N3CW\n" "N3CXV\n" "N3CY\n" "N3CZ\n" "N3DAP\n" "N3DBC\n" "N3DFK\n" "N3DG\n" "N3DG/2\n" "N3DNX\n" "N3DUE\n" "N3DXX\n" "N3EEI\n" "N3EFZ\n" "N3EMF\n" "N3EMZ\n" "N3EN\n" "N3ER\n" "N3EU\n" "N3FAW\n" "N3FD\n" "N3FES\n" "N3FIU\n" "N3FJP\n" "N3FKS\n" "N3FP\n" "N3FSC\n" "N3FSQ\n" "N3FX\n" "N3FZ\n" "N3GA\n" "N3GD\n" "N3GGT\n" "N3GH\n" "N3GJ\n" "N3GL\n" "N3GM\n" "N3GNW\n" "N3GS\n" "N3GSN\n" "N3GXX\n" "N3HBX\n" "N3HE\n" "N3HQB\n" "N3HU\n" "N3HYB\n" "N3ICK\n" "N3II\n" "N3IK\n" "N3IL\n" "N3INJ\n" "N3IQ\n" "N3IYX\n" "N3JAB\n" "N3JB\n" "N3JDQ\n" "N3JIX\n" "N3JJT\n" "N3JNX\n" "N3JON\n" "N3JT\n" "N3JW\n" "N3KAE\n" "N3KBF\n" "N3KCJ\n" "N3KHK\n" "N3KKM\n" "N3KN\n" "N3KR\n" "N3KRS\n" "N3KRX\n" "N3KS\n" "N3KTA\n" "N3KTV\n" "N3KUN\n" "N3KV\n" "N3LAZ\n" "N3LFC\n" "N3LH\n" "N3LL\n" "N3LWM\n" "N3MA\n" "N3ME\n" "N3MK\n" "N3MMH\n" "N3MON\n" "N3MRA\n" "N3MRV\n" "N3MVX\n" "N3MWR\n" "N3MX\n" "N3MZ\n" "N3NA\n" "N3ND\n" "N3NEP\n" "N3NR\n" "N3NRN\n" "N3NS\n" "N3NT\n" "N3NZ\n" "N3OA\n" "N3OC\n" "N3OJL\n" "N3OW\n" "N3OX\n" "N3PE\n" "N3PF\n" "N3PKC\n" "N3PPE\n" "N3QCM\n" "N3QE\n" "N3QO\n" "N3QQ\n" "N3QVB\n" "N3QW\n" "N3RC\n" "N3RCW\n" "N3RD\n" "N3RDV\n" "N3RG\n" "N3RJ\n" "N3RM\n" "N3RN\n" "N3RR\n" "N3RRR\n" "N3RS\n" "N3RW\n" "N3RWB\n" "N3SD\n" "N3SEO\n" "N3SL\n" "N3SMT\n" "N3SNZ\n" "N3SQD\n" "N3ST\n" "N3STZ\n" "N3SW\n" "N3SY\n" "N3TB\n" "N3TDE\n" "N3TG\n" "N3TH\n" "N3TIR\n" "N3TL\n" "N3TM\n" "N3TNQ\n" "N3TO\n" "N3TQU\n" "N3TR\n" "N3TUQ\n" "N3UA\n" "N3UB\n" "N3UC\n" "N3UGY\n" "N3UM\n" "N3UR\n" "N3US\n" "N3VBJ\n" "N3VJV\n" "N3VMD\n" "N3VOP\n" "N3VRO\n" "N3VS\n" "N3VYZ\n" "N3WD\n" "N3WG\n" "N3WJ\n" "N3WT\n" "N3WZR\n" "N3XF\n" "N3XL\n" "N3XLS\n" "N3XM/VE3\n" "N3XP\n" "N3XPD\n" "N3XRU\n" "N3XRV\n" "N3XUD\n" "N3XVU\n" "N3XX\n" "N3XZ\n" "N3YD\n" "N3YEA\n" "N3YH\n" "N3YIM\n" "N3YMS\n" "N3YW\n" "N3YWM\n" "N3YZ\n" "N3ZA\n" "N3ZBK\n" "N3ZD\n" "N3ZK\n" "N3ZL\n" "N3ZL/4\n" "N3ZN\n" "N3ZP\n" "N3ZU\n" "N3ZV\n" "N3ZZ\n" "N3ZZK\n" "N4AA\n" "N4AAI\n" "N4AB\n" "N4AC\n" "N4AF\n" "N4AGG\n" "N4AH\n" "N4AL\n" "N4ALN\n" "N4AO\n" "N4AOE\n" "N4APR\n" "N4AR\n" "N4ARO\n" "N4ARR\n" "N4ASX\n" "N4AU\n" "N4AVV\n" "N4AWU\n" "N4AX\n" "N4BCB\n" "N4BCC\n" "N4BCD\n" "N4BFR\n" "N4BG\n" "N4BG/2\n" "N4BH\n" "N4BLT\n" "N4BNO\n" "N4BP\n" "N4BPG\n" "N4BU\n" "N4BWB\n" "N4BWV\n" "N4CB\n" "N4CC\n" "N4CD\n" "N4CE\n" "N4CFI\n" "N4CJ\n" "N4COB\n" "N4CPA\n" "N4CPO\n" "N4CT\n" "N4CU\n" "N4CUS\n" "N4CV\n" "N4CW\n" "N4CW/1\n" "N4CWP\n" "N4CY\n" "N4DA\n" "N4DAG\n" "N4DE\n" "N4DJ\n" "N4DKD\n" "N4DL\n" "N4DMD\n" "N4DPU\n" "N4DT\n" "N4DTF\n" "N4DU\n" "N4DV\n" "N4DW\n" "N4DWK\n" "N4DXC\n" "N4DXI\n" "N4DXS\n" "N4DXY\n" "N4EA\n" "N4ECM\n" "N4ECW\n" "N4EDT\n" "N4EE\n" "N4EEB\n" "N4EK\n" "N4EL\n" "N4EMG\n" "N4ESS\n" "N4EX\n" "N4FCG\n" "N4FD\n" "N4FF\n" "N4FN\n" "N4FP\n" "N4FPS\n" "N4FR\n" "N4FW\n" "N4FX\n" "N4FY\n" "N4FZ\n" "N4GCP\n" "N4GEB\n" "N4GG\n" "N4GG/4\n" "N4GI\n" "N4GJ\n" "N4GK\n" "N4GN\n" "N4GO\n" "N4GOA\n" "N4GU\n" "N4GW\n" "N4HA\n" "N4HAF\n" "N4HAI\n" "N4HB\n" "N4HH\n" "N4HID\n" "N4HLF\n" "N4HN\n" "N4HPL\n" "N4HUF\n" "N4HXI\n" "N4IB\n" "N4ICF\n" "N4IG\n" "N4II\n" "N4IJ\n" "N4IL\n" "N4IM\n" "N4IOZ\n" "N4IQ\n" "N4IR\n" "N4IS\n" "N4JA\n" "N4JB\n" "N4JDB\n" "N4JDF\n" "N4JDX\n" "N4JED\n" "N4JF\n" "N4JG\n" "N4JH\n" "N4JIK\n" "N4JIK/5\n" "N4JKA\n" "N4JN\n" "N4JOW\n" "N4JR\n" "N4JRZ\n" "N4JT\n" "N4JTQ\n" "N4JVP\n" "N4KC\n" "N4KE\n" "N4KFT\n" "N4KG\n" "N4KGL\n" "N4KH\n" "N4KIT\n" "N4KJR\n" "N4KK\n" "N4KL\n" "N4KTM\n" "N4KW\n" "N4KZ\n" "N4LA\n" "N4LDM\n" "N4LF\n" "N4LKE\n" "N4LMN\n" "N4LPD\n" "N4LR\n" "N4LS\n" "N4LSP\n" "N4LT\n" "N4LU\n" "N4LV\n" "N4LVQ\n" "N4LW\n" "N4LZ\n" "N4LZL\n" "N4MB\n" "N4ME\n" "N4MF\n" "N4MIK\n" "N4MIO\n" "N4MJ\n" "N4MM\n" "N4MO\n" "N4MUH\n" "N4MWR\n" "N4MWY\n" "N4NAB\n" "N4NKA\n" "N4NM\n" "N4NN\n" "N4NO\n" "N4NOO\n" "N4NS\n" "N4NTO\n" "N4NTQ\n" "N4NW\n" "N4NX\n" "N4OA\n" "N4OFA\n" "N4OGW\n" "N4OI\n" "N4OO\n" "N4OQP\n" "N4OT\n" "N4OX\n" "N4OYT\n" "N4PB\n" "N4PD\n" "N4PEG\n" "N4PF\n" "N4PGL\n" "N4PJ\n" "N4PLR\n" "N4PN\n" "N4PQX\n" "N4PSE\n" "N4PTC\n" "N4PUM\n" "N4PY\n" "N4QA\n" "N4QB\n" "N4QK\n" "N4QLB\n" "N4QM\n" "N4QNT\n" "N4QQ\n" "N4QS\n" "N4QV\n" "N4QVM\n" "N4QWF\n" "N4QWZ\n" "N4QX\n" "N4RA\n" "N4RDX\n" "N4RI\n" "N4RJ\n" "N4RJL\n" "N4RLD\n" "N4RP\n" "N4RQ\n" "N4RR\n" "N4RS\n" "N4RSS\n" "N4RTD\n" "N4RU\n" "N4RV\n" "N4RVM\n" "N4RZ\n" "N4SAM\n" "N4SC\n" "N4SCS\n" "N4SEA\n" "N4SF\n" "N4SMM\n" "N4SOC\n" "N4SR\n" "N4SS\n" "N4ST\n" "N4TB\n" "N4TCP\n" "N4TD\n" "N4TDO\n" "N4TEF\n" "N4TG\n" "N4THG\n" "N4TIZ\n" "N4TJ\n" "N4TL\n" "N4TN\n" "N4TO\n" "N4TOL\n" "N4TP\n" "N4TRI\n" "N4TSC\n" "N4TT\n" "N4TTE\n" "N4TUT\n" "N4TV\n" "N4TX\n" "N4TZ\n" "N4UA\n" "N4UC\n" "N4UED\n" "N4UFP\n" "N4UJ\n" "N4UM\n" "N4UPX\n" "N4UQB\n" "N4URW\n" "N4UU\n" "N4UW\n" "N4VA\n" "N4VAN\n" "N4VI\n" "N4VN\n" "N4VS\n" "N4VV\n" "N4WBS\n" "N4WD\n" "N4WHK\n" "N4WJ\n" "N4WJW\n" "N4WMB\n" "N4WO\n" "N4WOT\n" "N4WP\n" "N4WPG\n" "N4WQB\n" "N4WR\n" "N4WW\n" "N4WZ\n" "N4XC\n" "N4XD\n" "N4XFA\n" "N4XFF\n" "N4XGI\n" "N4XL\n" "N4XM\n" "N4XO\n" "N4XR\n" "N4XU\n" "N4YBU\n" "N4YBW\n" "N4YC\n" "N4YDU\n" "N4YE\n" "N4YHC\n" "N4YM\n" "N4YSA\n" "N4YT\n" "N4YYV\n" "N4YZ\n" "N4ZA\n" "N4ZAK\n" "N4ZC\n" "N4ZI\n" "N4ZO\n" "N4ZQ\n" "N4ZR\n" "N4ZRL\n" "N4ZSA\n" "N4ZY\n" "N4ZZ\n" "N5AA\n" "N5ACK\n" "N5AF\n" "N5AN\n" "N5ATT\n" "N5AU\n" "N5AUA\n" "N5AW\n" "N5AW/0\n" "N5BA\n" "N5BE\n" "N5BF\n" "N5BNU\n" "N5BO\n" "N5BR\n" "N5BST\n" "N5CHA\n" "N5CJQ\n" "N5CMC\n" "N5CQ\n" "N5CRO\n" "N5CW\n" "N5DBK\n" "N5DD\n" "N5DF\n" "N5DG\n" "N5DGK\n" "N5DK\n" "N5DM\n" "N5DO\n" "N5DRB\n" "N5DT\n" "N5DTT\n" "N5DX\n" "N5DY\n" "N5EA\n" "N5EBD\n" "N5EEI\n" "N5EJK\n" "N5EN\n" "N5ER\n" "N5ESA\n" "N5ET\n" "N5EXS\n" "N5EZE\n" "N5FF\n" "N5FG\n" "N5FPW\n" "N5GD\n" "N5GE\n" "N5GH\n" "N5GL\n" "N5GY\n" "N5HA\n" "N5HEK\n" "N5HHS\n" "N5HI\n" "N5HMH\n" "N5HOT\n" "N5HSF\n" "N5IA\n" "N5IE\n" "N5II\n" "N5IIT\n" "N5IN\n" "N5IR\n" "N5IW\n" "N5JB\n" "N5JBD\n" "N5JC\n" "N5JED\n" "N5JJH\n" "N5JJZ\n" "N5JM\n" "N5JOA\n" "N5JPJ\n" "N5JR\n" "N5KA\n" "N5KAE\n" "N5KD\n" "N5KDV\n" "N5KE\n" "N5KEV\n" "N5KF\n" "N5KGV\n" "N5KGY\n" "N5KI\n" "N5KIP\n" "N5KLE\n" "N5KM\n" "N5KO\n" "N5KR\n" "N5KRC\n" "N5KTT\n" "N5KWN\n" "N5KXF\n" "N5KY\n" "N5LDD\n" "N5LFE\n" "N5LIV\n" "N5LNL\n" "N5LTM\n" "N5LUL\n" "N5LUQ\n" "N5LYJ\n" "N5LYJ/5\n" "N5LZ\n" "N5MEG\n" "N5MNX\n" "N5MOA\n" "N5MOC\n" "N5MT\n" "N5MU\n" "N5MV\n" "N5NA\n" "N5NK\n" "N5NN\n" "N5NOU\n" "N5NR\n" "N5NU\n" "N5OE\n" "N5OHL\n" "N5OK\n" "N5OL\n" "N5OP\n" "N5ORT\n" "N5OTI\n" "N5PA\n" "N5PAX\n" "N5PEF\n" "N5PHT\n" "N5PJ\n" "N5PJY\n" "N5PO\n" "N5PQ\n" "N5PR\n" "N5PT\n" "N5PU\n" "N5PYQ\n" "N5QJ\n" "N5QN\n" "N5QQ\n" "N5QS\n" "N5RA\n" "N5RGV\n" "N5RKD\n" "N5RKK\n" "N5RL\n" "N5RM\n" "N5RMS\n" "N5RN\n" "N5RP\n" "N5RP/W9\n" "N5RR\n" "N5RVT\n" "N5RZ\n" "N5RZK\n" "N5SAM\n" "N5SAN\n" "N5SJS\n" "N5SM\n" "N5SMQ\n" "N5SPE\n" "N5SQL\n" "N5SR\n" "N5SSH\n" "N5SV\n" "N5TEN\n" "N5TER\n" "N5TGL\n" "N5THN\n" "N5TJ\n" "N5TM\n" "N5TSP\n" "N5TU\n" "N5TW\n" "N5TWH\n" "N5TY\n" "N5UCF\n" "N5UKZ\n" "N5UL\n" "N5UM\n" "N5UR\n" "N5UV\n" "N5UWY\n" "N5UXT\n" "N5VA\n" "N5VAG\n" "N5VEI\n" "N5VEZ\n" "N5VI\n" "N5VK\n" "N5VR\n" "N5VSB\n" "N5VU\n" "N5VYS\n" "N5WA\n" "N5WBF\n" "N5WC\n" "N5WEB\n" "N5WJ\n" "N5WLA\n" "N5WMQ\n" "N5WNG\n" "N5WR\n" "N5WX\n" "N5WY\n" "N5XE\n" "N5XES\n" "N5XG\n" "N5XJ\n" "N5XM\n" "N5XR\n" "N5XU\n" "N5XZ\n" "N5YA\n" "N5YE\n" "N5YEN\n" "N5YF\n" "N5YPJ\n" "N5YRJ\n" "N5YT\n" "N5ZBI\n" "N5ZC\n" "N5ZGT\n" "N5ZK\n" "N5ZM\n" "N5ZMP\n" "N5ZV\n" "N5ZWS\n" "N5ZZ\n" "N6AA\n" "N6AB\n" "N6AD\n" "N6AE\n" "N6AJG\n" "N6AJR\n" "N6AN\n" "N6AQ\n" "N6AR\n" "N6ATD\n" "N6AW\n" "N6AWD\n" "N6AX\n" "N6BHX\n" "N6BM\n" "N6BOB\n" "N6BU\n" "N6BV\n" "N6BX\n" "N6BXO\n" "N6BY\n" "N6CCH\n" "N6CHU\n" "N6CK\n" "N6CMF\n" "N6CVA\n" "N6CY\n" "N6CY/KH6\n" "N6DA\n" "N6DAG\n" "N6DBS\n" "N6DE\n" "N6DG\n" "N6DIT\n" "N6DM\n" "N6DMV\n" "N6DQ\n" "N6DQ/C6A\n" "N6DSM\n" "N6DT\n" "N6DW\n" "N6DX\n" "N6DZ\n" "N6ED\n" "N6EE\n" "N6EEB\n" "N6EF\n" "N6EM\n" "N6EO\n" "N6EP\n" "N6ER\n" "N6ERD\n" "N6ET\n" "N6FB\n" "N6FD\n" "N6FMF\n" "N6FR\n" "N6FX\n" "N6GA\n" "N6GEO\n" "N6GK\n" "N6GL\n" "N6HA\n" "N6HC\n" "N6HE\n" "N6HH\n" "N6HI\n" "N6HK\n" "N6HRO\n" "N6HY\n" "N6IC\n" "N6IE\n" "N6IEF\n" "N6IFR\n" "N6IG\n" "N6ISY\n" "N6IV\n" "N6JC\n" "N6JN\n" "N6JOJ\n" "N6JRL\n" "N6JS\n" "N6JV\n" "N6JW\n" "N6KD\n" "N6KI\n" "N6KJ\n" "N6KK\n" "N6KL\n" "N6KM\n" "N6KN\n" "N6KOG\n" "N6KP\n" "N6KS\n" "N6KT\n" "N6KV\n" "N6KW\n" "N6KW/7\n" "N6KZ\n" "N6LC\n" "N6LHZ\n" "N6LL\n" "N6LN\n" "N6MA\n" "N6MEF\n" "N6MI\n" "N6ML\n" "N6MM\n" "N6MQL\n" "N6MSQ\n" "N6MSY\n" "N6MU\n" "N6MUF\n" "N6MW\n" "N6MWX\n" "N6MXU\n" "N6MZ\n" "N6NA\n" "N6NBB\n" "N6NC\n" "N6NCW\n" "N6ND\n" "N6NF\n" "N6NG\n" "N6NH\n" "N6NKJ\n" "N6NKT\n" "N6NM\n" "N6NO\n" "N6NPG\n" "N6NR\n" "N6NU\n" "N6NW\n" "N6NZ\n" "N6NZE\n" "N6OC\n" "N6OJ\n" "N6OO\n" "N6OPR\n" "N6OR\n" "N6OR/4\n" "N6ORB\n" "N6OU\n" "N6OX\n" "N6PC\n" "N6PE\n" "N6PEQ\n" "N6PF\n" "N6PHW\n" "N6PI\n" "N6PIA\n" "N6PN\n" "N6PNK\n" "N6PSE\n" "N6PYN\n" "N6PZ\n" "N6QEK\n" "N6QEK/VY1\n" "N6QI\n" "N6QQ\n" "N6QZS\n" "N6RA\n" "N6RBY\n" "N6RC\n" "N6RDN\n" "N6REG\n" "N6RI\n" "N6RJ\n" "N6RK\n" "N6RNO\n" "N6RO\n" "N6RSH\n" "N6RT\n" "N6RUX\n" "N6RV\n" "N6RW\n" "N6RXA\n" "N6RZ\n" "N6RZR\n" "N6SC\n" "N6SF\n" "N6SI\n" "N6SL\n" "N6SL/4\n" "N6SPB\n" "N6SPP\n" "N6SQ\n" "N6SS\n" "N6SUN\n" "N6TA\n" "N6TCZ\n" "N6TE\n" "N6TEM\n" "N6TH\n" "N6TI\n" "N6TJ\n" "N6TP\n" "N6TQS\n" "N6TR/7\n" "N6TT\n" "N6TU\n" "N6TV\n" "N6TW\n" "N6TZV\n" "N6UGJ\n" "N6UWW\n" "N6VDR\n" "N6VH\n" "N6VHF\n" "N6VI\n" "N6VM\n" "N6VNI\n" "N6VOC\n" "N6VR\n" "N6VX\n" "N6VXM\n" "N6VZ\n" "N6WB\n" "N6WBL\n" "N6WD\n" "N6WG\n" "N6WHK\n" "N6WIN\n" "N6WK\n" "N6WM\n" "N6WO\n" "N6WS\n" "N6WZ\n" "N6XG\n" "N6XI\n" "N6XT\n" "N6XXN\n" "N6YDP\n" "N6YEU\n" "N6YMM\n" "N6YVW\n" "N6ZE\n" "N6ZFO\n" "N6ZI\n" "N6ZM\n" "N6ZN\n" "N6ZS\n" "N7AAM\n" "N7AC\n" "N7AM\n" "N7AN\n" "N7AP\n" "N7APN\n" "N7AR\n" "N7AT\n" "N7AZ\n" "N7BAN\n" "N7BAT\n" "N7BBC\n" "N7BEF\n" "N7BK\n" "N7BLN\n" "N7BPA\n" "N7BRC\n" "N7BT\n" "N7BU\n" "N7BV\n" "N7BXX\n" "N7CAC\n" "N7CKJ\n" "N7CVZ\n" "N7CW\n" "N7DB\n" "N7DC\n" "N7DCR\n" "N7DD\n" "N7DF\n" "N7DK\n" "N7DLI\n" "N7DOM\n" "N7DRK\n" "N7DS\n" "N7DV\n" "N7EA\n" "N7EDK\n" "N7EG\n" "N7EIE\n" "N7EKD\n" "N7EL\n" "N7ELF\n" "N7ENN\n" "N7EO\n" "N7EPD\n" "N7ER\n" "N7ESU\n" "N7ET/DU7\n" "N7ETA\n" "N7ETC\n" "N7EXP\n" "N7FF\n" "N7FFL\n" "N7FJM\n" "N7FLT\n" "N7FMM\n" "N7FO\n" "N7FYO\n" "N7FYP/VY2\n" "N7GCO\n" "N7GK\n" "N7GMT\n" "N7GR\n" "N7GTE\n" "N7GTW\n" "N7GUO\n" "N7GVV\n" "N7HD\n" "N7HGH\n" "N7HJL\n" "N7HT\n" "N7ICK\n" "N7INV\n" "N7IPG\n" "N7IR\n" "N7IV\n" "N7IX\n" "N7IXI\n" "N7IZ\n" "N7JB\n" "N7JEC\n" "N7JI\n" "N7JO\n" "N7JQ\n" "N7JT\n" "N7JW\n" "N7JXS\n" "N7KA\n" "N7KCX\n" "N7KD\n" "N7KE\n" "N7KF\n" "N7KFL\n" "N7KMM\n" "N7KO\n" "N7KQ\n" "N7KR\n" "N7KRE\n" "N7KU\n" "N7LB\n" "N7LE\n" "N7LOX\n" "N7LQT\n" "N7LR\n" "N7LYR\n" "N7MAL\n" "N7MB\n" "N7MBL\n" "N7MQ\n" "N7MSI\n" "N7MW\n" "N7MZW\n" "N7NG\n" "N7NJO\n" "N7NKO\n" "N7NM\n" "N7NOG\n" "N7NSL\n" "N7NT\n" "N7NTQ\n" "N7NW\n" "N7ODM\n" "N7OG\n" "N7OLK\n" "N7ON\n" "N7OU\n" "N7PC\n" "N7PIB\n" "N7PP\n" "N7PV\n" "N7PWZ\n" "N7QAX\n" "N7QMT\n" "N7QNO\n" "N7QOZ\n" "N7QQ\n" "N7QS\n" "N7QU\n" "N7QU/5\n" "N7RBP\n" "N7RC\n" "N7RK\n" "N7RN\n" "N7RO\n" "N7RP\n" "N7RQ\n" "N7RT\n" "N7RU\n" "N7RVD\n" "N7RVN\n" "N7RYW\n" "N7SCL\n" "N7SGX\n" "N7TK\n" "N7TL\n" "N7TM\n" "N7TO\n" "N7TP\n" "N7TR\n" "N7TT\n" "N7TW\n" "N7TY\n" "N7UA\n" "N7UC\n" "N7UN\n" "N7UO\n" "N7UR\n" "N7US\n" "N7UVH\n" "N7UY\n" "N7VF\n" "N7VFF\n" "N7VJ\n" "N7VM\n" "N7VOE\n" "N7VPN\n" "N7VS\n" "N7WA\n" "N7WB\n" "N7WH\n" "N7WHB\n" "N7WI\n" "N7WO\n" "N7WR\n" "N7WS\n" "N7WX\n" "N7WZE\n" "N7XB\n" "N7XCZ\n" "N7XDX\n" "N7XG\n" "N7XM\n" "N7XR\n" "N7XRM\n" "N7XY\n" "N7YA\n" "N7YDX\n" "N7YP\n" "N7YQ\n" "N7YX\n" "N7ZA\n" "N7ZG\n" "N7ZN\n" "N8AA\n" "N8AAE\n" "N8AE\n" "N8AG\n" "N8AGU\n" "N8AJN\n" "N8AMM\n" "N8AP\n" "N8ATC\n" "N8AYY\n" "N8BB\n" "N8BC\n" "N8BE\n" "N8BEE\n" "N8BEG\n" "N8BHL\n" "N8BI\n" "N8BJQ\n" "N8BM\n" "N8BP\n" "N8BQV\n" "N8BR\n" "N8BTU\n" "N8BUS\n" "N8BV\n" "N8CAK\n" "N8CC\n" "N8CHR\n" "N8CHS\n" "N8CL\n" "N8CLB\n" "N8CMS\n" "N8CN\n" "N8CPA\n" "N8CT\n" "N8CX\n" "N8DC\n" "N8DCJ\n" "N8DE\n" "N8DEZ\n" "N8DGD\n" "N8DJX\n" "N8DNG\n" "N8DOD\n" "N8DP\n" "N8DRC\n" "N8DSG\n" "N8DSG/P\n" "N8DT\n" "N8DV\n" "N8DX\n" "N8EA\n" "N8ECI\n" "N8EHP\n" "N8EMR\n" "N8EN\n" "N8ERL\n" "N8ESW\n" "N8ET\n" "N8EW\n" "N8FDI\n" "N8FE\n" "N8FEB\n" "N8FF\n" "N8FGB\n" "N8FNR\n" "N8FRT\n" "N8FV\n" "N8GGI\n" "N8GIY\n" "N8GJK\n" "N8GOV\n" "N8GU\n" "N8GZ\n" "N8HAL\n" "N8HC\n" "N8HHG\n" "N8HKU\n" "N8HP\n" "N8HR\n" "N8HSO\n" "N8HTG\n" "N8HTW\n" "N8IE\n" "N8IGZ\n" "N8II\n" "N8IL\n" "N8IPO\n" "N8IR\n" "N8IRC\n" "N8IS\n" "N8IVN\n" "N8IW\n" "N8IWC\n" "N8JBG\n" "N8JE\n" "N8JF\n" "N8JK\n" "N8JVL\n" "N8KAM\n" "N8KC\n" "N8KCM\n" "N8KG\n" "N8KH\n" "N8KOJ\n" "N8KR\n" "N8KU\n" "N8KUE\n" "N8KV\n" "N8LCU\n" "N8LGL\n" "N8LJ\n" "N8LMT\n" "N8LP\n" "N8LRG\n" "N8MBZ\n" "N8MDP\n" "N8MHL\n" "N8MME\n" "N8MOX\n" "N8MPX\n" "N8MR\n" "N8MRC\n" "N8MWK\n" "N8MZ\n" "N8NA\n" "N8NAV\n" "N8NB\n" "N8NKC\n" "N8NM\n" "N8NN\n" "N8NOE\n" "N8NR\n" "N8NVL\n" "N8NWA\n" "N8NX\n" "N8NYI\n" "N8OC\n" "N8OCJ\n" "N8OEJ\n" "N8OGI\n" "N8OH\n" "N8OL\n" "N8OO\n" "N8OQQ\n" "N8OT\n" "N8OY\n" "N8PA\n" "N8PB\n" "N8PQ\n" "N8PR\n" "N8PS\n" "N8PVW\n" "N8PW\n" "N8PY\n" "N8QAZ\n" "N8QE\n" "N8QMU\n" "N8QWS\n" "N8RA\n" "N8RBC\n" "N8RGQ\n" "N8RMT\n" "N8RMZ\n" "N8RN\n" "N8RO\n" "N8RQJ\n" "N8RR\n" "N8RT\n" "N8SHZ\n" "N8SKB\n" "N8SM\n" "N8SNM\n" "N8SOB\n" "N8SR\n" "N8SS\n" "N8SSE\n" "N8STY\n" "N8TC\n" "N8TD\n" "N8TDL\n" "N8TL\n" "N8TP\n" "N8TR\n" "N8TWM\n" "N8TXI\n" "N8UBK\n" "N8UM\n" "N8UO\n" "N8UV\n" "N8UZE\n" "N8VEN\n" "N8VFJ\n" "N8VV\n" "N8VW\n" "N8VZ\n" "N8WAV\n" "N8WCR\n" "N8WJS\n" "N8WK\n" "N8WNA\n" "N8WRL\n" "N8WS\n" "N8WXQ\n" "N8XA\n" "N8XC\n" "N8XE\n" "N8XI\n" "N8XKO\n" "N8XMS\n" "N8XPQ\n" "N8XQM\n" "N8XTH\n" "N8XX\n" "N8YA\n" "N8YD\n" "N8YYS\n" "N8ZA\n" "N8ZB\n" "N8ZBA\n" "N8ZFH\n" "N9AB\n" "N9ABC\n" "N9ADG\n" "N9AF\n" "N9AG\n" "N9AI\n" "N9AJV\n" "N9AK\n" "N9AKR\n" "N9AMW\n" "N9AOL\n" "N9APE\n" "N9AU\n" "N9AUG\n" "N9AVY\n" "N9AW\n" "N9AX\n" "N9AZR\n" "N9AZZ\n" "N9BBE\n" "N9BL\n" "N9BMS\n" "N9BOR\n" "N9BSS\n" "N9BT\n" "N9BU\n" "N9BX\n" "N9CC\n" "N9CDX\n" "N9CHN\n" "N9CI\n" "N9CIQ\n" "N9CK\n" "N9CKL\n" "N9CM\n" "N9CO\n" "N9CX\n" "N9CXI\n" "N9DD\n" "N9DGK\n" "N9DJ\n" "N9DOA\n" "N9DR\n" "N9DT\n" "N9EAJ\n" "N9EAX\n" "N9EN\n" "N9EP\n" "N9ER\n" "N9ESR\n" "N9EVW\n" "N9FC\n" "N9FDE\n" "N9FN\n" "N9FTC/4\n" "N9GBB\n" "N9GC\n" "N9GEX\n" "N9GG\n" "N9GH\n" "N9GOC\n" "N9GOD\n" "N9GTC\n" "N9GUN\n" "N9GWO\n" "N9GXA\n" "N9GY\n" "N9HDE\n" "N9HF\n" "N9HH\n" "N9HNO\n" "N9HSB\n" "N9HZ\n" "N9IC\n" "N9ID\n" "N9IJ\n" "N9IO\n" "N9ISN\n" "N9IUA\n" "N9IVO\n" "N9IW\n" "N9IZ\n" "N9JCA\n" "N9JDQ\n" "N9JF\n" "N9JFW\n" "N9JW\n" "N9JZN\n" "N9KG\n" "N9KHR\n" "N9KIM\n" "N9KO\n" "N9KR\n" "N9KS\n" "N9KT\n" "N9KZ\n" "N9LA\n" "N9LAH\n" "N9LB\n" "N9LF\n" "N9LGP\n" "N9LJX\n" "N9LJY\n" "N9LPT\n" "N9LR\n" "N9LTV\n" "N9LYE\n" "N9LZY\n" "N9MHD\n" "N9MIW\n" "N9MKZ\n" "N9ML\n" "N9MM\n" "N9MR\n" "N9MSG\n" "N9MTT\n" "N9MW\n" "N9MXT\n" "N9MZF\n" "N9NA\n" "N9NB\n" "N9NC\n" "N9NDI\n" "N9NDP\n" "N9NE\n" "N9NF\n" "N9NM\n" "N9NS\n" "N9NT\n" "N9NTC\n" "N9OE\n" "N9OF\n" "N9OH\n" "N9OHW\n" "N9OI\n" "N9OK\n" "N9OL\n" "N9ONJ\n" "N9OOO\n" "N9OQW\n" "N9ORD\n" "N9OX\n" "N9OY\n" "N9PL\n" "N9PUZ\n" "N9PYS\n" "N9QK\n" "N9QQK\n" "N9QR\n" "N9QS\n" "N9QVQ\n" "N9RC\n" "N9RD\n" "N9RE\n" "N9REP\n" "N9REY\n" "N9RG\n" "N9RGE\n" "N9RJM\n" "N9RLI\n" "N9ROY\n" "N9RS\n" "N9RV\n" "N9RYM\n" "N9SB\n" "N9SCW\n" "N9SDT\n" "N9SF\n" "N9SJ\n" "N9SOR\n" "N9STL\n" "N9SW\n" "N9SZ\n" "N9TAX\n" "N9TF\n" "N9TGR\n" "N9TH\n" "N9TK\n" "N9TMU\n" "N9TMZ\n" "N9TTX\n" "N9TV\n" "N9UA\n" "N9UC\n" "N9UDO\n" "N9UE\n" "N9UFO\n" "N9UHF\n" "N9UHO\n" "N9UM\n" "N9UO\n" "N9US\n" "N9UUI\n" "N9UUP\n" "N9UX\n" "N9UY\n" "N9VA\n" "N9VAO\n" "N9VI\n" "N9VKZ\n" "N9VPR\n" "N9VPV\n" "N9WEW\n" "N9WFT\n" "N9WK\n" "N9WKW\n" "N9WL\n" "N9WQ\n" "N9WRG\n" "N9WVM\n" "N9WW\n" "N9XAK\n" "N9XBB\n" "N9XHU\n" "N9XO\n" "N9XR\n" "N9XRR\n" "N9XX\n" "N9XY\n" "N9YA\n" "N9YK\n" "N9YKE\n" "N9YN\n" "N9YUE\n" "N9YZA\n" "N9ZDD\n" "N9ZEW\n" "N9ZF\n" "N9ZI\n" "N9ZM\n" "N9ZOE\n" "NA0BR\n" "NA0CW\n" "NA0N\n" "NA0T\n" "NA1A\n" "NA1G\n" "NA1QP\n" "NA1R\n" "NA2AA\n" "NA2M\n" "NA2R\n" "NA2U\n" "NA2X\n" "NA3D\n" "NA3F\n" "NA3J/0\n" "NA3M\n" "NA3V\n" "NA4AR\n" "NA4BW\n" "NA4C\n" "NA4CW\n" "NA4D\n" "NA4K\n" "NA4M\n" "NA4M/5\n" "NA4NA\n" "NA4O\n" "NA4R\n" "NA4W\n" "NA5C\n" "NA5DX\n" "NA5G\n" "NA5Q\n" "NA5RC\n" "NA5TR\n" "NA5U\n" "NA5Z\n" "NA6G\n" "NA6Q\n" "NA7DX\n" "NA7EM\n" "NA7QP\n" "NA7RH\n" "NA7US\n" "NA7XX\n" "NA8M\n" "NA8SA\n" "NA8V\n" "NA8W\n" "NA9A\n" "NA9J\n" "NA9L\n" "NA9M\n" "NA9U\n" "NA9US\n" "NB0Z\n" "NB1HF\n" "NB1N\n" "NB1U\n" "NB2T\n" "NB3C\n" "NB3K\n" "NB3T\n" "NB4F\n" "NB4M\n" "NB5N\n" "NB7N\n" "NB7V\n" "NB8Q\n" "NC0B\n" "NC0O\n" "NC1C\n" "NC1I\n" "NC1T\n" "NC2O\n" "NC2W\n" "NC3P\n" "NC4AA\n" "NC4AR\n" "NC4CS\n" "NC4G\n" "NC4KW\n" "NC4MI\n" "NC4MM\n" "NC4RB\n" "NC4RW\n" "NC4S\n" "NC4VA\n" "NC4X\n" "NC5B\n" "NC5O\n" "NC5OW\n" "NC6CC\n" "NC6P\n" "NC6PT\n" "NC6Q\n" "NC6RJ\n" "NC6V\n" "NC6X\n" "NC7I\n" "NC7J\n" "NC7M\n" "NC7W\n" "NC8B\n" "NC8T\n" "NC9F\n" "ND0C\n" "ND0J\n" "ND0L\n" "ND0M\n" "ND0N\n" "ND0V\n" "ND1X\n" "ND2K\n" "ND2T\n" "ND3D\n" "ND3F\n" "ND3R\n" "ND4Q\n" "ND4V\n" "ND4X\n" "ND4Z\n" "ND5R\n" "ND5T\n" "ND6H\n" "ND6MM\n" "ND6P\n" "ND6S\n" "ND8DX\n" "ND8L\n" "ND8N\n" "ND9E\n" "ND9M\n" "ND9Z\n" "NE0DX\n" "NE0U\n" "NE0W\n" "NE1B\n" "NE1C\n" "NE1F\n" "NE1H\n" "NE1I\n" "NE1QP\n" "NE1RD\n" "NE2I\n" "NE2U\n" "NE2Z\n" "NE3F\n" "NE3H\n" "NE3I\n" "NE3R\n" "NE4M\n" "NE4S\n" "NE4W\n" "NE5D\n" "NE5DL\n" "NE5LL\n" "NE5S\n" "NE5W\n" "NE6I\n" "NE6LE\n" "NE6M\n" "NE6O\n" "NE6R\n" "NE7D\n" "NE7X\n" "NE8J\n" "NE8O\n" "NE8O/3\n" "NE8P\n" "NE8Z\n" "NE9H\n" "NE9U\n" "NE9Z\n" "NF0N\n" "NF0T\n" "NF1A\n" "NF1D\n" "NF1L\n" "NF1X\n" "NF2O\n" "NF4A\n" "NF4GA\n" "NF5P\n" "NF5T\n" "NF5Y\n" "NF5Z\n" "NF6A\n" "NF6P\n" "NF6R\n" "NF7E\n" "NF7R\n" "NF7T\n" "NF8J\n" "NF8M\n" "NF8R\n" "NF9D\n" "NF9V\n" "NG0G\n" "NG0K\n" "NG0M\n" "NG0T\n" "NG1F\n" "NG1G\n" "NG1O\n" "NG1Q\n" "NG2C\n" "NG2P\n" "NG2T\n" "NG2X\n" "NG3I\n" "NG3J\n" "NG3K\n" "NG3O\n" "NG3Q\n" "NG3R\n" "NG3U\n" "NG3V\n" "NG4D\n" "NG4L\n" "NG4P\n" "NG4Z\n" "NG5A\n" "NG5NG\n" "NG5X\n" "NG6S\n" "NG6X\n" "NG7A\n" "NG7M\n" "NG7X\n" "NG7Z\n" "NG8U\n" "NG9E\n" "NG9R\n" "NG9T\n" "NH2T\n" "NH6AB\n" "NH6JC\n" "NH6P\n" "NH6T/W4\n" "NH6WZ\n" "NH6YK\n" "NH7A\n" "NH7C\n" "NH7FY\n" "NH7O\n" "NH7QH\n" "NI0B\n" "NI0C\n" "NI0F\n" "NI0R\n" "NI1L\n" "NI1N\n" "NI2O\n" "NI3B\n" "NI3H\n" "NI3K\n" "NI3N\n" "NI4S\n" "NI4T\n" "NI5DX\n" "NI5F\n" "NI5L\n" "NI5O\n" "NI5R\n" "NI5T\n" "NI5W\n" "NI6J\n" "NI6P\n" "NI6Q\n" "NI6T\n" "NI6W\n" "NI7F\n" "NI7R\n" "NI7T\n" "NI8Z\n" "NI9C\n" "NI9H\n" "NI9K\n" "NI9Y\n" "NJ0IP\n" "NJ0U\n" "NJ1F\n" "NJ1H\n" "NJ1Q\n" "NJ1Q/1\n" "NJ1T\n" "NJ2AR\n" "NJ2BB\n" "NJ2F\n" "NJ2OM\n" "NJ2P\n" "NJ3K\n" "NJ3W\n" "NJ4F\n" "NJ4I\n" "NJ4M\n" "NJ4O\n" "NJ4U\n" "NJ4X\n" "NJ4Z\n" "NJ5DX\n" "NJ5O\n" "NJ5T\n" "NJ6D\n" "NJ6N\n" "NJ6P\n" "NJ8V\n" "NJ9D\n" "NJ9Z\n" "NK0S\n" "NK0Z\n" "NK1N\n" "NK1Z\n" "NK3U\n" "NK3Y\n" "NK4A\n" "NK4I\n" "NK4L\n" "NK4N\n" "NK5G\n" "NK5O\n" "NK5Q\n" "NK5Z\n" "NK6A\n" "NK7C\n" "NK7J\n" "NK7U\n" "NK7Z\n" "NK8I\n" "NK8Q\n" "NK9D\n" "NK9G\n" "NK9I\n" "NK9N\n" "NK9O\n" "NL7G\n" "NL7KF\n" "NL7QC\n" "NL7V\n" "NL7Y\n" "NL7Z\n" "NL8F\n" "NM1A\n" "NM1C\n" "NM1J\n" "NM1JY\n" "NM1W\n" "NM2D\n" "NM2L\n" "NM2O\n" "NM3N\n" "NM4K\n" "NM4M\n" "NM4O\n" "NM4V\n" "NM5C\n" "NM5M\n" "NM5NM\n" "NM5O\n" "NM5S\n" "NM5TF\n" "NM5U\n" "NM5WB\n" "NM5Y\n" "NM6E\n" "NM6E/W5\n" "NM6G\n" "NM6K\n" "NM6X\n" "NM7D\n" "NM7N\n" "NM7X\n" "NM8O\n" "NM9C\n" "NN0F\n" "NN0K\n" "NN0Q\n" "NN0TT\n" "NN1AA\n" "NN1N\n" "NN2E\n" "NN2L\n" "NN2RL\n" "NN2T\n" "NN2W\n" "NN3C\n" "NN3L\n" "NN3NN\n" "NN3Q\n" "NN3RP\n" "NN3W\n" "NN4AA\n" "NN4DF\n" "NN4F\n" "NN4FL\n" "NN4GG\n" "NN4K\n" "NN4MM\n" "NN4N\n" "NN4R\n" "NN4RH\n" "NN4RR\n" "NN4T\n" "NN4TO\n" "NN4TT\n" "NN4US\n" "NN4W\n" "NN4X\n" "NN4ZZ\n" "NN5J\n" "NN5K\n" "NN5T\n" "NN5V\n" "NN5Z\n" "NN6AA\n" "NN6C\n" "NN6CH\n" "NN6DX\n" "NN6EE\n" "NN6K\n" "NN6L\n" "NN6NN\n" "NN6R\n" "NN6T\n" "NN6W\n" "NN6XX\n" "NN7A\n" "NN7D\n" "NN7F\n" "NN7SS\n" "NN7ZZ\n" "NN8K\n" "NN8L\n" "NN8P\n" "NN8R\n" "NN8UU\n" "NN9K\n" "NN9Q\n" "NO2D\n" "NO2J\n" "NO2R\n" "NO2T\n" "NO2X\n" "NO3M\n" "NO4Q\n" "NO4S\n" "NO4Y\n" "NO5FD\n" "NO5G\n" "NO5LA\n" "NO5Q\n" "NO5W\n" "NO5X\n" "NO6F\n" "NO6T\n" "NO6X\n" "NO7B\n" "NO7T\n" "NO8C\n" "NO8D\n" "NO8DX\n" "NO8J\n" "NO8R\n" "NO9C\n" "NO9E\n" "NO9Z\n" "NP2B\n" "NP2I/AG9\n" "NP2KW\n" "NP2L\n" "NP2N\n" "NP2Q\n" "NP2SH\n" "NP2X\n" "NP3CW\n" "NP3D\n" "NP3HM\n" "NP3QE\n" "NP3U\n" "NP4A\n" "NP4BM\n" "NP4BW\n" "NP4DX\n" "NP4EG\n" "NP4G\n" "NP4KT\n" "NP4V\n" "NP4Z\n" "NQ0K\n" "NQ1W\n" "NQ2F\n" "NQ2W\n" "NQ3A\n" "NQ3I\n" "NQ3N\n" "NQ4A\n" "NQ4I\n" "NQ4K\n" "NQ4RP\n" "NQ4U\n" "NQ5D\n" "NQ5K\n" "NQ5L\n" "NQ5Z\n" "NQ6L\n" "NQ6P\n" "NQ7P\n" "NQ7R\n" "NR0E\n" "NR0L\n" "NR0T\n" "NR1I\n" "NR1R\n" "NR1X\n" "NR3I\n" "NR3R\n" "NR3X\n" "NR3Y\n" "NR4C\n" "NR4M\n" "NR4MM\n" "NR4N\n" "NR5M\n" "NR5R\n" "NR6O\n" "NR6TT\n" "NR7DX\n" "NR7Q\n" "NR7RR\n" "NR7T\n" "NR8I\n" "NR8U\n" "NR9A\n" "NR9A/0\n" "NR9B\n" "NR9B/9\n" "NR9W\n" "NS0I\n" "NS0M\n" "NS1E\n" "NS1G\n" "NS1L\n" "NS1S\n" "NS1T\n" "NS2O\n" "NS2X\n" "NS3A\n" "NS3Q\n" "NS3T\n" "NS3X\n" "NS4L\n" "NS4SC\n" "NS4SN\n" "NS5Z\n" "NS6C\n" "NS6T\n" "NS7B\n" "NS7E\n" "NS7K\n" "NS7O\n" "NS7P\n" "NS8G\n" "NS8O\n" "NS9I\n" "NT0F\n" "NT0L\n" "NT0V\n" "NT0Z\n" "NT1A\n" "NT1N\n" "NT2A\n" "NT2F\n" "NT3R\n" "NT4A\n" "NT4D\n" "NT4Q\n" "NT4TS\n" "NT4Y\n" "NT5C\n" "NT5O\n" "NT5R\n" "NT5V\n" "NT6AA\n" "NT6K\n" "NT6X\n" "NT8P\n" "NT8S\n" "NT8V\n" "NT8W\n" "NT9F\n" "NU0C\n" "NU0J\n" "NU0Q\n" "NU0V\n" "NU1AW\n" "NU1B\n" "NU1M\n" "NU2J\n" "NU2M\n" "NU3A\n" "NU3B\n" "NU3H\n" "NU4B\n" "NU4C\n" "NU4I\n" "NU4N\n" "NU4SC\n" "NU4Y\n" "NU5A\n" "NU5DE\n" "NU5K\n" "NU6C\n" "NU6L\n" "NU6S\n" "NU6T\n" "NU7DX\n" "NU7F\n" "NU7J\n" "NU7P\n" "NU7T\n" "NU8L\n" "NU8Z\n" "NV0P\n" "NV0S\n" "NV0U\n" "NV1N\n" "NV2G\n" "NV3V\n" "NV4A\n" "NV4B\n" "NV4G\n" "NV5E\n" "NV5H\n" "NV6C\n" "NV6R\n" "NV7A\n" "NV7E\n" "NV7P\n" "NV8N\n" "NV9X\n" "NV9Z\n" "NW0DX\n" "NW0G\n" "NW0Q\n" "NW1C\n" "NW1E\n" "NW1V\n" "NW2I\n" "NW3DC\n" "NW4J\n" "NW4N\n" "NW4T\n" "NW4V\n" "NW5U\n" "NW5X\n" "NW6H\n" "NW6P\n" "NW6R\n" "NW6S\n" "NW7D\n" "NW7E\n" "NW7I\n" "NW7O\n" "NW7US\n" "NW8F\n" "NW8U\n" "NW9S\n" "NX0I\n" "NX0X\n" "NX1C\n" "NX1P\n" "NX1Q\n" "NX1T\n" "NX1Y\n" "NX2PX\n" "NX2X\n" "NX3Y\n" "NX4C\n" "NX4D\n" "NX4N\n" "NX4O\n" "NX5D\n" "NX5M\n" "NX5O\n" "NX5Z\n" "NX6J\n" "NX6T\n" "NX7DX\n" "NX7F\n" "NX7TT\n" "NX7U\n" "NX8G\n" "NX8J\n" "NX9B\n" "NX9T\n" "NY0O\n" "NY0R\n" "NY0T\n" "NY0V\n" "NY1E\n" "NY1H\n" "NY1Q\n" "NY2U\n" "NY3A\n" "NY3B\n" "NY3C\n" "NY3DX\n" "NY3H\n" "NY4A\n" "NY4D\n" "NY4FL\n" "NY4I\n" "NY4JB\n" "NY4N\n" "NY4O\n" "NY4P\n" "NY4PD\n" "NY4S\n" "NY6DX\n" "NY6I\n" "NY6J\n" "NY6N\n" "NY6P\n" "NY6U\n" "NY6X\n" "NY6Y\n" "NY8K\n" "NY8T\n" "NY9H\n" "NY9S\n" "NZ0O\n" "NZ0R\n" "NZ0T\n" "NZ1D\n" "NZ1R\n" "NZ1U\n" "NZ3J\n" "NZ3M\n" "NZ4CW\n" "NZ4DX\n" "NZ4L\n" "NZ4O\n" "NZ4R\n" "NZ5A\n" "NZ5DX\n" "NZ5G\n" "NZ5L\n" "NZ5M\n" "NZ5N\n" "NZ5P\n" "NZ6K\n" "NZ6L\n" "NZ6P\n" "NZ6Q\n" "NZ8J\n" "NZ9R\n" "NZ9Z\n" "OA4AHW\n" "OA4AI\n" "OA4O\n" "OA4SS\n" "OA4TT\n" "OA4WW\n" "OA6/OE3NHW\n" "OC4HQ\n" "OD5NJ\n" "OD5O\n" "OD5T\n" "OD5TE\n" "OD5WPX\n" "OE1A\n" "OE1AGB\n" "OE1AZS\n" "OE1BKA\n" "OE1C\n" "OE1DWC\n" "OE1EHB\n" "OE1FSB\n" "OE1H\n" "OE1HFC\n" "OE1HHB\n" "OE1HMC\n" "OE1JEW\n" "OE1KBC\n" "OE1KDK\n" "OE1KLW\n" "OE1KTS\n" "OE1MBB\n" "OE1MCU\n" "OE1MHL\n" "OE1MOU\n" "OE1PEW\n" "OE1PMU\n" "OE1PPA\n" "OE1RGC\n" "OE1RKS\n" "OE1SF\n" "OE1SGU\n" "OE1SZW\n" "OE1TKW\n" "OE1TRB\n" "OE1UZ\n" "OE1WEU\n" "OE1WIU\n" "OE1XTU\n" "OE2BZL\n" "OE2DYL\n" "OE2GEN\n" "OE2GRL\n" "OE2IGP\n" "OE2IJL\n" "OE2KGL\n" "OE2KHM\n" "OE2KNN\n" "OE2LCM\n" "OE2M\n" "OE2MON\n" "OE2S\n" "OE2SCM\n" "OE2SNL\n" "OE2UKL\n" "OE2VDL\n" "OE2VEL\n" "OE2VLN\n" "OE2WUL\n" "OE2XWL\n" "OE3AKB\n" "OE3CHA\n" "OE3CHC\n" "OE3DIA\n" "OE3DMA\n" "OE3DSA\n" "OE3DSB\n" "OE3DWC\n" "OE3DXA\n" "OE3EHA\n" "OE3EMC\n" "OE3EVA\n" "OE3FLU\n" "OE3FPA\n" "OE3GBB\n" "OE3GCU\n" "OE3GSA\n" "OE3HPA\n" "OE3HPU\n" "OE3HTC\n" "OE3HWC\n" "OE3HZW\n" "OE3I\n" "OE3JAG\n" "OE3JS\n" "OE3JTB\n" "OE3JWC\n" "OE3K\n" "OE3KAB\n" "OE3KLU\n" "OE3KOA\n" "OE3MRA\n" "OE3NHW\n" "OE3O\n" "OE3OLW\n" "OE3PGW\n" "OE3PRU\n" "OE3REC\n" "OE3RTB\n" "OE3SGA\n" "OE3SGU\n" "OE3TL\n" "OE3WEU\n" "OE3WMA\n" "OE3WMW\n" "OE3WXU\n" "OE3ZK\n" "OE4A\n" "OE4AAC\n" "OE4HSB\n" "OE4PWW\n" "OE4RGC\n" "OE4RLC\n" "OE4VIE\n" "OE4WBW\n" "OE4WWL\n" "OE4XRK\n" "OE5AWL\n" "OE5BWN\n" "OE5CSP\n" "OE5CWO\n" "OE5CYL\n" "OE5DFP\n" "OE5DI\n" "OE5FBL\n" "OE5FDM\n" "OE5FIN\n" "OE5FZO\n" "OE5GA\n" "OE5GWP\n" "OE5HDN\n" "OE5HIL\n" "OE5HSN\n" "OE5JKL\n" "OE5KE\n" "OE5MSM\n" "OE5NGM\n" "OE5OHO\n" "OE5ORM\n" "OE5PEN\n" "OE5RI\n" "OE5SMU\n" "OE5T\n" "OE5UAL\n" "OE5WEL\n" "OE5WGL\n" "OE5XIL\n" "OE6AKD\n" "OE6BMG\n" "OE6CWL\n" "OE6FGG\n" "OE6GRG\n" "OE6HLF\n" "OE6HTG\n" "OE6HZG\n" "OE6IMD\n" "OE6KDG\n" "OE6KYG\n" "OE6LCF\n" "OE6LUG\n" "OE6MBG\n" "OE6MDF\n" "OE6MMF\n" "OE6SQD\n" "OE6TXG\n" "OE6WIG\n" "OE6WSF\n" "OE6Z\n" "OE7AJT\n" "OE7BJT\n" "OE7DDI\n" "OE7F\n" "OE7FMH\n" "OE7FRH\n" "OE7GJ\n" "OE7MFI\n" "OE7PKJ\n" "OE8ANK\n" "OE8DLK\n" "OE8GBK\n" "OE8GMK\n" "OE8GMQ\n" "OE8HAQ\n" "OE8HIK\n" "OE8KR\n" "OE8MKQ\n" "OE8NTK\n" "OE8Q\n" "OE8SKQ\n" "OE8SPW\n" "OE8WIU\n" "OE8XBH\n" "OE9ADW\n" "OE9GHV\n" "OE9GLV\n" "OE9GWI\n" "OE9HGV\n" "OE9HLH\n" "OE9ICI\n" "OE9MCV\n" "OE9MON\n" "OE9MWV\n" "OE9NRH\n" "OE9PTI\n" "OE9R\n" "OE9RJJ\n" "OE9SBD\n" "OE9SEI\n" "OE9SLH\n" "OE9WGI\n" "OE9WLJ\n" "OG0I\n" "OG0M\n" "OG0R\n" "OG0Z\n" "OG1M\n" "OG1T\n" "OG2A\n" "OG2M\n" "OG2O\n" "OG2P\n" "OG2U\n" "OG3A\n" "OG3M\n" "OG3R\n" "OG4T\n" "OG4X\n" "OG50F\n" "OG5A\n" "OG5B\n" "OG5M\n" "OG5OF\n" "OG5T\n" "OG6A\n" "OG6G\n" "OG6K\n" "OG6N\n" "OG6R\n" "OG7X\n" "OG8A\n" "OG8X\n" "OG9W\n" "OH/AB9OG\n" "OH/G1UZD\n" "OH0/OH2LRE\n" "OH0AL\n" "OH0B\n" "OH0E\n" "OH0EC\n" "OH0JFP\n" "OH0PM\n" "OH0R\n" "OH0RJ\n" "OH0V\n" "OH0X\n" "OH0Z\n" "OH1BGG\n" "OH1BOI\n" "OH1BV\n" "OH1EB\n" "OH1F\n" "OH1FFN\n" "OH1FJ\n" "OH1HD\n" "OH1HM\n" "OH1JO\n" "OH1JT\n" "OH1KF\n" "OH1KIO\n" "OH1LA\n" "OH1LEG\n" "OH1LEU\n" "OH1LQ\n" "OH1LWZ\n" "OH1MA\n" "OH1MAU\n" "OH1MLZ\n" "OH1MM\n" "OH1MN\n" "OH1MZ\n" "OH1ND\n" "OH1NM\n" "OH1NOA\n" "OH1NX\n" "OH1O\n" "OH1PY\n" "OH1QA\n" "OH1RX\n" "OH1SIC\n" "OH1TD\n" "OH1TIN\n" "OH1TN\n" "OH1TS\n" "OH1TX\n" "OH1UM\n" "OH1VR\n" "OH1WF\n" "OH1WR\n" "OH1XT\n" "OH1XX\n" "OH1XY\n" "OH1Z\n" "OH1ZE\n" "OH2AG\n" "OH2BAD\n" "OH2BAH\n" "OH2BBR\n" "OH2BBT\n" "OH2BC\n" "OH2BCD\n" "OH2BCK\n" "OH2BEC\n" "OH2BEJ\n" "OH2BEN\n" "OH2BF\n" "OH2BGD\n" "OH2BH\n" "OH2BJ\n" "OH2BLD\n" "OH2BLV\n" "OH2BMO\n" "OH2BN\n" "OH2BNX\n" "OH2BO\n" "OH2BP\n" "OH2BPA\n" "OH2BPU\n" "OH2BR\n" "OH2BS\n" "OH2BSI\n" "OH2BU\n" "OH2BUW\n" "OH2BV\n" "OH2CI\n" "OH2CK\n" "OH2CP\n" "OH2CW\n" "OH2DP\n" "OH2EI\n" "OH2EO\n" "OH2ET\n" "OH2EV\n" "OH2FS\n" "OH2FT\n" "OH2GI\n" "OH2HAN\n" "OH2HOD\n" "OH2HQ\n" "OH2JSR\n" "OH2K\n" "OH2KAD\n" "OH2KI\n" "OH2KK\n" "OH2KW\n" "OH2LE\n" "OH2LI\n" "OH2LIR\n" "OH2LNH\n" "OH2LP\n" "OH2LU\n" "OH2LYJ\n" "OH2LZI\n" "OH2MA\n" "OH2MFE\n" "OH2MM\n" "OH2MO\n" "OH2MQ\n" "OH2MZB\n" "OH2NC\n" "OH2NFN\n" "OH2NT\n" "OH2OT\n" "OH2PM\n" "OH2PQ\n" "OH2RH\n" "OH2RI\n" "OH2T\n" "OH2TM\n" "OH2U\n" "OH2VB\n" "OH2VZ\n" "OH2WI\n" "OH2XF\n" "OH2XP\n" "OH2XX\n" "OH2ZZ\n" "OH3BHL\n" "OH3BU\n" "OH3CT\n" "OH3DP\n" "OH3FLF\n" "OH3FM\n" "OH3GBS\n" "OH3GD\n" "OH3GIF\n" "OH3GZ\n" "OH3HS\n" "OH3I\n" "OH3JF\n" "OH3JP\n" "OH3JR\n" "OH3KAV\n" "OH3KQ\n" "OH3LB\n" "OH3LQK\n" "OH3MC\n" "OH3MEO\n" "OH3MF\n" "OH3MKH\n" "OH3MMF\n" "OH3NDH\n" "OH3OJ\n" "OH3P\n" "OH3QL\n" "OH3RF\n" "OH3RM\n" "OH3RU\n" "OH3SR\n" "OH3UU\n" "OH3VV\n" "OH3WD\n" "OH3WR\n" "OH3WW\n" "OH3XA\n" "OH3XR\n" "OH3YI\n" "OH4A\n" "OH4AB\n" "OH4BNP\n" "OH4E\n" "OH4EA\n" "OH4JK\n" "OH4JT\n" "OH4KA\n" "OH4LA\n" "OH4LBX\n" "OH4M\n" "OH4MDY\n" "OH4MFA\n" "OH4R\n" "OH4RF\n" "OH4TI\n" "OH4TY\n" "OH4XX\n" "OH5BM\n" "OH5CW\n" "OH5DA\n" "OH5HBA\n" "OH5JH\n" "OH5JJL\n" "OH5K\n" "OH5KW\n" "OH5LF\n" "OH5LP\n" "OH5N\n" "OH5NE\n" "OH5NQ\n" "OH5NZ\n" "OH5PT\n" "OH5TQ\n" "OH5TS\n" "OH5UFO\n" "OH5UQ\n" "OH5UX\n" "OH5VG\n" "OH5VT\n" "OH5XX\n" "OH5YU\n" "OH5YX\n" "OH5Z\n" "OH5ZZ\n" "OH6AC\n" "OH6BA\n" "OH6BG\n" "OH6CT\n" "OH6DX\n" "OH6EI\n" "OH6FMG\n" "OH6GAZ\n" "OH6GDX\n" "OH6GL\n" "OH6GUA\n" "OH6HOL\n" "OH6IU\n" "OH6JKW\n" "OH6JT\n" "OH6JYH\n" "OH6K\n" "OH6KZP\n" "OH6LEZ\n" "OH6LHB\n" "OH6LI\n" "OH6LOB\n" "OH6M\n" "OH6MBQ\n" "OH6MK\n" "OH6MKL\n" "OH6MM\n" "OH6MMC\n" "OH6MSZ\n" "OH6MW\n" "OH6NJ\n" "OH6NV\n" "OH6OS\n" "OH6P\n" "OH6R\n" "OH6RC\n" "OH6RE\n" "OH6RP\n" "OH6RX\n" "OH6TN\n" "OH6UE\n" "OH6VI\n" "OH6WI\n" "OH6XB\n" "OH6XY\n" "OH7AZL\n" "OH7BX\n" "OH7FAE\n" "OH7FF\n" "OH7FKV\n" "OH7HD\n" "OH7HM\n" "OH7HXH\n" "OH7JH\n" "OH7JHI\n" "OH7JJT\n" "OH7JL\n" "OH7JR\n" "OH7KBF\n" "OH7KD\n" "OH7KNM\n" "OH7M\n" "OH7MFO\n" "OH7MJU\n" "OH7MM\n" "OH7MN\n" "OH7MP\n" "OH7MS\n" "OH7MYK\n" "OH7N\n" "OH7NJ\n" "OH7R\n" "OH7RJ\n" "OH7UE\n" "OH7UG\n" "OH7WN\n" "OH7WW\n" "OH7XM\n" "OH7YN\n" "OH8A\n" "OH8CW\n" "OH8DR\n" "OH8F\n" "OH8FAL\n" "OH8FBD\n" "OH8FKU\n" "OH8GBO\n" "OH8GZN\n" "OH8GZQ\n" "OH8HTG\n" "OH8JSZ\n" "OH8KA\n" ; const char txt_master4[65520] = "OH8KTN\n" "OH8KVA\n" "OH8KVY\n" "OH8L\n" "OH8LQ\n" "OH8LXT\n" "OH8MBN\n" "OH8MJ\n" "OH8NC\n" "OH8OB\n" "OH8OR\n" "OH8R\n" "OH8SE\n" "OH8T\n" "OH8TA\n" "OH8TV\n" "OH8UL\n" "OH8US\n" "OH8VQ\n" "OH8WW\n" "OH8X\n" "OH9BS\n" "OH9GIT\n" "OH9KL\n" "OH9MDV\n" "OH9RP\n" "OH9VC\n" "OH9VL\n" "OH9W\n" "OI3V\n" "OI6X\n" "OJ0B\n" "OK1AA\n" "OK1AAZ\n" "OK1ABB\n" "OK1ABF\n" "OK1ACF\n" "OK1AD\n" "OK1ADM\n" "OK1AEZ\n" "OK1AHG\n" "OK1AHJ\n" "OK1AHV\n" "OK1AIJ\n" "OK1AIT\n" "OK1AJR\n" "OK1AJY\n" "OK1AK\n" "OK1AKB\n" "OK1AKJ\n" "OK1AL\n" "OK1AMM\n" "OK1AMU\n" "OK1AN\n" "OK1ANT\n" "OK1AOU\n" "OK1AOV\n" "OK1AOZ\n" "OK1APB\n" "OK1APV\n" "OK1AQW\n" "OK1ARO\n" "OK1ATH\n" "OK1ATX\n" "OK1AUG\n" "OK1AVG\n" "OK1AVY\n" "OK1AWG\n" "OK1AWH\n" "OK1AWU\n" "OK1AXB\n" "OK1AXG\n" "OK1AXX\n" "OK1AY\n" "OK1AYD\n" "OK1AYE\n" "OK1AYU\n" "OK1AYW\n" "OK1AYY\n" "OK1AZK\n" "OK1BA\n" "OK1BB\n" "OK1BET\n" "OK1BLU\n" "OK1BM\n" "OK1BMW\n" "OK1BN\n" "OK1CAM\n" "OK1CDJ\n" "OK1CF\n" "OK1CLD\n" "OK1CO\n" "OK1CQ\n" "OK1CRM\n" "OK1CSS\n" "OK1CW\n" "OK1CZ\n" "OK1DAM\n" "OK1DAU\n" "OK1DBE\n" "OK1DC\n" "OK1DCF\n" "OK1DDQ\n" "OK1DDV/P\n" "OK1DEC\n" "OK1DEK\n" "OK1DF\n" "OK1DG\n" "OK1DGU\n" "OK1DH\n" "OK1DHP\n" "OK1DI\n" "OK1DIG\n" "OK1DIX\n" "OK1DJD\n" "OK1DJS\n" "OK1DKA\n" "OK1DKO\n" "OK1DKR\n" "OK1DKZ\n" "OK1DLA\n" "OK1DLB\n" "OK1DM\n" "OK1DMP\n" "OK1DNJ\n" "OK1DO\n" "OK1DOF\n" "OK1DOL\n" "OK1DOM\n" "OK1DOR\n" "OK1DOT\n" "OK1DOY\n" "OK1DOZ\n" "OK1DQT\n" "OK1DRQ\n" "OK1DRU\n" "OK1DRX\n" "OK1DRY\n" "OK1DST\n" "OK1DSU\n" "OK1DSX\n" "OK1DTC\n" "OK1DTM\n" "OK1DTN\n" "OK1DUT\n" "OK1DVA\n" "OK1DVK\n" "OK1DVM\n" "OK1DWC\n" "OK1DWF\n" "OK1DWJ\n" "OK1DX\n" "OK1DXD\n" "OK1DXI\n" "OK1ED\n" "OK1EK\n" "OK1EP\n" "OK1ES\n" "OK1EV\n" "OK1FAB\n" "OK1FAI\n" "OK1FAK\n" "OK1FAN\n" "OK1FAO\n" "OK1FAQ\n" "OK1FAV\n" "OK1FBH\n" "OK1FC\n" "OK1FCA\n" "OK1FCR\n" "OK1FDR\n" "OK1FDY\n" "OK1FED\n" "OK1FEK\n" "OK1FFA\n" "OK1FFU\n" "OK1FFW\n" "OK1FGD\n" "OK1FGE\n" "OK1FGS\n" "OK1FGU\n" "OK1FHD\n" "OK1FHI\n" "OK1FIM\n" "OK1FIY\n" "OK1FKD\n" "OK1FKM\n" "OK1FLC\n" "OK1FLK\n" "OK1FLT\n" "OK1FMG\n" "OK1FMX\n" "OK1FNT\n" "OK1FOG\n" "OK1FP\n" "OK1FPG\n" "OK1FPQ\n" "OK1FPS\n" "OK1FQT\n" "OK1FRD\n" "OK1FRG\n" "OK1FRO\n" "OK1FSM\n" "OK1FTM\n" "OK1FUK\n" "OK1FV\n" "OK1FWW\n" "OK1FZM\n" "OK1GI\n" "OK1GK\n" "OK1GM\n" "OK1GS\n" "OK1GT\n" "OK1GTH\n" "OK1GU\n" "OK1HA\n" "OK1HAS\n" "OK1HC\n" "OK1HCD\n" "OK1HCG\n" "OK1HCU\n" "OK1HEH\n" "OK1HFP\n" "OK1HGM\n" "OK1HL\n" "OK1HMP\n" "OK1HRA\n" "OK1HWI\n" "OK1HX\n" "OK1IAS\n" "OK1IBP\n" "OK1IC\n" "OK1IEC\n" "OK1IEV\n" "OK1II\n" "OK1IPS\n" "OK1IR\n" "OK1ITK\n" "OK1IW\n" "OK1IWN\n" "OK1JDJ\n" "OK1JDR\n" "OK1JFP\n" "OK1JKR\n" "OK1JL\n" "OK1JMD\n" "OK1JMJ\n" "OK1JN\n" "OK1JOC\n" "OK1JOK\n" "OK1JR\n" "OK1JST\n" "OK1JVT\n" "OK1JXU\n" "OK1KAK\n" "OK1KC\n" "OK1KDO\n" "OK1KFB\n" "OK1KI\n" "OK1KJA\n" "OK1KJV\n" "OK1KL\n" "OK1KM\n" "OK1KMG\n" "OK1KMU\n" "OK1KOB\n" "OK1KSL\n" "OK1KT\n" "OK1KTI\n" "OK1KTT\n" "OK1KUO\n" "OK1KW\n" "OK1KZ\n" "OK1LO\n" "OK1LOL\n" "OK1LV\n" "OK1LX\n" "OK1MAC\n" "OK1MBZ\n" "OK1MCW\n" "OK1MDK\n" "OK1MGW\n" "OK1MIN\n" "OK1MIQ\n" "OK1MKD\n" "OK1MKI\n" "OK1MKU\n" "OK1MMN\n" "OK1MMU\n" "OK1MNI\n" "OK1MNV\n" "OK1MNW\n" "OK1MP\n" "OK1MQ\n" "OK1MRU\n" "OK1MSJ\n" "OK1MSL\n" "OK1MSP\n" "OK1MV\n" "OK1MYA\n" "OK1MZB\n" "OK1MZO\n" "OK1ND\n" "OK1NE\n" "OK1NG\n" "OK1NGC\n" "OK1NI\n" "OK1NL\n" "OK1NR\n" "OK1NU\n" "OK1NY\n" "OK1NZ\n" "OK1OA\n" "OK1ODX\n" "OK1OUE\n" "OK1PA\n" "OK1PD\n" "OK1PFM\n" "OK1PI\n" "OK1PR\n" "OK1PV\n" "OK1PW\n" "OK1Q\n" "OK1QM\n" "OK1RP\n" "OK1RR\n" "OK1RS\n" "OK1SD\n" "OK1SF\n" "OK1SI\n" "OK1SKJ\n" "OK1SMJ\n" "OK1SP\n" "OK1SX\n" "OK1T\n" "OK1TA\n" "OK1TC\n" "OK1TD\n" "OK1TFH\n" "OK1TIR\n" "OK1TN\n" "OK1TPW\n" "OK1TRA\n" "OK1UDJ\n" "OK1UG\n" "OK1UKV\n" "OK1ULE\n" "OK1UN\n" "OK1UNL\n" "OK1US\n" "OK1USU\n" "OK1UU\n" "OK1VAW\n" "OK1VD\n" "OK1VDJ\n" "OK1VEI\n" "OK1VFT\n" "OK1VHV\n" "OK1VKC\n" "OK1VPU\n" "OK1VRF\n" "OK1W\n" "OK1WCF\n" "OK1WF\n" "OK1WIP\n" "OK1WMJ\n" "OK1WT\n" "OK1X\n" "OK1XC\n" "OK1XPP\n" "OK1XQ\n" "OK1XR\n" "OK1XV\n" "OK1XW\n" "OK1XYZ\n" "OK1YC\n" "OK1YM\n" "OK1Z\n" "OK1ZCW\n" "OK1ZE\n" "OK1ZHS\n" "OK1ZHV\n" "OK1ZVL\n" "OK2ABU\n" "OK2AF\n" "OK2AJ\n" "OK2AN\n" "OK2AOP\n" "OK2ARD\n" "OK2BAQ\n" "OK2BBJ\n" "OK2BBQ\n" "OK2BDR\n" "OK2BEH\n" "OK2BEN\n" "OK2BFN\n" "OK2BGB\n" "OK2BGN\n" "OK2BH\n" "OK2BHD\n" "OK2BHL\n" "OK2BIQ\n" "OK2BIU\n" "OK2BJ\n" "OK2BJC\n" "OK2BJI\n" "OK2BJL\n" "OK2BK\n" "OK2BKL\n" "OK2BLD\n" "OK2BMC\n" "OK2BME\n" "OK2BMI\n" "OK2BMU\n" "OK2BNC\n" "OK2BND\n" "OK2BNF\n" "OK2BOB\n" "OK2BPK\n" "OK2BPU\n" "OK2BQ\n" "OK2BQZ\n" "OK2BRQ\n" "OK2BRS\n" "OK2BRV\n" "OK2BRX\n" "OK2BSQ\n" "OK2BTC\n" "OK2BTR\n" "OK2BTS\n" "OK2BTT\n" "OK2BUD\n" "OK2BUT\n" "OK2BUZ\n" "OK2BV\n" "OK2BWC\n" "OK2BWI\n" "OK2BWJ\n" "OK2BWK\n" "OK2BWM\n" "OK2BXA\n" "OK2BXE\n" "OK2BXU\n" "OK2BXW\n" "OK2BYW\n" "OK2BZ\n" "OK2BZE\n" "OK2BZM\n" "OK2CJM\n" "OK2CLW\n" "OK2CMW\n" "OK2COB\n" "OK2CQR\n" "OK2CSU\n" "OK2CVA\n" "OK2DW\n" "OK2EA\n" "OK2EC\n" "OK2EE\n" "OK2EI\n" "OK2EQ\n" "OK2ER\n" "OK2FB\n" "OK2FD\n" "OK2FN\n" "OK2FR\n" "OK2FYM\n" "OK2GG\n" "OK2GU\n" "OK2GX\n" "OK2GZ\n" "OK2HBR\n" "OK2HBY\n" "OK2HI\n" "OK2HIJ\n" "OK2HZ\n" "OK2ILD\n" "OK2JK\n" "OK2JNB\n" "OK2JOW\n" "OK2JS\n" "OK2KFK\n" "OK2KG\n" "OK2KJ\n" "OK2KJU\n" "OK2KO\n" "OK2KOJ\n" "OK2KPS\n" "OK2KR\n" "OK2KRT\n" "OK2KV\n" "OK2LI\n" "OK2LW\n" "OK2MBP\n" "OK2MJF\n" "OK2N\n" "OK2NA\n" "OK2NAJ\n" "OK2NMA\n" "OK2NO\n" "OK2OLD\n" "OK2OP\n" "OK2OV\n" "OK2OZL\n" "OK2PA\n" "OK2PAD\n" "OK2PAY\n" "OK2PBF\n" "OK2PBG\n" "OK2PCL\n" "OK2PCX\n" "OK2PDN\n" "OK2PDT\n" "OK2PEX\n" "OK2PF\n" "OK2PHI\n" "OK2PJW\n" "OK2PKT\n" "OK2PLH\n" "OK2PMA\n" "OK2PMF\n" "OK2PMS\n" "OK2PO\n" "OK2PQS\n" "OK2PRM\n" "OK2PTS\n" "OK2PVZ\n" "OK2PWJ\n" "OK2PWY\n" "OK2PX\n" "OK2PYA\n" "OK2PZ\n" "OK2QA\n" "OK2QX\n" "OK2RAC\n" "OK2RDI\n" "OK2RN\n" "OK2RRR\n" "OK2RU\n" "OK2RVM\n" "OK2RW\n" "OK2RZ\n" "OK2SA\n" "OK2SAI\n" "OK2SAR\n" "OK2SFO\n" "OK2SFP\n" "OK2SG\n" "OK2SGW\n" "OK2SGY\n" "OK2SI\n" "OK2SK\n" "OK2SKP\n" "OK2SLS\n" "OK2SPD\n" "OK2SSD\n" "OK2SVL\n" "OK2SW\n" "OK2SWD\n" "OK2TBC\n" "OK2TC\n" "OK2TDM\n" "OK2TEO\n" "OK2TPS\n" "OK2TRN\n" "OK2TS\n" "OK2U\n" "OK2UFB\n" "OK2UHP\n" "OK2UIN\n" "OK2UM\n" "OK2UVX\n" "OK2UZ\n" "OK2VA\n" "OK2VK\n" "OK2VWB\n" "OK2VX\n" "OK2VZE\n" "OK2W\n" "OK2WED\n" "OK2WKW\n" "OK2WM\n" "OK2WO\n" "OK2WY\n" "OK2WYK\n" "OK2XRW\n" "OK2YT\n" "OK2YZ\n" "OK2ZAK\n" "OK2ZAW\n" "OK2ZC\n" "OK2ZD\n" "OK2ZDL\n" "OK2ZI\n" "OK2ZO\n" "OK2ZU\n" "OK2ZV\n" "OK2ZW\n" "OK3AA\n" "OK3C\n" "OK3DN\n" "OK3KK\n" "OK3M\n" "OK3MAD\n" "OK3R\n" "OK3VM\n" "OK3W\n" "OK4AS\n" "OK4AZ\n" "OK4BX\n" "OK4DZ\n" "OK4FD\n" "OK4M\n" "OK4MM\n" "OK4N\n" "OK4PA\n" "OK4RQ\n" "OK4U\n" "OK4W\n" "OK5AA\n" "OK5AD\n" "OK5CW\n" "OK5IM\n" "OK5M\n" "OK5MK\n" "OK5MM\n" "OK5MN\n" "OK5OK\n" "OK5R\n" "OK5SA\n" "OK5SAZ\n" "OK5SWL\n" "OK5TFC\n" "OK5TK\n" "OK5TM\n" "OK5W\n" "OK5XX\n" "OK5ZH\n" "OK6AB\n" "OK6AY\n" "OK6CX\n" "OK6DJ\n" "OK6DX\n" "OK6K\n" "OK6MA\n" "OK6T\n" "OK6TW\n" "OK6Y\n" "OK7B\n" "OK7CM\n" "OK7CW\n" "OK7D\n" "OK7FL\n" "OK7GU\n" "OK7K\n" "OK7M\n" "OK7MD\n" "OK7MK\n" "OK7MT\n" "OK7N\n" "OK7O\n" "OK7PJ\n" "OK7PY\n" "OK7R\n" "OK7RJ\n" "OK7RY\n" "OK7SX\n" "OK7TB\n" "OK7U\n" "OK7WA\n" "OK7X\n" "OK7XX\n" "OK7Y\n" "OK8ACS\n" "OK8DCC\n" "OK8DD\n" "OK8DF\n" "OK8RA\n" "OK8RE\n" "OK8WW\n" "OK8YD\n" "OL0A\n" "OL0E\n" "OL0L\n" "OL0W\n" "OL16BND\n" "OL1A\n" "OL1B\n" "OL1C\n" "OL1M\n" "OL1S\n" "OL1X\n" "OL25LP\n" "OL26LP\n" "OL2A\n" "OL2N\n" "OL2T\n" "OL2U\n" "OL2X\n" "OL3A\n" "OL3M\n" "OL3R\n" "OL3X\n" "OL3Y\n" "OL3Z\n" "OL4A\n" "OL4M\n" "OL4W\n" "OL5K\n" "OL5M\n" "OL5Q\n" "OL5R\n" "OL5T\n" "OL5Y\n" "OL6M\n" "OL6P\n" "OL6W\n" "OL6X\n" "OL73NR\n" "OL7C\n" "OL7D\n" "OL7G\n" "OL7H\n" "OL7M\n" "OL7O\n" "OL7P\n" "OL7R\n" "OL7S\n" "OL7T\n" "OL8M\n" "OL8R\n" "OL8W\n" "OL9HQ\n" "OL9M\n" "OL9R\n" "OL9S\n" "OL9Z\n" "OM0A\n" "OM0ATP\n" "OM0M\n" "OM0R\n" "OM0TT\n" "OM0WR\n" "OM1ADM\n" "OM1AF\n" "OM1ATW\n" "OM1AW\n" "OM1AX\n" "OM1BM\n" "OM1HI\n" "OM1II\n" "OM1PD\n" "OM1TD\n" "OM1VA\n" "OM1XQ\n" "OM2AD\n" "OM2AK\n" "OM2ALA\n" "OM2AM\n" "OM2AW\n" "OM2BJ\n" "OM2CS\n" "OM2FY\n" "OM2IB\n" "OM2TB\n" "OM2VL\n" "OM2WX\n" "OM2XW\n" "OM2ZZ\n" "OM3AG\n" "OM3BA\n" "OM3BH\n" "OM3BY\n" "OM3CAQ\n" "OM3CDN\n" "OM3CEA\n" "OM3CGN\n" "OM3CHO\n" "OM3CPF\n" "OM3CUG\n" "OM3CW\n" "OM3DX\n" "OM3ED\n" "OM3EK\n" "OM3EQ\n" "OM3EY\n" "OM3FR\n" "OM3FZ\n" "OM3GI\n" "OM3IAG\n" "OM3ID\n" "OM3JA\n" "OM3JW\n" "OM3KFF\n" "OM3KJH\n" "OM3KWZ\n" "OM3KXX\n" "OM3KZA\n" "OM3LA\n" "OM3LK\n" "OM3LL\n" "OM3LS\n" "OM3LU\n" "OM3MB\n" "OM3MM\n" "OM3MV\n" "OM3NA\n" "OM3NI\n" "OM3OM\n" "OM3PA\n" "OM3PC\n" "OM3PQ\n" "OM3PR\n" "OM3QQ\n" "OM3R\n" "OM3RDX\n" "OM3RJB\n" "OM3RM\n" "OM3RMM\n" "OM3RRC\n" "OM3SEM\n" "OM3SG\n" "OM3SX\n" "OM3TB\n" "OM3TLE\n" "OM3TPN\n" "OM3TWM\n" "OM3TYC\n" "OM3TZO\n" "OM3X\n" "OM3YAD\n" "OM3YCA\n" "OM3YDX\n" "OM3YFT\n" "OM3ZBG\n" "OM3ZWA\n" "OM4A\n" "OM4AAS\n" "OM4ADR\n" "OM4ANJ\n" "OM4AY\n" "OM4CX\n" "OM4DA\n" "OM4DN\n" "OM4DU\n" "OM4DW\n" "OM4EX\n" "OM4F\n" "OM4J\n" "OM4JD\n" "OM4KW\n" "OM4PD\n" "OM4RF\n" "OM4TC\n" "OM4TW\n" "OM4W\n" "OM4WW\n" "OM4XA\n" "OM5AGM\n" "OM5ALC\n" "OM5CD\n" "OM5CM\n" "OM5CW\n" "OM5DP\n" "OM5DX\n" "OM5EA\n" "OM5FA\n" "OM5GU\n" "OM5KM\n" "OM5KP\n" "OM5LD\n" "OM5LR\n" "OM5M\n" "OM5MF\n" "OM5MO\n" "OM5MX\n" "OM5MZ\n" "OM5NA\n" "OM5NL\n" "OM5NU\n" "OM5RM\n" "OM5TX\n" "OM5UM\n" "OM5VS\n" "OM5X\n" "OM5ZW\n" "OM60KAP\n" "OM6A\n" "OM6AC\n" "OM6AL\n" "OM6AR\n" "OM6AT\n" "OM6AVK\n" "OM6CI\n" "OM6FM\n" "OM6JK\n" "OM6KW\n" "OM6MS\n" "OM6MT\n" "OM6MW\n" "OM6NM\n" "OM6P\n" "OM6PR\n" "OM6RK\n" "OM6SM\n" "OM6T\n" "OM6TC\n" "OM6TX\n" "OM7A\n" "OM7AB\n" "OM7AG\n" "OM7AT\n" "OM7AW\n" "OM7AX\n" "OM7CA\n" "OM7CG\n" "OM7CM\n" "OM7CW\n" "OM7DX\n" "OM7GW\n" "OM7KW\n" "OM7M\n" "OM7OB\n" "OM7OM\n" "OM7PY\n" "OM7RC\n" "OM7RR\n" "OM7RU\n" "OM7SR\n" "OM7TJ\n" "OM7TQ\n" "OM7YC\n" "OM7YL\n" "OM7ZM\n" "OM8A\n" "OM8AA\n" "OM8AHI\n" "OM8AMF\n" "OM8AQ\n" "OM8ART\n" "OM8AW\n" "OM8DD\n" "OM8FF\n" "OM8HG\n" "OM8JP\n" "OM8KW\n" "OM8LA\n" "OM8MM\n" "OM8ON\n" "OM8PG\n" "OM8RA\n" "OM8SL\n" "OM8TA\n" "OM9ACA\n" "OM9AJP\n" "OM9AMM\n" "ON1708M\n" "ON3AB\n" "ON3AD\n" "ON3AR\n" "ON3BZ\n" "ON3CCM\n" "ON3CQ\n" "ON3CYV\n" "ON3DI\n" "ON3DV\n" "ON3ED\n" "ON3EEF\n" "ON3EZ\n" "ON3FZT\n" "ON3GEO\n" "ON3GL\n" "ON3JF\n" "ON3JPA\n" "ON3KBY\n" "ON3KMJ\n" "ON3LBS\n" "ON3LX\n" "ON3ME\n" "ON3MI\n" "ON3MN\n" "ON3MT\n" "ON3ND\n" "ON3OG\n" "ON3OMD\n" "ON3OPA\n" "ON3OY\n" "ON3POL\n" "ON3RBJ\n" "ON3RPL\n" "ON3RR\n" "ON3TD\n" "ON3TO\n" "ON3URT\n" "ON3VBJ\n" "ON3VHF\n" "ON3VRT\n" "ON3VS\n" "ON3VW\n" "ON3VY\n" "ON3WAB\n" "ON3WJ\n" "ON3WLS\n" "ON3XXX\n" "ON3YV\n" "ON4ABL\n" "ON4ACW\n" "ON4AEF\n" "ON4AEK\n" "ON4AEM\n" "ON4AEY\n" "ON4AHF\n" "ON4ALJ\n" "ON4ALY\n" "ON4AMC\n" "ON4AMI\n" "ON4AMY\n" "ON4AN\n" "ON4ANL\n" "ON4ANL/P\n" "ON4AOI\n" "ON4ARJ\n" "ON4ARL\n" "ON4AST\n" "ON4ATA\n" "ON4ATW\n" "ON4AVG\n" "ON4AVZ\n" "ON4AWW\n" "ON4AXU\n" "ON4AYQ\n" "ON4AZL\n" "ON4BAG\n" "ON4BEN\n" "ON4BHP\n" "ON4BHQ\n" "ON4BR\n" "ON4BV\n" "ON4BX\n" "ON4CAB\n" "ON4CAS\n" "ON4CAU\n" "ON4CCC\n" "ON4CCN\n" "ON4CCU\n" "ON4CD\n" "ON4CDZ\n" "ON4CHK\n" "ON4CHN\n" "ON4CHP\n" "ON4CIS\n" "ON4CJR\n" "ON4CKE\n" "ON4CLF\n" "ON4CLQ\n" "ON4CP\n" "ON4CT\n" "ON4CZ\n" "ON4DA\n" "ON4DAP\n" "ON4DN\n" "ON4DY\n" "ON4ED\n" "ON4EI/EI\n" "ON4FG\n" "ON4FI\n" "ON4GG\n" "ON4GL\n" "ON4GO\n" "ON4HVO\n" "ON4IA\n" "ON4IBM\n" "ON4IG\n" "ON4IQ\n" "ON4IT\n" "ON4JM\n" "ON4JPB\n" "ON4KBZ\n" "ON4KCY\n" "ON4KEB\n" "ON4KEP\n" "ON4KGL\n" "ON4KLG\n" "ON4KMB\n" "ON4KML\n" "ON4KN\n" "ON4KSC\n" "ON4LBI\n" "ON4LCI\n" "ON4LCX\n" "ON4LDH\n" "ON4LDP\n" "ON4LDU\n" "ON4LEX\n" "ON4LFN\n" "ON4LG\n" "ON4LN\n" "ON4LO\n" "ON4LWX\n" "ON4MA\n" "ON4MW\n" "ON4ND\n" "ON4NOK\n" "ON4OL\n" "ON4OLE\n" "ON4ON\n" "ON4OS\n" "ON4PAL\n" "ON4PJA\n" "ON4PO\n" "ON4QX\n" "ON4RK\n" "ON4RO\n" "ON4SV\n" "ON4TC\n" "ON4TO\n" "ON4TOM\n" "ON4TTT\n" "ON4UN\n" "ON4UP\n" "ON4UQ\n" "ON4UW\n" "ON4VDV\n" "ON4VMA\n" "ON4VQ\n" "ON4WE\n" "ON4WIY\n" "ON4WW\n" "ON4XG\n" "ON4XJ\n" "ON4YN\n" "ON5AFB\n" "ON5ARY\n" "ON5CMB\n" "ON5DC\n" "ON5DH\n" "ON5DJ\n" "ON5EU\n" "ON5EX\n" "ON5GA\n" "ON5GF\n" "ON5GQ\n" "ON5GY\n" "ON5HF\n" "ON5HR\n" "ON5HY\n" "ON5JD\n" "ON5JT\n" "ON5KDX\n" "ON5KQ\n" "ON5LA\n" "ON5LGS\n" "ON5LO\n" "ON5MQ\n" "ON5NT\n" "ON5PO\n" "ON5QD\n" "ON5RA\n" "ON5RV\n" "ON5RZ\n" "ON5RZ/P\n" "ON5SD\n" "ON5SV\n" "ON5SY\n" "ON5TC\n" "ON5TO\n" "ON5TQ\n" "ON5UJ\n" "ON5UK\n" "ON5VL\n" "ON5WL\n" "ON5WQ\n" "ON5ZO\n" "ON65CLM\n" "ON6AB\n" "ON6BR\n" "ON6BU\n" "ON6DK\n" "ON6DP\n" "ON6EF\n" "ON6FC\n" "ON6FT\n" "ON6GV\n" "ON6HV\n" "ON6HZ\n" "ON6IP\n" "ON6LEO\n" "ON6LR\n" "ON6LS\n" "ON6LY\n" "ON6MG\n" "ON6MR\n" "ON6NL\n" "ON6NP\n" "ON6NW\n" "ON6OM\n" "ON6PF\n" "ON6PQ\n" "ON6PW\n" "ON6QG\n" "ON6QH\n" "ON6QO\n" "ON6QP\n" "ON6RJ\n" "ON6SA\n" "ON6SI\n" "ON6SM\n" "ON6SX\n" "ON6UC\n" "ON6UD\n" "ON6UF\n" "ON6UL\n" "ON6VL\n" "ON6WP\n" "ON6WR\n" "ON6XG\n" "ON6YH\n" "ON6YX\n" "ON6YYY\n" "ON6ZM\n" "ON6ZV\n" "ON769MS\n" "ON7AA\n" "ON7AAU\n" "ON7ARQ\n" "ON7BBR\n" "ON7BJ\n" "ON7BM\n" "ON7BT\n" "ON7CC\n" "ON7CD\n" "ON7CK\n" "ON7CL\n" "ON7CX\n" "ON7DDG\n" "ON7DR\n" "ON7DY\n" "ON7EE\n" "ON7EH\n" "ON7EQ\n" "ON7GB\n" "ON7GO\n" "ON7GR\n" "ON7HM\n" "ON7IDX\n" "ON7JA\n" "ON7JM\n" "ON7JV\n" "ON7KB\n" "ON7KC\n" "ON7KEC\n" "ON7NT\n" "ON7ON\n" "ON7PM\n" "ON7PP\n" "ON7PQ\n" "ON7PS\n" "ON7RU\n" "ON7SS\n" "ON7TG\n" "ON7TWA\n" "ON7UI\n" "ON7USB\n" "ON7UZ\n" "ON7VD\n" "ON7VMR\n" "ON7WB\n" "ON7WW\n" "ON7XD\n" "ON7YX\n" "ON7ZM\n" "ON8AJ\n" "ON8AM\n" "ON8AR\n" "ON8BB\n" "ON8BV\n" "ON8DM\n" "ON8EA\n" "ON8LDS\n" "ON8MT\n" "ON8NT\n" "ON8SL\n" "ON8VK\n" "ON8VM\n" "ON8VP\n" "ON8VT\n" "ON8WF\n" "ON8WW\n" "ON8XT\n" "ON8ZT\n" "ON9CCS\n" "ON9CSV\n" "OO0A\n" "OO2T\n" "OO4O\n" "OO4P\n" "OO4T\n" "OO5D\n" "OO5G\n" "OO5P\n" "OO5S\n" "OO5Z\n" "OO6C\n" "OO6U\n" "OO7K\n" "OO7W\n" "OO9O\n" "OP0HQ\n" "OP0P\n" "OP1A\n" "OP2A\n" "OP4A\n" "OP4B\n" "OP4D\n" "OP4F\n" "OP4K\n" "OP4L\n" "OP4T\n" "OP5N\n" "OP5T\n" "OP6A\n" "OP6T\n" "OP7A\n" "OP7B\n" "OQ3R\n" "OQ4A\n" "OQ4B\n" "OQ4T\n" "OQ4U\n" "OQ5A\n" "OQ5M\n" "OQ7Q\n" "OQ7T\n" "OR0A\n" "OR0OST\n" "OR1T\n" "OR1Z\n" "OR2A\n" "OR2F\n" "OR2M\n" "OR2R\n" "OR2T\n" "OR4A\n" "OR4R\n" "OR4U\n" "OR4W\n" "OR5EU\n" "OR5N\n" "OR6C\n" "OR7Z\n" "OS0S\n" "OS2A\n" "OS2T\n" "OS4U\n" "OS5N\n" "OS6C\n" "OS7A\n" "OS8A\n" "OT1A\n" "OT2A\n" "OT2B\n" "OT2C\n" "OT2X\n" "OT3A\n" "OT3T\n" "OT4A\n" "OT4P\n" "OT5A\n" "OT5P\n" "OT5T\n" "OT5W\n" "OT6E\n" "OT6T\n" "OT7E\n" "OT7G\n" "OT7N\n" "OT7T\n" "OT7X\n" "OU2P\n" "OU3A\n" "OU4O\n" "OU7X\n" "OV1A\n" "OV3X\n" "OV5A\n" "OX2A\n" "OX3XR\n" "OX5AA\n" "OX8XX\n" "OY1CT\n" "OY2J\n" "OY3AA\n" "OY3JE\n" "OY3QN\n" "OY4M\n" "OY6A\n" "OY9JD\n" "OY9R\n" "OZ0A\n" "OZ0MF\n" "OZ0MJ\n" "OZ0TE\n" "OZ0W\n" "OZ1AAR\n" "OZ1ACB\n" "OZ1ADL\n" "OZ1AGN\n" "OZ1AXG\n" "OZ1BCG\n" "OZ1BTE\n" "OZ1BXG\n" "OZ1BZJ\n" "OZ1CCM\n" "OZ1CJS\n" "OZ1CTK\n" "OZ1CWH\n" "OZ1DGQ\n" "OZ1DSD\n" "OZ1DYI/P\n" "OZ1DZ\n" "OZ1EDR\n" "OZ1FAO\n" "OZ1GCT\n" "OZ1GML\n" "OZ1HHH\n" "OZ1HQ\n" "OZ1HUE\n" "OZ1HYI\n" "OZ1IEZ\n" "OZ1IKW\n" "OZ1IKY\n" "OZ1ING\n" "OZ1JFK\n" "OZ1JTE\n" "OZ1JU\n" "OZ1JVX\n" "OZ1KEF\n" "OZ1KGV\n" "OZ1KJG\n" "OZ1KKH\n" "OZ1KSN\n" "OZ1KVM\n" "OZ1LCG\n" "OZ1LFI\n" "OZ1LNL\n" "OZ1LO\n" "OZ1LXJ\n" "OZ1NF\n" "OZ1XV\n" "OZ1ZE\n" "OZ2A\n" "OZ2ABI\n" "OZ2AKM\n" "OZ2AR\n" "OZ2BKK\n" "OZ2CVT\n" "OZ2DAN\n" "OZ2HT\n" "OZ2PBS\n" "OZ2RH\n" "OZ2SPACE\n" "OZ2TF\n" "OZ2U\n" "OZ3ABU\n" "OZ3ANT\n" "OZ3BJ\n" "OZ3EN\n" "OZ3SA\n" "OZ3SK\n" "OZ3SM\n" "OZ3SW\n" "OZ4ACK\n" "OZ4B\n" "OZ4CG\n" "OZ4EU\n" "OZ4FA\n" "OZ4FF\n" "OZ4M\n" "OZ4NA\n" "OZ4O\n" "OZ4RT\n" "OZ4UN\n" "OZ4VV\n" "OZ4VW\n" "OZ5AGJ\n" "OZ5BD\n" "OZ5D\n" "OZ5DSB\n" "OZ5DX\n" "OZ5E\n" "OZ5ESB\n" "OZ5EV\n" "OZ5GX\n" "OZ5HZ\n" "OZ5JC\n" "OZ5KU\n" "OZ5NJ\n" "OZ5RM\n" "OZ5TL\n" "OZ5UR\n" "OZ5W\n" "OZ5WQ\n" "OZ6ABL\n" "OZ6AGD\n" "OZ6AGX\n" "OZ6EI\n" "OZ6OM\n" "OZ6TL\n" "OZ7A\n" "OZ7AEI\n" "OZ7AKT\n" "OZ7AM\n" "OZ7BQ\n" "OZ7DK\n" "OZ7DN\n" "OZ7EA\n" "OZ7HAM\n" "OZ7HT\n" "OZ7IF\n" "OZ7KU\n" "OZ7NB\n" "OZ7OX\n" "OZ7RQ\n" "OZ7SMJ\n" "OZ7TTT\n" "OZ7UV\n" "OZ7X\n" "OZ7XE\n" "OZ7YL\n" "OZ7YY\n" "OZ8A\n" "OZ8ABE\n" "OZ8BZ\n" "OZ8CT\n" "OZ8EA\n" "OZ8PG\n" "OZ8PI\n" "OZ8SW\n" "OZ9KZ\n" "OZ9V\n" "P29CW\n" "P29NB\n" "P29TL\n" "P33W\n" "P39P\n" "P3F\n" "P3J\n" "P3M\n" "P3N\n" "P40A\n" "P40HQ\n" "P40K\n" "P40L\n" "P40LE\n" "P40N\n" "P40Q\n" "P40R\n" "P40TA\n" "P40V\n" "P40W\n" "P40Y\n" "P40YL\n" "P41M\n" "P41V\n" "P41YL\n" "P43A\n" "P43E\n" "P43JB\n" "P48AA\n" "P48ADI\n" "P49MR\n" "P49V\n" "P49X\n" "P49Y\n" "PA09CC\n" "PA0A\n" "PA0AA\n" "PA0ABM\n" "PA0ADP\n" "PA0AGA\n" "PA0AKN\n" "PA0ASD\n" "PA0ATG\n" "PA0ATY\n" "PA0AWH\n" "PA0B\n" "PA0BW\n" "PA0BWL\n" "PA0CAH\n" "PA0CGB\n" "PA0CKV\n" "PA0CMU\n" "PA0COR\n" "PA0CYW\n" "PA0DDB\n" "PA0DIN\n" "PA0DVD\n" "PA0DVM\n" "PA0ELS\n" "PA0EMO\n" "PA0END\n" "PA0FAW\n" "PA0FEI\n" "PA0FLE\n" "PA0GJV\n" "PA0GKO\n" "PA0GMM\n" "PA0GMS\n" "PA0GRU\n" "PA0HOR\n" "PA0HRM\n" "PA0HWB\n" "PA0IA\n" "PA0IJM\n" "PA0INA\n" "PA0JED\n" "PA0JHM\n" "PA0JNH\n" "PA0JSE\n" "PA0KT\n" "PA0LEG\n" "PA0LOU\n" "PA0LRK\n" "PA0LSK\n" "PA0M\n" "PA0MAW\n" "PA0MBD\n" "PA0MIR\n" "PA0MJM\n" "PA0O\n" "PA0PFW\n" "PA0PSA\n" "PA0PVW\n" "PA0QRB\n" "PA0QX\n" "PA0RBA\n" "PA0RBO\n" "PA0RDY\n" "PA0RHA\n" "PA0RRA\n" "PA0SAR\n" "PA0SDZ\n" "PA0SKP\n" "PA0SNG\n" "PA0SON\n" "PA0TCA\n" "PA0VAJ\n" "PA0VDV\n" "PA0VHA\n" "PA0VST\n" "PA0W\n" "PA0WDG\n" "PA0WKI\n" "PA0WLB\n" "PA0WMR\n" "PA0WRS\n" "PA0WTO\n" "PA0WYS\n" "PA100BEVER\n" "PA1A\n" "PA1AK\n" "PA1APW\n" "PA1AT\n" "PA1AW\n" "PA1B\n" "PA1BBO\n" "PA1BDO\n" "PA1BK\n" "PA1BOB\n" "PA1BR\n" "PA1BX\n" "PA1CC\n" "PA1CM\n" "PA1CPA\n" "PA1CW\n" "PA1DK\n" "PA1DV\n" "PA1FOC\n" "PA1FR\n" "PA1H\n" "PA1HCB\n" "PA1HEM\n" "PA1HR\n" "PA1JHP\n" "PA1K\n" "PA1M\n" "PA1MR\n" "PA1MV\n" "PA1MVL\n" "PA1NHZ\n" "PA1NL\n" "PA1PAT\n" "PA1PDM\n" "PA1PE\n" "PA1PT\n" "PA1PT/P\n" "PA1RF\n" "PA1RVL\n" "PA1T\n" "PA1TK\n" "PA1TO\n" "PA1TT\n" "PA1TX\n" "PA1UL\n" "PA1VC\n" "PA1W\n" "PA1WLB\n" "PA1X\n" "PA1XA\n" "PA2A\n" "PA2ALF\n" "PA2AM\n" "PA2AWU\n" "PA2C\n" "PA2CHM\n" "PA2CVD\n" "PA2DW\n" "PA2F\n" "PA2GJ\n" "PA2GP\n" "PA2IP\n" "PA2JWN\n" "PA2KHN\n" "PA2KW\n" "PA2LO\n" "PA2LS\n" "PA2MI\n" "PA2MRT\n" "PA2N\n" "PA2NJC\n" "PA2PCH\n" "PA2PDV\n" "PA2PKZ\n" "PA2PRU\n" "PA2R\n" "PA2REH\n" "PA2RU\n" "PA2RUS\n" "PA2SAM\n" "PA2SWL\n" "PA2TB\n" "PA2V\n" "PA2W\n" "PA2WO\n" "PA30IPA\n" "PA3A\n" "PA3AAV\n" "PA3ABH\n" "PA3ADJ\n" "PA3AFF\n" "PA3AGF\n" "PA3AIN\n" "PA3AJH\n" "PA3AJN\n" "PA3AJW\n" "PA3AKP\n" "PA3ALK\n" "PA3ALY\n" "PA3AM\n" "PA3ANN\n" "PA3AO\n" "PA3AQL\n" "PA3AQY\n" "PA3ARK\n" "PA3ARM\n" "PA3ATN\n" "PA3ATP\n" "PA3AWW\n" "PA3BFH\n" "PA3BFS\n" "PA3BGQ\n" "PA3BQC\n" "PA3BWD\n" "PA3BWK\n" "PA3BWS\n" "PA3C\n" "PA3CAL\n" "PA3CDN\n" "PA3CEV\n" "PA3CJF\n" "PA3CJP\n" "PA3CLQ\n" "PA3CMF\n" "PA3CNI\n" "PA3CSG\n" "PA3CTA\n" "PA3CUI\n" "PA3CVI\n" "PA3CVJ\n" "PA3CVR\n" "PA3DAT\n" "PA3DBH\n" "PA3DBS\n" "PA3DCX\n" "PA3DDP\n" "PA3DFG\n" "PA3DGH\n" "PA3DHR\n" "PA3DOB\n" "PA3DRL\n" "PA3DTR\n" "PA3DZF\n" "PA3EBP\n" "PA3ECJ\n" "PA3EEG\n" "PA3EKE\n" "PA3ELQ\n" "PA3EMN\n" "PA3EQO\n" "PA3ERY\n" "PA3ESO\n" "PA3EVY\n" "PA3EWG\n" "PA3EWP\n" "PA3EZC\n" "PA3FKN\n" "PA3FMC\n" "PA3FNB\n" "PA3FOE\n" "PA3FQA\n" "PA3FRD\n" "PA3FTX\n" "PA3FYG\n" "PA3FYI\n" "PA3GBI\n" "PA3GBQ\n" "PA3GCV\n" "PA3GDD\n" "PA3GDY\n" "PA3GEO\n" "PA3GGB\n" "PA3GGD\n" "PA3GGW\n" "PA3GJU\n" "PA3GMM\n" "PA3GPP\n" "PA3GPT\n" "PA3GQF\n" "PA3GQG\n" "PA3GVI\n" "PA3GWN\n" "PA3GXT\n" "PA3HAH\n" "PA3HCC\n" "PA3HCD\n" "PA3HCF\n" "PA3HFG\n" "PA3HFJ\n" "PA3HGF\n" "PA3HGP\n" "PA3HGY\n" "PA3HHE\n" "PA3HHT\n" "PA3HIJ\n" "PA3HK\n" "PA3HPY\n" "PA3HS\n" "PA3JD\n" "PA3JDV\n" "PA3KVE\n" "PA3MET\n" "PA3MM\n" "PA3MR\n" "PA3N\n" "PA3PCV\n" "PA3RB\n" "PA3RW\n" "PA3S\n" "PA3T\n" "PA3TON\n" "PA3TOP\n" "PA3WB\n" "PA3YH\n" "PA40MIR\n" "PA44N\n" "PA4AO\n" "PA4AR\n" "PA4B\n" "PA4CHE\n" "PA4DO\n" "PA4F\n" "PA4HF\n" "PA4JJ\n" "PA4LA\n" "PA4MRS\n" "PA4N\n" "PA4NIC\n" "PA4PS\n" "PA4SDV\n" "PA4T\n" "PA4VHF\n" "PA4WG\n" "PA50RNARS\n" "PA5A\n" "PA5CW\n" "PA5F\n" "PA5GU\n" "PA5HJ\n" "PA5J\n" "PA5JSB\n" "PA5KT\n" "PA5LV\n" "PA5MS\n" "PA5O\n" "PA5P\n" "PA5PR\n" "PA5RG\n" "PA5TT\n" "PA5V\n" "PA5VK\n" "PA5VL\n" "PA5W\n" "PA5WT\n" "PA5YL\n" "PA600MIR\n" "PA6HQ\n" "PA6OI\n" "PA6V\n" "PA6Z\n" "PA7A\n" "PA7BAS\n" "PA7CG\n" "PA7DW\n" "PA7F\n" "PA7FA\n" "PA7HPH\n" "PA7J\n" "PA7JM\n" "PA7JS\n" "PA7JWC\n" "PA7KG\n" "PA7LV\n" "PA7LZ\n" "PA7MM\n" "PA7N\n" "PA7OB\n" "PA7PA\n" "PA7PTT\n" "PA7PYR\n" "PA7RA\n" "PA7TWO\n" "PA7UL\n" "PA7WB\n" "PA7WW\n" "PA7YI\n" "PA7ZZ\n" "PA8F\n" "PA8KW\n" "PA8N\n" "PA8TWN\n" "PA9CC\n" "PA9CW\n" "PA9DD\n" "PA9HR\n" "PA9JO\n" "PA9LUC\n" "PA9M\n" "PA9MR\n" "PA9P\n" "PA9RD\n" "PA9RZ\n" "PB0ACU\n" "PB0AEX\n" "PB0AEZ\n" "PB0AMU\n" "PB0P\n" "PB1TT\n" "PB2JJ\n" "PB2T\n" "PB2X\n" "PB5T\n" "PB5WIM\n" "PB65BP\n" "PB6W\n" "PB7CW\n" "PB7XYL\n" "PC25DIG\n" "PC2A\n" "PC2C\n" "PC2F\n" "PC2J\n" "PC4T\n" "PC4U\n" "PC5M\n" "PC5W\n" "PC5WDB\n" "PC7R\n" "PC7T\n" "PC8E\n" "PD05CW\n" "PD0ADR\n" "PD0AG\n" "PD0ARI\n" "PD0BOR\n" "PD0DJB\n" "PD0DK\n" "PD0EJN\n" "PD0EMR\n" "PD0GAB\n" "PD0HD\n" "PD0HF\n" "PD0HM\n" "PD0HQF\n" "PD0JHM\n" "PD0JMH\n" "PD0JNG\n" "PD0LBH\n" "PD0LDC\n" "PD0LG\n" "PD0LGG\n" "PD0LUR\n" "PD0MBY\n" "PD0MD\n" "PD0MHZ\n" "PD0MLO\n" "PD0MM\n" "PD0MNF\n" "PD0OQV\n" "PD0OYF\n" "PD0PVL\n" "PD0RKA\n" "PD0RKC\n" "PD0ROC\n" "PD0RS\n" "PD0RXP\n" "PD0SCY\n" "PD0SV\n" "PD0TB\n" "PD0WR\n" "PD1ABO\n" "PD1AIH\n" "PD1AIV\n" "PD1ALW\n" "PD1ARM\n" "PD1D\n" "PD1DX\n" "PD1EHA\n" "PD1EN\n" "PD1EVL\n" "PD1KSA\n" "PD1MVL\n" "PD1RP\n" "PD1SA\n" "PD1TV\n" "PD1UAR\n" "PD2ATG\n" "PD2AVE\n" "PD2DX\n" "PD2EDR\n" "PD2GCM\n" "PD2GJS\n" "PD2GSP\n" "PD2HT\n" "PD2J\n" "PD2JAM\n" "PD2LLS\n" "PD2PKM\n" "PD2R\n" "PD2RKG\n" "PD2SO\n" "PD2YL\n" "PD3ALX\n" "PD3ATM\n" "PD3BVI\n" "PD3DX\n" "PD3EM\n" "PD3GO\n" "PD3GSN\n" "PD3GVA\n" "PD3HB\n" "PD3LHS\n" "PD3MDM\n" "PD4BAS\n" "PD4DX\n" "PD4HDB\n" "PD4JP\n" "PD4NYS\n" "PD4SAM\n" "PD4U\n" "PD4X\n" "PD5B\n" "PD5CW\n" "PD5DJ\n" "PD5GO\n" "PD5JFK\n" "PD5L\n" "PD5LKM\n" "PD5LO\n" "PD5MJF\n" "PD5RS\n" "PD5URK\n" "PD5X\n" "PD602YL\n" "PD6W\n" "PD7BZ\n" "PD7CJT\n" "PD7EAT\n" "PD7MER\n" "PD7RB\n" "PD7TWO\n" "PD9BM\n" "PD9DX\n" "PD9FDG\n" "PD9FER\n" "PD9FJ\n" "PD9GD\n" "PD9HVS\n" "PD9NR\n" "PD9W\n" "PD9Y\n" "PE0MVJ\n" "PE0NYJ\n" "PE0VT\n" "PE1AUV\n" "PE1B\n" "PE1CIM\n" "PE1CPJ\n" "PE1CVJ\n" "PE1CZG\n" "PE1DAB\n" "PE1DH\n" "PE1DTU\n" "PE1ER\n" "PE1EWR\n" "PE1FNW\n" "PE1FTV\n" "PE1FZK\n" "PE1GRJ\n" "PE1GWX\n" "PE1HB\n" "PE1HWO\n" "PE1IWT\n" "PE1JMN\n" "PE1JRP\n" "PE1KL\n" "PE1LGZ\n" "PE1LTY\n" "PE1LUB\n" "PE1MMZ\n" "PE1MPA\n" "PE1NAO\n" "PE1NBD\n" "PE1NCP\n" "PE1NGR\n" "PE1ODY\n" "PE1OLM\n" "PE1OPK\n" "PE1OUL\n" "PE1OXP\n" "PE1OXS\n" "PE1OYB\n" "PE1PGA\n" "PE1RDP\n" "PE1RF\n" "PE1RIK\n" "PE1RLF\n" "PE1RUS\n" "PE25KP\n" "PE2AE\n" "PE2CML\n" "PE2EMS\n" "PE2HD\n" "PE2HHN\n" "PE2JMR\n" "PE2KM\n" "PE2KP\n" "PE2KY\n" "PE2LZ\n" "PE2MC\n" "PE2MEV\n" "PE2RPS\n" "PE2T\n" "PE2TET\n" "PE3HG\n" "PE4AD\n" "PE4BAS\n" "PE5ENJ\n" "PE5T\n" "PE5TS\n" "PE7T\n" "PE7TG\n" "PE8ROB\n" "PE9GG\n" "PF0R\n" "PF0X\n" "PF1MO\n" "PF4T\n" "PF5X\n" "PF6WW\n" "PF7DKW\n" "PF7M\n" "PF7X\n" "PF9A\n" "PG1A\n" "PG1R\n" "PG2AA\n" "PG2D\n" "PG3N\n" "PG4DX\n" "PG4I\n" "PG5M\n" "PG6EL\n" "PG7A\n" "PG7V\n" "PH0AS\n" "PH0AW\n" "PH0JFL\n" "PH0Q\n" "PH100EL/P\n" "PH2A\n" "PH2M\n" "PH5C\n" "PH60PH\n" "PH7A\n" "PH7FE\n" "PH8GB\n" "PH9HB\n" "PI4AAG\n" "PI4AMF\n" "PI4AML\n" "PI4BRD\n" "PI4CC\n" "PI4CG\n" "PI4COM\n" "PI4D\n" "PI4DIG\n" "PI4DX\n" "PI4EDE\n" "PI4FRG\n" "PI4HQ\n" "PI4KGL\n" "PI4LWD\n" "PI4MRC\n" "PI4N\n" "PI4RCA\n" "PI4RCK\n" "PI4TIL\n" "PI4TUE\n" "PI4VHW\n" "PI4VPO\n" "PI4W\n" "PI4WLD\n" "PI4WNO\n" "PI4Z\n" "PI4ZI\n" "PI4ZOD\n" "PI65AAG\n" "PI65BRD\n" "PI9TP\n" "PJ2DX\n" "PJ2E\n" "PJ2HQ\n" "PJ2P\n" "PJ2T\n" "PJ4A\n" "PJ4E\n" "PJ4G\n" "PJ4K\n" "PJ4L\n" "PJ4LS\n" "PJ4NX\n" "PJ4R\n" "PJ4T\n" "PJ4X\n" "PJ5NA\n" "PJ7B\n" "PJ7MF\n" "PJ7UQ\n" "PP1CZ\n" "PP2RON\n" "PP5/OE9APV\n" "PP5AR\n" "PP5BI\n" "PP5BK\n" "PP5BZ\n" "PP5EG\n" "PP5IZ\n" "PP5JAK\n" "PP5JN\n" "PP5JY\n" "PP5KR\n" "PP5MQ\n" "PP5MS\n" "PP5TR\n" "PP5VK\n" "PP5VX\n" "PP5WG\n" "PP5XX\n" "PP7LL\n" "PP8ZAC\n" "PQ0F\n" "PQ4F\n" "PQ5B\n" "PR1T\n" "PR2B\n" "PR5D\n" "PR5W\n" "PR5Z\n" "PR7AA\n" "PR7AB\n" "PR7AF\n" "PR7AP\n" "PR7AR\n" "PR7AYE\n" "PR7CPK\n" "PR7DZ\n" "PR7GY\n" "PR7HR\n" "PR8ZX\n" "PS0F\n" "PS2T\n" "PS6T\n" "PS7DX\n" "PS7YL\n" "PS8CC\n" "PS8DX\n" "PS8ET\n" "PS8SP\n" "PT1A\n" "PT1Z\n" "PT2BW\n" "PT2CM\n" "PT2ZHA\n" "PT2ZXR\n" "PT3T\n" "PT4C\n" "PT5A\n" "PT5T\n" "PT5UN\n" "PT7AG\n" "PT7AZ\n" "PT7CG\n" "PT7DX\n" "PT7ZT\n" "PT8CWA\n" "PT8DX\n" "PT9PA\n" "PU1KGG\n" "PU1KYC\n" "PU2KLM\n" "PU2LEP\n" "PU2LGR\n" "PU2MJU\n" "PU2MTS\n" "PU2RKP\n" "PU2SDX\n" "PU2UEO\n" "PU2UTC\n" "PU2WDX\n" "PU3CAL\n" "PU3KNG\n" "PU3LYB\n" "PU3SVA\n" "PU4HUD\n" "PU5AAD\n" "PU5ATX\n" "PU5BIA\n" "PU5FJR\n" "PU5OGE\n" "PU5UAI\n" "PU8TEP\n" "PU9OSB\n" "PV2P\n" "PV8AA\n" "PV8ADI\n" "PV8DR\n" "PV8DX\n" "PV8RF\n" "PW1W\n" "PW2B\n" "PW2D\n" "PW2P\n" "PW5G\n" "PW7A\n" "PW7T\n" "PX2C\n" "PX2T\n" "PX5B\n" "PX5E\n" "PY0FF\n" "PY1CL\n" "PY1CMT\n" "PY1DHG\n" "PY1DX\n" "PY1HY\n" "PY1KN\n" "PY1ME\n" "PY1NB\n" "PY1NX\n" "PY1OW\n" "PY1RY\n" "PY1SX\n" "PY1WS\n" "PY1ZV\n" "PY2AAZ\n" "PY2AC\n" "PY2ADR\n" "PY2ARL\n" "PY2ASS\n" "PY2BK\n" "PY2BN\n" "PY2BRA\n" "PY2BRZ\n" "PY2BT\n" "PY2BW\n" "PY2DEZ\n" "PY2DJ\n" "PY2DU\n" "PY2DXX\n" "PY2DY\n" "PY2EB\n" "PY2EJ\n" "PY2EL\n" "PY2ELG\n" "PY2ESP\n" "PY2EU\n" "PY2EX\n" "PY2EYE\n" "PY2GA\n" "PY2GH\n" "PY2GMR\n" "PY2HAM\n" "PY2HL\n" "PY2HT\n" "PY2IAX\n" "PY2IQ\n" "PY2IU\n" "PY2KGB\n" "PY2KJ\n" "PY2KP\n" "PY2LEI\n" "PY2LSM\n" "PY2MNL\n" "PY2MPG\n" "PY2MR\n" "PY2MTS\n" "PY2MTV\n" "PY2NA\n" "PY2NB\n" "PY2NDX\n" "PY2NFE\n" "PY2NY\n" "PY2OE\n" "PY2OX\n" "PY2PT\n" "PY2QA\n" "PY2RDZ\n" "PY2RH\n" "PY2SBY\n" "PY2SEI\n" "PY2SEX\n" "PY2SF\n" "PY2SHF\n" "PY2SRB\n" "PY2TEL\n" "PY2TI\n" "PY2TIM\n" "PY2TO\n" "PY2UDX\n" "PY2UN\n" "PY2VA\n" "PY2VFU\n" "PY2VM\n" "PY2VZ\n" "PY2WAS\n" "PY2WB\n" "PY2WC\n" "PY2WL\n" "PY2XAT\n" "PY2XB\n" "PY2XC\n" "PY2XTA\n" "PY2YP\n" "PY2YU\n" "PY2ZA\n" "PY2ZK\n" "PY2ZR\n" "PY2ZXU\n" "PY2ZY\n" "PY3APY\n" "PY3ATR\n" "PY3AU\n" "PY3CAL\n" "PY3DX\n" "PY3EAM\n" "PY3FBI\n" "PY3FF\n" "PY3FOX\n" "PY3IP\n" "PY3KIM\n" "PY3KN\n" "PY3MHZ\n" "PY3NZ\n" "PY3OG\n" "PY3OL\n" "PY3OPP\n" "PY3PA\n" "PY3SB\n" "PY3TIO\n" "PY3UA\n" "PY3UEB\n" "PY3VB\n" "PY3VK\n" "PY3YD\n" "PY4BW\n" "PY4DEL\n" "PY4FQ\n" "PY4LH\n" "PY4OG\n" "PY4OY\n" "PY4UM\n" "PY4XX\n" "PY4ZF\n" "PY4ZO\n" "PY5AKW\n" "PY5AP\n" "PY5BH\n" "PY5BLG\n" "PY5CA\n" "PY5DC\n" "PY5EW\n" "PY5FB\n" "PY5FO\n" "PY5GA\n" "PY5IP\n" "PY5JO\n" "PY5KA\n" "PY5KD\n" "PY5KW\n" "PY5LF\n" "PY5MJ\n" "PY5QW\n" "PY5RB\n" "PY5TJ\n" "PY5XH\n" "PY5ZD\n" "PY5ZHP\n" "PY6HD\n" "PY6KW\n" "PY6KY\n" "PY6PRS\n" "PY7AHA\n" "PY7GK\n" "PY7OJ\n" "PY7RP\n" "PY7VI\n" "PY7XC\n" "PY7ZBK\n" "PY7ZY\n" "PY7ZZ\n" "PY8MGB\n" "PZ1AP\n" "PZ5M\n" "PZ5RA\n" "PZ5TT\n" "PZ5X\n" "PZ5Z\n" "R0HQ\n" "R100MAR\n" "R1ANB\n" "R1ANC\n" "R1ANP\n" "R1ANR\n" "R1ANY\n" "R2DW\n" "R3/AL1G\n" "R3/K5WA\n" "R3/K9GY\n" "R3/SM6LRR\n" "R3/UY0YU\n" "R3AA\n" "R3AR\n" "R3AT\n" "R3FF\n" "R3HQ\n" "R3K\n" "R3KM\n" "R3QX\n" "R3ZV\n" "R4/UN6P\n" "R4/UT5UDX\n" "R4WAA\n" "R5ACQ\n" "R6LA\n" "R7FF\n" "R7HF\n" "R7LV\n" "R85NN\n" "R8TX\n" "R9FM\n" "R9FT\n" "R9SA\n" "R9WW\n" "RA0AA\n" "RA0ACM\n" "RA0AM\n" "RA0ANO\n" "RA0AR\n" "RA0AY\n" "RA0BA\n" "RA0CAH\n" "RA0CL\n" "RA0CY\n" "RA0FLP\n" "RA0FU\n" "RA0FZ\n" "RA0JBL\n" "RA0JY\n" "RA0LE\n" "RA0LG\n" "RA0LL\n" "RA0LV\n" "RA0QC\n" "RA0QD\n" "RA0QQ\n" "RA0SF\n" "RA0SMS\n" "RA0SS\n" "RA0SU\n" "RA0UF\n" "RA0WHE\n" "RA0WU\n" "RA0ZN\n" "RA1AEI\n" "RA1AFR\n" "RA1AG\n" "RA1AGG\n" "RA1AGL\n" "RA1AGU\n" "RA1AIE\n" "RA1AIP\n" "RA1AKR\n" "RA1AL\n" "RA1ALZ\n" "RA1AOB\n" "RA1AOP\n" "RA1AR\n" "RA1AUW\n" "RA1AW\n" "RA1CF\n" "RA1CP\n" "RA1CW\n" "RA1OD\n" "RA1OGP\n" "RA1OHX\n" "RA1OJ\n" "RA1OW\n" "RA1OZ/1\n" "RA1QA\n" "RA1QAX\n" "RA1QCZ\n" "RA1QD\n" "RA1QDP\n" "RA1QFY\n" "RA1QG\n" "RA1QGK\n" "RA1QGO\n" "RA1QGW\n" "RA1QIH\n" "RA1QIT\n" "RA1QJA\n" "RA1QN\n" "RA1QQ\n" "RA1QR\n" "RA1QX\n" "RA1QY\n" "RA1TU\n" "RA1TV\n" "RA1WJ\n" "RA1WZ\n" "RA1ZZ/3\n" "RA2FAC\n" "RA2FB\n" "RA2FCE\n" "RA2FDX\n" "RA2FF\n" "RA2FG\n" "RA2FIA\n" "RA2FN\n" "RA2FU\n" "RA2FV\n" "RA2FX\n" "RA3AA\n" "RA3AD\n" "RA3AGF\n" "RA3AGN\n" "RA3AH\n" "RA3AJ\n" "RA3AN\n" "RA3ANI\n" "RA3APN\n" "RA3ATE\n" "RA3ATX\n" "RA3AUM\n" "RA3AV\n" "RA3AWO\n" "RA3AWW\n" "RA3AX\n" "RA3BB\n" "RA3BQ\n" "RA3BQ/3\n" "RA3BT\n" "RA3BZ\n" "RA3CM\n" "RA3CO\n" "RA3CQ\n" "RA3DA\n" "RA3DBK\n" "RA3DCT\n" "RA3DEQ\n" "RA3DGH\n" "RA3DH\n" "RA3DNC\n" "RA3DRC\n" "RA3DRI\n" "RA3DTH\n" "RA3DTN\n" "RA3DW\n" "RA3DX\n" "RA3DXU\n" "RA3EA\n" "RA3EC\n" "RA3ED\n" "RA3EF\n" "RA3EG\n" "RA3EM\n" "RA3EW\n" "RA3FC\n" "RA3FD\n" "RA3FF\n" "RA3FH\n" "RA3FO\n" "RA3GAS\n" "RA3GFG\n" "RA3GJ\n" "RA3GN\n" "RA3GP\n" "RA3ICK\n" "RA3ID\n" "RA3IS\n" "RA3LAL\n" "RA3LB\n" "RA3LBG\n" "RA3LDP\n" "RA3LG\n" "RA3LJ\n" "RA3LO\n" "RA3LZ\n" "RA3MAV\n" "RA3MB\n" "RA3MD\n" "RA3MQ\n" "RA3MR\n" "RA3MU\n" "RA3NAN\n" "RA3NC\n" "RA3NF\n" "RA3NK\n" "RA3NN\n" "RA3NU\n" "RA3NZ\n" "RA3OE\n" "RA3OO\n" "RA3OW\n" "RA3PQ\n" "RA3PS\n" "RA3PW\n" "RA3QG\n" "RA3QH\n" "RA3QJ\n" "RA3QN\n" "RA3QPT\n" "RA3QPY\n" "RA3QSY\n" "RA3RBL\n" "RA3RCL\n" "RA3RDW\n" "RA3RGD\n" "RA3RGQ\n" "RA3RIU\n" "RA3RK\n" "RA3RLP\n" "RA3RN\n" "RA3RNN\n" "RA3RPS\n" "RA3RUF\n" "RA3RVZ\n" "RA3SI\n" "RA3SL\n" "RA3SS\n" "RA3ST\n" "RA3SX\n" "RA3TA\n" "RA3TAC\n" "RA3THN\n" "RA3TJX\n" "RA3TT\n" "RA3TUE\n" "RA3TUT\n" "RA3TV\n" "RA3TVL\n" "RA3TYL\n" "RA3UAG\n" "RA3UF\n" "RA3UT\n" "RA3VE\n" "RA3VE/3\n" "RA3VFM\n" "RA3VGS\n" "RA3VHO\n" "RA3VKU\n" "RA3VLD\n" "RA3VMJ\n" "RA3VR\n" "RA3WCG\n" "RA3WEU\n" "RA3WJ\n" "RA3WP\n" "RA3WUG\n" "RA3XA\n" "RA3XAR\n" "RA3XCW\n" "RA3XCZ\n" "RA3XDX\n" "RA3XE\n" "RA3XEV\n" "RA3XI\n" "RA3XM\n" "RA3XO\n" "RA3XP\n" "RA3YAO\n" "RA3YBU\n" "RA3YC\n" "RA3YZ\n" "RA3ZA\n" "RA3ZC\n" "RA3ZH\n" "RA3ZOM\n" "RA3ZZ\n" "RA4AAJ\n" "RA4AAO\n" "RA4ACX\n" "RA4AFZ\n" "RA4AR\n" "RA4CA\n" "RA4CBN\n" "RA4CC\n" "RA4CKC\n" "RA4CP\n" "RA4CQ\n" "RA4CSP\n" "RA4CVT\n" "RA4CW\n" "RA4FAU\n" "RA4FDY\n" "RA4FJV\n" "RA4FP\n" "RA4FUN\n" "RA4FUT\n" "RA4FW\n" "RA4FWA\n" "RA4FY\n" "RA4HBS\n" "RA4HFE\n" "RA4HGN\n" "RA4HL\n" "RA4HMT\n" "RA4HO\n" "RA4HPA\n" "RA4HT\n" "RA4HX\n" "RA4LBS\n" "RA4LF\n" "RA4LK\n" "RA4LW\n" "RA4LZ\n" "RA4NCC\n" "RA4NF\n" "RA4NX\n" "RA4PD\n" "RA4PI\n" "RA4PKI\n" "RA4PNO\n" "RA4PO\n" "RA4POX\n" "RA4PR\n" "RA4PUT\n" "RA4RT\n" "RA4SE\n" "RA4ST\n" "RA4UAT\n" "RA4UF\n" "RA4UVK\n" "RA4WA\n" "RA4WC\n" "RA4YEW\n" "RA6AAW\n" "RA6ABC\n" "RA6AF\n" "RA6AMO\n" "RA6AQV\n" "RA6AR\n" "RA6ARI\n" "RA6AX\n" "RA6AZ\n" "RA6CU\n" "RA6CZ\n" "RA6DB\n" "RA6DE\n" "RA6DT\n" "RA6EE\n" "RA6FG\n" "RA6FHY\n" "RA6FP\n" "RA6FP/6\n" "RA6FPV\n" "RA6FQL\n" "RA6FRL\n" "RA6FSZ\n" "RA6FUZ\n" "RA6FV\n" "RA6FZ\n" "RA6GW\n" "RA6HCN\n" "RA6HDI\n" "RA6HJA\n" "RA6HJR\n" "RA6HPL\n" "RA6HSM\n" "RA6LBS\n" "RA6LOO\n" "RA6LW\n" "RA6MA\n" "RA6MQ\n" "RA6MS\n" "RA6MT\n" "RA6UAR\n" "RA6UH\n" "RA6XB\n" "RA6XE\n" "RA6XMF\n" "RA6XPG\n" "RA6XQQ\n" "RA6XR\n" "RA6XV\n" "RA6YBW\n" "RA6YDX\n" "RA6YJ\n" "RA7A\n" "RA9A\n" "RA9AAA\n" "RA9AB\n" "RA9AC\n" "RA9ACS\n" "RA9AE\n" "RA9AFZ\n" "RA9AKI\n" "RA9AMO\n" "RA9AN\n" "RA9AP\n" "RA9AU\n" "RA9AY\n" "RA9CB\n" "RA9CCO\n" "RA9CDW\n" "RA9CEX\n" "RA9CIN\n" "RA9CKM\n" "RA9CKQ\n" "RA9CMO\n" "RA9CNF\n" "RA9DR\n" "RA9DZ\n" "RA9FAA\n" "RA9FEL\n" "RA9FEU\n" "RA9FHL\n" "RA9FLW\n" "RA9FN\n" "RA9FR\n" "RA9FW\n" "RA9HL\n" "RA9HM\n" "RA9HO\n" "RA9JB\n" "RA9JBA\n" "RA9JG\n" "RA9JM\n" "RA9JP\n" "RA9JR\n" "RA9KM\n" "RA9KY\n" "RA9LE\n" "RA9LT\n" "RA9LZ\n" "RA9MC\n" "RA9MGX\n" "RA9MJ\n" "RA9MLR\n" "RA9MLX\n" "RA9MU\n" "RA9MX\n" "RA9OBG\n" "RA9QBQ\n" "RA9RR\n" "RA9SAS\n" "RA9SB\n" "RA9SC\n" "RA9SF\n" "RA9SG\n" "RA9SK\n" "RA9SKL\n" "RA9SN\n" "RA9SPF\n" "RA9ST\n" "RA9SUF\n" "RA9UAD\n" "RA9UAG\n" "RA9UGU\n" "RA9UIV/9\n" "RA9ULK\n" "RA9UN\n" "RA9USU/3\n" "RA9UT\n" "RA9WD\n" "RA9WU\n" "RA9WV\n" "RA9WW\n" "RA9XE\n" "RA9XF\n" "RA9XSL\n" "RA9XU\n" "RA9XV\n" "RA9YAI\n" "RA9YN\n" "RC3W\n" "RC4AA\n" "RC4Q\n" "RC7F\n" "RC8I\n" "RC9F\n" "RC9JWR\n" "RC9O\n" "RD0C\n" "RD1AL\n" "RD1AN\n" "RD1AW\n" "RD3A\n" "RD3AAD\n" "RD3AB\n" "RD3ABN\n" "RD3AD\n" "RD3AF\n" "RD3AJB\n" "RD3AL\n" "RD3AN\n" "RD3AP\n" "RD3ATT\n" "RD3AW\n" "RD3AY\n" "RD3BE\n" "RD3BV\n" "RD3BW\n" "RD3BY\n" "RD3BZ\n" "RD3DD\n" "RD3DG\n" "RD3DS\n" "RD3DT\n" "RD3DY\n" "RD3FF\n" "RD3FI\n" "RD3FT\n" "RD3FX\n" "RD3FY\n" "RD3MA\n" "RD3MM\n" "RD3MR\n" "RD3PM\n" "RD3PO\n" "RD3PX\n" "RD3QX\n" "RD3WA\n" "RD3WAR\n" "RD3WF\n" "RD3ZC\n" "RD3ZF\n" "RD3ZW\n" "RD4HD\n" "RD4HF\n" "RD4WA\n" "RD4WM\n" "RD6LP\n" "RD6MA\n" "RD6MF\n" "RD9CX\n" "RF3C\n" "RF3P\n" "RF3T\n" "RF4M\n" "RF4N\n" "RF4S\n" "RF9M\n" "RF9W\n" "RG3K\n" "RG6G\n" "RG9A\n" "RJ3AA\n" "RJ3AM\n" "RK0AB\n" "RK0BWW/0\n" "RK0LWW\n" "RK0QWT\n" "RK0QZ\n" "RK0SA\n" "RK0SK\n" "RK0SP\n" "RK0SXF\n" "RK0SXR\n" "RK0UN\n" "RK0UT\n" "RK1AA\n" "RK1AD\n" "RK1AM\n" "RK1AO\n" "RK1AR\n" "RK1AX\n" "RK1NA\n" "RK1NWA\n" "RK1OWA\n" "RK1OWZ\n" "RK1OZM\n" "RK1PWA/3\n" "RK1QWX\n" "RK2FWA\n" "RK2FWN\n" "RK2FXG\n" "RK3ANL\n" "RK3AO\n" "RK3AQW\n" "RK3AWA\n" "RK3AWE\n" "RK3AWK\n" "RK3AWL\n" "RK3AX\n" "RK3BA\n" "RK3BX\n" "RK3DH\n" "RK3DK\n" "RK3DOJ\n" "RK3DS\n" "RK3DSW\n" "RK3DT\n" "RK3DU\n" "RK3DWH\n" "RK3DWR\n" "RK3DXS\n" "RK3DXW\n" "RK3DXZ\n" "RK3DZB\n" "RK3DZD/P\n" "RK3DZF\n" "RK3DZH\n" "RK3ER\n" "RK3EWW\n" "RK3EXA\n" "RK3FJ\n" "RK3FM\n" "RK3FQ\n" "RK3FWA\n" "RK3FWE\n" "RK3FWI\n" "RK3FY\n" "RK3GWW\n" "RK3GYM\n" "RK3IM\n" "RK3IWB\n" "RK3K\n" "RK3MWC\n" "RK3MWD\n" "RK3MWI\n" "RK3MWL\n" "RK3MXT\n" "RK3MXT/P\n" "RK3PA\n" "RK3PWJ\n" "RK3QS\n" "RK3QWA\n" "RK3QWM\n" "RK3QWW\n" "RK3QY\n" "RK3QZ\n" "RK3RB\n" "RK3RWA\n" "RK3RX\n" "RK3RZM\n" "RK3SWB\n" "RK3SWS\n" "RK3TD\n" "RK3TS\n" "RK3VWA\n" "RK3VWB\n" "RK3XWO\n" "RK3YWW\n" "RK3YYQ\n" "RK3YZA\n" "RK3ZB\n" "RK3ZF\n" "RK3ZZ\n" "RK4CWQ\n" "RK4CYW\n" "RK4FAD\n" "RK4FB\n" "RK4FF\n" "RK4FM\n" "RK4FWX\n" "RK4HWW\n" "RK4HYT\n" "RK4LWA\n" "RK4NA\n" "RK4NAB\n" "RK4PA\n" "RK4PB\n" "RK4PK\n" "RK4SA\n" "RK4UWA\n" "RK4UWR\n" "RK4WWA\n" "RK4WWF\n" "RK4WWQ\n" "RK4YJ\n" "RK6AM\n" "RK6AQM\n" "RK6ASY\n" "RK6AWY\n" "RK6AX\n" "RK6AXS\n" "RK6BBZ\n" "RK6CC\n" "RK6CK\n" "RK6CM\n" "RK6DL\n" "RK6FS\n" "RK6FZ\n" "RK6HG\n" "RK6HWR\n" "RK6HWW\n" "RK6LC\n" "RK6LP\n" "RK6LWA\n" "RK6LZF\n" "RK6MY\n" "RK6XWA\n" "RK6YD\n" "RK6YY\n" "RK6YZZ\n" "RK8I\n" "RK9AA\n" "RK9ABJ\n" "RK9AD\n" "RK9AJZ\n" "RK9AK\n" "RK9AN\n" "RK9AWC\n" "RK9AWN\n" "RK9AWT\n" "RK9AX\n" "RK9AY\n" "RK9CWA\n" "RK9CWW\n" "RK9CYA\n" "RK9CZO\n" "RK9DC\n" "RK9DM\n" "RK9DO\n" "RK9DR\n" "RK9FBE\n" "RK9FWW\n" "RK9FYS\n" "RK9JWR\n" "RK9JWV\n" "RK9JWW\n" "RK9JXP\n" "RK9KWI\n" "RK9KWK\n" "RK9MWL\n" "RK9QWM\n" "RK9QWZ\n" "RK9SWM\n" "RK9SWY\n" "RK9UAC\n" "RK9UAH\n" "RK9UC\n" "RK9UE\n" "RK9UN\n" "RK9WZZ\n" "RK9XA\n" "RK9XM\n" "RK9XWA\n" "RK9XWO\n" "RK9XX\n" "RK9XXX\n" "RK9XZB\n" "RK9YWE\n" "RK9YWK\n" "RL3A\n" "RL3AA\n" "RL3AB\n" "RL3AF\n" "RL3AJ\n" "RL3AW\n" "RL3BB\n" "RL3BK\n" "RL3BK/3\n" "RL3BM\n" "RL3BN\n" "RL3BZ\n" "RL3DD\n" "RL3DE\n" "RL3DF\n" "RL3DJ\n" "RL3DR\n" "RL3DX\n" "RL3DZ\n" "RL3F\n" "RL3FA\n" "RL3FM\n" "RL3FO\n" "RL3FT\n" "RL3FZ\n" "RL3KO\n" "RL3QWA\n" "RL3WL\n" "RL3WX\n" "RL3ZI\n" "RL4R\n" "RL6YXX\n" "RL9AA\n" "RM3F\n" "RM3M\n" "RM3Q\n" "RM3Z\n" "RM4HZ\n" "RM5A\n" "RM5D\n" "RM7M\n" "RM8W\n" "RM9RZ\n" "RN0CF\n" "RN0CT\n" "RN0CW\n" "RN0JJ\n" "RN0JX\n" "RN0SA\n" "RN0SRR\n" "RN0SS\n" "RN1AI\n" "RN1AJ\n" "RN1AN\n" "RN1AO\n" "RN1AQ\n" "RN1CC\n" "RN1CW\n" "RN1CX\n" "RN1NA\n" "RN1NEB\n" "RN1NEO\n" "RN1NU\n" "RN1NW\n" "RN1NY\n" "RN1ON\n" "RN1TA\n" "RN1TN\n" "RN2FA\n" "RN2FQ\n" "RN3AAB\n" "RN3AAB/3\n" "RN3AC\n" "RN3ADV\n" "RN3AHL\n" "RN3AKK\n" "RN3AM\n" "RN3AMF\n" "RN3ANT\n" "RN3ARA\n" "RN3AU\n" "RN3AU/3\n" "RN3AW\n" "RN3AZ\n" "RN3BO\n" "RN3BU\n" "RN3BW\n" "RN3CT\n" "RN3DAO\n" "RN3DAZ\n" "RN3DBA\n" "RN3DDR\n" "RN3DFN\n" "RN3DFS\n" "RN3DKE\n" "RN3DWW\n" "RN3DY\n" "RN3FA\n" "RN3FR\n" "RN3FS\n" "RN3FY\n" "RN3GA\n" "RN3GE\n" "RN3GL\n" "RN3GM\n" "RN3KK\n" "RN3KL\n" "RN3LA\n" "RN3OA\n" "RN3OK\n" "RN3QIS\n" "RN3QKC\n" "RN3QLM\n" "RN3QN\n" "RN3QO\n" "RN3QP\n" "RN3QQ\n" "RN3QVG\n" "RN3QY\n" "RN3RA\n" "RN3REA\n" "RN3REY\n" "RN3RF\n" "RN3RFX\n" "RN3RQ\n" "RN3RX\n" "RN3T\n" "RN3TT\n" "RN3ZC\n" "RN3ZHV\n" "RN3ZIC\n" "RN3ZIN\n" "RN3ZJJ\n" "RN3ZKD\n" "RN3ZOB\n" "RN3ZQ\n" "RN3ZR\n" "RN3ZRJ\n" "RN3ZX\n" "RN4AAD\n" "RN4ACX\n" "RN4AK\n" "RN4AO\n" "RN4AT\n" "RN4AX\n" "RN4CA\n" "RN4CC\n" "RN4CU\n" "RN4CU/0\n" "RN4HA\n" "RN4HAB\n" "RN4HFJ\n" "RN4HGP\n" "RN4HIF\n" "RN4HJQ\n" "RN4HW\n" "RN4LL\n" "RN4LP\n" "RN4LR\n" "RN4NF\n" "RN4SC\n" "RN4SM\n" "RN4SN\n" "RN4SS\n" "RN4WA\n" "RN4ZT\n" "RN6A\n" "RN6AH\n" "RN6AI\n" "RN6AJ\n" "RN6AT\n" "RN6BM\n" "RN6BY\n" "RN6CD\n" "RN6DJ\n" "RN6DR\n" "RN6DV\n" "RN6FA\n" "RN6FJ\n" "RN6FK\n" "RN6FM\n" "RN6FZ\n" "RN6HDX\n" "RN6HZ\n" "RN6MA\n" "RN7A\n" "RN7F\n" "RN9AA\n" "RN9AA/9\n" "RN9AUF\n" "RN9AWU\n" "RN9CM\n" "RN9CWJ\n" "RN9HM\n" "RN9HT\n" "RN9MA\n" "RN9MZ\n" "RN9RF\n" "RN9RM\n" "RN9S\n" "RN9SXX\n" "RN9XA\n" "RO3DX\n" "RO3T\n" "RO4W\n" "RO7M\n" "RO8WA\n" "RO9O\n" "RP2F\n" "RP3AF\n" "RP3G\n" "RP3QUP\n" "RP4M\n" "RP65DXS\n" "RP65Z\n" "RP6A\n" "RP9RP\n" "RQ9I\n" "RS3A\n" "RT0C\n" "RT3A\n" "RT3F\n" "RT3M\n" "RT3T\n" "RT4D\n" "RT4F\n" "RT4M\n" "RT4RO\n" "RT4W\n" "RT6A\n" "RT7D\n" "RT8O\n" "RT9S\n" "RT9W\n" "RU0AB\n" "RU0AE\n" "RU0AI\n" "RU0AKB\n" "RU0ANW\n" "RU0AT\n" "RU0AW\n" "RU0LI\n" "RU0LL\n" "RU0LQ\n" "RU0SN\n" "RU0ST\n" "RU0SU\n" "RU0UA\n" "RU0UQ\n" "RU1A\n" "RU1AA\n" "RU1AB\n" "RU1AO\n" "RU1AT\n" "RU1QD\n" "RU1QQ\n" "RU1QY\n" "RU2FAA\n" "RU2FL\n" "RU2FM\n" "RU3AA\n" "RU3AL\n" "RU3AT\n" "RU3BU\n" "RU3DBR\n" "RU3DD\n" "RU3DG\n" "RU3DM\n" "RU3DU\n" "RU3DVR\n" "RU3DX\n" "RU3EJ\n" "RU3EQ\n" "RU3FF\n" "RU3FF/6\n" "RU3FN\n" "RU3FT\n" "RU3GA\n" "RU3GS\n" "RU3HD\n" "RU3KC\n" "RU3LA\n" "RU3MJ\n" "RU3MW\n" "RU3ON\n" "RU3OO\n" "RU3OP\n" "RU3OW\n" "RU3PU\n" "RU3PY\n" "RU3QR\n" "RU3QW\n" "RU3RM\n" "RU3RR\n" "RU3SD\n" "RU3SE\n" "RU3ST\n" "RU3TC\n" "RU3UB\n" "RU3UM\n" "RU3UN\n" "RU3UR\n" "RU3UW\n" "RU3VD\n" "RU3VV\n" "RU3WR\n" "RU3XB\n" "RU3XF\n" "RU3XK\n" "RU3XW\n" "RU3XY\n" "RU3XY/1\n" "RU3YA\n" "RU3ZV\n" "RU3ZX\n" "RU4AW\n" "RU4CD\n" "RU4CO\n" "RU4CS\n" "RU4FA\n" "RU4HP\n" "RU4HU\n" "RU4LM\n" "RU4PU\n" "RU4SM\n" "RU4SO\n" "RU4SS\n" "RU4SU\n" "RU4SW\n" "RU4UR\n" "RU4WD\n" "RU4YES\n" "RU5A\n" "RU6AM\n" "RU6AN\n" "RU6AR\n" "RU6AV\n" "RU6AX\n" "RU6BR\n" "RU6CH\n" "RU6CQ\n" "RU6CT\n" "RU6DX\n" "RU6FA\n" "RU6FC\n" "RU6FZ\n" "RU6HJ\n" "RU6LA\n" "RU6LG\n" "RU6LWZ\n" "RU6M\n" "RU6MD\n" "RU6MM/1\n" "RU6UR\n" "RU6YJ\n" "RU6YK\n" "RU6YY\n" "RU6YZ\n" "RU9AC\n" "RU9AT\n" "RU9AWA\n" "RU9AZ\n" "RU9BS\n" "RU9CC\n" "RU9CD\n" "RU9CI\n" "RU9CK\n" "RU9CM\n" "RU9CO\n" "RU9CWF\n" "RU9CWG\n" "RU9CX\n" "RU9CY\n" "RU9CZ\n" "RU9CZD\n" "RU9DD\n" "RU9HM\n" "RU9LA\n" "RU9MU\n" "RU9MX\n" "RU9SO\n" "RU9TO\n" "RU9UC\n" "RU9UG\n" "RU9UN\n" "RU9UWU\n" "RU9WB\n" "RU9WX\n" "RU9WZ\n" "RU9YF\n" "RV0AE\n" "RV0AL\n" "RV0AR\n" "RV0AU\n" "RV0AUI\n" "RV0CD\n" "RV0SR\n" "RV1AC\n" "RV1AE\n" "RV1AP\n" "RV1AQ\n" "RV1AT\n" "RV1CB\n" "RV1CC\n" "RV1OO\n" "RV2FW/1\n" "RV2FZ\n" "RV3ACA/3\n" "RV3AMV\n" "RV3AQN\n" "RV3ATS\n" "RV3AZ\n" "RV3BQ\n" "RV3BV\n" "RV3DB\n" "RV3DBG\n" "RV3DBK\n" "RV3DCZ\n" "RV3DHC\n" "RV3DND\n" "RV3DUT\n" "RV3EAK\n" "RV3F\n" "RV3FD\n" "RV3FF\n" "RV3FI\n" "RV3FM\n" "RV3FN\n" "RV3FU\n" "RV3GM\n" "RV3IC\n" "RV3ID\n" "RV3IG\n" "RV3LE\n" "RV3LO\n" "RV3LU\n" "RV3MA\n" "RV3MF\n" "RV3MI\n" "RV3ML\n" "RV3MR\n" "RV3NA\n" "RV3NB\n" "RV3PN\n" "RV3QJ\n" "RV3QO\n" "RV3QR\n" "RV3QX\n" "RV3RM\n" "RV3TG\n" "RV3WD\n" "RV3WT\n" "RV3YM\n" "RV3YN\n" "RV3YR\n" "RV3ZL\n" "RV3ZN\n" "RV3ZQ\n" "RV4AB\n" "RV4AP\n" "RV4CO\n" "RV4CT\n" "RV4CU\n" "RV4HC\n" "RV4HL\n" "RV4HV\n" "RV4LC\n" "RV4LS\n" "RV6AA/P\n" "RV6AAA\n" "RV6ACC\n" "RV6AF\n" "RV6AJ\n" "RV6AJJ\n" "RV6ALI\n" "RV6ARS\n" "RV6ASU\n" "RV6BC\n" "RV6BK\n" "RV6BO\n" "RV6FA\n" "RV6FG\n" "RV6HEO\n" "RV6HO\n" "RV6LA\n" "RV6LAF\n" "RV6LCI\n" "RV6LFE\n" "RV6LJK\n" "RV6LN\n" "RV6LO\n" "RV6LX\n" "RV6YB\n" "RV9AV\n" "RV9AZ\n" "RV9CBW\n" "RV9CM\n" "RV9CP\n" "RV9CPZ\n" "RV9CQ\n" "RV9CX\n" "RV9FQ\n" "RV9FT\n" "RV9JE\n" "RV9JR\n" "RV9LF\n" "RV9LM\n" "RV9LV\n" "RV9MA\n" "RV9MM\n" "RV9MN\n" "RV9MZ\n" "RV9OM\n" "RV9SQ\n" "RV9SV\n" "RV9UB\n" "RV9UD\n" "RV9UF\n" "RV9UP\n" "RV9WA\n" "RV9WB\n" "RV9WJ\n" "RV9WP\n" "RV9WZ\n" "RV9WZ/2\n" "RV9XE\n" "RV9XM\n" "RV9XO\n" "RV9XQ\n" "RV9YK\n" "RV9YP\n" "RV9YW\n" "RV9YZ\n" "RV9YZ/9\n" "RW0A\n" "RW0AA\n" "RW0AJ\n" "RW0AQ\n" "RW0AR\n" "RW0BG\n" "RW0BM\n" "RW0CF\n" "RW0CN\n" "RW0COA\n" "RW0CR\n" "RW0CV\n" "RW0CWA\n" "RW0LBM\n" "RW0LD\n" "RW0LL\n" "RW0LQ\n" "RW0LT\n" "RW0LZ\n" "RW0MM\n" "RW0SD\n" "RW0SP\n" "RW0SR\n" "RW0UB\n" "RW0UM\n" "RW0UU\n" "RW1AC\n" "RW1AI\n" "RW1AM\n" "RW1AU\n" "RW1CW\n" "RW1CX\n" "RW1QV\n" "RW1ZA\n" "RW2F\n" "RW2L\n" "RW2WR\n" "RW3AF\n" "RW3AFY\n" "RW3AI\n" "RW3DA\n" "RW3DC\n" "RW3DD\n" "RW3DF\n" "RW3DL\n" "RW3DOX\n" "RW3DU\n" "RW3DW\n" "RW3DY\n" "RW3FX\n" "RW3GU\n" "RW3LB\n" "RW3LL\n" "RW3LX\n" "RW3MA\n" "RW3MB\n" "RW3MW\n" "RW3PF\n" "RW3PK\n" "RW3PX\n" "RW3PZ\n" "RW3QF\n" "RW3QHN\n" "RW3QO\n" "RW3QW\n" "RW3RM\n" "RW3RQ\n" "RW3SB\n" "RW3SK\n" "RW3SU\n" "RW3SY\n" "RW3TA\n" "RW3TT\n" "RW3VA\n" "RW3VI\n" "RW3VM\n" "RW3VZ\n" "RW3WWW/1\n" "RW3WX\n" "RW3XB\n" "RW3XM\n" "RW3XN\n" "RW3XS\n" "RW3XX\n" "RW3XZ\n" "RW3YA\n" "RW3YW\n" "RW3ZA\n" "RW3ZC\n" "RW4AA/9\n" "RW4AD\n" "RW4AO\n" "RW4CBG\n" "RW4CHD\n" "RW4CLF\n" "RW4CY\n" "RW4FD\n" "RW4FE\n" "RW4FX\n" "RW4HB\n" "RW4HBG\n" "RW4HD\n" "RW4HFH\n" "RW4HM\n" "RW4HM/P\n" "RW4HO\n" "RW4HP\n" "RW4HT\n" "RW4LK\n" "RW4LQ\n" "RW4NH\n" "RW4NN\n" "RW4NO\n" "RW4NQ\n" "RW4NX\n" "RW4PK\n" "RW4PL\n" "RW4PP\n" "RW4PU\n" "RW4PY\n" "RW4W\n" "RW4WM\n" "RW4WN\n" "RW4WW\n" "RW4WY\n" "RW4WZ\n" "RW4YR\n" "RW4YY\n" "RW6AF\n" "RW6AH\n" "RW6AHO\n" "RW6ALB\n" "RW6AM\n" "RW6AMP\n" "RW6AN\n" "RW6ATJ\n" "RW6AX\n" "RW6BD\n" "RW6BJ\n" "RW6BN\n" "RW6CF\n" "RW6CR\n" "RW6CW\n" "RW6FO\n" "RW6FZ\n" "RW6HA\n" "RW6HA/6\n" "RW6HJV\n" "RW6HJV/6\n" "RW6HKF\n" "RW6HP\n" "RW6HPD\n" "RW6HX\n" "RW6LP\n" "RW6MBC\n" "RW6MII\n" "RW6MN\n" "RW6MT\n" "RW9AW\n" "RW9C\n" "RW9CD\n" "RW9CW\n" "RW9DW\n" "RW9DX\n" "RW9FWR\n" "RW9HA\n" "RW9IM\n" "RW9JD\n" "RW9JE\n" "RW9JZ\n" "RW9LL\n" "RW9MC\n" "RW9MZ\n" "RW9OC\n" "RW9OW\n" "RW9OWD\n" "RW9OWW\n" "RW9OX\n" "RW9QA\n" "RW9RA\n" "RW9RN\n" "RW9RO\n" "RW9RW\n" "RW9SZ\n" "RW9TA\n" "RW9TP\n" "RW9TR\n" "RW9UKU\n" "RW9UOB\n" "RW9USA\n" "RW9UU\n" "RW9UW\n" "RW9UX\n" "RW9UY\n" "RW9WA\n" "RW9WC\n" "RW9WT\n" "RW9WW\n" "RW9XF\n" "RW9YP\n" "RX0AK\n" "RX0AT\n" "RX0AW\n" "RX0QA\n" "RX0QWW\n" "RX0SA\n" "RX1AA\n" "RX1AO\n" "RX1AP\n" "RX1CD\n" "RX1CQ\n" "RX3AA\n" "RX3AEX\n" "RX3AGD\n" "RX3AGQ\n" "RX3AHR\n" "RX3AJ\n" "RX3ALL\n" "RX3AMG\n" "RX3AP\n" "RX3APM\n" "RX3ASQ\n" "RX3AT\n" "RX3AU\n" "RX3AW\n" "RX3BP\n" "RX3DBG\n" "RX3DBH\n" "RX3DFL\n" "RX3DIS\n" "RX3DN\n" "RX3DTM\n" "RX3DTN\n" "RX3DUE\n" "RX3FK\n" "RX3FS\n" "RX3FS/3\n" "RX3FT\n" "RX3MA\n" "RX3MM\n" "RX3MX\n" "RX3OM\n" "RX3PR\n" "RX3QDF\n" "RX3QFY\n" "RX3QP\n" "RX3RA\n" "RX3RB\n" "RX3RZ\n" "RX3VA\n" "RX3VF\n" "RX3XA\n" "RX3XP\n" "RX3ZE\n" "RX3ZX\n" "RX4AW\n" "RX4CD\n" "RX4HX\n" "RX4HZ\n" "RX4HZZ\n" "RX4WX\n" "RX4YY\n" "RX6ABL\n" "RX6AH\n" "RX6AIC\n" "RX6AKA\n" "RX6AM\n" "RX6AMV\n" "RX6AOB\n" "RX6AUE\n" "RX6AY\n" "RX6BH\n" "RX6BS\n" "RX6BZ\n" "RX6CC\n" "RX6DM\n" "RX6DQ\n" "RX6DX\n" "RX6FJ\n" "RX6HT\n" "RX6LD\n" "RX6LE\n" "RX6LN\n" "RX6LOL\n" "RX6MR\n" "RX9AF\n" "RX9AI\n" "RX9AM\n" "RX9AON\n" "RX9AX\n" "RX9CAZ\n" "RX9CCJ\n" "RX9CDQ\n" "RX9CJ\n" "RX9DJ\n" "RX9FB\n" "RX9FG\n" "RX9FJ\n" "RX9FM\n" "RX9FR\n" "RX9FW\n" "RX9JD\n" "RX9JM/9\n" "RX9JP\n" "RX9KD\n" "RX9LW\n" "RX9SA\n" "RX9SK\n" "RX9SL\n" "RX9SN\n" "RX9SR\n" "RX9SS\n" "RX9TL\n" "RX9TL/9\n" "RX9TX\n" "RX9UL/3\n" "RX9WN\n" "RX9WR\n" "RX9WX\n" "RY4I\n" "RY9C\n" "RZ0AF\n" "RZ0AM\n" "RZ0AWO\n" "RZ0CQ\n" "RZ0CWN\n" "RZ0LWA\n" "RZ0SB\n" "RZ0SN\n" "RZ0SO\n" "RZ0SR\n" "RZ0SZZ\n" "RZ0WWA\n" "RZ1AP\n" "RZ1AT\n" "RZ1AU\n" "RZ1AWG\n" "RZ1AWO\n" "RZ1AWT\n" "RZ1AWZ\n" "RZ1AZ\n" "RZ1OA\n" "RZ1OK\n" "RZ1OM\n" "RZ1ZZ\n" "RZ1ZZZ\n" "RZ3AAO\n" "RZ3ABC\n" "RZ3ABF\n" "RZ3AIA\n" "RZ3AIU\n" "RZ3AM\n" "RZ3AMW\n" "RZ3ARO\n" "RZ3ATE\n" "RZ3ATG\n" "RZ3AUL\n" "RZ3AV\n" "RZ3AWI\n" "RZ3AWM/3\n" "RZ3AXX\n" "RZ3AZ\n" "RZ3BY\n" "RZ3DA\n" "RZ3DC\n" "RZ3DH\n" "RZ3DJ\n" "RZ3DSN\n" "RZ3DX\n" "RZ3DXR\n" "RZ3DZ\n" "RZ3DZA\n" "RZ3DZF\n" "RZ3DZI\n" "RZ3EC\n" "RZ3EE\n" "RZ3EM\n" "RZ3EV\n" "RZ3FH\n" "RZ3FR\n" "RZ3FR/3\n" "RZ3FW\n" "RZ3GU\n" "RZ3GV\n" "RZ3LC\n" "RZ3LWW\n" "RZ3OV\n" "RZ3PS\n" "RZ3QL\n" "RZ3QS\n" "RZ3QWT\n" "RZ3QZ\n" "RZ3RM\n" "RZ3TXZ\n" "RZ3TZL\n" "RZ3TZZ\n" "RZ3VA\n" "RZ3VO\n" "RZ3VV\n" "RZ3XA\n" "RZ4AA\n" "RZ4AG\n" "RZ4AO\n" "RZ4AR\n" "RZ4AYN\n" "RZ4AZ\n" "RZ4CWW\n" "RZ4FA\n" "RZ4FB\n" "RZ4FO\n" "RZ4FWA\n" "RZ4FWE\n" "RZ4FZZ\n" "RZ4HL\n" "RZ4HO\n" "RZ4HWS\n" "RZ4HX\n" "RZ4HZW\n" "RZ4LA\n" "RZ4NXF\n" "RZ4PWL\n" "RZ4SWM\n" "RZ4WZ\n" "RZ6AD\n" "RZ6AK\n" "RZ6ARM\n" "RZ6AW\n" "RZ6BR\n" "RZ6BU\n" "RZ6FA\n" "RZ6FC\n" "RZ6HDX\n" "RZ6HF\n" "RZ6HV\n" "RZ6HWA\n" "RZ6HX\n" "RZ6LB\n" "RZ6LG\n" "RZ6LV\n" "RZ6LWZ\n" "RZ6LY\n" "RZ6MD\n" "RZ6MM\n" "RZ6MP\n" "RZ6YZ\n" "RZ9AE\n" "RZ9AN\n" "RZ9AW\n" "RZ9AY\n" "RZ9AZ\n" "RZ9CJ\n" "RZ9CW\n" "RZ9FN\n" "RZ9HA\n" "RZ9HG\n" "RZ9HK\n" "RZ9HT\n" "RZ9IR\n" "RZ9OJ\n" "RZ9OO\n" "RZ9OP\n" "RZ9OQ\n" "RZ9OS\n" "RZ9OW\n" "RZ9OWN\n" "RZ9OZO\n" "RZ9SR\n" "RZ9SWA\n" "RZ9SZ/9\n" "RZ9UGN\n" "RZ9UI\n" "RZ9UMA\n" "RZ9UO\n" "RZ9UWZ\n" "RZ9WU\n" "RZ9WXK\n" "RZ9YB\n" "RZ9YF\n" "S50A\n" "S50AL\n" "S50B\n" "S50C\n" "S50D\n" "S50E\n" "S50G\n" "S50HQ\n" "S50IPY\n" "S50J\n" "S50K\n" "S50L\n" "S50NV\n" "S50O\n" "S50R\n" "S50U\n" "S50X\n" "S50XX\n" "S51A\n" "S51AD\n" "S51AE\n" "S51AU\n" "S51AY\n" "S51BO\n" "S51CAB\n" "S51CK\n" "S51D\n" "S51DF\n" "S51DI\n" "S51DV\n" "S51DX\n" "S51EC\n" "S51EP\n" "S51F\n" "S51FB\n" "S51HU\n" "S51IS\n" "S51IV\n" "S51J\n" "S51JQ\n" "S51K\n" "S51KV\n" "S51LU\n" "S51M\n" "S51MA\n" "S51ME\n" "S51MF\n" "S51NM\n" "S51NP\n" "S51NR\n" "S51NY\n" "S51NZ\n" "S51OE\n" "S51RE\n" "S51RJ\n" "S51RU\n" "S51SK\n" "S51SL\n" "S51ST\n" "S51SX\n" "S51TA\n" "S51TC\n" "S51TJ\n" "S51TN\n" "S51U\n" "S51UJ\n" "S51V\n" "S51W\n" "S51WO\n" "S51WX\n" "S51XA\n" "S51Z\n" "S51ZG\n" "S51ZZ\n" "S520A\n" "S52AL\n" "S52AU\n" "S52AW\n" "S52BB\n" "S52BM\n" "S52BT\n" "S52C\n" "S52CC\n" "S52DX\n" "S52F\n" "S52FW\n" "S52GO\n" "S52GP\n" "S52IC\n" "S52ID\n" "S52LW\n" "S52MZ\n" "S52OP\n" "S52OT\n" "S52P\n" "S52Q\n" "S52QM\n" "S52R\n" "S52RA\n" "S52ST\n" "S52TJ\n" "S52W\n" "S52WW\n" "S52X\n" "S52ZW\n" "S53A\n" "S53AF\n" "S53AK\n" "S53APR\n" "S53AR\n" "S53AU\n" "S53BB\n" "S53BH\n" "S53CC\n" "S53DA\n" "S53DIJ\n" "S53DRA\n" "S53DX\n" "S53EA\n" "S53EJ\n" "S53EO\n" "S53F\n" "S53FO\n" "S53G\n" "S53M\n" "S53MM\n" "S53NW\n" "S53O\n" "S53P\n" "S53QD\n" "S53R\n" "S53RA\n" "S53S\n" "S53SL\n" "S53SO\n" "S53V\n" "S53VP\n" "S53W\n" "S53XX\n" "S54A\n" "S54AA\n" "S54AO\n" "S54E\n" "S54G\n" "S54K\n" "S54L\n" "S54O\n" "S54W\n" "S54X\n" "S55A\n" "S55DX\n" "S55M\n" "S55N\n" "S55O\n" "S55OO\n" "S55SL\n" "S55T\n" "S55VM\n" "S55Y\n" "S55Z\n" "S55ZZ\n" "S56A\n" "S56AA\n" "S56B\n" "S56C\n" "S56DX\n" "S56EPX\n" "S56G\n" "S56IHX\n" "S56M\n" "S56P\n" "S56PYZ\n" "S56SD\n" "S56WPF\n" "S56WRT\n" "S56WYB\n" "S56X\n" "S56Y\n" "S56ZZZ\n" "S57A\n" "S57AC\n" "S57AD\n" "S57AJ\n" "S57AL\n" "S57AM\n" "S57AT\n" "S57AW\n" "S57AY\n" "S57C\n" "S57CV\n" "S57CW\n" "S57D\n" "S57DX\n" "S57EA\n" "S57ESG\n" "S57ET\n" "S57F\n" "S57GM\n" "S57J\n" "S57JA\n" "S57JZ\n" "S57KV\n" "S57L\n" "S57LC\n" "S57LR\n" "S57M\n" "S57MM\n" "S57MPU\n" "S57NAW\n" "S57NCP\n" "S57NEA\n" "S57NL\n" "S57NTR\n" "S57NW\n" "S57O\n" "S57OWA\n" "S57PM\n" "S57PY\n" "S57Q\n" "S57RL\n" "S57RTH\n" "S57S\n" "S57SU\n" "S57T\n" "S57U\n" "S57UN\n" "S57VW\n" "S57WJ\n" "S57WO\n" "S57WW\n" "S57X\n" "S57XX\n" "S57YX\n" "S57Z\n" "S58A\n" "S58AA\n" "S58AB\n" "S58AL\n" "S58AW\n" "S58D\n" "S58DX\n" "S58FA\n" "S58G\n" "S58J\n" "S58M\n" "S58MU\n" "S58N\n" "S58O\n" "S58P\n" "S58Q\n" "S58R\n" "S58RU\n" "S58T\n" "S58WW\n" "S58X\n" "S59A\n" "S59AA\n" "S59ABC\n" "S59AKR\n" "S59AR\n" "S59AV\n" "S59D\n" "S59DBC\n" "S59DDR\n" "S59DEM\n" "S59DJK\n" "S59DKR\n" "S59DR\n" "S59EIJ\n" "S59EKL\n" "S59H\n" "S59KB\n" "S59KM\n" "S59MA\n" "S59N\n" "S59O\n" "S59PC\n" "S59SV\n" "S59T\n" "S59TI\n" "S59V\n" "S59W\n" "S59X\n" "S59Z\n" "S59ZB\n" "S59ZZ\n" "S5D\n" "S79MI\n" "SA0AEK\n" "SA0AQT\n" "SA0BDK\n" "SA1A\n" "SA3A\n" "SA3ANZ\n" "SA3BGM\n" "SA3V\n" "SA4A\n" "SA4AQW\n" "SA4Z\n" "SA5ACL\n" "SA5ACR\n" "SA5ATV\n" "SA6AIN\n" "SA6AQP\n" "SA6BET\n" "SA6G\n" "SA6W\n" "SA7AOI\n" "SA7AUH\n" "SA7J\n" "SB0M\n" "SB6A\n" "SC3A\n" "SC3DX\n" "SC3N\n" "SC7DX\n" "SD0MN\n" "SD3A\n" "SD3D\n" "SD40JZ\n" "SD7X\n" "SE0X\n" "SE2A\n" "SE2T\n" "SE5E\n" "SE5S\n" "SE5T\n" "SE6C\n" "SE6E\n" "SE6N\n" "SE6U\n" "SE6W\n" "SE6Y\n" "SE7A\n" "SE800M\n" "SF0D\n" "SF0L\n" "SF0X\n" "SF3A\n" "SF3E\n" "SF5X\n" "SF6D\n" "SF6DX\n" "SF7WT\n" "SG0M\n" "SG0X\n" "SG1A\n" "SG3O\n" "SG4G\n" "SG5A\n" "SG5W\n" "SG5X\n" "SG6A\n" "SG6T\n" "SG7A\n" "SG7YL\n" "SH3O\n" "SI0E\n" "SI0M\n" "SI3A\n" "SI4G\n" "SI5S\n" "SI5Y\n" "SI6A\n" "SI6GM\n" "SI6R\n" "SI7V\n" "SI9AM\n" "SJ0X\n" "SJ2W\n" "SJ4F\n" "SJ6A\n" "SJ7M\n" "SK0CT\n" "SK0HB\n" "SK0QO\n" "SK0X\n" "SK2T\n" "SK3A\n" "SK3GM\n" "SK3GW\n" "SK3W\n" "SK4RY\n" "SK4TL\n" "SK5A\n" "SK5AA\n" "SK6AW\n" "SK6D\n" "SK6HD\n" "SK7A\n" "SK7AX\n" "SK7DX\n" "SK7OA\n" "SK9HQ\n" "SL0W\n" "SL5ZP\n" "SM0A\n" "SM0AIG\n" "SM0BDS\n" "SM0BSB\n" "SM0BSO\n" "SM0BYD\n" "SM0DTK\n" "SM0EPO\n" "SM0FM\n" "SM0GYX\n" "SM0IFP\n" "SM0IMJ\n" "SM0JHF\n" "SM0KRN\n" "SM0KV\n" "SM0MXO\n" "SM0NZY\n" "SM0Q\n" "SM0R\n" "SM0S\n" "SM0W\n" "SM0XG\n" "SM0Y\n" "SM0YRJ\n" "SM1ALH\n" "SM2BJS\n" "SM2CEW\n" "SM2CVH\n" "SM2EKA\n" "SM2EKM\n" "SM2ELN\n" "SM2JEB\n" "SM2JUR\n" "SM2LIY\n" "SM2M\n" "SM2MZC\n" "SM2ODB\n" "SM2T\n" "SM3AF\n" "SM3B\n" "SM3BDZ\n" "SM3BFH\n" "SM3BIZ\n" "SM3C\n" "SM3CCM\n" "SM3CZS\n" "SM3D\n" "SM3DMP\n" "SM3DXC\n" "SM3EAE\n" "SM3ETC\n" "SM3EVR\n" "SM3FVW\n" "SM3GBA\n" "SM3GSK\n" "SM3KIF\n" "SM3LBP\n" "SM3NFB\n" "SM3NRY\n" "SM3OKC\n" "SM3PHM\n" "SM3PZG\n" "SM3Q\n" "SM3R\n" "SM3RAB\n" "SM3RL\n" "SM3SJN\n" "SM3TLG\n" "SM3UZU\n" "SM3VAC\n" "SM3X\n" "SM3YBP\n" "SM4AIO\n" "SM4ASX\n" "SM4ATA\n" "SM4AZQ\n" "SM4C\n" "SM4CAN\n" "SM4CTT\n" "SM4EMO\n" "SM4F\n" "SM4OEP\n" "SM4PBT\n" "SM4RGD\n" "SM4RLD\n" "SM4TU\n" "SM4WKT\n" "SM4XFP\n" "SM50BFJ\n" "SM5ACQ\n" "SM5AOG\n" "SM5APS\n" "SM5AQD\n" "SM5AQI\n" "SM5ARL\n" "SM5BAX\n" "SM5BJT\n" "SM5BMB\n" "SM5BOK\n" "SM5BRG\n" "SM5BSB\n" "SM5C\n" "SM5CAK\n" "SM5CBM\n" "SM5CCE\n" "SM5CEU\n" "SM5CIL\n" "SM5CJW\n" "SM5CNQ\n" "SM5COP\n" "SM5CSS\n" "SM5CZQ\n" "SM5D\n" "SM5DD\n" "SM5DFF\n" "SM5DJZ\n" "SM5DKK\n" "SM5DQE\n" "SM5DXR\n" "SM5DXT\n" "SM5DYC\n" "SM5EDX\n" "SM5EFX\n" "SM5EJN\n" "SM5ENX\n" "SM5EPO\n" "SM5FQQ\n" "SM5FUG\n" "SM5GMZ\n" "SM5HPB\n" "SM5IMO\n" "SM5INC\n" "SM5ISM\n" "SM5J\n" "SM5LWC/7\n" "SM5MEK\n" "SM5MX\n" "SM5NVF\n" "SM5OSZ\n" "SM5PEY/5\n" "SM5Q\n" "SM5QU\n" "SM5R\n" "SM5SIK\n" "SM5SRR\n" "SM5T\n" "SM5U\n" "SM5USK\n" "SM5V\n" "SM5YOC\n" "SM5ZBJ\n" "SM6A\n" "SM6AHU\n" "SM6ALF\n" "SM6AOU\n" "SM6BGG\n" "SM6BSK\n" "SM6C\n" "SM6CKU\n" "SM6CMU\n" "SM6CNN\n" "SM6CPY\n" "SM6CRM\n" "SM6CTQ\n" "SM6CUK\n" "SM6CVT\n" "SM6CWK\n" "SM6DER/7\n" "SM6DHU\n" "SM6DLY\n" "SM6E\n" "SM6EQO\n" "SM6FJY\n" "SM6FUD\n" "SM6GKT\n" "SM6GZ\n" "SM6IQD\n" "SM6JCC\n" "SM6JMZ\n" "SM6JWW\n" "SM6LIF\n" "SM6LJU\n" "SM6M\n" "SM6MCW\n" "SM6MIS\n" "SM6MSG\n" "SM6MVE\n" "SM6NET\n" "SM6NJK\n" "SM6NM\n" "SM6NOC\n" "SM6Q\n" "SM6TOL\n" "SM6U\n" "SM6V\n" "SM6VJA/P\n" "SM6VVT\n" "SM6W\n" "SM6WET\n" "SM6WZH\n" "SM6X\n" "SM6XKB\n" "SM6Z\n" "SM7ATL\n" "SM7AWQ\n" "SM7BGE\n" "SM7BHM\n" "SM7BIC\n" "SM7BJW\n" "SM7BQX\n" "SM7BVO\n" "SM7BZV\n" "SM7C\n" "SM7CBS\n" "SM7CIL\n" "SM7CQY\n" "SM7CTJ\n" "SM7CWI\n" "SM7DBN\n" "SM7DLK\n" "SM7DQV\n" "SM7DXQ\n" "SM7E\n" "SM7EH\n" "SM7EHU\n" "SM7GIB\n" "SM7GUY\n" "SM7GVF\n" "SM7HVQ\n" "SM7JKD\n" "SM7JNT\n" "SM7LPY\n" "SM7MPM\n" "SM7N\n" "SM7NGH\n" "SM7PEV\n" "SM7PXS\n" "SM7RPU\n" "SM7S\n" "SM7SJR\n" "SM7TZK\n" "SM7U\n" "SM7UFR\n" "SM7VZJ\n" "SM7VZX\n" "SM7YEA\n" "SM7YGZ\n" "SM7ZDI\n" "SN0HQ\n" "SN120OSP\n" "SN1918PR\n" "SN1A\n" "SN1C\n" "SN1I\n" "SN1J\n" "SN2009EM\n" "SN2B\n" "SN2F\n" "SN2I\n" "SN2J\n" "SN2K\n" "SN2L\n" "SN2M\n" "SN2MTBO\n" "SN2Q\n" "SN2S\n" "SN2U\n" "SN2Y\n" "SN2Z\n" "SN30J\n" "SN3A\n" "SN3B\n" "SN3C\n" "SN3O\n" "SN3Q\n" "SN3R\n" "SN3S\n" "SN3T\n" "SN3X\n" "SN40DVP\n" "SN40K\n" "SN4F\n" "SN4L\n" "SN4W\n" "SN50RS\n" "SN50RS/7\n" "SN50SPP\n" "SN51FBQ\n" "SN5B\n" "SN5E\n" "SN5G\n" "SN5I\n" "SN5J\n" "SN5N\n" "SN5Q\n" "SN5T\n" "SN5Z\n" "SN6C\n" "SN6G\n" "SN6K\n" "SN6Z\n" "SN7C\n" "SN7F\n" "SN7H\n" "SN7O\n" "SN7P\n" "SN7Q\n" "SN7T\n" "SN8B\n" "SN8C\n" "SN8F\n" "SN8J\n" "SN8M\n" "SN8R\n" "SN8W\n" "SN90SW\n" "SN9A\n" "SN9C\n" "SN9D\n" "SN9F\n" "SN9G\n" "SN9I\n" "SN9K\n" "SN9L\n" "SN9M\n" "SN9N\n" "SN9O\n" "SN9P\n" "SN9Q\n" "SN9R\n" "SN9U\n" "SN9V\n" "SN9Y\n" "SN9Z\n" "SO1EKO\n" "SO1TH\n" "SO1WE\n" "SO2D\n" "SO2I\n" "SO2W\n" "SO4M\n" "SO4R\n" "SO5A\n" "SO5S\n" "SO6C\n" "SO6I\n" "SO6V\n" "SO6X\n" "SO70M\n" "SO7O\n" "SO80J\n" "SO8A\n" "SO8B\n" "SO8L\n" "SO8N\n" "SO8O\n" "SO8R\n" "SO8T\n" "SO9A\n" "SO9C\n" "SO9D\n" "SO9G\n" "SO9L\n" "SO9Q\n" "SO9R\n" "SO9S\n" "SP0PZK\n" "SP0ZHG\n" "SP1ADY\n" "SP1AEN\n" "SP1BLE\n" "SP1CQZ\n" "SP1DMD\n" "SP1DPA\n" "SP1EG\n" "SP1F\n" "SP1FFC\n" "SP1GZF\n" "SP1HJK\n" "SP1I\n" "SP1II\n" "SP1JPQ/P\n" "SP1JXJ\n" "SP1KAA\n" "SP1KCJ\n" "SP1KQR\n" "SP1KRF\n" "SP1KV\n" "SP1KZE\n" "SP1MAB\n" "SP1MHZ\n" "SP1MVG\n" "SP1MVL\n" "SP1MWF\n" "SP1MWK\n" "SP1MWN\n" "SP1NQN\n" "SP1NY\n" "SP1O\n" "SP1PWP\n" "SP1QXK\n" "SP1QY\n" "SP1RFC\n" "SP1RKR\n" "SP1RKT\n" "SP1S\n" "SP2010CY\n" "SP2AEK\n" "SP2AJO\n" "SP2ALT\n" "SP2AOB\n" "SP2AQP\n" "SP2AVE\n" "SP2AYC\n" "SP2B\n" "SP2BKX\n" "SP2BLC\n" "SP2BNJ\n" "SP2CYK\n" "SP2DDX\n" "SP2DKI\n" "SP2DMB/3\n" "SP2DNI\n" "SP2DWA\n" "SP2DX\n" "SP2EPV\n" "SP2ESG\n" "SP2EWQ\n" "SP2EXE\n" "SP2EXN\n" "SP2FAP\n" "SP2FAV\n" "SP2FGO\n" "SP2FKE\n" "SP2FOV\n" "SP2FTL\n" "SP2FUD\n" "SP2FWC\n" "SP2GCE\n" "SP2GCJ\n" "SP2GJI\n" "SP2GJV\n" "SP2GLS\n" "SP2GMA\n" "SP2GTJ\n" "SP2GUV\n" "SP2GWH\n" "SP2HMN\n" "SP2HMT\n" "SP2HPD\n" "SP2HPM\n" "SP2HPM/7\n" "SP2HWW\n" "SP2HXY\n" "SP2IKP\n" "SP2ILQ\n" "SP2IU\n" "SP2IW\n" "SP2JGQ\n" "SP2JL\n" "SP2JLR\n" "SP2JMB\n" "SP2KAC\n" "SP2KDS\n" "SP2KPD\n" "SP2KRS\n" "SP2LNW\n" "SP2LQP\n" "SP2LUB\n" "SP2MHC\n" "SP2MKI\n" "SP2MKZ\n" "SP2OVQ\n" "SP2PAQ\n" "SP2PIK\n" "SP2QCU\n" "SP2QCW\n" "SP2QG\n" "SP2QOT\n" "SP2RXG\n" "SP2SGN\n" "SP2SV\n" "SP2SWI\n" "SP2UKB\n" "SP2US\n" "SP2UUU\n" "SP2UV\n" "SP2WGB\n" "SP2WLB\n" "SP2Y\n" "SP2YUV\n" "SP3AGE\n" "SP3AOT\n" "SP3AZO\n" "SP3BGD\n" "SP3BHG\n" "SP3BJK\n" "SP3BQ\n" "SP3BVI\n" "SP3C\n" "SP3CFM\n" "SP3CGK\n" "SP3CJS\n" "SP3CQP\n" "SP3CYY\n" "SP3DIK\n" "SP3DOF\n" "SP3DOI\n" "SP3DRM\n" "SP3DSC\n" "SP3DVG\n" "SP3EPK\n" "SP3EPX\n" "SP3EQE\n" "SP3FHV\n" "SP3FPF\n" "SP3FUK\n" "SP3FYX\n" "SP3FZN\n" "SP3GAX\n" "SP3GEM\n" "SP3GHK\n" "SP3GRQ\n" "SP3GTS\n" "SP3GXH\n" "SP3HBF\n" "SP3HC\n" "SP3HLM\n" "SP3HRN\n" "SP3HZG\n" "SP3IOE\n" "SP3J\n" "SP3JHY\n" "SP3JIA\n" "SP3JUN\n" "SP3KPN\n" "SP3LAU\n" "SP3LD\n" "SP3LGF\n" "SP3LPG\n" "SP3LPR\n" "SP3LWP\n" "SP3LYN\n" "SP3MEY\n" "SP3MGM\n" "SP3MY\n" "SP3NEN\n" "SP3NNH\n" "SP3OCC\n" "SP3OL\n" "SP3PJY\n" "SP3PL\n" "SP3POZ\n" "SP3QYQ\n" "SP3RBG\n" "SP3RNZ\n" "SP3SLO\n" "SP3SLU\n" "SP3SPK\n" "SP3VSE\n" "SP3VT\n" "SP3VZY\n" "SP3WW\n" "SP3XR\n" "SP3YM\n" "SP3ZIR\n" "SP40EIY\n" "SP4AAZ\n" "SP4AVG\n" "SP4AWE\n" "SP4BEU\n" "SP4BOS\n" "SP4BPH\n" "SP4BY\n" "SP4CGJ\n" "SP4CJA\n" "SP4CPB\n" "SP4CQU\n" "SP4CUF\n" "SP4DDS\n" "SP4DEU\n" "SP4DM\n" "SP4DNX\n" "SP4DZT\n" "SP4FMD\n" "SP4GDC\n" "SP4GFG\n" "SP4GHL\n" "SP4GL\n" "SP4ICD\n" "SP4ICP\n" "SP4INT\n" "SP4IRS\n" "SP4JAE\n" "SP4JCP\n" "SP4JCQ\n" "SP4JFR\n" "SP4JTJ\n" "SP4JWR\n" "SP4K\n" "SP4KNA\n" "SP4KSY\n" "SP4LVK\n" "SP4LXC\n" "SP4MPG\n" "SP4MPH\n" "SP4NKJ\n" "SP4NKU\n" "SP4OIC\n" "SP4OIZ\n" "SP4OZ\n" "SP4PBI\n" "SP4SHD\n" "SP4TBM\n" "SP4TKB\n" "SP4TKO\n" "SP4TKR\n" "SP4TXI\n" "SP4XQN\n" "SP4YPB\n" "SP4Z\n" "SP50AAZ\n" "SP50DXC\n" "SP50XR\n" "SP5ADX\n" "SP5AGU\n" "SP5AHR\n" "SP5AHY\n" "SP5AKG\n" "SP5APW\n" "SP5ATO\n" "SP5AUY\n" "SP5AZN\n" "SP5BB\n" "SP5BLI\n" "SP5BMU\n" "SP5BNB\n" "SP5BR\n" "SP5BUJ\n" "SP5CCC\n" "SP5CFD\n" "SP5CGN\n" "SP5CIB\n" "SP5CJQ\n" "SP5CJY\n" "SP5CNA\n" "SP5CQI\n" "SP5DDF\n" "SP5DDJ\n" "SP5DIR\n" "SP5DPD\n" "SP5DRE\n" "SP5DRH\n" "SP5EAF\n" "SP5EAQ\n" "SP5ECC\n" "SP5ELA\n" "SP5ELA/8\n" "SP5ELM\n" "SP5ELW\n" "SP5ENG\n" "SP5ENM\n" "SP5EOT\n" "SP5ES\n" "SP5EWX\n" "SP5EWX/7\n" "SP5EWY\n" "SP5FKW\n" "SP5GDY\n" "SP5GH\n" "SP5GMM\n" "SP5GQI\n" "SP5GRM\n" "SP5GRU\n" "SP5HFS\n" "SP5HRX\n" "SP5ICS\n" "SP5IT\n" "SP5IXS\n" "SP5JSZ\n" "SP5JTF\n" "SP5KCR\n" "SP5KDK\n" "SP5KW\n" "SP5LM\n" "SP5LS\n" "SP5MBA\n" "SP5MDB\n" "SP5NHK\n" "SP5NN\n" "SP5NVX\n" "SP5NZA\n" "SP5NZN\n" "SP5PBE\n" "SP5PSL\n" "SP5PX\n" "SP5SA\n" "SP5TAZ\n" "SP5UAR\n" "SP5VYI\n" "SP5WA\n" "SP5X\n" "SP5XO\n" "SP5XOR\n" "SP5XOV\n" "SP5XSD\n" "SP5XSL\n" "SP5XVY\n" "SP5YOC\n" "SP6A\n" "SP6AAT\n" "SP6AEG\n" "SP6ARE\n" "SP6AUI\n" "SP6AXW\n" "SP6BAA\n" "SP6BBE\n" "SP6BEN\n" "SP6BSL\n" "SP6BXM\n" "SP6BXP\n" "SP6CCI\n" "SP6CDK\n" "SP6CZ\n" "SP6DAY\n" "SP6DHH\n" "SP6DMI\n" "SP6DNZ\n" "SP6DVP\n" "SP6EF\n" "SP6EIY\n" "SP6EKS\n" "SP6EWB\n" "SP6FEK\n" "SP6FHU\n" "SP6FVP\n" "SP6FXY\n" "SP6GCU\n" "SP6GNJ\n" "SP6GTN\n" "SP6HEQ\n" "SP6IEQ\n" "SP6IHE\n" "SP6IXU\n" "SP6JIR\n" "SP6JOE\n" "SP6JQC\n" "SP6JZP\n" "SP6KCN\n" "SP6KEP\n" "SP6LK\n" "SP6LMQ\n" "SP6LUV\n" "SP6LV\n" "SP6M\n" "SP6MLX\n" "SP6MQO\n" "SP6NIC\n" "SP6NIK\n" "SP6NVK\n" "SP6NVN\n" "SP6OJE\n" "SP6OJG\n" "SP6OJK\n" "SP6OPZ\n" "SP6OUJ\n" "SP6OWY\n" "SP6PCL\n" "SP6PKO\n" "SP6PLH\n" "SP6PWT\n" "SP6QKP\n" "SP6QKX\n" "SP6QNU\n" "SP6RBO\n" "SP6RGC\n" "SP6RLF\n" "SP6RT\n" "SP6RYD\n" "SP6SOX\n" "SP6T\n" "SP6TGD\n" "SP6TGR\n" "SP6TRH\n" "SP6TRX\n" "SP6VWC\n" "SP6WM\n" "SP6XP\n" "SP6ZC\n" "SP7ASZ\n" "SP7ATY\n" "SP7AWG\n" "SP7BCA\n" "SP7BDS\n" "SP7CCB\n" "SP7CDH\n" "SP7CVW\n" "SP7DBI\n" "SP7DCS\n" "SP7EBM\n" "SP7EXJ\n" "SP7FBQ\n" "SP7FDV\n" "SP7FGA\n" "SP7FGP\n" "SP7FRO\n" "SP7HKK\n" "SP7HOA\n" "SP7HOV\n" "SP7HQ\n" "SP7IDX\n" "SP7IIT\n" "SP7ISV\n" "SP7IWA\n" "SP7IXT\n" "SP7JLH\n" "SP7JOA\n" "SP7JQQ\n" "SP7LI\n" "SP7LIE\n" "SP7MC\n" "SP7MFQ\n" "SP7MFR\n" "SP7MJL\n" "SP7MJX\n" "SP7MOC\n" "SP7MTF\n" "SP7MTU\n" "SP7NHS\n" "SP7OGP\n" "SP7Q\n" "SP7QHR\n" "SP7QJB\n" "SP7SZW\n" "SP7TES\n" "SP7TEX\n" "SP7TF\n" "SP80MVG\n" "SP8AG\n" "SP8AJK\n" "SP8AWL\n" "SP8BAB\n" "SP8BBK\n" "SP8BMF\n" "SP8BQL\n" "SP8BRQ\n" "SP8BVN\n" "SP8BVO\n" "SP8BWE\n" "SP8CGU\n" "SP8CNS\n" "SP8DIP\n" "SP8EDD\n" "SP8EEX\n" "SP8FHM\n" "SP8FNA\n" "SP8GSC\n" "SP8HDP\n" "SP8HKT\n" "SP8HPW\n" "SP8HWM\n" "SP8HXN\n" "SP8IIS\n" "SP8IOV\n" "SP8IQR\n" "SP8JMA\n" "SP8JPR\n" "SP8KEA\n" "SP8LBK\n" "SP8LNE\n" "SP8LXE\n" "SP8LZC\n" "SP8NCJ\n" "SP8NR\n" "SP8ONB\n" "SP8ONZ\n" "SP8OOB\n" "SP8QED\n" "SP8QJM\n" "SP8RX/1\n" "SP8SW\n" "SP8TDV\n" "SP8TJU\n" "SP8UFB\n" "SP8YB\n" "SP8YZZ\n" "SP9ADU\n" "SP9ADU/9\n" "SP9AJM\n" "SP9ATE\n" "SP9AUV\n" "SP9BGL\n" "SP9BGS\n" "SP9BMH\n" "SP9BNM\n" "SP9BRP\n" "SP9BXU\n" "SP9CLO\n" "SP9CLU\n" "SP9CQ\n" "SP9CTS\n" "SP9CTW\n" "SP9CTX\n" "SP9CV\n" "SP9CVY\n" "SP9CXN\n" "SP9CXX\n" "SP9DLY\n" "SP9DNO\n" "SP9DSD\n" "SP9DTE\n" "SP9DTE/1\n" "SP9DTH\n" "SP9DUX\n" "SP9EJH\n" "SP9EML\n" "SP9EVP\n" "SP9EWM\n" "SP9FKQ\n" "SP9FOW\n" "SP9FT\n" "SP9FWQ\n" "SP9FZC\n" "SP9GFI\n" "SP9GKJ\n" "SP9GKM\n" "SP9GPW\n" "SP9GR\n" "SP9GZQ\n" "SP9H\n" "SP9HVV\n" "SP9HZF\n" "SP9HZW\n" "SP9IBJ\n" "SP9IEK\n" "SP9IGY\n" "SP9IHP\n" "SP9IKN\n" "SP9IKS\n" "SP9IVD\n" "SP9IVQ\n" "SP9JKL\n" "SP9JPA\n" "SP9JQA\n" "SP9JZT\n" "SP9JZU\n" "SP9KAG\n" "SP9KDA\n" "SP9KRT\n" "SP9LAS\n" "SP9LDB\n" "SP9LDU\n" "SP9LJD\n" "SP9MAN\n" "SP9MDO\n" "SP9MDY\n" "SP9MZH\n" "SP9NH\n" "SP9NLI\n" "SP9NSV\n" "SP9NSV/7\n" "SP9NWN\n" "SP9ODM\n" "SP9ODM/8\n" "SP9ODY\n" "SP9OHL\n" "SP9OYB\n" "SP9PRO\n" "SP9PSJ\n" "SP9QJ\n" "SP9RHN\n" "SP9RI\n" "SP9RQH\n" "SP9RQJ\n" "SP9RTL\n" "SP9SDR\n" "SP9TTT\n" "SP9UPH\n" "SP9VJ\n" "SP9VRY\n" "SP9W\n" "SP9WAN\n" "SP9WTN\n" "SP9WZS\n" "SP9XCJ\n" "SQ1BHH\n" "SQ1DWR\n" "SQ1DWS\n" "SQ1EIA\n" "SQ1EIX\n" "SQ1EUG\n" "SQ1FYX\n" "SQ1K\n" "SQ1MNF\n" "SQ1NDW\n" "SQ1OD\n" "SQ1WO\n" "SQ2AJI\n" "SQ2BXI\n" "SQ2DYF\n" "SQ2EAN\n" "SQ2EEQ\n" "SQ2FRF\n" "SQ2GXO\n" "SQ2HL\n" "SQ2HNA\n" "SQ2LYF\n" "SQ2LYH\n" "SQ2LYS\n" "SQ2NNN\n" "SQ2RGB\n" "SQ2SAT\n" "SQ2TOM\n" "SQ2XC\n" "SQ3A\n" "SQ3AUA\n" "SQ3BDQ\n" "SQ3HMM\n" "SQ3HXH\n" "SQ3JVW\n" "SQ3LMY\n" "SQ3OGP\n" "SQ3OGZ\n" "SQ3RJP\n" "SQ3RX\n" "SQ3VAJ\n" "SQ3VV\n" "SQ3WW\n" "SQ4CTS\n" "SQ4FXM\n" "SQ4G\n" "SQ4HRN\n" "SQ4INW\n" "SQ4IOH\n" "SQ4MP\n" "SQ4OLP\n" "SQ5ALL\n" "SQ5ARG\n" "SQ5BUO\n" "SQ5EBM\n" "SQ5FWR\n" "SQ5GVY\n" "SQ5IZX\n" "SQ5JUP\n" "SQ5M\n" "SQ5NAE\n" "SQ5NPF\n" "SQ5NPX\n" "SQ5STS\n" "SQ5TA\n" "SQ5WAA\n" "SQ6ADL\n" "SQ6FHP\n" "SQ6ILC\n" "SQ6IYS\n" "SQ6LJA\n" "SQ6LJV\n" "SQ6MIH\n" "SQ6MS\n" "SQ6NDJ\n" "SQ6NES\n" "SQ6NTE\n" "SQ6NTM\n" "SQ6ODD\n" "SQ6OR\n" "SQ6OXC\n" "SQ6R\n" "SQ7B\n" "SQ7FPD\n" "SQ7HJZ\n" "SQ7IL\n" "SQ7MHN\n" "SQ7MPJ\n" "SQ7MZH\n" "SQ7NHT\n" "SQ7OTB\n" "SQ7VO\n" "SQ80UM\n" "SQ8GBG\n" "SQ8HNB\n" "SQ8IFG\n" "SQ8J\n" "SQ8JLA\n" "SQ8JLN\n" "SQ8JLU\n" "SQ8JMC\n" "SQ8JX\n" "SQ8LEC\n" "SQ8LSB\n" "SQ8LSC\n" "SQ8MHH\n" "SQ8TWP\n" "SQ9ANS\n" "SQ9AOR\n" "SQ9BDN\n" "SQ9C\n" "SQ9CAQ\n" "SQ9CND\n" "SQ9CWO\n" "SQ9DXN\n" "SQ9DXT\n" "SQ9E\n" "SQ9FCH\n" "SQ9FMU\n" "SQ9HQ\n" "SQ9HZM\n" "SQ9I\n" "SQ9IAJ\n" "SQ9IAU\n" "SQ9IDE\n" "SQ9IWT\n" "SQ9JKS\n" "SQ9JYK\n" "SQ9LOJ\n" "SQ9LOM\n" "SQ9LR\n" "SQ9MEE\n" "SQ9MEI\n" "SQ9MZ\n" "SQ9NIN\n" "SQ9NIS\n" "SQ9NKK\n" "SQ9NRY\n" "SQ9SX\n" "SQ9UM\n" "SQ9UM/6\n" "ST2AR\n" "ST2KSS\n" "ST2M\n" "ST2NH\n" "SU1KM\n" "SU1SK\n" "SU9HP\n" "SV0GU\n" "SV0XBA\n" "SV0XBM/9\n" "SV0XBN/9\n" "SV1/SV4LBA\n" "SV1ACK\n" "SV1AER\n" "SV1AIN\n" "SV1AIP\n" "SV1AOW\n" "SV1AVD\n" "SV1BDO/3\n" "SV1BGR\n" "SV1BJW\n" "SV1BJW/6\n" "SV1BTK\n" "SV1BUU\n" "SV1CAL\n" "SV1CEI\n" "SV1CIV\n" "SV1CQN\n" "SV1DOI\n" "SV1DOJ\n" "SV1DPI\n" "SV1DPP\n" "SV1DVZ\n" "SV1EBV\n" "SV1EEM\n" "SV1EML\n" "SV1EMM\n" "SV1ENG\n" "SV1ENM\n" "SV1ENV\n" "SV1EQU\n" "SV1EX\n" "SV1FJN\n" "SV1GRD\n" "SV1GRE\n" "SV1GSX\n" "SV1GYG\n" "SV1HEM\n" "SV1HER\n" "SV1HKD\n" "SV1IW\n" "SV1JA\n" "SV1JFT\n" "SV1JG\n" "SV1JGX\n" "SV1JMO\n" "SV1JRR\n" "SV1JSN\n" "SV1JSQ\n" "SV1KU\n" "SV1LK\n" "SV1LV\n" "SV1MF\n" "SV1MO\n" "SV1NJA\n" "SV1NK\n" "SV1NPC\n" "SV1OH\n" "SV1OZ\n" "SV1PL\n" "SV1PS\n" "SV1QN\n" "SV1QT\n" "SV1RK\n" "SV1UG\n" "SV1UT\n" "SV1VS\n" "SV1XV\n" "SV2AVP\n" "SV2BFL\n" "SV2BFN\n" "SV2BOH\n" "SV2CLJ/8\n" "SV2CUI\n" "SV2CWV\n" "SV2CXI\n" "SV2DCD\n" "SV2DFA\n" "SV2DGJ\n" "SV2FLQ\n" "SV2FWV\n" "SV2GJV\n" "SV2GNC\n" "SV2HRT\n" "SV2HWR\n" "SV2HXV\n" "SV2JAO\n" "SV2KBB\n" "SV2KBE\n" "SV2KBS\n" "SV2YC\n" "SV3/YO7CKQ/P\n" "SV3AQM\n" "SV3AQR\n" "SV3AWG\n" "SV3BEF\n" "SV3BSF\n" "SV3CYL\n" "SV3DCX\n" "SV3FUP\n" "SV3GKU\n" "SV3GLL\n" "SV3HHS\n" "SV3IBF\n" "SV3ICL\n" "SV3IDM\n" "SV3MSE\n" "SV3RF\n" "SV4AAQ\n" "SV4AFY\n" "SV4FFL\n" "SV4IMJ\n" "SV4IMJ/1\n" "SV5BYR\n" "SV5DKL\n" "SV5RW\n" "SV7BAY\n" "SV7BOD\n" "SV7BOT\n" "SV7CFJ\n" "SV7CUD\n" "SV7HVI\n" "SV7LNK\n" "SV7LNX\n" "SV7LOS\n" "SV7LPL\n" "SV7LWV/2\n" "SV7NHN\n" "SV8CRI\n" "SV8CS\n" "SV8CYR\n" "SV8DTD\n" "SV8EIU\n" "SV8EUV\n" "SV8FMY\n" "SV8KOM\n" "SV8RX\n" "SV8UM\n" "SV9AHZ\n" "SV9BAI\n" "SV9CJO\n" "SV9COL\n" "SV9CVY\n" "SV9DJO\n" "SV9DRU\n" "SV9GPV\n" "SV9MBH\n" "SV9OFS\n" "SX0HQ\n" "SX1L\n" "SX2CM\n" "SX5P\n" "SX5R\n" "SX8WT\n" "SX9JZ\n" "SY1RY\n" "SY2O\n" "SY2V\n" "SY43D\n" "SY7ISDE\n" "SY9A\n" "SY9M\n" "SZ1A\n" "SZ1SV\n" "SZ1TEIA\n" "SZ3P\n" "SZ6P\n" "SZ7SER\n" "T27A\n" "T32CXX\n" "T33ZZ\n" "T40C\n" "T42T\n" "T46A\n" "T46G\n" "T48K\n" "T6AG\n" "T70A\n" "T77C\n" "T77GO\n" "T77NC\n" "T77NM\n" "T77Q\n" "T88CI\n" "T88CJ\n" "T88YB\n" "T8CW\n" "T8IC\n" "TA0U\n" "TA1AN\n" "TA1BM\n" "TA1C/2\n" "TA1CM\n" "TA1CQ\n" "TA1CX\n" "TA1DX\n" "TA1ED\n" "TA1FA\n" "TA1HZ\n" "TA1KC\n" "TA1TR\n" "TA1ZK\n" "TA2AL\n" "TA2DS\n" "TA2EY\n" "TA2KK\n" "TA2RC\n" "TA2VO\n" "TA2ZAF\n" "TA2ZF\n" "TA3AX\n" "TA3BN\n" "TA3D\n" "TA3DJ\n" "TA3GO\n" "TA3J\n" "TA3KZ\n" "TA4AU\n" "TA4ZA\n" "TA7AO\n" "TA7EB\n" "TA7KA\n" "TC1DX\n" "TC2010CCE\n" "TC3EC\n" "TC4X\n" "TC7HQ\n" "TC7KA\n" "TC7M\n" "TC85TC\n" "TE1W\n" "TE2M\n" "TF1AM\n" "TF1CW\n" "TF2JB\n" "TF2WIN\n" "TF3AM\n" "TF3AO\n" "TF3CW\n" "TF3DC\n" "TF3DX\n" "TF3G\n" "TF3GB\n" "TF3GC\n" "TF3HP\n" "TF3HQ\n" "TF3IG\n" "TF3IGN\n" "TF3IRA\n" "TF3KX\n" "TF3KX/1\n" "TF3PPN\n" "TF3SG\n" "TF3US\n" "TF3VS\n" "TF3VS/P\n" "TF3W\n" "TF3Y\n" "TF3ZA\n" "TF4M\n" "TF4X\n" "TF6IF\n" "TF8GX\n" "TF8SM\n" "TG0AA\n" "TG9/IV3IYH\n" "TG9ADQ\n" "TG9AJR\n" "TG9ANF\n" "TG9AXF\n" "TG9CT\n" "TG9IRP\n" "TG9NX\n" "TG9SM\n" "TI0RC\n" "TI1R\n" "TI2CC\n" "TI2CLX\n" "TI2GBY\n" "TI2JCY\n" "TI2KAC\n" "TI2KWN\n" "TI2WMP\n" "TI4CF\n" "TI5/NP3D\n" "TI5/WW4LL\n" "TI5A\n" "TI5N\n" "TI7DBS\n" "TI8II\n" "TI8M\n" "TJ3SL\n" "TK5A\n" "TK5EP\n" "TK5IH\n" "TK5IX\n" "TK5MH\n" "TK5NJ\n" "TK5XN\n" "TK7P\n" "TK9E\n" "TK9R\n" "TL0A\n" "TM0C\n" "TM0HQ\n" "TM0R\n" "TM0T\n" "TM0TAN\n" "TM1C\n" "TM1O\n" "TM1W\n" "TM2B\n" "TM2MW\n" "TM2S\n" "TM2T\n" "TM2Y\n" "TM33E\n" "TM3R\n" "TM3S\n" "TM3T\n" "TM4D\n" "TM4P\n" "TM4Q\n" "TM4W\n" "TM57M\n" "TM5C\n" "TM5HV\n" "TM5KD\n" "TM5W\n" "TM6M\n" "TM6X\n" "TM77M\n" "TM7C\n" "TM7F\n" "TM7M\n" "TM7T\n" "TM7XX\n" "TM8ARP\n" "TM9FL\n" "TM9R\n" "TN5SN\n" "TO2HI\n" "TO2T\n" "TO3R\n" "TO4D\n" "TO4X\n" "TO5A\n" "TO5DX\n" "TO5T\n" "TO5X\n" "TO7A\n" "TO8Z\n" "TR8CA\n" "TS9A\n" "TT8JT\n" "TU2CI\n" "TX1B\n" "TX3A\n" "TY1MS\n" "U1BA\n" "U1BB\n" "U1BD\n" "U3DI\n" "U4MIR\n" "U5EX\n" "U5MZ\n" "UA0AAS\n" "UA0ABB\n" "UA0ABK\n" "UA0ACG\n" "UA0ADX\n" "UA0AGI\n" "UA0AKY\n" "UA0ANW\n" "UA0APV\n" "UA0AV\n" "UA0AYA\n" "UA0AZ\n" "UA0BA\n" "UA0CA\n" "UA0CB\n" "UA0CDC\n" "UA0CM\n" "UA0CMG\n" "UA0CNX\n" "UA0CS\n" "UA0CW\n" "UA0DAM\n" "UA0DC\n" "UA0FAI\n" "UA0FDX\n" "UA0FM\n" "UA0IBX\n" "UA0IDZ\n" "UA0IT\n" "UA0JF\n" "UA0JM\n" "UA0LCZ\n" "UA0LD\n" "UA0LDW\n" "UA0LDY\n" "UA0LH\n" "UA0LKD\n" "UA0LMO\n" "UA0LNO\n" "UA0LS\n" "UA0MF\n" "UA0NL\n" "UA0OA\n" "UA0OD\n" "UA0QBR\n" "UA0SBQ\n" "UA0SC\n" "UA0SDX\n" "UA0SE\n" "UA0SEP\n" "UA0SIK/0\n" "UA0SJ\n" "UA0SOX\n" "UA0SP\n" "UA0SR\n" "UA0SW\n" "UA0SWA\n" "UA0UV\n" "UA0VF\n" "UA0WAA\n" "UA0WF\n" "UA0WL\n" "UA0WW\n" "UA0YAY\n" "UA0YM\n" "UA0ZAL\n" "UA0ZAM\n" "UA0ZC\n" "UA0ZEO\n" "UA0ZS\n" "UA0ZV\n" "UA1AAF\n" "UA1AAR\n" "UA1AAU\n" "UA1ABO\n" "UA1ACC\n" "UA1ACG\n" "UA1ADZ\n" "UA1AFT\n" "UA1AFZ\n" "UA1AIK/1\n" "UA1AJ\n" "UA1AJW\n" "UA1AKE\n" "UA1AKJ\n" "UA1ANA\n" "UA1AQA\n" "UA1ASB\n" "UA1AUW\n" "UA1CAK\n" "UA1CE\n" "UA1CEC\n" "UA1CEG\n" "UA1CEI\n" "UA1CGF\n" "UA1CHJ\n" "UA1CJX\n" "UA1CKC\n" "UA1CT\n" "UA1CUR\n" "UA1HY\n" "UA1MU\n" "UA1NA\n" "UA1NFA\n" "UA1OAM\n" "UA1ODM\n" "UA1OEX\n" "UA1OIZ\n" "UA1OJL\n" "UA1OM\n" "UA1OMS\n" "UA1OMZ\n" "UA1OOX\n" "UA1ORK\n" "UA1ORL\n" "UA1ORT\n" "UA1QCE\n" "UA1QM\n" "UA1QV\n" "UA1QW\n" "UA1RG\n" "UA1TAN\n" "UA1TGQ\n" "UA1WA\n" "UA1WBV\n" "UA1WCF\n" "UA1WDG\n" "UA1WDX\n" "UA1WGV\n" ; const char txt_master5[65523] = "UA1ZCX\n" "UA1ZZ\n" "UA2AB\n" "UA2CZ\n" "UA2FBQ\n" "UA2FCB\n" "UA2FCT\n" "UA2FDM\n" "UA2FEK\n" "UA2FF\n" "UA2FFW\n" "UA2FFX/1\n" "UA2FGY\n" "UA2FHZ\n" "UA2FL\n" "UA2FT\n" "UA2FW\n" "UA2FZ\n" "UA3A/1\n" "UA3AAP\n" "UA3AB\n" "UA3ABJ\n" "UA3ACL\n" "UA3ADN\n" "UA3AFJ\n" "UA3AGU\n" "UA3AGW\n" "UA3AHA\n" "UA3AIF\n" "UA3AIU\n" "UA3AKI\n" "UA3AKO\n" "UA3ALS\n" "UA3AMZ\n" "UA3AO\n" "UA3AP\n" "UA3AQB\n" "UA3ASZ\n" "UA3AWA\n" "UA3BL\n" "UA3BM\n" "UA3BS\n" "UA3BX\n" "UA3BZ\n" "UA3CS\n" "UA3DA\n" "UA3DAM\n" "UA3DCE\n" "UA3DCI\n" "UA3DCM\n" "UA3DCU\n" "UA3DCW\n" "UA3DCZ\n" "UA3DDA\n" "UA3DFM\n" "UA3DFR\n" "UA3DFV\n" "UA3DGA\n" "UA3DJC\n" "UA3DK\n" "UA3DKN\n" "UA3DKT\n" "UA3DLD\n" "UA3DLL\n" "UA3DOM\n" "UA3DPM\n" "UA3DQK\n" "UA3DSS\n" "UA3DTS\n" "UA3DTT\n" "UA3DUJ\n" "UA3DUS\n" "UA3DUZ\n" "UA3DW\n" "UA3EAA\n" "UA3EAY\n" "UA3ECJ\n" "UA3EDQ\n" "UA3EKG\n" "UA3ERD\n" "UA3EUW\n" "UA3EVG\n" "UA3FDX\n" "UA3FO\n" "UA3FX\n" "UA3GAF\n" "UA3GBI\n" "UA3GH\n" "UA3GIE\n" "UA3GM\n" "UA3GTA\n" "UA3GTG\n" "UA3GVT\n" "UA3GX\n" "UA3GZ\n" "UA3HM\n" "UA3IAH\n" "UA3ICF\n" "UA3ICK\n" "UA3ICN\n" "UA3KA\n" "UA3KM\n" "UA3KW\n" "UA3LAR\n" "UA3LDU\n" "UA3LEO\n" "UA3LHL\n" "UA3LIA\n" "UA3LID\n" "UA3LIZ\n" "UA3LMR\n" "UA3LMR/3\n" "UA3LNM\n" "UA3LPF\n" "UA3LQQ\n" "UA3LQX\n" "UA3LTQ\n" "UA3MEG\n" "UA3MEJ\n" "UA3MHG\n" "UA3MIF\n" "UA3MKT\n" "UA3MNB\n" "UA3MOC\n" "UA3MOM\n" "UA3MSS\n" "UA3OQ\n" "UA3PAB\n" "UA3PAY\n" "UA3PB\n" "UA3PCP\n" "UA3PF\n" "UA3PM\n" "UA3PNO\n" "UA3PP\n" "UA3PPP\n" "UA3PT\n" "UA3PTW\n" "UA3PW\n" "UA3QAM\n" "UA3QBL\n" "UA3QCB\n" "UA3QDF\n" "UA3QFU\n" "UA3QFY\n" "UA3QG\n" "UA3QGT\n" "UA3QJJ\n" "UA3QKA\n" "UA3QLC\n" "UA3QLQ\n" "UA3QNS\n" "UA3QOS\n" "UA3QPA\n" "UA3QQ\n" "UA3QR\n" "UA3QU\n" "UA3QUO\n" "UA3QUP\n" "UA3QY\n" "UA3R\n" "UA3RAG\n" "UA3RAI\n" "UA3RAR\n" "UA3RAW\n" "UA3RC\n" "UA3RE\n" "UA3RJH\n" "UA3RLT\n" "UA3RN\n" "UA3RO\n" "UA3RW\n" "UA3SAO\n" "UA3SAQ\n" "UA3SBW\n" "UA3SKV\n" "UA3TAO\n" "UA3TCJ\n" "UA3TN\n" "UA3TT\n" "UA3TW\n" "UA3UAD\n" "UA3UBT\n" "UA3UCD\n" "UA3UDE\n" "UA3UHZ\n" "UA3UJP\n" "UA3UNP\n" "UA3URF\n" "UA3VFS\n" "UA3VJV\n" "UA3VLO\n" "UA3VQL\n" "UA3VVB\n" "UA3WCN\n" "UA3WHK\n" "UA3WT\n" "UA3XAC\n" "UA3XAG\n" "UA3XGM\n" "UA3YAA\n" "UA3YCX\n" "UA3YCZ\n" "UA3YDH\n" "UA3YFL\n" "UA3YQL\n" "UA3YY\n" "UA3ZJG\n" "UA4AAC\n" "UA4AGO\n" "UA4ALI\n" "UA4AMM\n" "UA4AMT\n" "UA4AN\n" "UA4ANZ\n" "UA4AP\n" "UA4AQL\n" "UA4ASE\n" "UA4AY\n" "UA4AZ\n" "UA4CBJ\n" "UA4CC\n" "UA4CCG\n" "UA4CDL\n" "UA4CGR\n" "UA4CIF\n" "UA4CK\n" "UA4CM\n" "UA4CNJ\n" "UA4CNZ\n" "UA4CR\n" "UA4CTE\n" "UA4FBG\n" "UA4FCO\n" "UA4FDL\n" "UA4FEN\n" "UA4FER\n" "UA4FHW\n" "UA4FJ\n" "UA4FRJ\n" "UA4FRL\n" "UA4FTA\n" "UA4FUW\n" "UA4HAM\n" "UA4HAU\n" "UA4HBW\n" "UA4HEJ\n" "UA4HIP\n" "UA4HJ\n" "UA4HOX\n" "UA4HRZ\n" "UA4HUR\n" "UA4IW\n" "UA4LA\n" "UA4LBK\n" "UA4LCH\n" "UA4LFK\n" "UA4LL\n" "UA4LM\n" "UA4LRN\n" "UA4LS\n" "UA4LU\n" "UA4LU/3\n" "UA4LW\n" "UA4LX\n" "UA4LY\n" "UA4M\n" "UA4NBA\n" "UA4NC\n" "UA4NCI\n" "UA4NEP\n" "UA4NF\n" "UA4NU\n" "UA4NW\n" "UA4NX\n" "UA4PAN\n" "UA4PAQ\n" "UA4PAY\n" "UA4PC\n" "UA4PCA\n" "UA4PCF\n" "UA4PCM\n" "UA4PF\n" "UA4PI\n" "UA4PK\n" "UA4PKN\n" "UA4PN\n" "UA4PNT\n" "UA4PNW\n" "UA4PO\n" "UA4PR\n" "UA4PT\n" "UA4PWR\n" "UA4QK\n" "UA4RF\n" "UA4RL\n" "UA4RW\n" "UA4RZ\n" "UA4SAW\n" "UA4SBZ\n" "UA4SJK\n" "UA4SKW\n" "UA4SN\n" "UA4UBW\n" "UA4UT\n" "UA4WAG\n" "UA4WAU\n" "UA4WAV\n" "UA4WAW\n" "UA4WCM\n" "UA4WI\n" "UA4WJ\n" "UA4WK\n" "UA4WKK\n" "UA4WKW\n" "UA4WL\n" "UA4WLI\n" "UA4WW\n" "UA4YA\n" "UA4YJJ\n" "UA6AA\n" "UA6AAY\n" "UA6ACA\n" "UA6AES\n" "UA6AF\n" "UA6AGE\n" "UA6AGK\n" "UA6AH\n" "UA6AIR\n" "UA6AIW\n" "UA6AK\n" "UA6AKD\n" "UA6ARR\n" "UA6AX\n" "UA6BFE\n" "UA6BJY\n" "UA6BJZ\n" "UA6BQ\n" "UA6BQN\n" "UA6BRD\n" "UA6BTV\n" "UA6CC\n" "UA6CE\n" "UA6CFD\n" "UA6CQ\n" "UA6CW\n" "UA6DX\n" "UA6EED\n" "UA6EHF\n" "UA6FF\n" "UA6FJ\n" "UA6FQ\n" "UA6FW\n" "UA6FZ\n" "UA6GE\n" "UA6GF\n" "UA6GG\n" "UA6GM\n" "UA6GO\n" "UA6GP\n" "UA6GR\n" "UA6GS\n" "UA6GU\n" "UA6GX\n" "UA6HFI\n" "UA6HHE\n" "UA6HLO\n" "UA6HLP\n" "UA6HMM\n" "UA6HO\n" "UA6HRX\n" "UA6HZ\n" "UA6IC\n" "UA6JCC\n" "UA6JD\n" "UA6JFG\n" "UA6JGG\n" "UA6JQ\n" "UA6LAH\n" "UA6LCJ\n" "UA6LCN\n" "UA6LDD\n" "UA6LF\n" "UA6LFQ\n" "UA6LJ\n" "UA6LJU\n" "UA6LLE\n" "UA6LN\n" "UA6LP\n" "UA6LPN\n" "UA6LPY\n" "UA6LTI\n" "UA6LUQ\n" "UA6LV\n" "UA6MA\n" "UA6MF\n" "UA6MM\n" "UA6NZ\n" "UA6PF/3\n" "UA6UDV\n" "UA6UEK\n" "UA6XDX\n" "UA6YH\n" "UA6YI\n" "UA6YIU\n" "UA6YN\n" "UA6YW\n" "UA7F\n" "UA7G\n" "UA8AA/5\n" "UA9AB\n" "UA9ACJ\n" "UA9ADW\n" "UA9AFS\n" "UA9AGX\n" "UA9AJ\n" "UA9AM\n" "UA9AOL\n" "UA9APA\n" "UA9AX\n" "UA9AYA\n" "UA9AZ\n" "UA9BA\n" "UA9BS\n" "UA9BX\n" "UA9BZ\n" "UA9CAX\n" "UA9CBM\n" "UA9CBO\n" "UA9CBR\n" "UA9CC\n" "UA9CCL\n" "UA9CDC\n" "UA9CDJ\n" "UA9CDV\n" "UA9CES\n" "UA9CEW\n" "UA9CGL\n" "UA9CHL\n" "UA9CIM\n" "UA9CL\n" "UA9CLB\n" "UA9CM\n" "UA9CMQ\n" "UA9CR\n" "UA9CSA\n" "UA9CTT\n" "UA9CUA\n" "UA9CVQ\n" "UA9DD\n" "UA9DR\n" "UA9FAR\n" "UA9FEG\n" "UA9FEX\n" "UA9FFV\n" "UA9FGJ\n" "UA9FGR\n" "UA9FKH\n" "UA9FM\n" "UA9FPQ\n" "UA9FQS\n" "UA9HN\n" "UA9HR\n" "UA9JDP\n" "UA9JFA\n" "UA9JFM/3\n" "UA9JFR\n" "UA9JJG\n" "UA9JKM\n" "UA9JLL\n" "UA9JMB\n" "UA9JSN\n" "UA9KAA\n" "UA9KAA/9\n" "UA9KB\n" "UA9KGG\n" "UA9KGH/1\n" "UA9KL\n" "UA9KW\n" "UA9KZ\n" "UA9LAO\n" "UA9LBQ\n" "UA9LP\n" "UA9LR\n" "UA9LT\n" "UA9MA\n" "UA9MC\n" "UA9MD\n" "UA9MDP\n" "UA9MFB\n" "UA9MGC\n" "UA9MHN\n" "UA9MI\n" "UA9MKF\n" "UA9MLT\n" "UA9MP\n" "UA9MR\n" "UA9MRX/3\n" "UA9MW\n" "UA9ND\n" "UA9NN\n" "UA9OA\n" "UA9OAI\n" "UA9OC\n" "UA9ODE\n" "UA9ODU\n" "UA9OG\n" "UA9OGF\n" "UA9OKM\n" "UA9OL\n" "UA9OLO\n" "UA9OMT\n" "UA9ONJ\n" "UA9ONJ/P\n" "UA9OQA\n" "UA9OQJ\n" "UA9OR\n" "UA9OSB\n" "UA9OV\n" "UA9OW\n" "UA9OZ\n" "UA9PC\n" "UA9PM\n" "UA9QA\n" "UA9QAE\n" "UA9QCP/3\n" "UA9QCQ\n" "UA9QCZ\n" "UA9QF\n" "UA9QG\n" "UA9QM\n" "UA9QQ\n" "UA9QT\n" "UA9SAW\n" "UA9SC\n" "UA9SG\n" "UA9SJR\n" "UA9SP\n" "UA9SUX\n" "UA9TF\n" "UA9TQ\n" "UA9TT\n" "UA9TW\n" "UA9TZ\n" "UA9UBL\n" "UA9UCK\n" "UA9UDX\n" "UA9UFL\n" "UA9UHN\n" "UA9UNG\n" "UA9UOI\n" "UA9UPG\n" "UA9UR\n" "UA9URF\n" "UA9UX\n" "UA9UZZ\n" "UA9WBX\n" "UA9WIK\n" "UA9WOB\n" "UA9WOU\n" "UA9WS\n" "UA9WTF\n" "UA9WZ\n" "UA9XBJ\n" "UA9XF\n" "UA9XHT/9\n" "UA9XK\n" "UA9XL\n" "UA9XLC\n" "UA9XMC\n" "UA9XS\n" "UA9XTL\n" "UA9XTN\n" "UA9XW\n" "UA9XZ\n" "UA9YAB\n" "UA9YAD\n" "UA9YBA\n" "UA9YE\n" "UA9YF\n" "UA9YJI\n" "UA9YTN\n" "UA9ZZ\n" "UD3D\n" "UE4CAC/P\n" "UE6LHT\n" "UE80MC\n" "UE80MD\n" "UE9CAP\n" "UE9WDA/6\n" "UF3CWR\n" "UI4I\n" "UI9I\n" "UK7AZ\n" "UK7F\n" "UK8AKK\n" "UK8AR\n" "UK8DAN\n" "UK8DT\n" "UK8OM\n" "UK8OWW\n" "UK8UC\n" "UK8UWG\n" "UK9AA\n" "UN/RX9TL\n" "UN0C\n" "UN0L\n" "UN1F\n" "UN1HQ\n" "UN1L\n" "UN1O\n" "UN2C\n" "UN2E\n" "UN3GX\n" "UN3M\n" "UN4L\n" "UN4PD\n" "UN4PG\n" "UN5C\n" "UN5J\n" "UN5P\n" "UN6G\n" "UN6GD\n" "UN6GK\n" "UN6LN\n" "UN6P\n" "UN6T\n" "UN7AB\n" "UN7AL\n" "UN7AM\n" "UN7BN\n" "UN7CAD\n" "UN7CH\n" "UN7CM\n" "UN7CN\n" "UN7ECA\n" "UN7EV\n" "UN7EW\n" "UN7EX\n" "UN7FDP\n" "UN7FW\n" "UN7GCE\n" "UN7IT\n" "UN7JX\n" "UN7LAN\n" "UN7LZ\n" "UN7MMM\n" "UN7P\n" "UN7PBY\n" "UN7PL\n" "UN7PV\n" "UN7QF\n" "UN7RL\n" "UN7TDB\n" "UN7TO\n" "UN7TW\n" "UN7TX\n" "UN8CB\n" "UN8FM\n" "UN8GA\n" "UN8GU\n" "UN8GV\n" "UN8L\n" "UN8LF\n" "UN8LWF\n" "UN8P\n" "UN8PIM\n" "UN8PT\n" "UN9GD\n" "UN9L\n" "UN9LU\n" "UN9PQ\n" "UO1P\n" "UO6P\n" "UP0G\n" "UP0L\n" "UP1G\n" "UP2F\n" "UP2L\n" "UP4L\n" "UP6P\n" "UP7A\n" "UP8A\n" "UP9L\n" "UQ70F\n" "UR0CB\n" "UR0EE\n" "UR0EG\n" "UR0EV\n" "UR0HQ\n" "UR0IM\n" "UR0IQ\n" "UR0MM\n" "UR0QX\n" "UR0VV\n" "UR0VX\n" "UR1HM\n" "UR1MI\n" "UR1MM\n" "UR1MN\n" "UR2ML\n" "UR2MM\n" "UR2MO\n" "UR2P\n" "UR2VA\n" "UR3AC\n" "UR3CKR\n" "UR3EO\n" "UR3GO\n" "UR3HC\n" "UR3IDD\n" "UR3IFD\n" "UR3IJI\n" "UR3IQO\n" "UR3LL\n" "UR3LPM\n" "UR3LTD\n" "UR3MM\n" "UR3PA\n" "UR3PDQ\n" "UR3PGW\n" "UR3QB\n" "UR3QCW\n" "UR3QM\n" "UR3QX\n" "UR3QXX\n" "UR3UX\n" "UR4CU\n" "UR4CWQ\n" "UR4EI\n" "UR4ES\n" "UR4EWT\n" "UR4EXF\n" "UR4EXS\n" "UR4FA\n" "UR4GU\n" "UR4IGP\n" "UR4IOR\n" "UR4IXM\n" "UR4IZ\n" "UR4LCB\n" "UR4LRG\n" "UR4LWC\n" "UR4MCK\n" "UR4MH\n" "UR4MKY\n" "UR4MS\n" "UR4MSF\n" "UR4MTJ\n" "UR4PWC\n" "UR4PWL\n" "UR4QQF\n" "UR4QRH\n" "UR4QX\n" "UR4U\n" "UR4UC\n" "UR4UDI\n" "UR4VWA\n" "UR4WG\n" "UR4WWT\n" "UR4Z\n" "UR4ZYD\n" "UR5AKU\n" "UR5ALU\n" "UR5AMK\n" "UR5AO\n" "UR5AS\n" "UR5AW\n" "UR5BO\n" "UR5CC\n" "UR5CSL\n" "UR5E\n" "UR5EAW\n" "UR5EDU\n" "UR5EFL\n" "UR5EIT\n" "UR5EJ\n" "UR5ELN\n" "UR5EPG\n" "UR5EPV\n" "UR5EQQ\n" "UR5ETN\n" "UR5EU\n" "UR5EUY\n" "UR5FBM\n" "UR5FCK\n" "UR5FCM\n" "UR5FEL\n" "UR5FEO\n" "UR5FS\n" "UR5GAW/A\n" "UR5GBW\n" "UR5HAC\n" "UR5IF\n" "UR5IFB\n" "UR5IFX\n" "UR5IHC\n" "UR5IHQ\n" "UR5II\n" "UR5IKN\n" "UR5IOK\n" "UR5IRM\n" "UR5KDX\n" "UR5KED\n" "UR5KHZ\n" "UR5LAK\n" "UR5LAM\n" "UR5LCV\n" "UR5LCZ\n" "UR5LF\n" "UR5LJD\n" "UR5LO\n" "UR5LY\n" "UR5MA\n" "UR5MAF\n" "UR5MBA\n" "UR5MBB\n" "UR5MD\n" "UR5MER\n" "UR5MF\n" "UR5MID\n" "UR5MM\n" "UR5MP\n" "UR5MQS\n" "UR5MW\n" "UR5MZ\n" "UR5NF\n" "UR5PG\n" "UR5QA\n" "UR5QU\n" "UR5QUM\n" "UR5RMD\n" "UR5RP\n" "UR5RZ\n" "UR5SFC\n" "UR5TGK\n" "UR5THM\n" "UR5TW\n" "UR5UBD\n" "UR5UBR\n" "UR5UC\n" "UR5UJ\n" "UR5UZ\n" "UR5VR\n" "UR5WCA\n" "UR5WCQ\n" "UR5WD\n" "UR5WDQ\n" "UR5WHQ\n" "UR5WHT\n" "UR5WMM\n" "UR5WX\n" "UR5XMM\n" "UR5ZMK\n" "UR5ZPV\n" "UR5ZSU\n" "UR5ZTH\n" "UR5ZVJ\n" "UR5ZVP\n" "UR6AJ\n" "UR6EO\n" "UR6F\n" "UR6GWZ\n" "UR6HCF\n" "UR6ID\n" "UR6IDX\n" "UR6IJ\n" "UR6IM\n" "UR6IMF\n" "UR6IS\n" "UR6LAF\n" "UR6MX\n" "UR6QA\n" "UR6QR\n" "UR6QS\n" "UR7CQ\n" "UR7CT\n" "UR7EC\n" "UR7EM\n" "UR7EP\n" "UR7EQ\n" "UR7EU\n" "UR7EW\n" "UR7EY\n" "UR7EZ\n" "UR7GG\n" "UR7GO\n" "UR7GW\n" "UR7HA\n" "UR7HCX\n" "UR7IKV\n" "UR7INK\n" "UR7IQJ\n" "UR7M\n" "UR7MA\n" "UR7MG\n" "UR7MZ\n" "UR7QC\n" "UR7QL\n" "UR7QM\n" "UR7R\n" "UR7TZ\n" "UR7UC\n" "UR7UD\n" "UR7UM\n" "UR7UT\n" "UR7VA\n" "UR7ZO\n" "UR8EQ\n" "UR8GM\n" "UR8GX\n" "UR8IDX\n" "UR8IF\n" "UR8IW\n" "UR8LV\n" "UR8MH\n" "UR8QQ\n" "UR8QR\n" "UR8RF\n" "UR9MB\n" "UR9MC\n" "UR9QQ\n" "US0CD\n" "US0GA\n" "US0GH\n" "US0HZ\n" "US0IJ\n" "US0IW\n" "US0KS\n" "US0KW\n" "US0LA\n" "US0LO\n" "US0LW\n" "US0MF\n" "US0MM\n" "US0MS\n" "US0NJ\n" "US0QG\n" "US0SY\n" "US0TA\n" "US0VA\n" "US0YA\n" "US0YW\n" "US0ZK\n" "US0ZZ\n" "US1GBH\n" "US1IT\n" "US1IV\n" "US1IW\n" "US1MM\n" "US1PM\n" "US1US\n" "US1UU\n" "US1UX\n" "US1VS\n" "US2IHS\n" "US2IR\n" "US2IW\n" "US2IZ\n" "US2LX\n" "US2MW\n" "US2WU\n" "US2YW\n" "US3IG\n" "US3IMZ\n" "US3IP\n" "US3IRX\n" "US3ITA\n" "US3IVN\n" "US3IZ\n" "US3LX\n" "US3QQ\n" "US3QW\n" "US3WD\n" "US4AS\n" "US4EG\n" "US4EX\n" "US4IDY\n" "US4IPC\n" "US4IPQ\n" "US4IQ\n" "US4IXT\n" "US4IYM\n" "US4L\n" "US4LGW\n" "US4LS\n" "US4MW\n" "US5CB\n" "US5CCO\n" "US5D\n" "US5DA\n" "US5E\n" "US5EEK\n" "US5ELM\n" "US5EVJ\n" "US5FA\n" "US5HI\n" "US5I\n" "US5IIM\n" "US5IND\n" "US5IQ\n" "US5ISV\n" "US5IVD\n" "US5LAE\n" "US5MPO\n" "US5MUW\n" "US5QRW\n" "US5UO\n" "US5VX\n" "US5WAM\n" "US5WCP\n" "US5WDT\n" "US5WE\n" "US5XD\n" "US5ZCW\n" "US6CQ\n" "US6EX\n" "US6IKF\n" "US6IKV\n" "US6IPD\n" "US6IQ\n" "US6IT\n" "US7AF\n" "US7IA\n" "US7IAU\n" "US7IB\n" "US7IGF\n" "US7IID\n" "US7IM\n" "US7IQZ\n" "US7IUF\n" "US7IVW\n" "US7IY\n" "US7LM\n" "US7ML\n" "US7MM\n" "US7QQ\n" "US7UX\n" "US7VL\n" "US7WW\n" "US8IB\n" "US8IBS\n" "US8ICA\n" "US8ICM\n" "US8IDX\n" "US8IM\n" "US8MX\n" "US8QQ\n" "US8UA\n" "US9PA\n" "UT/PA3BUD\n" "UT/RN3DAW\n" "UT0AZA\n" "UT0CK\n" "UT0EA\n" "UT0EL\n" "UT0EO\n" "UT0ET\n" "UT0IG\n" "UT0IL\n" "UT0IV\n" "UT0IW\n" "UT0L\n" "UT0MF\n" "UT0MG\n" "UT0NT\n" "UT0RM\n" "UT0U\n" "UT0VE\n" "UT0ZD\n" "UT1AA\n" "UT1AB\n" "UT1CC\n" "UT1CZ\n" "UT1DX\n" "UT1DZ\n" "UT1EA\n" "UT1HT\n" "UT1HZZ\n" "UT1IA\n" "UT1IF\n" "UT1IH\n" "UT1IK\n" "UT1IM\n" "UT1IR\n" "UT1PO\n" "UT1QL\n" "UT1S\n" "UT1UL\n" "UT1US\n" "UT1UW\n" "UT1UY\n" "UT1XX\n" "UT1YV\n" "UT2AA\n" "UT2AB\n" "UT2AU\n" "UT2EZ\n" "UT2FA\n" "UT2FF/A\n" "UT2HM\n" "UT2ID\n" "UT2IF\n" "UT2II\n" "UT2IO\n" "UT2IU\n" "UT2IV\n" "UT2IW\n" "UT2IY\n" "UT2LF\n" "UT2LU\n" "UT2LY\n" "UT2M\n" "UT2PL\n" "UT2PX\n" "UT2QQ\n" "UT2QT\n" "UT2RZ\n" "UT2UB\n" "UT2UN\n" "UT2UU\n" "UT2UZ\n" "UT2VU\n" "UT2XX\n" "UT3EG\n" "UT3EK\n" "UT3EV\n" "UT3EW\n" "UT3FM\n" "UT3HWW\n" "UT3I\n" "UT3IB\n" "UT3IJ\n" "UT3IK\n" "UT3IM\n" "UT3IW\n" "UT3IZ\n" "UT3L\n" "UT3MA\n" "UT3N\n" "UT3NA\n" "UT3NF\n" "UT3QN\n" "UT3QT\n" "UT3QU\n" "UT3RN\n" "UT3RS\n" "UT3SA\n" "UT3SO\n" "UT3UA\n" "UT3UV\n" "UT3UX\n" "UT3UY\n" "UT3UZ\n" "UT3WJ\n" "UT3WW\n" "UT3WX\n" "UT4CE\n" "UT4EK\n" "UT4EN\n" "UT4EO\n" "UT4EU\n" "UT4FJ\n" "UT4FM\n" "UT4HZ\n" "UT4IZ\n" "UT4MF\n" "UT4MW\n" "UT4MWA\n" "UT4NR\n" "UT4NW\n" "UT4NX\n" "UT4NY\n" "UT4NZ\n" "UT4PZ\n" "UT4Q\n" "UT4QV\n" "UT4UB\n" "UT4UBY\n" "UT4UF\n" "UT4UH\n" "UT4UO\n" "UT4UP\n" "UT4UQ\n" "UT4UW\n" "UT4VV\n" "UT4VW\n" "UT4WA\n" "UT4WT\n" "UT4XD\n" "UT4XU\n" "UT4ZG\n" "UT4ZX\n" "UT5A\n" "UT5AT\n" "UT5CB\n" "UT5CL\n" "UT5CY\n" "UT5DJ\n" "UT5DL\n" "UT5EA\n" "UT5ECZ\n" "UT5EL\n" "UT5EMU\n" "UT5EO\n" "UT5EPP\n" "UT5ERP\n" "UT5ERV\n" "UT5EUQ\n" "UT5HCW\n" "UT5HX\n" "UT5IA\n" "UT5ID\n" "UT5IF\n" "UT5IH\n" "UT5IM\n" "UT5IZ\n" "UT5IZO\n" "UT5JAJ\n" "UT5JCE\n" "UT5KL\n" "UT5KO\n" "UT5KTT\n" "UT5LO\n" "UT5MB\n" "UT5NWA\n" "UT5PH\n" "UT5PI\n" "UT5PQ\n" "UT5PW\n" "UT5PY\n" "UT5SA\n" "UT5SI\n" "UT5UA\n" "UT5UCP\n" "UT5UFT\n" "UT5UGR\n" "UT5UGS\n" "UT5UGW\n" "UT5UIA\n" "UT5UJ\n" "UT5UKA\n" "UT5UKY\n" "UT5ULB\n" "UT5ULX\n" "UT5UMY\n" "UT5UN\n" "UT5UNZ\n" "UT5UPN\n" "UT5UQN\n" "UT5UQV\n" "UT5URW\n" "UT5US\n" "UT5UT\n" "UT5UUV\n" "UT5UY\n" "UT5VX\n" "UT5XM\n" "UT5ZA\n" "UT5ZY\n" "UT6EC\n" "UT6EE\n" "UT6IS\n" "UT6LX\n" "UT7AXA\n" "UT7CH\n" "UT7CL\n" "UT7CR\n" "UT7DK\n" "UT7E\n" "UT7EE\n" "UT7EF\n" "UT7EG\n" "UT7EI\n" "UT7EJ\n" "UT7EM\n" "UT7EN\n" "UT7EV\n" "UT7EY\n" "UT7EZ\n" "UT7EZZ\n" "UT7FO\n" "UT7FP\n" "UT7HM\n" "UT7I\n" "UT7IA\n" "UT7IL\n" "UT7L\n" "UT7LA\n" "UT7LD\n" "UT7LM\n" "UT7LW\n" "UT7MA\n" "UT7MC\n" "UT7MD\n" "UT7MR\n" "UT7MW\n" "UT7ND\n" "UT7NF\n" "UT7NT\n" "UT7NW\n" "UT7NY\n" "UT7QB\n" "UT7QF\n" "UT7QL\n" "UT7TA\n" "UT7U\n" "UT7UJ\n" "UT7UT\n" "UT7UV\n" "UT7UW\n" "UT7UZ\n" "UT7VR\n" "UT7WZ\n" "UT7WZA\n" "UT7XX\n" "UT7Y\n" "UT7ZB\n" "UT8AL\n" "UT8AS\n" "UT8EL\n" "UT8EU\n" "UT8IA\n" "UT8IM\n" "UT8IO\n" "UT8IT\n" "UT8IV\n" "UT8L\n" "UT8LO\n" "UT8NT\n" "UT8QQ\n" "UT8RN\n" "UT8SQ\n" "UT9EL\n" "UT9FJ\n" "UT9IR\n" "UT9NA\n" "UU0A\n" "UU0JC\n" "UU0JM\n" "UU1AZ\n" "UU1CC\n" "UU1CW\n" "UU1DX\n" "UU1JE\n" "UU1K\n" "UU2AA\n" "UU2CW\n" "UU2J\n" "UU2JA\n" "UU2JG\n" "UU2JQ\n" "UU3JC\n" "UU3JX\n" "UU3W\n" "UU4J\n" "UU4JC\n" "UU4JDD\n" "UU4JGR\n" "UU4JMG\n" "UU4JO\n" "UU4JQE\n" "UU4JWA\n" "UU4JWC\n" "UU4JXI\n" "UU4JXM\n" "UU5A\n" "UU5AB\n" "UU5AF\n" "UU5AI\n" "UU5JAQ\n" "UU5JBO\n" "UU5JFP\n" "UU5JQV\n" "UU5JS\n" "UU5JZ\n" "UU5JZA\n" "UU5WW\n" "UU6JF\n" "UU6JJ\n" "UU7J\n" "UU7JD\n" "UU7JF\n" "UU7JM\n" "UU7JN\n" "UU7JR\n" "UU7JX\n" "UU8JK\n" "UU8JM\n" "UU8JY\n" "UU9CI\n" "UU9CW\n" "UU9JK\n" "UU9JQ\n" "UU9JR\n" "UV1GW\n" "UV2L\n" "UV3QF\n" "UV3RT\n" "UV5EEO\n" "UV5ERY\n" "UV5QAV\n" "UV5QQ\n" "UV5QR\n" "UV5U\n" "UV7QA\n" "UV8M\n" "UW0K\n" "UW0L\n" "UW1G\n" "UW1GZ\n" "UW1I\n" "UW1M\n" "UW1WU\n" "UW2F\n" "UW2I\n" "UW2M\n" "UW2N\n" "UW2Q\n" "UW2ZM\n" "UW3E\n" "UW3M\n" "UW3U\n" "UW4E\n" "UW4SU\n" "UW5M\n" "UW5Q\n" "UW5SW\n" "UW5U\n" "UW5W\n" "UW5ZM\n" "UW7CF\n" "UW7CN\n" "UW7F\n" "UW7LL\n" "UW7M\n" "UW7RV\n" "UW8I\n" "UW8M\n" "UW8SM\n" "UX0BB\n" "UX0FF\n" "UX0FY\n" "UX0HO\n" "UX0IK\n" "UX0IY\n" "UX0LL\n" "UX0LL/A\n" "UX0SX\n" "UX0UN\n" "UX0UW\n" "UX0ZL\n" "UX1AA\n" "UX1BZ\n" "UX1CW\n" "UX1HW\n" "UX1IB\n" "UX1IL\n" "UX1IM\n" "UX1MH\n" "UX1QQ\n" "UX1UF\n" "UX1UX\n" "UX2HB\n" "UX2IJ\n" "UX2IO\n" "UX2IQ\n" "UX2KA\n" "UX2MF\n" "UX2MK\n" "UX2QA\n" "UX2SB\n" "UX2X\n" "UX35A\n" "UX3HA\n" "UX3HX\n" "UX3IA\n" "UX3IO\n" "UX3IT\n" "UX3IV\n" "UX3IW\n" "UX3MF\n" "UX3MX\n" "UX3MZ\n" "UX3UN\n" "UX3ZW\n" "UX4E\n" "UX4FC\n" "UX4LA\n" "UX4U\n" "UX4UM\n" "UX5D\n" "UX5I\n" "UX5IO\n" "UX5IZ\n" "UX5MZ\n" "UX5NQ\n" "UX5OF\n" "UX5TQ\n" "UX5UO\n" "UX5VK\n" "UX6F\n" "UX6IA\n" "UX6IB\n" "UX6IR\n" "UX6VA\n" "UX7CQ\n" "UX7E\n" "UX7FC\n" "UX7FD\n" "UX7IB\n" "UX7IW\n" "UX7LL\n" "UX7MA\n" "UX7MM\n" "UX7MR\n" "UX7MX\n" "UX7QD\n" "UX7QJ\n" "UX7QV\n" "UX7U\n" "UX7UN\n" "UX8IR\n" "UX8IW\n" "UX8IX\n" "UX8IXX\n" "UX8ML\n" "UX8MM\n" "UX8ZA\n" "UY0CA\n" "UY0IR\n" "UY0IX\n" "UY0MM\n" "UY0ZA\n" "UY0ZG\n" "UY1HY\n" "UY1LS\n" "UY1U\n" "UY2IF\n" "UY2IG\n" "UY2IJ\n" "UY2IZ\n" "UY2MQ\n" "UY2RA\n" "UY2RZ\n" "UY2UA\n" "UY2UQ\n" "UY2UZ\n" "UY2VM\n" "UY2ZA\n" "UY2ZZ\n" "UY3AW\n" "UY3CC\n" "UY3LA\n" "UY3MW\n" "UY3QT\n" "UY3QW\n" "UY4F\n" "UY4WWA\n" "UY5AA\n" "UY5AB\n" "UY5AO\n" "UY5AP\n" "UY5AR\n" "UY5AX\n" "UY5BA\n" "UY5BC\n" "UY5BO\n" "UY5BT\n" "UY5EI\n" "UY5HF\n" "UY5LM\n" "UY5MB\n" "UY5ME\n" "UY5MR\n" "UY5QJ\n" "UY5QO\n" "UY5QZ\n" "UY5TE\n" "UY5TF\n" "UY5UO\n" "UY5UV\n" "UY5VA\n" "UY5YA\n" "UY5YB\n" "UY5ZI\n" "UY5ZZ\n" "UY5ZZ/A\n" "UY6IM\n" "UY7C\n" "UY7IO\n" "UY7IQ\n" "UY7LA\n" "UY7LM\n" "UY7LU\n" "UY7M\n" "UY7MM\n" "UY7QF\n" "UY7QN\n" "UY8IF\n" "UY8LM\n" "UY9IF\n" "UY9IM\n" "UY9IX\n" "UY9QY\n" "UZ0U\n" "UZ1G\n" "UZ1H\n" "UZ1RR\n" "UZ2FWB\n" "UZ2HZ\n" "UZ2I\n" "UZ2LL\n" "UZ2M\n" "UZ4E\n" "UZ4L\n" "UZ5I\n" "UZ5Q\n" "UZ5U\n" "UZ5UA\n" "UZ7HO\n" "UZ7M\n" "UZ7U\n" "UZ8I\n" "UZ8L\n" "V21MJ\n" "V25JK\n" "V25Y\n" "V25Z\n" "V26B\n" "V26E\n" "V26F\n" "V26G\n" "V26K\n" "V26M\n" "V31CW\n" "V31GW\n" "V31MD\n" "V31MU\n" "V31MW\n" "V31MX\n" "V31PT\n" "V31RI\n" "V31RR\n" "V31TB\n" "V31TP\n" "V31WA\n" "V31WO\n" "V31WV\n" "V31WVK\n" "V31YN\n" "V44KAI\n" "V47JA\n" "V47NT\n" "V48M\n" "V49A\n" "V51AS\n" "V51GB\n" "V51YJ\n" "V55X\n" "V63MY\n" "V73NS\n" "V85SS\n" "V8AQM\n" "VA1CC\n" "VA1CHP\n" "VA1IVY\n" "VA1MM\n" "VA1SEA\n" "VA1XBN\n" "VA2AAB\n" "VA2AAE\n" "VA2AM\n" "VA2AN\n" "VA2AY\n" "VA2BK\n" "VA2BN\n" "VA2BS\n" "VA2CT\n" "VA2EW\n" "VA2GU\n" "VA2KK\n" "VA2KT\n" "VA2LC\n" "VA2LGQ\n" "VA2MZ\n" "VA2PC\n" "VA2PR\n" "VA2PZ\n" "VA2RF\n" "VA2RIO\n" "VA2RM\n" "VA2RP\n" "VA2SG\n" "VA2TG\n" "VA2UP\n" "VA2UT\n" "VA2WDQ\n" "VA2WT\n" "VA2ZA\n" "VA2ZM\n" "VA2ZZ\n" "VA3AAO\n" "VA3ADW\n" "VA3AG\n" "VA3AM\n" "VA3ARK\n" "VA3ARS\n" "VA3ATT\n" "VA3BD\n" "VA3BI\n" "VA3BOH\n" "VA3CCO\n" "VA3CDX\n" "VA3CFK\n" "VA3CWT\n" "VA3DF\n" "VA3DN\n" "VA3DX\n" "VA3DZ\n" "VA3EBM\n" "VA3EC\n" "VA3ECO\n" "VA3FN\n" "VA3FP\n" "VA3GD\n" "VA3GFD\n" "VA3GGF\n" "VA3GKO\n" "VA3GL\n" "VA3GML\n" "VA3GUY\n" "VA3GVS\n" "VA3HIE\n" "VA3HJ\n" "VA3HP\n" "VA3HUN\n" "VA3IBL\n" "VA3IC\n" "VA3ICW\n" "VA3IX\n" "VA3JFF/W1\n" "VA3JWR\n" "VA3KA\n" "VA3KAI\n" "VA3KGS\n" "VA3KSF\n" "VA3MJR\n" "VA3MN\n" "VA3MO\n" "VA3NA\n" "VA3NN\n" "VA3NPL\n" "VA3NQ\n" "VA3NR\n" "VA3OBR\n" "VA3OC\n" "VA3OR\n" "VA3ORI\n" "VA3OX\n" "VA3PC\n" "VA3PEN\n" "VA3PL\n" "VA3QV\n" "VA3RDC\n" "VA3RJ\n" "VA3RKM\n" "VA3RNJ\n" "VA3SB\n" "VA3SK\n" "VA3STG\n" "VA3SWG\n" "VA3SX\n" "VA3THC\n" "VA3TPS\n" "VA3TSG\n" "VA3TTU\n" "VA3TV\n" "VA3TVW\n" "VA3VF\n" "VA3VO\n" "VA3VU\n" "VA3VW\n" "VA3VY\n" "VA3WL\n" "VA3WLD\n" "VA3WPV\n" "VA3WR\n" "VA3WU\n" "VA3WWC\n" "VA3XH\n" "VA3XQ\n" "VA3YOJ\n" "VA3YP\n" "VA3YT\n" "VA3YX\n" "VA3ZC\n" "VA3ZTZ\n" "VA3ZW\n" "VA3ZWT\n" "VA4DX\n" "VA4GD\n" "VA4HZ\n" "VA5DX\n" "VA5LF\n" "VA5RI\n" "VA6APB\n" "VA6AW\n" "VA6BSH\n" "VA6FZ\n" "VA6IK\n" "VA6MM\n" "VA6NJK\n" "VA6OZ\n" "VA6RAR\n" "VA6UK\n" "VA6XDX\n" "VA6ZZZ\n" "VA7AD\n" "VA7ALK\n" "VA7AM\n" "VA7AO\n" "VA7APK\n" "VA7AQ\n" "VA7BEC\n" "VA7BS\n" "VA7CAB\n" "VA7CE\n" "VA7CPC\n" "VA7CRO\n" "VA7CRZ\n" "VA7DER\n" "VA7DIN\n" "VA7DM\n" "VA7DX\n" "VA7DXC\n" "VA7DZ\n" "VA7FC\n" "VA7GAP\n" "VA7GEM\n" "VA7GG\n" "VA7HZ\n" "VA7IR\n" "VA7JC\n" "VA7JW\n" "VA7KO\n" "VA7MEV\n" "VA7MJR\n" "VA7MM\n" "VA7MT\n" "VA7ND\n" "VA7OA\n" "VA7OO\n" "VA7PGE\n" "VA7PX\n" "VA7RME\n" "VA7RMM\n" "VA7RN\n" "VA7RR\n" "VA7RY\n" "VA7ST\n" "VA7SW\n" "VA7TF\n" "VA7TT\n" "VA7VI\n" "VA7VJ\n" "VA7VV\n" "VA7VZZ\n" "VA7XB\n" "VA7XX\n" "VA7ZOO\n" "VC2A\n" "VC2E\n" "VC2W\n" "VC2Z\n" "VC3A\n" "VC3COPP\n" "VC3D\n" "VC3O\n" "VC3Y\n" "VC6R\n" "VC6T\n" "VC6X\n" "VC7C\n" "VE1/K3OMI\n" "VE1AHX\n" "VE1AI\n" "VE1AL\n" "VE1AOE\n" "VE1ARG\n" "VE1AWC\n" "VE1AYY\n" "VE1AZV\n" "VE1BB\n" "VE1BU\n" "VE1BVD\n" "VE1BZI\n" "VE1CJB\n" "VE1CTW\n" "VE1CZ\n" "VE1DC\n" "VE1DHD\n" "VE1DI\n" "VE1DT\n" "VE1DX\n" "VE1EP\n" "VE1FO/9\n" "VE1GW\n" "VE1IM\n" "VE1JF\n" "VE1JS\n" "VE1KF\n" "VE1KY\n" "VE1MC\n" "VE1NB\n" "VE1OP\n" "VE1QA\n" "VE1QY\n" "VE1RAR\n" "VE1RGB\n" "VE1RHP\n" "VE1RSM\n" "VE1SD\n" "VE1SK\n" "VE1SKY\n" "VE1SQ\n" "VE1TK\n" "VE1TRI\n" "VE1TT\n" "VE1UT\n" "VE1UY\n" "VE1WO\n" "VE1WT\n" "VE1XZ\n" "VE1YVN\n" "VE1YX\n" "VE1ZA\n" "VE1ZAC\n" "VE1ZD\n" "VE1ZJ\n" "VE1ZZ\n" "VE2ACP\n" "VE2AEJ\n" "VE2AFC\n" "VE2AHS\n" "VE2ARR\n" "VE2AWN\n" "VE2AWR\n" "VE2AWW\n" "VE2AXO\n" "VE2BDR\n" "VE2BQB\n" "VE2BR\n" "VE2BWL\n" "VE2CAQ\n" "VE2CPD\n" "VE2DC\n" "VE2DJC\n" "VE2DLC\n" "VE2DWA\n" "VE2DX\n" "VE2DXQ\n" "VE2DXY\n" "VE2EBL\n" "VE2EH\n" "VE2EKA\n" "VE2EWQ\n" "VE2EZD\n" "VE2FET\n" "VE2FFE\n" "VE2FK\n" "VE2FKZ\n" "VE2FU\n" "VE2FWW\n" "VE2FXL\n" "VE2GHI\n" "VE2GK\n" "VE2GLA\n" "VE2GSO\n" "VE2HAY\n" "VE2HLS\n" "VE2IM\n" "VE2JCW\n" "VE2JD\n" "VE2JMK\n" "VE2KH\n" "VE2LQ\n" "VE2LSF\n" "VE2LX\n" "VE2MAB\n" "VE2MRN\n" "VE2OJ\n" "VE2OPB\n" "VE2OTW\n" "VE2OWL\n" "VE2PC\n" "VE2PEP\n" "VE2PZ\n" "VE2QAU\n" "VE2QRA\n" "VE2QV\n" "VE2QV/3\n" "VE2QY\n" "VE2RA\n" "VE2RDQ\n" "VE2RO\n" "VE2RYY\n" "VE2SB\n" "VE2SBJ\n" "VE2SG\n" "VE2SHF\n" "VE2TBK\n" "VE2TG\n" "VE2TH\n" "VE2TKH\n" "VE2TZT\n" "VE2UMS\n" "VE2VIG\n" "VE2WKO\n" "VE2XAA\n" "VE2XAA/2\n" "VE2XX\n" "VE2YY\n" "VE2ZV\n" "VE2ZVZ\n" "VE3AAQ\n" "VE3ABG\n" "VE3ACA\n" "VE3AD\n" "VE3ADQ\n" "VE3AGC\n" "VE3AJ\n" "VE3AP\n" "VE3AR\n" "VE3ARF\n" "VE3AT\n" "VE3AWE\n" "VE3AXC\n" "VE3AZA\n" "VE3BDN\n" "VE3BHZ\n" "VE3BK\n" "VE3BKA\n" "VE3BLB\n" "VE3BNO\n" "VE3BVA\n" "VE3BW\n" "VE3BXI\n" "VE3BY\n" "VE3C\n" "VE3CAK\n" "VE3CCT\n" "VE3CFK\n" "VE3CG\n" "VE3CGC\n" "VE3CGR\n" "VE3CH\n" "VE3CKG\n" "VE3CLQ\n" "VE3CM\n" "VE3CMB\n" "VE3CNX\n" "VE3CPK\n" "VE3CPP\n" "VE3CR\n" "VE3CRG\n" "VE3CRO\n" "VE3CRU\n" "VE3CSJ\n" "VE3CSK\n" "VE3CTO\n" "VE3CUI\n" "VE3CW\n" "VE3CWO\n" "VE3CWP\n" "VE3CWU\n" "VE3CX\n" "VE3CXD\n" "VE3CXT\n" "VE3CZ\n" "VE3DBP\n" "VE3DC\n" "VE3DDG\n" "VE3DJX\n" "VE3DO\n" "VE3DPZ\n" "VE3DX\n" "VE3DZ\n" "VE3EBN\n" "VE3EDM\n" "VE3EDY\n" "VE3EFC\n" "VE3EGC\n" "VE3EJ\n" "VE3EK\n" "VE3EL\n" "VE3ELL\n" "VE3EN\n" "VE3ENG\n" "VE3EP\n" "VE3EWW\n" "VE3EXW\n" "VE3EXY\n" "VE3EY\n" "VE3EZP\n" "VE3FAS\n" "VE3FDK\n" "VE3FDT\n" "VE3FDX/W4\n" "VE3FGU\n" "VE3FH\n" "VE3FJ\n" "VE3FJB\n" "VE3FLT\n" "VE3FRJ\n" "VE3FRX\n" "VE3FSJ\n" "VE3FST\n" "VE3FTM\n" "VE3FU\n" "VE3FWF\n" "VE3FZ\n" "VE3GB\n" "VE3GFN\n" "VE3GIN\n" "VE3GJA\n" "VE3GLA\n" "VE3GLO\n" "VE3GLU\n" "VE3GN\n" "VE3GNB\n" "VE3GNO\n" "VE3GNX\n" "VE3GO\n" "VE3GPH\n" "VE3GPM\n" "VE3GSI\n" "VE3GYL\n" "VE3GZD\n" "VE3HG\n" "VE3HIA\n" "VE3HLS\n" "VE3HOL\n" "VE3HUR\n" "VE3HX\n" "VE3IAE\n" "VE3ICV\n" "VE3IDT\n" "VE3IFS/W2\n" "VE3IGJ\n" "VE3IIE\n" "VE3IKT\n" "VE3ILG\n" "VE3IN\n" "VE3IPS\n" "VE3IQ\n" "VE3ISO\n" "VE3IZZ\n" "VE3JAQ\n" "VE3JAS\n" "VE3JDF\n" "VE3JDF/W4\n" "VE3JI\n" "VE3JM\n" "VE3JSQ\n" "VE3KAO\n" "VE3KF\n" "VE3KI\n" "VE3KKB\n" "VE3KKQ\n" "VE3KL\n" "VE3KP\n" "VE3KPP\n" "VE3KQN\n" "VE3KWK\n" "VE3KZ\n" "VE3LC\n" "VE3LFJ\n" "VE3LFN\n" "VE3LKV\n" "VE3LLL\n" "VE3LR\n" "VE3LXL\n" "VE3LXV\n" "VE3MA\n" "VE3MCF\n" "VE3MCZ\n" "VE3MGY\n" "VE3MIA\n" "VE3MIH\n" "VE3MIS\n" "VE3MLK\n" "VE3MM\n" "VE3MMB\n" "VE3MMQ\n" "VE3MNE\n" "VE3MO\n" "VE3MS\n" "VE3MV\n" "VE3MWX\n" "VE3MXJ\n" "VE3NB\n" "VE3NCQ\n" "VE3NE\n" "VE3NLH\n" "VE3NOO\n" "VE3NPO\n" "VE3NQM\n" "VE3NRG\n" "VE3NYX\n" "VE3NYZ\n" "VE3NZ\n" "VE3OBU\n" "VE3OI\n" "VE3OIL\n" "VE3OKK\n" "VE3OM\n" "VE3OQM\n" "VE3OSC\n" "VE3OSZ\n" "VE3OU\n" "VE3OWO\n" "VE3OX\n" "VE3OZO\n" "VE3PA\n" "VE3PN\n" "VE3PST\n" "VE3PTC\n" "VE3PYJ\n" "VE3QAA\n" "VE3QBH\n" "VE3QDR\n" "VE3QN\n" "VE3QO\n" "VE3QRA\n" "VE3QT\n" "VE3RBE\n" "VE3RCN\n" "VE3RER\n" "VE3RHD\n" "VE3RIA\n" "VE3RM\n" "VE3RRH\n" "VE3RSA\n" "VE3RTU\n" "VE3RWA\n" "VE3RYI\n" "VE3RZ\n" "VE3SAO\n" "VE3SAQ\n" "VE3SCP\n" "VE3SIQ\n" "VE3SMA\n" "VE3SMN\n" "VE3SS\n" "VE3SSR\n" "VE3SSV\n" "VE3SUA\n" "VE3SUB\n" "VE3SWA\n" "VE3SXB\n" "VE3TA\n" "VE3TAZ\n" "VE3TC\n" "VE3TEI\n" "VE3TES\n" "VE3THX\n" "VE3TLT\n" "VE3TMG\n" "VE3TMT\n" "VE3TU\n" "VE3TV\n" "VE3TW\n" "VE3TWM\n" "VE3UEK\n" "VE3UK\n" "VE3UN\n" "VE3UTT\n" "VE3UUH\n" "VE3UWC\n" "VE3UZ\n" "VE3VA\n" "VE3VAW\n" "VE3VC\n" "VE3VID\n" "VE3VJ\n" "VE3VJC\n" "VE3VMJ\n" "VE3VO\n" "VE3VOE\n" "VE3VV\n" "VE3WBJ\n" "VE3WBR\n" "VE3WDM\n" "VE3WE\n" "VE3WEJ\n" "VE3WF\n" "VE3WIB\n" "VE3WKG\n" "VE3WLD\n" "VE3WRW\n" "VE3WZ\n" "VE3XAT\n" "VE3XB\n" "VE3XBR\n" "VE3XBX\n" "VE3XC\n" "VE3XD\n" "VE3XL\n" "VE3XN\n" "VE3YAA\n" "VE3YEN\n" "VE3YN\n" "VE3YRI\n" "VE3YV\n" "VE3YXO\n" "VE3YYK\n" "VE3ZI\n" "VE3ZIN\n" "VE3ZT\n" "VE3ZZ\n" "VE4AEO\n" "VE4AMU\n" "VE4BAE\n" "VE4BG\n" "VE4DRN\n" "VE4DS\n" "VE4DXX\n" "VE4EA\n" "VE4EAR\n" "VE4GF\n" "VE4GR\n" "VE4GV\n" "VE4IHF\n" "VE4JCJ\n" "VE4KT\n" "VE4ME/W4\n" "VE4MG\n" "VE4MT\n" "VE4RA\n" "VE4TV\n" "VE4XT\n" "VE4YU\n" "VE5AAD\n" "VE5BCS\n" "VE5CPU\n" "VE5DLM\n" "VE5FF\n" "VE5FN\n" "VE5FX\n" "VE5KC\n" "VE5MX\n" "VE5PM\n" "VE5PV\n" "VE5RI\n" "VE5SF\n" "VE5SMC\n" "VE5SWL\n" "VE5TLW\n" "VE5UA\n" "VE5UF\n" "VE5WI\n" "VE5ZC\n" "VE5ZG\n" "VE5ZX\n" "VE6ADS\n" "VE6AID\n" "VE6AML\n" "VE6AO\n" "VE6APL\n" "VE6AVK\n" "VE6AX\n" "VE6AXA\n" "VE6BBP\n" "VE6BF\n" "VE6BI\n" "VE6BIR\n" "VE6BIR/3\n" "VE6BP\n" "VE6CMV\n" "VE6CN\n" "VE6CNU\n" "VE6CPU\n" "VE6DC\n" "VE6DDD\n" "VE6DJT\n" "VE6DLH\n" "VE6DO\n" "VE6DXX\n" "VE6ECK\n" "VE6EPK\n" "VE6EX\n" "VE6EXE\n" "VE6EZ\n" "VE6EZ/7\n" "VE6FI\n" "VE6FN\n" "VE6FT\n" "VE6GGF\n" "VE6GJ\n" "VE6HII\n" "VE6HX\n" "VE6IM\n" "VE6IV\n" "VE6JC\n" "VE6JJO\n" "VE6JOY\n" "VE6JY\n" "VE6KC\n" "VE6KD\n" "VE6KK\n" "VE6LB\n" "VE6LDX\n" "VE6LE\n" "VE6MAA\n" "VE6MO\n" "VE6MRV\n" "VE6MRX\n" "VE6MV\n" "VE6NA\n" "VE6NC\n" "VE6NL\n" "VE6NU\n" "VE6OH\n" "VE6PG\n" "VE6PL\n" "VE6PR\n" "VE6RAC\n" "VE6RRD\n" "VE6RST\n" "VE6SF\n" "VE6SH\n" "VE6SKU\n" "VE6SKY\n" "VE6SQ\n" "VE6STP\n" "VE6SV\n" "VE6TA\n" "VE6TC\n" "VE6TCK\n" "VE6TD\n" "VE6TL\n" "VE6TN\n" "VE6TR\n" "VE6TRD\n" "VE6US\n" "VE6VK\n" "VE6WDE\n" "VE6WQ\n" "VE6WTF\n" "VE6WZ\n" "VE6YC\n" "VE6YV\n" "VE6ZC\n" "VE7ABC\n" "VE7AF\n" "VE7AFZ\n" "VE7AHA\n" "VE7AHT\n" "VE7AIJ\n" "VE7APF\n" "VE7AV\n" "VE7AX\n" "VE7AXU\n" "VE7BC\n" "VE7BCJ\n" "VE7BDO\n" "VE7BGP\n" "VE7BQ\n" "VE7BQO\n" "VE7BSM\n" "VE7BV\n" "VE7BZR\n" "VE7CA\n" "VE7CC\n" "VE7CF\n" "VE7CFZ\n" "VE7CML\n" "VE7CNA\n" "VE7CNW\n" "VE7CT\n" "VE7CUS\n" "VE7CV\n" "VE7CYY\n" "VE7DAO\n" "VE7DD\n" "VE7DHJ\n" "VE7DP\n" "VE7DSE\n" "VE7DX\n" "VE7DXE\n" "VE7DXH\n" "VE7EPP\n" "VE7FCO\n" "VE7FE\n" "VE7FEI\n" "VE7FI\n" "VE7FO\n" "VE7GBK\n" "VE7GL\n" "VE7GPZ\n" "VE7GTC\n" "VE7HA\n" "VE7HBS\n" "VE7HJ\n" "VE7HL\n" "VE7IAF\n" "VE7IG\n" "VE7IJJ\n" "VE7IN\n" "VE7IO\n" "VE7IO/7\n" "VE7IX\n" "VE7JKZ\n" "VE7JQ\n" "VE7JT\n" "VE7JZ\n" "VE7KB\n" "VE7KDU\n" "VE7KFM\n" "VE7KS\n" "VE7KWA\n" "VE7LGI\n" "VE7MID\n" "VE7MR\n" "VE7NA\n" "VE7NF\n" "VE7NGR\n" "VE7NI\n" "VE7NS\n" "VE7NSR\n" "VE7NX\n" "VE7ODS\n" "VE7OGO\n" "VE7ON\n" "VE7PTT\n" "VE7QC\n" "VE7RSV\n" "VE7SA\n" "VE7SAG\n" "VE7SCC\n" "VE7SK\n" "VE7SNC\n" "VE7SQ\n" "VE7SV\n" "VE7SZ\n" "VE7TGV\n" "VE7TK\n" "VE7TUG\n" "VE7UF\n" "VE7UQ\n" "VE7URS\n" "VE7VF\n" "VE7VR\n" "VE7VV\n" "VE7VZ\n" "VE7WEB\n" "VE7WU\n" "VE7WWW\n" "VE7WY\n" "VE7XF\n" "VE7XT\n" "VE7XV\n" "VE7YJ\n" "VE7YL\n" "VE7YU\n" "VE7ZR\n" "VE7ZTW\n" "VE7ZZF\n" "VE8DAV\n" "VE8DW\n" "VE8EV\n" "VE8GER\n" "VE8NSD\n" "VE9AA\n" "VE9CEH\n" "VE9CX\n" "VE9DX\n" "VE9EZ\n" "VE9GJ\n" "VE9GLF\n" "VE9GU\n" "VE9HF\n" "VE9IS\n" "VE9JT\n" "VE9KAR\n" "VE9ML\n" "VE9MOE\n" "VE9MY\n" "VE9NC\n" "VE9OX\n" "VE9QRP\n" "VE9ST\n" "VE9XA\n" "VE9XX\n" "VE9ZX\n" "VER20100809\n" "VK1CC\n" "VK1GG/VK2\n" "VK1MJ\n" "VK2ABK\n" "VK2ACC\n" "VK2AET\n" "VK2APG\n" "VK2AR\n" "VK2AWA\n" "VK2AWD\n" "VK2AYD\n" "VK2BCQ\n" "VK2BD\n" "VK2BJ\n" "VK2BNG\n" "VK2BPL\n" "VK2CA\n" "VK2CCC\n" "VK2DAG\n" "VK2DV\n" "VK2FAJM\n" "VK2FTZ\n" "VK2GKA\n" "VK2GR\n" "VK2GWK\n" "VK2HBG\n" "VK2HEW\n" "VK2HJW\n" "VK2HOT\n" "VK2HV\n" "VK2IA\n" "VK2IM\n" "VK2IR\n" "VK2JZD\n" "VK2KDP\n" "VK2KM\n" "VK2KPP\n" "VK2LAW\n" "VK2MDY\n" "VK2MWG\n" "VK2NA\n" "VK2NCD\n" "VK2NOS\n" "VK2NRB\n" "VK2NSS\n" "VK2NU\n" "VK2PN\n" "VK2SF\n" "VK2UZ\n" "VK2WAY\n" "VK2WGW\n" "VK2WTT\n" "VK2XF\n" "VK2XN\n" "VK2ZF\n" "VK2ZQ\n" "VK3ACT\n" "VK3AMA\n" "VK3AMK\n" "VK3AMZ\n" "VK3AVV\n" "VK3DWS\n" "VK3EGN\n" "VK3EW\n" "VK3FGRC\n" "VK3FM\n" "VK3FRC\n" "VK3FT\n" "VK3FY\n" "VK3GDM\n" "VK3GK\n" "VK3HE\n" "VK3HJ\n" "VK3HJA\n" "VK3HR\n" "VK3IO\n" "VK3JMB\n" "VK3KE\n" "VK3LB\n" "VK3LK\n" "VK3LM\n" "VK3MDX\n" "VK3MO\n" "VK3NDX\n" "VK3NI\n" "VK3PA\n" "VK3PTO\n" "VK3QI\n" "VK3TC\n" "VK3TDX\n" "VK3TZ\n" "VK3VBC\n" "VK3VIN\n" "VK3VT\n" "VK3VTH\n" "VK3WF\n" "VK3YB\n" "VK3YXC\n" "VK3ZJ\n" "VK4/NL8F\n" "VK4AAR\n" "VK4AAV\n" "VK4AN\n" "VK4ATH\n" "VK4BL\n" "VK4BU\n" "VK4BUI\n" "VK4CMV\n" "VK4CQ\n" "VK4CZ\n" "VK4DMP\n" "VK4DX\n" "VK4DZ\n" "VK4EJ\n" "VK4EMM\n" "VK4FJ\n" "VK4FNQ\n" "VK4FRAJ\n" "VK4GH\n" "VK4HAM\n" "VK4HDX\n" "VK4HFO\n" "VK4HG\n" "VK4IU\n" "VK4IZ\n" "VK4KAD\n" "VK4KEE\n" "VK4KKD\n" "VK4KW\n" "VK4LDX\n" "VK4LMB\n" "VK4MA\n" "VK4MIT\n" "VK4OQ\n" "VK4PN\n" "VK4QO\n" "VK4SN\n" "VK4SS\n" "VK4TBW\n" "VK4TI\n" "VK4TJF\n" "VK4TT\n" "VK4VDX\n" "VK4WI\n" "VK4WIL\n" "VK4WR\n" "VK4XA\n" "VK4XES\n" "VK4XY\n" "VK4YN\n" "VK4ZD\n" "VK4ZJR\n" "VK5BC\n" "VK5HRT\n" "VK5LA\n" "VK5MAV\n" "VK5NPR\n" "VK5SW\n" "VK6AA\n" "VK6AHR\n" "VK6AJ\n" "VK6ANC\n" "VK6APZ\n" "VK6ARW\n" "VK6BN\n" "VK6DU\n" "VK6DXI\n" "VK6EH\n" "VK6FDX\n" "VK6HD\n" "VK6HG\n" "VK6HZ\n" "VK6IR\n" "VK6JJ\n" "VK6LC\n" "VK6LK\n" "VK6LW\n" "VK6NC\n" "VK6NTE\n" "VK6RO\n" "VK6RZ\n" "VK6VR\n" "VK6VZ\n" "VK6WR\n" "VK6YS\n" "VK6ZN/5\n" "VK7AC\n" "VK7AD\n" "VK7FWAY\n" "VK7GK\n" "VK7GN\n" "VK7GZ\n" "VK7JB\n" "VK7ROY\n" "VK7TS\n" "VK7WI\n" "VK7XX\n" "VK7ZE\n" "VK7ZGK\n" "VK8AV\n" "VK8GMT/VK2\n" "VK8NSB\n" "VK8PDX\n" "VK9AA\n" "VK9DWX\n" "VK9LA\n" "VK9XW\n" "VO1AA\n" "VO1ABN\n" "VO1BB\n" "VO1BBN\n" "VO1BE\n" "VO1BQ\n" "VO1DD\n" "VO1DJT\n" "VO1FD\n" "VO1FU\n" "VO1FZ\n" "VO1GO\n" "VO1GXG\n" "VO1HE\n" "VO1HP\n" "VO1KVT\n" "VO1MP\n" "VO1NM\n" "VO1OR\n" "VO1SA\n" "VO1TA\n" "VO1TK\n" "VO1TTY\n" "VO1TX\n" "VO1UL\n" "VO1XT\n" "VO2/GM0TQJ\n" "VO2FF\n" "VO2NS\n" "VO3A\n" "VP2E\n" "VP2EC\n" "VP2ETN\n" "VP2MDG\n" "VP2MNK\n" "VP2MPR\n" "VP2VVA\n" "VP50V\n" "VP59V\n" "VP5CM\n" "VP5DF\n" "VP5DX\n" "VP5H\n" "VP5JM\n" "VP5T\n" "VP5W\n" "VP8BKF\n" "VP8DIF\n" "VP8DMH\n" "VP8KF\n" "VP8NO\n" "VP9/AA4V\n" "VP9/K3IRV\n" "VP9/K3TRM\n" "VP9/N1SNB\n" "VP9/W6PH\n" "VP9400I\n" "VP9AD\n" "VP9BO\n" "VP9HE\n" "VP9HW\n" "VP9I\n" "VQ5B\n" "VQ5V\n" "VQ90JC\n" "VQ99JC\n" "VQ9JC\n" "VQ9LA\n" "VQ9RD\n" "VQ9X\n" "VR2009EAG\n" "VR2AAW\n" "VR2C\n" "VR2CB\n" "VR2CD\n" "VR2HF\n" "VR2HK\n" "VR2IZ\n" "VR2JK\n" "VR2NN\n" "VR2PW\n" "VR2PX\n" "VR2UW\n" "VR2XLN\n" "VR2XMT\n" "VR2YQU\n" "VR2YYW\n" "VR2ZQZ/P\n" "VR2ZRE\n" "VU2BGS\n" "VU2DK\n" "VU2HFR\n" "VU2JOS\n" "VU2LBW\n" "VU2NKS\n" "VU2ORO\n" "VU2PAI\n" "VU2PEP\n" "VU2PTT\n" "VU2RCT\n" "VU2RMS\n" "VU2SWS\n" "VU2TS\n" "VU2UR\n" "VU3DJQ\n" "VU3DMP\n" "VU3USJ\n" "VU4MY\n" "VU4RG\n" "VU7NRO\n" "VU7SJ\n" "VX3AP\n" "VX3CW\n" "VX3CX\n" "VX3FH\n" "VX3JAQ\n" "VX3OI\n" "VX3RTU\n" "VX3RZ\n" "VX3S\n" "VX3XN\n" "VX6AO\n" "VX6AX\n" "VX6WQ\n" "VX7BC\n" "VX7CC\n" "VX7ZD\n" "VX9HF\n" "VX9NC\n" "VY0HL\n" "VY0PW\n" "VY1CQ\n" "VY1EI\n" "VY1WUD\n" "VY2EJ\n" "VY2GM\n" "VY2LI\n" "VY2MP\n" "VY2MT\n" "VY2OM\n" "VY2RAC\n" "VY2RG\n" "VY2RO\n" "VY2RU\n" "VY2RWM\n" "VY2SS\n" "VY2TT\n" "VY2ZM\n" "W0AAA\n" "W0AD\n" "W0AG\n" "W0AIH\n" "W0AMX\n" "W0AR\n" "W0ARK\n" "W0AV\n" "W0AVE\n" "W0AW\n" "W0AWL\n" "W0BBI\n" "W0BCA\n" "W0BE\n" "W0BF\n" "W0BH\n" "W0BKR\n" "W0BM\n" "W0BNW\n" "W0BR\n" "W0BUW\n" "W0BV\n" "W0BVR\n" "W0CAR\n" "W0CBH\n" "W0CCA\n" "W0CEM\n" "W0CGR\n" "W0CM\n" "W0CML\n" "W0CN\n" "W0CNN\n" "W0CO\n" "W0CP\n" "W0CQ\n" "W0CRC\n" "W0CZ\n" "W0CZE\n" "W0DC\n" "W0DD\n" "W0DET\n" "W0DF\n" "W0DHB\n" "W0DJH\n" "W0DLE\n" "W0DOX\n" "W0EAR\n" "W0EB\n" "W0ECS\n" "W0EEA\n" "W0EF\n" "W0EJ\n" "W0EK\n" "W0EKS\n" "W0ELT\n" "W0EM\n" "W0EOZ\n" "W0EP\n" "W0EPC\n" "W0ERE\n" "W0ERP\n" "W0ETT\n" "W0EWD\n" "W0EWM\n" "W0FE\n" "W0FF\n" "W0FK\n" "W0FL\n" "W0FLS\n" "W0FM\n" "W0FMS\n" "W0FRC\n" "W0FS\n" "W0FV\n" "W0GG\n" "W0GHZ\n" "W0GJ\n" "W0GLB\n" "W0GMO\n" "W0GXN\n" "W0GXQ\n" "W0GZR\n" "W0HBH\n" "W0HDC\n" "W0HJW\n" "W0HMS\n" "W0HR\n" "W0HT\n" "W0HW\n" "W0HXL\n" "W0HY\n" "W0ICY\n" "W0IF\n" "W0IJR\n" "W0IMD\n" "W0IS\n" "W0IVJ\n" "W0IW\n" "W0IYH\n" "W0IZ\n" "W0IZL\n" "W0JA\n" "W0JEC\n" "W0JEE\n" "W0JFR\n" "W0JH\n" "W0JIM\n" "W0JLC\n" "W0JPL\n" "W0JRP\n" "W0JX\n" "W0KC\n" "W0KIT\n" "W0KSD\n" "W0KT\n" "W0KU\n" "W0KVA\n" "W0LB\n" "W0LEO\n" "W0LFZ\n" "W0LGU\n" "W0LK\n" "W0LM\n" "W0LS\n" "W0LSD\n" "W0LTL\n" "W0LV\n" "W0LWU\n" "W0MA\n" "W0MF\n" "W0MHK\n" "W0MJN\n" "W0ML\n" "W0MM\n" "W0MN\n" "W0MOT\n" "W0MR\n" "W0MRM\n" "W0MRZ\n" "W0MSM\n" "W0MSR\n" "W0MTW\n" "W0MU\n" "W0NA\n" "W0NB\n" "W0NFD\n" "W0NFS\n" "W0NMD\n" "W0NN\n" "W0NO\n" "W0NT\n" "W0NTA\n" "W0NUH\n" "W0NV\n" "W0NZG\n" "W0ODS\n" "W0OF\n" "W0OJ\n" "W0OP\n" "W0OR\n" "W0OR/4\n" "W0OTM\n" "W0OTV\n" "W0OXJ\n" "W0PAN\n" "W0PB\n" "W0PC\n" "W0PI\n" "W0PPF\n" "W0PQ\n" "W0PR\n" "W0PRS\n" "W0PS\n" "W0PSS\n" "W0PTI\n" "W0PV\n" "W0PYZ\n" "W0QE\n" "W0QL\n" "W0QQ\n" "W0QQG\n" "W0RAA\n" "W0RC\n" "W0RDS\n" "W0RHT\n" "W0RI\n" "W0RIC\n" "W0RLI\n" "W0RO\n" "W0RSB\n" "W0RSP\n" "W0RSR\n" "W0RT\n" "W0RU\n" "W0RUN\n" "W0RX\n" "W0SD\n" "W0SHL\n" "W0SK\n" "W0SLW\n" "W0SM\n" "W0SO\n" "W0SRC\n" "W0STB\n" "W0SV\n" "W0TAW\n" "W0TF\n" "W0TL\n" "W0TLE\n" "W0TT\n" "W0TU\n" "W0TUP\n" "W0TVD\n" "W0TY\n" "W0UA\n" "W0UC\n" "W0UCE\n" "W0UD\n" "W0UO\n" "W0UOW\n" "W0UVC\n" "W0UY\n" "W0UY/5\n" "W0VB\n" "W0VD\n" "W0VHV\n" "W0VOM\n" "W0VX\n" "W0WLL\n" "W0WMU\n" "W0WN\n" "W0WOI\n" "W0WP\n" "W0WPL\n" "W0WQ\n" "W0WSP\n" "W0XG\n" "W0XL\n" "W0XV\n" "W0XXX\n" "W0YHE\n" "W0YJT\n" "W0YK\n" "W0YK/6\n" "W0YNI\n" "W0YR\n" "W0YRN\n" "W0YSE\n" "W0YV\n" "W0YVA\n" "W0YY\n" "W0YZZ\n" "W0ZA\n" "W0ZC\n" "W0ZD\n" "W0ZH\n" "W0ZKE\n" "W0ZP\n" "W0ZQ\n" "W0ZR\n" "W0ZS\n" "W0ZT\n" "W0ZTL\n" "W0ZU\n" "W0ZW\n" "W1/YO7ARY\n" "W1AAX\n" "W1ACC\n" "W1ACT\n" "W1AD\n" "W1AF\n" "W1AH\n" "W1AIU\n" "W1AJT\n" "W1AMF\n" "W1AMJ\n" "W1AN\n" "W1AO\n" "W1AR\n" "W1ASB\n" "W1ATA\n" "W1ATV\n" "W1AUV\n" "W1AVK\n" "W1AW\n" "W1AX\n" "W1BB\n" "W1BBQ\n" "W1BCD\n" "W1BEM\n" "W1BHC\n" "W1BJ\n" "W1BLT\n" "W1BNC\n" "W1BR\n" "W1BS\n" "W1BUZ\n" "W1BV\n" "W1BYH\n" "W1CBI\n" "W1CC\n" "W1CCE\n" "W1CCE/4\n" "W1CDX\n" "W1CKA\n" "W1CRK\n" "W1CRP\n" "W1CRS\n" "W1CSM\n" "W1CTN\n" "W1CU\n" "W1CVE\n" "W1CWU\n" "W1DAD\n" "W1DBD\n" "W1DDD\n" "W1DEO\n" "W1DF\n" "W1DFL\n" "W1DIG\n" "W1DMC\n" "W1DMD\n" "W1DMM\n" "W1DNK\n" "W1DNK/5\n" "W1DO\n" "W1DQ\n" "W1DSH\n" "W1DUW\n" "W1DWA\n" "W1DX\n" "W1DXH\n" "W1DY\n" "W1DYJ\n" "W1EAT\n" "W1EBI\n" "W1EBM\n" "W1ECH\n" "W1ECS\n" "W1ECT\n" "W1EEB\n" "W1EHQ\n" "W1EM\n" "W1EME\n" "W1END\n" "W1EQ\n" "W1EQO\n" "W1ES\n" "W1ESE\n" "W1EZY\n" "W1FA\n" "W1FH\n" "W1FJ\n" "W1FK\n" "W1FM\n" "W1FMO\n" "W1FMR\n" "W1FNB\n" "W1FP\n" "W1FQ\n" "W1FV\n" "W1GD\n" "W1GG\n" "W1GL\n" "W1GLO\n" "W1GQ\n" "W1GS\n" "W1GSH\n" "W1GUD\n" "W1GUE\n" "W1GUS\n" "W1GWN\n" "W1GX\n" "W1GXZ\n" "W1GY\n" "W1HBR\n" "W1HFD\n" "W1HFF\n" "W1HFN\n" "W1HI\n" "W1HIH\n" "W1HIJ\n" "W1HIS\n" "W1HJT\n" "W1HMD\n" "W1HPT\n" "W1HQ\n" "W1HR\n" "W1HT\n" "W1HY\n" "W1IBI\n" "W1IBQ\n" "W1IDL\n" "W1IE\n" "W1IG\n" "W1II\n" "W1IL\n" "W1IS\n" "W1IT\n" "W1ITT\n" "W1IZQ\n" "W1JA\n" "W1JCJ\n" "W1JCW\n" "W1JD\n" "W1JGS\n" "W1JJC\n" "W1JKS\n" "W1JMA\n" "W1JN\n" "W1JNZ\n" "W1JQ\n" "W1JR\n" "W1JSB\n" "W1JWC\n" "W1KDA\n" "W1KM\n" "W1KOK\n" "W1KQ\n" "W1KRS\n" "W1KRV\n" "W1KSI\n" "W1KSZ\n" "W1KT\n" "W1LDD\n" "W1LK\n" "W1LOZ\n" "W1LRY\n" "W1LWH\n" "W1LXA\n" "W1LY\n" "W1LZ\n" "W1MAD\n" "W1MAT\n" "W1MAW\n" "W1MD\n" "W1MHZ\n" "W1MIG\n" "W1MJ\n" "W1MJB\n" "W1MK\n" "W1MKY\n" "W1MLG\n" "W1MO\n" "W1MPF\n" "W1MSW\n" "W1MU\n" "W1MX\n" "W1MX/100\n" "W1NA\n" "W1NDY\n" "W1NG\n" "W1NK\n" "W1NN\n" "W1NQT\n" "W1NR\n" "W1NRB\n" "W1NRG\n" "W1NSK\n" "W1NT\n" "W1NY\n" "W1OHM\n" "W1OO\n" "W1OOO\n" "W1OP\n" "W1ORS\n" "W1OU\n" "W1OW\n" "W1OX\n" "W1OZ\n" "W1PBB\n" "W1PH\n" "W1PHB\n" "W1PID\n" "W1PMR\n" "W1PNS\n" "W1PR\n" "W1PX/4\n" "W1QA\n" "W1QG\n" "W1QH\n" "W1QK\n" "W1QLF\n" "W1QS\n" "W1RAN\n" "W1RDJ\n" "W1REP\n" "W1RET\n" "W1RH\n" "W1RKT\n" "W1RM\n" "W1RME\n" "W1RO\n" "W1RPG\n" "W1RQ\n" "W1RY\n" "W1RZ\n" "W1RZF\n" "W1SAM\n" "W1SD\n" "W1SGC\n" "W1SJ\n" "W1SKB\n" "W1SKU\n" "W1SLF\n" "W1SNE\n" "W1SOX\n" "W1SRB\n" "W1SRD\n" "W1SRG\n" "W1STT\n" "W1TAM\n" "W1TBR\n" "W1TI\n" "W1TJL\n" "W1TM\n" "W1TMS\n" "W1TO\n" "W1TR\n" "W1TRB\n" "W1TS\n" "W1TSM\n" "W1TSP\n" "W1TUM\n" "W1TW\n" "W1TY\n" "W1UD\n" "W1UE\n" "W1UF\n" "W1UJ\n" "W1UK\n" "W1UN\n" "W1UR\n" "W1URV\n" "W1UU\n" "W1VB\n" "W1VD\n" "W1VE\n" "W1VG\n" "W1VIV\n" "W1VO\n" "W1VRY\n" "W1VV\n" "W1WAT\n" "W1WBB\n" "W1WC\n" "W1WCG\n" "W1WEF\n" "W1WH\n" "W1WIU\n" "W1WLJ\n" "W1WLW\n" "W1WN\n" "W1WQM\n" "W1WRA\n" "W1WSN\n" "W1WTG\n" "W1WV\n" "W1WWW\n" "W1XH\n" "W1XP\n" "W1XT\n" "W1XV\n" "W1XW\n" "W1XX\n" "W1YK\n" "W1YL/4\n" "W1YM\n" "W1YN\n" "W1YRC\n" "W1YY\n" "W1YY/7\n" "W1ZA\n" "W1ZC\n" "W1ZD/7\n" "W1ZE\n" "W1ZGZ\n" "W1ZK\n" "W1ZM\n" "W1ZN\n" "W1ZO\n" "W1ZR\n" "W1ZS\n" "W1ZT\n" "W1ZX\n" "W1ZYX\n" "W1ZZ\n" "W2/CT1FMX\n" "W2/CT1GIF\n" "W2/E78WW\n" "W2/PY2AAZ\n" "W2AAB\n" "W2AAS\n" "W2ACY\n" "W2ACY/5\n" "W2ACY/7\n" "W2AD\n" "W2AFC\n" "W2AIV\n" "W2AN\n" "W2ARP\n" "W2AT\n" "W2AU\n" "W2AW\n" "W2AYM\n" "W2BC\n" "W2BEE\n" "W2BSN\n" "W2BVH\n" "W2BXA\n" "W2BZR\n" "W2BZY\n" "W2CCC\n" "W2CDO\n" "W2CG\n" "W2CO\n" "W2CR\n" "W2CUA\n" "W2CVW\n" "W2CXX\n" "W2DCM\n" "W2DEC\n" "W2DKM\n" "W2DLL\n" "W2DLT\n" "W2DNR\n" "W2DPT\n" "W2DWW\n" "W2DX\n" "W2DXE\n" "W2DZO\n" "W2EB\n" "W2EF\n" "W2EFI\n" "W2EG\n" "W2EJG\n" "W2EL\n" "W2EN\n" "W2EQ\n" "W2ESX\n" "W2EUA\n" "W2EVL\n" "W2EZB\n" "W2FA\n" "W2FAL\n" "W2FB\n" "W2FBS\n" "W2FCP\n" "W2FDJ\n" "W2FE\n" "W2FF\n" "W2FJA\n" "W2FKF\n" "W2FKN\n" "W2FMB\n" "W2FP\n" "W2FT\n" "W2FU\n" "W2FUI\n" "W2FV\n" "W2GB\n" "W2GD\n" "W2GDJ\n" "W2GEZ\n" "W2GFF\n" "W2GG\n" "W2GGC\n" "W2GGI\n" "W2GHD\n" "W2GJ\n" "W2GLE\n" "W2GPS\n" "W2GS\n" "W2GW\n" "W2HA\n" "W2HCB\n" "W2HDI\n" "W2HIY\n" "W2HKE\n" "W2HLI\n" "W2HTI\n" "W2HTS\n" "W2ID\n" "W2IF\n" "W2II\n" "W2IJ\n" "W2IKN\n" "W2IMX\n" "W2IQK\n" "W2IRT\n" "W2IUC\n" "W2IW\n" "W2IZN\n" "W2JB\n" "W2JD\n" "W2JEK\n" "W2JGQ\n" "W2JJ\n" "W2JLK\n" "W2JSJ\n" "W2JTM\n" "W2JU\n" "W2JU/1\n" "W2KD\n" "W2KFV\n" "W2KIM\n" "W2KJ\n" "W2KKJ\n" "W2KKZ\n" "W2KLS\n" "W2KN\n" "W2KP\n" "W2KQ\n" "W2KU\n" "W2KV\n" "W2KW\n" "W2KXD\n" "W2LB\n" "W2LC\n" "W2LE\n" "W2LHL\n" "W2LJ\n" "W2LK\n" "W2LO\n" "W2LP\n" "W2LPL\n" "W2LRO\n" "W2LRT\n" "W2LU\n" "W2LYL\n" "W2MAT\n" "W2MC\n" "W2MEB\n" "W2MF\n" "W2MFT\n" "W2MKW\n" "W2ML\n" "W2MM\n" "W2MMD\n" "W2MN\n" "W2MSK\n" "W2MV\n" "W2MXL\n" "W2MYA\n" "W2MYC\n" "W2NBJ\n" "W2NGC\n" "W2NJ\n" "W2NLS\n" "W2NO\n" "W2NQ\n" "W2NQ/7\n" "W2NRA\n" "W2NRD\n" "W2NY\n" "W2OB\n" "W2OIB\n" "W2OKM\n" "W2OL\n" "W2OO\n" "W2OR\n" "W2OSR\n" "W2OX\n" "W2OZO\n" "W2PA\n" "W2PHD\n" "W2PI\n" "W2PJ\n" "W2PK\n" "W2PM\n" "W2PSU\n" "W2PV\n" "W2PWS\n" "W2QF\n" "W2QM\n" "W2QO\n" "W2QQ\n" "W2RA\n" "W2RBA\n" "W2RD\n" "W2RDX\n" "W2RE\n" "W2REH\n" "W2RI\n" "W2RIJ\n" "W2RIP\n" "W2RK\n" "W2RLB\n" "W2RLK\n" "W2RM\n" "W2RON\n" "W2RQ\n" "W2RR\n" "W2RRT\n" "W2RS\n" "W2RST\n" "W2RTY\n" "W2RU\n" "W2RX\n" "W2RZS\n" "W2SF\n" "W2SH\n" "W2SM\n" "W2SMS\n" "W2SNX\n" "W2SON\n" "W2SR\n" "W2TA\n" "W2TB\n" "W2TDZ\n" "W2TIN\n" "W2TN\n" "W2TX\n" "W2TZ\n" "W2UB\n" "W2UDT\n" "W2UGZ\n" "W2UI\n" "W2UJ\n" "W2UP\n" "W2UQ\n" "W2VI\n" "W2VJN\n" "W2VK\n" "W2VKT\n" "W2VO\n" "W2VP\n" "W2VQ\n" "W2VS\n" "W2VT\n" "W2VTV\n" "W2VU\n" "W2VUF\n" "W2VV\n" "W2WC\n" "W2WD\n" "W2WG\n" "W2WO\n" "W2WP\n" "W2XB\n" "W2XI\n" "W2XL\n" "W2XM\n" "W2XS\n" "W2XYZ\n" "W2YC\n" "W2YE\n" "W2YJ\n" "W2YK\n" "W2YP\n" "W2YR\n" "W2YSL\n" "W2YT\n" "W2YX\n" "W2ZDP\n" "W2ZEP\n" "W2ZI\n" "W2ZKE\n" "W2ZQ\n" "W3ABT\n" "W3ACO\n" "W3AG\n" "W3AMB\n" "W3ANJ\n" "W3AO\n" "W3AS\n" "W3ASA\n" "W3AT\n" "W3AU\n" "W3AZ\n" "W3AZD\n" "W3BBO\n" "W3BC\n" "W3BE\n" "W3BEE\n" "W3BG\n" "W3BGN\n" "W3BJ\n" "W3BMW\n" "W3BP\n" "W3BRG\n" "W3BTX\n" "W3BUI\n" "W3BW\n" "W3BZN\n" "W3CB\n" "W3CC\n" "W3CEI\n" "W3CF\n" "W3CG\n" "W3CP\n" "W3CQ\n" "W3CQB\n" "W3CQH\n" "W3CRZ\n" "W3CSA\n" "W3CWE\n" "W3DA\n" "W3DAD\n" "W3DB\n" "W3DF\n" "W3DM\n" "W3DNA\n" "W3DP\n" "W3DQ\n" "W3DQN\n" "W3DQT\n" "W3DRY\n" "W3DSX\n" "W3DX\n" "W3DYA\n" "W3DZH\n" "W3EA\n" "W3EC\n" "W3EDP\n" "W3EEE\n" "W3EEK\n" "W3EF\n" "W3EFE\n" "W3EH\n" "W3EHT\n" "W3EJM\n" "W3EKT\n" "W3EL\n" "W3EP\n" "W3EQ\n" "W3ERC\n" "W3ERE\n" "W3EST\n" "W3EW\n" "W3EX\n" "W3FAF\n" "W3FF\n" "W3FI\n" "W3FQ\n" "W3FT\n" "W3FV\n" "W3FVT\n" "W3FW\n" "W3GAT\n" "W3GC\n" "W3GEG\n" "W3GG\n" "W3GH\n" "W3GK\n" "W3GLH\n" "W3GM\n" "W3GNQ\n" "W3GQ\n" "W3GRF\n" "W3GT\n" "W3GYK\n" "W3HAL\n" "W3HBA\n" "W3HDH\n" "W3HHN\n" "W3HKK\n" "W3HMR\n" "W3HNK\n" "W3HP\n" "W3HWY\n" "W3HZU\n" "W3IDT\n" "W3IHY\n" "W3II\n" "W3IK\n" "W3IL\n" "W3IP\n" "W3IQ\n" "W3IUU\n" "W3IZ\n" "W3JAA\n" "W3JBS\n" "W3JK\n" "W3JXP\n" "W3KB\n" "W3KDR\n" "W3KL\n" "W3KLG\n" "W3KM\n" "W3KS\n" "W3KWH\n" "W3LD\n" "W3LDG\n" "W3LJ\n" "W3LL\n" "W3LPL\n" "W3LR\n" "W3LSW\n" "W3MAT\n" "W3MC\n" "W3MEL\n" "W3MF\n" "W3MIK\n" "W3ML\n" "W3MR\n" "W3MRL\n" "W3MWR\n" "W3NF\n" "W3NJ\n" "W3NO\n" "W3NR\n" "W3NR/4\n" "W3NV\n" "W3NX\n" "W3OA\n" "W3OC\n" "W3OD\n" "W3ODJ\n" "W3OE\n" "W3OFD\n" "W3OFT\n" "W3OK\n" "W3OKC\n" "W3OU\n" "W3OUF\n" "W3PA\n" "W3PD\n" "W3PF\n" "W3PFC\n" "W3PG\n" "W3PH\n" "W3PMV\n" "W3PN\n" "W3PO\n" "W3PP\n" "W3PRL\n" "W3PV\n" "W3PX\n" "W3QK\n" "W3RA\n" "W3RCP\n" "W3RI\n" "W3RJ\n" "W3RLO\n" "W3RT\n" "W3SB\n" "W3SD\n" "W3SE\n" "W3SFG\n" "W3SM\n" "W3SO\n" "W3SON\n" "W3SQ\n" "W3TB\n" "W3TB/VP9\n" "W3TC\n" "W3TD\n" "W3TDF\n" "W3TMC\n" "W3TMS\n" "W3TMZ\n" "W3TN\n" "W3TNU\n" "W3TS\n" "W3TUA\n" "W3TZ\n" "W3UA\n" "W3UL\n" "W3UM\n" "W3UR\n" "W3USA\n" "W3UTD\n" "W3VT\n" "W3WC\n" "W3WH\n" "W3WKX\n" "W3WL\n" "W3WN\n" "W3WOT\n" "W3WPA\n" "W3WRL\n" "W3WTJ\n" "W3WW\n" "W3XB\n" "W3XG\n" "W3XX\n" "W3XY\n" "W3YJ\n" "W3YR\n" "W3YX\n" "W3YY\n" "W3YZM\n" "W3ZA\n" "W3ZF\n" "W3ZGD\n" "W3ZI\n" "W3ZL\n" "W3ZQI\n" "W3ZV\n" "W3ZYF\n" "W3ZZ\n" "W3ZZX\n" "W4/AL7HW\n" "W4/G3LIK\n" "W4/OH2MQ\n" "W4AA\n" "W4AAA\n" "W4AAM\n" "W4ABE\n" "W4AEJ\n" "W4AG\n" "W4AGS\n" "W4AJT\n" "W4AK\n" "W4AKO\n" "W4ALA\n" "W4AMP\n" "W4AMS\n" "W4AMW\n" "W4AN\n" "W4ANR\n" "W4AO\n" "W4ARM\n" "W4AS\n" "W4ASE\n" "W4ATK\n" "W4ATL\n" "W4ATM\n" "W4AU\n" "W4AUB\n" "W4AV\n" "W4AVV\n" "W4AWF\n" "W4AZR\n" "W4BAB\n" "W4BAI\n" "W4BAK\n" "W4BCG\n" "W4BCU\n" "W4BFB\n" "W4BGH\n" "W4BHJ\n" "W4BK\n" "W4BKV\n" "W4BLA\n" "W4BNM\n" "W4BNO\n" "W4BQF\n" "W4BTZ\n" "W4BUE\n" "W4BUW\n" "W4BW\n" "W4BXI\n" "W4CA\n" "W4CB\n" "W4CCS\n" "W4CDM\n" "W4CFF\n" "W4CHA\n" "W4CI\n" "W4CID\n" "W4CK\n" "W4CKD\n" "W4CLJ\n" "W4CM\n" "W4CMM\n" "W4COH\n" "W4CPO\n" "W4CQZ\n" "W4CU\n" "W4CWA\n" "W4CZ\n" "W4CZU\n" "W4DAN\n" "W4DAS\n" "W4DAT\n" "W4DBT\n" "W4DD\n" "W4DDR\n" "W4DF\n" "W4DFW\n" "W4DHX\n" "W4DJ\n" "W4DK\n" "W4DKB\n" "W4DKR\n" "W4DKS\n" "W4DL\n" "W4DLZ\n" "W4DN\n" "W4DNN\n" "W4DNQ\n" "W4DNT\n" "W4DR\n" "W4DTA\n" "W4DU\n" "W4DUG\n" "W4DUP\n" "W4DVG\n" "W4DYR\n" "W4EA\n" "W4EBA\n" "W4EDE\n" "W4EE\n" "W4EEH\n" "W4EF\n" "W4EI\n" "W4EIB\n" "W4EIP\n" "W4EJG\n" "W4ELP\n" "W4EMM\n" "W4ENN\n" "W4ERD\n" "W4ET\n" "W4ETB\n" "W4EW\n" "W4EY\n" "W4FCR\n" "W4FCU\n" "W4FDA\n" "W4FHC\n" "W4FI\n" "W4FIN\n" "W4FOA\n" "W4FOT\n" "W4FRA\n" "W4FT\n" "W4FUN\n" "W4FW\n" "W4FXE\n" "W4FXO\n" "W4GAC\n" "W4GBU\n" "W4GD\n" "W4GHD\n" "W4GHS\n" "W4GHW\n" "W4GIW\n" "W4GKA\n" "W4GKF\n" "W4GKM\n" "W4GKP\n" "W4GKR\n" "W4GKT\n" "W4GM\n" "W4GMH\n" "W4GMS\n" "W4GNS\n" "W4GRC\n" "W4GRV\n" "W4GV\n" "W4GWL\n" "W4HAK\n" "W4HG\n" "W4HGW\n" "W4HIJ\n" "W4HJ\n" "W4HLD\n" "W4HLN\n" "W4HMV\n" "W4HOD\n" "W4HQF\n" "W4HRC\n" "W4HSA\n" "W4HVW\n" "W4HX\n" "W4HYT\n" "W4HZ\n" "W4HZD\n" "W4IA\n" "W4IBI\n" "W4ID\n" "W4IDW\n" "W4IEI\n" "W4IFG\n" "W4IHI\n" "W4II\n" "W4ILC\n" "W4IM\n" "W4IOW\n" "W4IR\n" "W4IS\n" "W4ISI\n" "W4IT\n" "W4IU\n" "W4IX\n" "W4IY\n" "W4JAM\n" "W4JCM\n" "W4JHC\n" "W4JHU\n" "W4JKC\n" "W4JLS\n" "W4JME\n" "W4JMJ\n" "W4JNH\n" "W4JO\n" "W4JS\n" "W4JSI\n" "W4JVN\n" "W4JVY\n" "W4KA\n" "W4KAZ\n" "W4KD\n" "W4KDB\n" "W4KES\n" "W4KFA\n" "W4KFC\n" "W4KFH\n" "W4KIL\n" "W4KLY\n" "W4KN\n" "W4KP\n" "W4KPA\n" "W4KPG\n" "W4KRN\n" "W4KS\n" "W4KTR\n" "W4KVS\n" "W4KVW\n" "W4KW\n" "W4KZ\n" "W4LC\n" "W4LCL\n" "W4LDA\n" "W4LDE\n" "W4LHS\n" "W4LIA\n" "W4LJM\n" "W4LK\n" "W4LLX\n" "W4LLY\n" "W4LM\n" "W4LOS\n" "W4LQ\n" "W4LSC\n" "W4LT\n" "W4LWW\n" "W4MAL\n" "W4MAY\n" "W4MBD\n" "W4MCQ\n" "W4MEL\n" "W4MIR\n" "W4MJA\n" "W4ML\n" "W4MLB\n" "W4MLN\n" "W4MOT\n" "W4MPS\n" "W4MQC\n" "W4MR\n" "W4MY\n" "W4MYA\n" "W4NA\n" "W4NB\n" "W4NBS\n" "W4NBY\n" "W4NC\n" "W4NE\n" "W4NF\n" "W4NHJ\n" "W4NI\n" "W4NJK\n" "W4NL\n" "W4NLX\n" "W4NML\n" "W4NP\n" "W4NPX\n" "W4NSC\n" "W4NT\n" "W4NTI\n" "W4NUN\n" "W4NX\n" "W4NZ\n" "W4OC\n" "W4OCO\n" "W4OEQ\n" "W4OG\n" "W4OGG\n" "W4OI\n" "W4OJC\n" "W4OM\n" "W4OTN\n" "W4OV\n" "W4OX\n" "W4OY\n" "W4PA\n" "W4PBG\n" "W4PBU\n" "W4PC\n" "W4PDX\n" "W4PFM\n" "W4PG\n" "W4PGC\n" "W4PGM\n" "W4PHS\n" "W4PJ\n" "W4PJP\n" "W4PJW\n" "W4PK\n" "W4PL\n" "W4PM\n" "W4PR\n" "W4PTY\n" "W4PUX\n" "W4PV\n" "W4PVC\n" "W4PVT\n" "W4PY\n" "W4QF\n" "W4QG\n" "W4QJ\n" "W4QK\n" "W4QM\n" "W4QN\n" "W4QNW\n" "W4QO\n" "W4RAA\n" "W4RBO\n" "W4REG\n" "W4REM\n" "W4RG\n" "W4RIS\n" "W4RJ\n" "W4RK\n" "W4RK/0\n" "W4RKC\n" "W4RKZ\n" "W4RL\n" "W4RM\n" "W4RNK\n" "W4RQ\n" "W4RRE\n" "W4RU\n" "W4RVN\n" "W4RVU\n" "W4RX\n" "W4RYW\n" "W4SAA\n" "W4SAR\n" "W4SEC\n" "W4SES\n" "W4SHG\n" "W4SIG\n" "W4SJV\n" "W4SK\n" "W4SKI\n" "W4SKW\n" "W4SLT\n" "W4SO\n" "W4SOH\n" "W4SQL\n" "W4STB\n" "W4SUL\n" "W4SVO\n" "W4SVP\n" "W4SYV\n" "W4TAA\n" "W4TBB\n" "W4TD\n" "W4TDC\n" "W4TGB\n" "W4TGT\n" "W4TIJ\n" "W4TJE\n" "W4TJW\n" "W4TKI\n" "W4TME\n" "W4TMN\n" "W4TMO\n" "W4TMR\n" "W4TO\n" "W4TQ\n" "W4TRL\n" "W4TSP\n" "W4TUG\n" "W4TUN\n" "W4TVG\n" "W4UAL\n" "W4UAS\n" "W4UAT\n" "W4UBC\n" "W4UCZ\n" "W4UDX\n" "W4UE\n" "W4UEB\n" "W4UEF\n" "W4UFO\n" "W4UH\n" "W4UHF\n" "W4UK\n" "W4UNP\n" "W4UOR\n" "W4UP\n" "W4USC\n" "W4UT\n" "W4UUM\n" "W4UVA\n" "W4UX\n" "W4VAB\n" "W4VDW\n" "W4VES\n" "W4VG\n" "W4VGI\n" "W4VGX\n" "W4VHH\n" "W4VIC\n" "W4VJ\n" "W4VKU\n" "W4VQ\n" "W4VR\n" "W4VV\n" "W4VX\n" "W4WAM\n" "W4WFX\n" "W4WKN\n" "W4WL\n" "W4WLF\n" "W4WNT\n" "W4WQ\n" "W4WR\n" "W4WRL\n" "W4WRS\n" "W4WS\n" "W4WSW\n" "W4WTB\n" "W4WVP\n" "W4WWK\n" "W4WWV\n" "W4WX\n" "W4XD\n" "W4XDX\n" "W4XE\n" "W4XO\n" "W4XQ\n" "W4XW\n" "W4YA\n" "W4YCC\n" "W4YCZ\n" "W4YD\n" "W4YDY\n" "W4YE\n" "W4YFJ\n" "W4YHD\n" "W4YK\n" "W4YOK\n" "W4YWX\n" "W4ZAN\n" "W4ZE\n" "W4ZEW\n" "W4ZF\n" "W4ZGR\n" "W4ZJ\n" "W4ZKE\n" "W4ZLU\n" "W4ZPH\n" "W4ZPR\n" "W4ZV\n" "W4ZW\n" "W4ZYT\n" "W5ABC\n" "W5ACB\n" "W5AFW\n" "W5AG\n" "W5AJ\n" "W5AJD\n" "W5AK\n" "W5AO\n" "W5AP\n" "W5APS\n" "W5AQ\n" "W5ASP\n" "W5AT\n" "W5AU\n" "W5AZ\n" "W5BAK\n" "W5BEN\n" "W5BN\n" "W5BOL\n" "W5BRW\n" "W5CDX\n" "W5CF\n" "W5CHA\n" "W5CJF\n" "W5CN\n" "W5CPT\n" "W5CRD\n" "W5CU\n" "W5CUB\n" "W5CWQ\n" "W5CX\n" "W5DAC\n" "W5DAW\n" "W5DC\n" "W5DET\n" "W5DEZ\n" "W5DJT\n" "W5DKK\n" "W5DNT\n" "W5DPR\n" "W5DQ\n" "W5DWA\n" "W5EEA\n" "W5EK\n" "W5EMC\n" "W5EN\n" "W5EPW\n" "W5ERX\n" "W5ESE\n" "W5ETJ\n" "W5EZI\n" "W5FBK\n" "W5FIT\n" "W5FO\n" "W5FP\n" "W5FPT\n" "W5FWR\n" "W5FYR\n" "W5FZ\n" "W5GA\n" "W5GAI\n" "W5GCX\n" "W5GFI\n" "W5GFR\n" "W5GG\n" "W5GGO\n" "W5GHZ\n" "W5GI\n" "W5GJ\n" "W5GLW\n" "W5GN\n" "W5GT\n" "W5GWH\n" "W5GXV\n" "W5GZ\n" "W5HD\n" "W5HFF\n" "W5HNK\n" "W5HNS\n" "W5HPQ\n" "W5HY\n" "W5HYN\n" "W5IF\n" "W5IFP\n" "W5IHN\n" "W5IO\n" "W5IV\n" "W5IZ\n" "W5JAK\n" "W5JAO\n" "W5JAW\n" "W5JAY\n" "W5JBO\n" "W5JBV\n" "W5JDF\n" "W5JE\n" "W5JJ\n" "W5JK\n" "W5JLF\n" "W5JLH\n" "W5JLR\n" "W5JMW\n" "W5JNL\n" "W5JNP\n" "W5JQ\n" "W5JR\n" "W5JRT\n" "W5JZ\n" "W5KD\n" "W5KDJ\n" "W5KEB\n" "W5KFT\n" "W5KI\n" "W5KK\n" "W5KNE\n" "W5KNN\n" "W5KQ\n" "W5KRB\n" "W5KU\n" "W5KV\n" "W5LD\n" "W5LE\n" "W5LEO\n" "W5LJW\n" "W5LS\n" "W5LUA\n" "W5LW\n" "W5LXG\n" "W5MDC\n" "W5MET\n" "W5MF\n" "W5MIC\n" "W5MIL\n" "W5MJ\n" "W5MK\n" "W5MMX\n" "W5MPC\n" "W5MSR\n" "W5MT\n" "W5MX\n" "W5NUT\n" "W5NWR\n" "W5NYC\n" "W5OB\n" "W5OJT\n" "W5OM\n" "W5OMU\n" "W5ONX\n" "W5OOO\n" "W5OU\n" "W5OV\n" "W5PDW\n" "W5PEM\n" "W5PET\n" "W5PF\n" "W5PG\n" "W5PJR\n" "W5PJW\n" "W5PKE\n" "W5PO\n" "W5PQ\n" "W5PR\n" "W5PUF\n" "W5QLF\n" "W5QM\n" "W5QP\n" "W5RAW\n" "W5RCD\n" "W5RDW\n" "W5RE\n" "W5RI\n" "W5RJA\n" "W5ROS\n" "W5RQ\n" "W5RRP\n" "W5RU\n" "W5RW\n" "W5RY\n" "W5RYA\n" "W5RZ\n" "W5SG\n" "W5SGL\n" "W5SL\n" "W5SQA\n" "W5SV\n" "W5SWV\n" "W5SXD\n" "W5TA\n" "W5TAF\n" "W5TCR\n" "W5TCX\n" "W5TFW\n" "W5THT\n" "W5TM\n" "W5TMC\n" "W5TO\n" "W5TT\n" "W5TTE\n" "W5TUU\n" "W5TV\n" "W5TX\n" "W5TZC\n" "W5UC\n" "W5UD\n" "W5UE\n" "W5UFA\n" "W5UHQ\n" "W5UHQ/W8\n" "W5UM\n" "W5UN\n" "W5UW\n" "W5VAN\n" "W5VDM\n" "W5VE\n" "W5VEK\n" "W5VFO\n" "W5VGR\n" "W5VQ\n" "W5VX\n" "W5VY\n" "W5VYH\n" "W5VZF\n" "W5VZM\n" "W5WEE\n" "W5WFF\n" "W5WLA\n" "W5WM\n" "W5WMU\n" "W5WP\n" "W5WRE\n" "W5WRJ\n" "W5WSS\n" "W5WT\n" "W5WW\n" "W5WY\n" "W5WZ\n" "W5XB\n" "W5XC\n" "W5XD\n" "W5XN\n" "W5XU\n" "W5XX\n" "W5XZ\n" "W5YAA\n" "W5YC\n" "W5YD\n" "W5YDM\n" "W5YM\n" "W5YZ\n" "W5ZAX\n" "W5ZD\n" "W5ZE\n" "W5ZG\n" "W5ZH\n" "W5ZL\n" "W5ZN\n" "W5ZO\n" "W5ZPA\n" "W5ZQ\n" "W5ZR\n" "W5ZZ\n" "W6/VK2IMM\n" "W6AAN\n" "W6ABM\n" "W6AEA\n" "W6AEQ\n" "W6AFA\n" "W6AH\n" "W6AHB\n" "W6AMM\n" "W6AMY\n" "W6AQ\n" "W6ARU\n" "W6ASP\n" "W6AT\n" "W6ATV\n" "W6AUG\n" "W6AWS\n" "W6AYC\n" "W6BCQ\n" "W6BH\n" "W6BJH\n" "W6BK\n" "W6BN\n" "W6BO\n" "W6BSY\n" "W6BT\n" "W6BVB\n" "W6BWG\n" "W6BX\n" "W6BXQ\n" "W6BXQ/4\n" "W6CCP\n" "W6CS\n" "W6CT\n" "W6CWM\n" "W6CYX\n" "W6CZ\n" "W6DAW\n" "W6DCC\n" "W6DDB\n" "W6DDD\n" "W6DDX\n" "W6DEP\n" "W6DF\n" "W6DNE\n" "W6DOC\n" "W6DOE\n" "W6DOJ\n" "W6DPD\n" "W6DR\n" "W6DRX\n" "W6DSG\n" "W6DVS\n" "W6DW\n" "W6DXO\n" "W6DXW\n" "W6EA\n" "W6EB\n" "W6EJJ\n" "W6EM\n" "W6EMC\n" "W6ENZ\n" "W6EOD\n" "W6ERN\n" "W6EU\n" "W6EUF\n" "W6FA\n" "W6FB\n" "W6FEL\n" "W6FFH\n" "W6FG\n" "W6FH\n" "W6FI\n" "W6FTA\n" "W6FUV\n" "W6GA\n" "W6GBG\n" "W6GEE\n" "W6GL\n" "W6GMP\n" "W6GMT\n" "W6GMU\n" "W6GR\n" "W6GRT\n" "W6GRV\n" "W6GS\n" "W6GU\n" "W6GV\n" "W6GX\n" "W6HF\n" "W6HFM\n" "W6HG\n" "W6HGF\n" "W6HH\n" "W6HN\n" "W6HTC\n" "W6HTY\n" "W6HYK\n" "W6IA\n" "W6IGK\n" "W6IHG\n" "W6IHG/4\n" "W6II\n" "W6IJ\n" "W6IMF\n" "W6IS\n" "W6ISO\n" "W6IXP\n" "W6IYS\n" "W6IZT\n" "W6JAZ\n" "W6JD\n" "W6JJW\n" "W6JK\n" "W6JL\n" "W6JNU\n" "W6JOD\n" "W6JPC\n" "W6JTI\n" "W6JV\n" "W6JVA\n" "W6JXH\n" "W6JYT\n" "W6JYT/7\n" "W6JZH\n" "W6KA\n" "W6KAT\n" "W6KC\n" "W6KGP\n" "W6KH\n" "W6KJ\n" "W6KK\n" "W6KPC\n" "W6KW\n" "W6KY\n" "W6LAB\n" "W6LAR\n" "W6LD\n" "W6LED\n" "W6LEN\n" "W6LFB\n" "W6LG\n" "W6LGS\n" "W6LOL\n" "W6LW\n" "W6LX\n" "W6MAC\n" "W6MCA\n" "W6MIL\n" "W6ML\n" "W6MM\n" "W6MQI\n" "W6MUB\n" "W6MVW\n" "W6MY\n" "W6MZQ\n" "W6ND\n" "W6NEK\n" "W6NF\n" "W6NIA\n" "W6NL\n" "W6NOW\n" "W6NPR\n" "W6NRJ\n" "W6NRW\n" "W6NV\n" "W6NWF\n" "W6NWS\n" "W6NY\n" "W6OAR\n" "W6OAT\n" "W6OES\n" "W6OEZ\n" "W6OFM\n" "W6ONV\n" "W6OOL\n" "W6OP\n" "W6OPO\n" "W6OQI\n" "W6OR\n" "W6ORD\n" "W6OSP\n" "W6OTC\n" "W6OUL\n" "W6OWI\n" "W6OZI\n" "W6PBF\n" "W6PDX\n" "W6PH\n" "W6PJ\n" "W6POK\n" "W6PSA\n" "W6PU\n" "W6PZ\n" "W6QE\n" "W6QJI\n" "W6QO\n" "W6QU\n" "W6QUV\n" "W6RA\n" "W6RAR\n" "W6RBA\n" "W6RDG\n" "W6RE\n" "W6RFF\n" "W6RFU\n" "W6RGG\n" "W6RJ\n" "W6RK\n" "W6RKC\n" "W6RLK\n" "W6RLL\n" "W6RLL/7\n" "W6RMC\n" "W6RO\n" "W6RQ\n" "W6RQR\n" "W6RS\n" "W6RSP\n" "W6RTW\n" "W6RYI\n" "W6SA\n" "W6SA/7\n" "W6SAI\n" "W6SC\n" "W6SGJ/7\n" "W6SIY\n" "W6SJ\n" "W6SL\n" "W6SQC\n" "W6SR\n" "W6SW\n" "W6SX\n" "W6SZG\n" "W6SZN\n" "W6TA\n" "W6TAD\n" "W6TAI\n" "W6TAN\n" "W6TC\n" "W6TH\n" "W6TJ\n" "W6TJI\n" "W6TK\n" "W6TKV\n" "W6TMD\n" "W6TQG\n" "W6TRI\n" "W6TRI/9\n" "W6TTF\n" "W6TYG\n" "W6UB\n" "W6UDO\n" "W6UE\n" "W6UFO\n" "W6UM\n" "W6UQZ\n" "W6UR\n" "W6USN\n" "W6UW\n" "W6UX\n" "W6VAR\n" "W6VM\n" "W6VNQ\n" "W6VNR\n" "W6VPH\n" "W6VW\n" "W6VX\n" "W6VY\n" "W6WAR\n" "W6WB\n" "W6WGC\n" "W6WQC\n" "W6WRT\n" "W6WVW\n" "W6XB\n" "W6XI\n" "W6XK\n" "W6XLR\n" "W6XR\n" "W6XR/2\n" "W6XTC\n" "W6XU\n" "W6XX\n" "W6YA\n" "W6YDE\n" "W6YI\n" "W6YRA\n" "W6YV\n" "W6YX\n" "W6YXY\n" "W6ZEN\n" "W6ZL\n" "W6ZO\n" "W6ZR\n" "W6ZZ\n" "W7/KL7WP\n" "W7AAD\n" "W7ABC\n" "W7ACD\n" "W7ACX\n" "W7AFR\n" "W7AIT\n" "W7AK\n" "W7AL\n" "W7AML\n" "W7APE\n" "W7AQK\n" "W7ASF\n" "W7ASF/VY2\n" "W7ASU\n" "W7AT\n" "W7AUM\n" "W7AWA\n" "W7AWH\n" "W7AY\n" "W7AYN\n" "W7BBC\n" "W7BBQ\n" "W7BCC\n" "W7BEB\n" "W7BEM\n" "W7BG\n" "W7BIA\n" "W7BJB\n" "W7BJN\n" "W7BPM\n" "W7BQ\n" "W7BRS\n" "W7BV\n" "W7CA\n" "W7CAR\n" "W7CB\n" "W7CEG\n" "W7CEL\n" "W7CF\n" "W7CFR\n" "W7CM\n" "W7CNA\n" "W7CNL\n" "W7COH\n" "W7COM\n" "W7CPI\n" "W7CT\n" "W7CV\n" "W7CWR\n" "W7CXA\n" "W7DAO\n" "W7DCS\n" "W7DDD\n" "W7DEV\n" "W7DFO\n" "W7DG\n" "W7DK\n" "W7DMV\n" "W7DO\n" "W7DOC\n" "W7DPW\n" "W7DR\n" "W7DRA\n" "W7DTG\n" "W7DX\n" "W7EB\n" "W7ED\n" "W7EJ\n" "W7EKG\n" "W7EPA\n" "W7ESE\n" "W7EW\n" "W7EWG\n" "W7EXC\n" "W7EYE\n" "W7FB\n" "W7FF\n" "W7FFD\n" "W7FG\n" "W7FM\n" "W7FP\n" "W7FYW\n" "W7GAX\n" "W7GB\n" "W7GCM\n" "W7GET\n" "W7GH\n" "W7GKF\n" "W7GKF/6\n" "W7GLC\n" "W7GM\n" "W7GMC\n" "W7GN\n" "W7GO\n" "W7GS\n" "W7GSV\n" "W7GT\n" "W7GTH\n" "W7GTO\n" "W7GVE\n" "W7HB\n" "W7HJ\n" "W7HJ/4\n" "W7HO\n" "W7HPW\n" "W7HQC\n" "W7HS\n" "W7HWR\n" "W7HX\n" "W7HY\n" "W7IAN\n" "W7ID\n" "W7IDG\n" "W7IIT\n" "W7IJ\n" "W7IJN\n" "W7IMP\n" "W7IMU\n" "W7IN\n" "W7IU\n" "W7IUO\n" "W7IUV\n" "W7IVM\n" "W7IWB\n" "W7IX\n" "W7IY\n" "W7IZ\n" "W7IZL\n" "W7JAF\n" "W7JAM\n" "W7JAZ\n" "W7JDE\n" "W7JEN\n" "W7JFF\n" "W7JI\n" "W7JIF\n" "W7JK\n" "W7JLC\n" "W7JPI\n" "W7JQ\n" "W7JVN\n" "W7JW\n" "W7JY\n" "W7KAM\n" "W7KAT\n" "W7KB\n" "W7KBI\n" "W7KBM\n" "W7KEY\n" "W7KF\n" "W7KFY\n" "W7KKR\n" "W7KL\n" "W7KPL\n" "W7KQ\n" "W7KQU\n" "W7KQZ\n" "W7KTE\n" "W7KU\n" "W7KVN\n" "W7KZO\n" "W7LB\n" "W7LBN\n" "W7LD\n" "W7LEA\n" "W7LEB\n" "W7LGG\n" "W7LKG\n" "W7LNG\n" "W7LOU\n" "W7LR\n" "W7LRD\n" "W7LX\n" "W7MAD\n" "W7MAL\n" "W7MAP/5\n" "W7MD\n" "W7MDK\n" "W7MEM\n" "W7MEW\n" "W7MEX\n" "W7MFC\n" "W7MJJ\n" "W7MJM\n" "W7MM\n" "W7MPZ\n" "W7MRC\n" "W7MS\n" "W7MTL\n" "W7NAT\n" "W7NBH\n" "W7ND\n" "W7NE\n" "W7NEE\n" "W7NER\n" "W7NNN\n" "W7NO\n" "W7NP\n" "W7NUW\n" "W7NYG\n" "W7OE\n" "W7OIL\n" "W7OM\n" "W7ON\n" "W7OR\n" "W7OTV\n" "W7OU\n" "W7OXB\n" "W7OYW\n" "W7PEB\n" "W7PN\n" "W7POE\n" "W7PP\n" "W7PP/8\n" "W7PRO\n" "W7PSK\n" "W7PT\n" "W7PU\n" "W7QC\n" "W7QDM\n" "W7QEK\n" "W7QF\n" "W7QL\n" "W7QN\n" "W7QQQ\n" "W7QR\n" "W7RF\n" "W7RG\n" "W7RH\n" "W7RIP\n" "W7RJ\n" "W7RM\n" "W7RN\n" "W7RNF\n" "W7ROE\n" "W7RPT\n" "W7RRS\n" "W7RT\n" "W7RTL\n" "W7RTO\n" "W7RTX\n" "W7RV\n" "W7RY\n" "W7SCT\n" "W7SE\n" "W7SID\n" "W7SMW\n" "W7SNH\n" "W7SO\n" "W7SSO\n" "W7SST\n" "W7SUR\n" "W7SV\n" "W7SW\n" "W7SWL\n" "W7SX\n" "W7TAE\n" "W7THS\n" "W7THY\n" "W7TJ\n" "W7TMD\n" "W7TMT\n" "W7TNS\n" "W7TSQ\n" "W7TVC\n" "W7TVF\n" "W7TYN\n" "W7UA\n" "W7UDG\n" "W7UG\n" "W7ULV\n" "W7UPF\n" "W7UQ\n" "W7URX\n" "W7USA\n" "W7UT\n" "W7UV\n" "W7VJ\n" "W7VMI\n" "W7VO\n" "W7VP\n" "W7VS\n" "W7VSM\n" "W7VT\n" "W7VV\n" "W7VXS\n" "W7VY\n" "W7WA\n" "W7WEC\n" "W7WES\n" "W7WH\n" "W7WHO\n" "W7WHY\n" "W7WLL\n" "W7WMO\n" "W7WOF\n" "W7WPR\n" "W7WVF\n" "W7WW\n" "W7WWA\n" "W7XA\n" "W7XC\n" "W7XG\n" "W7XI\n" "W7XU\n" "W7XZ\n" "W7YA\n" "W7YAQ\n" "W7YED\n" "W7YES\n" "W7YKM\n" "W7YKN\n" "W7YM\n" "W7YMS\n" "W7YOW\n" "W7YOZ\n" "W7YP\n" "W7YS\n" "W7YV\n" "W7YVK\n" "W7YW\n" "W7YY\n" "W7ZAC\n" "W7ZB\n" "W7ZBS\n" "W7ZEB\n" "W7ZI\n" "W7ZJ\n" "W7ZMD\n" "W7ZOI\n" "W7ZQ\n" "W7ZR\n" "W7ZRC\n" "W7ZT\n" "W8/T98T\n" "W8/W1AW\n" "W8AAX\n" "W8AB\n" "W8AEF\n" "W8AEF/7\n" "W8AF\n" "W8AJS\n" "W8AKS\n" "W8AN\n" "W8ARC\n" "W8ASA\n" "W8AV\n" "W8AZA\n" "W8BAQ\n" "W8BAR\n" "W8BBM\n" "W8BBQ\n" "W8BC\n" "W8BD\n" "W8BFX\n" "W8BG\n" "W8BI\n" "W8BLA\n" "W8BTD\n" "W8BXG\n" "W8BZY\n" "W8CAA\n" "W8CAM\n" "W8CAR\n" "W8CCW\n" "W8CD\n" "W8CDA\n" "W8CJQ\n" "W8CO\n" "W8CT\n" "W8CZN\n" "W8DA\n" "W8DBF\n" "W8DC\n" "W8DCH\n" "W8DCQ\n" "W8DD\n" "W8DEO\n" "W8DEP\n" "W8DF\n" "W8DHG\n" "W8DJ\n" "W8DLD\n" "W8DM\n" "W8DN\n" "W8DO\n" "W8DQ\n" "W8DRZ\n" "W8DSN\n" "W8DW\n" "W8DX\n" "W8DYY\n" "W8EDU\n" "W8EGI\n" "W8EH\n" "W8EII\n" "W8EJK\n" "W8EL\n" "W8EMI\n" "W8EMT\n" "W8ERD\n" "W8ERN\n" "W8FAX\n" "W8FDN\n" "W8FEM\n" "W8FGX\n" "W8FJ\n" "W8FN\n" "W8FR\n" "W8FT\n" "W8FV\n" "W8GBH\n" "W8GC\n" "W8GEX\n" "W8GF\n" "W8GG\n" "W8GJ\n" "W8GNM\n" "W8GNM/8\n" "W8GOC\n" "W8GP\n" "W8GR\n" "W8GRP\n" "W8GTS\n" "W8GXB\n" "W8GXT\n" "W8HC\n" "W8HCS\n" "W8HF\n" "W8HFY\n" "W8HGH\n" "W8HMK\n" "W8HOM\n" "W8HPJ\n" "W8HW\n" "W8ID\n" "W8IDM\n" "W8ILC\n" "W8IM\n" "W8IQ\n" "W8ISZ\n" "W8IVF\n" "W8IW\n" "W8IZC\n" "W8JA\n" "W8JE\n" "W8JGU\n" "W8JH\n" "W8JI\n" "W8JJ\n" "W8JMF\n" "W8JRK\n" "W8JTM\n" "W8JTW\n" "W8JV\n" "W8JWA\n" "W8JWN\n" "W8JY\n" "W8KA\n" "W8KEN\n" "W8KER\n" "W8KHP\n" "W8KHP/4\n" "W8KJ\n" "W8KJP\n" "W8KNO\n" "W8KQE\n" "W8KR\n" "W8KRZ\n" "W8KTQ\n" "W8KV\n" "W8KX\n" "W8KZP\n" "W8LBZ\n" "W8LEW\n" "W8LGJ\n" "W8LGX\n" "W8LJB\n" "W8LKG\n" "W8LKU\n" "W8LM\n" "W8LO\n" "W8LQ\n" "W8LR\n" "W8LRL\n" "W8LRO\n" "W8LSV\n" "W8LU\n" "W8LVN\n" "W8LYJ\n" "W8MC\n" "W8MET\n" "W8MHW\n" "W8MIS\n" "W8MJ\n" "W8MKH\n" "W8MKR\n" "W8MLO\n" "W8MP\n" "W8MSK\n" "W8NA\n" "W8NBG\n" "W8NCN\n" "W8NDG\n" "W8NET\n" "W8NF\n" "W8NGA\n" "W8NIC\n" "W8NJR\n" "W8NNC\n" "W8NYK\n" "W8OEY\n" "W8OH\n" "W8OHT\n" "W8OI\n" "W8OKN\n" "W8OP\n" "W8OTY\n" "W8OU\n" "W8OV\n" "W8OWS\n" "W8OX\n" "W8OY/YO\n" "W8PBO\n" "W8PC\n" "W8PDI\n" "W8PEN\n" "W8PG\n" "W8PGW\n" "W8PI\n" "W8PN\n" "W8POF\n" "W8POF/4\n" "W8PT\n" "W8PU\n" "W8PWQ\n" "W8QGP\n" "W8QID\n" "W8QQC\n" "W8QQQ\n" "W8QW\n" "W8QY\n" "W8QZA\n" "W8RA\n" "W8RC\n" "W8RCY\n" "W8REG\n" "W8REW\n" "W8RHM\n" "W8RID\n" "W8RIT\n" "W8RJL\n" "W8RJM\n" "W8RSI\n" "W8RT\n" "W8RU\n" "W8SAN\n" "W8SAX\n" "W8SF\n" "W8SH\n" "W8SJ\n" "W8SOO\n" "W8SQ\n" "W8SY\n" "W8SYD\n" "W8SYR\n" "W8TE\n" "W8TIV\n" "W8TJ\n" "W8TK\n" "W8TM\n" "W8TN\n" "W8TOM\n" "W8TOP\n" "W8TRN\n" "W8TU\n" "W8TVQ\n" "W8TWA\n" "W8TZ\n" "W8UD\n" "W8UDX\n" "W8UDY\n" "W8UE\n" "W8UI\n" "W8UMD\n" "W8UMH\n" "W8UV\n" "W8UVZ\n" "W8VCK\n" "W8VE\n" "W8VI\n" "W8VM\n" "W8VO\n" "W8VS\n" "W8VSK\n" "W8VVE\n" "W8VVG\n" "W8VXH\n" "W8WA\n" "W8WCQ\n" "W8WD\n" "W8WEJ\n" "W8WFN\n" "W8WG\n" "W8WGT\n" "W8WH\n" "W8WHG\n" "W8WOJ\n" "W8WTL\n" "W8WTS\n" "W8WVM\n" "W8WVU\n" "W8WWC\n" "W8WY\n" "W8XC\n" "W8XD\n" "W8XP\n" "W8XR\n" "W8XY\n" "W8XZ\n" "W8YMO\n" "W8YU\n" "W8YY\n" "W8ZA\n" "W8ZC\n" "W8ZD\n" "W8ZHO\n" "W8ZM\n" "W8ZN\n" "W8ZR\n" "W8ZU\n" "W8ZZU\n" "W9/DM5TI\n" "W9/NP2I\n" "W9/UY5LW\n" "W9AAC\n" "W9ACE\n" "W9AEB\n" "W9AEM\n" "W9AKS\n" "W9AMX\n" "W9ANT\n" "W9APE\n" "W9AQ\n" "W9ATU\n" "W9AV\n" "W9AVM\n" "W9AZ\n" "W9BDN\n" "W9BF\n" "W9BGA\n" "W9BGJ\n" "W9BGX\n" "W9BHI\n" "W9BJ\n" "W9BK\n" "W9BLI\n" "W9BN\n" "W9BNO\n" "W9BOK\n" "W9BP\n" "W9BR\n" "W9BS\n" "W9BWR\n" "W9CA\n" "W9CC\n" "W9CF\n" "W9CJO\n" "W9CL\n" "W9CO\n" "W9COD\n" "W9CPI\n" "W9CPV\n" "W9CSX\n" "W9CYI\n" "W9DC\n" "W9DCO\n" "W9DEW\n" "W9DF\n" "W9DGI\n" "W9DHD\n" "W9DHQ\n" "W9DKB\n" "W9DKL\n" "W9DO\n" "W9DX\n" "W9DY\n" "W9DZ\n" "W9EAU\n" "W9EBK\n" "W9EBO\n" "W9EBY\n" "W9EEU\n" "W9EJB\n" "W9EVT\n" "W9EWZ\n" "W9EXY\n" "W9EYE\n" "W9FAM\n" "W9FBC\n" "W9FF\n" "W9FHA\n" "W9FPZ\n" "W9FR\n" "W9FW\n" "W9FX\n" "W9FY\n" "W9GD\n" "W9GE\n" "W9GG\n" "W9GIG\n" "W9GJG\n" "W9GKA\n" "W9GLG\n" "W9GM\n" "W9GMT\n" "W9GRS\n" "W9GT\n" "W9GVW\n" "W9HA\n" "W9HAK\n" "W9HB\n" "W9HHX\n" "W9HLY\n" "W9HM\n" "W9HPJ\n" "W9HR\n" "W9HT\n" "W9HW\n" "W9IIX\n" "W9IKU\n" "W9IL\n" "W9ILF\n" "W9ILY\n" "W9ILY/0\n" "W9ILY/9\n" "W9IND\n" "W9IP\n" "W9ITT\n" "W9ITV\n" "W9IU\n" "W9IW\n" "W9JA\n" "W9JAZ\n" "W9JDJ\n" "W9JGC\n" "W9JGV\n" "W9JH\n" "W9JI\n" "W9JIU\n" "W9JKF\n" "W9JL\n" "W9JPM\n" "W9JTL\n" "W9JUV\n" "W9JWC\n" "W9JXN\n" "W9KAY/5\n" "W9KB\n" "W9KHH\n" "W9KNI\n" "W9KQD\n" "W9KVR\n" "W9KXI\n" "W9KXQ\n" "W9KXT\n" "W9KY\n" "W9LC\n" "W9LD\n" "W9LDO\n" "W9LHG\n" "W9LIZ\n" "W9LL\n" "W9LLC\n" "W9LNQ\n" "W9LO\n" "W9LP\n" "W9LR\n" "W9LU\n" "W9LW\n" "W9LX\n" "W9LZE\n" "W9MAF\n" "W9MAK\n" "W9MBT\n" "W9MDG\n" "W9MG\n" "W9MHB\n" "W9MIM\n" "W9MK\n" "W9MM\n" "W9MMZ\n" "W9MOF\n" "W9MS\n" "W9MSE\n" "W9MSL\n" "W9MU\n" "W9MWV\n" "W9NG\n" "W9NGA\n" "W9NJY\n" "W9NPI\n" "W9NRC\n" "W9NTO\n" "W9NVK\n" "W9NWY\n" "W9NX\n" "W9NY\n" "W9OA\n" "W9OA/9\n" "W9OBQ\n" "W9OD\n" "W9OF\n" "W9OF/4\n" "W9OL\n" "W9OO\n" "W9OOT\n" "W9OP\n" "W9OSI\n" "W9OY\n" "W9PDS\n" "W9PH\n" "W9PIP\n" "W9PL\n" "W9PL/7\n" "W9PN\n" "W9PNP\n" "W9POC\n" "W9PRD\n" "W9PSE\n" "W9PT\n" "W9PZT\n" "W9QB\n" "W9QL\n" "W9QO\n" "W9QR\n" "W9QS\n" "W9RAM\n" "W9RC\n" "W9RE\n" "W9RGB\n" "W9RIG\n" "W9RIT\n" "W9RLL\n" "W9RM\n" "W9RN\n" "W9RNY\n" "W9ROB\n" "W9ROG\n" "W9RPM\n" "W9RR\n" "W9RSR\n" "W9RTB\n" "W9RUK\n" "W9RVR\n" "W9RWS\n" "W9SE\n" "W9SN\n" "W9SR\n" "W9SSS\n" "W9STG\n" "W9SU\n" "W9SUN\n" "W9SUS\n" "W9SZ\n" "W9TB\n" "W9THD\n" "W9TMW\n" "W9TN\n" "W9TRF\n" "W9TT\n" "W9TTT\n" "W9TTY\n" "W9TY\n" "W9UAL\n" "W9UBP\n" "W9UBT\n" "W9UCW\n" "W9UD\n" "W9UIH\n" "W9UK\n" "W9UM\n" "W9UUM\n" "W9UX\n" "W9VA\n" "W9VHL\n" "W9VNE\n" "W9VOX\n" "W9VQ\n" "W9VSA\n" "W9VT\n" "W9WE\n" "W9WGV\n" "W9WI\n" "W9WJ\n" "W9WLC\n" "W9WLX\n" "W9WS\n" "W9WTF\n" "W9XA\n" "W9XG\n" "W9XN\n" "W9XQ\n" "W9XS\n" "W9XT\n" "W9XX\n" "W9XY\n" "W9YA\n" "W9YK\n" "W9YNI\n" "W9YS\n" "W9YSX\n" "W9YT\n" "W9YYG\n" "W9YZG\n" "W9ZA\n" "W9ZJ\n" "W9ZJX\n" "W9ZR\n" "W9ZRX\n" "W9ZSJ\n" "W9ZT\n" "W9ZV\n" "WA0AAM\n" "WA0AAR\n" "WA0ACF\n" "WA0ASM\n" "WA0AUX\n" "WA0AVL\n" "WA0BJR\n" "WA0BNX\n" "WA0BZA\n" "WA0CED\n" "WA0CTZ\n" "WA0DDC\n" "WA0DEL\n" "WA0DKC\n" "WA0DYJ\n" "WA0EBZ\n" "WA0F\n" "WA0FAA\n" "WA0GNC\n" "WA0GUD\n" "WA0HHX\n" "WA0IAF\n" "WA0IIH\n" "WA0JCO\n" "WA0JH\n" "WA0JTL\n" "WA0KAQ\n" "WA0KDS\n" "WA0KLC\n" "WA0KNP\n" "WA0L\n" "WA0LJM\n" "WA0LPV\n" "WA0LRE\n" "WA0MHJ\n" "WA0N\n" "WA0OFM\n" "WA0OTO\n" "WA0PNB\n" "WA0QVC\n" "WA0RAD\n" "WA0RBW\n" "WA0ROI\n" "WA0RSX\n" "WA0SKN\n" "WA0SXV\n" "WA0USA\n" "WA0VPJ\n" "WA0WDV\n" "WA0WOV\n" "WA0WWW\n" "WA0YVH\n" "WA1APX\n" "WA1APX/8\n" "WA1AR\n" "WA1AWJ\n" "WA1BXY\n" "WA1DBR\n" "WA1DD\n" "WA1DJK\n" "WA1DRQ\n" "WA1EAJ\n" "WA1EHK\n" "WA1EOX\n" "WA1ESO\n" "WA1FCN\n" "WA1FOK\n" "WA1FVJ\n" "WA1FXK\n" "WA1GON\n" "WA1GOS\n" "WA1GS\n" "WA1HFF\n" "WA1IIE\n" "WA1IVN\n" "WA1JAE\n" "WA1JG\n" "WA1JMP\n" "WA1JWJ\n" "WA1KBE\n" "WA1KKM\n" "WA1LMC\n" "WA1LWS\n" "WA1MXT\n" "WA1NGH\n" "WA1NRQ\n" "WA1NTA\n" "WA1NVV\n" "WA1OLV\n" "WA1OUI\n" "WA1PMA\n" "WA1PMA/4\n" "WA1QDP\n" "WA1QYM\n" "WA1RCH\n" "WA1RF\n" "WA1RKS\n" "WA1RUS\n" "WA1SEO\n" "WA1SKQ\n" "WA1SYH\n" "WA1T\n" "WA1T/3\n" "WA1TAC\n" "WA1TDQ\n" "WA1TTL\n" "WA1UJU\n" "WA1VIL\n" "WA1VQY\n" "WA1YZN\n" "WA1Z\n" "WA1ZHM\n" "WA1ZJE\n" "WA1ZYX\n" "WA2AAW\n" "WA2ALY\n" "WA2AOG\n" "WA2ART\n" "WA2ASQ\n" "WA2ASQ/4\n" "WA2AXD\n" "WA2BAH\n" "WA2BCK\n" "WA2BEV\n" "WA2BJN\n" "WA2BKN\n" "WA2BMH\n" "WA2BSW\n" "WA2C\n" "WA2CAM\n" "WA2CG\n" "WA2CLP\n" "WA2DKJ\n" "WA2DX\n" "WA2EAJ\n" "WA2EGT\n" "WA2EKW\n" "WA2EMF\n" "WA2EQF\n" "WA2ETU\n" "WA2EXZ\n" "WA2FAX\n" "WA2FBN\n" "WA2FGK\n" "WA2GBF\n" "WA2GMT\n" "WA2GSX\n" "WA2HMM\n" "WA2HOM\n" "WA2HZO\n" "WA2IIE\n" "WA2JJQ\n" "WA2JJV\n" "WA2JLW\n" "WA2JQK\n" "WA2JVI\n" "WA2KBZ\n" "WA2KFS\n" "WA2KHO\n" "WA2LOT\n" "WA2LTH\n" "WA2LUY\n" "WA2LXE\n" "WA2MAV\n" "WA2MBP\n" "WA2MCR\n" "WA2MIS\n" "WA2MKM\n" "WA2NHA\n" "WA2NLL\n" "WA2NYY\n" "WA2OAX\n" "WA2OCG\n" "WA2OOB\n" "WA2PCS\n" "WA2PJZ\n" "WA2PNI\n" "WA2PYX\n" "WA2QBJ\n" "WA2QQF\n" "WA2RAS\n" "WA2RKO\n" "WA2RNY\n" "WA2RSX\n" "WA2RXS\n" "WA2RY\n" "WA2RZJ\n" "WA2SCB\n" "WA2SEI\n" "WA2SON\n" "WA2TDC\n" "WA2TMC\n" "WA2TPU\n" "WA2TVS\n" "WA2UAH\n" "WA2UBK\n" "WA2UNP\n" "WA2UPK\n" "WA2USA\n" "WA2USA/2\n" "WA2VCQ\n" "WA2VJL\n" "WA2VMO\n" "WA2VQF\n" "WA2VQV\n" "WA2VQW\n" "WA2VUN\n" "WA2VUY\n" "WA2VYA\n" "WA2VZQ\n" "WA2WGF\n" "WA2WMR\n" "WA2WZU\n" "WA2YSJ\n" "WA2ZOU\n" "WA2ZSK\n" "WA3A\n" "WA3AAN\n" "WA3AER\n" "WA3AFS\n" "WA3BTA\n" "WA3C\n" "WA3CUC\n" "WA3EKL\n" "WA3ELQ\n" "WA3EOQ\n" "WA3EQJ\n" "WA3ERQ\n" "WA3ETD\n" "WA3EYL\n" "WA3EZN\n" "WA3FAE\n" "WA3FRP\n" "WA3G\n" "WA3GFB\n" "WA3GFM\n" "WA3GGM\n" "WA3GNW\n" "WA3GYW\n" "WA3HAE\n" "WA3HDQ\n" "WA3HJJ\n" "WA3HJR\n" "WA3HOL\n" "WA3IDQ\n" "WA3IIA\n" "WA3IUO\n" "WA3IVV\n" "WA3JAT\n" "WA3JJT\n" "WA3JMV\n" "WA3KCP\n" "WA3KVN\n" "WA3KYY\n" "WA3LCO\n" "WA3LKT\n" "WA3LTJ\n" "WA3MKB\n" "WA3MKC\n" "WA3N\n" "WA3O\n" "WA3OFC\n" "WA3OFR\n" "WA3PAK\n" "WA3PBL\n" "WA3QMJ\n" "WA3QWT\n" "WA3RCA\n" "WA3RGH\n" "WA3RHW\n" "WA3RNC\n" "WA3RP\n" "WA3SES\n" "WA3SGZ\n" "WA3SKQ\n" "WA3SLN\n" "WA3SWJ\n" "WA3SXX\n" "WA3TRE\n" "WA3UCR\n" "WA3UTC\n" "WA3UYJ\n" "WA3V\n" "WA3WLH\n" "WA3WOM\n" "WA3YGQ\n" "WA3YMM\n" "WA3YQK\n" "WA3YUR\n" "WA3ZIC\n" "WA3ZII\n" "WA3ZMH\n" "WA3ZTR\n" "WA3ZWC\n" "WA4AN\n" "WA4APB\n" "WA4APG\n" "WA4ASJ\n" "WA4AU\n" "WA4AUL\n" "WA4BPJ\n" "WA4BUE\n" "WA4BVO\n" "WA4CAX\n" "WA4CEM\n" "WA4CGF\n" "WA4CM\n" "WA4CQG\n" "WA4CXI\n" "WA4DCL\n" "WA4DOU\n" "WA4DRM\n" "WA4DT\n" "WA4DX\n" "WA4ED\n" "WA4EEZ\n" "WA4EMU\n" "WA4ERU\n" "WA4EUL\n" "WA4FFW\n" "WA4FMA\n" "WA4FXT\n" "WA4FXX\n" "WA4GBU\n" "WA4GGK\n" "WA4GLH\n" "WA4GP\n" "WA4GQG\n" "WA4GZK\n" "WA4HBK\n" "WA4IAX\n" "WA4IIF\n" "WA4III\n" "WA4JA\n" "WA4JQS\n" "WA4JS\n" "WA4JUK\n" "WA4KPU\n" "WA4KSO\n" "WA4KXX\n" "WA4KYI\n" "WA4LKD\n" "WA4LOX\n" "WA4LR\n" "WA4MAE\n" "WA4MDP\n" "WA4MLD\n" "WA4MYO\n" "WA4NEL\n" "WA4NUF\n" "WA4NVE\n" "WA4OAB\n" "WA4OSD\n" "WA4OTD\n" "WA4PAM\n" "WA4PGM\n" "WA4PXP\n" "WA4RG\n" "WA4RTE\n" "WA4SM\n" "WA4SQM\n" "WA4SSG\n" "WA4STO\n" "WA4TII\n" "WA4TMJ\n" "WA4UIH\n" "WA4VKW\n" "WA4VMC\n" "WA4VVO\n" "WA4WKL\n" "WA4WLI\n" "WA4WQK\n" "WA4WTG\n" "WA4YBP\n" "WA4YJB\n" "WA4YYM\n" "WA4ZKF\n" "WA4ZNY\n" "WA4ZSQ\n" "WA4ZXV\n" "WA5ABR\n" "WA5AU\n" "WA5BDU\n" "WA5BKN\n" "WA5FWC\n" "WA5IEX\n" "WA5IYX\n" "WA5JAN\n" "WA5JEC\n" "WA5JUM\n" "WA5KGW\n" "WA5KMA\n" "WA5KSC\n" "WA5KTC\n" "WA5KWS\n" "WA5LFD\n" "WA5LLX\n" "WA5LOU\n" "WA5MS\n" "WA5MUF\n" "WA5NFC\n" "WA5NNO\n" "WA5NNV\n" "WA5NOM\n" "WA5OYU\n" "WA5PFJ\n" "WA5POK\n" "WA5RHG\n" "WA5RML\n" "WA5RNV\n" "WA5SOG\n" "WA5SPP\n" "WA5SWN\n" "WA5SYU\n" "WA5TRX\n" "WA5TYJ\n" "WA5UA\n" "WA5VGI\n" "WA5VQM\n" "WA5VRE\n" "WA5VSK\n" "WA5WFE\n" "WA5Y\n" "WA5YNB\n" "WA5ZKO\n" "WA5ZUP\n" "WA6AEE\n" "WA6APQ\n" "WA6BAI\n" "WA6BOB\n" "WA6CDO\n" "WA6CDR\n" "WA6CIE\n" "WA6DIL\n" "WA6ES\n" "WA6F\n" "WA6FFJ\n" "WA6FGV\n" "WA6GFR\n" "WA6HFP\n" "WA6HXD\n" "WA6HXW\n" "WA6HZY\n" "WA6IOQ\n" "WA6JJB\n" "WA6JRZ\n" "WA6KHK\n" "WA6KYR\n" "WA6L\n" "WA6LD\n" "WA6LDI\n" "WA6LIE\n" "WA6MEM\n" "WA6MQF\n" "WA6NHD\n" "WA6NHO\n" "WA6NOL\n" "WA6NUO\n" "WA6O\n" "WA6OJM\n" "WA6OWM\n" "WA6PHJ\n" "WA6PSI\n" "WA6PWP\n" "WA6PY\n" "WA6QHD\n" "WA6RIK\n" "WA6RSV\n" "WA6RUS\n" "WA6RZ\n" "WA6SCW\n" "WA6SJQ\n" "WA6ST\n" "WA6TLA\n" "WA6TLL\n" "WA6UDR\n" "WA6URY\n" "WA6UYO\n" "WA6WPG\n" "WA6WXD\n" "WA6YEE\n" "WA6YKU\n" "WA6ZTY\n" "WA7AA\n" "WA7ADK\n" "WA7AJ\n" "WA7AR\n" "WA7AVL\n" "WA7BME\n" "WA7CC\n" "WA7DX\n" "WA7ETH\n" "WA7HDI\n" "WA7HQD\n" "WA7HR\n" "WA7IPM\n" "WA7ITZ\n" "WA7JHQ\n" "WA7JT\n" "WA7JTM\n" "WA7KYI\n" "WA7LFJ\n" "WA7LK\n" "WA7LNC\n" "WA7LNW\n" "WA7LT\n" "WA7LZC\n" "WA7MMM\n" "WA7NB\n" "WA7NCL\n" "WA7ND\n" "WA7NPX\n" "WA7NUH\n" "WA7NWL\n" "WA7OB\n" "WA7OET\n" "WA7OFH\n" "WA7OJY\n" "WA7OZT\n" "WA7PRC\n" ; const char txt_master6[26674] = "WA7PVE\n" "WA7QCC\n" "WA7QQI\n" "WA7RCT\n" "WA7RF\n" "WA7RZW\n" "WA7SHP\n" "WA7SRZ\n" "WA7TOF\n" "WA7U\n" "WA7UR\n" "WA7UTM\n" "WA7WNJ\n" "WA7YAZ\n" "WA8ADA\n" "WA8ALV\n" "WA8BMY\n" "WA8CLT\n" "WA8DXB\n" "WA8EFK\n" "WA8FRD\n" "WA8FZZ\n" "WA8HSB\n" "WA8ICK\n" "WA8IHI\n" "WA8IQF\n" "WA8JBG\n" "WA8JOC\n" "WA8KAN\n" "WA8KAZ\n" "WA8KQQ\n" "WA8KSS\n" "WA8LOW\n" "WA8MCD\n" "WA8MGD\n" "WA8MTI\n" "WA8MVU\n" "WA8NJR\n" "WA8NLX\n" "WA8NSS\n" "WA8OIF\n" "WA8OJR\n" "WA8OLD\n" "WA8PGE\n" "WA8QNN\n" "WA8QYJ\n" "WA8QZS\n" "WA8RCK\n" "WA8RCN\n" "WA8REI\n" "WA8RPK\n" "WA8RRA\n" "WA8SDA\n" "WA8SDF\n" "WA8SHP\n" "WA8SSQ\n" "WA8TJL\n" "WA8TM\n" "WA8TWM\n" "WA8UEG\n" "WA8UMT\n" "WA8VSJ\n" "WA8VTD\n" "WA8VVG\n" "WA8WV\n" "WA8Y\n" "WA8YUZ\n" "WA8YVF\n" "WA8YXA\n" "WA8ZBT\n" "WA8ZDL\n" "WA9ACO\n" "WA9AFM\n" "WA9AFM/5\n" "WA9APL\n" "WA9AQN\n" "WA9AQQ\n" "WA9BLP\n" "WA9BXB\n" "WA9C\n" "WA9CWX\n" "WA9DKO\n" "WA9ETW\n" "WA9FBC\n" "WA9FET\n" "WA9FRU\n" "WA9FTU\n" "WA9FWT\n" "WA9HUP\n" "WA9HUX\n" "WA9IVH\n" "WA9JHH\n" "WA9JLV\n" "WA9JM\n" "WA9LEY\n" "WA9LJK\n" "WA9LKZ\n" "WA9LT\n" "WA9LYZ\n" "WA9MXQ\n" "WA9NBU\n" "WA9NJR\n" "WA9OEC\n" "WA9OUE\n" "WA9PWP\n" "WA9QNN\n" "WA9RVM\n" "WA9S\n" "WA9TOP\n" "WA9TZE\n" "WA9U\n" "WA9URF\n" "WA9VEE\n" "WA9WJJ\n" "WA9WSJ\n" "WA9YTQ\n" "WA9YYY\n" "WA9Z\n" "WA9ZBV\n" "WA9ZBW\n" "WA9ZES\n" "WA9ZPC\n" "WA9ZPL\n" "WA9ZWL/6\n" "WB0AJS\n" "WB0B\n" "WB0BLV\n" "WB0CFF\n" "WB0CJB\n" "WB0DAS\n" "WB0DJX\n" "WB0DUG\n" "WB0FNZ\n" "WB0GAG\n" "WB0GAZ\n" "WB0GBI\n" "WB0GGM\n" "WB0GKH\n" "WB0HHM\n" "WB0IEL\n" "WB0IOL\n" "WB0IWG\n" "WB0IZO\n" "WB0JDQ\n" "WB0KFM\n" "WB0KGN\n" "WB0KWJ\n" "WB0M\n" "WB0MCO\n" "WB0MNW\n" "WB0N\n" "WB0POH\n" "WB0PYF\n" "WB0QIR\n" "WB0QLU\n" "WB0QVB\n" "WB0RSH\n" "WB0RUR\n" "WB0SMS\n" "WB0SND\n" "WB0SOK\n" "WB0TEV\n" "WB0TRA\n" "WB0TSR\n" "WB0TUA\n" "WB0TVY\n" "WB0U\n" "WB0UKI\n" "WB0UKL\n" "WB0ULX\n" "WB0VAK\n" "WB0VBW\n" "WB0VHF\n" "WB0VHW\n" "WB0WIV\n" "WB0WKQ\n" "WB0WQS\n" "WB0YEA\n" "WB0YJT\n" "WB0YRM\n" "WB0YYE\n" "WB0ZNY\n" "WB1ABQ\n" "WB1ADR\n" "WB1AEL\n" "WB1COV\n" "WB1DX\n" "WB1EDI\n" "WB1FJH\n" "WB1FLA\n" "WB1FPA\n" "WB1FQW\n" "WB1FVY\n" "WB1GCM\n" "WB1GQR\n" "WB1HBQ\n" "WB1HJS\n" "WB1I\n" "WB1Z\n" "WB2AA\n" "WB2ABD\n" "WB2AIV\n" "WB2AMU\n" "WB2AQC\n" "WB2ART\n" "WB2ATZ\n" "WB2AZE\n" "WB2BTO\n" "WB2COY\n" "WB2DFC\n" "WB2ELD\n" "WB2FUE\n" "WB2GGM\n" "WB2GHC\n" "WB2HJV\n" "WB2HTO\n" "WB2HVF\n" "WB2IVN\n" "WB2JEP\n" "WB2JFP\n" "WB2JGD\n" "WB2JNA\n" "WB2JSM\n" "WB2JUF\n" "WB2KAO\n" "WB2KEC\n" "WB2KHE\n" "WB2KLD\n" "WB2KSK\n" "WB2KWF\n" "WB2L\n" "WB2LEB\n" "WB2MIC\n" "WB2MRX\n" "WB2MXJ\n" "WB2NJN\n" "WB2OFV\n" "WB2OQQ\n" "WB2PJH\n" "WB2PYD\n" "WB2QJ\n" "WB2RAT\n" "WB2REM\n" "WB2RFV\n" "WB2RGK\n" "WB2RHM\n" "WB2RIS\n" "WB2RRF\n" "WB2RTG\n" "WB2SCT\n" "WB2SIH\n" "WB2SUN\n" "WB2SXY\n" "WB2TFM\n" "WB2TJO\n" "WB2TPS\n" "WB2TQE\n" "WB2TSL\n" "WB2TSV/7\n" "WB2UFF\n" "WB2VSJ\n" "WB2WIK\n" "WB2WPM\n" "WB2Y\n" "WB2YHK\n" "WB2YIP\n" "WB2YZX\n" "WB2ZAB\n" "WB2ZAP\n" "WB2ZEI\n" "WB2ZEX\n" "WB3AFS\n" "WB3AGB\n" "WB3AGC\n" "WB3ANT\n" "WB3AVD\n" "WB3AVN\n" "WB3BDH\n" "WB3BEL\n" "WB3BGK\n" "WB3CJU\n" "WB3CQD\n" "WB3CQM\n" "WB3CSY\n" "WB3DOM\n" "WB3EHS\n" "WB3EML\n" "WB3ESR\n" "WB3FIZ\n" "WB3HLH\n" "WB3HUZ\n" "WB3IGR\n" "WB3IZF\n" "WB3JFS\n" "WB3JKQ\n" "WB3JVD\n" "WB3LGC\n" "WB3LTT\n" "WB3T\n" "WB4AEG\n" "WB4BYQ\n" "WB4C\n" "WB4CSK\n" "WB4CSW\n" "WB4DAN\n" "WB4DNL\n" "WB4FDT\n" "WB4FEV\n" "WB4FSF\n" "WB4FSV\n" "WB4FWQ\n" "WB4GLI\n" "WB4HDC\n" "WB4HDM\n" "WB4HUX\n" "WB4I\n" "WB4IUY\n" "WB4IZX\n" "WB4JFS\n" "WB4JJJ\n" "WB4JVR\n" "WB4K\n" "WB4KKT\n" "WB4KLI\n" "WB4KTF\n" "WB4KUU\n" "WB4KZW\n" "WB4LJX\n" "WB4LMH\n" "WB4MAK\n" "WB4MDX\n" "WB4MNK\n" "WB4MRF\n" "WB4MSG\n" "WB4NBE\n" "WB4NCW\n" "WB4NUM\n" "WB4OEE\n" "WB4OMM\n" "WB4OQF\n" "WB4PPW\n" "WB4PWZ\n" "WB4QNG\n" "WB4ROA\n" "WB4ROA/7\n" "WB4RRD\n" "WB4SGA\n" "WB4SLM\n" "WB4SQ\n" "WB4TDH\n" "WB4TLX\n" "WB4TOM\n" "WB4U\n" "WB4UIC\n" "WB4VSD\n" "WB4VVU\n" "WB4W\n" "WB4WMR\n" "WB4WXE\n" "WB4X\n" "WB4YBY\n" "WB4YDL\n" "WB4YDY\n" "WB4YZA\n" "WB4ZBI\n" "WB4ZPF\n" "WB5A\n" "WB5AAA\n" "WB5AAR\n" "WB5AHN\n" "WB5ANN\n" "WB5ASP\n" "WB5BKL\n" "WB5HOW\n" "WB5HQO\n" "WB5ISM\n" "WB5IUU\n" "WB5IZD\n" "WB5JID\n" "WB5K\n" "WB5KIA\n" "WB5LXJ\n" "WB5MFI\n" "WB5NMZ\n" "WB5NPW\n" "WB5ONA\n" "WB5OSD\n" "WB5PDZ\n" "WB5QCB\n" "WB5R\n" "WB5RYB\n" "WB5S\n" "WB5SGN\n" "WB5STU\n" "WB5TEQ\n" "WB5TKA\n" "WB5TKI\n" "WB5TOI\n" "WB5TTE\n" "WB5TUF\n" "WB5UFR\n" "WB5VZL\n" "WB5WAJ\n" "WB5XX\n" "WB5YYA\n" "WB6AAJ\n" "WB6BET\n" "WB6BFG\n" "WB6BOD\n" "WB6CMX\n" "WB6CYK\n" "WB6FWS\n" "WB6HGJ\n" "WB6HYH\n" "WB6I\n" "WB6IQY\n" "WB6IXS\n" "WB6IYM\n" "WB6JJJ\n" "WB6JSB\n" "WB6JVP\n" "WB6KWL\n" "WB6L\n" "WB6LIU\n" "WB6MBF\n" "WB6MIO\n" "WB6MMC\n" "WB6MRQ\n" "WB6NJA\n" "WB6NKJ\n" "WB6NVB\n" "WB6OJB\n" "WB6OKG\n" "WB6OWZ\n" "WB6QPG\n" "WB6QQU\n" "WB6REZ\n" "WB6RSE\n" "WB6TFD\n" "WB6TPF\n" "WB6Z\n" "WB6ZAM\n" "WB6ZHZ\n" "WB7ACV\n" "WB7AGN\n" "WB7AKE\n" "WB7B\n" "WB7D\n" "WB7DBJ\n" "WB7DFQ\n" "WB7DJR\n" "WB7ECS\n" "WB7ECS/4\n" "WB7FJG\n" "WB7NJV\n" "WB7OCV\n" "WB7OTL\n" "WB7OUZ\n" "WB7PMT\n" "WB7QCS\n" "WB7QXU\n" "WB7S\n" "WB7TIR\n" "WB7TVS\n" "WB7UZO\n" "WB8AFC\n" "WB8AKW\n" "WB8B\n" "WB8BOR\n" "WB8BPU\n" "WB8BZK\n" "WB8CEH\n" "WB8DEG\n" "WB8DNO\n" "WB8E\n" "WB8ENE\n" "WB8EYE\n" "WB8FLE\n" "WB8FSV\n" "WB8HWO\n" "WB8ICN\n" "WB8IMY\n" "WB8JAY\n" "WB8JUI\n" "WB8K\n" "WB8KRY\n" "WB8LCD\n" "WB8LZA\n" "WB8MIW\n" "WB8MKH\n" "WB8N\n" "WB8NBA\n" "WB8NUT\n" "WB8NWA\n" "WB8O\n" "WB8OWM\n" "WB8QLA\n" "WB8RFB\n" "WB8RTJ\n" "WB8SKP\n" "WB8TDA\n" "WB8TDG\n" "WB8TGY\n" "WB8TIJ\n" "WB8TLI\n" "WB8TNN\n" "WB8TSD\n" "WB8VGE\n" "WB8VQU\n" "WB8WKQ\n" "WB8WRP\n" "WB8WTZ\n" "WB8YJF\n" "WB8YJF/4\n" "WB8YQJ\n" "WB8YYY\n" "WB8ZOM\n" "WB8ZRL\n" "WB9AYW\n" "WB9CHY\n" "WB9CIF\n" "WB9DIF\n" "WB9DKL\n" "WB9DLC\n" "WB9EDP\n" "WB9EEE\n" "WB9EGZ\n" "WB9FCI\n" "WB9FIP\n" "WB9FIU\n" "WB9FQS\n" "WB9GYJ\n" "WB9HFK\n" "WB9IRF\n" "WB9IRJ\n" "WB9JNZ\n" "WB9JOX\n" "WB9KPT\n" "WB9L\n" "WB9LPW\n" "WB9LRK\n" "WB9LTY\n" "WB9LZR\n" "WB9MDS\n" "WB9MII\n" "WB9MMR\n" "WB9NMN\n" "WB9NOO\n" "WB9NRK\n" "WB9OJE\n" "WB9OKQ\n" "WB9ONU\n" "WB9PUB\n" "WB9PZB\n" "WB9QVR\n" "WB9RAS\n" "WB9RZY\n" "WB9SFM\n" "WB9TFH\n" "WB9TNF\n" "WB9TVY\n" "WB9UDJ\n" "WB9UGC\n" "WB9UGX\n" "WB9UQE\n" "WB9VGO\n" "WB9VKZ\n" "WB9VRP\n" "WB9WHQ\n" "WB9WKT\n" "WB9WOZ\n" "WB9YBI\n" "WB9YIG\n" "WB9YJE\n" "WB9YSD\n" "WB9Z\n" "WB9ZFN\n" "WC0A\n" "WC0B\n" "WC0L\n" "WC0N\n" "WC0U\n" "WC0V\n" "WC0W\n" "WC1M\n" "WC1T\n" "WC2C\n" "WC2K\n" "WC2L\n" "WC2W\n" "WC2Z\n" "WC3A\n" "WC3O\n" "WC3Q\n" "WC4B\n" "WC4CC\n" "WC4DC\n" "WC4E\n" "WC4H\n" "WC4I\n" "WC4KY\n" "WC4MBC\n" "WC4TX\n" "WC4U\n" "WC4V\n" "WC5B\n" "WC5C\n" "WC5M\n" "WC5N\n" "WC5P\n" "WC5T\n" "WC6DX\n" "WC6H\n" "WC7CW\n" "WC7Q\n" "WC7S\n" "WC7V\n" "WC7WB\n" "WC7X\n" "WC8VOA\n" "WC8W\n" "WC9B\n" "WC9C\n" "WD0AZW\n" "WD0BC\n" "WD0BGZ\n" "WD0BMR\n" "WD0BMS\n" "WD0CIV\n" "WD0DAI\n" "WD0DX\n" "WD0E\n" "WD0EDK\n" "WD0FAA\n" "WD0GTY\n" "WD0J\n" "WD0K\n" "WD0L\n" "WD0M\n" "WD0MR\n" "WD0T\n" "WD1V\n" "WD1W\n" "WD1X\n" "WD1Z\n" "WD2E\n" "WD2F\n" "WD3B\n" "WD3C\n" "WD4AB\n" "WD4ABO\n" "WD4AHZ\n" "WD4ASP\n" "WD4CBA\n" "WD4CJN\n" "WD4DC\n" "WD4DDU\n" "WD4DMZ\n" "WD4EBR\n" "WD4ELG\n" "WD4FNY\n" "WD4FNY/0\n" "WD4GBW\n" "WD4GEO\n" "WD4HIM\n" "WD4HXE\n" "WD4IXD\n" "WD4JJ\n" "WD4KGC\n" "WD4KTF\n" "WD4LAZ\n" "WD4LBR\n" "WD4LTF\n" "WD4LUR\n" "WD4LYV\n" "WD4MSM\n" "WD4OHD\n" "WD4OHM\n" "WD4OJM\n" "WD4PDZ\n" "WD4PTJ\n" "WD4SIG\n" "WD5AAM\n" "WD5ABC\n" "WD5ACR\n" "WD5BJT\n" "WD5BUC\n" "WD5CAW\n" "WD5COV\n" "WD5DBV\n" "WD5EAE\n" "WD5FUN\n" "WD5HIO\n" "WD5IQR\n" "WD5IYF\n" "WD5IYT\n" "WD5JB\n" "WD5JNC\n" "WD5K\n" "WD5KCX\n" "WD5R\n" "WD5T\n" "WD5USA\n" "WD6AHV\n" "WD6BGG\n" "WD6CKT\n" "WD6DBM\n" "WD6FTB\n" "WD6GFF\n" "WD6L\n" "WD7K\n" "WD7Y\n" "WD8AHR\n" "WD8ANZ\n" "WD8BAH\n" "WD8BBE\n" "WD8BCS\n" "WD8BIL\n" "WD8CJN\n" "WD8CQB\n" "WD8DSB\n" "WD8DYO\n" "WD8EOL\n" "WD8H\n" "WD8ICX\n" "WD8INF\n" "WD8IQJ\n" "WD8JJA\n" "WD8JOL\n" "WD8JP\n" "WD8KNC\n" "WD8KRV\n" "WD8M\n" "WD8MBE\n" "WD8NHA\n" "WD8NVN\n" "WD8OSE\n" "WD8OSV\n" "WD8OZS\n" "WD8PKF\n" "WD8QGE\n" "WD8QIJ\n" "WD8RIF\n" "WD8RUW\n" "WD8RWI\n" "WD8RYC\n" "WD8S\n" "WD8V\n" "WD9ABG\n" "WD9CHG\n" "WD9CIR\n" "WD9COM\n" "WD9DZV\n" "WD9EJK\n" "WD9EKA\n" "WD9EMI\n" "WD9F\n" "WD9FJL\n" "WD9FTZ\n" "WD9GJK\n" "WD9GMK\n" "WD9HDT\n" "WD9HSY\n" "WD9HYM\n" "WD9IDV\n" "WD9IOK\n" "WE0Q\n" "WE1H\n" "WE1P\n" "WE2N\n" "WE2Y\n" "WE3C\n" "WE3E\n" "WE3J\n" "WE3ST\n" "WE4H\n" "WE4M\n" "WE4Q\n" "WE4S\n" "WE5I\n" "WE5K\n" "WE5O\n" "WE6C\n" "WE6EZ\n" "WE6L\n" "WE6M\n" "WE6Z\n" "WE7G\n" "WE7K\n" "WE7P\n" "WE8P\n" "WE8R\n" "WE9A\n" "WE9M\n" "WE9N\n" "WE9R\n" "WE9V\n" "WF0GM\n" "WF1L\n" "WF2B\n" "WF2S\n" "WF2W\n" "WF3C\n" "WF3M\n" "WF3T\n" "WF4B\n" "WF4G\n" "WF4M\n" "WF4U\n" "WF4W\n" "WF5E\n" "WF5I\n" "WF5T\n" "WF5W\n" "WF5X\n" "WF6C\n" "WF6F\n" "WF6O\n" "WF7K\n" "WF7T\n" "WF7T/4\n" "WF8N\n" "WF8P\n" "WF9A\n" "WF9V\n" "WG0G\n" "WG0I\n" "WG0M\n" "WG0V\n" "WG1W\n" "WG1X\n" "WG2B\n" "WG2Y\n" "WG3J\n" "WG3U\n" "WG4F\n" "WG4M\n" "WG4MB\n" "WG4P\n" "WG5G\n" "WG5J\n" "WG7J\n" "WG7X\n" "WG7Y\n" "WG8DX\n" "WG8H\n" "WG8P\n" "WG8Y\n" "WG9L\n" "WH0AC\n" "WH0S\n" "WH2D\n" "WH2DX\n" "WH2X\n" "WH6C\n" "WH6OR\n" "WH6R\n" "WH7GM\n" "WH7TU\n" "WH7V\n" "WI0S\n" "WI0W\n" "WI0WA\n" "WI1G\n" "WI1I\n" "WI2E\n" "WI3K\n" "WI4A\n" "WI4DX\n" "WI4N\n" "WI4R\n" "WI4T\n" "WI5ND\n" "WI6I\n" "WI6J\n" "WI6T\n" "WI6Z\n" "WI7D\n" "WI7F\n" "WI7N\n" "WI8A\n" "WI8B\n" "WI8C\n" "WI8R\n" "WI9G\n" "WI9H\n" "WI9M\n" "WI9TOM\n" "WI9WI\n" "WI9Z\n" "WJ0X\n" "WJ1B\n" "WJ1R\n" "WJ2D\n" "WJ2O\n" "WJ2P\n" "WJ3A\n" "WJ3F\n" "WJ3P\n" "WJ4N\n" "WJ5C\n" "WJ5DX\n" "WJ5S\n" "WJ6O\n" "WJ6Y\n" "WJ7R\n" "WJ8E\n" "WJ8Y\n" "WJ9B\n" "WJ9X\n" "WK0DX\n" "WK0P\n" "WK1Q\n" "WK2G\n" "WK2H\n" "WK2S\n" "WK3N\n" "WK4F\n" "WK4P\n" "WK4Q\n" "WK4W\n" "WK4Y\n" "WK5T\n" "WK5X\n" "WK6C\n" "WK6I\n" "WK6S\n" "WK7P\n" "WK8A\n" "WK8U\n" "WK8V\n" "WK9H\n" "WL7BDO\n" "WL7E/W7\n" "WL7E/WZ7\n" "WL7O\n" "WL7SJ\n" "WL7UQ\n" "WM0F\n" "WM0G\n" "WM1G\n" "WM2H\n" "WM2Z\n" "WM3L\n" "WM3O\n" "WM3PEN\n" "WM3T\n" "WM4D\n" "WM4Q\n" "WM4R\n" "WM4RM\n" "WM5DX\n" "WM5R\n" "WM6A\n" "WM6DX\n" "WM7DX\n" "WM9DX\n" "WN0G\n" "WN0L\n" "WN1GIV\n" "WN1M\n" "WN1OTV\n" "WN1X\n" "WN2O\n" "WN2T\n" "WN2Y\n" "WN3N\n" "WN3R\n" "WN3USA\n" "WN4AT\n" "WN4DX\n" "WN4LTY\n" "WN4S\n" "WN4VCH\n" "WN5G\n" "WN5V\n" "WN6K\n" "WN6M\n" "WN6W\n" "WN7J\n" "WN7L\n" "WN7M\n" "WN7T\n" "WN7Y\n" "WN8P\n" "WN8R\n" "WN9E\n" "WN9ICB\n" "WN9J\n" "WN9M\n" "WN9O\n" "WN9P\n" "WO0Q\n" "WO1N\n" "WO2N\n" "WO2T\n" "WO2Y\n" "WO3P\n" "WO3Z\n" "WO4D\n" "WO4DX\n" "WO4O\n" "WO4R\n" "WO5D\n" "WO5I\n" "WO6M\n" "WO6T\n" "WO7U\n" "WO7Y\n" "WO8CC\n" "WO8J\n" "WO8J/7\n" "WO8USA\n" "WO8VET\n" "WO9S\n" "WO9U\n" "WO9Z\n" "WP2B\n" "WP2E\n" "WP2Z\n" "WP3C\n" "WP3EF\n" "WP3GW\n" "WP3R\n" "WP3UX\n" "WP4BH\n" "WP4CGH\n" "WP4CRG\n" "WP4D\n" "WP4DQK\n" "WP4EDD\n" "WP4I\n" "WP4JBG\n" "WP4L\n" "WP4NEG\n" "WP4NIX\n" "WP4NND\n" "WP4SK\n" "WP4U\n" "WP4WV\n" "WP4WW\n" "WQ0A\n" "WQ0B\n" "WQ1H\n" "WQ2N\n" "WQ3E\n" "WQ3T\n" "WQ3X\n" "WQ4L\n" "WQ5L\n" "WQ5O\n" "WQ6K\n" "WQ6O\n" "WQ6X\n" "WQ7A\n" "WQ7L\n" "WQ7X\n" "WQ8RP\n" "WQ8T\n" "WQ9E\n" "WQ9T\n" "WQ9Z\n" "WR1B\n" "WR1Q\n" "WR1TX\n" "WR2G\n" "WR2V\n" "WR3H\n" "WR3L\n" "WR3Z\n" "WR4AA\n" "WR4C\n" "WR4F\n" "WR4I\n" "WR4K\n" "WR4U\n" "WR5AW\n" "WR5G\n" "WR5U\n" "WR7DW\n" "WR7HE\n" "WR7K\n" "WR7Q\n" "WR8J\n" "WR8R\n" "WR9AN\n" "WR9L\n" "WR9Y\n" "WS0Z\n" "WS1F\n" "WS1L\n" "WS1V\n" "WS2E\n" "WS2L\n" "WS4C\n" "WS4F\n" "WS4H\n" "WS4NC\n" "WS4WW\n" "WS4Y\n" "WS5H\n" "WS5K\n" "WS6K\n" "WS6X\n" "WS6Z\n" "WS7I\n" "WS7L\n" "WS7N\n" "WS7V\n" "WS7X\n" "WS8D\n" "WS8M\n" "WS9E\n" "WS9J\n" "WS9M\n" "WS9M/2\n" "WS9M/4\n" "WS9V\n" "WS9W\n" "WT0A\n" "WT0AA\n" "WT0D\n" "WT0O\n" "WT1M\n" "WT2Z\n" "WT3Q\n" "WT4PF\n" "WT4Q\n" "WT4Y\n" "WT5K\n" "WT5L\n" "WT5N\n" "WT5R\n" "WT5U\n" "WT6A\n" "WT6G\n" "WT6K\n" "WT6P\n" "WT6TT\n" "WT6X\n" "WT7N\n" "WT7RC\n" "WT7TT\n" "WT8C\n" "WT8E\n" "WT8F\n" "WT8N\n" "WT8O\n" "WT9Q\n" "WT9U\n" "WU0L\n" "WU1E\n" "WU1ITU\n" "WU2L\n" "WU2S\n" "WU2X\n" "WU3A\n" "WU3H\n" "WU4G\n" "WU5E\n" "WU5PIG\n" "WU6CC\n" "WU7O\n" "WU7R\n" "WU8P\n" "WU8Q\n" "WU9B\n" "WV0T\n" "WV1M\n" "WV2NY\n" "WV2ZOW\n" "WV3U\n" "WV4I\n" "WV4V\n" "WV4Y\n" "WV5K\n" "WV5L\n" "WV6E\n" "WV6I\n" "WV6N\n" "WV7Q\n" "WV7Z\n" "WV8A\n" "WV8AA\n" "WV8USA\n" "WV9B\n" "WV9S\n" "WW0AL\n" "WW0E\n" "WW0H\n" "WW0WB\n" "WW1M\n" "WW1WW\n" "WW2DX\n" "WW2NC\n" "WW2NJ\n" "WW2P\n" "WW2PT\n" "WW2R\n" "WW2Y\n" "WW3A\n" "WW3DE\n" "WW3K\n" "WW3KP\n" "WW3Q\n" "WW3QB\n" "WW3S\n" "WW4B\n" "WW4CP\n" "WW4DM\n" "WW4E\n" "WW4GC\n" "WW4LL\n" "WW4R\n" "WW5AA\n" "WW5R\n" "WW5TT\n" "WW5W\n" "WW6D\n" "WW6O\n" "WW6P\n" "WW6USA\n" "WW7Q\n" "WW8O\n" "WW8OH\n" "WW9DX\n" "WW9R\n" "WX0B\n" "WX0V\n" "WX1MAN\n" "WX1O\n" "WX1S\n" "WX1V\n" "WX1X\n" "WX2F\n" "WX2N\n" "WX2T\n" "WX2U\n" "WX3A\n" "WX3B\n" "WX3G\n" "WX3SKY\n" "WX4CW\n" "WX4G\n" "WX4MLB\n" "WX4MM\n" "WX4QN\n" "WX4RM\n" "WX4TM\n" "WX4X\n" "WX5H\n" "WX5I\n" "WX5N\n" "WX5S\n" "WX5W\n" "WX6V\n" "WX6W\n" "WX6Y\n" "WX7B\n" "WX7E\n" "WX7G\n" "WX7L\n" "WX7P\n" "WX7T\n" "WX8G\n" "WX9C\n" "WX9EP\n" "WX9U\n" "WX9Z\n" "WY0B\n" "WY0L\n" "WY0V\n" "WY1H\n" "WY1U\n" "WY2G\n" "WY3A\n" "WY3P\n" "WY4A\n" "WY4J\n" "WY4Y\n" "WY5I\n" "WY6DX\n" "WY6K\n" "WY7DK\n" "WY7FD\n" "WY7I\n" "WY7KRA\n" "WY7LL\n" "WY7N\n" "WY7SS\n" "WY7USA\n" "WY8DX\n" "WY8I\n" "WY9N\n" "WZ1F\n" "WZ2T\n" "WZ3B\n" "WZ4F\n" "WZ4P\n" "WZ4Z\n" "WZ6T\n" "WZ6Z\n" "WZ7E\n" "WZ7M\n" "WZ7ZR\n" "WZ8D\n" "WZ8DX\n" "WZ8K\n" "WZ8P\n" "WZ8T\n" "WZ9B\n" "XE1AY\n" "XE1B\n" "XE1BY\n" "XE1CDF\n" "XE1CQ\n" "XE1CRG\n" "XE1CT\n" "XE1CWJ\n" "XE1EE\n" "XE1FAS\n" "XE1FSK\n" "XE1FZE\n" "XE1GRR\n" "XE1GZU\n" "XE1HJL\n" "XE1HJN\n" "XE1HON\n" "XE1IM\n" "XE1J\n" "XE1KK\n" "XE1L\n" "XE1LM\n" "XE1MEX\n" "XE1MM\n" "XE1MO\n" "XE1MW\n" "XE1NVA\n" "XE1NW\n" "XE1OK\n" "XE1R\n" "XE1RBV\n" "XE1RCS\n" "XE1REM\n" "XE1REW\n" "XE1RP\n" "XE1RZL\n" "XE1SAR\n" "XE1SAX\n" "XE1SGW\n" "XE1SVT\n" "XE1TD\n" "XE1TDX\n" "XE1TNC\n" "XE1TRP\n" "XE1USG\n" "XE1V\n" "XE1VY\n" "XE1XZQ\n" "XE1YJS\n" "XE1YYD\n" "XE1YZY\n" "XE1ZCQ\n" "XE1ZTW\n" "XE1ZW\n" "XE2AC\n" "XE2AI\n" "XE2ANT\n" "XE2AU\n" "XE2AUB\n" "XE2AUD\n" "XE2CQ\n" "XE2D\n" "XE2EJ\n" "XE2ES\n" "XE2EX\n" "XE2FGC\n" "XE2GAG\n" "XE2GG\n" "XE2HUM\n" "XE2HUQ\n" "XE2I\n" "XE2JA\n" "XE2K\n" "XE2MM\n" "XE2MVS\n" "XE2MX\n" "XE2NS\n" "XE2RC\n" "XE2RV\n" "XE2S\n" "XE2SIV\n" "XE2TH\n" "XE2TPJ\n" "XE2TZP\n" "XE2WK\n" "XE2WWW\n" "XE2YBG\n" "XE2YHR\n" "XE2YOM\n" "XE2YWH\n" "XE3D\n" "XE3DX\n" "XE3KGS\n" "XE3N\n" "XE3PMR\n" "XE3RR\n" "XF3PAS\n" "XQ1IDM\n" "XQ4CW\n" "XQ4EM\n" "XQ5C\n" "XQ5CIE\n" "XQ5CL\n" "XQ8GLQ\n" "XR1A\n" "XR3A\n" "XR3P\n" "XR6T\n" "XU7AAA\n" "XU7ACY\n" "XU7ADU\n" "XU7FMZ\n" "XU7KOH\n" "XU7MDY\n" "XU7TZG\n" "XU7XXX\n" "XV1X\n" "XV2MDY\n" "XV2RZ\n" "XV2W\n" "XV4BX\n" "XW1B\n" "XX9LT\n" "YB0AI\n" "YB0AJV\n" "YB0BCU\n" "YB0COU\n" "YB0COX\n" "YB0DPO\n" "YB0ECT\n" "YB0EIN\n" "YB0JIV\n" "YB0JK\n" "YB0KYM\n" "YB0MJY\n" "YB0MWM\n" "YB0NFL\n" "YB0PAH\n" "YB0ZZ\n" "YB1ALL\n" "YB1AQD\n" "YB1AR\n" "YB1C\n" "YB1CCF\n" "YB1CYD\n" "YB1KAR\n" "YB1MBA\n" "YB1NWP\n" "YB1PC\n" "YB1TJ\n" "YB1UUN\n" "YB1YCT\n" "YB2DDL\n" "YB2DX\n" "YB2ECG\n" "YB2LSR\n" "YB2OK\n" "YB2UTX\n" "YB3BOA\n" "YB3IZK\n" "YB3JBJ\n" "YB3MM\n" "YB3OX\n" "YB3TD\n" "YB3VK\n" "YB3XM\n" "YB41AR\n" "YB4IR\n" "YB5AQB\n" "YB5OUB\n" "YB6INU\n" "YB8EL\n" "YB8EXL\n" "YB8FL\n" "YC0COX\n" "YC0IEM\n" "YC1BRS\n" "YC1BYX\n" "YC1DYY\n" "YC1LA\n" "YC1UDK\n" "YC1URC\n" "YC2BG\n" "YC2EUZ\n" "YC2LEV\n" "YC2USI\n" "YC2WWW\n" "YC2YTH\n" "YC3TKH\n" "YC5OO\n" "YC5OUB\n" "YC5VB\n" "YC6BRS\n" "YC6CM\n" "YC6EN\n" "YC6JRT\n" "YC6NE\n" "YC8FEF\n" "YC9MDX\n" "YC9WIC\n" "YD1BJX\n" "YD1HUH\n" "YD1XUH\n" "YD2LEV\n" "YD3KWR\n" "YE0X\n" "YE1C\n" "YE1ZAL\n" "YE1ZAT\n" "YE2R\n" "YI9WV\n" "YJ0MM\n" "YK9Y\n" "YL/4L3A\n" "YL0A\n" "YL0Y\n" "YL1S\n" "YL1XN\n" "YL1YI\n" "YL1ZC\n" "YL1ZO\n" "YL1ZS\n" "YL1ZX\n" "YL2BJ\n" "YL2BR\n" "YL2CA\n" "YL2CF\n" "YL2CI\n" "YL2CR\n" "YL2CV\n" "YL2EC\n" "YL2GC\n" "YL2GC/P\n" "YL2GD\n" "YL2GP\n" "YL2GQG\n" "YL2GQT\n" "YL2GUV\n" "YL2HK\n" "YL2II\n" "YL2IP\n" "YL2IS\n" "YL2IU\n" "YL2JZ\n" "YL2KF\n" "YL2KO\n" "YL2LW\n" "YL2MR\n" "YL2MR/P\n" "YL2NK\n" "YL2NN\n" "YL2PA\n" "YL2PJ\n" "YL2PN\n" "YL2PP\n" "YL2QS\n" "YL2QV\n" "YL2SM\n" "YL2TB\n" "YL2TD\n" "YL2TQ\n" "YL2VW\n" "YL3AD\n" "YL3BZ\n" "YL3CU\n" "YL3DR\n" "YL3DW\n" "YL3DX\n" "YL3FP\n" "YL3FT\n" "YL3FW\n" "YL3FX\n" "YL3GDR\n" "YL3GFO\n" "YL3GFX\n" "YL3GGX\n" "YL3IZ\n" "YL4HQ\n" "YL4U\n" "YL5M\n" "YL5T\n" "YL5W\n" "YL6W\n" "YL7A\n" "YL7W\n" "YL7X\n" "YL8M\n" "YL90AIR\n" "YL90CP\n" "YL90PA\n" "YL9T\n" "YL9W\n" "YM2W\n" "YM3A\n" "YM3D\n" "YN2BQ\n" "YN2DD\n" "YN2EA\n" "YN2GY\n" "YN2NB\n" "YN2S\n" "YN2WW\n" "YN2Z\n" "YO/HA5BWW\n" "YO2ADQ\n" "YO2AMU\n" "YO2AOB\n" "YO2AQB\n" "YO2ARV\n" "YO2BB\n" "YO2BBX\n" "YO2BLX\n" "YO2BS\n" "YO2BV\n" "YO2CJX\n" "YO2CMI\n" "YO2DFA\n" "YO2GL\n" "YO2II\n" "YO2IS\n" "YO2IS/P\n" "YO2KCB\n" "YO2KDT\n" "YO2KJI\n" "YO2LAN\n" "YO2LAU\n" "YO2LEA\n" "YO2LEE\n" "YO2LFP\n" "YO2LGX\n" "YO2LHD\n" "YO2LIE\n" "YO2LIM\n" "YO2LIW\n" "YO2LRH\n" "YO2LXB\n" "YO2LXW\n" "YO2LYN\n" "YO2MAX\n" "YO2MBA\n" "YO2MCK\n" "YO2MHD\n" "YO2MHJ\n" "YO2MIL\n" "YO2MJI\n" "YO2MJZ\n" "YO2ODE\n" "YO2QY\n" "YO2R\n" "YO2RLC\n" "YO2RO\n" "YO2RR\n" "YO3AAJ\n" "YO3AIL\n" "YO3AIS\n" "YO3AK\n" "YO3APJ\n" "YO3BAP\n" "YO3BL\n" "YO3BZF\n" "YO3CBZ\n" "YO3CCC\n" "YO3CEN\n" "YO3CVG\n" "YO3CZW\n" "YO3DAC\n" "YO3DIU\n" "YO3DLK\n" "YO3FF\n" "YO3FFF\n" "YO3FLR\n" "YO3FN\n" "YO3FOM\n" "YO3FRI\n" "YO3FVR\n" "YO3GCL\n" "YO3GGO\n" "YO3GW\n" "YO3III\n" "YO3JF\n" "YO3JOS/P\n" "YO3JR\n" "YO3JV\n" "YO3JW\n" "YO3KIA\n" "YO3KPA\n" "YO3ND\n" "YO3RU\n" "YO3UA\n" "YO3VU\n" "YO3XX\n" "YO3YB\n" "YO3YV\n" "YO3YX\n" "YO3YZ\n" "YO3ZA\n" "YO4AAC\n" "YO4AB\n" "YO4ASD\n" "YO4ASG\n" "YO4ATW\n" "YO4AUL\n" "YO4AUP\n" "YO4AYE\n" "YO4AYL\n" "YO4BEX\n" "YO4BTB\n" "YO4CAH\n" "YO4CAS\n" "YO4CSL\n" "YO4CVT\n" "YO4CVV\n" "YO4DFT\n" "YO4DW\n" "YO4FTC\n" "YO4FTE\n" "YO4GHW\n" "YO4GNJ\n" "YO4HEK\n" "YO4KCC\n" "YO4MM\n" "YO4NA\n" "YO4PX\n" "YO4QZ\n" "YO4RIU\n" "YO4RIW\n" "YO4RSS\n" "YO4RST\n" "YO4SI\n" "YO4TMB\n" "YO4UQ\n" "YO4US\n" "YO4WZ\n" "YO50IE\n" "YO50IF\n" "YO5AEX\n" "YO5AIR\n" "YO5AJR\n" "YO5ALI\n" "YO5AM\n" "YO5AMF\n" "YO5BAT\n" "YO5BBO\n" "YO5BET\n" "YO5BEU\n" "YO5BJW\n" "YO5BQQ\n" "YO5BRE\n" "YO5BRZ\n" "YO5BTZ\n" "YO5BXI\n" "YO5BXK\n" "YO5BYV\n" "YO5CBN\n" "YO5CBX\n" "YO5CCQ\n" "YO5CCX\n" "YO5CRQ\n" "YO5CUQ\n" "YO5CZZ\n" "YO5DAS\n" "YO5DMB/P\n" "YO5FMT\n" "YO5IR\n" "YO5KAD\n" "YO5KDW\n" "YO5KDX\n" "YO5KOP\n" "YO5KTK\n" "YO5KUF\n" "YO5LN\n" "YO5NY\n" "YO5OAG\n" "YO5OCZ\n" "YO5ODL\n" "YO5ODT\n" "YO5OED\n" "YO5OEF\n" "YO5OET\n" "YO5OHC\n" "YO5OHO\n" "YO5OHY\n" "YO5OLD\n" "YO5OPH\n" "YO5PBF\n" "YO5PBG\n" "YO5PBW\n" "YO5PCY\n" "YO5PHQ\n" "YO5QBP\n" "YO5QCD\n" "YO5TP\n" "YO6ADW\n" "YO6AEI\n" "YO6AJI\n" "YO6BHN\n" "YO6BLU\n" "YO6BZL\n" "YO6CFB\n" "YO6DBL\n" "YO6EV\n" "YO6EX\n" "YO6EZ\n" "YO6FGZ\n" "YO6HSU\n" "YO6HVQ\n" "YO6KEA\n" "YO6KEI\n" "YO6KNE\n" "YO6KNY\n" "YO6LV\n" "YO6MK\n" "YO6MT\n" "YO6OAF\n" "YO6PEG\n" "YO6PHX\n" "YO6QT\n" "YO6UO\n" "YO6VCB\n" "YO7AHR\n" "YO7APA\n" "YO7AQF\n" "YO7ARY\n" "YO7ARY/W1\n" "YO7ARZ\n" "YO7AWZ\n" "YO7BGA\n" "YO7BGB\n" "YO7CVL\n" "YO7CWP\n" "YO7DAA\n" "YO7DO\n" "YO7FB\n" "YO7FT\n" "YO7HBY\n" "YO7HGM\n" "YO7HJM\n" "YO7KFA\n" "YO7KJX\n" "YO7LBX\n" "YO7LCB\n" "YO7LFV\n" "YO7LGI\n" "YO7LHC\n" "YO7LHU\n" "YO7LID\n" "YO7LKW\n" "YO7LTQ\n" "YO7LYM\n" "YO7MGG\n" "YO7NE\n" "YO7NW\n" "YO7VP\n" "YO7VT\n" "YO7WB\n" "YO8AXP\n" "YO8AZQ\n" "YO8BDQ\n" "YO8BFB\n" "YO8BFC\n" "YO8BGD\n" "YO8BPK\n" "YO8BPY\n" "YO8CJY\n" "YO8CLX\n" "YO8DDP\n" "YO8DOH\n" "YO8FR\n" "YO8FZ\n" "YO8GF\n" "YO8KAE\n" "YO8KGA\n" "YO8KGP\n" "YO8KIS\n" "YO8KOO\n" "YO8KOS\n" "YO8KRR\n" "YO8KVS\n" "YO8MF\n" "YO8MI\n" "YO8OH\n" "YO8OU\n" "YO8RAA\n" "YO8RFJ\n" "YO8RFS\n" "YO8RIJ\n" "YO8RIX\n" "YO8RKP\n" "YO8ROO\n" "YO8RQP\n" "YO8RZJ\n" "YO8SAI\n" "YO8SS\n" "YO8SSB\n" "YO8ST\n" "YO8STB\n" "YO8SXX\n" "YO8THG\n" "YO8TNB\n" "YO8TOH\n" "YO8WW\n" "YO9ABL\n" "YO9AFH\n" "YO9AFT\n" "YO9AGI\n" "YO9BCZ\n" "YO9BHI\n" "YO9BPX\n" "YO9BQW\n" "YO9BXC\n" "YO9BXE\n" "YO9BXZ\n" "YO9CB\n" "YO9CWY\n" "YO9CXE\n" "YO9CYM\n" "YO9DFQ\n" "YO9DL\n" "YO9FKN\n" "YO9FKU\n" "YO9FL\n" "YO9FNP\n" "YO9FWX\n" "YO9FYP\n" "YO9GJX\n" "YO9GMI\n" "YO9GSB\n" "YO9GVN\n" "YO9HG\n" "YO9HMB\n" "YO9HNH\n" "YO9HP\n" "YO9HPJ\n" "YO9IE\n" "YO9IF\n" "YO9IIF\n" "YO9IKW\n" "YO9ION\n" "YO9KPI\n" "YO9KPM\n" "YO9KVV\n" "YO9OC\n" "YO9SW\n" "YO9WF\n" "YO9XC\n" "YP0A\n" "YP1WFF\n" "YP2U\n" "YP2W\n" "YP2Y\n" "YP3A\n" "YP5Z\n" "YP6C\n" "YP7P\n" "YP8A\n" "YP8I\n" "YP8I/P\n" "YP9W\n" "YQ2ANT\n" "YQ5Q\n" "YQ6A\n" "YQ9W\n" "YR0HQ\n" "YR0R\n" "YR0WL\n" "YR1A\n" "YR1C\n" "YR1Z\n" "YR2TM\n" "YR2U\n" "YR2X\n" "YR2Y\n" "YR5N\n" "YR5O\n" "YR5S\n" "YR5T\n" "YR5Z\n" "YR6M\n" "YR7M\n" "YR80HCS\n" "YR8A\n" "YR8B\n" "YR8D\n" "YR8I\n" "YR8T\n" "YR8V\n" "YR90U\n" "YR9F\n" "YR9HQ\n" "YR9P\n" "YS1/W3MKT\n" "YS1GR\n" "YS1MAE\n" "YS1YS\n" "YS1ZC\n" "YS4M\n" "YS4RR\n" "YS4U\n" "YT09AU\n" "YT0A\n" "YT0HQ\n" "YT0I\n" "YT0T\n" "YT0W\n" "YT0Z\n" "YT1A\n" "YT1AA\n" "YT1AD\n" "YT1AU\n" "YT1BB\n" "YT1BX\n" "YT1CC\n" "YT1CS\n" "YT1DB\n" "YT1E\n" "YT1FM\n" "YT1HA\n" "YT1KC\n" "YT1LD\n" "YT1ML\n" "YT1MZ\n" "YT1Q\n" "YT1QQ\n" "YT1R\n" "YT1S\n" "YT1T\n" "YT1TA\n" "YT1TM\n" "YT1UM\n" "YT1UR\n" "YT1V\n" "YT1VM\n" "YT1VP\n" "YT1WS\n" "YT1ZA\n" "YT1ZZ\n" "YT2A\n" "YT2AA\n" "YT2AAA\n" "YT2ACA\n" "YT2B\n" "YT2EA\n" "YT2F\n" "YT2FA\n" "YT2ISM\n" "YT2L\n" "YT2PFR\n" "YT2RX\n" "YT2SMS\n" "YT2T\n" "YT2U\n" "YT2VPA\n" "YT2W\n" "YT2WW\n" "YT3A\n" "YT3AA\n" "YT3C\n" "YT3E\n" "YT3H\n" "YT3M\n" "YT3MA\n" "YT3PL\n" "YT3R\n" "YT3T\n" "YT3W\n" "YT40E\n" "YT40EC\n" "YT4A\n" "YT4RA\n" "YT4T\n" "YT4W\n" "YT5A\n" "YT5C\n" "YT5CC\n" "YT5CWW\n" "YT5M\n" "YT5N\n" "YT5RA\n" "YT5T\n" "YT5TT\n" "YT5W\n" "YT5Z\n" "YT7A\n" "YT7AT\n" "YT7AW\n" "YT7B\n" "YT7DQ\n" "YT7DX\n" "YT7EC\n" "YT7EE\n" "YT7IM\n" "YT7KF\n" "YT7KM\n" "YT7R\n" "YT7T\n" "YT7TA\n" "YT7W\n" "YT7XX\n" "YT7Z\n" "YT8A\n" "YT8AA\n" "YT8FG\n" "YT8T\n" "YT8TA\n" "YT8WW\n" "YT9A\n" "YT9C\n" "YT9T\n" "YT9X\n" "YU/HB9EDB\n" "YU/N8BO\n" "YU/NF5A\n" "YU09DW\n" "YU09RP\n" "YU0A\n" "YU0R\n" "YU0U\n" "YU0W\n" "YU140Z\n" "YU1AAQ\n" "YU1AAV\n" "YU1AB\n" "YU1ADO\n" "YU1AM\n" "YU1AR\n" "YU1ARC\n" "YU1ARL\n" "YU1AS\n" "YU1AST\n" "YU1AT\n" "YU1AU\n" "YU1B\n" "YU1BFG\n" "YU1BM\n" "YU1BN\n" "YU1CA\n" "YU1CC\n" "YU1DG\n" "YU1DW\n" "YU1DX\n" "YU1ED\n" "YU1EL\n" "YU1EO\n" "YU1EW\n" "YU1EX\n" "YU1EXY\n" "YU1FE\n" "YU1FG\n" "YU1FJK\n" "YU1FW\n" "YU1GN\n" "YU1GU\n" "YU1HC\n" "YU1HFG\n" "YU1HQR\n" "YU1IG\n" "YU1INO\n" "YU1IV\n" "YU1JF\n" "YU1JW\n" "YU1KA\n" "YU1KN\n" "YU1KT\n" "YU1KX\n" "YU1LA\n" "YU1LD\n" "YU1LM\n" "YU1MM\n" "YU1MS\n" "YU1NA\n" "YU1NGR\n" "YU1NR\n" "YU1NSK\n" "YU1NT\n" "YU1OTB\n" "YU1PC\n" "YU1PJ\n" "YU1QQ\n" "YU1QT\n" "YU1QU\n" "YU1R\n" "YU1RA\n" "YU1RE\n" "YU1RK\n" "YU1RP\n" "YU1RW\n" "YU1SB\n" "YU1SZ\n" "YU1TO\n" "YU1TR\n" "YU1UM\n" "YU1UN\n" "YU1UO\n" "YU1VG\n" "YU1W\n" "YU1WC\n" "YU1WN\n" "YU1WS\n" "YU1XO\n" "YU1XW\n" "YU1XX\n" "YU1YJ\n" "YU1YO\n" "YU1YV\n" "YU1ZM\n" "YU1ZZ\n" "YU25KN\n" "YU2A\n" "YU2AA\n" "YU2AVB\n" "YU2CV\n" "YU2DRA\n" "YU2DX\n" "YU2EF\n" "YU2EZ\n" "YU2FG\n" "YU2M\n" "YU2MBM\n" "YU2MMA\n" "YU2U\n" "YU3A\n" "YU3AA\n" "YU3FX\n" "YU3MMM\n" "YU3MUP\n" "YU3W\n" "YU3WW\n" "YU40A\n" "YU40AF\n" "YU40BM\n" "YU40FN\n" "YU40MM\n" "YU4A\n" "YU5A\n" "YU5B\n" "YU5C\n" "YU5GBT\n" "YU5M\n" "YU5MOL\n" "YU5R\n" "YU5RA\n" "YU5RY\n" "YU5T\n" "YU5W\n" "YU5ZM\n" "YU6A\n" "YU6DX\n" "YU7AE\n" "YU7AF\n" "YU7AU\n" "YU7AV\n" "YU7BB\n" "YU7BCD\n" "YU7BCL\n" "YU7BH\n" "YU7BL\n" "YU7D\n" "YU7DP\n" "YU7DX\n" "YU7DZ\n" "YU7EE\n" "YU7FN\n" "YU7FW\n" "YU7GM\n" "YU7GW\n" "YU7KG\n" "YU7KM\n" "YU7KW\n" "YU7LS\n" "YU7MM\n" "YU7NU\n" "YU7ONE\n" "YU7PG\n" "YU7RL\n" "YU7RQ\n" "YU7U\n" "YU7VX\n" "YU7W\n" "YU7WI\n" "YU7WW\n" "YU7YZ\n" "YU7ZEX\n" "YU7ZZ\n" "YU8A\n" "YU8AU\n" "YU8CW\n" "YU8EQ\n" "YU8FD\n" "YU8GD\n" "YU8JU\n" "YU8KN\n" "YU8NR\n" "YU8NU\n" "YU8QQ\n" "YU9A\n" "YU9DX\n" "YV1CTE\n" "YV1DIG\n" "YV1FM\n" "YV1JGT\n" "YV1NX\n" "YV1RDX\n" "YV2BYT\n" "YV2IF\n" "YV4A\n" "YV4AZ\n" "YV4BCD\n" "YV4CW\n" "YV4GD\n" "YV5AAX\n" "YV5AJ\n" "YV5AMH\n" "YV5BM\n" "YV5EAH\n" "YV5ER\n" "YV5IAL\n" "YV5JBI\n" "YV5JF\n" "YV5KG\n" "YV5KQA\n" "YV5LI\n" "YV5MSG\n" "YV5NWG\n" "YV5OIE\n" "YV5OK\n" "YV5VD\n" "YV5VE\n" "YV6BFE\n" "YV6BTF\n" "YV6BXN\n" "YV7QP\n" "YV8AD\n" "YW2LV\n" "YW4A\n" "YW4B\n" "YW4D\n" "YW4V\n" "YW5D\n" "YW5DX\n" "YW5L\n" "YW5NN\n" "YW5RTTY\n" "YW5RY\n" "YW5T\n" "YW5W\n" "YW7A\n" "YY1ALC\n" "YY1JGT\n" "YY1MTX\n" "YY1OKR\n" "YY4CVI\n" "YY4RN\n" "YY5AEA\n" "YY5ALO\n" "YY5CBK\n" "YY5EBV\n" "YY5GJC\n" "YY5LI\n" "YY6JAG\n" "Z21BB\n" "Z29KM\n" "Z30A\n" "Z30HQ\n" "Z30MCWG\n" "Z31A\n" "Z31CZ\n" "Z31MM\n" "Z32AJA\n" "Z32ID\n" "Z33A\n" "Z33F\n" "Z33Z\n" "Z35F\n" "Z35G\n" "Z35M\n" "Z35M/P\n" "Z35T\n" "Z35W\n" "Z35X\n" "Z36N\n" "Z36W\n" "Z37M\n" "Z39Z\n" "ZA0/I0SNY\n" "ZA0/I8LWL\n" "ZA0/IK7JWX\n" "ZA1FD\n" "ZA1FM\n" "ZB2BL\n" "ZB2EO\n" "ZB2X\n" "ZC4LI\n" "ZC4T\n" "ZC4TS\n" "ZC4VJ\n" "ZD8RH\n" "ZF1A\n" "ZF1EJ\n" "ZF2AE/ZF8\n" "ZF2AH\n" "ZF2AM\n" "ZF2BJ\n" "ZF2DF\n" "ZF2DO\n" "ZF2JT\n" "ZK2DF\n" "ZK2DL\n" "ZK2V\n" "ZL1AAO\n" "ZL1AAR\n" "ZL1AH\n" "ZL1AIH\n" "ZL1AIX\n" "ZL1ALA\n" "ZL1ALZ\n" "ZL1ANH\n" "ZL1AZE\n" "ZL1BIV\n" "ZL1BOQ\n" "ZL1BVB\n" "ZL1BYZ\n" "ZL1CDP\n" "ZL1CDX\n" "ZL1DK\n" "ZL1IRD\n" "ZL1JMC\n" "ZL1KMN\n" "ZL1NI\n" "ZL1OGX\n" "ZL1T\n" "ZL1TM\n" "ZL1V\n" "ZL2ACG\n" "ZL2AFT\n" "ZL2AGY\n" "ZL2AJ\n" "ZL2AL\n" "ZL2ALJ\n" "ZL2AOH\n" "ZL2AUA\n" "ZL2AUB\n" "ZL2AUJ\n" "ZL2AZ\n" "ZL2BAB\n" "ZL2BR\n" "ZL2CV\n" "ZL2FT\n" "ZL2G\n" "ZL2GR\n" "ZL2IFB\n" "ZL2JKY\n" "ZL2JU\n" "ZL2LF\n" "ZL2MF\n" "ZL2MM\n" "ZL2OK\n" "ZL2ST\n" "ZL2UN\n" "ZL2UO\n" "ZL3A\n" "ZL3AB\n" "ZL3DMC\n" "ZL3DXT\n" "ZL3GA\n" "ZL3IO\n" "ZL3IX\n" "ZL3JT\n" "ZL3NB\n" "ZL3PAH\n" "ZL3SV\n" "ZL3TE\n" "ZL4A\n" "ZL4AD\n" "ZL4AS\n" "ZL4CR\n" "ZL4DH\n" "ZL4DX\n" "ZL4IG\n" "ZL4JB\n" "ZL4NG\n" "ZL4NR\n" "ZL4NX\n" "ZL4PW\n" "ZL4QJ\n" "ZL4QS\n" "ZL4WW\n" "ZL6HQ\n" "ZM1A\n" "ZM1K\n" "ZM2A\n" "ZM2AGY\n" "ZM2B\n" "ZM2M\n" "ZM2RR\n" "ZM3A\n" "ZM3T\n" "ZM4A\n" "ZM4G\n" "ZM4M\n" "ZM4T\n" "ZP0R\n" "ZP5AA\n" "ZP5CGL\n" "ZP5DPA\n" "ZP5KO\n" "ZP5MAL\n" "ZP6/N3BNA\n" "ZP6DEM\n" "ZP6VLA\n" "ZP6VT\n" "ZP7NIA\n" "ZP8VAO\n" "ZP9EH\n" "ZR1ADI\n" "ZS10WCS\n" "ZS1A\n" "ZS1AAX\n" "ZS1AJ\n" "ZS1EL\n" "ZS1IL\n" "ZS1JX\n" "ZS1JY\n" "ZS1OLI\n" "ZS1REC\n" "ZS1RJQ\n" "ZS1ROY\n" "ZS1SA\n" "ZS1SR\n" "ZS1WE\n" "ZS1XUK\n" "ZS1ZY\n" "ZS2BS\n" "ZS2DL\n" "ZS2EZ\n" "ZS2I\n" "ZS2NF\n" "ZS2Y\n" "ZS3AOR\n" "ZS3D\n" "ZS3Y\n" "ZS4BS\n" "ZS4JAN\n" "ZS4S\n" "ZS4TX\n" "ZS4U\n" "ZS5NK\n" "ZS5ZZ\n" "ZS6AKU\n" "ZS6BAF\n" "ZS6BB\n" "ZS6BQI\n" "ZS6BRZ\n" "ZS6C\n" "ZS6JPY\n" "ZS6JR\n" "ZS6ME\n" "ZS6PMS\n" "ZS6PVT\n" "ZS6RF\n" "ZS6RJ\n" "ZS6WN\n" "ZS6WR\n" "ZS9T\n" "ZS9X\n" "ZS9Z\n" "ZT2V\n" "ZV2A\n" "ZV2C\n" "ZV2K\n" "ZV2V\n" "ZV5E\n" "ZV5O\n" "ZW2B\n" "ZW2C\n" "ZW3F\n" "ZW4O\n" "ZW5B\n" "ZW5D\n" "ZW5HQ\n" "ZW5R\n" "ZW5UN\n" "ZW7A\n" "ZW8T\n" "ZX2B\n" "ZX2X\n" "ZX5B\n" "ZX5J\n" "ZX5ZZ\n" "ZX7A\n" "ZX7C\n" "ZX7U\n" "ZY2C\n" "ZY5Z\n" "ZY7C\n" "ZZ5Z\n" "ZZ6Z\n" "KH6/N0CO\n" "KH6/W6PH\n" "F/G4BJM\n" "F/DJ7JC\n" "IM0/IK0FMB\n" "ZZ5Z\n" "HA7VK\n" "CR3E\n" ; const char txt_titlpage[8182] = "\n" "\n" "\n" " \n" " \n" " \n" " $PCall - $TName\n" " \n" " \n" " \n" " \n" "

Contest log

\n" "
\n" "
\n" " \n" " Category:\n" " \n" " $PSectName\n" "
\n" "
\n" " Sheet Nr. 1 of $NoOfPages Pg\n" "
\n" "
\n" "
\n" " \n" " Band:\n" " \n" " $PBand\n" "
\n" "
\n" " \n" " WW-Locator:\n" " \n" " $PWWLo\n" "
\n" "
\n" "
\n" "
\n" " Call\n" " used: $PCall\n" "
\n" "
\n" "
\n" " Contest:\n" " $TDate - $TName\n" "
\n" "
\n" "
\n" " \n" " Contest QTH:\n" " \n" " $PAddr1 $Paddr2\n" "
\n" "
\n" "
\n" " \n" " First operator name:\n" " \n" " $RName\n" "
\n" "
\n" " \n" " Call:\n" " \n" " $RCall\n" "
\n" "
\n" "
\n" "
\n" " \n" " Address:\n" " \n" " $RAddr1 $RAddr2 $RPoCo $RCity\n" "
\n" "
\n" " \n" " Other operators:\n" " \n" " $MOpe1 $MOpe2\n" "
\n" "
\n" "
\n" " \n" " Transmitter:\n" " \n" " $TXEq\n" "
\n" "
\n" " \n" " Output:\n" " \n" " $SPowe\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Reciever:\n" " \n" " $RXEq\n" "
\n" "
\n" " \n" " Preamp:\n" " \n" " $SPreamp\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Antennas:\n" " \n" " $RAnte\n" "
\n" "
\n" " \n" " AGL;ASL:\n" " \n" " $SAntH\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Sum of\n" " QSO\n" " 's:\n" " \n" " $CQSOs\n" "
\n" "
\n" " \n" " Average\n" " km/QSO\n" " \n" " $CAvg\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" " Best\n" " DX - km\n" " :\n" " \n" " $CODXQRB\n" "
\n" "
\n" " \n" " Call:\n" " \n" " $CODXCall\n" " \n" " Locator:\n" " \n" " $CODXLoc\n" "
\n" "
\n" "
\n" "
\n" " \n" " Countries worked:\n" " \n" " $CDXCCs\n" "
\n" "
\n" " \n" " Total sum of points:\n" " \n" " $CToSc\n" "
\n" "
\n" "
\n" " Declaration:\n" "
\n" "
\n" " I hereby certify that this station was operated within the rules and spirit of the contest and within the terms of the license.\n" "
\n" "
\n" "
\n" "
\n" " Date:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " First op. signature:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Contest manager:\n" "
\n" "
\n" "
\n" " Call:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Locator:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Section:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Claimed score:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " QSOs:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Correction:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " Final score:\n" "
\n" "
\n" "
\n" "
\n" "
\n" "
\n" " \n" "\n" ; const char txt_tucnakcw[8829] = "OL4K JO70TQ 20120707 CEHIJKLMN\n" "OK2VZK JN89SS 20120707 E\n" "OK2MEU JN89RX 20120707 CE\n" "OL4N JO60VR 20120707 C\n" "OK2UYZ JN89XX 20120707 E\n" "OL9W JN99CL 20120707 CEGHIJKLM\n" "OK2KOE JN89SV 20120707 CE\n" "OK2EZ JN99BS 20120707 C\n" "OK2OAS JN89DO 20120707 CEK\n" "OK1ASA JN79SR 20120707 C\n" "OK2PGO JN89GF 20120707 C\n" "OK2RSC JN89QE 20120707 CEG\n" "OK2RSC JN89QH 20120707 CEG\n" "OK7CM JO70KK 20120707 EG\n" "OK1EM JO70DP 20120707 CEGIJKLMN\n" "OK2KG JN89JI 20120707 CE\n" "OK1KCR JN79VS 20120707 C\n" "OK2KYZ JO80NB 20120707 CEGHIJK\n" "OK2KOJ JN89DL 20120707 C\n" "OK1KNC JO60IH 20120707 C\n" "OK1KNF JN69MJ 20120707 E\n" "OK1JHM JO70CO 20120707 CLMNOP\n" "OK2BUC JN99BN 20120707 C\n" "OK1ZVP JO60LJ 20120707 K\n" "OK2KEA JN89EJ 20120707 CEG\n" "OK2KZB JN99AK 20120707 CE\n" "OK2BHL/P JN88WX 20120707 E\n" "OK2BEN JN79XN 20120707 C\n" "OK1DJS JO70FB 20120707 C\n" "OK1OPT JN69NX 20120707 CEG\n" "OK1VAM/P JO60LJ 20120707 K\n" "OK7ST JO70DP 20120707 E\n" "OK2VG JN99DN 20120707 CEGK\n" "OK2PWY JO80HB 20120707 K\n" "OK2PHB JN89QU 20120707 E\n" "OK1CJH JO70UF 20120707 CEI\n" "OK1FAN JO70AD 20120707 CE\n" "OK2KJU JN89SJ 20120707 CE\n" "OK1AIG JO70NN 20120707 E\n" "OK2MAJ JN89SG 20120707 C\n" "OK1FC JN79CP 20120707 C\n" "OK1DEU JO80DD 20120707 G\n" "OK1UDQ JO70NO 20120707 C\n" "OK1KIR JO60PM 20120707 GHIJKL\n" "OK1VEC JN69NX 20120707 K\n" "OK2KPD JO80UB 20120707 E\n" "OK2QI JO80OC 20120707 IJLM\n" "OK2DGB JN79RL 20120707 G\n" "OK2AQ JN89FV 20120707 K\n" "OK1XFJ JN69GX 20120707 C\n" "OK2PCE JN88JU 20120707 C\n" "OK1RCA JN69QJ 20120707 C\n" "OK2RDI JN88WX 20120707 CE\n" "OK1KDO JN69KK 20120707 C\n" "OK1VUB JO70KK 20120707 C\n" "OK1VEI JN69JJ 20120707 GHLM\n" "OK2BPR JN99FU 20120707 KLM\n" "OK1DPO JO70CH 20120707 CEG\n" "OK1KOB JO70UK 20120707 C\n" "OK2VX JO80JB 20120707 C\n" "OK2OHA JN89SO 20120707 CEG\n" "OK1VUF JO70DP 20120707 E\n" "OK2BFF JO80HB 20120707 LM\n" "OK2VZ JN89SM 20120707 CE\n" "OK2RTI JN89FL 20120707 C\n" "OK2SJJ JN89FL 20120707 E\n" "OL5Z JN89AR 20120707 C\n" "OK5K JN89VP 20120707 EGK\n" "OK1VM JO60VR 20120707 IJKL\n" "OK5XT JO70UK 20120707 C\n" "OK1DPX JN79AQ 20120707 C\n" "OK1JDJ JO70AQ 20120707 C\n" "OK2KPS JN89WH 20120707 C\n" "OK1OAZ JO70FC 20120707 C\n" "OK1KTW JN89IW 20120707 CEG\n" "OK2TKE JN89JJ 20120707 C\n" "OK5T JO70BK 20120707 C\n" "OK1DKX JN79GB 20120707 G\n" "OK1AV JO70BN 20120707 C\n" "OK2UFU JN79VL 20120707 C\n" "OK1KJO JO60OK 20120707 C\n" "OL1B JO80IB 20120707 CEG\n" "OK2SUK JN89TO 20120707 EG\n" "OL1C JO60UQ 20120707 CE\n" "OK1MAC JN79IO 20120707 GH\n" "OK5Z JN89AK 20120707 CEGHIJKL\n" "OK2PNQ JN99EL 20120707 EGH\n" "OK5AJA JO70EQ 20120707 CE\n" "OK2VLT JN99CS 20120707 C\n" "OK1KEL JO70OP 20120707 C\n" "OK1STJ JN69WI 20120707 C\n" "OK2SEX JN99CV 20120707 C\n" "OK2BLH JN89EC 20120707 CQ\n" "OK1KJV JO60UA 20120707 CE\n" "OK2BS JN89LW 20120707 CEG\n" "OK1KEO JN79GS 20120707 C\n" "OK1KPA JN79US 20120707 CEGHKLM\n" "OK1KEP JO70OR 20120707 CEG\n" "OK1FHA JO60RA 20120707 EG\n" "OK6TT JO80CI 20120707 C\n" "OK1KPB JN79AP 20120707 C\n" "OK1XBF JN69MJ 20120707 C\n" "OK2KLD JN89PU 20120707 C\n" "OK2ZTK JN89QP 20120707 GH\n" "OK1LX JN69IO 20120707 C\n" "OK1KUO JO80FF 20120707 CEGHI\n" "OK1NWD JN69UJ 20120707 E\n" "OK1FHI JO70GS 20120707 C\n" "OK1GHZ JN79JT 20120707 C\n" "OK1KPI JN69XJ 20120707 CEG\n" "OK2KGB JN79QJ 20120707 C\n" "OK1RF JN79KM 20120707 C\n" "OK1KKD JO60WD 20120707 EGHIJKL\n" "OK2TAS JN99BN 20120707 C\n" "OK1KUW JN69KT 20120707 C\n" "OK1UFF JO60XR 20120707 CEGHKL\n" "OK1VVP JN79DO 20120707 C\n" "OL7C JO60JJ 20120707 C\n" "OL1Z JN88AU 20120707 CE\n" "OK1KKI JN79NF 20120707 CE\n" "OK6R JN79OW 20120707 C\n" "OK1WT JO60RA 20120707 C\n" "OK1FMY JO70FA 20120707 E\n" "OK1KFB JN79BC 20120707 E\n" "OK6T JO80BJ 20120707 C\n" "OK1CVX JO60WA 20120707 C\n" "OK1AKE JO70AM 20120707 CE\n" "OL7G JN78DR 20120707 C\n" "OK2KLS JN89PR 20120707 C\n" "OK1KKL JO70PO 20120707 CEGHIJKLMN\n" "OK4DL JN89CX 20120707 C\n" "OK1OHK JO80EG 20120707 CE\n" "OK1UFL JO70SQ 20120707 IJKLMN\n" "OK2HPI JN89UE 20120707 K\n" "OK1XHD JN79IW 20120707 C\n" "OK1KFH JN69VN 20120707 C\n" "OL2C JN88JX 20120707 CG\n" "OL7M JO80FG 20120707 E\n" "OK1AKL JO70FA 20120707 C\n" "OK1IEI JO70EC 20120707 CEGHK\n" "OK1KAD JO60KI 20120707 CEG\n" "OK1WGW JO60WP 20120707 CE\n" "OL7Q JN99FN 20120707 EHKM\n" "OK2SAR JN89LX 20120707 CEG\n" "OL2J JN79TI 20120707 C\n" "OK2BMJ JN89VC 20120707 C\n" "OK1CD JO70FC 20120707 C\n" "OK2KWS JN89PV 20120707 CE\n" "OK2ILA JN89LD 20120707 E\n" "OK2BRX JN89QU 20120707 C\n" "OK1ROZ JN69VP 20120707 C\n" "OK2A JO60JJ 20120707 EGK\n" "OK6PS JN89SV 20120707 CE\n" "OK1KQI JO80CH 20120707 C\n" "OK1MBT JO70CO 20120707 CMNOP\n" "OK2C JN99AJ 20120707 CEGHIJKLM\n" "OK1KVR JO70UO 20120707 C\n" "OK1DRX JN79DW 20120707 CE\n" "OK2RVM JN79XS 20120707 CE\n" "OK7N JN69WR 20120707 C\n" "OK1VRF JN69OK 20120707 E\n" "OK7O JN69OU 20120707 C\n" "OK2G JN99BK 20120707 CE\n" "OK1VBN JN79HA 20120707 E\n" "OK1JKT JO60RN 20120707 K\n" "OK1CR JN69HT 20120707 C\n" "OK1KLH JN79EF 20120707 C\n" "OK1JAH JN79OQ 20120707 C\n" "OK1UGI JN69QV 20120707 C\n" "OK2RAS JN99FP 20120707 C\n" "OK2M JN69UN 20120707 CEGHIJKLMN\n" "OK1KLL JN79IW 20120707 CEG\n" "OK1NH JN69UH 20120707 C\n" "OK1IA JO70UP 20120707 EGHIJKLM\n" "OK2IGL JN89LD 20120707 C\n" "OK1CZ JO70EC 20120707 CEG\n" "OK2VNQ JN99EL 20120707 CE\n" "OK1AIY/P JO60LJ 20120707 GHIJLMN\n" "OK1KLU JO60EG 20120707 CE\n" "OK1VHF JO70EB 20120707 CEKL\n" "OK1YA JN79IO 20120707 IJL\n" "OK2BSP JN99AK 20120707 CE\n" "OK2FKF JN89KL 20120707 C\n" "OK2KCN JN89OI 20120707 C\n" "OK2YT JN88JX 20120707 E\n" "OK1VRY JN79FP 20120707 C\n" "OK2IRE JN99IM 20120707 C\n" "OK1FDY JO70AQ 20120707 C\n" "OK2SRO JN89SM 20120707 CE\n" "OK1MHW JN79VS 20120707 E\n" "OK7RA JO60LJ 20120707 LM\n" "OK7RB JO60RB 20120707 GLM\n" "OK2PVF JN99JQ 20120707 C\n" "OK2BDA JN99EU 20120707 CE\n" "OK2TT JO80IA 20120707 JK\n" "OK1RKS JO70FB 20120707 E\n" "S59GS JN75NP 20120707 CEG\n" "OK1TF JN89AR 20120707 C\n" "OK2TX JN89UD 20120707 C\n" "OK1DDA JO60HE 20120707 C\n" "OK1DSZ JN69RI 20120707 C\n" "OK2JI JN89MW 20120707 EG\n" "OK1TI JO70DP 20120707 CG\n" "OK2JK JN89HE 20120707 C\n" "OL3Y JN69JJ 20120707 C\n" "OK1KMG JN89IW 20120707 CEG\n" "OK2UDE JN89JS 20120707 E\n" "OL3Z JN79FX 20120707 CEG\n" "OK1VSJ JN69IS 20120707 C\n" "OK1KHA JO80BJ 20120707 C\n" "OK1AMD JO70ND 20120707 C\n" "OK2VJC JN99CM 20120707 LM\n" "OK1BMW JO70EI 20120707 CE\n" "OK1ARO JN79LS 20120707 CE\n" "OK1FEN JO70NA 20120707 CEGJK\n" "OL4A JO60RN 20120707 C\n" "OK2HBR JN89PP 20120707 CE\n" "OK1RAR JN79CX 20120707 C\n" "OK1KMP JO70SM 20120707 C\n" "OK2MZL JN89SN 20120707 CE\n" "OK1KHI JN69JJ 20120707 E\n" "OK1KRY JN69ER 20120707 EGK\n" "OK2KYJ JN89QQ 20120707 CEG\n" "OK1KCB JN79GB 20120707 CE\n" "OK5AMA JO70EQ 20120707 CE\n" "OK1KHK JO70WE 20120707 C\n" "OK2KYK JN89NB 20120707 C\n" "OK1KHL JO80AC 20120707 C\n" "OK2DEY JN99EU 20120707 CE\n" "OK2OAJ JN99BU 20120707 C\n" "OK1IBB JN69MJ 20120707 E\n" "OK2SSJ JN89WW 20120707 CE\n" ; const char txt_tucnaknames[58947] = "OK1A\tMilan\n" "OK1AA\tLudek\n" "OK1AAC\tOldrich\n" "OK1AAF\tRudolf\n" "OK1AAI\tZdenek\n" "OK1AAM\tPetr\n" "OK1AAP\tAles\n" "OK1AAU\tFrantisek\n" "OK1AAZ\tJosef\n" "OK1ABA\tJosef\n" "OK1ABF\tVladimir\n" "OK1ABG\tVaclav\n" "OK1ABR\tAntonin\n" "OK1ACE\tVaclav\n" "OK1ACF\tZdenek\n" "OK1ACK\tJiri\n" "OK1ACO\tJiri\n" "OK1ACP\tLubos\n" "OK1ACS\tVaclav\n" "OK1AD\tLadislav\n" "OK1ADA\tAlena\n" "OK1ADM\tVaclav\n" "OK1ADO\tFrantisek\n" "OK1ADR\tJuraj\n" "OK1ADT\tPavel\n" "OK1ADY\tJozef\n" "OK1AE\tZdenek\n" "OK1AEB\tKarel\n" "OK1AEM\tJosef\n" "OK1AEU\tMartin\n" "OK1AEV\tPavel\n" "OK1AEW\tJaroslav\n" "OK1AEY\tBozetech\n" "OK1AEZ\tJiri\n" "OK1AFI\tVladimir\n" "OK1AFJ\tErvin\n" "OK1AFO\tAntonin\n" "OK1AFR\tRostislav\n" "OK1AFU\tJan\n" "OK1AFV\tVladislav\n" "OK1AG\tZdenek\n" "OK1AGC\tAles\n" "OK1AGE\tStanislav\n" "OK1AGM\tJosef\n" "OK1AGR\tVlasta\n" "OK1AGS\tMiroslav\n" "OK1AHB\tAntonin\n" "OK1AHG\tJan\n" "OK1AHJ\tJaroslav\n" "OK1AHM\tLubomir\n" "OK1AHO\tPribin\n" "OK1AHV\tBeda\n" "OK1AHX\tStanislav\n" "OK1AHY\tOldrich\n" "OK1AI\tLubomir\n" "OK1AIC\tStanislav\n" "OK1AIG\tMiroslav\n" "OK1AIJ\tKarel\n" "OK1AIK\tZdenek\n" "OK1AIL\tMiloslav\n" "OK1AIM\tVaclav\n" "OK1AIT\tJaromir\n" "OK1AIX\tOldrich\n" "OK1AIY\tPavel\n" "OK1AIZ\tMiloslav\n" "OK1AJ\tPetr\n" "OK1AJD\tVladimir\n" "OK1AJJ\tJosef\n" "OK1AJL\tJosef\n" "OK1AJR\tVaclav\n" "OK1AJU\tJiri\n" "OK1AJY\tStanislav\n" "OK1AK\tVlastimil\n" "OK1AKF\tCestmir\n" "OK1AKI\tPetr\n" "OK1AKJ\tFrantisek\n" "OK1AKM\tRadek\n" "OK1AKU\tStepan\n" "OK1AL\tKarel\n" "OK1ALA\tVaclav\n" "OK1ALB\tJaroslav\n" "OK1ALG\tVaclav\n" "OK1ALK\tHana\n" "OK1ALL\tVaclav\n" "OK1ALM\tJaroslav\n" "OK1ALR\tKarel\n" "OK1ALU\tBohumil\n" "OK1ALY\tIvan\n" "OK1ALZ\tJosef\n" "OK1AMD\tMilos\n" "OK1AME\tMilan\n" "OK1AMF\tFrantisek\n" "OK1AMJ\tJaroslav\n" "OK1AMO\tVladimir\n" "OK1AMP\tFrantisek\n" "OK1AMT\tPavel\n" "OK1AMU\tJiri\n" "OK1AMY\tAlek\n" "OK1ANA\tVaclav\n" "OK1ANJ\tJindrich\n" "OK1ANM\tStanislav\n" "OK1ANN\tVladimir\n" "OK1ANO\tJosef\n" "OK1ANR\tVaclav\n" "OK1ANS\tIvan\n" "OK1ANT\tVaclav\n" "OK1ANV\tVaclav\n" "OK1ANY\tJosef\n" "OK1AO\tAdolf\n" "OK1AOF\tIvo\n" "OK1AOT\tAdolf\n" "OK1AOU\tJaroslav\n" "OK1AOV\tJiri\n" "OK1AOZ\tJiri\n" "OK1APB\tLubos\n" "OK1APC\tJosef\n" "OK1APE\tAlois\n" "OK1APF\tJiri\n" "OK1APG\tJiri\n" "OK1API\tJosef\n" "OK1APR\tJan\n" "OK1APS\tJan\n" "OK1APT\tMiroslav\n" "OK1APU\tMojmir\n" "OK1APV\tAntonin\n" "OK1APW\tMiroslav\n" "OK1APZ\tEmil\n" "OK1AQB\tJan\n" "OK1AQL\tJindrich\n" "OK1AQN\tMiroslav\n" "OK1AQO\tJosef\n" "OK1AQT\tVladimir\n" "OK1AQW\tZdenek\n" "OK1AR\tZdenek\n" "OK1ARA\tJiri\n" "OK1ARE\tPetr\n" "OK1ARI\tJaroslava\n" "OK1ARN\tJiri\n" "OK1ARO\tBohumil\n" "OK1ARQ\tJosef\n" "OK1AS\tLudovit\n" "OK1ASG\tAntonin\n" "OK1ASJ\tJaroslav\n" "OK1ASK\tJana\n" "OK1ASR\tJosef\n" "OK1AT\tJiri\n" "OK1ATC\tKarel\n" "OK1ATI\tJaroslav\n" "OK1ATL\tPetr\n" "OK1ATN\tStanislav\n" "OK1ATP\tJaroslav\n" "OK1ATR\tDalibor\n" "OK1ATW\tJosef\n" "OK1ATX\tJan\n" "OK1ATY\tJaromir\n" "OK1AU\tStanislav\n" "OK1AUB\tVladislav\n" "OK1AUC\tJosef\n" "OK1AUE\tMiloslav\n" "OK1AUK\tJozef\n" "OK1AUN\tVaclav\n" "OK1AUO\tTomas\n" "OK1AUP\tVaclav\n" "OK1AUV\tVladimir\n" "OK1AUX\tBedrich\n" "OK1AUZ\tZdenek\n" "OK1AVI\tJiri\n" "OK1AVO\tJaroslav\n" "OK1AVP\tJan\n" "OK1AVR\tJan\n" "OK1AVV\tJiri\n" "OK1AVY\tDobroslav\n" "OK1AW\tPavel\n" "OK1AWC\tMiroslav\n" "OK1AWG\tJosef\n" "OK1AWH\tBohuslav\n" "OK1AWJ\tJaroslav\n" "OK1AWK\tMilos\n" "OK1AWO\tStanislav\n" "OK1AWR\tJiri\n" "OK1AWU\tMilos\n" "OK1AXA\tLadislav\n" "OK1AXB\tJosef\n" "OK1AXG\tBohumil\n" "OK1AXK\tJan\n" "OK1AXL\tJosef\n" "OK1AXX\tPavel\n" "OK1AY\tJosef\n" "OK1AYA\tSilvestr\n" "OK1AYB\tVaclav\n" "OK1AYD\tJosef\n" "OK1AYE\tJiri\n" "OK1AYF\tVladimir\n" "OK1AYN\tVladislav\n" "OK1AYR\tJan\n" "OK1AYU\tPetr\n" "OK1AYV\tFrantisek\n" "OK1AYW\tVaclav\n" "OK1AYY\tJaroslav\n" "OK1AYZ\tPavel\n" "OK1AZD\tEmil\n" "OK1AZR\tBohdan\n" "OK1BA\tKarel\n" "OK1BAF\tJan\n" "OK1BAH\tJiri\n" "OK1BB\tJaroslav\n" "OK1BC\tRobert\n" "OK1BET\tMiroslav\n" "OK1BF\tRoman\n" "OK1BI\tJiri\n" "OK1BJH\tJosef\n" "OK1BKO\tRadek\n" "OK1BLU\tMilan\n" "OK1BN\tPetr\n" "OK1BO\tMikulas\n" "OK1BPO\tPetr\n" "OK1BQT\tVlastimil\n" "OK1BTW\tJiri\n" "OK1BU\tJindrich\n" "OK1BWF\tLadislav\n" "OK1BYR\tMartin\n" "OK1BZ\tJaroslav\n" "OK1CAG\tMilan\n" "OK1CAM\tOlga\n" "OK1CAP\tAles\n" "OK1CAU\tLubos\n" "OK1CAV\tJiri\n" "OK1CB\tJozef\n" "OK1CBB\tJan\n" "OK1CBI\tMiloslav\n" "OK1CBM\tMichal\n" "OK1CBR\tRoman\n" "OK1CC\tKarel\n" "OK1CCK\tZdenek\n" "OK1CCM\tJan\n" "OK1CCS\tJosef\n" "OK1CD\tKarel\n" "OK1CDA\tVladimir\n" "OK1CDE\tPetr\n" "OK1CDF\tVladimir\n" "OK1CDG\tMilan\n" "OK1CDS\tDaniel\n" "OK1CDT\tJakub\n" "OK1CDU\tPetr\n" "OK1CEI\tVlastimil\n" "OK1CF\tKarel\n" "OK1CFK\tFrantisek\n" "OK1CGA\tMartin\n" "OK1CGQ\tPavel\n" "OK1CH\tJan\n" "OK1CHC\tJiri\n" "OK1CHE\tJiri\n" "OK1CHL\tMiroslav\n" "OK1CHM\tJan\n" "OK1CI\tJosef\n" "OK1CID\tStanislav\n" "OK1CIG\tZdenek\n" "OK1CIS\tJiri\n" "OK1CJ\tJaroslav\n" "OK1CJB\tJaroslav\n" "OK1CJH\tJan\n" "OK1CJJ\tJan\n" "OK1CJN\tJiri\n" "OK1CJS\tJaroslav\n" "OK1CJT\tJosef\n" "OK1CKF\tFrantisek\n" "OK1CKH\tVladimir\n" "OK1CKV\tVaclav\n" "OK1CLA\tLudek\n" "OK1CLD\tOndrej\n" "OK1CLO\tLadislav\n" "OK1CLR\tLudvik\n" "OK1CLT\tLibor\n" "OK1CLZ\tZdenek\n" "OK1CMA\tMartin\n" "OK1CMD\tLubos\n" "OK1CMJ\tJosef\n" "OK1CMQ\tGabriel\n" "OK1CMU\tPetr\n" "OK1CMV\tVaclav\n" "OK1CNM\tJaroslav\n" "OK1CNN\tVaclav\n" "OK1CO\tJiri\n" "OK1COM\tJan\n" "OK1COT\tOndrej\n" "OK1CP\tIvan\n" "OK1CPB\tLibor\n" "OK1CPR\tRadek\n" "OK1CPS\tArnost\n" "OK1CPU\tMiloslav\n" "OK1CR\tFrantisek\n" "OK1CRM\tPavol\n" "OK1CRS\tPavel\n" "OK1CRX\tKatarina\n" "OK1CS\tEmil\n" "OK1CSS\tStepan\n" "OK1CT\tMilos\n" "OK1CTA\tTomas\n" "OK1CTB\tBedrich\n" "OK1CTM\tPavel\n" "OK1CTT\tRostislav\n" "OK1CU\tVitezslav\n" "OK1CUV\tZdenek\n" "OK1CVC\tVaclav\n" "OK1CVM\tMartina\n" "OK1CVP\tVaclav\n" "OK1CW\tVladimir\n" "OK1CYB\tLenka\n" "OK1CYC\tMiroslav\n" "OK1DAE\tPetr\n" "OK1DAH\tJan\n" "OK1DAI\tAntonin\n" "OK1DAK\tVladimir\n" "OK1DAM\tJosef\n" "OK1DAR\tJiri\n" "OK1DAU\tJaroslav\n" "OK1DAV\tOldrich\n" "OK1DBF\tOtakar\n" "OK1DBK\tJan\n" "OK1DBL\tAlexander\n" "OK1DBQ\tMilan\n" "OK1DBS\tDavid\n" "OK1DBT\tZdenek\n" "OK1DBU\tIvan\n" "OK1DC\tDusan\n" "OK1DCA\tAndre\n" "OK1DCB\tFrantisek\n" "OK1DCF\tLadislav\n" "OK1DCI\tJiri\n" "OK1DCK\tLadislav\n" "OK1DCM\tJiri\n" "OK1DCP\tFrantisek\n" "OK1DCS\tVaclav\n" "OK1DCU\tJaroslav\n" "OK1DCV\tFrantisek\n" "OK1DCX\tVojtech\n" "OK1DDA\tFrantisek\n" "OK1DDB\tJan\n" "OK1DDC\tJindrich\n" "OK1DDD\tKarel\n" "OK1DDJ\tKarel\n" "OK1DDQ\tJiri\n" "OK1DDV\tVladimir\n" "OK1DDX\tVaclav\n" "OK1DEC\tJosef\n" "OK1DEF\tZdenek\n" "OK1DEK\tJaromir\n" "OK1DEM\tJosef\n" "OK1DEP\tRadoslav\n" "OK1DEU\tRoman\n" "OK1DEZ\tJiri\n" "OK1DF\tFrantisek\n" "OK1DFC\tZdenek\n" "OK1DFE\tEva\n" "OK1DFK\tFrantisek\n" "OK1DFR\tPavel\n" "OK1DFT\tAntonin\n" "OK1DG\tKarel\n" "OK1DGT\tZdenek\n" "OK1DGU\tVladimir\n" "OK1DGV\tMilos\n" "OK1DGY\tJindrich\n" "OK1DH\tRobert\n" "OK1DHA\tJiri\n" "OK1DHJ\tJan\n" "OK1DHN\tVladimir\n" "OK1DHP\tPetr\n" "OK1DHR\tHilbert\n" "OK1DHZ\tKarel\n" "OK1DIB\tAdolf\n" "OK1DID\tVladimir\n" "OK1DIE\tPetr\n" "OK1DIK\tKarel\n" "OK1DIL\tAlois\n" "OK1DIN\tPavel\n" "OK1DIP\tMiloslav\n" "OK1DIX\tLadislav\n" "OK1DJD\tJosef\n" "OK1DJE\tJosef\n" "OK1DJL\tJosef\n" "OK1DJO\tMartin\n" "OK1DJS\tJan\n" "OK1DJT\tTomas\n" "OK1DJW\tJiri\n" "OK1DKA\tBohuslav\n" "OK1DKB\tRudolf\n" "OK1DKK\tJan\n" "OK1DKM\tMilos\n" "OK1DKO\tKarel\n" "OK1DKR\tRudolf\n" "OK1DKU\tVladimir\n" "OK1DKX\tJaroslav\n" "OK1DLA\tLudek\n" "OK1DLB\tMilos\n" "OK1DLS\tMiloslav\n" "OK1DLX\tMiroslav\n" "OK1DLY\tLadislav\n" "OK1DLZ\tLubos\n" "OK1DM\tOtakar\n" "OK1DMB\tMilos\n" "OK1DMD\tHelena\n" "OK1DMM\tMilos\n" "OK1DMP\tMilan\n" "OK1DMQ\tDrahomir\n" "OK1DMT\tZdenek\n" "OK1DMW\tMilena\n" "OK1DMZ\tJaroslav\n" "OK1DN\tVaclav\n" "OK1DNJ\tJaroslav\n" "OK1DNL\tJiri\n" "OK1DNM\tMilan\n" "OK1DNQ\tVlasta\n" "OK1DNS\tMichal\n" "OK1DNT\tDenis\n" "OK1DNU\tBohuslav\n" "OK1DNV\tVaclav\n" "OK1DNW\tJaroslav\n" "OK1DNZ\tPavel\n" "OK1DO\tJiri\n" "OK1DOA\tJosef\n" "OK1DOB\tOtakar\n" "OK1DOF\tPetr\n" "OK1DOH\tJan\n" "OK1DOL\tLibor\n" "OK1DOM\tMiroslav\n" "OK1DOR\tAntonin\n" "OK1DOS\tZdenek\n" "OK1DOU\tMiloslav\n" "OK1DOW\tVojta\n" "OK1DOY\tZdenek\n" "OK1DOZ\tBedrich\n" "OK1DP\tPetr\n" "OK1DPA\tLadislav\n" "OK1DPF\tPetr\n" "OK1DPO\tJosef\n" "OK1DPQ\tPetr\n" "OK1DPR\tIvan\n" "OK1DPU\tJan\n" "OK1DPV\tPavel\n" "OK1DPX\tPetr\n" "OK1DQA\tMartin\n" "OK1DQP\tAles\n" "OK1DQR\tFrantisek\n" "OK1DQT\tJiri\n" "OK1DR\tJiri\n" "OK1DRD\tMiroslav\n" "OK1DRG\tEduard\n" "OK1DRH\tJiri\n" "OK1DRJ\tJiri\n" "OK1DRQ\tPavel\n" "OK1DRX\tJiri\n" "OK1DRZ\tRostislav\n" "OK1DS\tLeona\n" "OK1DSA\tRoman\n" "OK1DSD\tDaniel\n" "OK1DSF\tKarel\n" "OK1DSN\tMichal\n" "OK1DSP\tBretislav\n" "OK1DSS\tSieghard\n" "OK1DST\tAlexandr\n" "OK1DSX\tJaroslav\n" "OK1DSZ\tZdenek\n" "OK1DT\tZdenek\n" "OK1DTM\tJosef\n" "OK1DTN\tRudolf\n" "OK1DTP\tDavid\n" "OK1DTU\tPetr\n" "OK1DTX\tVera\n" "OK1DUB\tMiroslav\n" "OK1DUG\tPetr\n" "OK1DUO\tJaroslav\n" "OK1DUS\tMartin\n" "OK1DUT\tJiri\n" "OK1DUV\tJiri\n" "OK1DVA\tOlga\n" "OK1DVB\tVaclav\n" "OK1DVG\tVaclav\n" "OK1DVK\tVojtech\n" "OK1DVN\tVojtech\n" "OK1DVP\tValdemar\n" "OK1DVU\tStanislav\n" "OK1DVW\tAlois\n" "OK1DVX\tLadislav\n" "OK1DVZ\tZdenek\n" "OK1DWC\tMilan\n" "OK1DWD\tJarmila\n" "OK1DWF\tKarel\n" "OK1DWJ\tAles\n" "OK1DX\tPavel\n" "OK1DXE\tVaclav\n" "OK1DXF\tRostislav\n" "OK1DXI\tMiloslav\n" "OK1DXJ\tLudvik\n" "OK1DXK\tJiri\n" "OK1DXL\tJiri\n" "OK1DXM\tJaromir\n" "OK1DXO\tZbynek\n" "OK1DXR\tPavel\n" "OK1DXT\tAntonin\n" "OK1DY\tKamil\n" "OK1DYW\tHelena\n" "OK1DYX\tMarie\n" "OK1DZA\tZdenka\n" "OK1DZG\tJiri\n" "OK1DZH\tHelena\n" "OK1DZM\tMichal\n" "OK1DZR\tLudek\n" "OK1EA\tVlastimil\n" "OK1EC\tRadek\n" "OK1ED\tJan\n" "OK1EE\tMartin\n" "OK1EG\tVladimir\n" "OK1EK\tFrantisek\n" "OK1ELA\tMartin\n" "OK1EM\tEdvin\n" "OK1EO\tJaroslav\n" "OK1EP\tKarel\n" "OK1EQ\tPetr\n" "OK1ES\tJosef\n" "OK1ET\tPetr\n" "OK1EV\tJan\n" "OK1EVA\tEva\n" "OK1EY\tPavel\n" "OK1FA\tJaroslav\n" "OK1FAC\tLubos\n" "OK1FAG\tJiri\n" "OK1FAH\tJosef\n" "OK1FAI\tVaclav\n" "OK1FAK\tSvojmir\n" "OK1FAM\tLudvik\n" "OK1FAN\tFrantisek\n" "OK1FAO\tJiri\n" "OK1FAP\tBohumil\n" "OK1FAT\tMiroslav\n" "OK1FAU\tJaroslav\n" "OK1FAY\tZdenek\n" "OK1FBE\tVaclav\n" "OK1FBH\tKarel\n" "OK1FBI\tLudek\n" "OK1FBL\tJosefa\n" "OK1FBO\tKarel\n" "OK1FBU\tDusan\n" "OK1FBW\tMarcel\n" "OK1FCA\tStanislav\n" "OK1FCB\tJiri\n" "OK1FCF\tJiri\n" "OK1FCJ\tPetr\n" "OK1FCK\tPetr\n" "OK1FCR\tVladimir\n" "OK1FCS\tVaclav\n" "OK1FCT\tJosef\n" "OK1FCX\tRadovan\n" "OK1FD\tVaclav\n" "OK1FDC\tFrantisek\n" "OK1FDE\tRadoslav\n" "OK1FDH\tPavel\n" "OK1FDN\tFrantisek\n" "OK1FDR\tRadim\n" "OK1FDS\tDalibor\n" "OK1FDY\tRudolf\n" "OK1FDZ\tPavel\n" "OK1FED\tJosef\n" "OK1FEK\tJaroslav\n" "OK1FEN\tRobert\n" "OK1FET\tVladimir\n" "OK1FF\tPetr\n" "OK1FFE\tJosef\n" "OK1FFH\tMojmir\n" "OK1FFP\tJindrich\n" "OK1FFR\tRudolf\n" "OK1FFS\tPetr\n" "OK1FFU\tPetr\n" "OK1FFV\tJaromir\n" "OK1FFW\tPavel\n" "OK1FFY\tHelena\n" "OK1FGA\tJosef\n" "OK1FGB\tBohuslav\n" "OK1FGD\tLubos\n" "OK1FGE\tVladimir\n" "OK1FGF\tJirina\n" "OK1FGH\tMiroslav\n" "OK1FGN\tKarel\n" "OK1FGS\tKarel\n" "OK1FGU\tRudolf\n" "OK1FGY\tJosef\n" "OK1FGZ\tLadislav\n" "OK1FHA\tFrantisek\n" "OK1FHD\tJosef\n" "OK1FHE\tEduard\n" "OK1FHF\tFrantisek\n" "OK1FHG\tPetr\n" "OK1FHI\tRadek\n" "OK1FHP\tFrantisek\n" "OK1FHT\tFrantisek\n" "OK1FI\tVaclav\n" "OK1FII\tVladimir\n" "OK1FIK\tVladislav\n" "OK1FIM\tVlastimil\n" "OK1FIP\tPetr\n" "OK1FIR\tVaclav\n" "OK1FIV\tIvan\n" "OK1FIY\tZdenek\n" "OK1FJB\tJan\n" "OK1FJD\tDavid\n" "OK1FJJ\tJosef\n" "OK1FJK\tJan\n" "OK1FJN\tJosef\n" "OK1FJP\tJindrich\n" "OK1FJS\tJaroslav\n" "OK1FJW\tBohuslav\n" "OK1FJX\tJindrich\n" "OK1FJY\tPavel\n" "OK1FK\tFrantisek\n" "OK1FKD\tJosef\n" "OK1FKF\tKarel\n" "OK1FKH\tJaroslav\n" "OK1FKL\tKarel\n" "OK1FKR\tJosef\n" "OK1FKV\tPetr\n" "OK1FL\tJosef\n" "OK1FLB\tVladimir\n" "OK1FLC\tMichal\n" "OK1FLK\tVladimir\n" "OK1FLR\tLadislav\n" "OK1FLT\tLubomir\n" "OK1FLX\tMartin\n" "OK1FLY\tKarel\n" "OK1FM\tMilan\n" "OK1FMD\tMartin\n" "OK1FMF\tMilan\n" "OK1FMG\tVitezslav\n" "OK1FMJ\tJosef\n" "OK1FML\tLadislav\n" "OK1FMM\tMilan\n" "OK1FMS\tMartin\n" "OK1FMU\tJiri\n" "OK1FMW\tLadislav\n" "OK1FMX\tMilan\n" "OK1FMY\tMilos\n" "OK1FNA\tVladimir\n" "OK1FNI\tMiloslav\n" "OK1FNN\tMarek\n" "OK1FNS\tZlata\n" "OK1FNT\tTomas\n" "OK1FNV\tJiri\n" "OK1FNX\tVladimir\n" "OK1FOD\tOldrich\n" "OK1FOG\tJan\n" "OK1FOM\tVaclav\n" "OK1FOU\tJindrich\n" "OK1FOX\tJiri\n" "OK1FP\tFrantisek\n" "OK1FPA\tPetr\n" "OK1FPD\tPetr\n" "OK1FPE\tMartin\n" "OK1FPG\tJiri\n" "OK1FPL\tLiboslav\n" "OK1FPM\tMiroslav\n" "OK1FPQ\tLadislav\n" "OK1FPR\tMilos\n" "OK1FPS\tPavel\n" "OK1FQC\tMiroslav\n" "OK1FQT\tKarel\n" "OK1FR\tFrantisek\n" "OK1FRA\tJosef\n" "OK1FRE\tFrantisek\n" "OK1FRG\tPetr\n" "OK1FRI\tIvo\n" "OK1FRJ\tJosef\n" "OK1FRN\tMartin\n" "OK1FRO\tFrantisek\n" "OK1FRT\tLadislav\n" "OK1FRU\tPavel\n" "OK1FRZ\tVladimir\n" "OK1FSM\tJiri\n" "OK1FST\tStefan\n" "OK1FSX\tTomas\n" "OK1FT\tJiri\n" "OK1FTC\tTomas\n" "OK1FTD\tMichael\n" "OK1FTG\tKarel\n" "OK1FTH\tPavel\n" "OK1FTJ\tJiri\n" "OK1FTK\tAntonin\n" "OK1FTM\tJaroslav\n" "OK1FTS\tJaroslav\n" "OK1FTV\tVladimir\n" "OK1FTW\tJiri\n" "OK1FUA\tMartin\n" "OK1FUK\tKamil\n" "OK1FUU\tMichal\n" "OK1FUW\tJaroslav\n" "OK1FV\tVaclav\n" "OK1FVI\tVitezslav\n" "OK1FVJ\tJiri\n" "OK1FVN\tJakub\n" "OK1FVS\tVaclav\n" "OK1FVU\tVladimir\n" "OK1FVV\tVladimir\n" "OK1FWA\tLadislav\n" "OK1FWF\tFrantisek\n" "OK1FWI\tPavel\n" "OK1FWO\tOndrej\n" "OK1FWQ\tJosef\n" "OK1FWS\tJozef\n" "OK1FWT\tFrantisek\n" "OK1FWU\tDana\n" "OK1FWW\tMiroslav\n" "OK1FXF\tTomas\n" "OK1FXG\tMartin\n" "OK1FXK\tVitezslav\n" "OK1FYY\tVladimir\n" "OK1FZH\tZdenek\n" "OK1FZJ\tJosef\n" "OK1FZK\tZdenek\n" "OK1FZT\tJan\n" "OK1GEO\tJiri\n" "OK1GET\tDavid\n" "OK1GF\tZdenek\n" "OK1GHZ\tMichal\n" "OK1GI\tVojtech\n" "OK1GK\tPavel\n" "OK1GKO\tKurt\n" "OK1GLB\tJiri\n" "OK1GM\tPetr\n" "OK1GMB\tBohumil\n" "OK1GMR\tMilan\n" "OK1GP\tGerhard\n" "OK1GPC\tStanislav\n" "OK1GS\tMiroslav\n" "OK1GSB\tJan\n" "OK1GT\tJiri\n" "OK1GTH\tTomas\n" "OK1GU\tPavel\n" "OK1GV\tMiroslav\n" "OK1HAB\tJosef\n" "OK1HAI\tAlois\n" "OK1HAK\tMilan\n" "OK1HAL\tJitka\n" "OK1HAN\tFrantisek\n" "OK1HAS\tLudek\n" "OK1HAY\tAlois\n" "OK1HB\tRudolf\n" "OK1HBB\tJiri\n" "OK1HBJ\tJosef\n" "OK1HBM\tMiroslav\n" "OK1HBT\tPetr\n" "OK1HC\tVlastimil\n" "OK1HCA\tAlois\n" "OK1HCC\tVaclav\n" "OK1HCD\tStanislav\n" "OK1HCF\tOtakar\n" "OK1HCG\tKarel\n" "OK1HCW\tHana\n" "OK1HDF\tDalibor\n" "OK1HDR\tJan\n" "OK1HEH\tEduard\n" "OK1HFE\tJiri\n" "OK1HFP\tFrantisek\n" "OK1HGB\tBedrich\n" "OK1HH\tFrantisek\n" "OK1HI\tLukas\n" "OK1HIL\tJan\n" "OK1HIR\tJindriska\n" "OK1HJI\tJiri\n" "OK1HJP\tJaroslav\n" "OK1HJS\tJaroslav\n" "OK1HJV\tJaromir\n" "OK1HJZ\tJiri\n" "OK1HK\tRudolf\n" "OK1HKF\tJaroslav\n" "OK1HKW\tFrantisek\n" "OK1HL\tJaroslav\n" "OK1HLB\tLadislav\n" "OK1HLE\tJaroslav\n" "OK1HLS\tLadislav\n" "OK1HMB\tMichal\n" "OK1HMD\tMartin\n" "OK1HMN\tMartin\n" "OK1HMO\tMichal\n" "OK1HMP\tMartin\n" "OK1HMV\tMichal\n" "OK1HOC\tPetr\n" "OK1HP\tPetr\n" "OK1HPP\tPetr\n" "OK1HPS\tMiroslav\n" "OK1HPX\tPetr\n" "OK1HRA\tDaniel\n" "OK1HSF\tPetr\n" "OK1HSJ\tJan\n" "OK1HSL\tStefan\n" "OK1HSV\tStanislav\n" "OK1HT\tPetr\n" "OK1HTM\tPetra\n" "OK1HTP\tHana\n" "OK1HTV\tTomas\n" "OK1HWB\tMichal\n" "OK1HWI\tMilan\n" "OK1HWS\tRudolf\n" "OK1HWU\tJiri\n" "OK1HX\tJaroslav\n" "OK1HXZ\tPetr\n" "OK1HYN\tHynek\n" "OK1IA\tJan\n" "OK1IAL\tPavel\n" "OK1IAO\tJaroslav\n" "OK1IAS\tVaclav\n" "OK1IAT\tJosef\n" "OK1IAY\tMiroslav\n" "OK1IBB\tFrantisek\n" "OK1IBK\tBohumil\n" "OK1IBL\tVaclav\n" "OK1IBM\tPetr\n" "OK1IBQ\tKarel\n" "OK1IC\tTomas\n" "OK1ICQ\tTomas\n" "OK1ICW\tMichal\n" "OK1ID\tDaniel\n" "OK1IDP\tZbynek\n" "OK1IDZ\tZdenek\n" "OK1IE\tJan\n" "OK1IEC\tJiri\n" "OK1IEF\tVitezslav\n" "OK1IEI\tIvan\n" "OK1IES\tEmanuel\n" "OK1IF\tMilan\n" "OK1IFE\tStanislav\n" "OK1IFT\tMartin\n" "OK1IFZ\tFrantisek\n" "OK1IGO\tPetr\n" "OK1IGZ\tZdenek\n" "OK1IHB\tDarina\n" "OK1IHG\tHana\n" "OK1IHR\tRobert\n" "OK1IHZ\tZdenek\n" "OK1II\tJan\n" "OK1IIJ\tJan\n" "OK1IIK\tIvana\n" "OK1IIN\tAlexej\n" "OK1IIV\tIvo\n" "OK1IJC\tMilan\n" "OK1IJK\tKarel\n" "OK1IJS\tJosef\n" "OK1IJV\tJaroslav\n" "OK1IK\tVladimir\n" "OK1IKE\tJiri\n" "OK1IKP\tKarel\n" "OK1IKQ\tPetr\n" "OK1IL\tIvan\n" "OK1ILB\tLadislav\n" "OK1IM\tJiri\n" "OK1IMC\tMilan\n" "OK1IMV\tVladislav\n" "OK1IN\tPetr\n" "OK1INE\tMiroslav\n" "OK1ING\tPavel\n" "OK1INO\tDavid\n" "OK1INT\tFrantisek\n" "OK1IO\tJiri\n" "OK1IOA\tJaroslav\n" "OK1IOK\tOldrich\n" "OK1IPE\tEduard\n" "OK1IPS\tPavel\n" "OK1IPT\tJosef\n" "OK1IPV\tPetr\n" "OK1IQN\tKarel\n" "OK1IRZ\tJaroslav\n" "OK1ISC\tIvo\n" "OK1ISH\tStanislav\n" "OK1ISW\tPavel\n" "OK1ITK\tPetr\n" "OK1IUO\tAlexandr\n" "OK1IUS\tZdenek\n" "OK1IVF\tVaclav\n" "OK1IVI\tIvana\n" "OK1IVO\tJan\n" "OK1IVP\tVaclav\n" "OK1IVU\tVladimir\n" "OK1IVW\tVlastimil\n" "OK1IVZ\tVladislav\n" "OK1IW\tMilan\n" "OK1IWI\tJaromir\n" "OK1IWN\tJan\n" "OK1IWP\tAlena\n" "OK1IWR\tRadek\n" "OK1IWS\tWolfgang\n" "OK1IZK\tEliska\n" "OK1JAE\tJiri\n" "OK1JAF\tFrantisek\n" "OK1JAG\tJaroslav\n" "OK1JAM\tLadislav\n" "OK1JAX\tPavel\n" "OK1JBO\tBozena\n" "OK1JC\tJan\n" "OK1JCF\tPavel\n" "OK1JCI\tJiri\n" "OK1JCQ\tJaroslav\n" "OK1JDF\tJiri\n" "OK1JDJ\tJiri\n" "OK1JDR\tJan\n" "OK1JDU\tJosef\n" "OK1JDZ\tStanislav\n" "OK1JEE\tBohumil\n" "OK1JEG\tFrantisek\n" "OK1JEK\tZdenek\n" "OK1JFC\tFrantisek\n" "OK1JFF\tPetr\n" "OK1JFH\tJosef\n" "OK1JFP\tPavel\n" "OK1JFR\tJirka\n" "OK1JGM\tMiroslav\n" "OK1JH\tJiri\n" "OK1JHF\tJosef\n" "OK1JHH\tHelena\n" "OK1JHM\tMilan\n" "OK1JHQ\tJaroslav\n" "OK1JHU\tJaroslav\n" "OK1JHV\tJaroslav\n" "OK1JIA\tJiri\n" "OK1JIC\tJiri\n" "OK1JIG\tJiri\n" "OK1JIM\tJaroslav\n" "OK1JIR\tJiri\n" "OK1JIX\tJosef\n" "OK1JJ\tJiri\n" "OK1JJT\tJana\n" "OK1JK\tJan\n" "OK1JKA\tAdam\n" "OK1JKM\tMiloslav\n" "OK1JKN\tBohuslav\n" "OK1JKP\tPetr\n" "OK1JKR\tZdenek\n" "OK1JKT\tKarel\n" "OK1JKU\tPavel\n" "OK1JLO\tMartin\n" "OK1JLX\tAlex\n" "OK1JLZ\tVladimir\n" "OK1JM\tJiri\n" "OK1JMB\tMiroslav\n" "OK1JMD\tMartin\n" "OK1JME\tArnost\n" "OK1JMJ\tMiroslav\n" "OK1JMK\tMaxim\n" "OK1JMO\tMiroslav\n" "OK1JMP\tPetr\n" "OK1JMS\tMilan\n" "OK1JMW\tPavel\n" "OK1JMZ\tZdenek\n" "OK1JNB\tJan\n" "OK1JNU\tVaclav\n" "OK1JNW\tLukas\n" "OK1JOL\tJindrich\n" "OK1JON\tJaromir\n" "OK1JOY\tMiroslav\n" "OK1JPB\tPetr\n" "OK1JPH\tJiri\n" "OK1JPO\tPetr\n" "OK1JPP\tPetr\n" "OK1JQD\tJaroslav\n" "OK1JQP\tJaroslav\n" "OK1JR\tStanislav\n" "OK1JRA\tTomas\n" "OK1JRU\tKarel\n" "OK1JRZ\tRudolf\n" "OK1JSA\tStefan\n" "OK1JSF\tJaromir\n" "OK1JSI\tIvan\n" "OK1JSL\tJaroslav\n" "OK1JST\tJiri\n" "OK1JSV\tStepan\n" "OK1JTA\tJiri\n" "OK1JTC\tJiri\n" "OK1JTH\tJosef\n" "OK1JTM\tMikulas\n" "OK1JTV\tTomas\n" "OK1JTZ\tLibor\n" "OK1JV\tJiri\n" "OK1JVA\tJiri\n" "OK1JVP\tVilibald\n" "OK1JVS\tVaclav\n" "OK1JVT\tVaclav\n" "OK1JVU\tMarie\n" "OK1JVX\tMilan\n" "OK1JVY\tJaroslav\n" "OK1JWV\tVladimir\n" "OK1JX\tMarek\n" "OK1JXD\tJosef\n" "OK1JXU\tPetr\n" "OK1JXX\tJosef\n" "OK1JY\tJaroslav\n" "OK1JYL\tJana\n" "OK1JYT\tJaroslav\n" "OK1JZ\tJiri\n" "OK1JZI\tJiri\n" "OK1JZN\tZdenek\n" "OK1JZS\tZdenek\n" "OK1JZV\tZdenek\n" "OK1KA\tJosef\n" "OK1KBI\tDDM\n" "OK1KC\tJosef\n" "OK1KD\tIvo\n" "OK1KF\tVaclav\n" "OK1KH\tOtto\n" "OK1KI\tMilada\n" "OK1KIX\tOldrich\n" "OK1KJ\tMiroslav\n" "OK1KK\tRoman\n" "OK1KKT\tTanvald\n" "OK1KM\tKarel\n" "OK1KN\tJaromir\n" "OK1KO\tVladimir\n" "OK1KR\tRoman\n" "OK1KT\tVratislav\n" "OK1KV\tMarek\n" "OK1KW\tMilan\n" "OK1KX\tKarel\n" "OK1KZ\tPavel\n" "OK1LA\tLadislav\n" "OK1LAH\tLadislav\n" "OK1LAT\tIvo\n" "OK1LBB\tPavel\n" "OK1LBO\tJaroslav\n" "OK1LCD\tRadka\n" "OK1LD\tJiri\n" "OK1LDX\tPavel\n" "OK1LEO\tAlice\n" "OK1LH\tTomas\n" "OK1LL\tIvan\n" "OK1LM\tMiloslav\n" "OK1LO\tLadislav\n" "OK1LOL\tMichal\n" "OK1LPD\tMichal\n" "OK1LTV\tLibor\n" "OK1LU\tJosef\n" "OK1LUB\tLubomir\n" "OK1LUK\tLukas\n" "OK1LV\tLadislav\n" "OK1LX\tPeter\n" "OK1LY\tFrantisek\n" "OK1LZ\tZdenek\n" "OK1LZA\tLucie\n" "OK1MA\tJiri\n" "OK1MAF\tLadislav\n" "OK1MAG\tKarel\n" "OK1MAJ\tOndrej\n" "OK1MAM\tVlastimil\n" "OK1MAQ\tJan\n" "OK1MAS\tRudolf\n" "OK1MAV\tJaroslav\n" "OK1MAW\tVladimir\n" "OK1MAY\tJosef\n" "OK1MBL\tLubomir\n" "OK1MBR\tRudolf\n" "OK1MBT\tMiroslav\n" "OK1MBU\tZdenek\n" "OK1MBW\tPetr\n" "OK1MBZ\tZdenek\n" "OK1MCN\tKarel\n" "OK1MCV\tFrantisek\n" "OK1MCW\tMartin\n" "OK1MD\tMlados\n" "OK1MDA\tJiri\n" "OK1MDE\tMiroslav\n" "OK1MDJ\tJiri\n" "OK1MDK\tJosef\n" "OK1MDM\tJan\n" "OK1MDX\tStanislav\n" "OK1MEF\tPetr\n" "OK1MEH\tMiroslav\n" "OK1MEK\tKarel\n" "OK1MEP\tPavel\n" "OK1MES\tJiri\n" "OK1MFG\tPetr\n" "OK1MFH\tMartin\n" "OK1MFJ\tJindrich\n" "OK1MFK\tFrantisek\n" "OK1MFL\tLubomir\n" "OK1MFM\tFrantisek\n" "OK1MFS\tFrantisek\n" "OK1MGA\tPetr\n" "OK1MGO\tJiri\n" "OK1MGQ\tLeos\n" "OK1MGS\tMilos\n" "OK1MGW\tPetr\n" "OK1MGX\tVratislav\n" "OK1MHG\tPetr\n" "OK1MHN\tHana\n" "OK1MHW\tLukas\n" "OK1MHZ\tMiloslav\n" "OK1MCH\tZdenek\n" "OK1MI\tKarel\n" "OK1MIC\tLubor\n" "OK1MIE\tMiloslav\n" "OK1MIG\tJosef\n" "OK1MIK\tJaroslav\n" "OK1MIN\tPavel\n" "OK1MIQ\tJan\n" "OK1MIU\tBohumil\n" "OK1MJ\tMiroslav\n" "OK1MJA\tJan\n" "OK1MJH\tJaroslav\n" "OK1MJS\tJaromir\n" "OK1MJV\tJan\n" "OK1MJW\tJan\n" "OK1MKA\tVaclav\n" "OK1MKB\tKarel\n" "OK1MKD\tJosef\n" "OK1MKH\tMartin\n" "OK1MKJ\tJosef\n" "OK1MKL\tPavel\n" "OK1MKU\tKarel\n" "OK1MKX\tJaroslav\n" "OK1MKZ\tZdenek\n" "OK1MLF\tLadislav\n" "OK1MLG\tLadislav\n" "OK1MLP\tKarel\n" "OK1MLX\tPavel\n" "OK1MMI\tPetra\n" "OK1MMK\tMiroslav\n" "OK1MMU\tMiroslav\n" "OK1MMX\tAlexandr\n" "OK1MN\tPavel\n" "OK1MNA\tJosef\n" "OK1MNC\tJosef\n" "OK1MNH\tStanislav\n" "OK1MNI\tMiroslav\n" "OK1MNR\tJosef\n" "OK1MNV\tJan\n" "OK1MNW\tJindrich\n" "OK1MO\tJiri\n" "OK1MOC\tLubomir\n" "OK1MOD\tJaroslav\n" "OK1MOS\tJiri\n" "OK1MOW\tIvan\n" "OK1MOY\tOtto\n" "OK1MP\tMilos\n" "OK1MPD\tMartin\n" "OK1MPF\tMartin\n" "OK1MPI\tMartin\n" "OK1MPO\tPetr\n" "OK1MPR\tRoman\n" "OK1MPU\tMiroslav\n" "OK1MPX\tZbynek\n" "OK1MPY\tPetr\n" "OK1MQY\tErhard\n" "OK1MR\tMilan\n" "OK1MRA\tJiri\n" "OK1MRC\tJan\n" "OK1MRE\tRudolf\n" "OK1MRI\tMilos\n" "OK1MRL\tRoman\n" "OK1MRM\tMiroslav\n" "OK1MRN\tRadek\n" "OK1MRS\tVladimir\n" "OK1MRZ\tZdenek\n" "OK1MSB\tBohuslav\n" "OK1MSD\tJiri\n" "OK1MSJ\tJiri\n" "OK1MSL\tStanislav\n" "OK1MSP\tStanislav\n" "OK1MSQ\tJosef\n" "OK1MSR\tJiri\n" "OK1MST\tJaroslav\n" "OK1MSV\tJiri\n" "OK1MT\tJan\n" "OK1MTA\tVaclav\n" "OK1MTQ\tMiroslav\n" "OK1MTX\tZdenek\n" "OK1MTZ\tMichal\n" "OK1MU\tPavel\n" "OK1MUA\tBretislav\n" "OK1MUC\tFrantisek\n" "OK1MUF\tJan\n" "OK1MUK\tKarel\n" "OK1MV\tMarek\n" "OK1MVG\tVit\n" "OK1MVJ\tVojtech\n" "OK1MVK\tVaclav\n" "OK1MVN\tVratislav\n" "OK1MVP\tVaclav\n" "OK1MVS\tVaclav\n" "OK1MVV\tVladimir\n" "OK1MVW\tMarie\n" "OK1MW\tMartin\n" "OK1MWA\tVaclav\n" "OK1MWC\tHelena\n" "OK1MWW\tJiri\n" "OK1MXM\tJiri\n" "OK1MXX\tFrantisek\n" "OK1MY\tPavel\n" "OK1MYL\tDagmar\n" "OK1MYM\tMiroslav\n" "OK1MZ\tMilan\n" "OK1MZB\tZdenek\n" "OK1MZM\tMilos\n" "OK1MZN\tMilos\n" "OK1MZO\tJiri\n" "OK1MZT\tZdenek\n" "OK1NAS\tMiroslav\n" "OK1NAT\tMichal\n" "OK1NAW\tJaromir\n" "OK1ND\tMiroslav\n" "OK1NE\tJulius\n" "OK1NF\tJan\n" "OK1NFA\tJan\n" "OK1NG\tJaromir\n" "OK1NGC\tMiroslav\n" "OK1NH\tJaroslav\n" "OK1NHR\tJan\n" "OK1NI\tMilan\n" "OK1NIK\tKarel\n" "OK1NIL\tVaclav\n" "OK1NIP\tIvan\n" "OK1NIT\tVladimir\n" "OK1NJA\tJana\n" "OK1NJB\tMichal\n" "OK1NJC\tJiri\n" "OK1NJP\tPavel\n" "OK1NL\tMilan\n" "OK1NMI\tIvo\n" "OK1NMJ\tJiri\n" "OK1NMP\tMiroslav\n" "OK1NMR\tZdenek\n" "OK1NMW\tJiri\n" "OK1NOC\tJiri\n" "OK1NOP\tJosef\n" "OK1NOR\tJindrich\n" "OK1NP\tJan\n" "OK1NPA\tPetr\n" "OK1NPF\tRoman\n" "OK1NR\tJan\n" "OK1NS\tPetr\n" "OK1NSX\tJaroslav\n" "OK1NT\tAntonin\n" "OK1NU\tJan\n" "OK1NUN\tMichael\n" "OK1NVJ\tJiri\n" "OK1NVO\tJosef\n" "OK1NW\tZdenek\n" "OK1NWD\tPetr\n" "OK1NZ\tJaroslav\n" "OK1NZJ\tZdenek\n" "OK1NZV\tVera\n" "OK1OA\tJiri\n" "OK1OAZ\tradioclub:\n" "OK1OB\tStefan\n" "OK1OH\tFrantisek\n" "OK1OHK\tDDM\n" "OK1OK\tZdenek\n" "OK1OS\tOtakar\n" "OK1OW\tZdenka\n" "OK1OX\tMiroslav\n" "OK1PA\tPetr\n" "OK1PAA\tJosef\n" "OK1PAI\tIvo\n" "OK1PBB\tBohumil\n" "OK1PBO\tPavel\n" "OK1PBP\tPavel\n" "OK1PC\tPavel\n" "OK1PD\tJosef\n" "OK1PF\tPetr\n" "OK1PFA\tJosef\n" "OK1PFE\tPetr\n" "OK1PFH\tJan\n" "OK1PFM\tPetr\n" "OK1PGS\tFrantisek\n" "OK1PH\tJindrich\n" "OK1PHM\tPetr\n" "OK1PHP\tPetr\n" "OK1PHU\tPavel\n" "OK1PHX\tPetr\n" "OK1PHZ\tPetr\n" "OK1PI\tIvan\n" "OK1PII\tPetr\n" "OK1PJB\tJiri\n" "OK1PJP\tPavel\n" "OK1PJX\tPavel\n" "OK1PK\tPavel\n" "OK1PL\tJan\n" "OK1PLS\tVladimir\n" "OK1PMA\tPavel\n" "OK1PNA\tMichal\n" "OK1PO\tOtakar\n" "OK1POS\tOldrich\n" "OK1POY\tVaclav\n" "OK1PP\tPetr\n" "OK1PPJ\tPetr\n" "OK1PPT\tPetr\n" "OK1PR\tIvan\n" "OK1PRI\tPavel\n" "OK1PRR\tPetr\n" "OK1PSH\tPetr\n" "OK1PSY\tVaclav\n" "OK1PTB\tPetr\n" "OK1PUJ\tJan\n" "OK1PUK\tMichal\n" "OK1PUL\tPavel\n" "OK1PUP\tAlena\n" "OK1PV\tVojtech\n" "OK1PW\tRudolf\n" "OK1QF\tFrantisek\n" "OK1QO\tJan\n" "OK1QS\tJiri\n" "OK1QT\tJiri\n" "OK1QW\tHerbert\n" "OK1RA\tSlavomil\n" "OK1RAY\tAlois\n" "OK1RD\tJaroslav\n" "OK1RF\tJiri\n" "OK1RH\tVaclav\n" "OK1RK\tDavid\n" "OK1RO\tJan\n" "OK1RP\tPetr\n" "OK1RR\tMartin\n" "OK1RSM\tRosomaci\n" "OK1RV\tJosef\n" "OK1RW\tJiri\n" "OK1RY\tJaroslav\n" "OK1RZ\tRostislav\n" "OK1SA\tBohumil\n" "OK1SAB\tMiroslav\n" "OK1SAO\tPetr\n" "OK1SAT\tRichard\n" "OK1SBV\tVladimir\n" "OK1SC\tJan\n" "OK1SCB\tJan\n" "OK1SD\tStanislav\n" "OK1SDE\tDalibor\n" "OK1SEL\tMiroslav\n" "OK1SF\tBedrich\n" "OK1SFR\tPavel\n" "OK1SFT\tFrantisek\n" "OK1SFW\tFrantisek\n" "OK1SGI\tMichal\n" "OK1SHF\tZdenek\n" "OK1SI\tIvo\n" "OK1SIB\tJan\n" "OK1SIT\tBretislav\n" "OK1SJL\tJosef\n" "OK1SKD\tKarel\n" "OK1SKJ\tJiri\n" "OK1SLM\tLibor\n" "OK1SLY\tLubos\n" "OK1SMH\tMichaela\n" "OK1SMN\tMarian\n" "OK1SMU\tJan\n" "OK1SMY\tMiroslav\n" "OK1SNE\tJiri\n" "OK1SNR\tStanislav\n" "OK1SOA\tKarel\n" "OK1SOX\tMilan\n" "OK1SP\tJulius\n" "OK1SPV\tPavla\n" "OK1SPX\tJindrich\n" "OK1SPY\tJiri\n" "OK1SQK\tKarel\n" "OK1SQT\tSimona\n" "OK1SRD\tJosef\n" "OK1SRT\tRadek\n" "OK1ST\tMartin\n" "OK1STJ\tPavel\n" "OK1STN\tJiri\n" "OK1STO\tPavel\n" "OK1STS\tPetr\n" "OK1STW\tStanislav\n" "OK1STX\tPavel\n" "OK1SVB\tVladimir\n" "OK1SVF\tStanislav\n" "OK1SVH\tAlena\n" "OK1SVV\tVlastimil\n" "OK1SX\tMilan\n" "OK1SY\tJosef\n" "OK1SYM\tTomas\n" "OK1SYN\tJan\n" "OK1SZA\tJan\n" "OK1TA\tKarel\n" "OK1TAI\tKarel\n" "OK1TAL\tLadislav\n" "OK1TAM\tSvatoslav\n" "OK1TAN\tAntonin\n" "OK1TAO\tOtakar\n" "OK1TAV\tPavel\n" "OK1TBA\tVlastimil\n" "OK1TBT\tTomas\n" "OK1TC\tJaroslav\n" "OK1TCF\tAntonin\n" "OK1TCM\tJakub\n" "OK1TCN\tViktor\n" "OK1TD\tJiri\n" "OK1TDD\tAntonin\n" "OK1TDE\tEmil\n" "OK1TDF\tTomas\n" "OK1TDI\tJiri\n" "OK1TDO\tDaniel\n" "OK1TDS\tPavel\n" "OK1TDU\tDavid\n" "OK1TEB\tPavel\n" "OK1TEH\tMatej\n" "OK1TEM\tJarmila\n" "OK1TEP\tTomas\n" "OK1TF\tJosef\n" "OK1TFD\tFrantisek\n" "OK1TFH\tIvan\n" "OK1TGA\tVaclav\n" "OK1TGI\tIgor\n" "OK1THA\tPetr\n" "OK1THK\tJaroslav\n" "OK1THR\tMiloslav\n" "OK1THX\tMilan\n" "OK1TI\tKarel\n" "OK1TIC\tJan\n" "OK1TIM\tPavel\n" "OK1TIR\tKarel\n" "OK1TIZ\tZdenek\n" "OK1TJC\tJosef\n" "OK1TJD\tDimitrij\n" "OK1TJE\tMichal\n" "OK1TJH\tJan\n" "OK1TJI\tJiri\n" "OK1TJJ\tJiri\n" "OK1TJO\tTomas\n" "OK1TJT\tJindrich\n" "OK1TKC\tJosef\n" "OK1TKM\tLeo\n" "OK1TKO\tAndrej\n" "OK1TKR\tMiroslav\n" "OK1TKZ\tJan\n" "OK1TLB\tVaclav\n" "OK1TLJ\tJiri\n" "OK1TLT\tTomas\n" "OK1TMI\tMilos\n" "OK1TMJ\tMichal\n" "OK1TML\tMichal\n" "OK1TMT\tMartina\n" "OK1TN\tSlavomir\n" "OK1TNM\tRudolf\n" "OK1TO\tOtakar\n" "OK1TOT\tOndrej\n" "OK1TOV\tOtakar\n" "OK1TOX\tLeo\n" "OK1TOZ\tJan\n" "OK1TPC\tJosef\n" "OK1TPG\tVladimir\n" "OK1TPI\tJaroslav\n" "OK1TPK\tPeter\n" "OK1TPL\tTomas\n" "OK1TPW\tIvan\n" "OK1TQ\tJosef\n" "OK1TR\tRenata\n" "OK1TRA\tJiri\n" "OK1TRD\tLibor\n" "OK1TRJ\tMichal\n" "OK1TRW\tFedor\n" "OK1TTL\tTomas\n" "OK1TTP\tJosef\n" "OK1TUD\tJaroslav\n" "OK1TUK\tJaroslav\n" "OK1TUV\tLudovit\n" "OK1TVA\tVeronika\n" "OK1TVD\tVladimir\n" "OK1TVK\tJindrich\n" "OK1TVL\tLibor\n" "OK1TVM\tVaclav\n" "OK1TVR\tVilem\n" "OK1TXW\tCenek\n" "OK1TY\tZdenek\n" "OK1TYM\tJiri\n" "OK1TYR\tIvo\n" "OK1TZA\tZdenek\n" "OK1TZD\tPetra\n" "OK1TZL\tMartin\n" "OK1TZW\tMartin\n" "OK1TZX\tVladislav\n" "OK1UA\tVlastimil\n" "OK1UAH\tPavel\n" "OK1UBA\tMartin\n" "OK1UBB\tBohumil\n" "OK1UBL\tLadislav\n" "OK1UBO\tJiri\n" "OK1UBP\tPavel\n" "OK1UBR\tFrantisek\n" "OK1UDF\tKarel\n" "OK1UDJ\tJiri\n" "OK1UDK\tAntonin\n" "OK1UDQ\tMiroslav\n" "OK1UDS\tJosef\n" "OK1UDX\tStefan\n" "OK1UEA\tMiroslav\n" "OK1UEB\tJiri\n" "OK1UEC\tMilan\n" "OK1UEH\tErvin\n" "OK1UEI\tAleksandar\n" "OK1UEK\tOndrej\n" "OK1UEM\tMartin\n" "OK1UES\tJaroslava\n" "OK1UFC\tMira\n" "OK1UFE\tVladimir\n" "OK1UFL\tMiloslav\n" "OK1UFM\tRoman\n" "OK1UG\tPavel\n" "OK1UGA\tMartin\n" "OK1UGD\tTomas\n" "OK1UGE\tPavel\n" "OK1UGH\tMiroslav\n" "OK1UGI\tJindrich\n" "OK1UGK\tJosef\n" "OK1UHQ\tLadislav\n" "OK1UJA\tIvana\n" "OK1UJB\tJosef\n" "OK1UJG\tVlasta\n" "OK1UJL\tSvatoslav\n" "OK1UJP\tJiri\n" "OK1UJQ\tVladislav\n" "OK1UJX\tJana\n" "OK1UKS\tKarel\n" "OK1UKV\tJaroslav\n" "OK1UKZ\tZdenek\n" "OK1ULE\tLeos\n" "OK1ULK\tIvan\n" "OK1ULL\tPetr\n" "OK1ULU\tAles\n" "OK1UMB\tMiroslav\n" "OK1UME\tKarel\n" "OK1UMI\tEduarda\n" "OK1UML\tLenka\n" "OK1UMR\tMarcela\n" "OK1UN\tLubomir\n" "OK1UNG\tArnost\n" "OK1UNZ\tZdenek\n" "OK1UOM\tStanislav\n" "OK1UOZ\tPavel\n" "OK1UPB\tPavel\n" "OK1UPE\tPetr\n" "OK1UPU\tZdenek\n" "OK1UPZ\tZdenek\n" "OK1UQM\tMiroslav\n" "OK1UQP\tJosef\n" "OK1URM\tMartin\n" "OK1URO\tMilan\n" "OK1URT\tTomas\n" "OK1US\tJiri\n" "OK1USJ\tJitka\n" "OK1USK\tJozef\n" "OK1USS\tStanislav\n" "OK1USU\tJiri\n" "OK1USW\tLadislav\n" "OK1UTK\tLadislav\n" "OK1UU\tJan\n" "OK1UUK\tEduard\n" "OK1UVE\tVaclav\n" "OK1UVG\tVaclav\n" "OK1UVJ\tJosef\n" "OK1UVU\tMiroslav\n" "OK1UWE\tSiegfried\n" "OK1UWW\tKarel\n" "OK1UX\tVaclav\n" "OK1UXH\tVlastislav\n" "OK1UXT\tIvo\n" "OK1UYM\tFrantisek\n" "OK1UYR\tMartin\n" "OK1UZB\tOskar\n" "OK1UZE\tZdenek\n" "OK1UZR\tZdenek\n" "OK1UZW\tZdenek\n" "OK1VAK\tVaclav\n" "OK1VAM\tJan\n" "OK1VB\tVaclav\n" "OK1VBD\tVojtech\n" "OK1VBN\tJosef\n" "OK1VBQ\tRudolf\n" "OK1VBS\tPavel\n" "OK1VCB\tTomas\n" "OK1VCF\tTomas\n" "OK1VCO\tJan\n" "OK1VCP\tVitezslav\n" "OK1VD\tVaclav\n" "OK1VDF\tJaroslav\n" "OK1VDJ\tBedrich\n" "OK1VDS\tZdenek\n" "OK1VDX\tStanislav\n" "OK1VEA\tLudvik\n" "OK1VEC\tJiri\n" "OK1VEH\tBohumir\n" "OK1VEI\tPavel\n" "OK1VEL\tJaroslav\n" "OK1VEN\tPetr\n" "OK1VEY\tSvetozar\n" "OK1VFC\tVitezslav\n" "OK1VGJ\tJan\n" "OK1VGS\tZdenek\n" "OK1VHF\tMilan\n" "OK1VHN\tDenis\n" "OK1VHQ\tMarcel\n" "OK1VHV\tJosef\n" "OK1VIB\tMilan\n" "OK1VIT\tJiri\n" "OK1VIU\tJosef\n" "OK1VJB\tJosef\n" "OK1VJH\tJosef\n" "OK1VJL\tJiri\n" "OK1VJU\tEva\n" "OK1VJV\tJaromir\n" "OK1VKC\tJosef\n" "OK1VKJ\tJosef\n" "OK1VKK\tFrantisek\n" "OK1VKL\tJiri\n" "OK1VKQ\tVaclav\n" "OK1VKX\tDusan\n" "OK1VKZ\tZdenek\n" "OK1VLA\tVladimir\n" "OK1VLC\tArnost\n" "OK1VLG\tLubomir\n" "OK1VLK\tOldrich\n" "OK1VLR\tLubomir\n" "OK1VM\tMichal\n" "OK1VMF\tVitezslav\n" "OK1VMK\tMiroslav\n" "OK1VNI\tMichal\n" "OK1VNT\tJaromir\n" "OK1VOC\tStanislav\n" "OK1VOF\tAlexandr\n" "OK1VOR\tVladimir\n" "OK1VOT\tMiloslav\n" "OK1VOV\tVaclav\n" "OK1VOZ\tMarie\n" "OK1VPD\tJosef\n" "OK1VPO\tMilos\n" "OK1VPR\tJiri\n" "OK1VPS\tJaroslava\n" "OK1VPT\tLudvik\n" "OK1VPU\tJaroslav\n" "OK1VPV\tJaroslav\n" "OK1VPY\tJan\n" "OK1VPZ\tVladimir\n" "OK1VQC\tMilan\n" "OK1VR\tJindra\n" "OK1VRF\tVaclav\n" "OK1VRI\tRichard\n" "OK1VRL\tZdenka\n" "OK1VRN\tAugust\n" "OK1VRV\tVaclav\n" "OK1VRW\tLudek\n" "OK1VRY\tLudvik\n" "OK1VSA\tAlexandr\n" "OK1VSG\tStanislav\n" "OK1VSL\tLudek\n" "OK1VSV\tSonja\n" "OK1VT\tPavel\n" "OK1VTG\tFrantisek\n" "OK1VTJ\tJiri\n" "OK1VTL\tPetr\n" "OK1VTO\tFrantisek\n" "OK1VTR\tVladimir\n" "OK1VTV\tRoman\n" "OK1VU\tVaclav\n" "OK1VUA\tOttomar\n" "OK1VUB\tBohumil\n" "OK1VUC\tJan\n" "OK1VUM\tMiloslav\n" "OK1VVC\tBohuslav\n" "OK1VVH\tJaroslav\n" "OK1VVS\tVladimir\n" "OK1VVV\tJan\n" "OK1VW\tJiri\n" "OK1VXB\tLadislav\n" "OK1VXI\tPetr\n" "OK1VYC\tFrantisek\n" "OK1VYK\tJiri\n" "OK1VYL\tLotka\n" "OK1VYM\tMarie\n" "OK1VYP\tJitka\n" "OK1VYR\tVaclav\n" "OK1VZ\tKarel\n" "OK1VZA\tOtakar\n" "OK1VZL\tOtakar\n" "OK1VZP\tZdenka\n" "OK1VZV\tBohuslav\n" "OK1VZZ\tZuzana\n" "OK1WA\tOldrich\n" "OK1WAV\tJaroslav\n" "OK1WCF\tMartin\n" "OK1WEN\tVaclav\n" "OK1WF\tJaroslav\n" "OK1WFE\tJosef\n" "OK1WGW\tJaroslav\n" "OK1WIP\tMiroslav\n" "OK1WJA\tPetr\n" "OK1WJB\tJaroslav\n" "OK1WJV\tJaroslav\n" "OK1WJW\tJosef\n" "OK1WLH\tJosef\n" "OK1WLM\tMilan\n" "OK1WMB\tVladimir\n" "OK1WMJ\tJan\n" "OK1WMK\tMarek\n" "OK1WMR\tMichal\n" "OK1WMV\tVaclav\n" "OK1WN\tStanislav\n" "OK1WNB\tJaroslav\n" "OK1WPM\tPetra\n" "OK1WQ\tVladislav\n" "OK1WRA\tMatej\n" "OK1WRM\tRoman\n" "OK1WRZ\tJan\n" "OK1WS\tLibor\n" "OK1WSL\tJosef\n" "OK1WT\tVladimir\n" "OK1WU\tJiri\n" "OK1WUA\tBoris\n" "OK1WVR\tVaclav\n" "OK1WVS\tVlastimil\n" "OK1WVV\tJan\n" "OK1WWJ\tPavel\n" "OK1WWV\tPetr\n" "OK1WXA\tPavlina\n" "OK1WZ\tJosef\n" "OK1WZV\tZbynek\n" "OK1XA\tJakub\n" "OK1XAV\tOtakar\n" "OK1XBF\tPavel\n" "OK1XBK\tJiri\n" "OK1XC\tJosef\n" "OK1XDK\tDavid\n" "OK1XDN\tDaniel\n" "OK1XDR\tJiri\n" "OK1XDY\tJosef\n" "OK1XE\tEmil\n" "OK1XEB\tPavel\n" "OK1XEM\tMichal\n" "OK1XEN\tMartin\n" "OK1XET\tPavel\n" "OK1XEV\tVit\n" "OK1XEW\tLukas\n" "OK1XFA\tJaroslav\n" "OK1XFI\tLibor\n" "OK1XFJ\tJan\n" "OK1XFL\tBedrich\n" "OK1XFO\tMilan\n" "OK1XGA\tJan\n" "OK1XGI\tMiroslav\n" "OK1XGL\tPetr\n" "OK1XGP\tJan\n" "OK1XH\tMilan\n" "OK1XHD\tJosef\n" "OK1XHE\tFrantisek\n" "OK1XHI\tZdenek\n" "OK1XHV\tJan\n" "OK1XCH\tJan\n" "OK1XIN\tVaclav\n" "OK1XJ\tJiri\n" "OK1XJB\tViera\n" "OK1XJD\tMartin\n" "OK1XJF\tJiri\n" "OK1XJL\tJosef\n" "OK1XJN\tJaroslav\n" "OK1XJP\tJiri\n" "OK1XKV\tVladimir\n" "OK1XL\tLadislav\n" "OK1XLS\tMilan\n" "OK1XMS\tRichard\n" "OK1XMV\tStanislav\n" "OK1XNC\tFrantisek\n" "OK1XNG\tVaclav\n" "OK1XNP\tPavel\n" "OK1XO\tJosef\n" "OK1XOD\tAles\n" "OK1XOE\tTomas\n" "OK1XOR\tKarel\n" "OK1XOT\tTomas\n" "OK1XOX\tAles\n" "OK1XP\tOtakar\n" "OK1XPA\tPetr\n" "OK1XPB\tPavel\n" "OK1XPF\tMiroslav\n" "OK1XPH\tJiri\n" "OK1XPJ\tPetr\n" "OK1XPP\tPavel\n" "OK1XQA\tJaroslava\n" "OK1XQC\tFrantisek\n" "OK1XQD\tVaclav\n" "OK1XR\tJindrich\n" "OK1XRM\tJaroslav\n" "OK1XS\tRoman\n" "OK1XSW\tMiroslav\n" "OK1XT\tJiri\n" "OK1XTF\tFrantisek\n" "OK1XTM\tMiloslav\n" "OK1XTR\tTomislav\n" "OK1XU\tJan\n" "OK1XUB\tJaroslav\n" "OK1XUJ\tJosef\n" "OK1XV\tJosef\n" "OK1XVW\tVaclav\n" "OK1XW\tViktor\n" "OK1XWW\tJulius\n" "OK1XX\tJan\n" "OK1XXB\tZdenek\n" "OK1XXL\tPetr\n" "OK1XY\tLadislav\n" "OK1XYZ\tOldrich\n" "OK1XZB\tZdenek\n" "OK1XZS\tZdenek\n" "OK1YA\tPremysl\n" "OK1YB\tVera\n" "OK1YC\tMartin\n" "OK1YI\tJan\n" "OK1YK\tJaromir\n" "OK1YL\tPetra\n" "OK1YLB\tJiri\n" "OK1YM\tOldrich\n" "OK1YO\tImrich\n" "OK1YX\tPavel\n" "OK1YZN\tLadislav\n" "OK1ZA\tArnost\n" "OK1ZAD\tJiri\n" "OK1ZAJ\tPavel\n" "OK1ZAT\tPavel\n" "OK1ZBD\tKarel\n" "OK1ZBK\tKarel\n" "OK1ZCJ\tJaroslav\n" "OK1ZD\tZdenek\n" "OK1ZDA\tLubos\n" "OK1ZDE\tZdenek\n" "OK1ZDT\tZdenek\n" "OK1ZDX\tJan\n" "OK1ZE\tVaclav\n" "OK1ZED\tJiri\n" "OK1ZES\tZdenek\n" "OK1ZFP\tFrantisek\n" "OK1ZGA\tVladimir\n" "OK1ZH\tLadislav\n" "OK1ZHS\tJan\n" "OK1ZHU\tZdenek\n" "OK1ZHV\tVojtech\n" "OK1ZJA\tZdenek\n" "OK1ZJB\tJosef\n" "OK1ZJH\tJiri\n" "OK1ZJJ\tJana\n" "OK1ZJL\tJiri\n" "OK1ZJN\tJiri\n" "OK1ZJP\tJakub\n" "OK1ZJV\tJiri\n" "OK1ZK\tJan\n" "OK1ZKJ\tJaroslav\n" "OK1ZKL\tLadislav\n" "OK1ZKN\tJaroslav\n" "OK1ZKQ\tVlastimil\n" "OK1ZLM\tLadislav\n" "OK1ZMD\tMilan\n" "OK1ZMH\tJan\n" "OK1ZMJ\tJana\n" "OK1ZML\tMilan\n" "OK1ZMO\tOtto\n" "OK1ZMS\tMartin\n" "OK1ZMX\tZdenek\n" "OK1ZN\tJaromir\n" "OK1ZOR\tOtakar\n" "OK1ZOZ\tDavid\n" "OK1ZP\tJosef\n" "OK1ZPC\tZdenek\n" "OK1ZPJ\tZdenek\n" "OK1ZPT\tPetr\n" "OK1ZRA\tZdenek\n" "OK1ZSR\tJuraj\n" "OK1ZSV\tVladimir\n" "OK1ZTO\tOldrich\n" "OK1ZUB\tVojtech\n" "OK1ZVA\tVlastimil\n" "OK1ZVL\tVladimir\n" "OK1ZVP\tPetr\n" "OK1ZVS\tVlastimil\n" "OK1ZW\tMarek\n" "OK1ZWF\tJiri\n" "OK1ZX\tJan\n" "OK1ZY\tJan\n" "OK1ZZ\tZbynek\n" "OK1ZZX\tVladimir\n" "OK1ZZZ\tKarel\n" "OK2AB\tRostislav\n" "OK2ABH\tPetr\n" "OK2ABU\tZdenek\n" "OK2ACM\tMarek\n" "OK2ADI\tPetr\n" "OK2AF\tMilan\n" "OK2AIA\tPetr\n" "OK2AIS\tAles\n" "OK2AJ\tSlavomir\n" "OK2ALP\tAles\n" "OK2AM\tMiloslav\n" "OK2AN\tVaclav\n" "OK2AOP\tJiri\n" "OK2AQA\tMarcel\n" "OK2AR\tJan\n" "OK2ARD\tDaniel\n" "OK2ARK\tRudolf\n" "OK2ARM\tJosef\n" "OK2ARP\tRadomir\n" "OK2AT\tVladimir\n" "OK2ATC\tAntonin\n" "OK2AVA\tJiri\n" "OK2AZ\tAntonin\n" "OK2BA\tJan\n" "OK2BAQ\tJaroslav\n" "OK2BAT\tJiri\n" "OK2BAV\tJaroslav\n" "OK2BBA\tJan\n" "OK2BBB\tFrantisek\n" "OK2BBD\tZdenek\n" "OK2BBI\tZdenka\n" "OK2BBJ\tJosef\n" "OK2BBR\tVlastimil\n" "OK2BC\tVilem\n" "OK2BCF\tMilan\n" "OK2BCI\tLubomir\n" "OK2BCN\tPravoslav\n" "OK2BCW\tJaroslav\n" "OK2BDA\tVilem\n" "OK2BDB\tJosef\n" "OK2BDF\tJiri\n" "OK2BDR\tJan\n" "OK2BDS\tLudvik\n" "OK2BDU\tMilan\n" "OK2BDX\tVladimir\n" "OK2BEA\tMiroslav\n" "OK2BEH\tZdenek\n" "OK2BEJ\tVlastimil\n" "OK2BEM\tJan\n" "OK2BEN\tLubos\n" "OK2BEO\tIvan\n" "OK2BET\tJaroslav\n" "OK2BEW\tKarel\n" "OK2BF\tStanislav\n" "OK2BFH\tJan\n" "OK2BFI\tSvatopluk\n" "OK2BFK\tVladimir\n" "OK2BFN\tTomas\n" "OK2BFU\tMilan\n" "OK2BFY\tJosef\n" "OK2BGA\tVladimir\n" "OK2BGB\tLudvik\n" "OK2BGK\tFrantisek\n" "OK2BGN\tStanislav\n" "OK2BGO\tAntonin\n" "OK2BGW\tIvo\n" "OK2BH\tZdenek\n" "OK2BHD\tZdenek\n" "OK2BHE\tMiloslav\n" "OK2BHK\tIvan\n" "OK2BHL\tJiri\n" "OK2BHM\tErich\n" "OK2BHS\tVaclav\n" "OK2BHZ\tZbigniew\n" "OK2BIC\tMilan\n" "OK2BIJ\tLibor\n" "OK2BIK\tJaroslav\n" "OK2BIQ\tJan\n" "OK2BIT\tLadislav\n" "OK2BIU\tJan\n" "OK2BIW\tVaclav\n" "OK2BIX\tVladimir\n" "OK2BJ\tSlavomir\n" "OK2BJC\tJan\n" "OK2BJG\tOndrej\n" "OK2BJI\tMiloslav\n" "OK2BJJ\tJan\n" "OK2BJK\tJaroslav\n" "OK2BJM\tJosef\n" "OK2BJQ\tRostislav\n" "OK2BJR\tMiloslav\n" "OK2BJS\tJaromir\n" "OK2BJT\tStefan\n" "OK2BJX\tJan\n" "OK2BK\tJosef\n" "OK2BKA\tCestmir\n" "OK2BKE\tJiri\n" "OK2BKF\tMiloslav\n" "OK2BKJ\tJosef\n" "OK2BKL\tMiroslav\n" "OK2BKN\tVladimir\n" "OK2BKP\tAntonin\n" "OK2BKQ\tJan\n" "OK2BKU\tOndrej\n" "OK2BL\tBohumil\n" "OK2BLB\tJosef\n" "OK2BLD\tLadislav\n" "OK2BLH\tKarel\n" "OK2BLO\tJosef\n" "OK2BLR\tLadislav\n" "OK2BLS\tZdenek\n" "OK2BMA\tPavel\n" "OK2BMC\tMilan\n" "OK2BMD\tLidmila\n" "OK2BME\tPavel\n" "OK2BMI\tMilan\n" "OK2BMJ\tMilan\n" "OK2BMU\tIvan\n" "OK2BMV\tMarek\n" "OK2BMZ\tZdenka\n" "OK2BN\tVladimir\n" "OK2BNA\tMagda\n" "OK2BNC\tJiri\n" "OK2BND\tJan\n" "OK2BNF\tStanislav\n" "OK2BNG\tJan\n" "OK2BNP\tJaroslav\n" "OK2BNT\tLadislav\n" "OK2BOB\tBohumil\n" "OK2BOF\tEdvard\n" "OK2BOG\tLadislav\n" "OK2BON\tStepan\n" "OK2BOR\tFrantisek\n" "OK2BOS\tKarel\n" "OK2BOV\tRudolf\n" "OK2BPA\tMiroslav\n" "OK2BPB\tVit\n" "OK2BPG\tJosef\n" "OK2BPH\tZdenek\n" "OK2BPI\tJaroslav\n" "OK2BPK\tJosef\n" "OK2BPL\tMichal\n" "OK2BPN\tJaroslav\n" "OK2BPR\tEduard\n" "OK2BPV\tStanislav\n" "OK2BPW\tSvatomir\n" "OK2BPX\tAntonin\n" "OK2BQ\tFrantisek\n" "OK2BQC\tJaroslav\n" "OK2BQM\tStanislav\n" "OK2BQR\tFrantisek\n" "OK2BQU\tEmil\n" "OK2BQY\tJiri\n" "OK2BQZ\tJaroslav\n" "OK2BRA\tKarel\n" "OK2BRD\tJiri\n" "OK2BRJ\tPetr\n" "OK2BRO\tLudek\n" "OK2BRQ\tIvan\n" "OK2BRS\tIvan\n" "OK2BRV\tVaclav\n" "OK2BRW\tDalibor\n" "OK2BRX\tVojtech\n" "OK2BRY\tMilos\n" "OK2BRZ\tPavel\n" "OK2BS\tBohuslav\n" "OK2BSB\tAdolf\n" "OK2BSE\tMilan\n" "OK2BSH\tMiroslav\n" "OK2BSK\tMilan\n" "OK2BSL\tLadislav\n" "OK2BSN\tDalibor\n" "OK2BSO\tPetr\n" "OK2BSP\tJaroslav\n" "OK2BSQ\tJaroslav\n" "OK2BST\tDusan\n" "OK2BSV\tLadislav\n" "OK2BSY\tPetr\n" "OK2BTA\tOldrich\n" "OK2BTB\tMiroslav\n" "OK2BTC\tJaroslav\n" "OK2BTE\tAlois\n" "OK2BTI\tJaroslav\n" "OK2BTJ\tMiroslav\n" "OK2BTK\tPetr\n" "OK2BTQ\tJan\n" "OK2BTR\tOldrich\n" "OK2BTS\tJosef\n" "OK2BTT\tFrantisek\n" "OK2BTU\tKarel\n" "OK2BTY\tJiri\n" "OK2BTZ\tAntonin\n" "OK2BU\tRadek\n" "OK2BUD\tAlois\n" "OK2BUE\tJosef\n" "OK2BUH\tMiroslav\n" "OK2BUN\tMilan\n" "OK2BUP\tJaroslav\n" "OK2BUS\tJaroslav\n" "OK2BUT\tJan\n" "OK2BUX\tStanislav\n" "OK2BUZ\tFrantisek\n" "OK2BVA\tIvan\n" "OK2BVB\tMilan\n" "OK2BVC\tJan\n" "OK2BVE\tJosef\n" "OK2BVF\tKarel\n" "OK2BVS\tJirina\n" "OK2BVT\tPetr\n" "OK2BVY\tVaclav\n" "OK2BWC\tZdenek\n" "OK2BWJ\tPetr\n" "OK2BWK\tLeopold\n" "OK2BWM\tVlastimil\n" "OK2BWQ\tLadislav\n" "OK2BWR\tLadislav\n" "OK2BWT\tJaroslav\n" "OK2BWU\tSvatoslav\n" "OK2BWZ\tHelena\n" "OK2BX\tZdenek\n" "OK2BXA\tJosef\n" "OK2BXE\tDrahomir\n" "OK2BXF\tMichal\n" "OK2BXG\tPetr\n" "OK2BXM\tMiroslav\n" "OK2BXU\tDaniel\n" "OK2BXZ\tPetr\n" "OK2BYH\tRoman\n" "OK2BYW\tMilan\n" "OK2BZ\tJosef\n" "OK2BZE\tMilan\n" "OK2BZM\tZdenek\n" "OK2BZQ\tMartin\n" "OK2BZW\tKarel\n" "OK2BZY\tJosef\n" "OK2BZZ\tMilada\n" "OK2CDI\tVaclav\n" "OK2CDR\tJan\n" "OK2CEU\tBozena\n" "OK2CFM\tMartin\n" "OK2CHB\tHugo\n" "OK2CHI\tLenka\n" "OK2CHO\tPetr\n" "OK2CJM\tMarie\n" "OK2CKC\tJindrich\n" "OK2CKJ\tJosef\n" "OK2CL\tAlois\n" "OK2CLL\tKarel\n" "OK2CLW\tMilan\n" "OK2CME\tCestmir\n" "OK2CMW\tMilan\n" "OK2CMX\tOndrej\n" "OK2CMZ\tMartin\n" "OK2CNI\tPavel\n" "OK2COD\tMarian\n" "OK2COS\tOldrich\n" "OK2CPD\tJosef\n" "OK2CPG\tPavel\n" "OK2CPV\tPetr\n" "OK2CQR\tPetr\n" "OK2CR\tRoman\n" "OK2CRB\tRadomir\n" "OK2CRK\tRadoslav\n" "OK2CRT\tPetr\n" "OK2CSU\tMarian\n" "OK2CTS\tJaromir\n" "OK2CV\tVladimir\n" "OK2CVA\tAntonin\n" "OK2CVH\tVladimir\n" "OK2DA\tZdenek\n" "OK2DAB\tJiri\n" "OK2DAJ\tJiri\n" "OK2DAN\tMiroslav\n" "OK2DAS\tKarel\n" "OK2DCL\tOtto\n" "OK2DE\tJiri\n" "OK2DEY\tBronislav\n" "OK2DGF\tJosef\n" "OK2DGG\tJitka\n" "OK2DJD\tJiri\n" "OK2DL\tMarek\n" "OK2DRK\tRudolf\n" "OK2DTF\tDrahomir\n" "OK2DTI\tProkop\n" "OK2DV\tDalibor\n" "OK2DVS\tVilem\n" "OK2DW\tAntonin\n" "OK2DX\tPavel\n" "OK2EA\tVitezslav\n" "OK2EC\tStepan\n" "OK2EI\tJaroslav\n" "OK2EK\tEmil\n" "OK2EMH\tVitezslav\n" "OK2ER\tOldrich\n" "OK2EZ\tMartin\n" "OK2FA\tPetr\n" "OK2FB\tPavel\n" "OK2FBY\tMiroslav\n" "OK2FC\tAlexandr\n" "OK2FEI\tPetr\n" "OK2FF\tFrantisek\n" "OK2FH\tFrantisek\n" "OK2FJ\tFrantisek\n" "OK2FJI\tJiri\n" "OK2FKC\tLubos\n" "OK2FKF\tMartin\n" "OK2FLI\tFrantisek\n" "OK2FM\tFrantisek\n" "OK2FPN\tPetr\n" "OK2FR\tPavel\n" "OK2FRP\tPavel\n" "OK2FSC\tCestmir\n" "OK2FSE\tFrantisek\n" "OK2FUG\tMiroslav\n" "OK2FYM\tLadislav\n" "OK2GA\tStepan\n" "OK2GG\tJaroslav\n" "OK2GJ\tVladimir\n" "OK2GL\tVincenc\n" "OK2GM\tMartin\n" "OK2GPS\tJaroslav\n" "OK2GQG\tJitka\n" "OK2GTI\tDavid\n" "OK2GU\tAugustin\n" "OK2GX\tStanislav\n" "OK2HAP\tMilan\n" "OK2HAZ\tMichal\n" "OK2HBF\tJiri\n" "OK2HBR\tZdenek\n" "OK2HBY\tKamil\n" "OK2HDL\tAntonin\n" "OK2HDQ\tVladimir\n" "OK2HF\tPetr\n" "OK2HFC\tStanislav\n" "OK2HH\tJakub\n" "OK2HHF\tFrantisek\n" "OK2HI\tKarel\n" "OK2HIJ\tJiri\n" "OK2HJ\tJaroslav\n" "OK2HJJ\tJaroslav\n" "OK2HJL\tJan\n" "OK2HJO\tJosef\n" "OK2HJS\tJiri\n" "OK2HKP\tIvan\n" "OK2HL\tJan\n" "OK2HME\tBohumil\n" "OK2HMF\tMilan\n" "OK2HMS\tMilan\n" "OK2HPA\tPetr\n" "OK2HPH\tVladimir\n" "OK2HPI\tPavel\n" "OK2HRL\tLukas\n" "OK2HSB\tSvatohor\n" "OK2HSR\tRobert\n" "OK2HW\tVladimir\n" "OK2HWP\tMilan\n" "OK2HY\tJiri\n" "OK2HZ\tJaromir\n" "OK2IAW\tJosef\n" "OK2IBS\tVladimir\n" "OK2IBT\tPetr\n" "OK2ICF\tKvetoslava\n" "OK2ICP\tPetr\n" "OK2ID\tTomas\n" "OK2IDW\tDrahoslav\n" "OK2IEA\tPetr\n" "OK2IEN\tLudek\n" "OK2IGL\tVojtech\n" "OK2IJF\tJiri\n" "OK2IJH\tJaroslav\n" "OK2IJL\tJiri\n" "OK2IKL\tLadislav\n" "OK2IKY\tJaromir\n" "OK2IL\tHubert\n" "OK2ILA\tJan\n" "OK2ILD\tZbynek\n" "OK2IM\tMartin\n" "OK2IMH\tMilan\n" "OK2IMO\tJarmil\n" "OK2INI\tMartina\n" "OK2INW\tVitezslav\n" "OK2IOV\tVladimir\n" "OK2IOZ\tZbynek\n" "OK2IPL\tLadislav\n" "OK2IPP\tPavel\n" "OK2IPW\tAdam\n" "OK2IPZ\tPetr\n" "OK2IQT\tVladimir\n" "OK2IRE\tMiroslav\n" "OK2IRO\tPavel\n" "OK2ISI\tVera\n" "OK2ITI\tMichaela\n" "OK2IUH\tZdenek\n" "OK2IVB\tJiri\n" "OK2IVK\tKarel\n" "OK2IWO\tIvo\n" "OK2IWU\tIvana\n" "OK2IXO\tOldrich\n" "OK2IZJ\tJan\n" "OK2JA\tVaclav\n" "OK2JAF\tFrantisek\n" "OK2JAJ\tAntonin\n" "OK2JBC\tMarie\n" "OK2JBI\tJaromir\n" "OK2JC\tJan\n" "OK2JCJ\tJaroslav\n" "OK2JDH\tDalibor\n" "OK2JES\tJan\n" "OK2JEW\tVlastimil\n" "OK2JEY\tJiri\n" "OK2JFS\tFrantisek\n" "OK2JGD\tJan\n" "OK2JGF\tJan\n" "OK2JGI\tJan\n" "OK2JGK\tJaroslav\n" "OK2JHG\tJiri\n" "OK2JHJ\tJaroslav\n" "OK2JHR\tJaromir\n" "OK2JI\tJaroslav\n" "OK2JIQ\tJiri\n" "OK2JJA\tJan\n" "OK2JJQ\tMarek\n" "OK2JK\tJan\n" "OK2JKN\tPremysl\n" "OK2JKO\tJan\n" "OK2JKQ\tPetr\n" "OK2JMA\tKarel\n" "OK2JML\tLubomir\n" "OK2JNB\tJaroslav\n" "OK2JO\tJiri\n" "OK2JOV\tJaroslava\n" "OK2JOW\tJiri\n" "OK2JOZ\tEmil\n" "OK2JP\tJindrich\n" "OK2JPF\tFrantiska\n" "OK2JQR\tFrantisek\n" "OK2JRQ\tJaroslav\n" "OK2JS\tJan\n" "OK2JSO\tJan\n" "OK2JT\tJiri\n" "OK2JTF\tJiri\n" "OK2JU\tJaroslav\n" "OK2JUA\tAntonin\n" "OK2JUB\tJaromir\n" "OK2JZR\tJindrich\n" "OK2JZZ\tZdenek\n" "OK2KE\tJaroslav\n" "OK2KFU\tJosef\n" "OK2KG\tJiri\n" "OK2KJ\tJosef\n" "OK2KOV\tPalackeho\n" "OK2KP\tJiri\n" "OK2KR\tStanislav\n" "OK2KV\tVladimir\n" "OK2KY\tFrantisek\n" "OK2LA\tJindrich\n" "OK2LC\tLubomir\n" "OK2LDH\tLudvik\n" "OK2LET\tVitezslav\n" "OK2LF\tFrantisek\n" "OK2LI\tJiri\n" "OK2LM\tMiroslav\n" "OK2LMJ\tMilos\n" "OK2LMK\tLubomir\n" "OK2LMX\tMiroslav\n" "OK2LS\tFrantisek\n" "OK2LST\tLubomir\n" "OK2LT\tLubomir\n" "OK2LW\tJosef\n" "OK2LZ\tVladimir\n" "OK2MA\tMarcel\n" "OK2MAJ\tJana\n" "OK2MAP\tDalibor\n" "OK2MBN\tBohumir\n" "OK2MBO\tZdenek\n" "OK2MBP\tJiri\n" "OK2MCD\tPavel\n" "OK2MCJ\tRadmila\n" "OK2MCL\tLukas\n" "OK2MCT\tMiroslav\n" "OK2MDI\tMilan\n" "OK2MDK\tMiroslav\n" "OK2MDQ\tMilan\n" "OK2MDU\tBohumil\n" "OK2ME\tZdenek\n" "OK2MED\tPetr\n" "OK2MEU\tMiroslav\n" "OK2MFA\tLubomir\n" "OK2MG\tMiroslav\n" "OK2MGB\tJan\n" "OK2MHS\tStanislav\n" "OK2MI\tAlexandr\n" "OK2MIC\tJiri\n" "OK2MIG\tMilan\n" "OK2MII\tBretislav\n" "OK2MIT\tPetr\n" "OK2MJF\tMichal\n" "OK2MJI\tMilan\n" "OK2MJY\tJiri\n" "OK2MKS\tMichal\n" "OK2ML\tMilos\n" "OK2MMD\tDavid\n" "OK2MMG\tMilos\n" "OK2MMQ\tJindrich\n" "OK2MMV\tMarie\n" "OK2MND\tKaterina\n" "OK2MNM\tMartin\n" "OK2MO\tMarcel\n" "OK2MOA\tJan\n" "OK2MOO\tMiroslav\n" "OK2MPB\tPetr\n" "OK2MR\tMartin\n" "OK2MRP\tAdam\n" "OK2MRT\tPetr\n" "OK2MSS\tKarel\n" "OK2MSW\tZdenek\n" "OK2MTM\tTomas\n" "OK2MTV\tVladimir\n" "OK2MTW\tMartin\n" "OK2MUF\tMichal\n" "OK2MV\tMarek\n" "OK2MVZ\tVadim\n" "OK2MWK\tKarel\n" "OK2MXL\tJaroslav\n" "OK2MZL\tMartin\n" "OK2MZR\tMilan\n" "OK2NA\tPavel\n" "OK2NAJ\tJiri\n" "OK2NB\tPetr\n" "OK2NCA\tAdam\n" "OK2NCZ\tZdenek\n" "OK2NDT\tStanislav\n" "OK2NET\tPetr\n" "OK2NID\tMiroslav\n" "OK2NJE\tEduard\n" "OK2NM\tZdenek\n" "OK2NMA\tRadek\n" "OK2NMZ\tMarek\n" "OK2NO\tJaroslav\n" "OK2NPN\tPetr\n" "OK2NTA\tRoman\n" "OK2NZ\tZdenek\n" "OK2OG\tJaroslav\n" "OK2ON\tRadek\n" "OK2OP\tFrantisek\n" "OK2OR\tRudolf\n" "OK2OT\tJaromir\n" "OK2OU\tArnost\n" "OK2PA\tJanus\n" "OK2PAD\tZdenek\n" "OK2PAJ\tVladimir\n" "OK2PAK\tVladimir\n" "OK2PAL\tPavel\n" "OK2PAS\tJosef\n" "OK2PAU\tPavel\n" "OK2PAV\tPavel\n" "OK2PAX\tJaroslav\n" "OK2PBF\tMiloslav\n" "OK2PBG\tLadislav\n" "OK2PBH\tLadislav\n" "OK2PBK\tRadomir\n" "OK2PBL\tJiri\n" "OK2PBR\tVilibald\n" "OK2PBS\tMartin\n" "OK2PBT\tVaclav\n" "OK2PBV\tBretislav\n" "OK2PBW\tPetr\n" "OK2PCE\tJan\n" "OK2PCL\tRudolf\n" "OK2PCS\tFrantisek\n" "OK2PCU\tJaroslav\n" "OK2PCY\tJosef\n" "OK2PDB\tPavel\n" "OK2PDC\tJosef\n" "OK2PDE\tJiri\n" "OK2PDH\tKarel\n" "OK2PDK\tJan\n" "OK2PDU\tJosef\n" "OK2PDW\tJan\n" "OK2PDY\tFrantisek\n" "OK2PE\tKarel\n" "OK2PEB\tEduard\n" "OK2PEC\tJaroslav\n" "OK2PEM\tJiri\n" "OK2PER\tJosef\n" "OK2PET\tPetr\n" "OK2PEX\tAntonin\n" "OK2PEY\tMilos\n" "OK2PEZ\tJan\n" "OK2PFA\tBohumil\n" "OK2PFY\tJiri\n" "OK2PGJ\tJiri\n" "OK2PGT\tAntonin\n" "OK2PHC\tZdenek\n" "OK2PHI\tAlois\n" "OK2PHK\tPeter\n" "OK2PHQ\tJan\n" "OK2PIC\tOldrich\n" "OK2PIM\tDalibor\n" "OK2PIP\tPavel\n" "OK2PIR\tJiri\n" "OK2PIW\tVasil\n" "OK2PIX\tRadek\n" "OK2PJ\tJan\n" "OK2PJE\tKarel\n" "OK2PJF\tFrantisek\n" "OK2PJH\tJan\n" "OK2PJJ\tJan\n" "OK2PJM\tJakub\n" "OK2PJO\tJosef\n" "OK2PJT\tMichal\n" "OK2PK\tJosef\n" "OK2PKH\tBretislav\n" "OK2PKL\tAntonin\n" "OK2PKM\tLibor\n" "OK2PKO\tVlastimil\n" "OK2PKS\tGunter\n" "OK2PKT\tRoman\n" "OK2PKX\tPavel\n" "OK2PKY\tJiri\n" "OK2PLD\tVladimir\n" "OK2PLH\tZdenka\n" "OK2PLI\tJitka\n" "OK2PLK\tLudek\n" "OK2PLL\tLev\n" "OK2PLV\tLeo\n" "OK2PM\tKarel\n" "OK2PMF\tMilan\n" "OK2PMG\tMiloslav\n" "OK2PMP\tMilan\n" "OK2PMS\tJiri\n" "OK2PMT\tPetr\n" "OK2PMV\tVaclav\n" "OK2PMX\tPetr\n" "OK2PNQ\tTomas\n" "OK2PO\tJosef\n" "OK2POB\tMartin\n" "OK2POE\tPetr\n" "OK2POH\tOldrich\n" "OK2POI\tJiri\n" "OK2PPH\tPetr\n" "OK2PPK\tPavel\n" "OK2PPM\tPetr\n" "OK2PPP\tVladimir\n" "OK2PQH\tVlastislav\n" "OK2PQP\tRene\n" "OK2PQS\tRobert\n" "OK2PRM\tRudolf\n" "OK2PRP\tPetr\n" "OK2PRQ\tBohumil\n" "OK2PRW\tRadim\n" "OK2PS\tPavel\n" "OK2PSA\tPavel\n" "OK2PSB\tPetr\n" "OK2PSC\tSlavomir\n" "OK2PSE\tPavel\n" "OK2PSJ\tJan\n" "OK2PST\tJosef\n" "OK2PSV\tStanislav\n" "OK2PTA\tOndrej\n" "OK2PTC\tLibor\n" "OK2PTD\tPetr\n" "OK2PTH\tMiroslav\n" "OK2PTJ\tJaroslav\n" "OK2PTK\tMilos\n" "OK2PTL\tLudvik\n" "OK2PTM\tAntonin\n" "OK2PTP\tVratislav\n" "OK2PTS\tVaclav\n" "OK2PTT\tJan\n" "OK2PTU\tZdenek\n" "OK2PTZ\tTomas\n" "OK2PUH\tPremysl\n" "OK2PUX\tZdenek\n" "OK2PV\tJosef\n" "OK2PVC\tJan\n" "OK2PVD\tKarel\n" "OK2PVF\tRostislav\n" "OK2PVG\tVitezslav\n" "OK2PVH\tMiroslav\n" "OK2PVL\tPavel\n" "OK2PVO\tVladislav\n" "OK2PVS\tVlastimil\n" "OK2PVZ\tPavel\n" "OK2PWA\tPetr\n" "OK2PWB\tVaclav\n" "OK2PWD\tJosef\n" "OK2PWJ\tPetr\n" "OK2PWL\tKarel\n" "OK2PWM\tPremysl\n" "OK2PWX\tJaroslav\n" "OK2PX\tAlois\n" "OK2PXD\tZdenek\n" "OK2PXW\tRadek\n" "OK2PXX\tOtakar\n" "OK2PYA\tRobert\n" "OK2PYL\tJaroslava\n" "OK2PZ\tVojtech\n" "OK2PZF\tZdenek\n" "OK2PZL\tPetr\n" "OK2PZO\tVladimir\n" "OK2QA\tRudolf\n" "OK2QX\tJiri\n" "OK2RA\tRadek\n" "OK2RF\tRene\n" "OK2RI\tJiri\n" "OK2RL\tRichard\n" "OK2RN\tLeo\n" "OK2RP\tRoman\n" "OK2RPA\tERA a.s.\n" "OK2RS\tRudolf\n" "OK2RU\tRaimund\n" "OK2RX\tVladimir\n" "OK2RZ\tJiri\n" "OK2SA\tJosef\n" "OK2SAD\tMilan\n" "OK2SAI\tHenryk\n" "OK2SAQ\tJaroslav\n" "OK2SAR\tMiroslav\n" "OK2SAU\tJaroslav\n" "OK2SBX\tJitka\n" "OK2SCS\tKarel\n" "OK2SDH\tDagmar\n" "OK2SDX\tFrantisek\n" "OK2SET\tEmil\n" "OK2SEV\tMilan\n" "OK2SFI\tJosef\n" "OK2SFO\tFrantisek\n" "OK2SFP\tJaroslav\n" "OK2SG\tStanislav\n" "OK2SGC\tJiri\n" "OK2SGW\tZdenek\n" "OK2SHB\tHugo\n" "OK2SHH\tStepan\n" "OK2SI\tJaroslav\n" "OK2SIA\tMiroslav\n" "OK2SIG\tOndrej\n" "OK2SIN\tJaromir\n" "OK2SIR\tIvo\n" "OK2SJ\tJiri\n" "OK2SJC\tJosef\n" "OK2SJF\tMarek\n" "OK2SJI\tJiri\n" "OK2SJJ\tJaroslav\n" "OK2SJK\tKarel\n" "OK2SJP\tPavel\n" "OK2SJS\tJan\n" "OK2SK\tFrantisek\n" "OK2SKI\tRostislav\n" "OK2SKO\tOto\n" "OK2SKP\tPetr\n" "OK2SKT\tJiri\n" "OK2SLJ\tJozef\n" "OK2SLS\tKarel\n" "OK2SMA\tLudvik\n" "OK2SMI\tJosef\n" "OK2SMK\tEduard\n" "OK2SML\tLubomir\n" "OK2SMS\tBohumil\n" "OK2SND\tHana\n" "OK2SO\tMiloslav\n" "OK2SON\tOndrej\n" "OK2SPA\tAntonin\n" "OK2SPD\tPetr\n" "OK2SPE\tStefan\n" "OK2SPO\tJan\n" "OK2SPQ\tPetr\n" "OK2SPS\tPetr\n" "OK2SPW\tStanislav\n" "OK2SPZ\tJosef\n" "OK2SQR\tEduard\n" "OK2SR\tRudolf\n" "OK2SRI\tRadek\n" "OK2SRO\tJan\n" "OK2SSD\tJosef\n" "OK2SSJ\tJiri\n" "OK2STA\tAntonin\n" "OK2STD\tJan\n" "OK2STF\tJiri\n" "OK2STH\tTomas\n" "OK2STK\tJosef\n" "OK2STM\tMilan\n" "OK2STP\tJaroslav\n" "OK2STV\tPetr\n" "OK2SU\tFrantisek\n" "OK2SUA\tKarel\n" "OK2SUP\tJosef\n" "OK2SV\tJosef\n" "OK2SVL\tJaroslav\n" "OK2SVM\tStanislav\n" "OK2SVO\tOldrich\n" "OK2SVP\tVaclav\n" "OK2SWD\tDusan\n" "OK2SY\tMiroslav\n" "OK2SYS\tJosef\n" "OK2SYZ\tJan\n" "OK2SZ\tZdenek\n" "OK2SZD\tZbynek\n" "OK2SZL\tSvatopluk\n" "OK2TAB\tJosef\n" "OK2TAJ\tAlois\n" "OK2TAP\tRadek\n" "OK2TAR\tViktor\n" "OK2TAS\tPavel\n" "OK2TB\tBedrich\n" "OK2TBC\tKamil\n" "OK2TBE\tTomas\n" "OK2TBS\tLucie\n" "OK2TC\tStanislav\n" "OK2TCJ\tJan\n" "OK2TCS\tAles\n" "OK2TCW\tTomas\n" "OK2TDM\tMilan\n" "OK2TDR\tRichard\n" "OK2TEJ\tRadim\n" "OK2TEL\tJiri\n" "OK2TEO\tRostislav\n" "OK2TFO\tFrantisek\n" "OK2TGE\tTomas\n" "OK2TGM\tTomas\n" "OK2TIH\tVeronika\n" "OK2TIQ\tOldrich\n" "OK2TIT\tPetr\n" "OK2TJG\tJindrich\n" "OK2TJL\tJiri\n" "OK2TJS\tJosef\n" "OK2TKE\tBohumir\n" "OK2TKM\tTomas\n" "OK2TM\tMiroslav\n" "OK2TMO\tMilan\n" "OK2TN\tMiroslav\n" "OK2TOD\tOldrich\n" "OK2TOR\tPremysl\n" "OK2TPQ\tTomas\n" "OK2TPS\tVlastimil\n" "OK2TPU\tPetr\n" "OK2TQA\tPetr\n" "OK2TQI\tJosef\n" "OK2TRN\tPavel\n" "OK2TRV\tRadovan\n" "OK2TRW\tJiri\n" "OK2TRZ\tRadomir\n" "OK2TS\tJaroslav\n" "OK2TSE\tMilan\n" "OK2TSF\tTomas\n" "OK2TSL\tLubomir\n" "OK2TSN\tJiri\n" "OK2TSV\tLadislav\n" "OK2TT\tJan\n" "OK2TUH\tJiri\n" "OK2TWM\tMartin\n" "OK2UA\tJaroslava\n" "OK2UBW\tPavel\n" "OK2UCB\tKarel\n" "OK2UCC\tJiri\n" "OK2UCQ\tMilan\n" "OK2UDE\tJan\n" "OK2UDP\tBohumil\n" "OK2UEV\tMiroslav\n" "OK2UFB\tRostislav\n" "OK2UFJ\tMiroslav\n" "OK2UFT\tPavel\n" "OK2UFU\tVladimir\n" "OK2UFX\tJosef\n" "OK2UFY\tJan\n" "OK2UGG\tJiri\n" "OK2UGS\tMiroslav\n" "OK2UHF\tZdenek\n" "OK2UHG\tMiroslav\n" "OK2UHN\tLeos\n" "OK2UHP\tPetr\n" "OK2UIN\tJosef\n" "OK2UIZ\tIvo\n" "OK2UJC\tJan\n" "OK2UJS\tJosef\n" "OK2UKG\tRoman\n" "OK2UKQ\tPetr\n" "OK2ULP\tLadislav\n" "OK2ULQ\tPetr\n" "OK2UM\tJiri\n" "OK2UMD\tKarel\n" "OK2UMM\tMiroslav\n" "OK2UMP\tMartin\n" "OK2UNM\tMieczyslaw\n" "OK2UNS\tMiloslav\n" "OK2UOK\tVladimir\n" "OK2UPG\tJaroslav\n" "OK2UPJ\tPetr\n" "OK2UPP\tPetr\n" "OK2UQ\tEmil\n" "OK2UQF\tKarel\n" "OK2UQL\tGabriel\n" "OK2UQQ\tRadek\n" "OK2UR\tMilan\n" "OK2URD\tVladimir\n" "OK2URF\tJaroslav\n" "OK2USG\tMilan\n" "OK2USM\tMiroslav\n" "OK2UVR\tRadek\n" "OK2UVX\tOldrich\n" "OK2UWD\tEmil\n" "OK2UWH\tKarel\n" "OK2UWJ\tJosef\n" "OK2UWQ\tRobert\n" "OK2UXO\tVladimir\n" "OK2UYG\tKarel\n" "OK2UYU\tJaromir\n" "OK2UYZ\tMiroslav\n" "OK2UZ\tJindrich\n" "OK2UZD\tZdenek\n" "OK2UZL\tLudek\n" "OK2UZS\tZdenek\n" "OK2UZX\tJosef\n" "OK2VA\tMiloslav\n" "OK2VAS\tVaclav\n" "OK2VAZ\tOskar\n" "OK2VBZ\tRadek\n" "OK2VCR\tZdenek\n" "OK2VCT\tJiri\n" "OK2VED\tOldrich\n" "OK2VF\tFrantisek\n" "OK2VFR\tPetr\n" "OK2VGC\tMiloslav\n" "OK2VGD\tVladimir\n" "OK2VGZ\tJiri\n" "OK2VJD\tTomas\n" "OK2VJQ\tJosef\n" "OK2VK\tFrantisek\n" "OK2VKF\tJaroslav\n" "OK2VKK\tKarel\n" "OK2VLJ\tRudolf\n" "OK2VLY\tMartin\n" "OK2VMC\tAntonin\n" "OK2VMG\tJiri\n" "OK2VMJ\tZdenek\n" "OK2VN\tVladimir\n" "OK2VNA\tRostislav\n" "OK2VNC\tIvo\n" "OK2VND\tLudvik\n" "OK2VNO\tVladimir\n" "OK2VNQ\tLudek\n" "OK2VOM\tJiri\n" "OK2VOP\tPetr\n" "OK2VPA\tVlastimil\n" "OK2VPI\tJosef\n" "OK2VPX\tJan\n" "OK2VQF\tPeter\n" "OK2VQG\tJosef\n" "OK2VSF\tFerdinand\n" "OK2VSJ\tJosef\n" "OK2VSO\tOldrich\n" "OK2VSU\tVaclav\n" "OK2VTD\tJosef\n" "OK2VTZ\tDanuse\n" "OK2VUH\tJosef\n" "OK2VVN\tVilem\n" "OK2VWB\tWieslaw\n" "OK2VWE\tTomas\n" "OK2VWF\tMilan\n" "OK2VWM\tMilan\n" "OK2VWX\tIvo\n" "OK2VX\tLadislav\n" "OK2VXH\tJindrich\n" "OK2VXJ\tVlastimil\n" "OK2VXL\tJan\n" "OK2VXV\tBohuslav\n" "OK2VYG\tAlexandr\n" "OK2VYJ\tAntonin\n" "OK2VYM\tRadomir\n" "OK2VZ\tVeronika\n" "OK2VZE\tMiroslav\n" "OK2VZF\tPetr\n" "OK2VZK\tVlastimil\n" "OK2WAZ\tDominik\n" "OK2WB\tJan\n" "OK2WD\tEmil\n" "OK2WDA\tIvana\n" "OK2WDT\tLukas\n" "OK2WED\tPetr\n" "OK2WFW\tKarel\n" "OK2WGR\tPetr\n" "OK2WH\tVit\n" "OK2WHG\tViktor\n" "OK2WHT\tStanislav\n" "OK2WHV\tVaclav\n" "OK2WI\tNevenka\n" "OK2WID\tZdenek\n" "OK2WK\tAntonin\n" "OK2WKF\tVera\n" "OK2WKM\tMilan\n" "OK2WKW\tKarel\n" "OK2WM\tKarel\n" "OK2WMC\tMichal\n" "OK2WMW\tRadek\n" "OK2WN\tIvan\n" "OK2WNR\tRichard\n" "OK2WO\tJosef\n" "OK2WPA\tAntonin\n" "OK2WTF\tPetr\n" "OK2WTM\tPetr\n" "OK2WTT\tJiri\n" "OK2WVH\tVaclav\n" "OK2WW\tBernard\n" "OK2WWW\tOndrej\n" "OK2WX\tVladimir\n" "OK2WXZ\tVaclav\n" "OK2WY\tJiri\n" "OK2WYK\tMartin\n" "OK2WZN\tRostislav\n" "OK2XAF\tJaroslav\n" "OK2XAG\tRudolf\n" "OK2XAP\tAntonin\n" "OK2XAS\tAlois\n" "OK2XCG\tWladyslaw\n" "OK2XCO\tBorivoj\n" "OK2XDU\tJiri\n" "OK2XFR\tFelix\n" "OK2XFU\tMilan\n" "OK2XHK\tKarel\n" "OK2XHR\tJaroslav\n" "OK2XID\tKarel\n" "OK2XIT\tJan\n" "OK2XKM\tMagda\n" "OK2XLB\tMarian\n" "OK2XMM\tMiroslav\n" "OK2XMT\tMilan\n" "OK2XMW\tRadim\n" "OK2XQG\tLudmila\n" "OK2XRW\tRichard\n" "OK2GA\tStepan\n" "OK2XSZ\tZdenek\n" "OK2XTJ\tJan\n" "OK2XUM\tMilan\n" "OK2XVM\tVladimir\n" "OK2XVX\tVladimir\n" "OK2XWH\tMartin\n" "OK2XY\tPavel\n" "OK2XYN\tAles\n" "OK2XZ\tDusan\n" "OK2YJ\tJaroslav\n" "OK2YN\tJosef\n" "OK2YP\tVaclav\n" "OK2YT\tRadek\n" "OK2YZ\tJaroslav\n" "OK2ZAA\tZdenek\n" "OK2ZAE\tJan\n" "OK2ZAK\tAntonin\n" "OK2ZAR\tPetr\n" "OK2ZAW\tJan\n" "OK2ZAZ\tJiri\n" "OK2ZBO\tVera\n" "OK2ZC\tLudek\n" "OK2ZCB\tMartin\n" "OK2ZD\tZbynek\n" "OK2ZDL\tJan\n" "OK2ZEJ\tJakub\n" "OK2ZEL\tEmil\n" "OK2ZEO\tRoman\n" "OK2ZF\tZdenek\n" "OK2ZFB\tFilip\n" "OK2ZI\tKarel\n" "OK2ZIL\tJakub\n" "OK2ZIO\tKarel\n" "OK2ZKO\tZdenek\n" "OK2ZLA\tVladislav\n" "OK2ZLD\tPavel\n" "OK2ZLK\tZbynek\n" "OK2ZM\tMiroslav\n" "OK2ZMA\tMiroslav\n" "OK2ZMB\tMilan\n" "OK2ZMI\tMiroslav\n" "OK2ZN\tPetr\n" "OK2ZNE\tEduard\n" "OK2ZNT\tPetr\n" "OK2ZOW\tZbynek\n" "OK2ZPS\tPavel\n" "OK2ZQ\tAlois\n" "OK2ZR\tPetr\n" "OK2ZS\tJaroslav\n" "OK2ZT\tJan\n" "OK2ZTU\tMartin\n" "OK2ZTV\tJaroslav\n" "OK2ZTW\tRoman\n" "OK2ZU\tVojtech\n" "OK2ZUZ\tMiloslav\n" "OK2ZV\tVit\n" "OK2ZVN\tLadislav\n" "OK2ZW\tZdeno\n" "OK2ZYZ\tPetr\n" "OK2ZZJ\tJosef\n" "OK3AA\tMilan\n" "OK3BR\tBohumil\n" "OK3C\tLudek\n" "OK3CV\tSvatopluk\n" "OK3DHD\tJan\n" "OK3DU\tMilan\n" "OK3FJ\tJiri\n" "OK3JM\tJan\n" "OK3JOZ\tPetr\n" "OK3KLM\tMichal\n" "OK3KT\tKarel\n" "OK3MAD\tMartin\n" "OK3MK\tMiroslav\n" "OK3MN\tMilan\n" "OK3MO\tOta\n" "OK3MP\tRichard\n" "OK3MZ\tMiroslav\n" "OK3PJ\tPetr\n" "OK3PS\tPeter\n" "OK3RM\tZdenek\n" "OK3SJ\tJosef\n" "OK3SM\tOldrich\n" "OK3TT\tTomas\n" "OK3VO\tVojtech\n" "OK3WW\tMilos\n" "OK4AA\tVladimir\n" "OK4AZ\tIvan\n" "OK4BB\tBorivoj\n" "OK4DIG\tJan\n" "OK4DL\tLadislav\n" "OK4DZ\tDavid\n" "OK4FD\tFrantisek\n" "OK4JM\tJosef\n" "OK4JR\tJaroslav\n" "OK4M\tStanislav\n" "OK4MM\tJaroslav\n" "OK4MT\tMilos\n" "OK4NCA\tVaclav\n" "OK4PY\tPavel\n" "OK4PZ\tPetr\n" "OK4RQ\tPavel\n" "OK4TO\tTomas\n" "OK4TP\tTomas\n" "OK4TX\tLukas\n" "OK4VSA\tVit\n" "OK4ZW\tZdenek\n" "OK5A\tJiri\n" "OK5AA\tPavel\n" "OK5AJA\tVojtech\n" "OK5AMA\tArnold\n" "OK5AR\tMarie\n" "OK5ATY\tJarmila\n" "OK5AW\tMilos\n" "OK5DX\tSlavomir\n" "OK5E\tERA a.s.\n" "OK5EPC\tPavel\n" "OK5ET\tMartin\n" "OK5FS\tFrantisek\n" "OK5IB\tIvan\n" "OK5IM\tJiri\n" "OK5JM\tJaroslav\n" "OK5JP\tJiri\n" "OK5KL\tLubos\n" "OK5KM\tViktor\n" "OK5MAD\tJan\n" "OK5MK\tMartin\n" "OK5MN\tJan\n" "OK5NN\tJiri\n" "OK5OK\tJiri\n" "OK5OM\tOtakar\n" "OK5QZ\tAles\n" "OK5RP\tPetr\n" "OK5RS\tRadek\n" "OK5RV\tJosef\n" "OK5TK\tPetr\n" "OK5TR\tMarek\n" "OK5TT\tJan\n" "OK5TVR\tTomas\n" "OK5US\tJaromir\n" "OK5WW\tJindrich\n" "OK5XM\tJan\n" "OK5YL\tZdenka\n" "OK5ZH\tJan\n" "OK6AB\tRadek\n" "OK6AD\tJosef\n" "OK6AM\tTomas\n" "OK6AR\tZdenka\n" "OK6AZ\tPavel\n" "OK6FK\tFilip\n" "OK6LEO\tLeos\n" "OK6MA\tMarek\n" "OK6MM\tVaclav\n" "OK6PM\tPetr\n" "OK6PS\tPetr\n" "OK6VM\tVaclav\n" "OK6WW\tVaclav\n" "OK7AJ\tAntonin\n" "OK7AP\tJiri\n" "OK7AR\tAlena\n" "OK7CM\tAntonin\n" "OK7CW\tJiri\n" "OK7DM\tJiri\n" "OK7DX\tJan\n" "OK7FR\tPavel\n" "OK7FSB\tStanislav\n" "OK7FW\tFranta\n" "OK7GU\tMilan\n" "OK7IS\tIvo\n" "OK7IW\tIva\n" "OK7JP\tJosef\n" "OK7L\tVaclav\n" "OK7LW\tLibor\n" "OK7MD\tMilan\n" "OK7MS\tMartin\n" "OK7MT\tMichal\n" "OK7OK\tDarius\n" "OK7PB\tPetr\n" "OK7PM\tPavel\n" "OK7PP\tPavel\n" "OK7PY\tPavel\n" "OK7RA\tJiri\n" "OK7RB\tLudek\n" "OK7RJ\tJiri\n" "OK7RP\tRoman\n" "OK7SS\tTomas\n" "OK7ST\tKarel\n" "OK7TC\tJaroslav\n" "OK7VE\tPavel\n" "OK7WA\tFrantisek\n" "OK7WW\tZdenek\n" "OK8ACS\tTilo\n" "OK8AFF\tJoachim\n" "OK8APJ\tTorsten\n" "OK8AXA\tLibor\n" "OK8CC\tWolf\n" "OK8CS\tKamil\n" "OK8CW\tPavel\n" "OK8DBD\tWolfgang\n" "OK8DD\tRoman\n" "OK8DF\tDietmar\n" "OK8DL\tGerhard\n" "OK8EJT\tDavide\n" "OK8ENK\tJohn\n" "OK8FHP\tZb. Jerzy\n" "OK8GA\tStefan\n" "OK8HA\tMiklos\n" "OK8HIT\tRobert\n" "OK8JV\tJens\n" "OK8LAW\tZdzislaw\n" "OK8LHH\tLucien\n" "OK8MRU\tAndrzey\n" "OK8MSE\tMilutin\n" "OK8OK\tStanislav\n" "OK8PKM\tBoguslaw\n" "OK8RF\tRichard\n" "OK8SAX\tDieter\n" "OK8TNA\tJan\n" "OK8VI\tFrank\n" "OK8XB\tSteve\n" "OK8ZAG\tFerdinand\n" "OK9AMR\tMiroslav\n" "OK9BAR\tMartina\n" "OK9BAU\tMiroslav\n" "OK9BVT\tTomas\n" "OK9DAL\tTomas\n" "OK9DAM\tDagmar\n" "OK9FER\tMiroslav\n" "OK9FFZ\tFrantisek\n" "OK9FMH\tFilip\n" "OK9FSB\tStanislav\n" "OK9GOG\tMartin\n" "OK9HAG\tMarek\n" "OK9HEL\tVaclav\n" "OK9JAR\tJaroslav\n" "OK9JL\tJiri\n" "OK9JLJ\tLudek\n" "OK9KKV\tKarel\n" "OK9MVM\tDaniel\n" "OK9PDK\tJosef\n" "OK9PJE\tKarel\n" "OK9SON\tOndrej\n" "OK9SWL\tMartin\n" "OK9TVR\tTomas\n" "OK9UKI\tMilan\n" "OK9VCH\tJosef\n" "OK9XPM\tMichal\n" "OK9ZJI\tJakub\n" "OK9ZOB\tLubos\n" "OL16B\tKarel\n" "OL5QRP\tJaroslav\n" ; const char txt_tucnakrc[20354] = "# This file is generated automatically. Edit only at your own risk!\n" "\n" "pcall = \"\"\n" "pwwlo = \"\"\n" "pexch = \"\"\n" "operator = \"\"\n" "global_operator = 1\n" "\n" "padr1 = \"\"\n" "padr2 = \"\"\n" "pclub = \"\"\n" "\n" "rname = \"\"\n" "rcall = \"\"\n" "radr1 = \"\"\n" "radr2 = \"\"\n" "rpoco = \"\"\n" "rcity = \"\"\n" "rcoun = \"\"\n" "rphon = \"\"\n" "rhbbs = \"\"\n" "\n" "default_rs = \"59\"\n" "default_rst = \"599\"\n" "qsop_method = 1\n" "total_method = 1\n" "\n" "as_disk_qso = 1\n" "as_disk_min = 15\n" "as_disk_fsync = 1\n" "as_floppy_qso = 4\n" "as_floppy_min = 40\n" "as_floppy_fsync = 0\n" "as_mount_floppy = 0\n" "as_floppy_path = \"\"\n" "as_mount_cmd = \"\"\n" "\n" "net_if_ignore = \"yam0 bcsf0 ax0\"\n" "net_ip_ignore = \"\"\n" "net_ip_announce = \"\"\n" "trace_bcast = 0\n" "trace_sock = 0\n" "trace_recv = 0\n" "trace_send = 0\n" "trace_qsos = 0\n" "trace_sdev = 0\n" "language= 0\n" "\n" "cwda_type = 1\n" "cwda_device_s = \"/dev/parport0\"\n" "cwda_hostname = \"127.0.0.1\"\n" "cwda_udp_port = 6789\n" "cwda_speed = 26\n" "cwda_weight = 0\n" "cwda_minwpm = 10\n" "cwda_maxwpm = 41\n" "cwda_spk = 0\n" "cwda_leadin = 0\n" "cwda_vid = 0xa600\n" "cwda_pid = 0xe110\n" "cwda_autgive = 0\n" "\n" "wk_wk2 = 0\n" "wk_usepot = 1\n" "wk_usebut = 1\n" "wk_keymode = 1\n" "wk_swap = 0\n" "\n" "ssbd_type = 3\n" "ssbd_record = 1\n" "ssbd_maxmin = 15\n" "ssbd_diskfree = 10\n" "ssbd_format = 0x10020\n" "ssbd_channels = 1\n" "ssbd_samplerate = 8000\n" "ssbd_plev = -1\n" "ssbd_rlev = -1\n" "ssbd_template = \"$t/../record/%Y%m%d/%H/%H.%M.%S_$S_$V_$E.wav\"\n" "\n" "ssbd_dsp = \"/dev/dsp\"\n" "ssbd_maxfrag = 0\n" "ssbd_mixer = \"/dev/mixer\"\n" "ssbd_oss_src = \"\"\n" "\n" "ssbd_pcm_play = \"plughw:0,0\"\n" "ssbd_pcm_rec = \"plughw:0,0\"\n" "ssbd_period_time = 0\n" "ssbd_buffer_time = 0\n" "ssbd_alsa_mixer = \"hw:0\"\n" "ssbd_alsa_src = \"Mic\"\n" "\n" "ssbd_hostname = \"127.0.0.1\"\n" "ssbd_udp_port = 7890\n" "\n" "\n" "ROTAR = 0\n" " rot_desc = \"First rotar A\"\n" " rot_type = 0\n" " rot_filename = \"/dev/ttyUSB0\"\n" " rot_hostname = \"\"\n" " rot_port = 55555\n" " rot_vid = 0xa600\n" " rot_pid = 0xe112\n" " rot_serial = \"\"\n" " rot_timeout_ms = 300\n" " rot_beamwidth = 20\n" " rot_saddr = 240\n" " rot_model = 0\n" " rot_rem_rotstr = \"A\"\n" "\n" "\n" "rig_filename = \"/dev/ttyS0\"\n" "rig_model = 0\n" "rig_speed = 0\n" "rig_civaddr = 0x58\n" "rig_lo = 0.000000\n" "rig_ssbcw_shift = 800\n" "rig_poll_ms = 0\n" "rig_qrg_r2t = 0\n" "rig_qrg_t2r = 0\n" "rig_mode_t2r = 1\n" "rig_clr_rit = 0\n" "rig_verbose = 0\n" "\n" "loglines = 3\n" "skedshift = 5\n" "skedcount = 5\n" "startband = \"144 MHz\"\n" "gfx_x = 954\n" "gfx_y = 672\n" "fontheight = 16\n" "slashkey = \"\"\n" "ntpq = 0\n" "dssaver = 1\n" "\n" "dxc_host = \"nagano.cz\"\n" "dxc_port = 41112\n" "dxc_user = \"\"\n" "dxc_pass = \"\"\n" "kst_user = \"\"\n" "kst_pass = \"\"\n" "kst_name = \"\"\n" "\n" "CQ = 0\n" " cw_str = \"test $mc $mc $mc $mc test\"\n" " cw_speed = 0\n" " cw_repeat = 1\n" " cw_ts = 70\n" " cw_allowifundef = 1\n" " ssb_file = \"~/tucnak/cq/$MC_$O.wav\"\n" " ssb_ts = 70\n" " ssb_repeat = 1\n" "\n" "CQ = 1\n" " cw_str = \"test $mc $mc test\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 70\n" " cw_allowifundef = 1\n" " ssb_file = \"~/tucnak/cq/$MC_$O.wav\"\n" " ssb_ts = 70\n" " ssb_repeat = 0\n" "\n" "CQ = 2\n" " cw_str = \"$c $mr $mn $mw k\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 300\n" " ssb_repeat = 1\n" "\n" "CQ = 3\n" " cw_str = \"qrz?\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 30\n" " ssb_repeat = 0\n" "\n" "CQ = 4\n" " cw_str = \"cfm test $mc\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 30\n" " ssb_repeat = 1\n" "\n" "CQ = 5\n" " cw_str = \"de $MC $MC $MC K\"\n" " cw_speed = 0\n" " cw_repeat = 0\n" " cw_ts = 30\n" " cw_allowifundef = 0\n" " ssb_file = \"\"\n" " ssb_ts = 30\n" " ssb_repeat = 1\n" "\n" "\n" "TERM = \"cons25\"\n" " term_mode = 2\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 0\n" "\n" "TERM = \"cygwin\"\n" " term_mode = 2\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"screen\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"xterm\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"linux\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "TERM = \"sdl\"\n" " term_mode = 1\n" " term_m11_hack = 1\n" " term_restrict_852 = 0\n" " term_col = 1\n" " term_utf_8_io = 0\n" " term_charset = 2\n" "\n" "\n" "SUBWIN = 0 #QSOs\n" " sw_type = 0\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 1 #Sked\n" " sw_type = 5\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 2 #Talk\n" " sw_type = 3\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 3 #DXC\n" " sw_type = 4\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 4 #Unfi\n" " sw_type = 7\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 5 #Stat\n" " sw_type = 8\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 6 #KST\n" " sw_type = 15\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 7 #Shell\n" " sw_type = 2\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 8 #Map\n" " sw_type = 9\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 9 #Scope\n" " sw_type = 10\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "SUBWIN = 10 #QRV\n" " sw_type = 11\n" " sw_command = \"\"\n" " sw_autorun = \"\"\n" " sw_respawn_time = 5\n" "\n" "\n" "PBAND = \"50 MHz\"\n" " bandchar = \"a\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 50000\n" " qrg_max = 52000\n" " adifband = \"6m\"\n" " cbrband = \"6M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"70 MHz\"\n" " bandchar = \"b\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 70025\n" " qrg_max = 70500\n" " adifband = \"4m\"\n" " cbrband = \"4M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"144 MHz\"\n" " bandchar = \"c\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"01\"\n" " ok_section_multi = \"02\"\n" " qrg_min = 144000\n" " qrg_max = 146000\n" " adifband = \"2m\"\n" " cbrband = \"2M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xfe\n" "\n" "PBAND = \"220 MHz\"\n" " bandchar = \"d\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 220000\n" " qrg_max = 222000\n" " adifband = \"1.25m\"\n" " cbrband = \"222\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"432 MHz\"\n" " bandchar = \"e\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"03\"\n" " ok_section_multi = \"04\"\n" " qrg_min = 430000\n" " qrg_max = 440000\n" " adifband = \"70cm\"\n" " cbrband = \"432\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xfd\n" "\n" "PBAND = \"902 MHz\"\n" " bandchar = \"f\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 900000\n" " qrg_max = 902000\n" " adifband = \"35cm\"\n" " cbrband = \"902\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"1,3 GHz\"\n" " bandchar = \"g\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"05\"\n" " ok_section_multi = \"06\"\n" " qrg_min = 1240000\n" " qrg_max = 1300000\n" " adifband = \"23cm\"\n" " cbrband = \"1.2G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xfb\n" "\n" "PBAND = \"2,3 GHz\"\n" " bandchar = \"h\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"07\"\n" " ok_section_multi = \"08\"\n" " qrg_min = 2300000\n" " qrg_max = 2450000\n" " adifband = \"13cm\"\n" " cbrband = \"2.3G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xf7\n" "\n" "PBAND = \"3,4 GHz\"\n" " bandchar = \"i\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"09\"\n" " ok_section_multi = \"10\"\n" " qrg_min = 3400000\n" " qrg_max = 3410000\n" " adifband = \"9cm\"\n" " cbrband = \"3.4G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xef\n" "\n" "PBAND = \"5,7 GHz\"\n" " bandchar = \"j\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"11\"\n" " ok_section_multi = \"12\"\n" " qrg_min = 5650000\n" " qrg_max = 5850000\n" " adifband = \"6cm\"\n" " cbrband = \"5.7G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xdf\n" "\n" "PBAND = \"10 GHz\"\n" " bandchar = \"k\"\n" " qrv = 1\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"13\"\n" " ok_section_multi = \"14\"\n" " qrg_min = 10000000\n" " qrg_max = 10500000\n" " adifband = \"3cm\"\n" " cbrband = \"10G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xbf\n" "\n" "PBAND = \"24 GHz\"\n" " bandchar = \"l\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"15\"\n" " ok_section_multi = \"16\"\n" " qrg_min = 24000000\n" " qrg_max = 24250000\n" " adifband = \"1.25cm\"\n" " cbrband = \"24G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x7f\n" "\n" "PBAND = \"47 GHz\"\n" " bandchar = \"m\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"17\"\n" " ok_section_multi = \"18\"\n" " qrg_min = 47000000\n" " qrg_max = 47200000\n" " adifband = \"6mm\"\n" " cbrband = \"47G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"76 GHz\"\n" " bandchar = \"n\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"19\"\n" " ok_section_multi = \"20\"\n" " qrg_min = 75500000\n" " qrg_max = 76000000\n" " adifband = \"4mm\"\n" " cbrband = \"75G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"122 GHz\"\n" " bandchar = \"o\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 0\n" " qrg_max = 0\n" " adifband = \"2.5mm\"\n" " cbrband = \"119G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"134 GHz\"\n" " bandchar = \"p\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 142000000\n" " qrg_max = 149000000\n" " adifband = \"2mm\"\n" " cbrband = \"142G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"248 GHz\"\n" " bandchar = \"q\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 241000000\n" " qrg_max = 250000000\n" " adifband = \"1mm\"\n" " cbrband = \"241G\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0xff\n" "\n" "PBAND = \"1,8 MHz\"\n" " bandchar = \"u\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 1800\n" " qrg_max = 2000\n" " adifband = \"160m\"\n" " cbrband = \"160M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x01\n" "\n" "PBAND = \"3,5 MHz\"\n" " bandchar = \"v\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 3500\n" " qrg_max = 4000\n" " adifband = \"80m\"\n" " cbrband = \"80M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x02\n" "\n" "PBAND = \"7 MHz\"\n" " bandchar = \"w\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 7000\n" " qrg_max = 7300\n" " adifband = \"40m\"\n" " cbrband = \"40M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x03\n" "\n" "PBAND = \"14 MHz\"\n" " bandchar = \"x\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 14000\n" " qrg_max = 14350\n" " adifband = \"20m\"\n" " cbrband = \"20M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x05\n" "\n" "PBAND = \"21 MHz\"\n" " bandchar = \"y\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 21000\n" " qrg_max = 21450\n" " adifband = \"15m\"\n" " cbrband = \"15M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x07\n" "\n" "PBAND = \"28 MHz\"\n" " bandchar = \"z\"\n" " qrv = 0\n" " psect = 0\n" " readonly = 0\n" "\n" " stxeq = \"\"\n" " spowe = \"\"\n" " srxeq = \"\"\n" " sante = \"\"\n" " santh = \"\"\n" " mope1 = \"\"\n" " mope2 = \"\"\n" " remarks = \"\"\n" "\n" " ok_section_single = \"\"\n" " ok_section_multi = \"\"\n" " qrg_min = 28000\n" " qrg_max = 29700\n" " adifband = \"10m\"\n" " cbrband = \"10M\"\n" " skedqrg = \"\"\n" " band_lo = 0.000000\n" " band_sw = 0x09\n" "\n" ; const char txt_tucnakdw[8326] = "# 1th row - The official prefix of the DXCC\n" "# 2nd row - The list of WWL in the DXCC (separated by a gap).\n" "# The first WWL is the most effective one or midlands \n" "# or Capital City of DXCC.\n" "# 3rd row - The most effective WWL from JN69UO\n" "# There is a free row between DXCC's \n" "#\n" "# The list of DXCC in 'tucnakdw.dat':\n" "# 1A 3A 4J 4L 4O 4U1I 4U1V 5B 9A 9H C3 CT3 CT CU DU DL E7 EA6\n" "# EA8 EA9 EA EI ER ES EU F GD GI GJ GM GU GW G HB0 HB\n" "# HG HV IS IT9 I JW JX LA LX LY LZ OE OH0 OH OJ0 OK OM ON \n" "# OY OZ PA S5 SM SP SV5 SV9 SV TA T7 TF TK UA2 UR UA \n" "# YL YO YU Z3 ZA ZB\n" "\n" "1A\n" "JM75 JM76\n" "\n" "3A\n" "JN33\n" "JN33RR\n" "\n" "4J\n" "LM29 LM38 LM39 LM48 LM49 LN20 LN21 LN30 LN31 LN40 LN41 LN50\n" "\n" "4L\n" "LN01 LN02 LN03 LN11 LN12 LN13 LN21 LN22 LN31 LN32\n" "\n" "4O\n" "JN91 JN92 JN93 KN02 KN03\n" "\n" "4U1I\n" "JN36\n" "\n" "4U1V\n" "JN88\n" "\n" "4X\n" "KM70 KM71 KM72 KM73 KL79\n" "\n" "5B\n" "KM64 KM65 KM74 KM75\n" "\n" "9A\n" "JN64 JN65 JN72 JN73 JN74 JN75 JN76 JN82 JN83 JN84 JN85 JN86 JN92 JN94 JN95\n" "JN85MM \n" "\n" "9H\n" "JM75 JM76\n" "\n" "C3\n" "JN02\n" "\n" "CN\n" "IL37 IL38 IL47 IL48 IL49 IL57 IL58 IL59 IL69 IL79 IM50 IM51 IM52 IM53 IM60 IM61 IM62 IM63 IM64 IM65 IM70 IM71 IM72 IM73 IM74 IM75 IM80 IM81 IM82 IM83 IM84 IM85 IM92 IM93 IM94\n" "\n" "CT3\n" "IM12 IM13\n" "\n" "CT\n" "IM56 IM57 IM58 IM59 IM66 IM67 IM68 IM69 IN50 IN51 IN52 IN60 IN61\n" "\n" "CU\n" "HM49 HM58 HM59 HM68 HM69 HM76 HM77\n" "\n" "# nejen pk04\n" "DU\n" "PK04\n" "\n" "DL\n" "JN37 JN38 JN39 JN47 JN48 JN49 JN57 JN58 JN59 JN67 JN68 JN69 JO20 JO21 JO30 JO31 JO32 JO33 JO34 JO40 JO41 JO42 JO43 JO44 JO50 JO51 JO52 JO53 JO54 JO60 JO61 JO62 JO63 JO64 JO70 JO71 JO72 JO73 JO74\n" "JO31LE JO43WK\n" "\n" "E7\n" "JN74 JN75 JN82 JN83 JN84 JN85 JN92 JN93 JN94 JN95\n" "JN94IR \n" "\n" "EA6\n" "JM08 JM09 JM19 JM29 JN10 JN20\n" "\n" "EA8\n" "IL18 IL27 IL28 IL38 IL39\n" "IL28GD\n" "\n" "EA9\n" "IM75 IM85\n" "\n" "EA\n" "IM66 IM67 IM68 IM69 IM75 IM76 IM77 IM78 IM79 IM86 IM87 IM88 IM89 IM96 IM97 IM98 IM99 IN51 IN52 IN53 IN60 IN61 IN62 IN63 IN70 IN71 IN72 IN73 IN80 IN81 IN82 IN83 IN90 IN91 IN92 IN93 JM08 JM09 JN00 JN01 JN02 JN11 JN12\n" "\n" "EI\n" "IO41 IO42 IO43 IO44 IO51 IO52 IO53 IO54 IO55 IO61 IO62 IO63 IO64 IO65\n" "\n" "ER\n" "KN36 KN37 KN38 KN45 KN46 KN47 KN48 KN56\n" "\n" "ES\n" "KO07 KO08 KO17 KO18 KO19 KO27 KO28 KO29 KO37 KO38 KO39 KO49\n" "\n" "EU\n" "KO11 KO12 KO13 KO21 KO22 KO23 KO24 KO31 KO32 KO33 KO34 KO35 KO36 KO41 KO42 KO43 KO44 KO45 KO46 KO51 KO52 KO53 KO54 KO55 KO63\n" "\n" "F\n" "IN77 IN78 IN86 IN87 IN88 IN92 IN93 IN94 IN95 IN96 IN97 IN98 IN99 JN02 JN03 JN04 JN05 JN06 JN07 JN08 JN09 JN12 JN13 JN14 JN15 JN16 JN17 JN18 JN19 JN23 JN24 JN25 JN26 JN27 JN28 JN29 JN32 JN33 JN34 JN35 JN36 JN37 JN38 JN39 JN48 JO00 JO01 JO10 JO11 JO20\n" "JN38BO\n" "\n" "GD\n" "IO73 IO74\n" "\n" "GI\n" "IO54 IO63 IO64 IO65 IO74\n" "\n" "GJ\n" "IN89\n" "\n" "GM\n" "IO65 IO66 IO67 IO68 IO74 IO75 IO76 IO77 IO78 IO84 IO85 IO86 IO87 IO88 IO89 IO95 IO97 IO99 IP90\n" "\n" "GU\n" "IN89\n" "IN89RL\n" "\n" "GW\n" "IO71 IO72 IO73 IO81 IO82 IO83\n" "\n" "G\n" "IN79 IO70 IO71 IO80 IO81 IO82 IO83 IO84 IO85 IO90 IO91 IO92 IO93 IO94 IO95 JO00 JO01 JO02 JO03\n" "JO01QD\n" "\n" "HB0\n" "JN47\n" "JN47SD\n" "\n" "HB\n" "JN35 JN36 JN37 JN45 JN46 JN47 JN56\n" "JN47HD\n" "\n" "HA\n" "JN85 JN86 JN87 JN95 JN96 JN97 JN98 KN06 KN07 KN08 KN17 KN18\n" "JN97RV \n" "\n" "HV\n" "JN61\n" "\n" "IS\n" "JM48 JM49 JN40 JN41\n" "\n" "IT9\n" "JM67 JM68 JM76 JM77 JM78\n" "\n" "I\n" "JM77 JM78 JM79 JM87 JM88 JM89 JM99 JN33 JN34 JN35 JN43 JN44 JN45 JN46 JN51 JN52 JN53 JN54 JN55 JN56 JN57 JN60 JN61 JN62 JN63 JN64 JN65 JN66 JN67 JN70 JN71 JN72 JN80 JN81 JN90\n" "JN54XA\n" "\n" "JW\n" "JQ58 JQ59 JQ67 JQ68 JQ69 JQ76 JQ77 JQ78 JQ79 JQ86 JQ87 JQ88 JQ89 JQ97 JQ98 JQ99 KQ07 KQ08 KQ09 KQ17 KQ18 KQ19 KQ27 KQ29 KQ38 KQ39 KQ48 KQ58 JR70 JR80 JR90 KR00 KR10 KR20 KR30 KR40 KR50 KR60 KR80\n" "\n" "# ?\n" "JX\n" "IQ51\n" "\n" "LA\n" "JO28 JO29 JO37 JO38 JO39 JO48 JO49 JO58 JO59 JO69 JP20 JP21 JP22 JP30 JP31 JP32 JP33 JP40 JP41 JP42 JP43 JP44 JP50 JP51 JP52 JP53 JP54 JP55 JP60 JP61 JP62 JP63 JP64 JP65 JP66 JP67 JP68 JP74 JP75 JP76 JP77 JP78 JP79 JP86 JP87 JP88 JP89 JP98 JP99 JQ90 KP08 KP09 KP18 KP19 KP28 KP29 KP39 KP48 KP49 KP59 KQ00 KQ10 KQ20 KQ21 KQ30 KQ31 KQ40 KQ50\n" "\n" "LX\n" "JN29 JN39 JO20 JO30\n" "JN29VX \n" "\n" "LY\n" "KO05 KO06 KO13 KO14 KO15 KO16 KO23 KO24 KO25 KO26 KO34 KO35\n" "\n" "LZ\n" "KN11 KN12 KN13 KN14 KN21 KN22 KN23 KN31 KN32 KN33 KN34 KN43\n" "\n" "OE\n" "JN46 JN47 JN56 JN57 JN66 JN67 JN68 JN76 JN77 JN78 JN86 JN87 JN88\n" "JN88DC JN68PC\n" "\n" "# ?\n" "OH0\n" "JP90 KP00\n" "\n" "OH\n" "KO19 KO29 KP00 KP01 KP02 KP03 KP08 KP09 KP10 KP11 KP12 KP13 KP14 KP16 KP17 KP18 KP19 KP20 KP21 KP22 KP23 KP24 KP25 KP26 KP27 KP28 KP29 KP30 KP31 KP32 KP33 KP34 KP35 KP36 KP37 KP38 KP39 KP40 KP41 KP42 KP43 KP44 KP45 KP46 KP47 KP48 KP49 KP51 KP52 KP53 KP54 KP55 KQ30\n" "\n" "# ?\n" "OJ0\n" "JP90\n" "\n" "OK\n" "JN68 JN69 JN78 JN79 JN88 JN89 JN98 JN99 JO60 JO70 JO71 JO80 JO90\n" "JN89JM JO80IA\n" "\n" "OM\n" "JN87 JN88 JN89 JN97 JN98 JN99 KN08 KN09 KN18 KN19\n" "JN98EP JN88RG\n" "\n" "ON\n" "JN29 JO10 JO11 JO20 JO21 JO30\n" "JO20JU \n" "\n" "OY\n" "IP61 IP62\n" "\n" "OZ\n" "JO44 JO45 JO46 JO47 JO54 JO55 JO56 JO57 JO64 JO65 JO66 JO74 JO75\n" "\n" "PA\n" "JO11 JO20 JO21 JO22 JO23 JO30 JO31 JO32 JO33\n" "JO21GV\n" "\n" "S5\n" "JN65 JN66 JN75 JN76 JN86\n" "JN76KO\n" "\n" "SM\n" "JO57 JO58 JO59 JO65 JO66 JO67 JO68 JO69 JO75 JO76 JO77 JO78 JO79 JO86 JO87 JO88 JO89 JO96 JO97 JO98 JO99 JP53 JP60 JP61 JP62 JP63 JP64 JP70 JP71 JP72 JP73 JP74 JP75 JP76 JP80 JP81 JP82 JP83 JP84 JP85 JP86 JP87 JP88 JP90 JP92 JP93 JP94 JP95 JP96 JP97 JP98 KP03 KP04 KP05 KP06 KP07 KP08 KP09 KP15 KP16 KP17 KP18 KP25 KP26\n" "JO65TM\n" "\n" "SP\n" "JN89 JN99 JO70 JO71 JO72 JO73 JO74 JO80 JO81 JO82 JO83 JO84 JO90 JO91 JO92 JO93 JO94 KN09 KN19 KO00 KO01 KO02 KO03 KO04 KO10 KO11 KO12 KO13 KO14 KO20\n" "JO90FB JO91QF\n" "\n" "SV5\n" "KM35 KM36 KM45 KM46\n" "\n" "SV9\n" "KM14 KM15 KM24 KM25 KM34 KM35\n" "\n" "SV\n" "JM99 KM06 KM07 KM08 KM09 KM16 KM17 KM18 KM19 KM26 KM27 KM28 KM29 KM36 KM37 KM38 KM39 KN00 KN01 KN10 KN11 KN20 KN21 KN30 KN31\n" "\n" "TA\n" "KM27 KM28 KM29 KM35 KM36 KM37 KM38 KM39 KM46 KM47 KM48 KM49 KM56 KM57 KM58 KM59 KM64 KM65 KM66 KM67 KM68 KM69 KM74 KM75 KM76 KM77 KM78 KM79 KM85 KM86 KM87 KM88 KM89 KM96 KM97 KM98 KM99 KN20 KN30 KN31 KN32 KN40 KN41 KN50 KN51 KN60 KN61 KN62 KN70 KN71 KN72 KN80 KN81 KN90 KN91 LM06 LM07 LM08 LM09 LM17 LM18 LM19 LM26 LM27 LM28 LM29 LN00 LN01 LN10 LN11 LN20\n" "KM69JX\n" "\n" "# ?\n" "T7\n" "JN63\n" "\n" "TF\n" "HP74 HP75 HP83 HP84 HP85 HP86 HP93 HP94 HP95 HP96 IP03 IP04 IP05 IP06 IP13 IP14 IP15 IP16 IP24 IP25 IP26 IP34 IP35\n" "\n" "TK\n" "JN41 JN42 JN43\n" "\n" "UA2\n" "JO94 KO04 KO05 KO14 KO15\n" "\n" "UR\n" "KN17 KN18 KN19 KN27 KN28 KN29 KN37 KN38 KN39 KN45 KN46 KN47 KN48 KN49 KN55 KN56 KN57 KN58 KN59 KN64 KN65 KN66 KN67 KN68 KN69 KN74 KN75 KN76 KN77 KN78 KN79 KN84 KN85 KN86 KN87 KN88 KN89 KN96 KN97 KN98 KN99 KO10 KO11 KO20 KO21 KO30 KO31 KO40 KO41 KO50 KO51 KO52 KO60 KO61 KO62 KO70 KO71 KO72 KO80 KO90 LN08 LN09\n" "\n" "UA\n" "KN84 KN85 KN86 KN89 KN93 KN94 KN95 KN96 KN97 KN98 KN99 KO36 KO37 KO38 KO39 KO45 KO46 KO47 KO48 KO49 KO52 KO53 KO54 KO55 KO56 KO57 KO58 KO62 KO63 KO64 KO65 KO66 KO67 KO68 KO69 KO70 KO71 KO72 KO73 KO74 KO75 KO76 KO77 KO78 KO79 KO80 KO81 KO82 KO83 KO84 KO85 KO86 KO87 KO88 KO89 KO90 KO91 KO92 KO93 KO94 KO95 KO96 KO97 KO98 KO99 LN03 LN04 LN05 LN06 LN07 LN08 LN09 LN12 LN13 LN14 LN15 LN16 LN17 LN18 LN19 LN22 LN23 LN24 LN25 LN26 LN27 LN28 LN29 LN31 LN32 LN33 LN34 LN35 LN36 LN37 LN38 LN39 LN41 LN42 LN43 LN44 LN45 LN46 LN47 LN49 LO00 LO01 LO02 LO03 LO04 LO05 LO06 LO07 LO08 LO09 LO10 LO11 LO12 LO13 LO14 LO15 LO16 LO17 LO18 LO19 LO20 LO21 LO22 LO23 LO24 LO25 LO26 LO27 LO28 LO29 LO90 LO91 LO92 LO93 LO94 LO95 LO96 LO97 LO98 LO99\n" "\n" "YL\n" "KO06 KO07 KO16 KO17 KO25 KO26 KO27 KO35 KO36 KO37 KO46\n" "\n" "YO\n" "KN04 KN05 KN06 KN07 KN13 KN14 KN15 KN16 KN17 KN18 KN23 KN24 KN25 KN26 KN27 KN33 KN34 KN35 KN36 KN37 KN38 KN43 KN44 KN45 KN46\n" "KN05PS\n" "\n" "YU\n" "JN93 JN94 JN95 JN96 KN02 KN03 KN04 KN05 KN06 KN12 KN13 KN14\n" "KN04IQ\n" "\n" "Z3\n" "KN00 KN01 KN02 KN11 KN12\n" "\n" "ZA\n" "JM99 JN90 JN91 JN92 KM09 KN00 KN01 KN02\n" "\n" "ZB\n" "IM76\n" "\n" "ZC4:\n" "KM65\n" "\n" ; const char txt_tucnakwiz[9541] = "[Region I Standard Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=ABCEGHIJKLMNOPQ\n" "\n" "[Region I Std test 59 expert]\n" "pexch=\n" "tttype=3\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=0\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[I. subregionalni zavod]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[II. subregionalni zavod]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[Microwave contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=GHIJKLMN\n" "\n" "[III. subregionalni zavod]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[IARU Region I. VHF Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=C\n" "\n" "[IARU Region I. UHF Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=EGHIJKLMN\n" "\n" "[Marconi memorial/A1 Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=C\n" "\n" "[OK VHF Activity Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=4\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[FM pohar]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=4\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[OK Easter Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CEGHIJKLMN\n" "\n" "[AGCW VHF/UHF Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=1\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=2\n" "excname=AGCW\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=CE\n" "\n" "[RSGB M1-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=1\n" "exctype=2\n" "excname=RSGBDC\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=12\n" "total_method=2\n" "bands=BC\n" "\n" "[RSGB M2-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=2\n" "total_method=1\n" "bands=ABCEG\n" "\n" "[RSGB M3-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=1\n" "exctype=2\n" "excname=RSGBDC\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=12\n" "total_method=2\n" "bands=ACE\n" "\n" "[RSGB M4-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=2\n" "total_method=2\n" "bands=ABCEK\n" "\n" "[RSGB M5-type Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=17\n" "total_method=2\n" "bands=ABCEK\n" "\n" "[SSB Liga]\n" "pexch=\n" "rstused=1\n" "tttype=2\n" "qsoused=0\n" "wwlused=0\n" "qsomult=1\n" "qsoglob=0\n" "qsop_method=1\n" "wwlbonu=0\n" "wwlmult=0\n" "dxcbonu=0\n" "dxcmult=0\n" "excbonu=0\n" "excmult=1\n" "total_method=1\n" "excused=1\n" "exctype=2\n" "excname=OKRES\n" "exccfm=0\n" "defrstr=1\n" "bands=V\n" "\n" "[CQ WW DX Contest]\n" "pexch=\n" "tttype=4\n" "qsoused=0\n" "qsomult=1\n" "qsoglob=1\n" "wwlused=0\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=0\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=0\n" "exctype=3\n" "excname=WAZ\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=13\n" "total_method=3\n" "bands=UVWXYZ\n" "\n" "[CQ WW WPX Contest]\n" "pexch=\n" "tttype=3\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=1\n" "wwlused=0\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=1\n" "qsop_method=14\n" "total_method=3\n" "bands=UVWXYZ\n" "\n" "[UKSMG Summer Contest]\n" "pexch=\n" "tttype=4\n" "qsoused=2\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "excused=1\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=1\n" "excname=SUMMER\n" "excmult=1\n" "rstused=1\n" "defrstr=0\n" "dxcmult=0\n" "qsop_method=12\n" "total_method=1\n" "bands=A\n" "\n" "[ARRL VHF Contest]\n" "pexch=\n" "tttype=3\n" "qsoused=0\n" "qsomult=0\n" "qsoglob=1\n" "wwlused=3\n" "wwlbonu=0\n" "wwlmult=1\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=0\n" "exctype=0\n" "excname=\n" "rstused=0\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=15\n" "total_method=4\n" "bands=ABCDEFGHIJKLMNOPQ\n" "\n" "[ARRL Internat. DX Contest]\n" "pexch=\n" "tttype=2\n" "qsoused=0\n" "qsomult=3\n" "qsoglob=1\n" "wwlused=0\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=0\n" "excused=1\n" "excbonu=0\n" "excmult=1\n" "exccfm=0\n" "exctype=2\n" "excname=USACA\n" "rstused=1\n" "defrstr=1\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=2\n" "total_method=3\n" "bands=UVWXYZ\n" "\n" "[Championat de France THF]\n" "pexch=\n" "tttype=1\n" "qsoused=1\n" "qsomult=1\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=0\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=16\n" "total_method=1\n" "bands=CEGHIJKLMNOPQ\n" "\n" "[OK-OM DX Contest - OK stn.]\n" "pexch=\n" "rstused=1\n" "tttype=3\n" "qsoused=1\n" "wwlused=0\n" "qsomult=1\n" "qsoglob=1\n" "qsop_method=14\n" "wwlbonu=0\n" "wwlmult=0\n" "dxcbonu=0\n" "dxcmult=0\n" "excbonu=0\n" "excmult=1\n" "total_method=3\n" "excused=2\n" "exctype=0\n" "excname=OKRES\n" "exccfm=1\n" "defrstr=1\n" "bands=UVWXYZ\n" "\n" "[Nordic Activity Contest]\n" "pexch=\n" "tttype=1\n" "qsoused=2\n" "qsomult=1\n" "qsomult_h=2\n" "qsomult_i=3\n" "qsomult_j=4\n" "qsomult_k=5\n" "qsomult_l=6\n" "qsomult_m=7\n" "qsomult_n=8\n" "qsomult_o=9\n" "qsomult_p=10\n" "qsomult_q=11\n" "qsoglob=0\n" "wwlused=1\n" "wwlbonu=500\n" "wwlmult=0\n" "wwlcfm=1\n" "excused=0\n" "excbonu=0\n" "excmult=0\n" "exccfm=1\n" "exctype=0\n" "excname=\n" "rstused=1\n" "defrstr=0\n" "dxcbonu=0\n" "dxcmult=0\n" "qsop_method=1\n" "total_method=1\n" "bands=ABCEGHIJKLKMNOPQZ\n" ; const char txt_tucnakvexcagcw[10] = "A B C\n" ; const char txt_tucnakvexcokres[725] = "APA APB APC APD APE APF APG APH API APJ\n" "BBN BBE BKD BKO BKH BME BMB BNY BPZ BPV BPB BRA\n" "CBU CCK CJH CPE CPI CPR CST CTA\n" "DDO DCH DKV DKL DPM DPJ DPS DRO DSO DTA\n" "ECL EDE ECH EJA ELI ELT ELO EMO ETE EUL \n" "FHB FHK FCR FJI FNA FPA FRK FSE FSV FTR FUO\n" "GBL GBM GBV GBR GHO GJI GKR GPR GTR GUH GVY GZL GZN GZS\n" "HBR HFM HJE HKA HNJ HOL HOP HOS HPR HSU HVS\n" "BAA BAB BAC BAD BAE MAL PEZ SEN\n" "TRN DST GAL HLO PIE SEA SKA\n" "TNC BAN ILA MYJ NMV PAR PBY PRI PUC\n" "NIT KOM LVC NZA SAL TOP ZMO\n" "ZIL BYT CAD DKU KNM LMI MAR NAM RUZ TTE TVR\n" "BBY BRE DET KRU LUC POL REV RSO VKR ZVO ZAR ZIH BST\n" "KEA KEB KEC KED KEO GEL MIC ROZ SOB SNV TRE\n" "PRE BAR HUM KEZ LEV POP SAB SNI SLU STR SVI VRT MED\n" ; const char txt_tucnakvexcrsgbdc[429] = "AB AL BA BB BD BH BL BM BN\n" "BR BS BT CA CB CF CH CM CO \n" "CR CT CV CW DA DD DE DG DH\n" "DL DN DT DY EC EH EL EN EX\n" "FK FY GL GS GU GY HA HD HG\n" "HP HR HS HU HX IG IM IP IV\n" "JE KA KT KW KY LA LD LE LL\n" "LN LP LS LU ME MK ML MR NE\n" "NG NL NN NP NR NW OL OX PA\n" "PE PH PL PO PR RG RH RM SA\n" "SD SE SG SK SL SM SN SO SP\n" "SR SS ST SW SY TA TD TF TN\n" "TQ TR TS TW UB WA WC WD WF\n" "WL WN WR WS WV YO ZE\n" ; const char txt_tucnakvexcusaca[496] = "AB \n" "AL\n" "ALB \n" "ALT \n" "AR\n" "AZ\n" "BC \n" "CA\n" "CO\n" "CT\n" "DC\n" "DE\n" "FL\n" "GA\n" "IA\n" "ID\n" "IL\n" "IN\n" "KS\n" "KY\n" "LA\n" "LAB\n" "MA\n" "MAN \n" "MB \n" "MD\n" "ME\n" "MI\n" "MN\n" "MO\n" "MS\n" "MT\n" "NB\n" "NC\n" "ND\n" "NE\n" "NF \n" "NH\n" "NJ\n" "NM\n" "NS\n" "NV\n" "NWT \n" "NY\n" "OH\n" "OK\n" "ON \n" "OR\n" "PA\n" "PEI\n" "PQ \n" "QC \n" "QU\n" "RI\n" "SC\n" "SD\n" "SK \n" "TN\n" "TX\n" "UT\n" "VA\n" "VT\n" "WA\n" "WI\n" "WV\n" "WY\n" "YT\n" "YU\n" ; const char txt_update_deb[740] = "#!/bin/sh\n" "\n" "echo \"*** This is upgrade script for Tucnak\"\n" "echo \"*** Please follow instructions bellow\"\n" "echo \"\"\n" "\n" "cmd=\"sudo LANG= LC_ALL= dpkg -i '$1' '$2'\"\n" "echo $cmd\n" "$cmd\n" "if test x\"$?\" = x\"0\" ; then\n" " echo \"*** Seems OK. Please restart Tucnak\"\n" " exit 0\n" "else\n" " echo \"*** sudo returns $?, falling to su\"\n" "fi\n" "\n" "\n" "echo su -p -c dpkg -i \"$1\" \"$2\" root\n" "su -p -c 'LANG= LC_ALL= dpkg -i \"$1\" \"$2\"' root\n" "if test x\"$?\" = x\"0\" ; then\n" " echo \"*** Seems OK. Please restart Tucnak\"\n" " exit 0\n" "else\n" " echo \"*** su returns $?, giving up\"\n" " echo \"*** Please run as root: dpkg -i '$1' '$2'\"\n" " exit 1\n" "fi\n" "\n" ; const char txt_update_eee[414] = "#!/bin/sh\n" "\n" "echo \"*** This is upgrade script for Tucnak\"\n" "echo \"*** Please follow instructions bellow\"\n" "echo \"\"\n" " \n" "cd $HOME\n" "echo \"tar xvzf '$2' tucnak/tucnak\"\n" "tar xvzf '$2' tucnak/tucnak\n" "\n" "if test x\"$?\" = x\"0\" ; then\n" " echo \"*** Seems OK. Please restart Tucnak\"\n" " exit 0\n" "else\n" " echo \"*** tar returns $?, giving up\"\n" "fi\n" "\n" "\n" ; tucnak-4.04/src/sndpipe.c0000644000175000017500000000460112460207027012245 00000000000000/* Tucnak - VHF contest log Copyright (C) 2014-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "fifo.h" #include "language2.h" #include "sndpipe.h" int sndpipe_open(struct dsp *dsp, int rec){ dbg("sndpipe_open(%s)\n", rec?"record":"playback"); zg_free0(dsp->name); dsp->name = g_strdup("sndpipe"); dsp->samples = dsp->frames * dsp->channels; dsp->bytes = dsp->samples * sizeof(short); if (!dsp->pipe_opened){ if (z_pipe(dsp->pipe) < 0){ log_addf(VTEXT(T_CANT_OPEN_SOUND_PIPE)); goto err; } dsp->pipe_opened = 1; } z_sock_nonblock(dsp->pipe[0], 1); //log_addf("sndpipe opened, rate=%d, bufsize=%df %ds %db", dsp->speed, dsp->frames, dsp->samples, dsp->bytes); dbg("sndpipe opened, rate=%d, bufsize=%df %ds %db\n", dsp->speed, dsp->frames, dsp->samples, dsp->bytes); goto x; err:; sndpipe_close(dsp); x:; return 0; } int sndpipe_close(struct dsp *dsp){ dbg("sndpipe_close()\n"); dsp->reset(dsp); z_pipe_close(dsp->pipe[0]); z_pipe_close(dsp->pipe[1]); dsp->pipe_opened = 0; dsp->pipe_opened_for_play = 0; return 0; } int sndpipe_write(struct dsp *dsp, void *data, int frames){ int ret; int bytes = (frames * dsp->bytes) / dsp->frames; ret = z_pipe_write(dsp->pipe[1], data, bytes); if (ret > 0) ret = (ret * dsp->frames) / dsp->bytes; return ret; } int sndpipe_read(struct dsp *dsp, void *data, int frames){ int ret; int bytes = (frames * dsp->bytes) / dsp->frames; ret = z_pipe_read(dsp->pipe[0], data, bytes); if (ret < 0){ if (z_sock_wouldblock(z_sock_errno)) return -EWOULDBLOCK; } if (ret > 0) ret = (ret * dsp->frames) / dsp->bytes; return ret; } int sndpipe_reset(struct dsp *dsp){ return 0; } int sndpipe_sync(struct dsp *dsp){ return 0; } #ifdef HAVE_SNDFILE int sndpipe_set_format(struct dsp *dsp, SF_INFO *sfinfo, int ret){ dsp->speed = sfinfo->samplerate; dsp->channels = sfinfo->channels; dsp->frames = 0; return 0; } #endif int sndpipe_set_sdr_format(struct dsp *dsp, int frames, int speed, int rec){ dsp->speed = speed; dsp->channels = 2; dsp->frames = frames; if (dsp->speed != 0) dsp->period_time = frames * 1000 / dsp->speed; return 0; } tucnak-4.04/src/soundwrapper.c0000644000175000017500000000447711727331274013356 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include #include #ifdef HAVE_SYS_IOCTL_H #include #endif #ifdef HAVE_SYS_KD_H #include #endif #include #include #ifdef HAVE_UNISTD_H #include #endif #ifdef KIOCSOUND int main(int argc, char *argv[]){ int ret, fd, freq, arg; fd=open("/dev/console", O_WRONLY|O_SYNC); if (fd<0) { fprintf(stderr, "Can't open /dev/console, error %d %s\n", errno, strerror(errno)); return 1; } if (argc > 1){ freq = atoi(argv[1]); if (freq){ arg=1193180/freq; printf("%d\n", 1193180/arg); }else arg=0; ret=ioctl(fd, KIOCSOUND, arg); if (ret){ close(fd); fprintf(stderr, "Can't run IOCTL KIOCSOUND, error %d %s\n", errno, strerror(errno)); return 1; } close(fd); return 0; } while(1){ ret=read(0, &freq, sizeof(freq)); if (ret!=sizeof(freq)){ close(fd); if (ret>0) fprintf(stderr, "Can't read %d bytes from /dev/console (only %d), error %d %s\n", (int)sizeof(freq), ret, errno, strerror(errno)); return 1; } if (freq==-1) break; if ((freq!=0 && freq<50) || freq>20000) continue; if (freq) arg=1193180/freq; else arg=0; ret=ioctl(fd, KIOCSOUND, arg); if (ret){ close(fd); fprintf(stderr, "Can't run IOCTL KIOCSOUND, error %d %s\n", errno, strerror(errno)); return 1; } } close(fd); return 0; } #else #ifdef WIN32 #include int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ main(0, NULL); } #endif int main(int argc, char *argv[]){ fprintf(stderr, "ioctl(KIOCSOUND) not supported on this system\n"); return 0; } #endif tucnak-4.04/src/menu3.c0000644000175000017500000007451212460207027011642 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "bfu.h" #include "control.h" #include "cwdb.h" #include "ebw.h" #include "edi.h" #include "excdb.h" #include "fifo.h" #include "hf.h" #include "inputln.h" #include "kbd.h" #include "main.h" #include "menu.h" #include "namedb.h" #include "net.h" #include "qrvdb.h" #include "qsodb.h" #include "session.h" #include "stats.h" #include "subwin.h" #include "terminal.h" #include "tregex.h" #include "trig.h" #include "zosk.h" /*********************** DUPLICATE CALLSIGN *********************************/ void duplicate_callsign_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_buttons_width(term, dlg->items +0, 1, &max); min_buttons_width(term, dlg->items +0, 1, &min); max_buttons_width(term, dlg->items +1, 1, &max); min_buttons_width(term, dlg->items +1, 1, &min); max_buttons_width(term, dlg->items +2, 1, &max); min_buttons_width(term, dlg->items +2, 1, &min); max_buttons_width(term, dlg->items +3, 1, &max); min_buttons_width(term, dlg->items +3, 1, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB; if (w < 1) w = 1; rw = 0; y++; dlg_format_buttons(NULL, term, dlg->items +0, 1, 0, &y, w, &rw, AL_CENTER); dlg_format_buttons(NULL, term, dlg->items +1, 1, 0, &y, w, &rw, AL_CENTER); dlg_format_buttons(NULL, term, dlg->items +2, 1, 0, &y, w, &rw, AL_CENTER); dlg_format_buttons(NULL, term, dlg->items +3, 1, 0, &y, w, &rw, AL_CENTER); y++; w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_buttons(term, term, dlg->items +0, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); dlg_format_buttons(term, term, dlg->items +1, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); dlg_format_buttons(term, term, dlg->items +2, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); dlg_format_buttons(term, term, dlg->items +3, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); y++; /* dlg_format_text(term, term, contest_options1_msg[3], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);*/ /* dlg_format_field(term, term, &dlg->items[3], dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT);*/ /* y++;*/ /* dlg_format_text(term, term, contest_options1_msg[4], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_field(term, term, &dlg->items[4], dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); dlg_format_text(term, term, contest_options1_msg[4], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); dlg_format_field(term, term, &dlg->items[4], dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); y++;*/ } int dlg_clear_tmpqsos(struct dialog_data *dlg, struct dialog_item_data *di){ clear_tmpqsos(aband,1); return cancel_dialog(dlg,di); } /* todo prototyp */ int dlg_edit_qso(struct dialog_data *dlg, struct dialog_item_data *di){ edit_qso((struct qso *)dlg->dlg->refresh_data); clear_tmpqsos(aband, 1); return cancel_dialog(dlg,di); } int dlg_mark_as_error(struct dialog_data *dlg, struct dialog_item_data *di){ struct qso *qso; qso = (struct qso*) dlg->dlg->refresh_data; qso_mark_as_error(aband, atoi(qso->qsonrs)-1); recalc_stats(aband); aband->dupe_in_tmpqso_index = -1; ADD_TMPQSO_STRING(aband, callsign, qso->callsign, 1, ucallsign); wkd_tmpqso(aband, WT_CALLSIGN, qso->callsign); return cancel_dialog(dlg,di); } int dlg_store_as_dupe(struct dialog_data *dlg, struct dialog_item_data *di){ struct qso *qso; aband->dupe_in_tmpqso_index = -1; qso = (struct qso*) dlg->dlg->refresh_data; aband->tmpqsos[0].dupe = 1; ADD_TMPQSO_STRING(aband, callsign, qso->callsign, 1, ucallsign); TMPQ.ucallsign=1; if (!TMPQ.ulocator) add_tmpqso_locator(aband, qso->locator, 0, 0); wkd_tmpqso(aband, WT_CALLSIGN, qso->callsign); wkd_tmpqso(aband, WT_LOCATOR, qso->locator); return cancel_dialog(dlg,di); } void duplicate_callsign(struct qso *qso) { struct dialog *d; int i; #ifdef Z_HAVE_SDL if (gses->osk){ zosk_free(gses->osk); gses->osk = NULL; sdl_force_redraw(); } #endif if (!(d = g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_DUPE_QSO); d->fn = duplicate_callsign_fn; d->refresh = (void (*)(void *))dlg_clear_tmpqsos; d->refresh_data = (void *)qso; d->items[i=0].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_clear_tmpqsos; d->items[i].text = VTEXT(T_CLEAR_THIS_QSO); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_edit_qso; d->items[i].text = VTEXT(T_EDIT_OLD_QSO); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_mark_as_error; d->items[i].text = VTEXT(T_MARK_OLD_QSO); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = dlg_store_as_dupe; d->items[i].text = VTEXT(T_STORE_AS_DUPE); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /**************************** EDIT ***********************************/ void menu_add_error(void *arg){ add_error(aband, ""); } /*********************** CHOP - Change operator *************************/ static char op[EQSO_LEN]; static int global_operator; char *chop_msg[] = { CTEXT(T_CALLSIGN), /* 0 */ CTEXT(T_GLOBAL_OPERATOR), "", /* OK */ /* 9 */ "", /* Cancel */ }; void chop(struct band *band, char *op){ gchar *c; g_free(band->operator_); band->operator_ = fixsemi(g_strdup(op)); c = g_strconcat("O ", op, NULL); add_swap(band, c); g_free(c); wkd_tmpqso(band, WT_OPERATOR, op); } void refresh_chop(void *xxx){ int i; z_str_uc(op); /*if (!regcmp(op,"^([0-9][A-Z]|[A-Z]{1,2}[0-9]?)[0-9]{1,4}[A-Z]{1,4}$")==0){ errbox(VTEXT(T_BAD_CALL), 0); return; } */ cfg->global_operator = global_operator; if (global_operator){ for (i=0; ibands->len; i++){ struct band *b; b=(struct band *)g_ptr_array_index(ctest->bands, i); chop(b, op); } }else{ chop(aband, op); } redraw_later(); } void chop_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, chop_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, chop_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, chop_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, chop_msg + 1, dlg->items + 1, 1, &min); max_buttons_width(term, dlg->items + 2, 2, &max); min_buttons_width(term, dlg->items + 2, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, chop_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); y++; dlg_format_group(NULL, term, chop_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); y++; dlg_format_buttons(NULL, term, dlg->items + 2, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, chop_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group(term, term, chop_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_buttons(term, term, dlg->items + 2, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void menu_chop(void *arg){ struct dialog *d; int i; if (!ctest || !aband) return; fixsemi(aband->operator_); safe_strncpy0(op, aband->operator_, EQSO_LEN); global_operator=cfg->global_operator; if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 10 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 10 * sizeof(struct dialog_item)); d->title = VTEXT(T_CHOP); d->fn = chop_fn; d->refresh = (void (*)(void *))refresh_chop; d->items[i=0].type = D_FIELD; d->items[i].dlen = EQSO_LEN; d->items[i].data = op; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&global_operator; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /*********************** SKEDQRG - Change QRG for sked *************************/ void do_skedqrg(struct session *ses, char *qrg){ gchar *c; if (!qrg) return; g_free(aband->skedqrg); aband->skedqrg = fixsemi(g_strdup(qrg)); c = g_strconcat("G ", qrg, NULL); add_swap(aband, c); g_free(c); c = g_strdup_printf("RG %s;%s\n",aband->pband,qrg); rel_write_all(c); g_free(c); redraw_later(); } void menu_skedqrg(void *arg){ static char qrg[20]; if (!ctest || !aband) return; fixsemi(aband->skedqrg); safe_strncpy0(qrg, aband->skedqrg, 20); input_field(NULL, VTEXT(T_SKED_QRG), VTEXT(T_N_SKED_QRG), VTEXT(T_OK), VTEXT(T_CANCEL), NULL, NULL, 20, qrg, 0, 0, NULL, (void (*)(void *, char *)) do_skedqrg, NULL, 0); } /******************** FILL OPERATORS **************************/ // arg==0 -> fill only when empty, don't save (from edi export) // arg==1 -> overwrite ops, save (from menu) void menu_fillop(void *arg){ struct band *b; struct qso *q; int i,j,k; gchar *c; GString *gs,*gs1,*gs2; GPtrArray *calls; if (!ctest) return; for (i=0; ibands->len; i++){ b = (struct band *)g_ptr_array_index(ctest->bands,i); if (GPOINTER_TO_INT(arg) == 0 && strlen(b->mope1) != 0) continue; calls=g_ptr_array_new(); for (j=0;jqsos->len;j++){ q=(struct qso *)g_ptr_array_index(b->qsos,j); for (k=0;klen;k++){ if (strcmp(q->operator_,(char*)g_ptr_array_index(calls,k))==0) break; } if (k==calls->len) g_ptr_array_add(calls, q->operator_); } zg_ptr_array_qsort(calls, z_compare_string); gs1=g_string_sized_new(100); gs2=g_string_sized_new(100); gs=gs1; for (k=0; klen;k++){ c=(char*)g_ptr_array_index(calls, k); if (gs->len+2+strlen(c) >= 50) gs=gs2; g_string_append(gs, ";"); g_string_append(gs, c); } g_ptr_array_free(calls,TRUE); /* don't free items! */ if (gs1->len) g_string_erase(gs1,0,1); if (gs2->len) g_string_erase(gs2,0,1); g_free(b->mope1); b->mope1=g_strdup(gs1->str); g_string_free(gs1,TRUE); g_free(b->mope2); b->mope2=g_strdup(gs2->str); g_string_free(gs2,TRUE); } if (GPOINTER_TO_INT(arg) != 0){ save_all_bands_txt(0); } } /******************** RECALC ALL QRB and QTF **************************/ void menu_recalc_qrb(void *arg){ if (ctest) recalc_all_qrbqtf(ctest); qrv_recalc_wkd(qrv); qrv_recalc_qrbqtf(qrv); qrv_recalc_gst(qrv); } /******************** UPDATE C_W ******************************/ void menu_cw_update_contest(void *arg){ gchar *s; int ret; update_cw_from_ctest(cw, ctest); s = g_strconcat(tucnak_dir, "/tucnakcw", NULL); z_wokna(s); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } void menu_cw_update_band(void *arg){ gchar *s; int ret; update_cw_from_band(cw, aband); s = g_strconcat(tucnak_dir, "/tucnakcw", NULL); z_wokna(s); ret=save_cw_into_file(cw, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } /******************** UPDATE EXC ******************************/ void menu_exc_update_contest(void *arg){ gchar *s, *ename; int ret; if (!ctest) return; dbg("menu_exc_update_contest(%s)\n", ctest->excname); if (!ctest->excname || !*ctest->excname) return; ename = g_strdup(ctest->excname); z_str_lc(ename); update_exc_from_ctest(excdb, ctest); s = g_strconcat(tucnak_dir, "/tucnakexc", ename, NULL); z_wokna(s); ret=save_exc_into_file(excdb, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } void menu_exc_update_band(void *arg){ gchar *s, *ename; int ret; if (!ctest) return; dbg("menu_exc_update_band(%s)\n", ctest->excname); if (!ctest->excname || !*ctest->excname) return; ename = g_strdup(ctest->excname); z_str_lc(ename); update_exc_from_band(excdb, aband); s = g_strconcat(tucnak_dir, "/tucnakexc", ename, NULL); z_wokna(s); ret=save_exc_into_file(excdb, s); if (ret){ errbox(VTEXT(T_CANT_WRITE), ret); }else{ log_addf(VTEXT(T_SAVED_S), s); } g_free(s); } void menu_import_ebw(void *arg){ int ret; ret=read_ebw_files(cw, namedb); if (ret!=0) return; save_cw(cw, 1); save_namedb(namedb, 1); } /******************** AUTOSAVE *******************************/ #define AS_LEN 5 /*char as_disk_aq_str[AS_LEN], as_disk_am_str[AS_LEN]; gint as_disk_fsync;*/ char as_floppy_aq_str[AS_LEN], as_floppy_am_str[AS_LEN]; gint as_floppy_fsync; gint as_mount; char as_floppy_path[MAX_STR_LEN]; char as_mount_cmd[MAX_STR_LEN]; void refresh_autosave(void *xxx) { /* STORE_SINT(cfg,as_disk_aq); STORE_SINT(cfg,as_disk_am); STORE_INT (cfg,as_disk_fsync); */ STORE_SINT(cfg,as_floppy_aq); STORE_SINT(cfg,as_floppy_am); STORE_INT (cfg,as_floppy_fsync); STORE_INT (cfg,as_mount); STORE_STR(cfg,as_floppy_path); STORE_STR(cfg,as_mount_cmd); dbg("refresh_autosave\n"); } char *autosave_msg[] = { #if 0 CTEXT(T_SAVE_AQ), /* 0 */ CTEXT(T_SAVE_AM), CTEXT(T_FSYNC), #endif CTEXT(T_SAVE_AQF), /* 0 */ CTEXT(T_SAVE_AMF), CTEXT(T_FSYNC), CTEXT(T_DO_MOUNT), CTEXT(T_FLOPPY_PATH), /* 5 */ CTEXT(T_MOUNT_CMD), "", /* OK */ /* 9 */ "", /* Cancel */ }; void autosave_fn(struct dialog_data *dlg) { struct terminal *term = dlg->win->term; int max = 0, min = 0; int w, rw; int y = -1; max_group_width(term, autosave_msg + 0, dlg->items + 0, 1, &max); min_group_width(term, autosave_msg + 0, dlg->items + 0, 1, &min); max_group_width(term, autosave_msg + 1, dlg->items + 1, 1, &max); min_group_width(term, autosave_msg + 1, dlg->items + 1, 1, &min); max_group_width(term, autosave_msg + 2, dlg->items + 2, 1, &max); min_group_width(term, autosave_msg + 2, dlg->items + 2, 1, &min); max_group_width(term, autosave_msg + 3, dlg->items + 3, 1, &max); min_group_width(term, autosave_msg + 3, dlg->items + 3, 1, &min); max_group_width(term, autosave_msg + 4, dlg->items + 4, 1, &max); min_group_width(term, autosave_msg + 4, dlg->items + 4, 1, &min); max_group_width(term, autosave_msg + 5, dlg->items + 5, 1, &max); min_group_width(term, autosave_msg + 5, dlg->items + 5, 1, &min); /* max_group_width(term, autosave_msg + 6, dlg->items + 6, 1, &max); min_group_width(term, autosave_msg + 6, dlg->items + 6, 1, &min); max_group_width(term, autosave_msg + 7, dlg->items + 7, 1, &max); min_group_width(term, autosave_msg + 7, dlg->items + 7, 1, &min); max_group_width(term, autosave_msg + 8, dlg->items + 8, 1, &max); min_group_width(term, autosave_msg + 8, dlg->items + 8, 1, &min); */ max_buttons_width(term, dlg->items + 6, 2, &max); min_buttons_width(term, dlg->items + 6, 2, &min); w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > dlg->win->term->x - 2 * DIALOG_LB - 8 ) w = dlg->win->term->x - 2 * DIALOG_LB - 8; if (w < 1) w = 1; rw = 0; y ++; dlg_format_group(NULL, term, autosave_msg + 0, dlg->items + 0, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 1, dlg->items + 1, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 2, dlg->items + 2, 1, 0, &y, w, &rw); y++; dlg_format_group(NULL, term, autosave_msg + 3, dlg->items + 3, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 4, dlg->items + 4, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 5, dlg->items + 5, 1, 0, &y, w, &rw); /* y++; dlg_format_group(NULL, term, autosave_msg + 6, dlg->items + 6, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 7, dlg->items + 7, 1, 0, &y, w, &rw); dlg_format_group(NULL, term, autosave_msg + 8, dlg->items + 8, 1, 0, &y, w, &rw); */ y++; dlg_format_buttons(NULL, term, dlg->items + 6, 2, 0, &y, w, &rw, AL_LEFT); w = rw; dlg->xw = w + 2 * DIALOG_LB; dlg->yw = y + 2 * DIALOG_TB; center_dlg(dlg); draw_dlg(dlg); y = dlg->y + DIALOG_TB; y++; dlg_format_group(term, term, autosave_msg + 0, dlg->items + 0, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 1, dlg->items + 1, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 2, dlg->items + 2, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); y++; dlg_format_group(term, term, autosave_msg + 3, dlg->items + 3, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 4, dlg->items + 4, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 5, dlg->items + 5, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); /* y++; dlg_format_group(term, term, autosave_msg + 6, dlg->items + 6, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 7, dlg->items + 7, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); dlg_format_group(term, term, autosave_msg + 8, dlg->items + 8, 1, dlg->x + DIALOG_LB, &y, w, AL_LEFT); */ y++; dlg_format_buttons(term, term, dlg->items + 6, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_LEFT); } void menu_autosave(void *arg) { struct dialog *d; int i; dbg("menu_autosave\n"); /* snprint(as_disk_aq_str,AS_LEN, cfg->as_disk_aq); snprint(as_disk_am_str, AS_LEN, cfg->as_disk_am); as_disk_fsync = cfg->as_disk_fsync;*/ g_snprintf(as_floppy_aq_str, AS_LEN, "%d", cfg->as_floppy_aq); g_snprintf(as_floppy_am_str, AS_LEN, "%d", cfg->as_floppy_am); as_floppy_fsync = cfg->as_floppy_fsync; as_mount = cfg->as_mount; safe_strncpy0(as_floppy_path, cfg->as_floppy_path, MAX_STR_LEN); safe_strncpy0(as_mount_cmd, cfg->as_mount_cmd, MAX_STR_LEN); if (!(d = (struct dialog *)g_malloc(sizeof(struct dialog) + 55 * sizeof(struct dialog_item)))) return; memset(d, 0, sizeof(struct dialog) + 55 * sizeof(struct dialog_item)); d->title = VTEXT(T_AUTOSAVE_OPTS); d->fn = autosave_fn; d->refresh = (void (*)(void *))refresh_autosave; /* d->items[i=0].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_disk_aq_str; d->items[++i].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_disk_am_str; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&as_disk_fsync; */ d->items[i=0].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_floppy_aq_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[++i].type = D_FIELD; d->items[i].dlen = AS_LEN; d->items[i].data = as_floppy_am_str; d->items[i].fn = check_number; d->items[i].gid = 0; d->items[i].gnum = 10000; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&as_floppy_fsync; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 0; d->items[i].gnum = 1; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&as_mount; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = as_floppy_path; d->items[i].maxl = 20; d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = as_mount_cmd; d->items[i].maxl = 20; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /******************** ADD SUBWIN *******************************/ int asw_type; char asw_cmd[MAX_STR_LEN]; char asw_respawn_str[MAX_STR_LEN]; void refresh_add_sw(void *arg){ int where_ = -1; struct subwin *asw = (struct subwin *)arg; struct subwin *newsw; dbg("refresh_add_sw\n"); { zg_ptr_array_foreach(struct subwin *, subwin, gses->subwins) { if (subwin != asw) continue; where_ = subwin_i; break; } } newsw = new_subwin((enum sw_type)asw_type, where_); if (newsw){ struct event ev = { EV_RESIZE, 0, 0, 0, 0, 0}; if (gses->ontop == asw) gses->ontop = newsw; if (asw){ newsw->ontop = asw->ontop; newsw->ontop2 = asw->ontop2; newsw->focused = asw->focused; } sw_default_func(newsw, &ev, 1); } if (asw) free_subwin(asw); } void menu_add_subwin(void *arg){ struct dialog *d; int i, change; change = GPOINTER_TO_INT(arg); if (!change){ asw_type = SWT_SHELL; } safe_strncpy0(asw_cmd, "/bin/sh", MAX_STR_LEN); g_snprintf(asw_respawn_str, MAX_STR_LEN, "%d", 10); d = g_new0(struct dialog, 20); if (!change){ d->title = VTEXT(T_ADD_SUBWIN); }else{ d->title = VTEXT(T_CHANGE_TYPE); d->refresh_data = gses->ontop; } d->fn = dlg_pf_fn; d->refresh = refresh_add_sw; i = -1; d->y0 = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_KST; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_KST); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SHELL; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_SHELL); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_QSOS; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_QSOS); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_HF; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_HF); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_QRV; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_QRV); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_LOG; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_LOG); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_PLAYER; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_SW_PLAYER); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_CHART; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_SW_CHART); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SKED; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_SKEDS); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_TALK; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_TALK); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_DXC; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_DXC); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_UNFI; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_UNFI); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_STAT; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_STAT); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_MAP; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_MAP); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SCOPE; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_SCOPE); d->items[i].wrap = 1; d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SDR; d->items[i].dlen = sizeof(int); d->items[i].data = (char *)&asw_type; d->items[i].msg = CTEXT(T_SDR); d->items[i].wrap = 1; /*d->items[++i].type = D_CHECKBOX; d->items[i].gid = 1; d->items[i].gnum = SWT_SWAP; d->items[i].dlen = sizeof(int); d->items[i].data = (void *)&asw_type; d->items[i].msg = CTEXT(T_SWAP); d->items[i].wrap = 1; */ if (!change){ d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = asw_cmd; d->items[i].msg = CTEXT(T_CMD); d->items[i].wrap = 1; } /*d->items[++i].type = D_FIELD; d->items[i].dlen = MAX_STR_LEN; d->items[i].data = asw_respawn_str; d->items[i].msg = CTEXT(T_RESPAWN); d->items[i].wrap = 1; */ d->items[i].wrap++; d->items[++i].type = D_BUTTON; d->items[i].gid = B_ENTER; d->items[i].fn = ok_dialog; d->items[i].text = VTEXT(T_OK); d->items[++i].type = D_BUTTON; d->items[i].gid = B_ESC; d->items[i].fn = cancel_dialog; d->items[i].text = VTEXT(T_CANCEL); d->items[i].align = AL_BUTTONS; d->items[i].wrap = 1; d->items[++i].type = D_END; do_dialog(d, getml(d, NULL)); } /********************* CLOSE SUBWIN ***********************/ void menu_close_subwin(void *arg){ struct subwin *sw; sw = find_sw_ontop(); if (!sw) return; g_ptr_array_remove(gses->subwins, sw); free_subwin(sw); if (sw == gses->ontop2) sw_totop_next(0, 1); sw_totop_next(0, 0); redraw_later(); } /********************* SPLIT SUBWIN ***********************/ void menu_split_subwin(void *arg){ cfg->splitheight = 10; resize_terminal(NULL); } void menu_remove_split(void *arg){ cfg->splitheight = 0; resize_terminal(NULL); } /******************* UNFINISHED REMARK *************/ void do_unfinished(struct session *ses, char *remark){ GString *gs; if (!ctest || !aband) return; gs = g_string_sized_new(80); if (TMPQ.callsign && TMPQ.ucallsign){ if (strlen(remark)>10){ gchar *c; remark[17]='\0'; c = g_strdup_printf("%s %s", remark, TMPQ.callsign); g_string_sprintfa(gs, "%-24s", c); g_free(c); }else{ g_string_sprintfa(gs, "%-10s %-13s", remark, TMPQ.callsign); } }else{ remark[24]='\0'; g_string_sprintfa(gs, "%-24s",remark); } g_string_sprintfa(gs, "%5s%4s %5s%4s", TMPQ.rsts?TMPQ.rsts:"---", TMPQ.qsonrs, TMPQ.rstr?TMPQ.rstr:"---", TMPQ.qsonrr?TMPQ.qsonrr:"---"); if (TMPQ.locator && TMPQ.ulocator){ g_string_sprintfa(gs, " %-8s %7d %3d", TMPQ.locator, (int)TMPQ.qrb, TMPQ.qtf); } #ifdef HAVE_HAMLIB if (gtrigs->trigs->len > 0){ g_string_sprintfa(gs, " %1.1f", gtrigs->qrg/1000.0); } #endif fifo_addf(aband->unfi, gs->str); g_string_free(gs, 1); add_error(aband, remark);/* before clear_tmpqsos! */ clear_tmpqsos(aband, 1); clear_inputline(aband->il); get_cw_qs(aband->il->cdata); /* clears */ get_band_qs(aband, aband->il->cdata); get_hf_dxc(aband->il->cdata); redraw_later(); } void menu_unfinished(void *arg){ static char remark[40]; int max; if (TMPQ.callsign && TMPQ.ucallsign) max=1+17; else max=1+24; if (!ctest || !aband) return; strcpy(remark, ""); input_field(NULL, VTEXT(T_UNFI_QSO), VTEXT(T_N_REMARK), VTEXT(T_OK), VTEXT(T_CANCEL), NULL, NULL, max, remark, 0, 0, NULL, (void (*)(void *, char *)) do_unfinished, NULL, 0); } tucnak-4.04/src/excdb.c0000644000175000017500000003373212500052574011677 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2015 Ladislav Vaiz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "excdb.h" #include "dwdb.h" #include "language2.h" #include "main.h" #include "stats.h" #include "tsdl.h" //#include struct excdb *excdb; static gchar *exc_next; static gchar *cxe_next; struct excdb *init_exc(void){ struct excdb *excdb; progress(VTEXT(T_INIT_EXCDB)); excdb = g_new0(struct excdb, 1); excdb->exc = g_hash_table_new(g_str_hash, g_str_equal); excdb->cxe = g_hash_table_new(g_str_hash, g_str_equal); excdb->vexc = g_hash_table_new(g_str_hash, g_str_equal); excdb->vexcia = z_ptr_array_new(); exc_next = NULL; cxe_next = NULL; excdb->latest = 0; excdb->excname = g_strdup(""); return excdb; } gboolean free_exc_item(gpointer key, gpointer value, gpointer user_data){ struct exc_item *exci; g_free(key); exci = (struct exc_item *)value; if (exci->exc0) g_free(exci->exc0); if (exci->exc1) g_free(exci->exc1); g_free(value); return TRUE; } gboolean free_cxe_item(gpointer key, gpointer value, gpointer user_data){ struct cxe_item *wci; g_free(key); wci = (struct cxe_item *)value; if (wci->call0) g_free(wci->call0); if (wci->call1) g_free(wci->call1); g_free(value); return TRUE; } gboolean free_vexc_item(gpointer key, gpointer value, gpointer user_data){ if (key) g_free(key); return TRUE; } void clear_exc(struct excdb *excdb){ // dbg("clear_exc()\n"); z_ptr_array_free_all(excdb->vexcia); excdb->vexcia = z_ptr_array_new(); g_hash_table_foreach_remove(excdb->vexc, free_vexc_item, NULL); g_hash_table_foreach_remove(excdb->cxe, free_cxe_item, NULL); g_hash_table_foreach_remove(excdb->exc, free_exc_item, NULL); zg_free0(excdb->excname); } void free_exc(struct excdb *excdb){ progress(VTEXT(T_FREE_EXCDB)); clear_exc(excdb); z_ptr_array_free_all(excdb->vexcia); g_hash_table_destroy(excdb->vexc); g_hash_table_destroy(excdb->cxe); g_hash_table_destroy(excdb->exc); g_free(excdb); } gint get_exc_size(struct excdb *excdb){ return g_hash_table_size(excdb->exc); } gint get_cxe_size(struct excdb *excdb){ return g_hash_table_size(excdb->cxe); } gint get_vexc_size(struct excdb *excdb){ return g_hash_table_size(excdb->vexc); } #define EXC_DELIM " \t\r\n" void load_one_exc(struct excdb *excdb, gchar *s){ gchar *call, *exc, *stamp_str; char *token_ptr; z_str_uc(s); call = strtok_r(s, EXC_DELIM, &token_ptr); if (!call) return; exc = strtok_r(NULL, EXC_DELIM, &token_ptr); if (!exc) return; stamp_str = strtok_r(NULL, EXC_DELIM, &token_ptr); if (!stamp_str) return; add_exc(excdb, call, exc, atoi(stamp_str)); add_cxe(excdb, exc, call, atoi(stamp_str)); } int load_exc_from_file(struct excdb *excdb, gchar *filename){ FILE *f; GString *gs; f = fopen(filename, "rt"); if (!f) return -1; gs = g_string_sized_new(256); while(1){ if (!zfile_fgets(gs, f, 1)) break; g_strstrip(gs->str); load_one_exc(excdb,gs->str); } fclose(f); g_string_free(gs, 1); return 0; } void load_one_vexc(struct excdb *excdb, gchar *s){ gchar *vexc; char *token_ptr; z_str_uc(s); for (vexc = strtok_r(s, EXC_DELIM, &token_ptr); vexc != NULL; vexc = strtok_r(NULL, EXC_DELIM, &token_ptr)){ if (!*vexc) continue; if (g_hash_table_lookup(excdb->vexc, vexc) != NULL) continue; z_str_uc(vexc); g_hash_table_insert(excdb->vexc, g_strdup(vexc), (void*)1); } } int load_vexc_from_file(struct excdb *excdb, gchar *filename){ FILE *f; GString *gs; f = fopen(filename, "rt"); if (!f) return -1; gs = g_string_sized_new(256); while(1){ if (!zfile_fgets(gs, f, 1)) break; g_strstrip(gs->str); load_one_vexc(excdb, gs->str); } fclose(f); g_string_free(gs, 1); return 0; } int load_vexc_from_mem(struct excdb *excdb, const char *file, const long int len){ GString *gs; long int pos; gs = g_string_sized_new(256); pos = 0; while(1){ if (!zfile_mgets(gs, file, &pos, len, 0)) break; g_strstrip(gs->str); load_one_vexc(excdb, gs->str); } g_string_free(gs, 1); return 0; } void read_exc_files(struct excdb *excdb, enum exctype exctype, gchar *excname){ gchar *s, *ename; int ret, i; //dbg("read_exc_files(%d, %s)\n", exctype, excname); if (!excname || !*excname) return; excdb->exctype = exctype; ename = g_strdup(excname); z_str_uc(ename); zg_free0(excdb->excname); excdb->excname = g_strdup(ename); z_str_lc(ename); s = g_strconcat(tucnak_dir, "/tucnakexc", ename, NULL); ret = load_exc_from_file(excdb, s); dbg(" %s %d\n", s, ret); g_free(s); s = g_strconcat(tucnak_dir, "/tucnakvexc", ename, NULL); ret = load_vexc_from_file(excdb, s); dbg(" %s %d\n", s, ret); g_free(s); if (ret<0){ dbg("disk loading failed, try to load memory defaults '%s'\n", ename); if (strcasecmp(ename, "agcw")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcagcw, sizeof(txt_tucnakvexcagcw)); dbg(" %s %d\n", ename, ret); } if (strcasecmp(ename, "okres")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcokres, sizeof(txt_tucnakvexcokres)); dbg(" %s %d\n", ename, ret); } if (strcasecmp(ename, "rsgbdc")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcrsgbdc, sizeof(txt_tucnakvexcrsgbdc)); dbg(" %s %d\n", ename, ret); } if (strcasecmp(ename, "usaca")==0) { ret = load_vexc_from_mem(excdb, txt_tucnakvexcusaca, sizeof(txt_tucnakvexcusaca)); dbg(" %s %d\n", ename, ret); } } g_free(ename); // set vexcia switch(excdb->exctype){ case EXC_VERIFIED: g_hash_table_foreach(excdb->vexc, exc_ia_verified, (gpointer) excdb->vexcia); break; case EXC_WAZ: // g_hash_table_foreach(dw->dw, exc_ia_waz, (gpointer) excdb->vexcia); for (i=1; i<=40; i++) z_ptr_array_add(excdb->vexcia, g_strdup_printf("%02d", i)); break; case EXC_ITU: // g_hash_table_foreach(dw->dw, exc_ia_itu, (gpointer) excdb->vexcia); for (i=1; i<=90; i++) z_ptr_array_add(excdb->vexcia, g_strdup_printf("%02d", i)); break; default: break; } z_ptr_array_qsort(excdb->vexcia, z_compare_string); z_ptr_array_uniq(excdb->vexcia, z_compare_string, TRUE); } void exc_ia_verified(gpointer key, gpointer value, gpointer user_data){ gchar *exc = (gchar *) key; ZPtrArray *vexcia = (ZPtrArray *) user_data; char s[10]; if (strcasecmp(ctest->excname, "USACA")==0){ strcpy(s, exc); usaca_multiple_exc(s); if (strcmp(s, exc) != 0) return; // QC, MAN, ALB, ALT, YU } z_ptr_array_add(vexcia, g_strdup(exc)); } /*void exc_ia_waz(gpointer key, gpointer value, gpointer user_data){ struct dw_item *dwi = (struct dw_item*) value; GIndexArray *vexcia = (GIndexArray *) user_data; z_ptr_array_add(vexcia, g_strdup_printf("%02d", dwi->waz)); } void exc_ia_itu(gpointer key, gpointer value, gpointer user_data){ struct dw_item *dwi = (struct dw_item*) value; GIndexArray *vexcia = (GIndexArray *) user_data; z_ptr_array_add(vexcia, g_strdup_printf("%02d", dwi->itu)); } */ void save_one_exc(gpointer key, gpointer value, gpointer user_data){ GString *gs; gchar *call; struct exc_item *exci; gs = (GString *) user_data; call = (gchar *) key; exci = (struct exc_item *) value; if (exci->exc0) g_string_sprintfa(gs, "%-14s %-6s %08d\n", call, exci->exc0, exci->stamp0); if (exci->exc1) g_string_sprintfa(gs, "%-14s %-6s %08d\n", call, exci->exc1, exci->stamp1); } int save_exc_string(struct excdb *excdb, GString *gs){ g_hash_table_foreach(excdb->exc, save_one_exc, (gpointer) gs); return 0; } int save_exc_into_file(struct excdb *excdb, gchar *filename){ FILE *f; GString *gs; int ret; f = fopen(filename, "wt"); /* FIXME swp first */ if (!f) { return errno; } gs=g_string_sized_new(100000); save_exc_string(excdb, gs); ret = fprintf(f,"%s",gs->str) != gs->len ? errno: 0; fclose(f); g_string_free(gs,TRUE); return ret; } void add_exc(struct excdb *excdb, gchar *call, gchar *exc, gint stamp){ struct exc_item *exci; if (stamp<0) return; if (stamp>excdb->latest) excdb->latest=stamp; exci = g_hash_table_lookup(excdb->exc, call); if (!exci){ exci = g_new0(struct exc_item, 1); g_hash_table_insert(excdb->exc, g_strdup(call), exci); } if (stamp < exci->stamp1) return; if (stamp < exci->stamp0){ if (strcasecmp(exci->exc0, exc)==0) return; if (exci->exc1) g_free(exci->exc1); exci->exc1 = g_strdup(exc); exci->stamp1 = stamp; return; } if (exci->exc0 && strcasecmp(exci->exc0, exc)==0) { exci->stamp0 = stamp; return; } if (exci->exc1) g_free(exci->exc1); exci->exc1 = exci->exc0; exci->stamp1 = exci->stamp0; exci->exc0 = g_strdup(exc); exci->stamp0 = stamp; } void add_cxe(struct excdb *excdb, gchar *exc, gchar *call, gint stamp){ struct cxe_item *wci; if (stamp<0) return; if (stamp>excdb->latest) excdb->latest=stamp; wci = g_hash_table_lookup(excdb->cxe, exc); if (!wci){ wci = g_new0(struct cxe_item, 1); g_hash_table_insert(excdb->cxe, g_strdup(exc), wci); } if (stamp < wci->stamp1) return; if (stamp < wci->stamp0){ if (strcasecmp(wci->call0, call)==0) return; if (wci->call1) g_free(wci->call1); wci->call1 = g_strdup(call); wci->stamp1 = stamp; return; } if (wci->call0 && strcasecmp(wci->call0, call)==0) { wci->stamp0 = stamp; return; } if (wci->call1) g_free(wci->call1); wci->call1 = wci->call0; wci->stamp1 = wci->stamp0; wci->call0 = g_strdup(call); wci->stamp0 = stamp; } gchar *find_exc_by_call(struct excdb *excdb, const gchar *call){ struct exc_item *exci; struct dw_item *dwi; static char s[20]; if (!call) return exc_next; exc_next = NULL; exci = g_hash_table_lookup(excdb->exc, call); if (exci) { exc_next = exci->exc1; return exci->exc0; } switch(excdb->exctype){ case EXC_WAZ: dwi = get_dw_item_by_call(dw, call); if (!dwi) return NULL; g_snprintf(s, 20, "%02d", dwi->waz); return s; case EXC_ITU: dwi = get_dw_item_by_call(dw, call); if (!dwi) return NULL; g_snprintf(s, 20, "%02d", dwi->itu); return s; default: break; } return NULL; } gchar *find_exc_by_call_newer(struct excdb *excdb, gchar *call, int maxstamp){ struct exc_item *exci; exci = g_hash_table_lookup(excdb->exc, call); if (!exci) return NULL; if (exci->stamp0 > maxstamp) return exci->exc0; if (exci->stamp1 > maxstamp) return exci->exc1; return NULL; } gchar *find_call_by_exc(struct excdb *excdb, gchar *exc){ struct cxe_item *wci; if (!excdb) return cxe_next; cxe_next = NULL; wci = g_hash_table_lookup(excdb->cxe, exc); if (!wci) return NULL; cxe_next = wci->call1; return wci->call0; } int is_valid_vexc(struct excdb *excdb, gchar *vexc){ gchar *s; int ret; switch (ctest->exctype){ case EXC_FREE: return 1; case EXC_VERIFIED: s = g_strdup(vexc); z_str_uc(s); ret = g_hash_table_lookup(excdb->vexc, s) != NULL; g_free(s); return ret; case EXC_WAZ: case EXC_ITU: return 1; } return 0; } void update_exc_from_band(struct excdb *excdb, struct band *band){ int i; struct qso *q; stats_thread_join(band); for (i=0; iqsos->len; i++){ q = (struct qso *)g_ptr_array_index(band->qsos, i); if (q->error) continue; if (!q->callsign || !q->exc || !q->date_str) continue; add_exc(excdb, q->callsign, q->exc, atoi(q->date_str)); add_cxe(excdb, q->exc, q->callsign, atoi(q->date_str)); } } void update_exc_from_ctest(struct excdb *excdb, struct contest *ctest){ int i; struct band *band; if (!ctest) return; for (i=0; ibands->len; i++){ band = (struct band *) g_ptr_array_index(ctest->bands, i); update_exc_from_band(excdb, band); } } struct rsgbdc{ char *name; int maxcount; }; static struct rsgbdc rsgbdc[] = { {"AB", 3 }, {"BT", 6 }, {"DD", 3 }, {"DG", 3 }, {"EH", 3 }, {"FK", 3 }, {"GS", 3 }, {"HS", 3 }, {"IV", 3 }, {"KA", 3 }, {"KY", 3 }, {"PA", 3 }, {"PH", 3 }, {"TD", 3 }, {"ZE", 3 }, {NULL, 0 } }; int rsgbdc_maxcount(char *exc){ struct rsgbdc *p; for (p=rsgbdc; p->name != NULL; p++){ if (strcasecmp(p->name, exc) != 0) continue; return p->maxcount; } return 1; } void usaca_multiple_exc(char *s){ if (strcasecmp(s, "QC")==0) { strcpy(s, "PQ"); return; } if (strcasecmp(s, "MAN")==0) { strcpy(s, "MB"); return; } if (strcasecmp(s, "ALB")==0) { strcpy(s, "AB"); return; } if (strcasecmp(s, "ALT")==0) { strcpy(s, "AB"); return; } if (strcasecmp(s, "YU")==0) { strcpy(s, "YT"); return; } } tucnak-4.04/src/language.c0000644000175000017500000000770011770015013012364 00000000000000/* Tucnak - VHF contest log Copyright (C) 2002-2006 Ladislav Vaiz and authors of web browser Links 0.96 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. */ #include "header.h" #include "charsets.h" #include "codepage.h" #include "language.h" #include "tsdl.h" #include "terminal.h" struct translation { int code; char *name; }; struct translation_desc { struct translation *t; }; char dummyarray[T__N_TEXTS]; #include "language.inc" static char **translation_array[N_LANGUAGES][N_CODEPAGES]; int current_language; static int current_lang_charset; void init_trans(void) { int i, j; for (i = 0; i < N_LANGUAGES; i++) for (j = 0; j < N_CODEPAGES; j++) translation_array[i][j] = NULL; current_language = 0; current_lang_charset = 0; translations[0].t=translation_english; } void shutdown_trans(void) { int i, j, k; for (i = 0; i < N_LANGUAGES; i++){ for (j = 0; j < N_CODEPAGES; j++) { if (translation_array[i][j]) { for (k = 0; k < T__N_TEXTS; k++) { if (translation_array[i][j][k]) g_free(translation_array[i][j][k]); } g_free(translation_array[i][j]); } } } } char *get_text_translation(char *text) { char **current_tra; char *trn; // dbg("get_text_translation('%s') spec=%p\n", text, term->spec); //dbg("get_text_translation('%s') charset=%d\n", text, term->spec->charset); if (text < dummyarray || text > dummyarray + T__N_TEXTS) return text; if ((current_tra = translation_array[current_language][term->spec->charset])) { if ((trn = current_tra[text - dummyarray])) return trn; tr: trn = g_strdup(translation_english[text - dummyarray].name); current_tra[text - dummyarray] = trn; } else { if (current_lang_charset && term->spec->charset != current_lang_charset) { if ((current_tra = translation_array[current_language][term->spec->charset] = (char **)g_malloc(sizeof (char **) * T__N_TEXTS))) { memset(current_tra, 0, sizeof (char **) * T__N_TEXTS); goto tr; } } if (!(trn = translations[current_language].t[text - dummyarray].name)) { trn = translations[current_language].t[text - dummyarray].name = translation_english[text - dummyarray].name; /* modifying translation structure */ } } //dbg("return '%s'\n", trn); return trn; } char *get_english_translation(char *text) { if (text < dummyarray || text > dummyarray + T__N_TEXTS) return text; return translation_english[text - dummyarray].name; } int n_languages(void) { return N_LANGUAGES; } char *language_name(int l) { return translations[l].t[T__LANGUAGE].name; } void set_language(int l) { int i; char *cp; dbg("set_language charset=%d language=%d\n", current_lang_charset, current_language); for (i = 0; i < T__N_TEXTS; i++){ // dbg(" i=%d ;l=%d; tr[..]=%d \n", i,l,translations[l].t[i].code); if (translations[l].t[i].code != i) { zinternal("Bad table for language %s (%d!=%d). Run script fixlang.pl or maybe add this language into this script.", translations[l].t[T__LANGUAGE].name, translations[l].t[i].code, i); return; } } current_language = l; cp = translations[l].t[T__CHAR_SET].name; dbg("codepage=%s\n", cp); i = get_cp_index(cp); if (i == -1) { zinternal("Unknown charset for language %s.", translations[l].t[T__LANGUAGE].name); i = 0; } current_lang_charset = i; dbg("return charset=%d language=%d\n", current_lang_charset, current_language); #ifdef Z_HAVE_SDL if (sdl && term && term->spec){ term->spec->charset = i; } #endif } tucnak-4.04/README0000644000175000017500000000002311277513163010530 00000000000000See directory doc/ tucnak-4.04/share/0000755000175000017500000000000012561153000011022 500000000000000tucnak-4.04/share/tac2tuc.pl0000755000175000017500000001120711277513162012664 00000000000000#!/usr/bin/perl # Convert TACLog C_W file Text format to tucnak C_W file format # Copyleft 2008 Dave Gilligan, G1OGY. ############################################################################# # 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 2 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. # http://www.m1cro.org.uk/Members/G1OGY/GNU-GPL.html # # Succinctly: If it breaks - you get to keep all the pieces. # ############################################################################# $prog = "TAC2tuc"; $version = "V 0.01"; $datestring="[20080713]"; $auth = "Author:G1OGY "; $arights="Licenced under GNU GPL."; # define Usage die "\n\"$prog\" $version $datestring $auth $arights Usage: $prog inputfile.ext [outputfile.ext] \"$prog\" requires an INPUT file name argument and optionally, an OUTPUT file name. The user must have previously converted the TACLog .C_W file to text-mode using C_W.exe (see the TACLog manual). A raw column format of: CALL LOC LOC2 DATE is expected, separated by \"WhiteSpace\". Even though the TACLog formating of the text input to C_W.EXE is critical, for this program the amount of \"WhiteSpace\" is unimportant; thus this program will deal with any list otherwise derived. But NO blank lines nor Column Headers are allowed! Note that there is no way to determine a valid QSO date for LOC2. Consequently, the QSO Date for LOC2 will be set to 12 December 1901 (for want of a more auspicious occasion) thus ensuring that LOC takes place-precedence over LOC2. Default OUTPUT file is \"tac2tuc.cw\" in the `current` directory.\n" unless @ARGV; # define local variables my ($rawfile)=$ARGV[0]; my ($yesterdate)="19011212"; # main Banner(); if ($ARGV[1] ne "") { open (C_WFORMAT,">$ARGV[1]") || die "\nCannot Create Output file: \"$ARGV[1]\"!\n"; } else { open (C_WFORMAT,">tac2tuc.cw") || die "\nCannot Create Output file: \"tac2tuc.cw\"!\n"; } open (RAWLIST, "$rawfile") || die "\nInput File not Found\! Check the path : \n$!"; print "\nWorking...\n"; while () { # read the input and write a delimited output to an array chomp; ($call,$loc,$loc2,$qsodate) = split; # deal with call loc date unless ($qsodate) { unless ($loc2 =~ m/\D^*/i) { $qsodate=$loc2; $loc2=""; } } # deal with single/twin locators and add the delimiter if ($loc2 =~ m/\D^*/i) { push (@returndata, ($call.";".$loc.";".$qsodate)); push (@returndata, ($call.";".$loc2.";".$yesterdate)); } else { push (@returndata, ($call.";".$loc.";".$qsodate)); } } # break out into individual vars again to write the correctly # formatted output file foreach $record (@returndata) { ($call,$loc,$qsodate) = split (/;/,$record); write (C_WFORMAT); } # clean up close (RAWLIST); close (C_WFORMAT); # output format format C_WFORMAT = @<<<<<<<<<<<<<<@<<<<<<@<<<<<<< $call,$loc,$qsodate . # end_of_format Credits(); ############################################################################################ # Banner sub Banner { print ("\n\"$prog\" $version $datestring $auth\n $arights\n"); print ("\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); } ############################################################################################ # Credits sub Credits { print ("\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); print (" Credits: "); print ("\n \"$prog\" is written against \"ActivePerl v5.6\" and compiled \n"); print (" - where relevant - with \"Perl2exe\" by Indigostar Software.\n\n"); print (" \"$prog\": GNU General Public Licence applies.\n"); print ("\n"); print ("\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); } ############################################################################################ __END__tucnak-4.04/share/applications/0000755000175000017500000000000012561153000013510 500000000000000tucnak-4.04/share/applications/tucnak.desktop0000644000175000017500000000101012525065637016322 00000000000000[Desktop Entry] # The format of this file is specified at # http://freedesktop.org/Standards/desktop-entry-spec # The entries are in the order they are listed in version 1.0 # for registered categories see http://standards.freedesktop.org/menu-spec/1.0/apa.html Encoding=UTF-8 Type=Application Version=1.0 Name=Tucnak Name[cs]=Tučňák Comment=VHF Contest Logger Comment[cs]=Závodní deník pro VKV Icon=/usr/share/pixmaps/tucnak.png Exec=/usr/bin/tucnak Terminal=false Categories=Network;HamRadio StartupNotify=false tucnak-4.04/share/applications/Makefile.am0000644000175000017500000000017212412213757015477 00000000000000datarootdir = @datarootdir@ : EXTRA_DIST=$(share_DATA) sharedir = $(datadir)/applications share_DATA = tucnak.desktop tucnak-4.04/share/applications/Makefile.in0000644000175000017500000003337312561147616015526 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = share/applications DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(sharedir)" DATA = $(share_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(share_DATA) sharedir = $(datadir)/applications share_DATA = tucnak.desktop all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/applications/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu share/applications/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sharedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sharedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sharedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sharedir)" || exit $$?; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sharedir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-shareDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-shareDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-shareDATA install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-shareDATA : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/share/Makefile.am0000644000175000017500000000022412525350275013011 00000000000000datarootdir = @datarootdir@ SUBDIRS=applications pixmaps EXTRA_DIST=$(share_DATA) tac2tuc.pl sharedir = $(datadir)/tucnak share_DATA = README tucnak-4.04/share/README0000644000175000017500000000020011277513162011626 00000000000000These files are NOT used by Tucnak. It contain they compiled-in. Files are for you, you can modify they and place to ~/tucnak . tucnak-4.04/share/Makefile.in0000644000175000017500000004774112561147622013041 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = share DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(sharedir)" DATA = $(share_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = applications pixmaps EXTRA_DIST = $(share_DATA) tac2tuc.pl sharedir = $(datadir)/tucnak share_DATA = README all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu share/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sharedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sharedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sharedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sharedir)" || exit $$?; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sharedir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-shareDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-shareDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-shareDATA install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-shareDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/share/pixmaps/0000755000175000017500000000000012561153001012504 500000000000000tucnak-4.04/share/pixmaps/tucnak.xpm0000644000175000017500000001243112412214006014436 00000000000000/* XPM */ static char *tucnak[] = { /* columns rows colors chars-per-pixel */ "32 32 195 2", " c #000000", ". c #06090B", "X c #0C0000", "o c #0E0C04", "O c #090B0C", "+ c #0D131B", "@ c #140300", "# c #160F0B", "$ c #1F0700", "% c #1F0B00", "& c #121517", "* c #141618", "= c #17181A", "- c #1A1C1E", "; c #1C1F20", ": c #1E2325", "> c #220400", ", c #231604", "< c #20160B", "1 c #291000", "2 c #392712", "3 c #212324", "4 c #252C2F", "5 c #292B2B", "6 c #272D30", "7 c #2A2C31", "8 c #2D3032", "9 c #342D2E", "0 c #313335", "q c #32373A", "w c #32393C", "e c #383A3C", "r c #393F42", "t c #3B4043", "y c #3D4348", "u c #442300", "i c #4E2B01", "p c #533920", "a c #64240D", "s c #642E05", "d c #6A2A02", "f c #783108", "g c #764B18", "h c #424445", "j c #424549", "k c #434A4D", "l c #4A4C4D", "z c #454C50", "x c #4B5155", "c c #4D5559", "v c #505355", "b c #50555A", "n c #53595E", "m c #5E5E5F", "M c #565E63", "N c #595F62", "B c #5C6165", "V c #5E6368", "C c #64615D", "Z c #61666A", "A c #61696D", "S c #68696A", "D c #6A6C71", "F c #6A7174", "G c #6E7679", "H c #737576", "J c #737678", "K c #767C81", "L c #7A7E82", "P c #7C8084", "I c #B53718", "U c #87742D", "Y c #9D6D2E", "T c #A55E10", "R c #BE771D", "E c #997C5D", "W c #C35E12", "Q c #CD5A11", "! c #D76D19", "~ c #EB5E2C", "^ c #E5681F", "/ c #E7730E", "( c #E77B07", ") c #E47C1B", "_ c #F1640E", "` c #F17216", "' c #F2781F", "] c #F9731C", "[ c #FF7812", "{ c #EF6B3B", "} c #F17C24", "| c #C36C4F", " . c #B98157", ".. c #DE8200", "X. c #D49129", "o. c #E58D15", "O. c #F38712", "+. c #FF9D00", "@. c #F79113", "#. c #F6931D", "$. c #F79A1A", "%. c #F89B15", "&. c #FD991F", "*. c #F38320", "=. c #F98A20", "-. c #F79920", ";. c #F59A2A", ":. c #FF9023", ">. c #F1903A", ",. c #F1A605", "<. c #F5A10E", "1. c #F9A402", "2. c #FAAC02", "3. c #FDAF0B", "4. c #F8A113", "5. c #FFA51C", "6. c #FFA812", "7. c #FFB803", "8. c #FAA523", "9. c #D3BC56", "0. c #DEAC61", "q. c #D4B97B", "w. c #F88F67", "e. c #FFB35A", "r. c #FCB168", "t. c #FFBF71", "y. c #FFC600", "u. c #FDC21B", "i. c #FFD400", "p. c #FFD911", "a. c #FFC426", "s. c #FFE532", "d. c #DAC252", "f. c #FFDB5A", "g. c #F1D778", "h. c #FFE476", "j. c #FFEB75", "k. c #828383", "l. c #85888E", "z. c #888A8F", "x. c #888D92", "c. c #8B9093", "v. c #9C8987", "b. c #94979B", "n. c #9C9FA5", "m. c #9EA6AC", "M. c #B09C89", "N. c #B1A180", "B. c #A2A4A4", "V. c #A4A5A8", "C. c #A6A8AB", "Z. c #ABACAC", "A. c #AFB0B1", "S. c #B3AAAE", "D. c #B1B4B6", "F. c #B1B3B8", "G. c #B5B9BB", "H. c #BDBDBD", "J. c #B4B4C4", "K. c #BEBFC4", "L. c #C4AF92", "P. c #F3AA86", "I. c #F7BE83", "U. c #F8B897", "Y. c #F3B9A4", "T. c #E6C286", "R. c #F8C69D", "E. c #F3C5A5", "W. c #F8CEB9", "Q. c #FFDCA8", "!. c #FFFDB4", "~. c #C6C9CA", "^. c #C9CCCC", "/. c #CACCD0", "(. c #DCCCC7", "). c #D1D1D2", "_. c #D5D7D8", "`. c #D3D8DA", "'. c #D9DADD", "]. c #DCDEE4", "[. c #D9DEED", "{. c #F9DFCD", "}. c #FFDFD8", "|. c #FDE2D8", " X c #E5E6E6", ".X c #E3E5E9", "XX c #E4E8ED", "oX c #E2EBF3", "OX c #F2EBE6", "+X c #FFEEEC", "@X c #FFFFE4", "#X c #F1F5FC", "$X c #F3F8F9", "%X c #FEFEFE", "&X c None", /* pixels */ "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X &X&X&X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X : k z * &X&X&X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X h 7 x A J & &X&X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X . Z.%Xc w j c e &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X v C OXD M XX^.5 &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X o N.M.Q.0.g {.%Xj &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X U %X@Xj.p.y.+.| z &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X d.!.f.u.,.X. .v.z &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X 9.g.q.L.S.J.oX.Xt &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X * $X#X[.XX$X%X%X%Xt &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X m %X%X%X%X%X%X%X%Xk &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X H.%X%X%X%X%X%X%X%Xx &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X 0 %X%X%X%X%X%X%X%X%XB . &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X Z.%X%X%X%X%X%X%X%X XB 7 &X&X&X&X&X&X&X", "&X&X&X&X&X&X&X&X&X h %X%X%X%X%X%X%X%X%XG.x n . &X&X&X&X&X&X", "&X&X&X&X&X&X&X&X . _.%X%X%X%X%X%X%X%X%XF k V q &X&X&X&X&X", "&X&X&X&X&X&X&X .%X%X%X%X%X%X%X%X%XG.r z M D + &X&X&X&X&X", "&X&X&X&X&X&X O x r #X%X%X%X%X%X%X%X%X Xy c x c F V &X&X&X&X", "&X&X&X&X - /.P K.%X%X%X%X%X%X%X%X%Xx B B y c V l.r &X&X&X&X", "&X&X&X&X - '. XH %X%X%X%X%X%X%X%X%XS N x.q r x B J l.O &X&X&X", "&X&X&X O ~.%XA.J %X%X%X%X%X%X%X%X).8 D.r 3 w z M F n.l &X&X&X", "&X&X x V.m 5 l %X$X$X%X%X|.%X%XC.h P O 4 D b.F.K c.L &X&X", "&X&X . B.e.I.%XR.` U.%X_.3 - 6 C./.).%Xc.P z.. &X&X", "&X&X < 1.8.E.&.O.W.%X%Xt e '.].'.%X%Xc.L S &X&X", "&X&X&X&X&X&X&X , 2.2.@.%.} Y.P.w.(.$X%X X%X%X%XG K 0 &X&X", "&X&X&X&X&X&X&X&X @ <.3.4.$.' } _ ~ +X%X%X%X%X%X~.M x &X&X", "&X&X&X&X&X&X&X&X&X o.6.$.-.=.] { }.%X%X%X%X%X`.N t . &X&X&X", "&X&X&X&X&X&X&X&X&X&XT 5.-.=.^ a 9 K A.^./.m.Z 7 + &X&X&X&X", "&X&X&X&X&X&X&X&X&X&X1 ) ! f X # p Y R s &X&X&X&X&X", "&X&X&X&X&X&X&X&X&X&X &X 2 E T.h.s.i.7...d &X&X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&Xu ;.t.r.>.a.7./ Q ( [ I &X&X&X", "&X&X&X&X&X&X&X&X&X&X&X&X&X&X&X&Xi i % $ W d X @ > &X&X&X" }; tucnak-4.04/share/pixmaps/Makefile.am0000644000175000017500000000017312412213773014471 00000000000000datarootdir = @datarootdir@ EXTRA_DIST=$(share_DATA) sharedir = $(datadir)/pixmaps share_DATA = tucnak.png tucnak.xpm tucnak-4.04/share/pixmaps/tucnak.png0000644000175000017500000000376412412214000014421 00000000000000PNG  IHDR szz pHYs  gAMA|Q cHRMz%u0`:o_FjIDATxb?S,>ę@̌O^bahJYE=U f&&KgϘ|L (^JH3@1Qh]9dbDŋ  JoU{vdPRVbxûw߿ϠTČ  Jkw&o3ȋ0(*i0,ZǷ 5@̇"L|<,i~Z >: 18gPxA3cc)) g@1 Kt'.ǀFe8w@,^"7D22poÿ<&z e F @8@ ~batG Y0ga`Tc3gaD@8_T\BBvÏ? dٙx ~}pg%T  $(x Dj.b8 9!b1|T2;99T 1>uD 8/^00113hj뀸>%vG'gސ`_{ -]Vv.D8}ԩDvێ ߿ge32EC : 9@qAUe9:A˷p)`Mv/P*zbÌpqq{-CϞ1D'3 2 ))I/3,7P(b &=MJFvZ?By`{@@ _>}fPUdS@ lΐܷw8Ç }vN.?bmmm+׮0 ?f _ '7oP >Bw@67/_EKTΜ;9Do`W^e8v8CPPM޽}?š/@ψ1888pg! &e;ógO*._ >_#='W12>s`05gf caL&f ^@,  {YXAg@ #3EK9}86"?vL\_QY忌u]KW.\N򿺱GW&P +@\{@63}g`˕f&Q`)5j0@~2,Z_v"X@G15$@!;2#: Vff#3y \L 1~v֧v211<{AJRn```8~(4>3'gB xjo3|%Ǡ lAj^)IqOfx.\8 w`DLQOo_2dg 6`S(24V˜mIf0<|a +Py m:p( ? LYP+ B+ de[wpq ߿@O# @b);Gzyf>10^ F@ *D@1~n[-Q/>E ˶7@ @ Hi3Ar_h>fBj)Z Ϭ}P^S#`&{Y: @u< \EAccD.Uw3|?F/^9w)og;}  (v6C$n>pSAtIPӟ,{Wk&"a( L:0{ @XIENDB`tucnak-4.04/share/pixmaps/Makefile.in0000644000175000017500000003335412561147616014520 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = share/pixmaps DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(sharedir)" DATA = $(share_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(share_DATA) sharedir = $(datadir)/pixmaps share_DATA = tucnak.png tucnak.xpm all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu share/pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-shareDATA: $(share_DATA) @$(NORMAL_INSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sharedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sharedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sharedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sharedir)" || exit $$?; \ done uninstall-shareDATA: @$(NORMAL_UNINSTALL) @list='$(share_DATA)'; test -n "$(sharedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sharedir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sharedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-shareDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-shareDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-shareDATA install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-shareDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/intl/0000755000175000017500000000000012561153000010666 500000000000000tucnak-4.04/intl/french.lng0000644000175000017500000011660512535256134012603 00000000000000T__CHAR_SET, "iso8859-1", T__LANGUAGE, "Franais", T_ABOUT, "A propos", T_BAD_NUMBER, "Mauvais nombre", T_BAD_STRING, "Mauvaise chane", T_BASIC_HELP, "Presser F10 pour le menu.\nAmusez vous bien.", T_BLOCK_CURSOR, "Curseur bloc", T_CANCEL, "Annuler", T_CHARACTER_SET, "Codage de caractres", T_COLOR, "Couleur", T_COPYING, "Copying", T_DIFFERENCE, "diffrence", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Voulez vous rellement quitter Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "Chane vide non autorise", T_ERROR, "Erreur", T_WARNING, "Avertissement", T_EXIT, "Quitter", T_EXIT_TUCNAK, "Quitter Tucnak", T_FILE, "Fichier", T_FULL_SCREEN, "Plein cran", T_HELP, "Aide", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "A", T_HK_COPYING, "C", T_HK_EXIT, "Q", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "Cadres KOI8-R", T_LANGUAGE, "Langue", T_LAST, "dernier", T_LINUX_OR_OS2_FRAMES, "Cadres Linux ou OS/2", T_MEMORY_INFO, "Info mmoire", T_NO_FRAMES, "Aucun cadre", T_NO, "Non", T_NUMBER_EXPECTED, "Nombre attendu dans le champ", T_NUMBER_OUT_OF_RANGE, "Nombre hors domaine", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Restreindre les cadres en cp850/852", T_UTF_8_IO, "UTF-8 Entre/Sortie", T_SCREEN, "Ecran", T_SETUP, "Setup", T_TERMINAL_OPTIONS, "Options terminal", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nLog contest V/U/SHF similaire TACLOG", T_TWTERM, "Twterm", T_USE_11M, "Utiliser ^[[11m", T_VT_100_FRAMES, "Cadres VT 100", T_WELCOME1, "Bienvenue dans Tucnak!", T_WELCOME2, "Veuillez saisir votr indicatif et votre locator:", T_WELCOME, "Bienvenue", T_XTERM, "Xterm", T_YES, "Oui", T_CANT_APPEND_S, "Ne peut concatner le fichier %s", T_CANT_WRITE, "Ne peut crire dans le fichier", T_CANT_WRITE_S, "Ne peut crire dans le fichier %s", T_CANT_READ, "Ne peut lire depuis le fichier", T_CANT_READ_S, "Ne peut lire depuis le fichier %s", T_SAVED_S, "%s enregistr", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - vitesse cw ", T_CANT_OPEN_S, "Ne peut ouvrir %s", T_CANT_LOCK, "Ne peut vrouiller", T_CANT_LOCK_S, "Ne peut vrouiller %s", T_LOADING_CTEST_S, "*** Chargement contest %s", T_NO_FILES, "Aucun fichier dans le rpertoire", T_BAND_EXIST_SS, "ATTENTION! La bande %s (%s) existe dj", T_BAND_NOT_OPEN, "Bande non active dans ce contest", T_NO_BANDS, "Aucune bande charger", T_CANT_SET_GR_S, "Ne peut mettre aucun mode graphique-%s", T_GCALL, "Indicatif: %s", T_GWWL, "WWL: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Trns: %s %s", T_GRCV, "Reu: %s %s", T_GTIM, "Time: %s", T_GOPE, "Op: %s", T_GREM, "Rem: %s", T_GWKD, "Wkd: %d", T_GINC, "revenu: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " ATTENDRE svp ", T__RO_BAND, " BANDE LECTURE-SEULE", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis 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 2 of the License, or (at your option) any later version.", T_CTEST_ACTIVE, "Contest dj actif ", T_NO_CTESTS, "Aucun contest", T_NO_CCLOSE, "Aucun contest fermer", T_REALLY, "Vraiment?", T_CLOSE_CTEST, "Voulez vous vraiment fermer ce contest?", T_GUI_LD, "IHM: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw lments, %d wc lments, dernier %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n", T_VEXC, "Verified EXC: %d items\n", T_DWI, "D_W: %d prfixes, %d DXCCs, %d WWLs\n", T_NAMES, "Noms: %d noms\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Mmoire:", T_NMY, " Mien: ", T_NGLOBAL, "Global: ", T_NMASTER, "Matre: ", T_NREMOTE, "Remote: ", T_NSLAVES, "\nEsclaves:\n", T_NINFO, "Info rseau", T_NO_BANDS_QRV, "QRV aucune bande", T_NO_BANDS_CONF, "Aucune bande configure", T_NOT_AVAILABLE, "Non disponible", T_ADD_SUBWIN, "Ajoute sous-fentre", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Ferme sous-fentre", T_HK_CLOSE_SUBWIN, "F", T_HK_NINFO, "N", T_NEW, "Nouveau", T_HK_NEW, "N", T_NEW_WIZZ, "Nouveau depuis assistant", T_HK_NEW_WIZZ, "V", T_NEW_NET, "New from network", T_HK_NEW_NET, "T", T_OPEN, "Ouvrir", T_HK_OPEN, "O", T_SAVE, "Enregistrer", T_HK_SAVE, "E", T_EXPORT_EDI, "Exporter en EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exporter en rapport", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exporter en ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exporter en HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importer EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importer ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importer swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Options contest", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Fermer contest", T_HK_CLOSE_CONTEST, "F", T_ADD_ERROR, "Ajouter ERROR", T_HK_ADD_ERROR, "E", T_CHOP, "Changer d'oprateur", T_HK_CHOP, "O", T_CW_CTEST, "Mettre jour C_W depuis contest", T_HK_CW_CTEST, "C", T_CW_BAND, "Mettre jour C_W depuis la bande", T_HK_CW_BAND, "B", T_EXC_CTEST, "Update EXC DB from contest", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Update EXC DB from band", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importer base de donne DL8EBW", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Aucun contest", T_NO_PEERS, "Aucun pairs trouvs", T_NO_MASTER, "Matre undisponible!", T_CTEST_DEF, "Contest par dfaut", T_HK_CTEST_DEF, "O", T_BAND_DEF, "Bande par dfaut", T_HK_BAND_DEF, "B", T_HK_RESPOP, "P", T_CW_DAEMON, "Manip CW", T_HK_CW_DAEMON, "M", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Auto-enregistrement", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Chargement cfg depuis rseau", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Chargement C_W depuis rseau", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Enregistrement configuration", T_HK_SAVE_CFG, "F", T_CONTEST, "Contest", T_HK_CONTEST, "C", T_EDIT, "Edition", T_HK_EDIT, "E", T_BANDS, "Bandes", T_HK_BANDS, "B", T_SUBWINS, "Sous-fentres", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "Band settings for band %c %s", T_QRV_ON_THIS_BAND, "QRV sur cette bande", T_QRV_IN_THIS_CTEST, "QRV dans ce contest", T_READ_ONLY, "Lecture-seule", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " TX Equip:", T_POWER, "Puissance:", T_RXEQUIP, " RX Equip:", T_ANTENNA, " Antenne:", T_AGLASL, " AGL;ASL:", T_OPS, "Oprateurs:", T_SPACES1, " ", T_REMARKS, "Remarques:", T_OK_SECTION_SINGLE, "Single category in OK", T_OK_SECTION_MULTI, "Multi category in OK", T_QRG_MIN, "Band boundary from", T_QRG_MAX, "to [kHz]", T_ADIFBAND, "ADIF band name", T_SKEDQRG, "QRG for skeds (free form)", T_BAND_LO, "Transverter's LO QRG [Hz]", T_BANDSW, "Band switch value", T_RESPOP, "Oprateur responsable", T_NAME, " Nom:", T_CALLSIGN, " Indicatif:", T_ADDRESS, " Adresse:", T_POSTCODE, "Code Postal:", T_CITY, " Ville:", T_COUNTRY, " Pays:", T_PHONE, " Tlphone:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --aucun-- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " --aucun-- ", T_TP1, " 1 Multiplicatif (Std. IARU)", T_TP2, " 2 Additif (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nouveau Contest", T_CANT_TRUNC, "Ne peut troncaturer le fichier desc", T_NAME_OF_CTEST, "Nom du contest:", T_CALL_OF_CTEST, "Indicatif dans le contest:", T_CLUB_ST, "Station du club:", T_YOURWWL, "Votre WWL:", T_YOUREXC, "Votre EXC:", T_DATE_OF_CTEST, "Date du contest:", T_QSOUSED, "QSO NR utilis", T_QSOPM, " QSOp multi:", T_WWLUSED, "WWL utilis ", T_WWLB, "WWL bonus:", T_WWLM, "WWL multi:", T_EXCUSED, "EXC used", T_EXCB, " EXC bonus:", T_EXCM, "EXC multi:", T_EXCNAME, "EXC name:", T_PREFM, "PREF multi:", T_DXCB, "DXC bonus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST Utilis ", T_DEFRS, "RS par dfaut:", T_DEFRST, "Def RST:", T_ALSORSTR, "Also for RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Op responsable", T_EDIT_QSO_CD, "Edite QSO %c: %03d", T_CALLSIGN2, "Indicatif:", T_CLUB, " Club:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operator:", T_DATE, " Date:", T_MODE, " Mode:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO sent:", T_QSONRR, "QSO rcvd:", T_OPTEXCH, " OptExch:", T_WWL, " WWL:", T_REMARK, "Remarque:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Envoi sked", T_SELECT, "Slectionne", T_QRG, " QRG:", T_WE_CALL, " On appelle", T_BAND, " Bande:", T_TIME, " Time:", T_DUPE_QSO, "QSO dupliqu!", T_CLEAR_THIS_QSO, "Nettoyer ce QSO", T_EDIT_OLD_QSO, "Edite ancien QSO", T_MARK_OLD_QSO, "Marque ancien QSO comme ERROR", T_STORE_AS_DUPE, "Enregistre comme DUPE", T_BAD_CALL, "Ca ne ressemble pas un indicatif", T_N_CALLSIGN, "\nIndicatif:", T_AUTOSAVE_OPTS, "Options auto-enregistrement", T_SAVE_AQ, "Enregistre sur disque aprs QSO: ", T_SAVE_AM, "Enregistre sur disque aprs minutes:", T_FSYNC, "Fsync", T_SAVE_AQF, "Enregistre sur disquette aprs QSO: ", T_SAVE_AMF, "Enregistre sur disquette aprs minutes:", T_DO_MOUNT, "Monter si absent de /etc/mtab (inutilis)", T_FLOPPY_PATH, "Chemin de disquette:", T_MOUNT_CMD, "Commande de montage: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Part.", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Carte", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "QSOs non finis", T_DXC, "DX Cluster", T_STAT, "Statistiques", T_SWAP, "Swap (N/A)", T_MAP, "Carte graphique", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_KST, "KST", T_CMD, "Commande", T_RESPAWN, "Relance [sec]:", T_UNFI_QSO, "QSO non fini", T_N_REMARK, "\nRemarque:", T_NO_CQ, "Aucun CQ dfini", T_TEXT, "Texte:", T_SPEED, "Vitesse [WPM]:", T_REPEAT, "Rpte", T_DELAY, "Dlai [0.1s]:", T_ALLOW_UNDEF, "Autorise si qq lments indfinis", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Nom de fichier:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "Port UDP:", T_DEVICE, "Priphrique manip:", T_INIT_SPEED, "Vitesse initiale [WPM]:", T_INIT_WEIGHT, "Weight (30-70):", T_WPMFROM, "WPM Range from", T_WPMTO, "to", T_USE_SPK, "Utilise le haut-parleur", T_LEADIN, "PTT lead in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignore l'interface %-5s", T_IGN_ADDR_S, "Ignore l'adresse %s", T_ADD_IFACE_SSD, "Ajoute l'interface=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Force l'adresse %s", T_TIMESKEW, "ATTENTION! Variation de temps %d dtecte par rapport %s:%d !\n", T_DISCONNECTING_SD, "Dconnection de %s:%d", T_ACCEPTED_SD, "Accept %s:%d (%s)", T_CONNECTING_SD, "Connection %s:%d", T_CONNECTED_SD, "Connect %s:%d", T_DISCONNECTED_SD, "Dconnect de %s:%d", T_LOADED_CFG_SSSS, "Chargement config pour %s %s (%s,%s)", T_LOADED_CW, "Donne C_W charge", T_PEER_NOT_FOUND, "ERREUR! Correspondant %s non trouv", T_CANT_CREATE_HOME_S, "Ne peut crer le rpertoire %s", T_CANT_LOAD_CFG, "Ne peut charger la configuration!\nProgramme ne peut fonctionner correctement!", T_ERR_RC, "Encontr quelques erreurs dans le fichier de config!\nCe fichier a peut-tre t enregistr avec un version plus rcente de Tucnak!\nN'enregistrez pas votre confuguration sinon vous perdriez vos donnes!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Remarque ", T_SES_WELCOME, "Bienvenue dans Tucnak! ", T_SES_PRESS_F10, "Presser F10 pour le menu.", T_SES_HAVE_FUN, "Amusez vous bien.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG", T_SES_AVG, " MOY: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS en WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Statistiques pour la bande %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Moyenne pts/QSO: %5.2f", T_SF_AVG_QSOP, "Moyenne qsop/QSO: %5.2f", T_BAND_RO, "Bande en lecture-seule", T_THIS_BAND, "Cette bande", T_OTHER_BANDS, "Autres bandes", T_CW_DB, "C_W base de donnes", T_PROC_EXITED, "*** Processus s'est termin\n", T_WE_CALL2, "on appelle", T_WE_LISTEN, "on coute", T_QSL, "QSL promise", T_RECORD, "Enregistre trafic", T_MAXMIN, " Dure max d'enregistrement", T_TEMPLATE, "Patron du nom de fichier", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "mu-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Canaux", T_SAMPLERATE, "Frquence d'chantillonage", T_FILLOP, "Renseigner oprateurs", T_HK_FILLOP, "N", T_RECAQRB, "Recalc QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Rseau & trace", T_HK_NETWORK, "E", T_IF_IGNORE, "Ignore interfaces:", T_IP_IGNORE, " Ignore rseaux:", T_IP_ANNOUNCE, "Annonce au rseau:", T_TRACE_BCAST, "Trace broadcasts ", T_TRACE_SOCK, "Trace sockets", T_TRACE_RECV, "Trace donnes reues", T_TRACE_SEND, "Trace donnes envoyes", T_TRACE_QSOS, "Trace QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Non mont %s", T_RECSRC_NONE, "Ne pas dfinir", T_RECSRC_MIC, "Microphone", T_RECSRC_LINE, "Entre ligne", T_NEW_CALL, "Nouveau!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV sur %s", T_SKED_QRG, "QRG pour skeds", T_HK_SKED_QRG, "Q", T_N_SKED_QRG, "\nQRG pour skeds:", T_GRAB_BAND, "Rcupre contrle bande", T_HK_GRAB_BAND, "P", T_FORCE_RUN, "Force mode RUN", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Exporter Statistiques", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotator", T_HK_ROTAR, "R", T_AZIMUTH, " Azimuth", T_ELEVATION, "Elvation", T_CH_SPY, "Espionne", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Fin espionnage", T_HK_CH_ENDSPY, "F", T_EXPORT_TITLPAGE, "Exporter page de titre", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Arrte l'enregistrement", T_HK_BREAK_RECORD, "A", T_GLOBAL_OPERATOR, "Changer pour toutes bandes", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Nombre max de fragments (>=2)", T_PLAY_LAST, "Joue dernier chantillon", T_HK_PLAY_LAST, "J", T_MISCOPTS, "Options diverses", T_HK_MISCOPTS, "P", T_LOGLINES, "Lignes log: ", T_SKEDSHIFT, "Dcalage sked (minutes): ", T_STARTBAND, "Band de dpart: ", T_GFX_X_CH, "Rsolution cran (cars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Rsolution cran (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Info indicatif", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/heure: %d", T_SF_QSOP_HOUR, "Points/heure: %d", T_SF_QSOP_50QSO, "Points/50 QSOs: %d", T_SF_HOURS, " Heures", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Heures Points QSOs MOY pts/QSO", T_QSO_CHECK, "QSO vrification", T_HK_QSO_CHECK, "Q", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "Espace disque minimum [MiB]", T_FORMAT, "Format enregistrement", T_PCM_PLAY, "Priphrique playback Alsa", T_PCM_REC, "Priphrique capture Alsa", T_PERIOD, "Priode [ms]", T_BUFFER, "Temps buffer [ms]", T_ALSA_MIXER, "Priphrique mixeur Alsa", T_CAPTURE, "Source capture", T_DSP, "OSS DSP", T_MIXER, "OSS mixeur", T_RECSRC, "Source enregistrement", T_PA_PLAY, "Portaudio playback device", T_PA_REC, "Portaudio capture device", T_HOSTNAME, "Hte:", T_SLASHKEY, "Slash key", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Enter accurate QRG [Hz]", T_BAD_QRG, "Bad frequency", T_CALLSIGN3, "Callsign", T_CALLSIGN_KST, "KST station's callsign:", T_CANT_INIT_WINKEY_S, "Can't init winkey on %s", T_WINKEYOPTS, "Winkey options", T_WK_WK2, "Winkey2 fast initialization", T_WK_USEPOT, "Use speed pot", T_WK_USEBUT, "Use buttons", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (left handled)", T_RIGOPTS, "Rig options", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address (hex)", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rotar options", T_HK_ROTAROPTS, "I", T_DSSAVER, "Disable screensaver", T_DESC, "Description", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beam width", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global prefix", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", T_ROT_POLL_MS, "Poll interval [ms]:", T_VERSION, "Version", T_HK_VERSION, "V", T_REMOTE_HOST, " Remote host name:", T_REMOTE_PORT, " Remote TCP port:", T_REMOTE_PASS, " Remote Password:", T_STARTING_AC, "Starting A/C", T_STOPPING_AC, "Stopping A/C", T_ASL_5D_M, "ASL: %5d m", T_SPEED4D_KMH, "Speed:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Durat: %ld", T_EXPORTING_S, "Exporting %s", T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s", T_EXPORTING, "Exporting ...", T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables", T_LOADING_CHARTS, "Loading charts", T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control", T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in", T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi", T_CANT_CREATE_PIPE, "Can't create pipe", T_TERMINATING_CWDAEMON, "Terminating CW/PTT control", T_INIT_CWDB, "Initializing WWL database", T_TERM_CWDB, "Terminating WWL database", T_LOADING_CWDB, "Loading WWL database", T_QRV_ON, "QRV on: ", T_CANT_INIT_FTDI, "Can't init ftdi library for davac4", T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s", T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s", T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s", T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s", T_INIT_SOUNDCARD, "Initializing soundcard", T_NO_OSS, "OSS support not compiled in", T_NO_ALSA, "Alsa support not compiled in", T_NO_PORTAUDIO, "portaudio support not compiled in", T_NO_SNDFILE, "Libsndfile support not compiled in", T_NO_SNDPIPE, "Sndpipe support not compiled in", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Initializing DXCC database", T_FREE_DWDB, "Terminating DXCC database", T_LOAD_DWDB, "Loading DXCC database", T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n", T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n", T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n", T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n", T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n", T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n", T_CALL_ON_BAND_S, "Callsign on band %s is %s\n", T_LOCATOR_ON_BAND, "Locator on band %s is %s\n", T_QSO_CHECK_LIST, " Tucnak QSO check list\n", T_CALL_SN, " Call: %s\n", T_CONTEST_SN, "Contest: %s\n", T_DATE_SN, " Date: %s\n", T_CHECKING_S, "Checking %s", T_BAND_C_SN, " Band %c %s\n", T_SEEMS_TO_BE_OK, "Seems to be O.K.\n", T_CW_NOT_FOUND, "C_W: %s not found\n", T_0X_NOT_IN_DB, " 0x (not in database)", T_NAME_IS, "Name: %s's name is %s\n", T_NAME_UNKNOWN, "Name: %s's name is unknown\n", T_INIT_DXC, "Initializing DXcluster database", T_FREE_DXC, "Terminating DXcluster database", T_HK_SELECT, "S", T_HIDE, "Hide", T_HK_HIDE, "H", T_INFO, "Info", T_HK_INFO, "I", T_USE, "Use", T_HK_USE, "U", T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n", T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n", T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n", T_HOST_RESOLVED, "*** Host resolved ", T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n", T_CONNECTING_TO, "*** Connecting to %s ***\n", T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n", T_CONNECTED_SOCKET, "*** Connected socket %d ***\n", T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n", T_DISCONNECTED, "\n*** Disconnected ***\n", T_RESOLVING, "*** Resolving %s ***\n", T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s", T_SAVED, "Saved '%s'", T_LOADING_CONTEST, "Loading contest %s", T_LOADING_LOGFILE, "Loading logfile", T_LOADING_TALK, "Loading talk", T_SEARCH_FILES, "Search for contest files", T_LOADING_BAND, "Loading band %s", T_LOADING_SPY, "Loading spy", T_LOADING_HICALLS, "Loading hicalls", T_LOADING_QRV, "Loading qrv", T_LOADING_CHART, "Loading chart", T_SAVING_CONTEST, "Saving contest", T_UPD_INT_DATA, "Updating internal data", T_CALC_STATS, "Calculating statistics", T_ANN_OVER_NET, "Announcing over network", T_ACTIVATING_BAND, "Activating band %s", T_UPDATING_WKD, "Updating worked calls", T_UPDATING_QRBQTF, "Updating QRB&QTF", T_UPDATING_GAIN, "Updating gain chart", T_SEN_OVER_NET, "Sending info over network", T_INIT_EXCDB, "Initializing exchange database", T_FREE_EXCDB, "Terminating exchange database", T_INIT_FFT, "Initializing FFT analyse", T_FREE_FFT, "Terminating FFT analyse", T_INIT_ROTAR, "Initializing rotator control", T_FREE_ROTAR, "Terminating rotator control", T_LOCATOR, "Locator:", T_BAND2, "Band", T_POINTS, "Points", T_AVG, "AVG", T_INIT_HTTPD, "Initializing HTTP server", T_FREE_HTTPD, "Terminating HTTP server", T_NO_CONTEST_OPENED, "

No contest opened

\n", T_NO_CONTEST_OPENED2, "No contest opened", T_STATS, "Statistics", T_BAND_NOT_FOUND, "Band not found", T_BAND_C_NOT_FOUND, "

Band %c not found

", T_QSOS_IN_DATABASE, "qsos in database", T_TUCNAK_ONLINE_LOG, "Tucnak online log", T_DATE2, "Date", T_UTC, "UTC", T_CALL, "Call", T_CALL_NOT_FOUND, "Call not found", T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d", T_FREE_TERM, "Terminating terminal", T_TERM_KEYMAPS, "Terminating keymaps", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AcKST", T_HK_ACKST, "A", T_MISTAKE, "Oh mistake", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "Ask for sked", T_HK_ASK_FOR_SKED, "K", T_MESSAGE, "Message", T_HK_MESSAGE, "M", T_AC_INFO, "A/C info", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n", T_RESOLVED, "*** Resolved ", T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n", T_SENDING_SH_US, "*** Sending /sh us ...\n", T_SKIP_LINE, "Skip line %d '%s'", T_CANT_CREATE_HOME, "Can't create home directory '%s'", T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)", T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s", T_INIT_MAP, "Initializing polar map", T_DISABLE_SAVER, "Disabling screensaver", T_STARTING_TUCNAK, "Starting Tucnak", T_FREE_MAP, "Terminating polar map", T_INIT_MASTERDB, "Initializing master database", T_FREE_MASTERDB, "Terminating master database", T_LOAD_MASTERDB, "Loading master database", T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s", T_DIRECTORY_SCAN, "Directory scan", T_V3_COMPATIBILITY, " (v3 compatibility)", T_RELOAD_INTERFACES, "Reload interfaces", T_SET_READONLY, "Set read-only", T_CHANGE_TYPE, "Change type", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Open connection", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Kill connection", T_HK_KILL_CONNECTION, "K", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Export to text file", T_ADD_CONTEST, "Add contest", T_HK_ADD_CONTEST, "O", T_ADD_FILES, "Add file(s)", T_HK_ADD_FILES, "F", T_ADD_CONTESTS, "Add contests", T_HK_ADD_CONTESTS, "O", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Crash test", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Int.error test", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Dump RW bands and hashes", T_HK_DUMP_RW_BANDS, "D", T_UPDATE, "Update Tucnak", T_HK_UPDATE, "U", T_SETTINGS, "Settings", T_HK_SETTINGS, "S", T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net", T_HK_UPLOAD_TO_VHFNET, "V", T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "U", T_VOIP_SPY, "Voip spy", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "End voip spy", T_HK_END_VOIP_SPY, "Y", T_OLD_TEST_NO_SPY, "Contest is old, spy is not available", T_NETWORK_SCAN, "Network scan", T_HTTPD_OPTIONS, "HTTPD options", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "A/C options", T_HK_AC_OPTIONS, "P", T_SDR_OPTIONS, "SDR options", T_HK_SDR_OPTIONS, "R", T_OTHER, "Other:", T_NONE, "None ", T_RSTS2, "RST-S", T_RSTR2, "RST-R", T_QSONRR2, "QSONR-R", T_EXC2, "EXC", T_UNUSED, "Unused ", T_USED_6, "Used (6)", T_OPT_6, "Opt. (6)", T_USED_4, "Used (4)", T_OPT_4, "Opt. (4)", T_FREE, "Free ", T_VERIFIED, "Verified", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Confirm WWL", T_CONFIRM_EXC, "Confirm EXC", T_FONT_SIZE, "Font size: ", T_DXC_HOSTNAME, "DXC Hostname:", T_TCP_PORT, "TCP Port:", T_DXC_USERNAME, "DXC Username:", T_PASSWORD, "Password:", T_KST_USERNAME, "KST Username:", T_KST_YOURNAME, "KST Yourname:", T_SDR, "SDR", T_PARPORT, "parport", T_TTYS, "ttys", T_AUDIO_SUBSYSTEM, "Audio subsystem:", T_PLAYBACK_VOLUME, "Playback volume", T_CAPTURE_VOLUME, "Capture volume", T_ENABLE_REMOTE_CONNECT, "Enable remote connect", T_TRACE_RIG, "Trace rig", T_TRACE_KEYS, "Trace keys", T_SAVE_RESTART, "You must save configuration and restart Tucnak", T_FULLSCREEN, "Fullscreen", T_TOUCH, "Use touch control", T_ALT_QWER, "Alt turns QWER.. to 1234..", T_NO_LOCKS, "No device locks", T_PORTRAIT_ORIENTATION, "Portrait orientation", T_REVERSE, "Reverse", T_CHOOSE_RIG, "Choose rig", T_RIG_D, "Rig %d", T_NEW_RIG, "New rig", T_ENABLED, "Enabled", T_SET_PTT_ON_RADIO, "Set PTT on radio", T_DISABLED, " (disabled)", T_ADD_RIG, "Add rig", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rotator %d", T_ENABLE, "Enable", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Show private informations", T_LOAD_FROM_NET, "Load from network", T_LOAD_CWDB, "Load C_W database", T_LOAD_NAMEDB, "Load Name database", T_LOAD_QRVDB, "Load QRV database", T_READONLY_BANDS, "Read-only bands", T_ENABLE_AC, "Enable A/C", T_AC_URL, "Alternative URL for flightradar data", T_K_FACTOR, "Troposphere k_factor", T_AC_AREA_WIDTH, "Reflection area width in km", T_AC_EL_ANGLE, "Minimal elevation angle", T_AC_MAX_EL_ANGLE, "Maximal elevation angle", T_AC_MIN_DURATION, "Minimal reflection duration in sec", T_AC_MAX_DIFF, "Max difference of incidence and reflection angles", T_BAD_NUMBER_RANGE, "Bad number range", T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate", T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder", T_NO_DEVICE, "No device", T_IQ_SOURCE, "IQ source:", T_WAV_FILE, "WAV file", T_WAV_FILE_NAME, "WAV file name", T_AF_OUTPUT, "AF output:", T_AF_SAMPLE_RATE, "AF sample rate", T_BLOCK_SIZE, " Block size", T_CW_FILTER, " CW filter", T_TO_HZ, "to [Hz]", T_SSB_FILTER, " SSB filter", T_INIT_NAMEDB, "Initializing name database", T_FREE_NAMEDB, "Terminating name database", T_LOAD_NAMEDB2, "Loading name database", T_INIT_NET, "Initializing network", T_FREE_NET, "Terminating network", T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops", T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)", T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)", T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s", T_TIME_WAS_SET, "Time was set", T_FAILED_TO_SET_TIME, "Failed to set time", T_INIT, "INIT", T_CONNECTING, "CONNECTING", T_CONNECTED, "CONNECTED", T_WAIT_ACK, "WAIT_ACK", T_DISCONNECTED2, "DISCONNECTED", T_DEAD, "DEAD", T_LONG_XFER, "LONG_XFER", T_AUTHENTICATED_USER_S, "Authenticated user %s", T_BAD_AUTHENTICATION_S, "Bad authentication %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT", T_LONG_TRANSFER_FINISHED, "Long transfer finished", T_INIT_NTP, "Initializing NTP monitor", T_FREE_NTP, "Terminating NTP monitor", T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP", T_INIT_SPEAKER, "Initializing PC speaker", T_FREE_SPEAKER, "Terminating PC speaker", T_CANT_PLAY, "Can't play %s - %s", T_CANT_SEEK_TO_END, "Can't seek to end %s - %s", T_CANT_SEEK_TO_START, "Can't seek to start %s - %s", T_CANT_OPEN, "Can't open %s %s", T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Can't set %s to EPP mode %s", T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s", T_CANT_CLAIM, "Can't claim %s %s", T_INIT_QRVDB, "Initializing QRV database", T_FREE_QRVDB, "Terminating QRV database", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AcKst", T_START, "Start", T_DUR, "Dur", T_NR, "NR", T_TEXT2, "Text", T_16_SORT, "1-6: sort, ", T_A_ALL, "A: all", T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search", T_LOAD_QRVS, "Loading qrvs", T_UNSPECIFIED, "unspecified", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBs CWr", T_CWS_SSBR, "CWs SSBr", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n", T_FOUND_D_ERRORS, "Found %d error%s while reading %s", T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net", T_REGISTRATED_ROTATORS, "Registrated rotators:", T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n", T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread", T_INIT_ROTARS2, "Initializing rotators", T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n", T_ROTAR_ERROR_S, "Rotar error: %s", T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe", T_CANT_READ_FROM, "Can't read from", T_CANT_WRITE_TO, "Can't write to", T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Update", T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Bad update file name", T_CANT_EXECUTE_INSTALLER, "Can't execute installer, ", T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed", T_UPDATE_FAILED, "Update failed", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply.", T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s", T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install.", T_NO_NEW_VER, "No new version available.", T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests...", T_CHOOSE_CONTEST, "Choose contest", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload", T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form...", T_ALL_EDI_FILES_PROCESSED, "All EDI files processed.", T_UPLOADING_LOG_FILE_S, "Uploading log file %s ...", T_UPLOADING_BAND_S, "Uploading band %s", T_CONFIRMING_LOG, "Confirming log...", T_RESULT_ERROR, "*** Result: ERROR please read error message above", T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s", T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores...", T_LOGS_UPLOADED, "Logs uploaded.", T_HTTP_STATUS, "HTTP status: ", T_LOG_UPLOAD, "Log upload", T_VOIP_NO_INITIALIZED, "VOIP no initialized", T_PAGE_NAME, "Page name", T_OVERWRITE_EXISTING_FILES, "Overwrite existing files", T_SITE_URL, "Site URL", T_USERNAME, "Username", T_PASSWORD2, " Password", T_EXPORT_MAP, "Export map", T_EXPORT_CHART, "Export chart", T_MEDIAWIKI_UPLOAD2, "Mediawiki upload", T_BAD_AUTH_USER, "Bad auth user %s != %s", T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n", T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame", T_CANT_GET_FMTS, "Can't get supported audio formats: %s", T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s", T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s", T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s", T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s", T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s", T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s", T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s", T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d", T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s", T_RECORD2, "record", T_PLAYBACK, "playback", T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s", T_CANT_STOP_PA, "Can't stop PortAudio stream: %s", T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s", T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\"", T_CANT_SET_STROBE, "Can't set parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error", T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n", T_INIT_SERIAL_DEVICES, "Initializing serial devices", T_BAD_CHECKSUM, "Bad checksum", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Bad response", T_UNKNOWN_FUNCTION, "Unknown function", T_UNKNOWN_ERROR_CODE, "Unknown error code", T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n", T_WAIT_FOR_SDR_THR, "Waiting for SDR thread", T_QSO_REQ_FROM_SP, " QSO request from S&P ", T_QSO_REQ_SENT, " QSO request sent to RUN ", T_GO, " GO! ", T_LOCATION_UNKNOWN, "Location unknown", T_DEGREE, "deg", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s", T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe", T_INIT_SSB_CQ, "Initializing SSB CQ", T_FREE_SSB_CQ, "Terminating SSB CQ", T_NO_FILE, "No file specified", T_UNSUP_CHANNELS, "Unsupported number of channels = %d", T_FLOAT_UNSUPP, "Float point files are not supported", T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing", T_REC_DISABLED, "recording disabled", T_CONTEST_TOO_OLD, "contest too old", T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Error writing file %s: %s", T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording", T_NO_DISK_SPACE, "Not enough free disk space for file", T_CANT_PLAY_FILE, "Can't play file %s - %s", T_CANT_WRITE_SS, "Can't write to file %s - %s", T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded", T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template", T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n", T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***", T_LOADING_S, "Loading %s", T_INVALID_WINDOW_TYPE, "invalid window type %d\n", T_INIT_RIG, "Initializing rig control %d", T_RIG_ERROR, "Rig error: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n", T_FREE_RIG, "Terminating rig control %d", T_WAIT_FOR_RIG_THR, "Waiting for rig thread", T_INVALID_PARAM, "Invalid param.", T_RIG_INVALID_CONFIG, "Invalid config.", T_RIG_NOT_ENOUGH_MEM, "Not enough mem.", T_RIG_NOT_IMPLEMENTED, "Not implemented", T_RIG_COMM_TIMEOUT, "Comm. timeout", T_RIG_IO_ERROR, "IO error", T_RIG_INTERNAL_ERROR, "Internal error", T_PROTOCOL_ERROR, "Protocol error", T_RIG_COMMAND_REJECT, "Command reject.", T_RIG_ARG_TRUNCATED, "Arg. truncated", T_RIG_F_NOT_AVAILABLE, "F not available", T_RIG_VFO_NOT_TARGET, "VFO not target.", T_RIG_ERROR_ON_BUS, "Error on bus", T_RIG_BUS_COLLISION, "Bus collision", T_RIG_INVALID_ARG, "Invalid arg.", T_RIG_INVALID_VFO, "Invalid VFO", T_RIG_ARG_OUT_OF_DOM, "Arg out of dom.", T_ERROR_D, "Error %d", T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)", T_CANT_SET_GRAPHICS2, "Can't set graphics mode", T_WAIT_SDL_THR, "Waiting for SDL event thread", T_FREE_GRAPHICS, "Terminating graphics", T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s", T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s", T_CANT_READ_LOG_FILE, "Can't read log file %s", T_CANT_UPLOAD_LOG, "Can't upload log: %s", T_CANT_CONFIRM_LOG, "Can't confirm log: %s", T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s", T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing", T_CALL2, "Call:", T_QTH, "QTH:", T_DATE3, "Date:", T_QSOS2, "QSOs:", T_POINTS2, "Points:", T_WWLS, "WWLs:", T_DXCCS, "DXCCs:", T_AVG2, "AVG:", T_PTSQSO, "pts/qso", T_TOP_10_CALLS, "Top 10 calls", T_OPERATOR2, "Operator", T_MODE2, "Mode", T_TOP_10_WWLS, "Top 10 WWLs", T_CANT_UPLOAD_FILE_S, "Can't upload file: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s", T_FILE_ALREADY_EXISTS, "File already exists: %s", T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s", T_CANT_EDIT_PAGE, "Can't edit page: %s", T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s", T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s", T_EDITING_CONTEST_PAGE, "Editing contest page...", T_ALL_DONE, "All done.", T_UPLOADING_FILE, "Uploading file %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s", T_QUERYING_EDIT_TOKEN, "Querying edit token", T_CANT_LOGIN, "Can't log in (2): %s", T_CANT_LOGIN2, "Can't log in (2), wiki says: %s", T_CANT_LOGIN1, "Can't log in (1): %s", T_LOGGING_IN, "Logging in...", T_EXPORTING_FILES, "Exporting files...", T_INIT_WIZZ, "Initializing contest wizard", T_FREE_WIZZ, "Terminating contest wizard", T_LOAD_WIZZ_DATA, "Loading contest wizard data", tucnak-4.04/intl/fixlang.pl0000755000175000017500000000422612535256054012620 00000000000000#!/usr/bin/perl -w use Data::Dumper; open (FD, "english.lng") or die; while($s=){ chomp($s); die if ($s!~/^([0-9A-Z_]+),.*?(".*")/); $english{$1}=$2; push @keys,$1; } close(FD); fix("czech", \%english); if (@ARGV>0){ print "exiting...\n"; exit(0); } open (FD, "czech.lng") or die; while($s=){ chomp($s); die if ($s!~/^([0-9A-Z_]+),.*?(".*")/); $czech{$1}=$2; } close(FD); fix("slovak", \%czech); fix("german", \%english); fix("portuguese", \%english); fix("french", \%english); fix("castellano", \%english); fix("polish", \%english); fix("italian", \%english); parsesources(); sub fix { my ($name, $parent)=@_; my ($key, $value); my (%lng); print "Fixing $name\n"; open (FD, "$name.lng") or die; while($s=){ chomp($s); die if ($s!~/^([0-9A-Z_]+),.*?(".*")/); $lng{$1}=$2; } close(FD); open (FD, ">$name.lng") or die; foreach $key (@keys){ if (defined($lng{$key})){ $value=$lng{$key}; }else{ print "undefined key '$key'\n" if (!defined($$parent{$key})); $value=$$parent{$key}; } print FD "$key, $value,\n"; } close(FD); } sub parsesources{ my ($f, $file, $s, $reg, $key, $unused,$contents); my (%used); opendir(DD, "../src") or die; foreach $f (readdir(DD)){ $file="../src/$f"; next if (! -f $file); next if ($file!~/\.c$/ && $file!~/\.h$/); next if ($file=~/language\.h$/); next if ($file=~/\/del_/); # print Dumper($file); open(FD, $file) or die; $contents=""; while ($s=){ $contents.=$s; } foreach $key (@keys){ $reg="$key"; if ($contents=~/$reg/m){ $used{$key}=1; } } close(FD); } closedir(DD); $unused=""; foreach $key (@keys){ next if ($key=~/^T__/); next if (defined($used{$key})); if (length($unused)>0) { $unused.=", "; } $unused.=$key; } if (length($unused)>0) { print "Unused keys: $unused\n"; } } tucnak-4.04/intl/gen-intl0000755000175000017500000000240712460173502012263 00000000000000#!/bin/sh export LC_CTYPE="ISO-8859-2" echo echo Generating language table. languages=`cat index.txt` if [ -n "$languages" ]; then ( n=0 echo '/* Automatoticaly generated by gen-intl */' for i in $languages; do echo -n $i" " 1>&2 echo echo 'struct translation translation_'$i' [] = {' echo ' {0, NULL},' cat $i.lng | sed 's/^\(.*\),/ \{\1\},/' echo ' {0, NULL}' echo '};' n=`expr $n + 1` done echo echo 'struct translation_desc translations [] = {' for i in $languages; do echo ' {translation_'$i'},' done echo ' {NULL}' echo '};' echo ( echo '/* Automaticaly generated by gen-intl */' echo echo '#define N_LANGUAGES '$n echo # cat english.lng | grep '^T_' | (cat; echo T__N_TEXTS) | sed 's/,.*//' | cat -n | sed 's/^\([^T]*\)\(.*\)$/#define \2 \1/' cat english.lng | grep '^T_' | (cat; echo "T__N_TEXTS, number of texts,") | cat -n | sed 's/ *\([0-9]\+\)[ \t]*\([^,]\+\),\(.*\),/#define \2 \1 \/\/\3/' ) | sed 's/ //g' > language.h ) | sed 's/ //g' > ../src/language.inc echo if [ -f ../src/language.h ]; then cmp -s language.h ../src/language.h if [ $? = 0 ]; then echo Same header else echo New header mv language.h ../src fi else mv language.h ../src fi rm -f ../src/language.o language.h echo Done. fi echo tucnak-4.04/intl/polish.lng0000644000175000017500000011632612535256134012634 00000000000000T__CHAR_SET, "iso8859-2", T__LANGUAGE, "Polish", T_ABOUT, "O programie", T_BAD_NUMBER, "Zy numer", T_BAD_STRING, "Zy cig znakw", T_BASIC_HELP, "Menu nacinij F10.", T_BLOCK_CURSOR, "Blokowy kursor", T_CANCEL, "Anuluj", T_CHARACTER_SET, "Zestaw znakw", T_COLOR, "Kolor", T_COPYING, "Kopiowanie", T_DIFFERENCE, "rnica", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Czy napewno chcesz wyj z programu Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "Niedozwolony pusty cig znakw", T_ERROR, "Bd", T_WARNING, "Uwaga", T_EXIT, "Wyjcie", T_EXIT_TUCNAK, "Wyjcie z Tucnak", T_FILE, "Plik", T_FULL_SCREEN, "Peny ekran", T_HELP, "Pomoc", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "H", T_HK_COPYING, "C", T_HK_EXIT, "W", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "Ramka KOI8-R", T_LANGUAGE, "Jzyk", T_LAST, "ostatni", T_LINUX_OR_OS2_FRAMES, "Ramka Linux lub OS/2", T_MEMORY_INFO, "Informacja o pamici", T_NO_FRAMES, "Brak ramki", T_NO, "Nie", T_NUMBER_EXPECTED, "W tym polu tylko numer", T_NUMBER_OUT_OF_RANGE, "Numer poza zakresem", T_OK, "OK", T_OS_SHELL, "Wiersz polece", T_RESTRICT_FRAMES_IN_CP850_852, "Ochrona ramki w cp850/852", T_UTF_8_IO, "UTF-8 Wejcie/Wyjcie", T_SCREEN, "Ekran", T_SETUP, "Ustawienia", T_TERMINAL_OPTIONS, "Opcje terminala", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nPodobny do TACLOGu-dziennik cznoci V/U/SHF", T_TWTERM, "Twterm", T_USE_11M, "Uyj ^[[11m", T_VT_100_FRAMES, "Ramka VT 100", T_WELCOME1, "Witamy w Tucnak!", T_WELCOME2, "Wprowad swj znak i lokator:", T_WELCOME, "Witaj", T_XTERM, "Xterm", T_YES, "Tak", T_CANT_APPEND_S, "Nie mona doda pliku %s", T_CANT_WRITE, "Nie mona zapisa pliku", T_CANT_WRITE_S, "Nie mona zapisa do pliku %s", T_CANT_READ, "Nie mona odczyta pliku", T_CANT_READ_S, "Nie mona odczyta z pliku %s", T_SAVED_S, "Zapisano %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - szybko CW ", T_CANT_OPEN_S, "Nie mona otworzy %s", T_CANT_LOCK, "Nie mona zablokowa", T_CANT_LOCK_S, "Nie mona zablokowa %s", T_LOADING_CTEST_S, "*** Wczytanie zawodw %s", T_NO_FILES, "Brak plikw w katalogu", T_BAND_EXIST_SS, "UWAGA! Pasmo %s (%s) istnieje", T_BAND_NOT_OPEN, "Pasmo nie jest aktywne w tych zawodach", T_NO_BANDS, "Brak pasm do wczytania", T_CANT_SET_GR_S, "Nie mona ustawi adnego trybu graficznego-%s", T_GCALL, "Znak: %s", T_GWWL, "WWL: %s", T_GQRB, "Odlego: %d km", T_GQTF, "Kierunek: %d", T_GSEN, "Wysano: %s %s", T_GRCV, "Odebrano: %s %s", T_GTIM, "Czas: %s", T_GOPE, "Operator: %s", T_GREM, "Uwagi: %s", T_GWKD, "Wkd: %d", T_GINC, "income: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Prosz czeka ", T__RO_BAND, " PASMO TYLKO DO ODCZYTU", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.", T_CTEST_ACTIVE, "Log zawodw jest ju aktywny ", T_NO_CTESTS, "Brak logu zawodw", T_NO_CCLOSE, "No contest to close", T_REALLY, "Really?", T_CLOSE_CTEST, "Czy napewno chcesz zamkn dziennik zawodw?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw wpisw, %d wc wpisw, ostatni %d\n", T_EXC, "Exc: %s %d exc wpisw, %d cxe wpisw, ostatni %d\n", T_VEXC, "Zweryfikowano EXC: %d wpisw\n", T_DWI, "D_W: %d prefiksy, %d DXCCs, %d WWLs\n", T_NAMES, "Imiona: %d imion\n", T_MASTER, "Gowny: %d calls\n", T_MEMS, "Pami:", T_NMY, " Mj: ", T_NGLOBAL, "Oglny: ", T_NMASTER, "Gwny: ", T_NREMOTE, "Zdalny: ", T_NSLAVES, "\nPodrzdny:\n", T_NINFO, "Informacja o sieci", T_NO_BANDS_QRV, "Pasmo nie jest aktywne", T_NO_BANDS_CONF, "Pasmo nie jest skonfigurowane", T_NOT_AVAILABLE, "Niedostpne", T_ADD_SUBWIN, "Dodaj okno", T_HK_ADD_SUBWIN, "D", T_CLOSE_SUBWIN, "Zamknij okno", T_HK_CLOSE_SUBWIN, "Z", T_HK_NINFO, "I", T_NEW, "Nowy", T_HK_NEW, "N", T_NEW_WIZZ, "Nowy z kreatora", T_HK_NEW_WIZZ, "K", T_NEW_NET, "Nowy z sieci", T_HK_NEW_NET, "S", T_OPEN, "Otwrz", T_HK_OPEN, "O", T_SAVE, "Zapisz", T_HK_SAVE, "Z", T_EXPORT_EDI, "Eksport do EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Eksport jako Raport", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Eksport do ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Eksport do Cabrillo", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Eksport do HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Eksport jako MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Import EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Import ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Import swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Ustawienia zawodw", T_HK_CONTEST_OP, "U", T_CLOSE_CONTEST, "Zamknij log zawodw", T_HK_CLOSE_CONTEST, "K", T_ADD_ERROR, "Dodaj Bd", T_HK_ADD_ERROR, "B", T_CHOP, "Zmiana opertora", T_HK_CHOP, "O", T_CW_CTEST, "Aktualizacja C_W z logu", T_HK_CW_CTEST, "A", T_CW_BAND, "Aktualizacja C_W z pasma", T_HK_CW_BAND, "P", T_EXC_CTEST, "Aktualizacja EXC DB z logu", T_HK_EXC_CTEST, "E", T_EXC_BAND, "Aktualizacja EXC DB z pasma", T_HK_EXC_BAND, "X", T_IMPORT_EBW, "Import bazy DL8EBW", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Log nie jest aktywny", T_NO_PEERS, "Nie znaleziono uytkownikw", T_NO_MASTER, "Komputer gwny jest niedostpny!", T_CTEST_DEF, "Domyle ustawienia zawodw", T_HK_CTEST_DEF, "Z", T_BAND_DEF, "Domylne ustawienia dla pasma", T_HK_BAND_DEF, "P", T_HK_RESPOP, "P", T_CW_DAEMON, "Kluczowanie CW", T_HK_CW_DAEMON, "K", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Autozapis", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Pobranie ustawie z sieci", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Pobieranie C_W z sieci", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Zapisz konfiguracj", T_HK_SAVE_CFG, "F", T_CONTEST, "Zawody", T_HK_CONTEST, "Z", T_EDIT, "Edycja", T_HK_EDIT, "E", T_BANDS, "Pasma", T_HK_BANDS, "P", T_SUBWINS, "Okna", T_HK_SUBWINS, "O", T_BAND_SETTINGS_SC, "Ustawienia dla pasma %c %s", T_QRV_ON_THIS_BAND, "QRV na tym pamie", T_QRV_IN_THIS_CTEST, "QRV w tych zawodach", T_READ_ONLY, "Tylko do odczytu", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " Nadajnik:", T_POWER, " Moc:", T_RXEQUIP, "Odbiornik:", T_ANTENNA, " Antena:", T_AGLASL, "Wys.ziem/morze:", T_OPS, "Operatorzy:", T_SPACES1, " ", T_REMARKS, " Uwagi:", T_OK_SECTION_SINGLE, "Kategoria Single w OK", T_OK_SECTION_MULTI, "Kategoria Multi w OK", T_QRG_MIN, "Zakres pasma od", T_QRG_MAX, "do [kHz]", T_ADIFBAND, "Nazwa pasma w ADIF", T_SKEDQRG, "Czst. do skedw (dowolny form.)", T_BAND_LO, "LO Transwertera[Hz]:", T_BANDSW, "Przecznik pasm", T_RESPOP, "Operatorzy ", T_NAME, " Imie:", T_CALLSIGN, " Znak:", T_ADDRESS, " Adres:", T_POSTCODE, " Kod poczt.:", T_CITY, " Miasto:", T_COUNTRY, " Kraj:", T_PHONE, " Telefon:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --nic -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " --nic -- ", T_TP1, " 1 Multiplicative (Std. IARU)", T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nowe zawody", T_CANT_TRUNC, "Nie mona skrci pliku", T_NAME_OF_CTEST, " Nazwa zawodw:", T_CALL_OF_CTEST, " Znak w zawodach:", T_CLUB_ST, "Znak klubowy:", T_YOURWWL, "Twj WWL:", T_YOUREXC, "Twj EXC:", T_DATE_OF_CTEST, "Data zawodw:", T_QSOUSED, "Wymiana nr QSO", T_QSOPM, " QSOp mnonik:", T_WWLUSED, "Wymiana WWL", T_WWLB, "Bonus WWL:", T_WWLM, "WWL mnonik:", T_EXCUSED, "Wymiana EXC", T_EXCB, " Bonus EXC:", T_EXCM, "EXC mnonik:", T_EXCNAME, "Nazwa EXC: ", T_PREFM, "Mnonik PREF:", T_DXCB, " Bonus DXC:", T_DXCM, "Mnonik DXC:", T_RSTUSED, "Wymiana RST", T_DEFRS, "Domylny RS:", T_DEFRST, "Dom. RST:", T_ALSORSTR, "Rwnie dla RST-R", T_QP_CALC, " Sposb liczenia QSOp:", T_TO_CALC, "Sposb sumowania:", T_EDI_PROP, "EDI informacje", T_RESPOP2, "Operator odp.", T_EDIT_QSO_CD, "Edycja QSO %c: %03d", T_CALLSIGN2, "Znak:", T_CLUB, " Klub:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operator:", T_DATE, " Data:", T_MODE, " Modul.:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO wys:", T_QSONRR, "QSO odeb:", T_OPTEXCH, " OptExch:", T_WWL, " WWL:", T_REMARK, " Uwagi:", T_QRV2, " QRV na:", T_WKD, " WKD:", T_SEND_SKED, "Wylij sked", T_SELECT, "Zaznacz", T_QRG, " QRG:", T_WE_CALL, " Woamy", T_BAND, " Pasmo:", T_TIME, " Czas:", T_DUPE_QSO, "QSO powtrzone!", T_CLEAR_THIS_QSO, "Wyczy to QSO", T_EDIT_OLD_QSO, "Edytuj poprzednie QSO", T_MARK_OLD_QSO, "Zaznacz QSO jako Bd", T_STORE_AS_DUPE, "Zapisz jako powtrzone", T_BAD_CALL, "To nie wyglda jak znak wywoawczy", T_N_CALLSIGN, "\nZanak:", T_AUTOSAVE_OPTS, "Opcje autozapisu", T_SAVE_AQ, "Zapis na dysku po kadym QSO:", T_SAVE_AM, "Zapis na dysku po minutach:", T_FSYNC, "Synchronizuj cache z dyskiem", T_SAVE_AQF, "Zapis na dyskietce po QSO: ", T_SAVE_AMF, "Zapis na dyskietk po minutach:", T_DO_MOUNT, "Zamontuj jesli nie ma /etc/mtab (nieuywane)", T_FLOPPY_PATH, "cieka do dyskietki:", T_MOUNT_CMD, "Polecenie montowania: ", T_SW_SHELL, "Powoka", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Rozmowa", T_SW_SKED, "Sked", T_SW_UNFI, "Niedo", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Map", T_SW_SCOPE, "Spekt", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Odtwarzacz", T_SW_CHART, "Wykres", T_SHELL, "Powoka", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Rozmowa", T_SKEDS, "Skedy", T_UNFI, "Niedokoczone QSO", T_DXC, "DX Cluster", T_STAT, "Statystyki", T_SWAP, "Swap (N/A)", T_MAP, "Graficzna mapa", T_SCOPE, "Spektrum", T_QRV, "QRV", T_HF, "HF", T_KST, "KST", T_CMD, "Polecenie", T_RESPAWN, "Respawn [sec]:", T_UNFI_QSO, "Niedokoczone QSO", T_N_REMARK, "\nUwagi:", T_NO_CQ, "Nie zdefiniowano CQ", T_TEXT, "Tekst:", T_SPEED, "Prdko [WPM]:", T_REPEAT, "Powtrka", T_DELAY, "Opnienie [0.1s]:", T_ALLOW_UNDEF, "Niektre pozycje nie s zdefiniowane", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Nazwa pliku:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP port:", T_DEVICE, "Urzdzenie kluczujce:", T_INIT_SPEED, "Prdko pocztkowa[WPM]:", T_INIT_WEIGHT, "Szeroko (30-70):", T_WPMFROM, "Przedzia WPM od", T_WPMTO, "do", T_USE_SPK, "Uyj gonika", T_LEADIN, "Opnienie PTT[ms]", T_AUTGIVE, "uruchom tryb automatyczny po[znak]", T_IGN_IFACE_S, "Ignoruj interfejs %-5s", T_IGN_ADDR_S, "Ignoruj adres %s", T_ADD_IFACE_SSD, "Dodano interfejs=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Przejmij adres %s", T_TIMESKEW, "UWAGA! Przedzia czasu %d ponowna detekcja %s:%d !\n", T_DISCONNECTING_SD, "Rozczono z %s:%d", T_ACCEPTED_SD, "Zaakceptowano %s:%d (%s)", T_CONNECTING_SD, "czenie z %s:%d", T_CONNECTED_SD, "Poczono do %s:%d", T_DISCONNECTED_SD, "Rozczono z %s:%d", T_LOADED_CFG_SSSS, "Pobrano konfiguracj z %s %s (%s,%s)", T_LOADED_CW, "Pobrano dane C_W", T_PEER_NOT_FOUND, "BD! Uytkownik %s nie znaleziony", T_CANT_CREATE_HOME_S, "Nie mona utworzy katalogu %s", T_CANT_LOAD_CFG, "Nie mona pobra konfiguracji!\nProgram nie bdzie dziaa prawidowo!", T_ERR_RC, "Wykryto kilka bdw w pliku konfiguracyjnym!\nPrawdopodobnie plik ten nie zosta utworzony przez Tucnak!\nNie zapisuj konfiguracji, bo moesz utraci dane!", T_SES_QTR, " QTR ", T_SES_QRA, " ZNAK ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Uwagi ", T_SES_WELCOME, "Witam w Tucnak! ", T_SES_PRESS_F10, "Nacinij F10 aby uruchomi menu.", T_SES_HAVE_FUN, "Miej zabawy", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Suma -p AVG", T_SES_AVG, " AVG: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Brakuje EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS in WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Statystyka dla pasma %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Zawody : %s", T_SF_ALLBQSOS, "Wszystkie pasma QSOs: %d", T_SF_ALLBQSOP, "Wszystkie pasma QSOp: %d", T_SF_ALLBPTS, "Wszystkie pasma pkt: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO punkty: %d", T_SF_PTS, "Punkty: %d", T_SF_AVG_PTS, "rednia pkt/QSO: %5.2f", T_SF_AVG_QSOP, "rednia qsop/QSO: %5.2f", T_BAND_RO, "Pasmo tylko do odczytu", T_THIS_BAND, "Pasmo", T_OTHER_BANDS, "Inne pasmo", T_CW_DB, "Baza C_W", T_PROC_EXITED, "*** Proces zakoczony\n", T_WE_CALL2, "woamy", T_WE_LISTEN, "suchamy", T_QSL, "Obiecana karta QSL", T_RECORD, "Lista nagra", T_MAXMIN, " Max. czas zapisu", T_TEMPLATE, "Maska nazwy nagrywanego pliku", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "mu-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Kanay", T_SAMPLERATE, "Ilo prbek", T_FILLOP, "Fill operators", T_HK_FILLOP, "L", T_RECAQRB, "Przelicz QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Sie & trasa", T_HK_NETWORK, "K", T_IF_IGNORE, "Ignoruj interfejs:", T_IP_IGNORE, " Ignoruj sie:", T_IP_ANNOUNCE, "Opublikuj w sieci:", T_TRACE_BCAST, "Ruch w sieci ", T_TRACE_SOCK, "Ruch na socketach", T_TRACE_RECV, "Odebrane dane", T_TRACE_SEND, "Wysane dane", T_TRACE_QSOS, "Wprowadzane QSOs ", T_TRACE_SDEV, "Sterowanie rotorem", T_NOT_MOUNTED_S, "Nie zamontowano %s", T_RECSRC_NONE, "Nie ustawiono", T_RECSRC_MIC, "Mikrofon", T_RECSRC_LINE, "Wejcie liniowe", T_NEW_CALL, "Nowy!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV on %s", T_SKED_QRG, "QRG dla skeda", T_HK_SKED_QRG, "D", T_N_SKED_QRG, "\nQRG dla skeda:", T_GRAB_BAND, "Grab band control", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Wymu tryb RUN", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Eksport statystyk", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotor", T_HK_ROTAR, "R", T_AZIMUTH, " Azymut", T_ELEVATION, "Elewacja", T_CH_SPY, "Podgld", T_HK_CH_SPY, "G", T_CH_ENDSPY, "Koniec podgldu", T_HK_CH_ENDSPY, "K", T_EXPORT_TITLPAGE, "Eksport strony tytuowej", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Przerwij nagrywanie", T_HK_BREAK_RECORD, "Y", T_GLOBAL_OPERATOR, "Zmie na wszystkich pasmach", T_GLOBAL_OPERATOR2, "Globalny", T_MAXFRAG, "Max. ilo fragmentw (>=2)", T_PLAY_LAST, "Odtwrz ostatni przykad", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Inne opcje", T_HK_MISCOPTS, "N", T_LOGLINES, "Linii w logu: ", T_SKEDSHIFT, "Opnienie skeda(minuty): ", T_STARTBAND, "Uruchomiono pasmo: ", T_GFX_X_CH, "Rozdzielczo ekranu(znakw):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Rozdzielczo ekranu (piksele):", T_GFX_Y_PX, "x", T_CALL_INFO, "Informacja o znaku", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSO/godz: %d", T_SF_QSOP_HOUR, "Punkty/godz: %d", T_SF_QSOP_50QSO, "Punkty/50 QSO: %d", T_SF_HOURS, " Godziny", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Godziny Punkty QSO R. pkt/QSO", T_QSO_CHECK, "Sprawd QSO", T_HK_QSO_CHECK, "D", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "Minimalna wielko przestrzeni na dysku [MiB]", T_FORMAT, "Format nagrania", T_PCM_PLAY, "Urzdzenie odtwarzajce Alsa", T_PCM_REC, "Urzdzenie nagrywajce Alsa", T_PERIOD, "Cykl [ms]", T_BUFFER, "Czas buforowania ms]", T_ALSA_MIXER, "Urzdzenie miksujce Alsa", T_CAPTURE, "Urzdzenie przechwytujce", T_DSP, "OSS DSP", T_MIXER, "OSS mikser", T_RECSRC, "rdo nagrania", T_PA_PLAY, "Urzdzenie dtwarzajce Portaudio", T_PA_REC, "Urzdzenie nagrywajce Portaudio", T_HOSTNAME, "Nazwa hosta:", T_SLASHKEY, "Klawisz ukonika", T_FIXQRG, "Korekta QRG", T_HK_FIXQRG, "G", T_ENTER_QRG, "Wrwnanie QRG [Hz]", T_BAD_QRG, "Za czstotliwo", T_CALLSIGN3, "Znak", T_CALLSIGN_KST, "Znak na czacie KST:", T_CANT_INIT_WINKEY_S, "Nie mog zainicjowa winkey na %s", T_WINKEYOPTS, "Opcje Winkey", T_WK_WK2, "Szybka inicjalizacja Winkey2", T_WK_USEPOT, "Uyj prdkoci", T_WK_USEBUT, "Uyj klawiszy", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Klucz rczny", T_WK_SWAP, "Paddle swap (left handled)", T_RIGOPTS, "Radio", T_HK_RIGOPTS, "R", T_RIG_DEVICE, "Port:", T_RIG_MODEL, "Model: ", T_RIG_SPEED, "Prdko: ", T_RIG_CIV, "Adres CIV (hex):", T_RIG_FREQSHIFT, "Przes. czst. SSB->CW", T_RIG_CHOOSE, "Wybierz", T_ROTAROPTS, "Opcje rotora", T_HK_ROTAROPTS, "T", T_DSSAVER, "Wycz wygaszacz", T_DESC, "Opis", T_ROT_NONE, "Brak", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib", T_ROT_REMOTE, "Zdalny", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Dodaj rotor", T_HK_ROT_ADD, "D", T_ROT_REMOVE, "Usu rotor", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Szeroko wizki:", T_SADDR, "Adres do komunikacji:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotor zostanie pniej usunity", T_QSOGLOB, "Globalny NR QSO", T_PREFGLOB, "Globalne PREF", T_NOT_RECORDING_S, "Nie nagrano - %s", T_SKEDCOUNT, "Ilo linii w oknie Sked: ", T_FONTHEIGHT, "Wielko czcionki (16-32): ", T_RIG_POLL_MS, "Czas odpytywania radia [ms]: ", T_RIG_QRG_R2T, "Ustaw pasmo z radia", T_RIG_QRG_T2R, "Zmie pasmo w radiu", T_RIG_MODE_T2R, "Zmie modulacj w radiu", T_RUN_MODE, "Tryb aut.", T_HK_RUN_MODE, "U", T_SP_MODE, "S&P tryb", T_HK_SP_MODE, "Y", T_RIG_CLR_RIT, "Wyczy RIT", T_RIG_DEBUG, "Debugowanie radia", T_HF_RATE, "Prdko: %3d/10 %3d/60", T_HF_BAND, "Pasmo QSO Punkt Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Ostatnie Q-%s P-%s", T_EVEN, "TX eVen", T_HK_EVEN, "V", T_ODD, "TX oDd", T_HK_ODD, "D", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Wynik:", T_EXPMODE, "Tryb ekspedycja", T_TTTYPE, "Tylko cyfry", T_ROT_POLL_MS, "Czas odpytywania [ms]:", T_VERSION, "Wersja", T_HK_VERSION, "J", T_REMOTE_HOST, " Adres serwera:", T_REMOTE_PORT, "Port TCP serwera:", T_REMOTE_PASS, "Haso do serwera:", T_STARTING_AC, "Starting A/C", T_STOPPING_AC, "Stopping A/C", T_ASL_5D_M, "ASL: %5d m", T_SPEED4D_KMH, "Speed:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Durat: %ld", T_EXPORTING_S, "Exporting %s", T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s", T_EXPORTING, "Exporting ...", T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables", T_LOADING_CHARTS, "Loading charts", T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control", T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in", T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi", T_CANT_CREATE_PIPE, "Can't create pipe", T_TERMINATING_CWDAEMON, "Terminating CW/PTT control", T_INIT_CWDB, "Initializing WWL database", T_TERM_CWDB, "Terminating WWL database", T_LOADING_CWDB, "Loading WWL database", T_QRV_ON, "QRV on: ", T_CANT_INIT_FTDI, "Can't init ftdi library for davac4", T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s", T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s", T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s", T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s", T_INIT_SOUNDCARD, "Initializing soundcard", T_NO_OSS, "OSS support not compiled in", T_NO_ALSA, "Alsa support not compiled in", T_NO_PORTAUDIO, "portaudio support not compiled in", T_NO_SNDFILE, "Libsndfile support not compiled in", T_NO_SNDPIPE, "Sndpipe support not compiled in", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Initializing DXCC database", T_FREE_DWDB, "Terminating DXCC database", T_LOAD_DWDB, "Loading DXCC database", T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n", T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n", T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n", T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n", T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n", T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n", T_CALL_ON_BAND_S, "Callsign on band %s is %s\n", T_LOCATOR_ON_BAND, "Locator on band %s is %s\n", T_QSO_CHECK_LIST, " Tucnak QSO check list\n", T_CALL_SN, " Call: %s\n", T_CONTEST_SN, "Contest: %s\n", T_DATE_SN, " Date: %s\n", T_CHECKING_S, "Checking %s", T_BAND_C_SN, " Band %c %s\n", T_SEEMS_TO_BE_OK, "Seems to be O.K.\n", T_CW_NOT_FOUND, "C_W: %s not found\n", T_0X_NOT_IN_DB, " 0x (not in database)", T_NAME_IS, "Name: %s's name is %s\n", T_NAME_UNKNOWN, "Name: %s's name is unknown\n", T_INIT_DXC, "Initializing DXcluster database", T_FREE_DXC, "Terminating DXcluster database", T_HK_SELECT, "S", T_HIDE, "Hide", T_HK_HIDE, "H", T_INFO, "Info", T_HK_INFO, "I", T_USE, "Use", T_HK_USE, "U", T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n", T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n", T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n", T_HOST_RESOLVED, "*** Host resolved ", T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n", T_CONNECTING_TO, "*** Connecting to %s ***\n", T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n", T_CONNECTED_SOCKET, "*** Connected socket %d ***\n", T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n", T_DISCONNECTED, "\n*** Disconnected ***\n", T_RESOLVING, "*** Resolving %s ***\n", T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s", T_SAVED, "Saved '%s'", T_LOADING_CONTEST, "Loading contest %s", T_LOADING_LOGFILE, "Loading logfile", T_LOADING_TALK, "Loading talk", T_SEARCH_FILES, "Search for contest files", T_LOADING_BAND, "Loading band %s", T_LOADING_SPY, "Loading spy", T_LOADING_HICALLS, "Loading hicalls", T_LOADING_QRV, "Loading qrv", T_LOADING_CHART, "Loading chart", T_SAVING_CONTEST, "Saving contest", T_UPD_INT_DATA, "Updating internal data", T_CALC_STATS, "Calculating statistics", T_ANN_OVER_NET, "Announcing over network", T_ACTIVATING_BAND, "Activating band %s", T_UPDATING_WKD, "Updating worked calls", T_UPDATING_QRBQTF, "Updating QRB&QTF", T_UPDATING_GAIN, "Updating gain chart", T_SEN_OVER_NET, "Sending info over network", T_INIT_EXCDB, "Initializing exchange database", T_FREE_EXCDB, "Terminating exchange database", T_INIT_FFT, "Initializing FFT analyse", T_FREE_FFT, "Terminating FFT analyse", T_INIT_ROTAR, "Initializing rotator control", T_FREE_ROTAR, "Terminating rotator control", T_LOCATOR, "Locator:", T_BAND2, "Band", T_POINTS, "Points", T_AVG, "AVG", T_INIT_HTTPD, "Initializing HTTP server", T_FREE_HTTPD, "Terminating HTTP server", T_NO_CONTEST_OPENED, "

No contest opened

\n", T_NO_CONTEST_OPENED2, "No contest opened", T_STATS, "Statistics", T_BAND_NOT_FOUND, "Band not found", T_BAND_C_NOT_FOUND, "

Band %c not found

", T_QSOS_IN_DATABASE, "qsos in database", T_TUCNAK_ONLINE_LOG, "Tucnak online log", T_DATE2, "Date", T_UTC, "UTC", T_CALL, "Call", T_CALL_NOT_FOUND, "Call not found", T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d", T_FREE_TERM, "Terminating terminal", T_TERM_KEYMAPS, "Terminating keymaps", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AcKST", T_HK_ACKST, "A", T_MISTAKE, "Oh mistake", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "Ask for sked", T_HK_ASK_FOR_SKED, "K", T_MESSAGE, "Message", T_HK_MESSAGE, "M", T_AC_INFO, "A/C info", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n", T_RESOLVED, "*** Resolved ", T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n", T_SENDING_SH_US, "*** Sending /sh us ...\n", T_SKIP_LINE, "Skip line %d '%s'", T_CANT_CREATE_HOME, "Can't create home directory '%s'", T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)", T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s", T_INIT_MAP, "Initializing polar map", T_DISABLE_SAVER, "Disabling screensaver", T_STARTING_TUCNAK, "Starting Tucnak", T_FREE_MAP, "Terminating polar map", T_INIT_MASTERDB, "Initializing master database", T_FREE_MASTERDB, "Terminating master database", T_LOAD_MASTERDB, "Loading master database", T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s", T_DIRECTORY_SCAN, "Directory scan", T_V3_COMPATIBILITY, " (v3 compatibility)", T_RELOAD_INTERFACES, "Reload interfaces", T_SET_READONLY, "Set read-only", T_CHANGE_TYPE, "Change type", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Open connection", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Kill connection", T_HK_KILL_CONNECTION, "K", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Export to text file", T_ADD_CONTEST, "Add contest", T_HK_ADD_CONTEST, "O", T_ADD_FILES, "Add file(s)", T_HK_ADD_FILES, "F", T_ADD_CONTESTS, "Add contests", T_HK_ADD_CONTESTS, "O", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Crash test", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Int.error test", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Dump RW bands and hashes", T_HK_DUMP_RW_BANDS, "D", T_UPDATE, "Update Tucnak", T_HK_UPDATE, "U", T_SETTINGS, "Settings", T_HK_SETTINGS, "S", T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net", T_HK_UPLOAD_TO_VHFNET, "V", T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "U", T_VOIP_SPY, "Voip spy", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "End voip spy", T_HK_END_VOIP_SPY, "Y", T_OLD_TEST_NO_SPY, "Contest is old, spy is not available", T_NETWORK_SCAN, "Network scan", T_HTTPD_OPTIONS, "HTTPD options", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "A/C options", T_HK_AC_OPTIONS, "P", T_SDR_OPTIONS, "SDR options", T_HK_SDR_OPTIONS, "R", T_OTHER, "Other:", T_NONE, "None ", T_RSTS2, "RST-S", T_RSTR2, "RST-R", T_QSONRR2, "QSONR-R", T_EXC2, "EXC", T_UNUSED, "Unused ", T_USED_6, "Used (6)", T_OPT_6, "Opt. (6)", T_USED_4, "Used (4)", T_OPT_4, "Opt. (4)", T_FREE, "Free ", T_VERIFIED, "Verified", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Confirm WWL", T_CONFIRM_EXC, "Confirm EXC", T_FONT_SIZE, "Font size: ", T_DXC_HOSTNAME, "DXC Hostname:", T_TCP_PORT, "TCP Port:", T_DXC_USERNAME, "DXC Username:", T_PASSWORD, "Password:", T_KST_USERNAME, "KST Username:", T_KST_YOURNAME, "KST Yourname:", T_SDR, "SDR", T_PARPORT, "parport", T_TTYS, "ttys", T_AUDIO_SUBSYSTEM, "Audio subsystem:", T_PLAYBACK_VOLUME, "Playback volume", T_CAPTURE_VOLUME, "Capture volume", T_ENABLE_REMOTE_CONNECT, "Enable remote connect", T_TRACE_RIG, "Trace rig", T_TRACE_KEYS, "Trace keys", T_SAVE_RESTART, "You must save configuration and restart Tucnak", T_FULLSCREEN, "Fullscreen", T_TOUCH, "Use touch control", T_ALT_QWER, "Alt turns QWER.. to 1234..", T_NO_LOCKS, "No device locks", T_PORTRAIT_ORIENTATION, "Portrait orientation", T_REVERSE, "Reverse", T_CHOOSE_RIG, "Choose rig", T_RIG_D, "Rig %d", T_NEW_RIG, "New rig", T_ENABLED, "Enabled", T_SET_PTT_ON_RADIO, "Set PTT on radio", T_DISABLED, " (disabled)", T_ADD_RIG, "Add rig", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rotator %d", T_ENABLE, "Enable", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Show private informations", T_LOAD_FROM_NET, "Load from network", T_LOAD_CWDB, "Load C_W database", T_LOAD_NAMEDB, "Load Name database", T_LOAD_QRVDB, "Load QRV database", T_READONLY_BANDS, "Read-only bands", T_ENABLE_AC, "Enable A/C", T_AC_URL, "Alternative URL for flightradar data", T_K_FACTOR, "Troposphere k_factor", T_AC_AREA_WIDTH, "Reflection area width in km", T_AC_EL_ANGLE, "Minimal elevation angle", T_AC_MAX_EL_ANGLE, "Maximal elevation angle", T_AC_MIN_DURATION, "Minimal reflection duration in sec", T_AC_MAX_DIFF, "Max difference of incidence and reflection angles", T_BAD_NUMBER_RANGE, "Bad number range", T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate", T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder", T_NO_DEVICE, "No device", T_IQ_SOURCE, "IQ source:", T_WAV_FILE, "WAV file", T_WAV_FILE_NAME, "WAV file name", T_AF_OUTPUT, "AF output:", T_AF_SAMPLE_RATE, "AF sample rate", T_BLOCK_SIZE, " Block size", T_CW_FILTER, " CW filter", T_TO_HZ, "to [Hz]", T_SSB_FILTER, " SSB filter", T_INIT_NAMEDB, "Initializing name database", T_FREE_NAMEDB, "Terminating name database", T_LOAD_NAMEDB2, "Loading name database", T_INIT_NET, "Initializing network", T_FREE_NET, "Terminating network", T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops", T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)", T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)", T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s", T_TIME_WAS_SET, "Time was set", T_FAILED_TO_SET_TIME, "Failed to set time", T_INIT, "INIT", T_CONNECTING, "CONNECTING", T_CONNECTED, "CONNECTED", T_WAIT_ACK, "WAIT_ACK", T_DISCONNECTED2, "DISCONNECTED", T_DEAD, "DEAD", T_LONG_XFER, "LONG_XFER", T_AUTHENTICATED_USER_S, "Authenticated user %s", T_BAD_AUTHENTICATION_S, "Bad authentication %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT", T_LONG_TRANSFER_FINISHED, "Long transfer finished", T_INIT_NTP, "Initializing NTP monitor", T_FREE_NTP, "Terminating NTP monitor", T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP", T_INIT_SPEAKER, "Initializing PC speaker", T_FREE_SPEAKER, "Terminating PC speaker", T_CANT_PLAY, "Can't play %s - %s", T_CANT_SEEK_TO_END, "Can't seek to end %s - %s", T_CANT_SEEK_TO_START, "Can't seek to start %s - %s", T_CANT_OPEN, "Can't open %s %s", T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Can't set %s to EPP mode %s", T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s", T_CANT_CLAIM, "Can't claim %s %s", T_INIT_QRVDB, "Initializing QRV database", T_FREE_QRVDB, "Terminating QRV database", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AcKst", T_START, "Start", T_DUR, "Dur", T_NR, "NR", T_TEXT2, "Text", T_16_SORT, "1-6: sort, ", T_A_ALL, "A: all", T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search", T_LOAD_QRVS, "Loading qrvs", T_UNSPECIFIED, "unspecified", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBs CWr", T_CWS_SSBR, "CWs SSBr", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n", T_FOUND_D_ERRORS, "Found %d error%s while reading %s", T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net", T_REGISTRATED_ROTATORS, "Registrated rotators:", T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n", T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread", T_INIT_ROTARS2, "Initializing rotators", T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n", T_ROTAR_ERROR_S, "Rotar error: %s", T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe", T_CANT_READ_FROM, "Can't read from", T_CANT_WRITE_TO, "Can't write to", T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Update", T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Bad update file name", T_CANT_EXECUTE_INSTALLER, "Can't execute installer, ", T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed", T_UPDATE_FAILED, "Update failed", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply.", T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s", T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install.", T_NO_NEW_VER, "No new version available.", T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests...", T_CHOOSE_CONTEST, "Choose contest", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload", T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form...", T_ALL_EDI_FILES_PROCESSED, "All EDI files processed.", T_UPLOADING_LOG_FILE_S, "Uploading log file %s ...", T_UPLOADING_BAND_S, "Uploading band %s", T_CONFIRMING_LOG, "Confirming log...", T_RESULT_ERROR, "*** Result: ERROR please read error message above", T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s", T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores...", T_LOGS_UPLOADED, "Logs uploaded.", T_HTTP_STATUS, "HTTP status: ", T_LOG_UPLOAD, "Log upload", T_VOIP_NO_INITIALIZED, "VOIP no initialized", T_PAGE_NAME, "Page name", T_OVERWRITE_EXISTING_FILES, "Overwrite existing files", T_SITE_URL, "Site URL", T_USERNAME, "Username", T_PASSWORD2, " Password", T_EXPORT_MAP, "Export map", T_EXPORT_CHART, "Export chart", T_MEDIAWIKI_UPLOAD2, "Mediawiki upload", T_BAD_AUTH_USER, "Bad auth user %s != %s", T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n", T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame", T_CANT_GET_FMTS, "Can't get supported audio formats: %s", T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s", T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s", T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s", T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s", T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s", T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s", T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s", T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d", T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s", T_RECORD2, "record", T_PLAYBACK, "playback", T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s", T_CANT_STOP_PA, "Can't stop PortAudio stream: %s", T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s", T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\"", T_CANT_SET_STROBE, "Can't set parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error", T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n", T_INIT_SERIAL_DEVICES, "Initializing serial devices", T_BAD_CHECKSUM, "Bad checksum", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Bad response", T_UNKNOWN_FUNCTION, "Unknown function", T_UNKNOWN_ERROR_CODE, "Unknown error code", T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n", T_WAIT_FOR_SDR_THR, "Waiting for SDR thread", T_QSO_REQ_FROM_SP, " QSO request from S&P ", T_QSO_REQ_SENT, " QSO request sent to RUN ", T_GO, " GO! ", T_LOCATION_UNKNOWN, "Location unknown", T_DEGREE, "deg", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s", T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe", T_INIT_SSB_CQ, "Initializing SSB CQ", T_FREE_SSB_CQ, "Terminating SSB CQ", T_NO_FILE, "No file specified", T_UNSUP_CHANNELS, "Unsupported number of channels = %d", T_FLOAT_UNSUPP, "Float point files are not supported", T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing", T_REC_DISABLED, "recording disabled", T_CONTEST_TOO_OLD, "contest too old", T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Error writing file %s: %s", T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording", T_NO_DISK_SPACE, "Not enough free disk space for file", T_CANT_PLAY_FILE, "Can't play file %s - %s", T_CANT_WRITE_SS, "Can't write to file %s - %s", T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded", T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template", T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n", T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***", T_LOADING_S, "Loading %s", T_INVALID_WINDOW_TYPE, "invalid window type %d\n", T_INIT_RIG, "Initializing rig control %d", T_RIG_ERROR, "Rig error: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n", T_FREE_RIG, "Terminating rig control %d", T_WAIT_FOR_RIG_THR, "Waiting for rig thread", T_INVALID_PARAM, "Invalid param.", T_RIG_INVALID_CONFIG, "Invalid config.", T_RIG_NOT_ENOUGH_MEM, "Not enough mem.", T_RIG_NOT_IMPLEMENTED, "Not implemented", T_RIG_COMM_TIMEOUT, "Comm. timeout", T_RIG_IO_ERROR, "IO error", T_RIG_INTERNAL_ERROR, "Internal error", T_PROTOCOL_ERROR, "Protocol error", T_RIG_COMMAND_REJECT, "Command reject.", T_RIG_ARG_TRUNCATED, "Arg. truncated", T_RIG_F_NOT_AVAILABLE, "F not available", T_RIG_VFO_NOT_TARGET, "VFO not target.", T_RIG_ERROR_ON_BUS, "Error on bus", T_RIG_BUS_COLLISION, "Bus collision", T_RIG_INVALID_ARG, "Invalid arg.", T_RIG_INVALID_VFO, "Invalid VFO", T_RIG_ARG_OUT_OF_DOM, "Arg out of dom.", T_ERROR_D, "Error %d", T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)", T_CANT_SET_GRAPHICS2, "Can't set graphics mode", T_WAIT_SDL_THR, "Waiting for SDL event thread", T_FREE_GRAPHICS, "Terminating graphics", T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s", T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s", T_CANT_READ_LOG_FILE, "Can't read log file %s", T_CANT_UPLOAD_LOG, "Can't upload log: %s", T_CANT_CONFIRM_LOG, "Can't confirm log: %s", T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s", T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing", T_CALL2, "Call:", T_QTH, "QTH:", T_DATE3, "Date:", T_QSOS2, "QSOs:", T_POINTS2, "Points:", T_WWLS, "WWLs:", T_DXCCS, "DXCCs:", T_AVG2, "AVG:", T_PTSQSO, "pts/qso", T_TOP_10_CALLS, "Top 10 calls", T_OPERATOR2, "Operator", T_MODE2, "Mode", T_TOP_10_WWLS, "Top 10 WWLs", T_CANT_UPLOAD_FILE_S, "Can't upload file: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s", T_FILE_ALREADY_EXISTS, "File already exists: %s", T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s", T_CANT_EDIT_PAGE, "Can't edit page: %s", T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s", T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s", T_EDITING_CONTEST_PAGE, "Editing contest page...", T_ALL_DONE, "All done.", T_UPLOADING_FILE, "Uploading file %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s", T_QUERYING_EDIT_TOKEN, "Querying edit token", T_CANT_LOGIN, "Can't log in (2): %s", T_CANT_LOGIN2, "Can't log in (2), wiki says: %s", T_CANT_LOGIN1, "Can't log in (1): %s", T_LOGGING_IN, "Logging in...", T_EXPORTING_FILES, "Exporting files...", T_INIT_WIZZ, "Initializing contest wizard", T_FREE_WIZZ, "Terminating contest wizard", T_LOAD_WIZZ_DATA, "Loading contest wizard data", tucnak-4.04/intl/gen-conly0000755000175000017500000000117512444507763012456 00000000000000#!/bin/sh export LC_CTYPE="ISO-8859-2" echo echo Generating language table. languages=`cat index.txt` if [ -n "$languages" ]; then ( n=0 echo '/* Automatoticaly generated by gen-intl */' for i in $languages; do echo -n $i" " 1>&2 echo echo 'struct translation translation_'$i' [] = {' echo ' {0, NULL},' cat $i.lng | sed 's/^\(.*\),/ \{\1\},/' echo ' {0, NULL}' echo '};' n=`expr $n + 1` done echo echo 'struct translation_desc translations [] = {' for i in $languages; do echo ' {translation_'$i'},' done echo ' {NULL}' echo '};' echo ) | sed 's/ //g' > ../src/language.inc rm -f ../src/language.o echo echo Done. fi echo tucnak-4.04/intl/Makefile.am0000644000175000017500000000042512050131653012646 00000000000000datarootdir = @datarootdir@ INTL=castellano.lng czech.lng english.lng french.lng german.lng polish.lng portuguese.lng slovak.lng EXTRA_DIST = $(INTL) fixlang.pl gen-conly gen-intl index.txt all: ../src/language.inc ../src/language.inc: $(INTL) ./fixlang.pl ./gen-intl tucnak-4.04/intl/german.lng0000644000175000017500000012017412535256134012603 00000000000000T__CHAR_SET, "iso8859-2", T__LANGUAGE, "Deutsch", T_ABOUT, "ber...", T_BAD_NUMBER, "Ungltige Zahl", T_BAD_STRING, "Ungltiger Text", T_BASIC_HELP, "Drcke F10 fr Menu.\nViel Spa!", T_BLOCK_CURSOR, "Blockiere Cursor", T_CANCEL, "Abbrechen", T_CHARACTER_SET, "Zeichensatz", T_COLOR, "Farbe", T_COPYING, "Lizenz", T_DIFFERENCE, "Unterschied", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Mchten sie Tucnak wirklich verlassen?", T_EMPTY_STRING_NOT_ALLOWED, "Leerer Text nicht erlaubt!", T_ERROR, "Fehler", T_WARNING, "Warnung", T_EXIT, "Verlassen", T_EXIT_TUCNAK, "Tucnak verlassen", T_FILE, "Datei", T_FULL_SCREEN, "Vollbild", T_HELP, "Hilfe", T_HK_ABOUT, ".", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "Z", T_HK_COPYING, "K", T_HK_EXIT, "E", T_HK_FILE, "D", T_HK_FULL_SCREEN, "V", T_HK_HELP, "H", T_HK_LANGUAGE, "S", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "B", T_HK_SETUP, "E", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "F", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R Rahmen", T_LANGUAGE, "Sprache", T_LAST, "letzte", T_LINUX_OR_OS2_FRAMES, "Linux oder OS/2 Rahmen", T_MEMORY_INFO, "Speicherinfo", T_NO_FRAMES, "Keine Rahmen", T_NO, "Nein", T_NUMBER_EXPECTED, "Zahl im Feld erwartet", T_NUMBER_OUT_OF_RANGE, "Zahl auerhalb des gltigen Bereichs", T_OK, "OK", T_OS_SHELL, "Betriebssystem-Fenster", T_RESTRICT_FRAMES_IN_CP850_852, "Beschrnke Rahmen in cp850/852", T_UTF_8_IO, "UTF-8 Ein-/Ausgabe", T_SCREEN, "Bildschirm", T_SETUP, "Einstellungen", T_TERMINAL_OPTIONS, "Terminal-Optionen", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-hnliches V/U/SHF Contest Log", T_TWTERM, "Twterm", T_USE_11M, "Benutze ^[[11m", T_VT_100_FRAMES, "VT 100 Rahmen", T_WELCOME1, "Willkommen bei Tucnak!", T_WELCOME2, "Geben Sie bitte Ihre Rufzeichen und Locator:", T_WELCOME, "Willkommen", T_XTERM, "Xterm", T_YES, "Ja", T_CANT_APPEND_S, "Kann nicht an Datei %s anfgen!", T_CANT_WRITE, "Kann nicht in Datei schreiben!", T_CANT_WRITE_S, "Kann nicht in Datei %s schreiben!", T_CANT_READ, "Kann nicht aus Datei lesen!", T_CANT_READ_S, "Kann nicht aus Datei %s lesen!", T_SAVED_S, "%s gespeichert", T__CW_, " CW ", T_CWW_KEYS, " Bildauf +, Bildab - CW Geschwindigkeit ", T_CANT_OPEN_S, "Kann %s nicht ffnen!", T_CANT_LOCK, "Kann nicht sperren!", T_CANT_LOCK_S, "Kann %s nicht sperren!", T_LOADING_CTEST_S, "*** Lade Contest %s", T_NO_FILES, "Keine Dateien im Verzeichnis!", T_BAND_EXIST_SS, "WARNUNG! Band %s (%s) existiert bereits", T_BAND_NOT_OPEN, "Band ist in diesem Contest nicht aktiv", T_NO_BANDS, "Keine Bnder zu laden", T_CANT_SET_GR_S, "Kann keinen Grafik-Modus setzen-%s", T_GCALL, "Rufzeichen: %s", T_GWWL, "Locator: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Ges.: %s %s", T_GRCV, "Empf.: %s %s", T_GTIM, "Zeit: %s", T_GOPE, "Op: %s", T_GREM, "Bem.: %s", T_GWKD, "Wkd: %d", T_GINC, "income: %d", T_GLON, "Lnge:%7.2f %-6s", T_GLAT, "Breite:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Bitte warten ", T__RO_BAND, " SWL-Band", T_COPYING_VER, "Das ultimative Contestlog - Unerlsslich wie gewohnt\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nDieses Programm ist freie Software. Sie knnen es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation verffentlicht, weitergeben und/oder modifizieren, entweder gem Version 2 der Lizenz oder (nach Ihrer Option) jeder spteren Version. Die Verffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe . ", T_CTEST_ACTIVE, "Contest ist bereits aktiv ", T_NO_CTESTS, "Keine Conteste", T_NO_CCLOSE, "Kein Contest zum Schlieen", T_REALLY, "Wirklich?", T_CLOSE_CTEST, "Mchten Sie diesen Contest wirklich schlieen?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw Elemente, %d wc Elemente, letztes %d\n", T_EXC, "Exc: %s %d exc Elemente, %d cxe Elemente, letztes %d\n", T_VEXC, "Besttigte EXC: %d Elemente\n", T_DWI, "D_W: %d Prfixe, %d Lnder, %d Locator\n", T_NAMES, "Namen: %d Namen\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Speicher:", T_NMY, " Mein: ", T_NGLOBAL, "Global: ", T_NMASTER, "Master: ", T_NREMOTE, "Remote: ", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Netzwerk Info", T_NO_BANDS_QRV, "Keine Bnder QRV", T_NO_BANDS_CONF, "Keine Bnder konfiguriert", T_NOT_AVAILABLE, "Nicht verfgbar", T_ADD_SUBWIN, "Fge Fenster hinzu", T_HK_ADD_SUBWIN, "F", T_CLOSE_SUBWIN, "Schliee Fenster", T_HK_CLOSE_SUBWIN, "S", T_HK_NINFO, "N", T_NEW, "Neu...", T_HK_NEW, "N", T_NEW_WIZZ, "Neu mit Assistent", T_HK_NEW_WIZZ, "A", T_NEW_NET, "Neu vom Netzwerk...", T_HK_NEW_NET, "T", T_OPEN, "ffnen", T_HK_OPEN, "F", T_SAVE, "Speichern", T_HK_SAVE, "S", T_EXPORT_EDI, "Exportiere als EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportiere als Report", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportiere als ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportiere als HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importiere EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importiere ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importiere swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Contestoptionen", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Schliee Contest", T_HK_CLOSE_CONTEST, "K", T_ADD_ERROR, "Fge FEHLER hinzu", T_HK_ADD_ERROR, "F", T_CHOP, "Wechsle Operator", T_HK_CHOP, "O", T_CW_CTEST, "Aktualisiere C_W von Contest", T_HK_CW_CTEST, "C", T_CW_BAND, "Aktualisiere C_W von Band", T_HK_CW_BAND, "B", T_EXC_CTEST, "Aktualisiere EXC DB vom Contest", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Aktualisiere EXC DB vom Band", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importiere DL8EBW Datenbank", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Kein Contest", T_NO_PEERS, "Keine Peers gefunden", T_NO_MASTER, "Master ist nicht verfgbar!", T_CTEST_DEF, "Contestvorgaben", T_HK_CTEST_DEF, "V", T_BAND_DEF, "Bandvorgaben", T_HK_BAND_DEF, "B", T_HK_RESPOP, "P", T_CW_DAEMON, "CW keying", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Auto. speichern", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Lade cfg vom Netz", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Lade C_W vom Netz", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Speichere Konfiguration", T_HK_SAVE_CFG, "S", T_CONTEST, "Contest", T_HK_CONTEST, "K", T_EDIT, "Editieren", T_HK_EDIT, "E", T_BANDS, "Bnder", T_HK_BANDS, "B", T_SUBWINS, "Fenster", T_HK_SUBWINS, "F", T_BAND_SETTINGS_SC, "Bandeinstellungen fr Band %c %s", T_QRV_ON_THIS_BAND, "QRV auf diesem Band", T_QRV_IN_THIS_CTEST, "QRV in diesem Contest", T_READ_ONLY, "Nur SWL", T_MULTI, "Mehrmann", T_SINGLE, "Einmann", T_CHECK, "Kontrolllog", T_TXEQUIP, " TX Ausrstung:", T_POWER, " Leistung:", T_RXEQUIP, " RX Ausrstung:", T_ANTENNA, " Antenne:", T_AGLASL, " AGL;ASL:", T_OPS, " Operator:", T_SPACES1, " ", T_REMARKS, " Bemerkungen:", T_OK_SECTION_SINGLE, "Klasse fr Einmann-Kategorie:", T_OK_SECTION_MULTI, "Klasse fr Mehrmann-Kategorie:", T_QRG_MIN, "Bandgrenzen von", T_QRG_MAX, "bis [kHz]", T_ADIFBAND, "ADIF Bandname", T_SKEDQRG, "QRG fr skeds (freies Format)", T_BAND_LO, "Transverter LO QRG [Hz]", T_BANDSW, "Wert fr Bandwechsel", T_RESPOP, "Verantwortlicher OP", T_NAME, " Name:", T_CALLSIGN, " Rufzeichen:", T_ADDRESS, " Adresse:", T_POSTCODE, " PLZ:", T_CITY, " Stadt:", T_COUNTRY, " Land:", T_PHONE, " Telefon:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --kein -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " --kein -- ", T_TP1, " 1 Multiplikativ (Std. IARU)", T_TP2, " 2 Additiv (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Neuer Contest", T_CANT_TRUNC, "Kann desc Datei nicht abschneiden", T_NAME_OF_CTEST, "Name des Contests:", T_CALL_OF_CTEST, "Rufzeichen im Contest:", T_CLUB_ST, "Clubstation:", T_YOURWWL, " Locator:", T_YOUREXC, " Austausch:", T_DATE_OF_CTEST, "Datum des Contests:", T_QSOUSED, "QSO-Nr. benutzt", T_QSOPM, " QSOp Multiplikator:", T_WWLUSED, "Locator benutzt", T_WWLB, "Locator Bonus:", T_WWLM, "Locator Multiplikator:", T_EXCUSED, "Austausch benutzt", T_EXCB, "Austausch Bonus:", T_EXCM, "Austausch Multiplikator:", T_EXCNAME, "EXC Name:", T_PREFM, "PREF Multi:", T_DXCB, "DXCC Bonus:", T_DXCM, "DXCC Multiplikator:", T_RSTUSED, "RST benutzt ", T_DEFRS, "Vorgabe RS:", T_DEFRST, "Vorgabe RST:", T_ALSORSTR, "Auch fr RST-R", T_QP_CALC, "Kalkulation QSOp:", T_TO_CALC, "Kalkulation Total:", T_EDI_PROP, "EDI Eigenschaften", T_RESPOP2, "Verantwortlicher OP", T_EDIT_QSO_CD, "Editiere QSO %c: %03d", T_CALLSIGN2, "Rufzeichen:", T_CLUB, " Club:", T_PADR1, " Adresse 1:", T_PADR2, " Adresse 2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, " Operator:", T_DATE, " Datum:", T_MODE, " Mode:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO-Nr s:", T_QSONRR, "QSO-Nr r:", T_OPTEXCH, " Austausch:", T_WWL, "Locator:", T_REMARK, "Anmerkung:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Sende Sked", T_SELECT, "Auswhlen", T_QRG, " Frequenz:", T_WE_CALL, " Wir rufen", T_BAND, " Band:", T_TIME, " Zeit:", T_DUPE_QSO, "Doppel-QSO!", T_CLEAR_THIS_QSO, "Lsche dieses QSO", T_EDIT_OLD_QSO, "Editiere altes QSO", T_MARK_OLD_QSO, "Markiere altes QSO als FEHLER", T_STORE_AS_DUPE, "Speichere als DUPE", T_BAD_CALL, "Dies scheint kein Rufzeichen zu sein", T_N_CALLSIGN, "\nRufzeichen:", T_AUTOSAVE_OPTS, "Optionen autom. speichern", T_SAVE_AQ, "Speichere auf Festplatte nach QSOs:", T_SAVE_AM, "Speichere auf Festplatte nach Minuten:", T_FSYNC, "Fsync", T_SAVE_AQF, "Speichere auf Diskette nach QSOs:", T_SAVE_AMF, "Speichere auf Diskette nach Minuten:", T_DO_MOUNT, "Mount falls nicht in /etc/mtab (unbenutzt)", T_FLOPPY_PATH, "Pfad zur Diskette:", T_MOUNT_CMD, "Mount Befehl: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Leer", T_SW_DXC, "DXCl", T_SW_STAT, "Stat", T_SW_MAP, "Karte", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "Unvollstndige QSOs", T_DXC, "DX Cluster", T_STAT, "Statistik", T_SWAP, "Swap (N/A)", T_MAP, "Grafische Karte", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_KST, "KST", T_CMD, "Kommando", T_RESPAWN, "Neu starten [Sek]:", T_UNFI_QSO, "Unvollstndiges QSO", T_N_REMARK, "\nBemerkung:", T_NO_CQ, "Kein CQ definiert", T_TEXT, "Text:", T_SPEED, "Geschw. [WPM]:", T_REPEAT, "Wiederholen", T_DELAY, "Verzgerung [0.1s]:", T_ALLOW_UNDEF, "Erlauben falls einige Eintrge undefiniert sind", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Pfad:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP Port:", T_DEVICE, "Keyer:", T_INIT_SPEED, "Startgeschw. [WPM]:", T_INIT_WEIGHT, "Gewichtung (30-70):", T_WPMFROM, "WPM-Bereich von", T_WPMTO, "bis", T_USE_SPK, "Benutze Lautsprecher", T_LEADIN, "PTT-Verzgerung in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignoriere Interface %-5s", T_IGN_ADDR_S, "Ignoriere Adresse %s", T_ADD_IFACE_SSD, "Interface=%-5s BCAST=%s:%d hinzugefgt", T_FORCED_ADDR, "Erzwinge Adresse %s", T_TIMESKEW, "WARNUNG! Zeitabweichung %d entdeckt gegen %s:%d !\n", T_DISCONNECTING_SD, "Trennen von %s:%d", T_ACCEPTED_SD, "Akzeptiere %s:%d (%s)", T_CONNECTING_SD, "Verbinden mit %s:%d", T_CONNECTED_SD, "Verbunden mit %s:%d", T_DISCONNECTED_SD, "Getrennt von %s:%d", T_LOADED_CFG_SSSS, "Konfiguration geladen fr %s %s (%s,%s)", T_LOADED_CW, "C_W Data geladen", T_PEER_NOT_FOUND, "FEHLER! Peer %s nicht gefunden", T_CANT_CREATE_HOME_S, "Kann Verzeichnis %s nicht erstellen", T_CANT_LOAD_CFG, "Kann Konfiguration nicht laden!\nProgramm kann nicht richtig arbeiten!", T_ERR_RC, "Einige Fehler beim Einlesen der Konfigurationsdatei gefunden!\nDiese Datei wurde vielleicht mit einer neueren Version gespeichert!\nKonfiguration nicht speichern, sonst knnen Daten verloren gehen!", T_SES_QTR, " QTR ", T_SES_QRA, " RUFZ. ", T_SES_RST, " RST-S-Nr RST-R-Nr ", T_SES_QTH, " LOC ", T_SES_QRB, " Pkt/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Bemerkung ", T_SES_WELCOME, "Willkommen bei Tucnak! ", T_SES_PRESS_F10, "Drcke F10 fr das Men.", T_SES_HAVE_FUN, "Viel Spa.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-P. EXCH LOCs DXCCs Tot.P. AVG", T_SES_AVG, " Sch: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " LOCs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " gearb. LOCs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOs in LOCs: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Statistik fr Band %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, " QSOs aller Bnder: %d", T_SF_ALLBQSOP, " QSOp aller Bnder: %d", T_SF_ALLBPTS, "Punkte aller Bnder: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO-Punkte: %d", T_SF_PTS, "Punkte: %d", T_SF_AVG_PTS, "Durchschn. Pkt/QSO: %5.2f", T_SF_AVG_QSOP, "Durchschn. QSO-P/QSO: %5.2f", T_BAND_RO, "Band ist nur SWL", T_THIS_BAND, "Dieses Band", T_OTHER_BANDS, "Andere Bnder", T_CW_DB, "C_W Datenbank", T_PROC_EXITED, "*** Prozess beendet\n", T_WE_CALL2, "Wir rufen", T_WE_LISTEN, "wir hren", T_QSL, "QSL versprochen", T_RECORD, "Audio aufnehmen", T_MAXMIN, " Max. Aufnahmezeit", T_TEMPLATE, "Vorgabe fr Dateiname der Aufnahme:", T_PCM8, "8 Bit PCM", T_PCM16, "16 Bit PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Kanle", T_SAMPLERATE, "Abtastrate", T_FILLOP, "Operator eintragen", T_HK_FILLOP, "O", T_RECAQRB, "QRB,QTF neu berechnen", T_HK_RECAQRB, "Q", T_NETWORK, "Netzwerk & Verfolgung", T_HK_NETWORK, "K", T_IF_IGNORE, " Ignoriere Interfaces:", T_IP_IGNORE, " Ignoriere Netzwerke:", T_IP_ANNOUNCE, " Senden an Netze:", T_TRACE_BCAST, "Verfolge Broadcasts ", T_TRACE_SOCK, "Verfolge Sockets", T_TRACE_RECV, "Verfolge empf. Daten", T_TRACE_SEND, "Verfolge ges. Daten", T_TRACE_QSOS, "Verfolge QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Nicht gemountet: %s", T_RECSRC_NONE, "Nicht setzen", T_RECSRC_MIC, "Mikrofon", T_RECSRC_LINE, "Line in", T_NEW_CALL, "Neu!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV auf %s", T_SKED_QRG, "QRG fr skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG fur skeds:", T_GRAB_BAND, "Schnapp Bandkontrolle", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Erzwinge RUN-Mode", T_HK_FORCE_RUN, "R", T_EXPORT_STATS, "Exportiere Statistiken", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotor", T_HK_ROTAR, "R", T_AZIMUTH, " Azimut", T_ELEVATION, "Elevation", T_CH_SPY, "Spioniere...", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Spionieren beenden", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Exportiere Titelseite", T_HK_EXPORT_TITLPAGE, "L", T_BREAK_RECORD, "Stoppe Aufzeichnung", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Fr alle Bnder ndern", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. Nr. von Teilen (>=2)", T_PLAY_LAST, "Spiele letzte Aufzeichnung", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Verschiedene Optionen", T_HK_MISCOPTS, "P", T_LOGLINES, "Logzeilen: ", T_SKEDSHIFT, "Sked-Verzgerung (Minuten): ", T_STARTBAND, "Anfangsband: ", T_GFX_X_CH, "Bildschirmauflsung (Zeichen):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Bildschirmauflsung (Pixel):", T_GFX_Y_PX, "x", T_CALL_INFO, "Rufzeicheninformationen", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/Stunde: %d", T_SF_QSOP_HOUR, "Punkte/Stunde: %d", T_SF_QSOP_50QSO, "Punkte/50 QSOs: %d", T_SF_HOURS, " Stunden", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Stunde Punkte QSOs AVG pts/QSO", T_QSO_CHECK, "QSO-Kontrolle", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "Minimaler freier Festplattenspeicher [MiB]", T_FORMAT, "Aufzeichnungsformat", T_PCM_PLAY, "Alsa Abspielgert", T_PCM_REC, "Alsa Aufzeichengert", T_PERIOD, "Wiederholzeit [ms]", T_BUFFER, "Bufferzeit [ms]", T_ALSA_MIXER, "Alsa Mixergert", T_CAPTURE, "Ausgabegert", T_DSP, "Pfad zu /dev/dsp", T_MIXER, "Pfad zu /dev/mixer", T_RECSRC, "Aufnahmequelle", T_PA_PLAY, "Portaudio playback device", T_PA_REC, "Portaudio capture device", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Schrgstrich-Taste", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Genaue Frequenz eingeben [Hz]", T_BAD_QRG, "Falsche Frequenz", T_CALLSIGN3, "Rufzeichen", T_CALLSIGN_KST, "KST-Stationsrufzeichen:", T_CANT_INIT_WINKEY_S, "Kann winkey nicht finden auf %s", T_WINKEYOPTS, "Winkey-Optionen", T_WK_WK2, "Winkey2 Schnellinitialisierung", T_WK_USEPOT, "Benutze Geschwindigkeitspoti", T_WK_USEBUT, "Benutze Knpfe", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (linkshndig)", T_RIGOPTS, "Funkgertoptionen", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Gert:", T_RIG_MODEL, "Modell", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV-Adresse (hex)", T_RIG_FREQSHIFT, "Freq.versatz SSB->CW", T_RIG_CHOOSE, "Whlen", T_ROTAROPTS, "Rotoroptionen", T_HK_ROTAROPTS, "I", T_DSSAVER, "Deaktiviere Bildschirmschoner", T_DESC, "Beschreibung", T_ROT_NONE, "Kein", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serien-#", T_ROT_ADD, "Neuer Rotor...", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Entferne Rotor", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beambreite", T_SADDR, "Kommunikationsadresse:", T_MODEL, "Modell:", T_ROT_REM_ROTSTR, "Rotor-Buchstabe fr Remote", T_QSOGLOB, "Globale QSO NR", T_PREFGLOB, "Globaler Prefix", T_NOT_RECORDING_S, "Nicht am Aufzeichnen - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", T_ROT_POLL_MS, "Poll interval [ms]:", T_VERSION, "Version", T_HK_VERSION, "V", T_REMOTE_HOST, " Remote host name:", T_REMOTE_PORT, " Remote TCP port:", T_REMOTE_PASS, " Remote Password:", T_STARTING_AC, "Starting A/C", T_STOPPING_AC, "Stopping A/C", T_ASL_5D_M, "ASL: %5d m", T_SPEED4D_KMH, "Speed:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Durat: %ld", T_EXPORTING_S, "Exporting %s", T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s", T_EXPORTING, "Exporting ...", T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables", T_LOADING_CHARTS, "Loading charts", T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control", T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in", T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi", T_CANT_CREATE_PIPE, "Can't create pipe", T_TERMINATING_CWDAEMON, "Terminating CW/PTT control", T_INIT_CWDB, "Initializing WWL database", T_TERM_CWDB, "Terminating WWL database", T_LOADING_CWDB, "Loading WWL database", T_QRV_ON, "QRV on: ", T_CANT_INIT_FTDI, "Can't init ftdi library for davac4", T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s", T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s", T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s", T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s", T_INIT_SOUNDCARD, "Initializing soundcard", T_NO_OSS, "OSS support not compiled in", T_NO_ALSA, "Alsa support not compiled in", T_NO_PORTAUDIO, "portaudio support not compiled in", T_NO_SNDFILE, "Libsndfile support not compiled in", T_NO_SNDPIPE, "Sndpipe support not compiled in", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Initializing DXCC database", T_FREE_DWDB, "Terminating DXCC database", T_LOAD_DWDB, "Loading DXCC database", T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n", T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n", T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n", T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n", T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n", T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n", T_CALL_ON_BAND_S, "Callsign on band %s is %s\n", T_LOCATOR_ON_BAND, "Locator on band %s is %s\n", T_QSO_CHECK_LIST, " Tucnak QSO check list\n", T_CALL_SN, " Call: %s\n", T_CONTEST_SN, "Contest: %s\n", T_DATE_SN, " Date: %s\n", T_CHECKING_S, "Checking %s", T_BAND_C_SN, " Band %c %s\n", T_SEEMS_TO_BE_OK, "Seems to be O.K.\n", T_CW_NOT_FOUND, "C_W: %s not found\n", T_0X_NOT_IN_DB, " 0x (not in database)", T_NAME_IS, "Name: %s's name is %s\n", T_NAME_UNKNOWN, "Name: %s's name is unknown\n", T_INIT_DXC, "Initializing DXcluster database", T_FREE_DXC, "Terminating DXcluster database", T_HK_SELECT, "S", T_HIDE, "Hide", T_HK_HIDE, "H", T_INFO, "Info", T_HK_INFO, "I", T_USE, "Use", T_HK_USE, "U", T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n", T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n", T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n", T_HOST_RESOLVED, "*** Host resolved ", T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n", T_CONNECTING_TO, "*** Connecting to %s ***\n", T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n", T_CONNECTED_SOCKET, "*** Connected socket %d ***\n", T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n", T_DISCONNECTED, "\n*** Disconnected ***\n", T_RESOLVING, "*** Resolving %s ***\n", T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s", T_SAVED, "Saved '%s'", T_LOADING_CONTEST, "Loading contest %s", T_LOADING_LOGFILE, "Loading logfile", T_LOADING_TALK, "Loading talk", T_SEARCH_FILES, "Search for contest files", T_LOADING_BAND, "Loading band %s", T_LOADING_SPY, "Loading spy", T_LOADING_HICALLS, "Loading hicalls", T_LOADING_QRV, "Loading qrv", T_LOADING_CHART, "Loading chart", T_SAVING_CONTEST, "Saving contest", T_UPD_INT_DATA, "Updating internal data", T_CALC_STATS, "Calculating statistics", T_ANN_OVER_NET, "Announcing over network", T_ACTIVATING_BAND, "Activating band %s", T_UPDATING_WKD, "Updating worked calls", T_UPDATING_QRBQTF, "Updating QRB&QTF", T_UPDATING_GAIN, "Updating gain chart", T_SEN_OVER_NET, "Sending info over network", T_INIT_EXCDB, "Initializing exchange database", T_FREE_EXCDB, "Terminating exchange database", T_INIT_FFT, "Initializing FFT analyse", T_FREE_FFT, "Terminating FFT analyse", T_INIT_ROTAR, "Initializing rotator control", T_FREE_ROTAR, "Terminating rotator control", T_LOCATOR, "Locator:", T_BAND2, "Band", T_POINTS, "Points", T_AVG, "AVG", T_INIT_HTTPD, "Initializing HTTP server", T_FREE_HTTPD, "Terminating HTTP server", T_NO_CONTEST_OPENED, "

No contest opened

\n", T_NO_CONTEST_OPENED2, "No contest opened", T_STATS, "Statistics", T_BAND_NOT_FOUND, "Band not found", T_BAND_C_NOT_FOUND, "

Band %c not found

", T_QSOS_IN_DATABASE, "qsos in database", T_TUCNAK_ONLINE_LOG, "Tucnak online log", T_DATE2, "Date", T_UTC, "UTC", T_CALL, "Call", T_CALL_NOT_FOUND, "Call not found", T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d", T_FREE_TERM, "Terminating terminal", T_TERM_KEYMAPS, "Terminating keymaps", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AcKST", T_HK_ACKST, "A", T_MISTAKE, "Oh mistake", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "Ask for sked", T_HK_ASK_FOR_SKED, "K", T_MESSAGE, "Message", T_HK_MESSAGE, "M", T_AC_INFO, "A/C info", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n", T_RESOLVED, "*** Resolved ", T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n", T_SENDING_SH_US, "*** Sending /sh us ...\n", T_SKIP_LINE, "Skip line %d '%s'", T_CANT_CREATE_HOME, "Can't create home directory '%s'", T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)", T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s", T_INIT_MAP, "Initializing polar map", T_DISABLE_SAVER, "Disabling screensaver", T_STARTING_TUCNAK, "Starting Tucnak", T_FREE_MAP, "Terminating polar map", T_INIT_MASTERDB, "Initializing master database", T_FREE_MASTERDB, "Terminating master database", T_LOAD_MASTERDB, "Loading master database", T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s", T_DIRECTORY_SCAN, "Directory scan", T_V3_COMPATIBILITY, " (v3 compatibility)", T_RELOAD_INTERFACES, "Reload interfaces", T_SET_READONLY, "Set read-only", T_CHANGE_TYPE, "Change type", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Open connection", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Kill connection", T_HK_KILL_CONNECTION, "K", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Export to text file", T_ADD_CONTEST, "Add contest", T_HK_ADD_CONTEST, "O", T_ADD_FILES, "Add file(s)", T_HK_ADD_FILES, "F", T_ADD_CONTESTS, "Add contests", T_HK_ADD_CONTESTS, "O", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Crash test", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Int.error test", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Dump RW bands and hashes", T_HK_DUMP_RW_BANDS, "D", T_UPDATE, "Update Tucnak", T_HK_UPDATE, "U", T_SETTINGS, "Settings", T_HK_SETTINGS, "S", T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net", T_HK_UPLOAD_TO_VHFNET, "V", T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "U", T_VOIP_SPY, "Voip spy", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "End voip spy", T_HK_END_VOIP_SPY, "Y", T_OLD_TEST_NO_SPY, "Contest is old, spy is not available", T_NETWORK_SCAN, "Network scan", T_HTTPD_OPTIONS, "HTTPD options", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "A/C options", T_HK_AC_OPTIONS, "P", T_SDR_OPTIONS, "SDR options", T_HK_SDR_OPTIONS, "R", T_OTHER, "Other:", T_NONE, "None ", T_RSTS2, "RST-S", T_RSTR2, "RST-R", T_QSONRR2, "QSONR-R", T_EXC2, "EXC", T_UNUSED, "Unused ", T_USED_6, "Used (6)", T_OPT_6, "Opt. (6)", T_USED_4, "Used (4)", T_OPT_4, "Opt. (4)", T_FREE, "Free ", T_VERIFIED, "Verified", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Confirm WWL", T_CONFIRM_EXC, "Confirm EXC", T_FONT_SIZE, "Font size: ", T_DXC_HOSTNAME, "DXC Hostname:", T_TCP_PORT, "TCP Port:", T_DXC_USERNAME, "DXC Username:", T_PASSWORD, "Password:", T_KST_USERNAME, "KST Username:", T_KST_YOURNAME, "KST Yourname:", T_SDR, "SDR", T_PARPORT, "parport", T_TTYS, "ttys", T_AUDIO_SUBSYSTEM, "Audio subsystem:", T_PLAYBACK_VOLUME, "Playback volume", T_CAPTURE_VOLUME, "Capture volume", T_ENABLE_REMOTE_CONNECT, "Enable remote connect", T_TRACE_RIG, "Trace rig", T_TRACE_KEYS, "Trace keys", T_SAVE_RESTART, "You must save configuration and restart Tucnak", T_FULLSCREEN, "Fullscreen", T_TOUCH, "Use touch control", T_ALT_QWER, "Alt turns QWER.. to 1234..", T_NO_LOCKS, "No device locks", T_PORTRAIT_ORIENTATION, "Portrait orientation", T_REVERSE, "Reverse", T_CHOOSE_RIG, "Choose rig", T_RIG_D, "Rig %d", T_NEW_RIG, "New rig", T_ENABLED, "Enabled", T_SET_PTT_ON_RADIO, "Set PTT on radio", T_DISABLED, " (disabled)", T_ADD_RIG, "Add rig", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rotator %d", T_ENABLE, "Enable", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Show private informations", T_LOAD_FROM_NET, "Load from network", T_LOAD_CWDB, "Load C_W database", T_LOAD_NAMEDB, "Load Name database", T_LOAD_QRVDB, "Load QRV database", T_READONLY_BANDS, "Read-only bands", T_ENABLE_AC, "Enable A/C", T_AC_URL, "Alternative URL for flightradar data", T_K_FACTOR, "Troposphere k_factor", T_AC_AREA_WIDTH, "Reflection area width in km", T_AC_EL_ANGLE, "Minimal elevation angle", T_AC_MAX_EL_ANGLE, "Maximal elevation angle", T_AC_MIN_DURATION, "Minimal reflection duration in sec", T_AC_MAX_DIFF, "Max difference of incidence and reflection angles", T_BAD_NUMBER_RANGE, "Bad number range", T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate", T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder", T_NO_DEVICE, "No device", T_IQ_SOURCE, "IQ source:", T_WAV_FILE, "WAV file", T_WAV_FILE_NAME, "WAV file name", T_AF_OUTPUT, "AF output:", T_AF_SAMPLE_RATE, "AF sample rate", T_BLOCK_SIZE, " Block size", T_CW_FILTER, " CW filter", T_TO_HZ, "to [Hz]", T_SSB_FILTER, " SSB filter", T_INIT_NAMEDB, "Initializing name database", T_FREE_NAMEDB, "Terminating name database", T_LOAD_NAMEDB2, "Loading name database", T_INIT_NET, "Initializing network", T_FREE_NET, "Terminating network", T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops", T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)", T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)", T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s", T_TIME_WAS_SET, "Time was set", T_FAILED_TO_SET_TIME, "Failed to set time", T_INIT, "INIT", T_CONNECTING, "CONNECTING", T_CONNECTED, "CONNECTED", T_WAIT_ACK, "WAIT_ACK", T_DISCONNECTED2, "DISCONNECTED", T_DEAD, "DEAD", T_LONG_XFER, "LONG_XFER", T_AUTHENTICATED_USER_S, "Authenticated user %s", T_BAD_AUTHENTICATION_S, "Bad authentication %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT", T_LONG_TRANSFER_FINISHED, "Long transfer finished", T_INIT_NTP, "Initializing NTP monitor", T_FREE_NTP, "Terminating NTP monitor", T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP", T_INIT_SPEAKER, "Initializing PC speaker", T_FREE_SPEAKER, "Terminating PC speaker", T_CANT_PLAY, "Can't play %s - %s", T_CANT_SEEK_TO_END, "Can't seek to end %s - %s", T_CANT_SEEK_TO_START, "Can't seek to start %s - %s", T_CANT_OPEN, "Can't open %s %s", T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Can't set %s to EPP mode %s", T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s", T_CANT_CLAIM, "Can't claim %s %s", T_INIT_QRVDB, "Initializing QRV database", T_FREE_QRVDB, "Terminating QRV database", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AcKst", T_START, "Start", T_DUR, "Dur", T_NR, "NR", T_TEXT2, "Text", T_16_SORT, "1-6: sort, ", T_A_ALL, "A: all", T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search", T_LOAD_QRVS, "Loading qrvs", T_UNSPECIFIED, "unspecified", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBs CWr", T_CWS_SSBR, "CWs SSBr", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n", T_FOUND_D_ERRORS, "Found %d error%s while reading %s", T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net", T_REGISTRATED_ROTATORS, "Registrated rotators:", T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n", T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread", T_INIT_ROTARS2, "Initializing rotators", T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n", T_ROTAR_ERROR_S, "Rotar error: %s", T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe", T_CANT_READ_FROM, "Can't read from", T_CANT_WRITE_TO, "Can't write to", T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Update", T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Bad update file name", T_CANT_EXECUTE_INSTALLER, "Can't execute installer, ", T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed", T_UPDATE_FAILED, "Update failed", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply.", T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s", T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install.", T_NO_NEW_VER, "No new version available.", T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests...", T_CHOOSE_CONTEST, "Choose contest", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload", T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form...", T_ALL_EDI_FILES_PROCESSED, "All EDI files processed.", T_UPLOADING_LOG_FILE_S, "Uploading log file %s ...", T_UPLOADING_BAND_S, "Uploading band %s", T_CONFIRMING_LOG, "Confirming log...", T_RESULT_ERROR, "*** Result: ERROR please read error message above", T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s", T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores...", T_LOGS_UPLOADED, "Logs uploaded.", T_HTTP_STATUS, "HTTP status: ", T_LOG_UPLOAD, "Log upload", T_VOIP_NO_INITIALIZED, "VOIP no initialized", T_PAGE_NAME, "Page name", T_OVERWRITE_EXISTING_FILES, "Overwrite existing files", T_SITE_URL, "Site URL", T_USERNAME, "Username", T_PASSWORD2, " Password", T_EXPORT_MAP, "Export map", T_EXPORT_CHART, "Export chart", T_MEDIAWIKI_UPLOAD2, "Mediawiki upload", T_BAD_AUTH_USER, "Bad auth user %s != %s", T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n", T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame", T_CANT_GET_FMTS, "Can't get supported audio formats: %s", T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s", T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s", T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s", T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s", T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s", T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s", T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s", T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d", T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s", T_RECORD2, "record", T_PLAYBACK, "playback", T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s", T_CANT_STOP_PA, "Can't stop PortAudio stream: %s", T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s", T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\"", T_CANT_SET_STROBE, "Can't set parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error", T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n", T_INIT_SERIAL_DEVICES, "Initializing serial devices", T_BAD_CHECKSUM, "Bad checksum", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Bad response", T_UNKNOWN_FUNCTION, "Unknown function", T_UNKNOWN_ERROR_CODE, "Unknown error code", T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n", T_WAIT_FOR_SDR_THR, "Waiting for SDR thread", T_QSO_REQ_FROM_SP, " QSO request from S&P ", T_QSO_REQ_SENT, " QSO request sent to RUN ", T_GO, " GO! ", T_LOCATION_UNKNOWN, "Location unknown", T_DEGREE, "deg", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s", T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe", T_INIT_SSB_CQ, "Initializing SSB CQ", T_FREE_SSB_CQ, "Terminating SSB CQ", T_NO_FILE, "No file specified", T_UNSUP_CHANNELS, "Unsupported number of channels = %d", T_FLOAT_UNSUPP, "Float point files are not supported", T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing", T_REC_DISABLED, "recording disabled", T_CONTEST_TOO_OLD, "contest too old", T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Error writing file %s: %s", T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording", T_NO_DISK_SPACE, "Not enough free disk space for file", T_CANT_PLAY_FILE, "Can't play file %s - %s", T_CANT_WRITE_SS, "Can't write to file %s - %s", T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded", T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template", T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n", T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***", T_LOADING_S, "Loading %s", T_INVALID_WINDOW_TYPE, "invalid window type %d\n", T_INIT_RIG, "Initializing rig control %d", T_RIG_ERROR, "Rig error: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n", T_FREE_RIG, "Terminating rig control %d", T_WAIT_FOR_RIG_THR, "Waiting for rig thread", T_INVALID_PARAM, "Invalid param.", T_RIG_INVALID_CONFIG, "Invalid config.", T_RIG_NOT_ENOUGH_MEM, "Not enough mem.", T_RIG_NOT_IMPLEMENTED, "Not implemented", T_RIG_COMM_TIMEOUT, "Comm. timeout", T_RIG_IO_ERROR, "IO error", T_RIG_INTERNAL_ERROR, "Internal error", T_PROTOCOL_ERROR, "Protocol error", T_RIG_COMMAND_REJECT, "Command reject.", T_RIG_ARG_TRUNCATED, "Arg. truncated", T_RIG_F_NOT_AVAILABLE, "F not available", T_RIG_VFO_NOT_TARGET, "VFO not target.", T_RIG_ERROR_ON_BUS, "Error on bus", T_RIG_BUS_COLLISION, "Bus collision", T_RIG_INVALID_ARG, "Invalid arg.", T_RIG_INVALID_VFO, "Invalid VFO", T_RIG_ARG_OUT_OF_DOM, "Arg out of dom.", T_ERROR_D, "Error %d", T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)", T_CANT_SET_GRAPHICS2, "Can't set graphics mode", T_WAIT_SDL_THR, "Waiting for SDL event thread", T_FREE_GRAPHICS, "Terminating graphics", T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s", T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s", T_CANT_READ_LOG_FILE, "Can't read log file %s", T_CANT_UPLOAD_LOG, "Can't upload log: %s", T_CANT_CONFIRM_LOG, "Can't confirm log: %s", T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s", T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing", T_CALL2, "Call:", T_QTH, "QTH:", T_DATE3, "Date:", T_QSOS2, "QSOs:", T_POINTS2, "Points:", T_WWLS, "WWLs:", T_DXCCS, "DXCCs:", T_AVG2, "AVG:", T_PTSQSO, "pts/qso", T_TOP_10_CALLS, "Top 10 calls", T_OPERATOR2, "Operator", T_MODE2, "Mode", T_TOP_10_WWLS, "Top 10 WWLs", T_CANT_UPLOAD_FILE_S, "Can't upload file: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s", T_FILE_ALREADY_EXISTS, "File already exists: %s", T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s", T_CANT_EDIT_PAGE, "Can't edit page: %s", T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s", T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s", T_EDITING_CONTEST_PAGE, "Editing contest page...", T_ALL_DONE, "All done.", T_UPLOADING_FILE, "Uploading file %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s", T_QUERYING_EDIT_TOKEN, "Querying edit token", T_CANT_LOGIN, "Can't log in (2): %s", T_CANT_LOGIN2, "Can't log in (2), wiki says: %s", T_CANT_LOGIN1, "Can't log in (1): %s", T_LOGGING_IN, "Logging in...", T_EXPORTING_FILES, "Exporting files...", T_INIT_WIZZ, "Initializing contest wizard", T_FREE_WIZZ, "Terminating contest wizard", T_LOAD_WIZZ_DATA, "Loading contest wizard data", tucnak-4.04/intl/english.lng0000644000175000017500000011542512534315317012764 00000000000000T__CHAR_SET, "us-ascii", T__LANGUAGE, "English", T_ABOUT, "About", T_BAD_NUMBER, "Bad number", T_BAD_STRING, "Bad string", T_BASIC_HELP, "Press F10 for menu.\nHave fun.", T_BLOCK_CURSOR, "Block cursor", T_CANCEL, "Cancel", T_CHARACTER_SET, "Character set", T_COLOR, "Color", T_COPYING, "Copying", T_DIFFERENCE, "difference", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Do you really want to exit Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "Empty string not allowed", T_ERROR, "Error", T_WARNING, "Warning", T_EXIT, "Exit", T_EXIT_TUCNAK, "Exit Tucnak", T_FILE, "File", T_FULL_SCREEN, "Full screen", T_HELP, "Help", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "H", T_HK_COPYING, "C", T_HK_EXIT, "X", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R frames", T_LANGUAGE, "Language", T_LAST, "last", T_LINUX_OR_OS2_FRAMES, "Linux or OS/2 frames", T_MEMORY_INFO, "Memory info", T_NO_FRAMES, "No frames", T_NO, "No", T_NUMBER_EXPECTED, "Number expected in field", T_NUMBER_OUT_OF_RANGE, "Number out of range", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852", T_UTF_8_IO, "UTF-8 Input/Output", T_SCREEN, "Screen", T_SETUP, "Setup", T_TERMINAL_OPTIONS, "Terminal options", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log", T_TWTERM, "Twterm", T_USE_11M, "Use ^[[11m", T_VT_100_FRAMES, "VT 100 frames", T_WELCOME1, "Welcome to Tucnak!", T_WELCOME2, "Please enter your callsign and locator:", T_WELCOME, "Welcome", T_XTERM, "Xterm", T_YES, "Yes", T_CANT_APPEND_S, "Can't append to file %s", T_CANT_WRITE, "Can't write to file", T_CANT_WRITE_S, "Can't write to file %s", T_CANT_READ, "Can't read from file", T_CANT_READ_S, "Can't read from file %s", T_SAVED_S, "Saved %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - cw speed ", T_CANT_OPEN_S, "Can't open %s", T_CANT_LOCK, "Can't lock", T_CANT_LOCK_S, "Can't lock %s", T_LOADING_CTEST_S, "*** Loading contest %s", T_NO_FILES,"No files in directory", T_BAND_EXIST_SS, "WARNING! Band %s (%s) already exist", T_BAND_NOT_OPEN, "Band is not active in this contest", T_NO_BANDS, "No bands to load", T_CANT_SET_GR_S, "Can't set any graphics mode-%s", T_GCALL, "Call: %s", T_GWWL, "WWL: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Sent: %s %s", T_GRCV, "Rcvd: %s %s", T_GTIM, "Time: %s", T_GOPE, "Op: %s", T_GREM, "Rem: %s", T_GWKD, "Wkd: %d", T_GINC, "income: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Please WAIT ", T__RO_BAND, " READ-ONLY BAND", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.", T_CTEST_ACTIVE, "Contest is already active ", T_NO_CTESTS, "No contests", T_NO_CCLOSE, "No contest to close", T_REALLY, "Really?", T_CLOSE_CTEST, "Do you really want to close this contest?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw items, %d wc items, latest %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, latest %d\n", T_VEXC, "Verified EXC: %d items\n", T_DWI, "D_W: %d prefixes, %d DXCCs, %d WWLs\n", T_NAMES, "Names: %d names\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Memory:", T_NMY, " My: ", T_NGLOBAL, "Global: ", T_NMASTER, "Master: ", T_NREMOTE, "Remote: ", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Network info", T_NO_BANDS_QRV, "No bands QRV", T_NO_BANDS_CONF, "No bands configured", T_NOT_AVAILABLE, "Not available", T_ADD_SUBWIN, "Add subwin", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Close subwin", T_HK_CLOSE_SUBWIN, "C", T_HK_NINFO, "N", T_NEW, "New", T_HK_NEW, "N", T_NEW_WIZZ, "New from wizard", T_HK_NEW_WIZZ, "W", T_NEW_NET, "New from network", T_HK_NEW_NET, "T", T_OPEN, "Open", T_HK_OPEN, "O", T_SAVE, "Save", T_HK_SAVE, "S", T_EXPORT_EDI, "Export as EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Export as report", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Export as ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as Cabrillo", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Export as HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Import EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Import ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Import swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Contest options", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Close contest", T_HK_CLOSE_CONTEST, "C", T_ADD_ERROR, "Add ERROR", T_HK_ADD_ERROR, "E", T_CHOP, "Change operator", T_HK_CHOP, "O", T_CW_CTEST, "Update C_W from contest", T_HK_CW_CTEST, "C", T_CW_BAND, "Update C_W from band", T_HK_CW_BAND, "B", T_EXC_CTEST, "Update EXC DB from contest", T_HK_EXC_CTEST, "A", T_EXC_BAND, "Update EXC DB from band", T_HK_EXC_BAND, "T", T_IMPORT_EBW, "Import DL8EBW database", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "No contest", T_NO_PEERS, "No peers found", T_NO_MASTER, "Master is not available!", T_CTEST_DEF, "Contest defaults", T_HK_CTEST_DEF, "O", T_BAND_DEF, "Band defaults", T_HK_BAND_DEF, "B", T_HK_RESPOP, "P", T_CW_DAEMON, "CW keying", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Autosave", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Load cfg from net", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Load C_W from net", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Save configuration", T_HK_SAVE_CFG, "F", T_CONTEST, "Contest", T_HK_CONTEST, "C", T_EDIT, "Edit", T_HK_EDIT, "E", T_BANDS, "Bands", T_HK_BANDS, "B", T_SUBWINS, "Subwins", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "Band settings for band %c %s", T_QRV_ON_THIS_BAND, "QRV on this band", T_QRV_IN_THIS_CTEST, "QRV in this contest", T_READ_ONLY, "Read-only", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " TX Equip:", T_POWER, " Power:", T_RXEQUIP, " RX Equip:", T_ANTENNA, " Antenna:", T_AGLASL, " AGL;ASL:", T_OPS, "Operators:", T_SPACES1, " ", T_REMARKS, " Remarks:", T_OK_SECTION_SINGLE, "Single category in OK", T_OK_SECTION_MULTI, "Multi category in OK", T_QRG_MIN, "Band boundary from", T_QRG_MAX, "to [kHz]", T_ADIFBAND, "ADIF band name", T_SKEDQRG, "QRG for skeds (free form)", T_BAND_LO, "Transverter's LO QRG [Hz]:", T_BANDSW, "Band switch value", T_RESPOP, "Responsible operator", T_NAME, " Name:", T_CALLSIGN, " Callsign:", T_ADDRESS, " Address:", T_POSTCODE, "Postal Code:", T_CITY, " City:", T_COUNTRY, " Country:", T_PHONE, " Phone:", T_BBSEMAIL, " E-mail:", T_QP0, " --none -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " --none -- ", T_TP1, " 1 Multiplicative (Std. IARU)", T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "New Contest", T_CANT_TRUNC, "Can't truncate desc file", T_NAME_OF_CTEST, "Name of the contest:", T_CALL_OF_CTEST, "Callsign in contest:", T_CLUB_ST, "Club station:", T_YOURWWL, "Your WWL:", T_YOUREXC, "Your EXC:", T_DATE_OF_CTEST, "Date of contest:", T_QSOUSED, "QSO NR used", T_QSOPM, " QSOp multi:", T_WWLUSED, "WWL used ", T_WWLB, "WWL bonus:", T_WWLM, "WWL multi:", T_EXCUSED, "EXC used", T_EXCB, " EXC bonus:", T_EXCM, "EXC multi:", T_EXCNAME, " EXC name: ", T_PREFM, "PREF multi:", T_DXCB, " DXC bonus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST Used ", T_DEFRS, "Default RS:", T_DEFRST, "Def RST:", T_ALSORSTR, "Also for RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Responsible op", T_EDIT_QSO_CD, "Edit QSO %c: %03d", T_CALLSIGN2, "Callsign:", T_CLUB, " Club:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operator:", T_DATE, " Date:", T_MODE, " Mode:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO sent:", T_QSONRR, "QSO rcvd:", T_OPTEXCH, " OptExch:", T_WWL, " WWL:", T_REMARK, " Remark:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Send sked", T_SELECT, "Select", T_QRG, " QRG:", T_WE_CALL, " We call", T_BAND, " Band:", T_TIME, " Time:", T_DUPE_QSO, "Duplicate QSO!", T_CLEAR_THIS_QSO, "Clear this QSO", T_EDIT_OLD_QSO, "Edit old QSO", T_MARK_OLD_QSO, "Mark old QSO as ERROR", T_STORE_AS_DUPE, "Store as DUPE", T_BAD_CALL, "This does not look like a callsign", T_N_CALLSIGN, "\nCallsign:", T_AUTOSAVE_OPTS, "Autosave options", T_SAVE_AQ, "Save to disk after QSO: ", T_SAVE_AM, "Save to disk after minutes:", T_FSYNC, "Fsync", T_SAVE_AQF, "Save to floppy after QSO: ", T_SAVE_AMF, "Save to floppy after minutes:", T_DO_MOUNT, "Mount if not in /etc/mtab (unused)", T_FLOPPY_PATH, "Path to floppy:", T_MOUNT_CMD, "Mount command: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Unfi", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Map", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "Unfinished QSOs", T_DXC, "DX Cluster", T_STAT, "Statistics", T_SWAP, "Swap (N/A)", T_MAP, "Graphics map", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_KST, "KST", T_CMD, "Command", T_RESPAWN, "Respawn [sec]:", T_UNFI_QSO, "Unfinished QSO", T_N_REMARK, "\nRemark:", T_NO_CQ, "No CQ defined", T_TEXT, "Text:", T_SPEED, "Speed [WPM]:", T_REPEAT, "Repeat", T_DELAY, "Delay [0.1s]:", T_ALLOW_UNDEF, "Allow if some item is undefined", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Filename:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP port:", T_DEVICE, "Keying device:", T_INIT_SPEED, "Initial speed [WPM]:", T_INIT_WEIGHT, "Weight (30-70):", T_WPMFROM, "WPM Range from", T_WPMTO, "to", T_USE_SPK, "Use speaker", T_LEADIN, "PTT lead in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignoring interface %-5s", T_IGN_ADDR_S, "Ignoring address %s", T_ADD_IFACE_SSD, "Added interface=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Forced address %s", T_TIMESKEW, "WARNING! Time skew %d detected against %s:%d !\n", T_DISCONNECTING_SD, "Disconnecting from %s:%d", T_ACCEPTED_SD, "Accepted %s:%d (%s)", T_CONNECTING_SD, "Connecting to %s:%d" , T_CONNECTED_SD, "Connected to %s:%d", T_DISCONNECTED_SD, "Disconnected from %s:%d", T_LOADED_CFG_SSSS, "Loaded config for %s %s (%s,%s)", T_LOADED_CW, "Loaded C_W data", T_PEER_NOT_FOUND, "ERROR! Peer %s not found", T_CANT_CREATE_HOME_S, "Cannot create directory %s", T_CANT_LOAD_CFG, "Can't load configuration!\nProgram cannot work properly!", T_ERR_RC, "Found some errors parsing config file!\nThis file was probably saved with newer Tucnak!\nDon't save your confuguration unless you can loose data!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Remark ", T_SES_WELCOME, "Welcome to Tucnak! ", T_SES_PRESS_F10, "Press F10 for menu.", T_SES_HAVE_FUN, "Have fun.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG", T_SES_AVG, " AVG: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS in WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Statistics for band %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Average pts/QSO: %5.2f", T_SF_AVG_QSOP, "Average qsop/QSO: %5.2f", T_BAND_RO, "Band is read-only", T_THIS_BAND, "This band", T_OTHER_BANDS, "Other bands", T_CW_DB, "C_W database", T_PROC_EXITED, "*** Process exited\n", T_WE_CALL2, "we call", T_WE_LISTEN, "we listen", T_QSL, "QSL promised", T_RECORD, "Record traffic", T_MAXMIN, " Max. record duration", T_TEMPLATE, "Template for recorded filename", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "mu-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Channels", T_SAMPLERATE, "Sample rate", T_FILLOP, "Fill operators", T_HK_FILLOP, "L", T_RECAQRB, "Recalc QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Network & trace", T_HK_NETWORK, "K", T_IF_IGNORE, "Ignore interfaces:", T_IP_IGNORE, " Ignore networks:", T_IP_ANNOUNCE, " Announce to nets:", T_TRACE_BCAST, "Trace broadcasts ", T_TRACE_SOCK, "Trace sockets", T_TRACE_RECV, "Trace received data", T_TRACE_SEND, "Trace sent data", T_TRACE_QSOS, "Trace QSOs ", T_TRACE_SDEV, "Trace rotars ", T_NOT_MOUNTED_S, "Not mounted %s", T_RECSRC_NONE, "Don't set", T_RECSRC_MIC, "Microphone", T_RECSRC_LINE, "Line in", T_NEW_CALL, "New!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV on %s", T_SKED_QRG, "QRG for skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG for skeds:", T_GRAB_BAND, "Grab band control", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Force RUN mode", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Export Statistics", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotator", T_HK_ROTAR, "R", T_AZIMUTH, " Azimuth", T_ELEVATION, "Elevation", T_CH_SPY, "Spy", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Spy end", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Export title page", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Break record", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Change for all bands", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. num of fragments (>=2)", T_PLAY_LAST, "Play last sample", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Miscellaneous options", T_HK_MISCOPTS, "M", T_LOGLINES, "Log lines: ", T_SKEDSHIFT, "Sked shift (minutes): ", T_STARTBAND, "Starting band: ", T_GFX_X_CH, "Screen resolution (chars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Screen resolution (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Callsign info", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/hour: %d", T_SF_QSOP_HOUR, "Points/hour: %d", T_SF_QSOP_50QSO, "Points/50 QSOs: %d", T_SF_HOURS, " Hours", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Hours Points QSOs AVG pts/QSO", T_QSO_CHECK, "QSO check", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "Minimal disk free space [MiB]", T_FORMAT, "Record format", T_PCM_PLAY, "Alsa playback device", T_PCM_REC, "Alsa capture device", T_PERIOD, "Period time [ms]", T_BUFFER, "Buffer time [ms]", T_ALSA_MIXER, "Alsa mixer device", T_CAPTURE, "Capture source", T_DSP, "OSS DSP", T_MIXER, "OSS mixer", T_RECSRC, "Record source", T_PA_PLAY, "Portaudio playback device", T_PA_REC, "Portaudio capture device", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Slash key", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Enter accurate QRG [Hz]", T_BAD_QRG, "Bad frequency", T_CALLSIGN3, "Callsign", T_CALLSIGN_KST, "KST station's callsign:", T_CANT_INIT_WINKEY_S, "Can't init winkey on %s", T_WINKEYOPTS, "Winkey options", T_WK_WK2, "Winkey2 fast initialization", T_WK_USEPOT, "Use speed pot", T_WK_USEBUT, "Use buttons", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (left handled)", T_RIGOPTS, "Rig options", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Rig model: ", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address (hex):", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rotar options", T_HK_ROTAROPTS, "I", T_DSSAVER, "Disable screensaver", T_DESC, "Description", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA serial", T_ROT_OK1ZIA_FTDI, "OK1ZIA USB", T_ROT_HAMLIB, "Hamlib", T_ROT_REMOTE, "Remote", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beam width:", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global PREF", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "U", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX eVen", T_HK_EVEN, "N", T_ODD, "TX oDd", T_HK_ODD, "D", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", T_ROT_POLL_MS, "Poll interval [ms]:", T_VERSION, "Version", T_HK_VERSION, "V", T_REMOTE_HOST, " Remote host name:", T_REMOTE_PORT, " Remote TCP port:", T_REMOTE_PASS, " Remote Password:", T_STARTING_AC, "Starting A/C", T_STOPPING_AC, "Stopping A/C", T_ASL_5D_M, "ASL: %5d m", T_SPEED4D_KMH, "Speed:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Durat: %ld", T_EXPORTING_S, "Exporting %s", T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s", T_EXPORTING, "Exporting ...", T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables", T_LOADING_CHARTS, "Loading charts", T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control", T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in", T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi", T_CANT_CREATE_PIPE, "Can't create pipe", T_TERMINATING_CWDAEMON, "Terminating CW/PTT control", T_INIT_CWDB, "Initializing WWL database", T_TERM_CWDB, "Terminating WWL database", T_LOADING_CWDB, "Loading WWL database", T_QRV_ON, "QRV on: ", T_CANT_INIT_FTDI, "Can't init ftdi library for davac4", T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s", T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s", T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s", T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s", T_INIT_SOUNDCARD, "Initializing soundcard", T_NO_OSS, "OSS support not compiled in", T_NO_ALSA, "Alsa support not compiled in", T_NO_PORTAUDIO, "portaudio support not compiled in", T_NO_SNDFILE, "Libsndfile support not compiled in", T_NO_SNDPIPE, "Sndpipe support not compiled in", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Initializing DXCC database", T_FREE_DWDB, "Terminating DXCC database", T_LOAD_DWDB, "Loading DXCC database", T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n", T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n", T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n", T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n", T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n", T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n", T_CALL_ON_BAND_S, "Callsign on band %s is %s\n", T_LOCATOR_ON_BAND, "Locator on band %s is %s\n", T_QSO_CHECK_LIST, " Tucnak QSO check list\n", T_CALL_SN, " Call: %s\n", T_CONTEST_SN, "Contest: %s\n", T_DATE_SN, " Date: %s\n", T_CHECKING_S, "Checking %s", T_BAND_C_SN, " Band %c %s\n", T_SEEMS_TO_BE_OK, "Seems to be O.K.\n", T_CW_NOT_FOUND, "C_W: %s not found\n", T_0X_NOT_IN_DB, " 0x (not in database)", T_NAME_IS, "Name: %s's name is %s\n", T_NAME_UNKNOWN, "Name: %s's name is unknown\n", T_INIT_DXC, "Initializing DXcluster", T_FREE_DXC, "Terminating DXcluster", T_HK_SELECT, "S", T_HIDE, "Hide", T_HK_HIDE, "H", T_INFO, "Info", T_HK_INFO, "I", T_USE, "Use", T_HK_USE, "U", T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n", T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n", T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n", T_HOST_RESOLVED, "*** Host resolved ", T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n", T_CONNECTING_TO, "*** Connecting to %s ***\n", T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n", T_CONNECTED_SOCKET, "*** Connected socket %d ***\n", T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n", T_DISCONNECTED, "\n*** Disconnected ***\n", T_RESOLVING, "*** Resolving %s ***\n", T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s", T_SAVED, "Saved %s", T_LOADING_CONTEST, "Loading contest %s", T_LOADING_LOGFILE, "Loading logfile", T_LOADING_TALK, "Loading talk", T_SEARCH_FILES, "Search for contest files", T_LOADING_BAND, "Loading band %s", T_LOADING_SPY, "Loading spy", T_LOADING_HICALLS, "Loading hicalls", T_LOADING_QRV, "Loading qrv", T_LOADING_CHART, "Loading chart", T_SAVING_CONTEST, "Saving contest", T_UPD_INT_DATA, "Updating internal data", T_CALC_STATS, "Calculating statistics", T_ANN_OVER_NET, "Announcing over network", T_ACTIVATING_BAND, "Activating band %s", T_UPDATING_WKD, "Updating worked calls", T_UPDATING_QRBQTF, "Updating QRB&QTF", T_UPDATING_GAIN, "Updating gain chart", T_SEN_OVER_NET, "Sending info over network", T_INIT_EXCDB, "Initializing exchange database", T_FREE_EXCDB, "Terminating exchange database", T_INIT_FFT, "Initializing FFT analyse", T_FREE_FFT, "Terminating FFT analyse", T_INIT_ROTAR, "Initializing rotator control", T_FREE_ROTAR, "Terminating rotator control", T_LOCATOR, "Locator:", T_BAND2, "Band", T_POINTS, "Points", T_AVG, "AVG", T_INIT_HTTPD, "Initializing HTTP server", T_FREE_HTTPD, "Terminating HTTP server", T_NO_CONTEST_OPENED, "

No contest opened

\n", T_NO_CONTEST_OPENED2, "No contest opened", T_STATS, "Statistics", T_BAND_NOT_FOUND, "Band not found", T_BAND_C_NOT_FOUND, "

Band %c not found

", T_QSOS_IN_DATABASE, "qsos in database", T_TUCNAK_ONLINE_LOG, "Tucnak online log", T_DATE2, "Date", T_UTC, "UTC", T_CALL, "Call", T_CALL_NOT_FOUND, "Call not found", T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d", T_FREE_TERM, "Terminating terminal", T_TERM_KEYMAPS, "Terminating keymaps", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AcKST", T_HK_ACKST, "A", T_MISTAKE, "Oh mistake", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "Ask for sked", T_HK_ASK_FOR_SKED, "K", T_MESSAGE, "Message", T_HK_MESSAGE, "M", T_AC_INFO, "A/C info", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n", T_RESOLVED, "*** Resolved ", T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n", T_SENDING_SH_US, "*** Sending /sh us ...\n", T_SKIP_LINE, "Skip line %d '%s'", T_CANT_CREATE_HOME, "Can't create home directory '%s'", T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)", T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s", T_INIT_MAP, "Initializing polar map", T_DISABLE_SAVER, "Disabling screensaver", T_STARTING_TUCNAK, "Starting Tucnak", T_FREE_MAP, "Terminating polar map", T_INIT_MASTERDB, "Initializing master database", T_FREE_MASTERDB, "Terminating master database", T_LOAD_MASTERDB, "Loading master database", T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s", T_DIRECTORY_SCAN, "Directory scan", T_V3_COMPATIBILITY, " (v3 compatibility)", T_RELOAD_INTERFACES, "Reload interfaces", T_SET_READONLY, "Set read-only", T_CHANGE_TYPE, "Change type", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Open connection", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Kill connection", T_HK_KILL_CONNECTION, "K", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Export to text file", T_ADD_CONTEST, "Add contest", T_HK_ADD_CONTEST, "O", T_ADD_FILES, "Add file(s)", T_HK_ADD_FILES, "F", T_ADD_CONTESTS, "Add contests", T_HK_ADD_CONTESTS, "O", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Crash test", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Int.error test", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Dump RW bands and hashes", T_HK_DUMP_RW_BANDS, "D", T_UPDATE, "Update Tucnak", T_HK_UPDATE, "U", T_SETTINGS, "Settings", T_HK_SETTINGS, "S", T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net", T_HK_UPLOAD_TO_VHFNET, "V", T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "U", T_VOIP_SPY, "Voip spy", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "End voip spy", T_HK_END_VOIP_SPY, "Y", T_OLD_TEST_NO_SPY, "Contest is old, spy is not available", T_NETWORK_SCAN, "Network scan", T_HTTPD_OPTIONS, "HTTPD options", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "A/C options", T_HK_AC_OPTIONS, "P", T_SDR_OPTIONS, "SDR options", T_HK_SDR_OPTIONS, "R", T_OTHER, "Other:", T_NONE, "None ", T_RSTS2, "RST-S", T_RSTR2, "RST-R", T_QSONRR2, "QSONR-R", T_EXC2, "EXC", T_UNUSED, "Unused ", T_USED_6, "Used (6)", T_OPT_6, "Opt. (6)", T_USED_4, "Used (4)", T_OPT_4, "Opt. (4)", T_FREE, "Free ", T_VERIFIED, "Verified", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Confirm WWL", T_CONFIRM_EXC, "Confirm EXC", T_FONT_SIZE, "Font size: ", T_DXC_HOSTNAME, "DXC Hostname:", T_TCP_PORT, "TCP Port:", T_DXC_USERNAME, "DXC Username:", T_PASSWORD, "Password:", T_KST_USERNAME, "KST Username:", T_KST_YOURNAME, "KST Yourname:", T_SDR, "SDR", T_PARPORT, "parport", T_TTYS, "ttys", T_AUDIO_SUBSYSTEM, "Audio subsystem:", T_PLAYBACK_VOLUME, "Playback volume", T_CAPTURE_VOLUME, "Capture volume", T_ENABLE_REMOTE_CONNECT, "Enable remote connect", T_TRACE_RIG, "Trace rig", T_TRACE_KEYS, "Trace keys", T_SAVE_RESTART, "You must save configuration and restart Tucnak", T_FULLSCREEN, "Fullscreen", T_TOUCH, "Use touch control", T_ALT_QWER, "Alt turns QWER.. to 1234..", T_NO_LOCKS, "No device locks", T_PORTRAIT_ORIENTATION, "Portrait orientation", T_REVERSE, "Reverse", T_CHOOSE_RIG, "Choose rig", T_RIG_D, "Rig %d", T_NEW_RIG, "New rig", T_ENABLED, "Enabled", T_SET_PTT_ON_RADIO, "Set PTT on radio", T_DISABLED, " (disabled)", T_ADD_RIG, "Add rig", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rotator %d", T_ENABLE, "Enable", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Show private informations", T_LOAD_FROM_NET, "Load from network", T_LOAD_CWDB, "Load C_W database", T_LOAD_NAMEDB, "Load Name database", T_LOAD_QRVDB, "Load QRV database", T_READONLY_BANDS, "Read-only bands", T_ENABLE_AC, "Enable A/C", T_AC_URL, "Alternative URL for flightradar data", T_K_FACTOR, "Troposphere k_factor", T_AC_AREA_WIDTH, "Reflection area width in km", T_AC_EL_ANGLE, "Minimal elevation angle", T_AC_MAX_EL_ANGLE, "Maximal elevation angle", T_AC_MIN_DURATION, "Minimal reflection duration in sec", T_AC_MAX_DIFF, "Max difference of incidence and reflection angles", T_BAD_NUMBER_RANGE, "Bad number range", T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate", T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder", T_NO_DEVICE, "No device", T_IQ_SOURCE, "IQ source:", T_WAV_FILE, "WAV file", T_WAV_FILE_NAME, "WAV file name", T_AF_OUTPUT, "AF output:", T_AF_SAMPLE_RATE, "AF sample rate", T_BLOCK_SIZE, " Block size", T_CW_FILTER, " CW filter", T_TO_HZ, "to [Hz]", T_SSB_FILTER, " SSB filter", T_INIT_NAMEDB, "Initializing name database", T_FREE_NAMEDB, "Terminating name database", T_LOAD_NAMEDB2, "Loading name database", T_INIT_NET, "Initializing network", T_FREE_NET, "Terminating network", T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops", T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)", T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)", T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s", T_TIME_WAS_SET, "Time was set", T_FAILED_TO_SET_TIME, "Failed to set time", T_INIT, "INIT", T_CONNECTING, "CONNECTING", T_CONNECTED, "CONNECTED", T_WAIT_ACK, "WAIT_ACK", T_DISCONNECTED2, "DISCONNECTED", T_DEAD, "DEAD", T_LONG_XFER, "LONG_XFER", T_AUTHENTICATED_USER_S, "Authenticated user %s", T_BAD_AUTHENTICATION_S, "Bad authentication %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT", T_LONG_TRANSFER_FINISHED, "Long transfer finished", T_INIT_NTP, "Initializing NTP monitor", T_FREE_NTP, "Terminating NTP monitor", T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP", T_INIT_SPEAKER, "Initializing PC speaker", T_FREE_SPEAKER, "Terminating PC speaker", T_CANT_PLAY, "Can't play %s - %s", T_CANT_SEEK_TO_END, "Can't seek to end %s - %s", T_CANT_SEEK_TO_START, "Can't seek to start %s - %s", T_CANT_OPEN, "Can't open %s %s", T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Can't set %s to EPP mode %s", T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s", T_CANT_CLAIM, "Can't claim %s %s", T_INIT_QRVDB, "Initializing QRV database", T_FREE_QRVDB, "Terminating QRV database", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AcKst", T_START, "Start", T_DUR, "Dur", T_NR, "NR", T_TEXT2, "Text", T_16_SORT, "1-6: sort, ", T_A_ALL, "A: all", T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search", T_LOAD_QRVS, "Loading qrvs", T_UNSPECIFIED, "unspecified", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBs CWr", T_CWS_SSBR, "CWs SSBr", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n", T_FOUND_D_ERRORS, "Found %d error%s while reading %s", T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net", T_REGISTRATED_ROTATORS, "Registrated rotators:", T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n", T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread", T_INIT_ROTARS2, "Initializing rotators", T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n", T_ROTAR_ERROR_S, "Rotar error: %s", T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe", T_CANT_READ_FROM, "Can't read from", T_CANT_WRITE_TO, "Can't write to", T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Update", T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Bad update file name", T_CANT_EXECUTE_INSTALLER, "Can't execute installer, ", T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed", T_UPDATE_FAILED, "Update failed", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply.", T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s", T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install.", T_NO_NEW_VER, "No new version available.", T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests...", T_CHOOSE_CONTEST, "Choose contest", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload", T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form...", T_ALL_EDI_FILES_PROCESSED, "All EDI files processed.", T_UPLOADING_LOG_FILE_S, "Uploading log file %s ...", T_UPLOADING_BAND_S, "Uploading band %s", T_CONFIRMING_LOG, "Confirming log...", T_RESULT_ERROR, "*** Result: ERROR please read error message above", T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s", T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores...", T_LOGS_UPLOADED, "Logs uploaded.", T_HTTP_STATUS, "HTTP status: ", T_LOG_UPLOAD, "Log upload", T_VOIP_NO_INITIALIZED, "VOIP no initialized", T_PAGE_NAME, "Page name", T_OVERWRITE_EXISTING_FILES, "Overwrite existing files", T_SITE_URL, "Site URL", T_USERNAME, "Username", T_PASSWORD2, " Password", T_EXPORT_MAP, "Export map", T_EXPORT_CHART, "Export chart", T_MEDIAWIKI_UPLOAD2, "Mediawiki upload", T_BAD_AUTH_USER, "Bad auth user %s != %s", T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n", T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame", T_CANT_GET_FMTS, "Can't get supported audio formats: %s", T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s", T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s", T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s", T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s", T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s", T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s", T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s", T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d", T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s", T_RECORD2, "record", T_PLAYBACK, "playback", T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s", T_CANT_STOP_PA, "Can't stop PortAudio stream: %s", T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s", T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\"", T_CANT_SET_STROBE, "Can't set parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error", T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n", T_INIT_SERIAL_DEVICES, "Initializing serial devices", T_BAD_CHECKSUM, "Bad checksum", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Bad response", T_UNKNOWN_FUNCTION, "Unknown function", T_UNKNOWN_ERROR_CODE, "Unknown error code", T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n", T_WAIT_FOR_SDR_THR, "Waiting for SDR thread", T_QSO_REQ_FROM_SP, " QSO request from S&P ", T_QSO_REQ_SENT, " QSO request sent to RUN ", T_GO, " GO! ", T_LOCATION_UNKNOWN, "Location unknown", T_DEGREE, "deg", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s", T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe", T_INIT_SSB_CQ, "Initializing SSB CQ", T_FREE_SSB_CQ, "Terminating SSB CQ", T_NO_FILE, "No file specified", T_UNSUP_CHANNELS, "Unsupported number of channels = %d", T_FLOAT_UNSUPP, "Float point files are not supported", T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing", T_REC_DISABLED, "recording disabled", T_CONTEST_TOO_OLD, "contest too old", T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Error writing file %s: %s", T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording", T_NO_DISK_SPACE, "Not enough free disk space for file", T_CANT_PLAY_FILE, "Can't play file %s - %s", T_CANT_WRITE_SS, "Can't write to file %s - %s", T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded", T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template", T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n", T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***", T_LOADING_S, "Loading %s", T_INVALID_WINDOW_TYPE, "invalid window type %d\n", T_INIT_RIG, "Initializing rig control %d", T_RIG_ERROR, "Rig error: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n", T_FREE_RIG, "Terminating rig control %d", T_WAIT_FOR_RIG_THR, "Waiting for rig thread", T_INVALID_PARAM, "Invalid param.", T_RIG_INVALID_CONFIG, "Invalid config.", T_RIG_NOT_ENOUGH_MEM, "Not enough mem.", T_RIG_NOT_IMPLEMENTED, "Not implemented", T_RIG_COMM_TIMEOUT, "Comm. timeout", T_RIG_IO_ERROR, "IO error", T_RIG_INTERNAL_ERROR, "Internal error", T_PROTOCOL_ERROR, "Protocol error", T_RIG_COMMAND_REJECT, "Command reject.", T_RIG_ARG_TRUNCATED, "Arg. truncated", T_RIG_F_NOT_AVAILABLE, "F not available", T_RIG_VFO_NOT_TARGET, "VFO not target.", T_RIG_ERROR_ON_BUS, "Error on bus", T_RIG_BUS_COLLISION, "Bus collision", T_RIG_INVALID_ARG, "Invalid arg.", T_RIG_INVALID_VFO, "Invalid VFO", T_RIG_ARG_OUT_OF_DOM, "Arg out of dom.", T_ERROR_D, "Error %d", T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)", T_CANT_SET_GRAPHICS2, "Can't set graphics mode", T_WAIT_SDL_THR, "Waiting for SDL event thread", T_FREE_GRAPHICS, "Terminating graphics", T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s", T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s", T_CANT_READ_LOG_FILE, "Can't read log file %s", T_CANT_UPLOAD_LOG, "Can't upload log: %s", T_CANT_CONFIRM_LOG, "Can't confirm log: %s", T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s", T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing", T_CALL2, "Call:", T_QTH, "QTH:", T_DATE3, "Date:", T_QSOS2, "QSOs:", T_POINTS2, "Points:", T_WWLS, "WWLs:", T_DXCCS, "DXCCs:", T_AVG2, "AVG:", T_PTSQSO, "pts/qso", T_TOP_10_CALLS, "Top 10 calls", T_OPERATOR2, "Operator", T_MODE2, "Mode", T_TOP_10_WWLS, "Top 10 WWLs", T_CANT_UPLOAD_FILE_S, "Can't upload file: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s", T_FILE_ALREADY_EXISTS, "File already exists: %s", T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s", T_CANT_EDIT_PAGE, "Can't edit page: %s", T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s", T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s", T_EDITING_CONTEST_PAGE, "Editing contest page...", T_ALL_DONE, "All done.", T_UPLOADING_FILE, "Uploading file %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s", T_QUERYING_EDIT_TOKEN, "Querying edit token", T_CANT_LOGIN, "Can't log in (2): %s", T_CANT_LOGIN2, "Can't log in (2), wiki says: %s", T_CANT_LOGIN1, "Can't log in (1): %s", T_LOGGING_IN, "Logging in...", T_EXPORTING_FILES, "Exporting files...", T_INIT_WIZZ, "Initializing contest wizard", T_FREE_WIZZ, "Terminating contest wizard", T_LOAD_WIZZ_DATA, "Loading contest wizard data", tucnak-4.04/intl/czech.lng0000644000175000017500000012122112535256134012420 00000000000000T__CHAR_SET, "iso8859-2", T__LANGUAGE, "Czech", T_ABOUT, "O programu", T_BAD_NUMBER, "Chybn slo", T_BAD_STRING, "Chybn etzec", T_BASIC_HELP, "Stiskni F10 pro vstup do menu.", T_BLOCK_CURSOR, "Blokov kurzor", T_CANCEL, "Zruit", T_CHARACTER_SET, "Znakov sada", T_COLOR, "Barviky", T_COPYING, "Koprovn", T_DIFFERENCE, "rozdl", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Opravdu chce ukonit Tuka?", T_EMPTY_STRING_NOT_ALLOWED, "Przdn etzec nen povolen", T_ERROR, "Chyba", T_WARNING, "Varovn", T_EXIT, "mitec", T_EXIT_TUCNAK, "Ukonen Tuka", T_FILE, "Soubor", T_FULL_SCREEN, "Cel obrazovka", T_HELP, "Pomoc", T_HK_ABOUT, "O", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "Z", T_HK_COPYING, "P", T_HK_EXIT, "E", T_HK_FILE, "S", T_HK_FULL_SCREEN, "C", T_HK_HELP, "C", T_HK_LANGUAGE, "J", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "N", T_HK_TERMINAL_OPTIONS, "E", T_HK_TWTERM, "T", T_HK_WINDOW, "O", T_HK_XTERM, "X", T_KOI8R_FRAMES, "Rmeky KOI8-R", T_LANGUAGE, "Jazyk", T_LAST, "posledn", T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux nebo OS/2", T_MEMORY_INFO, "Informace o pamti", T_NO_FRAMES, "Bez rmek", T_NO, "Ne", T_NUMBER_EXPECTED, "Oekvm slo", T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah", T_OK, "OK", T_OS_SHELL, "Pkazov dka", T_RESTRICT_FRAMES_IN_CP850_852, "Omezen rmeky v cp850/852", T_UTF_8_IO, "UTF-8 vstup/vstup", T_SCREEN, "Screen", T_SETUP, "Nastaven", T_TERMINAL_OPTIONS, "Nastaven terminlu", T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn denk pro VKV/mikrovlnn zvody", T_TWTERM, "Twterm", T_USE_11M, "Pouvat ^[[11m", T_VT_100_FRAMES, "Rmeky VT 100", T_WELCOME1, "Vt T Tuk!", T_WELCOME2, "Prosm zadej svou znaku a loktor:", T_WELCOME, "Vtej", T_XTERM, "Xterm", T_YES, "Ano", T_CANT_APPEND_S, "Nelze pidat na konec souboru %s", T_CANT_WRITE, "Nelze zapsat do souboru", T_CANT_WRITE_S, "Nelze zapsat do souboru %s", T_CANT_READ, "Nelze pesto soubor", T_CANT_READ_S, "Nelze pest soubor %s", T_SAVED_S, "Uloeno %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - rychlost CW ", T_CANT_OPEN_S, "Nelze otevt %s", T_CANT_LOCK, "Nelze zamknout soubor", T_CANT_LOCK_S, "Nelze zamknout soubor %s", T_LOADING_CTEST_S, "*** Naten zvod %s", T_NO_FILES, "Neexistuj dn soubory", T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje", T_BAND_NOT_OPEN, "Psmo nen v tomto zvodu aktivni", T_NO_BANDS, "Neexistuji dn psma", T_CANT_SET_GR_S, "Nelze nastavit grafick md %s", T_GCALL, "Znaka: %s", T_GWWL, "Loktor: %s", T_GQRB, "Vzdlen.: %d km", T_GQTF, "hel: %d", T_GSEN, "Odeslno: %s %s", T_GRCV, "Pijato: %s %s", T_GTIM, "as: %s", T_GOPE, "Opertor: %s", T_GREM, "Poznmka: %s", T_GWKD, "Wkd: %d", T_GINC, "Zisk azim:%d", T_GLON, "Dl: %7.2f %-6s", T_GLAT, ": %7.2f %-6s", T_GLOC, "Lok: %s", T__PLESE_WAIT_, " Prosm o chvli strpen ", T__RO_BAND, " PSMO POUZE KE TEN", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerze " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je svobodn software; me ho it a/nebo pozmovat podle ustanoven Obecn veejn licence GNU, vydan Free Software Foundation; a to verze 2 a ve tto licence.", T_CTEST_ACTIVE, "Ji existuje aktivn zvod ", T_NO_CTESTS, "dn zvody", T_NO_CCLOSE, "Nen co zavrat", T_REALLY, "Opravdu?", T_CLOSE_CTEST, "Opravdu chce zavt tento zvod?", T_GUI_LD, "Uiv. prosted: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw poloek, %d wc poloek, posledn %d\n", T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n", T_VEXC, "Kontrolovan EXC: %d poloek\n", T_DWI, "D_W: %d prefix, %d zem DXCC, %d tverc\n", T_NAMES, "Names: %d jmen\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Pam:", T_NMY, " J: %s:%d\n", T_NGLOBAL, "Hlav.f: %s:%d\n", T_NMASTER, " f: ", T_NREMOTE, "Vzdlen: ", T_NSLAVES, "\nPodzen:\n", T_NINFO, "Sov informace", T_NO_BANDS_QRV, "dn aktivn psma", T_NO_BANDS_CONF, "dn psma", T_NOT_AVAILABLE, "Nepstupn", T_ADD_SUBWIN, "Pidat okno", T_HK_ADD_SUBWIN, "P", T_CLOSE_SUBWIN, "Zavt okno", T_HK_CLOSE_SUBWIN, "Z", T_HK_NINFO, "S", T_NEW, "Nov", T_HK_NEW, "N", T_NEW_WIZZ, "Prvodce novm zvodem", T_HK_NEW_WIZZ, "P", T_NEW_NET, "Nov ze st", T_HK_NEW_NET, "S", T_OPEN, "Otevt", T_HK_OPEN, "O", T_SAVE, "Uloit", T_HK_SAVE, "U", T_EXPORT_EDI, "Exportovat do EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportovat do reportu (VKVPA)", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportovat do ADIFu", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Exportovat do CBR", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportovat do HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Exportovat do MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importovat EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importovat ADIF", T_HK_IMPORT_ADIF, "F", T_IMPORT_SWAP, "Importovat swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import txt seznamu", T_HK_IMPORT_LIST, "X", T_CONTEST_OP, "Nastaven zvodu", T_HK_CONTEST_OP, "N", T_CLOSE_CONTEST, "Zavt zvod", T_HK_CLOSE_CONTEST, "Z", T_ADD_ERROR, "Pidat chybn spojen", T_HK_ADD_ERROR, "H", T_CHOP, "Zmna opertora", T_HK_CHOP, "O", T_CW_CTEST, "Aktualizovat C_W ze zvodu", T_HK_CW_CTEST, "C", T_CW_BAND, "Aktualizovat C_W z psma", T_HK_CW_BAND, "B", T_EXC_CTEST, "Aktualizovat EXC ze zvodu", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Aktualizovat EXC z psma", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importovat DL8EBW databzi", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Zvod nen", T_NO_PEERS, "Dal Tuci nenalezeni", T_NO_MASTER, "f je nedostupn!", T_CTEST_DEF, "Nastaven zvodu", T_HK_CTEST_DEF, "Z", T_BAND_DEF, "Nastaven psem", T_HK_BAND_DEF, "P", T_HK_RESPOP, "V", T_CW_DAEMON, "Klovn CW", T_HK_CW_DAEMON, "K", T_CW_CQ, "CW vzvy", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB vzvy", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Automatick ukldn", T_HK_AUTOSAVE, "M", T_LOAD_CFG_NET, "Nast nastaven ze st", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Nast C_W ze st", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Uloit nastaven", T_HK_SAVE_CFG, "U", T_CONTEST, "Zvod", T_HK_CONTEST, "Z", T_EDIT, "Edit", T_HK_EDIT, "E", T_BANDS, "Psma", T_HK_BANDS, "P", T_SUBWINS, "Okna", T_HK_SUBWINS, "O", T_BAND_SETTINGS_SC, "Nastaven pro psmo %c %s", T_QRV_ON_THIS_BAND, "QRV na tomto psmu", T_QRV_IN_THIS_CTEST, "QRV v tomto zvod", T_READ_ONLY, "Pouze ke ten", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " Vys. zazen:", T_POWER, " Vkon:", T_RXEQUIP, " Pjm. zaz.:", T_ANTENNA, " Antna:", T_AGLASL, "vka zem;moe:", T_OPS, " Opertoi:", T_SPACES1, " ", T_REMARKS, " Poznmky:", T_OK_SECTION_SINGLE, "Kategorie Single v OK", T_OK_SECTION_MULTI, "Kategorie Multi v OK", T_QRG_MIN, "Hranice psma od", T_QRG_MAX, "do [kHz]", T_ADIFBAND, "Nzev psma pro ADIF", T_SKEDQRG, "Frek. pro skedy (lib. formt)", T_BAND_LO, "LO transvertoru [Hz]", T_BANDSW, "Hodnota pepnae psem", T_RESPOP, "Zodpovdn opertor", T_NAME, "Jmno Pjm:", T_CALLSIGN, " Znaka:", T_ADDRESS, " Adresa:", T_POSTCODE, " PS:", T_CITY, " Msto:", T_COUNTRY, " Stt:", T_PHONE, " Telefon:", T_BBSEMAIL, " E-mail:", T_QP0, " --nic -- ", T_QP1, " 1 QSOp*QSOp_m (Standardn IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK Provozn aktiv)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltsk zvody)", T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln den)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (distrikty)", T_QP13, "13 kontinent (CQ WW DX Contest)", T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " --none -- ", T_TP1, " 1 Nsoben (Std. IARU)", T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nov zvod", T_CANT_TRUNC, "Nelze zkrtit soubor s popisem zvodu", T_NAME_OF_CTEST, "Nzev zvodu:", T_CALL_OF_CTEST, "Znaka v zvodu:", T_CLUB_ST, "Klubov znaka:", T_YOURWWL, "Tvj WWL:", T_YOUREXC, "Tvj EXC:", T_DATE_OF_CTEST, "Datum zvodu:", T_QSOUSED, "QSO NR pouito", T_QSOPM, " QSOp nsob.:", T_WWLUSED, "WWL pouito", T_WWLB, "WWL bonus:", T_WWLM, "WWL nsob.:", T_EXCUSED, "EXC pouito", T_EXCB, " EXC bonus:", T_EXCM, "EXC nsob.:", T_EXCNAME, " EXC jmno:", T_PREFM, "PREF nsob:", T_DXCB, " DXC bonus:", T_DXCM, "DXC nsob.:", T_RSTUSED, "RST pouito", T_DEFRS, " Pednast.RS:", T_DEFRST, "Pednast.RST:", T_ALSORSTR, "Tak pro RST-R", T_QP_CALC, " Vpoet QSOp:", T_TO_CALC, "Vpoet celku:", T_EDI_PROP, "EDI poloky", T_RESPOP2, "Odpovdn opertor", T_EDIT_QSO_CD, "Editace spojen %c: %03d", T_CALLSIGN2, " Znaka:", T_CLUB, " Klub:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Opertor:", T_DATE, " Datum:", T_MODE, " Md:", T_RSTS, "Odes.RST:", T_RSTR, "Pij.RST:", T_QSONRS, "Ode.spoj:", T_QSONRR, "Pi.spoj:", T_OPTEXCH, " OptExch:", T_WWL, " tverec:", T_REMARK, "Poznmka:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Poslat sked", T_SELECT, "Vbr ", T_QRG, "Frekvence:", T_WE_CALL, "J volm", T_BAND, " Psmo:", T_TIME, " as:", T_DUPE_QSO, "Duplicitn QSO!", T_CLEAR_THIS_QSO, "Smazat toto QSO", T_EDIT_OLD_QSO, "Editovat star QSO", T_MARK_OLD_QSO, "Oznait star QSO jako ERROR", T_STORE_AS_DUPE, "Uloit toto jako DUPE", T_BAD_CALL, "Tohle nevypad jako znaka", T_N_CALLSIGN, "\nZnaka:", T_AUTOSAVE_OPTS, "Automatick ukldn", T_SAVE_AQ, "Uloit na disk po potu spojen: ", T_SAVE_AM, "Uloit na disk po potu minut: ", T_FSYNC, "Synchronizovat cache s diskem", T_SAVE_AQF, "Uloit na disketu po potu spojen: ", T_SAVE_AMF, "Uloit na disketu po potu minut: ", T_DO_MOUNT, "Pipojit disketu pokud nen v /etc/mtab (N/A)", T_FLOPPY_PATH, "Cesta k disket:", T_MOUNT_CMD, "Pkaz pro pipojen (N/A): ", T_SW_SHELL, "Pk", T_SW_QSOS, "Spoj", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Nedok", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Mapa", T_SW_SCOPE, "Osc", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Peh", T_SW_CHART, "Graf", T_SHELL, "Pkazov dek", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk (rozhovor)", T_SKEDS, "Skedy (dumluven spojen)", T_UNFI, "Nedokonen spojen", T_DXC, "DX Cluster", T_STAT, "Statistiky", T_SWAP, "Swap (N/A)", T_MAP, "Grafick mapa", T_SCOPE, "Osciloskop", T_QRV, "QRV list", T_HF, "KV spojen", T_KST, "KST chat", T_CMD, "Pkaz", T_RESPAWN, "Znovusputn [sek]:", T_UNFI_QSO, "Nedokonen spojen", T_N_REMARK, "\nPoznmka:", T_NO_CQ, "Neexistuj dn vzvy", T_TEXT, "Text:", T_SPEED, "Rychlost [WPM]:", T_REPEAT, "Opakovn", T_DELAY, "ekn [0.1s]:", T_ALLOW_UNDEF, "Povolit i kdy je nkter poloka nevyplnn", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Soubor:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP port:", T_DEVICE, "Klovac zazen:", T_INIT_SPEED, "Poten rychlost [WPM]:", T_INIT_WEIGHT, "Vha CW (30-70):", T_WPMFROM, "Rychlost WPM od", T_WPMTO, "do", T_USE_SPK, "Pout PC speaker", T_LEADIN, "Pedstih PTT [ms]", T_AUTGIVE, "V reimu Run dvat po [znaky]", T_IGN_IFACE_S, "Ignoruji sov rozhran %-5s", T_IGN_ADDR_S, "Ignoruji adresu %s", T_ADD_IFACE_SSD, "Pidno rozhran=%-5s vesmr=%s:%d", T_FORCED_ADDR, "Adresa navc %s", T_TIMESKEW, "POZOR! Detekovn pli velk rozdl asu %d oproti %s:%d !\n", T_DISCONNECTING_SD, "Odpojuji od %s:%d", T_ACCEPTED_SD, "Akceptovno spojen od %s:%d (%s)", T_CONNECTING_SD, "Pipojuji k %s:%d", T_CONNECTED_SD, "Pipojeno k %s:%d", T_DISCONNECTED_SD, "Odpojen od %s:%d", T_LOADED_CFG_SSSS, "Nateno nastaven pro %s %s (%s,%s)", T_LOADED_CW, "Natena C_W databze", T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenalzen", T_CANT_CREATE_HOME_S, "Nelze vytvoit adres %s", T_CANT_LOAD_CFG, "Nelze nast konfiguraci!\nProgram neme pracovat sprvn!", T_ERR_RC, "Dolo k chyb pi ten konfigurku!\nSoubor byl pravdpodobn uloen novjm Tukem !\nRadji neukldej konfiguraci nebo pijde o data v konfigurku!", T_SES_QTR, " as ", T_SES_QRA, " Znaka ", T_SES_RST, " RST-O- RST-P- ", T_SES_QTH, " tverec ", T_SES_QRB, "Body/vzd hel", T_SES_FLG, " Pzn", T_SES_OPE, " Oper ", T_SES_EXC, " Exch ", T_SES_REM, " Poznmka ", T_SES_WELCOME, "Vt t Tuk! ", T_SES_PRESS_F10, "Stiskni F10 pro vstup do menu. ", T_SES_HAVE_FUN, "Uij si.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zem Celkem-b Prm", T_SES_AVG, "Prm: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " tverce: %d", T_SF_WWLS_UNDER, "----------------", T_SF_EXCS, " EXC poloky: %d", T_SF_EXCS_UNDER, "--------------------", T_SF_MISS_EXCS, " Chybjc EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " Prefixy: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " Zem DXCC: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " Dlan loktory: %d", T_SF_WKD_WWLS_UNDER, "----------------------", T_SF_QSO_WWL4, " Spojen do velkch loktor: %d", T_SF_QSO_WWL4_UNDER, "-----------------------------------", T_SF_STATS_BAND, " Statistiky pro psmo %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Zvod: %s", T_SF_ALLBQSOS, "Spojen na vech psmech: %d", T_SF_ALLBQSOP, "Body za spojen na vech psmech: %d", T_SF_ALLBPTS, "Celkov poet bod: %d", T_SF_QSOS, "Spojen: %d", T_SF_QSOP, "Body za spojen: %d", T_SF_PTS, "Body: %d", T_SF_AVG_PTS, "Prmer bod/spojen: %5.2f", T_SF_AVG_QSOP, "Prmr bod za spojen/spojen: %5.2f", T_BAND_RO, "Psmo je pouze ke ten", T_THIS_BAND, "Toto psmo", T_OTHER_BANDS, "Ostatn psma", T_CW_DB, "C_W databze", T_PROC_EXITED, "*** Proces skonil\n", T_WE_CALL2, "my volme", T_WE_LISTEN, "my poslouchme", T_QSL, "Slben QSL", T_RECORD, " Nahrvn provozu", T_MAXMIN, "Max. doba nahrvn", T_TEMPLATE, "ablona pro nahrvan soubor", T_PCM8, "8 bitov PCM", T_PCM16, "16 bitov PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Poet kanl", T_SAMPLERATE, "Vzorkovac frekvence", T_FILLOP, "Vypl znaky opertor", T_HK_FILLOP, "V", T_RECAQRB, "Pepoti QRB,QTF", T_HK_RECAQRB, "P", T_NETWORK, "S a trasovn", T_HK_NETWORK, "T", T_IF_IGNORE, "Ignorovat interfejsy:", T_IP_IGNORE, " Ignorovat podst:", T_IP_ANNOUNCE, " Annoncovat do st:", T_TRACE_BCAST, "Trasovat broadcasty ", T_TRACE_SOCK, "Trasovat sockety", T_TRACE_RECV, "Trasovat pijat data", T_TRACE_SEND, "Trasovat odeslan data", T_TRACE_QSOS, "Trasovat spojen", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Svazek nepipojen %s", T_RECSRC_NONE, "Nenastavovat", T_RECSRC_MIC, "Mikrofon", T_RECSRC_LINE, "Linkov vstup", T_NEW_CALL, "Nov!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV na %s", T_SKED_QRG, "QRG pro skedy", T_HK_SKED_QRG, "G", T_N_SKED_QRG, "\nQRG pro skedy:", T_GRAB_BAND, "Pevzt psmo", T_HK_GRAB_BAND, "P", T_FORCE_RUN, "RUN md nsiln", T_HK_FORCE_RUN, "R", T_EXPORT_STATS, "Exportovat statistiky", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX spojen:", T_SF_TOP_DX_UNDER, "----------------------", T_ROTAR, "Rottor", T_HK_ROTAR, "R", T_AZIMUTH, " Azimut", T_ELEVATION, "Elevace", T_CH_SPY, "pehovn", T_HK_CH_SPY, "E", T_CH_ENDSPY, "Konec pehovn", T_HK_CH_ENDSPY, "N", T_EXPORT_TITLPAGE, "Exportovat tituln strnku", T_HK_EXPORT_TITLPAGE, "L", T_BREAK_RECORD, "Ukonit nahrvn", T_HK_BREAK_RECORD, "U", T_GLOBAL_OPERATOR, "Zmnit na vech psmech", T_GLOBAL_OPERATOR2, "Globln", T_MAXFRAG, "Max. poet fragment (>=2)", T_PLAY_LAST, "Pehrt posledn nahrvku", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Rzn nastaven", T_HK_MISCOPTS, "R", T_LOGLINES, "dky logu: ", T_SKEDSHIFT, "Posuv skedu (minuty): ", T_STARTBAND, "Psmo po startu: ", T_GFX_X_CH, "Rozlien (znaky):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Rozlien (body):", T_GFX_Y_PX, "x", T_CALL_INFO, "Informace o znace", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSO/hod: %d", T_SF_QSOP_HOUR, "Body/hod: %d", T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d", T_SF_HOURS, " Hodiny", T_SF_HOURS_UNDER, "----------", T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr bod/QSO", T_QSO_CHECK, "Kontrola spojen", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "A", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "Minimln msto na disku [MiB]", T_FORMAT, "Formt zznamu", T_PCM_PLAY, "Alsa pehrvn", T_PCM_REC, "Alsa zznam", T_PERIOD, "Trvn periody [ms]", T_BUFFER, "Trvn bufferu [ms]", T_ALSA_MIXER, "Alsa mixer", T_CAPTURE, "Zdroj zznamu", T_DSP, "Cesta k /dev/dsp", T_MIXER, "Cesta k /dev/mixer", T_RECSRC, "Zdroj pro zznam", T_PA_PLAY, "Portaudio pehrvn", T_PA_REC, "Portaudio zznam", T_HOSTNAME, "Jmno stroje:", T_SLASHKEY, "Klvesa pro lomtko", T_FIXQRG, "Kalibrovat frekvenci", T_HK_FIXQRG, "K", T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]", T_BAD_QRG, "Chybn zadan frekvence", T_CALLSIGN3, "Znaka", T_CALLSIGN_KST, "Znaka stanice na KST:", T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s", T_WINKEYOPTS, "Nastaven Winkey", T_WK_WK2, "Rychl inicializace Winkey2", T_WK_USEPOT, "Pout potenciometr", T_WK_USEBUT, "Pout tlatka", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Run kl", T_WK_SWAP, "Prohodit pastiku (levk)", T_RIGOPTS, "Rdio", T_HK_RIGOPTS, "I", T_RIG_DEVICE, "Port:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudov rychlost: ", T_RIG_CIV, "Adresa CI-V (hex)", T_RIG_FREQSHIFT, "Frek. posun SSB->CW", T_RIG_CHOOSE, "Vybrat", T_ROTAROPTS, "Rottory", T_HK_ROTAROPTS, "O", T_DSSAVER, "Vypnout spoi obrazovky", T_DESC, "Popis", T_ROT_NONE, "Nic", T_ROT_OK1ZIA_TTYS, "OK1ZIA sr. port", T_ROT_OK1ZIA_FTDI, "OK1ZIA USB", T_ROT_HAMLIB, "Hamlib", T_ROT_REMOTE, "Remote", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Sr. slo #", T_ROT_ADD, "Pidat nov rottor", T_HK_ROT_ADD, "P", T_ROT_REMOVE, "Smazat rottor", T_HK_ROT_REMOVE, "S", T_TIMEOUT, "asov limit:", T_BEAMWIDTH, "ka laloku", T_SADDR, "Komunikan adresa:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Psmeno pro vzdlen rottor", T_QSOGLOB, "Globln slo spojen", T_PREFGLOB, "Globl prefix", T_NOT_RECORDING_S, "Nezaznamenv se - %s", T_SKEDCOUNT, "Poet sked v popup okn: ", T_FONTHEIGHT, "Vka fontu (16-32): ", T_RIG_POLL_MS, "Interval dotaz [ms]: ", T_RIG_QRG_R2T, "Zmnit psmo z rdia", T_RIG_QRG_T2R, "Zmnit psmo na rdiu", T_RIG_MODE_T2R, "Zmnit md na rdiu", T_RUN_MODE, "Run md", T_HK_RUN_MODE, "U", T_SP_MODE, "Vyhledvac md", T_HK_SP_MODE, "V", T_RIG_CLR_RIT, "Smazat RIT po uloen QSO v reimu Run", T_RIG_DEBUG, "Chybov vpis rdia", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Psmo QSO Body Nso", T_HF_SUM, "Sum:", T_HF_LAST, "Posl. Q-%s B-%s", T_EVEN, "TX sud", T_HK_EVEN, "S", T_ODD, "TX lich", T_HK_ODD, "L", T_1ST, "TX prvn periodu", T_HK_1ST, "P", T_2ND, "TX druh perioda", T_HK_2ND, "D", T_HF_SCORE, "Skre:", T_EXPMODE, "Expedin md", T_TTTYPE, "Jen slice jsou", T_ROT_POLL_MS, "Interval dotaz [ms]:", T_VERSION, "Verze", T_HK_VERSION, "V", T_REMOTE_HOST, " Vzdlen stroj:", T_REMOTE_PORT, "Vzdlen TCP port:", T_REMOTE_PASS, " Vzdlen heslo:", T_STARTING_AC, "Spoutm A/C", T_STOPPING_AC, "Ukonuji A/C", T_ASL_5D_M, "Vka: %5d m", T_SPEED4D_KMH, "Rychlost:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Trvn: %ld", T_EXPORTING_S, "Exportuji %s", T_CANT_OPEN_ALSA_PCM_S_S, "Nelze otevt zvukovku Alsa '%s': %s", T_EXPORTING, "Exportuji ...", T_TERMINATING_CONVERSION_TABLES, "Ukonuji konverzn tabulky", T_LOADING_CHARTS, "Natm grafy", T_INITIALIZING_CWPTT_CONTROL, "Inicializuji klovn CW/PTT", T_NO_PPDEV, "Nen zakompilovna podpora pro klovn paralelnm portem", T_NO_DAVAC4_SUPPORT, "Nen zakompilovna podpora pro Dva 4, zkontrolujte libftdi", T_CANT_CREATE_PIPE, "Nelze vytvoit rouru", T_TERMINATING_CWDAEMON, "Ukonuji klovn CW/PTT", T_INIT_CWDB, "Inicializuji databazi loktor", T_TERM_CWDB, "Ukonuji databzi loktor", T_LOADING_CWDB, "Natm databzi loktor", T_QRV_ON, "QRV na: ", T_CANT_INIT_FTDI, "Chyba pi inicializaci knihovny libftdi pro Dva 4", T_CANT_OPEN_DAVAC4, "Nemohu otevt USB zazen %04x:%04x pro Dva 4, chyba %d %s", T_CANT_SET_BAUDRATE, "Nemohu nastavit rychlost pro Dva 4, chyba=%d %s", T_CANT_ENABLE_BITBANG, "Nemohu zapnout bitbang reim, chyba=%d %s", T_CANT_WRITE_TO_DAVAC4, "Chyba pi zpisu do Dvae 4, chyba=%d %s", T_INIT_SOUNDCARD, "Inicializuji zvukovou kartu", T_NO_OSS, "Podpora OSS nen zakompilovna", T_NO_ALSA, "Podpora Alsa nen zakompilovna", T_NO_PORTAUDIO, "Podpora Portaudio nen zakompilovna", T_NO_SNDFILE, "Podpora Libsndfile nen zakompilovna", T_NO_SNDPIPE, "Podpora pro Sndpipe nen zakompilovna", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Inicializuji DXCC databzi", T_FREE_DWDB, "Ukonen DXCC databzi", T_LOAD_DWDB, "Natm DXCC databzi", T_CALLSIGN_UNKNOWN, "Znaka je neznm v C_W databzi\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Neznm DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Nesouhlas prefix and velk loktor\n", T_KNOWN_CALL_UNK_LOC, "Znm znaka z neznmho loktoru\n", T_CALL_WITHOUT_P, "Znaka je bez /P a v C_W existuje znaka s /P\n", T_CALL_WITHOUT_D, "Znaka je bez /%d a v C_W existuje znaka s /%d\n", T_CALL_IS_WITH_P_AND, "Znaka je s /P a v C_W existuje znaka bez /P nebo CEPT prefixu\n", T_OTHER_SIMILAR_CALL_KNOWN, "Nalezeny dal podobn znaky z tohoto loktoru. Mon %s?\n", T_CALL_ON_BAND_S, "Znaka na psmu %s je %s\n", T_LOCATOR_ON_BAND, "Loktor na psmu %s je %s\n", T_QSO_CHECK_LIST, " Tuk - vpis kontroly spojen\n", T_CALL_SN, " Znaka: %s\n", T_CONTEST_SN, " Zvod: %s\n", T_DATE_SN, " Datum: %s\n", T_CHECKING_S, "Kontroluji %s", T_BAND_C_SN, " Psmo %c %s\n", T_SEEMS_TO_BE_OK, "Zd se bt O.K.\n", T_CW_NOT_FOUND, "C_W: %s nenalezen\n", T_0X_NOT_IN_DB, " 0x (nen v databzi)", T_NAME_IS, "Jmno: %s - jmno je %s\n", T_NAME_UNKNOWN, "Name: %s - jmno neznm\n", T_INIT_DXC, "Inicializuji DX cluster", T_FREE_DXC, "Ukonuji DX cluster", T_HK_SELECT, "V", T_HIDE, "Skrt", T_HK_HIDE, "S", T_INFO, "Informace", T_HK_INFO, "I", T_USE, "Pout", T_HK_USE, "P", T_BAD_DXC_PORT, "*** Chybn TCP port pro DX cluster %s ***\n", T_ENTER_TO_DXC, "\n*** Stiskni ENTER pro pipojen k DXC ***\n", T_CANT_RESOLVE, "*** Nemohu zjistit IP adresu %s: %s ***\n", T_HOST_RESOLVED, "*** IP adresa zjitna ", T_CANT_CREATE_SOCKET, "*** Nemohu vytvoit soket. %s ***\n", T_CONNECTING_TO, "*** Pipojuji k %s ***\n", T_CANT_CONNECT_TO, "*** Nemohu se pipojit k %s, %s ***\n", T_CONNECTED_SOCKET, "*** Pipojuji k soketu %d ***\n", T_ERROR_READING_SOCKET, "*** Chyba pi ten soketu: %s ***\n", T_DISCONNECTED, "\n*** Odpojeno ***\n", T_RESOLVING, "*** Zjiuji IP adresu %s ***\n", T_LOADED_LOCS_NAMES, "Nateno %d loktor a %d jmen z %s", T_SAVED, "Uloeno %s", T_LOADING_CONTEST, "Natm zvod %s", T_LOADING_LOGFILE, "Natm log", T_LOADING_TALK, "Natm talk", T_SEARCH_FILES, "Vyhledvm soubory se zvodem", T_LOADING_BAND, "Natm psmo %s", T_LOADING_SPY, "Natm mrovn", T_LOADING_HICALLS, "Natm zvraznn", T_LOADING_QRV, "Natm QRV databzi", T_LOADING_CHART, "Natm grafy", T_SAVING_CONTEST, "Ukldm zvod", T_UPD_INT_DATA, "Aktualizuji intern data", T_CALC_STATS, "Vypotvm statistiky", T_ANN_OVER_NET, "Anoncuji po sti", T_ACTIVATING_BAND, "Aktivuji psmo %s", T_UPDATING_WKD, "Aktualizuji dlan znaky", T_UPDATING_QRBQTF, "Aktualizuji vzdlenosti a azimuty", T_UPDATING_GAIN, "Aktualizuji graf zisku", T_SEN_OVER_NET, "Poslm informaci po sti", T_INIT_EXCDB, "Spoutm EXC databzi", T_FREE_EXCDB, "Ukonuji EXC databzi", T_INIT_FFT, "Spoutm Fourierovu analzu", T_FREE_FFT, "Ukonuji Fourierovu analzu", T_INIT_ROTAR, "Spoutm rottory", T_FREE_ROTAR, "Ukonuji rottory", T_LOCATOR, "Loktor:", T_BAND2, "Psmo", T_POINTS, "Body", T_AVG, "Prmr", T_INIT_HTTPD, "Spoutm HTTP server", T_FREE_HTTPD, "Ukonuji HTTP server", T_NO_CONTEST_OPENED, "

dn zvod nen oteven

\n", T_NO_CONTEST_OPENED2, "dn zvod nen oteven", T_STATS, "Statistiky", T_BAND_NOT_FOUND, "Psmo nenalezeno", T_BAND_C_NOT_FOUND, "

Psmo %c nenalezeno

", T_QSOS_IN_DATABASE, "spojen v databzi", T_TUCNAK_ONLINE_LOG, "Tuk - online log", T_DATE2, "Datum", T_UTC, "UTC", T_CALL, "Znaka", T_CALL_NOT_FOUND, "Znaka nenalezena", T_CANT_LOAD_INPOUT, "Chyba pi natn inpout32.dll, chyba %d", T_FREE_TERM, "Ukonuji terminl", T_TERM_KEYMAPS, "Ukonuji mapovn klves", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AkKST", T_HK_ACKST, "A", T_MISTAKE, "Omyl", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "dost o sked", T_HK_ASK_FOR_SKED, "S", T_MESSAGE, "Zprva", T_HK_MESSAGE, "Z", T_AC_INFO, "A/C informace", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Posln sel po KST je zakzno\n", T_RESOLVED, "*** IP adresa zjitna ", T_ENTER_TO_CONNECT_KST, "\n*** Stiskni ENTER pro pipojen k ON4KST ***\n", T_SENDING_SH_US, "*** Poslm /sh us ...\n", T_SKIP_LINE, "Peskakuji dek %d '%s'", T_CANT_CREATE_HOME, "Chyba pi vytven domovskho adrese '%s'", T_MUST_BE_DIR_MODE, "'%s' mus bt adres (md 0%oo)", T_TUCNAK_DIRECTORY_IS, "Adres Tuka je %s", T_INIT_MAP, "Spoutm polrn mapu", T_DISABLE_SAVER, "Vypnm eti obrazovky", T_STARTING_TUCNAK, "Startuji Tuka", T_FREE_MAP, "Ukonuji polrn mapu", T_INIT_MASTERDB, "Spoutm master databzi", T_FREE_MASTERDB, "Ukonuji master databzi", T_LOAD_MASTERDB, "Natm master databzi", T_TUCNAK_SVN_LIBZIA_SVN, "Tuk SVN verze: %s\nLibzia SVN verze: %s", T_DIRECTORY_SCAN, "Natn adrese", T_V3_COMPATIBILITY, " (kompatibilita s v3)", T_RELOAD_INTERFACES, "Nast rozhran", T_SET_READONLY, "Psma pouze ke ten", T_CHANGE_TYPE, "Zmnit typ", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Otevt pipojen", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Ukonit pipojen", T_HK_KILL_CONNECTION, "U", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Exportovat do TXT", T_ADD_CONTEST, "Pidat zvod", T_HK_ADD_CONTEST, "P", T_ADD_FILES, "Pidat soubor(y)", T_HK_ADD_FILES, "S", T_ADD_CONTESTS, "Pidat zvody", T_HK_ADD_CONTESTS, "Z", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Test reakce na pd", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Test vnitn chyby", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Uloit hashe spojen", T_HK_DUMP_RW_BANDS, "H", T_UPDATE, "Aktualizovat program", T_HK_UPDATE, "A", T_SETTINGS, "Nastaven", T_HK_SETTINGS, "N", T_UPLOAD_TO_VHFNET, "Nahrt denky na Moravany", T_HK_UPLOAD_TO_VHFNET, "M", T_MEDIAWIKI_UPLOAD, "Nahrt report na MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "O", T_VOIP_SPY, "VOIP mrovn", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "Konec VOIP mrovn", T_HK_END_VOIP_SPY, "K", T_OLD_TEST_NO_SPY, "Zvod je star, nelze mrovat", T_NETWORK_SCAN, "Skenuji s", T_HTTPD_OPTIONS, "Nastaven HTTPD", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "Letadla (A/C)", T_HK_AC_OPTIONS, "L", T_SDR_OPTIONS, "SDR", T_HK_SDR_OPTIONS, "D", T_OTHER, "Jin:", T_NONE, "Nic ", T_RSTS2, "RST-Od", T_RSTR2, "RST-P", T_QSONRR2, "QSO-P", T_EXC2, "EXC", T_UNUSED, "Nepouit", T_USED_6, "Poui.(6)", T_OPT_6, "Volit.(6)", T_USED_4, "Poui.(4)", T_OPT_4, "Volit.(4)", T_FREE, "Voln ", T_VERIFIED, "Oven", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Potvrdit WWL", T_CONFIRM_EXC, "Potvrdit EXC", T_FONT_SIZE, "Velikost fontu: ", T_DXC_HOSTNAME, "DXC stroj:", T_TCP_PORT, "TCP port:", T_DXC_USERNAME, "DXC uivatel:", T_PASSWORD, "Heslo:", T_KST_USERNAME, "KST uivatel:", T_KST_YOURNAME, "KST jmno:", T_SDR, "SDR", T_PARPORT, "paraleln", T_TTYS, "sriov", T_AUDIO_SUBSYSTEM, "Audio subsystm:", T_PLAYBACK_VOLUME, "Hlasitost pehrvn", T_CAPTURE_VOLUME, "Hlasitost zznamu", T_ENABLE_REMOTE_CONNECT, "Povolit pipojen ke vzdlenmu", T_TRACE_RIG, "Trasovat rdio", T_TRACE_KEYS, "Trasovat klvesy", T_SAVE_RESTART, "Muste uloit konfiguraci a restartovat Tuka", T_FULLSCREEN, "Na celou obrazovku", T_TOUCH, "Dotykov ovldn", T_ALT_QWER, "Alt pepne QWER.. na 1234..", T_NO_LOCKS, "Nezamykat porty", T_PORTRAIT_ORIENTATION, "Orientace na vku", T_REVERSE, "Obrcen", T_CHOOSE_RIG, "Vybrat rdio", T_RIG_D, "Rdio %d", T_NEW_RIG, "Nov rdio", T_ENABLED, "Povoleno", T_SET_PTT_ON_RADIO, "Zapnout PTT na rdiu", T_DISABLED, " (zakzno)", T_ADD_RIG, "Pidat rdio", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rottor %d", T_ENABLE, "Povolit", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Zobrazit privtn informace", T_LOAD_FROM_NET, "Nast ze st", T_LOAD_CWDB, "Nast C_W databzi", T_LOAD_NAMEDB, "Nast databzi jmen", T_LOAD_QRVDB, "Nast QRV databzi", T_READONLY_BANDS, "Psma pouze ke ten", T_ENABLE_AC, "Povolit A/C", T_AC_URL, "Alternativn URL pro data z radaru", T_K_FACTOR, "K_faktor troposfry", T_AC_AREA_WIDTH, "ka odrazn oblasti v km", T_AC_EL_ANGLE, "Minimln hel elevace", T_AC_MAX_EL_ANGLE, "Maximln hel elevace", T_AC_MIN_DURATION, "Minimln doba odraz [s]", T_AC_MAX_DIFF, "Max. rozdl odrazovch hl", T_BAD_NUMBER_RANGE, "Chybn rozsah sla", T_AF_SRATE_GREATER_SRATE, "Vzork. kmit. audia neme bt vy ne vzork. kmitoet", T_SRATE_DIVISIBLE, "Vzork. kmitoet mus bt dliteln audio vzork. kmitotem", T_NO_DEVICE, "dn zazen", T_IQ_SOURCE, "Zroj IQ signlu:", T_WAV_FILE, "Soubor WAV", T_WAV_FILE_NAME, "Jmno WAV souboru", T_AF_OUTPUT, "Audio vstup:", T_AF_SAMPLE_RATE, "Vzork. kmit. audia", T_BLOCK_SIZE, " Velikost bloku", T_CW_FILTER, " CW filtr od", T_TO_HZ, "do [Hz]", T_SSB_FILTER, " SSB filtr", T_INIT_NAMEDB, "Spoutm databzi jmen", T_FREE_NAMEDB, "Ukonuji databzi jmen", T_LOAD_NAMEDB2, "Natm databzi jmen", T_INIT_NET, "Spoutm s", T_FREE_NET, "Ukonuji s", T_ONLY_55555_CAN_REMOTE, "Pouze Tuk s portem 55555 se me pipojit ke vzdlenmu kvli prevenci routovacch smyek", T_CANT_CONNECT_TO_MYSELF_LO, "Nemohu se pipojit sm na sebe (rozhran lo)", T_CANT_CONNECT_TO_MYSELF, "Nemohu se pipojit sm na sebe (rozhran %s)", T_CANT_PARSE_REMOTE_HOST_S, "Nelze zjistit IP adresu vzdlenho Tuka %s", T_TIME_WAS_SET, "as byl nastaven", T_FAILED_TO_SET_TIME, "Chyba pi nastaven asu", T_INIT, "INICIALIZUJI", T_CONNECTING, "PIPOJUJI", T_CONNECTED, "PIPOJENO", T_WAIT_ACK, "EK.POTVRZ", T_DISCONNECTED2, "ODPOJENO", T_DEAD, "MRTV", T_LONG_XFER, "DLOUH.PENOS", T_AUTHENTICATED_USER_S, "Oven uivatel %s", T_BAD_AUTHENTICATION_S, "Chyba oven %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Zaal dlouh penos, prosm EKEJTE", T_LONG_TRANSFER_FINISHED, "Dlouh penos dobhl", T_INIT_NTP, "Spoutm monitorovn NTP", T_FREE_NTP, "Ukonuji monitorovn NTP", T_NO_NTP, "POZOR! as na tomto stroji nen synchronizovn. Prosm pouijte NTP.", T_INIT_SPEAKER, "Spoutm PC speaker", T_FREE_SPEAKER, "Ukonuji PC speaker", T_CANT_PLAY, "Chyba pi pehrvn %s - %s", T_CANT_SEEK_TO_END, "Chyba pi nastaven ukazatele na konec souboru %s - %s", T_CANT_SEEK_TO_START, "Chyba pi nastaven ukazatele na zatek souboru %s - %s", T_CANT_OPEN, "Chyba pi oteven %s %s", T_TIP_MKNOD, "Tip: spuste jako root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: spoute jako root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Chyba pi pepnut %s do EPP mdu %s", T_CANT_EXCLUSIVE_ACCESS, "Chyba exkluzivnho pstupu k %s %s", T_CANT_CLAIM, "Nelze zabrat %s %s", T_INIT_QRVDB, "Spoutm QRV databzi", T_FREE_QRVDB, "Ukonuji QRV databzi", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AkKst", T_START, "Start", T_DUR, "Trv", T_NR, "s", T_TEXT2, "Text", T_16_SORT, "1-6: azen, ", T_A_ALL, "A: ve", T_ENTER_SPACE_EDIT, ", Enter, Mezera, E: editovat, Insert, Delete, U: obnovit, /: hledat", T_LOAD_QRVS, "Natm QRV", T_UNSPECIFIED, "nespecifikovno", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBo CWp", T_CWS_SSBR, "CWo SSBp", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "Pidna chyba na psmo %c, slo spojen %d\n", T_FOUND_D_ERRORS, "Dolo k %d chybm%s pi ten %s", T_FOUND_D_ERRORS_RC_NET, "Dolo k %d chybm pi ten konfigurace ze st", T_REGISTRATED_ROTATORS, "Registrovan rottory:", T_UNSUPPORTED_ROTATOR, "Nepodporovan typ rottoru %d\n", T_WAIT_HL_ROT_THREAD, "ekm na vlkno hamlib rottoru", T_INIT_ROTARS2, "Spoutm rottory", T_UNKNOWN_ROTAR, "Neznm rottor '%s'\n", T_ROTAR_ERROR_S, "Chyba rottoru: %s", T_CANT_RECORD_FROM_SDR_DSP, "Chyba zznamu ze SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Chyba pehrvn na SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Chyba oteven (pehrvn) virtuln zvukovky", T_CANT_READ_FROM, "Chyba ten z", T_CANT_WRITE_TO, "Chyba zpisu do", T_MULTIPLIED_WWLS_D, " Nsobiov loktory: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Aktualizace", T_ENTER_TO_KST, "*** Stiskni ENTER pro pipojen k ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Chybn jmno aktualizanho balku", T_CANT_EXECUTE_INSTALLER, "Chyba sputn instaltoru, ", T_UPDATE_OF_TUCNAK_FAILED, "Aktualizace Tuka selhala", T_UPDATE_FAILED, "Aktualizace selhala", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Aktualizace selhala, neznm formt odpovdi.", T_UPDATE_OF_TUCNAK_FAILED_S, "Aktualizace Tuka selhala. %s", T_NEW_VERSION_AVAIL, "K dispozici je nov verze %s. Aktualizujte v menu Soubor, Aktualizace.", T_NO_NEW_VER, "Novj verze nen k dispozici.", T_READING_LIST_OF_OPENED_CONTESTS, "tu seznam otevench zvod...", T_CHOOSE_CONTEST, "Vybrat zvod", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "Neexistuje zvod k uploadu", T_OBTAINING_CONTEST_WEB_FORM, "Zskvm formul zvodu...", T_ALL_EDI_FILES_PROCESSED, "Vechny EDI soubory byly zpracovny.", T_UPLOADING_LOG_FILE_S, "Uploaduji soubor denku %s ...", T_UPLOADING_BAND_S, "Uploaduji psmo %s", T_CONFIRMING_LOG, "Potvrzuji denk...", T_RESULT_ERROR, "*** CHYBA, prosm pette si chybov hlen ve", T_LOG_IS_NOT_VALID, "Denk nen platn. Prosm zkontrolujte chybov hlen a opakujte: %s", T_DOWNLOADING_CLAIMED_SCORES, "Natm nahlen vsledky...", T_LOGS_UPLOADED, "Upload denk dokonen.", T_HTTP_STATUS, "Stav HTTP: ", T_LOG_UPLOAD, "Upload denku", T_VOIP_NO_INITIALIZED, "VOIP nebylo inicializovno", T_PAGE_NAME, "Nzev strnky", T_OVERWRITE_EXISTING_FILES, "Pepsat existujc soubory", T_SITE_URL, "URL webovch strnek", T_USERNAME, "Uivatel", T_PASSWORD2, " Heslo", T_EXPORT_MAP, "Exportovat mapu", T_EXPORT_CHART, "Exportovat graf", T_MEDIAWIKI_UPLOAD2, "Upload na Mediawiki", T_BAD_AUTH_USER, "Chybn uivatel %s != %s", T_BAD_AUTH_PASS, "Chybn heslo %s != %s\n", T_CTEST_NOT_SAME_AC, "Zvody nejsou stejn: Formt AC paketu", T_CANT_GET_FMTS, "Chyba pi zjitn podporovanch audio formt: %s", T_CANT_SET_FMT, "Chyba pi nastaven audio formtu %d, doporuen %d: %s", T_CANT_SET_FMT_RET, "Chyba pi nastaven doporuenho audio formtu %d, vsledek %d: %s", T_CANT_SET_FALLBACK, "Chyba pi nastaven nouzovho audio formtu %d, vsledek %d: %s", T_CANT_SET_CHANNELS, "Chyba pi nastaven kanl %d, doporueno je %d: %s", T_CANT_SET_CHANNELS_RET, "Chyba pi nastaven doporuench kanl %d, vsledek %d: %s", T_CANT_SET_RATE, "Chyba pi nastaven vzorkovn %d, doporueno %d: %s", T_CANT_SET_RATE_RET, "Chyba pi nastaven doporuenho vzorkovn %d, vledek %d: %s", T_CANT_SET_BLOCK_SIZE, "Chyba pi nastaven velikosti bloku %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Neznm zazen PortAudio %d", T_CANT_OPEN_PA_STREAM, "Chyba pi oteven zazen PortAudio %d pro %s: %s", T_RECORD2, "zznam", T_PLAYBACK, "pehrvn", T_CANT_PA_STREAM, "Chyba %s zazen PortAudio %d: %s", T_CANT_STOP_PA, "Chyba pi zastaven zazen PortAudio: %s", T_CANT_CLOSE_PA, "Chyba pi zaven zazen PortAudio: %s", T_TIP_RMMOD, "Tip: zkuste spustit jako root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: nebo zabijte procesy vypsan \"lsof %s\"", T_CANT_SET_STROBE, "Chyba pi nastaven parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Neznm slo rottoru %d nebo chyba inicializace", T_CANT_CREATE_HL_ROT_THR, "Nelze vytvoit vlkno pro rottor\n", T_INIT_SERIAL_DEVICES, "Spoutm sriov zazen", T_BAD_CHECKSUM, "Chybn kontr. souet", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Chybn odpov", T_UNKNOWN_FUNCTION, "Neznm funkce", T_UNKNOWN_ERROR_CODE, "Neznm chybov kd", T_CANT_CREATE_SDR_THR, "Chyba pi vytven vlkna pro SDR\n", T_WAIT_FOR_SDR_THR, "ekm na ukonen vlkna SDR", T_QSO_REQ_FROM_SP, " dost o QSO od S&P ", T_QSO_REQ_SENT, " dost o QSO poslna RUNu ", T_GO, " Je! ", T_LOCATION_UNKNOWN, "Neznm poloha", T_DEGREE, "st.", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s v %-6s (%dkm, %d%s) v %s %s", T_CANT_OPEN_FILE_S_S, "Chyba pi oteven souboru '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Chyba pi oteven zvukov roury", T_INIT_SSB_CQ, "Spoutm SSB vzvy", T_FREE_SSB_CQ, "Spoutm SSB vzvy", T_NO_FILE, "Soubor nebyl specifikovn", T_UNSUP_CHANNELS, "Nepodporovan poet kanl = %d", T_FLOAT_UNSUPP, "Soubory v plovouc dov rce nejsou podporovny", T_CANT_OPEN_DSP_PLAY, "Chyba pi pehrvn na DSP %s", T_REC_DISABLED, "zznam zakzn", T_CONTEST_TOO_OLD, "zvod je pli star", T_NO_FREE_DISK_SPACE, "Nedostatek volnho msta na disku pro %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Chyba pi zpisu do souboru %s: %s", T_CANT_OPEN_DSP_REC, "Cjuna pi zznamu z DSP %s", T_NO_DISK_SPACE, "Nedostatek volnho msta na disku pro soubor", T_CANT_PLAY_FILE, "Chyba pi pehrt souboru %s - %s", T_CANT_WRITE_SS, "Chyba pi zpisu do souboru %s - %s", T_NO_LAST_SAMPLE_RECORDED, "Neexistuje dn posledn nahrvka", T_NO_MACRO_IN_TEMPLATE, "V SSB ablon chyb makro %%", T_NEW_WINDOWS_3, "Pozor, od verze 3.00 existuj typy oken speciln pro DX cluster a ON4KST.\nPoskytuj mnohem lep funknost ne shell.\n\n", T_ENTER_TO_DXC2, "*** Stiskni ENTER pro pipoje k DXC ***", T_LOADING_S, "Natm %s", T_INVALID_WINDOW_TYPE, "Chybn typ okna %d\n", T_INIT_RIG, "Spoutm ovldn rdia %d", T_RIG_ERROR, "Chyba rdia: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Chyba pi vytven vlkna pro rdio\n", T_FREE_RIG, "Ukonuji ovldn rdia %d", T_WAIT_FOR_RIG_THR, "ekm na vlkno rdia", T_INVALID_PARAM, "Neplat.parametr", T_RIG_INVALID_CONFIG, "Chy.konfigurace", T_RIG_NOT_ENOUGH_MEM, "Nedostat.pamti", T_RIG_NOT_IMPLEMENTED, "Neimplementovn", T_RIG_COMM_TIMEOUT, "Timeout pkazu", T_RIG_IO_ERROR, "Chyba I/O ", T_RIG_INTERNAL_ERROR, "Vnitn chyba ", T_PROTOCOL_ERROR, "Chyba protokolu", T_RIG_COMMAND_REJECT, "Pkaz odmtnut", T_RIG_ARG_TRUNCATED, "Argume. zkrcen", T_RIG_F_NOT_AVAILABLE, "Funk.nedostupn", T_RIG_VFO_NOT_TARGET, "VFO neexistuje ", T_RIG_ERROR_ON_BUS, "Ch. na sbrnici", T_RIG_BUS_COLLISION, "Kolize sbrnice", T_RIG_INVALID_ARG, "Neplat.argument", T_RIG_INVALID_VFO, "Chybn VFO ", T_RIG_ARG_OUT_OF_DOM, "Arg.mimo domnu", T_ERROR_D, "Chyba %d", T_CANT_SET_GRAPHICS1, "Chyba pi nastaven grafickho reimu (SDL_Init)", T_CANT_SET_GRAPHICS2, "Chyba pi nastaven grafickho reimu", T_WAIT_SDL_THR, "ekm na SDL vlkno", T_FREE_GRAPHICS, "Ukonuji grafick reim", T_CANT_GET_LIST_OF_CONTESTS, "Chyba pi stahovn seznamu zvod: %s", T_CANT_GET_UPLOAD_FORM, "Chyba pi stahovn formule: %s", T_CANT_READ_LOG_FILE, "Chyba pi ten souboru s denkem %s", T_CANT_UPLOAD_LOG, "Chyba pi uploadu denku: %s", T_CANT_CONFIRM_LOG, "Chyba pi potvrzen denku: %s", T_CANT_GET_CLAIMED_SCORES, "Chyba pi stahovn deklarovanch vsledk: %s", T_ANT_OPEN_DSP_PLAY, "Chyba pi pehrvn na DSP %s", T_CALL2, "Znaka:", T_QTH, "QTH:", T_DATE3, "Datum:", T_QSOS2, "Spojens:", T_POINTS2, "Body:", T_WWLS, "Loktory:", T_DXCCS, "DXCC:", T_AVG2, "Prm:", T_PTSQSO, "bod/qso", T_TOP_10_CALLS, "Top 10 znaek", T_OPERATOR2, "Opertor", T_MODE2, "Md", T_TOP_10_WWLS, "Top 10 loktor", T_CANT_UPLOAD_FILE_S, "Chyba pi uploadu souboru: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Chyba pi uploadu strnky, wiki vrtila: %s", T_FILE_ALREADY_EXISTS, "Soubor ji existuje: %s", T_CANT_UPLOAD_PAGE_RET, "Chyba pi uploadu strnky, wiki vrtila: %s", T_CANT_EDIT_PAGE, "Chyba pi editaci strnky: %s", T_CANT_EDIT_PAGE_RET, "Chyba pi editaci strnky, wiki vrtila: %s", T_CANT_EDIT_PAGE_RET2, "Chyba pi editaci strnky, wiki vrtila: %s", T_EDITING_CONTEST_PAGE, "Edituji strnku se zvodem...", T_ALL_DONE, "Ve dokoneno.", T_UPLOADING_FILE, "Uploaduji soubor %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Neznm soubor pro upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Chyba pi zskvn editanho tokenu: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Chyba pi zskvn editanho tokenu, wiki vrtila: %s", T_QUERYING_EDIT_TOKEN, "Zskvm editan token", T_CANT_LOGIN, "Chyba pi pihlen (2): %s", T_CANT_LOGIN2, "Chyba pi pihlen (2), wiki vrtila: %s", T_CANT_LOGIN1, "Chyba pi pihlen (1): %s", T_LOGGING_IN, "Pihlauji...", T_EXPORTING_FILES, "Exportuji soubory...", T_INIT_WIZZ, "Spoutm contest wizard", T_FREE_WIZZ, "Terminating prvodce zvody", T_LOAD_WIZZ_DATA, "Natm data pro prvodce zvody", tucnak-4.04/intl/castellano.lng0000644000175000017500000011657512535256134013471 00000000000000T__CHAR_SET, "us-ascii", T__LANGUAGE, "Castellano", T_ABOUT, "Acerca", T_BAD_NUMBER, "Numero incorrecto", T_BAD_STRING, "Texto incorrecto", T_BASIC_HELP, "Presione F10 para menu.\nDiviertase!", T_BLOCK_CURSOR, "Block cursor", T_CANCEL, "Cancelar", T_CHARACTER_SET, "Juego de caracteres", T_COLOR, "Color", T_COPYING, "Copy", T_DIFFERENCE, "diferencia", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quieres salir de Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "No se permiten textos vacios", T_ERROR, "Error", T_WARNING, "Cuidado", T_EXIT, "Salir", T_EXIT_TUCNAK, "Salir de Tucnak", T_FILE, "Archivo", T_FULL_SCREEN, "Pantalla Completa", T_HELP, "Ayuda", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "H", T_HK_COPYING, "C", T_HK_EXIT, "X", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R frames", T_LANGUAGE, "Lenguaje", T_LAST, "ultimo", T_LINUX_OR_OS2_FRAMES, "Entorno OS/2 o Linux", T_MEMORY_INFO, "Info de memoria", T_NO_FRAMES, "No frames", T_NO, "No", T_NUMBER_EXPECTED, "Se esperaba un numero en el campo", T_NUMBER_OUT_OF_RANGE, "Numero fuera de rango", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Restrict frames in cp850/852", T_UTF_8_IO, "UTF-8 Entrada/Salida", T_SCREEN, "Pantalla", T_SETUP, "Setup", T_TERMINAL_OPTIONS, "Opciones de terminal", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nTACLOG-like V/U/SHF contest log", T_TWTERM, "Twterm", T_USE_11M, "Use ^[[11m", T_VT_100_FRAMES, "VT 100 frames", T_WELCOME1, "Bienvenido a Tucnak!", T_WELCOME2, "Por favor, ingrese su licencia y los proximos campos de datos:", T_WELCOME, "Bienvenido", T_XTERM, "Xterm", T_YES, "Si", T_CANT_APPEND_S, "No puedo abrir el archivo %s", T_CANT_WRITE, "No puedo escribir el archivo", T_CANT_WRITE_S, "No puedo escribir al archivo %s", T_CANT_READ, "No puedo leer desde el archivo", T_CANT_READ_S, "No puedo leer desde el archivo %s", T_SAVED_S, "Salvado %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - velocidad cw ", T_CANT_OPEN_S, "No puedo abrir %s", T_CANT_LOCK, "No se puede lockear", T_CANT_LOCK_S, "No puedo lockear %s", T_LOADING_CTEST_S, "*** Cargando concurso %s", T_NO_FILES, "No hay archivos en el directorio", T_BAND_EXIST_SS, "CUIDADO! Banda %s (%s) ya existe", T_BAND_NOT_OPEN, "Banda no activa en este concurso", T_NO_BANDS, "No bandas a cargar", T_CANT_SET_GR_S, "No puedo setear modo grafico-%s", T_GCALL, "Licencia: %s", T_GWWL, "Locator: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Enviado: %s %s", T_GRCV, "Recibido: %s %s", T_GTIM, "Hora: %s", T_GOPE, "Op: %s", T_GREM, "Notas: %s", T_GWKD, "Wkd: %d", T_GINC, "ingreso: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Por favor, espere", T__RO_BAND, " BANDA DE SOLO LECTURA", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVersion " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.", T_CTEST_ACTIVE, "El concurso ya esta activo", T_NO_CTESTS, "No concursos", T_NO_CCLOSE, "No hay concurso para cerrar", T_REALLY, "Realmente?", T_CLOSE_CTEST, "Quieres cerrar realmente este concurso?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw items, %d wc items, ultimo %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, ultimo %d\n", T_VEXC, "Verificados EXC: %d items\n", T_DWI, "D_W: %d prefijos, %d DXCCs, %d WWLs\n", T_NAMES, "Nombre: %d nombres\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Memoria:", T_NMY, " Yo: ", T_NGLOBAL, "Global: ", T_NMASTER, "Master: ", T_NREMOTE, "Remote: ", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Network info", T_NO_BANDS_QRV, "No hay bandas QRV", T_NO_BANDS_CONF, "No hay bandas configuradas", T_NOT_AVAILABLE, "No disponible", T_ADD_SUBWIN, "Add subwin", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Close subwin", T_HK_CLOSE_SUBWIN, "C", T_HK_NINFO, "N", T_NEW, "Nuevo", T_HK_NEW, "N", T_NEW_WIZZ, "Nuevo desde el ayudante", T_HK_NEW_WIZZ, "W", T_NEW_NET, "Nuevo desde la red", T_HK_NEW_NET, "T", T_OPEN, "Abrir", T_HK_OPEN, "O", T_SAVE, "Salvar", T_HK_SAVE, "S", T_EXPORT_EDI, "Exportar como EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportar como report", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportar como ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportar como HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importar EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importar ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importar swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Opciones del concurso", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Cerrar concurso", T_HK_CLOSE_CONTEST, "C", T_ADD_ERROR, "Add ERROR", T_HK_ADD_ERROR, "E", T_CHOP, "Cambiar concurso", T_HK_CHOP, "O", T_CW_CTEST, "Actualizar C_W desde el concurso", T_HK_CW_CTEST, "C", T_CW_BAND, "Actualizar C_W desde bandas", T_HK_CW_BAND, "B", T_EXC_CTEST, "Actualizar EXC DB desde el concurso", T_HK_EXC_CTEST, "A", T_EXC_BAND, "Actualizar EXC DB desde bandas", T_HK_EXC_BAND, "T", T_IMPORT_EBW, "Importar base de datos DL8EBW", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "No concurso", T_NO_PEERS, "No encontre peers", T_NO_MASTER, "Master no esta disponible!", T_CTEST_DEF, "Defaults de concursos", T_HK_CTEST_DEF, "O", T_BAND_DEF, "Defaults de bandas", T_HK_BAND_DEF, "B", T_HK_RESPOP, "P", T_CW_DAEMON, "CW keying", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Autosalvar", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Cargar cfg desde net", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Cargar C_W desde net", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Salvar configuracion", T_HK_SAVE_CFG, "F", T_CONTEST, "Concurso", T_HK_CONTEST, "C", T_EDIT, "Editar", T_HK_EDIT, "E", T_BANDS, "Bandas", T_HK_BANDS, "B", T_SUBWINS, "Subwins", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "Seteo de bandas para banda %c %s", T_QRV_ON_THIS_BAND, "QRV sobre esta banda", T_QRV_IN_THIS_CTEST, "QRV en este concurso", T_READ_ONLY, "Solo lectura", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " TX Equip:", T_POWER, " Power:", T_RXEQUIP, " RX Equip:", T_ANTENNA, " Antena:", T_AGLASL, " AGL;ASL:", T_OPS, "Operadores:", T_SPACES1, " ", T_REMARKS, " Notas:", T_OK_SECTION_SINGLE, "Categoria single es OK", T_OK_SECTION_MULTI, "Multi categoria es OK", T_QRG_MIN, "Extremos de banda desde", T_QRG_MAX, "a [kHz]", T_ADIFBAND, "ADIF nombre de banda", T_SKEDQRG, "QRG para skeds (texto libre)", T_BAND_LO, "Transverter's LO QRG [Hz]", T_BANDSW, "Band switch value", T_RESPOP, "Operador responsable", T_NAME, " Nombre:", T_CALLSIGN, " Licencia:", T_ADDRESS, " Direccion:", T_POSTCODE, " Cod.Postal:", T_CITY, " Ciudad:", T_COUNTRY, " Pais:", T_PHONE, " Telefono:", T_BBSEMAIL, " BBS/Email:", T_QP0, " -- nada -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " -- nada -- ", T_TP1, " 1 Multiplicative (Std. IARU)", T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nuevo concurso", T_CANT_TRUNC, "No puedo truncar la descrip. del archivo", T_NAME_OF_CTEST, "Nombre del concurso:", T_CALL_OF_CTEST, "Licencia en el concurso:", T_CLUB_ST, "Radio Club:", T_YOURWWL, "Su Locator:", T_YOUREXC, "SU EXC:", T_DATE_OF_CTEST, "Fecha del concurso:", T_QSOUSED, "QSO NR usado", T_QSOPM, " QSOp multi:", T_WWLUSED, "Locator used ", T_WWLB, "WWL bonus:", T_WWLM, "WWL multi:", T_EXCUSED, "EXC usado", T_EXCB, " EXC bonus:", T_EXCM, "EXC multi:", T_EXCNAME, " EXC nombre: ", T_PREFM, "PREF multi:", T_DXCB, " DXC bonus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST Usado ", T_DEFRS, "Default RS:", T_DEFRST, "Def RST:", T_ALSORSTR, "Tamb. para RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Op. responsable", T_EDIT_QSO_CD, "Editar QSO %c: %03d", T_CALLSIGN2, "Licencia:", T_CLUB, " Club:", T_PADR1, " Direc.1:", T_PADR2, " Direc.2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operador:", T_DATE, " Fecha:", T_MODE, " Modo:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO env.:", T_QSONRR, "QSO rec.:", T_OPTEXCH, " OptExch:", T_WWL, " Locator:", T_REMARK, " Notas:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Sked enviado", T_SELECT, "Seleccionar", T_QRG, " QRG:", T_WE_CALL, " Llamamos", T_BAND, " Banda:", T_TIME, " Hora:", T_DUPE_QSO, "QSO duplicado!", T_CLEAR_THIS_QSO, "Limpiar este QSO", T_EDIT_OLD_QSO, "Editar QSO viejo", T_MARK_OLD_QSO, "Marcar QSO viejo como ERROR", T_STORE_AS_DUPE, "Almacenar como DUP", T_BAD_CALL, "Esto no parece ser una licencia!", T_N_CALLSIGN, "\nLicencia:", T_AUTOSAVE_OPTS, "Opciones de Autosalvado", T_SAVE_AQ, "Salvar al disco luego del QSO:", T_SAVE_AM, "Salvar al disco luego de minutos:", T_FSYNC, "Fsync", T_SAVE_AQF, "Salvar al disquette luego del QSO: ", T_SAVE_AMF, "Salvar al disquette luego de minutos:", T_DO_MOUNT, "Mount no esta en /etc/mtab (no usado)", T_FLOPPY_PATH, "Path al disquette:", T_MOUNT_CMD, "Comando de montar: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Talk", T_SW_SKED, "Sked", T_SW_UNFI, "Unfi", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Map", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Talk", T_SKEDS, "Skeds", T_UNFI, "QSOs no finalizados", T_DXC, "DX Cluster", T_STAT, "Stadisticas", T_SWAP, "Swap (N/A)", T_MAP, "Mapa grafico", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_KST, "KST", T_CMD, "Comando", T_RESPAWN, "Respawn [sec]:", T_UNFI_QSO, "QSO no finalizado", T_N_REMARK, "\nNota:", T_NO_CQ, "No hay CQ definido", T_TEXT, "Texto:", T_SPEED, "Velocidad [WPM]:", T_REPEAT, "Repetir", T_DELAY, "Retardo [0.1s]:", T_ALLOW_UNDEF, "Pemitir aunque algun item no este definido", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Archivo:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "UDP port:", T_DEVICE, "Dispositivo de Keying:", T_INIT_SPEED, "Velocidad inicial [WPM]:", T_INIT_WEIGHT, "Peso:", T_WPMFROM, "WPM Rango desde", T_WPMTO, "a", T_USE_SPK, "Use parlante", T_LEADIN, "PTT retardo in [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignorando interface %-5s", T_IGN_ADDR_S, "Ignorando address %s", T_ADD_IFACE_SSD, "Adicionando interface=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Forzando la direccion %s", T_TIMESKEW, "CUIDADO! Desfasaje de tiempo %d detectado con %s:%d !\n", T_DISCONNECTING_SD, "Desconectando de %s:%d", T_ACCEPTED_SD, "Aceptando %s:%d (%s)", T_CONNECTING_SD, "Conectando a %s:%d", T_CONNECTED_SD, "Conectado a %s:%d", T_DISCONNECTED_SD, "Desconectado de %s:%d", T_LOADED_CFG_SSSS, "Config cargado para %s %s (%s,%s)", T_LOADED_CW, "Cargado datos C_W data", T_PEER_NOT_FOUND, "ERROR! Peer %s no encontrado", T_CANT_CREATE_HOME_S, "No puedo crear el directorio %s", T_CANT_LOAD_CFG, "No puedo cargar la configuracion!\nEl programa no trabajara correctamente!", T_ERR_RC, "Se encontraron algunos errores mientras se examinaba el archivo de configuracion!\nEste archivo fue probablemente guardado con una nueva version de Tucnak!\nNo salve su configuracion a no ser que quiera perder datos!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Notas ", T_SES_WELCOME, "Bienvenido a Tucnak! ", T_SES_PRESS_F10, "Presione F10 para menu.", T_SES_HAVE_FUN, "Tenga suerte.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p PROM", T_SES_AVG, " AVG: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS en WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Estadisticas para banda %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Concurso: %s", T_SF_ALLBQSOS, "QSO's en todas las bandas: %d", T_SF_ALLBQSOP, "QSOp en todas las bandas: %d", T_SF_ALLBPTS, "Puntos en todas las bandas: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO puntos: %d", T_SF_PTS, "Puntos: %d", T_SF_AVG_PTS, "Promedio pts/QSO: %5.2f", T_SF_AVG_QSOP, "Promedio qsop/QSO: %5.2f", T_BAND_RO, "Banda es solo lectura", T_THIS_BAND, "Esta banda", T_OTHER_BANDS, "Otras bandas", T_CW_DB, "C_W base de datos", T_PROC_EXITED, "*** Saliendo del proceso\n", T_WE_CALL2, "Llamando", T_WE_LISTEN, "Escuchando", T_QSL, "QSL prometida", T_RECORD, "Grabando trafico", T_MAXMIN, " Max. duracion de grabacion", T_TEMPLATE, "Mascar para el nombre de archivo grabado", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "mu-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Canales", T_SAMPLERATE, "Sample rate", T_FILLOP, "Fill operators", T_HK_FILLOP, "L", T_RECAQRB, "Recalcule QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Network & trace", T_HK_NETWORK, "K", T_IF_IGNORE, "Ignore interfaces:", T_IP_IGNORE, " Ignore networks:", T_IP_ANNOUNCE, " Anuncie a nets:", T_TRACE_BCAST, "Trace broadcasts ", T_TRACE_SOCK, "Trace sockets", T_TRACE_RECV, "Trace datos recibidos", T_TRACE_SEND, "Trace datos enviados", T_TRACE_QSOS, "Trace QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "No montado %s", T_RECSRC_NONE, "No seteado", T_RECSRC_MIC, "Microfono", T_RECSRC_LINE, "Line in", T_NEW_CALL, "Nuevo!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV en %s", T_SKED_QRG, "QRG para skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG para skeds:", T_GRAB_BAND, "Grab control de banda", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Forzar mode RUN", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Exportar estadisticas", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotor", T_HK_ROTAR, "R", T_AZIMUTH, " Azimuth", T_ELEVATION, "Elevacion", T_CH_SPY, "Espiar", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Finalizar espiar", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Exportar titulo de la pagina", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Cortar registro", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Cambiar para todas las bandas", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. num de fragmentos (>=2)", T_PLAY_LAST, "Escuchar el ultimo ejemplo", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Opciones miscelaneas", T_HK_MISCOPTS, "P", T_LOGLINES, "Log lineas: ", T_SKEDSHIFT, "Sked shift (minutes): ", T_STARTBAND, "Comenzando en banda: ", T_GFX_X_CH, "Resolucion de pantalla (chars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Resolucion de pantalla (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Info de la licencia", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/hora: %d", T_SF_QSOP_HOUR, "Puntos/hora: %d", T_SF_QSOP_50QSO, "Puntos/50 QSOs: %d", T_SF_HOURS, " Horas", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Horas Puntos QSOs PROMpts/QSO", T_QSO_CHECK, "QSO check", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "Espacio minimo libre en disco [MiB]", T_FORMAT, "Formato de la grabacion", T_PCM_PLAY, "Dispositivo Alsa de audio", T_PCM_REC, "Dispositivo Alsa de captura", T_PERIOD, "Periodo de tiempo [ms]", T_BUFFER, "Buffer de tiempo [ms]", T_ALSA_MIXER, "Dispositivo Alsa mezclador", T_CAPTURE, "Fuente de captura", T_DSP, "OSS DSP", T_MIXER, "OSS mixer", T_RECSRC, "Fuente de registro", T_PA_PLAY, "Portaudio playback device", T_PA_REC, "Portaudio capture device", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Slash key", T_FIXQRG, "Fix QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Ingrese QRG exacta [Hz]", T_BAD_QRG, "Frecuencia incorrecta", T_CALLSIGN3, "Licencia", T_CALLSIGN_KST, "KST licencia de la estacion:", T_CANT_INIT_WINKEY_S, "No puedo iniciar winkey en %s", T_WINKEYOPTS, "Opciones Winkey", T_WK_WK2, "Winkey2 inicializacion rapida", T_WK_USEPOT, "Use speed pot", T_WK_USEBUT, "Usar botones", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Paddle swap (left handled)", T_RIGOPTS, "Opciones del equipo", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Dispositivo:", T_RIG_MODEL, "Modelo", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV direccion (hex)", T_RIG_FREQSHIFT, "Corrimiento de freq.SSB->CW", T_RIG_CHOOSE, "Elija", T_ROTAROPTS, "Opciones del rotor", T_HK_ROTAROPTS, "I", T_DSSAVER, "Desactivar salva pantalla", T_DESC, "Descripcion", T_ROT_NONE, "Nada", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib", T_ROT_REMOTE, "Remoto", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Adicionar un rotor nuevo", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Eliminar rotor", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Ancho del beam:", T_SADDR, "Comunicacion address:", T_MODEL, "Modelo:", T_ROT_REM_ROTSTR, "Letra del rotor para remoto", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global PREF", T_NOT_RECORDING_S, "No grabando - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", T_ROT_POLL_MS, "Poll interval [ms]:", T_VERSION, "Version", T_HK_VERSION, "V", T_REMOTE_HOST, " Remote host name:", T_REMOTE_PORT, " Remote TCP port:", T_REMOTE_PASS, " Remote Password:", T_STARTING_AC, "Starting A/C", T_STOPPING_AC, "Stopping A/C", T_ASL_5D_M, "ASL: %5d m", T_SPEED4D_KMH, "Speed:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Durat: %ld", T_EXPORTING_S, "Exporting %s", T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s", T_EXPORTING, "Exporting ...", T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables", T_LOADING_CHARTS, "Loading charts", T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control", T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in", T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi", T_CANT_CREATE_PIPE, "Can't create pipe", T_TERMINATING_CWDAEMON, "Terminating CW/PTT control", T_INIT_CWDB, "Initializing WWL database", T_TERM_CWDB, "Terminating WWL database", T_LOADING_CWDB, "Loading WWL database", T_QRV_ON, "QRV on: ", T_CANT_INIT_FTDI, "Can't init ftdi library for davac4", T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s", T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s", T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s", T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s", T_INIT_SOUNDCARD, "Initializing soundcard", T_NO_OSS, "OSS support not compiled in", T_NO_ALSA, "Alsa support not compiled in", T_NO_PORTAUDIO, "portaudio support not compiled in", T_NO_SNDFILE, "Libsndfile support not compiled in", T_NO_SNDPIPE, "Sndpipe support not compiled in", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Initializing DXCC database", T_FREE_DWDB, "Terminating DXCC database", T_LOAD_DWDB, "Loading DXCC database", T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n", T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n", T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n", T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n", T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n", T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n", T_CALL_ON_BAND_S, "Callsign on band %s is %s\n", T_LOCATOR_ON_BAND, "Locator on band %s is %s\n", T_QSO_CHECK_LIST, " Tucnak QSO check list\n", T_CALL_SN, " Call: %s\n", T_CONTEST_SN, "Contest: %s\n", T_DATE_SN, " Date: %s\n", T_CHECKING_S, "Checking %s", T_BAND_C_SN, " Band %c %s\n", T_SEEMS_TO_BE_OK, "Seems to be O.K.\n", T_CW_NOT_FOUND, "C_W: %s not found\n", T_0X_NOT_IN_DB, " 0x (not in database)", T_NAME_IS, "Name: %s's name is %s\n", T_NAME_UNKNOWN, "Name: %s's name is unknown\n", T_INIT_DXC, "Initializing DXcluster database", T_FREE_DXC, "Terminating DXcluster database", T_HK_SELECT, "S", T_HIDE, "Hide", T_HK_HIDE, "H", T_INFO, "Info", T_HK_INFO, "I", T_USE, "Use", T_HK_USE, "U", T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n", T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n", T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n", T_HOST_RESOLVED, "*** Host resolved ", T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n", T_CONNECTING_TO, "*** Connecting to %s ***\n", T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n", T_CONNECTED_SOCKET, "*** Connected socket %d ***\n", T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n", T_DISCONNECTED, "\n*** Disconnected ***\n", T_RESOLVING, "*** Resolving %s ***\n", T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s", T_SAVED, "Saved '%s'", T_LOADING_CONTEST, "Loading contest %s", T_LOADING_LOGFILE, "Loading logfile", T_LOADING_TALK, "Loading talk", T_SEARCH_FILES, "Search for contest files", T_LOADING_BAND, "Loading band %s", T_LOADING_SPY, "Loading spy", T_LOADING_HICALLS, "Loading hicalls", T_LOADING_QRV, "Loading qrv", T_LOADING_CHART, "Loading chart", T_SAVING_CONTEST, "Saving contest", T_UPD_INT_DATA, "Updating internal data", T_CALC_STATS, "Calculating statistics", T_ANN_OVER_NET, "Announcing over network", T_ACTIVATING_BAND, "Activating band %s", T_UPDATING_WKD, "Updating worked calls", T_UPDATING_QRBQTF, "Updating QRB&QTF", T_UPDATING_GAIN, "Updating gain chart", T_SEN_OVER_NET, "Sending info over network", T_INIT_EXCDB, "Initializing exchange database", T_FREE_EXCDB, "Terminating exchange database", T_INIT_FFT, "Initializing FFT analyse", T_FREE_FFT, "Terminating FFT analyse", T_INIT_ROTAR, "Initializing rotator control", T_FREE_ROTAR, "Terminating rotator control", T_LOCATOR, "Locator:", T_BAND2, "Band", T_POINTS, "Points", T_AVG, "AVG", T_INIT_HTTPD, "Initializing HTTP server", T_FREE_HTTPD, "Terminating HTTP server", T_NO_CONTEST_OPENED, "

No contest opened

\n", T_NO_CONTEST_OPENED2, "No contest opened", T_STATS, "Statistics", T_BAND_NOT_FOUND, "Band not found", T_BAND_C_NOT_FOUND, "

Band %c not found

", T_QSOS_IN_DATABASE, "qsos in database", T_TUCNAK_ONLINE_LOG, "Tucnak online log", T_DATE2, "Date", T_UTC, "UTC", T_CALL, "Call", T_CALL_NOT_FOUND, "Call not found", T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d", T_FREE_TERM, "Terminating terminal", T_TERM_KEYMAPS, "Terminating keymaps", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AcKST", T_HK_ACKST, "A", T_MISTAKE, "Oh mistake", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "Ask for sked", T_HK_ASK_FOR_SKED, "K", T_MESSAGE, "Message", T_HK_MESSAGE, "M", T_AC_INFO, "A/C info", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n", T_RESOLVED, "*** Resolved ", T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n", T_SENDING_SH_US, "*** Sending /sh us ...\n", T_SKIP_LINE, "Skip line %d '%s'", T_CANT_CREATE_HOME, "Can't create home directory '%s'", T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)", T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s", T_INIT_MAP, "Initializing polar map", T_DISABLE_SAVER, "Disabling screensaver", T_STARTING_TUCNAK, "Starting Tucnak", T_FREE_MAP, "Terminating polar map", T_INIT_MASTERDB, "Initializing master database", T_FREE_MASTERDB, "Terminating master database", T_LOAD_MASTERDB, "Loading master database", T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s", T_DIRECTORY_SCAN, "Directory scan", T_V3_COMPATIBILITY, " (v3 compatibility)", T_RELOAD_INTERFACES, "Reload interfaces", T_SET_READONLY, "Set read-only", T_CHANGE_TYPE, "Change type", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Open connection", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Kill connection", T_HK_KILL_CONNECTION, "K", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Export to text file", T_ADD_CONTEST, "Add contest", T_HK_ADD_CONTEST, "O", T_ADD_FILES, "Add file(s)", T_HK_ADD_FILES, "F", T_ADD_CONTESTS, "Add contests", T_HK_ADD_CONTESTS, "O", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Crash test", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Int.error test", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Dump RW bands and hashes", T_HK_DUMP_RW_BANDS, "D", T_UPDATE, "Update Tucnak", T_HK_UPDATE, "U", T_SETTINGS, "Settings", T_HK_SETTINGS, "S", T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net", T_HK_UPLOAD_TO_VHFNET, "V", T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "U", T_VOIP_SPY, "Voip spy", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "End voip spy", T_HK_END_VOIP_SPY, "Y", T_OLD_TEST_NO_SPY, "Contest is old, spy is not available", T_NETWORK_SCAN, "Network scan", T_HTTPD_OPTIONS, "HTTPD options", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "A/C options", T_HK_AC_OPTIONS, "P", T_SDR_OPTIONS, "SDR options", T_HK_SDR_OPTIONS, "R", T_OTHER, "Other:", T_NONE, "None ", T_RSTS2, "RST-S", T_RSTR2, "RST-R", T_QSONRR2, "QSONR-R", T_EXC2, "EXC", T_UNUSED, "Unused ", T_USED_6, "Used (6)", T_OPT_6, "Opt. (6)", T_USED_4, "Used (4)", T_OPT_4, "Opt. (4)", T_FREE, "Free ", T_VERIFIED, "Verified", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Confirm WWL", T_CONFIRM_EXC, "Confirm EXC", T_FONT_SIZE, "Font size: ", T_DXC_HOSTNAME, "DXC Hostname:", T_TCP_PORT, "TCP Port:", T_DXC_USERNAME, "DXC Username:", T_PASSWORD, "Password:", T_KST_USERNAME, "KST Username:", T_KST_YOURNAME, "KST Yourname:", T_SDR, "SDR", T_PARPORT, "parport", T_TTYS, "ttys", T_AUDIO_SUBSYSTEM, "Audio subsystem:", T_PLAYBACK_VOLUME, "Playback volume", T_CAPTURE_VOLUME, "Capture volume", T_ENABLE_REMOTE_CONNECT, "Enable remote connect", T_TRACE_RIG, "Trace rig", T_TRACE_KEYS, "Trace keys", T_SAVE_RESTART, "You must save configuration and restart Tucnak", T_FULLSCREEN, "Fullscreen", T_TOUCH, "Use touch control", T_ALT_QWER, "Alt turns QWER.. to 1234..", T_NO_LOCKS, "No device locks", T_PORTRAIT_ORIENTATION, "Portrait orientation", T_REVERSE, "Reverse", T_CHOOSE_RIG, "Choose rig", T_RIG_D, "Rig %d", T_NEW_RIG, "New rig", T_ENABLED, "Enabled", T_SET_PTT_ON_RADIO, "Set PTT on radio", T_DISABLED, " (disabled)", T_ADD_RIG, "Add rig", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rotator %d", T_ENABLE, "Enable", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Show private informations", T_LOAD_FROM_NET, "Load from network", T_LOAD_CWDB, "Load C_W database", T_LOAD_NAMEDB, "Load Name database", T_LOAD_QRVDB, "Load QRV database", T_READONLY_BANDS, "Read-only bands", T_ENABLE_AC, "Enable A/C", T_AC_URL, "Alternative URL for flightradar data", T_K_FACTOR, "Troposphere k_factor", T_AC_AREA_WIDTH, "Reflection area width in km", T_AC_EL_ANGLE, "Minimal elevation angle", T_AC_MAX_EL_ANGLE, "Maximal elevation angle", T_AC_MIN_DURATION, "Minimal reflection duration in sec", T_AC_MAX_DIFF, "Max difference of incidence and reflection angles", T_BAD_NUMBER_RANGE, "Bad number range", T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate", T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder", T_NO_DEVICE, "No device", T_IQ_SOURCE, "IQ source:", T_WAV_FILE, "WAV file", T_WAV_FILE_NAME, "WAV file name", T_AF_OUTPUT, "AF output:", T_AF_SAMPLE_RATE, "AF sample rate", T_BLOCK_SIZE, " Block size", T_CW_FILTER, " CW filter", T_TO_HZ, "to [Hz]", T_SSB_FILTER, " SSB filter", T_INIT_NAMEDB, "Initializing name database", T_FREE_NAMEDB, "Terminating name database", T_LOAD_NAMEDB2, "Loading name database", T_INIT_NET, "Initializing network", T_FREE_NET, "Terminating network", T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops", T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)", T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)", T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s", T_TIME_WAS_SET, "Time was set", T_FAILED_TO_SET_TIME, "Failed to set time", T_INIT, "INIT", T_CONNECTING, "CONNECTING", T_CONNECTED, "CONNECTED", T_WAIT_ACK, "WAIT_ACK", T_DISCONNECTED2, "DISCONNECTED", T_DEAD, "DEAD", T_LONG_XFER, "LONG_XFER", T_AUTHENTICATED_USER_S, "Authenticated user %s", T_BAD_AUTHENTICATION_S, "Bad authentication %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT", T_LONG_TRANSFER_FINISHED, "Long transfer finished", T_INIT_NTP, "Initializing NTP monitor", T_FREE_NTP, "Terminating NTP monitor", T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP", T_INIT_SPEAKER, "Initializing PC speaker", T_FREE_SPEAKER, "Terminating PC speaker", T_CANT_PLAY, "Can't play %s - %s", T_CANT_SEEK_TO_END, "Can't seek to end %s - %s", T_CANT_SEEK_TO_START, "Can't seek to start %s - %s", T_CANT_OPEN, "Can't open %s %s", T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Can't set %s to EPP mode %s", T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s", T_CANT_CLAIM, "Can't claim %s %s", T_INIT_QRVDB, "Initializing QRV database", T_FREE_QRVDB, "Terminating QRV database", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AcKst", T_START, "Start", T_DUR, "Dur", T_NR, "NR", T_TEXT2, "Text", T_16_SORT, "1-6: sort, ", T_A_ALL, "A: all", T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search", T_LOAD_QRVS, "Loading qrvs", T_UNSPECIFIED, "unspecified", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBs CWr", T_CWS_SSBR, "CWs SSBr", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n", T_FOUND_D_ERRORS, "Found %d error%s while reading %s", T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net", T_REGISTRATED_ROTATORS, "Registrated rotators:", T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n", T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread", T_INIT_ROTARS2, "Initializing rotators", T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n", T_ROTAR_ERROR_S, "Rotar error: %s", T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe", T_CANT_READ_FROM, "Can't read from", T_CANT_WRITE_TO, "Can't write to", T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Update", T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Bad update file name", T_CANT_EXECUTE_INSTALLER, "Can't execute installer, ", T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed", T_UPDATE_FAILED, "Update failed", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply.", T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s", T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install.", T_NO_NEW_VER, "No new version available.", T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests...", T_CHOOSE_CONTEST, "Choose contest", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload", T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form...", T_ALL_EDI_FILES_PROCESSED, "All EDI files processed.", T_UPLOADING_LOG_FILE_S, "Uploading log file %s ...", T_UPLOADING_BAND_S, "Uploading band %s", T_CONFIRMING_LOG, "Confirming log...", T_RESULT_ERROR, "*** Result: ERROR please read error message above", T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s", T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores...", T_LOGS_UPLOADED, "Logs uploaded.", T_HTTP_STATUS, "HTTP status: ", T_LOG_UPLOAD, "Log upload", T_VOIP_NO_INITIALIZED, "VOIP no initialized", T_PAGE_NAME, "Page name", T_OVERWRITE_EXISTING_FILES, "Overwrite existing files", T_SITE_URL, "Site URL", T_USERNAME, "Username", T_PASSWORD2, " Password", T_EXPORT_MAP, "Export map", T_EXPORT_CHART, "Export chart", T_MEDIAWIKI_UPLOAD2, "Mediawiki upload", T_BAD_AUTH_USER, "Bad auth user %s != %s", T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n", T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame", T_CANT_GET_FMTS, "Can't get supported audio formats: %s", T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s", T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s", T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s", T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s", T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s", T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s", T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s", T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d", T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s", T_RECORD2, "record", T_PLAYBACK, "playback", T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s", T_CANT_STOP_PA, "Can't stop PortAudio stream: %s", T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s", T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\"", T_CANT_SET_STROBE, "Can't set parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error", T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n", T_INIT_SERIAL_DEVICES, "Initializing serial devices", T_BAD_CHECKSUM, "Bad checksum", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Bad response", T_UNKNOWN_FUNCTION, "Unknown function", T_UNKNOWN_ERROR_CODE, "Unknown error code", T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n", T_WAIT_FOR_SDR_THR, "Waiting for SDR thread", T_QSO_REQ_FROM_SP, " QSO request from S&P ", T_QSO_REQ_SENT, " QSO request sent to RUN ", T_GO, " GO! ", T_LOCATION_UNKNOWN, "Location unknown", T_DEGREE, "deg", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s", T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe", T_INIT_SSB_CQ, "Initializing SSB CQ", T_FREE_SSB_CQ, "Terminating SSB CQ", T_NO_FILE, "No file specified", T_UNSUP_CHANNELS, "Unsupported number of channels = %d", T_FLOAT_UNSUPP, "Float point files are not supported", T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing", T_REC_DISABLED, "recording disabled", T_CONTEST_TOO_OLD, "contest too old", T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Error writing file %s: %s", T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording", T_NO_DISK_SPACE, "Not enough free disk space for file", T_CANT_PLAY_FILE, "Can't play file %s - %s", T_CANT_WRITE_SS, "Can't write to file %s - %s", T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded", T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template", T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n", T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***", T_LOADING_S, "Loading %s", T_INVALID_WINDOW_TYPE, "invalid window type %d\n", T_INIT_RIG, "Initializing rig control %d", T_RIG_ERROR, "Rig error: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n", T_FREE_RIG, "Terminating rig control %d", T_WAIT_FOR_RIG_THR, "Waiting for rig thread", T_INVALID_PARAM, "Invalid param.", T_RIG_INVALID_CONFIG, "Invalid config.", T_RIG_NOT_ENOUGH_MEM, "Not enough mem.", T_RIG_NOT_IMPLEMENTED, "Not implemented", T_RIG_COMM_TIMEOUT, "Comm. timeout", T_RIG_IO_ERROR, "IO error", T_RIG_INTERNAL_ERROR, "Internal error", T_PROTOCOL_ERROR, "Protocol error", T_RIG_COMMAND_REJECT, "Command reject.", T_RIG_ARG_TRUNCATED, "Arg. truncated", T_RIG_F_NOT_AVAILABLE, "F not available", T_RIG_VFO_NOT_TARGET, "VFO not target.", T_RIG_ERROR_ON_BUS, "Error on bus", T_RIG_BUS_COLLISION, "Bus collision", T_RIG_INVALID_ARG, "Invalid arg.", T_RIG_INVALID_VFO, "Invalid VFO", T_RIG_ARG_OUT_OF_DOM, "Arg out of dom.", T_ERROR_D, "Error %d", T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)", T_CANT_SET_GRAPHICS2, "Can't set graphics mode", T_WAIT_SDL_THR, "Waiting for SDL event thread", T_FREE_GRAPHICS, "Terminating graphics", T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s", T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s", T_CANT_READ_LOG_FILE, "Can't read log file %s", T_CANT_UPLOAD_LOG, "Can't upload log: %s", T_CANT_CONFIRM_LOG, "Can't confirm log: %s", T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s", T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing", T_CALL2, "Call:", T_QTH, "QTH:", T_DATE3, "Date:", T_QSOS2, "QSOs:", T_POINTS2, "Points:", T_WWLS, "WWLs:", T_DXCCS, "DXCCs:", T_AVG2, "AVG:", T_PTSQSO, "pts/qso", T_TOP_10_CALLS, "Top 10 calls", T_OPERATOR2, "Operator", T_MODE2, "Mode", T_TOP_10_WWLS, "Top 10 WWLs", T_CANT_UPLOAD_FILE_S, "Can't upload file: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s", T_FILE_ALREADY_EXISTS, "File already exists: %s", T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s", T_CANT_EDIT_PAGE, "Can't edit page: %s", T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s", T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s", T_EDITING_CONTEST_PAGE, "Editing contest page...", T_ALL_DONE, "All done.", T_UPLOADING_FILE, "Uploading file %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s", T_QUERYING_EDIT_TOKEN, "Querying edit token", T_CANT_LOGIN, "Can't log in (2): %s", T_CANT_LOGIN2, "Can't log in (2), wiki says: %s", T_CANT_LOGIN1, "Can't log in (1): %s", T_LOGGING_IN, "Logging in...", T_EXPORTING_FILES, "Exporting files...", T_INIT_WIZZ, "Initializing contest wizard", T_FREE_WIZZ, "Terminating contest wizard", T_LOAD_WIZZ_DATA, "Loading contest wizard data", tucnak-4.04/intl/Makefile.in0000644000175000017500000002731712561147621012701 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = intl DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INTL = castellano.lng czech.lng english.lng french.lng german.lng polish.lng portuguese.lng slovak.lng EXTRA_DIST = $(INTL) fixlang.pl gen-conly gen-intl index.txt all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu intl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu intl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am all: ../src/language.inc ../src/language.inc: $(INTL) ./fixlang.pl ./gen-intl # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/intl/slovak.lng0000644000175000017500000011676012535256134012637 00000000000000T__CHAR_SET, "iso8859-2", T__LANGUAGE, "Slovak", T_ABOUT, "O programe", T_BAD_NUMBER, "Chybn slo", T_BAD_STRING, "Chybn reazec", T_BASIC_HELP, "Stla F10 pre vstup do menu.", T_BLOCK_CURSOR, "Blokov kurzor", T_CANCEL, "Zrui", T_CHARACTER_SET, "Znakov sada", T_COLOR, "Farbiky", T_COPYING, "Koprovanie", T_DIFFERENCE, "rozdiel", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Urite chce ukonit Tuka?", T_EMPTY_STRING_NOT_ALLOWED, "Przdny reazec nie je povolen", T_ERROR, "Chyba", T_WARNING, "Varovanie", T_EXIT, "Koniec", T_EXIT_TUCNAK, "Ukonenie Tuka", T_FILE, "Sbor", T_FULL_SCREEN, "Cel obrazovka", T_HELP, "Pomoc", T_HK_ABOUT, "O", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "Z", T_HK_COPYING, "P", T_HK_EXIT, "E", T_HK_FILE, "S", T_HK_FULL_SCREEN, "C", T_HK_HELP, "P", T_HK_LANGUAGE, "J", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "O", T_HK_XTERM, "X", T_KOI8R_FRAMES, "Rmeky KOI8-R", T_LANGUAGE, "Jazyk", T_LAST, "posledn", T_LINUX_OR_OS2_FRAMES, "Rmeky typu Linux alebo OS/2", T_MEMORY_INFO, "Informcie o pamti", T_NO_FRAMES, "Bez rmekov", T_NO, "Nie", T_NUMBER_EXPECTED, "Oakvm slo", T_NUMBER_OUT_OF_RANGE, "islo je mimo rozsah", T_OK, "OK", T_OS_SHELL, "Prkazov riadok", T_RESTRICT_FRAMES_IN_CP850_852, "Ohranien rmeky v cp850/852", T_UTF_8_IO, "UTF-8 Vstup/Vstup", T_SCREEN, "Screen", T_SETUP, "Nastavenia", T_TERMINAL_OPTIONS, "Nastavenia terminlu", T_TUCNAK__TACLOG_LIKE, "Tuk " VERSION_STRING "\n\nTACLOGu podobn dennk pre VKV/mikrovlnn preteky", T_TWTERM, "Twterm", T_USE_11M, "Pouva ^[[11m", T_VT_100_FRAMES, "Rmeky VT 100", T_WELCOME1, "Vt T Tuk!", T_WELCOME2, "Prosm zadaj svoju znaku a loktor:", T_WELCOME, "Vitaj", T_XTERM, "Xterm", T_YES, "no", T_CANT_APPEND_S, "Nemono prida na koniec sboru %s", T_CANT_WRITE, "Nemono zapsa do sboru", T_CANT_WRITE_S, "Nemono zapsa do sboru %s", T_CANT_READ, "Nemono preta sbor", T_CANT_READ_S, "Nemono preta sbor %s", T_SAVED_S, "Uloen %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - rchlos CW ", T_CANT_OPEN_S, "Nemono otvori %s", T_CANT_LOCK, "Nemono zamkn sbor", T_CANT_LOCK_S, "Nemono zamkn sbor %s", T_LOADING_CTEST_S, "*** Natan pretek %s", T_NO_FILES, "Neexistuj iadn sbory", T_BAND_EXIST_SS, "POZOR! Psmo %s (%s) u existuje", T_BAND_NOT_OPEN, "Psmo nie je v tomto preteku aktvne", T_NO_BANDS, "Neexistuj iadn psma", T_CANT_SET_GR_S, "Nemono nastavi grafick md-%s", T_GCALL, "Znacka: %s", T_GWWL, "Stvorec: %s", T_GQRB, "Vzdial.: %d km", T_GQTF, "Uhol: %d", T_GSEN, "Odoslane: %s %s", T_GRCV, "Prijate: %s %s", T_GTIM, "Cas: %s", T_GOPE, "Operator: %s", T_GREM, "Pozn: %s", T_GWKD, "Wkd: %d", T_GINC, "Zisk azim:%d", T_GLON, "Dlz: %7.2f %-6s", T_GLAT, "Sir: %7.2f %-6s", T_GLOC, "Lok: %s", T__PLESE_WAIT_, " Prosim o chvilu strpenia ", T__RO_BAND, " PSMO LEN PRE TANIE", T_COPYING_VER, "The ultimate contestlog - necessary as known\n\nVerzia " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nTento program je slobodn softvr; me ho it a/alebo pozmeova poda ustanoven Obecnej verejnej licencie GNU, vydanej Free Software Foundation; a to verzie 2 a vyej tejto licencie.", T_CTEST_ACTIVE, "U existuje aktvny pretek ", T_NO_CTESTS, "iadn preteky", T_NO_CCLOSE, "Nie je o zavrie", T_REALLY, "Urite?", T_CLOSE_CTEST, "Naozaj chce zavrie tento pretek?", T_GUI_LD, "Uv. prostredie: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw poloiek, %d wc poloiek, posledn %d\n", T_EXC, "Exc: %s %d exc poloek, %d exc poloek, posledn %d\n", T_VEXC, "Kontrolovan EXC: %d poloek\n", T_DWI, "D_W: %d prefixov, %d zem DXCC, %d tvorcov\n", T_NAMES, "Names: %d mien\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Pam:", T_NMY, " Ja: ", T_NGLOBAL, "Hl.f: ", T_NMASTER, " f: ", T_NREMOTE, "Remote: ", T_NSLAVES, "\nPodriaden:\n", T_NINFO, "Sieov informcie", T_NO_BANDS_QRV, "iadn aktvne psma", T_NO_BANDS_CONF, "iadn psma", T_NOT_AVAILABLE, "Nedostupn", T_ADD_SUBWIN, "Prida okno", T_HK_ADD_SUBWIN, "P", T_CLOSE_SUBWIN, "Zavrie okno", T_HK_CLOSE_SUBWIN, "Z", T_HK_NINFO, "S", T_NEW, "Nov", T_HK_NEW, "N", T_NEW_WIZZ, "Sprievodca novm pretekom", T_HK_NEW_WIZZ, "P", T_NEW_NET, "Nov ze st", T_HK_NEW_NET, "S", T_OPEN, "Otvori", T_HK_OPEN, "O", T_SAVE, "Uloi", T_HK_SAVE, "U", T_EXPORT_EDI, "Exportova do EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportova do reportu (VKVPA)", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportova do ADIFu", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportova do HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importova EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importovat ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importovat swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Voby poas preteku", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Zavrie pretek", T_HK_CLOSE_CONTEST, "Z", T_ADD_ERROR, "Prida chybn spojenie", T_HK_ADD_ERROR, "E", T_CHOP, "Zmena opertora", T_HK_CHOP, "O", T_CW_CTEST, "Aktualizova C_W z preteku", T_HK_CW_CTEST, "C", T_CW_BAND, "Aktualizova C_W z psma", T_HK_CW_BAND, "B", T_EXC_CTEST, "Aktualizovat EXC ze zvodu", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Aktualizovat EXC z psma", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importova DL8EBW db.", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "iadn pretek", T_NO_PEERS, "al Tuci nenjden", T_NO_MASTER, "f je nedostupn!", T_CTEST_DEF, "Nastavenie preteku", T_HK_CTEST_DEF, "R", T_BAND_DEF, "Nastavenie psiem", T_HK_BAND_DEF, "P", T_HK_RESPOP, "O", T_CW_DAEMON, "Klovn CW", T_HK_CW_DAEMON, "M", T_CW_CQ, "CW vzvy", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB vzvy", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Automatick ukladanie", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Nata nastavenie zo siete", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Nata C_W zo siete", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Uloi nastavenia", T_HK_SAVE_CFG, "U", T_CONTEST, "Pretek", T_HK_CONTEST, "R", T_EDIT, "Edit", T_HK_EDIT, "E", T_BANDS, "Psma", T_HK_BANDS, "P", T_SUBWINS, "Okn", T_HK_SUBWINS, "O", T_BAND_SETTINGS_SC, "Nastavenie pre psmo %c %s", T_QRV_ON_THIS_BAND, "QRV na tomto psme", T_QRV_IN_THIS_CTEST, "QRV v tomto preteku", T_READ_ONLY, "Len na tanie", T_MULTI, "Multi", T_SINGLE, "Single", T_CHECK, "Check", T_TXEQUIP, " Vys. zariadenie:", T_POWER, " Vkon:", T_RXEQUIP, " Prm. zariad.:", T_ANTENNA, " Antna:", T_AGLASL, " vka zem;more:", T_OPS, " Opertori:", T_SPACES1, " ", T_REMARKS, " Poznmky:", T_OK_SECTION_SINGLE, "Kategorie Single v OK", T_OK_SECTION_MULTI, "Kategorie Multi v OK", T_QRG_MIN, "Hranice psma od", T_QRG_MAX, "do [kHz]", T_ADIFBAND, "Nzev psma pro ADIF", T_SKEDQRG, "Frek. pro skedy (lib. formt)", T_BAND_LO, "LO transvertoru [Hz]", T_BANDSW, "Hodnota prepinace pasem", T_RESPOP, "Zodpovedn opertor", T_NAME, "Meno Priezv:", T_CALLSIGN, " Znaka:", T_ADDRESS, " Adresa:", T_POSTCODE, " PS:", T_CITY, " Mesto:", T_COUNTRY, " Zem:", T_PHONE, " Telefn:", T_BBSEMAIL, " BBS/E-mail:", T_QP0, " --ni -- ", T_QP1, " 1 QSOp*QSOp_m (Stand. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK VKVPA)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltsk preteky)", T_QP9, " 9 WWL_dist*QSOp_m (Baltsk & seversk poln de)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (distrikty)", T_QP13, "13 kontinent (CQ WW DX Contest)", T_QP14, "14 kontinent+psmo (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " --none -- ", T_TP1, " 1 Nsoben (Std. IARU)", T_TP2, " 2 Stan (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Nov pretek", T_CANT_TRUNC, "Nemono skrti sbor s popisom preteku", T_NAME_OF_CTEST, " Nzov preteku: ", T_CALL_OF_CTEST, "Znaka v preteku: ", T_CLUB_ST, "Klub. znaka:", T_YOURWWL, "Tvoj WWL:", T_YOUREXC, "Tvoj EXC:", T_DATE_OF_CTEST, "Dtum preteku:", T_QSOUSED, "QSO NR pouit", T_QSOPM, " QSOp ns.:", T_WWLUSED, "WWL pouit", T_WWLB, "WWL bonus:", T_WWLM, " WWL ns.: ", T_EXCUSED, "EXC pouit", T_EXCB, " EXC bonus:", T_EXCM, " EXC ns.: ", T_EXCNAME, "EXC jmno:", T_PREFM, "PREF nsob:", T_DXCB, " DXC bonus:", T_DXCM, " DXC ns.: ", T_RSTUSED, "RST pouit", T_DEFRS, " Ben RS: ", T_DEFRST, "Ben RST:", T_ALSORSTR, "Tak pro RST-R", T_QP_CALC, " Vpoet QSOp:", T_TO_CALC, "Vpoet celku:", T_EDI_PROP, "EDI poloky", T_RESPOP2, "Zodpovedn opertor", T_EDIT_QSO_CD, "Editcia spojen %c: %03d", T_CALLSIGN2, " Znaka:", T_CLUB, " Klub:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Opertor:", T_DATE, " Dtum:", T_MODE, " Md:", T_RSTS, "Odos.RST:", T_RSTR, "Prij.RST:", T_QSONRS, "Odos.s:", T_QSONRR, "Prij.s:", T_OPTEXCH, " OptExch:", T_WWL, " tvorec:", T_REMARK, "Poznmka:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Posla sked", T_SELECT, "Vber ", T_QRG, "Frekvencia:", T_WE_CALL, "J volm", T_BAND, " Psmo:", T_TIME, " as:", T_DUPE_QSO, "Duplicitn QSO!", T_CLEAR_THIS_QSO, "Zmaza toto QSO", T_EDIT_OLD_QSO, "Editova star QSO", T_MARK_OLD_QSO, "Oznait star QSO ako ERROR", T_STORE_AS_DUPE, "Uloit toto ako DUPE", T_BAD_CALL, "Toto nevyzer ako znaka", T_N_CALLSIGN, "\nZnaka:", T_AUTOSAVE_OPTS, "Automatick ukladanie", T_SAVE_AQ, "Uloi na disk po pote spojen: ", T_SAVE_AM, "Uloi na disk po pote mint: ", T_FSYNC, "Synchronizova cache s diskom", T_SAVE_AQF, "Uloi na disketu po pote spojen: ", T_SAVE_AMF, "Uloi na disketu po pote mint: ", T_DO_MOUNT, "Pripoji disketu pokia nie je v /etc/mtab (N/A)", T_FLOPPY_PATH, "Cesta k diskete:", T_MOUNT_CMD, "Prkaz pre pripojenie (N/A): ", T_SW_SHELL, "Prk", T_SW_QSOS, "Spoj", T_SW_LOG, "Log", T_SW_TALK, "Kec", T_SW_SKED, "Sked", T_SW_UNFI, "Nedok", T_SW_DXC, "Clust", T_SW_STAT, "Stat", T_SW_MAP, "Mapa", T_SW_SCOPE, "Osc", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Prkazov riadok", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Kec (rozhovor)", T_SKEDS, "Skedy (dohovoren spojenia)", T_UNFI, "Nedokonen spojenia", T_DXC, "DX Cluster", T_STAT, "tatistiky", T_SWAP, "Swap (N/A)", T_MAP, "Graphick mapa", T_SCOPE, "Osciloskop", T_QRV, "QRV", T_HF, "HF", T_KST, "KST", T_CMD, "Prkaz", T_RESPAWN, "Znovuspustenie [sek]:", T_UNFI_QSO, "Nedokonen spojenie", T_N_REMARK, "\nPoznmka:", T_NO_CQ, "Neexistuj iadn vzvy", T_TEXT, "Text:", T_SPEED, "Rchlos [WPM]:", T_REPEAT, "Opakovanie", T_DELAY, "akanie [0.1s]:", T_ALLOW_UNDEF, "Povoli aj ke je niektor poloka neznma", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Sbor:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, " UDP port:", T_DEVICE, "Kovacie zariadenie:", T_INIT_SPEED, "Poiaton rchlos [WPM]:", T_INIT_WEIGHT, "Vha (30-70)", T_WPMFROM, "Rychlost WPM od", T_WPMTO, "do", T_USE_SPK, "Poui speaker (reprk)", T_LEADIN, "Pedstih PTT [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignorujem sieov rozhranie %-5s", T_IGN_ADDR_S, "Ignorujem adresu %s", T_ADD_IFACE_SSD, "Pridan rozhranie=%-5s vesmer=%s:%d", T_FORCED_ADDR, "Adresa naviac %s", T_TIMESKEW, "POZOR! Detegovan prli vek rozdiel asu %d oproti %s:%d !\n", T_DISCONNECTING_SD, "Odpjam od %s:%d", T_ACCEPTED_SD, "Akceptovan spojenie od %s:%d (%s)", T_CONNECTING_SD, "Pripjam k %s:%d", T_CONNECTED_SD, "Pripojen k %s:%d", T_DISCONNECTED_SD, "Odpojen od %s:%d", T_LOADED_CFG_SSSS, "Natan nastavenie pre %s %s (%s,%s)", T_LOADED_CW, "Natan C_W databza", T_PEER_NOT_FOUND, "CHYBA! Tuk %s nenjden", T_CANT_CREATE_HOME_S, "Nemono vytvori adresr %s", T_CANT_LOAD_CFG, "Nemono nata konfigurciu!\nProgram neme pracova sprvne!", T_ERR_RC, "Dolo k chybe pri tan konfigurku!\nSbor bol pravdepodobne uloen novm Tukom !\nRadej neukladaj konfigurciu inak prde o dta v konfigurku!", T_SES_QTR, " as ", T_SES_QRA, " Znaka ", T_SES_RST, " RST-O- RST-P- ", T_SES_QTH, " tvorec ", T_SES_QRB, "Body/vzd Uhol", T_SES_FLG, " Przn", T_SES_OPE, " Oper ", T_SES_EXC, " Exch ", T_SES_REM, " Poznmka ", T_SES_WELCOME, "Vta a Tuk! ", T_SES_PRESS_F10, "Sta F10 pre vstup do menu. ", T_SES_HAVE_FUN, "Uvaj si :-)", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "Spoj Spoj-b OptX Locs Zeme Celkom-b AVG", T_SES_AVG, "Priem: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " tvorce: %d", T_SF_WWLS_UNDER, "----------------", T_SF_EXCS, " EXC poloky: %d", T_SF_EXCS_UNDER, "--------------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " Zeme: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " Roben tvorce: %d", T_SF_WKD_WWLS_UNDER, "----------------------", T_SF_QSO_WWL4, " Spojenia do vekch tvorcov: %d", T_SF_QSO_WWL4_UNDER, "-----------------------------------", T_SF_STATS_BAND, " tatistiky pre psmo %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Priemer bodov/spojenia: %5.2f", T_SF_AVG_QSOP, "Priemer bodov za spojenie/spojenia: %5.2f", T_BAND_RO, "Psmo je len na tanie", T_THIS_BAND, "Toto psmo", T_OTHER_BANDS, "Ostatn psma", T_CW_DB, "C_W databza", T_PROC_EXITED, "*** Proces skonil\n", T_WE_CALL2, "my volme", T_WE_LISTEN, "my povame", T_QSL, "Sben QSL", T_RECORD, "Nahrvanie prevdzky", T_MAXMIN, " Max. doba nahrvn", T_TEMPLATE, "ablona pre nahrvan sbor", T_PCM8, "8 bitov PCM", T_PCM16, "16 bitov PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Poet kanlov", T_SAMPLERATE, " Vzorkovacia frekvencia", T_FILLOP, "Vypl znaky opertorov", T_HK_FILLOP, "V", T_RECAQRB, "Prepotaj QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Sie a trasovanie", T_HK_NETWORK, "E", T_IF_IGNORE, " Ignorova zariadenia:", T_IP_IGNORE, " Ignorova podsiete:", T_IP_ANNOUNCE, " Annoncova do siet:", T_TRACE_BCAST, "Trasova broadcasty ", T_TRACE_SOCK, "Trasova sockety", T_TRACE_RECV, "Trasova prijat dta", T_TRACE_SEND, "Trasova odoslan dta", T_TRACE_QSOS, "Trasova spojenia", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "Zvzok nepripojen %s", T_RECSRC_NONE, "Nenastavova", T_RECSRC_MIC, "Mikrofn", T_RECSRC_LINE, "Linkov vstup", T_NEW_CALL, "Nov!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV na %s", T_SKED_QRG, "QRG pre skedy", T_HK_SKED_QRG, "G", T_N_SKED_QRG, "\nQRG pre skedy:", T_GRAB_BAND, "Prevzia psmo", T_HK_GRAB_BAND, "P", T_FORCE_RUN, "RUN md nsiln", T_HK_FORCE_RUN, "R", T_EXPORT_STATS, "Exportova statistiky", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX spojenie:", T_SF_TOP_DX_UNDER, "----------------------", T_ROTAR, "Rotator", T_HK_ROTAR, "R", T_AZIMUTH, " Azimut", T_ELEVATION, "Elevace", T_CH_SPY, "pehovn", T_HK_CH_SPY, "P", T_CH_ENDSPY, "Konec pehovn", T_HK_CH_ENDSPY, "K", T_EXPORT_TITLPAGE, "Exportovat tituln strnku", T_HK_EXPORT_TITLPAGE, "L", T_BREAK_RECORD, "Peruit nahrvn", T_HK_BREAK_RECORD, "P", T_GLOBAL_OPERATOR, "Zmnit na vech psmech", T_GLOBAL_OPERATOR2, "Globln", T_MAXFRAG, "Max. poet fragment (>=2)", T_PLAY_LAST, "Play last sample", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Rzn nastaven", T_HK_MISCOPTS, "R", T_LOGLINES, "dky logu: ", T_SKEDSHIFT, "Posuv skedu (minuty): ", T_STARTBAND, "Psmo po startu: ", T_GFX_X_CH, "Rozlien (znaky):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Rozlien (body):", T_GFX_Y_PX, "x", T_CALL_INFO, "Informace o znace", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSO/hod: %d", T_SF_QSOP_HOUR, "Body/hod: %d", T_SF_QSOP_50QSO, "Body/posl. 50 QSO: %d", T_SF_HOURS, " Hodiny", T_SF_HOURS_UNDER, "----------", T_SF_HOURS_TITLE, "Hodiny Body Spojen prmr box/QSO", T_QSO_CHECK, "Kontrola spojen", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "Minimln msto na disku [MiB]", T_FORMAT, "Formt nahrvn", T_PCM_PLAY, "Alsa pehrvn", T_PCM_REC, "Alsa zznam", T_PERIOD, "Period time [ms]", T_BUFFER, "Buffer time [ms]", T_ALSA_MIXER, "Alsa mixer", T_CAPTURE, "Zdroj zznamu", T_DSP, "Cesta k /dev/dsp", T_MIXER, "Cesta k /dev/mixer", T_RECSRC, "Record source", T_PA_PLAY, "Portaudio playback device", T_PA_REC, "Portaudio capture device", T_HOSTNAME, "Stroj:", T_SLASHKEY, "Klvesa pro lomtko", T_FIXQRG, "Opravit QRG", T_HK_FIXQRG, "v", T_ENTER_QRG, "Zadej pesnou frekvenci QRG [Hz]", T_BAD_QRG, "Chybn zadan frekvence", T_CALLSIGN3, "Znaka", T_CALLSIGN_KST, "Znaka stanice na KST:", T_CANT_INIT_WINKEY_S, "Nelze inicializovat winkey na %s", T_WINKEYOPTS, "Nastaven Winkey", T_WK_WK2, "Rychl inicializace Winkey2", T_WK_USEPOT, "Pout potenciometr", T_WK_USEBUT, "Pout tlatka", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Run kl", T_WK_SWAP, "Prohodit pastiku (levk)", T_RIGOPTS, "Rdio", T_HK_RIGOPTS, "R", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address (hex)", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rottory", T_HK_ROTAROPTS, "I", T_DSSAVER, "Vypnout spoi obrazovky", T_DESC, "Popis", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "ka laloku", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global prefix", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Poet sked v popup okn: ", T_FONTHEIGHT, "Vka fontu (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", T_ROT_POLL_MS, "Poll interval [ms]:", T_VERSION, "Version", T_HK_VERSION, "V", T_REMOTE_HOST, " Remote host name:", T_REMOTE_PORT, " Remote TCP port:", T_REMOTE_PASS, " Remote Password:", T_STARTING_AC, "Starting A/C", T_STOPPING_AC, "Stopping A/C", T_ASL_5D_M, "ASL: %5d m", T_SPEED4D_KMH, "Speed:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Durat: %ld", T_EXPORTING_S, "Exporting %s", T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s", T_EXPORTING, "Exporting ...", T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables", T_LOADING_CHARTS, "Loading charts", T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control", T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in", T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi", T_CANT_CREATE_PIPE, "Can't create pipe", T_TERMINATING_CWDAEMON, "Terminating CW/PTT control", T_INIT_CWDB, "Initializing WWL database", T_TERM_CWDB, "Terminating WWL database", T_LOADING_CWDB, "Loading WWL database", T_QRV_ON, "QRV on: ", T_CANT_INIT_FTDI, "Can't init ftdi library for davac4", T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s", T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s", T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s", T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s", T_INIT_SOUNDCARD, "Initializing soundcard", T_NO_OSS, "OSS support not compiled in", T_NO_ALSA, "Alsa support not compiled in", T_NO_PORTAUDIO, "portaudio support not compiled in", T_NO_SNDFILE, "Libsndfile support not compiled in", T_NO_SNDPIPE, "Sndpipe support not compiled in", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Initializing DXCC database", T_FREE_DWDB, "Terminating DXCC database", T_LOAD_DWDB, "Loading DXCC database", T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n", T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n", T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n", T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n", T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n", T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n", T_CALL_ON_BAND_S, "Callsign on band %s is %s\n", T_LOCATOR_ON_BAND, "Locator on band %s is %s\n", T_QSO_CHECK_LIST, " Tucnak QSO check list\n", T_CALL_SN, " Call: %s\n", T_CONTEST_SN, "Contest: %s\n", T_DATE_SN, " Date: %s\n", T_CHECKING_S, "Checking %s", T_BAND_C_SN, " Band %c %s\n", T_SEEMS_TO_BE_OK, "Seems to be O.K.\n", T_CW_NOT_FOUND, "C_W: %s not found\n", T_0X_NOT_IN_DB, " 0x (not in database)", T_NAME_IS, "Name: %s's name is %s\n", T_NAME_UNKNOWN, "Name: %s's name is unknown\n", T_INIT_DXC, "Initializing DXcluster database", T_FREE_DXC, "Terminating DXcluster database", T_HK_SELECT, "S", T_HIDE, "Hide", T_HK_HIDE, "H", T_INFO, "Info", T_HK_INFO, "I", T_USE, "Use", T_HK_USE, "U", T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n", T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n", T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n", T_HOST_RESOLVED, "*** Host resolved ", T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n", T_CONNECTING_TO, "*** Connecting to %s ***\n", T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n", T_CONNECTED_SOCKET, "*** Connected socket %d ***\n", T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n", T_DISCONNECTED, "\n*** Disconnected ***\n", T_RESOLVING, "*** Resolving %s ***\n", T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s", T_SAVED, "Saved '%s'", T_LOADING_CONTEST, "Loading contest %s", T_LOADING_LOGFILE, "Loading logfile", T_LOADING_TALK, "Loading talk", T_SEARCH_FILES, "Search for contest files", T_LOADING_BAND, "Loading band %s", T_LOADING_SPY, "Loading spy", T_LOADING_HICALLS, "Loading hicalls", T_LOADING_QRV, "Loading qrv", T_LOADING_CHART, "Loading chart", T_SAVING_CONTEST, "Saving contest", T_UPD_INT_DATA, "Updating internal data", T_CALC_STATS, "Calculating statistics", T_ANN_OVER_NET, "Announcing over network", T_ACTIVATING_BAND, "Activating band %s", T_UPDATING_WKD, "Updating worked calls", T_UPDATING_QRBQTF, "Updating QRB&QTF", T_UPDATING_GAIN, "Updating gain chart", T_SEN_OVER_NET, "Sending info over network", T_INIT_EXCDB, "Initializing exchange database", T_FREE_EXCDB, "Terminating exchange database", T_INIT_FFT, "Initializing FFT analyse", T_FREE_FFT, "Terminating FFT analyse", T_INIT_ROTAR, "Initializing rotator control", T_FREE_ROTAR, "Terminating rotator control", T_LOCATOR, "Locator:", T_BAND2, "Band", T_POINTS, "Points", T_AVG, "AVG", T_INIT_HTTPD, "Initializing HTTP server", T_FREE_HTTPD, "Terminating HTTP server", T_NO_CONTEST_OPENED, "

No contest opened

\n", T_NO_CONTEST_OPENED2, "No contest opened", T_STATS, "Statistics", T_BAND_NOT_FOUND, "Band not found", T_BAND_C_NOT_FOUND, "

Band %c not found

", T_QSOS_IN_DATABASE, "qsos in database", T_TUCNAK_ONLINE_LOG, "Tucnak online log", T_DATE2, "Date", T_UTC, "UTC", T_CALL, "Call", T_CALL_NOT_FOUND, "Call not found", T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d", T_FREE_TERM, "Terminating terminal", T_TERM_KEYMAPS, "Terminating keymaps", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AcKST", T_HK_ACKST, "A", T_MISTAKE, "Oh mistake", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "Ask for sked", T_HK_ASK_FOR_SKED, "K", T_MESSAGE, "Message", T_HK_MESSAGE, "M", T_AC_INFO, "A/C info", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n", T_RESOLVED, "*** Resolved ", T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n", T_SENDING_SH_US, "*** Sending /sh us ...\n", T_SKIP_LINE, "Skip line %d '%s'", T_CANT_CREATE_HOME, "Can't create home directory '%s'", T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)", T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s", T_INIT_MAP, "Initializing polar map", T_DISABLE_SAVER, "Disabling screensaver", T_STARTING_TUCNAK, "Starting Tucnak", T_FREE_MAP, "Terminating polar map", T_INIT_MASTERDB, "Initializing master database", T_FREE_MASTERDB, "Terminating master database", T_LOAD_MASTERDB, "Loading master database", T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s", T_DIRECTORY_SCAN, "Directory scan", T_V3_COMPATIBILITY, " (v3 compatibility)", T_RELOAD_INTERFACES, "Reload interfaces", T_SET_READONLY, "Set read-only", T_CHANGE_TYPE, "Change type", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Open connection", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Kill connection", T_HK_KILL_CONNECTION, "K", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Export to text file", T_ADD_CONTEST, "Add contest", T_HK_ADD_CONTEST, "O", T_ADD_FILES, "Add file(s)", T_HK_ADD_FILES, "F", T_ADD_CONTESTS, "Add contests", T_HK_ADD_CONTESTS, "O", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Crash test", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Int.error test", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Dump RW bands and hashes", T_HK_DUMP_RW_BANDS, "D", T_UPDATE, "Update Tucnak", T_HK_UPDATE, "U", T_SETTINGS, "Settings", T_HK_SETTINGS, "S", T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net", T_HK_UPLOAD_TO_VHFNET, "V", T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "U", T_VOIP_SPY, "Voip spy", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "End voip spy", T_HK_END_VOIP_SPY, "Y", T_OLD_TEST_NO_SPY, "Contest is old, spy is not available", T_NETWORK_SCAN, "Network scan", T_HTTPD_OPTIONS, "HTTPD options", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "A/C options", T_HK_AC_OPTIONS, "P", T_SDR_OPTIONS, "SDR options", T_HK_SDR_OPTIONS, "R", T_OTHER, "Other:", T_NONE, "None ", T_RSTS2, "RST-S", T_RSTR2, "RST-R", T_QSONRR2, "QSONR-R", T_EXC2, "EXC", T_UNUSED, "Unused ", T_USED_6, "Used (6)", T_OPT_6, "Opt. (6)", T_USED_4, "Used (4)", T_OPT_4, "Opt. (4)", T_FREE, "Free ", T_VERIFIED, "Verified", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Confirm WWL", T_CONFIRM_EXC, "Confirm EXC", T_FONT_SIZE, "Font size: ", T_DXC_HOSTNAME, "DXC Hostname:", T_TCP_PORT, "TCP Port:", T_DXC_USERNAME, "DXC Username:", T_PASSWORD, "Password:", T_KST_USERNAME, "KST Username:", T_KST_YOURNAME, "KST Yourname:", T_SDR, "SDR", T_PARPORT, "parport", T_TTYS, "ttys", T_AUDIO_SUBSYSTEM, "Audio subsystem:", T_PLAYBACK_VOLUME, "Playback volume", T_CAPTURE_VOLUME, "Capture volume", T_ENABLE_REMOTE_CONNECT, "Enable remote connect", T_TRACE_RIG, "Trace rig", T_TRACE_KEYS, "Trace keys", T_SAVE_RESTART, "You must save configuration and restart Tucnak", T_FULLSCREEN, "Fullscreen", T_TOUCH, "Use touch control", T_ALT_QWER, "Alt turns QWER.. to 1234..", T_NO_LOCKS, "No device locks", T_PORTRAIT_ORIENTATION, "Portrait orientation", T_REVERSE, "Reverse", T_CHOOSE_RIG, "Choose rig", T_RIG_D, "Rig %d", T_NEW_RIG, "New rig", T_ENABLED, "Enabled", T_SET_PTT_ON_RADIO, "Set PTT on radio", T_DISABLED, " (disabled)", T_ADD_RIG, "Add rig", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rotator %d", T_ENABLE, "Enable", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Show private informations", T_LOAD_FROM_NET, "Load from network", T_LOAD_CWDB, "Load C_W database", T_LOAD_NAMEDB, "Load Name database", T_LOAD_QRVDB, "Load QRV database", T_READONLY_BANDS, "Read-only bands", T_ENABLE_AC, "Enable A/C", T_AC_URL, "Alternative URL for flightradar data", T_K_FACTOR, "Troposphere k_factor", T_AC_AREA_WIDTH, "Reflection area width in km", T_AC_EL_ANGLE, "Minimal elevation angle", T_AC_MAX_EL_ANGLE, "Maximal elevation angle", T_AC_MIN_DURATION, "Minimal reflection duration in sec", T_AC_MAX_DIFF, "Max difference of incidence and reflection angles", T_BAD_NUMBER_RANGE, "Bad number range", T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate", T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder", T_NO_DEVICE, "No device", T_IQ_SOURCE, "IQ source:", T_WAV_FILE, "WAV file", T_WAV_FILE_NAME, "WAV file name", T_AF_OUTPUT, "AF output:", T_AF_SAMPLE_RATE, "AF sample rate", T_BLOCK_SIZE, " Block size", T_CW_FILTER, " CW filter", T_TO_HZ, "to [Hz]", T_SSB_FILTER, " SSB filter", T_INIT_NAMEDB, "Initializing name database", T_FREE_NAMEDB, "Terminating name database", T_LOAD_NAMEDB2, "Loading name database", T_INIT_NET, "Initializing network", T_FREE_NET, "Terminating network", T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops", T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)", T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)", T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s", T_TIME_WAS_SET, "Time was set", T_FAILED_TO_SET_TIME, "Failed to set time", T_INIT, "INIT", T_CONNECTING, "CONNECTING", T_CONNECTED, "CONNECTED", T_WAIT_ACK, "WAIT_ACK", T_DISCONNECTED2, "DISCONNECTED", T_DEAD, "DEAD", T_LONG_XFER, "LONG_XFER", T_AUTHENTICATED_USER_S, "Authenticated user %s", T_BAD_AUTHENTICATION_S, "Bad authentication %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT", T_LONG_TRANSFER_FINISHED, "Long transfer finished", T_INIT_NTP, "Initializing NTP monitor", T_FREE_NTP, "Terminating NTP monitor", T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP", T_INIT_SPEAKER, "Initializing PC speaker", T_FREE_SPEAKER, "Terminating PC speaker", T_CANT_PLAY, "Can't play %s - %s", T_CANT_SEEK_TO_END, "Can't seek to end %s - %s", T_CANT_SEEK_TO_START, "Can't seek to start %s - %s", T_CANT_OPEN, "Can't open %s %s", T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Can't set %s to EPP mode %s", T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s", T_CANT_CLAIM, "Can't claim %s %s", T_INIT_QRVDB, "Initializing QRV database", T_FREE_QRVDB, "Terminating QRV database", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AcKst", T_START, "Start", T_DUR, "Dur", T_NR, "NR", T_TEXT2, "Text", T_16_SORT, "1-6: sort, ", T_A_ALL, "A: all", T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search", T_LOAD_QRVS, "Loading qrvs", T_UNSPECIFIED, "unspecified", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBs CWr", T_CWS_SSBR, "CWs SSBr", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n", T_FOUND_D_ERRORS, "Found %d error%s while reading %s", T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net", T_REGISTRATED_ROTATORS, "Registrated rotators:", T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n", T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread", T_INIT_ROTARS2, "Initializing rotators", T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n", T_ROTAR_ERROR_S, "Rotar error: %s", T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe", T_CANT_READ_FROM, "Can't read from", T_CANT_WRITE_TO, "Can't write to", T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Update", T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Bad update file name", T_CANT_EXECUTE_INSTALLER, "Can't execute installer, ", T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed", T_UPDATE_FAILED, "Update failed", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply.", T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s", T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install.", T_NO_NEW_VER, "No new version available.", T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests...", T_CHOOSE_CONTEST, "Choose contest", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload", T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form...", T_ALL_EDI_FILES_PROCESSED, "All EDI files processed.", T_UPLOADING_LOG_FILE_S, "Uploading log file %s ...", T_UPLOADING_BAND_S, "Uploading band %s", T_CONFIRMING_LOG, "Confirming log...", T_RESULT_ERROR, "*** Result: ERROR please read error message above", T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s", T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores...", T_LOGS_UPLOADED, "Logs uploaded.", T_HTTP_STATUS, "HTTP status: ", T_LOG_UPLOAD, "Log upload", T_VOIP_NO_INITIALIZED, "VOIP no initialized", T_PAGE_NAME, "Page name", T_OVERWRITE_EXISTING_FILES, "Overwrite existing files", T_SITE_URL, "Site URL", T_USERNAME, "Username", T_PASSWORD2, " Password", T_EXPORT_MAP, "Export map", T_EXPORT_CHART, "Export chart", T_MEDIAWIKI_UPLOAD2, "Mediawiki upload", T_BAD_AUTH_USER, "Bad auth user %s != %s", T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n", T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame", T_CANT_GET_FMTS, "Can't get supported audio formats: %s", T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s", T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s", T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s", T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s", T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s", T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s", T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s", T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d", T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s", T_RECORD2, "record", T_PLAYBACK, "playback", T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s", T_CANT_STOP_PA, "Can't stop PortAudio stream: %s", T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s", T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\"", T_CANT_SET_STROBE, "Can't set parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error", T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n", T_INIT_SERIAL_DEVICES, "Initializing serial devices", T_BAD_CHECKSUM, "Bad checksum", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Bad response", T_UNKNOWN_FUNCTION, "Unknown function", T_UNKNOWN_ERROR_CODE, "Unknown error code", T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n", T_WAIT_FOR_SDR_THR, "Waiting for SDR thread", T_QSO_REQ_FROM_SP, " QSO request from S&P ", T_QSO_REQ_SENT, " QSO request sent to RUN ", T_GO, " GO! ", T_LOCATION_UNKNOWN, "Location unknown", T_DEGREE, "deg", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s", T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe", T_INIT_SSB_CQ, "Initializing SSB CQ", T_FREE_SSB_CQ, "Terminating SSB CQ", T_NO_FILE, "No file specified", T_UNSUP_CHANNELS, "Unsupported number of channels = %d", T_FLOAT_UNSUPP, "Float point files are not supported", T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing", T_REC_DISABLED, "recording disabled", T_CONTEST_TOO_OLD, "contest too old", T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Error writing file %s: %s", T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording", T_NO_DISK_SPACE, "Not enough free disk space for file", T_CANT_PLAY_FILE, "Can't play file %s - %s", T_CANT_WRITE_SS, "Can't write to file %s - %s", T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded", T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template", T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n", T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***", T_LOADING_S, "Loading %s", T_INVALID_WINDOW_TYPE, "invalid window type %d\n", T_INIT_RIG, "Initializing rig control %d", T_RIG_ERROR, "Rig error: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n", T_FREE_RIG, "Terminating rig control %d", T_WAIT_FOR_RIG_THR, "Waiting for rig thread", T_INVALID_PARAM, "Invalid param.", T_RIG_INVALID_CONFIG, "Invalid config.", T_RIG_NOT_ENOUGH_MEM, "Not enough mem.", T_RIG_NOT_IMPLEMENTED, "Not implemented", T_RIG_COMM_TIMEOUT, "Comm. timeout", T_RIG_IO_ERROR, "IO error", T_RIG_INTERNAL_ERROR, "Internal error", T_PROTOCOL_ERROR, "Protocol error", T_RIG_COMMAND_REJECT, "Command reject.", T_RIG_ARG_TRUNCATED, "Arg. truncated", T_RIG_F_NOT_AVAILABLE, "F not available", T_RIG_VFO_NOT_TARGET, "VFO not target.", T_RIG_ERROR_ON_BUS, "Error on bus", T_RIG_BUS_COLLISION, "Bus collision", T_RIG_INVALID_ARG, "Invalid arg.", T_RIG_INVALID_VFO, "Invalid VFO", T_RIG_ARG_OUT_OF_DOM, "Arg out of dom.", T_ERROR_D, "Error %d", T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)", T_CANT_SET_GRAPHICS2, "Can't set graphics mode", T_WAIT_SDL_THR, "Waiting for SDL event thread", T_FREE_GRAPHICS, "Terminating graphics", T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s", T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s", T_CANT_READ_LOG_FILE, "Can't read log file %s", T_CANT_UPLOAD_LOG, "Can't upload log: %s", T_CANT_CONFIRM_LOG, "Can't confirm log: %s", T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s", T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing", T_CALL2, "Call:", T_QTH, "QTH:", T_DATE3, "Date:", T_QSOS2, "QSOs:", T_POINTS2, "Points:", T_WWLS, "WWLs:", T_DXCCS, "DXCCs:", T_AVG2, "AVG:", T_PTSQSO, "pts/qso", T_TOP_10_CALLS, "Top 10 calls", T_OPERATOR2, "Operator", T_MODE2, "Mode", T_TOP_10_WWLS, "Top 10 WWLs", T_CANT_UPLOAD_FILE_S, "Can't upload file: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s", T_FILE_ALREADY_EXISTS, "File already exists: %s", T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s", T_CANT_EDIT_PAGE, "Can't edit page: %s", T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s", T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s", T_EDITING_CONTEST_PAGE, "Editing contest page...", T_ALL_DONE, "All done.", T_UPLOADING_FILE, "Uploading file %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s", T_QUERYING_EDIT_TOKEN, "Querying edit token", T_CANT_LOGIN, "Can't log in (2): %s", T_CANT_LOGIN2, "Can't log in (2), wiki says: %s", T_CANT_LOGIN1, "Can't log in (1): %s", T_LOGGING_IN, "Logging in...", T_EXPORTING_FILES, "Exporting files...", T_INIT_WIZZ, "Initializing contest wizard", T_FREE_WIZZ, "Terminating contest wizard", T_LOAD_WIZZ_DATA, "Loading contest wizard data", tucnak-4.04/intl/index.txt0000644000175000017500000000011012504016651012455 00000000000000english czech slovak german portuguese french castellano polish italian tucnak-4.04/intl/portuguese.lng0000644000175000017500000011713412535256134013536 00000000000000T__CHAR_SET, "iso8859-1", T__LANGUAGE, "Portugus", T_ABOUT, "Acerca", T_BAD_NUMBER, "Nmero errado", T_BAD_STRING, "String errada", T_BASIC_HELP, "Prima F10 para ter o menu.\nDivirta-se.", T_BLOCK_CURSOR, "Cursor de bloco", T_CANCEL, "Cancelar", T_CHARACTER_SET, "Definio de caracter", T_COLOR, "Cor", T_COPYING, "Licena", T_DIFFERENCE, "diferena", T_DO_YOU_REALLY_WANT_TO_EXIT_TUCNAK, "Quer mesmo sair do Tucnak?", T_EMPTY_STRING_NOT_ALLOWED, "String vazia no permitida", T_ERROR, "Erro", T_WARNING, "Aviso", T_EXIT, "Sair", T_EXIT_TUCNAK, "Sair do Tucnak", T_FILE, "Ficheiro", T_FULL_SCREEN, "Monitor completo", T_HELP, "Ajuda", T_HK_ABOUT, "A", T_HK_BEOS_TERMINAL, "B", T_HK_CHARACTER_SET, "H", T_HK_COPYING, "C", T_HK_EXIT, "X", T_HK_FILE, "F", T_HK_FULL_SCREEN, "F", T_HK_HELP, "H", T_HK_LANGUAGE, "L", T_HK_MEMORY_INFO, "M", T_HK_OS_SHELL, "O", T_HK_SCREEN, "S", T_HK_SETUP, "S", T_HK_TERMINAL_OPTIONS, "T", T_HK_TWTERM, "T", T_HK_WINDOW, "W", T_HK_XTERM, "X", T_KOI8R_FRAMES, "KOI8-R frames", T_LANGUAGE, "Linguagem", T_LAST, "ltimo", T_LINUX_OR_OS2_FRAMES, "Linux ou OS/2 frames", T_MEMORY_INFO, "Informao da memria", T_NO_FRAMES, "No h frames", T_NO, "No", T_NUMBER_EXPECTED, "Esperado nmero no campo", T_NUMBER_OUT_OF_RANGE, "Nmero fora de alcance", T_OK, "OK", T_OS_SHELL, "OS shell", T_RESTRICT_FRAMES_IN_CP850_852, "Frames restringidas em cp850/852", T_UTF_8_IO, "UTF-8 Input/Output", T_SCREEN, "Monitor", T_SETUP, "Definies", T_TERMINAL_OPTIONS, "Opes do terminal", T_TUCNAK__TACLOG_LIKE, "Tucnak " VERSION_STRING "\n\nComo o programa de concursos de V/U/SHF TACLOG", T_TWTERM, "Twterm", T_USE_11M, "Usar ^[[11m", T_VT_100_FRAMES, "VT 100 frames", T_WELCOME1, "Bem vindo ao Tucnak!", T_WELCOME2, "Digite seu indicativo e localizador:", T_WELCOME, "Bem vindo", T_XTERM, "Xterm", T_YES, "Sim", T_CANT_APPEND_S, "No posso anexar ao ficheiro %s", T_CANT_WRITE, "No posso escrever para o ficheiro", T_CANT_WRITE_S, "No posso escrever para o ficheiro %s", T_CANT_READ, "No posso ler desde o ficheiro", T_CANT_READ_S, "No posso ler desde o ficheiro %s", T_SAVED_S, "Guardado %s", T__CW_, " CW ", T_CWW_KEYS, " PgUp +, PgDn - velocidade do cw ", T_CANT_OPEN_S, "No posso abrir %s", T_CANT_LOCK, "No posso fechar", T_CANT_LOCK_S, "No posso fechar %s", T_LOADING_CTEST_S, "*** A carregar o concurso %s", T_NO_FILES, "Nenhuns ficheiros na directoria", T_BAND_EXIST_SS, "AVISO! A banda %s (%s) j existe", T_BAND_NOT_OPEN, "A banda no est activa neste concurso", T_NO_BANDS, "Nenhumas bandas para carregar", T_CANT_SET_GR_S, "No posso definir modos grficos-%s", T_GCALL, "Indicativo: %s", T_GWWL, "WWL: %s", T_GQRB, "QRB: %d km", T_GQTF, "QTF: %d", T_GSEN, "Sent: %s %s", T_GRCV, "Rcvd: %s %s", T_GTIM, "Time: %s", T_GOPE, "Op: %s", T_GREM, "Rem: %s", T_GWKD, "Wkd: %d", T_GINC, "income: %d", T_GLON, "Lon:%7.2f %-6s", T_GLAT, "Lat:%7.2f %-6s", T_GLOC, "Loc: %s", T__PLESE_WAIT_, " Por favor ESPERE ", T__RO_BAND, " BANDA SO PARA LER", T_COPYING_VER, "O ltimo programa de concurso - to necessrio como conhecido\n\nVerso " VERSION_STRING "\n\n(C) Ladislav Vaiz, OK1ZIA\n\nEste programa software livre; voc pode redistribuir e/ou modific-lo debaixo dos termos da licena GNU General Public License verso 2 como publicado pelo Free Software Foundation.", T_CTEST_ACTIVE, "O concurso j est activo ", T_NO_CTESTS, "Nenhum concurso", T_NO_CCLOSE, "Nenhum concurso para fechar", T_REALLY, "De certeza?", T_CLOSE_CTEST, "Quer mesmo fechar este concurso?", T_GUI_LD, "GUI: %ld ", T_SBRK, "sbrk: %ld", T_CWI, "C_W: %d cw items, %d wc items, ltimo %d\n", T_EXC, "Exc: %s %d exc items, %d cxe items, ltimo %d\n", T_VEXC, "Verified EXC: %d items\n", T_DWI, "D_W: %d prefixos, %d DXCCs, %d WWLs\n", T_NAMES, "Nomes: %d nomes\n", T_MASTER, "Master: %d calls\n", T_MEMS, "Memria:", T_NMY, " Meu: ", T_NGLOBAL, "Global: ", T_NMASTER, "Master: ", T_NREMOTE, "Remote: ", T_NSLAVES, "\nSlaves:\n", T_NINFO, "Informao da rede", T_NO_BANDS_QRV, "Nenhumas bandas QRV", T_NO_BANDS_CONF, "Nenhumas bandas configuradas", T_NOT_AVAILABLE, "No disponvel", T_ADD_SUBWIN, "Adicionar subwin", T_HK_ADD_SUBWIN, "A", T_CLOSE_SUBWIN, "Fechar subwin", T_HK_CLOSE_SUBWIN, "C", T_HK_NINFO, "N", T_NEW, "Novo", T_HK_NEW, "N", T_NEW_WIZZ, "Novo desde os exemplos", T_HK_NEW_WIZZ, "W", T_NEW_NET, "Novo desde a rede", T_HK_NEW_NET, "T", T_OPEN, "Abrir", T_HK_OPEN, "O", T_SAVE, "Guardar", T_HK_SAVE, "S", T_EXPORT_EDI, "Exportar como EDI", T_HK_EXPORT_EDI, "E", T_EXPORT_REPORT, "Exportar como reporte", T_HK_EXPORT_REPORT, "R", T_EXPORT_ADIF, "Exportar como ADIF", T_HK_EXPORT_ADIF, "A", T_EXPORT_CBR, "Export as ADIF", T_HK_EXPORT_CBR, "B", T_EXPORT_HTML, "Exportar como HTML", T_HK_EXPORT_HTML, "H", T_EXPORT_WIKI, "Export as MediaWiki", T_HK_EXPORT_WIKI, "W", T_IMPORT_EDI, "Importar EDI", T_HK_IMPORT_EDI, "I", T_IMPORT_ADIF, "Importar ADIF", T_HK_IMPORT_ADIF, "M", T_IMPORT_SWAP, "Importar swap", T_HK_IMPORT_SWAP, "S", T_IMPORT_LIST, "Import list", T_HK_IMPORT_LIST, "L", T_CONTEST_OP, "Opes do concurso", T_HK_CONTEST_OP, "O", T_CLOSE_CONTEST, "Fechar concurso", T_HK_CLOSE_CONTEST, "C", T_ADD_ERROR, "Adicionar ERRO", T_HK_ADD_ERROR, "E", T_CHOP, "Mudar de operador", T_HK_CHOP, "O", T_CW_CTEST, "Actualizar o C_W desde um concurso", T_HK_CW_CTEST, "C", T_CW_BAND, "Actualizar o C_W desde a banda", T_HK_CW_BAND, "B", T_EXC_CTEST, "Actualizar o EXC DB desde o concurso", T_HK_EXC_CTEST, "P", T_EXC_BAND, "Actualizar o EXC DB desde a banda", T_HK_EXC_BAND, "D", T_IMPORT_EBW, "Importar a database de DL8EBW", T_HK_IMPORT_EBW, "W", T_NO_CTEST, "Nenhum concurso", T_NO_PEERS, "Nenhuns peers encontrados", T_NO_MASTER, "O master no est disponvel!", T_CTEST_DEF, "Configurao do concurso", T_HK_CTEST_DEF, "O", T_BAND_DEF, "A banda por defeito", T_HK_BAND_DEF, "B", T_HK_RESPOP, "P", T_CW_DAEMON, "Chave de CW", T_HK_CW_DAEMON, "E", T_CW_CQ, "CW CQ", T_HK_CW_CQ, "C", T_SSB_CQ, "SSB CQ", T_HK_SSB_CQ, "S", T_AUTOSAVE, "Auto guardar", T_HK_AUTOSAVE, "A", T_LOAD_CFG_NET, "Carregar a cfg desde a net", T_HK_LOAD_CFG_NET, "N", T_LOAD_CW_NET, "Carregar o C_W desde a net", T_HK_LOAD_CW_NET, "W", T_SAVE_CFG, "Guardar a configurao", T_HK_SAVE_CFG, "F", T_CONTEST, "Concurso", T_HK_CONTEST, "C", T_EDIT, "Editar", T_HK_EDIT, "E", T_BANDS, "Bandas", T_HK_BANDS, "B", T_SUBWINS, "Subwins", T_HK_SUBWINS, "W", T_BAND_SETTINGS_SC, "As definies da banda por banda %c %s", T_QRV_ON_THIS_BAND, "QRV nesta banda", T_QRV_IN_THIS_CTEST, "QRV neste concurso", T_READ_ONLY, "So ler", T_MULTI, "Multi", T_SINGLE, "Szinho", T_CHECK, "Verificar", T_TXEQUIP, " equip de TX:", T_POWER, " potncia:", T_RXEQUIP, " equip de RX:", T_ANTENNA, " antena:", T_AGLASL, " AGL;ASL:", T_OPS, "operadores:", T_SPACES1, " ", T_REMARKS, " anotaes:", T_OK_SECTION_SINGLE, "Categoria single em OK", T_OK_SECTION_MULTI, "Categoria multi em OK", T_QRG_MIN, "Limite da banda desde", T_QRG_MAX, "para [kHz]", T_ADIFBAND, "Nome da banda em ADIF", T_SKEDQRG, "QRG para skeds (formato livre)", T_BAND_LO, "Transverter's LO QRG [Hz]", T_BANDSW, "Band switch value", T_RESPOP, "Operador responsvel", T_NAME, " nome:", T_CALLSIGN, " indicativo:", T_ADDRESS, " endereo:", T_POSTCODE, "cdigo postal:", T_CITY, " cidade:", T_COUNTRY, " pas:", T_PHONE, " telefone:", T_BBSEMAIL, " BBS/Email:", T_QP0, " --nenhum -- ", T_QP1, " 1 QSOp*QSOp_m (Std. IARU)", T_QP2, " 2 QSOp_m (UK VHF activity, ARRL party)", T_QP3, " 3 RSGB_ring*QSOp_m (RSGB Backpacker)", T_QP4, " 4 WWL_ring*QSOp_m (OK activity)", T_QP5, " 5 St_miles*QSOp_m", T_QP6, " 6 QSOp_m +1 per CW (CQ WW VHF)", T_QP7, " 7 WWL_dist*QSOp_m (OH-SM)", T_QP8, " 8 WWL_dist*QSOp_m (Baltic)", T_QP9, " 9 WWL_dist*QSOp_m (Baltic & Nordic fieldday)", T_QP10, "10 QSOp_m *5 if Gx (UK cumulative)", T_QP11, "11 QSOp_m *3 if F (F 50MHz)", T_QP12, "12 RSGB DC (district codes)", T_QP13, "13 Continent (CQ WW DX Contest)", T_QP14, "14 Continent+band (CQ WW WPX Contest)", T_QP15, "15 VHF Band (ARRL VHF, CQ VHF)", T_QP16, "16 QSOp *4 if F (Champ. de France)", T_QP17, "17 QSOp*WWLmult if G (RSGB M5)", T_QP18, "18 QSOp*WWLm 2x if G (RSGB M7)", T_TP0, " --none -- ", T_TP1, " 1 Multiplicative (Std. IARU)", T_TP2, " 2 Additive (RSGB Backpacker, VRZA, Sicily)", T_TP3, " 3 Mult. all bands (CQ WW DX Contest)", T_TP4, " 4 All bands togeth. (ARRL VHF)", T_NEW_CTEST, "Novo concurso", T_CANT_TRUNC, "No posso mutilar o ficheiro de desc", T_NAME_OF_CTEST, "Nome do concurso:", T_CALL_OF_CTEST, "Indicativo no concurso:", T_CLUB_ST, "Estao do clube:", T_YOURWWL, "A sua quadrcula:", T_YOUREXC, "O seu EXC:", T_DATE_OF_CTEST, "Data do concurso:", T_QSOUSED, "QSO NR usado", T_QSOPM, " QSOp multi:", T_WWLUSED, "Quadrcula usada ", T_WWLB, "Bnus da quadrcula:", T_WWLM, "Multi da quadrcula:", T_EXCUSED, "EXC usada", T_EXCB, " Bnus do EXC:", T_EXCM, "Multi do EXC:", T_EXCNAME, "EXC name:", T_PREFM, "PREF multi:", T_DXCB, "DXC bnus:", T_DXCM, "DXC multi:", T_RSTUSED, "RST usado ", T_DEFRS, "RS por defeito:", T_DEFRST, "Def RST:", T_ALSORSTR, "Also for RST-R", T_QP_CALC, " QSOp calc:", T_TO_CALC, "Total calc:", T_EDI_PROP, "EDI prop", T_RESPOP2, "Op responsvel", T_EDIT_QSO_CD, "Editar QSO %c: %03d", T_CALLSIGN2, "Indicativo:", T_CLUB, " Clube:", T_PADR1, " PAdr1:", T_PADR2, " PAdr2:", T_RS, " RS:", T_RST, " RST:", T_OPERATOR, "Operador:", T_DATE, " Data:", T_MODE, " Modo:", T_RSTS, " RSTs:", T_RSTR, " RSTr:", T_QSONRS, "QSO enviado:", T_QSONRR, "QSO recebido:", T_OPTEXCH, " OptExch:", T_WWL, " WWL:", T_REMARK, " Anotao:", T_QRV2, " QRV on:", T_WKD, " WKD:", T_SEND_SKED, "Enviar sked", T_SELECT, "Seleccionado", T_QRG, " QRG:", T_WE_CALL, " Ns chamamos", T_BAND, " Banda:", T_TIME, " Tempo:", T_DUPE_QSO, "QSO duplicado!", T_CLEAR_THIS_QSO, "Limpar este QSO", T_EDIT_OLD_QSO, "Editar QSO antigo", T_MARK_OLD_QSO, "Marcar qso antigo como ERRO", T_STORE_AS_DUPE, "Guardar como DUPE", T_BAD_CALL, "Isto no parece um indicativo", T_N_CALLSIGN, "\nIndicativo:", T_AUTOSAVE_OPTS, "Opes de auto-guardar", T_SAVE_AQ, "Guardar para o disco depois do QSO: ", T_SAVE_AM, "Guardar no disco depois dos minutos:", T_FSYNC, "Fsync", T_SAVE_AQF, "Guardar na disquete depois do QSO: ", T_SAVE_AMF, "Guardar na disquete depois dos minutos:", T_DO_MOUNT, "Montar se no em /etc/mtab (no usado)", T_FLOPPY_PATH, "Caminho para a disquete:", T_MOUNT_CMD, "Comando de montar: ", T_SW_SHELL, "Shell", T_SW_QSOS, "QSOs", T_SW_LOG, "Log", T_SW_TALK, "Falar", T_SW_SKED, "Sked", T_SW_UNFI, "Unfi", T_SW_DXC, "DXC", T_SW_STAT, "Stat", T_SW_MAP, "Mapa", T_SW_SCOPE, "Scope", T_SW_QRV, "QRV", T_SW_HF, "HF", T_SW_PLAYER, "Player", T_SW_CHART, "Chart", T_SHELL, "Shell", T_QSOS, "QSOs", T_LOG, "Log", T_TALK, "Falar", T_SKEDS, "Skeds", T_UNFI, "QSO no concludo QSOs", T_DXC, "DX Cluster", T_STAT, "Estatsticas", T_SWAP, "Mudar (N/A)", T_MAP, "Mapa grfico", T_SCOPE, "Scope", T_QRV, "QRV", T_HF, "HF", T_KST, "KST", T_CMD, "Comando", T_RESPAWN, "Respawn [sec]:", T_UNFI_QSO, "QSO no acabado", T_N_REMARK, "\nAnotao:", T_NO_CQ, "Nenhum CQ definido", T_TEXT, "Texto:", T_SPEED, "Velocidade [WPM]:", T_REPEAT, "Repetir", T_DELAY, "Atraso [0.1s]:", T_ALLOW_UNDEF, "Permitir se o mesmo item est indefinido", T_CW_DSCS, "CW%d (%s) %c %s", T_FILENAME, "Ficheiro:", T_SSB_DSCS, "SSB%d (%s) %c %s", T_UDPPORT, "Porta UDP:", T_DEVICE, "Mecanismo de telegrafia:", T_INIT_SPEED, "Velocidade inicial [WPM]:", T_INIT_WEIGHT, "Peso (30-70):", T_WPMFROM, "Alcance WPM de", T_WPMTO, "para", T_USE_SPK, "Usar altifalante", T_LEADIN, " Presena do PTT em [ms]", T_AUTGIVE, "Run mode aut. give after [chars]", T_IGN_IFACE_S, "Ignorar o interface %-5s", T_IGN_ADDR_S, "Ignorar o endereo %s", T_ADD_IFACE_SSD, "Interface adicionado=%-5s BCAST=%s:%d", T_FORCED_ADDR, "Endereo forcado %s", T_TIMESKEW, "AVISO! O tempo de skew %d detectado outra vez %s:%d !\n", T_DISCONNECTING_SD, "A desligar desde %s:%d", T_ACCEPTED_SD, "Aceitado %s:%d (%s)", T_CONNECTING_SD, "A ligar a %s:%d", T_CONNECTED_SD, "Ligado a %s:%d", T_DISCONNECTED_SD, "A desligar desde %s:%d", T_LOADED_CFG_SSSS, "A carregar a config para %s %s (%s,%s)", T_LOADED_CW, "C_W data carregada", T_PEER_NOT_FOUND, "ERRO! Peer %s no encontrado", T_CANT_CREATE_HOME_S, "No posso criar a directoria %s", T_CANT_LOAD_CFG, "No posso carregar a configurao!\nO programa no vai trabalhar devidamente!", T_ERR_RC, "Encontrados alguns erros de parsing no ficheiro de config!\nEste ficheiro foi provavelmente guardado no novo Tucnak!\nNo guarde a sua configurao a pois pode perder todos os seus elementos!", T_SES_QTR, " QTR ", T_SES_QRA, " CALL ", T_SES_RST, " RST-S-No RST-R-No ", T_SES_QTH, " QTH ", T_SES_QRB, " Pts/QRB QTF ", T_SES_FLG, " Flg ", T_SES_OPE, " Oper. ", T_SES_EXC, " Exch ", T_SES_REM, " Aviso ", T_SES_WELCOME, "Bem vindo ao Tucnak! ", T_SES_PRESS_F10, "Premir F10 para o menu.", T_SES_HAVE_FUN, "Divirta-se.", T_SES_URL, "http://tucnak.nagano.cz ", T_SES_ODX, "ODX: ", T_SES_ODX_DATA, "%s %s %d km (%s)", T_SES_STAT_TIT, "QSOs QSO-p OptX WWLs DXCCs Total-p AVG", T_SES_AVG, " AVG: %5.2f", T_SES_WPM, " WPM:%2d %02d%% %s", T_SF_WWLS, " WWLs: %d", T_SF_WWLS_UNDER, "-------------", T_SF_EXCS, " EXCs: %d", T_SF_EXCS_UNDER, "-------------", T_SF_MISS_EXCS, " Missing EXCs: %d", T_SF_MISS_EXCS_UNDER, "---------------------", T_SF_PREFS, " PREFs: %d", T_SF_PREFS_UNDER, "-------------", T_SF_DXCS, " DXCCs: %d", T_SF_DXCS_UNDER, "-------------", T_SF_WKD_WWLS, " WKD WWLs: %d", T_SF_WKD_WWLS_UNDER, "-----------------", T_SF_QSO_WWL4, " QSOS em WWL4s: %d", T_SF_QSO_WWL4_UNDER, "----------------------", T_SF_STATS_BAND, " Estatsticas para a banda %s", T_SF_STATS_BAND_UNDER, "===============================", T_SF_CONTEST, "Contest: %s", T_SF_ALLBQSOS, "All bands QSOs: %d", T_SF_ALLBQSOP, "All bands QSOp: %d", T_SF_ALLBPTS, "All bands pts: %d", T_SF_QSOS, "QSOs: %d", T_SF_QSOP, "QSO points: %d", T_SF_PTS, "Points: %d", T_SF_AVG_PTS, "Mdia pts/QSO: %5.2f", T_SF_AVG_QSOP, "Mdia qsop/QSO: %5.2f", T_BAND_RO, "A banda s para ler", T_THIS_BAND, "Esta banda", T_OTHER_BANDS, "Outras bandas", T_CW_DB, "C_W database", T_PROC_EXITED, "*** Processo sado\n", T_WE_CALL2, "ns chamamos", T_WE_LISTEN, "ns escutamos", T_QSL, "QSL prometido", T_RECORD, "Trfego registado", T_MAXMIN, " Max. durao da gravao", T_TEMPLATE, "Template para o ficheiro registado", T_PCM8, "8 bit PCM", T_PCM16, "16 bit PCM", T_ULAW, "u-law", T_ALAW, "A-law", T_IMAADPCM, "IMA ADPCM", T_MSADPCM, "MS ADPCM", T_GSM610, "GSM 6.10", T_CHANNELS, "Canais", T_SAMPLERATE, "Velocidade de exemplo", T_FILLOP, "Preencher operadores", T_HK_FILLOP, "L", T_RECAQRB, "Recalc QRB,QTF", T_HK_RECAQRB, "R", T_NETWORK, "Rede & registar", T_HK_NETWORK, "K", T_IF_IGNORE, "Interfaces ignorados:", T_IP_IGNORE, " Redes ignoradas:", T_IP_ANNOUNCE, " Anunciar para as nets:", T_TRACE_BCAST, "Registar transmisses ", T_TRACE_SOCK, "Registar sockets", T_TRACE_RECV, "Registar data recebida", T_TRACE_SEND, "Registar data enviada", T_TRACE_QSOS, "Registar QSOs", T_TRACE_SDEV, "Trace rotars", T_NOT_MOUNTED_S, "No est montada %s", T_RECSRC_NONE, "No definido", T_RECSRC_MIC, "Microfone", T_RECSRC_LINE, "Line in", T_NEW_CALL, "Novo!", T_HK_NEW_CALL, "n", T_QRV_ON_S, "QRV em %s", T_SKED_QRG, "QRG para skeds", T_HK_SKED_QRG, "F", T_N_SKED_QRG, "\nQRG para skeds:", T_GRAB_BAND, "Gravar controle da banda", T_HK_GRAB_BAND, "G", T_FORCE_RUN, "Forar modo RUN", T_HK_FORCE_RUN, "U", T_EXPORT_STATS, "Exportar estatsticas", T_HK_EXPORT_STATS, "T", T_SF_TOP_DX, " TOP %d DX QSOs:", T_SF_TOP_DX_UNDER, "-------------------", T_ROTAR, "Rotor", T_HK_ROTAR, "R", T_AZIMUTH, " Azimute", T_ELEVATION, "Elevao", T_CH_SPY, "Espiar", T_HK_CH_SPY, "S", T_CH_ENDSPY, "Fim de espiar", T_HK_CH_ENDSPY, "P", T_EXPORT_TITLPAGE, "Exportar a pgina do ttulo", T_HK_EXPORT_TITLPAGE, "P", T_BREAK_RECORD, "Gravao cortada", T_HK_BREAK_RECORD, "B", T_GLOBAL_OPERATOR, "Mudar para todas as bandas", T_GLOBAL_OPERATOR2, "Global", T_MAXFRAG, "Max. nm de fragmentos (>=2)", T_PLAY_LAST, "Repetir ltimo exemplo", T_HK_PLAY_LAST, "P", T_MISCOPTS, "Opes variadas", T_HK_MISCOPTS, "P", T_LOGLINES, "Linhas do registo: ", T_SKEDSHIFT, "Intervalo do contacto (minutos): ", T_STARTBAND, "Banda para comear: ", T_GFX_X_CH, "Resoluo do monitor (cars):", T_GFX_Y_CH, "x", T_GFX_X_PX, "Resoluo do monitor (pixels):", T_GFX_Y_PX, "x", T_CALL_INFO, "Informao do indicativo", T_HK_CALL_INFO, "I", T_SF_QSO_HOUR, "QSOs/hora: %d", T_SF_QSOP_HOUR, "Pontos/hora: %d", T_SF_QSOP_50QSO, "Pontos/50 QSOs: %d", T_SF_HOURS, " Horas", T_SF_HOURS_UNDER, "---------", T_SF_HOURS_TITLE, "Horas Pontos QSOs AVG pts/QSO", T_QSO_CHECK, "QSO check", T_HK_QSO_CHECK, "K", T_AUDIO, "Audio", T_HK_AUDIO, "D", T_ALSA, "Alsa", T_OSS, "OSS", T_PORTAUDIO, "PortAudio", T_DISKFREE, "O minimo espao de disco disponivel [MiB]", T_FORMAT, "Formato de gravao", T_PCM_PLAY, "Dispositivo de som Alsa", T_PCM_REC, "Dispositivo de captura Alsa", T_PERIOD, "Periodo de tempo [ms]", T_BUFFER, "Tempo de buffer [ms]", T_ALSA_MIXER, "Dispositivo misturador Alsa", T_CAPTURE, "Fonte de captura", T_DSP, "Caminho para o /dev/dsp", T_MIXER, "Caminho para o /dev/mixer", T_RECSRC, "Fonte de leitura", T_PA_PLAY, "Portaudio playback device", T_PA_REC, "Portaudio capture device", T_HOSTNAME, "Hostname:", T_SLASHKEY, "Chave slash", T_FIXQRG, "Reparar QRG", T_HK_FIXQRG, "X", T_ENTER_QRG, "Escrever a QRG correcta [Hz]", T_BAD_QRG, "Frequncia errada", T_CALLSIGN3, "Indicativo", T_CALLSIGN_KST, "Indicativo da estao KST:", T_CANT_INIT_WINKEY_S, "No posso iniciar a winkey em %s", T_WINKEYOPTS, "Opes da Winkey", T_WK_WK2, "Inicializao rdida da Winkey2", T_WK_USEPOT, "Use o potnciometro de velocidade", T_WK_USEBUT, "Use os butes", T_WK_KM_B, "Curtis-B", T_WK_KM_A, "Curtis-A", T_WK_KM_U, "Ultimatic", T_WK_KM_G, "Bug", T_WK_SWAP, "Mudana da paddle ( esquerda)", T_RIGOPTS, "Opes do equipamento", T_HK_RIGOPTS, "G", T_RIG_DEVICE, "Device:", T_RIG_MODEL, "Model", T_RIG_SPEED, "Baudrate: ", T_RIG_CIV, "CIV address (hex)", T_RIG_FREQSHIFT, "Freq. shift SSB->CW", T_RIG_CHOOSE, "Choose", T_ROTAROPTS, "Rotar options", T_HK_ROTAROPTS, "I", T_DSSAVER, "Desactivar o screensaver", T_DESC, "Description", T_ROT_NONE, "None", T_ROT_OK1ZIA_TTYS, "OK1ZIA ttys", T_ROT_OK1ZIA_FTDI, "OK1ZIA FTDI", T_ROT_HAMLIB, "Hamlib (N/A)", T_ROT_REMOTE, "Remote (N/A)", T_ROT_VID, "VID:", T_ROT_PID, "PID:", T_ROT_SERIAL, "Serial #", T_ROT_ADD, "Add new rotator", T_HK_ROT_ADD, "W", T_ROT_REMOVE, "Remove rotator", T_HK_ROT_REMOVE, "R", T_TIMEOUT, "Timeout:", T_BEAMWIDTH, "Beam width", T_SADDR, "Communication address:", T_MODEL, "Model:", T_ROT_REM_ROTSTR, "Rotator letter for remote", T_QSOGLOB, "Global QSO NR", T_PREFGLOB, "Global prefix", T_NOT_RECORDING_S, "Not recording - %s", T_SKEDCOUNT, "Sked count in popup: ", T_FONTHEIGHT, "Font height (16-32): ", T_RIG_POLL_MS, "Rig poll interval [ms]: ", T_RIG_QRG_R2T, "Set band from radio", T_RIG_QRG_T2R, "Change band on radio", T_RIG_MODE_T2R, "Change mode on radio", T_RUN_MODE, "Run mode", T_HK_RUN_MODE, "M", T_SP_MODE, "S&P mode", T_HK_SP_MODE, "M", T_RIG_CLR_RIT, "Clear RIT on RUN's QSO save", T_RIG_DEBUG, "Debug rig", T_HF_RATE, "Rate: %3d/10 %3d/60", T_HF_BAND, "Band QSO Point Mult", T_HF_SUM, "Sum:", T_HF_LAST, "Last Q-%s P-%s", T_EVEN, "TX even", T_HK_EVEN, "v", T_ODD, "TX odd", T_HK_ODD, "d", T_1ST, "TX 1st", T_HK_1ST, "1", T_2ND, "TX 2nd", T_HK_2ND, "2", T_HF_SCORE, "Score:", T_EXPMODE, "Expedition mode", T_TTTYPE, "Only digits mean", T_ROT_POLL_MS, "Poll interval [ms]:", T_VERSION, "Version", T_HK_VERSION, "V", T_REMOTE_HOST, " Remote host name:", T_REMOTE_PORT, " Remote TCP port:", T_REMOTE_PASS, " Remote Password:", T_STARTING_AC, "Starting A/C", T_STOPPING_AC, "Stopping A/C", T_ASL_5D_M, "ASL: %5d m", T_SPEED4D_KMH, "Speed:%4d km/h", T_AC_START, "Start: %02d:%02d %02ldm%02ld", T_AC_DURAT_LD, "Durat: %ld", T_EXPORTING_S, "Exporting %s", T_CANT_OPEN_ALSA_PCM_S_S, "Can't open alsa PCM '%s': %s", T_EXPORTING, "Exporting ...", T_TERMINATING_CONVERSION_TABLES, "Terminating conversion tables", T_LOADING_CHARTS, "Loading charts", T_INITIALIZING_CWPTT_CONTROL, "Initializing CW/PTT control", T_NO_PPDEV, "Support for ppdev/inpout isn't compiled in", T_NO_DAVAC4_SUPPORT, "Support for davac4 isn't compiled in, check for libftdi", T_CANT_CREATE_PIPE, "Can't create pipe", T_TERMINATING_CWDAEMON, "Terminating CW/PTT control", T_INIT_CWDB, "Initializing WWL database", T_TERM_CWDB, "Terminating WWL database", T_LOADING_CWDB, "Loading WWL database", T_QRV_ON, "QRV on: ", T_CANT_INIT_FTDI, "Can't init ftdi library for davac4", T_CANT_OPEN_DAVAC4, "Can't open davac4 device %04x:%04x, error=%d %s", T_CANT_SET_BAUDRATE, "Can't set baudrate for davac4, error=%d %s", T_CANT_ENABLE_BITBANG, "Can't enable bitbang, error=%d %s", T_CANT_WRITE_TO_DAVAC4, "Can't write to davac4, error=%d %s", T_INIT_SOUNDCARD, "Initializing soundcard", T_NO_OSS, "OSS support not compiled in", T_NO_ALSA, "Alsa support not compiled in", T_NO_PORTAUDIO, "portaudio support not compiled in", T_NO_SNDFILE, "Libsndfile support not compiled in", T_NO_SNDPIPE, "Sndpipe support not compiled in", T_TERMINATING_SOUNDCARD, "Terminating soundcard", T_INIT_DWDB, "Initializing DXCC database", T_FREE_DWDB, "Terminating DXCC database", T_LOAD_DWDB, "Loading DXCC database", T_CALLSIGN_UNKNOWN, "Callsign unknown in namedb and C_W\n", T_CROSSMODE_QSO_N, "Crossmode QSO ?\n", T_UNKNOWN_DXCC_PREFIXN, "Unknown DXCC prefix\n", T_PREFIX_AND_BIG_WWL, "Prefix and big wwl don't match\n", T_KNOWN_CALL_UNK_LOC, "Known call from unknown locator\n", T_CALL_WITHOUT_P, "Call is without /P and in C_W exists call with /P\n", T_CALL_WITHOUT_D, "Call is without /%d and in C_W exists call with /%d\n", T_CALL_IS_WITH_P_AND, "Call is with /P and in C_W exists call without /P or CEPT prefix\n", T_OTHER_SIMILAR_CALL_KNOWN, "Other similar call known from this locator. Maybe %s?\n", T_CALL_ON_BAND_S, "Callsign on band %s is %s\n", T_LOCATOR_ON_BAND, "Locator on band %s is %s\n", T_QSO_CHECK_LIST, " Tucnak QSO check list\n", T_CALL_SN, " Call: %s\n", T_CONTEST_SN, "Contest: %s\n", T_DATE_SN, " Date: %s\n", T_CHECKING_S, "Checking %s", T_BAND_C_SN, " Band %c %s\n", T_SEEMS_TO_BE_OK, "Seems to be O.K.\n", T_CW_NOT_FOUND, "C_W: %s not found\n", T_0X_NOT_IN_DB, " 0x (not in database)", T_NAME_IS, "Name: %s's name is %s\n", T_NAME_UNKNOWN, "Name: %s's name is unknown\n", T_INIT_DXC, "Initializing DXcluster database", T_FREE_DXC, "Terminating DXcluster database", T_HK_SELECT, "S", T_HIDE, "Hide", T_HK_HIDE, "H", T_INFO, "Info", T_HK_INFO, "I", T_USE, "Use", T_HK_USE, "U", T_BAD_DXC_PORT, "*** Incorrect DXC TCP port %s ***\n", T_ENTER_TO_DXC, "\n*** Press ENTER to connect to DXC ***\n", T_CANT_RESOLVE, "*** Can't resolve %s: %s ***\n", T_HOST_RESOLVED, "*** Host resolved ", T_CANT_CREATE_SOCKET, "*** Can't create socket. %s ***\n", T_CONNECTING_TO, "*** Connecting to %s ***\n", T_CANT_CONNECT_TO, "*** Can't connect to %s, %s ***\n", T_CONNECTED_SOCKET, "*** Connected socket %d ***\n", T_ERROR_READING_SOCKET, "*** Error reading socket: %s ***\n", T_DISCONNECTED, "\n*** Disconnected ***\n", T_RESOLVING, "*** Resolving %s ***\n", T_LOADED_LOCS_NAMES, "Loaded %d locators and %d names from %s", T_SAVED, "Saved '%s'", T_LOADING_CONTEST, "Loading contest %s", T_LOADING_LOGFILE, "Loading logfile", T_LOADING_TALK, "Loading talk", T_SEARCH_FILES, "Search for contest files", T_LOADING_BAND, "Loading band %s", T_LOADING_SPY, "Loading spy", T_LOADING_HICALLS, "Loading hicalls", T_LOADING_QRV, "Loading qrv", T_LOADING_CHART, "Loading chart", T_SAVING_CONTEST, "Saving contest", T_UPD_INT_DATA, "Updating internal data", T_CALC_STATS, "Calculating statistics", T_ANN_OVER_NET, "Announcing over network", T_ACTIVATING_BAND, "Activating band %s", T_UPDATING_WKD, "Updating worked calls", T_UPDATING_QRBQTF, "Updating QRB&QTF", T_UPDATING_GAIN, "Updating gain chart", T_SEN_OVER_NET, "Sending info over network", T_INIT_EXCDB, "Initializing exchange database", T_FREE_EXCDB, "Terminating exchange database", T_INIT_FFT, "Initializing FFT analyse", T_FREE_FFT, "Terminating FFT analyse", T_INIT_ROTAR, "Initializing rotator control", T_FREE_ROTAR, "Terminating rotator control", T_LOCATOR, "Locator:", T_BAND2, "Band", T_POINTS, "Points", T_AVG, "AVG", T_INIT_HTTPD, "Initializing HTTP server", T_FREE_HTTPD, "Terminating HTTP server", T_NO_CONTEST_OPENED, "

No contest opened

\n", T_NO_CONTEST_OPENED2, "No contest opened", T_STATS, "Statistics", T_BAND_NOT_FOUND, "Band not found", T_BAND_C_NOT_FOUND, "

Band %c not found

", T_QSOS_IN_DATABASE, "qsos in database", T_TUCNAK_ONLINE_LOG, "Tucnak online log", T_DATE2, "Date", T_UTC, "UTC", T_CALL, "Call", T_CALL_NOT_FOUND, "Call not found", T_CANT_LOAD_INPOUT, "Can't load inpout32.dll, error %d", T_FREE_TERM, "Terminating terminal", T_TERM_KEYMAPS, "Terminating keymaps", T_QRB, "QRB", T_HK_QRB, "B", T_QTF, "QTF", T_HK_QTF, "F", T_ACKST, "AcKST", T_HK_ACKST, "A", T_MISTAKE, "Oh mistake", T_HK_MISTAKE, "O", T_ASK_FOR_SKED, "Ask for sked", T_HK_ASK_FOR_SKED, "K", T_MESSAGE, "Message", T_HK_MESSAGE, "M", T_AC_INFO, "A/C info", T_HK_AC_INFO, "A", T_NO_SEND_NUMS, "*** Sending numbers over KST is prohibited\n", T_RESOLVED, "*** Resolved ", T_ENTER_TO_CONNECT_KST, "\n*** Press ENTER to connect to ON4KST ***\n", T_SENDING_SH_US, "*** Sending /sh us ...\n", T_SKIP_LINE, "Skip line %d '%s'", T_CANT_CREATE_HOME, "Can't create home directory '%s'", T_MUST_BE_DIR_MODE, "'%s' must be directory (mode 0%oo)", T_TUCNAK_DIRECTORY_IS, "Tucnak directory is %s", T_INIT_MAP, "Initializing polar map", T_DISABLE_SAVER, "Disabling screensaver", T_STARTING_TUCNAK, "Starting Tucnak", T_FREE_MAP, "Terminating polar map", T_INIT_MASTERDB, "Initializing master database", T_FREE_MASTERDB, "Terminating master database", T_LOAD_MASTERDB, "Loading master database", T_TUCNAK_SVN_LIBZIA_SVN, "Tucnak SVN version: %s\nLibzia SVN version: %s", T_DIRECTORY_SCAN, "Directory scan", T_V3_COMPATIBILITY, " (v3 compatibility)", T_RELOAD_INTERFACES, "Reload interfaces", T_SET_READONLY, "Set read-only", T_CHANGE_TYPE, "Change type", T_HK_CHANGE_TYPE, "T", T_OPEN_CONNECTION, "Open connection", T_HK_OPEN_CONNECTION, "O", T_KILL_CONNECTION, "Kill connection", T_HK_KILL_CONNECTION, "K", T_HK_EXPORT_TO_TEXT_FILE, "E", T_EXPORT_TO_TEXT_FILE, "Export to text file", T_ADD_CONTEST, "Add contest", T_HK_ADD_CONTEST, "O", T_ADD_FILES, "Add file(s)", T_HK_ADD_FILES, "F", T_ADD_CONTESTS, "Add contests", T_HK_ADD_CONTESTS, "O", T_ALTC, "Alt+%c", T_CTRLC, "Ctrl+%c", T_CTRLP, "Ctrl+P", T_CRASH_TEST, "Crash test", T_HK_CRASH_TEST, "C", T_INTERROR_TEST, "Int.error test", T_HK_INTERNAL_TEST, "I", T_DUMP_RW_BANDS, "Dump RW bands and hashes", T_HK_DUMP_RW_BANDS, "D", T_UPDATE, "Update Tucnak", T_HK_UPDATE, "U", T_SETTINGS, "Settings", T_HK_SETTINGS, "S", T_UPLOAD_TO_VHFNET, "Upload to vhfcontest.net", T_HK_UPLOAD_TO_VHFNET, "V", T_MEDIAWIKI_UPLOAD, "Upload to MediaWiki", T_HK_MEDIAWIKI_UPLOAD, "U", T_VOIP_SPY, "Voip spy", T_HK_VOIP_SPY, "V", T_END_VOIP_SPY, "End voip spy", T_HK_END_VOIP_SPY, "Y", T_OLD_TEST_NO_SPY, "Contest is old, spy is not available", T_NETWORK_SCAN, "Network scan", T_HTTPD_OPTIONS, "HTTPD options", T_HK_HTTP_OPTIONS, "H", T_AC_OPTIONS, "A/C options", T_HK_AC_OPTIONS, "P", T_SDR_OPTIONS, "SDR options", T_HK_SDR_OPTIONS, "R", T_OTHER, "Other:", T_NONE, "None ", T_RSTS2, "RST-S", T_RSTR2, "RST-R", T_QSONRR2, "QSONR-R", T_EXC2, "EXC", T_UNUSED, "Unused ", T_USED_6, "Used (6)", T_OPT_6, "Opt. (6)", T_USED_4, "Used (4)", T_OPT_4, "Opt. (4)", T_FREE, "Free ", T_VERIFIED, "Verified", T_WAZ, "WAZ ", T_ITU, "ITU ", T_WWL2, "WWL:", T_CONFIRM_WWL, "Confirm WWL", T_CONFIRM_EXC, "Confirm EXC", T_FONT_SIZE, "Font size: ", T_DXC_HOSTNAME, "DXC Hostname:", T_TCP_PORT, "TCP Port:", T_DXC_USERNAME, "DXC Username:", T_PASSWORD, "Password:", T_KST_USERNAME, "KST Username:", T_KST_YOURNAME, "KST Yourname:", T_SDR, "SDR", T_PARPORT, "parport", T_TTYS, "ttys", T_AUDIO_SUBSYSTEM, "Audio subsystem:", T_PLAYBACK_VOLUME, "Playback volume", T_CAPTURE_VOLUME, "Capture volume", T_ENABLE_REMOTE_CONNECT, "Enable remote connect", T_TRACE_RIG, "Trace rig", T_TRACE_KEYS, "Trace keys", T_SAVE_RESTART, "You must save configuration and restart Tucnak", T_FULLSCREEN, "Fullscreen", T_TOUCH, "Use touch control", T_ALT_QWER, "Alt turns QWER.. to 1234..", T_NO_LOCKS, "No device locks", T_PORTRAIT_ORIENTATION, "Portrait orientation", T_REVERSE, "Reverse", T_CHOOSE_RIG, "Choose rig", T_RIG_D, "Rig %d", T_NEW_RIG, "New rig", T_ENABLED, "Enabled", T_SET_PTT_ON_RADIO, "Set PTT on radio", T_DISABLED, " (disabled)", T_ADD_RIG, "Add rig", T_REMOVE_RIG, "Remove rig", T_ROTATOR_D, "Rotator %d", T_ENABLE, "Enable", T_TCP_PORT2, "TCP port:", T_PRIVATE, "Show private informations", T_LOAD_FROM_NET, "Load from network", T_LOAD_CWDB, "Load C_W database", T_LOAD_NAMEDB, "Load Name database", T_LOAD_QRVDB, "Load QRV database", T_READONLY_BANDS, "Read-only bands", T_ENABLE_AC, "Enable A/C", T_AC_URL, "Alternative URL for flightradar data", T_K_FACTOR, "Troposphere k_factor", T_AC_AREA_WIDTH, "Reflection area width in km", T_AC_EL_ANGLE, "Minimal elevation angle", T_AC_MAX_EL_ANGLE, "Maximal elevation angle", T_AC_MIN_DURATION, "Minimal reflection duration in sec", T_AC_MAX_DIFF, "Max difference of incidence and reflection angles", T_BAD_NUMBER_RANGE, "Bad number range", T_AF_SRATE_GREATER_SRATE, "AF sample rate can't be greater than sample rate", T_SRATE_DIVISIBLE, "Sample rate must be divisible by AF sample rate without remainder", T_NO_DEVICE, "No device", T_IQ_SOURCE, "IQ source:", T_WAV_FILE, "WAV file", T_WAV_FILE_NAME, "WAV file name", T_AF_OUTPUT, "AF output:", T_AF_SAMPLE_RATE, "AF sample rate", T_BLOCK_SIZE, " Block size", T_CW_FILTER, " CW filter", T_TO_HZ, "to [Hz]", T_SSB_FILTER, " SSB filter", T_INIT_NAMEDB, "Initializing name database", T_FREE_NAMEDB, "Terminating name database", T_LOAD_NAMEDB2, "Loading name database", T_INIT_NET, "Initializing network", T_FREE_NET, "Terminating network", T_ONLY_55555_CAN_REMOTE, "Only tucnak with port 55555 can connect to remote to prevent routing loops", T_CANT_CONNECT_TO_MYSELF_LO, "Can't connect to myself (interface lo)", T_CANT_CONNECT_TO_MYSELF, "Can't connect to myself (interface %s)", T_CANT_PARSE_REMOTE_HOST_S, "Can't parse remote host %s", T_TIME_WAS_SET, "Time was set", T_FAILED_TO_SET_TIME, "Failed to set time", T_INIT, "INIT", T_CONNECTING, "CONNECTING", T_CONNECTED, "CONNECTED", T_WAIT_ACK, "WAIT_ACK", T_DISCONNECTED2, "DISCONNECTED", T_DEAD, "DEAD", T_LONG_XFER, "LONG_XFER", T_AUTHENTICATED_USER_S, "Authenticated user %s", T_BAD_AUTHENTICATION_S, "Bad authentication %s", T_LONG_TRANSFER_STARTED_PLEASE_WAIT, "Long transfer started, please WAIT", T_LONG_TRANSFER_FINISHED, "Long transfer finished", T_INIT_NTP, "Initializing NTP monitor", T_FREE_NTP, "Terminating NTP monitor", T_NO_NTP, "Warning! Time on this machine is not synchronized. Please use NTP", T_INIT_SPEAKER, "Initializing PC speaker", T_FREE_SPEAKER, "Terminating PC speaker", T_CANT_PLAY, "Can't play %s - %s", T_CANT_SEEK_TO_END, "Can't seek to end %s - %s", T_CANT_SEEK_TO_START, "Can't seek to start %s - %s", T_CANT_OPEN, "Can't open %s %s", T_TIP_MKNOD, "Tip: try to run as root \"mknod %s c 99 %d; chmod a+rw %s\"", T_TIP_CHMOD, "Tip: try to run as root \"chmod a+rw %s\"", T_CANT_SET_EPP, "Can't set %s to EPP mode %s", T_CANT_EXCLUSIVE_ACCESS, "Can't exclusive access to %s %s", T_CANT_CLAIM, "Can't claim %s %s", T_INIT_QRVDB, "Initializing QRV database", T_FREE_QRVDB, "Terminating QRV database", T_WWL3, "WWL", T_WKD2, "WKD", T_ACKST2, "AcKst", T_START, "Start", T_DUR, "Dur", T_NR, "NR", T_TEXT2, "Text", T_16_SORT, "1-6: sort, ", T_A_ALL, "A: all", T_ENTER_SPACE_EDIT, ", Enter, Space, E: edit, Insert, Delete, U: undel, /: search", T_LOAD_QRVS, "Loading qrvs", T_UNSPECIFIED, "unspecified", T_SSB, "SSB", T_CW, "CW", T_SSBS_CWR, "SSBs CWr", T_CWS_SSBR, "CWs SSBr", T_AM, "AM", T_FM, "FM", T_RTTY, "RTTY", T_SSTV, "SSTV", T_ATV, "ATV", T_ADDED_ERROR, "added ERROR for band %c, qsonr %d\n", T_FOUND_D_ERRORS, "Found %d error%s while reading %s", T_FOUND_D_ERRORS_RC_NET, "Found %d error(s) while reading config from net", T_REGISTRATED_ROTATORS, "Registrated rotators:", T_UNSUPPORTED_ROTATOR, "Unsupported rotator type %d\n", T_WAIT_HL_ROT_THREAD, "Waiting for hamlib rotator thread", T_INIT_ROTARS2, "Initializing rotators", T_UNKNOWN_ROTAR, "Unknown rotar '%s'\n", T_ROTAR_ERROR_S, "Rotar error: %s", T_CANT_RECORD_FROM_SDR_DSP, "Can't record from SDR DSP", T_CANT_PLAY_TO_SDR_DSP, "Can't play to SDR DSP", T_CANT_OPEN_PLAY_SDR_SOUNDPIPE, "Can't open (play) SDR soundpipe", T_CANT_READ_FROM, "Can't read from", T_CANT_WRITE_TO, "Can't write to", T_MULTIPLIED_WWLS_D, " Multiplied WWLs: %d", T_HYPHENS1, "-----------------------", T_UPDATE2, "Update", T_ENTER_TO_KST, "*** Press ENTER to connect to ON4KST ***", T_BAD_UPDATE_FILE_NAME, "Bad update file name", T_CANT_EXECUTE_INSTALLER, "Can't execute installer, ", T_UPDATE_OF_TUCNAK_FAILED, "Update of Tucnak failed", T_UPDATE_FAILED, "Update failed", T_UPDATE_OF_TUCNAK_FAILED_CANT_PARSE_REPLY, "Update of Tucnak failed, can't parse reply.", T_UPDATE_OF_TUCNAK_FAILED_S, "Update of Tucnak failed. %s", T_NEW_VERSION_AVAIL, "New version %s is available. Use Menu File, Update Tucnak to install.", T_NO_NEW_VER, "No new version available.", T_READING_LIST_OF_OPENED_CONTESTS, "Reading list of opened contests...", T_CHOOSE_CONTEST, "Choose contest", T_NO_CONTEST_AVAILABLE_FOR_UPLOAD, "No contest available for upload", T_OBTAINING_CONTEST_WEB_FORM, "Obtaining contest web form...", T_ALL_EDI_FILES_PROCESSED, "All EDI files processed.", T_UPLOADING_LOG_FILE_S, "Uploading log file %s ...", T_UPLOADING_BAND_S, "Uploading band %s", T_CONFIRMING_LOG, "Confirming log...", T_RESULT_ERROR, "*** Result: ERROR please read error message above", T_LOG_IS_NOT_VALID, "Log is not valid. Please verify error messages and repeat: %s", T_DOWNLOADING_CLAIMED_SCORES, "Downloading claimed scores...", T_LOGS_UPLOADED, "Logs uploaded.", T_HTTP_STATUS, "HTTP status: ", T_LOG_UPLOAD, "Log upload", T_VOIP_NO_INITIALIZED, "VOIP no initialized", T_PAGE_NAME, "Page name", T_OVERWRITE_EXISTING_FILES, "Overwrite existing files", T_SITE_URL, "Site URL", T_USERNAME, "Username", T_PASSWORD2, " Password", T_EXPORT_MAP, "Export map", T_EXPORT_CHART, "Export chart", T_MEDIAWIKI_UPLOAD2, "Mediawiki upload", T_BAD_AUTH_USER, "Bad auth user %s != %s", T_BAD_AUTH_PASS, "Bad auth pass %s != %s\n", T_CTEST_NOT_SAME_AC, "Contest is not the same: FORMAT of AC frame", T_CANT_GET_FMTS, "Can't get supported audio formats: %s", T_CANT_SET_FMT, "Can't set audio format %d, recommended %d: %s", T_CANT_SET_FMT_RET, "Can't set recommended audio format %d, return %d: %s", T_CANT_SET_FALLBACK, "Can't set fallback audio %d, return %d: %s", T_CANT_SET_CHANNELS, "Can't set channels %d, recommended %d: %s", T_CANT_SET_CHANNELS_RET, "Can't set recommended channels %d, return %d: %s", T_CANT_SET_RATE, "Can't set samplerate %d, recommended %d: %s", T_CANT_SET_RATE_RET, "Can't set recommended samplerate %d, return %d: %s", T_CANT_SET_BLOCK_SIZE, "Can't set block size %d: %s", T_UNKNOWN_PORTAUDIO_DEV, "Unknown portaudio device %d", T_CANT_OPEN_PA_STREAM, "Can't open PortAudio stream %d for %s: %s", T_RECORD2, "record", T_PLAYBACK, "playback", T_CANT_PA_STREAM, "Can't %s PortAudio stream %d: %s", T_CANT_STOP_PA, "Can't stop PortAudio stream: %s", T_CANT_CLOSE_PA, "Can't close PortAudio stream: %s", T_TIP_RMMOD, "Tip: try to run as root \"rmmod lp\"", T_TIP_KILL_LSOF, "Tip: or kill process listed in \"lsof %s\"", T_CANT_SET_STROBE, "Can't set parport_STROBE %s", T_UNKNOWN_ROTNR_OR_INIT_ERROR, "Unknown rotator number %d or initialization error", T_CANT_CREATE_HL_ROT_THR, "Can't create hamlib rotar thread\n", T_INIT_SERIAL_DEVICES, "Initializing serial devices", T_BAD_CHECKSUM, "Bad checksum", T_TIMEOUT2, "Timeout", T_BAD_RESPONSE, "Bad response", T_UNKNOWN_FUNCTION, "Unknown function", T_UNKNOWN_ERROR_CODE, "Unknown error code", T_CANT_CREATE_SDR_THR, "Can't create SDR thread\n", T_WAIT_FOR_SDR_THR, "Waiting for SDR thread", T_QSO_REQ_FROM_SP, " QSO request from S&P ", T_QSO_REQ_SENT, " QSO request sent to RUN ", T_GO, " GO! ", T_LOCATION_UNKNOWN, "Location unknown", T_DEGREE, "deg", T_SKED_FORMAT, "%6s@%s: %s %-9s %-13s in %-6s (%dkm, %d%s) at %s %s", T_CANT_OPEN_FILE_S_S, "Can't open file '%s': %s", T_CANT_OPEN_SOUND_PIPE, "Can't open sound pipe", T_INIT_SSB_CQ, "Initializing SSB CQ", T_FREE_SSB_CQ, "Terminating SSB CQ", T_NO_FILE, "No file specified", T_UNSUP_CHANNELS, "Unsupported number of channels = %d", T_FLOAT_UNSUPP, "Float point files are not supported", T_CANT_OPEN_DSP_PLAY, "Can't open DSP %s for playing", T_REC_DISABLED, "recording disabled", T_CONTEST_TOO_OLD, "contest too old", T_NO_FREE_DISK_SPACE, "Not enough free disk space for %s: %d<%d (MiB)", T_ERROR_WRITING_FILE, "Error writing file %s: %s", T_CANT_OPEN_DSP_REC, "Can't open DSP %s for recording", T_NO_DISK_SPACE, "Not enough free disk space for file", T_CANT_PLAY_FILE, "Can't play file %s - %s", T_CANT_WRITE_SS, "Can't write to file %s - %s", T_NO_LAST_SAMPLE_RECORDED, "No last sample recorded", T_NO_MACRO_IN_TEMPLATE, "No macro %% in SSBD template", T_NEW_WINDOWS_3, "Note: Since version 3.00 there are specific window types for DX cluster and ON4KST chat.\nThey will give you better comfort and functionality.\n\n", T_ENTER_TO_DXC2, "*** Press ENTER to connect to DXC ***", T_LOADING_S, "Loading %s", T_INVALID_WINDOW_TYPE, "invalid window type %d\n", T_INIT_RIG, "Initializing rig control %d", T_RIG_ERROR, "Rig error: %s (%s)", T_CANT_CREATE_RIG_THREAD, "Can't create trig thread\n", T_FREE_RIG, "Terminating rig control %d", T_WAIT_FOR_RIG_THR, "Waiting for rig thread", T_INVALID_PARAM, "Invalid param.", T_RIG_INVALID_CONFIG, "Invalid config.", T_RIG_NOT_ENOUGH_MEM, "Not enough mem.", T_RIG_NOT_IMPLEMENTED, "Not implemented", T_RIG_COMM_TIMEOUT, "Comm. timeout", T_RIG_IO_ERROR, "IO error", T_RIG_INTERNAL_ERROR, "Internal error", T_PROTOCOL_ERROR, "Protocol error", T_RIG_COMMAND_REJECT, "Command reject.", T_RIG_ARG_TRUNCATED, "Arg. truncated", T_RIG_F_NOT_AVAILABLE, "F not available", T_RIG_VFO_NOT_TARGET, "VFO not target.", T_RIG_ERROR_ON_BUS, "Error on bus", T_RIG_BUS_COLLISION, "Bus collision", T_RIG_INVALID_ARG, "Invalid arg.", T_RIG_INVALID_VFO, "Invalid VFO", T_RIG_ARG_OUT_OF_DOM, "Arg out of dom.", T_ERROR_D, "Error %d", T_CANT_SET_GRAPHICS1, "Can't set graphics mode (SDL_Init)", T_CANT_SET_GRAPHICS2, "Can't set graphics mode", T_WAIT_SDL_THR, "Waiting for SDL event thread", T_FREE_GRAPHICS, "Terminating graphics", T_CANT_GET_LIST_OF_CONTESTS, "Can't get list of contests: %s", T_CANT_GET_UPLOAD_FORM, "Can't get upload form: %s", T_CANT_READ_LOG_FILE, "Can't read log file %s", T_CANT_UPLOAD_LOG, "Can't upload log: %s", T_CANT_CONFIRM_LOG, "Can't confirm log: %s", T_CANT_GET_CLAIMED_SCORES, "Can't get claimed scores: %s", T_ANT_OPEN_DSP_PLAY, "an't open DSP %s for playing", T_CALL2, "Call:", T_QTH, "QTH:", T_DATE3, "Date:", T_QSOS2, "QSOs:", T_POINTS2, "Points:", T_WWLS, "WWLs:", T_DXCCS, "DXCCs:", T_AVG2, "AVG:", T_PTSQSO, "pts/qso", T_TOP_10_CALLS, "Top 10 calls", T_OPERATOR2, "Operator", T_MODE2, "Mode", T_TOP_10_WWLS, "Top 10 WWLs", T_CANT_UPLOAD_FILE_S, "Can't upload file: %s", T_CANT_UPLOAD_PAGE_WIKI_RET, "Can't upload page, wiki returns: %s", T_FILE_ALREADY_EXISTS, "File already exists: %s", T_CANT_UPLOAD_PAGE_RET, "Can't upload page, wiki returns result: %s", T_CANT_EDIT_PAGE, "Can't edit page: %s", T_CANT_EDIT_PAGE_RET, "Can't edit page, wiki returns: %s", T_CANT_EDIT_PAGE_RET2, "Can't edit page, wiki returns result: %s", T_EDITING_CONTEST_PAGE, "Editing contest page...", T_ALL_DONE, "All done.", T_UPLOADING_FILE, "Uploading file %s...", T_UNKNOWN_FILE_FOR_UPLOAD, "Unknown file for upload: %s", T_CANT_QUERY_EDIT_TOKEN, "Can't query edit token: %s", T_CANT_QUERY_EDIT_TOKEN_RET, "Can't query edit token, wiki returns: %s", T_QUERYING_EDIT_TOKEN, "Querying edit token", T_CANT_LOGIN, "Can't log in (2): %s", T_CANT_LOGIN2, "Can't log in (2), wiki says: %s", T_CANT_LOGIN1, "Can't log in (1): %s", T_LOGGING_IN, "Logging in...", T_EXPORTING_FILES, "Exporting files...", T_INIT_WIZZ, "Initializing contest wizard", T_FREE_WIZZ, "Terminating contest wizard", T_LOAD_WIZZ_DATA, "Loading contest wizard data", tucnak-4.04/INSTALL0000644000175000017500000001722711277513163010717 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. tucnak-4.04/trywithout0000755000175000017500000000377312524113053012045 00000000000000#!/bin/bash set -e set -x CPUS=`grep ^processor /proc/cpuinfo | wc -l` cd ../libzia ./configure --enable-pedantic >/dev/null make clean >/dev/null make -j$CPUS >/dev/null cd ../tucnak ./configure --enable-pedantic >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-sndfile >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-alsa >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --with-portaudio >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-hamlib >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-fftw3 >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --with-gpm >/dev/null make clean >/dev/null make -j$CPUS >/dev/null cd ../libzia ./configure --without-sdl --without-png --without-ftdi -without-bfd >/dev/null make clean >/dev/null make -j$CPUS >/dev/null cd ../tucnak ./configure >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-sndfile >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-alsa >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --with-portaudio >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-hamlib >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-fftw3 >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --with-gpm >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-sndfile --without-alsa >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-sndfile --with-portaudio >/dev/null make clean >/dev/null make -j$CPUS >/dev/null ./configure --without-sndfile --without-fftw3 >/dev/null make clean >/dev/null make -j$CPUS >/dev/null # # standard settings # cd ../libzia ./configure >/dev/null make clean >/dev/null make -j$CPUS >/dev/null cd ../tucnak ./configure >/dev/null make clean >/dev/null make -j$CPUS >/dev/null echo OK tucnak-4.04/Makefile.in0000644000175000017500000007254212561147616011737 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in mkinstalldirs $(srcdir)/srcup.in COPYING \ TODO compile config.guess config.sub depcomp install-sh \ missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = srcup CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(docsdir)" DATA = $(docs_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = android data doc intl pkg share src win32 MAINTAINERCLEANFILES = aclocal.m4 config.h.in configure Makefile.in stamp-h.in EXTRA_DIST = COPYING INSTALL eee.sh leaks mingw rebuild svnver svnver.sh trywithout docsdir = $(datadir)/tucnak/doc docs_DATA = AUTHORS ChangeLog TODO stamp = `date +%Y%m%d_%H%M%S` specfile = $(top_srcdir)/pkg/tucnak.spec all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 srcup: $(top_builddir)/config.status $(srcdir)/srcup.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-docsDATA: $(docs_DATA) @$(NORMAL_INSTALL) @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(docsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(docsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docsdir)" || exit $$?; \ done uninstall-docsDATA: @$(NORMAL_UNINSTALL) @list='$(docs_DATA)'; test -n "$(docsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docsdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(docsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-docsDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-docsDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-docsDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ tags-am uninstall uninstall-am uninstall-docsDATA tucnak.d: make -C src tucnak.d distd: dist echo $(distdir) # mv $(distdir).tar.gz $(distdir).tar.gz alpha: dist echo $(distdir) mv $(distdir).tar.gz $(distdir)-alpha.tar.gz rsync -atuvxz --partial --progress $(distdir)-alpha.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ threadsafe: grep -nE '\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\|\|\|\|\'\ '|\|\' src/*.c src/*.h nagup: rsync -atuvxz --partial --progress tucnak*.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ ver: @echo $(VERSION) deb: dpkg-buildpackage -b -rfakeroot -us -uc -tc mv ../$(PACKAGE)_$(VERSION)* . rpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bb --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../RPMS/*/$(distdir)-1$(RPM_RELEASE).*.rpm . ; \ else \ echo "Error: RPM executable and/or source directory not found." ; \ echo "Package build abandoned." ; \ fi srpm: dist if test x$(HAVE_RPM_PACKAGING) = xyes ; then \ cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCESDIR) ; \ rpmbuild -bs --clean --rmsource $(specfile) ; \ mv $(RPM_SOURCESDIR)/../SRPMS/$(distdir)-1$(RPM_RELEASE).src.rpm . ;\ else \ echo "Error: RPM executable and/or source directory not found." ;\ echo "Package build abandoned." ; \ fi lines: n=`cat src/*.[ch] ../libzia/include/*.h ../libzia/src/*.c | wc -l` ;echo Total=$$n, zia=$$(($$n-21228)) ctags: (cd src; ctags -R . ../../libzia/include ../../libzia/src /usr/include/SDL /usr/include/glib-2.0/glib) tucver: vim -o configure.ac debian/changelog debian/control ../libzia/configure.ac ../libzia/debian/changelog # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/win32/0000755000175000017500000000000012561153001010663 500000000000000tucnak-4.04/win32/tucnak-cygwin.nsi.in0000644000175000017500000001150711652245213014521 00000000000000; tucnak.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak @PACKAGE_VERSION@" ; The file to write OutFile "TucnakCygwin-@PACKAGE_VERSION@.exe" ; The default installation directory InstallDir "c:\tucnak" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\tucnak" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on AutoCloseWindow on ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\src\tucnak.exe" File "tucnak.bat" File "tucnak.ico" File "inpout32.dll" File "..\doc\README.win32" ; File "c:\cygwin\bin\uname.exe" File "c:\cygwin\bin\sh.exe" File "c:\cygwin\bin\cygglib-2.0-0.dll" File "c:\cygwin\bin\cyggthread-2.0-0.dll" ; File "c:\cygwin\bin\cyghamlib-2.dll" File "c:\cygwin\bin\cygiconv-2.dll" File "c:\cygwin\bin\cygintl-3.dll" File "c:\cygwin\bin\cygintl-8.dll" ; pro sh.exe, gdb.exe File "c:\cygwin\bin\cygncurses-9.dll" ; pro sh.exe File "c:\cygwin\bin\cygreadline6.dll" ; pro sh.exe File "c:\cygwin\bin\cygsndfile-1.dll" File "c:\cygwin\bin\cygusb0.dll" File "c:\cygwin\bin\cygwin1.dll" ; File "c:\cygwin\lib\hamlib-*.dll" ; Delete "$OUTDIR\hamlib-dummy.dll" ; causes relocation problem ; File "c:\cygwin\bin\rigctl.exe" File "c:\cygwin\bin\gdb.exe" File "c:\cygwin\bin\tcl84.dll" File "c:\cygwin\bin\tk84.dll" File "c:\cygwin\bin\cygncurses-8.dll" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "install_dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" "NoRepair" 1 WriteUninstaller "uninstall.exe" SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SectionEnd Section "Create shortcut in Desktop" CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.bat" "" "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.bat" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\tucnak" DeleteRegValue HKLM "Software\OK1ZIA\tucnak" "install_dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\tucnak" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.bat" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\README.win32" Delete "$INSTDIR\uname.exe" Delete "$INSTDIR\sh.exe" Delete "$INSTDIR\cygglib-2.0-0.dll" Delete "$INSTDIR\cyggthread-2.0-0.dll" Delete "$INSTDIR\cyghamlib-2.dll" Delete "$INSTDIR\cygiconv-2.dll" Delete "$INSTDIR\cygintl-3.dll" Delete "$INSTDIR\cygintl-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-8.dll" ; pro sh.exe Delete "$INSTDIR\cygncurses-9.dll" ; pro sh.exe Delete "$INSTDIR\cygreadline6.dll" ; pro sh.exe Delete "$INSTDIR\cygsndfile-1.dll" Delete "$INSTDIR\cygusb0.dll" Delete "$INSTDIR\cygwin1.dll" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\rigctl.exe" Delete "$INSTDIR\gdb.exe" Delete "$INSTDIR\tcl84.dll" Delete "$INSTDIR\tk84.dll" Delete "$INSTDIR\cygncurses-8.dll" Delete "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" Delete "$DESKTOP\Tucnak.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak-4.04/win32/Makefile.am0000644000175000017500000000021512525350612012644 00000000000000datarootdir = @datarootdir@ EXTRA_DIST = tucnak.bat tucnak.ico tucnak-cygwin.nsi.in tucnak-mingw.nsi.in tucnak-msvc.nsi.in tucnak-msvc.nsi tucnak-4.04/win32/tucnak-mingw.nsi.in0000644000175000017500000001372612412215057014345 00000000000000; tucnak-mingw.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak @PACKAGE_VERSION@" ; The file to write OutFile "TucnakMingw-@PACKAGE_VERSION@.exe" ; The default installation directory InstallDir "$PROGRAMFILES\Tucnak-mingw" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\Tucnak-mingw" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on AutoCloseWindow true ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\src\tucnak.exe" File "..\src\tucnak.d" File "tucnak.ico" File "inpout32.dll" File "..\src\libglib-2.0-0.dll" File "..\src\libgthread-2.0-0.dll" File "..\src\libhamlib-2.dll" File "..\src\hamlib*.dll" File "..\src\libiconv-2.dll" File "..\src\libintl-8.dll" File "..\src\libpng-3.dll" File "..\src\libsndfile-1.dll" File "..\src\libportaudio-2.dll" File "..\src\SDL.dll" File "libusb0.dll" SetOutPath "$INSTDIR\libusb" File "libusb\Davac4.inf" File "libusb\Digital_analyser.inf" File "libusb\HdKeyb.inf" File "libusb\Rotar4.inf" File "libusb\Installer_x64.exe" File "libusb\Installer_x86.exe" File "libusb\testlibusb.exe" File "libusb\testlibusb-win.exe" SetOutPath "$INSTDIR\libusb\amd64" File "libusb\amd64\libusb0.dll" File "libusb\amd64\libusb0.sys" SetOutPath "$INSTDIR\libusb\ia64" File "libusb\ia64\libusb0.dll" File "libusb\ia64\libusb0.sys" SetOutPath "$INSTDIR\libusb\x86" File "libusb\x86\libusb0_x86.dll" File "libusb\x86\libusb0.sys" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "Install_Dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak-mingw" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak-mingw" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak-mingw" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak-mingw" "NoRepair" 1 WriteUninstaller "uninstall.exe" SetOutPath $INSTDIR SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" SetShellVarContext all CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.exe" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak-mingw.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SetShellVarContext current CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak data.lnk" "$WINDIR\explorer.exe" '/e="$APPDATA\Tucnak"' "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Create shortcuts in Desktop" SetShellVarContext current CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.exe" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$DESKTOP\Tucnak data.lnk" "$WINDIR\explorer.exe" '/e="$APPDATA\Tucnak"' "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.exe" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak-mingw" DeleteRegValue HKLM "Software\OK1ZIA\Tucnak" "Install_Dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\Tucnak-mingw" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.d" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\libglib-2.0-0.dll" Delete "$INSTDIR\libgthread-2.0-0.dll" Delete "$INSTDIR\libhamlib-2.dll" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\libiconv-2.dll" Delete "$INSTDIR\libintl-8.dll" Delete "$INSTDIR\libpng-3.dll" Delete "$INSTDIR\libsndfile-1.dll" Delete "$INSTDIR\libportaudio-2.dll" Delete "$INSTDIR\SDL.dll" Delete "$INSTDIR\_stderr" Delete "$INSTDIR\stderr.txt" Delete "$INSTDIR\libusb0.dll" Delete "$INSTDIR\libusb\Davac4.inf" Delete "$INSTDIR\libusb\Digital_analyser.inf" Delete "$INSTDIR\libusb\HdKeyb.inf" Delete "$INSTDIR\libusb\Rotar4.inf" Delete "$INSTDIR\libusb\Installer_x64.exe" Delete "$INSTDIR\libusb\Installer_x86.exe" Delete "$INSTDIR\libusb\testlibusb.exe" Delete "$INSTDIR\libusb\testlibusb-win.exe" Delete "$INSTDIR\libusb\amd64\libusb0.dll" Delete "$INSTDIR\libusb\amd64\libusb0.sys" Rmdir "$INSTDIR\libusb\amd64" Delete "$INSTDIR\libusb\ia64\libusb0.dll" Delete "$INSTDIR\libusb\ia64\libusb0.sys" Rmdir "$INSTDIR\libusb\ia64" Delete "$INSTDIR\libusb\x86\libusb0_x86.dll" Delete "$INSTDIR\libusb\x86\libusb0.sys" Rmdir "$INSTDIR\libusb\x86" Rmdir "$INSTDIR\libusb" SetShellVarContext all Delete "$SMPROGRAMS\OK1ZIA\Tucnak-mingw.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak-mingw.lnk" SetShellVarContext current Delete "$SMPROGRAMS\OK1ZIA\Tucnak data.lnk" SetShellVarContext current Delete "$DESKTOP\Tucnak.lnk" Delete "$DESKTOP\Tucnak data.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak-4.04/win32/nagup.bat.in0000644000175000017500000000012012524341151013007 00000000000000rsync -atuvx Tucnak-@VERSION@.exe ok1zia@nagano.cz::ok1zia/public_html/tucnak/ tucnak-4.04/win32/tucnak-msvc.nsi.in0000644000175000017500000001564112424513141014170 00000000000000; tucnak-msvc.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak @PACKAGE_VERSION@" ; The file to write OutFile "Tucnak-@PACKAGE_VERSION@.exe" ; The default installation directory InstallDir "$PROGRAMFILES\Tucnak" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\Tucnak" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on AutoCloseWindow true ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\Release\tucnak.exe" File "..\Release\tucnak.pdb" ; File "..\Release\libftdi.dll" ; File "..\Release\libpng.dll" ; File "..\Release\libzia.dll" ; File "iconv.dll" File "inpout32.dll" File "intl.dll" File "libfftw3-3.dll" File "libglib-2.0-0.dll" File "libgthread-2.0-0.dll" File "libhamlib-2.dll" File "libiconv2.dll" File "libsndfile-1.dll" File "libusb0.dll" File "msvcr100.dll" File "portaudio_x86.dll" File "SDL.dll" File "tucnak.ico" File "zlib1.dll" File "rigctl.exe" File "rigctld.exe" SetOutPath "$INSTDIR\libusb" File "libusb\Davac4.inf" File "libusb\Digital_analyser.inf" File "libusb\HdKeyb.inf" File "libusb\Rotar4.inf" File "libusb\FUNcube_Dongle.inf" File "libusb\Installer_x64.exe" File "libusb\Installer_x86.exe" File "libusb\testlibusb.exe" File "libusb\testlibusb-win.exe" SetOutPath "$INSTDIR\libusb\amd64" File "libusb\amd64\libusb0.dll" File "libusb\amd64\libusb0.sys" SetOutPath "$INSTDIR\libusb\ia64" File "libusb\ia64\libusb0.dll" File "libusb\ia64\libusb0.sys" SetOutPath "$INSTDIR\libusb\x86" File "libusb\x86\libusb0_x86.dll" File "libusb\x86\libusb0.sys" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "Install_Dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "NoRepair" 1 WriteUninstaller "uninstall.exe" SetOutPath $INSTDIR SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" SetShellVarContext all CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.exe" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SetShellVarContext current CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak data.lnk" "$WINDIR\explorer.exe" '/e="$APPDATA\Tucnak"' "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Create shortcuts in Desktop" SetShellVarContext current CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.exe" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$DESKTOP\Tucnak data.lnk" "$WINDIR\explorer.exe" '/e="$APPDATA\Tucnak"' "$INSTDIR\tucnak.ico" 0 SectionEnd ;Section "Create symbolic links in C:\" ; System::Call "advapi32::GetUserName(t .r0, *i ${NSIS_MAX_STRLEN} r1) i.r2" ; ExecWait '"mklink" /d "c:\Tucnak-$0" "$APPDATA\Tucnak"' $0 ; DetailPrint "some program returned $0" ; ExecWait '"mklink" "c:\Tucnak-Program" "$INSTDIR\tucnak.exe"' $0 ; DetailPrint "some program returned $0" ;SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.exe" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" DeleteRegValue HKLM "Software\OK1ZIA\Tucnak" "Install_Dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\Tucnak" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.pdb" Delete "$INSTDIR\tucnak.dmp" ; can be copied here for crash analyse ; Delete "$INSTDIR\libftdi.dll" ; Delete "$INSTDIR\libpng.dll" ; Delete "$INSTDIR\libzia.dll" Delete "$INSTDIR\iconv.dll" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\intl.dll" Delete "$INSTDIR\libfftw3-3.dll" Delete "$INSTDIR\libhamlib-2.dll" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\libglib-2.0-0.dll" Delete "$INSTDIR\libgthread-2.0-0.dll" Delete "$INSTDIR\libiconv2.dll" Delete "$INSTDIR\libsndfile-1.dll" Delete "$INSTDIR\libusb0.dll" Delete "$INSTDIR\msvcr100.dll" Delete "$INSTDIR\msvcr100d.dll" Delete "$INSTDIR\portaudio_x86.dll" Delete "$INSTDIR\SDL.dll" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\zlib1.dll" Delete "$INSTDIR\rigctl.exe" Delete "$INSTDIR\rigctld.exe" Delete "$INSTDIR\libusb\Davac4.inf" Delete "$INSTDIR\libusb\Digital_analyser.inf" Delete "$INSTDIR\libusb\HdKeyb.inf" Delete "$INSTDIR\libusb\Rotar4.inf" Delete "$INSTDIR\libusb\FUNcube_Dongle.inf" Delete "$INSTDIR\libusb\Installer_x64.exe" Delete "$INSTDIR\libusb\Installer_x86.exe" Delete "$INSTDIR\libusb\testlibusb.exe" Delete "$INSTDIR\libusb\testlibusb-win.exe" Delete "$INSTDIR\libusb\amd64\libusb0.dll" Delete "$INSTDIR\libusb\amd64\libusb0.sys" Rmdir "$INSTDIR\libusb\amd64" Delete "$INSTDIR\libusb\ia64\libusb0.dll" Delete "$INSTDIR\libusb\ia64\libusb0.sys" Rmdir "$INSTDIR\libusb\ia64" Delete "$INSTDIR\libusb\x86\libusb0_x86.dll" Delete "$INSTDIR\libusb\x86\libusb0.sys" Rmdir "$INSTDIR\libusb\x86" Rmdir "$INSTDIR\libusb" SetShellVarContext all Delete "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" SetShellVarContext current Delete "$SMPROGRAMS\OK1ZIA\Tucnak data.lnk" SetShellVarContext current Delete "$DESKTOP\Tucnak.lnk" Delete "$DESKTOP\Tucnak data.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak-4.04/win32/tucnak.ico0000644000175000017500000030253612261526225012606 00000000000000 hV  00 %f@@ (B; (6}(  4[]$Lt rY/i#c5b!KGz'9JOTC UWh/&  ;i640q}'5:Z~sEDByvrcb`^WUR74/hd_xusm WSMIE>yun/-,d,+(okg[WOTOLY7CCAZVO q>;6QCBA('##">vvY'! 17:_ Ghda`WNg`Y J*( @ +MY+O }Vk^)j nDMl"~#D(*qh:&sZ{x7@M!'9]|v2,jp )M|m1xv  9S.mw.d!^#h $d.-4}ujec1** H s;kb_XC@9 5  xd,^c_XTPK #$|gyvn{v621,-~\7  # BA?;:9}xqljJPZr$#! 0-'{GUSPa_],+)KJHFEC| /,%rmi|w}k Ŀxwu10.B?9'%;81PMFb^WuqjMKIvusjihda_;81C@9TPJc_W|v 4VTPgb]gb]HC;8i OOM<;:HD>YUMUPJ\WPuqjdb^/>:4TPIb^Wrlh\ tqkMIBkg`:72CBAVRK^YS>1gb\1/+552d`Zi9WTO6_^^NKF iEB<Vx{ĴDA<RZ)WOKDA-tuOlPKE €aKvHEC\VSP]adrkng]V++) VTO?;5JFBXTP>:86FEC41-UPImiayuqY($!LIBNKEi????(0` QsXGg $7} aP<;$V5t*P *}G/,:IZ[+ lg:RK.vI~M=6)3z&C/c0m%C*X7_5Z4' NiNV.6$@s&>v 89%  5LdQk`$ !#`B25Uw(bGy)K g4&Mr'Fe`rtV*&Q<==6t=x   #)=X5^1W 7 [*m:48:=?5f$6e+'khbHA8=7.:6. ~&30169;;<;tzyvqdaZZWR+)&}$ %;/3%-47:;;;3n^}|jg`{wq?<9o'0E**/69;8273tcvrl{wq{v.,* =& #F]&,376NsL2w6aupj|yy  !Ga,7*5.wzvp@>< PaE1!  7LNd)2Ifed~ztgeb  )> "G$E-+.-+875rpm}w +    a<;y<97%#LICy   rpn|zxVTR;9731/`^['% :71IG@xup}~ 7 /-+,*).-+;83@=6JG@PMG`]WwtnZXW ^~ .-+431$#!=:3MJCZVPda[mictpj|w21/  QPN=<;vut'%"jfaKHB[XRgc]qmgzvp|sqoa RQOaa^_\Xfc][XRjf`spj|xr#"  +*(hgfWUPYVP{v`\Vlhbvrl~zt^\Z 4L XWVutsURLfb[{ujganjdxtn}wspm{  )(&FC: `ys*g"Nrllj,*(2D>;vxooVMFwwu {zyec]SQM.-+*)&B%$ iifGD>ZWQ_\X_]Ya^Z.,*t"!IHFVSLqmgyuoz{xu= 0.*C@ r  Z ??????(@ kTvX*@wucVI<4-ZY<-,5?JV[= /+462(}"iV@f@i4x9/58q%L)Q"C+[3r(=.F3S3T3rm 5C4oiM:7:F&$=};q:k=m:x//Al?f,OPP`jU( '"=b:[\!51" 2d8?yV* +=:5u'S 5WE\     8U=mU[F7.M0c<+wi<979<>9v(Q"  )(&542BA?BA?=96-)!&!,2<2Db.Cl'= Y) 6ܿ:3679;<=7g$6_+)%XVUoleHC8IC:D@9,*' h/ (n381.569;;;<9nMhkhcWTMd`[NKF! m,0c9*,268:;;;;:oa|_[Urnhif`*)& a /4#*.468:;;;;7jQs}zukhbzvotpk+*( D M,t+&+157:;;:;;6i`olfwsmyspl}"] .{"(-468;=zD86:5`vrk}w`]Z =[..//574meAo\~uqkz-,)cA.} >G-262mYXWyuo|b_]   S`Q>0#* .s%b*54F !}w} { wf^ 4.({1*AC/63IHF)'%"!{(&% j  H.{84.sSRPfdb*(#khd~y6420USQ?=;  BA?Qg! 1.*41+ROI{v31/ #!YWU?><0/- ?>:/-'<94A>8IF?qni~y"! dP ljh'&$0.(>;5FC^[Tspjmicnjdvrl}ys}GEC! NKEgc]kgaplgxtn~ztmjg(w$#"c`[^[Uif`rniyuo~x{*)'ic XWV\YRkhbspjzvp}LIF fc^micvrl{uqni L .-+khbwsm}w@>: I |zzjga{wqokf Jmic{uKHD) kjivsmwsm(&$ s" ~xda\<4 }||}QNJ+*)A?; e 862   XWV42/ l! y10- ^= }ys1/- S \YW|xr42/ Mm ?E;PZyļ{u762 J  WiC{`G5C_z<:7 J IXlyL BcB@= KE (.AzQ"HknwGEC L  {S HwXe}NLI M p'-X~S!"`^\YTRN K bfhYS|(Q;< G 874¾(1;MJE@>:llj('%>( OMJlkgXWU10.20- 4 *)'52-LIDPNK_][aa_QPN2/-hec=;9 &  EDB31-if`micjf`eb\plh%$" g BA>SRQ962ie_olfwtn|vlif )'$420VSMjf`rnhxtn|v)(& > 53.URLea[khbspj{wq|}y642+*&OLGfc]qnhqnh]ZU('$ u#")'%"! #Y ??????????( &D\ikhb\VOGA:401=)Ih6};<<3n1[}rbQ@3*%%'+05:@FLRVWM7 -I20-'oW0H {wsnie`]^i.m;;<<<3 #;<};{;y9s1e,X,V1`7g;l=l=j=i>g>f>f>f>f>f>f,gQ2V61hwQ:;;;;;;;;9IK53=y;y;w;w;u;s;rf>f>f>f9_?$ 13=uQ<:;;9K`M4'fe;a.J7  4I5QtaM8! (>eEB<640  t]A%/ǥ;<62466789:;;;;;z;wge:cSw_[Ulhbomgtpjxsm{wq}ysDB>d@ /A[;8"$(+,/356689:;;;;;;;;;;=p>e6`c~{vhd^pmguqkxtn{wq}w}w974uU. 3OE_93!%)+,0356789:;;;;;;;;;;=o>f6`wmicqnhvrlxtn{wq|v~xuq$"  fA 5X(c:+#'*,.146678::;;;;;;;;;;=m>e8azpmgwrlyuo|xr|v{fda|R* 6g *m:"!%(+,/356679:;};v;t;t;~;;;;;<>f;dqrnhwsmzvp~zt~x~LIG a95n+q:"&*+-146678:;x:vAx`M}gg>g>f;ctpj{wq|vz][X  S**h,w:  4<:0,1456689z?zZ|AiY{plf}ys}w{ ]3   !P+s; &<;;:/.3566896sqmg}ys~x}LJH p: &--(# 7 *n;39OxH5-035678/o}/., {wq}ysy~pnl~@,HWYSKB90(!0  (f; 7JW/.246674V }|xry)'%DLktzuqjc[SJ@92.+.:v 1a~>221E.0466773m$#!vtr|wqz;97  F zuoic_[X[f 81,I65%08E7014668.p&%#!  dc_|xq{PNL  Er }zyz T29;;6dn6225672oo=<:-,*mlj" "!'%"+)$HFB~zs|hfe A@[ZX79;;>V:878:{5r[!  jig!#!(&#-+&.,'860{u~usq < %_7;:XD:<;|;z3qn #!$")'$.,'1/*63.41*pmiy}w~{z 4  qpn{B[A9};|9x<5JG@yuozÿusq +e hfd}{LKIaKJH  BA?+)%/-(31,850<:3@=7EB;C@9ifa¿½yun{jgfd" - gecige864 RQOA@> SQPEC@'&!0.)52-:71=:5B?8FC;5C@9GD=JG@OLESPJWTNXUOspk}w<:8 . 7eca GFD \[YLJF,*%74/;92?<6DA:HE>KHAPMFTQKXUO\YSa]Web\ie_|v}wz¿#"    )(&UTR  NLJ74/63-<93@=7DA:HE>LIBPMGTQKYUO]ZTa^Xeb\jf`nkeroiwsmyuo}ys|w{hfd I :97 431531heb74.=:4A>8EB;IF?MJCQNHURLZVP^[Ub_Yfc]kgaolfspjwsmyuo~zt}x};:8  $ Z dda ;:8"!OLG<:3B?9FCyxv B@=tqlEC;KHAQNGTQKYVP^ZTa^Xeb\jf`okeroiwsmyuo}ys}w|JHF! @"!xwuDCA'%!ljgeb\KHAQNHURLZWQ_[Ub_Yfc]kgaplfsoiwsmyuo~zt~x}IAEDA430" 31,~\YSROHVSM[XR`\Vc`Zgd^lhbqmgtpjxtnzvp{uy~?>< 7FED.,(('!<:5}URLVSM\XR`\Vc`Zhd^micpnhuqkxtn{wq{uzxvt@3[ZY,*%/,'HD?rniURL]YSa]Wda[ie_njdqoivrlxtn|xr|v{420   )]\[&%#mli/,'63-PNH}~xgc][XRb^Xeb\jf`okesoiwsmyuo}ys}w|^\Z #  <;:jigGFDZWS30*=:4WTN{z|vrl_\Vb_Ygc]lhbpmgtqkxtnzvp{u~y~ Tv('%KHC960B?8]ZT{{y|v|xrgd^b_Yhd^micqnhurlxtn{wq|vz653ENNLrrq >=;B?9B?8FCKHAie_}ysyuowsmqmggd^jf`okesoiwsmxtn}ys~x|#"  lj553ba` fc^GD=MJCROHnjdvrlsoispiie_kgaolfspjxtnyuo~zt}x}A@=!  ( SRPNKDMJBROIYVPnkeroiqmgjf`lhbpmgtqkxtnzvp{u~ygdb PFC;SPIWTNa^Xplfmicie_micqnhuqkxtn{wq|vz(&$ F('%~|wKHAXUO]ZTgb]jg`jf`njeroiwrlxtn|xr}w{LJH %   _^]YVQVSM]ZTb_Yfc\jf`nkeroiwsmyuo}ys}w|qnj [lTQK^[Ub`Zdb\kgaolfspjwsmzvp~zt~x~*)' K 653a^X^ZTc`Zhd^micpmgupjxtnzvp{uyLJG@ rrq~y^[Tda[ie_njdqnhvrlxtn{wq|vnjf! ^[Uea[jf`nkernhvrlyuo|xr}w{A>; 1 7664lidda[kgaolfsoiwsmyuo}ys{ifa |ttsqa]Wmicqnhuqkxtnzvp|v|v:85)('%^YSmjdqnhuqkxtn{wq}wgd` n fedrnhkhbroivrlxtn|xr~x1/-,`he^soiwsmyuo|vkhc n  NNMea[tpjxtnyuo{C@=>A eb\tpjxtn|xrxto&%" & 0/-pngtpjxtn~xWTP_ '}yssoizuo~zt:95 2DCBrnh|xrolf(&$ (  (rng{ua^Yb  ZYXrng~ztPNJ < J rngzvpA>;  4 ssqrnhvrm21. -#"!soisoi%#!i( <vqkqnhM$  ONLwslpmgH fytnokfDzvolhc  @542|xqgd_  <.}~zsc_[ : onm|v{u]ZW 8^ EDCyuo}w_]Y 6&%#¿sohyda] 5 uqj{hfa |5E cffz¿xtm|mje y4  k>`|wq}spk w4s>eVG8/49Ql}w{u~wso t4#!#u`G0#(5:=Vvtpi~xzvst5w`J-%6;xAu^~{xtnz}zvu5 J |xbI/ +:k>dHlf|}ysz|xw5 _qzaK1*=g=eMnt|u{{x6u 8?cycM3*>e>eMkwyy~#" y6 {dN3-Ab:d]qv(&$z6 IU|fN5:mAfC`DFR}u,*({5 I 6}fP6.{Chveec8630/,|4K}gQ9+?jq320ZWS430z4q,*(QqRB:`*C}~ 975 u3!#Oq9ouLFl)=z$< )('"! _\Z=;8 o1 vut!,hrUT=|PON -,*B@>:97i/# ?><320IGE\[[)(&,+)964b+ NML}}{42032/\(  ) 875MLK JIG*)%)(&rrp('%TRO#" T$ }{z3311/+XTN42/AA?bb`431~ L. UTS" ZVPb_Y]ZTCA='%"FDByus B874bbaTQKda[eb\jf`plfkhb\YTNLHHFBJGCXURkhd^[X 7!EDBUTSROIeb\fc]kgaplftpjxtnyuo~zt~x}0., .qA@>)(&ROJeb\gc]lhbpmgtqkxtnzvp{u~y~ n# $#'%# #!WTNfc]hd^micqnhurlxtn{wq|vzURPP *)%!++)ssq_^\/.*b_Yeb\ie_njdrnhvrlxtn|xr}w{|z! *G20+31,LHCfb\fc]jf`okesoiwsmxtn}ys~x|=;9  {q30+KHA=;6862MKF`\Vb_Ygc]kgaolfspjxtnyuo~zt}x}QOL+ z('"NKEWTN[WQ_\Vc`Zhd^lhbpmgtqkxtnzvp{u~yPOL sFC>\YS`]Wda[ie_mjdqnhuqkxtn{wq|v{|w?>;w%$!MJEeb\jf`nkeroiwrlxtn}ys{u]ZU! D#!<:6PMIZXS]YTRPK@>: W^<|  Ah|pS (???>???<?????????tucnak-4.04/win32/tucnak.bat0000644000175000017500000000015111277513163012571 00000000000000@echo off set HOME=c:\ set CYGWIN=codepage:oem c: cd \tucnak tucnak.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 tucnak-4.04/win32/tucnak-msvc.nsi0000644000175000017500000001560712561151303013565 00000000000000; tucnak-msvc.nsi ; ; Install script for Nullsoft Scriptable Install System (NSIS), http://nsis.sf.net ; ;-------------------------------- LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ; The name of the installer Name "Tucnak 4.04" ; The file to write OutFile "Tucnak-4.04.exe" ; The default installation directory InstallDir "$PROGRAMFILES\Tucnak" ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\OK1ZIA\Tucnak" "Install_Dir" Icon "tucnak.ico" UninstallIcon "tucnak.ico" Crccheck on XPStyle on AutoCloseWindow true ;-------------------------------- ; Pages Page components Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles ;-------------------------------- ; The stuff to install Section "Install Tucnak" SectionIn 1 2 RO ; Set output path to the installation directory. SetOutPath $INSTDIR ; Put file there File "..\Release\tucnak.exe" File "..\Release\tucnak.pdb" ; File "..\Release\libftdi.dll" ; File "..\Release\libpng.dll" ; File "..\Release\libzia.dll" ; File "iconv.dll" File "inpout32.dll" File "intl.dll" File "libfftw3-3.dll" File "libglib-2.0-0.dll" File "libgthread-2.0-0.dll" File "libhamlib-2.dll" File "libiconv2.dll" File "libsndfile-1.dll" File "libusb0.dll" File "msvcr100.dll" File "portaudio_x86.dll" File "SDL.dll" File "tucnak.ico" File "zlib1.dll" File "rigctl.exe" File "rigctld.exe" SetOutPath "$INSTDIR\libusb" File "libusb\Davac4.inf" File "libusb\Digital_analyser.inf" File "libusb\HdKeyb.inf" File "libusb\Rotar4.inf" File "libusb\FUNcube_Dongle.inf" File "libusb\Installer_x64.exe" File "libusb\Installer_x86.exe" File "libusb\testlibusb.exe" File "libusb\testlibusb-win.exe" SetOutPath "$INSTDIR\libusb\amd64" File "libusb\amd64\libusb0.dll" File "libusb\amd64\libusb0.sys" SetOutPath "$INSTDIR\libusb\ia64" File "libusb\ia64\libusb0.dll" File "libusb\ia64\libusb0.sys" SetOutPath "$INSTDIR\libusb\x86" File "libusb\x86\libusb0_x86.dll" File "libusb\x86\libusb0.sys" ; Write the installation path into the registry WriteRegStr HKLM Software\OK1ZIA\tucnak "Install_Dir" "$INSTDIR" ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "DisplayName" "Tucnak" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" "NoRepair" 1 WriteUninstaller "uninstall.exe" SetOutPath $INSTDIR SectionEnd ; Optional section (can be disabled by the user) Section "Create shortcut in menu Start" SetShellVarContext all CreateDirectory "$SMPROGRAMS\OK1ZIA" CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" "$INSTDIR\tucnak.exe" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SetShellVarContext current CreateShortCut "$SMPROGRAMS\OK1ZIA\Tucnak data.lnk" "$WINDIR\explorer.exe" '/e="$APPDATA\Tucnak"' "$INSTDIR\tucnak.ico" 0 SectionEnd Section "Create shortcuts in Desktop" SetShellVarContext current CreateShortCut "$DESKTOP\Tucnak.lnk" "$INSTDIR\tucnak.exe" "" "$INSTDIR\tucnak.ico" 0 CreateShortCut "$DESKTOP\Tucnak data.lnk" "$WINDIR\explorer.exe" '/e="$APPDATA\Tucnak"' "$INSTDIR\tucnak.ico" 0 SectionEnd ;Section "Create symbolic links in C:\" ; System::Call "advapi32::GetUserName(t .r0, *i ${NSIS_MAX_STRLEN} r1) i.r2" ; ExecWait '"mklink" /d "c:\Tucnak-$0" "$APPDATA\Tucnak"' $0 ; DetailPrint "some program returned $0" ; ExecWait '"mklink" "c:\Tucnak-Program" "$INSTDIR\tucnak.exe"' $0 ; DetailPrint "some program returned $0" ;SectionEnd Section "Run Tucnak" Exec "$INSTDIR\tucnak.exe" SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tucnak" DeleteRegValue HKLM "Software\OK1ZIA\Tucnak" "Install_Dir" DeleteRegKey /ifempty HKLM "Software\OK1ZIA\Tucnak" ; Remove files and uninstaller Delete "$INSTDIR\tucnak.exe" Delete "$INSTDIR\tucnak.pdb" Delete "$INSTDIR\tucnak.dmp" ; can be copied here for crash analyse ; Delete "$INSTDIR\libftdi.dll" ; Delete "$INSTDIR\libpng.dll" ; Delete "$INSTDIR\libzia.dll" Delete "$INSTDIR\iconv.dll" Delete "$INSTDIR\inpout32.dll" Delete "$INSTDIR\intl.dll" Delete "$INSTDIR\libfftw3-3.dll" Delete "$INSTDIR\libhamlib-2.dll" Delete "$INSTDIR\hamlib-*.dll" Delete "$INSTDIR\libglib-2.0-0.dll" Delete "$INSTDIR\libgthread-2.0-0.dll" Delete "$INSTDIR\libiconv2.dll" Delete "$INSTDIR\libsndfile-1.dll" Delete "$INSTDIR\libusb0.dll" Delete "$INSTDIR\msvcr100.dll" Delete "$INSTDIR\msvcr100d.dll" Delete "$INSTDIR\portaudio_x86.dll" Delete "$INSTDIR\SDL.dll" Delete "$INSTDIR\tucnak.ico" Delete "$INSTDIR\uninstall.exe" Delete "$INSTDIR\zlib1.dll" Delete "$INSTDIR\rigctl.exe" Delete "$INSTDIR\rigctld.exe" Delete "$INSTDIR\libusb\Davac4.inf" Delete "$INSTDIR\libusb\Digital_analyser.inf" Delete "$INSTDIR\libusb\HdKeyb.inf" Delete "$INSTDIR\libusb\Rotar4.inf" Delete "$INSTDIR\libusb\FUNcube_Dongle.inf" Delete "$INSTDIR\libusb\Installer_x64.exe" Delete "$INSTDIR\libusb\Installer_x86.exe" Delete "$INSTDIR\libusb\testlibusb.exe" Delete "$INSTDIR\libusb\testlibusb-win.exe" Delete "$INSTDIR\libusb\amd64\libusb0.dll" Delete "$INSTDIR\libusb\amd64\libusb0.sys" Rmdir "$INSTDIR\libusb\amd64" Delete "$INSTDIR\libusb\ia64\libusb0.dll" Delete "$INSTDIR\libusb\ia64\libusb0.sys" Rmdir "$INSTDIR\libusb\ia64" Delete "$INSTDIR\libusb\x86\libusb0_x86.dll" Delete "$INSTDIR\libusb\x86\libusb0.sys" Rmdir "$INSTDIR\libusb\x86" Rmdir "$INSTDIR\libusb" SetShellVarContext all Delete "$SMPROGRAMS\OK1ZIA\Tucnak.lnk" Delete "$SMPROGRAMS\OK1ZIA\Uninstall Tucnak.lnk" SetShellVarContext current Delete "$SMPROGRAMS\OK1ZIA\Tucnak data.lnk" SetShellVarContext current Delete "$DESKTOP\Tucnak.lnk" Delete "$DESKTOP\Tucnak data.lnk" ; Remove directories used RMDir "$SMPROGRAMS\OK1ZIA" RMDir "$INSTDIR" SectionEnd tucnak-4.04/win32/Makefile.in0000644000175000017500000003043712561147623012674 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = win32 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(srcdir)/nagup.bat.in \ $(srcdir)/tucnak-cygwin.nsi.in $(srcdir)/tucnak-mingw.nsi.in \ $(srcdir)/tucnak-msvc.nsi.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = nagup.bat tucnak-cygwin.nsi tucnak-mingw.nsi \ tucnak-msvc.nsi CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ HAMLIB_CFLAGS = @HAMLIB_CFLAGS@ HAMLIB_LIBS = @HAMLIB_LIBS@ HAVE_MAKE = @HAVE_MAKE@ HAVE_PKGCONFIG = @HAVE_PKGCONFIG@ HAVE_RPM = @HAVE_RPM@ HAVE_RPM_PACKAGING = @HAVE_RPM_PACKAGING@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RPM_RELEASE = @RPM_RELEASE@ RPM_SOURCESDIR = @RPM_SOURCESDIR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ SNDFILE_LIBS = @SNDFILE_LIBS@ STRIP = @STRIP@ TUCNAK_LDADD = @TUCNAK_LDADD@ VERSION = @VERSION@ VERSIONCODE = @VERSIONCODE@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = tucnak.bat tucnak.ico tucnak-cygwin.nsi.in tucnak-mingw.nsi.in tucnak-msvc.nsi.in tucnak-msvc.nsi all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu win32/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu win32/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): nagup.bat: $(top_builddir)/config.status $(srcdir)/nagup.bat.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tucnak-cygwin.nsi: $(top_builddir)/config.status $(srcdir)/tucnak-cygwin.nsi.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tucnak-mingw.nsi: $(top_builddir)/config.status $(srcdir)/tucnak-mingw.nsi.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tucnak-msvc.nsi: $(top_builddir)/config.status $(srcdir)/tucnak-msvc.nsi.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tucnak-4.04/svnver.sh0000755000175000017500000000077212524572134011544 00000000000000#!/bin/bash svnver=`svnversion -n . 2>/dev/null` if test "$?" != "0"; then exit 0 fi if test "$svnver" = "exported"; then # svn 1.6 exit 0 fi if test "$svnver" = "Unversioned directory"; then # svn 1.8 exit 0 fi echo "#define T_SVNVER \"$svnver\"" > src/svnversion.tmp echo $svnver > svnver cmp -s src/svnversion.h src/svnversion.tmp if test $? = 0; then echo Keep svnversion $svnver exit 0 fi echo Updating svnversion to $svnver mv src/svnversion.tmp src/svnversion.h exit 0 tucnak-4.04/TODO0000644000175000017500000000005512416702502010336 00000000000000TODO is handled by author's proprietary tool tucnak-4.04/mingw0000755000175000017500000000157312073303516010724 00000000000000#!/bin/bash set -e tucnak() { export CFLAGS="-I$BASE/include" export LDFLAGS="-L$BASE/lib" ./configure --host=$HOST --without-gpm --without-alsa --with-portaudio -with-pkg=nsis #--without-sdl --without-png --without-sndfile --without-fftw3 make clean rm -f src/tucnak src/tucnak.exe touch data/svnversion.exe ./svnver.sh make -C src -j$CPUS tucnak.exe if [ -f src/tucnak ]; then mv src/tucnak src/tucnak.exe; fi (PATH=$OLDPATH; unset CC; unset CFLAGS; unset LDFLAGS; unset HOST; unset BASE; unset CPUS; which gcc; set > _SET; echo && cd src && gcc map2d.c -o map2d) make tucnak.d echo } HOST=i586-mingw32msvc BASE=$HOME/cross/$HOST CPUS=`grep ^processor /proc/cpuinfo | wc -l` mkdir -p $BASE/build export OLDPATH=$PATH export PATH=/usr/$HOST/bin:$BASE/bin:$PATH export CC=$HOST-gcc export PKG_CONFIG=$BASE/bin/pkg-config tucnak tucnak-4.04/ChangeLog0000644000175000017500000015047112561150421011426 00000000000000 =4.04= 2015-08-07 * Fixed rebuild scripts and libiberty detection * Removed Crash test and Int.error test also from v4, TNX to SP2FRY * Fixed italian translation, TNX to IK4XQT * AC's sorted in z-order * Fixed translations =4.03= 2015-06-04 * RSGB M7 support for G4ZTR * Official Tucnak package in Debian, TNX to G8TMV * tac2tuc.pl removed from install * Modifications of build system to satisfy Debian's pbuild * Fixed menu name, TNX to OZ1PIF * Fixed A/C info without known locator * Fixed A/C info crash, sw->zoom was not set =4.02= 2015-05-12 * Fixed A/C freeze under WinXP, TNX to OZ9GE =4.01= 2015-05-11 * Fixed bug in cor recalc on WinXP, TNX to OZ9GE * Fixed A/C WWL update, TNX to OK1MZM * Fixed update output parse =4.00= 2015-05-09 * KST dump skip * Fixes for development on Jessie * Fixed missing WWLs in stats window, tnx to OZ9GE * Fixed Sun position jun-sep * Talk offline transfer * Updated Czech translation * Fixed scroll when searching in KST/DXC * Fixed QSO hash, can cause bad call highlight in KST/DXC * Fixed layout update in text mode after Misc options * Fixed and optimized cor recalculation * Airplane position is in the center of sign * Fixed new format of A/C feed * Updated KST server IP list * Show ! in DXC when call brings new EXC multiplier * Fixed CI-V address, TNX to OK1CDJ * Allow up to 4 digits and letters in callsign * Fixed crash when adding chart without opened contest, TNX to IZ3GME (ex IW3IKN). * Fixed gen-conly script * Italian translation, TNX to IK1RAC * Anti-aliased qso cross in map * Fixed cabrillo frequency and header, TNX to OK1UGE * New countries in tucnakdw, TNX to F4CIB * Remove branch number from package names * Fixed lintian errors and some warnings * Fixed characters typed with right alt keyboard layout switch * Optimized layout of OSK * A/C info plot instead of QSO info * Crossing A/C are blue * Fixed http upload of long files (>cca 100kB) * Fixed crash in wiki upload * Set higher priority to cwdaemon thread on windows * Fixed crash in main_msg_handled (CW:!) * Fixed compile with some version of libbfd =3.28= 2014-09-29 * Window highlight searches for whole words * Allow to use non-call as operator * Fixed too many open files bug in SSB CQ * Fixed mediawiki upload credentials * Reverse portrait and landscape mode on Android * Lower mouse accuracy needed for menu separators and borders, TNX to OK1MZM =3.27= 2014-08-31 * Fixed KST A/C map crash, TNX to SP3IYM * Fixed crash in vhfcontestnet upload * Ask for sked and Message open OSK * Fixed Alt+PNK in KST within OSK =3.26= 2014-08-14 * Fixed crash in QRV window redraw, TNX to OZ7Z =3.25= 2014-08-14 * Reload interfaces button in Network info * Spy shows error when contest is long * Android notification and service * Fixed crash on Android 4.4 KitKat, TNX to my wife Bara * Fixed OSK KST Alt+K, Ctrl+K, TNX to OK1MZM * Fixed OSK size, OSK close button click area, out of OSK clicks pass, TNX to OK1MZM * QRV list create in menu Subwins->Add contest * Wiki report upload to mediawiki site * EDI log upload to www.vfhcontest.net * Fixed HF Edit QSO bug, TNX to F5NLG * Removed Crash test and Int.error test, TNX to DL4DZ * hamlib uses win32 api for FUNcube * SDR right button drag tunes radio * Fixed many SDR bugs =3.24= 2014-06-12 * Experimental support for SDR * Fixed wifi UDP negotiation on Android * Fixed band change tucnak->radio * Fixed rig lock problem * Translate 0xd8 to 0 in KST * Fixed spy and contest load when remote node is connected * Fixed bad comparison in initialization, TNX to David Binderman * Fixed gain display of QTF=8, tnx to OZ9GE * Anti-aliased map in HTML/wiki exports and over HTTP * Speed up window resizing * Remember maximized state under Windows * Fixed crash causet by too small application window * Bigger font allowed in on screen keyboard * Bigger font for higher resolution at startup * Window maximized at startup * Open web browser with WWL in Call info * Do not preload checkboxes in Load from network dialog when loading from same host * Autorepeat in OSK * Inputline history works in OSK * Show battery state * Support for arbitrary category (PSect in EDI) * Fixed ftdi_usb_get_strings detection under 'nixes and msvc * Fixed multipliers in CQSOs EDI line, TNX to OZ1FF * Fixes in Scope/FFT window * Fixed hamlib configure path * Fixed redraw of focus rectangle around window =3.23= 2013-12-28 * New windows icon resolutions * Seconds marks in Player window * Send locator to KST during connect chat * Experimental focus rectangle around window * Experimental portrait orientation under Android * Support for RSGB M5-type contests * Fixed external tucnakwiz load under windows * Fixed many SSB CQ and recording issues * Fixed FFT redraw after ssbd file format change * Fixed wav play fail under Android * Accelerated vertical window scroll under Android * Fixed scope window flashing when recording * Fixed device lockfile delete * Fixed serial port detect under Android =3.22= 2013-11-05 * Serial port detection in Info * Battery state in Info * Close button in on screen keyboard * Drag menu selection by mouse/touch * Location update by click on Android * Fixed lockfile path on Arch linux, TNX to DF4OR * Playing SSB CQ on Android * Android API back to 4 (Android 1.6) * Fixed shift in on screen keyboard * Fixed under cursor nummer-ended call recognition in KST/DXC * Fixed spy state request after contest load * Fixed screen layout with spy activated * Inputline history in touch mode * On screen keyboard capslock * Fixed settings on Android * Save/restore state on Android after apps switch * Fixed menu Window->Open connection * On screen keyboard replace Fn with star * On screen keyboard swap comma and question mark * On screen keyboard shows same case size as it writes * Shake on end of scroll in windows * Reversed QSO scroll direction, no QSO highlight * Faster window scroll in touch mode =3.21= 2013-09-03 * Disable screensaver on Android (off by default) * New touch keyboard symbols * Geolocation in Info on Android * Actual locator in new contest on Android * Fixed swap import, TNX to OK1HRA * Ignored spy lines in old contest * Fixed screen layout after Log lines change * Removed >< in A/C result * QSOs cursor jumps to last qso when window is activated * Scroll in search results in kst and dxc windows * Use of call (kst, dxc, sked, qrv) adds call to inputline history * Fixed Shift+F3 in contest * Set PTT over CAT * Fixed rig_open error reporting * Get locator also from QRV database * Change font in first Contest def dialog * Fixed NAC on 70MHz * Fixed A/C load (included in 3.20-android) =3.20= 2013-06-14 * Fixed crash after TAB in text mode, tnx to OK1HRA * Fixed database load in New contest from net over slow link * Fixed negative float number read from tucnakrc * rigctl.exe and rigctld.exe in msvc package * Hamlib 1.2.15.3-zia in msvc package * Fixed tucnakwiz load * NAC is also on 70MHz, TNX to OZ1FF * Fixed shell close under Win32 * Fix QRG decimal dots in QRG * Rotar description on main screen * Select in QRV window * Testing support for A/C prediction * Fixed Home in Chart window under linux * Support for serial numbers for FTDI converters * Many fixes and improvements in rig control * Fixed crash in file unlock * Improved rig trace * Alt+F10 maximize/restore window under msvc/mingw * Improved settings under msvc =3.19 2013-04-28 * Automake silent rules * File libzia*.so.d moved to /usr/lib/libzia * Fixed CQ repeat timer, TNX to OK2WO * Removed OS Shell in SDL mode, TNX to OK2WO * Can select menu item checbox also by mouse/touch * Close OSK before DUPE dialog * Ctrl+Y clears also OSK inputline * Fixed platform trailing 'x' =3.18= 2013-04-24 * Initial locator load on android * Fixed -d argument under msvc and mings * Fixed bug in SWP load (unbelievable, must be here many years) * Sndfile is optional * Disabled rotar description in menu * Update for EEE * Again fixed checkbox in Shell menu item * Fixed Invalid option message * Fixed empty space redraw in text mode * Fixed Bad auth message * Probably fixed crash of deb's tucnak on wheezy, TNX to OK1TKP * New option No device locks * Removed use of deprecated GMemChunk * Fixed most of warnings for gcc 4.7 * Improved sound latency * Fixed hamlib debug mode (OR of enabled rigs) * Export to text file for KST and DXC windows * Dump RW bands and hashes for diagnostics of problem caught in March contest * Export as EDI fill operators when field is empty * In touch mode screenshot is without keyboard * Show stars instead of KST password * Distribute RIT over rigs * QRG can be entered without contest * Experimental support for more rigs * Fixed up arrow in QSOs window with Show All on * Add contest and Add files menu items in Chart subwin/context menu =3.17= 2013-02-25 * Fixed secondary DXCC prefix recognition * Fixed crash in empty QRV list using mouse wheel, TNX to OZ9F * Fixed worked QSO color after QSO edit * CEPT prefix and suffix sensitive QRV list (tnx to G1OGY) * Support for debug info from dynamic libzia * Fixed checkbox in Shell menu item =3.16= 2013-01-09 * Winkey over TCP/IP * Fixed internal error message, TNX to OK1CDJ * Removed QRB QSO check warning * DXCC name in call info * Enter without contest runs call info * Fixed libzia compile --without-gtk * Fixed TUCNAK_DEBUG variable (broken since 3.00) * Removed support for winkey+davac4 (never 100% working) * Fixed unix shell echo without PTY * Idea: OSK keeps worked QSO visible * Support for libsndfile (no SSB CQ/rec now) under android * Support for hamlib under android * Confirm call/exc/wwl by mouse click * Android key trace * Android menu key opens menu * Rewritten parts of mouse handling code for drag window scroll * In touch mode DXC/KST click always shows context menu * Swap ENTER and BS on OS keyboard * Released public beta od android * Map icons Home, Zoom in, Zoom out * Touch control * New font 18x32 * Private release of beta Android * Scroll DXC bandmap using Shift+Arrows, PageUp, PageDown, Home * Frequency in QRV list takes only needed space * Higlighted line in bandmap and qrv list changed from inverse to [...] * Polish language file, TNX to SP5QWB * Fixed sound type without portaudio * Uploaded transitional debian package tucnak2 -> tucnak3 * Insert in chart window chooses contest instead of file * Settings and Info in Help menu (corresponds to -s and -i command line arguments) * Improved network contest load with long databases over slow links * Re-arranged Network and Trace dialog * Fixed remote connect to local host * Fixed ] in talk window * OK? at end of Ask for sked * Fixed crash in wiki export in text mode * --with-pkg configure argument * Fixed platform and machine type under mingw =3.15= 2012-10-25 * Own update system for deb.i386, deb.amd64 and msvc * Inputline history increased to 30 items * Right click in title of QRV part of KST window choose optional QRV column * When QRV sort is by QTF or KST, the QTF is shown in QRV part of KST window * Can clicn to QRV column headers in QRV window to sort items * Can click to QRV column headers in KST window to sort items * Support for mouse in QRV part of KST window * Support for incorrect KST /CQ command recognition '> (0) (CALL) ...' * Improved search in KST window (no right move, highlight search pattern) * Accidentaly entered 2-7 numbers in KST are processed as contest exchange (RST,NR) * Fixed accidental kill when shell is terminated under linux * Fixed codepage od DNS errors under msc/mingw * Fixed socket connected handler in KST, DXC (should not happen in real life) * Operator change mark in chart, operator show in title * Removed old New from net * Removed old spy * Mass R-O band set Bands->Set read-only * QRV info showed instead of top log line to save space * QRV info show also for dupe * Ctrl+L under SDL switches to 24G. Without SDL means terminal redraw. * Fixed SSID-calls add to C_W * Fixed chart points axis description * Changed font for msie in httpd =3.14= 2012-10-04 * Fixed contest load with 0 points * Fixed new cty.dat load, tnx to 9A4ZM =3.13= 2012-10-03 * Fixed right click out of windows titles * QTF in QRV window right aligned * Allow reverse sort in QRV window * Fixed crash in New Contest, tnx to SP5QWB * Fixed alternative slash key in QRV window, tnx to 9A4ZM * Updated cty.dat (2O12L) * Libzia-ver.so.d distributet, not working =3.12= 2012-10-01 * Fixed debian build --without-bfd * Fixed libzia's settins include in deb * Band multiplier for NAC * Alternative priority set to 50 (tucnak2 has 40) * Remote host is resolved * Fixed resolve error handle under platforms with getaddrinfo * Must not enter first two letters of locator (60LJ is JO60LJ for stn. from JN69) * Removed direct backtrace from internal_error * Fixed tucnak.d and bfd_open path * Autosave and floppy save fixes, TNX to OZ7Z * Platform and version to crash messageboxes's titles =3.11= 2012-09-21 * Left click on window tab shows context menu same as Subwins * Run mode stat next to WPM indicator * New hotkey Ctrl+R, tnx to 9A4ZM * Use speaker hidden under windows * Fixed text in tucnak3.desktop * QRV list transferred by New From Network * Fixed network reconnect when remote is connected * Enter in log window adds empty line for * Fixed accidental stdin close in winkey/rotator * New option net_remote_enable * Fixed color of lowercase KST call * Removed debugging of P3 command * Page Up in QSOs window wraps to end of list, TNX to OK1XDF * Fixed heap corruption after twice sf_close() when recording device cannot be opened * Binary zloc in libzia/src * Deb dependency to libzia of same version * Use -release in libzia creation =3.10= 2012-08-28 * Removed libbfd from debian build because binutils versions incompatibility * Fixed crash after tab in welcome dialog probably only under msvc/mingw =3.09= 2012-08-28 * Backtrace uses map file under mingw * Updated backtrace for msvc * Fixed winkey also under msvc/mingw =3.08= 2012-08-14 * Fixed winkey, TNX to OK1HRA * Unhandled Exception under mingw * Fixed compile under OpenSuse due broken binutils-devel * Platform in window title and on some next places * Fixed impout.dll for paralel port under mingw * Included settings from libzia * Fixed parameter parse (-i) under msvc/mingw * Example tucnaknames and tucnakcw in binary * Enter in Welcome dialog does not run Language choose =3.07= 2012-08-07 * Can be compiled under mingw, not tested * Fixed IPV6 resolving, tnx to CT1DRB * Fixed -liberty compile on OpenSuse, tnx to CT1DRB * SDL keyboard delay/rate taken from system under MSVC * Fixed operator send for Network Info * Fixed jump to first QSO in QSOs findow when first fucused * Fixed WAV search after Ctrl+P in QSOs window under MSVC * $E in default ssbd_template * Repeated play in Player window * Fixed subwin inputlines position without resize * Thread names for debugging * Band name in QSO info * Suspicious chars ?! are red * QSO check after call/locator enter * Maybe fixed rig QRG resend after band change =3.06= 2012-07-25 * Probably fixed fftw but not released * Msvc version uses Release build to improve speed * Fixed X11/putty mouse handle for coordinates>94 * Fixed RBN call selection in DXC window * Fixed background on gnome-terminal * Fixed DXC spots in HF window * Fixed Shell window under Linux * Code cleanup * Httpd options dialog * Fixed httpd SO_REUSEADDR * Fixed DXC spot parse =3.05= 2012-07-18 * Fullscreen Ctrl+F11 * Font change Ctrl+, Ctrl-, Ctrl0 * New font 8x13 * Disabled portaudio in linux build because ubuntu segfault in Pa_Initialize * Speedup: calls are not compared using regular expressions * Speedup: calls are hold also in hash * Oh mistake and Ask for sked in KST window * QSOs from all bands in QSOs window =3.04= 2012-07-03 * Fixed Tucnak data.lnk * Window title is Tucnak instead of tucnak3 * New contest from network (flood) * New spy method (flood) * Fixed operator load from contest files * Connection to remote tucnak * Kill connection in Subwin menu =3.03= 2012-06-18 (R1724) * red highlight of 73-like KST messages * turn on SSBWAY pin also during CW CQ to allow CQ on more band simultaneously * dark yellow calls in subwin only when worked on all read-write bands * fixed crash when sdl cannot be initialized * kst logged QRV stations from QRV list * fixed accidental QRV list sort change when subwin is leaved with Alt+number * changed color of qsos and qso gain in map subwin * svn version (revision) compiled-in in binary * fixed crash after contest wizard, TNX to OK3MAD * call selection and right mouse in qrv subwin * QSO window does not loose focus when switched to it * QSO window does not switch to last QSO when focused =3.02= 2012-05-09 (R1637) * fixed SSID'ized call info and call use in KST and DXC * fixed crash after home key in KST and DXC * fixed crash in quicksearch * fixed Diskfree text in audio dialog * fixed dxc_host delete * link with libzia can be static or dynamic * fixed new contest crash bug =3.01= 2012-05-02 * fixed fftw sample count handle * updated libfftw3 3.3.1 to pl1 for msvc * qrg entry in khz (.144300) * bandmap in dxc window * new key l in map * disable screensaver under msvc * format of -i * libusb in installer * fixed time_t 64bit bug, tnx to G1OGY * highlighted item in sked window, enter send to worked qso * hamlib rotator fix, tnx to OK1HRA * rotator poll interval * fixed slow chart redraw without qsos * portautio must be at least version 0.19 * fixed soundwrapper argc bug, tnx to DL1JBE * wider beamwidth in map * sked dialog rewrite, removed we_call and skedshift * charts are per band * loading of txt into chart loads also other bands * qso gain in for photo * alt+f4 closes tucnak under windows * progress indicator during exports and qso check * chart points axis value round * chart time axis extremes snapped to hours * removed charset menu * newline adter map image in wiki export * fixed portable calls in KST, DXC * QRB, QTF in Call info * removed Not mounted message when no floppy is defined * fixed floppy save under msvc =3.00= * first test - march contest 2012 OK2M * change SDL key repeat * azimuthal star in map * simplyfied first contest options * (untested) support for hamlib rotators * fixed names after Alt+C, tnx to OK1MZM/YL * macro $J * exact qrg in cabrillo, tnx to OK2CQR * fixed rig qrg set after band switch * kst reads cwdb and namedb from /sh us command * double font height * readonly flag in bands menu * set default rst-s after band change * fixed race condition in eventpipe mutex create * mast icon in map * fixed map for photo feature * fixed sconn free bug * fixed chart file not found message * hdkeyb is started only with rotar(s) * removed dump on Ctrl+L * fixed sdev error messages handling * fixed lockfile delete after keying device close * fixed crossmode warning in qso check * show wkd info from qrv list * fixed chart.c compile under msvc * fixed bug in CW speed using winkey. TNX to DL5YBZ * fixed font draw with height!=16 under graphic windows * wkd, qrv in qso info * alt+k accepts usernames like call-2 and call/p * ctrl+k does not add (CALL) * rst in edit qso saved as uppercase * network info for -i * actual band selected in band menu * show more chars of cw cq in menu * fixed minor bug in wiki and html export * fixed crash in wiki export without sdl * fixed crash in macro $B without contest * common code moved to libzia * split header.h into more smaller headers * memory allocations only from glib * removed cba_t * forked v3 =2.41= 2011-05-25 * released as tribute to Douglas Adams. Don't panic! * fixed trace_sock * fixed udev script - usb_device -> usb * fixed some gcc warnings * html/http/wiki exports map and chart as png * http server for contest progress presentation * changed fifo time format to HH:MM * fixed wiki map description * fixed volume indicator flicker * fixed trace condition * show chart files without sdl * fixed grid & boundaries in map, tnx to DG6MAN * libgpm is disabled by default * fixed player and chart windows add * fixed network interfaces detect * ignored duplicate $GLIB_CFLAGS, $GLIB_LIBS in configure.in * new macros in tucnak -s =2.40= 2011-04-05 * added _cv_ in autoconf cached variables * updated missing script * fixed iconv detection * fixed tucnakrc load under WIN32 * sdev trace * trace rewrite * split master db into more strings * rewritten cbr items choice for OKOM DX * compile under msvc and ming but unusable at this time * fixed qrv edit/insert (should overwrite another item) * added player (and chart) window types in Add subwin * removed testing code for Ctrl+P in main inputline * experiments with waterfall palette and filtering * frequency axis in fft scope * frequency argument in soundwrapper for testing * tab complete file in file import * chart subwin * fixed cursor position in inputline history alt+h * degree sign in C_W quick search * fixed alt+letter in qrv search * rig error code instead of qrg * changed rig debug level * fixed rigs with unsupported rig_get_vfo() * +1/-1 alloc bugs detection with --enable-leak-debug * fixed qrv insert from keyboard * fixed text upcase in qrv insert/edit =2.39= 2011-02-25 * fixed ftdi_context portability between libftdi versions * qso gain diagram * qrv gain diagram respects worked count * qrv item insert * qrv item edit * new contest loads ~/tucnak/qrv * fixed qrv points drawing when mouse move =2.38= 2011-02-20 * fixed bug in map window during contest load * fixed memory alloc problem in master db * degree sign as hexa constant 0xb0 * rewritten qrv database * fixed master database comment filter * increased length of contest option numbers, tnx to RU2FM * calls from master database are never deleted * fixed contest date in contest options * qso check warning if exists remark * fixed qsonr in cabrillo output, tnx to OK1HRA * fixed avg unit pts/km in wiki and html output * fixed compile without various --without combinations * removed forgotten font13x24.png create * QRG in edit QSO * correct size of screenshots in HTML export * fixed runmode CQ without hamlib, tnx to DL1JBE * fixed Ctrl+3 to Ctrl+9 under SDL * wav player seems to be usable =2.37= 2010-10-27 * two letters input moved to unresolved area * fixed some minors in runmode, tnx to OK3MAD * fixed soundwrapper sound frequency * rewritten runmode for A1/MMC * fixed runmode CQ only in CW mode (TNX to OK1HRA/TC03W) * fixed runmode TU * skeleton for wiki publish * fixed TU give in run mode * > for qrb>average in qsocheck * changed delay between hamlib rig calls for slow radios * fixed string truncate in inputline insert * rig freq read reads from actual VFO * rig mode change keeps bandwidth * fixed autogive=0 * expedition mode =2.36= 2010-09-27 * fixed rig ID choose * fixed segv in loading of contest with HF window and > 6 active bands * do not add 'similar call' to qsocheck when this call is also worked * set rig handshake to none (default for TS850 is CTS/RTS) * set rig timeout to 500ms (480s is unusable) * gdb and rigctl under cygwin * fixed cygncurses-9 dependency for sh.exe under cygwin * updated tucnakdw (4X, ZC4, many UA) * improved edit qso time parsing * autogive mode after some typed chars * macro $B * bell sign for character 7 under sdl * in macro $I dots are replaced by question marks * added baudrate for rig control * fixed R9SA parsing as report (tnx to OK1HRA) * WAZ and ITU in HF window * rewritten exc list in HF window * master call database * fixed SFI parse * "live" QSO list in HF window * enlarged layout of HF window * updated UA wwls in tucnakdw * fixed missing excs display * argument -m sets time from master PC * 'c' key for center screen to QTH * 'p' key for photo in map * fixed second part of CQSOs for method 16 * summery table with links to bands in html export * fixed buffer and period time to ms (was us) * similar calls are computed using Levenshtein distance * cleared qso check message * fixed top10 formatting for qrb>=1000 km * reverted to old udev rule style (for lenny) * fixed memory leaks in dwdb.c, rotar.c =2.35= 2010-06-30 * fixed crash in fft calculation * support for Championnat de France THF * alt-j: short access for A/C and M/S cq * qrv list save * configure checks for make * fixed large qso number display in global QSO mode, tnx to DL5YBZ * support for prefixes with slash (3D2/C) * fixed crash after IT9x call (* in prefix in cty.dat), tnx to DL5YBZ * fixed $MN macro, tnx to OK1HRA (GL in WPX!) * send CW2 and save QSO also after QSONR * list import * support for odd/even/1st/2nd TX (A/C, M/S) * fixed suid of soundwrapper * updated cty.dat * SYSFS{} changed to ATTR{} for new udev versions =2.34= 2010-04-26 * changed time separator from . to : * four digits are QSO number, not month and day of month * deb package uses suided soundwrapper * macro $I * fixed statistics calculation after loading of contest * added frequency to adif export * fixed exchange output in cabrillo and adif export * changed format of ChangeLog to Mediawiki source format * get back generated debian/changelog, it seems we have no DEB maintainer =2.33= 2010-02-18 * fixed usaca multiple names * rit clear after qso save in run mode * support for ARRL International DX Contest * fixed ARRL VHF scoring * turned off cq repeat for cwdaemon * rig changes: poll interval, mode and band transfer 20100213: 2.32 cabrillo export for ARRL VHF contests fixed leak debug on AMD64 fixed double rig_cleanup() fixed using of non-serial ports in hamlib (f.e. rpc.rigd, type 1901) rover (/R) are not dupe when are in different big wwl fixed EDI properties dialog script for Asus EEE binary and optimized configuration updated tucnakrc (HF bands, windows) 20100101; 2.31 fixed crash if mode is changed without FFT window. TNX to DF4OR crossmode test in QSO check 20091130: 2.30 fixed device locking under cygwin, tnx to G1OGY 20091103: 2.29 fixed corrupted contest date display in Open contest from net fixed tucnakdw; JN89 is in OM fixed cwdaemon and sdev double freeing recording level has filtered DC CW window holds PTT all time it is opened removed debugging show of 1's under volume indicator fixed (null) display in empty qrv list speeded up sdl key repeat removed delayed screen redraw fixed KST new call upcase DX network command sends only valid spots, no KST or other garbage fixed rig qrg display (mode switch worked) fixed ebw db import error message 20090921: 2.28 added font scale, height 16 to 32 pixels removed double font support updated display format of sked sked popup window updated German translation, tnx to DK1HJ directories are created with rights 0777 (& umask) frequency spectrum display (depends on libfftw3) 20090809: 2.27 changed GHz bands 120->122, 144->134. You need to change it in your tucnakrc! created local svn repository added 4O-YU and HV boundaries to map qsocheck checks unknown DXCC prefix cor is calculated in thread updated tucnakdw, synced with lx 1.36 automatic spacing of windows titles to fit screen fixed timeout in sconn_ftdi_read fixed bug in free_ssbd (cwda keeps not null but freed) optimized screen redraw on slow computers ptt lead-in delay for winkey qrv list 20090423: 2.26 castellano translation, tnx to LU9JMG! changed cw weight sense from obscure cwdaemon type to logical winkey type (30..70) fixed operator handling via network, causes bad operator name in Network monitor dxc shows only unmaked qsos configurable band switching rig freq can be entered by .300 (means 300 kHz, MHz are unchanged) new macro $e ('code' string when contest code was entered during file recording) rewritten parts of sdev stuff (rotator) rewritten rig control to threads fixed long delay at program exit (caused by rotator ttys) fixed DX cluster spot handling when no zulu time is present on the end. Tnx to DK2ZO support for winkey+davac4 at same time (experimental) fixed negative number read from tucnakrc*. Affected are ssbd_plev and ssbd_rlev fixed davac4 opening when an error occur ssbd use threads instead of processes scope subwin fixed rig_ssbcw_shift, was constant value 660 Hz fixed buggy usb_info(), tnx to OK1CED fixed missing ftdi_usb_get_strings() in libftdi 0.7, tnx to OK1CED fixed bug in menu_rotar_delete 20090222: 2.25 fixed compile bug without SDL (rotar.c sw_map_update_rotar) fixed minor bug in sndfile configuration 20090212: 2.24 removed unused experimental sdldyn code updated tucnakdw, tnx to OM4AA! data/sortdw.pl show rotar azimuth on map support for ftdi and remote rotator fixed '59001' input. Bad regexp. Tnx to G1OGY! fixed rotator serial port setup, tnx to hamlib RSGB variants M1-M4 in tucakwiz, tnx to G1OGY! 20081221: 2.23 changed RSGB contest scoring (dxcmult=1, total_method=2) fixed EDI export (EXC count) first support of rotator options dialog (not done!) first support for global QSO NR fixed bug in clear_tmpqsos, can cause segfault fixed compilation problem without hamlib, tnx to DL1JBE added new easier way to create dialogs contest name, qsos, qsop, total pts in statistics window total method 3 for cq ww dx contest, counts al bands together fixed defrstr at dialog load cq ww dx contest scoring show band name in meters for hf bands tucnakwiz fixes 20081213: 2.22 reworked tucnakwiz format to have same items as data files removed gen-conly, automatized intl creation rsts entered as 59, or 599, rstr entered as 59' or 599' qsonrr entered as 001; rewritten parts of exc qso inputline restricted only to valid chars fixed old (fix QRG first blind support of winkey vhf database is also loaded from ~/tucnak/vhf.dbf time is running when dialogs are opened tab closes cw window fixed cw window cursor delete old characters in cw window fixed break of played characters in cw window 20081013: 2.16 hotfix for segfault after network problem 20081002: 2.15 slash can be mapped to other character and vice versa double size of font fixed "bug that cannot happen" - crash when TCP connection is closed and more lines is in input buffer (rdbuf). Happens mostly on slow computers and/or under heavy load. first support for dynamic load of libsdl fixed frequency display > 2^31Hz removed forgotten debug sleep(10) after sigpipe 20080904: 2.14 probably fixed alsa bug (EINTR instead EPIPE) limited alsa recovery to 5 times band limitations in wizzard fill rst-r exc database reworked optional exchange types limited display of OE to 4 chars. stored size is unlimited AVG statistics moved right to Total-Points found bug in rc loading - can cause crash with new items in tucnakrc simplyfied rotator code using process removed thread-unsafe getpwuid rig control using hamlib skeds are sepparated by band. Removed sked file, data is in txt files ntp synchronization check and warnings ggsend band equipment for active contest over net kill subwin shells with SIGKILL under cygwin remember spypeers in spy file remember file:line of last mutex locks (for deadlock debug) fixed DXC crash when bandchars are not consequent spy peers are showed on all bands spy can spy all read-write bands sent RST doesn't change to default after mode change when it was entered by operator trace_xxx's write only to debug log and log files, not to screen text QRV on is showed red QRV bands in call info shift+arrows and zoom keys do fine zoom/shift alt+k in shell inputlines fill /CQ CALL command for ON4KST chat talk works across different contests or without contest 20080713: 2.13 fixed crash in alt+i without contest runtime glibc version in settings and tucnak -i removed spaces from variables bellow CFLAGS, LDFLAGS and LIBS in settings ld -z now when supported fixed crash in cwdaemon_send_defaults(), tnx to OK1HRA fixed overwriting of edi when ok_section_* is no set fixed compiler warning in free_keymaps() fixed !rotars crash after SIGTERM added share/tac2tuc.pl by G1OGY fixed loading of ~/tucnak/tucnakdw and ~/tucnak/cty.dat, tnx to G1OGY fixed optimalisation show in settings fill sked QRG when target band is changed ppdev present in settings data sizes and endianity in settings qrv on bands are taken from all bands, not only from higher bands qrv on bands doesn't show already worked stations tucnak -i shows program version contest close breaks recording handled select() EINTR in cwdaemon thread cygwin version in settings updated E7 and CN in tucnakdw (G1OGY) in qsocheck/call info all qsos has "call is without /p" flag snapshot has bandchar in filename html image uses bandchar in image links html exports shows own locator libgpmg1 is showed in settings as optional 20080703: 2.12 removed uname.exe from NSI alsa recording continue after buffer overrun removed KST "watchdog" 64px startup icon removed defrc.c replaced by data/tucnakrc configure shows library versions fixed some gcc-4.3 warnings fixed CT3, added CN and E7 in tucnakdw, tnx to G1OGY updated share/applications/tucnak2.desktop 20080620: 2.11 actual cty.dat externa cwdaemon support again qso check compares exact callsigns (/p) and locators on other bands statistics window shows odx per hours fixed screenshot in 8 and 16 bpp, tnx to OK2FUG PA tune function Alt+T in CW mode fixed bandchars beginning with "W" (lost item in arrays) fixed possibly ambiguous parentheses in ADDQSO 20080605: 2.10 fixed "59," crash, tnx G1OGY for inspiration removed gmtime(), replaced with gmtime_r() qsocheck.txt is ignoring older C_W items than 2 years for /P and similar checks time of qso in qsocheck.txt fixed missing newline in qsocheck.txt QSO mode in TOP10 columns titles for hours part in stats window fixed macro $V - it was same as $C increased length of screen resolution textboxes in misc options fixed reversed polarity of ssbway signal in davac4 20080502: 2.09 hotplug scripts for davac4 usb device support for davac4 by using libftdi wildcard '?' same as '.' support for parallel port under cygwin using inpout32.dll 20080227: 2.08 install script for NSIS support for cygwin reworked SSBD dialog, changed to Audio menu.c section in header.h split to menu1..menu5 scandir taked from glibc because of ambiguous prototype shift+backspace is same as backspace updated debian/*, tnx PG4I QSO check sets suspicous callsign (?/! as next to locator) QSO check in menu call information dialog Alt+I added highlight regexps for DX cluster fixed accidental band activating with Alt+letter map zoom by keys +/- has center in map center not mouse cursor new hotkey Ctrl+P for playing last recorded sample fixed recording when CW macro is undefined or SSB wav file is not found fixed quicksearch drawing without contest disabled first rotator in defrc fixed gses inputline position when resized in contest added penguin icon 64x64 updated cty.dat to 1710 new statistics qso points and qso count by hours wwl and dxc statistics show qso points and qso count new statistics qso/hour, points/hour, points/50 qso text wwl 'maps' showed only when scoring is 4 added 'watchdog' for PTT keying improved suspicious callsign indication removed bandchar from screenshot filenames updated make deb highlighting in KST shell uses dark yellow when call is already worked initialized 4th argument of snd_pcm_hw_params_set_buffer_time_near Special SEGV handling with minimal memory access Fixed recording of prepared contest 20071102: 2.07 fixed sw->minq after band change screenshot on key F1, Alt+F1 updated portuguese translation watchdog for shell inputlines 20071003: 2.06 fixed qsonrs replication in spy fixed insane chars in DXC window fixed dialog Contest options 1 20070830: 2.05 fixed boundary drawing in map new cty.dat fixed ttyS lockfile problem verbose DSP errors colorized call highlighting 20070808: 2.04 dialog misc options contest defaults stored in uppercase operator is sent over network when no contest is active added operator to tucnakrc(.local) handled unicode keyboard events, respect keyboard layout 20070706: 2.03 improved library detection debian package tips in configure basic alsa support fixed qsos on map logged when map inactive playing last recorded sample disabling compile optimalisation as configure option fixed name for second tmpqso call added km unit for tmpqso qrb added degrees sign in graphics mode fixed negative rotar address close fds 3-1023 before executing shell Fill operators moved to menu Contest Fill operators saves all bands 20070531: 2.02 removed debug line in qso replication - bad arguments leak debug only on configure demand - probably fails on AMD64 20070517: 2.01 released especially for Micinka & Lizinka probably fixed alt+letter with capslock new option Max fragment count 20070422: 2.00 independency on external files - only one binary is sufficient for running contest better handling of arguments on non-32bit architectures integrated functionality of cwdaemon, ssbd and ssbm subwins are functional without contest many many work forked branch 2 20061002: 1.30 fixed open mode for txt and edi files (CRCRLF under windoze) fixed makecol error without HAVE_SDL fixed minor bugs in Mark as error and Save as dupe added takeoff saving into tucnakrc fixed inputline position after new spy adding 20060829: 1.29 takeoff profile to map updated cty.dat added operator call peer selection dialog (C_W and cfg over net) added operator call to network info dialog rewritten qso spy removed cwdaemon_g.c added copyright information to source files portuguese translation, tnx to CT1DRB found allowC1Printable feature in xterm, disabling was useless don't show characters 127-159 (control chars for xterm) higlighting of raw call (without /P etc) QRV info showed in quicksearch improved QRV info about station improved regexp for WWC highlight info about same contest in network info dialog 20060623: 1.28 fixed buggy ptrarray alocation, tnx to OK1HRA removed cwdb hash hack added title page export 20060612: 1.27 fixed star drawing in map fixed border drawing in map fixed font to be iso8859-2 new spy mode shows full inputline fixed band loading from multiple rc files delay to rotar communication to prevent high cpu load fixed "(null)" write to tucnakrc default band in contest fixed bug in rel_write_almost_all - if (conn_prod_state) fixed signed/unsigned chars for gcc-4.0 Unfinished QSO add informations from tmpqso Fixed QRV station on new contest (!ctest->tdate) Resets cwdaemon and ssbd after SIGSEGV 20060503: 1.26 Fixed key P in map Key T in map Fixed bug in main loop - timers and jobs were affected Show seconds Help for map hotkeys Call highlighting for WWC and WWC via KST QRV stations in polar map Beamwidth of antenna in polar map Fixes satisfies -Wpointer-arith and -Wstrict-prototypes 20060427: 1.25 Removing of expired DXC spots every 5 minutes Rotator dialog Fixed timers Fixed ESC in polar map Extended callsign regexps Fill operators back in menu Mark qso as not confirmed when qso with same call arrives from net Fixed desc file after contest options Fixed shell chars 0x84 and 0x85 WM icon Fixed map title Support for GPM 20060205: 1.24 Show RUN's TX state and call on S&P and vice versa Rotator fixes TOP 10 and statistics export by OM4AA 20050828: 1.23 RUN can TX (no CQ) when passed band control (to say QRL) time of stored qso cannot be older than last qso on band basic mouse support RUN+S&P together on one band fixed edi import fixed libpng detection sked QRG definition using Alt+F variable count of status lines fixed sked time and added configuration option for sked tikme shift change in statistics causes dirty band for saving removed saving .txt files after amount of qsos. Files are saved immediatelly. qso replication fixes 20050630: 1.22 removed DARC contest from tucnakwiz because of bad calculation method added ser_id to txt file fixed next bug in QSO replication 20050626: 1.21 fixed CRITICAL bug in QSO replication search for locator on other bands QRB rounding bug, thanks to OM4AA EDI import fixed, reported by OM4AA Gentoo ebuild files by Florian Evers Subwin configuration (not in menu yet) Fixed ssb_repeat 20050523: 1.20 Improved QRV message Bug in updating stats over net. Thanks to Stefan DL1ELY Exotic callsign entry with trailing slash Updates mode of QSO if report(s) edited Quicksearch shown regardless active subwin (tab) Recalculation of tmpqsos when locator is changed Bug in intl files (time skew net.c). THX2OM4AA II.subregional 20050313: 1.19 fixes for cygwin possibility to enter call like IW3RUA/IV3 fixed optional exchange display 20050311: 1.18 unwanted release of 1.18 :-) optional exchange by Marco IW3IKN fixed QRV bands Warning if received unknown callsign Changed saving to ~/tucnak/$T/log ADIF import, fixes in export 20050304: 1.17 I.subregional tomorrow... libpng for snapshots Fixes for AMD64 Fixes for -ansi Unused code clean Band character in snapshot filename Propagation modes in ADIF export Experimental rotator control, show direction in map Show date of latest C_W item in Memory info Remark and operator in tmpqsos Corrected QSO plotting in map DARC VHF/UHF/SHF contest. Thanks to DF1MA fixed some bugs in CW & SSB CQs 200411xx: 1.16 MMC after contest probably fixed very old bug with empty default RS&RST at IARU UHF contest fixed bug in ssb cq macro expanding 20040819: 1.15 Slovak translation & UTF-8, thanks to Michal Karas, OM4AA 20040818: 1.14 DL8EBW database import 20040805: 1.13 fixed bug in quicksearch of C_W show callsign in ERROR qso unfinished qso adds ERROR lines in Shell subwin containing <*call*> are highlighted (convers PM) keying and CQ are available under graphics (ESC,TAB,Fx) tucnak reads global config only if no user config exists Alt+1 turns focus to inputline qso repliacation fixes, INCOMPATIBLE change III. subregional 20040703: indication of running CQ's in left of main inputline fixed bad myid recognition added dependencies for .deb fixed SIGWINCH & inputline bug DX spots spreads over network Added some debug stuff for QSOs and DXC Microwave contest, some crashes 20040602: 1.10 fixed SSB CQ IARU II.subregional contest 20040501: 1.09 Fixed bad resizing of subwins with inputline Band map 20040320: 1.08 Code cleanup, program can be compiled with -Wall -Wpedantic -ansi Added correct IARU QSO points rounding (THX to OZ2M) Fixed crash in contest options save (THX to OK1MZM) 20040314: 1.07 Show operator and remark in QSO window (if terminal width>80) Show QRB/QTF in quicksearch Highlight operator's call/suffix in windows Fixed disabled input in talk Added --disable-glib[12] to configure Support for glib 2.x Shift+Arrows moves map with smaller step highlighted worked WWLs in polar map added my locator to "report" output format 20040215: 1.06 upadated documentation fixed minor bugs added some statistics to HTML export fixed HTML export to be valid HTML 4.01 big WWL names in polar map graphics screen save (F1) added Recalc QRB,QTF item in menu Edit recalculate QRB,QTF after changing QTH during contest fixed minor bugs in graphics screen redrawing Ctrl+P shows the polar map fixed autosave of QSOs arriving from net gfx window can be closed by WM icon fixed ADIF export to be compatible with TACLOG HTML export 20031123: 1.05 fixed 8bit color depth fixed network serial bug, INCOMPATIBLE change! log subwin doesn't scroll up when we look inside added horizontal scroll [ and ] to qsos and log subwins 20031115: 1.04 fixed hw2qrbqtf added M as multipath report (59M) log and subwin movement by [ and ] speed up polar map drawing (but there are some problems) added macros $D and $T fixed segfault pressing F4 rewritten graphics to use SDL instead of Allegro 20031020: 1.03 Fixed some packaging problems 20031013: 1.02 Setup->Network & trace Edit->Fill operators Alt+H = inputline history rewritten and rearranged dialog Edit QSO accelerated convergention of master choose traffic recording try to find locator also for raw call and call/p extended call-wwl handling #REMARK adds remark to qso 'r' in QSOs subwin mean there is remark fixed bad repaint when DUPE call is entered enter of 'q' toggle QSL PROMISED flag ~/tucnak/tucnakrc.local done Czech translation all translatable strings moved to intl/english.lng some minor fixes for -Wall fixed bug in destroy_bitmap (GRRRR!!) add File->Open/Close graphics window 20030927: 1.01 ignored unknown options in tucnakrc load C_W from net load configuration from net implemented other methods (7-11) implemented statute miles method (where is used?) (nr 5) implemented RSGB WWL ring (it's really correct?) (nr 3) ADIF export graphics polar map tab aborts CQ's unresolved items such as OK1ZIAV, 1160, OK1ZIA/B... showed upon inputline fixed bugs in tucnakdw for DXCC "G" and JO81 first support for ssbd 20030824: 1.00 fork()=0; getpid()=1.00; 20030824: 0.32 completed documentation some minor changes added make deb 20030819: 0.31 fixed QRV now added menu Subwin send AC after Contest->Contest options fixed net problem when only lo exists .12 means 12 only minutes 4 numbers in input mean month and day of month 20030817: OK activity contest without UFB 20030816: 0.30 Added screen save/restore in xterm Fixed bad readonly handling Semicolon in some items converted to colon (for network protocol) Rewritten macros like STORE_STR INCOMPATIBLE change in network format Added variable TUCNAK_DEBUG Term specifications written to tucnakrc Fixed bug in refresh_cwdaemon Fixed CW keying problem Added docs to /usr/local/share/doc Swap ASL and AGL texts Disabled debug by default, use -d or --debug to turn on Fixes for -Wall Xterm title setting Alpe adria VHF contest 20030801: 0.29 Removed socket debugging (it seems to be stable) Load [/etc/|~/]tucnakwiz too Alt+U do not add ERRROR QSO Fixed many bugs bear on permissions Network info show ID instead of TCP port Menu->Network replaced with Menu->File->Network info Stats subwin doesn't seek to end Fixed bug loading unfinished QSOs Added fifo length checking Fixed multiple CQ with same number Fixed string+1 bug in qth() Log, talk and skeds are saved/loaded NNXX replace 4 last letters in wwl X,XX,XXX replace suffix/last letters in wwl Added error checktig to .edi and .txt saving Fixed lock leak when there is no bands to load Tmpqsos clearing added to swap Detecting time skew 20030722: 0.28 Asynchronous C_W search (allow keying on slow machine) Fixed bug in scandir's return value Dialog "EDI properties (PAdr1,2)" Dialog "Contest defaults" Done configuration saving Fixed empty default_rs(t) OK activity contest 20030719: 0.27 divide qrv bands in Setup->Band options added mode number to edi file (there was 0 before) optimized saving to disk and statistics calculation fixed error saving replicated QSOs call/suffix highlighting in shell subwin user can send Ctrl+char via ^V char (like the vim) in shell subwin fixed multiple band definition bug save/load contest remarks (combine to one line) quicksearch displays band where the station was made added average pts/qso fixed cursor position in inputlines TAB allows keying wherever in program turn off console screensaver (maybe APM) and VESA powersaving features 20030706: Field day without fatal bugs 20030620: 0.26 suspicious characters ?,! in tmpqsos mean the same as in qsos fixed "Mark as ERROR" distribution fixed select() bug 20030618: 0.25 First attempt to be stable release TACLOG import Save configuration Added subwin with some statistics 20030518: 0.24 Added wildcard '.' to match any char in quick search Save operator change to swap QSO loading from swap ("Q ") Fixed desc file NULL problem Fixed band settings when contest is active OK VHF activity contest without problem PA4TU accepts my patch for cwdaemon 0.5beta, thanx Joop! EDI and TXT using \r\n instead of \n Sked is displayed on this tucnak's instance too 20030506: 0.23 Fixed multiple saving when loading Swap loading Update ~/tucnak/*/desc if call or tname changed Added chars ! and ? to locator when is suspicious Fixed bug in st->first_date when an ERROR exists Add subwin: added SKED & UNFInished save unfinished QSOs to .txt unfinished QSOs separated to bands added remark to unfinished QSO quick search searchs in other bands only if they exist fixed bug in net->myid when there is no interface II. subregional ctest - I must downgrade to 0.20 ($#@!#) 20030427: 0.22 added quick seach in other bands fixed some memory leaks and multiple free() fixed buf when !cfg->cwda_hostname fixed bug in Contest->Open wizz: don't add same contest twice F3 opens contest if not open 20030424: 0.21 don't use SO_REUSEADDR under cygwin (so more tucnak's can't bind the same tcp port) fixed BIG memory leak in use of g_ptr_array_free (Grrrr!) 20030419: 0.20 fixed scandir prototype (really?) support for cwdaemon-0.2.2-zia 20030404: 0.19 contest options during contest added contest wizard unfinished QSOs swapped and confirmed item is written to swap fixed NULL contest name in net_send_ac() extended remark size in sked to 60 chars prepare contest (specify date of ctest) rewritten contest options dialog: removed WWL type added Exc, QSO used, QSOp multi added "wizard" for qsop and total calculation methods sked to (higher) band fixed D_W again added /E, /J 20030319: 0.18 fixed D_W bug when central wwls are used fixed cursor in QSOs subwin added C_W update from contest or one band read tucnakcw and tucnakdw from ~/tucnak F3 turns off "immediate search" fixed band change during "immediate search" show qrb and qtf in duplicate qso 20030317: 0.17 updated call-wwl crosscheck talk: call@band: text time in log and shell subwins inputline history 20030303: 0.16 show READ-ONLY in inputline when band is r-o show operator makes ODX fixed replication of '(null)' fixed bad net->myid /p and similar switches with and without /p highlighting of subwin when new data arrives 20030301: 0.15 first big beta test (IARU VHF OK1ORU) some small contests (OK VHF activity) tucnak-4.04/missing0000755000175000017500000002623311354106464011260 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: tucnak-4.04/srcup.in0000644000175000017500000000056112412214255011333 00000000000000#!/bin/bash set -e OPTS='-atuvx' echo '' echo -n 'Password for rsync://ok1zia@nagano.cz: ' stty -echo read RSYNC_PASSWORD stty echo export RSYNC_PASSWORD cd ../libzia make dist rsync $OPTS libzia-@VERSION@.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ cd ../tucnak make dist rsync $OPTS @PACKAGE@-@VERSION@.tar.gz ok1zia@nagano.cz::ok1zia/public_html/tucnak/ tucnak-4.04/rebuild0000755000175000017500000000072512561147332011233 00000000000000#!/bin/bash rm -f config.log config.cache config.h CPUS=`grep ^processor /proc/cpuinfo | wc -l` echo CPUS=$CPUS aclocal automake --add-missing #automake -c -a #automake doc/Makefile #automake intl/Makefile #automake pkg/Makefile #automake src/Makefile #automake win32/Makefile dirs=`grep ^SUBDIRS Makefile.am|sed 's/.*=//'` for dir in $dirs; do echo automake $dir/Makefile automake $dir/Makefile done autoconf && ./configure && make clean && make -j$CPUS tucnak-4.04/eee.sh0000755000175000017500000000146112043471047010750 00000000000000#!/bin/bash # This script creates package for use on Asus EEE (Xandros) # Must be run on Debian Etch or older system # On EEE simply download and unpack file in home directory # then press Ctrl+Alt+T to start console and run tucnak/tucnak set -e cd ../libzia ./configure --without-ftdi make cd ../tucnak #./configure --without-gpm --without-ftdi --without-hamlib --without-fftw3 ./configure --without-gpm --with-pkg=eee make VER=`make ver` rm -rf eee mkdir eee cd eee mkdir tucnak cp ../src/tucnak tucnak sed 's/gfx_x *=.*/gfx_x = 792/' <../data/tucnakrc >1 sed 's/gfx_y *=.*/gfx_y = 416/' <1 >2 sed 's/loglines *=.*/loglines = 1/' <2 >3 sed 's/cwda_type *=.*/cwda_type = 0/' <3 >tucnak/tucnakrc F="tucnak3-eee-$VER.tar.gz" tar czf ../$F tucnak echo $F created cd .. rm -rf eee tucnak-4.04/COPYING0000644000175000017500000004311011277513163010707 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. 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 convey 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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This 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 Library General Public License instead of this License. tucnak-4.04/config.guess0000644000175000017500000012743212416731447012206 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file 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 2 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: